diff --git a/drivers/Kconfig b/drivers/Kconfig index e55f5116b5e9..8c97ea01aabd 100644 --- a/drivers/Kconfig +++ b/drivers/Kconfig @@ -238,4 +238,5 @@ source "drivers/most/Kconfig" source "drivers/rkflash/Kconfig" +source "drivers/rk_nand/Kconfig" endmenu diff --git a/drivers/Makefile b/drivers/Makefile index 18221c58cc68..18cc78f5385c 100644 --- a/drivers/Makefile +++ b/drivers/Makefile @@ -190,3 +190,4 @@ obj-$(CONFIG_INTERCONNECT) += interconnect/ obj-$(CONFIG_COUNTER) += counter/ obj-$(CONFIG_MOST) += most/ obj-$(CONFIG_RK_FLASH) += rkflash/ +obj-$(CONFIG_RK_NAND) += rk_nand/ diff --git a/drivers/rk_nand/Makefile b/drivers/rk_nand/Makefile index 8ea7fe0c0c64..dbd156f6e78b 100644 --- a/drivers/rk_nand/Makefile +++ b/drivers/rk_nand/Makefile @@ -1,5 +1,6 @@ # SPDX-License-Identifier: GPL-2.0 -obj-$(CONFIG_RK_NAND) += rk_ftl.o rk_nand_base.o rk_nand_blk.o +obj-$(CONFIG_RK_NAND) += rknand.o +rknand-y := rk_ftl.o rk_nand_base.o rk_nand_blk.o ifdef CONFIG_THUMB2_KERNEL rk_ftl-$(CONFIG_THUMB2_KERNEL) += rk_ftl_arm_v7_thumb.o else diff --git a/drivers/rk_nand/rk_ftl_arm_v7.S b/drivers/rk_nand/rk_ftl_arm_v7.S index 65ad9ed3b7e0..f8bb4774fc49 100644 --- a/drivers/rk_nand/rk_ftl_arm_v7.S +++ b/drivers/rk_nand/rk_ftl_arm_v7.S @@ -5,7 +5,7 @@ * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. - * date: 2020-09-23 + * date: 2021-07-16 */ .arch armv7-a .fpu softvfp @@ -23,39 +23,99 @@ .syntax unified .text .align 2 + .type ndelay, %function +ndelay: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + @ link register save eliminated. + ldr r3, .L2 + add r0, r0, #996 + add r0, r0, #3 + umull r0, r1, r0, r3 + ldr r3, .L2+4 + ldr r3, [r3, #8] + mov r0, r1, lsr #6 + bx r3 @ indirect register sibling call +.L3: + .align 2 +.L2: + .word 274877907 + .word arm_delay_ops + .fnend + .size ndelay, .-ndelay + .align 2 + .type flash_read_ecc, %function +flash_read_ecc: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + ldr r2, .L6 + stmfd sp!, {r4, lr} + .save {r4, lr} + ldr r3, [r2, r0, asl #3] + add r2, r2, r0, asl #3 + mov r0, #80 + ldrb r4, [r2, #4] @ zero_extendqisi2 + add r4, r3, r4, asl #8 + mov r3, #122 + str r3, [r4, #2056] + bl ndelay + ldr r3, [r4, #2048] + ldr r0, [r4, #2048] + and r3, r3, #15 + and r0, r0, #15 + cmp r0, r3 + movcc r0, r3 + ldr r3, [r4, #2048] + and r3, r3, #15 + cmp r0, r3 + movcc r0, r3 + ldr r3, [r4, #2048] + and r3, r3, #15 + cmp r0, r3 + movcc r0, r3 + ldmfd sp!, {r4, pc} +.L7: + .align 2 +.L6: + .word .LANCHOR0 + .fnend + .size flash_read_ecc, .-flash_read_ecc + .align 2 .global FlashMemCmp8 .type FlashMemCmp8, %function FlashMemCmp8: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L11 + ldr r3, .L18 str lr, [sp, #-4]! .save {lr} - ldrb r3, [r3] @ zero_extendqisi2 + ldrb r3, [r3, #32] @ zero_extendqisi2 cmp r3, #0 - beq .L4 + beq .L11 ldrb r3, [r1, #1] @ zero_extendqisi2 ldrb ip, [r0, #1] @ zero_extendqisi2 cmp ip, r3 movne r3, #0 - beq .L8 -.L4: + beq .L15 +.L11: cmp r3, r2 - beq .L8 + beq .L15 ldrb lr, [r0, r3] @ zero_extendqisi2 ldrb ip, [r1, r3] @ zero_extendqisi2 add r3, r3, #1 cmp lr, ip - beq .L4 + beq .L11 mov r0, r3 ldr pc, [sp], #4 -.L8: +.L15: mov r0, #0 ldr pc, [sp], #4 -.L12: +.L19: .align 2 -.L11: +.L18: .word .LANCHOR0 .fnend .size FlashMemCmp8, .-FlashMemCmp8 @@ -67,9 +127,9 @@ FlashRsvdBlkChk: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L14 - ldrb r2, [r3, #1] @ zero_extendqisi2 - ldr r3, [r3, #4] + ldr r3, .L21 + ldrb r2, [r3, #33] @ zero_extendqisi2 + ldr r3, [r3, #36] mul r3, r3, r2 cmp r1, r3 movcs r2, #0 @@ -78,9 +138,9 @@ FlashRsvdBlkChk: movne r2, #0 eor r0, r2, #1 bx lr -.L15: +.L22: .align 2 -.L14: +.L21: .word .LANCHOR0 .fnend .size FlashRsvdBlkChk, .-FlashRsvdBlkChk @@ -92,24 +152,24 @@ FlashGetRandomizer: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 and r3, r1, #127 - ldr r2, .L25 + ldr r2, .L32 stmfd sp!, {r4, lr} .save {r4, lr} mov r3, r3, asl #1 ldrh r4, [r2, r3] - ldr r3, .L25+4 - ldrb r3, [r3, #8] @ zero_extendqisi2 + ldr r3, .L32+4 + ldrb r3, [r3, #40] @ zero_extendqisi2 cmp r3, #0 - beq .L17 + beq .L24 bl FlashRsvdBlkChk cmp r0, #0 orrne r4, r4, #-1073741824 -.L17: +.L24: mov r0, r4 ldmfd sp!, {r4, pc} -.L26: +.L33: .align 2 -.L25: +.L32: .word .LANCHOR1 .word .LANCHOR0 .fnend @@ -122,28 +182,27 @@ FlashSetRandomizer: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 and r3, r1, #127 - ldr r2, .L36 + ldr r2, .L43 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r3, r3, asl #1 mov r6, r0 ldrh r5, [r2, r3] - ldr r3, .L36+4 - ldrb r2, [r3, #8] @ zero_extendqisi2 + ldr r3, .L43+4 + ldrb r2, [r3, #40] @ zero_extendqisi2 mov r4, r3 cmp r2, #0 - beq .L28 + beq .L35 bl FlashRsvdBlkChk cmp r0, #0 orrne r5, r5, #-1073741824 -.L28: - add r4, r4, r6, asl #3 - ldr r3, [r4, #12] +.L35: + ldr r3, [r4, r6, asl #3] str r5, [r3, #336] ldmfd sp!, {r4, r5, r6, pc} -.L37: +.L44: .align 2 -.L36: +.L43: .word .LANCHOR1 .word .LANCHOR0 .fnend @@ -157,22 +216,22 @@ FlashBlockAlignInit: @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. cmp r0, #512 - ldr r3, .L44 + ldr r3, .L51 movhi r2, #1024 - bhi .L43 + bhi .L50 cmp r0, #256 movhi r2, #512 - bhi .L43 + bhi .L50 cmp r0, #128 - strls r0, [r3, #4] + strls r0, [r3, #36] bxls lr mov r2, #256 -.L43: - str r2, [r3, #4] +.L50: + str r2, [r3, #36] bx lr -.L45: +.L52: .align 2 -.L44: +.L51: .word .LANCHOR0 .fnend .size FlashBlockAlignInit, .-FlashBlockAlignInit @@ -183,13 +242,13 @@ FlashReadCmd: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr ip, .L49 + ldr ip, .L56 str lr, [sp, #-4]! .save {lr} add r3, ip, r0, asl #3 + ldr r2, [ip, r0, asl #3] ldr ip, [ip, #44] - ldr r2, [r3, #12] - ldrb r3, [r3, #16] @ zero_extendqisi2 + ldrb r3, [r3, #4] @ zero_extendqisi2 ldrb ip, [ip, #7] @ zero_extendqisi2 mov r3, r3, asl #8 cmp ip, #1 @@ -211,9 +270,9 @@ FlashReadCmd: str r2, [r3, #2056] ldr lr, [sp], #4 b FlashSetRandomizer -.L50: +.L57: .align 2 -.L49: +.L56: .word .LANCHOR0 .fnend .size FlashReadCmd, .-FlashReadCmd @@ -224,20 +283,20 @@ FlashReadDpDataOutCmd: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr ip, .L56 + ldr ip, .L63 stmfd sp!, {r4, lr} .save {r4, lr} add r3, ip, r0, asl #3 - ldrb ip, [ip, #64] @ zero_extendqisi2 + ldr r2, [ip, r0, asl #3] uxtb r4, r1 - ldr r2, [r3, #12] + ldrb ip, [ip, #64] @ zero_extendqisi2 mov lr, r1, lsr #8 - ldrb r3, [r3, #16] @ zero_extendqisi2 + ldrb r3, [r3, #4] @ zero_extendqisi2 cmp ip, #1 mov ip, r1, lsr #16 mov r3, r3, asl #8 add r3, r2, r3 - bne .L52 + bne .L59 mov r2, #6 str r2, [r3, #2056] mov r2, #0 @@ -246,8 +305,8 @@ FlashReadDpDataOutCmd: str r4, [r3, #2052] str lr, [r3, #2052] str ip, [r3, #2052] - b .L55 -.L52: + b .L62 +.L59: mov r2, #0 str r2, [r3, #2056] str r2, [r3, #2052] @@ -259,14 +318,14 @@ FlashReadDpDataOutCmd: str ip, [r3, #2056] str r2, [r3, #2052] str r2, [r3, #2052] -.L55: +.L62: mov r2, #224 str r2, [r3, #2056] ldmfd sp!, {r4, lr} b FlashSetRandomizer -.L57: +.L64: .align 2 -.L56: +.L63: .word .LANCHOR0 .fnend .size FlashReadDpDataOutCmd, .-FlashReadDpDataOutCmd @@ -277,12 +336,13 @@ FlashProgFirstCmd: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - @ link register save eliminated. - ldr ip, .L59 + ldr ip, .L67 mov r2, r1, lsr #16 + str lr, [sp, #-4]! + .save {lr} + ldr r3, [ip, r0, asl #3] add ip, ip, r0, asl #3 - ldr r3, [ip, #12] - ldrb ip, [ip, #16] @ zero_extendqisi2 + ldrb ip, [ip, #4] @ zero_extendqisi2 add r3, r3, ip, asl #8 mov ip, #128 str ip, [r3, #2056] @@ -294,10 +354,11 @@ FlashProgFirstCmd: mov ip, r1, lsr #8 str ip, [r3, #2052] str r2, [r3, #2052] + ldr lr, [sp], #4 b FlashSetRandomizer -.L60: +.L68: .align 2 -.L59: +.L67: .word .LANCHOR0 .fnend .size FlashProgFirstCmd, .-FlashProgFirstCmd @@ -311,12 +372,12 @@ FlashEraseCmd: str lr, [sp, #-4]! .save {lr} cmp r2, #0 - ldr lr, .L67 + ldr lr, .L75 + ldr ip, [lr, r0, asl #3] add r0, lr, r0, asl #3 - ldrb r3, [r0, #16] @ zero_extendqisi2 - ldr ip, [r0, #12] + ldrb r3, [r0, #4] @ zero_extendqisi2 mov r3, r3, asl #8 - beq .L62 + beq .L70 add r2, ip, r3 mov r0, #96 str r0, [r2, #2056] @@ -326,9 +387,9 @@ FlashEraseCmd: str r0, [r2, #2052] mov r0, r1, lsr #16 str r0, [r2, #2052] - ldr r2, [lr, #4] + ldr r2, [lr, #36] add r1, r1, r2 -.L62: +.L70: add r3, ip, r3 mov r2, #96 str r2, [r3, #2056] @@ -341,9 +402,9 @@ FlashEraseCmd: mov r2, #208 str r2, [r3, #2056] ldr pc, [sp], #4 -.L68: +.L76: .align 2 -.L67: +.L75: .word .LANCHOR0 .fnend .size FlashEraseCmd, .-FlashEraseCmd @@ -354,15 +415,15 @@ FlashProgDpSecondCmd: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr ip, .L71 + stmfd sp!, {r4, lr} + .save {r4, lr} mov r2, r1, lsr #16 - str lr, [sp, #-4]! - .save {lr} - add lr, ip, r0, asl #3 - ldrb ip, [ip, #59] @ zero_extendqisi2 - ldr r3, [lr, #12] - ldrb lr, [lr, #16] @ zero_extendqisi2 - add r3, r3, lr, asl #8 + ldr lr, .L79 + add ip, lr, r0, asl #3 + ldr r3, [lr, r0, asl #3] + ldrb r4, [ip, #4] @ zero_extendqisi2 + ldrb ip, [lr, #59] @ zero_extendqisi2 + add r3, r3, r4, asl #8 str ip, [r3, #2056] mov ip, #0 str ip, [r3, #2052] @@ -372,11 +433,11 @@ FlashProgDpSecondCmd: mov ip, r1, lsr #8 str ip, [r3, #2052] str r2, [r3, #2052] - ldr lr, [sp], #4 + ldmfd sp!, {r4, lr} b FlashSetRandomizer -.L72: +.L80: .align 2 -.L71: +.L79: .word .LANCHOR0 .fnend .size FlashProgDpSecondCmd, .-FlashProgDpSecondCmd @@ -389,24 +450,24 @@ FlashProgSecondCmd: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} - ldr r3, .L75 - add r0, r3, r0, asl #3 - ldr r3, .L75+4 - ldrb r5, [r0, #16] @ zero_extendqisi2 - ldr r4, [r0, #12] - ldr r3, [r3, #4] + ldr r3, .L83 + ldr r4, [r3, r0, asl #3] + add r3, r3, r0, asl #3 + ldr r0, .L83+4 + ldrb r5, [r3, #4] @ zero_extendqisi2 + ldr r3, .L83+8 add r4, r4, r5, asl #8 - ldr r0, .L75+8 + ldr r3, [r3, #4] blx r3 mov r3, #16 str r3, [r4, #2056] ldmfd sp!, {r3, r4, r5, pc} -.L76: +.L84: .align 2 -.L75: +.L83: .word .LANCHOR0 + .word 64424500 .word arm_delay_ops - .word 214748300 .fnend .size FlashProgSecondCmd, .-FlashProgSecondCmd .align 2 @@ -417,21 +478,48 @@ FlashProgDpFirstCmd: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L78 + ldr r2, .L86 + ldr r3, [r2, r0, asl #3] add r0, r2, r0, asl #3 ldrb r2, [r2, #58] @ zero_extendqisi2 - ldrb r1, [r0, #16] @ zero_extendqisi2 - ldr r3, [r0, #12] + ldrb r1, [r0, #4] @ zero_extendqisi2 add r3, r3, r1, asl #8 str r2, [r3, #2056] bx lr -.L79: +.L87: .align 2 -.L78: +.L86: .word .LANCHOR0 .fnend .size FlashProgDpFirstCmd, .-FlashProgDpFirstCmd .align 2 + .global FlashReadStatus + .type FlashReadStatus, %function +FlashReadStatus: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r3, r4, r5, lr} + .save {r3, r4, r5, lr} + mov r2, #112 + ldr r3, .L90 + ldr r5, [r3, r0, asl #3] + add r3, r3, r0, asl #3 + mov r0, #80 + ldrb r4, [r3, #4] @ zero_extendqisi2 + add r3, r5, r4, asl #8 + add r4, r4, #8 + str r2, [r3, #2056] + bl ndelay + ldr r0, [r5, r4, asl #8] + ldmfd sp!, {r3, r4, r5, pc} +.L91: + .align 2 +.L90: + .word .LANCHOR0 + .fnend + .size FlashReadStatus, .-FlashReadStatus + .align 2 .global js_hash .type js_hash, %function js_hash: @@ -439,23 +527,23 @@ js_hash: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L84 + ldr r3, .L96 add r1, r0, r1 -.L81: +.L93: cmp r0, r1 - beq .L83 + beq .L95 mov r2, r3, asl #5 ldrb ip, [r0], #1 @ zero_extendqisi2 add r2, r2, r3, lsr #2 add r2, r2, ip eor r3, r3, r2 - b .L81 -.L83: + b .L93 +.L95: mov r0, r3 bx lr -.L85: +.L97: .align 2 -.L84: +.L96: .word 1204201446 .fnend .size js_hash, .-js_hash @@ -483,6 +571,102 @@ FlashPrintInfo: .fnend .size FlashPrintInfo, .-FlashPrintInfo .align 2 + .global ToshibaSetRRPara + .type ToshibaSetRRPara, %function +ToshibaSetRRPara: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} + .save {r4, r5, r6, r7, r8, r9, r10, lr} + add r8, r1, r1, asl #2 + ldr r9, .L110 + mov r5, r0 + ldr r7, .L110+4 + mov r6, r1 + add r10, r9, #256 + mov r4, #0 +.L101: + ldrb r3, [r7, #81] @ zero_extendqisi2 + cmp r4, r3 + bcs .L109 + mov r3, #85 + str r3, [r5, #8] + ldrsb r3, [r4, r10] + mov r0, #200 + str r3, [r5, #4] + bl ndelay + ldrb r3, [r7, #80] @ zero_extendqisi2 + cmp r3, #34 + addeq r3, r4, r8 + addeq r3, r10, r3 + beq .L108 + cmp r3, #35 + addne r3, r9, r6 + addne r3, r3, #400 + ldrnesb r3, [r3] + bne .L107 + ldr r3, .L110+8 + add r2, r4, r8 + add r3, r3, r2 +.L108: + ldrsb r3, [r3, #5] +.L107: + str r3, [r5] + add r4, r4, #1 + b .L101 +.L109: + ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} +.L111: + .align 2 +.L110: + .word .LANCHOR1 + .word .LANCHOR0 + .word .LANCHOR1+304 + .fnend + .size ToshibaSetRRPara, .-ToshibaSetRRPara + .align 2 + .global SamsungSetRRPara + .type SamsungSetRRPara, %function +SamsungSetRRPara: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + ldr r3, .L117 + stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} + .save {r4, r5, r6, r7, r8, r9, r10, lr} + add r1, r3, r1, asl #2 + ldr r8, .L117+4 + mov r4, #0 + add r5, r1, #3 + mov r6, r0 + mov r7, r3 + mov r9, #161 + mov r10, r4 +.L113: + ldrb r3, [r8, #81] @ zero_extendqisi2 + cmp r4, r3 + bcs .L116 + str r9, [r6, #8] + mov r0, #300 + str r10, [r6] + ldrsb r3, [r7, r4] + add r4, r4, #1 + str r3, [r6] + ldrsb r3, [r5, #1]! + str r3, [r6] + bl ndelay + b .L113 +.L116: + ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} +.L118: + .align 2 +.L117: + .word .LANCHOR1+408 + .word .LANCHOR0 + .fnend + .size SamsungSetRRPara, .-SamsungSetRRPara + .align 2 .global ftl_flash_suspend .type ftl_flash_suspend, %function ftl_flash_suspend: @@ -490,28 +674,28 @@ ftl_flash_suspend: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L89 - ldr r2, [r3, #80] + ldr r3, .L120 + ldr r2, [r3, #84] ldr r1, [r2] - str r1, [r3, #84] - ldr r1, [r2, #4] str r1, [r3, #88] - ldr r1, [r2, #8] + ldr r1, [r2, #4] str r1, [r3, #92] - ldr r1, [r2, #12] + ldr r1, [r2, #8] str r1, [r3, #96] - ldr r1, [r2, #304] + ldr r1, [r2, #12] str r1, [r3, #100] - ldr r1, [r2, #308] + ldr r1, [r2, #304] str r1, [r3, #104] + ldr r1, [r2, #308] + str r1, [r3, #108] ldr r1, [r2, #336] ldr r2, [r2, #344] - str r1, [r3, #108] - str r2, [r3, #112] + str r1, [r3, #112] + str r2, [r3, #116] bx lr -.L90: +.L121: .align 2 -.L89: +.L120: .word .LANCHOR0 .fnend .size ftl_flash_suspend, .-ftl_flash_suspend @@ -527,20 +711,20 @@ LogAddr2PhyAddr: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 mov r5, r0 - ldr r0, .L97 + ldr r0, .L128 mov r8, r3 ldr ip, [r5, #4] mov r9, r1 mov r7, r2 - ldrh r3, [r0, #130] + ldrh r3, [r0, #134] bic ip, ip, #-2147483648 - ldrh r4, [r0, #128] + ldrh r4, [r0, #132] ubfx r6, ip, #10, #16 - ldrh r10, [r0, #4] + ldrh r10, [r0, #36] mov fp, r0 str ip, [sp, #4] smulbb r4, r4, r3 - ldrb r3, [r0] @ zero_extendqisi2 + ldrb r3, [r0, #32] @ zero_extendqisi2 mov r0, r6 cmp r3, #1 moveq r10, r10, asl #1 @@ -555,16 +739,16 @@ LogAddr2PhyAddr: rsb r6, r4, r6 ubfx r4, ip, #0, #10 uxth r6, r6 - bne .L93 - ldrb r3, [fp, #144] @ zero_extendqisi2 + bne .L124 + ldrb r3, [fp, #148] @ zero_extendqisi2 cmp r3, #0 - ldreq r3, .L97 + ldreq r3, .L128 addeq r4, r3, r4, asl #1 - ldreqh r4, [r4, #148] -.L93: + ldreqh r4, [r4, #152] +.L124: add ip, fp, r0, asl #2 ldrb r3, [sp, #48] @ zero_extendqisi2 - ldr r1, [ip, #1172] + ldr r1, [ip, #1176] cmp r3, #1 mla r1, r10, r6, r1 add r4, r1, r4 @@ -580,13 +764,93 @@ LogAddr2PhyAddr: add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L98: +.L129: .align 2 -.L97: +.L128: .word .LANCHOR0 .fnend .size LogAddr2PhyAddr, .-LogAddr2PhyAddr .align 2 + .global FlashReadStatusEN + .type FlashReadStatusEN, %function +FlashReadStatusEN: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + ldr ip, .L141 + stmfd sp!, {r3, r4, r5, lr} + .save {r3, r4, r5, lr} + ldr r4, [ip, r0, asl #3] + add r0, ip, r0, asl #3 + ldr r3, [ip, #44] + ldrb r5, [r0, #4] @ zero_extendqisi2 + ldrb r3, [r3, #8] @ zero_extendqisi2 + cmp r3, #2 + mov r3, r5, asl #8 + addne r3, r4, r3 + add r5, r5, #8 + movne r2, #112 + strne r2, [r3, #2056] + bne .L135 + cmp r2, #0 + add r3, r4, r3 + ldrneb r2, [ip, #62] @ zero_extendqisi2 + ldreqb r2, [ip, #61] @ zero_extendqisi2 + str r2, [r3, #2056] + ldrb r0, [ip, #63] @ zero_extendqisi2 + cmp r0, #0 + addne ip, r4, r5, asl #8 + movne r2, #0 + beq .L135 +.L134: + cmp r2, r0 + bcs .L135 + mov r3, r2, asl #3 + add r2, r2, #1 + mov r3, r1, lsr r3 + uxtb r3, r3 + str r3, [ip, #4] + b .L134 +.L135: + mov r0, #80 + bl ndelay + ldr r0, [r4, r5, asl #8] + uxtb r0, r0 + ldmfd sp!, {r3, r4, r5, pc} +.L142: + .align 2 +.L141: + .word .LANCHOR0 + .fnend + .size FlashReadStatusEN, .-FlashReadStatusEN + .align 2 + .global FlashWaitReadyEN + .type FlashWaitReadyEN, %function +FlashWaitReadyEN: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r4, r5, r6, lr} + .save {r4, r5, r6, lr} + mov r4, r0 + mov r5, r1 + mov r6, r2 +.L144: + mov r0, r4 + mov r1, r5 + mov r2, r6 + bl FlashReadStatusEN + cmp r0, #255 + beq .L144 + tst r0, #64 + ldmnefd sp!, {r4, r5, r6, pc} + mov r0, #1 + mov r1, #3 + bl usleep_range + b .L144 + .fnend + .size FlashWaitReadyEN, .-FlashWaitReadyEN + .align 2 .global FlashScheduleEnSet .type FlashScheduleEnSet, %function FlashScheduleEnSet: @@ -594,14 +858,14 @@ FlashScheduleEnSet: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L100 - ldr r2, [r3, #1204] - str r0, [r3, #1204] + ldr r3, .L151 + ldr r2, [r3, #1208] + str r0, [r3, #1208] mov r0, r2 bx lr -.L101: +.L152: .align 2 -.L100: +.L151: .word .LANCHOR0 .fnend .size FlashScheduleEnSet, .-FlashScheduleEnSet @@ -613,13 +877,13 @@ FlashGetPageSize: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L103 + ldr r3, .L154 ldr r3, [r3, #44] ldrb r0, [r3, #9] @ zero_extendqisi2 bx lr -.L104: +.L155: .align 2 -.L103: +.L154: .word .LANCHOR0 .fnend .size FlashGetPageSize, .-FlashGetPageSize @@ -642,16 +906,16 @@ NandcGetChipIf: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L107 - add r0, r3, r0, asl #3 - ldrb r2, [r0, #16] @ zero_extendqisi2 - ldr r0, [r0, #12] - add r2, r2, #8 - add r0, r0, r2, asl #8 + ldr r2, .L158 + add r3, r2, r0, asl #3 + ldr r0, [r2, r0, asl #3] + ldrb r3, [r3, #4] @ zero_extendqisi2 + add r3, r3, #8 + add r0, r0, r3, asl #8 bx lr -.L108: +.L159: .align 2 -.L107: +.L158: .word .LANCHOR0 .fnend .size NandcGetChipIf, .-NandcGetChipIf @@ -663,16 +927,16 @@ NandcSetDdrPara: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L110 - ldr r2, [r3, #80] + ldr r3, .L161 + ldr r2, [r3, #84] mov r3, r0, asl #8 orr r0, r3, r0, asl #16 orr r3, r0, #1 str r3, [r2, #304] bx lr -.L111: +.L162: .align 2 -.L110: +.L161: .word .LANCHOR0 .fnend .size NandcSetDdrPara, .-NandcSetDdrPara @@ -684,14 +948,14 @@ NandcSetDdrDiv: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L113 + ldr r3, .L164 orr r0, r0, #16640 - ldr r3, [r3, #80] + ldr r3, [r3, #84] str r0, [r3, #344] bx lr -.L114: +.L165: .align 2 -.L113: +.L164: .word .LANCHOR0 .fnend .size NandcSetDdrDiv, .-NandcSetDdrDiv @@ -703,17 +967,17 @@ NandcSetDdrMode: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L118 + ldr r3, .L169 cmp r0, #0 - ldr r2, [r3, #80] + ldr r2, [r3, #84] ldr r3, [r2] bfieq r3, r0, #13, #1 orrne r3, r3, #253952 str r3, [r2] bx lr -.L119: +.L170: .align 2 -.L118: +.L169: .word .LANCHOR0 .fnend .size NandcSetDdrMode, .-NandcSetDdrMode @@ -725,18 +989,18 @@ NandcSetMode: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L127 + ldr r3, .L178 ands r1, r0, #6 - ldr r2, [r3, #80] + ldr r2, [r3, #84] ldr r3, [r2] bfieq r3, r1, #13, #1 - beq .L123 + beq .L174 orr r3, r3, #24576 movw r1, #8322 bfc r3, #15, #1 str r1, [r2, #344] orr r3, r3, #196608 - ldr r1, .L127+4 + ldr r1, .L178+4 tst r0, #4 orrne r3, r3, #32768 str r1, [r2, #304] @@ -744,13 +1008,13 @@ NandcSetMode: str r1, [r2, #308] mov r1, #39 str r1, [r2, #308] -.L123: +.L174: str r3, [r2] mov r0, #0 bx lr -.L128: +.L179: .align 2 -.L127: +.L178: .word .LANCHOR0 .word 1052675 .fnend @@ -763,19 +1027,19 @@ NandcFlashCs: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L130 - add r0, r2, r0, asl #3 + ldr r3, .L181 mov r2, #1 - ldr r1, [r0, #12] - ldrb r0, [r0, #16] @ zero_extendqisi2 + ldr r1, [r3, r0, asl #3] + add r0, r3, r0, asl #3 + ldrb r0, [r0, #4] @ zero_extendqisi2 ldr r3, [r1] mov r2, r2, asl r0 bfi r3, r2, #0, #8 str r3, [r1] bx lr -.L131: +.L182: .align 2 -.L130: +.L181: .word .LANCHOR0 .fnend .size NandcFlashCs, .-NandcFlashCs @@ -787,170 +1051,20 @@ NandcFlashDeCs: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L133 - add r0, r3, r0, asl #3 - ldr r2, [r0, #12] + ldr r3, .L184 + ldr r2, [r3, r0, asl #3] ldr r3, [r2] bfc r3, #0, #8 bfc r3, #17, #1 str r3, [r2] bx lr -.L134: +.L185: .align 2 -.L133: +.L184: .word .LANCHOR0 .fnend .size NandcFlashDeCs, .-NandcFlashDeCs .align 2 - .global NandcDelayns - .type NandcDelayns, %function -NandcDelayns: - .fnstart - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r3, lr} - .save {r3, lr} - add r0, r0, #996 - ldr r3, .L137 - add r0, r0, #3 - umull r0, r1, r0, r3 - ldr r3, .L137+4 - ldr r3, [r3, #8] - mov r0, r1, lsr #6 - blx r3 - mov r0, #0 - ldmfd sp!, {r3, pc} -.L138: - .align 2 -.L137: - .word 274877907 - .word arm_delay_ops - .fnend - .size NandcDelayns, .-NandcDelayns - .align 2 - .global FlashReadStatus - .type FlashReadStatus, %function -FlashReadStatus: - .fnstart - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r3, r4, r5, lr} - .save {r3, r4, r5, lr} - mov r2, #112 - ldr r3, .L141 - add r0, r3, r0, asl #3 - ldrb r4, [r0, #16] @ zero_extendqisi2 - ldr r5, [r0, #12] - mov r0, #80 - add r3, r5, r4, asl #8 - add r4, r4, #8 - str r2, [r3, #2056] - bl NandcDelayns - ldr r0, [r5, r4, asl #8] - ldmfd sp!, {r3, r4, r5, pc} -.L142: - .align 2 -.L141: - .word .LANCHOR0 - .fnend - .size FlashReadStatus, .-FlashReadStatus - .align 2 - .global ToshibaSetRRPara - .type ToshibaSetRRPara, %function -ToshibaSetRRPara: - .fnstart - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} - .save {r4, r5, r6, r7, r8, r9, r10, lr} - add r8, r1, r1, asl #2 - ldr r9, .L153 - mov r5, r0 - ldr r7, .L153+4 - mov r6, r1 - add r10, r9, #256 - mov r4, #0 -.L144: - ldrb r3, [r7, #1209] @ zero_extendqisi2 - cmp r4, r3 - bcs .L152 - mov r3, #85 - str r3, [r5, #8] - ldrsb r3, [r4, r10] - mov r0, #200 - str r3, [r5, #4] - bl NandcDelayns - ldrb r3, [r7, #1208] @ zero_extendqisi2 - cmp r3, #34 - addeq r3, r4, r8 - addeq r3, r10, r3 - beq .L151 - cmp r3, #35 - addne r3, r9, r6 - addne r3, r3, #400 - ldrnesb r3, [r3] - bne .L150 - ldr r3, .L153+8 - add r2, r4, r8 - add r3, r3, r2 -.L151: - ldrsb r3, [r3, #5] -.L150: - str r3, [r5] - add r4, r4, #1 - b .L144 -.L152: - ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L154: - .align 2 -.L153: - .word .LANCHOR1 - .word .LANCHOR0 - .word .LANCHOR1+304 - .fnend - .size ToshibaSetRRPara, .-ToshibaSetRRPara - .align 2 - .global SamsungSetRRPara - .type SamsungSetRRPara, %function -SamsungSetRRPara: - .fnstart - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L160 - stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} - .save {r4, r5, r6, r7, r8, r9, r10, lr} - add r1, r3, r1, asl #2 - ldr r8, .L160+4 - mov r4, #0 - add r5, r1, #3 - mov r6, r0 - mov r7, r3 - mov r9, #161 - mov r10, r4 -.L156: - ldrb r3, [r8, #1209] @ zero_extendqisi2 - cmp r4, r3 - bcs .L159 - str r9, [r6, #8] - mov r0, #300 - str r10, [r6] - ldrsb r3, [r7, r4] - add r4, r4, #1 - str r3, [r6] - ldrsb r3, [r5, #1]! - str r3, [r6] - bl NandcDelayns - b .L156 -.L159: - ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L161: - .align 2 -.L160: - .word .LANCHOR1+408 - .word .LANCHOR0 - .fnend - .size SamsungSetRRPara, .-SamsungSetRRPara - .align 2 .global HynixSetRRPara .type HynixSetRRPara, %function HynixSetRRPara: @@ -961,11 +1075,11 @@ HynixSetRRPara: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 mov r6, r3 - ldr r5, .L171 - mov r9, r2 - ldr r4, .L171+4 + ldr r5, .L195 + mov fp, r2 + ldr r4, .L195+4 mov r7, r0 - mov r8, r1 + mov r10, r1 ldr r3, [r5, #44] ldrb r2, [r3, #19] @ zero_extendqisi2 mov r3, r0, asl #3 @@ -973,68 +1087,68 @@ HynixSetRRPara: addeq r4, r4, r0, asl #6 addeq r4, r4, #20 addeq r4, r4, r6, asl #2 - beq .L164 + beq .L188 cmp r2, #7 - bne .L165 + bne .L189 mov r2, #160 mla r4, r2, r0, r4 add r2, r6, r6, asl #2 add r4, r4, #28 add r4, r4, r2, asl #1 - b .L164 -.L165: + b .L188 +.L189: cmp r2, #8 addne r2, r6, r3 addeq r2, r6, r6, asl #2 - ldreq r4, .L171+8 + ldreq r4, .L195+8 addne r4, r4, r2, asl #3 addeq r4, r4, r2 addne r4, r4, #20 -.L164: +.L188: add r3, r5, r3 + ldr r9, [r5, r7, asl #3] mov r0, r7 - sub r8, r8, #1 - sub r4, r4, #1 - ldrb fp, [r3, #16] @ zero_extendqisi2 - ldr r10, [r3, #12] + sub r10, r10, #1 + ldrb r8, [r3, #4] @ zero_extendqisi2 bl NandcFlashCs - sub ip, r9, #1 - add r9, r9, r8 - mov r3, fp, asl #8 + sub fp, fp, #1 + sub ip, r4, #1 + add r4, r4, r10 mov r2, #54 - add fp, r10, r3 - str r2, [fp, #2056] -.L167: - cmp ip, r9 - beq .L170 - ldrb r2, [ip, #1]! @ zero_extendqisi2 + mov r3, r8, asl #8 + add r8, r9, r3 + str r2, [r8, #2056] +.L191: + cmp ip, r4 + beq .L194 + ldrb r2, [fp, #1]! @ zero_extendqisi2 mov r0, #200 str r3, [sp, #4] - str r2, [fp, #2052] str ip, [sp] - bl NandcDelayns - ldrsb r2, [r4, #1]! - str r2, [fp, #2048] - ldr r3, [sp, #4] + str r2, [r8, #2052] + bl ndelay ldr ip, [sp] - b .L167 -.L170: - add r10, r10, r3 + ldr r3, [sp, #4] + ldrsb r2, [ip, #1]! + str r2, [r8, #2048] + b .L191 +.L194: + add r9, r9, r3 mov r0, r7 mov r3, #22 add r5, r5, r7 - str r3, [r10, #2056] + str r3, [r9, #2056] bl NandcFlashDeCs strb r6, [r5, #2064] add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L172: +.L196: .align 2 -.L171: +.L195: .word .LANCHOR0 - .word .LANCHOR0+1210 - .word .LANCHOR0+1238 + .word .LANCHOR0+1212 + .word .LANCHOR0+1240 .fnend .size HynixSetRRPara, .-HynixSetRRPara .align 2 @@ -1044,7 +1158,7 @@ FlashSetReadRetryDefault: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L181 + ldr r3, .L205 ldr r2, [r3, #44] ldrb r2, [r2, #19] @ zero_extendqisi2 sub r2, r2, #1 @@ -1053,111 +1167,31 @@ FlashSetReadRetryDefault: stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r4, #0 - ldr r6, .L181+4 + ldr r6, .L205+4 mov r5, r3 -.L174: +.L198: ldrb r3, [r6, r4, asl #3] @ zero_extendqisi2 uxtb r0, r4 cmp r3, #173 - bne .L175 - ldrb r1, [r5, #1211] @ zero_extendqisi2 + bne .L199 + ldrb r1, [r5, #1213] @ zero_extendqisi2 mov r3, #0 - ldr r2, .L181+8 + ldr r2, .L205+8 bl HynixSetRRPara -.L175: +.L199: add r4, r4, #1 cmp r4, #4 - bne .L174 + bne .L198 ldmfd sp!, {r4, r5, r6, pc} -.L182: +.L206: .align 2 -.L181: +.L205: .word .LANCHOR0 .word .LANCHOR0+2068 - .word .LANCHOR0+1214 + .word .LANCHOR0+1216 .fnend .size FlashSetReadRetryDefault, .-FlashSetReadRetryDefault .align 2 - .global FlashReadStatusEN - .type FlashReadStatusEN, %function -FlashReadStatusEN: - .fnstart - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - ldr ip, .L194 - stmfd sp!, {r3, r4, r5, lr} - .save {r3, r4, r5, lr} - add r0, ip, r0, asl #3 - ldr r3, [ip, #44] - ldrb r5, [r0, #16] @ zero_extendqisi2 - ldr r4, [r0, #12] - ldrb r3, [r3, #8] @ zero_extendqisi2 - cmp r3, #2 - mov r3, r5, asl #8 - addne r3, r4, r3 - add r5, r5, #8 - movne r2, #112 - strne r2, [r3, #2056] - bne .L188 - cmp r2, #0 - add r3, r4, r3 - ldrneb r2, [ip, #62] @ zero_extendqisi2 - ldreqb r2, [ip, #61] @ zero_extendqisi2 - str r2, [r3, #2056] - ldrb r0, [ip, #63] @ zero_extendqisi2 - cmp r0, #0 - addne ip, r4, r5, asl #8 - movne r2, #0 - beq .L188 -.L187: - cmp r2, r0 - bcs .L188 - mov r3, r2, asl #3 - add r2, r2, #1 - mov r3, r1, lsr r3 - uxtb r3, r3 - str r3, [ip, #4] - b .L187 -.L188: - mov r0, #80 - bl NandcDelayns - ldr r0, [r4, r5, asl #8] - uxtb r0, r0 - ldmfd sp!, {r3, r4, r5, pc} -.L195: - .align 2 -.L194: - .word .LANCHOR0 - .fnend - .size FlashReadStatusEN, .-FlashReadStatusEN - .align 2 - .global FlashWaitReadyEN - .type FlashWaitReadyEN, %function -FlashWaitReadyEN: - .fnstart - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r4, r5, r6, lr} - .save {r4, r5, r6, lr} - mov r4, r0 - mov r5, r1 - mov r6, r2 -.L197: - mov r0, r4 - mov r1, r5 - mov r2, r6 - bl FlashReadStatusEN - cmp r0, #255 - beq .L197 - tst r0, #64 - ldmnefd sp!, {r4, r5, r6, pc} - mov r0, #1 - mov r1, #3 - bl usleep_range - b .L197 - .fnend - .size FlashWaitReadyEN, .-FlashWaitReadyEN - .align 2 .global FlashWaitCmdDone .type FlashWaitCmdDone, %function FlashWaitCmdDone: @@ -1166,19 +1200,19 @@ FlashWaitCmdDone: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} - ldr r5, .L211 + ldr r5, .L215 add r4, r5, r0, asl #4 ldr r3, [r4, #2108] ldrb r7, [r4, #2100] @ zero_extendqisi2 cmp r3, #0 - beq .L205 + beq .L209 mov r6, r0 mov r0, r7 add r5, r5, r6, asl #2 bl NandcFlashCs ldr r1, [r4, #2104] mov r0, r7 - ldr r2, [r5, #1172] + ldr r2, [r5, #1176] adds r2, r2, #0 movne r2, #1 bl FlashWaitReadyEN @@ -1194,53 +1228,29 @@ FlashWaitCmdDone: cmp r1, r2 strne r3, [r1] strne r2, [r4, #2112] -.L205: +.L209: mov r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L212: - .align 2 -.L211: - .word .LANCHOR0 - .fnend - .size FlashWaitCmdDone, .-FlashWaitCmdDone - .align 2 - .type flash_read_ecc, %function -flash_read_ecc: - .fnstart - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L215 - stmfd sp!, {r4, lr} - .save {r4, lr} - add r0, r2, r0, asl #3 - ldrb r4, [r0, #16] @ zero_extendqisi2 - ldr r3, [r0, #12] - mov r0, #80 - add r4, r3, r4, asl #8 - mov r3, #122 - str r3, [r4, #2056] - bl NandcDelayns - ldr r3, [r4, #2048] - ldr r0, [r4, #2048] - and r3, r3, #15 - and r0, r0, #15 - cmp r0, r3 - movcc r0, r3 - ldr r3, [r4, #2048] - and r3, r3, #15 - cmp r0, r3 - movcc r0, r3 - ldr r3, [r4, #2048] - and r3, r3, #15 - cmp r0, r3 - movcc r0, r3 - ldmfd sp!, {r4, pc} .L216: .align 2 .L215: .word .LANCHOR0 .fnend - .size flash_read_ecc, .-flash_read_ecc + .size FlashWaitCmdDone, .-FlashWaitCmdDone + .align 2 + .global NandcDelayns + .type NandcDelayns, %function +NandcDelayns: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r3, lr} + .save {r3, lr} + bl ndelay + mov r0, #0 + ldmfd sp!, {r3, pc} + .fnend + .size NandcDelayns, .-NandcDelayns .align 2 .global NandcWaitFlashReadyNoDelay .type NandcWaitFlashReadyNoDelay, %function @@ -1248,34 +1258,33 @@ NandcWaitFlashReadyNoDelay: .fnstart @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L223 + ldr r3, .L225 stmfd sp!, {r0, r1, r2, r4, r5, lr} .save {r4, r5, lr} .pad #12 - add r0, r3, r0, asl #3 - ldr r4, .L223+4 - ldr r5, [r0, #12] -.L219: + ldr r4, .L225+4 + ldr r5, [r3, r0, asl #3] +.L221: ldr r3, [r5] str r3, [sp, #4] ldr r3, [sp, #4] tst r3, #512 - bne .L220 + bne .L222 mov r0, #10 - bl NandcDelayns + bl ndelay subs r4, r4, #1 - bne .L219 + bne .L221 mvn r0, #0 - b .L218 -.L220: + b .L220 +.L222: mov r0, #0 -.L218: +.L220: add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, pc} -.L224: +.L226: .align 2 -.L223: +.L225: .word .LANCHOR0 .word 100000 .fnend @@ -1287,37 +1296,36 @@ NandcWaitFlashReady: .fnstart @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L231 + ldr r3, .L233 stmfd sp!, {r0, r1, r2, r4, r5, lr} .save {r4, r5, lr} .pad #12 - add r0, r3, r0, asl #3 - ldr r4, .L231+4 - ldr r5, [r0, #12] + ldr r5, [r3, r0, asl #3] mov r0, #130 - bl NandcDelayns -.L227: + bl ndelay + ldr r4, .L233+4 +.L229: ldr r3, [r5] str r3, [sp, #4] ldr r3, [sp, #4] tst r3, #512 - bne .L228 + bne .L230 mov r0, #1 mov r1, #2 bl usleep_range subs r4, r4, #1 - bne .L227 + bne .L229 mvn r0, #0 - b .L226 -.L228: + b .L228 +.L230: mov r0, #0 -.L226: +.L228: add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, pc} -.L232: +.L234: .align 2 -.L231: +.L233: .word .LANCHOR0 .word 100000 .fnend @@ -1329,13 +1337,13 @@ FlashReset: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L235 + ldr r3, .L237 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} - add r3, r3, r0, asl #3 mov r4, r0 - ldrb r6, [r3, #16] @ zero_extendqisi2 - ldr r5, [r3, #12] + ldr r5, [r3, r0, asl #3] + add r3, r3, r0, asl #3 + ldrb r6, [r3, #4] @ zero_extendqisi2 bl NandcFlashCs mov r3, #255 mov r0, r4 @@ -1345,9 +1353,9 @@ FlashReset: mov r0, r4 ldmfd sp!, {r4, r5, r6, lr} b NandcFlashDeCs -.L236: +.L238: .align 2 -.L235: +.L237: .word .LANCHOR0 .fnend .size FlashReset, .-FlashReset @@ -1360,26 +1368,26 @@ flash_enter_slc_mode: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} - ldr r5, .L244 - ldrb r3, [r5, #144] @ zero_extendqisi2 + ldr r5, .L246 + ldrb r3, [r5, #148] @ zero_extendqisi2 cmp r3, #0 ldmeqfd sp!, {r4, r5, r6, r7, r8, pc} mov r6, r0 bl NandcFlashCs add r4, r5, r6, asl #3 + ldr r7, [r5, r6, asl #3] ldrb r3, [r4, #2068] @ zero_extendqisi2 - ldrb r8, [r4, #16] @ zero_extendqisi2 + ldrb r8, [r4, #4] @ zero_extendqisi2 cmp r3, #44 - ldr r7, [r4, #12] mov r8, r8, asl #8 - bne .L239 + bne .L241 add r4, r7, r8 mov r3, #239 mov r0, #50 str r3, [r4, #2056] mov r3, #145 str r3, [r4, #2052] - bl NandcDelayns + bl ndelay mov r3, #0 mov r2, #1 str r3, [r4, #2048] @@ -1387,8 +1395,8 @@ flash_enter_slc_mode: str r2, [r4, #2048] str r3, [r4, #2048] str r3, [r4, #2048] - bl NandcDelayns -.L239: + bl ndelay +.L241: add r7, r7, r8 mov r0, r6 bl NandcWaitFlashReadyNoDelay @@ -1399,9 +1407,9 @@ flash_enter_slc_mode: mov r3, #2 strb r3, [r5, #2228] ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L245: +.L247: .align 2 -.L244: +.L246: .word .LANCHOR0 .fnend .size flash_enter_slc_mode, .-flash_enter_slc_mode @@ -1414,26 +1422,26 @@ flash_exit_slc_mode: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} - ldr r5, .L253 - ldrb r3, [r5, #144] @ zero_extendqisi2 + ldr r5, .L255 + ldrb r3, [r5, #148] @ zero_extendqisi2 cmp r3, #0 ldmeqfd sp!, {r4, r5, r6, r7, r8, pc} mov r6, r0 bl NandcFlashCs add r4, r5, r6, asl #3 + ldr r7, [r5, r6, asl #3] ldrb r3, [r4, #2068] @ zero_extendqisi2 - ldrb r8, [r4, #16] @ zero_extendqisi2 + ldrb r8, [r4, #4] @ zero_extendqisi2 cmp r3, #44 - ldr r7, [r4, #12] mov r8, r8, asl #8 - bne .L248 + bne .L250 add r4, r7, r8 mov r3, #239 mov r0, #50 str r3, [r4, #2056] mov r3, #145 str r3, [r4, #2052] - bl NandcDelayns + bl ndelay mov r3, #2 mov r0, #100 str r3, [r4, #2048] @@ -1442,8 +1450,8 @@ flash_exit_slc_mode: mov r3, #0 str r3, [r4, #2048] str r3, [r4, #2048] - bl NandcDelayns -.L248: + bl ndelay +.L250: add r7, r7, r8 mov r0, r6 bl NandcWaitFlashReadyNoDelay @@ -1454,9 +1462,9 @@ flash_exit_slc_mode: mov r3, #0 strb r3, [r5, #2228] ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L254: +.L256: .align 2 -.L253: +.L255: .word .LANCHOR0 .fnend .size flash_exit_slc_mode, .-flash_exit_slc_mode @@ -1498,93 +1506,92 @@ FlashSetInterfaceMode: .fnstart @ args = 0, pretend = 0, frame = 16 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r1, .L280 + ldr r2, .L282 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #20 sub sp, sp, #20 - ldrb fp, [r1, #2229] @ zero_extendqisi2 + ldrb fp, [r2, #2229] @ zero_extendqisi2 mov lr, #0 - ldr r7, .L280+4 + ldr r7, .L282+4 mov r4, #239 - and r2, fp, #4 and r3, fp, #1 - mov r5, #128 str r3, [sp, #8] - mov r6, #1 - uxtb r3, r2 - mov r8, #35 + and r3, fp, #4 + str r2, [sp, #12] + mov r5, #128 mov r2, lr + mov r6, #1 + mov r8, #35 mov r9, #32 mov r10, #5 + uxtb r3, r3 str r3, [sp, #4] - add r3, r1, #12 - str r3, [sp, #12] -.L267: +.L269: ldr r3, [sp, #12] ldrb ip, [lr, r7] @ zero_extendqisi2 ldr r1, [r3, lr]! cmp ip, #69 cmpne ip, #152 ldrb r3, [r3, #4] @ zero_extendqisi2 - beq .L258 + beq .L260 cmp ip, #44 cmpne ip, #173 - bne .L259 -.L258: + bne .L261 +.L260: cmp r0, #1 - bne .L260 + bne .L262 ldr fp, [sp, #8] cmp fp, #0 - beq .L259 + beq .L261 mov r3, r3, asl #8 cmp ip, #173 add fp, r1, r3 str r4, [fp, #2056] streq r0, [fp, #2052] - beq .L279 + beq .L281 cmp ip, #44 streq r0, [fp, #2052] strne r5, [fp, #2052] streq r10, [fp, #2048] strne r0, [fp, #2048] - b .L265 -.L260: + b .L267 +.L262: ldr fp, [sp, #4] cmp fp, #0 - beq .L259 + beq .L261 mov r3, r3, asl #8 cmp ip, #173 add fp, r1, r3 str r4, [fp, #2056] streq r6, [fp, #2052] streq r9, [fp, #2048] - beq .L265 + beq .L267 cmp ip, #44 streq r6, [fp, #2052] streq r8, [fp, #2048] - beq .L265 + beq .L267 str r5, [fp, #2052] -.L279: +.L281: str r2, [fp, #2048] -.L265: +.L267: add r3, r1, r3 str r2, [r3, #2048] str r2, [r3, #2048] str r2, [r3, #2048] -.L259: +.L261: add lr, lr, #8 cmp lr, #32 - bne .L267 + bne .L269 mov r0, #0 bl NandcWaitFlashReady mov r0, #0 add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L281: +.L283: .align 2 -.L280: +.L282: .word .LANCHOR0 .word .LANCHOR0+2068 .fnend @@ -1596,18 +1603,18 @@ FlashReadSpare: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr ip, .L284 + ldr ip, .L286 stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} - add ip, ip, r0, asl #3 - ldr r3, .L284+4 mov r5, r2 - ldrb r2, [ip, #16] @ zero_extendqisi2 - ldr r4, [ip, #12] + ldr r3, .L286+4 + ldr r4, [ip, r0, asl #3] + add ip, ip, r0, asl #3 ldrb r3, [r3, #481] @ zero_extendqisi2 + ldrb r2, [ip, #4] @ zero_extendqisi2 + mov r3, r3, asl #9 add r4, r4, r2, asl #8 mov r2, #0 - mov r3, r3, asl #9 str r2, [r4, #2056] str r3, [r4, #2052] mov r3, r3, lsr #8 @@ -1624,9 +1631,9 @@ FlashReadSpare: ldr r3, [r4, #2048] strb r3, [r5] ldmfd sp!, {r3, r4, r5, pc} -.L285: +.L287: .align 2 -.L284: +.L286: .word .LANCHOR0 .word .LANCHOR1 .fnend @@ -1638,12 +1645,12 @@ SandiskProgTestBadBlock: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L288 + ldr r2, .L290 stmfd sp!, {r4, lr} .save {r4, lr} + ldr r3, [r2, r0, asl #3] add r2, r2, r0, asl #3 - ldrb r4, [r2, #16] @ zero_extendqisi2 - ldr r3, [r2, #12] + ldrb r4, [r2, #4] @ zero_extendqisi2 add r4, r3, r4, asl #8 mov r3, #162 str r3, [r4, #2056] @@ -1664,13 +1671,13 @@ SandiskProgTestBadBlock: mov r3, #112 mov r0, #80 str r3, [r4, #2056] - bl NandcDelayns + bl ndelay ldr r0, [r4, #2048] and r0, r0, #1 ldmfd sp!, {r4, pc} -.L289: +.L291: .align 2 -.L288: +.L290: .word .LANCHOR0 .fnend .size SandiskProgTestBadBlock, .-SandiskProgTestBadBlock @@ -1690,17 +1697,17 @@ SandiskSetRRPara: str r3, [r0, #4] mov r0, #200 mov r4, r1 - bl NandcDelayns - ldr r0, .L298 - ldr r1, .L298+4 + bl ndelay + ldr r0, .L300 + ldr r1, .L300+4 add r4, r4, r4, asl #2 sub ip, r0, #48 mov r2, #0 -.L291: - ldrb r3, [r1, #1209] @ zero_extendqisi2 +.L293: + ldrb r3, [r1, #81] @ zero_extendqisi2 cmp r2, r3 - bcs .L297 - ldrb r3, [r1, #1208] @ zero_extendqisi2 + bcs .L299 + ldrb r3, [r1, #80] @ zero_extendqisi2 cmp r3, #67 add r3, r2, r4 addeq r3, ip, r3 @@ -1708,14 +1715,14 @@ SandiskSetRRPara: add r2, r2, #1 ldrsb r3, [r3, #5] str r3, [r5] - b .L291 -.L297: + b .L293 +.L299: mov r0, #0 ldmfd sp!, {r3, r4, r5, lr} b NandcWaitFlashReady -.L299: +.L301: .align 2 -.L298: +.L300: .word .LANCHOR1+304 .word .LANCHOR0 .fnend @@ -1732,26 +1739,26 @@ micron_auto_read_calibration_config: mov r4, r0 mov r5, r1 bl NandcWaitFlashReady - ldr r3, .L302 + ldr r2, .L304 mov r0, #200 - add r2, r3, r4, asl #3 - ldrb r4, [r2, #16] @ zero_extendqisi2 - ldr r3, [r2, #12] + ldr r3, [r2, r4, asl #3] + add r2, r2, r4, asl #3 + ldrb r4, [r2, #4] @ zero_extendqisi2 add r4, r3, r4, asl #8 mov r3, #239 str r3, [r4, #2056] mov r3, #150 str r3, [r4, #2052] - bl NandcDelayns + bl ndelay str r5, [r4, #2048] mov r3, #0 str r3, [r4, #2048] str r3, [r4, #2048] str r3, [r4, #2048] ldmfd sp!, {r3, r4, r5, pc} -.L303: +.L305: .align 2 -.L302: +.L304: .word .LANCHOR0 .fnend .size micron_auto_read_calibration_config, .-micron_auto_read_calibration_config @@ -1765,15 +1772,15 @@ FlashEraseSLc2KBlocks: stmfd sp!, {r4, r5, r6, r7, r8, r9, lr} .save {r4, r5, r6, r7, r8, r9, lr} mov r5, #0 - ldr r8, .L316 + ldr r8, .L318 .pad #20 sub sp, sp, #20 mov r6, r0 mov r9, r1 mov r7, r5 -.L305: +.L307: cmp r7, r9 - beq .L315 + beq .L317 rsb r3, r7, r9 add r2, sp, #8 add r0, r6, r5 @@ -1787,7 +1794,7 @@ FlashEraseSLc2KBlocks: cmp r3, r2 mvncs r3, #0 strcs r3, [r6, r5] - bcs .L307 + bcs .L309 add r2, r8, r3 add r3, r8, r3, asl #4 ldrb r4, [r2, #2232] @ zero_extendqisi2 @@ -1810,7 +1817,7 @@ FlashEraseSLc2KBlocks: sbfx r0, r0, #0, #1 str r0, [r6, r5] mov r0, r4 - ldr r1, [r8, #4] + ldr r1, [r8, #36] add r1, r1, r3 bl FlashEraseCmd mov r0, r4 @@ -1823,25 +1830,25 @@ FlashEraseSLc2KBlocks: strne r3, [r6, r5] ldr r3, [r6, r5] cmn r3, #1 - bne .L309 - ldr r0, .L316+4 + bne .L311 + ldr r0, .L318+4 ldr r1, [sp, #8] bl printk -.L309: +.L311: mov r0, r4 bl NandcFlashDeCs -.L307: +.L309: add r7, r7, #1 add r5, r5, #36 - b .L305 -.L315: + b .L307 +.L317: mov r0, #0 add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc} -.L317: +.L319: .align 2 -.L316: +.L318: .word .LANCHOR0 .word .LC1 .fnend @@ -1856,19 +1863,19 @@ FlashEraseBlocks: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r8, r2 - ldr r4, .L354 + ldr r4, .L356 .pad #28 sub sp, sp, #28 - ldrb r5, [r4] @ zero_extendqisi2 + ldrb r5, [r4, #32] @ zero_extendqisi2 cmp r5, #0 moveq r9, r0 moveq r10, r1 moveq fp, r4 - beq .L319 + beq .L321 mov r1, r2 bl FlashEraseSLc2KBlocks - b .L320 -.L328: + b .L322 +.L330: mov r3, #36 mov r1, #0 mul r6, r3, r5 @@ -1887,24 +1894,24 @@ FlashEraseBlocks: cmp r0, r3 mvncs r3, #0 strcs r3, [r9, r6] - bcc .L351 -.L322: + bcc .L353 +.L324: add r5, r5, #1 -.L319: +.L321: cmp r5, r8 - bcc .L328 - b .L352 -.L351: + bcc .L330 + b .L354 +.L353: ldrb r3, [fp, #2240] @ zero_extendqisi2 cmp r3, #0 add r3, r4, r0, asl #4 ldr r3, [r3, #2108] moveq r7, #0 cmp r3, #0 - beq .L324 + beq .L326 uxtb r0, r0 bl FlashWaitCmdDone -.L324: +.L326: ldr r2, [sp, #20] cmp r7, #0 ldr r0, [sp, #12] @@ -1926,21 +1933,21 @@ FlashEraseBlocks: bl NandcFlashCs cmp r10, #1 mov r0, r6 - bne .L326 - ldrb r3, [fp, #144] @ zero_extendqisi2 + bne .L328 + ldrb r3, [fp, #148] @ zero_extendqisi2 cmp r3, #0 - beq .L326 + beq .L328 bl flash_enter_slc_mode - b .L327 -.L326: + b .L329 +.L328: bl flash_exit_slc_mode -.L327: +.L329: ldr r3, [sp, #20] mov r0, r6 ldr r1, [sp, #16] add r5, r5, r7 add r3, r4, r3, asl #2 - ldr r2, [r3, #1172] + ldr r2, [r3, #1176] adds r2, r2, #0 movne r2, #1 bl FlashWaitReadyEN @@ -1950,56 +1957,56 @@ FlashEraseBlocks: bl FlashEraseCmd mov r0, r6 bl NandcFlashDeCs - b .L322 -.L352: - ldr r6, .L354 + b .L324 +.L354: + ldr r6, .L356 mov r5, #0 - ldr r7, .L354+4 -.L329: + ldr r7, .L356+4 +.L331: ldrb r2, [r4, #2230] @ zero_extendqisi2 - ldr r3, .L354 + ldr r3, .L356 cmp r5, r2 - bcs .L353 + bcs .L355 uxtb r0, r5 bl FlashWaitCmdDone cmp r10, #1 - bne .L330 - ldrb r3, [r6, #144] @ zero_extendqisi2 + bne .L332 + ldrb r3, [r6, #148] @ zero_extendqisi2 cmp r3, #0 - beq .L330 + beq .L332 ldrb r0, [r7, r5, asl #4] @ zero_extendqisi2 bl flash_exit_slc_mode -.L330: +.L332: add r5, r5, #1 - b .L329 -.L353: + b .L331 +.L355: ldr r2, [r3, #2244] cmp r2, #0 - bne .L332 -.L334: + bne .L334 +.L336: mov r0, #0 - b .L320 -.L332: + b .L322 +.L334: ldrb r3, [r3, #2068] @ zero_extendqisi2 cmp r3, #69 - bne .L334 + bne .L336 mov r3, #0 mov r2, #36 mov r1, r3 -.L333: +.L335: cmp r3, r8 - beq .L334 + beq .L336 mul r0, r2, r3 add r3, r3, #1 str r1, [r9, r0] - b .L333 -.L320: + b .L335 +.L322: add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L355: +.L357: .align 2 -.L354: +.L356: .word .LANCHOR0 .word .LANCHOR0+2100 .fnend @@ -2014,55 +2021,55 @@ FlashReadDpCmd: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} .save {r4, r5, r6, r7, r8, r9, r10, lr} mov r8, r0 - ldr r0, .L362 + ldr r0, .L364 mov r7, r1 uxtb r10, r2 mov r9, r2, lsr #8 add r3, r0, r8, asl #3 - mov r5, r2, lsr #16 + mov r6, r2, lsr #16 ldrb r1, [r0, #64] @ zero_extendqisi2 uxtb lr, r7 - ldr r4, [r3, #12] + ldrb r3, [r3, #4] @ zero_extendqisi2 mov ip, r7, lsr #8 - ldrb r3, [r3, #16] @ zero_extendqisi2 - cmp r1, #1 ldr r2, [r0, #44] + cmp r1, #1 + ldr r4, [r0, r8, asl #3] mov r1, r7, lsr #16 mov r3, r3, asl #8 ldrb r2, [r2, #7] @ zero_extendqisi2 - bne .L357 + bne .L359 cmp r2, #1 addeq r2, r4, r3 add r4, r4, r3 - moveq r6, #38 - streq r6, [r2, #2056] - mov r6, #0 + moveq r5, #38 + streq r5, [r2, #2056] + mov r5, #0 ldrb r3, [r0, #57] @ zero_extendqisi2 ldrb r2, [r0, #56] @ zero_extendqisi2 mov r0, r8 str r2, [r4, #2056] - str r6, [r4, #2052] - str r6, [r4, #2052] + str r5, [r4, #2052] + str r5, [r4, #2052] str lr, [r4, #2052] str ip, [r4, #2052] str r1, [r4, #2052] str r3, [r4, #2056] bl NandcWaitFlashReady - str r6, [r4, #2056] + str r5, [r4, #2056] mov r3, #48 - str r6, [r4, #2052] - str r6, [r4, #2052] + str r5, [r4, #2052] + str r5, [r4, #2052] str r10, [r4, #2052] str r9, [r4, #2052] - str r5, [r4, #2052] + str r6, [r4, #2052] str r3, [r4, #2056] - b .L359 -.L357: + b .L361 +.L359: cmp r2, #1 addeq r2, r4, r3 add r3, r4, r3 - moveq r6, #38 - streq r6, [r2, #2056] + moveq r5, #38 + streq r5, [r2, #2056] ldrb r2, [r0, #56] @ zero_extendqisi2 str r2, [r3, #2056] ldrb r2, [r0, #57] @ zero_extendqisi2 @@ -2073,16 +2080,16 @@ FlashReadDpCmd: mov r2, #48 str r10, [r3, #2052] str r9, [r3, #2052] - str r5, [r3, #2052] + str r6, [r3, #2052] str r2, [r3, #2056] -.L359: +.L361: mov r0, r8 mov r1, r7 ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} b FlashSetRandomizer -.L363: +.L365: .align 2 -.L362: +.L364: .word .LANCHOR0 .fnend .size FlashReadDpCmd, .-FlashReadDpCmd @@ -2096,39 +2103,39 @@ ftl_flash_de_init: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r0, #0 - ldr r4, .L375 + ldr r4, .L377 bl NandcWaitFlashReady bl FlashSetReadRetryDefault ldr r0, [r4, #2248] cmp r0, #0 - beq .L365 + beq .L367 mov r0, #0 bl flash_enter_slc_mode - b .L366 -.L365: + b .L368 +.L367: bl flash_exit_slc_mode -.L366: +.L368: ldrb r3, [r4, #2252] @ zero_extendqisi2 - ldr r5, .L375 + ldr r5, .L377 cmp r3, #0 - beq .L367 + beq .L369 ldrb r3, [r5, #2229] @ zero_extendqisi2 tst r3, #1 - beq .L367 + beq .L369 mov r0, #1 bl FlashSetInterfaceMode mov r0, #1 bl NandcSetMode mov r3, #0 strb r3, [r5, #2252] -.L367: - ldr r3, [r4, #12] +.L369: + ldr r3, [r4] mov r0, #0 str r0, [r3, #336] ldmfd sp!, {r3, r4, r5, pc} -.L376: +.L378: .align 2 -.L375: +.L377: .word .LANCHOR0 .fnend .size ftl_flash_de_init, .-ftl_flash_de_init @@ -2140,14 +2147,13 @@ NandcRandmzSel: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L378 - add r0, r3, r0, asl #3 - ldr r3, [r0, #12] + ldr r3, .L380 + ldr r3, [r3, r0, asl #3] str r1, [r3, #336] bx lr -.L379: +.L381: .align 2 -.L378: +.L380: .word .LANCHOR0 .fnend .size NandcRandmzSel, .-NandcRandmzSel @@ -2164,35 +2170,35 @@ NandcTimeCfg: mov r4, r0 mov r0, #0 bl rknand_get_clk_rate - ldr r1, .L391 + ldr r1, .L393 bl __aeabi_idiv - ldr r3, .L391+4 - ldr r3, [r3, #80] + ldr r3, .L393+4 + ldr r3, [r3, #84] cmp r0, #250 movwgt r2, #8354 - bgt .L389 + bgt .L391 cmp r0, #220 - bgt .L390 + bgt .L392 cmp r0, #185 movwgt r2, #4226 - bgt .L389 + bgt .L391 cmp r0, #160 movwgt r2, #4194 - bgt .L389 + bgt .L391 cmp r4, #35 movwls r2, #4193 - bls .L389 + bls .L391 cmp r4, #99 movwls r2, #4225 - bls .L389 -.L390: + bls .L391 +.L392: movw r2, #8322 -.L389: +.L391: str r2, [r3, #4] ldmfd sp!, {r4, pc} -.L392: +.L394: .align 2 -.L391: +.L393: .word 1000000 .word .LANCHOR0 .fnend @@ -2209,21 +2215,21 @@ FlashTimingCfg: sub r3, r3, #33 bic r3, r3, #32 cmp r3, #1 - bls .L394 + bls .L396 movw r3, #8322 cmp r0, r3 - bne .L395 -.L394: - ldr r3, .L396 - ldr r3, [r3, #80] + bne .L397 +.L396: + ldr r3, .L398 + ldr r3, [r3, #84] str r0, [r3, #4] -.L395: - ldr r3, .L396+4 +.L397: + ldr r3, .L398+4 ldrb r0, [r3, #493] @ zero_extendqisi2 b NandcTimeCfg -.L397: +.L399: .align 2 -.L396: +.L398: .word .LANCHOR0 .word .LANCHOR1 .fnend @@ -2238,21 +2244,20 @@ NandcInit: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r1, #0 - ldr r3, .L401 + ldr r3, .L403 mov r2, #1 mov r5, #0 - str r1, [r3, #16] + stmia r3, {r0, r1} mov r4, r3 - str r0, [r3, #12] - str r2, [r3, #24] + str r2, [r3, #12] mov r2, #2 - str r0, [r3, #20] - str r2, [r3, #32] + str r0, [r3, #8] + str r2, [r3, #20] mov r2, #3 - str r0, [r3, #28] - str r0, [r3, #36] - str r0, [r3, #80] - str r2, [r3, #40] + str r0, [r3, #16] + str r0, [r3, #24] + str r0, [r3, #84] + str r2, [r3, #28] ldr r2, [r0] and r2, r2, #253952 ubfx ip, r2, #13, #1 @@ -2270,14 +2275,14 @@ NandcInit: streq r3, [r4, #2260] str r2, [r0] mov r0, #40 - ldr r3, [r4, #80] + ldr r3, [r4, #84] str r5, [r3, #336] bl NandcTimeCfg - ldr r3, [r4, #80] + ldr r3, [r4, #84] movw r2, #8322 mov r0, #36864 str r2, [r3, #344] - ldr r2, .L401+4 + ldr r2, .L403+4 str r2, [r3, #304] bl ftl_malloc str r5, [r4, #2296] @@ -2287,9 +2292,9 @@ NandcInit: add r0, r0, #32768 str r0, [r4, #2276] ldmfd sp!, {r3, r4, r5, pc} -.L402: +.L404: .align 2 -.L401: +.L403: .word .LANCHOR0 .word 1579009 .fnend @@ -2301,28 +2306,28 @@ NandcGetTimeCfg: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr ip, .L405 + ldr ip, .L407 str lr, [sp, #-4]! .save {lr} - ldr lr, [ip, #80] + ldr lr, [ip, #84] ldr lr, [lr, #4] str lr, [r0] - ldr r0, [ip, #80] + ldr r0, [ip, #84] ldr r0, [r0] str r0, [r1] - ldr r1, [ip, #80] + ldr r1, [ip, #84] ldr r1, [r1, #304] str r1, [r2] - ldr r1, [ip, #80] + ldr r1, [ip, #84] ldr r2, [r1, #308] ldr r1, [r1, #344] uxtb r2, r2 orr r2, r2, r1, asl #16 str r2, [r3] ldr pc, [sp], #4 -.L406: +.L408: .align 2 -.L405: +.L407: .word .LANCHOR0 .fnend .size NandcGetTimeCfg, .-NandcGetTimeCfg @@ -2334,9 +2339,9 @@ NandcBchSel: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L415 + ldr r3, .L417 mov r1, #1 - ldr r2, [r3, #80] + ldr r2, [r3, #84] str r0, [r3, #2308] mov r3, #0 str r1, [r2, #8] @@ -2344,25 +2349,25 @@ NandcBchSel: cmp r0, r1 bfi r3, r1, #8, #8 bfc r3, #18, #1 - bne .L408 -.L411: + bne .L410 +.L413: bfc r3, #4, #1 - b .L409 -.L408: + b .L411 +.L410: cmp r0, #24 orreq r3, r3, #16 - beq .L409 + beq .L411 cmp r0, #40 orr r3, r3, #262144 orr r3, r3, #16 - beq .L411 -.L409: + beq .L413 +.L411: orr r3, r3, #1 str r3, [r2, #12] bx lr -.L416: +.L418: .align 2 -.L415: +.L417: .word .LANCHOR0 .fnend .size NandcBchSel, .-NandcBchSel @@ -2374,12 +2379,12 @@ FlashBchSel: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L418 + ldr r3, .L420 strb r0, [r3, #2312] b NandcBchSel -.L419: +.L421: .align 2 -.L418: +.L420: .word .LANCHOR0 .fnend .size FlashBchSel, .-FlashBchSel @@ -2390,62 +2395,62 @@ ftl_flash_resume: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L429 + ldr r3, .L431 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r5, #0 - ldr r2, [r3, #80] + ldr r2, [r3, #84] mov r4, r3 - ldr r1, [r3, #84] - ldr r6, .L429+4 - str r1, [r2] ldr r1, [r3, #88] - ldr r2, [r3, #80] - str r1, [r2, #4] + ldr r6, .L431+4 + str r1, [r2] ldr r1, [r3, #92] - str r1, [r2, #8] + ldr r2, [r3, #84] + str r1, [r2, #4] ldr r1, [r3, #96] - str r1, [r2, #12] + str r1, [r2, #8] ldr r1, [r3, #100] - str r1, [r2, #304] + str r1, [r2, #12] ldr r1, [r3, #104] - str r1, [r2, #308] + str r1, [r2, #304] ldr r1, [r3, #108] - str r1, [r2, #336] + str r1, [r2, #308] ldr r1, [r3, #112] + str r1, [r2, #336] + ldr r1, [r3, #116] str r1, [r2, #344] -.L422: +.L424: ldrb r3, [r6, r5, asl #3] @ zero_extendqisi2 sub r3, r3, #1 uxtb r3, r3 cmp r3, #253 - bhi .L421 + bhi .L423 uxtb r0, r5 bl FlashReset -.L421: +.L423: add r5, r5, #1 cmp r5, #4 - bne .L422 + bne .L424 ldrb r3, [r4, #2252] @ zero_extendqisi2 - ldr r5, .L429 + ldr r5, .L431 cmp r3, #0 - beq .L423 + beq .L425 mov r0, #1 bl NandcSetMode ldrb r0, [r5, #2229] @ zero_extendqisi2 bl FlashSetInterfaceMode ldrb r0, [r5, #2229] @ zero_extendqisi2 bl NandcSetMode - ldrb r0, [r5, #101] @ zero_extendqisi2 + ldrb r0, [r5, #105] @ zero_extendqisi2 bl NandcSetDdrPara -.L423: +.L425: ldr r3, [r4, #44] ldmfd sp!, {r4, r5, r6, lr} ldrb r0, [r3, #20] @ zero_extendqisi2 b FlashBchSel -.L430: +.L432: .align 2 -.L429: +.L431: .word .LANCHOR0 .word .LANCHOR0+2068 .fnend @@ -2518,7 +2523,7 @@ NandcSendDumpDataStart: ldr r2, [r0, #16] .pad #8 sub sp, sp, #8 - ldr r3, .L437 + ldr r3, .L439 str r2, [sp, #4] ldr r2, [sp, #4] bic r2, r2, #4 @@ -2531,9 +2536,9 @@ NandcSendDumpDataStart: add sp, sp, #8 @ sp needed bx lr -.L438: +.L440: .align 2 -.L437: +.L439: .word 538969130 .fnend .size NandcSendDumpDataStart, .-NandcSendDumpDataStart @@ -2547,12 +2552,12 @@ NandcSendDumpDataDone: @ link register save eliminated. .pad #8 sub sp, sp, #8 -.L440: +.L442: ldr r3, [r0, #8] str r3, [sp, #4] ldr r3, [sp, #4] tst r3, #1048576 - beq .L440 + beq .L442 add sp, sp, #8 @ sp needed bx lr @@ -2568,30 +2573,30 @@ NandcXferStart: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov lr, #16 - ldr r5, .L462 - mov r4, #0 + ldr r4, .L464 + mov r5, #0 .pad #28 sub sp, sp, #28 - add r0, r5, r0, asl #3 + ldr r6, [r4, r0, asl #3] + add r0, r4, r0, asl #3 ldr r8, [sp, #64] - ldr r6, [r0, #12] - ldrb r0, [r0, #16] @ zero_extendqisi2 - ldr ip, [sp, #68] + ldrb r0, [r0, #4] @ zero_extendqisi2 ldr r7, [r6, #12] + ldr ip, [sp, #68] bfi r7, lr, #8, #8 - bfi r7, r4, #3, #1 - bfi r4, r1, #1, #1 - orr r4, r4, #8 + bfi r7, r5, #3, #1 + bfi r5, r1, #1, #1 + orr r5, r5, #8 bfi r7, r0, #5, #3 mov r0, #1 - bfi r4, r0, #5, #2 - orr r4, r4, #536870912 + bfi r5, r0, #5, #2 + orr r5, r5, #536870912 mov r3, r3, lsr r0 - orr r4, r4, #1024 - bfi r4, r3, #4, #1 - ldr r3, [r5, #2260] + orr r5, r5, #1024 + bfi r5, r3, #4, #1 + ldr r3, [r4, #2260] cmp r3, #3 - bls .L445 + bls .L447 ldr r3, [r6, #16] str r3, [sp, #20] ldr r3, [sp, #20] @@ -2602,20 +2607,20 @@ NandcXferStart: cmp ip, #0 cmpeq r8, #0 str r3, [sp, #8] - beq .L446 + beq .L448 cmp r1, #0 - bne .L447 -.L455: + bne .L449 +.L457: add r2, r2, #1 cmp r8, #0 mov r2, r2, asr #1 movne r0, r8 - bfi r4, r2, #22, #6 - ldreq r0, [r5, #2272] - b .L449 -.L447: - ldr r3, [r5, #2308] - mov r9, r5 + bfi r5, r2, #22, #6 + ldreq r0, [r4, #2272] + b .L451 +.L449: + ldr r3, [r4, #2308] + mov r9, r4 cmp r3, #25 movcc r3, #64 movcs r3, #128 @@ -2624,10 +2629,10 @@ NandcXferStart: str r3, [sp, #12] mov r3, #0 mov r0, r3 -.L451: +.L453: ldr lr, [sp, #12] cmp r0, lr - bcs .L455 + bcs .L457 ldr lr, [sp, #8] mov r10, r3, lsr #2 add r0, r0, #1 @@ -2642,30 +2647,30 @@ NandcXferStart: strne lr, [fp, r10, asl #2] ldr lr, [sp, #4] add r3, r3, lr - b .L451 -.L449: - ldr r3, [r5, #2276] - ubfx r10, r4, #22, #5 + b .L453 +.L451: + ldr r3, [r4, #2276] + ubfx r10, r5, #22, #5 mov r9, r1 - str r0, [r5, #2280] + str r0, [r4, #2280] mov r2, r9 mov r1, r10, asl #10 - str r3, [r5, #2284] + str r3, [r4, #2284] bl rknand_dma_map_single mov r2, r9 mov r1, r10, asl #7 clz r9, r9 mov r9, r9, lsr #5 - str r0, [r5, #2288] - ldr r0, [r5, #2284] + str r0, [r4, #2288] + ldr r0, [r4, #2284] bl rknand_dma_map_single mov r3, #1 - str r3, [r5, #2296] + str r3, [r4, #2296] tst r8, #3 - ldr r3, [r5, #2288] - str r0, [r5, #2292] + ldr r3, [r4, #2288] + str r0, [r4, #2292] str r3, [r6, #20] - ldr r3, [r5, #2292] + ldr r3, [r4, #2292] str r3, [r6, #24] mov r3, #0 str r3, [sp, #20] @@ -2690,20 +2695,20 @@ NandcXferStart: ldr r3, [sp, #20] orr r3, r3, #1 str r3, [sp, #20] -.L446: +.L448: ldr r3, [sp, #20] str r3, [r6, #16] -.L445: +.L447: str r7, [r6, #12] - str r4, [r6, #8] - orr r4, r4, #4 - str r4, [r6, #8] + str r5, [r6, #8] + orr r5, r5, #4 + str r5, [r6, #8] add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L463: +.L465: .align 2 -.L462: +.L464: .word .LANCHOR0 .fnend .size NandcXferStart, .-NandcXferStart @@ -2717,13 +2722,13 @@ Ftl_log2: @ link register save eliminated. mov r1, #0 mov r2, #1 -.L465: +.L467: cmp r2, r0 uxth r3, r1 add r1, r1, #1 movls r2, r2, asl #1 - bls .L465 -.L467: + bls .L467 +.L469: sub r0, r3, #1 uxth r0, r0 bx lr @@ -2748,7 +2753,7 @@ FtlSysBlkNumInit: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L471 + ldr r3, .L473 cmp r0, #23 movw r1, #2330 add r2, r3, #2320 @@ -2766,9 +2771,9 @@ FtlSysBlkNumInit: rsb r2, r2, r1 str r2, [r3, #2332] bx lr -.L472: +.L474: .align 2 -.L471: +.L473: .word .LANCHOR0 .fnend .size FtlSysBlkNumInit, .-FtlSysBlkNumInit @@ -2782,7 +2787,7 @@ FtlConstantsInit: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} movw r3, #2340 - ldr r4, .L502 + ldr r4, .L504 movw r1, #2344 ldrh r6, [r0, #8] mov r5, r0 @@ -2794,22 +2799,22 @@ FtlConstantsInit: movw r3, #2342 strh r2, [r4, r3] @ movhi ldrh r3, [r0, #12] - ldr r0, .L502+4 + ldr r0, .L504+4 strh r3, [r4, r1] @ movhi movw r1, #2330 strh lr, [r4, r1] @ movhi mov r1, #0 -.L474: +.L476: strb r1, [r1, r0] add r1, r1, #1 cmp r1, #32 - bne .L474 + bne .L476 ldrh r0, [r5, #14] ldrh r1, [r5, #20] cmp r1, r0, lsr #8 - bcs .L475 + bcs .L477 uxtb r10, r3 - ldr r9, .L502+4 + ldr r9, .L504+4 mov r1, r10, asl #1 uxtb r1, r1 str r1, [sp, #4] @@ -2817,9 +2822,9 @@ FtlConstantsInit: mul r1, r3, r1 str r1, [sp] mov r1, #0 -.L476: +.L478: cmp r1, r3 - bcs .L478 + bcs .L480 ldr ip, [sp] uxtb r0, r1 rsb r7, r3, r1 @@ -2830,10 +2835,10 @@ FtlConstantsInit: mov ip, #0 str r7, [sp, #12] mov r8, ip -.L479: +.L481: cmp r8, r2 add ip, ip, r3 - bcs .L501 + bcs .L503 ldr r7, [sp, #12] add fp, r0, r10 add r8, r8, #1 @@ -2843,18 +2848,18 @@ FtlConstantsInit: ldr r7, [sp, #4] add r0, r0, r7 uxtb r0, r0 - b .L479 -.L501: + b .L481 +.L503: add r1, r1, #1 - b .L476 -.L478: + b .L478 +.L480: movw r1, #2342 mov r2, r2, asl #1 strh r2, [r4, r1] @ movhi movw r2, #2330 mov lr, lr, lsr #1 strh lr, [r4, r2] @ movhi -.L475: +.L477: cmp r6, #1 movw r2, #2380 mov r1, #5 @@ -2862,9 +2867,9 @@ FtlConstantsInit: movw r1, #2382 mov r0, #0 strh r0, [r4, r1] @ movhi - ldreq r1, .L502 - ldrb r9, [r4] @ zero_extendqisi2 - ldr r8, .L502+8 + ldreq r1, .L504 + ldrb r9, [r4, #32] @ zero_extendqisi2 + ldr r8, .L504+8 streqh r6, [r1, r2] @ movhi movw r1, #2342 ldrh r7, [r4, r1] @@ -2874,7 +2879,7 @@ FtlConstantsInit: movne r2, #384 strneh r2, [r8] @ movhi smulbb r7, r7, r3 - ldr r2, .L502 + ldr r2, .L504 ldrh r10, [r5, #16] add r1, r2, #2320 str r2, [sp, #8] @@ -2917,7 +2922,7 @@ FtlConstantsInit: movw r0, #2402 ldrh ip, [r5, #26] mul r1, r1, r3 - ldr r5, .L502 + ldr r5, .L504 strh ip, [r4, r0] @ movhi movwhi ip, #2382 mul r0, r6, r7 @@ -2938,7 +2943,7 @@ FtlConstantsInit: bl __aeabi_idiv movw r3, #2408 mov r1, r7 - ldr r10, .L502 + ldr r10, .L504 uxth r0, r0 cmp r0, #4 strhih r0, [r5, r3] @ movhi @@ -2965,7 +2970,7 @@ FtlConstantsInit: bl __aeabi_uidiv cmp r7, #1 uxtah r0, r6, r0 - ldr r6, .L502 + ldr r6, .L504 addeq r0, r0, #4 str r0, [r10, #2316] ldr r3, [r4, #2316] @@ -2994,7 +2999,7 @@ FtlConstantsInit: movw r1, #2408 ldrh r2, [r4, r1] movw r3, #2426 - ldrb ip, [r4, #144] @ zero_extendqisi2 + ldrb ip, [r4, #148] @ zero_extendqisi2 cmp ip, #0 strh r0, [r4, r3] @ movhi mov r3, #0 @@ -3007,14 +3012,14 @@ FtlConstantsInit: add r0, r3, #3 addne r3, r3, #5 str r0, [r4, #2416] - bne .L500 + bne .L502 cmp r0, #7 - bhi .L489 + bhi .L491 mov r3, #8 -.L500: +.L502: str r3, [r6, #2416] -.L489: - ldr r2, .L502+12 +.L491: + ldr r2, .L504+12 mov r3, #0 mov r0, #0 strh r3, [r2] @ movhi @@ -3030,9 +3035,9 @@ FtlConstantsInit: add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L503: +.L505: .align 2 -.L502: +.L504: .word .LANCHOR0 .word .LANCHOR0+2348 .word .LANCHOR0+2384 @@ -3047,29 +3052,29 @@ IsBlkInVendorPart: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L511 + ldr r2, .L513 movw r3, #2434 ldrh r3, [r2, r3] cmp r3, #0 - beq .L510 + beq .L512 movw r1, #2408 ldr r3, [r2, #2436] ldrh r2, [r2, r1] add r2, r3, r2, asl #1 -.L506: +.L508: cmp r3, r2 - beq .L510 + beq .L512 ldrh r1, [r3], #2 cmp r1, r0 - bne .L506 + bne .L508 mov r0, #1 bx lr -.L510: +.L512: mov r0, #0 bx lr -.L512: +.L514: .align 2 -.L511: +.L513: .word .LANCHOR0 .fnend .size IsBlkInVendorPart, .-IsBlkInVendorPart @@ -3080,16 +3085,16 @@ FtlCacheMetchLpa: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L520 + ldr r2, .L522 ldr r3, [r2, #2440] cmp r3, #0 - beq .L516 + beq .L518 stmfd sp!, {r4, r5, lr} .save {r4, r5, lr} mov r5, #36 ldr r4, [r2, #2444] mov r2, #0 -.L515: +.L517: mla ip, r5, r2, r4 ldr lr, [ip, #16] cmp lr, r0 @@ -3098,21 +3103,21 @@ FtlCacheMetchLpa: cmp lr, r1 movhi ip, #0 cmp ip, #0 - bne .L517 + bne .L519 add r2, r2, #1 cmp r2, r3 - bne .L515 + bne .L517 mov r0, ip ldmfd sp!, {r4, r5, pc} -.L516: +.L518: mov r0, r3 bx lr -.L517: +.L519: mov r0, #1 ldmfd sp!, {r4, r5, pc} -.L521: +.L523: .align 2 -.L520: +.L522: .word .LANCHOR0 .fnend .size FtlCacheMetchLpa, .-FtlCacheMetchLpa @@ -3124,12 +3129,12 @@ FtlGetCap: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L523 + ldr r3, .L525 ldr r0, [r3, #2428] bx lr -.L524: +.L526: .align 2 -.L523: +.L525: .word .LANCHOR0 .fnend .size FtlGetCap, .-FtlGetCap @@ -3141,12 +3146,12 @@ FtlGetCapacity: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L526 + ldr r3, .L528 ldr r0, [r3, #2428] bx lr -.L527: +.L529: .align 2 -.L526: +.L528: .word .LANCHOR0 .fnend .size FtlGetCapacity, .-FtlGetCapacity @@ -3158,12 +3163,12 @@ ftl_get_density: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L529 + ldr r3, .L531 ldr r0, [r3, #2428] bx lr -.L530: +.L532: .align 2 -.L529: +.L531: .word .LANCHOR0 .fnend .size ftl_get_density, .-ftl_get_density @@ -3175,12 +3180,12 @@ FtlGetLpn: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L532 + ldr r3, .L534 ldr r0, [r3, #2448] bx lr -.L533: +.L535: .align 2 -.L532: +.L534: .word .LANCHOR0 .fnend .size FtlGetLpn, .-FtlGetLpn @@ -3195,7 +3200,7 @@ FtlBbmMapBadBlock: .save {r4, r5, r6, lr} .pad #8 movw r3, #2386 - ldr r5, .L536 + ldr r5, .L538 mov r6, r0 ldrh r4, [r5, r3] mov r1, r4 @@ -3211,7 +3216,7 @@ FtlBbmMapBadBlock: mov lr, r3, lsr #5 ldr r0, [ip, lr, asl #2] orr r1, r0, r4, asl r1 - ldr r0, .L536+4 + ldr r0, .L538+4 str r1, [ip, lr, asl #2] str r1, [sp] mov r1, r6 @@ -3224,9 +3229,9 @@ FtlBbmMapBadBlock: add sp, sp, #8 @ sp needed ldmfd sp!, {r4, r5, r6, pc} -.L537: +.L539: .align 2 -.L536: +.L538: .word .LANCHOR0 .word .LC2 .fnend @@ -3242,7 +3247,7 @@ FtlBbmIsBadBlock: stmfd sp!, {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} movw r3, #2386 - ldr r5, .L540 + ldr r5, .L542 mov r7, r0 ldrh r6, [r5, r3] mov r1, r6 @@ -3260,9 +3265,9 @@ FtlBbmIsBadBlock: mov r0, r0, lsr r4 and r0, r0, #1 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L541: +.L543: .align 2 -.L540: +.L542: .word .LANCHOR0 .fnend .size FtlBbmIsBadBlock, .-FtlBbmIsBadBlock @@ -3287,29 +3292,29 @@ FtlBbtCalcTotleCnt: stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} movw r3, #2386 - ldr r4, .L552 + ldr r4, .L554 mov r5, #0 ldrh r6, [r4, r3] movw r3, #2342 ldrh r3, [r4, r3] mov r4, r5 mul r6, r3, r6 -.L544: +.L546: uxth r0, r5 cmp r0, r6 - bge .L551 + bge .L553 bl FtlBbmIsBadBlock add r5, r5, #1 cmp r0, #0 addne r4, r4, #1 uxthne r4, r4 - b .L544 -.L551: + b .L546 +.L553: mov r0, r4 ldmfd sp!, {r4, r5, r6, pc} -.L553: +.L555: .align 2 -.L552: +.L554: .word .LANCHOR0 .fnend .size FtlBbtCalcTotleCnt, .-FtlBbtCalcTotleCnt @@ -3323,7 +3328,7 @@ V2P_block: stmfd sp!, {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} movw r3, #2344 - ldr r6, .L556 + ldr r6, .L558 mov r4, r1 mov r7, r0 ldrh r5, [r6, r3] @@ -3338,9 +3343,9 @@ V2P_block: smlabb r0, r3, r0, r4 uxth r0, r0 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L557: +.L559: .align 2 -.L556: +.L558: .word .LANCHOR0 .fnend .size V2P_block, .-V2P_block @@ -3351,7 +3356,7 @@ P2V_plane: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L560 + ldr r3, .L562 movw r2, #2344 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} @@ -3367,9 +3372,9 @@ P2V_plane: add r1, r4, r1 uxth r0, r1 ldmfd sp!, {r4, r5, r6, pc} -.L561: +.L563: .align 2 -.L560: +.L562: .word .LANCHOR0 .fnend .size P2V_plane, .-P2V_plane @@ -3383,7 +3388,7 @@ P2V_block_in_plane: stmfd sp!, {r4, lr} .save {r4, lr} movw r3, #2386 - ldr r4, .L564 + ldr r4, .L566 ldrh r1, [r4, r3] bl __aeabi_uidivmod movw r3, #2344 @@ -3392,9 +3397,9 @@ P2V_block_in_plane: bl __aeabi_uidiv uxth r0, r0 ldmfd sp!, {r4, pc} -.L565: +.L567: .align 2 -.L564: +.L566: .word .LANCHOR0 .fnend .size P2V_block_in_plane, .-P2V_block_in_plane @@ -3407,13 +3412,13 @@ ftl_cmp_data_ver: @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. cmp r0, r1 - bls .L567 + bls .L569 rsb r0, r1, r0 cmp r0, #-2147483648 movhi r0, #0 movls r0, #1 bx lr -.L567: +.L569: rsb r0, r0, r1 cmp r0, #-2147483648 movls r0, #0 @@ -3429,14 +3434,14 @@ FtlFreeSysBlkQueueEmpty: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L570 + ldr r3, .L572 ldrh r0, [r3, #6] clz r0, r0 mov r0, r0, lsr #5 bx lr -.L571: +.L573: .align 2 -.L570: +.L572: .word .LANCHOR0+2512 .fnend .size FtlFreeSysBlkQueueEmpty, .-FtlFreeSysBlkQueueEmpty @@ -3448,15 +3453,15 @@ FtlFreeSysBlkQueueFull: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L573 + ldr r3, .L575 ldrh r0, [r3, #6] sub r0, r0, #1024 clz r0, r0 mov r0, r0, lsr #5 bx lr -.L574: +.L576: .align 2 -.L573: +.L575: .word .LANCHOR0+2512 .fnend .size FtlFreeSysBlkQueueFull, .-FtlFreeSysBlkQueueFull @@ -3475,16 +3480,16 @@ FtlFreeSysBlkQueueIn: uxth r3, r3 cmp r3, r2 ldmhifd sp!, {r3, r4, r5, r6, r7, pc} - ldr r4, .L585 + ldr r4, .L587 ldrh r3, [r4, #6] cmp r3, #1024 ldmeqfd sp!, {r3, r4, r5, r6, r7, pc} cmp r1, #0 - beq .L577 - ldr r5, .L585+4 + beq .L579 + ldr r5, .L587+4 ldr r3, [r5, #-3616] cmp r3, #0 - bne .L577 + bne .L579 bl P2V_block_in_plane mov r1, #1 mov r3, r7, asl #10 @@ -3501,7 +3506,7 @@ FtlFreeSysBlkQueueIn: ldr r3, [r5, #-3604] add r3, r3, #1 str r3, [r5, #-3604] -.L577: +.L579: ldrh r3, [r4, #6] add r3, r3, #1 strh r3, [r4, #6] @ movhi @@ -3512,9 +3517,9 @@ FtlFreeSysBlkQueueIn: strh r3, [r4, #4] @ movhi strh r7, [r2, #8] @ movhi ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L586: +.L588: .align 2 -.L585: +.L587: .word .LANCHOR0+2512 .word .LANCHOR2 .fnend @@ -3526,9 +3531,9 @@ FtlFreeSysBLkSort: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L600 + ldr r3, .L602 ldrh ip, [r3, #28] - ldr r3, .L600+4 + ldr r3, .L602+4 ldrh r2, [r3, #6] cmp r2, #0 bxeq lr @@ -3539,11 +3544,11 @@ FtlFreeSysBLkSort: and ip, ip, #31 ldrh r2, [r3, #4] mov r4, r0 -.L589: +.L591: uxth lr, r0 add r0, r0, #1 cmp lr, ip - bge .L599 + bge .L601 add lr, r3, r1, asl #1 add r1, r1, #1 ubfx r1, r1, #0, #10 @@ -3553,15 +3558,15 @@ FtlFreeSysBLkSort: mov r4, #1 add r2, r2, r4 ubfx r2, r2, #0, #10 - b .L589 -.L599: + b .L591 +.L601: cmp r4, #0 strneh r1, [r3, #2] @ movhi strneh r2, [r3, #4] @ movhi ldmfd sp!, {r4, pc} -.L601: +.L603: .align 2 -.L600: +.L602: .word .LANCHOR2-3600 .word .LANCHOR0+2512 .fnend @@ -3575,14 +3580,14 @@ FtlFreeSysBlkQueueOut: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} .save {r4, r5, r6, r7, r8, r9, r10, lr} - ldr r7, .L613 + ldr r7, .L615 add r4, r7, #2512 mov r8, r4 -.L603: +.L605: ldrh r1, [r4, #6] cmp r1, #0 - beq .L604 - ldr r5, .L613+4 + beq .L606 + ldr r5, .L615+4 sub r1, r1, #1 ldrh r3, [r4, #2] strh r1, [r4, #6] @ movhi @@ -3593,20 +3598,20 @@ FtlFreeSysBlkQueueOut: ubfx r3, r3, #0, #10 ldrh r6, [r2, #8] strh r3, [r4, #2] @ movhi - bne .L605 + bne .L607 mov r0, r6 bl P2V_block_in_plane mov r3, r6, asl #10 mov r9, r0 ldr r0, [r5, #-3612] str r3, [r0, #4] - ldrb r3, [r7, #144] @ zero_extendqisi2 + ldrb r3, [r7, #148] @ zero_extendqisi2 cmp r3, #0 - beq .L606 + beq .L608 mov r1, r10 mov r2, #1 bl FlashEraseBlocks -.L606: +.L608: mov r1, #1 ldr r0, [r5, #-3612] mov r2, r1 @@ -3619,29 +3624,29 @@ FtlFreeSysBlkQueueOut: ldr r3, [r5, #-3604] add r3, r3, #1 str r3, [r5, #-3604] - b .L605 -.L604: - ldr r0, .L613+8 - bl printk -.L607: b .L607 -.L605: +.L606: + ldr r0, .L615+8 + bl printk +.L609: + b .L609 +.L607: sub r3, r6, #1 movw r2, #65533 uxth r3, r3 cmp r3, r2 - bls .L608 + bls .L610 mov r1, r6 ldrh r2, [r8, #6] - ldr r0, .L613+12 + ldr r0, .L615+12 bl printk - b .L603 -.L608: + b .L605 +.L610: mov r0, r6 ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L614: +.L616: .align 2 -.L613: +.L615: .word .LANCHOR0 .word .LANCHOR2 .word .LC3 @@ -3655,35 +3660,35 @@ test_node_in_list: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L621 + ldr r3, .L623 str lr, [sp, #-4]! .save {lr} movw lr, #65535 ldr ip, [r3, #-3552] ldr r2, [r0] - ldr r3, .L621+4 + ldr r3, .L623+4 rsb r0, ip, r2 mov r0, r0, asr #1 mul r3, r3, r0 mov r0, #6 uxth r3, r3 -.L617: +.L619: cmp r1, r3 - beq .L618 + beq .L620 ldrh r3, [r2] cmp r3, lr - beq .L619 + beq .L621 mla r2, r0, r3, ip - b .L617 -.L618: + b .L619 +.L620: mov r0, #1 ldr pc, [sp], #4 -.L619: +.L621: mov r0, #0 ldr pc, [sp], #4 -.L622: +.L624: .align 2 -.L621: +.L623: .word .LANCHOR2 .word -1431655765 .fnend @@ -3699,11 +3704,11 @@ insert_data_list: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 movw r3, #2328 - ldr r5, .L640 + ldr r5, .L642 ldrh r3, [r5, r3] cmp r3, r0 - bls .L625 - ldr r2, .L640+4 + bls .L627 + ldr r2, .L642+4 mov lr, #6 mul lr, lr, r0 mvn ip, #0 @@ -3714,7 +3719,7 @@ insert_data_list: strh ip, [r6, lr] @ movhi ldr r3, [r2, #-3548] cmp r3, #0 - beq .L639 + beq .L641 ldr r8, [r2, #-3544] mov r4, r0, asl #1 ldrh r2, [r1, #4] @@ -3722,7 +3727,7 @@ insert_data_list: cmp r2, #0 mulne ip, r2, r7 ldr r7, [r10, #-3552] - ldr r2, .L640+8 + ldr r2, .L642+8 rsb r9, r7, r3 mov r9, r9, asr #1 mul r2, r2, r9 @@ -3734,7 +3739,7 @@ insert_data_list: uxth r2, r2 mov r4, #0 str r5, [sp] -.L634: +.L636: add r4, r4, #1 ldr r5, [sp] uxth r4, r4 @@ -3744,7 +3749,7 @@ insert_data_list: cmp r0, r2 orreq r5, r5, #1 cmp r5, #0 - bne .L625 + bne .L627 mov r10, r2, asl #1 ldrh r5, [r3, #4] ldrh fp, [r8, r10] @@ -3752,56 +3757,56 @@ insert_data_list: mvneq r5, #0 mulne r5, r5, fp cmp r5, ip - bne .L630 + bne .L632 ldr r5, [sp, #4] ldrh r10, [r9, r10] ldrh r5, [r5] cmp r10, r5 - bcc .L632 - b .L631 -.L630: - bhi .L631 + bcc .L634 + b .L633 .L632: + bhi .L633 +.L634: ldrh r5, [r3] movw r10, #65535 cmp r5, r10 streqh r2, [r1, #2] @ movhi streqh r0, [r3] @ movhi - ldreq r3, .L640+4 + ldreq r3, .L642+4 streq r1, [r3, #-3540] - beq .L625 -.L633: + beq .L627 +.L635: mov r3, #6 mov r2, r5 mla r3, r3, r5, r7 - b .L634 -.L631: + b .L636 +.L633: strh r2, [r6, lr] @ movhi ldrh r2, [r3, #2] strh r2, [r1, #2] @ movhi - ldr r2, .L640+4 + ldr r2, .L642+4 ldr ip, [r2, #-3548] cmp r3, ip - bne .L635 + bne .L637 strh r0, [r3, #2] @ movhi -.L639: +.L641: str r1, [r2, #-3548] - b .L625 -.L635: + b .L627 +.L637: ldrh ip, [r3, #2] ldr r1, [r2, #-3552] mov r2, #6 mul r2, r2, ip strh r0, [r1, r2] @ movhi strh r0, [r3, #2] @ movhi -.L625: +.L627: mov r0, #0 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L641: +.L643: .align 2 -.L640: +.L642: .word .LANCHOR0 .word .LANCHOR2 .word -1431655765 @@ -3817,14 +3822,14 @@ INSERT_DATA_LIST: stmfd sp!, {r3, lr} .save {r3, lr} bl insert_data_list - ldr r2, .L644 + ldr r2, .L646 ldrh r3, [r2] add r3, r3, #1 strh r3, [r2] @ movhi ldmfd sp!, {r3, pc} -.L645: +.L647: .align 2 -.L644: +.L646: .word .LANCHOR2-3536 .fnend .size INSERT_DATA_LIST, .-INSERT_DATA_LIST @@ -3839,8 +3844,8 @@ insert_free_list: .save {r4, r5, r6, r7, r8, r9, r10, lr} movw r4, #65535 cmp r0, r4 - beq .L647 - ldr r2, .L655 + beq .L649 + ldr r2, .L657 mov lr, #6 mul r6, lr, r0 mvn r3, #0 @@ -3851,55 +3856,55 @@ insert_free_list: strh r3, [r7, r6] @ movhi ldr r3, [r2, #-3532] cmp r3, #0 - beq .L654 + beq .L656 ldr r9, [r2, #-3608] mov r2, r0, asl #1 ldr r8, [r5, #-3552] rsb r1, r8, r3 ldrh r10, [r9, r2] - ldr r2, .L655+4 + ldr r2, .L657+4 mov r1, r1, asr #1 mul r1, r2, r1 uxth r2, r1 -.L651: +.L653: mov r1, r2, asl #1 ldrh r1, [r9, r1] cmp r1, r10 - bcs .L649 + bcs .L651 ldrh r1, [r3] cmp r1, r4 streqh r2, [ip, #2] @ movhi streqh r0, [r3] @ movhi - beq .L647 -.L650: + beq .L649 +.L652: mla r3, lr, r1, r8 mov r2, r1 - b .L651 -.L649: + b .L653 +.L651: ldrh r1, [r3, #2] strh r1, [ip, #2] @ movhi strh r2, [r7, r6] @ movhi ldr r1, [r5, #-3532] - ldr r2, .L655 + ldr r2, .L657 cmp r3, r1 - bne .L652 + bne .L654 strh r0, [r3, #2] @ movhi -.L654: +.L656: str ip, [r2, #-3532] - b .L647 -.L652: + b .L649 +.L654: ldrh ip, [r3, #2] ldr r1, [r2, #-3552] mov r2, #6 mul r2, r2, ip strh r0, [r1, r2] @ movhi strh r0, [r3, #2] @ movhi -.L647: +.L649: mov r0, #0 ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L656: +.L658: .align 2 -.L655: +.L657: .word .LANCHOR2 .word -1431655765 .fnend @@ -3914,14 +3919,14 @@ INSERT_FREE_LIST: stmfd sp!, {r3, lr} .save {r3, lr} bl insert_free_list - ldr r2, .L659 + ldr r2, .L661 ldrh r3, [r2, #-8] add r3, r3, #1 strh r3, [r2, #-8] @ movhi ldmfd sp!, {r3, pc} -.L660: +.L662: .align 2 -.L659: +.L661: .word .LANCHOR2-3520 .fnend .size INSERT_FREE_LIST, .-INSERT_FREE_LIST @@ -3935,7 +3940,7 @@ List_remove_node: stmfd sp!, {r4, r5, lr} .save {r4, r5, lr} mov ip, #6 - ldr r4, .L667 + ldr r4, .L669 movw r5, #65535 mul r1, ip, r1 ldr r3, [r0] @@ -3943,7 +3948,7 @@ List_remove_node: add lr, r2, r1 cmp lr, r3 ldrh r3, [r2, r1] - bne .L662 + bne .L664 cmp r3, r5 mlane r3, ip, r3, r2 moveq r3, #0 @@ -3951,17 +3956,17 @@ List_remove_node: strne r3, [r0] mvnne r0, #0 strneh r0, [r3, #2] @ movhi - b .L664 -.L662: + b .L666 +.L664: cmp r3, r5 ldrh r0, [lr, #2] - bne .L665 + bne .L667 cmp r0, r3 mulne r0, ip, r0 mvnne r3, #0 strneh r3, [r2, r0] @ movhi - b .L664 -.L665: + b .L666 +.L667: mla r3, ip, r3, r2 strh r0, [r3, #2] @ movhi ldrh r5, [lr, #2] @@ -3969,15 +3974,15 @@ List_remove_node: ldr r3, [r4, #-3552] mul ip, ip, r5 strh r0, [r3, ip] @ movhi -.L664: +.L666: mvn r3, #0 mov r0, #0 strh r3, [r2, r1] @ movhi strh r3, [lr, #2] @ movhi ldmfd sp!, {r4, r5, pc} -.L668: +.L670: .align 2 -.L667: +.L669: .word .LANCHOR2 .fnend .size List_remove_node, .-List_remove_node @@ -3990,19 +3995,19 @@ List_pop_index_node: @ frame_needed = 0, uses_anonymous_args = 0 ldr r3, [r0] cmp r3, #0 - beq .L675 - ldr r2, .L678 + beq .L677 + ldr r2, .L680 movw ip, #65535 stmfd sp!, {r4, lr} .save {r4, lr} mov lr, #6 ldr r4, [r2, #-3552] -.L671: +.L673: cmp r1, #0 - bne .L672 -.L674: + bne .L674 +.L676: rsb r4, r4, r3 - ldr r3, .L678+4 + ldr r3, .L680+4 mov r4, r4, asr #1 mul r4, r3, r4 uxth r4, r4 @@ -4010,20 +4015,20 @@ List_pop_index_node: bl List_remove_node mov r0, r4 ldmfd sp!, {r4, pc} -.L672: +.L674: ldrh r2, [r3] cmp r2, ip - beq .L674 + beq .L676 sub r1, r1, #1 mla r3, lr, r2, r4 uxth r1, r1 - b .L671 -.L675: + b .L673 +.L677: movw r0, #65535 bx lr -.L679: +.L681: .align 2 -.L678: +.L680: .word .LANCHOR2 .word -1431655765 .fnend @@ -4036,35 +4041,35 @@ List_get_gc_head_node: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L687 + ldr r2, .L689 ldr r3, [r2, #-3548] cmp r3, #0 ldrne r1, [r2, #-3552] movne ip, #6 movwne r2, #65535 - beq .L685 -.L682: + beq .L687 +.L684: cmp r0, #0 - beq .L683 + beq .L685 ldrh r3, [r3] cmp r3, r2 subne r0, r0, #1 mlane r3, ip, r3, r1 uxthne r0, r0 - bne .L682 -.L685: + bne .L684 +.L687: movw r0, #65535 bx lr -.L683: +.L685: rsb r3, r1, r3 - ldr r0, .L687+4 + ldr r0, .L689+4 mov r3, r3, asr #1 mul r0, r0, r3 uxth r0, r0 bx lr -.L688: +.L690: .align 2 -.L687: +.L689: .word .LANCHOR2 .word -1431655765 .fnend @@ -4078,26 +4083,26 @@ List_update_data_list: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} - ldr r3, .L697 + ldr r3, .L699 sub r2, r3, #3520 ldrh r2, [r2, #-4] cmp r2, r0 - beq .L690 + beq .L692 sub r2, r3, #3472 ldrh r2, [r2, #-4] cmp r2, r0 - beq .L690 + beq .L692 sub r2, r3, #3424 ldrh r2, [r2, #-4] cmp r2, r0 - beq .L690 + beq .L692 mov lr, #6 ldr r1, [r3, #-3552] mul lr, lr, r0 ldr r2, [r3, #-3548] add ip, r1, lr cmp ip, r2 - beq .L690 + beq .L692 ldr r4, [r3, #-3544] mov r3, r0, asl #1 ldrh r2, [r4, r3] @@ -4108,14 +4113,14 @@ List_update_data_list: mvneq r2, #0 movw r3, #65535 cmp ip, r3 - bne .L692 + bne .L694 ldrh r3, [r1, lr] cmp r3, ip - beq .L690 -.L692: + beq .L692 +.L694: mov r3, #6 mul ip, r3, ip - ldr r3, .L697+4 + ldr r3, .L699+4 add r1, r1, ip mov lr, ip, asr #1 mul r3, r3, lr @@ -4126,8 +4131,8 @@ List_update_data_list: mulne r3, r3, lr mvneq r3, #0 cmp r2, r3 - bcs .L690 - ldr r5, .L697+8 + bcs .L692 + ldr r5, .L699+8 mov r4, r0 mov r1, r4 sub r0, r5, #12 @@ -4137,12 +4142,12 @@ List_update_data_list: sub r3, r3, #1 strh r3, [r5] @ movhi bl INSERT_DATA_LIST -.L690: +.L692: mov r0, #0 ldmfd sp!, {r3, r4, r5, pc} -.L698: +.L700: .align 2 -.L697: +.L699: .word .LANCHOR2 .word -1431655765 .word .LANCHOR2-3536 @@ -4160,16 +4165,16 @@ ftl_map_blk_alloc_new_blk: mov r3, #0 ldrh r1, [r0, #10] ldr r2, [r0, #12] -.L700: +.L702: uxth r5, r3 cmp r5, r1 - bcs .L703 + bcs .L705 mov r7, r2 add r3, r3, #1 ldrh r6, [r7] add r2, r2, #2 cmp r6, #0 - bne .L700 + bne .L702 mov r4, r0 bl FtlFreeSysBlkQueueOut movw r2, #65533 @@ -4178,14 +4183,14 @@ ftl_map_blk_alloc_new_blk: strh r0, [r7] @ movhi uxth r3, r3 cmp r3, r2 - bls .L701 - ldr r3, .L707 - ldr r0, .L707+4 + bls .L703 + ldr r3, .L709 + ldr r0, .L709+4 ldrh r2, [r3, #6] bl printk -.L702: - b .L702 -.L701: +.L704: + b .L704 +.L703: ldr r3, [r4, #28] strh r6, [r4, #2] @ movhi add r3, r3, #1 @@ -4194,12 +4199,12 @@ ftl_map_blk_alloc_new_blk: strh r5, [r4] @ movhi add r3, r3, #1 strh r3, [r4, #8] @ movhi -.L703: +.L705: mov r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L708: +.L710: .align 2 -.L707: +.L709: .word .LANCHOR0+2512 .word .LC5 .fnend @@ -4211,35 +4216,35 @@ select_l2p_ram_region: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L725 + ldr r2, .L727 movw r3, #2426 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r1, #0 ldrh r2, [r2, r3] mov ip, #12 - ldr r3, .L725+4 + ldr r3, .L727+4 movw lr, #65535 ldr r3, [r3, #-3380] -.L710: +.L712: uxth r0, r1 cmp r0, r2 - bcs .L722 + bcs .L724 add r1, r1, #1 mla r4, ip, r1, r3 ldrh r4, [r4, #-12] cmp r4, lr - bne .L710 + bne .L712 ldmfd sp!, {r4, r5, r6, pc} -.L722: +.L724: mov r0, r2 mov r1, #0 mov ip, #-2147483648 mov r5, #12 -.L713: +.L715: uxth r4, r1 cmp r4, r2 - bcs .L723 + bcs .L725 mla lr, r5, r1, r3 add r1, r1, #1 ldr lr, [lr, #4] @@ -4250,35 +4255,35 @@ select_l2p_ram_region: cmp r6, #0 movne ip, lr movne r0, r4 - b .L713 -.L723: + b .L715 +.L725: cmp r0, r2 ldmccfd sp!, {r4, r5, r6, pc} - ldr r1, .L725+8 + ldr r1, .L727+8 mov r0, r2 mvn ip, #0 ldrh r5, [r1] mov r1, #0 -.L716: +.L718: uxth lr, r1 cmp lr, r2 - bcs .L724 + bcs .L726 ldr r4, [r3, #4] cmp r4, ip - bcs .L717 + bcs .L719 ldrh r6, [r3] cmp r6, r5 movne ip, r4 movne r0, lr -.L717: +.L719: add r1, r1, #1 add r3, r3, #12 - b .L716 -.L724: - ldmfd sp!, {r4, r5, r6, pc} + b .L718 .L726: + ldmfd sp!, {r4, r5, r6, pc} +.L728: .align 2 -.L725: +.L727: .word .LANCHOR0 .word .LANCHOR2 .word .LANCHOR2-3376 @@ -4291,7 +4296,7 @@ FtlUpdateVaildLpn: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L735 + ldr r3, .L737 sub r1, r3, #3360 ldrh r2, [r1, #-14] cmp r2, #4 @@ -4299,7 +4304,7 @@ FtlUpdateVaildLpn: addeq r2, r2, #1 streqh r2, [r1, #-14] @ movhi bxeq lr - ldr r0, .L735+4 + ldr r0, .L737+4 mov r2, #0 str lr, [sp, #-4]! .save {lr} @@ -4310,20 +4315,20 @@ FtlUpdateVaildLpn: str r2, [r3, #-3372] ldr r2, [r3, #-3544] add r0, r2, r0, asl #1 -.L729: +.L731: cmp r2, r0 - beq .L734 + beq .L736 ldrh r1, [r2], #2 cmp r1, ip ldrne lr, [r3, #-3372] addne r1, r1, lr strne r1, [r3, #-3372] - b .L729 -.L734: - ldr pc, [sp], #4 + b .L731 .L736: + ldr pc, [sp], #4 +.L738: .align 2 -.L735: +.L737: .word .LANCHOR2 .word .LANCHOR0 .fnend @@ -4336,7 +4341,7 @@ ftl_set_blk_mode: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L741 + ldr r2, .L743 mov r3, r0, lsr #5 cmp r1, #0 and r0, r0, #31 @@ -4348,9 +4353,9 @@ ftl_set_blk_mode: biceq r0, r2, ip, asl r0 str r0, [r1, r3, asl #2] bx lr -.L742: +.L744: .align 2 -.L741: +.L743: .word .LANCHOR2 .fnend .size ftl_set_blk_mode, .-ftl_set_blk_mode @@ -4362,7 +4367,7 @@ ftl_get_blk_mode: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L744 + ldr r3, .L746 mov r2, r0, lsr #5 and r0, r0, #31 ldr r3, [r3, #-3368] @@ -4370,9 +4375,9 @@ ftl_get_blk_mode: mov r0, r3, lsr r0 and r0, r0, #1 bx lr -.L745: +.L747: .align 2 -.L744: +.L746: .word .LANCHOR2 .fnend .size ftl_get_blk_mode, .-ftl_get_blk_mode @@ -4385,16 +4390,16 @@ ftl_sb_update_avl_pages: @ frame_needed = 0, uses_anonymous_args = 0 mov r3, #0 strh r3, [r0, #4] @ movhi - ldr r3, .L756 + ldr r3, .L758 stmfd sp!, {r4, r5, lr} .save {r4, r5, lr} movw r4, #65535 ldrh lr, [r3] add r3, r2, #7 add r3, r0, r3, asl #1 -.L747: +.L749: cmp r2, lr - bcs .L754 + bcs .L756 ldrh ip, [r3, #2]! add r2, r2, #1 cmp ip, r4 @@ -4402,18 +4407,18 @@ ftl_sb_update_avl_pages: ldrneh ip, [r0, #4] addne ip, ip, #1 strneh ip, [r0, #4] @ movhi - b .L747 -.L754: - ldr r2, .L756+4 + b .L749 +.L756: + ldr r2, .L758+4 movw r3, #2388 add ip, r0, #14 movw r5, #65535 ldrh r4, [r2, r3] mov r2, #0 -.L750: +.L752: uxth r3, r2 cmp r3, lr - bcs .L755 + bcs .L757 ldrh r3, [ip, #2]! add r2, r2, #1 cmp r3, r5 @@ -4422,12 +4427,12 @@ ftl_sb_update_avl_pages: subne r3, r3, #1 rsbne r3, r1, r3 strneh r3, [r0, #4] @ movhi - b .L750 -.L755: - ldmfd sp!, {r4, r5, pc} + b .L752 .L757: + ldmfd sp!, {r4, r5, pc} +.L759: .align 2 -.L756: +.L758: .word .LANCHOR0+2320 .word .LANCHOR0 .fnend @@ -4442,17 +4447,17 @@ make_superblock: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} .save {r4, r5, r6, r7, r8, r9, r10, lr} add r6, r0, #16 - ldr r7, .L772 + ldr r7, .L774 mov r4, r0 mvn r9, #0 mov r5, #0 strh r5, [r0, #4] @ movhi ldrh r8, [r7], #28 strb r5, [r0, #7] -.L759: +.L761: uxth r3, r5 cmp r3, r8 - bcs .L771 + bcs .L773 ldrb r0, [r7, r5] @ zero_extendqisi2 add r6, r6, #2 ldrh r1, [r4] @@ -4466,9 +4471,9 @@ make_superblock: ldreqb r3, [r4, #7] @ zero_extendqisi2 addeq r3, r3, #1 streqb r3, [r4, #7] - b .L759 -.L771: - ldr r3, .L772+4 + b .L761 +.L773: + ldr r3, .L774+4 movw r2, #2388 ldrb r1, [r4, #7] @ zero_extendqisi2 ldrh r2, [r3, r2] @@ -4478,8 +4483,8 @@ make_superblock: strb r2, [r4, #9] ldr r2, [r3, #2244] cmp r2, #0 - beq .L762 - ldr r1, .L772+8 + beq .L764 + ldr r1, .L774+8 ldrh r2, [r4] ldr r1, [r1, #-3608] mov r2, r2, asl #1 @@ -4487,16 +4492,16 @@ make_superblock: cmp r2, #79 movls r2, #1 strlsb r2, [r4, #9] -.L762: - ldrb r3, [r3] @ zero_extendqisi2 +.L764: + ldrb r3, [r3, #32] @ zero_extendqisi2 mov r0, #0 cmp r3, #0 movne r3, #1 strneb r3, [r4, #9] ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L773: +.L775: .align 2 -.L772: +.L774: .word .LANCHOR0+2320 .word .LANCHOR0 .word .LANCHOR2 @@ -4512,18 +4517,18 @@ update_multiplier_value: stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, lr} .save {r3, r4, r5, r6, r7, r8, r9, lr} mov r5, #0 - ldr r3, .L784 + ldr r3, .L786 mov r6, r0 - ldr r9, .L784+4 + ldr r9, .L786+4 mov r4, r5 add r2, r3, #2320 ldrh r7, [r2] movw r2, #2388 ldrh r8, [r3, r2] -.L775: +.L777: uxth r3, r5 cmp r3, r7 - bcs .L783 + bcs .L785 ldrb r0, [r9, r5] @ zero_extendqisi2 mov r1, r6 bl V2P_block @@ -4532,25 +4537,25 @@ update_multiplier_value: cmp r0, #0 addeq r4, r4, r8 uxtheq r4, r4 - b .L775 -.L783: + b .L777 +.L785: cmp r4, #0 - beq .L778 + beq .L780 mov r1, r4 mov r0, #32768 bl __aeabi_idiv uxth r4, r0 -.L778: - ldr r3, .L784+8 +.L780: + ldr r3, .L786+8 mov r2, #6 mov r0, #0 ldr r3, [r3, #-3552] mla r6, r2, r6, r3 strh r4, [r6, #4] @ movhi ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, pc} -.L785: +.L787: .align 2 -.L784: +.L786: .word .LANCHOR0 .word .LANCHOR0+2348 .word .LANCHOR2 @@ -4564,13 +4569,13 @@ GetFreeBlockMinEraseCount: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L789 + ldr r2, .L791 ldr r0, [r2, #-3532] cmp r0, #0 bxeq lr ldr r3, [r2, #-3552] rsb r0, r3, r0 - ldr r3, .L789+4 + ldr r3, .L791+4 mov r0, r0, asr #1 mul r0, r3, r0 ldr r3, [r2, #-3608] @@ -4578,9 +4583,9 @@ GetFreeBlockMinEraseCount: mov r0, r0, asl #1 ldrh r0, [r3, r0] bx lr -.L790: +.L792: .align 2 -.L789: +.L791: .word .LANCHOR2 .word -1431655765 .fnend @@ -4592,10 +4597,10 @@ GetFreeBlockMaxEraseCount: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r1, .L801 + ldr r1, .L803 ldr r3, [r1, #-3532] cmp r3, #0 - beq .L797 + beq .L799 sub r2, r1, #3520 stmfd sp!, {r4, r5, lr} .save {r4, r5, lr} @@ -4609,33 +4614,33 @@ GetFreeBlockMaxEraseCount: mov r3, r3, asr #1 cmp r0, r2 uxthgt r0, r2 - ldr r2, .L801+4 + ldr r2, .L803+4 mul r3, r2, r3 mov r2, #0 uxth r3, r3 -.L794: +.L796: uxth lr, r2 cmp lr, r0 - bcs .L796 + bcs .L798 mul lr, r4, r3 add r2, r2, #1 ldrh lr, [ip, lr] cmp lr, r5 - bne .L798 -.L796: + bne .L800 +.L798: ldr r2, [r1, #-3608] mov r3, r3, asl #1 ldrh r0, [r2, r3] ldmfd sp!, {r4, r5, pc} -.L798: +.L800: mov r3, lr - b .L794 -.L797: + b .L796 +.L799: mov r0, r3 bx lr -.L802: +.L804: .align 2 -.L801: +.L803: .word .LANCHOR2 .word -1431655765 .fnend @@ -4650,34 +4655,34 @@ FtlPrintInfo2buf: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} .save {r4, r5, r6, r7, r8, r9, r10, lr} mov r7, r0 - ldr r8, .L814 + ldr r8, .L816 add r4, r7, #12 - ldr r1, .L814+4 + ldr r1, .L816+4 .pad #32 sub sp, sp, #32 bl strcpy mov r0, r4 - ldr r1, .L814+8 - ldr r2, [r8, #116] + ldr r1, .L816+8 + ldr r2, [r8, #120] bl sprintf - ldr r1, .L814+12 + ldr r1, .L816+12 ldr r2, [r8, #2404] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r3, .L814+16 + ldr r3, .L816+16 ldr r3, [r3, #504] cmp r3, #1 add r4, r4, r0 - bne .L809 + bne .L811 add r0, sp, #16 add r1, sp, #20 add r2, sp, #24 add r3, sp, #28 bl NandcGetTimeCfg mov r0, r4 - ldr r1, .L814+20 - ldr r6, .L814+24 + ldr r1, .L816+20 + ldr r6, .L816+24 sub r10, r6, #3520 ldr r3, [sp, #24] ldr r2, [sp, #16] @@ -4686,197 +4691,197 @@ FtlPrintInfo2buf: str r3, [sp, #4] ldr r3, [sp, #20] bl sprintf - ldr r1, .L814+28 + ldr r1, .L816+28 add r4, r4, r0 add r5, r4, #10 mov r0, r4 sub r4, r6, #3600 bl strcpy mov r0, r5 - ldr r1, .L814+32 + ldr r1, .L816+32 ldr r2, [r8, #2448] bl sprintf - ldr r1, .L814+36 + ldr r1, .L816+36 ldr r2, [r6, #-3372] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L814+40 + ldr r1, .L816+40 ldr r2, [r6, #-3364] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L814+44 + ldr r1, .L816+44 ldr r2, [r6, #-3360] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L814+48 + ldr r1, .L816+48 ldr r2, [r6, #-3356] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L814+52 + ldr r1, .L816+52 ldr r2, [r6, #-3352] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L814+56 + ldr r1, .L816+56 ldr r2, [r6, #-3348] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L814+60 + ldr r1, .L816+60 ldr r2, [r6, #-3344] add r5, r5, r0 mov r0, r5 bl sprintf ldr r2, [r6, #-3340] - ldr r1, .L814+64 + ldr r1, .L816+64 mov r2, r2, lsr #11 add r5, r5, r0 mov r0, r5 bl sprintf ldr r2, [r6, #-3336] - ldr r1, .L814+68 + ldr r1, .L816+68 mov r2, r2, lsr #11 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L814+72 + ldr r1, .L816+72 ldr r2, [r6, #-3332] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L814+76 + ldr r1, .L816+76 ldr r2, [r6, #-3328] add r5, r5, r0 mov r0, r5 bl sprintf add r5, r5, r0 bl FtlBbtCalcTotleCnt - ldr r2, .L814+80 - ldr r1, .L814+84 + ldr r2, .L816+80 + ldr r1, .L816+84 ldrh r2, [r2, #6] mov r3, r0 mov r0, r5 bl sprintf - ldr r1, .L814+88 + ldr r1, .L816+88 ldrh r2, [r10, #-8] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L814+92 + ldr r1, .L816+92 ldr r2, [r6, #-3324] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L814+96 + ldr r1, .L816+96 ldr r2, [r6, #-3320] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L814+100 + ldr r1, .L816+100 ldr r2, [r6, #-3316] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L814+104 + ldr r1, .L816+104 ldr r2, [r6, #-3604] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L814+108 + ldr r1, .L816+108 ldr r2, [r6, #-3312] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L814+112 + ldr r1, .L816+112 ldr r2, [r6, #-3308] add r5, r5, r0 mov r0, r5 bl sprintf ldrh r2, [r4, #30] - ldr r1, .L814+116 + ldr r1, .L816+116 add r5, r5, r0 mov r0, r5 bl sprintf ldrh r2, [r4, #28] - ldr r1, .L814+120 + ldr r1, .L816+120 sub r4, r6, #3296 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L814+124 + ldr r1, .L816+124 ldr r2, [r8, #2428] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L814+128 + ldr r1, .L816+128 ldr r2, [r8, #2420] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L814+132 + ldr r1, .L816+132 ldr r2, [r8, #2316] add r5, r5, r0 mov r0, r5 bl sprintf add r3, r8, #2512 - ldr r1, .L814+136 + ldr r1, .L816+136 ldrh r2, [r3, #6] add r5, r5, r0 mov r0, r5 bl sprintf movw r3, #2328 ldrh r2, [r8, r3] - ldr r1, .L814+140 + ldr r1, .L816+140 add r5, r5, r0 mov r0, r5 bl sprintf ldrh r2, [r4, #-8] - ldr r1, .L814+144 + ldr r1, .L816+144 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L814+148 + ldr r1, .L816+148 ldr r2, [r8, #2332] add r5, r5, r0 mov r0, r5 bl sprintf ldrh r2, [r4, #-4] - ldr r1, .L814+152 + ldr r1, .L816+152 add r5, r5, r0 mov r0, r5 bl sprintf movw r3, #2452 ldrh r2, [r8, r3] - ldr r1, .L814+156 + ldr r1, .L816+156 add r5, r5, r0 mov r0, r5 bl sprintf ldrh r2, [r4, #-226] - ldr r1, .L814+160 + ldr r1, .L816+160 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L814+164 + ldr r1, .L816+164 ldrb r2, [r6, #-3518] @ zero_extendqisi2 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L814+168 + ldr r1, .L816+168 ldrh r2, [r10, #-4] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L814+172 + ldr r1, .L816+172 ldrb r2, [r6, #-3516] @ zero_extendqisi2 add r5, r5, r0 mov r0, r5 bl sprintf ldrh r2, [r4, #-224] - ldr r1, .L814+176 + ldr r1, .L816+176 sub r4, r6, #3472 sub r9, r4, #4 add r5, r5, r0 @@ -4884,94 +4889,94 @@ FtlPrintInfo2buf: bl sprintf ldrh r3, [r10, #-4] ldr r2, [r6, #-3544] - ldr r1, .L814+180 + ldr r1, .L816+180 mov r3, r3, asl #1 ldrh r2, [r2, r3] add r5, r5, r0 mov r0, r5 bl sprintf ldrh r2, [r4, #-2] - ldr r1, .L814+184 + ldr r1, .L816+184 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L814+188 + ldr r1, .L816+188 ldrb r2, [r6, #-3470] @ zero_extendqisi2 add r5, r5, r0 mov r0, r5 bl sprintf ldrh r2, [r4, #-4] - ldr r1, .L814+192 + ldr r1, .L816+192 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L814+196 + ldr r1, .L816+196 ldrb r2, [r6, #-3468] @ zero_extendqisi2 add r5, r5, r0 mov r0, r5 bl sprintf ldrh r2, [r9, #4] - ldr r1, .L814+200 + ldr r1, .L816+200 sub r9, r6, #3424 add r5, r5, r0 mov r0, r5 bl sprintf ldrh r3, [r4, #-4] ldr r2, [r6, #-3544] - ldr r1, .L814+204 + ldr r1, .L816+204 mov r3, r3, asl #1 ldrh r2, [r2, r3] add r5, r5, r0 mov r0, r5 bl sprintf ldrh r2, [r4, #46] - ldr r1, .L814+208 + ldr r1, .L816+208 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L814+212 + ldr r1, .L816+212 ldrb r2, [r6, #-3422] @ zero_extendqisi2 add r5, r5, r0 mov r0, r5 bl sprintf ldrh r2, [r9, #-4] - ldr r1, .L814+216 + ldr r1, .L816+216 sub r9, r6, #3280 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L814+220 + ldr r1, .L816+220 ldrb r2, [r6, #-3420] @ zero_extendqisi2 add r5, r5, r0 mov r0, r5 bl sprintf ldrh r2, [r4, #48] - ldr r1, .L814+224 + ldr r1, .L816+224 add r5, r5, r0 mov r0, r5 bl sprintf ldrh r2, [r4, #190] - ldr r1, .L814+228 + ldr r1, .L816+228 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L814+232 + ldr r1, .L816+232 ldrb r2, [r6, #-3278] @ zero_extendqisi2 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L814+236 + ldr r1, .L816+236 ldrh r2, [r9, #-4] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L814+240 + ldr r1, .L816+240 ldrb r2, [r6, #-3276] @ zero_extendqisi2 add r5, r5, r0 mov r0, r5 bl sprintf ldrh r2, [r4, #192] - ldr r1, .L814+244 + ldr r1, .L816+244 add r5, r5, r0 mov r0, r5 bl sprintf @@ -4985,50 +4990,50 @@ FtlPrintInfo2buf: ldr r1, [r6, #-3156] mov r0, r5 str r1, [sp, #4] - ldr r1, .L814+248 + ldr r1, .L816+248 bl sprintf - ldr r1, .L814+252 + ldr r1, .L816+252 ldr r2, [r6, #-3160] add r4, r5, r0 sub r5, r6, #2704 mov r0, r4 bl sprintf - ldr r1, .L814+256 + ldr r1, .L816+256 ldr r2, [r6, #-3136] add r4, r4, r0 mov r0, r4 bl sprintf sub r3, r6, #2720 - ldr r1, .L814+260 + ldr r1, .L816+260 ldrh r2, [r3] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L814+264 + ldr r1, .L816+264 ldrh r2, [r5, #-14] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L814+268 + ldr r1, .L816+268 ldr r2, [r6, #-2716] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L814+272 + ldr r1, .L816+272 ldrh r2, [r5, #-8] add r4, r4, r0 mov r0, r4 bl sprintf add r4, r4, r0 bl GetFreeBlockMinEraseCount - ldr r1, .L814+276 + ldr r1, .L816+276 mov r2, r0 mov r0, r4 bl sprintf add r4, r4, r0 ldrh r0, [r10, #-8] bl GetFreeBlockMaxEraseCount - ldr r1, .L814+280 + ldr r1, .L816+280 mov r2, r0 mov r0, r4 bl sprintf @@ -5036,24 +5041,24 @@ FtlPrintInfo2buf: movw r2, #65535 cmp r3, r2 add r4, r4, r0 - beq .L806 + beq .L808 ldr r2, [r6, #-3544] mov r3, r3, asl #1 mov r0, r4 - ldr r1, .L814+284 + ldr r1, .L816+284 ldrh r2, [r2, r3] bl sprintf add r4, r4, r0 -.L806: +.L808: mov r0, #0 mov r5, #0 bl List_get_gc_head_node movw r10, #65535 mov r9, #6 uxth r3, r0 -.L808: +.L810: cmp r3, r10 - beq .L807 + beq .L809 ldr r2, [r6, #-3544] mov r1, r3, asl #1 mul r8, r9, r3 @@ -5066,7 +5071,7 @@ FtlPrintInfo2buf: str r2, [sp, #4] ldr r2, [r6, #-3608] ldrh r2, [r2, r1] - ldr r1, .L814+288 + ldr r1, .L816+288 str r2, [sp, #8] mov r2, r5 bl sprintf @@ -5075,21 +5080,21 @@ FtlPrintInfo2buf: cmp r5, #16 ldrh r3, [r3, r8] add r4, r4, r0 - bne .L808 -.L807: + bne .L810 +.L809: ldr r2, [r6, #-3552] mov r5, #0 ldr r3, [r6, #-3532] movw r10, #65535 mov r9, #6 rsb r3, r2, r3 - ldr r2, .L814+292 + ldr r2, .L816+292 mov r3, r3, asr #1 mul r3, r2, r3 uxth r3, r3 -.L810: +.L812: cmp r3, r10 - beq .L809 + beq .L811 mul r8, r9, r3 ldr r2, [r6, #-3552] ldr r1, [r6, #-3608] @@ -5099,7 +5104,7 @@ FtlPrintInfo2buf: str r2, [sp] mov r2, r3, asl #1 ldrh r2, [r1, r2] - ldr r1, .L814+296 + ldr r1, .L816+296 str r2, [sp, #4] mov r2, r5 bl sprintf @@ -5108,15 +5113,15 @@ FtlPrintInfo2buf: cmp r5, #4 ldrh r3, [r3, r8] add r4, r4, r0 - bne .L810 -.L809: + bne .L812 +.L811: rsb r0, r7, r4 add sp, sp, #32 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L815: +.L817: .align 2 -.L814: +.L816: .word .LANCHOR0 .word .LC6 .word .LC7 @@ -5204,8 +5209,8 @@ ftl_proc_ftl_read: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r5, r0 - ldr r1, .L818 - ldr r2, .L818+4 + ldr r1, .L820 + ldr r2, .L820+4 bl sprintf add r4, r5, r0 mov r0, r4 @@ -5213,9 +5218,9 @@ ftl_proc_ftl_read: add r0, r4, r0 rsb r0, r5, r0 ldmfd sp!, {r3, r4, r5, pc} -.L819: +.L821: .align 2 -.L818: +.L820: .word .LC76 .word .LC77 .fnend @@ -5231,12 +5236,12 @@ GetSwlReplaceBlock: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #28 sub sp, sp, #28 - ldr r4, .L850 + ldr r4, .L852 ldr r2, [r4, #-3316] ldr r3, [r4, #-3308] cmp r2, r3 - bcs .L821 - ldr r2, .L850+4 + bcs .L823 + ldr r2, .L852+4 movw r1, #2328 ldr r0, [r4, #-3608] mov r3, #0 @@ -5244,16 +5249,16 @@ GetSwlReplaceBlock: ldrh r1, [r2, r1] sub r0, r0, #2 mov r5, r2 -.L822: +.L824: cmp r3, r1 - bcs .L849 + bcs .L851 ldrh r2, [r0, #2]! add r3, r3, #1 ldr ip, [r4, #-3324] add r2, r2, ip str r2, [r4, #-3324] - b .L822 -.L849: + b .L824 +.L851: ldr r6, [r4, #-3324] mov r0, r6 bl __aeabi_uidiv @@ -5264,38 +5269,38 @@ GetSwlReplaceBlock: rsb r0, r0, r6 bl __aeabi_uidiv str r0, [r4, #-3324] - b .L824 -.L821: + b .L826 +.L823: ldr r3, [r4, #-3312] cmp r2, r3 - bls .L824 - ldr ip, .L850+8 + bls .L826 + ldr ip, .L852+8 add r3, r3, #1 str r3, [r4, #-3312] mov r3, #0 -.L826: +.L828: ldrh r2, [ip] cmp r3, r2 - bcs .L824 + bcs .L826 ldr r0, [r4, #-3608] mov r1, r3, asl #1 add r3, r3, #1 ldrh r2, [r0, r1] add r2, r2, #1 strh r2, [r0, r1] @ movhi - b .L826 -.L824: + b .L828 +.L826: ldr r6, [r4, #-3308] ldr r8, [r4, #-3316] add r3, r6, #256 cmp r3, r8 - bls .L829 - ldr r2, .L850 + bls .L831 + ldr r2, .L852 add r3, r6, #768 ldr r2, [r2, #-3312] cmp r3, r2 - bls .L829 - ldr r3, .L850+4 + bls .L831 + ldr r3, .L852+4 cmp r6, #40 ldr r2, [r3, #2244] movls r3, #0 @@ -5303,12 +5308,12 @@ GetSwlReplaceBlock: cmp r2, #0 orreq r3, r3, #1 cmp r3, #0 - beq .L829 -.L831: + beq .L831 +.L833: movw r0, #65535 - b .L830 -.L829: - ldr r5, .L850 + b .L832 +.L831: + ldr r5, .L852 sub r3, r5, #3520 ldrh r0, [r3, #-8] add r0, r0, r0, asl #1 @@ -5322,13 +5327,13 @@ GetSwlReplaceBlock: cmp r6, #40 movls r1, #0 cmp r1, #0 - bne .L831 + bne .L833 ldr r3, [r5, #-3548] cmp r3, #0 - beq .L831 - ldr r0, .L850+4 + beq .L833 + ldr r0, .L852+4 movw r2, #2328 - ldr ip, .L850+12 + ldr ip, .L852+12 movw r7, #65535 ldr r10, [r5, #-3608] mov lr, #6 @@ -5336,19 +5341,19 @@ GetSwlReplaceBlock: ldr r0, [r5, #-3552] mov r5, r7 str r2, [sp, #20] -.L832: +.L834: ldrh r2, [r3] movw fp, #65535 cmp r2, fp - beq .L834 + beq .L836 add r1, r1, #1 ldr fp, [sp, #20] uxth r1, r1 cmp r1, fp - bhi .L831 + bhi .L833 ldrh fp, [r3, #4] cmp fp, #0 - beq .L833 + beq .L835 rsb r3, r0, r3 mov r3, r3, asr #1 mul r3, ip, r3 @@ -5356,45 +5361,45 @@ GetSwlReplaceBlock: mov fp, r3, asl #1 ldrh fp, [r10, fp] cmp fp, r6 - bls .L838 + bls .L840 cmp fp, r7 movcc r7, fp movcc r5, r3 -.L833: +.L835: mla r3, lr, r2, r0 - b .L832 -.L838: + b .L834 +.L840: mov r5, r3 -.L834: +.L836: movw r3, #65535 cmp r5, r3 - beq .L831 + beq .L833 mov r3, r5, asl #1 ldrh fp, [r10, r3] cmp fp, r6 - bls .L836 + bls .L838 str r3, [sp, #20] bl GetFreeBlockMinEraseCount ldr r3, [sp, #20] cmp r0, r6 strhi r7, [r4, #-3308] -.L836: +.L838: cmp fp, r8 - bcs .L831 + bcs .L833 add r2, fp, #128 cmp r9, r2 - ble .L831 + ble .L833 add r2, fp, #256 cmp r2, r8 - bcc .L837 + bcc .L839 ldr r2, [r4, #-3312] add fp, fp, #768 cmp fp, r2 - bcs .L831 -.L837: + bcs .L833 +.L839: ldr r2, [r4, #-3544] mov r1, r5 - ldr r0, .L850+16 + ldr r0, .L852+16 ldrh r2, [r2, r3] str r2, [sp] mov r2, r8 @@ -5405,13 +5410,13 @@ GetSwlReplaceBlock: mov r0, r5 mov r3, #1 str r3, [r4, #-2708] -.L830: +.L832: add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L851: +.L853: .align 2 -.L850: +.L852: .word .LANCHOR2 .word .LANCHOR0 .word .LANCHOR0+2328 @@ -5430,19 +5435,19 @@ free_data_superblock: cmp r0, r2 stmfd sp!, {r3, lr} .save {r3, lr} - beq .L853 - ldr r2, .L855 + beq .L855 + ldr r2, .L857 mov r3, r0, asl #1 mov r1, #0 ldr r2, [r2, #-3544] strh r1, [r2, r3] @ movhi bl INSERT_FREE_LIST -.L853: +.L855: mov r0, #0 ldmfd sp!, {r3, pc} -.L856: +.L858: .align 2 -.L855: +.L857: .word .LANCHOR2 .fnend .size free_data_superblock, .-free_data_superblock @@ -5453,9 +5458,9 @@ FtlGcBufInit: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr ip, .L865 + ldr ip, .L867 mov r3, #0 - ldr r1, .L865+4 + ldr r1, .L867+4 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} .save {r4, r5, r6, r7, r8, r9, r10, lr} add r7, ip, #78 @@ -5463,12 +5468,12 @@ FtlGcBufInit: mov r6, #1 mov r8, #36 str r3, [r1, #-2704] -.L858: +.L860: ldrh r2, [ip] add r4, r3, #1 uxth r3, r3 cmp r3, r2 - bcs .L863 + bcs .L865 mul r0, r5, r3 ldr lr, [r1, #-2700] add r2, lr, r0 @@ -5482,7 +5487,7 @@ FtlGcBufInit: bic r2, r2, #3 add r2, r9, r2 str r2, [lr, r0] - ldr r2, .L865+8 + ldr r2, .L867+8 ldr r9, [r1, #-2700] ldrh r2, [r2] add lr, r9, r0 @@ -5501,16 +5506,16 @@ FtlGcBufInit: ldr r2, [lr, #4] str r2, [r3, #12] mov r3, r4 - b .L858 -.L863: - ldr r0, .L865+4 + b .L860 +.L865: + ldr r0, .L867+4 mov ip, #12 - ldr r4, .L865+12 + ldr r4, .L867+12 mov lr, #0 -.L860: +.L862: ldr r3, [r1, #-2684] cmp r2, r3 - bcs .L864 + bcs .L866 mul r5, ip, r2 ldr r7, [r0, #-2700] add r3, r7, r5 @@ -5524,7 +5529,7 @@ FtlGcBufInit: bic r3, r3, #3 add r3, r6, r3 str r3, [r7, r5] - ldr r3, .L865+8 + ldr r3, .L867+8 ldr r6, [r0, #-2700] ldrh r3, [r3] add r5, r6, r5 @@ -5538,12 +5543,12 @@ FtlGcBufInit: bic r3, r3, #3 add r3, r6, r3 str r3, [r5, #4] - b .L860 -.L864: - ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} + b .L862 .L866: + ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} +.L868: .align 2 -.L865: +.L867: .word .LANCHOR0+2320 .word .LANCHOR2 .word .LANCHOR0+2400 @@ -5557,7 +5562,7 @@ FtlGcBufFree: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L875 + ldr r3, .L877 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} .save {r4, r5, r6, r7, r8, r9, r10, lr} mov lr, #0 @@ -5566,30 +5571,30 @@ FtlGcBufFree: ldr r4, [r3, #-2700] mov r7, lr mov r8, #12 -.L868: +.L870: uxth ip, lr cmp ip, r1 ldmcsfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} mla ip, r5, ip, r0 mov r2, #0 -.L869: +.L871: uxth r3, r2 cmp r3, r6 - bcs .L870 + bcs .L872 mul r3, r8, r3 add r2, r2, #1 add r9, r4, r3 ldr r10, [r4, r3] ldr r3, [ip, #8] cmp r10, r3 - bne .L869 + bne .L871 str r7, [r9, #8] -.L870: +.L872: add lr, lr, #1 - b .L868 -.L876: + b .L870 +.L878: .align 2 -.L875: +.L877: .word .LANCHOR2 .fnend .size FtlGcBufFree, .-FtlGcBufFree @@ -5600,7 +5605,7 @@ FtlGcBufAlloc: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L886 + ldr r3, .L888 mov ip, #0 stmfd sp!, {r4, r5, r6, r7, r8, r9, lr} .save {r4, r5, r6, r7, r8, r9, lr} @@ -5609,34 +5614,34 @@ FtlGcBufAlloc: mov r7, #1 ldr r5, [r3, #-2700] mov r8, #36 -.L878: +.L880: uxth r2, ip cmp r2, r1 - bcs .L885 + bcs .L887 mov lr, #0 -.L879: +.L881: uxth r3, lr cmp r3, r4 - bcs .L880 + bcs .L882 mla r3, r6, r3, r5 add lr, lr, #1 ldr r9, [r3, #8] cmp r9, #0 - bne .L879 + bne .L881 mla r2, r8, r2, r0 ldr lr, [r3] str r7, [r3, #8] str lr, [r2, #8] ldr r3, [r3, #4] str r3, [r2, #12] -.L880: +.L882: add ip, ip, #1 - b .L878 -.L885: - ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc} + b .L880 .L887: + ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc} +.L889: .align 2 -.L886: +.L888: .word .LANCHOR2 .fnend .size FtlGcBufAlloc, .-FtlGcBufAlloc @@ -5648,25 +5653,25 @@ IsBlkInGcList: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L894 + ldr r2, .L896 sub r2, r2, #2672 ldr r3, [r2, #-8] ldrh r2, [r2, #-4] add r2, r3, r2, asl #1 -.L889: +.L891: cmp r3, r2 - beq .L893 + beq .L895 ldrh r1, [r3], #2 cmp r1, r0 - bne .L889 + bne .L891 mov r0, #1 bx lr -.L893: +.L895: mov r0, #0 bx lr -.L895: +.L897: .align 2 -.L894: +.L896: .word .LANCHOR2 .fnend .size IsBlkInGcList, .-IsBlkInGcList @@ -5684,29 +5689,29 @@ FtlGcUpdatePage: mov r5, r1 mov r6, r2 bl P2V_block_in_plane - ldr r2, .L904 + ldr r2, .L906 mov lr, #0 sub r3, r2, #2672 ldr r8, [r2, #-2680] ldrh r1, [r3, #-4] sub r7, r8, #2 -.L897: +.L899: uxth ip, lr cmp ip, r1 - bcs .L901 + bcs .L903 ldrh r9, [r7, #2]! add lr, lr, #1 cmp r9, r0 - bne .L897 -.L901: + bne .L899 +.L903: cmp ip, r1 moveq ip, ip, asl #1 streqh r0, [r8, ip] @ movhi ldreqh ip, [r3, #-4] addeq ip, ip, #1 streqh ip, [r3, #-4] @ movhi -.L899: - ldr r3, .L904+4 +.L901: + ldr r3, .L906+4 mov ip, #12 ldr r2, [r2, #-2672] ldrh r1, [r3, #-12] @@ -5718,9 +5723,9 @@ FtlGcUpdatePage: add r2, r2, #1 strh r2, [r3, #-12] @ movhi ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, pc} -.L905: +.L907: .align 2 -.L904: +.L906: .word .LANCHOR2 .word .LANCHOR2-2656 .fnend @@ -5735,44 +5740,44 @@ FtlGcRefreshOpenBlock: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r5, r0 - ldr r4, .L914 + ldr r4, .L916 ldrh r3, [r4, #-10] cmp r3, r0 - beq .L908 + beq .L910 ldrh r3, [r4, #-8] cmp r3, r0 - beq .L908 + beq .L910 ldrh r3, [r4, #-6] cmp r3, r0 - beq .L908 + beq .L910 ldrh r3, [r4, #-4] cmp r3, r0 - beq .L908 - ldr r0, .L914+4 + beq .L910 + ldr r0, .L916+4 mov r1, r5 bl printk ldrh r2, [r4, #-10] movw r3, #65535 cmp r2, r3 streqh r5, [r4, #-10] @ movhi - beq .L908 + beq .L910 ldrh r2, [r4, #-8] cmp r2, r3 streqh r5, [r4, #-8] @ movhi - beq .L908 + beq .L910 ldrh r2, [r4, #-6] cmp r2, r3 streqh r5, [r4, #-6] @ movhi - beq .L908 + beq .L910 ldrh r2, [r4, #-4] cmp r2, r3 streqh r5, [r4, #-4] @ movhi -.L908: +.L910: mov r0, #0 ldmfd sp!, {r3, r4, r5, pc} -.L915: +.L917: .align 2 -.L914: +.L916: .word .LANCHOR2-2656 .word .LC79 .fnend @@ -5787,48 +5792,48 @@ FtlGcRefreshBlock: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r5, r0 - ldr r4, .L927 + ldr r4, .L929 ldrh r3, [r4, #-10] cmp r3, r0 - beq .L924 + beq .L926 ldrh r3, [r4, #-8] cmp r3, r0 - beq .L924 + beq .L926 ldrh r3, [r4, #-6] cmp r3, r0 - beq .L924 + beq .L926 ldrh r3, [r4, #-4] cmp r3, r0 - beq .L924 - ldr r0, .L927+4 + beq .L926 + ldr r0, .L929+4 mov r1, r5 bl printk ldrh r2, [r4, #-10] movw r3, #65535 cmp r2, r3 streqh r5, [r4, #-10] @ movhi - beq .L924 + beq .L926 ldrh r2, [r4, #-8] cmp r2, r3 streqh r5, [r4, #-8] @ movhi - beq .L924 + beq .L926 ldrh r2, [r4, #-6] cmp r2, r3 streqh r5, [r4, #-6] @ movhi - beq .L924 + beq .L926 ldrh r2, [r4, #-4] cmp r2, r3 - bne .L925 + bne .L927 strh r5, [r4, #-4] @ movhi -.L924: +.L926: mov r0, #0 ldmfd sp!, {r3, r4, r5, pc} -.L925: +.L927: mvn r0, #0 ldmfd sp!, {r3, r4, r5, pc} -.L928: +.L930: .align 2 -.L927: +.L929: .word .LANCHOR2-2656 .word .LC79 .fnend @@ -5844,51 +5849,51 @@ FtlGcMarkBadPhyBlk: .save {r3, r4, r5, r6, r7, lr} mov r5, r0 bl P2V_block_in_plane - ldr r6, .L939 + ldr r6, .L941 mov r2, r5 sub r7, r6, #2656 ldrh r1, [r7, #-2] mov r4, r0 - ldr r0, .L939+4 + ldr r0, .L941+4 bl printk mov r0, r4 bl FtlGcRefreshBlock - ldr r3, .L939+8 + ldr r3, .L941+8 ldr r3, [r3, #2244] cmp r3, #0 mov r3, r7 - beq .L930 + beq .L932 ldr r1, [r6, #-3608] mov r4, r4, asl #1 ldrh r2, [r1, r4] cmp r2, #39 subhi r2, r2, #40 strhih r2, [r1, r4] @ movhi -.L930: +.L932: ldrh r2, [r3, #-2] mov r1, #0 -.L931: +.L933: uxth r0, r1 cmp r0, r2 - bcs .L938 + bcs .L940 add r1, r1, #1 add r0, r3, r1, asl #1 ldrh r0, [r0, #-2] cmp r0, r5 - bne .L931 - b .L932 -.L938: + bne .L933 + b .L934 +.L940: cmp r2, #15 addls r1, r2, #1 movls r2, r2, asl #1 strlsh r1, [r3, #-2] @ movhi strlsh r5, [r3, r2] @ movhi -.L932: +.L934: mov r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L940: +.L942: .align 2 -.L939: +.L941: .word .LANCHOR2 .word .LC80 .word .LANCHOR0 @@ -5901,14 +5906,14 @@ FtlGcReFreshBadBlk: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L949 + ldr r3, .L951 ldrh r2, [r3, #-2] cmp r2, #0 - beq .L948 + beq .L950 ldrh r0, [r3, #-10] movw r1, #65535 cmp r0, r1 - bne .L948 + bne .L950 stmfd sp!, {r4, lr} .save {r4, lr} add r4, r3, #48 @@ -5926,12 +5931,12 @@ FtlGcReFreshBadBlk: add r3, r3, #1 strh r3, [r4, #-14] @ movhi ldmfd sp!, {r4, pc} -.L948: +.L950: mov r0, #0 bx lr -.L950: +.L952: .align 2 -.L949: +.L951: .word .LANCHOR2-2656 .fnend .size FtlGcReFreshBadBlk, .-FtlGcReFreshBadBlk @@ -5957,30 +5962,30 @@ BuildFlashLsbPageTable: stmfd sp!, {r4, lr} .save {r4, lr} mov r4, r1 - bne .L953 - ldr r3, .L996 -.L954: + bne .L955 + ldr r3, .L998 +.L956: mov r2, r0, asl #1 strh r0, [r2, r3] @ movhi add r0, r0, #1 cmp r0, #512 - bne .L954 -.L958: + bne .L956 +.L960: mov r1, #255 - ldr r0, .L996+4 + ldr r0, .L998+4 mov r2, #2048 uxth r4, r4 bl ftl_memset mov r3, #0 - ldr r1, .L996 - ldr r0, .L996+4 - b .L955 -.L953: + ldr r1, .L998 + ldr r0, .L998+4 + b .L957 +.L955: cmp r0, #1 - bne .L956 - ldr ip, .L996 + bne .L958 + ldr ip, .L998 mov r3, #0 -.L957: +.L959: uxth r2, r3 mov lr, r3, asl #1 cmp r2, #3 @@ -5995,14 +6000,14 @@ BuildFlashLsbPageTable: movne r2, r1 cmp r3, #512 strh r2, [lr, ip] @ movhi - bne .L957 - b .L958 -.L956: - cmp r0, #2 bne .L959 - ldr r1, .L996 + b .L960 +.L958: + cmp r0, #2 + bne .L961 + ldr r1, .L998 mov r3, #0 -.L960: +.L962: uxth r2, r3 mov r0, r3, asl #1 cmp r2, #1 @@ -6011,14 +6016,14 @@ BuildFlashLsbPageTable: subhi r2, ip, #1 cmp r3, #512 strh r2, [r0, r1] @ movhi - bne .L960 - b .L958 -.L959: + bne .L962 + b .L960 +.L961: cmp r0, #3 - bne .L961 - ldr ip, .L996 + bne .L963 + ldr ip, .L998 mov r3, #0 -.L962: +.L964: uxth r2, r3 mov lr, r3, asl #1 cmp r2, #5 @@ -6033,28 +6038,28 @@ BuildFlashLsbPageTable: movne r2, r1 cmp r3, #512 strh r2, [lr, ip] @ movhi - bne .L962 - b .L958 -.L961: + bne .L964 + b .L960 +.L963: cmp r0, #4 mov r3, #0 - bne .L963 - ldr r2, .L996+8 - strh r3, [r2, #148] @ movhi - mov r3, #1 - strh r0, [r2, #156] @ movhi - strh r3, [r2, #150] @ movhi - mov r3, #2 + bne .L965 + ldr r2, .L998+8 strh r3, [r2, #152] @ movhi - mov r3, #3 + mov r3, #1 + strh r0, [r2, #160] @ movhi strh r3, [r2, #154] @ movhi - mov r3, #5 + mov r3, #2 + strh r3, [r2, #156] @ movhi + mov r3, #3 strh r3, [r2, #158] @ movhi + mov r3, #5 + strh r3, [r2, #162] @ movhi mov r3, #7 - strh r3, [r2, #160] @ movhi + strh r3, [r2, #164] @ movhi mov r3, #8 - strh r3, [r2, #162]! @ movhi -.L964: + strh r3, [r2, #166]! @ movhi +.L966: tst r3, #1 movne r1, #7 moveq r1, #6 @@ -6063,31 +6068,31 @@ BuildFlashLsbPageTable: strh r1, [r2, #2]! @ movhi uxth r3, r3 cmp r3, #512 - bne .L964 - b .L958 -.L963: + bne .L966 + b .L960 +.L965: cmp r0, #5 - bne .L965 - ldr r2, .L996 -.L966: + bne .L967 + ldr r2, .L998 +.L968: mov r1, r3, asl #1 strh r3, [r1, r2] @ movhi add r3, r3, #1 cmp r3, #16 - bne .L966 - ldr r2, .L996+12 -.L967: + bne .L968 + ldr r2, .L998+12 +.L969: strh r3, [r2, #2]! @ movhi add r3, r3, #2 uxth r3, r3 cmp r3, #1008 - bne .L967 - b .L958 -.L965: + bne .L969 + b .L960 +.L967: cmp r0, #6 - bne .L968 - ldr r1, .L996+16 -.L969: + bne .L970 + ldr r1, .L998+16 +.L971: cmp r3, #5 add r2, r3, r3, asl #1 movls r0, #0 @@ -6102,58 +6107,58 @@ BuildFlashLsbPageTable: strh r2, [r1, #2]! @ movhi uxth r3, r3 cmp r3, #512 - bne .L969 - b .L958 -.L968: + bne .L971 + b .L960 +.L970: cmp r0, #9 - bne .L970 - ldr r2, .L996+8 + bne .L972 + ldr r2, .L998+8 movw r1, #1021 - strh r3, [r2, #148] @ movhi + strh r3, [r2, #152] @ movhi mov r3, #1 - strh r3, [r2, #150] @ movhi + strh r3, [r2, #154] @ movhi mov r3, #2 - strh r3, [r2, #152]! @ movhi + strh r3, [r2, #156]! @ movhi mov r3, #3 -.L971: +.L973: strh r3, [r2, #2]! @ movhi add r3, r3, #2 uxth r3, r3 cmp r3, r1 - bne .L971 - b .L958 -.L970: + bne .L973 + b .L960 +.L972: cmp r0, #10 - bne .L972 - ldr r2, .L996 -.L973: + bne .L974 + ldr r2, .L998 +.L975: mov r1, r3, asl #1 strh r3, [r1, r2] @ movhi add r3, r3, #1 cmp r3, #63 - bne .L973 - ldr r2, .L996+20 + bne .L975 + ldr r2, .L998+20 movw r1, #961 -.L974: +.L976: strh r3, [r2, #2]! @ movhi add r3, r3, #2 uxth r3, r3 cmp r3, r1 - bne .L974 - b .L958 -.L972: + bne .L976 + b .L960 +.L974: cmp r0, #11 - bne .L975 - ldr r2, .L996 + bne .L977 + ldr r2, .L998 mov r3, #0 -.L976: +.L978: mov r1, r3, asl #1 strh r3, [r1, r2] @ movhi add r3, r3, #1 cmp r3, #8 - bne .L976 - ldr r1, .L996+24 -.L977: + bne .L978 + ldr r1, .L998+24 +.L979: tst r3, #1 movne r2, #7 moveq r2, #6 @@ -6162,52 +6167,52 @@ BuildFlashLsbPageTable: strh r2, [r1, #2]! @ movhi uxth r3, r3 cmp r3, #512 - bne .L977 - b .L958 -.L975: + bne .L979 + b .L960 +.L977: cmp r0, #12 - bne .L958 - ldr r3, .L996+8 + bne .L960 + ldr r3, .L998+8 mov r2, #0 - strh r2, [r3, #148] @ movhi - mov r2, #1 - strh r2, [r3, #150] @ movhi - mov r2, #2 strh r2, [r3, #152] @ movhi + mov r2, #1 + strh r2, [r3, #154] @ movhi + mov r2, #2 + strh r2, [r3, #156] @ movhi mov r2, #3 - strh r2, [r3, #154]! @ movhi + strh r2, [r3, #158]! @ movhi mov r2, #4 -.L978: +.L980: sub r1, r2, #1 add r1, r1, r2, lsr #1 add r2, r2, #1 strh r1, [r3, #2]! @ movhi uxth r2, r2 cmp r2, #512 - bne .L978 - b .L958 -.L955: + bne .L980 + b .L960 +.L957: uxth r2, r3 cmp r2, r4 - bcs .L995 + bcs .L997 mov r2, r3, asl #1 add r3, r3, #1 ldrh r2, [r2, r1] mov ip, r2, asl #1 strh r2, [r0, ip] @ movhi - b .L955 -.L995: - ldmfd sp!, {r4, pc} + b .L957 .L997: + ldmfd sp!, {r4, pc} +.L999: .align 2 -.L996: - .word .LANCHOR0+148 +.L998: + .word .LANCHOR0+152 .word .LANCHOR2-2620 .word .LANCHOR0 - .word .LANCHOR0+178 - .word .LANCHOR0+146 - .word .LANCHOR0+272 - .word .LANCHOR0+162 + .word .LANCHOR0+182 + .word .LANCHOR0+150 + .word .LANCHOR0+276 + .word .LANCHOR0+166 .fnend .size BuildFlashLsbPageTable, .-BuildFlashLsbPageTable .align 2 @@ -6220,9 +6225,9 @@ FlashDieInfoInit: stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r6, #0 - ldr r3, .L1013 - ldr r5, .L1013+4 - ldr r9, .L1013+8 + ldr r3, .L1015 + ldr r5, .L1015+4 + ldr r9, .L1015+8 ldrh r0, [r3, #10] strb r6, [r5, #2230] mov r7, r5 @@ -6230,63 +6235,63 @@ FlashDieInfoInit: bl FlashBlockAlignInit mov r1, r6 mov r2, #8 - ldr r0, .L1013+12 + ldr r0, .L1015+12 bl ftl_memset mov r1, r6 mov r2, #32 - ldr r0, .L1013+16 + ldr r0, .L1015+16 bl ftl_memset - ldr r0, .L1013+20 + ldr r0, .L1015+20 mov r1, r6 mov r2, #128 bl ftl_memset ldr r4, [r5, #44] - ldr fp, .L1013+24 + ldr fp, .L1015+24 add r8, r4, #1 -.L1000: +.L1002: mov r0, r8 add r1, fp, r6, asl #3 ldrb r2, [r4] @ zero_extendqisi2 bl FlashMemCmp8 - ldr r10, .L1013+24 + ldr r10, .L1015+24 cmp r0, #0 - bne .L999 + bne .L1001 ldrb r3, [r7, #2230] @ zero_extendqisi2 add r2, r7, r3, asl #2 - str r0, [r2, #1172] + str r0, [r2, #1176] add r2, r3, #1 add r3, r7, r3 strb r2, [r7, #2230] strb r6, [r3, #2232] -.L999: +.L1001: add r6, r6, #1 cmp r6, #4 - bne .L1000 + bne .L1002 ldrb r3, [r5, #2230] @ zero_extendqisi2 - ldr r7, .L1013+4 + ldr r7, .L1015+4 strb r3, [r9, #-572] ldrb r3, [r4, #8] @ zero_extendqisi2 cmp r3, #2 - beq .L1001 -.L1005: + beq .L1003 +.L1007: ldrb r3, [r4, #13] @ zero_extendqisi2 ldrb r2, [r5, #2230] @ zero_extendqisi2 smulbb r2, r2, r3 ldrh r3, [r4, #14] smulbb r3, r2, r3 - ldr r2, .L1013+28 + ldr r2, .L1015+28 strh r3, [r2, #-2] @ movhi ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1001: - ldr r9, [r7, #4] +.L1003: + ldr r9, [r7, #36] mov r6, #0 -.L1004: +.L1006: mov r0, r8 add r1, r10, r6, asl #3 ldrb r2, [r4] @ zero_extendqisi2 bl FlashMemCmp8 cmp r0, #0 - bne .L1002 + bne .L1004 ldrb r1, [r4, #13] @ zero_extendqisi2 ldrh r3, [r4, #14] ldrb r2, [r7, #2230] @ zero_extendqisi2 @@ -6294,28 +6299,28 @@ FlashDieInfoInit: and r3, r3, #65280 add r0, r7, r2, asl #2 mul r3, r3, r1 - str r3, [r0, #1172] + str r3, [r0, #1176] ldrb r1, [r4, #23] @ zero_extendqisi2 cmp r1, #0 movne r3, r3, asl #1 - strne r3, [r0, #1172] + strne r3, [r0, #1176] add r3, r2, #1 add r2, r5, r2 strb r3, [r5, #2230] strb r6, [r2, #2232] -.L1002: +.L1004: add r6, r6, #1 cmp r6, #4 - bne .L1004 - b .L1005 -.L1014: + bne .L1006 + b .L1007 +.L1016: .align 2 -.L1013: +.L1015: .word .LANCHOR1+472 .word .LANCHOR0 .word .LANCHOR2 .word .LANCHOR0+2232 - .word .LANCHOR0+1172 + .word .LANCHOR0+1176 .word .LANCHOR0+2100 .word .LANCHOR0+2068 .word .LANCHOR2-568 @@ -6334,12 +6339,12 @@ ftl_read_flash_info: mov r2, #11 mov r4, r0 bl ftl_memset - ldr r2, .L1020 - ldr r0, .L1020+4 + ldr r2, .L1022 + ldr r0, .L1022+4 mov ip, #1 ldr r3, [r2, #44] ldrb r1, [r3, #9] @ zero_extendqisi2 - ldr r3, [r2, #4] + ldr r3, [r2, #36] smulbb r3, r1, r3 strh r3, [r4, #4] @ unaligned ldrb r3, [r2, #2312] @ zero_extendqisi2 @@ -6356,21 +6361,21 @@ ftl_read_flash_info: strb r3, [r4, #9] mov r3, #0 strb r3, [r4, #10] -.L1016: +.L1018: uxtb r2, r3 cmp r2, r1 - bcs .L1019 + bcs .L1021 ldrb lr, [r3, r0] @ zero_extendqisi2 add r3, r3, #1 ldrb r2, [r4, #10] @ zero_extendqisi2 orr r2, r2, ip, asl lr strb r2, [r4, #10] - b .L1016 -.L1019: - ldmfd sp!, {r4, pc} + b .L1018 .L1021: + ldmfd sp!, {r4, pc} +.L1023: .align 2 -.L1020: +.L1022: .word .LANCHOR0 .word .LANCHOR0+2232 .fnend @@ -6385,9 +6390,9 @@ FtlMemInit: stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r6, #0 - ldr r4, .L1127 + ldr r4, .L1129 mvn r2, #0 - ldr r5, .L1127+4 + ldr r5, .L1129+4 mov r1, #32 sub r3, r4, #568 mov r0, #1024 @@ -6502,7 +6507,7 @@ FtlMemInit: str r0, [r4, #-508] mov r0, r6 bl ftl_malloc - ldr r6, .L1127+8 + ldr r6, .L1129+8 str r0, [r4, #-504] ldr r0, [r4, #-2684] mul r0, r9, r0 @@ -6517,7 +6522,7 @@ FtlMemInit: mov r0, r7, asl #3 bl ftl_malloc ldrh r3, [r6] - ldr r7, .L1127+12 + ldr r7, .L1129+12 str r0, [r4, #-496] ldr r0, [r4, #-2684] mul r0, r0, r3 @@ -6631,138 +6636,138 @@ FtlMemInit: mov r2, r2, asl #2 mov r1, r2 str r0, [r5, #2480] -.L1024: +.L1026: cmp r3, ip - bcs .L1125 + bcs .L1127 ldr r0, [r5, #2480] add r3, r3, #1 add r0, r0, r1 add r1, r1, r2 str r0, [r6, #4]! - b .L1024 -.L1125: - ldr r2, .L1127+16 + b .L1026 +.L1127: + ldr r2, .L1129+16 mov r1, #0 -.L1026: +.L1028: cmp r3, #8 addne r0, r2, r3, asl #2 addne r3, r3, #1 strne r1, [r0, #28] - bne .L1026 -.L1126: - ldr r2, [r4, #-472] - ldr r3, .L1127 - cmp r2, #0 bne .L1028 -.L1030: - ldr r1, .L1127+20 - ldr r0, .L1127+24 +.L1128: + ldr r2, [r4, #-472] + ldr r3, .L1129 + cmp r2, #0 + bne .L1030 +.L1032: + ldr r1, .L1129+20 + ldr r0, .L1129+24 bl printk mvn r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1028: +.L1030: ldr r2, [r3, #-468] cmp r2, #0 - beq .L1030 + beq .L1032 ldr r2, [r3, #-452] cmp r2, #0 - beq .L1030 + beq .L1032 ldr r2, [r3, #-444] cmp r2, #0 - beq .L1030 + beq .L1032 ldr r2, [r3, #-3380] cmp r2, #0 - beq .L1030 + beq .L1032 ldr r2, [r3, #-440] cmp r2, #0 - beq .L1030 + beq .L1032 ldr r2, [r3, #-3552] cmp r2, #0 - beq .L1030 + beq .L1032 ldr r2, [r5, #2480] cmp r2, #0 - beq .L1030 + beq .L1032 ldr r3, [r3, #-3544] cmp r3, #0 - beq .L1030 + beq .L1032 ldr r2, [r4, #-2680] - ldr r3, .L1127 + ldr r3, .L1129 cmp r2, #0 - beq .L1030 + beq .L1032 ldr r2, [r3, #-2672] cmp r2, #0 - beq .L1030 + beq .L1032 ldr r2, [r3, #-536] cmp r2, #0 - beq .L1030 + beq .L1032 ldr r2, [r3, #-528] cmp r2, #0 - beq .L1030 + beq .L1032 ldr r2, [r3, #-3612] cmp r2, #0 - beq .L1030 + beq .L1032 ldr r2, [r3, #-2688] cmp r2, #0 - beq .L1030 + beq .L1032 ldr r2, [r3, #-532] cmp r2, #0 - beq .L1030 + beq .L1032 ldr r2, [r3, #-524] cmp r2, #0 - beq .L1030 + beq .L1032 ldr r2, [r3, #-520] cmp r2, #0 - beq .L1030 + beq .L1032 ldr r3, [r3, #-516] cmp r3, #0 - beq .L1030 + beq .L1032 ldr r2, [r4, #-2696] - ldr r3, .L1127 + ldr r3, .L1129 cmp r2, #0 - beq .L1030 + beq .L1032 ldr r2, [r3, #-508] cmp r2, #0 - beq .L1030 + beq .L1032 ldr r2, [r3, #-504] cmp r2, #0 - beq .L1030 + beq .L1032 ldr r2, [r3, #-2700] cmp r2, #0 - beq .L1030 + beq .L1032 ldr r2, [r3, #-500] cmp r2, #0 - beq .L1030 + beq .L1032 ldr r2, [r3, #-496] cmp r2, #0 - beq .L1030 + beq .L1032 ldr r2, [r3, #-2692] cmp r2, #0 - beq .L1030 + beq .L1032 ldr r2, [r3, #-3608] cmp r2, #0 - beq .L1030 + beq .L1032 ldr r3, [r3, #-484] cmp r3, #0 - beq .L1030 - ldr r3, .L1127+4 + beq .L1032 + ldr r3, .L1129+4 ldr r3, [r3, #2436] cmp r3, #0 - beq .L1030 - ldr r3, .L1127 + beq .L1032 + ldr r3, .L1129 ldr r2, [r3, #-464] cmp r2, #0 - beq .L1030 + beq .L1032 ldr r2, [r3, #-460] cmp r2, #0 - beq .L1030 + beq .L1032 ldr r3, [r3, #-456] cmp r3, #0 - beq .L1030 + beq .L1032 mov r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1128: +.L1130: .align 2 -.L1127: +.L1129: .word .LANCHOR2 .word .LANCHOR0 .word .LANCHOR0+2400 @@ -6779,7 +6784,7 @@ FtlBbt2Bitmap: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1135 + ldr r3, .L1137 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r4, r0 @@ -6791,11 +6796,11 @@ FtlBbt2Bitmap: mov r2, r2, asl #2 bl ftl_memset add r3, r4, #1020 - ldr ip, .L1135+4 + ldr ip, .L1137+4 add r3, r3, #2 sub r1, r4, #2 mov r4, #1 -.L1131: +.L1133: ldrh r2, [r1, #2]! cmp r2, r6 ldmeqfd sp!, {r4, r5, r6, pc} @@ -6808,11 +6813,11 @@ FtlBbt2Bitmap: ldrh r2, [ip, #6] add r2, r2, #1 strh r2, [ip, #6] @ movhi - bne .L1131 + bne .L1133 ldmfd sp!, {r4, r5, r6, pc} -.L1136: +.L1138: .align 2 -.L1135: +.L1137: .word .LANCHOR2-436 .word .LANCHOR0+2452 .fnend @@ -6825,7 +6830,7 @@ FtlBbtMemInit: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r0, .L1138 + ldr r0, .L1140 movw r3, #2452 mvn r1, #0 add r2, r0, r3 @@ -6836,9 +6841,9 @@ FtlBbtMemInit: mov r1, #255 mov r2, #16 b ftl_memset -.L1139: +.L1141: .align 2 -.L1138: +.L1140: .word .LANCHOR0 .fnend .size FtlBbtMemInit, .-FtlBbtMemInit @@ -6849,7 +6854,7 @@ FtlFreeSysBlkQueueInit: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1142 + ldr r3, .L1144 mov r2, #2048 stmfd sp!, {r4, lr} .save {r4, lr} @@ -6863,9 +6868,9 @@ FtlFreeSysBlkQueueInit: bl ftl_memset mov r0, r4 ldmfd sp!, {r4, pc} -.L1143: +.L1145: .align 2 -.L1142: +.L1144: .word .LANCHOR0+2512 .fnend .size FtlFreeSysBlkQueueInit, .-FtlFreeSysBlkQueueInit @@ -6888,19 +6893,19 @@ ftl_free_no_use_map_blk: mov r0, r5 bl ftl_memset mov r2, #0 -.L1145: +.L1147: ldrh r1, [r4, #6] uxth r3, r2 cmp r1, r3 - bls .L1165 + bls .L1167 ldr r0, [r6, r3, asl #2] mov r1, #0 ubfx r0, r0, #10, #16 -.L1146: +.L1148: ldrh ip, [r4, #10] uxth r3, r1 cmp ip, r3 - bls .L1166 + bls .L1168 mov r3, r3, asl #1 add r1, r1, #1 ldrh ip, [r7, r3] @@ -6913,12 +6918,12 @@ ftl_free_no_use_map_blk: ldrneh ip, [r5, r3] addne ip, ip, #1 strneh ip, [r5, r3] @ movhi - b .L1146 -.L1166: + b .L1148 +.L1168: add r2, r2, #1 - b .L1145 -.L1165: - ldr r2, .L1168 + b .L1147 +.L1167: + ldr r2, .L1170 movw r3, #2390 mov r8, #0 mov r1, r8 @@ -6928,36 +6933,36 @@ ftl_free_no_use_map_blk: mov r3, r3, asl #1 strh r2, [r5, r3] @ movhi ldrh r9, [r5] -.L1150: +.L1152: ldrh r3, [r4, #10] uxth r6, r8 cmp r3, r6 - bls .L1167 + bls .L1169 mov r2, r6, asl #1 ldrh r3, [r5, r2] cmp r9, r3 - bls .L1151 + bls .L1153 ldrh r0, [r7, r2] add r10, r7, r2 cmp r0, #0 - bne .L1152 - b .L1153 -.L1151: + bne .L1154 + b .L1155 +.L1153: cmp r3, #0 - bne .L1153 + bne .L1155 ldrh r0, [r7, r2] add r10, r7, r2 cmp r0, #0 movne r6, r1 - beq .L1153 - b .L1155 -.L1152: + beq .L1155 + b .L1157 +.L1154: cmp r3, #0 movne r1, r6 movne r9, r3 - bne .L1153 + bne .L1155 mov r9, r3 -.L1155: +.L1157: mov r1, #1 bl FtlFreeSysBlkQueueIn strh fp, [r10] @ movhi @@ -6965,15 +6970,15 @@ ftl_free_no_use_map_blk: mov r1, r6 sub r3, r3, #1 strh r3, [r4, #8] @ movhi -.L1153: +.L1155: add r8, r8, #1 - b .L1150 -.L1167: + b .L1152 +.L1169: mov r0, r1 ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1169: +.L1171: .align 2 -.L1168: +.L1170: .word .LANCHOR0 .fnend .size ftl_free_no_use_map_blk, .-ftl_free_no_use_map_blk @@ -6987,9 +6992,9 @@ FtlL2PDataInit: stmfd sp!, {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} mov r1, #0 - ldr r5, .L1175 + ldr r5, .L1177 mvn r6, #0 - ldr r4, .L1175+4 + ldr r4, .L1177+4 ldr r2, [r5, #2416] ldr r0, [r4, #-468] mov r2, r2, asl #1 @@ -7002,19 +7007,19 @@ FtlL2PDataInit: ldr r0, [r4, #-440] mul r2, r2, r3 bl ftl_memset - ldr ip, .L1175+8 + ldr ip, .L1177+8 mov r1, #0 mov r3, r4 sub r7, ip, #28 mov r4, #12 mov r5, r1 -.L1171: +.L1173: ldrh r2, [ip] add lr, r1, #1 uxth r1, r1 - ldr r0, .L1175 + ldr r0, .L1177 cmp r2, r1 - bls .L1174 + bls .L1176 mul r0, r4, r1 ldr r2, [r3, #-3380] add r8, r2, r0 @@ -7029,15 +7034,15 @@ FtlL2PDataInit: add r2, r1, r2 mov r1, lr str r2, [r0, #8] - b .L1171 -.L1174: - ldr r2, .L1175+12 + b .L1173 +.L1176: + ldr r2, .L1177+12 mvn r1, #0 strh r1, [r2, #2] @ movhi strh r1, [r2] @ movhi ldr r1, [r0, #2416] strh r1, [r2, #10] @ movhi - ldr r1, .L1175+16 + ldr r1, .L1177+16 strh r1, [r2, #4] @ movhi ldrh r1, [r2, #44] strh r1, [r2, #8] @ movhi @@ -7053,9 +7058,9 @@ FtlL2PDataInit: ldr r2, [r3, #-452] str r2, [r3, #-408] ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L1176: +.L1178: .align 2 -.L1175: +.L1177: .word .LANCHOR0 .word .LANCHOR2 .word .LANCHOR0+2426 @@ -7073,9 +7078,9 @@ FtlVariablesInit: stmfd sp!, {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} mvn r3, #0 - ldr r5, .L1179 + ldr r5, .L1181 mov r4, #0 - ldr r6, .L1179+4 + ldr r6, .L1181+4 mov r1, r4 sub r2, r5, #380 movw r7, #2330 @@ -7114,9 +7119,9 @@ FtlVariablesInit: bl FtlL2PDataInit mov r0, r4 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L1180: +.L1182: .align 2 -.L1179: +.L1181: .word .LANCHOR2 .word .LANCHOR0 .fnend @@ -7131,9 +7136,9 @@ SupperBlkListInit: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} movw r3, #2330 - ldr r10, .L1193 + ldr r10, .L1195 mov r2, #6 - ldr r6, .L1193+4 + ldr r6, .L1195+4 mov r1, #0 .pad #28 sub sp, sp, #28 @@ -7158,15 +7163,15 @@ SupperBlkListInit: strh r7, [r3] @ movhi str r10, [sp, #8] str r1, [sp, #12] -.L1182: - ldr r3, .L1193+8 +.L1184: + ldr r3, .L1195+8 uxth r7, r4 sxth r10, r7 ldrh r2, [r3] cmp r10, r2 - bge .L1189 + bge .L1191 sub r3, r3, #8 - ldr r2, .L1193+12 + ldr r2, .L1195+12 mov ip, r7 ldrh r3, [r3] str r3, [sp] @@ -7174,11 +7179,11 @@ SupperBlkListInit: mov r2, #0 mov r6, r2 str r3, [sp, #4] -.L1190: +.L1192: ldr r3, [sp] sxth r1, r2 cmp r1, r3 - bge .L1192 + bge .L1194 ldr r3, [sp, #8] str r2, [sp, #20] add r1, r3, r1 @@ -7194,65 +7199,65 @@ SupperBlkListInit: add r2, r2, #1 addeq r6, r3, r6 uxtheq r6, r6 - b .L1190 -.L1192: + b .L1192 +.L1194: cmp r6, #0 - beq .L1185 + beq .L1187 sxth r1, r6 mov r0, #32768 bl __aeabi_idiv uxth r6, r0 - b .L1186 -.L1185: + b .L1188 +.L1187: sxth r7, r7 ldr r2, [r5, #-3544] mvn r1, #0 mov r7, r7, asl #1 strh r1, [r2, r7] @ movhi -.L1186: +.L1188: mov r1, r10, asl #1 ldr r2, [r5, #-3552] add r0, r1, r10 add r2, r2, r0, asl #1 strh r6, [r2, #4] @ movhi - ldr r2, .L1193+16 + ldr r2, .L1195+16 ldrh r0, [r2] cmp r10, r0 - beq .L1187 + beq .L1189 ldrh r0, [r2, #48] cmp r10, r0 - beq .L1187 + beq .L1189 ldrh r2, [r2, #96] cmp r10, r2 - beq .L1187 + beq .L1189 ldr r3, [fp, #-3544] uxth r0, r4 ldrh r3, [r3, r1] cmp r3, #0 - bne .L1188 + bne .L1190 add r8, r8, #1 uxth r8, r8 bl INSERT_FREE_LIST - b .L1187 -.L1188: + b .L1189 +.L1190: add r9, r9, #1 uxth r9, r9 bl INSERT_DATA_LIST -.L1187: - add r4, r4, #1 - b .L1182 .L1189: + add r4, r4, #1 + b .L1184 +.L1191: ldr r3, [sp, #12] mov r0, #0 strh r9, [r3] @ movhi - ldr r3, .L1193+20 + ldr r3, .L1195+20 strh r8, [r3, #-8] @ movhi add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1194: +.L1196: .align 2 -.L1193: +.L1195: .word .LANCHOR0 .word .LANCHOR2 .word .LANCHOR0+2328 @@ -7271,9 +7276,9 @@ FtlGcPageVarInit: stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r3, #0 - ldr r4, .L1197 + ldr r4, .L1199 movw r5, #2392 - ldr r6, .L1197+4 + ldr r6, .L1199+4 mov r1, #255 sub r2, r4, #2672 ldr r0, [r4, #-2680] @@ -7291,9 +7296,9 @@ FtlGcPageVarInit: bl ftl_memset ldmfd sp!, {r4, r5, r6, lr} b FtlGcBufInit -.L1198: +.L1200: .align 2 -.L1197: +.L1199: .word .LANCHOR2 .word .LANCHOR0 .fnend @@ -7319,13 +7324,13 @@ FlashReadIdbData: stmfd sp!, {r3, lr} .save {r3, lr} mov r2, #2048 - ldr r1, .L1202 + ldr r1, .L1204 bl ftl_memcpy mov r0, #0 ldmfd sp!, {r3, pc} -.L1203: +.L1205: .align 2 -.L1202: +.L1204: .word .LANCHOR2-364 .fnend .size FlashReadIdbData, .-FlashReadIdbData @@ -7339,43 +7344,43 @@ FlashLoadPhyInfoInRam: stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, lr} .save {r3, r4, r5, r6, r7, r8, r9, lr} mov r4, #0 - ldr r8, .L1217 -.L1208: + ldr r8, .L1219 +.L1210: mov r7, r4, asl #5 - ldr r1, .L1217+4 + ldr r1, .L1219+4 add r0, r7, #1 ldrb r2, [r8, r4, asl #5] @ zero_extendqisi2 add r0, r8, r0 - ldr r6, .L1217+8 + ldr r6, .L1219+8 bl FlashMemCmp8 add r9, r6, #508 subs r5, r0, #0 - bne .L1205 + bne .L1207 adds r9, r9, r7 - beq .L1211 + beq .L1213 add r4, r6, r7 mov r3, r5 - ldr r1, .L1217+12 + ldr r1, .L1219+12 ldrb r2, [r4, #530] @ zero_extendqisi2 - b .L1210 -.L1205: + b .L1212 +.L1207: add r4, r4, #1 cmp r4, #86 - bne .L1208 - b .L1211 -.L1216: + bne .L1210 + b .L1213 +.L1218: add r3, r3, #1 cmp r3, #4 - beq .L1209 -.L1210: + beq .L1211 +.L1212: ldrb r0, [r1, r3, asl #5] @ zero_extendqisi2 cmp r0, r2 - bne .L1216 -.L1209: - ldr r4, .L1217+16 + bne .L1218 +.L1211: + ldr r4, .L1219+16 mov r2, #32 - ldr r1, .L1217+12 - ldr r0, .L1217+20 + ldr r1, .L1219+12 + ldr r0, .L1219+20 add r1, r1, r3, asl #5 bl ftl_memcpy mov r0, r4 @@ -7384,15 +7389,15 @@ FlashLoadPhyInfoInRam: bl ftl_memcpy ldrh r0, [r4, #10] bl FlashBlockAlignInit - b .L1206 -.L1211: + b .L1208 +.L1213: mvn r5, #0 -.L1206: +.L1208: mov r0, r5 ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, pc} -.L1218: +.L1220: .align 2 -.L1217: +.L1219: .word .LANCHOR1+508 .word .LANCHOR0+2068 .word .LANCHOR1 @@ -7416,14 +7421,14 @@ NandcCopy1KB: ldr r5, [sp, #16] add r6, r0, #512 add r2, r2, r4, asl #9 - bne .L1220 + bne .L1222 cmp r3, #0 - beq .L1221 + beq .L1223 mov r0, r2 mov r1, r3 mov r2, #1024 bl ftl_memcpy -.L1221: +.L1223: cmp r5, #0 ldmeqfd sp!, {r4, r5, r6, pc} ldrb r3, [r5, #2] @ zero_extendqisi2 @@ -7438,14 +7443,14 @@ NandcCopy1KB: orr r3, r3, r2, asl #24 str r3, [r6, r4, asl #4] ldmfd sp!, {r4, r5, r6, pc} -.L1220: +.L1222: cmp r3, #0 - beq .L1224 + beq .L1226 mov r1, r2 mov r0, r3 mov r2, #1024 bl ftl_memcpy -.L1224: +.L1226: cmp r5, #0 ldmeqfd sp!, {r4, r5, r6, pc} mov r4, r4, lsr #1 @@ -7470,13 +7475,13 @@ ftl_memcpy32: @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. mov r3, #0 -.L1237: +.L1239: cmp r3, r2 ldrne ip, [r1, r3, asl #2] strne ip, [r0, r3, asl #2] addne r3, r3, #1 - bne .L1237 -.L1239: + bne .L1239 +.L1241: bx lr .fnend .size ftl_memcpy32, .-ftl_memcpy32 @@ -7499,12 +7504,12 @@ timer_get_time: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1242 + ldr r3, .L1244 ldr r0, [r3] b jiffies_to_msecs -.L1243: +.L1245: .align 2 -.L1242: +.L1244: .word jiffies .fnend .size timer_get_time, .-timer_get_time @@ -7515,13 +7520,13 @@ FlashSramLoadStore: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr ip, .L1248 + ldr ip, .L1250 cmp r2, #0 moveq r2, r3 ldr ip, [ip, #1684] add ip, ip, #4096 add r1, ip, r1 - beq .L1247 + beq .L1249 str lr, [sp, #-4]! .save {lr} mov lr, r0 @@ -7529,11 +7534,11 @@ FlashSramLoadStore: mov r1, lr ldr lr, [sp], #4 mov r2, r3 -.L1247: - b ftl_memcpy .L1249: + b ftl_memcpy +.L1251: .align 2 -.L1248: +.L1250: .word .LANCHOR2 .fnend .size FlashSramLoadStore, .-FlashSramLoadStore @@ -7549,6 +7554,45 @@ FlashCs123Init: .fnend .size FlashCs123Init, .-FlashCs123Init .align 2 + .global ftl_dma32_malloc + .type ftl_dma32_malloc, %function +ftl_dma32_malloc: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + cmp r0, #8192 + stmfd sp!, {r3, r4, r5, lr} + .save {r3, r4, r5, lr} + ble .L1254 + ldmfd sp!, {r3, r4, r5, lr} + b ftl_malloc +.L1254: + ldr r5, .L1257 + add r4, r0, #63 + bic r4, r4, #63 + ldr r3, [r5, #1688] + cmp r3, r4 + bge .L1255 + mov r0, #16384 + bl ftl_malloc + mov r3, #16384 + str r3, [r5, #1688] + str r0, [r5, #1692] +.L1255: + ldr r3, [r5, #1688] + ldr r0, [r5, #1692] + rsb r3, r4, r3 + str r3, [r5, #1688] + add r4, r0, r4 + str r4, [r5, #1692] + ldmfd sp!, {r3, r4, r5, pc} +.L1258: + .align 2 +.L1257: + .word .LANCHOR2 + .fnend + .size ftl_dma32_malloc, .-ftl_dma32_malloc + .align 2 .global rk_nand_suspend .type rk_nand_suspend, %function rk_nand_suspend: @@ -7578,12 +7622,12 @@ rk_ftl_get_capacity: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1254 + ldr r3, .L1262 ldr r0, [r3, #2428] bx lr -.L1255: +.L1263: .align 2 -.L1254: +.L1262: .word .LANCHOR0 .fnend .size rk_ftl_get_capacity, .-rk_ftl_get_capacity @@ -7636,47 +7680,47 @@ rknand_print_hex: mov r7, r2 mov r8, r3 mov r4, r5 -.L1260: +.L1268: cmp r4, r8 - beq .L1269 + beq .L1277 cmp r5, #0 - bne .L1261 - ldr r0, .L1270 + bne .L1269 + ldr r0, .L1278 mov r1, r9 mov r2, r6 mov r3, r4 bl printk -.L1261: +.L1269: cmp r7, #4 - ldreq r0, .L1270+4 + ldreq r0, .L1278+4 ldreq r1, [r6, r4, asl #2] - beq .L1268 + beq .L1276 cmp r7, #2 moveq r3, r4, asl #1 - ldreq r0, .L1270+4 + ldreq r0, .L1278+4 ldreqsh r1, [r6, r3] - ldrne r0, .L1270+4 + ldrne r0, .L1278+4 ldrneb r1, [r6, r4] @ zero_extendqisi2 -.L1268: +.L1276: add r5, r5, #1 bl printk cmp r5, #15 - bls .L1265 - ldr r0, .L1270+8 + bls .L1273 + ldr r0, .L1278+8 mov r5, #0 - ldr r1, .L1270+12 + ldr r1, .L1278+12 bl printk -.L1265: +.L1273: add r4, r4, #1 - b .L1260 -.L1269: - ldr r0, .L1270+8 - ldr r1, .L1270+12 + b .L1268 +.L1277: + ldr r0, .L1278+8 + ldr r1, .L1278+12 ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, lr} b printk -.L1271: +.L1279: .align 2 -.L1270: +.L1278: .word .LC82 .word .LC83 .word .LC76 @@ -7693,161 +7737,161 @@ HynixGetReadRetryDefault: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} cmp r0, #2 - ldr r7, .L1381 + ldr r7, .L1389 mvn r3, #83 mvn r1, #82 mvn r2, #81 .pad #44 sub sp, sp, #44 mov r4, r0 - strb r3, [r7, #1214] + strb r3, [r7, #1216] mvn r3, #80 - strb r0, [r7, #1210] - strb r1, [r7, #1215] - strb r2, [r7, #1216] - strb r3, [r7, #1217] - bne .L1273 + strb r0, [r7, #1212] + strb r1, [r7, #1217] + strb r2, [r7, #1218] + strb r3, [r7, #1219] + bne .L1281 mvn r3, #88 - strb r3, [r7, #1214] - ldr r3, .L1381+4 + strb r3, [r7, #1216] + ldr r3, .L1389+4 mvn r2, #8 mov r5, #7 strb r2, [r3, #3405] - b .L1334 -.L1273: + b .L1342 +.L1281: cmp r0, #3 - bne .L1275 + bne .L1283 mvn r3, #79 - strb r3, [r7, #1214] - mvn r3, #78 - strb r3, [r7, #1215] - mvn r3, #77 strb r3, [r7, #1216] - mvn r3, #76 + mvn r3, #78 strb r3, [r7, #1217] - mvn r3, #75 + mvn r3, #77 strb r3, [r7, #1218] - mvn r3, #74 + mvn r3, #76 strb r3, [r7, #1219] - mvn r3, #73 + mvn r3, #75 strb r3, [r7, #1220] - mvn r3, #72 - b .L1375 -.L1275: - cmp r0, #4 - bne .L1276 - mvn r0, #51 - strb r1, [r7, #1219] - strb r0, [r7, #1214] - mvn r0, #64 - strb r2, [r7, #1220] - strb r0, [r7, #1215] - mvn r0, #85 - strb r0, [r7, #1216] - mvn r0, #84 - strb r0, [r7, #1217] - mvn r0, #50 - strb r0, [r7, #1218] -.L1375: - mov r5, #8 + mvn r3, #74 strb r3, [r7, #1221] + mvn r3, #73 + strb r3, [r7, #1222] + mvn r3, #72 + b .L1383 +.L1283: + cmp r0, #4 + bne .L1284 + mvn r0, #51 + strb r1, [r7, #1221] + strb r0, [r7, #1216] + mvn r0, #64 + strb r2, [r7, #1222] + strb r0, [r7, #1217] + mvn r0, #85 + strb r0, [r7, #1218] + mvn r0, #84 + strb r0, [r7, #1219] + mvn r0, #50 + strb r0, [r7, #1220] +.L1383: + mov r5, #8 + strb r3, [r7, #1223] mov r6, r5 - b .L1274 -.L1276: + b .L1282 +.L1284: cmp r0, #5 - bne .L1277 + bne .L1285 mov r3, #56 mov r5, #8 - strb r3, [r7, #1214] - mov r3, #57 - strb r3, [r7, #1215] - mov r3, #58 strb r3, [r7, #1216] - mov r3, #59 + mov r3, #57 strb r3, [r7, #1217] - b .L1334 -.L1277: + mov r3, #58 + strb r3, [r7, #1218] + mov r3, #59 + strb r3, [r7, #1219] + b .L1342 +.L1285: cmp r0, #6 - bne .L1278 + bne .L1286 mov r3, #14 mov r5, #12 - strb r3, [r7, #1214] - mov r3, #15 - strb r3, [r7, #1215] - mov r3, #16 strb r3, [r7, #1216] - mov r3, #17 + mov r3, #15 strb r3, [r7, #1217] - b .L1334 -.L1278: + mov r3, #16 + strb r3, [r7, #1218] + mov r3, #17 + strb r3, [r7, #1219] + b .L1342 +.L1286: cmp r0, #7 - bne .L1279 + bne .L1287 mvn r3, #79 mov r5, #12 - strb r3, [r7, #1214] + strb r3, [r7, #1216] mov r6, #10 mvn r3, #78 - strb r3, [r7, #1215] - mvn r3, #77 - strb r3, [r7, #1216] - mvn r3, #76 strb r3, [r7, #1217] - mvn r3, #75 + mvn r3, #77 strb r3, [r7, #1218] - mvn r3, #74 + mvn r3, #76 strb r3, [r7, #1219] - mvn r3, #73 + mvn r3, #75 strb r3, [r7, #1220] - mvn r3, #72 + mvn r3, #74 strb r3, [r7, #1221] - mvn r3, #43 + mvn r3, #73 strb r3, [r7, #1222] - mvn r3, #42 + mvn r3, #72 strb r3, [r7, #1223] - b .L1274 -.L1279: + mvn r3, #43 + strb r3, [r7, #1224] + mvn r3, #42 + strb r3, [r7, #1225] + b .L1282 +.L1287: cmp r0, #8 mov r5, #7 - bne .L1334 + bne .L1342 mov r3, #6 - strb r5, [r7, #1215] - strb r3, [r7, #1214] + strb r5, [r7, #1217] + strb r3, [r7, #1216] mov r5, #50 mov r3, #9 - strb r0, [r7, #1216] - strb r3, [r7, #1217] + strb r0, [r7, #1218] + strb r3, [r7, #1219] mov r6, #5 mov r3, #10 - strb r3, [r7, #1218] - b .L1274 -.L1334: + strb r3, [r7, #1220] + b .L1282 +.L1342: mov r6, #4 -.L1274: +.L1282: sub r3, r4, #1 cmp r3, #1 - bhi .L1371 - ldr r10, .L1381+8 + bhi .L1379 + ldr r10, .L1389+8 mov r9, #0 -.L1280: +.L1288: ldrb r1, [r7, #2230] @ zero_extendqisi2 uxtb r2, r9 - ldr r3, .L1381 + ldr r3, .L1389 cmp r1, r2 - bls .L1287 + bls .L1295 add r2, r3, r2 - ldr r4, .L1381+12 - ldr r1, .L1381+16 + ldr r4, .L1389+12 + ldr r1, .L1389+16 mov ip, #55 ldrb r2, [r2, #2232] @ zero_extendqisi2 + ldr r0, [r3, r2, asl #3] add r3, r3, r2, asl #3 add r4, r4, r2, asl #6 + ldrb r8, [r3, #4] @ zero_extendqisi2 add r4, r4, #20 - ldrb r8, [r3, #16] @ zero_extendqisi2 - ldr r0, [r3, #12] mov fp, r4 mov r2, r4 add r8, r0, r8, asl #8 -.L1282: +.L1290: str ip, [r8, #2056] mov r0, #80 ldrb r3, [r1, #1]! @ zero_extendqisi2 @@ -7856,7 +7900,7 @@ HynixGetReadRetryDefault: str r3, [r8, #2052] str r1, [sp, #4] str r1, [sp, #16] - bl NandcDelayns + bl ndelay ldr r3, [r8, #2048] ldr r2, [sp, #12] ldmib sp, {r1, ip} @@ -7864,23 +7908,23 @@ HynixGetReadRetryDefault: rsb r3, r4, r2 uxtb r3, r3 cmp r3, r6 - bcc .L1282 + bcc .L1290 mov r2, #0 -.L1283: +.L1291: add r0, r10, r2 mov r3, #1 -.L1284: +.L1292: ldrb r1, [r0, r3, asl #2] @ zero_extendqisi2 ldrb ip, [fp] @ zero_extendqisi2 add r1, r1, ip strb r1, [fp, r3, asl #3] add r3, r3, #1 cmp r3, #7 - bne .L1284 + bne .L1292 add r2, r2, #1 add fp, fp, #1 cmp r2, #4 - bne .L1283 + bne .L1291 mov r3, #0 add r9, r9, #1 strb r3, [r4, #16] @@ -7890,11 +7934,11 @@ HynixGetReadRetryDefault: strb r3, [r4, #48] strb r3, [r4, #41] strb r3, [r4, #49] - b .L1280 -.L1371: + b .L1288 +.L1379: sub r3, r4, #3 cmp r3, #5 - bhi .L1287 + bhi .L1295 smulbb r2, r6, r5 mov r3, r2, asl #4 mov r2, r2, asr #1 @@ -7902,87 +7946,87 @@ HynixGetReadRetryDefault: mov r3, r2, asl #1 str r3, [sp, #8] mov r3, #0 -.L1379: +.L1387: str r3, [sp, #16] ldrb r3, [sp, #16] @ zero_extendqisi2 str r3, [sp, #12] - ldr r3, .L1381 + ldr r3, .L1389 ldr r2, [sp, #12] ldrb r3, [r3, #2230] @ zero_extendqisi2 cmp r3, r2 - bhi .L1332 -.L1287: - ldr r3, .L1381 - strb r6, [r3, #1211] - strb r5, [r3, #1212] + bhi .L1340 +.L1295: + ldr r3, .L1389 + strb r6, [r3, #1213] + strb r5, [r3, #1214] add sp, sp, #44 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1332: +.L1340: ldr r2, [sp, #12] - ldr r3, .L1381 + ldr r3, .L1389 add r3, r3, r2 ldrb r10, [r3, #2232] @ zero_extendqisi2 - ldr r3, .L1381 - add r3, r3, r10, asl #3 + ldr r3, .L1389 mov r0, r10 - ldrb fp, [r3, #16] @ zero_extendqisi2 - ldr r8, [r3, #12] + ldr r8, [r3, r10, asl #3] + add r3, r3, r10, asl #3 + ldrb fp, [r3, #4] @ zero_extendqisi2 mov r3, #255 mov r9, fp, asl #8 add r7, r8, r9 str r3, [r7, #2056] bl NandcWaitFlashReady cmp r4, #7 - ldreq r3, .L1381+12 + ldreq r3, .L1389+12 moveq r7, #160 mlaeq r7, r7, r10, r3 addeq r3, r7, #28 - beq .L1376 -.L1289: + beq .L1384 +.L1297: cmp r4, #8 - beq .L1291 - ldr r3, .L1381+12 + beq .L1299 + ldr r3, .L1389+12 add r7, r3, r10, asl #6 add r3, r7, #20 -.L1376: +.L1384: str r3, [sp, #20] cmp r4, #4 add r3, r8, fp, asl #8 mov r2, #54 str r2, [r3, #2056] - bne .L1292 + bne .L1300 add r9, r8, r9 mov r3, #255 str r3, [r9, #2052] mov r3, #64 str r3, [r9, #2048] mov r3, #204 - b .L1377 -.L1292: + b .L1385 +.L1300: sub r2, r4, #5 cmp r2, #1 - bhi .L1294 - ldr r2, .L1381 - ldrb r2, [r2, #1214] @ zero_extendqisi2 + bhi .L1302 + ldr r2, .L1389 + ldrb r2, [r2, #1216] @ zero_extendqisi2 str r2, [r3, #2052] mov r2, #82 str r2, [r3, #2048] - b .L1293 -.L1294: + b .L1301 +.L1302: cmp r4, #7 - bne .L1293 + bne .L1301 add r9, r8, r9 mov r3, #174 str r3, [r9, #2052] mov r3, #0 str r3, [r9, #2048] mov r3, #176 -.L1377: +.L1385: str r3, [r9, #2052] mov r3, #77 str r3, [r9, #2048] -.L1293: +.L1301: add r3, r8, fp, asl #8 cmp r4, #6 mov r2, #22 @@ -8003,7 +8047,7 @@ HynixGetReadRetryDefault: str r2, [r3, #2052] mov r2, #0 str r2, [r3, #2052] -.L1333: +.L1341: add r3, r8, fp, asl #8 mov r2, #48 mov r0, r10 @@ -8022,134 +8066,134 @@ HynixGetReadRetryDefault: ldr r3, [sp, #24] orrs r3, r3, r2 movne ip, #16 - bne .L1297 + bne .L1305 cmp r4, #7 movne ip, #2 moveq ip, #32 -.L1297: - ldr r3, .L1381+20 +.L1305: + ldr r3, .L1389+20 add r0, r8, fp, asl #8 - ldr r3, [r3, #1688] + ldr r3, [r3, #1696] mov r1, r3 -.L1298: +.L1306: ldr r2, [r0, #2048] strb r2, [r1], #1 rsb r2, r3, r1 uxtb r2, r2 cmp r2, ip - bcc .L1298 + bcc .L1306 ldr r2, [sp, #4] cmp r2, #0 - beq .L1299 + beq .L1307 mov r2, #0 -.L1301: +.L1309: ldrb ip, [r3, r2, asl #2] @ zero_extendqisi2 uxtb r1, r2 cmp ip, #50 - beq .L1300 + beq .L1308 add ip, r3, r2, asl #2 ldrb ip, [ip, #1] @ zero_extendqisi2 cmp ip, #5 - beq .L1300 + beq .L1308 add r2, r2, #1 cmp r2, #8 - bne .L1301 - b .L1302 -.L1300: - cmp r1, #6 - bls .L1303 -.L1302: - ldr r0, .L1381+24 - mov r1, #0 - bl printk -.L1304: - b .L1304 -.L1299: - cmp r4, #7 - bne .L1305 - ldr r2, [sp, #4] -.L1307: - ldrb ip, [r3, r2, asl #2] @ zero_extendqisi2 - uxtb r1, r2 - cmp ip, #12 - beq .L1306 - add ip, r3, r2, asl #2 - ldrb ip, [ip, #1] @ zero_extendqisi2 - cmp ip, #10 - beq .L1306 - add r2, r2, #1 - cmp r2, #8 - bne .L1307 - b .L1308 -.L1306: - cmp r1, #7 - bne .L1303 + bne .L1309 + b .L1310 .L1308: - ldr r0, .L1381+24 - mov r1, #0 - bl printk -.L1309: - b .L1309 -.L1305: - cmp r4, #6 - bne .L1303 - sub r2, r3, #1 - add r3, r3, #7 + cmp r1, #6 + bls .L1311 .L1310: - ldrb r1, [r2, #1]! @ zero_extendqisi2 - cmp r1, #12 - beq .L1303 - ldrb r1, [r2, #8] @ zero_extendqisi2 - cmp r1, #4 - beq .L1303 - cmp r2, r3 - bne .L1310 - ldr r0, .L1381+24 + ldr r0, .L1389+24 mov r1, #0 bl printk .L1312: b .L1312 -.L1303: - ldr r1, .L1381+20 +.L1307: + cmp r4, #7 + bne .L1313 + ldr r2, [sp, #4] +.L1315: + ldrb ip, [r3, r2, asl #2] @ zero_extendqisi2 + uxtb r1, r2 + cmp ip, #12 + beq .L1314 + add ip, r3, r2, asl #2 + ldrb ip, [ip, #1] @ zero_extendqisi2 + cmp ip, #10 + beq .L1314 + add r2, r2, #1 + cmp r2, #8 + bne .L1315 + b .L1316 +.L1314: + cmp r1, #7 + bne .L1311 +.L1316: + ldr r0, .L1389+24 + mov r1, #0 + bl printk +.L1317: + b .L1317 +.L1313: + cmp r4, #6 + bne .L1311 + sub r2, r3, #1 + add r3, r3, #7 +.L1318: + ldrb r1, [r2, #1]! @ zero_extendqisi2 + cmp r1, #12 + beq .L1311 + ldrb r1, [r2, #8] @ zero_extendqisi2 + cmp r1, #4 + beq .L1311 + cmp r2, r3 + bne .L1318 + ldr r0, .L1389+24 + mov r1, #0 + bl printk +.L1320: + b .L1320 +.L1311: + ldr r1, .L1389+20 ldr ip, [sp, #36] - ldr r2, [r1, #1688] + ldr r2, [r1, #1696] add ip, r2, ip mov r3, r2 -.L1313: +.L1321: cmp r3, ip ldrne lr, [r0, #2048] strneb lr, [r3], #1 - bne .L1313 -.L1380: - ldr r3, [r1, #1688] + bne .L1321 +.L1388: + ldr r3, [r1, #1696] mov r0, #8 ldr r1, [sp, #8] add r1, r3, r1 str r1, [sp, #28] -.L1316: +.L1324: ldr ip, [sp, #8] add lr, r1, ip -.L1315: +.L1323: ldrh ip, [r1] mvn ip, ip strh ip, [r1], #2 @ movhi cmp r1, lr - bne .L1315 + bne .L1323 ldr ip, [sp, #8] subs r0, r0, #1 add r1, r1, ip - bne .L1316 -.L1317: + bne .L1324 +.L1325: mov ip, #0 mov r0, ip -.L1320: +.L1328: mov r1, #1 mov lr, #0 mov r1, r1, asl r0 mov r7, #16 str r7, [sp, #32] mov r7, lr -.L1318: +.L1326: ldrh r9, [r3, lr] and r9, r9, r1 cmp r9, r1 @@ -8159,71 +8203,71 @@ HynixGetReadRetryDefault: ldr r9, [sp, #32] subs r9, r9, #1 str r9, [sp, #32] - bne .L1318 + bne .L1326 cmp r7, #8 add r0, r0, #1 orrhi ip, ip, r1 uxthhi ip, ip cmp r0, #16 - bne .L1320 + bne .L1328 ldr r1, [sp, #28] strh ip, [r3], #2 @ movhi cmp r3, r1 - bne .L1317 - ldr r3, .L1381+20 - ldr r1, [r3, #1688] + bne .L1325 + ldr r3, .L1389+20 + ldr r1, [r3, #1696] mov r3, #0 sub r0, r1, #4 add ip, r1, #28 -.L1322: +.L1330: ldr lr, [r0, #4]! cmp lr, #0 addeq r3, r3, #1 cmp r0, ip - bne .L1322 + bne .L1330 cmp r3, #7 - ble .L1323 - ldr r0, .L1381+28 + ble .L1331 + ldr r0, .L1389+28 mov r2, #1 mov r3, #1024 bl rknand_print_hex - ldr r0, .L1381+24 + ldr r0, .L1389+24 mov r1, #0 bl printk -.L1324: - b .L1324 -.L1323: +.L1332: + b .L1332 +.L1331: cmp r4, #6 moveq r0, #4 - beq .L1325 + beq .L1333 cmp r4, #7 moveq r0, #10 - beq .L1325 + beq .L1333 ldr r3, [sp, #4] cmp r3, #0 moveq r0, #8 movne r0, #5 -.L1325: +.L1333: sub r9, r6, #1 ldr r1, [sp, #20] mov ip, #0 uxtb r9, r9 add r9, r9, #1 -.L1326: +.L1334: mov r7, r1 mov r3, r2 -.L1327: +.L1335: ldrb lr, [r3], #1 @ zero_extendqisi2 strb lr, [r7], #1 rsb lr, r2, r3 uxtb lr, lr cmp lr, r6 - bcc .L1327 + bcc .L1335 add ip, ip, #1 add r2, r2, r9 cmp ip, r5 add r1, r1, r0 - blt .L1326 + blt .L1334 add r7, r8, fp, asl #8 mov r3, #255 mov r0, r10 @@ -8231,33 +8275,33 @@ HynixGetReadRetryDefault: bl NandcWaitFlashReady ldr r3, [sp, #24] cmp r3, #0 - beq .L1329 + beq .L1337 mov r3, #54 str r3, [r7, #2056] - ldr r3, .L1381 + ldr r3, .L1389 mvn r1, #0 ldr r0, [sp, #12] - ldrb r3, [r3, #1214] @ zero_extendqisi2 + ldrb r3, [r3, #1216] @ zero_extendqisi2 str r3, [r7, #2052] mov r3, #0 str r3, [r7, #2048] mov r3, #22 str r3, [r7, #2056] bl FlashReadCmd - b .L1330 -.L1329: + b .L1338 +.L1337: ldr r3, [sp, #4] cmp r3, #0 movne r3, #190 moveq r3, #56 str r3, [r7, #2056] -.L1330: +.L1338: mov r0, r10 bl NandcWaitFlashReady ldr r3, [sp, #16] add r3, r3, #1 - b .L1379 -.L1291: + b .L1387 +.L1299: mov r3, #120 mov r2, #23 str r3, [r7, #2056] @@ -8279,21 +8323,21 @@ HynixGetReadRetryDefault: str r1, [r7, #2052] str r2, [r7, #2052] str r3, [r7, #2052] - ldr r3, .L1381+32 + ldr r3, .L1389+32 str r3, [sp, #20] - b .L1333 -.L1382: + b .L1341 +.L1390: .align 2 -.L1381: +.L1389: .word .LANCHOR0 .word .LANCHOR1 .word .LANCHOR1+3388 - .word .LANCHOR0+1210 - .word .LANCHOR0+1213 + .word .LANCHOR0+1212 + .word .LANCHOR0+1215 .word .LANCHOR2 .word .LC85 .word .LC86 - .word .LANCHOR0+1238 + .word .LANCHOR0+1240 .fnend .size HynixGetReadRetryDefault, .-HynixGetReadRetryDefault .align 2 @@ -8308,64 +8352,63 @@ FlashGetReadRetryDefault: bxeq lr sub r2, r3, #1 cmp r2, #7 - bhi .L1385 + bhi .L1393 b HynixGetReadRetryDefault -.L1385: +.L1393: cmp r3, #49 - bne .L1386 - ldr r2, .L1397 - ldr r0, .L1397+4 - ldr r1, .L1397+8 - strb r3, [r2, #1210] - mov r3, #4 - strb r3, [r2, #1211] - mov r3, #15 - strb r3, [r2, #1212] + bne .L1394 + ldr r0, .L1405 mov r2, #64 - b .L1395 -.L1386: + ldr r1, .L1405+4 + add r0, r0, #1216 + strb r3, [r0, #-4] + mov r3, #4 + strb r3, [r0, #-3] + mov r3, #15 + strb r3, [r0, #-2] + b .L1403 +.L1394: sub r2, r3, #65 cmp r3, #33 cmpne r2, #1 - ldrls r2, .L1397 - strlsb r3, [r2, #1210] + ldrls r0, .L1405 + strlsb r3, [r0, #1212] movls r3, #4 - bls .L1396 -.L1387: + bls .L1404 +.L1395: cmp r3, #34 cmpne r3, #67 - bne .L1388 - ldr r2, .L1397 - strb r3, [r2, #1210] + bne .L1396 + ldr r0, .L1405 + strb r3, [r0, #1212] mov r3, #5 -.L1396: - strb r3, [r2, #1211] - mov r3, #7 - ldr r0, .L1397+4 - strb r3, [r2, #1212] +.L1404: + strb r3, [r0, #1213] mov r2, #45 - ldr r1, .L1397+12 - b .L1395 -.L1388: + mov r3, #7 + add r0, r0, #1216 + strb r3, [r0, #-2] + ldr r1, .L1405+8 + b .L1403 +.L1396: cmp r3, #35 cmpne r3, #68 bxne lr - ldr r2, .L1397 - ldr r0, .L1397+4 - ldr r1, .L1397+16 - strb r3, [r2, #1210] - mov r3, #5 - strb r3, [r2, #1211] - mov r3, #17 - strb r3, [r2, #1212] + ldr r0, .L1405 mov r2, #95 -.L1395: + ldr r1, .L1405+12 + add r0, r0, #1216 + strb r3, [r0, #-4] + mov r3, #5 + strb r3, [r0, #-3] + mov r3, #17 + strb r3, [r0, #-2] +.L1403: b ftl_memcpy -.L1398: +.L1406: .align 2 -.L1397: +.L1405: .word .LANCHOR0 - .word .LANCHOR0+1214 .word .LANCHOR1+408 .word .LANCHOR1+256 .word .LANCHOR1+304 @@ -8381,64 +8424,63 @@ NandcXferComp: stmfd sp!, {r0, r1, r4, r5, r6, lr} .save {r4, r5, r6, lr} .pad #8 - ldr r5, .L1439 - add r0, r5, r0, asl #3 + ldr r5, .L1447 ldr r3, [r5, #2260] - ldr r4, [r0, #12] + ldr r4, [r5, r0, asl #3] cmp r3, #3 - bls .L1430 + bls .L1438 ldr r3, [r4, #16] tst r3, #4 - beq .L1430 + beq .L1438 ldr r6, [r4, #16] ldr r3, [r4, #8] ubfx r6, r6, #1, #1 cmp r6, #0 str r3, [sp] movne r6, #0 - beq .L1412 -.L1402: + beq .L1420 +.L1410: ldr r2, [r4, #28] ldr r3, [sp] ubfx r2, r2, #16, #5 ubfx r3, r3, #22, #6 cmp r2, r3 - bge .L1410 + bge .L1418 ldr r3, [r5, #2260] cmp r3, #5 - bhi .L1403 -.L1406: + bhi .L1411 +.L1414: add r6, r6, #1 bic r3, r6, #-16777216 cmp r3, #0 - bne .L1405 + bne .L1413 ldr r2, [r4, #28] mov r1, r6 ldr r3, [sp] ubfx r2, r2, #16, #5 - ldr r0, .L1439+4 + ldr r0, .L1447+4 ubfx r3, r3, #22, #6 bl printk - ldr r0, .L1439+8 + ldr r0, .L1447+8 mov r1, r4 mov r2, #4 mov r3, #512 bl rknand_print_hex - b .L1405 -.L1403: + b .L1413 +.L1411: ldr r3, [r4] str r3, [sp, #4] ldr r3, [sp, #4] tst r3, #8192 - beq .L1406 + beq .L1414 ldr r3, [sp, #4] tst r3, #131072 - beq .L1406 -.L1410: + beq .L1414 +.L1418: ldr r3, [r5, #2296] - ldr r4, .L1439 + ldr r4, .L1447 cmp r3, #0 - beq .L1411 + beq .L1419 ldr r1, [sp] mov r2, #0 ldr r0, [r4, #2288] @@ -8451,48 +8493,48 @@ NandcXferComp: ubfx r1, r1, #22, #5 mov r1, r1, asl #7 bl rknand_dma_unmap_single - b .L1411 -.L1405: + b .L1419 +.L1413: mov r0, #1 mov r1, #5 bl usleep_range - b .L1402 -.L1414: + b .L1410 +.L1422: ldr r3, [r4, #8] add r6, r6, #1 str r3, [sp] bic r3, r6, #-16777216 cmp r3, #0 - bne .L1413 + bne .L1421 ldr r2, [sp] mov r1, r6 ldr r3, [r4, #28] - ldr r0, .L1439+12 + ldr r0, .L1447+12 ubfx r3, r3, #16, #5 bl printk - ldr r0, .L1439+8 + ldr r0, .L1447+8 mov r1, r4 mov r2, #4 mov r3, #512 bl rknand_print_hex -.L1413: +.L1421: mov r0, #1 mov r1, #5 bl usleep_range -.L1412: +.L1420: ldr r3, [sp] tst r3, #1048576 - beq .L1414 + beq .L1422 ldr r3, [r5, #2304] cmp r3, #0 - beq .L1415 + beq .L1423 mov r0, r4 bl NandcSendDumpDataStart -.L1415: +.L1423: ldr r3, [r5, #2296] - ldr r6, .L1439 + ldr r6, .L1447 cmp r3, #0 - beq .L1416 + beq .L1424 ldr r1, [sp] mov r2, #1 ldr r0, [r6, #2288] @@ -8505,29 +8547,29 @@ NandcXferComp: ubfx r1, r1, #22, #5 mov r1, r1, asl #7 bl rknand_dma_unmap_single -.L1416: +.L1424: ldr r3, [r5, #2304] cmp r3, #0 - beq .L1411 + beq .L1419 mov r0, r4 bl NandcSendDumpDataDone -.L1411: +.L1419: mov r3, #0 str r3, [r5, #2296] - b .L1399 -.L1430: + b .L1407 +.L1438: ldr r3, [r4, #8] str r3, [sp] ldr r3, [sp] tst r3, #1048576 - beq .L1430 -.L1399: + beq .L1438 +.L1407: add sp, sp, #8 @ sp needed ldmfd sp!, {r4, r5, r6, pc} -.L1440: +.L1448: .align 2 -.L1439: +.L1447: .word .LANCHOR0 .word .LC87 .word .LC88 @@ -8543,27 +8585,26 @@ NandcXferData: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - mov r10, r3 - ldr r6, .L1489 - tst r10, #63 + tst r3, #63 + ldr r6, .L1497 .pad #92 sub sp, sp, #92 mov r9, r0 - add r3, r6, r0, asl #3 mov r5, r1 mov r7, r2 - ldr r8, [r3, #12] - bne .L1442 + mov r10, r3 + ldr r8, [r6, r0, asl #3] + bne .L1450 ldr r3, [sp, #128] cmp r3, #0 - bne .L1443 + bne .L1451 add r0, sp, #24 mov r1, #255 mov r2, #64 bl ftl_memset add r3, sp, #24 str r3, [sp, #128] -.L1443: +.L1451: ldr r3, [sp, #128] mov r0, r9 mov r1, r5 @@ -8577,7 +8618,7 @@ NandcXferData: bl NandcXferComp cmp r5, #0 movne fp, #0 - bne .L1444 + bne .L1452 ldr r3, [r6, #2308] mov r0, r7, lsr #1 mov r2, r5 @@ -8586,11 +8627,11 @@ NandcXferData: ldr r3, [sp, #128] movcc lr, #64 movcs lr, #128 -.L1446: +.L1454: cmp r1, r0 add r3, r3, #4 add ip, r2, lr - bcs .L1487 + bcs .L1495 ldr r4, [r6, #2276] mov r2, r2, lsr #2 add r1, r1, #1 @@ -8603,30 +8644,30 @@ NandcXferData: strb r4, [r3, #-2] strb r2, [r3, #-1] mov r2, ip - b .L1446 -.L1487: + b .L1454 +.L1495: ldr r0, [r6, #2308] mov r2, #0 ldr r1, [r6, #2260] mov r7, r7, lsr #2 mov fp, r2 -.L1448: +.L1456: cmp r2, r7 - bcs .L1444 + bcs .L1452 cmp r0, #0 - beq .L1444 + beq .L1452 add r3, r2, #8 ldr r3, [r8, r3, asl #2] str r3, [sp, #20] ldr r3, [sp, #20] tst r3, #4 - bne .L1472 + bne .L1480 ldr r4, [sp, #20] ubfx r4, r4, #15, #1 cmp r4, #0 - bne .L1472 + bne .L1480 cmp r1, #5 - bls .L1450 + bls .L1458 ldr ip, [sp, #20] ldr r4, [sp, #20] ldr r3, [sp, #20] @@ -8645,10 +8686,10 @@ NandcXferData: ubfxls r3, r3, #16, #5 ubfxhi r4, r4, #27, #1 ubfxls r4, r4, #29, #1 - b .L1486 -.L1450: + b .L1494 +.L1458: cmp r1, #3 - bls .L1452 + bls .L1460 ldr ip, [sp, #20] ldr r4, [sp, #20] ldr r3, [sp, #20] @@ -8667,29 +8708,29 @@ NandcXferData: ubfxls r3, r3, #16, #5 ubfxhi r4, r4, #28, #1 ubfxls r4, r4, #30, #1 -.L1486: +.L1494: orr r4, r3, r4, asl #5 -.L1452: +.L1460: cmp fp, r4 movcc fp, r4 - b .L1449 -.L1472: + b .L1457 +.L1480: mvn fp, #0 -.L1449: +.L1457: add r2, r2, #1 - b .L1448 -.L1444: + b .L1456 +.L1452: mov r3, #0 str r3, [r8, #16] - b .L1455 -.L1442: + b .L1463 +.L1450: cmp r1, #1 mov r4, #0 - bne .L1484 + bne .L1492 mov fp, r4 -.L1456: +.L1464: cmp r4, r7 - bcs .L1488 + bcs .L1496 ldr r2, [sp, #128] cmp r10, #0 addne r3, r10, r4, asl #9 @@ -8718,11 +8759,11 @@ NandcXferData: mov r0, r9 mov r1, #1 bl NandcXferComp - b .L1456 -.L1488: + b .L1464 +.L1496: mov fp, #0 - b .L1455 -.L1484: + b .L1463 +.L1492: str r4, [sp] mov r1, r4 str r4, [sp, #4] @@ -8731,9 +8772,9 @@ NandcXferData: mov fp, r4 bl NandcXferStart str r10, [sp, #8] -.L1461: +.L1469: cmp r4, r7 - bcs .L1455 + bcs .L1463 mov r0, r9 mov r1, r5 bl NandcXferComp @@ -8741,7 +8782,7 @@ NandcXferData: add ip, r4, #2 cmp ip, r7 str r3, [sp, #20] - bcs .L1462 + bcs .L1470 mov r3, #0 mov r0, r9 str r3, [sp] @@ -8752,11 +8793,11 @@ NandcXferData: str ip, [sp, #12] bl NandcXferStart ldr ip, [sp, #12] -.L1462: +.L1470: ldr r3, [sp, #20] tst r3, #4 mvnne fp, #0 - bne .L1463 + bne .L1471 ldr r2, [sp, #20] ldr r3, [sp, #20] ubfx r2, r2, #3, #5 @@ -8764,7 +8805,7 @@ NandcXferData: orr r3, r2, r3, asl #5 cmp fp, r3 movcc fp, r3 -.L1463: +.L1471: ldr r1, [sp, #128] cmp r10, #0 ldr r3, [sp, #8] @@ -8786,29 +8827,29 @@ NandcXferData: mov r4, ip add r3, r3, #1024 str r3, [sp, #8] - b .L1461 -.L1455: + b .L1469 +.L1463: ldr r3, [r6, #2260] clz r5, r5 cmp r3, #5 mov r5, r5, lsr #5 movls r5, #0 cmp r5, #0 - beq .L1467 + beq .L1475 ldr r3, [r8] and r2, r3, #139264 cmp r2, #139264 orreq r3, r3, #131072 streq r3, [r8] mvneq fp, #0 -.L1467: +.L1475: mov r0, fp add sp, sp, #92 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1490: +.L1498: .align 2 -.L1489: +.L1497: .word .LANCHOR0 .fnend .size NandcXferData, .-NandcXferData @@ -8823,19 +8864,19 @@ FlashReadRawPage: .save {r4, r5, r6, r7, r8, lr} .pad #8 mov r8, r3 - ldr r3, .L1494 + ldr r3, .L1502 subs r4, r0, #0 mov r6, r1 mov r7, r2 ldrb r5, [r3, #481] @ zero_extendqisi2 - bne .L1492 - ldr r2, .L1494+4 - ldrb r3, [r2, #1] @ zero_extendqisi2 - ldr r2, [r2, #4] + bne .L1500 + ldr r2, .L1502+4 + ldrb r3, [r2, #33] @ zero_extendqisi2 + ldr r2, [r2, #36] mul r2, r2, r3 cmp r1, r2 movcc r5, #4 -.L1492: +.L1500: mov r0, r4 bl NandcWaitFlashReady mov r0, r4 @@ -8858,9 +8899,9 @@ FlashReadRawPage: add sp, sp, #8 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L1495: +.L1503: .align 2 -.L1494: +.L1502: .word .LANCHOR1 .word .LANCHOR0 .fnend @@ -8875,13 +8916,13 @@ FlashDdrTunningRead: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r7, r3 - ldr r4, .L1523 + ldr r4, .L1531 .pad #20 sub sp, sp, #20 mov r10, r0 mov fp, r2 str r1, [sp] - ldr r3, [r4, #80] + ldr r3, [r4, #84] ldr r3, [r3, #304] str r3, [sp, #8] ldr r3, [r4, #2260] @@ -8891,7 +8932,7 @@ FlashDdrTunningRead: movcs r9, #12 cmp r3, #0 moveq r6, #1024 - beq .L1498 + beq .L1506 mov r0, #1 bl FlashSetInterfaceMode mov r0, #1 @@ -8909,38 +8950,37 @@ FlashDdrTunningRead: ldrb r0, [r4, #2229] @ zero_extendqisi2 bl NandcSetMode cmn r6, #1 - bne .L1499 -.L1508: + bne .L1507 +.L1516: mvn r6, #0 - b .L1500 -.L1499: + b .L1508 +.L1507: mov r2, r6 - ldr r0, .L1523+4 + ldr r0, .L1531+4 ldr r1, [sp] bl printk cmp r6, #9 - addls r4, r4, r10, asl #3 - ldrls r3, [r4, #12] - ldr r4, .L1523+8 + ldrls r3, [r4, r10, asl #3] + ldr r4, .L1531+8 ldrls r2, [r3, #3840] ldrls r2, [r3] orrls r2, r2, #131072 strls r2, [r3] - ldr r3, [r4, #1692] + ldr r3, [r4, #1700] add r3, r3, #1 - str r3, [r4, #1692] + str r3, [r4, #1700] cmp r3, #2048 movcs r7, #0 - strcs r7, [r4, #1692] + strcs r7, [r4, #1700] movcs fp, r7 - bcc .L1500 -.L1498: + bcc .L1508 +.L1506: mov r4, #0 mvn r8, #0 mov ip, r4 mov r5, r4 str r4, [sp, #4] -.L1506: +.L1514: uxtb r0, r9 str ip, [sp, #12] bl NandcSetDdrPara @@ -8952,74 +8992,74 @@ FlashDdrTunningRead: add r3, r6, #1 cmp r0, r3 ldr ip, [sp, #12] - bhi .L1502 + bhi .L1510 cmp r0, #2 - bhi .L1512 + bhi .L1520 add r5, r5, #1 cmp r5, #9 - bls .L1512 + bls .L1520 rsb r4, r5, r9 mov r6, r0 mov r8, #0 - b .L1504 -.L1502: + b .L1512 +.L1510: ldr r3, [sp, #4] cmp r3, r5 - bcs .L1513 + bcs .L1521 cmp r5, #7 rsb ip, r5, r4 - bhi .L1514 + bhi .L1522 str r5, [sp, #4] - b .L1513 -.L1512: + b .L1521 +.L1520: mov r8, #0 mov r4, r9 mov r6, r0 mov r7, r8 mov fp, r8 - b .L1503 -.L1513: + b .L1511 +.L1521: mov r5, #0 -.L1503: +.L1511: add r9, r9, #2 cmp r9, #69 - bls .L1506 -.L1504: + bls .L1514 +.L1512: ldr r3, [sp, #4] cmp r3, r5 movcs r4, ip - b .L1505 -.L1514: + b .L1513 +.L1522: mov r4, ip -.L1505: +.L1513: cmp r4, #0 - beq .L1507 - ldr r0, .L1523+12 + beq .L1515 + ldr r0, .L1531+12 mov r1, r4 bl printk uxtb r0, r4 bl NandcSetDdrPara -.L1507: +.L1515: cmn r8, #1 - bne .L1500 - ldr r0, .L1523+16 + bne .L1508 + ldr r0, .L1531+16 mov r1, r10 ldr r2, [sp] bl printk ldr r3, [sp, #56] cmp r3, #0 - beq .L1508 + beq .L1516 ldr r3, [sp, #8] ubfx r0, r3, #8, #8 bl NandcSetDdrPara -.L1500: +.L1508: mov r0, r6 add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1524: +.L1532: .align 2 -.L1523: +.L1531: .word .LANCHOR0 .word .LC90 .word .LANCHOR2 @@ -9044,33 +9084,33 @@ FlashReadPage: bl FlashReadRawPage cmn r0, #1 mov r4, r0 - bne .L1526 - ldr r9, .L1546 - ldrb fp, [r9, #8] @ zero_extendqisi2 + bne .L1534 + ldr r9, .L1554 + ldrb fp, [r9, #40] @ zero_extendqisi2 mov r10, r9 cmp fp, #0 - bne .L1527 -.L1529: + bne .L1535 +.L1537: ldrb r3, [r10, #2252] @ zero_extendqisi2 - ldr r9, .L1546 + ldr r9, .L1554 cmp r3, #0 - beq .L1526 - b .L1545 -.L1527: + beq .L1534 + b .L1553 +.L1535: mov r3, #0 mov r0, r5 - strb r3, [r9, #8] + strb r3, [r9, #40] mov r1, r6 mov r2, r8 mov r3, r7 bl FlashReadRawPage - strb fp, [r9, #8] + strb fp, [r9, #40] cmn r0, #1 movne r4, r0 - beq .L1529 - b .L1526 -.L1545: - ldr r3, [r9, #80] + beq .L1537 + b .L1534 +.L1553: + ldr r3, [r9, #84] mov r0, r5 mov r1, r6 mov r2, r8 @@ -9081,22 +9121,22 @@ FlashReadPage: bl FlashDdrTunningRead cmn r0, #1 mov r4, r0 - beq .L1530 + beq .L1538 ldrb r3, [r9, #2312] @ zero_extendqisi2 cmp r0, r3, lsr #1 - bls .L1526 -.L1530: + bls .L1534 +.L1538: ubfx r0, r10, #8, #8 bl NandcSetDdrPara -.L1526: - ldr r9, .L1546+4 - ldr ip, [r9, #1696] +.L1534: + ldr r9, .L1554+4 + ldr ip, [r9, #1704] adds r3, ip, #0 movne r3, #1 cmn r4, #1 movne r3, #0 cmp r3, #0 - beq .L1531 + beq .L1539 mov r1, r6 mov r2, r8 mov r3, r7 @@ -9105,18 +9145,18 @@ FlashReadPage: mov r2, r5 mov r3, r6 mov r4, r0 - ldr r0, .L1546+8 + ldr r0, .L1554+8 mov r1, r4 bl printk cmn r4, #1 - bne .L1531 - ldr r3, .L1546 - ldrb r3, [r3, #144] @ zero_extendqisi2 + bne .L1539 + ldr r3, .L1554 + ldrb r3, [r3, #148] @ zero_extendqisi2 cmp r3, #0 - beq .L1531 + beq .L1539 mov r0, r5 bl flash_enter_slc_mode - ldr ip, [r9, #1696] + ldr ip, [r9, #1704] mov r0, r5 mov r1, r6 mov r2, r8 @@ -9125,14 +9165,14 @@ FlashReadPage: mov r4, r0 mov r0, r5 bl flash_exit_slc_mode -.L1531: +.L1539: mov r0, r4 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1547: +.L1555: .align 2 -.L1546: +.L1554: .word .LANCHOR0 .word .LANCHOR2 .word .LC93 @@ -9149,7 +9189,7 @@ FlashDdrParaScan: .save {r4, r5, r6, r7, r8, lr} .pad #8 mov r7, r0 - ldr r5, .L1558 + ldr r5, .L1566 mov r6, r1 mov r4, #0 ldrb r0, [r5, #2229] @ zero_extendqisi2 @@ -9171,27 +9211,27 @@ FlashDdrParaScan: mov r3, r5 cmn r0, #1 cmnne r8, #1 - bne .L1549 + bne .L1557 ldrb r2, [r5, #2229] @ zero_extendqisi2 tst r2, #1 - beq .L1549 + beq .L1557 mov r0, #1 bl FlashSetInterfaceMode mov r0, #1 bl NandcSetMode strb r4, [r5, #2252] - b .L1550 -.L1549: + b .L1558 +.L1557: mov r2, #1 strb r2, [r3, #2252] -.L1550: +.L1558: mov r0, #0 add sp, sp, #8 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L1559: +.L1567: .align 2 -.L1558: +.L1566: .word .LANCHOR0 .fnend .size FlashDdrParaScan, .-FlashDdrParaScan @@ -9206,124 +9246,124 @@ FlashLoadPhyInfo: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #20 sub sp, sp, #20 - ldr r3, .L1576 + ldr r3, .L1584 mov r4, #0 - ldr r7, .L1576+4 + ldr r7, .L1584+4 mov r9, #4 - ldr r5, .L1576+8 + ldr r5, .L1584+8 mvn r8, #0 ldr r0, [r3] @ unaligned - ldr r3, [r7, #4] - str r4, [r5, #1704] + ldr r3, [r7, #36] + str r4, [r5, #1712] mov r6, r5 str r0, [sp, #12] @ unaligned mov r0, r4 str r3, [sp, #4] - ldr r3, [r5, #1688] - str r3, [r5, #1700] + ldr r3, [r5, #1696] + str r3, [r5, #1708] bl flash_enter_slc_mode -.L1561: +.L1569: add fp, r4, #1 mov r10, #0 -.L1563: +.L1571: add r3, sp, #12 ldrb r0, [r3, r10] @ zero_extendqisi2 bl FlashBchSel mov r0, #0 mov r1, r4 - ldr r2, [r5, #1688] + ldr r2, [r5, #1696] mov r3, r0 bl FlashReadRawPage cmn r0, #1 - bne .L1562 + bne .L1570 mov r0, #0 mov r1, fp - ldr r2, [r6, #1688] + ldr r2, [r6, #1696] mov r3, r0 bl FlashReadRawPage cmn r0, #1 - bne .L1562 + bne .L1570 add r10, r10, #1 cmp r10, #4 - beq .L1564 - b .L1563 -.L1565: + beq .L1572 + b .L1571 +.L1573: add r0, fp, #12 movw r1, #2036 bl js_hash ldr r3, [fp, #8] cmp r3, r0 mvnne r8, #0 - bne .L1564 - ldr r8, .L1576+12 + bne .L1572 + ldr r8, .L1584+12 add r1, fp, #160 mov r2, #32 mov r0, r8 bl ftl_memcpy - ldr r1, [r6, #1700] + ldr r1, [r6, #1708] mov r2, #32 - ldr r0, .L1576+16 + ldr r0, .L1584+16 add r1, r1, #192 bl ftl_memcpy - ldr r1, [r6, #1700] + ldr r1, [r6, #1708] mov r2, #852 - ldr r0, .L1576+20 + ldr r0, .L1584+20 add r1, r1, #224 bl ftl_memcpy ldrh r0, [r8, #10] bl FlashBlockAlignInit - ldr r8, [r6, #1700] - str r4, [r6, #1704] + ldr r8, [r6, #1708] + str r4, [r6, #1712] mov r0, r4 - ldr r1, [r7, #4] + ldr r1, [r7, #36] ldr r3, [r8, #1076] strb r3, [r7, #2252] bl __aeabi_uidiv add r0, r0, #1 cmp r0, #1 - strhi r0, [r6, #1708] + strhi r0, [r6, #1716] movls r3, #2 - strls r3, [r6, #1708] + strls r3, [r6, #1716] ldrh r3, [r8, #14] mov r8, #0 - strb r3, [r5, #1712] -.L1564: + strb r3, [r5, #1720] +.L1572: ldr r3, [sp, #4] subs r9, r9, #1 add r4, r4, r3 - bne .L1561 + bne .L1569 mov r0, r9 -.L1575: +.L1583: bl flash_exit_slc_mode mov r0, r8 add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1562: - ldr fp, [r5, #1700] - ldr r2, .L1576+24 +.L1570: + ldr fp, [r5, #1708] + ldr r2, .L1584+24 ldr r3, [fp] cmp r3, r2 - bne .L1564 + bne .L1572 cmp r8, #0 - bne .L1565 + bne .L1573 mov r0, r4 - ldr r1, [r7, #4] + ldr r1, [r7, #36] bl __aeabi_uidiv - ldr r3, .L1576+8 + ldr r3, .L1584+8 add r0, r0, #1 - str r0, [r3, #1708] + str r0, [r3, #1716] mov r0, r8 - b .L1575 -.L1577: + b .L1583 +.L1585: .align 2 -.L1576: +.L1584: .word .LANCHOR3+11 .word .LANCHOR0 .word .LANCHOR2 .word .LANCHOR1+472 .word .LANCHOR0+48 - .word .LANCHOR0+1210 + .word .LANCHOR0+1212 .word 1312902724 .fnend .size FlashLoadPhyInfo, .-FlashLoadPhyInfo @@ -9338,76 +9378,76 @@ ToshibaReadRetrial: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #28 sub sp, sp, #28 - mov r9, r0 + mov r8, r0 mov fp, r3 str r2, [sp, #8] str r1, [sp, #16] bl NandcWaitFlashReady - ldr r4, .L1607 - add r3, r4, r9, asl #3 - ldrb r2, [r3, #16] @ zero_extendqisi2 - ldr r6, [r3, #12] - ldrb r3, [r4, #1208] @ zero_extendqisi2 + ldr r4, .L1615 + add r3, r4, r8, asl #3 + ldr r6, [r4, r8, asl #3] + ldrb r2, [r3, #4] @ zero_extendqisi2 + ldrb r3, [r4, #80] @ zero_extendqisi2 add r7, r2, #8 sub r3, r3, #67 - add r7, r6, r7, asl #8 cmp r3, #1 + add r7, r6, r7, asl #8 mov r3, r2, asl #8 str r3, [sp, #12] movls r3, #0 strls r3, [sp, #4] - bls .L1579 + bls .L1587 ldrb r5, [r4, #2252] @ zero_extendqisi2 cmp r5, #0 streq r5, [sp, #4] - beq .L1580 + beq .L1588 mov r0, #0 str r2, [sp, #20] bl NandcSetDdrMode mov r3, #1 ldr r2, [sp, #20] str r3, [sp, #4] -.L1580: +.L1588: ldr r3, [sp, #12] mov r1, #92 add r3, r6, r3 str r1, [r3, #2056] mov r1, #197 str r1, [r3, #2056] -.L1579: - mov r8, #1 +.L1587: + mov r9, #1 mvn r10, #0 mov r3, r2, asl #8 str r3, [sp, #20] -.L1581: - ldr r3, .L1607+4 - ldrb r3, [r3, #1713] @ zero_extendqisi2 +.L1589: + ldr r3, .L1615+4 + ldrb r3, [r3, #1721] @ zero_extendqisi2 add r3, r3, #1 - cmp r8, r3 - bcs .L1606 - ldrb r3, [r4, #1208] @ zero_extendqisi2 + cmp r9, r3 + bcs .L1614 + ldrb r3, [r4, #80] @ zero_extendqisi2 mov r0, r7 - uxtb r1, r8 + uxtb r1, r9 sub r3, r3, #67 cmp r3, #1 - bhi .L1582 + bhi .L1590 bl SandiskSetRRPara - b .L1583 -.L1582: + b .L1591 +.L1590: bl ToshibaSetRRPara -.L1583: - ldrb r3, [r4, #1208] @ zero_extendqisi2 +.L1591: + ldrb r3, [r4, #80] @ zero_extendqisi2 cmp r3, #34 - bne .L1584 - ldr r3, .L1607+4 - ldrb r3, [r3, #1713] @ zero_extendqisi2 + bne .L1592 + ldr r3, .L1615+4 + ldrb r3, [r3, #1721] @ zero_extendqisi2 sub r3, r3, #3 - cmp r8, r3 + cmp r9, r3 ldreq r3, [sp, #20] moveq r2, #179 addeq r3, r6, r3 streq r2, [r3, #2056] -.L1584: +.L1592: ldr r3, [sp, #12] mov r2, #38 add r3, r6, r3 @@ -9416,10 +9456,10 @@ ToshibaReadRetrial: str r2, [r3, #2056] ldr r3, [sp, #4] cmp r3, #0 - beq .L1585 + beq .L1593 mov r0, #4 bl NandcSetDdrMode - mov r0, r9 + mov r0, r8 mov r3, fp ldr r1, [sp, #16] ldr r2, [sp, #8] @@ -9427,42 +9467,42 @@ ToshibaReadRetrial: mov r5, r0 mov r0, #0 bl NandcSetDdrMode - b .L1586 -.L1585: - mov r0, r9 + b .L1594 +.L1593: + mov r0, r8 ldr r1, [sp, #16] ldr r2, [sp, #8] mov r3, fp bl FlashReadRawPage mov r5, r0 -.L1586: +.L1594: cmn r5, #1 - beq .L1587 + beq .L1595 ldrb r2, [r4, #2312] @ zero_extendqisi2 cmn r10, #1 moveq r10, r5 add r2, r2, r2, asl #1 cmp r5, r2, asr #2 - bcc .L1589 + bcc .L1597 mov fp, #0 str fp, [sp, #8] -.L1587: - add r8, r8, #1 - b .L1581 -.L1606: +.L1595: + add r9, r9, #1 + b .L1589 +.L1614: mov r5, r10 -.L1589: - ldrb r2, [r4, #1208] @ zero_extendqisi2 +.L1597: + ldrb r2, [r4, #80] @ zero_extendqisi2 mov r0, r7 mov r1, #0 sub r2, r2, #67 cmp r2, #1 - bhi .L1591 + bhi .L1599 bl SandiskSetRRPara - b .L1592 -.L1591: + b .L1600 +.L1599: bl ToshibaSetRRPara -.L1592: +.L1600: ldr r3, [sp, #12] mov r2, #255 add r6, r6, r3 @@ -9470,25 +9510,25 @@ ToshibaReadRetrial: ldrb r2, [r4, #2312] @ zero_extendqisi2 add r2, r2, r2, asl #1 cmp r5, r2, asr #2 - bcc .L1593 + bcc .L1601 cmn r5, #1 movne r5, #256 -.L1593: - mov r0, r9 +.L1601: + mov r0, r8 bl NandcWaitFlashReady ldr r3, [sp, #4] cmp r3, #0 - beq .L1594 + beq .L1602 mov r0, #4 bl NandcSetDdrMode -.L1594: +.L1602: mov r0, r5 add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1608: +.L1616: .align 2 -.L1607: +.L1615: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -9503,68 +9543,68 @@ SamsungReadRetrial: stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 - mov r9, r0 - ldr r5, .L1623 - mov r10, r2 - mov r8, r3 + mov r8, r0 + ldr r5, .L1631 + mov r9, r3 mov fp, r1 + mov r10, r2 bl NandcWaitFlashReady - add r2, r5, r9, asl #3 - ldr ip, .L1623+4 + add r3, r5, r8, asl #3 + ldr r6, [r5, r8, asl #3] mov r7, #1 - ldrb r3, [r2, #16] @ zero_extendqisi2 + ldrb r3, [r3, #4] @ zero_extendqisi2 mvn r4, #0 - ldr r6, [r2, #12] + ldr ip, .L1631+4 add r3, r3, #8 add r6, r6, r3, asl #8 -.L1610: - ldrb r3, [ip, #1713] @ zero_extendqisi2 +.L1618: + ldrb r3, [ip, #1721] @ zero_extendqisi2 add r3, r3, #1 cmp r7, r3 - bcs .L1613 + bcs .L1621 mov r0, r6 uxtb r1, r7 str ip, [sp, #4] bl SamsungSetRRPara - mov r0, r9 + mov r0, r8 mov r1, fp mov r2, r10 - mov r3, r8 + mov r3, r9 bl FlashReadRawPage cmn r0, #1 ldr ip, [sp, #4] - beq .L1611 + beq .L1619 ldrb r3, [r5, #2312] @ zero_extendqisi2 cmn r4, #1 moveq r4, r0 add r3, r3, r3, asl #1 cmp r0, r3, asr #2 - bcc .L1616 - mov r8, #0 - mov r10, r8 -.L1611: + bcc .L1624 + mov r9, #0 + mov r10, r9 +.L1619: add r7, r7, #1 - b .L1610 -.L1616: + b .L1618 +.L1624: mov r4, r0 -.L1613: +.L1621: mov r0, r6 mov r1, #0 bl SamsungSetRRPara ldrb r3, [r5, #2312] @ zero_extendqisi2 add r3, r3, r3, asl #1 cmp r4, r3, asr #2 - bcc .L1615 + bcc .L1623 cmn r4, #1 movne r4, #256 -.L1615: +.L1623: mov r0, r4 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1624: +.L1632: .align 2 -.L1623: +.L1631: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -9574,104 +9614,104 @@ SamsungReadRetrial: .type MicronReadRetrial, %function MicronReadRetrial: .fnstart - @ args = 0, pretend = 0, frame = 24 + @ args = 0, pretend = 0, frame = 32 @ frame_needed = 0, uses_anonymous_args = 0 -.L1627: +.L1635: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r8, r3 - ldr r3, .L1651 - mov fp, r2 - .pad #36 - sub sp, sp, #36 + ldr r3, .L1659 + mov r10, r2 + .pad #44 + sub sp, sp, #44 + ldr fp, .L1659 mov r6, r0 - mov r10, #0 ldrb r5, [r3, #2312] @ zero_extendqisi2 - ldrb r3, [r3, #144] @ zero_extendqisi2 - str r1, [sp, #20] + ldrb r3, [r3, #148] @ zero_extendqisi2 + str r1, [sp, #28] cmp r3, #0 addeq r5, r5, r5, asl #1 - ldrne r2, .L1651+4 + ldrne r2, .L1659+4 ubfxeq r5, r5, #2, #8 smullne r2, r3, r5, r2 uxtbne r5, r3 - ldr r3, .L1651 - add r3, r3, r0, asl #3 - str r3, [sp, #24] -.L1637: + mov r3, #0 + str r3, [sp, #12] + add r3, fp, r0, asl #3 + str r3, [sp, #32] +.L1645: mov r0, r6 mov r9, #0 bl NandcWaitFlashReady + ldr r3, [fp, r6, asl #3] mvn r4, #0 - ldr r3, [sp, #24] - ldr r3, [r3, #12] - str r3, [sp, #12] - ldr r3, [sp, #24] - ldrb r3, [r3, #16] @ zero_extendqisi2 - str r3, [sp, #16] - ldr r2, [sp, #16] - ldr r3, [sp, #12] + str r3, [sp, #20] + ldr r3, [sp, #32] + ldrb r3, [r3, #4] @ zero_extendqisi2 + str r3, [sp, #24] + ldr r2, [sp, #24] + ldr r3, [sp, #20] add r7, r3, r2, asl #8 -.L1628: - ldr r3, .L1651+8 - ldrb r3, [r3, #1713] @ zero_extendqisi2 +.L1636: + ldr r3, .L1659+8 + ldrb r3, [r3, #1721] @ zero_extendqisi2 cmp r9, r3 - bcs .L1631 + bcs .L1639 mov r3, #239 mov r0, #200 str r3, [r7, #2056] mov r3, #137 str r3, [r7, #2052] - bl NandcDelayns + bl ndelay mov ip, #0 add r3, r9, #1 mov r0, r6 str r3, [r7, #2048] - mov r2, fp + mov r2, r10 str ip, [r7, #2048] str ip, [r7, #2048] str ip, [r7, #2048] - str r3, [sp, #8] + str r3, [sp, #16] mov r3, r8 - ldr r1, [sp, #20] - str ip, [sp, #28] + ldr r1, [sp, #28] + str ip, [sp, #36] bl FlashReadRawPage cmn r0, #1 - beq .L1629 + beq .L1637 cmn r4, #1 - ldr ip, [sp, #28] + ldr ip, [sp, #36] moveq r4, r0 cmp r0, r5 - bcc .L1639 + bcc .L1647 mov r8, ip - mov fp, ip -.L1629: - ldr r9, [sp, #8] - b .L1628 -.L1639: + mov r10, ip +.L1637: + ldr r9, [sp, #16] + b .L1636 +.L1647: mov r4, r0 mov r8, ip - mov fp, ip -.L1631: - ldr r2, [sp, #16] + mov r10, ip +.L1639: + ldr r2, [sp, #24] mov r0, #200 - ldr r3, [sp, #12] + ldr r3, [sp, #20] add r7, r3, r2, asl #8 mov r3, #239 str r3, [r7, #2056] mov r3, #137 str r3, [r7, #2052] - bl NandcDelayns + bl ndelay cmp r4, r5 mov r3, #0 str r3, [r7, #2048] str r3, [r7, #2048] str r3, [r7, #2048] str r3, [r7, #2048] - bcc .L1633 + bcc .L1641 cmn r4, #1 movne r4, #256 -.L1633: +.L1641: cmn r4, #1 movne r7, #0 moveq r7, #1 @@ -9679,48 +9719,50 @@ MicronReadRetrial: movne r1, r7 orreq r1, r7, #1 cmp r1, #0 - beq .L1634 - str r4, [sp] - mov r1, r9 - ldr r0, .L1651+12 + beq .L1642 mov r3, r9 - ldr r2, [sp, #20] + str r4, [sp] + ldr r0, .L1659+12 + mov r1, r9 + ldr r2, [sp, #28] bl printk - cmp r10, #0 - bne .L1635 - ldr r3, .L1651 - ldrb r3, [r3, #144] @ zero_extendqisi2 + ldr r3, [sp, #12] + cmp r3, #0 + bne .L1643 + ldrb r3, [fp, #148] @ zero_extendqisi2 cmp r3, #0 moveq r7, #0 andne r7, r7, #1 cmp r7, #0 - beq .L1644 + beq .L1652 mov r0, r6 mov r1, #3 bl micron_auto_read_calibration_config - mov r10, #1 - b .L1637 -.L1635: + mov r3, #1 + str r3, [sp, #12] + b .L1645 +.L1643: mov r0, r6 mov r1, #0 bl micron_auto_read_calibration_config cmn r4, #1 movne r4, #256 - b .L1644 -.L1634: - cmp r10, #0 - beq .L1644 + b .L1652 +.L1642: + ldr r3, [sp, #12] + cmp r3, #0 + beq .L1652 mov r0, r6 mov r4, #256 bl micron_auto_read_calibration_config -.L1644: +.L1652: mov r0, r4 - add sp, sp, #36 + add sp, sp, #44 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1652: +.L1660: .align 2 -.L1651: +.L1659: .word .LANCHOR0 .word 1431655766 .word .LANCHOR2 @@ -9738,29 +9780,29 @@ HynixReadRetrial: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 mov r8, r3 - ldr r5, .L1671 + ldr r5, .L1679 mov r10, r2 mov r7, r0 mov fp, r1 add r2, r5, r0 mvn r6, #0 ldr r3, [r5, #44] - ldrb r4, [r2, #1222] @ zero_extendqisi2 - ldrb r9, [r5, #1212] @ zero_extendqisi2 + ldrb r4, [r2, #1224] @ zero_extendqisi2 + ldrb r9, [r5, #1214] @ zero_extendqisi2 ldrb r3, [r3, #19] @ zero_extendqisi2 sub r3, r3, #7 cmp r3, #1 - ldrlsb r4, [r2, #1230] @ zero_extendqisi2 + ldrlsb r4, [r2, #1232] @ zero_extendqisi2 bl NandcWaitFlashReady mov ip, #0 -.L1655: +.L1663: cmp ip, r9 - bcs .L1659 + bcs .L1667 add r4, r4, #1 mov r0, r7 - ldrb r1, [r5, #1211] @ zero_extendqisi2 + ldrb r1, [r5, #1213] @ zero_extendqisi2 uxtb r4, r4 - ldr r2, .L1671+4 + ldr r2, .L1679+4 cmp r4, r9 str ip, [sp, #4] movcs r4, #0 @@ -9773,44 +9815,44 @@ HynixReadRetrial: bl FlashReadRawPage cmn r0, #1 ldr ip, [sp, #4] - beq .L1657 + beq .L1665 ldrb r3, [r5, #2312] @ zero_extendqisi2 cmn r6, #1 moveq r6, r0 add r3, r3, r3, asl #1 cmp r0, r3, asr #2 - bcc .L1664 + bcc .L1672 mov r8, #0 mov r10, r8 -.L1657: +.L1665: add ip, ip, #1 - b .L1655 -.L1664: + b .L1663 +.L1672: mov r6, r0 -.L1659: +.L1667: ldr r3, [r5, #44] add r7, r5, r7 ldrb r3, [r3, #19] @ zero_extendqisi2 sub r3, r3, #7 cmp r3, #1 ldrb r3, [r5, #2312] @ zero_extendqisi2 - strlsb r4, [r7, #1230] - strhib r4, [r7, #1222] + strlsb r4, [r7, #1232] + strhib r4, [r7, #1224] add r3, r3, r3, asl #1 cmp r6, r3, asr #2 - bcc .L1663 + bcc .L1671 cmn r6, #1 movne r6, #256 -.L1663: +.L1671: mov r0, r6 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1672: +.L1680: .align 2 -.L1671: +.L1679: .word .LANCHOR0 - .word .LANCHOR0+1214 + .word .LANCHOR0+1216 .fnend .size HynixReadRetrial, .-HynixReadRetrial .align 2 @@ -9828,26 +9870,26 @@ samsung_read_retrial: mov r8, r3 str r1, [sp, #12] bl NandcWaitFlashReady - ldr r3, .L1703 + ldr r3, .L1711 add r2, r3, r10, asl #3 - ldr r4, [r2, #12] - ldrb r2, [r2, #16] @ zero_extendqisi2 + ldr r4, [r3, r10, asl #3] + ldrb r2, [r2, #4] @ zero_extendqisi2 str r2, [sp, #8] ldrb r2, [r3, #2228] @ zero_extendqisi2 str r3, [sp, #16] cmp r2, #0 - bne .L1674 + bne .L1682 ldr r3, [sp, #8] mvn r5, #0 mov r6, #1 mov r9, r3, asl #8 add r7, r4, r9 -.L1678: +.L1686: mov r3, #239 str r3, [r7, #2056] mov r3, #141 str r3, [r7, #2052] - ldr r3, .L1703+4 + ldr r3, .L1711+4 mov ip, #0 mov r0, r10 ldr r1, [sp, #12] @@ -9861,40 +9903,40 @@ samsung_read_retrial: str ip, [r7, #2048] bl FlashReadRawPage cmn r0, #1 - beq .L1675 + beq .L1683 ldr r3, [sp, #16] cmn r5, #1 moveq r5, r0 ldrb r3, [r3, #2312] @ zero_extendqisi2 add r3, r3, r3, asl #1 cmp r0, r3, asr #2 - bcc .L1686 + bcc .L1694 ldr ip, [sp, #20] mov r8, ip mov fp, ip -.L1675: +.L1683: add r6, r6, #1 cmp r6, #26 - bne .L1678 - b .L1677 -.L1686: + bne .L1686 + b .L1685 +.L1694: mov r5, r0 -.L1677: +.L1685: add r9, r4, r9 mov r3, #239 str r3, [r9, #2056] ldr r3, [sp, #8] add r4, r4, r3, asl #8 mov r3, #141 - b .L1702 -.L1674: + b .L1710 +.L1682: ldr r3, [sp, #8] mvn r5, #0 - ldr r7, .L1703+8 + ldr r7, .L1711+8 mov r6, #1 mov ip, r3, asl #8 add r9, r4, ip -.L1683: +.L1691: mov r3, #239 str r3, [r9, #2056] mov r3, #137 @@ -9915,32 +9957,32 @@ samsung_read_retrial: bl FlashReadRawPage cmn r0, #1 ldr ip, [sp, #20] - beq .L1680 + beq .L1688 ldr r3, [sp, #16] cmn r5, #1 moveq r5, r0 ldrb r3, [r3, #2312] @ zero_extendqisi2 add r3, r3, r3, asl #1 cmp r0, r3, asr #2 - bcc .L1687 + bcc .L1695 mov r8, #0 mov fp, r8 -.L1680: +.L1688: add r6, r6, #1 add r7, r7, #4 cmp r6, #26 - bne .L1683 - b .L1682 -.L1687: + bne .L1691 + b .L1690 +.L1695: mov r5, r0 -.L1682: +.L1690: add ip, r4, ip mov r3, #239 str r3, [ip, #2056] ldr r3, [sp, #8] add r4, r4, r3, asl #8 mov r3, #137 -.L1702: +.L1710: str r3, [r4, #2052] mov r3, #0 str r3, [r4, #2048] @@ -9951,29 +9993,29 @@ samsung_read_retrial: ldrb r3, [r3, #2312] @ zero_extendqisi2 add r3, r3, r3, asl #1 cmp r5, r3, asr #2 - bcc .L1684 + bcc .L1692 cmn r5, #1 movne r5, #256 -.L1684: +.L1692: cmn r5, #1 cmpne r5, #256 - bne .L1685 + bne .L1693 str r5, [sp] mov r1, r6 - ldr r0, .L1703+12 + ldr r0, .L1711+12 mov r3, r6 ldr r2, [sp, #12] bl printk -.L1685: +.L1693: mov r0, r10 bl NandcWaitFlashReady mov r0, r5 add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1704: +.L1712: .align 2 -.L1703: +.L1711: .word .LANCHOR0 .word .LANCHOR3+16 .word .LANCHOR3+44 @@ -9991,22 +10033,22 @@ FlashProgPage: .save {r4, r5, r6, r7, r8, lr} .pad #8 mov r8, r3 - ldr r3, .L1709 + ldr r3, .L1717 subs r4, r0, #0 mov r5, r1 mov r7, r2 ldrb r6, [r3, #481] @ zero_extendqisi2 - bne .L1706 - ldr r2, .L1709+4 - ldrb r3, [r2, #1] @ zero_extendqisi2 - ldr r1, [r2, #4] + bne .L1714 + ldr r2, .L1717+4 + ldrb r3, [r2, #33] @ zero_extendqisi2 + ldr r1, [r2, #36] mul r1, r1, r3 cmp r5, r1 - bcs .L1706 - ldrb r3, [r2] @ zero_extendqisi2 + bcs .L1714 + ldrb r3, [r2, #32] @ zero_extendqisi2 cmp r3, #0 movne r6, #4 -.L1706: +.L1714: mov r0, r4 bl NandcWaitFlashReady mov r0, r4 @@ -10035,9 +10077,9 @@ FlashProgPage: add sp, sp, #8 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L1710: +.L1718: .align 2 -.L1709: +.L1717: .word .LANCHOR1 .word .LANCHOR0 .fnend @@ -10052,119 +10094,119 @@ FlashSavePhyInfo: stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 - ldr r4, .L1725 - ldr r5, .L1725+4 - ldr r8, .L1725+8 - ldr r3, [r4, #1688] + ldr r4, .L1733 + ldr r5, .L1733+4 + ldr r8, .L1733+8 + ldr r3, [r4, #1696] mov fp, r4 - ldrb r0, [r4, #1714] @ zero_extendqisi2 + ldrb r0, [r4, #1722] @ zero_extendqisi2 mov r10, r5 - str r3, [r4, #1700] + str r3, [r4, #1708] bl FlashBchSel mov r1, #0 mov r2, #2048 - ldr r0, [r4, #1688] + ldr r0, [r4, #1696] bl ftl_memset - ldr r3, [r4, #1700] - ldr r1, .L1725+12 + ldr r3, [r4, #1708] + ldr r1, .L1733+12 mov r2, #32 str r8, [r3] - ldr r0, [r4, #1700] + ldr r0, [r4, #1708] ldrb r3, [r5, #2230] @ zero_extendqisi2 add r0, r0, #16 strh r3, [r0, #-4] @ movhi - ldrb r3, [r5, #1] @ zero_extendqisi2 + ldrb r3, [r5, #33] @ zero_extendqisi2 strh r3, [r0, #-2] @ movhi ldrb r3, [r5, #2252] @ zero_extendqisi2 str r3, [r0, #1060] bl ftl_memcpy - ldr r0, [r4, #1700] - ldr r1, .L1725+16 + ldr r0, [r4, #1708] + ldr r1, .L1733+16 mov r2, #8 add r0, r0, #80 bl ftl_memcpy - ldr r0, [r4, #1700] - ldr r1, .L1725+20 + ldr r0, [r4, #1708] + ldr r1, .L1733+20 mov r2, #32 add r0, r0, #96 bl ftl_memcpy - ldr r0, [r4, #1700] - ldr r1, .L1725+24 + ldr r0, [r4, #1708] + ldr r1, .L1733+24 mov r2, #32 add r0, r0, #160 bl ftl_memcpy - ldr r0, [r4, #1700] + ldr r0, [r4, #1708] add r1, r5, #48 mov r2, #32 add r0, r0, #192 bl ftl_memcpy - ldr r0, [r4, #1700] + ldr r0, [r4, #1708] mov r2, #852 - ldr r1, .L1725+28 + ldr r1, .L1733+28 add r0, r0, #224 bl ftl_memcpy - ldr r6, [r4, #1700] + ldr r6, [r4, #1708] movw r1, #2036 add r0, r6, #12 bl js_hash movw r3, #1592 str r3, [r6, #4] - ldr r3, [r4, #1716] - str r3, [r4, #1700] + ldr r3, [r4, #1724] + str r3, [r4, #1708] str r0, [r6, #8] mov r0, #0 bl flash_enter_slc_mode mov r6, #0 mov r7, r6 -.L1717: - ldr r1, [r5, #4] +.L1725: + ldr r1, [r5, #36] mov r0, #0 mov r2, r0 mul r1, r1, r7 bl FlashEraseBlock - ldrb r9, [r5, #144] @ zero_extendqisi2 + ldrb r9, [r5, #148] @ zero_extendqisi2 cmp r9, #0 - beq .L1712 + beq .L1720 mov r9, #0 -.L1713: - ldr r1, [r5, #4] +.L1721: + ldr r1, [r5, #36] mov r0, #0 - ldr r2, [r4, #1688] + ldr r2, [r4, #1696] mov r3, r0 mla r1, r1, r7, r9 add r9, r9, #1 bl FlashProgPage cmp r9, #10 - bne .L1713 - b .L1714 -.L1712: - ldr r1, [r10, #4] + bne .L1721 + b .L1722 +.L1720: + ldr r1, [r10, #36] mov r3, r9 - ldr r2, [r4, #1688] + ldr r2, [r4, #1696] mov r0, r9 mul r1, r1, r7 bl FlashProgPage - ldr r1, [r10, #4] + ldr r1, [r10, #36] mov r0, r9 - ldr r2, [r4, #1688] + ldr r2, [r4, #1696] mov r3, r9 mul r1, r1, r7 add r1, r1, #1 bl FlashProgPage -.L1714: - ldr r1, [r5, #4] +.L1722: + ldr r1, [r5, #36] mov r0, #0 - ldr r2, [r4, #1716] + ldr r2, [r4, #1724] mov r3, r0 mul r1, r1, r7 bl FlashReadRawPage add r2, r7, #1 cmn r0, #1 - beq .L1715 - ldr r9, [fp, #1700] + beq .L1723 + ldr r9, [fp, #1708] ldr r3, [r9] cmp r3, r8 - bne .L1715 + bne .L1723 add r0, r9, #12 movw r1, #2036 str r2, [sp, #4] @@ -10172,22 +10214,22 @@ FlashSavePhyInfo: ldr r3, [r9, #8] cmp r3, r0 ldr r2, [sp, #4] - bne .L1715 - ldr r3, [r10, #4] + bne .L1723 + ldr r3, [r10, #36] cmp r6, #1 - str r2, [fp, #1708] + str r2, [fp, #1716] mul r7, r3, r7 - str r7, [fp, #1704] - beq .L1718 + str r7, [fp, #1712] + beq .L1726 mov r6, #1 -.L1715: +.L1723: cmp r2, #4 mov r7, r2 - bne .L1717 - b .L1716 -.L1718: + bne .L1725 + b .L1724 +.L1726: mov r6, #2 -.L1716: +.L1724: mov r0, #0 bl flash_exit_slc_mode clz r0, r6 @@ -10196,17 +10238,17 @@ FlashSavePhyInfo: add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1726: +.L1734: .align 2 -.L1725: +.L1733: .word .LANCHOR2 .word .LANCHOR0 .word 1312902724 .word .LANCHOR0+2068 .word .LANCHOR0+2232 - .word .LANCHOR0+1172 + .word .LANCHOR0+1176 .word .LANCHOR1+472 - .word .LANCHOR0+1210 + .word .LANCHOR0+1212 .fnend .size FlashSavePhyInfo, .-FlashSavePhyInfo .align 2 @@ -10219,95 +10261,95 @@ FlashReadIdbDataRaw: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r9, r0 - ldr r3, .L1747 + ldr r3, .L1755 .pad #20 sub sp, sp, #20 - ldr r4, .L1747+4 + ldr r4, .L1755+4 ldr r0, [r3] @ unaligned ldr r3, [r4, #2248] ldrb r10, [r4, #2312] @ zero_extendqisi2 cmp r3, #0 str r0, [sp, #12] @ unaligned - beq .L1728 + beq .L1736 mov r0, #0 bl flash_enter_slc_mode -.L1728: +.L1736: mov r0, r9 mov r1, #0 mov r2, #2048 mvn r8, #0 bl ftl_memset mov r5, #2 -.L1729: - ldrb r3, [r4, #1] @ zero_extendqisi2 +.L1737: + ldrb r3, [r4, #33] @ zero_extendqisi2 cmp r5, r3 - bcs .L1733 - ldr fp, .L1747+8 + bcs .L1741 + ldr fp, .L1755+8 mov r7, #0 -.L1731: +.L1739: add r3, sp, #12 - ldr r6, .L1747+8 + ldr r6, .L1755+8 ldrb ip, [r7, r3] @ zero_extendqisi2 mov r0, ip str ip, [sp, #4] bl FlashBchSel - ldr r1, [r4, #4] + ldr r1, [r4, #36] mov r0, #0 - ldr r2, [fp, #1688] + ldr r2, [fp, #1696] mov r3, r0 mul r1, r1, r5 bl FlashReadRawPage cmn r0, #1 ldr ip, [sp, #4] - bne .L1730 + bne .L1738 add r7, r7, #1 cmp r7, #4 - bne .L1731 - b .L1732 -.L1730: - ldr r3, [r6, #1688] - ldr r2, .L1747+12 + bne .L1739 + b .L1740 +.L1738: + ldr r3, [r6, #1696] + ldr r2, .L1755+12 ldr r3, [r3] cmp r3, r2 - bne .L1732 + bne .L1740 mov r1, ip - ldr r0, .L1747+16 + ldr r0, .L1755+16 bl printk mov r2, #2048 mov r0, r9 - ldr r1, [r6, #1688] + ldr r1, [r6, #1696] bl ftl_memcpy - ldr r3, [r6, #1688] - ldr r2, .L1747+4 + ldr r3, [r6, #1696] + ldr r2, .L1755+4 ldr r3, [r3, #512] - strb r3, [r2, #1] - ldr r3, [r6, #1708] + strb r3, [r2, #33] + ldr r3, [r6, #1716] cmp r3, r5 - bls .L1736 - str r5, [r6, #1708] + bls .L1744 + str r5, [r6, #1716] bl FlashSavePhyInfo mov r8, #0 -.L1732: +.L1740: add r5, r5, #1 - b .L1729 -.L1736: + b .L1737 +.L1744: mov r8, #0 -.L1733: +.L1741: mov r0, r10 bl FlashBchSel ldr r3, [r4, #2248] cmp r3, #0 - beq .L1740 + beq .L1748 mov r0, #0 bl flash_exit_slc_mode -.L1740: +.L1748: mov r0, r8 add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1748: +.L1756: .align 2 -.L1747: +.L1755: .word .LANCHOR3+11 .word .LANCHOR0 .word .LANCHOR2 @@ -10329,54 +10371,54 @@ FlashInit: sub sp, sp, #20 mov r0, #32768 bl ftl_malloc - ldr r8, .L1848 - ldr r4, .L1848+4 + ldr r8, .L1856 + ldr r4, .L1856+4 mov r7, #0 - add r9, r4, #12 - str r0, [r8, #1688] - mov r0, #32768 - bl ftl_malloc - str r0, [r8, #1716] - mov r0, #4096 - bl ftl_malloc - str r0, [r8, #1720] + mov r10, r4 + str r0, [r8, #1696] mov r0, #32768 bl ftl_malloc str r0, [r8, #1724] mov r0, #4096 + bl ftl_dma32_malloc + str r0, [r8, #1728] + mov r0, #32768 bl ftl_malloc + str r0, [r8, #1732] + mov r0, #4096 + bl ftl_dma32_malloc mov r3, #50 - str r7, [r8, #1708] - strb r3, [r4, #1] - strb r3, [r8, #1712] + str r7, [r8, #1716] + strb r3, [r4, #33] + strb r3, [r8, #1720] mov r3, #128 strb r7, [r4, #2252] - str r3, [r4, #4] + str r3, [r4, #36] mov r3, #60 - str r7, [r8, #1692] - strb r7, [r4] - strb r7, [r8, #1732] - strb r3, [r8, #1714] - str r0, [r8, #1728] + str r7, [r8, #1700] + strb r7, [r4, #32] + strb r7, [r8, #1740] + strb r3, [r8, #1722] + str r0, [r8, #1736] mov r0, r5 bl NandcInit - ldr r5, .L1848+8 -.L1755: - add r3, r9, r7, asl #3 + ldr r5, .L1856+8 +.L1763: + add r3, r4, r7, asl #3 uxtb fp, r7 - ldr r6, [r9, r7, asl #3] - ldrb r10, [r3, #4] @ zero_extendqisi2 + ldr r6, [r4, r7, asl #3] + ldrb r9, [r3, #4] @ zero_extendqisi2 mov r0, fp bl FlashReset mov r0, fp bl NandcFlashCs mov r3, #144 - add r6, r6, r10, asl #8 + add r6, r6, r9, asl #8 mov r0, #200 - mov r10, #0 + mov r9, #0 str r3, [r6, #2056] - str r10, [r6, #2052] - bl NandcDelayns + str r9, [r6, #2052] + bl ndelay ldr r2, [r6, #2048] uxtb r2, r2 strb r2, [r5] @@ -10391,29 +10433,29 @@ FlashInit: strb r1, [r5, #4] ldr r1, [r6, #2048] strb r1, [r5, #5] - bne .L1750 + bne .L1758 mov r2, #239 mov r0, #200 str r2, [r6, #2056] mov r2, #1 str r2, [r6, #2052] - bl NandcDelayns + bl ndelay mov r2, #4 str r2, [r6, #2048] - str r10, [r6, #2048] - str r10, [r6, #2048] - str r10, [r6, #2048] -.L1750: + str r9, [r6, #2048] + str r9, [r6, #2048] + str r9, [r6, #2048] +.L1758: mov r0, fp bl NandcFlashDeCs ldrb r2, [r5] @ zero_extendqisi2 sub r3, r2, #1 uxtb r3, r3 cmp r3, #253 - bhi .L1751 + bhi .L1759 ldrb r1, [r5, #2] @ zero_extendqisi2 ldrb r3, [r5, #1] @ zero_extendqisi2 - ldr r0, .L1848+12 + ldr r0, .L1856+12 str r1, [sp] ldrb r1, [r5, #3] @ zero_extendqisi2 str r1, [sp, #4] @@ -10423,19 +10465,18 @@ FlashInit: str r1, [sp, #12] add r1, r7, #1 bl printk -.L1751: +.L1759: cmp r7, #0 - bne .L1752 + bne .L1760 ldrb r3, [r4, #2068] @ zero_extendqisi2 sub r3, r3, #1 uxtb r3, r3 cmp r3, #253 - bhi .L1802 - ldr r3, .L1848+4 - ldrb r3, [r3, #2069] @ zero_extendqisi2 + bhi .L1810 + ldrb r3, [r10, #2069] @ zero_extendqisi2 cmp r3, #255 - beq .L1802 -.L1752: + beq .L1810 +.L1760: ldrb r3, [r5] @ zero_extendqisi2 add r7, r7, #1 add r5, r5, #8 @@ -10443,33 +10484,33 @@ FlashInit: moveq r3, #44 streqb r3, [r5, #-8] cmp r7, #4 - bne .L1755 + bne .L1763 ldrb r3, [r4, #2068] @ zero_extendqisi2 cmp r3, #173 - beq .L1756 - ldr r3, .L1848+4 + beq .L1764 + ldr r3, .L1856+4 ldr r0, [r3, #2256] bl NandcSetDdrMode -.L1756: +.L1764: mov r2, #852 - ldr r0, .L1848+16 + ldr r0, .L1856+16 mov r1, #0 - ldr r5, .L1848+20 + ldr r5, .L1856+20 bl ftl_memset ldr r2, [r4, #2264] - ldr r0, .L1848+24 + ldr r0, .L1856+24 cmp r2, r5 add r3, r0, #472 str r3, [r4, #44] mov r3, #0 - strb r3, [r4, #8] - bne .L1757 + strb r3, [r4, #40] + bne .L1765 ldrb r3, [r0, #491] @ zero_extendqisi2 cmp r3, #50 - ldrne r3, .L1848+4 + ldrne r3, .L1856+4 movne r1, #1 strne r1, [r3, #2248] -.L1757: +.L1765: ldrb r6, [r4, #2069] @ zero_extendqisi2 sub ip, r6, #218 cmp r6, #161 @@ -10483,131 +10524,131 @@ FlashInit: cmp r1, #209 orreq r3, r3, #1 cmp r3, #0 - bne .L1758 + bne .L1766 cmp r6, #220 - bne .L1759 - ldr r3, .L1848+4 + bne .L1767 + ldr r3, .L1856+4 ldrb r3, [r3, #2071] @ zero_extendqisi2 cmp r3, #149 - bne .L1759 -.L1758: + bne .L1767 +.L1766: mov lr, #16 - strb lr, [r4, #1] - strb lr, [r8, #1714] + strb lr, [r4, #33] + strb lr, [r8, #1722] mov r1, #1 ldrb lr, [r4, #2068] @ zero_extendqisi2 - strb r1, [r4] + strb r1, [r4, #32] cmp lr, #152 - ldr r3, .L1848 + ldr r3, .L1856 strb lr, [r0, #3417] strb r6, [r0, #3418] - bne .L1761 - ldr r7, .L1848+4 + bne .L1769 + ldr r7, .L1856+4 movw lr, #2072 ldrsb lr, [r7, lr] cmp lr, #0 - strltb r1, [r3, #1732] + strltb r1, [r3, #1740] movge r1, #24 - strgeb r1, [r3, #1714] -.L1761: + strgeb r1, [r3, #1722] +.L1769: movw r3, #2049 cmp r2, r5 cmpne r2, r3 moveq r3, #16 - streqb r3, [r8, #1714] + streqb r3, [r8, #1722] cmp ip, #0 - ldrne r3, .L1848+28 + ldrne r3, .L1856+28 movne r2, #2048 strneh r2, [r3, #14] @ movhi mvnne r3, #37 - bne .L1842 -.L1765: + bne .L1850 +.L1773: cmp r6, #220 - bne .L1767 - ldr r3, .L1848+28 + bne .L1775 + ldr r3, .L1856+28 mov r2, #4096 strh r2, [r3, #14] @ movhi mvn r3, #35 -.L1842: +.L1850: strb r3, [r0, #3418] - b .L1766 -.L1767: + b .L1774 +.L1775: cmp r6, #211 - ldreq r3, .L1848+28 + ldreq r3, .L1856+28 moveq r2, #4096 streqh r2, [r3, #14] @ movhi moveq r3, #2 streqb r3, [r0, #3429] -.L1766: - ldr r1, .L1848+32 +.L1774: + ldr r1, .L1856+32 mov r2, #32 - ldr r0, .L1848+36 + ldr r0, .L1856+36 bl ftl_memcpy - ldr r0, .L1848+40 + ldr r0, .L1856+40 mov r2, #32 add r1, r0, #2944 bl ftl_memcpy -.L1759: - ldrb r3, [r4] @ zero_extendqisi2 - ldr r6, .L1848+4 +.L1767: + ldrb r3, [r4, #32] @ zero_extendqisi2 + ldr r6, .L1856+4 cmp r3, #0 - bne .L1768 + bne .L1776 bl FlashLoadPhyInfoInRam cmp r0, #0 - bne .L1770 + bne .L1778 ldr r3, [r6, #44] ldrh r3, [r3, #16] mov r3, r3, lsr #8 tst r3, #1 and r0, r3, #7 strb r0, [r6, #2229] - bne .L1770 + bne .L1778 mov r3, #1 strb r3, [r6, #2252] bl FlashSetInterfaceMode ldrb r0, [r6, #2229] @ zero_extendqisi2 bl NandcSetMode -.L1770: +.L1778: ldr r3, [r4, #44] - ldr r6, .L1848+4 + ldr r6, .L1856+4 ldrb r3, [r3, #26] @ zero_extendqisi2 - strb r3, [r4, #144] + strb r3, [r4, #148] bl FlashLoadPhyInfo cmp r0, #0 - beq .L1768 + beq .L1776 ldr r3, [r6, #2256] cmp r3, #0 - beq .L1773 + beq .L1781 mov r0, #1 bl FlashSetInterfaceMode mov r0, #1 - b .L1843 -.L1773: + b .L1851 +.L1781: ldrb r0, [r6, #2229] @ zero_extendqisi2 bl FlashSetInterfaceMode ldrb r0, [r6, #2229] @ zero_extendqisi2 -.L1843: +.L1851: bl NandcSetMode bl FlashLoadPhyInfo cmp r0, #0 - beq .L1768 + beq .L1776 mov r0, #1 - ldr r6, .L1848+4 + ldr r6, .L1856+4 bl FlashSetInterfaceMode mov r0, #1 bl NandcSetMode ldr r3, [r4, #44] - ldr r0, .L1848+44 + ldr r0, .L1856+44 ldrh r1, [r3, #14] bl printk bl FlashLoadPhyInfoInRam cmn r0, #1 - beq .L1816 + beq .L1824 bl FlashDieInfoInit ldr r3, [r6, #44] ldrb r0, [r3, #19] @ zero_extendqisi2 bl FlashGetReadRetryDefault - ldr r3, .L1848+48 + ldr r3, .L1856+48 ldr r2, [r6, #44] ldrh r3, [r3, #-2] ldrb r1, [r2, #9] @ zero_extendqisi2 @@ -10615,47 +10656,47 @@ FlashInit: add r3, r3, #15 cmp r1, r3, asr #12 ldrh r3, [r2, #14] - blt .L1775 + blt .L1783 add r0, r3, #255 cmp r1, r0, asr #8 - bge .L1776 -.L1775: + bge .L1784 +.L1783: bic r3, r3, #255 strh r3, [r2, #14] @ movhi -.L1776: +.L1784: ldrb r3, [r4, #2229] @ zero_extendqisi2 tst r3, #6 - beq .L1777 + beq .L1785 bl FlashSavePhyInfo mov r0, #0 bl flash_enter_slc_mode mov r0, #0 - ldr r1, [r8, #1704] + ldr r1, [r8, #1712] bl FlashDdrParaScan mov r0, #0 bl flash_exit_slc_mode -.L1777: +.L1785: bl FlashSavePhyInfo -.L1768: +.L1776: ldr r2, [r4, #44] - ldr r7, .L1848+4 - ldr r6, .L1848 + ldr r7, .L1856+4 + ldr r6, .L1856 ldrb r3, [r2, #26] @ zero_extendqisi2 ldrh r0, [r2, #10] ldrb r9, [r2, #18] @ zero_extendqisi2 - strb r3, [r4, #144] + strb r3, [r4, #148] ldrh r3, [r2, #16] ubfx r1, r3, #7, #1 - strb r1, [r4, #8] + strb r1, [r4, #40] ubfx r1, r3, #3, #1 - strb r1, [r8, #1733] + strb r1, [r8, #1741] ubfx r1, r3, #4, #1 ubfx r3, r3, #8, #3 strb r1, [r4, #2240] strb r3, [r4, #2229] mov r3, #0 ldrb r1, [r2, #12] @ zero_extendqisi2 - str r3, [r8, #1696] + str r3, [r8, #1704] bl __aeabi_idiv mov r1, r0 mov r0, r9 @@ -10664,18 +10705,18 @@ FlashInit: ldr r3, [r4, #44] ldrh r2, [r3, #16] tst r2, #64 - beq .L1779 + beq .L1787 ldrb r0, [r3, #19] @ zero_extendqisi2 - ldrb r3, [r7, #1211] @ zero_extendqisi2 - strb r0, [r7, #1208] - strb r3, [r7, #1209] - ldrb r3, [r7, #1212] @ zero_extendqisi2 - strb r3, [r6, #1713] + ldrb r3, [r7, #1213] @ zero_extendqisi2 + strb r0, [r7, #80] + strb r3, [r7, #81] + ldrb r3, [r7, #1214] @ zero_extendqisi2 + strb r3, [r6, #1721] sub r3, r0, #1 cmp r3, #7 - bhi .L1780 - ldr r3, .L1848+52 - str r3, [r6, #1696] + bhi .L1788 + ldr r3, .L1856+52 + str r3, [r6, #1704] sub r3, r0, #5 cmp r0, #8 cmpne r3, #1 @@ -10685,53 +10726,53 @@ FlashInit: strls r3, [r7, #2304] cmp r0, #7 mov r6, r6, lsr #5 - ldreq r6, .L1848+56 - beq .L1783 - ldr r3, .L1848+56 + ldreq r6, .L1856+56 + beq .L1791 + ldr r3, .L1856+56 cmp r6, #0 sub r2, r3, #8 movne r6, r3 moveq r6, r2 -.L1783: +.L1791: sub r2, r6, #1 add r6, r6, #31 mov r3, #0 -.L1784: +.L1792: ldrsb r1, [r2, #1]! cmp r1, #0 addeq r3, r3, #1 cmp r2, r6 - bne .L1784 + bne .L1792 cmp r3, #27 - bls .L1779 + bls .L1787 bl FlashGetReadRetryDefault bl FlashSavePhyInfo - b .L1779 -.L1780: + b .L1787 +.L1788: sub r3, r0, #17 cmp r3, #2 - bhi .L1786 - ldr r3, .L1848+60 + bhi .L1794 + ldr r3, .L1856+60 cmp r0, #19 - str r3, [r6, #1696] + str r3, [r6, #1704] moveq r3, #15 - bne .L1847 - b .L1845 -.L1786: + bne .L1855 + b .L1853 +.L1794: sub r3, r0, #65 cmp r0, #33 cmpne r3, #1 - bhi .L1788 - ldr r3, .L1848+64 - str r3, [r6, #1696] + bhi .L1796 + ldr r3, .L1856+64 + str r3, [r6, #1704] mov r3, #4 - strb r3, [r7, #1209] -.L1847: + strb r3, [r7, #81] +.L1855: mov r3, #7 -.L1845: - strb r3, [r6, #1713] - b .L1779 -.L1788: +.L1853: + strb r3, [r6, #1721] + b .L1787 +.L1796: sub r2, r0, #67 sub r3, r0, #34 cmp r2, #1 @@ -10741,155 +10782,155 @@ FlashInit: movhi r3, r2 orrls r3, r2, #1 cmp r3, #0 - beq .L1789 - ldr r3, .L1848+64 + beq .L1797 + ldr r3, .L1856+64 cmp r0, #68 cmpne r0, #35 - str r3, [r6, #1696] + str r3, [r6, #1704] movne r3, #7 moveq r3, #17 cmp r2, #0 - strb r3, [r6, #1713] + strb r3, [r6, #1721] movne r3, #4 moveq r3, #5 - strb r3, [r4, #1209] - b .L1779 -.L1789: + strb r3, [r4, #81] + b .L1787 +.L1797: cmp r0, #49 - ldreq r3, .L1848+68 - streq r3, [r6, #1696] - beq .L1779 + ldreq r3, .L1856+68 + streq r3, [r6, #1704] + beq .L1787 cmp r0, #50 streq r3, [r7, #2248] - ldreq r2, .L1848+72 - streq r2, [r6, #1696] -.L1779: + ldreq r2, .L1856+72 + streq r2, [r6, #1704] +.L1787: ldr r2, [r4, #2264] - ldr r3, .L1848+4 + ldr r3, .L1856+4 cmp r2, r5 - bne .L1794 - ldrb r1, [r3, #144] @ zero_extendqisi2 + bne .L1802 + ldrb r1, [r3, #148] @ zero_extendqisi2 cmp r1, #0 ldrne r3, [r3, #44] movne r1, #0 strneb r1, [r3, #18] -.L1794: +.L1802: ldrb r1, [r4, #2068] @ zero_extendqisi2 - ldr r3, .L1848+4 + ldr r3, .L1856+4 cmp r1, #44 - bne .L1795 + bne .L1803 ldrb r1, [r3, #2252] @ zero_extendqisi2 cmp r1, #0 - beq .L1795 + beq .L1803 cmp r2, r5 - bne .L1796 - ldrb r3, [r3, #144] @ zero_extendqisi2 + bne .L1804 + ldrb r3, [r3, #148] @ zero_extendqisi2 cmp r3, #0 - bne .L1795 -.L1796: + bne .L1803 +.L1804: mov r0, #1 mov r3, #0 strb r3, [r4, #2252] bl FlashSetInterfaceMode mov r0, #1 bl NandcSetMode -.L1795: +.L1803: ldrb r3, [r4, #2229] @ zero_extendqisi2 tst r3, #6 - beq .L1797 - ldr r2, .L1848+4 + beq .L1805 + ldr r2, .L1856+4 ldrb r2, [r2, #2252] @ zero_extendqisi2 cmp r2, #0 - bne .L1798 + bne .L1806 tst r3, #1 - bne .L1797 -.L1798: + bne .L1805 +.L1806: mov r0, #0 bl flash_enter_slc_mode mov r0, #0 - ldr r1, [r8, #1704] + ldr r1, [r8, #1712] bl FlashDdrParaScan mov r0, #0 bl flash_exit_slc_mode -.L1797: +.L1805: ldr r3, [r4, #44] mov r7, #16 - ldr r6, .L1848+4 + ldr r6, .L1856+4 ldrb r0, [r3, #20] @ zero_extendqisi2 bl FlashBchSel - ldr r0, .L1848+76 + ldr r0, .L1856+76 bl FlashReadIdbDataRaw - ldr r0, .L1848+80 - strb r7, [r4, #1] + ldr r0, .L1856+80 + strb r7, [r4, #33] bl FlashTimingCfg ldr r5, [r4, #44] ldrb r2, [r4, #2069] @ zero_extendqisi2 ldrb r3, [r5, #12] @ zero_extendqisi2 ldrh r8, [r5, #14] - strh r3, [r4, #124] @ movhi + strh r3, [r4, #128] @ movhi ldrb r3, [r5, #7] @ zero_extendqisi2 - str r3, [r4, #120] + str r3, [r4, #124] mov r3, r2, asl r7 orr r2, r3, r2, asl #8 ldrb r3, [r4, #2068] @ zero_extendqisi2 orr r3, r2, r3 ldrb r2, [r4, #2071] @ zero_extendqisi2 orr r3, r3, r2, asl #24 - str r3, [r4, #116] + str r3, [r4, #120] ldrb r3, [r4, #2230] @ zero_extendqisi2 - strh r3, [r4, #126] @ movhi + strh r3, [r4, #130] @ movhi ldrb r3, [r5, #13] @ zero_extendqisi2 - strh r8, [r4, #130] @ movhi - strh r3, [r4, #128] @ movhi - ldrh r3, [r5, #10] + strh r8, [r4, #134] @ movhi strh r3, [r4, #132] @ movhi + ldrh r3, [r5, #10] + strh r3, [r4, #136] @ movhi ldrb r1, [r5, #12] @ zero_extendqisi2 ldrh r0, [r5, #10] bl __aeabi_idiv - strh r0, [r4, #134] @ movhi + strh r0, [r4, #138] @ movhi ldrb r2, [r5, #9] @ zero_extendqisi2 - strh r2, [r4, #136] @ movhi + strh r2, [r4, #140] @ movhi ldrb r1, [r5, #9] @ zero_extendqisi2 ldrh r3, [r5, #10] smulbb r3, r1, r3 mov r1, #512 - strh r1, [r4, #140] @ movhi - ldrb r1, [r4, #1] @ zero_extendqisi2 - strh r1, [r4, #142] @ movhi + strh r1, [r4, #144] @ movhi + ldrb r1, [r4, #33] @ zero_extendqisi2 + strh r1, [r4, #146] @ movhi uxth r3, r3 - ldrb r1, [r4] @ zero_extendqisi2 - strh r3, [r4, #138] @ movhi + ldrb r1, [r4, #32] @ zero_extendqisi2 + strh r3, [r4, #142] @ movhi cmp r1, #1 - bne .L1800 + bne .L1808 mov r3, r3, asl #1 mov r8, r8, lsr #1 mov r2, r2, asl #1 - strh r3, [r6, #138] @ movhi - strb r7, [r6, #1] - mov r3, #8 - strh r8, [r6, #130] @ movhi - strh r2, [r6, #136] @ movhi strh r3, [r6, #142] @ movhi -.L1800: + strb r7, [r6, #33] + mov r3, #8 + strh r8, [r6, #134] @ movhi + strh r2, [r6, #140] @ movhi + strh r3, [r6, #146] @ movhi +.L1808: ldrb r0, [r5, #20] @ zero_extendqisi2 bl FlashBchSel bl ftl_flash_suspend mov r0, #0 - b .L1816 -.L1802: + b .L1824 +.L1810: mvn r0, #1 -.L1816: +.L1824: add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1849: +.L1857: .align 2 -.L1848: +.L1856: .word .LANCHOR2 .word .LANCHOR0 .word .LANCHOR0+2068 .word .LC97 - .word .LANCHOR0+1210 + .word .LANCHOR0+1212 .word 1446522928 .word .LANCHOR1 .word .LANCHOR1+3416 @@ -10899,7 +10940,7 @@ FlashInit: .word .LC98 .word .LANCHOR2-568 .word HynixReadRetrial - .word .LANCHOR0+1238 + .word .LANCHOR0+1240 .word MicronReadRetrial .word ToshibaReadRetrial .word SamsungReadRetrial @@ -10918,23 +10959,23 @@ FlashPageProgMsbFFData: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} .save {r4, r5, r6, r7, r8, r9, r10, lr} mov r7, r1 - ldr r1, .L1867 + ldr r1, .L1875 mov r4, r2 mov r6, r0 - ldrb r2, [r1, #144] @ zero_extendqisi2 + ldrb r2, [r1, #148] @ zero_extendqisi2 mov r5, r1 ldr r3, [r1, #44] cmp r2, #0 ldrb r3, [r3, #19] @ zero_extendqisi2 - beq .L1851 + beq .L1859 ldr r2, [r1, #2248] cmp r2, #0 ldmnefd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L1851: +.L1859: sub r2, r3, #5 cmp r3, #50 cmpne r2, #2 - bls .L1852 + bls .L1860 sub r2, r3, #19 tst r2, #239 moveq r2, #1 @@ -10944,36 +10985,36 @@ FlashPageProgMsbFFData: orreq r3, r2, #1 cmp r3, #0 ldmeqfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L1852: - ldr r8, .L1867+4 +.L1860: + ldr r8, .L1875+4 movw r10, #65535 - ldr r9, .L1867+8 -.L1854: + ldr r9, .L1875+8 +.L1862: ldr r3, [r5, #44] ldrh r3, [r3, #10] cmp r3, r4 - bls .L1866 + bls .L1874 mov r3, r4, asl #1 ldrh r3, [r9, r3] cmp r3, r10 ldmnefd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} mov r1, #255 mov r2, #32768 - ldr r0, [r8, #1716] + ldr r0, [r8, #1724] bl ftl_memset - ldr r2, [r8, #1716] + ldr r2, [r8, #1724] add r1, r4, r7 add r4, r4, #1 mov r0, r6 mov r3, r2 uxth r4, r4 bl FlashProgPage - b .L1854 -.L1866: + b .L1862 +.L1874: ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L1868: +.L1876: .align 2 -.L1867: +.L1875: .word .LANCHOR0 .word .LANCHOR2 .word .LANCHOR2-2620 @@ -10986,7 +11027,7 @@ FlashReadSlc2KPages: .fnstart @ args = 0, pretend = 0, frame = 24 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1920 + ldr r3, .L1928 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #36 @@ -10997,16 +11038,16 @@ FlashReadSlc2KPages: str r1, [sp, #16] str r2, [sp, #20] str r3, [sp, #12] -.L1870: +.L1878: ldr r3, [sp, #16] cmp r8, r3 - beq .L1919 + beq .L1927 ldr r3, [sp, #16] add r2, sp, #28 mov r0, r4 ldr r1, [sp, #20] rsb r3, r8, r3 - ldr r9, .L1920+4 + ldr r9, .L1928+4 uxtb r3, r3 str r3, [sp] add r3, sp, #24 @@ -11017,7 +11058,7 @@ FlashReadSlc2KPages: cmp r3, r2 mvncs r3, #0 strcs r3, [r4] - bcs .L1872 + bcs .L1880 add r3, r9, r3 mov r7, #0 ldrb r5, [r3, #2232] @ zero_extendqisi2 @@ -11025,7 +11066,7 @@ FlashReadSlc2KPages: bl NandcWaitFlashReady mov r0, r5 bl NandcFlashCs -.L1873: +.L1881: ldr r1, [sp, #28] mov r0, r5 bl FlashReadCmd @@ -11038,30 +11079,30 @@ FlashReadSlc2KPages: ldr r2, [sp, #12] ldr r3, [r4, #8] bl NandcXferData - ldr r3, .L1920+8 - ldrb r3, [r3, #1732] @ zero_extendqisi2 + ldr r3, .L1928+8 + ldrb r3, [r3, #1740] @ zero_extendqisi2 cmp r3, #0 mov r6, r0 - beq .L1874 + beq .L1882 mov r0, r5 bl flash_read_ecc cmp r0, #5 movhi r6, #256 -.L1874: +.L1882: cmp r7, #9 cmnls r6, #1 moveq r3, #1 movne r3, #0 addeq r7, r7, #1 - beq .L1873 -.L1875: + beq .L1881 +.L1883: cmp r7, #0 mov r7, r3 movne r6, #256 -.L1877: +.L1885: ldr r3, [sp, #28] mov r0, r5 - ldr r1, [fp, #4] + ldr r1, [fp, #36] add r1, r1, r3 bl FlashReadCmd mov r0, r5 @@ -11077,21 +11118,21 @@ FlashReadSlc2KPages: str r2, [sp] ldr r2, [sp, #12] bl NandcXferData - ldr r3, .L1920+8 - ldrb r2, [r3, #1732] @ zero_extendqisi2 + ldr r3, .L1928+8 + ldrb r2, [r3, #1740] @ zero_extendqisi2 cmp r2, #0 mov r10, r0 - beq .L1880 + beq .L1888 mov r0, r5 bl flash_read_ecc cmp r0, #5 movhi r10, #256 -.L1880: +.L1888: cmp r7, #9 cmnls r10, #1 addeq r7, r7, #1 - beq .L1877 -.L1881: + beq .L1885 +.L1889: cmp r7, #0 mov r0, r5 movne r10, #256 @@ -11102,61 +11143,61 @@ FlashReadSlc2KPages: movcc r3, r6 add r2, r2, r2, asl #1 cmp r3, r2, asr #2 - bls .L1883 + bls .L1891 cmn r3, #1 movne r3, #256 -.L1883: +.L1891: cmp r3, #256 cmnne r3, #1 movne r3, #0 str r3, [r4] ldr r3, [r4, #12] cmp r3, #0 - beq .L1886 + beq .L1894 ldr r2, [r3, #12] cmn r2, #1 - bne .L1886 + bne .L1894 ldr r2, [r3, #8] cmn r2, #1 - bne .L1886 + bne .L1894 ldr r3, [r3] cmn r3, #1 strne r2, [r4] -.L1886: +.L1894: ldr r3, [r4] cmn r3, #1 - bne .L1872 + bne .L1880 ldr r1, [r4, #4] - ldr r0, .L1920+12 + ldr r0, .L1928+12 ldrb r2, [r9, #2312] @ zero_extendqisi2 bl printk ldr r1, [r4, #8] cmp r1, #0 - beq .L1888 - ldr r0, .L1920+16 + beq .L1896 + ldr r0, .L1928+16 mov r2, #4 mov r3, #8 bl rknand_print_hex -.L1888: +.L1896: ldr r1, [r4, #12] cmp r1, #0 - beq .L1872 + beq .L1880 mov r2, #4 - ldr r0, .L1920+20 + ldr r0, .L1928+20 mov r3, r2 bl rknand_print_hex -.L1872: +.L1880: add r8, r8, #1 add r4, r4, #36 - b .L1870 -.L1919: + b .L1878 +.L1927: mov r0, #0 add sp, sp, #36 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1921: +.L1929: .align 2 -.L1920: +.L1928: .word .LANCHOR1 .word .LANCHOR0 .word .LANCHOR2 @@ -11172,31 +11213,31 @@ FlashReadPages: .fnstart @ args = 0, pretend = 0, frame = 40 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1997 + ldr r3, .L2005 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #52 sub sp, sp, #52 - ldr r6, .L1997+4 + ldr r6, .L2005+4 ldrb r3, [r3, #481] @ zero_extendqisi2 str r1, [sp, #20] - ldrb r8, [r6] @ zero_extendqisi2 + ldrb r8, [r6, #32] @ zero_extendqisi2 str r3, [sp, #16] - ldrb r3, [r6, #8] @ zero_extendqisi2 + ldrb r3, [r6, #40] @ zero_extendqisi2 cmp r8, #0 str r2, [sp, #24] str r3, [sp, #28] - beq .L1959 + beq .L1967 bl FlashReadSlc2KPages - b .L1992 -.L1959: - ldr r10, .L1997+8 + b .L2000 +.L1967: + ldr r10, .L2005+8 mov r9, r0 mov fp, r8 -.L1923: +.L1931: ldr r3, [sp, #20] cmp fp, r3 - bcs .L1995 + bcs .L2003 mov r3, #36 add r2, sp, #44 mul r3, r3, fp @@ -11219,35 +11260,35 @@ FlashReadPages: ldrcs r2, [sp, #8] mvncs r3, #0 strcs r3, [r9, r2] - bcs .L1926 + bcs .L1934 add r3, r6, r3 ldrb r4, [r3, #2232] @ zero_extendqisi2 - ldrb r3, [r10, #1733] @ zero_extendqisi2 + ldrb r3, [r10, #1741] @ zero_extendqisi2 cmp r3, #0 mov r0, r4 moveq r5, #0 bl NandcWaitFlashReady - ldr r3, .L1997+4 + ldr r3, .L2005+4 ldr r3, [r3, #44] ldrb r2, [r3, #19] @ zero_extendqisi2 sub r3, r2, #1 cmp r3, #7 - bhi .L1928 + bhi .L1936 sub r2, r2, #7 add r1, r6, r4 cmp r2, #1 - ldr r2, .L1997+4 - ldrb r3, [r1, #1222] @ zero_extendqisi2 + ldr r2, .L2005+4 + ldrb r3, [r1, #1224] @ zero_extendqisi2 add r2, r2, r4 - ldrlsb r3, [r1, #1230] @ zero_extendqisi2 + ldrlsb r3, [r1, #1232] @ zero_extendqisi2 ldrb r2, [r2, #2064] @ zero_extendqisi2 cmp r2, r3 - beq .L1928 + beq .L1936 mov r0, r4 - ldrb r1, [r6, #1211] @ zero_extendqisi2 - ldr r2, .L1997+12 + ldrb r1, [r6, #1213] @ zero_extendqisi2 + ldr r2, .L2005+12 bl HynixSetRRPara -.L1928: +.L1936: mov r0, r4 bl NandcFlashCs mov r0, r4 @@ -11258,42 +11299,42 @@ FlashReadPages: orreq r3, r3, #1 str r3, [sp, #12] cmp r3, #0 - beq .L1930 - ldr r3, .L1997+4 - ldrb r3, [r3, #144] @ zero_extendqisi2 + beq .L1938 + ldr r3, .L2005+4 + ldrb r3, [r3, #148] @ zero_extendqisi2 cmp r3, #0 - beq .L1930 + beq .L1938 bl flash_enter_slc_mode - b .L1931 -.L1930: + b .L1939 +.L1938: bl flash_exit_slc_mode -.L1931: +.L1939: ldr r1, [sp, #44] cmn r1, #1 cmpeq r4, #255 moveq r3, #0 movne r3, #1 moveq r5, r3 - beq .L1933 + beq .L1941 cmp r5, #0 - beq .L1934 - ldr r2, [r6, #4] + beq .L1942 + ldr r2, [r6, #36] mov r0, r4 add r2, r1, r2 bl FlashReadDpCmd - b .L1935 -.L1934: + b .L1943 +.L1942: mov r0, r4 bl FlashReadCmd -.L1935: +.L1943: mov r0, r4 bl NandcWaitFlashReady cmp r5, #0 - beq .L1933 + beq .L1941 mov r0, r4 ldr r1, [sp, #44] bl FlashReadDpDataOutCmd -.L1933: +.L1941: ldr r3, [r7, #12] mov r0, r4 ldr r2, [sp, #16] @@ -11301,7 +11342,7 @@ FlashReadPages: str r3, [sp] ldr r3, [r7, #8] bl NandcXferData - ldrb r2, [r6, #8] @ zero_extendqisi2 + ldrb r2, [r6, #40] @ zero_extendqisi2 adds r2, r2, #0 movne r2, #1 cmn r0, #1 @@ -11309,17 +11350,17 @@ FlashReadPages: movne r2, #0 cmp r2, #0 movne r3, #0 - strneb r3, [r6, #8] + strneb r3, [r6, #40] movne r5, r3 - bne .L1931 -.L1936: + bne .L1939 +.L1944: cmp r5, #0 - beq .L1937 - ldr r3, .L1997+4 + beq .L1945 + ldr r3, .L2005+4 str r0, [sp, #32] mov r0, r4 str r2, [sp, #36] - ldr r1, [r3, #4] + ldr r1, [r3, #36] ldr r3, [sp, #44] add r1, r1, r3 bl FlashReadDpDataOutCmd @@ -11338,25 +11379,25 @@ FlashReadPages: ldr ip, [sp, #32] mov r8, r0 moveq r5, #0 -.L1937: +.L1945: mov r0, r4 str ip, [sp, #32] bl NandcFlashDeCs ldr ip, [sp, #32] ldrb r3, [sp, #28] @ zero_extendqisi2 cmn ip, #1 - strb r3, [r6, #8] - bne .L1944 + strb r3, [r6, #40] + bne .L1952 ldrb r3, [r6, #2252] @ zero_extendqisi2 cmp r3, #0 - bne .L1939 -.L1943: - ldr r5, [r10, #1696] + bne .L1947 +.L1951: + ldr r5, [r10, #1704] cmp r5, #0 - bne .L1940 - b .L1996 -.L1939: - ldr r3, [r6, #80] + bne .L1948 + b .L2004 +.L1947: + ldr r3, [r6, #84] mov r0, r4 ldr r1, [sp, #44] ldr r5, [r3, #304] @@ -11367,19 +11408,19 @@ FlashReadPages: bl FlashDdrTunningRead cmn r0, #1 mov ip, r0 - beq .L1942 + beq .L1950 ldrb r3, [r6, #2312] @ zero_extendqisi2 cmp r0, r3, lsr #1 - bls .L1962 -.L1942: + bls .L1970 +.L1950: ubfx r0, r5, #8, #8 str ip, [sp, #32] bl NandcSetDdrPara ldr ip, [sp, #32] cmn ip, #1 - beq .L1943 - b .L1962 -.L1940: + beq .L1951 + b .L1970 +.L1948: mov r0, r4 ldr r1, [sp, #44] ldr r2, [r7, #8] @@ -11387,18 +11428,18 @@ FlashReadPages: blx r5 cmn r0, #1 mov ip, r0 - bne .L1964 + bne .L1972 ldr r3, [r6, #44] ldrb r3, [r3, #19] @ zero_extendqisi2 sub r3, r3, #1 cmp r3, #7 - bhi .L1946 + bhi .L1954 mov r0, r4 - ldrb r1, [r6, #1211] @ zero_extendqisi2 - ldr r2, .L1997+12 + ldrb r1, [r6, #1213] @ zero_extendqisi2 + ldr r2, .L2005+12 mov r3, #0 bl HynixSetRRPara -.L1946: +.L1954: ldr r1, [sp, #44] mov r0, r4 ldr r2, [r7, #8] @@ -11407,55 +11448,55 @@ FlashReadPages: ldr r1, [r7, #4] ldrb r2, [r6, #2312] @ zero_extendqisi2 mov ip, r0 - ldr r0, .L1997+16 + ldr r0, .L2005+16 mov r3, ip str ip, [sp, #32] bl printk ldr ip, [sp, #32] cmn ip, #1 - bne .L1964 - ldrb r5, [r6, #144] @ zero_extendqisi2 + bne .L1972 + ldrb r5, [r6, #148] @ zero_extendqisi2 cmp r5, #0 - beq .L1945 + beq .L1953 ldr r3, [sp, #12] mov r0, r4 cmp r3, #0 - beq .L1947 + beq .L1955 bl flash_enter_slc_mode - b .L1948 -.L1947: + b .L1956 +.L1955: bl flash_exit_slc_mode -.L1948: - ldr ip, [r10, #1696] +.L1956: + ldr ip, [r10, #1704] mov r0, r4 ldr r1, [sp, #44] ldr r2, [r7, #8] ldr r3, [r7, #12] blx ip mov ip, r0 - b .L1964 -.L1996: + b .L1972 +.L2004: mov r0, r4 ldr r1, [sp, #44] ldr r2, [r7, #8] ldr r3, [r7, #12] bl FlashReadRawPage mov ip, r0 - b .L1945 -.L1962: + b .L1953 +.L1970: mov r5, #0 -.L1944: +.L1952: ldrb r3, [r6, #2312] @ zero_extendqisi2 add r3, r3, r3, asl #1 cmp ip, r3, asr #2 - bls .L1945 - ldr r3, [r10, #1696] + bls .L1953 + ldr r3, [r10, #1704] cmp r3, #0 moveq ip, #256 - b .L1945 -.L1964: + b .L1953 +.L1972: mov r5, #0 -.L1945: +.L1953: cmp ip, #256 cmnne ip, #1 ldreq r3, [sp, #8] @@ -11466,29 +11507,29 @@ FlashReadPages: ldr r3, [sp, #8] ldr r3, [r9, r3] cmn r3, #1 - bne .L1952 + bne .L1960 ldr r1, [r7, #4] - ldr r0, .L1997+20 + ldr r0, .L2005+20 ldrb r2, [r6, #2312] @ zero_extendqisi2 bl printk ldr r1, [r7, #12] cmp r1, #0 - beq .L1952 + beq .L1960 mov r2, #4 - ldr r0, .L1997+24 + ldr r0, .L2005+24 mov r3, r2 bl rknand_print_hex -.L1952: +.L1960: cmp r5, #0 - beq .L1954 + beq .L1962 ldrb r3, [r6, #2312] @ zero_extendqisi2 add r3, r3, r3, asl #1 cmp r8, r3, asr #2 - bls .L1955 - ldr r3, [r10, #1696] + bls .L1963 + ldr r3, [r10, #1704] cmp r3, #0 moveq r8, #256 -.L1955: +.L1963: ldr r3, [sp, #8] cmp r8, #256 cmnne r8, #1 @@ -11496,32 +11537,32 @@ FlashReadPages: movne r2, #0 streq r8, [r9, r3] strne r2, [r9, r3] -.L1954: +.L1962: ldr r3, [sp, #12] add fp, fp, r5 cmp r3, #0 - beq .L1926 - ldrb r3, [r6, #144] @ zero_extendqisi2 + beq .L1934 + ldrb r3, [r6, #148] @ zero_extendqisi2 cmp r3, #0 - beq .L1926 + beq .L1934 mov r0, r4 bl flash_exit_slc_mode -.L1926: +.L1934: add fp, fp, #1 - b .L1923 -.L1995: + b .L1931 +.L2003: mov r0, #0 -.L1992: +.L2000: add sp, sp, #52 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1998: +.L2006: .align 2 -.L1997: +.L2005: .word .LANCHOR1 .word .LANCHOR0 .word .LANCHOR2 - .word .LANCHOR0+1214 + .word .LANCHOR0+1216 .word .LC102 .word .LC99 .word .LC101 @@ -11537,38 +11578,38 @@ FlashLoadFactorBbt: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r2, #16 - ldr r4, .L2012 + ldr r8, .L2020 .pad #60 sub sp, sp, #60 - ldr r0, .L2012+4 + ldr r4, .L2020+4 mov r1, #0 - ldr r10, .L2012+8 mov r5, #0 - ldrh r3, [r4, #130] mvn fp, #0 - ldrh r6, [r4, #128] + ldrh r3, [r8, #134] + add r0, r4, #1744 + ldrh r6, [r8, #132] mov r9, r5 - mov r8, r4 + mov r10, r4 smulbb r6, r6, r3 bl ftl_memset - ldr r3, [r10, #1720] + ldr r3, [r4, #1728] uxth r6, r6 add r2, r6, fp str r3, [sp, #32] uxth r3, r2 str r5, [sp, #28] str r3, [sp, #4] -.L2000: +.L2008: ldrb r3, [r8, #2230] @ zero_extendqisi2 uxtb r7, r5 cmp r3, r7 - bls .L2011 + bls .L2019 mul ip, r6, r7 ldr r4, [sp, #4] sub r3, r6, #12 -.L2001: +.L2009: cmp r4, r3 - ble .L2003 + ble .L2011 add r2, ip, r4 mov r1, #1 add r0, sp, #20 @@ -11582,44 +11623,44 @@ FlashLoadFactorBbt: ldr ip, [sp, #8] cmn r2, #1 ldr r3, [sp, #12] - beq .L2002 - ldr r2, [r10, #1720] + beq .L2010 + ldr r2, [r10, #1728] ldrh r1, [r2] movw r2, #61664 cmp r1, r2 - bne .L2002 + bne .L2010 mov r1, r7 - ldr r0, .L2012+12 + ldr r0, .L2020+8 mov r2, r4 mov r7, r7, asl #1 bl printk - ldr r3, .L2012+4 + ldr r3, .L2020+12 add r9, r9, #1 strh r4, [r3, r7] @ movhi uxth r9, r9 - b .L2003 -.L2002: + b .L2011 +.L2010: sub r4, r4, #1 uxth r4, r4 - b .L2001 -.L2003: + b .L2009 +.L2011: ldrb r3, [r8, #2230] @ zero_extendqisi2 add r5, r5, #1 cmp r3, r9 moveq fp, #0 - b .L2000 -.L2011: + b .L2008 +.L2019: mov r0, fp add sp, sp, #60 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2013: +.L2021: .align 2 -.L2012: +.L2020: .word .LANCHOR0 - .word .LANCHOR2+1736 .word .LANCHOR2 .word .LC103 + .word .LANCHOR2+1744 .fnend .size FlashLoadFactorBbt, .-FlashLoadFactorBbt .align 2 @@ -11629,12 +11670,12 @@ FlashProgSlc2KPages: .fnstart @ args = 0, pretend = 0, frame = 56 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2044 + ldr r3, .L2052 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #68 sub sp, sp, #68 - ldr r8, .L2044+4 + ldr r8, .L2052+4 mov r6, r1 ldrb r3, [r3, #481] @ zero_extendqisi2 mov r9, r2 @@ -11643,9 +11684,9 @@ FlashProgSlc2KPages: mov r7, #0 mov fp, r8 str r3, [sp, #12] -.L2015: +.L2023: cmp r7, r6 - beq .L2042 + beq .L2050 rsb r3, r7, r6 add r2, sp, #20 mov r0, r10 @@ -11659,7 +11700,7 @@ FlashProgSlc2KPages: cmp r3, r2 mvncs r3, #0 strcs r3, [r10] - bcs .L2017 + bcs .L2025 add r3, r8, r3 ldrb r5, [r3, #2232] @ zero_extendqisi2 mov r0, r5 @@ -11688,7 +11729,7 @@ FlashProgSlc2KPages: sbfx r0, r0, #0, #1 str r0, [r10] mov r0, r5 - ldr r1, [r8, #4] + ldr r1, [r8, #36] add r1, r1, r3 bl FlashProgFirstCmd ldr r3, [r10, #8] @@ -11702,7 +11743,7 @@ FlashProgSlc2KPages: str r2, [sp] ldr r2, [sp, #12] bl NandcXferData - ldr r1, [fp, #4] + ldr r1, [fp, #36] mov r0, r5 ldr r3, [sp, #20] add r1, r1, r3 @@ -11717,25 +11758,25 @@ FlashProgSlc2KPages: mvnne r3, #0 strne r3, [r10] bl NandcFlashDeCs -.L2017: +.L2025: add r7, r7, #1 add r10, r10, #36 - b .L2015 -.L2042: - ldr r5, .L2044+8 + b .L2023 +.L2050: + ldr r5, .L2052+8 mov r7, #0 mov r8, r5 -.L2022: +.L2030: cmp r7, r6 - beq .L2043 + beq .L2051 ldr r3, [r4] cmn r3, #1 - bne .L2023 + bne .L2031 ldr r1, [r4, #4] - ldr r0, .L2044+12 + ldr r0, .L2052+12 bl printk - b .L2024 -.L2023: + b .L2032 +.L2031: rsb r3, r7, r6 mov r1, r9 add r2, sp, #20 @@ -11744,11 +11785,11 @@ FlashProgSlc2KPages: str r3, [sp] add r3, sp, #24 bl LogAddr2PhyAddr - ldr r2, [r5, #1724] + ldr r2, [r5, #1732] mov r3, #0 mov lr, r4 str r3, [r2] - ldr r2, [r5, #1728] + ldr r2, [r5, #1736] str r3, [r2] ldmia lr!, {r0, r1, r2, r3} add ip, sp, #28 @@ -11760,66 +11801,66 @@ FlashProgSlc2KPages: mov r1, #1 mov r2, r9 str r3, [ip] - ldr r3, [r5, #1724] + ldr r3, [r5, #1732] str r3, [sp, #36] - ldr r3, [r5, #1728] + ldr r3, [r5, #1736] str r3, [sp, #40] bl FlashReadPages ldr r10, [sp, #28] cmn r10, #1 - bne .L2025 - ldr r0, .L2044+16 + bne .L2033 + ldr r0, .L2052+16 ldr r1, [r4, #4] bl printk str r10, [r4] -.L2025: +.L2033: ldr r10, [sp, #28] cmp r10, #256 - bne .L2026 - ldr r0, .L2044+20 + bne .L2034 + ldr r0, .L2052+20 ldr r1, [r4, #4] bl printk str r10, [r4] -.L2026: +.L2034: ldr r3, [r4, #12] cmp r3, #0 - beq .L2027 + beq .L2035 ldr r2, [r3] - ldr r3, [r8, #1728] + ldr r3, [r8, #1736] ldr r3, [r3] cmp r2, r3 - beq .L2027 - ldr r0, .L2044+24 + beq .L2035 + ldr r0, .L2052+24 ldr r1, [r4, #4] bl printk mvn r3, #0 str r3, [r4] -.L2027: +.L2035: ldr r3, [r4, #8] cmp r3, #0 - beq .L2024 + beq .L2032 ldr r2, [r3] - ldr r3, [r8, #1724] + ldr r3, [r8, #1732] ldr r3, [r3] cmp r2, r3 - beq .L2024 - ldr r0, .L2044+28 + beq .L2032 + ldr r0, .L2052+28 ldr r1, [r4, #4] bl printk mvn r3, #0 str r3, [r4] -.L2024: +.L2032: add r7, r7, #1 add r4, r4, #36 - b .L2022 -.L2043: + b .L2030 +.L2051: mov r0, #0 add sp, sp, #68 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2045: +.L2053: .align 2 -.L2044: +.L2052: .word .LANCHOR1 .word .LANCHOR0 .word .LANCHOR2 @@ -11841,64 +11882,64 @@ FtlLoadFactoryBbt: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 mov r7, #0 - ldr r5, .L2058 - ldr r6, .L2058+4 + ldr r5, .L2066 + ldr r6, .L2066+4 ldr r3, [r5, #-524] sub r9, r6, #76 ldr r8, [r5, #-500] sub r10, r6, #120 mov fp, r9 - str r3, [r5, #1760] - str r8, [r5, #1764] -.L2047: + str r3, [r5, #1768] + str r8, [r5, #1772] +.L2055: ldrh r3, [r10] cmp r7, r3 - bcs .L2057 + bcs .L2065 ldrh r4, [r9] mvn r3, #0 movw ip, #61664 strh r3, [r6, #2]! @ movhi add r4, r4, r3 uxth r4, r4 -.L2048: +.L2056: ldrh r3, [fp] sub r2, r3, #16 cmp r4, r2 - ble .L2050 + ble .L2058 mla r3, r3, r7, r4 mov r1, #1 - ldr r0, .L2058+8 + ldr r0, .L2066+8 mov r2, r1 str ip, [sp, #4] mov r3, r3, asl #10 - str r3, [r5, #1756] + str r3, [r5, #1764] bl FlashReadPages - ldr r3, [r5, #1752] + ldr r3, [r5, #1760] cmn r3, #1 ldr ip, [sp, #4] - beq .L2049 + beq .L2057 ldrh r3, [r8] cmp r3, ip streqh r4, [r6] @ movhi - beq .L2050 -.L2049: + beq .L2058 +.L2057: sub r4, r4, #1 uxth r4, r4 - b .L2048 -.L2050: + b .L2056 +.L2058: add r7, r7, #1 - b .L2047 -.L2057: + b .L2055 +.L2065: mov r0, #0 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2059: +.L2067: .align 2 -.L2058: +.L2066: .word .LANCHOR2 .word .LANCHOR0+2462 - .word .LANCHOR2+1752 + .word .LANCHOR2+1760 .fnend .size FtlLoadFactoryBbt, .-FtlLoadFactoryBbt .align 2 @@ -11909,7 +11950,7 @@ FtlGetLastWrittenPage: @ args = 0, pretend = 0, frame = 104 @ frame_needed = 0, uses_anonymous_args = 0 cmp r1, #1 - ldr r3, .L2073 + ldr r3, .L2081 stmfd sp!, {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} movweq r2, #2390 @@ -11934,12 +11975,12 @@ FtlGetLastWrittenPage: bl FlashReadPages ldr r3, [sp, #40] cmn r3, #1 - bne .L2063 -.L2064: + bne .L2071 +.L2072: sxth r4, r7 sxth r3, r5 cmp r4, r3 - bgt .L2063 + bgt .L2071 add r4, r4, r3 add r0, sp, #4 mov r1, #1 @@ -11952,27 +11993,27 @@ FtlGetLastWrittenPage: bl FlashReadPages ldr r3, [sp, #40] cmn r3, #1 - bne .L2065 + bne .L2073 ldr r3, [sp, #44] cmn r3, #1 - bne .L2065 + bne .L2073 ldr r3, [sp, #4] cmn r3, #1 subne r4, r4, #1 uxthne r5, r4 - bne .L2064 -.L2065: + bne .L2072 +.L2073: add r3, r4, #1 uxth r7, r3 - b .L2064 -.L2063: + b .L2072 +.L2071: sxth r0, r5 add sp, sp, #104 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L2074: +.L2082: .align 2 -.L2073: +.L2081: .word .LANCHOR0 .fnend .size FtlGetLastWrittenPage, .-FtlGetLastWrittenPage @@ -11985,84 +12026,84 @@ FtlLoadBbt: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, lr} .save {r3, r4, r5, r6, r7, r8, r9, lr} - ldr r4, .L2108 - ldr r7, .L2108+4 - ldr r8, .L2108+8 + ldr r4, .L2116 + ldr r7, .L2116+4 + ldr r8, .L2116+8 ldr r3, [r4, #-524] mov r9, r4 ldr r6, [r4, #-500] - str r3, [r4, #1760] - str r6, [r4, #1764] + str r3, [r4, #1768] + str r6, [r4, #1772] bl FtlBbtMemInit movw r3, #2386 ldrh r5, [r7, r3] sub r5, r5, #1 uxth r5, r5 -.L2076: +.L2084: ldrh r3, [r8] sub r3, r3, #48 cmp r5, r3 - ble .L2079 + ble .L2087 mov r1, #1 - ldr r0, .L2108+12 + ldr r0, .L2116+12 mov r2, r1 mov r3, r5, asl #10 - str r3, [r4, #1756] + str r3, [r4, #1764] bl FlashReadPages - ldr r3, [r4, #1752] + ldr r3, [r4, #1760] cmn r3, #1 - bne .L2077 - ldr r3, [r9, #1756] + bne .L2085 + ldr r3, [r9, #1764] mov r1, #1 - ldr r0, .L2108+12 + ldr r0, .L2116+12 mov r2, r1 add r3, r3, #1 - str r3, [r9, #1756] + str r3, [r9, #1764] bl FlashReadPages -.L2077: - ldr r3, [r4, #1752] +.L2085: + ldr r3, [r4, #1760] cmn r3, #1 - beq .L2078 + beq .L2086 ldrh r2, [r6] movw r3, #61649 cmp r2, r3 - bne .L2078 + bne .L2086 movw r3, #2452 strh r5, [r7, r3] @ movhi ldr r3, [r6, #4] str r3, [r7, #2460] - ldr r3, .L2108+16 + ldr r3, .L2116+16 ldrh r2, [r6, #8] strh r2, [r3, #4] @ movhi - b .L2079 -.L2078: + b .L2087 +.L2086: sub r5, r5, #1 uxth r5, r5 - b .L2076 -.L2079: + b .L2084 +.L2087: movw r9, #2452 movw r2, #65535 ldrh r3, [r7, r9] - ldr r8, .L2108+4 + ldr r8, .L2116+4 cmp r3, r2 - ldr r5, .L2108+16 - beq .L2093 + ldr r5, .L2116+16 + beq .L2101 ldrh r3, [r5, #4] cmp r3, r2 - beq .L2083 + beq .L2091 mov r1, #1 - ldr r0, .L2108+12 + ldr r0, .L2116+12 mov r2, r1 mov r3, r3, asl #10 - str r3, [r4, #1756] + str r3, [r4, #1764] bl FlashReadPages - ldr r3, [r4, #1752] + ldr r3, [r4, #1760] cmn r3, #1 - beq .L2083 + beq .L2091 ldrh r2, [r6] movw r3, #61649 cmp r2, r3 - bne .L2083 + bne .L2091 ldr r3, [r6, #4] ldr r2, [r8, #2460] cmp r3, r2 @@ -12071,7 +12112,7 @@ FtlLoadBbt: ldrhih r3, [r6, #8] strhih r2, [r8, r9] @ movhi strhih r3, [r5, #4] @ movhi -.L2083: +.L2091: movw r3, #2452 mov r1, #1 ldrh r0, [r7, r3] @@ -12080,79 +12121,79 @@ FtlLoadBbt: uxth r7, r0 add r0, r0, #1 strh r0, [r5, #2] @ movhi -.L2085: +.L2093: sxth r3, r7 cmp r3, #0 - blt .L2090 + blt .L2098 ldrh r2, [r5] mov r1, #1 - ldr r0, .L2108+12 + ldr r0, .L2116+12 orr r3, r3, r2, asl #10 - str r3, [r4, #1756] + str r3, [r4, #1764] ldr r3, [r4, #-524] mov r2, r1 - str r3, [r4, #1760] + str r3, [r4, #1768] bl FlashReadPages - ldr r3, [r4, #1752] + ldr r3, [r4, #1760] cmn r3, #1 - beq .L2086 + beq .L2094 ldrh r3, [r6] cmp r3, r8 - bne .L2086 -.L2090: + bne .L2094 +.L2098: ldrh r2, [r6, #10] ldrh r0, [r6, #12] - ldr r3, .L2108+4 + ldr r3, .L2116+4 strh r2, [r5, #6] @ movhi movw r2, #65535 cmp r0, r2 - bne .L2087 - b .L2088 -.L2086: + bne .L2095 + b .L2096 +.L2094: sub r7, r7, #1 uxth r7, r7 - b .L2085 -.L2087: + b .L2093 +.L2095: ldr r2, [r3, #2316] cmp r0, r2 - beq .L2088 + beq .L2096 movw r1, #2330 ldrh r3, [r3, r1] mov r3, r3, lsr #2 cmp r0, r3 cmpcc r2, r3 - bcs .L2088 + bcs .L2096 bl FtlSysBlkNumInit -.L2088: - ldr r6, .L2108+20 +.L2096: + ldr r6, .L2116+20 mov r5, #0 - ldr r8, .L2108+24 + ldr r8, .L2116+24 sub r7, r6, #134 -.L2091: +.L2099: ldrh r3, [r7] cmp r5, r3 - bcs .L2107 + bcs .L2115 ldrh r2, [r8] - ldr r1, [r4, #1760] + ldr r1, [r4, #1768] ldr r0, [r6, #4]! mov r2, r2, asl #2 mla r1, r5, r2, r1 bl ftl_memcpy add r5, r5, #1 - b .L2091 -.L2107: + b .L2099 +.L2115: mov r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, pc} -.L2093: +.L2101: mvn r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, pc} -.L2109: +.L2117: .align 2 -.L2108: +.L2116: .word .LANCHOR2 .word .LANCHOR0 .word .LANCHOR0+2386 - .word .LANCHOR2+1752 + .word .LANCHOR2+1760 .word .LANCHOR0+2452 .word .LANCHOR0+2476 .word .LANCHOR2-436 @@ -12168,9 +12209,9 @@ FtlScanSysBlk: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r5, #0 - ldr r7, .L2196 + ldr r7, .L2204 mov r1, r5 - ldr r4, .L2196+4 + ldr r4, .L2204+4 .pad #36 sub sp, sp, #36 movw r6, #2408 @@ -12198,7 +12239,7 @@ FtlScanSysBlk: mov r1, r5 mov r2, r2, asl #1 bl ftl_memset - ldr r0, .L2196+8 + ldr r0, .L2204+8 mov r1, #255 mov r2, #16 bl ftl_memset @@ -12207,14 +12248,14 @@ FtlScanSysBlk: str r7, [sp, #16] mov r7, r4 str r3, [sp, #4] -.L2111: - ldr r3, .L2196+12 +.L2119: + ldr r3, .L2204+12 ldr r2, [sp, #4] - ldr r1, .L2196 + ldr r1, .L2204 ldrh r3, [r3] cmp r3, r2 mov r0, r1 - bls .L2152 + bls .L2160 add r3, r1, #2320 add r1, r1, #2400 ldr r0, [r4, #-2692] @@ -12227,10 +12268,10 @@ FtlScanSysBlk: mov r9, #36 ldrh r10, [r1] str r0, [sp, #8] -.L2153: +.L2161: uxth r1, r5 cmp r1, ip - bcs .L2191 + bcs .L2199 ldr r1, [sp, #4] ldrb r0, [r6, r5] @ zero_extendqisi2 str r2, [sp, #28] @@ -12244,7 +12285,7 @@ FtlScanSysBlk: ldr ip, [sp, #20] ldr r3, [sp, #24] ldr r2, [sp, #28] - bne .L2112 + bne .L2120 mla r0, r9, fp, r3 mov r1, r1, asl #10 stmib r0, {r1, r2} @@ -12258,22 +12299,22 @@ FtlScanSysBlk: str r1, [r0, #12] add r0, fp, #1 uxth fp, r0 -.L2112: +.L2120: add r5, r5, #1 - b .L2153 -.L2191: + b .L2161 +.L2199: cmp fp, #0 - beq .L2115 + beq .L2123 ldr r0, [r4, #-536] mov r1, fp mov r2, #1 bl FlashReadPages mov r3, #0 -.L2189: +.L2197: str r3, [sp, #8] ldrh r3, [sp, #8] cmp r3, fp - bcs .L2115 + bcs .L2123 ldr r3, [sp, #8] mov r9, #36 mul r9, r9, r3 @@ -12284,10 +12325,10 @@ FtlScanSysBlk: cmn r3, #1 ldr r6, [r2, #12] ubfx r5, r5, #10, #16 - bne .L2118 + bne .L2126 mov r10, #16 movw ip, #65535 -.L2117: +.L2125: ldr r0, [r4, #-536] mov r1, #1 mov r2, r1 @@ -12303,41 +12344,41 @@ FtlScanSysBlk: ldreq r3, [r8, #-536] mvneq r2, #0 streq r2, [r3, r9] - beq .L2118 -.L2119: + beq .L2126 +.L2127: ldr r3, [r7, #-536] ldr r3, [r3, r9] cmn r3, #1 - bne .L2118 + bne .L2126 sub r10, r10, #1 uxth r10, r10 cmp r10, #0 - bne .L2117 -.L2118: + bne .L2125 +.L2126: ldr r3, [r7, #-536] ldr r3, [r3, r9] cmn r3, #1 - beq .L2121 + beq .L2129 ldr r2, [r7, #-3332] ldr r3, [r6, #4] cmn r2, #1 - beq .L2122 + beq .L2130 cmp r2, r3 - bhi .L2123 -.L2122: + bhi .L2131 +.L2130: cmn r3, #1 addne r2, r3, #1 strne r2, [r8, #-3332] -.L2123: +.L2131: ldrh r2, [r6] movw r1, #61604 cmp r2, r1 - beq .L2125 - bhi .L2126 + beq .L2133 + bhi .L2134 movw r3, #61574 cmp r2, r3 - bne .L2124 - ldr r2, .L2196+16 + bne .L2132 + ldr r2, .L2204+16 ldr lr, [r8, #-460] ldrh ip, [r2] ldrh r1, [r2, #26] @@ -12345,19 +12386,19 @@ FtlScanSysBlk: rsb r2, r1, r0 str r2, [sp, #12] uxth r3, r0 - b .L2139 -.L2126: + b .L2147 +.L2134: movw r3, #61634 cmp r2, r3 - beq .L2128 + beq .L2136 movw r3, #65535 cmp r2, r3 moveq r0, r5 - beq .L2190 - b .L2124 -.L2128: + beq .L2198 + b .L2132 +.L2136: ldr r3, [sp, #16] - ldr ip, .L2196+20 + ldr ip, .L2204+20 ldr r9, [r4, #-444] ldr lr, [r3, #2416] ldrh r2, [ip] @@ -12368,30 +12409,30 @@ FtlScanSysBlk: uxth r3, r3 sxth r1, r1 str r1, [sp, #20] -.L2130: +.L2138: ldr r1, [sp, #20] sxth r0, r3 cmp r0, r1 - ble .L2192 + ble .L2200 mov r10, r0, asl #2 ldr r1, [r6, #4] str r10, [sp, #12] ldr r10, [r9, r0, asl #2] cmp r1, r10 - bls .L2131 + bls .L2139 ldr r1, [r9] cmp r1, #0 - bne .L2132 + bne .L2140 cmp r2, lr addne r2, r2, #1 strneh r2, [ip] @ movhi -.L2132: +.L2140: uxth r9, r3 mov r1, #0 -.L2133: +.L2141: uxth r2, r1 cmp r2, r9 - bcs .L2193 + bcs .L2201 ldr lr, [r7, #-444] sxth r2, r2 add r1, r1, #1 @@ -12403,8 +12444,8 @@ FtlScanSysBlk: add r10, lr, r2 ldrh r10, [r10, #2] strh r10, [lr, r2] @ movhi - b .L2133 -.L2193: + b .L2141 +.L2201: ldr r2, [r4, #-444] mov r0, r0, asl #1 ldr r1, [r6, #4] @@ -12414,26 +12455,26 @@ FtlScanSysBlk: strh r5, [r2, r0] @ movhi sxth r0, r3 cmp r0, #0 - bge .L2135 - b .L2124 -.L2131: + bge .L2143 + b .L2132 +.L2139: sub r3, r3, #1 uxth r3, r3 - b .L2130 -.L2192: + b .L2138 +.L2200: cmp r0, #0 - bge .L2166 - b .L2124 -.L2135: - ldr r1, .L2196 + bge .L2174 + b .L2132 +.L2143: + ldr r1, .L2204 ldrh r2, [ip] ldr r1, [r1, #2416] rsb r1, r2, r1 sub r1, r1, #1 sxth r1, r1 cmp r0, r1 - bgt .L2124 -.L2166: + bgt .L2132 +.L2174: add r2, r2, #1 ldr r1, [r6, #4] strh r2, [ip] @ movhi @@ -12442,36 +12483,36 @@ FtlScanSysBlk: str r1, [r2, r3, asl #2] mov r3, r3, asl #1 ldr r2, [r4, #-472] - b .L2187 -.L2145: + b .L2195 +.L2153: ldr r9, [lr, r2, asl #2] mov r10, r2, asl #2 ldr r0, [r6, #4] cmp r0, r9 - bhi .L2194 + bhi .L2202 sub r3, r3, #1 uxth r3, r3 -.L2139: +.L2147: ldr r0, [sp, #12] sxth r2, r3 cmp r2, r0 - bgt .L2145 - b .L2144 -.L2194: + bgt .L2153 + b .L2152 +.L2202: ldr r0, [lr] cmp r0, #0 - bne .L2141 + bne .L2149 cmp r1, ip addne r1, r1, #1 - ldrne r0, .L2196+24 + ldrne r0, .L2204+24 strneh r1, [r0] @ movhi -.L2141: +.L2149: uxth lr, r3 mov r0, #0 -.L2142: +.L2150: uxth r1, r0 cmp r1, lr - bcs .L2195 + bcs .L2203 ldr ip, [r4, #-460] sxth r1, r1 add r0, r0, #1 @@ -12479,124 +12520,124 @@ FtlScanSysBlk: ldr r9, [r9, #4] str r9, [ip, r1, asl #2] mov r1, r1, asl #1 - ldr ip, .L2196 + ldr ip, .L2204 ldr ip, [ip, #2436] add r9, ip, r1 ldrh r9, [r9, #2] strh r9, [ip, r1] @ movhi - b .L2142 -.L2195: + b .L2150 +.L2203: ldr r1, [r8, #-460] mov r2, r2, asl #1 ldr r0, [r6, #4] str r0, [r1, r10] - ldr r1, .L2196 + ldr r1, .L2204 ldr r1, [r1, #2436] strh r5, [r1, r2] @ movhi -.L2144: +.L2152: sxth r3, r3 cmp r3, #0 - blt .L2124 - ldr r0, .L2196+24 + blt .L2132 + ldr r0, .L2204+24 ldrh r2, [r0, #-26] ldrh r1, [r0] sub r2, r2, #1 rsb r2, r1, r2 sxth r2, r2 cmp r3, r2 - bgt .L2124 + bgt .L2132 add r1, r1, #1 ldr r2, [r8, #-460] strh r1, [r0] @ movhi ldr r1, [r6, #4] str r1, [r2, r3, asl #2] mov r3, r3, asl #1 - ldr r2, .L2196 + ldr r2, .L2204 ldr r2, [r2, #2436] -.L2187: +.L2195: strh r5, [r2, r3] @ movhi - b .L2124 -.L2125: - ldr r2, .L2196+8 + b .L2132 +.L2133: + ldr r2, .L2204+8 movw r1, #65535 ldrh r0, [r2] cmp r0, r1 streqh r5, [r2] @ movhi - beq .L2188 + beq .L2196 ldrh r0, [r2, #4] cmp r0, r1 - beq .L2147 + beq .L2155 mov r1, #1 bl FtlFreeSysBlkQueueIn -.L2147: +.L2155: ldr r3, [r6, #4] ldr r2, [r8, #-3292] cmp r2, r3 - ldr r3, .L2196+8 + ldr r3, .L2204+8 strcsh r5, [r3, #4] @ movhi - bcs .L2124 + bcs .L2132 ldrh r2, [r3] strh r5, [r3] @ movhi strh r2, [r3, #4] @ movhi ldr r3, [r6, #4] -.L2188: +.L2196: str r3, [r7, #-3292] - b .L2124 -.L2121: - ldr r3, .L2196 + b .L2132 +.L2129: + ldr r3, .L2204 mov r0, r5 - ldrb r1, [r3, #144] @ zero_extendqisi2 + ldrb r1, [r3, #148] @ zero_extendqisi2 cmp r1, #0 - beq .L2149 -.L2190: + beq .L2157 +.L2198: mov r1, #0 -.L2149: +.L2157: bl FtlFreeSysBlkQueueIn -.L2124: +.L2132: ldr r3, [sp, #8] add r3, r3, #1 - b .L2189 -.L2115: + b .L2197 +.L2123: ldr r3, [sp, #4] add r5, r3, #1 uxth r3, r5 str r3, [sp, #4] - b .L2111 -.L2152: - ldr r3, .L2196+4 + b .L2119 +.L2160: + ldr r3, .L2204+4 ldr ip, [r3, #-472] ldrh r2, [ip] cmp r2, #0 - beq .L2154 -.L2157: + beq .L2162 +.L2165: ldr r0, [r0, #2436] - ldr r3, .L2196 + ldr r3, .L2204 ldrh r2, [r0] cmp r2, #0 - beq .L2155 - b .L2178 -.L2154: + beq .L2163 + b .L2186 +.L2162: sub r3, r3, #388 ldrh r3, [r3] cmp r3, #0 ldrne lr, [r1, #2416] - beq .L2157 -.L2158: + beq .L2165 +.L2166: uxth r3, r2 sxth r1, r3 cmp r1, lr - bcs .L2157 + bcs .L2165 mov r5, r1, asl #1 add r2, r2, #1 ldrh r5, [ip, r5] cmp r5, #0 - beq .L2158 + beq .L2166 mov r6, #0 -.L2159: +.L2167: ldr ip, [r0, #2416] sxth r2, r3 cmp r2, ip - bcs .L2157 + bcs .L2165 ldr lr, [r4, #-472] mov ip, r2, asl #1 rsb r5, r1, r2 @@ -12610,32 +12651,32 @@ FtlScanSysBlk: str r2, [lr, r5, asl #2] ldr r2, [r4, #-472] strh r6, [r2, ip] @ movhi - b .L2159 -.L2155: + b .L2167 +.L2163: movw r1, #2434 ldrh r1, [r3, r1] cmp r1, #0 movwne r1, #2408 ldrneh ip, [r3, r1] - beq .L2178 -.L2162: + beq .L2186 +.L2170: uxth r3, r2 sxth r1, r3 cmp r1, ip - bge .L2178 + bge .L2186 mov lr, r1, asl #1 add r2, r2, #1 ldrh lr, [r0, lr] cmp lr, #0 - beq .L2162 - ldr r0, .L2196 + beq .L2170 + ldr r0, .L2204 mov r7, #0 - ldr r6, .L2196+16 -.L2163: + ldr r6, .L2204+16 +.L2171: ldrh ip, [r6] sxth r2, r3 cmp r2, ip - bge .L2178 + bge .L2186 ldr lr, [r0, #2436] mov ip, r2, asl #1 rsb r5, r1, r2 @@ -12649,15 +12690,15 @@ FtlScanSysBlk: str r2, [lr, r5, asl #2] ldr r2, [r0, #2436] strh r7, [r2, ip] @ movhi - b .L2163 -.L2178: + b .L2171 +.L2186: mov r0, #0 add sp, sp, #36 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2197: +.L2205: .align 2 -.L2196: +.L2204: .word .LANCHOR0 .word .LANCHOR2 .word .LANCHOR2-3300 @@ -12677,16 +12718,16 @@ FtlLoadSysInfo: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r1, #0 - ldr r4, .L2227 + ldr r4, .L2235 .pad #36 sub sp, sp, #36 - ldr r6, .L2227+4 + ldr r6, .L2235+4 sub r7, r4, #3296 ldr r3, [r4, #-524] ldr r0, [r4, #-3544] - str r3, [r4, #1760] + str r3, [r4, #1768] ldr r3, [r4, #-500] - str r3, [r4, #1764] + str r3, [r4, #1772] movw r3, #2328 ldrh r2, [r6, r3] mov r2, r2, asl #1 @@ -12694,41 +12735,41 @@ FtlLoadSysInfo: ldrh r0, [r7, #-4] movw r3, #65535 cmp r0, r3 - bne .L2199 -.L2210: + bne .L2207 +.L2218: mvn r0, #0 - b .L2200 -.L2199: + b .L2208 +.L2207: mov r1, #1 bl FtlGetLastWrittenPage - ldr r3, .L2227+8 + ldr r3, .L2235+8 ldrh r9, [r7, #-4] mov r7, r4 uxth r5, r0 add r0, r0, #1 strh r0, [r3, #2] @ movhi -.L2201: +.L2209: sxth r3, r5 cmp r3, #0 - blt .L2209 + blt .L2217 sxth fp, r9 mov r1, #1 - ldr r0, .L2227+12 + ldr r0, .L2235+12 mov r2, r1 orr r3, r3, fp, asl #10 - str r3, [r4, #1756] + str r3, [r4, #1764] ldr r3, [r4, #-524] - str r3, [r4, #1760] + str r3, [r4, #1768] bl FlashReadPages - ldrb r3, [r6] @ zero_extendqisi2 + ldrb r3, [r6, #32] @ zero_extendqisi2 cmp r3, #0 - beq .L2202 - ldr r8, [r7, #1764] + beq .L2210 + ldr r8, [r7, #1772] ldr r3, [r8, #12] cmp r3, #0 - beq .L2202 - ldr r2, [r7, #1760] - ldr r10, .L2227+16 + beq .L2210 + ldr r2, [r7, #1768] + ldr r10, .L2235+16 str r3, [sp, #28] mov r0, r2 str r2, [sp, #24] @@ -12736,14 +12777,14 @@ FtlLoadSysInfo: bl js_hash ldr r3, [sp, #28] cmp r3, r0 - beq .L2202 + beq .L2210 cmp r5, #0 ldr r2, [sp, #24] - bne .L2203 - ldr ip, .L2227+8 + bne .L2211 + ldr ip, .L2235+8 ldrh r1, [ip, #4] cmp fp, r1 - beq .L2203 + beq .L2211 ldr r0, [r8] ldrh r1, [ip] str ip, [sp, #24] @@ -12754,48 +12795,48 @@ FtlLoadSysInfo: str r3, [sp, #12] str r0, [sp, #8] ldr r3, [r2] - ldr r0, .L2227+20 + ldr r0, .L2235+20 str r3, [sp, #16] - ldr r2, [r7, #1752] - ldr r3, [r7, #1756] + ldr r2, [r7, #1760] + ldr r3, [r7, #1764] bl printk ldrh r5, [r10, #-8] ldr ip, [sp, #24] ldrh r9, [ip, #4] - b .L2205 -.L2203: + b .L2213 +.L2211: mvn r3, #0 - str r3, [r4, #1752] -.L2202: - ldr r3, [r4, #1752] + str r3, [r4, #1760] +.L2210: + ldr r3, [r4, #1760] cmn r3, #1 - beq .L2205 + beq .L2213 ldr r3, [r7, #-524] - ldr r2, .L2227+24 + ldr r2, .L2235+24 ldr r3, [r3] cmp r3, r2 - bne .L2205 + bne .L2213 ldr r3, [r7, #-500] ldrh r2, [r3] movw r3, #61604 cmp r2, r3 - bne .L2205 -.L2209: - ldr r5, .L2227 + bne .L2213 +.L2217: + ldr r5, .L2235 mov r2, #48 - ldr r1, [r4, #1760] + ldr r1, [r4, #1768] movw r8, #2328 sub r0, r5, #3600 - ldr r7, .L2227+4 + ldr r7, .L2235+4 bl ftl_memcpy ldrh r2, [r6, r8] - ldr r1, [r4, #1760] + ldr r1, [r4, #1768] ldr r0, [r4, #-3544] add r1, r1, #48 mov r2, r2, asl #1 bl ftl_memcpy ldrh r2, [r6, r8] - ldr r1, [r4, #1760] + ldr r1, [r4, #1768] ldr r0, [r4, #-3368] mov r3, r2, asl #1 mov r2, r2, lsr #3 @@ -12807,9 +12848,9 @@ FtlLoadSysInfo: add r3, r7, #2432 ldrh r3, [r3] cmp r3, #0 - beq .L2207 + beq .L2215 ldrh r2, [r7, r8] - ldr r1, [r5, #1760] + ldr r1, [r5, #1768] ldr r0, [r5, #-448] mov r3, r2, lsr #3 add r3, r3, r2, asl #1 @@ -12820,17 +12861,17 @@ FtlLoadSysInfo: mov r2, r2, asl #2 add r1, r1, r3, asl #2 bl ftl_memcpy - b .L2207 -.L2205: + b .L2215 +.L2213: sub r5, r5, #1 uxth r5, r5 - b .L2201 -.L2207: + b .L2209 +.L2215: ldr r2, [r4, #-3600] - ldr r3, .L2227+24 - ldr r5, .L2227 + ldr r3, .L2235+24 + ldr r5, .L2235 cmp r2, r3 - bne .L2210 + bne .L2218 sub r7, r5, #3600 movw r1, #2342 ldrb r0, [r5, #-3590] @ zero_extendqisi2 @@ -12840,19 +12881,19 @@ FtlLoadSysInfo: ldrh r2, [r7, #8] cmp r0, r1 strh r2, [r3, #6] @ movhi - ldr r3, .L2227+4 - bne .L2210 + ldr r3, .L2235+4 + bne .L2218 movw r1, #2388 movw r0, #2394 ldrh r1, [r3, r1] ldrh r0, [r3, r0] add r3, r3, #2320 - str r2, [r5, #1788] + str r2, [r5, #1796] mul r1, r2, r1 str r1, [r3, #128] mul r1, r0, r1 str r1, [r3, #108] - ldr r1, .L2227+28 + ldr r1, .L2235+28 ldrh r0, [r1, #6] ldr r1, [r3, #12] rsb r0, r0, r1 @@ -12917,47 +12958,47 @@ FtlLoadSysInfo: strhi r3, [r5, #-3332] ldr r3, [r4, #-3564] cmp r3, r2 - ldrhi r2, .L2227 + ldrhi r2, .L2235 strhi r3, [r2, #-3328] movw r3, #65535 cmp r0, r3 - beq .L2213 - ldr r0, .L2227+32 + beq .L2221 + ldr r0, .L2235+32 bl make_superblock -.L2213: +.L2221: ldrh r2, [r6, #-4] movw r3, #65535 cmp r2, r3 - beq .L2214 - ldr r0, .L2227+36 + beq .L2222 + ldr r0, .L2235+36 bl make_superblock -.L2214: +.L2222: ldrh r2, [r8, #-4] movw r3, #65535 cmp r2, r3 - beq .L2215 - ldr r0, .L2227+40 + beq .L2223 + ldr r0, .L2235+40 bl make_superblock -.L2215: +.L2223: ldrh r2, [r7, #-4] movw r3, #65535 cmp r2, r3 - beq .L2216 - ldr r0, .L2227+44 + beq .L2224 + ldr r0, .L2235+44 bl make_superblock -.L2216: +.L2224: mov r0, #0 -.L2200: +.L2208: add sp, sp, #36 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2228: +.L2236: .align 2 -.L2227: +.L2235: .word .LANCHOR2 .word .LANCHOR0 .word .LANCHOR2-3300 - .word .LANCHOR2+1752 + .word .LANCHOR2+1760 .word .LANCHOR0+2398 .word .LC109 .word 1179929683 @@ -12978,28 +13019,28 @@ FtlDumpBlockInfo: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} movw r3, #2388 - ldr r5, .L2243 + ldr r5, .L2251 .pad #100 sub sp, sp, #100 ubfx r0, r0, #10, #16 mov r4, r1 - ldr r7, .L2243+4 + ldr r7, .L2251+4 ldrh r9, [r5, r3] bl P2V_block_in_plane - ldr r1, .L2243+8 + ldr r1, .L2251+8 mov r6, r0 - ldr r0, .L2243+12 + ldr r0, .L2251+12 bl printk ldr r2, [r7, #-3544] mov r3, r6, asl #1 mov r1, r6 - ldr r0, .L2243+16 + ldr r0, .L2251+16 ldrh r2, [r2, r3] bl printk add r0, sp, #96 strh r6, [r0, #-48]! @ movhi bl make_superblock - ldrb r2, [r5, #144] @ zero_extendqisi2 + ldrb r2, [r5, #148] @ zero_extendqisi2 clz r3, r4 cmp r2, #0 mov r3, r3, lsr #5 @@ -13007,24 +13048,24 @@ FtlDumpBlockInfo: cmp r3, #0 moveq r4, r3 str r7, [sp, #44] - beq .L2230 + beq .L2238 mov r0, r6 bl ftl_get_blk_mode cmp r0, #1 mov r4, r0 movweq r3, #2390 ldreqh r9, [r5, r3] -.L2230: +.L2238: movw r3, #2388 - ldr r0, .L2243+20 + ldr r0, .L2251+20 mov r1, r4 mov r2, r9 ldrh r3, [r5, r3] mov r6, #0 bl printk - ldr r8, .L2243+4 -.L2231: - ldr r3, .L2243+24 + ldr r8, .L2251+4 +.L2239: + ldr r3, .L2251+24 add r0, sp, #62 movw lr, #65535 mov r10, #36 @@ -13034,7 +13075,7 @@ FtlDumpBlockInfo: str r3, [sp, #28] ldr r3, [r8, #-2696] str r3, [sp, #32] - ldr r3, .L2243+28 + ldr r3, .L2251+28 ldrh r2, [r3] ldrh ip, [r3, #2] str r2, [sp, #36] @@ -13042,13 +13083,13 @@ FtlDumpBlockInfo: str r2, [sp, #40] mov r2, #0 mov r5, r2 -.L2232: +.L2240: uxth r3, r2 cmp r3, r7 - bcs .L2241 + bcs .L2249 ldrh r3, [r0, #2]! cmp r3, lr - beq .L2233 + beq .L2241 ldr r1, [sp, #28] orr r3, r6, r3, asl #10 mla r1, r10, r5, r1 @@ -13072,20 +13113,20 @@ FtlDumpBlockInfo: bic r3, r3, #3 add r3, fp, r3 str r3, [r1, #12] -.L2233: - add r2, r2, #1 - b .L2232 .L2241: + add r2, r2, #1 + b .L2240 +.L2249: ldr r0, [r8, #-536] mov r1, r5 mov r2, r4 mov r10, #0 bl FlashReadPages mov fp, #36 -.L2235: +.L2243: uxth r3, r10 cmp r3, r5 - bcs .L2242 + bcs .L2250 ldr r3, [sp, #44] mul r2, fp, r10 ldrh r1, [sp, #48] @@ -13105,25 +13146,25 @@ FtlDumpBlockInfo: ldr r3, [r0] str r3, [sp, #16] ldr r3, [r0, #4] - ldr r0, .L2243+32 + ldr r0, .L2251+32 str r3, [sp, #20] ldr r2, [lr, r2] ldr r3, [ip, #4] bl printk - b .L2235 -.L2242: + b .L2243 +.L2250: add r6, r6, #1 uxth r6, r6 cmp r6, r9 - bne .L2231 -.L2237: + bne .L2239 +.L2245: mov r0, #0 add sp, sp, #100 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2244: +.L2252: .align 2 -.L2243: +.L2251: .word .LANCHOR0 .word .LANCHOR2 .word .LANCHOR3+148 @@ -13146,18 +13187,18 @@ FtlScanAllBlock: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #92 sub sp, sp, #92 - ldr r0, .L2260 + ldr r0, .L2268 mov r7, #0 - ldr r1, .L2260+4 + ldr r1, .L2268+4 bl printk - ldr r5, .L2260+8 + ldr r5, .L2268+8 mov r6, r5 -.L2246: - ldr r3, .L2260+12 +.L2254: + ldr r3, .L2268+12 uxth r4, r7 ldrh r3, [r3] cmp r3, r4 - bls .L2256 + bls .L2264 add r8, sp, #88 mov r0, r4 movw r9, #65535 @@ -13169,11 +13210,11 @@ FtlScanAllBlock: mov r1, r4 ldrh r2, [ip, r2] mov r3, r0 - ldr r0, .L2260+16 + ldr r0, .L2268+16 bl printk mov r0, r8 bl make_superblock - ldr r3, .L2260+20 + ldr r3, .L2268+20 ldr lr, [r5, #-2692] ldrh r2, [r3] ldrh ip, [r3, #78] @@ -13186,14 +13227,14 @@ FtlScanAllBlock: str r2, [sp, #36] mov r2, #0 mov r4, r2 -.L2247: +.L2255: ldr r1, [sp, #28] uxth r3, r2 cmp r3, r1 - bcs .L2257 + bcs .L2265 ldrh r3, [r0, #2]! cmp r3, r9 - beq .L2248 + beq .L2256 ldr r1, [sp, #32] mov r3, r3, asl #10 mla r1, r10, r4, r1 @@ -13215,20 +13256,20 @@ FtlScanAllBlock: bic r3, r3, #3 add r3, lr, r3 str r3, [r1, #12] -.L2248: +.L2256: add r2, r2, #1 - b .L2247 -.L2257: + b .L2255 +.L2265: ldr r0, [r6, #-536] mov r1, r4 mov r2, #0 mov r8, #0 bl FlashReadPages mov r9, #36 -.L2250: +.L2258: uxth r3, r8 cmp r3, r4 - bcs .L2258 + bcs .L2266 mul r2, r9, r8 ldr lr, [r6, #-536] ldrh r1, [sp, #40] @@ -13247,23 +13288,23 @@ FtlScanAllBlock: ldr r3, [r0] str r3, [sp, #16] ldr r3, [r0, #4] - ldr r0, .L2260+24 + ldr r0, .L2268+24 str r3, [sp, #20] ldr r2, [lr, r2] ldr r3, [ip, #4] bl printk - b .L2250 -.L2258: + b .L2258 +.L2266: ldr r0, [r6, #-536] mov r1, r4 mov r2, #1 mov r8, #0 bl FlashReadPages mov r9, #36 -.L2252: +.L2260: uxth r3, r8 cmp r3, r4 - bcs .L2259 + bcs .L2267 mul r2, r9, r8 ldr lr, [r6, #-536] ldrh r1, [sp, #40] @@ -13282,23 +13323,23 @@ FtlScanAllBlock: ldr r3, [r0] str r3, [sp, #16] ldr r3, [r0, #4] - ldr r0, .L2260+28 + ldr r0, .L2268+28 str r3, [sp, #20] ldr r2, [lr, r2] ldr r3, [ip, #4] bl printk - b .L2252 -.L2259: + b .L2260 +.L2267: add r7, r7, #1 - b .L2246 -.L2256: + b .L2254 +.L2264: mov r0, #0 add sp, sp, #92 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2261: +.L2269: .align 2 -.L2260: +.L2268: .word .LC110 .word .LANCHOR3+168 .word .LANCHOR2 @@ -13319,78 +13360,78 @@ ftl_scan_all_ppa: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} .save {r4, r5, r6, r7, r8, r9, r10, lr} movw r3, #2386 - ldr r6, .L2281 + ldr r6, .L2289 .pad #24 sub sp, sp, #24 - ldr r5, .L2281+4 + ldr r5, .L2289+4 ldrh r4, [r6, r3] sub r4, r4, #16 -.L2263: - ldr r7, .L2281+8 +.L2271: + ldr r7, .L2289+8 ldrh r3, [r7] cmp r4, r3 - bge .L2279 + bge .L2287 uxth r8, r4 mov r0, r8 bl ftl_get_blk_mode - ldrb r3, [r6, #144] @ zero_extendqisi2 + ldrb r3, [r6, #148] @ zero_extendqisi2 cmp r3, #0 - beq .L2264 + beq .L2272 ldrh r3, [r7, #-58] cmp r4, r3 - bge .L2265 + bge .L2273 ldrh r3, [r7, #16] cmp r4, r3 - blt .L2265 -.L2264: + blt .L2273 +.L2272: cmp r0, #1 - bne .L2266 -.L2265: - ldr r3, .L2281+12 + bne .L2274 +.L2273: + ldr r3, .L2289+12 mov r9, #-2147483648 ldrh r7, [r3] - b .L2267 -.L2266: - ldr r3, .L2281+16 + b .L2275 +.L2274: + ldr r3, .L2289+16 mov r9, #0 ldrh r7, [r3] -.L2267: +.L2275: mov r1, r4 mov r2, r7 mov r3, r9 - ldr r0, .L2281+20 + ldr r0, .L2289+20 bl printk mov r0, r8 bl FtlBbmIsBadBlock cmp r0, #0 - beq .L2268 - ldr r0, .L2281+24 + beq .L2276 + ldr r0, .L2289+24 mov r1, r4 mov r2, r7 mov r3, r9 bl printk -.L2268: +.L2276: mov r10, r4, asl #10 mov r8, #0 -.L2269: +.L2277: cmp r8, r7 - beq .L2280 + beq .L2288 add r3, r9, r10 mov r2, #0 add r3, r3, r8 - str r3, [r5, #1756] + str r3, [r5, #1764] ldr r3, [r5, #-524] mov r1, #1 - ldr r0, .L2281+28 + ldr r0, .L2289+28 add r8, r8, #1 - str r2, [r5, #1752] - str r3, [r5, #1760] + str r2, [r5, #1760] + str r3, [r5, #1768] ldr r3, [r5, #-500] - str r3, [r5, #1764] + str r3, [r5, #1772] bl FlashReadPages - ldr r3, [r5, #1764] - ldr r2, [r5, #1760] - ldr r0, .L2281+32 + ldr r3, [r5, #1772] + ldr r2, [r5, #1768] + ldr r0, .L2289+32 ldr r1, [r3, #4] str r1, [sp] ldr r1, [r3, #8] @@ -13400,25 +13441,25 @@ ftl_scan_all_ppa: ldr r1, [r2] str r1, [sp, #12] ldr r2, [r2, #4] - ldr r1, [r5, #1756] + ldr r1, [r5, #1764] str r2, [sp, #16] - ldr r2, [r5, #1752] + ldr r2, [r5, #1760] ldr r3, [r3] bl printk - b .L2269 -.L2280: + b .L2277 +.L2288: add r4, r4, #1 - b .L2263 -.L2279: - ldr r0, .L2281+36 - ldr r1, .L2281+40 + b .L2271 +.L2287: + ldr r0, .L2289+36 + ldr r1, .L2289+40 add sp, sp, #24 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} b printk -.L2282: +.L2290: .align 2 -.L2281: +.L2289: .word .LANCHOR0 .word .LANCHOR2 .word .LANCHOR0+2386 @@ -13426,7 +13467,7 @@ ftl_scan_all_ppa: .word .LANCHOR0+2388 .word .LC117 .word .LC118 - .word .LANCHOR2+1752 + .word .LANCHOR2+1760 .word .LC119 .word .LC120 .word .LANCHOR3+184 @@ -13443,23 +13484,23 @@ FlashProgPages: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #76 sub sp, sp, #76 - ldr r6, .L2339 + ldr r6, .L2347 mov r4, r0 str r1, [sp, #8] mov r9, r2 str r3, [sp, #20] ldr ip, [r6, #44] - ldrb r7, [r6] @ zero_extendqisi2 + ldrb r7, [r6, #32] @ zero_extendqisi2 ldrb ip, [ip, #19] @ zero_extendqisi2 cmp r7, #0 str ip, [sp, #16] - ldr ip, .L2339+4 + ldr ip, .L2347+4 ldrb ip, [ip, #481] @ zero_extendqisi2 str ip, [sp, #12] - beq .L2284 + beq .L2292 bl FlashProgSlc2KPages - b .L2285 -.L2297: + b .L2293 +.L2305: mov r3, #36 mov r1, r9 mul r8, r3, r7 @@ -13478,26 +13519,26 @@ FlashProgPages: cmp r0, r3 mvncs r3, #0 strcs r3, [r4, r8] - bcc .L2336 -.L2287: + bcc .L2344 +.L2295: add r7, r7, #1 -.L2284: +.L2292: ldr r3, [sp, #8] - ldr r5, .L2339 + ldr r5, .L2347 cmp r7, r3 - bcc .L2297 - b .L2337 -.L2336: + bcc .L2305 + b .L2345 +.L2344: ldrb r3, [r6, #2240] @ zero_extendqisi2 cmp r3, #0 add r3, r6, r0, asl #4 ldr r3, [r3, #2108] moveq r10, #0 cmp r3, #0 - beq .L2289 + beq .L2297 uxtb r0, r0 bl FlashWaitCmdDone -.L2289: +.L2297: ldr r3, [sp, #32] mov r1, #0 cmp r10, #0 @@ -13516,49 +13557,49 @@ FlashProgPages: mov r0, r5 ldrb r3, [r6, #2230] @ zero_extendqisi2 cmp r3, #1 - bne .L2291 + bne .L2299 bl NandcWaitFlashReady - b .L2292 -.L2291: + b .L2300 +.L2299: bl NandcFlashCs mov r0, r5 ldr r3, [sp, #32] ldr r1, [sp, #28] add r3, r6, r3, asl #2 - ldr r2, [r3, #1172] + ldr r2, [r3, #1176] adds r2, r2, #0 movne r2, #1 bl FlashWaitReadyEN mov r0, r5 bl NandcFlashDeCs -.L2292: +.L2300: ldr r3, [sp, #16] sub r3, r3, #1 cmp r3, #7 - bhi .L2293 + bhi .L2301 add r3, r6, r5 ldrb r3, [r3, #2064] @ zero_extendqisi2 cmp r3, #0 - beq .L2293 + beq .L2301 mov r0, r5 - ldrb r1, [r6, #1211] @ zero_extendqisi2 - ldr r2, .L2339+8 + ldrb r1, [r6, #1213] @ zero_extendqisi2 + ldr r2, .L2347+8 mov r3, #0 bl HynixSetRRPara -.L2293: +.L2301: mov r0, r5 bl NandcFlashCs cmp r9, #1 mov r0, r5 - bne .L2294 - ldrb r3, [r6, #144] @ zero_extendqisi2 + bne .L2302 + ldrb r3, [r6, #148] @ zero_extendqisi2 cmp r3, #0 - beq .L2294 + beq .L2302 bl flash_enter_slc_mode - b .L2295 -.L2294: + b .L2303 +.L2302: bl flash_exit_slc_mode -.L2295: +.L2303: mov r0, r5 ldr r1, [sp, #28] bl FlashProgFirstCmd @@ -13570,7 +13611,7 @@ FlashProgPages: ldr r3, [fp, #8] bl NandcXferData cmp r10, #0 - beq .L2296 + beq .L2304 mov r0, r5 ldr r1, [sp, #28] bl FlashProgDpFirstCmd @@ -13580,11 +13621,11 @@ FlashProgPages: ldr r3, [sp, #32] ldr r1, [sp, #28] add r3, r6, r3, asl #2 - ldr r2, [r3, #1172] + ldr r2, [r3, #1176] adds r2, r2, #0 movne r2, #1 bl FlashWaitReadyEN - ldr r1, [r6, #4] + ldr r1, [r6, #36] mov r0, r5 ldr r3, [sp, #28] add r1, r1, r3 @@ -13596,57 +13637,57 @@ FlashProgPages: ldr r2, [sp, #12] ldr r3, [r8, #8] bl NandcXferData -.L2296: +.L2304: mov r0, r5 ldr r1, [sp, #28] bl FlashProgSecondCmd mov r0, r5 bl NandcFlashDeCs add r7, r7, r10 - b .L2287 -.L2337: - ldr r8, .L2339+12 + b .L2295 +.L2345: + ldr r8, .L2347+12 mov r6, #0 mov r7, r5 -.L2298: +.L2306: ldrb r3, [r5, #2230] @ zero_extendqisi2 cmp r6, r3 - bcs .L2338 + bcs .L2346 uxtb r0, r6 bl FlashWaitCmdDone cmp r9, #1 - bne .L2299 - ldrb r3, [r7, #144] @ zero_extendqisi2 + bne .L2307 + ldrb r3, [r7, #148] @ zero_extendqisi2 cmp r3, #0 - beq .L2299 + beq .L2307 ldrb r0, [r8, r6, asl #4] @ zero_extendqisi2 bl flash_exit_slc_mode -.L2299: +.L2307: add r6, r6, #1 - b .L2298 -.L2338: + b .L2306 +.L2346: ldr r3, [sp, #20] cmp r3, #0 - bne .L2301 -.L2309: + bne .L2309 +.L2317: mov r0, #0 - b .L2285 -.L2301: - ldr r5, .L2339+16 + b .L2293 +.L2309: + ldr r5, .L2347+16 mov r6, #0 mov r7, r5 -.L2302: +.L2310: ldr r3, [sp, #8] cmp r6, r3 - beq .L2309 + beq .L2317 ldr r3, [r4] cmn r3, #1 - bne .L2303 + bne .L2311 ldr r1, [r4, #4] - ldr r0, .L2339+20 + ldr r0, .L2347+20 bl printk - b .L2304 -.L2303: + b .L2312 +.L2311: ldr r3, [sp, #8] mov r1, r9 add r2, sp, #28 @@ -13656,11 +13697,11 @@ FlashProgPages: str r3, [sp] add r3, sp, #32 bl LogAddr2PhyAddr - ldr r2, [r5, #1724] + ldr r2, [r5, #1732] mov r3, #0 mov lr, r4 str r3, [r2] - ldr r2, [r5, #1728] + ldr r2, [r5, #1736] str r3, [r2] ldmia lr!, {r0, r1, r2, r3} add ip, sp, #36 @@ -13672,60 +13713,60 @@ FlashProgPages: mov r1, #1 mov r2, r9 str r3, [ip] - ldr r3, [r5, #1724] + ldr r3, [r5, #1732] str r3, [sp, #44] - ldr r3, [r5, #1728] + ldr r3, [r5, #1736] str r3, [sp, #48] bl FlashReadPages ldr r8, [sp, #36] cmn r8, #1 - bne .L2305 - ldr r0, .L2339+24 + bne .L2313 + ldr r0, .L2347+24 ldr r1, [r4, #4] bl printk str r8, [r4] -.L2305: +.L2313: ldr r3, [r4, #12] cmp r3, #0 - beq .L2306 + beq .L2314 ldr r2, [r3] - ldr r3, [r7, #1728] + ldr r3, [r7, #1736] ldr r3, [r3] cmp r2, r3 - beq .L2306 - ldr r0, .L2339+28 + beq .L2314 + ldr r0, .L2347+28 ldr r1, [r4, #4] bl printk mvn r3, #0 str r3, [r4] -.L2306: +.L2314: ldr r3, [r4, #8] cmp r3, #0 - beq .L2304 + beq .L2312 ldr r2, [r3] - ldr r3, [r7, #1724] + ldr r3, [r7, #1732] ldr r3, [r3] cmp r2, r3 - beq .L2304 - ldr r0, .L2339+32 + beq .L2312 + ldr r0, .L2347+32 ldr r1, [r4, #4] bl printk mvn r3, #0 str r3, [r4] -.L2304: +.L2312: add r6, r6, #1 add r4, r4, #36 - b .L2302 -.L2285: + b .L2310 +.L2293: add sp, sp, #76 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2340: +.L2348: .align 2 -.L2339: +.L2347: .word .LANCHOR0 .word .LANCHOR1 - .word .LANCHOR0+1214 + .word .LANCHOR0+1216 .word .LANCHOR0+2100 .word .LANCHOR2 .word .LC104 @@ -13745,12 +13786,12 @@ FlashTestBlk: .save {r4, r5, lr} .pad #108 sub sp, sp, #108 - ldr r5, .L2345 - ldr r3, [r5, #1708] + ldr r5, .L2353 + ldr r3, [r5, #1716] cmp r0, r3 movcc r4, #0 - bcc .L2342 - ldr r3, [r5, #1716] + bcc .L2350 + ldr r3, [r5, #1724] mov r4, r0 mov r1, #165 add r0, sp, #40 @@ -13760,7 +13801,7 @@ FlashTestBlk: bl ftl_memset mov r1, #90 mov r2, #8 - ldr r0, [r5, #1716] + ldr r0, [r5, #1724] mov r4, r4, asl #10 bl ftl_memset mov r1, #1 @@ -13781,14 +13822,14 @@ FlashTestBlk: movne r4, #1 rsb r4, r4, #0 bl FlashEraseBlocks -.L2342: +.L2350: mov r0, r4 add sp, sp, #108 @ sp needed ldmfd sp!, {r4, r5, pc} -.L2346: +.L2354: .align 2 -.L2345: +.L2353: .word .LANCHOR2 .fnend .size FlashTestBlk, .-FlashTestBlk @@ -13803,83 +13844,86 @@ FlashMakeFactorBbt: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #84 sub sp, sp, #84 - ldr r5, .L2403 + ldr r5, .L2411 mov r1, #1 - ldr r4, .L2403+4 - ldr r0, .L2403+8 - ldr r3, [r5, #1720] - ldrh r8, [r4, #128] + ldr r4, .L2411+4 + ldr r0, .L2411+8 + ldr r3, [r5, #1728] + ldrh r2, [r4, #132] str r3, [sp, #20] - ldrh r3, [r4, #130] - smulbb r8, r8, r3 + ldrh r3, [r4, #134] + smulbb r3, r2, r3 + uxth r3, r3 + str r3, [sp, #4] ldr r3, [r4, #44] ldrb r3, [r3, #24] @ zero_extendqisi2 - uxth r8, r8 str r3, [sp, #24] - ldrh r3, [r4, #4] + ldrh r3, [r4, #36] str r3, [sp, #16] - ldrb r3, [r4] @ zero_extendqisi2 - ldr r4, .L2403+4 + ldrb r3, [r4, #32] @ zero_extendqisi2 + ldr r4, .L2411+4 cmp r3, #1 ldreq r3, [sp, #16] moveq r3, r3, asl #1 uxtheq r3, r3 streq r3, [sp, #16] bl printk - ldr r0, [r5, #1720] + ldr r0, [r5, #1728] mov r1, #0 mov r2, #4096 bl ftl_memset - ldr r5, .L2403 - mov r3, r8, lsr #4 + ldr r5, .L2411 + ldr r3, [sp, #4] + mov r3, r3, lsr #4 str r3, [sp, #28] mov r3, #0 str r3, [sp, #8] -.L2349: +.L2357: ldrb r7, [sp, #8] @ zero_extendqisi2 ldrb r3, [r4, #2230] @ zero_extendqisi2 cmp r3, r7 - bls .L2399 - ldr r2, .L2403+12 + bls .L2407 + ldr r2, .L2411+12 mov r3, r7, asl #1 ldrh r6, [r2, r3] cmp r6, #0 - bne .L2379 - ldrh r2, [r4, #136] + bne .L2387 + ldrh r2, [r4, #140] mov r1, r6 - ldr r0, [r5, #1688] + ldr r0, [r5, #1696] mov r9, r6 + mov r8, r6 mov r2, r2, asl #9 bl ftl_memset add r3, r4, r7 ldrb r10, [r3, #2232] @ zero_extendqisi2 mov r3, r7, asl #2 add fp, r4, r3 - str r6, [sp, #4] str r3, [sp, #32] -.L2351: - ldrh r3, [sp, #4] - cmp r3, r8 +.L2359: + ldr r2, [sp, #4] + uxth r3, r9 str r3, [sp, #12] - bcs .L2361 + cmp r3, r2 + bcs .L2369 mvn r3, #0 strb r3, [sp, #42] strb r3, [sp, #43] ldr r3, [sp, #24] tst r3, #1 - beq .L2353 - ldr r3, [fp, #1172] + beq .L2361 + ldr r3, [fp, #1176] add r2, sp, #42 mov r0, r10 add r3, r6, r3 str r3, [sp, #36] mov r1, r3 bl FlashReadSpare - ldrb r2, [r4] @ zero_extendqisi2 + ldrb r2, [r4, #32] @ zero_extendqisi2 cmp r2, #1 ldr r3, [sp, #36] - bne .L2353 - ldr r1, [r4, #4] + bne .L2361 + ldr r1, [r4, #36] add r2, sp, #43 mov r0, r10 add r1, r3, r1 @@ -13888,67 +13932,67 @@ FlashMakeFactorBbt: ldrb r2, [sp, #43] @ zero_extendqisi2 and r3, r3, r2 strb r3, [sp, #42] -.L2353: +.L2361: ldr r3, [sp, #24] tst r3, #2 - beq .L2355 + beq .L2363 ldr r3, [r4, #44] mov r0, r10 add r2, sp, #43 ldrh r1, [r3, #10] - ldr r3, [fp, #1172] + ldr r3, [fp, #1176] sub r1, r1, #1 add r1, r1, r3 add r1, r1, r6 bl FlashReadSpare -.L2355: +.L2363: ldr r2, [r4, #44] ldrb r3, [r2, #7] @ zero_extendqisi2 cmp r3, #1 cmpne r3, #8 ldrb r3, [sp, #42] @ zero_extendqisi2 - beq .L2356 + beq .L2364 ldrb r2, [r2, #18] @ zero_extendqisi2 cmp r2, #12 - bne .L2357 -.L2356: + bne .L2365 +.L2364: cmp r3, #0 ldrneb r0, [sp, #43] @ zero_extendqisi2 clzne r0, r0 movne r0, r0, lsr #5 - bne .L2358 - b .L2378 -.L2357: + bne .L2366 + b .L2386 +.L2365: cmp r3, #255 - bne .L2378 + bne .L2386 ldrb r0, [sp, #43] @ zero_extendqisi2 subs r0, r0, #255 movne r0, #1 - b .L2358 -.L2378: + b .L2366 +.L2386: mov r0, #1 -.L2358: +.L2366: ldr r3, [sp, #24] tst r3, #4 - beq .L2359 - ldr r3, .L2403+4 + beq .L2367 + ldr r3, .L2411+4 mov r0, r10 ldr r2, [sp, #32] add r3, r3, r2 - ldr r1, [r3, #1172] + ldr r1, [r3, #1176] add r1, r6, r1 bl SandiskProgTestBadBlock -.L2359: +.L2367: cmp r0, #0 - beq .L2360 + beq .L2368 mov r1, r7 - ldr r2, [sp, #4] - ldr r0, .L2403+16 - add r9, r9, #1 + mov r2, r9 + ldr r0, .L2411+16 + add r8, r8, #1 bl printk - ldr r1, [r5, #1688] + ldr r1, [r5, #1696] mov ip, #1 - uxth r9, r9 + uxth r8, r8 ldr r3, [sp, #12] mov r0, r3, lsr #5 and r3, r3, #31 @@ -13958,50 +14002,48 @@ FlashMakeFactorBbt: str r3, [r1, r0, asl #2] ldrb r3, [r4, #2230] @ zero_extendqisi2 mul r3, r3, r2 - cmp r9, r3 - bgt .L2361 -.L2360: - ldr r3, [sp, #4] - add r3, r3, #1 - str r3, [sp, #4] + cmp r8, r3 + bgt .L2369 +.L2368: ldr r3, [sp, #16] + add r9, r9, #1 add r6, r6, r3 - b .L2351 -.L2361: - mov r2, r9 - ldr r0, .L2403+20 + b .L2359 +.L2369: + mov r2, r8 + ldr r0, .L2411+20 mov r1, r7 bl printk ldrb r3, [r4, #2230] @ zero_extendqisi2 ldr r2, [sp, #28] mul r3, r3, r2 - cmp r9, r3 - blt .L2363 - ldrh r2, [r4, #136] + cmp r8, r3 + ldr r8, .L2411+4 + blt .L2371 + ldrh r2, [r4, #140] mov r1, #0 - ldr r0, [r5, #1688] + ldr r0, [r5, #1696] mov r2, r2, asl #9 bl ftl_memset -.L2363: +.L2371: cmp r7, #0 - bne .L2365 - ldr r3, [r5, #1708] + bne .L2373 + ldr r3, [r5, #1716] mov r6, r7 mov r9, #1 uxth r10, r3 -.L2366: - ldr r3, .L2403+4 - ldrb r3, [r3, #1] @ zero_extendqisi2 +.L2374: + ldrb r3, [r8, #33] @ zero_extendqisi2 cmp r3, r10 - bls .L2400 + bls .L2408 mov r0, r10 bl FlashTestBlk cmp r0, #0 - beq .L2367 + beq .L2375 mov r1, r10 - ldr r0, .L2403+24 + ldr r0, .L2411+24 bl printk - ldr r1, [r5, #1688] + ldr r1, [r5, #1696] mov r0, r10, lsr #5 add r6, r6, #1 and r3, r10, #31 @@ -14009,84 +14051,85 @@ FlashMakeFactorBbt: uxth r6, r6 orr r3, r2, r9, asl r3 str r3, [r1, r0, asl #2] -.L2367: +.L2375: add r10, r10, #1 uxth r10, r10 - b .L2366 -.L2400: - sub fp, r8, #1 - sub r9, r8, #50 + b .L2374 +.L2408: + ldr r3, [sp, #4] mov r10, #1 + sub fp, r3, #1 + sub r9, r3, #50 uxth fp, fp -.L2369: +.L2377: cmp fp, r9 - ble .L2401 + ble .L2409 mov r0, fp bl FlashTestBlk cmp r0, #0 - beq .L2370 + beq .L2378 mov r1, fp - ldr r0, .L2403+24 + ldr r0, .L2411+24 bl printk - ldr r1, [r5, #1688] + ldr r1, [r5, #1696] mov r0, fp, lsr #5 and r3, fp, #31 ldr r2, [r1, r0, asl #2] orr r3, r2, r10, asl r3 str r3, [r1, r0, asl #2] -.L2370: +.L2378: sub fp, fp, #1 uxth fp, fp - b .L2369 -.L2401: - ldr r3, .L2403+4 - ldr r2, [r5, #1708] - ldrb r3, [r3, #1] @ zero_extendqisi2 + b .L2377 +.L2409: + ldrb r3, [r8, #33] @ zero_extendqisi2 + ldr r2, [r5, #1716] rsb r3, r2, r3 cmp r6, r3 - bcc .L2365 - ldrh r2, [r4, #136] + bcc .L2373 + ldrh r2, [r4, #140] mov r1, #0 - ldr r0, [r5, #1688] + ldr r0, [r5, #1696] mov r2, r2, asl #9 bl ftl_memset -.L2365: - ldrb r6, [sp, #8] @ zero_extendqisi2 - sub r10, r8, #1 - ldr r9, .L2403+12 - uxth r10, r10 - mul r6, r8, r6 - add r9, r9, r7, asl #1 .L2373: + ldr r3, [sp, #4] + ldrb r6, [sp, #8] @ zero_extendqisi2 + sub r9, r3, #1 + ldr r8, .L2411+12 + mul r6, r3, r6 + uxth r9, r9 + add r8, r8, r7, asl #1 +.L2381: mov r1, r7 - ldr r0, .L2403+28 - mov r2, r10 + ldr r0, .L2411+28 + mov r2, r9 bl printk - ldr r1, [r5, #1688] -.L2374: - mov r2, r10, lsr #5 - and r3, r10, #31 + ldr r1, [r5, #1696] +.L2382: + mov r2, r9, lsr #5 + and r3, r9, #31 ldr r2, [r1, r2, asl #2] mov r3, r2, lsr r3 ands r3, r3, #1 - subne r10, r10, #1 - uxthne r10, r10 - bne .L2374 -.L2402: + subne r9, r9, #1 + uxthne r9, r9 + bne .L2382 +.L2410: ldr r1, [sp, #20] add r0, sp, #44 - ldr r2, .L2403+32 - strh r10, [r9] @ movhi - strh r10, [r1, #2] @ movhi + ldr r2, .L2411+32 + strh r9, [r8] @ movhi + strh r9, [r1, #2] @ movhi strh r2, [r1] @ movhi strh r3, [r1, #8] @ movhi mov r1, #1 - ldr r3, [r5, #1688] + ldr r3, [r5, #1696] mov r2, r1 str r3, [sp, #52] - ldr r3, [r5, #1720] + ldr r3, [r5, #1728] str r3, [sp, #56] - add r3, r10, r6 + add r3, r9, r6 mov r3, r3, asl #10 str r3, [sp, #48] bl FlashEraseBlocks @@ -14097,25 +14140,25 @@ FlashMakeFactorBbt: bl FlashProgPages ldr r3, [sp, #44] cmp r3, #0 - subne r10, r10, #1 - uxthne r10, r10 - bne .L2373 -.L2379: + subne r9, r9, #1 + uxthne r9, r9 + bne .L2381 +.L2387: ldr r3, [sp, #8] add r3, r3, #1 str r3, [sp, #8] - b .L2349 -.L2399: + b .L2357 +.L2407: add sp, sp, #84 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2404: +.L2412: .align 2 -.L2403: +.L2411: .word .LANCHOR2 .word .LANCHOR0 .word .LC121 - .word .LANCHOR2+1736 + .word .LANCHOR2+1744 .word .LC122 .word .LC123 .word .LC124 @@ -14134,15 +14177,15 @@ FtlLowFormatEraseBlock: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #28 sub sp, sp, #28 - ldr r9, .L2455 - ldr fp, .L2455+4 + ldr r9, .L2463 + ldr fp, .L2463+4 ldr r5, [r9, #-3616] ldrb r3, [fp, #2240] @ zero_extendqisi2 cmp r5, #0 str r3, [sp, #16] movne r0, #0 - bne .L2406 - ldrb r3, [fp, #144] @ zero_extendqisi2 + bne .L2414 + ldrb r3, [fp, #148] @ zero_extendqisi2 mov r6, fp add fp, fp, #2400 mov r10, r9 @@ -14153,18 +14196,18 @@ FtlLowFormatEraseBlock: str r0, [sp, #4] str r3, [sp, #8] str r0, [r10, #-548] -.L2407: - ldr ip, .L2455+4 +.L2415: + ldr ip, .L2463+4 add r1, ip, #2320 ldrh r0, [r1] uxth r1, r9 cmp r0, r1 - bls .L2450 + bls .L2458 mul r0, r8, r1 ldr ip, [r10, #-3612] mov r3, #0 str r3, [ip, r0] - ldr r3, .L2455+4 + ldr r3, .L2463+4 add r1, r3, r1 ldrb r0, [r1, #2348] @ zero_extendqisi2 ldr r1, [sp, #4] @@ -14172,17 +14215,17 @@ FtlLowFormatEraseBlock: ldr r3, [sp] mov r7, r0 cmp r3, #0 - beq .L2408 + beq .L2416 bl IsBlkInVendorPart cmp r0, #0 - bne .L2409 -.L2408: + bne .L2417 +.L2416: mov r0, r7 bl FtlBbmIsBadBlock cmp r0, #0 addne r4, r4, #1 uxthne r4, r4 - bne .L2409 + bne .L2417 ldr ip, [r10, #-3612] mov r7, r7, asl #10 ldrh r1, [fp] @@ -14199,12 +14242,12 @@ FtlLowFormatEraseBlock: bic r1, r1, #3 add r1, r0, r1 str r1, [ip, #12] -.L2409: +.L2417: add r9, r9, #1 - b .L2407 -.L2450: + b .L2415 +.L2458: cmp r5, #0 - beq .L2430 + beq .L2438 ldr r3, [sp, #8] mov r2, r5 ldr r0, [r10, #-3612] @@ -14219,39 +14262,39 @@ FtlLowFormatEraseBlock: ldrb r3, [sp, #16] @ zero_extendqisi2 ldr ip, [sp, #8] strb r3, [ip, #2240] -.L2413: +.L2421: uxth r2, r8 cmp r2, r5 - bcs .L2451 + bcs .L2459 mul r2, r9, r8 ldr r1, [r10, #-3612] add r0, r1, r2 ldr r2, [r1, r2] cmn r2, #1 - bne .L2414 + bne .L2422 ldr r0, [r0, #4] add r4, r4, #1 ubfx r0, r0, #10, #16 uxth r4, r4 bl FtlBbmMapBadBlock -.L2414: +.L2422: add r8, r8, #1 - b .L2413 -.L2451: + b .L2421 +.L2459: ldr r3, [sp] cmp r3, #0 - bne .L2416 + bne .L2424 mov r3, #6 uxth r7, r7 str r3, [sp, #12] mov r3, #1 str r3, [sp, #8] - b .L2417 -.L2416: + b .L2425 +.L2424: movw r3, #2390 ldrh r3, [r6, r3] str r3, [sp, #8] - ldrb r3, [r6, #144] @ zero_extendqisi2 + ldrb r3, [r6, #148] @ zero_extendqisi2 cmp r3, #0 ldreq r3, [sp, #8] moveq r7, #1 @@ -14259,26 +14302,26 @@ FtlLowFormatEraseBlock: strne r7, [sp, #12] moveq r3, r3, lsr #2 streq r3, [sp, #12] -.L2417: - ldr r10, .L2455 +.L2425: + ldr r10, .L2463 mov r5, #0 mov r8, r10 -.L2426: +.L2434: mov fp, #0 mov r6, fp -.L2418: - ldr r9, .L2455+4 +.L2426: + ldr r9, .L2463+4 add r3, r9, #2320 ldrh r1, [r3] uxth r3, fp cmp r1, r3 - bls .L2452 + bls .L2460 mov r2, #36 ldr r0, [r10, #-3612] mul r1, r2, r3 mov r2, #0 str r2, [r0, r1] - ldr r2, .L2455+4 + ldr r2, .L2463+4 ldr r1, [sp, #4] add r3, r2, r3 ldrb r0, [r3, #2348] @ zero_extendqisi2 @@ -14286,22 +14329,22 @@ FtlLowFormatEraseBlock: ldr r3, [sp] mov r9, r0 cmp r3, #0 - beq .L2419 + beq .L2427 bl IsBlkInVendorPart cmp r0, #0 - bne .L2420 -.L2419: + bne .L2428 +.L2427: mov r0, r9 bl FtlBbmIsBadBlock cmp r0, #0 - bne .L2420 + bne .L2428 ldr r1, [r8, #-3612] mov r3, #36 add r9, r5, r9, asl #10 mla r1, r3, r6, r1 ldr r3, [r8, #-508] str r3, [r1, #8] - ldr r3, .L2455+8 + ldr r3, .L2463+8 str r9, [r1, #4] ldrh r3, [r3] mul r3, r3, r6 @@ -14314,12 +14357,12 @@ FtlLowFormatEraseBlock: bic r3, r3, #3 add r3, r0, r3 str r3, [r1, #12] -.L2420: +.L2428: add fp, fp, #1 - b .L2418 -.L2452: + b .L2426 +.L2460: cmp r6, #0 - beq .L2430 + beq .L2438 mov r2, r7 mov r3, #1 ldr r0, [r10, #-3612] @@ -14330,17 +14373,17 @@ FtlLowFormatEraseBlock: mov r2, #36 ldrb r3, [sp, #16] @ zero_extendqisi2 strb r3, [r9, #2240] - ldr r9, .L2455 -.L2423: + ldr r9, .L2463 +.L2431: uxth r3, fp cmp r3, r6 - bcs .L2453 + bcs .L2461 mul r3, r2, fp ldr r1, [r8, #-3612] add r0, r1, r3 ldr r3, [r1, r3] cmp r3, #0 - beq .L2424 + beq .L2432 ldr r0, [r0, #4] add r4, r4, #1 str r2, [sp, #20] @@ -14348,59 +14391,59 @@ FtlLowFormatEraseBlock: uxth r4, r4 bl FtlBbmMapBadBlock ldr r2, [sp, #20] -.L2424: +.L2432: add fp, fp, #1 - b .L2423 -.L2453: + b .L2431 +.L2461: ldr r3, [sp, #12] add r5, r5, r3 ldr r3, [sp, #8] uxth r5, r5 cmp r5, r3 - bcc .L2426 + bcc .L2434 mov r5, #0 mov r8, #36 -.L2427: +.L2435: uxth r3, r5 cmp r3, r6 ldr r3, [sp] - bcs .L2454 + bcs .L2462 cmp r3, #0 - beq .L2428 + beq .L2436 mul r3, r8, r5 ldr r2, [r9, #-3612] add r1, r2, r3 ldr r3, [r2, r3] cmp r3, #0 - bne .L2428 + bne .L2436 ldr r0, [r1, #4] mov r1, #1 ubfx r0, r0, #10, #16 bl FtlFreeSysBlkQueueIn -.L2428: +.L2436: add r5, r5, #1 - b .L2427 -.L2454: + b .L2435 +.L2462: adds r1, r3, #0 ldr r3, [sp, #4] movne r1, #1 cmp r3, #63 orrls r1, r1, #1 cmp r1, #0 - beq .L2430 + beq .L2438 ldr r0, [r9, #-3612] mov r1, r7 mov r2, r6 bl FlashEraseBlocks -.L2430: +.L2438: mov r0, r4 -.L2406: +.L2414: add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2456: +.L2464: .align 2 -.L2455: +.L2463: .word .LANCHOR2 .word .LANCHOR0 .word .LANCHOR0+2400 @@ -14417,150 +14460,147 @@ FtlBbmTblFlush: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #20 sub sp, sp, #20 - ldr r4, .L2475 + ldr r4, .L2483 ldr r5, [r4, #-3616] cmp r5, #0 - bne .L2459 + bne .L2467 ldr r3, [r4, #-500] mov r1, r5 - ldr r2, .L2475+4 + ldr r2, .L2483+4 sub r9, r4, #436 ldr r0, [r4, #-524] - str r3, [r4, #1764] + str r3, [r4, #1772] movw r3, #2398 ldrh r2, [r2, r3] - str r0, [r4, #1760] + str r0, [r4, #1768] bl ftl_memset - ldr r6, .L2475+8 - sub r8, r6, #134 -.L2460: - ldrh r3, [r8] - ldr r7, .L2475+4 + ldr r6, .L2483+8 + sub r7, r6, #134 +.L2468: + ldrh r3, [r7] + ldr r8, .L2483+4 cmp r5, r3 - bge .L2474 + bge .L2482 ldrh r2, [r9] - ldr r3, [r4, #1760] + ldr r3, [r4, #1768] ldr r1, [r6, #4]! mul r0, r2, r5 mov r2, r2, asl #2 add r5, r5, #1 add r0, r3, r0, asl #2 bl ftl_memcpy - b .L2460 -.L2474: - ldr r9, [r4, #1764] + b .L2468 +.L2482: + ldr r5, [r4, #1772] mov r1, #255 mov r2, #16 - ldr r5, .L2475+12 - ldr r10, .L2475 - mov r6, #0 - mov r0, r9 + ldr r6, .L2483+12 + ldr fp, .L2483 + mov r7, #0 + mov r0, r5 + mov r10, r7 bl ftl_memset - ldr r3, .L2475+16 - mov r8, r5 - strh r3, [r9] @ movhi - ldr r3, [r7, #2460] - str r3, [r9, #4] + ldr r3, .L2483+16 + strh r3, [r5] @ movhi + ldr r3, [r8, #2460] + str r3, [r5, #4] movw r3, #2452 - ldrh r3, [r7, r3] - strh r3, [r9, #2] @ movhi - ldrh r3, [r5, #4] - strh r3, [r9, #8] @ movhi - ldrh r3, [r5, #6] - strh r3, [r9, #10] @ movhi - ldr r3, [r7, #2316] - strh r3, [r9, #12] @ movhi - str r6, [sp, #12] -.L2462: + ldrh r3, [r8, r3] + strh r3, [r5, #2] @ movhi + ldrh r3, [r6, #4] + strh r3, [r5, #8] @ movhi + ldrh r3, [r6, #6] + strh r3, [r5, #10] @ movhi + ldr r3, [r8, #2316] + strh r3, [r5, #12] @ movhi +.L2470: ldr r3, [r4, #-524] - mov fp, #0 - ldrh r1, [r5] - ldrh r2, [r5, #2] - str r3, [r4, #1760] + mov ip, #0 + ldrh r1, [r6] + ldrh r2, [r6, #2] + str r3, [r4, #1768] ldr r3, [r4, #-500] - str fp, [r4, #1752] - str r3, [r4, #1764] + str ip, [r4, #1760] + str ip, [sp, #12] + str r3, [r4, #1772] orr r3, r2, r1, asl #10 - ldrh r0, [r9, #10] - str r3, [r4, #1756] - ldrh r3, [r5, #4] + ldrh r0, [r5, #10] + str r3, [r4, #1764] + ldrh r3, [r6, #4] str r0, [sp] - ldr r0, .L2475+20 + ldr r0, .L2483+20 bl printk - ldr r3, .L2475+24 - ldrh r2, [r5, #2] - ldrh r3, [r3] + ldr r9, .L2483+12 + ldrh r2, [r6, #2] + ldrh r3, [r9, #-62] sub r3, r3, #1 cmp r2, r3 - blt .L2463 - ldr r3, [r7, #2460] + ldr ip, [sp, #12] + blt .L2471 + ldr r3, [r8, #2460] mov r1, #1 - ldrh r2, [r8] + ldrh r2, [r9] add r3, r3, #1 - ldr r0, [r10, #-3612] - str r3, [r7, #2460] - str r3, [r9, #4] - ldrh r3, [r8, #4] - strh r2, [r9, #8] @ movhi - strh r2, [r8, #4] @ movhi + ldr r0, [fp, #-3612] + str r3, [r8, #2460] + str r3, [r5, #4] + ldrh r3, [r9, #4] + strh r2, [r5, #8] @ movhi + strh r2, [r9, #4] @ movhi mov r2, r1 - strh r3, [r8] @ movhi + strh r3, [r9] @ movhi mov r3, r3, asl #10 - str r3, [r10, #1756] + str r3, [fp, #1764] str r3, [r0, #4] - strh fp, [r8, #2] @ movhi + strh ip, [r9, #2] @ movhi bl FlashEraseBlocks -.L2463: +.L2471: + ldr r9, .L2483 mov r1, #1 - ldr r0, .L2475+28 mov r3, r1 mov r2, r1 + add r0, r9, #1760 bl FlashProgPages - ldrh r3, [r5, #2] - ldr fp, .L2475 + ldrh r3, [r6, #2] add r3, r3, #1 - strh r3, [r5, #2] @ movhi - ldr r3, [r4, #1752] + strh r3, [r6, #2] @ movhi + ldr r3, [r4, #1760] cmn r3, #1 - bne .L2464 - add r6, r6, #1 - ldr r0, .L2475+32 - ldr r1, [r10, #1756] - uxth r6, r6 + bne .L2472 + add r7, r7, #1 + ldr r0, .L2483+24 + ldr r1, [fp, #1764] + uxth r7, r7 bl printk - cmp r6, #3 - bls .L2462 - ldr r0, .L2475+36 - mov r2, r6 - ldr r1, [fp, #1756] + cmp r7, #3 + bls .L2470 + ldr r0, .L2483+28 + mov r2, r7 + ldr r1, [r9, #1764] bl printk mov r3, #1 - str r3, [fp, #-3616] - b .L2459 -.L2464: - ldr r2, [sp, #12] - add r2, r2, #1 - str r2, [sp, #12] - cmp r2, #1 - beq .L2462 + str r3, [r9, #-3616] + b .L2467 +.L2472: + add r10, r10, #1 + cmp r10, #1 + beq .L2470 cmp r3, #256 - beq .L2462 -.L2459: + beq .L2470 +.L2467: mov r0, #0 add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2476: +.L2484: .align 2 -.L2475: +.L2483: .word .LANCHOR2 .word .LANCHOR0 .word .LANCHOR0+2476 .word .LANCHOR0+2452 .word -3887 .word .LC126 - .word .LANCHOR0+2390 - .word .LANCHOR2+1752 .word .LC127 .word .LC128 .fnend @@ -14576,18 +14616,18 @@ allocate_data_superblock: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #20 sub sp, sp, #20 - ldr r4, .L2532 + ldr r4, .L2540 ldr r3, [r4, #-3616] cmp r3, #0 - bne .L2478 + bne .L2486 mov r5, r0 mov r8, r4 -.L2479: - ldr r3, .L2532+4 - ldr r10, .L2532+8 +.L2487: + ldr r3, .L2540+4 + ldr r10, .L2540+8 cmp r5, r3 ldrb r2, [r5, #8] @ zero_extendqisi2 - bne .L2480 + bne .L2488 ldrh r3, [r5, #-100] ldr ip, [r8, #-2708] mov r0, r3, lsr #1 @@ -14597,69 +14637,69 @@ allocate_data_superblock: ldr lr, [r10, #2244] cmp lr, #0 uxth r1, r1 - beq .L2481 + beq .L2489 ldr lr, [r8, #-3308] cmp lr, #39 - bhi .L2481 + bhi .L2489 cmp lr, #2 - bls .L2506 + bls .L2514 cmp ip, #0 movne r3, #0 andeq r3, r3, #1 cmp r3, #0 moveq r1, r0 - beq .L2481 - b .L2506 -.L2480: + beq .L2489 + b .L2514 +.L2488: cmp r2, #1 - bne .L2506 - ldr r1, .L2532+12 + bne .L2514 + ldr r1, .L2540+12 ldrh r1, [r1] cmp r1, #1 - beq .L2506 - ldrb r1, [r10, #144] @ zero_extendqisi2 + beq .L2514 + ldrb r1, [r10, #148] @ zero_extendqisi2 cmp r1, #0 - bne .L2506 + bne .L2514 ldr r0, [r10, #2244] ldrh r3, [r3, #-100] cmp r0, #0 mov r1, r3, lsr #3 - beq .L2481 + beq .L2489 ldr r0, [r8, #-3308] cmp r0, #1 rsbls r3, r3, r3, asl #3 ubfxls r1, r3, #3, #16 -.L2481: +.L2489: cmp r1, #0 subne r1, r1, #1 uxthne r1, r1 - b .L2482 -.L2506: + b .L2490 +.L2514: mov r1, #0 -.L2482: - ldr r0, .L2532+16 +.L2490: + ldr r0, .L2540+16 bl List_pop_index_node - ldr r2, .L2532+20 + ldr r2, .L2540+20 ldrh r3, [r2] sub r3, r3, #1 strh r3, [r2] @ movhi - ldr r3, .L2532+24 + ldr r3, .L2540+24 ldrh r3, [r3] uxth r9, r0 cmp r3, r9 - bls .L2479 + bls .L2487 ldr r3, [r8, #-3544] mov r7, r9, asl #1 ldrh r6, [r3, r7] cmp r6, #0 - bne .L2479 + bne .L2487 strh r9, [r5] @ movhi mov r0, r5 bl make_superblock ldrb r3, [r5, #7] @ zero_extendqisi2 cmp r3, #0 - beq .L2484 - ldr r2, .L2532+28 + beq .L2492 + ldr r2, .L2540+28 add ip, r5, #14 ldr r0, [r8, #-3612] ldrh lr, [r2] @@ -14668,14 +14708,14 @@ allocate_data_superblock: mla r1, r2, lr, r0 mov lr, r6 str r1, [sp] - b .L2485 -.L2484: + b .L2493 +.L2492: ldr r3, [r8, #-3544] - b .L2527 -.L2485: + b .L2535 +.L2493: ldr r1, [sp] cmp r3, r1 - beq .L2529 + beq .L2537 str lr, [r3, #8] movw fp, #65535 str lr, [r3, #12] @@ -14687,9 +14727,9 @@ allocate_data_superblock: addne r6, r6, #1 uxthne r6, r6 strne r1, [fp, #4] - b .L2485 -.L2529: - ldr r3, .L2532+32 + b .L2493 +.L2537: + ldr r3, .L2540+32 ldr r2, [r10, #2244] rsb r3, r3, r5 clz r3, r3 @@ -14697,19 +14737,19 @@ allocate_data_superblock: mov r3, r3, lsr #5 moveq r3, #0 cmp r3, #0 - beq .L2488 + beq .L2496 ldr r3, [r8, #-3608] ldrh r3, [r3, r7] cmp r3, #40 movhi r3, #0 strhib r3, [r8, #-3516] -.L2488: +.L2496: ldrb r3, [r5, #8] @ zero_extendqisi2 ldr r2, [r4, #-3608] cmp r3, #0 - ldr fp, .L2532+36 + ldr fp, .L2540+36 ldrh r3, [r2, r7] - bne .L2489 + bne .L2497 cmp r3, #0 mov r0, r9 ldrneh r1, [fp] @@ -14722,8 +14762,8 @@ allocate_data_superblock: add r3, r3, #1 str r3, [r4, #-3324] bl ftl_set_blk_mode - b .L2491 -.L2489: + b .L2499 +.L2497: add r3, r3, #1 strh r3, [r2, r7] @ movhi ldr r2, [r4, #-3368] @@ -14736,7 +14776,7 @@ allocate_data_superblock: and r3, r9, #31 orr r3, ip, r0, asl r3 str r3, [r2, r1, asl #2] -.L2491: +.L2499: ldr r3, [r4, #-3608] ldr r2, [r4, #-3312] ldr r0, [r4, #-3324] @@ -14746,7 +14786,7 @@ allocate_data_superblock: strhi r3, [r8, #-3312] ldr r3, [r4, #-3320] mla r0, r0, r2, r3 - ldr r3, .L2532+24 + ldr r3, .L2540+24 ldrh r1, [r3] bl __aeabi_uidiv ldr r2, [r4, #-480] @@ -14759,18 +14799,18 @@ allocate_data_superblock: mla r3, r3, r6, r1 add r3, r3, #40 str r0, [r4, #-3316] -.L2493: +.L2501: add r2, r2, #36 cmp r2, r3 ldrne r1, [r2, #-36] bicne r1, r1, #1020 bicne r1, r1, #3 strne r1, [r2, #-36] - bne .L2493 -.L2530: - ldrb r3, [r10, #144] @ zero_extendqisi2 + bne .L2501 +.L2538: + ldrb r3, [r10, #148] @ zero_extendqisi2 cmp r3, #0 - beq .L2495 + beq .L2503 ldrb r3, [r5, #8] @ zero_extendqisi2 mov r2, r6 ldr r0, [r4, #-3612] @@ -14778,7 +14818,7 @@ allocate_data_superblock: moveq r1, #0 movne r1, #1 bl FlashEraseBlocks -.L2495: +.L2503: ldrb r1, [r5, #8] @ zero_extendqisi2 mov r2, r6 ldr r0, [r4, #-3612] @@ -14787,16 +14827,16 @@ allocate_data_superblock: add r1, r5, #16 mov r2, fp mov ip, #36 -.L2497: +.L2505: uxth r3, fp cmp r3, r6 - bcs .L2531 + bcs .L2539 mul r3, ip, fp ldr lr, [r4, #-3612] add r0, lr, r3 ldr r3, [lr, r3] cmn r3, #1 - bne .L2498 + bne .L2506 ldr r0, [r0, #4] add r2, r2, #1 stmib sp, {r1, r3, ip} @@ -14810,26 +14850,26 @@ allocate_data_superblock: ldrb r3, [r5, #7] @ zero_extendqisi2 sub r3, r3, #1 strb r3, [r5, #7] -.L2498: +.L2506: add fp, fp, #1 add r1, r1, #2 - b .L2497 -.L2531: + b .L2505 +.L2539: cmp r2, #0 - beq .L2500 + beq .L2508 mov r0, r9 bl update_multiplier_value bl FtlBbmTblFlush -.L2500: +.L2508: ldrb r3, [r5, #7] @ zero_extendqisi2 cmp r3, #0 - bne .L2501 + bne .L2509 ldr r3, [r4, #-3544] -.L2527: +.L2535: mvn r2, #0 strh r2, [r3, r7] @ movhi - b .L2479 -.L2501: + b .L2487 +.L2509: movw r2, #2388 ldrh r2, [r10, r2] strh r9, [r5] @ movhi @@ -14847,14 +14887,14 @@ allocate_data_superblock: ldrh r2, [r5] mov r2, r2, asl #1 strh r3, [r1, r2] @ movhi -.L2478: +.L2486: mov r0, #0 add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2533: +.L2541: .align 2 -.L2532: +.L2540: .word .LANCHOR2 .word .LANCHOR2-3428 .word .LANCHOR0 @@ -14874,43 +14914,43 @@ FtlGcFreeBadSuperBlk: .fnstart @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2548 + ldr r3, .L2556 stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 ldrh r2, [r3, #-2] cmp r2, #0 - beq .L2536 + beq .L2544 sub r10, r3, #2 mov r7, r0 mov r9, #0 mov r5, r3 mov r8, r10 -.L2535: - ldr r3, .L2548+4 +.L2543: + ldr r3, .L2556+4 add r2, r3, #2320 ldrh r1, [r2] uxth r2, r9 cmp r1, r2 - bls .L2545 + bls .L2553 add r3, r3, r2 mov r1, r7 mov fp, #0 ldrb r0, [r3, #2348] @ zero_extendqisi2 bl V2P_block mov r6, r0 -.L2537: +.L2545: ldrh r3, [r10] uxth r4, fp cmp r3, r4 - bls .L2546 + bls .L2554 mov r3, r4, asl #1 add ip, r5, r3 ldrh r3, [r5, r3] cmp r3, r6 - bne .L2538 + bne .L2546 mov r1, r6 - ldr r0, .L2548+8 + ldr r0, .L2556+8 str ip, [sp, #4] bl printk mov r0, r6 @@ -14919,32 +14959,32 @@ FtlGcFreeBadSuperBlk: ldrh r2, [r10] ldr ip, [sp, #4] mov r3, ip -.L2539: +.L2547: cmp r4, r2 ldrcch r1, [r3, #2] addcc r4, r4, #1 uxthcc r4, r4 strcch r1, [r3], #2 @ movhi - bcc .L2539 -.L2547: + bcc .L2547 +.L2555: sub r2, r2, #1 strh r2, [r8] @ movhi -.L2538: - add fp, fp, #1 - b .L2537 .L2546: + add fp, fp, #1 + b .L2545 +.L2554: add r9, r9, #1 - b .L2535 -.L2545: + b .L2543 +.L2553: bl FtlGcReFreshBadBlk -.L2536: +.L2544: mov r0, #0 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2549: +.L2557: .align 2 -.L2548: +.L2556: .word .LANCHOR2-2656 .word .LANCHOR0 .word .LC129 @@ -14957,7 +14997,7 @@ update_vpc_list: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L2560 + ldr r2, .L2568 stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r3, r0, asl #1 @@ -14965,27 +15005,27 @@ update_vpc_list: mov r4, r0 ldrh r3, [r1, r3] cmp r3, #0 - bne .L2551 + bne .L2559 sub r1, r2, #3280 ldrh r0, [r1, #-4] cmp r0, r4 mvneq r3, #0 streqh r3, [r1, #-4] @ movhi - beq .L2553 + beq .L2561 sub r1, r2, #3520 ldrh r1, [r1, #-4] cmp r1, r4 - beq .L2559 + beq .L2567 sub r1, r2, #3472 ldrh r1, [r1, #-4] cmp r1, r4 - beq .L2559 + beq .L2567 sub r2, r2, #3424 ldrh r2, [r2, #-4] cmp r2, r4 - beq .L2559 -.L2553: - ldr r5, .L2560+4 + beq .L2567 +.L2561: + ldr r5, .L2568+4 mov r1, r4 sub r0, r5, #12 bl List_remove_node @@ -14998,14 +15038,14 @@ update_vpc_list: bl FtlGcFreeBadSuperBlk mov r0, #1 ldmfd sp!, {r3, r4, r5, pc} -.L2551: - bl List_update_data_list .L2559: + bl List_update_data_list +.L2567: mov r0, #0 ldmfd sp!, {r3, r4, r5, pc} -.L2561: +.L2569: .align 2 -.L2560: +.L2568: .word .LANCHOR2 .word .LANCHOR2-3536 .fnend @@ -15022,17 +15062,17 @@ decrement_vpc_count: movw r3, #65535 cmp r0, r3 mov r4, r0 - beq .L2563 - ldr r6, .L2573 + beq .L2571 + ldr r6, .L2581 mov r5, r0, asl #1 ldr r3, [r6, #-3544] ldrh r2, [r3, r5] cmp r2, #0 subne r2, r2, #1 strneh r2, [r3, r5] @ movhi - bne .L2563 + bne .L2571 mov r1, r4 - ldr r0, .L2573+4 + ldr r0, .L2581+4 bl printk ldr r3, [r6, #-3544] sub r7, r6, #3520 @@ -15042,7 +15082,7 @@ decrement_vpc_count: strh r2, [r3, r5] @ movhi bl test_node_in_list cmp r0, #0 - beq .L2565 + beq .L2573 mov r1, r4 sub r0, r7, #12 bl List_remove_node @@ -15052,34 +15092,34 @@ decrement_vpc_count: strh r3, [r7, #-8] @ movhi bl INSERT_DATA_LIST ldr r3, [r6, #-3544] - ldr r0, .L2573+8 + ldr r0, .L2581+8 mov r1, r4 ldrh r2, [r3, r5] bl printk -.L2565: +.L2573: mov r0, r4 bl FtlGcRefreshBlock - b .L2568 -.L2563: - ldr r5, .L2573+12 + b .L2576 +.L2571: + ldr r5, .L2581+12 movw r3, #65535 ldrh r0, [r5] cmp r0, r3 streqh r4, [r5] @ movhi - beq .L2568 + beq .L2576 cmp r0, r4 - beq .L2568 + beq .L2576 bl update_vpc_list strh r4, [r5] @ movhi adds r0, r0, #0 movne r0, #1 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L2568: +.L2576: mov r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L2574: +.L2582: .align 2 -.L2573: +.L2581: .word .LANCHOR2 .word .LC130 .word .LC131 @@ -15104,16 +15144,16 @@ FtlSlcSuperblockCheck: ldmeqfd sp!, {r3, r4, r5, r6, r7, pc} ldrb r3, [r0, #6] @ zero_extendqisi2 mov r4, r0 - ldr r5, .L2588 - ldr r6, .L2588+4 + ldr r5, .L2596 + ldr r6, .L2596+4 add r3, r0, r3, asl #1 add r7, r5, #2320 ldrh r3, [r3, #16] -.L2579: +.L2587: movw r1, #65535 cmp r3, r1 - bne .L2587 -.L2581: + bne .L2595 +.L2589: ldrb r3, [r4, #6] @ zero_extendqisi2 ldrh r2, [r7] add r3, r3, #1 @@ -15128,19 +15168,19 @@ FtlSlcSuperblockCheck: ldrb r3, [r4, #6] @ zero_extendqisi2 add r3, r4, r3, asl #1 ldrh r3, [r3, #16] - b .L2579 -.L2587: + b .L2587 +.L2595: ldrb r2, [r4, #8] @ zero_extendqisi2 cmp r2, #1 - bne .L2582 - ldrb r3, [r5, #144] @ zero_extendqisi2 + bne .L2590 + ldrb r3, [r5, #148] @ zero_extendqisi2 cmp r3, #0 - bne .L2582 + bne .L2590 ldrh r3, [r4, #2] mov r3, r3, asl #1 ldrh r3, [r6, r3] cmp r3, r1 - bne .L2582 + bne .L2590 ldrh r3, [r4, #4] ldrh r0, [r4] sub r3, r3, #1 @@ -15148,15 +15188,15 @@ FtlSlcSuperblockCheck: bl decrement_vpc_count ldrh r2, [r4, #4] cmp r2, #0 - bne .L2581 + bne .L2589 ldrh r3, [r4, #2] strb r2, [r4, #6] add r3, r3, #1 strh r3, [r4, #2] @ movhi ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L2582: - ldr r1, .L2588 - ldrb r3, [r1, #144] @ zero_extendqisi2 +.L2590: + ldr r1, .L2596 + ldrb r3, [r1, #148] @ zero_extendqisi2 cmp r3, #0 ldmeqfd sp!, {r3, r4, r5, r6, r7, pc} cmp r2, #1 @@ -15166,7 +15206,7 @@ FtlSlcSuperblockCheck: ldrh r3, [r1, r3] cmp r2, r3 ldmccfd sp!, {r3, r4, r5, r6, r7, pc} - ldr r2, .L2588+8 + ldr r2, .L2596+8 ldrh r3, [r4] ldrh ip, [r4, #4] ldr r0, [r2, #-3544] @@ -15181,9 +15221,9 @@ FtlSlcSuperblockCheck: strb r3, [r4, #6] strh r2, [r4, #2] @ movhi ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L2589: +.L2597: .align 2 -.L2588: +.L2596: .word .LANCHOR0 .word .LANCHOR2-2620 .word .LANCHOR2 @@ -15202,17 +15242,17 @@ get_new_active_ppa: strb r3, [r0, #10] mov r4, r0 ldrb r3, [r0, #6] @ zero_extendqisi2 - ldr r7, .L2608 - ldr r9, .L2608+4 + ldr r7, .L2616 + ldr r9, .L2616+4 add r3, r0, r3, asl #1 sub r8, r7, #2320 ldrh r2, [r3, #16] -.L2591: +.L2599: movw r1, #65535 cmp r2, r1 - ldr r6, .L2608 - bne .L2607 -.L2592: + ldr r6, .L2616 + bne .L2615 +.L2600: ldrb r3, [r4, #6] @ zero_extendqisi2 ldrh r2, [r7] add r3, r3, #1 @@ -15227,35 +15267,35 @@ get_new_active_ppa: ldrb r3, [r4, #6] @ zero_extendqisi2 add r3, r4, r3, asl #1 ldrh r2, [r3, #16] - b .L2591 -.L2607: + b .L2599 +.L2615: ldrb r3, [r4, #8] @ zero_extendqisi2 ldrh r5, [r4, #2] cmp r3, #1 ldrh r3, [r4, #4] - bne .L2594 - ldrb r0, [r8, #144] @ zero_extendqisi2 + bne .L2602 + ldrb r0, [r8, #148] @ zero_extendqisi2 cmp r0, #0 - bne .L2594 + bne .L2602 mov r0, r5, asl #1 ldrh r0, [r9, r0] cmp r0, r1 - bne .L2594 + bne .L2602 sub r3, r3, #1 ldrh r0, [r4] strh r3, [r4, #4] @ movhi bl decrement_vpc_count - b .L2592 -.L2594: - ldr r7, .L2608+8 + b .L2600 +.L2602: + ldr r7, .L2616+8 orr r5, r5, r2, asl #10 sub r3, r3, #1 strh r3, [r4, #4] @ movhi -.L2595: +.L2603: ldrb r3, [r4, #6] @ zero_extendqisi2 movw r2, #65535 ldrh r0, [r6] -.L2597: +.L2605: add r3, r3, #1 uxtb r3, r3 cmp r3, r0 @@ -15266,40 +15306,40 @@ get_new_active_ppa: add r1, r4, r3, asl #1 ldrh r1, [r1, #16] cmp r1, r2 - beq .L2597 + beq .L2605 strb r3, [r4, #6] ldrb r3, [r4, #8] @ zero_extendqisi2 cmp r3, #1 - bne .L2602 - ldrb r3, [r7, #144] @ zero_extendqisi2 + bne .L2610 + ldrb r3, [r7, #148] @ zero_extendqisi2 cmp r3, #0 - bne .L2599 + bne .L2607 ldrh r3, [r4, #2] - ldr r2, .L2608+4 + ldr r2, .L2616+4 mov r3, r3, asl #1 ldrh r2, [r2, r3] movw r3, #65535 cmp r2, r3 - bne .L2599 + bne .L2607 ldrh r3, [r4, #4] cmp r3, #0 - beq .L2599 + beq .L2607 sub r3, r3, #1 ldrh r0, [r4] strh r3, [r4, #4] @ movhi bl decrement_vpc_count - b .L2595 -.L2599: - ldr r1, .L2608+8 - ldrb r3, [r1, #144] @ zero_extendqisi2 + b .L2603 +.L2607: + ldr r1, .L2616+8 + ldrb r3, [r1, #148] @ zero_extendqisi2 cmp r3, #0 - beq .L2602 + beq .L2610 movw r3, #2390 ldrh r2, [r4, #2] ldrh r3, [r1, r3] cmp r2, r3 - bcc .L2602 - ldr r2, .L2608+12 + bcc .L2610 + ldr r2, .L2616+12 ldrh r3, [r4] ldrh ip, [r4, #4] ldr r0, [r2, #-3544] @@ -15313,12 +15353,12 @@ get_new_active_ppa: strh r3, [r4, #4] @ movhi strb r3, [r4, #6] strh r2, [r4, #2] @ movhi -.L2602: +.L2610: mov r0, r5 ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, pc} -.L2609: +.L2617: .align 2 -.L2608: +.L2616: .word .LANCHOR0+2320 .word .LANCHOR2-2620 .word .LANCHOR0 @@ -15334,29 +15374,29 @@ FtlVpcTblFlush: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} - ldr r4, .L2628 + ldr r4, .L2636 ldr r3, [r4, #-3616] cmp r3, #0 - bne .L2612 + bne .L2620 ldr r2, [r4, #-524] sub r6, r4, #3600 ldr r7, [r4, #-500] mov r1, #255 - ldr r5, .L2628+4 - str r2, [r4, #1760] + ldr r5, .L2636+4 + str r2, [r4, #1768] sub r2, r4, #3296 - str r7, [r4, #1764] + str r7, [r4, #1772] ldrh r2, [r2, #-4] str r3, [r7, #12] strh r2, [r7, #2] @ movhi - ldr r2, .L2628+8 + ldr r2, .L2636+8 strh r2, [r7] @ movhi ldr r2, [r4, #-3292] stmib r7, {r2, r3} - ldr r3, .L2628+12 + ldr r3, .L2636+12 ldrh r2, [r6, #78] str r3, [r4, #-3600] - ldr r3, .L2628+16 + ldr r3, .L2636+16 str r3, [r4, #-3596] add r3, r6, #300 ldrh r3, [r3, #6] @@ -15386,7 +15426,7 @@ FtlVpcTblFlush: strh r3, [r6, #22] @ movhi ldrh r2, [r6, #174] ldrb r3, [r4, #-3422] @ zero_extendqisi2 - ldr r0, [r4, #1760] + ldr r0, [r4, #1768] orr r3, r3, r2, asl #6 strh r3, [r6, #24] @ movhi ldrb r3, [r4, #-3420] @ zero_extendqisi2 @@ -15408,16 +15448,16 @@ FtlVpcTblFlush: mov r1, r6 mov r2, #48 movw r6, #2328 - ldr r0, [r4, #1760] + ldr r0, [r4, #1768] bl ftl_memcpy ldrh r2, [r5, r6] - ldr r0, [r4, #1760] + ldr r0, [r4, #1768] ldr r1, [r4, #-3544] mov r2, r2, asl #1 add r0, r0, #48 bl ftl_memcpy ldrh r2, [r5, r6] - ldr r0, [r4, #1760] + ldr r0, [r4, #1768] ldr r1, [r4, #-3368] mov r3, r2, asl #1 mov r2, r2, lsr #3 @@ -15429,9 +15469,9 @@ FtlVpcTblFlush: add r3, r5, #2432 ldrh r3, [r3] cmp r3, #0 - beq .L2613 + beq .L2621 ldrh r2, [r5, r6] - ldr r0, [r4, #1760] + ldr r0, [r4, #1768] ldr r1, [r4, #-452] mov r3, r2, lsr #3 add r3, r3, r2, asl #1 @@ -15442,27 +15482,27 @@ FtlVpcTblFlush: mov r2, r2, asl #2 add r0, r0, r3, asl #2 bl ftl_memcpy -.L2613: +.L2621: mov r0, #0 - ldr r8, .L2628 + ldr r8, .L2636 bl FtlUpdateVaildLpn - ldr r10, .L2628+20 + ldr r10, .L2636+20 mov r6, #0 movw r9, #65535 -.L2614: +.L2622: ldr r3, [r4, #-524] ldrh r2, [r10] - ldr fp, .L2628+24 - str r3, [r4, #1760] + ldr fp, .L2636+24 + str r3, [r4, #1768] ldr r3, [r4, #-500] ldrh r1, [r10, #2] - str r3, [r4, #1764] + str r3, [r4, #1772] orr r3, r1, r2, asl #10 - str r3, [r4, #1756] + str r3, [r4, #1764] ldrh r3, [fp] sub r3, r3, #1 cmp r1, r3 - blt .L2615 + blt .L2623 mov r3, #0 ldrh r9, [r10, #4] strh r3, [r10, #2] @ movhi @@ -15474,33 +15514,33 @@ FtlVpcTblFlush: str r3, [r8, #-3292] mov r2, r0, asl #10 strh r0, [r10] @ movhi - str r2, [r8, #1756] + str r2, [r8, #1764] str r3, [r7, #4] strh r0, [r7, #2] @ movhi -.L2615: - ldrb r3, [r5] @ zero_extendqisi2 +.L2623: + ldrb r3, [r5, #32] @ zero_extendqisi2 cmp r3, #0 - beq .L2616 - ldr r3, .L2628+28 + beq .L2624 + ldr r3, .L2636+28 ldr r0, [r4, #-524] ldrh r1, [r3] bl js_hash str r0, [r7, #12] -.L2616: +.L2624: mov r1, #1 - ldr r0, .L2628+32 + ldr r0, .L2636+32 mov r2, r1 mov r3, r1 bl FlashProgPages - ldr r3, .L2628+20 - ldr r2, .L2628+20 + ldr r3, .L2636+20 + ldr r2, .L2636+20 ldrh r3, [r3, #2] add r3, r3, #1 uxth r3, r3 strh r3, [r2, #2] @ movhi - ldr r2, [r4, #1752] + ldr r2, [r4, #1760] cmn r2, #1 - bne .L2617 + bne .L2625 cmp r3, #1 add r6, r6, #1 ldreqh r3, [fp] @@ -15508,30 +15548,30 @@ FtlVpcTblFlush: subeq r3, r3, #1 streqh r3, [r10, #2] @ movhi cmp r6, #3 - bls .L2614 - ldr r0, .L2628+36 + bls .L2622 + ldr r0, .L2636+36 mov r2, r6 - ldr r1, [r4, #1756] + ldr r1, [r4, #1764] bl printk mov r3, #1 str r3, [r4, #-3616] - b .L2612 -.L2617: + b .L2620 +.L2625: cmp r2, #256 cmpne r3, #1 - beq .L2614 + beq .L2622 movw r3, #65535 cmp r9, r3 - beq .L2612 + beq .L2620 mov r0, r9 mov r1, #1 bl FtlFreeSysBlkQueueIn -.L2612: +.L2620: mov r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2629: +.L2637: .align 2 -.L2628: +.L2636: .word .LANCHOR2 .word .LANCHOR0 .word -3932 @@ -15540,7 +15580,7 @@ FtlVpcTblFlush: .word .LANCHOR2-3300 .word .LANCHOR0+2390 .word .LANCHOR0+2398 - .word .LANCHOR2+1752 + .word .LANCHOR2+1760 .word .LC132 .fnend .size FtlVpcTblFlush, .-FtlVpcTblFlush @@ -15555,22 +15595,22 @@ FtlSuperblockPowerLostFix: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #44 sub sp, sp, #44 - ldr r5, .L2647 + ldr r5, .L2655 ldr r3, [r5, #-3616] cmp r3, #0 - bne .L2630 - ldr r8, .L2647+4 - ldrb r6, [r8, #144] @ zero_extendqisi2 + bne .L2638 + ldr r8, .L2655+4 + ldrb r6, [r8, #148] @ zero_extendqisi2 cmp r6, #0 - beq .L2646 + beq .L2654 ldrb r6, [r0, #8] @ zero_extendqisi2 cmp r6, #1 ldreqh fp, [r0, #4] - beq .L2632 + beq .L2640 mov r6, r3 -.L2646: +.L2654: mov fp, #12 -.L2632: +.L2640: ldr r7, [r5, #-500] mvn r3, #0 str r3, [sp, #20] @@ -15579,7 +15619,7 @@ FtlSuperblockPowerLostFix: movw r2, #61589 str r7, [sp, #16] mov r4, r0 - ldr r10, .L2647 + ldr r10, .L2655 str r3, [sp, #12] mvn r3, #2 str r3, [r7, #8] @@ -15590,16 +15630,16 @@ FtlSuperblockPowerLostFix: strh r3, [r7, #2] @ movhi ldr r3, [r5, #-524] str r2, [r3] - ldr r2, .L2647+8 + ldr r2, .L2655+8 ldr r3, [r5, #-524] str r2, [r3, #4] -.L2633: +.L2641: subs fp, fp, #1 - bcc .L2636 + bcc .L2644 ldrh r3, [r4, #4] cmp r3, #0 - bne .L2634 -.L2636: + bne .L2642 +.L2644: ldrh r3, [r4] ldr r1, [r5, #-3544] ldrh r0, [r4, #4] @@ -15613,13 +15653,13 @@ FtlSuperblockPowerLostFix: mov r3, #0 strb r3, [r4, #6] strh r3, [r4, #4] @ movhi - b .L2630 -.L2634: + b .L2638 +.L2642: mov r0, r4 bl get_new_active_ppa cmn r0, #1 str r0, [sp, #8] - beq .L2636 + beq .L2644 ldr r3, [r5, #-3328] mov r1, #1 mov r2, r6 @@ -15633,14 +15673,14 @@ FtlSuperblockPowerLostFix: bl FlashProgPages ldrh r0, [r4] bl decrement_vpc_count - b .L2633 -.L2630: + b .L2641 +.L2638: add sp, sp, #44 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2648: +.L2656: .align 2 -.L2647: +.L2655: .word .LANCHOR2 .word .LANCHOR0 .word 305419896 @@ -15663,17 +15703,17 @@ ftl_map_blk_gc: ldrh r3, [r4, #10] ldrh r2, [r4, #8] sub r3, r3, #4 - ldr r8, .L2663 + ldr r8, .L2671 cmp r2, r3 - blt .L2650 + blt .L2658 uxth r0, r0 mov r0, r0, asl #1 ldrh r10, [r5, r0] cmp r10, #0 - beq .L2650 + beq .L2658 ldr r3, [r4, #32] cmp r3, #0 - bne .L2650 + bne .L2658 mov r2, #1 str r2, [r4, #32] strh r3, [r5, r0] @ movhi @@ -15684,88 +15724,88 @@ ftl_map_blk_gc: movw r3, #2390 ldrh r3, [r8, r3] cmp r2, r3 - bcc .L2651 + bcc .L2659 mov r0, r4 bl ftl_map_blk_alloc_new_blk -.L2651: - ldr r5, .L2663+4 +.L2659: + ldr r5, .L2671+4 mov fp, #0 -.L2652: +.L2660: ldrh r3, [r4, #6] uxth r6, fp cmp r3, r6 - bls .L2662 + bls .L2670 ldr r3, [r7, r6, asl #2] add ip, r7, r6, asl #2 cmp r10, r3, lsr #10 - bne .L2653 + bne .L2661 ldr r3, [r5, #-520] mov r1, #1 ldr r9, [r5, #-500] mov r2, r1 - ldr r0, .L2663+8 - str r3, [r5, #1760] - str r9, [r5, #1764] + ldr r0, .L2671+8 + str r3, [r5, #1768] + str r9, [r5, #1772] ldr r3, [r7, r6, asl #2] str ip, [sp, #4] - str r3, [r5, #1756] + str r3, [r5, #1764] bl FlashReadPages - ldr r3, [r5, #1752] + ldr r3, [r5, #1760] cmn r3, #1 - ldr r3, .L2663+4 + ldr r3, .L2671+4 ldr ip, [sp, #4] - bne .L2654 -.L2656: + bne .L2662 +.L2664: mov r2, #0 - ldr r0, .L2663+12 + ldr r0, .L2671+12 str r2, [ip] - ldr r1, [r3, #1756] + ldr r1, [r3, #1764] ldrh r2, [r9, #8] str r3, [sp, #4] bl printk mov r2, #1 ldr r3, [sp, #4] str r2, [r3, #-3616] - b .L2655 -.L2654: + b .L2663 +.L2662: ldrh r1, [r9, #8] cmp r1, r6 - bne .L2656 + bne .L2664 ldrh r0, [r9] ldrh r2, [r4, #4] cmp r0, r2 - bne .L2656 + bne .L2664 mov r0, r4 - ldr r2, [r5, #1760] + ldr r2, [r5, #1768] bl FtlMapWritePage -.L2653: +.L2661: add fp, fp, #1 - b .L2652 -.L2662: + b .L2660 +.L2670: mov r0, r10 mov r1, #1 bl FtlFreeSysBlkQueueIn mov r3, #0 str r3, [r4, #32] -.L2650: +.L2658: movw r3, #2390 ldrh r2, [r4, #2] ldrh r3, [r8, r3] cmp r2, r3 - bcc .L2655 + bcc .L2663 mov r0, r4 bl ftl_map_blk_alloc_new_blk -.L2655: +.L2663: mov r0, #0 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2664: +.L2672: .align 2 -.L2663: +.L2671: .word .LANCHOR0 .word .LANCHOR2 - .word .LANCHOR2+1752 + .word .LANCHOR2+1760 .word .LC133 .fnend .size ftl_map_blk_gc, .-ftl_map_blk_gc @@ -15778,17 +15818,17 @@ Ftl_write_map_blk_to_last_page: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} .save {r4, r5, r6, r7, r8, r9, r10, lr} - ldr r5, .L2677 + ldr r5, .L2685 ldr r7, [r0, #12] ldr r9, [r0, #24] ldr r6, [r5, #-3616] cmp r6, #0 - bne .L2666 + bne .L2674 ldrh r3, [r0] movw r2, #65535 mov r4, r0 cmp r3, r2 - bne .L2667 + bne .L2675 ldrh r3, [r0, #8] add r3, r3, #1 strh r3, [r0, #8] @ movhi @@ -15799,22 +15839,22 @@ Ftl_write_map_blk_to_last_page: add r3, r3, #1 strh r6, [r4] @ movhi str r3, [r4, #28] - b .L2666 -.L2667: + b .L2674 +.L2675: mov r3, r3, asl #1 - ldr r10, .L2677+4 + ldr r10, .L2685+4 mov r1, #255 ldrh r8, [r7, r3] ldrh r3, [r0, #2] ldr r7, [r5, #-500] orr r3, r3, r8, asl #10 - str r3, [r5, #1756] + str r3, [r5, #1764] ldr r3, [r5, #-524] - str r7, [r5, #1764] - str r3, [r5, #1760] + str r7, [r5, #1772] + str r3, [r5, #1768] ldr r3, [r0, #28] str r3, [r7, #4] - ldr r3, .L2677+8 + ldr r3, .L2685+8 strh r3, [r7, #8] @ movhi ldrh r3, [r0, #4] strh r8, [r7, #2] @ movhi @@ -15825,14 +15865,14 @@ Ftl_write_map_blk_to_last_page: mov r2, r2, asl #3 bl ftl_memset mov r2, r6 -.L2668: +.L2676: ldrh r1, [r4, #6] uxth r3, r2 cmp r1, r3 - bls .L2676 + bls .L2684 ldr r1, [r9, r3, asl #2] cmp r8, r1, lsr #10 - bne .L2669 + bne .L2677 add r6, r6, #1 ldr r1, [r5, #-524] uxth r6, r6 @@ -15841,23 +15881,23 @@ Ftl_write_map_blk_to_last_page: ldr r3, [r5, #-524] add r3, r3, r6, asl #3 str r1, [r3, #4] -.L2669: +.L2677: add r2, r2, #1 - b .L2668 -.L2676: - ldrb r3, [r10] @ zero_extendqisi2 + b .L2676 +.L2684: + ldrb r3, [r10, #32] @ zero_extendqisi2 cmp r3, #0 - beq .L2671 - ldr r2, .L2677+4 + beq .L2679 + ldr r2, .L2685+4 movw r3, #2398 - ldr r0, [r5, #1760] + ldr r0, [r5, #1768] ldrh r1, [r2, r3] bl js_hash str r0, [r7, #12] -.L2671: +.L2679: mov r1, #1 mov r3, #0 - ldr r0, .L2677+12 + ldr r0, .L2685+12 mov r2, r1 bl FlashProgPages ldrh r3, [r4, #2] @@ -15865,16 +15905,16 @@ Ftl_write_map_blk_to_last_page: add r3, r3, #1 strh r3, [r4, #2] @ movhi bl ftl_map_blk_gc -.L2666: +.L2674: mov r0, #0 ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L2678: +.L2686: .align 2 -.L2677: +.L2685: .word .LANCHOR2 .word .LANCHOR0 .word -1291 - .word .LANCHOR2+1752 + .word .LANCHOR2+1760 .fnend .size Ftl_write_map_blk_to_last_page, .-Ftl_write_map_blk_to_last_page .align 2 @@ -15888,33 +15928,33 @@ FtlMapWritePage: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 mov r4, r0 - ldr r10, .L2698 + ldr r10, .L2706 mov r8, r1 - ldr fp, .L2698+4 + ldr fp, .L2706+4 mov r5, #0 str r2, [sp] mov r9, r10 -.L2680: +.L2688: ldr r3, [r10, #-3348] - ldr r6, .L2698 + ldr r6, .L2706 add r3, r3, #1 str r3, [r10, #-3348] ldrh r3, [fp] ldrh r2, [r4, #2] sub r3, r3, #1 cmp r2, r3 - bge .L2681 + bge .L2689 ldrh r2, [r4] movw r3, #65535 cmp r2, r3 - bne .L2682 -.L2681: + bne .L2690 +.L2689: mov r0, r4 bl Ftl_write_map_blk_to_last_page -.L2682: +.L2690: ldr r1, [r9, #-3616] cmp r1, #0 - bne .L2683 + bne .L2691 ldrh r3, [r4] ldr r2, [r4, #12] ldr r0, [r10, #-500] @@ -15922,33 +15962,33 @@ FtlMapWritePage: ldrh r7, [r2, r3] mov r2, #16 ldrh r3, [r4, #2] - str r0, [r10, #1764] + str r0, [r10, #1772] orr r3, r3, r7, asl #10 - str r3, [r10, #1756] + str r3, [r10, #1764] ldr r3, [sp] - str r3, [r10, #1760] + str r3, [r10, #1768] bl ftl_memset ldr r2, [r4, #28] - ldr r3, [r10, #1764] + ldr r3, [r10, #1772] str r2, [r3, #4] strh r8, [r3, #8] @ movhi ldrh r2, [r4, #4] strh r7, [r3, #2] @ movhi strh r2, [r3] @ movhi - ldr r2, .L2698+8 - ldrb r2, [r2] @ zero_extendqisi2 + ldr r2, .L2706+8 + ldrb r2, [r2, #32] @ zero_extendqisi2 cmp r2, #0 - beq .L2684 - ldr r2, .L2698+12 - ldr r0, [r10, #1760] + beq .L2692 + ldr r2, .L2706+12 + ldr r0, [r10, #1768] str r3, [sp, #4] ldrh r1, [r2] bl js_hash ldr r3, [sp, #4] str r0, [r3, #12] -.L2684: +.L2692: mov r1, #1 - ldr r0, .L2698+16 + ldr r0, .L2706+16 mov r2, r1 mov r3, r1 bl FlashProgPages @@ -15956,59 +15996,59 @@ FtlMapWritePage: add r3, r3, #1 uxth r3, r3 strh r3, [r4, #2] @ movhi - ldr r2, [r9, #1752] + ldr r2, [r9, #1760] cmn r2, #1 - bne .L2685 - ldr r0, .L2698+20 + bne .L2693 + ldr r0, .L2706+20 add r5, r5, #1 - ldr r1, [r10, #1756] + ldr r1, [r10, #1764] bl printk ldrh r3, [r4, #2] uxth r5, r5 cmp r3, #2 - ldrls r3, .L2698+4 + ldrls r3, .L2706+4 ldrlsh r3, [r3] subls r3, r3, #1 strlsh r3, [r4, #2] @ movhi cmp r5, #3 - bls .L2680 - ldr r0, .L2698+24 + bls .L2688 + ldr r0, .L2706+24 mov r2, r5 - ldr r1, [r6, #1756] + ldr r1, [r6, #1764] bl printk mov r3, #1 str r3, [r6, #-3616] - b .L2683 -.L2685: + b .L2691 +.L2693: cmp r2, #0 strneh r7, [r4, #40] @ movhi cmp r2, #256 cmpne r3, #1 - beq .L2689 + beq .L2697 ldr r3, [r4, #36] cmp r3, #0 - beq .L2690 -.L2689: + beq .L2698 +.L2697: mov r3, #0 str r3, [r4, #36] - b .L2680 -.L2690: - ldr r2, [r6, #1756] + b .L2688 +.L2698: + ldr r2, [r6, #1764] ldr r3, [r4, #24] str r2, [r3, r8, asl #2] -.L2683: +.L2691: mov r0, #0 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2699: +.L2707: .align 2 -.L2698: +.L2706: .word .LANCHOR2 .word .LANCHOR0+2390 .word .LANCHOR0 .word .LANCHOR0+2398 - .word .LANCHOR2+1752 + .word .LANCHOR2+1760 .word .LC134 .word .LC135 .fnend @@ -16023,7 +16063,7 @@ flush_l2p_region: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r4, #12 - ldr r5, .L2702 + ldr r5, .L2710 mul r4, r4, r0 sub r0, r5, #432 ldr r3, [r5, #-3380] @@ -16038,9 +16078,9 @@ flush_l2p_region: bic r3, r3, #-2147483648 str r3, [r4, #4] ldmfd sp!, {r3, r4, r5, pc} -.L2703: +.L2711: .align 2 -.L2702: +.L2710: .word .LANCHOR2 .fnend .size flush_l2p_region, .-flush_l2p_region @@ -16060,215 +16100,217 @@ FtlMapTblRecovery: ldrh r10, [r0, #6] mov r1, #0 ldr r8, [r0, #24] - str r3, [sp, #12] - ldrh r3, [r0, #8] + mov r6, #0 + ldr r5, .L2755 + str r3, [sp, #4] mov r2, r10, asl #2 + ldrh r3, [r0, #8] ldr r9, [r0, #12] mov r0, r8 - str r3, [sp, #8] + ldr fp, .L2755+4 + str r3, [sp] bl ftl_memset - ldr r1, .L2747 - mov r2, #1 - str r2, [r4, #36] - ldr r3, [r1, #-524] - mov r5, r1 - ldr r6, [r1, #-500] - mov r7, r1 - str r3, [r1, #1760] + ldr r3, [r5, #-524] + ldr r7, [r5, #-500] + str r6, [r4, #32] + str r3, [r5, #1768] mvn r3, #0 - str r6, [r1, #1764] + str r7, [r5, #1772] + str r6, [r4, #28] strh r3, [r4] @ movhi strh r3, [r4, #2] @ movhi - mov r3, #0 - str r3, [r4, #32] - str r3, [r4, #28] - str r3, [sp, #4] -.L2705: - ldrh r3, [sp, #4] - ldr r2, [sp, #8] - sxth fp, r3 - cmp fp, r2 - bge .L2723 - ldr r2, [sp, #8] - sub r2, r2, #1 - cmp fp, r2 - mov r2, fp, asl #1 - bne .L2706 - ldrh r0, [r9, r2] + mov r3, #1 + str r3, [r4, #36] +.L2713: + uxth r2, r6 + ldr r1, [sp] + sxth r3, r2 + cmp r3, r1 + bge .L2731 + ldr r1, [sp] + sub r1, r1, #1 + cmp r3, r1 + mov r1, r3, asl #1 + bne .L2714 + ldrh r0, [r9, r1] + mov r6, #0 + str r3, [sp, #12] + add r3, r9, r1 mov r1, #1 - str r3, [sp, #8] - add r3, r9, r2 - str r3, [sp, #4] + str r2, [sp, #8] + str r3, [sp] bl FtlGetLastWrittenPage - mov r7, #0 - ldr r3, [sp, #8] - add r2, r0, #1 - strh r2, [r4, #2] @ movhi - sxth r0, r0 - add r9, r0, #1 - strh r3, [r4] @ movhi + ldr fp, .L2755 + ldr r2, [sp, #8] + add r1, r0, #1 ldr r3, [sp, #12] - ldr r3, [r3, fp, asl #2] - ldr fp, .L2747 - str r3, [r4, #28] -.L2707: - sxth r3, r7 - cmp r3, r9 - bge .L2723 + sxth r0, r0 + strh r1, [r4, #2] @ movhi + add r9, r0, #1 + strh r2, [r4] @ movhi ldr r2, [sp, #4] + ldr r3, [r2, r3, asl #2] + str r3, [r4, #28] +.L2715: + sxth r3, r6 + cmp r3, r9 + bge .L2731 + ldr r2, [sp] mov r1, #1 - ldr r0, .L2747+4 + ldr r0, .L2755+8 ldrh r2, [r2] orr r3, r3, r2, asl #10 mov r2, r1 - str r3, [r5, #1756] + str r3, [r5, #1764] bl FlashReadPages - ldr r3, .L2747+8 - ldrb r3, [r3] @ zero_extendqisi2 + ldr r3, .L2755+12 + ldrb r3, [r3, #32] @ zero_extendqisi2 cmp r3, #0 - beq .L2708 - ldr r3, [fp, #1764] + beq .L2716 + ldr r3, [fp, #1772] ldr r3, [r3, #12] cmp r3, #0 - beq .L2708 - ldr r2, .L2747+12 - ldr r0, [fp, #1760] - str r3, [sp, #8] + beq .L2716 + ldr r2, .L2755+16 + ldr r0, [fp, #1768] + str r3, [sp, #4] ldrh r1, [r2] bl js_hash - ldr r3, [sp, #8] + ldr r3, [sp, #4] cmp r3, r0 mvnne r3, #0 - strne r3, [fp, #1752] -.L2708: - ldr r3, [fp, #1752] + strne r3, [fp, #1760] +.L2716: + ldr r3, [fp, #1760] cmn r3, #1 - beq .L2709 - ldrh r3, [r6, #8] + beq .L2717 + ldrh r3, [r7, #8] cmp r3, r10 - bcs .L2709 + bcs .L2717 ldrh r2, [r4, #4] - ldrh r1, [r6] + ldrh r1, [r7] cmp r1, r2 - ldreq r2, [fp, #1756] + ldreq r2, [fp, #1764] streq r2, [r8, r3, asl #2] -.L2709: - add r7, r7, #1 - b .L2707 -.L2723: +.L2717: + add r6, r6, #1 + b .L2715 +.L2731: mov r0, r4 bl ftl_free_no_use_map_blk - ldr r1, .L2747+8 + ldr r1, .L2755+12 movw r3, #2390 ldrh r2, [r4, #2] ldrh r3, [r1, r3] cmp r2, r3 - bne .L2712 + bne .L2720 mov r0, r4 bl ftl_map_blk_alloc_new_blk - b .L2712 -.L2706: + b .L2720 +.L2714: ldr r3, [r5, #-524] + ldr r0, .L2755+8 + str r3, [r5, #1768] + add r3, r9, r1 + ldrh r2, [r9, r1] mov r1, #1 - ldr fp, .L2747+16 - ldr r0, .L2747+4 - str r3, [r5, #1760] - add r3, r9, r2 - ldrh r2, [r9, r2] - str r3, [sp, #16] + str r3, [sp, #8] ldrh r3, [fp] sub r3, r3, #1 orr r3, r3, r2, asl #10 mov r2, r1 - str r3, [r5, #1756] + str r3, [r5, #1764] bl FlashReadPages - ldr r3, [r5, #1752] + ldr r3, [r5, #1760] cmn r3, #1 - mov r3, fp - beq .L2725 - ldrh r1, [r6] - ldrh r2, [r4, #4] - cmp r1, r2 - bne .L2725 - ldrh r1, [r6, #8] - movw r2, #64245 - cmp r1, r2 - bne .L2725 - mov r0, #0 - mov lr, #8 - mov fp, #4 -.L2714: - uxth r2, r0 - ldrh ip, [r3] - sxth r1, r2 - sub ip, ip, #1 - cmp r1, ip - bge .L2717 - ldr ip, [r5, #-524] - add r0, r0, #1 - ldr r1, [ip, r1, asl #3] - uxth r1, r1 - cmp r1, r10 - smlabbcc r2, r2, lr, fp - ldrcc r2, [ip, r2] - strcc r2, [r8, r1, asl #2] - b .L2714 -.L2725: - mov fp, #0 -.L2745: - ldr r3, .L2747+16 - sxth r2, fp - ldrh r1, [r3] + beq .L2733 + ldrh r2, [r7] + ldrh r3, [r4, #4] + cmp r2, r3 + bne .L2733 + ldrh r2, [r7, #8] + movw r3, #64245 + cmp r2, r3 + bne .L2733 + mov r1, #0 + mov ip, #8 + mov lr, #4 +.L2722: + ldr r0, .L2755+4 + uxth r3, r1 + sxth r2, r3 + ldrh r0, [r0] + sub r0, r0, #1 + cmp r2, r0 + bge .L2725 + ldr r0, [r5, #-524] + add r1, r1, #1 + ldr r2, [r0, r2, asl #3] + uxth r2, r2 + cmp r2, r10 + smlabbcc r3, r3, ip, lr + ldrcc r3, [r0, r3] + strcc r3, [r8, r2, asl #2] + b .L2722 +.L2733: + ldr ip, .L2755 + mov r3, #0 +.L2753: + ldrh r1, [fp] + sxth r2, r3 cmp r2, r1 - bge .L2717 - str r3, [sp, #20] - ldr r3, [sp, #16] - ldr r0, .L2747+4 + bge .L2725 + str r3, [sp, #16] + ldr r3, [sp, #8] + ldr r0, .L2755+8 + str ip, [sp, #12] ldrh r1, [r3] orr r2, r2, r1, asl #10 mov r1, #1 - str r2, [r7, #1756] + str r2, [ip, #1764] mov r2, r1 bl FlashReadPages - ldr r3, .L2747+8 - ldrb r2, [r3] @ zero_extendqisi2 + ldr r3, .L2755+12 + ldrb r2, [r3, #32] @ zero_extendqisi2 cmp r2, #0 - ldr r3, [sp, #20] - beq .L2718 - ldr r2, [r7, #1764] + ldr ip, [sp, #12] + ldr r3, [sp, #16] + beq .L2726 + ldr r2, [ip, #1772] ldr r2, [r2, #12] cmp r2, #0 - beq .L2718 - ldrh r1, [r3, #8] - ldr r0, [r7, #1760] + beq .L2726 + ldr r1, .L2755+16 + ldr r0, [ip, #1768] str r2, [sp, #20] + ldrh r1, [r1] bl js_hash ldr r2, [sp, #20] + ldr ip, [sp, #12] + ldr r3, [sp, #16] cmp r2, r0 - mvnne r3, #0 - strne r3, [r7, #1752] -.L2718: - ldr r3, .L2747 - ldr r3, [r3, #1752] - cmn r3, #1 - beq .L2719 - ldrh r3, [r6, #8] - cmp r3, r10 - bcs .L2719 - ldrh r2, [r4, #4] - ldrh r1, [r6] - cmp r1, r2 - ldreq r2, [r7, #1756] - streq r2, [r8, r3, asl #2] -.L2719: - add fp, fp, #1 - b .L2745 -.L2717: - ldr r3, [sp, #4] + mvnne r2, #0 + strne r2, [ip, #1760] +.L2726: + ldr r2, .L2755 + ldr r2, [r2, #1760] + cmn r2, #1 + beq .L2727 + ldrh r2, [r7, #8] + cmp r2, r10 + bcs .L2727 + ldrh r1, [r4, #4] + ldrh r0, [r7] + cmp r0, r1 + ldreq r1, [ip, #1764] + streq r1, [r8, r2, asl #2] +.L2727: add r3, r3, #1 - str r3, [sp, #4] - b .L2705 -.L2712: + b .L2753 +.L2725: + add r6, r6, #1 + b .L2713 +.L2720: mov r0, r4 bl ftl_map_blk_gc mov r0, r4 @@ -16277,14 +16319,14 @@ FtlMapTblRecovery: add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2748: +.L2756: .align 2 -.L2747: +.L2755: .word .LANCHOR2 - .word .LANCHOR2+1752 + .word .LANCHOR0+2390 + .word .LANCHOR2+1760 .word .LANCHOR0 .word .LANCHOR0+2398 - .word .LANCHOR0+2390 .fnend .size FtlMapTblRecovery, .-FtlMapTblRecovery .align 2 @@ -16294,15 +16336,16 @@ FtlLoadVonderInfo: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L2751 + ldr r2, .L2759 movw r1, #2408 stmfd sp!, {r3, lr} .save {r3, lr} - ldr r3, .L2751+4 + ldr r3, .L2759+4 ldrh r1, [r2, r1] add r0, r3, #1792 + add r0, r0, #8 strh r1, [r0, #10] @ movhi - ldr r1, .L2751+8 + ldr r1, .L2759+8 strh r1, [r0, #4] @ movhi movw r1, #2434 ldrh r1, [r2, r1] @@ -16311,19 +16354,19 @@ FtlLoadVonderInfo: ldrh r1, [r2, r1] ldr r2, [r2, #2436] strh r1, [r0, #6] @ movhi - str r2, [r3, #1804] - ldr r2, [r3, #-460] - str r2, [r3, #1808] - ldr r2, [r3, #-464] str r2, [r3, #1812] - ldr r2, [r3, #-456] + ldr r2, [r3, #-460] str r2, [r3, #1816] + ldr r2, [r3, #-464] + str r2, [r3, #1820] + ldr r2, [r3, #-456] + str r2, [r3, #1824] bl FtlMapTblRecovery mov r0, #0 ldmfd sp!, {r3, pc} -.L2752: +.L2760: .align 2 -.L2751: +.L2759: .word .LANCHOR0 .word .LANCHOR2 .word -3962 @@ -16339,13 +16382,13 @@ FtlLoadMapInfo: stmfd sp!, {r3, lr} .save {r3, lr} bl FtlL2PDataInit - ldr r0, .L2755 + ldr r0, .L2763 bl FtlMapTblRecovery mov r0, #0 ldmfd sp!, {r3, pc} -.L2756: +.L2764: .align 2 -.L2755: +.L2763: .word .LANCHOR2-432 .fnend .size FtlLoadMapInfo, .-FtlLoadMapInfo @@ -16356,7 +16399,7 @@ FtlVendorPartWrite: .fnstart @ args = 0, pretend = 0, frame = 56 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2768 + ldr r3, .L2776 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r10, r2 @@ -16371,22 +16414,22 @@ FtlVendorPartWrite: mov r4, r1 cmp r2, r3 mvnhi r0, #0 - bhi .L2758 - ldr fp, .L2768+4 + bhi .L2766 + ldr fp, .L2776+4 mov r5, r6, lsr r5 mov r3, r5, asl #2 str r3, [sp, #4] mov r7, fp mov r3, #0 str r3, [sp] -.L2759: +.L2767: cmp r4, #0 - beq .L2767 + beq .L2775 ldr r2, [sp, #4] mov r0, r6 ldr r3, [fp, #-456] ldr ip, [r3, r2] - ldr r3, .L2768+8 + ldr r3, .L2776+8 str ip, [sp, #12] ldrh r2, [r3] mov r1, r2 @@ -16403,7 +16446,7 @@ FtlVendorPartWrite: cmpne ip, #0 movne r1, #1 moveq r1, #0 - beq .L2761 + beq .L2769 ldr r2, [r7, #-516] mov r1, #1 add r0, sp, #20 @@ -16413,13 +16456,13 @@ FtlVendorPartWrite: str r2, [sp, #32] mov r2, r1 bl FlashReadPages - b .L2762 -.L2761: - ldr r2, .L2768+12 + b .L2770 +.L2769: + ldr r2, .L2776+12 ldr r0, [r7, #-516] ldrh r2, [r2] bl ftl_memset -.L2762: +.L2770: mov ip, r9, asl #9 ldr r0, [r7, #-516] uxth r8, r8 @@ -16430,7 +16473,7 @@ FtlVendorPartWrite: rsb r4, r9, r4 bl ftl_memcpy mov r1, r5 - ldr r0, .L2768+16 + ldr r0, .L2776+16 add r5, r5, #1 ldr r2, [r7, #-516] add r6, r6, r9 @@ -16444,21 +16487,21 @@ FtlVendorPartWrite: ldr r3, [sp, #4] add r3, r3, #4 str r3, [sp, #4] - b .L2759 -.L2767: + b .L2767 +.L2775: ldr r0, [sp] -.L2758: +.L2766: add sp, sp, #60 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2769: +.L2777: .align 2 -.L2768: +.L2776: .word .LANCHOR0 .word .LANCHOR2 .word .LANCHOR0+2394 .word .LANCHOR0+2398 - .word .LANCHOR2+1792 + .word .LANCHOR2+1800 .fnend .size FtlVendorPartWrite, .-FtlVendorPartWrite .align 2 @@ -16469,12 +16512,12 @@ Ftl_save_ext_data: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L2772 - ldr r3, .L2772+4 + ldr r2, .L2780 + ldr r3, .L2780+4 ldr r1, [r2, #-3232] cmp r1, r3 bxne lr - ldr r3, .L2772+8 + ldr r3, .L2780+8 mov r0, #0 mov r1, #1 sub r2, r2, #3232 @@ -16508,9 +16551,9 @@ Ftl_save_ext_data: ldr r3, [r2, #2668] str r3, [r2, #64] b FtlVendorPartWrite -.L2773: +.L2781: .align 2 -.L2772: +.L2780: .word .LANCHOR2 .word 1179929683 .word 1342177379 @@ -16525,41 +16568,41 @@ FtlEctTblFlush: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, lr} .save {r3, lr} - ldr r3, .L2782 + ldr r3, .L2790 ldr r3, [r3, #2244] cmp r3, #0 - ldr r3, .L2782+4 + ldr r3, .L2790+4 moveq r2, #32 - beq .L2775 + beq .L2783 ldr r2, [r3, #-3308] cmp r2, #39 movhi r2, #32 movls r2, #4 -.L2775: - movw ip, #1836 +.L2783: + movw ip, #1844 ldrh r1, [r3, ip] cmp r1, #31 addls r1, r1, #1 - ldrls r2, .L2782+4 + ldrls r2, .L2790+4 strlsh r1, [r2, ip] @ movhi movls r2, #1 cmp r0, #0 - bne .L2777 + bne .L2785 ldr r1, [r3, #-480] ldr r0, [r1, #20] ldr r1, [r1, #16] add r2, r2, r0 cmp r1, r2 - bcc .L2778 -.L2777: + bcc .L2786 +.L2785: ldr r2, [r3, #-480] mov r0, #64 ldr r1, [r2, #16] str r1, [r2, #20] - ldr r1, .L2782+8 + ldr r1, .L2790+8 str r1, [r2] ldr r2, [r3, #-480] - ldr r3, .L2782+12 + ldr r3, .L2790+12 ldrh r1, [r3] mov r3, r1, asl #9 str r3, [r2, #12] @@ -16570,12 +16613,12 @@ FtlEctTblFlush: str r3, [r2, #4] bl FtlVendorPartWrite bl Ftl_save_ext_data -.L2778: +.L2786: mov r0, #0 ldmfd sp!, {r3, pc} -.L2783: +.L2791: .align 2 -.L2782: +.L2790: .word .LANCHOR0 .word .LANCHOR2 .word 1112818501 @@ -16592,7 +16635,7 @@ FtlVendorPartRead: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} movw r3, #2396 - ldr r4, .L2796 + ldr r4, .L2804 mov r8, r2 add r2, r0, r1 mov r7, r0 @@ -16604,23 +16647,23 @@ FtlVendorPartRead: ldrh r3, [r4] cmp r2, r3 mvnhi r0, #0 - bhi .L2785 - ldr r9, .L2796+4 + bhi .L2793 + ldr r9, .L2804+4 mov r5, r7, lsr r5 mov r3, r5, asl #2 str r3, [sp, #4] mov r10, r9 mov r3, #0 str r3, [sp] -.L2786: +.L2794: cmp r6, #0 - beq .L2795 + beq .L2803 ldr r2, [sp, #4] mov r0, r7 ldr r3, [r9, #-456] ldr r3, [r3, r2] str r3, [sp, #12] - ldr r3, .L2796+8 + ldr r3, .L2804+8 ldrh r4, [r3] mov r1, r4 bl __aeabi_uidivmod @@ -16632,7 +16675,7 @@ FtlVendorPartRead: uxthhi r4, r6 cmp r3, #0 mov fp, r4, asl #9 - beq .L2788 + beq .L2796 ldr r2, [r10, #-516] mov r1, #1 add r0, sp, #20 @@ -16646,34 +16689,34 @@ FtlVendorPartRead: ldr r2, [sp, #20] ldr r3, [sp] cmn r2, #1 - ldr r2, [r10, #1752] + ldr r2, [r10, #1760] mvneq r3, #0 cmp r2, #256 str r3, [sp] ldr r3, [sp, #12] - bne .L2790 + bne .L2798 mov r1, r5 mov r2, r3 - ldr r0, .L2796+12 + ldr r0, .L2804+12 bl printk - ldr r0, .L2796+16 + ldr r0, .L2804+16 mov r1, r5 ldr r2, [r9, #-516] bl FtlMapWritePage -.L2790: +.L2798: ldrh r3, [sp, #8] mov r0, r8 ldr r1, [r10, #-516] mov r2, fp add r1, r1, r3, asl #9 bl ftl_memcpy - b .L2791 -.L2788: + b .L2799 +.L2796: mov r0, r8 mov r1, r3 mov r2, fp bl ftl_memset -.L2791: +.L2799: ldr r3, [sp, #4] add r5, r5, #1 rsb r6, r4, r6 @@ -16681,21 +16724,21 @@ FtlVendorPartRead: add r3, r3, #4 add r8, r8, fp str r3, [sp, #4] - b .L2786 -.L2795: + b .L2794 +.L2803: ldr r0, [sp] -.L2785: +.L2793: add sp, sp, #60 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2797: +.L2805: .align 2 -.L2796: +.L2804: .word .LANCHOR0 .word .LANCHOR2 .word .LANCHOR0+2394 .word .LC136 - .word .LANCHOR2+1792 + .word .LANCHOR2+1800 .fnend .size FtlVendorPartRead, .-FtlVendorPartRead .align 2 @@ -16708,30 +16751,30 @@ FtlLoadEctTbl: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r0, #64 - ldr r4, .L2801 + ldr r4, .L2809 sub r5, r4, #488 ldr r2, [r4, #-480] ldrh r1, [r5] bl FtlVendorPartRead ldr r3, [r4, #-480] ldr r2, [r3] - ldr r3, .L2801+4 + ldr r3, .L2809+4 cmp r2, r3 - beq .L2799 - ldr r1, .L2801+8 - ldr r0, .L2801+12 + beq .L2807 + ldr r1, .L2809+8 + ldr r0, .L2809+12 bl printk ldrh r2, [r5] ldr r0, [r4, #-480] mov r1, #0 mov r2, r2, asl #9 bl ftl_memset -.L2799: +.L2807: mov r0, #0 ldmfd sp!, {r3, r4, r5, pc} -.L2802: +.L2810: .align 2 -.L2801: +.L2809: .word .LANCHOR2 .word 1112818501 .word .LC137 @@ -16748,24 +16791,24 @@ Ftl_load_ext_data: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r0, #0 - ldr r4, .L2809 + ldr r4, .L2817 mov r1, #1 - ldr r5, .L2809+4 + ldr r5, .L2817+4 sub r2, r4, #3232 bl FtlVendorPartRead ldr r3, [r4, #-3232] cmp r3, r5 - beq .L2804 + beq .L2812 sub r0, r4, #3232 mov r1, #0 mov r2, #512 bl ftl_memset str r5, [r4, #-3232] -.L2804: +.L2812: ldr r2, [r4, #-3232] - ldr r3, .L2809 + ldr r3, .L2817 cmp r2, r5 - bne .L2805 + bne .L2813 ldr r2, [r3, #-3144] str r2, [r3, #-3340] ldr r2, [r3, #-3140] @@ -16792,28 +16835,28 @@ Ftl_load_ext_data: str r2, [r3, #-3308] ldr r2, [r3, #-3172] str r2, [r3, #-3236] -.L2805: +.L2813: ldr r1, [r4, #-3164] mov r3, #0 - ldr r2, .L2809+8 + ldr r2, .L2817+8 str r3, [r4, #-564] cmp r1, r2 - ldr r5, .L2809+12 - bne .L2806 - ldrb r2, [r5, #144] @ zero_extendqisi2 + ldr r5, .L2817+12 + bne .L2814 + ldrb r2, [r5, #148] @ zero_extendqisi2 cmp r2, r3 - beq .L2807 - ldr r2, .L2809 + beq .L2815 + ldr r2, .L2817 str r3, [r2, #-3164] bl Ftl_save_ext_data - b .L2806 -.L2807: - ldr r0, .L2809+16 + b .L2814 +.L2815: + ldr r0, .L2817+16 mov r3, #1 - ldr r1, .L2809+20 + ldr r1, .L2817+20 str r3, [r5, #2244] bl printk -.L2806: +.L2814: movw r3, #2380 ldr r0, [r4, #-3324] ldrh r2, [r5, r3] @@ -16824,9 +16867,9 @@ Ftl_load_ext_data: bl __aeabi_uidiv str r0, [r4, #-3316] ldmfd sp!, {r3, r4, r5, pc} -.L2810: +.L2818: .align 2 -.L2809: +.L2817: .word .LANCHOR2 .word 1179929683 .word 305432421 @@ -16849,7 +16892,7 @@ FtlMapBlkWriteDumpData: cmp r2, #0 ldr r3, [r0, #24] ldmeqfd sp!, {r4, r5, r6, pc} - ldr r4, .L2818 + ldr r4, .L2826 mov r2, #0 str r2, [r0, #36] ldr r2, [r4, #-3616] @@ -16860,34 +16903,33 @@ FtlMapBlkWriteDumpData: ldr r2, [r4, #-500] ldr r0, [r4, #-520] uxth r5, r5 - str r2, [r4, #1764] - str r0, [r4, #1760] + str r2, [r4, #1772] + str r0, [r4, #1768] ldr r3, [r3, r5, asl #2] cmp r3, #0 - str r3, [r4, #1756] - beq .L2815 + str r3, [r4, #1764] + beq .L2823 mov r1, #1 - ldr r0, .L2818+4 + add r0, r4, #1760 mov r2, r1 bl FlashReadPages - b .L2816 -.L2815: - ldr r2, .L2818+8 + b .L2824 +.L2823: + ldr r2, .L2826+4 movw r3, #2398 mov r1, #255 ldrh r2, [r2, r3] bl ftl_memset -.L2816: +.L2824: mov r0, r6 mov r1, r5 - ldr r2, [r4, #1760] + ldr r2, [r4, #1768] ldmfd sp!, {r4, r5, r6, lr} b FtlMapWritePage -.L2819: +.L2827: .align 2 -.L2818: +.L2826: .word .LANCHOR2 - .word .LANCHOR2+1752 .word .LANCHOR0 .fnend .size FtlMapBlkWriteDumpData, .-FtlMapBlkWriteDumpData @@ -16898,30 +16940,30 @@ FlashReadFacBbtData: .fnstart @ args = 0, pretend = 0, frame = 40 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2835 + ldr r3, .L2843 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} .save {r4, r5, r6, r7, r8, r9, r10, lr} mov r8, r2 - ldrh r2, [r3, #128] + ldrh r2, [r3, #132] .pad #40 sub sp, sp, #40 - ldrh r3, [r3, #130] + ldrh r3, [r3, #134] mov r5, r0 - ldr r9, .L2835+4 + ldr r9, .L2843+4 mov r7, r1 smulbb r3, r2, r3 - ldr r2, [r9, #1688] + ldr r2, [r9, #1696] str r2, [sp, #12] - ldr r2, [r9, #1720] + ldr r2, [r9, #1728] uxth r3, r3 sub r6, r3, #1 sub r4, r3, #16 mul r10, r3, r1 uxth r6, r6 str r2, [sp, #16] -.L2821: +.L2829: cmp r6, r4 - ble .L2834 + ble .L2842 mov r1, #1 add r3, r6, r10 add r0, sp, #4 @@ -16931,57 +16973,57 @@ FlashReadFacBbtData: bl FlashReadPages ldr r3, [sp, #4] cmn r3, #1 - beq .L2822 - ldr r3, [r9, #1720] + beq .L2830 + ldr r3, [r9, #1728] ldrh r2, [r3] movw r3, #61664 cmp r2, r3 - bne .L2822 + bne .L2830 cmp r5, #0 moveq r0, r5 - beq .L2823 + beq .L2831 cmp r7, #0 - ldreq ip, .L2835+4 + ldreq ip, .L2843+4 moveq lr, #1 - beq .L2824 -.L2826: - ldr r1, [r9, #1688] + beq .L2832 +.L2834: + ldr r1, [r9, #1696] mov r2, r8 mov r0, r5 bl ftl_memcpy mov r2, #4 - ldr r0, .L2835+8 + ldr r0, .L2843+8 mov r1, r5 mov r3, r2 bl rknand_print_hex mov r0, #0 - b .L2823 -.L2824: - ldr r2, [r9, #1708] + b .L2831 +.L2832: + ldr r2, [r9, #1716] uxth r3, r7 add r7, r7, #1 cmp r3, r2 - bcs .L2826 - ldr r1, [ip, #1688] + bcs .L2834 + ldr r1, [ip, #1696] mov r0, r3, lsr #5 and r4, r3, #31 ldr r2, [r1, r0, asl #2] orr r4, r2, lr, asl r4 str r4, [r1, r0, asl #2] - b .L2824 -.L2822: + b .L2832 +.L2830: sub r6, r6, #1 uxth r6, r6 - b .L2821 -.L2834: + b .L2829 +.L2842: mvn r0, #0 -.L2823: +.L2831: add sp, sp, #40 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L2836: +.L2844: .align 2 -.L2835: +.L2843: .word .LANCHOR0 .word .LANCHOR2 .word .LC139 @@ -16994,36 +17036,36 @@ FlashGetBadBlockList: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2848 + ldr r3, .L2856 stmfd sp!, {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} mov r5, r0 ldr r3, [r3, #44] - ldr r6, .L2848+4 + ldr r6, .L2856+4 ldrb r4, [r3, #13] @ zero_extendqisi2 ldrh r3, [r3, #14] - ldr r0, [r6, #1716] + ldr r0, [r6, #1724] smulbb r4, r4, r3 uxth r4, r4 add r2, r4, #7 mov r2, r2, asr #3 bl FlashReadFacBbtData cmn r0, #1 - bne .L2838 -.L2842: + bne .L2846 +.L2850: mov r3, #0 - b .L2839 -.L2838: + b .L2847 +.L2846: mov lr, r4, lsr #4 mov ip, #0 sub r4, r4, #1 mov r3, ip mov r7, #1 -.L2840: +.L2848: uxth r0, ip cmp r0, r4 - bge .L2839 - ldr r8, [r6, #1716] + bge .L2847 + ldr r8, [r6, #1724] mov r1, r0, lsr #5 and r2, r0, #31 add ip, ip, #1 @@ -17034,17 +17076,17 @@ FlashGetBadBlockList: strneh r0, [r5, r3] @ movhi uxthne r3, r2 cmp r3, lr - bcc .L2840 - b .L2842 -.L2839: + bcc .L2848 + b .L2850 +.L2847: mov r3, r3, asl #1 mvn r2, #0 mov r0, #0 strh r2, [r5, r3] @ movhi ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L2849: +.L2857: .align 2 -.L2848: +.L2856: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -17059,58 +17101,58 @@ FtlMakeBbt: stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 - ldr r4, .L2874 + ldr r4, .L2882 ldr r5, [r4, #-3616] cmp r5, #0 - bne .L2851 + bne .L2859 bl FtlBbtMemInit - ldr r7, .L2874+4 + ldr r7, .L2882+4 bl FtlLoadFactoryBbt sub r9, r7, #18 sub r10, r7, #94 -.L2852: - ldr r3, .L2874+8 - ldr r6, .L2874+12 +.L2860: + ldr r3, .L2882+8 + ldr r6, .L2882+12 ldrh r3, [r3] cmp r5, r3 - bcs .L2871 + bcs .L2879 ldrh r3, [r9, #2]! movw r2, #65535 ldr r0, [r4, #-524] ldr fp, [r4, #-500] cmp r3, r2 - ldr r8, .L2874 - str r0, [r4, #1760] - str fp, [r4, #1764] - beq .L2853 + ldr r8, .L2882 + str r0, [r4, #1768] + str fp, [r4, #1772] + beq .L2861 ldrh ip, [r10] mov r1, #1 mov r2, r1 - ldr r0, .L2874+16 + add r0, r8, #1760 mla ip, ip, r5, r3 mov r3, ip, asl #10 str ip, [sp, #4] - str r3, [r8, #1756] + str r3, [r8, #1764] bl FlashReadPages ldrh r2, [r10] ldr r0, [r7] add r2, r2, #7 - ldr r1, [r8, #1760] + ldr r1, [r8, #1768] mov r2, r2, asr #3 bl ftl_memcpy ldr ip, [sp, #4] - b .L2854 -.L2853: + b .L2862 +.L2861: mov r1, r5 sub r8, r8, #436 bl FlashGetBadBlockList - ldr r0, [r8, #2196] + ldr r0, [r8, #2204] ldr r1, [r7] bl FtlBbt2Bitmap ldrh r6, [r10] sub r6, r6, #1 uxth r6, r6 -.L2855: +.L2863: ldrh r0, [r10] smlabb r0, r0, r5, r6 uxth r0, r0 @@ -17118,14 +17160,14 @@ FtlMakeBbt: cmp r0, #1 subeq r6, r6, #1 uxtheq r6, r6 - beq .L2855 -.L2872: + beq .L2863 +.L2880: mov r1, #0 mov r2, #16 strh r6, [r9] @ movhi ldr r0, [r4, #-500] bl ftl_memset - ldr r3, .L2874+20 + ldr r3, .L2882+16 strh r3, [fp] @ movhi mov r3, #0 str r3, [fp, #4] @@ -17136,81 +17178,81 @@ FtlMakeBbt: ldrh r3, [r9] ldr r1, [r7] mov r2, r2, asl #2 - ldr r0, [r4, #1760] + ldr r0, [r4, #1768] mla ip, ip, r5, r3 mov r3, ip, asl #10 - str r3, [r4, #1756] + str r3, [r4, #1764] str ip, [sp, #4] bl ftl_memcpy mov r1, #1 - ldr r0, .L2874+16 + ldr r0, .L2882+20 mov r2, r1 bl FlashEraseBlocks mov r1, #1 mov r3, r1 - ldr r0, .L2874+16 + ldr r0, .L2882+20 mov r2, r1 bl FlashProgPages - ldr r3, [r4, #1752] + ldr r3, [r4, #1760] cmn r3, #1 ldr ip, [sp, #4] - bne .L2854 + bne .L2862 uxth r0, ip bl FtlBbmMapBadBlock - b .L2855 -.L2854: + b .L2863 +.L2862: uxth r0, ip add r5, r5, #1 bl FtlBbmMapBadBlock add r7, r7, #4 - b .L2852 -.L2871: - ldr r7, .L2874+24 + b .L2860 +.L2879: + ldr r7, .L2882+24 mov r5, #0 -.L2859: +.L2867: ldrh r3, [r7] uxth r0, r5 add r5, r5, #1 cmp r3, r0 - bls .L2873 + bls .L2881 bl FtlBbmMapBadBlock - b .L2859 -.L2873: - ldr r7, .L2874+28 + b .L2867 +.L2881: + ldr r7, .L2882+28 movw r9, #65535 ldrh r5, [r7, #12] mov r8, r7 sub r5, r5, #1 uxth r5, r5 -.L2861: +.L2869: ldrh r3, [r7, #12] sub r3, r3, #48 cmp r5, r3 - ble .L2865 + ble .L2873 mov r0, r5 bl FtlBbmIsBadBlock cmp r0, #1 - beq .L2862 + beq .L2870 mov r0, r5 bl FlashTestBlk cmp r0, #0 - beq .L2863 + beq .L2871 mov r0, r5 bl FtlBbmMapBadBlock - b .L2862 -.L2863: + b .L2870 +.L2871: ldrh r3, [r8] cmp r3, r9 streqh r5, [r8] @ movhi -.L2864: - ldrne r3, .L2874+28 +.L2872: + ldrne r3, .L2882+28 strneh r5, [r3, #4] @ movhi - bne .L2865 -.L2862: + bne .L2873 +.L2870: sub r5, r5, #1 uxth r5, r5 - b .L2861 -.L2865: + b .L2869 +.L2873: movw r5, #2452 ldr r0, [r4, #-3612] ldrh r3, [r6, r5] @@ -17239,20 +17281,20 @@ FtlMakeBbt: strh r2, [r6, r5] @ movhi strh r3, [r7, #4] @ movhi bl FtlBbmTblFlush -.L2851: +.L2859: mov r0, #0 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2875: +.L2883: .align 2 -.L2874: +.L2882: .word .LANCHOR2 .word .LANCHOR0+2480 .word .LANCHOR0+2342 .word .LANCHOR0 - .word .LANCHOR2+1752 .word -3872 + .word .LANCHOR2+1760 .word .LANCHOR0+2402 .word .LANCHOR0+2452 .fnend @@ -17268,13 +17310,13 @@ log2phys: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 movw r3, #2396 - ldr r7, .L2893 + ldr r7, .L2901 ldrh r10, [r7, r3] ldr r3, [r7, #2448] cmp r0, r3 - bcs .L2877 + bcs .L2885 add r10, r10, #7 - ldr fp, .L2893+4 + ldr fp, .L2901+4 mov r5, r0, lsr r10 movw r3, #2426 str r2, [sp, #4] @@ -17286,22 +17328,22 @@ log2phys: ldr r8, [fp, #-3380] mov r4, #0 mov r1, #12 - b .L2878 -.L2877: + b .L2886 +.L2885: cmp r2, #0 mvn r0, #0 streq r0, [r1] - b .L2879 -.L2883: + b .L2887 +.L2891: add r4, r4, #1 mla r0, r1, r4, r8 ldrh r0, [r0, #-12] cmp r0, r5 - beq .L2880 -.L2878: + beq .L2888 +.L2886: uxth r7, r4 cmp r7, r2 - bcc .L2883 + bcc .L2891 bl select_l2p_ram_region mov r4, #12 movw r3, #65535 @@ -17310,13 +17352,13 @@ log2phys: add r2, r8, r4 ldrh r1, [r8, r4] cmp r1, r3 - bne .L2892 -.L2884: + bne .L2900 +.L2892: ldr r3, [fp, #-452] - ldr r8, .L2893+4 + ldr r8, .L2901+4 ldr fp, [r3, r5, asl #2] cmp fp, #0 - bne .L2885 + bne .L2893 ldr r3, [r8, #-3380] mov r1, #255 add r3, r3, r4 @@ -17329,23 +17371,23 @@ log2phys: ldr r3, [r8, #-3380] add r4, r3, r4 str fp, [r4, #4] -.L2880: +.L2888: ldr r2, [sp] mvn r3, #0 mov r6, #12 bic r10, r2, r3, asl r10 ldr r3, [sp, #4] - ldr r2, .L2893+4 + ldr r2, .L2901+4 cmp r3, #0 uxth r10, r10 - bne .L2881 + bne .L2889 ldr r3, [r2, #-3380] mla r6, r6, r7, r3 ldr r3, [r6, #8] ldr r3, [r3, r10, asl #2] str r3, [r9] - b .L2882 -.L2881: + b .L2890 +.L2889: mul r6, r6, r7 ldr r3, [r2, #-3380] ldr r1, [r9] @@ -17359,7 +17401,7 @@ log2phys: str r3, [r6, #4] sub r3, r2, #3376 strh r5, [r3] @ movhi -.L2882: +.L2890: ldr r2, [r2, #-3380] mov r3, #12 mov r0, #0 @@ -17368,54 +17410,54 @@ log2phys: cmn r3, #1 addne r3, r3, #1 strne r3, [r7, #4] - b .L2879 -.L2892: + b .L2887 +.L2900: ldr r3, [r2, #4] cmp r3, #0 - bge .L2884 + bge .L2892 bl flush_l2p_region - b .L2884 -.L2885: + b .L2892 +.L2893: ldr r3, [r8, #-3380] mov r1, #1 - ldr r0, .L2893+8 + add r0, r8, #1760 mov r2, r1 add r3, r3, r4 - str fp, [r8, #1756] + str fp, [r8, #1764] ldr r3, [r3, #8] - str r3, [r8, #1760] + str r3, [r8, #1768] ldr r3, [r8, #-500] - str r3, [r8, #1764] + str r3, [r8, #1772] bl FlashReadPages - ldr r3, [r8, #1764] + ldr r3, [r8, #1772] ldrh r3, [r3, #8] cmp r3, r5 - beq .L2886 + beq .L2894 mov r1, r5 mov r2, fp - ldr r0, .L2893+12 + ldr r0, .L2901+8 bl printk mov r2, #4 mov r3, r2 - ldr r0, .L2893+16 - ldr r1, [r8, #1764] + ldr r0, .L2901+12 + ldr r1, [r8, #1772] bl rknand_print_hex movw r3, #2424 ldrh r3, [r6, r3] mov r2, #4 - ldr r0, .L2893+20 + ldr r0, .L2901+16 ldr r1, [r8, #-452] bl rknand_print_hex mov r3, #1 str r3, [r8, #-3616] - b .L2887 -.L2886: - ldr r3, [r8, #1752] + b .L2895 +.L2894: + ldr r3, [r8, #1760] cmp r3, #256 - bne .L2887 + bne .L2895 mov r1, r5 mov r2, fp - ldr r0, .L2893+24 + ldr r0, .L2901+20 bl printk ldr r3, [r8, #-3380] sub r0, r8, #432 @@ -17423,24 +17465,23 @@ log2phys: add r3, r3, r4 ldr r2, [r3, #8] bl FtlMapWritePage -.L2887: - ldr r3, .L2893+4 +.L2895: + ldr r3, .L2901+4 mov r1, #0 ldr r3, [r3, #-3380] add r2, r3, r4 str r1, [r2, #4] strh r5, [r3, r4] @ movhi - b .L2880 -.L2879: + b .L2888 +.L2887: add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2894: +.L2902: .align 2 -.L2893: +.L2901: .word .LANCHOR0 .word .LANCHOR2 - .word .LANCHOR2+1752 .word .LC140 .word .LC101 .word .LC141 @@ -17458,30 +17499,30 @@ FtlWriteDumpData: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #44 sub sp, sp, #44 - ldr r4, .L2915 + ldr r4, .L2923 ldr r3, [r4, #-3616] cmp r3, #0 - bne .L2895 - ldr r3, .L2915+4 + bne .L2903 + ldr r3, .L2923+4 ldrh r2, [r3, #4] cmp r2, #0 - beq .L2897 + beq .L2905 ldrb r3, [r4, #-3516] @ zero_extendqisi2 cmp r3, #0 - bne .L2897 - ldr r8, .L2915+8 + bne .L2905 + ldr r8, .L2923+8 movw r3, #2388 ldrb r1, [r4, #-3517] @ zero_extendqisi2 ldrh r3, [r8, r3] mul r3, r3, r1 cmp r2, r3 - beq .L2897 + beq .L2905 ldrb r9, [r4, #-3514] @ zero_extendqisi2 add r3, r8, #2320 ldr r6, [r8, #2448] cmp r9, #0 ldrh r7, [r3] - bne .L2895 + bne .L2903 sub r6, r6, #1 mov r1, sp mov r2, r9 @@ -17496,35 +17537,35 @@ FtlWriteDumpData: str r3, [sp, #8] str r5, [sp, #16] str r9, [r5, #4] - beq .L2899 + beq .L2907 mov r1, #1 mov r2, r9 add r0, sp, #4 bl FlashReadPages - b .L2900 -.L2899: + b .L2908 +.L2907: movw r3, #2398 mov r1, #255 ldrh r2, [r8, r3] bl ftl_memset -.L2900: - ldr fp, .L2915+4 +.L2908: + ldr fp, .L2923+4 mov r7, r7, asl #2 - ldr r3, .L2915+12 + ldr r3, .L2923+12 mov r8, #0 - ldr r9, .L2915 + ldr r9, .L2923 mov r10, fp strh r3, [r5] @ movhi -.L2901: +.L2909: cmp r8, r7 - beq .L2902 + beq .L2910 ldrh r3, [fp, #4] cmp r3, #0 - beq .L2902 + beq .L2910 ldr r3, [sp, #8] add r8, r8, #1 str r6, [r5, #8] - ldr r0, .L2915+4 + ldr r0, .L2923+4 str r3, [r5, #12] ldrh r3, [fp] strh r3, [r5, #2] @ movhi @@ -17543,21 +17584,21 @@ FtlWriteDumpData: bl FlashProgPages ldrh r0, [r10] bl decrement_vpc_count - b .L2901 -.L2902: + b .L2909 +.L2910: mov r3, #1 - b .L2914 -.L2897: + b .L2922 +.L2905: mov r3, #0 -.L2914: +.L2922: strb r3, [r4, #-3514] -.L2895: +.L2903: add sp, sp, #44 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2916: +.L2924: .align 2 -.L2915: +.L2923: .word .LANCHOR2 .word .LANCHOR2-3524 .word .LANCHOR0 @@ -17575,29 +17616,29 @@ l2p_flush: .save {r3, r4, r5, r6, r7, lr} bl FtlWriteDumpData mov r4, #0 - ldr r5, .L2923 + ldr r5, .L2931 mov r7, #12 - ldr r6, .L2923+4 -.L2918: + ldr r6, .L2931+4 +.L2926: ldrh r3, [r5] uxth r0, r4 cmp r3, r0 - bls .L2922 + bls .L2930 ldr r3, [r6, #-3380] mla r3, r7, r0, r3 ldr r3, [r3, #4] cmp r3, #0 - bge .L2919 + bge .L2927 bl flush_l2p_region -.L2919: +.L2927: add r4, r4, #1 - b .L2918 -.L2922: + b .L2926 +.L2930: mov r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L2924: +.L2932: .align 2 -.L2923: +.L2931: .word .LANCHOR0+2426 .word .LANCHOR2 .fnend @@ -17611,98 +17652,98 @@ allocate_new_data_superblock: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} - ldr r5, .L2952 + ldr r5, .L2960 ldrh r6, [r0] ldr r3, [r5, #-3616] cmp r3, #0 - bne .L2926 + bne .L2934 movw r3, #65535 cmp r6, r3 mov r4, r0 - beq .L2927 + beq .L2935 ldr r2, [r5, #-3544] mov r3, r6, asl #1 mov r0, r6 ldrh r3, [r2, r3] cmp r3, #0 - beq .L2928 + beq .L2936 bl INSERT_DATA_LIST - b .L2927 -.L2928: + b .L2935 +.L2936: bl INSERT_FREE_LIST -.L2927: +.L2935: mov r3, #0 strb r3, [r4, #8] - ldr r3, .L2952+4 + ldr r3, .L2960+4 cmp r4, r3 - beq .L2929 - ldr r3, .L2952+8 + beq .L2937 + ldr r3, .L2960+8 movw r2, #2340 ldrh r2, [r3, r2] cmp r2, #1 - beq .L2929 - ldrb r1, [r3, #144] @ zero_extendqisi2 + beq .L2937 + ldrb r1, [r3, #148] @ zero_extendqisi2 cmp r1, #0 - beq .L2930 -.L2929: + beq .L2938 +.L2937: mov r3, #1 strb r3, [r4, #8] - b .L2931 -.L2930: - ldr r1, .L2952+12 + b .L2939 +.L2938: + ldr r1, .L2960+12 cmp r4, r1 - bne .L2931 + bne .L2939 cmp r2, #3 - beq .L2933 - ldr r2, .L2952 + beq .L2941 + ldr r2, .L2960 ldr r2, [r2, #-3236] cmp r2, #1 - bne .L2934 -.L2933: + bne .L2942 +.L2941: mov r2, #1 strb r2, [r5, #-3516] -.L2934: +.L2942: ldr r3, [r3, #2244] cmp r3, #0 - beq .L2931 + beq .L2939 ldr r3, [r5, #-3308] cmp r3, #39 - ldrls r3, .L2952 + ldrls r3, .L2960 movls r2, #1 strlsb r2, [r3, #-3516] -.L2931: - ldr r2, .L2952 +.L2939: + ldr r2, .L2960 movw r1, #65535 sub r3, r2, #380 ldrh r0, [r3] mov r5, r3 cmp r0, r1 - beq .L2936 + beq .L2944 cmp r6, r0 - bne .L2937 + bne .L2945 ldr r2, [r2, #-3544] mov r3, r0, asl #1 ldrh r3, [r2, r3] cmp r3, #0 - beq .L2938 -.L2937: + beq .L2946 +.L2945: bl update_vpc_list -.L2938: +.L2946: mvn r3, #0 strh r3, [r5] @ movhi -.L2936: +.L2944: mov r0, r4 bl allocate_data_superblock bl l2p_flush mov r0, #0 bl FtlEctTblFlush bl FtlVpcTblFlush -.L2926: +.L2934: mov r0, #0 ldmfd sp!, {r4, r5, r6, pc} -.L2953: +.L2961: .align 2 -.L2952: +.L2960: .word .LANCHOR2 .word .LANCHOR2-3476 .word .LANCHOR0 @@ -17720,95 +17761,95 @@ FtlCheckVpc: .save {r4, r5, r6, r7, r8, r9, lr} .pad #12 mov r4, #0 - ldr r1, .L2977 - ldr r0, .L2977+4 + ldr r1, .L2985 + ldr r0, .L2985+4 bl printk - ldr r0, .L2977+8 + ldr r0, .L2985+8 mov r1, #0 mov r2, #8192 bl memset - ldr r6, .L2977+12 - ldr r5, .L2977+8 -.L2955: + ldr r6, .L2985+12 + ldr r5, .L2985+8 +.L2963: ldr r3, [r6, #2448] cmp r4, r3 - bcs .L2975 + bcs .L2983 mov r0, r4 add r1, sp, #4 mov r2, #0 bl log2phys ldr r0, [sp, #4] cmn r0, #1 - beq .L2956 + beq .L2964 ubfx r0, r0, #10, #16 bl P2V_block_in_plane mov r0, r0, asl #1 ldrh r3, [r5, r0] add r3, r3, #1 strh r3, [r5, r0] @ movhi -.L2956: +.L2964: add r4, r4, #1 - b .L2955 -.L2975: - ldr r7, .L2977+16 + b .L2963 +.L2983: + ldr r9, .L2985+16 mov r4, #0 - ldr r9, .L2977+20 + ldr r7, .L2985+20 mov r6, r4 - add r8, r7, #1840 -.L2958: + ldr r8, .L2985+8 +.L2966: ldrh r3, [r9] uxth r1, r4 - ldr r5, .L2977+16 + ldr r5, .L2985+20 cmp r3, r1 - bls .L2976 + bls .L2984 ldr r3, [r7, #-3544] mov r5, r1, asl #1 ldrh r2, [r3, r5] ldrh r3, [r8, r5] cmp r2, r3 - beq .L2959 - ldr r0, .L2977+24 + beq .L2967 + ldr r0, .L2985+24 bl printk ldr r3, [r7, #-3544] movw r2, #65535 ldrh r3, [r3, r5] cmp r3, r2 - beq .L2959 + beq .L2967 ldrh r2, [r8, r5] cmp r2, r3 movhi r6, #1 -.L2959: +.L2967: add r4, r4, #1 - b .L2958 -.L2976: + b .L2966 +.L2984: ldr r3, [r5, #-3532] cmp r3, #0 - beq .L2961 + beq .L2969 sub r2, r5, #3520 - add r9, r5, #1840 + ldr r9, .L2985+8 mov r8, #0 ldrh r7, [r2, #-8] ldr r2, [r5, #-3552] rsb r3, r2, r3 - ldr r2, .L2977+28 + ldr r2, .L2985+28 mov r3, r3, asr #1 mul r3, r2, r3 uxth r4, r3 -.L2962: +.L2970: uxth r3, r8 cmp r3, r7 - bcs .L2961 + bcs .L2969 ldr r2, [r5, #-3544] mov r3, r4, asl #1 ldrh r2, [r2, r3] cmp r2, #0 - beq .L2963 - ldr r0, .L2977+32 + beq .L2971 + ldr r0, .L2985+32 mov r1, r4 ldrh r3, [r9, r3] mov r6, #1 bl printk -.L2963: +.L2971: mov r3, #6 ldr r2, [r5, #-3552] mul r4, r3, r4 @@ -17816,23 +17857,23 @@ FtlCheckVpc: add r8, r8, #1 ldrh r4, [r2, r4] cmp r4, r3 - bne .L2962 -.L2961: + bne .L2970 +.L2969: mov r1, r6 - ldr r0, .L2977+36 + ldr r0, .L2985+36 bl printk add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc} -.L2978: +.L2986: .align 2 -.L2977: +.L2985: .word .LANCHOR3+204 .word .LC110 - .word .LANCHOR2+1840 + .word .LANCHOR2+1848 .word .LANCHOR0 - .word .LANCHOR2 .word .LANCHOR0+2328 + .word .LANCHOR2 .word .LC143 .word -1431655765 .word .LC144 @@ -17846,87 +17887,87 @@ Ftlscanalldata: .fnstart @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r4, r5, r6, r7, r8, lr} - .save {r4, r5, r6, r7, r8, lr} + stmfd sp!, {r4, r5, r6, r7, lr} + .save {r4, r5, r6, r7, lr} mov r1, #0 - .pad #32 - sub sp, sp, #32 - ldr r0, .L2989 + .pad #36 + sub sp, sp, #36 + ldr r0, .L2997 bl printk - ldr r5, .L2989+4 - ldr r8, .L2989+8 + ldr r7, .L2997+4 + ldr r5, .L2997+8 mov r4, #0 - mov r6, r5 -.L2980: - ldr r3, [r8, #2448] +.L2988: + ldr r3, [r7, #2448] cmp r4, r3 - bcs .L2988 + bcs .L2996 mov r0, r4 add r1, sp, #28 mov r2, #0 bl log2phys ubfx r3, r4, #0, #11 cmp r3, #0 - bne .L2981 - ldr r0, .L2989+12 + bne .L2989 + ldr r0, .L2997+12 mov r1, r4 ldr r2, [sp, #28] bl printk -.L2981: +.L2989: ldr r3, [sp, #28] cmn r3, #1 - beq .L2983 - str r3, [r5, #1756] + beq .L2991 + str r3, [r5, #1764] mov r2, #0 ldr r3, [r5, #-524] mov r1, #1 - ldr r7, [r5, #-500] - ldr r0, .L2989+16 - str r3, [r5, #1760] - str r4, [r5, #1768] - str r7, [r5, #1764] - str r2, [r5, #1752] + ldr r6, [r5, #-500] + ldr r0, .L2997+16 + str r3, [r5, #1768] + str r2, [r5, #1760] + str r4, [r5, #1776] + str r6, [r5, #1772] bl FlashReadPages - ldr r3, [r5, #1752] + ldr r3, [r5, #1760] + ldr r2, .L2997+8 cmn r3, #1 cmpne r3, #256 - beq .L2984 - ldr r3, [r7, #8] + beq .L2992 + ldr r3, [r6, #8] cmp r3, r4 - beq .L2983 -.L2984: - ldr r3, [r6, #1764] - ldr r2, [r6, #1760] - ldr r0, .L2989+20 - ldr r1, [r3, #4] - str r1, [sp] - ldr r1, [r3, #8] - str r1, [sp, #4] - ldr r1, [r3, #12] - str r1, [sp, #8] - ldr r1, [r2] - str r1, [sp, #12] + beq .L2991 +.L2992: + ldr r3, [r2, #1772] + ldr r1, [r2, #1768] + ldr r0, [r3, #4] + str r0, [sp] + ldr r0, [r3, #8] + str r0, [sp, #4] + ldr r0, [r3, #12] + str r0, [sp, #8] + ldr r0, [r1] + str r0, [sp, #12] + ldr r1, [r1, #4] + ldr r0, .L2997+20 + str r1, [sp, #16] mov r1, r4 - ldr r2, [r2, #4] - str r2, [sp, #16] - ldr r2, [r6, #1756] + ldr r2, [r2, #1764] ldr r3, [r3] bl printk -.L2983: +.L2991: add r4, r4, #1 - b .L2980 -.L2988: - add sp, sp, #32 + b .L2988 +.L2996: + add sp, sp, #36 @ sp needed - ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L2990: + ldmfd sp!, {r4, r5, r6, r7, pc} +.L2998: .align 2 -.L2989: +.L2997: .word .LC146 - .word .LANCHOR2 .word .LANCHOR0 + .word .LANCHOR2 .word .LC147 - .word .LANCHOR2+1752 + .word .LANCHOR2+1760 .word .LC148 .fnend .size Ftlscanalldata, .-Ftlscanalldata @@ -17944,20 +17985,20 @@ FtlReUsePrevPpa: ubfx r0, r1, #10, #16 str r1, [sp, #4] bl P2V_block_in_plane - ldr r6, .L3001 + ldr r6, .L3009 ldr r4, [r6, #-3544] mov r7, r0, asl #1 ldrh r3, [r4, r7] cmp r3, #0 addne r3, r3, #1 strneh r3, [r4, r7] @ movhi - bne .L2993 + bne .L3001 ldr r4, [r6, #-3532] cmp r4, #0 - beq .L2993 + beq .L3001 ldr r1, [r6, #-3552] sub r2, r6, #3520 - ldr lr, .L3001+4 + ldr lr, .L3009+4 movw r9, #65535 rsb r4, r1, r4 ldrh ip, [r2, #-8] @@ -17966,14 +18007,14 @@ FtlReUsePrevPpa: mul r4, lr, r4 mov lr, #6 uxth r4, r4 -.L2994: +.L3002: uxth r2, r3 cmp r2, ip - bcs .L2993 + bcs .L3001 cmp r4, r0 - bne .L2995 + bne .L3003 mov r1, r4 - ldr r0, .L3001+8 + ldr r0, .L3009+8 bl List_remove_node ldrh r3, [r8, #-8] mov r0, r4 @@ -17984,14 +18025,14 @@ FtlReUsePrevPpa: ldrh r3, [r2, r7] add r3, r3, #1 strh r3, [r2, r7] @ movhi - b .L2993 -.L2995: + b .L3001 +.L3003: mul r4, lr, r4 add r3, r3, #1 ldrh r4, [r1, r4] cmp r4, r9 - bne .L2994 -.L2993: + bne .L3002 +.L3001: mov r0, r5 add r1, sp, #4 mov r2, #1 @@ -17999,9 +18040,9 @@ FtlReUsePrevPpa: add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc} -.L3002: +.L3010: .align 2 -.L3001: +.L3009: .word .LANCHOR2 .word -1431655765 .word .LANCHOR2-3532 @@ -18022,9 +18063,9 @@ FtlRecoverySuperblock: sub sp, sp, #68 mov r4, r0 cmp r3, r2 - beq .L3144 + beq .L3152 ldrh r3, [r0, #2] - ldr r5, .L3161 + ldr r5, .L3169 str r3, [sp, #8] ldrb r3, [r0, #6] @ zero_extendqisi2 ldr r1, [sp, #8] @@ -18036,44 +18077,44 @@ FtlRecoverySuperblock: streqh r3, [r0, #4] @ movhi streqb r3, [r0, #6] ldrneh r0, [r0, #16] - beq .L3144 -.L3007: + beq .L3152 +.L3015: cmp r0, r2 add r3, r3, #1 uxtheq r1, r3 addeq r1, r4, r1, asl #1 ldreqh r0, [r1, #16] - beq .L3007 -.L3156: + beq .L3015 +.L3164: ldrb r1, [r4, #8] @ zero_extendqisi2 mov r9, r4 cmp r1, #1 - bne .L3009 + bne .L3017 bl FtlGetLastWrittenPage cmn r0, #1 mov r4, r0 - beq .L3010 - ldrb r3, [r5, #144] @ zero_extendqisi2 + beq .L3018 + ldrb r3, [r5, #148] @ zero_extendqisi2 cmp r3, #0 - bne .L3147 - ldr r3, .L3161 + bne .L3155 + ldr r3, .L3169 add r3, r3, r0, asl #1 - ldrh r6, [r3, #148] - b .L3081 -.L3009: + ldrh r6, [r3, #152] + b .L3089 +.L3017: mov r1, #0 bl FtlGetLastWrittenPage cmn r0, #1 mov r4, r0 - beq .L3010 -.L3147: + beq .L3018 +.L3155: mov r6, r4 -.L3081: - ldr r3, .L3161+4 +.L3089: + ldr r3, .L3169+4 movw r8, #65535 ldrh r2, [r3], #80 str r2, [sp, #4] - ldr r2, .L3161+8 + ldr r2, .L3169+8 ldrh r7, [r3] add r3, r9, #14 str r3, [sp, #20] @@ -18083,16 +18124,16 @@ FtlRecoverySuperblock: mov r2, #0 mov r5, r2 mov r10, r2 - b .L3012 -.L3010: + b .L3020 +.L3018: mov r3, #0 strh r3, [r9, #2] @ movhi strb r3, [r9, #6] - b .L3144 -.L3014: + b .L3152 +.L3022: ldrh r3, [r0, #2]! cmp r3, r8 - beq .L3013 + beq .L3021 mov r1, #36 orr r3, r6, r3, asl #10 mla r1, r1, r5, ip @@ -18106,23 +18147,23 @@ FtlRecoverySuperblock: bic r3, r3, #3 add r3, lr, r3 str r3, [r1, #12] -.L3013: +.L3021: add r2, r2, #1 -.L3012: +.L3020: ldr r1, [sp, #4] uxth r3, r2 cmp r3, r1 - bcc .L3014 + bcc .L3022 ldrb r3, [r9, #8] @ zero_extendqisi2 cmp r3, #1 movne r3, #0 - bne .L3148 - ldr r3, .L3161 - ldrb lr, [r3, #144] @ zero_extendqisi2 + bne .L3156 + ldr r3, .L3169 + ldrb lr, [r3, #148] @ zero_extendqisi2 adds r3, lr, #0 movne r3, #1 -.L3148: - ldr r7, .L3161+8 +.L3156: + ldr r7, .L3169+8 mov r1, r5 str r3, [sp, #24] mov fp, #0 @@ -18133,21 +18174,21 @@ FtlRecoverySuperblock: ldr r3, [r7, #-3328] str r7, [sp, #12] str r3, [sp, #28] -.L3016: +.L3024: uxth r8, fp cmp r8, r5 - bcs .L3023 + bcs .L3031 mov r1, #36 ldr r0, [r7, #-536] mul r1, r1, fp add ip, r0, r1 ldr r1, [r0, r1] cmp r1, #0 - bne .L3017 + bne .L3025 ldr ip, [ip, #12] ldr r3, [ip, #4] cmn r3, #1 - beq .L3018 + beq .L3026 mov r0, r3 ldr r1, [r7, #-3328] str ip, [sp, #32] @@ -18158,32 +18199,32 @@ FtlRecoverySuperblock: ldr ip, [sp, #32] addne r3, r3, #1 strne r3, [r7, #-3328] -.L3018: +.L3026: ldr r1, [ip] cmn r1, #1 - bne .L3019 -.L3023: + bne .L3027 +.L3031: cmp r8, r5 - ldr r5, .L3161+8 - bne .L3145 + ldr r5, .L3169+8 + bne .L3153 add fp, r4, #1 uxth r3, fp str r3, [sp, #4] ldr r3, [r5, #-536] ldr r0, [r3, #4] - b .L3149 -.L3017: + b .L3157 +.L3025: ldr r1, [ip, #4] uxth r10, r6 - ldr r0, .L3161+12 + ldr r0, .L3169+12 bl printk ldrh r1, [r9] - ldr r3, .L3161+16 + ldr r3, .L3169+16 strh r1, [r3] @ movhi -.L3019: +.L3027: add fp, fp, #1 - b .L3016 -.L3145: + b .L3024 +.L3153: uxth r3, r4 str r3, [sp, #4] ldr r3, [sp, #12] @@ -18191,21 +18232,21 @@ FtlRecoverySuperblock: ldr r3, [r3, #-536] mla r8, r2, r8, r3 ldr r0, [r8, #4] -.L3149: +.L3157: ubfx r0, r0, #10, #16 bl P2V_plane - ldr r2, .L3161 + ldr r2, .L3169 str r0, [sp, #12] ldrb r0, [r9, #8] @ zero_extendqisi2 cmp r0, #1 - bne .L3025 - ldrb r3, [r2, #144] @ zero_extendqisi2 + bne .L3033 + ldrb r3, [r2, #148] @ zero_extendqisi2 cmp r3, #0 ldreq r3, [sp, #4] addeq fp, r2, r3, asl #1 - ldreqh r3, [fp, #148] + ldreqh r3, [fp, #152] streq r3, [sp, #4] -.L3025: +.L3033: movw r3, #2388 ldr r1, [sp, #12] ldrh r3, [r2, r3] @@ -18225,7 +18266,7 @@ FtlRecoverySuperblock: cmpeq r1, ip moveq r0, r9 moveq r1, r3 - beq .L3154 + beq .L3162 ldr r3, [sp, #28] movw r2, #65535 sub fp, r3, #1 @@ -18234,14 +18275,14 @@ FtlRecoverySuperblock: cmp r10, r2 orrne r3, r3, #1 cmp r3, #0 - beq .L3029 + beq .L3037 ldr r3, [r5, #-368] uxth r10, r6 - ldr r7, .L3161+8 + ldr r7, .L3169+8 mvn r8, #0 cmn r3, #1 mov r6, r8 - ldreq r3, .L3161+8 + ldreq r3, .L3169+8 streq fp, [r3, #-368] ldr r3, [r5, #-368] str r3, [sp, #16] @@ -18251,10 +18292,10 @@ FtlRecoverySuperblock: subgt r4, r10, #7 ldrle r4, [sp, #8] uxthgt r4, r4 -.L3032: +.L3040: cmp r4, r10 - bhi .L3045 - ldr r3, .L3161+4 + bhi .L3053 + ldr r3, .L3169+4 mov r0, #36 ldr lr, [r7, #-536] ldr r1, [sp, #20] @@ -18262,11 +18303,11 @@ FtlRecoverySuperblock: str r3, [sp, #28] mov r3, #0 mov r5, r3 -.L3046: +.L3054: ldr ip, [sp, #28] uxth r2, r3 cmp r2, ip - bcs .L3157 + bcs .L3165 ldrh r2, [r1, #2]! movw ip, #65535 add r3, r3, #1 @@ -18276,149 +18317,148 @@ FtlRecoverySuperblock: addne r5, r5, #1 uxthne r5, r5 strne r2, [ip, #4] - b .L3046 -.L3157: + b .L3054 +.L3165: mov r1, r5 ldr r2, [sp, #24] ldr r0, [r7, #-536] bl FlashReadPages - ldr r3, .L3161 + ldr r3, .L3169 mov r2, #36 movw r1, #65535 - ldrb ip, [r3, #144] @ zero_extendqisi2 + ldrb ip, [r3, #148] @ zero_extendqisi2 ldr r3, [r7, #-536] mla r5, r2, r5, r3 - ldr r2, .L3161+20 + ldr r2, .L3169+20 add r2, r2, r4, asl #1 -.L3035: +.L3043: cmp r3, r5 - beq .L3158 + beq .L3166 ldr r0, [r3] cmp r0, #0 - bne .L3036 + bne .L3044 ldr r0, [r3, #12] ldrh lr, [r0] cmp lr, r1 - beq .L3037 + beq .L3045 ldr r0, [r0, #4] cmn r0, #1 - beq .L3037 + beq .L3045 cmn r8, #1 ldr r6, [r7, #-368] str r0, [r7, #-368] - bne .L3037 + bne .L3045 ldrh r0, [r2] cmp r0, r1 - bne .L3038 + bne .L3046 cmp ip, #0 - beq .L3037 -.L3038: + beq .L3045 +.L3046: cmp r6, fp mvneq r8, #0 movne r8, r6 - b .L3037 -.L3036: - ldrh r1, [r9] - movw r3, #1848 - ldr r2, .L3161+24 - strh r1, [r2, r3] @ movhi + b .L3045 +.L3044: + ldr r3, .L3169+16 + ldrh r2, [r9] + strh r2, [r3] @ movhi ldrb r3, [r9, #8] @ zero_extendqisi2 cmp r3, #0 - bne .L3029 - ldr r2, .L3161+20 + bne .L3037 + ldr r2, .L3169+20 mov r4, r4, asl #1 - ldr r3, .L3161+8 + ldr r3, .L3169+8 ldrh r1, [r2, r4] movw r2, #65535 cmp r1, r2 - bne .L3040 + bne .L3048 cmn r8, #1 strne r8, [r3, #-368] - bne .L3029 + bne .L3037 ldr r2, [sp, #16] cmp r2, fp - bne .L3150 + bne .L3158 ldr r2, [r3, #-368] - b .L3155 -.L3040: + b .L3163 +.L3048: cmp r6, fp - beq .L3043 + beq .L3051 cmn r6, #1 strne r6, [r3, #-368] - b .L3029 -.L3043: + b .L3037 +.L3051: ldr r2, [r3, #-368] cmp r2, fp - beq .L3029 -.L3155: + beq .L3037 +.L3163: sub r2, r2, #1 - b .L3150 -.L3037: + b .L3158 +.L3045: add r3, r3, #36 - b .L3035 -.L3158: + b .L3043 +.L3166: add r4, r4, #1 uxth r4, r4 - b .L3032 -.L3045: - ldr r3, .L3161+8 + b .L3040 +.L3053: + ldr r3, .L3169+8 mvn r2, #0 -.L3150: +.L3158: str r2, [r3, #-368] -.L3029: - ldr r2, .L3161+24 - movw r3, #1850 +.L3037: + ldr r2, .L3169+24 + movw r3, #1858 ldr r10, [sp, #8] mov r1, #1 - ldr r4, .L3161+8 + ldr r4, .L3169+8 strh r1, [r2, r3] @ movhi -.L3047: - ldr r3, .L3161+4 +.L3055: + ldr r3, .L3169+4 movw r1, #65535 ldr r8, [r4, #-536] mov r0, #36 ldr r6, [sp, #20] mov r5, #0 ldrh r7, [r3] - ldrb lr, [r3, #-2176] @ zero_extendqisi2 + ldrb lr, [r3, #-2172] @ zero_extendqisi2 str r5, [sp, #16] -.L3048: +.L3056: uxth r3, r5 cmp r3, r7 - bcs .L3159 + bcs .L3167 ldrh r3, [r6, #2]! cmp r3, r1 - beq .L3049 + beq .L3057 ldr r2, [sp, #16] orr r3, r10, r3, asl #10 mla r2, r0, r2, r8 str r3, [r2, #4] ldrb ip, [r9, #8] @ zero_extendqisi2 cmp ip, #1 - bne .L3050 + bne .L3058 cmp lr, #0 orrne r3, r3, #-2147483648 strne r3, [r2, #4] -.L3050: +.L3058: ldr r3, [sp, #16] add r3, r3, #1 uxth r3, r3 str r3, [sp, #16] -.L3049: +.L3057: add r5, r5, #1 - b .L3048 -.L3159: + b .L3056 +.L3167: ldr r0, [r4, #-536] ldr r1, [sp, #16] ldr r2, [sp, #24] bl FlashReadPages mov r3, #0 -.L3153: +.L3161: str r3, [sp, #28] ldr r2, [sp, #16] ldrh r3, [sp, #28] cmp r3, r2 - bcs .L3160 + bcs .L3168 ldr r3, [sp, #28] mov r5, #36 ldr r8, [r4, #-536] @@ -18430,7 +18470,7 @@ FtlRecoverySuperblock: bl P2V_plane ldr r3, [sp, #8] cmp r10, r3 - bcc .L3053 + bcc .L3061 ldr r3, [sp, #32] ldr r2, [sp, #8] cmp r0, r3 @@ -18439,31 +18479,31 @@ FtlRecoverySuperblock: cmp r10, r2 movne r3, #0 cmp r3, #0 - bne .L3053 + bne .L3061 ldr r3, [sp, #12] ldr r2, [sp, #4] cmp r0, r3 cmpeq r10, r2 - beq .L3054 + beq .L3062 ldr r3, [r8, r5] cmn r3, #1 - beq .L3055 + beq .L3063 ldr r7, [r7, #12] movw r3, #61589 ldrh r2, [r7] cmp r2, r3 ldrneh r0, [r9] - bne .L3151 + bne .L3159 ldr fp, [r7, #4] cmn fp, #1 - beq .L3057 + beq .L3065 ldr r1, [r4, #-3328] mov r0, fp bl ftl_cmp_data_ver cmp r0, #0 addne r3, fp, #1 strne r3, [r4, #-3328] -.L3057: +.L3065: ldr r6, [r7, #8] add r1, sp, #56 ldr r3, [r7, #12] @@ -18473,14 +18513,14 @@ FtlRecoverySuperblock: bl log2phys ldr r1, [r4, #-368] cmn r1, #1 - beq .L3058 + beq .L3066 mov r0, fp bl ftl_cmp_data_ver cmp r0, #0 - beq .L3058 + beq .L3066 ldr r3, [sp, #52] cmn r3, #1 - beq .L3059 + beq .L3067 ldr r0, [r4, #-536] mov r2, #0 mov r1, #1 @@ -18494,22 +18534,22 @@ FtlRecoverySuperblock: str r3, [sp, #36] ldr r3, [r2, r5] cmn r3, #1 - bne .L3060 - b .L3061 -.L3059: + bne .L3068 + b .L3069 +.L3067: ldr r3, [sp, #60] ldr r2, [sp, #56] cmp r2, r3 - bne .L3053 + bne .L3061 mov r0, r6 add r1, sp, #52 mov r2, #1 bl log2phys - b .L3053 -.L3060: + b .L3061 +.L3068: ldr r7, [r8, #8] cmp r7, r6 - bne .L3061 + bne .L3069 ldr r0, [r4, #-368] ldr r1, [sp, #36] str r2, [sp, #44] @@ -18518,84 +18558,84 @@ FtlRecoverySuperblock: cmp r0, #0 ldr ip, [sp, #40] ldr r2, [sp, #44] - beq .L3061 + beq .L3069 ldr r3, [sp, #56] ldr r1, [sp, #60] cmp r3, r1 - beq .L3066 + beq .L3074 ldr r1, [sp, #52] cmp r3, r1 - beq .L3061 + beq .L3069 cmn r3, #1 streq r3, [r2, r5] - beq .L3065 + beq .L3073 str r3, [ip, #4] mov r0, ip mov r1, #1 mov r2, #0 ldr r8, [ip, #12] bl FlashReadPages -.L3065: +.L3073: ldr r3, [r4, #-536] ldr r3, [r3, r5] cmn r3, #1 - beq .L3066 + beq .L3074 ldr r5, [r8, #4] ldr r0, [r4, #-368] mov r1, r5 bl ftl_cmp_data_ver cmp r0, #0 - beq .L3066 + beq .L3074 ldr r0, [sp, #36] mov r1, r5 bl ftl_cmp_data_ver cmp r0, #0 - beq .L3061 -.L3066: + beq .L3069 +.L3074: mov r0, r7 ldr r1, [sp, #52] bl FtlReUsePrevPpa -.L3061: +.L3069: mvn r3, #0 str r3, [sp, #52] - b .L3068 -.L3058: + b .L3076 +.L3066: ldr r3, [sp, #60] ldr r2, [sp, #56] cmp r2, r3 - beq .L3068 + beq .L3076 ldr r3, [sp, #52] cmn r3, #1 - beq .L3070 - ldr r2, .L3161 + beq .L3078 + ldr r2, .L3169 ubfx r3, r3, #10, #21 ldr r2, [r2, #2336] cmp r3, r2 - bcs .L3053 -.L3070: + bcs .L3061 +.L3078: mov r0, r6 add r1, sp, #60 mov r2, #1 bl log2phys ldr r5, [sp, #56] cmn r5, #1 - beq .L3068 + beq .L3076 ldr r3, [sp, #52] cmp r5, r3 - beq .L3068 + beq .L3076 ubfx r0, r5, #10, #16 bl P2V_block_in_plane - ldr r3, .L3161+28 + ldr r3, .L3169+28 ldrh r2, [r3] cmp r2, r0 - beq .L3072 + beq .L3080 ldrh r2, [r3, #48] cmp r2, r0 - beq .L3072 + beq .L3080 ldrh r3, [r3, #96] cmp r3, r0 - bne .L3068 -.L3072: + bne .L3076 +.L3080: ldr r0, [r4, #-536] mov r1, #1 mov r2, #0 @@ -18606,19 +18646,19 @@ FtlRecoverySuperblock: ldr r1, [r7, #4] ldr r3, [r3] cmn r3, #1 - beq .L3068 + beq .L3076 mov r0, fp bl ftl_cmp_data_ver cmp r0, #0 - bne .L3068 + bne .L3076 mov r0, r6 add r1, sp, #56 mov r2, #1 bl log2phys -.L3068: +.L3076: ldr r0, [sp, #52] cmn r0, #1 - beq .L3053 + beq .L3061 ubfx r0, r0, #10, #16 bl P2V_block_in_plane ldr r2, [r4, #-3544] @@ -18626,108 +18666,108 @@ FtlRecoverySuperblock: mov r1, r0 ldrh r3, [r2, r3] cmp r3, #0 - beq .L3073 -.L3151: + beq .L3081 +.L3159: bl decrement_vpc_count - b .L3053 -.L3073: - ldr r0, .L3161+32 + b .L3061 +.L3081: + ldr r0, .L3169+32 bl printk - b .L3053 -.L3055: - ldrh r3, [r9] + b .L3061 +.L3063: + ldrh r2, [r9] mov r1, r6 - ldr r2, .L3161+16 - ldr r0, .L3161+36 - strh r3, [r2] @ movhi + ldr r3, .L3169+16 + ldr r0, .L3169+36 + strh r2, [r3] @ movhi mov r2, fp bl printk - ldr r3, .L3161+24 - ldr r3, [r3, #1852] + ldr r3, .L3169+24 + ldr r3, [r3, #1860] cmp r3, #31 - bhi .L3074 - ldr r2, .L3161+24 + bhi .L3082 + ldr r2, .L3169+24 ldr r1, [sp, #60] add r2, r2, r3, asl #2 add r3, r3, #1 - str r1, [r2, #1856] - ldr r2, .L3161+24 - str r3, [r2, #1852] -.L3074: + str r1, [r2, #1864] + ldr r2, .L3169+24 + str r3, [r2, #1860] +.L3082: ldrh r0, [r9] bl decrement_vpc_count ldr r3, [r4, #-368] cmn r3, #1 - beq .L3152 + beq .L3160 cmp r3, fp - bls .L3053 -.L3152: + bls .L3061 +.L3160: str fp, [r4, #-368] -.L3053: +.L3061: ldr r3, [sp, #28] add r3, r3, #1 - b .L3153 -.L3160: + b .L3161 +.L3168: ldrb r3, [r9, #8] @ zero_extendqisi2 add r10, r10, #1 cmp r3, #1 uxth r10, r10 - bne .L3077 - ldr r3, .L3161 - ldrb r3, [r3, #144] @ zero_extendqisi2 + bne .L3085 + ldr r3, .L3169 + ldrb r3, [r3, #148] @ zero_extendqisi2 cmp r3, #0 - beq .L3077 - ldr r3, .L3161+40 + beq .L3085 + ldr r3, .L3169+40 ldr r2, [sp, #4] ldrh r3, [r3] cmp r2, r10 cmpeq r3, r10 - beq .L3054 -.L3077: - ldr r2, .L3161+44 + beq .L3062 +.L3085: + ldr r2, .L3169+44 ldrh r3, [r2] cmp r10, r3 - bne .L3047 + bne .L3055 ldrh r1, [r2, #-68] movw r0, #65535 mov r3, #0 strh r10, [r9, #2] @ movhi strh r3, [r9, #4] @ movhi -.L3078: +.L3086: uxth r2, r3 cmp r2, r1 - bcs .L3144 + bcs .L3152 ldr lr, [sp, #20] add r3, r3, #1 ldrh ip, [lr, #2]! cmp ip, r0 str lr, [sp, #20] - beq .L3078 + beq .L3086 strb r2, [r9, #6] - b .L3144 -.L3054: + b .L3152 +.L3062: ldrb r3, [sp, #12] @ zero_extendqisi2 mov r0, r9 ldr r1, [sp, #4] strb r3, [r9, #6] ldrh r3, [sp, #4] strh r3, [r9, #2] @ movhi -.L3154: +.L3162: ldr r2, [sp, #12] bl ftl_sb_update_avl_pages -.L3144: +.L3152: mov r0, #0 add sp, sp, #68 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3162: +.L3170: .align 2 -.L3161: +.L3169: .word .LANCHOR0 .word .LANCHOR0+2320 .word .LANCHOR2 .word .LC149 - .word .LANCHOR4+1848 + .word .LANCHOR4+1856 .word .LANCHOR2-2620 .word .LANCHOR4 .word .LANCHOR2-3524 @@ -18748,28 +18788,28 @@ FtlVpcCheckAndModify: .save {r4, r5, r6, r7, r8, r9, r10, lr} .pad #8 mov r4, #0 - ldr r5, .L3180 - ldr r1, .L3180+4 - ldr r0, .L3180+8 + ldr r5, .L3188 + ldr r1, .L3188+4 + ldr r0, .L3188+8 bl printk movw r3, #2330 ldrh r2, [r5, r3] mov r1, #0 - ldr r6, .L3180+12 + ldr r6, .L3188+12 mov r2, r2, asl #1 ldr r0, [r6, #-476] bl ftl_memset -.L3164: +.L3172: ldr r3, [r5, #2448] cmp r4, r3 - bcs .L3178 + bcs .L3186 mov r0, r4 add r1, sp, #4 mov r2, #0 bl log2phys ldr r0, [sp, #4] cmn r0, #1 - beq .L3165 + beq .L3173 ubfx r0, r0, #10, #16 bl P2V_block_in_plane ldr r2, [r6, #-476] @@ -18777,19 +18817,19 @@ FtlVpcCheckAndModify: ldrh r3, [r2, r0] add r3, r3, #1 strh r3, [r2, r0] @ movhi -.L3165: +.L3173: add r4, r4, #1 - b .L3164 -.L3178: - ldr r8, .L3180+16 + b .L3172 +.L3186: + ldr r8, .L3188+16 mov r7, #0 - ldr r10, .L3180+12 - ldr r9, .L3180+20 -.L3167: + ldr r10, .L3188+12 + ldr r9, .L3188+20 +.L3175: ldrh r3, [r8] uxth r4, r7 cmp r3, r4 - bls .L3179 + bls .L3187 ldr r3, [r6, #-3544] mov r5, r4, asl #1 movw r1, #65535 @@ -18798,18 +18838,18 @@ FtlVpcCheckAndModify: ldrh r3, [r3, r5] cmp r2, r1 cmpne r2, r3 - beq .L3168 + beq .L3176 ldrh r1, [r9] cmp r1, r4 - beq .L3168 - ldr r1, .L3180+24 + beq .L3176 + ldr r1, .L3188+24 ldrh r0, [r1] cmp r0, r4 - beq .L3168 + beq .L3176 ldrh r1, [r1, #-48] cmp r1, r4 - beq .L3168 - ldr r0, .L3180+28 + beq .L3176 + ldr r0, .L3188+28 mov r1, r4 bl printk ldr r3, [r10, #-3544] @@ -18818,21 +18858,21 @@ FtlVpcCheckAndModify: ldr r2, [r10, #-476] ldrh r2, [r2, r5] strh r2, [r3, r5] @ movhi - beq .L3168 + beq .L3176 mov r0, r4 bl update_vpc_list -.L3168: +.L3176: add r7, r7, #1 - b .L3167 -.L3179: + b .L3175 +.L3187: bl l2p_flush bl FtlVpcTblFlush add sp, sp, #8 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L3181: +.L3189: .align 2 -.L3180: +.L3188: .word .LANCHOR0 .word .LANCHOR3+216 .word .LC110 @@ -18850,7 +18890,7 @@ FtlGcScanTempBlk: .fnstart @ args = 0, pretend = 0, frame = 64 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L3235 + ldr r2, .L3243 movw r3, #3448 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} @@ -18861,37 +18901,37 @@ FtlGcScanTempBlk: mov r4, r0 str r1, [sp, #12] cmp r5, r3 - beq .L3216 + beq .L3224 cmp r5, #0 - bne .L3183 - b .L3184 -.L3216: + bne .L3191 + b .L3192 +.L3224: mov r5, #0 -.L3183: - ldr r2, .L3235+4 +.L3191: + ldr r2, .L3243+4 movw r3, #2388 ldrh r3, [r2, r3] ldr r2, [sp, #12] cmp r2, r3 - bne .L3185 -.L3184: + bne .L3193 +.L3192: bl FtlGcPageVarInit -.L3185: - ldr r6, .L3235+8 +.L3193: + ldr r6, .L3243+8 mvn r3, #0 str r3, [sp, #8] mov r3, #0 str r3, [sp] -.L3186: +.L3194: ldrh r1, [r4] movw r3, #65535 mov r2, #0 strb r2, [r4, #8] cmp r1, r3 - beq .L3187 -.L3188: -.L3213: - ldr r3, .L3235+12 + beq .L3195 +.L3196: +.L3221: + ldr r3, .L3243+12 mov r7, #0 ldr ip, [r6, #-2692] add r1, r4, #14 @@ -18904,17 +18944,17 @@ FtlGcScanTempBlk: str r3, [sp, #16] ldr r3, [r6, #-2696] str r3, [sp, #20] - ldr r3, .L3235+16 + ldr r3, .L3243+16 ldrh r0, [r3] ldrh lr, [r3, #2] -.L3189: +.L3197: ldr r2, [sp, #4] uxth r3, r7 cmp r3, r2 - bcs .L3233 + bcs .L3241 ldrh r3, [r1, #2]! cmp r3, r9 - beq .L3190 + beq .L3198 ldr r2, [sp, #16] orr r3, r5, r3, asl #10 mla r2, r10, r8, r2 @@ -18936,20 +18976,20 @@ FtlGcScanTempBlk: bic r3, r3, #3 add r3, ip, r3 str r3, [r2, #12] -.L3190: +.L3198: add r7, r7, #1 - b .L3189 -.L3233: + b .L3197 +.L3241: ldr r0, [r6, #-536] mov r1, r8 mov r2, #0 mov fp, #0 bl FlashReadPages -.L3192: +.L3200: uxth r3, fp cmp r3, r8 - bcs .L3234 - ldr r3, .L3235+8 + bcs .L3242 + ldr r3, .L3243+8 mov r9, #36 mul r9, r9, fp ldr r7, [r3, #-536] @@ -18961,39 +19001,39 @@ FtlGcScanTempBlk: ldr r7, [r7, r9] ldr r10, [r10, #12] cmp r7, #0 - ldr ip, .L3235+4 - ldr r3, .L3235+8 + ldr ip, .L3243+4 + ldr r3, .L3243+8 mov r2, r0 - bne .L3193 + bne .L3201 ldrh r0, [r10] movw r1, #65535 cmp r0, r1 - bne .L3194 -.L3197: - ldrb r1, [ip, #144] @ zero_extendqisi2 + bne .L3202 +.L3205: + ldrb r1, [ip, #148] @ zero_extendqisi2 cmp r1, #0 - beq .L3228 + beq .L3236 mov r1, #1 str r1, [r3, #-372] - b .L3187 -.L3194: - ldr r1, .L3235+4 + b .L3195 +.L3202: + ldr r1, .L3243+4 ldr r0, [r10, #8] ldr r1, [r1, #2448] cmp r0, r1 - bls .L3229 - b .L3197 -.L3228: + bls .L3237 + b .L3205 +.L3236: ldrh r3, [r4] - ldr r2, .L3235+8 + ldr r2, .L3243+8 mov r3, r3, asl #1 ldr r2, [r2, #-3544] - b .L3232 -.L3229: - ldr r3, .L3235+4 - ldrb r3, [r3] @ zero_extendqisi2 + b .L3240 +.L3237: + ldr r3, .L3243+4 + ldrb r3, [r3, #32] @ zero_extendqisi2 cmp r3, #0 - beq .L3201 + beq .L3209 add r1, sp, #24 mov r2, r7 bl log2phys @@ -19005,7 +19045,7 @@ FtlGcScanTempBlk: mov r1, r1, lsr #5 moveq r1, #0 cmp r1, #0 - beq .L3201 + beq .L3209 str r3, [sp, #32] mov r2, r7 ldr r3, [r6, #-504] @@ -19015,50 +19055,50 @@ FtlGcScanTempBlk: ldr r3, [r6, #-496] str r3, [sp, #40] bl FlashReadPages - ldr r3, .L3235+20 + ldr r3, .L3243+20 ldr r2, [r6, #-536] ldrh r3, [r3] add r9, r2, r9 mov r3, r3, asl #7 ldr r2, [sp, #36] - b .L3203 -.L3204: + b .L3211 +.L3212: add r7, r7, #1 -.L3203: +.L3211: cmp r7, r3 - beq .L3201 + beq .L3209 ldr r1, [r9, #8] ldr r0, [r1, r7, asl #2] ldr r1, [r2, r7, asl #2] cmp r0, r1 - beq .L3204 + beq .L3212 ldrh r1, [r4] ldr r2, [sp, #32] - ldr r0, .L3235+24 + ldr r0, .L3243+24 bl printk ldrh r3, [r4] ldr r2, [r6, #-3544] mov r1, #0 mov r3, r3, asl #1 -.L3232: +.L3240: strh r1, [r2, r3] @ movhi ldrh r0, [r4] bl INSERT_FREE_LIST - ldr r2, .L3235+28 + ldr r2, .L3243+28 mvn r3, #0 strh r3, [r4] @ movhi strh r3, [r2] @ movhi - b .L3231 -.L3201: + b .L3239 +.L3209: ldr r0, [r10, #12] add fp, fp, #1 ldr r1, [sp, #4] ldr r2, [r10, #8] bl FtlGcUpdatePage - b .L3192 -.L3193: + b .L3200 +.L3201: ldr r2, [sp, #4] - ldr r0, .L3235+32 + ldr r0, .L3243+32 ldrh r1, [r4] str r3, [sp, #20] str ip, [sp, #16] @@ -19068,28 +19108,28 @@ FtlGcScanTempBlk: ldr r3, [sp, #20] ldr r2, [ip, #2244] cmp r2, #0 - bne .L3207 - ldrb r2, [ip, #144] @ zero_extendqisi2 + bne .L3215 + ldrb r2, [ip, #148] @ zero_extendqisi2 cmp r2, #0 - beq .L3208 -.L3207: + beq .L3216 +.L3215: ldr r1, [r3, #-3608] mov r2, r5, asl #1 ldrh r2, [r1, r2] cmp r2, #159 - bls .L3209 -.L3208: + bls .L3217 +.L3216: ldr r2, [r3, #-536] ldr r2, [r2, r9] cmn r2, #1 - bne .L3210 -.L3209: + bne .L3218 +.L3217: ldr r3, [r3, #-536] add r9, r3, r9 ldr r3, [r9, #4] str r3, [sp, #8] -.L3210: - ldr r3, .L3235+8 +.L3218: + ldr r3, .L3243+8 mov r5, r5, asl #1 mov r2, #0 ldr r3, [r3, #-3544] @@ -19098,11 +19138,11 @@ FtlGcScanTempBlk: bl INSERT_FREE_LIST mvn r3, #0 strh r3, [r4] @ movhi -.L3231: +.L3239: bl FtlGcPageVarInit mov r5, #0 - b .L3186 -.L3234: + b .L3194 +.L3242: ldr r3, [sp] add r5, r5, #1 ldr r2, [sp, #12] @@ -19110,29 +19150,29 @@ FtlGcScanTempBlk: uxth r5, r5 cmp r3, r2 str r3, [sp] - ldr r2, .L3235+36 - bcs .L3212 -.L3214: + ldr r2, .L3243+36 + bcs .L3220 +.L3222: ldrh r3, [r2] cmp r3, r5 - bhi .L3213 + bhi .L3221 mov r2, #0 - b .L3187 -.L3212: - ldr r1, .L3235+40 + b .L3195 +.L3220: + ldr r1, .L3243+40 movw r0, #65535 ldrh r3, [r1] cmp r3, r0 - beq .L3214 + beq .L3222 ldr r0, [sp] add r3, r3, r0 strh r3, [r1] @ movhi ldrh r3, [r2] cmp r3, r5 - bls .L3214 - b .L3215 -.L3187: - ldr r1, .L3235 + bls .L3222 + b .L3223 +.L3195: + ldr r1, .L3243 movw r3, #3448 mvn r0, #0 strh r5, [r4, #2] @ movhi @@ -19141,14 +19181,14 @@ FtlGcScanTempBlk: mov r0, r4 mov r1, r5 bl ftl_sb_update_avl_pages -.L3215: +.L3223: ldr r0, [sp, #8] add sp, sp, #68 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3236: +.L3244: .align 2 -.L3235: +.L3243: .word .LANCHOR1 .word .LANCHOR0 .word .LANCHOR2 @@ -19173,23 +19213,23 @@ FtlReadRefresh: .save {r4, r5, r6, r7, r8, r9, r10, lr} .pad #40 sub sp, sp, #40 - ldr r5, .L3254 - ldr r4, .L3254+4 + ldr r5, .L3262 + ldr r4, .L3262+4 ldr r9, [r5, #-3152] mov r6, r5 cmp r9, #0 - beq .L3238 + beq .L3246 ldr r2, [r5, #-3148] ldr r3, [r4, #2448] cmp r2, r3 - bcs .L3239 + bcs .L3247 mov r5, #2048 mov r7, r6 -.L3244: +.L3252: ldr r0, [r6, #-3148] ldr r3, [r4, #2448] cmp r0, r3 - bcs .L3243 + bcs .L3251 mov r2, #0 mov r1, sp bl log2phys @@ -19198,7 +19238,7 @@ FtlReadRefresh: str r3, [r7, #-3148] ldr r2, [sp] cmn r2, #1 - beq .L3242 + beq .L3250 add r0, sp, #40 str r2, [sp, #8] mov r1, #1 @@ -19210,26 +19250,26 @@ FtlReadRefresh: bl FlashReadPages ldr r3, [sp, #4] cmp r3, #256 - bne .L3243 + bne .L3251 ldr r0, [sp] ubfx r0, r0, #10, #16 bl P2V_block_in_plane bl FtlGcRefreshBlock -.L3243: +.L3251: mvn r0, #0 - b .L3246 -.L3242: + b .L3254 +.L3250: subs r5, r5, #1 - bne .L3244 - b .L3243 -.L3239: + bne .L3252 + b .L3251 +.L3247: ldr r3, [r5, #-3364] mov r0, #0 str r0, [r5, #-3152] str r0, [r5, #-3148] str r3, [r5, #-3156] - b .L3246 -.L3238: + b .L3254 +.L3246: ldr r1, [r5, #-3312] sub r10, r5, #3600 ldr r8, [r5, #-3364] @@ -19241,7 +19281,7 @@ FtlReadRefresh: movhi r4, #31 movls r4, #63 cmp r7, r2 - bhi .L3248 + bhi .L3256 mov r1, r1, lsr #10 mov r0, #1000 mul r0, r0, r3 @@ -19249,15 +19289,15 @@ FtlReadRefresh: bl __aeabi_uidiv add r0, r0, r7 cmp r0, r8 - bcc .L3248 + bcc .L3256 ldrh r3, [r10, #28] ands r0, r4, r3 movne r0, r9 - bne .L3246 + bne .L3254 ldr r2, [r5, #-3132] cmp r2, r3 - beq .L3246 -.L3248: + beq .L3254 +.L3256: ldrh r3, [r10, #28] mov r0, #0 str r8, [r6, #-3156] @@ -19265,13 +19305,13 @@ FtlReadRefresh: str r3, [r6, #-3132] mov r3, #1 str r3, [r6, #-3152] -.L3246: +.L3254: add sp, sp, #40 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L3255: +.L3263: .align 2 -.L3254: +.L3262: .word .LANCHOR2 .word .LANCHOR0 .fnend @@ -19286,28 +19326,28 @@ FtlGcFreeTempBlock: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} movw r3, #2388 - ldr r4, .L3295 + ldr r4, .L3303 .pad #28 sub sp, sp, #28 - ldr r6, .L3295+4 + ldr r6, .L3303+4 ldr ip, [r4, #-3616] ldrh r1, [r6, r3] cmp ip, #0 - bne .L3293 + bne .L3301 sub r7, r4, #3424 movw lr, #65535 ldrh r5, [r7, #-4] cmp r5, lr - bne .L3259 -.L3268: + bne .L3267 +.L3276: ldrh r2, [r7, #-4] movw r3, #65535 - ldr r5, .L3295 + ldr r5, .L3303 mov r8, #0 cmp r2, r3 str r8, [r4, #-372] sub r9, r5, #3424 - beq .L3293 + beq .L3301 bl FtlCacheWriteBack movw r2, #2388 ldrb r0, [r5, #-3421] @ zero_extendqisi2 @@ -19325,45 +19365,45 @@ FtlGcFreeTempBlock: add r3, ip, r3 str r3, [r5, #-3344] stmib sp, {r2, r5} - b .L3269 -.L3259: + b .L3277 +.L3267: cmp r0, #0 - beq .L3262 - ldr r2, .L3295+8 + beq .L3270 + ldr r2, .L3303+8 movw r3, #3448 ldrh r0, [r2, r3] cmp r0, lr - beq .L3263 -.L3264: + beq .L3271 +.L3272: mov r1, #2 - b .L3262 -.L3263: + b .L3270 +.L3271: strh ip, [r2, r3] @ movhi sub r3, r4, #3520 ldrh r3, [r3, #-8] cmp r3, #17 - bhi .L3264 -.L3262: - ldr r0, .L3295+12 + bhi .L3272 +.L3270: + ldr r0, .L3303+12 bl FtlGcScanTempBlk cmn r0, #1 str r0, [sp, #20] - beq .L3265 - ldr r3, .L3295 + beq .L3273 + ldr r3, .L3303 mov r5, r5, asl #1 ldr r2, [r3, #-3608] ldrh r3, [r2, r5] cmp r3, #4 - bls .L3266 + bls .L3274 sub r3, r3, #5 mov r0, #1 strh r3, [r2, r5] @ movhi bl FtlEctTblFlush -.L3266: +.L3274: ldr r3, [r4, #-372] - ldr r2, .L3295 + ldr r2, .L3303 cmp r3, #0 - bne .L3267 + bne .L3275 ldr r0, [sp, #20] ldr r3, [r2, #-3136] ubfx r0, r0, #10, #16 @@ -19371,29 +19411,29 @@ FtlGcFreeTempBlock: str r3, [r2, #-3136] bl FtlBbmMapBadBlock bl FtlBbmTblFlush -.L3267: +.L3275: mov r3, #0 str r3, [r4, #-372] - b .L3279 -.L3265: - ldr r2, .L3295+8 + b .L3287 +.L3273: + ldr r2, .L3303+8 movw r3, #3448 ldrh r2, [r2, r3] movw r3, #65535 cmp r2, r3 - bne .L3279 - b .L3268 -.L3272: + bne .L3287 + b .L3276 +.L3280: ldr r3, [r5, #4] cmp r0, r3 - bne .L3291 -.L3271: + bne .L3299 +.L3279: add r8, r8, #1 -.L3269: +.L3277: ldrh r2, [fp] uxth r3, r8 cmp r2, r3 - bls .L3294 + bls .L3302 mov r9, #12 ldr r2, [r6, #2448] mul r9, r9, r3 @@ -19402,7 +19442,7 @@ FtlGcFreeTempBlock: add r5, ip, r9 ldr r0, [r5, #8] cmp r0, r2 - bcs .L3291 + bcs .L3299 mov r2, #0 add r1, sp, #20 str ip, [sp, #12] @@ -19411,7 +19451,7 @@ FtlGcFreeTempBlock: ldr r0, [sp, #20] ldr r2, [ip, r9] cmp r0, r2 - bne .L3272 + bne .L3280 ubfx r0, r0, #10, #16 bl P2V_block_in_plane add r1, r5, #4 @@ -19420,36 +19460,36 @@ FtlGcFreeTempBlock: ldr r0, [r5, #8] bl log2phys mov r0, r9 - b .L3292 -.L3291: + b .L3300 +.L3299: ldrh r0, [r10] -.L3292: +.L3300: bl decrement_vpc_count - b .L3271 -.L3294: + b .L3279 +.L3302: movw r0, #65535 bl decrement_vpc_count - ldrb r3, [r6, #144] @ zero_extendqisi2 + ldrb r3, [r6, #148] @ zero_extendqisi2 cmp r3, #0 - beq .L3274 - ldr r0, .L3295+16 + beq .L3282 + ldr r0, .L3303+16 ldrh r1, [r7, #-4] bl printk -.L3274: +.L3282: ldrh r0, [r7, #-4] ldr r2, [r4, #-3544] mov r3, r0, asl #1 ldrh r3, [r2, r3] cmp r3, #0 - beq .L3275 + beq .L3283 bl INSERT_DATA_LIST - b .L3276 -.L3275: + b .L3284 +.L3283: bl INSERT_FREE_LIST -.L3276: +.L3284: ldr r3, [sp, #4] mvn r5, #0 - ldr r4, .L3295 + ldr r4, .L3303 strh r5, [r7, #-4] @ movhi mov r7, #0 strh r7, [r3, #-12] @ movhi @@ -19465,39 +19505,39 @@ FtlGcFreeTempBlock: cmp r3, r7 sub r3, r4, #3296 ldrh r3, [r3, #-8] - beq .L3277 + beq .L3285 ldr r1, [r4, #-3308] cmp r1, #39 - bhi .L3277 + bhi .L3285 cmp r2, r3 subcc r4, r4, #2720 movcc r3, r3, asl #1 strcch r3, [r4] @ movhi - b .L3293 -.L3277: + b .L3301 +.L3285: add r1, r3, r3, asl #1 cmp r2, r1, asr #2 - ble .L3293 - ldrb r0, [r6, #144] @ zero_extendqisi2 - ldr r2, .L3295+20 + ble .L3301 + ldrb r0, [r6, #148] @ zero_extendqisi2 + ldr r2, .L3303+20 cmp r0, #0 moveq r3, #20 streqh r3, [r2] @ movhi - beq .L3258 + beq .L3266 sub r3, r3, #2 strh r3, [r2] @ movhi -.L3293: +.L3301: mov r0, #0 - b .L3258 -.L3279: + b .L3266 +.L3287: mov r0, #1 -.L3258: +.L3266: add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3296: +.L3304: .align 2 -.L3295: +.L3303: .word .LANCHOR2 .word .LANCHOR0 .word .LANCHOR1 @@ -19516,9 +19556,9 @@ FtlGcPageRecovery: stmfd sp!, {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} movw r5, #2388 - ldr r7, .L3300 - ldr r6, .L3300+4 - ldr r4, .L3300+8 + ldr r7, .L3308 + ldr r6, .L3308+4 + ldr r4, .L3308+8 mov r0, r7 ldrh r1, [r6, r5] bl FtlGcScanTempBlk @@ -19533,9 +19573,9 @@ FtlGcPageRecovery: mov r3, #0 str r3, [r4, #-372] ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L3301: +.L3309: .align 2 -.L3300: +.L3308: .word .LANCHOR2-3428 .word .LANCHOR0 .word .LANCHOR2 @@ -19551,13 +19591,13 @@ FtlPowerLostRecovery: stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r6, #0 - ldr r4, .L3304 - ldr r3, .L3304+4 + ldr r4, .L3312 + ldr r3, .L3312+4 sub r5, r4, #3520 sub r4, r4, #3472 sub r5, r5, #4 sub r4, r4, #4 - str r6, [r3, #1852] + str r6, [r3, #1860] mov r0, r5 bl FtlRecoverySuperblock mov r0, r5 @@ -19571,9 +19611,9 @@ FtlPowerLostRecovery: bl decrement_vpc_count mov r0, r6 ldmfd sp!, {r4, r5, r6, pc} -.L3305: +.L3313: .align 2 -.L3304: +.L3312: .word .LANCHOR2 .word .LANCHOR4 .fnend @@ -19587,15 +19627,15 @@ FtlSysBlkInit: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, lr} .save {r3, r4, r5, r6, r7, r8, r9, lr} - movw r3, #1850 - ldr r4, .L3324 + movw r3, #1858 + ldr r4, .L3332 mov r2, #0 - ldr r6, .L3324+4 - ldr r5, .L3324+8 + ldr r6, .L3332+4 + ldr r5, .L3332+8 strh r2, [r4, r3] @ movhi - movw r3, #1848 + add r3, r4, #1856 mvn r2, #0 - strh r2, [r4, r3] @ movhi + strh r2, [r3] @ movhi ldr r3, [r6, #2324] uxth r0, r3 bl FtlFreeSysBlkQueueInit @@ -19604,14 +19644,14 @@ FtlSysBlkInit: ldrh r2, [r3, #-4] movw r3, #65535 cmp r2, r3 - bne .L3307 -.L3309: + bne .L3315 +.L3317: mvn r8, #0 - b .L3308 -.L3307: + b .L3316 +.L3315: bl FtlLoadSysInfo subs r8, r0, #0 - bne .L3309 + bne .L3317 bl FtlLoadMapInfo mov r7, r4 bl FtlLoadVonderInfo @@ -19627,33 +19667,33 @@ FtlSysBlkInit: mov r0, #12 ldrh r1, [r6, r3] mov r3, r8 -.L3310: +.L3318: cmp r3, r1 - bge .L3315 + bge .L3323 mla ip, r0, r3, r2 ldr ip, [ip, #4] cmp ip, #0 - bge .L3311 -.L3315: - ldr r4, .L3324+12 + bge .L3319 +.L3323: + ldr r4, .L3332+12 cmp r3, r1 add r9, r4, #80 ldrh r2, [r4, #28] add r2, r2, #1 strh r2, [r4, #28] @ movhi - bge .L3322 - b .L3312 -.L3311: + bge .L3330 + b .L3320 +.L3319: add r3, r3, #1 - b .L3310 -.L3322: - movw r3, #1850 + b .L3318 +.L3330: + movw r3, #1858 ldrh r3, [r7, r3] cmp r3, #0 - beq .L3316 -.L3312: + beq .L3324 +.L3320: ldrh r2, [r9, #-4] - ldr r3, .L3324+16 + ldr r3, .L3332+16 ldr r0, [r5, #-3544] mov r2, r2, asl #1 ldrh ip, [r3, #4] @@ -19684,20 +19724,20 @@ FtlSysBlkInit: bl l2p_flush bl FtlVpcTblFlush bl FtlVpcTblFlush -.L3316: +.L3324: ldrh r0, [r9, #-4] movw r3, #65535 - ldr r5, .L3324+16 + ldr r5, .L3332+16 cmp r0, r3 - beq .L3317 + beq .L3325 ldrh r3, [r5, #4] cmp r3, #0 - bne .L3317 + bne .L3325 ldrh r3, [r5, #52] add r9, r5, #52 add r7, r5, #48 cmp r3, #0 - bne .L3317 + bne .L3325 bl FtlGcRefreshOpenBlock ldrh r0, [r5, #48] bl FtlGcRefreshOpenBlock @@ -19706,21 +19746,21 @@ FtlSysBlkInit: bl allocate_new_data_superblock mov r0, r7 bl allocate_new_data_superblock -.L3317: - ldrb r3, [r6] @ zero_extendqisi2 +.L3325: + ldrb r3, [r6, #32] @ zero_extendqisi2 cmp r3, #0 - bne .L3318 + bne .L3326 ldrh r3, [r4, #28] tst r3, #31 - bne .L3308 -.L3318: + bne .L3316 +.L3326: bl FtlVpcCheckAndModify -.L3308: +.L3316: mov r0, r8 ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, pc} -.L3325: +.L3333: .align 2 -.L3324: +.L3332: .word .LANCHOR4 .word .LANCHOR0 .word .LANCHOR2 @@ -19738,11 +19778,11 @@ FtlLowFormat: stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 - ldr r4, .L3361 + ldr r4, .L3369 ldr r6, [r4, #-3616] cmp r6, #0 - bne .L3328 - ldr r5, .L3361+4 + bne .L3336 + ldr r5, .L3369+4 movw r7, #2424 mov r1, r6 ldr r0, [r4, #-448] @@ -19761,37 +19801,37 @@ FtlLowFormat: bl FtlFreeSysBlkQueueInit bl FtlLoadBbt cmp r0, #0 - beq .L3329 + beq .L3337 bl FtlMakeBbt -.L3329: - ldr r0, .L3361+8 +.L3337: + ldr r0, .L3369+8 mov r2, #0 - ldr ip, .L3361+12 -.L3330: + ldr ip, .L3369+12 +.L3338: ldrh r1, [r0] uxth r3, r2 add r2, r2, #1 cmp r3, r1, asl #7 - bge .L3358 + bge .L3366 ldr lr, [r4, #-508] mvn r1, r3 orr r1, r3, r1, asl #16 str r1, [lr, r3, asl #2] ldr r1, [r4, #-504] str ip, [r1, r3, asl #2] - b .L3330 -.L3358: - ldr r2, .L3361+4 + b .L3338 +.L3366: + ldr r2, .L3369+4 movw r3, #2328 - ldr r7, .L3361+16 + ldr r7, .L3369+16 mov r8, #0 ldrh r6, [r2, r3] -.L3332: +.L3340: ldrh r3, [r7] - ldr r10, .L3361+4 + ldr r10, .L3369+4 cmp r3, r6 - ldr r9, .L3361+16 - bls .L3359 + ldr r9, .L3369+16 + bls .L3367 mov r0, r6 mov r1, #1 bl FtlLowFormatEraseBlock @@ -19799,13 +19839,13 @@ FtlLowFormat: uxth r6, r6 add r0, r8, r0 uxth r8, r0 - b .L3332 -.L3359: + b .L3340 +.L3367: add r7, r10, #2320 sub r3, r8, #3 ldrh r1, [r7] cmp r3, r1, asl #1 - blt .L3334 + blt .L3342 mov r0, r8 mov r8, #0 bl __aeabi_uidiv @@ -19818,10 +19858,10 @@ FtlLowFormat: bl FtlFreeSysBlkQueueInit movw r3, #2328 ldrh r6, [r10, r3] -.L3335: +.L3343: ldrh r3, [r9] cmp r3, r6 - bls .L3334 + bls .L3342 mov r0, r6 mov r1, #1 bl FtlLowFormatEraseBlock @@ -19829,30 +19869,30 @@ FtlLowFormat: uxth r6, r6 add r0, r8, r0 uxth r8, r0 - b .L3335 -.L3334: - ldr r10, .L3361+20 + b .L3343 +.L3342: + ldr r10, .L3369+20 mov r9, #0 mov r6, r9 -.L3337: +.L3345: ldrh r2, [r10] uxth r0, r9 - ldr r3, .L3361+4 + ldr r3, .L3369+4 add r9, r9, #1 cmp r2, r0 - bls .L3360 + bls .L3368 mov r1, #0 bl FtlLowFormatEraseBlock add r0, r6, r0 uxth r6, r0 - b .L3337 -.L3360: + b .L3345 +.L3368: movw r2, #2330 ldrh r9, [r7] ldrh r2, [r3, r2] str r3, [sp, #4] mov r1, r9 - ldr r7, .L3361+24 + ldr r7, .L3369+24 str r2, [r4, #-548] ldr r2, [r3, #2332] mov r0, r2 @@ -19868,7 +19908,7 @@ FtlLowFormat: str r0, [r3, #2448] ldr r2, [sp] cmp r6, r1 - ble .L3339 + ble .L3347 rsb r0, r6, r2 mov r1, r9 str r3, [sp] @@ -19878,10 +19918,10 @@ FtlLowFormat: mov r0, r0, lsr #5 add r0, r0, #24 strh r0, [r7, #-8] @ movhi -.L3339: +.L3347: ldr r3, [r5, #2244] cmp r3, #1 - bne .L3340 + bne .L3348 ldrh r3, [r7, #-8] mov r0, r6 mov r1, r9 @@ -19891,10 +19931,10 @@ FtlLowFormat: uxtah r0, r3, r0 add r3, r3, r0, asr #2 strh r3, [r7, #-8] @ movhi -.L3340: - ldrb r3, [r5, #144] @ zero_extendqisi2 +.L3348: + ldrb r3, [r5, #148] @ zero_extendqisi2 cmp r3, #0 - beq .L3341 + beq .L3349 ldrh r3, [r7, #-8] mov r0, r6 mov r1, r9 @@ -19904,30 +19944,30 @@ FtlLowFormat: uxtah r0, r3, r0 add r3, r3, r0, asr #2 strh r3, [r7, #-8] @ movhi -.L3341: +.L3349: movw r3, #2382 ldrh r3, [r5, r3] cmp r3, #0 - beq .L3343 + beq .L3351 ldrh r2, [r7, #-8] add r2, r2, r3, lsr #1 strh r2, [r7, #-8] @ movhi mul r2, r9, r3 cmp r2, r6 addgt r3, r3, #32 - ldrgt r2, .L3361+4 + ldrgt r2, .L3369+4 addgt r3, r10, r3 strgt fp, [r2, #2448] - ldrgt r2, .L3361+24 + ldrgt r2, .L3369+24 strgth r3, [r2, #-8] @ movhi -.L3343: +.L3351: ldrh r2, [r7, #-8] ldr r3, [r5, #2448] rsb r3, r2, r3 mul r9, r9, r3 movw r3, #2388 ldrh r3, [r5, r3] - str r9, [r4, #1788] + str r9, [r4, #1796] mul r9, r3, r9 movw r3, #2394 ldrh r3, [r5, r3] @@ -19941,13 +19981,13 @@ FtlLowFormat: add r1, r6, r8 add r3, r3, r2, lsr #3 cmp r1, r3 - bls .L3345 - ldr r0, .L3361+28 + bls .L3353 + ldr r0, .L3369+28 mov r2, r2, lsr #5 bl printk -.L3345: +.L3353: movw r3, #2330 - ldr r6, .L3361+32 + ldr r6, .L3369+32 ldrh r2, [r5, r3] mov r1, #0 sub r8, r6, #244 @@ -19974,23 +20014,23 @@ FtlLowFormat: add r6, r6, #3280 mov r2, r2, lsr #3 bl ftl_memset -.L3346: - ldr r10, .L3361+36 - ldr r5, .L3361 +.L3354: + ldr r10, .L3369+36 + ldr r5, .L3369 mov r0, r10 bl make_superblock ldrb r3, [r4, #-3517] @ zero_extendqisi2 cmp r3, #0 ldrh r3, [r8] - bne .L3347 + bne .L3355 ldr r2, [r6, #-3544] mov r3, r3, asl #1 strh r9, [r2, r3] @ movhi ldrh r3, [fp] add r3, r3, #1 strh r3, [fp] @ movhi - b .L3346 -.L3347: + b .L3354 +.L3355: ldr r2, [r5, #-3332] mov r3, r3, asl #1 ldrh r1, [r10, #4] @@ -20011,23 +20051,23 @@ FtlLowFormat: strh r3, [r2, #-4] @ movhi mov r3, #1 strb r3, [r5, #-3468] -.L3348: - ldr r8, .L3361+40 - ldr r5, .L3361 +.L3356: + ldr r8, .L3369+40 + ldr r5, .L3369 mov r0, r8 bl make_superblock ldrb r3, [r4, #-3469] @ zero_extendqisi2 cmp r3, #0 ldrh r3, [r6] - bne .L3349 + bne .L3357 ldr r2, [r9, #-3544] mov r3, r3, asl #1 strh r10, [r2, r3] @ movhi ldrh r3, [r6] add r3, r3, #1 strh r3, [r6] @ movhi - b .L3348 -.L3349: + b .L3356 +.L3357: ldr r2, [r5, #-3332] mov r3, r3, asl #1 ldrh r1, [r8, #4] @@ -20040,10 +20080,10 @@ FtlLowFormat: sub r3, r5, #3424 strh r4, [r3, #-4] @ movhi bl FtlFreeSysBlkQueueOut - ldr r3, .L3361+44 + ldr r3, .L3369+44 mov r2, #0 strh r2, [r3, #2] @ movhi - ldr r2, [r5, #1788] + ldr r2, [r5, #1796] strh r4, [r3, #4] @ movhi strh r2, [r3, #6] @ movhi ldr r3, [r5, #-3332] @@ -20054,17 +20094,17 @@ FtlLowFormat: bl FtlVpcTblFlush bl FtlSysBlkInit cmp r0, #0 - ldreq r3, .L3361+48 + ldreq r3, .L3369+48 moveq r2, #1 streq r2, [r3, #504] -.L3328: +.L3336: mov r0, #0 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3362: +.L3370: .align 2 -.L3361: +.L3369: .word .LANCHOR2 .word .LANCHOR0 .word .LANCHOR0+2394 @@ -20091,28 +20131,28 @@ FtlReInitForSDUpdata: .save {r4, r5, lr} .pad #20 sub sp, sp, #20 - ldr r4, .L3392 - ldrb r3, [r4, #144] @ zero_extendqisi2 + ldr r4, .L3400 + ldrb r3, [r4, #148] @ zero_extendqisi2 cmp r3, #0 - beq .L3364 -.L3366: + beq .L3372 +.L3374: mov r0, #0 - b .L3365 -.L3364: - ldr r5, .L3392+4 + b .L3373 +.L3372: + ldr r5, .L3400+4 ldr r0, [r5, #1684] bl FlashInit cmp r0, #0 - bne .L3366 + bne .L3374 bl FlashLoadFactorBbt cmp r0, #0 - beq .L3367 + beq .L3375 bl FlashMakeFactorBbt -.L3367: - ldr r0, [r5, #1716] +.L3375: + ldr r0, [r5, #1724] bl FlashReadIdbDataRaw cmp r0, #0 - beq .L3368 + beq .L3376 mov r1, #0 mov r2, #16 mov r0, sp @@ -20121,75 +20161,75 @@ FtlReInitForSDUpdata: mov r2, r3 mov ip, #1 ldr r1, [sp] -.L3369: +.L3377: ands lr, r1, ip, asl r2 add r0, r3, #1 add r2, r2, #1 movne r3, r0 cmp r2, #16 - bne .L3369 + bne .L3377 cmp r3, #6 - bls .L3388 + bls .L3396 mov r2, #0 mov ip, #1 -.L3372: +.L3380: ands lr, r1, ip, asl r2 add r0, r3, #1 add r2, r2, #1 movne r3, r0 cmp r2, #24 - bne .L3372 + bne .L3380 cmp r3, #17 movhi r3, #36 - strhib r3, [r4, #1] - bhi .L3371 -.L3388: - strb r2, [r4, #1] -.L3371: - ldrb r3, [r4, #1] @ zero_extendqisi2 - strh r3, [r4, #142] @ movhi -.L3368: - ldr r1, .L3392+8 - ldr r0, .L3392+12 + strhib r3, [r4, #33] + bhi .L3379 +.L3396: + strb r2, [r4, #33] +.L3379: + ldrb r3, [r4, #33] @ zero_extendqisi2 + strh r3, [r4, #146] @ movhi +.L3376: + ldr r1, .L3400+8 + ldr r0, .L3400+12 bl printk - ldr r0, .L3392+16 + ldr r0, .L3400+16 bl FtlConstantsInit bl FtlVariablesInit ldr r0, [r4, #2324] mov r4, #1 uxth r0, r0 bl FtlFreeSysBlkQueueInit -.L3374: +.L3382: bl FtlLoadBbt cmp r0, #0 - beq .L3375 -.L3390: + beq .L3383 +.L3398: bl FtlLowFormat cmp r4, #3 addls r4, r4, #1 - bls .L3374 -.L3391: + bls .L3382 +.L3399: mvn r0, #0 - b .L3365 -.L3375: + b .L3373 +.L3383: bl FtlSysBlkInit cmp r0, #0 - bne .L3390 - ldr r3, .L3392+20 + bne .L3398 + ldr r3, .L3400+20 mov r2, #1 str r2, [r3, #504] -.L3365: +.L3373: add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, pc} -.L3393: +.L3401: .align 2 -.L3392: +.L3400: .word .LANCHOR0 .word .LANCHOR2 .word .LC77 .word .LC76 - .word .LANCHOR0+116 + .word .LANCHOR0+120 .word .LANCHOR1 .fnend .size FtlReInitForSDUpdata, .-FtlReInitForSDUpdata @@ -20202,40 +20242,40 @@ Ftl_gc_temp_data_write_back: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} - ldr r5, .L3411 + ldr r5, .L3419 ldr r3, [r5, #-3616] cmp r3, #0 - beq .L3395 -.L3398: + beq .L3403 +.L3406: mov r0, #0 ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L3395: - ldr r3, .L3411+4 - ldrb r3, [r3, #144] @ zero_extendqisi2 +.L3403: + ldr r3, .L3419+4 + ldrb r3, [r3, #148] @ zero_extendqisi2 cmp r3, #0 - beq .L3397 + beq .L3405 ldr r3, [r5, #-2704] tst r3, #1 - beq .L3397 - ldr r3, .L3411+8 + beq .L3405 + ldr r3, .L3419+8 ldrh r3, [r3, #4] cmp r3, #0 - bne .L3398 -.L3397: + bne .L3406 +.L3405: mov r2, #0 ldr r0, [r5, #-532] ldr r1, [r5, #-2704] mov r3, r2 bl FlashProgPages - ldr r7, .L3411 + ldr r7, .L3419 mov r6, #0 mov r8, #36 -.L3399: +.L3407: ldr r1, [r5, #-2704] uxth r3, r6 - ldr r4, .L3411 + ldr r4, .L3419 cmp r3, r1 - bcs .L3410 + bcs .L3418 mul r3, r8, r3 ldr r0, [r7, #-532] add r6, r6, #1 @@ -20243,7 +20283,7 @@ Ftl_gc_temp_data_write_back: ldr r0, [r0, r3] ldr r2, [r1, #12] cmn r0, #1 - bne .L3400 + bne .L3408 sub r1, r4, #3424 ldr ip, [r4, #-3544] mov lr, #0 @@ -20261,30 +20301,30 @@ Ftl_gc_temp_data_write_back: bl FtlBbmMapBadBlock bl FtlBbmTblFlush bl FtlGcPageVarInit - b .L3409 -.L3400: + b .L3417 +.L3408: ldr r0, [r2, #12] ldr r1, [r1, #4] ldr r2, [r2, #8] bl FtlGcUpdatePage - b .L3399 -.L3410: + b .L3407 +.L3418: ldr r0, [r4, #-532] bl FtlGcBufFree mov r3, #0 str r3, [r4, #-2704] - ldr r3, .L3411+8 + ldr r3, .L3419+8 ldrh r3, [r3, #4] cmp r3, #0 - bne .L3398 + bne .L3406 mov r0, #1 bl FtlGcFreeTempBlock -.L3409: +.L3417: mov r0, #1 ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L3412: +.L3420: .align 2 -.L3411: +.L3419: .word .LANCHOR2 .word .LANCHOR0 .word .LANCHOR2-3428 @@ -20299,22 +20339,22 @@ 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, .L3417 + ldr r3, .L3425 sub r2, r3, #4 ldrh r1, [r3, #-4] movw r3, #65535 cmp r1, r3 - beq .L3414 + beq .L3422 ldrh r3, [r2, #4] cmp r3, #0 - bne .L3415 -.L3414: - ldr r4, .L3417+4 + bne .L3423 +.L3422: + ldr r4, .L3425+4 bl FtlCacheWriteBack mov r0, #0 mov r5, #0 bl FtlGcFreeTempBlock - ldr r0, .L3417+8 + ldr r0, .L3425+8 strb r5, [r4, #-3420] bl allocate_data_superblock sub r3, r4, #2672 @@ -20325,13 +20365,13 @@ Ftl_get_new_temp_ppa: mov r0, r5 bl FtlEctTblFlush bl FtlVpcTblFlush -.L3415: - ldr r0, .L3417+8 +.L3423: + ldr r0, .L3425+8 ldmfd sp!, {r3, r4, r5, lr} b get_new_active_ppa -.L3418: +.L3426: .align 2 -.L3417: +.L3425: .word .LANCHOR2-3424 .word .LANCHOR2 .word .LANCHOR2-3428 @@ -20344,27 +20384,27 @@ ftl_do_gc: .fnstart @ args = 0, pretend = 0, frame = 32 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L3583 + ldr r3, .L3592 ldr ip, [r3, #-3616] cmp ip, #0 - bne .L3513 + bne .L3521 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #44 sub sp, sp, #44 - ldr r4, .L3583+4 + ldr r4, .L3592+4 ldr r8, [r4, #504] cmp r8, #1 - bne .L3515 + bne .L3523 ldr r2, [r3, #-560] cmp r2, #0 - bne .L3515 + bne .L3523 mov r9, r0 sub r0, r3, #3536 ldrh r0, [r0] cmp r0, #47 movls r0, r2 - bls .L3572 + bls .L3580 movw r2, #3448 str r1, [sp, #12] ldrh r1, [r4, r2] @@ -20372,32 +20412,32 @@ ftl_do_gc: mov r5, r3 str r9, [sp, #16] cmp r1, r2 - bne .L3421 -.L3424: - ldr r4, .L3583+8 + bne .L3429 +.L3432: + ldr r4, .L3592+8 movw r2, #65535 ldrh r0, [r4, #-8] cmp r0, r2 - bne .L3422 - b .L3423 -.L3421: + bne .L3430 + b .L3431 +.L3429: sub r3, r3, #3424 ldrh r3, [r3, #-4] cmp r3, r2 - beq .L3424 + beq .L3432 mov r0, r8 bl FtlGcFreeTempBlock cmp r0, #0 - beq .L3424 + beq .L3432 mov r0, r8 - b .L3572 -.L3422: + b .L3580 +.L3430: ldrh r3, [r4, #-10] cmp r3, r2 - bne .L3423 + bne .L3431 ldrh r1, [r4, #-6] cmp r1, r3 - beq .L3423 + beq .L3431 ldrh r2, [r4, #-4] cmp r2, r3 strneh r0, [r4, #-10] @ movhi @@ -20405,90 +20445,92 @@ ftl_do_gc: mvnne r3, #0 strneh r2, [r4, #-6] @ movhi strneh r3, [r4, #-4] @ movhi -.L3423: +.L3431: ldr r3, [sp, #16] ldr r8, [r5, #-2716] - ldr r6, .L3583+12 + ldr r6, .L3592+12 cmp r3, #1 add r8, r8, #1 add r8, r8, r3, asl #7 sub r7, r6, #240 str r8, [r5, #-2716] - bne .L3435 - ldr r9, .L3583+16 + bne .L3443 + ldr r9, .L3592+16 ldr r3, [r9, #2244] cmp r3, #0 - bne .L3426 - ldrb r3, [r9, #144] @ zero_extendqisi2 + bne .L3434 + ldrb r3, [r9, #148] @ zero_extendqisi2 cmp r3, #0 - beq .L3435 -.L3426: + beq .L3443 +.L3434: ldr r3, [r5, #-3308] - ldr fp, .L3583 + ldr fp, .L3592 cmp r3, #39 - bhi .L3435 - ldr r10, .L3583+20 - ldrh r3, [r10] + bhi .L3443 + ldr r10, .L3592+20 + movw r3, #1992 + ldrh r3, [r10, r3] add r8, r8, r3 str r8, [fp, #-2716] bl FtlGcReFreshBadBlk ldrh r8, [r6, #-4] movw r3, #65535 cmp r8, r3 - bne .L3435 + bne .L3443 ldrh r3, [r4, #-10] cmp r3, r8 - bne .L3435 + bne .L3443 ldr r3, [fp, #-2716] cmp r3, #1024 - bhi .L3427 + bhi .L3435 ldrh r3, [r7, #-8] cmp r3, #63 - bhi .L3435 -.L3427: - ldr r1, .L3583 - mov r3, #0 - strh r3, [r10] @ movhi - sub r8, r1, #2704 - ldrh r0, [r7, #-8] - ldr r2, .L3583+20 - ldrh r10, [r8, #-14] - add ip, r10, #64 - cmp r0, ip - bgt .L3435 - str r3, [r1, #-2716] - ldr r3, [r1, #-3308] - cmp r3, #0 - moveq r3, #6 - beq .L3574 - cmp r3, #5 - bhi .L3429 - mov r3, #18 -.L3574: - strh r3, [r2] @ movhi -.L3429: + bhi .L3443 +.L3435: + movw ip, #1992 + mov r2, #0 + strh r2, [r10, ip] @ movhi + ldr r10, .L3592 + ldrh r1, [r7, #-8] + sub r8, r10, #2704 + ldr r3, .L3592+20 + ldrh fp, [r8, #-14] + add fp, fp, #64 + cmp r1, fp + bgt .L3443 + str r2, [r10, #-2716] + ldr r2, [r10, #-3308] + cmp r2, #0 + moveq r2, #6 + beq .L3582 + cmp r2, #5 + bhi .L3437 + mov r2, #18 +.L3582: + strh r2, [r3, ip] @ movhi +.L3437: mov r0, #32 bl List_get_gc_head_node movw ip, #65535 uxth r3, r0 cmp r3, ip - beq .L3434 + beq .L3442 ldrh r0, [r8, #-8] - ldr r2, .L3583 + ldr r2, .L3592 cmp r0, #0 sub r10, r2, #2704 - beq .L3431 + beq .L3439 mov r8, r3, asl #1 movw r3, #2390 ldrh lr, [r9, r3] - ldr r3, .L3583+24 + ldr r3, .L3592+24 ldr r2, [r2, #-3544] ldrh r3, [r3] ldrh r1, [r2, r8] mul r3, r3, lr add r3, r3, #1 cmp r1, r3 - bgt .L3434 + bgt .L3442 add r1, r0, #1 str ip, [sp, #28] str r2, [sp, #24] @@ -20503,9 +20545,9 @@ ftl_do_gc: ldr r1, [sp, #20] cmp fp, ip ldr r2, [sp, #24] - beq .L3434 + beq .L3442 mov ip, fp, asl #1 - ldr r0, .L3583+28 + ldr r0, .L3592+28 str ip, [sp, #20] ldrh r3, [r2, ip] ldrh r2, [r2, r8] @@ -20515,109 +20557,112 @@ ftl_do_gc: ldrh r3, [r10, #-8] cmp r3, #40 ldr ip, [sp, #20] - bls .L3432 + bls .L3440 ldr r3, [r10, #-840] ldrh r3, [r3, ip] cmp r3, #32 strhih r9, [r10, #-8] @ movhi -.L3432: - ldr r3, .L3583+20 - mov r2, #6 - strh r2, [r3] @ movhi - b .L3436 -.L3431: +.L3440: + ldr r2, .L3592+20 + movw r3, #1992 + mov r1, #6 + strh r1, [r2, r3] @ movhi + b .L3444 +.L3439: mov r3, #1 strh r3, [r10, #-8] @ movhi -.L3434: +.L3442: bl GetSwlReplaceBlock movw r3, #65535 cmp r0, r3 mov fp, r0 - bne .L3436 - ldr r3, .L3583+20 - mov r2, #0 - strh r2, [r3] @ movhi -.L3435: + bne .L3444 + ldr r2, .L3592+20 + movw r3, #1992 + mov r1, #0 + strh r1, [r2, r3] @ movhi +.L3443: ldrh ip, [r6, #-4] movw r3, #65535 - ldr r8, .L3583 + ldr r8, .L3592 cmp ip, r3 - bne .L3577 + bne .L3585 sub r3, r8, #3424 ldrh r3, [r3, #-4] cmp r3, ip movne fp, ip - beq .L3580 -.L3436: - movw r1, #65535 - rsb r3, r1, fp + beq .L3588 +.L3444: + movw r2, #65535 + rsb r3, r2, fp clz r3, r3 - ldr r2, [sp, #16] - ldr r8, .L3583+32 + ldr r1, [sp, #16] + ldr r8, .L3592+32 mov r3, r3, lsr #5 - cmp r2, #0 - movne ip, #0 - andeq ip, r3, #1 - cmp ip, #0 - beq .L3449 + cmp r1, #0 + movne r0, #0 + andeq r0, r3, #1 + cmp r0, #0 + beq .L3457 ldrh r0, [r8, #-8] cmp r0, #24 movhi r9, #1 - bhi .L3450 - ldr r2, .L3583+16 + bhi .L3458 + ldr r2, .L3592+16 movw r3, #2388 cmp r0, #16 ldrh r9, [r2, r3] movhi r9, r9, lsr #5 - bhi .L3450 + bhi .L3458 cmp r0, #12 movhi r9, r9, lsr #4 - bhi .L3450 + bhi .L3458 cmp r0, #8 movhi r9, r9, lsr #2 -.L3450: - ldr r1, .L3583 +.L3458: + ldr r1, .L3592 sub r2, r1, #2720 ldrh r3, [r2] cmp r3, r0 - bcs .L3454 + bcs .L3462 sub r3, r1, #3424 movw r0, #65535 ldrh r3, [r3, #-4] cmp r3, r0 - bne .L3455 + bne .L3463 ldrh r0, [r4, #-10] cmp r0, r3 - bne .L3455 - ldr r3, .L3583+20 - ldrh r0, [r3] + bne .L3463 + ldr r0, .L3592+20 + movw r3, #1992 + ldrh r0, [r0, r3] cmp r0, #0 - bne .L3456 - ldr r3, .L3583+16 + bne .L3464 + ldr r3, .L3592+16 ldr r1, [r1, #-3372] ldr r3, [r3, #2448] add r3, r3, r3, asl #1 cmp r1, r3, lsr #2 movcs r3, #18 - bcs .L3457 -.L3456: - ldr r3, .L3583+36 + bcs .L3465 +.L3464: + ldr r3, .L3592+36 ldrh r3, [r3, #-8] add r3, r3, r3, asl #1 ubfx r3, r3, #2, #16 -.L3457: +.L3465: strh r3, [r2] @ movhi mov r3, #0 str r3, [r5, #-2708] - b .L3572 -.L3455: - ldr r3, .L3583+36 + b .L3580 +.L3463: + ldr r3, .L3592+36 ldrh r3, [r3, #-8] add r3, r3, r3, asl #1 mov r3, r3, asr #2 strh r3, [r2] @ movhi -.L3454: - ldr r3, .L3583+16 +.L3462: + ldr r3, .L3592+16 movw fp, #65535 ldr r2, [r3, #2244] ldr r3, [sp, #12] @@ -20629,49 +20674,50 @@ ftl_do_gc: cmp r3, #0 addne r9, r9, #1 uxthne r9, r9 - b .L3459 -.L3449: - ldrh r0, [r8, #92] - add r2, r8, #3520 - cmp r0, r1 - bne .L3460 - ldrh r1, [r4, #-10] - cmp r1, r0 + b .L3467 +.L3457: + ldrh r1, [r8, #92] + add r9, r8, #3520 + cmp r1, r2 + bne .L3468 + ldrh r2, [r4, #-10] + cmp r2, r1 movne r3, #0 andeq r3, r3, #1 cmp r3, #0 - beq .L3460 + beq .L3468 ldrh r3, [r6, #-4] - cmp r3, r0 - beq .L3461 -.L3465: + cmp r3, r1 + beq .L3469 +.L3473: movw fp, #65535 - b .L3460 -.L3461: - sub r10, r2, #2720 - ldrh r1, [r7, #-8] - str ip, [r2, #-2708] - ldrh r3, [r10] - ldr r9, .L3583+20 - cmp r1, r3 - bls .L3462 - ldrh r3, [r9] + b .L3468 +.L3469: + sub fp, r9, #2720 + ldrh r2, [r7, #-8] + str r0, [r9, #-2708] + ldrh r3, [fp] + ldr r10, .L3592+20 + cmp r2, r3 + bls .L3470 + movw r3, #1992 + ldrh r3, [r10, r3] cmp r3, #0 - bne .L3463 - ldr r3, .L3583+16 - ldr r2, [r2, #-3372] + bne .L3471 + ldr r3, .L3592+16 + ldr r2, [r9, #-3372] ldr r3, [r3, #2448] add r3, r3, r3, asl #1 cmp r2, r3, lsr #2 movcs r3, #18 - bcs .L3464 -.L3463: - ldr r3, .L3583+36 + bcs .L3472 +.L3471: + ldr r3, .L3592+36 ldrh r3, [r3, #-8] add r3, r3, r3, asl #1 ubfx r3, r3, #2, #16 -.L3464: - strh r3, [r10] @ movhi +.L3472: + strh r3, [fp] @ movhi bl FtlReadRefresh mov r0, #0 bl List_get_gc_head_node @@ -20680,65 +20726,69 @@ ftl_do_gc: mov r0, r0, asl #1 ldrh r3, [r3, r0] cmp r3, #4 - ldrhih r0, [r9] - bhi .L3572 -.L3462: - ldrh r0, [r9] + movwhi r3, #1992 + ldrhih r0, [r10, r3] + bhi .L3580 +.L3470: + movw r9, #1992 + ldrh r0, [r10, r9] cmp r0, #0 - bne .L3465 - ldr r3, .L3583+36 - ldrh r9, [r3, #-8] - add r3, r9, r9, asl #1 + bne .L3473 + ldr r3, .L3592+36 + ldrh r10, [r3, #-8] + add r3, r10, r10, asl #1 mov r3, r3, asr #2 - strh r3, [r10] @ movhi + strh r3, [fp] @ movhi bl List_get_gc_head_node ldr r3, [r5, #-3544] movw r2, #2390 uxth r0, r0 mov r0, r0, asl #1 ldrh r1, [r3, r0] - ldr r3, .L3583+16 + ldr r3, .L3592+16 ldrh r2, [r3, r2] add r3, r3, #2320 ldrh r3, [r3] mul r3, r3, r2 add r3, r3, r3, lsr #31 cmp r1, r3, asr #1 - ble .L3466 + ble .L3474 ldrh r3, [r7, #-8] - sub r2, r9, #1 + sub r2, r10, #1 cmp r3, r2 - blt .L3466 + blt .L3474 bl FtlReadRefresh - b .L3578 -.L3466: + ldr r3, .L3592+20 + ldrh r0, [r3, r9] + b .L3580 +.L3474: cmp r1, #0 - bne .L3465 + bne .L3473 movw r0, #65535 bl decrement_vpc_count ldrh r0, [r8, #-8] add r0, r0, #1 - b .L3572 -.L3460: - ldr r3, .L3583+16 + b .L3580 +.L3468: + ldr r3, .L3592+16 ldr r3, [r3, #2244] cmp r3, #0 moveq r9, #1 movne r9, #2 -.L3459: +.L3467: ldrh r3, [r6, #-4] movw r0, #65535 - ldr r2, .L3583 + ldr r2, .L3592 cmp r3, r0 sub r1, r2, #3280 - bne .L3468 + bne .L3476 cmp fp, r3 strneh fp, [r1, #-4] @ movhi - bne .L3470 + bne .L3478 ldrh r3, [r4, #-10] sub r1, r2, #2656 cmp r3, fp - beq .L3470 + beq .L3478 ldr r2, [r2, #-3544] mov r3, r3, asl #1 ldrh r3, [r2, r3] @@ -20749,37 +20799,37 @@ ftl_do_gc: strh r3, [r6, #-4] @ movhi mvn r3, #0 strh r3, [r4, #-10] @ movhi -.L3470: +.L3478: ldrh r0, [r6, #-4] mov r3, #0 strb r3, [r5, #-3276] movw r3, #65535 cmp r0, r3 - beq .L3468 + beq .L3476 bl IsBlkInGcList cmp r0, #0 - ldrne r3, .L3583+12 + ldrne r3, .L3592+12 mvnne r2, #0 strneh r2, [r3, #-4] @ movhi - ldr r3, .L3583+16 - ldrb r3, [r3, #144] @ zero_extendqisi2 + ldr r3, .L3592+16 + ldrb r3, [r3, #148] @ zero_extendqisi2 cmp r3, #0 - beq .L3474 + beq .L3482 ldrh r0, [r6, #-4] bl ftl_get_blk_mode strb r0, [r5, #-3276] -.L3474: +.L3482: ldrh r2, [r6, #-4] movw r3, #65535 - ldr r5, .L3583 + ldr r5, .L3592 cmp r2, r3 sub r7, r5, #3280 sub r4, r7, #4 - beq .L3468 + beq .L3476 mov r0, r4 bl make_superblock - ldr r2, .L3583+40 - movw r1, #1986 + ldr r2, .L3592+20 + movw r1, #1994 mov r3, #0 strh r3, [r7, #-2] @ movhi strh r3, [r2, r1] @ movhi @@ -20788,36 +20838,36 @@ ftl_do_gc: ldr r1, [r5, #-3544] mov r3, r3, asl #1 ldrh r1, [r1, r3] - movw r3, #1988 + movw r3, #1996 strh r1, [r2, r3] @ movhi -.L3468: +.L3476: ldrh r3, [r6, #-4] ldrh r2, [r8, #-4] cmp r2, r3 - beq .L3475 - ldr r2, .L3583+44 + beq .L3483 + ldr r2, .L3592+40 ldrh r1, [r2, #-4] cmp r1, r3 - beq .L3475 + beq .L3483 ldrh r2, [r2, #44] cmp r2, r3 - bne .L3509 -.L3475: + bne .L3517 +.L3483: mvn r3, #0 strh r3, [r6, #-4] @ movhi -.L3509: - ldr r6, .L3583+48 +.L3517: + ldr r6, .L3592+44 movw r3, #65535 - ldr r5, .L3583 + ldr r5, .L3592 ldrh r2, [r6] mov r10, r6 cmp r2, r3 - bne .L3477 + bne .L3485 mov r3, #0 str r5, [sp, #12] str r3, [r5, #-2708] -.L3478: - ldr r8, .L3583+52 +.L3486: + ldr r8, .L3592+48 ldrh r4, [r8] mov r0, r4 bl List_get_gc_head_node @@ -20828,85 +20878,82 @@ ftl_do_gc: moveq r3, #0 moveq r0, #8 streqh r3, [r8] @ movhi - beq .L3572 -.L3479: + beq .L3580 +.L3487: mov r0, r7 add r4, r4, #1 bl IsBlkInGcList cmp r0, #0 - ldrne r3, .L3583+52 + ldrne r3, .L3592+48 strneh r4, [r3] @ movhi - bne .L3478 - ldr r3, .L3583+52 + bne .L3486 + ldr r3, .L3592+48 uxth r4, r4 mov r2, r7, asl #1 strh r4, [r3] @ movhi ldr r3, [sp, #12] ldr r1, [r3, #-3544] - ldr r3, .L3583+56 + ldr r3, .L3592+52 ldrh r0, [r1, r2] ldrh ip, [r3] ldrh r3, [r3, #-68] mul r3, r3, ip add ip, r3, r3, lsr #31 cmp r0, ip, asr #1 - bgt .L3482 + bgt .L3490 cmp r0, #8 cmphi r4, #48 - bls .L3483 + bls .L3491 ldrh r0, [r8, #36] cmp r0, #35 - bhi .L3483 -.L3482: - ldr ip, .L3583+52 + bhi .L3491 +.L3490: + ldr ip, .L3592+48 mov r0, #0 strh r0, [ip] @ movhi -.L3483: +.L3491: ldrh r2, [r1, r2] movw r1, #65535 cmp r2, r3 cmpge fp, r1 - bne .L3484 - ldr r3, .L3583+52 + bne .L3492 + ldr r3, .L3592+48 ldrh r1, [r3] cmp r1, #3 - bhi .L3484 + bhi .L3492 sub r2, r3, #568 mvn r1, #0 strh r1, [r2, #-4] @ movhi mov r2, #0 strh r2, [r3] @ movhi -.L3578: - ldr r3, .L3583+20 - ldrh r0, [r3] - b .L3572 -.L3484: + b .L3586 +.L3492: cmp r2, #0 - bne .L3485 + bne .L3493 movw r0, #65535 bl decrement_vpc_count - ldr r3, .L3583+52 - ldr r2, .L3583+52 + ldr r3, .L3592+48 + ldr r2, .L3592+48 ldrh r3, [r3] add r3, r3, #1 strh r3, [r2] @ movhi - b .L3478 -.L3485: + b .L3486 +.L3493: mov r3, #0 strb r3, [r5, #-3276] - ldr r3, .L3583+16 - ldrb r3, [r3, #144] @ zero_extendqisi2 + ldr r3, .L3592+16 + ldrb r3, [r3, #148] @ zero_extendqisi2 cmp r3, #0 - beq .L3486 + beq .L3494 mov r0, r7 bl ftl_get_blk_mode - ldr r3, .L3583 + ldr r3, .L3592 strb r0, [r3, #-3276] -.L3486: - ldr r0, .L3583+48 +.L3494: + ldr r0, .L3592+44 bl make_superblock ldrh r2, [r6] - ldr r1, .L3583+60 + ldr r1, .L3592+56 mov r3, #0 ldr r0, [r5, #-3544] mov r2, r2, asl #1 @@ -20915,76 +20962,48 @@ ftl_do_gc: strh r3, [r6, #2] @ movhi strb r3, [r5, #-3278] strh r2, [r1, #2] @ movhi -.L3477: +.L3485: ldr r3, [sp, #16] cmp r3, #1 - bne .L3487 + bne .L3495 bl FtlReadRefresh -.L3487: +.L3495: mov r3, #1 str r3, [r5, #-560] - ldr r3, .L3583+56 + ldr r3, .L3592+52 ldrh r3, [r3] str r3, [sp, #12] - ldr r3, .L3583+16 - ldrb r3, [r3, #144] @ zero_extendqisi2 + ldr r3, .L3592+16 + ldrb r3, [r3, #148] @ zero_extendqisi2 cmp r3, #0 - beq .L3488 - ldr r3, .L3583 + beq .L3496 + ldr r3, .L3592 ldrb r3, [r3, #-3276] @ zero_extendqisi2 cmp r3, #1 - ldreq r3, .L3583+64 + ldreq r3, .L3592+60 ldreqh r3, [r3] streq r3, [sp, #12] -.L3488: +.L3496: ldrh r3, [r6, #2] mov r6, #0 ldr r1, [sp, #12] add r2, r3, r9 - ldr r4, .L3583 + ldr r4, .L3592 cmp r2, r1 movgt r2, r1 rsbgt r3, r3, r2 uxthgt r9, r3 -.L3490: - uxth r3, r6 - ldr r7, .L3583 - cmp r3, r9 - ldr r5, .L3583+48 - bcs .L3497 - ldr r3, .L3583+24 - add r0, r5, #14 - ldrh r1, [r5, #2] - movw lr, #65535 - ldr r7, [r4, #-2688] - mov ip, #36 - ldrh r8, [r3] - add r1, r1, r6 - mov r3, #0 - mov r5, r3 -.L3498: - uxth r2, r3 - cmp r2, r8 - bcs .L3581 - ldrh r2, [r0, #2]! - add r3, r3, #1 - cmp r2, lr - orrne r2, r1, r2, asl #10 - mlane r10, ip, r5, r7 - addne r5, r5, #1 - uxthne r5, r5 - strne r2, [r10, #4] b .L3498 -.L3581: +.L3591: ldr r0, [r4, #-2688] mov r1, r5 ldrb r2, [r4, #-3276] @ zero_extendqisi2 mov r8, #0 bl FlashReadPages -.L3493: +.L3501: uxth r3, r8 cmp r3, r5 - bcs .L3582 + bcs .L3589 mov r3, #36 ldr r2, [r4, #-2688] mul r7, r3, r8 @@ -20992,11 +21011,11 @@ ftl_do_gc: ldr r2, [r2, r7] ldr r10, [r1, #12] cmn r2, #1 - beq .L3529 + beq .L3537 ldrh r1, [r10] movw r2, #61589 cmp r1, r2 - bne .L3529 + bne .L3537 add r1, sp, #32 mov r2, #0 ldr r0, [r10, #8] @@ -21009,9 +21028,9 @@ ftl_do_gc: ldr r3, [sp, #20] bic r1, r1, #-2147483648 cmp r1, r0 - bne .L3529 - ldr r1, .L3583+60 - ldr r0, .L3583+60 + bne .L3537 + ldr r1, .L3592+56 + ldr r0, .L3592+56 ldr r2, [r2, #16] ldrh r1, [r1] str r3, [sp, #24] @@ -21038,7 +21057,7 @@ ftl_do_gc: str r2, [r3, #12] ldr r3, [sp, #32] str r3, [r10, #12] - ldr r3, .L3583+68 + ldr r3, .L3592+64 ldrh r3, [r3] strh r3, [r10, #2] @ movhi ldr r3, [r4, #-3328] @@ -21049,85 +21068,118 @@ ftl_do_gc: add r3, r3, #1 str r3, [r4, #-2704] bl FtlGcBufAlloc - ldr r3, .L3583+16 - ldrb r3, [r3, #144] @ zero_extendqisi2 + ldr r3, .L3592+16 + ldrb r3, [r3, #148] @ zero_extendqisi2 cmp r3, #0 - bne .L3495 - ldrb r3, [r4, #-3421] @ zero_extendqisi2 - ldr r2, [r4, #-2704] - cmp r2, r3 - beq .L3495 - ldr r3, .L3583+68 - ldrh r3, [r3, #4] - cmp r3, #0 - bne .L3529 -.L3495: + beq .L3590 +.L3503: bl Ftl_gc_temp_data_write_back cmp r0, #0 - beq .L3529 - ldr r3, .L3583 + beq .L3537 + ldr r3, .L3592 mov r2, #0 mvn r1, #0 sub r3, r3, #3280 str r2, [r3, #2720] strh r1, [r3, #-4] @ movhi strh r2, [r3, #-2] @ movhi - b .L3578 -.L3529: - add r8, r8, #1 - b .L3493 -.L3582: +.L3586: + ldr r2, .L3592+20 + movw r3, #1992 + ldrh r0, [r2, r3] + b .L3580 +.L3589: add r6, r6, #1 - b .L3490 -.L3497: +.L3498: + uxth r3, r6 + ldr r7, .L3592 + cmp r3, r9 + ldr r5, .L3592+44 + bcs .L3505 + ldr r3, .L3592+24 + add r0, r5, #14 + ldrh r1, [r5, #2] + movw lr, #65535 + ldr r7, [r4, #-2688] + mov ip, #36 + ldrh r8, [r3] + add r1, r1, r6 + mov r3, #0 + mov r5, r3 +.L3506: + uxth r2, r3 + cmp r2, r8 + bcs .L3591 + ldrh r2, [r0, #2]! + add r3, r3, #1 + cmp r2, lr + orrne r2, r1, r2, asl #10 + mlane r10, ip, r5, r7 + addne r5, r5, #1 + uxthne r5, r5 + strne r2, [r10, #4] + b .L3506 +.L3590: + ldrb r3, [r4, #-3421] @ zero_extendqisi2 + ldr r2, [r4, #-2704] + cmp r2, r3 + beq .L3503 + ldr r3, .L3592+64 + ldrh r3, [r3, #4] + cmp r3, #0 + beq .L3503 +.L3537: + add r8, r8, #1 + b .L3501 +.L3505: ldrh r3, [r5, #2] add r9, r9, r3 ldr r3, [sp, #12] uxth r9, r9 strh r9, [r5, #2] @ movhi cmp r9, r3 - bcc .L3499 + bcc .L3507 ldr r3, [r7, #-2704] cmp r3, #0 - beq .L3500 + beq .L3508 bl Ftl_gc_temp_data_write_back cmp r0, #0 movne r3, #0 strne r3, [r7, #-560] - bne .L3578 -.L3500: - ldr r3, .L3583+60 + bne .L3586 +.L3508: + ldr r3, .L3592+56 ldrh r4, [r3] cmp r4, #0 - bne .L3501 + bne .L3509 ldrh r3, [r5] ldr r2, [r7, #-3544] mov r3, r3, asl #1 ldrh r3, [r2, r3] cmp r3, #0 - beq .L3501 - ldr r6, .L3583+16 -.L3502: + beq .L3509 + ldr r6, .L3592+16 +.L3510: ldr r3, [r6, #2448] cmp r4, r3 - bcs .L3507 + bcs .L3515 mov r0, r4 add r1, sp, #36 mov r2, #0 bl log2phys ldr r0, [sp, #36] cmn r0, #1 - beq .L3503 + beq .L3511 ubfx r0, r0, #10, #16 bl P2V_block_in_plane ldrh r3, [r5] cmp r3, r0 - bne .L3503 -.L3507: - ldr r3, .L3583+16 + bne .L3511 +.L3515: + ldr r3, .L3592+16 ldr r3, [r3, #2448] cmp r4, r3 - bcc .L3501 + bcc .L3509 ldrh r3, [r5] mov r1, #0 ldr r2, [r7, #-3544] @@ -21138,39 +21190,40 @@ ftl_do_gc: bl FtlCacheWriteBack bl l2p_flush bl FtlVpcTblFlush - b .L3501 -.L3503: + b .L3509 +.L3511: add r4, r4, #1 - b .L3502 -.L3501: + b .L3510 +.L3509: mvn r3, #0 strh r3, [r5] @ movhi -.L3499: - ldr r3, .L3583+72 +.L3507: + ldr r3, .L3592+68 ldrh r3, [r3] cmp r3, #2 - ldrls r3, .L3583+56 + ldrls r3, .L3592+52 ldrlsh r9, [r3] - bls .L3509 -.L3508: - ldr r2, .L3583 + bls .L3517 +.L3516: + ldr r2, .L3592 mov r1, #0 str r1, [r2, #-560] - ldr r2, .L3583+20 - ldrh r0, [r2] - cmp r0, r1 + movw r2, #1992 + ldr r1, .L3592+20 + ldrh r0, [r1, r2] + cmp r0, #0 addeq r0, r3, #1 - b .L3572 -.L3513: + b .L3580 +.L3521: mov r0, #0 bx lr -.L3515: +.L3523: mov r0, ip - b .L3572 -.L3580: + b .L3580 +.L3588: ldrh r9, [r4, #-10] cmp r9, r3 - bne .L3577 + bne .L3585 sub r3, r8, #3520 ldr r2, [r8, #-2716] ldrh r3, [r3, #-8] @@ -21179,15 +21232,16 @@ ftl_do_gc: movcs r3, #1024 cmp r2, r3 movls fp, r9 - bls .L3436 - ldr r2, .L3583+20 + bls .L3444 + ldr r1, .L3592+20 + movw r2, #1992 mov r3, #0 str r3, [r5, #-2716] - strh r3, [r2] @ movhi + strh r3, [r1, r2] @ movhi bl GetSwlReplaceBlock cmp r0, r9 mov fp, r0 - bne .L3438 + bne .L3446 sub r3, r8, #2704 ldrh r1, [r7, #-8] ldrh r2, [r3, #-14] @@ -21195,37 +21249,37 @@ ftl_do_gc: cmp r1, r2 movcs r2, #80 strcsh r2, [r3, #-14] @ movhi - bcs .L3448 + bcs .L3456 mov r0, #64 bl List_get_gc_head_node uxth r3, r0 cmp r3, fp - beq .L3448 + beq .L3456 ldr r2, [r8, #-564] - ldr r10, .L3583+16 + ldr r10, .L3592+16 cmp r2, #0 - bne .L3441 + bne .L3449 movw r1, #2340 ldrh r1, [r10, r1] cmp r1, #3 - beq .L3441 + beq .L3449 ldr r1, [r8, #-3236] cmp r1, #0 - bne .L3441 + bne .L3449 ldr r1, [r10, #2244] cmp r1, #0 - bne .L3441 - ldrb r0, [r10, #144] @ zero_extendqisi2 + bne .L3449 + ldrb r0, [r10, #148] @ zero_extendqisi2 cmp r0, #0 - beq .L3442 -.L3441: + beq .L3450 +.L3449: ldr r2, [r5, #-3544] mov r3, r3, asl #1 movw r0, #2340 ldrh r0, [r10, r0] ldrh r1, [r2, r3] movw r3, #2390 - ldr r2, .L3583+24 + ldr r2, .L3592+24 cmp r0, #3 ldrh r3, [r10, r3] ldrh r2, [r2] @@ -21234,7 +21288,7 @@ ftl_do_gc: movne r3, #0 add r3, r2, r3 cmp r1, r3 - bgt .L3444 + bgt .L3452 mov r0, #0 bl List_get_gc_head_node ldr r3, [r10, #2448] @@ -21243,75 +21297,74 @@ ftl_do_gc: cmp r2, r3, lsr #2 movls r3, #160 uxth fp, r0 - bls .L3575 - b .L3579 -.L3442: + bls .L3583 + b .L3587 +.L3450: ldr r2, [r8, #-3544] mov r3, r3, asl #1 ldrh r3, [r2, r3] cmp r3, #7 - bhi .L3447 + bhi .L3455 bl List_get_gc_head_node uxth fp, r0 -.L3579: +.L3587: mov r3, #128 -.L3575: +.L3583: strh r3, [r9, #-14] @ movhi movw r3, #65535 cmp fp, r3 - beq .L3448 - b .L3438 -.L3444: + beq .L3456 + b .L3446 +.L3452: mov r3, #128 - b .L3576 -.L3447: + b .L3584 +.L3455: mov r3, #64 -.L3576: +.L3584: strh r3, [r9, #-14] @ movhi - b .L3448 -.L3438: + b .L3456 +.L3446: ldr r0, [r5, #-3608] mov r1, fp, asl #1 ldr r3, [r5, #-3544] ldrh r2, [r7, #-8] ldrh r3, [r3, r1] ldrh r1, [r0, r1] - ldr r0, .L3583+76 + ldr r0, .L3592+72 str r1, [sp] - ldr r1, .L3583+80 + ldr r1, .L3592+76 ldrh r1, [r1] str r1, [sp, #4] mov r1, fp bl printk -.L3448: +.L3456: bl FtlGcReFreshBadBlk - b .L3436 -.L3577: + b .L3444 +.L3585: mov fp, r3 - b .L3436 -.L3572: + b .L3444 +.L3580: add sp, sp, #44 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3584: +.L3593: .align 2 -.L3583: +.L3592: .word .LANCHOR2 .word .LANCHOR1 .word .LANCHOR2-2656 .word .LANCHOR2-3280 .word .LANCHOR0 - .word .LANCHOR4+1984 + .word .LANCHOR4 .word .LANCHOR0+2320 .word .LC157 .word .LANCHOR2-3520 .word .LANCHOR2-3296 - .word .LANCHOR4 .word .LANCHOR2-3472 .word .LANCHOR2-3284 .word .LANCHOR2-2712 .word .LANCHOR0+2388 - .word .LANCHOR4+1986 + .word .LANCHOR4+1994 .word .LANCHOR0+2390 .word .LANCHOR2-3428 .word .LANCHOR2-3528 @@ -21329,39 +21382,39 @@ FtlCacheWriteBack: stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 - ldr r3, .L3629 - ldr r7, .L3629+4 - ldr r5, [r3, #1992] + ldr r3, .L3638 + ldr r7, .L3638+4 + ldr r5, [r3, #2000] ldr r3, [r7, #-3616] cmp r3, #0 - bne .L3587 - ldr r4, .L3629+8 + bne .L3596 + ldr r4, .L3638+8 ldr r1, [r4, #2440] cmp r1, #0 - beq .L3587 - ldrb r6, [r4, #144] @ zero_extendqisi2 + beq .L3596 + ldrb r6, [r4, #148] @ zero_extendqisi2 mov r8, #0 ldr r0, [r4, #2444] mov r10, #36 cmp r6, #0 ldrb r3, [r5, #9] @ zero_extendqisi2 - ldr r9, .L3629+8 + ldr r9, .L3638+8 ldrneb r6, [r5, #8] @ zero_extendqisi2 subne r6, r6, #1 clzne r6, r6 movne r6, r6, lsr #5 mov r2, r6 bl FlashProgPages -.L3590: +.L3599: ldr r3, [r4, #2440] cmp r8, r3 - bcs .L3608 + bcs .L3617 mul fp, r10, r8 ldr r3, [r9, #2444] add r2, r3, fp ldr r3, [r3, fp] cmn r3, #1 - beq .L3611 + beq .L3620 ldr r3, [r2, #4] cmp r6, #0 ldr r0, [r2, #16] @@ -21375,7 +21428,7 @@ FtlCacheWriteBack: ldr r3, [r3, #12] ldr r0, [r3, #12] cmn r0, #1 - beq .L3594 + beq .L3603 ubfx r0, r0, #10, #16 bl P2V_block_in_plane ldr r2, [r7, #-3544] @@ -21383,75 +21436,75 @@ FtlCacheWriteBack: mov fp, r0 ldrh r2, [r2, r3] cmp r2, #0 - bne .L3595 - ldr r0, .L3629+12 + bne .L3604 + ldr r0, .L3638+12 mov r1, fp bl printk -.L3595: +.L3604: mov r0, fp bl decrement_vpc_count -.L3594: +.L3603: add r8, r8, #1 - b .L3590 -.L3627: - ldr r6, .L3629+16 + b .L3599 +.L3636: + ldr r6, .L3638+16 movw r5, #16386 -.L3607: +.L3616: ldrh r3, [r6] cmp r3, #0 - beq .L3608 + beq .L3617 mov r0, #1 mov r1, r0 bl ftl_do_gc subs r5, r5, #1 - bne .L3607 -.L3608: + bne .L3616 +.L3617: mov r3, #0 str r3, [r4, #2440] - b .L3587 -.L3611: - ldr fp, .L3629+8 + b .L3596 +.L3620: + ldr fp, .L3638+8 mov r9, #0 -.L3591: +.L3600: ldr r3, [r4, #2440] cmp r9, r3 - bcs .L3627 + bcs .L3636 mov r8, #36 ldr r3, [fp, #2444] mul r8, r8, r9 mov r10, #0 mvn r2, #0 str r2, [r3, r8] -.L3597: +.L3606: ldr r3, [r4, #2444] add r2, r3, r8 ldr r3, [r3, r8] cmn r3, #1 - bne .L3628 + bne .L3637 ldr r0, [r2, #4] ubfx r0, r0, #10, #16 bl P2V_block_in_plane ldrh r3, [r5] cmp r3, r0 - bne .L3598 + bne .L3607 ldr r1, [r7, #-3544] mov r3, r3, asl #1 ldrh r0, [r5, #4] ldrh r2, [r1, r3] rsb r2, r0, r2 strh r2, [r1, r3] @ movhi - ldr r3, .L3629+20 + ldr r3, .L3638+20 strb r10, [r5, #6] strh r10, [r5, #4] @ movhi ldrh r3, [r3] strh r3, [r5, #2] @ movhi -.L3598: +.L3607: ldrh r3, [r5, #4] cmp r3, #0 - bne .L3599 + bne .L3608 mov r0, r5 bl allocate_new_data_superblock -.L3599: +.L3608: ldr r3, [r7, #-3136] add r3, r3, #1 str r3, [r7, #-3136] @@ -21474,14 +21527,14 @@ FtlCacheWriteBack: ldr r3, [r4, #2444] ldr r3, [r3, r8] cmn r3, #1 - ldreq r2, .L3629+4 + ldreq r2, .L3638+4 moveq r3, #1 streq r3, [r2, #-3616] ldr r3, [r7, #-3616] cmp r3, #0 - beq .L3597 - b .L3587 -.L3628: + beq .L3606 + b .L3596 +.L3637: ldr r3, [r2, #4] cmp r6, #0 ldr r0, [r2, #16] @@ -21495,7 +21548,7 @@ FtlCacheWriteBack: ldr r3, [r8, #12] ldr r0, [r3, #12] cmn r0, #1 - beq .L3604 + beq .L3613 ubfx r0, r0, #10, #16 bl P2V_block_in_plane ldr r2, [r7, #-3544] @@ -21503,24 +21556,24 @@ FtlCacheWriteBack: mov r8, r0 ldrh r2, [r2, r3] cmp r2, #0 - bne .L3605 - ldr r0, .L3629+12 + bne .L3614 + ldr r0, .L3638+12 mov r1, r8 bl printk -.L3605: +.L3614: mov r0, r8 bl decrement_vpc_count -.L3604: +.L3613: add r9, r9, #1 - b .L3591 -.L3587: + b .L3600 +.L3596: mov r0, #0 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3630: +.L3639: .align 2 -.L3629: +.L3638: .word .LANCHOR4 .word .LANCHOR2 .word .LANCHOR0 @@ -21536,30 +21589,30 @@ FtlSysFlush: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L3635 + ldr r3, .L3644 ldr r3, [r3, #-3616] cmp r3, #0 - bne .L3634 - ldr r3, .L3635+4 + bne .L3643 + ldr r3, .L3644+4 stmfd sp!, {r4, lr} .save {r4, lr} ldr r4, [r3, #504] cmp r4, #1 - bne .L3632 + bne .L3641 bl FtlCacheWriteBack bl l2p_flush mov r0, r4 bl FtlEctTblFlush bl FtlVpcTblFlush -.L3632: +.L3641: mov r0, #0 ldmfd sp!, {r4, pc} -.L3634: +.L3643: mov r0, #0 bx lr -.L3636: +.L3645: .align 2 -.L3635: +.L3644: .word .LANCHOR2 .word .LANCHOR1 .fnend @@ -21573,17 +21626,17 @@ FtlDeInit: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, lr} .save {r3, lr} - ldr r3, .L3640 + ldr r3, .L3649 ldr r3, [r3, #504] cmp r3, #1 - bne .L3638 + bne .L3647 bl FtlSysFlush -.L3638: +.L3647: mov r0, #0 ldmfd sp!, {r3, pc} -.L3641: +.L3650: .align 2 -.L3640: +.L3649: .word .LANCHOR1 .fnend .size FtlDeInit, .-FtlDeInit @@ -21612,13 +21665,13 @@ rk_ftl_de_init: stmfd sp!, {r3, lr} .save {r3, lr} mov r1, #0 - ldr r0, .L3646 + ldr r0, .L3655 bl printk ldmfd sp!, {r3, lr} b ftl_deinit -.L3647: +.L3656: .align 2 -.L3646: +.L3655: .word .LC160 .fnend .size rk_ftl_de_init, .-rk_ftl_de_init @@ -21655,24 +21708,24 @@ ftl_discard: .save {r4, r5, r6, r7, r8, r9, lr} .pad #12 mov r6, r0 - ldr r8, .L3669 + ldr r8, .L3678 mov r4, r1 ldr r3, [r8, #2428] cmp r1, r3 cmpls r0, r3 movcs r5, #1 movcc r5, #0 - bcs .L3658 + bcs .L3667 add r2, r0, r1 cmp r2, r3 - bhi .L3658 + bhi .L3667 cmp r1, #31 - bls .L3656 - ldr r7, .L3669+4 + bls .L3665 + ldr r7, .L3678+4 ldr r3, [r7, #-3616] cmp r3, #0 movne r0, r5 - bne .L3651 + bne .L3660 bl FtlCacheWriteBack movw r3, #2394 ldrh r5, [r8, r3] @@ -21684,36 +21737,36 @@ ftl_discard: rsb r6, r3, r6 uxth r6, r6 cmp r6, #0 - beq .L3652 + beq .L3661 rsb r5, r6, r5 add r8, r0, #1 cmp r5, r4 movcs r5, r4 uxth r5, r5 rsb r4, r5, r4 -.L3652: - ldr r5, .L3669+8 +.L3661: + ldr r5, .L3678+8 mvn r3, #0 - ldr r9, .L3669+12 + ldr r9, .L3678+12 str r3, [sp, #4] mov r6, r5 -.L3653: +.L3662: ldrh r3, [r5] cmp r4, r3 - bcc .L3668 + bcc .L3677 mov r0, r8 mov r1, sp mov r2, #0 bl log2phys ldr r3, [sp] cmn r3, #1 - beq .L3654 - ldr r3, [r9, #1996] + beq .L3663 + ldr r3, [r9, #2004] add r1, sp, #4 mov r2, #1 mov r0, r8 add r3, r3, #1 - str r3, [r9, #1996] + str r3, [r9, #2004] ldr r3, [r7, #-3360] add r3, r3, #1 str r3, [r7, #-3360] @@ -21722,32 +21775,32 @@ ftl_discard: ubfx r0, r0, #10, #16 bl P2V_block_in_plane bl decrement_vpc_count -.L3654: +.L3663: ldrh r3, [r6] add r8, r8, #1 rsb r4, r3, r4 - b .L3653 -.L3668: - ldr r3, .L3669+12 - ldr r2, [r3, #1996] + b .L3662 +.L3677: + ldr r3, .L3678+12 + ldr r2, [r3, #2004] cmp r2, #32 - bls .L3656 + bls .L3665 mov r2, #0 - str r2, [r3, #1996] + str r2, [r3, #2004] bl l2p_flush bl FtlVpcTblFlush -.L3656: +.L3665: mov r0, #0 - b .L3651 -.L3658: + b .L3660 +.L3667: mvn r0, #0 -.L3651: +.L3660: add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc} -.L3670: +.L3679: .align 2 -.L3669: +.L3678: .word .LANCHOR0 .word .LANCHOR2 .word .LANCHOR0+2394 @@ -21775,31 +21828,31 @@ ftl_read: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r5, r1 - ldr r1, .L3720 + ldr r1, .L3729 .pad #84 sub sp, sp, #84 ldr r1, [r1, #504] cmp r1, #1 - bne .L3697 + bne .L3706 cmp r0, #16 mov r8, r3 mov r9, r2 - bne .L3674 + bne .L3683 mov r1, r2 add r0, r5, #256 mov r2, r3 bl FtlVendorPartRead - b .L3673 -.L3674: - ldr r2, .L3720+4 + b .L3682 +.L3683: + ldr r2, .L3729+4 ldr r3, [r2, #2428] cmp r9, r3 cmpls r5, r3 - bcs .L3697 + bcs .L3706 add r1, r5, r9 str r1, [sp, #40] cmp r1, r3 - bhi .L3697 + bhi .L3706 movw r3, #2394 mov r0, r5 ldrh r4, [r2, r3] @@ -21815,7 +21868,7 @@ ftl_read: rsb r3, r3, #1 add r3, r3, r0 str r3, [sp, #28] - ldr r3, .L3720+8 + ldr r3, .L3729+8 ldr r1, [sp, #28] ldr r0, [sp, #32] ldr r2, [r3, #-3336] @@ -21827,32 +21880,32 @@ ftl_read: str r2, [r3, #-3364] bl FtlCacheMetchLpa cmp r0, #0 - beq .L3675 + beq .L3684 bl FtlCacheWriteBack -.L3675: +.L3684: ldr r6, [sp, #32] mov r10, #0 - ldr r4, .L3720+8 + ldr r4, .L3729+8 mov r7, r10 str r10, [sp, #48] str r10, [sp, #52] -.L3676: +.L3685: ldr r3, [sp, #28] cmp r3, #0 - beq .L3719 + beq .L3728 mov r0, r6 add r1, sp, #76 mov r2, #0 bl log2phys ldr r3, [sp, #76] cmn r3, #1 - bne .L3715 + bne .L3724 mov fp, #0 -.L3677: - ldr r3, .L3720+12 +.L3686: + ldr r3, .L3729+12 ldrh r0, [r3] cmp fp, r0 - bcs .L3681 + bcs .L3690 mla r0, r0, r6, fp ldr r2, [sp, #40] cmp r0, r5 @@ -21861,27 +21914,27 @@ ftl_read: cmp r0, r2 movcs r3, #0 cmp r3, #0 - beq .L3679 + beq .L3688 rsb r0, r5, r0 mov r1, #0 mov r2, #512 add r0, r8, r0, asl #9 bl ftl_memset -.L3679: +.L3688: add fp, fp, #1 - b .L3677 -.L3715: + b .L3686 +.L3724: ldr r2, [r4, #-536] mov fp, #36 mla fp, fp, r7, r2 str r3, [fp, #4] ldr r3, [sp, #32] cmp r6, r3 - bne .L3682 + bne .L3691 ldr r3, [r4, #-508] mov r0, r5 str r3, [fp, #8] - ldr r3, .L3720+12 + ldr r3, .L3729+12 ldrh ip, [r3] mov r1, ip str ip, [sp, #44] @@ -21894,31 +21947,31 @@ ftl_read: cmp r3, ip str r3, [sp, #48] streq r8, [fp, #8] - b .L3683 -.L3682: + b .L3692 +.L3691: ldr r3, [sp, #36] cmp r6, r3 - bne .L3684 + bne .L3693 ldr r3, [r4, #-504] ldr r1, [sp, #40] str r3, [fp, #8] - ldr r3, .L3720+12 + ldr r3, .L3729+12 ldrh r2, [r3] mul r3, r2, r6 rsb r10, r3, r1 cmp r10, r2 - bne .L3683 - b .L3717 -.L3684: - ldr r3, .L3720+12 + bne .L3692 + b .L3726 +.L3693: + ldr r3, .L3729+12 ldrh r3, [r3] mul r3, r3, r6 -.L3717: +.L3726: rsb r3, r5, r3 add r3, r8, r3, asl #9 str r3, [fp, #8] -.L3683: - ldr r3, .L3720+16 +.L3692: + ldr r3, .L3729+16 ldr r2, [r4, #-496] str r6, [fp, #16] ldrh r3, [r3] @@ -21927,19 +21980,19 @@ ftl_read: bic r3, r3, #3 add r3, r2, r3 str r3, [fp, #12] -.L3681: +.L3690: ldr r3, [sp, #28] add r6, r6, #1 subs r3, r3, #1 str r3, [sp, #28] - beq .L3685 - ldr r3, .L3720+20 + beq .L3694 + ldr r3, .L3729+20 ldrh r3, [r3] cmp r7, r3, asl #3 - bne .L3676 -.L3685: + bne .L3685 +.L3694: cmp r7, #0 - beq .L3676 + beq .L3685 ldr r0, [r4, #-536] mov r1, r7 mov r2, #0 @@ -21954,7 +22007,7 @@ ftl_read: str r3, [sp, #68] mov r3, #0 str r3, [sp, #44] -.L3692: +.L3701: ldr r3, [sp, #44] mov ip, #36 ldr r1, [sp, #32] @@ -21963,34 +22016,34 @@ ftl_read: add r3, r3, fp ldr r2, [r3, #16] cmp r2, r1 - bne .L3687 + bne .L3696 ldr r1, [r3, #8] ldr r3, [r4, #-508] cmp r1, r3 - bne .L3688 + bne .L3697 ldr r3, [sp, #60] mov r0, r8 ldr r2, [sp, #64] add r1, r1, r3 - b .L3718 -.L3687: + b .L3727 +.L3696: ldr r1, [sp, #36] cmp r2, r1 - bne .L3688 + bne .L3697 ldr r1, [r3, #8] ldr r3, [r4, #-504] cmp r1, r3 - bne .L3688 - ldr r3, .L3720+12 + bne .L3697 + ldr r3, .L3729+12 ldr r2, [sp, #68] ldrh r0, [r3] ldr r3, [sp, #36] mul r0, r0, r3 rsb r0, r5, r0 add r0, r8, r0, asl #9 -.L3718: +.L3727: bl ftl_memcpy -.L3688: +.L3697: ldr r2, [r4, #-536] add r3, r2, fp ldr r1, [r2, fp] @@ -22003,9 +22056,9 @@ ftl_read: ldr r1, [r3, #16] ldr r2, [r2, #8] cmp r1, r2 - beq .L3690 + beq .L3699 ldr r2, [r4, #-3160] - ldr r0, .L3720+24 + ldr r0, .L3729+24 add r2, r2, #1 str r2, [r4, #-3160] ldr lr, [r3, #12] @@ -22024,44 +22077,44 @@ ftl_read: ldr r2, [r3, #4] ldr r3, [lr] bl printk -.L3690: +.L3699: ldr r3, [r4, #-536] add r2, r3, fp ldr r3, [r3, fp] cmp r3, #256 - bne .L3691 + bne .L3700 ldr r0, [r2, #4] ubfx r0, r0, #10, #16 bl P2V_block_in_plane bl FtlGcRefreshBlock -.L3691: +.L3700: ldr r3, [sp, #44] add r3, r3, #1 str r3, [sp, #44] cmp r3, r7 - bne .L3692 + bne .L3701 mov r7, #0 - b .L3676 -.L3719: - ldr r3, .L3720+28 + b .L3685 +.L3728: + ldr r3, .L3729+28 ldrh r3, [r3, #-2] cmp r3, #0 - beq .L3694 + beq .L3703 ldr r0, [sp, #28] mov r1, #1 bl ftl_do_gc -.L3694: +.L3703: ldr r0, [sp, #52] - b .L3673 -.L3697: + b .L3682 +.L3706: mvn r0, #0 -.L3673: +.L3682: add sp, sp, #84 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3721: +.L3730: .align 2 -.L3720: +.L3729: .word .LANCHOR1 .word .LANCHOR0 .word .LANCHOR2 @@ -22104,23 +22157,23 @@ FlashBootVendorRead: mov r6, r0 mov r5, r1 bl rknand_device_lock - ldr r3, .L3728 + ldr r3, .L3737 ldr r3, [r3, #504] cmp r3, #1 mvnne r4, #0 - bne .L3725 + bne .L3734 mov r2, r4 mov r0, r6 mov r1, r5 bl ftl_vendor_read mov r4, r0 -.L3725: +.L3734: bl rknand_device_unlock mov r0, r4 ldmfd sp!, {r4, r5, r6, pc} -.L3729: +.L3738: .align 2 -.L3728: +.L3737: .word .LANCHOR1 .fnend .size FlashBootVendorRead, .-FlashBootVendorRead @@ -22187,18 +22240,18 @@ FtlInit: stmfd sp!, {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} mvn r3, #0 - ldr r2, .L3751 - ldr r7, .L3751+4 - ldr r5, .L3751+8 - ldr r6, .L3751+12 - ldr r1, .L3751+16 - ldr r0, .L3751+20 + ldr r2, .L3760 + ldr r7, .L3760+4 + ldr r5, .L3760+8 + ldr r6, .L3760+12 + ldr r1, .L3760+16 + ldr r0, .L3760+20 str r3, [r7, #504] mov r3, #0 - str r3, [r2, #2000] + str r3, [r2, #2008] str r3, [r5, #-3616] bl printk - add r0, r6, #116 + add r0, r6, #120 bl FtlConstantsInit bl FtlMemInit bl FtlVariablesInit @@ -22207,40 +22260,40 @@ FtlInit: bl FtlFreeSysBlkQueueInit bl FtlLoadBbt cmp r0, #0 - ldrne r0, .L3751+24 - bne .L3750 + ldrne r0, .L3760+24 + bne .L3759 bl FtlSysBlkInit subs r4, r0, #0 - beq .L3737 - ldr r0, .L3751+28 -.L3750: - ldr r1, .L3751+32 + beq .L3746 + ldr r0, .L3760+28 +.L3759: + ldr r1, .L3760+32 bl printk - b .L3736 -.L3737: + b .L3745 +.L3746: sub r5, r5, #3520 mov r1, #1 str r1, [r7, #504] bl ftl_do_gc ldrh r5, [r5, #-8] cmp r5, #15 - bhi .L3738 - ldr r6, .L3751+36 - ldr r7, .L3751+40 + bhi .L3747 + ldr r6, .L3760+36 + ldr r7, .L3760+40 sub r8, r6, #244 -.L3741: +.L3750: ldrh r3, [r6] movw r2, #65535 cmp r3, r2 - bne .L3739 + bne .L3748 ldrh r2, [r7] cmp r2, r3 - bne .L3739 + bne .L3748 and r0, r4, #63 bl List_get_gc_head_node uxth r0, r0 bl FtlGcRefreshBlock -.L3739: +.L3748: mov r0, #1 mov r1, r0 bl ftl_do_gc @@ -22250,28 +22303,28 @@ FtlInit: ldrh r2, [r8] add r3, r5, #2 cmp r2, r3 - bhi .L3736 + bhi .L3745 add r4, r4, #1 cmp r4, #4096 - bne .L3741 - b .L3736 -.L3738: - ldrb r3, [r6, #144] @ zero_extendqisi2 + bne .L3750 + b .L3745 +.L3747: + ldrb r3, [r6, #148] @ zero_extendqisi2 cmp r3, #0 - beq .L3736 + beq .L3745 mov r4, #128 -.L3743: +.L3752: mov r0, #1 mov r1, r0 bl ftl_do_gc subs r4, r4, #1 - bne .L3743 -.L3736: + bne .L3752 +.L3745: mov r0, #0 ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L3752: +.L3761: .align 2 -.L3751: +.L3760: .word .LANCHOR4 .word .LANCHOR1 .word .LANCHOR2 @@ -22295,46 +22348,46 @@ rk_ftl_init: stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r0, #2048 - bl ftl_malloc - ldr r6, .L3758 - ldr r4, .L3758+4 + bl ftl_dma32_malloc + ldr r6, .L3767 + ldr r4, .L3767+4 mov r5, #0 - ldr r1, .L3758+8 - str r5, [r6, #2008] + mov r1, r6 + str r5, [r1, #2016]! + str r5, [r4, #1688] str r5, [r4, #1684] - str r0, [r6, #2004] - ldr r0, .L3758+12 + str r0, [r6, #2012] + ldr r0, .L3767+8 bl rknand_get_reg_addr ldr r3, [r4, #1684] cmp r3, r5 - beq .L3756 + beq .L3765 bl rk_nandc_irq_init mov r1, r5 mov r2, r5 mov r3, #2048 - ldr r0, [r6, #2004] + ldr r0, [r6, #2012] bl FlashSramLoadStore bl rknand_flash_cs_init ldr r0, [r4, #1684] bl FlashInit subs r4, r0, #0 - bne .L3755 + bne .L3764 bl FtlInit -.L3755: +.L3764: mov r1, r4 - ldr r0, .L3758+16 + ldr r0, .L3767+12 bl printk mov r0, r4 ldmfd sp!, {r4, r5, r6, pc} -.L3756: +.L3765: mvn r0, #0 ldmfd sp!, {r4, r5, r6, pc} -.L3759: +.L3768: .align 2 -.L3758: +.L3767: .word .LANCHOR4 .word .LANCHOR2 - .word .LANCHOR4+2008 .word .LANCHOR2+1684 .word .LC163 .fnend @@ -22346,20 +22399,19 @@ ftl_fix_nand_power_lost_error: .fnstart @ args = 0, pretend = 0, frame = 48 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L3777 - ldrb r3, [r3, #144] @ zero_extendqisi2 + ldr r3, .L3786 + ldrb r3, [r3, #148] @ zero_extendqisi2 cmp r3, #0 bxeq lr stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - movw r3, #1848 - ldr r8, .L3777+4 .pad #52 sub sp, sp, #52 - ldr r4, .L3777+8 + ldr r8, .L3786+4 movw r5, #4097 - ldr r0, .L3777+12 - ldrh r7, [r8, r3] + ldr r4, .L3786+8 + ldr r0, .L3786+12 + ldrh r7, [r8] ldr r3, [r4, #-3544] mov r6, r7, asl #1 mov r1, r7 @@ -22371,46 +22423,46 @@ ftl_fix_nand_power_lost_error: sub r3, r4, #3472 ldrh r0, [r3, #-4] bl FtlGcRefreshOpenBlock - ldr r0, .L3777+16 + ldr r0, .L3786+16 bl allocate_new_data_superblock - ldr r0, .L3777+20 + ldr r0, .L3786+20 bl allocate_new_data_superblock -.L3762: +.L3771: subs r5, r5, #1 - beq .L3766 + beq .L3775 mov r0, #1 mov r1, r0 bl ftl_do_gc ldr r3, [r4, #-3544] ldrh r3, [r3, r6] cmp r3, #0 - bne .L3762 -.L3766: + bne .L3771 +.L3775: ldr r3, [r4, #-3544] mov r1, r7 - ldr r0, .L3777+12 + ldr r0, .L3786+12 ldrh r2, [r3, r6] bl printk ldr r3, [r4, #-3544] ldrh r5, [r3, r6] cmp r5, #0 - bne .L3764 + bne .L3773 add r0, sp, #48 movw r10, #65535 mov fp, #36 strh r7, [r0, #-48]! @ movhi bl make_superblock - ldr r3, .L3777+24 + ldr r3, .L3786+24 ldrh lr, [r3] - ldr r3, .L3777+8 + ldr r3, .L3786+8 ldr r9, [r3, #-3612] mov r3, r5 mov ip, r3 add r0, sp, #14 -.L3767: +.L3776: uxth r2, r3 cmp r2, lr - bcs .L3776 + bcs .L3785 ldrh r2, [r0, #2]! add r3, r3, #1 cmp r2, r10 @@ -22420,11 +22472,11 @@ ftl_fix_nand_power_lost_error: uxthne r5, r5 stmneib r1, {r2, ip} strne ip, [r1, #12] - b .L3767 -.L3776: + b .L3776 +.L3785: ldr r3, [r4, #-3544] mov r1, r7 - ldr r0, .L3777+28 + ldr r0, .L3786+28 ldrh r2, [r3, r6] bl printk mov r1, #0 @@ -22435,18 +22487,17 @@ ftl_fix_nand_power_lost_error: mov r1, #1 mov r2, r5 bl FlashEraseBlocks -.L3764: - movw r3, #1848 - mvn r2, #0 - strh r2, [r8, r3] @ movhi +.L3773: + mvn r3, #0 + strh r3, [r8] @ movhi add sp, sp, #52 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3778: +.L3787: .align 2 -.L3777: +.L3786: .word .LANCHOR0 - .word .LANCHOR4 + .word .LANCHOR4+1856 .word .LANCHOR2 .word .LC164 .word .LANCHOR2-3524 @@ -22477,38 +22528,38 @@ ftl_write: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #100 sub sp, sp, #100 - ldr r10, .L3854 + ldr r10, .L3863 str r3, [sp, #4] ldr r3, [r10, #-3616] cmp r3, #0 - bne .L3821 + bne .L3830 mov r8, r2 - ldr r2, .L3854+4 + ldr r2, .L3863+4 ldr r2, [r2, #504] cmp r2, #1 movne r0, r3 - bne .L3781 + bne .L3790 cmp r0, #16 mov r7, r1 - bne .L3782 + bne .L3791 add r0, r1, #256 ldr r2, [sp, #4] mov r1, r8 bl FtlVendorPartWrite - b .L3781 -.L3782: - ldr fp, .L3854+8 + b .L3790 +.L3791: + ldr fp, .L3863+8 ldr r3, [fp, #2428] cmp r8, r3 cmpls r1, r3 - bcs .L3824 + bcs .L3833 add r5, r1, r8 cmp r5, r3 - bhi .L3824 - ldr r6, .L3854+12 + bhi .L3833 + ldr r6, .L3863+12 mov r3, #2048 mov r0, r1 - str r3, [r6, #2012] + str r3, [r6, #2020] movw r3, #2394 ldrh r4, [fp, r3] mov r1, r4 @@ -22535,7 +22586,7 @@ ftl_write: movcc r3, #0 cmp r2, #0 str r3, [sp, #20] - beq .L3784 + beq .L3793 mov r3, #36 ldr r9, [fp, #2444] mul r3, r3, r2 @@ -22544,15 +22595,15 @@ ftl_write: add r9, r9, r3 ldr r3, [r9, #16] cmp r2, r3 - bne .L3785 + bne .L3794 ldr r3, [r10, #-3352] mov r1, r4 mov r0, r7 add r3, r3, #1 str r3, [r10, #-3352] - ldr r3, [r6, #2016] + ldr r3, [r6, #2024] add r3, r3, #1 - str r3, [r6, #2016] + str r3, [r6, #2024] bl __aeabi_uidivmod ldr r0, [r9, #8] rsb r4, r1, r4 @@ -22564,11 +22615,11 @@ ftl_write: mov r2, r10 bl ftl_memcpy cmp r5, #0 - bne .L3786 - ldr r3, [r6, #2016] + bne .L3795 + ldr r3, [r6, #2024] cmp r3, #2 - ble .L3821 -.L3786: + ble .L3830 +.L3795: ldr r3, [sp, #4] rsb r8, r4, r8 add r7, r7, r4 @@ -22578,70 +22629,70 @@ ftl_write: ldr r3, [sp, #8] add r3, r3, #1 str r3, [sp, #8] -.L3785: +.L3794: mov r3, #0 - str r3, [r6, #2016] -.L3784: + str r3, [r6, #2024] +.L3793: ldr r0, [sp, #8] ldr r1, [sp, #28] bl FtlCacheMetchLpa cmp r0, #0 - beq .L3787 + beq .L3796 bl FtlCacheWriteBack -.L3787: - ldr r5, .L3854+16 +.L3796: + ldr r5, .L3863+16 mov r3, #0 - ldr r4, .L3854+8 + ldr r4, .L3863+8 str r3, [sp, #12] - str r5, [r6, #1992] + str r5, [r6, #2000] ldr r6, [sp, #8] mov r10, r4 str r3, [sp, #32] -.L3788: +.L3797: ldr r3, [sp] cmp r3, #0 - beq .L3853 + beq .L3862 ldrh r2, [r5, #4] cmp r2, #0 - bne .L3789 - ldr r3, .L3854+16 - ldr r9, .L3854+4 + bne .L3798 + ldr r3, .L3863+16 + ldr r9, .L3863+4 cmp r5, r3 - bne .L3790 + bne .L3799 add r0, r3, #48 ldrh r5, [r0, #4] cmp r5, #0 - bne .L3791 + bne .L3800 bl allocate_new_data_superblock str r5, [r9, #3452] -.L3791: - ldr r0, .L3854+16 +.L3800: + ldr r0, .L3863+16 bl allocate_new_data_superblock ldr r3, [r9, #3452] cmp r3, #0 - ldrne r5, .L3854+20 - bne .L3792 -.L3793: - ldr r5, .L3854+16 - b .L3792 -.L3790: + ldrne r5, .L3863+20 + bne .L3801 +.L3802: + ldr r5, .L3863+16 + b .L3801 +.L3799: ldrh r3, [r3, #4] str r2, [r9, #3452] cmp r3, #0 - bne .L3793 + bne .L3802 mov r0, r5 bl allocate_new_data_superblock -.L3792: +.L3801: ldrh r3, [r5, #4] cmp r3, #0 - bne .L3794 + bne .L3803 mov r0, r5 bl allocate_new_data_superblock -.L3794: - ldr r3, .L3854+12 - str r5, [r3, #1992] -.L3789: - ldr r2, .L3854 +.L3803: + ldr r3, .L3863+12 + str r5, [r3, #2000] +.L3798: + ldr r2, .L3863 ldr r1, [r4, #2440] ldrh r3, [r5, #4] ldr r2, [r2, #-540] @@ -22653,15 +22704,15 @@ ftl_write: movcs r3, r2 str r3, [sp, #44] mov r3, #0 -.L3851: +.L3860: str r3, [sp, #16] ldr r3, [sp, #16] ldr r2, [sp, #44] cmp r3, r2 - beq .L3796 + beq .L3805 ldrh r3, [r5, #4] cmp r3, #0 - beq .L3796 + beq .L3805 ldr r3, [sp, #28] ldr r2, [sp, #16] rsb ip, r3, r6 @@ -22673,14 +22724,14 @@ ftl_write: moveq r3, #0 andne r3, r3, #1 cmp r3, #0 - beq .L3797 - ldr r3, .L3854+24 + beq .L3806 + ldr r3, .L3863+24 ldrh r2, [r3] add r3, r8, r7 mls r3, r2, r6, r3 cmp r3, r2 - bne .L3796 -.L3797: + bne .L3805 +.L3806: add r1, sp, #56 mov r2, #0 mov r0, r6 @@ -22691,14 +22742,14 @@ ftl_write: ldr r2, [r4, #2440] ldr r1, [r4, #2444] mov r3, #36 - ldr fp, .L3854+28 + ldr fp, .L3863+28 mla r1, r3, r2, r1 ldrh r2, [fp] str r6, [r1, #16] str r3, [sp, #48] ldr r3, [r4, #2440] str r0, [r1, #4] - ldr r0, .L3854 + ldr r0, .L3863 mul lr, r3, r2 bic r3, lr, #3 str r3, [sp, #36] @@ -22725,10 +22776,10 @@ ftl_write: str r3, [sp, #24] orrs r3, r3, ip ldr r3, [sp, #48] - beq .L3798 + beq .L3807 ldr r3, [sp, #24] cmp r3, #0 - beq .L3799 + beq .L3808 ldrh fp, [fp, #-6] mov r0, r7 mov r1, fp @@ -22740,11 +22791,11 @@ ftl_write: movcc r3, fp movcs r3, r8 str r3, [sp, #12] - b .L3800 -.L3799: + b .L3809 +.L3808: cmp ip, #0 - beq .L3800 - ldr r2, .L3854+24 + beq .L3809 + ldr r2, .L3863+24 add r3, r8, r7 ldrh r2, [r2] smulbb r2, r2, r6 @@ -22753,12 +22804,12 @@ ftl_write: str r3, [sp, #12] ldr r3, [sp, #24] str r3, [sp, #32] -.L3800: - ldr r3, .L3854+24 +.L3809: + ldr r3, .L3863+24 ldr r2, [sp, #12] ldrh r3, [r3] cmp r2, r3 - bne .L3801 + bne .L3810 ldr r3, [sp, #24] ldr r0, [r10, #2444] cmp r3, #0 @@ -22774,16 +22825,16 @@ ftl_write: mov r3, #36 mla r3, r3, r2, r0 strne r1, [r3, #8] - bne .L3804 + bne .L3813 ldr r0, [r3, #8] - ldr r3, .L3854+32 + ldr r3, .L3863+32 ldrh r2, [r3] - b .L3849 -.L3801: + b .L3858 +.L3810: ldr r2, [sp, #56] mov r3, #36 cmn r2, #1 - beq .L3805 + beq .L3814 ldr r1, [r4, #2444] add r0, sp, #60 str r2, [sp, #64] @@ -22799,36 +22850,36 @@ ftl_write: bl FlashReadPages ldr r3, [sp, #60] cmn r3, #1 - ldr r3, .L3854 + ldr r3, .L3863 ldreq r2, [r3, #-3160] addeq r2, r2, #1 streq r2, [r3, #-3160] - beq .L3808 + beq .L3817 ldr r2, [r9, #8] cmp r2, r6 - beq .L3808 + beq .L3817 ldr r2, [r3, #-3160] - ldr r0, .L3854+36 + ldr r0, .L3863+36 add r2, r2, #1 str r2, [r3, #-3160] mov r2, r6 ldr r1, [r9, #8] bl printk - b .L3808 -.L3805: + b .L3817 +.L3814: ldr r2, [r4, #2440] ldr r1, [r4, #2444] mla r3, r3, r2, r1 mov r1, #0 ldr r0, [r3, #8] - ldr r3, .L3854+32 + ldr r3, .L3863+32 ldrh r2, [r3] bl ftl_memset -.L3808: +.L3817: ldr r3, [sp, #24] cmp r3, #0 mov r3, #36 - beq .L3809 + beq .L3818 ldr r1, [r4, #2444] ldr r2, [r4, #2440] mla r3, r3, r2, r1 @@ -22836,41 +22887,41 @@ ftl_write: ldr r0, [r3, #8] ldr r3, [sp, #32] add r0, r0, r3, asl #9 - b .L3852 -.L3809: + b .L3861 +.L3818: ldr r1, [r4, #2440] ldr r2, [r4, #2444] mla r3, r3, r1, r2 - ldr r2, .L3854+24 + ldr r2, .L3863+24 ldrh r1, [r2] ldr r0, [r3, #8] mul r1, r1, r6 ldr r3, [sp, #4] rsb r1, r7, r1 add r1, r3, r1, asl #9 -.L3852: +.L3861: ldr r3, [sp, #12] mov r2, r3, asl #9 - b .L3849 -.L3798: + b .L3858 +.L3807: ldr r2, [sp, #20] cmp r2, #0 ldr r2, [r4, #2440] - beq .L3810 + beq .L3819 ldr r1, [r4, #2444] mla r3, r3, r2, r1 - ldr r2, .L3854+24 + ldr r2, .L3863+24 ldrh fp, [r2] ldr r2, [sp, #4] mul fp, fp, r6 rsb fp, r7, fp add fp, r2, fp, asl #9 str fp, [r3, #8] - b .L3804 -.L3810: + b .L3813 +.L3819: ldr r0, [r4, #2444] mla r3, r3, r2, r0 - ldr r2, .L3854+24 + ldr r2, .L3863+24 ldrh r1, [r2] ldrh r2, [fp, #-2] ldr r0, [r3, #8] @@ -22878,14 +22929,14 @@ ftl_write: ldr r3, [sp, #4] rsb r1, r7, r1 add r1, r3, r1, asl #9 -.L3849: +.L3858: bl ftl_memcpy -.L3804: - ldr r3, .L3854+40 +.L3813: + ldr r3, .L3863+40 ldr r2, [sp, #40] ldr r1, [sp, #36] strh r3, [r2, r1] @ movhi - ldr r2, .L3854 + ldr r2, .L3863 str r6, [r9, #8] add r6, r6, #1 ldr r3, [r2, #-3328] @@ -22903,74 +22954,74 @@ ftl_write: str r3, [r4, #2440] ldr r3, [sp, #16] add r3, r3, #1 - b .L3851 -.L3796: + b .L3860 +.L3805: ldr r3, [sp] ldr r2, [sp, #16] ldr r1, [sp, #20] rsb r3, r2, r3 - ldr r2, .L3854 + ldr r2, .L3863 str r3, [sp] ldr r3, [r4, #2440] ldr r2, [r2, #-540] cmp r3, r2 orrcs r1, r1, #1 cmp r1, #0 - bne .L3814 + bne .L3823 ldrh r3, [r5, #4] cmp r3, #0 - beq .L3814 -.L3816: + beq .L3823 +.L3825: mov r3, #0 str r3, [sp, #20] - b .L3788 -.L3814: + b .L3797 +.L3823: bl FtlCacheWriteBack mov r3, #0 str r3, [r10, #2440] ldr r3, [sp] cmp r3, #1 - bhi .L3788 - b .L3816 -.L3853: + bhi .L3797 + b .L3825 +.L3862: mov r0, r3 ldr r2, [sp, #8] ldr r3, [sp, #28] rsb r1, r2, r3 bl ftl_do_gc - ldr r3, .L3854+44 + ldr r3, .L3863+44 ldrh r3, [r3, #-8] cmp r3, #5 - bls .L3827 + bls .L3836 cmp r3, #31 - bhi .L3821 - ldr r3, .L3854+8 - ldrb r3, [r3] @ zero_extendqisi2 + bhi .L3830 + ldr r3, .L3863+8 + ldrb r3, [r3, #32] @ zero_extendqisi2 cmp r3, #0 - bne .L3821 -.L3827: + bne .L3830 +.L3836: ldr r4, [sp] - ldr r5, .L3854+48 - ldr r6, .L3854 - ldr r7, .L3854+52 -.L3840: + ldr r5, .L3863+48 + ldr r6, .L3863 + ldr r7, .L3863+52 +.L3849: ldrh r2, [r5] movw r3, #65535 cmp r2, r3 - bne .L3820 + bne .L3829 ldrh r3, [r7] cmp r3, r2 - bne .L3820 - ldr r2, .L3854+56 + bne .L3829 + ldr r2, .L3863+56 ldrh r2, [r2] cmp r2, r3 - bne .L3820 + bne .L3829 and r0, r4, #7 bl List_get_gc_head_node uxth r0, r0 bl FtlGcRefreshBlock -.L3820: - ldr r3, .L3854+60 +.L3829: + ldr r3, .L3863+60 mov r0, #1 mov r1, r0 mov r2, #128 @@ -22982,27 +23033,27 @@ ftl_write: bl ftl_do_gc ldr r3, [r6, #-3616] cmp r3, #0 - bne .L3821 - ldr r3, .L3854+64 + bne .L3830 + ldr r3, .L3863+64 ldrh r3, [r3] cmp r3, #2 - bhi .L3821 + bhi .L3830 add r4, r4, #1 cmp r4, #256 - bne .L3840 - b .L3821 -.L3824: + bne .L3849 + b .L3830 +.L3833: mvn r0, #0 - b .L3781 -.L3821: + b .L3790 +.L3830: mov r0, #0 -.L3781: +.L3790: add sp, sp, #100 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3855: +.L3864: .align 2 -.L3854: +.L3863: .word .LANCHOR2 .word .LANCHOR1 .word .LANCHOR0 @@ -23054,23 +23105,23 @@ FlashBootVendorWrite: mov r6, r0 mov r5, r1 bl rknand_device_lock - ldr r3, .L3862 + ldr r3, .L3871 ldr r3, [r3, #504] cmp r3, #1 mvnne r4, #0 - bne .L3859 + bne .L3868 mov r2, r4 mov r0, r6 mov r1, r5 bl ftl_vendor_write mov r4, r0 -.L3859: +.L3868: bl rknand_device_unlock mov r0, r4 ldmfd sp!, {r4, r5, r6, pc} -.L3863: +.L3872: .align 2 -.L3862: +.L3871: .word .LANCHOR1 .fnend .size FlashBootVendorWrite, .-FlashBootVendorWrite @@ -23122,31 +23173,31 @@ FtlDumpSysBlock: stmfd sp!, {r4, r5, r6, r7, r8, r9, lr} .save {r4, r5, r6, r7, r8, r9, lr} mov r8, r0, asl #10 - ldr r4, .L3876 + ldr r4, .L3885 .pad #28 sub sp, sp, #28 - ldr r7, .L3876+4 + ldr r7, .L3885+4 mov r6, r0 mov r5, #0 ldr r3, [r4, #-524] mov r9, r4 - str r3, [r4, #1760] + str r3, [r4, #1768] ldr r3, [r4, #-500] - str r3, [r4, #1764] -.L3868: + str r3, [r4, #1772] +.L3877: ldrh r2, [r7] sxth r3, r5 cmp r3, r2 - bge .L3875 + bge .L3884 mov r1, #1 - ldr r0, .L3876+8 + ldr r0, .L3885+8 mov r2, r1 orr r3, r3, r8 - str r3, [r4, #1756] + str r3, [r4, #1764] bl FlashReadPages - ldr r3, [r4, #1764] + ldr r3, [r4, #1772] mov r1, r6 - ldr r0, .L3876+12 + ldr r0, .L3885+12 ldr r2, [r3] str r2, [sp] ldr r2, [r3, #4] @@ -23154,35 +23205,35 @@ FtlDumpSysBlock: ldr r2, [r3, #8] str r2, [sp, #8] ldr r3, [r3, #12] - ldr r2, [r4, #1752] + ldr r2, [r4, #1760] str r3, [sp, #12] - ldr r3, [r4, #1760] + ldr r3, [r4, #1768] ldr r3, [r3] str r3, [sp, #16] - ldr r3, [r4, #1756] - bl printk ldr r3, [r4, #1764] + bl printk + ldr r3, [r4, #1772] ldr r3, [r3] cmn r3, #1 - beq .L3869 - ldr r0, .L3876+16 + beq .L3878 + ldr r0, .L3885+16 mov r2, #4 ldr r1, [r9, #-524] mov r3, #768 bl rknand_print_hex -.L3869: +.L3878: add r5, r5, #1 - b .L3868 -.L3875: + b .L3877 +.L3884: add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc} -.L3877: +.L3886: .align 2 -.L3876: +.L3885: .word .LANCHOR2 .word .LANCHOR0+2390 - .word .LANCHOR2+1752 + .word .LANCHOR2+1760 .word .LC167 .word .LC168 .fnend @@ -23197,18 +23248,18 @@ dump_map_info: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} movw r3, #2328 - ldr r6, .L3896 + ldr r6, .L3905 .pad #52 sub sp, sp, #52 - ldr r10, .L3896+4 + ldr r10, .L3905+4 ldrh r7, [r6, r3] add fp, r10, #18 -.L3879: +.L3888: ldrh r3, [r10] - ldr r4, .L3896+8 + ldr r4, .L3905+8 cmp r3, r7 - bls .L3892 - ldr r1, .L3896+12 + bls .L3901 + ldr r1, .L3905+12 mov r8, #0 ldr r2, [r4, #-536] mov r5, r8 @@ -23217,10 +23268,10 @@ dump_map_info: ldr r9, [r4, #-2692] ldrh r1, [r1, #80] str r1, [sp, #28] -.L3888: +.L3897: uxth r1, r8 cmp r1, ip - bcs .L3894 + bcs .L3903 mov r1, r7 ldrb r0, [fp, r8] @ zero_extendqisi2 str r3, [sp, #44] @@ -23234,7 +23285,7 @@ dump_map_info: ldr ip, [sp, #36] ldr r2, [sp, #40] ldr r3, [sp, #44] - bne .L3880 + bne .L3889 mov r0, #36 mov r1, r1, asl #10 mla r0, r0, r5, r2 @@ -23249,24 +23300,24 @@ dump_map_info: bic r1, r1, #3 add r1, r9, r1 str r1, [r0, #12] -.L3880: +.L3889: add r8, r8, #1 - b .L3888 -.L3894: + b .L3897 +.L3903: cmp r5, #0 - beq .L3883 + beq .L3892 ldr r0, [r4, #-536] mov r1, r5 mov r2, #1 mov r8, #0 bl FlashReadPages mov r9, #36 -.L3884: +.L3893: uxth r3, r8 cmp r3, r5 - bcs .L3883 + bcs .L3892 ldr r3, [r4, #-536] - ldr r0, .L3896+16 + ldr r0, .L3905+16 mla r3, r9, r8, r3 add r8, r8, #1 ldmib r3, {r2, r3, ip} @@ -23283,40 +23334,40 @@ dump_map_info: str r3, [sp, #16] ldr r3, [ip] bl printk - b .L3884 -.L3883: + b .L3893 +.L3892: add r7, r7, #1 uxth r7, r7 - b .L3879 -.L3892: - ldr r9, .L3896+20 + b .L3888 +.L3901: + ldr r9, .L3905+20 mov r8, #0 -.L3887: - ldr r7, .L3896+8 +.L3896: + ldr r7, .L3905+8 sxth r5, r8 sub r3, r7, #388 ldrh r3, [r3] cmp r5, r3 - bge .L3890 + bge .L3899 mov r5, r5, asl #1 mov r7, #0 -.L3891: +.L3900: ldrh r2, [r9] sxth r3, r7 add r7, r7, #1 cmp r3, r2 - bge .L3895 + bge .L3904 ldr r2, [r4, #-472] mov r1, #1 - ldr r0, .L3896+24 + ldr r0, .L3905+24 ldrh r2, [r2, r5] orr r3, r3, r2, asl #10 mov r2, r1 - str r3, [r4, #1756] + str r3, [r4, #1764] bl FlashReadPages - ldr r3, [r4, #1764] + ldr r3, [r4, #1772] ldr r1, [r4, #-472] - ldr r2, [r4, #1760] + ldr r2, [r4, #1768] ldr r0, [r3] ldrh r1, [r1, r5] str r0, [sp] @@ -23325,32 +23376,32 @@ dump_map_info: ldr r0, [r3, #8] str r0, [sp, #8] ldr r3, [r3, #12] - ldr r0, .L3896+28 + ldr r0, .L3905+28 str r3, [sp, #12] ldr r3, [r2] str r3, [sp, #16] ldr r3, [r2, #4] str r3, [sp, #20] - ldr r2, [r4, #1752] - ldr r3, [r4, #1756] + ldr r2, [r4, #1760] + ldr r3, [r4, #1764] bl printk - b .L3891 -.L3895: + b .L3900 +.L3904: add r8, r8, #1 - b .L3887 -.L3890: + b .L3896 +.L3899: ldr r1, [r7, #-472] movw r4, #2424 ldr r3, [r6, #2416] mov r2, #2 - ldr r0, .L3896+32 + ldr r0, .L3905+32 bl rknand_print_hex ldr r1, [r7, #-452] ldrh r3, [r6, r4] mov r2, #4 - ldr r0, .L3896+36 + ldr r0, .L3905+36 bl rknand_print_hex - ldr r0, .L3896+40 + ldr r0, .L3905+40 ldr r1, [r7, #-448] mov r2, #4 ldrh r3, [r6, r4] @@ -23358,16 +23409,16 @@ dump_map_info: @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} b rknand_print_hex -.L3897: +.L3906: .align 2 -.L3896: +.L3905: .word .LANCHOR0 .word .LANCHOR0+2330 .word .LANCHOR2 .word .LANCHOR0+2320 .word .LC169 .word .LANCHOR0+2390 - .word .LANCHOR2+1752 + .word .LANCHOR2+1760 .word .LC113 .word .LC170 .word .LC171 @@ -23382,15 +23433,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, .L3900 + ldr r3, .L3909 ldr r2, [r3, #2264] - ldr r3, .L3900+4 + ldr r3, .L3909+4 cmp r2, r3 bxne lr b flash_enter_slc_mode -.L3901: +.L3910: .align 2 -.L3900: +.L3909: .word .LANCHOR0 .word 1446522928 .fnend @@ -23403,15 +23454,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, .L3904 + ldr r3, .L3913 ldr r2, [r3, #2264] - ldr r3, .L3904+4 + ldr r3, .L3913+4 cmp r2, r3 bxne lr b flash_exit_slc_mode -.L3905: +.L3914: .align 2 -.L3904: +.L3913: .word .LANCHOR0 .word 1446522928 .fnend @@ -23426,34 +23477,34 @@ write_idblock: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r8, r0 - ldr r7, .L3959 + ldr r7, .L3968 .pad #132 sub sp, sp, #132 mov r0, #256000 mov fp, r1 mov r6, r2 ldr r3, [r7, #44] - ldr r4, [r7, #4] + ldr r4, [r7, #36] ldrb r5, [r3, #9] @ zero_extendqisi2 bl ftl_malloc subs r3, r0, #0 str r3, [sp, #8] - beq .L3933 + beq .L3942 add ip, r8, #508 add ip, ip, #3 mov r10, ip, lsr #9 cmp r10, #8 - bls .L3931 + bls .L3940 cmp r10, #500 - bhi .L3933 - b .L3908 -.L3931: + bhi .L3942 + b .L3917 +.L3940: mov r10, #8 -.L3908: +.L3917: ldr r2, [fp] - ldr r3, .L3959+4 + ldr r3, .L3968+4 cmp r2, r3 - bne .L3933 + bne .L3942 smulbb r3, r5, r4 uxth r3, r3 str r3, [sp, #12] @@ -23466,10 +23517,10 @@ write_idblock: str r0, [sp, #36] add r0, fp, #254976 add r0, r0, #512 -.L3912: +.L3921: ldr r1, [r0, #-4]! cmp r1, #0 - bne .L3909 + bne .L3918 ldr r1, [fp, r3, asl #2] add r3, r3, #1 cmp r3, #4096 @@ -23477,32 +23528,32 @@ write_idblock: movhi r3, #0 cmp r2, #4096 str r1, [r0, #512] - bne .L3912 - b .L3911 -.L3909: - ldr r0, .L3959+8 + bne .L3921 + b .L3920 +.L3918: + ldr r0, .L3968+8 bl printk -.L3911: +.L3920: mov r3, #5 - ldr r0, .L3959+12 + ldr r0, .L3968+12 mov r1, r6 mov r2, #4 bl rknand_print_hex ldr r1, [fp, #512] - ldrb r2, [r7, #1] @ zero_extendqisi2 + ldrb r2, [r7, #33] @ zero_extendqisi2 sub r4, r6, #4 - ldr r0, .L3959+16 + ldr r0, .L3968+16 bl printk - ldr r2, .L3959+20 - ldrh r3, [r7, #142] + ldr r2, .L3968+20 + ldrh r3, [r7, #146] mov r1, r10 - ldr r0, .L3959+24 - ldr r2, [r2, #1708] - ldr r5, .L3959 + ldr r0, .L3968+24 + ldr r2, [r2, #1716] + ldr r5, .L3968 str r2, [sp] mov r2, r10 bl printk - ldrb r3, [r7, #1] @ zero_extendqisi2 + ldrb r3, [r7, #33] @ zero_extendqisi2 ldr r2, [fp, #512] cmp r2, r3 strhi r3, [fp, #512] @@ -23511,16 +23562,16 @@ write_idblock: mov r3, #0 str r3, [sp, #20] str r3, [sp, #16] -.L3929: +.L3938: ldr r2, [r4, #4] - ldrb r3, [r5, #1] @ zero_extendqisi2 - ldr r7, .L3959 + ldrb r3, [r5, #33] @ zero_extendqisi2 + ldr r7, .L3968 cmp r2, r3 - bcs .L3914 - ldr r3, .L3959+20 - ldr r3, [r3, #1708] + bcs .L3923 + ldr r3, .L3968+20 + ldr r3, [r3, #1716] cmp r2, r3 - bcc .L3914 + bcc .L3923 ldr r3, [sp, #36] ldr r1, [sp, #36] cmp r3, #1 @@ -23530,23 +23581,23 @@ write_idblock: ldr r3, [sp, #16] cmp r3, #0 cmpne r1, #1 - bls .L3915 + bls .L3924 ldr r3, [r4] add r3, r3, #1 cmp r2, r3 - beq .L3914 -.L3915: + beq .L3923 +.L3924: mov r1, #0 mov r2, #512 ldr r0, [sp, #8] bl memset ldr r6, [r4, #4] mov r2, r10 - ldr r0, .L3959+28 + ldr r0, .L3968+28 ldr r3, [sp, #12] mul r6, r6, r3 ldr r3, [r7, #44] - ldr r7, [r7, #4] + ldr r7, [r7, #36] ldrb r9, [r3, #9] @ zero_extendqisi2 mov r1, r6 bl printk @@ -23563,13 +23614,13 @@ write_idblock: bl FlashEraseBlock cmp r10, r7 movls r8, #1 - bls .L3916 + bls .L3925 mov r0, #0 add r1, r6, r7 mov r2, r0 mov r8, #2 bl FlashEraseBlock -.L3916: +.L3925: mov r0, #0 bl flash_boot_exit_slc_mode ldr r3, [r5, #44] @@ -23587,57 +23638,57 @@ write_idblock: rsb r3, r1, r6 str fp, [sp, #24] str r3, [sp, #28] -.L3917: +.L3926: ldr r3, [sp, #48] - ldr r7, .L3959 + ldr r7, .L3968 cmp r8, r3 - bcs .L3957 + bcs .L3966 add r3, r8, ip ubfx r3, r3, #2, #16 cmp r3, #0 - beq .L3918 + beq .L3927 add r2, r3, #1 add r1, r5, r2, asl #1 - ldrh r7, [r1, #148] - ldrb r1, [r5, #144] @ zero_extendqisi2 + ldrh r7, [r1, #152] + ldrb r1, [r5, #148] @ zero_extendqisi2 cmp r1, #0 - beq .L3919 + beq .L3928 ldr r1, [r5, #2264] - ldr r0, .L3959+32 + ldr r0, .L3968+32 cmp r1, r0 moveq r7, r2 -.L3919: +.L3928: sub r7, r7, #-1073741823 mov r7, r7, asl #2 str r7, [sp, #64] -.L3918: +.L3927: movw r2, #61424 str r2, [sp, #68] add r2, r5, r3, asl #1 - ldrh r7, [r2, #148] - ldrb r2, [r5, #144] @ zero_extendqisi2 + ldrh r7, [r2, #152] + ldrb r2, [r5, #148] @ zero_extendqisi2 cmp r2, #0 - beq .L3920 + beq .L3929 ldr r2, [r5, #2264] - ldr r1, .L3959+32 + ldr r1, .L3968+32 cmp r2, r1 moveq r7, r3 -.L3920: +.L3929: ldr r3, [sp, #28] add r8, r8, #4 str ip, [sp, #56] uxth r8, r8 mla r2, r9, r7, r3 - ldr r3, .L3959 + ldr r3, .L3968 ldrb r3, [r3, #2312] @ zero_extendqisi2 str r2, [sp, #52] str r3, [sp, #32] - ldr r3, .L3959+20 - ldrb r0, [r3, #1714] @ zero_extendqisi2 + ldr r3, .L3968+20 + ldrb r0, [r3, #1722] @ zero_extendqisi2 bl FlashBchSel mov r0, #0 bl flash_boot_enter_slc_mode - ldr r3, .L3959 + ldr r3, .L3968 ldr r3, [r3, #44] ldrb r1, [r3, #9] @ zero_extendqisi2 ldr r2, [sp, #52] @@ -23664,17 +23715,17 @@ write_idblock: ldr ip, [sp, #56] add r3, r3, #2048 str r3, [sp, #24] - b .L3917 -.L3957: + b .L3926 +.L3966: mov r1, r6 mov r2, r10 mov r3, #0 - ldr r0, .L3959+36 + ldr r0, .L3968+36 bl printk ldr r6, [r4, #4] - ldr r8, [r7, #4] + ldr r8, [r7, #36] mov r2, r10 - ldr r0, .L3959+40 + ldr r0, .L3968+40 mov r9, #0 ldr r3, [sp, #12] mul r6, r6, r3 @@ -23697,24 +23748,24 @@ write_idblock: ldr r3, [sp, #8] ubfx ip, ip, #2, #2 str r3, [sp, #32] -.L3922: +.L3931: cmp r9, r10 - bcs .L3958 + bcs .L3967 ldr r3, [sp, #28] rsb r8, ip, #4 - ldrb r1, [r5, #144] @ zero_extendqisi2 + ldrb r1, [r5, #148] @ zero_extendqisi2 add r3, r9, r3 uxth r8, r8 ubfx r3, r3, #2, #16 cmp r1, #0 add r2, r5, r3, asl #1 - ldrh r2, [r2, #148] - beq .L3923 + ldrh r2, [r2, #152] + beq .L3932 ldr r1, [r5, #2264] - ldr r0, .L3959+32 + ldr r0, .L3968+32 cmp r1, r0 moveq r2, r3 -.L3923: +.L3932: ldr r3, [sp, #48] add r9, r8, r9 ldr r1, [sp, #24] @@ -23725,10 +23776,10 @@ write_idblock: ldr r2, [r7, #44] str ip, [sp, #52] ldrb r1, [r2, #9] @ zero_extendqisi2 - ldr r2, .L3959+20 + ldr r2, .L3968+20 str r3, [sp, #60] str r1, [sp, #56] - ldrb r0, [r2, #1714] @ zero_extendqisi2 + ldrb r0, [r2, #1722] @ zero_extendqisi2 bl FlashBchSel mov r0, #0 bl flash_boot_enter_slc_mode @@ -23750,17 +23801,17 @@ write_idblock: ldr r3, [sp, #32] add r3, r3, r8, asl #9 str r3, [sp, #32] - b .L3922 -.L3958: + b .L3931 +.L3967: mov r1, r6 mov r2, r10 mov r3, #0 - ldr r0, .L3959+44 + ldr r0, .L3968+44 bl printk mov r6, #0 mov r3, fp ldr r2, [sp, #8] -.L3928: +.L3937: mov r8, r2 mov r7, r3 ldr r0, [r8] @@ -23768,13 +23819,13 @@ write_idblock: ldr r1, [r7] add r3, r3, #4 cmp r0, r1 - beq .L3925 + beq .L3934 mov r1, #0 mov r2, #512 ldr r0, [sp, #8] bl memset ldr r3, [r8] - ldr r0, .L3959+48 + ldr r0, .L3968+48 str r3, [sp] ldr r3, [r7] bic r7, r6, #255 @@ -23784,13 +23835,13 @@ write_idblock: mov r3, r6 ldr r2, [r4, #4] bl printk - ldr r0, .L3959+52 + ldr r0, .L3968+52 add r1, fp, r7 mov r2, #4 mov r3, #256 bl rknand_print_hex mov r2, #4 - ldr r0, .L3959+56 + ldr r0, .L3968+56 ldr r3, [sp, #8] add r1, r3, r7 mov r3, #256 @@ -23805,55 +23856,55 @@ write_idblock: bl FlashEraseBlock ldr r3, [sp, #44] cmp r3, #0 - beq .L3926 + beq .L3935 ldr r1, [r4, #4] mov r0, #0 ldr r3, [sp, #12] mov r2, r0 mla r1, r1, r3, r3 bl FlashEraseBlock -.L3926: +.L3935: mov r0, #0 bl flash_boot_exit_slc_mode - ldr r0, .L3959+60 + ldr r0, .L3968+60 ldr r1, [r4, #4] bl printk ldr r3, [sp, #40] cmp r6, r3 - bcc .L3914 - b .L3927 -.L3925: + bcc .L3923 + b .L3936 +.L3934: ldr r1, [sp, #40] add r6, r6, #1 cmp r6, r1 - bne .L3928 -.L3927: + bne .L3937 +.L3936: ldr r3, [sp, #20] add r3, r3, #1 str r3, [sp, #20] -.L3914: +.L3923: ldr r3, [sp, #16] add r4, r4, #4 add r3, r3, #1 str r3, [sp, #16] cmp r3, #5 - bne .L3929 + bne .L3938 ldr r0, [sp, #8] bl ftl_free ldr r3, [sp, #20] clz r0, r3 mov r0, r0, lsr #5 rsb r0, r0, #0 - b .L3907 -.L3933: + b .L3916 +.L3942: mvn r0, #0 -.L3907: +.L3916: add sp, sp, #132 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3960: +.L3969: .align 2 -.L3959: +.L3968: .word .LANCHOR0 .word -52655045 .word .LC173 @@ -23887,36 +23938,36 @@ write_loader_lba: sub sp, sp, #52 mov r6, r1 mov r8, r2 - ldr r4, .L3984 - bne .L3962 + ldr r4, .L3993 + bne .L3971 ldr r2, [r2] - ldr r3, .L3984+4 + ldr r3, .L3993+4 cmp r2, r3 - bne .L3962 + bne .L3971 mov r0, #256000 mov r3, #1 - strb r3, [r4, #2020] + strb r3, [r4, #2028] bl ftl_malloc mov r1, #0 mov r2, #256000 - str r0, [r4, #2024] + str r0, [r4, #2032] bl ftl_memset - str r5, [r4, #2028] -.L3962: + str r5, [r4, #2036] +.L3971: str r6, [sp] mov r3, r5 - ldr r0, .L3984+8 - ldr r1, [r4, #2024] + ldr r0, .L3993+8 + ldr r1, [r4, #2032] ldr r2, [r8] bl printk - ldrb r3, [r4, #2020] @ zero_extendqisi2 - ldr r9, .L3984 + ldrb r3, [r4, #2028] @ zero_extendqisi2 + ldr r9, .L3993 cmp r3, #0 - beq .L3961 + beq .L3970 sub r0, r5, #64 - ldr r7, [r9, #2024] + ldr r7, [r9, #2032] cmp r0, #500 - bcs .L3964 + bcs .L3973 rsb r2, r5, #564 add r0, r7, r0, asl #9 cmp r2, r6 @@ -23924,38 +23975,38 @@ write_loader_lba: movcs r2, r6 mov r2, r2, asl #9 bl ftl_memcpy - b .L3965 -.L3964: + b .L3974 +.L3973: cmp r5, #564 - bcs .L3973 -.L3965: - ldr r3, [r4, #2028] + bcs .L3982 +.L3974: + ldr r3, [r4, #2036] cmp r3, r5 - beq .L3971 - ldr r2, .L3984 + beq .L3980 + ldr r2, .L3993 mov r3, #0 cmp r7, r3 mov r8, r3 - strb r3, [r2, #2020] - beq .L3972 + strb r3, [r2, #2028] + beq .L3981 mov r0, r7 bl ftl_free -.L3972: - str r8, [r4, #2024] -.L3971: +.L3981: + str r8, [r4, #2032] +.L3980: add r5, r5, r6 - str r5, [r4, #2028] - b .L3961 -.L3973: - ldr r3, .L3984+12 - ldr r0, [r9, #2028] + str r5, [r4, #2036] + b .L3970 +.L3982: + ldr r3, .L3993+12 + ldr r0, [r9, #2036] ldr r3, [r3, #44] sub r0, r0, #64 cmp r0, #500 ldrb r3, [r3, #9] @ zero_extendqisi2 movcs r0, #500 cmp r3, #4 - beq .L3974 + beq .L3983 mov r3, #2 str r3, [sp, #8] mov r3, #3 @@ -23966,10 +24017,10 @@ write_loader_lba: str r3, [sp, #20] mov r3, #6 str r3, [sp, #24] - b .L3967 -.L3974: + b .L3976 +.L3983: mov r3, #0 -.L3966: +.L3975: cmp r0, #256 add r1, sp, #8 mov r2, r3, asl #1 @@ -23977,37 +24028,37 @@ write_loader_lba: str r2, [r1, r3, asl #2] add r3, r3, #1 cmp r3, #5 - bne .L3966 -.L3967: + bne .L3975 +.L3976: movw r3, #63872 -.L3970: +.L3979: ldr r2, [r7, r3, asl #2] cmp r2, #0 addne r3, r3, #128 movne r0, r3, asl #2 - bne .L3969 -.L3968: + bne .L3978 +.L3977: sub r3, r3, #1 cmp r3, #4096 - bne .L3970 + bne .L3979 mov r0, r0, asl #9 -.L3969: +.L3978: mov r1, r7 add r2, sp, #8 bl write_idblock - ldr r0, [r4, #2024] + ldr r0, [r4, #2032] mov r7, #0 - strb r7, [r4, #2020] + strb r7, [r4, #2028] bl ftl_free - str r7, [r4, #2024] - b .L3971 -.L3961: + str r7, [r4, #2032] + b .L3980 +.L3970: add sp, sp, #52 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc} -.L3985: +.L3994: .align 2 -.L3984: +.L3993: .word .LANCHOR4 .word -52655045 .word .LC185 @@ -24034,12 +24085,12 @@ FtlWrite: cmp r0, #0 movne r2, #0 cmp r2, #0 - beq .L3987 + beq .L3996 mov r0, r1 mov r2, r3 mov r1, r6 bl write_loader_lba -.L3987: +.L3996: mov r0, r7 mov r1, r4 mov r2, r6 @@ -24055,7 +24106,7 @@ rknand_sys_storage_ioctl: .fnstart @ args = 0, pretend = 0, frame = 520 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L4049 + ldr r3, .L4058 stmfd sp!, {r4, r5, r6, r7, lr} .save {r4, r5, r6, r7, lr} cmp r1, r3 @@ -24063,136 +24114,136 @@ rknand_sys_storage_ioctl: sub sp, sp, #524 mov r4, r1 mov r5, r2 - beq .L3994 - bhi .L3995 + beq .L4003 + bhi .L4004 sub r3, r3, #2080 sub r3, r3, #6 cmp r1, r3 - beq .L3996 - bhi .L3997 + beq .L4005 + bhi .L4006 sub r3, r3, #238 cmp r1, r3 - beq .L3998 + beq .L4007 add r3, r3, #237 cmp r1, r3 - beq .L3999 - b .L4029 -.L3997: - ldr r3, .L4049+4 + beq .L4008 + b .L4038 +.L4006: + ldr r3, .L4058+4 cmp r1, r3 - beq .L4000 + beq .L4009 add r3, r3, #1 cmp r1, r3 - beq .L4001 + beq .L4010 sub r3, r3, #124 cmp r1, r3 - bne .L4029 - b .L4047 -.L3995: - ldr r3, .L4049+8 + bne .L4038 + b .L4056 +.L4004: + ldr r3, .L4058+8 cmp r1, r3 mov r6, r3 - beq .L4003 - bhi .L4004 + beq .L4012 + bhi .L4013 sub r3, r3, #2512 sub r3, r3, #14 cmp r1, r3 - beq .L3994 + beq .L4003 add r3, r3, #10 cmp r1, r3 - beq .L3994 - b .L4029 -.L4004: - ldr r3, .L4049+12 - cmp r1, r3 beq .L4003 - bcc .L4005 + b .L4038 +.L4013: + ldr r3, .L4058+12 + cmp r1, r3 + beq .L4012 + bcc .L4014 add r3, r3, #1 cmp r1, r3 - beq .L4005 - b .L4029 -.L3999: - ldr r0, .L4049+16 + beq .L4014 + b .L4038 +.L4008: + ldr r0, .L4058+16 bl printk mov r1, r5 mov r2, #520 mov r0, sp bl rk_copy_from_user cmp r0, #0 - beq .L4006 -.L4012: - ldr r0, .L4049+20 + beq .L4015 +.L4021: + ldr r0, .L4058+20 bl printk - b .L4044 -.L4006: + b .L4053 +.L4015: ldr r2, [sp] - ldr r3, .L4049+24 + ldr r3, .L4058+24 cmp r2, r3 - beq .L4007 -.L4009: + beq .L4016 +.L4018: mvn r4, #0 - b .L4008 -.L4007: + b .L4017 +.L4016: ldr r3, [sp, #4] cmp r3, #512 - bhi .L4009 - ldr r4, .L4049+28 + bhi .L4018 + ldr r4, .L4058+28 mov r2, #512 mov r0, sp - ldr r1, [r4, #2032] + ldr r1, [r4, #2040] bl memcpy - ldr r2, [r4, #2036] - ldr r3, .L4049+32 + ldr r2, [r4, #2044] + ldr r3, .L4058+32 cmp r2, r3 - beq .L4010 + beq .L4019 mov r1, #0 add r0, sp, #64 mov r2, #128 str r1, [sp, #8] str r1, [sp, #12] bl memset -.L4010: +.L4019: mov r1, #0 add r0, sp, #256 mov r2, #256 str r1, [sp, #16] bl memset -.L4039: +.L4048: mov r0, r5 mov r1, sp mov r2, #520 bl rk_copy_to_user cmp r0, #0 - bne .L4044 - b .L4043 -.L3996: - ldr r0, .L4049+36 + bne .L4053 + b .L4052 +.L4005: + ldr r0, .L4058+36 bl printk mov r1, r5 mov r2, #520 mov r0, sp bl rk_copy_from_user cmp r0, #0 - bne .L4012 + bne .L4021 ldr r2, [sp] - ldr r3, .L4049+24 + ldr r3, .L4058+24 cmp r2, r3 - bne .L4009 + bne .L4018 ldr r3, [sp, #4] cmp r3, #512 - bhi .L4009 - ldr r2, .L4049+28 - ldr r3, .L4049+32 - ldr r1, [r2, #2036] + bhi .L4018 + ldr r2, .L4058+28 + ldr r3, .L4058+32 + ldr r1, [r2, #2044] cmp r1, r3 mvnne r0, #1 - bne .L3993 + bne .L4002 ldr r3, [sp, #12] sub r1, r3, #1 cmp r1, #127 mvnhi r0, #2 - bhi .L3993 - ldr r4, [r2, #2032] + bhi .L4002 + ldr r4, [r2, #2040] add r1, sp, #64 add r0, r4, #64 str r3, [r4, #12] @@ -24200,60 +24251,60 @@ rknand_sys_storage_ioctl: bl memcpy mov r0, #1 mov r1, r4 - b .L4042 -.L4001: - ldr r0, .L4049+40 + b .L4051 +.L4010: + ldr r0, .L4058+40 bl printk mov r1, r5 mov r2, #520 mov r0, sp bl rk_copy_from_user cmp r0, #0 - bne .L4012 + bne .L4021 ldr r2, [sp] - ldr r3, .L4049+44 + ldr r3, .L4058+44 cmp r2, r3 - bne .L4009 + bne .L4018 ldr r3, [sp, #4] cmp r3, #512 - bhi .L4009 - ldr r5, .L4049+28 - ldr r3, [r5, #2040] + bhi .L4018 + ldr r5, .L4058+28 + ldr r3, [r5, #2048] cmp r3, #0 - bne .L4013 -.L4016: + bne .L4022 +.L4025: mov r0, #0 - b .L3993 -.L4013: - ldr r3, [r5, #2044] - ldr r2, .L4049+48 + b .L4002 +.L4022: + ldr r3, [r5, #2052] + ldr r2, .L4058+48 ldr r1, [r3] cmp r1, r2 - beq .L4014 + beq .L4023 str r2, [r3] mov r2, #504 - ldr r3, .L4049+28 - ldr r3, [r3, #2044] + ldr r3, .L4058+28 + ldr r3, [r3, #2052] str r2, [r3, #4] mov r2, #0 str r2, [r3, #8] str r2, [r3, #12] -.L4014: - ldr r1, [r5, #2044] +.L4023: + ldr r1, [r5, #2052] mov r4, #0 mov r0, r4 str r4, [r1, #16] bl StorageSysDataStore - ldr r3, [r5, #2032] - ldr r2, .L4049+24 + ldr r3, [r5, #2040] + ldr r2, .L4058+24 ldr r1, [r3] cmp r1, r2 strne r2, [r3] - ldr r6, [r5, #2032] - ldrne r3, .L4049+28 + ldr r6, [r5, #2040] + ldrne r3, .L4058+28 movne r2, #504 add r0, r6, #64 - ldrne r3, [r3, #2032] + ldrne r3, [r3, #2040] stmneib r3, {r2, r4} mov r4, #0 mov r1, r4 @@ -24263,59 +24314,59 @@ rknand_sys_storage_ioctl: mov r0, #1 mov r1, r6 bl StorageSysDataStore - str r4, [r5, #2040] - str r4, [r5, #2036] - b .L4008 -.L4000: - ldr r0, .L4049+52 + str r4, [r5, #2048] + str r4, [r5, #2044] + b .L4017 +.L4009: + ldr r0, .L4058+52 bl printk mov r1, r5 mov r2, #520 mov r0, sp bl rk_copy_from_user cmp r0, #0 - bne .L4012 + bne .L4021 ldr r2, [sp] - ldr r3, .L4049+56 + ldr r3, .L4058+56 cmp r2, r3 - bne .L4009 + bne .L4018 ldr r3, [sp, #4] cmp r3, #512 - bhi .L4009 - ldr r5, .L4049+28 - ldr r3, [r5, #2040] + bhi .L4018 + ldr r5, .L4058+28 + ldr r3, [r5, #2048] cmp r3, #1 - beq .L4016 - ldr r2, [r5, #2044] - ldr r3, .L4049+48 + beq .L4025 + ldr r2, [r5, #2052] + ldr r3, .L4058+48 ldr r1, [r2] cmp r1, r3 - beq .L4017 + beq .L4026 str r3, [r2] mov r2, #504 - ldr r3, [r5, #2044] + ldr r3, [r5, #2052] str r2, [r3, #4] mov r2, #0 str r2, [r3, #8] str r2, [r3, #12] -.L4017: - ldr r1, [r5, #2044] +.L4026: + ldr r1, [r5, #2052] mov r3, #1 mov r0, #0 mov r4, #0 str r3, [r1, #16] bl StorageSysDataStore - ldr r3, [r5, #2032] - ldr r2, .L4049+24 + ldr r3, [r5, #2040] + ldr r2, .L4058+24 ldr r1, [r3] cmp r1, r2 strne r2, [r3] - ldr r6, [r5, #2032] - ldrne r3, .L4049+28 + ldr r6, [r5, #2040] + ldrne r3, .L4058+28 movne r1, #504 movne r2, #0 add r0, r6, #64 - ldrne r3, [r3, #2032] + ldrne r3, [r3, #2040] stmneib r3, {r1, r2} mov r1, r4 mov r2, #128 @@ -24325,54 +24376,54 @@ rknand_sys_storage_ioctl: mov r1, r6 bl StorageSysDataStore mov r3, #1 - str r3, [r5, #2040] - b .L4008 -.L4047: - ldr r0, .L4049+60 + str r3, [r5, #2048] + b .L4017 +.L4056: + ldr r0, .L4058+60 bl printk mov r1, r5 mov r2, #520 mov r0, sp bl rk_copy_from_user cmp r0, #0 - bne .L4012 + bne .L4021 ldr r2, [sp] - ldr r3, .L4049+64 + ldr r3, .L4058+64 cmp r2, r3 - bne .L4009 + bne .L4018 ldr r2, [sp, #4] cmp r2, #512 addls r0, sp, #8 - ldrls r1, .L4049+68 - bls .L4045 - b .L4009 -.L3994: - ldr r0, .L4049+72 + ldrls r1, .L4058+68 + bls .L4054 + b .L4018 +.L4003: + ldr r0, .L4058+72 cmp r4, r0 mov r7, r0 - ldreq r0, .L4049+76 - beq .L4041 - ldr r3, .L4049+80 + ldreq r0, .L4058+76 + beq .L4050 + ldr r3, .L4058+80 cmp r4, r3 - ldreq r0, .L4049+84 - ldrne r0, .L4049+88 -.L4041: + ldreq r0, .L4058+84 + ldrne r0, .L4058+88 +.L4050: bl printk mov r1, r5 mov r2, #520 mov r0, sp bl rk_copy_from_user cmp r0, #0 - bne .L4012 + bne .L4021 ldr r2, [sp] - ldr r3, .L4049+92 + ldr r3, .L4058+92 cmp r2, r3 - bne .L4044 - ldr r3, .L4049+80 - ldr r6, .L4049+28 + bne .L4053 + ldr r3, .L4058+80 + ldr r6, .L4058+28 cmp r4, r3 - bne .L4023 - ldr r3, [r6, #2032] + bne .L4032 + ldr r3, [r6, #2040] mov r0, r5 mov r1, sp mov r2, #16 @@ -24381,32 +24432,32 @@ rknand_sys_storage_ioctl: strb r3, [sp, #8] bl rk_copy_to_user cmp r0, #0 - beq .L3993 - b .L4044 -.L4023: - ldr r3, [r6, #2560] + beq .L4002 + b .L4053 +.L4032: + ldr r3, [r6, #2568] cmp r3, #10 - bhi .L4044 - ldr r1, [r6, #2032] + bhi .L4053 + ldr r1, [r6, #2040] ldr r2, [sp, #4] ldr r3, [r1, #24] cmp r3, r2 cmpne r3, #0 movne r3, #1 moveq r3, #0 - beq .L4024 - ldr r0, .L4049+96 + beq .L4033 + ldr r0, .L4058+96 mov r1, r2 bl printk - ldr r3, [r6, #2560] + ldr r3, [r6, #2568] add r3, r3, #1 - str r3, [r6, #2560] -.L4044: + str r3, [r6, #2568] +.L4053: mvn r0, #13 - b .L3993 -.L4024: + b .L4002 +.L4033: cmp r4, r7 - str r3, [r6, #2560] + str r3, [r6, #2568] mov r0, #1 moveq r2, r3 movne r3, #1 @@ -24415,92 +24466,92 @@ rknand_sys_storage_ioctl: str r3, [r1, #20] bl StorageSysDataStore cmn r0, #1 - bne .L4043 - b .L4048 -.L4003: - ldr r0, .L4049+100 + bne .L4052 + b .L4057 +.L4012: + ldr r0, .L4058+100 bl printk mov r1, r5 mov r2, #520 mov r0, sp bl rk_copy_from_user cmp r0, #0 - bne .L4012 + bne .L4021 ldr r2, [sp] - ldr r3, .L4049+104 + ldr r3, .L4058+104 cmp r2, r3 - bne .L4009 + bne .L4018 ldr r2, [sp, #4] cmp r2, #504 - bhi .L4009 - ldr r3, .L4049+28 + bhi .L4018 + ldr r3, .L4058+28 cmp r4, r6 add r0, sp, #8 - ldreq r1, [r3, #2564] - ldrne r1, [r3, #2568] + ldreq r1, [r3, #2572] + ldrne r1, [r3, #2576] add r1, r1, #8 -.L4045: +.L4054: bl memcpy - b .L4039 -.L4005: - ldr r0, .L4049+108 + b .L4048 +.L4014: + ldr r0, .L4058+108 bl printk mov r1, r5 mov r2, #520 mov r0, sp bl rk_copy_from_user cmp r0, #0 - bne .L4012 + bne .L4021 ldr r2, [sp] - ldr r3, .L4049+104 + ldr r3, .L4058+104 cmp r2, r3 - bne .L4009 + bne .L4018 ldr r2, [sp, #4] cmp r2, #504 - bhi .L4009 - ldr r3, .L4049+112 + bhi .L4018 + ldr r3, .L4058+112 add r2, r2, #8 cmp r4, r3 - ldr r4, .L4049+28 - bne .L4028 + ldr r4, .L4058+28 + bne .L4037 mov r1, sp - ldr r0, [r4, #2564] + ldr r0, [r4, #2572] bl memcpy mov r0, #2 - ldr r1, [r4, #2564] - b .L4042 -.L4028: + ldr r1, [r4, #2572] + b .L4051 +.L4037: mov r1, sp - ldr r0, [r4, #2568] + ldr r0, [r4, #2576] bl memcpy - ldr r1, [r4, #2568] + ldr r1, [r4, #2576] mov r0, #3 -.L4042: +.L4051: bl StorageSysDataStore mov r4, r0 - b .L4008 -.L3998: + b .L4017 +.L4007: bl rknand_dev_flush -.L4043: +.L4052: mov r4, #0 - b .L4008 -.L4048: + b .L4017 +.L4057: mvn r4, #1 -.L4008: - ldr r0, .L4049+116 +.L4017: + ldr r0, .L4058+116 mov r1, r4 bl printk mov r0, r4 - b .L3993 -.L4029: + b .L4002 +.L4038: mvn r0, #21 -.L3993: +.L4002: add sp, sp, #524 @ sp needed ldmfd sp!, {r4, r5, r6, r7, pc} -.L4050: +.L4059: .align 2 -.L4049: +.L4058: .word 1074031656 .word 1074029694 .word 1074034192 @@ -24518,7 +24569,7 @@ rknand_sys_storage_ioctl: .word 1112755781 .word .LC191 .word 1094995539 - .word .LANCHOR4+2048 + .word .LANCHOR4+2056 .word 1074031666 .word .LC192 .word 1074031676 @@ -24543,58 +24594,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, .L4061 + ldr r4, .L4070 mvn r3, #0 + ldr r0, .L4070+4 mov r5, #0 - add r0, r4, #2048 - ldr r1, [r4, #2004] - str r3, [r4, #2028] + ldr r1, [r4, #2012] + str r3, [r4, #2036] add r3, r1, #512 - str r3, [r4, #2032] - str r1, [r4, #2044] + str r3, [r4, #2040] + str r1, [r4, #2052] add r3, r1, #1024 add r1, r1, #1536 - str r3, [r4, #2564] - strb r5, [r4, #2020] - str r5, [r4, #2024] - str r5, [r4, #2572] - str r1, [r4, #2568] + str r3, [r4, #2572] + strb r5, [r4, #2028] + str r5, [r4, #2032] + str r5, [r4, #2580] + str r1, [r4, #2576] bl ftl_memcpy - ldr r6, [r4, #2044] - str r5, [r4, #2036] - str r5, [r4, #2560] + ldr r6, [r4, #2052] + str r5, [r4, #2044] + str r5, [r4, #2568] ldr r7, [r6, #508] ldr r3, [r6, #16] cmp r7, r5 - str r3, [r4, #2040] - beq .L4052 + str r3, [r4, #2048] + beq .L4061 mov r0, r6 mov r1, #508 bl js_hash cmp r7, r0 - beq .L4052 + beq .L4061 str r5, [r6, #16] - ldr r0, .L4061+4 - str r5, [r4, #2040] + ldr r0, .L4070+8 + str r5, [r4, #2048] bl printk -.L4052: - ldr r3, [r4, #2040] +.L4061: + ldr r3, [r4, #2048] mov r0, #2 - ldr r1, [r4, #2564] + ldr r1, [r4, #2572] cmp r3, #0 - ldrne r3, .L4061 - ldrne r2, .L4061+8 - strne r2, [r3, #2036] + ldrne r3, .L4070 + ldrne r2, .L4070+12 + strne r2, [r3, #2044] bl StorageSysDataLoad - ldr r1, [r4, #2568] + ldr r1, [r4, #2576] mov r0, #3 bl StorageSysDataLoad ldmfd sp!, {r3, r4, r5, r6, r7, lr} b rknand_sys_storage_init -.L4062: +.L4071: .align 2 -.L4061: +.L4070: .word .LANCHOR4 + .word .LANCHOR4+2056 .word .LC199 .word -1067903959 .fnend @@ -24622,33 +24674,33 @@ rk_ftl_vendor_storage_init: .save {r4, r5, r6, r7, r8, r9, r10, lr} mov r0, #65536 bl ftl_malloc - ldr r6, .L4075 + ldr r6, .L4084 cmp r0, #0 - str r0, [r6, #2576] - beq .L4070 - ldr r9, .L4075+4 + str r0, [r6, #2584] + beq .L4079 + ldr r9, .L4084+4 mov r8, #0 mov r4, r8 mov r7, r8 mov r10, r6 -.L4068: +.L4077: mov r0, r7, asl #7 mov r1, #128 - ldr r2, [r6, #2576] + ldr r2, [r6, #2584] bl FlashBootVendorRead cmp r0, #0 - bne .L4066 - ldr r3, [r10, #2576] - ldr r0, .L4075+8 + bne .L4075 + ldr r3, [r10, #2584] + ldr r0, .L4084+8 add r2, r3, #61440 ldr r1, [r3] ldr r2, [r2, #4092] ldr r3, [r3, #4] bl printk - ldr r5, [r10, #2576] + ldr r5, [r10, #2584] ldr r3, [r5] cmp r3, r9 - bne .L4067 + bne .L4076 add r2, r5, #61440 ldr r3, [r5, #4] ldr r1, [r2, #4092] @@ -24660,48 +24712,48 @@ rk_ftl_vendor_storage_init: cmp r2, #0 movne r8, r7 movne r4, r3 -.L4067: +.L4076: cmp r7, #1 movne r7, #1 - bne .L4068 -.L4074: + bne .L4077 +.L4083: cmp r4, #0 - beq .L4069 + beq .L4078 mov r0, r8, asl #7 mov r1, #128 mov r2, r5 bl FlashBootVendorRead cmp r0, #0 - bne .L4066 + bne .L4075 ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L4069: +.L4078: mov r0, r5 mov r1, r4 mov r2, #65536 bl memset - ldr r3, .L4075+4 + ldr r3, .L4084+4 str r7, [r5, #4] mov r0, r4 str r3, [r5] add r3, r5, #61440 str r7, [r3, #4092] - ldr r3, .L4075+12 + ldr r3, .L4084+12 strh r4, [r5, #12] @ movhi strh r3, [r5, #14] @ movhi ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L4066: - ldr r0, [r6, #2576] +.L4075: + ldr r0, [r6, #2584] bl kfree mov r3, #0 mvn r0, #0 - str r3, [r6, #2576] + str r3, [r6, #2584] ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L4070: +.L4079: mvn r0, #11 ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L4076: +.L4085: .align 2 -.L4075: +.L4084: .word .LANCHOR4 .word 1380668996 .word .LC200 @@ -24717,19 +24769,19 @@ rk_ftl_vendor_read: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} - ldr r3, .L4084 - ldr ip, [r3, #2576] + ldr r3, .L4093 + ldr ip, [r3, #2584] cmp ip, #0 ldrneh r4, [ip, #10] movne r3, #0 - beq .L4082 -.L4079: + beq .L4091 +.L4088: cmp r3, r4 - bcs .L4082 + bcs .L4091 add lr, ip, r3, asl #3 ldrh r5, [lr, #16] cmp r5, r0 - bne .L4080 + bne .L4089 ldrh r3, [lr, #20] mov r0, r1 ldrh r1, [lr, #18] @@ -24742,15 +24794,15 @@ rk_ftl_vendor_read: bl memcpy mov r0, r4 ldmfd sp!, {r3, r4, r5, pc} -.L4080: +.L4089: add r3, r3, #1 - b .L4079 -.L4082: + b .L4088 +.L4091: mvn r0, #0 ldmfd sp!, {r3, r4, r5, pc} -.L4085: +.L4094: .align 2 -.L4084: +.L4093: .word .LANCHOR4 .fnend .size rk_ftl_vendor_read, .-rk_ftl_vendor_read @@ -24764,12 +24816,12 @@ rk_ftl_vendor_write: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r9, r2 - ldr r2, .L4109 + ldr r2, .L4118 .pad #28 sub sp, sp, #28 - ldr r4, [r2, #2576] + ldr r4, [r2, #2584] cmp r4, #0 - beq .L4101 + beq .L4110 mov r3, r1 add r7, r9, #63 ldrh r1, [r4, #8] @@ -24778,31 +24830,31 @@ rk_ftl_vendor_write: mov ip, r0 mov r6, #0 str r1, [sp, #4] -.L4088: +.L4097: cmp r6, r2 - bcs .L4107 + bcs .L4116 add r5, r4, r6, asl #3 ldrh r1, [r5, #16] cmp r1, ip - bne .L4089 + bne .L4098 ldrh r1, [r5, #20] add fp, r4, #1024 add r1, r1, #63 bic r1, r1, #63 str r1, [sp, #8] cmp r9, r1 - bls .L4090 + bls .L4099 ldrh r1, [r4, #14] cmp r1, r7 subcs r2, r2, #1 strcs r2, [sp, #12] ldrcsh r8, [r5, #18] - bcc .L4101 -.L4091: + bcc .L4110 +.L4100: ldr r2, [sp, #12] add r5, r5, #8 cmp r6, r2 - bcs .L4108 + bcs .L4117 ldrh r10, [r5, #20] add r0, fp, r8 ldrh r2, [r5, #16] @@ -24821,8 +24873,8 @@ rk_ftl_vendor_write: add r8, r8, r10 ldr r3, [sp, #20] ldr ip, [sp, #16] - b .L4091 -.L4108: + b .L4100 +.L4117: add r6, r4, r6, asl #3 uxth r8, r8 add r0, fp, r8 @@ -24840,22 +24892,22 @@ rk_ftl_vendor_write: add r5, r3, r5 rsb r7, r7, r5 strh r7, [r4, #14] @ movhi - b .L4106 -.L4090: + b .L4115 +.L4099: ldrh r0, [r5, #18] mov r1, r3 mov r2, r9 add r0, fp, r0 bl memcpy strh r9, [r5, #20] @ movhi - b .L4106 -.L4089: + b .L4115 +.L4098: add r6, r6, #1 - b .L4088 -.L4107: + b .L4097 +.L4116: ldrh r1, [r4, #14] cmp r1, r7 - bcc .L4101 + bcc .L4110 add r2, r4, r2, asl #3 uxth r7, r7 rsb r1, r7, r1 @@ -24875,7 +24927,7 @@ rk_ftl_vendor_write: ldrh r3, [r4, #10] add r3, r3, #1 strh r3, [r4, #10] @ movhi -.L4106: +.L4115: ldr r3, [r4, #4] add r2, r4, #61440 mov r1, #128 @@ -24893,16 +24945,16 @@ rk_ftl_vendor_write: mov r0, r3, asl #7 bl FlashBootVendorWrite mov r0, #0 - b .L4087 -.L4101: + b .L4096 +.L4110: mvn r0, #0 -.L4087: +.L4096: add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L4110: +.L4119: .align 2 -.L4109: +.L4118: .word .LANCHOR4 .fnend .size rk_ftl_vendor_write, .-rk_ftl_vendor_write @@ -24921,34 +24973,34 @@ rk_ftl_vendor_storage_ioctl: bl ftl_malloc subs r4, r0, #0 mvneq r5, #0 - beq .L4112 - ldr r3, .L4128 + beq .L4121 + ldr r3, .L4137 cmp r6, r3 - beq .L4114 + beq .L4123 add r3, r3, #1 cmp r6, r3 - beq .L4115 - b .L4126 -.L4114: + beq .L4124 + b .L4135 +.L4123: mov r1, r5 mov r2, #8 bl rk_copy_from_user cmp r0, #0 - bne .L4126 + bne .L4135 ldr r2, [r4] - ldr r3, .L4128+4 + ldr r3, .L4137+4 cmp r2, r3 - beq .L4117 -.L4118: + beq .L4126 +.L4127: mvn r5, #0 - b .L4113 -.L4117: + b .L4122 +.L4126: ldrh r0, [r4, #4] add r1, r4, #8 ldrh r2, [r4, #6] bl rk_ftl_vendor_read cmn r0, #1 - beq .L4118 + beq .L4127 uxth r2, r0 strh r0, [r4, #6] @ movhi mov r1, r4 @@ -24958,44 +25010,44 @@ rk_ftl_vendor_storage_ioctl: cmp r0, #0 moveq r5, #0 mvnne r5, #13 - b .L4113 -.L4115: + b .L4122 +.L4124: mov r1, r5 mov r2, #8 bl rk_copy_from_user cmp r0, #0 - bne .L4126 + bne .L4135 ldr r2, [r4] - ldr r3, .L4128+4 + ldr r3, .L4137+4 cmp r2, r3 - bne .L4118 + bne .L4127 ldrh r2, [r4, #6] movw r3, #4087 cmp r2, r3 - bhi .L4118 + bhi .L4127 mov r0, r4 mov r1, r5 add r2, r2, #8 bl rk_copy_from_user cmp r0, #0 - bne .L4126 + bne .L4135 ldrh r0, [r4, #4] add r1, r4, #8 ldrh r2, [r4, #6] bl rk_ftl_vendor_write mov r5, r0 - b .L4113 -.L4126: + b .L4122 +.L4135: mvn r5, #13 -.L4113: +.L4122: mov r0, r4 bl kfree -.L4112: +.L4121: mov r0, r5 ldmfd sp!, {r4, r5, r6, pc} -.L4129: +.L4138: .align 2 -.L4128: +.L4137: .word 1074034177 .word 1448232273 .fnend @@ -25009,6 +25061,8 @@ rk_ftl_vendor_storage_ioctl: .global gSnSectorData .global gpDrmKeyInfo .global gpBootConfig + .global ftl_dma32_buffer_size + .global ftl_dma32_buffer .global gLoaderBootInfo .global RK29_NANDC1_REG_BASE .global RK29_NANDC_REG_BASE @@ -25246,9 +25300,9 @@ rk_ftl_vendor_storage_ioctl: .section .rodata .align 2 .LANCHOR3 = . + 0 - .type __func__.20390, %object - .size __func__.20390, 11 -__func__.20390: + .type __func__.23841, %object + .size __func__.23841, 11 +__func__.23841: .ascii "FtlMemInit\000" .LC0: .byte 60 @@ -25393,32 +25447,32 @@ samsung_14nm_mlc_rr: .byte 18 .byte 9 .byte 8 - .type __func__.21169, %object - .size __func__.21169, 17 -__func__.21169: + .type __func__.24620, %object + .size __func__.24620, 17 +__func__.24620: .ascii "FtlDumpBlockInfo\000" .space 3 - .type __func__.21188, %object - .size __func__.21188, 16 -__func__.21188: + .type __func__.24639, %object + .size __func__.24639, 16 +__func__.24639: .ascii "FtlScanAllBlock\000" - .type __func__.21456, %object - .size __func__.21456, 17 -__func__.21456: + .type __func__.24907, %object + .size __func__.24907, 17 +__func__.24907: .ascii "ftl_scan_all_ppa\000" .space 3 - .type __func__.21137, %object - .size __func__.21137, 12 -__func__.21137: + .type __func__.24588, %object + .size __func__.24588, 12 +__func__.24588: .ascii "FtlCheckVpc\000" - .type __func__.21436, %object - .size __func__.21436, 21 -__func__.21436: + .type __func__.24887, %object + .size __func__.24887, 21 +__func__.24887: .ascii "FtlVpcCheckAndModify\000" .space 3 - .type __func__.20463, %object - .size __func__.20463, 8 -__func__.20463: + .type __func__.23914, %object + .size __func__.23914, 8 +__func__.23914: .ascii "FtlInit\000" .section .rodata.str1.1,"aMS",%progbits,1 .LC1: @@ -25576,7 +25630,7 @@ __func__.20463: .LC76: .ascii "%s\012\000" .LC77: - .ascii "FTL version: 5.0.63 20200923\000" + .ascii "FTL version: 5.0.63 20210616\000" .LC78: .ascii "swblk %x ,avg = %x max= %x vpc= %x,ec=%x ,max ec=%x" .ascii "\012\000" @@ -28617,6 +28671,10 @@ power_up_flag: .LANCHOR0 = . + 0 .LANCHOR2 = . + 8184 .LANCHOR4 = . + 16368 + .type gNandChipMap, %object + .size gNandChipMap, 32 +gNandChipMap: + .space 32 .type g_slc2KBNand, %object .size g_slc2KBNand, 1 g_slc2KBNand: @@ -28635,10 +28693,6 @@ gBlockPageAlignSize: gNandRandomizer: .space 1 .space 3 - .type gNandChipMap, %object - .size gNandChipMap, 32 -gNandChipMap: - .space 32 .type gpNandParaInfo, %object .size gpNandParaInfo, 4 gpNandParaInfo: @@ -28647,6 +28701,15 @@ gpNandParaInfo: .size gNandOptPara, 32 gNandOptPara: .space 32 + .type g_retryMode, %object + .size g_retryMode, 1 +g_retryMode: + .space 1 + .type g_maxRegNum, %object + .size g_maxRegNum, 1 +g_maxRegNum: + .space 1 + .space 2 .type gpNandc, %object .size gpNandc, 4 gpNandc: @@ -28704,19 +28767,10 @@ DieAddrs: .size FlashWaitBusyScheduleEn, 4 FlashWaitBusyScheduleEn: .space 4 - .type g_retryMode, %object - .size g_retryMode, 1 -g_retryMode: - .space 1 - .type g_maxRegNum, %object - .size g_maxRegNum, 1 -g_maxRegNum: - .space 1 .type gReadRetryInfo, %object .size gReadRetryInfo, 852 gReadRetryInfo: .space 852 - .space 2 .type read_retry_cur_offset, %object .size read_retry_cur_offset, 4 read_retry_cur_offset: @@ -29403,6 +29457,14 @@ gNandIDataBuf: .type RK29_NANDC_REG_BASE, %object .size RK29_NANDC_REG_BASE, 4 RK29_NANDC_REG_BASE: + .space 4 + .type ftl_dma32_buffer_size, %object + .size ftl_dma32_buffer_size, 4 +ftl_dma32_buffer_size: + .space 4 + .type ftl_dma32_buffer, %object + .size ftl_dma32_buffer, 4 +ftl_dma32_buffer: .space 4 .type gFlashPageBuffer0, %object .size gFlashPageBuffer0, 4 diff --git a/drivers/rk_nand/rk_ftl_arm_v7_thumb.S b/drivers/rk_nand/rk_ftl_arm_v7_thumb.S index af0eb2538e46..693554a89e5c 100644 --- a/drivers/rk_nand/rk_ftl_arm_v7_thumb.S +++ b/drivers/rk_nand/rk_ftl_arm_v7_thumb.S @@ -5,7 +5,7 @@ * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. - * date: 2020-09-23 + * date: 2021-07-16 */ .syntax unified .arch armv7-a @@ -18,7 +18,7 @@ .eabi_attribute 26, 2 .eabi_attribute 30, 4 .eabi_attribute 34, 1 - .eabi_attribute 18, 2 + .eabi_attribute 18, 4 .thumb .file "rk_ftl_arm_v7.S" #APP @@ -26,6 +26,72 @@ .thumb .text .align 1 + .thumb + .thumb_func + .type ndelay, %function +ndelay: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + @ link register save eliminated. + ldr r3, .L2 + addw r0, r0, #999 + umull r0, r1, r0, r3 + ldr r3, .L2+4 + ldr r3, [r3, #8] + lsrs r0, r1, #6 + bx r3 @ indirect register sibling call +.L3: + .align 2 +.L2: + .word 274877907 + .word arm_delay_ops + .fnend + .size ndelay, .-ndelay + .align 1 + .thumb + .thumb_func + .type flash_read_ecc, %function +flash_read_ecc: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + ldr r2, .L5 + push {r4, lr} + .save {r4, lr} + ldr r3, [r2, r0, lsl #3] + add r2, r2, r0, lsl #3 + movs r0, #80 + ldrb r4, [r2, #4] @ zero_extendqisi2 + add r4, r3, r4, lsl #8 + movs r3, #122 + str r3, [r4, #2056] + bl ndelay + ldr r3, [r4, #2048] + ldr r0, [r4, #2048] + and r3, r3, #15 + and r0, r0, #15 + cmp r0, r3 + it cc + movcc r0, r3 + ldr r3, [r4, #2048] + and r3, r3, #15 + cmp r0, r3 + it cc + movcc r0, r3 + ldr r3, [r4, #2048] + and r3, r3, #15 + cmp r0, r3 + it cc + movcc r0, r3 + pop {r4, pc} +.L6: + .align 2 +.L5: + .word .LANCHOR0 + .fnend + .size flash_read_ecc, .-flash_read_ecc + .align 1 .global FlashMemCmp8 .thumb .thumb_func @@ -34,32 +100,32 @@ FlashMemCmp8: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L10 + ldr r3, .L16 push {r4, r5, lr} .save {r4, r5, lr} - ldrb r3, [r3] @ zero_extendqisi2 - cbz r3, .L4 + ldrb r3, [r3, #32] @ zero_extendqisi2 + cbz r3, .L10 ldrb r4, [r0, #1] @ zero_extendqisi2 ldrb r3, [r1, #1] @ zero_extendqisi2 cmp r4, r3 - beq .L8 + beq .L14 movs r3, #0 -.L4: +.L10: cmp r3, r2 - beq .L8 + beq .L14 ldrb r5, [r0, r3] @ zero_extendqisi2 ldrb r4, [r1, r3] @ zero_extendqisi2 adds r3, r3, #1 cmp r5, r4 - beq .L4 + beq .L10 mov r0, r3 pop {r4, r5, pc} -.L8: +.L14: movs r0, #0 pop {r4, r5, pc} -.L11: +.L17: .align 2 -.L10: +.L16: .word .LANCHOR0 .fnend .size FlashMemCmp8, .-FlashMemCmp8 @@ -73,22 +139,22 @@ FlashRsvdBlkChk: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L15 - ldrb r2, [r3, #1] @ zero_extendqisi2 - ldr r3, [r3, #4] + ldr r3, .L21 + ldrb r2, [r3, #33] @ zero_extendqisi2 + ldr r3, [r3, #36] muls r3, r2, r3 cmp r1, r3 - bcs .L14 + bcs .L20 adds r0, r0, #0 it ne movne r0, #1 bx lr -.L14: +.L20: movs r0, #1 bx lr -.L16: +.L22: .align 2 -.L15: +.L21: .word .LANCHOR0 .fnend .size FlashRsvdBlkChk, .-FlashRsvdBlkChk @@ -101,23 +167,23 @@ FlashGetRandomizer: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L25 + ldr r3, .L31 and r2, r1, #127 push {r4, lr} .save {r4, lr} ldrh r4, [r3, r2, lsl #1] - ldr r3, .L25+4 - ldrb r3, [r3, #8] @ zero_extendqisi2 - cbz r3, .L18 + ldr r3, .L31+4 + ldrb r3, [r3, #40] @ zero_extendqisi2 + cbz r3, .L24 bl FlashRsvdBlkChk - cbz r0, .L18 + cbz r0, .L24 orr r4, r4, #-1073741824 -.L18: +.L24: mov r0, r4 pop {r4, pc} -.L26: +.L32: .align 2 -.L25: +.L31: .word .LANCHOR1 .word .LANCHOR0 .fnend @@ -131,27 +197,26 @@ FlashSetRandomizer: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L35 + ldr r3, .L41 and r2, r1, #127 push {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r6, r0 ldrh r5, [r3, r2, lsl #1] - ldr r3, .L35+4 - ldrb r2, [r3, #8] @ zero_extendqisi2 + ldr r3, .L41+4 + ldrb r2, [r3, #40] @ zero_extendqisi2 mov r4, r3 - cbz r2, .L28 + cbz r2, .L34 bl FlashRsvdBlkChk - cbz r0, .L28 + cbz r0, .L34 orr r5, r5, #-1073741824 -.L28: - add r4, r4, r6, lsl #3 - ldr r3, [r4, #12] +.L34: + ldr r3, [r4, r6, lsl #3] str r5, [r3, #336] pop {r4, r5, r6, pc} -.L36: +.L42: .align 2 -.L35: +.L41: .word .LANCHOR1 .word .LANCHOR0 .fnend @@ -167,28 +232,28 @@ FlashBlockAlignInit: @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. cmp r0, #512 - ldr r3, .L43 - bls .L38 + ldr r3, .L49 + bls .L44 mov r2, #1024 - b .L42 -.L38: - cmp r0, #256 - bls .L40 - mov r2, #512 - b .L42 -.L40: - cmp r0, #128 - bhi .L41 - str r0, [r3, #4] - bx lr -.L41: - mov r2, #256 -.L42: - str r2, [r3, #4] - bx lr + b .L48 .L44: + cmp r0, #256 + bls .L46 + mov r2, #512 + b .L48 +.L46: + cmp r0, #128 + bhi .L47 + str r0, [r3, #36] + bx lr +.L47: + mov r2, #256 +.L48: + str r2, [r3, #36] + bx lr +.L50: .align 2 -.L43: +.L49: .word .LANCHOR0 .fnend .size FlashBlockAlignInit, .-FlashBlockAlignInit @@ -201,13 +266,13 @@ FlashReadCmd: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L47 + ldr r2, .L53 push {r4, r5, lr} .save {r4, r5, lr} add r3, r2, r0, lsl #3 + ldr r4, [r2, r0, lsl #3] ldr r2, [r2, #44] - ldr r4, [r3, #12] - ldrb r3, [r3, #16] @ zero_extendqisi2 + ldrb r3, [r3, #4] @ zero_extendqisi2 ldrb r2, [r2, #7] @ zero_extendqisi2 lsls r3, r3, #8 cmp r2, #1 @@ -231,9 +296,9 @@ FlashReadCmd: str r2, [r3, #2056] pop {r4, r5, lr} b FlashSetRandomizer -.L48: +.L54: .align 2 -.L47: +.L53: .word .LANCHOR0 .fnend .size FlashReadCmd, .-FlashReadCmd @@ -246,20 +311,20 @@ FlashReadDpDataOutCmd: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - push {r4, r5, r6, lr} - .save {r4, r5, r6, lr} + ldr r2, .L59 + push {r4, r5, r6, r7, lr} + .save {r4, r5, r6, r7, lr} + add r3, r2, r0, lsl #3 + ldr r7, [r2, r0, lsl #3] uxtb r6, r1 - ldr r4, .L53 + ldrb r3, [r3, #4] @ zero_extendqisi2 lsrs r5, r1, #8 - add r3, r4, r0, lsl #3 - ldrb r4, [r4, #64] @ zero_extendqisi2 - ldr r2, [r3, #12] - ldrb r3, [r3, #16] @ zero_extendqisi2 - cmp r4, #1 - lsr r4, r1, #16 + ldrb r2, [r2, #64] @ zero_extendqisi2 + lsrs r4, r1, #16 + cmp r2, #1 lsl r3, r3, #8 - add r3, r3, r2 - bne .L50 + add r3, r3, r7 + bne .L56 movs r2, #6 str r2, [r3, #2056] movs r2, #0 @@ -268,8 +333,8 @@ FlashReadDpDataOutCmd: str r6, [r3, #2052] str r5, [r3, #2052] str r4, [r3, #2052] - b .L52 -.L50: + b .L58 +.L56: movs r2, #0 str r2, [r3, #2056] str r2, [r3, #2052] @@ -281,14 +346,14 @@ FlashReadDpDataOutCmd: str r4, [r3, #2056] str r2, [r3, #2052] str r2, [r3, #2052] -.L52: +.L58: movs r2, #224 str r2, [r3, #2056] - pop {r4, r5, r6, lr} + pop {r4, r5, r6, r7, lr} b FlashSetRandomizer -.L54: +.L60: .align 2 -.L53: +.L59: .word .LANCHOR0 .fnend .size FlashReadDpDataOutCmd, .-FlashReadDpDataOutCmd @@ -301,13 +366,13 @@ FlashProgFirstCmd: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - push {r4, lr} - .save {r4, lr} + push {r4, r5, lr} + .save {r4, r5, lr} lsrs r2, r1, #16 - ldr r4, .L56 + ldr r4, .L62 + ldr r3, [r4, r0, lsl #3] add r4, r4, r0, lsl #3 - ldr r3, [r4, #12] - ldrb r4, [r4, #16] @ zero_extendqisi2 + ldrb r4, [r4, #4] @ zero_extendqisi2 add r3, r3, r4, lsl #8 movs r4, #128 str r4, [r3, #2056] @@ -319,11 +384,11 @@ FlashProgFirstCmd: lsrs r4, r1, #8 str r4, [r3, #2052] str r2, [r3, #2052] - pop {r4, lr} + pop {r4, r5, lr} b FlashSetRandomizer -.L57: +.L63: .align 2 -.L56: +.L62: .word .LANCHOR0 .fnend .size FlashProgFirstCmd, .-FlashProgFirstCmd @@ -338,13 +403,13 @@ FlashEraseCmd: @ frame_needed = 0, uses_anonymous_args = 0 push {r4, r5, lr} .save {r4, r5, lr} - ldr r5, .L63 - add r0, r5, r0, lsl #3 - ldrb r3, [r0, #16] @ zero_extendqisi2 - ldr r4, [r0, #12] + ldr r4, .L69 + ldr r5, [r4, r0, lsl #3] + add r0, r4, r0, lsl #3 + ldrb r3, [r0, #4] @ zero_extendqisi2 lsls r3, r3, #8 - cbz r2, .L59 - adds r2, r4, r3 + cbz r2, .L65 + adds r2, r5, r3 movs r0, #96 str r0, [r2, #2056] uxtb r0, r1 @@ -353,10 +418,10 @@ FlashEraseCmd: str r0, [r2, #2052] lsrs r0, r1, #16 str r0, [r2, #2052] - ldr r2, [r5, #4] + ldr r2, [r4, #36] add r1, r1, r2 -.L59: - add r3, r3, r4 +.L65: + add r3, r3, r5 movs r2, #96 str r2, [r3, #2056] uxtb r2, r1 @@ -368,9 +433,9 @@ FlashEraseCmd: movs r2, #208 str r2, [r3, #2056] pop {r4, r5, pc} -.L64: +.L70: .align 2 -.L63: +.L69: .word .LANCHOR0 .fnend .size FlashEraseCmd, .-FlashEraseCmd @@ -383,15 +448,15 @@ FlashProgDpSecondCmd: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - push {r4, r5, lr} - .save {r4, r5, lr} + push {r4, r5, r6, lr} + .save {r4, r5, r6, lr} lsrs r2, r1, #16 - ldr r4, .L66 - add r5, r4, r0, lsl #3 - ldrb r4, [r4, #59] @ zero_extendqisi2 - ldr r3, [r5, #12] - ldrb r5, [r5, #16] @ zero_extendqisi2 - add r3, r3, r5, lsl #8 + ldr r5, .L72 + add r4, r5, r0, lsl #3 + ldr r3, [r5, r0, lsl #3] + ldrb r6, [r4, #4] @ zero_extendqisi2 + ldrb r4, [r5, #59] @ zero_extendqisi2 + add r3, r3, r6, lsl #8 str r4, [r3, #2056] movs r4, #0 str r4, [r3, #2052] @@ -401,11 +466,11 @@ FlashProgDpSecondCmd: lsrs r4, r1, #8 str r4, [r3, #2052] str r2, [r3, #2052] - pop {r4, r5, lr} + pop {r4, r5, r6, lr} b FlashSetRandomizer -.L67: +.L73: .align 2 -.L66: +.L72: .word .LANCHOR0 .fnend .size FlashProgDpSecondCmd, .-FlashProgDpSecondCmd @@ -420,24 +485,24 @@ FlashProgSecondCmd: @ frame_needed = 0, uses_anonymous_args = 0 push {r3, r4, r5, lr} .save {r3, r4, r5, lr} - ldr r3, .L69 - add r0, r3, r0, lsl #3 - ldr r3, .L69+4 - ldr r4, [r0, #12] - ldrb r5, [r0, #16] @ zero_extendqisi2 - ldr r3, [r3, #4] - ldr r0, .L69+8 - blx r3 + ldr r3, .L75 + ldr r4, [r3, r0, lsl #3] + add r3, r3, r0, lsl #3 + ldr r0, .L75+4 + ldrb r5, [r3, #4] @ zero_extendqisi2 + ldr r3, .L75+8 add r4, r4, r5, lsl #8 + ldr r3, [r3, #4] + blx r3 movs r3, #16 str r3, [r4, #2056] pop {r3, r4, r5, pc} -.L70: +.L76: .align 2 -.L69: +.L75: .word .LANCHOR0 + .word 64424500 .word arm_delay_ops - .word 214748300 .fnend .size FlashProgSecondCmd, .-FlashProgSecondCmd .align 1 @@ -450,21 +515,51 @@ FlashProgDpFirstCmd: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L72 + ldr r2, .L78 + ldr r3, [r2, r0, lsl #3] add r0, r2, r0, lsl #3 ldrb r2, [r2, #58] @ zero_extendqisi2 - ldrb r1, [r0, #16] @ zero_extendqisi2 - ldr r3, [r0, #12] + ldrb r1, [r0, #4] @ zero_extendqisi2 add r3, r3, r1, lsl #8 str r2, [r3, #2056] bx lr -.L73: +.L79: .align 2 -.L72: +.L78: .word .LANCHOR0 .fnend .size FlashProgDpFirstCmd, .-FlashProgDpFirstCmd .align 1 + .global FlashReadStatus + .thumb + .thumb_func + .type FlashReadStatus, %function +FlashReadStatus: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + push {r3, r4, r5, lr} + .save {r3, r4, r5, lr} + movs r2, #112 + ldr r3, .L81 + ldr r5, [r3, r0, lsl #3] + add r3, r3, r0, lsl #3 + movs r0, #80 + ldrb r4, [r3, #4] @ zero_extendqisi2 + add r3, r5, r4, lsl #8 + adds r4, r4, #8 + str r2, [r3, #2056] + lsls r4, r4, #8 + bl ndelay + ldr r0, [r5, r4] + pop {r3, r4, r5, pc} +.L82: + .align 2 +.L81: + .word .LANCHOR0 + .fnend + .size FlashReadStatus, .-FlashReadStatus + .align 1 .global js_hash .thumb .thumb_func @@ -473,25 +568,25 @@ js_hash: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L78 + ldr r3, .L87 add r1, r1, r0 push {r4, lr} .save {r4, lr} -.L75: +.L84: cmp r0, r1 - beq .L77 + beq .L86 lsls r2, r3, #5 ldrb r4, [r0], #1 @ zero_extendqisi2 add r2, r2, r3, lsr #2 add r2, r2, r4 eors r3, r3, r2 - b .L75 -.L77: + b .L84 +.L86: mov r0, r3 pop {r4, pc} -.L79: +.L88: .align 2 -.L78: +.L87: .word 1204201446 .fnend .size js_hash, .-js_hash @@ -523,6 +618,109 @@ FlashPrintInfo: .fnend .size FlashPrintInfo, .-FlashPrintInfo .align 1 + .global ToshibaSetRRPara + .thumb + .thumb_func + .type ToshibaSetRRPara, %function +ToshibaSetRRPara: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + push {r4, r5, r6, r7, r8, r9, r10, lr} + .save {r4, r5, r6, r7, r8, r9, r10, lr} + add r8, r1, r1, lsl #2 + ldr r9, .L100+8 + movs r4, #0 + ldr r7, .L100 + mov r5, r0 + add r10, r9, #256 + mov r6, r1 +.L92: + ldrb r3, [r7, #81] @ zero_extendqisi2 + cmp r4, r3 + bcs .L99 + movs r3, #85 + str r3, [r5, #8] + ldrsb r3, [r4, r10] + movs r0, #200 + str r3, [r5, #4] + bl ndelay + ldrb r3, [r7, #80] @ zero_extendqisi2 + cmp r3, #34 + bne .L93 + add r3, r4, r8 + add r3, r3, r10 + b .L98 +.L93: + cmp r3, #35 + bne .L95 + ldr r2, .L100+4 + add r3, r4, r8 + add r3, r3, r2 +.L98: + ldrsb r3, [r3, #5] + b .L97 +.L95: + add r3, r9, r6 + ldrsb r3, [r3, #400] +.L97: + str r3, [r5] + adds r4, r4, #1 + b .L92 +.L99: + pop {r4, r5, r6, r7, r8, r9, r10, pc} +.L101: + .align 2 +.L100: + .word .LANCHOR0 + .word .LANCHOR1+304 + .word .LANCHOR1 + .fnend + .size ToshibaSetRRPara, .-ToshibaSetRRPara + .align 1 + .global SamsungSetRRPara + .thumb + .thumb_func + .type SamsungSetRRPara, %function +SamsungSetRRPara: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + ldr r3, .L106 + push {r4, r5, r6, r7, r8, r9, r10, lr} + .save {r4, r5, r6, r7, r8, r9, r10, lr} + add r1, r3, r1, lsl #2 + movs r4, #0 + ldr r8, .L106+4 + adds r5, r1, #3 + mov r9, #161 + mov r6, r0 + mov r7, r3 + mov r10, r4 +.L103: + ldrb r3, [r8, #81] @ zero_extendqisi2 + cmp r4, r3 + bcs .L105 + str r9, [r6, #8] + mov r0, #300 + str r10, [r6] + ldrsb r3, [r7, r4] + adds r4, r4, #1 + str r3, [r6] + ldrsb r3, [r5, #1]! + str r3, [r6] + bl ndelay + b .L103 +.L105: + pop {r4, r5, r6, r7, r8, r9, r10, pc} +.L107: + .align 2 +.L106: + .word .LANCHOR1+408 + .word .LANCHOR0 + .fnend + .size SamsungSetRRPara, .-SamsungSetRRPara + .align 1 .global ftl_flash_suspend .thumb .thumb_func @@ -532,28 +730,28 @@ ftl_flash_suspend: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L83 - ldr r2, [r3, #80] + ldr r3, .L109 + ldr r2, [r3, #84] ldr r1, [r2] - str r1, [r3, #84] - ldr r1, [r2, #4] str r1, [r3, #88] - ldr r1, [r2, #8] + ldr r1, [r2, #4] str r1, [r3, #92] - ldr r1, [r2, #12] + ldr r1, [r2, #8] str r1, [r3, #96] - ldr r1, [r2, #304] + ldr r1, [r2, #12] str r1, [r3, #100] - ldr r1, [r2, #308] + ldr r1, [r2, #304] str r1, [r3, #104] + ldr r1, [r2, #308] + str r1, [r3, #108] ldr r1, [r2, #336] ldr r2, [r2, #344] - str r1, [r3, #108] - str r2, [r3, #112] + str r1, [r3, #112] + str r2, [r3, #116] bx lr -.L84: +.L110: .align 2 -.L83: +.L109: .word .LANCHOR0 .fnend .size ftl_flash_suspend, .-ftl_flash_suspend @@ -571,18 +769,18 @@ LogAddr2PhyAddr: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 mov r7, r0 - ldr r0, .L90 + ldr r0, .L116 mov r8, r3 ldr r4, [r7, #4] mov r10, r1 mov r9, r2 - ldrh r3, [r0, #130] + ldrh r3, [r0, #134] bic r4, r4, #-2147483648 - ldrh r5, [r0, #128] + ldrh r5, [r0, #132] mov r6, r0 - ldrh fp, [r0, #4] + ldrh fp, [r0, #36] smulbb r5, r5, r3 - ldrb r3, [r0] @ zero_extendqisi2 + ldrb r3, [r0, #32] @ zero_extendqisi2 cmp r3, #1 ubfx r3, r4, #10, #16 it eq @@ -601,42 +799,133 @@ LogAddr2PhyAddr: smulbb r5, r0, r5 sub r3, r3, r5 uxth r3, r3 - bne .L87 - ldrb r2, [r6, #144] @ zero_extendqisi2 - cbnz r2, .L87 - ldr r2, .L90 + bne .L113 + ldrb r2, [r6, #148] @ zero_extendqisi2 + cbnz r2, .L113 + ldr r2, .L116 add r1, r2, r1, lsl #1 - ldrh r1, [r1, #148] -.L87: + ldrh r1, [r1, #152] +.L113: add r6, r6, r0, lsl #2 - ldr r2, [r6, #1172] + ldr r2, [r6, #1176] mla fp, fp, r3, r2 ldrb r3, [sp, #48] @ zero_extendqisi2 cmp r3, #1 add r1, r1, fp str r1, [r9] str r0, [r8] - bls .L89 + bls .L115 ldr r0, [r7, #4] ldr r3, [r7, #40] add r0, r0, #1024 subs r3, r0, r3 rsbs r0, r3, #0 adcs r0, r0, r3 - b .L88 -.L89: + b .L114 +.L115: movs r0, #0 -.L88: +.L114: add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L91: +.L117: .align 2 -.L90: +.L116: .word .LANCHOR0 .fnend .size LogAddr2PhyAddr, .-LogAddr2PhyAddr .align 1 + .global FlashReadStatusEN + .thumb + .thumb_func + .type FlashReadStatusEN, %function +FlashReadStatusEN: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + push {r4, r5, r6, lr} + .save {r4, r5, r6, lr} + ldr r4, .L128 + ldr r3, [r4, #44] + ldr r6, [r4, r0, lsl #3] + add r0, r4, r0, lsl #3 + ldrb r3, [r3, #8] @ zero_extendqisi2 + ldrb r5, [r0, #4] @ zero_extendqisi2 + cmp r3, #2 + lsl r3, r5, #8 + add r5, r5, #8 + bne .L119 + cbnz r2, .L120 + ldrb r2, [r4, #61] @ zero_extendqisi2 + b .L127 +.L120: + ldrb r2, [r4, #62] @ zero_extendqisi2 +.L127: + add r3, r3, r6 + str r2, [r3, #2056] + ldrb r0, [r4, #63] @ zero_extendqisi2 + cbz r0, .L123 + movs r3, #0 + add r4, r6, r5, lsl #8 +.L122: + cmp r3, r0 + bcs .L123 + lsls r2, r3, #3 + adds r3, r3, #1 + lsr r2, r1, r2 + uxtb r2, r2 + str r2, [r4, #4] + b .L122 +.L119: + add r3, r3, r6 + movs r2, #112 + str r2, [r3, #2056] +.L123: + movs r0, #80 + lsls r5, r5, #8 + bl ndelay + ldr r0, [r6, r5] + uxtb r0, r0 + pop {r4, r5, r6, pc} +.L129: + .align 2 +.L128: + .word .LANCHOR0 + .fnend + .size FlashReadStatusEN, .-FlashReadStatusEN + .align 1 + .global FlashWaitReadyEN + .thumb + .thumb_func + .type FlashWaitReadyEN, %function +FlashWaitReadyEN: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + push {r4, r5, r6, lr} + .save {r4, r5, r6, lr} + mov r4, r0 + mov r5, r1 + mov r6, r2 +.L131: + mov r0, r4 + mov r1, r5 + mov r2, r6 + bl FlashReadStatusEN + cmp r0, #255 + mov r3, r0 + beq .L131 + lsls r3, r3, #25 + bmi .L132 + movs r0, #1 + movs r1, #3 + bl usleep_range + b .L131 +.L132: + pop {r4, r5, r6, pc} + .fnend + .size FlashWaitReadyEN, .-FlashWaitReadyEN + .align 1 .global FlashScheduleEnSet .thumb .thumb_func @@ -646,14 +935,14 @@ FlashScheduleEnSet: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L93 - ldr r2, [r3, #1204] - str r0, [r3, #1204] + ldr r3, .L137 + ldr r2, [r3, #1208] + str r0, [r3, #1208] mov r0, r2 bx lr -.L94: +.L138: .align 2 -.L93: +.L137: .word .LANCHOR0 .fnend .size FlashScheduleEnSet, .-FlashScheduleEnSet @@ -667,13 +956,13 @@ FlashGetPageSize: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L96 + ldr r3, .L140 ldr r3, [r3, #44] ldrb r0, [r3, #9] @ zero_extendqisi2 bx lr -.L97: +.L141: .align 2 -.L96: +.L140: .word .LANCHOR0 .fnend .size FlashGetPageSize, .-FlashGetPageSize @@ -700,16 +989,16 @@ NandcGetChipIf: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L100 - add r0, r3, r0, lsl #3 - ldrb r2, [r0, #16] @ zero_extendqisi2 - ldr r0, [r0, #12] - adds r2, r2, #8 - add r0, r0, r2, lsl #8 + ldr r2, .L144 + add r3, r2, r0, lsl #3 + ldr r0, [r2, r0, lsl #3] + ldrb r3, [r3, #4] @ zero_extendqisi2 + adds r3, r3, #8 + add r0, r0, r3, lsl #8 bx lr -.L101: +.L145: .align 2 -.L100: +.L144: .word .LANCHOR0 .fnend .size NandcGetChipIf, .-NandcGetChipIf @@ -723,16 +1012,16 @@ NandcSetDdrPara: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L103 - ldr r2, [r3, #80] + ldr r3, .L147 + ldr r2, [r3, #84] lsls r3, r0, #8 orr r0, r3, r0, lsl #16 orr r3, r0, #1 str r3, [r2, #304] bx lr -.L104: +.L148: .align 2 -.L103: +.L147: .word .LANCHOR0 .fnend .size NandcSetDdrPara, .-NandcSetDdrPara @@ -746,14 +1035,14 @@ NandcSetDdrDiv: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L106 + ldr r3, .L150 orr r0, r0, #16640 - ldr r3, [r3, #80] + ldr r3, [r3, #84] str r0, [r3, #344] bx lr -.L107: +.L151: .align 2 -.L106: +.L150: .word .LANCHOR0 .fnend .size NandcSetDdrDiv, .-NandcSetDdrDiv @@ -767,20 +1056,20 @@ NandcSetDdrMode: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L111 - ldr r2, [r3, #80] + ldr r3, .L155 + ldr r2, [r3, #84] ldr r3, [r2] - cbnz r0, .L109 + cbnz r0, .L153 bfi r3, r0, #13, #1 - b .L110 -.L109: + b .L154 +.L153: orr r3, r3, #253952 -.L110: +.L154: str r3, [r2] bx lr -.L112: +.L156: .align 2 -.L111: +.L155: .word .LANCHOR0 .fnend .size NandcSetDdrMode, .-NandcSetDdrMode @@ -794,11 +1083,11 @@ NandcSetMode: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L120 + ldr r3, .L164 ands r1, r0, #6 - ldr r2, [r3, #80] + ldr r2, [r3, #84] ldr r3, [r2] - beq .L114 + beq .L158 orr r3, r3, #24576 lsls r1, r0, #29 bfc r3, #15, #1 @@ -814,16 +1103,16 @@ NandcSetMode: str r1, [r2, #308] movs r1, #39 str r1, [r2, #308] - b .L116 -.L114: + b .L160 +.L158: bfi r3, r1, #13, #1 -.L116: +.L160: str r3, [r2] movs r0, #0 bx lr -.L121: +.L165: .align 2 -.L120: +.L164: .word .LANCHOR0 .fnend .size NandcSetMode, .-NandcSetMode @@ -837,19 +1126,19 @@ NandcFlashCs: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L123 - add r0, r2, r0, lsl #3 + ldr r3, .L167 movs r2, #1 - ldr r1, [r0, #12] - ldrb r0, [r0, #16] @ zero_extendqisi2 + ldr r1, [r3, r0, lsl #3] + add r0, r3, r0, lsl #3 + ldrb r0, [r0, #4] @ zero_extendqisi2 ldr r3, [r1] lsls r2, r2, r0 bfi r3, r2, #0, #8 str r3, [r1] bx lr -.L124: +.L168: .align 2 -.L123: +.L167: .word .LANCHOR0 .fnend .size NandcFlashCs, .-NandcFlashCs @@ -863,181 +1152,20 @@ NandcFlashDeCs: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L126 - add r0, r3, r0, lsl #3 - ldr r2, [r0, #12] + ldr r3, .L170 + ldr r2, [r3, r0, lsl #3] ldr r3, [r2] bfc r3, #0, #8 bfc r3, #17, #1 str r3, [r2] bx lr -.L127: +.L171: .align 2 -.L126: +.L170: .word .LANCHOR0 .fnend .size NandcFlashDeCs, .-NandcFlashDeCs .align 1 - .global NandcDelayns - .thumb - .thumb_func - .type NandcDelayns, %function -NandcDelayns: - .fnstart - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - push {r3, lr} - .save {r3, lr} - addw r0, r0, #999 - ldr r3, .L129 - umull r0, r1, r0, r3 - ldr r3, .L129+4 - ldr r3, [r3, #8] - lsrs r0, r1, #6 - blx r3 - movs r0, #0 - pop {r3, pc} -.L130: - .align 2 -.L129: - .word 274877907 - .word arm_delay_ops - .fnend - .size NandcDelayns, .-NandcDelayns - .align 1 - .global FlashReadStatus - .thumb - .thumb_func - .type FlashReadStatus, %function -FlashReadStatus: - .fnstart - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - push {r3, r4, r5, lr} - .save {r3, r4, r5, lr} - movs r2, #112 - ldr r3, .L132 - add r0, r3, r0, lsl #3 - ldrb r4, [r0, #16] @ zero_extendqisi2 - ldr r5, [r0, #12] - movs r0, #80 - add r3, r5, r4, lsl #8 - adds r4, r4, #8 - str r2, [r3, #2056] - lsls r4, r4, #8 - bl NandcDelayns - ldr r0, [r5, r4] - pop {r3, r4, r5, pc} -.L133: - .align 2 -.L132: - .word .LANCHOR0 - .fnend - .size FlashReadStatus, .-FlashReadStatus - .align 1 - .global ToshibaSetRRPara - .thumb - .thumb_func - .type ToshibaSetRRPara, %function -ToshibaSetRRPara: - .fnstart - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - push {r4, r5, r6, r7, r8, r9, r10, lr} - .save {r4, r5, r6, r7, r8, r9, r10, lr} - add r8, r1, r1, lsl #2 - ldr r9, .L143+8 - movs r4, #0 - ldr r7, .L143 - mov r5, r0 - add r10, r9, #256 - mov r6, r1 -.L135: - ldrb r3, [r7, #1209] @ zero_extendqisi2 - cmp r4, r3 - bcs .L142 - movs r3, #85 - str r3, [r5, #8] - ldrsb r3, [r4, r10] - movs r0, #200 - str r3, [r5, #4] - bl NandcDelayns - ldrb r3, [r7, #1208] @ zero_extendqisi2 - cmp r3, #34 - bne .L136 - add r3, r4, r8 - add r3, r3, r10 - b .L141 -.L136: - cmp r3, #35 - bne .L138 - ldr r2, .L143+4 - add r3, r4, r8 - add r3, r3, r2 -.L141: - ldrsb r3, [r3, #5] - b .L140 -.L138: - add r3, r9, r6 - ldrsb r3, [r3, #400] -.L140: - str r3, [r5] - adds r4, r4, #1 - b .L135 -.L142: - pop {r4, r5, r6, r7, r8, r9, r10, pc} -.L144: - .align 2 -.L143: - .word .LANCHOR0 - .word .LANCHOR1+304 - .word .LANCHOR1 - .fnend - .size ToshibaSetRRPara, .-ToshibaSetRRPara - .align 1 - .global SamsungSetRRPara - .thumb - .thumb_func - .type SamsungSetRRPara, %function -SamsungSetRRPara: - .fnstart - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L149 - push {r4, r5, r6, r7, r8, r9, r10, lr} - .save {r4, r5, r6, r7, r8, r9, r10, lr} - add r1, r3, r1, lsl #2 - movs r4, #0 - ldr r8, .L149+4 - adds r5, r1, #3 - mov r9, #161 - mov r6, r0 - mov r7, r3 - mov r10, r4 -.L146: - ldrb r3, [r8, #1209] @ zero_extendqisi2 - cmp r4, r3 - bcs .L148 - str r9, [r6, #8] - mov r0, #300 - str r10, [r6] - ldrsb r3, [r7, r4] - adds r4, r4, #1 - str r3, [r6] - ldrsb r3, [r5, #1]! - str r3, [r6] - bl NandcDelayns - b .L146 -.L148: - pop {r4, r5, r6, r7, r8, r9, r10, pc} -.L150: - .align 2 -.L149: - .word .LANCHOR1+408 - .word .LANCHOR0 - .fnend - .size SamsungSetRRPara, .-SamsungSetRRPara - .align 1 .global HynixSetRRPara .thumb .thumb_func @@ -1050,66 +1178,68 @@ HynixSetRRPara: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 mov r7, r3 - ldr r5, .L159 - mov r6, r0 + ldr r5, .L180 mov r9, r1 - mov fp, r2 + mov r6, r0 + lsls r1, r0, #3 ldr r3, [r5, #44] ldrb r4, [r3, #19] @ zero_extendqisi2 - lsls r3, r0, #3 cmp r4, #6 - bne .L152 + bne .L173 add r4, r5, r0, lsl #6 - addw r4, r4, #1230 + add r4, r4, #1232 add r4, r4, r7, lsl #2 - b .L153 -.L152: + b .L174 +.L173: cmp r4, #7 - bne .L154 - mov r10, #160 + bne .L175 + movs r3, #160 add r4, r7, r7, lsl #2 - mla r10, r10, r0, r5 - addw r10, r10, #1238 - add r4, r10, r4, lsl #1 - b .L153 -.L154: + mla r3, r3, r0, r5 + add r3, r3, #1240 + add r4, r3, r4, lsl #1 + b .L174 +.L175: cmp r4, #8 iteet ne - addne r4, r7, r3 - addweq r4, r5, #1238 - addeq r2, r7, r7, lsl #2 + addne r4, r7, r1 + addeq r4, r5, #1240 + addeq r3, r7, r7, lsl #2 addne r4, r5, r4, lsl #3 ite eq - addeq r4, r4, r2 - addwne r4, r4, #1230 -.L153: - add r3, r3, r5 + addeq r4, r4, r3 + addne r4, r4, #1232 +.L174: + add r1, r1, r5 mov r0, r6 + str r2, [sp] add r9, r9, #-1 - subs r4, r4, #1 - ldrb r8, [r3, #16] @ zero_extendqisi2 - add r9, r9, fp - ldr r10, [r3, #12] + ldr r10, [r5, r6, lsl #3] + ldrb r8, [r1, #4] @ zero_extendqisi2 bl NandcFlashCs - add r1, fp, #-1 - movs r2, #54 + movs r3, #54 lsl r8, r8, #8 - add r3, r10, r8 - mov fp, r3 - str r2, [r3, #2056] -.L156: - cmp r1, r9 - beq .L158 - ldrb r3, [r1, #1]! @ zero_extendqisi2 + add fp, r10, r8 + str r3, [fp, #2056] + subs r3, r4, #1 + add r4, r4, r9 + ldr r2, [sp] + subs r2, r2, #1 +.L177: + cmp r3, r4 + beq .L179 + ldrb r1, [r2, #1]! @ zero_extendqisi2 movs r0, #200 - str r3, [fp, #2052] - str r1, [sp, #4] - bl NandcDelayns - ldrsb r3, [r4, #1]! - str r3, [fp, #2048] - ldr r1, [sp, #4] - b .L156 -.L158: + str r3, [sp, #4] + str r1, [fp, #2052] + str r2, [sp] + bl ndelay + ldr r3, [sp, #4] + ldr r2, [sp] + ldrsb r1, [r3, #1]! + str r1, [fp, #2048] + b .L177 +.L179: add r8, r8, r10 movs r3, #22 mov r0, r6 @@ -1120,9 +1250,9 @@ HynixSetRRPara: add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L160: +.L181: .align 2 -.L159: +.L180: .word .LANCHOR0 .fnend .size HynixSetRRPara, .-HynixSetRRPara @@ -1137,129 +1267,38 @@ FlashSetReadRetryDefault: @ frame_needed = 0, uses_anonymous_args = 0 push {r3, r4, r5, lr} .save {r3, r4, r5, lr} - ldr r3, .L167 + ldr r3, .L188 ldr r2, [r3, #44] ldrb r2, [r2, #19] @ zero_extendqisi2 subs r2, r2, #1 cmp r2, #7 - bhi .L161 + bhi .L182 movs r4, #0 mov r5, r3 -.L162: - ldr r2, .L167+4 +.L183: + ldr r2, .L188+4 uxtb r0, r4 ldrb r3, [r2, r4, lsl #3] @ zero_extendqisi2 cmp r3, #173 - bne .L163 - ldrb r1, [r5, #1211] @ zero_extendqisi2 - subw r2, r2, #854 + bne .L184 + ldrb r1, [r5, #1213] @ zero_extendqisi2 + sub r2, r2, #852 movs r3, #0 bl HynixSetRRPara -.L163: +.L184: adds r4, r4, #1 cmp r4, #4 - bne .L162 -.L161: + bne .L183 +.L182: pop {r3, r4, r5, pc} -.L168: +.L189: .align 2 -.L167: +.L188: .word .LANCHOR0 .word .LANCHOR0+2068 .fnend .size FlashSetReadRetryDefault, .-FlashSetReadRetryDefault .align 1 - .global FlashReadStatusEN - .thumb - .thumb_func - .type FlashReadStatusEN, %function -FlashReadStatusEN: - .fnstart - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - push {r4, r5, r6, lr} - .save {r4, r5, r6, lr} - ldr r5, .L179 - add r0, r5, r0, lsl #3 - ldr r3, [r5, #44] - ldrb r4, [r0, #16] @ zero_extendqisi2 - ldr r6, [r0, #12] - ldrb r3, [r3, #8] @ zero_extendqisi2 - cmp r3, #2 - lsl r3, r4, #8 - add r4, r4, #8 - bne .L170 - cbnz r2, .L171 - ldrb r2, [r5, #61] @ zero_extendqisi2 - b .L178 -.L171: - ldrb r2, [r5, #62] @ zero_extendqisi2 -.L178: - add r3, r3, r6 - str r2, [r3, #2056] - ldrb r0, [r5, #63] @ zero_extendqisi2 - cbz r0, .L174 - movs r3, #0 - add r5, r6, r4, lsl #8 -.L173: - cmp r3, r0 - bcs .L174 - lsls r2, r3, #3 - adds r3, r3, #1 - lsr r2, r1, r2 - uxtb r2, r2 - str r2, [r5, #4] - b .L173 -.L170: - add r3, r3, r6 - movs r2, #112 - str r2, [r3, #2056] -.L174: - movs r0, #80 - lsls r4, r4, #8 - bl NandcDelayns - ldr r0, [r6, r4] - uxtb r0, r0 - pop {r4, r5, r6, pc} -.L180: - .align 2 -.L179: - .word .LANCHOR0 - .fnend - .size FlashReadStatusEN, .-FlashReadStatusEN - .align 1 - .global FlashWaitReadyEN - .thumb - .thumb_func - .type FlashWaitReadyEN, %function -FlashWaitReadyEN: - .fnstart - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - push {r4, r5, r6, lr} - .save {r4, r5, r6, lr} - mov r4, r0 - mov r5, r1 - mov r6, r2 -.L182: - mov r0, r4 - mov r1, r5 - mov r2, r6 - bl FlashReadStatusEN - cmp r0, #255 - mov r3, r0 - beq .L182 - lsls r3, r3, #25 - bmi .L183 - movs r0, #1 - movs r1, #3 - bl usleep_range - b .L182 -.L183: - pop {r4, r5, r6, pc} - .fnend - .size FlashWaitReadyEN, .-FlashWaitReadyEN - .align 1 .global FlashWaitCmdDone .thumb .thumb_func @@ -1271,16 +1310,16 @@ FlashWaitCmdDone: push {r3, r4, r5, r6, r7, r8, r9, lr} .save {r3, r4, r5, r6, r7, r8, r9, lr} mov r8, r0 - ldr r5, .L194 + ldr r5, .L197 add r4, r5, r0, lsl #4 ldr r3, [r4, #2108] ldrb r6, [r4, #2100] @ zero_extendqisi2 - cbz r3, .L189 + cbz r3, .L192 add r5, r5, r8, lsl #2 mov r0, r6 bl NandcFlashCs ldr r1, [r4, #2104] - ldr r2, [r5, #1172] + ldr r2, [r5, #1176] mov r0, r6 adds r2, r2, #0 it ne @@ -1295,61 +1334,34 @@ FlashWaitCmdDone: movs r2, #0 ldr r1, [r4, #2112] str r2, [r4, #2108] - cbz r1, .L189 + cbz r1, .L192 str r3, [r1] str r2, [r4, #2112] -.L189: +.L192: movs r0, #0 pop {r3, r4, r5, r6, r7, r8, r9, pc} -.L195: - .align 2 -.L194: - .word .LANCHOR0 - .fnend - .size FlashWaitCmdDone, .-FlashWaitCmdDone - .align 1 - .thumb - .thumb_func - .type flash_read_ecc, %function -flash_read_ecc: - .fnstart - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L197 - push {r4, lr} - .save {r4, lr} - add r0, r2, r0, lsl #3 - ldrb r4, [r0, #16] @ zero_extendqisi2 - ldr r3, [r0, #12] - movs r0, #80 - add r4, r3, r4, lsl #8 - movs r3, #122 - str r3, [r4, #2056] - bl NandcDelayns - ldr r3, [r4, #2048] - ldr r0, [r4, #2048] - and r3, r3, #15 - and r0, r0, #15 - cmp r0, r3 - it cc - movcc r0, r3 - ldr r3, [r4, #2048] - and r3, r3, #15 - cmp r0, r3 - it cc - movcc r0, r3 - ldr r3, [r4, #2048] - and r3, r3, #15 - cmp r0, r3 - it cc - movcc r0, r3 - pop {r4, pc} .L198: .align 2 .L197: .word .LANCHOR0 .fnend - .size flash_read_ecc, .-flash_read_ecc + .size FlashWaitCmdDone, .-FlashWaitCmdDone + .align 1 + .global NandcDelayns + .thumb + .thumb_func + .type NandcDelayns, %function +NandcDelayns: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + push {r3, lr} + .save {r3, lr} + bl ndelay + movs r0, #0 + pop {r3, pc} + .fnend + .size NandcDelayns, .-NandcDelayns .align 1 .global NandcWaitFlashReadyNoDelay .thumb @@ -1359,34 +1371,33 @@ NandcWaitFlashReadyNoDelay: .fnstart @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L204 + ldr r3, .L205 push {r0, r1, r2, r4, r5, lr} .save {r4, r5, lr} .pad #12 - add r0, r3, r0, lsl #3 - ldr r4, .L204+4 - ldr r5, [r0, #12] -.L201: + ldr r4, .L205+4 + ldr r5, [r3, r0, lsl #3] +.L202: ldr r3, [r5] str r3, [sp, #4] ldr r3, [sp, #4] lsls r3, r3, #22 - bmi .L202 + bmi .L203 movs r0, #10 - bl NandcDelayns + bl ndelay subs r4, r4, #1 - bne .L201 + bne .L202 mov r0, #-1 - b .L200 -.L202: + b .L201 +.L203: movs r0, #0 -.L200: +.L201: add sp, sp, #12 @ sp needed pop {r4, r5, pc} -.L205: +.L206: .align 2 -.L204: +.L205: .word .LANCHOR0 .word 100000 .fnend @@ -1400,37 +1411,36 @@ NandcWaitFlashReady: .fnstart @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L211 + ldr r3, .L212 push {r0, r1, r2, r4, r5, lr} .save {r4, r5, lr} .pad #12 - add r0, r3, r0, lsl #3 - ldr r4, .L211+4 - ldr r5, [r0, #12] + ldr r5, [r3, r0, lsl #3] movs r0, #130 - bl NandcDelayns -.L208: + bl ndelay + ldr r4, .L212+4 +.L209: ldr r3, [r5] str r3, [sp, #4] ldr r3, [sp, #4] lsls r3, r3, #22 - bmi .L209 + bmi .L210 movs r0, #1 movs r1, #2 bl usleep_range subs r4, r4, #1 - bne .L208 + bne .L209 mov r0, #-1 - b .L207 -.L209: + b .L208 +.L210: movs r0, #0 -.L207: +.L208: add sp, sp, #12 @ sp needed pop {r4, r5, pc} -.L212: +.L213: .align 2 -.L211: +.L212: .word .LANCHOR0 .word 100000 .fnend @@ -1444,13 +1454,13 @@ FlashReset: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L214 + ldr r3, .L215 push {r4, r5, r6, lr} .save {r4, r5, r6, lr} - add r3, r3, r0, lsl #3 mov r4, r0 - ldrb r6, [r3, #16] @ zero_extendqisi2 - ldr r5, [r3, #12] + ldr r5, [r3, r0, lsl #3] + add r3, r3, r0, lsl #3 + ldrb r6, [r3, #4] @ zero_extendqisi2 bl NandcFlashCs movs r3, #255 mov r0, r4 @@ -1460,9 +1470,9 @@ FlashReset: mov r0, r4 pop {r4, r5, r6, lr} b NandcFlashDeCs -.L215: +.L216: .align 2 -.L214: +.L215: .word .LANCHOR0 .fnend .size FlashReset, .-FlashReset @@ -1478,24 +1488,24 @@ flash_enter_slc_mode: push {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} mov r7, r0 - ldr r6, .L222 - ldrb r3, [r6, #144] @ zero_extendqisi2 - cbz r3, .L216 - add r4, r6, r7, lsl #3 + ldr r5, .L223 + ldrb r3, [r5, #148] @ zero_extendqisi2 + cbz r3, .L217 + add r4, r5, r7, lsl #3 bl NandcFlashCs + ldr r8, [r5, r7, lsl #3] ldrb r3, [r4, #2068] @ zero_extendqisi2 - ldrb r5, [r4, #16] @ zero_extendqisi2 + ldrb r6, [r4, #4] @ zero_extendqisi2 cmp r3, #44 - ldr r8, [r4, #12] - lsl r5, r5, #8 - bne .L218 - add r4, r8, r5 + lsl r6, r6, #8 + bne .L219 + add r4, r8, r6 movs r3, #239 movs r0, #50 str r3, [r4, #2056] movs r3, #145 str r3, [r4, #2052] - bl NandcDelayns + bl ndelay movs r3, #0 movs r2, #1 str r3, [r4, #2048] @@ -1503,22 +1513,22 @@ flash_enter_slc_mode: str r2, [r4, #2048] str r3, [r4, #2048] str r3, [r4, #2048] - bl NandcDelayns -.L218: - add r5, r5, r8 + bl ndelay +.L219: + add r6, r6, r8 mov r0, r7 bl NandcWaitFlashReadyNoDelay movs r3, #218 mov r0, r7 - str r3, [r5, #2056] + str r3, [r6, #2056] bl NandcWaitFlashReady movs r3, #2 - strb r3, [r6, #2228] -.L216: + strb r3, [r5, #2228] +.L217: pop {r4, r5, r6, r7, r8, pc} -.L223: +.L224: .align 2 -.L222: +.L223: .word .LANCHOR0 .fnend .size flash_enter_slc_mode, .-flash_enter_slc_mode @@ -1534,24 +1544,24 @@ flash_exit_slc_mode: push {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} mov r7, r0 - ldr r6, .L230 - ldrb r3, [r6, #144] @ zero_extendqisi2 - cbz r3, .L224 - add r4, r6, r7, lsl #3 + ldr r5, .L231 + ldrb r3, [r5, #148] @ zero_extendqisi2 + cbz r3, .L225 + add r4, r5, r7, lsl #3 bl NandcFlashCs + ldr r8, [r5, r7, lsl #3] ldrb r3, [r4, #2068] @ zero_extendqisi2 - ldrb r5, [r4, #16] @ zero_extendqisi2 + ldrb r6, [r4, #4] @ zero_extendqisi2 cmp r3, #44 - ldr r8, [r4, #12] - lsl r5, r5, #8 - bne .L226 - add r4, r8, r5 + lsl r6, r6, #8 + bne .L227 + add r4, r8, r6 movs r3, #239 movs r0, #50 str r3, [r4, #2056] movs r3, #145 str r3, [r4, #2052] - bl NandcDelayns + bl ndelay movs r3, #2 movs r0, #100 str r3, [r4, #2048] @@ -1560,22 +1570,22 @@ flash_exit_slc_mode: movs r3, #0 str r3, [r4, #2048] str r3, [r4, #2048] - bl NandcDelayns -.L226: - add r5, r5, r8 + bl ndelay +.L227: + add r6, r6, r8 mov r0, r7 bl NandcWaitFlashReadyNoDelay movs r3, #223 mov r0, r7 - str r3, [r5, #2056] + str r3, [r6, #2056] bl NandcWaitFlashReady movs r3, #0 - strb r3, [r6, #2228] -.L224: + strb r3, [r5, #2228] +.L225: pop {r4, r5, r6, r7, r8, pc} -.L231: +.L232: .align 2 -.L230: +.L231: .word .LANCHOR0 .fnend .size flash_exit_slc_mode, .-flash_exit_slc_mode @@ -1619,106 +1629,102 @@ FlashEraseBlock: .type FlashSetInterfaceMode, %function FlashSetInterfaceMode: .fnstart - @ args = 0, pretend = 0, frame = 16 + @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 - push {r4, r5, r6, r7, r8, r9, r10, fp, lr} + push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - .pad #20 - sub sp, sp, #20 - ldr r5, .L261 + .pad #12 movs r4, #0 - movs r7, #239 + ldr r5, .L262 mov lr, #128 mov ip, #1 - mov r8, #35 - ldrb r3, [r5, #2229] @ zero_extendqisi2 mov r9, #32 + addw r8, r5, #2068 mov r10, #5 + ldrb r3, [r5, #2229] @ zero_extendqisi2 and r2, r3, #1 - str r2, [sp, #12] + str r2, [sp, #4] and r2, r3, #4 uxtb r3, r2 mov r2, r4 - str r3, [sp, #8] - add r3, r5, #12 - str r3, [sp, #4] -.L243: - ldr r1, .L261+4 - ldr r3, [sp, #4] - ldrb r1, [r4, r1] @ zero_extendqisi2 - ldr r6, [r4, r3] - add r3, r3, r4 + str r3, [sp] +.L244: + ldrb r1, [r4, r8] @ zero_extendqisi2 + adds r3, r5, r4 + ldr r6, [r5, r4] cmp r1, #152 ldr r3, [r3, #4] - beq .L234 + beq .L235 cmp r1, #69 - beq .L234 + beq .L235 cmp r1, #173 - beq .L234 + beq .L235 cmp r1, #44 - bne .L235 -.L234: + bne .L236 +.L235: cmp r0, #1 uxtb r3, r3 - bne .L236 - ldr r5, [sp, #12] - cbz r5, .L235 + bne .L237 + ldr r7, [sp, #4] + cbz r7, .L236 lsls r3, r3, #8 cmp r1, #173 add fp, r6, r3 + mov r7, #239 str r7, [fp, #2056] - bne .L237 + bne .L238 str r0, [fp, #2052] - b .L260 -.L237: + b .L261 +.L238: cmp r1, #44 itete eq streq r0, [fp, #2052] strne lr, [fp, #2052] streq r10, [fp, #2048] strne r0, [fp, #2048] - b .L241 -.L236: - ldr r5, [sp, #8] - cbz r5, .L235 + b .L242 +.L237: + ldr r7, [sp] + cbz r7, .L236 lsls r3, r3, #8 cmp r1, #173 add fp, r6, r3 + mov r7, #239 str r7, [fp, #2056] - bne .L240 + bne .L241 str ip, [fp, #2052] str r9, [fp, #2048] - b .L241 -.L240: - cmp r1, #44 - bne .L242 - str ip, [fp, #2052] - str r8, [fp, #2048] - b .L241 -.L242: - str lr, [fp, #2052] -.L260: - str r2, [fp, #2048] + b .L242 .L241: + cmp r1, #44 + bne .L243 + str ip, [fp, #2052] + movs r1, #35 + str r1, [fp, #2048] + b .L242 +.L243: + str lr, [fp, #2052] +.L261: + str r2, [fp, #2048] +.L242: add r3, r3, r6 str r2, [r3, #2048] str r2, [r3, #2048] str r2, [r3, #2048] -.L235: +.L236: adds r4, r4, #8 cmp r4, #32 - bne .L243 + bne .L244 movs r0, #0 bl NandcWaitFlashReady movs r0, #0 - add sp, sp, #20 + add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L262: +.L263: .align 2 -.L261: +.L262: .word .LANCHOR0 - .word .LANCHOR0+2068 .fnend .size FlashSetInterfaceMode, .-FlashSetInterfaceMode .align 1 @@ -1730,15 +1736,15 @@ FlashReadSpare: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - push {r4, r5, r6, lr} - .save {r4, r5, r6, lr} - mov r6, r2 - ldr r5, .L264 - ldr r3, .L264+4 + push {r3, r4, r5, r6, r7, lr} + .save {r3, r4, r5, r6, r7, lr} + mov r7, r2 + ldr r5, .L265 + ldr r3, .L265+4 + ldr r4, [r5, r0, lsl #3] add r5, r5, r0, lsl #3 ldrb r3, [r3, #481] @ zero_extendqisi2 - ldrb r2, [r5, #16] @ zero_extendqisi2 - ldr r4, [r5, #12] + ldrb r2, [r5, #4] @ zero_extendqisi2 lsls r3, r3, #9 add r4, r4, r2, lsl #8 movs r2, #0 @@ -1756,11 +1762,11 @@ FlashReadSpare: str r3, [r4, #2056] bl NandcWaitFlashReady ldr r3, [r4, #2048] - strb r3, [r6] - pop {r4, r5, r6, pc} -.L265: + strb r3, [r7] + pop {r3, r4, r5, r6, r7, pc} +.L266: .align 2 -.L264: +.L265: .word .LANCHOR0 .word .LANCHOR1 .fnend @@ -1774,12 +1780,12 @@ SandiskProgTestBadBlock: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L267 + ldr r2, .L268 push {r4, lr} .save {r4, lr} + ldr r3, [r2, r0, lsl #3] add r2, r2, r0, lsl #3 - ldrb r4, [r2, #16] @ zero_extendqisi2 - ldr r3, [r2, #12] + ldrb r4, [r2, #4] @ zero_extendqisi2 add r4, r3, r4, lsl #8 movs r3, #162 str r3, [r4, #2056] @@ -1800,13 +1806,13 @@ SandiskProgTestBadBlock: movs r3, #112 movs r0, #80 str r3, [r4, #2056] - bl NandcDelayns + bl ndelay ldr r0, [r4, #2048] and r0, r0, #1 pop {r4, pc} -.L268: +.L269: .align 2 -.L267: +.L268: .word .LANCHOR0 .fnend .size SandiskProgTestBadBlock, .-SandiskProgTestBadBlock @@ -1828,17 +1834,17 @@ SandiskSetRRPara: str r3, [r0, #4] movs r0, #200 mov r4, r1 - bl NandcDelayns - ldr r0, .L276 - ldr r1, .L276+4 + bl ndelay + ldr r0, .L277 + ldr r1, .L277+4 add r4, r4, r4, lsl #2 movs r2, #0 sub r6, r0, #48 -.L270: - ldrb r3, [r1, #1209] @ zero_extendqisi2 +.L271: + ldrb r3, [r1, #81] @ zero_extendqisi2 cmp r2, r3 - bcs .L275 - ldrb r3, [r1, #1208] @ zero_extendqisi2 + bcs .L276 + ldrb r3, [r1, #80] @ zero_extendqisi2 cmp r3, #67 add r3, r2, r4 ite eq @@ -1847,14 +1853,14 @@ SandiskSetRRPara: adds r2, r2, #1 ldrsb r3, [r3, #5] str r3, [r5] - b .L270 -.L275: + b .L271 +.L276: movs r0, #0 pop {r4, r5, r6, lr} b NandcWaitFlashReady -.L277: +.L278: .align 2 -.L276: +.L277: .word .LANCHOR1+304 .word .LANCHOR0 .fnend @@ -1873,26 +1879,26 @@ micron_auto_read_calibration_config: mov r4, r0 mov r5, r1 bl NandcWaitFlashReady - ldr r3, .L279 + ldr r2, .L280 movs r0, #200 - add r2, r3, r4, lsl #3 - ldrb r4, [r2, #16] @ zero_extendqisi2 - ldr r3, [r2, #12] + ldr r3, [r2, r4, lsl #3] + add r2, r2, r4, lsl #3 + ldrb r4, [r2, #4] @ zero_extendqisi2 add r4, r3, r4, lsl #8 movs r3, #239 str r3, [r4, #2056] movs r3, #150 str r3, [r4, #2052] - bl NandcDelayns + bl ndelay str r5, [r4, #2048] movs r3, #0 str r3, [r4, #2048] str r3, [r4, #2048] str r3, [r4, #2048] pop {r3, r4, r5, pc} -.L280: +.L281: .align 2 -.L279: +.L280: .word .LANCHOR0 .fnend .size micron_auto_read_calibration_config, .-micron_auto_read_calibration_config @@ -1908,15 +1914,15 @@ FlashEraseSLc2KBlocks: push {r4, r5, r6, r7, r8, r9, lr} .save {r4, r5, r6, r7, r8, r9, lr} movs r5, #0 - ldr r8, .L292+4 + ldr r8, .L293+4 .pad #20 sub sp, sp, #20 mov r6, r0 mov r9, r1 mov r7, r5 -.L282: +.L283: cmp r7, r9 - beq .L291 + beq .L292 rsb r3, r7, r9 add r2, sp, #8 adds r0, r6, r5 @@ -1928,11 +1934,11 @@ FlashEraseSLc2KBlocks: ldrb r2, [r8, #2230] @ zero_extendqisi2 ldr r3, [sp, #12] cmp r3, r2 - bcc .L283 + bcc .L284 mov r3, #-1 str r3, [r6, r5] - b .L284 -.L283: + b .L285 +.L284: add r2, r8, r3 add r3, r8, r3, lsl #4 ldrb r4, [r2, #2232] @ zero_extendqisi2 @@ -1955,7 +1961,7 @@ FlashEraseSLc2KBlocks: sbfx r0, r0, #0, #1 str r0, [r6, r5] mov r0, r4 - ldr r1, [r8, #4] + ldr r1, [r8, #36] add r1, r1, r3 bl FlashEraseCmd mov r0, r4 @@ -1969,25 +1975,25 @@ FlashEraseSLc2KBlocks: strmi r3, [r6, r5] ldr r3, [r6, r5] adds r3, r3, #1 - bne .L286 - ldr r0, .L292 + bne .L287 + ldr r0, .L293 ldr r1, [sp, #8] bl printk -.L286: +.L287: mov r0, r4 bl NandcFlashDeCs -.L284: +.L285: adds r7, r7, #1 adds r5, r5, #36 - b .L282 -.L291: + b .L283 +.L292: movs r0, #0 add sp, sp, #20 @ sp needed pop {r4, r5, r6, r7, r8, r9, pc} -.L293: +.L294: .align 2 -.L292: +.L293: .word .LC1 .word .LANCHOR0 .fnend @@ -2004,21 +2010,21 @@ FlashEraseBlocks: push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r9, r0 - ldr r4, .L328 + ldr r4, .L329 .pad #28 sub sp, sp, #28 mov r10, r1 mov r8, r2 - ldrb r5, [r4] @ zero_extendqisi2 - cbz r5, .L312 + ldrb r5, [r4, #32] @ zero_extendqisi2 + cbz r5, .L313 mov r1, r2 bl FlashEraseSLc2KBlocks - b .L296 -.L312: + b .L297 +.L313: mov fp, r4 -.L295: +.L296: cmp r5, r8 - bcs .L326 + bcs .L327 movs r3, #36 movs r1, #0 add r2, sp, #16 @@ -2035,21 +2041,21 @@ FlashEraseBlocks: mov r7, r0 ldr r0, [sp, #20] cmp r0, r3 - bcc .L297 + bcc .L298 mov r3, #-1 str r3, [r9, r6] - b .L298 -.L297: + b .L299 +.L298: ldrb r3, [fp, #2240] @ zero_extendqisi2 cmp r3, #0 add r3, r4, r0, lsl #4 it eq moveq r7, #0 ldr r3, [r3, #2108] - cbz r3, .L300 + cbz r3, .L301 uxtb r0, r0 bl FlashWaitCmdDone -.L300: +.L301: ldr r1, [sp, #20] ldr r3, [sp, #12] lsls r2, r1, #4 @@ -2059,11 +2065,11 @@ FlashEraseBlocks: str r3, [lr, #2112] ldr r3, [sp, #16] str r3, [lr, #2104] - cbz r7, .L301 + cbz r7, .L302 add r3, r6, #36 add r3, r3, r9 str r3, [lr, #2112] -.L301: +.L302: add r1, r1, r4 add r2, r2, r4 ldrb r6, [r1, #2232] @ zero_extendqisi2 @@ -2072,20 +2078,20 @@ FlashEraseBlocks: bl NandcFlashCs cmp r10, #1 mov r0, r6 - bne .L302 - ldrb r3, [fp, #144] @ zero_extendqisi2 - cbz r3, .L302 + bne .L303 + ldrb r3, [fp, #148] @ zero_extendqisi2 + cbz r3, .L303 bl flash_enter_slc_mode - b .L303 -.L302: - bl flash_exit_slc_mode + b .L304 .L303: + bl flash_exit_slc_mode +.L304: ldr r3, [sp, #20] mov r0, r6 ldr r1, [sp, #16] add r5, r5, r7 add r3, r4, r3, lsl #2 - ldr r2, [r3, #1172] + ldr r2, [r3, #1176] adds r2, r2, #0 it ne movne r2, #1 @@ -2096,57 +2102,57 @@ FlashEraseBlocks: bl FlashEraseCmd mov r0, r6 bl NandcFlashDeCs -.L298: +.L299: adds r5, r5, #1 - b .L295 -.L326: - ldr r6, .L328 + b .L296 +.L327: + ldr r6, .L329 movs r5, #0 addw r7, r6, #2100 -.L305: +.L306: ldrb r2, [r4, #2230] @ zero_extendqisi2 - ldr r3, .L328 + ldr r3, .L329 cmp r5, r2 - bcs .L327 + bcs .L328 uxtb r0, r5 bl FlashWaitCmdDone cmp r10, #1 - bne .L306 - ldrb r3, [r6, #144] @ zero_extendqisi2 - cbz r3, .L306 + bne .L307 + ldrb r3, [r6, #148] @ zero_extendqisi2 + cbz r3, .L307 lsls r3, r5, #4 ldrb r0, [r7, r3] @ zero_extendqisi2 bl flash_exit_slc_mode -.L306: +.L307: adds r5, r5, #1 - b .L305 -.L327: + b .L306 +.L328: ldr r2, [r3, #2244] - cbnz r2, .L308 -.L310: + cbnz r2, .L309 +.L311: movs r0, #0 - b .L296 -.L308: + b .L297 +.L309: ldrb r3, [r3, #2068] @ zero_extendqisi2 cmp r3, #69 - bne .L310 + bne .L311 movs r3, #0 movs r2, #36 mov r1, r3 -.L309: +.L310: cmp r3, r8 - beq .L310 + beq .L311 mul r0, r2, r3 adds r3, r3, #1 str r1, [r9, r0] - b .L309 -.L296: + b .L310 +.L297: add sp, sp, #28 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L329: +.L330: .align 2 -.L328: +.L329: .word .LANCHOR0 .fnend .size FlashEraseBlocks, .-FlashEraseBlocks @@ -2162,7 +2168,7 @@ FlashReadDpCmd: push {r4, r5, r6, r7, r8, r9, r10, lr} .save {r4, r5, r6, r7, r8, r9, r10, lr} mov r7, r0 - ldr r0, .L335 + ldr r0, .L336 mov r6, r1 uxtb r9, r2 lsr r8, r2, #8 @@ -2170,15 +2176,15 @@ FlashReadDpCmd: lsrs r5, r2, #16 ldrb r1, [r0, #64] @ zero_extendqisi2 uxtb ip, r6 - ldr r4, [r3, #12] + ldrb r3, [r3, #4] @ zero_extendqisi2 lsr lr, r6, #8 - ldrb r3, [r3, #16] @ zero_extendqisi2 - cmp r1, #1 ldr r2, [r0, #44] + cmp r1, #1 + ldr r4, [r0, r7, lsl #3] lsr r1, r6, #16 lsl r3, r3, #8 ldrb r2, [r2, #7] @ zero_extendqisi2 - bne .L331 + bne .L332 cmp r2, #1 itt eq addeq r2, r4, r3 @@ -2206,8 +2212,8 @@ FlashReadDpCmd: str r8, [r4, #2052] str r5, [r4, #2052] str r3, [r4, #2056] - b .L333 -.L331: + b .L334 +.L332: cmp r2, #1 itt eq addeq r2, r4, r3 @@ -2227,14 +2233,14 @@ FlashReadDpCmd: str r8, [r3, #2052] str r5, [r3, #2052] str r2, [r3, #2056] -.L333: +.L334: mov r0, r7 mov r1, r6 pop {r4, r5, r6, r7, r8, r9, r10, lr} b FlashSetRandomizer -.L336: +.L337: .align 2 -.L335: +.L336: .word .LANCHOR0 .fnend .size FlashReadDpCmd, .-FlashReadDpCmd @@ -2250,37 +2256,37 @@ ftl_flash_de_init: push {r3, r4, r5, lr} .save {r3, r4, r5, lr} movs r0, #0 - ldr r4, .L347 + ldr r4, .L348 bl NandcWaitFlashReady bl FlashSetReadRetryDefault ldr r0, [r4, #2248] - cbz r0, .L338 + cbz r0, .L339 movs r0, #0 bl flash_enter_slc_mode - b .L339 -.L338: - bl flash_exit_slc_mode + b .L340 .L339: + bl flash_exit_slc_mode +.L340: ldrb r3, [r4, #2252] @ zero_extendqisi2 - ldr r5, .L347 - cbz r3, .L340 + ldr r5, .L348 + cbz r3, .L341 ldrb r3, [r5, #2229] @ zero_extendqisi2 lsls r3, r3, #31 - bpl .L340 + bpl .L341 movs r0, #1 bl FlashSetInterfaceMode movs r0, #1 bl NandcSetMode movs r3, #0 strb r3, [r5, #2252] -.L340: - ldr r3, [r4, #12] +.L341: + ldr r3, [r4] movs r0, #0 str r0, [r3, #336] pop {r3, r4, r5, pc} -.L348: +.L349: .align 2 -.L347: +.L348: .word .LANCHOR0 .fnend .size ftl_flash_de_init, .-ftl_flash_de_init @@ -2294,14 +2300,13 @@ NandcRandmzSel: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L350 - add r0, r3, r0, lsl #3 - ldr r3, [r0, #12] + ldr r3, .L351 + ldr r3, [r3, r0, lsl #3] str r1, [r3, #336] bx lr -.L351: +.L352: .align 2 -.L350: +.L351: .word .LANCHOR0 .fnend .size NandcRandmzSel, .-NandcRandmzSel @@ -2320,45 +2325,45 @@ NandcTimeCfg: mov r4, r0 movs r0, #0 bl rknand_get_clk_rate - ldr r1, .L362 + ldr r1, .L363 bl __aeabi_idiv - ldr r3, .L362+4 - ldr r3, [r3, #80] + ldr r3, .L363+4 + ldr r3, [r3, #84] cmp r0, #250 - ble .L353 + ble .L354 movw r2, #8354 - b .L360 -.L353: + b .L361 +.L354: cmp r0, #220 - bgt .L361 + bgt .L362 cmp r0, #185 - ble .L356 - movw r2, #4226 - b .L360 -.L356: - cmp r0, #160 ble .L357 - movw r2, #4194 - b .L360 + movw r2, #4226 + b .L361 .L357: - cmp r4, #35 - bhi .L358 - movw r2, #4193 - b .L360 + cmp r0, #160 + ble .L358 + movw r2, #4194 + b .L361 .L358: - cmp r4, #99 - bls .L359 -.L361: - movw r2, #8322 - b .L360 + cmp r4, #35 + bhi .L359 + movw r2, #4193 + b .L361 .L359: - movw r2, #4225 + cmp r4, #99 + bls .L360 +.L362: + movw r2, #8322 + b .L361 .L360: + movw r2, #4225 +.L361: str r2, [r3, #4] pop {r4, pc} -.L363: +.L364: .align 2 -.L362: +.L363: .word 1000000 .word .LANCHOR0 .fnend @@ -2376,25 +2381,25 @@ FlashTimingCfg: sub r3, r0, #4192 subs r3, r3, #1 cmp r3, #1 - bls .L365 + bls .L366 sub r3, r0, #4224 subs r3, r3, #1 cmp r3, #1 - bls .L365 + bls .L366 movw r3, #8322 cmp r0, r3 - bne .L366 -.L365: - ldr r3, .L367 - ldr r3, [r3, #80] - str r0, [r3, #4] + bne .L367 .L366: - ldr r3, .L367+4 + ldr r3, .L368 + ldr r3, [r3, #84] + str r0, [r3, #4] +.L367: + ldr r3, .L368+4 ldrb r0, [r3, #493] @ zero_extendqisi2 b NandcTimeCfg -.L368: +.L369: .align 2 -.L367: +.L368: .word .LANCHOR0 .word .LANCHOR1 .fnend @@ -2411,20 +2416,19 @@ NandcInit: push {r3, r4, r5, lr} .save {r3, r4, r5, lr} movs r1, #0 - ldr r3, .L371 + ldr r3, .L372 movs r2, #1 movs r5, #0 - str r1, [r3, #16] - str r0, [r3, #12] - str r2, [r3, #24] + stmia r3, {r0, r1} + str r2, [r3, #12] movs r2, #2 - str r0, [r3, #20] - str r2, [r3, #32] + str r0, [r3, #8] + str r2, [r3, #20] movs r2, #3 - str r0, [r3, #28] - str r0, [r3, #36] - str r0, [r3, #80] - str r2, [r3, #40] + str r0, [r3, #16] + str r0, [r3, #24] + str r0, [r3, #84] + str r2, [r3, #28] ldr r2, [r0] and r2, r2, #253952 ubfx r4, r2, #13, #1 @@ -2444,14 +2448,14 @@ NandcInit: streq r3, [r4, #2260] str r2, [r0] movs r0, #40 - ldr r3, [r4, #80] + ldr r3, [r4, #84] str r5, [r3, #336] bl NandcTimeCfg - ldr r3, [r4, #80] + ldr r3, [r4, #84] movw r2, #8322 mov r0, #36864 str r2, [r3, #344] - ldr r2, .L371+4 + ldr r2, .L372+4 str r2, [r3, #304] bl ftl_malloc str r5, [r4, #2296] @@ -2461,9 +2465,9 @@ NandcInit: add r0, r0, #32768 str r0, [r4, #2276] pop {r3, r4, r5, pc} -.L372: +.L373: .align 2 -.L371: +.L372: .word .LANCHOR0 .word 1579009 .fnend @@ -2479,26 +2483,26 @@ NandcGetTimeCfg: @ frame_needed = 0, uses_anonymous_args = 0 push {r4, r5, lr} .save {r4, r5, lr} - ldr r4, .L374 - ldr r5, [r4, #80] + ldr r4, .L375 + ldr r5, [r4, #84] ldr r5, [r5, #4] str r5, [r0] - ldr r0, [r4, #80] + ldr r0, [r4, #84] ldr r0, [r0] str r0, [r1] - ldr r1, [r4, #80] + ldr r1, [r4, #84] ldr r1, [r1, #304] str r1, [r2] - ldr r1, [r4, #80] + ldr r1, [r4, #84] ldr r2, [r1, #308] ldr r1, [r1, #344] uxtb r2, r2 orr r2, r2, r1, lsl #16 str r2, [r3] pop {r4, r5, pc} -.L375: +.L376: .align 2 -.L374: +.L375: .word .LANCHOR0 .fnend .size NandcGetTimeCfg, .-NandcGetTimeCfg @@ -2512,9 +2516,9 @@ NandcBchSel: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L384 + ldr r3, .L385 movs r1, #1 - ldr r2, [r3, #80] + ldr r2, [r3, #84] str r0, [r3, #2308] movs r3, #0 str r1, [r2, #8] @@ -2522,27 +2526,27 @@ NandcBchSel: cmp r0, r1 bfi r3, r1, #8, #8 bfc r3, #18, #1 - bne .L377 -.L380: + bne .L378 +.L381: bfc r3, #4, #1 - b .L378 -.L377: + b .L379 +.L378: cmp r0, #24 - bne .L379 + bne .L380 orr r3, r3, #16 - b .L378 -.L379: + b .L379 +.L380: cmp r0, #40 orr r3, r3, #262144 orr r3, r3, #16 - beq .L380 -.L378: + beq .L381 +.L379: orr r3, r3, #1 str r3, [r2, #12] bx lr -.L385: +.L386: .align 2 -.L384: +.L385: .word .LANCHOR0 .fnend .size NandcBchSel, .-NandcBchSel @@ -2556,12 +2560,12 @@ FlashBchSel: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L387 + ldr r3, .L388 strb r0, [r3, #2312] b NandcBchSel -.L388: +.L389: .align 2 -.L387: +.L388: .word .LANCHOR0 .fnend .size FlashBchSel, .-FlashBchSel @@ -2574,61 +2578,61 @@ ftl_flash_resume: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L397 + ldr r3, .L398 push {r4, r5, r6, lr} .save {r4, r5, r6, lr} movs r5, #0 - ldr r2, [r3, #80] + ldr r2, [r3, #84] addw r6, r3, #2068 - ldr r1, [r3, #84] + ldr r1, [r3, #88] mov r4, r3 str r1, [r2] - ldr r1, [r3, #88] - ldr r2, [r3, #80] - str r1, [r2, #4] ldr r1, [r3, #92] - str r1, [r2, #8] + ldr r2, [r3, #84] + str r1, [r2, #4] ldr r1, [r3, #96] - str r1, [r2, #12] + str r1, [r2, #8] ldr r1, [r3, #100] - str r1, [r2, #304] + str r1, [r2, #12] ldr r1, [r3, #104] - str r1, [r2, #308] + str r1, [r2, #304] ldr r1, [r3, #108] - str r1, [r2, #336] + str r1, [r2, #308] ldr r1, [r3, #112] + str r1, [r2, #336] + ldr r1, [r3, #116] str r1, [r2, #344] -.L391: +.L392: ldrb r3, [r6, r5, lsl #3] @ zero_extendqisi2 subs r3, r3, #1 uxtb r3, r3 cmp r3, #253 - bhi .L390 + bhi .L391 uxtb r0, r5 bl FlashReset -.L390: +.L391: adds r5, r5, #1 cmp r5, #4 - bne .L391 + bne .L392 ldrb r3, [r4, #2252] @ zero_extendqisi2 - ldr r5, .L397 - cbz r3, .L392 + ldr r5, .L398 + cbz r3, .L393 movs r0, #1 bl NandcSetMode ldrb r0, [r5, #2229] @ zero_extendqisi2 bl FlashSetInterfaceMode ldrb r0, [r5, #2229] @ zero_extendqisi2 bl NandcSetMode - ldrb r0, [r5, #101] @ zero_extendqisi2 + ldrb r0, [r5, #105] @ zero_extendqisi2 bl NandcSetDdrPara -.L392: +.L393: ldr r3, [r4, #44] pop {r4, r5, r6, lr} ldrb r0, [r3, #20] @ zero_extendqisi2 b FlashBchSel -.L398: +.L399: .align 2 -.L397: +.L398: .word .LANCHOR0 .fnend .size ftl_flash_resume, .-ftl_flash_resume @@ -2710,7 +2714,7 @@ NandcSendDumpDataStart: ldr r2, [r0, #16] .pad #8 sub sp, sp, #8 - ldr r3, .L404 + ldr r3, .L405 str r2, [sp, #4] ldr r2, [sp, #4] bic r2, r2, #4 @@ -2723,9 +2727,9 @@ NandcSendDumpDataStart: add sp, sp, #8 @ sp needed bx lr -.L405: +.L406: .align 2 -.L404: +.L405: .word 538969130 .fnend .size NandcSendDumpDataStart, .-NandcSendDumpDataStart @@ -2741,12 +2745,12 @@ NandcSendDumpDataDone: @ link register save eliminated. .pad #8 sub sp, sp, #8 -.L407: +.L408: ldr r3, [r0, #8] str r3, [sp, #4] ldr r3, [sp, #4] lsls r3, r3, #11 - bpl .L407 + bpl .L408 add sp, sp, #8 @ sp needed bx lr @@ -2768,54 +2772,54 @@ NandcXferStart: mov r6, r1 ldr r1, [sp, #60] ldr fp, [sp, #56] - cbnz r1, .L424 + cbnz r1, .L425 adds r1, fp, #0 it ne movne r1, #1 - b .L411 -.L424: + b .L412 +.L425: movs r1, #1 -.L411: - ldr r5, .L429 +.L412: + ldr r4, .L430 mov lr, #16 - movs r4, #0 - add r0, r5, r0, lsl #3 - ldr r7, [r0, #12] - ldrb r0, [r0, #16] @ zero_extendqisi2 + movs r5, #0 + ldr r7, [r4, r0, lsl #3] + add r0, r4, r0, lsl #3 + ldrb r0, [r0, #4] @ zero_extendqisi2 ldr r8, [r7, #12] bfi r8, lr, #8, #8 - bfi r8, r4, #3, #1 - bfi r4, r6, #1, #1 + bfi r8, r5, #3, #1 + bfi r5, r6, #1, #1 bfi r8, r0, #5, #3 - orr r4, r4, #8 + orr r5, r5, #8 movs r0, #1 - bfi r4, r0, #5, #2 + bfi r5, r0, #5, #2 lsrs r3, r3, r0 - orr r4, r4, #536870912 - orr r4, r4, #1024 - bfi r4, r3, #4, #1 - ldr r3, [r5, #2260] + orr r5, r5, #536870912 + orr r5, r5, #1024 + bfi r5, r3, #4, #1 + ldr r3, [r4, #2260] cmp r3, #3 - bls .L412 + bls .L413 ldr r3, [r7, #16] str r3, [sp, #12] ldr r3, [sp, #12] bic r3, r3, #4 str r3, [sp, #12] cmp r1, #0 - beq .L413 - cbnz r6, .L414 -.L422: + beq .L414 + cbnz r6, .L415 +.L423: adds r2, r2, #1 asrs r2, r2, #1 - bfi r4, r2, #22, #6 + bfi r5, r2, #22, #6 cmp fp, #0 - beq .L415 + beq .L416 mov r0, fp - b .L416 -.L414: - ldr r3, [r5, #2308] - mov r9, r5 + b .L417 +.L415: + ldr r3, [r4, #2308] + mov r9, r4 ldr lr, [sp, #60] cmp r3, #25 ite cc @@ -2826,53 +2830,53 @@ NandcXferStart: str r3, [sp, #4] movs r3, #0 mov r0, r3 -.L418: +.L419: ldr r1, [sp, #4] cmp r0, r1 - bcs .L422 + bcs .L423 ldr r1, [sp, #60] lsr r10, r3, #2 - cbz r1, .L419 + cbz r1, .L420 ldrh r1, [lr, #2] ldrh ip, [lr], #4 orr ip, ip, r1, lsl #16 ldr r1, [r9, #2276] str ip, [r1, r10, lsl #2] - b .L420 -.L419: + b .L421 +.L420: ldr r1, [r9, #2276] mov ip, r1 mov r1, #-1 str r1, [ip, r10, lsl #2] -.L420: +.L421: ldr r1, [sp] adds r0, r0, #1 add r3, r3, r1 - b .L418 -.L415: - ldr r0, [r5, #2272] + b .L419 .L416: - ldr r3, [r5, #2276] - ubfx r9, r4, #22, #5 + ldr r0, [r4, #2272] +.L417: + ldr r3, [r4, #2276] + ubfx r9, r5, #22, #5 mov r2, r6 - str r0, [r5, #2280] + str r0, [r4, #2280] lsl r1, r9, #10 - str r3, [r5, #2284] + str r3, [r4, #2284] bl rknand_dma_map_single mov r2, r6 lsl r1, r9, #7 clz r6, r6 lsrs r6, r6, #5 - str r0, [r5, #2288] - ldr r0, [r5, #2284] + str r0, [r4, #2288] + ldr r0, [r4, #2284] bl rknand_dma_map_single movs r3, #1 - str r3, [r5, #2296] + str r3, [r4, #2296] tst fp, #3 - ldr r3, [r5, #2288] - str r0, [r5, #2292] + ldr r3, [r4, #2288] + str r0, [r4, #2292] str r3, [r7, #20] - ldr r3, [r5, #2292] + ldr r3, [r4, #2292] str r3, [r7, #24] mov r3, #0 str r3, [sp, #12] @@ -2898,20 +2902,20 @@ NandcXferStart: ldr r3, [sp, #12] orr r3, r3, #1 str r3, [sp, #12] -.L413: +.L414: ldr r3, [sp, #12] str r3, [r7, #16] -.L412: +.L413: str r8, [r7, #12] - str r4, [r7, #8] - orr r4, r4, #4 - str r4, [r7, #8] + str r5, [r7, #8] + orr r5, r5, #4 + str r5, [r7, #8] add sp, sp, #20 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L430: +.L431: .align 2 -.L429: +.L430: .word .LANCHOR0 .fnend .size NandcXferStart, .-NandcXferStart @@ -2927,14 +2931,14 @@ Ftl_log2: @ link register save eliminated. movs r1, #0 movs r2, #1 -.L432: +.L433: cmp r2, r0 uxth r3, r1 add r1, r1, #1 - bhi .L434 + bhi .L435 lsls r2, r2, #1 - b .L432 -.L434: + b .L433 +.L435: subs r0, r3, #1 uxth r0, r0 bx lr @@ -2963,7 +2967,7 @@ FtlSysBlkNumInit: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L438 + ldr r3, .L439 cmp r0, #23 it ls movls r0, #24 @@ -2979,9 +2983,9 @@ FtlSysBlkNumInit: subs r2, r1, r2 str r2, [r3, #2332] bx lr -.L439: +.L440: .align 2 -.L438: +.L439: .word .LANCHOR0 .fnend .size FtlSysBlkNumInit, .-FtlSysBlkNumInit @@ -3000,7 +3004,7 @@ FtlConstantsInit: sub sp, sp, #20 ldrh r1, [r0, #14] mov r5, r0 - ldr r4, .L468 + ldr r4, .L469 ldrh lr, [r0, #8] str r1, [sp] ldrh r1, [sp] @@ -3012,17 +3016,17 @@ FtlConstantsInit: strh lr, [r4, #2340] @ movhi strh r2, [r4, #2342] @ movhi strh r3, [r4, #2344] @ movhi -.L441: +.L442: strb r1, [r1, r0] adds r1, r1, #1 cmp r1, #32 - bne .L441 + bne .L442 ldrh r0, [r5, #14] ldrh r1, [r5, #20] cmp r1, r0, lsr #8 - bcs .L442 + bcs .L443 uxtb r10, r3 - ldr r9, .L468+4 + ldr r9, .L469+4 lsl r1, r10, #1 uxtb r1, r1 str r1, [sp, #8] @@ -3030,9 +3034,9 @@ FtlConstantsInit: muls r1, r3, r1 str r1, [sp, #4] movs r1, #0 -.L443: +.L444: cmp r1, r3 - bcs .L445 + bcs .L446 ldr r6, [sp, #4] rsb ip, r3, r1 uxtb r0, r1 @@ -3042,10 +3046,10 @@ FtlConstantsInit: str r6, [sp, #12] movs r6, #0 mov r8, r6 -.L446: +.L447: cmp r8, r2 add r6, r6, r3 - bcs .L467 + bcs .L468 ldr r7, [sp, #12] add fp, r0, r10 strb r0, [ip, r6] @@ -3054,35 +3058,35 @@ FtlConstantsInit: ldr r7, [sp, #8] add r0, r0, r7 uxtb r0, r0 - b .L446 -.L467: + b .L447 +.L468: adds r1, r1, #1 - b .L443 -.L445: + b .L444 +.L446: lsls r2, r2, #1 strh r2, [r4, #2342] @ movhi ldr r2, [sp] lsrs r7, r2, #1 strh r7, [r4, #2330] @ movhi -.L442: +.L443: cmp lr, #1 mov r2, #5 strh r2, [r4, #2380] @ movhi mov r2, #0 strh r2, [r4, #2382] @ movhi it eq - ldreq r2, .L468 - ldrb r9, [r4] @ zero_extendqisi2 + ldreq r2, .L469 + ldrb r9, [r4, #32] @ zero_extendqisi2 it eq strheq lr, [r2, #2380] @ movhi mov r2, #4352 strh r2, [r4, #2384] @ movhi cmp r9, #0 - beq .L448 - ldr r2, .L468 + beq .L449 + ldr r2, .L469 mov r1, #384 strh r1, [r2, #2384] @ movhi -.L448: +.L449: ldrh r7, [r4, #2342] ldrh r6, [r4, #2330] ldrh r8, [r5, #16] @@ -3106,7 +3110,7 @@ FtlConstantsInit: uxth r3, r3 strh r3, [r4, #2398] @ movhi it hi - ldrhi r2, .L468 + ldrhi r2, .L469 lsr r3, r3, #8 strh r3, [r4, #2400] @ movhi ldrh r3, [r5, #26] @@ -3123,7 +3127,7 @@ FtlConstantsInit: strh r0, [r4, #2396] @ movhi ldrh r0, [r4, #2384] muls r5, r7, r5 - ldr r3, .L468 + ldr r3, .L469 lsls r0, r0, #3 mul r1, r1, fp str r3, [sp] @@ -3140,14 +3144,14 @@ FtlConstantsInit: strhhi r0, [r3, #2408] @ movhi strhls r2, [r3, #2408] @ movhi cmp r9, #0 - beq .L452 + beq .L453 mov r3, #640 strh r3, [r4, #2384] @ movhi -.L452: +.L453: ldrh r3, [r4, #2384] lsls r6, r6, #6 mov r1, r7 - ldr r5, .L468 + ldr r5, .L469 asr r3, r3, r10 add r10, r10, #9 asr r6, r6, r10 @@ -3162,7 +3166,7 @@ FtlConstantsInit: bl __aeabi_uidiv cmp r7, #1 uxtah r0, r6, r0 - ldr r6, .L468 + ldr r6, .L469 it eq addeq r0, r0, #4 str r0, [r5, #2316] @@ -3193,19 +3197,19 @@ FtlConstantsInit: adds r1, r3, #3 str r1, [r4, #2416] strh r0, [r4, #2426] @ movhi - ldrb r0, [r4, #144] @ zero_extendqisi2 - cbz r0, .L455 + ldrb r0, [r4, #148] @ zero_extendqisi2 + cbz r0, .L456 adds r2, r2, #4 adds r3, r3, #5 strh r2, [r6, #2408] @ movhi - b .L466 -.L455: - cmp r1, #7 - bhi .L456 - movs r3, #8 -.L466: - str r3, [r6, #2416] + b .L467 .L456: + cmp r1, #7 + bhi .L457 + movs r3, #8 +.L467: + str r3, [r6, #2416] +.L457: ldrh r2, [r4, #2328] movs r3, #0 strh r3, [r4, #2432] @ movhi @@ -3217,14 +3221,14 @@ FtlConstantsInit: cmp r5, r7, lsl #9 ittt cc movcc r2, #1 - ldrcc r3, .L468 + ldrcc r3, .L469 strhcc r2, [r3, #2432] @ movhi add sp, sp, #20 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L469: +.L470: .align 2 -.L468: +.L469: .word .LANCHOR0 .word .LANCHOR0+2348 .fnend @@ -3239,26 +3243,26 @@ IsBlkInVendorPart: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L477 + ldr r2, .L478 ldrh r3, [r2, #2434] - cbz r3, .L476 + cbz r3, .L477 ldr r3, [r2, #2436] ldrh r2, [r2, #2408] add r2, r3, r2, lsl #1 -.L472: +.L473: cmp r3, r2 - beq .L476 + beq .L477 ldrh r1, [r3], #2 cmp r1, r0 - bne .L472 + bne .L473 movs r0, #1 bx lr -.L476: +.L477: movs r0, #0 bx lr -.L478: +.L479: .align 2 -.L477: +.L478: .word .LANCHOR0 .fnend .size IsBlkInVendorPart, .-IsBlkInVendorPart @@ -3271,34 +3275,34 @@ FtlCacheMetchLpa: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L487 + ldr r2, .L488 push {r4, r5, r6, lr} .save {r4, r5, r6, lr} ldr r3, [r2, #2440] - cbz r3, .L486 + cbz r3, .L487 ldr r5, [r2, #2444] movs r6, #36 movs r2, #0 -.L482: +.L483: mla r4, r6, r2, r5 ldr r4, [r4, #16] cmp r4, r0 - bcc .L481 + bcc .L482 cmp r4, r1 - bls .L484 -.L481: + bls .L485 +.L482: adds r2, r2, #1 cmp r2, r3 - bne .L482 -.L486: + bne .L483 +.L487: movs r0, #0 pop {r4, r5, r6, pc} -.L484: +.L485: movs r0, #1 pop {r4, r5, r6, pc} -.L488: +.L489: .align 2 -.L487: +.L488: .word .LANCHOR0 .fnend .size FtlCacheMetchLpa, .-FtlCacheMetchLpa @@ -3312,12 +3316,12 @@ FtlGetCap: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L490 + ldr r3, .L491 ldr r0, [r3, #2428] bx lr -.L491: +.L492: .align 2 -.L490: +.L491: .word .LANCHOR0 .fnend .size FtlGetCap, .-FtlGetCap @@ -3331,12 +3335,12 @@ FtlGetCapacity: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L493 + ldr r3, .L494 ldr r0, [r3, #2428] bx lr -.L494: +.L495: .align 2 -.L493: +.L494: .word .LANCHOR0 .fnend .size FtlGetCapacity, .-FtlGetCapacity @@ -3350,12 +3354,12 @@ ftl_get_density: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L496 + ldr r3, .L497 ldr r0, [r3, #2428] bx lr -.L497: +.L498: .align 2 -.L496: +.L497: .word .LANCHOR0 .fnend .size ftl_get_density, .-ftl_get_density @@ -3369,12 +3373,12 @@ FtlGetLpn: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L499 + ldr r3, .L500 ldr r0, [r3, #2448] bx lr -.L500: +.L501: .align 2 -.L499: +.L500: .word .LANCHOR0 .fnend .size FtlGetLpn, .-FtlGetLpn @@ -3391,7 +3395,7 @@ FtlBbmMapBadBlock: .save {r4, r5, r6, r7, lr} .pad #12 mov r6, r0 - ldr r5, .L502 + ldr r5, .L503 ldrh r4, [r5, #2386] mov r1, r4 bl __aeabi_uidiv @@ -3407,7 +3411,7 @@ FtlBbmMapBadBlock: lsls r1, r1, r0 ldr r0, [r4, r7, lsl #2] orrs r1, r1, r0 - ldr r0, .L502+4 + ldr r0, .L503+4 str r1, [r4, r7, lsl #2] str r1, [sp] mov r1, r6 @@ -3419,9 +3423,9 @@ FtlBbmMapBadBlock: add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, pc} -.L503: +.L504: .align 2 -.L502: +.L503: .word .LANCHOR0 .word .LC2 .fnend @@ -3439,7 +3443,7 @@ FtlBbmIsBadBlock: push {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} mov r7, r0 - ldr r5, .L505 + ldr r5, .L506 ldrh r6, [r5, #2386] mov r1, r6 bl __aeabi_uidivmod @@ -3456,9 +3460,9 @@ FtlBbmIsBadBlock: lsrs r0, r0, r4 and r0, r0, #1 pop {r3, r4, r5, r6, r7, pc} -.L506: +.L507: .align 2 -.L505: +.L506: .word .LANCHOR0 .fnend .size FtlBbmIsBadBlock, .-FtlBbmIsBadBlock @@ -3487,28 +3491,28 @@ FtlBbtCalcTotleCnt: push {r4, r5, r6, lr} .save {r4, r5, r6, lr} movs r5, #0 - ldr r4, .L516 + ldr r4, .L517 ldrh r6, [r4, #2386] ldrh r3, [r4, #2342] mov r4, r5 muls r6, r3, r6 -.L509: +.L510: uxth r0, r5 cmp r0, r6 - bge .L515 + bge .L516 bl FtlBbmIsBadBlock - cbz r0, .L510 + cbz r0, .L511 adds r4, r4, #1 uxth r4, r4 -.L510: +.L511: adds r5, r5, #1 - b .L509 -.L515: + b .L510 +.L516: mov r0, r4 pop {r4, r5, r6, pc} -.L517: +.L518: .align 2 -.L516: +.L517: .word .LANCHOR0 .fnend .size FtlBbtCalcTotleCnt, .-FtlBbtCalcTotleCnt @@ -3524,7 +3528,7 @@ V2P_block: push {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} mov r4, r1 - ldr r6, .L519 + ldr r6, .L520 mov r7, r0 ldrh r5, [r6, #2344] mov r1, r5 @@ -3537,9 +3541,9 @@ V2P_block: smlabb r0, r3, r0, r4 uxth r0, r0 pop {r3, r4, r5, r6, r7, pc} -.L520: +.L521: .align 2 -.L519: +.L520: .word .LANCHOR0 .fnend .size V2P_block, .-V2P_block @@ -3552,7 +3556,7 @@ P2V_plane: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L522 + ldr r3, .L523 push {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r6, r0 @@ -3566,9 +3570,9 @@ P2V_plane: add r1, r1, r4 uxth r0, r1 pop {r4, r5, r6, pc} -.L523: +.L524: .align 2 -.L522: +.L523: .word .LANCHOR0 .fnend .size P2V_plane, .-P2V_plane @@ -3583,7 +3587,7 @@ P2V_block_in_plane: @ frame_needed = 0, uses_anonymous_args = 0 push {r4, lr} .save {r4, lr} - ldr r4, .L525 + ldr r4, .L526 ldrh r1, [r4, #2386] bl __aeabi_uidivmod uxth r0, r1 @@ -3591,9 +3595,9 @@ P2V_block_in_plane: bl __aeabi_uidiv uxth r0, r0 pop {r4, pc} -.L526: +.L527: .align 2 -.L525: +.L526: .word .LANCHOR0 .fnend .size P2V_block_in_plane, .-P2V_block_in_plane @@ -3608,14 +3612,14 @@ ftl_cmp_data_ver: @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. cmp r0, r1 - bls .L528 + bls .L529 subs r0, r0, r1 cmp r0, #-2147483648 ite hi movhi r0, #0 movls r0, #1 bx lr -.L528: +.L529: subs r0, r1, r0 cmp r0, #-2147483648 ite ls @@ -3634,14 +3638,14 @@ FtlFreeSysBlkQueueEmpty: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L531 + ldr r3, .L532 ldrh r0, [r3, #2518] clz r0, r0 lsrs r0, r0, #5 bx lr -.L532: +.L533: .align 2 -.L531: +.L532: .word .LANCHOR0 .fnend .size FtlFreeSysBlkQueueEmpty, .-FtlFreeSysBlkQueueEmpty @@ -3655,15 +3659,15 @@ FtlFreeSysBlkQueueFull: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L534 + ldr r3, .L535 ldrh r0, [r3, #2518] sub r3, r0, #1024 rsbs r0, r3, #0 adcs r0, r0, r3 bx lr -.L535: +.L536: .align 2 -.L534: +.L535: .word .LANCHOR0 .fnend .size FtlFreeSysBlkQueueFull, .-FtlFreeSysBlkQueueFull @@ -3683,15 +3687,15 @@ FtlFreeSysBlkQueueIn: mov r6, r0 uxth r3, r3 cmp r3, r2 - bhi .L536 - ldr r4, .L545 + bhi .L537 + ldr r4, .L546 ldrh r3, [r4, #2518] cmp r3, #1024 - beq .L536 - cbz r1, .L538 - ldr r5, .L545+4 + beq .L537 + cbz r1, .L539 + ldr r5, .L546+4 ldr r3, [r5, #224] - cbnz r3, .L538 + cbnz r3, .L539 bl P2V_block_in_plane movs r1, #1 lsls r3, r6, #10 @@ -3707,7 +3711,7 @@ FtlFreeSysBlkQueueIn: ldr r3, [r5, #236] adds r3, r3, #1 str r3, [r5, #236] -.L538: +.L539: ldrh r3, [r4, #2518] adds r3, r3, #1 strh r3, [r4, #2518] @ movhi @@ -3717,11 +3721,11 @@ FtlFreeSysBlkQueueIn: ubfx r3, r3, #0, #10 strh r3, [r4, #2516] @ movhi strh r6, [r2, #2520] @ movhi -.L536: +.L537: pop {r3, r4, r5, r6, r7, pc} -.L546: +.L547: .align 2 -.L545: +.L546: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -3735,23 +3739,23 @@ FtlFreeSysBLkSort: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L558 + ldr r3, .L559 push {r4, r5, r6, lr} .save {r4, r5, r6, lr} ldrh r4, [r3, #268] - ldr r3, .L558+4 + ldr r3, .L559+4 ldrh r2, [r3, #2518] - cbz r2, .L547 + cbz r2, .L548 movs r0, #0 ldrh r1, [r3, #2514] ldrh r2, [r3, #2516] and r4, r4, #31 mov r6, r0 -.L549: +.L550: uxth r5, r0 adds r0, r0, #1 cmp r5, r4 - bge .L557 + bge .L558 add r5, r3, r1, lsl #1 adds r1, r1, #1 ubfx r1, r1, #0, #10 @@ -3761,16 +3765,16 @@ FtlFreeSysBLkSort: movs r6, #1 add r2, r2, r6 ubfx r2, r2, #0, #10 - b .L549 -.L557: - cbz r6, .L547 + b .L550 +.L558: + cbz r6, .L548 strh r1, [r3, #2514] @ movhi strh r2, [r3, #2516] @ movhi -.L547: +.L548: pop {r4, r5, r6, pc} -.L559: +.L560: .align 2 -.L558: +.L559: .word .LANCHOR2 .word .LANCHOR0 .fnend @@ -3786,12 +3790,12 @@ FtlFreeSysBlkQueueOut: @ frame_needed = 0, uses_anonymous_args = 0 push {r4, r5, r6, r7, r8, r9, r10, lr} .save {r4, r5, r6, r7, r8, r9, r10, lr} - ldr r4, .L570 - ldr r6, .L570+4 + ldr r4, .L571 + ldr r6, .L571+4 mov r7, r4 -.L561: +.L562: ldrh r1, [r4, #2518] - cbz r1, .L562 + cbz r1, .L563 ldrh r3, [r4, #2514] subs r1, r1, #1 ldr r10, [r6, #224] @@ -3799,23 +3803,23 @@ FtlFreeSysBlkQueueOut: add r2, r4, r3, lsl #1 adds r3, r3, #1 ubfx r3, r3, #0, #10 - ldr r8, .L570+4 + ldr r8, .L571+4 ldrh r5, [r2, #2520] strh r3, [r4, #2514] @ movhi cmp r10, #0 - bne .L563 + bne .L564 mov r0, r5 bl P2V_block_in_plane lsls r3, r5, #10 mov r9, r0 ldr r0, [r6, #228] str r3, [r0, #4] - ldrb r3, [r4, #144] @ zero_extendqisi2 - cbz r3, .L564 + ldrb r3, [r4, #148] @ zero_extendqisi2 + cbz r3, .L565 mov r1, r10 movs r2, #1 bl FlashEraseBlocks -.L564: +.L565: movs r1, #1 ldr r0, [r8, #228] mov r2, r1 @@ -3827,29 +3831,29 @@ FtlFreeSysBlkQueueOut: ldr r3, [r8, #236] adds r3, r3, #1 str r3, [r8, #236] - b .L563 -.L562: - ldr r0, .L570+8 - bl printk -.L565: - b .L565 + b .L564 .L563: + ldr r0, .L571+8 + bl printk +.L566: + b .L566 +.L564: subs r3, r5, #1 movw r2, #65533 uxth r3, r3 cmp r3, r2 - bls .L566 + bls .L567 mov r1, r5 ldrh r2, [r7, #2518] - ldr r0, .L570+12 + ldr r0, .L571+12 bl printk - b .L561 -.L566: + b .L562 +.L567: mov r0, r5 pop {r4, r5, r6, r7, r8, r9, r10, pc} -.L571: +.L572: .align 2 -.L570: +.L571: .word .LANCHOR0 .word .LANCHOR2 .word .LC3 @@ -3865,35 +3869,35 @@ test_node_in_list: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L577 + ldr r3, .L578 push {r4, r5, lr} .save {r4, r5, lr} movw r5, #65535 ldr r4, [r3, #288] ldr r2, [r0] - ldr r3, .L577+4 + ldr r3, .L578+4 subs r0, r2, r4 asrs r0, r0, #1 muls r3, r0, r3 movs r0, #6 uxth r3, r3 -.L574: +.L575: cmp r1, r3 - beq .L575 + beq .L576 ldrh r3, [r2] cmp r3, r5 - beq .L576 + beq .L577 mla r2, r0, r3, r4 - b .L574 -.L575: + b .L575 +.L576: movs r0, #1 pop {r4, r5, pc} -.L576: +.L577: movs r0, #0 pop {r4, r5, pc} -.L578: +.L579: .align 2 -.L577: +.L578: .word .LANCHOR2 .word -1431655765 .fnend @@ -3910,12 +3914,12 @@ insert_data_list: push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 - ldr r5, .L595 + ldr r5, .L596 ldrh r3, [r5, #2328] cmp r3, r0 - bls .L581 + bls .L582 movs r4, #6 - ldr r2, .L595+4 + ldr r2, .L596+4 movw r3, #65535 muls r4, r0, r4 ldr lr, [r2, #288] @@ -3925,19 +3929,19 @@ insert_data_list: strh r3, [lr, r4] @ movhi ldr r3, [r2, #292] cmp r3, #0 - beq .L594 + beq .L595 ldr r8, [r2, #296] lsl fp, r0, #1 ldrh r2, [r1, #4] ldrh r6, [r8, r0, lsl #1] - cbz r2, .L592 + cbz r2, .L593 muls r6, r2, r6 - b .L583 -.L592: + b .L584 +.L593: mov r6, #-1 -.L583: +.L584: ldr ip, [r7, #288] - ldr r2, .L595+8 + ldr r2, .L596+8 rsb r9, ip, r3 ldrh r5, [r5, #2328] asr r9, r9, #1 @@ -3948,75 +3952,75 @@ insert_data_list: str r5, [sp, #4] movs r5, #0 uxth r2, r2 -.L590: +.L591: adds r5, r5, #1 ldr r7, [sp] uxth r5, r5 cmp r5, r7 - bhi .L581 + bhi .L582 cmp r0, r2 - beq .L581 + beq .L582 ldrh r7, [r3, #4] lsl r10, r2, #1 ldrh fp, [r8, r2, lsl #1] - cbz r7, .L593 + cbz r7, .L594 mul r7, r7, fp - b .L585 -.L593: + b .L586 +.L594: mov r7, #-1 -.L585: +.L586: cmp r7, r6 - bne .L586 + bne .L587 ldr r7, [sp, #4] ldrh r10, [r9, r10] ldrh r7, [r7] cmp r10, r7 - bcc .L588 - b .L587 -.L586: - bhi .L587 -.L588: + bcc .L589 + b .L588 +.L587: + bhi .L588 +.L589: ldrh r7, [r3] movw r10, #65535 cmp r7, r10 - bne .L589 + bne .L590 strh r2, [r1, #2] @ movhi strh r0, [r3] @ movhi - ldr r3, .L595+4 + ldr r3, .L596+4 str r1, [r3, #300] - b .L581 -.L589: + b .L582 +.L590: movs r3, #6 mov r2, r7 mla r3, r3, r7, ip - b .L590 -.L587: + b .L591 +.L588: strh r2, [lr, r4] @ movhi ldrh r2, [r3, #2] strh r2, [r1, #2] @ movhi - ldr r2, .L595+4 + ldr r2, .L596+4 ldr r4, [r2, #292] cmp r3, r4 - bne .L591 + bne .L592 strh r0, [r3, #2] @ movhi -.L594: +.L595: str r1, [r2, #292] - b .L581 -.L591: + b .L582 +.L592: ldrh r4, [r3, #2] ldr r1, [r2, #288] movs r2, #6 muls r2, r4, r2 strh r0, [r1, r2] @ movhi strh r0, [r3, #2] @ movhi -.L581: +.L582: movs r0, #0 add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L596: +.L597: .align 2 -.L595: +.L596: .word .LANCHOR0 .word .LANCHOR2 .word -1431655765 @@ -4034,14 +4038,14 @@ INSERT_DATA_LIST: push {r3, lr} .save {r3, lr} bl insert_data_list - ldr r2, .L598 + ldr r2, .L599 ldrh r3, [r2, #304] adds r3, r3, #1 strh r3, [r2, #304] @ movhi pop {r3, pc} -.L599: +.L600: .align 2 -.L598: +.L599: .word .LANCHOR2 .fnend .size INSERT_DATA_LIST, .-INSERT_DATA_LIST @@ -4058,9 +4062,9 @@ insert_free_list: .save {r4, r5, r6, r7, r8, r9, r10, lr} movw r5, #65535 cmp r0, r5 - beq .L601 + beq .L602 movs r1, #6 - ldr r2, .L608 + ldr r2, .L609 mul lr, r1, r0 ldr ip, [r2, #288] mov r7, r2 @@ -4068,54 +4072,54 @@ insert_free_list: strh r5, [r6, #2] @ movhi strh r5, [ip, lr] @ movhi ldr r3, [r2, #308] - cbz r3, .L607 + cbz r3, .L608 ldr r8, [r2, #288] ldr r9, [r2, #232] rsb r4, r8, r3 - ldr r2, .L608+4 + ldr r2, .L609+4 asrs r4, r4, #1 ldrh r10, [r9, r0, lsl #1] muls r4, r2, r4 uxth r2, r4 -.L605: +.L606: ldrh r4, [r9, r2, lsl #1] cmp r4, r10 - bcs .L603 + bcs .L604 ldrh r4, [r3] cmp r4, r5 - bne .L604 + bne .L605 strh r2, [r6, #2] @ movhi strh r0, [r3] @ movhi - b .L601 -.L604: + b .L602 +.L605: mla r3, r1, r4, r8 mov r2, r4 - b .L605 -.L603: + b .L606 +.L604: ldrh r1, [r3, #2] strh r1, [r6, #2] @ movhi strh r2, [ip, lr] @ movhi ldr r1, [r7, #308] - ldr r2, .L608 + ldr r2, .L609 cmp r3, r1 - bne .L606 + bne .L607 strh r0, [r3, #2] @ movhi -.L607: +.L608: str r6, [r2, #308] - b .L601 -.L606: + b .L602 +.L607: ldrh r4, [r3, #2] ldr r1, [r2, #288] movs r2, #6 muls r2, r4, r2 strh r0, [r1, r2] @ movhi strh r0, [r3, #2] @ movhi -.L601: +.L602: movs r0, #0 pop {r4, r5, r6, r7, r8, r9, r10, pc} -.L609: +.L610: .align 2 -.L608: +.L609: .word .LANCHOR2 .word -1431655765 .fnend @@ -4132,14 +4136,14 @@ INSERT_FREE_LIST: push {r3, lr} .save {r3, lr} bl insert_free_list - ldr r2, .L611 + ldr r2, .L612 ldrh r3, [r2, #312] adds r3, r3, #1 strh r3, [r2, #312] @ movhi pop {r3, pc} -.L612: +.L613: .align 2 -.L611: +.L612: .word .LANCHOR2 .fnend .size INSERT_FREE_LIST, .-INSERT_FREE_LIST @@ -4155,7 +4159,7 @@ List_remove_node: push {r4, r5, r6, r7, lr} .save {r4, r5, r6, r7, lr} movs r4, #6 - ldr r7, .L618 + ldr r7, .L619 movw r6, #65535 muls r1, r4, r1 ldr r3, [r0] @@ -4163,7 +4167,7 @@ List_remove_node: adds r5, r2, r1 cmp r5, r3 ldrh r3, [r2, r1] - bne .L614 + bne .L615 cmp r3, r6 ittee eq moveq r3, #0 @@ -4172,17 +4176,17 @@ List_remove_node: strne r3, [r0] it ne strhne r6, [r3, #2] @ movhi - b .L616 -.L614: + b .L617 +.L615: cmp r3, r6 ldrh r0, [r5, #2] - bne .L617 + bne .L618 cmp r0, r3 - beq .L616 + beq .L617 muls r0, r4, r0 strh r3, [r2, r0] @ movhi - b .L616 -.L617: + b .L617 +.L618: mla r3, r4, r3, r2 strh r0, [r3, #2] @ movhi ldrh r6, [r5, #2] @@ -4190,15 +4194,15 @@ List_remove_node: ldr r3, [r7, #288] muls r4, r6, r4 strh r0, [r3, r4] @ movhi -.L616: +.L617: movw r3, #65535 movs r0, #0 strh r3, [r2, r1] @ movhi strh r3, [r5, #2] @ movhi pop {r4, r5, r6, r7, pc} -.L619: +.L620: .align 2 -.L618: +.L619: .word .LANCHOR2 .fnend .size List_remove_node, .-List_remove_node @@ -4214,16 +4218,16 @@ List_pop_index_node: push {r4, r5, r6, lr} .save {r4, r5, r6, lr} ldr r3, [r0] - cbz r3, .L626 - ldr r2, .L627 + cbz r3, .L627 + ldr r2, .L628 movs r6, #6 movw r5, #65535 ldr r4, [r2, #288] -.L622: - cbnz r1, .L623 -.L625: +.L623: + cbnz r1, .L624 +.L626: subs r4, r3, r4 - ldr r3, .L627+4 + ldr r3, .L628+4 asrs r4, r4, #1 muls r4, r3, r4 uxth r4, r4 @@ -4231,20 +4235,20 @@ List_pop_index_node: bl List_remove_node mov r0, r4 pop {r4, r5, r6, pc} -.L623: +.L624: ldrh r2, [r3] cmp r2, r5 - beq .L625 + beq .L626 subs r1, r1, #1 mla r3, r6, r2, r4 uxth r1, r1 - b .L622 -.L626: + b .L623 +.L627: movw r0, #65535 pop {r4, r5, r6, pc} -.L628: +.L629: .align 2 -.L627: +.L628: .word .LANCHOR2 .word -1431655765 .fnend @@ -4258,36 +4262,36 @@ List_get_gc_head_node: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L636 + ldr r2, .L637 push {r4, lr} .save {r4, lr} ldr r3, [r2, #292] - cbz r3, .L634 + cbz r3, .L635 movs r4, #6 ldr r1, [r2, #288] movw r2, #65535 -.L631: - cbz r0, .L632 +.L632: + cbz r0, .L633 ldrh r3, [r3] cmp r3, r2 - beq .L634 + beq .L635 subs r0, r0, #1 mla r3, r4, r3, r1 uxth r0, r0 - b .L631 -.L634: + b .L632 +.L635: movw r0, #65535 pop {r4, pc} -.L632: +.L633: subs r3, r3, r1 - ldr r0, .L636+4 + ldr r0, .L637+4 asrs r3, r3, #1 muls r0, r3, r0 uxth r0, r0 pop {r4, pc} -.L637: +.L638: .align 2 -.L636: +.L637: .word .LANCHOR2 .word -1431655765 .fnend @@ -4304,57 +4308,57 @@ List_update_data_list: push {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} mov r5, r0 - ldr r4, .L645 + ldr r4, .L646 ldrh r3, [r4, #316] cmp r3, r0 - beq .L639 + beq .L640 ldrh r3, [r4, #364] cmp r3, r0 - beq .L639 + beq .L640 ldrh r3, [r4, #412] cmp r3, r0 - beq .L639 + beq .L640 movs r3, #6 ldr r1, [r4, #288] ldr r2, [r4, #292] muls r3, r0, r3 adds r0, r1, r3 cmp r0, r2 - beq .L639 + beq .L640 ldr r6, [r4, #296] ldrh r2, [r0, #4] ldrh r7, [r6, r5, lsl #1] - cbz r2, .L643 + cbz r2, .L644 muls r2, r7, r2 - b .L640 -.L643: + b .L641 +.L644: mov r2, #-1 -.L640: +.L641: ldrh r0, [r0, #2] movw r7, #65535 cmp r0, r7 - bne .L641 + bne .L642 ldrh r3, [r1, r3] cmp r3, r0 - beq .L639 -.L641: + beq .L640 +.L642: movs r3, #6 muls r3, r0, r3 - ldr r0, .L645+4 + ldr r0, .L646+4 asrs r7, r3, #1 add r3, r3, r1 muls r0, r7, r0 ldrh r3, [r3, #4] ldrh r0, [r6, r0, lsl #1] - cbz r3, .L644 + cbz r3, .L645 muls r3, r0, r3 - b .L642 -.L644: + b .L643 +.L645: mov r3, #-1 -.L642: +.L643: cmp r2, r3 - bcs .L639 - ldr r0, .L645+8 + bcs .L640 + ldr r0, .L646+8 mov r1, r5 bl List_remove_node ldrh r3, [r4, #304] @@ -4362,12 +4366,12 @@ List_update_data_list: subs r3, r3, #1 strh r3, [r4, #304] @ movhi bl INSERT_DATA_LIST -.L639: +.L640: movs r0, #0 pop {r3, r4, r5, r6, r7, pc} -.L646: +.L647: .align 2 -.L645: +.L646: .word .LANCHOR2 .word -1431655765 .word .LANCHOR2+292 @@ -4388,16 +4392,16 @@ ftl_map_blk_alloc_new_blk: ldrh r1, [r0, #10] mov r4, r0 ldr r2, [r0, #12] -.L648: +.L649: uxth r5, r3 cmp r5, r1 - bcs .L651 + bcs .L652 mov r7, r2 adds r3, r3, #1 ldrh r6, [r7] adds r2, r2, #2 cmp r6, #0 - bne .L648 + bne .L649 bl FtlFreeSysBlkQueueOut movw r2, #65533 subs r3, r0, #1 @@ -4405,14 +4409,14 @@ ftl_map_blk_alloc_new_blk: strh r0, [r7] @ movhi uxth r3, r3 cmp r3, r2 - bls .L649 - ldr r3, .L654 - ldr r0, .L654+4 + bls .L650 + ldr r3, .L655 + ldr r0, .L655+4 ldrh r2, [r3, #2518] bl printk +.L651: + b .L651 .L650: - b .L650 -.L649: ldr r3, [r4, #28] strh r6, [r4, #2] @ movhi adds r3, r3, #1 @@ -4421,12 +4425,12 @@ ftl_map_blk_alloc_new_blk: strh r5, [r4] @ movhi adds r3, r3, #1 strh r3, [r4, #8] @ movhi -.L651: +.L652: movs r0, #0 pop {r3, r4, r5, r6, r7, pc} -.L655: +.L656: .align 2 -.L654: +.L655: .word .LANCHOR0 .word .LC5 .fnend @@ -4443,70 +4447,70 @@ select_l2p_ram_region: push {r4, r5, r6, r7, lr} .save {r4, r5, r6, r7, lr} movs r1, #0 - ldr r3, .L670 + ldr r3, .L671 movs r4, #12 - ldr r7, .L670+4 + ldr r7, .L671+4 movw r5, #65535 ldrh r2, [r3, #2426] ldr r3, [r7, #460] -.L657: +.L658: uxth r0, r1 cmp r0, r2 - bcs .L668 + bcs .L669 adds r1, r1, #1 mla r6, r4, r1, r3 ldrh r6, [r6, #-12] cmp r6, r5 - bne .L657 - b .L658 -.L668: + bne .L658 + b .L659 +.L669: movs r1, #0 mov r6, #-2147483648 mov lr, #12 mov r0, r2 -.L660: +.L661: uxth r5, r1 cmp r5, r2 - bcs .L669 + bcs .L670 mla r4, lr, r1, r3 ldr r4, [r4, #4] cmp r4, #0 - blt .L661 + blt .L662 cmp r4, r6 itt cc movcc r6, r4 movcc r0, r5 -.L661: +.L662: adds r1, r1, #1 - b .L660 -.L669: + b .L661 +.L670: cmp r0, r2 - bcc .L658 + bcc .L659 ldrh r7, [r7, #464] movs r1, #0 mov r4, #-1 mov r0, r2 -.L663: +.L664: uxth r5, r1 cmp r5, r2 - bcs .L658 + bcs .L659 ldr r6, [r3, #4] cmp r6, r4 - bcs .L664 + bcs .L665 ldrh lr, [r3] cmp lr, r7 itt ne movne r4, r6 movne r0, r5 -.L664: +.L665: adds r1, r1, #1 adds r3, r3, #12 - b .L663 -.L658: + b .L664 +.L659: pop {r4, r5, r6, r7, pc} -.L671: +.L672: .align 2 -.L670: +.L671: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -4520,19 +4524,19 @@ FtlUpdateVaildLpn: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r1, .L679 + ldr r1, .L680 push {r4, r5, lr} .save {r4, r5, lr} ldrh r2, [r1, #466] mov r3, r1 cmp r2, #4 - bhi .L673 - cbnz r0, .L673 + bhi .L674 + cbnz r0, .L674 adds r2, r2, #1 strh r2, [r1, #466] @ movhi pop {r4, r5, pc} -.L673: - ldr r1, .L679+4 +.L674: + ldr r1, .L680+4 movs r2, #0 strh r2, [r3, #466] @ movhi movw r5, #65535 @@ -4540,21 +4544,21 @@ FtlUpdateVaildLpn: ldrh r1, [r1, #2328] ldr r2, [r3, #296] add r1, r2, r1, lsl #1 -.L674: +.L675: cmp r2, r1 - beq .L678 + beq .L679 ldrh r4, [r2], #2 cmp r4, r5 ittt ne ldrne r0, [r3, #468] addne r0, r0, r4 strne r0, [r3, #468] - b .L674 -.L678: - pop {r4, r5, pc} -.L680: - .align 2 + b .L675 .L679: + pop {r4, r5, pc} +.L681: + .align 2 +.L680: .word .LANCHOR2 .word .LANCHOR0 .fnend @@ -4570,10 +4574,10 @@ ftl_set_blk_mode: @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. lsrs r3, r0, #5 - ldr r2, .L684 + ldr r2, .L685 and r0, r0, #31 uxth r3, r3 - cbz r1, .L682 + cbz r1, .L683 ldr r1, [r2, #472] movs r2, #1 lsls r2, r2, r0 @@ -4581,7 +4585,7 @@ ftl_set_blk_mode: orrs r2, r2, r0 str r2, [r1, r3, lsl #2] bx lr -.L682: +.L683: ldr r1, [r2, #472] movs r2, #1 lsls r2, r2, r0 @@ -4589,9 +4593,9 @@ ftl_set_blk_mode: bic r0, r0, r2 str r0, [r1, r3, lsl #2] bx lr -.L685: +.L686: .align 2 -.L684: +.L685: .word .LANCHOR2 .fnend .size ftl_set_blk_mode, .-ftl_set_blk_mode @@ -4605,7 +4609,7 @@ ftl_get_blk_mode: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L687 + ldr r3, .L688 lsrs r1, r0, #5 ldr r2, [r3, #472] and r3, r0, #31 @@ -4613,9 +4617,9 @@ ftl_get_blk_mode: lsrs r0, r0, r3 and r0, r0, #1 bx lr -.L688: +.L689: .align 2 -.L687: +.L688: .word .LANCHOR2 .fnend .size ftl_get_blk_mode, .-ftl_get_blk_mode @@ -4630,16 +4634,16 @@ ftl_sb_update_avl_pages: @ frame_needed = 0, uses_anonymous_args = 0 movs r3, #0 strh r3, [r0, #4] @ movhi - ldr r3, .L698 + ldr r3, .L699 push {r4, r5, r6, r7, lr} .save {r4, r5, r6, r7, lr} adds r4, r2, #7 ldrh r5, [r3, #2320] movw r7, #65535 add r4, r0, r4, lsl #1 -.L690: +.L691: cmp r2, r5 - bcs .L696 + bcs .L697 ldrh r6, [r4, #2]! adds r2, r2, #1 cmp r6, r7 @@ -4648,16 +4652,16 @@ ftl_sb_update_avl_pages: ldrhne r6, [r0, #4] addne r6, r6, #1 strhne r6, [r0, #4] @ movhi - b .L690 -.L696: + b .L691 +.L697: ldrh r6, [r3, #2388] add r4, r0, #14 movs r2, #0 movw r7, #65535 -.L693: +.L694: uxth r3, r2 cmp r3, r5 - bcs .L697 + bcs .L698 ldrh r3, [r4, #2]! adds r2, r2, #1 cmp r3, r7 @@ -4668,12 +4672,12 @@ ftl_sb_update_avl_pages: subne r3, r3, r1 it ne strhne r3, [r0, #4] @ movhi - b .L693 -.L697: - pop {r4, r5, r6, r7, pc} -.L699: - .align 2 + b .L694 .L698: + pop {r4, r5, r6, r7, pc} +.L700: + .align 2 +.L699: .word .LANCHOR0 .fnend .size ftl_sb_update_avl_pages, .-ftl_sb_update_avl_pages @@ -4689,7 +4693,7 @@ make_superblock: push {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} movs r3, #0 - ldr r6, .L713 + ldr r6, .L714 add r7, r0, #16 mov r4, r0 mov r5, r3 @@ -4698,26 +4702,26 @@ make_superblock: ldrh r8, [r6, #2320] strh r3, [r0, #4] @ movhi strb r3, [r0, #7] -.L701: +.L702: uxth r3, r5 cmp r3, r8 - bcs .L712 + bcs .L713 ldrb r0, [r10, r5] @ zero_extendqisi2 ldrh r1, [r4] bl V2P_block strh r9, [r7] @ movhi mov fp, r0 bl FtlBbmIsBadBlock - cbnz r0, .L702 + cbnz r0, .L703 strh fp, [r7] @ movhi ldrb r3, [r4, #7] @ zero_extendqisi2 adds r3, r3, #1 strb r3, [r4, #7] -.L702: +.L703: adds r5, r5, #1 adds r7, r7, #2 - b .L701 -.L712: + b .L702 +.L713: ldrb r2, [r4, #7] @ zero_extendqisi2 ldrh r3, [r6, #2388] smulbb r3, r2, r3 @@ -4725,8 +4729,8 @@ make_superblock: movs r3, #0 strb r3, [r4, #9] ldr r3, [r6, #2244] - cbz r3, .L704 - ldr r3, .L713+4 + cbz r3, .L705 + ldr r3, .L714+4 ldrh r2, [r4] ldr r3, [r3, #232] ldrh r3, [r3, r2, lsl #1] @@ -4734,17 +4738,17 @@ make_superblock: itt ls movls r3, #1 strbls r3, [r4, #9] -.L704: - ldrb r3, [r6] @ zero_extendqisi2 - cbz r3, .L705 +.L705: + ldrb r3, [r6, #32] @ zero_extendqisi2 + cbz r3, .L706 movs r3, #1 strb r3, [r4, #9] -.L705: +.L706: movs r0, #0 pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L714: +.L715: .align 2 -.L713: +.L714: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -4761,43 +4765,43 @@ update_multiplier_value: push {r3, r4, r5, r6, r7, r8, r9, lr} .save {r3, r4, r5, r6, r7, r8, r9, lr} movs r5, #0 - ldr r3, .L724 + ldr r3, .L725 mov r7, r0 mov r4, r5 addw r6, r3, #2348 ldrh r8, [r3, #2320] ldrh r9, [r3, #2388] -.L716: +.L717: uxth r3, r5 cmp r3, r8 - bcs .L723 + bcs .L724 mov r1, r7 ldrb r0, [r6, r5] @ zero_extendqisi2 bl V2P_block bl FtlBbmIsBadBlock - cbnz r0, .L717 + cbnz r0, .L718 add r4, r4, r9 uxth r4, r4 -.L717: +.L718: adds r5, r5, #1 - b .L716 -.L723: - cbz r4, .L719 + b .L717 +.L724: + cbz r4, .L720 mov r1, r4 mov r0, #32768 bl __aeabi_idiv uxth r4, r0 -.L719: - ldr r3, .L724+4 +.L720: + ldr r3, .L725+4 movs r2, #6 movs r0, #0 ldr r3, [r3, #288] mla r7, r2, r7, r3 strh r4, [r7, #4] @ movhi pop {r3, r4, r5, r6, r7, r8, r9, pc} -.L725: +.L726: .align 2 -.L724: +.L725: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -4812,22 +4816,22 @@ GetFreeBlockMinEraseCount: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L729 + ldr r2, .L730 ldr r0, [r2, #308] - cbz r0, .L727 + cbz r0, .L728 ldr r3, [r2, #288] subs r0, r0, r3 - ldr r3, .L729+4 + ldr r3, .L730+4 asrs r0, r0, #1 muls r0, r3, r0 ldr r3, [r2, #232] uxth r0, r0 ldrh r0, [r3, r0, lsl #1] -.L727: +.L728: bx lr -.L730: +.L731: .align 2 -.L729: +.L730: .word .LANCHOR2 .word -1431655765 .fnend @@ -4841,11 +4845,11 @@ GetFreeBlockMaxEraseCount: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r1, .L739 + ldr r1, .L740 push {r4, r5, r6, r7, lr} .save {r4, r5, r6, r7, lr} ldr r3, [r1, #308] - cbz r3, .L737 + cbz r3, .L738 ldrh r2, [r1, #312] movs r6, #6 ldr r4, [r1, #288] @@ -4857,32 +4861,32 @@ GetFreeBlockMaxEraseCount: cmp r0, r2 it gt uxthgt r0, r2 - ldr r2, .L739+4 + ldr r2, .L740+4 muls r3, r2, r3 movs r2, #0 uxth r3, r3 -.L734: +.L735: uxth r5, r2 cmp r5, r0 - bcs .L736 + bcs .L737 mul r5, r6, r3 adds r2, r2, #1 ldrh r5, [r4, r5] cmp r5, r7 - bne .L738 -.L736: + bne .L739 +.L737: ldr r2, [r1, #232] ldrh r0, [r2, r3, lsl #1] pop {r4, r5, r6, r7, pc} -.L738: +.L739: mov r3, r5 - b .L734 -.L737: + b .L735 +.L738: mov r0, r3 pop {r4, r5, r6, r7, pc} -.L740: +.L741: .align 2 -.L739: +.L740: .word .LANCHOR2 .word -1431655765 .fnend @@ -4899,34 +4903,34 @@ FtlPrintInfo2buf: push {r4, r5, r6, r7, r8, r9, r10, lr} .save {r4, r5, r6, r7, r8, r9, r10, lr} mov r6, r0 - ldr r8, .L751+240 + ldr r8, .L752+240 add r4, r6, #12 - ldr r1, .L751 + ldr r1, .L752 .pad #32 sub sp, sp, #32 bl strcpy mov r0, r4 - ldr r1, .L751+4 - ldr r2, [r8, #116] + ldr r1, .L752+4 + ldr r2, [r8, #120] bl sprintf - ldr r1, .L751+8 + ldr r1, .L752+8 ldr r2, [r8, #2404] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r3, .L751+12 + ldr r3, .L752+12 ldr r3, [r3, #504] cmp r3, #1 add r4, r4, r0 - bne .L747 + bne .L748 add r0, sp, #16 add r1, sp, #20 add r2, sp, #24 add r3, sp, #28 bl NandcGetTimeCfg mov r0, r4 - ldr r1, .L751+16 - ldr r7, .L751+20 + ldr r1, .L752+16 + ldr r7, .L752+20 ldr r3, [sp, #24] ldr r2, [sp, #16] str r3, [sp] @@ -4934,279 +4938,279 @@ FtlPrintInfo2buf: str r3, [sp, #4] ldr r3, [sp, #20] bl sprintf - ldr r1, .L751+24 + ldr r1, .L752+24 add r4, r4, r0 add r5, r4, #10 mov r0, r4 bl strcpy mov r0, r5 - ldr r1, .L751+28 + ldr r1, .L752+28 ldr r2, [r8, #2448] bl sprintf - ldr r1, .L751+32 + ldr r1, .L752+32 ldr r2, [r7, #468] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L751+36 + ldr r1, .L752+36 ldr r2, [r7, #476] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L751+40 + ldr r1, .L752+40 ldr r2, [r7, #480] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L751+44 + ldr r1, .L752+44 ldr r2, [r7, #484] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L751+48 + ldr r1, .L752+48 ldr r2, [r7, #488] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L751+52 + ldr r1, .L752+52 ldr r2, [r7, #492] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L751+56 + ldr r1, .L752+56 ldr r2, [r7, #496] add r5, r5, r0 mov r0, r5 bl sprintf ldr r2, [r7, #500] - ldr r1, .L751+60 + ldr r1, .L752+60 lsrs r2, r2, #11 add r5, r5, r0 mov r0, r5 bl sprintf ldr r2, [r7, #504] - ldr r1, .L751+64 + ldr r1, .L752+64 lsrs r2, r2, #11 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L751+68 + ldr r1, .L752+68 ldr r2, [r7, #508] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L751+72 + ldr r1, .L752+72 ldr r2, [r7, #512] add r5, r5, r0 mov r0, r5 bl sprintf add r5, r5, r0 bl FtlBbtCalcTotleCnt - ldr r1, .L751+76 + ldr r1, .L752+76 ldrh r2, [r8, #2458] mov r3, r0 mov r0, r5 bl sprintf - ldr r1, .L751+80 + ldr r1, .L752+80 ldrh r2, [r7, #312] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L751+84 + ldr r1, .L752+84 ldr r2, [r7, #516] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L751+88 + ldr r1, .L752+88 ldr r2, [r7, #520] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L751+92 + ldr r1, .L752+92 ldr r2, [r7, #524] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L751+96 + ldr r1, .L752+96 ldr r2, [r7, #236] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L751+100 + ldr r1, .L752+100 ldr r2, [r7, #528] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L751+104 + ldr r1, .L752+104 ldr r2, [r7, #532] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L751+108 + ldr r1, .L752+108 ldrh r2, [r7, #270] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L751+112 + ldr r1, .L752+112 ldrh r2, [r7, #268] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L751+116 + ldr r1, .L752+116 ldr r2, [r8, #2428] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L751+120 + ldr r1, .L752+120 ldr r2, [r8, #2420] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L751+124 + ldr r1, .L752+124 ldr r2, [r8, #2316] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L751+128 + ldr r1, .L752+128 ldrh r2, [r8, #2518] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L751+132 + ldr r1, .L752+132 ldrh r2, [r8, #2328] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L751+136 + ldr r1, .L752+136 ldrh r2, [r7, #536] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L751+140 + ldr r1, .L752+140 ldr r2, [r8, #2332] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L751+144 + ldr r1, .L752+144 ldrh r2, [r7, #540] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L751+148 + ldr r1, .L752+148 ldrh r2, [r8, #2452] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L751+152 + ldr r1, .L752+152 ldrh r2, [r7, #318] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L751+156 + ldr r1, .L752+156 ldrb r2, [r7, #322] @ zero_extendqisi2 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L751+160 + ldr r1, .L752+160 ldrh r2, [r7, #316] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L751+164 + ldr r1, .L752+164 ldrb r2, [r7, #324] @ zero_extendqisi2 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L751+168 + ldr r1, .L752+168 ldrh r2, [r7, #320] add r5, r5, r0 mov r0, r5 bl sprintf ldr r3, [r7, #296] ldrh r2, [r7, #316] - ldr r1, .L751+172 + ldr r1, .L752+172 ldrh r2, [r3, r2, lsl #1] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L751+176 + ldr r1, .L752+176 ldrh r2, [r7, #366] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L751+180 + ldr r1, .L752+180 ldrb r2, [r7, #370] @ zero_extendqisi2 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L751+184 + ldr r1, .L752+184 ldrh r2, [r7, #364] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L751+188 + ldr r1, .L752+188 ldrb r2, [r7, #372] @ zero_extendqisi2 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L751+192 + ldr r1, .L752+192 ldrh r2, [r7, #368] add r5, r5, r0 mov r0, r5 bl sprintf ldr r3, [r7, #296] ldrh r2, [r7, #364] - ldr r1, .L751+196 + ldr r1, .L752+196 ldrh r2, [r3, r2, lsl #1] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L751+200 + ldr r1, .L752+200 ldrh r2, [r7, #414] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L751+204 + ldr r1, .L752+204 ldrb r2, [r7, #418] @ zero_extendqisi2 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L751+208 + ldr r1, .L752+208 ldrh r2, [r7, #412] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L751+212 + ldr r1, .L752+212 ldrb r2, [r7, #420] @ zero_extendqisi2 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L751+216 + ldr r1, .L752+216 ldrh r2, [r7, #416] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L751+220 + ldr r1, .L752+220 ldrh r2, [r7, #558] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L751+224 + ldr r1, .L752+224 ldrb r2, [r7, #562] @ zero_extendqisi2 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L751+228 + ldr r1, .L752+228 ldrh r2, [r7, #556] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L751+232 + ldr r1, .L752+232 ldrb r2, [r7, #564] @ zero_extendqisi2 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L751+236 + ldr r1, .L752+236 ldrh r2, [r7, #560] add r5, r5, r0 mov r0, r5 @@ -5214,10 +5218,10 @@ FtlPrintInfo2buf: ldr r1, [r7, #692] ldr r3, [r8, #2244] ldr r2, [r7, #604] - b .L752 -.L753: + b .L753 +.L754: .align 2 -.L751: +.L752: .word .LC6 .word .LC7 .word .LC8 @@ -5279,7 +5283,7 @@ FtlPrintInfo2buf: .word .LC62 .word .LC63 .word .LANCHOR0 -.L752: +.L753: orr r2, r3, r2, lsl #8 str r1, [sp] add r5, r5, r0 @@ -5287,48 +5291,48 @@ FtlPrintInfo2buf: mov r0, r5 str r1, [sp, #4] ldr r3, [r7, #688] - ldr r1, .L754 + ldr r1, .L755 bl sprintf - ldr r1, .L754+4 + ldr r1, .L755+4 ldr r2, [r7, #680] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L754+8 + ldr r1, .L755+8 ldr r2, [r7, #704] adds r4, r5, r0 mov r0, r4 bl sprintf - ldr r1, .L754+12 + ldr r1, .L755+12 ldrh r2, [r7, #1120] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L754+16 + ldr r1, .L755+16 ldrh r2, [r7, #1122] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L754+20 + ldr r1, .L755+20 ldr r2, [r7, #1124] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L754+24 + ldr r1, .L755+24 ldrh r2, [r7, #1128] add r4, r4, r0 mov r0, r4 bl sprintf add r4, r4, r0 bl GetFreeBlockMinEraseCount - ldr r1, .L754+28 + ldr r1, .L755+28 mov r2, r0 mov r0, r4 bl sprintf add r4, r4, r0 ldrh r0, [r7, #312] bl GetFreeBlockMaxEraseCount - ldr r1, .L754+32 + ldr r1, .L755+32 mov r2, r0 mov r0, r4 bl sprintf @@ -5336,27 +5340,27 @@ FtlPrintInfo2buf: movw r2, #65535 cmp r3, r2 add r4, r4, r0 - beq .L744 + beq .L745 ldr r2, [r7, #296] mov r0, r4 - ldr r1, .L754+36 + ldr r1, .L755+36 ldrh r2, [r2, r3, lsl #1] bl sprintf add r4, r4, r0 -.L744: +.L745: movs r0, #0 movs r5, #0 bl List_get_gc_head_node mov r9, #6 movw r10, #65535 uxth r3, r0 -.L746: +.L747: cmp r3, r10 - beq .L745 + beq .L746 ldr r2, [r7, #296] mov r0, r4 mul r8, r9, r3 - ldr r1, .L754+40 + ldr r1, .L755+40 ldrh r2, [r2, r3, lsl #1] str r2, [sp] ldr r2, [r7, #288] @@ -5373,25 +5377,25 @@ FtlPrintInfo2buf: cmp r5, #16 ldrh r3, [r3, r8] add r4, r4, r0 - bne .L746 -.L745: + bne .L747 +.L746: ldr r2, [r7, #288] movs r5, #0 ldr r3, [r7, #308] mov r9, #6 movw r10, #65535 subs r3, r3, r2 - ldr r2, .L754+44 + ldr r2, .L755+44 asrs r3, r3, #1 muls r3, r2, r3 uxth r3, r3 -.L748: +.L749: cmp r3, r10 - beq .L747 + beq .L748 mul r8, r9, r3 ldr r2, [r7, #288] mov r0, r4 - ldr r1, .L754+48 + ldr r1, .L755+48 add r2, r2, r8 ldrh r2, [r2, #4] str r2, [sp] @@ -5405,15 +5409,15 @@ FtlPrintInfo2buf: cmp r5, #4 ldrh r3, [r3, r8] add r4, r4, r0 - bne .L748 -.L747: + bne .L749 +.L748: subs r0, r4, r6 add sp, sp, #32 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, pc} -.L755: +.L756: .align 2 -.L754: +.L755: .word .LC64 .word .LC65 .word .LC66 @@ -5441,8 +5445,8 @@ ftl_proc_ftl_read: push {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r5, r0 - ldr r1, .L757 - ldr r2, .L757+4 + ldr r1, .L758 + ldr r2, .L758+4 bl sprintf adds r4, r5, r0 mov r0, r4 @@ -5450,9 +5454,9 @@ ftl_proc_ftl_read: add r0, r0, r4 subs r0, r0, r5 pop {r3, r4, r5, pc} -.L758: +.L759: .align 2 -.L757: +.L758: .word .LC76 .word .LC77 .fnend @@ -5470,27 +5474,27 @@ GetSwlReplaceBlock: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #28 sub sp, sp, #28 - ldr r4, .L787 + ldr r4, .L788 ldr r2, [r4, #524] ldr r3, [r4, #532] cmp r2, r3 - bcs .L760 - ldr r2, .L787+4 + bcs .L761 + ldr r2, .L788+4 movs r3, #0 ldr r0, [r4, #232] str r3, [r4, #516] ldrh r1, [r2, #2328] mov r5, r2 -.L761: +.L762: cmp r3, r1 - bcs .L786 + bcs .L787 ldrh r6, [r0, r3, lsl #1] adds r3, r3, #1 ldr r2, [r4, #516] add r2, r2, r6 str r2, [r4, #516] - b .L761 -.L786: + b .L762 +.L787: ldr r6, [r4, #516] mov r0, r6 bl __aeabi_uidiv @@ -5500,46 +5504,46 @@ GetSwlReplaceBlock: subs r0, r6, r0 bl __aeabi_uidiv str r0, [r4, #516] - b .L763 -.L760: + b .L764 +.L761: ldr r3, [r4, #528] cmp r2, r3 - bls .L763 - ldr r0, .L787+4 + bls .L764 + ldr r0, .L788+4 adds r3, r3, #1 str r3, [r4, #528] movs r3, #0 -.L765: +.L766: ldrh r2, [r0, #2328] cmp r3, r2 - bcs .L763 + bcs .L764 ldr r1, [r4, #232] ldrh r2, [r1, r3, lsl #1] adds r2, r2, #1 strh r2, [r1, r3, lsl #1] @ movhi adds r3, r3, #1 - b .L765 -.L763: + b .L766 +.L764: ldr r6, [r4, #532] ldr r8, [r4, #524] add r3, r6, #256 cmp r3, r8 - bls .L768 - ldr r2, .L787 + bls .L769 + ldr r2, .L788 add r3, r6, #768 ldr r2, [r2, #528] cmp r3, r2 - bls .L768 - ldr r3, .L787+4 + bls .L769 + ldr r3, .L788+4 ldr r3, [r3, #2244] - cbnz r3, .L769 -.L771: + cbnz r3, .L770 +.L772: movw r0, #65535 - b .L770 -.L769: + b .L771 +.L770: cmp r6, #40 - bhi .L771 -.L768: + bhi .L772 +.L769: ldrh r0, [r4, #312] add r0, r0, r0, lsl #1 ubfx r0, r0, #2, #16 @@ -5547,15 +5551,15 @@ GetSwlReplaceBlock: add r3, r6, #64 cmp r0, r3 mov r9, r0 - bcs .L772 + bcs .L773 cmp r6, #40 - bhi .L771 -.L772: + bhi .L772 +.L773: ldr r3, [r4, #292] - ldr r2, .L787 + ldr r2, .L788 cmp r3, #0 - beq .L771 - ldr r1, .L787+4 + beq .L772 + ldr r1, .L788+4 movw r7, #65535 ldr r0, [r2, #288] mov ip, #6 @@ -5565,68 +5569,68 @@ GetSwlReplaceBlock: mov lr, r7 str r1, [sp, #20] movs r1, #0 -.L773: +.L774: ldrh r2, [r3] cmp r2, lr str r2, [sp, #16] - beq .L775 + beq .L776 adds r1, r1, #1 ldr r2, [sp, #20] uxth r1, r1 cmp r1, r2 - bhi .L771 + bhi .L772 ldrh fp, [r3, #4] cmp fp, #0 - beq .L774 + beq .L775 subs r3, r3, r0 - ldr r2, .L787+8 + ldr r2, .L788+8 asrs r3, r3, #1 muls r3, r2, r3 uxth r3, r3 ldrh fp, [r10, r3, lsl #1] cmp fp, r6 - bls .L779 + bls .L780 cmp fp, r7 itt cc movcc r7, fp movcc r5, r3 -.L774: +.L775: ldr r3, [sp, #16] mla r3, ip, r3, r0 - b .L773 -.L779: + b .L774 +.L780: mov r5, r3 -.L775: +.L776: movw r3, #65535 cmp r5, r3 - beq .L771 + beq .L772 ldrh fp, [r10, r5, lsl #1] lsls r3, r5, #1 cmp fp, r6 - bls .L777 + bls .L778 str r3, [sp, #16] bl GetFreeBlockMinEraseCount ldr r3, [sp, #16] cmp r0, r6 it hi strhi r7, [r4, #532] -.L777: +.L778: cmp fp, r8 - bcs .L771 + bcs .L772 add r2, fp, #128 cmp r9, r2 - ble .L771 + ble .L772 add r2, fp, #256 cmp r2, r8 - bcc .L778 + bcc .L779 ldr r2, [r4, #528] add fp, fp, #768 cmp fp, r2 - bcs .L771 -.L778: + bcs .L772 +.L779: ldr r2, [r4, #296] mov r1, r5 - ldr r0, .L787+12 + ldr r0, .L788+12 ldrh r2, [r2, r3] str r2, [sp] mov r2, r8 @@ -5638,13 +5642,13 @@ GetSwlReplaceBlock: mov r0, r5 movs r3, #1 str r3, [r4, #1132] -.L770: +.L771: add sp, sp, #28 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L788: +.L789: .align 2 -.L787: +.L788: .word .LANCHOR2 .word .LANCHOR0 .word -1431655765 @@ -5664,18 +5668,18 @@ free_data_superblock: cmp r0, r2 push {r3, lr} .save {r3, lr} - beq .L790 - ldr r2, .L791 + beq .L791 + ldr r2, .L792 movs r1, #0 ldr r2, [r2, #296] strh r1, [r2, r0, lsl #1] @ movhi bl INSERT_FREE_LIST -.L790: +.L791: movs r0, #0 pop {r3, pc} -.L792: +.L793: .align 2 -.L791: +.L792: .word .LANCHOR2 .fnend .size free_data_superblock, .-free_data_superblock @@ -5688,9 +5692,9 @@ FtlGcBufInit: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L804 + ldr r2, .L805 mov ip, #36 - ldr r0, .L804+4 + ldr r0, .L805+4 movs r3, #0 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} @@ -5699,13 +5703,13 @@ FtlGcBufInit: mov r6, r0 mov r4, r2 str r3, [r2, #1136] -.L794: +.L795: ldrh r1, [r0, #2320] adds r5, r3, #1 uxth r3, r3 - ldr r8, .L804+4 + ldr r8, .L805+4 cmp r3, r1 - bcs .L802 + bcs .L803 mul r8, r7, r3 ldr r9, [r2, #1140] add r1, r9, r8 @@ -5735,15 +5739,15 @@ FtlGcBufInit: ldr r1, [r9, #4] str r1, [r3, #12] mov r3, r5 - b .L794 -.L802: - ldr r0, .L804 + b .L795 +.L803: + ldr r0, .L805 mov lr, #12 movs r5, #0 -.L798: +.L799: ldr r3, [r2, #1156] cmp r1, r3 - bcs .L803 + bcs .L804 mul r7, lr, r1 ldr r6, [r0, #1140] ldr r4, [r0, #1144] @@ -5768,12 +5772,12 @@ FtlGcBufInit: uxth r1, r1 add r3, r3, r6 str r3, [r7, #4] - b .L798 -.L803: - pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L805: - .align 2 + b .L799 .L804: + pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} +.L806: + .align 2 +.L805: .word .LANCHOR2 .word .LANCHOR0 .fnend @@ -5787,7 +5791,7 @@ FtlGcBufFree: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L813 + ldr r3, .L814 push {r4, r5, r6, r7, r8, r9, r10, lr} .save {r4, r5, r6, r7, r8, r9, r10, lr} movs r5, #0 @@ -5796,32 +5800,32 @@ FtlGcBufFree: ldr r6, [r3, #1140] mov r8, #12 mov ip, r5 -.L807: +.L808: uxth r4, r5 cmp r4, r1 - bcs .L806 + bcs .L807 mla r4, r10, r4, r0 movs r2, #0 -.L808: +.L809: uxth r3, r2 cmp r3, lr - bcs .L809 + bcs .L810 mul r3, r8, r3 ldr r7, [r4, #8] adds r2, r2, #1 add r9, r6, r3 ldr r3, [r6, r3] cmp r3, r7 - bne .L808 + bne .L809 str ip, [r9, #8] -.L809: +.L810: adds r5, r5, #1 - b .L807 -.L806: + b .L808 +.L807: pop {r4, r5, r6, r7, r8, r9, r10, pc} -.L814: +.L815: .align 2 -.L813: +.L814: .word .LANCHOR2 .fnend .size FtlGcBufFree, .-FtlGcBufFree @@ -5834,7 +5838,7 @@ FtlGcBufAlloc: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L823 + ldr r3, .L824 mov ip, #1 push {r4, r5, r6, r7, r8, r9, lr} .save {r4, r5, r6, r7, r8, r9, lr} @@ -5843,34 +5847,34 @@ FtlGcBufAlloc: mov lr, #12 ldr r6, [r3, #1140] mov r8, #36 -.L816: +.L817: uxth r2, r4 cmp r2, r1 - bcs .L822 + bcs .L823 mov r9, #0 -.L817: +.L818: uxth r3, r9 cmp r3, r5 - bcs .L818 + bcs .L819 mla r3, lr, r3, r6 add r9, r9, #1 ldr r7, [r3, #8] cmp r7, #0 - bne .L817 + bne .L818 mla r2, r8, r2, r0 ldr r7, [r3] str ip, [r3, #8] str r7, [r2, #8] ldr r3, [r3, #4] str r3, [r2, #12] -.L818: +.L819: adds r4, r4, #1 - b .L816 -.L822: - pop {r4, r5, r6, r7, r8, r9, pc} -.L824: - .align 2 + b .L817 .L823: + pop {r4, r5, r6, r7, r8, r9, pc} +.L825: + .align 2 +.L824: .word .LANCHOR2 .fnend .size FtlGcBufAlloc, .-FtlGcBufAlloc @@ -5884,24 +5888,24 @@ IsBlkInGcList: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L831 + ldr r2, .L832 ldr r3, [r2, #1160] ldrh r2, [r2, #1164] add r2, r3, r2, lsl #1 -.L826: +.L827: cmp r3, r2 - beq .L830 + beq .L831 ldrh r1, [r3], #2 cmp r1, r0 - bne .L826 + bne .L827 movs r0, #1 bx lr -.L830: +.L831: movs r0, #0 bx lr -.L832: +.L833: .align 2 -.L831: +.L832: .word .LANCHOR2 .fnend .size IsBlkInGcList, .-IsBlkInGcList @@ -5921,27 +5925,27 @@ FtlGcUpdatePage: mov r7, r1 mov r8, r2 bl P2V_block_in_plane - ldr r3, .L840 + ldr r3, .L841 movs r4, #0 ldrh r1, [r3, #1164] ldr r2, [r3, #1160] -.L834: +.L835: uxth r5, r4 cmp r5, r1 - bcs .L838 + bcs .L839 adds r4, r4, #1 add lr, r2, r4, lsl #1 ldrh lr, [lr, #-2] cmp lr, r0 - bne .L834 -.L838: + bne .L835 +.L839: cmp r5, r1 - bne .L836 + bne .L837 strh r0, [r2, r5, lsl #1] @ movhi ldrh r0, [r3, #1164] adds r0, r0, #1 strh r0, [r3, #1164] @ movhi -.L836: +.L837: ldrh r2, [r3, #1172] movs r0, #12 muls r0, r2, r0 @@ -5954,9 +5958,9 @@ FtlGcUpdatePage: adds r2, r2, #1 strh r2, [r3, #1172] @ movhi pop {r4, r5, r6, r7, r8, pc} -.L841: +.L842: .align 2 -.L840: +.L841: .word .LANCHOR2 .fnend .size FtlGcUpdatePage, .-FtlGcUpdatePage @@ -5972,51 +5976,51 @@ FtlGcRefreshOpenBlock: push {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r5, r0 - ldr r4, .L849 + ldr r4, .L850 ldrh r3, [r4, #1174] cmp r3, r0 - beq .L844 + beq .L845 ldrh r3, [r4, #1176] cmp r3, r0 - beq .L844 + beq .L845 ldrh r3, [r4, #1178] cmp r3, r0 - beq .L844 + beq .L845 ldrh r3, [r4, #1180] cmp r3, r0 - beq .L844 - ldr r0, .L849+4 + beq .L845 + ldr r0, .L850+4 mov r1, r5 bl printk ldrh r2, [r4, #1174] movw r3, #65535 cmp r2, r3 - bne .L846 + bne .L847 strh r5, [r4, #1174] @ movhi - b .L844 -.L846: + b .L845 +.L847: ldrh r2, [r4, #1176] cmp r2, r3 - bne .L847 + bne .L848 strh r5, [r4, #1176] @ movhi - b .L844 -.L847: + b .L845 +.L848: ldrh r2, [r4, #1178] cmp r2, r3 - bne .L848 + bne .L849 strh r5, [r4, #1178] @ movhi - b .L844 -.L848: + b .L845 +.L849: ldrh r2, [r4, #1180] cmp r2, r3 it eq strheq r5, [r4, #1180] @ movhi -.L844: +.L845: movs r0, #0 pop {r3, r4, r5, pc} -.L850: +.L851: .align 2 -.L849: +.L850: .word .LANCHOR2 .word .LC79 .fnend @@ -6033,54 +6037,54 @@ FtlGcRefreshBlock: push {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r5, r0 - ldr r4, .L861 + ldr r4, .L862 ldrh r3, [r4, #1174] cmp r3, r0 - beq .L859 + beq .L860 ldrh r3, [r4, #1176] cmp r3, r0 - beq .L859 + beq .L860 ldrh r3, [r4, #1178] cmp r3, r0 - beq .L859 + beq .L860 ldrh r3, [r4, #1180] cmp r3, r0 - beq .L859 - ldr r0, .L861+4 + beq .L860 + ldr r0, .L862+4 mov r1, r5 bl printk ldrh r2, [r4, #1174] movw r3, #65535 cmp r2, r3 - bne .L853 + bne .L854 strh r5, [r4, #1174] @ movhi - b .L859 -.L853: + b .L860 +.L854: ldrh r2, [r4, #1176] cmp r2, r3 - bne .L854 + bne .L855 strh r5, [r4, #1176] @ movhi - b .L859 -.L854: + b .L860 +.L855: ldrh r2, [r4, #1178] cmp r2, r3 - bne .L855 + bne .L856 strh r5, [r4, #1178] @ movhi - b .L859 -.L855: + b .L860 +.L856: ldrh r2, [r4, #1180] cmp r2, r3 - bne .L860 + bne .L861 strh r5, [r4, #1180] @ movhi -.L859: +.L860: movs r0, #0 pop {r3, r4, r5, pc} -.L860: +.L861: mov r0, #-1 pop {r3, r4, r5, pc} -.L862: +.L863: .align 2 -.L861: +.L862: .word .LANCHOR2 .word .LC79 .fnend @@ -6098,51 +6102,51 @@ FtlGcMarkBadPhyBlk: .save {r4, r5, r6, lr} mov r5, r0 bl P2V_block_in_plane - ldr r4, .L872 + ldr r4, .L873 mov r2, r5 ldrh r1, [r4, #1182] mov r6, r0 - ldr r0, .L872+4 + ldr r0, .L873+4 bl printk mov r0, r6 bl FtlGcRefreshBlock - ldr r3, .L872+8 + ldr r3, .L873+8 ldr r2, [r3, #2244] mov r3, r4 - cbz r2, .L864 + cbz r2, .L865 ldr r1, [r4, #232] ldrh r2, [r1, r6, lsl #1] cmp r2, #39 itt hi subhi r2, r2, #40 strhhi r2, [r1, r6, lsl #1] @ movhi -.L864: +.L865: ldrh r2, [r3, #1182] movs r1, #0 - ldr r4, .L872+12 -.L865: + ldr r4, .L873+12 +.L866: uxth r0, r1 cmp r0, r2 - bcs .L871 + bcs .L872 adds r1, r1, #1 add r0, r4, r1, lsl #1 ldrh r0, [r0, #-2] cmp r0, r5 - bne .L865 - b .L866 -.L871: + bne .L866 + b .L867 +.L872: cmp r2, #15 itttt ls addls r1, r2, #1 strhls r1, [r3, #1182] @ movhi addls r3, r3, r2, lsl #1 strhls r5, [r3, #1184] @ movhi -.L866: +.L867: movs r0, #0 pop {r4, r5, r6, pc} -.L873: +.L874: .align 2 -.L872: +.L873: .word .LANCHOR2 .word .LC80 .word .LANCHOR0 @@ -6160,13 +6164,13 @@ FtlGcReFreshBadBlk: @ frame_needed = 0, uses_anonymous_args = 0 push {r4, lr} .save {r4, lr} - ldr r4, .L880 + ldr r4, .L881 ldrh r3, [r4, #1182] - cbz r3, .L875 + cbz r3, .L876 ldrh r1, [r4, #1174] movw r2, #65535 cmp r1, r2 - bne .L875 + bne .L876 ldrh r2, [r4, #1218] cmp r2, r3 itt cs @@ -6180,12 +6184,12 @@ FtlGcReFreshBadBlk: ldrh r3, [r4, #1218] adds r3, r3, #1 strh r3, [r4, #1218] @ movhi -.L875: +.L876: movs r0, #0 pop {r4, pc} -.L881: +.L882: .align 2 -.L880: +.L881: .word .LANCHOR2 .fnend .size FtlGcReFreshBadBlk, .-FtlGcReFreshBadBlk @@ -6214,29 +6218,29 @@ BuildFlashLsbPageTable: push {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r4, r1 - cbnz r0, .L884 - ldr r3, .L926 -.L885: + cbnz r0, .L885 + ldr r3, .L927 +.L886: strh r0, [r3, r0, lsl #1] @ movhi adds r0, r0, #1 cmp r0, #512 - bne .L885 -.L889: + bne .L886 +.L890: movs r1, #255 - ldr r0, .L926+4 + ldr r0, .L927+4 mov r2, #2048 uxth r4, r4 bl ftl_memset movs r3, #0 - ldr r1, .L926 - ldr r0, .L926+8 - b .L886 -.L884: + ldr r1, .L927 + ldr r0, .L927+8 + b .L887 +.L885: cmp r0, #1 - bne .L887 - ldr r5, .L926 + bne .L888 + ldr r5, .L927 movs r3, #0 -.L888: +.L889: uxth r2, r3 cmp r2, #3 ite ls @@ -6253,14 +6257,14 @@ BuildFlashLsbPageTable: strh r2, [r5, r3, lsl #1] @ movhi adds r3, r3, #1 cmp r3, #512 - bne .L888 - b .L889 -.L887: + bne .L889 + b .L890 +.L888: cmp r0, #2 - bne .L890 - ldr r0, .L926 + bne .L891 + ldr r0, .L927 movs r3, #0 -.L891: +.L892: uxth r2, r3 lsls r1, r2, #1 subs r1, r1, #1 @@ -6270,14 +6274,14 @@ BuildFlashLsbPageTable: strh r2, [r0, r3, lsl #1] @ movhi adds r3, r3, #1 cmp r3, #512 - bne .L891 - b .L889 -.L890: - cmp r0, #3 bne .L892 - ldr r5, .L926 + b .L890 +.L891: + cmp r0, #3 + bne .L893 + ldr r5, .L927 movs r3, #0 -.L893: +.L894: uxth r2, r3 cmp r2, #5 ite ls @@ -6294,28 +6298,28 @@ BuildFlashLsbPageTable: strh r2, [r5, r3, lsl #1] @ movhi adds r3, r3, #1 cmp r3, #512 - bne .L893 - b .L889 -.L892: + bne .L894 + b .L890 +.L893: cmp r0, #4 mov r3, #0 - bne .L894 - ldr r2, .L926+12 - strh r3, [r2, #148] @ movhi - movs r3, #1 - strh r0, [r2, #156] @ movhi - strh r3, [r2, #150] @ movhi - movs r3, #2 + bne .L895 + ldr r2, .L927+12 strh r3, [r2, #152] @ movhi - movs r3, #3 + movs r3, #1 + strh r0, [r2, #160] @ movhi strh r3, [r2, #154] @ movhi - movs r3, #5 + movs r3, #2 + strh r3, [r2, #156] @ movhi + movs r3, #3 strh r3, [r2, #158] @ movhi + movs r3, #5 + strh r3, [r2, #162] @ movhi movs r3, #7 - strh r3, [r2, #160] @ movhi + strh r3, [r2, #164] @ movhi movs r3, #8 - strh r3, [r2, #162]! @ movhi -.L895: + strh r3, [r2, #166]! @ movhi +.L896: tst r3, #1 ite ne movne r1, #7 @@ -6325,30 +6329,30 @@ BuildFlashLsbPageTable: strh r1, [r2, #2]! @ movhi uxth r3, r3 cmp r3, #512 - bne .L895 - b .L889 -.L894: - cmp r0, #5 bne .L896 - ldr r2, .L926 -.L897: + b .L890 +.L895: + cmp r0, #5 + bne .L897 + ldr r2, .L927 +.L898: strh r3, [r2, r3, lsl #1] @ movhi adds r3, r3, #1 cmp r3, #16 - bne .L897 - ldr r2, .L926+16 -.L898: + bne .L898 + ldr r2, .L927+16 +.L899: strh r3, [r2, #2]! @ movhi adds r3, r3, #2 uxth r3, r3 cmp r3, #1008 - bne .L898 - b .L889 -.L896: - cmp r0, #6 bne .L899 - ldr r5, .L926 -.L900: + b .L890 +.L897: + cmp r0, #6 + bne .L900 + ldr r5, .L927 +.L901: uxth r2, r3 cmp r2, #5 ite ls @@ -6366,56 +6370,56 @@ BuildFlashLsbPageTable: strh r2, [r5, r3, lsl #1] @ movhi adds r3, r3, #1 cmp r3, #512 - bne .L900 - b .L889 -.L899: - cmp r0, #9 bne .L901 - ldr r2, .L926+12 + b .L890 +.L900: + cmp r0, #9 + bne .L902 + ldr r2, .L927+12 movw r1, #1021 - strh r3, [r2, #148] @ movhi + strh r3, [r2, #152] @ movhi movs r3, #1 - strh r3, [r2, #150] @ movhi + strh r3, [r2, #154] @ movhi movs r3, #2 - strh r3, [r2, #152]! @ movhi + strh r3, [r2, #156]! @ movhi movs r3, #3 -.L902: +.L903: strh r3, [r2, #2]! @ movhi adds r3, r3, #2 uxth r3, r3 cmp r3, r1 - bne .L902 - b .L889 -.L901: - cmp r0, #10 bne .L903 - ldr r2, .L926 -.L904: + b .L890 +.L902: + cmp r0, #10 + bne .L904 + ldr r2, .L927 +.L905: strh r3, [r2, r3, lsl #1] @ movhi adds r3, r3, #1 cmp r3, #63 - bne .L904 - ldr r2, .L926+20 + bne .L905 + ldr r2, .L927+20 movw r1, #961 -.L905: +.L906: strh r3, [r2, #2]! @ movhi adds r3, r3, #2 uxth r3, r3 cmp r3, r1 - bne .L905 - b .L889 -.L903: - cmp r0, #11 bne .L906 - ldr r2, .L926 + b .L890 +.L904: + cmp r0, #11 + bne .L907 + ldr r2, .L927 movs r3, #0 -.L907: +.L908: strh r3, [r2, r3, lsl #1] @ movhi adds r3, r3, #1 cmp r3, #8 - bne .L907 - ldr r1, .L926+24 -.L908: + bne .L908 + ldr r1, .L927+24 +.L909: tst r3, #1 ite ne movne r2, #7 @@ -6425,51 +6429,51 @@ BuildFlashLsbPageTable: strh r2, [r1, #2]! @ movhi uxth r3, r3 cmp r3, #512 - bne .L908 - b .L889 -.L906: + bne .L909 + b .L890 +.L907: cmp r0, #12 - bne .L889 - ldr r3, .L926+12 + bne .L890 + ldr r3, .L927+12 movs r2, #0 - strh r2, [r3, #148] @ movhi - movs r2, #1 - strh r2, [r3, #150] @ movhi - movs r2, #2 strh r2, [r3, #152] @ movhi + movs r2, #1 + strh r2, [r3, #154] @ movhi + movs r2, #2 + strh r2, [r3, #156] @ movhi movs r2, #3 - strh r2, [r3, #154]! @ movhi + strh r2, [r3, #158]! @ movhi movs r2, #4 -.L909: +.L910: subs r1, r2, #1 add r1, r1, r2, lsr #1 adds r2, r2, #1 strh r1, [r3, #2]! @ movhi uxth r2, r2 cmp r2, #512 - bne .L909 - b .L889 -.L886: + bne .L910 + b .L890 +.L887: uxth r2, r3 cmp r2, r4 - bcs .L925 + bcs .L926 ldrh r2, [r1, r3, lsl #1] adds r3, r3, #1 add r5, r0, r2, lsl #1 strh r2, [r5, #1220] @ movhi - b .L886 -.L925: - pop {r4, r5, r6, pc} -.L927: - .align 2 + b .L887 .L926: - .word .LANCHOR0+148 + pop {r4, r5, r6, pc} +.L928: + .align 2 +.L927: + .word .LANCHOR0+152 .word .LANCHOR2+1220 .word .LANCHOR2 .word .LANCHOR0 - .word .LANCHOR0+178 - .word .LANCHOR0+272 - .word .LANCHOR0+162 + .word .LANCHOR0+182 + .word .LANCHOR0+276 + .word .LANCHOR0+166 .fnend .size BuildFlashLsbPageTable, .-BuildFlashLsbPageTable .align 1 @@ -6484,9 +6488,9 @@ FlashDieInfoInit: push {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} movs r7, #0 - ldr r3, .L942 - ldr r4, .L942+4 - ldr r6, .L942+8 + ldr r3, .L943 + ldr r4, .L943+4 + ldr r6, .L943+8 ldrh r0, [r3, #482] addw fp, r4, #2068 strb r7, [r4, #2230] @@ -6499,7 +6503,7 @@ FlashDieInfoInit: bl ftl_memset mov r1, r7 movs r2, #32 - addw r0, r4, #1172 + add r0, r4, #1176 bl ftl_memset addw r0, r4, #2100 mov r1, r7 @@ -6507,31 +6511,31 @@ FlashDieInfoInit: bl ftl_memset ldr r5, [r4, #44] add r8, r5, #1 -.L930: +.L931: mov r0, r8 add r1, fp, r7, lsl #3 ldrb r2, [r5] @ zero_extendqisi2 bl FlashMemCmp8 - ldr r10, .L942+12 - cbnz r0, .L929 + ldr r10, .L943+12 + cbnz r0, .L930 ldrb r3, [r9, #2230] @ zero_extendqisi2 add r2, r9, r3, lsl #2 - str r0, [r2, #1172] + str r0, [r2, #1176] adds r2, r3, #1 add r3, r3, r9 strb r2, [r9, #2230] strb r7, [r3, #2232] -.L929: +.L930: adds r7, r7, #1 cmp r7, #4 - bne .L930 + bne .L931 ldrb r3, [r4, #2230] @ zero_extendqisi2 - ldr r2, .L942+4 + ldr r2, .L943+4 strb r3, [r6, #3268] ldrb r3, [r5, #8] @ zero_extendqisi2 cmp r3, #2 - beq .L931 -.L935: + beq .L932 +.L936: ldrb r3, [r5, #13] @ zero_extendqisi2 ldrb r2, [r4, #2230] @ zero_extendqisi2 smulbb r2, r2, r3 @@ -6539,16 +6543,16 @@ FlashDieInfoInit: smulbb r3, r2, r3 strh r3, [r6, #3270] @ movhi pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L931: - ldr r9, [r2, #4] +.L932: + ldr r9, [r2, #36] movs r7, #0 mov fp, r2 -.L934: +.L935: mov r0, r8 add r1, r10, r7, lsl #3 ldrb r2, [r5] @ zero_extendqisi2 bl FlashMemCmp8 - cbnz r0, .L932 + cbnz r0, .L933 ldrb r0, [r5, #13] @ zero_extendqisi2 ldrh r3, [r5, #14] ldrb r2, [fp, #2230] @ zero_extendqisi2 @@ -6556,24 +6560,24 @@ FlashDieInfoInit: and r3, r3, #65280 add r1, fp, r2, lsl #2 muls r3, r0, r3 - str r3, [r1, #1172] + str r3, [r1, #1176] ldrb r0, [r5, #23] @ zero_extendqisi2 - cbz r0, .L933 + cbz r0, .L934 lsls r3, r3, #1 - str r3, [r1, #1172] -.L933: + str r3, [r1, #1176] +.L934: adds r3, r2, #1 add r2, r2, r4 strb r3, [r4, #2230] strb r7, [r2, #2232] -.L932: +.L933: adds r7, r7, #1 cmp r7, #4 - bne .L934 - b .L935 -.L943: + bne .L935 + b .L936 +.L944: .align 2 -.L942: +.L943: .word .LANCHOR1 .word .LANCHOR0 .word .LANCHOR2 @@ -6595,11 +6599,11 @@ ftl_read_flash_info: movs r2, #11 mov r4, r0 bl ftl_memset - ldr r3, .L948 + ldr r3, .L949 movs r5, #1 ldr r2, [r3, #44] ldrb r1, [r2, #9] @ zero_extendqisi2 - ldr r2, [r3, #4] + ldr r2, [r3, #36] smulbb r2, r1, r2 strh r2, [r4, #4] @ unaligned ldrb r2, [r3, #2312] @ zero_extendqisi2 @@ -6617,22 +6621,22 @@ ftl_read_flash_info: strb r2, [r4, #9] movs r2, #0 strb r2, [r4, #10] -.L945: +.L946: uxtb r1, r2 cmp r1, r0 - bcs .L947 + bcs .L948 ldrb r1, [r2, r3] @ zero_extendqisi2 adds r2, r2, #1 lsl r6, r5, r1 ldrb r1, [r4, #10] @ zero_extendqisi2 orrs r1, r1, r6 strb r1, [r4, #10] - b .L945 -.L947: - pop {r4, r5, r6, pc} -.L949: - .align 2 + b .L946 .L948: + pop {r4, r5, r6, pc} +.L950: + .align 2 +.L949: .word .LANCHOR0 .fnend .size ftl_read_flash_info, .-ftl_read_flash_info @@ -6648,9 +6652,9 @@ FtlMemInit: push {r3, r4, r5, r6, r7, r8, r9, lr} .save {r3, r4, r5, r6, r7, r8, r9, lr} mov r0, #1024 - ldr r4, .L1054 + ldr r4, .L1055 movs r6, #0 - ldr r5, .L1054+4 + ldr r5, .L1055+4 movw r3, #65535 movs r7, #12 mov r8, #36 @@ -6841,7 +6845,7 @@ FtlMemInit: str r0, [r4, #3388] mov r0, r6 bl ftl_malloc - ldr r6, .L1054+8 + ldr r6, .L1055+8 str r0, [r4, #3392] ldr r0, [r5, #2416] lsls r0, r0, #2 @@ -6875,147 +6879,147 @@ FtlMemInit: lsls r2, r2, #2 mov r1, r2 str r0, [r5, #2480] -.L952: +.L953: cmp r3, r7 - bcs .L1052 + bcs .L1053 ldr r0, [r5, #2480] adds r3, r3, #1 add r0, r0, r1 add r1, r1, r2 str r0, [r6, #4]! - b .L952 -.L1052: - ldr r2, .L1054+12 + b .L953 +.L1053: + ldr r2, .L1055+12 movs r1, #0 -.L954: +.L955: cmp r3, #8 - beq .L1053 + beq .L1054 add r0, r2, r3, lsl #2 adds r3, r3, #1 str r1, [r0, #28] - b .L954 -.L1053: + b .L955 +.L1054: ldr r2, [r4, #3368] - ldr r3, .L1054 - cbnz r2, .L956 -.L958: - ldr r1, .L1054+16 - ldr r0, .L1054+20 + ldr r3, .L1055 + cbnz r2, .L957 +.L959: + ldr r1, .L1055+16 + ldr r0, .L1055+20 bl printk mov r0, #-1 pop {r3, r4, r5, r6, r7, r8, r9, pc} -.L1055: +.L1056: .align 2 -.L1054: +.L1055: .word .LANCHOR2 .word .LANCHOR0 .word .LANCHOR0+2480 .word .LANCHOR0+2452 .word .LANCHOR3 .word .LC81 -.L956: +.L957: ldr r2, [r3, #3372] cmp r2, #0 - beq .L958 + beq .L959 ldr r2, [r3, #3388] cmp r2, #0 - beq .L958 + beq .L959 ldr r2, [r3, #3396] cmp r2, #0 - beq .L958 + beq .L959 ldr r2, [r3, #460] cmp r2, #0 - beq .L958 + beq .L959 ldr r2, [r3, #3400] cmp r2, #0 - beq .L958 + beq .L959 ldr r2, [r3, #288] cmp r2, #0 - beq .L958 + beq .L959 ldr r2, [r5, #2480] cmp r2, #0 - beq .L958 + beq .L959 ldr r3, [r3, #296] cmp r3, #0 - beq .L958 + beq .L959 ldr r2, [r4, #1160] - ldr r3, .L1056 + ldr r3, .L1057 cmp r2, #0 - beq .L958 + beq .L959 ldr r2, [r3, #1168] cmp r2, #0 - beq .L958 + beq .L959 ldr r2, [r3, #3304] cmp r2, #0 - beq .L958 + beq .L959 ldr r2, [r3, #3312] cmp r2, #0 - beq .L958 + beq .L959 ldr r2, [r3, #228] cmp r2, #0 - beq .L958 + beq .L959 ldr r2, [r3, #1152] cmp r2, #0 - beq .L958 + beq .L959 ldr r2, [r3, #3308] cmp r2, #0 - beq .L958 + beq .L959 ldr r2, [r3, #3316] cmp r2, #0 - beq .L958 + beq .L959 ldr r2, [r3, #3320] cmp r2, #0 - beq .L958 + beq .L959 ldr r3, [r3, #3324] cmp r3, #0 - beq .L958 + beq .L959 ldr r2, [r4, #1144] - ldr r3, .L1056 + ldr r3, .L1057 cmp r2, #0 - beq .L958 + beq .L959 ldr r2, [r3, #3332] cmp r2, #0 - beq .L958 + beq .L959 ldr r2, [r3, #3336] cmp r2, #0 - beq .L958 + beq .L959 ldr r2, [r3, #1140] cmp r2, #0 - beq .L958 + beq .L959 ldr r2, [r3, #3340] cmp r2, #0 - beq .L958 + beq .L959 ldr r2, [r3, #3344] cmp r2, #0 - beq .L958 + beq .L959 ldr r2, [r3, #1148] cmp r2, #0 - beq .L958 + beq .L959 ldr r2, [r3, #232] cmp r2, #0 - beq .L958 + beq .L959 ldr r3, [r3, #3356] cmp r3, #0 - beq .L958 - ldr r3, .L1056+4 + beq .L959 + ldr r3, .L1057+4 ldr r3, [r3, #2436] cmp r3, #0 - beq .L958 - ldr r3, .L1056 + beq .L959 + ldr r3, .L1057 ldr r2, [r3, #3376] cmp r2, #0 - beq .L958 + beq .L959 ldr r2, [r3, #3380] cmp r2, #0 - beq .L958 + beq .L959 ldr r3, [r3, #3384] cmp r3, #0 - beq .L958 + beq .L959 movs r0, #0 pop {r3, r4, r5, r6, r7, r8, r9, pc} -.L1057: +.L1058: .align 2 -.L1056: +.L1057: .word .LANCHOR2 .word .LANCHOR0 .fnend @@ -7032,7 +7036,7 @@ FtlBbt2Bitmap: push {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} mov r4, r0 - ldr r3, .L1063 + ldr r3, .L1064 mov r0, r1 mov r5, r1 movs r1, #0 @@ -7040,14 +7044,14 @@ FtlBbt2Bitmap: ldrh r2, [r3, #3404] lsls r2, r2, #2 bl ftl_memset - ldr r1, .L1063+4 + ldr r1, .L1064+4 subs r2, r4, #2 addw r4, r4, #1022 movw lr, #65535 -.L1060: +.L1061: ldrh r3, [r2, #2]! cmp r3, lr - beq .L1058 + beq .L1059 lsrs r0, r3, #5 and r3, r3, #31 lsl r3, r7, r3 @@ -7058,12 +7062,12 @@ FtlBbt2Bitmap: ldrh r3, [r1, #2458] add r3, r3, #1 strh r3, [r1, #2458] @ movhi - bne .L1060 -.L1058: + bne .L1061 +.L1059: pop {r3, r4, r5, r6, r7, pc} -.L1064: +.L1065: .align 2 -.L1063: +.L1064: .word .LANCHOR2 .word .LANCHOR0 .fnend @@ -7078,7 +7082,7 @@ FtlBbtMemInit: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r0, .L1066 + ldr r0, .L1067 movw r3, #65535 movs r1, #255 movs r2, #16 @@ -7087,9 +7091,9 @@ FtlBbtMemInit: movs r3, #0 strh r3, [r0, #-6] @ movhi b ftl_memset -.L1067: +.L1068: .align 2 -.L1066: +.L1067: .word .LANCHOR0 .fnend .size FtlBbtMemInit, .-FtlBbtMemInit @@ -7102,7 +7106,7 @@ FtlFreeSysBlkQueueInit: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1069 + ldr r3, .L1070 mov r2, #2048 push {r4, lr} .save {r4, lr} @@ -7116,9 +7120,9 @@ FtlFreeSysBlkQueueInit: bl ftl_memset mov r0, r4 pop {r4, pc} -.L1070: +.L1071: .align 2 -.L1069: +.L1070: .word .LANCHOR0 .fnend .size FtlFreeSysBlkQueueInit, .-FtlFreeSysBlkQueueInit @@ -7143,34 +7147,34 @@ ftl_free_no_use_map_blk: mov r0, r6 bl ftl_memset movs r1, #0 -.L1072: +.L1073: ldrh r2, [r4, #6] uxth r3, r1 cmp r2, r3 - bls .L1091 + bls .L1092 ldr r2, [r5, r3, lsl #2] movs r0, #0 ubfx r2, r2, #10, #16 -.L1073: +.L1074: ldrh lr, [r4, #10] uxth r3, r0 cmp lr, r3 - bls .L1092 + bls .L1093 ldrh lr, [r7, r3, lsl #1] cmp lr, r2 - bne .L1074 - cbz r2, .L1074 + bne .L1075 + cbz r2, .L1075 ldrh lr, [r6, r3, lsl #1] add lr, lr, #1 strh lr, [r6, r3, lsl #1] @ movhi -.L1074: +.L1075: adds r0, r0, #1 + b .L1074 +.L1093: + adds r1, r1, #1 b .L1073 .L1092: - adds r1, r1, #1 - b .L1072 -.L1091: - ldr r3, .L1095 + ldr r3, .L1096 mov r8, #0 mov r10, r8 ldrh r2, [r3, #2390] @@ -7178,30 +7182,30 @@ ftl_free_no_use_map_blk: strh r2, [r6, r3, lsl #1] @ movhi mov r2, r8 ldrh r9, [r6] -.L1077: +.L1078: ldrh r3, [r4, #10] uxth r5, r8 cmp r3, r5 - bls .L1093 + bls .L1094 ldrh r3, [r6, r5, lsl #1] lsls r1, r5, #1 cmp r9, r3 - bls .L1078 + bls .L1079 ldrh r0, [r7, r5, lsl #1] add fp, r7, r1 - cbnz r0, .L1079 - b .L1080 -.L1078: - cbnz r3, .L1080 + cbnz r0, .L1080 + b .L1081 +.L1079: + cbnz r3, .L1081 ldrh r0, [r7, r1] add fp, r7, r1 - cbz r0, .L1080 + cbz r0, .L1081 mov r5, r2 - b .L1082 -.L1079: - cbnz r3, .L1094 + b .L1083 +.L1080: + cbnz r3, .L1095 mov r9, r3 -.L1082: +.L1083: movs r1, #1 bl FtlFreeSysBlkQueueIn strh r10, [fp] @ movhi @@ -7209,19 +7213,19 @@ ftl_free_no_use_map_blk: mov r2, r5 subs r3, r3, #1 strh r3, [r4, #8] @ movhi -.L1080: +.L1081: add r8, r8, #1 - b .L1077 -.L1094: + b .L1078 +.L1095: mov r2, r5 mov r9, r3 - b .L1080 -.L1093: + b .L1081 +.L1094: mov r0, r2 pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1096: +.L1097: .align 2 -.L1095: +.L1096: .word .LANCHOR0 .fnend .size ftl_free_no_use_map_blk, .-ftl_free_no_use_map_blk @@ -7237,9 +7241,9 @@ FtlL2PDataInit: push {r3, r4, r5, r6, r7, r8, r9, lr} .save {r3, r4, r5, r6, r7, r8, r9, lr} movs r1, #0 - ldr r4, .L1101 + ldr r4, .L1102 movs r7, #0 - ldr r5, .L1101+4 + ldr r5, .L1102+4 mov r6, r7 ldr r2, [r4, #2416] mov r9, r4 @@ -7256,13 +7260,13 @@ FtlL2PDataInit: movs r5, #12 mov r2, r4 movw lr, #65535 -.L1098: +.L1099: ldrh ip, [r2, #2426] adds r0, r7, #1 uxth r7, r7 - ldr r1, .L1101 + ldr r1, .L1102 cmp ip, r7 - bls .L1100 + bls .L1101 mul r1, r5, r7 ldr ip, [r3, #460] add r8, ip, r1 @@ -7277,8 +7281,8 @@ FtlL2PDataInit: add r1, r1, r7 mov r7, r0 str r1, [ip, #8] - b .L1098 -.L1100: + b .L1099 +.L1101: movw r2, #65535 strh r2, [r3, #3410] @ movhi strh r2, [r3, #3408] @ movhi @@ -7299,9 +7303,9 @@ FtlL2PDataInit: ldr r2, [r3, #3388] str r2, [r3, #3432] pop {r3, r4, r5, r6, r7, r8, r9, pc} -.L1102: +.L1103: .align 2 -.L1101: +.L1102: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -7318,9 +7322,9 @@ FtlVariablesInit: push {r4, r5, r6, lr} .save {r4, r5, r6, lr} movs r4, #0 - ldr r6, .L1104 + ldr r6, .L1105 movw r3, #65535 - ldr r5, .L1104+4 + ldr r5, .L1105+4 mov r1, r4 ldrh r2, [r6, #2408] ldr r0, [r6, #2436] @@ -7356,9 +7360,9 @@ FtlVariablesInit: bl FtlL2PDataInit mov r0, r4 pop {r4, r5, r6, pc} -.L1105: +.L1106: .align 2 -.L1104: +.L1105: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -7375,9 +7379,9 @@ SupperBlkListInit: push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} movs r2, #6 - ldr r6, .L1117 + ldr r6, .L1118 movs r5, #0 - ldr r4, .L1117+4 + ldr r4, .L1118+4 .pad #20 sub sp, sp, #20 movs r1, #0 @@ -7394,22 +7398,22 @@ SupperBlkListInit: strh r5, [r4, #304] @ movhi strh r5, [r4, #312] @ movhi strh r5, [r4, #3272] @ movhi -.L1107: +.L1108: uxth fp, r5 ldrh r2, [r8, #2328] sxth r7, fp cmp r7, r2 - bge .L1114 - ldr r3, .L1117 + bge .L1115 + ldr r3, .L1118 movs r2, #0 mov r6, r2 ldrh ip, [r3, #2320] ldrh r3, [r3, #2388] str r3, [sp, #4] -.L1115: +.L1116: sxth r1, r2 cmp r1, ip - bge .L1116 + bge .L1117 add r1, r1, r8 str r2, [sp, #12] str ip, [sp, #8] @@ -7419,66 +7423,66 @@ SupperBlkListInit: bl FtlBbmIsBadBlock ldr ip, [sp, #8] ldr r2, [sp, #12] - cbnz r0, .L1108 + cbnz r0, .L1109 ldr r3, [sp, #4] add r6, r6, r3 uxth r6, r6 -.L1108: +.L1109: adds r2, r2, #1 - b .L1115 -.L1116: - cbz r6, .L1110 + b .L1116 +.L1117: + cbz r6, .L1111 sxth r1, r6 mov r0, #32768 bl __aeabi_idiv uxth r6, r0 - b .L1111 -.L1110: + b .L1112 +.L1111: ldr r1, [r4, #296] sxth r2, fp movw r0, #65535 strh r0, [r1, r2, lsl #1] @ movhi -.L1111: +.L1112: add r0, r7, r7, lsl #1 ldr r1, [r4, #288] - ldr r2, .L1117+4 + ldr r2, .L1118+4 add r1, r1, r0, lsl #1 strh r6, [r1, #4] @ movhi ldrh r1, [r4, #316] cmp r7, r1 - beq .L1112 + beq .L1113 ldrh r1, [r2, #364] cmp r7, r1 - beq .L1112 + beq .L1113 ldrh r1, [r2, #412] cmp r7, r1 - beq .L1112 + beq .L1113 ldr r2, [r2, #296] ldrh r2, [r2, r7, lsl #1] - cbnz r2, .L1113 + cbnz r2, .L1114 add r9, r9, #1 mov r0, fp uxth r9, r9 bl INSERT_FREE_LIST - b .L1112 -.L1113: + b .L1113 +.L1114: add r10, r10, #1 mov r0, fp uxth r10, r10 bl INSERT_DATA_LIST -.L1112: +.L1113: adds r5, r5, #1 - b .L1107 -.L1114: + b .L1108 +.L1115: movs r0, #0 strh r10, [r4, #304] @ movhi strh r9, [r4, #312] @ movhi add sp, sp, #20 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1118: +.L1119: .align 2 -.L1117: +.L1118: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -7495,9 +7499,9 @@ FtlGcPageVarInit: push {r3, r4, r5, lr} .save {r3, r4, r5, lr} movs r1, #255 - ldr r5, .L1120 + ldr r5, .L1121 movs r3, #0 - ldr r4, .L1120+4 + ldr r4, .L1121+4 ldrh r2, [r5, #2392] ldr r0, [r4, #1160] strh r3, [r4, #1164] @ movhi @@ -7512,9 +7516,9 @@ FtlGcPageVarInit: bl ftl_memset pop {r3, r4, r5, lr} b FtlGcBufInit -.L1121: +.L1122: .align 2 -.L1120: +.L1121: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -7544,13 +7548,13 @@ FlashReadIdbData: push {r3, lr} .save {r3, lr} mov r2, #2048 - ldr r1, .L1124 + ldr r1, .L1125 bl ftl_memcpy movs r0, #0 pop {r3, pc} -.L1125: +.L1126: .align 2 -.L1124: +.L1125: .word .LANCHOR2+3476 .fnend .size FlashReadIdbData, .-FlashReadIdbData @@ -7566,60 +7570,60 @@ FlashLoadPhyInfoInRam: push {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} movs r4, #0 - ldr r5, .L1138 -.L1130: + ldr r5, .L1139 +.L1131: mov r0, r5 - ldr r1, .L1138+4 + ldr r1, .L1139+4 ldrb r2, [r5, #-1] @ zero_extendqisi2 bl FlashMemCmp8 mov r6, r0 - cbnz r0, .L1127 - ldr r5, .L1138+8 + cbnz r0, .L1128 + ldr r5, .L1139+8 lsls r4, r4, #5 add r2, r5, #508 adds r7, r2, r4 - beq .L1133 + beq .L1134 add r4, r4, r5 mov r3, r0 addw r1, r5, #3260 ldrb r2, [r4, #530] @ zero_extendqisi2 - b .L1132 -.L1127: + b .L1133 +.L1128: adds r4, r4, #1 adds r5, r5, #32 cmp r4, #86 - bne .L1130 - b .L1133 -.L1137: + bne .L1131 + b .L1134 +.L1138: adds r3, r3, #1 cmp r3, #4 - beq .L1131 -.L1132: + beq .L1132 +.L1133: lsls r0, r3, #5 ldrb r0, [r0, r1] @ zero_extendqisi2 cmp r0, r2 - bne .L1137 -.L1131: - ldr r1, .L1138+12 + bne .L1138 +.L1132: + ldr r1, .L1139+12 movs r2, #32 - ldr r0, .L1138+16 + ldr r0, .L1139+16 add r1, r1, r3, lsl #5 bl ftl_memcpy mov r1, r7 movs r2, #32 - ldr r0, .L1138+20 + ldr r0, .L1139+20 bl ftl_memcpy ldrh r0, [r5, #482] bl FlashBlockAlignInit - b .L1128 -.L1133: + b .L1129 +.L1134: mov r6, #-1 -.L1128: +.L1129: mov r0, r6 pop {r3, r4, r5, r6, r7, pc} -.L1139: +.L1140: .align 2 -.L1138: +.L1139: .word .LANCHOR1+509 .word .LANCHOR0+2068 .word .LANCHOR1 @@ -7645,14 +7649,14 @@ NandcCopy1KB: ldr r6, [sp, #16] add r5, r0, #512 add r2, r2, r4, lsl #9 - bne .L1141 - cbz r3, .L1142 + bne .L1142 + cbz r3, .L1143 mov r0, r2 mov r1, r3 mov r2, #1024 bl ftl_memcpy -.L1142: - cbz r6, .L1140 +.L1143: + cbz r6, .L1141 ldrb r3, [r6, #2] @ zero_extendqisi2 lsrs r4, r4, #1 ldrb r2, [r6, #1] @ zero_extendqisi2 @@ -7666,14 +7670,14 @@ NandcCopy1KB: orr r3, r3, r2, lsl #24 str r3, [r5, r4, lsl #2] pop {r4, r5, r6, pc} -.L1141: - cbz r3, .L1145 +.L1142: + cbz r3, .L1146 mov r1, r2 mov r0, r3 mov r2, #1024 bl ftl_memcpy -.L1145: - cbz r6, .L1140 +.L1146: + cbz r6, .L1141 lsrs r4, r4, #1 add r4, r4, r4, lsl #1 lsls r4, r4, #2 @@ -7685,7 +7689,7 @@ NandcCopy1KB: lsrs r3, r3, #24 strb r2, [r6, #2] strb r3, [r6, #3] -.L1140: +.L1141: pop {r4, r5, r6, pc} .fnend .size NandcCopy1KB, .-NandcCopy1KB @@ -7701,14 +7705,14 @@ ftl_memcpy32: movs r3, #0 push {r4, lr} .save {r4, lr} -.L1157: +.L1158: cmp r3, r2 - beq .L1159 + beq .L1160 ldr r4, [r1, r3, lsl #2] str r4, [r0, r3, lsl #2] adds r3, r3, #1 - b .L1157 -.L1159: + b .L1158 +.L1160: pop {r4, pc} .fnend .size ftl_memcpy32, .-ftl_memcpy32 @@ -7735,12 +7739,12 @@ timer_get_time: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1162 + ldr r3, .L1163 ldr r0, [r3] b jiffies_to_msecs -.L1163: +.L1164: .align 2 -.L1162: +.L1163: .word jiffies .fnend .size timer_get_time, .-timer_get_time @@ -7756,20 +7760,20 @@ FlashSramLoadStore: push {r4, r5, lr} .save {r4, r5, lr} mov r5, r0 - ldr r4, .L1167 + ldr r4, .L1168 ldr r4, [r4, #1180] add r4, r4, #4096 add r1, r1, r4 - cbz r2, .L1166 + cbz r2, .L1167 mov r0, r1 mov r1, r5 -.L1166: +.L1167: mov r2, r3 pop {r4, r5, lr} b ftl_memcpy -.L1168: +.L1169: .align 2 -.L1167: +.L1168: .word .LANCHOR4 .fnend .size FlashSramLoadStore, .-FlashSramLoadStore @@ -7787,6 +7791,48 @@ FlashCs123Init: .fnend .size FlashCs123Init, .-FlashCs123Init .align 1 + .global ftl_dma32_malloc + .thumb + .thumb_func + .type ftl_dma32_malloc, %function +ftl_dma32_malloc: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + cmp r0, #8192 + push {r3, r4, r5, lr} + .save {r3, r4, r5, lr} + mov r4, r0 + ble .L1172 + pop {r3, r4, r5, lr} + b ftl_malloc +.L1172: + ldr r5, .L1174 + adds r4, r4, #63 + bic r4, r4, #63 + ldr r3, [r5, #1184] + cmp r3, r4 + bge .L1173 + mov r0, #16384 + bl ftl_malloc + mov r3, #16384 + str r3, [r5, #1184] + str r0, [r5, #1188] +.L1173: + ldr r3, [r5, #1184] + ldr r0, [r5, #1188] + subs r3, r3, r4 + str r3, [r5, #1184] + add r4, r4, r0 + str r4, [r5, #1188] + pop {r3, r4, r5, pc} +.L1175: + .align 2 +.L1174: + .word .LANCHOR4 + .fnend + .size ftl_dma32_malloc, .-ftl_dma32_malloc + .align 1 .global rk_nand_suspend .thumb .thumb_func @@ -7822,12 +7868,12 @@ rk_ftl_get_capacity: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1173 + ldr r3, .L1179 ldr r0, [r3, #2428] bx lr -.L1174: +.L1180: .align 2 -.L1173: +.L1179: .word .LANCHOR0 .fnend .size rk_ftl_get_capacity, .-rk_ftl_get_capacity @@ -7888,46 +7934,46 @@ rknand_print_hex: mov r7, r2 mov r8, r3 mov r4, r5 -.L1179: +.L1185: cmp r4, r8 - beq .L1187 - cbnz r5, .L1180 - ldr r0, .L1188 + beq .L1193 + cbnz r5, .L1186 + ldr r0, .L1194 mov r1, r9 mov r2, r6 mov r3, r4 bl printk -.L1180: +.L1186: cmp r7, #4 - ldr r0, .L1188+4 - bne .L1181 + ldr r0, .L1194+4 + bne .L1187 ldr r1, [r6, r4, lsl #2] - b .L1186 -.L1181: + b .L1192 +.L1187: cmp r7, #2 ite eq ldrsheq r1, [r6, r4, lsl #1] ldrbne r1, [r6, r4] @ zero_extendqisi2 -.L1186: +.L1192: adds r5, r5, #1 bl printk cmp r5, #15 - bls .L1184 - ldr r0, .L1188+8 + bls .L1190 + ldr r0, .L1194+8 movs r5, #0 - ldr r1, .L1188+12 + ldr r1, .L1194+12 bl printk -.L1184: +.L1190: adds r4, r4, #1 - b .L1179 -.L1187: - ldr r0, .L1188+8 - ldr r1, .L1188+12 + b .L1185 +.L1193: + ldr r0, .L1194+8 + ldr r1, .L1194+12 pop {r3, r4, r5, r6, r7, r8, r9, lr} b printk -.L1189: +.L1195: .align 2 -.L1188: +.L1194: .word .LC82 .word .LC83 .word .LC76 @@ -7946,198 +7992,196 @@ HynixGetReadRetryDefault: push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} cmp r0, #2 - ldr r7, .L1299 + ldr r7, .L1305 mov r3, #172 mov r1, #173 mov r2, #174 .pad #44 sub sp, sp, #44 mov r4, r0 - strb r3, [r7, #1214] + strb r3, [r7, #1216] mov r3, #175 - strb r0, [r7, #1210] - strb r1, [r7, #1215] - strb r2, [r7, #1216] - strb r3, [r7, #1217] - bne .L1191 + strb r0, [r7, #1212] + strb r1, [r7, #1217] + strb r2, [r7, #1218] + strb r3, [r7, #1219] + bne .L1197 movs r3, #167 - strb r3, [r7, #1214] - ldr r3, .L1299+4 + strb r3, [r7, #1216] + ldr r3, .L1305+4 movs r2, #247 movs r5, #7 strb r2, [r3, #3405] - b .L1252 -.L1191: + b .L1258 +.L1197: cmp r0, #3 - bne .L1193 + bne .L1199 movs r3, #176 - strb r3, [r7, #1214] - movs r3, #177 - strb r3, [r7, #1215] - movs r3, #178 strb r3, [r7, #1216] - movs r3, #179 + movs r3, #177 strb r3, [r7, #1217] - movs r3, #180 + movs r3, #178 strb r3, [r7, #1218] - movs r3, #181 + movs r3, #179 strb r3, [r7, #1219] - movs r3, #182 + movs r3, #180 strb r3, [r7, #1220] - movs r3, #183 - b .L1293 -.L1193: - cmp r0, #4 - bne .L1194 - movs r0, #204 - strb r1, [r7, #1219] - strb r0, [r7, #1214] - movs r0, #191 - strb r2, [r7, #1220] - strb r0, [r7, #1215] - movs r0, #170 - strb r0, [r7, #1216] - movs r0, #171 - strb r0, [r7, #1217] - movs r0, #205 - strb r0, [r7, #1218] -.L1293: - movs r5, #8 + movs r3, #181 strb r3, [r7, #1221] + movs r3, #182 + strb r3, [r7, #1222] + movs r3, #183 + b .L1299 +.L1199: + cmp r0, #4 + bne .L1200 + movs r0, #204 + strb r1, [r7, #1221] + strb r0, [r7, #1216] + movs r0, #191 + strb r2, [r7, #1222] + strb r0, [r7, #1217] + movs r0, #170 + strb r0, [r7, #1218] + movs r0, #171 + strb r0, [r7, #1219] + movs r0, #205 + strb r0, [r7, #1220] +.L1299: + movs r5, #8 + strb r3, [r7, #1223] mov r6, r5 - b .L1192 -.L1194: + b .L1198 +.L1200: cmp r0, #5 - bne .L1195 + bne .L1201 movs r3, #56 movs r5, #8 - strb r3, [r7, #1214] - movs r3, #57 - strb r3, [r7, #1215] - movs r3, #58 strb r3, [r7, #1216] - movs r3, #59 + movs r3, #57 strb r3, [r7, #1217] - b .L1252 -.L1195: + movs r3, #58 + strb r3, [r7, #1218] + movs r3, #59 + strb r3, [r7, #1219] + b .L1258 +.L1201: cmp r0, #6 - bne .L1196 + bne .L1202 movs r3, #14 movs r5, #12 - strb r3, [r7, #1214] - movs r3, #15 - strb r3, [r7, #1215] - movs r3, #16 strb r3, [r7, #1216] - movs r3, #17 + movs r3, #15 strb r3, [r7, #1217] - b .L1252 -.L1196: + movs r3, #16 + strb r3, [r7, #1218] + movs r3, #17 + strb r3, [r7, #1219] + b .L1258 +.L1202: cmp r0, #7 - bne .L1197 + bne .L1203 movs r3, #176 movs r5, #12 - strb r3, [r7, #1214] + strb r3, [r7, #1216] movs r6, #10 movs r3, #177 - strb r3, [r7, #1215] - movs r3, #178 - strb r3, [r7, #1216] - movs r3, #179 strb r3, [r7, #1217] - movs r3, #180 + movs r3, #178 strb r3, [r7, #1218] - movs r3, #181 + movs r3, #179 strb r3, [r7, #1219] - movs r3, #182 + movs r3, #180 strb r3, [r7, #1220] - movs r3, #183 + movs r3, #181 strb r3, [r7, #1221] - movs r3, #212 + movs r3, #182 strb r3, [r7, #1222] - movs r3, #213 + movs r3, #183 strb r3, [r7, #1223] - b .L1192 -.L1197: + movs r3, #212 + strb r3, [r7, #1224] + movs r3, #213 + strb r3, [r7, #1225] + b .L1198 +.L1203: cmp r0, #8 mov r5, #7 - bne .L1252 + bne .L1258 movs r3, #6 - strb r5, [r7, #1215] - strb r3, [r7, #1214] + strb r5, [r7, #1217] + strb r3, [r7, #1216] movs r5, #50 movs r3, #9 - strb r0, [r7, #1216] - strb r3, [r7, #1217] + strb r0, [r7, #1218] + strb r3, [r7, #1219] movs r6, #5 movs r3, #10 - strb r3, [r7, #1218] - b .L1192 -.L1252: + strb r3, [r7, #1220] + b .L1198 +.L1258: movs r6, #4 -.L1192: +.L1198: subs r3, r4, #1 cmp r3, #1 - bhi .L1290 - ldr r1, .L1299+8 - mov r10, #0 -.L1198: - ldrb r3, [r7, #2230] @ zero_extendqisi2 - uxtb r8, r10 - ldr r2, .L1299 - cmp r3, r8 - bls .L1205 - add r8, r8, r2 - addw fp, r2, #1213 - ldrb r3, [r8, #2232] @ zero_extendqisi2 - add r4, r2, r3, lsl #6 - add r3, r2, r3, lsl #3 - addw r4, r4, #1230 + bhi .L1296 + mov fp, #0 +.L1204: + ldrb r1, [r7, #2230] @ zero_extendqisi2 + uxtb r2, fp + ldr r3, .L1305 + cmp r1, r2 + bls .L1211 + add r2, r2, r3 + addw r8, r3, #1215 + ldrb r2, [r2, #2232] @ zero_extendqisi2 + add r4, r3, r2, lsl #6 + ldr r0, [r3, r2, lsl #3] + add r2, r3, r2, lsl #3 + add r4, r4, #1232 + ldrb r9, [r2, #4] @ zero_extendqisi2 movs r2, #55 - ldrb r8, [r3, #16] @ zero_extendqisi2 - ldr r0, [r3, #12] - mov r9, r4 + mov r10, r4 mov r3, r4 - add r8, r0, r8, lsl #8 - addw ip, r8, #2056 -.L1200: + add r9, r0, r9, lsl #8 + addw ip, r9, #2056 +.L1206: str r2, [ip] - ldrb r0, [fp, #1]! @ zero_extendqisi2 - str r1, [sp, #16] + ldrb r0, [r8, #1]! @ zero_extendqisi2 str r3, [sp, #12] - str r0, [r8, #2052] - movs r0, #80 str r2, [sp, #8] + str r0, [r9, #2052] + movs r0, #80 str ip, [sp, #4] - bl NandcDelayns - ldr r0, [r8, #2048] + bl ndelay + ldr r0, [r9, #2048] ldr r3, [sp, #12] ldr ip, [sp, #4] ldr r2, [sp, #8] strb r0, [r3], #1 subs r0, r3, r4 - ldr r1, [sp, #16] uxtb r0, r0 cmp r0, r6 - bcc .L1200 + bcc .L1206 movs r2, #0 -.L1201: +.L1207: + ldr r1, .L1305+8 movs r3, #1 add lr, r1, r2 -.L1202: +.L1208: ldrb ip, [lr, r3, lsl #2] @ zero_extendqisi2 - ldrb r0, [r9] @ zero_extendqisi2 + ldrb r0, [r10] @ zero_extendqisi2 add r0, r0, ip - strb r0, [r9, r3, lsl #3] + strb r0, [r10, r3, lsl #3] adds r3, r3, #1 cmp r3, #7 - bne .L1202 + bne .L1208 adds r2, r2, #1 - add r9, r9, #1 - cmp r2, #4 - bne .L1201 - movs r3, #0 add r10, r10, #1 + cmp r2, #4 + bne .L1207 + movs r3, #0 + add fp, fp, #1 strb r3, [r4, #16] strb r3, [r4, #24] strb r3, [r4, #32] @@ -8145,11 +8189,11 @@ HynixGetReadRetryDefault: strb r3, [r4, #48] strb r3, [r4, #41] strb r3, [r4, #49] - b .L1198 -.L1290: + b .L1204 +.L1296: subs r3, r4, #3 cmp r3, #5 - bhi .L1205 + bhi .L1211 smulbb r2, r6, r5 lsls r3, r2, #4 asrs r2, r2, #1 @@ -8157,32 +8201,32 @@ HynixGetReadRetryDefault: lsls r3, r2, #1 str r3, [sp, #8] movs r3, #0 -.L1297: +.L1303: str r3, [sp, #20] ldrb r3, [sp, #20] @ zero_extendqisi2 str r3, [sp, #16] - ldr r3, .L1299 + ldr r3, .L1305 ldr r2, [sp, #16] ldrb r3, [r3, #2230] @ zero_extendqisi2 cmp r3, r2 - bhi .L1250 -.L1205: - ldr r3, .L1299 - strb r6, [r3, #1211] - strb r5, [r3, #1212] + bhi .L1256 +.L1211: + ldr r3, .L1305 + strb r6, [r3, #1213] + strb r5, [r3, #1214] add sp, sp, #44 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1250: +.L1256: ldr r2, [sp, #16] - ldr r3, .L1299 + ldr r3, .L1305 add r3, r3, r2 ldrb fp, [r3, #2232] @ zero_extendqisi2 - ldr r3, .L1299 - add r3, r3, fp, lsl #3 + ldr r3, .L1305 mov r0, fp - ldr r10, [r3, #12] - ldrb r3, [r3, #16] @ zero_extendqisi2 + ldr r10, [r3, fp, lsl #3] + add r3, r3, fp, lsl #3 + ldrb r3, [r3, #4] @ zero_extendqisi2 lsls r7, r3, #8 str r3, [sp, #4] add r8, r10, r7 @@ -8190,56 +8234,56 @@ HynixGetReadRetryDefault: str r3, [r8, #2056] bl NandcWaitFlashReady cmp r4, #7 - bne .L1207 - ldr r2, .L1299+12 + bne .L1213 + ldr r2, .L1305+12 movs r3, #160 mla ip, r3, fp, r2 add r3, ip, #28 - b .L1294 -.L1207: + b .L1300 +.L1213: cmp r4, #8 - beq .L1209 - ldr r2, .L1299+12 + beq .L1215 + ldr r2, .L1305+12 add ip, r2, fp, lsl #6 add r3, ip, #20 -.L1294: +.L1300: add r7, r7, r10 cmp r4, #4 str r3, [sp, #24] mov r3, #54 str r3, [r7, #2056] - bne .L1210 + bne .L1216 movs r3, #255 str r3, [r7, #2052] movs r3, #64 str r3, [r7, #2048] movs r3, #204 - b .L1295 -.L1210: + b .L1301 +.L1216: subs r3, r4, #5 cmp r3, #1 - bhi .L1212 - ldr r3, .L1299 - ldrb r2, [r3, #1214] @ zero_extendqisi2 + bhi .L1218 + ldr r3, .L1305 + ldrb r2, [r3, #1216] @ zero_extendqisi2 ldr r3, [sp, #4] add r3, r10, r3, lsl #8 str r2, [r3, #2052] movs r2, #82 str r2, [r3, #2048] - b .L1211 -.L1212: + b .L1217 +.L1218: cmp r4, #7 - bne .L1211 + bne .L1217 movs r3, #174 str r3, [r7, #2052] movs r3, #0 str r3, [r7, #2048] movs r3, #176 -.L1295: +.L1301: str r3, [r7, #2052] movs r3, #77 str r3, [r7, #2048] -.L1211: +.L1217: ldr r3, [sp, #4] cmp r4, #6 mov r2, #22 @@ -8262,7 +8306,7 @@ HynixGetReadRetryDefault: str r2, [r3, #2052] movs r2, #0 str r2, [r3, #2052] -.L1251: +.L1257: ldr r3, [sp, #4] movs r2, #48 mov r0, fp @@ -8272,73 +8316,47 @@ HynixGetReadRetryDefault: subs r3, r4, #5 cmp r3, #1 str r3, [sp, #28] - bls .L1255 + bls .L1261 cmp r4, #8 - beq .L1255 + beq .L1261 cmp r4, #7 ite ne movne r2, #2 moveq r2, #32 - b .L1215 -.L1300: + b .L1221 +.L1306: .align 2 -.L1299: +.L1305: .word .LANCHOR0 .word .LANCHOR1 .word .LANCHOR1+3388 - .word .LANCHOR0+1210 -.L1255: + .word .LANCHOR0+1212 +.L1261: movs r2, #16 -.L1215: - ldr r3, .L1301 +.L1221: + ldr r3, .L1307 ldr r1, [sp, #4] - ldr r3, [r3, #1184] + ldr r3, [r3, #1192] add r0, r10, r1, lsl #8 mov r7, r3 -.L1216: +.L1222: ldr r1, [r0, #2048] strb r1, [r7], #1 subs r1, r7, r3 uxtb r1, r1 cmp r1, r2 - bcc .L1216 + bcc .L1222 cmp r4, #8 - bne .L1217 - movs r2, #0 -.L1219: - ldrb r7, [r3, r2, lsl #2] @ zero_extendqisi2 - uxtb r1, r2 - cmp r7, #50 - beq .L1218 - add r7, r3, r2, lsl #2 - ldrb r7, [r7, #1] @ zero_extendqisi2 - cmp r7, #5 - beq .L1218 - adds r2, r2, #1 - cmp r2, #8 - bne .L1219 - b .L1220 -.L1218: - cmp r1, #7 - bne .L1221 -.L1220: - ldr r0, .L1301+4 - movs r1, #0 - bl printk -.L1222: - b .L1222 -.L1217: - cmp r4, #7 bne .L1223 movs r2, #0 .L1225: ldrb r7, [r3, r2, lsl #2] @ zero_extendqisi2 uxtb r1, r2 - cmp r7, #12 + cmp r7, #50 beq .L1224 add r7, r3, r2, lsl #2 ldrb r7, [r7, #1] @ zero_extendqisi2 - cmp r7, #10 + cmp r7, #5 beq .L1224 adds r2, r2, #1 cmp r2, #8 @@ -8346,74 +8364,100 @@ HynixGetReadRetryDefault: b .L1226 .L1224: cmp r1, #7 - bne .L1221 + bne .L1227 .L1226: - ldr r0, .L1301+4 + ldr r0, .L1307+4 movs r1, #0 bl printk -.L1227: - b .L1227 +.L1228: + b .L1228 .L1223: + cmp r4, #7 + bne .L1229 + movs r2, #0 +.L1231: + ldrb r7, [r3, r2, lsl #2] @ zero_extendqisi2 + uxtb r1, r2 + cmp r7, #12 + beq .L1230 + add r7, r3, r2, lsl #2 + ldrb r7, [r7, #1] @ zero_extendqisi2 + cmp r7, #10 + beq .L1230 + adds r2, r2, #1 + cmp r2, #8 + bne .L1231 + b .L1232 +.L1230: + cmp r1, #7 + bne .L1227 +.L1232: + ldr r0, .L1307+4 + movs r1, #0 + bl printk +.L1233: + b .L1233 +.L1229: cmp r4, #6 - bne .L1221 + bne .L1227 subs r2, r3, #1 adds r3, r3, #7 -.L1228: +.L1234: ldrb r1, [r2, #1]! @ zero_extendqisi2 cmp r1, #12 - beq .L1221 + beq .L1227 ldrb r1, [r2, #8] @ zero_extendqisi2 cmp r1, #4 - beq .L1221 + beq .L1227 cmp r2, r3 - bne .L1228 - ldr r0, .L1301+4 + bne .L1234 + ldr r0, .L1307+4 movs r1, #0 bl printk -.L1230: - b .L1230 -.L1221: - ldr r1, .L1301 +.L1236: + b .L1236 +.L1227: + ldr r1, .L1307 ldr r7, [sp, #36] - ldr r2, [r1, #1184] + ldr r2, [r1, #1192] adds r7, r2, r7 mov r3, r2 -.L1231: +.L1237: cmp r3, r7 - beq .L1298 + beq .L1304 ldr lr, [r0, #2048] strb lr, [r3], #1 - b .L1231 -.L1298: - ldr r3, [r1, #1184] + b .L1237 +.L1304: + ldr r3, [r1, #1192] movs r0, #8 ldr r1, [sp, #8] adds r1, r3, r1 str r1, [sp, #32] -.L1234: +.L1240: ldr r7, [sp, #8] add lr, r1, r7 -.L1233: +.L1239: ldrh r7, [r1] mvns r7, r7 strh r7, [r1], #2 @ movhi cmp r1, lr - bne .L1233 + bne .L1239 ldr r7, [sp, #8] subs r0, r0, #1 add r1, r1, r7 - bne .L1234 + bne .L1240 str r3, [sp, #12] -.L1235: +.L1241: movs r7, #0 mov r0, r7 -.L1238: +.L1244: movs r3, #1 mov lr, #0 mov r8, #16 lsl r1, r3, r0 mov ip, lr -.L1236: +.L1242: ldr r3, [sp, #12] ldrh r9, [r3, lr] ldr r3, [sp, #8] @@ -8423,80 +8467,80 @@ HynixGetReadRetryDefault: addeq ip, ip, #1 subs r8, r8, #1 add lr, lr, r3 - bne .L1236 + bne .L1242 cmp ip, #8 add r0, r0, #1 itt hi orrhi r7, r7, r1 uxthhi r7, r7 cmp r0, #16 - bne .L1238 + bne .L1244 ldr r3, [sp, #12] strh r7, [r3], #2 @ movhi str r3, [sp, #12] ldr r1, [sp, #12] ldr r3, [sp, #32] cmp r1, r3 - bne .L1235 - ldr r3, .L1301 - ldr r1, [r3, #1184] + bne .L1241 + ldr r3, .L1307 + ldr r1, [r3, #1192] movs r3, #0 subs r0, r1, #4 add r7, r1, #28 -.L1240: +.L1246: ldr lr, [r0, #4]! cmp lr, #0 it eq addeq r3, r3, #1 cmp r0, r7 - bne .L1240 + bne .L1246 cmp r3, #7 - ble .L1241 - ldr r0, .L1301+8 + ble .L1247 + ldr r0, .L1307+8 movs r2, #1 mov r3, #1024 bl rknand_print_hex - ldr r0, .L1301+4 + ldr r0, .L1307+4 movs r1, #0 bl printk -.L1242: - b .L1242 -.L1241: +.L1248: + b .L1248 +.L1247: cmp r4, #6 - beq .L1257 + beq .L1263 cmp r4, #7 - beq .L1258 + beq .L1264 cmp r4, #8 ite ne movne r0, #8 moveq r0, #5 - b .L1243 -.L1257: + b .L1249 +.L1263: movs r0, #4 - b .L1243 -.L1258: + b .L1249 +.L1264: movs r0, #10 -.L1243: +.L1249: add r9, r6, #-1 ldr r1, [sp, #24] movs r7, #0 uxtb r9, r9 add r9, r9, #1 -.L1244: +.L1250: mov ip, r1 mov r3, r2 -.L1245: +.L1251: ldrb lr, [r3], #1 @ zero_extendqisi2 strb lr, [ip], #1 rsb lr, r2, r3 uxtb lr, lr cmp lr, r6 - bcc .L1245 + bcc .L1251 adds r7, r7, #1 add r2, r2, r9 cmp r7, r5 add r1, r1, r0 - blt .L1244 + blt .L1250 ldr r3, [sp, #4] mov r0, fp add r7, r10, r3, lsl #8 @@ -8505,33 +8549,33 @@ HynixGetReadRetryDefault: bl NandcWaitFlashReady ldr r3, [sp, #28] cmp r3, #1 - bhi .L1247 + bhi .L1253 movs r3, #54 str r3, [r7, #2056] - ldr r3, .L1301+12 + ldr r3, .L1307+12 mov r1, #-1 ldr r0, [sp, #16] - ldrb r3, [r3, #1214] @ zero_extendqisi2 + ldrb r3, [r3, #1216] @ zero_extendqisi2 str r3, [r7, #2052] movs r3, #0 str r3, [r7, #2048] movs r3, #22 str r3, [r7, #2056] bl FlashReadCmd - b .L1248 -.L1247: + b .L1254 +.L1253: cmp r4, #8 ite eq moveq r3, #190 movne r3, #56 str r3, [r7, #2056] -.L1248: +.L1254: mov r0, fp bl NandcWaitFlashReady ldr r3, [sp, #20] adds r3, r3, #1 - b .L1297 -.L1209: + b .L1303 +.L1215: movs r3, #120 movs r2, #23 str r3, [r8, #2056] @@ -8553,17 +8597,17 @@ HynixGetReadRetryDefault: str r1, [r8, #2052] str r2, [r8, #2052] str r3, [r8, #2052] - ldr r3, .L1301+16 + ldr r3, .L1307+16 str r3, [sp, #24] - b .L1251 -.L1302: + b .L1257 +.L1308: .align 2 -.L1301: +.L1307: .word .LANCHOR4 .word .LC85 .word .LC86 .word .LANCHOR0 - .word .LANCHOR0+1238 + .word .LANCHOR0+1240 .fnend .size HynixGetReadRetryDefault, .-HynixGetReadRetryDefault .align 1 @@ -8578,74 +8622,74 @@ FlashGetReadRetryDefault: @ link register save eliminated. mov r3, r0 cmp r0, #0 - beq .L1303 + beq .L1309 subs r2, r0, #1 cmp r2, #7 - bhi .L1305 + bhi .L1311 b HynixGetReadRetryDefault -.L1305: +.L1311: cmp r0, #49 - bne .L1306 - ldr r0, .L1326 + bne .L1312 + ldr r0, .L1332 movs r2, #64 - ldr r1, .L1326+4 - addw r0, r0, #1214 + ldr r1, .L1332+4 + add r0, r0, #1216 strb r3, [r0, #-4] movs r3, #4 strb r3, [r0, #-3] movs r3, #15 strb r3, [r0, #-2] - b .L1324 -.L1306: + b .L1330 +.L1312: cmp r0, #33 - beq .L1307 + beq .L1313 sub r2, r0, #65 cmp r2, #1 - bhi .L1308 -.L1307: - ldr r0, .L1326 - strb r3, [r0, #1210] + bhi .L1314 +.L1313: + ldr r0, .L1332 + strb r3, [r0, #1212] movs r3, #4 - b .L1325 -.L1308: + b .L1331 +.L1314: cmp r0, #34 - beq .L1309 + beq .L1315 cmp r0, #67 - bne .L1310 -.L1309: - ldr r0, .L1326 - strb r3, [r0, #1210] + bne .L1316 +.L1315: + ldr r0, .L1332 + strb r3, [r0, #1212] movs r3, #5 -.L1325: - strb r3, [r0, #1211] +.L1331: + strb r3, [r0, #1213] movs r2, #45 movs r3, #7 - addw r0, r0, #1214 + add r0, r0, #1216 strb r3, [r0, #-2] - ldr r1, .L1326+8 - b .L1324 -.L1310: + ldr r1, .L1332+8 + b .L1330 +.L1316: cmp r0, #35 - beq .L1311 + beq .L1317 cmp r0, #68 - bne .L1303 -.L1311: - ldr r0, .L1326 + bne .L1309 +.L1317: + ldr r0, .L1332 movs r2, #95 - ldr r1, .L1326+12 - addw r0, r0, #1214 + ldr r1, .L1332+12 + add r0, r0, #1216 strb r3, [r0, #-4] movs r3, #5 strb r3, [r0, #-3] movs r3, #17 strb r3, [r0, #-2] -.L1324: +.L1330: b ftl_memcpy -.L1303: +.L1309: bx lr -.L1327: +.L1333: .align 2 -.L1326: +.L1332: .word .LANCHOR0 .word .LANCHOR1+408 .word .LANCHOR1+256 @@ -8664,64 +8708,63 @@ NandcXferComp: push {r0, r1, r4, r5, r6, lr} .save {r4, r5, r6, lr} .pad #8 - ldr r5, .L1367 - add r0, r5, r0, lsl #3 + ldr r5, .L1373 ldr r3, [r5, #2260] - ldr r4, [r0, #12] + ldr r4, [r5, r0, lsl #3] cmp r3, #3 - bls .L1359 + bls .L1365 ldr r3, [r4, #16] lsls r6, r3, #29 - bpl .L1359 + bpl .L1365 ldr r6, [r4, #16] ldr r3, [r4, #8] ubfx r6, r6, #1, #1 str r3, [sp] cmp r6, #0 - beq .L1341 + beq .L1347 movs r6, #0 -.L1331: +.L1337: ldr r2, [r4, #28] ldr r3, [sp] ubfx r2, r2, #16, #5 ubfx r3, r3, #22, #6 cmp r2, r3 - bge .L1339 + bge .L1345 ldr r3, [r5, #2260] cmp r3, #5 - bhi .L1332 -.L1335: + bhi .L1338 +.L1341: adds r6, r6, #1 bic r3, r6, #-16777216 cmp r3, #0 - bne .L1334 + bne .L1340 ldr r2, [r4, #28] mov r1, r6 ldr r3, [sp] ubfx r2, r2, #16, #5 - ldr r0, .L1367+4 + ldr r0, .L1373+4 ubfx r3, r3, #22, #6 bl printk - ldr r0, .L1367+8 + ldr r0, .L1373+8 mov r1, r4 movs r2, #4 mov r3, #512 bl rknand_print_hex - b .L1334 -.L1332: + b .L1340 +.L1338: ldr r3, [r4] str r3, [sp, #4] ldr r3, [sp, #4] lsls r0, r3, #18 - bpl .L1335 + bpl .L1341 ldr r3, [sp, #4] lsls r1, r3, #14 - bpl .L1335 -.L1339: + bpl .L1341 +.L1345: ldr r3, [r5, #2296] - ldr r4, .L1367 + ldr r4, .L1373 cmp r3, #0 - beq .L1340 + beq .L1346 ldr r1, [sp] movs r2, #0 ldr r0, [r4, #2288] @@ -8734,45 +8777,45 @@ NandcXferComp: ubfx r1, r1, #22, #5 lsls r1, r1, #7 bl rknand_dma_unmap_single - b .L1340 -.L1334: + b .L1346 +.L1340: movs r0, #1 movs r1, #5 bl usleep_range - b .L1331 -.L1343: + b .L1337 +.L1349: ldr r3, [r4, #8] adds r6, r6, #1 str r3, [sp] bic r3, r6, #-16777216 - cbnz r3, .L1342 + cbnz r3, .L1348 ldr r2, [sp] mov r1, r6 ldr r3, [r4, #28] - ldr r0, .L1367+12 + ldr r0, .L1373+12 ubfx r3, r3, #16, #5 bl printk - ldr r0, .L1367+8 + ldr r0, .L1373+8 mov r1, r4 movs r2, #4 mov r3, #512 bl rknand_print_hex -.L1342: +.L1348: movs r0, #1 movs r1, #5 bl usleep_range -.L1341: +.L1347: ldr r3, [sp] lsls r2, r3, #11 - bpl .L1343 + bpl .L1349 ldr r3, [r5, #2304] - cbz r3, .L1344 + cbz r3, .L1350 mov r0, r4 bl NandcSendDumpDataStart -.L1344: +.L1350: ldr r3, [r5, #2296] - ldr r6, .L1367 - cbz r3, .L1345 + ldr r6, .L1373 + cbz r3, .L1351 ldr r1, [sp] movs r2, #1 ldr r0, [r6, #2288] @@ -8785,28 +8828,28 @@ NandcXferComp: ubfx r1, r1, #22, #5 lsls r1, r1, #7 bl rknand_dma_unmap_single -.L1345: +.L1351: ldr r3, [r5, #2304] - cbz r3, .L1340 + cbz r3, .L1346 mov r0, r4 bl NandcSendDumpDataDone -.L1340: +.L1346: movs r3, #0 str r3, [r5, #2296] - b .L1328 -.L1359: + b .L1334 +.L1365: ldr r3, [r4, #8] str r3, [sp] ldr r3, [sp] lsls r3, r3, #11 - bpl .L1359 -.L1328: + bpl .L1365 +.L1334: add sp, sp, #8 @ sp needed pop {r4, r5, r6, pc} -.L1368: +.L1374: .align 2 -.L1367: +.L1373: .word .LANCHOR0 .word .LC87 .word .LC88 @@ -8824,26 +8867,25 @@ NandcXferData: @ frame_needed = 0, uses_anonymous_args = 0 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - mov r10, r3 - ldr r6, .L1413 - tst r10, #63 + tst r3, #63 + ldr r6, .L1419 .pad #92 sub sp, sp, #92 mov r9, r0 - add r3, r6, r0, lsl #3 mov r5, r1 mov r7, r2 - ldr r8, [r3, #12] - bne .L1370 + mov r10, r3 + ldr r8, [r6, r0, lsl #3] + bne .L1376 ldr r3, [sp, #128] - cbnz r3, .L1371 + cbnz r3, .L1377 add r0, sp, #24 movs r1, #255 movs r2, #64 bl ftl_memset add r3, sp, #24 str r3, [sp, #128] -.L1371: +.L1377: ldr r3, [sp, #128] mov r0, r9 mov r1, r5 @@ -8856,7 +8898,7 @@ NandcXferData: mov r1, r5 bl NandcXferComp cmp r5, #0 - bne .L1397 + bne .L1403 ldr r3, [r6, #2308] lsrs r4, r7, #1 mov r2, r5 @@ -8866,11 +8908,11 @@ NandcXferData: ite cc movcc lr, #64 movcs lr, #128 -.L1374: +.L1380: cmp r1, r4 add r3, r3, #4 add ip, r2, lr - bcs .L1411 + bcs .L1417 ldr r0, [r6, #2276] lsrs r2, r2, #2 adds r1, r1, #1 @@ -8883,30 +8925,30 @@ NandcXferData: strb r0, [r3, #-2] strb r2, [r3, #-1] mov r2, ip - b .L1374 -.L1411: + b .L1380 +.L1417: movs r2, #0 ldr r0, [r6, #2308] ldr r1, [r6, #2260] lsrs r7, r7, #2 mov fp, r2 -.L1376: +.L1382: cmp r2, r7 - bcs .L1372 + bcs .L1378 cmp r0, #0 - beq .L1372 + beq .L1378 add r3, r2, #8 ldr r3, [r8, r3, lsl #2] str r3, [sp, #20] ldr r3, [sp, #20] lsls r4, r3, #29 - bmi .L1400 + bmi .L1406 ldr r4, [sp, #20] ubfx r4, r4, #15, #1 cmp r4, #0 - bne .L1400 + bne .L1406 cmp r1, #5 - bls .L1378 + bls .L1384 ldr r4, [sp, #20] ldr r3, [sp, #20] ubfx r4, r4, #3, #5 @@ -8927,10 +8969,10 @@ NandcXferData: ite hi ubfxhi r4, r4, #27, #1 ubfxls r4, r4, #29, #1 - b .L1410 -.L1378: + b .L1416 +.L1384: cmp r1, #3 - bls .L1380 + bls .L1386 ldr r4, [sp, #20] ldr r3, [sp, #20] ubfx r4, r4, #3, #5 @@ -8951,40 +8993,40 @@ NandcXferData: ite hi ubfxhi r4, r4, #28, #1 ubfxls r4, r4, #30, #1 -.L1410: +.L1416: orr r4, r3, r4, lsl #5 -.L1380: +.L1386: cmp fp, r4 it cc movcc fp, r4 - b .L1377 -.L1400: + b .L1383 +.L1406: mov fp, #-1 -.L1377: +.L1383: adds r2, r2, #1 - b .L1376 -.L1397: + b .L1382 +.L1403: mov fp, #0 -.L1372: +.L1378: movs r3, #0 str r3, [r8, #16] - b .L1383 -.L1370: + b .L1389 +.L1376: cmp r1, #1 mov r4, #0 - bne .L1409 + bne .L1415 mov fp, r4 -.L1384: +.L1390: cmp r4, r7 - bcs .L1412 + bcs .L1418 and ip, r4, #3 cmp r10, #0 - beq .L1403 + beq .L1409 add r3, r10, r4, lsl #9 - b .L1386 -.L1403: + b .L1392 +.L1409: mov r3, r10 -.L1386: +.L1392: ldr r2, [sp, #128] mov r0, r8 ldr r1, [sp, #128] @@ -9010,11 +9052,11 @@ NandcXferData: mov r0, r9 movs r1, #1 bl NandcXferComp - b .L1384 -.L1412: + b .L1390 +.L1418: mov fp, #0 - b .L1383 -.L1409: + b .L1389 +.L1415: str r4, [sp] mov r1, r4 str r4, [sp, #4] @@ -9023,9 +9065,9 @@ NandcXferData: mov fp, r4 bl NandcXferStart str r10, [sp, #8] -.L1389: +.L1395: cmp r4, r7 - bcs .L1383 + bcs .L1389 mov r0, r9 mov r1, r5 bl NandcXferComp @@ -9033,7 +9075,7 @@ NandcXferData: add ip, r4, #2 cmp ip, r7 str r3, [sp, #20] - bcs .L1390 + bcs .L1396 movs r3, #0 mov r0, r9 str r3, [sp] @@ -9044,10 +9086,10 @@ NandcXferData: str ip, [sp, #12] bl NandcXferStart ldr ip, [sp, #12] -.L1390: +.L1396: ldr r3, [sp, #20] lsls r3, r3, #29 - bmi .L1405 + bmi .L1411 ldr r2, [sp, #20] ldr r3, [sp, #20] ubfx r2, r2, #3, #5 @@ -9056,10 +9098,10 @@ NandcXferData: cmp fp, r3 it cc movcc fp, r3 - b .L1391 -.L1405: + b .L1397 +.L1411: mov fp, #-1 -.L1391: +.L1397: ldr r1, [sp, #128] cmp r10, #0 ldr r3, [sp, #8] @@ -9083,12 +9125,12 @@ NandcXferData: mov r4, ip add r3, r3, #1024 str r3, [sp, #8] - b .L1389 -.L1383: + b .L1395 +.L1389: ldr r3, [r6, #2260] cmp r3, #5 - bls .L1395 - cbnz r5, .L1395 + bls .L1401 + cbnz r5, .L1401 ldr r3, [r8] and r2, r3, #139264 cmp r2, #139264 @@ -9096,14 +9138,14 @@ NandcXferData: moveq fp, #-1 orreq r3, r3, #131072 streq r3, [r8] -.L1395: +.L1401: mov r0, fp add sp, sp, #92 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1414: +.L1420: .align 2 -.L1413: +.L1419: .word .LANCHOR0 .fnend .size NandcXferData, .-NandcXferData @@ -9120,20 +9162,20 @@ FlashReadRawPage: .save {r4, r5, r6, r7, r8, lr} .pad #8 mov r8, r3 - ldr r3, .L1417 + ldr r3, .L1423 mov r6, r1 mov r7, r2 mov r4, r0 ldrb r5, [r3, #481] @ zero_extendqisi2 - cbnz r0, .L1416 - ldr r2, .L1417+4 - ldrb r3, [r2, #1] @ zero_extendqisi2 - ldr r2, [r2, #4] + cbnz r0, .L1422 + ldr r2, .L1423+4 + ldrb r3, [r2, #33] @ zero_extendqisi2 + ldr r2, [r2, #36] muls r2, r3, r2 cmp r1, r2 it cc movcc r5, #4 -.L1416: +.L1422: mov r0, r4 bl NandcWaitFlashReady mov r0, r4 @@ -9156,9 +9198,9 @@ FlashReadRawPage: add sp, sp, #8 @ sp needed pop {r4, r5, r6, r7, r8, pc} -.L1418: +.L1424: .align 2 -.L1417: +.L1423: .word .LANCHOR1 .word .LANCHOR0 .fnend @@ -9175,13 +9217,13 @@ FlashDdrTunningRead: push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r7, r3 - ldr r4, .L1445 + ldr r4, .L1451 .pad #20 sub sp, sp, #20 mov r10, r0 mov fp, r2 str r1, [sp] - ldr r3, [r4, #80] + ldr r3, [r4, #84] ldr r3, [r3, #304] str r3, [sp, #8] ldr r3, [r4, #2260] @@ -9191,7 +9233,7 @@ FlashDdrTunningRead: movcc r9, #6 movcs r9, #12 cmp r3, #0 - beq .L1433 + beq .L1439 movs r0, #1 bl FlashSetInterfaceMode movs r0, #1 @@ -9209,43 +9251,42 @@ FlashDdrTunningRead: ldrb r0, [r4, #2229] @ zero_extendqisi2 bl NandcSetMode adds r3, r6, #1 - bne .L1422 -.L1431: + bne .L1428 +.L1437: mov r6, #-1 - b .L1423 -.L1422: + b .L1429 +.L1428: mov r2, r6 - ldr r0, .L1445+4 + ldr r0, .L1451+4 ldr r1, [sp] bl printk cmp r6, #9 - itt ls - addls r4, r4, r10, lsl #3 - ldrls r3, [r4, #12] - ldr r4, .L1445+8 + it ls + ldrls r3, [r4, r10, lsl #3] + ldr r4, .L1451+8 itttt ls ldrls r2, [r3, #3840] ldrls r2, [r3] orrls r2, r2, #131072 strls r2, [r3] - ldr r3, [r4, #1188] + ldr r3, [r4, #1196] adds r3, r3, #1 - str r3, [r4, #1188] + str r3, [r4, #1196] cmp r3, #2048 - bcc .L1423 + bcc .L1429 movs r7, #0 - str r7, [r4, #1188] + str r7, [r4, #1196] mov fp, r7 - b .L1421 -.L1433: + b .L1427 +.L1439: mov r6, #1024 -.L1421: +.L1427: movs r4, #0 mov r8, #-1 str r4, [sp, #4] mov ip, r4 mov r5, r4 -.L1429: +.L1435: uxtb r0, r9 str ip, [sp, #12] bl NandcSetDdrPara @@ -9257,74 +9298,74 @@ FlashDdrTunningRead: adds r3, r6, #1 cmp r0, r3 ldr ip, [sp, #12] - bhi .L1425 + bhi .L1431 cmp r0, #2 - bhi .L1435 + bhi .L1441 adds r5, r5, #1 cmp r5, #9 - bls .L1435 + bls .L1441 rsb r4, r5, r9 mov r6, r0 mov r8, #0 - b .L1427 -.L1425: + b .L1433 +.L1431: ldr r3, [sp, #4] cmp r3, r5 - bcs .L1436 + bcs .L1442 cmp r5, #7 rsb ip, r5, r4 - bhi .L1437 + bhi .L1443 str r5, [sp, #4] - b .L1436 -.L1435: + b .L1442 +.L1441: mov r8, #0 mov r4, r9 mov r6, r0 mov r7, r8 mov fp, r8 - b .L1426 -.L1436: + b .L1432 +.L1442: movs r5, #0 -.L1426: +.L1432: add r9, r9, #2 cmp r9, #69 - bls .L1429 -.L1427: + bls .L1435 +.L1433: ldr r3, [sp, #4] cmp r3, r5 it cs movcs r4, ip - b .L1428 -.L1437: + b .L1434 +.L1443: mov r4, ip -.L1428: - cbz r4, .L1430 - ldr r0, .L1445+12 +.L1434: + cbz r4, .L1436 + ldr r0, .L1451+12 mov r1, r4 bl printk uxtb r0, r4 bl NandcSetDdrPara -.L1430: +.L1436: cmp r8, #0 - beq .L1423 - ldr r0, .L1445+16 + beq .L1429 + ldr r0, .L1451+16 mov r1, r10 ldr r2, [sp] bl printk ldr r3, [sp, #56] cmp r3, #0 - beq .L1431 + beq .L1437 ldr r3, [sp, #8] ubfx r0, r3, #8, #8 bl NandcSetDdrPara -.L1423: +.L1429: mov r0, r6 add sp, sp, #20 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1446: +.L1452: .align 2 -.L1445: +.L1451: .word .LANCHOR0 .word .LC90 .word .LANCHOR4 @@ -9351,32 +9392,32 @@ FlashReadPage: bl FlashReadRawPage adds r2, r0, #1 mov r4, r0 - bne .L1448 - ldr r9, .L1467+4 - ldrb fp, [r9, #8] @ zero_extendqisi2 + bne .L1454 + ldr r9, .L1473+4 + ldrb fp, [r9, #40] @ zero_extendqisi2 mov r10, r9 cmp fp, #0 - bne .L1449 -.L1451: + bne .L1455 +.L1457: ldrb r3, [r10, #2252] @ zero_extendqisi2 - ldr r9, .L1467+4 - cbz r3, .L1448 - b .L1466 -.L1449: + ldr r9, .L1473+4 + cbz r3, .L1454 + b .L1472 +.L1455: movs r3, #0 mov r0, r5 - strb r3, [r9, #8] + strb r3, [r9, #40] mov r1, r6 mov r3, r7 mov r2, r8 bl FlashReadRawPage - strb fp, [r9, #8] + strb fp, [r9, #40] adds r3, r0, #1 - beq .L1451 + beq .L1457 mov r4, r0 - b .L1448 -.L1466: - ldr r3, [r9, #80] + b .L1454 +.L1472: + ldr r3, [r9, #84] mov r1, r6 mov r0, r5 mov r2, r8 @@ -9387,20 +9428,20 @@ FlashReadPage: bl FlashDdrTunningRead adds r1, r0, #1 mov r4, r0 - beq .L1452 + beq .L1458 ldrb r3, [r9, #2312] @ zero_extendqisi2 cmp r0, r3, lsr #1 - bls .L1448 -.L1452: + bls .L1454 +.L1458: ubfx r0, r10, #8, #8 bl NandcSetDdrPara -.L1448: - ldr r9, .L1467+8 - ldr ip, [r9, #1192] +.L1454: + ldr r9, .L1473+8 + ldr ip, [r9, #1200] cmp ip, #0 - beq .L1453 + beq .L1459 adds r2, r4, #1 - bne .L1453 + bne .L1459 mov r1, r6 mov r2, r8 mov r3, r7 @@ -9409,17 +9450,17 @@ FlashReadPage: mov r3, r6 mov r2, r5 mov r4, r0 - ldr r0, .L1467 + ldr r0, .L1473 mov r1, r4 bl printk adds r3, r4, #1 - bne .L1453 - ldr r3, .L1467+4 - ldrb r3, [r3, #144] @ zero_extendqisi2 - cbz r3, .L1453 + bne .L1459 + ldr r3, .L1473+4 + ldrb r3, [r3, #148] @ zero_extendqisi2 + cbz r3, .L1459 mov r0, r5 bl flash_enter_slc_mode - ldr r4, [r9, #1192] + ldr r4, [r9, #1200] mov r0, r5 mov r1, r6 mov r2, r8 @@ -9428,14 +9469,14 @@ FlashReadPage: mov r4, r0 mov r0, r5 bl flash_exit_slc_mode -.L1453: +.L1459: mov r0, r4 add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1468: +.L1474: .align 2 -.L1467: +.L1473: .word .LC93 .word .LANCHOR0 .word .LANCHOR4 @@ -9454,7 +9495,7 @@ FlashDdrParaScan: .save {r4, r5, r6, r7, r8, lr} .pad #8 mov r7, r0 - ldr r4, .L1479 + ldr r4, .L1485 mov r6, r1 movs r5, #0 ldrb r0, [r4, #2229] @ zero_extendqisi2 @@ -9474,32 +9515,32 @@ FlashDdrParaScan: mov r0, r7 bl FlashReadRawPage adds r0, r0, #1 - beq .L1470 + beq .L1476 cmp r8, #-1 - bne .L1471 -.L1470: + bne .L1477 +.L1476: ldrb r3, [r4, #2229] @ zero_extendqisi2 lsls r3, r3, #31 - bpl .L1471 + bpl .L1477 movs r0, #1 bl FlashSetInterfaceMode movs r0, #1 bl NandcSetMode - ldr r3, .L1479 + ldr r3, .L1485 movs r2, #0 strb r2, [r3, #2252] - b .L1472 -.L1471: + b .L1478 +.L1477: movs r3, #1 strb r3, [r4, #2252] -.L1472: +.L1478: movs r0, #0 add sp, sp, #8 @ sp needed pop {r4, r5, r6, r7, r8, pc} -.L1480: +.L1486: .align 2 -.L1479: +.L1485: .word .LANCHOR0 .fnend .size FlashDdrParaScan, .-FlashDdrParaScan @@ -9516,126 +9557,126 @@ FlashLoadPhyInfo: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #20 sub sp, sp, #20 - ldr r3, .L1496 + ldr r3, .L1502 movs r4, #0 - ldr r7, .L1496+4 + ldr r7, .L1502+4 mov r9, #4 - ldr r5, .L1496+8 + ldr r5, .L1502+8 mov r8, #-1 ldr r0, [r3] @ unaligned - ldr r3, [r7, #4] - str r4, [r5, #1200] + ldr r3, [r7, #36] + str r4, [r5, #1208] mov r6, r5 str r0, [sp, #12] @ unaligned mov r0, r4 str r3, [sp, #4] - ldr r3, [r5, #1184] - str r3, [r5, #1196] + ldr r3, [r5, #1192] + str r3, [r5, #1204] bl flash_enter_slc_mode -.L1482: +.L1488: add fp, r4, #1 mov r10, #0 -.L1484: +.L1490: add r3, sp, #12 ldrb r0, [r3, r10] @ zero_extendqisi2 bl FlashBchSel movs r0, #0 mov r1, r4 - ldr r2, [r5, #1184] + ldr r2, [r5, #1192] mov r3, r0 bl FlashReadRawPage adds r0, r0, #1 - bne .L1483 + bne .L1489 movs r0, #0 mov r1, fp - ldr r2, [r6, #1184] + ldr r2, [r6, #1192] mov r3, r0 bl FlashReadRawPage adds r0, r0, #1 - bne .L1483 + bne .L1489 add r10, r10, #1 cmp r10, #4 - beq .L1485 - b .L1484 -.L1486: + beq .L1491 + b .L1490 +.L1492: add r0, fp, #12 movw r1, #2036 bl js_hash ldr r3, [fp, #8] cmp r3, r0 - bne .L1492 - ldr r8, .L1496+24 + bne .L1498 + ldr r8, .L1502+24 add r1, fp, #160 movs r2, #32 add r0, r8, #472 bl ftl_memcpy - ldr r1, [r6, #1196] + ldr r1, [r6, #1204] movs r2, #32 - ldr r0, .L1496+12 + ldr r0, .L1502+12 adds r1, r1, #192 bl ftl_memcpy - ldr r1, [r6, #1196] + ldr r1, [r6, #1204] mov r2, #852 - ldr r0, .L1496+16 + ldr r0, .L1502+16 adds r1, r1, #224 bl ftl_memcpy ldrh r0, [r8, #482] bl FlashBlockAlignInit - ldr r8, [r6, #1196] - str r4, [r6, #1200] + ldr r8, [r6, #1204] + str r4, [r6, #1208] mov r0, r4 - ldr r1, [r7, #4] + ldr r1, [r7, #36] ldr r3, [r8, #1076] strb r3, [r7, #2252] bl __aeabi_uidiv adds r0, r0, #1 cmp r0, #1 itee hi - strhi r0, [r6, #1204] + strhi r0, [r6, #1212] movls r3, #2 - strls r3, [r6, #1204] + strls r3, [r6, #1212] ldrh r3, [r8, #14] mov r8, #0 - strb r3, [r5, #1208] -.L1485: + strb r3, [r5, #1216] +.L1491: ldr r3, [sp, #4] subs r9, r9, #1 add r4, r4, r3 - bne .L1482 + bne .L1488 mov r0, r9 -.L1495: +.L1501: bl flash_exit_slc_mode mov r0, r8 add sp, sp, #20 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1483: - ldr fp, [r5, #1196] - ldr r2, .L1496+20 +.L1489: + ldr fp, [r5, #1204] + ldr r2, .L1502+20 ldr r3, [fp] cmp r3, r2 - bne .L1485 + bne .L1491 cmp r8, #0 - bne .L1486 + bne .L1492 mov r0, r4 - ldr r1, [r7, #4] + ldr r1, [r7, #36] bl __aeabi_uidiv - ldr r3, .L1496+8 + ldr r3, .L1502+8 adds r0, r0, #1 - str r0, [r3, #1204] + str r0, [r3, #1212] mov r0, r8 - b .L1495 -.L1492: + b .L1501 +.L1498: mov r8, #-1 - b .L1485 -.L1497: + b .L1491 +.L1503: .align 2 -.L1496: +.L1502: .word .LANCHOR3+11 .word .LANCHOR0 .word .LANCHOR4 .word .LANCHOR0+48 - .word .LANCHOR0+1210 + .word .LANCHOR0+1212 .word 1312902724 .word .LANCHOR1 .fnend @@ -9653,91 +9694,91 @@ ToshibaReadRetrial: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #28 sub sp, sp, #28 - mov r9, r0 + mov r7, r0 mov fp, r3 str r2, [sp, #8] str r1, [sp, #16] bl NandcWaitFlashReady - ldr r4, .L1526 - add r3, r4, r9, lsl #3 - ldrb r2, [r3, #16] @ zero_extendqisi2 - ldr r7, [r3, #12] - ldrb r3, [r4, #1208] @ zero_extendqisi2 + ldr r4, .L1532 + add r3, r4, r7, lsl #3 + ldr r8, [r4, r7, lsl #3] + ldrb r2, [r3, #4] @ zero_extendqisi2 + ldrb r3, [r4, #80] @ zero_extendqisi2 add r6, r2, #8 subs r3, r3, #67 - add r6, r7, r6, lsl #8 cmp r3, #1 + add r6, r8, r6, lsl #8 lsl r3, r2, #8 str r3, [sp, #12] - bls .L1515 + bls .L1521 ldrb r5, [r4, #2252] @ zero_extendqisi2 - cbz r5, .L1516 + cbz r5, .L1522 movs r0, #0 str r2, [sp, #20] bl NandcSetDdrMode movs r3, #1 ldr r2, [sp, #20] str r3, [sp, #4] - b .L1500 -.L1516: + b .L1506 +.L1522: str r5, [sp, #4] -.L1500: +.L1506: ldr r3, [sp, #12] movs r1, #92 - adds r3, r7, r3 + add r3, r8, r3 str r1, [r3, #2056] movs r1, #197 str r1, [r3, #2056] - b .L1499 -.L1515: + b .L1505 +.L1521: movs r3, #0 str r3, [sp, #4] -.L1499: - mov r8, #1 +.L1505: + mov r9, #1 mov r10, #-1 lsls r3, r2, #8 str r3, [sp, #20] -.L1501: - ldr r3, .L1526+4 - ldrb r3, [r3, #1209] @ zero_extendqisi2 +.L1507: + ldr r3, .L1532+4 + ldrb r3, [r3, #1217] @ zero_extendqisi2 adds r3, r3, #1 - cmp r8, r3 - bcs .L1525 - ldrb r3, [r4, #1208] @ zero_extendqisi2 + cmp r9, r3 + bcs .L1531 + ldrb r3, [r4, #80] @ zero_extendqisi2 mov r0, r6 - uxtb r1, r8 + uxtb r1, r9 subs r3, r3, #67 cmp r3, #1 - bhi .L1502 + bhi .L1508 bl SandiskSetRRPara - b .L1503 -.L1502: + b .L1509 +.L1508: bl ToshibaSetRRPara -.L1503: - ldrb r3, [r4, #1208] @ zero_extendqisi2 +.L1509: + ldrb r3, [r4, #80] @ zero_extendqisi2 cmp r3, #34 - bne .L1504 - ldr r3, .L1526+4 - ldrb r3, [r3, #1209] @ zero_extendqisi2 + bne .L1510 + ldr r3, .L1532+4 + ldrb r3, [r3, #1217] @ zero_extendqisi2 subs r3, r3, #3 - cmp r8, r3 + cmp r9, r3 itttt eq moveq r2, #179 ldreq r3, [sp, #20] - addeq r3, r7, r3 + addeq r3, r8, r3 streq r2, [r3, #2056] -.L1504: +.L1510: ldr r3, [sp, #12] movs r2, #38 - adds r3, r7, r3 + add r3, r8, r3 str r2, [r3, #2056] movs r2, #93 str r2, [r3, #2056] ldr r3, [sp, #4] - cbz r3, .L1505 + cbz r3, .L1511 movs r0, #4 bl NandcSetDdrMode - mov r0, r9 + mov r0, r7 mov r3, fp ldr r1, [sp, #16] ldr r2, [sp, #8] @@ -9745,69 +9786,69 @@ ToshibaReadRetrial: mov r5, r0 movs r0, #0 bl NandcSetDdrMode - b .L1506 -.L1505: - mov r0, r9 + b .L1512 +.L1511: + mov r0, r7 ldr r1, [sp, #16] ldr r2, [sp, #8] mov r3, fp bl FlashReadRawPage mov r5, r0 -.L1506: +.L1512: adds r2, r5, #1 - beq .L1507 + beq .L1513 ldrb r2, [r4, #2312] @ zero_extendqisi2 cmp r10, #-1 it eq moveq r10, r5 add r2, r2, r2, lsl #1 cmp r5, r2, asr #2 - bcc .L1509 + bcc .L1515 mov fp, #0 str fp, [sp, #8] -.L1507: - add r8, r8, #1 - b .L1501 -.L1525: +.L1513: + add r9, r9, #1 + b .L1507 +.L1531: mov r5, r10 -.L1509: - ldrb r2, [r4, #1208] @ zero_extendqisi2 +.L1515: + ldrb r2, [r4, #80] @ zero_extendqisi2 mov r0, r6 movs r1, #0 subs r2, r2, #67 cmp r2, #1 - bhi .L1511 + bhi .L1517 bl SandiskSetRRPara - b .L1512 -.L1511: + b .L1518 +.L1517: bl ToshibaSetRRPara -.L1512: +.L1518: ldr r3, [sp, #12] movs r2, #255 - add r7, r7, r3 - str r2, [r7, #2056] + add r8, r8, r3 + str r2, [r8, #2056] ldrb r2, [r4, #2312] @ zero_extendqisi2 add r2, r2, r2, lsl #1 cmp r5, r2, asr #2 - bcc .L1513 + bcc .L1519 adds r3, r5, #1 it ne movne r5, #256 -.L1513: - mov r0, r9 +.L1519: + mov r0, r7 bl NandcWaitFlashReady ldr r3, [sp, #4] - cbz r3, .L1514 + cbz r3, .L1520 movs r0, #4 bl NandcSetDdrMode -.L1514: +.L1520: mov r0, r5 add sp, sp, #28 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1527: +.L1533: .align 2 -.L1526: +.L1532: .word .LANCHOR0 .word .LANCHOR4 .fnend @@ -9823,66 +9864,66 @@ SamsungReadRetrial: @ frame_needed = 0, uses_anonymous_args = 0 push {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} - mov r8, r0 - ldr r5, .L1541 - mov r9, r2 - mov r7, r3 + mov r7, r0 + ldr r5, .L1547 + mov r8, r3 mov fp, r1 + mov r9, r2 bl NandcWaitFlashReady - add r2, r5, r8, lsl #3 + add r3, r5, r7, lsl #3 + ldr r6, [r5, r7, lsl #3] mov r10, #1 + ldrb r3, [r3, #4] @ zero_extendqisi2 mov r4, #-1 - ldrb r3, [r2, #16] @ zero_extendqisi2 - ldr r6, [r2, #12] adds r3, r3, #8 add r6, r6, r3, lsl #8 -.L1529: - ldr r3, .L1541+4 - ldrb r3, [r3, #1209] @ zero_extendqisi2 +.L1535: + ldr r3, .L1547+4 + ldrb r3, [r3, #1217] @ zero_extendqisi2 adds r3, r3, #1 cmp r10, r3 - bcs .L1532 + bcs .L1538 mov r0, r6 uxtb r1, r10 bl SamsungSetRRPara mov r2, r9 - mov r0, r8 + mov r0, r7 mov r1, fp - mov r3, r7 + mov r3, r8 bl FlashReadRawPage adds r2, r0, #1 - beq .L1530 + beq .L1536 ldrb r3, [r5, #2312] @ zero_extendqisi2 cmp r4, #-1 it eq moveq r4, r0 add r3, r3, r3, lsl #1 cmp r0, r3, asr #2 - bcc .L1535 - movs r7, #0 - mov r9, r7 -.L1530: + bcc .L1541 + mov r8, #0 + mov r9, r8 +.L1536: add r10, r10, #1 - b .L1529 -.L1535: + b .L1535 +.L1541: mov r4, r0 -.L1532: +.L1538: mov r0, r6 movs r1, #0 bl SamsungSetRRPara ldrb r3, [r5, #2312] @ zero_extendqisi2 add r3, r3, r3, lsl #1 cmp r4, r3, asr #2 - bcc .L1534 + bcc .L1540 adds r3, r4, #1 it ne movne r4, #256 -.L1534: +.L1540: mov r0, r4 pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1542: +.L1548: .align 2 -.L1541: +.L1547: .word .LANCHOR0 .word .LANCHOR4 .fnend @@ -9894,150 +9935,150 @@ SamsungReadRetrial: .type MicronReadRetrial, %function MicronReadRetrial: .fnstart - @ args = 0, pretend = 0, frame = 24 + @ args = 0, pretend = 0, frame = 32 @ frame_needed = 0, uses_anonymous_args = 0 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r8, r3 - ldr r3, .L1567 - .pad #36 - sub sp, sp, #36 + ldr r3, .L1573 + .pad #44 + sub sp, sp, #44 mov r6, r0 - mov fp, r2 - str r1, [sp, #20] + mov r10, r2 + str r1, [sp, #28] ldrb r5, [r3, #2312] @ zero_extendqisi2 - ldrb r3, [r3, #144] @ zero_extendqisi2 - cbnz r3, .L1544 + ldrb r3, [r3, #148] @ zero_extendqisi2 + cbnz r3, .L1550 add r5, r5, r5, lsl #1 ubfx r5, r5, #2, #8 - b .L1545 -.L1544: - ldr r2, .L1567+4 + b .L1551 +.L1550: + ldr r2, .L1573+4 smull r2, r3, r5, r2 uxtb r5, r3 -.L1545: - ldr r3, .L1567 - mov r10, #0 - add r3, r3, r6, lsl #3 - str r3, [sp, #24] -.L1555: +.L1551: + ldr fp, .L1573 + movs r3, #0 + str r3, [sp, #12] + add r3, fp, r6, lsl #3 + str r3, [sp, #32] +.L1561: mov r0, r6 mov r9, #0 bl NandcWaitFlashReady + ldr r3, [fp, r6, lsl #3] mov r4, #-1 - ldr r3, [sp, #24] - ldr r3, [r3, #12] - str r3, [sp, #12] - ldr r3, [sp, #24] - ldrb r3, [r3, #16] @ zero_extendqisi2 - str r3, [sp, #16] - ldr r2, [sp, #16] - ldr r3, [sp, #12] + str r3, [sp, #20] + ldr r3, [sp, #32] + ldrb r3, [r3, #4] @ zero_extendqisi2 + str r3, [sp, #24] + ldr r2, [sp, #24] + ldr r3, [sp, #20] add r7, r3, r2, lsl #8 -.L1546: - ldr r3, .L1567+8 - ldrb r3, [r3, #1209] @ zero_extendqisi2 +.L1552: + ldr r3, .L1573+8 + ldrb r3, [r3, #1217] @ zero_extendqisi2 cmp r9, r3 - bcs .L1549 + bcs .L1555 movs r3, #239 movs r0, #200 str r3, [r7, #2056] movs r3, #137 str r3, [r7, #2052] - bl NandcDelayns + bl ndelay mov ip, #0 add r3, r9, #1 mov r0, r6 str r3, [r7, #2048] - mov r2, fp + mov r2, r10 str ip, [r7, #2048] str ip, [r7, #2048] str ip, [r7, #2048] - str r3, [sp, #8] + str r3, [sp, #16] mov r3, r8 - ldr r1, [sp, #20] - str ip, [sp, #28] + ldr r1, [sp, #28] + str ip, [sp, #36] bl FlashReadRawPage adds r3, r0, #1 - beq .L1547 + beq .L1553 cmp r4, #-1 it eq moveq r4, r0 cmp r0, r5 - ldr ip, [sp, #28] - bcc .L1557 + ldr ip, [sp, #36] + bcc .L1563 mov r8, ip - mov fp, ip -.L1547: - ldr r9, [sp, #8] - b .L1546 -.L1557: + mov r10, ip +.L1553: + ldr r9, [sp, #16] + b .L1552 +.L1563: mov r4, r0 mov r8, ip - mov fp, ip -.L1549: - ldr r2, [sp, #16] + mov r10, ip +.L1555: + ldr r2, [sp, #24] movs r0, #200 - ldr r3, [sp, #12] + ldr r3, [sp, #20] movs r7, #0 add r3, r3, r2, lsl #8 movs r2, #239 - str r3, [sp, #8] + str r3, [sp, #16] str r2, [r3, #2056] movs r2, #137 str r2, [r3, #2052] - bl NandcDelayns + bl ndelay cmp r4, r5 - ldr r3, [sp, #8] + ldr r3, [sp, #16] str r7, [r3, #2048] str r7, [r3, #2048] str r7, [r3, #2048] str r7, [r3, #2048] - bcc .L1551 + bcc .L1557 adds r1, r4, #1 - ldr r0, .L1567+12 + mov r3, r9 it ne movne r4, #256 - mov r1, r9 + ldr r0, .L1573+12 str r4, [sp] - mov r3, r9 - ldr r2, [sp, #20] + mov r1, r9 + ldr r2, [sp, #28] bl printk - cmp r10, #0 - bne .L1553 - ldr r3, .L1567 - ldrb r3, [r3, #144] @ zero_extendqisi2 - cbz r3, .L1562 + ldr r3, [sp, #12] + cbnz r3, .L1559 + ldrb r3, [fp, #148] @ zero_extendqisi2 + cbz r3, .L1568 adds r2, r4, #1 - bne .L1562 + bne .L1568 mov r0, r6 movs r1, #3 bl micron_auto_read_calibration_config - mov r10, #1 - b .L1555 -.L1553: + movs r3, #1 + str r3, [sp, #12] + b .L1561 +.L1559: mov r0, r6 mov r1, r7 bl micron_auto_read_calibration_config adds r3, r4, #1 it ne movne r4, #256 - b .L1562 -.L1551: - cmp r10, #0 - beq .L1562 + b .L1568 +.L1557: + ldr r3, [sp, #12] + cbz r3, .L1568 mov r0, r6 mov r1, r7 bl micron_auto_read_calibration_config mov r4, #256 -.L1562: +.L1568: mov r0, r4 - add sp, sp, #36 + add sp, sp, #44 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1568: +.L1574: .align 2 -.L1567: +.L1573: .word .LANCHOR0 .word 1431655766 .word .LANCHOR4 @@ -10057,30 +10098,30 @@ HynixReadRetrial: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 mov r8, r3 - ldr r5, .L1586 + ldr r5, .L1592 mov r10, r2 mov r7, r0 mov fp, r1 adds r2, r5, r0 mov r6, #-1 ldr r3, [r5, #44] - ldrb r4, [r2, #1222] @ zero_extendqisi2 - ldrb r9, [r5, #1212] @ zero_extendqisi2 + ldrb r4, [r2, #1224] @ zero_extendqisi2 + ldrb r9, [r5, #1214] @ zero_extendqisi2 ldrb r3, [r3, #19] @ zero_extendqisi2 subs r3, r3, #7 cmp r3, #1 it ls - ldrbls r4, [r2, #1230] @ zero_extendqisi2 + ldrbls r4, [r2, #1232] @ zero_extendqisi2 bl NandcWaitFlashReady mov ip, #0 -.L1571: +.L1577: cmp ip, r9 - bcs .L1575 + bcs .L1581 adds r4, r4, #1 mov r0, r7 - ldrb r1, [r5, #1211] @ zero_extendqisi2 + ldrb r1, [r5, #1213] @ zero_extendqisi2 uxtb r4, r4 - ldr r2, .L1586+4 + ldr r2, .L1592+4 cmp r4, r9 it cs movcs r4, #0 @@ -10094,22 +10135,22 @@ HynixReadRetrial: bl FlashReadRawPage adds r2, r0, #1 ldr ip, [sp, #4] - beq .L1573 + beq .L1579 ldrb r3, [r5, #2312] @ zero_extendqisi2 cmp r6, #-1 it eq moveq r6, r0 add r3, r3, r3, lsl #1 cmp r0, r3, asr #2 - bcc .L1580 + bcc .L1586 mov r8, #0 mov r10, r8 -.L1573: +.L1579: add ip, ip, #1 - b .L1571 -.L1580: + b .L1577 +.L1586: mov r6, r0 -.L1575: +.L1581: ldr r3, [r5, #44] add r7, r7, r5 ldrb r3, [r3, #19] @ zero_extendqisi2 @@ -10117,24 +10158,24 @@ HynixReadRetrial: cmp r3, #1 ldrb r3, [r5, #2312] @ zero_extendqisi2 ite ls - strbls r4, [r7, #1230] - strbhi r4, [r7, #1222] + strbls r4, [r7, #1232] + strbhi r4, [r7, #1224] add r3, r3, r3, lsl #1 cmp r6, r3, asr #2 - bcc .L1579 + bcc .L1585 adds r3, r6, #1 it ne movne r6, #256 -.L1579: +.L1585: mov r0, r6 add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1587: +.L1593: .align 2 -.L1586: +.L1592: .word .LANCHOR0 - .word .LANCHOR0+1214 + .word .LANCHOR0+1216 .fnend .size HynixReadRetrial, .-HynixReadRetrial .align 1 @@ -10154,15 +10195,15 @@ samsung_read_retrial: mov r7, r3 str r1, [sp, #16] bl NandcWaitFlashReady - ldr r3, .L1614 + ldr r3, .L1620 add r2, r3, r9, lsl #3 - ldr r4, [r2, #12] - ldrb r2, [r2, #16] @ zero_extendqisi2 + ldr r4, [r3, r9, lsl #3] + ldrb r2, [r2, #4] @ zero_extendqisi2 str r2, [sp, #12] ldrb r2, [r3, #2228] @ zero_extendqisi2 str r3, [sp, #20] cmp r2, #0 - bne .L1589 + bne .L1595 ldr r3, [sp, #12] mov r5, #-1 movs r6, #1 @@ -10170,7 +10211,7 @@ samsung_read_retrial: add r8, r4, fp addw r3, r8, #2056 str r3, [sp, #24] -.L1593: +.L1599: ldr r3, [sp, #24] mov ip, #0 ldr r1, [sp, #16] @@ -10182,7 +10223,7 @@ samsung_read_retrial: movs r3, #141 str r3, [r8, #2052] mov r2, r10 - ldr r3, .L1614+4 + ldr r3, .L1620+4 ldrsb r3, [r6, r3] str r3, [r8, #2048] mov r3, r7 @@ -10191,7 +10232,7 @@ samsung_read_retrial: str ip, [r8, #2048] bl FlashReadRawPage adds r1, r0, #1 - beq .L1590 + beq .L1596 ldr r3, [sp, #20] cmp r5, #-1 it eq @@ -10199,35 +10240,35 @@ samsung_read_retrial: ldrb r3, [r3, #2312] @ zero_extendqisi2 add r3, r3, r3, lsl #1 cmp r0, r3, asr #2 - bcc .L1601 + bcc .L1607 ldr ip, [sp, #28] mov r7, ip mov r10, ip -.L1590: +.L1596: adds r6, r6, #1 cmp r6, #26 - bne .L1593 - b .L1592 -.L1601: + bne .L1599 + b .L1598 +.L1607: mov r5, r0 -.L1592: +.L1598: add fp, fp, r4 movs r3, #239 str r3, [fp, #2056] ldr r3, [sp, #12] add r4, r4, r3, lsl #8 movs r3, #141 - b .L1613 -.L1589: + b .L1619 +.L1595: ldr r3, [sp, #12] mov r5, #-1 - ldr r8, .L1614+12 + ldr r8, .L1620+12 movs r6, #1 lsl ip, r3, #8 add fp, r4, ip addw r3, fp, #2056 str r3, [sp, #24] -.L1598: +.L1604: ldr r3, [sp, #24] mov r0, r9 ldr r1, [sp, #16] @@ -10250,7 +10291,7 @@ samsung_read_retrial: bl FlashReadRawPage adds r2, r0, #1 ldr ip, [sp, #28] - beq .L1595 + beq .L1601 ldr r3, [sp, #20] cmp r5, #-1 it eq @@ -10258,25 +10299,25 @@ samsung_read_retrial: ldrb r3, [r3, #2312] @ zero_extendqisi2 add r3, r3, r3, lsl #1 cmp r0, r3, asr #2 - bcc .L1602 + bcc .L1608 movs r7, #0 mov r10, r7 -.L1595: +.L1601: adds r6, r6, #1 add r8, r8, #4 cmp r6, #26 - bne .L1598 - b .L1597 -.L1602: + bne .L1604 + b .L1603 +.L1608: mov r5, r0 -.L1597: +.L1603: add ip, ip, r4 movs r3, #239 str r3, [ip, #2056] ldr r3, [sp, #12] add r4, r4, r3, lsl #8 movs r3, #137 -.L1613: +.L1619: str r3, [r4, #2052] movs r3, #0 str r3, [r4, #2048] @@ -10287,9 +10328,9 @@ samsung_read_retrial: ldrb r3, [r3, #2312] @ zero_extendqisi2 add r3, r3, r3, lsl #1 cmp r5, r3, asr #2 - bcc .L1599 + bcc .L1605 adds r3, r5, #1 - ldr r0, .L1614+8 + ldr r0, .L1620+8 it ne movne r5, #256 mov r1, r6 @@ -10297,16 +10338,16 @@ samsung_read_retrial: mov r3, r6 ldr r2, [sp, #16] bl printk -.L1599: +.L1605: mov r0, r9 bl NandcWaitFlashReady mov r0, r5 add sp, sp, #36 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1615: +.L1621: .align 2 -.L1614: +.L1620: .word .LANCHOR0 .word .LANCHOR3+16 .word .LC95 @@ -10326,23 +10367,23 @@ FlashProgPage: .save {r4, r5, r6, r7, r8, lr} .pad #8 mov r8, r3 - ldr r3, .L1619 + ldr r3, .L1625 mov r5, r1 mov r7, r2 mov r4, r0 ldrb r6, [r3, #481] @ zero_extendqisi2 - cbnz r0, .L1617 - ldr r2, .L1619+4 - ldrb r3, [r2, #1] @ zero_extendqisi2 - ldr r1, [r2, #4] + cbnz r0, .L1623 + ldr r2, .L1625+4 + ldrb r3, [r2, #33] @ zero_extendqisi2 + ldr r1, [r2, #36] muls r1, r3, r1 cmp r5, r1 - bcs .L1617 - ldrb r3, [r2] @ zero_extendqisi2 + bcs .L1623 + ldrb r3, [r2, #32] @ zero_extendqisi2 cmp r3, #0 it ne movne r6, #4 -.L1617: +.L1623: mov r0, r4 bl NandcWaitFlashReady mov r0, r4 @@ -10371,9 +10412,9 @@ FlashProgPage: add sp, sp, #8 @ sp needed pop {r4, r5, r6, r7, r8, pc} -.L1620: +.L1626: .align 2 -.L1619: +.L1625: .word .LANCHOR1 .word .LANCHOR0 .fnend @@ -10390,119 +10431,119 @@ FlashSavePhyInfo: push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 - ldr r4, .L1634 - ldr r5, .L1634+4 - ldr r8, .L1634+12 - ldr r3, [r4, #1184] + ldr r4, .L1640 + ldr r5, .L1640+4 + ldr r8, .L1640+12 + ldr r3, [r4, #1192] mov fp, r4 - ldrb r0, [r4, #1210] @ zero_extendqisi2 + ldrb r0, [r4, #1218] @ zero_extendqisi2 mov r10, r5 - str r3, [r4, #1196] + str r3, [r4, #1204] bl FlashBchSel movs r1, #0 mov r2, #2048 - ldr r0, [r4, #1184] + ldr r0, [r4, #1192] bl ftl_memset - ldr r3, [r4, #1196] + ldr r3, [r4, #1204] addw r1, r5, #2068 movs r2, #32 str r8, [r3] - ldr r0, [r4, #1196] + ldr r0, [r4, #1204] ldrb r3, [r5, #2230] @ zero_extendqisi2 adds r0, r0, #16 strh r3, [r0, #-4] @ movhi - ldrb r3, [r5, #1] @ zero_extendqisi2 + ldrb r3, [r5, #33] @ zero_extendqisi2 strh r3, [r0, #-2] @ movhi ldrb r3, [r5, #2252] @ zero_extendqisi2 str r3, [r0, #1060] bl ftl_memcpy - ldr r0, [r4, #1196] + ldr r0, [r4, #1204] addw r1, r5, #2232 movs r2, #8 adds r0, r0, #80 bl ftl_memcpy - ldr r0, [r4, #1196] - addw r1, r5, #1172 + ldr r0, [r4, #1204] + add r1, r5, #1176 movs r2, #32 adds r0, r0, #96 bl ftl_memcpy - ldr r0, [r4, #1196] - ldr r1, .L1634+8 + ldr r0, [r4, #1204] + ldr r1, .L1640+8 movs r2, #32 adds r0, r0, #160 bl ftl_memcpy - ldr r0, [r4, #1196] + ldr r0, [r4, #1204] add r1, r5, #48 movs r2, #32 adds r0, r0, #192 bl ftl_memcpy - ldr r0, [r4, #1196] + ldr r0, [r4, #1204] mov r2, #852 - addw r1, r5, #1210 + addw r1, r5, #1212 adds r0, r0, #224 bl ftl_memcpy - ldr r6, [r4, #1196] + ldr r6, [r4, #1204] movw r1, #2036 add r0, r6, #12 bl js_hash mov r3, #1592 str r3, [r6, #4] - ldr r3, [r4, #1212] - str r3, [r4, #1196] + ldr r3, [r4, #1220] + str r3, [r4, #1204] str r0, [r6, #8] movs r0, #0 bl flash_enter_slc_mode movs r6, #0 mov r7, r6 -.L1627: - ldr r1, [r5, #4] +.L1633: + ldr r1, [r5, #36] movs r0, #0 mov r2, r0 muls r1, r7, r1 bl FlashEraseBlock - ldrb r9, [r5, #144] @ zero_extendqisi2 + ldrb r9, [r5, #148] @ zero_extendqisi2 cmp r9, #0 - beq .L1622 + beq .L1628 mov r9, #0 -.L1623: - ldr r1, [r5, #4] +.L1629: + ldr r1, [r5, #36] movs r0, #0 - ldr r2, [r4, #1184] + ldr r2, [r4, #1192] mov r3, r0 mla r1, r1, r7, r9 add r9, r9, #1 bl FlashProgPage cmp r9, #10 - bne .L1623 - b .L1624 -.L1622: - ldr r1, [r10, #4] + bne .L1629 + b .L1630 +.L1628: + ldr r1, [r10, #36] mov r3, r9 - ldr r2, [r4, #1184] + ldr r2, [r4, #1192] mov r0, r9 muls r1, r7, r1 bl FlashProgPage - ldr r1, [r10, #4] + ldr r1, [r10, #36] mov r0, r9 - ldr r2, [r4, #1184] + ldr r2, [r4, #1192] mov r3, r9 muls r1, r7, r1 adds r1, r1, #1 bl FlashProgPage -.L1624: - ldr r1, [r5, #4] +.L1630: + ldr r1, [r5, #36] movs r0, #0 - ldr r2, [r4, #1212] + ldr r2, [r4, #1220] mov r3, r0 muls r1, r7, r1 bl FlashReadRawPage adds r2, r7, #1 adds r0, r0, #1 - beq .L1625 - ldr r9, [fp, #1196] + beq .L1631 + ldr r9, [fp, #1204] ldr r3, [r9] cmp r3, r8 - bne .L1625 + bne .L1631 add r0, r9, #12 movw r1, #2036 str r2, [sp, #4] @@ -10510,22 +10551,22 @@ FlashSavePhyInfo: ldr r3, [r9, #8] cmp r3, r0 ldr r2, [sp, #4] - bne .L1625 - ldr r3, [r10, #4] + bne .L1631 + ldr r3, [r10, #36] cmp r6, #1 - str r2, [fp, #1204] + str r2, [fp, #1212] mul r3, r3, r7 - str r3, [fp, #1200] - beq .L1628 + str r3, [fp, #1208] + beq .L1634 movs r6, #1 -.L1625: +.L1631: cmp r2, #4 mov r7, r2 - bne .L1627 - b .L1626 -.L1628: + bne .L1633 + b .L1632 +.L1634: movs r6, #2 -.L1626: +.L1632: movs r0, #0 bl flash_exit_slc_mode clz r0, r6 @@ -10534,9 +10575,9 @@ FlashSavePhyInfo: add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1635: +.L1641: .align 2 -.L1634: +.L1640: .word .LANCHOR4 .word .LANCHOR0 .word .LANCHOR1+472 @@ -10556,88 +10597,88 @@ FlashReadIdbDataRaw: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 mov r9, r0 - ldr r3, .L1655 - ldr r4, .L1655+4 + ldr r3, .L1661 + ldr r4, .L1661+4 ldr r0, [r3] @ unaligned ldr r3, [r4, #2248] ldrb r10, [r4, #2312] @ zero_extendqisi2 str r0, [sp, #4] @ unaligned - cbz r3, .L1637 + cbz r3, .L1643 movs r0, #0 bl flash_enter_slc_mode -.L1637: +.L1643: mov r0, r9 movs r1, #0 mov r2, #2048 mov r8, #-1 bl ftl_memset movs r5, #2 -.L1638: - ldrb r3, [r4, #1] @ zero_extendqisi2 +.L1644: + ldrb r3, [r4, #33] @ zero_extendqisi2 cmp r5, r3 - bcs .L1642 + bcs .L1648 movs r7, #0 -.L1640: +.L1646: add r3, sp, #4 - ldr r6, .L1655+8 + ldr r6, .L1661+8 ldrb fp, [r7, r3] @ zero_extendqisi2 mov r0, fp bl FlashBchSel - ldr r1, [r4, #4] + ldr r1, [r4, #36] movs r0, #0 - ldr r2, [r6, #1184] + ldr r2, [r6, #1192] muls r1, r5, r1 mov r3, r0 bl FlashReadRawPage adds r0, r0, #1 - bne .L1639 + bne .L1645 adds r7, r7, #1 cmp r7, #4 - bne .L1640 - b .L1641 -.L1639: - ldr r3, [r6, #1184] - ldr r2, .L1655+12 + bne .L1646 + b .L1647 +.L1645: + ldr r3, [r6, #1192] + ldr r2, .L1661+12 ldr r3, [r3] cmp r3, r2 - bne .L1641 + bne .L1647 mov r1, fp - ldr r0, .L1655+16 + ldr r0, .L1661+16 bl printk mov r2, #2048 mov r0, r9 - ldr r1, [r6, #1184] + ldr r1, [r6, #1192] bl ftl_memcpy - ldr r3, [r6, #1184] - ldr r2, .L1655+4 + ldr r3, [r6, #1192] + ldr r2, .L1661+4 ldr r3, [r3, #512] - strb r3, [r2, #1] - ldr r3, [r6, #1204] + strb r3, [r2, #33] + ldr r3, [r6, #1212] cmp r3, r5 - bls .L1645 - str r5, [r6, #1204] + bls .L1651 + str r5, [r6, #1212] bl FlashSavePhyInfo mov r8, #0 -.L1641: +.L1647: adds r5, r5, #1 - b .L1638 -.L1645: + b .L1644 +.L1651: mov r8, #0 -.L1642: +.L1648: mov r0, r10 bl FlashBchSel ldr r3, [r4, #2248] - cbz r3, .L1649 + cbz r3, .L1655 movs r0, #0 bl flash_exit_slc_mode -.L1649: +.L1655: mov r0, r8 add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1656: +.L1662: .align 2 -.L1655: +.L1661: .word .LANCHOR3+11 .word .LANCHOR0 .word .LANCHOR4 @@ -10661,56 +10702,56 @@ FlashInit: sub sp, sp, #20 mov r0, #32768 bl ftl_malloc - ldr r4, .L1780 - ldr r6, .L1780+4 + ldr r4, .L1786 + ldr r6, .L1786+4 movs r7, #0 - add r9, r6, #12 mov r8, r4 - str r0, [r4, #1184] - mov r0, #32768 - bl ftl_malloc - str r0, [r4, #1212] - mov r0, #4096 - bl ftl_malloc - str r0, [r4, #1216] + mov r10, r6 + str r0, [r4, #1192] mov r0, #32768 bl ftl_malloc str r0, [r4, #1220] mov r0, #4096 - bl ftl_malloc - movs r3, #50 - str r7, [r4, #1204] - strb r3, [r4, #1208] - strb r3, [r6, #1] - movs r3, #128 - str r7, [r4, #1188] - str r3, [r6, #4] - movs r3, #60 - strb r7, [r4, #1228] - strb r3, [r4, #1210] - strb r7, [r6, #2252] - strb r7, [r6] + bl ftl_dma32_malloc str r0, [r4, #1224] + mov r0, #32768 + bl ftl_malloc + str r0, [r4, #1228] + mov r0, #4096 + bl ftl_dma32_malloc + movs r3, #50 + str r7, [r4, #1212] + strb r3, [r4, #1216] + strb r3, [r6, #33] + movs r3, #128 + str r7, [r4, #1196] + str r3, [r6, #36] + movs r3, #60 + strb r7, [r4, #1236] + strb r3, [r4, #1218] + strb r7, [r6, #2252] + strb r7, [r6, #32] + str r0, [r4, #1232] mov r0, r5 bl NandcInit addw r5, r6, #2068 mov r4, r6 -.L1663: - add r3, r9, r7, lsl #3 +.L1669: + add r3, r4, r7, lsl #3 uxtb fp, r7 - ldr r6, [r9, r7, lsl #3] - ldrb r10, [r3, #4] @ zero_extendqisi2 + ldr r6, [r4, r7, lsl #3] + ldrb r9, [r3, #4] @ zero_extendqisi2 mov r0, fp bl FlashReset mov r0, fp bl NandcFlashCs movs r3, #144 - add r6, r6, r10, lsl #8 + add r6, r6, r9, lsl #8 movs r0, #200 - mov r10, #0 + mov r9, #0 str r3, [r6, #2056] - str r10, [r6, #2052] - bl NandcDelayns + str r9, [r6, #2052] + bl ndelay ldr r2, [r6, #2048] uxtb r2, r2 strb r2, [r5] @@ -10725,29 +10766,29 @@ FlashInit: strb r1, [r5, #4] ldr r1, [r6, #2048] strb r1, [r5, #5] - bne .L1658 + bne .L1664 movs r2, #239 movs r0, #200 str r2, [r6, #2056] movs r2, #1 str r2, [r6, #2052] - bl NandcDelayns + bl ndelay movs r2, #4 str r2, [r6, #2048] - str r10, [r6, #2048] - str r10, [r6, #2048] - str r10, [r6, #2048] -.L1658: + str r9, [r6, #2048] + str r9, [r6, #2048] + str r9, [r6, #2048] +.L1664: mov r0, fp bl NandcFlashDeCs ldrb r2, [r5] @ zero_extendqisi2 subs r3, r2, #1 uxtb r3, r3 cmp r3, #253 - bhi .L1659 + bhi .L1665 ldrb r1, [r5, #2] @ zero_extendqisi2 ldrb r3, [r5, #1] @ zero_extendqisi2 - ldr r0, .L1780+8 + ldr r0, .L1786+8 str r1, [sp] ldrb r1, [r5, #3] @ zero_extendqisi2 str r1, [sp, #4] @@ -10757,18 +10798,17 @@ FlashInit: str r1, [sp, #12] adds r1, r7, #1 bl printk -.L1659: - cbnz r7, .L1660 +.L1665: + cbnz r7, .L1666 ldrb r3, [r4, #2068] @ zero_extendqisi2 subs r3, r3, #1 uxtb r3, r3 cmp r3, #253 - bhi .L1716 - ldr r3, .L1780+4 - ldrb r3, [r3, #2069] @ zero_extendqisi2 + bhi .L1722 + ldrb r3, [r10, #2069] @ zero_extendqisi2 cmp r3, #255 - beq .L1716 -.L1660: + beq .L1722 +.L1666: ldrb r3, [r5] @ zero_extendqisi2 adds r7, r7, #1 adds r5, r5, #8 @@ -10777,142 +10817,142 @@ FlashInit: moveq r3, #44 strbeq r3, [r5, #-8] cmp r7, #4 - bne .L1663 + bne .L1669 ldrb r3, [r4, #2068] @ zero_extendqisi2 cmp r3, #173 - beq .L1664 - ldr r3, .L1780+4 + beq .L1670 + ldr r3, .L1786+4 ldr r0, [r3, #2256] bl NandcSetDdrMode -.L1664: - ldr r6, .L1780+4 +.L1670: + ldr r6, .L1786+4 movs r1, #0 mov r2, #852 - ldr r5, .L1780+12 - addw r0, r6, #1210 + ldr r5, .L1786+12 + addw r0, r6, #1212 bl ftl_memset - ldr r0, .L1780+16 + ldr r0, .L1786+16 add r3, r0, #472 str r3, [r4, #44] movs r3, #0 - strb r3, [r4, #8] + strb r3, [r4, #40] ldr r3, [r4, #2264] cmp r3, r5 - bne .L1665 + bne .L1671 ldrb r2, [r0, #491] @ zero_extendqisi2 cmp r2, #50 itt ne movne r2, #1 strne r2, [r6, #2248] -.L1665: +.L1671: ldrb r6, [r4, #2069] @ zero_extendqisi2 cmp r6, #161 - beq .L1666 + beq .L1672 cmp r6, #241 - beq .L1666 + beq .L1672 cmp r6, #218 - beq .L1666 + beq .L1672 and r2, r6, #253 cmp r2, #209 - beq .L1666 + beq .L1672 cmp r6, #220 - bne .L1667 - ldr r2, .L1780+4 + bne .L1673 + ldr r2, .L1786+4 ldrb r2, [r2, #2071] @ zero_extendqisi2 cmp r2, #149 - bne .L1667 -.L1666: - movs r7, #16 - strb r7, [r4, #1] - strb r7, [r8, #1210] - movs r1, #1 - ldrb r7, [r4, #2068] @ zero_extendqisi2 - strb r1, [r4] - cmp r7, #152 - ldr r2, .L1780 - strb r7, [r0, #3417] - strb r6, [r0, #3418] - bne .L1669 - ldr r7, .L1780+4 - ldrsb r7, [r7, #2072] - cmp r7, #0 - blt .L1670 - movs r1, #24 - strb r1, [r2, #1210] -.L1669: - cmp r3, r5 - beq .L1672 - movw r2, #2049 - cmp r3, r2 bne .L1673 .L1672: + movs r7, #16 + strb r7, [r4, #33] + strb r7, [r8, #1218] + movs r1, #1 + ldrb r7, [r4, #2068] @ zero_extendqisi2 + strb r1, [r4, #32] + cmp r7, #152 + ldr r2, .L1786 + strb r7, [r0, #3417] + strb r6, [r0, #3418] + bne .L1675 + ldr r7, .L1786+4 + ldrsb r7, [r7, #2072] + cmp r7, #0 + blt .L1676 + movs r1, #24 + strb r1, [r2, #1218] +.L1675: + cmp r3, r5 + beq .L1678 + movw r2, #2049 + cmp r3, r2 + bne .L1679 +.L1678: movs r3, #16 - strb r3, [r8, #1210] -.L1673: + strb r3, [r8, #1218] +.L1679: cmp r6, #218 - bne .L1674 + bne .L1680 mov r3, #2048 - b .L1775 -.L1674: + b .L1781 +.L1680: cmp r6, #220 - bne .L1676 + bne .L1682 mov r3, #4096 -.L1775: +.L1781: strh r3, [r0, #3430] @ movhi strb r6, [r0, #3418] - b .L1675 -.L1676: + b .L1681 +.L1682: cmp r6, #211 itttt eq moveq r3, #4096 strheq r3, [r0, #3430] @ movhi moveq r3, #2 strbeq r3, [r0, #3429] -.L1675: - ldr r1, .L1780+20 +.L1681: + ldr r1, .L1786+20 movs r2, #32 - ldr r0, .L1780+24 + ldr r0, .L1786+24 bl ftl_memcpy - ldr r0, .L1780+28 + ldr r0, .L1786+28 movs r2, #32 add r1, r0, #2944 bl ftl_memcpy -.L1667: - ldrb r3, [r4] @ zero_extendqisi2 - ldr r6, .L1780+4 +.L1673: + ldrb r3, [r4, #32] @ zero_extendqisi2 + ldr r6, .L1786+4 cmp r3, #0 - bne .L1677 + bne .L1683 bl FlashLoadPhyInfoInRam - cbnz r0, .L1679 + cbnz r0, .L1685 ldr r3, [r6, #44] ldrh r3, [r3, #16] lsrs r3, r3, #8 lsls r7, r3, #31 and r0, r3, #7 strb r0, [r6, #2229] - bmi .L1679 + bmi .L1685 movs r3, #1 strb r3, [r6, #2252] bl FlashSetInterfaceMode ldrb r0, [r6, #2229] @ zero_extendqisi2 bl NandcSetMode -.L1679: +.L1685: ldr r3, [r4, #44] - ldr r6, .L1780+4 + ldr r6, .L1786+4 ldrb r3, [r3, #26] @ zero_extendqisi2 - strb r3, [r4, #144] + strb r3, [r4, #148] bl FlashLoadPhyInfo cmp r0, #0 - beq .L1677 + beq .L1683 ldr r3, [r6, #2256] - cbz r3, .L1682 + cbz r3, .L1688 movs r0, #1 bl FlashSetInterfaceMode movs r0, #1 - b .L1776 -.L1781: + b .L1782 +.L1787: .align 2 -.L1780: +.L1786: .word .LANCHOR4 .word .LANCHOR0 .word .LC97 @@ -10921,75 +10961,75 @@ FlashInit: .word .LANCHOR1+3292 .word .LANCHOR0+48 .word .LANCHOR1+472 -.L1682: +.L1688: ldrb r0, [r6, #2229] @ zero_extendqisi2 bl FlashSetInterfaceMode ldrb r0, [r6, #2229] @ zero_extendqisi2 -.L1776: +.L1782: bl NandcSetMode bl FlashLoadPhyInfo cmp r0, #0 - beq .L1677 + beq .L1683 movs r0, #1 - ldr r6, .L1782 + ldr r6, .L1788 bl FlashSetInterfaceMode movs r0, #1 bl NandcSetMode ldr r3, [r4, #44] - ldr r0, .L1782+4 + ldr r0, .L1788+4 ldrh r1, [r3, #14] bl printk bl FlashLoadPhyInfoInRam adds r1, r0, #1 - beq .L1736 + beq .L1742 bl FlashDieInfoInit ldr r3, [r6, #44] ldrb r0, [r3, #19] @ zero_extendqisi2 bl FlashGetReadRetryDefault - ldr r2, .L1782+8 + ldr r2, .L1788+8 ldr r3, [r6, #44] ldrh r2, [r2, #3270] ldrb r1, [r3, #9] @ zero_extendqisi2 addw r2, r2, #4095 cmp r1, r2, asr #12 - blt .L1684 + blt .L1690 ldrh r2, [r3, #14] adds r2, r2, #255 cmp r1, r2, asr #8 - bge .L1685 -.L1684: + bge .L1691 +.L1690: ldrh r2, [r3, #14] bic r2, r2, #255 strh r2, [r3, #14] @ movhi -.L1685: +.L1691: ldrb r3, [r4, #2229] @ zero_extendqisi2 tst r3, #6 - beq .L1686 + beq .L1692 bl FlashSavePhyInfo movs r0, #0 bl flash_enter_slc_mode movs r0, #0 - ldr r1, [r8, #1200] + ldr r1, [r8, #1208] bl FlashDdrParaScan movs r0, #0 bl flash_exit_slc_mode -.L1686: +.L1692: bl FlashSavePhyInfo -.L1677: +.L1683: ldr r2, [r4, #44] mov r9, #0 - str r9, [r8, #1192] - ldr r7, .L1782 + str r9, [r8, #1200] + ldr r7, .L1788 ldrb r3, [r2, #26] @ zero_extendqisi2 ldrh r0, [r2, #10] ldrb r10, [r2, #18] @ zero_extendqisi2 - strb r3, [r4, #144] + strb r3, [r4, #148] ldrh r3, [r2, #16] - ldr r6, .L1782+12 + ldr r6, .L1788+12 ubfx r1, r3, #7, #1 - strb r1, [r4, #8] + strb r1, [r4, #40] ubfx r1, r3, #3, #1 - strb r1, [r8, #1229] + strb r1, [r8, #1237] ubfx r1, r3, #4, #1 ubfx r3, r3, #8, #3 strb r1, [r4, #2240] @@ -11003,257 +11043,257 @@ FlashInit: ldr r3, [r4, #44] ldrh r2, [r3, #16] lsls r2, r2, #25 - bpl .L1688 + bpl .L1694 ldrb r0, [r3, #19] @ zero_extendqisi2 - ldrb r3, [r7, #1211] @ zero_extendqisi2 - strb r0, [r7, #1208] - strb r3, [r7, #1209] - ldrb r3, [r7, #1212] @ zero_extendqisi2 - strb r3, [r6, #1209] + ldrb r3, [r7, #1213] @ zero_extendqisi2 + strb r0, [r7, #80] + strb r3, [r7, #81] + ldrb r3, [r7, #1214] @ zero_extendqisi2 + strb r3, [r6, #1217] subs r3, r0, #1 cmp r3, #7 - bhi .L1689 - ldr r3, .L1782+16 - str r3, [r6, #1192] + bhi .L1695 + ldr r3, .L1788+16 + str r3, [r6, #1200] subs r3, r0, #5 cmp r3, #1 - bls .L1690 + bls .L1696 cmp r0, #8 - bne .L1691 -.L1690: + bne .L1697 +.L1696: cmp r0, #7 mov r3, #1 str r3, [r4, #2304] - beq .L1717 + beq .L1723 cmp r0, #8 - b .L1779 -.L1717: - ldr r3, .L1782+20 -.L1693: + b .L1785 +.L1723: + ldr r3, .L1788+20 +.L1699: subs r1, r3, #1 movs r2, #0 adds r3, r3, #31 -.L1694: +.L1700: ldrsb r6, [r1, #1]! cmp r6, #0 it eq addeq r2, r2, #1 cmp r1, r3 - bne .L1694 + bne .L1700 cmp r2, #27 - bls .L1688 + bls .L1694 bl FlashGetReadRetryDefault bl FlashSavePhyInfo - b .L1688 -.L1689: + b .L1694 +.L1695: sub r3, r0, #17 cmp r3, #2 - bhi .L1696 - ldr r3, .L1782+24 + bhi .L1702 + ldr r3, .L1788+24 cmp r0, #19 - str r3, [r6, #1192] + str r3, [r6, #1200] ite ne movne r3, #7 moveq r3, #15 - strb r3, [r6, #1209] - b .L1688 -.L1696: + strb r3, [r6, #1217] + b .L1694 +.L1702: cmp r0, #33 - beq .L1698 + beq .L1704 sub r3, r0, #65 cmp r3, #1 - bhi .L1699 -.L1698: - ldr r3, .L1782+28 - str r3, [r8, #1192] + bhi .L1705 +.L1704: + ldr r3, .L1788+28 + str r3, [r8, #1200] movs r3, #4 - strb r3, [r4, #1209] + strb r3, [r4, #81] movs r3, #7 - strb r3, [r8, #1209] - b .L1688 -.L1699: + strb r3, [r8, #1217] + b .L1694 +.L1705: sub r3, r0, #67 uxtb r3, r3 cmp r3, #1 - bls .L1700 + bls .L1706 sub r2, r0, #34 cmp r2, #1 - bhi .L1701 -.L1700: - ldr r2, .L1782+28 + bhi .L1707 +.L1706: + ldr r2, .L1788+28 cmp r0, #35 - str r2, [r8, #1192] - beq .L1702 + str r2, [r8, #1200] + beq .L1708 cmp r0, #68 - beq .L1702 - ldr r2, .L1782+12 + beq .L1708 + ldr r2, .L1788+12 movs r1, #7 - strb r1, [r2, #1209] - b .L1703 -.L1702: + strb r1, [r2, #1217] + b .L1709 +.L1708: movs r2, #17 - strb r2, [r8, #1209] -.L1703: + strb r2, [r8, #1217] +.L1709: cmp r3, #1 ite ls movls r3, #4 movhi r3, #5 - strb r3, [r4, #1209] - b .L1688 -.L1701: + strb r3, [r4, #81] + b .L1694 +.L1707: cmp r0, #49 - bne .L1705 - ldr r3, .L1782+32 - str r3, [r6, #1192] - b .L1688 -.L1705: + bne .L1711 + ldr r3, .L1788+32 + str r3, [r6, #1200] + b .L1694 +.L1711: cmp r0, #50 ittt eq streq r9, [r7, #2248] - ldreq r3, .L1782+36 - streq r3, [r6, #1192] -.L1688: + ldreq r3, .L1788+36 + streq r3, [r6, #1200] +.L1694: ldr r2, [r4, #2264] - ldr r3, .L1782 + ldr r3, .L1788 cmp r2, r5 - bne .L1706 - ldrb r1, [r3, #144] @ zero_extendqisi2 - cbz r1, .L1706 + bne .L1712 + ldrb r1, [r3, #148] @ zero_extendqisi2 + cbz r1, .L1712 ldr r3, [r3, #44] movs r1, #0 strb r1, [r3, #18] -.L1706: +.L1712: ldrb r1, [r4, #2068] @ zero_extendqisi2 - ldr r3, .L1782 + ldr r3, .L1788 cmp r1, #44 - bne .L1707 + bne .L1713 ldrb r1, [r3, #2252] @ zero_extendqisi2 - cbz r1, .L1707 + cbz r1, .L1713 cmp r2, r5 - bne .L1708 - ldrb r3, [r3, #144] @ zero_extendqisi2 - cbnz r3, .L1707 -.L1708: + bne .L1714 + ldrb r3, [r3, #148] @ zero_extendqisi2 + cbnz r3, .L1713 +.L1714: movs r0, #1 movs r3, #0 strb r3, [r4, #2252] bl FlashSetInterfaceMode movs r0, #1 bl NandcSetMode -.L1707: +.L1713: ldrb r3, [r4, #2229] @ zero_extendqisi2 tst r3, #6 - beq .L1709 - ldr r2, .L1782 + beq .L1715 + ldr r2, .L1788 ldrb r2, [r2, #2252] @ zero_extendqisi2 - cbnz r2, .L1710 + cbnz r2, .L1716 lsls r3, r3, #31 - bmi .L1709 -.L1710: + bmi .L1715 +.L1716: movs r0, #0 bl flash_enter_slc_mode movs r0, #0 - ldr r1, [r8, #1200] + ldr r1, [r8, #1208] bl FlashDdrParaScan movs r0, #0 bl flash_exit_slc_mode -.L1709: +.L1715: ldr r3, [r4, #44] movs r7, #16 - ldr r6, .L1782 + ldr r6, .L1788 ldrb r0, [r3, #20] @ zero_extendqisi2 bl FlashBchSel - ldr r0, .L1782+40 + ldr r0, .L1788+40 bl FlashReadIdbDataRaw - ldr r0, .L1782+44 - strb r7, [r4, #1] + ldr r0, .L1788+44 + strb r7, [r4, #33] bl FlashTimingCfg ldr r5, [r4, #44] ldrb r2, [r4, #2069] @ zero_extendqisi2 ldrb r3, [r5, #12] @ zero_extendqisi2 ldrh r8, [r5, #14] - strh r3, [r4, #124] @ movhi + strh r3, [r4, #128] @ movhi ldrb r3, [r5, #7] @ zero_extendqisi2 - str r3, [r4, #120] + str r3, [r4, #124] lsl r3, r2, r7 orr r2, r3, r2, lsl #8 ldrb r3, [r4, #2068] @ zero_extendqisi2 orrs r3, r3, r2 ldrb r2, [r4, #2071] @ zero_extendqisi2 orr r3, r3, r2, lsl #24 - str r3, [r4, #116] + str r3, [r4, #120] ldrb r3, [r4, #2230] @ zero_extendqisi2 - strh r3, [r4, #126] @ movhi + strh r3, [r4, #130] @ movhi ldrb r3, [r5, #13] @ zero_extendqisi2 - strh r8, [r4, #130] @ movhi - strh r3, [r4, #128] @ movhi - ldrh r3, [r5, #10] + strh r8, [r4, #134] @ movhi strh r3, [r4, #132] @ movhi + ldrh r3, [r5, #10] + strh r3, [r4, #136] @ movhi ldrb r1, [r5, #12] @ zero_extendqisi2 ldrh r0, [r5, #10] bl __aeabi_idiv - strh r0, [r4, #134] @ movhi + strh r0, [r4, #138] @ movhi ldrb r2, [r5, #9] @ zero_extendqisi2 - strh r2, [r4, #136] @ movhi + strh r2, [r4, #140] @ movhi ldrb r1, [r5, #9] @ zero_extendqisi2 ldrh r3, [r5, #10] smulbb r3, r1, r3 mov r1, #512 - strh r1, [r4, #140] @ movhi - ldrb r1, [r4, #1] @ zero_extendqisi2 - strh r1, [r4, #142] @ movhi + strh r1, [r4, #144] @ movhi + ldrb r1, [r4, #33] @ zero_extendqisi2 + strh r1, [r4, #146] @ movhi uxth r3, r3 - ldrb r1, [r4] @ zero_extendqisi2 - strh r3, [r4, #138] @ movhi + ldrb r1, [r4, #32] @ zero_extendqisi2 + strh r3, [r4, #142] @ movhi cmp r1, #1 - bne .L1712 + bne .L1718 lsls r3, r3, #1 lsr r1, r8, #1 lsls r2, r2, #1 - strh r3, [r6, #138] @ movhi - strb r7, [r6, #1] - movs r3, #8 - strh r1, [r6, #130] @ movhi - strh r2, [r6, #136] @ movhi strh r3, [r6, #142] @ movhi -.L1712: + strb r7, [r6, #33] + movs r3, #8 + strh r1, [r6, #134] @ movhi + strh r2, [r6, #140] @ movhi + strh r3, [r6, #146] @ movhi +.L1718: ldrb r0, [r5, #20] @ zero_extendqisi2 bl FlashBchSel bl ftl_flash_suspend movs r0, #0 - b .L1736 -.L1716: + b .L1742 +.L1722: mvn r0, #1 - b .L1736 -.L1691: + b .L1742 +.L1697: cmp r0, #7 -.L1779: - beq .L1717 - ldr r3, .L1782+48 - b .L1693 -.L1670: - strb r1, [r2, #1228] - b .L1669 -.L1736: - add sp, sp, #20 - @ sp needed - pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1783: +.L1785: + beq .L1723 + ldr r3, .L1788+48 + b .L1699 +.L1676: + strb r1, [r2, #1236] + b .L1675 +.L1789: .align 2 -.L1782: +.L1788: .word .LANCHOR0 .word .LC98 .word .LANCHOR2 .word .LANCHOR4 .word HynixReadRetrial - .word .LANCHOR0+1238 + .word .LANCHOR0+1240 .word MicronReadRetrial .word ToshibaReadRetrial .word SamsungReadRetrial .word samsung_read_retrial .word .LANCHOR2+3476 .word 150000 - .word .LANCHOR0+1230 + .word .LANCHOR0+1232 +.L1742: + add sp, sp, #20 + @ sp needed + pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} .fnend .size FlashInit, .-FlashInit .align 1 @@ -11268,58 +11308,58 @@ FlashPageProgMsbFFData: push {r4, r5, r6, r7, r8, r9, r10, lr} .save {r4, r5, r6, r7, r8, r9, r10, lr} mov r4, r2 - ldr r2, .L1805 + ldr r2, .L1811 mov r8, r1 mov r7, r0 ldr r3, [r2, #44] mov r5, r2 - ldrb r1, [r2, #144] @ zero_extendqisi2 + ldrb r1, [r2, #148] @ zero_extendqisi2 ldrb r3, [r3, #19] @ zero_extendqisi2 - cbz r1, .L1785 + cbz r1, .L1791 ldr r2, [r2, #2248] - cbnz r2, .L1784 -.L1785: + cbnz r2, .L1790 +.L1791: subs r2, r3, #5 cmp r2, #2 - bls .L1786 + bls .L1792 cmp r3, #50 - beq .L1786 + beq .L1792 cmp r3, #68 - beq .L1786 + beq .L1792 cmp r3, #35 - beq .L1786 + beq .L1792 cmp r3, #19 - bne .L1784 -.L1786: - ldr r9, .L1805+8 + bne .L1790 +.L1792: + ldr r9, .L1811+8 movw r10, #65535 - ldr r6, .L1805+4 -.L1788: + ldr r6, .L1811+4 +.L1794: ldr r3, [r5, #44] ldrh r3, [r3, #10] cmp r3, r4 - bls .L1784 + bls .L1790 add r3, r9, r4, lsl #1 ldrh r3, [r3, #1220] cmp r3, r10 - bne .L1784 + bne .L1790 movs r1, #255 mov r2, #32768 - ldr r0, [r6, #1212] + ldr r0, [r6, #1220] bl ftl_memset - ldr r2, [r6, #1212] + ldr r2, [r6, #1220] add r1, r4, r8 adds r4, r4, #1 mov r0, r7 mov r3, r2 uxth r4, r4 bl FlashProgPage - b .L1788 -.L1784: + b .L1794 +.L1790: pop {r4, r5, r6, r7, r8, r9, r10, pc} -.L1806: +.L1812: .align 2 -.L1805: +.L1811: .word .LANCHOR0 .word .LANCHOR4 .word .LANCHOR2 @@ -11334,7 +11374,7 @@ FlashReadSlc2KPages: .fnstart @ args = 0, pretend = 0, frame = 24 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1857 + ldr r3, .L1863 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} movs r7, #0 @@ -11345,16 +11385,16 @@ FlashReadSlc2KPages: str r1, [sp, #16] str r2, [sp, #20] str r3, [sp, #12] -.L1808: +.L1814: ldr r3, [sp, #16] cmp r7, r3 - beq .L1856 + beq .L1862 ldr r3, [sp, #16] add r2, sp, #28 mov r0, r4 ldr r1, [sp, #20] subs r3, r3, r7 - ldr r8, .L1857+20 + ldr r8, .L1863+20 uxtb r3, r3 str r3, [sp] add r3, sp, #24 @@ -11363,11 +11403,11 @@ FlashReadSlc2KPages: ldrb r2, [r8, #2230] @ zero_extendqisi2 ldr r3, [sp, #24] cmp r3, r2 - bcc .L1809 + bcc .L1815 mov r3, #-1 str r3, [r4] - b .L1810 -.L1809: + b .L1816 +.L1815: add r3, r3, r8 mov r9, #0 ldrb r6, [r3, #2232] @ zero_extendqisi2 @@ -11375,7 +11415,7 @@ FlashReadSlc2KPages: bl NandcWaitFlashReady mov r0, r6 bl NandcFlashCs -.L1811: +.L1817: ldr r1, [sp, #28] mov r0, r6 bl FlashReadCmd @@ -11388,84 +11428,84 @@ FlashReadSlc2KPages: ldr r2, [sp, #12] ldr r3, [r4, #8] bl NandcXferData - ldr r3, .L1857+4 - ldrb r3, [r3, #1228] @ zero_extendqisi2 + ldr r3, .L1863+4 + ldrb r3, [r3, #1236] @ zero_extendqisi2 mov r5, r0 - cbnz r3, .L1812 -.L1815: + cbnz r3, .L1818 +.L1821: adds r3, r5, #1 - beq .L1813 - b .L1814 -.L1812: + beq .L1819 + b .L1820 +.L1818: mov r0, r6 bl flash_read_ecc cmp r0, #5 - bls .L1815 + bls .L1821 mov r5, #256 - b .L1814 -.L1813: + b .L1820 +.L1819: cmp r9, #10 - beq .L1834 + beq .L1840 add r9, r9, #1 - b .L1811 -.L1814: + b .L1817 +.L1820: cmp r9, #0 it ne movne r5, #256 - b .L1816 -.L1834: + b .L1822 +.L1840: mov r5, #256 -.L1816: +.L1822: mov r9, #0 -.L1817: +.L1823: ldr r3, [sp, #28] mov r0, r6 - ldr r1, [fp, #4] + ldr r1, [fp, #36] add r1, r1, r3 bl FlashReadCmd mov r0, r6 bl NandcWaitFlashReady ldr r3, [r4, #8] - cbz r3, .L1818 + cbz r3, .L1824 add r3, r3, #2048 -.L1818: +.L1824: ldr r2, [r4, #12] - cbz r2, .L1819 + cbz r2, .L1825 adds r2, r2, #8 -.L1819: +.L1825: str r2, [sp] mov r0, r6 ldr r2, [sp, #12] movs r1, #0 bl NandcXferData - ldr r3, .L1857+4 - ldrb r2, [r3, #1228] @ zero_extendqisi2 + ldr r3, .L1863+4 + ldrb r2, [r3, #1236] @ zero_extendqisi2 mov r10, r0 - cbnz r2, .L1820 -.L1823: + cbnz r2, .L1826 +.L1829: cmp r10, #-1 - beq .L1821 - b .L1822 -.L1820: + beq .L1827 + b .L1828 +.L1826: mov r0, r6 bl flash_read_ecc cmp r0, #5 - bls .L1823 + bls .L1829 mov r10, #256 - b .L1822 -.L1821: + b .L1828 +.L1827: cmp r9, #10 - beq .L1838 + beq .L1844 add r9, r9, #1 - b .L1817 -.L1822: + b .L1823 +.L1828: cmp r9, #0 it ne movne r10, #256 - b .L1824 -.L1838: + b .L1830 +.L1844: mov r10, #256 -.L1824: +.L1830: mov r0, r6 bl NandcFlashDeCs ldrb r3, [r8, #2312] @ zero_extendqisi2 @@ -11474,61 +11514,61 @@ FlashReadSlc2KPages: it cc movcc r5, r10 cmp r5, r3, asr #2 - bls .L1825 + bls .L1831 adds r0, r5, #1 it ne movne r5, #256 str r5, [r4] - b .L1827 -.L1825: + b .L1833 +.L1831: movs r3, #0 str r3, [r4] -.L1827: +.L1833: ldr r3, [r4, #12] - cbz r3, .L1828 + cbz r3, .L1834 ldr r2, [r3, #12] adds r2, r2, #1 - bne .L1828 + bne .L1834 ldr r2, [r3, #8] adds r1, r2, #1 - bne .L1828 + bne .L1834 ldr r3, [r3] adds r3, r3, #1 it ne strne r2, [r4] -.L1828: +.L1834: ldr r3, [r4] adds r2, r3, #1 - bne .L1810 + bne .L1816 ldr r1, [r4, #4] - ldr r0, .L1857+8 + ldr r0, .L1863+8 ldrb r2, [r8, #2312] @ zero_extendqisi2 bl printk ldr r1, [r4, #8] - cbz r1, .L1830 - ldr r0, .L1857+12 + cbz r1, .L1836 + ldr r0, .L1863+12 movs r2, #4 movs r3, #8 bl rknand_print_hex -.L1830: +.L1836: ldr r1, [r4, #12] - cbz r1, .L1810 + cbz r1, .L1816 movs r2, #4 - ldr r0, .L1857+16 + ldr r0, .L1863+16 mov r3, r2 bl rknand_print_hex -.L1810: +.L1816: adds r7, r7, #1 adds r4, r4, #36 - b .L1808 -.L1856: + b .L1814 +.L1862: movs r0, #0 add sp, sp, #36 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1858: +.L1864: .align 2 -.L1857: +.L1863: .word .LANCHOR1 .word .LANCHOR4 .word .LC99 @@ -11546,31 +11586,31 @@ FlashReadPages: .fnstart @ args = 0, pretend = 0, frame = 40 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1958 + ldr r3, .L1964 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #52 sub sp, sp, #52 ldrb r3, [r3, #481] @ zero_extendqisi2 mov r10, r0 - ldr r5, .L1958+4 + ldr r5, .L1964+4 str r1, [sp, #28] str r3, [sp, #24] - ldrb r3, [r5, #8] @ zero_extendqisi2 + ldrb r3, [r5, #40] @ zero_extendqisi2 str r2, [sp, #16] str r3, [sp, #32] - ldrb r3, [r5] @ zero_extendqisi2 - cbz r3, .L1902 + ldrb r3, [r5, #32] @ zero_extendqisi2 + cbz r3, .L1908 bl FlashReadSlc2KPages - b .L1953 -.L1902: + b .L1959 +.L1908: mov r8, r3 str r3, [sp, #12] -.L1860: +.L1866: ldr r3, [sp, #12] ldr r2, [sp, #28] cmp r3, r2 - bcs .L1955 + bcs .L1961 ldr r3, [sp, #12] mov r9, #36 ldr r2, [sp, #12] @@ -11590,81 +11630,81 @@ FlashReadPages: ldr r3, [sp, #40] mov r6, r0 cmp r3, r2 - bcc .L1862 + bcc .L1868 mov r3, #-1 str r3, [r10, r9] - b .L1863 -.L1862: + b .L1869 +.L1868: add r3, r3, r5 ldrb r4, [r3, #2232] @ zero_extendqisi2 - ldr r3, .L1958+8 + ldr r3, .L1964+8 mov r0, r4 - ldrb r3, [r3, #1229] @ zero_extendqisi2 + ldrb r3, [r3, #1237] @ zero_extendqisi2 cmp r3, #0 it eq moveq r6, #0 bl NandcWaitFlashReady - ldr r3, .L1958+4 + ldr r3, .L1964+4 ldr r3, [r3, #44] ldrb r2, [r3, #19] @ zero_extendqisi2 subs r3, r2, #1 cmp r3, #7 - bhi .L1865 + bhi .L1871 subs r2, r2, #7 adds r1, r5, r4 cmp r2, #1 - ldr r2, .L1958+4 - ldrb r3, [r1, #1222] @ zero_extendqisi2 + ldr r2, .L1964+4 + ldrb r3, [r1, #1224] @ zero_extendqisi2 add r2, r2, r4 it ls - ldrbls r3, [r1, #1230] @ zero_extendqisi2 + ldrbls r3, [r1, #1232] @ zero_extendqisi2 ldrb r2, [r2, #2064] @ zero_extendqisi2 cmp r2, r3 - beq .L1865 + beq .L1871 mov r0, r4 - ldrb r1, [r5, #1211] @ zero_extendqisi2 - ldr r2, .L1958+12 + ldrb r1, [r5, #1213] @ zero_extendqisi2 + ldr r2, .L1964+12 bl HynixSetRRPara -.L1865: +.L1871: mov r0, r4 and r3, fp, #-2147483648 str r3, [sp, #20] bl NandcFlashCs ldr r3, [sp, #16] cmp r3, #1 - beq .L1867 + beq .L1873 ldr r3, [sp, #20] - cbz r3, .L1868 -.L1867: - ldr r3, .L1958+4 - ldrb r3, [r3, #144] @ zero_extendqisi2 - cbz r3, .L1868 + cbz r3, .L1874 +.L1873: + ldr r3, .L1964+4 + ldrb r3, [r3, #148] @ zero_extendqisi2 + cbz r3, .L1874 mov r0, r4 bl flash_enter_slc_mode -.L1870: +.L1876: mov fp, #0 - b .L1869 -.L1868: + b .L1875 +.L1874: mov r0, r4 bl flash_exit_slc_mode - b .L1870 -.L1956: + b .L1876 +.L1962: cmp r4, #255 - beq .L1903 -.L1871: - cbz r6, .L1873 - ldr r2, [r5, #4] + beq .L1909 +.L1877: + cbz r6, .L1879 + ldr r2, [r5, #36] mov r0, r4 add r2, r2, r1 bl FlashReadDpCmd -.L1874: +.L1880: mov r0, r4 bl NandcWaitFlashReady - cbz r6, .L1872 + cbz r6, .L1878 mov r0, r4 ldr r1, [sp, #44] bl FlashReadDpDataOutCmd -.L1872: +.L1878: ldr r3, [r7, #12] mov r0, r4 movs r1, #0 @@ -11672,32 +11712,32 @@ FlashReadPages: str r3, [sp] ldr r3, [r7, #8] bl NandcXferData - ldrb r3, [r5, #8] @ zero_extendqisi2 + ldrb r3, [r5, #40] @ zero_extendqisi2 mov ip, r0 - cbz r3, .L1905 + cbz r3, .L1911 cmp r0, #-1 - bne .L1905 + bne .L1911 movs r6, #0 - strb fp, [r5, #8] -.L1869: + strb fp, [r5, #40] +.L1875: ldr r1, [sp, #44] adds r0, r1, #1 - bne .L1871 - b .L1956 -.L1873: + bne .L1877 + b .L1962 +.L1879: mov r0, r4 bl FlashReadCmd - b .L1874 -.L1903: + b .L1880 +.L1909: movs r6, #0 - b .L1872 -.L1905: + b .L1878 +.L1911: mov fp, ip - cbz r6, .L1876 - ldr r3, .L1958+4 + cbz r6, .L1882 + ldr r3, .L1964+4 mov r0, r4 str ip, [sp, #36] - ldr r1, [r3, #4] + ldr r1, [r3, #36] ldr r3, [sp, #44] add r1, r1, r3 bl FlashReadDpDataOutCmd @@ -11715,24 +11755,24 @@ FlashReadPages: it eq moveq r6, #0 mov r8, r0 -.L1876: +.L1882: mov r0, r4 str ip, [sp, #36] bl NandcFlashDeCs ldr ip, [sp, #36] ldrb r3, [sp, #32] @ zero_extendqisi2 cmp ip, #-1 - strb r3, [r5, #8] - bne .L1883 + strb r3, [r5, #40] + bne .L1889 ldrb r3, [r5, #2252] @ zero_extendqisi2 - cbnz r3, .L1878 -.L1882: - ldr r3, .L1958+8 - ldr r6, [r3, #1192] - cbnz r6, .L1879 - b .L1957 -.L1878: - ldr r3, [r5, #80] + cbnz r3, .L1884 +.L1888: + ldr r3, .L1964+8 + ldr r6, [r3, #1200] + cbnz r6, .L1885 + b .L1963 +.L1884: + ldr r3, [r5, #84] mov r0, r4 ldr r1, [sp, #44] ldr r6, [r3, #304] @@ -11743,17 +11783,17 @@ FlashReadPages: bl FlashDdrTunningRead cmp r0, #-1 mov fp, r0 - beq .L1881 + beq .L1887 ldrb r3, [r5, #2312] @ zero_extendqisi2 cmp r0, r3, lsr #1 - bls .L1907 -.L1881: + bls .L1913 +.L1887: ubfx r0, r6, #8, #8 bl NandcSetDdrPara cmp fp, #-1 - beq .L1882 - b .L1907 -.L1879: + beq .L1888 + b .L1913 +.L1885: mov r0, r4 ldr r1, [sp, #44] ldr r2, [r7, #8] @@ -11761,18 +11801,18 @@ FlashReadPages: blx r6 cmp r0, #-1 mov fp, r0 - bne .L1884 + bne .L1890 ldr r3, [r5, #44] ldrb r3, [r3, #19] @ zero_extendqisi2 subs r3, r3, #1 cmp r3, #7 - bhi .L1885 + bhi .L1891 mov r0, r4 - ldrb r1, [r5, #1211] @ zero_extendqisi2 - ldr r2, .L1958+12 + ldrb r1, [r5, #1213] @ zero_extendqisi2 + ldr r2, .L1964+12 movs r3, #0 bl HynixSetRRPara -.L1885: +.L1891: ldr r1, [sp, #44] mov r0, r4 ldr r2, [r7, #8] @@ -11781,139 +11821,139 @@ FlashReadPages: ldr r1, [r7, #4] ldrb r2, [r5, #2312] @ zero_extendqisi2 mov fp, r0 - ldr r0, .L1958+16 + ldr r0, .L1964+16 mov r3, fp bl printk cmp fp, #-1 - bne .L1884 - ldrb r6, [r5, #144] @ zero_extendqisi2 - cbz r6, .L1886 + bne .L1890 + ldrb r6, [r5, #148] @ zero_extendqisi2 + cbz r6, .L1892 ldr r3, [sp, #16] mov r0, r4 cmp r3, #1 - beq .L1887 + beq .L1893 ldr r3, [sp, #20] - cbz r3, .L1888 -.L1887: + cbz r3, .L1894 +.L1893: bl flash_enter_slc_mode - b .L1889 -.L1888: + b .L1895 +.L1894: bl flash_exit_slc_mode -.L1889: - ldr r3, .L1958+8 +.L1895: + ldr r3, .L1964+8 mov r0, r4 ldr r1, [sp, #44] ldr r2, [r7, #8] - ldr r6, [r3, #1192] + ldr r6, [r3, #1200] ldr r3, [r7, #12] blx r6 movs r6, #0 mov fp, r0 - b .L1890 -.L1957: + b .L1896 +.L1963: mov r0, r4 ldr r1, [sp, #44] ldr r2, [r7, #8] ldr r3, [r7, #12] bl FlashReadRawPage mov fp, r0 - b .L1890 -.L1907: + b .L1896 +.L1913: movs r6, #0 -.L1883: +.L1889: ldrb r3, [r5, #2312] @ zero_extendqisi2 add r3, r3, r3, lsl #1 cmp fp, r3, asr #2 - bls .L1892 - ldr r3, .L1958+8 - ldr r3, [r3, #1192] - cbz r3, .L1909 -.L1890: + bls .L1898 + ldr r3, .L1964+8 + ldr r3, [r3, #1200] + cbz r3, .L1915 +.L1896: cmp fp, #-1 - beq .L1886 - b .L1892 -.L1909: + beq .L1892 + b .L1898 +.L1915: mov fp, #256 -.L1886: +.L1892: str fp, [r10, r9] - b .L1893 -.L1959: + b .L1899 +.L1965: .align 2 -.L1958: +.L1964: .word .LANCHOR1 .word .LANCHOR0 .word .LANCHOR4 - .word .LANCHOR0+1214 + .word .LANCHOR0+1216 .word .LC102 -.L1884: +.L1890: movs r6, #0 -.L1892: +.L1898: cmp fp, #256 - beq .L1886 + beq .L1892 movs r3, #0 str r3, [r10, r9] -.L1893: +.L1899: ldr r3, [r10, r9] adds r2, r3, #1 - bne .L1895 + bne .L1901 ldr r1, [r7, #4] - ldr r0, .L1960 + ldr r0, .L1966 ldrb r2, [r5, #2312] @ zero_extendqisi2 bl printk ldr r1, [r7, #12] - cbz r1, .L1895 + cbz r1, .L1901 movs r2, #4 - ldr r0, .L1960+4 + ldr r0, .L1966+4 mov r3, r2 bl rknand_print_hex -.L1895: - cbz r6, .L1897 +.L1901: + cbz r6, .L1903 ldrb r3, [r5, #2312] @ zero_extendqisi2 add r3, r3, r3, lsl #1 cmp r8, r3, asr #2 - bls .L1898 - ldr r3, .L1960+8 - ldr r3, [r3, #1192] + bls .L1904 + ldr r3, .L1966+8 + ldr r3, [r3, #1200] cmp r3, #0 it eq moveq r8, #256 -.L1898: +.L1904: add r9, r9, #36 cmp r8, #-1 str r8, [r10, r9] - beq .L1897 + beq .L1903 cmp r8, #256 itt ne movne r3, #0 strne r3, [r10, r9] -.L1897: +.L1903: ldr r3, [sp, #12] add r3, r3, r6 str r3, [sp, #12] ldr r3, [sp, #16] cmp r3, #1 - beq .L1899 + beq .L1905 ldr r3, [sp, #20] - cbz r3, .L1863 -.L1899: - ldrb r3, [r5, #144] @ zero_extendqisi2 - cbz r3, .L1863 + cbz r3, .L1869 +.L1905: + ldrb r3, [r5, #148] @ zero_extendqisi2 + cbz r3, .L1869 mov r0, r4 bl flash_exit_slc_mode -.L1863: +.L1869: ldr r3, [sp, #12] adds r3, r3, #1 str r3, [sp, #12] - b .L1860 -.L1955: + b .L1866 +.L1961: movs r0, #0 -.L1953: +.L1959: add sp, sp, #52 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1961: +.L1967: .align 2 -.L1960: +.L1966: .word .LC99 .word .LC101 .word .LANCHOR4 @@ -11931,37 +11971,37 @@ FlashLoadFactorBbt: push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} movs r1, #0 - ldr r7, .L1974 + ldr r7, .L1980 .pad #52 sub sp, sp, #52 - ldr r4, .L1974+4 + ldr r4, .L1980+4 movs r2, #16 movs r5, #0 mov fp, #-1 - ldrh r3, [r7, #130] - add r0, r4, #1232 - ldrh r6, [r7, #128] + ldrh r3, [r7, #134] + add r0, r4, #1240 + ldrh r6, [r7, #132] mov r10, r5 mov r8, r7 mov r9, r4 smulbb r6, r6, r3 bl ftl_memset - ldr r3, [r4, #1216] + ldr r3, [r4, #1224] uxth r6, r6 str r5, [sp, #20] str r3, [sp, #24] -.L1963: +.L1969: ldrb r3, [r8, #2230] @ zero_extendqisi2 uxtb r7, r5 cmp r3, r7 - bls .L1973 + bls .L1979 mul ip, r6, r7 subs r4, r6, #1 sub r3, r6, #12 uxth r4, r4 -.L1964: +.L1970: cmp r4, r3 - ble .L1966 + ble .L1972 add r2, ip, r4 movs r1, #1 add r0, sp, #12 @@ -11975,41 +12015,41 @@ FlashLoadFactorBbt: ldr ip, [sp] adds r2, r2, #1 ldr r3, [sp, #4] - beq .L1965 - ldr r2, [r9, #1216] + beq .L1971 + ldr r2, [r9, #1224] ldrh r1, [r2] movw r2, #61664 cmp r1, r2 - bne .L1965 + bne .L1971 mov r1, r7 - ldr r0, .L1974+8 + ldr r0, .L1980+8 mov r2, r4 add r10, r10, #1 bl printk - ldr r3, .L1974+4 + ldr r3, .L1980+4 uxth r10, r10 add r7, r3, r7, lsl #1 - strh r4, [r7, #1232] @ movhi - b .L1966 -.L1965: + strh r4, [r7, #1240] @ movhi + b .L1972 +.L1971: subs r4, r4, #1 uxth r4, r4 - b .L1964 -.L1966: + b .L1970 +.L1972: ldrb r3, [r8, #2230] @ zero_extendqisi2 adds r5, r5, #1 cmp r3, r10 it eq moveq fp, #0 - b .L1963 -.L1973: + b .L1969 +.L1979: mov r0, fp add sp, sp, #52 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1975: +.L1981: .align 2 -.L1974: +.L1980: .word .LANCHOR0 .word .LANCHOR4 .word .LC103 @@ -12024,11 +12064,11 @@ FlashProgSlc2KPages: .fnstart @ args = 0, pretend = 0, frame = 56 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2005 + ldr r3, .L2011 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} movs r6, #0 - ldr r8, .L2005+24 + ldr r8, .L2011+24 .pad #68 sub sp, sp, #68 ldrb r3, [r3, #481] @ zero_extendqisi2 @@ -12038,9 +12078,9 @@ FlashProgSlc2KPages: mov r10, r0 mov fp, r8 str r3, [sp, #12] -.L1977: +.L1983: cmp r6, r7 - beq .L2003 + beq .L2009 subs r3, r7, r6 add r2, sp, #20 mov r0, r10 @@ -12052,11 +12092,11 @@ FlashProgSlc2KPages: ldrb r2, [r8, #2230] @ zero_extendqisi2 ldr r3, [sp, #24] cmp r3, r2 - bcc .L1978 + bcc .L1984 mov r3, #-1 str r3, [r10] - b .L1979 -.L1978: + b .L1985 +.L1984: add r3, r3, r8 ldrb r5, [r3, #2232] @ zero_extendqisi2 mov r0, r5 @@ -12085,23 +12125,23 @@ FlashProgSlc2KPages: sbfx r0, r0, #0, #1 str r0, [r10] mov r0, r5 - ldr r1, [r8, #4] + ldr r1, [r8, #36] add r1, r1, r3 bl FlashProgFirstCmd ldr r3, [r10, #8] - cbz r3, .L1980 + cbz r3, .L1986 add r3, r3, #2048 -.L1980: +.L1986: ldr r2, [r10, #12] - cbz r2, .L1981 + cbz r2, .L1987 adds r2, r2, #8 -.L1981: +.L1987: str r2, [sp] movs r1, #1 ldr r2, [sp, #12] mov r0, r5 bl NandcXferData - ldr r1, [fp, #4] + ldr r1, [fp, #36] mov r0, r5 ldr r3, [sp, #20] add r1, r1, r3 @@ -12117,25 +12157,25 @@ FlashProgSlc2KPages: movmi r3, #-1 strmi r3, [r10] bl NandcFlashDeCs -.L1979: +.L1985: adds r6, r6, #1 add r10, r10, #36 - b .L1977 -.L2003: - ldr r8, .L2005+28 + b .L1983 +.L2009: + ldr r8, .L2011+28 mov r10, #0 mov fp, r8 -.L1984: +.L1990: cmp r10, r7 - beq .L2004 + beq .L2010 ldr r3, [r4] adds r3, r3, #1 - bne .L1985 + bne .L1991 ldr r1, [r4, #4] - ldr r0, .L2005+4 + ldr r0, .L2011+4 bl printk - b .L1986 -.L1985: + b .L1992 +.L1991: rsb r3, r10, r7 mov r1, r9 add r2, sp, #20 @@ -12145,10 +12185,10 @@ FlashProgSlc2KPages: add r3, sp, #24 mov r6, r4 bl LogAddr2PhyAddr - ldr r2, [r8, #1220] + ldr r2, [r8, #1228] movs r3, #0 str r3, [r2] - ldr r2, [r8, #1224] + ldr r2, [r8, #1232] str r3, [r2] ldmia r6!, {r0, r1, r2, r3} add r5, sp, #28 @@ -12160,64 +12200,64 @@ FlashProgSlc2KPages: movs r1, #1 mov r2, r9 str r3, [r5] - ldr r3, [r8, #1220] + ldr r3, [r8, #1228] str r3, [sp, #36] - ldr r3, [r8, #1224] + ldr r3, [r8, #1232] str r3, [sp, #40] bl FlashReadPages ldr r5, [sp, #28] adds r3, r5, #1 - bne .L1987 - ldr r0, .L2005+8 + bne .L1993 + ldr r0, .L2011+8 ldr r1, [r4, #4] bl printk str r5, [r4] -.L1987: +.L1993: ldr r5, [sp, #28] cmp r5, #256 - bne .L1988 - ldr r0, .L2005+12 + bne .L1994 + ldr r0, .L2011+12 ldr r1, [r4, #4] bl printk str r5, [r4] -.L1988: +.L1994: ldr r3, [r4, #12] - cbz r3, .L1989 + cbz r3, .L1995 ldr r2, [r3] - ldr r3, [fp, #1224] + ldr r3, [fp, #1232] ldr r3, [r3] cmp r2, r3 - beq .L1989 - ldr r0, .L2005+16 + beq .L1995 + ldr r0, .L2011+16 ldr r1, [r4, #4] bl printk mov r3, #-1 str r3, [r4] -.L1989: +.L1995: ldr r3, [r4, #8] - cbz r3, .L1986 + cbz r3, .L1992 ldr r2, [r3] - ldr r3, [fp, #1220] + ldr r3, [fp, #1228] ldr r3, [r3] cmp r2, r3 - beq .L1986 - ldr r0, .L2005+20 + beq .L1992 + ldr r0, .L2011+20 ldr r1, [r4, #4] bl printk mov r3, #-1 str r3, [r4] -.L1986: +.L1992: add r10, r10, #1 adds r4, r4, #36 - b .L1984 -.L2004: + b .L1990 +.L2010: movs r0, #0 add sp, sp, #68 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2006: +.L2012: .align 2 -.L2005: +.L2011: .word .LANCHOR1 .word .LC104 .word .LC105 @@ -12240,62 +12280,62 @@ FtlLoadFactoryBbt: push {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} movs r6, #0 - ldr r3, .L2018 - ldr r7, .L2018+4 - ldr r5, .L2018+8 + ldr r3, .L2024 + ldr r7, .L2024+4 + ldr r5, .L2024+8 ldr r2, [r3, #3316] subw r8, r7, #2462 ldr r9, [r3, #3340] mov r10, r8 - str r2, [r5, #1256] - str r9, [r5, #1260] -.L2008: + str r2, [r5, #1264] + str r9, [r5, #1268] +.L2014: ldrh r3, [r8, #2342] cmp r6, r3 - bcs .L2017 + bcs .L2023 ldrh r4, [r8, #2386] movw fp, #61664 movw r3, #65535 strh r3, [r7, #2]! @ movhi subs r4, r4, #1 uxth r4, r4 -.L2009: +.L2015: ldrh r3, [r10, #2386] sub r2, r3, #16 cmp r4, r2 - ble .L2011 + ble .L2017 mla r3, r3, r6, r4 movs r1, #1 - ldr r0, .L2018+12 + ldr r0, .L2024+12 mov r2, r1 lsls r3, r3, #10 - str r3, [r5, #1252] + str r3, [r5, #1260] bl FlashReadPages - ldr r3, [r5, #1248] + ldr r3, [r5, #1256] adds r3, r3, #1 - beq .L2010 + beq .L2016 ldrh r3, [r9] cmp r3, fp - bne .L2010 + bne .L2016 strh r4, [r7] @ movhi - b .L2011 -.L2010: + b .L2017 +.L2016: subs r4, r4, #1 uxth r4, r4 - b .L2009 -.L2011: - adds r6, r6, #1 - b .L2008 + b .L2015 .L2017: + adds r6, r6, #1 + b .L2014 +.L2023: movs r0, #0 pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2019: +.L2025: .align 2 -.L2018: +.L2024: .word .LANCHOR2 .word .LANCHOR0+2462 .word .LANCHOR4 - .word .LANCHOR4+1248 + .word .LANCHOR4+1256 .fnend .size FtlLoadFactoryBbt, .-FtlLoadFactoryBbt .align 1 @@ -12307,7 +12347,7 @@ FtlGetLastWrittenPage: .fnstart @ args = 0, pretend = 0, frame = 104 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2031 + ldr r3, .L2037 cmp r1, #1 push {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} @@ -12334,12 +12374,12 @@ FtlGetLastWrittenPage: bl FlashReadPages ldr r3, [sp, #40] adds r3, r3, #1 - bne .L2023 -.L2024: + bne .L2029 +.L2030: sxth r3, r7 sxth r4, r5 cmp r3, r4 - bgt .L2023 + bgt .L2029 add r4, r4, r3 add r0, sp, #4 movs r1, #1 @@ -12352,28 +12392,28 @@ FtlGetLastWrittenPage: bl FlashReadPages ldr r3, [sp, #40] adds r3, r3, #1 - bne .L2025 + bne .L2031 ldr r3, [sp, #44] adds r3, r3, #1 - bne .L2025 + bne .L2031 ldr r3, [sp, #4] adds r3, r3, #1 - beq .L2025 + beq .L2031 subs r4, r4, #1 uxth r5, r4 - b .L2024 -.L2025: + b .L2030 +.L2031: adds r3, r4, #1 uxth r7, r3 - b .L2024 -.L2023: + b .L2030 +.L2029: sxth r0, r5 add sp, sp, #104 @ sp needed pop {r4, r5, r6, r7, r8, pc} -.L2032: +.L2038: .align 2 -.L2031: +.L2037: .word .LANCHOR0 .fnend .size FtlGetLastWrittenPage, .-FtlGetLastWrittenPage @@ -12388,79 +12428,79 @@ FtlLoadBbt: @ frame_needed = 0, uses_anonymous_args = 0 push {r3, r4, r5, r6, r7, r8, r9, lr} .save {r3, r4, r5, r6, r7, r8, r9, lr} - ldr r8, .L2062+16 - ldr r4, .L2062 - ldr r5, .L2062+4 + ldr r8, .L2068+16 + ldr r4, .L2068 + ldr r5, .L2068+4 ldr r3, [r8, #3316] ldr r7, [r8, #3340] mov r9, r4 - str r3, [r4, #1256] - str r7, [r4, #1260] + str r3, [r4, #1264] + str r7, [r4, #1268] bl FtlBbtMemInit ldrh r6, [r5, #2386] subs r6, r6, #1 uxth r6, r6 -.L2034: +.L2040: ldrh r3, [r5, #2386] subs r3, r3, #48 cmp r6, r3 - ble .L2037 + ble .L2043 movs r1, #1 - ldr r0, .L2062+8 + ldr r0, .L2068+8 lsls r3, r6, #10 - str r3, [r4, #1252] + str r3, [r4, #1260] mov r2, r1 bl FlashReadPages - ldr r3, [r4, #1248] + ldr r3, [r4, #1256] adds r3, r3, #1 - bne .L2035 + bne .L2041 movs r1, #1 - ldr r3, [r9, #1252] - ldr r0, .L2062+8 + ldr r3, [r9, #1260] + ldr r0, .L2068+8 mov r2, r1 adds r3, r3, #1 - str r3, [r9, #1252] + str r3, [r9, #1260] bl FlashReadPages -.L2035: - ldr r3, [r4, #1248] +.L2041: + ldr r3, [r4, #1256] adds r3, r3, #1 - beq .L2036 + beq .L2042 ldrh r2, [r7] movw r3, #61649 cmp r2, r3 - bne .L2036 + bne .L2042 ldr r3, [r7, #4] strh r6, [r5, #2452] @ movhi str r3, [r5, #2460] ldrh r3, [r7, #8] strh r3, [r5, #2456] @ movhi - b .L2037 -.L2036: + b .L2043 +.L2042: subs r6, r6, #1 uxth r6, r6 - b .L2034 -.L2037: + b .L2040 +.L2043: ldrh r3, [r5, #2452] movw r2, #65535 - ldr r6, .L2062+4 + ldr r6, .L2068+4 cmp r3, r2 - beq .L2051 + beq .L2057 ldrh r3, [r6, #2456] cmp r3, r2 - beq .L2041 + beq .L2047 movs r1, #1 - ldr r0, .L2062+8 + ldr r0, .L2068+8 lsls r3, r3, #10 - str r3, [r4, #1252] + str r3, [r4, #1260] mov r2, r1 bl FlashReadPages - ldr r3, [r4, #1248] + ldr r3, [r4, #1256] adds r3, r3, #1 - beq .L2041 + beq .L2047 ldrh r2, [r7] movw r3, #61649 cmp r2, r3 - bne .L2041 + bne .L2047 ldr r3, [r7, #4] ldr r2, [r6, #2460] cmp r3, r2 @@ -12471,7 +12511,7 @@ FtlLoadBbt: strhhi r2, [r6, #2452] @ movhi it hi strhhi r3, [r6, #2456] @ movhi -.L2041: +.L2047: ldrh r0, [r5, #2452] movs r1, #1 bl FtlGetLastWrittenPage @@ -12479,76 +12519,76 @@ FtlLoadBbt: uxth r6, r0 adds r0, r0, #1 strh r0, [r5, #2454] @ movhi -.L2043: +.L2049: sxth r3, r6 cmp r3, #0 - blt .L2048 + blt .L2054 ldrh r2, [r5, #2452] movs r1, #1 - ldr r0, .L2062+8 + ldr r0, .L2068+8 orr r3, r3, r2, lsl #10 - str r3, [r4, #1252] + str r3, [r4, #1260] ldr r3, [r8, #3316] mov r2, r1 - str r3, [r4, #1256] + str r3, [r4, #1264] bl FlashReadPages - ldr r3, [r4, #1248] + ldr r3, [r4, #1256] adds r3, r3, #1 - beq .L2044 + beq .L2050 ldrh r3, [r7] cmp r3, r9 - bne .L2044 -.L2048: + bne .L2050 +.L2054: ldrh r2, [r7, #10] ldrh r0, [r7, #12] - ldr r3, .L2062+4 + ldr r3, .L2068+4 strh r2, [r5, #2458] @ movhi movw r2, #65535 cmp r0, r2 - bne .L2045 - b .L2046 -.L2044: + bne .L2051 + b .L2052 +.L2050: subs r6, r6, #1 uxth r6, r6 - b .L2043 -.L2045: + b .L2049 +.L2051: ldr r2, [r3, #2316] cmp r0, r2 - beq .L2046 + beq .L2052 ldrh r3, [r3, #2330] lsrs r3, r3, #2 cmp r2, r3 - bcs .L2046 + bcs .L2052 cmp r0, r3 - bcs .L2046 + bcs .L2052 bl FtlSysBlkNumInit -.L2046: - ldr r7, .L2062+12 +.L2052: + ldr r7, .L2068+12 movs r6, #0 -.L2049: +.L2055: ldrh r3, [r5, #2342] cmp r6, r3 - bcs .L2061 + bcs .L2067 ldrh r2, [r8, #3404] - ldr r1, [r4, #1256] + ldr r1, [r4, #1264] ldr r0, [r7, #4]! lsls r2, r2, #2 mla r1, r6, r2, r1 bl ftl_memcpy adds r6, r6, #1 - b .L2049 -.L2061: + b .L2055 +.L2067: movs r0, #0 pop {r3, r4, r5, r6, r7, r8, r9, pc} -.L2051: +.L2057: mov r0, #-1 pop {r3, r4, r5, r6, r7, r8, r9, pc} -.L2063: +.L2069: .align 2 -.L2062: +.L2068: .word .LANCHOR4 .word .LANCHOR0 - .word .LANCHOR4+1248 + .word .LANCHOR4+1256 .word .LANCHOR0+2476 .word .LANCHOR2 .fnend @@ -12565,10 +12605,10 @@ FtlScanSysBlk: push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} movs r6, #0 - ldr r5, .L2149 + ldr r5, .L2155 .pad #36 sub sp, sp, #36 - ldr r4, .L2149+4 + ldr r4, .L2155+4 mov r1, r6 ldr r2, [r5, #2416] ldr r0, [r4, #3396] @@ -12600,13 +12640,13 @@ FtlScanSysBlk: str r5, [sp, #12] mov r5, r4 str r3, [sp, #4] -.L2065: - ldr r6, .L2149 +.L2071: + ldr r6, .L2155 ldr r2, [sp, #4] ldrh r3, [r6, #2330] mov r0, r6 cmp r3, r2 - bls .L2107 + bls .L2113 ldr r1, [r4, #1148] mov r10, #36 ldrh r8, [r6, #2320] @@ -12619,10 +12659,10 @@ FtlScanSysBlk: str r1, [sp, #16] addw r1, r6, #2348 str r1, [sp, #20] -.L2108: +.L2114: uxth r1, r7 cmp r1, r8 - bcs .L2144 + bcs .L2150 str r3, [sp, #28] ldr r3, [sp, #20] ldr r1, [sp, #4] @@ -12633,7 +12673,7 @@ FtlScanSysBlk: bl FtlBbmIsBadBlock ldr r2, [sp, #24] ldr r3, [sp, #28] - cbnz r0, .L2066 + cbnz r0, .L2072 ldr r1, [sp] ldr r6, [sp] mla r0, r10, r1, r2 @@ -12652,25 +12692,25 @@ FtlScanSysBlk: adds r1, r1, #1 uxth r1, r1 str r1, [sp] -.L2066: +.L2072: adds r7, r7, #1 - b .L2108 -.L2144: + b .L2114 +.L2150: ldr r3, [sp] cmp r3, #0 - beq .L2070 + beq .L2076 mov r1, r3 ldr r0, [r4, #3304] movs r2, #1 - ldr r8, .L2149 + ldr r8, .L2155 bl FlashReadPages movs r3, #0 str r3, [sp, #8] -.L2071: +.L2077: ldrh r3, [sp, #8] ldr r2, [sp] cmp r3, r2 - bcs .L2070 + bcs .L2076 ldr r3, [sp, #8] mov r10, #36 mul r10, r10, r3 @@ -12681,10 +12721,10 @@ FtlScanSysBlk: adds r3, r3, #1 ldr r7, [r2, #12] ubfx r6, r6, #10, #16 - bne .L2073 + bne .L2079 mov fp, #16 movw r3, #65535 -.L2072: +.L2078: ldr r0, [r4, #3304] movs r1, #1 str r3, [sp, #16] @@ -12697,45 +12737,45 @@ FtlScanSysBlk: ldrh r2, [r7] ldr r3, [sp, #16] cmp r2, r3 - bne .L2074 + bne .L2080 ldr r3, [r9, #3304] mov r2, #-1 str r2, [r3, r10] - b .L2073 -.L2074: + b .L2079 +.L2080: ldr r2, [r5, #3304] ldr r2, [r2, r10] adds r2, r2, #1 - bne .L2073 + bne .L2079 add fp, fp, #-1 uxth fp, fp cmp fp, #0 - bne .L2072 -.L2073: + bne .L2078 +.L2079: ldr r3, [r5, #3304] ldr r3, [r3, r10] adds r3, r3, #1 - beq .L2076 + beq .L2082 ldr r2, [r5, #508] ldr r3, [r7, #4] adds r1, r2, #1 - beq .L2077 + beq .L2083 cmp r2, r3 - bhi .L2078 -.L2077: + bhi .L2084 +.L2083: adds r2, r3, #1 itt ne addne r2, r3, #1 strne r2, [r9, #508] -.L2078: +.L2084: ldrh r2, [r7] movw r1, #61604 cmp r2, r1 - beq .L2080 - bhi .L2081 + beq .L2086 + bhi .L2087 movw r3, #61574 cmp r2, r3 - bne .L2079 + bne .L2085 ldr r3, [sp, #12] ldr r2, [sp, #12] ldrh r10, [r3, #2408] @@ -12745,17 +12785,17 @@ FtlScanSysBlk: uxth r3, lr rsb lr, r0, lr str r2, [sp, #16] - b .L2094 -.L2081: + b .L2100 +.L2087: movw r3, #61634 cmp r2, r3 - beq .L2083 + beq .L2089 movw r3, #65535 cmp r2, r3 - bne .L2079 + bne .L2085 mov r0, r6 - b .L2143 -.L2083: + b .L2149 +.L2089: ldr r3, [sp, #12] ldrh r0, [r4, #3452] ldr r2, [r4, #3396] @@ -12767,31 +12807,31 @@ FtlScanSysBlk: add lr, lr, #-1 uxth r3, r3 sxth lr, lr -.L2085: +.L2091: sxth ip, r3 cmp ip, lr - ble .L2145 + ble .L2151 ldr r2, [r7, #4] lsl fp, ip, #2 mov r10, r2 ldr r2, [sp, #16] ldr r2, [r2, ip, lsl #2] cmp r10, r2 - bls .L2086 + bls .L2092 ldr r2, [sp, #16] ldr r2, [r2] - cbnz r2, .L2087 + cbnz r2, .L2093 cmp r0, r1 itt ne addne r0, r0, #1 strhne r0, [r9, #3452] @ movhi -.L2087: +.L2093: movs r1, #0 uxth lr, r3 -.L2088: +.L2094: uxth r2, r1 cmp r2, lr - bcs .L2146 + bcs .L2152 ldr r0, [r5, #3396] sxth r2, r2 adds r1, r1, #1 @@ -12802,8 +12842,8 @@ FtlScanSysBlk: add r10, r0, r2, lsl #1 ldrh r10, [r10, #2] strh r10, [r0, r2, lsl #1] @ movhi - b .L2088 -.L2146: + b .L2094 +.L2152: ldr r1, [r7, #4] ldr r2, [r4, #3396] str r1, [r2, fp] @@ -12811,25 +12851,25 @@ FtlScanSysBlk: ldr r2, [r4, #3368] cmp r1, #0 strh r6, [r2, ip, lsl #1] @ movhi - bge .L2090 - b .L2079 -.L2086: + bge .L2096 + b .L2085 +.L2092: subs r3, r3, #1 uxth r3, r3 - b .L2085 -.L2145: + b .L2091 +.L2151: cmp ip, #0 - bge .L2121 - b .L2079 -.L2090: + bge .L2127 + b .L2085 +.L2096: ldrh r0, [r5, #3452] ldr r2, [r8, #2416] subs r2, r2, r0 subs r2, r2, #1 sxth r2, r2 cmp r1, r2 - bgt .L2079 -.L2121: + bgt .L2085 +.L2127: ldr r2, [r4, #3396] sxth r3, r3 ldr r1, [r7, #4] @@ -12837,41 +12877,41 @@ FtlScanSysBlk: strh r0, [r4, #3452] @ movhi str r1, [r2, r3, lsl #2] ldr r2, [r4, #3368] - b .L2141 -.L2100: + b .L2147 +.L2106: ldr r1, [sp, #16] lsl fp, ip, #2 ldr r2, [r7, #4] ldr r1, [r1, ip, lsl #2] cmp r2, r1 - bhi .L2147 + bhi .L2153 subs r3, r3, #1 uxth r3, r3 -.L2094: +.L2100: sxth ip, r3 cmp ip, lr - bgt .L2100 - b .L2099 -.L2150: + bgt .L2106 + b .L2105 +.L2156: .align 2 -.L2149: +.L2155: .word .LANCHOR0 .word .LANCHOR2 -.L2147: +.L2153: ldr r2, [sp, #16] ldr r2, [r2] - cbnz r2, .L2096 + cbnz r2, .L2102 cmp r0, r10 itt ne addne r0, r0, #1 strhne r0, [r8, #2434] @ movhi -.L2096: +.L2102: movs r1, #0 uxth lr, r3 -.L2097: +.L2103: uxth r2, r1 cmp r2, lr - bcs .L2148 + bcs .L2154 ldr r0, [r4, #3380] sxth r2, r2 adds r1, r1, #1 @@ -12882,112 +12922,112 @@ FtlScanSysBlk: add r10, r0, r2, lsl #1 ldrh r10, [r10, #2] strh r10, [r0, r2, lsl #1] @ movhi - b .L2097 -.L2148: + b .L2103 +.L2154: ldr r2, [r5, #3380] ldr r1, [r7, #4] str r1, [r2, fp] - ldr r2, .L2151 + ldr r2, .L2157 ldr r2, [r2, #2436] strh r6, [r2, ip, lsl #1] @ movhi -.L2099: +.L2105: sxth r3, r3 cmp r3, #0 - blt .L2079 + blt .L2085 ldrh r2, [r8, #2408] ldrh r1, [r8, #2434] subs r2, r2, #1 subs r2, r2, r1 sxth r2, r2 cmp r3, r2 - bgt .L2079 + bgt .L2085 adds r1, r1, #1 ldr r2, [r9, #3380] strh r1, [r8, #2434] @ movhi ldr r1, [r7, #4] str r1, [r2, r3, lsl #2] ldr r2, [r8, #2436] -.L2141: +.L2147: strh r6, [r2, r3, lsl #1] @ movhi - b .L2079 -.L2080: + b .L2085 +.L2086: ldrh r1, [r9, #540] movw r2, #65535 cmp r1, r2 - bne .L2101 + bne .L2107 strh r6, [r5, #540] @ movhi - b .L2142 -.L2101: + b .L2148 +.L2107: ldrh r0, [r5, #544] cmp r0, r2 - beq .L2102 + beq .L2108 movs r1, #1 bl FtlFreeSysBlkQueueIn -.L2102: +.L2108: ldr r2, [r9, #548] ldr r3, [r7, #4] cmp r2, r3 - bcs .L2103 + bcs .L2109 ldrh r3, [r5, #540] strh r6, [r5, #540] @ movhi strh r3, [r5, #544] @ movhi ldr r3, [r7, #4] -.L2142: +.L2148: str r3, [r5, #548] - b .L2079 -.L2103: + b .L2085 +.L2109: strh r6, [r5, #544] @ movhi - b .L2079 -.L2076: - ldrb r1, [r8, #144] @ zero_extendqisi2 + b .L2085 +.L2082: + ldrb r1, [r8, #148] @ zero_extendqisi2 mov r0, r6 - cbz r1, .L2104 -.L2143: + cbz r1, .L2110 +.L2149: movs r1, #0 -.L2104: +.L2110: bl FtlFreeSysBlkQueueIn -.L2079: +.L2085: ldr r3, [sp, #8] adds r3, r3, #1 str r3, [sp, #8] - b .L2071 -.L2070: + b .L2077 +.L2076: ldr r6, [sp, #4] adds r6, r6, #1 uxth r3, r6 str r3, [sp, #4] - b .L2065 -.L2107: - ldr r3, .L2151+4 + b .L2071 +.L2113: + ldr r3, .L2157+4 ldr r5, [r3, #3368] ldrh r2, [r5] - cbz r2, .L2109 -.L2112: + cbz r2, .L2115 +.L2118: ldr r5, [r0, #2436] - ldr r3, .L2151 + ldr r3, .L2157 ldrh r2, [r5] - cbz r2, .L2110 - b .L2133 -.L2109: + cbz r2, .L2116 + b .L2139 +.L2115: ldrh r3, [r3, #3452] cmp r3, #0 - beq .L2112 + beq .L2118 ldr r6, [r6, #2416] -.L2113: +.L2119: uxth r3, r2 sxth r1, r3 cmp r1, r6 - bcs .L2112 + bcs .L2118 ldrh r7, [r5, r1, lsl #1] adds r2, r2, #1 cmp r7, #0 - beq .L2113 + beq .L2119 mov lr, #0 -.L2114: +.L2120: ldr r5, [r0, #2416] sxth r2, r3 cmp r2, r5 - bcs .L2112 + bcs .L2118 ldr r5, [r4, #3368] subs r6, r2, r1 adds r3, r3, #1 @@ -12999,27 +13039,27 @@ FtlScanSysBlk: str r7, [r5, r6, lsl #2] ldr r5, [r4, #3368] strh lr, [r5, r2, lsl #1] @ movhi - b .L2114 -.L2110: + b .L2120 +.L2116: ldrh r1, [r3, #2434] - cbz r1, .L2133 + cbz r1, .L2139 ldrh r6, [r3, #2408] -.L2117: +.L2123: uxth r3, r2 sxth r1, r3 cmp r1, r6 - bge .L2133 + bge .L2139 ldrh r7, [r5, r1, lsl #1] adds r2, r2, #1 cmp r7, #0 - beq .L2117 - ldr r5, .L2151 + beq .L2123 + ldr r5, .L2157 mov ip, #0 -.L2118: +.L2124: ldrh r6, [r0, #2408] sxth r2, r3 cmp r2, r6 - bge .L2133 + bge .L2139 ldr r6, [r5, #2436] rsb lr, r1, r2 adds r3, r3, #1 @@ -13031,15 +13071,15 @@ FtlScanSysBlk: str r7, [r6, lr, lsl #2] ldr r6, [r5, #2436] strh ip, [r6, r2, lsl #1] @ movhi - b .L2118 -.L2133: + b .L2124 +.L2139: movs r0, #0 add sp, sp, #36 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2152: +.L2158: .align 2 -.L2151: +.L2157: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -13056,27 +13096,27 @@ FtlLoadSysInfo: push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} movs r1, #0 - ldr r4, .L2181 + ldr r4, .L2187 .pad #44 sub sp, sp, #44 - ldr r7, .L2181+4 - ldr r5, .L2181+8 + ldr r7, .L2187+4 + ldr r5, .L2187+8 ldr r3, [r4, #3316] ldrh r2, [r7, #2328] ldr r0, [r4, #296] - str r3, [r5, #1256] + str r3, [r5, #1264] ldr r3, [r4, #3340] lsls r2, r2, #1 - str r3, [r5, #1260] + str r3, [r5, #1268] bl ftl_memset ldrh r0, [r4, #540] movw r3, #65535 cmp r0, r3 - bne .L2154 -.L2165: + bne .L2160 +.L2171: mov r0, #-1 - b .L2155 -.L2154: + b .L2161 +.L2160: movs r1, #1 mov r8, r5 bl FtlGetLastWrittenPage @@ -13084,30 +13124,30 @@ FtlLoadSysInfo: uxth r6, r0 adds r0, r0, #1 strh r0, [r4, #542] @ movhi -.L2156: +.L2162: sxth r3, r6 cmp r3, #0 - blt .L2164 + blt .L2170 sxth fp, r10 movs r1, #1 - ldr r0, .L2181+12 + ldr r0, .L2187+12 orr r3, r3, fp, lsl #10 - str r3, [r5, #1252] + str r3, [r5, #1260] ldr r3, [r4, #3316] mov r2, r1 - ldr r9, .L2181 - str r3, [r5, #1256] + ldr r9, .L2187 + str r3, [r5, #1264] bl FlashReadPages - ldrb r3, [r7] @ zero_extendqisi2 + ldrb r3, [r7, #32] @ zero_extendqisi2 cmp r3, #0 - beq .L2157 - ldr r3, [r8, #1260] + beq .L2163 + ldr r3, [r8, #1268] ldr r2, [r3, #12] cmp r2, #0 - beq .L2157 - ldr ip, [r8, #1256] + beq .L2163 + ldr ip, [r8, #1264] str r3, [sp, #32] - ldr r3, .L2181+4 + ldr r3, .L2187+4 mov r0, ip str r2, [sp, #36] str ip, [sp, #28] @@ -13115,13 +13155,13 @@ FtlLoadSysInfo: bl js_hash ldr r2, [sp, #36] cmp r2, r0 - beq .L2157 + beq .L2163 ldr ip, [sp, #28] ldr r3, [sp, #32] - cbnz r6, .L2158 + cbnz r6, .L2164 ldrh r1, [r9, #544] cmp fp, r1 - beq .L2158 + beq .L2164 ldr r0, [r3] ldrh r1, [r9, #540] str r0, [sp] @@ -13129,50 +13169,50 @@ FtlLoadSysInfo: str r0, [sp, #4] ldr r3, [r3, #8] str r2, [sp, #12] - ldr r0, .L2181+16 + ldr r0, .L2187+16 str r3, [sp, #8] ldr r3, [ip] str r3, [sp, #16] - ldr r3, [r8, #1252] - ldr r2, [r8, #1248] + ldr r3, [r8, #1260] + ldr r2, [r8, #1256] bl printk - ldr r3, .L2181+4 + ldr r3, .L2187+4 ldrh r10, [r9, #544] ldrh r6, [r3, #2390] - b .L2160 -.L2158: + b .L2166 +.L2164: mov r3, #-1 - str r3, [r5, #1248] -.L2157: - ldr r3, [r5, #1248] + str r3, [r5, #1256] +.L2163: + ldr r3, [r5, #1256] adds r3, r3, #1 - beq .L2160 + beq .L2166 ldr r3, [r4, #3316] - ldr r2, .L2181+20 + ldr r2, .L2187+20 ldr r3, [r3] cmp r3, r2 - bne .L2160 - ldr r3, .L2181 + bne .L2166 + ldr r3, .L2187 ldr r3, [r3, #3340] ldrh r2, [r3] movw r3, #61604 cmp r2, r3 - bne .L2160 -.L2164: - ldr r6, .L2181 + bne .L2166 +.L2170: + ldr r6, .L2187 movs r2, #48 - ldr r1, [r5, #1256] + ldr r1, [r5, #1264] add r0, r6, #240 - ldr r8, .L2181+4 + ldr r8, .L2187+4 bl ftl_memcpy ldrh r2, [r7, #2328] - ldr r1, [r5, #1256] + ldr r1, [r5, #1264] ldr r0, [r4, #296] adds r1, r1, #48 lsls r2, r2, #1 bl ftl_memcpy ldrh r2, [r7, #2328] - ldr r1, [r5, #1256] + ldr r1, [r5, #1264] ldr r0, [r4, #472] lsls r3, r2, #1 lsrs r2, r2, #3 @@ -13182,40 +13222,40 @@ FtlLoadSysInfo: add r1, r1, r3 bl ftl_memcpy ldrh r3, [r7, #2432] - cbz r3, .L2162 + cbz r3, .L2168 ldrh r2, [r8, #2328] ldr r0, [r6, #3392] lsrs r3, r2, #3 add r3, r3, r2, lsl #1 - ldr r2, .L2181+8 + ldr r2, .L2187+8 adds r3, r3, #52 ubfx r3, r3, #2, #14 - ldr r1, [r2, #1256] + ldr r1, [r2, #1264] ldrh r2, [r8, #2424] add r1, r1, r3, lsl #2 lsls r2, r2, #2 bl ftl_memcpy - b .L2162 -.L2160: + b .L2168 +.L2166: subs r6, r6, #1 uxth r6, r6 - b .L2156 -.L2162: + b .L2162 +.L2168: ldr r2, [r4, #240] - ldr r3, .L2181+20 - ldr r6, .L2181 + ldr r3, .L2187+20 + ldr r6, .L2187 cmp r2, r3 - bne .L2165 + bne .L2171 ldrb r0, [r6, #250] @ zero_extendqisi2 ldrh r1, [r7, #2342] ldrh r2, [r6, #248] cmp r0, r1 - ldr r3, .L2181+4 + ldr r3, .L2187+4 strh r2, [r6, #546] @ movhi - bne .L2165 + bne .L2171 ldrh r1, [r3, #2388] ldrh r0, [r3, #2394] - str r2, [r5, #1284] + str r2, [r5, #1292] muls r1, r2, r1 str r1, [r3, #2448] muls r1, r0, r1 @@ -13278,47 +13318,47 @@ FtlLoadSysInfo: ldr r3, [r4, #276] cmp r3, r2 itt hi - ldrhi r2, .L2181 + ldrhi r2, .L2187 strhi r3, [r2, #512] movw r3, #65535 cmp r1, r3 - beq .L2168 - ldr r0, .L2181+24 + beq .L2174 + ldr r0, .L2187+24 bl make_superblock -.L2168: +.L2174: ldrh r2, [r4, #364] movw r3, #65535 cmp r2, r3 - beq .L2169 - ldr r0, .L2181+28 + beq .L2175 + ldr r0, .L2187+28 bl make_superblock -.L2169: +.L2175: ldrh r2, [r4, #412] movw r3, #65535 cmp r2, r3 - beq .L2170 - ldr r0, .L2181+32 + beq .L2176 + ldr r0, .L2187+32 bl make_superblock -.L2170: +.L2176: ldrh r2, [r4, #556] movw r3, #65535 cmp r2, r3 - beq .L2171 - ldr r0, .L2181+36 + beq .L2177 + ldr r0, .L2187+36 bl make_superblock -.L2171: +.L2177: movs r0, #0 -.L2155: +.L2161: add sp, sp, #44 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2182: +.L2188: .align 2 -.L2181: +.L2187: .word .LANCHOR2 .word .LANCHOR0 .word .LANCHOR4 - .word .LANCHOR4+1248 + .word .LANCHOR4+1256 .word .LC109 .word 1179929683 .word .LANCHOR2+316 @@ -13343,45 +13383,45 @@ FtlDumpBlockInfo: sub sp, sp, #100 mov r8, r1 bl P2V_block_in_plane - ldr r4, .L2199 - ldr r7, .L2199+4 - ldr r1, .L2199+8 + ldr r4, .L2205 + ldr r7, .L2205+4 + ldr r1, .L2205+8 ldrh r9, [r4, #2388] mov r6, r0 - ldr r0, .L2199+12 + ldr r0, .L2205+12 bl printk ldr r3, [r7, #296] mov r1, r6 - ldr r0, .L2199+16 + ldr r0, .L2205+16 ldrh r2, [r3, r6, lsl #1] bl printk add r0, sp, #96 strh r6, [r0, #-48]! @ movhi bl make_superblock - ldrb r5, [r4, #144] @ zero_extendqisi2 + ldrb r5, [r4, #148] @ zero_extendqisi2 str r7, [sp, #44] - cbz r5, .L2184 + cbz r5, .L2190 cmp r8, #0 - bne .L2195 + bne .L2201 mov r0, r6 bl ftl_get_blk_mode cmp r0, #1 mov r5, r0 - bne .L2184 + bne .L2190 ldrh r9, [r4, #2390] - b .L2184 -.L2195: + b .L2190 +.L2201: movs r5, #0 -.L2184: - ldr r0, .L2199+20 +.L2190: + ldr r0, .L2205+20 mov r1, r5 mov r2, r9 ldrh r3, [r4, #2388] bl printk - ldr r10, .L2199 + ldr r10, .L2205 movs r6, #0 -.L2185: - ldr r3, .L2199+4 +.L2191: + ldr r3, .L2205+4 movs r2, #0 ldrh fp, [r10, #2320] add lr, sp, #62 @@ -13391,21 +13431,21 @@ FtlDumpBlockInfo: mov r4, r2 movw ip, #65535 str r3, [sp, #28] - ldr r3, .L2199+4 + ldr r3, .L2205+4 ldr r3, [r3, #1144] str r3, [sp, #32] ldrh r3, [r10, #2398] str r3, [sp, #36] - ldr r3, .L2199+4 + ldr r3, .L2205+4 ldr r3, [r3, #1148] str r3, [sp, #40] -.L2186: +.L2192: uxth r3, r2 cmp r3, fp - bcs .L2197 + bcs .L2203 ldrh r3, [lr, #2]! cmp r3, ip - beq .L2187 + beq .L2193 ldr r1, [sp, #28] orr r3, r6, r3, lsl #10 ldr r7, [sp, #32] @@ -13428,21 +13468,21 @@ FtlDumpBlockInfo: uxth r4, r4 add r3, r3, r7 str r3, [r1, #12] -.L2187: +.L2193: adds r2, r2, #1 - b .L2186 -.L2197: - ldr r3, .L2199+4 + b .L2192 +.L2203: + ldr r3, .L2205+4 mov r1, r4 mov r2, r5 mov r8, #0 mov fp, #36 ldr r0, [r3, #3304] bl FlashReadPages -.L2191: +.L2197: uxth r3, r8 cmp r3, r4 - bcs .L2198 + bcs .L2204 ldr r3, [sp, #44] mul r2, fp, r8 ldrh r1, [sp, #48] @@ -13462,25 +13502,25 @@ FtlDumpBlockInfo: ldr r3, [r0] str r3, [sp, #16] ldr r3, [r0, #4] - ldr r0, .L2199+24 + ldr r0, .L2205+24 str r3, [sp, #20] ldr r2, [ip, r2] ldr r3, [lr, #4] bl printk - b .L2191 -.L2198: + b .L2197 +.L2204: adds r6, r6, #1 uxth r6, r6 cmp r6, r9 - bne .L2185 -.L2193: + bne .L2191 +.L2199: movs r0, #0 add sp, sp, #100 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2200: +.L2206: .align 2 -.L2199: +.L2205: .word .LANCHOR0 .word .LANCHOR2 .word .LANCHOR3+148 @@ -13503,18 +13543,18 @@ FtlScanAllBlock: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #92 sub sp, sp, #92 - ldr r0, .L2217 + ldr r0, .L2223 mov r8, #0 - ldr r1, .L2217+4 + ldr r1, .L2223+4 bl printk - ldr r5, .L2217+8 + ldr r5, .L2223+8 mov r7, r5 -.L2202: - ldr r3, .L2217+12 +.L2208: + ldr r3, .L2223+12 uxth r4, r8 ldrh r3, [r3, #2330] cmp r3, r4 - bls .L2213 + bls .L2219 add r9, sp, #88 mov r0, r4 mov fp, #36 @@ -13525,11 +13565,11 @@ FtlScanAllBlock: mov r1, r4 ldrh r2, [r2, r4, lsl #1] mov r3, r0 - ldr r0, .L2217+16 + ldr r0, .L2223+16 bl printk mov r0, r9 bl make_superblock - ldr r3, .L2217+12 + ldr r3, .L2223+12 movs r2, #0 ldr r9, [r5, #1148] ldrh lr, [r3, #2320] @@ -13539,17 +13579,17 @@ FtlScanAllBlock: add ip, sp, #54 ldr r3, [r5, #1144] str r3, [sp, #32] - ldr r3, .L2217+12 + ldr r3, .L2223+12 ldrh r0, [r3, #2398] ldrh r3, [r3, #2400] str r3, [sp, #36] -.L2203: +.L2209: uxth r3, r2 cmp r3, lr - bcs .L2214 + bcs .L2220 ldrh r3, [ip, #2]! cmp r3, r10 - beq .L2204 + beq .L2210 ldr r1, [sp, #28] lsls r3, r3, #10 ldr r6, [sp, #32] @@ -13571,20 +13611,20 @@ FtlScanAllBlock: uxth r4, r4 add r3, r3, r9 str r3, [r1, #12] -.L2204: +.L2210: adds r2, r2, #1 - b .L2203 -.L2214: + b .L2209 +.L2220: ldr r0, [r7, #3304] mov r1, r4 movs r2, #0 mov r9, #0 bl FlashReadPages mov r10, #36 -.L2208: +.L2214: uxth r3, r9 cmp r3, r4 - bcs .L2215 + bcs .L2221 mul r2, r10, r9 ldr ip, [r7, #3304] ldrh r1, [sp, #40] @@ -13603,23 +13643,23 @@ FtlScanAllBlock: ldr r3, [r0] str r3, [sp, #16] ldr r3, [r0, #4] - ldr r0, .L2217+20 + ldr r0, .L2223+20 str r3, [sp, #20] ldr r2, [ip, r2] ldr r3, [lr, #4] bl printk - b .L2208 -.L2215: + b .L2214 +.L2221: ldr r0, [r7, #3304] mov r1, r4 movs r2, #1 mov r9, #0 bl FlashReadPages mov r10, #36 -.L2210: +.L2216: uxth r3, r9 cmp r3, r4 - bcs .L2216 + bcs .L2222 mul r2, r10, r9 ldr ip, [r7, #3304] ldrh r1, [sp, #40] @@ -13638,23 +13678,23 @@ FtlScanAllBlock: ldr r3, [r0] str r3, [sp, #16] ldr r3, [r0, #4] - ldr r0, .L2217+24 + ldr r0, .L2223+24 str r3, [sp, #20] ldr r2, [ip, r2] ldr r3, [lr, #4] bl printk - b .L2210 -.L2216: + b .L2216 +.L2222: add r8, r8, #1 - b .L2202 -.L2213: + b .L2208 +.L2219: movs r0, #0 add sp, sp, #92 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2218: +.L2224: .align 2 -.L2217: +.L2223: .word .LC110 .word .LANCHOR3+168 .word .LANCHOR2 @@ -13677,74 +13717,74 @@ ftl_scan_all_ppa: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #36 sub sp, sp, #36 - ldr r6, .L2237 - ldr r5, .L2237+4 + ldr r6, .L2243 + ldr r5, .L2243+4 ldrh r4, [r6, #2386] mov r10, r6 subs r4, r4, #16 -.L2220: +.L2226: ldrh r3, [r6, #2386] cmp r4, r3 - bge .L2235 + bge .L2241 uxth r8, r4 mov r0, r8 bl ftl_get_blk_mode - ldrb r3, [r10, #144] @ zero_extendqisi2 - cbz r3, .L2221 + ldrb r3, [r10, #148] @ zero_extendqisi2 + cbz r3, .L2227 ldrh r3, [r10, #2328] cmp r4, r3 - bge .L2222 + bge .L2228 ldrh r3, [r10, #2402] cmp r4, r3 - blt .L2222 -.L2221: + blt .L2228 +.L2227: cmp r0, #1 - bne .L2223 -.L2222: + bne .L2229 +.L2228: ldrh r7, [r6, #2390] mov r9, #-2147483648 - b .L2224 -.L2223: + b .L2230 +.L2229: ldrh r7, [r6, #2388] mov r9, #0 -.L2224: - ldr r0, .L2237+8 +.L2230: + ldr r0, .L2243+8 mov r1, r4 mov r2, r7 mov r3, r9 bl printk mov r0, r8 bl FtlBbmIsBadBlock - cbz r0, .L2225 - ldr r0, .L2237+12 + cbz r0, .L2231 + ldr r0, .L2243+12 mov r1, r4 mov r2, r7 mov r3, r9 bl printk -.L2225: - ldr fp, .L2237+32 +.L2231: + ldr fp, .L2243+32 lsl ip, r4, #10 mov r8, #0 -.L2226: +.L2232: cmp r8, r7 - beq .L2236 + beq .L2242 add r3, r9, ip movs r2, #0 add r3, r3, r8 - str r3, [r5, #1252] + str r3, [r5, #1260] ldr r3, [fp, #3316] movs r1, #1 - ldr r0, .L2237+16 + ldr r0, .L2243+16 add r8, r8, #1 str ip, [sp, #28] - str r3, [r5, #1256] + str r3, [r5, #1264] ldr r3, [fp, #3340] - str r2, [r5, #1248] - str r3, [r5, #1260] + str r2, [r5, #1256] + str r3, [r5, #1268] bl FlashReadPages - ldr r3, [r5, #1260] - ldr r2, [r5, #1256] - ldr r0, .L2237+20 + ldr r3, [r5, #1268] + ldr r2, [r5, #1264] + ldr r0, .L2243+20 ldr r1, [r3, #4] str r1, [sp] ldr r1, [r3, #8] @@ -13754,31 +13794,31 @@ ftl_scan_all_ppa: ldr r1, [r2] str r1, [sp, #12] ldr r2, [r2, #4] - ldr r1, [r5, #1252] + ldr r1, [r5, #1260] str r2, [sp, #16] - ldr r2, [r5, #1248] + ldr r2, [r5, #1256] ldr r3, [r3] bl printk ldr ip, [sp, #28] - b .L2226 -.L2236: + b .L2232 +.L2242: adds r4, r4, #1 - b .L2220 -.L2235: - ldr r0, .L2237+24 - ldr r1, .L2237+28 + b .L2226 +.L2241: + ldr r0, .L2243+24 + ldr r1, .L2243+28 add sp, sp, #36 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, lr} b printk -.L2238: +.L2244: .align 2 -.L2237: +.L2243: .word .LANCHOR0 .word .LANCHOR4 .word .LC117 .word .LC118 - .word .LANCHOR4+1248 + .word .LANCHOR4+1256 .word .LC119 .word .LC120 .word .LANCHOR3+184 @@ -13798,22 +13838,22 @@ FlashProgPages: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #76 sub sp, sp, #76 - ldr r6, .L2293 + ldr r6, .L2299 mov r4, r0 str r1, [sp, #8] mov r9, r2 str r3, [sp, #20] ldr r5, [r6, #44] - ldrb r7, [r6] @ zero_extendqisi2 + ldrb r7, [r6, #32] @ zero_extendqisi2 ldrb r5, [r5, #19] @ zero_extendqisi2 str r5, [sp, #16] - ldr r5, .L2293+4 + ldr r5, .L2299+4 ldrb r5, [r5, #481] @ zero_extendqisi2 str r5, [sp, #12] - cbz r7, .L2240 + cbz r7, .L2246 bl FlashProgSlc2KPages - b .L2241 -.L2253: + b .L2247 +.L2259: movs r3, #36 mov r1, r9 add r2, sp, #28 @@ -13830,28 +13870,28 @@ FlashProgPages: mov r10, r0 ldr r0, [sp, #32] cmp r0, r3 - bcc .L2242 + bcc .L2248 mov r3, #-1 str r3, [r4, r8] -.L2243: +.L2249: adds r7, r7, #1 -.L2240: +.L2246: ldr r3, [sp, #8] - ldr r8, .L2293 + ldr r8, .L2299 cmp r7, r3 - bcc .L2253 - b .L2291 -.L2242: + bcc .L2259 + b .L2297 +.L2248: ldrb r3, [r6, #2240] @ zero_extendqisi2 cmp r3, #0 add r3, r6, r0, lsl #4 it eq moveq r10, #0 ldr r3, [r3, #2108] - cbz r3, .L2245 + cbz r3, .L2251 uxtb r0, r0 bl FlashWaitCmdDone -.L2245: +.L2251: ldr r3, [sp, #32] movs r0, #0 add r2, r6, r3, lsl #4 @@ -13861,11 +13901,11 @@ FlashProgPages: str fp, [r2, #2108] str r0, [r2, #2104] cmp r10, #0 - beq .L2246 + beq .L2252 add r2, r8, #36 add r2, r2, r4 str r2, [r1, #4] -.L2246: +.L2252: adds r2, r6, r3 add r3, r6, r3, lsl #4 ldrb r5, [r2, #2232] @ zero_extendqisi2 @@ -13873,48 +13913,48 @@ FlashProgPages: mov r0, r5 ldrb r3, [r6, #2230] @ zero_extendqisi2 cmp r3, #1 - bne .L2247 + bne .L2253 bl NandcWaitFlashReady - b .L2248 -.L2247: + b .L2254 +.L2253: bl NandcFlashCs mov r0, r5 ldr r3, [sp, #32] ldr r1, [sp, #28] add r3, r6, r3, lsl #2 - ldr r2, [r3, #1172] + ldr r2, [r3, #1176] adds r2, r2, #0 it ne movne r2, #1 bl FlashWaitReadyEN mov r0, r5 bl NandcFlashDeCs -.L2248: +.L2254: ldr r3, [sp, #16] subs r3, r3, #1 cmp r3, #7 - bhi .L2249 + bhi .L2255 adds r3, r6, r5 ldrb r3, [r3, #2064] @ zero_extendqisi2 - cbz r3, .L2249 + cbz r3, .L2255 mov r0, r5 - ldrb r1, [r6, #1211] @ zero_extendqisi2 - ldr r2, .L2293+8 + ldrb r1, [r6, #1213] @ zero_extendqisi2 + ldr r2, .L2299+8 movs r3, #0 bl HynixSetRRPara -.L2249: +.L2255: mov r0, r5 bl NandcFlashCs cmp r9, #1 mov r0, r5 - bne .L2250 - ldrb r3, [r6, #144] @ zero_extendqisi2 - cbz r3, .L2250 + bne .L2256 + ldrb r3, [r6, #148] @ zero_extendqisi2 + cbz r3, .L2256 bl flash_enter_slc_mode - b .L2251 -.L2250: + b .L2257 +.L2256: bl flash_exit_slc_mode -.L2251: +.L2257: mov r0, r5 ldr r1, [sp, #28] bl FlashProgFirstCmd @@ -13926,7 +13966,7 @@ FlashProgPages: ldr r3, [fp, #8] bl NandcXferData cmp r10, #0 - beq .L2252 + beq .L2258 mov r0, r5 ldr r1, [sp, #28] bl FlashProgDpFirstCmd @@ -13936,12 +13976,12 @@ FlashProgPages: ldr r3, [sp, #32] ldr r1, [sp, #28] add r3, r6, r3, lsl #2 - ldr r2, [r3, #1172] + ldr r2, [r3, #1176] adds r2, r2, #0 it ne movne r2, #1 bl FlashWaitReadyEN - ldr r1, [r6, #4] + ldr r1, [r6, #36] mov r0, r5 ldr r3, [sp, #28] add r1, r1, r3 @@ -13953,56 +13993,56 @@ FlashProgPages: ldr r2, [sp, #12] ldr r3, [r8, #8] bl NandcXferData -.L2252: +.L2258: mov r0, r5 ldr r1, [sp, #28] bl FlashProgSecondCmd mov r0, r5 bl NandcFlashDeCs add r7, r7, r10 - b .L2243 -.L2291: + b .L2249 +.L2297: movs r5, #0 addw r7, r8, #2100 mov r6, r8 -.L2254: +.L2260: ldrb r3, [r8, #2230] @ zero_extendqisi2 cmp r5, r3 - bcs .L2292 + bcs .L2298 uxtb r0, r5 bl FlashWaitCmdDone cmp r9, #1 - bne .L2255 - ldrb r3, [r6, #144] @ zero_extendqisi2 - cbz r3, .L2255 + bne .L2261 + ldrb r3, [r6, #148] @ zero_extendqisi2 + cbz r3, .L2261 lsls r3, r5, #4 ldrb r0, [r7, r3] @ zero_extendqisi2 bl flash_exit_slc_mode -.L2255: +.L2261: adds r5, r5, #1 - b .L2254 -.L2292: + b .L2260 +.L2298: ldr r3, [sp, #20] - cbnz r3, .L2257 -.L2265: + cbnz r3, .L2263 +.L2271: movs r0, #0 - b .L2241 -.L2257: - ldr r7, .L2293+12 + b .L2247 +.L2263: + ldr r7, .L2299+12 mov r8, #0 mov r10, r7 -.L2258: +.L2264: ldr r3, [sp, #8] cmp r8, r3 - beq .L2265 + beq .L2271 ldr r3, [r4] adds r3, r3, #1 - bne .L2259 + bne .L2265 ldr r1, [r4, #4] - ldr r0, .L2293+16 + ldr r0, .L2299+16 bl printk - b .L2260 -.L2259: + b .L2266 +.L2265: ldr r3, [sp, #8] mov r1, r9 add r2, sp, #28 @@ -14013,10 +14053,10 @@ FlashProgPages: str r3, [sp] add r3, sp, #32 bl LogAddr2PhyAddr - ldr r2, [r7, #1220] + ldr r2, [r7, #1228] movs r3, #0 str r3, [r2] - ldr r2, [r7, #1224] + ldr r2, [r7, #1232] str r3, [r2] ldmia r6!, {r0, r1, r2, r3} add r5, sp, #36 @@ -14028,58 +14068,58 @@ FlashProgPages: movs r1, #1 mov r2, r9 str r3, [r5] - ldr r3, [r7, #1220] + ldr r3, [r7, #1228] str r3, [sp, #44] - ldr r3, [r7, #1224] + ldr r3, [r7, #1232] str r3, [sp, #48] bl FlashReadPages ldr r5, [sp, #36] adds r3, r5, #1 - bne .L2261 - ldr r0, .L2293+20 + bne .L2267 + ldr r0, .L2299+20 ldr r1, [r4, #4] bl printk str r5, [r4] -.L2261: +.L2267: ldr r3, [r4, #12] - cbz r3, .L2262 + cbz r3, .L2268 ldr r2, [r3] - ldr r3, [r10, #1224] + ldr r3, [r10, #1232] ldr r3, [r3] cmp r2, r3 - beq .L2262 - ldr r0, .L2293+24 + beq .L2268 + ldr r0, .L2299+24 ldr r1, [r4, #4] bl printk mov r3, #-1 str r3, [r4] -.L2262: +.L2268: ldr r3, [r4, #8] - cbz r3, .L2260 + cbz r3, .L2266 ldr r2, [r3] - ldr r3, [r10, #1220] + ldr r3, [r10, #1228] ldr r3, [r3] cmp r2, r3 - beq .L2260 - ldr r0, .L2293+28 + beq .L2266 + ldr r0, .L2299+28 ldr r1, [r4, #4] bl printk mov r3, #-1 str r3, [r4] -.L2260: +.L2266: add r8, r8, #1 adds r4, r4, #36 - b .L2258 -.L2241: + b .L2264 +.L2247: add sp, sp, #76 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2294: +.L2300: .align 2 -.L2293: +.L2299: .word .LANCHOR0 .word .LANCHOR1 - .word .LANCHOR0+1214 + .word .LANCHOR0+1216 .word .LANCHOR4 .word .LC104 .word .LC105 @@ -14099,13 +14139,13 @@ FlashTestBlk: push {r4, r5, lr} .save {r4, r5, lr} mov r4, r0 - ldr r5, .L2298 + ldr r5, .L2304 .pad #108 sub sp, sp, #108 - ldr r3, [r5, #1204] - cmp r0, r3 - bcc .L2297 ldr r3, [r5, #1212] + cmp r0, r3 + bcc .L2303 + ldr r3, [r5, #1220] add r0, sp, #40 movs r1, #165 movs r2, #32 @@ -14113,7 +14153,7 @@ FlashTestBlk: lsls r4, r4, #10 str r3, [sp, #12] bl ftl_memset - ldr r0, [r5, #1212] + ldr r0, [r5, #1220] movs r1, #90 movs r2, #8 bl ftl_memset @@ -14136,17 +14176,17 @@ FlashTestBlk: movne r4, #1 negs r4, r4 bl FlashEraseBlocks - b .L2296 -.L2297: + b .L2302 +.L2303: movs r4, #0 -.L2296: +.L2302: mov r0, r4 add sp, sp, #108 @ sp needed pop {r4, r5, pc} -.L2299: +.L2305: .align 2 -.L2298: +.L2304: .word .LANCHOR4 .fnend .size FlashTestBlk, .-FlashTestBlk @@ -14163,23 +14203,23 @@ FlashMakeFactorBbt: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #84 sub sp, sp, #84 - ldr r5, .L2361 + ldr r5, .L2367 movs r1, #1 - ldr r4, .L2361+4 - ldr r0, .L2361+8 - ldr r3, [r5, #1216] - ldrh r8, [r4, #128] + ldr r4, .L2367+4 + ldr r0, .L2367+8 + ldr r3, [r5, #1224] + ldrh r8, [r4, #132] str r3, [sp, #20] - ldrh r3, [r4, #130] + ldrh r3, [r4, #134] smulbb r8, r8, r3 ldr r3, [r4, #44] ldrb r3, [r3, #24] @ zero_extendqisi2 uxth r8, r8 str r3, [sp, #24] - ldrh r3, [r4, #4] + ldrh r3, [r4, #36] str r3, [sp, #16] - ldrb r3, [r4] @ zero_extendqisi2 - ldr r4, .L2361+4 + ldrb r3, [r4, #32] @ zero_extendqisi2 + ldr r4, .L2367+4 cmp r3, #1 itttt eq ldreq r3, [sp, #16] @@ -14187,27 +14227,27 @@ FlashMakeFactorBbt: uxtheq r3, r3 streq r3, [sp, #16] bl printk - ldr r0, [r5, #1216] + ldr r0, [r5, #1224] movs r1, #0 mov r2, #4096 bl ftl_memset - ldr r5, .L2361 + ldr r5, .L2367 lsr r3, r8, #4 str r3, [sp, #28] movs r3, #0 str r3, [sp, #8] -.L2302: +.L2308: ldrb r7, [sp, #8] @ zero_extendqisi2 ldrb r3, [r4, #2230] @ zero_extendqisi2 cmp r3, r7 - bls .L2357 + bls .L2363 add r3, r5, r7, lsl #1 - ldrh r6, [r3, #1232] + ldrh r6, [r3, #1240] cmp r6, #0 - bne .L2332 - ldrh r2, [r4, #136] + bne .L2338 + ldrh r2, [r4, #140] mov r1, r6 - ldr r0, [r5, #1184] + ldr r0, [r5, #1192] mov r9, r6 lsls r2, r2, #9 bl ftl_memset @@ -14217,29 +14257,29 @@ FlashMakeFactorBbt: add fp, r4, r3 str r6, [sp, #4] str r3, [sp, #32] -.L2304: +.L2310: ldrh r3, [sp, #4] cmp r3, r8 str r3, [sp, #12] - bcs .L2314 + bcs .L2320 movs r3, #255 strb r3, [sp, #42] strb r3, [sp, #43] ldr r3, [sp, #24] lsls r1, r3, #31 - bpl .L2306 - ldr r3, [fp, #1172] + bpl .L2312 + ldr r3, [fp, #1176] add r2, sp, #42 mov r0, r10 add r3, r3, r6 str r3, [sp, #36] mov r1, r3 bl FlashReadSpare - ldrb r2, [r4] @ zero_extendqisi2 + ldrb r2, [r4, #32] @ zero_extendqisi2 cmp r2, #1 ldr r3, [sp, #36] - bne .L2306 - ldr r1, [r4, #4] + bne .L2312 + ldr r1, [r4, #36] add r2, sp, #43 mov r0, r10 add r1, r1, r3 @@ -14248,66 +14288,66 @@ FlashMakeFactorBbt: ldrb r2, [sp, #43] @ zero_extendqisi2 ands r3, r3, r2 strb r3, [sp, #42] -.L2306: +.L2312: ldr r3, [sp, #24] lsls r2, r3, #30 - bpl .L2308 + bpl .L2314 ldr r3, [r4, #44] mov r0, r10 add r2, sp, #43 ldrh r1, [r3, #10] - ldr r3, [fp, #1172] + ldr r3, [fp, #1176] subs r1, r1, #1 add r1, r1, r3 add r1, r1, r6 bl FlashReadSpare -.L2308: +.L2314: ldr r3, [r4, #44] ldrb r2, [r3, #7] @ zero_extendqisi2 cmp r2, #1 - beq .L2309 + beq .L2315 cmp r2, #8 - beq .L2309 + beq .L2315 ldrb r3, [r3, #18] @ zero_extendqisi2 cmp r3, #12 - bne .L2310 -.L2309: + bne .L2316 +.L2315: ldrb r3, [sp, #42] @ zero_extendqisi2 - cbz r3, .L2331 + cbz r3, .L2337 ldrb r0, [sp, #43] @ zero_extendqisi2 clz r0, r0 lsrs r0, r0, #5 - b .L2311 -.L2310: + b .L2317 +.L2316: ldrb r3, [sp, #42] @ zero_extendqisi2 cmp r3, #255 - bne .L2331 + bne .L2337 ldrb r0, [sp, #43] @ zero_extendqisi2 subs r0, r0, #255 it ne movne r0, #1 - b .L2311 -.L2331: + b .L2317 +.L2337: movs r0, #1 -.L2311: +.L2317: ldr r3, [sp, #24] lsls r3, r3, #29 - bpl .L2312 - ldr r3, .L2361+4 + bpl .L2318 + ldr r3, .L2367+4 mov r0, r10 ldr r2, [sp, #32] add r3, r3, r2 - ldr r1, [r3, #1172] + ldr r1, [r3, #1176] add r1, r1, r6 bl SandiskProgTestBadBlock -.L2312: - cbz r0, .L2313 +.L2318: + cbz r0, .L2319 mov r1, r7 ldr r2, [sp, #4] - ldr r0, .L2361+12 + ldr r0, .L2367+12 add r9, r9, #1 bl printk - ldr r2, [r5, #1184] + ldr r2, [r5, #1192] uxth r9, r9 ldr r3, [sp, #12] and r0, r3, #31 @@ -14321,47 +14361,47 @@ FlashMakeFactorBbt: ldrb r3, [r4, #2230] @ zero_extendqisi2 muls r3, r2, r3 cmp r9, r3 - bgt .L2314 -.L2313: + bgt .L2320 +.L2319: ldr r3, [sp, #4] adds r3, r3, #1 str r3, [sp, #4] ldr r3, [sp, #16] add r6, r6, r3 - b .L2304 -.L2314: + b .L2310 +.L2320: mov r2, r9 - ldr r0, .L2361+16 + ldr r0, .L2367+16 mov r1, r7 bl printk ldrb r3, [r4, #2230] @ zero_extendqisi2 ldr r2, [sp, #28] muls r3, r2, r3 cmp r9, r3 - blt .L2316 - ldrh r2, [r4, #136] + blt .L2322 + ldrh r2, [r4, #140] movs r1, #0 - ldr r0, [r5, #1184] + ldr r0, [r5, #1192] lsls r2, r2, #9 bl ftl_memset -.L2316: +.L2322: cmp r7, #0 - bne .L2318 - ldrh r10, [r5, #1204] + bne .L2324 + ldrh r10, [r5, #1212] mov r9, #1 mov r6, r7 -.L2319: - ldr r3, .L2361+4 - ldrb r3, [r3, #1] @ zero_extendqisi2 +.L2325: + ldr r3, .L2367+4 + ldrb r3, [r3, #33] @ zero_extendqisi2 cmp r3, r10 - bls .L2358 + bls .L2364 mov r0, r10 bl FlashTestBlk - cbz r0, .L2320 + cbz r0, .L2326 mov r1, r10 - ldr r0, .L2361+20 + ldr r0, .L2367+20 bl printk - ldr r2, [r5, #1184] + ldr r2, [r5, #1192] lsr r0, r10, #5 adds r6, r6, #1 and r3, r10, #31 @@ -14370,82 +14410,82 @@ FlashMakeFactorBbt: lsl r3, r9, r3 orrs r3, r3, r1 str r3, [r2, r0, lsl #2] -.L2320: +.L2326: add r10, r10, #1 uxth r10, r10 - b .L2319 -.L2358: + b .L2325 +.L2364: add fp, r8, #-1 sub r9, r8, #50 mov r10, #1 uxth fp, fp -.L2322: +.L2328: cmp fp, r9 - ble .L2359 + ble .L2365 mov r0, fp bl FlashTestBlk - cbz r0, .L2323 + cbz r0, .L2329 mov r1, fp - ldr r0, .L2361+20 + ldr r0, .L2367+20 bl printk - ldr r2, [r5, #1184] + ldr r2, [r5, #1192] lsr r0, fp, #5 and r3, fp, #31 lsl r3, r10, r3 ldr r1, [r2, r0, lsl #2] orrs r3, r3, r1 str r3, [r2, r0, lsl #2] -.L2323: +.L2329: add fp, fp, #-1 uxth fp, fp - b .L2322 -.L2359: - ldr r3, .L2361+4 - ldr r2, [r5, #1204] - ldrb r3, [r3, #1] @ zero_extendqisi2 + b .L2328 +.L2365: + ldr r3, .L2367+4 + ldr r2, [r5, #1212] + ldrb r3, [r3, #33] @ zero_extendqisi2 subs r3, r3, r2 cmp r6, r3 - bcc .L2318 - ldrh r2, [r4, #136] + bcc .L2324 + ldrh r2, [r4, #140] movs r1, #0 - ldr r0, [r5, #1184] + ldr r0, [r5, #1192] lsls r2, r2, #9 bl ftl_memset -.L2318: +.L2324: ldrb r6, [sp, #8] @ zero_extendqisi2 add r10, r8, #-1 add r9, r5, r7, lsl #1 uxth r10, r10 mul r6, r8, r6 -.L2326: +.L2332: mov r1, r7 - ldr r0, .L2361+24 + ldr r0, .L2367+24 mov r2, r10 bl printk - ldr r1, [r5, #1184] -.L2327: + ldr r1, [r5, #1192] +.L2333: lsr r3, r10, #5 and r2, r10, #31 ldr r3, [r1, r3, lsl #2] lsrs r3, r3, r2 ands r3, r3, #1 - beq .L2360 + beq .L2366 add r10, r10, #-1 uxth r10, r10 - b .L2327 -.L2360: + b .L2333 +.L2366: ldr r1, [sp, #20] movw r2, #61664 - strh r10, [r9, #1232] @ movhi + strh r10, [r9, #1240] @ movhi add r0, sp, #44 strh r2, [r1] @ movhi strh r10, [r1, #2] @ movhi strh r3, [r1, #8] @ movhi movs r1, #1 - ldr r3, [r5, #1184] + ldr r3, [r5, #1192] mov r2, r1 str r3, [sp, #52] - ldr r3, [r5, #1216] + ldr r3, [r5, #1224] str r3, [sp, #56] add r3, r10, r6 lsls r3, r3, #10 @@ -14457,22 +14497,22 @@ FlashMakeFactorBbt: add r0, sp, #44 bl FlashProgPages ldr r3, [sp, #44] - cbz r3, .L2332 + cbz r3, .L2338 add r10, r10, #-1 uxth r10, r10 - b .L2326 -.L2332: + b .L2332 +.L2338: ldr r3, [sp, #8] adds r3, r3, #1 str r3, [sp, #8] - b .L2302 -.L2357: + b .L2308 +.L2363: add sp, sp, #84 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2362: +.L2368: .align 2 -.L2361: +.L2367: .word .LANCHOR4 .word .LANCHOR0 .word .LC121 @@ -14495,17 +14535,17 @@ FtlLowFormatEraseBlock: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #28 sub sp, sp, #28 - ldr r7, .L2415 + ldr r7, .L2421 str r0, [sp, #4] str r1, [sp] ldrb r3, [r7, #2240] @ zero_extendqisi2 str r3, [sp, #16] - ldr r3, .L2415+4 + ldr r3, .L2421+4 ldr r2, [r3, #224] mov fp, r3 cmp r2, #0 - bne .L2392 - ldrb r3, [r7, #144] @ zero_extendqisi2 + bne .L2398 + ldrb r3, [r7, #148] @ zero_extendqisi2 mov r8, #36 mov r9, r2 mov r5, r2 @@ -14513,30 +14553,30 @@ FtlLowFormatEraseBlock: mov r10, fp str r3, [sp, #8] str r0, [fp, #3292] -.L2365: +.L2371: ldrh r0, [r7, #2320] uxth r1, r9 - ldr r3, .L2415 + ldr r3, .L2421 cmp r0, r1 - bls .L2410 + bls .L2416 mul r6, r8, r1 ldr r0, [fp, #228] movs r3, #0 str r3, [r0, r6] - ldr r3, .L2415 + ldr r3, .L2421 add r1, r1, r3 ldrb r0, [r1, #2348] @ zero_extendqisi2 ldr r1, [sp, #4] bl V2P_block ldr r3, [sp] mov r6, r0 - cbz r3, .L2366 + cbz r3, .L2372 bl IsBlkInVendorPart - cbnz r0, .L2367 -.L2366: + cbnz r0, .L2373 +.L2372: mov r0, r6 bl FtlBbmIsBadBlock - cbnz r0, .L2368 + cbnz r0, .L2374 ldr r3, [fp, #228] lsls r6, r6, #10 ldrh r1, [r7, #2400] @@ -14552,16 +14592,16 @@ FtlLowFormatEraseBlock: str r6, [lr, #4] add r1, r1, r0 str r1, [lr, #12] - b .L2367 -.L2368: + b .L2373 +.L2374: adds r4, r4, #1 uxth r4, r4 -.L2367: +.L2373: add r9, r9, #1 - b .L2365 -.L2410: + b .L2371 +.L2416: cmp r5, #0 - beq .L2391 + beq .L2397 ldr r2, [sp, #8] mov r8, #0 ldr r0, [fp, #228] @@ -14577,78 +14617,78 @@ FtlLowFormatEraseBlock: ldrb r2, [sp, #16] @ zero_extendqisi2 ldr r3, [sp, #8] strb r2, [r3, #2240] -.L2372: +.L2378: uxth r2, r8 cmp r2, r5 - bcs .L2411 + bcs .L2417 mul r2, r9, r8 ldr r1, [fp, #228] adds r0, r1, r2 ldr r2, [r1, r2] adds r2, r2, #1 - bne .L2373 + bne .L2379 ldr r0, [r0, #4] adds r4, r4, #1 ubfx r0, r0, #10, #16 uxth r4, r4 bl FtlBbmMapBadBlock -.L2373: +.L2379: add r8, r8, #1 - b .L2372 -.L2411: + b .L2378 +.L2417: ldr r3, [sp] - cbnz r3, .L2375 + cbnz r3, .L2381 movs r3, #6 uxth r6, r6 str r3, [sp, #12] movs r3, #1 str r3, [sp, #8] - b .L2376 -.L2375: + b .L2382 +.L2381: ldrh r3, [r7, #2390] str r3, [sp, #8] - ldrb r3, [r7, #144] @ zero_extendqisi2 - cbnz r3, .L2393 + ldrb r3, [r7, #148] @ zero_extendqisi2 + cbnz r3, .L2399 ldr r3, [sp, #8] movs r6, #1 lsrs r3, r3, #2 str r3, [sp, #12] - b .L2376 -.L2393: + b .L2382 +.L2399: movs r6, #1 str r6, [sp, #12] -.L2376: - ldr r8, .L2415+4 +.L2382: + ldr r8, .L2421+4 movs r7, #0 mov r10, r8 -.L2386: +.L2392: mov fp, #0 mov r5, fp -.L2377: - ldr r9, .L2415 +.L2383: + ldr r9, .L2421 uxth r3, fp ldrh r1, [r9, #2320] cmp r1, r3 - bls .L2412 + bls .L2418 movs r2, #36 ldr r0, [r8, #228] mul r1, r2, r3 movs r2, #0 str r2, [r0, r1] - ldr r2, .L2415 + ldr r2, .L2421 ldr r1, [sp, #4] add r3, r3, r2 ldrb r0, [r3, #2348] @ zero_extendqisi2 bl V2P_block ldr r3, [sp] mov r9, r0 - cbz r3, .L2378 + cbz r3, .L2384 bl IsBlkInVendorPart - cbnz r0, .L2379 -.L2378: + cbnz r0, .L2385 +.L2384: mov r0, r9 bl FtlBbmIsBadBlock - cbnz r0, .L2379 + cbnz r0, .L2385 ldr r1, [r10, #228] movs r3, #36 ldr r0, [r8, #3336] @@ -14657,7 +14697,7 @@ FtlLowFormatEraseBlock: str r3, [r1, #4] ldr r3, [r10, #3332] str r3, [r1, #8] - ldr r3, .L2415 + ldr r3, .L2421 ldrh r3, [r3, #2400] muls r3, r5, r3 add r5, r5, #1 @@ -14667,12 +14707,12 @@ FtlLowFormatEraseBlock: uxth r5, r5 add r3, r3, r0 str r3, [r1, #12] -.L2379: +.L2385: add fp, fp, #1 - b .L2377 -.L2412: + b .L2383 +.L2418: cmp r5, #0 - beq .L2391 + beq .L2397 mov r2, r6 movs r3, #1 ldr r0, [r8, #228] @@ -14683,16 +14723,16 @@ FtlLowFormatEraseBlock: movs r2, #36 ldrb r3, [sp, #16] @ zero_extendqisi2 strb r3, [r9, #2240] - ldr r9, .L2415+4 -.L2383: + ldr r9, .L2421+4 +.L2389: uxth r3, fp cmp r3, r5 - bcs .L2413 + bcs .L2419 mul r3, r2, fp ldr r1, [r10, #228] adds r0, r1, r3 ldr r3, [r1, r3] - cbz r3, .L2384 + cbz r3, .L2390 ldr r0, [r0, #4] adds r4, r4, #1 str r2, [sp, #20] @@ -14700,59 +14740,59 @@ FtlLowFormatEraseBlock: uxth r4, r4 bl FtlBbmMapBadBlock ldr r2, [sp, #20] -.L2384: +.L2390: add fp, fp, #1 - b .L2383 -.L2413: + b .L2389 +.L2419: ldr r3, [sp, #12] add r7, r7, r3 ldr r3, [sp, #8] uxth r7, r7 cmp r7, r3 - bcc .L2386 + bcc .L2392 movs r7, #0 mov r8, #36 -.L2387: +.L2393: uxth r3, r7 cmp r3, r5 - bcs .L2414 + bcs .L2420 ldr r3, [sp] - cbz r3, .L2388 + cbz r3, .L2394 mul r3, r8, r7 ldr r2, [r9, #228] adds r1, r2, r3 ldr r3, [r2, r3] - cbnz r3, .L2388 + cbnz r3, .L2394 ldr r0, [r1, #4] movs r1, #1 ubfx r0, r0, #10, #16 bl FtlFreeSysBlkQueueIn -.L2388: +.L2394: adds r7, r7, #1 - b .L2387 -.L2414: + b .L2393 +.L2420: ldr r3, [sp, #4] cmp r3, #63 - bls .L2390 + bls .L2396 ldr r3, [sp] - cbz r3, .L2391 -.L2390: + cbz r3, .L2397 +.L2396: ldr r0, [r9, #228] mov r1, r6 mov r2, r5 bl FlashEraseBlocks -.L2391: +.L2397: mov r0, r4 - b .L2364 -.L2392: + b .L2370 +.L2398: movs r0, #0 -.L2364: +.L2370: add sp, sp, #28 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2416: +.L2422: .align 2 -.L2415: +.L2421: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -14770,39 +14810,39 @@ FtlBbmTblFlush: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #20 sub sp, sp, #20 - ldr r7, .L2434 + ldr r7, .L2440 ldr r6, [r7, #224] cmp r6, #0 - bne .L2419 - ldr r4, .L2434+4 + bne .L2425 + ldr r4, .L2440+4 mov r1, r6 ldr r0, [r7, #3316] - ldr r5, .L2434+8 + ldr r5, .L2440+8 addw r9, r4, #2476 ldr r3, [r7, #3340] ldrh r2, [r4, #2398] - str r0, [r5, #1256] - str r3, [r5, #1260] + str r0, [r5, #1264] + str r3, [r5, #1268] bl ftl_memset -.L2420: +.L2426: ldrh r3, [r4, #2342] - ldr r8, .L2434+4 + ldr r8, .L2440+4 cmp r6, r3 - bge .L2433 + bge .L2439 ldrh r2, [r7, #3404] - ldr r3, [r5, #1256] + ldr r3, [r5, #1264] ldr r1, [r9, #4]! mul r0, r2, r6 lsls r2, r2, #2 adds r6, r6, #1 add r0, r3, r0, lsl #2 bl ftl_memcpy - b .L2420 -.L2433: - ldr r6, [r5, #1260] + b .L2426 +.L2439: + ldr r6, [r5, #1268] movs r1, #255 movs r2, #16 - ldr fp, .L2434 + ldr fp, .L2440 mov r0, r6 bl ftl_memset movw r3, #61649 @@ -14819,30 +14859,30 @@ FtlBbmTblFlush: mov r8, #0 mov r10, r8 strh r3, [r6, #12] @ movhi -.L2422: +.L2428: ldr r3, [r7, #3316] mov ip, #0 ldrh r1, [r4, #2452] ldrh r2, [r4, #2454] - str r3, [r5, #1256] + str r3, [r5, #1264] ldr r3, [r7, #3340] - str ip, [r5, #1248] + str ip, [r5, #1256] str ip, [sp, #12] - str r3, [r5, #1260] + str r3, [r5, #1268] orr r3, r2, r1, lsl #10 ldrh r0, [r6, #10] - str r3, [r5, #1252] + str r3, [r5, #1260] ldrh r3, [r4, #2456] str r0, [sp] - ldr r0, .L2434+12 + ldr r0, .L2440+12 bl printk ldrh r3, [r4, #2390] ldrh r2, [r4, #2454] subs r3, r3, #1 - ldr r9, .L2434+4 + ldr r9, .L2440+4 cmp r2, r3 ldr ip, [sp, #12] - blt .L2423 + blt .L2429 ldrh r2, [r9, #2452] movs r1, #1 ldr r3, [r9, #2460] @@ -14853,55 +14893,55 @@ FtlBbmTblFlush: strh r2, [r6, #8] @ movhi ldrh r3, [r9, #2456] strh r2, [r9, #2456] @ movhi - ldr r2, .L2434+8 + ldr r2, .L2440+8 strh r3, [r9, #2452] @ movhi lsls r3, r3, #10 strh ip, [r9, #2454] @ movhi - str r3, [r2, #1252] + str r3, [r2, #1260] mov r2, r1 str r3, [r0, #4] bl FlashEraseBlocks -.L2423: +.L2429: movs r1, #1 - ldr r9, .L2434+8 + ldr r9, .L2440+8 mov r2, r1 mov r3, r1 - add r0, r9, #1248 + add r0, r9, #1256 bl FlashProgPages ldrh r3, [r4, #2454] adds r3, r3, #1 strh r3, [r4, #2454] @ movhi - ldr r3, [r5, #1248] + ldr r3, [r5, #1256] adds r2, r3, #1 - bne .L2424 + bne .L2430 add r8, r8, #1 - ldr r0, .L2434+16 - ldr r1, [r9, #1252] + ldr r0, .L2440+16 + ldr r1, [r9, #1260] uxth r8, r8 bl printk cmp r8, #3 - bls .L2422 - ldr r0, .L2434+20 + bls .L2428 + ldr r0, .L2440+20 mov r2, r8 - ldr r1, [r9, #1252] + ldr r1, [r9, #1260] bl printk movs r3, #1 str r3, [r7, #224] - b .L2419 -.L2424: + b .L2425 +.L2430: add r10, r10, #1 cmp r10, #1 - beq .L2422 + beq .L2428 cmp r3, #256 - beq .L2422 -.L2419: + beq .L2428 +.L2425: movs r0, #0 add sp, sp, #20 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2435: +.L2441: .align 2 -.L2434: +.L2440: .word .LANCHOR2 .word .LANCHOR0 .word .LANCHOR4 @@ -14922,19 +14962,19 @@ allocate_data_superblock: push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r5, r0 - ldr r4, .L2492 + ldr r4, .L2498 .pad #20 sub sp, sp, #20 ldr r3, [r4, #224] cmp r3, #0 - bne .L2437 - ldr r9, .L2492+16 + bne .L2443 + ldr r9, .L2498+16 mov r8, r4 -.L2438: - ldr r3, .L2492+4 +.L2444: + ldr r3, .L2498+4 ldrb r2, [r5, #8] @ zero_extendqisi2 cmp r5, r3 - bne .L2439 + bne .L2445 ldrh r7, [r8, #312] ldr r6, [r8, #1132] lsrs r1, r7, #1 @@ -14943,48 +14983,48 @@ allocate_data_superblock: add r3, r3, r0, lsr #2 ldr r0, [r9, #2244] uxth r3, r3 - cbz r0, .L2462 + cbz r0, .L2468 ldr r0, [r8, #532] cmp r0, #39 - bhi .L2462 + bhi .L2468 cmp r0, #2 - bls .L2467 + bls .L2473 lsls r0, r7, #31 - bpl .L2440 - cbz r6, .L2464 - b .L2440 -.L2439: + bpl .L2446 + cbz r6, .L2470 + b .L2446 +.L2445: cmp r2, #1 - bne .L2467 + bne .L2473 ldrh r3, [r9, #2340] cmp r3, #1 - beq .L2467 - ldrb r3, [r9, #144] @ zero_extendqisi2 - cbnz r3, .L2467 + beq .L2473 + ldrb r3, [r9, #148] @ zero_extendqisi2 + cbnz r3, .L2473 ldrh r0, [r8, #312] ldr r3, [r9, #2244] lsrs r1, r0, #3 - cbz r3, .L2440 + cbz r3, .L2446 ldr r3, [r8, #532] cmp r3, #1 - bhi .L2440 + bhi .L2446 rsb r0, r0, r0, lsl #3 ubfx r1, r0, #3, #16 - b .L2440 -.L2462: + b .L2446 +.L2468: mov r1, r3 -.L2440: - cbz r1, .L2441 +.L2446: + cbz r1, .L2447 subs r1, r1, #1 uxth r1, r1 - b .L2441 -.L2464: + b .L2447 +.L2470: mov r1, r6 - b .L2441 -.L2467: + b .L2447 +.L2473: movs r1, #0 -.L2441: - ldr r0, .L2492+8 +.L2447: + ldr r0, .L2498+8 bl List_pop_index_node ldrh r3, [r4, #312] subs r3, r3, #1 @@ -14992,16 +15032,16 @@ allocate_data_superblock: ldrh r3, [r9, #2328] uxth r6, r0 cmp r3, r6 - bls .L2438 + bls .L2444 ldr r3, [r8, #296] ldrh r7, [r3, r6, lsl #1] cmp r7, #0 - bne .L2438 + bne .L2444 strh r6, [r5] @ movhi mov r0, r5 bl make_superblock ldrb r3, [r5, #7] @ zero_extendqisi2 - cbz r3, .L2443 + cbz r3, .L2449 ldr r0, [r8, #228] movs r2, #36 ldrh ip, [r9, #2320] @@ -15011,14 +15051,14 @@ allocate_data_superblock: mla r1, r2, ip, r0 mov ip, r7 str r1, [sp, #4] - b .L2444 -.L2443: + b .L2450 +.L2449: ldr r3, [r8, #296] - b .L2487 -.L2444: + b .L2493 +.L2450: ldr r1, [sp, #4] cmp r3, r1 - beq .L2489 + beq .L2495 str ip, [r3, #8] adds r3, r3, #36 str ip, [r3, #-24] @@ -15031,32 +15071,32 @@ allocate_data_superblock: uxthne r7, r7 it ne strne r1, [fp, #4] - b .L2444 -.L2489: + b .L2450 +.L2495: ldr r3, [r9, #2244] - cbz r3, .L2447 - ldr r3, .L2492+12 + cbz r3, .L2453 + ldr r3, .L2498+12 cmp r5, r3 - bne .L2447 + bne .L2453 ldr r3, [r8, #232] ldrh r3, [r3, r6, lsl #1] cmp r3, #40 itt hi movhi r3, #0 strbhi r3, [r8, #324] -.L2447: +.L2453: ldrb r3, [r5, #8] @ zero_extendqisi2 ldr r2, [r4, #232] - cbnz r3, .L2448 + cbnz r3, .L2454 ldrh r1, [r2, r6, lsl #1] - cbz r1, .L2468 + cbz r1, .L2474 ldrh r3, [r9, #2380] add r3, r3, r1 uxth r3, r3 - b .L2449 -.L2468: + b .L2455 +.L2474: movs r3, #2 -.L2449: +.L2455: strh r3, [r2, r6, lsl #1] @ movhi mov r0, r6 ldr r3, [r4, #516] @@ -15064,8 +15104,8 @@ allocate_data_superblock: adds r3, r3, #1 str r3, [r4, #516] bl ftl_set_blk_mode - b .L2450 -.L2448: + b .L2456 +.L2454: ldrh r3, [r2, r6, lsl #1] lsrs r0, r6, #5 and r1, r6, #31 @@ -15080,7 +15120,7 @@ allocate_data_superblock: ldr r1, [r2, r0, lsl #2] orrs r3, r3, r1 str r3, [r2, r0, lsl #2] -.L2450: +.L2456: ldr r3, [r4, #232] ldr r2, [r4, #528] ldr r0, [r4, #516] @@ -15103,18 +15143,18 @@ allocate_data_superblock: mla r3, r3, r7, r1 adds r3, r3, #40 str r0, [r4, #524] -.L2452: +.L2458: adds r2, r2, #36 cmp r2, r3 - beq .L2490 + beq .L2496 ldr r1, [r2, #-36] bic r1, r1, #1020 bic r1, r1, #3 str r1, [r2, #-36] - b .L2452 -.L2490: - ldrb r3, [r9, #144] @ zero_extendqisi2 - cbz r3, .L2454 + b .L2458 +.L2496: + ldrb r3, [r9, #148] @ zero_extendqisi2 + cbz r3, .L2460 ldrb r3, [r5, #8] @ zero_extendqisi2 mov r2, r7 ldr r0, [r4, #228] @@ -15123,7 +15163,7 @@ allocate_data_superblock: moveq r1, #0 movne r1, #1 bl FlashEraseBlocks -.L2454: +.L2460: mov r2, r7 ldr r0, [r4, #228] ldrb r1, [r5, #8] @ zero_extendqisi2 @@ -15132,16 +15172,16 @@ allocate_data_superblock: add r2, r5, #16 mov ip, #36 mov fp, r10 -.L2456: +.L2462: uxth r3, r10 cmp r3, r7 - bcs .L2491 + bcs .L2497 mul r3, ip, r10 ldr r1, [r4, #228] adds r0, r1, r3 ldr r3, [r1, r3] adds r1, r3, #1 - bne .L2457 + bne .L2463 ldr r0, [r0, #4] add fp, fp, #1 str ip, [sp, #12] @@ -15156,26 +15196,26 @@ allocate_data_superblock: ldrb r3, [r5, #7] @ zero_extendqisi2 subs r3, r3, #1 strb r3, [r5, #7] -.L2457: +.L2463: add r10, r10, #1 adds r2, r2, #2 - b .L2456 -.L2491: + b .L2462 +.L2497: cmp fp, #0 - beq .L2459 + beq .L2465 mov r0, r6 bl update_multiplier_value bl FtlBbmTblFlush -.L2459: +.L2465: ldrb r3, [r5, #7] @ zero_extendqisi2 - cbnz r3, .L2460 + cbnz r3, .L2466 ldr r3, [r4, #296] -.L2487: +.L2493: movw r2, #65535 strh r2, [r3, r6, lsl #1] @ movhi - b .L2438 -.L2460: - ldr r2, .L2492+16 + b .L2444 +.L2466: + ldr r2, .L2498+16 ldrh r2, [r2, #2388] strh r6, [r5] @ movhi smulbb r3, r2, r3 @@ -15191,14 +15231,14 @@ allocate_data_superblock: ldr r2, [r4, #296] ldrh r1, [r5] strh r3, [r2, r1, lsl #1] @ movhi -.L2437: +.L2443: movs r0, #0 add sp, sp, #20 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2493: +.L2499: .align 2 -.L2492: +.L2498: .word .LANCHOR2 .word .LANCHOR2+412 .word .LANCHOR2+308 @@ -15218,38 +15258,38 @@ FtlGcFreeBadSuperBlk: push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 - ldr r5, .L2507 + ldr r5, .L2513 str r0, [sp] ldrh r3, [r5, #1182] cmp r3, #0 - beq .L2496 - ldr r7, .L2507+4 + beq .L2502 + ldr r7, .L2513+4 mov r10, #0 mov r8, r5 -.L2495: +.L2501: ldrh r2, [r7, #2320] uxth r3, r10 cmp r2, r3 - bls .L2504 + bls .L2510 add r3, r3, r7 ldr r1, [sp] mov fp, #0 ldrb r0, [r3, #2348] @ zero_extendqisi2 bl V2P_block - ldr r2, .L2507+8 + ldr r2, .L2513+8 mov r9, r0 -.L2497: +.L2503: ldrh r3, [r5, #1182] uxth r4, fp cmp r3, r4 - bls .L2505 + bls .L2511 lsls r6, r4, #1 add r3, r8, r6 ldrh r3, [r3, #1184] cmp r3, r9 - bne .L2498 + bne .L2504 mov r1, r9 - ldr r0, .L2507+12 + ldr r0, .L2513+12 str r2, [sp, #4] bl printk mov r0, r9 @@ -15258,33 +15298,33 @@ FtlGcFreeBadSuperBlk: ldrh r1, [r8, #1182] ldr r2, [sp, #4] adds r3, r2, r6 -.L2499: +.L2505: cmp r4, r1 - bcs .L2506 + bcs .L2512 ldrh r0, [r3, #2] adds r4, r4, #1 uxth r4, r4 strh r0, [r3], #2 @ movhi - b .L2499 -.L2506: + b .L2505 +.L2512: subs r1, r1, #1 strh r1, [r5, #1182] @ movhi -.L2498: - add fp, fp, #1 - b .L2497 -.L2505: - add r10, r10, #1 - b .L2495 .L2504: + add fp, fp, #1 + b .L2503 +.L2511: + add r10, r10, #1 + b .L2501 +.L2510: bl FtlGcReFreshBadBlk -.L2496: +.L2502: movs r0, #0 add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2508: +.L2514: .align 2 -.L2507: +.L2513: .word .LANCHOR2 .word .LANCHOR0 .word .LANCHOR2+1184 @@ -15300,33 +15340,33 @@ update_vpc_list: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L2518 + ldr r2, .L2524 push {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r4, r0 ldr r3, [r2, #296] mov r5, r2 ldrh r3, [r3, r0, lsl #1] - cbnz r3, .L2510 + cbnz r3, .L2516 ldrh r1, [r2, #556] cmp r1, r0 - bne .L2511 + bne .L2517 movw r3, #65535 strh r3, [r2, #556] @ movhi - b .L2512 -.L2511: + b .L2518 +.L2517: ldrh r1, [r2, #316] cmp r1, r0 - beq .L2517 + beq .L2523 ldrh r1, [r2, #364] cmp r1, r0 - beq .L2517 + beq .L2523 ldrh r2, [r2, #412] cmp r2, r0 - beq .L2517 -.L2512: + beq .L2523 +.L2518: mov r1, r4 - ldr r0, .L2518+4 + ldr r0, .L2524+4 bl List_remove_node ldrh r3, [r5, #304] mov r0, r4 @@ -15337,14 +15377,14 @@ update_vpc_list: bl FtlGcFreeBadSuperBlk movs r0, #1 pop {r3, r4, r5, pc} -.L2510: +.L2516: bl List_update_data_list -.L2517: +.L2523: movs r0, #0 pop {r3, r4, r5, pc} -.L2519: +.L2525: .align 2 -.L2518: +.L2524: .word .LANCHOR2 .word .LANCHOR2+292 .fnend @@ -15363,13 +15403,13 @@ decrement_vpc_count: push {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r4, r0 - ldr r5, .L2530 - beq .L2521 + ldr r5, .L2536 + beq .L2527 ldr r3, [r5, #296] ldrh r2, [r3, r0, lsl #1] - cbnz r2, .L2522 + cbnz r2, .L2528 mov r1, r4 - ldr r0, .L2530+4 + ldr r0, .L2536+4 bl printk ldr r3, [r5, #296] movs r2, #32 @@ -15377,7 +15417,7 @@ decrement_vpc_count: mov r1, r4 strh r2, [r3, r4, lsl #1] @ movhi bl test_node_in_list - cbz r0, .L2523 + cbz r0, .L2529 mov r1, r4 add r0, r5, #308 bl List_remove_node @@ -15387,40 +15427,40 @@ decrement_vpc_count: strh r3, [r5, #312] @ movhi bl INSERT_DATA_LIST ldr r3, [r5, #296] - ldr r0, .L2530+8 + ldr r0, .L2536+8 mov r1, r4 ldrh r2, [r3, r4, lsl #1] bl printk -.L2523: +.L2529: mov r0, r4 bl FtlGcRefreshBlock - b .L2526 -.L2522: + b .L2532 +.L2528: subs r2, r2, #1 strh r2, [r3, r0, lsl #1] @ movhi -.L2521: +.L2527: ldrh r0, [r5, #3460] movw r3, #65535 - ldr r6, .L2530 + ldr r6, .L2536 cmp r0, r3 - bne .L2525 + bne .L2531 strh r4, [r6, #3460] @ movhi - b .L2526 -.L2525: + b .L2532 +.L2531: cmp r0, r4 - beq .L2526 + beq .L2532 bl update_vpc_list strh r4, [r6, #3460] @ movhi adds r0, r0, #0 it ne movne r0, #1 pop {r4, r5, r6, pc} -.L2526: +.L2532: movs r0, #0 pop {r4, r5, r6, pc} -.L2531: +.L2537: .align 2 -.L2530: +.L2536: .word .LANCHOR2 .word .LC130 .word .LC131 @@ -15440,20 +15480,20 @@ FtlSlcSuperblockCheck: mov r4, r0 ldrh r3, [r0, #4] cmp r3, #0 - beq .L2532 + beq .L2538 ldrh r3, [r0] movw r5, #65535 cmp r3, r5 - beq .L2532 + beq .L2538 ldrb r3, [r0, #6] @ zero_extendqisi2 - ldr r7, .L2544 + ldr r7, .L2550 adds r3, r3, #8 - ldr r6, .L2544+4 + ldr r6, .L2550+4 ldrh r3, [r0, r3, lsl #1] -.L2536: +.L2542: cmp r3, r5 - bne .L2543 -.L2538: + bne .L2549 +.L2544: ldrb r3, [r4, #6] @ zero_extendqisi2 ldrh r2, [r7, #2320] adds r3, r3, #1 @@ -15470,18 +15510,18 @@ FtlSlcSuperblockCheck: ldrb r3, [r4, #6] @ zero_extendqisi2 adds r3, r3, #8 ldrh r3, [r4, r3, lsl #1] - b .L2536 -.L2543: + b .L2542 +.L2549: ldrb r1, [r4, #8] @ zero_extendqisi2 cmp r1, #1 - bne .L2539 - ldrb r3, [r7, #144] @ zero_extendqisi2 - cbnz r3, .L2539 + bne .L2545 + ldrb r3, [r7, #148] @ zero_extendqisi2 + cbnz r3, .L2545 ldrh r3, [r4, #2] add r3, r6, r3, lsl #1 ldrh r3, [r3, #1220] cmp r3, r5 - bne .L2539 + bne .L2545 ldrh r3, [r4, #4] ldrh r0, [r4] subs r3, r3, #1 @@ -15489,23 +15529,23 @@ FtlSlcSuperblockCheck: bl decrement_vpc_count ldrh r2, [r4, #4] cmp r2, #0 - bne .L2538 + bne .L2544 ldrh r3, [r4, #2] strb r2, [r4, #6] adds r3, r3, #1 strh r3, [r4, #2] @ movhi pop {r3, r4, r5, r6, r7, pc} -.L2539: - ldr r2, .L2544 - ldrb r3, [r2, #144] @ zero_extendqisi2 - cbz r3, .L2532 +.L2545: + ldr r2, .L2550 + ldrb r3, [r2, #148] @ zero_extendqisi2 + cbz r3, .L2538 cmp r1, #1 - bne .L2532 + bne .L2538 ldrh r1, [r4, #2] ldrh r3, [r2, #2390] cmp r1, r3 - bcc .L2532 - ldr r3, .L2544+4 + bcc .L2538 + ldr r3, .L2550+4 ldrh r0, [r4] ldrh r5, [r4, #4] ldr r1, [r3, #296] @@ -15517,11 +15557,11 @@ FtlSlcSuperblockCheck: strh r3, [r4, #4] @ movhi strb r3, [r4, #6] strh r2, [r4, #2] @ movhi -.L2532: +.L2538: pop {r3, r4, r5, r6, r7, pc} -.L2545: +.L2551: .align 2 -.L2544: +.L2550: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -15542,15 +15582,15 @@ get_new_active_ppa: mov r4, r0 ldrb r3, [r0, #6] @ zero_extendqisi2 movw r7, #65535 - ldr r8, .L2563+4 + ldr r8, .L2569+4 adds r3, r3, #8 - ldr r5, .L2563 + ldr r5, .L2569 ldrh r2, [r0, r3, lsl #1] -.L2547: +.L2553: cmp r2, r7 - ldr r6, .L2563+4 - bne .L2562 -.L2548: + ldr r6, .L2569+4 + bne .L2568 +.L2554: ldrb r3, [r4, #6] @ zero_extendqisi2 ldrh r2, [r8, #2320] adds r3, r3, #1 @@ -15567,34 +15607,34 @@ get_new_active_ppa: ldrb r3, [r4, #6] @ zero_extendqisi2 adds r3, r3, #8 ldrh r2, [r4, r3, lsl #1] - b .L2547 -.L2562: + b .L2553 +.L2568: ldrb r3, [r4, #8] @ zero_extendqisi2 ldrh r1, [r4, #2] cmp r3, #1 ldrh r3, [r4, #4] - bne .L2550 - ldrb r0, [r8, #144] @ zero_extendqisi2 - cbnz r0, .L2550 + bne .L2556 + ldrb r0, [r8, #148] @ zero_extendqisi2 + cbnz r0, .L2556 add r0, r5, r1, lsl #1 ldrh r0, [r0, #1220] cmp r0, r7 - bne .L2550 + bne .L2556 subs r3, r3, #1 ldrh r0, [r4] strh r3, [r4, #4] @ movhi bl decrement_vpc_count - b .L2548 -.L2550: + b .L2554 +.L2556: movw r7, #65535 orr r5, r1, r2, lsl #10 mov r8, r7 subs r3, r3, #1 strh r3, [r4, #4] @ movhi -.L2551: +.L2557: ldrb r3, [r4, #6] @ zero_extendqisi2 ldrh r1, [r6, #2320] -.L2553: +.L2559: adds r3, r3, #1 uxtb r3, r3 cmp r3, r1 @@ -15606,35 +15646,35 @@ get_new_active_ppa: add r2, r3, #8 ldrh r2, [r4, r2, lsl #1] cmp r2, r7 - beq .L2553 + beq .L2559 strb r3, [r4, #6] ldrb r3, [r4, #8] @ zero_extendqisi2 cmp r3, #1 - bne .L2558 - ldrb r3, [r6, #144] @ zero_extendqisi2 - cbnz r3, .L2555 + bne .L2564 + ldrb r3, [r6, #148] @ zero_extendqisi2 + cbnz r3, .L2561 ldrh r2, [r4, #2] - ldr r3, .L2563 + ldr r3, .L2569 add r3, r3, r2, lsl #1 ldrh r3, [r3, #1220] cmp r3, r8 - bne .L2555 + bne .L2561 ldrh r3, [r4, #4] - cbz r3, .L2555 + cbz r3, .L2561 subs r3, r3, #1 ldrh r0, [r4] strh r3, [r4, #4] @ movhi bl decrement_vpc_count - b .L2551 -.L2555: - ldrb r3, [r6, #144] @ zero_extendqisi2 - ldr r2, .L2563+4 - cbz r3, .L2558 + b .L2557 +.L2561: + ldrb r3, [r6, #148] @ zero_extendqisi2 + ldr r2, .L2569+4 + cbz r3, .L2564 ldrh r1, [r4, #2] ldrh r3, [r2, #2390] cmp r1, r3 - bcc .L2558 - ldr r3, .L2563 + bcc .L2564 + ldr r3, .L2569 ldrh r0, [r4] ldrh r6, [r4, #4] ldr r1, [r3, #296] @@ -15646,12 +15686,12 @@ get_new_active_ppa: strh r3, [r4, #4] @ movhi strb r3, [r4, #6] strh r2, [r4, #2] @ movhi -.L2558: +.L2564: mov r0, r5 pop {r4, r5, r6, r7, r8, pc} -.L2564: +.L2570: .align 2 -.L2563: +.L2569: .word .LANCHOR2 .word .LANCHOR0 .fnend @@ -15667,29 +15707,29 @@ FtlVpcTblFlush: @ frame_needed = 0, uses_anonymous_args = 0 push {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} - ldr r4, .L2588 + ldr r4, .L2594 ldr r3, [r4, #224] cmp r3, #0 - bne .L2567 - ldr r5, .L2588+4 + bne .L2573 + ldr r5, .L2594+4 movs r1, #255 ldr r2, [r4, #3316] ldr r7, [r4, #3340] - ldr r6, .L2588+8 - str r2, [r5, #1256] + ldr r6, .L2594+8 + str r2, [r5, #1264] ldrh r2, [r4, #540] - str r7, [r5, #1260] + str r7, [r5, #1268] str r3, [r7, #12] strh r2, [r7, #2] @ movhi movw r2, #61604 strh r2, [r7] @ movhi ldr r2, [r4, #548] str r3, [r7, #8] - ldr r3, .L2588+12 + ldr r3, .L2594+12 str r2, [r7, #4] ldrh r2, [r4, #318] str r3, [r4, #240] - ldr r3, .L2588+16 + ldr r3, .L2594+16 str r3, [r4, #244] ldrh r3, [r4, #546] strh r3, [r4, #248] @ movhi @@ -15714,7 +15754,7 @@ FtlVpcTblFlush: strh r3, [r4, #262] @ movhi ldrh r2, [r4, #414] ldrb r3, [r4, #418] @ zero_extendqisi2 - ldr r0, [r5, #1256] + ldr r0, [r5, #1264] orr r3, r3, r2, lsl #6 strh r3, [r4, #264] @ movhi ldrb r3, [r4, #420] @ zero_extendqisi2 @@ -15733,16 +15773,16 @@ FtlVpcTblFlush: bl ftl_memset add r1, r4, #240 movs r2, #48 - ldr r0, [r5, #1256] + ldr r0, [r5, #1264] bl ftl_memcpy ldrh r2, [r6, #2328] - ldr r0, [r5, #1256] + ldr r0, [r5, #1264] ldr r1, [r4, #296] lsls r2, r2, #1 adds r0, r0, #48 bl ftl_memcpy ldrh r2, [r6, #2328] - ldr r0, [r5, #1256] + ldr r0, [r5, #1264] ldr r1, [r4, #472] lsls r3, r2, #1 lsrs r2, r2, #3 @@ -15752,9 +15792,9 @@ FtlVpcTblFlush: add r0, r0, r3 bl ftl_memcpy ldrh r3, [r6, #2432] - cbz r3, .L2568 + cbz r3, .L2574 ldrh r2, [r6, #2328] - ldr r0, [r5, #1256] + ldr r0, [r5, #1264] ldr r1, [r4, #3388] lsrs r3, r2, #3 add r3, r3, r2, lsl #1 @@ -15764,61 +15804,61 @@ FtlVpcTblFlush: lsls r2, r2, #2 add r0, r0, r3, lsl #2 bl ftl_memcpy -.L2568: +.L2574: movs r0, #0 - ldr r10, .L2588 + ldr r10, .L2594 bl FtlUpdateVaildLpn - ldr fp, .L2588+8 + ldr fp, .L2594+8 mov r8, #0 movw r9, #65535 -.L2569: +.L2575: ldr r3, [r4, #3316] ldrh r2, [r4, #540] ldrh r1, [r4, #542] - str r3, [r5, #1256] + str r3, [r5, #1264] ldr r3, [r4, #3340] - str r3, [r5, #1260] + str r3, [r5, #1268] orr r3, r1, r2, lsl #10 - str r3, [r5, #1252] + str r3, [r5, #1260] ldrh r3, [r6, #2390] subs r3, r3, #1 cmp r1, r3 - blt .L2570 + blt .L2576 movs r3, #0 ldrh r9, [r10, #544] strh r3, [r10, #542] @ movhi strh r2, [r10, #544] @ movhi bl FtlFreeSysBlkQueueOut ldr r3, [r10, #508] - ldr r1, .L2588+4 + ldr r1, .L2594+4 adds r2, r3, #1 str r2, [r10, #508] str r3, [r10, #548] lsls r2, r0, #10 strh r0, [r10, #540] @ movhi - str r2, [r1, #1252] + str r2, [r1, #1260] str r3, [r7, #4] strh r0, [r7, #2] @ movhi -.L2570: - ldrb r3, [r6] @ zero_extendqisi2 - cbz r3, .L2571 +.L2576: + ldrb r3, [r6, #32] @ zero_extendqisi2 + cbz r3, .L2577 ldr r0, [r4, #3316] ldrh r1, [fp, #2398] bl js_hash str r0, [r7, #12] -.L2571: +.L2577: movs r1, #1 - ldr r0, .L2588+20 + ldr r0, .L2594+20 mov r2, r1 mov r3, r1 bl FlashProgPages ldrh r3, [r4, #542] - ldr r2, [r5, #1248] + ldr r2, [r5, #1256] adds r3, r3, #1 adds r1, r2, #1 uxth r3, r3 strh r3, [r4, #542] @ movhi - bne .L2572 + bne .L2578 cmp r3, #1 add r8, r8, #1 it eq @@ -15828,37 +15868,37 @@ FtlVpcTblFlush: addeq r3, r3, #-1 strheq r3, [r10, #542] @ movhi cmp r8, #3 - bls .L2569 - ldr r0, .L2588+24 + bls .L2575 + ldr r0, .L2594+24 mov r2, r8 - ldr r1, [r5, #1252] + ldr r1, [r5, #1260] bl printk movs r3, #1 str r3, [r4, #224] - b .L2567 -.L2572: + b .L2573 +.L2578: cmp r3, #1 - beq .L2569 + beq .L2575 cmp r2, #256 - beq .L2569 + beq .L2575 movw r3, #65535 cmp r9, r3 - beq .L2567 + beq .L2573 mov r0, r9 movs r1, #1 bl FtlFreeSysBlkQueueIn -.L2567: +.L2573: movs r0, #0 pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2589: +.L2595: .align 2 -.L2588: +.L2594: .word .LANCHOR2 .word .LANCHOR4 .word .LANCHOR0 .word 1179929683 .word 1342177379 - .word .LANCHOR4+1248 + .word .LANCHOR4+1256 .word .LC132 .fnend .size FtlVpcTblFlush, .-FtlVpcTblFlush @@ -15874,26 +15914,26 @@ FtlSuperblockPowerLostFix: push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r4, r0 - ldr r5, .L2606 + ldr r5, .L2612 .pad #44 sub sp, sp, #44 ldr r3, [r5, #224] cmp r3, #0 - bne .L2590 - ldr r2, .L2606+4 - ldrb r6, [r2, #144] @ zero_extendqisi2 + bne .L2596 + ldr r2, .L2612+4 + ldrb r6, [r2, #148] @ zero_extendqisi2 mov r8, r2 - cbz r6, .L2605 + cbz r6, .L2611 ldrb r6, [r0, #8] @ zero_extendqisi2 cmp r6, #1 - bne .L2601 + bne .L2607 ldrh fp, [r0, #4] - b .L2592 -.L2601: + b .L2598 +.L2607: mov r6, r3 -.L2605: +.L2611: mov fp, #12 -.L2592: +.L2598: ldr r7, [r5, #3340] mov r3, #-1 str r3, [sp, #20] @@ -15901,7 +15941,7 @@ FtlSuperblockPowerLostFix: ldr r3, [r5, #3316] movw r2, #61589 str r7, [sp, #16] - ldr r10, .L2606 + ldr r10, .L2612 str r3, [sp, #12] mvn r3, #2 str r3, [r7, #8] @@ -15917,12 +15957,12 @@ FtlSuperblockPowerLostFix: add r2, r2, #1269760 addw r2, r2, #1507 str r2, [r3, #4] -.L2593: +.L2599: adds fp, fp, #-1 - bcc .L2596 + bcc .L2602 ldrh r3, [r4, #4] - cbnz r3, .L2594 -.L2596: + cbnz r3, .L2600 +.L2602: ldr r2, [r5, #296] ldrh r1, [r4] ldrh r0, [r4, #4] @@ -15934,13 +15974,13 @@ FtlSuperblockPowerLostFix: movs r3, #0 strb r3, [r4, #6] strh r3, [r4, #4] @ movhi - b .L2590 -.L2594: + b .L2596 +.L2600: mov r0, r4 bl get_new_active_ppa str r0, [sp, #8] adds r0, r0, #1 - beq .L2596 + beq .L2602 ldr r3, [r5, #512] movs r1, #1 add r0, sp, #4 @@ -15955,14 +15995,14 @@ FtlSuperblockPowerLostFix: bl FlashProgPages ldrh r0, [r4] bl decrement_vpc_count - b .L2593 -.L2590: + b .L2599 +.L2596: add sp, sp, #44 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2607: +.L2613: .align 2 -.L2606: +.L2612: .word .LANCHOR2 .word .LANCHOR0 .fnend @@ -15987,14 +16027,14 @@ ftl_map_blk_gc: ldrh r2, [r4, #8] subs r3, r3, #4 cmp r2, r3 - blt .L2609 + blt .L2615 uxth r0, r0 ldrh r10, [r5, r0, lsl #1] cmp r10, #0 - beq .L2609 + beq .L2615 ldr r3, [r4, #32] cmp r3, #0 - bne .L2609 + bne .L2615 movs r2, #1 str r2, [r4, #32] strh r3, [r5, r0, lsl #1] @ movhi @@ -16002,91 +16042,91 @@ ftl_map_blk_gc: ldrh r2, [r4, #2] subs r3, r3, #1 strh r3, [r4, #8] @ movhi - ldr r3, .L2621 + ldr r3, .L2627 ldrh r3, [r3, #2390] cmp r2, r3 - bcc .L2610 + bcc .L2616 mov r0, r4 bl ftl_map_blk_alloc_new_blk -.L2610: - ldr r6, .L2621+4 +.L2616: + ldr r6, .L2627+4 mov fp, #0 - ldr r9, .L2621+16 -.L2611: + ldr r9, .L2627+16 +.L2617: ldrh r2, [r4, #6] uxth r5, fp cmp r2, r5 - bls .L2620 + bls .L2626 ldr r2, [r8, r5, lsl #2] add ip, r8, r5, lsl #2 cmp r10, r2, lsr #10 - bne .L2612 + bne .L2618 ldr r2, [r9, #3320] movs r1, #1 ldr r7, [r9, #3340] - ldr r0, .L2621+8 - str r2, [r6, #1256] - str r7, [r6, #1260] + ldr r0, .L2627+8 + str r2, [r6, #1264] + str r7, [r6, #1268] ldr r2, [r8, r5, lsl #2] str ip, [sp, #4] - str r2, [r6, #1252] + str r2, [r6, #1260] mov r2, r1 bl FlashReadPages - ldr r2, [r6, #1248] + ldr r2, [r6, #1256] adds r2, r2, #1 ldr ip, [sp, #4] - bne .L2613 -.L2615: + bne .L2619 +.L2621: movs r3, #0 str r3, [ip] - ldr r3, .L2621+4 + ldr r3, .L2627+4 ldrh r2, [r7, #8] - ldr r0, .L2621+12 - ldr r1, [r3, #1252] + ldr r0, .L2627+12 + ldr r1, [r3, #1260] bl printk - ldr r3, .L2621+16 + ldr r3, .L2627+16 movs r2, #1 str r2, [r3, #224] - b .L2614 -.L2613: + b .L2620 +.L2619: ldrh r1, [r7, #8] cmp r1, r5 - bne .L2615 + bne .L2621 ldrh r0, [r7] ldrh r2, [r4, #4] cmp r0, r2 - bne .L2615 + bne .L2621 mov r0, r4 - ldr r2, [r6, #1256] + ldr r2, [r6, #1264] bl FtlMapWritePage -.L2612: +.L2618: add fp, fp, #1 - b .L2611 -.L2620: + b .L2617 +.L2626: mov r0, r10 movs r1, #1 bl FtlFreeSysBlkQueueIn movs r3, #0 str r3, [r4, #32] -.L2609: - ldr r3, .L2621 +.L2615: + ldr r3, .L2627 ldrh r2, [r4, #2] ldrh r3, [r3, #2390] cmp r2, r3 - bcc .L2614 + bcc .L2620 mov r0, r4 bl ftl_map_blk_alloc_new_blk -.L2614: +.L2620: movs r0, #0 add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2622: +.L2628: .align 2 -.L2621: +.L2627: .word .LANCHOR0 .word .LANCHOR4 - .word .LANCHOR4+1248 + .word .LANCHOR4+1256 .word .LC133 .word .LANCHOR2 .fnend @@ -16103,16 +16143,16 @@ Ftl_write_map_blk_to_last_page: push {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r4, r0 - ldr r6, .L2634 + ldr r6, .L2640 ldr r7, [r0, #12] ldr r10, [r0, #24] ldr r5, [r6, #224] cmp r5, #0 - bne .L2624 + bne .L2630 ldrh r3, [r0] movw r2, #65535 cmp r3, r2 - bne .L2625 + bne .L2631 ldrh r3, [r0, #8] adds r3, r3, #1 strh r3, [r0, #8] @ movhi @@ -16123,19 +16163,19 @@ Ftl_write_map_blk_to_last_page: adds r3, r3, #1 strh r5, [r4] @ movhi str r3, [r4, #28] - b .L2624 -.L2625: + b .L2630 +.L2631: ldrh r9, [r7, r3, lsl #1] movs r1, #255 - ldr fp, .L2634+12 + ldr fp, .L2640+12 ldrh r3, [r0, #2] ldr r7, [r6, #3340] orr r3, r3, r9, lsl #10 - str r3, [fp, #1252] + str r3, [fp, #1260] ldr r3, [r6, #3316] - str r7, [fp, #1260] - ldr r8, .L2634+4 - str r3, [fp, #1256] + str r7, [fp, #1268] + ldr r8, .L2640+4 + str r3, [fp, #1264] ldr r3, [r0, #28] str r3, [r7, #4] movw r3, #64245 @@ -16148,14 +16188,14 @@ Ftl_write_map_blk_to_last_page: lsls r2, r2, #3 bl ftl_memset mov r1, r5 -.L2626: +.L2632: ldrh r2, [r4, #6] uxth r3, r1 cmp r2, r3 - bls .L2633 + bls .L2639 ldr r2, [r10, r3, lsl #2] cmp r9, r2, lsr #10 - bne .L2627 + bne .L2633 adds r5, r5, #1 ldr r2, [r6, #3316] uxth r5, r5 @@ -16164,21 +16204,21 @@ Ftl_write_map_blk_to_last_page: ldr r3, [r6, #3316] add r3, r3, r5, lsl #3 str r2, [r3, #4] -.L2627: - adds r1, r1, #1 - b .L2626 .L2633: - ldrb r3, [r8] @ zero_extendqisi2 - cbz r3, .L2629 - ldr r3, .L2634+4 - ldr r0, [fp, #1256] + adds r1, r1, #1 + b .L2632 +.L2639: + ldrb r3, [r8, #32] @ zero_extendqisi2 + cbz r3, .L2635 + ldr r3, .L2640+4 + ldr r0, [fp, #1264] ldrh r1, [r3, #2398] bl js_hash str r0, [r7, #12] -.L2629: +.L2635: movs r1, #1 movs r3, #0 - ldr r0, .L2634+8 + ldr r0, .L2640+8 mov r2, r1 bl FlashProgPages ldrh r3, [r4, #2] @@ -16186,15 +16226,15 @@ Ftl_write_map_blk_to_last_page: adds r3, r3, #1 strh r3, [r4, #2] @ movhi bl ftl_map_blk_gc -.L2624: +.L2630: movs r0, #0 pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2635: +.L2641: .align 2 -.L2634: +.L2640: .word .LANCHOR2 .word .LANCHOR0 - .word .LANCHOR4+1248 + .word .LANCHOR4+1256 .word .LANCHOR4 .fnend .size Ftl_write_map_blk_to_last_page, .-Ftl_write_map_blk_to_last_page @@ -16211,67 +16251,67 @@ FtlMapWritePage: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 movs r6, #0 - ldr r7, .L2660 + ldr r7, .L2666 mov r4, r0 mov r9, r1 str r2, [sp] -.L2637: +.L2643: ldr r3, [r7, #492] - ldr fp, .L2660+4 + ldr fp, .L2666+4 adds r3, r3, #1 str r3, [r7, #492] - ldr r3, .L2660+4 + ldr r3, .L2666+4 ldrh r2, [r4, #2] ldrh r3, [r3, #2390] subs r3, r3, #1 cmp r2, r3 - bge .L2638 + bge .L2644 ldrh r2, [r4] movw r3, #65535 cmp r2, r3 - bne .L2639 -.L2638: + bne .L2645 +.L2644: mov r0, r4 bl Ftl_write_map_blk_to_last_page -.L2639: - ldr r3, .L2660 +.L2645: + ldr r3, .L2666 ldr r1, [r3, #224] cmp r1, #0 - bne .L2655 + bne .L2661 ldrh r2, [r4] ldr r3, [r4, #12] - ldr r5, .L2660+8 + ldr r5, .L2666+8 ldr r0, [r7, #3340] ldrh r8, [r3, r2, lsl #1] movs r2, #16 ldrh r3, [r4, #2] mov r10, r5 - str r0, [r5, #1260] + str r0, [r5, #1268] orr r3, r3, r8, lsl #10 - str r3, [r5, #1252] + str r3, [r5, #1260] ldr r3, [sp] - str r3, [r5, #1256] + str r3, [r5, #1264] bl ftl_memset ldr r2, [r4, #28] - ldr r3, [r5, #1260] + ldr r3, [r5, #1268] str r2, [r3, #4] strh r9, [r3, #8] @ movhi ldrh r2, [r4, #4] strh r8, [r3, #2] @ movhi strh r2, [r3] @ movhi - ldrb r2, [fp] @ zero_extendqisi2 - cbz r2, .L2641 + ldrb r2, [fp, #32] @ zero_extendqisi2 + cbz r2, .L2647 str r3, [sp, #4] - ldr r3, .L2660+4 - ldr r0, [r5, #1256] + ldr r3, .L2666+4 + ldr r0, [r5, #1264] ldrh r1, [r3, #2398] bl js_hash ldr r3, [sp, #4] str r0, [r3, #12] -.L2641: - ldr ip, .L2660+8 +.L2647: + ldr ip, .L2666+8 movs r1, #1 - add r0, ip, #1248 + add r0, ip, #1256 mov r2, r1 mov r3, r1 str ip, [sp, #4] @@ -16280,13 +16320,13 @@ FtlMapWritePage: adds r3, r3, #1 uxth r3, r3 strh r3, [r4, #2] @ movhi - ldr r2, [r5, #1248] + ldr r2, [r5, #1256] adds r1, r2, #1 ldr ip, [sp, #4] - bne .L2642 - ldr r0, .L2660+12 + bne .L2648 + ldr r0, .L2666+12 adds r6, r6, #1 - ldr r1, [ip, #1252] + ldr r1, [ip, #1260] bl printk ldrh r3, [r4, #2] uxth r6, r6 @@ -16296,45 +16336,45 @@ FtlMapWritePage: addls r3, r3, #-1 strhls r3, [r4, #2] @ movhi cmp r6, #3 - bls .L2637 + bls .L2643 mov r2, r6 - ldr r0, .L2660+16 - ldr r1, [r10, #1252] + ldr r0, .L2666+16 + ldr r1, [r10, #1260] bl printk - ldr r3, .L2660 + ldr r3, .L2666 movs r2, #1 str r2, [r3, #224] - b .L2655 -.L2642: - cbz r2, .L2645 + b .L2661 +.L2648: + cbz r2, .L2651 cmp r3, #1 strh r8, [r4, #40] @ movhi - bne .L2646 -.L2647: + bne .L2652 +.L2653: movs r3, #0 str r3, [r4, #36] - b .L2637 -.L2646: + b .L2643 +.L2652: cmp r2, #256 - b .L2659 -.L2645: + b .L2665 +.L2651: cmp r3, #1 -.L2659: - beq .L2647 +.L2665: + beq .L2653 ldr r3, [r4, #36] cmp r3, #0 - bne .L2647 - ldr r2, [r10, #1252] + bne .L2653 + ldr r2, [r10, #1260] ldr r3, [r4, #24] str r2, [r3, r9, lsl #2] -.L2655: +.L2661: movs r0, #0 add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2661: +.L2667: .align 2 -.L2660: +.L2666: .word .LANCHOR2 .word .LANCHOR0 .word .LANCHOR4 @@ -16354,7 +16394,7 @@ flush_l2p_region: push {r3, r4, r5, lr} .save {r3, r4, r5, lr} movs r4, #12 - ldr r5, .L2663 + ldr r5, .L2669 muls r4, r0, r4 add r0, r5, #3408 ldr r3, [r5, #460] @@ -16369,9 +16409,9 @@ flush_l2p_region: bic r3, r3, #-2147483648 str r3, [r4, #4] pop {r3, r4, r5, pc} -.L2664: +.L2670: .align 2 -.L2663: +.L2669: .word .LANCHOR2 .fnend .size flush_l2p_region, .-flush_l2p_region @@ -16398,19 +16438,19 @@ FtlMapTblRecovery: lsl r2, r9, #2 ldr r8, [r0, #12] mov r0, r7 - ldr r10, .L2707+12 + ldr r10, .L2713+12 str r3, [sp, #8] bl ftl_memset - ldr r3, .L2707 + ldr r3, .L2713 movs r0, #1 - ldr r2, .L2707+4 + ldr r2, .L2713+4 str r0, [r4, #36] ldr r1, [r3, #3316] ldr r6, [r3, #3340] mov r5, r2 - str r1, [r2, #1256] + str r1, [r2, #1264] movw r1, #65535 - str r6, [r2, #1260] + str r6, [r2, #1268] strh r1, [r4] @ movhi strh r1, [r4, #2] @ movhi movs r1, #0 @@ -16418,18 +16458,18 @@ FtlMapTblRecovery: str r1, [r4, #28] str r1, [sp, #4] str r3, [sp, #20] -.L2666: +.L2672: ldrh r2, [sp, #4] ldr r1, [sp, #8] - ldr fp, .L2707+12 + ldr fp, .L2713+12 sxth r3, r2 cmp r3, r1 - bge .L2684 + bge .L2690 ldr r1, [sp, #8] subs r1, r1, #1 cmp r3, r1 lsl r1, r3, #1 - bne .L2667 + bne .L2673 ldrh r0, [r8, r3, lsl #1] str r2, [sp, #16] add r2, r8, r1 @@ -16437,7 +16477,7 @@ FtlMapTblRecovery: str r2, [sp, #4] str r3, [sp, #8] bl FtlGetLastWrittenPage - ldr r10, .L2707+4 + ldr r10, .L2713+4 mov r8, #0 ldr r2, [sp, #16] adds r1, r0, #1 @@ -16451,26 +16491,26 @@ FtlMapTblRecovery: str r3, [r4, #28] adds r3, r0, #1 str r3, [sp, #8] -.L2668: +.L2674: ldr r3, [sp, #8] sxth r2, r8 cmp r2, r3 - bge .L2684 + bge .L2690 ldr r3, [sp, #4] - ldr r0, .L2707+8 + ldr r0, .L2713+8 ldrh r1, [r3] orr r2, r2, r1, lsl #10 movs r1, #1 - str r2, [r5, #1252] + str r2, [r5, #1260] mov r2, r1 bl FlashReadPages - ldrb r2, [fp] @ zero_extendqisi2 - cbz r2, .L2669 - ldr r2, [r10, #1260] + ldrb r2, [fp, #32] @ zero_extendqisi2 + cbz r2, .L2675 + ldr r2, [r10, #1268] ldr r2, [r2, #12] - cbz r2, .L2669 - ldr r1, .L2707+12 - ldr r0, [r10, #1256] + cbz r2, .L2675 + ldr r1, .L2713+12 + ldr r0, [r10, #1264] str r2, [sp, #12] ldrh r1, [r1, #2398] bl js_hash @@ -16478,38 +16518,38 @@ FtlMapTblRecovery: cmp r2, r0 itt ne movne r2, #-1 - strne r2, [r10, #1248] -.L2669: - ldr r2, [r10, #1248] + strne r2, [r10, #1256] +.L2675: + ldr r2, [r10, #1256] adds r2, r2, #1 - beq .L2670 + beq .L2676 ldrh r2, [r6, #8] cmp r2, r9 - bcs .L2670 + bcs .L2676 ldrh r1, [r4, #4] ldrh r0, [r6] cmp r0, r1 itt eq - ldreq r1, [r10, #1252] + ldreq r1, [r10, #1260] streq r1, [r7, r2, lsl #2] -.L2670: +.L2676: add r8, r8, #1 - b .L2668 -.L2684: + b .L2674 +.L2690: mov r0, r4 bl ftl_free_no_use_map_blk ldrh r2, [r4, #2] ldrh r3, [fp, #2390] cmp r2, r3 - bne .L2673 + bne .L2679 mov r0, r4 bl ftl_map_blk_alloc_new_blk - b .L2673 -.L2667: + b .L2679 +.L2673: ldr r2, [sp, #20] - ldr r0, .L2707+8 + ldr r0, .L2713+8 ldr r2, [r2, #3316] - str r2, [r5, #1256] + str r2, [r5, #1264] add r2, r8, r1 str r2, [sp, #16] movs r1, #1 @@ -16518,30 +16558,30 @@ FtlMapTblRecovery: subs r3, r3, #1 orr r3, r3, r2, lsl #10 mov r2, r1 - str r3, [r5, #1252] + str r3, [r5, #1260] bl FlashReadPages - ldr r3, [r5, #1248] + ldr r3, [r5, #1256] adds r3, r3, #1 - beq .L2686 + beq .L2692 ldrh r2, [r6] ldrh r3, [r4, #4] cmp r2, r3 - bne .L2686 + bne .L2692 ldrh r2, [r6, #8] movw r3, #64245 cmp r2, r3 - bne .L2686 + bne .L2692 movs r1, #0 mov lr, #8 mov ip, #4 -.L2675: +.L2681: uxth r3, r1 ldrh r2, [r10, #2390] sxth r0, r3 subs r2, r2, #1 cmp r0, r2 - bge .L2678 - ldr r2, .L2707 + bge .L2684 + ldr r2, .L2713 adds r1, r1, #1 ldr r2, [r2, #3316] ldrh r0, [r2, r0, lsl #3] @@ -16550,31 +16590,31 @@ FtlMapTblRecovery: smlabbcc r3, r3, lr, ip ldrcc r3, [r2, r3] strcc r3, [r7, r0, lsl #2] - b .L2675 -.L2686: - ldr r3, .L2707+4 + b .L2681 +.L2692: + ldr r3, .L2713+4 mov fp, #0 -.L2706: +.L2712: ldrh r1, [r10, #2390] sxth r2, fp cmp r2, r1 - bge .L2678 + bge .L2684 ldr r1, [sp, #16] - ldr r0, .L2707+8 + ldr r0, .L2713+8 str r3, [sp, #24] ldrh r1, [r1] orr r2, r2, r1, lsl #10 movs r1, #1 - str r2, [r3, #1252] + str r2, [r3, #1260] mov r2, r1 bl FlashReadPages - ldrb r2, [r10] @ zero_extendqisi2 + ldrb r2, [r10, #32] @ zero_extendqisi2 ldr r3, [sp, #24] - cbz r2, .L2679 - ldr r2, [r3, #1260] + cbz r2, .L2685 + ldr r2, [r3, #1268] ldr r2, [r2, #12] - cbz r2, .L2679 - ldr r0, [r3, #1256] + cbz r2, .L2685 + ldr r0, [r3, #1264] ldrh r1, [r10, #2398] str r2, [sp, #28] bl js_hash @@ -16583,30 +16623,30 @@ FtlMapTblRecovery: cmp r2, r0 itt ne movne r2, #-1 - strne r2, [r3, #1248] -.L2679: - ldr r2, .L2707+4 - ldr r2, [r2, #1248] + strne r2, [r3, #1256] +.L2685: + ldr r2, .L2713+4 + ldr r2, [r2, #1256] adds r2, r2, #1 - beq .L2680 + beq .L2686 ldrh r2, [r6, #8] cmp r2, r9 - bcs .L2680 + bcs .L2686 ldrh r1, [r4, #4] ldrh r0, [r6] cmp r0, r1 itt eq - ldreq r1, [r3, #1252] + ldreq r1, [r3, #1260] streq r1, [r7, r2, lsl #2] -.L2680: +.L2686: add fp, fp, #1 - b .L2706 -.L2678: + b .L2712 +.L2684: ldr r3, [sp, #4] adds r3, r3, #1 str r3, [sp, #4] - b .L2666 -.L2673: + b .L2672 +.L2679: mov r0, r4 bl ftl_map_blk_gc mov r0, r4 @@ -16615,12 +16655,12 @@ FtlMapTblRecovery: add sp, sp, #36 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2708: +.L2714: .align 2 -.L2707: +.L2713: .word .LANCHOR2 .word .LANCHOR4 - .word .LANCHOR4+1248 + .word .LANCHOR4+1256 .word .LANCHOR0 .fnend .size FtlMapTblRecovery, .-FtlMapTblRecovery @@ -16635,10 +16675,10 @@ FtlLoadVonderInfo: @ frame_needed = 0, uses_anonymous_args = 0 push {r3, lr} .save {r3, lr} - ldr r3, .L2710 - ldr r0, .L2710+4 + ldr r3, .L2716 + ldr r0, .L2716+4 ldrh r2, [r3, #2408] - add r0, r0, #1288 + add r0, r0, #1296 strh r2, [r0, #10] @ movhi movw r2, #61574 strh r2, [r0, #4] @ movhi @@ -16648,7 +16688,7 @@ FtlLoadVonderInfo: ldr r3, [r3, #2436] strh r2, [r0, #6] @ movhi str r3, [r0, #12] - ldr r3, .L2710+8 + ldr r3, .L2716+8 ldr r2, [r3, #3380] str r2, [r0, #16] ldr r2, [r3, #3376] @@ -16658,9 +16698,9 @@ FtlLoadVonderInfo: bl FtlMapTblRecovery movs r0, #0 pop {r3, pc} -.L2711: +.L2717: .align 2 -.L2710: +.L2716: .word .LANCHOR0 .word .LANCHOR4 .word .LANCHOR2 @@ -16678,13 +16718,13 @@ FtlLoadMapInfo: push {r3, lr} .save {r3, lr} bl FtlL2PDataInit - ldr r0, .L2713 + ldr r0, .L2719 bl FtlMapTblRecovery movs r0, #0 pop {r3, pc} -.L2714: +.L2720: .align 2 -.L2713: +.L2719: .word .LANCHOR2+3408 .fnend .size FtlLoadMapInfo, .-FtlLoadMapInfo @@ -16697,7 +16737,7 @@ FtlVendorPartWrite: .fnstart @ args = 0, pretend = 0, frame = 56 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2728 + ldr r3, .L2734 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r5, r0 @@ -16710,16 +16750,16 @@ FtlVendorPartWrite: ldrh r2, [r3, #2396] cmp r0, r1 str r3, [sp, #4] - bhi .L2723 - ldr r7, .L2728+4 + bhi .L2729 + ldr r7, .L2734+4 lsr r6, r5, r2 mov fp, #0 lsls r3, r6, #2 str r3, [sp] -.L2717: +.L2723: cmp r4, #0 - beq .L2727 - ldr r3, .L2728+4 + beq .L2733 + ldr r3, .L2734+4 mov r0, r5 ldr r2, [sp] ldr r3, [r3, #3384] @@ -16739,9 +16779,9 @@ FtlVendorPartWrite: it hi uxthhi r9, r4 cmp ip, #0 - beq .L2719 + beq .L2725 cmp r9, r2 - beq .L2719 + beq .L2725 ldr r2, [r7, #3324] movs r1, #1 add r0, sp, #20 @@ -16751,14 +16791,14 @@ FtlVendorPartWrite: str r2, [sp, #32] mov r2, r1 bl FlashReadPages - b .L2720 -.L2719: + b .L2726 +.L2725: ldr r3, [sp, #4] movs r1, #0 ldr r0, [r7, #3324] ldrh r2, [r3, #2398] bl ftl_memset -.L2720: +.L2726: lsl ip, r9, #9 ldr r0, [r7, #3324] uxth r8, r8 @@ -16769,7 +16809,7 @@ FtlVendorPartWrite: rsb r4, r9, r4 bl ftl_memcpy mov r1, r6 - ldr r0, .L2728+8 + ldr r0, .L2734+8 adds r6, r6, #1 ldr r2, [r7, #3324] add r5, r5, r9 @@ -16782,22 +16822,22 @@ FtlVendorPartWrite: adds r3, r3, #4 str r3, [sp] add r10, r10, ip - b .L2717 -.L2727: + b .L2723 +.L2733: mov r0, fp - b .L2716 -.L2723: + b .L2722 +.L2729: mov r0, #-1 -.L2716: +.L2722: add sp, sp, #60 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2729: +.L2735: .align 2 -.L2728: +.L2734: .word .LANCHOR0 .word .LANCHOR2 - .word .LANCHOR4+1288 + .word .LANCHOR4+1296 .fnend .size FtlVendorPartWrite, .-FtlVendorPartWrite .align 1 @@ -16810,12 +16850,12 @@ Ftl_save_ext_data: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L2732 - ldr r3, .L2732+4 + ldr r2, .L2738 + ldr r3, .L2738+4 ldr r1, [r2, #608] cmp r1, r3 - bne .L2730 - ldr r3, .L2732+8 + bne .L2736 + ldr r3, .L2738+8 movs r0, #0 movs r1, #1 str r3, [r2, #612] @@ -16849,11 +16889,11 @@ Ftl_save_ext_data: ldr r3, [r2, #2668] str r3, [r2, #64] b FtlVendorPartWrite -.L2730: +.L2736: bx lr -.L2733: +.L2739: .align 2 -.L2732: +.L2738: .word .LANCHOR2 .word 1179929683 .word 1342177379 @@ -16868,41 +16908,41 @@ FtlEctTblFlush: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2741 + ldr r3, .L2747 push {r4, lr} .save {r4, lr} ldr r2, [r3, #2244] - ldr r3, .L2741+4 - cbz r2, .L2739 + ldr r3, .L2747+4 + cbz r2, .L2745 ldr r2, [r3, #532] cmp r2, #39 ite hi movhi r1, #32 movls r1, #4 - b .L2735 -.L2739: + b .L2741 +.L2745: movs r1, #32 -.L2735: - ldr r4, .L2741+8 - ldrh r2, [r4, #1332] +.L2741: + ldr r4, .L2747+8 + ldrh r2, [r4, #1340] cmp r2, #31 ittt ls addls r2, r2, #1 movls r1, #1 - strhls r2, [r4, #1332] @ movhi - cbnz r0, .L2737 + strhls r2, [r4, #1340] @ movhi + cbnz r0, .L2743 ldr r0, [r3, #3360] ldr r2, [r0, #20] add r2, r2, r1 ldr r1, [r0, #16] cmp r1, r2 - bcc .L2738 -.L2737: + bcc .L2744 +.L2743: ldr r2, [r3, #3360] movs r0, #64 ldr r1, [r2, #16] str r1, [r2, #20] - ldr r1, .L2741+12 + ldr r1, .L2747+12 str r1, [r2] ldr r2, [r3, #3360] ldrh r1, [r3, #3352] @@ -16915,12 +16955,12 @@ FtlEctTblFlush: str r3, [r2, #4] bl FtlVendorPartWrite bl Ftl_save_ext_data -.L2738: +.L2744: movs r0, #0 pop {r4, pc} -.L2742: +.L2748: .align 2 -.L2741: +.L2747: .word .LANCHOR0 .word .LANCHOR2 .word .LANCHOR4 @@ -16936,7 +16976,7 @@ FtlVendorPartRead: .fnstart @ args = 0, pretend = 0, frame = 56 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2754 + ldr r3, .L2760 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r6, r0 @@ -16949,16 +16989,16 @@ FtlVendorPartRead: ldrh r2, [r3, #2396] cmp r0, r1 str r3, [sp, #12] - bhi .L2752 - ldr r10, .L2754+4 + bhi .L2758 + ldr r10, .L2760+4 lsr r5, r6, r2 mov fp, #0 lsls r3, r5, #2 str r3, [sp, #4] -.L2745: +.L2751: cmp r4, #0 - beq .L2753 - ldr r3, .L2754+4 + beq .L2759 + ldr r3, .L2760+4 mov r0, r6 ldr r2, [sp, #4] ldr r3, [r3, #3384] @@ -16974,7 +17014,7 @@ FtlVendorPartRead: it hi uxthhi r9, r4 cmp r8, #0 - beq .L2747 + beq .L2753 ldr r2, [r10, #3324] movs r1, #1 add r0, sp, #20 @@ -16984,36 +17024,36 @@ FtlVendorPartRead: str r2, [sp, #32] mov r2, r1 bl FlashReadPages - ldr r3, .L2754+8 + ldr r3, .L2760+8 ldr r2, [sp, #20] adds r2, r2, #1 - ldr r2, [r3, #1248] + ldr r2, [r3, #1256] it eq moveq fp, #-1 cmp r2, #256 - bne .L2749 + bne .L2755 mov r1, r5 mov r2, r8 - ldr r0, .L2754+12 + ldr r0, .L2760+12 bl printk - ldr r0, .L2754+16 + ldr r0, .L2760+16 mov r1, r5 ldr r2, [r10, #3324] bl FtlMapWritePage -.L2749: +.L2755: ldrh r8, [sp, #8] mov r0, r7 ldr r1, [r10, #3324] lsl r2, r9, #9 add r1, r1, r8, lsl #9 bl ftl_memcpy - b .L2750 -.L2747: + b .L2756 +.L2753: mov r0, r7 mov r1, r8 lsl r2, r9, #9 bl ftl_memset -.L2750: +.L2756: ldr r3, [sp, #4] adds r5, r5, #1 rsb r4, r9, r4 @@ -17021,24 +17061,24 @@ FtlVendorPartRead: adds r3, r3, #4 add r7, r7, r9, lsl #9 str r3, [sp, #4] - b .L2745 -.L2753: + b .L2751 +.L2759: mov r0, fp - b .L2744 -.L2752: + b .L2750 +.L2758: mov r0, #-1 -.L2744: +.L2750: add sp, sp, #60 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2755: +.L2761: .align 2 -.L2754: +.L2760: .word .LANCHOR0 .word .LANCHOR2 .word .LANCHOR4 .word .LC136 - .word .LANCHOR4+1288 + .word .LANCHOR4+1296 .fnend .size FtlVendorPartRead, .-FtlVendorPartRead .align 1 @@ -17053,29 +17093,29 @@ FtlLoadEctTbl: push {r4, lr} .save {r4, lr} movs r0, #64 - ldr r4, .L2758 + ldr r4, .L2764 ldr r2, [r4, #3360] ldrh r1, [r4, #3352] bl FtlVendorPartRead ldr r3, [r4, #3360] ldr r2, [r3] - ldr r3, .L2758+4 + ldr r3, .L2764+4 cmp r2, r3 - beq .L2757 - ldr r1, .L2758+8 - ldr r0, .L2758+12 + beq .L2763 + ldr r1, .L2764+8 + ldr r0, .L2764+12 bl printk ldrh r2, [r4, #3352] ldr r0, [r4, #3360] movs r1, #0 lsls r2, r2, #9 bl ftl_memset -.L2757: +.L2763: movs r0, #0 pop {r4, pc} -.L2759: +.L2765: .align 2 -.L2758: +.L2764: .word .LANCHOR2 .word 1112818501 .word .LC137 @@ -17094,24 +17134,24 @@ Ftl_load_ext_data: push {r3, r4, r5, lr} .save {r3, r4, r5, lr} movs r0, #0 - ldr r4, .L2765 + ldr r4, .L2771 movs r1, #1 - ldr r5, .L2765+4 + ldr r5, .L2771+4 add r2, r4, #608 bl FtlVendorPartRead ldr r3, [r4, #608] cmp r3, r5 - beq .L2761 + beq .L2767 add r0, r4, #608 movs r1, #0 mov r2, #512 bl ftl_memset str r5, [r4, #608] -.L2761: +.L2767: ldr r2, [r4, #608] - ldr r3, .L2765 + ldr r3, .L2771 cmp r2, r5 - bne .L2762 + bne .L2768 ldr r2, [r3, #696] str r2, [r3, #500] ldr r2, [r3, #700] @@ -17138,27 +17178,27 @@ Ftl_load_ext_data: str r2, [r3, #532] ldr r2, [r3, #668] str r2, [r3, #604] -.L2762: +.L2768: ldr r1, [r4, #676] movs r3, #0 - ldr r2, .L2765+8 + ldr r2, .L2771+8 str r3, [r4, #3276] cmp r1, r2 - ldr r5, .L2765+12 - bne .L2763 - ldrb r2, [r5, #144] @ zero_extendqisi2 - cbz r2, .L2764 - ldr r2, .L2765 + ldr r5, .L2771+12 + bne .L2769 + ldrb r2, [r5, #148] @ zero_extendqisi2 + cbz r2, .L2770 + ldr r2, .L2771 str r3, [r2, #676] bl Ftl_save_ext_data - b .L2763 -.L2764: - ldr r0, .L2765+16 + b .L2769 +.L2770: + ldr r0, .L2771+16 movs r3, #1 - ldr r1, .L2765+20 + ldr r1, .L2771+20 str r3, [r5, #2244] bl printk -.L2763: +.L2769: ldrh r2, [r5, #2380] ldr r3, [r4, #520] ldr r0, [r4, #516] @@ -17167,9 +17207,9 @@ Ftl_load_ext_data: bl __aeabi_uidiv str r0, [r4, #524] pop {r3, r4, r5, pc} -.L2766: +.L2772: .align 2 -.L2765: +.L2771: .word .LANCHOR2 .word 1179929683 .word 305432421 @@ -17193,44 +17233,44 @@ FtlMapBlkWriteDumpData: ldr r3, [r0, #36] ldrh r5, [r0, #6] ldr r1, [r0, #24] - cbz r3, .L2767 - ldr r2, .L2773 + cbz r3, .L2773 + ldr r2, .L2779 movs r3, #0 str r3, [r0, #36] ldr r3, [r2, #224] - cbnz r3, .L2767 + cbnz r3, .L2773 subs r5, r5, #1 - ldr r3, .L2773+4 + ldr r3, .L2779+4 ldr r0, [r2, #3320] ldr r2, [r2, #3340] uxth r5, r5 mov r4, r3 - str r0, [r3, #1256] - str r2, [r3, #1260] + str r0, [r3, #1264] + str r2, [r3, #1268] ldr r2, [r1, r5, lsl #2] - str r2, [r3, #1252] - cbz r2, .L2771 + str r2, [r3, #1260] + cbz r2, .L2777 movs r1, #1 - add r0, r3, #1248 + add r0, r3, #1256 mov r2, r1 bl FlashReadPages - b .L2772 -.L2771: - ldr r3, .L2773+8 + b .L2778 +.L2777: + ldr r3, .L2779+8 movs r1, #255 ldrh r2, [r3, #2398] bl ftl_memset -.L2772: +.L2778: mov r0, r6 mov r1, r5 - ldr r2, [r4, #1256] + ldr r2, [r4, #1264] pop {r4, r5, r6, lr} b FtlMapWritePage -.L2767: - pop {r4, r5, r6, pc} -.L2774: - .align 2 .L2773: + pop {r4, r5, r6, pc} +.L2780: + .align 2 +.L2779: .word .LANCHOR2 .word .LANCHOR4 .word .LANCHOR0 @@ -17245,31 +17285,31 @@ FlashReadFacBbtData: .fnstart @ args = 0, pretend = 0, frame = 40 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2789 + ldr r3, .L2795 push {r4, r5, r6, r7, r8, r9, r10, lr} .save {r4, r5, r6, r7, r8, r9, r10, lr} mov r8, r2 - ldrh r2, [r3, #128] + ldrh r2, [r3, #132] mov r7, r1 - ldrh r3, [r3, #130] + ldrh r3, [r3, #134] .pad #40 sub sp, sp, #40 mov r5, r0 smulbb r3, r2, r3 - ldr r2, .L2789+4 - ldr r1, [r2, #1184] + ldr r2, .L2795+4 + ldr r1, [r2, #1192] mov r9, r2 uxth r3, r3 subs r6, r3, #1 str r1, [sp, #12] mul r10, r3, r7 - ldr r1, [r2, #1216] + ldr r1, [r2, #1224] uxth r6, r6 sub r4, r3, #16 str r1, [sp, #16] -.L2776: +.L2782: cmp r6, r4 - ble .L2788 + ble .L2794 movs r1, #1 add r3, r6, r10 add r0, sp, #4 @@ -17279,59 +17319,59 @@ FlashReadFacBbtData: bl FlashReadPages ldr r3, [sp, #4] adds r3, r3, #1 - beq .L2777 - ldr r3, [r9, #1216] + beq .L2783 + ldr r3, [r9, #1224] ldrh r2, [r3] movw r3, #61664 cmp r2, r3 - bne .L2777 - cbz r5, .L2783 - cbz r7, .L2784 -.L2781: - ldr r1, [r9, #1184] + bne .L2783 + cbz r5, .L2789 + cbz r7, .L2790 +.L2787: + ldr r1, [r9, #1192] mov r2, r8 mov r0, r5 bl ftl_memcpy movs r2, #4 - ldr r0, .L2789+8 + ldr r0, .L2795+8 mov r1, r5 mov r3, r2 bl rknand_print_hex movs r0, #0 - b .L2778 -.L2784: - ldr r6, .L2789+4 + b .L2784 +.L2790: + ldr r6, .L2795+4 mov lr, #1 -.L2779: - ldr r2, [r9, #1204] +.L2785: + ldr r2, [r9, #1212] uxth r3, r7 adds r7, r7, #1 cmp r3, r2 - bcs .L2781 - ldr r2, [r6, #1184] + bcs .L2787 + ldr r2, [r6, #1192] lsrs r1, r3, #5 and r4, r3, #31 lsl r3, lr, r4 ldr r0, [r2, r1, lsl #2] orrs r3, r3, r0 str r3, [r2, r1, lsl #2] - b .L2779 -.L2777: + b .L2785 +.L2783: subs r6, r6, #1 uxth r6, r6 - b .L2776 -.L2788: + b .L2782 +.L2794: mov r0, #-1 - b .L2778 -.L2783: + b .L2784 +.L2789: mov r0, r5 -.L2778: +.L2784: add sp, sp, #40 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, pc} -.L2790: +.L2796: .align 2 -.L2789: +.L2795: .word .LANCHOR0 .word .LANCHOR4 .word .LC139 @@ -17346,36 +17386,36 @@ FlashGetBadBlockList: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2801 + ldr r3, .L2807 push {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} mov r5, r0 ldr r3, [r3, #44] - ldr r6, .L2801+4 + ldr r6, .L2807+4 ldrb r4, [r3, #13] @ zero_extendqisi2 ldrh r3, [r3, #14] - ldr r0, [r6, #1212] + ldr r0, [r6, #1220] smulbb r4, r4, r3 uxth r4, r4 adds r2, r4, #7 asrs r2, r2, #3 bl FlashReadFacBbtData adds r0, r0, #1 - bne .L2792 -.L2796: + bne .L2798 +.L2802: movs r3, #0 - b .L2793 -.L2792: + b .L2799 +.L2798: movs r1, #0 lsr lr, r4, #4 mov ip, #1 subs r4, r4, #1 mov r3, r1 -.L2794: +.L2800: uxth r2, r1 cmp r2, r4 - bge .L2793 - ldr r7, [r6, #1212] + bge .L2799 + ldr r7, [r6, #1220] lsrs r0, r2, #5 and r8, r2, #31 adds r1, r1, #1 @@ -17387,16 +17427,16 @@ FlashGetBadBlockList: addne r0, r3, #1 uxthne r3, r0 cmp r3, lr - bcc .L2794 - b .L2796 -.L2793: + bcc .L2800 + b .L2802 +.L2799: movw r2, #65535 movs r0, #0 strh r2, [r5, r3, lsl #1] @ movhi pop {r4, r5, r6, r7, r8, pc} -.L2802: +.L2808: .align 2 -.L2801: +.L2807: .word .LANCHOR0 .word .LANCHOR4 .fnend @@ -17413,69 +17453,69 @@ FtlMakeBbt: push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 - ldr r5, .L2827 + ldr r5, .L2833 ldr r4, [r5, #224] cmp r4, #0 - bne .L2804 + bne .L2810 bl FtlBbtMemInit - ldr r6, .L2827+4 + ldr r6, .L2833+4 bl FtlLoadFactoryBbt - ldr r9, .L2827+16 + ldr r9, .L2833+16 sub r8, r6, #18 sub r7, r6, #2480 -.L2805: +.L2811: ldrh r3, [r7, #2342] - ldr r10, .L2827+8 + ldr r10, .L2833+8 cmp r4, r3 - bcs .L2824 + bcs .L2830 ldr r3, [r5, #3340] movw r2, #65535 ldr r0, [r5, #3316] - ldr fp, .L2827+16 + ldr fp, .L2833+16 str r3, [sp] - str r3, [r9, #1260] + str r3, [r9, #1268] ldrh r3, [r8, #2]! - str r0, [r9, #1256] + str r0, [r9, #1264] cmp r3, r2 - beq .L2806 + beq .L2812 ldrh ip, [r7, #2386] movs r1, #1 - add r0, fp, #1248 + add r0, fp, #1256 mov r2, r1 mla ip, ip, r4, r3 lsl r3, ip, #10 str ip, [sp] - str r3, [r9, #1252] + str r3, [r9, #1260] bl FlashReadPages ldrh r2, [r7, #2386] ldr r0, [r6] adds r2, r2, #7 - ldr r1, [r9, #1256] + ldr r1, [r9, #1264] asrs r2, r2, #3 bl ftl_memcpy ldr ip, [sp] - b .L2807 -.L2806: + b .L2813 +.L2812: mov r1, r4 bl FlashGetBadBlockList - ldr r0, [r9, #1256] + ldr r0, [r9, #1264] ldr r1, [r6] bl FtlBbt2Bitmap ldrh r3, [r7, #2386] subs r3, r3, #1 -.L2823: +.L2829: uxth r10, r3 -.L2808: - ldr r3, .L2827+8 +.L2814: + ldr r3, .L2833+8 ldrh r0, [r3, #2386] smlabb r0, r0, r4, r10 uxth r0, r0 bl FtlBbmIsBadBlock cmp r0, #1 - bne .L2825 + bne .L2831 add r3, r10, #-1 - b .L2823 -.L2825: + b .L2829 +.L2831: movs r1, #0 movs r2, #16 strh r10, [r8] @ movhi @@ -17494,79 +17534,79 @@ FtlMakeBbt: ldr r1, [r6] mla ip, ip, r4, r3 lsls r2, r2, #2 - ldr r0, [fp, #1256] + ldr r0, [fp, #1264] lsl r3, ip, #10 str ip, [sp, #4] - str r3, [fp, #1252] + str r3, [fp, #1260] bl ftl_memcpy movs r1, #1 - ldr r0, .L2827+12 + ldr r0, .L2833+12 mov r2, r1 bl FlashEraseBlocks movs r1, #1 - ldr r0, .L2827+12 + ldr r0, .L2833+12 mov r3, r1 mov r2, r1 bl FlashProgPages - ldr r3, [fp, #1248] + ldr r3, [fp, #1256] adds r3, r3, #1 ldr ip, [sp, #4] - bne .L2807 + bne .L2813 uxth r0, ip bl FtlBbmMapBadBlock - b .L2808 -.L2807: + b .L2814 +.L2813: uxth r0, ip adds r4, r4, #1 bl FtlBbmMapBadBlock adds r6, r6, #4 - b .L2805 -.L2824: + b .L2811 +.L2830: movs r4, #0 -.L2812: +.L2818: ldrh r3, [r10, #2402] uxth r0, r4 - ldr r6, .L2827+8 + ldr r6, .L2833+8 adds r4, r4, #1 cmp r3, r0 - bls .L2826 + bls .L2832 bl FtlBbmMapBadBlock - b .L2812 -.L2826: + b .L2818 +.L2832: ldrh r4, [r6, #2464] movw r7, #65535 subs r4, r4, #1 uxth r4, r4 -.L2814: +.L2820: ldrh r3, [r10, #2464] subs r3, r3, #48 cmp r4, r3 - ble .L2818 + ble .L2824 mov r0, r4 bl FtlBbmIsBadBlock cmp r0, #1 - beq .L2815 + beq .L2821 mov r0, r4 bl FlashTestBlk - cbz r0, .L2816 + cbz r0, .L2822 mov r0, r4 bl FtlBbmMapBadBlock - b .L2815 -.L2816: + b .L2821 +.L2822: ldrh r3, [r6, #2452] cmp r3, r7 - bne .L2817 + bne .L2823 strh r4, [r6, #2452] @ movhi - b .L2815 -.L2817: - ldr r3, .L2827+8 + b .L2821 +.L2823: + ldr r3, .L2833+8 strh r4, [r3, #2456] @ movhi - b .L2818 -.L2815: + b .L2824 +.L2821: subs r4, r4, #1 uxth r4, r4 - b .L2814 -.L2818: + b .L2820 +.L2824: ldr r0, [r5, #228] movs r4, #0 ldrh r3, [r10, #2452] @@ -17594,18 +17634,18 @@ FtlMakeBbt: strh r2, [r10, #2452] @ movhi strh r3, [r10, #2456] @ movhi bl FtlBbmTblFlush -.L2804: +.L2810: movs r0, #0 add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2828: +.L2834: .align 2 -.L2827: +.L2833: .word .LANCHOR2 .word .LANCHOR0+2480 .word .LANCHOR0 - .word .LANCHOR4+1248 + .word .LANCHOR4+1256 .word .LANCHOR4 .fnend .size FtlMakeBbt, .-FtlMakeBbt @@ -17622,16 +17662,16 @@ log2phys: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #20 sub sp, sp, #20 - ldr r6, .L2845 + ldr r6, .L2851 mov r9, r0 str r2, [sp, #8] mov r10, r1 ldr r3, [r6, #2448] ldrh r2, [r6, #2396] cmp r0, r3 - bcs .L2830 + bcs .L2836 adds r3, r2, #7 - ldr r2, .L2845+4 + ldr r2, .L2851+4 lsr r5, r0, r3 str r3, [sp, #4] ldrh r1, [r6, #2426] @@ -17640,24 +17680,24 @@ log2phys: mov r8, r2 uxth r5, r5 movs r2, #12 - b .L2831 -.L2830: + b .L2837 +.L2836: ldr r3, [sp, #8] mov r0, #-1 cmp r3, #0 - bne .L2832 + bne .L2838 str r0, [r1] - b .L2832 -.L2836: + b .L2838 +.L2842: adds r4, r4, #1 mla r0, r2, r4, fp ldrh r0, [r0, #-12] cmp r0, r5 - beq .L2833 -.L2831: + beq .L2839 +.L2837: uxth r7, r4 cmp r7, r1 - bcc .L2836 + bcc .L2842 bl select_l2p_ram_region movs r4, #12 movw r3, #65535 @@ -17666,13 +17706,13 @@ log2phys: add r2, fp, r4 ldrh r1, [fp, r4] cmp r1, r3 - bne .L2844 -.L2837: + bne .L2850 +.L2843: ldr r3, [r8, #3388] - ldr fp, .L2845+4 + ldr fp, .L2851+4 ldr r3, [r3, r5, lsl #2] cmp r3, #0 - bne .L2838 + bne .L2844 ldr r2, [fp, #460] movs r1, #255 str r3, [sp, #12] @@ -17686,7 +17726,7 @@ log2phys: add r4, r4, r2 ldr r3, [sp, #12] str r3, [r4, #4] -.L2833: +.L2839: ldr r3, [sp, #4] movs r2, #1 ldr r1, [sp, #8] @@ -17694,16 +17734,16 @@ log2phys: movs r3, #12 subs r2, r2, #1 and r9, r9, r2 - ldr r2, .L2845+4 + ldr r2, .L2851+4 uxth r9, r9 - cbnz r1, .L2834 + cbnz r1, .L2840 ldr r1, [r2, #460] mla r3, r3, r7, r1 ldr r3, [r3, #8] ldr r3, [r3, r9, lsl #2] str r3, [r10] - b .L2835 -.L2834: + b .L2841 +.L2840: muls r3, r7, r3 ldr r1, [r2, #460] ldr r0, [r10] @@ -17716,65 +17756,65 @@ log2phys: ldr r1, [r3, #4] orr r1, r1, #-2147483648 str r1, [r3, #4] -.L2835: +.L2841: ldr r2, [r2, #460] movs r3, #12 mla r7, r3, r7, r2 ldr r3, [r7, #4] adds r2, r3, #1 - beq .L2842 + beq .L2848 adds r3, r3, #1 str r3, [r7, #4] - b .L2842 -.L2844: + b .L2848 +.L2850: ldr r3, [r2, #4] cmp r3, #0 - bge .L2837 + bge .L2843 bl flush_l2p_region - b .L2837 -.L2838: + b .L2843 +.L2844: ldr r2, [fp, #460] movs r1, #1 - ldr r8, .L2845+24 + ldr r8, .L2851+24 add r2, r2, r4 str r3, [sp, #12] - add r0, r8, #1248 + add r0, r8, #1256 ldr r2, [r2, #8] - str r3, [r8, #1252] - str r2, [r8, #1256] + str r3, [r8, #1260] + str r2, [r8, #1264] ldr r2, [fp, #3340] - str r2, [r8, #1260] + str r2, [r8, #1268] mov r2, r1 bl FlashReadPages - ldr r2, [r8, #1260] + ldr r2, [r8, #1268] ldrh r2, [r2, #8] cmp r2, r5 ldr r3, [sp, #12] - beq .L2839 + beq .L2845 mov r2, r3 mov r1, r5 - ldr r0, .L2845+8 + ldr r0, .L2851+8 bl printk movs r2, #4 - ldr r0, .L2845+12 + ldr r0, .L2851+12 mov r3, r2 - ldr r1, [r8, #1260] + ldr r1, [r8, #1268] bl rknand_print_hex ldrh r3, [r6, #2424] - ldr r0, .L2845+16 + ldr r0, .L2851+16 movs r2, #4 ldr r1, [fp, #3388] bl rknand_print_hex movs r3, #1 str r3, [fp, #224] - b .L2840 -.L2839: - ldr r2, [r8, #1248] + b .L2846 +.L2845: + ldr r2, [r8, #1256] cmp r2, #256 - bne .L2840 + bne .L2846 mov r2, r3 mov r1, r5 - ldr r0, .L2845+20 + ldr r0, .L2851+20 bl printk ldr r3, [fp, #460] add r0, fp, #3408 @@ -17782,23 +17822,23 @@ log2phys: add r3, r3, r4 ldr r2, [r3, #8] bl FtlMapWritePage -.L2840: - ldr r3, .L2845+4 +.L2846: + ldr r3, .L2851+4 movs r1, #0 ldr r3, [r3, #460] adds r2, r3, r4 str r1, [r2, #4] strh r5, [r3, r4] @ movhi - b .L2833 -.L2842: + b .L2839 +.L2848: movs r0, #0 -.L2832: +.L2838: add sp, sp, #20 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2846: +.L2852: .align 2 -.L2845: +.L2851: .word .LANCHOR0 .word .LANCHOR2 .word .LC140 @@ -17821,27 +17861,27 @@ FtlWriteDumpData: .save {r4, r5, r6, r7, r8, r9, r10, lr} .pad #40 sub sp, sp, #40 - ldr r4, .L2865 + ldr r4, .L2871 ldr r3, [r4, #224] cmp r3, #0 - bne .L2847 + bne .L2853 ldrh r2, [r4, #320] cmp r2, #0 - beq .L2849 + beq .L2855 ldrb r3, [r4, #324] @ zero_extendqisi2 cmp r3, #0 - bne .L2849 - ldr r7, .L2865+4 + bne .L2855 + ldr r7, .L2871+4 ldrb r1, [r4, #323] @ zero_extendqisi2 ldrh r3, [r7, #2388] muls r3, r1, r3 cmp r2, r3 - beq .L2849 + beq .L2855 ldrb r9, [r4, #326] @ zero_extendqisi2 ldr r6, [r7, #2448] ldrh r8, [r7, #2320] cmp r9, #0 - bne .L2847 + bne .L2853 subs r6, r6, #1 mov r1, sp mov r2, r9 @@ -17856,32 +17896,32 @@ FtlWriteDumpData: adds r3, r3, #1 str r5, [sp, #16] str r9, [r5, #4] - beq .L2851 + beq .L2857 movs r1, #1 mov r2, r9 add r0, sp, #4 bl FlashReadPages - b .L2852 -.L2851: + b .L2858 +.L2857: movs r1, #255 ldrh r2, [r7, #2398] bl ftl_memset -.L2852: +.L2858: movs r7, #0 - ldr r10, .L2865 + ldr r10, .L2871 lsl r8, r8, #2 movw r3, #61589 mov r9, r7 strh r3, [r5] @ movhi -.L2853: +.L2859: cmp r7, r8 - beq .L2854 + beq .L2860 ldrh r3, [r4, #320] - cbz r3, .L2854 + cbz r3, .L2860 ldr r3, [sp, #8] adds r7, r7, #1 str r6, [r5, #8] - ldr r0, .L2865+8 + ldr r0, .L2871+8 str r3, [r5, #12] ldrh r3, [r10, #316] strh r3, [r5, #2] @ movhi @@ -17901,21 +17941,21 @@ FtlWriteDumpData: bl FlashProgPages ldrh r0, [r4, #316] bl decrement_vpc_count - b .L2853 -.L2854: + b .L2859 +.L2860: movs r3, #1 - b .L2864 -.L2849: + b .L2870 +.L2855: movs r3, #0 -.L2864: +.L2870: strb r3, [r4, #326] -.L2847: +.L2853: add sp, sp, #40 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, pc} -.L2866: +.L2872: .align 2 -.L2865: +.L2871: .word .LANCHOR2 .word .LANCHOR0 .word .LANCHOR2+316 @@ -17934,29 +17974,29 @@ l2p_flush: .save {r3, r4, r5, r6, r7, lr} bl FtlWriteDumpData movs r4, #0 - ldr r5, .L2872 + ldr r5, .L2878 movs r7, #12 - ldr r6, .L2872+4 -.L2868: + ldr r6, .L2878+4 +.L2874: ldrh r3, [r5, #2426] uxth r0, r4 cmp r3, r0 - bls .L2871 + bls .L2877 ldr r3, [r6, #460] mla r3, r7, r0, r3 ldr r3, [r3, #4] cmp r3, #0 - bge .L2869 + bge .L2875 bl flush_l2p_region -.L2869: +.L2875: adds r4, r4, #1 - b .L2868 -.L2871: + b .L2874 +.L2877: movs r0, #0 pop {r3, r4, r5, r6, r7, pc} -.L2873: +.L2879: .align 2 -.L2872: +.L2878: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -17973,89 +18013,89 @@ allocate_new_data_superblock: push {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r6, r0 - ldr r4, .L2900 + ldr r4, .L2906 ldrh r5, [r0] ldr r3, [r4, #224] cmp r3, #0 - bne .L2875 + bne .L2881 movw r3, #65535 cmp r5, r3 - beq .L2876 + beq .L2882 ldr r3, [r4, #296] mov r0, r5 ldrh r3, [r3, r5, lsl #1] - cbz r3, .L2877 + cbz r3, .L2883 bl INSERT_DATA_LIST - b .L2876 -.L2877: + b .L2882 +.L2883: bl INSERT_FREE_LIST -.L2876: - ldr r2, .L2900 +.L2882: + ldr r2, .L2906 movs r3, #0 strb r3, [r6, #8] add r3, r2, #364 cmp r6, r3 - beq .L2878 - ldr r3, .L2900+4 + beq .L2884 + ldr r3, .L2906+4 ldrh r1, [r3, #2340] cmp r1, #1 - beq .L2878 - ldrb r0, [r3, #144] @ zero_extendqisi2 - cbz r0, .L2879 -.L2878: + beq .L2884 + ldrb r0, [r3, #148] @ zero_extendqisi2 + cbz r0, .L2885 +.L2884: movs r3, #1 strb r3, [r6, #8] - b .L2880 -.L2879: + b .L2886 +.L2885: add r0, r2, #316 cmp r6, r0 - bne .L2880 + bne .L2886 cmp r1, #3 - beq .L2882 + beq .L2888 ldr r2, [r2, #604] cmp r2, #1 - bne .L2883 -.L2882: + bne .L2889 +.L2888: movs r2, #1 strb r2, [r4, #324] -.L2883: +.L2889: ldr r3, [r3, #2244] - cbz r3, .L2880 + cbz r3, .L2886 ldr r3, [r4, #532] cmp r3, #39 ittt ls movls r2, #1 - ldrls r3, .L2900 + ldrls r3, .L2906 strbls r2, [r3, #324] -.L2880: +.L2886: ldrh r0, [r4, #3460] movw r3, #65535 cmp r0, r3 - beq .L2885 + beq .L2891 cmp r5, r0 - bne .L2886 - ldr r3, .L2900 + bne .L2892 + ldr r3, .L2906 ldr r3, [r3, #296] ldrh r3, [r3, r0, lsl #1] - cbz r3, .L2887 -.L2886: + cbz r3, .L2893 +.L2892: bl update_vpc_list -.L2887: +.L2893: movw r3, #65535 strh r3, [r4, #3460] @ movhi -.L2885: +.L2891: mov r0, r6 bl allocate_data_superblock bl l2p_flush movs r0, #0 bl FtlEctTblFlush bl FtlVpcTblFlush -.L2875: +.L2881: movs r0, #0 pop {r4, r5, r6, pc} -.L2901: +.L2907: .align 2 -.L2900: +.L2906: .word .LANCHOR2 .word .LANCHOR0 .fnend @@ -18073,94 +18113,94 @@ FtlCheckVpc: .save {r4, r5, r6, r7, r8, r9, r10, lr} .pad #8 movs r4, #0 - ldr r1, .L2924 - ldr r0, .L2924+4 + ldr r1, .L2930 + ldr r0, .L2930+4 bl printk - ldr r0, .L2924+8 + ldr r0, .L2930+8 movs r1, #0 mov r2, #8192 bl memset - ldr r5, .L2924+12 - ldr r6, .L2924+16 -.L2903: + ldr r5, .L2930+12 + ldr r6, .L2930+16 +.L2909: ldr r3, [r5, #2448] - ldr r9, .L2924+12 + ldr r9, .L2930+12 cmp r4, r3 - bcs .L2922 + bcs .L2928 mov r0, r4 add r1, sp, #4 movs r2, #0 bl log2phys ldr r0, [sp, #4] adds r3, r0, #1 - beq .L2904 + beq .L2910 ubfx r0, r0, #10, #16 bl P2V_block_in_plane add r0, r6, r0, lsl #1 - ldrh r3, [r0, #1336] + ldrh r3, [r0, #1344] adds r3, r3, #1 - strh r3, [r0, #1336] @ movhi -.L2904: + strh r3, [r0, #1344] @ movhi +.L2910: adds r4, r4, #1 - b .L2903 -.L2922: + b .L2909 +.L2928: movs r7, #0 - ldr r8, .L2924+20 - ldr r10, .L2924+16 + ldr r8, .L2930+20 + ldr r10, .L2930+16 mov r6, r7 -.L2906: +.L2912: ldrh r3, [r9, #2328] uxth r4, r7 - ldr r5, .L2924+20 + ldr r5, .L2930+20 cmp r3, r4 - bls .L2923 + bls .L2929 ldr r3, [r8, #296] add r5, r10, r4, lsl #1 ldrh r2, [r3, r4, lsl #1] - ldrh r3, [r5, #1336] + ldrh r3, [r5, #1344] cmp r2, r3 - beq .L2907 - ldr r0, .L2924+24 + beq .L2913 + ldr r0, .L2930+24 mov r1, r4 bl printk ldr r3, [r8, #296] movw r2, #65535 ldrh r3, [r3, r4, lsl #1] cmp r3, r2 - beq .L2907 - ldrh r2, [r5, #1336] + beq .L2913 + ldrh r2, [r5, #1344] cmp r2, r3 it hi movhi r6, #1 -.L2907: +.L2913: adds r7, r7, #1 - b .L2906 -.L2923: + b .L2912 +.L2929: ldr r3, [r5, #308] - cbz r3, .L2909 + cbz r3, .L2915 ldr r2, [r5, #288] movs r7, #0 ldrh r8, [r5, #312] subs r3, r3, r2 - ldr r2, .L2924+28 - ldr r9, .L2924+16 + ldr r2, .L2930+28 + ldr r9, .L2930+16 asrs r3, r3, #1 muls r3, r2, r3 uxth r4, r3 -.L2910: +.L2916: uxth r3, r7 cmp r3, r8 - bcs .L2909 + bcs .L2915 ldr r3, [r5, #296] ldrh r2, [r3, r4, lsl #1] - cbz r2, .L2911 + cbz r2, .L2917 add r3, r9, r4, lsl #1 - ldr r0, .L2924+32 + ldr r0, .L2930+32 mov r1, r4 movs r6, #1 - ldrh r3, [r3, #1336] + ldrh r3, [r3, #1344] bl printk -.L2911: +.L2917: movs r3, #6 ldr r2, [r5, #288] adds r7, r7, #1 @@ -18168,20 +18208,20 @@ FtlCheckVpc: movw r3, #65535 ldrh r4, [r2, r4] cmp r4, r3 - bne .L2910 -.L2909: + bne .L2916 +.L2915: mov r1, r6 - ldr r0, .L2924+36 + ldr r0, .L2930+36 bl printk add sp, sp, #8 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, pc} -.L2925: +.L2931: .align 2 -.L2924: +.L2930: .word .LANCHOR3+204 .word .LC110 - .word .LANCHOR4+1336 + .word .LANCHOR4+1344 .word .LANCHOR0 .word .LANCHOR4 .word .LANCHOR2 @@ -18205,53 +18245,53 @@ Ftlscanalldata: movs r1, #0 .pad #36 sub sp, sp, #36 - ldr r0, .L2941 + ldr r0, .L2947 bl printk - ldr r7, .L2941+4 - ldr r5, .L2941+8 + ldr r7, .L2947+4 + ldr r5, .L2947+8 movs r4, #0 -.L2927: +.L2933: ldr r3, [r7, #2448] cmp r4, r3 - bcs .L2940 + bcs .L2946 mov r0, r4 add r1, sp, #28 movs r2, #0 bl log2phys ubfx r3, r4, #0, #11 - cbnz r3, .L2928 - ldr r0, .L2941+12 + cbnz r3, .L2934 + ldr r0, .L2947+12 mov r1, r4 ldr r2, [sp, #28] bl printk -.L2928: +.L2934: ldr r3, [sp, #28] adds r2, r3, #1 - beq .L2930 - str r3, [r5, #1252] + beq .L2936 + str r3, [r5, #1260] movs r1, #1 - ldr r3, .L2941+16 - ldr r0, .L2941+20 - str r4, [r5, #1264] + ldr r3, .L2947+16 + ldr r0, .L2947+20 + str r4, [r5, #1272] ldr r2, [r3, #3316] ldr r6, [r3, #3340] - str r2, [r5, #1256] + str r2, [r5, #1264] movs r2, #0 - str r6, [r5, #1260] - str r2, [r5, #1248] + str r6, [r5, #1268] + str r2, [r5, #1256] bl FlashReadPages - ldr r3, [r5, #1248] - ldr r2, .L2941+8 + ldr r3, [r5, #1256] + ldr r2, .L2947+8 cmp r3, #256 - beq .L2931 + beq .L2937 adds r3, r3, #1 - beq .L2931 + beq .L2937 ldr r3, [r6, #8] cmp r3, r4 - beq .L2930 -.L2931: - ldr r3, [r2, #1260] - ldr r1, [r2, #1256] + beq .L2936 +.L2937: + ldr r3, [r2, #1268] + ldr r1, [r2, #1264] ldr r0, [r3, #4] str r0, [sp] ldr r0, [r3, #8] @@ -18261,28 +18301,28 @@ Ftlscanalldata: ldr r0, [r1] str r0, [sp, #12] ldr r1, [r1, #4] - ldr r0, .L2941+24 + ldr r0, .L2947+24 str r1, [sp, #16] mov r1, r4 - ldr r2, [r2, #1252] + ldr r2, [r2, #1260] ldr r3, [r3] bl printk -.L2930: +.L2936: adds r4, r4, #1 - b .L2927 -.L2940: + b .L2933 +.L2946: add sp, sp, #36 @ sp needed pop {r4, r5, r6, r7, pc} -.L2942: +.L2948: .align 2 -.L2941: +.L2947: .word .LC146 .word .LANCHOR0 .word .LANCHOR4 .word .LC147 .word .LANCHOR2 - .word .LANCHOR4+1248 + .word .LANCHOR4+1256 .word .LC148 .fnend .size Ftlscanalldata, .-Ftlscanalldata @@ -18302,29 +18342,29 @@ FtlReUsePrevPpa: ubfx r0, r1, #10, #16 str r1, [sp, #4] bl P2V_block_in_plane - ldr r5, .L2952 + ldr r5, .L2958 ldr r4, [r5, #296] ldrh r3, [r4, r0, lsl #1] - cbnz r3, .L2944 + cbnz r3, .L2950 ldr r4, [r5, #308] - cbz r4, .L2945 + cbz r4, .L2951 ldr r1, [r5, #288] mov lr, #6 - ldr r2, .L2952+4 + ldr r2, .L2958+4 movw ip, #65535 subs r4, r4, r1 ldrh r7, [r5, #312] asrs r4, r4, #1 muls r4, r2, r4 uxth r4, r4 -.L2946: +.L2952: uxth r2, r3 cmp r2, r7 - bcs .L2945 + bcs .L2951 cmp r4, r0 - bne .L2947 + bne .L2953 mov r1, r4 - ldr r0, .L2952+8 + ldr r0, .L2958+8 bl List_remove_node ldrh r3, [r5, #312] mov r0, r4 @@ -18335,18 +18375,18 @@ FtlReUsePrevPpa: ldrh r3, [r2, r4, lsl #1] adds r3, r3, #1 strh r3, [r2, r4, lsl #1] @ movhi - b .L2945 -.L2947: + b .L2951 +.L2953: mul r4, lr, r4 adds r3, r3, #1 ldrh r4, [r1, r4] cmp r4, ip - bne .L2946 - b .L2945 -.L2944: + bne .L2952 + b .L2951 +.L2950: adds r3, r3, #1 strh r3, [r4, r0, lsl #1] @ movhi -.L2945: +.L2951: mov r0, r6 add r1, sp, #4 movs r2, #1 @@ -18354,9 +18394,9 @@ FtlReUsePrevPpa: add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, pc} -.L2953: +.L2959: .align 2 -.L2952: +.L2958: .word .LANCHOR2 .word -1431655765 .word .LANCHOR2+308 @@ -18379,54 +18419,54 @@ FtlRecoverySuperblock: sub sp, sp, #68 mov r4, r0 cmp r3, r7 - beq .L3101 + beq .L3107 ldrh r3, [r0, #2] movs r5, #0 - ldr r6, .L3117 + ldr r6, .L3123 str r3, [sp, #12] ldrb r3, [r0, #6] @ zero_extendqisi2 ldr r2, [sp, #12] str r3, [sp, #28] ldrh r3, [r6, #2388] cmp r3, r2 - bne .L2957 + bne .L2963 strh r5, [r0, #4] @ movhi strb r5, [r0, #6] - b .L3101 -.L2957: + b .L3107 +.L2963: ldrh r0, [r0, #16] -.L2958: +.L2964: cmp r0, r7 add r5, r5, #1 - bne .L3112 + bne .L3118 uxth r3, r5 adds r3, r3, #8 ldrh r0, [r4, r3, lsl #1] - b .L2958 -.L3112: + b .L2964 +.L3118: ldrb r1, [r4, #8] @ zero_extendqisi2 cmp r1, #1 - bne .L2960 + bne .L2966 bl FtlGetLastWrittenPage adds r2, r0, #1 mov r5, r0 - beq .L2961 - ldrb r3, [r6, #144] @ zero_extendqisi2 - cbnz r3, .L3103 - ldr r3, .L3117 + beq .L2967 + ldrb r3, [r6, #148] @ zero_extendqisi2 + cbnz r3, .L3109 + ldr r3, .L3123 add r3, r3, r0, lsl #1 - ldrh r7, [r3, #148] - b .L3035 -.L2960: + ldrh r7, [r3, #152] + b .L3041 +.L2966: movs r1, #0 bl FtlGetLastWrittenPage adds r3, r0, #1 mov r5, r0 - beq .L2961 -.L3103: + beq .L2967 +.L3109: mov r7, r5 -.L3035: - ldr r3, .L3117+4 +.L3041: + ldr r3, .L3123+4 movw r9, #65535 ldrh ip, [r6, #2320] mov r10, #36 @@ -18440,16 +18480,16 @@ FtlRecoverySuperblock: mov lr, r3 mov r6, r2 mov fp, r2 - b .L2963 -.L2961: + b .L2969 +.L2967: movs r3, #0 strh r3, [r4, #2] @ movhi strb r3, [r4, #6] - b .L3101 -.L2966: + b .L3107 +.L2972: ldrh r3, [lr, #2]! cmp r3, r9 - beq .L2964 + beq .L2970 ldr r1, [sp, #4] orr r3, r7, r3, lsl #10 mla r1, r10, r6, r1 @@ -18464,25 +18504,25 @@ FtlRecoverySuperblock: bic r3, r3, #3 add r3, r3, r8 str r3, [r1, #12] -.L2964: +.L2970: adds r2, r2, #1 -.L2963: +.L2969: uxth r3, r2 cmp r3, ip - bcc .L2966 + bcc .L2972 ldrb r3, [r4, #8] @ zero_extendqisi2 cmp r3, #1 - bne .L3037 - ldr r3, .L3117 - ldrb r1, [r3, #144] @ zero_extendqisi2 + bne .L3043 + ldr r3, .L3123 + ldrb r1, [r3, #148] @ zero_extendqisi2 adds r3, r1, #0 it ne movne r3, #1 - b .L3104 -.L3037: + b .L3110 +.L3043: movs r3, #0 -.L3104: - ldr r8, .L3117+4 +.L3110: + ldr r8, .L3123+4 mov r1, r6 str r3, [sp, #24] mov fp, #0 @@ -18495,73 +18535,73 @@ FtlRecoverySuperblock: str r3, [sp, #4] movw r3, #65535 str r3, [sp, #16] -.L2968: +.L2974: uxth r9, fp cmp r9, r6 - bcs .L2975 + bcs .L2981 movs r1, #36 ldr r0, [r8, #3304] mul r1, r1, fp add lr, r0, r1 ldr r1, [r0, r1] - cbnz r1, .L2969 + cbnz r1, .L2975 ldr r3, [lr, #12] ldr r10, [r3, #4] cmp r10, #-1 - beq .L2970 + beq .L2976 mov r0, r10 ldr r1, [r8, #512] str r3, [sp, #32] bl ftl_cmp_data_ver ldr r3, [sp, #32] - cbz r0, .L2970 + cbz r0, .L2976 add r1, r10, #1 str r1, [r8, #512] -.L2970: +.L2976: ldr r1, [r3] adds r1, r1, #1 - bne .L2971 -.L2975: + bne .L2977 +.L2981: cmp r9, r6 - ldr r6, .L3117+4 - bne .L3102 + ldr r6, .L3123+4 + bne .L3108 ldr r3, [r6, #3304] adds r5, r5, #1 uxth r10, r5 ldr r0, [r3, #4] - b .L3105 -.L2969: + b .L3111 +.L2975: ldr r1, [lr, #4] - ldr r0, .L3117+8 + ldr r0, .L3123+8 bl printk uxth r3, r7 ldrh r1, [r4] str r3, [sp, #16] - ldr r3, .L3117+12 - strh r1, [r3, #840] @ movhi -.L2971: + ldr r3, .L3123+12 + strh r1, [r3, #848] @ movhi +.L2977: add fp, fp, #1 - b .L2968 -.L3102: + b .L2974 +.L3108: ldr r3, [sp, #8] movs r2, #36 uxth r10, r5 ldr r3, [r3, #3304] mla r9, r2, r9, r3 ldr r0, [r9, #4] -.L3105: +.L3111: ubfx r0, r0, #10, #16 bl P2V_plane ldrb r5, [r4, #8] @ zero_extendqisi2 - ldr r2, .L3117 + ldr r2, .L3123 cmp r5, #1 str r0, [sp, #8] - bne .L2977 - ldrb r3, [r2, #144] @ zero_extendqisi2 - cbnz r3, .L2977 + bne .L2983 + ldrb r3, [r2, #148] @ zero_extendqisi2 + cbnz r3, .L2983 add r3, r2, r10, lsl #1 - ldrh r10, [r3, #148] -.L2977: + ldrh r10, [r3, #152] +.L2983: ldrh r3, [r2, #2388] cmp r3, r10 itttt eq @@ -18573,31 +18613,31 @@ FtlRecoverySuperblock: str r3, [sp, #32] ldr r3, [sp, #12] cmp r10, r3 - bne .L2979 + bne .L2985 ldr r3, [sp, #8] ldr r2, [sp, #32] cmp r3, r2 - bne .L2979 + bne .L2985 mov r0, r4 mov r1, r10 mov r2, r3 - b .L3110 -.L2979: + b .L3116 +.L2985: ldr r2, [sp, #16] movw r3, #65535 cmp r2, r3 - bne .L2980 + bne .L2986 cmp r5, #0 - bne .L2981 -.L2980: + bne .L2987 +.L2986: ldr r3, [r6, #3472] uxth fp, r7 mov r9, #-1 - ldr r7, .L3117+4 + ldr r7, .L3123+4 adds r3, r3, #1 mov r8, r9 ittt eq - ldreq r3, .L3117+4 + ldreq r3, .L3123+4 ldreq r2, [sp, #4] streq r2, [r3, #3472] ldr r3, [r6, #3472] @@ -18609,24 +18649,24 @@ FtlRecoverySuperblock: subgt r5, fp, #7 ldrle r5, [sp, #12] uxthgt r5, r5 -.L2984: +.L2990: cmp r5, fp - bhi .L2997 - ldr r3, .L3117 + bhi .L3003 + ldr r3, .L3123 ldr r1, [sp, #20] ldrh ip, [r3, #2320] ldr r3, [r7, #3304] str r3, [sp, #28] movs r3, #0 mov r6, r3 -.L2998: +.L3004: uxth r2, r3 cmp r2, ip - bcs .L3113 + bcs .L3119 ldrh r2, [r1, #2]! movw r0, #65535 cmp r2, r0 - beq .L2985 + beq .L2991 ldr r0, [sp, #28] mov lr, #36 orr r2, r5, r2, lsl #10 @@ -18634,129 +18674,129 @@ FtlRecoverySuperblock: adds r6, r6, #1 uxth r6, r6 str r2, [r0, #4] -.L2985: +.L2991: adds r3, r3, #1 - b .L2998 -.L3113: + b .L3004 +.L3119: mov r1, r6 ldr r2, [sp, #24] ldr r0, [r7, #3304] bl FlashReadPages - ldr r3, .L3117 + ldr r3, .L3123 movs r2, #36 add lr, r7, r5, lsl #1 movw r1, #65535 - ldrb r0, [r3, #144] @ zero_extendqisi2 + ldrb r0, [r3, #148] @ zero_extendqisi2 ldr r3, [r7, #3304] mla r6, r2, r6, r3 -.L2987: +.L2993: cmp r3, r6 - beq .L3114 + beq .L3120 ldr r2, [r3] - cbnz r2, .L2988 + cbnz r2, .L2994 ldr r2, [r3, #12] ldrh ip, [r2] cmp ip, r1 - beq .L2989 + beq .L2995 ldr r2, [r2, #4] cmp r2, #-1 - beq .L2989 + beq .L2995 cmp r9, #-1 ldr r8, [r7, #3472] str r2, [r7, #3472] - bne .L2989 + bne .L2995 ldrh r2, [lr, #1220] cmp r2, r1 - bne .L2990 + bne .L2996 cmp r0, #0 - beq .L2989 -.L2990: + beq .L2995 +.L2996: ldr r2, [sp, #4] cmp r8, r2 ite ne movne r9, r8 moveq r9, #-1 - b .L2989 -.L3118: + b .L2995 +.L3124: .align 2 -.L3117: +.L3123: .word .LANCHOR0 .word .LANCHOR2 .word .LC149 .word .LANCHOR5 -.L2988: - ldr r3, .L3119 +.L2994: + ldr r3, .L3125 ldrh r2, [r4] - strh r2, [r3, #840] @ movhi + strh r2, [r3, #848] @ movhi ldrb r3, [r4, #8] @ zero_extendqisi2 - cbnz r3, .L2981 - ldr r3, .L3119+4 + cbnz r3, .L2987 + ldr r3, .L3125+4 movw r2, #65535 add r5, r3, r5, lsl #1 ldrh r1, [r5, #1220] cmp r1, r2 - bne .L2992 + bne .L2998 cmp r9, #-1 - beq .L2993 + beq .L2999 str r9, [r3, #3472] - b .L2981 -.L2993: + b .L2987 +.L2999: ldr r2, [sp, #16] ldr r1, [sp, #4] cmp r2, r1 - bne .L3106 + bne .L3112 ldr r2, [r3, #3472] - b .L3111 -.L2992: + b .L3117 +.L2998: ldr r2, [sp, #4] cmp r8, r2 - beq .L2995 + beq .L3001 cmp r8, #-1 - beq .L2981 + beq .L2987 str r8, [r3, #3472] - b .L2981 -.L2995: + b .L2987 +.L3001: ldr r2, [r3, #3472] ldr r1, [sp, #4] cmp r2, r1 - beq .L2981 -.L3111: + beq .L2987 +.L3117: subs r2, r2, #1 - b .L3106 -.L2989: + b .L3112 +.L2995: adds r3, r3, #36 - b .L2987 -.L3114: + b .L2993 +.L3120: adds r5, r5, #1 uxth r5, r5 - b .L2984 -.L2997: - ldr r3, .L3119+4 + b .L2990 +.L3003: + ldr r3, .L3125+4 mov r2, #-1 -.L3106: +.L3112: str r2, [r3, #3472] -.L2981: - ldr r3, .L3119 +.L2987: + ldr r3, .L3125 movs r2, #1 ldr fp, [sp, #12] - ldr r5, .L3119+4 - strh r2, [r3, #842] @ movhi -.L2999: - ldr r3, .L3119+8 + ldr r5, .L3125+4 + strh r2, [r3, #850] @ movhi +.L3005: + ldr r3, .L3125+8 movw r9, #65535 ldr r1, [r5, #3304] movs r6, #0 ldr r7, [sp, #20] ldrh r8, [r3, #2320] - ldrb r0, [r3, #144] @ zero_extendqisi2 + ldrb r0, [r3, #148] @ zero_extendqisi2 str r6, [sp, #16] -.L3000: +.L3006: uxth r3, r6 cmp r3, r8 - bcs .L3115 + bcs .L3121 ldrh r3, [r7, #2]! cmp r3, r9 - beq .L3001 + beq .L3007 ldr r2, [sp, #16] mov lr, #36 orr r3, fp, r3, lsl #10 @@ -18764,30 +18804,30 @@ FtlRecoverySuperblock: str r3, [r2, #4] ldrb lr, [r4, #8] @ zero_extendqisi2 cmp lr, #1 - bne .L3002 - cbz r0, .L3002 + bne .L3008 + cbz r0, .L3008 orr r3, r3, #-2147483648 str r3, [r2, #4] -.L3002: +.L3008: ldr r3, [sp, #16] add ip, r3, #1 uxth r3, ip str r3, [sp, #16] -.L3001: +.L3007: adds r6, r6, #1 - b .L3000 -.L3115: + b .L3006 +.L3121: ldr r0, [r5, #3304] ldr r1, [sp, #16] ldr r2, [sp, #24] bl FlashReadPages movs r3, #0 -.L3109: +.L3115: str r3, [sp, #28] ldr r2, [sp, #16] ldrh r3, [sp, #28] cmp r3, r2 - bcs .L3116 + bcs .L3122 ldr r3, [sp, #28] movs r6, #36 ldr r9, [r5, #3304] @@ -18799,41 +18839,41 @@ FtlRecoverySuperblock: bl P2V_plane ldr r3, [sp, #12] cmp fp, r3 - bcc .L3005 - bne .L3006 + bcc .L3011 + bne .L3012 ldr r3, [sp, #32] cmp r0, r3 - bcc .L3005 -.L3006: + bcc .L3011 +.L3012: cmp fp, r10 - bne .L3007 + bne .L3013 ldr r3, [sp, #8] cmp r0, r3 - beq .L3008 -.L3007: + beq .L3014 +.L3013: ldr r3, [r9, r6] adds r3, r3, #1 - beq .L3009 + beq .L3015 ldr r8, [r8, #12] movw r3, #61589 ldrh r2, [r8] cmp r2, r3 - beq .L3010 + beq .L3016 ldrh r0, [r4] - b .L3107 -.L3010: + b .L3113 +.L3016: ldr r3, [r8, #4] adds r7, r3, #1 str r3, [sp, #4] - beq .L3011 + beq .L3017 mov r0, r3 ldr r1, [r5, #512] bl ftl_cmp_data_ver - cbz r0, .L3011 + cbz r0, .L3017 ldr r3, [sp, #4] adds r3, r3, #1 str r3, [r5, #512] -.L3011: +.L3017: ldr r7, [r8, #8] add r1, sp, #56 ldr r3, [r8, #12] @@ -18843,14 +18883,14 @@ FtlRecoverySuperblock: bl log2phys ldr r1, [r5, #3472] adds r0, r1, #1 - beq .L3012 + beq .L3018 ldr r0, [sp, #4] bl ftl_cmp_data_ver cmp r0, #0 - beq .L3012 + beq .L3018 ldr r3, [sp, #52] adds r2, r3, #1 - beq .L3013 + beq .L3019 ldr r0, [r5, #3304] movs r2, #0 movs r1, #1 @@ -18864,22 +18904,22 @@ FtlRecoverySuperblock: str r3, [sp, #36] ldr r3, [r2, r6] adds r3, r3, #1 - bne .L3014 - b .L3015 -.L3013: + bne .L3020 + b .L3021 +.L3019: ldr r3, [sp, #60] ldr r2, [sp, #56] cmp r2, r3 - bne .L3005 + bne .L3011 mov r0, r7 add r1, sp, #52 movs r2, #1 bl log2phys - b .L3005 -.L3014: + b .L3011 +.L3020: ldr r8, [r9, #8] cmp r8, r7 - bne .L3015 + bne .L3021 ldr r0, [r5, #3472] ldr r1, [sp, #36] str r2, [sp, #44] @@ -18887,217 +18927,217 @@ FtlRecoverySuperblock: bl ftl_cmp_data_ver ldr ip, [sp, #40] ldr r2, [sp, #44] - cbz r0, .L3015 + cbz r0, .L3021 ldr r3, [sp, #56] ldr r1, [sp, #60] cmp r3, r1 - beq .L3020 + beq .L3026 ldr r1, [sp, #52] cmp r3, r1 - beq .L3015 + beq .L3021 adds r7, r3, #1 - beq .L3018 + beq .L3024 str r3, [ip, #4] mov r0, ip movs r1, #1 movs r2, #0 ldr r9, [ip, #12] bl FlashReadPages - b .L3019 -.L3018: + b .L3025 +.L3024: str r3, [r2, r6] -.L3019: +.L3025: ldr r3, [r5, #3304] ldr r3, [r3, r6] adds r3, r3, #1 - beq .L3020 + beq .L3026 ldr r6, [r9, #4] ldr r0, [r5, #3472] mov r1, r6 bl ftl_cmp_data_ver - cbz r0, .L3020 + cbz r0, .L3026 ldr r0, [sp, #36] mov r1, r6 bl ftl_cmp_data_ver - cbz r0, .L3015 -.L3020: + cbz r0, .L3021 +.L3026: mov r0, r8 ldr r1, [sp, #52] bl FtlReUsePrevPpa -.L3015: +.L3021: mov r3, #-1 str r3, [sp, #52] - b .L3022 -.L3120: + b .L3028 +.L3126: .align 2 -.L3119: +.L3125: .word .LANCHOR5 .word .LANCHOR2 .word .LANCHOR0 -.L3012: +.L3018: ldr r3, [sp, #60] ldr r2, [sp, #56] cmp r2, r3 - beq .L3022 + beq .L3028 ldr r3, [sp, #52] adds r0, r3, #1 - beq .L3024 - ldr r2, .L3121 + beq .L3030 + ldr r2, .L3127 ubfx r3, r3, #10, #21 ldr r2, [r2, #2336] cmp r3, r2 - bcs .L3005 -.L3024: + bcs .L3011 +.L3030: mov r0, r7 add r1, sp, #60 movs r2, #1 bl log2phys ldr r8, [sp, #56] cmp r8, #-1 - beq .L3022 + beq .L3028 ldr r3, [sp, #52] cmp r8, r3 - beq .L3022 + beq .L3028 ubfx r0, r8, #10, #16 bl P2V_block_in_plane ldrh r3, [r5, #316] cmp r3, r0 - beq .L3026 + beq .L3032 ldrh r3, [r5, #364] cmp r3, r0 - beq .L3026 + beq .L3032 ldrh r3, [r5, #412] cmp r3, r0 - bne .L3022 -.L3026: - ldr r3, .L3121+4 + bne .L3028 +.L3032: + ldr r3, .L3127+4 movs r1, #1 movs r2, #0 ldr r0, [r3, #3304] str r8, [r0, #4] ldr r6, [r0, #12] bl FlashReadPages - ldr r3, .L3121+4 + ldr r3, .L3127+4 ldr r1, [r6, #4] ldr r3, [r3, #3304] ldr r3, [r3] adds r3, r3, #1 - beq .L3022 + beq .L3028 ldr r0, [sp, #4] bl ftl_cmp_data_ver - cbnz r0, .L3022 + cbnz r0, .L3028 mov r0, r7 add r1, sp, #56 movs r2, #1 bl log2phys -.L3022: +.L3028: ldr r0, [sp, #52] adds r1, r0, #1 - beq .L3005 + beq .L3011 ubfx r0, r0, #10, #16 bl P2V_block_in_plane ldr r3, [r5, #296] ldrh r3, [r3, r0, lsl #1] mov r1, r0 - cbz r3, .L3027 -.L3107: + cbz r3, .L3033 +.L3113: bl decrement_vpc_count - b .L3005 -.L3027: - ldr r0, .L3121+8 + b .L3011 +.L3033: + ldr r0, .L3127+8 bl printk - b .L3005 -.L3009: + b .L3011 +.L3015: ldrh r3, [r4] mov r1, r7 - ldr r2, .L3121+12 - ldr r0, .L3121+16 - strh r3, [r2, #840] @ movhi + ldr r2, .L3127+12 + ldr r0, .L3127+16 + strh r3, [r2, #848] @ movhi ldr r2, [sp, #4] bl printk - ldr r3, .L3121+12 - ldr r3, [r3, #844] + ldr r3, .L3127+12 + ldr r3, [r3, #852] cmp r3, #31 - bhi .L3028 - ldr r2, .L3121+12 + bhi .L3034 + ldr r2, .L3127+12 ldr r1, [sp, #60] add r2, r2, r3, lsl #2 adds r3, r3, #1 - str r1, [r2, #848] - ldr r2, .L3121+12 - str r3, [r2, #844] -.L3028: + str r1, [r2, #856] + ldr r2, .L3127+12 + str r3, [r2, #852] +.L3034: ldrh r0, [r4] bl decrement_vpc_count ldr r3, [r5, #3472] adds r2, r3, #1 - bne .L3029 + bne .L3035 ldr r3, [sp, #4] - b .L3108 -.L3029: + b .L3114 +.L3035: ldr r2, [sp, #4] cmp r3, r2 - bls .L3005 + bls .L3011 mov r3, r2 -.L3108: +.L3114: str r3, [r5, #3472] -.L3005: +.L3011: ldr r3, [sp, #28] adds r3, r3, #1 - b .L3109 -.L3116: + b .L3115 +.L3122: ldrb r3, [r4, #8] @ zero_extendqisi2 add fp, fp, #1 cmp r3, #1 uxth fp, fp - ldr r3, .L3121 - bne .L3031 - ldrb r2, [r3, #144] @ zero_extendqisi2 - cbz r2, .L3031 + ldr r3, .L3127 + bne .L3037 + ldrb r2, [r3, #148] @ zero_extendqisi2 + cbz r2, .L3037 ldrh r2, [r3, #2390] cmp r2, fp - bne .L3031 + bne .L3037 cmp r10, fp - beq .L3008 -.L3031: + beq .L3014 +.L3037: ldrh r3, [r3, #2388] cmp fp, r3 - bne .L2999 - ldr r2, .L3121 + bne .L3005 + ldr r2, .L3127 movw r0, #65535 movs r3, #0 strh fp, [r4, #2] @ movhi strh r3, [r4, #4] @ movhi ldrh r1, [r2, #2320] -.L3032: +.L3038: uxth r2, r3 cmp r2, r1 - bcs .L3101 + bcs .L3107 ldr r6, [sp, #20] adds r3, r3, #1 ldrh r5, [r6, #2]! cmp r5, r0 str r6, [sp, #20] - beq .L3032 + beq .L3038 strb r2, [r4, #6] - b .L3101 -.L3008: + b .L3107 +.L3014: ldrb r3, [sp, #8] @ zero_extendqisi2 mov r0, r4 ldr r2, [sp, #8] mov r1, r10 strh r10, [r4, #2] @ movhi strb r3, [r4, #6] -.L3110: +.L3116: bl ftl_sb_update_avl_pages -.L3101: +.L3107: movs r0, #0 add sp, sp, #68 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3122: +.L3128: .align 2 -.L3121: +.L3127: .word .LANCHOR0 .word .LANCHOR2 .word .LC150 @@ -19118,90 +19158,90 @@ FtlVpcCheckAndModify: .save {r4, r5, r6, r7, r8, r9, lr} .pad #12 movs r4, #0 - ldr r7, .L3136 - ldr r1, .L3136+4 - ldr r0, .L3136+8 + ldr r7, .L3142 + ldr r1, .L3142+4 + ldr r0, .L3142+8 bl printk - ldr r5, .L3136+12 + ldr r5, .L3142+12 ldrh r2, [r7, #2330] movs r1, #0 ldr r0, [r5, #3364] lsls r2, r2, #1 bl ftl_memset -.L3124: +.L3130: ldr r3, [r7, #2448] cmp r4, r3 - bcs .L3134 + bcs .L3140 mov r0, r4 add r1, sp, #4 movs r2, #0 bl log2phys ldr r0, [sp, #4] adds r3, r0, #1 - beq .L3125 + beq .L3131 ubfx r0, r0, #10, #16 bl P2V_block_in_plane ldr r2, [r5, #3364] ldrh r3, [r2, r0, lsl #1] adds r3, r3, #1 strh r3, [r2, r0, lsl #1] @ movhi -.L3125: +.L3131: adds r4, r4, #1 - b .L3124 -.L3134: - ldr r6, .L3136+12 + b .L3130 +.L3140: + ldr r6, .L3142+12 mov r8, #0 movw r9, #65535 -.L3127: +.L3133: ldrh r3, [r7, #2328] uxth r4, r8 cmp r3, r4 - bls .L3135 + bls .L3141 ldr r3, [r5, #296] ldrh r2, [r3, r4, lsl #1] ldr r3, [r5, #3364] ldrh r3, [r3, r4, lsl #1] cmp r2, r3 - beq .L3128 + beq .L3134 cmp r2, r9 - beq .L3128 + beq .L3134 ldrh r1, [r6, #316] cmp r1, r4 - beq .L3128 + beq .L3134 ldrh r1, [r6, #412] cmp r1, r4 - beq .L3128 + beq .L3134 ldrh r1, [r6, #364] cmp r1, r4 - beq .L3128 - ldr r0, .L3136+16 + beq .L3134 + ldr r0, .L3142+16 mov r1, r4 bl printk ldr r3, [r6, #296] ldrh r2, [r3, r4, lsl #1] - cbnz r2, .L3129 + cbnz r2, .L3135 ldr r2, [r6, #3364] ldrh r2, [r2, r4, lsl #1] strh r2, [r3, r4, lsl #1] @ movhi - b .L3128 -.L3129: + b .L3134 +.L3135: ldr r2, [r6, #3364] mov r0, r4 ldrh r2, [r2, r4, lsl #1] strh r2, [r3, r4, lsl #1] @ movhi bl update_vpc_list -.L3128: +.L3134: add r8, r8, #1 - b .L3127 -.L3135: + b .L3133 +.L3141: bl l2p_flush bl FtlVpcTblFlush add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, r8, r9, pc} -.L3137: +.L3143: .align 2 -.L3136: +.L3142: .word .LANCHOR0 .word .LANCHOR3+216 .word .LC110 @@ -19218,7 +19258,7 @@ FtlGcScanTempBlk: .fnstart @ args = 0, pretend = 0, frame = 72 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L3192 + ldr r3, .L3198 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #76 @@ -19228,35 +19268,35 @@ FtlGcScanTempBlk: mov r4, r0 str r1, [sp, #20] cmp r5, r3 - beq .L3174 - cbnz r5, .L3139 - b .L3140 -.L3174: + beq .L3180 + cbnz r5, .L3145 + b .L3146 +.L3180: movs r5, #0 -.L3139: - ldr r3, .L3192+4 +.L3145: + ldr r3, .L3198+4 ldr r2, [sp, #20] ldrh r3, [r3, #2388] cmp r2, r3 - bne .L3141 -.L3140: + bne .L3147 +.L3146: bl FtlGcPageVarInit -.L3141: - ldr r6, .L3192+8 +.L3147: + ldr r6, .L3198+8 mov r3, #-1 str r3, [sp, #16] movs r3, #0 str r3, [sp, #4] -.L3142: +.L3148: ldrh r1, [r4] movw r3, #65535 movs r2, #0 strb r2, [r4, #8] cmp r1, r3 - beq .L3143 -.L3144: - ldr r10, .L3192+4 -.L3171: + beq .L3149 +.L3150: + ldr r10, .L3198+4 +.L3177: ldr r3, [r6, #3304] movs r2, #0 ldrh lr, [r10, #2320] @@ -19272,13 +19312,13 @@ FtlGcScanTempBlk: str r3, [sp, #24] ldrh r3, [r10, #2400] str r3, [sp, #28] -.L3145: +.L3151: uxth r3, r2 cmp r3, lr - bcs .L3190 + bcs .L3196 ldrh r3, [ip, #2]! cmp r3, r9 - beq .L3146 + beq .L3152 ldr r1, [sp, #8] orr r3, r5, r3, lsl #10 mla r1, fp, r7, r1 @@ -19301,24 +19341,24 @@ FtlGcScanTempBlk: bic r3, r3, #3 add r3, r3, r8 str r3, [r1, #12] -.L3146: +.L3152: adds r2, r2, #1 - b .L3145 -.L3190: + b .L3151 +.L3196: ldr r0, [r6, #3304] mov r1, r7 movs r2, #0 bl FlashReadPages movs r3, #0 -.L3189: +.L3195: str r3, [sp, #8] ldrh r3, [sp, #8] cmp r3, r7 - bcs .L3191 + bcs .L3197 ldr r3, [sp, #8] mov r9, #36 mul r9, r9, r3 - ldr r3, .L3192+8 + ldr r3, .L3198+8 ldr r8, [r3, #3304] add fp, r8, r9 ldr r3, [fp, #4] @@ -19327,28 +19367,28 @@ FtlGcScanTempBlk: bl P2V_plane ldr r8, [r8, r9] ldr r3, [fp, #12] - ldr ip, .L3192+4 - ldr fp, .L3192+8 + ldr ip, .L3198+4 + ldr fp, .L3198+8 mov r2, r0 cmp r8, #0 - bne .L3151 + bne .L3157 ldrh r0, [r3] movw r1, #65535 cmp r0, r1 - bne .L3152 -.L3155: - ldrb r3, [ip, #144] @ zero_extendqisi2 - cbz r3, .L3186 + bne .L3158 +.L3161: + ldrb r3, [ip, #148] @ zero_extendqisi2 + cbz r3, .L3192 movs r3, #1 str r3, [fp, #3468] - b .L3143 -.L3152: + b .L3149 +.L3158: ldr r0, [r3, #8] ldr r1, [r10, #2448] cmp r0, r1 - bls .L3187 - b .L3155 -.L3186: + bls .L3193 + b .L3161 +.L3192: ldrh r1, [r4] ldr r2, [fp, #296] strh r3, [r2, r1, lsl #1] @ movhi @@ -19357,11 +19397,11 @@ FtlGcScanTempBlk: movw r3, #65535 strh r3, [r4] @ movhi strh r3, [fp, #556] @ movhi - b .L3188 -.L3187: - ldrb r2, [r10] @ zero_extendqisi2 + b .L3194 +.L3193: + ldrb r2, [r10, #32] @ zero_extendqisi2 cmp r2, #0 - beq .L3159 + beq .L3165 add r1, sp, #32 mov r2, r8 str r3, [sp, #24] @@ -19370,9 +19410,9 @@ FtlGcScanTempBlk: ldr r2, [sp, #32] ldr r1, [r3, #12] cmp r2, r1 - bne .L3159 + bne .L3165 adds r1, r2, #1 - beq .L3159 + beq .L3165 str r2, [sp, #40] movs r1, #1 ldr r2, [r6, #3336] @@ -19388,17 +19428,17 @@ FtlGcScanTempBlk: add r9, r9, r1 ldr r0, [sp, #44] ldr r3, [sp, #24] -.L3161: +.L3167: cmp r8, lr - beq .L3159 + beq .L3165 ldr r1, [r9, #8] ldr r2, [r0, r8, lsl #2] ldr r1, [r1, r8, lsl #2] cmp r1, r2 - beq .L3162 + beq .L3168 ldrh r1, [r4] ldr r2, [sp, #40] - ldr r0, .L3192+12 + ldr r0, .L3198+12 bl printk ldr r3, [r6, #296] ldrh r2, [r4] @@ -19409,47 +19449,47 @@ FtlGcScanTempBlk: movw r3, #65535 strh r3, [r4] @ movhi strh r3, [r6, #556] @ movhi - b .L3188 -.L3162: + b .L3194 +.L3168: add r8, r8, #1 - b .L3161 -.L3159: + b .L3167 +.L3165: ldr r0, [r3, #12] ldr r2, [r3, #8] ldr r1, [sp, #12] bl FtlGcUpdatePage ldr r3, [sp, #8] adds r3, r3, #1 - b .L3189 -.L3151: + b .L3195 +.L3157: ldr r2, [sp, #12] - ldr r0, .L3192+16 + ldr r0, .L3198+16 ldrh r1, [r4] str ip, [sp, #8] bl printk ldrh r3, [r4] ldr ip, [sp, #8] ldr r2, [ip, #2244] - cbnz r2, .L3165 - ldrb r2, [ip, #144] @ zero_extendqisi2 - cbz r2, .L3166 -.L3165: + cbnz r2, .L3171 + ldrb r2, [ip, #148] @ zero_extendqisi2 + cbz r2, .L3172 +.L3171: ldr r2, [fp, #232] ldrh r2, [r2, r3, lsl #1] cmp r2, #159 - bls .L3167 -.L3166: + bls .L3173 +.L3172: ldr r2, [fp, #3304] ldr r2, [r2, r9] adds r2, r2, #1 - bne .L3168 -.L3167: + bne .L3174 +.L3173: ldr r2, [fp, #3304] add r9, r9, r2 ldr r2, [r9, #4] str r2, [sp, #16] -.L3168: - ldr r2, .L3192+8 +.L3174: + ldr r2, .L3198+8 movs r1, #0 ldr r2, [r2, #296] strh r1, [r2, r3, lsl #1] @ movhi @@ -19457,11 +19497,11 @@ FtlGcScanTempBlk: bl INSERT_FREE_LIST movw r3, #65535 strh r3, [r4] @ movhi -.L3188: +.L3194: bl FtlGcPageVarInit movs r5, #0 - b .L3142 -.L3191: + b .L3148 +.L3197: ldr r3, [sp, #4] adds r5, r5, #1 ldr r2, [sp, #20] @@ -19469,28 +19509,28 @@ FtlGcScanTempBlk: uxth r5, r5 cmp r3, r2 str r3, [sp, #4] - bcs .L3170 -.L3172: + bcs .L3176 +.L3178: ldrh r3, [r10, #2388] cmp r3, r5 - bhi .L3171 + bhi .L3177 movs r2, #0 - b .L3143 -.L3170: - ldr r2, .L3192 + b .L3149 +.L3176: + ldr r2, .L3198 movw r1, #65535 ldrh r3, [r2, #3448] cmp r3, r1 - beq .L3172 + beq .L3178 ldr r1, [sp, #4] add r3, r3, r1 strh r3, [r2, #3448] @ movhi ldrh r3, [r10, #2388] cmp r3, r5 - bls .L3172 - b .L3173 -.L3143: - ldr r3, .L3192 + bls .L3178 + b .L3179 +.L3149: + ldr r3, .L3198 movw r1, #65535 strh r5, [r4, #2] @ movhi mov r0, r4 @@ -19498,14 +19538,14 @@ FtlGcScanTempBlk: strh r1, [r3, #3448] @ movhi mov r1, r5 bl ftl_sb_update_avl_pages -.L3173: +.L3179: ldr r0, [sp, #16] add sp, sp, #76 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3193: +.L3199: .align 2 -.L3192: +.L3198: .word .LANCHOR1 .word .LANCHOR0 .word .LANCHOR2 @@ -19526,23 +19566,23 @@ FtlReadRefresh: .save {r4, r5, r6, r7, r8, r9, lr} .pad #44 sub sp, sp, #44 - ldr r5, .L3210 - ldr r4, .L3210+4 + ldr r5, .L3216 + ldr r4, .L3216+4 ldr r9, [r5, #688] mov r6, r5 cmp r9, #0 - beq .L3195 + beq .L3201 ldr r2, [r5, #692] ldr r3, [r4, #2448] cmp r2, r3 - bcs .L3196 + bcs .L3202 mov r5, #2048 mov r7, r6 -.L3201: +.L3207: ldr r0, [r6, #692] ldr r3, [r4, #2448] cmp r0, r3 - bcs .L3200 + bcs .L3206 mov r1, sp movs r2, #0 bl log2phys @@ -19551,7 +19591,7 @@ FtlReadRefresh: str r3, [r7, #692] ldr r2, [sp] adds r1, r2, #1 - beq .L3199 + beq .L3205 add r0, sp, #40 str r2, [sp, #8] movs r1, #1 @@ -19563,26 +19603,26 @@ FtlReadRefresh: bl FlashReadPages ldr r3, [sp, #4] cmp r3, #256 - bne .L3200 + bne .L3206 ldr r0, [sp] ubfx r0, r0, #10, #16 bl P2V_block_in_plane bl FtlGcRefreshBlock -.L3200: +.L3206: mov r0, #-1 - b .L3203 -.L3199: + b .L3209 +.L3205: subs r5, r5, #1 - bne .L3201 - b .L3200 -.L3196: + bne .L3207 + b .L3206 +.L3202: ldr r3, [r5, #476] movs r0, #0 str r0, [r5, #688] str r0, [r5, #692] str r3, [r5, #684] - b .L3203 -.L3195: + b .L3209 +.L3201: ldr r8, [r5, #476] ldr r1, [r5, #528] ldr r7, [r5, #684] @@ -19594,7 +19634,7 @@ FtlReadRefresh: movhi r4, #31 movls r4, #63 cmp r7, r2 - bhi .L3205 + bhi .L3211 mov r0, #1000 lsrs r1, r1, #10 adds r1, r1, #1 @@ -19602,14 +19642,14 @@ FtlReadRefresh: bl __aeabi_uidiv add r0, r0, r7 cmp r0, r8 - bcc .L3205 + bcc .L3211 ldrh r3, [r5, #268] ands r0, r4, r3 - bne .L3207 + bne .L3213 ldr r2, [r5, #708] cmp r2, r3 - beq .L3203 -.L3205: + beq .L3209 +.L3211: ldrh r3, [r6, #268] movs r0, #0 str r8, [r6, #684] @@ -19617,16 +19657,16 @@ FtlReadRefresh: str r3, [r6, #708] movs r3, #1 str r3, [r6, #688] - b .L3203 -.L3207: + b .L3209 +.L3213: mov r0, r9 -.L3203: +.L3209: add sp, sp, #44 @ sp needed pop {r4, r5, r6, r7, r8, r9, pc} -.L3211: +.L3217: .align 2 -.L3210: +.L3216: .word .LANCHOR2 .word .LANCHOR0 .fnend @@ -19643,25 +19683,25 @@ FtlGcFreeTempBlock: push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 - ldr r5, .L3250 - ldr r6, .L3250+4 + ldr r5, .L3256 + ldr r6, .L3256+4 ldr r2, [r5, #224] mov r4, r5 ldrh r1, [r6, #2388] cmp r2, #0 - bne .L3248 + bne .L3254 ldrh r5, [r5, #412] movw r7, #65535 cmp r5, r7 - bne .L3215 -.L3224: + bne .L3221 +.L3230: ldrh r2, [r4, #412] movw r3, #65535 movs r7, #0 - ldr r5, .L3250 + ldr r5, .L3256 cmp r2, r3 str r7, [r4, #3468] - beq .L3248 + beq .L3254 bl FtlCacheWriteBack ldrb r0, [r5, #419] @ zero_extendqisi2 ldrh r3, [r6, #2388] @@ -19674,40 +19714,40 @@ FtlGcFreeTempBlock: ldrh r2, [r5, #1172] add r3, r3, r2 str r3, [r5, #496] - b .L3225 -.L3215: - cbz r0, .L3218 - ldr r3, .L3250+8 + b .L3231 +.L3221: + cbz r0, .L3224 + ldr r3, .L3256+8 ldrh r0, [r3, #3448] cmp r0, r7 - beq .L3219 -.L3220: + beq .L3225 +.L3226: movs r1, #2 - b .L3218 -.L3219: + b .L3224 +.L3225: strh r2, [r3, #3448] @ movhi ldrh r3, [r4, #312] cmp r3, #17 - bhi .L3220 -.L3218: - ldr r7, .L3250 + bhi .L3226 +.L3224: + ldr r7, .L3256 add r0, r7, #412 bl FtlGcScanTempBlk str r0, [sp, #4] adds r0, r0, #1 - beq .L3221 + beq .L3227 ldr r2, [r7, #232] ldrh r3, [r2, r5, lsl #1] cmp r3, #4 - bls .L3222 + bls .L3228 subs r3, r3, #5 movs r0, #1 strh r3, [r2, r5, lsl #1] @ movhi bl FtlEctTblFlush -.L3222: +.L3228: ldr r3, [r4, #3468] - ldr r2, .L3250 - cbnz r3, .L3223 + ldr r2, .L3256 + cbnz r3, .L3229 ldr r0, [sp, #4] ldr r3, [r2, #704] ubfx r0, r0, #10, #16 @@ -19715,42 +19755,42 @@ FtlGcFreeTempBlock: str r3, [r2, #704] bl FtlBbmMapBadBlock bl FtlBbmTblFlush -.L3223: +.L3229: movs r3, #0 str r3, [r4, #3468] - b .L3235 -.L3221: - ldr r3, .L3250+8 + b .L3241 +.L3227: + ldr r3, .L3256+8 ldrh r2, [r3, #3448] movw r3, #65535 cmp r2, r3 - bne .L3235 - b .L3224 -.L3228: + bne .L3241 + b .L3230 +.L3234: ldr r3, [r9, #4] cmp r0, r3 - bne .L3246 -.L3227: + bne .L3252 +.L3233: adds r7, r7, #1 -.L3225: +.L3231: ldrh r3, [r4, #1172] uxth r8, r7 cmp r3, r8 - bls .L3249 + bls .L3255 mul r8, r10, r8 ldr fp, [r5, #1168] ldr r3, [r6, #2448] add r9, fp, r8 ldr r0, [r9, #8] cmp r0, r3 - bcs .L3246 + bcs .L3252 add r1, sp, #4 movs r2, #0 bl log2phys ldr r3, [fp, r8] ldr r0, [sp, #4] cmp r0, r3 - bne .L3228 + bne .L3234 ubfx r0, r0, #10, #16 bl P2V_block_in_plane add r1, r9, #4 @@ -19759,31 +19799,31 @@ FtlGcFreeTempBlock: ldr r0, [r9, #8] bl log2phys mov r0, r8 - b .L3247 -.L3246: + b .L3253 +.L3252: ldrh r0, [r5, #412] -.L3247: +.L3253: bl decrement_vpc_count - b .L3227 -.L3249: + b .L3233 +.L3255: movw r0, #65535 bl decrement_vpc_count - ldrb r3, [r6, #144] @ zero_extendqisi2 - cbz r3, .L3230 - ldr r3, .L3250 - ldr r0, .L3250+12 + ldrb r3, [r6, #148] @ zero_extendqisi2 + cbz r3, .L3236 + ldr r3, .L3256 + ldr r0, .L3256+12 ldrh r1, [r3, #412] bl printk -.L3230: +.L3236: ldrh r0, [r4, #412] ldr r3, [r4, #296] ldrh r3, [r3, r0, lsl #1] - cbz r3, .L3231 + cbz r3, .L3237 bl INSERT_DATA_LIST - b .L3232 -.L3231: + b .L3238 +.L3237: bl INSERT_FREE_LIST -.L3232: +.L3238: movw r8, #65535 movs r5, #0 strh r8, [r4, #412] @ movhi @@ -19792,46 +19832,46 @@ FtlGcFreeTempBlock: bl l2p_flush bl FtlVpcTblFlush ldr r3, [r6, #2244] - ldr r7, .L3250 + ldr r7, .L3256 strh r8, [r4, #556] @ movhi - cbz r3, .L3233 + cbz r3, .L3239 ldr r3, [r7, #532] cmp r3, #39 - bhi .L3233 + bhi .L3239 ldrh r3, [r7, #536] ldrh r2, [r7, #312] cmp r2, r3 - bcs .L3248 + bcs .L3254 lsls r3, r3, #1 strh r3, [r7, #1120] @ movhi - b .L3248 -.L3233: + b .L3254 +.L3239: ldrh r3, [r4, #536] ldrh r1, [r4, #312] - ldr r2, .L3250 + ldr r2, .L3256 add r0, r3, r3, lsl #1 cmp r1, r0, asr #2 - ble .L3248 - ldrb r0, [r6, #144] @ zero_extendqisi2 - cbz r0, .L3234 + ble .L3254 + ldrb r0, [r6, #148] @ zero_extendqisi2 + cbz r0, .L3240 subs r3, r3, #2 strh r3, [r2, #1120] @ movhi -.L3248: +.L3254: movs r0, #0 - b .L3214 -.L3234: + b .L3220 +.L3240: movs r3, #20 strh r3, [r2, #1120] @ movhi - b .L3214 -.L3235: + b .L3220 +.L3241: movs r0, #1 -.L3214: +.L3220: add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3251: +.L3257: .align 2 -.L3250: +.L3256: .word .LANCHOR2 .word .LANCHOR0 .word .LANCHOR1 @@ -19849,26 +19889,26 @@ FtlGcPageRecovery: @ frame_needed = 0, uses_anonymous_args = 0 push {r3, r4, r5, lr} .save {r3, r4, r5, lr} - ldr r5, .L3254 - ldr r4, .L3254+4 + ldr r5, .L3260 + ldr r4, .L3260+4 ldrh r1, [r5, #2388] add r0, r4, #412 bl FtlGcScanTempBlk ldrh r2, [r4, #414] ldrh r3, [r5, #2388] cmp r2, r3 - bcc .L3252 + bcc .L3258 add r0, r4, #3408 bl FtlMapBlkWriteDumpData movs r0, #0 bl FtlGcFreeTempBlock movs r3, #0 str r3, [r4, #3468] -.L3252: +.L3258: pop {r3, r4, r5, pc} -.L3255: +.L3261: .align 2 -.L3254: +.L3260: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -19885,12 +19925,12 @@ FtlPowerLostRecovery: push {r4, r5, r6, lr} .save {r4, r5, r6, lr} movs r5, #0 - ldr r4, .L3257 - ldr r3, .L3257+4 + ldr r4, .L3263 + ldr r3, .L3263+4 add r6, r4, #316 add r4, r4, #364 mov r0, r6 - str r5, [r3, #844] + str r5, [r3, #852] bl FtlRecoverySuperblock mov r0, r6 bl FtlSlcSuperblockCheck @@ -19903,9 +19943,9 @@ FtlPowerLostRecovery: bl decrement_vpc_count mov r0, r5 pop {r4, r5, r6, pc} -.L3258: +.L3264: .align 2 -.L3257: +.L3263: .word .LANCHOR2 .word .LANCHOR5 .fnend @@ -19922,26 +19962,26 @@ FtlSysBlkInit: push {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} movs r3, #0 - ldr r5, .L3276 + ldr r5, .L3282 movw r7, #65535 - ldr r6, .L3276+4 - ldr r4, .L3276+8 + ldr r6, .L3282+4 + ldr r4, .L3282+8 ldrh r0, [r5, #2324] - strh r3, [r6, #842] @ movhi - strh r7, [r6, #840] @ movhi + strh r3, [r6, #850] @ movhi + strh r7, [r6, #848] @ movhi bl FtlFreeSysBlkQueueInit bl FtlScanSysBlk ldrh r3, [r4, #540] cmp r3, r7 - bne .L3260 -.L3262: + bne .L3266 +.L3268: mov r7, #-1 - b .L3261 -.L3260: + b .L3267 +.L3266: bl FtlLoadSysInfo mov r7, r0 cmp r0, #0 - bne .L3262 + bne .L3268 bl FtlLoadMapInfo bl FtlLoadVonderInfo bl Ftl_load_ext_data @@ -19955,27 +19995,27 @@ FtlSysBlkInit: ldr r2, [r4, #460] movs r0, #12 mov r3, r7 -.L3263: +.L3269: cmp r3, r1 - bge .L3268 + bge .L3274 mla lr, r0, r3, r2 ldr lr, [lr, #4] cmp lr, #0 - bge .L3264 -.L3268: + bge .L3270 +.L3274: ldrh r2, [r4, #268] cmp r3, r1 add r2, r2, #1 strh r2, [r4, #268] @ movhi - bge .L3275 - b .L3265 -.L3264: + bge .L3281 + b .L3271 +.L3270: adds r3, r3, #1 - b .L3263 -.L3275: - ldrh r3, [r6, #842] - cbz r3, .L3269 -.L3265: + b .L3269 +.L3281: + ldrh r3, [r6, #850] + cbz r3, .L3275 +.L3271: ldrh r1, [r4, #316] ldr r2, [r4, #296] ldrh r0, [r4, #320] @@ -20003,16 +20043,16 @@ FtlSysBlkInit: bl l2p_flush bl FtlVpcTblFlush bl FtlVpcTblFlush -.L3269: +.L3275: ldrh r0, [r4, #316] movw r3, #65535 - ldr r6, .L3276+8 + ldr r6, .L3282+8 cmp r0, r3 - beq .L3270 + beq .L3276 ldrh r3, [r6, #320] - cbnz r3, .L3270 + cbnz r3, .L3276 ldrh r3, [r6, #368] - cbnz r3, .L3270 + cbnz r3, .L3276 bl FtlGcRefreshOpenBlock ldrh r0, [r6, #364] bl FtlGcRefreshOpenBlock @@ -20021,20 +20061,20 @@ FtlSysBlkInit: bl allocate_new_data_superblock add r0, r6, #364 bl allocate_new_data_superblock -.L3270: - ldrb r3, [r5] @ zero_extendqisi2 - cbnz r3, .L3271 +.L3276: + ldrb r3, [r5, #32] @ zero_extendqisi2 + cbnz r3, .L3277 ldrh r3, [r4, #268] lsls r3, r3, #27 - bne .L3261 -.L3271: + bne .L3267 +.L3277: bl FtlVpcCheckAndModify -.L3261: +.L3267: mov r0, r7 pop {r3, r4, r5, r6, r7, pc} -.L3277: +.L3283: .align 2 -.L3276: +.L3282: .word .LANCHOR0 .word .LANCHOR5 .word .LANCHOR2 @@ -20052,11 +20092,11 @@ FtlLowFormat: push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 - ldr r4, .L3312 + ldr r4, .L3318 ldr r6, [r4, #224] cmp r6, #0 - bne .L3280 - ldr r5, .L3312+4 + bne .L3286 + ldr r5, .L3318+4 mov r1, r6 ldr r0, [r4, #3392] ldrh r2, [r5, #2424] @@ -20072,33 +20112,33 @@ FtlLowFormat: str r6, [r4, #512] bl FtlFreeSysBlkQueueInit bl FtlLoadBbt - cbz r0, .L3281 + cbz r0, .L3287 bl FtlMakeBbt -.L3281: - ldr r0, .L3312+8 +.L3287: + ldr r0, .L3318+8 movs r2, #0 -.L3282: +.L3288: ldrh r1, [r5, #2394] uxth r3, r2 adds r2, r2, #1 cmp r3, r1, lsl #7 - bge .L3309 + bge .L3315 ldr r6, [r4, #3332] mvns r1, r3 orr r1, r3, r1, lsl #16 str r1, [r6, r3, lsl #2] ldr r1, [r4, #3336] str r0, [r1, r3, lsl #2] - b .L3282 -.L3309: - ldr r3, .L3312+4 + b .L3288 +.L3315: + ldr r3, .L3318+4 movs r6, #0 ldrh r7, [r3, #2328] -.L3284: +.L3290: ldrh r3, [r5, #2330] - ldr r8, .L3312+4 + ldr r8, .L3318+4 cmp r3, r7 - bls .L3310 + bls .L3316 mov r0, r7 movs r1, #1 bl FtlLowFormatEraseBlock @@ -20106,12 +20146,12 @@ FtlLowFormat: uxth r7, r7 add r0, r0, r6 uxth r6, r0 - b .L3284 -.L3310: + b .L3290 +.L3316: ldrh r1, [r8, #2320] subs r3, r6, #3 cmp r3, r1, lsl #1 - blt .L3286 + blt .L3292 mov r0, r6 movs r6, #0 bl __aeabi_uidiv @@ -20122,10 +20162,10 @@ FtlLowFormat: ldrh r0, [r8, #2324] bl FtlFreeSysBlkQueueInit ldrh r7, [r8, #2328] -.L3287: +.L3293: ldrh r3, [r5, #2330] cmp r3, r7 - bls .L3286 + bls .L3292 mov r0, r7 movs r1, #1 bl FtlLowFormatEraseBlock @@ -20133,23 +20173,23 @@ FtlLowFormat: uxth r7, r7 add r0, r0, r6 uxth r6, r0 - b .L3287 -.L3286: + b .L3293 +.L3292: mov r8, #0 mov r7, r8 -.L3289: +.L3295: ldrh r3, [r5, #2328] uxth r0, r8 - ldr fp, .L3312+4 + ldr fp, .L3318+4 add r8, r8, #1 cmp r3, r0 - bls .L3311 + bls .L3317 movs r1, #0 bl FtlLowFormatEraseBlock add r0, r0, r7 uxth r7, r0 - b .L3289 -.L3311: + b .L3295 +.L3317: ldr r2, [fp, #2332] ldrh r3, [fp, #2330] ldrh r8, [fp, #2320] @@ -20167,19 +20207,19 @@ FtlLowFormat: ldr r2, [sp, #4] mul r3, r3, r8 cmp r7, r3 - ble .L3291 + ble .L3297 subs r0, r2, r7 mov r1, r8 bl __aeabi_uidiv - ldr r3, .L3312 + ldr r3, .L3318 str r0, [fp, #2448] lsrs r0, r0, #5 adds r0, r0, #24 strh r0, [r3, #536] @ movhi -.L3291: +.L3297: ldr r3, [r5, #2244] cmp r3, #1 - bne .L3292 + bne .L3298 mov r0, r7 mov r1, r8 bl __aeabi_uidiv @@ -20187,9 +20227,9 @@ FtlLowFormat: uxtah r0, fp, r0 add fp, fp, r0, asr #2 strh fp, [r4, #536] @ movhi -.L3292: - ldrb r3, [r5, #144] @ zero_extendqisi2 - cbz r3, .L3293 +.L3298: + ldrb r3, [r5, #148] @ zero_extendqisi2 + cbz r3, .L3299 mov r0, r7 mov r1, r8 bl __aeabi_uidiv @@ -20197,9 +20237,9 @@ FtlLowFormat: uxtah r0, fp, r0 add fp, fp, r0, asr #2 strh fp, [r4, #536] @ movhi -.L3293: +.L3299: ldrh r3, [r5, #2382] - cbz r3, .L3295 + cbz r3, .L3301 ldrh r2, [r4, #536] add r2, r2, r3, lsr #1 strh r2, [r4, #536] @ movhi @@ -20207,20 +20247,20 @@ FtlLowFormat: cmp r2, r7 itttt gt addgt r3, r3, #32 - ldrgt r2, .L3312+4 + ldrgt r2, .L3318+4 addgt r3, r3, r9 strgt r10, [r2, #2448] itt gt - ldrgt r2, .L3312 + ldrgt r2, .L3318 strhgt r3, [r2, #536] @ movhi -.L3295: +.L3301: ldrh r2, [r4, #536] ldr r3, [r5, #2448] subs r3, r3, r2 ldrh r2, [r5, #2388] mul r3, r8, r3 - ldr r8, .L3312+20 - str r3, [r8, #1284] + ldr r8, .L3318+20 + str r3, [r8, #1292] muls r3, r2, r3 ldrh r2, [r5, #2394] str r3, [r5, #2448] @@ -20232,11 +20272,11 @@ FtlLowFormat: ldrh r3, [r5, #2402] add r3, r3, r2, lsr #3 cmp r1, r3 - bls .L3297 - ldr r0, .L3312+12 + bls .L3303 + ldr r0, .L3318+12 lsrs r2, r2, #5 bl printk -.L3297: +.L3303: ldrh r2, [r5, #2330] movs r1, #0 ldr r0, [r4, #296] @@ -20259,21 +20299,21 @@ FtlLowFormat: strh r6, [r4, #556] @ movhi strb r3, [r4, #324] bl ftl_memset - ldr r7, .L3312 -.L3298: - ldr r5, .L3312 + ldr r7, .L3318 +.L3304: + ldr r5, .L3318 add r0, r5, #316 bl make_superblock ldrb r3, [r4, #323] @ zero_extendqisi2 ldrh r2, [r4, #316] - cbnz r3, .L3299 + cbnz r3, .L3305 ldr r3, [r7, #296] strh r6, [r3, r2, lsl #1] @ movhi ldrh r3, [r7, #316] adds r3, r3, #1 strh r3, [r7, #316] @ movhi - b .L3298 -.L3299: + b .L3304 +.L3305: ldr r3, [r5, #508] movw r7, #65535 ldrh r1, [r5, #320] @@ -20290,20 +20330,20 @@ FtlLowFormat: strh r3, [r5, #364] @ movhi movs r3, #1 strb r3, [r5, #372] -.L3300: - ldr r6, .L3312 +.L3306: + ldr r6, .L3318 add r0, r6, #364 bl make_superblock ldrb r3, [r4, #371] @ zero_extendqisi2 ldrh r2, [r4, #364] - cbnz r3, .L3301 + cbnz r3, .L3307 ldr r3, [r5, #296] strh r7, [r3, r2, lsl #1] @ movhi ldrh r3, [r5, #364] adds r3, r3, #1 strh r3, [r5, #364] @ movhi - b .L3300 -.L3301: + b .L3306 +.L3307: ldr r3, [r6, #508] movw r4, #65535 ldrh r1, [r6, #368] @@ -20316,7 +20356,7 @@ FtlLowFormat: bl FtlFreeSysBlkQueueOut movs r3, #0 strh r3, [r6, #542] @ movhi - ldr r3, [r8, #1284] + ldr r3, [r8, #1292] strh r4, [r6, #544] @ movhi strh r3, [r6, #546] @ movhi ldr r3, [r6, #508] @@ -20326,18 +20366,18 @@ FtlLowFormat: strh r0, [r6, #540] @ movhi bl FtlVpcTblFlush bl FtlSysBlkInit - cbnz r0, .L3280 - ldr r3, .L3312+16 + cbnz r0, .L3286 + ldr r3, .L3318+16 movs r2, #1 str r2, [r3, #504] -.L3280: +.L3286: movs r0, #0 add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3313: +.L3319: .align 2 -.L3312: +.L3318: .word .LANCHOR2 .word .LANCHOR0 .word 168778952 @@ -20358,25 +20398,25 @@ FtlReInitForSDUpdata: push {r0, r1, r2, r3, r4, r5, r6, lr} .save {r4, r5, r6, lr} .pad #16 - ldr r4, .L3342 - ldrb r3, [r4, #144] @ zero_extendqisi2 - cbz r3, .L3315 -.L3317: + ldr r4, .L3348 + ldrb r3, [r4, #148] @ zero_extendqisi2 + cbz r3, .L3321 +.L3323: movs r0, #0 - b .L3316 -.L3315: - ldr r5, .L3342+4 + b .L3322 +.L3321: + ldr r5, .L3348+4 ldr r0, [r5, #1180] bl FlashInit cmp r0, #0 - bne .L3317 + bne .L3323 bl FlashLoadFactorBbt - cbz r0, .L3318 + cbz r0, .L3324 bl FlashMakeFactorBbt -.L3318: - ldr r0, [r5, #1212] +.L3324: + ldr r0, [r5, #1220] bl FlashReadIdbDataRaw - cbz r0, .L3319 + cbz r0, .L3325 movs r1, #0 movs r2, #16 mov r0, sp @@ -20385,7 +20425,7 @@ FtlReInitForSDUpdata: movs r3, #0 mov r2, r3 ldr r1, [sp] -.L3320: +.L3326: lsl r5, r6, r2 adds r0, r3, #1 tst r5, r1 @@ -20393,12 +20433,12 @@ FtlReInitForSDUpdata: it ne movne r3, r0 cmp r2, #16 - bne .L3320 + bne .L3326 cmp r3, #6 - bls .L3338 + bls .L3344 movs r2, #0 movs r6, #1 -.L3323: +.L3329: lsl r5, r6, r2 adds r0, r3, #1 tst r5, r1 @@ -20406,59 +20446,59 @@ FtlReInitForSDUpdata: it ne movne r3, r0 cmp r2, #24 - bne .L3323 + bne .L3329 cmp r3, #17 - bhi .L3324 -.L3338: - strb r2, [r4, #1] - b .L3322 -.L3324: + bhi .L3330 +.L3344: + strb r2, [r4, #33] + b .L3328 +.L3330: movs r3, #36 - strb r3, [r4, #1] -.L3322: - ldrb r3, [r4, #1] @ zero_extendqisi2 - strh r3, [r4, #142] @ movhi -.L3319: - ldr r1, .L3342+8 - ldr r0, .L3342+12 + strb r3, [r4, #33] +.L3328: + ldrb r3, [r4, #33] @ zero_extendqisi2 + strh r3, [r4, #146] @ movhi +.L3325: + ldr r1, .L3348+8 + ldr r0, .L3348+12 bl printk - ldr r0, .L3342+16 + ldr r0, .L3348+16 bl FtlConstantsInit bl FtlVariablesInit ldrh r0, [r4, #2324] bl FtlFreeSysBlkQueueInit movs r4, #1 -.L3325: +.L3331: bl FtlLoadBbt - cbz r0, .L3326 -.L3340: + cbz r0, .L3332 +.L3346: bl FtlLowFormat cmp r4, #3 - bhi .L3341 + bhi .L3347 adds r4, r4, #1 - b .L3325 -.L3341: + b .L3331 +.L3347: mov r0, #-1 - b .L3316 -.L3326: + b .L3322 +.L3332: bl FtlSysBlkInit cmp r0, #0 - bne .L3340 - ldr r3, .L3342+20 + bne .L3346 + ldr r3, .L3348+20 movs r2, #1 str r2, [r3, #504] -.L3316: +.L3322: add sp, sp, #16 @ sp needed pop {r4, r5, r6, pc} -.L3343: +.L3349: .align 2 -.L3342: +.L3348: .word .LANCHOR0 .word .LANCHOR4 .word .LC77 .word .LC76 - .word .LANCHOR0+116 + .word .LANCHOR0+120 .word .LANCHOR1 .fnend .size FtlReInitForSDUpdata, .-FtlReInitForSDUpdata @@ -20473,37 +20513,37 @@ Ftl_gc_temp_data_write_back: @ frame_needed = 0, uses_anonymous_args = 0 push {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} - ldr r5, .L3360 + ldr r5, .L3366 ldr r3, [r5, #224] - cbz r3, .L3345 -.L3348: + cbz r3, .L3351 +.L3354: movs r0, #0 pop {r4, r5, r6, r7, r8, pc} -.L3345: - ldr r3, .L3360+4 - ldrb r3, [r3, #144] @ zero_extendqisi2 - cbz r3, .L3347 +.L3351: + ldr r3, .L3366+4 + ldrb r3, [r3, #148] @ zero_extendqisi2 + cbz r3, .L3353 ldr r3, [r5, #1136] lsls r3, r3, #31 - bpl .L3347 + bpl .L3353 ldrh r3, [r5, #416] cmp r3, #0 - bne .L3348 -.L3347: + bne .L3354 +.L3353: movs r2, #0 ldr r0, [r5, #3308] ldr r1, [r5, #1136] movs r6, #0 mov r3, r2 - ldr r7, .L3360 + ldr r7, .L3366 bl FlashProgPages mov r8, #36 -.L3349: +.L3355: ldr r1, [r5, #1136] uxth r3, r6 - ldr r4, .L3360 + ldr r4, .L3366 cmp r3, r1 - bcs .L3359 + bcs .L3365 mul r3, r8, r3 ldr r0, [r7, #3308] adds r6, r6, #1 @@ -20511,7 +20551,7 @@ Ftl_gc_temp_data_write_back: ldr r0, [r0, r3] ldr r2, [r1, #12] cmp r0, #-1 - bne .L3350 + bne .L3356 ldrh r1, [r4, #412] movs r5, #0 ldr r2, [r4, #296] @@ -20527,29 +20567,29 @@ Ftl_gc_temp_data_write_back: bl FtlBbmMapBadBlock bl FtlBbmTblFlush bl FtlGcPageVarInit - b .L3358 -.L3350: + b .L3364 +.L3356: ldr r0, [r2, #12] ldr r1, [r1, #4] ldr r2, [r2, #8] bl FtlGcUpdatePage - b .L3349 -.L3359: + b .L3355 +.L3365: ldr r0, [r4, #3308] bl FtlGcBufFree movs r3, #0 str r3, [r4, #1136] ldrh r3, [r4, #416] cmp r3, #0 - bne .L3348 + bne .L3354 movs r0, #1 bl FtlGcFreeTempBlock -.L3358: +.L3364: movs r0, #1 pop {r4, r5, r6, r7, r8, pc} -.L3361: +.L3367: .align 2 -.L3360: +.L3366: .word .LANCHOR2 .word .LANCHOR0 .fnend @@ -20566,18 +20606,18 @@ Ftl_get_new_temp_ppa: push {r3, r4, r5, lr} .save {r3, r4, r5, lr} movw r3, #65535 - ldr r4, .L3365 + ldr r4, .L3371 ldrh r2, [r4, #412] cmp r2, r3 - beq .L3363 + beq .L3369 ldrh r3, [r4, #416] - cbnz r3, .L3364 -.L3363: + cbnz r3, .L3370 +.L3369: bl FtlCacheWriteBack movs r0, #0 movs r5, #0 bl FtlGcFreeTempBlock - ldr r0, .L3365+4 + ldr r0, .L3371+4 strb r5, [r4, #420] bl allocate_data_superblock strh r5, [r4, #1164] @ movhi @@ -20586,13 +20626,13 @@ Ftl_get_new_temp_ppa: mov r0, r5 bl FtlEctTblFlush bl FtlVpcTblFlush -.L3364: - ldr r0, .L3365+4 +.L3370: + ldr r0, .L3371+4 pop {r3, r4, r5, lr} b get_new_active_ppa -.L3366: +.L3372: .align 2 -.L3365: +.L3371: .word .LANCHOR2 .word .LANCHOR2+412 .fnend @@ -20606,7 +20646,7 @@ ftl_do_gc: .fnstart @ args = 0, pretend = 0, frame = 32 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L3540 + ldr r3, .L3546 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r8, r0 @@ -20616,45 +20656,45 @@ ftl_do_gc: mov r6, r1 mov r7, r3 cmp r0, #0 - bne .L3467 - ldr r1, .L3540+4 + bne .L3473 + ldr r1, .L3546+4 ldr r4, [r1, #504] cmp r4, #1 - bne .L3527 + bne .L3533 ldr r2, [r3, #3280] cmp r2, #0 - bne .L3527 + bne .L3533 ldrh r0, [r3, #304] cmp r0, #47 - bls .L3470 + bls .L3476 ldrh r1, [r1, #3448] movw r2, #65535 cmp r1, r2 - bne .L3369 -.L3372: + bne .L3375 +.L3378: ldrh r4, [r7, #1176] movw r1, #65535 - ldr r3, .L3540 + ldr r3, .L3546 cmp r4, r1 - bne .L3370 - b .L3371 -.L3369: + bne .L3376 + b .L3377 +.L3375: ldrh r3, [r3, #412] cmp r3, r2 - beq .L3372 + beq .L3378 mov r0, r4 bl FtlGcFreeTempBlock cmp r0, #0 - beq .L3372 + beq .L3378 mov r0, r4 - b .L3527 -.L3370: + b .L3533 +.L3376: ldrh r2, [r3, #1174] cmp r2, r1 - bne .L3371 + bne .L3377 ldrh r0, [r3, #1178] cmp r0, r2 - beq .L3371 + beq .L3377 ldrh r1, [r3, #1180] cmp r1, r2 itttt ne @@ -20662,75 +20702,75 @@ ftl_do_gc: strhne r0, [r3, #1176] @ movhi strhne r1, [r3, #1178] @ movhi strhne r2, [r3, #1180] @ movhi -.L3371: +.L3377: ldr r4, [r7, #1124] cmp r8, #1 add r4, r4, #1 add r4, r4, r8, lsl #7 str r4, [r7, #1124] - bne .L3383 - ldr r3, .L3540+8 + bne .L3389 + ldr r3, .L3546+8 ldr r2, [r3, #2244] mov r10, r3 - cbnz r2, .L3374 - ldrb r3, [r3, #144] @ zero_extendqisi2 + cbnz r2, .L3380 + ldrb r3, [r3, #148] @ zero_extendqisi2 cmp r3, #0 - beq .L3383 -.L3374: + beq .L3389 +.L3380: ldr r3, [r7, #532] - ldr r5, .L3540 + ldr r5, .L3546 cmp r3, #39 - bhi .L3383 - ldr r9, .L3540+12 - ldrh r3, [r9, #976] + bhi .L3389 + ldr r9, .L3546+12 + ldrh r3, [r9, #984] add r4, r4, r3 str r4, [r5, #1124] bl FtlGcReFreshBadBlk ldrh r3, [r5, #556] movw r2, #65535 cmp r3, r2 - bne .L3383 + bne .L3389 ldrh r2, [r5, #1174] cmp r2, r3 - bne .L3383 + bne .L3389 ldr r3, [r5, #1124] cmp r3, #1024 - bhi .L3375 + bhi .L3381 ldrh r3, [r5, #312] cmp r3, #63 - bhi .L3383 -.L3375: + bhi .L3389 +.L3381: ldrh r3, [r7, #1122] movs r0, #0 ldrh r4, [r7, #312] adds r3, r3, #64 - ldr r2, .L3540+12 + ldr r2, .L3546+12 cmp r4, r3 - strh r0, [r9, #976] @ movhi - ldr r1, .L3540 - bgt .L3383 + strh r0, [r9, #984] @ movhi + ldr r1, .L3546 + bgt .L3389 ldr r3, [r1, #532] str r0, [r1, #1124] - cbnz r3, .L3376 + cbnz r3, .L3382 movs r3, #6 - b .L3528 -.L3376: + b .L3534 +.L3382: cmp r3, #5 - bhi .L3377 + bhi .L3383 movs r3, #18 -.L3528: - strh r3, [r2, #976] @ movhi -.L3377: +.L3534: + strh r3, [r2, #984] @ movhi +.L3383: movs r0, #32 bl List_get_gc_head_node movw ip, #65535 uxth r2, r0 cmp r2, ip - beq .L3382 + beq .L3388 ldrh r0, [r7, #1128] - ldr r5, .L3540 + ldr r5, .L3546 cmp r0, #0 - beq .L3379 + beq .L3385 ldrh r4, [r10, #2390] ldrh r3, [r10, #2320] ldr fp, [r5, #296] @@ -20738,7 +20778,7 @@ ftl_do_gc: ldrh r1, [fp, r2, lsl #1] adds r3, r3, #1 cmp r1, r3 - bgt .L3382 + bgt .L3388 adds r1, r0, #1 str ip, [sp, #20] str r2, [sp, #16] @@ -20753,48 +20793,48 @@ ftl_do_gc: ldr r1, [sp, #12] cmp r4, ip ldr r2, [sp, #16] - beq .L3382 + beq .L3388 ldrh r2, [fp, r2, lsl #1] ldrh r3, [fp, r4, lsl #1] - ldr r0, .L3540+16 + ldr r0, .L3546+16 str r2, [sp] mov r2, r4 bl printk ldrh r3, [r5, #1128] cmp r3, #40 - bls .L3380 + bls .L3386 ldr r3, [r5, #296] ldrh r3, [r3, r4, lsl #1] cmp r3, #32 it hi strhhi r10, [r5, #1128] @ movhi -.L3380: +.L3386: movs r3, #6 - strh r3, [r9, #976] @ movhi - b .L3399 -.L3379: + strh r3, [r9, #984] @ movhi + b .L3405 +.L3385: movs r3, #1 strh r3, [r5, #1128] @ movhi -.L3382: +.L3388: bl GetSwlReplaceBlock movw r3, #65535 cmp r0, r3 mov r4, r0 - bne .L3399 + bne .L3405 movs r3, #0 - strh r3, [r9, #976] @ movhi -.L3383: + strh r3, [r9, #984] @ movhi +.L3389: ldrh r3, [r7, #556] movw r4, #65535 - ldr r5, .L3540 + ldr r5, .L3546 cmp r3, r4 - bne .L3533 + bne .L3539 ldrh r4, [r5, #412] cmp r4, r3 - bne .L3384 + bne .L3390 ldrh r10, [r5, #1174] cmp r10, r4 - bne .L3385 + bne .L3391 ldrh r3, [r5, #312] ldr r2, [r5, #1124] cmp r3, #24 @@ -20802,74 +20842,74 @@ ftl_do_gc: movcc r3, #5120 movcs r3, #1024 cmp r2, r3 - bls .L3387 - ldr r2, .L3540+12 + bls .L3393 + ldr r2, .L3546+12 movs r3, #0 str r3, [r7, #1124] mov r9, r5 - strh r3, [r2, #976] @ movhi + strh r3, [r2, #984] @ movhi bl GetSwlReplaceBlock cmp r0, r10 mov r4, r0 - bne .L3388 + bne .L3394 ldrh r2, [r5, #312] ldrh r3, [r5, #1122] cmp r2, r3 - bcs .L3389 + bcs .L3395 movs r0, #64 bl List_get_gc_head_node uxth r3, r0 cmp r3, r4 - bne .L3534 -.L3398: + bne .L3540 +.L3404: bl FtlGcReFreshBadBlk cmp r8, #0 - beq .L3535 -.L3399: + beq .L3541 +.L3405: ldrh r2, [r7, #412] movw r3, #65535 cmp r2, r3 - bne .L3410 -.L3465: + bne .L3416 +.L3471: ldrh r3, [r7, #1174] movw r2, #65535 cmp r3, r2 - bne .L3410 + bne .L3416 cmp r4, r3 - bne .L3410 -.L3466: + bne .L3416 +.L3472: ldrh r1, [r7, #556] movw r3, #65535 - ldr r2, .L3540 + ldr r2, .L3546 cmp r1, r3 - beq .L3411 -.L3415: + beq .L3417 +.L3421: movw r4, #65535 - b .L3410 -.L3411: + b .L3416 +.L3417: movs r3, #0 ldrh r1, [r2, #312] str r3, [r2, #1132] ldrh r3, [r2, #1120] - ldr r4, .L3540+12 + ldr r4, .L3546+12 cmp r1, r3 - bls .L3412 - ldrh r3, [r4, #976] - cbnz r3, .L3413 - ldr r3, .L3540+8 + bls .L3418 + ldrh r3, [r4, #984] + cbnz r3, .L3419 + ldr r3, .L3546+8 ldr r2, [r2, #468] ldr r3, [r3, #2448] add r3, r3, r3, lsl #1 cmp r2, r3, lsr #2 - bcs .L3478 -.L3413: + bcs .L3484 +.L3419: ldrh r3, [r7, #536] add r3, r3, r3, lsl #1 ubfx r3, r3, #2, #16 - b .L3414 -.L3478: + b .L3420 +.L3484: movs r3, #18 -.L3414: +.L3420: strh r3, [r7, #1120] @ movhi bl FtlReadRefresh movs r0, #0 @@ -20878,13 +20918,13 @@ ftl_do_gc: uxth r0, r0 ldrh r3, [r3, r0, lsl #1] cmp r3, #4 - bls .L3412 - ldrh r0, [r4, #976] - b .L3527 -.L3412: - ldrh r0, [r4, #976] + bls .L3418 + ldrh r0, [r4, #984] + b .L3533 +.L3418: + ldrh r0, [r4, #984] cmp r0, #0 - bne .L3415 + bne .L3421 ldrh r4, [r7, #536] add r3, r4, r4, lsl #1 asrs r3, r3, #2 @@ -20893,155 +20933,155 @@ ftl_do_gc: ldr r3, [r7, #296] uxth r0, r0 ldrh r2, [r3, r0, lsl #1] - ldr r3, .L3540+8 + ldr r3, .L3546+8 ldrh r1, [r3, #2390] ldrh r3, [r3, #2320] muls r3, r1, r3 add r3, r3, r3, lsr #31 cmp r2, r3, asr #1 - ble .L3416 - ldr r3, .L3540 + ble .L3422 + ldr r3, .L3546 subs r4, r4, #1 ldrh r3, [r3, #312] cmp r3, r4 - blt .L3416 + blt .L3422 bl FtlReadRefresh - b .L3532 -.L3416: + b .L3538 +.L3422: cmp r2, #0 - bne .L3415 + bne .L3421 movw r0, #65535 bl decrement_vpc_count ldrh r0, [r7, #312] adds r0, r0, #1 - b .L3527 -.L3541: + b .L3533 +.L3547: .align 2 -.L3540: +.L3546: .word .LANCHOR2 .word .LANCHOR1 .word .LANCHOR0 .word .LANCHOR5 .word .LC157 -.L3410: - ldr r3, .L3542 +.L3416: + ldr r3, .L3548 ldr r3, [r3, #2244] cmp r3, #0 ite eq moveq r5, #1 movne r5, #2 - b .L3409 -.L3535: + b .L3415 +.L3541: movw r3, #65535 cmp r4, r3 - bne .L3399 -.L3464: + bne .L3405 +.L3470: ldrh r4, [r7, #312] cmp r4, #24 - bhi .L3474 - ldr r3, .L3542 + bhi .L3480 + ldr r3, .L3548 cmp r4, #16 ldrh r5, [r3, #2388] - bls .L3401 + bls .L3407 lsrs r5, r5, #5 -.L3400: +.L3406: ldrh r3, [r7, #1120] - ldr r2, .L3542+4 + ldr r2, .L3548+4 cmp r3, r4 - bcc .L3536 -.L3404: - ldr r3, .L3542 + bcc .L3542 +.L3410: + ldr r3, .L3548 ldr r3, [r3, #2244] cmp r3, #0 - bne .L3537 -.L3477: + bne .L3543 +.L3483: movw r4, #65535 -.L3409: +.L3415: ldrh r2, [r7, #556] movw r1, #65535 - ldr r3, .L3542+4 + ldr r3, .L3548+4 cmp r2, r1 - bne .L3418 + bne .L3424 cmp r4, r2 - beq .L3419 + beq .L3425 strh r4, [r3, #556] @ movhi - b .L3420 -.L3419: + b .L3426 +.L3425: ldrh r2, [r3, #1174] cmp r2, r4 - beq .L3420 + beq .L3426 ldr r1, [r3, #296] ldrh r2, [r1, r2, lsl #1] - cbnz r2, .L3421 + cbnz r2, .L3427 strh r4, [r3, #1174] @ movhi -.L3421: +.L3427: ldrh r3, [r7, #1174] strh r3, [r7, #556] @ movhi movw r3, #65535 strh r3, [r7, #1174] @ movhi -.L3420: +.L3426: ldrh r0, [r7, #556] movw r6, #65535 movs r3, #0 strb r3, [r7, #564] cmp r0, r6 - beq .L3418 + beq .L3424 bl IsBlkInGcList - cbz r0, .L3423 - ldr r3, .L3542+4 + cbz r0, .L3429 + ldr r3, .L3548+4 strh r6, [r3, #556] @ movhi -.L3423: - ldr r3, .L3542 - ldrb r3, [r3, #144] @ zero_extendqisi2 - cbz r3, .L3424 +.L3429: + ldr r3, .L3548 + ldrb r3, [r3, #148] @ zero_extendqisi2 + cbz r3, .L3430 ldrh r0, [r7, #556] bl ftl_get_blk_mode strb r0, [r7, #564] -.L3424: +.L3430: ldrh r2, [r7, #556] movw r3, #65535 - ldr r6, .L3542+4 + ldr r6, .L3548+4 cmp r2, r3 - beq .L3418 + beq .L3424 add r0, r6, #556 bl make_superblock - ldr r2, .L3542+8 + ldr r2, .L3548+8 movs r3, #0 ldrh r1, [r6, #556] strh r3, [r6, #558] @ movhi strb r3, [r6, #562] - strh r3, [r2, #978] @ movhi + strh r3, [r2, #986] @ movhi ldr r3, [r6, #296] ldrh r3, [r3, r1, lsl #1] - strh r3, [r2, #980] @ movhi -.L3418: + strh r3, [r2, #988] @ movhi +.L3424: ldrh r3, [r7, #556] ldrh r1, [r7, #316] - ldr r2, .L3542+4 + ldr r2, .L3548+4 cmp r1, r3 - beq .L3425 + beq .L3431 ldrh r1, [r2, #364] cmp r1, r3 - beq .L3425 + beq .L3431 ldrh r2, [r2, #412] cmp r2, r3 - bne .L3426 -.L3425: + bne .L3432 +.L3431: movw r3, #65535 strh r3, [r7, #556] @ movhi -.L3426: - ldr r7, .L3542 -.L3459: - ldr r6, .L3542+4 +.L3432: + ldr r7, .L3548 +.L3465: + ldr r6, .L3548+4 movw r3, #65535 ldrh r2, [r6, #556] mov fp, r6 cmp r2, r3 - bne .L3427 + bne .L3433 mov r10, r6 movs r3, #0 str r3, [r6, #1132] -.L3428: +.L3434: ldrh r9, [fp, #1128] mov r0, r9 bl List_get_gc_head_node @@ -21049,22 +21089,22 @@ ftl_do_gc: uxth r3, r0 strh r3, [fp, #556] @ movhi cmp r3, r2 - bne .L3429 - ldr r3, .L3542+4 + bne .L3435 + ldr r3, .L3548+4 movs r2, #0 movs r0, #8 strh r2, [r3, #1128] @ movhi - b .L3527 -.L3429: + b .L3533 +.L3435: mov r0, r3 str r3, [sp, #12] bl IsBlkInGcList add r9, r9, #1 ldr r3, [sp, #12] - cbz r0, .L3430 + cbz r0, .L3436 strh r9, [r10, #1128] @ movhi - b .L3428 -.L3430: + b .L3434 +.L3436: ldrh lr, [r7, #2320] uxth r9, r9 ldrh r2, [r7, #2388] @@ -21074,83 +21114,83 @@ ftl_do_gc: ldrh r0, [r1, r3, lsl #1] add lr, r2, r2, lsr #31 cmp r0, lr, asr #1 - bgt .L3432 + bgt .L3438 cmp r9, #48 - bls .L3433 + bls .L3439 cmp r0, #8 - bls .L3433 + bls .L3439 ldrh r0, [r10, #1164] cmp r0, #35 - bhi .L3433 -.L3432: + bhi .L3439 +.L3438: movs r0, #0 strh r0, [fp, #1128] @ movhi -.L3433: +.L3439: ldrh r1, [r1, r3, lsl #1] cmp r1, r2 - blt .L3434 + blt .L3440 movw r2, #65535 cmp r4, r2 - bne .L3434 + bne .L3440 ldrh r0, [fp, #1128] - ldr r2, .L3542+4 + ldr r2, .L3548+4 cmp r0, #3 - bhi .L3434 + bhi .L3440 movs r3, #0 strh r4, [r2, #556] @ movhi strh r3, [r2, #1128] @ movhi -.L3532: - ldr r3, .L3542+8 - ldrh r0, [r3, #976] - b .L3527 -.L3434: - cbnz r1, .L3435 +.L3538: + ldr r3, .L3548+8 + ldrh r0, [r3, #984] + b .L3533 +.L3440: + cbnz r1, .L3441 movw r0, #65535 bl decrement_vpc_count ldrh r3, [fp, #1128] adds r3, r3, #1 strh r3, [fp, #1128] @ movhi - b .L3428 -.L3435: + b .L3434 +.L3441: movs r2, #0 strb r2, [r6, #564] - ldr r2, .L3542 - ldrb r2, [r2, #144] @ zero_extendqisi2 - cbz r2, .L3436 + ldr r2, .L3548 + ldrb r2, [r2, #148] @ zero_extendqisi2 + cbz r2, .L3442 mov r0, r3 bl ftl_get_blk_mode - ldr r3, .L3542+4 + ldr r3, .L3548+4 strb r0, [r3, #564] -.L3436: - ldr r0, .L3542+12 +.L3442: + ldr r0, .L3548+12 bl make_superblock - ldr r2, .L3542+8 + ldr r2, .L3548+8 ldrh r0, [r6, #556] movs r3, #0 ldr r1, [r6, #296] - strh r3, [r2, #978] @ movhi + strh r3, [r2, #986] @ movhi ldrh r1, [r1, r0, lsl #1] strh r3, [r6, #558] @ movhi strb r3, [r6, #562] - strh r1, [r2, #980] @ movhi -.L3427: + strh r1, [r2, #988] @ movhi +.L3433: cmp r8, #1 - bne .L3437 + bne .L3443 bl FtlReadRefresh -.L3437: +.L3443: movs r3, #1 str r3, [r6, #3280] ldrh r3, [r7, #2388] str r3, [sp, #12] - ldrb r3, [r7, #144] @ zero_extendqisi2 - cbz r3, .L3438 - ldr r3, .L3542+4 + ldrb r3, [r7, #148] @ zero_extendqisi2 + cbz r3, .L3444 + ldr r3, .L3548+4 ldrb r3, [r3, #564] @ zero_extendqisi2 cmp r3, #1 itt eq ldrheq r3, [r7, #2390] streq r3, [sp, #12] -.L3438: +.L3444: ldrh r3, [r6, #558] ldr r1, [sp, #12] adds r2, r3, r5 @@ -21160,12 +21200,12 @@ ftl_do_gc: subgt r3, r2, r3 uxthgt r5, r3 movs r3, #0 -.L3531: +.L3537: str r3, [sp, #16] ldrh r3, [sp, #16] - ldr r6, .L3542+4 + ldr r6, .L3548+4 cmp r3, r5 - bcs .L3447 + bcs .L3453 ldr r3, [r6, #1152] addw r1, r6, #570 ldr r2, [sp, #16] @@ -21176,13 +21216,13 @@ ftl_do_gc: add ip, r3, r2 movs r3, #0 mov r9, r3 -.L3448: +.L3454: uxth r2, r3 cmp r2, r10 - bcs .L3538 + bcs .L3544 ldrh r2, [r1, #2]! cmp r2, lr - beq .L3441 + beq .L3447 ldr r0, [sp, #20] mov fp, #36 orr r2, ip, r2, lsl #10 @@ -21190,27 +21230,27 @@ ftl_do_gc: add r9, r9, #1 uxth r9, r9 str r2, [fp, #4] -.L3441: +.L3447: adds r3, r3, #1 - b .L3448 -.L3543: + b .L3454 +.L3549: .align 2 -.L3542: +.L3548: .word .LANCHOR0 .word .LANCHOR2 .word .LANCHOR5 .word .LANCHOR2+556 -.L3538: +.L3544: ldr r0, [r6, #1152] mov r1, r9 ldrb r2, [r6, #564] @ zero_extendqisi2 mov fp, #0 bl FlashReadPages - ldr r6, .L3544 -.L3443: + ldr r6, .L3550 +.L3449: uxth r3, fp cmp r3, r9 - bcs .L3539 + bcs .L3545 mov ip, #36 ldr r2, [r6, #1152] mul r10, ip, fp @@ -21218,11 +21258,11 @@ ftl_do_gc: ldr r2, [r2, r10] ldr r3, [r3, #12] adds r2, r2, #1 - beq .L3481 + beq .L3487 ldrh r1, [r3] movw r2, #61589 cmp r1, r2 - bne .L3481 + bne .L3487 ldr r0, [r3, #8] add r1, sp, #32 movs r2, #0 @@ -21237,14 +21277,14 @@ ftl_do_gc: bic r2, r2, #-2147483648 ldr ip, [sp, #24] cmp r2, r0 - bne .L3481 + bne .L3487 str r3, [sp, #28] - ldr r3, .L3544+4 + ldr r3, .L3550+4 ldr r0, [r6, #1136] ldr r1, [r1, #16] - ldrh r2, [r3, #978] + ldrh r2, [r3, #986] adds r2, r2, #1 - strh r2, [r3, #978] @ movhi + strh r2, [r3, #986] @ movhi ldr r2, [r6, #3308] mla r2, ip, r0, r2 str r1, [r2, #16] @@ -21276,76 +21316,76 @@ ftl_do_gc: adds r3, r3, #1 str r3, [r6, #1136] bl FtlGcBufAlloc - ldrb r3, [r7, #144] @ zero_extendqisi2 - cbnz r3, .L3445 + ldrb r3, [r7, #148] @ zero_extendqisi2 + cbnz r3, .L3451 ldrb r3, [r6, #419] @ zero_extendqisi2 ldr r2, [r6, #1136] cmp r2, r3 - beq .L3445 + beq .L3451 ldrh r3, [r6, #416] - cbnz r3, .L3481 -.L3445: + cbnz r3, .L3487 +.L3451: bl Ftl_gc_temp_data_write_back - cbz r0, .L3481 - ldr r3, .L3544 + cbz r0, .L3487 + ldr r3, .L3550 movs r2, #0 movw r1, #65535 str r2, [r3, #3280] strh r1, [r3, #556] @ movhi strh r2, [r3, #558] @ movhi - b .L3532 -.L3481: + b .L3538 +.L3487: add fp, fp, #1 - b .L3443 -.L3539: + b .L3449 +.L3545: ldr r3, [sp, #16] adds r3, r3, #1 - b .L3531 -.L3447: + b .L3537 +.L3453: ldrh r3, [r6, #558] add r5, r5, r3 ldr r3, [sp, #12] uxth r5, r5 strh r5, [r6, #558] @ movhi cmp r5, r3 - bcc .L3449 + bcc .L3455 ldr r3, [r6, #1136] - ldr r5, .L3544+4 - cbz r3, .L3450 + ldr r5, .L3550+4 + cbz r3, .L3456 bl Ftl_gc_temp_data_write_back - cbz r0, .L3450 + cbz r0, .L3456 movs r3, #0 - ldrh r0, [r5, #976] + ldrh r0, [r5, #984] str r3, [r6, #3280] - b .L3527 -.L3450: - ldrh r5, [r5, #978] - cbnz r5, .L3451 + b .L3533 +.L3456: + ldrh r5, [r5, #986] + cbnz r5, .L3457 ldrh r2, [r6, #556] ldr r3, [r6, #296] ldrh r3, [r3, r2, lsl #1] - cbz r3, .L3451 -.L3452: + cbz r3, .L3457 +.L3458: ldr r3, [r7, #2448] cmp r5, r3 - bcs .L3457 + bcs .L3463 mov r0, r5 add r1, sp, #36 movs r2, #0 bl log2phys ldr r0, [sp, #36] adds r3, r0, #1 - beq .L3453 + beq .L3459 ubfx r0, r0, #10, #16 bl P2V_block_in_plane ldrh r3, [r6, #556] cmp r3, r0 - bne .L3453 -.L3457: - ldr r3, .L3544+8 + bne .L3459 +.L3463: + ldr r3, .L3550+8 ldr r3, [r3, #2448] cmp r5, r3 - bcc .L3451 + bcc .L3457 ldrh r2, [r6, #556] movs r1, #0 ldr r3, [r6, #296] @@ -21355,49 +21395,49 @@ ftl_do_gc: bl FtlCacheWriteBack bl l2p_flush bl FtlVpcTblFlush - b .L3451 -.L3453: + b .L3457 +.L3459: adds r5, r5, #1 - b .L3452 -.L3451: + b .L3458 +.L3457: movw r3, #65535 strh r3, [r6, #556] @ movhi -.L3449: +.L3455: ldrh r3, [r6, #312] cmp r3, #2 - bhi .L3458 + bhi .L3464 ldrh r5, [r7, #2388] - b .L3459 -.L3458: - ldr r2, .L3544 + b .L3465 +.L3464: + ldr r2, .L3550 movs r1, #0 str r1, [r2, #3280] - ldr r2, .L3544+4 - ldrh r0, [r2, #976] + ldr r2, .L3550+4 + ldrh r0, [r2, #984] cmp r0, #0 - bne .L3527 + bne .L3533 adds r0, r3, #1 - b .L3527 -.L3467: + b .L3533 +.L3473: movs r0, #0 - b .L3527 -.L3470: + b .L3533 +.L3476: mov r0, r2 - b .L3527 -.L3534: + b .L3533 +.L3540: ldr r2, [r5, #3276] - ldr r5, .L3544+8 - cbnz r2, .L3391 + ldr r5, .L3550+8 + cbnz r2, .L3397 ldrh r2, [r5, #2340] cmp r2, #3 - beq .L3391 + beq .L3397 ldr r2, [r9, #604] - cbnz r2, .L3391 + cbnz r2, .L3397 ldr r2, [r5, #2244] - cbnz r2, .L3391 - ldrb r0, [r5, #144] @ zero_extendqisi2 - cbz r0, .L3392 -.L3391: + cbnz r2, .L3397 + ldrb r0, [r5, #148] @ zero_extendqisi2 + cbz r0, .L3398 +.L3397: ldr r2, [r7, #296] ldrh r0, [r5, #2340] ldrh r1, [r2, r3, lsl #1] @@ -21410,11 +21450,11 @@ ftl_do_gc: movne r3, #0 add r3, r3, r2 cmp r1, r3 - bgt .L3394 + bgt .L3400 movs r0, #0 bl List_get_gc_head_node ldr r3, [r5, #2448] - ldr r2, .L3544 + ldr r2, .L3550 ldr r1, [r7, #468] add r3, r3, r3, lsl #1 cmp r1, r3, lsr #2 @@ -21423,124 +21463,124 @@ ftl_do_gc: movls r3, #160 strh r3, [r2, #1122] @ movhi uxth r4, r0 - b .L3396 -.L3394: + b .L3402 +.L3400: movs r3, #128 - b .L3530 -.L3392: + b .L3536 +.L3398: ldr r2, [r9, #296] ldrh r3, [r2, r3, lsl #1] cmp r3, #7 - bhi .L3397 + bhi .L3403 bl List_get_gc_head_node movs r3, #128 strh r3, [r7, #1122] @ movhi uxth r4, r0 - b .L3396 -.L3397: + b .L3402 +.L3403: movs r3, #64 -.L3530: +.L3536: strh r3, [r7, #1122] @ movhi - b .L3398 -.L3389: + b .L3404 +.L3395: movs r3, #80 strh r3, [r5, #1122] @ movhi - b .L3398 -.L3396: + b .L3404 +.L3402: movw r3, #65535 cmp r4, r3 - beq .L3398 -.L3388: + beq .L3404 +.L3394: ldr r1, [r7, #232] ldr r3, [r7, #296] ldrh r2, [r7, #312] ldrh r1, [r1, r4, lsl #1] ldrh r3, [r3, r4, lsl #1] - ldr r0, .L3544+12 + ldr r0, .L3550+12 str r1, [sp] ldrh r1, [r7, #1120] str r1, [sp, #4] mov r1, r4 bl printk - b .L3398 -.L3401: + b .L3404 +.L3407: cmp r4, #12 - bls .L3402 + bls .L3408 lsrs r5, r5, #4 - b .L3400 -.L3402: + b .L3406 +.L3408: cmp r4, #8 - bls .L3400 + bls .L3406 lsrs r5, r5, #2 - b .L3400 -.L3474: + b .L3406 +.L3480: movs r5, #1 - b .L3400 -.L3536: + b .L3406 +.L3542: ldrh r3, [r2, #412] movw r1, #65535 cmp r3, r1 - bne .L3405 + bne .L3411 ldrh r1, [r2, #1174] cmp r1, r3 - bne .L3405 - ldr r3, .L3544+4 - ldrh r0, [r3, #976] - cbnz r0, .L3406 - ldr r3, .L3544+8 + bne .L3411 + ldr r3, .L3550+4 + ldrh r0, [r3, #984] + cbnz r0, .L3412 + ldr r3, .L3550+8 ldr r2, [r2, #468] ldr r3, [r3, #2448] add r3, r3, r3, lsl #1 cmp r2, r3, lsr #2 - bcs .L3475 -.L3406: + bcs .L3481 +.L3412: ldrh r3, [r7, #536] add r3, r3, r3, lsl #1 ubfx r3, r3, #2, #16 - b .L3407 -.L3545: + b .L3413 +.L3551: .align 2 -.L3544: +.L3550: .word .LANCHOR2 .word .LANCHOR5 .word .LANCHOR0 .word .LC158 -.L3475: +.L3481: movs r3, #18 -.L3407: +.L3413: strh r3, [r7, #1120] @ movhi movs r3, #0 str r3, [r7, #1132] - b .L3527 -.L3405: + b .L3533 +.L3411: ldrh r3, [r7, #536] add r3, r3, r3, lsl #1 asrs r3, r3, #2 strh r3, [r7, #1120] @ movhi - b .L3404 -.L3537: + b .L3410 +.L3543: cmp r6, #2 - bhi .L3477 + bhi .L3483 adds r5, r5, #1 uxth r5, r5 - b .L3477 + b .L3483 +.L3539: + cmp r8, #0 + beq .L3470 + b .L3405 +.L3391: + cmp r8, #0 + beq .L3470 + b .L3471 +.L3390: + cmp r8, #0 + beq .L3470 + b .L3421 +.L3393: + cmp r8, #0 + beq .L3470 + b .L3472 .L3533: - cmp r8, #0 - beq .L3464 - b .L3399 -.L3385: - cmp r8, #0 - beq .L3464 - b .L3465 -.L3384: - cmp r8, #0 - beq .L3464 - b .L3415 -.L3387: - cmp r8, #0 - beq .L3464 - b .L3466 -.L3527: add sp, sp, #44 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} @@ -21558,48 +21598,48 @@ FtlCacheWriteBack: push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 - ldr r3, .L3589 - ldr r7, .L3589+4 - ldr r5, [r3, #984] + ldr r3, .L3595 + ldr r7, .L3595+4 + ldr r5, [r3, #992] ldr r3, [r7, #224] cmp r3, #0 - bne .L3548 - ldr r4, .L3589+8 + bne .L3554 + ldr r4, .L3595+8 ldr r1, [r4, #2440] cmp r1, #0 - beq .L3548 - ldrb r3, [r4, #144] @ zero_extendqisi2 - cbz r3, .L3571 + beq .L3554 + ldrb r3, [r4, #148] @ zero_extendqisi2 + cbz r3, .L3577 ldrb r8, [r5, #8] @ zero_extendqisi2 add r0, r8, #-1 rsbs r8, r0, #0 adc r8, r8, r0 - b .L3550 -.L3571: + b .L3556 +.L3577: mov r8, r3 -.L3550: +.L3556: ldr r0, [r4, #2444] mov r2, r8 ldrb r3, [r5, #9] @ zero_extendqisi2 mov r9, #0 bl FlashProgPages - ldr r10, .L3589+8 + ldr r10, .L3595+8 mov fp, #36 -.L3551: +.L3557: ldr r3, [r4, #2440] cmp r9, r3 - bcs .L3569 + bcs .L3575 mul r6, fp, r9 ldr r3, [r10, #2444] adds r2, r3, r6 ldr r3, [r3, r6] adds r3, r3, #1 - beq .L3572 + beq .L3578 ldr r3, [r2, #4] cmp r8, #0 - beq .L3585 + beq .L3591 orr r3, r3, #-2147483648 -.L3585: +.L3591: ldr r0, [r2, #16] add r1, sp, #4 movs r2, #1 @@ -21610,61 +21650,61 @@ FtlCacheWriteBack: ldr r3, [r6, #12] ldr r0, [r3, #12] adds r2, r0, #1 - beq .L3555 + beq .L3561 ubfx r0, r0, #10, #16 bl P2V_block_in_plane ldr r3, [r7, #296] ldrh r2, [r3, r0, lsl #1] mov r6, r0 - cbnz r2, .L3556 - ldr r0, .L3589+12 + cbnz r2, .L3562 + ldr r0, .L3595+12 mov r1, r6 bl printk -.L3556: +.L3562: mov r0, r6 bl decrement_vpc_count -.L3555: +.L3561: add r9, r9, #1 - b .L3551 -.L3587: + b .L3557 +.L3593: movw r5, #16386 -.L3568: +.L3574: ldrh r3, [r7, #1182] - cbz r3, .L3569 + cbz r3, .L3575 movs r0, #1 mov r1, r0 bl ftl_do_gc subs r5, r5, #1 - bne .L3568 -.L3569: + bne .L3574 +.L3575: movs r3, #0 str r3, [r4, #2440] - b .L3548 -.L3572: - ldr r10, .L3589+8 + b .L3554 +.L3578: + ldr r10, .L3595+8 mov r9, #0 -.L3552: +.L3558: ldr r3, [r4, #2440] cmp r9, r3 - bcs .L3587 + bcs .L3593 movs r6, #36 ldr r3, [r10, #2444] mov fp, #0 mov r2, #-1 mul r6, r6, r9 str r2, [r3, r6] -.L3558: +.L3564: ldr r3, [r4, #2444] adds r2, r3, r6 ldr r3, [r3, r6] adds r3, r3, #1 - bne .L3588 + bne .L3594 ldr r0, [r2, #4] ubfx r0, r0, #10, #16 bl P2V_block_in_plane ldrh r3, [r5] cmp r3, r0 - bne .L3559 + bne .L3565 ldr r1, [r7, #296] ldrh r0, [r5, #4] ldrh r2, [r1, r3, lsl #1] @@ -21674,12 +21714,12 @@ FtlCacheWriteBack: strb fp, [r5, #6] strh fp, [r5, #4] @ movhi strh r3, [r5, #2] @ movhi -.L3559: +.L3565: ldrh r3, [r5, #4] - cbnz r3, .L3560 + cbnz r3, .L3566 mov r0, r5 bl allocate_new_data_superblock -.L3560: +.L3566: ldr r3, [r7, #704] adds r3, r3, #1 str r3, [r7, #704] @@ -21704,18 +21744,18 @@ FtlCacheWriteBack: adds r3, r3, #1 ittt eq moveq r3, #1 - ldreq r2, .L3589+4 + ldreq r2, .L3595+4 streq r3, [r2, #224] ldr r3, [r7, #224] cmp r3, #0 - beq .L3558 - b .L3548 -.L3588: + beq .L3564 + b .L3554 +.L3594: ldr r3, [r2, #4] cmp r8, #0 - beq .L3586 + beq .L3592 orr r3, r3, #-2147483648 -.L3586: +.L3592: ldr r0, [r2, #16] add r1, sp, #4 movs r2, #1 @@ -21726,30 +21766,30 @@ FtlCacheWriteBack: ldr r3, [r6, #12] ldr r0, [r3, #12] adds r3, r0, #1 - beq .L3565 + beq .L3571 ubfx r0, r0, #10, #16 bl P2V_block_in_plane ldr r3, [r7, #296] ldrh r2, [r3, r0, lsl #1] mov r6, r0 - cbnz r2, .L3566 - ldr r0, .L3589+12 + cbnz r2, .L3572 + ldr r0, .L3595+12 mov r1, r6 bl printk -.L3566: +.L3572: mov r0, r6 bl decrement_vpc_count -.L3565: +.L3571: add r9, r9, #1 - b .L3552 -.L3548: + b .L3558 +.L3554: movs r0, #0 add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3590: +.L3596: .align 2 -.L3589: +.L3595: .word .LANCHOR5 .word .LANCHOR2 .word .LANCHOR0 @@ -21765,26 +21805,26 @@ FtlSysFlush: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L3593 + ldr r3, .L3599 push {r4, lr} .save {r4, lr} ldr r3, [r3, #224] - cbnz r3, .L3592 - ldr r3, .L3593+4 + cbnz r3, .L3598 + ldr r3, .L3599+4 ldr r4, [r3, #504] cmp r4, #1 - bne .L3592 + bne .L3598 bl FtlCacheWriteBack bl l2p_flush mov r0, r4 bl FtlEctTblFlush bl FtlVpcTblFlush -.L3592: +.L3598: movs r0, #0 pop {r4, pc} -.L3594: +.L3600: .align 2 -.L3593: +.L3599: .word .LANCHOR2 .word .LANCHOR1 .fnend @@ -21800,17 +21840,17 @@ FtlDeInit: @ frame_needed = 0, uses_anonymous_args = 0 push {r3, lr} .save {r3, lr} - ldr r3, .L3597 + ldr r3, .L3603 ldr r3, [r3, #504] cmp r3, #1 - bne .L3596 + bne .L3602 bl FtlSysFlush -.L3596: +.L3602: movs r0, #0 pop {r3, pc} -.L3598: +.L3604: .align 2 -.L3597: +.L3603: .word .LANCHOR1 .fnend .size FtlDeInit, .-FtlDeInit @@ -21843,13 +21883,13 @@ rk_ftl_de_init: push {r3, lr} .save {r3, lr} movs r1, #0 - ldr r0, .L3601 + ldr r0, .L3607 bl printk pop {r3, lr} b ftl_deinit -.L3602: +.L3608: .align 2 -.L3601: +.L3607: .word .LC160 .fnend .size rk_ftl_de_init, .-rk_ftl_de_init @@ -21892,23 +21932,23 @@ ftl_discard: .save {r4, r5, r6, r7, r8, r9, lr} .pad #12 mov r6, r0 - ldr r7, .L3624 + ldr r7, .L3630 mov r4, r1 ldr r5, [r7, #2428] cmp r0, r5 - bcs .L3614 + bcs .L3620 cmp r1, r5 - bhi .L3614 + bhi .L3620 adds r3, r0, r1 cmp r3, r5 - bhi .L3614 + bhi .L3620 cmp r1, #31 - bls .L3616 - ldr r3, .L3624+4 + bls .L3622 + ldr r3, .L3630+4 ldr r2, [r3, #224] mov r8, r3 cmp r2, #0 - bne .L3616 + bne .L3622 bl FtlCacheWriteBack ldrh r5, [r7, #2394] mov r0, r6 @@ -21918,7 +21958,7 @@ ftl_discard: mov r9, r0 subs r6, r6, r3 uxth r6, r6 - cbz r6, .L3607 + cbz r6, .L3613 subs r5, r5, r6 add r9, r0, #1 cmp r5, r4 @@ -21926,27 +21966,27 @@ ftl_discard: movcs r5, r4 uxth r5, r5 subs r4, r4, r5 -.L3607: - ldr r5, .L3624+8 +.L3613: + ldr r5, .L3630+8 mov r3, #-1 str r3, [sp, #4] -.L3608: +.L3614: ldrh r3, [r7, #2394] cmp r4, r3 - bcc .L3623 + bcc .L3629 mov r0, r9 mov r1, sp movs r2, #0 bl log2phys ldr r3, [sp] adds r3, r3, #1 - beq .L3609 - ldr r3, [r5, #988] + beq .L3615 + ldr r3, [r5, #996] add r1, sp, #4 movs r2, #1 mov r0, r9 adds r3, r3, #1 - str r3, [r5, #988] + str r3, [r5, #996] ldr r3, [r8, #480] adds r3, r3, #1 str r3, [r8, #480] @@ -21955,33 +21995,33 @@ ftl_discard: ubfx r0, r0, #10, #16 bl P2V_block_in_plane bl decrement_vpc_count -.L3609: +.L3615: ldrh r3, [r7, #2394] add r9, r9, #1 subs r4, r4, r3 - b .L3608 -.L3623: - ldr r3, .L3624+8 - ldr r2, [r3, #988] + b .L3614 +.L3629: + ldr r3, .L3630+8 + ldr r2, [r3, #996] cmp r2, #32 - bls .L3616 + bls .L3622 movs r2, #0 - str r2, [r3, #988] + str r2, [r3, #996] bl l2p_flush bl FtlVpcTblFlush - b .L3616 -.L3614: + b .L3622 +.L3620: mov r0, #-1 - b .L3606 -.L3616: + b .L3612 +.L3622: movs r0, #0 -.L3606: +.L3612: add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, r8, r9, pc} -.L3625: +.L3631: .align 2 -.L3624: +.L3630: .word .LANCHOR0 .word .LANCHOR2 .word .LANCHOR5 @@ -22012,33 +22052,33 @@ ftl_read: push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r8, r3 - ldr r3, .L3672 + ldr r3, .L3678 .pad #84 sub sp, sp, #84 mov r5, r1 str r2, [sp, #36] ldr r3, [r3, #504] cmp r3, #1 - bne .L3653 + bne .L3659 cmp r0, #16 - bne .L3629 + bne .L3635 add r0, r1, #256 mov r1, r2 mov r2, r8 bl FtlVendorPartRead - b .L3628 -.L3629: - ldr r2, .L3672+4 + b .L3634 +.L3635: + ldr r2, .L3678+4 ldr r3, [r2, #2428] cmp r1, r3 - bcs .L3653 + bcs .L3659 ldr r1, [sp, #36] cmp r1, r3 - bhi .L3653 + bhi .L3659 adds r1, r5, r1 str r1, [sp, #40] cmp r1, r3 - bhi .L3653 + bhi .L3659 ldrh r4, [r2, #2394] mov r0, r5 mov r1, r4 @@ -22054,7 +22094,7 @@ ftl_read: str r0, [sp, #32] add r3, r3, r0 str r3, [sp, #24] - ldr r3, .L3672+8 + ldr r3, .L3678+8 ldr r0, [sp, #28] ldr r2, [r3, #504] add r2, r2, r1 @@ -22065,54 +22105,54 @@ ftl_read: ldr r1, [sp, #32] str r2, [r3, #476] bl FtlCacheMetchLpa - cbz r0, .L3630 + cbz r0, .L3636 bl FtlCacheWriteBack -.L3630: +.L3636: mov r10, #0 ldr r6, [sp, #28] - ldr r4, .L3672+8 - ldr r9, .L3672+4 + ldr r4, .L3678+8 + ldr r9, .L3678+4 mov r7, r10 str r10, [sp, #48] str r10, [sp, #52] -.L3631: +.L3637: ldr r3, [sp, #24] cmp r3, #0 - beq .L3671 + beq .L3677 add r1, sp, #76 mov r0, r6 movs r2, #0 bl log2phys ldr r3, [sp, #76] adds r1, r3, #1 - bne .L3668 + bne .L3674 mov fp, #0 -.L3632: +.L3638: ldrh r0, [r9, #2394] cmp fp, r0 - bcs .L3636 + bcs .L3642 mla r0, r0, r6, fp cmp r0, r5 - bcc .L3634 + bcc .L3640 ldr r3, [sp, #40] cmp r0, r3 - bcs .L3634 + bcs .L3640 subs r0, r0, r5 movs r1, #0 mov r2, #512 add r0, r8, r0, lsl #9 bl ftl_memset -.L3634: +.L3640: add fp, fp, #1 - b .L3632 -.L3668: + b .L3638 +.L3674: ldr r2, [r4, #3304] mov fp, #36 mla fp, fp, r7, r2 str r3, [fp, #4] ldr r3, [sp, #28] cmp r6, r3 - bne .L3637 + bne .L3643 ldrh ip, [r9, #2394] mov r0, r5 ldr r3, [r4, #3332] @@ -22129,13 +22169,13 @@ ftl_read: movcs r3, r2 cmp r3, ip str r3, [sp, #48] - bne .L3638 + bne .L3644 str r8, [fp, #8] - b .L3638 -.L3637: + b .L3644 +.L3643: ldr r3, [sp, #32] cmp r6, r3 - bne .L3639 + bne .L3645 ldr r3, [r4, #3336] ldrh r2, [r9, #2394] ldr r1, [sp, #40] @@ -22143,16 +22183,16 @@ ftl_read: mul r3, r2, r6 rsb r10, r3, r1 cmp r10, r2 - bne .L3638 - b .L3669 -.L3639: + bne .L3644 + b .L3675 +.L3645: ldrh r3, [r9, #2394] muls r3, r6, r3 -.L3669: +.L3675: subs r3, r3, r5 add r3, r8, r3, lsl #9 str r3, [fp, #8] -.L3638: +.L3644: ldrh r3, [r9, #2400] ldr r2, [r4, #3344] str r6, [fp, #16] @@ -22161,18 +22201,18 @@ ftl_read: bic r3, r3, #3 add r3, r3, r2 str r3, [fp, #12] -.L3636: +.L3642: ldr r3, [sp, #24] adds r6, r6, #1 subs r3, r3, #1 str r3, [sp, #24] - beq .L3640 + beq .L3646 ldrh r3, [r9, #2320] cmp r7, r3, lsl #3 - bne .L3631 -.L3640: + bne .L3637 +.L3646: cmp r7, #0 - beq .L3631 + beq .L3637 ldr r0, [r4, #3304] mov r1, r7 movs r2, #0 @@ -22187,7 +22227,7 @@ ftl_read: str r3, [sp, #68] movs r3, #0 str r3, [sp, #44] -.L3647: +.L3653: ldr r3, [sp, #44] mov ip, #36 ldr r1, [sp, #28] @@ -22196,33 +22236,33 @@ ftl_read: add r3, r3, fp ldr r2, [r3, #16] cmp r2, r1 - bne .L3642 + bne .L3648 ldr r1, [r3, #8] ldr r3, [r4, #3332] cmp r1, r3 - bne .L3643 + bne .L3649 ldr r3, [sp, #60] mov r0, r8 ldr r2, [sp, #64] add r1, r1, r3 - b .L3670 -.L3642: + b .L3676 +.L3648: ldr r1, [sp, #32] cmp r2, r1 - bne .L3643 + bne .L3649 ldr r1, [r3, #8] ldr r3, [r4, #3336] cmp r1, r3 - bne .L3643 + bne .L3649 ldrh r0, [r9, #2394] ldr r3, [sp, #32] ldr r2, [sp, #68] muls r0, r3, r0 subs r0, r0, r5 add r0, r8, r0, lsl #9 -.L3670: +.L3676: bl ftl_memcpy -.L3643: +.L3649: ldr r2, [r4, #3304] add r3, r2, fp ldr r1, [r2, fp] @@ -22236,9 +22276,9 @@ ftl_read: ldr r1, [r3, #16] ldr r2, [r2, #8] cmp r1, r2 - beq .L3645 + beq .L3651 ldr r2, [r4, #680] - ldr r0, .L3672+12 + ldr r0, .L3678+12 adds r2, r2, #1 str r2, [r4, #680] ldr lr, [r3, #12] @@ -22257,43 +22297,43 @@ ftl_read: ldr r2, [r3, #4] ldr r3, [lr] bl printk -.L3645: +.L3651: ldr r3, [r4, #3304] add r2, r3, fp ldr r3, [r3, fp] cmp r3, #256 - bne .L3646 + bne .L3652 ldr r0, [r2, #4] ubfx r0, r0, #10, #16 bl P2V_block_in_plane bl FtlGcRefreshBlock -.L3646: +.L3652: ldr r3, [sp, #44] adds r3, r3, #1 str r3, [sp, #44] cmp r3, r7 - bne .L3647 + bne .L3653 movs r7, #0 - b .L3631 -.L3671: - ldr r3, .L3672+8 + b .L3637 +.L3677: + ldr r3, .L3678+8 ldrh r3, [r3, #1182] - cbz r3, .L3649 + cbz r3, .L3655 ldr r0, [sp, #24] movs r1, #1 bl ftl_do_gc -.L3649: +.L3655: ldr r0, [sp, #52] - b .L3628 -.L3653: + b .L3634 +.L3659: mov r0, #-1 -.L3628: +.L3634: add sp, sp, #84 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3673: +.L3679: .align 2 -.L3672: +.L3678: .word .LANCHOR1 .word .LANCHOR0 .word .LANCHOR2 @@ -22336,25 +22376,25 @@ FlashBootVendorRead: mov r5, r1 mov r4, r2 bl rknand_device_lock - ldr r3, .L3678 + ldr r3, .L3684 ldr r3, [r3, #504] cmp r3, #1 - bne .L3677 + bne .L3683 mov r2, r4 mov r0, r6 mov r1, r5 bl ftl_vendor_read mov r4, r0 - b .L3676 -.L3677: + b .L3682 +.L3683: mov r4, #-1 -.L3676: +.L3682: bl rknand_device_unlock mov r0, r4 pop {r4, r5, r6, pc} -.L3679: +.L3685: .align 2 -.L3678: +.L3684: .word .LANCHOR1 .fnend .size FlashBootVendorRead, .-FlashBootVendorRead @@ -22431,57 +22471,57 @@ FtlInit: push {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} mov r3, #-1 - ldr r2, .L3699 - ldr r7, .L3699+4 - ldr r4, .L3699+8 - ldr r6, .L3699+12 - ldr r1, .L3699+16 - ldr r0, .L3699+20 + ldr r2, .L3705 + ldr r7, .L3705+4 + ldr r4, .L3705+8 + ldr r6, .L3705+12 + ldr r1, .L3705+16 + ldr r0, .L3705+20 str r3, [r7, #504] movs r3, #0 - str r3, [r2, #992] + str r3, [r2, #1000] str r3, [r4, #224] bl printk - add r0, r6, #116 + add r0, r6, #120 bl FtlConstantsInit bl FtlMemInit bl FtlVariablesInit ldrh r0, [r6, #2324] bl FtlFreeSysBlkQueueInit bl FtlLoadBbt - cbz r0, .L3684 - ldr r0, .L3699+24 - b .L3698 -.L3684: + cbz r0, .L3690 + ldr r0, .L3705+24 + b .L3704 +.L3690: bl FtlSysBlkInit mov r5, r0 - cbz r0, .L3686 - ldr r0, .L3699+28 -.L3698: - ldr r1, .L3699+32 + cbz r0, .L3692 + ldr r0, .L3705+28 +.L3704: + ldr r1, .L3705+32 bl printk - b .L3685 -.L3686: + b .L3691 +.L3692: movs r1, #1 str r1, [r7, #504] bl ftl_do_gc ldrh r7, [r4, #312] cmp r7, #15 - bhi .L3687 + bhi .L3693 mov r8, r4 movw r6, #65535 -.L3690: +.L3696: ldrh r3, [r4, #556] cmp r3, r6 - bne .L3688 + bne .L3694 ldrh r3, [r8, #1174] cmp r3, r6 - bne .L3688 + bne .L3694 and r0, r5, #63 bl List_get_gc_head_node uxth r0, r0 bl FtlGcRefreshBlock -.L3688: +.L3694: movs r0, #1 mov r1, r0 bl ftl_do_gc @@ -22491,27 +22531,27 @@ FtlInit: ldrh r2, [r4, #312] adds r3, r7, #2 cmp r2, r3 - bhi .L3685 + bhi .L3691 adds r5, r5, #1 cmp r5, #4096 - bne .L3690 - b .L3685 -.L3687: - ldrb r3, [r6, #144] @ zero_extendqisi2 - cbz r3, .L3685 + bne .L3696 + b .L3691 +.L3693: + ldrb r3, [r6, #148] @ zero_extendqisi2 + cbz r3, .L3691 movs r4, #128 -.L3692: +.L3698: movs r0, #1 mov r1, r0 bl ftl_do_gc subs r4, r4, #1 - bne .L3692 -.L3685: + bne .L3698 +.L3691: movs r0, #0 pop {r4, r5, r6, r7, r8, pc} -.L3700: +.L3706: .align 2 -.L3699: +.L3705: .word .LANCHOR5 .word .LANCHOR1 .word .LANCHOR2 @@ -22535,42 +22575,43 @@ rk_ftl_init: push {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r0, #2048 - bl ftl_malloc - ldr r5, .L3705 - ldr r4, .L3705+4 - movs r6, #0 - add r1, r5, #1000 - str r6, [r5, #1000] - str r6, [r4, #1180] - str r0, [r5, #996] + bl ftl_dma32_malloc + ldr r6, .L3711 + ldr r4, .L3711+4 + movs r5, #0 + add r1, r6, #1008 + str r5, [r6, #1008] + str r5, [r4, #1184] + str r5, [r4, #1180] + str r0, [r6, #1004] addw r0, r4, #1180 bl rknand_get_reg_addr ldr r3, [r4, #1180] - cbz r3, .L3704 + cbz r3, .L3710 bl rk_nandc_irq_init - mov r1, r6 - mov r2, r6 + mov r1, r5 + mov r2, r5 mov r3, #2048 - ldr r0, [r5, #996] + ldr r0, [r6, #1004] bl FlashSramLoadStore bl rknand_flash_cs_init ldr r0, [r4, #1180] bl FlashInit mov r4, r0 - cbnz r0, .L3703 + cbnz r0, .L3709 bl FtlInit -.L3703: +.L3709: mov r1, r4 - ldr r0, .L3705+8 + ldr r0, .L3711+8 bl printk mov r0, r4 pop {r4, r5, r6, pc} -.L3704: +.L3710: mov r0, #-1 pop {r4, r5, r6, pc} -.L3706: +.L3712: .align 2 -.L3705: +.L3711: .word .LANCHOR5 .word .LANCHOR4 .word .LC163 @@ -22585,21 +22626,21 @@ ftl_fix_nand_power_lost_error: .fnstart @ args = 0, pretend = 0, frame = 48 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L3722 + ldr r3, .L3728 push {r4, r5, r6, r7, r8, r9, r10, lr} .save {r4, r5, r6, r7, r8, r9, r10, lr} .pad #48 sub sp, sp, #48 - ldrb r2, [r3, #144] @ zero_extendqisi2 + ldrb r2, [r3, #148] @ zero_extendqisi2 mov r8, r3 cmp r2, #0 - beq .L3707 - ldr r4, .L3722+4 + beq .L3713 + ldr r4, .L3728+4 movw r7, #4097 - ldr r6, .L3722+8 - ldr r0, .L3722+12 + ldr r6, .L3728+8 + ldr r0, .L3728+12 ldr r3, [r4, #296] - ldrh r5, [r6, #840] + ldrh r5, [r6, #848] mov r1, r5 ldrh r2, [r3, r5, lsl #1] bl printk @@ -22612,43 +22653,43 @@ ftl_fix_nand_power_lost_error: add r0, r4, #364 bl allocate_new_data_superblock lsl r9, r5, #1 -.L3709: +.L3715: subs r7, r7, #1 - beq .L3713 + beq .L3719 movs r0, #1 mov r1, r0 bl ftl_do_gc ldr r3, [r4, #296] ldrh r3, [r3, r9] cmp r3, #0 - bne .L3709 -.L3713: + bne .L3715 +.L3719: ldr r3, [r4, #296] mov r1, r5 - ldr r0, .L3722+12 + ldr r0, .L3728+12 ldrh r2, [r3, r5, lsl #1] bl printk ldr r3, [r4, #296] ldrh r7, [r3, r5, lsl #1] - cbnz r7, .L3711 + cbnz r7, .L3717 add r0, sp, #48 mov r10, #36 movw r9, #65535 strh r5, [r0, #-48]! @ movhi bl make_superblock - ldr r3, .L3722+4 + ldr r3, .L3728+4 ldrh ip, [r8, #2320] ldr r8, [r3, #228] mov r3, r7 mov lr, r3 add r0, sp, #14 -.L3714: +.L3720: uxth r2, r3 cmp r2, ip - bcs .L3721 + bcs .L3727 ldrh r2, [r0, #2]! cmp r2, r9 - beq .L3715 + beq .L3721 mla r1, r10, r7, r8 adds r7, r7, #1 lsls r2, r2, #10 @@ -22656,13 +22697,13 @@ ftl_fix_nand_power_lost_error: str r2, [r1, #4] str lr, [r1, #8] str lr, [r1, #12] -.L3715: - adds r3, r3, #1 - b .L3714 .L3721: + adds r3, r3, #1 + b .L3720 +.L3727: ldr r3, [r4, #296] mov r1, r5 - ldr r0, .L3722+16 + ldr r0, .L3728+16 ldrh r2, [r3, r5, lsl #1] bl printk movs r1, #0 @@ -22673,16 +22714,16 @@ ftl_fix_nand_power_lost_error: movs r1, #1 mov r2, r7 bl FlashEraseBlocks -.L3711: +.L3717: movw r3, #65535 - strh r3, [r6, #840] @ movhi -.L3707: + strh r3, [r6, #848] @ movhi +.L3713: add sp, sp, #48 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, pc} -.L3723: +.L3729: .align 2 -.L3722: +.L3728: .word .LANCHOR0 .word .LANCHOR2 .word .LANCHOR5 @@ -22716,40 +22757,40 @@ ftl_write: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #92 sub sp, sp, #92 - ldr r9, .L3800+16 + ldr r9, .L3806+16 mov r8, r1 str r3, [sp, #12] mov fp, r2 ldr r3, [r9, #224] cmp r3, #0 - bne .L3767 - ldr r2, .L3800 + bne .L3773 + ldr r2, .L3806 ldr r2, [r2, #504] cmp r2, #1 - bne .L3768 + bne .L3774 cmp r0, #16 - bne .L3727 + bne .L3733 add r0, r1, #256 ldr r2, [sp, #12] mov r1, fp bl FtlVendorPartWrite - b .L3726 -.L3727: - ldr r7, .L3800+4 + b .L3732 +.L3733: + ldr r7, .L3806+4 ldr r3, [r7, #2428] cmp r1, r3 - bcs .L3771 + bcs .L3777 cmp fp, r3 - bhi .L3771 + bhi .L3777 add r6, r1, fp cmp r6, r3 - bhi .L3771 + bhi .L3777 ldrh r4, [r7, #2394] mov r3, #2048 - ldr r5, .L3800+8 + ldr r5, .L3806+8 mov r0, r1 mov r1, r4 - str r3, [r5, #1004] + str r3, [r5, #1012] bl __aeabi_uidiv mov r1, r4 str r0, [sp, #4] @@ -22774,7 +22815,7 @@ ftl_write: movcc r3, #0 str r3, [sp, #28] cmp r2, #0 - beq .L3729 + beq .L3735 movs r3, #36 ldr r7, [r7, #2444] muls r3, r2, r3 @@ -22783,15 +22824,15 @@ ftl_write: add r7, r7, r3 ldr r3, [r7, #16] cmp r2, r3 - bne .L3730 + bne .L3736 ldr r3, [r9, #488] mov r1, r4 mov r0, r8 adds r3, r3, #1 str r3, [r9, #488] - ldr r3, [r5, #1008] + ldr r3, [r5, #1016] adds r3, r3, #1 - str r3, [r5, #1008] + str r3, [r5, #1016] bl __aeabi_uidivmod ldr r0, [r7, #8] subs r4, r4, r1 @@ -22803,11 +22844,11 @@ ftl_write: lsl r9, r4, #9 mov r2, r9 bl ftl_memcpy - cbnz r6, .L3731 - ldr r3, [r5, #1008] + cbnz r6, .L3737 + ldr r3, [r5, #1016] cmp r3, #2 - ble .L3767 -.L3731: + ble .L3773 +.L3737: ldr r3, [sp, #12] rsb fp, r4, fp add r8, r8, r4 @@ -22817,71 +22858,71 @@ ftl_write: ldr r3, [sp, #4] adds r3, r3, #1 str r3, [sp, #4] -.L3730: +.L3736: movs r3, #0 - str r3, [r5, #1008] -.L3729: + str r3, [r5, #1016] +.L3735: ldr r0, [sp, #4] ldr r1, [sp, #20] bl FtlCacheMetchLpa - cbz r0, .L3732 + cbz r0, .L3738 bl FtlCacheWriteBack -.L3732: - ldr r4, .L3800+4 - ldr r7, .L3800+12 +.L3738: + ldr r4, .L3806+4 + ldr r7, .L3806+12 ldr r6, [sp, #4] mov r10, r4 - str r7, [r5, #984] -.L3733: + str r7, [r5, #992] +.L3739: ldr r3, [sp, #8] - ldr r5, .L3800+16 + ldr r5, .L3806+16 cmp r3, #0 - beq .L3799 + beq .L3805 ldrh r3, [r7, #4] - cbnz r3, .L3734 + cbnz r3, .L3740 add r2, r5, #316 - ldr r9, .L3800 + ldr r9, .L3806 cmp r7, r2 - bne .L3735 + bne .L3741 ldrh r7, [r5, #368] - cbnz r7, .L3736 + cbnz r7, .L3742 add r0, r5, #364 bl allocate_new_data_superblock str r7, [r9, #3452] -.L3736: - ldr r0, .L3800+12 +.L3742: + ldr r0, .L3806+12 bl allocate_new_data_superblock ldr r3, [r9, #3452] - cbnz r3, .L3772 -.L3738: - ldr r7, .L3800+12 - b .L3737 -.L3735: + cbnz r3, .L3778 +.L3744: + ldr r7, .L3806+12 + b .L3743 +.L3741: str r3, [r9, #3452] ldrh r3, [r5, #320] cmp r3, #0 - bne .L3738 + bne .L3744 mov r0, r7 bl allocate_new_data_superblock - b .L3737 -.L3772: - ldr r7, .L3800+20 -.L3737: + b .L3743 +.L3778: + ldr r7, .L3806+20 +.L3743: ldrh r3, [r7, #4] - cbnz r3, .L3739 + cbnz r3, .L3745 mov r0, r7 bl allocate_new_data_superblock -.L3739: - ldr r3, .L3800+8 - str r7, [r3, #984] -.L3734: +.L3745: + ldr r3, .L3806+8 + str r7, [r3, #992] +.L3740: ldr r2, [r5, #3300] ldr r3, [r4, #2440] ldrh ip, [r7, #4] subs r3, r2, r3 ldr r2, [sp, #8] cmp ip, r3 - ldr r9, .L3800+16 + ldr r9, .L3806+16 it cs movcs ip, r3 cmp ip, r2 @@ -22891,27 +22932,27 @@ ftl_write: str r3, [sp, #44] movs r3, #0 str r3, [sp, #24] -.L3740: +.L3746: ldr r3, [sp, #24] ldr r2, [sp, #44] cmp r3, r2 - beq .L3741 + beq .L3747 ldrh r3, [r7, #4] cmp r3, #0 - beq .L3741 + beq .L3747 ldr r3, [sp, #28] - cbz r3, .L3742 + cbz r3, .L3748 ldr r3, [sp, #20] cmp r6, r3 - bne .L3742 + bne .L3748 ldr r3, [sp, #24] - cbz r3, .L3742 + cbz r3, .L3748 ldrh r2, [r4, #2394] add r3, r8, fp mls r3, r2, r6, r3 cmp r3, r2 - bne .L3741 -.L3742: + bne .L3747 +.L3748: add r1, sp, #48 movs r2, #0 mov r0, r6 @@ -22946,10 +22987,10 @@ ftl_write: bl ftl_memset ldr r3, [sp, #4] cmp r6, r3 - beq .L3743 + beq .L3749 ldr r3, [sp, #20] cmp r6, r3 - bne .L3796 + bne .L3802 ldrh r3, [r4, #2394] add r5, r8, fp smulbb r3, r3, r6 @@ -22957,8 +22998,8 @@ ftl_write: movs r3, #0 str r3, [sp, #32] uxth r5, r5 - b .L3746 -.L3743: + b .L3752 +.L3749: ldrh r5, [r4, #2394] mov r0, r8 mov r1, r5 @@ -22968,10 +23009,10 @@ ftl_write: cmp r5, fp it cs movcs r5, fp -.L3746: +.L3752: ldrh r3, [r4, #2394] cmp r5, r3 - bne .L3747 + bne .L3753 ldr r3, [sp, #4] mov lr, #36 cmp r6, r3 @@ -22983,24 +23024,24 @@ ftl_write: it ne addne r1, r3, r1, lsl #9 ldr r3, [sp, #28] - cbz r3, .L3749 + cbz r3, .L3755 ldr r2, [r10, #2440] ldr r5, [r10, #2444] mla r2, lr, r2, r5 str r1, [r2, #8] - b .L3750 -.L3749: + b .L3756 +.L3755: ldr r0, [r10, #2444] ldr r3, [r10, #2440] ldrh r2, [r10, #2398] mla r3, lr, r3, r0 ldr r0, [r3, #8] - b .L3797 -.L3747: + b .L3803 +.L3753: ldr r2, [sp, #48] movs r3, #36 adds r1, r2, #1 - beq .L3751 + beq .L3757 ldr r1, [r4, #2444] add r0, sp, #52 str r2, [sp, #56] @@ -23016,35 +23057,35 @@ ftl_write: bl FlashReadPages ldr r3, [sp, #52] adds r3, r3, #1 - bne .L3752 + bne .L3758 ldr r3, [r9, #680] adds r3, r3, #1 str r3, [r9, #680] - b .L3754 -.L3801: + b .L3760 +.L3807: .align 2 -.L3800: +.L3806: .word .LANCHOR1 .word .LANCHOR0 .word .LANCHOR5 .word .LANCHOR2+316 .word .LANCHOR2 .word .LANCHOR2+364 -.L3752: +.L3758: ldr r3, [sp, #16] ldr r3, [r3, #8] cmp r3, r6 - beq .L3754 + beq .L3760 ldr r3, [r9, #680] mov r2, r6 - ldr r0, .L3802 + ldr r0, .L3808 adds r3, r3, #1 str r3, [r9, #680] ldr r3, [sp, #16] ldr r1, [r3, #8] bl printk - b .L3754 -.L3751: + b .L3760 +.L3757: ldr r1, [r4, #2444] ldr r2, [r4, #2440] mla r2, r3, r2, r1 @@ -23052,12 +23093,12 @@ ftl_write: ldr r0, [r2, #8] ldrh r2, [r4, #2398] bl ftl_memset -.L3754: +.L3760: ldr r3, [sp, #4] mov lr, #36 lsls r2, r5, #9 cmp r6, r3 - bne .L3755 + bne .L3761 ldr r1, [r4, #2440] ldr r5, [r4, #2444] ldr r3, [sp, #32] @@ -23065,8 +23106,8 @@ ftl_write: ldr r0, [r1, #8] ldr r1, [sp, #12] add r0, r0, r3, lsl #9 - b .L3797 -.L3755: + b .L3803 +.L3761: ldr r0, [r4, #2444] ldr r3, [r4, #2440] ldrh r1, [r4, #2394] @@ -23076,10 +23117,10 @@ ftl_write: rsb r1, r8, r1 ldr r3, [sp, #12] add r1, r3, r1, lsl #9 - b .L3797 -.L3796: + b .L3803 +.L3802: ldr r3, [sp, #28] - cbz r3, .L3756 + cbz r3, .L3762 ldr r3, [r4, #2440] ldr r2, [r4, #2444] mla r5, r5, r3, r2 @@ -23089,8 +23130,8 @@ ftl_write: rsb r3, r8, r3 add r3, r2, r3, lsl #9 str r3, [r5, #8] - b .L3750 -.L3756: + b .L3756 +.L3762: ldr r2, [r4, #2444] ldr r3, [r4, #2440] ldrh r1, [r4, #2394] @@ -23101,9 +23142,9 @@ ftl_write: rsb r1, r8, r1 ldr r3, [sp, #12] add r1, r3, r1, lsl #9 -.L3797: +.L3803: bl ftl_memcpy -.L3750: +.L3756: ldr r2, [sp, #40] movw r3, #61589 ldr r1, [sp, #36] @@ -23130,34 +23171,34 @@ ftl_write: ldr r3, [sp, #24] adds r3, r3, #1 str r3, [sp, #24] - b .L3740 -.L3741: + b .L3746 +.L3747: ldr r3, [sp, #8] ldr r2, [sp, #24] subs r3, r3, r2 str r3, [sp, #8] - ldr r3, .L3802+4 + ldr r3, .L3808+4 ldr r2, [r10, #2440] ldr r3, [r3, #3300] cmp r2, r3 - bcs .L3760 + bcs .L3766 ldr r3, [sp, #28] - cbnz r3, .L3760 + cbnz r3, .L3766 ldrh r3, [r7, #4] - cbz r3, .L3760 -.L3762: + cbz r3, .L3766 +.L3768: movs r3, #0 str r3, [sp, #28] - b .L3733 -.L3760: + b .L3739 +.L3766: bl FtlCacheWriteBack movs r3, #0 str r3, [r10, #2440] ldr r3, [sp, #8] cmp r3, #1 - bhi .L3733 - b .L3762 -.L3799: + bhi .L3739 + b .L3768 +.L3805: mov r0, r3 ldr r2, [sp, #4] ldr r3, [sp, #20] @@ -23165,32 +23206,32 @@ ftl_write: bl ftl_do_gc ldrh r3, [r5, #312] cmp r3, #5 - bls .L3775 + bls .L3781 cmp r3, #31 - bhi .L3767 - ldr r3, .L3802+8 - ldrb r3, [r3] @ zero_extendqisi2 - cbnz r3, .L3767 -.L3775: + bhi .L3773 + ldr r3, .L3808+8 + ldrb r3, [r3, #32] @ zero_extendqisi2 + cbnz r3, .L3773 +.L3781: ldr r4, [sp, #8] mov r8, #128 - ldr r6, .L3802+4 + ldr r6, .L3808+4 movw r7, #65535 -.L3788: +.L3794: ldrh r3, [r5, #556] cmp r3, r7 - bne .L3766 + bne .L3772 ldrh r3, [r6, #1174] cmp r3, r7 - bne .L3766 + bne .L3772 ldrh r3, [r6, #1176] cmp r3, r7 - bne .L3766 + bne .L3772 and r0, r4, #7 bl List_get_gc_head_node uxth r0, r0 bl FtlGcRefreshBlock -.L3766: +.L3772: movs r0, #1 strh r8, [r5, #1122] @ movhi strh r8, [r5, #1120] @ movhi @@ -23200,29 +23241,29 @@ ftl_write: movs r1, #1 bl ftl_do_gc ldr r3, [r5, #224] - cbnz r3, .L3767 + cbnz r3, .L3773 ldrh r3, [r6, #312] cmp r3, #2 - bhi .L3767 + bhi .L3773 adds r4, r4, #1 cmp r4, #256 - bne .L3788 - b .L3767 -.L3771: + bne .L3794 + b .L3773 +.L3777: mov r0, #-1 - b .L3726 -.L3767: + b .L3732 +.L3773: movs r0, #0 - b .L3726 -.L3768: + b .L3732 +.L3774: mov r0, r3 -.L3726: +.L3732: add sp, sp, #92 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3803: +.L3809: .align 2 -.L3802: +.L3808: .word .LC166 .word .LANCHOR2 .word .LANCHOR0 @@ -23264,25 +23305,25 @@ FlashBootVendorWrite: mov r5, r1 mov r4, r2 bl rknand_device_lock - ldr r3, .L3808 + ldr r3, .L3814 ldr r3, [r3, #504] cmp r3, #1 - bne .L3807 + bne .L3813 mov r2, r4 mov r0, r6 mov r1, r5 bl ftl_vendor_write mov r4, r0 - b .L3806 -.L3807: + b .L3812 +.L3813: mov r4, #-1 -.L3806: +.L3812: bl rknand_device_unlock mov r0, r4 pop {r4, r5, r6, pc} -.L3809: +.L3815: .align 2 -.L3808: +.L3814: .word .LANCHOR1 .fnend .size FlashBootVendorWrite, .-FlashBootVendorWrite @@ -23342,30 +23383,30 @@ FtlDumpSysBlock: push {r4, r5, r6, r7, r8, r9, lr} .save {r4, r5, r6, r7, r8, r9, lr} lsl r8, r0, #10 - ldr r5, .L3820 + ldr r5, .L3826 .pad #28 sub sp, sp, #28 - ldr r4, .L3820+4 + ldr r4, .L3826+4 mov r9, #0 - ldr r7, .L3820+8 + ldr r7, .L3826+8 mov r6, r0 ldr r3, [r5, #3316] - str r3, [r4, #1256] + str r3, [r4, #1264] ldr r3, [r5, #3340] - str r3, [r4, #1260] -.L3813: + str r3, [r4, #1268] +.L3819: ldrh r2, [r7, #2390] sxth r3, r9 cmp r3, r2 - bge .L3819 + bge .L3825 movs r1, #1 - ldr r0, .L3820+12 + ldr r0, .L3826+12 orr r3, r3, r8 - str r3, [r4, #1252] + str r3, [r4, #1260] mov r2, r1 bl FlashReadPages - ldr r3, [r4, #1260] - ldr r0, .L3820+16 + ldr r3, [r4, #1268] + ldr r0, .L3826+16 mov r1, r6 ldr r2, [r3] str r2, [sp] @@ -23374,36 +23415,36 @@ FtlDumpSysBlock: ldr r2, [r3, #8] str r2, [sp, #8] ldr r3, [r3, #12] - ldr r2, [r4, #1248] + ldr r2, [r4, #1256] str r3, [sp, #12] - ldr r3, [r4, #1256] + ldr r3, [r4, #1264] ldr r3, [r3] str r3, [sp, #16] - ldr r3, [r4, #1252] - bl printk ldr r3, [r4, #1260] + bl printk + ldr r3, [r4, #1268] ldr r3, [r3] adds r3, r3, #1 - beq .L3814 - ldr r0, .L3820+20 + beq .L3820 + ldr r0, .L3826+20 movs r2, #4 ldr r1, [r5, #3316] mov r3, #768 bl rknand_print_hex -.L3814: +.L3820: add r9, r9, #1 - b .L3813 -.L3819: + b .L3819 +.L3825: add sp, sp, #28 @ sp needed pop {r4, r5, r6, r7, r8, r9, pc} -.L3821: +.L3827: .align 2 -.L3820: +.L3826: .word .LANCHOR2 .word .LANCHOR4 .word .LANCHOR0 - .word .LANCHOR4+1248 + .word .LANCHOR4+1256 .word .LC167 .word .LC168 .fnend @@ -23421,15 +23462,15 @@ dump_map_info: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #52 sub sp, sp, #52 - ldr r4, .L3840 + ldr r4, .L3846 addw fp, r4, #2348 ldrh r7, [r4, #2328] mov r9, r4 -.L3823: +.L3829: ldrh r3, [r4, #2330] - ldr r6, .L3840+4 + ldr r6, .L3846+4 cmp r3, r7 - bls .L3837 + bls .L3843 ldr r1, [r6, #1148] mov r8, #0 ldrh ip, [r9, #2320] @@ -23440,10 +23481,10 @@ dump_map_info: ldr r3, [r6, #1144] ldrh r1, [r9, #2400] str r1, [sp, #28] -.L3833: +.L3839: uxth r1, r8 cmp r1, ip - bcs .L3838 + bcs .L3844 mov r1, r7 ldrb r0, [fp, r8] @ zero_extendqisi2 str r3, [sp, #44] @@ -23456,7 +23497,7 @@ dump_map_info: ldr ip, [sp, #36] ldr r2, [sp, #40] ldr r3, [sp, #44] - cbnz r0, .L3824 + cbnz r0, .L3830 mla r0, r10, r5, r2 lsls r1, r1, #10 str r1, [r0, #4] @@ -23471,23 +23512,23 @@ dump_map_info: str r3, [r0, #8] add r1, r1, lr str r1, [r0, #12] -.L3824: +.L3830: add r8, r8, #1 - b .L3833 -.L3838: - cbz r5, .L3828 + b .L3839 +.L3844: + cbz r5, .L3834 ldr r0, [r6, #3304] mov r1, r5 movs r2, #1 mov r8, #0 bl FlashReadPages mov r10, #36 -.L3829: +.L3835: uxth r3, r8 cmp r3, r5 - bcs .L3828 + bcs .L3834 ldr r3, [r6, #3304] - ldr r0, .L3840+8 + ldr r0, .L3846+8 mla r3, r10, r8, r3 add r8, r8, #1 adds r2, r3, #4 @@ -23505,39 +23546,39 @@ dump_map_info: str r3, [sp, #16] ldr r3, [lr] bl printk - b .L3829 -.L3828: + b .L3835 +.L3834: adds r7, r7, #1 uxth r7, r7 - b .L3823 -.L3837: - ldr r7, .L3840+12 + b .L3829 +.L3843: + ldr r7, .L3846+12 mov r8, #0 -.L3832: +.L3838: ldrh r2, [r6, #3452] sxth r3, r8 - ldr r5, .L3840+4 + ldr r5, .L3846+4 cmp r3, r2 - bge .L3835 + bge .L3841 lsls r5, r3, #1 mov r9, #0 -.L3836: +.L3842: ldrh r2, [r4, #2390] sxth r3, r9 add r9, r9, #1 cmp r3, r2 - bge .L3839 + bge .L3845 ldr r2, [r6, #3368] movs r1, #1 - ldr r0, .L3840+16 + ldr r0, .L3846+16 ldrh r2, [r2, r5] orr r3, r3, r2, lsl #10 mov r2, r1 - str r3, [r7, #1252] + str r3, [r7, #1260] bl FlashReadPages - ldr r3, [r7, #1260] + ldr r3, [r7, #1268] ldr r1, [r6, #3368] - ldr r2, [r7, #1256] + ldr r2, [r7, #1264] ldr r0, [r3] ldrh r1, [r1, r5] str r0, [sp] @@ -23546,31 +23587,31 @@ dump_map_info: ldr r0, [r3, #8] str r0, [sp, #8] ldr r3, [r3, #12] - ldr r0, .L3840+20 + ldr r0, .L3846+20 str r3, [sp, #12] ldr r3, [r2] str r3, [sp, #16] ldr r3, [r2, #4] str r3, [sp, #20] - ldr r2, [r7, #1248] - ldr r3, [r7, #1252] + ldr r2, [r7, #1256] + ldr r3, [r7, #1260] bl printk - b .L3836 -.L3839: + b .L3842 +.L3845: add r8, r8, #1 - b .L3832 -.L3835: + b .L3838 +.L3841: ldr r1, [r5, #3368] movs r2, #2 ldr r3, [r4, #2416] - ldr r0, .L3840+24 + ldr r0, .L3846+24 bl rknand_print_hex ldr r1, [r5, #3388] ldrh r3, [r4, #2424] movs r2, #4 - ldr r0, .L3840+28 + ldr r0, .L3846+28 bl rknand_print_hex - ldr r0, .L3840+32 + ldr r0, .L3846+32 ldr r1, [r5, #3392] movs r2, #4 ldrh r3, [r4, #2424] @@ -23578,14 +23619,14 @@ dump_map_info: @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, lr} b rknand_print_hex -.L3841: +.L3847: .align 2 -.L3840: +.L3846: .word .LANCHOR0 .word .LANCHOR2 .word .LC169 .word .LANCHOR4 - .word .LANCHOR4+1248 + .word .LANCHOR4+1256 .word .LC113 .word .LC170 .word .LC171 @@ -23602,17 +23643,17 @@ flash_boot_enter_slc_mode: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L3844 + ldr r3, .L3850 ldr r2, [r3, #2264] - ldr r3, .L3844+4 + ldr r3, .L3850+4 cmp r2, r3 - bne .L3842 + bne .L3848 b flash_enter_slc_mode -.L3842: +.L3848: bx lr -.L3845: +.L3851: .align 2 -.L3844: +.L3850: .word .LANCHOR0 .word 1446522928 .fnend @@ -23627,17 +23668,17 @@ flash_boot_exit_slc_mode: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L3848 + ldr r3, .L3854 ldr r2, [r3, #2264] - ldr r3, .L3848+4 + ldr r3, .L3854+4 cmp r2, r3 - bne .L3846 + bne .L3852 b flash_exit_slc_mode -.L3846: +.L3852: bx lr -.L3849: +.L3855: .align 2 -.L3848: +.L3854: .word .LANCHOR0 .word 1446522928 .fnend @@ -23654,33 +23695,33 @@ write_idblock: push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r8, r0 - ldr r7, .L3899 + ldr r7, .L3905 .pad #132 sub sp, sp, #132 mov r0, #256000 mov fp, r1 mov r6, r2 ldr r3, [r7, #44] - ldr r4, [r7, #4] + ldr r4, [r7, #36] ldrb r5, [r3, #9] @ zero_extendqisi2 bl ftl_malloc str r0, [sp, #12] cmp r0, #0 - beq .L3877 + beq .L3883 addw r2, r8, #511 lsr r10, r2, #9 cmp r10, #8 - bls .L3875 + bls .L3881 cmp r10, #500 - bhi .L3877 - b .L3852 -.L3875: + bhi .L3883 + b .L3858 +.L3881: mov r10, #8 -.L3852: +.L3858: ldr r2, [fp] - ldr r3, .L3899+4 + ldr r3, .L3905+4 cmp r2, r3 - bne .L3877 + bne .L3883 smulbb r3, r5, r4 uxth r3, r3 str r3, [sp, #16] @@ -23693,9 +23734,9 @@ write_idblock: str r0, [sp, #40] add r0, fp, #254976 add r0, r0, #512 -.L3856: +.L3862: ldr r1, [r0, #-4]! - cbnz r1, .L3853 + cbnz r1, .L3859 ldr r1, [fp, r3, lsl #2] adds r3, r3, #1 cmp r3, #4096 @@ -23704,32 +23745,32 @@ write_idblock: movhi r3, #0 cmp r2, #4096 str r1, [r0, #512] - bne .L3856 - b .L3855 -.L3853: - ldr r0, .L3899+8 + bne .L3862 + b .L3861 +.L3859: + ldr r0, .L3905+8 bl printk -.L3855: +.L3861: movs r3, #5 - ldr r0, .L3899+12 + ldr r0, .L3905+12 mov r1, r6 movs r2, #4 bl rknand_print_hex ldr r1, [fp, #512] - ldrb r2, [r7, #1] @ zero_extendqisi2 + ldrb r2, [r7, #33] @ zero_extendqisi2 subs r4, r6, #4 - ldr r0, .L3899+16 + ldr r0, .L3905+16 bl printk - ldr r2, .L3899+20 - ldrh r3, [r7, #142] + ldr r2, .L3905+20 + ldrh r3, [r7, #146] mov r1, r10 - ldr r0, .L3899+24 - ldr r2, [r2, #1204] - ldr r5, .L3899 + ldr r0, .L3905+24 + ldr r2, [r2, #1212] + ldr r5, .L3905 str r2, [sp] mov r2, r10 bl printk - ldrb r3, [r7, #1] @ zero_extendqisi2 + ldrb r3, [r7, #33] @ zero_extendqisi2 ldr r2, [fp, #512] cmp r2, r3 it hi @@ -23739,37 +23780,37 @@ write_idblock: movs r3, #0 str r3, [sp, #24] str r3, [sp, #20] -.L3873: +.L3879: ldr r2, [r4, #4] - ldrb r3, [r5, #1] @ zero_extendqisi2 - ldr r7, .L3899 + ldrb r3, [r5, #33] @ zero_extendqisi2 + ldr r7, .L3905 cmp r2, r3 - bcs .L3858 - ldr r3, .L3899+20 - ldr r3, [r3, #1204] + bcs .L3864 + ldr r3, .L3905+20 + ldr r3, [r3, #1212] cmp r2, r3 - bcc .L3858 + bcc .L3864 ldr r3, [sp, #40] cmp r3, #1 - bls .L3859 + bls .L3865 ldr r3, [sp, #20] - cbz r3, .L3859 + cbz r3, .L3865 ldr r3, [r4] adds r3, r3, #1 cmp r2, r3 - beq .L3858 -.L3859: + beq .L3864 +.L3865: movs r1, #0 mov r2, #512 ldr r0, [sp, #12] bl memset ldr r6, [r4, #4] mov r2, r10 - ldr r0, .L3899+28 + ldr r0, .L3905+28 ldr r3, [sp, #16] muls r6, r3, r6 ldr r3, [r7, #44] - ldr r7, [r7, #4] + ldr r7, [r7, #36] ldrb r9, [r3, #9] @ zero_extendqisi2 mov r1, r6 bl printk @@ -23785,16 +23826,16 @@ write_idblock: mov r2, r0 bl FlashEraseBlock cmp r10, r7 - bls .L3878 + bls .L3884 movs r0, #0 adds r1, r6, r7 mov r8, #2 mov r2, r0 bl FlashEraseBlock - b .L3860 -.L3878: + b .L3866 +.L3884: mov r8, #1 -.L3860: +.L3866: movs r0, #0 bl flash_boot_exit_slc_mode ldr r3, [r5, #44] @@ -23812,57 +23853,57 @@ write_idblock: subs r3, r6, r1 str fp, [sp, #28] str r3, [sp, #32] -.L3861: +.L3867: ldr r3, [sp, #48] - ldr r7, .L3899 + ldr r7, .L3905 cmp r8, r3 - bcs .L3897 + bcs .L3903 add r3, r8, ip ubfx r3, r3, #2, #16 - cbz r3, .L3862 + cbz r3, .L3868 adds r2, r3, #1 add r1, r5, r2, lsl #1 - ldrh r7, [r1, #148] - ldrb r1, [r5, #144] @ zero_extendqisi2 - cbz r1, .L3863 + ldrh r7, [r1, #152] + ldrb r1, [r5, #148] @ zero_extendqisi2 + cbz r1, .L3869 ldr r1, [r5, #2264] - ldr r0, .L3899+32 + ldr r0, .L3905+32 cmp r1, r0 it eq moveq r7, r2 -.L3863: +.L3869: add r7, r7, #1073741824 subs r7, r7, #1 lsls r7, r7, #2 str r7, [sp, #64] -.L3862: +.L3868: movw r2, #61424 str r2, [sp, #68] add r2, r5, r3, lsl #1 - ldrh r7, [r2, #148] - ldrb r2, [r5, #144] @ zero_extendqisi2 - cbz r2, .L3864 + ldrh r7, [r2, #152] + ldrb r2, [r5, #148] @ zero_extendqisi2 + cbz r2, .L3870 ldr r2, [r5, #2264] - ldr r1, .L3899+32 + ldr r1, .L3905+32 cmp r2, r1 it eq moveq r7, r3 -.L3864: +.L3870: ldr r3, [sp, #32] add r8, r8, #4 str ip, [sp, #56] uxth r8, r8 mla r2, r9, r7, r3 - ldr r3, .L3899 + ldr r3, .L3905 ldrb r3, [r3, #2312] @ zero_extendqisi2 str r2, [sp, #52] str r3, [sp, #36] - ldr r3, .L3899+20 - ldrb r0, [r3, #1210] @ zero_extendqisi2 + ldr r3, .L3905+20 + ldrb r0, [r3, #1218] @ zero_extendqisi2 bl FlashBchSel movs r0, #0 bl flash_boot_enter_slc_mode - ldr r3, .L3899 + ldr r3, .L3905 ldr r3, [r3, #44] ldrb r1, [r3, #9] @ zero_extendqisi2 ldr r2, [sp, #52] @@ -23889,10 +23930,10 @@ write_idblock: ldr ip, [sp, #56] add r3, r3, #2048 str r3, [sp, #28] - b .L3861 -.L3900: + b .L3867 +.L3906: .align 2 -.L3899: +.L3905: .word .LANCHOR0 .word -52655045 .word .LC173 @@ -23902,14 +23943,14 @@ write_idblock: .word .LC176 .word .LC177 .word 1446522928 -.L3897: +.L3903: mov r1, r6 mov r2, r10 movs r3, #0 - ldr r0, .L3901 + ldr r0, .L3907 bl printk ldr r6, [r4, #4] - ldr r0, .L3901+4 + ldr r0, .L3907+4 mov r9, #0 ldr r3, [sp, #16] muls r6, r3, r6 @@ -23917,7 +23958,7 @@ write_idblock: ldrb r3, [r3, #9] @ zero_extendqisi2 mov r1, r6 str r3, [sp, #28] - ldr r3, [r7, #4] + ldr r3, [r7, #36] ldrh r2, [sp, #28] smulbb r8, r3, r2 mov r2, r10 @@ -23934,24 +23975,24 @@ write_idblock: ldr r3, [sp, #12] ubfx ip, ip, #2, #2 str r3, [sp, #36] -.L3866: +.L3872: cmp r9, r10 - bcs .L3898 + bcs .L3904 ldr r3, [sp, #32] rsb r8, ip, #4 - ldrb r1, [r5, #144] @ zero_extendqisi2 + ldrb r1, [r5, #148] @ zero_extendqisi2 add r3, r9, r3 uxth r8, r8 ubfx r3, r3, #2, #16 add r2, r5, r3, lsl #1 - ldrh r2, [r2, #148] - cbz r1, .L3867 + ldrh r2, [r2, #152] + cbz r1, .L3873 ldr r1, [r5, #2264] - ldr r0, .L3901+8 + ldr r0, .L3907+8 cmp r1, r0 it eq moveq r2, r3 -.L3867: +.L3873: ldr r3, [sp, #48] add r9, r9, r8 ldr r1, [sp, #28] @@ -23962,10 +24003,10 @@ write_idblock: ldr r2, [r7, #44] str ip, [sp, #52] ldrb r1, [r2, #9] @ zero_extendqisi2 - ldr r2, .L3901+12 + ldr r2, .L3907+12 str r3, [sp, #60] str r1, [sp, #56] - ldrb r0, [r2, #1210] @ zero_extendqisi2 + ldrb r0, [r2, #1218] @ zero_extendqisi2 bl FlashBchSel movs r0, #0 bl flash_boot_enter_slc_mode @@ -23987,17 +24028,17 @@ write_idblock: ldr r3, [sp, #36] add r3, r3, r8, lsl #9 str r3, [sp, #36] - b .L3866 -.L3898: + b .L3872 +.L3904: mov r1, r6 movs r3, #0 - ldr r0, .L3901+16 + ldr r0, .L3907+16 mov r2, r10 bl printk movs r6, #0 mov r3, fp ldr r0, [sp, #12] -.L3872: +.L3878: mov r8, r0 mov r7, r3 ldr r1, [r8] @@ -24005,13 +24046,13 @@ write_idblock: ldr r2, [r7] adds r3, r3, #4 cmp r1, r2 - beq .L3869 + beq .L3875 movs r1, #0 mov r2, #512 ldr r0, [sp, #12] bl memset ldr r3, [r8] - ldr r0, .L3901+20 + ldr r0, .L3907+20 str r3, [sp] ldr r3, [r7] bic r7, r6, #255 @@ -24021,13 +24062,13 @@ write_idblock: mov r3, r6 ldr r2, [r4, #4] bl printk - ldr r0, .L3901+24 + ldr r0, .L3907+24 add r1, fp, r7 movs r2, #4 mov r3, #256 bl rknand_print_hex movs r2, #4 - ldr r0, .L3901+28 + ldr r0, .L3907+28 ldr r3, [sp, #12] adds r1, r3, r7 mov r3, #256 @@ -24042,55 +24083,55 @@ write_idblock: bl FlashEraseBlock ldr r3, [sp, #40] cmp r3, #1 - bls .L3870 + bls .L3876 ldr r1, [r4, #4] movs r0, #0 ldr r3, [sp, #16] mov r2, r0 mla r1, r1, r3, r3 bl FlashEraseBlock -.L3870: +.L3876: movs r0, #0 bl flash_boot_exit_slc_mode - ldr r0, .L3901+32 + ldr r0, .L3907+32 ldr r1, [r4, #4] bl printk ldr r3, [sp, #44] cmp r6, r3 - bcc .L3858 - b .L3871 -.L3869: + bcc .L3864 + b .L3877 +.L3875: ldr r2, [sp, #44] adds r6, r6, #1 cmp r6, r2 - bne .L3872 -.L3871: + bne .L3878 +.L3877: ldr r3, [sp, #24] adds r3, r3, #1 str r3, [sp, #24] -.L3858: +.L3864: ldr r3, [sp, #20] adds r4, r4, #4 adds r3, r3, #1 str r3, [sp, #20] cmp r3, #5 - bne .L3873 + bne .L3879 ldr r0, [sp, #12] bl ftl_free ldr r3, [sp, #24] clz r0, r3 lsrs r0, r0, #5 negs r0, r0 - b .L3851 -.L3877: + b .L3857 +.L3883: mov r0, #-1 -.L3851: +.L3857: add sp, sp, #132 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3902: +.L3908: .align 2 -.L3901: +.L3907: .word .LC178 .word .LC179 .word 1446522928 @@ -24119,36 +24160,36 @@ write_loader_lba: sub sp, sp, #52 mov r6, r1 mov r8, r2 - ldr r4, .L3925 - bne .L3904 + ldr r4, .L3931 + bne .L3910 ldr r2, [r2] - ldr r3, .L3925+4 + ldr r3, .L3931+4 cmp r2, r3 - bne .L3904 + bne .L3910 mov r0, #256000 movs r3, #1 - strb r3, [r4, #1012] + strb r3, [r4, #1020] bl ftl_malloc movs r1, #0 mov r2, #256000 - str r0, [r4, #1016] + str r0, [r4, #1024] bl ftl_memset - str r5, [r4, #1020] -.L3904: + str r5, [r4, #1028] +.L3910: str r6, [sp] mov r3, r5 - ldr r0, .L3925+8 - ldr r1, [r4, #1016] + ldr r0, .L3931+8 + ldr r1, [r4, #1024] ldr r2, [r8] bl printk - ldrb r3, [r4, #1012] @ zero_extendqisi2 - ldr r9, .L3925 + ldrb r3, [r4, #1020] @ zero_extendqisi2 + ldr r9, .L3931 cmp r3, #0 - beq .L3903 + beq .L3909 sub r0, r5, #64 - ldr r7, [r9, #1016] + ldr r7, [r9, #1024] cmp r0, #500 - bcs .L3906 + bcs .L3912 rsb r2, r5, #564 add r0, r7, r0, lsl #9 cmp r2, r6 @@ -24157,30 +24198,30 @@ write_loader_lba: movcs r2, r6 lsls r2, r2, #9 bl ftl_memcpy - b .L3907 -.L3906: + b .L3913 +.L3912: cmp r5, #564 - bcs .L3915 -.L3907: - ldr r3, [r4, #1020] + bcs .L3921 +.L3913: + ldr r3, [r4, #1028] cmp r3, r5 - beq .L3913 - ldr r2, .L3925 + beq .L3919 + ldr r2, .L3931 movs r3, #0 mov r8, r3 - strb r3, [r2, #1012] - cbz r7, .L3914 + strb r3, [r2, #1020] + cbz r7, .L3920 mov r0, r7 bl ftl_free -.L3914: - str r8, [r4, #1016] -.L3913: +.L3920: + str r8, [r4, #1024] +.L3919: add r5, r5, r6 - str r5, [r4, #1020] - b .L3903 -.L3915: - ldr r3, .L3925+12 - ldr r0, [r9, #1020] + str r5, [r4, #1028] + b .L3909 +.L3921: + ldr r3, .L3931+12 + ldr r0, [r9, #1028] ldr r3, [r3, #44] subs r0, r0, #64 cmp r0, #500 @@ -24188,7 +24229,7 @@ write_loader_lba: movcs r0, #500 ldrb r3, [r3, #9] @ zero_extendqisi2 cmp r3, #4 - beq .L3916 + beq .L3922 movs r3, #2 str r3, [sp, #8] movs r3, #3 @@ -24199,10 +24240,10 @@ write_loader_lba: str r3, [sp, #20] movs r3, #6 str r3, [sp, #24] - b .L3909 -.L3916: + b .L3915 +.L3922: movs r3, #0 -.L3908: +.L3914: add r1, sp, #8 lsls r2, r3, #1 cmp r0, #256 @@ -24211,37 +24252,37 @@ write_loader_lba: str r2, [r1, r3, lsl #2] adds r3, r3, #1 cmp r3, #5 - bne .L3908 -.L3909: + bne .L3914 +.L3915: movw r3, #63872 -.L3912: +.L3918: ldr r2, [r7, r3, lsl #2] - cbz r2, .L3910 + cbz r2, .L3916 adds r3, r3, #128 lsls r0, r3, #2 - b .L3911 -.L3910: + b .L3917 +.L3916: subs r3, r3, #1 cmp r3, #4096 - bne .L3912 + bne .L3918 lsls r0, r0, #9 -.L3911: +.L3917: mov r1, r7 add r2, sp, #8 bl write_idblock - ldr r0, [r4, #1016] + ldr r0, [r4, #1024] movs r7, #0 - strb r7, [r4, #1012] + strb r7, [r4, #1020] bl ftl_free - str r7, [r4, #1016] - b .L3913 -.L3903: + str r7, [r4, #1024] + b .L3919 +.L3909: add sp, sp, #52 @ sp needed pop {r4, r5, r6, r7, r8, r9, pc} -.L3926: +.L3932: .align 2 -.L3925: +.L3931: .word .LANCHOR5 .word -52655045 .word .LC185 @@ -24265,13 +24306,13 @@ FtlWrite: cmp r3, #1984 mov r4, r1 mov r6, r2 - bcs .L3928 - cbnz r0, .L3928 + bcs .L3934 + cbnz r0, .L3934 mov r0, r1 mov r1, r2 mov r2, r5 bl write_loader_lba -.L3928: +.L3934: mov r0, r7 mov r1, r4 mov r2, r6 @@ -24289,7 +24330,7 @@ rknand_sys_storage_ioctl: .fnstart @ args = 0, pretend = 0, frame = 520 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L3988 + ldr r3, .L3994 push {r4, r5, r6, r7, lr} .save {r4, r5, r6, r7, lr} cmp r1, r3 @@ -24297,131 +24338,131 @@ rknand_sys_storage_ioctl: sub sp, sp, #524 mov r4, r1 mov r5, r2 - beq .L3931 - bhi .L3932 + beq .L3937 + bhi .L3938 subw r3, r3, #2086 cmp r1, r3 - beq .L3933 - bhi .L3934 + beq .L3939 + bhi .L3940 subs r3, r3, #238 cmp r1, r3 - beq .L3935 + beq .L3941 adds r3, r3, #237 cmp r1, r3 - beq .L3936 - b .L3966 -.L3934: - ldr r3, .L3988+4 + beq .L3942 + b .L3972 +.L3940: + ldr r3, .L3994+4 cmp r1, r3 - beq .L3937 + beq .L3943 adds r3, r3, #1 cmp r1, r3 - beq .L3938 + beq .L3944 subs r3, r3, #124 cmp r1, r3 - bne .L3966 - b .L3986 -.L3932: - ldr r3, .L3988+8 + bne .L3972 + b .L3992 +.L3938: + ldr r3, .L3994+8 cmp r1, r3 mov r6, r3 - beq .L3940 - bhi .L3941 + beq .L3946 + bhi .L3947 subw r3, r3, #2526 cmp r1, r3 - beq .L3931 + beq .L3937 adds r3, r3, #10 cmp r1, r3 - beq .L3931 - b .L3966 -.L3941: - ldr r3, .L3988+12 + beq .L3937 + b .L3972 +.L3947: + ldr r3, .L3994+12 cmp r1, r3 - beq .L3940 - bcc .L3942 + beq .L3946 + bcc .L3948 adds r3, r3, #1 cmp r1, r3 - beq .L3942 - b .L3966 -.L3936: - ldr r0, .L3988+16 + beq .L3948 + b .L3972 +.L3942: + ldr r0, .L3994+16 bl printk mov r1, r5 mov r2, #520 mov r0, sp bl rk_copy_from_user - cbz r0, .L3943 -.L3949: - ldr r0, .L3988+20 + cbz r0, .L3949 +.L3955: + ldr r0, .L3994+20 bl printk - b .L3983 -.L3943: + b .L3989 +.L3949: ldr r2, [sp] - ldr r3, .L3988+24 + ldr r3, .L3994+24 cmp r2, r3 - beq .L3944 -.L3946: + beq .L3950 +.L3952: mov r4, #-1 - b .L3945 -.L3944: + b .L3951 +.L3950: ldr r3, [sp, #4] cmp r3, #512 - bhi .L3946 - ldr r4, .L3988+28 + bhi .L3952 + ldr r4, .L3994+28 mov r2, #512 mov r0, sp - ldr r1, [r4, #1024] + ldr r1, [r4, #1032] bl memcpy - ldr r2, [r4, #1028] - ldr r3, .L3988+32 + ldr r2, [r4, #1036] + ldr r3, .L3994+32 cmp r2, r3 - beq .L3947 + beq .L3953 movs r1, #0 add r0, sp, #64 movs r2, #128 str r1, [sp, #8] str r1, [sp, #12] bl memset -.L3947: +.L3953: movs r1, #0 add r0, sp, #256 mov r2, #256 str r1, [sp, #16] bl memset -.L3978: +.L3984: mov r0, r5 mov r1, sp mov r2, #520 bl rk_copy_to_user cmp r0, #0 - bne .L3983 - b .L3982 -.L3933: - ldr r0, .L3988+36 + bne .L3989 + b .L3988 +.L3939: + ldr r0, .L3994+36 bl printk mov r1, r5 mov r2, #520 mov r0, sp bl rk_copy_from_user cmp r0, #0 - bne .L3949 + bne .L3955 ldr r2, [sp] - ldr r3, .L3988+24 + ldr r3, .L3994+24 cmp r2, r3 - bne .L3946 + bne .L3952 ldr r3, [sp, #4] cmp r3, #512 - bhi .L3946 - ldr r2, .L3988+28 - ldr r3, .L3988+32 - ldr r1, [r2, #1028] + bhi .L3952 + ldr r2, .L3994+28 + ldr r3, .L3994+32 + ldr r1, [r2, #1036] cmp r1, r3 - bne .L3967 + bne .L3973 ldr r3, [sp, #12] subs r1, r3, #1 cmp r1, #127 - bhi .L3968 - ldr r4, [r2, #1024] + bhi .L3974 + ldr r4, [r2, #1032] add r1, sp, #64 add r0, r4, #64 str r3, [r4, #12] @@ -24429,62 +24470,62 @@ rknand_sys_storage_ioctl: bl memcpy movs r0, #1 mov r1, r4 - b .L3981 -.L3938: - ldr r0, .L3988+40 + b .L3987 +.L3944: + ldr r0, .L3994+40 bl printk mov r1, r5 mov r2, #520 mov r0, sp bl rk_copy_from_user cmp r0, #0 - bne .L3949 + bne .L3955 ldr r2, [sp] - ldr r3, .L3988+44 + ldr r3, .L3994+44 cmp r2, r3 - bne .L3946 + bne .L3952 ldr r3, [sp, #4] cmp r3, #512 - bhi .L3946 - ldr r5, .L3988+28 - ldr r3, [r5, #1032] - cbnz r3, .L3950 -.L3953: + bhi .L3952 + ldr r5, .L3994+28 + ldr r3, [r5, #1040] + cbnz r3, .L3956 +.L3959: movs r0, #0 - b .L3930 -.L3950: - ldr r3, [r5, #1036] - ldr r2, .L3988+48 + b .L3936 +.L3956: + ldr r3, [r5, #1044] + ldr r2, .L3994+48 ldr r1, [r3] cmp r1, r2 - beq .L3951 + beq .L3957 str r2, [r3] mov r2, #504 - ldr r3, .L3988+28 - ldr r3, [r3, #1036] + ldr r3, .L3994+28 + ldr r3, [r3, #1044] str r2, [r3, #4] movs r2, #0 str r2, [r3, #8] str r2, [r3, #12] -.L3951: - ldr r1, [r5, #1036] +.L3957: + ldr r1, [r5, #1044] movs r4, #0 mov r0, r4 str r4, [r1, #16] bl StorageSysDataStore - ldr r3, [r5, #1024] - ldr r2, .L3988+24 + ldr r3, [r5, #1032] + ldr r2, .L3994+24 ldr r1, [r3] cmp r1, r2 it ne strne r2, [r3] - ldr r6, [r5, #1024] + ldr r6, [r5, #1032] itt ne movne r2, #504 - ldrne r3, .L3988+28 + ldrne r3, .L3994+28 add r0, r6, #64 itt ne - ldrne r3, [r3, #1024] + ldrne r3, [r3, #1032] strne r4, [r3, #8] mov r4, #0 it ne @@ -24496,61 +24537,61 @@ rknand_sys_storage_ioctl: movs r0, #1 mov r1, r6 bl StorageSysDataStore - str r4, [r5, #1032] - str r4, [r5, #1028] - b .L3945 -.L3937: - ldr r0, .L3988+52 + str r4, [r5, #1040] + str r4, [r5, #1036] + b .L3951 +.L3943: + ldr r0, .L3994+52 bl printk mov r1, r5 mov r2, #520 mov r0, sp bl rk_copy_from_user cmp r0, #0 - bne .L3949 + bne .L3955 ldr r2, [sp] - ldr r3, .L3988+56 + ldr r3, .L3994+56 cmp r2, r3 - bne .L3946 + bne .L3952 ldr r3, [sp, #4] cmp r3, #512 - bhi .L3946 - ldr r5, .L3988+28 - ldr r3, [r5, #1032] + bhi .L3952 + ldr r5, .L3994+28 + ldr r3, [r5, #1040] cmp r3, #1 - beq .L3953 - ldr r2, [r5, #1036] - ldr r3, .L3988+48 + beq .L3959 + ldr r2, [r5, #1044] + ldr r3, .L3994+48 ldr r1, [r2] cmp r1, r3 - beq .L3954 + beq .L3960 str r3, [r2] mov r2, #504 - ldr r3, [r5, #1036] + ldr r3, [r5, #1044] str r2, [r3, #4] movs r2, #0 str r2, [r3, #8] str r2, [r3, #12] -.L3954: - ldr r1, [r5, #1036] +.L3960: + ldr r1, [r5, #1044] movs r3, #1 movs r0, #0 str r3, [r1, #16] bl StorageSysDataStore - ldr r3, [r5, #1024] - ldr r2, .L3988+24 + ldr r3, [r5, #1032] + ldr r2, .L3994+24 ldr r1, [r3] cmp r1, r2 - beq .L3955 + beq .L3961 str r2, [r3] mov r2, #504 - ldr r3, .L3988+28 - ldr r3, [r3, #1024] + ldr r3, .L3994+28 + ldr r3, [r3, #1032] str r2, [r3, #4] movs r2, #0 str r2, [r3, #8] -.L3955: - ldr r6, [r5, #1024] +.L3961: + ldr r6, [r5, #1032] movs r4, #0 movs r2, #128 mov r1, r4 @@ -24561,37 +24602,37 @@ rknand_sys_storage_ioctl: mov r1, r6 bl StorageSysDataStore movs r3, #1 - str r3, [r5, #1032] - b .L3945 -.L3986: - ldr r0, .L3988+60 + str r3, [r5, #1040] + b .L3951 +.L3992: + ldr r0, .L3994+60 bl printk mov r1, r5 mov r2, #520 mov r0, sp bl rk_copy_from_user cmp r0, #0 - bne .L3949 + bne .L3955 ldr r2, [sp] - ldr r3, .L3988+64 + ldr r3, .L3994+64 cmp r2, r3 - bne .L3946 + bne .L3952 ldr r2, [sp, #4] cmp r2, #512 - bhi .L3946 + bhi .L3952 add r0, sp, #8 - ldr r1, .L3988+68 - b .L3984 -.L3931: - ldr r0, .L3988+72 + ldr r1, .L3994+68 + b .L3990 +.L3937: + ldr r0, .L3994+72 cmp r4, r0 mov r7, r0 - bne .L3957 - ldr r0, .L3988+76 - b .L3980 -.L3989: + bne .L3963 + ldr r0, .L3994+76 + b .L3986 +.L3995: .align 2 -.L3988: +.L3994: .word 1074031656 .word 1074029694 .word 1074034192 @@ -24609,32 +24650,32 @@ rknand_sys_storage_ioctl: .word 1112755781 .word .LC191 .word 1094995539 - .word .LANCHOR5+1040 + .word .LANCHOR5+1048 .word 1074031666 .word .LC192 -.L3957: - ldr r3, .L3990 +.L3963: + ldr r3, .L3996 cmp r4, r3 ite eq - ldreq r0, .L3990+4 - ldrne r0, .L3990+8 -.L3980: + ldreq r0, .L3996+4 + ldrne r0, .L3996+8 +.L3986: bl printk mov r1, r5 mov r2, #520 mov r0, sp bl rk_copy_from_user cmp r0, #0 - bne .L3949 + bne .L3955 ldr r2, [sp] - ldr r3, .L3990+12 + ldr r3, .L3996+12 cmp r2, r3 - bne .L3983 - ldr r3, .L3990 - ldr r6, .L3990+16 + bne .L3989 + ldr r3, .L3996 + ldr r6, .L3996+16 cmp r4, r3 - bne .L3960 - ldr r3, [r6, #1024] + bne .L3966 + ldr r3, [r6, #1032] mov r0, r5 mov r1, sp movs r2, #16 @@ -24643,31 +24684,31 @@ rknand_sys_storage_ioctl: strb r3, [sp, #8] bl rk_copy_to_user cmp r0, #0 - beq .L3930 - b .L3983 -.L3960: - ldr r3, [r6, #1552] + beq .L3936 + b .L3989 +.L3966: + ldr r3, [r6, #1560] cmp r3, #10 - bhi .L3983 - ldr r1, [r6, #1024] + bhi .L3989 + ldr r1, [r6, #1032] ldr r3, [sp, #4] ldr r2, [r1, #24] cmp r2, r3 - beq .L3961 - cbz r2, .L3961 + beq .L3967 + cbz r2, .L3967 mov r1, r3 - ldr r0, .L3990+20 + ldr r0, .L3996+20 bl printk - ldr r3, [r6, #1552] + ldr r3, [r6, #1560] adds r3, r3, #1 - str r3, [r6, #1552] -.L3983: + str r3, [r6, #1560] +.L3989: mvn r0, #13 - b .L3930 -.L3961: + b .L3936 +.L3967: movs r2, #0 cmp r4, r7 - str r2, [r6, #1552] + str r2, [r6, #1560] mov r0, #1 itet eq moveq r3, r2 @@ -24677,99 +24718,99 @@ rknand_sys_storage_ioctl: str r2, [r1, #20] bl StorageSysDataStore adds r0, r0, #1 - bne .L3982 - b .L3987 -.L3940: - ldr r0, .L3990+24 + bne .L3988 + b .L3993 +.L3946: + ldr r0, .L3996+24 bl printk mov r1, r5 mov r2, #520 mov r0, sp bl rk_copy_from_user cmp r0, #0 - bne .L3949 + bne .L3955 ldr r2, [sp] - ldr r3, .L3990+28 + ldr r3, .L3996+28 cmp r2, r3 - bne .L3946 + bne .L3952 ldr r2, [sp, #4] cmp r2, #504 - bhi .L3946 - ldr r3, .L3990+16 + bhi .L3952 + ldr r3, .L3996+16 cmp r4, r6 add r0, sp, #8 ite eq - ldreq r1, [r3, #1556] - ldrne r1, [r3, #1560] + ldreq r1, [r3, #1564] + ldrne r1, [r3, #1568] adds r1, r1, #8 -.L3984: +.L3990: bl memcpy - b .L3978 -.L3942: - ldr r0, .L3990+32 + b .L3984 +.L3948: + ldr r0, .L3996+32 bl printk mov r1, r5 mov r2, #520 mov r0, sp bl rk_copy_from_user cmp r0, #0 - bne .L3949 + bne .L3955 ldr r2, [sp] - ldr r3, .L3990+28 + ldr r3, .L3996+28 cmp r2, r3 - bne .L3946 + bne .L3952 ldr r2, [sp, #4] cmp r2, #504 - bhi .L3946 - ldr r3, .L3990+36 + bhi .L3952 + ldr r3, .L3996+36 adds r2, r2, #8 cmp r4, r3 - ldr r4, .L3990+16 - bne .L3965 + ldr r4, .L3996+16 + bne .L3971 mov r1, sp - ldr r0, [r4, #1556] + ldr r0, [r4, #1564] bl memcpy movs r0, #2 - ldr r1, [r4, #1556] - b .L3981 -.L3965: + ldr r1, [r4, #1564] + b .L3987 +.L3971: mov r1, sp - ldr r0, [r4, #1560] + ldr r0, [r4, #1568] bl memcpy - ldr r1, [r4, #1560] + ldr r1, [r4, #1568] movs r0, #3 -.L3981: +.L3987: bl StorageSysDataStore mov r4, r0 - b .L3945 -.L3935: + b .L3951 +.L3941: bl rknand_dev_flush -.L3982: +.L3988: movs r4, #0 - b .L3945 -.L3987: + b .L3951 +.L3993: mvn r4, #1 -.L3945: - ldr r0, .L3990+40 +.L3951: + ldr r0, .L3996+40 mov r1, r4 bl printk mov r0, r4 - b .L3930 -.L3966: + b .L3936 +.L3972: mvn r0, #21 - b .L3930 -.L3967: + b .L3936 +.L3973: mvn r0, #1 - b .L3930 -.L3968: + b .L3936 +.L3974: mvn r0, #2 -.L3930: +.L3936: add sp, sp, #524 @ sp needed pop {r4, r5, r6, r7, pc} -.L3991: +.L3997: .align 2 -.L3990: +.L3996: .word 1074031676 .word .LC193 .word .LC194 @@ -24795,57 +24836,57 @@ rk_ftl_storage_sys_init: push {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} mov r2, #512 - ldr r4, .L4001 + ldr r4, .L4007 mov r3, #-1 movs r5, #0 - add r0, r4, #1040 - ldr r1, [r4, #996] - str r3, [r4, #1020] + add r0, r4, #1048 + ldr r1, [r4, #1004] + str r3, [r4, #1028] add r3, r1, #512 - str r3, [r4, #1024] - str r1, [r4, #1036] + str r3, [r4, #1032] + str r1, [r4, #1044] add r3, r1, #1024 add r1, r1, #1536 - str r3, [r4, #1556] - strb r5, [r4, #1012] - str r5, [r4, #1016] - str r5, [r4, #1564] - str r1, [r4, #1560] + str r3, [r4, #1564] + strb r5, [r4, #1020] + str r5, [r4, #1024] + str r5, [r4, #1572] + str r1, [r4, #1568] bl ftl_memcpy - ldr r6, [r4, #1036] - str r5, [r4, #1028] - str r5, [r4, #1552] + ldr r6, [r4, #1044] + str r5, [r4, #1036] + str r5, [r4, #1560] ldr r3, [r6, #16] ldr r7, [r6, #508] - str r3, [r4, #1032] - cbz r7, .L3993 + str r3, [r4, #1040] + cbz r7, .L3999 mov r0, r6 mov r1, #508 bl js_hash cmp r7, r0 - beq .L3993 + beq .L3999 str r5, [r6, #16] - ldr r0, .L4001+4 - str r5, [r4, #1032] + ldr r0, .L4007+4 + str r5, [r4, #1040] bl printk -.L3993: - ldr r3, [r4, #1032] - cbz r3, .L3994 - ldr r2, .L4001+8 - ldr r3, .L4001 - str r2, [r3, #1028] -.L3994: - ldr r1, [r4, #1556] +.L3999: + ldr r3, [r4, #1040] + cbz r3, .L4000 + ldr r2, .L4007+8 + ldr r3, .L4007 + str r2, [r3, #1036] +.L4000: + ldr r1, [r4, #1564] movs r0, #2 bl StorageSysDataLoad - ldr r1, [r4, #1560] + ldr r1, [r4, #1568] movs r0, #3 bl StorageSysDataLoad pop {r3, r4, r5, r6, r7, lr} b rknand_sys_storage_init -.L4002: +.L4008: .align 2 -.L4001: +.L4007: .word .LANCHOR5 .word .LC199 .word -1067903959 @@ -24878,62 +24919,62 @@ rk_ftl_vendor_storage_init: .save {r4, r5, r6, r7, r8, r9, r10, lr} mov r0, #65536 bl ftl_malloc - ldr r6, .L4013 - str r0, [r6, #1568] + ldr r6, .L4019 + str r0, [r6, #1576] cmp r0, #0 - beq .L4010 + beq .L4016 mov r8, #0 - ldr r9, .L4013+8 + ldr r9, .L4019+8 mov r10, r6 mov r4, r8 mov r7, r8 -.L4008: +.L4014: lsls r0, r7, #7 movs r1, #128 - ldr r2, [r6, #1568] + ldr r2, [r6, #1576] bl FlashBootVendorRead cmp r0, #0 - bne .L4006 - ldr r3, [r10, #1568] - ldr r0, .L4013+4 + bne .L4012 + ldr r3, [r10, #1576] + ldr r0, .L4019+4 add r2, r3, #65280 adds r2, r2, #252 ldr r1, [r3] ldr r3, [r3, #4] ldr r2, [r2] bl printk - ldr r5, [r10, #1568] + ldr r5, [r10, #1576] ldr r3, [r5] cmp r3, r9 - bne .L4007 + bne .L4013 add r3, r5, #65280 ldr r2, [r5, #4] adds r3, r3, #252 ldr r3, [r3] cmp r3, r2 - bne .L4007 + bne .L4013 cmp r4, r3 itt cc movcc r8, r7 movcc r4, r3 -.L4007: - cbnz r7, .L4012 +.L4013: + cbnz r7, .L4018 movs r7, #1 - b .L4008 -.L4012: - cbz r4, .L4009 + b .L4014 +.L4018: + cbz r4, .L4015 lsl r0, r8, #7 movs r1, #128 mov r2, r5 bl FlashBootVendorRead - cbnz r0, .L4006 + cbnz r0, .L4012 pop {r4, r5, r6, r7, r8, r9, r10, pc} -.L4009: +.L4015: mov r0, r5 mov r1, r4 mov r2, #65536 bl memset - ldr r3, .L4013+8 + ldr r3, .L4019+8 str r7, [r5, #4] mov r0, r4 str r3, [r5] @@ -24943,19 +24984,19 @@ rk_ftl_vendor_storage_init: strh r4, [r5, #12] @ movhi strh r3, [r5, #14] @ movhi pop {r4, r5, r6, r7, r8, r9, r10, pc} -.L4006: - ldr r0, [r6, #1568] +.L4012: + ldr r0, [r6, #1576] bl kfree movs r3, #0 mov r0, #-1 - str r3, [r6, #1568] + str r3, [r6, #1576] pop {r4, r5, r6, r7, r8, r9, r10, pc} -.L4010: +.L4016: mvn r0, #11 pop {r4, r5, r6, r7, r8, r9, r10, pc} -.L4014: +.L4020: .align 2 -.L4013: +.L4019: .word .LANCHOR5 .word .LC200 .word 1380668996 @@ -24972,18 +25013,18 @@ rk_ftl_vendor_read: @ frame_needed = 0, uses_anonymous_args = 0 push {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} - ldr r3, .L4021 - ldr r5, [r3, #1568] - cbz r5, .L4020 + ldr r3, .L4027 + ldr r5, [r3, #1576] + cbz r5, .L4026 ldrh r7, [r5, #10] movs r3, #0 -.L4017: +.L4023: cmp r3, r7 - bcs .L4020 + bcs .L4026 add r6, r5, r3, lsl #3 ldrh r4, [r6, #16] cmp r4, r0 - bne .L4018 + bne .L4024 ldrh r3, [r6, #20] mov r0, r1 cmp r2, r3 @@ -24996,15 +25037,15 @@ rk_ftl_vendor_read: bl memcpy mov r0, r4 pop {r3, r4, r5, r6, r7, pc} -.L4018: +.L4024: adds r3, r3, #1 - b .L4017 -.L4020: + b .L4023 +.L4026: mov r0, #-1 pop {r3, r4, r5, r6, r7, pc} -.L4022: +.L4028: .align 2 -.L4021: +.L4027: .word .LANCHOR5 .fnend .size rk_ftl_vendor_read, .-rk_ftl_vendor_read @@ -25020,45 +25061,45 @@ rk_ftl_vendor_write: push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r9, r2 - ldr r2, .L4045 + ldr r2, .L4051 .pad #28 sub sp, sp, #28 mov ip, r0 mov r3, r1 - ldr r4, [r2, #1568] + ldr r4, [r2, #1576] cmp r4, #0 - beq .L4038 + beq .L4044 add r7, r9, #63 ldrh r1, [r4, #8] ldrh r2, [r4, #10] bic r7, r7, #63 movs r6, #0 str r1, [sp, #4] -.L4025: +.L4031: cmp r6, r2 - bcs .L4043 + bcs .L4049 add r5, r4, r6, lsl #3 ldrh r1, [r5, #16] cmp r1, ip - bne .L4026 + bne .L4032 ldrh r1, [r5, #20] add fp, r4, #1024 adds r1, r1, #63 bic r1, r1, #63 str r1, [sp, #8] cmp r9, r1 - bls .L4027 + bls .L4033 ldrh r1, [r4, #14] cmp r1, r7 - bcc .L4038 + bcc .L4044 ldrh r8, [r5, #18] subs r2, r2, #1 str r2, [sp, #12] -.L4028: +.L4034: ldr r2, [sp, #12] adds r5, r5, #8 cmp r6, r2 - bcs .L4044 + bcs .L4050 ldrh r2, [r5, #16] add r0, fp, r8 ldrh r1, [r5, #18] @@ -25077,8 +25118,8 @@ rk_ftl_vendor_write: bl memcpy ldr r3, [sp, #20] ldr ip, [sp, #16] - b .L4028 -.L4044: + b .L4034 +.L4050: add r6, r4, r6, lsl #3 uxth r8, r8 add r0, fp, r8 @@ -25096,22 +25137,22 @@ rk_ftl_vendor_write: add r3, r3, r5 subs r7, r3, r7 strh r7, [r4, #14] @ movhi - b .L4042 -.L4027: + b .L4048 +.L4033: ldrh r0, [r5, #18] mov r1, r3 mov r2, r9 add r0, r0, fp bl memcpy strh r9, [r5, #20] @ movhi - b .L4042 -.L4026: + b .L4048 +.L4032: adds r6, r6, #1 - b .L4025 -.L4043: + b .L4031 +.L4049: ldrh r1, [r4, #14] cmp r1, r7 - bcc .L4038 + bcc .L4044 add r2, r4, r2, lsl #3 uxth r7, r7 subs r1, r1, r7 @@ -25131,7 +25172,7 @@ rk_ftl_vendor_write: ldrh r3, [r4, #10] adds r3, r3, #1 strh r3, [r4, #10] @ movhi -.L4042: +.L4048: ldr r3, [r4, #4] movw r2, #65532 movs r1, #128 @@ -25150,16 +25191,16 @@ rk_ftl_vendor_write: lsls r0, r3, #7 bl FlashBootVendorWrite movs r0, #0 - b .L4024 -.L4038: + b .L4030 +.L4044: mov r0, #-1 -.L4024: +.L4030: add sp, sp, #28 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L4046: +.L4052: .align 2 -.L4045: +.L4051: .word .LANCHOR5 .fnend .size rk_ftl_vendor_write, .-rk_ftl_vendor_write @@ -25180,34 +25221,34 @@ rk_ftl_vendor_storage_ioctl: bl ftl_malloc mov r4, r0 cmp r0, #0 - beq .L4056 - ldr r3, .L4063 + beq .L4062 + ldr r3, .L4069 cmp r6, r3 - beq .L4050 + beq .L4056 adds r3, r3, #1 cmp r6, r3 - beq .L4051 - b .L4062 -.L4050: + beq .L4057 + b .L4068 +.L4056: mov r1, r5 movs r2, #8 bl rk_copy_from_user cmp r0, #0 - bne .L4062 + bne .L4068 ldr r2, [r4] - ldr r3, .L4063+4 + ldr r3, .L4069+4 cmp r2, r3 - beq .L4053 -.L4054: + beq .L4059 +.L4060: mov r5, #-1 - b .L4049 -.L4053: + b .L4055 +.L4059: ldrh r0, [r4, #4] add r1, r4, #8 ldrh r2, [r4, #6] bl rk_ftl_vendor_read adds r3, r0, #1 - beq .L4054 + beq .L4060 uxth r2, r0 strh r0, [r4, #6] @ movhi mov r1, r4 @@ -25218,45 +25259,45 @@ rk_ftl_vendor_storage_ioctl: ite eq moveq r5, #0 mvnne r5, #13 - b .L4049 -.L4051: + b .L4055 +.L4057: mov r1, r5 movs r2, #8 bl rk_copy_from_user - cbnz r0, .L4062 + cbnz r0, .L4068 ldr r2, [r4] - ldr r3, .L4063+4 + ldr r3, .L4069+4 cmp r2, r3 - bne .L4054 + bne .L4060 ldrh r2, [r4, #6] movw r3, #4087 cmp r2, r3 - bhi .L4054 + bhi .L4060 mov r0, r4 mov r1, r5 adds r2, r2, #8 bl rk_copy_from_user - cbnz r0, .L4062 + cbnz r0, .L4068 ldrh r0, [r4, #4] add r1, r4, #8 ldrh r2, [r4, #6] bl rk_ftl_vendor_write mov r5, r0 - b .L4049 -.L4062: + b .L4055 +.L4068: mvn r5, #13 -.L4049: +.L4055: mov r0, r4 bl kfree - b .L4048 -.L4056: + b .L4054 +.L4062: mov r5, #-1 -.L4048: +.L4054: mov r0, r5 pop {r4, r5, r6, pc} -.L4064: +.L4070: .align 2 -.L4063: +.L4069: .word 1074034177 .word 1448232273 .fnend @@ -25270,6 +25311,8 @@ rk_ftl_vendor_storage_ioctl: .global gSnSectorData .global gpDrmKeyInfo .global gpBootConfig + .global ftl_dma32_buffer_size + .global ftl_dma32_buffer .global gLoaderBootInfo .global RK29_NANDC1_REG_BASE .global RK29_NANDC_REG_BASE @@ -25507,9 +25550,9 @@ rk_ftl_vendor_storage_ioctl: .section .rodata .align 2 .LANCHOR3 = . + 0 - .type __func__.20390, %object - .size __func__.20390, 11 -__func__.20390: + .type __func__.23841, %object + .size __func__.23841, 11 +__func__.23841: .ascii "FtlMemInit\000" .LC0: .byte 60 @@ -25654,32 +25697,32 @@ samsung_14nm_mlc_rr: .byte 18 .byte 9 .byte 8 - .type __func__.21169, %object - .size __func__.21169, 17 -__func__.21169: + .type __func__.24620, %object + .size __func__.24620, 17 +__func__.24620: .ascii "FtlDumpBlockInfo\000" .space 3 - .type __func__.21188, %object - .size __func__.21188, 16 -__func__.21188: + .type __func__.24639, %object + .size __func__.24639, 16 +__func__.24639: .ascii "FtlScanAllBlock\000" - .type __func__.21456, %object - .size __func__.21456, 17 -__func__.21456: + .type __func__.24907, %object + .size __func__.24907, 17 +__func__.24907: .ascii "ftl_scan_all_ppa\000" .space 3 - .type __func__.21137, %object - .size __func__.21137, 12 -__func__.21137: + .type __func__.24588, %object + .size __func__.24588, 12 +__func__.24588: .ascii "FtlCheckVpc\000" - .type __func__.21436, %object - .size __func__.21436, 21 -__func__.21436: + .type __func__.24887, %object + .size __func__.24887, 21 +__func__.24887: .ascii "FtlVpcCheckAndModify\000" .space 3 - .type __func__.20463, %object - .size __func__.20463, 8 -__func__.20463: + .type __func__.23914, %object + .size __func__.23914, 8 +__func__.23914: .ascii "FtlInit\000" .section .rodata.str1.1,"aMS",%progbits,1 .LC1: @@ -25837,7 +25880,7 @@ __func__.20463: .LC76: .ascii "%s\012\000" .LC77: - .ascii "FTL version: 5.0.63 20200923\000" + .ascii "FTL version: 5.0.63 20210616\000" .LC78: .ascii "swblk %x ,avg = %x max= %x vpc= %x,ec=%x ,max ec=%x" .ascii "\012\000" @@ -28879,6 +28922,10 @@ power_up_flag: .LANCHOR2 = . + 4344 .LANCHOR4 = . + 8688 .LANCHOR5 = . + 17376 + .type gNandChipMap, %object + .size gNandChipMap, 32 +gNandChipMap: + .space 32 .type g_slc2KBNand, %object .size g_slc2KBNand, 1 g_slc2KBNand: @@ -28897,10 +28944,6 @@ gBlockPageAlignSize: gNandRandomizer: .space 1 .space 3 - .type gNandChipMap, %object - .size gNandChipMap, 32 -gNandChipMap: - .space 32 .type gpNandParaInfo, %object .size gpNandParaInfo, 4 gpNandParaInfo: @@ -28909,6 +28952,15 @@ gpNandParaInfo: .size gNandOptPara, 32 gNandOptPara: .space 32 + .type g_retryMode, %object + .size g_retryMode, 1 +g_retryMode: + .space 1 + .type g_maxRegNum, %object + .size g_maxRegNum, 1 +g_maxRegNum: + .space 1 + .space 2 .type gpNandc, %object .size gpNandc, 4 gpNandc: @@ -28966,19 +29018,10 @@ DieAddrs: .size FlashWaitBusyScheduleEn, 4 FlashWaitBusyScheduleEn: .space 4 - .type g_retryMode, %object - .size g_retryMode, 1 -g_retryMode: - .space 1 - .type g_maxRegNum, %object - .size g_maxRegNum, 1 -g_maxRegNum: - .space 1 .type gReadRetryInfo, %object .size gReadRetryInfo, 852 gReadRetryInfo: .space 852 - .space 2 .type read_retry_cur_offset, %object .size read_retry_cur_offset, 4 read_retry_cur_offset: @@ -29665,6 +29708,14 @@ gNandIDataBuf: .type RK29_NANDC_REG_BASE, %object .size RK29_NANDC_REG_BASE, 4 RK29_NANDC_REG_BASE: + .space 4 + .type ftl_dma32_buffer_size, %object + .size ftl_dma32_buffer_size, 4 +ftl_dma32_buffer_size: + .space 4 + .type ftl_dma32_buffer, %object + .size ftl_dma32_buffer, 4 +ftl_dma32_buffer: .space 4 .type gFlashPageBuffer0, %object .size gFlashPageBuffer0, 4 diff --git a/drivers/rk_nand/rk_ftl_arm_v8.S b/drivers/rk_nand/rk_ftl_arm_v8.S index efe4ddffb715..537155f1fcde 100644 --- a/drivers/rk_nand/rk_ftl_arm_v8.S +++ b/drivers/rk_nand/rk_ftl_arm_v8.S @@ -5,92 +5,88 @@ * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. - * date: 2020-09-23 + * date: 2021-07-16 */ - .cpu generic+fp+simd .file "rk_ftl_arm_v8.S" .text .align 2 - .type ftl_set_blk_mode.part.9, %function -ftl_set_blk_mode.part.9: - adrp x1, .LANCHOR0 - uxth w0, w0 - ubfx x2, x0, 5, 11 - lsl x2, x2, 2 - ldr x3, [x1,#:lo12:.LANCHOR0] - mov w1, 1 - lsl w0, w1, w0 - ldr w1, [x3,x2] - orr w0, w1, w0 - str w0, [x3,x2] - ret - .size ftl_set_blk_mode.part.9, .-ftl_set_blk_mode.part.9 - .align 2 .type flash_read_ecc, %function flash_read_ecc: - adrp x2, .LANCHOR0 - ubfiz x0, x0, 4, 8 stp x29, x30, [sp, -32]! - add x2, x2, :lo12:.LANCHOR0 - add x2, x2, 8 + ubfiz x0, x0, 4, 8 + adrp x1, .LANCHOR0 + add x1, x1, :lo12:.LANCHOR0 + add x2, x1, x0 add x29, sp, 0 - add x1, x2, x0 - str x19, [sp,16] - ldrb w1, [x1,8] - ldr x19, [x2,x0] + str x19, [sp, 16] + ldr x0, [x1, x0] + ldrb w19, [x2, 8] + add x19, x0, x19, lsl 8 mov w0, 122 - add x19, x19, x1, lsl 8 - str w0, [x19,2056] + str w0, [x19, 2056] mov x0, 400 bl __const_udelay - ldr w1, [x19,2048] - ldr w0, [x19,2048] + ldr w1, [x19, 2048] + ldr w0, [x19, 2048] and w1, w1, 15 and w0, w0, 15 - cmp w0, w1 - csel w2, w0, w1, cs - ldr w1, [x19,2048] - ldr w0, [x19,2048] - and w1, w1, 15 - ldr x19, [sp,16] - cmp w2, w1 - and w0, w0, 15 - csel w1, w2, w1, cs cmp w1, w0 - csel w0, w1, w0, cs + csel w1, w1, w0, cs + ldr w0, [x19, 2048] + ldr w2, [x19, 2048] + and w0, w0, 15 + ldr x19, [sp, 16] + and w2, w2, 15 + cmp w0, w2 + csel w0, w0, w2, cs + cmp w0, w1 + csel w0, w0, w1, cs ldp x29, x30, [sp], 32 ret .size flash_read_ecc, .-flash_read_ecc .align 2 + .type ftl_set_blk_mode.part.9, %function +ftl_set_blk_mode.part.9: + and w0, w0, 65535 + adrp x2, .LANCHOR0+64 + ubfx x1, x0, 5, 11 + ldr x3, [x2, #:lo12:.LANCHOR0+64] + lsl x1, x1, 2 + mov w2, 1 + lsl w2, w2, w0 + ldr w0, [x3, x1] + orr w0, w0, w2 + str w0, [x3, x1] + ret + .size ftl_set_blk_mode.part.9, .-ftl_set_blk_mode.part.9 + .align 2 .global FlashMemCmp8 .type FlashMemCmp8, %function FlashMemCmp8: - mov x5, x0 - adrp x0, .LANCHOR0+72 - ldrb w0, [x0,#:lo12:.LANCHOR0+72] - cbz w0, .L8 - ldrb w4, [x5,1] - mov w0, 0 - ldrb w3, [x1,1] + adrp x3, .LANCHOR0+72 + ldrb w3, [x3, #:lo12:.LANCHOR0+72] + cbz w3, .L9 + ldrb w4, [x0, 1] + ldrb w3, [x1, 1] cmp w4, w3 - beq .L5 -.L8: + beq .L10 +.L9: mov x3, 0 -.L6: - cmp w3, w2 +.L7: mov w4, w3 - bcs .L12 - ldrb w0, [x5,x3] + cmp w3, w2 + bcc .L8 +.L10: + mov w0, 0 + ret +.L8: + ldrb w5, [x0, x3] add x3, x3, 1 add x6, x1, x3 - ldrb w6, [x6,-1] - cmp w6, w0 - beq .L6 + ldrb w6, [x6, -1] + cmp w6, w5 + beq .L7 add w0, w4, 1 - b .L5 -.L12: - mov w0, 0 -.L5: ret .size FlashMemCmp8, .-FlashMemCmp8 .align 2 @@ -98,138 +94,139 @@ FlashMemCmp8: .type FlashRsvdBlkChk, %function FlashRsvdBlkChk: adrp x2, .LANCHOR0 - uxtb w0, w0 add x2, x2, :lo12:.LANCHOR0 - ldrb w3, [x2,73] - ldr w2, [x2,76] + and w0, w0, 255 + ldrb w3, [x2, 73] + ldr w2, [x2, 76] mul w2, w3, w2 - cmp w1, w2 - cset w1, cc - cmp w0, wzr - cset w0, eq - and w0, w1, w0 - eor w0, w0, 1 + cmp w2, w1 + bls .L14 + cmp w0, 0 + cset w0, ne + ret +.L14: + mov w0, 1 ret .size FlashRsvdBlkChk, .-FlashRsvdBlkChk .align 2 .global FlashGetRandomizer .type FlashGetRandomizer, %function FlashGetRandomizer: - stp x29, x30, [sp, -32]! + and x3, x1, 127 adrp x2, .LANCHOR1 - and w3, w1, 127 add x2, x2, :lo12:.LANCHOR1 - add x29, sp, 0 - uxtb w0, w0 - str x19, [sp,16] - ldrh w19, [x2,w3,uxtw 1] + ldrh w4, [x2, x3, lsl 1] adrp x2, .LANCHOR0+80 - ldrb w2, [x2,#:lo12:.LANCHOR0+80] - cbz w2, .L15 + ldrb w2, [x2, #:lo12:.LANCHOR0+80] + cbz w2, .L23 + stp x29, x30, [sp, -16]! + and w0, w0, 255 + add x29, sp, 0 bl FlashRsvdBlkChk - cmp w0, wzr - orr w1, w19, -1073741824 - csel w19, w1, w19, ne -.L15: - mov w0, w19 - ldr x19, [sp,16] - ldp x29, x30, [sp], 32 + cmp w0, 0 + orr w1, w4, -1073741824 + csel w4, w1, w4, ne + mov w0, w4 + ldp x29, x30, [sp], 16 + ret +.L23: + mov w0, w4 ret .size FlashGetRandomizer, .-FlashGetRandomizer .align 2 .global FlashSetRandomizer .type FlashSetRandomizer, %function FlashSetRandomizer: - stp x29, x30, [sp, -48]! - and w2, w1, 127 - add x29, sp, 0 - str x21, [sp,32] - uxtb w21, w0 + and x2, x1, 127 + and w6, w0, 255 adrp x0, .LANCHOR1 add x0, x0, :lo12:.LANCHOR1 - stp x19, x20, [sp,16] - ldrh w20, [x0,w2,uxtw 1] - adrp x2, .LANCHOR0 - add x0, x2, :lo12:.LANCHOR0 - mov x19, x2 - ldrb w0, [x0,80] - cbz w0, .L22 - mov w0, w21 + ldrh w5, [x0, x2, lsl 1] + adrp x0, .LANCHOR0 + add x2, x0, :lo12:.LANCHOR0 + mov x4, x0 + ldrb w2, [x2, 80] + cbz w2, .L34 + stp x29, x30, [sp, -16]! + mov w0, w6 + add x29, sp, 0 bl FlashRsvdBlkChk - cmp w0, wzr - orr w1, w20, -1073741824 - csel w20, w1, w20, ne -.L22: - add x2, x19, :lo12:.LANCHOR0 - add x2, x2, w21, sxtw 4 - ldr x0, [x2,8] - str w20, [x0,336] - ldp x19, x20, [sp,16] - ldr x21, [sp,32] - ldp x29, x30, [sp], 48 + cmp w0, 0 + sbfiz x6, x6, 4, 32 + add x0, x4, :lo12:.LANCHOR0 + orr w1, w5, -1073741824 + csel w5, w1, w5, ne + ldr x0, [x0, x6] + str w5, [x0, 336] + ldp x29, x30, [sp], 16 + ret +.L34: + add x0, x0, :lo12:.LANCHOR0 + sbfiz x6, x6, 4, 32 + ldr x0, [x0, x6] + str w5, [x0, 336] ret .size FlashSetRandomizer, .-FlashSetRandomizer .align 2 .global FlashBlockAlignInit .type FlashBlockAlignInit, %function FlashBlockAlignInit: - uxth w0, w0 + and w0, w0, 65535 adrp x1, .LANCHOR0 cmp w0, 512 add x1, x1, :lo12:.LANCHOR0 - bls .L29 + bls .L38 mov w0, 1024 - b .L33 -.L29: - cmp w0, 256 - bls .L31 - mov w0, 512 - b .L33 -.L31: - cmp w0, 128 - bls .L33 - mov w0, 256 -.L33: - str w0, [x1,76] +.L42: + str w0, [x1, 76] ret +.L38: + cmp w0, 256 + bls .L40 + mov w0, 512 + b .L42 +.L40: + cmp w0, 128 + bls .L42 + mov w0, 256 + b .L42 .size FlashBlockAlignInit, .-FlashBlockAlignInit .align 2 .global FlashReadCmd .type FlashReadCmd, %function FlashReadCmd: - adrp x4, .LANCHOR0 - uxtb w0, w0 - add x4, x4, :lo12:.LANCHOR0 + and w0, w0, 255 + adrp x3, .LANCHOR0 sbfiz x2, x0, 4, 32 + add x3, x3, :lo12:.LANCHOR0 stp x29, x30, [sp, -16]! - add x3, x4, 8 + add x4, x3, x2 add x29, sp, 0 - ldr x4, [x4,88] - add x5, x3, x2 - ldr x2, [x3,x2] - ldrb w4, [x4,7] - ldrb w3, [x5,8] - cmp w4, 1 - bne .L35 - sxtw x4, w3 + ldr x2, [x3, x2] + ldr x3, [x3, 88] + ldrb w4, [x4, 8] + ldrb w3, [x3, 7] + cmp w3, 1 + bne .L44 + sxtw x3, w4 mov w5, 38 - add x4, x4, 8 - add x4, x2, x4, lsl 8 - str w5, [x4,8] -.L35: - ubfiz x3, x3, 8, 8 - add x2, x2, x3 + add x3, x3, 8 + add x3, x2, x3, lsl 8 + str w5, [x3, 8] +.L44: + ubfiz x4, x4, 8, 8 and w3, w1, 255 - str wzr, [x2,2056] - str wzr, [x2,2052] - str wzr, [x2,2052] - str w3, [x2,2052] + add x2, x2, x4 + str wzr, [x2, 2056] + str wzr, [x2, 2052] + str wzr, [x2, 2052] + str w3, [x2, 2052] lsr w3, w1, 8 - str w3, [x2,2052] + str w3, [x2, 2052] lsr w3, w1, 16 - str w3, [x2,2052] + str w3, [x2, 2052] mov w3, 48 - str w3, [x2,2056] + str w3, [x2, 2056] bl FlashSetRandomizer ldp x29, x30, [sp], 16 ret @@ -238,74 +235,72 @@ FlashReadCmd: .global FlashReadDpDataOutCmd .type FlashReadDpDataOutCmd, %function FlashReadDpDataOutCmd: + and w0, w0, 255 adrp x3, .LANCHOR0 - uxtb w0, w0 - add x3, x3, :lo12:.LANCHOR0 sbfiz x2, x0, 4, 32 - add x4, x3, 8 + add x3, x3, :lo12:.LANCHOR0 stp x29, x30, [sp, -16]! - add x5, x4, x2 + add x4, x3, x2 + and w5, w1, 255 add x29, sp, 0 - ldr x6, [x4,x2] - lsr w4, w1, 8 - ldrb w2, [x3,112] + ldr x6, [x3, x2] + ldrb w2, [x3, 112] lsr w3, w1, 16 cmp w2, 1 - ldrb w2, [x5,8] - and w5, w1, 255 + ldrb w2, [x4, 8] + lsr w4, w1, 8 add x2, x6, x2, lsl 8 - bne .L37 + bne .L47 mov w6, 6 - str w6, [x2,2056] - str wzr, [x2,2052] - str wzr, [x2,2052] - str w5, [x2,2052] - str w4, [x2,2052] - str w3, [x2,2052] - b .L39 -.L37: - str wzr, [x2,2056] - str wzr, [x2,2052] - str wzr, [x2,2052] - str w5, [x2,2052] - str w4, [x2,2052] - str w3, [x2,2052] - mov w3, 5 - str w3, [x2,2056] - str wzr, [x2,2052] - str wzr, [x2,2052] -.L39: + str w6, [x2, 2056] + str wzr, [x2, 2052] + str wzr, [x2, 2052] + str w5, [x2, 2052] + str w4, [x2, 2052] + str w3, [x2, 2052] +.L50: mov w3, 224 - str w3, [x2,2056] + str w3, [x2, 2056] bl FlashSetRandomizer ldp x29, x30, [sp], 16 ret +.L47: + str wzr, [x2, 2056] + str wzr, [x2, 2052] + str wzr, [x2, 2052] + str w5, [x2, 2052] + str w4, [x2, 2052] + str w3, [x2, 2052] + mov w3, 5 + str w3, [x2, 2056] + str wzr, [x2, 2052] + str wzr, [x2, 2052] + b .L50 .size FlashReadDpDataOutCmd, .-FlashReadDpDataOutCmd .align 2 .global FlashProgFirstCmd .type FlashProgFirstCmd, %function FlashProgFirstCmd: - adrp x3, .LANCHOR0 - uxtb w0, w0 - add x3, x3, :lo12:.LANCHOR0 + and w0, w0, 255 + adrp x4, .LANCHOR0 sbfiz x5, x0, 4, 32 - add x3, x3, 8 - lsr w4, w1, 16 - add x2, x3, x5 + add x4, x4, :lo12:.LANCHOR0 + add x2, x4, x5 stp x29, x30, [sp, -16]! + lsr w3, w1, 16 add x29, sp, 0 - ldrb w2, [x2,8] - ldr x3, [x3,x5] - add x2, x3, x2, lsl 8 - mov w3, 128 - str w3, [x2,2056] - and w3, w1, 255 - str wzr, [x2,2052] - str wzr, [x2,2052] - str w3, [x2,2052] - lsr w3, w1, 8 - str w3, [x2,2052] - str w4, [x2,2052] + ldr x4, [x4, x5] + ldrb w2, [x2, 8] + add x2, x4, x2, lsl 8 + mov w4, 128 + str w4, [x2, 2056] + and w4, w1, 255 + str wzr, [x2, 2052] + str wzr, [x2, 2052] + str w4, [x2, 2052] + lsr w4, w1, 8 + str w4, [x2, 2052] + str w3, [x2, 2052] bl FlashSetRandomizer ldp x29, x30, [sp], 16 ret @@ -314,64 +309,62 @@ FlashProgFirstCmd: .global FlashEraseCmd .type FlashEraseCmd, %function FlashEraseCmd: - adrp x3, .LANCHOR0 ubfiz x0, x0, 4, 8 + adrp x3, .LANCHOR0 add x3, x3, :lo12:.LANCHOR0 - add x4, x3, 8 - add x5, x4, x0 - ldr x4, [x4,x0] - ldrb w0, [x5,8] - cbz w2, .L42 + add x5, x3, x0 + ldr x4, [x3, x0] + ldrb w0, [x5, 8] + cbz w2, .L54 add x2, x4, x0, lsl 8 mov w5, 96 - str w5, [x2,2056] + str w5, [x2, 2056] and w5, w1, 255 - str w5, [x2,2052] + str w5, [x2, 2052] lsr w5, w1, 8 - str w5, [x2,2052] + str w5, [x2, 2052] lsr w5, w1, 16 - str w5, [x2,2052] - ldr w2, [x3,76] + str w5, [x2, 2052] + ldr w2, [x3, 76] add w1, w1, w2 -.L42: +.L54: add x0, x4, x0, lsl 8 mov w2, 96 - str w2, [x0,2056] + str w2, [x0, 2056] and w2, w1, 255 - str w2, [x0,2052] + str w2, [x0, 2052] lsr w2, w1, 8 - str w2, [x0,2052] + str w2, [x0, 2052] lsr w1, w1, 16 - str w1, [x0,2052] + str w1, [x0, 2052] mov w1, 208 - str w1, [x0,2056] + str w1, [x0, 2056] ret .size FlashEraseCmd, .-FlashEraseCmd .align 2 .global FlashProgDpSecondCmd .type FlashProgDpSecondCmd, %function FlashProgDpSecondCmd: - adrp x2, .LANCHOR0 - uxtb w0, w0 - add x2, x2, :lo12:.LANCHOR0 - sbfiz x4, x0, 4, 32 - add x5, x2, 8 - lsr w3, w1, 16 - add x7, x5, x4 + and w0, w0, 255 + adrp x4, .LANCHOR0 + sbfiz x5, x0, 4, 32 + add x4, x4, :lo12:.LANCHOR0 + add x2, x4, x5 stp x29, x30, [sp, -16]! + lsr w3, w1, 16 add x29, sp, 0 - ldrb w6, [x2,107] - ldrb w2, [x7,8] - ldr x4, [x5,x4] + ldrb w6, [x4, 107] + ldrb w2, [x2, 8] + ldr x4, [x4, x5] add x2, x4, x2, lsl 8 and w4, w1, 255 - str w6, [x2,2056] - str wzr, [x2,2052] - str wzr, [x2,2052] - str w4, [x2,2052] + str w6, [x2, 2056] + str wzr, [x2, 2052] + str wzr, [x2, 2052] + str w4, [x2, 2052] lsr w4, w1, 8 - str w4, [x2,2052] - str w3, [x2,2052] + str w4, [x2, 2052] + str w3, [x2, 2052] bl FlashSetRandomizer ldp x29, x30, [sp], 16 ret @@ -380,24 +373,23 @@ FlashProgDpSecondCmd: .global FlashProgSecondCmd .type FlashProgSecondCmd, %function FlashProgSecondCmd: - adrp x1, .LANCHOR0 - ubfiz x0, x0, 4, 8 stp x29, x30, [sp, -32]! + ubfiz x0, x0, 4, 8 + adrp x1, .LANCHOR0 add x1, x1, :lo12:.LANCHOR0 - add x1, x1, 8 add x29, sp, 0 add x2, x1, x0 - stp x19, x20, [sp,16] - ldrb w19, [x2,8] - ldr x20, [x1,x0] + stp x19, x20, [sp, 16] + ldr x20, [x1, x0] mov x0, 36284 - add x19, x19, 8 + ldrb w19, [x2, 8] movk x0, 0x6, lsl 16 - add x19, x20, x19, lsl 8 bl __const_udelay + add x19, x19, 8 mov w0, 16 - str w0, [x19,8] - ldp x19, x20, [sp,16] + add x19, x20, x19, lsl 8 + str w0, [x19, 8] + ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 32 ret .size FlashProgSecondCmd, .-FlashProgSecondCmd @@ -405,40 +397,38 @@ FlashProgSecondCmd: .global FlashProgDpFirstCmd .type FlashProgDpFirstCmd, %function FlashProgDpFirstCmd: - adrp x1, .LANCHOR0 ubfiz x0, x0, 4, 8 + adrp x1, .LANCHOR0 add x1, x1, :lo12:.LANCHOR0 - add x2, x1, 8 - add x3, x2, x0 - ldrb w1, [x1,106] - ldr x2, [x2,x0] - ldrb w0, [x3,8] + add x3, x1, x0 + ldr x2, [x1, x0] + ldrb w0, [x3, 8] + ldrb w1, [x1, 106] add x0, x0, 8 add x0, x2, x0, lsl 8 - str w1, [x0,8] + str w1, [x0, 8] ret .size FlashProgDpFirstCmd, .-FlashProgDpFirstCmd .align 2 .global FlashReadStatus .type FlashReadStatus, %function FlashReadStatus: - adrp x1, .LANCHOR0 - ubfiz x0, x0, 4, 8 stp x29, x30, [sp, -32]! + ubfiz x0, x0, 4, 8 + adrp x1, .LANCHOR0 add x1, x1, :lo12:.LANCHOR0 - add x1, x1, 8 add x29, sp, 0 add x2, x1, x0 - str x19, [sp,16] - ldrb w2, [x2,8] - ldr x19, [x1,x0] + str x19, [sp, 16] + ldr x0, [x1, x0] + ldrb w19, [x2, 8] + add x19, x0, x19, lsl 8 mov w0, 112 - add x19, x19, x2, lsl 8 - str w0, [x19,2056] + str w0, [x19, 2056] mov x0, 400 bl __const_udelay - ldr w0, [x19,2048] - ldr x19, [sp,16] + ldr w0, [x19, 2048] + ldr x19, [sp, 16] ldp x29, x30, [sp], 32 ret .size FlashReadStatus, .-FlashReadStatus @@ -446,22 +436,22 @@ FlashReadStatus: .global js_hash .type js_hash, %function js_hash: - mov x5, x0 + mov x4, x0 mov w0, 42982 - mov x2, 0 + mov x3, 0 movk w0, 0x47c6, lsl 16 -.L51: - cmp w1, w2 - bls .L53 - lsl w3, w0, 5 - ldrb w4, [x5,x2] - add w3, w3, w0, lsr 2 - add x2, x2, 1 - add w3, w3, w4 - eor w0, w0, w3 - b .L51 -.L53: +.L66: + cmp w1, w3 + bhi .L67 ret +.L67: + lsr w2, w0, 2 + ldrb w5, [x4, x3] + add w2, w2, w0, lsl 5 + add x3, x3, 1 + add w2, w2, w5 + eor w0, w0, w2 + b .L66 .size js_hash, .-js_hash .align 2 .global FlashLoadIdbInfo @@ -480,105 +470,104 @@ FlashPrintInfo: .global ToshibaSetRRPara .type ToshibaSetRRPara, %function ToshibaSetRRPara: - uxtb w1, w1 - mov w3, 5 + stp x29, x30, [sp, -80]! + and w1, w1, 255 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, w1, 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 + stp x21, x22, [sp, 32] + mov x21, x0 + mov w0, 5 + stp x23, x24, [sp, 48] + stp x25, x26, [sp, 64] + adrp x22, .LANCHOR0 + umull x2, w2, w0 + adrp x0, .LANCHOR1 + add x0, x0, :lo12:.LANCHOR1 + stp x19, x20, [sp, 16] + add x25, x0, 256 + add x24, x0, 352 + add x25, x25, x2 + add x24, x24, x2 + add x22, x22, :lo12:.LANCHOR0 + mov x19, x0 + add x23, x0, w1, sxtw mov x20, 0 - adrp x26, .LANCHOR0 - mov w27, 85 - mov x19, x2 -.L57: - add x25, x26, :lo12:.LANCHOR0 - ldrb w0, [x25,129] + mov w26, 85 +.L71: + ldrb w0, [x22, 129] cmp w0, w20 - bls .L63 - add x0, x19, 256 - str w27, [x22,8] - ldrsb w0, [x20,x0] - str w0, [x22,4] + bhi .L75 + 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 +.L75: + add x0, x19, 352 + str w26, [x21, 8] + ldrsb w0, [x20, x0] + str w0, [x21, 4] mov x0, 1000 bl __const_udelay - ldrb w0, [x25,128] + ldrb w0, [x22, 128] cmp w0, 34 - bne .L58 - ldrsb w0, [x24,x20] - b .L62 -.L58: - cmp w0, 35 - bne .L60 - ldrsb w0, [x21,x20] - b .L62 -.L60: - ldrsb w0, [x23,400] -.L62: - str w0, [x22] + bne .L72 + ldrsb w0, [x24, x20] +.L77: add x20, x20, 1 - b .L57 -.L63: - 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 + str w0, [x21] + b .L71 +.L72: + cmp w0, 35 + bne .L74 + ldrsb w0, [x25, x20] + b .L77 +.L74: + ldrsb w0, [x23, 400] + b .L77 .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, w1, 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 + stp x21, x22, [sp, 32] + mov x22, x0 + ubfiz x21, x1, 2, 8 + adrp x0, .LANCHOR1 + add x0, x0, :lo12:.LANCHOR1 + add x21, x21, 4 + add x0, x0, 408 + stp x19, x20, [sp, 16] + stp x23, x24, [sp, 48] + add x21, x0, x21 adrp x23, .LANCHOR0 + mov x19, x0 + add x23, x23, :lo12:.LANCHOR0 + mov x20, 0 mov w24, 161 - mov x19, x2 -.L65: - add x0, x23, :lo12:.LANCHOR0 - ldrb w0, [x0,129] +.L79: + ldrb w0, [x23, 129] cmp w0, w20 - bls .L67 - 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 .L65 -.L67: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] + bhi .L80 + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] ldp x29, x30, [sp], 64 ret +.L80: + str w24, [x22, 8] + str wzr, [x22] + ldrsb w0, [x20, x19] + str w0, [x22] + ldrsb w0, [x21, x20] + add x20, x20, 1 + str w0, [x22] + mov x0, 1500 + bl __const_udelay + b .L79 .size SamsungSetRRPara, .-SamsungSetRRPara .align 2 .global ftl_flash_suspend @@ -586,72 +575,73 @@ SamsungSetRRPara: ftl_flash_suspend: adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 - ldr x1, [x0,136] + ldr x1, [x0, 136] ldr w2, [x1] - str w2, [x0,144] - ldr w2, [x1,4] - str w2, [x0,148] - ldr w2, [x1,8] - str w2, [x0,152] - ldr w2, [x1,12] - str w2, [x0,156] - ldr w2, [x1,304] - str w2, [x0,160] - ldr w2, [x1,308] - str w2, [x0,164] - ldr w2, [x1,336] - ldr w1, [x1,344] - str w2, [x0,168] - str w1, [x0,172] + str w2, [x0, 144] + ldr w2, [x1, 4] + str w2, [x0, 148] + ldr w2, [x1, 8] + str w2, [x0, 152] + ldr w2, [x1, 12] + str w2, [x0, 156] + ldr w2, [x1, 304] + str w2, [x0, 160] + ldr w2, [x1, 308] + str w2, [x0, 164] + ldr w2, [x1, 336] + ldr w1, [x1, 344] + stp w2, w1, [x0, 168] ret .size ftl_flash_suspend, .-ftl_flash_suspend .align 2 .global LogAddr2PhyAddr .type LogAddr2PhyAddr, %function LogAddr2PhyAddr: - adrp x7, .LANCHOR0 - uxtb w4, w4 - add x6, x7, :lo12:.LANCHOR0 - ldrh w8, [x6,190] - ldrh w5, [x6,188] - ldrh w9, [x6,76] - ldrb w6, [x6,72] - mul w5, w5, w8 - cmp w6, 1 - ubfiz w8, w9, 1, 15 - csel w9, w8, w9, eq - ldr w8, [x0,4] - uxth w5, w5 + adrp x6, .LANCHOR0 + add x7, x6, :lo12:.LANCHOR0 + and w4, w4, 255 + ldrh w9, [x7, 188] + ldrh w5, [x7, 190] + ldrh w8, [x7, 76] + ldrb w7, [x7, 72] + cmp w7, 1 + ldr w7, [x0, 4] + mul w5, w5, w9 + ubfx x11, x7, 10, 16 + and w9, w5, 65535 + ubfiz w5, w8, 1, 15 + and w7, w7, 1023 + csel w8, w5, w8, eq cmp w1, 1 - ubfx x6, x8, 10, 16 - and w8, w8, 1023 - udiv w10, w6, w5 - msub w5, w10, w5, w6 - uxth w6, w5 - bne .L71 - add x1, x7, :lo12:.LANCHOR0 - ldrb w5, [x1,204] - cbnz w5, .L71 + udiv w5, w11, w9 + and w10, w5, 65535 + msub w5, w5, w9, w11 + and w5, w5, 65535 + bne .L85 + add x1, x6, :lo12:.LANCHOR0 + ldrb w9, [x1, 204] + cbnz w9, .L85 add x1, x1, 208 - ldrh w8, [x1,w8,sxtw 1] -.L71: - add x7, x7, :lo12:.LANCHOR0 + ldrh w7, [x1, w7, sxtw 1] +.L85: + add x6, x6, :lo12:.LANCHOR0 + uxtw x1, w10 + add x6, x6, 1232 cmp w4, 1 - add x7, x7, 1232 - mov w1, 0 - ldr w5, [x7,w10,uxtw 2] - madd w5, w6, w9, w5 - add w5, w5, w8 + ldr w1, [x6, x1, lsl 2] + madd w5, w5, w8, w1 + add w5, w5, w7 str w5, [x2] str w10, [x3] - bls .L72 - ldr w1, [x0,4] - ldr w0, [x0,60] + bls .L87 + ldr w1, [x0, 4] + ldr w0, [x0, 60] add w1, w1, 1024 cmp w1, w0 - cset w1, eq -.L72: - mov w0, w1 + cset w0, eq + ret +.L87: + mov w0, 0 ret .size LogAddr2PhyAddr, .-LogAddr2PhyAddr .align 2 @@ -659,61 +649,61 @@ LogAddr2PhyAddr: .type FlashReadStatusEN, %function FlashReadStatusEN: stp x29, x30, [sp, -32]! - adrp x3, .LANCHOR0 ubfiz x0, x0, 4, 8 - add x4, x3, :lo12:.LANCHOR0 + adrp x4, .LANCHOR0 + add x3, x4, :lo12:.LANCHOR0 add x29, sp, 0 - add x5, x4, 8 - stp x19, x20, [sp,16] - add x6, x5, x0 - uxtb w2, w2 - ldr x20, [x5,x0] - ldr x0, [x4,88] - ldrb w19, [x6,8] - ldrb w0, [x0,8] + stp x19, x20, [sp, 16] + add x5, x3, x0 + ldr x20, [x3, x0] + ldr x0, [x3, 88] + ldrb w19, [x5, 8] + ldrb w0, [x0, 8] cmp w0, 2 - bne .L75 - add x4, x4, 96 - cbnz w2, .L76 - ldrb w2, [x4,13] - b .L84 -.L76: - ldrb w2, [x4,14] -.L84: + bne .L89 + and w2, w2, 255 + add x3, x3, 96 + cbnz w2, .L90 + ldrb w2, [x3, 13] +.L100: add x0, x19, 8 - add x3, x3, :lo12:.LANCHOR0 + add x4, x4, :lo12:.LANCHOR0 add x0, x20, x0, lsl 8 - str w2, [x0,8] - mov w2, 0 - ldrb w4, [x3,111] - cbz w4, .L79 + str w2, [x0, 8] + ldrb w4, [x4, 111] + cbz w4, .L94 add x3, x19, 8 - lsl x3, x3, 8 -.L83: + mov w2, 0 + add x3, x20, x3, lsl 8 +.L93: cmp w2, w4 - bcs .L79 - add x5, x20, x3 - lsl w0, w2, 3 - lsr w0, w1, w0 - add w2, w2, 1 - and w0, w0, 255 - str w0, [x5,4] - b .L83 -.L75: - add x0, x19, 8 - mov w1, 112 - add x0, x20, x0, lsl 8 - str w1, [x0,8] -.L79: + bcc .L95 +.L94: add x19, x19, 8 mov x0, 400 lsl x19, x19, 8 bl __const_udelay - ldr w0, [x20,x19] - ldp x19, x20, [sp,16] + ldr w0, [x20, x19] + ldp x19, x20, [sp, 16] + and w0, w0, 255 ldp x29, x30, [sp], 32 - uxtb w0, w0 ret +.L90: + ldrb w2, [x3, 14] + b .L100 +.L95: + lsl w0, w2, 3 + add w2, w2, 1 + lsr w0, w1, w0 + and w0, w0, 255 + str w0, [x3, 4] + b .L93 +.L89: + add x0, x19, 8 + mov w1, 112 + add x0, x20, x0, lsl 8 + str w1, [x0, 8] + b .L94 .size FlashReadStatusEN, .-FlashReadStatusEN .align 2 .global FlashWaitReadyEN @@ -721,27 +711,27 @@ FlashReadStatusEN: FlashWaitReadyEN: stp x29, x30, [sp, -48]! add x29, sp, 0 - stp x19, x20, [sp,16] - str x21, [sp,32] - uxtb w19, w0 + stp x19, x20, [sp, 16] + and w19, w0, 255 + str x21, [sp, 32] mov w20, w1 - uxtb w21, w2 -.L86: - mov w0, w19 + and w21, w2, 255 +.L102: mov w1, w20 mov w2, w21 + mov w0, w19 bl FlashReadStatusEN + mov w1, w0 cmp w0, 255 - mov w3, w0 - beq .L86 - tbnz x3, 6, .L87 - mov x0, 1 + beq .L102 + tbnz x1, 6, .L101 mov x1, 3 + mov x0, 1 bl usleep_range - b .L86 -.L87: - ldp x19, x20, [sp,16] - ldr x21, [sp,32] + b .L102 +.L101: + ldp x19, x20, [sp, 16] + ldr x21, [sp, 32] ldp x29, x30, [sp], 48 ret .size FlashWaitReadyEN, .-FlashWaitReadyEN @@ -751,8 +741,8 @@ FlashWaitReadyEN: FlashScheduleEnSet: adrp x1, .LANCHOR0 add x1, x1, :lo12:.LANCHOR0 - ldr w2, [x1,1264] - str w0, [x1,1264] + ldr w2, [x1, 1264] + str w0, [x1, 1264] mov w0, w2 ret .size FlashScheduleEnSet, .-FlashScheduleEnSet @@ -761,8 +751,8 @@ FlashScheduleEnSet: .type FlashGetPageSize, %function FlashGetPageSize: adrp x0, .LANCHOR0+88 - ldr x0, [x0,#:lo12:.LANCHOR0+88] - ldrb w0, [x0,9] + ldr x0, [x0, #:lo12:.LANCHOR0+88] + ldrb w0, [x0, 9] ret .size FlashGetPageSize, .-FlashGetPageSize .align 2 @@ -775,13 +765,12 @@ NandcReadDontCaseBusyEn: .global NandcGetChipIf .type NandcGetChipIf, %function NandcGetChipIf: - adrp x1, .LANCHOR0 ubfiz x0, x0, 4, 8 + adrp x1, .LANCHOR0 add x1, x1, :lo12:.LANCHOR0 - add x1, x1, 8 add x2, x1, x0 - ldr x0, [x1,x0] - ldrb w2, [x2,8] + ldr x0, [x1, x0] + ldrb w2, [x2, 8] add x2, x2, 8 add x0, x0, x2, lsl 8 ret @@ -791,12 +780,12 @@ NandcGetChipIf: .type NandcSetDdrPara, %function NandcSetDdrPara: adrp x1, .LANCHOR0+136 - uxtb w0, w0 + and w0, w0, 255 lsl w2, w0, 8 + ldr x1, [x1, #:lo12:.LANCHOR0+136] orr w0, w2, w0, lsl 16 - ldr x1, [x1,#:lo12:.LANCHOR0+136] orr w0, w0, 1 - str w0, [x1,304] + str w0, [x1, 304] ret .size NandcSetDdrPara, .-NandcSetDdrPara .align 2 @@ -804,11 +793,11 @@ NandcSetDdrPara: .type NandcSetDdrDiv, %function NandcSetDdrDiv: adrp x1, .LANCHOR0+136 - uxtb w0, w0 - ldr x2, [x1,#:lo12:.LANCHOR0+136] - mov w1, 16640 - orr w0, w0, w1 - str w0, [x2,344] + and w0, w0, 255 + mov w2, 16640 + orr w0, w0, w2 + ldr x1, [x1, #:lo12:.LANCHOR0+136] + str w0, [x1, 344] ret .size NandcSetDdrDiv, .-NandcSetDdrDiv .align 2 @@ -816,8 +805,8 @@ NandcSetDdrDiv: .type NandcSetDdrMode, %function NandcSetDdrMode: adrp x1, .LANCHOR0+136 - cmp w0, wzr - ldr x2, [x1,#:lo12:.LANCHOR0+136] + cmp w0, 0 + ldr x2, [x1, #:lo12:.LANCHOR0+136] ldr w1, [x2] and w3, w1, -8193 orr w1, w1, 253952 @@ -830,47 +819,45 @@ NandcSetDdrMode: .type NandcSetMode, %function NandcSetMode: adrp x1, .LANCHOR0+136 - uxtb w0, w0 + and w0, w0, 255 tst w0, 6 - ldr x2, [x1,#:lo12:.LANCHOR0+136] + ldr x2, [x1, #:lo12:.LANCHOR0+136] ldr w1, [x2] - beq .L101 - and w0, w0, 4 + beq .L118 orr w1, w1, 24576 - cmp w0, wzr - mov w0, 8322 + tst x0, 4 and w1, w1, -32769 - str w0, [x2,344] - mov w0, 4099 + mov w0, 8322 orr w1, w1, 196608 - movk w0, 0x10, lsl 16 - str w0, [x2,304] + str w0, [x2, 344] + mov w0, 4099 orr w3, w1, 32768 - mov w0, 38 - str w0, [x2,308] + movk w0, 0x10, lsl 16 + str w0, [x2, 304] csel w1, w3, w1, ne + mov w0, 38 + str w0, [x2, 308] mov w0, 39 - str w0, [x2,308] - b .L103 -.L101: - and w1, w1, -8193 -.L103: - str w1, [x2] + str w0, [x2, 308] +.L120: mov w0, 0 + str w1, [x2] ret +.L118: + and w1, w1, -8193 + b .L120 .size NandcSetMode, .-NandcSetMode .align 2 .global NandcFlashCs .type NandcFlashCs, %function NandcFlashCs: - adrp x1, .LANCHOR0 ubfiz x0, x0, 4, 8 + adrp x1, .LANCHOR0 add x1, x1, :lo12:.LANCHOR0 - add x1, x1, 8 add x3, x1, x0 - ldr x2, [x1,x0] + ldr x2, [x1, x0] mov w1, 1 - ldrb w3, [x3,8] + ldrb w3, [x3, 8] ldr w0, [x2] lsl w1, w1, w3 bfi w0, w1, 0, 8 @@ -881,11 +868,10 @@ NandcFlashCs: .global NandcFlashDeCs .type NandcFlashDeCs, %function NandcFlashDeCs: - adrp x1, .LANCHOR0 ubfiz x0, x0, 4, 8 + adrp x1, .LANCHOR0 add x1, x1, :lo12:.LANCHOR0 - add x1, x1, 8 - ldr x1, [x1,x0] + ldr x1, [x1, x0] ldr w0, [x1] and w0, w0, -256 and w0, w0, -131073 @@ -898,89 +884,92 @@ NandcFlashDeCs: HynixSetRRPara: stp x29, x30, [sp, -96]! add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] adrp x20, .LANCHOR0 - str x27, [sp,80] - add x19, x20, :lo12:.LANCHOR0 - uxtb w27, w1 - stp x25, x26, [sp,64] - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - uxtb x24, w0 + stp x23, x24, [sp, 48] + and w23, w0, 255 + add x0, x20, :lo12:.LANCHOR0 + stp x21, x22, [sp, 32] + str x27, [sp, 80] + and w27, w1, 255 + stp x25, x26, [sp, 64] mov x21, x2 - ldr x0, [x19,88] - mov x26, x24 - uxtb w25, w3 - ldrb w0, [x0,19] - cmp w0, 6 - bne .L109 - add x19, x19, x24, lsl 6 - lsl w4, w25, 2 - add x19, x19, 1292 - b .L115 -.L109: - cmp w0, 7 - bne .L111 - mov x2, 160 - mov w4, 10 - madd x19, x24, x2, x19 - mul w4, w25, w4 - add x19, x19, 1300 -.L115: - add x19, x19, w4, sxtw - b .L110 -.L111: - cmp w0, 8 - bne .L112 - add x19, x19, 1300 - add w4, w25, w25, lsl 2 - b .L115 -.L112: - lsl x4, x24, 3 - add x4, x4, w25, sxtw - add x19, x19, x4, lsl 3 - add x19, x19, 1292 -.L110: - add x2, x20, :lo12:.LANCHOR0 - lsl x0, x24, 4 - add x2, x2, 8 - uxtb x27, w27 - add x1, x2, x0 - ldr x22, [x2,x0] - mov w0, w26 - ldrb w23, [x1,8] + and w22, w3, 255 + ldr x1, [x0, 88] + ldrb w1, [x1, 19] + cmp w1, 6 + bne .L126 + ubfiz x19, x23, 6, 8 + add x0, x0, 1272 + add x19, x19, 20 + add x19, x19, w22, uxtw 2 +.L133: + add x19, x0, x19 +.L127: + sxtw x26, w23 + add x0, x20, :lo12:.LANCHOR0 + lsl x1, x26, 4 + and x27, x27, 255 + add x2, x0, x1 + mov x25, 0 + ldr x24, [x0, x1] + mov w0, w23 + ldrb w5, [x2, 8] bl NandcFlashCs - ubfiz x23, x23, 8, 8 + ubfiz x5, x5, 8, 8 + add x24, x24, x5 mov w0, 54 - add x22, x22, x23 - mov x23, 0 - str w0, [x22,2056] -.L113: - cmp x23, x27 - beq .L116 - 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 .L113 -.L116: + str w0, [x24, 2056] +.L130: + cmp x25, x27 + bne .L131 add x20, x20, :lo12:.LANCHOR0 mov w0, 22 - add x24, x20, x24 - str w0, [x22,2056] - mov w0, w26 + add x20, x20, x26 + str w0, [x24, 2056] + mov w0, w23 bl NandcFlashDeCs - strb w25, [x24,2128] - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldr x27, [sp,80] + strb w22, [x20, 2128] + 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 +.L126: + cmp w1, 7 + bne .L128 + mov w19, 160 + mov x1, 28 + add x0, x0, 1272 + umaddl x1, w19, w23, x1 + mov w19, 10 + umaddl x19, w22, w19, x1 + b .L133 +.L128: + cmp w1, 8 + bne .L129 + add x0, x0, 1300 + add w19, w22, w22, lsl 2 + add x19, x0, w19, sxtw + b .L127 +.L129: + and x19, x22, 255 + add x19, x19, 2 + add x19, x19, w23, uxtw 3 + add x19, x0, x19, lsl 3 + add x19, x19, 1276 + b .L127 +.L131: + ldrb w0, [x21, x25] + str w0, [x24, 2052] + mov x0, 1000 + bl __const_udelay + ldrsb w0, [x19, x25] + add x25, x25, 1 + str w0, [x24, 2048] + b .L130 .size HynixSetRRPara, .-HynixSetRRPara .align 2 .global FlashSetReadRetryDefault @@ -988,36 +977,36 @@ HynixSetRRPara: FlashSetReadRetryDefault: stp x29, x30, [sp, -48]! add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] adrp x19, .LANCHOR0 - mov x20, 0 add x19, x19, :lo12:.LANCHOR0 - stp x21, x22, [sp,32] - ldr x0, [x19,88] - ldrb w0, [x0,19] + stp x21, x22, [sp, 32] + ldr x0, [x19, 88] + ldrb w0, [x0, 19] sub w0, w0, #1 - uxtb w0, w0 + and w0, w0, 255 cmp w0, 7 - bhi .L117 + bhi .L134 add x21, x19, 2132 add x22, x19, 1276 -.L122: + mov x20, 0 +.L137: lsl x1, x20, 3 - uxtb w0, w20 - ldrb w1, [x1,x21] + and w0, w20, 255 + ldrb w1, [x1, x21] cmp w1, 173 - bne .L119 - ldrb w1, [x19,1273] - mov x2, x22 + bne .L136 + ldrb w1, [x19, 1273] mov w3, 0 + mov x2, x22 bl HynixSetRRPara -.L119: +.L136: add x20, x20, 1 cmp x20, 4 - bne .L122 -.L117: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] + bne .L137 +.L134: + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] ldp x29, x30, [sp], 48 ret .size FlashSetReadRetryDefault, .-FlashSetReadRetryDefault @@ -1025,46 +1014,43 @@ FlashSetReadRetryDefault: .global FlashWaitCmdDone .type FlashWaitCmdDone, %function FlashWaitCmdDone: - stp x29, x30, [sp, -48]! - uxtb x1, w0 - mov x2, 24 + and x5, x0, 255 + mov x0, 24 + stp x29, x30, [sp, -32]! + adrp x4, .LANCHOR0 + add x4, x4, :lo12:.LANCHOR0 + mul x0, x5, x0 add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x20, .LANCHOR0 - stp x21, x22, [sp,32] - add x20, x20, :lo12:.LANCHOR0 - mov x22, x1 - mul x1, x1, x2 - add x0, x20, 2164 - add x19, x0, x1 - ldrb w21, [x0,x1] - ldr x0, [x19,8] - cbz x0, .L126 - mov w0, w21 - add x20, x20, 1232 + add x1, x4, 2164 + stp x19, x20, [sp, 16] + add x19, x1, x0 + ldr x2, [x19, 8] + cbz x2, .L143 + ldrb w20, [x1, x0] + mov w0, w20 bl NandcFlashCs - ldr w0, [x20,w22,sxtw 2] - ldr w1, [x19,4] - cmp w0, wzr - mov w0, w21 + add x4, x4, 1232 + ldr w1, [x19, 4] + ldr w0, [x4, x5, lsl 2] + cmp w0, 0 + mov w0, w20 cset w2, ne bl FlashWaitReadyEN - mov w20, w0 - mov w0, w21 + mov w2, w0 + mov w0, w20 bl NandcFlashDeCs - ldr x1, [x19,8] - sbfx x0, x20, 0, 1 + sbfx x0, x2, 0, 1 + ldr x1, [x19, 8] str w0, [x1] - str xzr, [x19,8] - ldr x1, [x19,16] - cbz x1, .L126 + str xzr, [x19, 8] + ldr x1, [x19, 16] + cbz x1, .L143 str w0, [x1] - str xzr, [x19,16] -.L126: + str xzr, [x19, 16] +.L143: mov w0, 0 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x29, x30, [sp], 48 + ldp x19, x20, [sp, 16] + ldp x29, x30, [sp], 32 ret .size FlashWaitCmdDone, .-FlashWaitCmdDone .align 2 @@ -1084,97 +1070,92 @@ NandcDelayns: .type NandcWaitFlashReadyNoDelay, %function NandcWaitFlashReadyNoDelay: stp x29, x30, [sp, -48]! - adrp x1, .LANCHOR0 ubfiz x0, x0, 4, 8 + adrp x1, .LANCHOR0 add x1, x1, :lo12:.LANCHOR0 add x29, sp, 0 - add x1, x1, 8 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] mov w19, 34464 - ldr x20, [x1,x0] movk w19, 0x1, lsl 16 -.L134: + ldr x20, [x1, x0] +.L153: ldr w0, [x20] - str w0, [x29,40] - ldr w0, [x29,40] - tbnz x0, 9, .L135 + str w0, [x29, 40] + ldr w0, [x29, 40] + tbnz x0, 9, .L154 mov x0, 50 bl __const_udelay subs w19, w19, #1 - bne .L134 + bne .L153 mov w0, -1 - b .L133 -.L135: - mov w0, 0 -.L133: - ldp x19, x20, [sp,16] +.L151: + ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 48 ret +.L154: + mov w0, 0 + b .L151 .size NandcWaitFlashReadyNoDelay, .-NandcWaitFlashReadyNoDelay .align 2 .global NandcWaitFlashReady .type NandcWaitFlashReady, %function NandcWaitFlashReady: stp x29, x30, [sp, -48]! - adrp x1, .LANCHOR0 ubfiz x0, x0, 4, 8 + adrp x1, .LANCHOR0 add x1, x1, :lo12:.LANCHOR0 add x29, sp, 0 - add x1, x1, 8 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] mov w19, 34464 - ldr x20, [x1,x0] movk w19, 0x1, lsl 16 + ldr x20, [x1, x0] mov x0, 650 bl __const_udelay -.L139: +.L159: ldr w0, [x20] - str w0, [x29,40] - ldr w0, [x29,40] - tbnz x0, 9, .L140 - mov x0, 1 + str w0, [x29, 40] + ldr w0, [x29, 40] + tbnz x0, 9, .L160 mov x1, 2 + mov x0, 1 bl usleep_range subs w19, w19, #1 - bne .L139 + bne .L159 mov w0, -1 - b .L138 -.L140: - mov w0, 0 -.L138: - ldp x19, x20, [sp,16] +.L157: + ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 48 ret +.L160: + mov w0, 0 + b .L157 .size NandcWaitFlashReady, .-NandcWaitFlashReady .align 2 .global FlashReset .type FlashReset, %function FlashReset: - stp x29, x30, [sp, -48]! - adrp x1, .LANCHOR0 + stp x29, x30, [sp, -32]! add x29, sp, 0 - stp x19, x20, [sp,16] - add x1, x1, :lo12:.LANCHOR0 - uxtb w20, w0 - add x1, x1, 8 - sbfiz x0, x20, 4, 32 - add x2, x1, x0 - str x21, [sp,32] - ldr x21, [x1,x0] - mov w0, w20 - ldrb w19, [x2,8] + str x19, [sp, 16] + and w19, w0, 255 + sbfiz x1, x19, 4, 32 + adrp x0, .LANCHOR0 + add x0, x0, :lo12:.LANCHOR0 + add x2, x0, x1 + ldr x5, [x0, x1] + mov w0, w19 + ldrb w4, [x2, 8] bl NandcFlashCs - add x19, x19, 8 + add x4, x4, 8 + add x4, x5, x4, lsl 8 mov w0, 255 - add x19, x21, x19, lsl 8 - str w0, [x19,8] - mov w0, w20 + str w0, [x4, 8] + mov w0, w19 bl NandcWaitFlashReady - mov w0, w20 + mov w0, w19 bl NandcFlashDeCs - ldr x21, [sp,32] - ldp x19, x20, [sp,16] - ldp x29, x30, [sp], 48 + ldr x19, [sp, 16] + ldp x29, x30, [sp], 32 ret .size FlashReset, .-FlashReset .align 2 @@ -1183,57 +1164,56 @@ FlashReset: flash_enter_slc_mode: stp x29, x30, [sp, -64]! add x29, sp, 0 - stp x21, x22, [sp,32] + stp x21, x22, [sp, 32] adrp x21, .LANCHOR0 - str x23, [sp,48] - stp x19, x20, [sp,16] - add x20, x21, :lo12:.LANCHOR0 - uxtb w22, w0 - ldrb w0, [x20,204] - cbz w0, .L143 + add x4, x21, :lo12:.LANCHOR0 + stp x19, x20, [sp, 16] + str x23, [sp, 48] + and w22, w0, 255 + ldrb w0, [x4, 204] + cbz w0, .L165 mov w0, w22 bl NandcFlashCs - sxtw x1, w22 - add x2, x20, 8 - lsl x0, x1, 4 - add x1, x20, x1, lsl 3 - add x3, x2, x0 - ldr x23, [x2,x0] - ldrb w0, [x1,2132] - ldrb w19, [x3,8] + sxtw x0, w22 + lsl x1, x0, 4 + add x0, x4, x0, lsl 3 + add x2, x4, x1 + ldrb w0, [x0, 2132] + ldr x23, [x4, x1] + ldrb w19, [x2, 8] cmp w0, 44 - bne .L145 + bne .L167 ubfiz x20, x19, 8, 8 mov w0, 239 add x20, x23, x20 - str w0, [x20,2056] + str w0, [x20, 2056] mov w0, 145 - str w0, [x20,2052] + str w0, [x20, 2052] mov x0, 250 bl __const_udelay - str wzr, [x20,2048] + str wzr, [x20, 2048] mov w0, 1 - str w0, [x20,2048] - str wzr, [x20,2048] + str w0, [x20, 2048] + str wzr, [x20, 2048] mov x0, 500 - str wzr, [x20,2048] + str wzr, [x20, 2048] bl __const_udelay -.L145: +.L167: add x19, x19, 8 mov w0, w22 - add x21, x21, :lo12:.LANCHOR0 add x19, x23, x19, lsl 8 bl NandcWaitFlashReadyNoDelay mov w0, 218 - str w0, [x19,8] + add x21, x21, :lo12:.LANCHOR0 + str w0, [x19, 8] mov w0, w22 bl NandcWaitFlashReady mov w0, 2 - strb w0, [x21,2356] -.L143: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldr x23, [sp,48] + strb w0, [x21, 2356] +.L165: + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldr x23, [sp, 48] ldp x29, x30, [sp], 64 ret .size flash_enter_slc_mode, .-flash_enter_slc_mode @@ -1243,57 +1223,56 @@ flash_enter_slc_mode: flash_exit_slc_mode: stp x29, x30, [sp, -64]! add x29, sp, 0 - stp x21, x22, [sp,32] + stp x21, x22, [sp, 32] adrp x21, .LANCHOR0 - str x23, [sp,48] - stp x19, x20, [sp,16] - add x20, x21, :lo12:.LANCHOR0 - uxtb w22, w0 - ldrb w0, [x20,204] - cbz w0, .L149 + add x4, x21, :lo12:.LANCHOR0 + stp x19, x20, [sp, 16] + str x23, [sp, 48] + and w22, w0, 255 + ldrb w0, [x4, 204] + cbz w0, .L172 mov w0, w22 bl NandcFlashCs - sxtw x1, w22 - add x2, x20, 8 - lsl x0, x1, 4 - add x1, x20, x1, lsl 3 - add x3, x2, x0 - ldr x23, [x2,x0] - ldrb w0, [x1,2132] - ldrb w19, [x3,8] + sxtw x0, w22 + lsl x1, x0, 4 + add x0, x4, x0, lsl 3 + add x2, x4, x1 + ldrb w0, [x0, 2132] + ldr x23, [x4, x1] + ldrb w19, [x2, 8] cmp w0, 44 - bne .L151 + bne .L174 ubfiz x20, x19, 8, 8 mov w0, 239 add x20, x23, x20 - str w0, [x20,2056] + str w0, [x20, 2056] mov w0, 145 - str w0, [x20,2052] + str w0, [x20, 2052] mov x0, 250 bl __const_udelay mov w0, 2 - str w0, [x20,2048] + str w0, [x20, 2048] mov w0, 1 - str w0, [x20,2048] - str wzr, [x20,2048] + str w0, [x20, 2048] + str wzr, [x20, 2048] mov x0, 500 - str wzr, [x20,2048] + str wzr, [x20, 2048] bl __const_udelay -.L151: +.L174: add x19, x19, 8 mov w0, w22 - add x21, x21, :lo12:.LANCHOR0 add x19, x23, x19, lsl 8 bl NandcWaitFlashReadyNoDelay + add x21, x21, :lo12:.LANCHOR0 mov w0, 223 - str w0, [x19,8] + str w0, [x19, 8] mov w0, w22 bl NandcWaitFlashReady - strb wzr, [x21,2356] -.L149: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldr x23, [sp,48] + strb wzr, [x21, 2356] +.L172: + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldr x23, [sp, 48] ldp x29, x30, [sp], 64 ret .size flash_exit_slc_mode, .-flash_exit_slc_mode @@ -1303,15 +1282,16 @@ flash_exit_slc_mode: FlashEraseBlock: stp x29, x30, [sp, -48]! add x29, sp, 0 - stp x19, x20, [sp,16] - uxtb w19, w0 + stp x19, x20, [sp, 16] + and w19, w0, 255 mov w20, w1 + str x21, [sp, 32] mov w0, w19 - str x2, [x29,40] + mov w21, w2 bl NandcWaitFlashReady mov w0, w19 bl NandcFlashCs - ldr x2, [x29,40] + mov w2, w21 mov w1, w20 mov w0, w19 bl FlashEraseCmd @@ -1320,11 +1300,12 @@ FlashEraseBlock: mov w1, w20 mov w0, w19 bl FlashReadStatus - mov w20, w0 + mov w2, w0 mov w0, w19 bl NandcFlashDeCs - and w0, w20, 1 - ldp x19, x20, [sp,16] + and w0, w2, 1 + ldp x19, x20, [sp, 16] + ldr x21, [sp, 32] ldp x29, x30, [sp], 48 ret .size FlashEraseBlock, .-FlashEraseBlock @@ -1333,167 +1314,163 @@ FlashEraseBlock: .type FlashSetInterfaceMode, %function FlashSetInterfaceMode: adrp x1, .LANCHOR0 - mov x6, 0 add x1, x1, :lo12:.LANCHOR0 - mov w8, 239 stp x29, x30, [sp, -16]! - add x7, x1, 8 - add x4, x1, 2132 + add x6, x1, 8 + add x3, x1, 2132 + mov x5, 0 add x29, sp, 0 - ldrb w2, [x1,2357] + ldrb w2, [x1, 2357] + mov w12, 69 + mov w8, 239 mov w9, 128 + and w11, w2, 4 + and w7, w2, 1 mov w10, 1 - mov w12, 35 - and w11, w2, 1 - and w2, w2, 4 - mov w13, 32 - mov w14, 5 - uxtb w5, w2 -.L167: - ldrb w3, [x6,x4] - ldr x1, [x7] - cmp w3, 152 - ldrb w2, [x7,8] - beq .L157 - cmp w3, 69 - beq .L157 - cmp w3, 173 - beq .L157 - cmp w3, 44 - bne .L158 -.L157: + mov w13, 35 + mov w14, 32 + mov w15, 5 + mov w16, 44 +.L191: + ldrb w2, [x5, x3] + ldrb w4, [x6] + cmp w2, 152 + ccmp w2, w12, 4, ne + beq .L182 + cmp w2, 173 + ccmp w2, w16, 4, ne + bne .L183 +.L182: cmp w0, 1 - bne .L160 - cbz w11, .L158 - ubfiz x2, x2, 8, 8 - cmp w3, 173 - add x1, x1, x2 - str w8, [x1,2056] - bne .L161 - str w0, [x1,2052] - b .L178 -.L161: - cmp w3, 44 - bne .L163 - str w0, [x1,2052] - str w14, [x1,2048] - b .L165 -.L163: - str w9, [x1,2052] - str w0, [x1,2048] - b .L165 -.L160: - cbz w5, .L158 - ubfiz x2, x2, 8, 8 - cmp w3, 173 - add x1, x1, x2 - str w8, [x1,2056] - bne .L164 - str w10, [x1,2052] - str w13, [x1,2048] - b .L165 -.L164: - cmp w3, 44 - bne .L166 - str w10, [x1,2052] - str w12, [x1,2048] - b .L165 -.L166: - str w9, [x1,2052] -.L178: - str wzr, [x1,2048] -.L165: - str wzr, [x1,2048] - str wzr, [x1,2048] - str wzr, [x1,2048] -.L158: - add x6, x6, 8 - add x7, x7, 16 - cmp x6, 32 - bne .L167 + ldr x1, [x6, -8] + bne .L184 + cbz w7, .L183 + ubfiz x4, x4, 8, 8 + cmp w2, 173 + add x1, x1, x4 + str w8, [x1, 2056] + bne .L185 + str w0, [x1, 2052] +.L203: + str wzr, [x1, 2048] + b .L189 +.L185: + cmp w2, 44 + bne .L187 + str w0, [x1, 2052] + str w15, [x1, 2048] +.L189: + str wzr, [x1, 2048] + str wzr, [x1, 2048] + str wzr, [x1, 2048] +.L183: + add x5, x5, 8 + add x6, x6, 16 + cmp x5, 32 + bne .L191 mov w0, 0 bl NandcWaitFlashReady mov w0, 0 ldp x29, x30, [sp], 16 ret +.L187: + str w9, [x1, 2052] + str w0, [x1, 2048] + b .L189 +.L184: + cbz w11, .L183 + ubfiz x4, x4, 8, 8 + cmp w2, 173 + add x1, x1, x4 + str w8, [x1, 2056] + bne .L188 + str w10, [x1, 2052] + str w14, [x1, 2048] + b .L189 +.L188: + cmp w2, 44 + bne .L190 + str w10, [x1, 2052] + str w13, [x1, 2048] + b .L189 +.L190: + str w9, [x1, 2052] + b .L203 .size FlashSetInterfaceMode, .-FlashSetInterfaceMode .align 2 .global FlashReadSpare .type FlashReadSpare, %function FlashReadSpare: - adrp x3, .LANCHOR1+481 - adrp x5, .LANCHOR0 - stp x29, x30, [sp, -48]! - uxtb w0, w0 - add x5, x5, :lo12:.LANCHOR0 - add x5, x5, 8 - sbfiz x6, x0, 4, 32 + stp x29, x30, [sp, -32]! + and w0, w0, 255 + sbfiz x5, x0, 4, 32 + adrp x4, .LANCHOR0 add x29, sp, 0 - ldrb w4, [x3,#:lo12:.LANCHOR1+481] - add x3, x5, x6 - str x19, [sp,16] - lsl w4, w4, 9 - str x2, [x29,40] - ldrb w3, [x3,8] - ldr x19, [x5,x6] - add x19, x19, x3, lsl 8 - and w3, w1, 255 - str wzr, [x19,2056] - str w4, [x19,2052] - lsr w4, w4, 8 - str w4, [x19,2052] - str w3, [x19,2052] - lsr w3, w1, 8 - str w3, [x19,2052] + stp x19, x20, [sp, 16] + mov x20, x2 + adrp x2, .LANCHOR1+481 + add x4, x4, :lo12:.LANCHOR0 + ldrb w3, [x2, #:lo12:.LANCHOR1+481] + add x2, x4, x5 + ldrb w19, [x2, 8] + lsl w3, w3, 9 + ldr x2, [x4, x5] + add x19, x2, x19, lsl 8 + and w2, w1, 255 + str wzr, [x19, 2056] + str w3, [x19, 2052] + lsr w3, w3, 8 + str w3, [x19, 2052] + str w2, [x19, 2052] + lsr w2, w1, 8 + str w2, [x19, 2052] lsr w1, w1, 16 - str w1, [x19,2052] + str w1, [x19, 2052] mov w1, 48 - str w1, [x19,2056] + str w1, [x19, 2056] bl NandcWaitFlashReady - ldr x2, [x29,40] - ldr w0, [x19,2048] - strb w0, [x2] - ldr x19, [sp,16] - ldp x29, x30, [sp], 48 + ldr w0, [x19, 2048] + strb w0, [x20] + ldp x19, x20, [sp, 16] + ldp x29, x30, [sp], 32 ret .size FlashReadSpare, .-FlashReadSpare .align 2 .global SandiskProgTestBadBlock .type SandiskProgTestBadBlock, %function SandiskProgTestBadBlock: - adrp x3, .LANCHOR0 - uxtb w0, w0 stp x29, x30, [sp, -32]! - add x3, x3, :lo12:.LANCHOR0 - sbfiz x4, x0, 4, 32 - add x3, x3, 8 + and w0, w0, 255 + sbfiz x3, x0, 4, 32 + adrp x2, .LANCHOR0 + add x2, x2, :lo12:.LANCHOR0 add x29, sp, 0 - add x2, x3, x4 - str x19, [sp,16] - ldrb w2, [x2,8] - ldr x19, [x3,x4] - add x19, x19, x2, lsl 8 + add x4, x2, x3 + str x19, [sp, 16] + ldr x2, [x2, x3] + ldrb w19, [x4, 8] + add x19, x2, x19, lsl 8 mov w2, 162 - str w2, [x19,2056] + str w2, [x19, 2056] mov w2, 128 - str w2, [x19,2056] + str w2, [x19, 2056] and w2, w1, 255 - str wzr, [x19,2052] - str wzr, [x19,2052] - str w2, [x19,2052] + str wzr, [x19, 2052] + str wzr, [x19, 2052] + str w2, [x19, 2052] lsr w2, w1, 8 - str w2, [x19,2052] + str w2, [x19, 2052] lsr w1, w1, 16 - str w1, [x19,2052] + str w1, [x19, 2052] mov w1, 16 - str w1, [x19,2056] + str w1, [x19, 2056] bl NandcWaitFlashReady mov w0, 112 - str w0, [x19,2056] + str w0, [x19, 2056] mov x0, 400 bl __const_udelay - ldr w0, [x19,2048] - ldr x19, [sp,16] + ldr w0, [x19, 2048] + ldr x19, [sp, 16] and w0, w0, 1 ldp x29, x30, [sp], 32 ret @@ -1504,422 +1481,408 @@ SandiskProgTestBadBlock: SandiskSetRRPara: stp x29, x30, [sp, -32]! add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] mov x20, x0 mov w0, 239 - uxtb w19, w1 - add w19, w19, 1 - str w0, [x20,8] + and w19, w1, 255 + str w0, [x20, 8] mov w0, 17 - str w0, [x20,4] + str w0, [x20, 4] mov x0, 1000 bl __const_udelay - mov w1, 5 - adrp x2, .LANCHOR1 - add x2, x2, :lo12:.LANCHOR1 - adrp x5, .LANCHOR0 - smull x1, w19, w1 - add x0, x2, 256 - add x2, x2, 304 + add w1, w19, 1 + mov w0, 5 + adrp x2, .LANCHOR0 + add x2, x2, :lo12:.LANCHOR0 + umull x1, w1, w0 + adrp x0, .LANCHOR1 + add x0, x0, :lo12:.LANCHOR1 + add x3, x0, 256 + add x0, x0, 352 + add x3, x3, x1 add x0, x0, x1 - add x1, x2, x1 - mov x2, 0 -.L182: - add x3, x5, :lo12:.LANCHOR0 - ldrb w4, [x3,129] - cmp w4, w2 - bls .L187 - ldrb w3, [x3,128] - cmp w3, 67 - bne .L183 - ldrsb w3, [x0,x2] - b .L186 -.L183: - ldrsb w3, [x1,x2] -.L186: - str w3, [x20] - add x2, x2, 1 - b .L182 -.L187: + mov x1, 0 +.L209: + ldrb w4, [x2, 129] + cmp w4, w1 + bhi .L212 mov w0, 0 bl NandcWaitFlashReady - ldp x19, x20, [sp,16] + ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 32 ret +.L212: + ldrb w4, [x2, 128] + cmp w4, 67 + bne .L210 + ldrsb w4, [x0, x1] +.L214: + add x1, x1, 1 + str w4, [x20] + b .L209 +.L210: + ldrsb w4, [x3, x1] + b .L214 .size SandiskSetRRPara, .-SandiskSetRRPara .align 2 .global micron_auto_read_calibration_config .type micron_auto_read_calibration_config, %function micron_auto_read_calibration_config: - stp x29, x30, [sp, -48]! + stp x29, x30, [sp, -32]! add x29, sp, 0 - str x19, [sp,16] - uxtb w19, w0 + stp x19, x20, [sp, 16] + and w19, w0, 255 + mov w20, w1 mov w0, w19 - sbfiz x19, x19, 4, 32 - str x1, [x29,40] bl NandcWaitFlashReady - adrp x3, .LANCHOR0 - add x3, x3, :lo12:.LANCHOR0 - add x3, x3, 8 - add x0, x3, x19 - ldr x19, [x3,x19] - ldrb w2, [x0,8] + sbfiz x0, x19, 4, 32 + adrp x2, .LANCHOR0 + add x2, x2, :lo12:.LANCHOR0 + add x1, x2, x0 + ldr x0, [x2, x0] + ldrb w19, [x1, 8] + add x19, x0, x19, lsl 8 mov w0, 239 - add x19, x19, x2, lsl 8 - str w0, [x19,2056] + str w0, [x19, 2056] mov w0, 150 - str w0, [x19,2052] + str w0, [x19, 2052] mov x0, 1000 bl __const_udelay - ldr x1, [x29,40] - str w1, [x19,2048] - str wzr, [x19,2048] - str wzr, [x19,2048] - str wzr, [x19,2048] - ldr x19, [sp,16] - ldp x29, x30, [sp], 48 + str w20, [x19, 2048] + str wzr, [x19, 2048] + str wzr, [x19, 2048] + str wzr, [x19, 2048] + ldp x19, x20, [sp, 16] + ldp x29, x30, [sp], 32 ret .size micron_auto_read_calibration_config, .-micron_auto_read_calibration_config .align 2 .global FlashEraseSLc2KBlocks .type FlashEraseSLc2KBlocks, %function FlashEraseSLc2KBlocks: - stp x29, x30, [sp, -96]! + stp x29, x30, [sp, -80]! add x29, sp, 0 - stp x21, x22, [sp,32] + stp x23, x24, [sp, 48] + mov w23, 56 + stp x21, x22, [sp, 32] adrp x21, .LANCHOR0 - str x25, [sp,64] - stp x23, x24, [sp,48] + umaddl x23, w1, w23, x0 add x21, x21, :lo12:.LANCHOR0 - adrp x23, .LC0 - stp x19, x20, [sp,16] - mov w24, w1 + stp x19, x20, [sp, 16] + and w22, w1, 255 mov x20, x0 - mov w22, 0 - add x25, x21, 2164 - add x23, x23, :lo12:.LC0 -.L190: - cmp w22, w24 - beq .L199 - add x2, x29, 88 - sub w4, w24, w22 - mov x0, x20 + add x24, x21, 2164 +.L218: + cmp x20, x23 + bne .L223 + ldp x19, x20, [sp, 16] + mov w0, 0 + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x29, x30, [sp], 80 + ret +.L223: mov w1, 0 - add x3, x29, 92 + mov w4, w22 + add x3, x29, 76 + add x2, x29, 72 + mov x0, x20 bl LogAddr2PhyAddr - ldr w2, [x29,92] - ldrb w0, [x21,2358] - cmp w2, w0 - bcc .L191 + ldrb w1, [x21, 2358] + ldr w0, [x29, 76] + cmp w1, w0 + bhi .L219 mov w0, -1 str w0, [x20] - b .L192 -.L191: - uxtw x2, w2 - add x0, x21, x2 - ldrb w19, [x0,2360] - mov x0, 24 - mul x2, x2, x0 +.L220: + sub w22, w22, #1 + add x20, x20, 56 + and w22, w22, 255 + b .L218 +.L219: + uxtw x0, w0 + add x1, x21, x0 + ldrb w19, [x1, 2360] + mov x1, 24 + mul x0, x0, x1 + strb w19, [x24, x0] mov w0, w19 - strb w19, [x25,x2] bl NandcWaitFlashReady mov w0, w19 bl NandcFlashCs - ldr w1, [x29,88] + ldr w1, [x29, 72] mov w2, 0 mov w0, w19 bl FlashEraseCmd mov w0, w19 bl NandcWaitFlashReady - ldr w1, [x29,88] + ldr w1, [x29, 72] mov w0, w19 bl FlashReadStatus sbfx x0, x0, 0, 1 str w0, [x20] - mov w0, w19 - ldr w1, [x29,88] - ldr w2, [x21,76] - add w1, w2, w1 mov w2, 0 + ldr w1, [x29, 72] + ldr w0, [x21, 76] + add w1, w1, w0 + mov w0, w19 bl FlashEraseCmd mov w0, w19 bl NandcWaitFlashReady - ldr w1, [x29,88] + ldr w1, [x29, 72] mov w0, w19 bl FlashReadStatus - tbz x0, 0, .L193 + tbz x0, 0, .L221 mov w0, -1 str w0, [x20] -.L193: +.L221: ldr w0, [x20] cmn w0, #1 - bne .L194 - ldr w1, [x29,88] - mov x0, x23 + bne .L222 + ldr w1, [x29, 72] + adrp x0, .LC0 + add x0, x0, :lo12:.LC0 bl printk -.L194: +.L222: mov w0, w19 bl NandcFlashDeCs -.L192: - add w22, w22, 1 - add x20, x20, 56 - b .L190 -.L199: - mov w0, 0 - ldr x25, [sp,64] - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x29, x30, [sp], 96 - ret + b .L220 .size FlashEraseSLc2KBlocks, .-FlashEraseSLc2KBlocks .align 2 .global FlashEraseBlocks .type FlashEraseBlocks, %function FlashEraseBlocks: - stp x29, x30, [sp, -128]! + stp x29, x30, [sp, -112]! add x29, sp, 0 - stp x27, x28, [sp,80] + stp x19, x20, [sp, 16] + adrp x19, .LANCHOR0 + stp x21, x22, [sp, 32] + add x21, x19, :lo12:.LANCHOR0 + stp x23, x24, [sp, 48] + mov w24, w2 + stp x27, x28, [sp, 80] mov w27, w1 - adrp x1, .LANCHOR0 - stp x19, x20, [sp,16] - add x19, x1, :lo12:.LANCHOR0 - str x1, [x29,104] - stp x23, x24, [sp,48] - mov w23, w2 - mov x24, x0 - ldrb w2, [x19,72] - mov w20, 0 - stp x21, x22, [sp,32] - stp x25, x26, [sp,64] - cbz w2, .L201 - mov w1, w23 - bl FlashEraseSLc2KBlocks - b .L202 -.L201: + stp x25, x26, [sp, 64] + ldrb w1, [x21, 72] + cbnz w1, .L229 + mov x20, x0 + add x26, x21, 2164 + mov w22, 0 mov w28, 56 - add x25, x19, 2164 - mov x26, 24 -.L232: - cmp w20, w23 - bcs .L233 - umull x5, w20, w28 +.L230: + cmp w22, w24 + bcc .L239 + add x19, x19, :lo12:.LANCHOR0 + mov x21, 0 + add x22, x19, 2164 + mov x23, 24 +.L240: + ldrb w0, [x19, 2358] + cmp w0, w21 + bhi .L242 + ldr w0, [x19, 2372] + cbnz w0, .L243 +.L244: + mov w0, 0 + b .L228 +.L229: + mov w1, w2 + bl FlashEraseSLc2KBlocks +.L228: + 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 +.L239: + umull x12, w22, w28 mov w1, 0 - sub w4, w23, w20 - add x21, x24, x5 - add x2, x29, 120 - mov x0, x21 - add x3, x29, 124 - str x5, [x29,96] + sub w4, w24, w22 + add x3, x29, 108 + add x23, x20, x12 + add x2, x29, 104 + mov x0, x23 bl LogAddr2PhyAddr - mov w22, w0 - ldrb w1, [x19,2358] - ldr w0, [x29,124] - ldr x5, [x29,96] - cmp w0, w1 - bcc .L203 + mov w25, w0 + ldrb w1, [x21, 2358] + ldr w0, [x29, 108] + cmp w1, w0 + bhi .L232 mov w0, -1 - str w0, [x24,x5] - b .L204 -.L203: - ldrb w1, [x19,2368] - cmp w1, wzr + str w0, [x20, x12] +.L233: + add w22, w22, 1 + b .L230 +.L232: + ldrb w1, [x21, 2368] + mov x2, 24 + cmp w1, 0 uxtw x1, w0 - csel w22, w22, wzr, ne - madd x1, x1, x26, x25 - ldr x1, [x1,8] - cbz x1, .L206 + csel w25, w25, wzr, ne + madd x1, x1, x2, x26 + ldr x1, [x1, 8] + cbz x1, .L235 bl FlashWaitCmdDone -.L206: - ldr w0, [x29,124] - ldr w1, [x29,120] - madd x2, x0, x26, x25 - str x21, [x2,8] - str xzr, [x2,16] - str w1, [x2,4] - cbz w22, .L207 - add w1, w20, 1 - umull x1, w1, w28 - add x1, x24, x1 - str x1, [x2,16] -.L207: - add x1, x19, x0 - mul x0, x0, x26 - ldrb w21, [x1,2360] - strb w21, [x25,x0] - mov w0, w21 +.L235: + ldp w2, w1, [x29, 104] + mov x0, 24 + madd x0, x1, x0, x26 + str w2, [x0, 4] + stp x23, xzr, [x0, 8] + cbz w25, .L236 + add w2, w22, 1 + umaddl x2, w2, w28, x20 + str x2, [x0, 16] +.L236: + add x0, x21, x1 + ldrb w23, [x0, 2360] + mov x0, 24 + mul x1, x1, x0 + mov w0, w23 + strb w23, [x26, x1] bl NandcFlashCs cmp w27, 1 - bne .L208 - ldrb w0, [x19,204] - cbz w0, .L208 - mov w0, w21 + bne .L237 + ldrb w0, [x21, 204] + cbz w0, .L237 + mov w0, w23 bl flash_enter_slc_mode - b .L209 -.L208: - mov w0, w21 - bl flash_exit_slc_mode -.L209: - ldr w1, [x29,124] - add x0, x19, 1232 - add w20, w20, w22 - ldr w0, [x0,x1,lsl 2] - ldr w1, [x29,120] - cmp w0, wzr - mov w0, w21 +.L238: + ldr w1, [x29, 108] + add x0, x21, 1232 + add w22, w22, w25 + ldr w0, [x0, x1, lsl 2] + ldr w1, [x29, 104] + cmp w0, 0 + mov w0, w23 cset w2, ne bl FlashWaitReadyEN - ldr w1, [x29,120] - mov w0, w21 - mov w2, w22 + ldr w1, [x29, 104] + mov w2, w25 + mov w0, w23 bl FlashEraseCmd - mov w0, w21 + mov w0, w23 bl NandcFlashDeCs -.L204: - add w20, w20, 1 - b .L232 -.L233: - ldr x0, [x29,104] - mov x20, 0 - mov x22, 24 - add x19, x0, :lo12:.LANCHOR0 - add x21, x19, 2164 -.L211: - ldrb w0, [x19,2358] - cmp w0, w20 - bls .L234 - mov w0, w20 + b .L233 +.L237: + mov w0, w23 + bl flash_exit_slc_mode + b .L238 +.L242: + mov w0, w21 bl FlashWaitCmdDone cmp w27, 1 - bne .L212 - ldrb w0, [x19,204] - cbz w0, .L212 - mul x0, x20, x22 - ldrb w0, [x0,x21] + bne .L241 + ldrb w0, [x19, 204] + cbz w0, .L241 + mul x0, x21, x23 + ldrb w0, [x0, x22] bl flash_exit_slc_mode -.L212: - add x20, x20, 1 - b .L211 -.L234: - ldr w0, [x19,2372] - cbnz w0, .L214 -.L216: - mov w0, 0 - b .L202 -.L214: - ldrb w0, [x19,2132] +.L241: + add x21, x21, 1 + b .L240 +.L243: + ldrb w0, [x19, 2132] cmp w0, 69 - bne .L216 - mov x0, 0 - mov x1, 56 -.L215: - cmp w23, w0 - bls .L216 - mul x2, x0, x1 - add x0, x0, 1 - str wzr, [x24,x2] - b .L215 -.L202: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 128 - ret + bne .L244 + mov w1, 56 + mov x0, x20 + umaddl x24, w24, w1, x20 +.L245: + cmp x24, x0 + beq .L244 + str wzr, [x0], 56 + b .L245 .size FlashEraseBlocks, .-FlashEraseBlocks .align 2 .global FlashReadDpCmd .type FlashReadDpCmd, %function FlashReadDpCmd: - stp x29, x30, [sp, -80]! - adrp x3, .LANCHOR0 - and w8, w1, 255 + stp x29, x30, [sp, -64]! add x29, sp, 0 - stp x21, x22, [sp,32] - add x6, x3, :lo12:.LANCHOR0 - uxtb w21, w0 - sbfiz x0, x21, 4, 32 - add x4, x6, 8 - stp x19, x20, [sp,16] - str x23, [sp,48] - add x7, x4, x0 - and w23, w2, 255 - lsr w22, w2, 8 - ldr x5, [x4,x0] + stp x21, x22, [sp, 32] + and w22, w0, 255 + adrp x0, .LANCHOR0 + add x4, x0, :lo12:.LANCHOR0 + stp x23, x24, [sp, 48] + mov w21, w1 + stp x19, x20, [sp, 16] + sbfiz x1, x22, 4, 32 + and w24, w2, 255 + lsr w23, w2, 8 lsr w20, w2, 16 - ldrb w0, [x6,112] - ldr x2, [x6,88] - cmp w0, 1 - ldrb w19, [x7,8] - lsr w0, w1, 16 - lsr w7, w1, 8 - ldrb w2, [x2,7] - bne .L236 + ldr x2, [x4, 88] + add x3, x4, x1 + ldr x5, [x4, x1] + ldrb w1, [x4, 112] + and w7, w21, 255 + lsr w6, w21, 8 + cmp w1, 1 + ldrb w19, [x3, 8] + lsr w1, w21, 16 + ldrb w2, [x2, 7] + bne .L261 cmp w2, 1 - bne .L237 - sxtw x4, w19 + bne .L262 + sxtw x3, w19 mov w2, 38 - add x4, x4, 8 - add x4, x5, x4, lsl 8 - str w2, [x4,8] -.L237: - add x3, x3, :lo12:.LANCHOR0 + add x3, x3, 8 + add x3, x5, x3, lsl 8 + str w2, [x3, 8] +.L262: + add x0, x0, :lo12:.LANCHOR0 add x19, x5, x19, lsl 8 - str x1, [x29,72] - ldrb w2, [x3,104] - str w2, [x19,2056] - str wzr, [x19,2052] - str wzr, [x19,2052] - str w8, [x19,2052] - str w7, [x19,2052] - str w0, [x19,2052] - ldrb w0, [x3,105] - str w0, [x19,2056] - mov w0, w21 + add x0, x0, 96 + ldrb w2, [x0, 8] + str w2, [x19, 2056] + str wzr, [x19, 2052] + str wzr, [x19, 2052] + str w7, [x19, 2052] + str w6, [x19, 2052] + ldrb w0, [x0, 9] + str w1, [x19, 2052] + str w0, [x19, 2056] + mov w0, w22 bl NandcWaitFlashReady - str wzr, [x19,2056] - str wzr, [x19,2052] + str wzr, [x19, 2056] + str wzr, [x19, 2052] + str wzr, [x19, 2052] +.L266: + str w24, [x19, 2052] mov w0, 48 - str wzr, [x19,2052] - str w23, [x19,2052] - str w22, [x19,2052] - str w20, [x19,2052] - str w0, [x19,2056] - ldr x1, [x29,72] - b .L238 -.L236: - cmp w2, 1 - bne .L239 - sxtw x4, w19 - mov w2, 38 - add x4, x4, 8 - add x4, x5, x4, lsl 8 - str w2, [x4,8] -.L239: - add x3, x3, :lo12:.LANCHOR0 - add x19, x5, x19, lsl 8 - ldrb w2, [x3,104] - str w2, [x19,2056] - str w8, [x19,2052] - str w7, [x19,2052] - str w0, [x19,2052] - ldrb w0, [x3,105] - str w0, [x19,2056] - mov w0, 48 - str w23, [x19,2052] - str w22, [x19,2052] - str w20, [x19,2052] - str w0, [x19,2056] -.L238: - mov w0, w21 + str w23, [x19, 2052] + mov w1, w21 + str w20, [x19, 2052] + str w0, [x19, 2056] + mov w0, w22 bl FlashSetRandomizer - ldr x23, [sp,48] - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x29, x30, [sp], 80 + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x29, x30, [sp], 64 ret +.L261: + cmp w2, 1 + bne .L264 + sxtw x3, w19 + mov w2, 38 + add x3, x3, 8 + add x3, x5, x3, lsl 8 + str w2, [x3, 8] +.L264: + add x0, x0, :lo12:.LANCHOR0 + add x19, x5, x19, lsl 8 + add x0, x0, 96 + ldrb w2, [x0, 8] + str w2, [x19, 2056] + str w7, [x19, 2052] + str w6, [x19, 2052] + ldrb w0, [x0, 9] + str w1, [x19, 2052] + str w0, [x19, 2056] + b .L266 .size FlashReadDpCmd, .-FlashReadDpCmd .align 2 .global ftl_flash_de_init @@ -1928,48 +1891,47 @@ ftl_flash_de_init: stp x29, x30, [sp, -32]! mov w0, 0 add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] bl NandcWaitFlashReady - adrp x19, .LANCHOR0 bl FlashSetReadRetryDefault + adrp x19, .LANCHOR0 add x0, x19, :lo12:.LANCHOR0 - ldr w0, [x0,2376] - cbz w0, .L241 + ldr w0, [x0, 2376] + cbz w0, .L268 mov w0, 0 bl flash_enter_slc_mode - b .L242 -.L241: - bl flash_exit_slc_mode -.L242: +.L269: add x20, x19, :lo12:.LANCHOR0 - ldrb w0, [x20,2380] - cbz w0, .L243 - ldrb w0, [x20,2357] - tbz x0, 0, .L243 + ldrb w0, [x20, 2380] + cbz w0, .L270 + ldrb w0, [x20, 2357] + tbz x0, 0, .L270 mov w0, 1 bl FlashSetInterfaceMode mov w0, 1 bl NandcSetMode - strb wzr, [x20,2380] -.L243: - add x19, x19, :lo12:.LANCHOR0 - ldr x0, [x19,8] - str wzr, [x0,336] + strb wzr, [x20, 2380] +.L270: + ldr x0, [x19, #:lo12:.LANCHOR0] + str wzr, [x0, 336] mov w0, 0 - ldp x19, x20, [sp,16] + ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 32 ret +.L268: + mov w0, 0 + bl flash_exit_slc_mode + b .L269 .size ftl_flash_de_init, .-ftl_flash_de_init .align 2 .global NandcRandmzSel .type NandcRandmzSel, %function NandcRandmzSel: - adrp x2, .LANCHOR0 ubfiz x0, x0, 4, 8 + adrp x2, .LANCHOR0 add x2, x2, :lo12:.LANCHOR0 - add x2, x2, 8 - ldr x0, [x2,x0] - str w1, [x0,336] + ldr x0, [x2, x0] + str w1, [x0, 336] ret .size NandcRandmzSel, .-NandcRandmzSel .align 2 @@ -1978,73 +1940,77 @@ NandcRandmzSel: NandcTimeCfg: stp x29, x30, [sp, -32]! add x29, sp, 0 - str x19, [sp,16] + str x19, [sp, 16] mov w19, w0 mov w0, 0 bl rknand_get_clk_rate - mov w2, 16960 + mov w1, 16960 + movk w1, 0xf, lsl 16 + sdiv w0, w0, w1 adrp x1, .LANCHOR0 - movk w2, 0xf, lsl 16 add x1, x1, :lo12:.LANCHOR0 - sdiv w0, w0, w2 cmp w0, 250 - ble .L252 - ldr x0, [x1,136] + ble .L280 + ldr x0, [x1, 136] mov w1, 8354 - b .L259 -.L252: - cmp w0, 220 - ble .L254 - ldr x0, [x1,136] - b .L260 -.L254: - cmp w0, 185 - ble .L255 - ldr x0, [x1,136] - mov w1, 4226 - b .L259 -.L255: - cmp w0, 160 - ldr x0, [x1,136] - ble .L256 - mov w1, 4194 - b .L259 -.L256: - cmp w19, 35 - mov w1, 4193 - bls .L259 - cmp w19, 99 - mov w1, 4225 - bls .L259 -.L260: - mov w1, 8322 -.L259: - str w1, [x0,4] - ldr x19, [sp,16] +.L288: + str w1, [x0, 4] + ldr x19, [sp, 16] ldp x29, x30, [sp], 32 ret +.L280: + cmp w0, 220 + ble .L282 + ldr x0, [x1, 136] +.L289: + mov w1, 8322 + b .L288 +.L282: + cmp w0, 185 + ble .L283 + ldr x0, [x1, 136] + mov w1, 4226 + b .L288 +.L283: + cmp w0, 160 + ldr x0, [x1, 136] + ble .L284 + mov w1, 4194 + b .L288 +.L284: + cmp w19, 35 + bhi .L285 + mov w1, 4193 + b .L288 +.L285: + cmp w19, 99 + bhi .L289 + mov w1, 4225 + b .L288 .size NandcTimeCfg, .-NandcTimeCfg .align 2 .global FlashTimingCfg .type FlashTimingCfg, %function FlashTimingCfg: - sub w1, w0, #4096 - sub w1, w1, #97 stp x29, x30, [sp, -16]! - and w1, w1, -33 - cmp w1, 1 + mov w1, -4193 + add w2, w0, w1 + mov w3, -4225 add x29, sp, 0 - bls .L262 + add w1, w0, w3 + cmp w2, 1 + ccmp w1, 1, 0, hi + bls .L291 mov w1, 8322 cmp w0, w1 - bne .L263 -.L262: + bne .L292 +.L291: adrp x1, .LANCHOR0+136 - ldr x1, [x1,#:lo12:.LANCHOR0+136] - str w0, [x1,4] -.L263: + ldr x1, [x1, #:lo12:.LANCHOR0+136] + str w0, [x1, 4] +.L292: adrp x0, .LANCHOR1+493 - ldrb w0, [x0,#:lo12:.LANCHOR1+493] + ldrb w0, [x0, #:lo12:.LANCHOR1+493] bl NandcTimeCfg ldp x29, x30, [sp], 16 ret @@ -2054,58 +2020,58 @@ FlashTimingCfg: .type NandcInit, %function NandcInit: stp x29, x30, [sp, -32]! - mov w3, 1 + mov w2, 1 add x29, sp, 0 - str x19, [sp,16] + str x19, [sp, 16] adrp x19, .LANCHOR0 add x1, x19, :lo12:.LANCHOR0 - str w3, [x1,32] - mov w3, 2 - str wzr, [x1,16] - str w3, [x1,48] - mov w3, 3 - str x0, [x1,8] - str w3, [x1,64] - str x0, [x1,24] - str x0, [x1,40] - str x0, [x1,56] - str x0, [x1,136] + str x0, [x19, #:lo12:.LANCHOR0] + str w2, [x1, 24] + mov w2, 2 + str wzr, [x1, 8] + str w2, [x1, 40] + mov w2, 3 + str x0, [x1, 16] + str x0, [x1, 32] + str x0, [x1, 48] + str x0, [x1, 136] + str w2, [x1, 56] ldr w2, [x0] ubfx x3, x2, 13, 1 - str w3, [x1,2384] - ldr w3, [x0,352] + str w3, [x1, 2384] + ldr w3, [x0, 352] and w2, w2, 245760 orr w2, w2, 256 ubfx x3, x3, 16, 4 - str w3, [x1,2388] - ldr w3, [x0,352] - str w3, [x1,2392] + str w3, [x1, 2388] + ldr w3, [x0, 352] + str w3, [x1, 2392] cmp w3, 2049 - bne .L265 + bne .L295 mov w3, 8 - str w3, [x1,2388] -.L265: + str w3, [x1, 2388] +.L295: add x19, x19, :lo12:.LANCHOR0 str w2, [x0] - ldr x0, [x19,136] - str wzr, [x0,336] + ldr x0, [x19, 136] + str wzr, [x0, 336] mov w0, 40 bl NandcTimeCfg - ldr x0, [x19,136] + ldr x0, [x19, 136] mov w1, 8322 - str w1, [x0,344] + str w1, [x0, 344] mov w1, 6145 movk w1, 0x18, lsl 16 - str w1, [x0,304] + str w1, [x0, 304] mov w0, 36864 bl ftl_malloc - str wzr, [x19,2448] - str x0, [x19,2400] - str x0, [x19,2408] + str wzr, [x19, 2448] + str x0, [x19, 2400] + str x0, [x19, 2408] add x0, x0, 32768 - str wzr, [x19,2456] - str x0, [x19,2416] - ldr x19, [sp,16] + str wzr, [x19, 2456] + str x0, [x19, 2416] + ldr x19, [sp, 16] ldp x29, x30, [sp], 32 ret .size NandcInit, .-NandcInit @@ -2115,20 +2081,20 @@ NandcInit: NandcGetTimeCfg: adrp x4, .LANCHOR0 add x4, x4, :lo12:.LANCHOR0 - ldr x5, [x4,136] - ldr w5, [x5,4] + ldr x5, [x4, 136] + ldr w5, [x5, 4] str w5, [x0] - ldr x0, [x4,136] + ldr x0, [x4, 136] ldr w0, [x0] str w0, [x1] - ldr x0, [x4,136] - ldr w0, [x0,304] + ldr x0, [x4, 136] + ldr w0, [x0, 304] str w0, [x2] - ldr x1, [x4,136] - ldr w0, [x1,308] - ldr w1, [x1,344] - and w0, w0, 255 - orr w0, w0, w1, lsl 16 + ldr x0, [x4, 136] + ldr w1, [x0, 308] + ldr w0, [x0, 344] + and w1, w1, 255 + orr w0, w1, w0, lsl 16 str w0, [x3] ret .size NandcGetTimeCfg, .-NandcGetTimeCfg @@ -2137,32 +2103,32 @@ NandcGetTimeCfg: .type NandcBchSel, %function NandcBchSel: adrp x1, .LANCHOR0 - uxtb w0, w0 add x1, x1, :lo12:.LANCHOR0 + and w0, w0, 255 mov w3, 1 cmp w0, 16 - ldr x2, [x1,136] - str w0, [x1,2460] + ldr x2, [x1, 136] + str w0, [x1, 2460] mov w1, 4096 - str w3, [x2,8] - bne .L268 -.L271: + str w3, [x2, 8] + bne .L299 +.L302: and w1, w1, -17 - b .L269 -.L268: - cmp w0, 24 - bne .L270 - orr w1, w1, 16 - b .L269 -.L270: - cmp w0, 40 - orr w1, w1, 262144 - orr w1, w1, 16 - beq .L271 -.L269: +.L300: orr w1, w1, 1 - str w1, [x2,12] + str w1, [x2, 12] ret +.L299: + cmp w0, 24 + bne .L301 + orr w1, w1, 16 + b .L300 +.L301: + orr w1, w1, 262144 + cmp w0, 40 + orr w1, w1, 16 + bne .L300 + b .L302 .size NandcBchSel, .-NandcBchSel .align 2 .global FlashBchSel @@ -2170,9 +2136,9 @@ NandcBchSel: FlashBchSel: stp x29, x30, [sp, -16]! adrp x1, .LANCHOR0+2464 - uxtb w0, w0 + and w0, w0, 255 add x29, sp, 0 - strb w0, [x1,#:lo12:.LANCHOR0+2464] + strb w0, [x1, #:lo12:.LANCHOR0+2464] bl NandcBchSel ldp x29, x30, [sp], 16 ret @@ -2183,63 +2149,63 @@ FlashBchSel: ftl_flash_resume: stp x29, x30, [sp, -48]! add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] adrp x20, .LANCHOR0 - str x21, [sp,32] add x0, x20, :lo12:.LANCHOR0 - mov x21, 0 + str x21, [sp, 32] add x19, x0, 2132 - ldr x1, [x0,136] - ldr w2, [x0,144] + mov x21, 0 + ldr x1, [x0, 136] + ldr w2, [x0, 144] str w2, [x1] - ldr w2, [x0,148] - ldr x1, [x0,136] - str w2, [x1,4] - ldr w2, [x0,152] - ldr x1, [x0,136] - str w2, [x1,8] - ldr w2, [x0,156] - str w2, [x1,12] - ldr w2, [x0,160] - str w2, [x1,304] - ldr w2, [x0,164] - str w2, [x1,308] - ldr w2, [x0,168] - str w2, [x1,336] - ldr w2, [x0,172] - str w2, [x1,344] -.L278: + ldr w2, [x0, 148] + ldr x1, [x0, 136] + str w2, [x1, 4] + ldr w2, [x0, 152] + ldr x1, [x0, 136] + str w2, [x1, 8] + ldr w2, [x0, 156] + str w2, [x1, 12] + ldr w2, [x0, 160] + str w2, [x1, 304] + ldr w2, [x0, 164] + str w2, [x1, 308] + ldr w2, [x0, 168] + str w2, [x1, 336] + ldr w2, [x0, 172] + str w2, [x1, 344] +.L310: lsl x0, x21, 3 - ldrb w0, [x0,x19] + ldrb w0, [x0, x19] sub w0, w0, #1 - uxtb w0, w0 + and w0, w0, 255 cmp w0, 253 - bhi .L277 + bhi .L309 mov w0, w21 bl FlashReset -.L277: +.L309: add x21, x21, 1 cmp x21, 4 - bne .L278 + bne .L310 add x19, x20, :lo12:.LANCHOR0 - ldrb w0, [x19,2380] - cbz w0, .L279 + ldrb w0, [x19, 2380] + cbz w0, .L311 mov w0, 1 bl NandcSetMode - ldrb w0, [x19,2357] + ldrb w0, [x19, 2357] bl FlashSetInterfaceMode - ldrb w0, [x19,2357] + ldrb w0, [x19, 2357] bl NandcSetMode - ldr w0, [x19,160] + ldr w0, [x19, 160] lsr w0, w0, 8 bl NandcSetDdrPara -.L279: +.L311: add x20, x20, :lo12:.LANCHOR0 - ldr x0, [x20,88] - ldrb w0, [x0,20] + ldr x0, [x20, 88] + ldrb w0, [x0, 20] bl FlashBchSel - ldr x21, [sp,32] - ldp x19, x20, [sp,16] + ldr x21, [sp, 32] + ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 48 ret .size ftl_flash_resume, .-ftl_flash_resume @@ -2247,19 +2213,19 @@ ftl_flash_resume: .global ftl_nandc_get_irq_status .type ftl_nandc_get_irq_status, %function ftl_nandc_get_irq_status: - ldr w0, [x0,372] + ldr w0, [x0, 372] ret .size ftl_nandc_get_irq_status, .-ftl_nandc_get_irq_status .align 2 .global rk_nandc_flash_ready .type rk_nandc_flash_ready, %function rk_nandc_flash_ready: - ldr w1, [x0,368] + ldr w1, [x0, 368] orr w1, w1, 2 - str w1, [x0,368] - ldr w1, [x0,364] + str w1, [x0, 368] + ldr w1, [x0, 364] and w1, w1, -3 - str w1, [x0,364] + str w1, [x0, 364] ret .size rk_nandc_flash_ready, .-rk_nandc_flash_ready .align 2 @@ -2272,12 +2238,12 @@ NandcIqrWaitFlashReady: .global rk_nandc_flash_xfer_completed .type rk_nandc_flash_xfer_completed, %function rk_nandc_flash_xfer_completed: - ldr w1, [x0,368] + ldr w1, [x0, 368] orr w1, w1, 1 - str w1, [x0,368] - ldr w1, [x0,364] + str w1, [x0, 368] + ldr w1, [x0, 364] and w1, w1, -2 - str w1, [x0,364] + str w1, [x0, 364] ret .size rk_nandc_flash_xfer_completed, .-rk_nandc_flash_xfer_completed .align 2 @@ -2285,23 +2251,19 @@ rk_nandc_flash_xfer_completed: .type NandcSendDumpDataStart, %function NandcSendDumpDataStart: sub sp, sp, #16 - mov w2, 1 - mov w1, 10 - bfi w1, w2, 5, 2 - ldr w2, [x0,16] - str w2, [sp,8] - orr w1, w1, 536870912 - orr w1, w1, 1024 - ldr w2, [sp,8] - orr w1, w1, 2097152 + ldr w2, [x0, 16] + mov w1, 1066 + movk w1, 0x2020, lsl 16 + str w2, [sp, 8] + ldr w2, [sp, 8] and w2, w2, -5 - str w2, [sp,8] - ldr w2, [sp,8] - add sp, sp, 16 - str w2, [x0,16] - str w1, [x0,8] + str w2, [sp, 8] + ldr w2, [sp, 8] + str w2, [x0, 16] + str w1, [x0, 8] orr w1, w1, 4 - str w1, [x0,8] + str w1, [x0, 8] + add sp, sp, 16 ret .size NandcSendDumpDataStart, .-NandcSendDumpDataStart .align 2 @@ -2309,11 +2271,11 @@ NandcSendDumpDataStart: .type NandcSendDumpDataDone, %function NandcSendDumpDataDone: sub sp, sp, #16 -.L290: - ldr w1, [x0,8] - str w1, [sp,8] - ldr w1, [sp,8] - tbz x1, 20, .L290 +.L324: + ldr w1, [x0, 8] + str w1, [sp, 8] + ldr w1, [sp, 8] + tbz x1, 20, .L324 add sp, sp, 16 ret .size NandcSendDumpDataDone, .-NandcSendDumpDataDone @@ -2325,144 +2287,142 @@ NandcXferStart: ubfiz x0, x0, 4, 8 ubfx x3, x3, 1, 7 add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] adrp x19, .LANCHOR0 - uxtb w2, w2 - stp x23, x24, [sp,48] - uxtb w23, w1 + stp x23, x24, [sp, 48] + and w24, w1, 255 add x1, x19, :lo12:.LANCHOR0 - add x6, x1, 8 - ubfiz w20, w23, 1, 1 - stp x21, x22, [sp,32] - add x7, x6, x0 + stp x21, x22, [sp, 32] + str x25, [sp, 64] + add x6, x1, x0 + ubfiz w20, w24, 1, 1 + ldr x21, [x1, x0] orr w20, w20, 8 - ldr x21, [x6,x0] + ldrb w0, [x6, 8] mov w6, 16 - ldrb w0, [x7,8] - ldr w22, [x21,12] - bfi w22, w6, 8, 8 - and w22, w22, -9 - bfi w22, w0, 5, 3 + ldr w23, [x21, 12] + bfi w23, w6, 8, 8 + and w23, w23, -9 + bfi w23, w0, 5, 3 mov w0, 1 bfi w20, w0, 5, 2 - ldr w0, [x1,2388] + ldr w0, [x1, 2388] orr w20, w20, 536870912 - cmp w0, 3 orr w20, w20, 1024 + cmp w0, 3 bfi w20, w3, 4, 1 - bls .L294 - ldr w0, [x21,16] - cmp x5, xzr - str w0, [x29,88] - cset w9, ne - ldr w0, [x29,88] + bls .L329 + ldr w0, [x21, 16] + cmp x5, 0 + str w0, [x29, 88] + ccmp x4, 0, 0, eq + ldr w0, [x29, 88] and w0, w0, -5 - str w0, [x29,88] - cbnz w9, .L308 - cbz x4, .L295 -.L308: - cbnz w23, .L297 -.L305: + str w0, [x29, 88] + beq .L330 + and w2, w2, 255 + cbnz w24, .L331 +.L339: add w2, w2, 1 - mov x0, x4 asr w2, w2, 1 bfi w20, w2, 22, 6 - cbnz x4, .L299 - add x0, x19, :lo12:.LANCHOR0 - ldr x0, [x0,2408] - b .L299 -.L297: - add x1, x19, :lo12:.LANCHOR0 - mov w7, 128 - mov w3, 0 - lsr w10, w2, 1 - mov w6, w3 - mov w11, -1 - ldr w0, [x1,2460] - cmp w0, 25 - mov w0, 64 - csel w7, w0, w7, cc -.L301: - cmp w6, w10 - bcs .L305 - lsr w0, w3, 2 - ubfiz x0, x0, 2, 30 - cbz w9, .L302 - ldrh w8, [x5,2] - ldr x12, [x1,2416] - ldrh w13, [x5],4 - orr w8, w13, w8, lsl 16 - str w8, [x12,x0] - b .L303 -.L302: - ldr x8, [x1,2416] - str w11, [x8,x0] -.L303: - add w6, w6, 1 - add w3, w3, w7 - b .L301 -.L299: + cbz x4, .L332 + mov x0, x4 +.L333: add x19, x19, :lo12:.LANCHOR0 - ubfx x24, x20, 22, 5 - mov w2, w23 - str x4, [x29,72] - ldr x1, [x19,2416] - str x1, [x19,2432] - lsl w1, w24, 10 - str x0, [x19,2424] + ubfx x25, x20, 22, 5 + mov x22, x4 + mov w2, w24 + ldr x1, [x19, 2416] + str x1, [x19, 2432] + lsl w1, w25, 10 + str x0, [x19, 2424] bl rknand_dma_map_single - str w0, [x19,2440] - ldr x0, [x19,2432] - lsl w1, w24, 7 - mov w2, w23 + str w0, [x19, 2440] + lsl w1, w25, 7 + ldr x0, [x19, 2432] + mov w2, w24 bl rknand_dma_map_single - str w0, [x19,2444] + str w0, [x19, 2444] mov w0, 1 - str w0, [x19,2448] - ldr w0, [x19,2440] + str w0, [x19, 2448] + ldr w0, [x19, 2440] mov w1, 16 - str w0, [x21,20] - ldr x4, [x29,72] - ldr w0, [x19,2444] - str w0, [x21,24] - and x4, x4, 3 - str wzr, [x29,88] - ldr w0, [x29,88] + str w0, [x21, 20] + tst x22, 3 + ldr w0, [x19, 2444] + str w0, [x21, 24] + str wzr, [x29, 88] + ldr w0, [x29, 88] bfi w0, w1, 9, 5 - str w0, [x29,88] - ldr w0, [x29,88] + str w0, [x29, 88] + ldr w0, [x29, 88] orr w0, w0, 448 - str w0, [x29,88] - cbnz x4, .L306 - ldr w0, [x29,88] + str w0, [x29, 88] + bne .L340 + ldr w0, [x29, 88] mov w1, 2 bfi w0, w1, 3, 3 - str w0, [x29,88] -.L306: - ldr w0, [x29,88] - cmp w23, wzr + str w0, [x29, 88] +.L340: + ldr w0, [x29, 88] + cmp w24, 0 cset w1, eq orr w0, w0, 4 - str w0, [x29,88] - ldr w0, [x29,88] + str w0, [x29, 88] + ldr w0, [x29, 88] bfi w0, w1, 1, 1 - str w0, [x29,88] - ldr w0, [x29,88] + str w0, [x29, 88] + ldr w0, [x29, 88] orr w0, w0, 1 - str w0, [x29,88] -.L295: - ldr w0, [x29,88] - str w0, [x21,16] -.L294: - str w22, [x21,12] - str w20, [x21,8] + str w0, [x29, 88] +.L330: + ldr w0, [x29, 88] + str w0, [x21, 16] +.L329: + str w23, [x21, 12] + str w20, [x21, 8] orr w20, w20, 4 - str w20, [x21,8] - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] + str w20, [x21, 8] + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldr x25, [sp, 64] ldp x29, x30, [sp], 96 ret +.L331: + ldr w0, [x1, 2460] + mov w6, 64 + lsr w9, w2, 1 + mov x8, x5 + cmp w0, 25 + mov w0, 128 + csel w6, w6, w0, cc + mov w7, 0 + mov w3, 0 + mov w10, -1 +.L335: + cmp w3, w9 + bcs .L339 + lsr w0, w7, 2 + cbz x5, .L336 + ldr x11, [x1, 2416] + lsl w0, w0, 2 + ldr w12, [x8], 4 + str w12, [x11, x0] +.L337: + add w3, w3, 1 + add w7, w7, w6 + b .L335 +.L336: + ldr x11, [x1, 2416] + lsl w0, w0, 2 + str w10, [x11, x0] + b .L337 +.L332: + add x0, x19, :lo12:.LANCHOR0 + ldr x0, [x0, 2408] + b .L333 .size NandcXferStart, .-NandcXferStart .align 2 .global Ftl_log2 @@ -2470,16 +2430,16 @@ NandcXferStart: Ftl_log2: mov w2, 1 mov w1, 0 -.L313: +.L347: cmp w2, w0 - bhi .L315 - add w1, w1, 1 - lsl w2, w2, 1 - uxth w1, w1 - b .L313 -.L315: + bls .L348 sub w0, w1, #1 ret +.L348: + add w1, w1, 1 + lsl w2, w2, 1 + and w1, w1, 65535 + b .L347 .size Ftl_log2, .-Ftl_log2 .align 2 .global FtlPrintInfo @@ -2491,272 +2451,267 @@ FtlPrintInfo: .global FtlSysBlkNumInit .type FtlSysBlkNumInit, %function FtlSysBlkNumInit: - uxth w0, w0 + and w0, w0, 65535 mov w1, 24 - cmp w0, 23 - csel w0, w0, w1, hi + cmp w0, 24 + csel w0, w0, w1, cs adrp x1, .LANCHOR0 add x1, x1, :lo12:.LANCHOR0 - ldrh w2, [x1,2472] - ldrh w3, [x1,2482] - str w0, [x1,2468] - mul w2, w0, w2 + and w0, w0, 65535 + ldrh w2, [x1, 2472] + ldrh w3, [x1, 2482] + str w0, [x1, 2468] + mul w2, w2, w0 sub w0, w3, w0 - strh w0, [x1,2480] - ldr w0, [x1,2488] - str w2, [x1,2476] + strh w0, [x1, 2480] + ldr w0, [x1, 2488] + str w2, [x1, 2476] sub w2, w0, w2 mov w0, 0 - str w2, [x1,2484] + str w2, [x1, 2484] ret .size FtlSysBlkNumInit, .-FtlSysBlkNumInit .align 2 .global FtlConstantsInit .type FtlConstantsInit, %function FtlConstantsInit: - stp x29, x30, [sp, -96]! - mov x3, 0 + mov x7, x0 + stp x29, x30, [sp, -16]! + adrp x5, .LANCHOR0 + add x1, x5, :lo12:.LANCHOR0 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] - add x1, x20, :lo12:.LANCHOR0 - ldrh w4, [x23,14] - ldrh w6, [x0,8] - ldrh w2, [x0,10] - ldrh w0, [x0,12] - strh w6, [x1,2492] - strh w2, [x1,2494] - strh w0, [x1,2496] - strh w4, [x1,2482] -.L320: - add x5, x1, 2504 - strb w3, [x3,x5] + ldrh w9, [x0, 8] + add x1, x1, 2504 + ldrh w2, [x0, 10] + mov x3, 0 + ldrh w0, [x0, 12] + ldrh w4, [x7, 14] + strh w9, [x1, -12] + strh w2, [x1, -10] + strh w0, [x1, -8] + strh w4, [x1, -22] +.L352: + strb w3, [x3, x1] add x3, x3, 1 cmp x3, 32 - bne .L320 - ldrh w3, [x23,20] - ldrb w1, [x23,15] + bne .L352 + ldrh w3, [x7, 20] + ldrb w1, [x7, 15] cmp w3, w1 - bcs .L321 - uxtb w8, w0 + bcs .L353 + and w11, w0, 255 + add x8, x5, :lo12:.LANCHOR0 + mul w13, w0, w2 + ubfiz w12, w11, 1, 7 + add x8, x8, 2504 mov w3, 0 - mul w11, w0, w2 - ubfiz w10, w8, 1, 7 - add x12, x20, :lo12:.LANCHOR0 -.L322: +.L354: cmp w3, w0 - bcs .L324 - uxtb w1, w3 - mov w5, w3 - mov w7, 0 -.L325: - cmp w7, w2 - bcs .L347 - add x9, x12, 2504 - add w13, w5, w11 - add w14, w1, w8 - add w7, w7, 1 - strb w1, [x9,w5,uxtw] - add w1, w1, w10 - strb w14, [x9,x13] - add w5, w5, w0 - uxtb w1, w1 - b .L325 -.L347: + bcs .L356 + and w1, w3, 255 + mov w6, w3 + mov w10, 0 + b .L357 +.L355: + add w14, w13, w6 + strb w1, [x8, w6, uxtw] + add w15, w11, w1 + add w1, w12, w1 + add w10, w10, 1 + and w1, w1, 255 + add w6, w6, w0 + strb w15, [x8, x14] +.L357: + cmp w10, w2 + bcc .L355 add w3, w3, 1 - b .L322 -.L324: - add x1, x20, :lo12:.LANCHOR0 - lsl w2, w2, 1 + b .L354 +.L356: + add x1, x5, :lo12:.LANCHOR0 + ubfiz w2, w2, 1, 15 lsr w4, w4, 1 - strh w2, [x1,2494] - strh w4, [x1,2482] -.L321: - add x1, x20, :lo12:.LANCHOR0 + strh w2, [x1, 2494] + strh w4, [x1, 2482] +.L353: + add x1, x5, :lo12:.LANCHOR0 mov w2, 5 - cmp w6, 1 - strh w2, [x1,2536] - strh wzr, [x1,2538] - bne .L326 - strh w6, [x1,2536] -.L326: - add x1, x20, :lo12:.LANCHOR0 + cmp w9, 1 + strh w2, [x1, 2536] + strh wzr, [x1, 2538] + bne .L358 + strh w9, [x1, 2536] +.L358: + add x1, x5, :lo12:.LANCHOR0 mov w2, 4352 - ldrb w26, [x1,72] - strh w2, [x1,2540] - cbz w26, .L327 + ldrb w11, [x1, 72] + strh w2, [x1, 2540] + cbz w11, .L359 mov w2, 384 - strh w2, [x1,2540] -.L327: - add x21, x20, :lo12:.LANCHOR0 - ldrh w25, [x23,16] - ldrh w24, [x23,20] - ldrh w27, [x23,18] - ldrh w22, [x21,2494] - ldrh w19, [x21,2482] - strh w25, [x21,2544] - mul w22, w0, w22 - mul w0, w19, w0 - strh w0, [x21,2542] - uxth w22, w22 - strh w27, [x21,2546] - strh w22, [x21,2472] - mul w0, w22, w25 - strh w0, [x21,2548] - mov w0, w24 - strh w24, [x21,2550] + strh w2, [x1, 2540] +.L359: + add x4, x5, :lo12:.LANCHOR0 + ldrh w10, [x7, 16] + ldrh w8, [x7, 20] + ldrh w9, [x7, 18] + ldrh w6, [x4, 2494] + ldrh w3, [x4, 2482] + strh w10, [x4, 2544] + strh w9, [x4, 2546] + mul w6, w0, w6 + strh w8, [x4, 2550] + mul w0, w0, w3 + and w6, w6, 65535 + strh w0, [x4, 2542] + strh w6, [x4, 2472] + mul w0, w6, w10 + strh w0, [x4, 2548] + mov w0, w8 bl Ftl_log2 - uxth w3, w0 - lsl w2, w24, 9 - strh w0, [x21,2552] - ldrh w0, [x23,26] - cmp w19, 1024 - strh w2, [x21,2554] - ubfx x2, x2, 9, 7 - strh w0, [x21,2558] - lsl w2, w2, 1 - mul w0, w22, w19 - strh w2, [x21,2556] - str w0, [x21,2488] - bls .L328 - and w0, w19, 255 - strh w0, [x21,2538] -.L328: - add x2, x20, :lo12:.LANCHOR0 - mul w0, w24, w27 - ldrh w1, [x2,2538] - sub w1, w19, w1 - mul w1, w22, w1 - mul w1, w1, w24 - mul w1, w1, w25 - asr w1, w1, 11 - str w1, [x2,2560] - ldrh w1, [x2,2540] - lsl w1, w1, 3 - sdiv w0, w1, w0 - uxth w0, w0 + and w2, w0, 65535 + strh w0, [x4, 2552] + ubfiz w0, w8, 9, 7 + strh w0, [x4, 2554] + ubfx w0, w0, 8, 8 + strh w0, [x4, 2556] + cmp w3, 1024 + ldrh w0, [x7, 26] + strh w0, [x4, 2558] + mul w0, w6, w3 + str w0, [x4, 2488] + bls .L360 + and w0, w3, 255 + strh w0, [x4, 2538] +.L360: + add x1, x5, :lo12:.LANCHOR0 + ldrh w0, [x1, 2538] + sub w0, w3, w0 + mul w0, w0, w6 + mul w0, w0, w8 + mul w8, w9, w8 + mul w0, w0, w10 + asr w0, w0, 11 + str w0, [x1, 2560] + ldrh w0, [x1, 2540] + lsl w0, w0, 3 + sdiv w0, w0, w8 + and w0, w0, 65535 cmp w0, 4 - bhi .L344 - mov w0, 4 -.L344: - strh w0, [x2,2564] - cbz w26, .L331 - add x0, x20, :lo12:.LANCHOR0 + bls .L361 +.L377: + strh w0, [x1, 2564] + cbz w11, .L363 + add x0, x5, :lo12:.LANCHOR0 mov w1, 640 - strh w1, [x0,2540] -.L331: - add x1, x20, :lo12:.LANCHOR0 - lsl w19, w19, 6 - cmp w22, 1 - ldrh w0, [x1,2540] - asr w0, w0, w3 - add w3, w3, 9 - asr w19, w19, w3 - strh w19, [x1,2568] - and w19, w19, 65535 + strh w1, [x0, 2540] +.L363: + add x1, x5, :lo12:.LANCHOR0 + lsl w3, w3, 6 + cmp w6, 1 + ldrh w0, [x1, 2540] + asr w0, w0, w2 + add w2, w2, 9 add w0, w0, 2 - strh w0, [x1,2566] - mul w0, w19, w22 - str w0, [x1,2572] - add w19, w19, 8 - ldrh w0, [x1,2564] - udiv w0, w0, w22 - add w19, w19, w0 - bne .L345 - add w19, w19, 4 -.L345: - str w19, [x1,2468] - add x19, x20, :lo12:.LANCHOR0 - ldrh w0, [x19,2468] + strh w0, [x1, 2566] + asr w3, w3, w2 + strh w3, [x1, 2568] + and w3, w3, 65535 + mul w0, w6, w3 + add w3, w3, 8 + str w0, [x1, 2572] + ldrh w0, [x1, 2564] + udiv w0, w0, w6 + add w3, w0, w3 + beq .L364 +.L378: + add x4, x5, :lo12:.LANCHOR0 + str w3, [x1, 2468] + ldrh w0, [x4, 2468] bl FtlSysBlkNumInit - str wzr, [x19,2584] - ldr w0, [x19,2468] - str w0, [x19,2576] - ldr w0, [x19,2484] - ldrh w1, [x19,2544] + ldr w0, [x4, 2468] + str w0, [x4, 2576] + ldr w0, [x4, 2484] + ldrh w1, [x4, 2544] + ldrh w3, [x4, 2550] lsl w0, w0, 2 - ldrh w3, [x19,2550] - ldrh w2, [x19,2564] - mul w1, w0, w1 - ldrh w0, [x19,2552] - ldrb w5, [x19,204] - add w0, w0, 9 - lsr w0, w1, w0 + ldrh w2, [x4, 2564] + ldrb w7, [x4, 204] + str wzr, [x4, 2584] + mul w0, w0, w1 + ldrh w1, [x4, 2552] + add w1, w1, 9 + lsr w0, w0, w1 mov w1, 2048 add w0, w0, 2 sdiv w1, w1, w3 - strh w1, [x19,2582] - uxth w0, w0 - strh w0, [x19,2580] + and w0, w0, 65535 + strh w0, [x4, 2580] + strh w1, [x4, 2582] add w1, w2, 3 - strh w1, [x19,2564] - ldr w1, [x19,2572] - add w4, w1, 3 - str w4, [x19,2572] - cbz w5, .L334 - add w2, w2, 4 + strh w1, [x4, 2564] + ldr w1, [x4, 2572] + add w6, w1, 3 + str w6, [x4, 2572] + cbz w7, .L366 add w1, w1, 5 - strh w2, [x19,2564] - b .L346 -.L334: - cmp w4, 7 - bhi .L335 - mov w1, 8 -.L346: - str w1, [x19,2572] -.L335: - add x20, x20, :lo12:.LANCHOR0 - ldrh w1, [x20,2480] - strh wzr, [x20,2588] - lsr w2, w1, 3 - add w1, w2, w1, lsl 1 - add w1, w1, 52 - add w0, w1, w0, lsl 2 + add w2, w2, 4 + strh w2, [x4, 2564] +.L379: + str w1, [x4, 2572] +.L367: + add x5, x5, :lo12:.LANCHOR0 + ldrh w1, [x5, 2480] + strh wzr, [x5, 2588] + lsl w2, w1, 1 + lsr w1, w1, 3 + add w2, w2, 48 + add w1, w1, 4 + add w0, w2, w0, lsl 2 + add w0, w0, w1 cmp w0, w3, lsl 9 - bcs .L336 + bcs .L368 mov w0, 1 - strh w0, [x20,2588] -.L336: + strh w0, [x5, 2588] +.L368: mov w0, 0 - ldr x27, [sp,80] - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x29, x30, [sp], 96 + ldp x29, x30, [sp], 16 ret +.L361: + mov w0, 4 + b .L377 +.L364: + add w3, w3, 4 + b .L378 +.L366: + cmp w6, 7 + bhi .L367 + mov w1, 8 + b .L379 .size FtlConstantsInit, .-FtlConstantsInit .align 2 .global IsBlkInVendorPart .type IsBlkInVendorPart, %function IsBlkInVendorPart: adrp x1, .LANCHOR0 - uxth w4, w0 add x1, x1, :lo12:.LANCHOR0 - mov w0, 0 - ldrh w2, [x1,2590] - cbz w2, .L349 - ldrh w2, [x1,2564] - ldr x3, [x1,2592] + and w0, w0, 65535 + ldrh w2, [x1, 2590] + cbz w2, .L384 + ldrh w2, [x1, 2564] + ldr x3, [x1, 2592] mov x1, 0 -.L350: +.L382: cmp w2, w1, uxth - bls .L355 - add x1, x1, 1 - add x0, x3, x1, lsl 1 - ldrh w0, [x0,-2] - cmp w0, w4 - bne .L350 - mov w0, 1 - b .L349 -.L355: + bhi .L383 +.L384: mov w0, 0 -.L349: + ret +.L383: + add x1, x1, 1 + add x4, x3, x1, lsl 1 + ldrh w4, [x4, -2] + cmp w4, w0 + bne .L382 + mov w0, 1 ret .size IsBlkInVendorPart, .-IsBlkInVendorPart .align 2 @@ -2764,29 +2719,33 @@ IsBlkInVendorPart: .type FtlCacheMetchLpa, %function FtlCacheMetchLpa: adrp x2, .LANCHOR0 - mov w6, w0 add x2, x2, :lo12:.LANCHOR0 + ldr w4, [x2, 2600] + cbz w4, .L391 + mov x5, 24 + mov w6, 56 + ldr x2, [x2, 2608] + nop // between mem op and mult-accumulate + umaddl x4, w4, w6, x5 + add x3, x2, 24 + add x2, x2, x4 +.L388: + cmp x3, x2 + bne .L390 +.L391: mov w0, 0 - ldr w3, [x2,2600] - cbz w3, .L357 - ldr x5, [x2,2608] - mov x0, 56 - mov x2, 0 -.L358: - cmp w3, w2 - bls .L367 - madd x4, x2, x0, x5 - add x2, x2, 1 - ldr w4, [x4,24] - cmp w4, w6 - bcc .L358 + ret +.L390: + ldr w4, [x3] + cmp w4, w0 + bcc .L389 cmp w4, w1 - bhi .L358 + bls .L392 +.L389: + add x3, x3, 56 + b .L388 +.L392: mov w0, 1 - b .L357 -.L367: - mov w0, 0 -.L357: ret .size FtlCacheMetchLpa, .-FtlCacheMetchLpa .align 2 @@ -2794,7 +2753,7 @@ FtlCacheMetchLpa: .type FtlGetCap, %function FtlGetCap: adrp x0, .LANCHOR0+2584 - ldr w0, [x0,#:lo12:.LANCHOR0+2584] + ldr w0, [x0, #:lo12:.LANCHOR0+2584] ret .size FtlGetCap, .-FtlGetCap .align 2 @@ -2802,7 +2761,7 @@ FtlGetCap: .type FtlGetCapacity, %function FtlGetCapacity: adrp x0, .LANCHOR0+2584 - ldr w0, [x0,#:lo12:.LANCHOR0+2584] + ldr w0, [x0, #:lo12:.LANCHOR0+2584] ret .size FtlGetCapacity, .-FtlGetCapacity .align 2 @@ -2810,7 +2769,7 @@ FtlGetCapacity: .type ftl_get_density, %function ftl_get_density: adrp x0, .LANCHOR0+2584 - ldr w0, [x0,#:lo12:.LANCHOR0+2584] + ldr w0, [x0, #:lo12:.LANCHOR0+2584] ret .size ftl_get_density, .-ftl_get_density .align 2 @@ -2818,7 +2777,7 @@ ftl_get_density: .type FtlGetLpn, %function FtlGetLpn: adrp x0, .LANCHOR0+2616 - ldr w0, [x0,#:lo12:.LANCHOR0+2616] + ldr w0, [x0, #:lo12:.LANCHOR0+2616] ret .size FtlGetLpn, .-FtlGetLpn .align 2 @@ -2826,33 +2785,34 @@ FtlGetLpn: .type FtlBbmMapBadBlock, %function FtlBbmMapBadBlock: stp x29, x30, [sp, -32]! - uxth w1, w0 + and w1, w0, 65535 mov w4, 1 add x29, sp, 0 - str x19, [sp,16] + str x19, [sp, 16] adrp x19, .LANCHOR0 add x19, x19, :lo12:.LANCHOR0 add x19, x19, 2624 - ldrh w3, [x19,-82] - udiv w2, w1, w3 + ldrh w0, [x19, -82] + udiv w3, w1, w0 + and w2, w3, 65535 + msub w3, w3, w0, w1 add x0, x19, w2, uxth 3 - ldr x0, [x0,32] - msub w3, w2, w3, w1 - uxth w3, w3 - ubfx x6, x3, 5, 11 + and w3, w3, 65535 + ldr x0, [x0, 32] + ubfx x5, x3, 5, 11 + lsl x5, x5, 2 lsl w4, w4, w3 - lsl x6, x6, 2 - ldr w5, [x0,x6] - orr w4, w4, w5 - str w4, [x0,x6] + ldr w6, [x0, x5] + orr w4, w4, w6 + str w4, [x0, x5] adrp x0, .LC1 add x0, x0, :lo12:.LC1 bl printk - ldrh w0, [x19,6] + ldrh w0, [x19, 6] add w0, w0, 1 - strh w0, [x19,6] + strh w0, [x19, 6] mov w0, 0 - ldr x19, [sp,16] + ldr x19, [sp, 16] ldp x29, x30, [sp], 32 ret .size FtlBbmMapBadBlock, .-FtlBbmMapBadBlock @@ -2861,16 +2821,16 @@ FtlBbmMapBadBlock: .type FtlBbmIsBadBlock, %function FtlBbmIsBadBlock: adrp x2, .LANCHOR0 - uxth w0, w0 add x3, x2, :lo12:.LANCHOR0 - ldrh w1, [x3,2542] + and w0, w0, 65535 + ldrh w1, [x3, 2542] udiv w2, w0, w1 msub w0, w2, w1, w0 add x2, x3, w2, uxth 3 - ldr x1, [x2,2656] - uxth w0, w0 + and w0, w0, 65535 + ldr x1, [x2, 2656] ubfx x3, x0, 5, 11 - ldr w1, [x1,x3,lsl 2] + ldr w1, [x1, x3, lsl 2] lsr w0, w1, w0 and w0, w0, 1 ret @@ -2885,50 +2845,49 @@ FtlBbtInfoPrint: .global FtlBbtCalcTotleCnt .type FtlBbtCalcTotleCnt, %function FtlBbtCalcTotleCnt: - stp x29, x30, [sp, -48]! adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 + mov w4, 0 + mov w5, 0 + ldrh w6, [x0, 2542] + ldrh w0, [x0, 2494] + mul w6, w6, w0 + cmp w4, w6 + blt .L411 + mov w0, w5 + ret +.L411: + stp x29, x30, [sp, -16]! add x29, sp, 0 - stp x19, x20, [sp,16] - str x21, [sp,32] - mov w19, 0 - mov w20, w19 - ldrh w1, [x0,2542] - ldrh w21, [x0,2494] - mul w21, w1, w21 -.L376: - cmp w20, w21 - bge .L382 - mov w0, w20 +.L404: + mov w0, w4 bl FtlBbmIsBadBlock - cbz w0, .L377 - add w19, w19, 1 - uxth w19, w19 -.L377: - add w20, w20, 1 - uxth w20, w20 - b .L376 -.L382: - mov w0, w19 - ldr x21, [sp,32] - ldp x19, x20, [sp,16] - ldp x29, x30, [sp], 48 + cbz w0, .L403 + add w5, w5, 1 + and w5, w5, 65535 +.L403: + add w4, w4, 1 + and w4, w4, 65535 + cmp w4, w6 + blt .L404 + mov w0, w5 + ldp x29, x30, [sp], 16 ret .size FtlBbtCalcTotleCnt, .-FtlBbtCalcTotleCnt .align 2 .global V2P_block .type V2P_block, %function V2P_block: - adrp x3, .LANCHOR0 - uxth w0, w0 - add x3, x3, :lo12:.LANCHOR0 - uxth w1, w1 - ldrh w4, [x3,2496] - udiv w2, w0, w4 - msub w0, w2, w4, w0 - madd w0, w1, w4, w0 - ldrh w1, [x3,2542] - madd w0, w2, w1, w0 + adrp x4, .LANCHOR0 + add x4, x4, :lo12:.LANCHOR0 + and w0, w0, 65535 + and w1, w1, 65535 + ldrh w2, [x4, 2496] + ldrh w4, [x4, 2542] + udiv w3, w0, w2 + msub w0, w3, w2, w0 + madd w2, w2, w1, w0 + madd w0, w3, w4, w2 ret .size V2P_block, .-V2P_block .align 2 @@ -2936,28 +2895,28 @@ V2P_block: .type P2V_plane, %function P2V_plane: adrp x2, .LANCHOR0 - uxth w0, w0 add x2, x2, :lo12:.LANCHOR0 - ldrh w1, [x2,2496] - ldrh w3, [x2,2542] - udiv w2, w0, w1 - udiv w3, w0, w3 - msub w0, w2, w1, w0 - madd w0, w1, w3, w0 + and w3, w0, 65535 + ldrh w1, [x2, 2496] + ldrh w2, [x2, 2542] + udiv w0, w3, w1 + udiv w2, w3, w2 + msub w0, w0, w1, w3 + madd w0, w1, w2, w0 ret .size P2V_plane, .-P2V_plane .align 2 .global P2V_block_in_plane .type P2V_block_in_plane, %function P2V_block_in_plane: - adrp x2, .LANCHOR0 - uxth w0, w0 - add x2, x2, :lo12:.LANCHOR0 - ldrh w3, [x2,2542] - udiv w1, w0, w3 - msub w0, w1, w3, w0 - ldrh w1, [x2,2496] - uxth w0, w0 + adrp x1, .LANCHOR0 + add x1, x1, :lo12:.LANCHOR0 + and w3, w0, 65535 + ldrh w2, [x1, 2542] + ldrh w1, [x1, 2496] + udiv w0, w3, w2 + msub w0, w0, w2, w3 + and w0, w0, 65535 udiv w0, w0, w1 ret .size P2V_block_in_plane, .-P2V_block_in_plane @@ -2967,16 +2926,15 @@ P2V_block_in_plane: ftl_cmp_data_ver: cmp w0, w1 mov w2, -2147483648 - bls .L387 + bls .L416 sub w1, w0, w1 cmp w1, w2 cset w0, ls - b .L388 -.L387: + ret +.L416: sub w1, w1, w0 cmp w1, w2 cset w0, hi -.L388: ret .size ftl_cmp_data_ver, .-ftl_cmp_data_ver .align 2 @@ -2984,8 +2942,8 @@ ftl_cmp_data_ver: .type FtlFreeSysBlkQueueEmpty, %function FtlFreeSysBlkQueueEmpty: adrp x0, .LANCHOR0+2726 - ldrh w0, [x0,#:lo12:.LANCHOR0+2726] - cmp w0, wzr + ldrh w0, [x0, #:lo12:.LANCHOR0+2726] + cmp w0, 0 cset w0, eq ret .size FtlFreeSysBlkQueueEmpty, .-FtlFreeSysBlkQueueEmpty @@ -2994,7 +2952,7 @@ FtlFreeSysBlkQueueEmpty: .type FtlFreeSysBlkQueueFull, %function FtlFreeSysBlkQueueFull: adrp x0, .LANCHOR0+2726 - ldrh w0, [x0,#:lo12:.LANCHOR0+2726] + ldrh w0, [x0, #:lo12:.LANCHOR0+2726] cmp w0, 1024 cset w0, eq ret @@ -3004,59 +2962,59 @@ FtlFreeSysBlkQueueFull: .type FtlFreeSysBlkQueueIn, %function FtlFreeSysBlkQueueIn: stp x29, x30, [sp, -48]! - uxth w1, w1 add x29, sp, 0 - stp x21, x22, [sp,32] - stp x19, x20, [sp,16] - uxth w21, w0 - mov w0, 65533 + stp x21, x22, [sp, 32] + and w21, w0, 65535 + stp x19, x20, [sp, 16] sub w2, w21, #1 + mov w0, 65533 cmp w0, w2, uxth - bcc .L391 - adrp x2, .LANCHOR0 - add x0, x2, :lo12:.LANCHOR0 - mov x19, x2 - ldrh w0, [x0,2726] - cmp w0, 1024 - beq .L391 - cbz w1, .L393 + bcc .L420 + adrp x0, .LANCHOR0 + add x2, x0, :lo12:.LANCHOR0 + mov x19, x0 + ldrh w2, [x2, 2726] + cmp w2, 1024 + beq .L420 + and w1, w1, 65535 + cbz w1, .L422 adrp x20, .LANCHOR2 add x20, x20, :lo12:.LANCHOR2 - ldr w0, [x20,424] - cbnz w0, .L393 + ldr w0, [x20, 424] + cbnz w0, .L422 mov w0, w21 bl P2V_block_in_plane - uxth w22, w0 - ldr x0, [x20,432] + and w22, w0, 65535 + ldr x0, [x20, 432] lsl w1, w21, 10 - str w1, [x0,4] - mov w1, 1 - mov w2, w1 - ldr x0, [x20,432] + mov w2, 1 + str w1, [x0, 4] + mov w1, w2 + ldr x0, [x20, 432] bl FlashEraseBlocks + ldr x2, [x20, 440] ubfiz x0, x22, 1, 16 - ldr x2, [x20,440] - ldrh w1, [x2,x0] + ldrh w1, [x2, x0] add w1, w1, 1 - strh w1, [x2,x0] - ldr w0, [x20,448] + strh w1, [x2, x0] + ldr w0, [x20, 448] add w0, w0, 1 - str w0, [x20,448] -.L393: - add x1, x19, :lo12:.LANCHOR0 - add x1, x1, 2720 - ldrh w0, [x1,6] - ldrh w2, [x1,4] - add w0, w0, 1 - strh w0, [x1,6] - add x0, x1, w2, sxtw 1 - add w2, w2, 1 - and w2, w2, 1023 - strh w21, [x0,8] - strh w2, [x1,4] -.L391: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] + str w0, [x20, 448] +.L422: + add x0, x19, :lo12:.LANCHOR0 + add x0, x0, 2720 + ldrh w1, [x0, 6] + add w1, w1, 1 + strh w1, [x0, 6] + ldrh w1, [x0, 4] + add x2, x0, w1, sxtw 1 + add w1, w1, 1 + and w1, w1, 1023 + strh w1, [x0, 4] + strh w21, [x2, 8] +.L420: + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] ldp x29, x30, [sp], 48 ret .size FtlFreeSysBlkQueueIn, .-FtlFreeSysBlkQueueIn @@ -3064,123 +3022,119 @@ FtlFreeSysBlkQueueIn: .global FtlFreeSysBLkSort .type FtlFreeSysBLkSort, %function FtlFreeSysBLkSort: - adrp x0, .LANCHOR2+484 - ldrh w6, [x0,#:lo12:.LANCHOR2+484] adrp x0, .LANCHOR0 add x1, x0, :lo12:.LANCHOR0 add x1, x1, 2720 - ldrh w2, [x1,6] - cbz w2, .L400 - mov w5, 0 - ldrh w3, [x1,2] - ldrh w2, [x1,4] - mov w4, w5 - and w6, w6, 31 -.L402: - cmp w4, w6 - bge .L410 - add x5, x1, w3, sxtw 1 - ldrh w7, [x5,8] - add x5, x1, w2, sxtw 1 - add w4, w4, 1 - strh w7, [x5,8] - mov w5, 1 - add w3, w3, 1 - add w2, w2, w5 - uxth w4, w4 - and w3, w3, 1023 - and w2, w2, 1023 - b .L402 -.L410: - cbz w5, .L400 + ldrh w2, [x1, 6] + cbz w2, .L430 + adrp x2, .LANCHOR2+484 + ldrh w3, [x1, 2] + mov w6, 0 + mov w4, 0 + ldrh w5, [x2, #:lo12:.LANCHOR2+484] + ldrh w2, [x1, 4] + and w5, w5, 31 +.L432: + cmp w5, w4 + bgt .L433 + cbz w6, .L430 add x0, x0, :lo12:.LANCHOR0 - strh w3, [x0,2722] - strh w2, [x0,2724] -.L400: + strh w3, [x0, 2722] + strh w2, [x0, 2724] +.L430: ret +.L433: + add x6, x1, w3, sxtw 1 + add w4, w4, 1 + add w3, w3, 1 + and w4, w4, 65535 + and w3, w3, 1023 + ldrh w7, [x6, 8] + add x6, x1, w2, sxtw 1 + strh w7, [x6, 8] + mov w6, 1 + add w2, w2, w6 + and w2, w2, 1023 + b .L432 .size FtlFreeSysBLkSort, .-FtlFreeSysBLkSort .align 2 .global FtlFreeSysBlkQueueOut .type FtlFreeSysBlkQueueOut, %function FtlFreeSysBlkQueueOut: - stp x29, x30, [sp, -96]! + stp x29, x30, [sp, -64]! add x29, sp, 0 - stp x21, x22, [sp,32] + stp x21, x22, [sp, 32] adrp x21, .LANCHOR0 - stp x23, x24, [sp,48] add x21, x21, :lo12:.LANCHOR0 - adrp x23, .LC3 - stp x19, x20, [sp,16] - stp x25, x26, [sp,64] - add x22, x21, 2720 - add x23, x23, :lo12:.LC3 - mov x24, x21 -.L412: - ldrh w1, [x22,6] - cbz w1, .L413 + stp x19, x20, [sp, 16] + add x20, x21, 2720 + stp x23, x24, [sp, 48] + mov x22, x20 +.L440: + ldrh w1, [x20, 6] + cbz w1, .L441 + ldrh w0, [x20, 2] adrp x19, .LANCHOR2 - ldrh w2, [x22,2] - add x25, x19, :lo12:.LANCHOR2 + add x4, x19, :lo12:.LANCHOR2 sub w1, w1, #1 - add x0, x22, w2, sxtw 1 - strh w1, [x22,6] - add w2, w2, 1 - ldrh w20, [x0,8] - ldr w1, [x25,424] - and w2, w2, 1023 - strh w2, [x22,2] - cbnz w1, .L414 - mov w0, w20 - str x1, [x29,88] - bl P2V_block_in_plane - uxth w26, w0 - ldr x0, [x25,432] - lsl w2, w20, 10 - ldr x1, [x29,88] - str w2, [x0,4] - ldrb w0, [x21,204] - cbz w0, .L415 - ldr x0, [x25,432] - mov w2, 1 - bl FlashEraseBlocks -.L415: - add x19, x19, :lo12:.LANCHOR2 - mov w1, 1 - mov w2, w1 - ldr x0, [x19,432] - bl FlashEraseBlocks - ubfiz x0, x26, 1, 16 - ldr x2, [x19,440] - ldrh w1, [x2,x0] - add w1, w1, 1 - strh w1, [x2,x0] - ldr w0, [x19,448] + strh w1, [x20, 6] + add x2, x20, w0, sxtw 1 add w0, w0, 1 - str w0, [x19,448] - b .L414 -.L413: - adrp x0, .LC2 - add x0, x0, :lo12:.LC2 - bl printk -.L416: - b .L416 -.L414: - sub w0, w20, #1 + and w0, w0, 1023 + strh w0, [x20, 2] + ldr w0, [x4, 424] + ldrh w23, [x2, 8] + cbnz w0, .L442 + mov w0, w23 + bl P2V_block_in_plane + and w24, w0, 65535 + ldr x0, [x4, 432] + lsl w1, w23, 10 + str w1, [x0, 4] + ldrb w0, [x21, 204] + cbz w0, .L443 + ldr x0, [x4, 432] + mov w2, 1 + mov w1, 0 + bl FlashEraseBlocks +.L443: + add x19, x19, :lo12:.LANCHOR2 + mov w2, 1 + mov w1, w2 + ldr x0, [x19, 432] + bl FlashEraseBlocks + ldr x2, [x19, 440] + ubfiz x0, x24, 1, 16 + ldrh w1, [x2, x0] + add w1, w1, 1 + strh w1, [x2, x0] + ldr w0, [x19, 448] + add w0, w0, 1 + str w0, [x19, 448] +.L442: + sub w0, w23, #1 mov w1, 65533 cmp w1, w0, uxth - bcs .L417 - ldrh w2, [x24,2726] - mov x0, x23 - mov w1, w20 + bcs .L445 + ldrh w2, [x22, 6] + mov w1, w23 + adrp x0, .LC3 + add x0, x0, :lo12:.LC3 bl printk - b .L412 -.L417: - mov w0, w20 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x29, x30, [sp], 96 + b .L440 +.L441: + adrp x0, .LC2 + mov w1, 0 + add x0, x0, :lo12:.LC2 + bl printk +.L444: + b .L444 +.L445: + mov w0, w23 + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x29, x30, [sp], 64 ret .size FtlFreeSysBlkQueueOut, .-FtlFreeSysBlkQueueOut .align 2 @@ -3190,29 +3144,28 @@ test_node_in_list: ldr x2, [x0] adrp x0, .LANCHOR2+504 mov x4, -6148914691236517206 - uxth w1, w1 + and w1, w1, 65535 + ldr x3, [x0, #:lo12:.LANCHOR2+504] + movk x4, 0xaaab, lsl 0 mov w5, 65535 - ldr x3, [x0,#:lo12:.LANCHOR2+504] sub x0, x2, x3 asr x0, x0, 1 - madd x0, x4, x0, x0 + mul x0, x0, x4 mov w4, 6 - uxth w0, w0 -.L423: - cmp w1, w0 - beq .L424 + and w0, w0, 65535 +.L452: + cmp w0, w1 + beq .L453 ldrh w0, [x2] cmp w0, w5 - beq .L425 - umull x2, w0, w4 - add x2, x3, x2 - b .L423 -.L424: + beq .L454 + umaddl x2, w0, w4, x3 + b .L452 +.L453: mov w0, 1 - b .L422 -.L425: + ret +.L454: mov w0, 0 -.L422: ret .size test_node_in_list, .-test_node_in_list .align 2 @@ -3220,102 +3173,107 @@ test_node_in_list: .type insert_data_list, %function insert_data_list: adrp x9, .LANCHOR0 - uxth w0, w0 add x9, x9, :lo12:.LANCHOR0 - ldrh w1, [x9,2480] + and w0, w0, 65535 + ldrh w1, [x9, 2480] cmp w1, w0 - bls .L428 + bls .L471 adrp x2, .LANCHOR2 - mov w7, 6 - add x5, x2, :lo12:.LANCHOR2 + add x4, x2, :lo12:.LANCHOR2 + mov w5, 6 mov w1, -1 - umull x10, w0, w7 mov x3, x2 - ldr x11, [x5,504] - add x4, x11, x10 - strh w1, [x4,2] - strh w1, [x11,x10] - ldr x1, [x5,512] - cbnz x1, .L429 - str x4, [x5,512] - b .L428 -.L429: - ubfiz x8, x0, 1, 16 - ldr x13, [x5,520] - ldrh w2, [x4,4] - mov x14, -6148914691236517206 - ldr x12, [x5,504] - mov w18, 65535 - ldrh w6, [x13,x8] - cmp w2, wzr - ldrh w17, [x9,2480] - mul w6, w6, w2 - sub x2, x1, x12 - asr x2, x2, 1 - csinv w6, w6, wzr, ne - madd x2, x14, x2, x2 - ldr x14, [x5,440] - mov w5, 0 - add x9, x14, x8 - uxth w2, w2 - mov w8, w7 -.L437: - add w5, w5, 1 - cmp w0, w2 - uxth w5, w5 - beq .L428 - cmp w5, w17 - bhi .L428 - ubfiz x15, x2, 1, 16 - ldrh w16, [x1,4] - cmp w16, wzr - ldrh w7, [x13,x15] - mul w7, w7, w16 - csinv w7, w7, wzr, ne - cmp w7, w6 - bne .L433 - ldrh w15, [x14,x15] - ldrh w7, [x9] - cmp w15, w7 - bcc .L435 - b .L434 -.L433: - bhi .L434 -.L435: - ldrh w7, [x1] - cmp w7, w18 - bne .L436 - strh w2, [x4,2] - add x2, x3, :lo12:.LANCHOR2 - strh w0, [x1] - str x4, [x2,528] - b .L428 -.L436: - umull x1, w7, w8 - mov w2, w7 - add x1, x12, x1 - b .L437 -.L434: - strh w2, [x11,x10] - ldrh w2, [x1,2] - strh w2, [x4,2] - add x2, x3, :lo12:.LANCHOR2 - ldr x3, [x2,512] - cmp x1, x3 - bne .L438 - strh w0, [x1,2] - str x4, [x2,512] - b .L428 -.L438: - ldrh w3, [x1,2] - mov w4, 6 - ldr x2, [x2,504] - umull x3, w3, w4 - strh w0, [x2,x3] - strh w0, [x1,2] -.L428: + ldr x12, [x4, 504] + umull x11, w0, w5 + add x6, x12, x11 + strh w1, [x6, 2] + strh w1, [x12, x11] + ldr x1, [x4, 512] + cbnz x1, .L458 + str x6, [x4, 512] +.L471: mov w0, 0 ret +.L458: + stp x29, x30, [sp, -16]! + ubfiz x8, x0, 1, 16 + mov x15, -6148914691236517206 + mov w10, -1 + add x29, sp, 0 + ldr x14, [x4, 520] + movk x15, 0xaaab, lsl 0 + ldrh w2, [x6, 4] + mov w30, 65535 + ldr x13, [x4, 504] + cmp w2, 0 + ldrh w18, [x9, 2480] + ldrh w7, [x14, x8] + mul w7, w7, w2 + sub x2, x1, x13 + asr x2, x2, 1 + csel w7, w7, w10, ne + mul x2, x2, x15 + ldr x15, [x4, 440] + mov w4, 0 + add x9, x15, x8 + and w2, w2, 65535 + mov w8, w5 +.L466: + add w4, w4, 1 + and w4, w4, 65535 + cmp w4, w18 + bhi .L457 + cmp w0, w2 + beq .L457 + ubfiz x16, x2, 1, 16 + ldrh w17, [x1, 4] + cmp w17, 0 + ldrh w5, [x14, x16] + mul w5, w5, w17 + csel w5, w5, w10, ne + cmp w7, w5 + bne .L462 + ldrh w16, [x15, x16] + ldrh w5, [x9] + cmp w16, w5 + bcc .L464 +.L463: + strh w2, [x12, x11] + ldrh w2, [x1, 2] + strh w2, [x6, 2] + add x2, x3, :lo12:.LANCHOR2 + ldr x3, [x2, 512] + cmp x1, x3 + bne .L467 + strh w0, [x1, 2] + str x6, [x2, 512] + b .L457 +.L462: + bcc .L463 +.L464: + ldrh w5, [x1] + cmp w5, w30 + bne .L465 + strh w2, [x6, 2] + add x2, x3, :lo12:.LANCHOR2 + strh w0, [x1] + str x6, [x2, 528] +.L457: + mov w0, 0 + ldp x29, x30, [sp], 16 + ret +.L465: + umaddl x1, w5, w8, x13 + mov w2, w5 + b .L466 +.L467: + ldrh w3, [x1, 2] + mov w4, 6 + ldr x2, [x2, 504] + umull x3, w3, w4 + strh w0, [x2, x3] + strh w0, [x1, 2] + b .L457 .size insert_data_list, .-insert_data_list .align 2 .global INSERT_DATA_LIST @@ -3326,9 +3284,9 @@ INSERT_DATA_LIST: bl insert_data_list adrp x0, .LANCHOR2 add x0, x0, :lo12:.LANCHOR2 - ldrh w1, [x0,536] + ldrh w1, [x0, 536] add w1, w1, 1 - strh w1, [x0,536] + strh w1, [x0, 536] ldp x29, x30, [sp], 16 ret .size INSERT_DATA_LIST, .-INSERT_DATA_LIST @@ -3336,71 +3294,71 @@ INSERT_DATA_LIST: .global insert_free_list .type insert_free_list, %function insert_free_list: - uxth w0, w0 + and w0, w0, 65535 mov w7, 65535 cmp w0, w7 - beq .L443 + beq .L476 adrp x2, .LANCHOR2 - mov w6, 6 add x5, x2, :lo12:.LANCHOR2 + mov w6, 6 mov w1, -1 - umull x8, w0, w6 mov x3, x2 - ldr x9, [x5,504] + ldr x9, [x5, 504] + umull x8, w0, w6 add x4, x9, x8 - strh w1, [x4,2] - strh w1, [x9,x8] - ldr x1, [x5,544] - cbnz x1, .L444 - str x4, [x5,544] - b .L443 -.L444: - ldr x11, [x5,440] - ubfiz x2, x0, 1, 16 - ldr x10, [x5,504] - mov x5, -6148914691236517206 - ldrh w12, [x11,x2] - sub x2, x1, x10 - asr x2, x2, 1 - madd x2, x5, x2, x2 - uxth w2, w2 -.L447: - ubfiz x5, x2, 1, 16 - ldrh w5, [x11,x5] - cmp w5, w12 - bcs .L445 - ldrh w5, [x1] - cmp w5, w7 - bne .L446 - strh w2, [x4,2] - strh w0, [x1] - b .L443 -.L446: - umull x1, w5, w6 - mov w2, w5 - add x1, x10, x1 - b .L447 -.L445: - ldrh w5, [x1,2] - strh w5, [x4,2] - strh w2, [x9,x8] - add x2, x3, :lo12:.LANCHOR2 - ldr x3, [x2,544] - cmp x1, x3 - bne .L448 - strh w0, [x1,2] - str x4, [x2,544] - b .L443 -.L448: - ldrh w3, [x1,2] - mov w4, 6 - ldr x2, [x2,504] - umull x3, w3, w4 - strh w0, [x2,x3] - strh w0, [x1,2] -.L443: + strh w1, [x4, 2] + strh w1, [x9, x8] + ldr x1, [x5, 544] + cbnz x1, .L477 + str x4, [x5, 544] +.L476: mov w0, 0 ret +.L477: + ldr x11, [x5, 440] + ubfiz x2, x0, 1, 16 + ldr x10, [x5, 504] + mov x5, -6148914691236517206 + movk x5, 0xaaab, lsl 0 + ldrh w12, [x11, x2] + sub x2, x1, x10 + asr x2, x2, 1 + mul x2, x2, x5 + and w2, w2, 65535 +.L480: + ubfiz x5, x2, 1, 16 + ldrh w5, [x11, x5] + cmp w5, w12 + bcs .L478 + ldrh w5, [x1] + cmp w5, w7 + bne .L479 + strh w2, [x4, 2] + strh w0, [x1] + b .L476 +.L479: + umaddl x1, w5, w6, x10 + mov w2, w5 + b .L480 +.L478: + ldrh w5, [x1, 2] + strh w5, [x4, 2] + strh w2, [x9, x8] + add x2, x3, :lo12:.LANCHOR2 + ldr x3, [x2, 544] + cmp x1, x3 + bne .L481 + strh w0, [x1, 2] + str x4, [x2, 544] + b .L476 +.L481: + ldrh w3, [x1, 2] + mov w4, 6 + ldr x2, [x2, 504] + umull x3, w3, w4 + strh w0, [x2, x3] + strh w0, [x1, 2] + b .L476 .size insert_free_list, .-insert_free_list .align 2 .global INSERT_FREE_LIST @@ -3411,9 +3369,9 @@ INSERT_FREE_LIST: bl insert_free_list adrp x0, .LANCHOR2 add x0, x0, :lo12:.LANCHOR2 - ldrh w1, [x0,552] + ldrh w1, [x0, 552] add w1, w1, 1 - strh w1, [x0,552] + strh w1, [x0, 552] ldp x29, x30, [sp], 16 ret .size INSERT_FREE_LIST, .-INSERT_FREE_LIST @@ -3421,195 +3379,194 @@ INSERT_FREE_LIST: .global List_remove_node .type List_remove_node, %function List_remove_node: + and w1, w1, 65535 adrp x6, .LANCHOR2 - uxth w1, w1 add x6, x6, :lo12:.LANCHOR2 - mov w5, 6 - ldr x3, [x0] + mov w4, 6 + ldr x2, [x0] mov w7, 65535 - umull x1, w1, w5 - ldr x2, [x6,504] - add x4, x2, x1 - cmp x4, x3 - bne .L451 - ldrh w3, [x2,x1] - cmp w3, w7 - bne .L452 + umull x1, w1, w4 + ldr x3, [x6, 504] + add x5, x3, x1 + cmp x5, x2 + ldrh w2, [x3, x1] + bne .L485 + cmp w2, w7 + bne .L486 str xzr, [x0] - b .L453 -.L452: - umull x3, w3, w5 - add x3, x2, x3 - str x3, [x0] +.L487: mov w0, -1 - strh w0, [x3,2] - b .L453 -.L451: - ldrh w0, [x2,x1] - ldrh w3, [x4,2] - cmp w0, w7 - bne .L454 - cmp w3, w0 - beq .L453 - umull x3, w3, w5 - mov w0, -1 - strh w0, [x2,x3] - b .L453 -.L454: - umull x0, w0, w5 - add x0, x2, x0 - strh w3, [x0,2] - ldrh w3, [x4,2] - ldr x0, [x6,504] - ldrh w7, [x2,x1] - umull x3, w3, w5 - strh w7, [x0,x3] -.L453: - mov w0, -1 - strh w0, [x2,x1] - strh w0, [x4,2] + strh w0, [x3, x1] + strh w0, [x5, 2] mov w0, 0 ret +.L486: + umaddl x2, w2, w4, x3 + str x2, [x0] + mov w0, -1 + strh w0, [x2, 2] + b .L487 +.L485: + cmp w2, w7 + ldrh w0, [x5, 2] + bne .L488 + cmp w0, w2 + beq .L487 + umull x2, w0, w4 + mov w0, -1 + strh w0, [x3, x2] + b .L487 +.L488: + umaddl x2, w2, w4, x3 + strh w0, [x2, 2] + ldrh w2, [x5, 2] + ldr x0, [x6, 504] + ldrh w7, [x3, x1] + umull x2, w2, w4 + strh w7, [x0, x2] + b .L487 .size List_remove_node, .-List_remove_node .align 2 .global List_pop_index_node .type List_pop_index_node, %function List_pop_index_node: - stp x29, x30, [sp, -32]! - uxth w1, w1 - add x29, sp, 0 - str x19, [sp,16] - mov w19, 65535 ldr x2, [x0] - cbz x2, .L456 + cbz x2, .L495 + stp x29, x30, [sp, -16]! adrp x3, .LANCHOR2+504 - mov w5, w19 - mov w6, 6 - ldr x4, [x3,#:lo12:.LANCHOR2+504] -.L457: - cbnz w1, .L458 -.L460: - sub x2, x2, x4 - mov x1, -6148914691236517206 - asr x2, x2, 1 - madd x2, x1, x2, x2 - uxth w19, w2 - mov w1, w19 + and w1, w1, 65535 + mov w4, 65535 + add x29, sp, 0 + ldr x8, [x3, #:lo12:.LANCHOR2+504] + mov w5, 6 +.L491: + cbnz w1, .L492 +.L494: + sub x8, x2, x8 + mov x2, -6148914691236517206 + asr x8, x8, 1 + movk x2, 0xaaab, lsl 0 + mul x8, x8, x2 + and w8, w8, 65535 + mov w1, w8 bl List_remove_node - b .L456 -.L458: + mov w0, w8 + ldp x29, x30, [sp], 16 + ret +.L492: ldrh w3, [x2] - cmp w3, w5 - beq .L460 - umull x3, w3, w6 + cmp w3, w4 + beq .L494 sub w1, w1, #1 - add x2, x4, x3 - uxth w1, w1 - b .L457 -.L456: - mov w0, w19 - ldr x19, [sp,16] - ldp x29, x30, [sp], 32 + umaddl x2, w3, w5, x8 + and w1, w1, 65535 + b .L491 +.L495: + mov w0, 65535 ret .size List_pop_index_node, .-List_pop_index_node .align 2 .global List_get_gc_head_node .type List_get_gc_head_node, %function List_get_gc_head_node: - adrp x2, .LANCHOR2 - uxth w3, w0 - add x2, x2, :lo12:.LANCHOR2 + and w2, w0, 65535 + adrp x0, .LANCHOR2 + add x0, x0, :lo12:.LANCHOR2 + ldr x1, [x0, 512] + cbz x1, .L505 + ldr x3, [x0, 504] + mov w4, 6 mov w0, 65535 - ldr x1, [x2,512] - cbz x1, .L468 - ldr x4, [x2,504] - mov w5, 6 -.L464: - cbz w3, .L465 - ldrh w2, [x1] - cmp w2, w0 - beq .L468 - umull x2, w2, w5 - sub w3, w3, #1 - add x1, x4, x2 - uxth w3, w3 - b .L464 -.L465: - sub x1, x1, x4 - mov x0, -6148914691236517206 - asr x1, x1, 1 - madd x1, x0, x1, x1 - uxth w0, w1 -.L468: +.L502: + cbz w2, .L503 + ldrh w1, [x1] + cmp w1, w0 + bne .L504 + ret +.L504: + sub w2, w2, #1 + umaddl x1, w1, w4, x3 + and w2, w2, 65535 + b .L502 +.L505: + mov w0, 65535 + ret +.L503: + sub x0, x1, x3 + mov x1, -6148914691236517206 + asr x0, x0, 1 + movk x1, 0xaaab, lsl 0 + mul x0, x0, x1 + and w0, w0, 65535 ret .size List_get_gc_head_node, .-List_get_gc_head_node .align 2 .global List_update_data_list .type List_update_data_list, %function List_update_data_list: - stp x29, x30, [sp, -32]! - add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x19, .LANCHOR2 - uxth w20, w0 - add x0, x19, :lo12:.LANCHOR2 - ldrh w1, [x0,560] - cmp w1, w20 - beq .L470 - ldrh w1, [x0,608] - cmp w1, w20 - beq .L470 - ldrh w1, [x0,656] - cmp w1, w20 - beq .L470 - mov w3, 6 - ldr x4, [x0,504] - ldr x2, [x0,512] - umull x3, w20, w3 - add x1, x4, x3 - cmp x1, x2 - beq .L470 - ldr x5, [x0,520] - ubfiz x0, x20, 1, 16 - ldrh w2, [x5,x0] - ldrh w0, [x1,4] - ldrh w1, [x1,2] - cmp w0, wzr - mul w2, w2, w0 - mov w0, 65535 + adrp x8, .LANCHOR2 + add x1, x8, :lo12:.LANCHOR2 + and w9, w0, 65535 + ldrh w0, [x1, 560] + cmp w0, w9 + beq .L514 + ldrh w0, [x1, 608] + cmp w0, w9 + beq .L514 + ldrh w0, [x1, 656] + cmp w0, w9 + beq .L514 + mov w4, 6 + ldp x3, x2, [x1, 504] + umull x4, w9, w4 + add x0, x3, x4 + cmp x0, x2 + beq .L514 + ldr x5, [x1, 520] + ubfiz x1, x9, 1, 16 + ldrh w2, [x5, x1] + ldrh w1, [x0, 4] + ldrh w0, [x0, 2] + cmp w1, 0 + mul w2, w2, w1 + mov w1, 65535 csinv w2, w2, wzr, ne - cmp w1, w0 - bne .L472 - ldrh w0, [x4,x3] cmp w0, w1 - beq .L470 -.L472: - mov w0, 6 - mov x3, -6148914691236517206 - umull x1, w1, w0 - asr x0, x1, 1 - add x1, x4, x1 - madd x0, x3, x0, x0 - ldrh w1, [x1,4] - ldrh w0, [x5,x0,lsl 1] - cmp w1, wzr - mul w0, w0, w1 + bne .L509 + ldrh w1, [x3, x4] + cmp w1, w0 + beq .L514 +.L509: + mov w1, 6 + mov x4, -6148914691236517206 + movk x4, 0xaaab, lsl 0 + umull x0, w0, w1 + asr x1, x0, 1 + add x0, x3, x0 + mul x1, x1, x4 + ldrh w3, [x0, 4] + cmp w3, 0 + ldrh w1, [x5, x1, lsl 1] + mul w0, w1, w3 csinv w0, w0, wzr, ne cmp w2, w0 - bcs .L470 - add x19, x19, :lo12:.LANCHOR2 - mov w1, w20 - add x0, x19, 512 + bcs .L514 + add x8, x8, :lo12:.LANCHOR2 + stp x29, x30, [sp, -16]! + mov w1, w9 + add x0, x8, 512 + add x29, sp, 0 bl List_remove_node - ldrh w0, [x19,536] + ldrh w0, [x8, 536] sub w0, w0, #1 - strh w0, [x19,536] - mov w0, w20 + strh w0, [x8, 536] + mov w0, w9 bl INSERT_DATA_LIST -.L470: mov w0, 0 - ldp x19, x20, [sp,16] - ldp x29, x30, [sp], 32 + ldp x29, x30, [sp], 16 + ret +.L514: + mov w0, 0 ret .size List_update_data_list, .-List_update_data_list .align 2 @@ -3618,52 +3575,51 @@ List_update_data_list: ftl_map_blk_alloc_new_blk: stp x29, x30, [sp, -48]! add x29, sp, 0 - stp x19, x20, [sp,16] - stp x21, x22, [sp,32] + stp x19, x20, [sp, 16] mov w20, 0 - ldrh w2, [x0,10] - ldr x1, [x0,16] -.L477: + str x21, [sp, 32] + ldrh w2, [x0, 10] + ldr x1, [x0, 16] +.L518: cmp w20, w2 - beq .L481 - mov x22, x1 - ldrh w21, [x1],2 - cbnz w21, .L478 + beq .L522 + mov x21, x1 + ldrh w3, [x1], 2 + cbnz w3, .L519 mov x19, x0 bl FtlFreeSysBlkQueueOut - strh w0, [x22] - uxth w1, w0 + and w1, w0, 65535 + strh w0, [x21] sub w2, w1, #1 mov w0, 65533 cmp w0, w2, uxth - bcs .L479 - adrp x2, .LANCHOR0+2726 + bcs .L520 + adrp x0, .LANCHOR0+2726 + ldrh w2, [x0, #:lo12:.LANCHOR0+2726] adrp x0, .LC4 add x0, x0, :lo12:.LC4 - ldrh w2, [x2,#:lo12:.LANCHOR0+2726] bl printk -.L480: - b .L480 -.L479: - ldr w0, [x19,48] - strh w21, [x19,2] +.L521: + b .L521 +.L520: + ldr w0, [x19, 48] + strh wzr, [x19, 2] add w0, w0, 1 - str w0, [x19,48] - ldrh w0, [x19,8] + str w0, [x19, 48] + ldrh w0, [x19, 8] strh w20, [x19] add w0, w0, 1 - strh w0, [x19,8] - b .L481 -.L478: - add w20, w20, 1 - uxth w20, w20 - b .L477 -.L481: + strh w0, [x19, 8] +.L522: mov w0, 0 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] + ldr x21, [sp, 32] + ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 48 ret +.L519: + add w20, w20, 1 + and w20, w20, 65535 + b .L518 .size ftl_map_blk_alloc_new_blk, .-ftl_map_blk_alloc_new_blk .align 2 .global select_l2p_ram_region @@ -3672,69 +3628,64 @@ select_l2p_ram_region: adrp x0, .LANCHOR0+2582 mov x4, 0 mov w5, 65535 - ldrh w2, [x0,#:lo12:.LANCHOR0+2582] + ldrh w2, [x0, #:lo12:.LANCHOR0+2582] adrp x0, .LANCHOR2 add x1, x0, :lo12:.LANCHOR2 mov x3, x0 - ldr x1, [x1,704] -.L484: - uxth w0, w4 + ldr x1, [x1, 704] +.L526: + and w0, w4, 65535 cmp w0, w2 - bcs .L500 - add x4, x4, 1 - add x6, x1, x4, lsl 4 - ldrh w6, [x6,-16] - cmp w6, w5 - bne .L484 - b .L485 -.L500: + bcc .L528 + add x5, x1, 4 mov w0, w2 - mov x4, 0 mov w7, -2147483648 -.L487: - uxth w6, w4 - cmp w6, w2 - bcs .L501 - add x5, x1, x4, lsl 4 - ldr w5, [x5,4] - tbnz w5, #31, .L496 - cmp w5, w7 - bcc .L488 -.L496: - mov w5, w7 - mov w6, w0 -.L488: - add x4, x4, 1 - mov w7, w5 - mov w0, w6 - b .L487 -.L501: + mov w4, 0 +.L529: + cmp w4, w2 + bne .L531 cmp w0, w2 - bcc .L485 + bcc .L527 add x0, x3, :lo12:.LANCHOR2 - add x1, x1, 4 mov w4, -1 mov w3, 0 - ldrh w5, [x0,712] + ldrh w5, [x0, 712] mov w0, w2 -.L491: +.L532: cmp w3, w2 - beq .L485 - ldr w7, [x1] - cmp w7, w4 - bcs .L492 - ldrh w6, [x1,-4] + beq .L527 + ldr w7, [x1, 4] + cmp w4, w7 + bls .L533 + ldrh w6, [x1] cmp w6, w5 csel w4, w4, w7, eq - cmp w6, w5 csel w0, w0, w3, eq -.L492: +.L533: add w3, w3, 1 add x1, x1, 16 - uxth w3, w3 - b .L491 -.L485: + and w3, w3, 65535 + b .L532 +.L528: + add x4, x4, 1 + add x6, x1, x4, lsl 4 + ldrh w6, [x6, -16] + cmp w6, w5 + bne .L526 +.L527: ret +.L531: + ldr w6, [x5] + tbnz w6, #31, .L530 + cmp w7, w6 + bls .L530 + mov w7, w6 + mov w0, w4 +.L530: + add w4, w4, 1 + add x5, x5, 16 + and w4, w4, 65535 + b .L529 .size select_l2p_ram_region, .-select_l2p_ram_region .align 2 .global FtlUpdateVaildLpn @@ -3742,72 +3693,70 @@ select_l2p_ram_region: FtlUpdateVaildLpn: adrp x1, .LANCHOR2 add x3, x1, :lo12:.LANCHOR2 - ldrh w2, [x3,714] - cbnz w0, .L503 + ldrh w2, [x3, 714] cmp w2, 4 - bhi .L503 + bhi .L536 + cbnz w0, .L536 add w2, w2, 1 - strh w2, [x3,714] - b .L502 -.L503: - adrp x2, .LANCHOR0+2480 - add x0, x1, :lo12:.LANCHOR2 - mov w7, 65535 - ldrh w5, [x2,#:lo12:.LANCHOR0+2480] - strh wzr, [x0,714] - str wzr, [x0,716] - ldr x6, [x0,520] - mov x0, 0 -.L504: - cmp w5, w0, uxth - bls .L502 - ldrh w4, [x6,x0,lsl 1] - cmp w4, w7 - beq .L505 - add x3, x1, :lo12:.LANCHOR2 - ldr w2, [x3,716] - add w2, w4, w2 - str w2, [x3,716] -.L505: - add x0, x0, 1 - b .L504 -.L502: + strh w2, [x3, 714] ret +.L536: + add x0, x1, :lo12:.LANCHOR2 + adrp x1, .LANCHOR0+2480 + mov w6, 65535 + ldrh w4, [x1, #:lo12:.LANCHOR0+2480] + mov x1, 0 + ldr x5, [x0, 520] + strh wzr, [x0, 714] + str wzr, [x0, 716] +.L537: + cmp w4, w1, uxth + bhi .L539 + ret +.L539: + ldrh w3, [x5, x1, lsl 1] + cmp w3, w6 + beq .L538 + ldr w2, [x0, 716] + add w2, w2, w3 + str w2, [x0, 716] +.L538: + add x1, x1, 1 + b .L537 .size FtlUpdateVaildLpn, .-FtlUpdateVaildLpn .align 2 .global ftl_set_blk_mode .type ftl_set_blk_mode, %function ftl_set_blk_mode: + and w0, w0, 65535 + cbz w1, .L542 stp x29, x30, [sp, -16]! - uxth w0, w0 add x29, sp, 0 - cbz w1, .L509 bl ftl_set_blk_mode.part.9 - b .L508 -.L509: - adrp x1, .LANCHOR0 + ldp x29, x30, [sp], 16 + ret +.L542: + adrp x1, .LANCHOR0+64 ubfx x2, x0, 5, 11 lsl x2, x2, 2 - ldr x3, [x1,#:lo12:.LANCHOR0] + ldr x3, [x1, #:lo12:.LANCHOR0+64] mov w1, 1 lsl w0, w1, w0 - ldr w1, [x3,x2] + ldr w1, [x3, x2] bic w0, w1, w0 - str w0, [x3,x2] -.L508: - ldp x29, x30, [sp], 16 + str w0, [x3, x2] ret .size ftl_set_blk_mode, .-ftl_set_blk_mode .align 2 .global ftl_get_blk_mode .type ftl_get_blk_mode, %function ftl_get_blk_mode: - adrp x1, .LANCHOR0 - uxth w0, w0 - ubfx x2, x0, 5, 11 - ldr x1, [x1,#:lo12:.LANCHOR0] - ldr w1, [x1,x2,lsl 2] - lsr w0, w1, w0 + and w1, w0, 65535 + adrp x0, .LANCHOR0+64 + ldr x0, [x0, #:lo12:.LANCHOR0+64] + ubfx x2, x1, 5, 11 + ldr w0, [x0, x2, lsl 2] + lsr w0, w0, w1 and w0, w0, 1 ret .size ftl_get_blk_mode, .-ftl_get_blk_mode @@ -3815,188 +3764,219 @@ ftl_get_blk_mode: .global ftl_sb_update_avl_pages .type ftl_sb_update_avl_pages, %function ftl_sb_update_avl_pages: - adrp x3, .LANCHOR0 - uxth w1, w1 - add x4, x3, :lo12:.LANCHOR0 - uxth w2, w2 - strh wzr, [x0,4] - mov w6, 65535 - ldrh w4, [x4,2472] -.L513: - cmp w2, w4 - bcs .L519 - add x5, x0, w2, sxtw 1 - ldrh w5, [x5,16] - cmp w5, w6 - beq .L514 - ldrh w5, [x0,4] - add w5, w5, 1 - strh w5, [x0,4] -.L514: - add w2, w2, 1 - uxth w2, w2 - b .L513 -.L519: - add x3, x3, :lo12:.LANCHOR0 - mov w6, 65535 - add x4, x0, w4, uxth 1 - ldrh w5, [x3,2544] - mov x3, x0 -.L516: - cmp x3, x4 - beq .L520 - ldrh w2, [x3,16] - cmp w2, w6 - beq .L517 - ldrh w2, [x0,4] - add w2, w5, w2 - sub w2, w2, #1 - sub w2, w2, w1 - strh w2, [x0,4] -.L517: - add x3, x3, 2 - b .L516 -.L520: + and w6, w1, 65535 + adrp x4, .LANCHOR0 + add x1, x4, :lo12:.LANCHOR0 + and w2, w2, 65535 + strh wzr, [x0, 4] + ldrh w3, [x1, 2472] + mov w1, 65535 +.L550: + cmp w3, w2, uxth + bhi .L552 + add x4, x4, :lo12:.LANCHOR0 + ubfiz x3, x3, 1, 16 + add x3, x3, 16 + add x2, x0, 16 + add x3, x0, x3 + mov w5, 65535 + ldrh w1, [x4, 2544] + sub w1, w1, #1 + and w1, w1, 65535 + sub w1, w1, w6 +.L553: + cmp x2, x3 + bne .L555 ret +.L552: + add x5, x0, w2, sxtw 1 + ldrh w5, [x5, 16] + cmp w5, w1 + beq .L551 + ldrh w5, [x0, 4] + add w5, w5, 1 + strh w5, [x0, 4] +.L551: + add w2, w2, 1 + b .L550 +.L555: + ldrh w4, [x2] + cmp w4, w5 + beq .L554 + ldrh w4, [x0, 4] + add w4, w1, w4 + strh w4, [x0, 4] +.L554: + add x2, x2, 2 + b .L553 .size ftl_sb_update_avl_pages, .-ftl_sb_update_avl_pages .align 2 .global make_superblock .type make_superblock, %function make_superblock: - stp x29, x30, [sp, -80]! - add x29, sp, 0 - stp x19, x20, [sp,16] - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] - adrp x20, .LANCHOR0 - mov x19, x0 - strh wzr, [x0,4] - add x22, x19, 16 - strb wzr, [x0,7] - add x0, x20, :lo12:.LANCHOR0 - mov x21, 0 - mov x23, x0 - mov w25, -1 - ldrh w24, [x0,2472] -.L522: - cmp w24, w21, uxth - bls .L533 - add x0, x23, 2504 - ldrh w1, [x19] - ldrb w0, [x0,x21] - bl V2P_block - strh w25, [x22] - mov w26, w0 - bl FtlBbmIsBadBlock - cbnz w0, .L523 - strh w26, [x22] - ldrb w0, [x19,7] - add w0, w0, 1 - strb w0, [x19,7] -.L523: - add x21, x21, 1 - add x22, x22, 2 - b .L522 -.L533: - add x1, x20, :lo12:.LANCHOR0 - ldrb w0, [x19,7] - strb wzr, [x19,9] - ldrh w2, [x1,2544] + mov x5, x0 + strh wzr, [x0, 4] + strb wzr, [x0, 7] + adrp x6, .LANCHOR0 + add x0, x6, :lo12:.LANCHOR0 + mov x7, 0 + add x8, x5, 16 + add x9, x0, 2504 + mov w11, -1 + ldrh w10, [x0, 2472] + cmp w10, w7, uxth + bhi .L576 + add x1, x6, :lo12:.LANCHOR0 + ldrb w0, [x5, 7] + strb wzr, [x5, 9] + ldrh w2, [x1, 2544] mul w0, w0, w2 - strh w0, [x19,4] - ldr w0, [x1,2372] - cbz w0, .L525 + strh w0, [x5, 4] + ldr w0, [x1, 2372] + cbz w0, .L572 adrp x0, .LANCHOR2+440 - ldrh w1, [x19] - ldr x0, [x0,#:lo12:.LANCHOR2+440] - ldrh w0, [x0,x1,lsl 1] + ldrh w1, [x5] + ldr x0, [x0, #:lo12:.LANCHOR2+440] + ldrh w0, [x0, x1, lsl 1] cmp w0, 79 - bhi .L525 + bhi .L572 mov w0, 1 - strb w0, [x19,9] -.L525: - add x20, x20, :lo12:.LANCHOR0 - ldrb w0, [x20,72] - cbz w0, .L526 + strb w0, [x5, 9] +.L572: + add x6, x6, :lo12:.LANCHOR0 + ldrb w0, [x6, 72] + cbz w0, .L575 mov w0, 1 - strb w0, [x19,9] -.L526: + strb w0, [x5, 9] +.L575: mov w0, 0 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x29, x30, [sp], 80 + ret +.L576: + stp x29, x30, [sp, -16]! + add x29, sp, 0 +.L559: + ldrh w1, [x5] + ldrb w0, [x9, x7] + bl V2P_block + mov w4, w0 + strh w11, [x8] + bl FtlBbmIsBadBlock + cbnz w0, .L558 + strh w4, [x8] + ldrb w0, [x5, 7] + add w0, w0, 1 + strb w0, [x5, 7] +.L558: + add x7, x7, 1 + add x8, x8, 2 + cmp w10, w7, uxth + bhi .L559 + add x1, x6, :lo12:.LANCHOR0 + ldrb w0, [x5, 7] + strb wzr, [x5, 9] + ldrh w2, [x1, 2544] + mul w0, w0, w2 + strh w0, [x5, 4] + ldr w0, [x1, 2372] + cbz w0, .L560 + adrp x0, .LANCHOR2+440 + ldrh w1, [x5] + ldr x0, [x0, #:lo12:.LANCHOR2+440] + ldrh w0, [x0, x1, lsl 1] + cmp w0, 79 + bhi .L560 + mov w0, 1 + strb w0, [x5, 9] +.L560: + add x6, x6, :lo12:.LANCHOR0 + ldrb w0, [x6, 72] + cbz w0, .L561 + mov w0, 1 + strb w0, [x5, 9] +.L561: + mov w0, 0 + ldp x29, x30, [sp], 16 ret .size make_superblock, .-make_superblock .align 2 .global update_multiplier_value .type update_multiplier_value, %function update_multiplier_value: - stp x29, x30, [sp, -64]! - adrp x1, .LANCHOR0 - add x1, x1, :lo12:.LANCHOR0 + and w7, w0, 65535 + adrp x0, .LANCHOR0 + add x0, x0, :lo12:.LANCHOR0 + mov x8, 0 + mov w6, 0 + add x5, x0, 2504 + ldrh w9, [x0, 2472] + ldrh w10, [x0, 2544] + cmp w9, w8, uxth + bhi .L589 + cbz w6, .L587 + mov w0, 32768 + sdiv w6, w0, w6 +.L588: + adrp x0, .LANCHOR2+504 + mov w1, 6 + ldr x0, [x0, #:lo12:.LANCHOR2+504] + umaddl x7, w7, w1, x0 + mov w0, 0 + strh w6, [x7, 4] + ret +.L582: + mov w6, 0 + b .L581 +.L587: + mov w6, 0 + b .L588 +.L589: + stp x29, x30, [sp, -16]! add x29, sp, 0 - stp x19, x20, [sp,16] - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - mov x22, 0 - uxth w21, w0 - ldrh w23, [x1,2472] - mov w19, w22 - ldrh w24, [x1,2544] - mov x20, x1 -.L535: - cmp w23, w22, uxth - bls .L542 - add x0, x20, 2504 - mov w1, w21 - ldrb w0, [x0,x22] +.L580: + ldrb w0, [x5, x8] + mov w1, w7 bl V2P_block bl FtlBbmIsBadBlock - cbnz w0, .L536 - add w19, w19, w24 - uxth w19, w19 -.L536: - add x22, x22, 1 - b .L535 -.L542: - cbz w19, .L538 + cbnz w0, .L579 + add w6, w6, w10 + and w6, w6, 65535 +.L579: + add x8, x8, 1 + cmp w9, w8, uxth + bhi .L580 + cbz w6, .L582 mov w0, 32768 - sdiv w19, w0, w19 -.L538: - mov w0, 6 - umull x21, w21, w0 + sdiv w6, w0, w6 +.L581: adrp x0, .LANCHOR2+504 - ldr x0, [x0,#:lo12:.LANCHOR2+504] - add x21, x0, x21 + mov w1, 6 + ldr x0, [x0, #:lo12:.LANCHOR2+504] + umaddl x7, w7, w1, x0 mov w0, 0 - strh w19, [x21,4] - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x29, x30, [sp], 64 + strh w6, [x7, 4] + ldp x29, x30, [sp], 16 ret .size update_multiplier_value, .-update_multiplier_value .align 2 .global GetFreeBlockMinEraseCount .type GetFreeBlockMinEraseCount, %function GetFreeBlockMinEraseCount: - adrp x2, .LANCHOR2 - add x2, x2, :lo12:.LANCHOR2 - ldr x1, [x2,544] - mov w0, w1 - cbz x1, .L544 - ldr x0, [x2,504] - sub x1, x1, x0 - mov x0, -6148914691236517206 - asr x1, x1, 1 - madd x1, x0, x1, x1 - ldr x0, [x2,440] - and x1, x1, 65535 - ldrh w0, [x0,x1,lsl 1] -.L544: + adrp x1, .LANCHOR2 + add x1, x1, :lo12:.LANCHOR2 + ldr x0, [x1, 544] + cbz x0, .L592 + ldr x2, [x1, 504] + ldr x1, [x1, 440] + sub x0, x0, x2 + mov x2, -6148914691236517206 + asr x0, x0, 1 + movk x2, 0xaaab, lsl 0 + mul x0, x0, x2 + and x0, x0, 65535 + ldrh w0, [x1, x0, lsl 1] + ret +.L592: + mov w0, 0 ret .size GetFreeBlockMinEraseCount, .-GetFreeBlockMinEraseCount .align 2 @@ -4004,45 +3984,46 @@ GetFreeBlockMinEraseCount: .type GetFreeBlockMaxEraseCount, %function GetFreeBlockMaxEraseCount: adrp x2, .LANCHOR2 - uxth w4, w0 - add x5, x2, :lo12:.LANCHOR2 - ldr x1, [x5,544] - mov w0, w1 - cbz x1, .L547 - ldrh w3, [x5,552] - mov w0, 7 + add x4, x2, :lo12:.LANCHOR2 + and w0, w0, 65535 + ldr x1, [x4, 544] + cbz x1, .L600 + ldrh w3, [x4, 552] + mov w5, 7 + ldr x4, [x4, 504] mov w6, 6 mov w7, 65535 - mul w3, w3, w0 - ldr x0, [x5,504] - asr w3, w3, 3 - cmp w4, w3 - sub x1, x1, x0 - csel w4, w3, w4, gt + sub x1, x1, x4 + mul w3, w3, w5 asr x1, x1, 1 + asr w3, w3, 3 + cmp w0, w3 + csel w0, w3, w0, gt mov x3, -6148914691236517206 - madd x1, x3, x1, x1 + movk x3, 0xaaab, lsl 0 + mul x1, x1, x3 mov w3, 0 - uxth w1, w1 -.L549: - cmp w3, w4 - beq .L552 + and w1, w1, 65535 +.L596: + cmp w0, w3 + beq .L599 umull x5, w1, w6 - ldrh w5, [x0,x5] + ldrh w5, [x4, x5] cmp w5, w7 - bne .L550 -.L552: + bne .L597 +.L599: add x2, x2, :lo12:.LANCHOR2 ubfiz x1, x1, 1, 16 - ldr x0, [x2,440] - ldrh w0, [x0,x1] - b .L547 -.L550: + ldr x0, [x2, 440] + ldrh w0, [x0, x1] + ret +.L597: add w3, w3, 1 mov w1, w5 - uxth w3, w3 - b .L549 -.L547: + and w3, w3, 65535 + b .L596 +.L600: + mov w0, 0 ret .size GetFreeBlockMaxEraseCount, .-GetFreeBlockMaxEraseCount .align 2 @@ -4051,547 +4032,546 @@ GetFreeBlockMaxEraseCount: FtlPrintInfo2buf: stp x29, x30, [sp, -112]! adrp x1, .LC5 - add x29, sp, 0 - stp x23, x24, [sp,48] - adrp x24, .LANCHOR0 add x1, x1, :lo12:.LC5 + add x29, sp, 0 + stp x23, x24, [sp, 48] + adrp x24, .LANCHOR0 add x24, x24, :lo12:.LANCHOR0 - str x27, [sp,80] - stp x19, x20, [sp,16] - stp x21, x22, [sp,32] - stp x25, x26, [sp,64] + stp x19, x20, [sp, 16] + stp x21, x22, [sp, 32] + add x20, x0, 12 + stp x25, x26, [sp, 64] mov x22, x0 + str x27, [sp, 80] bl strcpy - add x20, x22, 12 - ldr w2, [x24,176] - adrp x1, .LC6 + ldr w2, [x24, 176] mov x0, x20 + adrp x1, .LC6 add x1, x1, :lo12:.LC6 bl sprintf add x20, x20, w0, sxtw - adrp x1, .LC7 - ldr w2, [x24,2560] + ldr w2, [x24, 2560] mov x0, x20 + adrp x1, .LC7 add x1, x1, :lo12:.LC7 bl sprintf add x20, x20, w0, sxtw adrp x0, .LANCHOR1+504 - ldr w0, [x0,#:lo12:.LANCHOR1+504] + ldr w0, [x0, #:lo12:.LANCHOR1+504] cmp w0, 1 - beq .L555 + beq .L602 sub w0, w20, w22 - b .L556 -.L555: - add x0, x29, 96 - add x1, x29, 100 - add x2, x29, 104 +.L601: + 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], 112 + ret +.L602: add x3, x29, 108 - adrp x25, .LANCHOR2 + add x2, x29, 104 + add x1, x29, 100 + add x0, x29, 96 bl NandcGetTimeCfg - add x23, x25, :lo12:.LANCHOR2 - ldr w4, [x29,104] + adrp x25, .LANCHOR2 + ldp w4, w5, [x29, 104] adrp x1, .LC8 - ldr w5, [x29,108] + ldp w2, w3, [x29, 96] add x1, x1, :lo12:.LC8 - ldr w3, [x29,100] mov x0, x20 - ldr w2, [x29,96] + add x23, x25, :lo12:.LANCHOR2 bl sprintf add x21, x20, w0, sxtw + mov x0, x21 adrp x1, .LC9 - mov x0, x21 add x1, x1, :lo12:.LC9 - add x21, x21, 10 bl strcpy - ldr w2, [x24,2616] - adrp x1, .LC10 + ldr w2, [x24, 2616] + add x21, x21, 10 mov x0, x21 + adrp x1, .LC10 add x1, x1, :lo12:.LC10 bl sprintf add x21, x21, w0, sxtw - ldr w2, [x23,716] - adrp x1, .LC11 + ldr w2, [x23, 716] mov x0, x21 + adrp x1, .LC11 add x1, x1, :lo12:.LC11 bl sprintf add x21, x21, w0, sxtw - ldr w2, [x23,720] - adrp x1, .LC12 + ldr w2, [x23, 720] mov x0, x21 + adrp x1, .LC12 add x1, x1, :lo12:.LC12 bl sprintf add x21, x21, w0, sxtw - ldr w2, [x23,724] - adrp x1, .LC13 + ldr w2, [x23, 724] mov x0, x21 + adrp x1, .LC13 add x1, x1, :lo12:.LC13 bl sprintf add x21, x21, w0, sxtw - ldr w2, [x23,728] - adrp x1, .LC14 + ldr w2, [x23, 728] mov x0, x21 + adrp x1, .LC14 add x1, x1, :lo12:.LC14 bl sprintf add x21, x21, w0, sxtw - ldr w2, [x23,732] - adrp x1, .LC15 + ldr w2, [x23, 732] mov x0, x21 + adrp x1, .LC15 add x1, x1, :lo12:.LC15 bl sprintf add x21, x21, w0, sxtw - ldr w2, [x23,736] - adrp x1, .LC16 + ldr w2, [x23, 736] mov x0, x21 + adrp x1, .LC16 add x1, x1, :lo12:.LC16 bl sprintf add x21, x21, w0, sxtw - ldr w2, [x23,740] - adrp x1, .LC17 + ldr w2, [x23, 740] mov x0, x21 + adrp x1, .LC17 add x1, x1, :lo12:.LC17 bl sprintf add x21, x21, w0, sxtw - ldr w2, [x23,744] - adrp x1, .LC18 + ldr w2, [x23, 744] mov x0, x21 + adrp x1, .LC18 add x1, x1, :lo12:.LC18 lsr w2, w2, 11 bl sprintf + ldr w2, [x23, 748] add x21, x21, w0, sxtw - ldr w2, [x23,748] - adrp x1, .LC19 mov x0, x21 + adrp x1, .LC19 add x1, x1, :lo12:.LC19 lsr w2, w2, 11 bl sprintf + ldr w2, [x23, 752] add x21, x21, w0, sxtw - ldr w2, [x23,752] - adrp x1, .LC20 mov x0, x21 + adrp x1, .LC20 add x1, x1, :lo12:.LC20 bl sprintf add x21, x21, w0, sxtw - ldr w2, [x23,756] + ldr w2, [x23, 756] adrp x1, .LC21 add x1, x1, :lo12:.LC21 mov x0, x21 bl sprintf add x21, x21, w0, sxtw bl FtlBbtCalcTotleCnt - uxth w3, w0 - ldrh w2, [x24,2630] - adrp x1, .LC22 + and w3, w0, 65535 + ldrh w2, [x24, 2630] mov x0, x21 + adrp x1, .LC22 add x1, x1, :lo12:.LC22 bl sprintf add x21, x21, w0, sxtw - ldrh w2, [x23,552] - adrp x1, .LC23 + ldrh w2, [x23, 552] mov x0, x21 + adrp x1, .LC23 add x1, x1, :lo12:.LC23 bl sprintf add x21, x21, w0, sxtw - ldr w2, [x23,760] - adrp x1, .LC24 + ldr w2, [x23, 760] mov x0, x21 + adrp x1, .LC24 add x1, x1, :lo12:.LC24 bl sprintf add x21, x21, w0, sxtw - ldr w2, [x23,764] - adrp x1, .LC25 + ldr w2, [x23, 764] mov x0, x21 + adrp x1, .LC25 add x1, x1, :lo12:.LC25 bl sprintf add x21, x21, w0, sxtw - ldr w2, [x23,768] - adrp x1, .LC26 + ldr w2, [x23, 768] mov x0, x21 + adrp x1, .LC26 add x1, x1, :lo12:.LC26 bl sprintf add x21, x21, w0, sxtw - ldr w2, [x23,448] - adrp x1, .LC27 + ldr w2, [x23, 448] mov x0, x21 + adrp x1, .LC27 add x1, x1, :lo12:.LC27 bl sprintf add x21, x21, w0, sxtw - ldr w2, [x23,772] - adrp x1, .LC28 + ldr w2, [x23, 772] mov x0, x21 + adrp x1, .LC28 add x1, x1, :lo12:.LC28 bl sprintf add x21, x21, w0, sxtw - ldr w2, [x23,776] - adrp x1, .LC29 + ldr w2, [x23, 776] mov x0, x21 + adrp x1, .LC29 add x1, x1, :lo12:.LC29 bl sprintf add x21, x21, w0, sxtw - ldrh w2, [x23,486] - adrp x1, .LC30 + ldrh w2, [x23, 486] mov x0, x21 + adrp x1, .LC30 add x1, x1, :lo12:.LC30 bl sprintf add x21, x21, w0, sxtw - ldrh w2, [x23,484] - adrp x1, .LC31 + ldrh w2, [x23, 484] mov x0, x21 + adrp x1, .LC31 add x1, x1, :lo12:.LC31 bl sprintf add x21, x21, w0, sxtw - ldr w2, [x24,2584] - adrp x1, .LC32 + ldr w2, [x24, 2584] mov x0, x21 + adrp x1, .LC32 add x1, x1, :lo12:.LC32 bl sprintf add x21, x21, w0, sxtw - ldr w2, [x24,2576] - adrp x1, .LC33 + ldr w2, [x24, 2576] mov x0, x21 + adrp x1, .LC33 add x1, x1, :lo12:.LC33 bl sprintf add x21, x21, w0, sxtw - ldr w2, [x24,2468] - adrp x1, .LC34 + ldr w2, [x24, 2468] mov x0, x21 + adrp x1, .LC34 add x1, x1, :lo12:.LC34 bl sprintf add x21, x21, w0, sxtw - ldrh w2, [x24,2726] - adrp x1, .LC35 + ldrh w2, [x24, 2726] mov x0, x21 + adrp x1, .LC35 add x1, x1, :lo12:.LC35 bl sprintf add x21, x21, w0, sxtw - ldrh w2, [x24,2480] - adrp x1, .LC36 + ldrh w2, [x24, 2480] mov x0, x21 + adrp x1, .LC36 add x1, x1, :lo12:.LC36 bl sprintf add x21, x21, w0, sxtw - ldrh w2, [x23,780] - adrp x1, .LC37 + ldrh w2, [x23, 780] mov x0, x21 + adrp x1, .LC37 add x1, x1, :lo12:.LC37 bl sprintf add x21, x21, w0, sxtw - ldr w2, [x24,2484] - adrp x1, .LC38 + ldr w2, [x24, 2484] mov x0, x21 + adrp x1, .LC38 add x1, x1, :lo12:.LC38 bl sprintf add x21, x21, w0, sxtw - ldrh w2, [x23,784] - adrp x1, .LC39 + ldrh w2, [x23, 784] mov x0, x21 + adrp x1, .LC39 add x1, x1, :lo12:.LC39 bl sprintf add x21, x21, w0, sxtw - ldrh w2, [x24,2624] - adrp x1, .LC40 + ldrh w2, [x24, 2624] mov x0, x21 + adrp x1, .LC40 add x1, x1, :lo12:.LC40 bl sprintf add x21, x21, w0, sxtw - ldrh w2, [x23,562] - adrp x1, .LC41 + ldrh w2, [x23, 562] mov x0, x21 + adrp x1, .LC41 add x1, x1, :lo12:.LC41 bl sprintf add x21, x21, w0, sxtw - ldrb w2, [x23,566] - adrp x1, .LC42 + ldrb w2, [x23, 566] mov x0, x21 + adrp x1, .LC42 add x1, x1, :lo12:.LC42 bl sprintf add x21, x21, w0, sxtw - ldrh w2, [x23,560] - adrp x1, .LC43 + ldrh w2, [x23, 560] mov x0, x21 + adrp x1, .LC43 add x1, x1, :lo12:.LC43 bl sprintf add x21, x21, w0, sxtw - ldrb w2, [x23,568] - adrp x1, .LC44 + ldrb w2, [x23, 568] mov x0, x21 + adrp x1, .LC44 add x1, x1, :lo12:.LC44 bl sprintf add x21, x21, w0, sxtw - ldrh w2, [x23,564] - adrp x1, .LC45 + ldrh w2, [x23, 564] mov x0, x21 + adrp x1, .LC45 add x1, x1, :lo12:.LC45 bl sprintf add x21, x21, w0, sxtw - ldrh w3, [x23,560] - adrp x1, .LC46 - ldr x2, [x23,520] + ldrh w1, [x23, 560] + ldr x0, [x23, 520] + ldrh w2, [x0, x1, lsl 1] mov x0, x21 + adrp x1, .LC46 add x1, x1, :lo12:.LC46 - ldrh w2, [x2,x3,lsl 1] bl sprintf add x21, x21, w0, sxtw - ldrh w2, [x23,610] - adrp x1, .LC47 + ldrh w2, [x23, 610] mov x0, x21 + adrp x1, .LC47 add x1, x1, :lo12:.LC47 bl sprintf add x21, x21, w0, sxtw - ldrb w2, [x23,614] - adrp x1, .LC48 + ldrb w2, [x23, 614] mov x0, x21 + adrp x1, .LC48 add x1, x1, :lo12:.LC48 bl sprintf add x21, x21, w0, sxtw - ldrh w2, [x23,608] - adrp x1, .LC49 + ldrh w2, [x23, 608] mov x0, x21 + adrp x1, .LC49 add x1, x1, :lo12:.LC49 bl sprintf add x21, x21, w0, sxtw - ldrb w2, [x23,616] - adrp x1, .LC50 + ldrb w2, [x23, 616] mov x0, x21 + adrp x1, .LC50 add x1, x1, :lo12:.LC50 bl sprintf add x21, x21, w0, sxtw - ldrh w2, [x23,612] - adrp x1, .LC51 + ldrh w2, [x23, 612] mov x0, x21 + adrp x1, .LC51 add x1, x1, :lo12:.LC51 bl sprintf add x21, x21, w0, sxtw - ldrh w3, [x23,608] - adrp x1, .LC52 - ldr x2, [x23,520] + ldrh w1, [x23, 608] + ldr x0, [x23, 520] + ldrh w2, [x0, x1, lsl 1] mov x0, x21 + adrp x1, .LC52 add x1, x1, :lo12:.LC52 - ldrh w2, [x2,x3,lsl 1] bl sprintf add x21, x21, w0, sxtw - ldrh w2, [x23,658] - adrp x1, .LC53 + ldrh w2, [x23, 658] mov x0, x21 + adrp x1, .LC53 add x1, x1, :lo12:.LC53 bl sprintf add x21, x21, w0, sxtw - ldrb w2, [x23,662] - adrp x1, .LC54 + ldrb w2, [x23, 662] mov x0, x21 + adrp x1, .LC54 add x1, x1, :lo12:.LC54 bl sprintf add x21, x21, w0, sxtw - ldrh w2, [x23,656] - adrp x1, .LC55 + ldrh w2, [x23, 656] mov x0, x21 + adrp x1, .LC55 add x1, x1, :lo12:.LC55 bl sprintf add x21, x21, w0, sxtw - ldrb w2, [x23,664] - adrp x1, .LC56 + ldrb w2, [x23, 664] mov x0, x21 + adrp x1, .LC56 add x1, x1, :lo12:.LC56 bl sprintf add x21, x21, w0, sxtw - ldrh w2, [x23,660] - adrp x1, .LC57 + ldrh w2, [x23, 660] mov x0, x21 + adrp x1, .LC57 add x1, x1, :lo12:.LC57 bl sprintf add x21, x21, w0, sxtw - ldrh w2, [x23,802] - adrp x1, .LC58 + ldrh w2, [x23, 802] mov x0, x21 + adrp x1, .LC58 add x1, x1, :lo12:.LC58 bl sprintf add x21, x21, w0, sxtw - ldrb w2, [x23,806] - adrp x1, .LC59 + ldrb w2, [x23, 806] mov x0, x21 + adrp x1, .LC59 add x1, x1, :lo12:.LC59 bl sprintf add x21, x21, w0, sxtw - ldrh w2, [x23,800] - adrp x1, .LC60 + ldrh w2, [x23, 800] mov x0, x21 + adrp x1, .LC60 add x1, x1, :lo12:.LC60 bl sprintf add x21, x21, w0, sxtw - ldrb w2, [x23,808] - adrp x1, .LC61 + ldrb w2, [x23, 808] mov x0, x21 + adrp x1, .LC61 add x1, x1, :lo12:.LC61 bl sprintf add x21, x21, w0, sxtw - ldrh w2, [x23,804] - adrp x1, .LC62 + ldrh w2, [x23, 804] mov x0, x21 + adrp x1, .LC62 add x1, x1, :lo12:.LC62 bl sprintf add x21, x21, w0, sxtw - ldr w3, [x23,848] + ldr w5, [x23, 924] adrp x1, .LC63 - ldr w2, [x24,2372] + ldr w3, [x23, 928] add x1, x1, :lo12:.LC63 - ldr w4, [x23,940] + ldr w4, [x23, 932] + ldr w0, [x24, 2372] + ldr w2, [x23, 1360] + orr w2, w0, w2, lsl 8 mov x0, x21 - ldr w5, [x23,932] - orr w2, w2, w3, lsl 8 - ldr w3, [x23,936] bl sprintf add x19, x21, w0, sxtw - ldr w2, [x23,928] - adrp x1, .LC64 + ldr w2, [x23, 920] mov x0, x19 + adrp x1, .LC64 add x1, x1, :lo12:.LC64 bl sprintf add x19, x19, w0, sxtw - ldr w2, [x23,952] - adrp x1, .LC65 + ldr w2, [x23, 944] mov x0, x19 + adrp x1, .LC65 add x1, x1, :lo12:.LC65 bl sprintf add x19, x19, w0, sxtw - ldrh w2, [x23,1368] - adrp x1, .LC66 + ldrh w2, [x23, 1364] mov x0, x19 + adrp x1, .LC66 add x1, x1, :lo12:.LC66 bl sprintf add x19, x19, w0, sxtw - ldrh w2, [x23,1370] - adrp x1, .LC67 + ldrh w2, [x23, 1366] mov x0, x19 + adrp x1, .LC67 add x1, x1, :lo12:.LC67 bl sprintf add x19, x19, w0, sxtw - ldr w2, [x23,1372] - adrp x1, .LC68 + ldr w2, [x23, 1368] mov x0, x19 + adrp x1, .LC68 add x1, x1, :lo12:.LC68 bl sprintf add x19, x19, w0, sxtw - ldrh w2, [x23,1376] + ldrh w2, [x23, 1372] adrp x1, .LC69 add x1, x1, :lo12:.LC69 mov x0, x19 bl sprintf add x19, x19, w0, sxtw bl GetFreeBlockMinEraseCount - uxth w2, w0 + and w2, w0, 65535 adrp x1, .LC70 mov x0, x19 add x1, x1, :lo12:.LC70 bl sprintf add x19, x19, w0, sxtw - ldrh w0, [x23,552] + ldrh w0, [x23, 552] bl GetFreeBlockMaxEraseCount - uxth w2, w0 + and w2, w0, 65535 adrp x1, .LC71 mov x0, x19 add x1, x1, :lo12:.LC71 bl sprintf add x19, x19, w0, sxtw - ldrh w0, [x23,800] + ldrh w0, [x23, 800] mov w1, 65535 cmp w0, w1 - beq .L557 - ubfiz x2, x0, 1, 16 - ldr x3, [x23,520] - adrp x1, .LC72 + beq .L604 + ldr x1, [x23, 520] + ubfiz x0, x0, 1, 16 + ldrh w2, [x1, x0] mov x0, x19 + adrp x1, .LC72 add x1, x1, :lo12:.LC72 - ldrh w2, [x3,x2] bl sprintf add x19, x19, w0, sxtw -.L557: +.L604: mov w0, 0 adrp x23, .LC73 + bl List_get_gc_head_node + add x21, x25, :lo12:.LANCHOR2 + and w3, w0, 65535 + add x23, x23, :lo12:.LC73 mov w20, 0 mov w27, 65535 - bl List_get_gc_head_node mov w26, 6 - uxth w3, w0 - add x23, x23, :lo12:.LC73 -.L559: +.L606: cmp w3, w27 - beq .L558 - add x21, x25, :lo12:.LANCHOR2 - ubfiz x6, x3, 1, 16 + beq .L605 umull x24, w3, w26 + ldr x0, [x21, 504] + ldr x4, [x21, 440] + ubfiz x1, x3, 1, 16 + ldr x2, [x21, 520] + add x0, x0, x24 + ldrh w6, [x4, x1] + ldrh w5, [x0, 4] mov x0, x19 + ldrh w4, [x2, x1] mov w2, w20 - ldr x5, [x21,504] mov x1, x23 - ldr x4, [x21,520] add w20, w20, 1 - ldr x7, [x21,440] - add x5, x5, x24 - ldrh w4, [x4,x6] - ldrh w5, [x5,4] - ldrh w6, [x7,x6] bl sprintf add x19, x19, w0, sxtw - ldr x0, [x21,504] + ldr x0, [x21, 504] cmp w20, 16 - ldrh w3, [x0,x24] - bne .L559 -.L558: - add x1, x25, :lo12:.LANCHOR2 - adrp x23, .LC74 + ldrh w3, [x0, x24] + bne .L606 +.L605: + add x25, x25, :lo12:.LANCHOR2 + adrp x21, .LC74 + add x21, x21, :lo12:.LC74 mov w20, 0 - mov w27, 65535 + mov w24, 65535 mov w26, 6 - add x23, x23, :lo12:.LC74 - ldr x0, [x1,544] - ldr x3, [x1,504] - sub x3, x0, x3 + ldr x0, [x25, 504] + ldr x3, [x25, 544] + sub x3, x3, x0 mov x0, -6148914691236517206 asr x3, x3, 1 - madd x3, x0, x3, x3 - uxth w3, w3 -.L561: - cmp w3, w27 - beq .L560 - add x21, x25, :lo12:.LANCHOR2 - ubfiz x5, x3, 1, 16 - umull x24, w3, w26 - mov x0, x19 + movk x0, 0xaaab, lsl 0 + mul x3, x3, x0 + and w3, w3, 65535 +.L608: + cmp w3, w24 + beq .L607 + umull x23, w3, w26 + ldr x0, [x25, 504] + ldr x2, [x25, 440] + ubfiz x1, x3, 1, 16 + add x0, x0, x23 + ldrh w5, [x2, x1] mov w2, w20 - ldr x4, [x21,504] - mov x1, x23 - ldr x6, [x21,440] + ldrh w4, [x0, 4] + mov x1, x21 + mov x0, x19 add w20, w20, 1 - add x4, x4, x24 - ldrh w5, [x6,x5] - ldrh w4, [x4,4] bl sprintf add x19, x19, w0, sxtw - ldr x0, [x21,504] cmp w20, 4 - ldrh w3, [x0,x24] - bne .L561 -.L560: + beq .L607 + ldr x0, [x25, 504] + ldrh w3, [x0, x23] + b .L608 +.L607: sub w0, w19, w22 -.L556: - 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], 112 - ret + b .L601 .size FtlPrintInfo2buf, .-FtlPrintInfo2buf .align 2 .global ftl_proc_ftl_read .type ftl_proc_ftl_read, %function ftl_proc_ftl_read: stp x29, x30, [sp, -32]! - adrp x1, .LC75 - adrp x2, .LC76 + adrp x2, .LC75 + adrp x1, .LC76 + add x2, x2, :lo12:.LC75 add x29, sp, 0 - add x1, x1, :lo12:.LC75 - add x2, x2, :lo12:.LC76 - stp x19, x20, [sp,16] + add x1, x1, :lo12:.LC76 + stp x19, x20, [sp, 16] mov x20, x0 bl sprintf add x19, x20, w0, sxtw @@ -4599,7 +4579,7 @@ ftl_proc_ftl_read: bl FtlPrintInfo2buf add x0, x19, w0, sxtw sub w0, w0, w20 - ldp x19, x20, [sp,16] + ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 32 ret .size ftl_proc_ftl_read, .-ftl_proc_ftl_read @@ -4607,330 +4587,318 @@ ftl_proc_ftl_read: .global GetSwlReplaceBlock .type GetSwlReplaceBlock, %function GetSwlReplaceBlock: - stp x29, x30, [sp, -96]! + stp x29, x30, [sp, -32]! + adrp x8, .LANCHOR2 + add x0, x8, :lo12:.LANCHOR2 add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x19, .LANCHOR2 - add x0, x19, :lo12:.LANCHOR2 - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] - ldr w2, [x0,768] - ldr w1, [x0,776] + stp x19, x20, [sp, 16] + ldr w2, [x0, 768] + ldr w1, [x0, 776] cmp w2, w1 - bcs .L566 + bcs .L617 adrp x1, .LANCHOR0 - str wzr, [x0,760] add x2, x1, :lo12:.LANCHOR0 - ldr x5, [x0,440] - mov x0, 0 - ldrh w3, [x2,2480] -.L567: - cmp w3, w0 - bls .L599 - add x4, x19, :lo12:.LANCHOR2 - ldrh w6, [x5,x0,lsl 1] - add x0, x0, 1 - ldr w2, [x4,760] - add w2, w6, w2 - str w2, [x4,760] - b .L567 -.L599: - add x2, x19, :lo12:.LANCHOR2 + ldr x5, [x0, 440] + str wzr, [x0, 760] + ldrh w3, [x2, 2480] + mov x2, 0 +.L618: + cmp w3, w2 + bhi .L619 + add x2, x8, :lo12:.LANCHOR2 add x1, x1, :lo12:.LANCHOR0 - ldr w0, [x2,760] - ldrh w1, [x1,2536] + ldr w0, [x2, 760] + ldrh w1, [x1, 2536] udiv w3, w0, w3 - str w3, [x2,768] - ldr w3, [x2,764] + str w3, [x2, 768] + ldr w3, [x2, 764] sub w0, w0, w3 udiv w0, w0, w1 - str w0, [x2,760] - b .L569 -.L566: - ldr w1, [x0,772] - cmp w2, w1 - bls .L569 - add w1, w1, 1 - adrp x4, .LANCHOR0 - str w1, [x0,772] - mov w0, 0 -.L571: - add x1, x4, :lo12:.LANCHOR0 - ldrh w1, [x1,2480] + str w0, [x2, 760] +.L620: + add x1, x8, :lo12:.LANCHOR2 + ldr w9, [x1, 776] + ldr w10, [x1, 768] + add w0, w9, 256 + cmp w0, w10 + bls .L625 + ldr w1, [x1, 772] + add w0, w9, 768 cmp w0, w1 - bcs .L569 - add x1, x19, :lo12:.LANCHOR2 - ubfiz x2, x0, 1, 32 - add w0, w0, 1 - ldr x3, [x1,440] - ldrh w1, [x3,x2] - add w1, w1, 1 - strh w1, [x3,x2] - b .L571 -.L569: - add x1, x19, :lo12:.LANCHOR2 - ldr w21, [x1,776] - ldr w24, [x1,768] - add w0, w21, 256 - cmp w0, w24 - bls .L574 - ldr w1, [x1,772] - add w0, w21, 768 - cmp w0, w1 - bls .L574 + bls .L625 adrp x0, .LANCHOR0+2372 - ldr w0, [x0,#:lo12:.LANCHOR0+2372] - cbz w0, .L577 - cmp w21, 40 - bls .L574 -.L577: - mov w0, 65535 - b .L576 -.L574: - add x0, x19, :lo12:.LANCHOR2 - ldrh w0, [x0,552] + ldr w0, [x0, #:lo12:.LANCHOR0+2372] + cbnz w0, .L626 +.L628: + mov w20, 65535 +.L627: + mov w0, w20 + ldp x19, x20, [sp, 16] + ldp x29, x30, [sp], 32 + ret +.L619: + ldrh w4, [x5, x2, lsl 1] + add x2, x2, 1 + ldr w6, [x0, 760] + add w4, w4, w6 + str w4, [x0, 760] + b .L618 +.L617: + ldr w1, [x0, 772] + cmp w2, w1 + bls .L620 + add w1, w1, 1 + adrp x2, .LANCHOR0 + add x2, x2, :lo12:.LANCHOR0 + str w1, [x0, 772] + mov w1, 0 +.L622: + ldrh w3, [x2, 2480] + cmp w1, w3 + bcs .L620 + ldr x5, [x0, 440] + ubfiz x4, x1, 1, 32 + add w1, w1, 1 + ldrh w3, [x5, x4] + add w3, w3, 1 + strh w3, [x5, x4] + b .L622 +.L626: + cmp w9, 40 + bhi .L628 +.L625: + add x0, x8, :lo12:.LANCHOR2 + ldrh w0, [x0, 552] add w0, w0, w0, lsl 1 lsr w0, w0, 2 bl GetFreeBlockMaxEraseCount - uxth w6, w0 - add w0, w21, 64 + and w6, w0, 65535 + add w0, w9, 64 cmp w6, w0 - bcs .L586 - cmp w21, 40 - bhi .L577 -.L586: - add x0, x19, :lo12:.LANCHOR2 - ldr x3, [x0,512] - cbz x3, .L577 - adrp x1, .LANCHOR0+2480 - mov w23, 65535 - ldr x7, [x0,504] - mov w20, w23 - ldr x26, [x0,440] - mov x0, -6148914691236517206 - ldrh w9, [x1,#:lo12:.LANCHOR0+2480] - mov w8, w23 + bcs .L629 + cmp w9, 40 + bhi .L628 +.L629: + add x1, x8, :lo12:.LANCHOR2 + ldr x0, [x1, 512] + cbz x0, .L628 + adrp x2, .LANCHOR0+2480 + mov w4, 65535 + mov x13, -6148914691236517206 + mov w11, w4 + ldrh w12, [x2, #:lo12:.LANCHOR0+2480] + mov w2, w4 + ldr x5, [x1, 440] + movk x13, 0xaaab, lsl 0 + ldr x7, [x1, 504] + mov w14, 6 mov w1, 0 - add x0, x0, 1 - mov w10, 6 -.L579: - ldrh w2, [x3] - cmp w2, w8 - beq .L581 - add w1, w1, 1 - uxth w1, w1 - cmp w1, w9 - bhi .L577 - ldrh w4, [x3,4] - cbz w4, .L580 - sub x4, x3, x7 - asr x4, x4, 1 - mul x4, x4, x0 - uxth w5, w4 - and x4, x4, 65535 - ldrh w3, [x26,x4,lsl 1] - cmp w3, w21 - bls .L585 - cmp w3, w23 - bcs .L580 - mov w23, w3 - mov w20, w5 -.L580: - umull x3, w2, w10 - add x3, x7, x3 - b .L579 -.L585: - mov w20, w5 -.L581: +.L630: + ldrh w3, [x0] + cmp w3, w11 + bne .L633 + mov w20, w2 +.L632: mov w0, 65535 cmp w20, w0 - beq .L577 - ubfiz x25, x20, 1, 16 - ldrh w22, [x26,x25] - cmp w22, w21 - bls .L583 - str x6, [x29,88] + beq .L628 + ubfiz x7, x20, 1, 32 + ldrh w3, [x5, x7] + cmp w9, w3 + bcs .L634 bl GetFreeBlockMinEraseCount - ldr x6, [x29,88] - cmp w21, w0, uxth - bcs .L583 - add x0, x19, :lo12:.LANCHOR2 - str w23, [x0,776] -.L583: - cmp w22, w24 - bcs .L577 - add w0, w22, 128 + cmp w9, w0, uxth + bcs .L634 + add x0, x8, :lo12:.LANCHOR2 + str w4, [x0, 776] +.L634: + cmp w10, w3 + bls .L628 + add w0, w3, 128 cmp w6, w0 - ble .L577 - add w0, w22, 256 - cmp w0, w24 - bcc .L584 - add x0, x19, :lo12:.LANCHOR2 - add w22, w22, 768 - ldr w0, [x0,772] - cmp w22, w0 - bcs .L577 -.L584: - add x19, x19, :lo12:.LANCHOR2 - adrp x0, .LC77 - ldrh w5, [x26,x25] - add x0, x0, :lo12:.LC77 + ble .L628 + add w0, w3, 256 + cmp w10, w0 + bhi .L635 + add x0, x8, :lo12:.LANCHOR2 + add w3, w3, 768 + ldr w0, [x0, 772] + cmp w3, w0 + bcs .L628 +.L635: + add x19, x8, :lo12:.LANCHOR2 + ldrh w5, [x5, x7] + mov w2, w10 mov w1, w20 - mov w2, w24 - ldr x4, [x19,520] - ldr w3, [x19,772] - ldrh w4, [x4,x25] + ldr x0, [x19, 520] + ldr w3, [x19, 772] + ldrh w4, [x0, x7] + adrp x0, .LC77 + add x0, x0, :lo12:.LC77 bl printk mov w0, 1 - str w0, [x19,1380] - mov w0, w20 -.L576: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x29, x30, [sp], 96 - ret + str w0, [x19, 1376] + b .L627 +.L633: + add w1, w1, 1 + and w1, w1, 65535 + cmp w1, w12 + bhi .L628 + ldrh w15, [x0, 4] + cbz w15, .L631 + sub x0, x0, x7 + asr x0, x0, 1 + mul x0, x0, x13 + and w20, w0, 65535 + and x0, x0, 65535 + ldrh w0, [x5, x0, lsl 1] + cmp w9, w0 + bcs .L632 + cmp w4, w0 + bls .L631 + mov w4, w0 + mov w2, w20 +.L631: + umaddl x0, w3, w14, x7 + b .L630 .size GetSwlReplaceBlock, .-GetSwlReplaceBlock .align 2 .global free_data_superblock .type free_data_superblock, %function free_data_superblock: - stp x29, x30, [sp, -16]! - uxth w0, w0 + and w0, w0, 65535 mov w1, 65535 cmp w0, w1 - add x29, sp, 0 - beq .L601 + beq .L646 + stp x29, x30, [sp, -16]! adrp x2, .LANCHOR2+520 ubfiz x1, x0, 1, 16 - ldr x2, [x2,#:lo12:.LANCHOR2+520] - strh wzr, [x2,x1] + add x29, sp, 0 + ldr x2, [x2, #:lo12:.LANCHOR2+520] + strh wzr, [x2, x1] bl INSERT_FREE_LIST -.L601: mov w0, 0 ldp x29, x30, [sp], 16 ret +.L646: + mov w0, 0 + ret .size free_data_superblock, .-free_data_superblock .align 2 .global FtlGcBufInit .type FtlGcBufInit, %function FtlGcBufInit: - adrp x3, .LANCHOR2 - mov w1, 0 - add x0, x3, :lo12:.LANCHOR2 - adrp x10, .LANCHOR0 - mov w11, 24 - mov w12, 1 + adrp x0, .LANCHOR2 + add x1, x0, :lo12:.LANCHOR2 + adrp x3, .LANCHOR0 + mov x7, x0 + add x9, x3, :lo12:.LANCHOR0 + mov w8, 0 + mov w10, 24 + mov w11, 1 + mov w4, 4 + mov w12, 56 + str wzr, [x1, 1380] +.L650: + ldrh w0, [x9, 2472] + cmp w8, w0 + bcc .L651 + add x3, x3, :lo12:.LANCHOR0 + add x1, x7, :lo12:.LANCHOR2 mov w6, 4 - mov w13, 56 - str wzr, [x0,1384] -.L603: - add x5, x10, :lo12:.LANCHOR0 - adrp x9, .LANCHOR0 - ldrh w0, [x5,2472] - cmp w1, w0 - bcs .L607 - add x2, x3, :lo12:.LANCHOR2 - umull x4, w1, w11 - ldr x7, [x2,1392] - ldr x8, [x2,1400] - add x0, x7, x4 - str w12, [x0,16] - ldrh w0, [x5,2554] - mul w0, w1, w0 - sdiv w0, w0, w6 - add x0, x8, w0, sxtw 2 - str x0, [x7,x4] - ldrh w0, [x5,2556] - ldr x8, [x2,1392] - ldr x5, [x2,1408] - mul w0, w1, w0 - add x7, x8, x4 - ldr x2, [x2,1416] - sdiv w0, w0, w6 - add x0, x5, w0, sxtw 2 - str x0, [x7,8] - umull x0, w1, w13 - add w1, w1, 1 - add x0, x2, x0 - ldr x2, [x8,x4] - uxth w1, w1 - str x2, [x0,8] - ldr x2, [x7,8] - str x2, [x0,16] - b .L603 -.L607: - mov w8, 24 - mov w5, 4 -.L605: - add x2, x3, :lo12:.LANCHOR2 - ldr w1, [x2,1424] - cmp w0, w1 - bcs .L608 - umull x4, w0, w8 - ldr x7, [x2,1392] - add x6, x9, :lo12:.LANCHOR0 - ldr x10, [x2,1400] - add x1, x7, x4 - str wzr, [x1,16] - ldrh w1, [x6,2554] - mul w1, w0, w1 - sdiv w1, w1, w5 - add x1, x10, w1, sxtw 2 - str x1, [x7,x4] - ldrh w1, [x6,2556] - ldr x6, [x2,1392] - ldr x2, [x2,1408] - mul w1, w0, w1 - add x4, x6, x4 - add w0, w0, 1 - sdiv w1, w1, w5 - uxth w0, w0 - add x1, x2, w1, sxtw 2 - str x1, [x4,8] - b .L605 -.L608: + mov w7, 24 +.L652: + ldr w2, [x1, 1416] + cmp w0, w2 + bcc .L653 ret +.L651: + umull x2, w8, w10 + ldr x5, [x1, 1384] + ldr x6, [x1, 1392] + add x0, x5, x2 + str w11, [x0, 16] + ldrh w0, [x9, 2554] + mul w0, w0, w8 + sdiv w0, w0, w4 + add x0, x6, w0, sxtw 2 + str x0, [x5, x2] + ldrh w0, [x9, 2556] + ldr x6, [x1, 1384] + ldr x13, [x1, 1400] + add x5, x6, x2 + mul w0, w0, w8 + sdiv w0, w0, w4 + add x0, x13, w0, sxtw 2 + str x0, [x5, 8] + ldr x0, [x1, 1408] + ldr x2, [x6, x2] + nop // between mem op and mult-accumulate + umaddl x0, w8, w12, x0 + add w8, w8, 1 + and w8, w8, 65535 + str x2, [x0, 8] + ldr x2, [x5, 8] + str x2, [x0, 16] + b .L650 +.L653: + umull x5, w0, w7 + ldr x4, [x1, 1384] + ldr x8, [x1, 1392] + add x2, x4, x5 + str wzr, [x2, 16] + ldrh w2, [x3, 2554] + mul w2, w2, w0 + sdiv w2, w2, w6 + add x2, x8, w2, sxtw 2 + str x2, [x4, x5] + ldrh w2, [x3, 2556] + ldr x4, [x1, 1384] + add x4, x4, x5 + ldr x5, [x1, 1400] + mul w2, w2, w0 + add w0, w0, 1 + and w0, w0, 65535 + sdiv w2, w2, w6 + add x2, x5, w2, sxtw 2 + str x2, [x4, 8] + b .L652 .size FtlGcBufInit, .-FtlGcBufInit .align 2 .global FtlGcBufFree .type FtlGcBufFree, %function FtlGcBufFree: adrp x2, .LANCHOR2 - mov w3, 0 add x2, x2, :lo12:.LANCHOR2 + mov w3, 0 mov w7, 56 mov w9, 24 - ldr w8, [x2,1424] - ldr x5, [x2,1392] -.L610: + ldr w8, [x2, 1416] + ldr x4, [x2, 1384] +.L655: cmp w3, w1 - bcs .L609 - umull x4, w3, w7 + bcs .L654 + umaddl x6, w3, w7, x0 mov w2, 0 - add x4, x0, x4 -.L615: - cmp w2, w8 - bcs .L612 - umull x6, w2, w9 - add x10, x5, x6 - ldr x11, [x5,x6] - ldr x6, [x4,8] - cmp x11, x6 - bne .L611 - str wzr, [x10,16] - b .L612 -.L611: + b .L660 +.L656: add w2, w2, 1 - uxth w2, w2 - b .L615 -.L612: + and w2, w2, 65535 +.L660: + cmp w2, w8 + bcs .L657 + umull x5, w2, w9 + add x10, x4, x5 + ldr x11, [x4, x5] + ldr x5, [x6, 8] + cmp x11, x5 + bne .L656 + str wzr, [x10, 16] +.L657: add w3, w3, 1 - uxth w3, w3 - b .L610 -.L609: + and w3, w3, 65535 + b .L655 +.L654: ret .size FtlGcBufFree, .-FtlGcBufFree .align 2 @@ -4938,41 +4906,38 @@ FtlGcBufFree: .type FtlGcBufAlloc, %function FtlGcBufAlloc: adrp x2, .LANCHOR2 - mov w7, 24 add x2, x2, :lo12:.LANCHOR2 + mov w3, 0 + mov w7, 24 mov w8, 1 mov w9, 56 - ldr w5, [x2,1424] - ldr x6, [x2,1392] + ldr w5, [x2, 1416] + ldr x6, [x2, 1384] +.L662: + cmp w3, w1 + bcs .L661 mov w2, 0 -.L617: - cmp w2, w1 - bcs .L623 - mov w3, 0 -.L621: - cmp w3, w5 - bcs .L619 - umull x4, w3, w7 - add x4, x6, x4 - ldr w10, [x4,16] - cbnz w10, .L618 - umull x3, w2, w9 - str w8, [x4,16] - add x3, x0, x3 - ldr x10, [x4] - str x10, [x3,8] - ldr x4, [x4,8] - str x4, [x3,16] - b .L619 -.L618: - add w3, w3, 1 - uxth w3, w3 - b .L621 -.L619: + b .L667 +.L663: add w2, w2, 1 - uxth w2, w2 - b .L617 -.L623: + and w2, w2, 65535 +.L667: + cmp w2, w5 + bcs .L664 + umaddl x4, w2, w7, x6 + ldr w10, [x4, 16] + cbnz w10, .L663 + umaddl x2, w3, w9, x0 + ldr x10, [x4] + str w8, [x4, 16] + str x10, [x2, 8] + ldr x4, [x4, 8] + str x4, [x2, 16] +.L664: + add w3, w3, 1 + and w3, w3, 65535 + b .L662 +.L661: ret .size FtlGcBufAlloc, .-FtlGcBufAlloc .align 2 @@ -4980,81 +4945,76 @@ FtlGcBufAlloc: .type IsBlkInGcList, %function IsBlkInGcList: adrp x1, .LANCHOR2 - uxth w0, w0 add x1, x1, :lo12:.LANCHOR2 - ldrh w2, [x1,1428] - ldr x3, [x1,1432] + and w0, w0, 65535 + ldrh w2, [x1, 1420] + ldr x3, [x1, 1424] mov x1, 0 -.L625: +.L669: cmp w2, w1, uxth - bls .L629 + bhi .L671 + mov w0, 0 + ret +.L671: add x1, x1, 1 add x4, x3, x1, lsl 1 - ldrh w4, [x4,-2] + ldrh w4, [x4, -2] cmp w4, w0 - bne .L625 + bne .L669 mov w0, 1 - b .L626 -.L629: - mov w0, 0 -.L626: ret .size IsBlkInGcList, .-IsBlkInGcList .align 2 .global FtlGcUpdatePage .type FtlGcUpdatePage, %function FtlGcUpdatePage: - stp x29, x30, [sp, -48]! + mov w5, w0 + mov w8, w1 + mov w7, w2 + stp x29, x30, [sp, -16]! + lsr w0, w0, 10 add x29, sp, 0 - str x19, [sp,16] - mov w19, w0 - lsr x0, x19, 10 - str x1, [x29,32] - str x2, [x29,40] bl P2V_block_in_plane + and w9, w0, 65535 adrp x3, .LANCHOR2 - ldr x2, [x29,40] add x4, x3, :lo12:.LANCHOR2 - ldr x1, [x29,32] - uxth w8, w0 - mov x5, 0 - ldrh w7, [x4,1428] - ldr x6, [x4,1432] -.L631: - uxth w4, w5 - cmp w4, w7 - bcs .L635 - add x5, x5, 1 - add x9, x6, x5, lsl 1 - ldrh w9, [x9,-2] - cmp w9, w8 - bne .L631 -.L635: - cmp w4, w7 - bne .L633 - ubfiz x4, x4, 1, 16 - strh w0, [x6,x4] - add x0, x3, :lo12:.LANCHOR2 - ldrh w4, [x0,1428] - add w4, w4, 1 - strh w4, [x0,1428] -.L633: - add x3, x3, :lo12:.LANCHOR2 - mov w0, 12 - ldrh w4, [x3,1440] - ldr x5, [x3,1448] - umull x4, w4, w0 - add x5, x5, x4 - str w1, [x5,4] - ldr x1, [x3,1448] - add x0, x1, x4 - str w2, [x0,8] - str w19, [x1,x4] - ldrh w0, [x3,1440] + ldrh w1, [x4, 1420] + ldr x6, [x4, 1424] + mov x4, 0 +.L674: + and w2, w4, 65535 + cmp w2, w1 + bcc .L676 + bne .L675 + and x4, x4, 65535 + strh w0, [x6, x4, lsl 1] + add x4, x3, :lo12:.LANCHOR2 + ldrh w0, [x4, 1420] add w0, w0, 1 - strh w0, [x3,1440] - ldr x19, [sp,16] - ldp x29, x30, [sp], 48 + strh w0, [x4, 1420] + b .L675 +.L676: + add x4, x4, 1 + add x2, x6, x4, lsl 1 + ldrh w2, [x2, -2] + cmp w2, w9 + bne .L674 +.L675: + add x0, x3, :lo12:.LANCHOR2 + mov w1, 12 + ldrh w3, [x0, 1432] + ldr x4, [x0, 1440] + umull x3, w3, w1 + add x4, x4, x3 + str w8, [x4, 4] + ldr x1, [x0, 1440] + add x4, x1, x3 + str w7, [x4, 8] + str w5, [x1, x3] + ldrh w1, [x0, 1432] + add w1, w1, 1 + strh w1, [x0, 1432] + ldp x29, x30, [sp], 16 ret .size FtlGcUpdatePage, .-FtlGcUpdatePage .align 2 @@ -5063,54 +5023,54 @@ FtlGcUpdatePage: FtlGcRefreshOpenBlock: stp x29, x30, [sp, -32]! add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] adrp x19, .LANCHOR2 - uxth w20, w0 add x19, x19, :lo12:.LANCHOR2 - ldrh w0, [x19,1456] + and w20, w0, 65535 + ldrh w0, [x19, 1448] cmp w0, w20 - beq .L639 - ldrh w0, [x19,1458] + beq .L680 + ldrh w0, [x19, 1450] cmp w0, w20 - beq .L639 - ldrh w0, [x19,1460] + beq .L680 + ldrh w0, [x19, 1452] cmp w0, w20 - beq .L639 - ldrh w0, [x19,1462] + beq .L680 + ldrh w0, [x19, 1454] cmp w0, w20 - beq .L639 - adrp x0, .LC78 + beq .L680 mov w1, w20 + adrp x0, .LC78 add x0, x0, :lo12:.LC78 bl printk - ldrh w1, [x19,1456] + ldrh w1, [x19, 1448] mov w0, 65535 cmp w1, w0 - bne .L641 - strh w20, [x19,1456] - b .L639 -.L641: - ldrh w1, [x19,1458] - cmp w1, w0 - bne .L642 - strh w20, [x19,1458] - b .L639 -.L642: - ldrh w1, [x19,1460] - cmp w1, w0 - bne .L643 - strh w20, [x19,1460] - b .L639 -.L643: - ldrh w1, [x19,1462] - cmp w1, w0 - bne .L639 - strh w20, [x19,1462] -.L639: + bne .L682 + strh w20, [x19, 1448] +.L680: mov w0, 0 - ldp x19, x20, [sp,16] + ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 32 ret +.L682: + ldrh w1, [x19, 1450] + cmp w1, w0 + bne .L683 + strh w20, [x19, 1450] + b .L680 +.L683: + ldrh w1, [x19, 1452] + cmp w1, w0 + bne .L684 + strh w20, [x19, 1452] + b .L680 +.L684: + ldrh w1, [x19, 1454] + cmp w1, w0 + bne .L680 + strh w20, [x19, 1454] + b .L680 .size FtlGcRefreshOpenBlock, .-FtlGcRefreshOpenBlock .align 2 .global FtlGcRefreshBlock @@ -5118,60 +5078,63 @@ FtlGcRefreshOpenBlock: FtlGcRefreshBlock: stp x29, x30, [sp, -48]! add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] adrp x19, .LANCHOR2 - uxth w20, w0 add x19, x19, :lo12:.LANCHOR2 - str x21, [sp,32] + and w20, w0, 65535 + str x21, [sp, 32] + ldrh w0, [x19, 1448] + cmp w0, w20 + beq .L693 + ldrh w0, [x19, 1450] + cmp w0, w20 + beq .L693 + ldrh w0, [x19, 1452] + cmp w0, w20 + beq .L693 + ldrh w0, [x19, 1454] mov w21, 0 - ldrh w0, [x19,1456] cmp w0, w20 - beq .L645 - ldrh w0, [x19,1458] - cmp w0, w20 - beq .L645 - ldrh w0, [x19,1460] - cmp w0, w20 - beq .L645 - ldrh w0, [x19,1462] - cmp w0, w20 - beq .L645 - adrp x0, .LC78 + beq .L686 mov w1, w20 + adrp x0, .LC78 add x0, x0, :lo12:.LC78 bl printk - ldrh w1, [x19,1456] + ldrh w1, [x19, 1448] mov w0, 65535 cmp w1, w0 - bne .L646 - strh w20, [x19,1456] - b .L645 -.L646: - ldrh w1, [x19,1458] - cmp w1, w0 - bne .L647 - strh w20, [x19,1458] - b .L645 -.L647: - ldrh w1, [x19,1460] - cmp w1, w0 - bne .L648 - strh w20, [x19,1460] - b .L645 -.L648: - ldrh w1, [x19,1462] - cmp w1, w0 - bne .L653 - strh w20, [x19,1462] - b .L645 -.L653: - mov w21, -1 -.L645: + bne .L688 + strh w20, [x19, 1448] +.L686: mov w0, w21 - ldr x21, [sp,32] - ldp x19, x20, [sp,16] + ldr x21, [sp, 32] + ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 48 ret +.L688: + ldrh w1, [x19, 1450] + cmp w1, w0 + bne .L689 + strh w20, [x19, 1450] + b .L686 +.L689: + ldrh w1, [x19, 1452] + cmp w1, w0 + bne .L690 + strh w20, [x19, 1452] + b .L686 +.L690: + ldrh w1, [x19, 1454] + cmp w1, w0 + bne .L695 + strh w20, [x19, 1454] + b .L686 +.L693: + mov w21, 0 + b .L686 +.L695: + mov w21, -1 + b .L686 .size FtlGcRefreshBlock, .-FtlGcRefreshBlock .align 2 .global FtlGcMarkBadPhyBlk @@ -5179,59 +5142,59 @@ FtlGcRefreshBlock: FtlGcMarkBadPhyBlk: stp x29, x30, [sp, -64]! add x29, sp, 0 - stp x19, x20, [sp,16] - uxth w20, w0 + stp x19, x20, [sp, 16] adrp x19, .LANCHOR2 - stp x21, x22, [sp,32] - mov w0, w20 + stp x21, x22, [sp, 32] add x22, x19, :lo12:.LANCHOR2 - str x23, [sp,48] + and w20, w0, 65535 + str x23, [sp, 48] + mov w0, w20 bl P2V_block_in_plane - uxth w21, w0 - ldrh w1, [x22,1464] - adrp x0, .LC79 + ldrh w1, [x22, 1456] mov w2, w20 + and w21, w0, 65535 + adrp x0, .LC79 add x0, x0, :lo12:.LC79 bl printk mov w0, w21 bl FtlGcRefreshBlock adrp x0, .LANCHOR0+2372 - ldr w0, [x0,#:lo12:.LANCHOR0+2372] - cbz w0, .L655 + ldr w0, [x0, #:lo12:.LANCHOR0+2372] + cbz w0, .L698 + ldr x2, [x22, 440] ubfiz x0, x21, 1, 16 - ldr x2, [x22,440] - ldrh w1, [x2,x0] + ldrh w1, [x2, x0] cmp w1, 39 - bls .L655 + bls .L698 sub w1, w1, #40 - strh w1, [x2,x0] -.L655: + strh w1, [x2, x0] +.L698: add x2, x19, :lo12:.LANCHOR2 - mov x0, 0 - add x2, x2, 1472 - ldrh w1, [x2,-8] -.L656: - cmp w1, w0, uxth - bls .L662 - add x0, x0, 1 - add x3, x2, x0, lsl 1 - ldrh w3, [x3,-2] - cmp w3, w20 - bne .L656 - b .L657 -.L662: - cmp w1, 15 - bhi .L657 + mov x1, 0 + add x2, x2, 1464 + ldrh w0, [x2, -8] +.L699: + cmp w0, w1, uxth + bhi .L701 + cmp w0, 15 + bhi .L700 add x19, x19, :lo12:.LANCHOR2 - add w0, w1, 1 - add x19, x19, 1472 - strh w0, [x19,-8] - strh w20, [x19,w1,sxtw 1] -.L657: + add w1, w0, 1 + add x19, x19, 1464 + strh w1, [x19, -8] + strh w20, [x19, w0, sxtw 1] + b .L700 +.L701: + add x1, x1, 1 + add x3, x2, x1, lsl 1 + ldrh w3, [x3, -2] + cmp w3, w20 + bne .L699 +.L700: mov w0, 0 - ldr x23, [sp,48] - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] + ldr x23, [sp, 48] + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] ldp x29, x30, [sp], 64 ret .size FtlGcMarkBadPhyBlk, .-FtlGcMarkBadPhyBlk @@ -5241,32 +5204,32 @@ FtlGcMarkBadPhyBlk: FtlGcReFreshBadBlk: stp x29, x30, [sp, -32]! add x29, sp, 0 - str x19, [sp,16] + str x19, [sp, 16] adrp x19, .LANCHOR2 add x0, x19, :lo12:.LANCHOR2 - ldrh w1, [x0,1464] - cbz w1, .L664 - ldrh w3, [x0,1456] + ldrh w1, [x0, 1456] + cbz w1, .L707 + ldrh w3, [x0, 1448] mov w2, 65535 cmp w3, w2 - bne .L664 - ldrh w2, [x0,1506] + bne .L707 + ldrh w2, [x0, 1498] cmp w2, w1 - bcc .L665 - strh wzr, [x0,1506] -.L665: + bcc .L708 + strh wzr, [x0, 1498] +.L708: add x19, x19, :lo12:.LANCHOR2 - add x0, x19, 1472 - ldrh w1, [x19,1506] - ldrh w0, [x0,w1,sxtw 1] + add x0, x19, 1464 + ldrh w1, [x19, 1498] + ldrh w0, [x0, x1, lsl 1] bl P2V_block_in_plane bl FtlGcRefreshBlock - ldrh w0, [x19,1506] + ldrh w0, [x19, 1498] add w0, w0, 1 - strh w0, [x19,1506] -.L664: + strh w0, [x19, 1498] +.L707: mov w0, 0 - ldr x19, [sp,16] + ldr x19, [sp, 16] ldp x29, x30, [sp], 32 ret .size FtlGcReFreshBadBlk, .-FtlGcReFreshBadBlk @@ -5287,448 +5250,423 @@ ftl_memset: BuildFlashLsbPageTable: stp x29, x30, [sp, -32]! add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] mov w20, w1 - cbnz w0, .L671 + cbnz w0, .L716 adrp x1, .LANCHOR0 - mov x0, 0 add x1, x1, :lo12:.LANCHOR0 -.L672: - add x2, x1, 208 - strh w0, [x2,x0,lsl 1] + add x1, x1, 208 + mov x0, 0 +.L717: + strh w0, [x1, x0, lsl 1] add x0, x0, 1 cmp x0, 512 - bne .L672 -.L678: + bne .L717 +.L723: adrp x19, .LANCHOR2 - mov w1, 255 add x19, x19, :lo12:.LANCHOR2 + add x19, x19, 1500 + mov w1, 255 mov w2, 2048 - add x19, x19, 1508 - uxth w20, w20 mov x0, x19 bl ftl_memset - adrp x1, .LANCHOR0 - mov x0, 0 - add x1, x1, :lo12:.LANCHOR0 - b .L673 -.L671: + and w20, w20, 65535 + adrp x0, .LANCHOR0 + add x0, x0, :lo12:.LANCHOR0 + add x0, x0, 208 + mov x1, 0 +.L718: + cmp w20, w1, uxth + bhi .L751 + ldp x19, x20, [sp, 16] + ldp x29, x30, [sp], 32 + ret +.L716: cmp w0, 1 - bne .L674 - adrp x3, .LANCHOR0 - mov x0, 0 - mov w4, 3 - mov w5, 2 - add x3, x3, :lo12:.LANCHOR0 -.L677: - cmp x0, 3 - uxth w2, w0 - mov w1, w2 - bls .L675 - ubfiz w1, w2, 1, 15 - and w2, w2, 1 - cmp w2, wzr - csel w2, w4, w5, ne - sub w1, w1, w2 - uxth w1, w1 -.L675: - add x2, x3, 208 - strh w1, [x2,x0,lsl 1] - add x0, x0, 1 - cmp x0, 512 - bne .L677 - b .L678 -.L674: + bne .L719 + adrp x2, .LANCHOR0 + add x2, x2, :lo12:.LANCHOR0 + add x2, x2, 208 + mov x1, 0 +.L722: + and w0, w1, 65535 + cmp x1, 3 + bls .L720 + ubfiz w3, w0, 1, 15 + and w0, w0, 1 + add w0, w0, 2 + sub w0, w3, w0 + and w0, w0, 65535 +.L720: + strh w0, [x2, x1, lsl 1] + add x1, x1, 1 + cmp x1, 512 + bne .L722 + b .L723 +.L719: cmp w0, 2 - bne .L679 - adrp x3, .LANCHOR0 + bne .L724 + adrp x2, .LANCHOR0 + add x2, x2, :lo12:.LANCHOR0 + add x2, x2, 208 mov w1, 65535 mov x0, 0 - add x3, x3, :lo12:.LANCHOR0 -.L681: - add x4, x3, 208 - cmp x0, 1 - uxth w2, w0 - csel w2, w1, w2, hi +.L726: + cmp x0, 2 + and w3, w0, 65535 + csel w3, w3, w1, cc + strh w3, [x2, x0, lsl 1] add w1, w1, 2 - strh w2, [x4,x0,lsl 1] add x0, x0, 1 + and w1, w1, 65535 cmp x0, 512 - uxth w1, w1 - bne .L681 - b .L678 -.L679: + bne .L726 + b .L723 +.L724: cmp w0, 3 - bne .L682 - adrp x3, .LANCHOR0 - mov x0, 0 - mov w4, 5 - mov w5, 4 - add x3, x3, :lo12:.LANCHOR0 -.L685: - cmp x0, 5 - uxth w2, w0 - mov w1, w2 - bls .L683 - ubfiz w1, w2, 1, 15 - and w2, w2, 1 - cmp w2, wzr - csel w2, w4, w5, ne - sub w1, w1, w2 - uxth w1, w1 -.L683: - add x2, x3, 208 - strh w1, [x2,x0,lsl 1] - add x0, x0, 1 - cmp x0, 512 - bne .L685 - b .L678 -.L682: - cmp w0, 4 - bne .L686 - adrp x1, .LANCHOR0 - mov w5, 7 - add x1, x1, :lo12:.LANCHOR0 - mov w4, 6 - add x2, x1, 208 - strh w0, [x2,8] - mov w0, 5 - strh wzr, [x1,208] - mov w1, 1 - strh w0, [x2,10] - mov w0, 7 - strh w1, [x2,2] - mov w1, 2 - strh w0, [x2,12] - mov w0, 8 - strh w1, [x2,4] - mov w1, 3 - strh w0, [x2,14] - mov w0, 8 - strh w1, [x2,6] -.L688: - and w3, w0, 1 - ubfiz w1, w0, 1, 15 - add w0, w0, 1 - cmp w3, wzr - csel w3, w5, w4, ne - add x2, x2, 2 - uxth w0, w0 - sub w1, w1, w3 - cmp w0, 512 - strh w1, [x2,14] - bne .L688 - b .L678 -.L686: - cmp w0, 5 - bne .L689 + bne .L727 adrp x2, .LANCHOR0 - mov x0, 0 add x2, x2, :lo12:.LANCHOR0 -.L690: - add x1, x2, 208 - strh w0, [x1,x0,lsl 1] + add x2, x2, 208 + mov x1, 0 +.L730: + and w0, w1, 65535 + cmp x1, 5 + bls .L728 + ubfiz w3, w0, 1, 15 + and w0, w0, 1 + add w0, w0, 4 + sub w0, w3, w0 + and w0, w0, 65535 +.L728: + strh w0, [x2, x1, lsl 1] + add x1, x1, 1 + cmp x1, 512 + bne .L730 + b .L723 +.L727: + cmp w0, 4 + bne .L731 + adrp x1, .LANCHOR0 + add x1, x1, :lo12:.LANCHOR0 + mov w3, 1 + add x1, x1, 224 + strh w0, [x1, -8] + mov w0, 5 + strh w3, [x1, -14] + mov w3, 2 + strh w0, [x1, -6] + mov w0, 7 + strh w3, [x1, -12] + mov w3, 3 + strh w0, [x1, -4] + mov w0, 8 + strh wzr, [x1, -16] + strh w0, [x1, -2] + mov w0, 8 + strh w3, [x1, -10] +.L733: + and w3, w0, 1 + ubfiz w2, w0, 1, 15 + add w3, w3, 6 + add w0, w0, 1 + sub w2, w2, w3 + strh w2, [x1], 2 + and w0, w0, 65535 + cmp w0, 512 + bne .L733 + b .L723 +.L731: + cmp w0, 5 + bne .L734 + adrp x1, .LANCHOR0 + add x1, x1, :lo12:.LANCHOR0 + add x2, x1, 208 + mov x0, 0 +.L735: + strh w0, [x2, x0, lsl 1] add x0, x0, 1 cmp x0, 16 - bne .L690 - mov x0, 0 -.L691: - add x2, x1, x0 - add w3, w0, 16 - add x0, x0, 2 - cmp x0, 992 - strh w3, [x2,32] - bne .L691 - b .L678 -.L689: + bne .L735 + add x1, x1, 240 +.L736: + strh w0, [x1], 2 + add w0, w0, 2 + and w0, w0, 65535 + cmp w0, 1008 + bne .L736 + b .L723 +.L734: cmp w0, 6 - bne .L692 - adrp x1, .LANCHOR0 + bne .L737 + adrp x3, .LANCHOR0 + add x3, x3, :lo12:.LANCHOR0 + add x3, x3, 208 + mov w1, 0 mov x2, 0 mov w4, 12 mov w5, 10 - add x1, x1, :lo12:.LANCHOR0 -.L695: +.L740: + and w0, w2, 65535 cmp x2, 5 - uxth w3, w2 - mov w0, w3 - bls .L693 - add w0, w3, w3, lsl 1 - and w3, w3, 1 - cmp w3, wzr - uxth w0, w0 - csel w3, w4, w5, ne - sub w0, w0, w3 - uxth w0, w0 -.L693: - add x3, x1, 208 - strh w0, [x3,x2,lsl 1] + bls .L738 + tst x0, 1 + csel w0, w4, w5, ne + sub w0, w1, w0 + and w0, w0, 65535 +.L738: + strh w0, [x3, x2, lsl 1] + add w1, w1, 3 + and w1, w1, 65535 add x2, x2, 1 - cmp x2, 512 - bne .L695 - b .L678 -.L692: + cmp w1, 1536 + bne .L740 + b .L723 +.L737: cmp w0, 9 - bne .L696 + bne .L741 adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 - add x1, x0, 208 - strh wzr, [x0,208] - mov w0, 1 - strh w0, [x1,2] - mov w0, 2 - strh w0, [x1,4] - mov x0, 0 -.L697: - add x2, x1, x0 - add w3, w0, 3 - add x0, x0, 2 - cmp x0, 1018 - strh w3, [x2,6] - bne .L697 - b .L678 -.L696: + mov w2, 1 + add x0, x0, 214 + mov w1, 3 + strh w2, [x0, -4] + mov w2, 2 + strh wzr, [x0, -6] + strh w2, [x0, -2] +.L742: + strh w1, [x0], 2 + add w1, w1, 2 + and w1, w1, 65535 + cmp w1, 1021 + bne .L742 + b .L723 +.L741: cmp w0, 10 - bne .L698 - adrp x2, .LANCHOR0 + bne .L743 + adrp x1, .LANCHOR0 + add x1, x1, :lo12:.LANCHOR0 + add x2, x1, 208 mov x0, 0 - add x2, x2, :lo12:.LANCHOR0 -.L699: - add x1, x2, 208 - strh w0, [x1,x0,lsl 1] +.L744: + strh w0, [x2, x0, lsl 1] add x0, x0, 1 cmp x0, 63 - bne .L699 - mov x0, 0 -.L700: - add x2, x1, x0 - add w3, w0, 63 - add x0, x0, 2 - cmp x0, 898 - strh w3, [x2,126] - bne .L700 - b .L678 -.L698: + bne .L744 + add x1, x1, 334 +.L745: + strh w0, [x1], 2 + add w0, w0, 2 + and w0, w0, 65535 + cmp w0, 961 + bne .L745 + b .L723 +.L743: cmp w0, 11 - bne .L701 + bne .L746 adrp x1, .LANCHOR0 - mov x0, 0 add x1, x1, :lo12:.LANCHOR0 -.L702: add x2, x1, 208 - strh w0, [x2,x0,lsl 1] + mov x0, 0 +.L747: + strh w0, [x2, x0, lsl 1] add x0, x0, 1 cmp x0, 8 - bne .L702 - mov w5, 7 - mov w4, 6 -.L704: + bne .L747 + add x1, x1, 224 +.L749: and w3, w0, 1 - ubfiz w1, w0, 1, 15 + ubfiz w2, w0, 1, 15 + add w3, w3, 6 add w0, w0, 1 - cmp w3, wzr - csel w3, w5, w4, ne - add x2, x2, 2 - uxth w0, w0 - sub w1, w1, w3 + sub w2, w2, w3 + strh w2, [x1], 2 + and w0, w0, 65535 cmp w0, 512 - strh w1, [x2,14] - bne .L704 - b .L678 -.L701: + bne .L749 + b .L723 +.L746: cmp w0, 12 - bne .L678 - adrp x1, .LANCHOR0 - mov w2, 4 - add x1, x1, :lo12:.LANCHOR0 - add x0, x1, 208 - strh wzr, [x1,208] - mov w1, 1 - strh w1, [x0,2] - mov w1, 2 - strh w1, [x0,4] - mov w1, 3 - strh w1, [x0,6] -.L705: - sub w1, w2, #1 - add x0, x0, 2 - add w1, w1, w2, lsr 1 - add w2, w2, 1 - strh w1, [x0,6] - uxth w2, w2 - cmp w2, 512 - bne .L705 - b .L678 -.L673: - cmp w20, w0, uxth - bls .L730 - add x2, x1, 208 - ldrh w2, [x2,x0,lsl 1] - add x0, x0, 1 - strh w2, [x19,w2,sxtw 1] - b .L673 -.L730: - ldp x19, x20, [sp,16] - ldp x29, x30, [sp], 32 - ret + bne .L723 + adrp x0, .LANCHOR0 + add x0, x0, :lo12:.LANCHOR0 + mov w2, 1 + add x0, x0, 216 + mov w1, 4 + strh w2, [x0, -6] + mov w2, 2 + strh wzr, [x0, -8] + strh w2, [x0, -4] + mov w2, 3 + strh w2, [x0, -2] +.L750: + sub w2, w1, #1 + add w2, w2, w1, lsr 1 + add w1, w1, 1 + strh w2, [x0], 2 + and w1, w1, 65535 + cmp w1, 512 + bne .L750 + b .L723 +.L751: + ldrh w2, [x0, x1, lsl 1] + add x1, x1, 1 + strh w2, [x19, w2, sxtw 1] + b .L718 .size BuildFlashLsbPageTable, .-BuildFlashLsbPageTable .align 2 .global FlashDieInfoInit .type FlashDieInfoInit, %function FlashDieInfoInit: - stp x29, x30, [sp, -80]! + stp x29, x30, [sp, -48]! add x29, sp, 0 - stp x21, x22, [sp,32] - adrp x22, .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, [x0,3556] + stp x21, x22, [sp, 32] + adrp x21, .LANCHOR2 + add x0, x21, :lo12:.LANCHOR2 + stp x19, x20, [sp, 16] + adrp x22, .LANCHOR0 + add x19, x22, :lo12:.LANCHOR0 + add x20, x19, 1232 + strb wzr, [x0, 3548] adrp x0, .LANCHOR1+482 - add x19, x21, :lo12:.LANCHOR0 - mov x24, 0 - add x25, x19, 2132 - ldrh w0, [x0,#:lo12:.LANCHOR1+482] - strb wzr, [x19,2358] + strb wzr, [x19, 2358] + ldrh w0, [x0, #:lo12:.LANCHOR1+482] bl FlashBlockAlignInit - mov w1, 0 mov w2, 8 + mov w1, 0 add x0, x19, 2360 bl ftl_memset - mov w1, 0 mov w2, 32 - add x0, x19, 1232 - bl ftl_memset - add x0, x19, 2164 mov w1, 0 - mov w2, 192 + mov x0, x20 bl ftl_memset - ldr x20, [x19,88] - add x23, x20, 1 -.L733: - ldrb w2, [x20] - mov x0, x23 - add x1, x25, x24, lsl 3 + mov w2, 192 + mov w1, 0 + add x0, x19, 2164 + bl ftl_memset + ldr x7, [x19, 88] + add x11, x19, 2132 + mov x8, 0 + add x12, x7, 1 +.L775: + ldrb w2, [x7] + add x1, x11, x8, lsl 3 + mov x0, x12 bl FlashMemCmp8 - cbnz w0, .L732 - ldrb w1, [x19,2358] - add x2, x19, 1232 - str w0, [x2,w1,sxtw 2] - add w0, w1, 1 - add x1, x19, w1, sxtw - strb w0, [x19,2358] - strb w24, [x1,2360] -.L732: - add x24, x24, 1 - cmp x24, 4 - bne .L733 - add x19, x21, :lo12:.LANCHOR0 - add x0, x22, :lo12:.LANCHOR2 - ldrb w1, [x19,2358] - strb w1, [x0,3556] - ldrb w0, [x20,8] + cbnz w0, .L774 + ldrb w0, [x19, 2358] + add w1, w0, 1 + strb w1, [x19, 2358] + str wzr, [x20, x0, lsl 2] + add x0, x19, x0 + strb w8, [x0, 2360] +.L774: + add x8, x8, 1 + cmp x8, 4 + bne .L775 + add x8, x22, :lo12:.LANCHOR0 + add x0, x21, :lo12:.LANCHOR2 + ldrb w1, [x8, 2358] + strb w1, [x0, 3548] + ldrb w0, [x7, 8] cmp w0, 2 - beq .L734 -.L738: - add x21, x21, :lo12:.LANCHOR0 - ldrb w1, [x20,13] - add x22, x22, :lo12:.LANCHOR2 - ldp x23, x24, [sp,48] - ldrb w0, [x21,2358] - ldp x25, x26, [sp,64] + beq .L776 +.L780: + add x9, x22, :lo12:.LANCHOR0 + ldrh w1, [x7, 14] + add x10, x21, :lo12:.LANCHOR2 + ldp x19, x20, [sp, 16] + ldrb w0, [x9, 2358] + ldp x21, x22, [sp, 32] + ldp x29, x30, [sp], 48 mul w0, w0, w1 - ldrh w1, [x20,14] - ldp x19, x20, [sp,16] + ldrb w1, [x7, 13] mul w0, w0, w1 - strh w0, [x22,3558] - ldp x21, x22, [sp,32] - ldp x29, x30, [sp], 80 + strh w0, [x10, 3550] ret -.L734: - ldr w25, [x19,76] - mov x24, 0 - add x26, x19, 2132 -.L737: - ldrb w2, [x20] - mov x0, x23 - add x1, x26, x24, lsl 3 +.L776: + ldr w14, [x8, 76] + add x15, x8, 2132 + add x13, x8, 1232 + mov x11, 0 +.L779: + ldrb w2, [x7] + add x1, x15, x11, lsl 3 + mov x0, x12 bl FlashMemCmp8 - cbnz w0, .L735 - ldrb w1, [x20,13] - add x4, x19, 1232 - ldrb w3, [x19,2358] - mul w0, w1, w25 - ldrh w1, [x20,14] - mov x2, x3 - and w1, w1, 65280 - mul w1, w0, w1 - str w1, [x4,w3,sxtw 2] - ldrb w0, [x20,23] - cbz w0, .L736 - lsl w1, w1, 1 - str w1, [x4,w3,sxtw 2] -.L736: - add x0, x19, x3 + cbnz w0, .L777 + ldrb w1, [x7, 13] + ldrh w0, [x7, 14] + ldrb w2, [x8, 2358] + and w0, w0, 65280 + mul w1, w1, w14 + mul w0, w0, w1 + sxtw x1, w2 + str w0, [x13, x1, lsl 2] + ldrb w3, [x7, 23] + cbz w3, .L778 + lsl w0, w0, 1 + str w0, [x13, x1, lsl 2] +.L778: + add x1, x8, x1 add w2, w2, 1 - strb w2, [x19,2358] - strb w24, [x0,2360] -.L735: - add x24, x24, 1 - cmp x24, 4 - bne .L737 - b .L738 + strb w2, [x8, 2358] + strb w11, [x1, 2360] +.L777: + add x11, x11, 1 + cmp x11, 4 + bne .L779 + b .L780 .size FlashDieInfoInit, .-FlashDieInfoInit .align 2 .global ftl_read_flash_info .type ftl_read_flash_info, %function ftl_read_flash_info: stp x29, x30, [sp, -32]! - mov w1, 0 mov w2, 11 + mov w1, 0 add x29, sp, 0 - str x19, [sp,16] + str x19, [sp, 16] mov x19, x0 bl ftl_memset - adrp x1, .LANCHOR0 - mov w5, 1 - add x1, x1, :lo12:.LANCHOR0 - ldr x0, [x1,88] - ldrb w2, [x0,9] - ldr w0, [x1,76] - mul w0, w0, w2 - strh w0, [x19,4] - ldrb w0, [x1,2464] - strb w0, [x19,7] - ldr w0, [x1,2584] - str w0, [x19] - ldr x0, [x1,88] - ldrb w4, [x1,2358] - ldrb w0, [x0,9] - strb w0, [x19,6] - mov w0, 32 - strb w0, [x19,8] - ldr x0, [x1,88] - ldrb w0, [x0,7] - strb w0, [x19,9] - mov x0, 0 - strb wzr, [x19,10] -.L746: - cmp w4, w0, uxtb - bls .L748 - add x2, x1, 2360 - ldrb w3, [x19,10] - ldrb w2, [x0,x2] - add x0, x0, 1 - lsl w2, w5, w2 - orr w2, w2, w3 - strb w2, [x19,10] - b .L746 -.L748: - ldr x19, [sp,16] + adrp x0, .LANCHOR0 + add x0, x0, :lo12:.LANCHOR0 + mov w4, 1 + ldr x1, [x0, 88] + ldrb w2, [x1, 9] + ldr w1, [x0, 76] + mul w1, w1, w2 + mov x2, 0 + strh w1, [x19, 4] + ldrb w1, [x0, 2464] + strb w1, [x19, 7] + ldr w1, [x0, 2584] + str w1, [x19] + ldr x1, [x0, 88] + ldrb w3, [x0, 2358] + ldrb w1, [x1, 9] + strb w1, [x19, 6] + mov w1, 32 + strb w1, [x19, 8] + ldr x1, [x0, 88] + add x0, x0, 2360 + ldrb w1, [x1, 7] + strb w1, [x19, 9] + strb wzr, [x19, 10] +.L789: + cmp w3, w2, uxtb + bhi .L790 + ldr x19, [sp, 16] ldp x29, x30, [sp], 32 ret +.L790: + ldrb w1, [x2, x0] + add x2, x2, 1 + ldrb w5, [x19, 10] + lsl w1, w4, w1 + orr w1, w1, w5 + strb w1, [x19, 10] + b .L789 .size ftl_read_flash_info, .-ftl_read_flash_info .align 2 .global FtlMemInit @@ -5736,351 +5674,353 @@ ftl_read_flash_info: FtlMemInit: stp x29, x30, [sp, -80]! mov w1, 65535 + mov w2, 1024 add x29, sp, 0 - stp x21, x22, [sp,32] + stp x21, x22, [sp, 32] adrp x21, .LANCHOR2 - adrp x22, .LANCHOR0 add x0, x21, :lo12:.LANCHOR2 - str x25, [sp,64] - stp x19, x20, [sp,16] - stp x23, x24, [sp,48] - add x3, x22, :lo12:.LANCHOR0 - str w1, [x0,3572] - strh wzr, [x0,3560] + stp x19, x20, [sp, 16] + add x3, x0, 512 + stp x23, x24, [sp, 48] + str x25, [sp, 64] + add x4, x0, 512 + strh wzr, [x0, 3552] + add x5, x0, 3328 + str wzr, [x0, 448] + adrp x22, .LANCHOR0 + stp wzr, wzr, [x3, 208] + stp wzr, wzr, [x3, 216] + str wzr, [x0, 736] + str wzr, [x0, 740] + stp wzr, wzr, [x4, 240] + stp wzr, wzr, [x4, 248] + str wzr, [x0, 772] + str wzr, [x0, 776] + str wzr, [x0, 1360] + str wzr, [x0, 1368] + str wzr, [x0, 1376] + stp w1, wzr, [x5, 236] mov w1, -1 - str wzr, [x0,3564] - strh w1, [x0,1456] - str wzr, [x0,848] - str wzr, [x0,752] - str wzr, [x0,756] - str wzr, [x0,740] - str wzr, [x0,728] - str wzr, [x0,724] - str wzr, [x0,732] - str wzr, [x0,736] - str wzr, [x0,720] - str wzr, [x0,760] - str wzr, [x0,764] - str wzr, [x0,448] - str wzr, [x0,772] - str wzr, [x0,776] - str wzr, [x0,3568] - str wzr, [x0,1380] - str wzr, [x0,3576] - str wzr, [x0,1372] - str wzr, [x0,3580] - strh w1, [x0,1458] - strh w1, [x0,1460] - strh w1, [x0,1462] + stp wzr, wzr, [x5, 228] + str wzr, [x0, 3572] + strh w1, [x0, 1448] + strh w1, [x0, 1450] + strh w1, [x0, 1452] + strh w1, [x0, 1454] mov w1, 32 - ldrh w2, [x3,2550] - strh w1, [x0,1368] + strh w1, [x0, 1364] mov w1, 128 - strh w1, [x0,1370] - mov w1, 1024 - strh wzr, [x0,1376] - sdiv w2, w1, w2 - ldrh w1, [x3,2472] - strh wzr, [x0,1464] + strh w1, [x0, 1366] + add x1, x22, :lo12:.LANCHOR0 + strh wzr, [x0, 1372] + strh wzr, [x0, 1456] + ldrh w3, [x1, 2550] + ldrh w1, [x1, 2472] + strh wzr, [x0, 3576] + strh wzr, [x0, 1498] + sdiv w2, w2, w3 lsl w1, w1, 2 - strh wzr, [x0,3584] - strh wzr, [x0,1506] + str w2, [x0, 3580] cmp w2, w1 - str w2, [x0,3588] - bls .L750 - str w1, [x0,3588] -.L750: + bls .L793 + str w1, [x0, 3580] +.L793: add x20, x22, :lo12:.LANCHOR0 add x19, x21, :lo12:.LANCHOR2 mov w24, 56 - ldrh w0, [x20,2548] - str wzr, [x20,2600] + ldrh w0, [x20, 2548] + str wzr, [x20, 2600] lsl w0, w0, 1 bl ftl_malloc - str x0, [x19,1432] - ldrh w1, [x20,2548] + ldrh w1, [x20, 2548] + str x0, [x19, 1424] mov w0, 12 mul w0, w1, w0 bl ftl_malloc - ldrh w23, [x20,2472] - str x0, [x19,1448] + ldrh w23, [x20, 2472] + str x0, [x19, 1440] mul w23, w23, w24 lsl w25, w23, 3 mov w0, w25 bl ftl_malloc - str x0, [x19,3592] + str x0, [x19, 3584] mov w0, w23 bl ftl_malloc - str x0, [x19,3600] + str x0, [x19, 3592] mov w0, w25 bl ftl_malloc - str x0, [x19,3608] + str x0, [x19, 3600] mov w0, w23 bl ftl_malloc - str x0, [x19,432] + str x0, [x19, 432] mov w0, w23 bl ftl_malloc - str x0, [x19,1416] - ldr w0, [x19,3588] + str x0, [x19, 1408] + ldr w0, [x19, 3580] mul w0, w0, w24 bl ftl_malloc - str x0, [x20,2608] - ldrh w0, [x20,2472] - ldrh w23, [x20,2554] + str x0, [x20, 2608] + ldrh w0, [x20, 2472] + ldrh w23, [x20, 2554] lsl w0, w0, 1 add w0, w0, 1 - str w0, [x19,1424] + str w0, [x19, 1416] mov w0, w23 bl ftl_malloc - str x0, [x19,3616] + str x0, [x19, 3608] mov w0, w23 bl ftl_malloc - str x0, [x19,3624] + str x0, [x19, 3616] mov w0, w23 bl ftl_malloc - str x0, [x19,3632] - ldr w0, [x19,1424] + str x0, [x19, 3624] + ldr w0, [x19, 1416] mul w0, w23, w0 bl ftl_malloc - str x0, [x19,1400] - ldr w0, [x19,3588] + str x0, [x19, 1392] + ldr w0, [x19, 3580] mul w0, w23, w0 bl ftl_malloc - str x0, [x19,3640] + str x0, [x19, 3632] mov w0, w23 bl ftl_malloc - str x0, [x19,3648] + str x0, [x19, 3640] mov w0, w23 bl ftl_malloc - str x0, [x19,3656] - ldr w1, [x19,1424] + str x0, [x19, 3648] + ldr w1, [x19, 1416] mov w0, 24 mul w0, w1, w0 bl ftl_malloc - ldrh w23, [x20,2472] - str x0, [x19,1392] - ldrh w0, [x20,2556] - mul w23, w0, w23 + ldrh w23, [x20, 2556] + str x0, [x19, 1384] + ldrh w0, [x20, 2472] + mul w23, w23, w0 mov w0, w23 bl ftl_malloc - str x0, [x19,3664] + str x0, [x19, 3656] lsl w0, w23, 3 bl ftl_malloc - str x0, [x19,3672] - ldrh w1, [x20,2556] - ldr w0, [x19,1424] + str x0, [x19, 3664] + ldrh w1, [x20, 2556] + ldr w0, [x19, 1416] mul w0, w1, w0 bl ftl_malloc - str x0, [x19,1408] - ldrh w1, [x20,2556] - ldr w0, [x19,3588] + str x0, [x19, 1400] + ldrh w1, [x20, 2556] + ldr w0, [x19, 3580] mul w0, w1, w0 bl ftl_malloc - str x0, [x19,3680] - ldrh w0, [x20,2482] - lsl w0, w0, 1 - strh w0, [x19,3688] + str x0, [x19, 3672] + ldrh w0, [x20, 2482] + ubfiz w0, w0, 1, 15 + strh w0, [x19, 3680] and w0, w0, 65534 bl ftl_malloc - str x0, [x19,3696] - ldrh w0, [x19,3688] + str x0, [x19, 3688] + ldrh w0, [x19, 3680] add x0, x0, 547 lsr x0, x0, 9 - strh w0, [x19,3688] + strh w0, [x19, 3680] lsl w0, w0, 9 bl ftl_malloc - ldrh w23, [x20,2482] - str x0, [x19,3704] + ldrh w23, [x20, 2482] + str x0, [x19, 3696] add x0, x0, 32 - lsl w23, w23, 1 - str x0, [x19,440] - mov w0, w23 - bl ftl_malloc - str x0, [x19,3712] - mov w0, w23 - bl ftl_malloc - ldr w23, [x20,2572] - str x0, [x19,520] + str x0, [x19, 440] lsl w23, w23, 1 mov w0, w23 bl ftl_malloc - str x0, [x19,3720] + str x0, [x19, 3704] mov w0, w23 bl ftl_malloc - str x0, [x19,3728] - ldrh w0, [x20,2482] + ldr w23, [x20, 2572] + str x0, [x19, 520] + lsl w23, w23, 1 + mov w0, w23 + bl ftl_malloc + str x0, [x19, 3712] + mov w0, w23 + bl ftl_malloc + str x0, [x19, 3720] + ldrh w0, [x20, 2482] lsr w0, w0, 3 add w0, w0, 4 bl ftl_malloc - str x0, [x22,#:lo12:.LANCHOR0] - ldrh w0, [x20,2564] + str x0, [x20, 64] + ldrh w0, [x20, 2564] lsl w0, w0, 1 bl ftl_malloc - str x0, [x20,2592] - ldrh w0, [x20,2564] + str x0, [x20, 2592] + ldrh w0, [x20, 2564] lsl w0, w0, 1 bl ftl_malloc - str x0, [x19,3736] - ldrh w0, [x20,2564] + str x0, [x19, 3728] + ldrh w0, [x20, 2564] lsl w0, w0, 2 bl ftl_malloc - str x0, [x19,3744] - ldrh w0, [x20,2566] + str x0, [x19, 3736] + ldrh w0, [x20, 2566] lsl w0, w0, 2 bl ftl_malloc - str x0, [x19,3752] - ldrh w2, [x20,2566] + ldrh w2, [x20, 2566] mov w1, 0 + str x0, [x19, 3744] lsl w2, w2, 2 bl ftl_memset - ldrh w23, [x20,2580] + ldrh w23, [x20, 2580] lsl w23, w23, 2 mov w0, w23 bl ftl_malloc - str x0, [x19,3760] + str x0, [x19, 3752] mov w0, w23 bl ftl_malloc - str x0, [x19,3768] - ldr w0, [x20,2572] + str x0, [x19, 3760] + ldr w0, [x20, 2572] lsl w0, w0, 2 bl ftl_malloc - str x0, [x19,3776] - ldrh w0, [x20,2582] + str x0, [x19, 3768] + ldrh w0, [x20, 2582] lsl w0, w0, 4 bl ftl_malloc - str x0, [x19,704] - ldrh w1, [x20,2582] - ldrh w0, [x20,2554] + ldrh w1, [x20, 2582] + str x0, [x19, 704] + ldrh w0, [x20, 2554] mul w0, w1, w0 bl ftl_malloc - str x0, [x19,3784] - ldrh w1, [x20,2482] + str x0, [x19, 3776] + ldrh w1, [x20, 2482] mov w0, 6 mul w0, w1, w0 bl ftl_malloc - str x0, [x19,504] - ldrh w0, [x20,2542] - ldrh w1, [x20,2494] + str x0, [x19, 504] + ldrh w0, [x20, 2542] + ldrh w1, [x20, 2494] add w0, w0, 31 asr w0, w0, 5 - strh w0, [x19,3792] - mul w0, w0, w1 + strh w0, [x19, 3784] + mul w0, w1, w0 lsl w0, w0, 2 bl ftl_malloc - str x0, [x20,2656] - add x1, x20, 2624 - ldrh w4, [x19,3792] - ldrh w5, [x20,2494] - mov w0, 1 - mov w2, w4 -.L751: + ldrh w3, [x19, 3784] + add x4, x20, 2664 + ldrh w5, [x20, 2494] + mov w1, w3 + str x0, [x20, 2656] + mov x0, 1 +.L794: cmp w0, w5 - add x1, x1, 8 - bcs .L851 - ldr x3, [x20,2656] - add w0, w0, 1 - add x3, x3, w2, uxtw 2 - add w2, w2, w4 - str x3, [x1,32] - b .L751 -.L851: - add x1, x22, :lo12:.LANCHOR0 -.L753: - cmp w0, 8 - beq .L852 - add x2, x1, w0, uxtw 3 - add w0, w0, 1 - str xzr, [x2,2656] - b .L753 -.L852: + bcc .L795 + mov w1, 8 + add x3, x22, :lo12:.LANCHOR0 + sub w1, w1, w0 + add x3, x3, 2624 + add x1, x1, 1 + mov x2, 0 +.L796: + add x2, x2, 1 + cmp x2, x1 + bne .L797 add x0, x21, :lo12:.LANCHOR2 - ldr x1, [x0,3720] - cbnz x1, .L755 -.L757: - adrp x0, .LC80 + ldr x1, [x0, 3712] + cbnz x1, .L798 +.L800: adrp x1, .LANCHOR3 - add x0, x0, :lo12:.LC80 + adrp x0, .LC80 add x1, x1, :lo12:.LANCHOR3 + add x0, x0, :lo12:.LC80 bl printk mov w0, -1 - b .L756 -.L755: - ldr x1, [x0,3728] - cbz x1, .L757 - ldr x1, [x0,3760] - cbz x1, .L757 - ldr x1, [x0,3776] - cbz x1, .L757 - ldr x1, [x0,704] - cbz x1, .L757 - ldr x1, [x0,3784] - cbz x1, .L757 - ldr x1, [x0,504] - cbz x1, .L757 - add x22, x22, :lo12:.LANCHOR0 - ldr x1, [x22,2656] - cbz x1, .L757 - ldr x0, [x0,520] - cbz x0, .L757 - add x0, x21, :lo12:.LANCHOR2 - ldr x1, [x0,1432] - cbz x1, .L757 - ldr x1, [x0,1448] - cbz x1, .L757 - ldr x1, [x0,3592] - cbz x1, .L757 - ldr x1, [x0,3608] - cbz x1, .L757 - ldr x1, [x0,432] - cbz x1, .L757 - ldr x1, [x0,1416] - cbz x1, .L757 - ldr x1, [x0,3600] - cbz x1, .L757 - ldr x1, [x0,3616] - cbz x1, .L757 - ldr x1, [x0,3624] - cbz x1, .L757 - ldr x0, [x0,3632] - cbz x0, .L757 - add x0, x21, :lo12:.LANCHOR2 - ldr x1, [x0,1400] - cbz x1, .L757 - ldr x1, [x0,3648] - cbz x1, .L757 - ldr x1, [x0,3656] - cbz x1, .L757 - ldr x1, [x0,1392] - cbz x1, .L757 - ldr x1, [x0,3664] - cbz x1, .L757 - ldr x1, [x0,3672] - cbz x1, .L757 - ldr x1, [x0,1408] - cbz x1, .L757 - ldr x1, [x0,440] - cbz x1, .L757 - ldr x0, [x0,3696] - cbz x0, .L757 - adrp x0, .LANCHOR0+2592 - ldr x0, [x0,#:lo12:.LANCHOR0+2592] - cbz x0, .L757 - adrp x0, .LANCHOR2 - add x0, x0, :lo12:.LANCHOR2 - ldr x1, [x0,3736] - cbz x1, .L757 - ldr x1, [x0,3744] - cbz x1, .L757 - ldr x0, [x0,3752] - cbz x0, .L757 - mov w0, 0 -.L756: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldr x25, [sp,64] +.L792: + 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 +.L795: + ldr x2, [x20, 2656] + add w0, w0, 1 + add x2, x2, w1, uxtw 2 + add w1, w1, w3 + str x2, [x4], 8 + b .L794 +.L797: + add x4, x0, x2 + add x4, x3, x4, lsl 3 + str xzr, [x4, 24] + b .L796 +.L798: + ldr x1, [x0, 3720] + cbz x1, .L800 + ldr x1, [x0, 3752] + cbz x1, .L800 + ldr x1, [x0, 3768] + cbz x1, .L800 + ldr x1, [x0, 704] + cbz x1, .L800 + ldr x1, [x0, 3776] + cbz x1, .L800 + ldr x1, [x0, 504] + cbz x1, .L800 + add x22, x22, :lo12:.LANCHOR0 + ldr x1, [x22, 2656] + cbz x1, .L800 + ldr x0, [x0, 520] + cbz x0, .L800 + add x0, x21, :lo12:.LANCHOR2 + ldr x1, [x0, 1424] + cbz x1, .L800 + ldr x1, [x0, 1440] + cbz x1, .L800 + ldr x1, [x0, 3584] + cbz x1, .L800 + ldr x1, [x0, 3600] + cbz x1, .L800 + ldr x1, [x0, 432] + cbz x1, .L800 + ldr x1, [x0, 1408] + cbz x1, .L800 + ldr x1, [x0, 3592] + cbz x1, .L800 + ldr x1, [x0, 3608] + cbz x1, .L800 + ldr x1, [x0, 3616] + cbz x1, .L800 + ldr x0, [x0, 3624] + cbz x0, .L800 + add x0, x21, :lo12:.LANCHOR2 + ldr x1, [x0, 1392] + cbz x1, .L800 + ldr x1, [x0, 3640] + cbz x1, .L800 + ldr x1, [x0, 3648] + cbz x1, .L800 + ldr x1, [x0, 1384] + cbz x1, .L800 + ldr x1, [x0, 3656] + cbz x1, .L800 + ldr x1, [x0, 3664] + cbz x1, .L800 + ldr x1, [x0, 1400] + cbz x1, .L800 + ldr x1, [x0, 440] + cbz x1, .L800 + ldr x0, [x0, 3688] + cbz x0, .L800 + adrp x0, .LANCHOR0+2592 + ldr x0, [x0, #:lo12:.LANCHOR0+2592] + cbz x0, .L800 + adrp x0, .LANCHOR2 + add x0, x0, :lo12:.LANCHOR2 + ldr x1, [x0, 3728] + cbz x1, .L800 + ldr x1, [x0, 3736] + cbz x1, .L800 + ldr x0, [x0, 3744] + cbz x0, .L800 + mov w0, 0 + b .L792 .size FtlMemInit, .-FtlMemInit .align 2 .global FtlBbt2Bitmap @@ -6088,38 +6028,38 @@ FtlMemInit: FtlBbt2Bitmap: stp x29, x30, [sp, -32]! add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] mov x20, x0 - adrp x0, .LANCHOR2+3792 + adrp x0, .LANCHOR2+3784 mov x19, x1 - ldrh w2, [x0,#:lo12:.LANCHOR2+3792] - mov x0, x1 mov w1, 0 + ldrh w2, [x0, #:lo12:.LANCHOR2+3784] + mov x0, x19 lsl w2, w2, 2 bl ftl_memset - adrp x5, .LANCHOR0 - mov x3, 0 - mov w0, 65535 - mov w6, 1 - add x5, x5, :lo12:.LANCHOR0 -.L855: - ldrh w2, [x20,x3] - cmp w2, w0 - beq .L853 - ubfx x4, x2, 5, 11 - lsl w2, w6, w2 - lsl x4, x4, 2 - add x3, x3, 2 - cmp x3, 1024 - ldr w1, [x19,x4] - orr w2, w1, w2 - str w2, [x19,x4] - ldrh w2, [x5,2630] - add w2, w2, 1 - strh w2, [x5,2630] - bne .L855 -.L853: - ldp x19, x20, [sp,16] + adrp x3, .LANCHOR0 + add x3, x3, :lo12:.LANCHOR0 + mov x1, 0 + mov w6, 65535 + mov w5, 1 +.L897: + ldrh w0, [x20, x1] + cmp w0, w6 + beq .L895 + ubfx x2, x0, 5, 11 + lsl w0, w5, w0 + lsl x2, x2, 2 + add x1, x1, 2 + cmp x1, 1024 + ldr w4, [x19, x2] + orr w0, w4, w0 + str w0, [x19, x2] + ldrh w0, [x3, 2630] + add w0, w0, 1 + strh w0, [x3, 2630] + bne .L897 +.L895: + ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 32 ret .size FtlBbt2Bitmap, .-FtlBbt2Bitmap @@ -6127,16 +6067,16 @@ FtlBbt2Bitmap: .global FtlBbtMemInit .type FtlBbtMemInit, %function FtlBbtMemInit: - adrp x0, .LANCHOR0 - mov w1, -1 stp x29, x30, [sp, -16]! + adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 - mov w2, 16 + mov w1, -1 add x29, sp, 0 + mov w2, 16 add x0, x0, 2636 - strh w1, [x0,-12] + strh w1, [x0, -12] mov w1, 255 - strh wzr, [x0,-6] + strh wzr, [x0, -6] bl ftl_memset ldp x29, x30, [sp], 16 ret @@ -6145,17 +6085,17 @@ FtlBbtMemInit: .global FtlFreeSysBlkQueueInit .type FtlFreeSysBlkQueueInit, %function FtlFreeSysBlkQueueInit: - adrp x1, .LANCHOR0 - mov w2, 2048 stp x29, x30, [sp, -16]! - add x1, x1, :lo12:.LANCHOR0 + adrp x3, .LANCHOR0 + add x3, x3, :lo12:.LANCHOR0 + mov w2, 2048 add x29, sp, 0 - strh w0, [x1,2720] - add x0, x1, 2728 - strh wzr, [x1,2722] - strh wzr, [x1,2724] - strh wzr, [x1,2726] mov w1, 0 + strh w0, [x3, 2720] + add x0, x3, 2728 + strh wzr, [x3, 2722] + strh wzr, [x3, 2724] + strh wzr, [x3, 2726] bl ftl_memset mov w0, 0 ldp x29, x30, [sp], 16 @@ -6168,96 +6108,98 @@ ftl_free_no_use_map_blk: stp x29, x30, [sp, -80]! mov w1, 0 add x29, sp, 0 - stp x19, x20, [sp,16] - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - str x25, [sp,64] + stp x19, x20, [sp, 16] mov x19, x0 - ldrh w2, [x0,10] - ldr x21, [x0,32] - ldr x22, [x0,16] + stp x21, x22, [sp, 32] + stp x23, x24, [sp, 48] + str x25, [sp, 64] + ldrh w2, [x0, 10] + ldp x21, x20, [x0, 32] + ldr x22, [x0, 16] lsl w2, w2, 1 - ldr x20, [x0,40] mov x0, x21 bl ftl_memset mov w0, 0 -.L861: - ldrh w1, [x19,6] +.L906: + ldrh w1, [x19, 6] cmp w1, w0 - bls .L883 - ubfiz x1, x0, 2, 16 - ldr w2, [x20,x1] - mov w1, 0 - ubfx x2, x2, 10, 16 -.L862: - ldrh w3, [x19,10] - cmp w3, w1 - bls .L884 - ubfiz x3, x1, 1, 16 - ldrh w4, [x22,x3] - cmp w2, w4 - bne .L863 - cbz w4, .L863 - ldrh w4, [x21,x3] - add w4, w4, 1 - strh w4, [x21,x3] -.L863: - add w1, w1, 1 - uxth w1, w1 - b .L862 -.L884: - add w0, w0, 1 - uxth w0, w0 - b .L861 -.L883: + bhi .L910 adrp x0, .LANCHOR0+2546 mov w23, 0 - mov w20, w23 - ldrh w1, [x0,#:lo12:.LANCHOR0+2546] + mov w20, 0 + ldrh w1, [x0, #:lo12:.LANCHOR0+2546] ldrh w0, [x19] - strh w1, [x21,x0,lsl 1] + strh w1, [x21, x0, lsl 1] ldrh w24, [x21] -.L866: - ldrh w0, [x19,10] +.L911: + ldrh w0, [x19, 10] cmp w0, w20 - bls .L885 - ubfiz x2, x20, 1, 16 - ldrh w1, [x21,x2] + bhi .L915 + mov w0, w23 + ldr x25, [sp, 64] + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x29, x30, [sp], 80 + ret +.L910: + ubfiz x1, x0, 2, 16 + ldr w2, [x20, x1] + mov w1, 0 + ubfx x2, x2, 10, 16 +.L907: + ldrh w3, [x19, 10] + cmp w3, w1 + bhi .L909 + add w0, w0, 1 + and w0, w0, 65535 + b .L906 +.L909: + ubfiz x3, x1, 1, 16 + ldrh w4, [x22, x3] + cmp w4, w2 + bne .L908 + cbz w2, .L908 + ldrh w4, [x21, x3] + add w4, w4, 1 + strh w4, [x21, x3] +.L908: + add w1, w1, 1 + and w1, w1, 65535 + b .L907 +.L915: + ubfiz x0, x20, 1, 16 + ldrh w1, [x21, x0] cmp w24, w1 - bls .L867 - ldrh w0, [x22,x2] - add x25, x22, x2 - cbnz w0, .L868 - b .L869 -.L867: - cbnz w1, .L869 - ldrh w0, [x22,x2] - add x25, x22, x2 - cbz w0, .L869 -.L871: + bls .L912 + add x25, x22, x0 + ldrh w0, [x22, x0] + cbnz w0, .L913 +.L914: + add w20, w20, 1 + and w20, w20, 65535 + b .L911 +.L912: + cbnz w1, .L914 + add x25, x22, x0 + ldrh w0, [x22, x0] + cbz w0, .L914 +.L916: mov w1, 1 bl FtlFreeSysBlkQueueIn strh wzr, [x25] - ldrh w0, [x19,8] + ldrh w0, [x19, 8] sub w0, w0, #1 - strh w0, [x19,8] -.L869: - add w20, w20, 1 - uxth w20, w20 - b .L866 -.L868: + strh w0, [x19, 8] + b .L914 +.L917: + mov w24, 0 + b .L916 +.L913: mov w23, w20 + cbz w1, .L917 mov w24, w1 - cbz w1, .L871 - b .L869 -.L885: - mov w0, w23 - ldr x25, [sp,64] - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x29, x30, [sp], 80 - ret + b .L914 .size ftl_free_no_use_map_blk, .-ftl_free_no_use_map_blk .align 2 .global FtlL2PDataInit @@ -6266,74 +6208,73 @@ FtlL2PDataInit: stp x29, x30, [sp, -48]! mov w1, 0 add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x20, .LANCHOR0 + stp x19, x20, [sp, 16] adrp x19, .LANCHOR2 - stp x21, x22, [sp,32] - add x21, x20, :lo12:.LANCHOR0 - add x22, x19, :lo12:.LANCHOR2 - ldr w2, [x21,2572] - ldr x0, [x22,3728] + str x21, [sp, 32] + add x21, x19, :lo12:.LANCHOR2 + adrp x20, .LANCHOR0 + add x20, x20, :lo12:.LANCHOR0 + ldr x0, [x21, 3720] + ldr w2, [x20, 2572] lsl w2, w2, 1 bl ftl_memset - ldrh w3, [x21,2554] + ldrh w0, [x20, 2582] mov w1, 255 - ldrh w2, [x21,2582] - ldr x0, [x22,3784] - mul w2, w3, w2 + ldrh w2, [x20, 2554] + mul w2, w2, w0 + ldr x0, [x21, 3776] bl ftl_memset + mov x0, x21 mov w1, 0 mov w5, -1 -.L887: - add x3, x20, :lo12:.LANCHOR0 - ldrh w0, [x3,2582] - cmp w0, w1 - bls .L889 - add x4, x19, :lo12:.LANCHOR2 - ubfiz x0, x1, 4, 16 - ldr x2, [x4,704] - add x2, x2, x0 - str wzr, [x2,4] - ldr x2, [x4,704] - strh w5, [x2,x0] - ldr x2, [x4,704] - add x2, x2, x0 - ldrh w0, [x3,2554] - ldr x3, [x4,3784] - mul w0, w0, w1 - add w1, w1, 1 - sxtw x0, w0 - uxth w1, w1 - and x0, x0, -4 - add x0, x3, x0 - str x0, [x2,8] - b .L887 -.L889: +.L927: + ldrh w2, [x20, 2582] + cmp w2, w1 + bhi .L928 add x0, x19, :lo12:.LANCHOR2 mov w2, -1 - add x1, x0, 3800 - strh w2, [x0,3802] - strh w2, [x0,3800] - ldr w2, [x3,2572] - strh w2, [x0,3810] + add x1, x0, 3792 + strh w2, [x0, 3794] + strh w2, [x0, 3792] + ldr w2, [x20, 2572] + strh w2, [x0, 3802] mov w2, -3902 - strh w2, [x0,3804] - ldrh w2, [x0,3864] - strh w2, [x0,3808] - ldrh w2, [x3,2580] - strh w2, [x0,3806] - ldr x2, [x0,3720] - str x2, [x0,3816] - ldr x2, [x0,3776] - str x2, [x0,3824] - ldr x2, [x0,3728] - str x2, [x0,3832] - ldr x0, [x0,3760] - str x0, [x1,40] - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] + strh w2, [x0, 3796] + ldrh w2, [x0, 3856] + strh w2, [x0, 3800] + ldrh w2, [x20, 2580] + strh w2, [x0, 3798] + ldr x2, [x0, 3712] + str x2, [x0, 3808] + ldr x2, [x0, 3768] + str x2, [x0, 3816] + ldr x2, [x0, 3720] + str x2, [x0, 3824] + ldr x0, [x0, 3752] + str x0, [x1, 40] + ldp x19, x20, [sp, 16] + ldr x21, [sp, 32] ldp x29, x30, [sp], 48 ret +.L928: + ldr x3, [x0, 704] + ubfiz x2, x1, 4, 16 + add x3, x3, x2 + str wzr, [x3, 4] + ldr x3, [x0, 704] + strh w5, [x3, x2] + ldr x3, [x0, 704] + ldr x4, [x0, 3776] + add x3, x3, x2 + ldrh w2, [x20, 2554] + mul w2, w2, w1 + add w1, w1, 1 + and w1, w1, 65535 + sxtw x2, w2 + and x2, x2, -4 + add x2, x4, x2 + str x2, [x3, 8] + b .L927 .size FtlL2PDataInit, .-FtlL2PDataInit .align 2 .global FtlVariablesInit @@ -6343,45 +6284,45 @@ FtlVariablesInit: mov w0, -1 mov w1, 0 add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] adrp x19, .LANCHOR2 - adrp x20, .LANCHOR0 add x19, x19, :lo12:.LANCHOR2 + adrp x20, .LANCHOR0 add x20, x20, :lo12:.LANCHOR0 - strh w0, [x19,3880] + strh w0, [x19, 3872] mov w0, -1 - ldrh w2, [x20,2564] - str w0, [x19,3892] - ldr x0, [x20,2592] + str w0, [x19, 3884] + ldr x0, [x20, 2592] + ldrh w2, [x20, 2564] + strh wzr, [x20, 2590] + str xzr, [x19, 3864] lsl w2, w2, 1 - str xzr, [x19,3872] - str wzr, [x19,3884] - str wzr, [x19,3888] - str wzr, [x20,2372] - strh wzr, [x20,2590] + str wzr, [x19, 3876] + str wzr, [x19, 3880] + str wzr, [x20, 2372] bl ftl_memset - ldrh w2, [x20,2482] + ldr x0, [x19, 440] mov w1, 0 - ldr x0, [x19,440] + ldrh w2, [x20, 2482] lsl w2, w2, 1 bl ftl_memset - ldrh w2, [x20,2482] + ldr x0, [x19, 3688] mov w1, 0 - ldr x0, [x19,3696] + ldrh w2, [x20, 2482] lsl w2, w2, 1 bl ftl_memset - add x0, x19, 456 - mov w1, 0 mov w2, 48 - bl ftl_memset mov w1, 0 + add x0, x19, 456 + bl ftl_memset mov w2, 512 - add x0, x19, 856 + mov w1, 0 + add x0, x19, 848 bl ftl_memset bl FtlGcBufInit bl FtlL2PDataInit mov w0, 0 - ldp x19, x20, [sp,16] + ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 32 ret .size FtlVariablesInit, .-FtlVariablesInit @@ -6389,114 +6330,105 @@ FtlVariablesInit: .global SupperBlkListInit .type SupperBlkListInit, %function SupperBlkListInit: - stp x29, x30, [sp, -112]! + stp x29, x30, [sp, -64]! + mov w0, 6 mov w1, 0 add x29, sp, 0 - stp x23, x24, [sp,48] - adrp x23, .LANCHOR0 - mov w24, 6 - add x0, x23, :lo12:.LANCHOR0 - stp x21, x22, [sp,32] - stp x25, x26, [sp,64] - stp x19, x20, [sp,16] - stp x27, x28, [sp,80] - adrp x21, .LANCHOR2 - mov w25, 0 - add x19, x21, :lo12:.LANCHOR2 - ldrh w2, [x0,2482] - mov w22, w25 - mov w26, 32768 - ldr x0, [x19,504] - mul w2, w2, w24 + stp x21, x22, [sp, 32] + adrp x21, .LANCHOR0 + add x21, x21, :lo12:.LANCHOR0 + stp x19, x20, [sp, 16] + adrp x20, .LANCHOR2 + add x19, x20, :lo12:.LANCHOR2 + stp x23, x24, [sp, 48] + add x24, x21, 2504 + ldrh w2, [x21, 2482] + mov w22, 0 + mov w23, 0 + mul w2, w2, w0 + ldr x0, [x19, 504] bl ftl_memset - str xzr, [x19,544] - str xzr, [x19,512] - str xzr, [x19,528] - strh wzr, [x19,536] - strh wzr, [x19,552] - strh wzr, [x19,3560] - mov w19, w25 -.L892: - add x0, x23, :lo12:.LANCHOR0 - ldrh w1, [x0,2480] - cmp w19, w1 - bge .L899 - mov w20, 0 - ldrh w3, [x0,2472] - ldrh w2, [x0,2544] - mov w28, w20 - mov x27, x0 -.L900: - cmp w28, w3 - bge .L901 - add x0, x27, 2504 + strh wzr, [x19, 536] + strh wzr, [x19, 552] + strh wzr, [x19, 3552] + str xzr, [x19, 512] + str xzr, [x19, 528] + str xzr, [x19, 544] + mov w19, 0 +.L933: + ldrh w0, [x21, 2480] + cmp w19, w0 + bge .L940 + ldrh w8, [x21, 2472] + mov w5, 0 + ldrh w7, [x21, 2544] + mov w6, 0 + b .L941 +.L935: + ldrb w0, [x24, w6, sxtw] mov w1, w19 - str x2, [x29,96] - str x3, [x29,104] - ldrb w0, [x0,w28,sxtw] bl V2P_block bl FtlBbmIsBadBlock - ldr x3, [x29,104] - ldr x2, [x29,96] - cbnz w0, .L893 - add w20, w2, w20 - sxth w20, w20 -.L893: - add w28, w28, 1 - sxth w28, w28 - b .L900 -.L901: - cbz w20, .L895 - sdiv w20, w26, w20 - sxth w20, w20 - b .L896 -.L895: - add x0, x21, :lo12:.LANCHOR2 - mov w1, -1 - ldr x0, [x0,520] - strh w1, [x0,w19,sxtw 1] -.L896: - add x0, x21, :lo12:.LANCHOR2 - ldr x1, [x0,504] - smaddl x1, w19, w24, x1 - strh w20, [x1,4] - ldrh w1, [x0,560] + cbnz w0, .L934 + add w5, w7, w5 + sxth w5, w5 +.L934: + add w6, w6, 1 + sxth w6, w6 +.L941: + cmp w6, w8 + blt .L935 + cbz w5, .L936 + mov w0, 32768 + sdiv w5, w0, w5 + sxth w5, w5 +.L937: + add x0, x20, :lo12:.LANCHOR2 + mov w1, 6 + ldr x2, [x0, 504] + smaddl x1, w19, w1, x2 + strh w5, [x1, 4] + ldrh w1, [x0, 560] cmp w19, w1 - beq .L897 - ldrh w1, [x0,608] + beq .L938 + ldrh w1, [x0, 608] cmp w19, w1 - beq .L897 - ldrh w1, [x0,656] + beq .L938 + ldrh w1, [x0, 656] cmp w19, w1 - beq .L897 - ldr x0, [x0,520] - ldrh w0, [x0,w19,sxtw 1] - cbnz w0, .L898 - add w4, w25, 1 - mov w0, w19 - uxth w25, w4 - bl INSERT_FREE_LIST - b .L897 -.L898: + beq .L938 + ldr x0, [x0, 520] + ldrh w0, [x0, w19, sxtw 1] + cbnz w0, .L939 add w22, w22, 1 mov w0, w19 - uxth w22, w22 - bl INSERT_DATA_LIST -.L897: + and w22, w22, 65535 + bl INSERT_FREE_LIST +.L938: add w19, w19, 1 sxth w19, w19 - b .L892 -.L899: - add x21, x21, :lo12:.LANCHOR2 + b .L933 +.L936: + add x0, x20, :lo12:.LANCHOR2 + mov w1, -1 + ldr x0, [x0, 520] + strh w1, [x0, w19, sxtw 1] + b .L937 +.L939: + add w23, w23, 1 + mov w0, w19 + and w23, w23, 65535 + bl INSERT_DATA_LIST + b .L938 +.L940: + add x20, x20, :lo12:.LANCHOR2 mov w0, 0 - ldp x19, x20, [sp,16] - ldp x23, x24, [sp,48] - strh w25, [x21,552] - strh w22, [x21,536] - ldp x25, x26, [sp,64] - ldp x21, x22, [sp,32] - ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 112 + strh w23, [x20, 536] + strh w22, [x20, 552] + ldp x23, x24, [sp, 48] + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x29, x30, [sp], 64 ret .size SupperBlkListInit, .-SupperBlkListInit .align 2 @@ -6506,25 +6438,25 @@ FtlGcPageVarInit: stp x29, x30, [sp, -32]! mov w1, 255 add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x20, .LANCHOR0 + stp x19, x20, [sp, 16] adrp x19, .LANCHOR2 - add x20, x20, :lo12:.LANCHOR0 add x19, x19, :lo12:.LANCHOR2 - ldrh w2, [x20,2548] - ldr x0, [x19,1432] + adrp x20, .LANCHOR0 + add x20, x20, :lo12:.LANCHOR0 + ldr x0, [x19, 1424] + ldrh w2, [x20, 2548] + strh wzr, [x19, 1420] + strh wzr, [x19, 1432] lsl w2, w2, 1 - strh wzr, [x19,1428] - strh wzr, [x19,1440] bl ftl_memset - ldrh w3, [x20,2548] - mov w2, 12 - ldr x0, [x19,1448] + ldrh w2, [x20, 2548] + mov w0, 12 mov w1, 255 - mul w2, w3, w2 + mul w2, w2, w0 + ldr x0, [x19, 1440] bl ftl_memset bl FtlGcBufInit - ldp x19, x20, [sp,16] + ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 32 ret .size FtlGcPageVarInit, .-FtlGcPageVarInit @@ -6545,10 +6477,10 @@ ftl_memcpy: FlashReadIdbData: stp x29, x30, [sp, -16]! adrp x1, .LANCHOR2 - mov w2, 2048 add x1, x1, :lo12:.LANCHOR2 + mov w2, 2048 add x29, sp, 0 - add x1, x1, 3896 + add x1, x1, 3888 bl ftl_memcpy mov w0, 0 ldp x29, x30, [sp], 16 @@ -6558,76 +6490,73 @@ FlashReadIdbData: .global FlashLoadPhyInfoInRam .type FlashLoadPhyInfoInRam, %function FlashLoadPhyInfoInRam: - stp x29, x30, [sp, -64]! - add x29, sp, 0 - stp x19, x20, [sp,16] - stp x21, x22, [sp,32] - adrp x19, .LANCHOR1 - adrp x22, .LANCHOR0 - add x21, x19, :lo12:.LANCHOR1 - add x22, x22, :lo12:.LANCHOR0 - str x23, [sp,48] - add x21, x21, 512 - mov w20, 0 - add x22, x22, 2132 -.L909: - ldrb w2, [x21] - add x0, x21, 1 - mov x1, x22 - bl FlashMemCmp8 - mov w23, w0 - cbnz w0, .L906 - add x0, x19, :lo12:.LANCHOR1 - ubfiz x20, x20, 5, 32 - add x1, x0, 512 - adds x20, x1, x20 - beq .L912 - ldrb w3, [x20,22] - mov x2, 0 - mov x1, x0 - b .L911 -.L906: - add w20, w20, 1 - add x21, x21, 32 - cmp w20, 86 - bne .L909 - b .L912 -.L911: - add x4, x1, x2, lsl 5 - mov w0, w2 - ldrb w4, [x4,3264] - cmp w4, w3 - beq .L910 - add x2, x2, 1 - cmp x2, 4 - bne .L911 - mov w0, w2 -.L910: - add x19, x19, :lo12:.LANCHOR1 - ubfiz x1, x0, 5, 32 + stp x29, x30, [sp, -48]! adrp x0, .LANCHOR0 - add x2, x19, 3264 - add x0, x0, :lo12:.LANCHOR0 - add x1, x2, x1 - add x0, x0, 96 - mov w2, 32 + add x10, x0, :lo12:.LANCHOR0 + mov x7, x0 + add x29, sp, 0 + stp x19, x20, [sp, 16] + adrp x19, .LANCHOR1 + add x8, x19, :lo12:.LANCHOR1 + add x10, x10, 2132 + add x8, x8, 513 + mov x9, 0 + str x21, [sp, 32] +.L952: + ldrb w2, [x8, -1] + mov w11, w9 + lsl x21, x9, 5 + mov x1, x10 + mov x0, x8 + bl FlashMemCmp8 + mov w20, w0 + cbnz w0, .L950 + add x2, x19, :lo12:.LANCHOR1 + ubfiz x11, x11, 5, 32 + add x0, x2, 512 + add x1, x2, 3264 + add x21, x0, x21 + add x0, x0, x11 + ldrb w3, [x0, 22] + mov x0, 0 +.L951: + lsl x4, x0, 5 + mov w2, w0 + ldrb w4, [x4, x1] + cmp w4, w3 + beq .L954 + add x0, x0, 1 + cmp x0, 4 + bne .L951 + mov w2, w0 +.L954: + add x19, x19, :lo12:.LANCHOR1 + add x0, x7, :lo12:.LANCHOR0 + add x3, x19, 3264 + ubfiz x1, x2, 5, 32 add x19, x19, 472 - bl ftl_memcpy - mov x0, x19 - mov x1, x20 + add x1, x3, x1 mov w2, 32 + add x0, x0, 96 bl ftl_memcpy - ldrh w0, [x19,10] + mov w2, 32 + mov x1, x21 + mov x0, x19 + bl ftl_memcpy + ldrh w0, [x19, 10] bl FlashBlockAlignInit - b .L907 -.L912: - mov w23, -1 -.L907: - mov w0, w23 - ldr x23, [sp,48] - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x29, x30, [sp], 64 + b .L949 +.L950: + add x9, x9, 1 + add x8, x8, 32 + cmp x9, 86 + bne .L952 + mov w20, -1 +.L949: + mov w0, w20 + ldr x21, [sp, 32] + ldp x19, x20, [sp, 16] + ldp x29, x30, [sp], 48 ret .size FlashLoadPhyInfoInRam, .-FlashLoadPhyInfoInRam .align 2 @@ -6635,79 +6564,71 @@ FlashLoadPhyInfoInRam: .type NandcCopy1KB, %function NandcCopy1KB: stp x29, x30, [sp, -48]! - uxtb w1, w1 - add x29, sp, 0 - stp x19, x20, [sp,16] - str x21, [sp,32] - uxtb w19, w2 + and w1, w1, 255 cmp w1, 1 - mov x20, x4 - ubfiz x2, x19, 9, 8 - add x4, x0, 4096 + add x29, sp, 0 + stp x19, x20, [sp, 16] + and w19, w2, 255 + str x21, [sp, 32] + add x2, x0, 4096 add x21, x0, 512 - add x2, x4, x2 - bne .L917 - cbz x3, .L918 - mov x0, x2 + ubfiz x0, x19, 9, 8 + mov x20, x4 + add x0, x2, x0 + bne .L959 + cbz x3, .L960 + mov w2, 1024 mov x1, x3 - mov w2, 1024 bl ftl_memcpy -.L918: - cbz x20, .L916 - mov w0, 48 +.L960: + cbz x20, .L958 lsr w19, w19, 1 - ldrb w1, [x20,1] - mul w19, w19, w0 - ldrb w0, [x20,2] - asr w19, w19, 2 - lsl w0, w0, 16 - orr w0, w0, w1, lsl 8 - ldrb w1, [x20] - orr w0, w0, w1 - ldrb w1, [x20,3] - orr w0, w0, w1, lsl 24 - str w0, [x21,w19,sxtw 2] - b .L916 -.L917: - cbz x3, .L921 - mov x1, x2 - mov x0, x3 - mov w2, 1024 - bl ftl_memcpy -.L921: - cbz x20, .L916 - mov w0, 48 - lsr w19, w19, 1 - mul w19, w19, w0 - asr w19, w19, 2 - ldr w0, [x21,w19,sxtw 2] - strb w0, [x20] - lsr w1, w0, 8 - strb w1, [x20,1] - lsr w1, w0, 16 - lsr w0, w0, 24 - strb w1, [x20,2] - strb w0, [x20,3] -.L916: - ldp x19, x20, [sp,16] - ldr x21, [sp,32] + mov w1, 48 + ldr w0, [x20] + mul w19, w19, w1 + and x19, x19, 8176 + str w0, [x21, x19] +.L958: + ldp x19, x20, [sp, 16] + ldr x21, [sp, 32] ldp x29, x30, [sp], 48 ret +.L959: + cbz x3, .L963 + mov x1, x0 + mov w2, 1024 + mov x0, x3 + bl ftl_memcpy +.L963: + cbz x20, .L958 + lsr w19, w19, 1 + mov w0, 48 + mul w19, w19, w0 + and x19, x19, 8176 + ldr w0, [x21, x19] + strb w0, [x20] + lsr w1, w0, 8 + strb w1, [x20, 1] + lsr w1, w0, 16 + lsr w0, w0, 24 + strb w1, [x20, 2] + strb w0, [x20, 3] + b .L958 .size NandcCopy1KB, .-NandcCopy1KB .align 2 .global ftl_memcpy32 .type ftl_memcpy32, %function ftl_memcpy32: mov x3, 0 -.L933: +.L976: cmp w2, w3 - bls .L935 - ldr w4, [x1,x3,lsl 2] - str w4, [x0,x3,lsl 2] - add x3, x3, 1 - b .L933 -.L935: + bhi .L977 ret +.L977: + ldr w4, [x1, x3, lsl 2] + str w4, [x0, x3, lsl 2] + add x3, x3, 1 + b .L976 .size ftl_memcpy32, .-ftl_memcpy32 .align 2 .global ftl_memcmp @@ -6724,10 +6645,10 @@ ftl_memcmp: .global timer_get_time .type timer_get_time, %function timer_get_time: - adrp x0, jiffies stp x29, x30, [sp, -16]! + adrp x0, jiffies add x29, sp, 0 - ldr x0, [x0,#:lo12:jiffies] + ldr x0, [x0, #:lo12:jiffies] bl jiffies_to_msecs ldp x29, x30, [sp], 16 ret @@ -6736,24 +6657,24 @@ timer_get_time: .global FlashSramLoadStore .type FlashSramLoadStore, %function FlashSramLoadStore: - adrp x4, .LANCHOR4+1592 - mov x6, x0 stp x29, x30, [sp, -16]! - uxtw x1, w1 + adrp x4, .LANCHOR4+1584 + uxtw x5, w1 add x29, sp, 0 - ldr x4, [x4,#:lo12:.LANCHOR4+1592] + ldr x4, [x4, #:lo12:.LANCHOR4+1584] add x4, x4, 4096 - cbnz w2, .L939 - add x1, x4, x1 - b .L941 -.L939: - add x0, x4, x1 - mov x1, x6 -.L941: + cbnz w2, .L983 mov w2, w3 + add x1, x4, x5 +.L986: bl ftl_memcpy ldp x29, x30, [sp], 16 ret +.L983: + mov x1, x0 + mov w2, w3 + add x0, x4, x5 + b .L986 .size FlashSramLoadStore, .-FlashSramLoadStore .align 2 .global FlashCs123Init @@ -6762,6 +6683,46 @@ FlashCs123Init: ret .size FlashCs123Init, .-FlashCs123Init .align 2 + .global ftl_dma32_malloc + .type ftl_dma32_malloc, %function +ftl_dma32_malloc: + stp x29, x30, [sp, -48]! + cmp w0, 8192 + add x29, sp, 0 + stp x19, x20, [sp, 16] + str x21, [sp, 32] + ble .L989 + bl ftl_malloc +.L988: + ldp x19, x20, [sp, 16] + ldr x21, [sp, 32] + ldp x29, x30, [sp], 48 + ret +.L989: + adrp x1, .LANCHOR4 + add x21, x1, :lo12:.LANCHOR4 + add w19, w0, 63 + mov x20, x1 + and w19, w19, -64 + ldr w0, [x21, 1592] + cmp w19, w0 + ble .L991 + mov w0, 16384 + bl ftl_malloc + str x0, [x21, 1600] + mov w0, 16384 + str w0, [x21, 1592] +.L991: + add x1, x20, :lo12:.LANCHOR4 + ldr w0, [x1, 1592] + sub w0, w0, w19 + str w0, [x1, 1592] + ldr x0, [x1, 1600] + add x19, x0, w19, sxtw + str x19, [x1, 1600] + b .L988 + .size ftl_dma32_malloc, .-ftl_dma32_malloc + .align 2 .global rk_nand_suspend .type rk_nand_suspend, %function rk_nand_suspend: @@ -6786,14 +6747,14 @@ rk_nand_resume: .type rk_ftl_get_capacity, %function rk_ftl_get_capacity: adrp x0, .LANCHOR0+2584 - ldr w0, [x0,#:lo12:.LANCHOR0+2584] + ldr w0, [x0, #:lo12:.LANCHOR0+2584] ret .size rk_ftl_get_capacity, .-rk_ftl_get_capacity .align 2 .global rk_nandc_get_irq_status .type rk_nandc_get_irq_status, %function rk_nandc_get_irq_status: - ldr w0, [x0,372] + ldr w0, [x0, 372] ret .size rk_nandc_get_irq_status, .-rk_nandc_get_irq_status .align 2 @@ -6822,757 +6783,745 @@ ReadFlashInfo: rknand_print_hex: stp x29, x30, [sp, -96]! add x29, sp, 0 - stp x19, x20, [sp,16] - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - mov x19, 0 - adrp x23, .LC81 + stp x21, x22, [sp, 32] adrp x21, .LC82 - adrp x24, .LC75 - stp x25, x26, [sp,64] - str x27, [sp,80] + stp x23, x24, [sp, 48] mov x22, x1 - mov x27, x0 - mov w25, w2 - uxtw x26, w3 - mov w20, w19 + stp x25, x26, [sp, 64] + adrp x23, .LC81 + mov x26, x0 + mov w24, w2 + uxtw x25, w3 add x23, x23, :lo12:.LC81 add x21, x21, :lo12:.LC82 - add x24, x24, :lo12:.LC75 -.L950: - cmp x19, x26 - beq .L958 - cbnz w20, .L951 - mov x0, x23 - mov x1, x27 - mov x2, x22 - mov w3, w19 - bl printk -.L951: - cmp w25, 4 - mov x0, x21 - bne .L952 - ldr w1, [x22,x19,lsl 2] - b .L957 -.L952: - cmp w25, 2 - bne .L954 - ldrsh w1, [x22,x19,lsl 1] - b .L957 -.L954: - ldrb w1, [x22,x19] -.L957: - bl printk - add w20, w20, 1 - cmp w20, 15 - bls .L955 - adrp x1, .LC83 - mov x0, x24 - add x1, x1, :lo12:.LC83 + stp x19, x20, [sp, 16] + str x27, [sp, 80] + mov x19, 0 mov w20, 0 - bl printk -.L955: - add x19, x19, 1 - b .L950 -.L958: - adrp x0, .LC75 + adrp x27, .LC83 +.L1004: + cmp x25, x19 + bne .L1010 adrp x1, .LC83 + adrp x0, .LC76 add x1, x1, :lo12:.LC83 - add x0, x0, :lo12:.LC75 + add x0, x0, :lo12:.LC76 bl printk - ldr x27, [sp,80] - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] + ldr x27, [sp, 80] + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] ldp x29, x30, [sp], 96 ret +.L1010: + cbnz w20, .L1005 + mov w3, w19 + mov x2, x22 + mov x1, x26 + mov x0, x23 + bl printk +.L1005: + cmp w24, 4 + bne .L1006 + ldr w1, [x22, x19, lsl 2] +.L1012: + mov x0, x21 + add w20, w20, 1 + bl printk + cmp w20, 15 + bls .L1009 + mov w20, 0 + add x1, x27, :lo12:.LC83 + adrp x0, .LC76 + add x0, x0, :lo12:.LC76 + bl printk +.L1009: + add x19, x19, 1 + b .L1004 +.L1006: + cmp w24, 2 + bne .L1008 + ldrsh w1, [x22, x19, lsl 1] + b .L1012 +.L1008: + ldrb w1, [x22, x19] + b .L1012 .size rknand_print_hex, .-rknand_print_hex .align 2 .global HynixGetReadRetryDefault .type HynixGetReadRetryDefault, %function HynixGetReadRetryDefault: - stp x29, x30, [sp, -144]! - mov w4, -83 + stp x29, x30, [sp, -128]! + mov w3, -83 mov w2, -82 add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x19, .LANCHOR0 - stp x27, x28, [sp,80] - mov w27, w0 - add x0, x19, :lo12:.LANCHOR0 - add x1, x0, 1272 - cmp w27, 2 - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] - strb w27, [x0,1272] - mov w0, -84 - strb w4, [x1,5] - strb w0, [x1,4] - mov w0, -81 - strb w2, [x1,6] - strb w0, [x1,7] - bne .L960 - mov w0, -89 - strb w0, [x1,4] + stp x21, x22, [sp, 32] + adrp x21, .LANCHOR0 + add x1, x21, :lo12:.LANCHOR0 + stp x19, x20, [sp, 16] + mov w20, w0 + add x0, x1, 1272 + stp x23, x24, [sp, 48] + cmp w20, 2 + stp x25, x26, [sp, 64] + stp x27, x28, [sp, 80] + strb w20, [x1, 1272] + mov w1, -84 + strb w3, [x0, 5] + strb w1, [x0, 4] + mov w1, -81 + strb w2, [x0, 6] + strb w1, [x0, 7] + bne .L1014 + mov w1, -89 + strb w1, [x0, 4] adrp x0, .LANCHOR1+3409 mov w1, -9 - strb w1, [x0,#:lo12:.LANCHOR1+3409] - b .L1023 -.L960: - cmp w27, 3 - bne .L962 - mov w0, -80 - strb w0, [x1,4] - mov w0, -79 - strb w0, [x1,5] - mov w0, -78 - strb w0, [x1,6] - mov w0, -77 - strb w0, [x1,7] - mov w0, -76 - strb w0, [x1,8] - mov w0, -75 - strb w0, [x1,9] - mov w0, -74 - strb w0, [x1,10] - mov w0, -73 - b .L1063 -.L962: - cmp w27, 4 - bne .L963 - mov w5, -52 - strb w5, [x1,4] - mov w5, -65 - strb w5, [x1,5] - mov w5, -86 - strb w5, [x1,6] - mov w5, -85 - strb w4, [x1,9] - strb w5, [x1,7] - mov w5, -51 - strb w2, [x1,10] - strb w5, [x1,8] -.L1063: - mov w26, 8 - strb w0, [x1,11] - mov w28, w26 - b .L961 -.L963: - cmp w27, 5 - bne .L964 - mov w0, 56 - strb w0, [x1,4] - mov w0, 57 - strb w0, [x1,5] - mov w0, 58 - mov w26, 8 - strb w0, [x1,6] - mov w0, 59 - strb w0, [x1,7] - b .L1064 -.L964: - cmp w27, 6 - bne .L965 - mov w0, 14 - strb w0, [x1,4] - mov w0, 15 - strb w0, [x1,5] - mov w0, 16 - mov w26, 12 - strb w0, [x1,6] - mov w0, 17 - strb w0, [x1,7] - b .L1064 -.L965: - cmp w27, 7 - bne .L966 - mov w0, -80 - strb w0, [x1,4] - mov w0, -79 - strb w0, [x1,5] - mov w0, -78 - strb w0, [x1,6] - mov w0, -77 - strb w0, [x1,7] - mov w0, -76 - strb w0, [x1,8] - mov w0, -75 - strb w0, [x1,9] - mov w0, -74 - strb w0, [x1,10] - mov w0, -73 - strb w0, [x1,11] - mov w0, -44 - mov w26, 12 - strb w0, [x1,12] - mov w28, 10 - mov w0, -43 - strb w0, [x1,13] - b .L961 -.L966: - cmp w27, 8 - bne .L1023 - 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 .L961 -.L1023: - mov w26, 7 -.L1064: - mov w28, 4 -.L961: - sub w0, w27, #1 + strb w1, [x0, #:lo12:.LANCHOR1+3409] +.L1079: + mov w27, 7 + b .L1123 +.L1014: + cmp w20, 3 + bne .L1016 + mov w1, -80 + strb w1, [x0, 4] + mov w1, -79 + strb w1, [x0, 5] + mov w1, -78 + strb w1, [x0, 6] + mov w1, -77 + strb w1, [x0, 7] + mov w1, -76 + strb w1, [x0, 8] + mov w1, -75 + strb w1, [x0, 9] + mov w1, -74 + strb w1, [x0, 10] + mov w1, -73 +.L1122: + mov w27, 8 + mov w28, w27 + strb w1, [x0, 11] +.L1015: + sub w0, w20, #1 cmp w0, 1 - bhi .L1060 - adrp x22, .LANCHOR1 - add x25, x19, :lo12:.LANCHOR0 - add x22, x22, :lo12:.LANCHOR1 - mov w21, 0 - add x4, x25, 1272 - add x27, x25, 8 - add x22, x22, 3392 -.L967: - ldrb w0, [x25,2358] - cmp w0, w21 - bls .L974 - add x0, x25, w21, sxtw - ldrb w0, [x0,2360] - mov x23, 0 - add x20, x4, x0, lsl 6 - lsl x0, x0, 4 - add x1, x27, x0 - add x20, x20, 20 - ldr x24, [x27,x0] - ldrb w0, [x1,8] + bhi .L1021 + add x25, x21, :lo12:.LANCHOR0 + adrp x24, .LANCHOR1 + add x24, x24, :lo12:.LANCHOR1 + add x26, x25, 1272 + add x24, x24, 3392 + mov w23, 0 +.L1022: + ldrb w0, [x25, 2358] + cmp w0, w23 + bhi .L1028 +.L1029: + add x21, x21, :lo12:.LANCHOR0 + ldp x19, x20, [sp, 16] + strb w28, [x21, 1273] + strb w27, [x21, 1274] + ldp x23, x24, [sp, 48] + ldp x21, x22, [sp, 32] + ldp x25, x26, [sp, 64] + ldp x27, x28, [sp, 80] + ldp x29, x30, [sp], 128 + ret +.L1016: + cmp w20, 4 + bne .L1017 + mov w4, -52 + strb w4, [x0, 4] + mov w4, -65 + strb w4, [x0, 5] + mov w4, -86 + strb w4, [x0, 6] + mov w4, -85 + strb w3, [x0, 9] + strb w4, [x0, 7] + mov w4, -51 + strb w2, [x0, 10] + strb w4, [x0, 8] + b .L1122 +.L1017: + cmp w20, 5 + bne .L1018 + mov w1, 56 + strb w1, [x0, 4] + mov w1, 57 + strb w1, [x0, 5] + mov w1, 58 + mov w27, 8 + strb w1, [x0, 6] + mov w1, 59 + strb w1, [x0, 7] +.L1123: + mov w28, 4 + b .L1015 +.L1018: + cmp w20, 6 + bne .L1019 + mov w1, 14 + strb w1, [x0, 4] + mov w1, 15 + strb w1, [x0, 5] + mov w1, 16 + mov w27, 12 + strb w1, [x0, 6] + mov w1, 17 + strb w1, [x0, 7] + b .L1123 +.L1019: + cmp w20, 7 + bne .L1020 + mov w1, -80 + strb w1, [x0, 4] + mov w1, -79 + strb w1, [x0, 5] + mov w1, -78 + strb w1, [x0, 6] + mov w1, -77 + strb w1, [x0, 7] + mov w1, -76 + strb w1, [x0, 8] + mov w1, -75 + strb w1, [x0, 9] + mov w1, -74 + strb w1, [x0, 10] + mov w1, -73 + strb w1, [x0, 11] + mov w1, -44 + mov w27, 12 + strb w1, [x0, 12] + mov w28, 10 + mov w1, -43 + strb w1, [x0, 13] + b .L1015 +.L1020: + cmp w20, 8 + bne .L1079 + mov w1, 6 + strb w1, [x0, 4] + mov w1, 7 + strb w1, [x0, 5] + mov w1, 9 + strb w20, [x0, 6] + strb w1, [x0, 7] + mov w27, 50 + mov w1, 10 + mov w28, 5 + strb w1, [x0, 8] + b .L1015 +.L1028: + add x0, x25, w23, sxtw + mov x20, 0 + ldrb w0, [x0, 2360] + ubfiz x19, x0, 6, 8 + sbfiz x0, x0, 4, 32 + add x1, x25, x0 + add x19, x19, 20 + add x19, x26, x19 + ldr x0, [x25, x0] + ldrb w22, [x1, 8] mov w1, 55 - add x24, x24, x0, lsl 8 -.L969: - add x0, x4, x23 - str w1, [x24,2056] - str x1, [x29,128] - str x4, [x29,136] - ldrb w0, [x0,4] - str w0, [x24,2052] + add x22, x0, x22, lsl 8 +.L1023: + add x0, x26, x20 + str w1, [x22, 2056] + str w1, [x29, 124] + ldrb w0, [x0, 4] + str w0, [x22, 2052] mov x0, 400 bl __const_udelay - ldr w0, [x24,2048] - strb w0, [x20,x23] - add x23, x23, 1 - ldr x4, [x29,136] - cmp w28, w23, uxtb - ldr x1, [x29,128] - bhi .L969 + ldr w0, [x22, 2048] + strb w0, [x19, x20] + add x20, x20, 1 + cmp w28, w20, uxtb + ldr w1, [x29, 124] + bhi .L1023 mov x0, 0 -.L970: - add w2, w0, 8 - mov x1, 0 -.L971: - add x3, x1, x0 - add x1, x1, 4 - add x3, x22, x3 - cmp x1, 24 - ldrb w6, [x3,4] - ldrb w3, [x20,x0] - add w3, w6, w3 - strb w3, [x20,w2,sxtw] - add w2, w2, 8 - bne .L971 +.L1026: + add x1, x0, 4 + add x4, x0, 28 + add w5, w0, 8 + add x1, x24, x1 + add x4, x24, x4 +.L1025: + ldrb w6, [x19, x0] + ldrb w7, [x1], 4 + add w6, w6, w7 + strb w6, [x19, w5, sxtw] + cmp x4, x1 + add w5, w5, 8 + bne .L1025 add x0, x0, 1 cmp x0, 4 - bne .L970 - add w21, w21, 1 - strb wzr, [x20,16] - strb wzr, [x20,24] - strb wzr, [x20,32] - uxtb w21, w21 - strb wzr, [x20,40] - strb wzr, [x20,48] - strb wzr, [x20,41] - strb wzr, [x20,49] - b .L967 -.L1060: - sub w0, w27, #3 - cmp w0, 5 - bhi .L974 - mul w25, w28, w26 - sub w24, w28, #1 - add x20, x19, :lo12:.LANCHOR0 - lsl w0, w25, 4 - asr w23, w25, 1 - str w0, [x29,128] - lsl w0, w23, 1 - uxtb x24, w24 - str w0, [x29,124] - sub w0, w27, #5 - mov w21, 0 - str w0, [x29,136] - add x25, x20, 8 - add x0, x24, 1 - str x0, [x29,112] -.L975: - ldrb w0, [x20,2358] - cmp w0, w21 - bhi .L1021 -.L974: - add x19, x19, :lo12:.LANCHOR0 - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - strb w28, [x19,1273] - strb w26, [x19,1274] - ldp x27, x28, [sp,80] - ldp x19, x20, [sp,16] - ldp x25, x26, [sp,64] - ldp x29, x30, [sp], 144 - ret + bne .L1026 + add w23, w23, 1 + strb wzr, [x19, 16] + strb wzr, [x19, 24] + and w23, w23, 255 + strb wzr, [x19, 32] + strb wzr, [x19, 40] + strb wzr, [x19, 48] + strb wzr, [x19, 41] + strb wzr, [x19, 49] + b .L1022 .L1021: - add x0, x20, w21, sxtw - ldrb w6, [x0,2360] - 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, [x24,2056] - mov w0, w6 - bl NandcWaitFlashReady - cmp w27, 7 - ldr x6, [x29,104] - bne .L976 - mov x0, 160 - madd x6, x6, x0, x20 - add x6, x6, 1300 - b .L977 -.L976: - cmp w27, 8 - beq .L978 - add x6, x20, x6, lsl 6 - add x6, x6, 1292 -.L977: - mov w0, 54 - cmp w27, 4 - str w0, [x24,2056] - bne .L979 - mov w0, 255 - str w0, [x24,2052] - mov w0, 64 - str w0, [x24,2048] - mov w0, 204 - b .L1065 -.L979: - ldr w0, [x29,136] - cmp w0, 1 - bhi .L981 - ldrb w0, [x20,1276] - str w0, [x24,2052] - mov w0, 82 - b .L1066 -.L981: - cmp w27, 7 - bne .L980 - mov w0, 174 - str w0, [x24,2052] - str wzr, [x24,2048] - mov w0, 176 -.L1065: - str w0, [x24,2052] - mov w0, 77 -.L1066: - str w0, [x24,2048] -.L980: - mov w0, 22 - str w0, [x24,2056] - mov w0, 23 - str w0, [x24,2056] - mov w0, 4 - str w0, [x24,2056] - mov w0, 25 - str w0, [x24,2056] - str wzr, [x24,2056] - cmp w27, 6 - str wzr, [x24,2052] - str wzr, [x24,2052] - bne .L982 - mov w0, 31 - str w0, [x24,2052] - b .L983 -.L982: - str wzr, [x24,2052] -.L983: - mov w0, 2 - str w0, [x24,2052] - str wzr, [x24,2052] -.L1022: - mov w0, 48 - str w0, [x24,2056] - mov w0, w22 - str x6, [x29,104] - bl NandcWaitFlashReady - ldr w0, [x29,136] - ldr x6, [x29,104] - cmp w0, 1 - cset w9, ls - cmp w27, 8 - cset w8, eq - cbnz w9, .L1025 - cbnz w8, .L1025 - cmp w27, 7 - mov w7, 32 - mov w0, 2 - csel w7, w0, w7, ne - b .L984 -.L1025: - mov w7, 16 -.L984: - adrp x1, .LANCHOR4 - mov x10, 0 - add x0, x1, :lo12:.LANCHOR4 - ldr x0, [x0,1600] -.L985: - ldr w11, [x24,2048] - strb w11, [x0,x10] - add x10, x10, 1 - cmp w7, w10, uxtb - bhi .L985 - cbz w8, .L986 - mov w7, 0 -.L988: - ldrb w10, [x0] - cmp w10, 50 - beq .L987 - ldrb w10, [x0,1] - cmp w10, 5 - beq .L987 - add w7, w7, 1 - add x0, x0, 4 - uxtb w7, w7 - cmp w7, 8 - bne .L988 - b .L989 -.L987: - cmp w7, 6 - bls .L990 -.L989: - adrp x0, .LC84 - mov w1, 0 - add x0, x0, :lo12:.LC84 - bl printk -.L991: - b .L991 -.L986: - cmp w27, 7 - bne .L992 - mov w7, w8 -.L994: - ldrb w10, [x0] - cmp w10, 12 - beq .L993 - ldrb w10, [x0,1] - cmp w10, 10 - beq .L993 - add w7, w7, 1 - add x0, x0, 4 - uxtb w7, w7 - cmp w7, 8 - bne .L994 - b .L995 -.L993: - cmp w7, 7 - bne .L990 -.L995: - adrp x0, .LC84 - mov w1, 0 - add x0, x0, :lo12:.LC84 - bl printk -.L996: - b .L996 -.L992: - cmp w27, 6 - bne .L990 - mov x7, 0 -.L997: - ldrb w10, [x0,x7] - cmp w10, 12 - beq .L990 - add x10, x0, x7 - ldrb w10, [x10,8] - cmp w10, 4 - beq .L990 - add x7, x7, 1 - cmp x7, 8 - bne .L997 - adrp x0, .LC84 - mov w1, 0 - add x0, x0, :lo12:.LC84 - bl printk -.L999: - b .L999 -.L990: - add x0, x1, :lo12:.LANCHOR4 - ldr x11, [x0,1600] - mov x0, 0 -.L1000: - ldr w2, [x29,128] - cmp w2, w0 - ble .L1068 - ldr w7, [x24,2048] - strb w7, [x11,x0] - add x0, x0, 1 - b .L1000 -.L1068: - add x0, x1, :lo12:.LANCHOR4 - mov w12, w23 - mov w10, 8 - ldr x13, [x0,1600] -.L1003: - mov w0, 0 -.L1002: - add w7, w0, w12 - add w0, w0, 1 - sbfiz x7, x7, 1, 32 + sub w0, w20, #3 + cmp w0, 5 + bhi .L1029 + mul w26, w28, w27 + sub w25, w28, #1 + and x25, x25, 255 + add x22, x21, :lo12:.LANCHOR0 + mov w23, 0 + lsl w0, w26, 4 + asr w24, w26, 1 + str w0, [x29, 120] + sub w26, w20, #5 + lsl w0, w24, 1 + str w0, [x29, 124] + add x0, x25, 1 + str x0, [x29, 112] +.L1030: + ldrb w0, [x22, 2358] cmp w0, w23 - ldrh w14, [x13,x7] - mvn w14, w14 - strh w14, [x13,x7] - bne .L1002 - ldr w0, [x29,124] - subs w10, w10, #1 - add w12, w12, w0 - bne .L1003 - mov x10, 0 - mov w18, 1 -.L1004: - mov w7, 0 - mov w12, w7 -.L1008: - lsl w14, w18, w12 - mov w16, w10 - mov w0, 16 - mov w15, 0 -.L1006: - ldrh w17, [x13,w16,sxtw 1] - add w16, w16, w23 - and w17, w17, w14 - cmp w17, w14 - csinc w15, w15, w15, ne - subs w0, w0, #1 - bne .L1006 - cmp w15, 8 - bls .L1007 - orr w7, w7, w14 - uxth w7, w7 -.L1007: - add w12, w12, 1 - cmp w12, 16 - bne .L1008 - strh w7, [x13,x10,lsl 1] - add x10, x10, 1 - cmp w23, w10 - bgt .L1004 - add x1, x1, :lo12:.LANCHOR4 + bls .L1029 + add x0, x22, w23, sxtw + ldrb w25, [x0, 2360] + sbfiz x0, x25, 4, 32 + add x1, x22, x0 + ldr x0, [x22, x0] + ldrb w19, [x1, 8] + add x19, x0, x19, lsl 8 + mov w0, 255 + str w0, [x19, 2056] + mov w0, w25 + bl NandcWaitFlashReady + cmp w20, 7 + bne .L1031 + mov x1, 28 + mov w0, 160 + add x4, x22, 1272 + umaddl x0, w0, w25, x1 + add x4, x4, x0 +.L1032: + mov w0, 54 + str w0, [x19, 2056] + cmp w20, 4 + bne .L1034 + mov w0, 255 + str w0, [x19, 2052] + mov w0, 64 + str w0, [x19, 2048] + mov w0, 204 +.L1124: + str w0, [x19, 2052] + mov w0, 77 + b .L1125 +.L1031: + cmp w20, 8 + beq .L1033 + ubfiz x4, x25, 6, 8 + add x4, x22, x4 + add x4, x4, 1292 + b .L1032 +.L1034: + cmp w26, 1 + bhi .L1036 + ldrb w0, [x22, 1276] + str w0, [x19, 2052] + mov w0, 82 +.L1125: + str w0, [x19, 2048] +.L1035: + mov w0, 22 + str w0, [x19, 2056] + mov w0, 23 + str w0, [x19, 2056] + mov w0, 4 + str w0, [x19, 2056] + mov w0, 25 + str w0, [x19, 2056] + str wzr, [x19, 2056] + cmp w20, 6 + str wzr, [x19, 2052] + str wzr, [x19, 2052] + bne .L1037 + mov w0, 31 + str w0, [x19, 2052] +.L1038: + mov w0, 2 + str w0, [x19, 2052] + str wzr, [x19, 2052] +.L1078: + mov w0, 48 + str w0, [x19, 2056] + str x4, [x29, 104] + mov w0, w25 + bl NandcWaitFlashReady + cmp w26, 1 + ldr x4, [x29, 104] + ccmp w20, 8, 4, hi + beq .L1080 + cmp w20, 7 + mov w0, 2 + mov w6, 32 + csel w6, w6, w0, eq +.L1039: + adrp x1, .LANCHOR4 + add x0, x1, :lo12:.LANCHOR4 mov x7, 0 - mov w10, w7 - ldr x1, [x1,1600] -.L1011: - ldr w12, [x1,x7] - add x7, x7, 4 - cmp w12, wzr - csinc w10, w10, w10, ne - cmp x7, 32 - bne .L1011 - cmp w10, 7 - ble .L1012 - adrp x0, .LC85 - mov w2, 1 - add x0, x0, :lo12:.LC85 + ldr x0, [x0, 1608] +.L1040: + ldr w8, [x19, 2048] + strb w8, [x0, x7] + add x7, x7, 1 + cmp w6, w7, uxtb + bhi .L1040 + cmp w20, 8 + bne .L1041 + mov w6, 0 +.L1043: + ldrb w7, [x0] + cmp w7, 50 + beq .L1042 + ldrb w7, [x0, 1] + cmp w7, 5 + beq .L1042 + add w6, w6, 1 + add x0, x0, 4 + and w6, w6, 255 + cmp w6, 8 + bne .L1043 +.L1044: + adrp x0, .LC84 + mov w1, 0 + add x0, x0, :lo12:.LC84 + bl printk +.L1046: + b .L1046 +.L1036: + cmp w20, 7 + bne .L1035 + mov w0, 174 + str w0, [x19, 2052] + str wzr, [x19, 2048] + mov w0, 176 + b .L1124 +.L1037: + str wzr, [x19, 2052] + b .L1038 +.L1080: + mov w6, 16 + b .L1039 +.L1042: + cmp w6, 6 + bhi .L1044 +.L1045: + add x0, x1, :lo12:.LANCHOR4 + ldr x8, [x0, 1608] + mov x0, 0 +.L1055: + ldr w2, [x29, 120] + cmp w2, w0 + bgt .L1056 + add x0, x1, :lo12:.LANCHOR4 + mov w9, w24 + mov w7, 8 + ldr x10, [x0, 1608] +.L1058: + mov w0, 0 +.L1057: + add w6, w0, w9 + add w0, w0, 1 + sbfiz x6, x6, 1, 32 + cmp w24, w0 + ldrh w11, [x10, x6] + mvn w11, w11 + strh w11, [x10, x6] + bgt .L1057 + ldr w0, [x29, 124] + subs w7, w7, #1 + add w9, w9, w0 + bne .L1058 + mov x7, 0 + mov w14, 1 +.L1064: + mov w6, 0 + mov w9, 0 +.L1063: + mov w12, w7 + lsl w13, w14, w9 + mov w0, 16 + mov w11, 0 +.L1061: + ldrh w15, [x10, w12, sxtw 1] + add w12, w12, w24 + bics wzr, w13, w15 + cinc w11, w11, eq + subs w0, w0, #1 + bne .L1061 + cmp w11, 8 + bls .L1062 + orr w6, w6, w13 + and w6, w6, 65535 +.L1062: + add w9, w9, 1 + cmp w9, 16 + bne .L1063 + strh w6, [x10, x7, lsl 1] + add x7, x7, 1 + cmp w24, w7 + bgt .L1064 + add x1, x1, :lo12:.LANCHOR4 + mov x6, 0 + mov w7, 0 + ldr x1, [x1, 1608] +.L1067: + ldr w9, [x1, x6] + add x6, x6, 4 + cmp w9, 0 + cinc w7, w7, eq + cmp x6, 32 + bne .L1067 + cmp w7, 7 + ble .L1068 mov w3, 1024 + mov w2, 1 + adrp x0, .LC85 + add x0, x0, :lo12:.LC85 bl rknand_print_hex adrp x0, .LC84 mov w1, 0 add x0, x0, :lo12:.LC84 bl printk -.L1013: - b .L1013 -.L1012: - cmp w27, 6 - mov w7, 4 - beq .L1014 - cmp w27, 7 - mov w7, 10 - beq .L1014 - cmp w8, wzr - mov w7, 5 +.L1069: + b .L1069 +.L1041: + cmp w20, 7 + bne .L1047 + mov w6, 0 +.L1049: + ldrb w7, [x0] + cmp w7, 12 + beq .L1048 + ldrb w7, [x0, 1] + cmp w7, 10 + beq .L1048 + add w6, w6, 1 + add x0, x0, 4 + and w6, w6, 255 + cmp w6, 8 + bne .L1049 +.L1050: + adrp x0, .LC84 + mov w1, 0 + add x0, x0, :lo12:.LC84 + bl printk +.L1051: + b .L1051 +.L1048: + cmp w6, 6 + bls .L1045 + b .L1050 +.L1047: + cmp w20, 6 + bne .L1045 + mov x6, 0 +.L1052: + ldrb w7, [x0, x6] + cmp w7, 12 + beq .L1045 + add x7, x0, x6 + ldrb w7, [x7, 8] + cmp w7, 4 + beq .L1045 + add x6, x6, 1 + cmp x6, 8 + bne .L1052 + adrp x0, .LC84 + mov w1, 0 + add x0, x0, :lo12:.LC84 + bl printk +.L1054: + b .L1054 +.L1056: + ldr w6, [x19, 2048] + strb w6, [x8, x0] + add x0, x0, 1 + b .L1055 +.L1068: + cmp w20, 6 + beq .L1082 + cmp w20, 7 + beq .L1083 + cmp w20, 8 mov w1, 8 - csel w7, w1, w7, eq -.L1014: - mov w10, 0 -.L1015: + mov w6, 5 + csel w6, w6, w1, eq +.L1070: + mov w7, 0 +.L1071: mov x1, 0 -.L1016: - add w12, w0, w1 - ldrb w13, [x11,x1] +.L1072: + add w9, w0, w1 + ldrb w10, [x8, x1] add x1, x1, 1 cmp w28, w1, uxtb - strb w13, [x6,w12,sxtw] - bhi .L1016 - add w10, w10, 1 - ldr x1, [x29,112] - cmp w10, w26 - add w0, w0, w7 - add x11, x11, x1 - blt .L1015 + strb w10, [x4, w9, sxtw] + bhi .L1072 + ldr x1, [x29, 112] + add w7, w7, 1 + add w0, w0, w6 + cmp w27, w7 + add x8, x8, x1 + bgt .L1071 mov w0, 255 - str w0, [x24,2056] - mov w0, w22 - str x8, [x29,96] - str x9, [x29,104] + str w0, [x19, 2056] + mov w0, w25 bl NandcWaitFlashReady - ldr x9, [x29,104] - ldr x8, [x29,96] - cbz w9, .L1018 + cmp w26, 1 + bhi .L1074 mov w0, 54 - str w0, [x24,2056] + str w0, [x19, 2056] adrp x0, .LANCHOR0+1276 mov w1, -1 - ldrb w0, [x0,#:lo12:.LANCHOR0+1276] - str w0, [x24,2052] + ldrb w0, [x0, #:lo12:.LANCHOR0+1276] + str w0, [x19, 2052] + str wzr, [x19, 2048] mov w0, 22 - str wzr, [x24,2048] - str w0, [x24,2056] - mov w0, w21 + str w0, [x19, 2056] + mov w0, w23 bl FlashReadCmd - b .L1019 -.L1018: - mov w0, 190 - cbnz w8, .L1067 - mov w0, 56 -.L1067: - str w0, [x24,2056] -.L1019: - mov w0, w22 - add w21, w21, 1 +.L1075: + add w23, w23, 1 + mov w0, w25 + and w23, w23, 255 bl NandcWaitFlashReady - uxtb w21, w21 - b .L975 -.L978: + b .L1030 +.L1082: + mov w6, 4 + b .L1070 +.L1083: + mov w6, 10 + b .L1070 +.L1074: + cmp w20, 8 + bne .L1076 + mov w0, 190 +.L1126: + str w0, [x19, 2056] + b .L1075 +.L1076: + mov w0, 56 + b .L1126 +.L1033: mov w0, 120 - str w0, [x24,2056] - str wzr, [x24,2052] + str w0, [x19, 2056] + str wzr, [x19, 2052] mov w0, 23 - str wzr, [x24,2052] + str wzr, [x19, 2052] mov w1, 25 - str wzr, [x24,2052] - add x6, x20, 1300 - str w0, [x24,2056] + str wzr, [x19, 2052] + add x4, x22, 1300 + str w0, [x19, 2056] mov w0, 4 - str w0, [x24,2056] - str w1, [x24,2056] + str w0, [x19, 2056] + str w1, [x19, 2056] mov w1, 218 - str w1, [x24,2056] + str w1, [x19, 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 .L1022 + 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 .L1078 .size HynixGetReadRetryDefault, .-HynixGetReadRetryDefault .align 2 .global FlashGetReadRetryDefault .type FlashGetReadRetryDefault, %function FlashGetReadRetryDefault: + cbz w0, .L1140 stp x29, x30, [sp, -16]! - mov w1, w0 - add x29, sp, 0 - cbz w0, .L1069 sub w2, w0, #1 + mov w1, w0 cmp w2, 7 - bhi .L1071 + add x29, sp, 0 + bhi .L1129 bl HynixGetReadRetryDefault - b .L1069 -.L1071: +.L1127: + ldp x29, x30, [sp], 16 + ret +.L1129: cmp w0, 49 - bne .L1072 + bne .L1130 adrp x0, .LANCHOR0 - mov w2, 64 add x0, x0, :lo12:.LANCHOR0 - add x0, x0, 1276 - strb w1, [x0,-4] + mov w2, 64 + strb w1, [x0, 1272] mov w1, 4 - strb w1, [x0,-3] + strb w1, [x0, 1273] mov w1, 15 - strb w1, [x0,-2] + strb w1, [x0, 1274] adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 add x1, x1, 408 - b .L1087 -.L1072: - sub w0, w0, #65 - cmp w0, 1 - bls .L1078 - cmp w1, 33 - bne .L1073 -.L1078: - adrp x0, .LANCHOR0 - add x0, x0, :lo12:.LANCHOR0 - strb w1, [x0,1272] - mov w1, 4 - b .L1088 -.L1073: - cmp w1, 67 - beq .L1079 - cmp w1, 34 - bne .L1075 -.L1079: - adrp x0, .LANCHOR0 - add x0, x0, :lo12:.LANCHOR0 - strb w1, [x0,1272] - mov w1, 5 -.L1088: - strb w1, [x0,1273] - mov w1, 7 - strb w1, [x0,1274] - adrp x1, .LANCHOR1 - add x1, x1, :lo12:.LANCHOR1 +.L1143: add x0, x0, 1276 - add x1, x1, 256 - mov w2, 45 - b .L1087 -.L1075: - cmp w1, 68 - beq .L1080 - cmp w1, 35 - bne .L1069 -.L1080: - adrp x0, .LANCHOR0 - mov w2, 95 - add x0, x0, :lo12:.LANCHOR0 - add x0, x0, 1276 - strb w1, [x0,-4] - mov w1, 5 - strb w1, [x0,-3] - mov w1, 17 - strb w1, [x0,-2] - adrp x1, .LANCHOR1 - add x1, x1, :lo12:.LANCHOR1 - add x1, x1, 304 -.L1087: bl ftl_memcpy -.L1069: - ldp x29, x30, [sp], 16 + b .L1127 +.L1130: + sub w0, w0, #65 + cmp w1, 33 + ccmp w0, 1, 0, ne + bhi .L1131 + adrp x0, .LANCHOR0 + add x0, x0, :lo12:.LANCHOR0 + strb w1, [x0, 1272] + mov w1, 4 +.L1144: + strb w1, [x0, 1273] + mov w1, 7 + strb w1, [x0, 1274] + adrp x1, .LANCHOR1 + add x1, x1, :lo12:.LANCHOR1 + mov w2, 45 + add x1, x1, 352 + b .L1143 +.L1131: + cmp w1, 34 + mov w0, 67 + ccmp w1, w0, 4, ne + bne .L1132 + adrp x0, .LANCHOR0 + add x0, x0, :lo12:.LANCHOR0 + strb w1, [x0, 1272] + mov w1, 5 + b .L1144 +.L1132: + cmp w1, 35 + mov w0, 68 + ccmp w1, w0, 4, ne + bne .L1127 + adrp x0, .LANCHOR0 + add x0, x0, :lo12:.LANCHOR0 + mov w2, 95 + strb w1, [x0, 1272] + mov w1, 5 + strb w1, [x0, 1273] + mov w1, 17 + strb w1, [x0, 1274] + adrp x1, .LANCHOR1 + add x1, x1, :lo12:.LANCHOR1 + add x1, x1, 256 + b .L1143 +.L1140: ret .size FlashGetReadRetryDefault, .-FlashGetReadRetryDefault .align 2 @@ -7582,476 +7531,495 @@ NandcXferComp: stp x29, x30, [sp, -80]! ubfiz x0, x0, 4, 8 add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] adrp x20, .LANCHOR0 - str x23, [sp,48] add x1, x20, :lo12:.LANCHOR0 - add x2, x1, 8 - stp x21, x22, [sp,32] - ldr x19, [x2,x0] - ldr w0, [x1,2388] + stp x21, x22, [sp, 32] + stp x23, x24, [sp, 48] + ldr x19, [x1, x0] + ldr w0, [x1, 2388] cmp w0, 3 - bls .L1120 - ldr w0, [x19,16] - tbz x0, 2, .L1120 - ldr w21, [x19,16] - ldr w0, [x19,8] - ubfx x21, x21, 1, 1 - str w0, [x29,64] - cbz w21, .L1091 + bls .L1176 + ldr w0, [x19, 16] + tbz x0, 2, .L1176 + ldr w0, [x19, 16] + tbz x0, 1, .L1147 adrp x22, .LC86 adrp x23, .LC87 - mov w21, 0 + ldr w0, [x19, 8] + mov x24, x1 add x22, x22, :lo12:.LC86 add x23, x23, :lo12:.LC87 -.L1092: - ldr w2, [x19,28] - ldr w1, [x29,64] - ubfx x2, x2, 16, 5 - ubfx x1, x1, 22, 6 - cmp w2, w1 - bge .L1100 - add x0, x20, :lo12:.LANCHOR0 - ldr w0, [x0,2388] + mov w21, 0 + str w0, [x29, 64] +.L1148: + ldr w1, [x19, 28] + ldr w0, [x29, 64] + ubfx x1, x1, 16, 5 + ubfx x0, x0, 22, 6 + cmp w1, w0 + bge .L1156 + ldr w0, [x24, 2388] cmp w0, 5 - bhi .L1093 -.L1096: + bhi .L1149 +.L1152: add w21, w21, 1 - and w0, w21, 16777215 - cbnz w0, .L1095 - ldr w2, [x19,28] + tst x21, 16777215 + bne .L1151 + ldr w2, [x19, 28] mov w1, w21 - ldr w3, [x29,64] + ldr w3, [x29, 64] mov x0, x22 ubfx x2, x2, 16, 5 ubfx x3, x3, 22, 6 bl printk - mov x0, x23 - mov x1, x19 - mov w2, 4 mov w3, 512 + mov w2, 4 + mov x1, x19 + mov x0, x23 bl rknand_print_hex - b .L1095 -.L1093: +.L1151: + mov x1, 5 + mov x0, 1 + bl usleep_range + b .L1148 +.L1149: ldr w0, [x19] - str w0, [x29,72] - ldr w0, [x29,72] - tbz x0, 13, .L1096 - ldr w0, [x29,72] - tbz x0, 17, .L1096 -.L1100: + str w0, [x29, 72] + ldr w0, [x29, 72] + tbz x0, 13, .L1152 + ldr w0, [x29, 72] + tbz x0, 17, .L1152 +.L1156: add x19, x20, :lo12:.LANCHOR0 add x19, x19, 2408 - ldr w0, [x19,40] - cbz w0, .L1101 - ldr w1, [x29,64] + ldr w0, [x19, 40] + cbz w0, .L1157 + ldr w0, [x19, 32] mov w2, 0 - ldr w0, [x19,32] + ldr w1, [x29, 64] ubfx x1, x1, 22, 5 lsl w1, w1, 10 bl rknand_dma_unmap_single - ldr w1, [x29,64] + ldr w1, [x29, 64] mov w2, 0 - ldr w0, [x19,36] + ldr w0, [x19, 36] ubfx x1, x1, 22, 5 lsl w1, w1, 7 bl rknand_dma_unmap_single - b .L1101 -.L1095: - mov x0, 1 - mov x1, 5 - bl usleep_range - b .L1092 -.L1091: +.L1157: + add x20, x20, :lo12:.LANCHOR0 + str wzr, [x20, 2448] +.L1145: + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x29, x30, [sp], 80 + ret +.L1147: adrp x22, .LC88 adrp x23, .LC87 + ldr w0, [x19, 8] add x22, x22, :lo12:.LC88 add x23, x23, :lo12:.LC87 -.L1102: - ldr w0, [x29,64] - tbnz x0, 20, .L1128 - ldr w0, [x19,8] + mov w21, 0 + str w0, [x29, 64] +.L1158: + ldr w0, [x29, 64] + tbz x0, 20, .L1160 + add x0, x20, :lo12:.LANCHOR0 + ldr w0, [x0, 2456] + cbz w0, .L1161 + mov x0, x19 + bl NandcSendDumpDataStart +.L1161: + add x21, x20, :lo12:.LANCHOR0 + add x21, x21, 2408 + ldr w0, [x21, 40] + cbz w0, .L1162 + ldr w0, [x21, 32] + mov w2, 1 + ldr w1, [x29, 64] + ubfx x1, x1, 22, 5 + lsl w1, w1, 10 + bl rknand_dma_unmap_single + ldr w1, [x29, 64] + mov w2, 1 + ldr w0, [x21, 36] + ubfx x1, x1, 22, 5 + lsl w1, w1, 7 + bl rknand_dma_unmap_single +.L1162: + add x0, x20, :lo12:.LANCHOR0 + ldr w0, [x0, 2456] + cbz w0, .L1157 + mov x0, x19 + bl NandcSendDumpDataDone + b .L1157 +.L1160: + ldr w0, [x19, 8] add w21, w21, 1 - str w0, [x29,64] - and w0, w21, 16777215 - cbnz w0, .L1103 - ldr w2, [x29,64] + str w0, [x29, 64] + tst x21, 16777215 + bne .L1159 + ldr w2, [x29, 64] mov w1, w21 - ldr w3, [x19,28] + ldr w3, [x19, 28] mov x0, x22 ubfx x3, x3, 16, 5 bl printk - mov x0, x23 - mov x1, x19 - mov w2, 4 mov w3, 512 + mov w2, 4 + mov x1, x19 + mov x0, x23 bl rknand_print_hex -.L1103: - mov x0, 1 +.L1159: mov x1, 5 + mov x0, 1 bl usleep_range - b .L1102 -.L1128: - add x0, x20, :lo12:.LANCHOR0 - ldr w0, [x0,2456] - cbz w0, .L1105 - mov x0, x19 - bl NandcSendDumpDataStart -.L1105: - add x21, x20, :lo12:.LANCHOR0 - add x21, x21, 2408 - ldr w0, [x21,40] - cbz w0, .L1106 - ldr w1, [x29,64] - mov w2, 1 - ldr w0, [x21,32] - ubfx x1, x1, 22, 5 - lsl w1, w1, 10 - bl rknand_dma_unmap_single - ldr w1, [x29,64] - mov w2, 1 - ldr w0, [x21,36] - ubfx x1, x1, 22, 5 - lsl w1, w1, 7 - bl rknand_dma_unmap_single -.L1106: - add x0, x20, :lo12:.LANCHOR0 - ldr w0, [x0,2456] - cbz w0, .L1101 - mov x0, x19 - bl NandcSendDumpDataDone -.L1101: - add x20, x20, :lo12:.LANCHOR0 - str wzr, [x20,2448] - b .L1089 -.L1120: - ldr w0, [x19,8] - str w0, [x29,64] - ldr w0, [x29,64] - tbz x0, 20, .L1120 -.L1089: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldr x23, [sp,48] - ldp x29, x30, [sp], 80 - ret + b .L1158 +.L1176: + ldr w0, [x19, 8] + str w0, [x29, 64] + ldr w0, [x29, 64] + tbz x0, 20, .L1176 + b .L1145 .size NandcXferComp, .-NandcXferComp .align 2 .global NandcXferData .type NandcXferData, %function NandcXferData: - stp x29, x30, [sp, -176]! + stp x29, x30, [sp, -192]! + tst x3, 63 add x29, sp, 0 - stp x21, x22, [sp,32] - stp x25, x26, [sp,64] - stp x19, x20, [sp,16] - stp x23, x24, [sp,48] - stp x27, x28, [sp,80] + stp x25, x26, [sp, 64] + and w25, w0, 255 + stp x21, x22, [sp, 32] + sbfiz x0, x25, 4, 32 + stp x19, x20, [sp, 16] + and w21, w1, 255 adrp x19, .LANCHOR0 - uxtb w25, w0 - add x0, x19, :lo12:.LANCHOR0 - add x0, x0, w25, sxtw 4 - ldr x20, [x0,8] - and x0, x3, 63 - uxtb w21, w1 - uxtb w24, w2 + add x1, x19, :lo12:.LANCHOR0 + stp x23, x24, [sp, 48] mov x26, x3 + stp x27, x28, [sp, 80] + and w24, w2, 255 mov x22, x4 - cbnz x0, .L1130 - cbnz x4, .L1131 - add x0, x29, 112 - mov w1, 255 + ldr x20, [x1, x0] + bne .L1186 + cbnz x4, .L1187 + add x22, x29, 128 mov w2, 64 - add x22, x29, 112 + mov w1, 255 + add x0, x29, 128 bl ftl_memset -.L1131: - mov w0, w25 - mov w1, w21 +.L1187: + mov x5, x22 + mov x4, x26 mov w2, w24 mov w3, 0 - mov x4, x26 - mov x5, x22 - mov w23, 0 - bl NandcXferStart - mov w0, w25 mov w1, w21 + mov w0, w25 + bl NandcXferStart + mov w1, w21 + mov w0, w25 bl NandcXferComp - cbnz w21, .L1132 + cbnz w21, .L1211 add x1, x19, :lo12:.LANCHOR0 ubfx x2, x24, 1, 7 - mov w3, 128 add x2, x22, x2, lsl 2 - ldr w0, [x1,2460] + mov w3, 64 + ldr w0, [x1, 2460] cmp w0, 25 - mov w0, 64 - csel w3, w0, w3, cc - mov w0, w21 -.L1134: + mov w0, 128 + csel w3, w3, w0, cc + mov w0, 0 +.L1190: + add w4, w3, w0 cmp x22, x2 - add w4, w0, w3 - beq .L1176 - ldr x5, [x1,2416] - and x0, x0, 4294967292 - add x22, x22, 4 - ldr w0, [x5,x0] - strb w0, [x22,-4] - lsr w5, w0, 8 - strb w5, [x22,-3] - lsr w5, w0, 16 - strb w5, [x22,-2] - lsr w0, w0, 24 - strb w0, [x22,-1] - mov w0, w4 - b .L1134 -.L1176: + bne .L1191 add x0, x19, :lo12:.LANCHOR0 lsr w24, w24, 2 - ldr w5, [x0,2460] - ldr w4, [x0,2388] - mov w0, 0 - mov w23, w0 -.L1136: - cmp w0, w24 - bcs .L1132 - cbz w5, .L1132 - uxtw x1, w0 - add x1, x1, 8 - ldr w1, [x20,x1,lsl 2] - str w1, [x29,104] - ldr w1, [x29,104] - tbnz x1, 2, .L1160 - ldr w3, [x29,104] - ubfx x3, x3, 15, 1 - cbnz w3, .L1160 - cmp w4, 5 - bls .L1138 - ldr w2, [x29,104] - ubfx x6, x2, 3, 5 - ldr w2, [x29,104] - ldr w1, [x29,104] - ubfx x2, x2, 27, 1 - ubfx x3, x1, 16, 5 - ldr w1, [x29,104] - orr w2, w6, w2, lsl 5 - ubfx x1, x1, 29, 1 - orr w1, w3, w1, lsl 5 - ldr w3, [x29,104] - cmp w2, w1 - bls .L1139 - ldr w1, [x29,104] - ubfx x3, x3, 3, 5 - ubfx x1, x1, 27, 1 - orr w3, w3, w1, lsl 5 - b .L1140 -.L1139: - ubfx x1, x3, 16, 5 - ldr w3, [x29,104] - ubfx x3, x3, 29, 1 - b .L1175 -.L1138: - cmp w4, 3 - bls .L1140 - ldr w2, [x29,104] - ubfx x6, x2, 3, 5 - ldr w2, [x29,104] - ldr w1, [x29,104] - ubfx x2, x2, 28, 1 - ubfx x3, x1, 16, 5 - ldr w1, [x29,104] - orr w2, w6, w2, lsl 5 - ubfx x1, x1, 30, 1 - orr w1, w3, w1, lsl 5 - ldr w3, [x29,104] - cmp w2, w1 - bls .L1141 - ubfx x1, x3, 3, 5 - ldr w3, [x29,104] - ubfx x3, x3, 28, 1 - b .L1175 -.L1141: - ubfx x1, x3, 16, 5 - ldr w3, [x29,104] - ubfx x3, x3, 30, 1 -.L1175: - orr w3, w1, w3, lsl 5 -.L1140: - cmp w23, w3 - csel w23, w23, w3, cs - b .L1137 -.L1160: - mov w23, -1 -.L1137: - add w0, w0, 1 - b .L1136 -.L1132: - str wzr, [x20,16] - b .L1143 -.L1130: - cmp w21, 1 - bne .L1174 + mov w2, 0 mov w23, 0 - mov w28, 2 -.L1144: - cmp w23, w24 - bcs .L1177 - and w27, w23, 3 - mov x3, x26 - cbz x26, .L1146 - ubfiz x0, x23, 9, 23 - add x3, x26, x0 -.L1146: - cmp x22, xzr - mov x0, x20 - csel w4, w28, wzr, ne - mov w1, 1 - mov w2, w27 - mul w4, w4, w23 - add w23, w23, 2 - add x4, x22, x4 - bl NandcCopy1KB - mov x4, 0 - mov w0, w25 - mov w1, 1 - mov w2, 2 - mov w3, w27 - mov x5, x4 - bl NandcXferStart - mov w0, w25 - mov w1, 1 - bl NandcXferComp - b .L1144 -.L1177: - mov w23, 0 - b .L1143 -.L1174: - mov w1, 0 - mov x4, 0 - mov w27, 0 - mov w0, w25 - mov w2, 2 - mov w3, w1 - mov x5, x4 - mov w23, w27 - bl NandcXferStart -.L1149: - cmp w27, w24 - bcs .L1143 - mov w0, w25 - mov w1, w21 - add w28, w27, 2 - bl NandcXferComp - ldr w0, [x20,32] - cmp w28, w24 - str w0, [x29,104] - bcs .L1150 - mov x4, 0 - mov w0, w25 - mov w1, 0 - mov w2, 2 - and w3, w28, 3 - mov x5, x4 - bl NandcXferStart -.L1150: - ldr w0, [x29,104] - tbnz x0, 2, .L1165 - ldr w0, [x29,104] - ubfx x1, x0, 3, 5 - ldr w0, [x29,104] - ubfx x0, x0, 27, 1 - orr w0, w1, w0, lsl 5 - cmp w23, w0 - csel w23, w23, w0, cs - b .L1151 -.L1165: - mov w23, -1 -.L1151: - and w2, w27, 3 - mov x3, x26 - cbz x26, .L1152 - ubfiz x3, x27, 9, 23 - add x3, x26, x3 -.L1152: - cmp x22, xzr - mov w0, 2 - csel w4, w0, wzr, ne - mov w1, 0 - mov x0, x20 - mul w4, w4, w27 - mov w27, w28 - add x4, x22, x4 - bl NandcCopy1KB - b .L1149 -.L1143: - cbnz w21, .L1155 + ldr w3, [x0, 2388] + ldr w4, [x0, 2460] +.L1192: + cmp w2, w24 + bcs .L1188 + cbnz w4, .L1198 +.L1188: + str wzr, [x20, 16] +.L1199: add x19, x19, :lo12:.LANCHOR0 - ldr w0, [x19,2388] + ldr w0, [x19, 2388] cmp w0, 5 - bls .L1155 + bls .L1185 + cbnz w21, .L1185 ldr w0, [x20] mov w1, 8192 movk w1, 0x2, lsl 16 and w1, w0, w1 cmp w1, 139264 - bne .L1155 + bne .L1185 orr w0, w0, 131072 mov w23, -1 str w0, [x20] -.L1155: +.L1185: mov w0, w23 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 176 + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] + ldp x27, x28, [sp, 80] + ldp x29, x30, [sp], 192 ret +.L1191: + ldr x5, [x1, 2416] + and x0, x0, 4294967292 + add x22, x22, 4 + ldr w0, [x5, x0] + strb w0, [x22, -4] + lsr w5, w0, 8 + strb w5, [x22, -3] + lsr w5, w0, 16 + strb w5, [x22, -2] + lsr w0, w0, 24 + strb w0, [x22, -1] + mov w0, w4 + b .L1190 +.L1198: + uxtw x0, w2 + add x0, x0, 8 + ldr w0, [x20, x0, lsl 2] + str w0, [x29, 120] + ldr w0, [x29, 120] + tbnz x0, 2, .L1214 + ldr w0, [x29, 120] + tbnz x0, 15, .L1214 + cmp w3, 5 + bls .L1194 + ldr w1, [x29, 120] + ubfx x6, x1, 3, 5 + ldr w1, [x29, 120] + ldr w0, [x29, 120] + ubfx x1, x1, 27, 1 + ubfx x5, x0, 16, 5 + ldr w0, [x29, 120] + orr w1, w6, w1, lsl 5 + ubfx x0, x0, 29, 1 + orr w0, w5, w0, lsl 5 + cmp w1, w0 + ldr w0, [x29, 120] + bls .L1195 + ubfx x1, x0, 3, 5 + ldr w0, [x29, 120] + ubfx x0, x0, 27, 1 +.L1220: + orr w0, w1, w0, lsl 5 +.L1196: + cmp w23, w0 + csel w23, w23, w0, cs +.L1193: + add w2, w2, 1 + b .L1192 +.L1195: + ubfx x1, x0, 16, 5 + ldr w0, [x29, 120] + ubfx x0, x0, 29, 1 + b .L1220 +.L1194: + cmp w3, 3 + bls .L1215 + ldr w1, [x29, 120] + ubfx x6, x1, 3, 5 + ldr w1, [x29, 120] + ldr w0, [x29, 120] + ubfx x1, x1, 28, 1 + ubfx x5, x0, 16, 5 + ldr w0, [x29, 120] + orr w1, w6, w1, lsl 5 + ubfx x0, x0, 30, 1 + orr w0, w5, w0, lsl 5 + cmp w1, w0 + ldr w0, [x29, 120] + bls .L1197 + ubfx x1, x0, 3, 5 + ldr w0, [x29, 120] + ubfx x0, x0, 28, 1 + b .L1220 +.L1197: + ubfx x1, x0, 16, 5 + ldr w0, [x29, 120] + ubfx x0, x0, 30, 1 + b .L1220 +.L1215: + mov w0, 0 + b .L1196 +.L1214: + mov w23, -1 + b .L1193 +.L1211: + mov w23, 0 + b .L1188 +.L1186: + cmp w21, 1 + bne .L1200 + cmp x4, 0 + mov w27, 2 + csel w27, w27, wzr, ne + mov w28, 0 + lsl w27, w27, 1 + mov w23, 0 +.L1201: + cmp w23, w24 + bcc .L1203 + mov w23, 0 + b .L1199 +.L1203: + and w6, w23, 3 + cbz x26, .L1216 + lsl w3, w23, 9 + add x3, x26, x3 +.L1202: + add x4, x22, w28, uxtw + mov w2, w6 + mov x0, x20 + str w6, [x29, 108] + mov w1, 1 + bl NandcCopy1KB + ldr w6, [x29, 108] + mov x5, 0 + mov x4, 0 + mov w2, 2 + mov w3, w6 + mov w0, w25 + mov w1, 1 + add w23, w23, 2 + bl NandcXferStart + add w28, w28, w27 + mov w1, 1 + mov w0, w25 + bl NandcXferComp + b .L1201 +.L1216: + mov x3, 0 + b .L1202 +.L1200: + mov w0, w25 + mov x5, 0 + mov x4, 0 + mov w3, 0 + mov w2, 2 + mov w1, 0 + bl NandcXferStart + mov w27, 2 + cmp x22, 0 + mov w28, 0 + csel w27, w27, wzr, ne + mov w23, 0 + lsl w0, w27, 1 + mov w27, 0 + str w0, [x29, 108] +.L1204: + cmp w24, w27 + bls .L1199 + mov w0, w25 + mov w1, w21 + bl NandcXferComp + ldr w0, [x20, 32] + add w7, w27, 2 + str w0, [x29, 120] + cmp w24, w7 + bls .L1205 + and w3, w7, 3 + str w7, [x29, 104] + mov x5, 0 + mov x4, 0 + mov w2, 2 + mov w1, 0 + mov w0, w25 + bl NandcXferStart + ldr w7, [x29, 104] +.L1205: + ldr w0, [x29, 120] + tbnz x0, 2, .L1217 + ldr w0, [x29, 120] + ubfx x1, x0, 3, 5 + ldr w0, [x29, 120] + ubfx x0, x0, 27, 1 + orr w0, w1, w0, lsl 5 + cmp w23, w0 + csel w23, w23, w0, cs +.L1206: + and w2, w27, 3 + cbz x26, .L1218 + lsl w3, w27, 9 + add x3, x26, x3 +.L1207: + add x4, x22, w28, uxtw + mov x0, x20 + str w7, [x29, 104] + mov w1, 0 + bl NandcCopy1KB + ldp w7, w0, [x29, 104] + add w28, w28, w0 + mov w27, w7 + b .L1204 +.L1217: + mov w23, -1 + b .L1206 +.L1218: + mov x3, 0 + b .L1207 .size NandcXferData, .-NandcXferData .align 2 .global FlashReadRawPage .type FlashReadRawPage, %function FlashReadRawPage: stp x29, x30, [sp, -64]! - mov x4, x3 add x29, sp, 0 - stp x19, x20, [sp,16] - uxtb w19, w0 - adrp x0, .LANCHOR1+481 - str x21, [sp,32] - mov x21, x2 - ldrb w20, [x0,#:lo12:.LANCHOR1+481] - cbnz w19, .L1179 + stp x19, x20, [sp, 16] + ands w19, w0, 255 + stp x21, x22, [sp, 32] + mov w21, w1 + str x23, [sp, 48] + adrp x1, .LANCHOR1+481 + mov x22, x2 + mov x23, x3 + ldrb w20, [x1, #:lo12:.LANCHOR1+481] + bne .L1222 adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 - ldrb w5, [x0,73] - ldr w0, [x0,76] + ldrb w5, [x0, 73] + ldr w0, [x0, 76] mul w0, w5, w0 - cmp w1, w0 + cmp w0, w21 mov w0, 4 - csel w20, w20, w0, cs -.L1179: + csel w20, w20, w0, ls +.L1222: mov w0, w19 - str x4, [x29,48] - str x1, [x29,56] bl NandcWaitFlashReady mov w0, w19 bl NandcFlashCs - ldr x1, [x29,56] + mov w1, w21 mov w0, w19 bl FlashReadCmd mov w0, w19 bl NandcWaitFlashReady - ldr x4, [x29,48] mov w2, w20 - mov x3, x21 + mov x4, x23 + mov x3, x22 mov w1, 0 mov w0, w19 bl NandcXferData - mov w20, w0 + mov w2, w0 mov w0, w19 bl NandcFlashDeCs - ldr x21, [sp,32] - mov w0, w20 - ldp x19, x20, [sp,16] + mov w0, w2 + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldr x23, [sp, 48] ldp x29, x30, [sp], 64 ret .size FlashReadRawPage, .-FlashReadRawPage @@ -8059,161 +8027,160 @@ FlashReadRawPage: .global FlashDdrTunningRead .type FlashDdrTunningRead, %function FlashDdrTunningRead: - stp x29, x30, [sp, -128]! + stp x29, x30, [sp, -112]! add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] adrp x19, .LANCHOR0 add x19, x19, :lo12:.LANCHOR0 - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - stp x27, x28, [sp,80] - stp x25, x26, [sp,64] - uxtb w23, w0 + stp x23, x24, [sp, 48] + stp x25, x26, [sp, 64] + and w23, w0, 255 + stp x21, x22, [sp, 32] + mov w25, w1 + stp x27, x28, [sp, 80] mov w22, 6 - ldr x0, [x19,136] - mov w24, w1 - mov x28, x2 - mov x27, x3 - mov w25, w4 - mov w21, 1024 - ldr w0, [x0,304] - str w0, [x29,124] - ldr w0, [x19,2388] + mov x24, x2 + mov x28, x3 + ldr x0, [x19, 136] + mov w26, w4 + ldr w0, [x0, 304] + str w0, [x29, 108] + ldr w0, [x19, 2388] cmp w0, 8 mov w0, 12 csel w22, w22, w0, cc - cbz w4, .L1182 + cbz w4, .L1238 mov w0, 1 bl FlashSetInterfaceMode mov w0, 1 bl NandcSetMode mov w0, w23 bl FlashReset - mov w1, w24 - mov x2, x28 - mov x3, x27 + mov x3, x28 + mov x2, x24 + mov w1, w25 mov w0, w23 bl FlashReadRawPage - mov w21, w0 - ldrb w0, [x19,2357] + mov w20, w0 + ldrb w0, [x19, 2357] bl FlashSetInterfaceMode - ldrb w0, [x19,2357] + ldrb w0, [x19, 2357] bl NandcSetMode - cmn w21, #1 - bne .L1183 -.L1192: - mov w21, -1 - b .L1184 -.L1183: + cmn w20, #1 + bne .L1227 +.L1236: + mov w20, -1 +.L1224: + mov w0, w20 + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] + ldp x27, x28, [sp, 80] + ldp x29, x30, [sp], 112 + ret +.L1227: + mov w2, w20 + mov w1, w25 adrp x0, .LC89 - mov w1, w24 add x0, x0, :lo12:.LC89 - mov w2, w21 bl printk - cmp w21, 9 - bhi .L1185 - add x19, x19, w23, sxtw 4 - ldr x0, [x19,8] - ldr w1, [x0,3840] + cmp w20, 9 + bhi .L1229 + sbfiz x0, x23, 4, 32 + ldr x0, [x19, x0] + ldr w1, [x0, 3840] ldr w1, [x0] orr w1, w1, 131072 str w1, [x0] -.L1185: +.L1229: adrp x0, .LANCHOR4 add x0, x0, :lo12:.LANCHOR4 - ldr w1, [x0,1608] + ldr w1, [x0, 1616] add w1, w1, 1 - str w1, [x0,1608] + str w1, [x0, 1616] cmp w1, 2047 - bls .L1184 - mov x27, 0 - str wzr, [x0,1608] - mov x28, x27 -.L1182: + bls .L1224 + mov x28, 0 + mov x24, 0 + str wzr, [x0, 1616] +.L1226: + mov w5, 0 + mov w21, 0 + mov w6, 0 mov w19, 0 - mov w26, -1 - mov w5, w19 - mov w6, w19 - mov w20, w19 -.L1190: + mov w27, -1 +.L1234: + stp w5, w6, [x29, 100] mov w0, w22 - str x5, [x29,104] - str x6, [x29,112] bl NandcSetDdrPara - mov w1, w24 + mov w1, w25 + mov x3, x28 + mov x2, x24 mov w0, w23 - mov x2, x28 - mov x3, x27 bl FlashReadRawPage - add w1, w21, 1 - ldr x6, [x29,112] + add w1, w20, 1 cmp w0, w1 - ldr x5, [x29,104] - bhi .L1186 + ldp w5, w6, [x29, 100] + bhi .L1230 cmp w0, 2 - bhi .L1196 - add w20, w20, 1 - cmp w20, 9 - bls .L1196 - sub w19, w22, w20 - mov w21, w0 - mov w26, 0 - b .L1188 -.L1186: - cmp w6, w20 - bcs .L1197 - cmp w20, 7 - sub w5, w19, w20 - bhi .L1198 - mov w6, w20 - b .L1197 -.L1196: - mov x27, 0 - mov w19, w22 - mov w21, w0 - mov w26, 0 - mov x28, x27 - b .L1187 -.L1197: - mov w20, 0 -.L1187: - add w22, w22, 2 - cmp w22, 69 - bls .L1190 -.L1188: - cmp w6, w20 - csel w19, w19, w5, cc - b .L1189 -.L1198: - mov w19, w5 -.L1189: - cbz w19, .L1191 + bhi .L1240 + add w19, w19, 1 + cmp w19, 9 + bls .L1240 + mov w1, w21 + mov w20, w0 + sub w21, w22, w19 + mov w27, 0 +.L1232: + cmp w19, w6 + csel w21, w21, w1, hi +.L1233: + cbz w21, .L1235 + mov w1, w21 adrp x0, .LC90 - mov w1, w19 add x0, x0, :lo12:.LC90 bl printk - mov w0, w19 + mov w0, w21 bl NandcSetDdrPara -.L1191: - cbz w26, .L1184 +.L1235: + cbz w27, .L1224 adrp x0, .LC91 + mov w2, w25 mov w1, w23 add x0, x0, :lo12:.LC91 - mov w2, w24 bl printk - cbz w25, .L1192 - ldr w0, [x29,124] - lsr w0, w0, 8 + cbz w26, .L1236 + ldr w1, [x29, 108] + lsr w0, w1, 8 bl NandcSetDdrPara -.L1184: - mov w0, w21 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 128 - ret + b .L1224 +.L1238: + mov w20, 1024 + b .L1226 +.L1230: + cmp w19, w6 + bls .L1241 + sub w21, w5, w19 + cmp w19, 7 + bhi .L1233 + mov w6, w19 +.L1241: + mov w19, 0 + b .L1231 +.L1240: + mov w5, w22 + mov w20, w0 + mov w27, 0 + mov x28, 0 + mov x24, 0 +.L1231: + add w22, w22, 2 + cmp w22, 69 + bls .L1234 + mov w1, w21 + mov w21, w5 + b .L1232 .size FlashDdrTunningRead, .-FlashDdrTunningRead .align 2 .global FlashReadPage @@ -8221,99 +8188,97 @@ FlashDdrTunningRead: FlashReadPage: stp x29, x30, [sp, -80]! add x29, sp, 0 - stp x19, x20, [sp,16] - uxtb w20, w0 + stp x19, x20, [sp, 16] + and w20, w0, 255 + stp x23, x24, [sp, 48] mov w0, w20 - stp x23, x24, [sp,48] - stp x21, x22, [sp,32] - stp x25, x26, [sp,64] + stp x21, x22, [sp, 32] + mov x23, x2 + stp x25, x26, [sp, 64] mov w22, w1 - mov x24, x2 - mov x23, x3 + mov x24, x3 bl FlashReadRawPage - cmn w0, #1 mov w19, w0 - bne .L1208 + cmn w0, #1 + bne .L1251 adrp x21, .LANCHOR0 add x25, x21, :lo12:.LANCHOR0 - ldrb w26, [x25,80] - cbnz w26, .L1209 -.L1211: + ldrb w26, [x25, 80] + cbnz w26, .L1252 +.L1254: add x21, x21, :lo12:.LANCHOR0 - ldrb w0, [x21,2380] - cbz w0, .L1208 - b .L1229 -.L1209: - mov w0, w20 - mov w1, w22 - mov x2, x24 - mov x3, x23 - strb wzr, [x25,80] - bl FlashReadRawPage - strb w26, [x25,80] - cmn w0, #1 - beq .L1211 - mov w19, w0 - b .L1208 -.L1229: - ldr x0, [x21,136] - mov w1, w22 - mov x2, x24 - mov x3, x23 + ldrb w0, [x21, 2380] + cbz w0, .L1251 + ldr x0, [x21, 136] mov w4, 1 - ldr w25, [x0,304] + mov x3, x24 + mov x2, x23 + mov w1, w22 + ldr w25, [x0, 304] mov w0, w20 bl FlashDdrTunningRead - cmn w0, #1 mov w19, w0 - beq .L1212 - ldrb w0, [x21,2464] + cmn w0, #1 + beq .L1255 + ldrb w0, [x21, 2464] cmp w19, w0, lsr 1 - bls .L1208 -.L1212: + bls .L1251 +.L1255: lsr w0, w25, 8 bl NandcSetDdrPara -.L1208: - adrp x21, .LANCHOR4 - cmn w19, #1 - add x21, x21, :lo12:.LANCHOR4 - ldr x4, [x21,1616] - bne .L1213 - cbz x4, .L1213 + b .L1251 +.L1252: + strb wzr, [x25, 80] + mov x3, x24 + mov x2, x23 + mov w1, w22 + mov w0, w20 + bl FlashReadRawPage + strb w26, [x25, 80] + cmn w0, #1 + beq .L1254 + mov w19, w0 +.L1251: + adrp x21, .LANCHOR4 + add x21, x21, :lo12:.LANCHOR4 + ldr x4, [x21, 1624] + cbz x4, .L1250 + cmn w19, #1 + bne .L1250 + mov x3, x24 + mov x2, x23 mov w1, w22 - mov x2, x24 - mov x3, x23 mov w0, w20 blr x4 mov w19, w0 - adrp x0, .LC92 - mov w1, w19 - add x0, x0, :lo12:.LC92 - mov w2, w20 + mov w1, w0 mov w3, w22 + mov w2, w20 + adrp x0, .LC92 + add x0, x0, :lo12:.LC92 bl printk cmn w19, #1 - bne .L1213 + bne .L1250 adrp x0, .LANCHOR0+204 - ldrb w0, [x0,#:lo12:.LANCHOR0+204] - cbz w0, .L1213 + ldrb w0, [x0, #:lo12:.LANCHOR0+204] + cbz w0, .L1250 mov w0, w20 bl flash_enter_slc_mode - ldr x4, [x21,1616] - mov w0, w20 + ldr x4, [x21, 1624] + mov x3, x24 + mov x2, x23 mov w1, w22 - mov x2, x24 - mov x3, x23 + mov w0, w20 blr x4 mov w19, w0 mov w0, w20 bl flash_exit_slc_mode -.L1213: +.L1250: mov w0, w19 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] ldp x29, x30, [sp], 80 ret .size FlashReadPage, .-FlashReadPage @@ -8323,52 +8288,52 @@ FlashReadPage: FlashDdrParaScan: stp x29, x30, [sp, -48]! add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] adrp x19, .LANCHOR0 - mov w20, w1 - stp x21, x22, [sp,32] + stp x21, x22, [sp, 32] add x22, x19, :lo12:.LANCHOR0 - uxtb w21, w0 - ldrb w0, [x22,2357] + and w20, w0, 255 + mov w21, w1 + ldrb w0, [x22, 2357] bl FlashSetInterfaceMode - ldrb w0, [x22,2357] + ldrb w0, [x22, 2357] bl NandcSetMode + mov w4, 0 + mov x3, 0 mov x2, 0 - mov w1, w20 - mov x3, x2 - mov w4, w2 - mov w0, w21 + mov w1, w21 + mov w0, w20 bl FlashDdrTunningRead + mov x3, 0 mov w22, w0 mov x2, 0 - mov w0, w21 - mov w1, w20 - mov x3, x2 + mov w1, w21 + mov w0, w20 bl FlashReadRawPage cmn w0, #1 - beq .L1234 + beq .L1271 cmn w22, #1 - bne .L1231 -.L1234: + bne .L1272 +.L1271: add x20, x19, :lo12:.LANCHOR0 - ldrb w0, [x20,2357] - tbz x0, 0, .L1231 + ldrb w0, [x20, 2357] + tbz x0, 0, .L1272 mov w0, 1 bl FlashSetInterfaceMode mov w0, 1 bl NandcSetMode - strb wzr, [x20,2380] - b .L1233 -.L1231: - add x19, x19, :lo12:.LANCHOR0 - mov w0, 1 - strb w0, [x19,2380] -.L1233: + strb wzr, [x20, 2380] +.L1273: mov w0, 0 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] ldp x29, x30, [sp], 48 ret +.L1272: + add x19, x19, :lo12:.LANCHOR0 + mov w0, 1 + strb w0, [x19, 2380] + b .L1273 .size FlashDdrParaScan, .-FlashDdrParaScan .align 2 .global FlashLoadPhyInfo @@ -8377,142 +8342,137 @@ FlashLoadPhyInfo: stp x29, x30, [sp, -128]! mov w0, 60 add x29, sp, 0 - stp x23, x24, [sp,48] - adrp x23, .LANCHOR4 - adrp x24, .LANCHOR1 - strb w0, [x29,120] + stp x19, x20, [sp, 16] + adrp x20, .LANCHOR0 + stp x21, x22, [sp, 32] + adrp x21, .LANCHOR4 + strb w0, [x29, 120] mov w0, 40 - strb w0, [x29,121] + strb w0, [x29, 121] mov w0, 24 - strb w0, [x29,122] + strb w0, [x29, 122] mov w0, 16 - strb w0, [x29,123] - add x0, x23, :lo12:.LANCHOR4 - stp x21, x22, [sp,32] - stp x25, x26, [sp,64] - stp x27, x28, [sp,80] - stp x19, x20, [sp,16] - adrp x22, .LANCHOR0 - add x24, x24, :lo12:.LANCHOR1 - ldr x1, [x0,1600] - add x21, x22, :lo12:.LANCHOR0 - str x1, [x0,1624] - mov w20, 0 - str wzr, [x0,1632] - mov w25, 4 + strb w0, [x29, 123] + add x0, x20, :lo12:.LANCHOR0 + stp x23, x24, [sp, 48] + adrp x22, .LANCHOR1 + stp x27, x28, [sp, 80] + add x22, x22, :lo12:.LANCHOR1 + stp x25, x26, [sp, 64] + mov w27, 20036 + mov w19, 0 + mov w24, 4 + ldr w0, [x0, 76] + mov w23, -1 + str w0, [x29, 108] + add x0, x21, :lo12:.LANCHOR4 + movk w27, 0x4e41, lsl 16 + add x22, x22, 472 + ldr x1, [x0, 1608] + str x1, [x0, 1632] + str wzr, [x0, 1640] mov w0, 0 - mov w28, -1 - add x24, x24, 472 - add x27, x21, 96 - ldr w26, [x21,76] bl flash_enter_slc_mode -.L1242: - add w0, w20, 1 - mov x19, 0 - str w0, [x29,104] -.L1244: +.L1282: + add w28, w19, 1 + add x25, x21, :lo12:.LANCHOR4 + mov x26, 0 +.L1284: add x0, x29, 120 - ldrb w0, [x19,x0] + ldrb w0, [x0, x26] bl FlashBchSel - add x5, x23, :lo12:.LANCHOR4 - mov w0, 0 - mov w1, w20 + ldr x2, [x25, 1608] mov x3, 0 - str x5, [x29,96] - ldr x2, [x5,1600] + mov w1, w19 + mov w0, 0 bl FlashReadRawPage cmn w0, #1 - bne .L1243 - ldr x5, [x29,96] - mov w0, 0 - ldr w1, [x29,104] + bne .L1283 + ldr x2, [x25, 1608] mov x3, 0 - ldr x2, [x5,1600] + mov w1, w28 + mov w0, 0 bl FlashReadRawPage cmn w0, #1 - bne .L1243 - add x19, x19, 1 - cmp x19, 4 - beq .L1245 - b .L1244 -.L1246: - add x0, x2, 12 + bne .L1283 + add x26, x26, 1 + cmp x26, 4 + bne .L1284 +.L1285: + ldr w0, [x29, 108] + subs w24, w24, #1 + add w19, w19, w0 + bne .L1282 + b .L1290 +.L1286: mov w1, 2036 - str x2, [x29,104] - mov w28, -1 + add x0, x6, 12 bl js_hash - ldr x2, [x29,104] - ldr w1, [x2,8] + ldr w1, [x6, 8] cmp w1, w0 - beq .L1256 -.L1245: - subs w25, w25, #1 - add w20, w20, w26 - bne .L1242 - mov w0, w25 -.L1255: - bl flash_exit_slc_mode - mov w0, w28 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 128 - ret -.L1243: - add x19, x23, :lo12:.LANCHOR4 - mov w0, 20036 - movk w0, 0x4e41, lsl 16 - ldr x2, [x19,1624] - ldr w1, [x2] - cmp w1, w0 - bne .L1245 - cbnz w28, .L1246 - add x22, x22, :lo12:.LANCHOR0 - ldr w0, [x22,76] - udiv w20, w20, w0 - mov w0, w28 - add w20, w20, 1 - str w20, [x19,1636] - b .L1255 -.L1256: - add x1, x2, 160 - mov x0, x24 + bne .L1292 + add x1, x6, 160 mov w2, 32 + mov x0, x22 bl ftl_memcpy - ldr x1, [x19,1624] + ldr x1, [x25, 1632] + add x23, x20, :lo12:.LANCHOR0 mov w2, 32 - mov x0, x27 + add x0, x23, 96 add x1, x1, 192 bl ftl_memcpy - ldr x1, [x19,1624] + ldr x1, [x25, 1632] mov w2, 852 - add x0, x21, 1272 + add x0, x23, 1272 add x1, x1, 224 bl ftl_memcpy - ldrh w0, [x24,10] + ldrh w0, [x22, 10] bl FlashBlockAlignInit - str w20, [x19,1632] - ldr w1, [x21,76] - ldr x2, [x19,1624] - udiv w1, w20, w1 - ldr w0, [x2,1076] - add w1, w1, 1 - strb w0, [x21,2380] - cmp w1, 1 - bls .L1248 - str w1, [x19,1636] - b .L1249 -.L1248: + str w19, [x25, 1640] + ldr x1, [x25, 1632] + ldr w0, [x1, 1076] + strb w0, [x23, 2380] + ldr w0, [x23, 76] + udiv w0, w19, w0 + add w0, w0, 1 + cmp w0, 1 + bls .L1288 +.L1295: + str w0, [x25, 1644] + add x0, x21, :lo12:.LANCHOR4 + ldrh w1, [x1, 14] + mov w23, 0 + strb w1, [x0, 1648] + b .L1285 +.L1288: mov w0, 2 - str w0, [x19,1636] -.L1249: - add x0, x23, :lo12:.LANCHOR4 - ldrh w1, [x2,14] - mov w28, 0 - strb w1, [x0,1640] - b .L1245 + b .L1295 +.L1292: + mov w23, -1 + b .L1285 +.L1283: + add x25, x21, :lo12:.LANCHOR4 + ldr x6, [x25, 1632] + ldr w0, [x6] + cmp w0, w27 + bne .L1285 + cbnz w23, .L1286 + add x20, x20, :lo12:.LANCHOR0 + ldr w0, [x20, 76] + udiv w19, w19, w0 + add w19, w19, 1 + str w19, [x25, 1644] +.L1290: + mov w0, 0 + bl flash_exit_slc_mode + mov w0, w23 + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] + ldp x27, x28, [sp, 80] + ldp x29, x30, [sp], 128 + ret .size FlashLoadPhyInfo, .-FlashLoadPhyInfo .align 2 .global ToshibaReadRetrial @@ -8520,174 +8480,172 @@ FlashLoadPhyInfo: ToshibaReadRetrial: stp x29, x30, [sp, -128]! add x29, sp, 0 - stp x23, x24, [sp,48] - uxtb w23, w0 - mov w0, w23 - str w1, [x29,116] - stp x19, x20, [sp,16] - stp x27, x28, [sp,80] - stp x21, x22, [sp,32] - stp x25, x26, [sp,64] - mov x27, x2 - mov x26, x3 - adrp x19, .LANCHOR0 - bl NandcWaitFlashReady - add x2, x19, :lo12:.LANCHOR0 - sbfiz x0, x23, 4, 32 - add x1, x2, 8 - mov w22, 0 - add x3, x1, x0 - ldr x24, [x1,x0] - ldrb w0, [x3,8] - str x0, [x29,120] - add x20, x0, 8 - mov x28, x0 - ldrb w0, [x2,128] - add x20, x24, x20, lsl 8 - sub w0, w0, #67 - uxtb w0, w0 - cmp w0, 1 - bls .L1258 - ldrb w0, [x2,2380] - cbz w0, .L1259 + stp x21, x22, [sp, 32] + and w22, w0, 255 + stp x19, x20, [sp, 16] mov w0, w22 - mov w22, 1 + stp x27, x28, [sp, 80] + mov x27, x3 + stp x23, x24, [sp, 48] + adrp x19, .LANCHOR0 + str x2, [x29, 112] + str w1, [x29, 120] + stp x25, x26, [sp, 64] + bl NandcWaitFlashReady + add x1, x19, :lo12:.LANCHOR0 + sbfiz x0, x22, 4, 32 + add x2, x1, x0 + ldr x23, [x1, x0] + ldrb w0, [x1, 128] + ldrb w28, [x2, 8] + sub w0, w0, #67 + str w28, [x29, 124] + add x20, x28, 8 + and w0, w0, 255 + add x20, x23, x20, lsl 8 + cmp w0, 1 + bls .L1313 + ldrb w0, [x1, 2380] + cbz w0, .L1314 + mov w24, 1 + mov w0, 0 bl NandcSetDdrMode -.L1259: - ubfiz x0, x28, 8, 8 - mov w2, 92 - add x0, x24, x0 - str w2, [x0,2056] - mov w2, 197 - str w2, [x0,2056] -.L1258: - ldr x0, [x29,120] +.L1298: + add x0, x23, x28, lsl 8 + mov w1, 92 + str w1, [x0, 2056] + mov w1, 197 + str w1, [x0, 2056] +.L1297: + ldrsw x0, [x29, 124] mov w21, 1 mov w25, -1 add x0, x0, 8 - lsl x0, x0, 8 - str x0, [x29,104] - ubfiz x0, x28, 8, 8 - str x0, [x29,96] -.L1260: + add x0, x23, x0, lsl 8 + str x0, [x29, 104] +.L1299: adrp x0, .LANCHOR4 add x0, x0, :lo12:.LANCHOR4 - ldrb w0, [x0,1641] + ldrb w0, [x0, 1649] add w0, w0, 1 cmp w21, w0 - bcs .L1285 - add x0, x19, :lo12:.LANCHOR0 - mov w1, w21 - ldrb w0, [x0,128] - sub w0, w0, #67 - uxtb w0, w0 - cmp w0, 1 - mov x0, x20 - bhi .L1261 - bl SandiskSetRRPara - b .L1262 -.L1261: - bl ToshibaSetRRPara -.L1262: - add x0, x19, :lo12:.LANCHOR0 - ldrb w0, [x0,128] - cmp w0, 34 - bne .L1263 - adrp x0, .LANCHOR4 - add x0, x0, :lo12:.LANCHOR4 - ldrb w0, [x0,1641] - sub w0, w0, #3 - cmp w21, w0 - bne .L1263 - ldr x0, [x29,104] - mov w1, 179 - add x0, x24, x0 - str w1, [x0,8] -.L1263: - ldr x0, [x29,96] - mov w1, 38 - add x0, x24, x0 - str w1, [x0,2056] - mov w1, 93 - str w1, [x0,2056] - cbz w22, .L1264 - mov w0, 4 - bl NandcSetDdrMode - ldr w1, [x29,116] - mov w0, w23 - mov x2, x27 - mov x3, x26 - bl FlashReadRawPage - mov w28, w0 - mov w0, 0 - bl NandcSetDdrMode - b .L1265 -.L1264: - ldr w1, [x29,116] - mov w0, w23 - mov x2, x27 - mov x3, x26 - bl FlashReadRawPage - mov w28, w0 -.L1265: - cmn w28, #1 - beq .L1266 - add x0, x19, :lo12:.LANCHOR0 - cmn w25, #1 - csel w25, w25, w28, ne - ldrb w0, [x0,2464] - add w0, w0, w0, lsl 1 - cmp w28, w0, lsr 2 - bcc .L1268 - mov x26, 0 - mov x27, x26 -.L1266: - add w21, w21, 1 - b .L1260 -.L1285: - mov w28, w25 -.L1268: + bcc .L1308 + mov w26, w25 +.L1307: add x0, x19, :lo12:.LANCHOR0 mov w1, 0 - ldrb w0, [x0,128] + ldrb w0, [x0, 128] sub w0, w0, #67 - uxtb w0, w0 + and w0, w0, 255 cmp w0, 1 mov x0, x20 - bhi .L1270 + bhi .L1309 bl SandiskSetRRPara - b .L1271 -.L1270: - bl ToshibaSetRRPara -.L1271: - ldr x0, [x29,120] +.L1310: + ldrsw x0, [x29, 124] add x19, x19, :lo12:.LANCHOR0 add x0, x0, 8 - add x24, x24, x0, lsl 8 + add x23, x23, x0, lsl 8 mov w0, 255 - str w0, [x24,8] - ldrb w0, [x19,2464] + str w0, [x23, 8] + ldrb w0, [x19, 2464] add w0, w0, w0, lsl 1 - cmp w28, w0, lsr 2 - bcc .L1272 - cmn w28, #1 + cmp w26, w0, lsr 2 + bcc .L1311 + cmn w26, #1 mov w0, 256 - csel w28, w28, w0, eq -.L1272: - mov w0, w23 + csel w26, w26, w0, eq +.L1311: + mov w0, w22 bl NandcWaitFlashReady - cbz w22, .L1273 + cbz w24, .L1296 mov w0, 4 bl NandcSetDdrMode -.L1273: - mov w0, w28 - 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] +.L1296: + 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], 128 ret +.L1314: + mov w24, 0 + b .L1298 +.L1313: + mov w24, 0 + b .L1297 +.L1308: + add x0, x19, :lo12:.LANCHOR0 + mov w1, w21 + ldrb w0, [x0, 128] + sub w0, w0, #67 + and w0, w0, 255 + cmp w0, 1 + mov x0, x20 + bhi .L1300 + bl SandiskSetRRPara +.L1301: + add x0, x19, :lo12:.LANCHOR0 + ldrb w0, [x0, 128] + cmp w0, 34 + bne .L1302 + adrp x0, .LANCHOR4 + add x0, x0, :lo12:.LANCHOR4 + ldrb w0, [x0, 1649] + sub w0, w0, #3 + cmp w21, w0 + bne .L1302 + ldr x1, [x29, 104] + mov w0, 179 + str w0, [x1, 8] +.L1302: + add x0, x23, x28, lsl 8 + mov w1, 38 + str w1, [x0, 2056] + mov w1, 93 + str w1, [x0, 2056] + cbz w24, .L1303 + mov w0, 4 + bl NandcSetDdrMode + ldr w1, [x29, 120] + mov x3, x27 + ldr x2, [x29, 112] + mov w0, w22 + bl FlashReadRawPage + mov w26, w0 + mov w0, 0 + bl NandcSetDdrMode +.L1304: + cmn w26, #1 + beq .L1305 + add x0, x19, :lo12:.LANCHOR0 + cmn w25, #1 + csel w25, w25, w26, ne + ldrb w0, [x0, 2464] + add w0, w0, w0, lsl 1 + cmp w26, w0, lsr 2 + bcc .L1307 + mov x27, 0 + str xzr, [x29, 112] +.L1305: + add w21, w21, 1 + b .L1299 +.L1300: + bl ToshibaSetRRPara + b .L1301 +.L1303: + ldr w1, [x29, 120] + mov x3, x27 + ldr x2, [x29, 112] + mov w0, w22 + bl FlashReadRawPage + mov w26, w0 + b .L1304 +.L1309: + bl ToshibaSetRRPara + b .L1310 .size ToshibaReadRetrial, .-ToshibaReadRetrial .align 2 .global SamsungReadRetrial @@ -8695,80 +8653,81 @@ ToshibaReadRetrial: SamsungReadRetrial: stp x29, x30, [sp, -96]! add x29, sp, 0 - stp x21, x22, [sp,32] - uxtb w22, w0 - str x27, [sp,80] + stp x21, x22, [sp, 32] + and w22, w0, 255 + stp x19, x20, [sp, 16] mov w0, w22 - adrp x27, .LANCHOR4 - stp x19, x20, [sp,16] - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] - mov x24, x2 + stp x23, x24, [sp, 48] + mov x23, x2 + stp x25, x26, [sp, 64] + mov x24, x3 + stp x27, x28, [sp, 80] mov w25, w1 - mov x23, x3 - adrp x20, .LANCHOR0 bl NandcWaitFlashReady - mov w26, 1 - add x0, x20, :lo12:.LANCHOR0 + adrp x20, .LANCHOR0 sbfiz x1, x22, 4, 32 - add x0, x0, 8 - mov w19, -1 + add x0, x20, :lo12:.LANCHOR0 add x2, x0, x1 - ldr x0, [x0,x1] - ldrb w21, [x2,8] + adrp x28, .LANCHOR4 + mov x26, x0 + add x28, x28, :lo12:.LANCHOR4 + ldr x1, [x0, x1] + mov w27, 1 + ldrb w21, [x2, 8] + mov w19, -1 add x21, x21, 8 - add x21, x0, x21, lsl 8 -.L1287: - add x0, x27, :lo12:.LANCHOR4 - ldrb w0, [x0,1641] + add x21, x1, x21, lsl 8 +.L1325: + ldrb w0, [x28, 1649] add w0, w0, 1 - cmp w26, w0 - bcs .L1290 - mov x0, x21 - mov w1, w26 - bl SamsungSetRRPara - mov w0, w22 - mov w1, w25 - mov x2, x24 - mov x3, x23 - bl FlashReadRawPage - cmn w0, #1 - beq .L1288 - add x1, x20, :lo12:.LANCHOR0 - cmn w19, #1 - csel w19, w19, w0, ne - ldrb w1, [x1,2464] - add w1, w1, w1, lsl 1 - cmp w0, w1, lsr 2 - bcc .L1293 - mov x23, 0 - mov x24, x23 -.L1288: - add w26, w26, 1 - b .L1287 -.L1293: - mov w19, w0 -.L1290: + cmp w27, w0 + bcc .L1329 +.L1328: + add x20, x20, :lo12:.LANCHOR0 mov x0, x21 mov w1, 0 - add x20, x20, :lo12:.LANCHOR0 bl SamsungSetRRPara - ldrb w0, [x20,2464] + ldrb w0, [x20, 2464] add w0, w0, w0, lsl 1 cmp w19, w0, lsr 2 - bcc .L1292 + bcc .L1324 cmn w19, #1 mov w0, 256 csel w19, w19, w0, eq -.L1292: +.L1324: mov w0, w19 - ldr x27, [sp,80] - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] + ldp 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 +.L1329: + mov w1, w27 + mov x0, x21 + bl SamsungSetRRPara + mov x3, x24 + mov x2, x23 + mov w1, w25 + mov w0, w22 + bl FlashReadRawPage + cmn w0, #1 + beq .L1326 + ldrb w1, [x26, 2464] + cmn w19, #1 + csel w19, w19, w0, ne + add w1, w1, w1, lsl 1 + cmp w0, w1, lsr 2 + bcc .L1331 + mov x24, 0 + mov x23, 0 +.L1326: + add w27, w27, 1 + b .L1325 +.L1331: + mov w19, w0 + b .L1328 .size SamsungReadRetrial, .-SamsungReadRetrial .align 2 .global MicronReadRetrial @@ -8776,160 +8735,148 @@ SamsungReadRetrial: MicronReadRetrial: stp x29, x30, [sp, -160]! add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x20, .LANCHOR0 - stp x21, x22, [sp,32] - uxtb w21, w0 - add x0, x20, :lo12:.LANCHOR0 - stp x25, x26, [sp,64] - stp x27, x28, [sp,80] - stp x23, x24, [sp,48] - mov w28, w1 - mov x26, x2 - ldrb w19, [x0,2464] - mov x22, x3 - ldrb w0, [x0,204] - cbnz w0, .L1300 + stp x19, x20, [sp, 16] + and w20, w0, 255 + adrp x0, .LANCHOR0 + stp x23, x24, [sp, 48] + str w1, [x29, 156] + add x1, x0, :lo12:.LANCHOR0 + stp x21, x22, [sp, 32] + mov x23, x2 + stp x25, x26, [sp, 64] + mov x24, x3 + stp x27, x28, [sp, 80] + ldrb w19, [x1, 2464] + ldrb w1, [x1, 204] + cbnz w1, .L1339 add w19, w19, w19, lsl 1 - ubfx x19, x19, 2, 8 - b .L1301 -.L1300: - mov w0, 3 - sdiv w19, w19, w0 -.L1301: - adrp x27, .LC93 - mov w25, 0 - add x0, x27, :lo12:.LC93 - str x0, [x29,152] - add x20, x20, :lo12:.LANCHOR0 - add x23, x20, 8 - add x23, x23, w21, sxtw 4 -.L1312: - mov w0, w21 - mov w24, 0 - mov w27, -1 + asr w19, w19, 2 +.L1340: + add x0, x0, :lo12:.LANCHOR0 + mov w22, 0 + str x0, [x29, 144] + mov w27, 239 + add x0, x0, w20, sxtw 4 + mov w28, 137 + str x0, [x29, 136] +.L1350: + mov w0, w20 bl NandcWaitFlashReady - ldrb w4, [x23,8] - mov w9, 239 - ldr x6, [x23] - mov w10, 137 - lsl x8, x4, 8 -.L1302: - adrp x0, .LANCHOR4 - add x0, x0, :lo12:.LANCHOR4 - ldrb w0, [x0,1641] - cmp w24, w0 - bcs .L1305 - add x2, x6, x8 + ldr x0, [x29, 136] + adrp x7, .LANCHOR4 + add x7, x7, :lo12:.LANCHOR4 + mov w21, 0 + mov w25, -1 + ldrb w4, [x0, 8] + ldr x8, [x0] + add x26, x8, x4, lsl 8 +.L1341: + ldrb w0, [x7, 1649] + cmp w21, w0 + bcc .L1345 +.L1344: + add x4, x8, x4, lsl 8 mov x0, 1000 - str x4, [x29,104] - str x8, [x29,112] - str w9, [x2,2056] - str w10, [x2,2052] - str x6, [x29,120] - str x9, [x29,128] - str x10, [x29,136] - str x2, [x29,144] + str x4, [x29, 128] + str w27, [x4, 2056] + str w28, [x4, 2052] bl __const_udelay - ldr x2, [x29,144] - add w7, w24, 1 - mov w0, w21 - mov w1, w28 - mov x3, x22 - str x7, [x29,144] - str w7, [x2,2048] - str wzr, [x2,2048] - str wzr, [x2,2048] - str wzr, [x2,2048] - mov x2, x26 + ldr x4, [x29, 128] + cmp w25, w19 + str wzr, [x4, 2048] + str wzr, [x4, 2048] + str wzr, [x4, 2048] + str wzr, [x4, 2048] + bcc .L1346 + cmn w25, #1 + mov w0, 256 + csel w25, w25, w0, eq +.L1346: + cmp w25, 256 + ccmn w25, #1, 4, ne + bne .L1347 + ldr w2, [x29, 156] + adrp x0, .LC93 + mov w4, w25 + mov w3, w21 + mov w1, w21 + add x0, x0, :lo12:.LC93 + bl printk + cbnz w22, .L1348 + ldr x0, [x29, 144] + ldrb w0, [x0, 204] + cbz w0, .L1338 + cmn w25, #1 + bne .L1338 + mov w1, 3 + mov w0, w20 + mov w22, 1 + bl micron_auto_read_calibration_config + b .L1350 +.L1339: + mov w1, 3 + sdiv w19, w19, w1 + b .L1340 +.L1345: + str w27, [x26, 2056] + mov x0, 1000 + str w28, [x26, 2052] + stp x4, x7, [x29, 104] + str x8, [x29, 120] + bl __const_udelay + add w9, w21, 1 + str w9, [x26, 2048] + str wzr, [x26, 2048] + mov x3, x24 + ldr w1, [x29, 156] + mov x2, x23 + str wzr, [x26, 2048] + mov w0, w20 + str wzr, [x26, 2048] + str w9, [x29, 128] bl FlashReadRawPage cmn w0, #1 - ldr x7, [x29,144] - ldr x10, [x29,136] - ldr x9, [x29,128] - ldr x6, [x29,120] - ldr x8, [x29,112] - ldr x4, [x29,104] - beq .L1303 - cmn w27, #1 - csel w27, w27, w0, ne + ldr w9, [x29, 128] + ldp x4, x7, [x29, 104] + ldr x8, [x29, 120] + beq .L1342 + cmn w25, #1 + csel w25, w25, w0, ne cmp w0, w19 - bcc .L1314 - mov x22, 0 - mov x26, x22 -.L1303: - mov w24, w7 - b .L1302 -.L1314: - mov x22, 0 - mov w27, w0 - mov x26, x22 -.L1305: - 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 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 .L1307 - cmn w27, #1 - mov w0, 256 - csel w27, w27, w0, eq -.L1307: - cmn w27, #1 - cset w6, eq - cbnz w6, .L1316 - cmp w27, 256 - cset w1, eq - cbz w1, .L1308 -.L1316: - ldr x0, [x29,152] - mov w1, w24 - mov w2, w28 - mov w3, w24 - mov w4, w27 - str x6, [x29,144] - bl printk - cbnz w25, .L1310 - ldr x6, [x29,144] - cbz w6, .L1321 - ldrb w0, [x20,204] - cbz w0, .L1321 - mov w0, w21 - mov w1, 3 - mov w25, 1 - bl micron_auto_read_calibration_config - b .L1312 -.L1310: - mov w0, w21 + bcc .L1352 + mov x24, 0 + mov x23, 0 +.L1342: + mov w21, w9 + b .L1341 +.L1352: + mov w25, w0 + mov x24, 0 + mov x23, 0 + b .L1344 +.L1348: + mov w0, w20 mov w1, 0 bl micron_auto_read_calibration_config - cmn w27, #1 + cmn w25, #1 mov w0, 256 - csel w27, w27, w0, eq - b .L1321 -.L1308: - cbz w25, .L1321 - mov w0, w21 - mov w27, 256 - bl micron_auto_read_calibration_config -.L1321: - mov w0, w27 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] + csel w25, w25, w0, eq +.L1338: + mov w0, w25 + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] + ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 160 ret +.L1347: + cbz w22, .L1338 + mov w1, 0 + mov w0, w20 + mov w25, 256 + bl micron_auto_read_calibration_config + b .L1338 .size MicronReadRetrial, .-MicronReadRetrial .align 2 .global HynixReadRetrial @@ -8937,321 +8884,306 @@ MicronReadRetrial: HynixReadRetrial: stp x29, x30, [sp, -112]! add x29, sp, 0 - stp x21, x22, [sp,32] + stp x21, x22, [sp, 32] adrp x21, .LANCHOR0 - uxtb x22, w0 + stp x27, x28, [sp, 80] + and x27, x0, 255 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 + stp x25, x26, [sp, 64] + stp x23, x24, [sp, 48] + mov x24, x2 + stp x19, x20, [sp, 16] add x2, x0, 1272 - ldrb w25, [x0,1274] - mov w27, w1 - ldr x0, [x0,88] - add x1, x2, x22 - mov x23, x22 - mov x24, x3 - ldrb w0, [x0,19] - ldrb w19, [x1,12] + mov w26, w1 + add x1, x2, x27 + ldrb w23, [x0, 1274] + mov x22, x27 + ldr x0, [x0, 88] + mov x25, x3 + ldrb w19, [x1, 12] + ldrb w0, [x0, 19] sub w0, w0, #7 - uxtb w0, w0 + and w0, w0, 255 cmp w0, 1 - bhi .L1330 - ldrb w19, [x1,20] -.L1330: - mov w0, w23 - mov w28, 0 - mov w20, -1 + bhi .L1364 + ldrb w19, [x1, 20] +.L1364: + mov w0, w22 bl NandcWaitFlashReady add x4, x21, :lo12:.LANCHOR0 + mov w28, 0 add x5, x4, 1276 -.L1331: - cmp w28, w25 - bcs .L1335 + mov w20, -1 +.L1365: + cmp w28, w23 + bcc .L1370 +.L1369: + add x0, x21, :lo12:.LANCHOR0 + ldr x1, [x0, 88] + add x0, x0, 1272 + add x0, x0, x27 + ldrb w1, [x1, 19] + sub w1, w1, #7 + and w1, w1, 255 + cmp w1, 1 + bhi .L1371 + strb w19, [x0, 20] +.L1372: + add x21, x21, :lo12:.LANCHOR0 + ldrb w0, [x21, 2464] + add w0, w0, w0, lsl 1 + cmp w20, w0, lsr 2 + bcc .L1363 + cmn w20, #1 + mov w0, 256 + csel w20, w20, w0, eq +.L1363: + mov w0, w20 + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] + ldp x27, x28, [sp, 80] + ldp x29, x30, [sp], 112 + ret +.L1370: add w19, w19, 1 - ldrb w1, [x4,1273] + ldrb w1, [x4, 1273] + and w19, w19, 255 mov x2, x5 - mov w0, w23 - uxtb w19, w19 - str x4, [x29,96] - cmp w19, w25 - str x5, [x29,104] - csel w19, w19, wzr, cc + cmp w23, w19 + stp x5, x4, [x29, 96] + csel w19, w19, wzr, hi + mov w0, w22 mov w3, w19 bl HynixSetRRPara - mov w0, w23 - mov w1, w27 - mov x2, x26 - mov x3, x24 + mov x3, x25 + mov x2, x24 + mov w1, w26 + mov w0, w22 bl FlashReadRawPage cmn w0, #1 - ldr x5, [x29,104] - ldr x4, [x29,96] - beq .L1333 - ldrb w1, [x4,2464] + ldp x5, x4, [x29, 96] + beq .L1367 + ldrb w1, [x4, 2464] cmn w20, #1 csel w20, w20, w0, ne add w1, w1, w1, lsl 1 cmp w0, w1, lsr 2 - bcc .L1340 + bcc .L1374 + mov x25, 0 mov x24, 0 - mov x26, x24 -.L1333: +.L1367: add w28, w28, 1 - b .L1331 -.L1340: + b .L1365 +.L1374: mov w20, w0 -.L1335: - add x0, x21, :lo12:.LANCHOR0 - ldr x1, [x0,88] - add x0, x0, 1272 - add x0, x0, x22 - ldrb w1, [x1,19] - sub w1, w1, #7 - uxtb w1, w1 - cmp w1, 1 - bhi .L1337 - strb w19, [x0,20] - b .L1338 -.L1337: - strb w19, [x0,12] -.L1338: - add x21, x21, :lo12:.LANCHOR0 - ldrb w0, [x21,2464] - add w0, w0, w0, lsl 1 - cmp w20, w0, lsr 2 - bcc .L1339 - cmn w20, #1 - mov w0, 256 - csel w20, w20, w0, eq -.L1339: - mov w0, w20 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 112 - ret + b .L1369 +.L1371: + strb w19, [x0, 12] + b .L1372 .size HynixReadRetrial, .-HynixReadRetrial .align 2 .type samsung_read_retrial, %function samsung_read_retrial: - stp x29, x30, [sp, -128]! + stp x29, x30, [sp, -112]! add x29, sp, 0 - stp x21, x22, [sp,32] - uxtb w22, w0 - adrp x21, .LANCHOR3 - mov w0, w22 - stp x23, x24, [sp,48] - stp x19, x20, [sp,16] - stp x25, x26, [sp,64] - stp x27, x28, [sp,80] - mov w23, w1 + stp x23, x24, [sp, 48] + and w23, w0, 255 + stp x21, x22, [sp, 32] mov x24, x2 - mov x27, x3 - adrp x25, .LANCHOR0 + stp x25, x26, [sp, 64] + mov w0, w23 + stp x19, x20, [sp, 16] + mov w26, w1 + mov x25, x3 + stp x27, x28, [sp, 80] bl NandcWaitFlashReady - add x0, x25, :lo12:.LANCHOR0 - sbfiz x1, x22, 4, 32 - add x2, x0, 8 - add x3, x2, x1 - ldrb w0, [x0,2356] - ldr x5, [x2,x1] - ldrb w19, [x3,8] - cbnz w0, .L1347 - lsl x19, x19, 8 + adrp x22, .LANCHOR0 + add x0, x22, :lo12:.LANCHOR0 + sbfiz x1, x23, 4, 32 + add x3, x0, x1 + adrp x21, .LANCHOR3 + ldrb w2, [x0, 2356] + ldr x1, [x0, x1] + ldrb w19, [x3, 8] + cbnz w2, .L1382 add x21, x21, :lo12:.LANCHOR3 + add x19, x1, x19, lsl 8 + add x21, x21, 16 + mov x27, x0 mov x4, 0 mov w20, -1 - add x28, x5, x19 mov w6, 239 - mov w7, 141 - add x21, x21, 16 -.L1351: - str w6, [x28,2056] + mov w5, 141 +.L1386: + str w6, [x19, 2056] add x0, x21, x4 - str w7, [x28,2052] - mov w1, w23 + str w5, [x19, 2052] + add w28, w4, 1 + stp w6, w5, [x29, 96] + mov x3, x25 + ldrsb w0, [x0, 1] mov x2, x24 - mov x3, x27 - ldrsb w0, [x0,1] - add w26, w4, 1 - str w0, [x28,2048] - mov w0, w22 - str wzr, [x28,2048] - str wzr, [x28,2048] - str wzr, [x28,2048] - str x5, [x29,96] - str x6, [x29,104] - str x7, [x29,112] - str x4, [x29,120] + str w0, [x19, 2048] + mov w1, w26 + str wzr, [x19, 2048] + mov w0, w23 + str wzr, [x19, 2048] + str wzr, [x19, 2048] + str x4, [x29, 104] bl FlashReadRawPage cmn w0, #1 - ldr x4, [x29,120] - ldr x7, [x29,112] - ldr x6, [x29,104] - ldr x5, [x29,96] - beq .L1348 - add x1, x25, :lo12:.LANCHOR0 + ldp w6, w5, [x29, 96] + ldr x4, [x29, 104] + beq .L1383 + ldrb w1, [x27, 2464] cmn w20, #1 csel w20, w20, w0, ne - ldrb w1, [x1,2464] add w1, w1, w1, lsl 1 cmp w0, w1, lsr 2 - bcc .L1360 - mov x27, 0 - mov x24, x27 -.L1348: + bcc .L1394 + mov x25, 0 + mov x24, 0 +.L1383: add x4, x4, 1 cmp x4, 25 - bne .L1351 - mov w26, 26 - b .L1350 -.L1360: - mov w20, w0 -.L1350: - add x3, x5, x19 + bne .L1386 + mov w28, 26 +.L1385: mov w0, 239 - str w0, [x3,2056] + str w0, [x19, 2056] mov w0, 141 - b .L1376 -.L1347: - add x21, x21, :lo12:.LANCHOR3 - lsl x19, x19, 8 - add x21, x21, 48 - mov w20, -1 - mov w26, 1 - add x28, x5, x19 - mov w4, 239 - mov w6, 137 -.L1356: - str w4, [x28,2056] - mov w1, w23 - str w6, [x28,2052] - mov x2, x24 - mov x3, x27 - str x5, [x29,104] - ldrb w0, [x21,4] - str w0, [x28,2048] - str x4, [x29,112] - ldrb w0, [x21,5] - str w0, [x28,2048] - str x6, [x29,120] - ldrb w0, [x21,6] - str w0, [x28,2048] - ldrb w0, [x21,7] - str w0, [x28,2048] - mov w0, w22 - bl FlashReadRawPage - cmn w0, #1 - ldr x6, [x29,120] - ldr x4, [x29,112] - ldr x5, [x29,104] - beq .L1353 - add x1, x25, :lo12:.LANCHOR0 - cmn w20, #1 - csel w20, w20, w0, ne - ldrb w1, [x1,2464] - add w1, w1, w1, lsl 1 - cmp w0, w1, lsr 2 - bcc .L1361 - mov x27, 0 - mov x24, x27 -.L1353: - add w26, w26, 1 - add x21, x21, 4 - cmp w26, 26 - bne .L1356 - b .L1355 -.L1361: - mov w20, w0 -.L1355: - add x3, x5, x19 - mov w0, 239 - str w0, [x3,2056] - mov w0, 137 -.L1376: - str w0, [x3,2052] - add x25, x25, :lo12:.LANCHOR0 - str wzr, [x3,2048] - str wzr, [x3,2048] - str wzr, [x3,2048] - str wzr, [x3,2048] - ldrb w0, [x25,2464] +.L1410: + str w0, [x19, 2052] + add x22, x22, :lo12:.LANCHOR0 + str wzr, [x19, 2048] + str wzr, [x19, 2048] + str wzr, [x19, 2048] + str wzr, [x19, 2048] + ldrb w0, [x22, 2464] add w0, w0, w0, lsl 1 cmp w20, w0, lsr 2 - bcc .L1357 + bcc .L1392 cmn w20, #1 mov w0, 256 csel w20, w20, w0, eq -.L1357: - cmn w20, #1 - beq .L1362 +.L1392: cmp w20, 256 - bne .L1358 -.L1362: + ccmn w20, #1, 4, ne + bne .L1393 adrp x0, .LC94 - mov w1, w26 - add x0, x0, :lo12:.LC94 - mov w2, w23 - mov w3, w26 mov w4, w20 + mov w3, w28 + mov w2, w26 + mov w1, w28 + add x0, x0, :lo12:.LC94 bl printk -.L1358: - mov w0, w22 +.L1393: + mov w0, w23 bl NandcWaitFlashReady mov w0, w20 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 128 + 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 +.L1394: + mov w20, w0 + b .L1385 +.L1382: + add x21, x21, :lo12:.LANCHOR3 + add x19, x1, x19, lsl 8 + add x21, x21, 52 + mov x27, x0 + mov w20, -1 + mov w28, 1 + mov w5, 239 + mov w4, 137 +.L1391: + str w5, [x19, 2056] + mov x3, x25 + str w4, [x19, 2052] + mov x2, x24 + stp w5, w4, [x29, 100] + mov w1, w26 + ldrb w0, [x21] + str w0, [x19, 2048] + ldrb w0, [x21, 1] + str w0, [x19, 2048] + ldrb w0, [x21, 2] + str w0, [x19, 2048] + ldrb w0, [x21, 3] + str w0, [x19, 2048] + mov w0, w23 + bl FlashReadRawPage + cmn w0, #1 + ldp w5, w4, [x29, 100] + beq .L1388 + ldrb w1, [x27, 2464] + cmn w20, #1 + csel w20, w20, w0, ne + add w1, w1, w1, lsl 1 + cmp w0, w1, lsr 2 + bcc .L1395 + mov x25, 0 + mov x24, 0 +.L1388: + add w28, w28, 1 + add x21, x21, 4 + cmp w28, 26 + bne .L1391 +.L1390: + mov w0, 239 + str w0, [x19, 2056] + mov w0, 137 + b .L1410 +.L1395: + mov w20, w0 + b .L1390 .size samsung_read_retrial, .-samsung_read_retrial .align 2 .global FlashProgPage .type FlashProgPage, %function FlashProgPage: stp x29, x30, [sp, -64]! - mov x4, x3 add x29, sp, 0 - stp x19, x20, [sp,16] - uxtb w19, w0 - adrp x0, .LANCHOR1+481 - stp x21, x22, [sp,32] + stp x19, x20, [sp, 16] mov w20, w1 + stp x21, x22, [sp, 32] + adrp x1, .LANCHOR1+481 + str x23, [sp, 48] mov x22, x2 - ldrb w21, [x0,#:lo12:.LANCHOR1+481] - cbnz w19, .L1378 + ldrb w21, [x1, #:lo12:.LANCHOR1+481] + ands w19, w0, 255 + mov x23, x3 + bne .L1412 adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 - ldrb w1, [x0,73] - ldr w2, [x0,76] + ldrb w1, [x0, 73] + ldr w2, [x0, 76] mul w1, w1, w2 - cmp w20, w1 - bcs .L1378 - ldrb w0, [x0,72] - cmp w0, wzr + cmp w1, w20 + bls .L1412 + ldrb w0, [x0, 72] + cmp w0, 0 mov w0, 4 csel w21, w21, w0, eq -.L1378: +.L1412: mov w0, w19 - str x4, [x29,56] bl NandcWaitFlashReady mov w0, w19 bl NandcFlashCs - mov w0, w19 mov w1, w20 - bl FlashProgFirstCmd - ldr x4, [x29,56] - mov w2, w21 - mov x3, x22 mov w0, w19 + bl FlashProgFirstCmd + mov x4, x23 + mov x3, x22 + mov w2, w21 mov w1, 1 + mov w0, w19 bl NandcXferData mov w1, w20 mov w0, w19 @@ -9261,12 +9193,13 @@ FlashProgPage: mov w1, w20 mov w0, w19 bl FlashReadStatus - mov w20, w0 + mov w2, w0 mov w0, w19 bl NandcFlashDeCs - and w0, w20, 1 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] + and w0, w2, 1 + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldr x23, [sp, 48] ldp x29, x30, [sp], 64 ret .size FlashProgPage, .-FlashProgPage @@ -9274,167 +9207,156 @@ FlashProgPage: .global FlashSavePhyInfo .type FlashSavePhyInfo, %function FlashSavePhyInfo: - stp x29, x30, [sp, -80]! + stp x29, x30, [sp, -64]! add x29, sp, 0 - stp x23, x24, [sp,48] - adrp x23, .LANCHOR4 - stp x19, x20, [sp,16] - add x19, x23, :lo12:.LANCHOR4 - stp x21, x22, [sp,32] - stp x25, x26, [sp,64] - adrp x21, .LANCHOR0 - ldr x0, [x19,1600] - add x20, x21, :lo12:.LANCHOR0 - str x0, [x19,1624] - ldrb w0, [x19,1642] + stp x19, x20, [sp, 16] + adrp x20, .LANCHOR4 + add x20, x20, :lo12:.LANCHOR4 + stp x21, x22, [sp, 32] + stp x23, x24, [sp, 48] + mov w23, 20036 + movk w23, 0x4e41, lsl 16 + adrp x19, .LANCHOR0 + ldr x0, [x20, 1608] + add x19, x19, :lo12:.LANCHOR0 + str x0, [x20, 1632] + mov w22, 0 + ldrb w0, [x20, 1650] + mov w21, 0 bl FlashBchSel - ldr x0, [x19,1600] - mov w1, 0 + ldr x0, [x20, 1608] mov w2, 2048 + mov w1, 0 bl ftl_memset - ldr x1, [x19,1624] - mov w0, 20036 - movk w0, 0x4e41, lsl 16 + ldr x0, [x20, 1632] mov w2, 32 - str w0, [x1] - ldr x0, [x19,1624] - ldrb w1, [x20,2358] + str w23, [x0] + ldr x0, [x20, 1632] + ldrb w1, [x19, 2358] add x0, x0, 16 - strh w1, [x0,-4] - ldrb w1, [x20,73] - strh w1, [x0,-2] - ldrb w1, [x20,2380] - str w1, [x0,1060] - add x1, x20, 2132 + strh w1, [x0, -4] + ldrb w1, [x19, 73] + strh w1, [x0, -2] + ldrb w1, [x19, 2380] + str w1, [x0, 1060] + add x1, x19, 2132 bl ftl_memcpy - ldr x0, [x19,1624] - add x1, x20, 2360 + ldr x0, [x20, 1632] mov w2, 8 + add x1, x19, 2360 add x0, x0, 80 bl ftl_memcpy - ldr x0, [x19,1624] - add x1, x20, 1232 + ldr x0, [x20, 1632] mov w2, 32 + add x1, x19, 1232 add x0, x0, 96 bl ftl_memcpy - ldr x0, [x19,1624] + ldr x0, [x20, 1632] adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 mov w2, 32 add x1, x1, 472 add x0, x0, 160 bl ftl_memcpy - ldr x0, [x19,1624] - add x1, x20, 96 + ldr x0, [x20, 1632] mov w2, 32 + add x1, x19, 96 add x0, x0, 192 bl ftl_memcpy - ldr x0, [x19,1624] - add x1, x20, 1272 + ldr x0, [x20, 1632] mov w2, 852 - mov x20, x23 + add x1, x19, 1272 add x0, x0, 224 bl ftl_memcpy - ldr x22, [x19,1624] + ldr x6, [x20, 1632] mov w1, 2036 - add x0, x22, 12 + add x0, x6, 12 bl js_hash - str w0, [x22,8] + str w0, [x6, 8] mov w0, 1592 - str w0, [x22,4] - mov w22, 0 - ldr x0, [x19,1648] - str x0, [x19,1624] + str w0, [x6, 4] + ldr x0, [x20, 1656] + str x0, [x20, 1632] mov w0, 0 - mov w19, w22 bl flash_enter_slc_mode -.L1386: - add x24, x21, :lo12:.LANCHOR0 - mov w0, 0 +.L1421: + ldr w1, [x19, 76] mov w2, 0 - ldr w1, [x24,76] - mul w1, w19, w1 + mov w0, 0 + mul w1, w21, w1 bl FlashEraseBlock - ldrb w25, [x24,204] - cbz w25, .L1381 - mov w23, 0 -.L1382: - add x0, x21, :lo12:.LANCHOR0 - add x2, x20, :lo12:.LANCHOR4 + ldrb w0, [x19, 204] + cbz w0, .L1416 + mov w24, 0 +.L1417: + ldr w1, [x19, 76] mov x3, 0 - ldr w1, [x0,76] + ldr x2, [x20, 1608] mov w0, 0 - ldr x2, [x2,1600] - madd w1, w19, w1, w23 - add w23, w23, 1 + madd w1, w21, w1, w24 + add w24, w24, 1 bl FlashProgPage - cmp w23, 10 - bne .L1382 - b .L1383 -.L1381: - ldr w1, [x24,76] - add x23, x20, :lo12:.LANCHOR4 + cmp w24, 10 + bne .L1417 +.L1418: + ldr w1, [x19, 76] mov x3, 0 - mov w0, w25 - mul w1, w19, w1 - ldr x2, [x23,1600] - bl FlashProgPage - ldr w1, [x24,76] - mov w0, w25 - ldr x2, [x23,1600] - mov x3, 0 - mul w1, w19, w1 - add w1, w1, 1 - bl FlashProgPage -.L1383: - add x26, x21, :lo12:.LANCHOR0 - add x23, x20, :lo12:.LANCHOR4 + ldr x2, [x20, 1656] mov w0, 0 - mov x3, 0 - add w25, w19, 1 - ldr w1, [x26,76] - ldr x2, [x23,1648] - mul w1, w19, w1 + mul w1, w21, w1 bl FlashReadRawPage cmn w0, #1 - beq .L1384 - ldr x24, [x23,1624] - mov w0, 20036 - movk w0, 0x4e41, lsl 16 - ldr w1, [x24] - cmp w1, w0 - bne .L1384 + add w7, w21, 1 + beq .L1419 + ldr x6, [x20, 1632] + ldr w0, [x6] + cmp w0, w23 + bne .L1419 mov w1, 2036 - add x0, x24, 12 + add x0, x6, 12 bl js_hash - ldr w1, [x24,8] + ldr w1, [x6, 8] cmp w1, w0 - bne .L1384 - ldr w0, [x26,76] + bne .L1419 + ldr w0, [x19, 76] cmp w22, 1 - str w25, [x23,1636] - mul w19, w19, w0 - str w19, [x23,1632] - beq .L1387 + str w7, [x20, 1644] + mul w21, w0, w21 + str w21, [x20, 1640] + beq .L1422 mov w22, 1 -.L1384: - cmp w25, 4 - mov w19, w25 - bne .L1386 - b .L1385 -.L1387: - mov w22, 2 -.L1385: +.L1419: + mov w21, w7 + cmp w7, 4 + bne .L1421 +.L1420: mov w0, 0 bl flash_exit_slc_mode - cmp w22, wzr + cmp w22, 0 csetm w0, eq - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x29, x30, [sp], 80 + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x29, x30, [sp], 64 ret +.L1416: + ldr w1, [x19, 76] + mov x3, 0 + ldr x2, [x20, 1608] + mov w0, 0 + mul w1, w21, w1 + bl FlashProgPage + ldr w1, [x19, 76] + mov x3, 0 + ldr x2, [x20, 1608] + mov w0, 0 + mul w1, w21, w1 + add w1, w1, 1 + bl FlashProgPage + b .L1418 +.L1422: + mov w22, 2 + b .L1420 .size FlashSavePhyInfo, .-FlashSavePhyInfo .align 2 .global FlashReadIdbDataRaw @@ -9442,108 +9364,109 @@ FlashSavePhyInfo: FlashReadIdbDataRaw: stp x29, x30, [sp, -128]! add x29, sp, 0 - stp x25, x26, [sp,64] - mov x26, x0 + stp x25, x26, [sp, 64] + mov x25, x0 mov w0, 60 - strb w0, [x29,120] + stp x19, x20, [sp, 16] + strb w0, [x29, 120] mov w0, 40 - strb w0, [x29,121] + strb w0, [x29, 121] mov w0, 24 - stp x19, x20, [sp,16] - strb w0, [x29,122] - adrp x19, .LANCHOR0 + strb w0, [x29, 122] mov w0, 16 - strb w0, [x29,123] - add x0, x19, :lo12:.LANCHOR0 - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - stp x27, x28, [sp,80] - ldrb w27, [x0,2464] - ldr w0, [x0,2376] - cbz w0, .L1394 + adrp x20, .LANCHOR0 + strb w0, [x29, 123] + add x0, x20, :lo12:.LANCHOR0 + stp x21, x22, [sp, 32] + stp x23, x24, [sp, 48] + stp x27, x28, [sp, 80] + ldrb w26, [x0, 2464] + ldr w0, [x0, 2376] + cbz w0, .L1430 mov w0, 0 bl flash_enter_slc_mode -.L1394: - mov x0, x26 - mov w1, 0 - mov w2, 2048 - adrp x24, .LC95 +.L1430: + adrp x19, .LANCHOR4 + mov w28, 35899 + add x24, x20, :lo12:.LANCHOR0 + add x27, x29, 120 + add x19, x19, :lo12:.LANCHOR4 mov w23, -1 - mov w20, 2 - bl ftl_memset - adrp x28, .LANCHOR4 - add x0, x24, :lo12:.LC95 - str x0, [x29,104] -.L1395: - add x0, x19, :lo12:.LANCHOR0 - ldrb w0, [x0,73] - cmp w20, w0 - bcs .L1399 - mov x22, 0 -.L1397: - add x0, x29, 120 - add x24, x19, :lo12:.LANCHOR0 - add x21, x28, :lo12:.LANCHOR4 - ldrb w25, [x22,x0] - mov w0, w25 - bl FlashBchSel - ldr w1, [x24,76] - mov w0, 0 - ldr x2, [x21,1600] - mov x3, 0 - mul w1, w20, w1 - bl FlashReadRawPage - cmn w0, #1 - bne .L1396 - add x22, x22, 1 - cmp x22, 4 - bne .L1397 - b .L1398 -.L1396: - ldr x0, [x21,1600] - ldr w1, [x0] - mov w0, 35899 - movk w0, 0xfcdc, lsl 16 - cmp w1, w0 - bne .L1398 - ldr x0, [x29,104] - mov w1, w25 - bl printk - ldr x1, [x21,1600] - mov x0, x26 + mov w21, 2 + movk w28, 0xfcdc, lsl 16 mov w2, 2048 - bl ftl_memcpy - ldr x0, [x21,1600] - ldr w0, [x0,512] - strb w0, [x24,73] - ldr w0, [x21,1636] - cmp w0, w20 - bls .L1402 - mov w23, 0 - str w20, [x21,1636] - bl FlashSavePhyInfo -.L1398: - add w20, w20, 1 - b .L1395 -.L1402: - mov w23, 0 -.L1399: - mov w0, w27 - add x19, x19, :lo12:.LANCHOR0 + mov w1, 0 + mov x0, x25 + bl ftl_memset +.L1431: + ldrb w0, [x24, 73] + cmp w21, w0 + bcc .L1436 +.L1435: + add x20, x20, :lo12:.LANCHOR0 + mov w0, w26 bl FlashBchSel - ldr w0, [x19,2376] - cbz w0, .L1406 + ldr w0, [x20, 2376] + cbz w0, .L1429 mov w0, 0 bl flash_exit_slc_mode -.L1406: +.L1429: mov w0, w23 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] + ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 128 ret +.L1436: + mov x22, 0 +.L1433: + ldrb w4, [x22, x27] + str w4, [x29, 108] + mov w0, w4 + bl FlashBchSel + ldr w1, [x24, 76] + mov x3, 0 + ldr x2, [x19, 1608] + mov w0, 0 + mul w1, w21, w1 + bl FlashReadRawPage + cmn w0, #1 + ldr w4, [x29, 108] + bne .L1432 + add x22, x22, 1 + cmp x22, 4 + bne .L1433 +.L1434: + add w21, w21, 1 + b .L1431 +.L1439: + mov w23, 0 + b .L1435 +.L1432: + ldr x0, [x19, 1608] + ldr w0, [x0] + cmp w0, w28 + bne .L1434 + mov w1, w4 + adrp x0, .LC95 + add x0, x0, :lo12:.LC95 + bl printk + ldr x1, [x19, 1608] + mov w2, 2048 + mov x0, x25 + bl ftl_memcpy + ldr x0, [x19, 1608] + ldr w0, [x0, 512] + strb w0, [x24, 73] + ldr w0, [x19, 1644] + cmp w21, w0 + bcs .L1439 + mov w23, 0 + str w21, [x19, 1644] + bl FlashSavePhyInfo + b .L1434 .size FlashReadIdbDataRaw, .-FlashReadIdbDataRaw .align 2 .global FlashInit @@ -9551,1705 +9474,1640 @@ FlashReadIdbDataRaw: FlashInit: stp x29, x30, [sp, -112]! add x29, sp, 0 - stp x21, x22, [sp,32] - adrp x21, .LANCHOR4 - add x22, x21, :lo12:.LANCHOR4 - stp x23, x24, [sp,48] - mov x23, x0 - mov w0, 32768 - stp x19, x20, [sp,16] - stp x27, x28, [sp,80] - stp x25, x26, [sp,64] - bl ftl_malloc - str x0, [x22,1600] - mov w0, 32768 + stp x19, x20, [sp, 16] adrp x19, .LANCHOR0 - add x20, x19, :lo12:.LANCHOR0 - adrp x24, .LC96 - bl ftl_malloc - str x0, [x22,1648] - mov w0, 4096 - mov w27, 144 - mov w28, 239 - bl ftl_malloc - str x0, [x22,1656] + stp x23, x24, [sp, 48] + adrp x23, .LANCHOR4 + add x20, x23, :lo12:.LANCHOR4 + stp x21, x22, [sp, 32] + stp x27, x28, [sp, 80] + mov x21, x0 + stp x25, x26, [sp, 64] mov w0, 32768 bl ftl_malloc - str x0, [x22,1664] - mov w0, 4096 + str x0, [x20, 1608] + mov w0, 32768 bl ftl_malloc - str x0, [x22,1672] + str x0, [x20, 1656] + mov w0, 4096 + bl ftl_dma32_malloc + add x22, x19, :lo12:.LANCHOR0 + str x0, [x20, 1664] + mov w0, 32768 + bl ftl_malloc + str x0, [x20, 1672] + mov w0, 4096 + bl ftl_dma32_malloc + str x0, [x20, 1680] + mov w0, 50 + strb w0, [x20, 1648] + adrp x25, .LC96 + strb w0, [x22, 73] mov w0, 128 - str w0, [x20,76] + strb wzr, [x20, 1688] + add x25, x25, :lo12:.LC96 + str wzr, [x20, 1616] + mov w24, 0 + str wzr, [x20, 1644] + mov w28, 144 + str w0, [x22, 76] mov w0, 60 - mov w1, 50 - strb w0, [x22,1642] - mov x0, x23 - strb wzr, [x20,2380] - add x23, x20, 8 - strb w1, [x20,73] - strb w1, [x22,1640] - str wzr, [x22,1636] - str wzr, [x22,1608] - strb wzr, [x20,72] - add x20, x20, 2132 - strb wzr, [x22,1680] + strb w0, [x20, 1650] + add x20, x22, 2132 + mov x27, x20 + strb wzr, [x22, 2380] + strb wzr, [x22, 72] + mov x0, x21 bl NandcInit - add x0, x24, :lo12:.LC96 - mov w22, 0 - str x0, [x29,104] - mov x26, x20 -.L1418: - ldrb w2, [x23,8] - uxtb w25, w22 - mov w0, w25 - str x2, [x29,96] - ldr x24, [x23] +.L1454: + ldrb w1, [x22, 8] + and w26, w24, 255 + str w1, [x29, 108] + mov w0, w26 + ldr x21, [x22] bl FlashReset - mov w0, w25 + mov w0, w26 bl NandcFlashCs - ldr x2, [x29,96] + ldr w1, [x29, 108] mov x0, 1000 - ubfiz x2, x2, 8, 8 - add x24, x24, x2 - str w27, [x24,2056] - str wzr, [x24,2052] + ubfiz x1, x1, 8, 8 + add x21, x21, x1 + str w28, [x21, 2056] + str wzr, [x21, 2052] bl __const_udelay - ldr w0, [x24,2048] - uxtb w0, w0 + ldr w0, [x21, 2048] + and w0, w0, 255 strb w0, [x20] cmp w0, 44 - ldr w2, [x24,2048] - strb w2, [x20,1] - ldr w2, [x24,2048] - strb w2, [x20,2] - ldr w2, [x24,2048] - strb w2, [x20,3] - ldr w2, [x24,2048] - strb w2, [x20,4] - ldr w2, [x24,2048] - strb w2, [x20,5] - bne .L1413 - str w28, [x24,2056] + ldr w1, [x21, 2048] + strb w1, [x20, 1] + ldr w1, [x21, 2048] + strb w1, [x20, 2] + ldr w1, [x21, 2048] + strb w1, [x20, 3] + ldr w1, [x21, 2048] + strb w1, [x20, 4] + ldr w1, [x21, 2048] + strb w1, [x20, 5] + bne .L1449 + mov w0, 239 + str w0, [x21, 2056] mov w0, 1 - str w0, [x24,2052] + str w0, [x21, 2052] mov x0, 1000 bl __const_udelay mov w0, 4 - str w0, [x24,2048] - str wzr, [x24,2048] - str wzr, [x24,2048] - str wzr, [x24,2048] -.L1413: - mov w0, w25 + str w0, [x21, 2048] + str wzr, [x21, 2048] + str wzr, [x21, 2048] + str wzr, [x21, 2048] +.L1449: + mov w0, w26 bl NandcFlashDeCs ldrb w2, [x20] sub w0, w2, #1 - uxtb w0, w0 + and w0, w0, 255 cmp w0, 253 - bhi .L1414 - ldr x0, [x29,104] - add w1, w22, 1 - ldrb w3, [x20,1] - ldrb w4, [x20,2] - ldrb w5, [x20,3] - ldrb w6, [x20,4] - ldrb w7, [x20,5] + bhi .L1450 + ldrb w7, [x20, 5] + add w1, w24, 1 + ldrb w6, [x20, 4] + mov x0, x25 + ldrb w5, [x20, 3] + ldrb w4, [x20, 2] + ldrb w3, [x20, 1] bl printk -.L1414: - cbnz w22, .L1415 - ldrb w0, [x26] +.L1450: + cbnz w24, .L1451 + ldrb w0, [x27] sub w0, w0, #1 - uxtb w0, w0 + and w0, w0, 255 cmp w0, 253 - bhi .L1470 - ldrb w0, [x26,1] + bhi .L1502 + ldrb w0, [x27, 1] cmp w0, 255 - beq .L1470 -.L1415: + beq .L1502 +.L1451: ldrb w0, [x20] cmp w0, 181 - bne .L1417 + bne .L1453 mov w0, 44 strb w0, [x20] -.L1417: - add w22, w22, 1 - add x23, x23, 16 - cmp w22, 4 +.L1453: + add w24, w24, 1 + add x22, x22, 16 add x20, x20, 8 - bne .L1418 + cmp w24, 4 + bne .L1454 add x0, x19, :lo12:.LANCHOR0 - ldrb w1, [x0,2132] + ldrb w1, [x0, 2132] cmp w1, 173 - beq .L1419 - ldr w0, [x0,2384] + beq .L1455 + ldr w0, [x0, 2384] bl NandcSetDdrMode -.L1419: +.L1455: add x20, x19, :lo12:.LANCHOR0 - mov w1, 0 mov w2, 852 + mov w1, 0 add x0, x20, 1272 bl ftl_memset - strb wzr, [x20,80] - adrp x1, .LANCHOR1 - ldr w4, [x20,2392] + adrp x0, .LANCHOR1 + add x1, x0, :lo12:.LANCHOR1 + add x1, x1, 472 + ldr w4, [x20, 2392] + strb wzr, [x20, 80] mov w2, 12336 - add x0, x1, :lo12:.LANCHOR1 + str x1, [x20, 88] movk w2, 0x5638, lsl 16 - add x0, x0, 472 cmp w4, w2 - str x0, [x20,88] - bne .L1420 - ldrb w0, [x0,19] - cmp w0, 50 - beq .L1420 - mov w0, 1 - str w0, [x20,2376] -.L1420: - add x3, x19, :lo12:.LANCHOR0 - add x3, x3, 2132 - ldrb w0, [x3,1] - cmp w0, 218 - cset w6, eq - cmp w0, 241 - cset w5, eq - cmp w0, 161 - cset w2, eq - orr w2, w5, w2 - orr w2, w6, w2 - cbnz w2, .L1421 - and w2, w0, -3 - cmp w2, 209 - beq .L1421 - cmp w0, 220 - bne .L1422 - ldrb w2, [x3,3] - cmp w2, 149 - bne .L1422 -.L1421: - add x2, x19, :lo12:.LANCHOR0 - add x3, x21, :lo12:.LANCHOR4 - mov w7, 16 + bne .L1456 + ldrb w1, [x1, 19] + cmp w1, 50 + beq .L1456 + mov w1, 1 + str w1, [x20, 2376] +.L1456: + add x1, x19, :lo12:.LANCHOR0 + ldrb w2, [x1, 2133] + add w1, w2, 95 + and w3, w1, 255 + mov x1, 1 + cmp w3, 57 + bhi .L1457 + movk x1, 0x205, lsl 48 + lsr x1, x1, x3 + mvn x1, x1 +.L1457: + and w1, w1, 1 + cmp w2, 241 + eor w1, w1, 1 + cset w3, eq + orr w1, w3, w1 + cbnz w1, .L1458 + cmp w2, 220 + bne .L1459 + add x1, x19, :lo12:.LANCHOR0 + ldrb w1, [x1, 2135] + cmp w1, 149 + bne .L1459 +.L1458: + add x1, x19, :lo12:.LANCHOR0 + add x3, x23, :lo12:.LANCHOR4 + mov w6, 16 mov w5, 1 - add x8, x2, 2132 - strb w7, [x2,73] - strb w5, [x2,72] - strb w7, [x3,1642] - ldrb w7, [x2,2132] - add x2, x1, :lo12:.LANCHOR1 - cmp w7, 152 - strb w7, [x2,3425] - strb w0, [x2,3426] - bne .L1424 - ldrsb w2, [x8,4] - tbnz w2, #31, .L1425 - mov w2, 24 - strb w2, [x3,1642] -.L1424: + add x7, x1, 2132 + strb w6, [x1, 73] + strb w5, [x1, 72] + strb w6, [x3, 1650] + ldrb w6, [x1, 2132] + add x1, x0, :lo12:.LANCHOR1 + cmp w6, 152 + strb w6, [x1, 3425] + strb w2, [x1, 3426] + bne .L1461 + ldrsb w1, [x7, 4] + tbnz w1, #31, .L1462 + mov w1, 24 + strb w1, [x3, 1650] +.L1461: cmp w4, 2049 - beq .L1473 - mov w2, 12336 - movk w2, 0x5638, lsl 16 - cmp w4, w2 - bne .L1427 -.L1473: - add x2, x21, :lo12:.LANCHOR4 + mov w1, 12336 + movk w1, 0x5638, lsl 16 + ccmp w4, w1, 4, ne + bne .L1464 + add x1, x23, :lo12:.LANCHOR4 mov w3, 16 - strb w3, [x2,1642] -.L1427: - cbz w6, .L1429 - add x0, x1, :lo12:.LANCHOR1 + strb w3, [x1, 1650] +.L1464: + cmp w2, 218 + bne .L1465 + add x1, x0, :lo12:.LANCHOR1 mov w2, 2048 - strh w2, [x0,3438] + strh w2, [x1, 3438] mov w2, -38 - b .L1517 -.L1429: - cmp w0, 220 - bne .L1431 - add x0, x1, :lo12:.LANCHOR1 - mov w2, 4096 - strh w2, [x0,3438] - mov w2, -36 -.L1517: - strb w2, [x0,3426] - b .L1430 -.L1431: - cmp w0, 211 - bne .L1430 - add x0, x1, :lo12:.LANCHOR1 - mov w2, 4096 - strh w2, [x0,3438] - mov w2, 2 - strb w2, [x0,3437] -.L1430: - add x20, x1, :lo12:.LANCHOR1 +.L1548: + strb w2, [x1, 3426] +.L1466: + add x20, x0, :lo12:.LANCHOR1 add x0, x19, :lo12:.LANCHOR0 - add x1, x20, 3296 mov w2, 32 + add x1, x20, 3296 add x0, x0, 96 bl ftl_memcpy - add x0, x20, 472 - add x1, x20, 3424 mov w2, 32 + add x1, x20, 3424 + add x0, x20, 472 bl ftl_memcpy -.L1422: +.L1459: add x20, x19, :lo12:.LANCHOR0 - ldrb w0, [x20,72] - cbnz w0, .L1432 + ldrb w0, [x20, 72] + cbnz w0, .L1469 bl FlashLoadPhyInfoInRam - cbnz w0, .L1434 - ldr x0, [x20,88] - ldrb w1, [x0,17] + cbnz w0, .L1471 + ldr x0, [x20, 88] + ldrb w1, [x0, 17] and w0, w1, 7 - strb w0, [x20,2357] - tbnz x1, 0, .L1434 + strb w0, [x20, 2357] + tbnz x1, 0, .L1471 mov w1, 1 - strb w1, [x20,2380] + strb w1, [x20, 2380] bl FlashSetInterfaceMode - ldrb w0, [x20,2357] + ldrb w0, [x20, 2357] bl NandcSetMode -.L1434: +.L1471: add x20, x19, :lo12:.LANCHOR0 - ldr x0, [x20,88] - ldrb w0, [x0,26] - strb w0, [x20,204] + ldr x0, [x20, 88] + ldrb w0, [x0, 26] + strb w0, [x20, 204] bl FlashLoadPhyInfo - cbz w0, .L1432 - ldr w0, [x20,2384] - cbz w0, .L1437 + cbz w0, .L1469 + ldr w0, [x20, 2384] + cbz w0, .L1474 mov w0, 1 bl FlashSetInterfaceMode mov w0, 1 - b .L1514 -.L1437: - ldrb w0, [x20,2357] - bl FlashSetInterfaceMode - ldrb w0, [x20,2357] -.L1514: +.L1543: bl NandcSetMode bl FlashLoadPhyInfo - cbz w0, .L1432 - mov w0, 1 + cbz w0, .L1469 add x20, x19, :lo12:.LANCHOR0 + mov w0, 1 bl FlashSetInterfaceMode mov w0, 1 bl NandcSetMode - ldr x1, [x20,88] + ldr x0, [x20, 88] + ldrh w1, [x0, 14] adrp x0, .LC97 add x0, x0, :lo12:.LC97 - ldrh w1, [x1,14] bl printk bl FlashLoadPhyInfoInRam cmn w0, #1 - beq .L1488 + beq .L1448 bl FlashDieInfoInit - ldr x0, [x20,88] - ldrb w0, [x0,19] + ldr x0, [x20, 88] + ldrb w0, [x0, 19] bl FlashGetReadRetryDefault - adrp x1, .LANCHOR2+3558 - ldr x0, [x20,88] - ldrh w1, [x1,#:lo12:.LANCHOR2+3558] - ldrb w2, [x0,9] + ldr x0, [x20, 88] + adrp x1, .LANCHOR2+3550 + ldrh w1, [x1, #:lo12:.LANCHOR2+3550] + ldrb w2, [x0, 9] add w1, w1, 4095 cmp w2, w1, lsr 12 - blt .L1439 - ldrh w1, [x0,14] + blt .L1476 + ldrh w1, [x0, 14] add w1, w1, 255 cmp w2, w1, lsr 8 - bge .L1440 -.L1439: - ldrh w1, [x0,14] + bge .L1477 +.L1476: + ldrh w1, [x0, 14] and w1, w1, -256 - strh w1, [x0,14] -.L1440: + strh w1, [x0, 14] +.L1477: add x0, x19, :lo12:.LANCHOR0 - ldrb w0, [x0,2357] + ldrb w0, [x0, 2357] tst w0, 6 - beq .L1441 + beq .L1478 bl FlashSavePhyInfo mov w0, 0 bl flash_enter_slc_mode - add x1, x21, :lo12:.LANCHOR4 + add x0, x23, :lo12:.LANCHOR4 + ldr w1, [x0, 1640] mov w0, 0 - ldr w1, [x1,1632] bl FlashDdrParaScan mov w0, 0 bl flash_exit_slc_mode -.L1441: +.L1478: bl FlashSavePhyInfo -.L1432: - add x20, x19, :lo12:.LANCHOR0 - add x22, x21, :lo12:.LANCHOR4 - ldr x2, [x20,88] - str xzr, [x22,1616] - ldrb w0, [x2,26] - strb w0, [x20,204] - ldrh w0, [x2,16] - ldrh w3, [x2,10] +.L1469: + add x21, x19, :lo12:.LANCHOR0 + add x20, x23, :lo12:.LANCHOR4 + ldr x2, [x21, 88] + str xzr, [x20, 1624] + ldrb w0, [x2, 26] + strb w0, [x21, 204] + ldrh w0, [x2, 16] ubfx x1, x0, 7, 1 - strb w1, [x20,80] + strb w1, [x21, 80] ubfx x1, x0, 3, 1 - strb w1, [x22,1681] + strb w1, [x20, 1689] ubfx x1, x0, 4, 1 - strb w1, [x20,2368] - ldrb w1, [x2,12] ubfx x0, x0, 8, 3 - strb w0, [x20,2357] - ldrb w0, [x2,18] - sdiv w1, w3, w1 + strb w1, [x21, 2368] + strb w0, [x21, 2357] + ldrh w1, [x2, 10] + ldrb w0, [x2, 12] + sdiv w1, w1, w0 + ldrb w0, [x2, 18] bl BuildFlashLsbPageTable bl FlashDieInfoInit - ldr x0, [x20,88] - ldrh w1, [x0,16] - tbz x1, 6, .L1443 - ldrb w0, [x0,19] - ldrb w1, [x20,1274] - strb w1, [x22,1641] + ldr x0, [x21, 88] + ldrh w1, [x0, 16] + tbz x1, 6, .L1480 + ldrb w0, [x0, 19] + ldrb w1, [x21, 1274] + ldrb w2, [x21, 1273] + strb w1, [x20, 1649] sub w1, w0, #1 - ldrb w2, [x20,1273] - uxtb w1, w1 - strb w0, [x20,128] - strb w2, [x20,129] + strb w0, [x21, 128] + and w1, w1, 255 + strb w2, [x21, 129] cmp w1, 7 - bhi .L1444 + bhi .L1481 adrp x1, HynixReadRetrial - cmp w0, 8 add x1, x1, :lo12:HynixReadRetrial - str x1, [x22,1616] + str x1, [x20, 1624] sub w1, w0, #5 - cset w2, eq - uxtb w1, w1 + and w1, w1, 255 cmp w1, 1 - bls .L1474 - cbz w2, .L1445 -.L1474: + ccmp w0, 8, 4, hi + bne .L1482 + mov w1, 1 + str w1, [x21, 2456] +.L1482: add x1, x19, :lo12:.LANCHOR0 - mov w3, 1 - str w3, [x1,2456] -.L1445: cmp w0, 7 - add x1, x19, :lo12:.LANCHOR0 - beq .L1472 - cbnz w2, .L1472 - add x1, x1, 1292 - b .L1448 -.L1472: + beq .L1544 + cmp w0, 8 + bne .L1505 +.L1544: add x1, x1, 1300 -.L1448: +.L1483: mov x2, 0 - mov w3, w2 -.L1450: - ldrsb w4, [x1,x2] + mov w3, 0 +.L1485: + ldrsb w4, [x1, x2] add x2, x2, 1 - cmp w4, wzr - csinc w3, w3, w3, ne + cmp w4, 0 + cinc w3, w3, eq cmp x2, 32 - bne .L1450 + bne .L1485 cmp w3, 27 - bls .L1443 + bls .L1480 bl FlashGetReadRetryDefault bl FlashSavePhyInfo - b .L1443 -.L1444: - sub w1, w0, #17 - uxtb w1, w1 - cmp w1, 2 - bhi .L1452 - adrp x1, MicronReadRetrial - cmp w0, 19 - add x1, x1, :lo12:MicronReadRetrial - str x1, [x22,1616] - beq .L1453 - mov w0, 7 - b .L1515 -.L1453: - mov w0, 15 -.L1515: - strb w0, [x22,1641] - b .L1443 -.L1452: - sub w1, w0, #65 - uxtb w1, w1 - cmp w1, 1 - bls .L1475 - cmp w0, 33 - bne .L1454 -.L1475: - add x0, x21, :lo12:.LANCHOR4 - adrp x1, ToshibaReadRetrial - add x1, x1, :lo12:ToshibaReadRetrial - mov w2, 4 - str x1, [x0,1616] - add x1, x19, :lo12:.LANCHOR0 - strb w2, [x1,129] - mov w1, 7 - strb w1, [x0,1641] - b .L1443 -.L1454: - sub w1, w0, #67 - sub w2, w0, #34 - uxtb w1, w1 - uxtb w2, w2 - cmp w1, 1 - cset w1, ls - cmp w2, 1 - bls .L1476 - cbz w1, .L1456 -.L1476: - add x3, x21, :lo12:.LANCHOR4 - adrp x2, ToshibaReadRetrial - add x2, x2, :lo12:ToshibaReadRetrial - cmp w0, 35 - str x2, [x3,1616] - beq .L1458 - cmp w0, 68 - beq .L1458 - mov w0, 7 - strb w0, [x3,1641] - b .L1459 -.L1458: - add x0, x21, :lo12:.LANCHOR4 - mov w2, 17 - strb w2, [x0,1641] -.L1459: +.L1480: add x0, x19, :lo12:.LANCHOR0 - cbz w1, .L1460 - mov w1, 4 - b .L1516 -.L1460: - mov w1, 5 -.L1516: - strb w1, [x0,129] - b .L1443 -.L1456: - cmp w0, 49 - bne .L1461 - adrp x0, SamsungReadRetrial - add x0, x0, :lo12:SamsungReadRetrial - str x0, [x22,1616] - b .L1443 -.L1461: - cmp w0, 50 - bne .L1443 - adrp x0, samsung_read_retrial - str w1, [x20,2376] - add x0, x0, :lo12:samsung_read_retrial - str x0, [x22,1616] -.L1443: + mov w2, 12336 + movk w2, 0x5638, lsl 16 + ldr w1, [x0, 2392] + cmp w1, w2 + bne .L1495 + ldrb w2, [x0, 204] + cbz w2, .L1495 + ldr x0, [x0, 88] + strb wzr, [x0, 18] +.L1495: add x0, x19, :lo12:.LANCHOR0 - mov w1, 12336 - movk w1, 0x5638, lsl 16 - ldr w2, [x0,2392] - cmp w2, w1 - bne .L1462 - ldrb w1, [x0,204] - cbz w1, .L1462 - ldr x0, [x0,88] - strb wzr, [x0,18] -.L1462: + ldrb w2, [x0, 2132] + cmp w2, 44 + bne .L1496 + ldrb w2, [x0, 2380] + cbz w2, .L1496 + mov w2, 12336 + movk w2, 0x5638, lsl 16 + cmp w1, w2 + bne .L1497 + ldrb w0, [x0, 204] + cbnz w0, .L1496 +.L1497: add x0, x19, :lo12:.LANCHOR0 - ldrb w1, [x0,2132] - cmp w1, 44 - bne .L1463 - ldrb w1, [x0,2380] - cbz w1, .L1463 - mov w1, 12336 - movk w1, 0x5638, lsl 16 - cmp w2, w1 - bne .L1464 - ldrb w0, [x0,204] - cbnz w0, .L1463 -.L1464: - add x0, x19, :lo12:.LANCHOR0 - strb wzr, [x0,2380] + strb wzr, [x0, 2380] mov w0, 1 bl FlashSetInterfaceMode mov w0, 1 bl NandcSetMode -.L1463: +.L1496: add x1, x19, :lo12:.LANCHOR0 - ldrb w0, [x1,2357] + ldrb w0, [x1, 2357] tst w0, 6 - beq .L1465 - ldrb w1, [x1,2380] - cbnz w1, .L1466 - tbnz x0, 0, .L1465 -.L1466: + beq .L1498 + ldrb w1, [x1, 2380] + cbnz w1, .L1499 + tbnz x0, 0, .L1498 +.L1499: + add x23, x23, :lo12:.LANCHOR4 mov w0, 0 - add x21, x21, :lo12:.LANCHOR4 bl flash_enter_slc_mode - ldr w1, [x21,1632] mov w0, 0 + ldr w1, [x23, 1640] bl FlashDdrParaScan mov w0, 0 bl flash_exit_slc_mode -.L1465: +.L1498: add x19, x19, :lo12:.LANCHOR0 mov w20, 16 - ldr x0, [x19,88] - ldrb w0, [x0,20] + ldr x0, [x19, 88] + ldrb w0, [x0, 20] bl FlashBchSel adrp x0, .LANCHOR2 add x0, x0, :lo12:.LANCHOR2 - add x0, x0, 3896 + add x0, x0, 3888 bl FlashReadIdbDataRaw - strb w20, [x19,73] mov w0, 18928 + strb w20, [x19, 73] movk w0, 0x2, lsl 16 bl FlashTimingCfg - ldr x1, [x19,88] - ldrb w2, [x1,12] - strh w2, [x19,184] - ldrh w4, [x1,14] - ldrb w2, [x1,7] - str w2, [x19,180] - ldrb w2, [x19,2133] - lsl w3, w2, w20 - orr w2, w3, w2, lsl 8 - ldrb w3, [x19,2132] + ldr x1, [x19, 88] + ldrb w3, [x19, 2133] + ldrb w4, [x19, 2132] + ldrb w2, [x1, 12] + strh w2, [x19, 184] + ldrb w2, [x1, 7] + str w2, [x19, 180] + ldrb w2, [x19, 2135] + orr w2, w4, w2, lsl 24 + lsl w4, w3, w20 + orr w3, w4, w3, lsl 8 + ldrh w4, [x1, 14] orr w2, w2, w3 - ldrb w3, [x19,2135] - orr w2, w2, w3, lsl 24 - str w2, [x19,176] - ldrb w2, [x19,2358] - strh w2, [x19,186] - ldrb w2, [x1,13] - strh w2, [x19,188] - strh w4, [x19,190] - ldrh w2, [x1,10] - strh w2, [x19,192] - ldrb w3, [x1,12] - ldrh w2, [x1,10] + str w2, [x19, 176] + ldrb w2, [x19, 2358] + strh w2, [x19, 186] + ldrb w2, [x1, 13] + strh w2, [x19, 188] + strh w4, [x19, 190] + ldrh w2, [x1, 10] + strh w2, [x19, 192] + ldrb w3, [x1, 12] + ldrh w2, [x1, 10] sdiv w2, w2, w3 - strh w2, [x19,194] - ldrb w3, [x1,9] - strh w3, [x19,196] - ldrh w5, [x1,10] - ldrb w2, [x1,9] + strh w2, [x19, 194] + ldrb w3, [x1, 9] + strh w3, [x19, 196] + ldrh w5, [x1, 10] + ldrb w2, [x1, 9] mul w2, w2, w5 mov w5, 512 - strh w5, [x19,200] - ldrb w5, [x19,73] - strh w5, [x19,202] - uxth w2, w2 - ldrb w5, [x19,72] - strh w2, [x19,198] + strh w5, [x19, 200] + ldrb w5, [x19, 73] + and w2, w2, 65535 + strh w5, [x19, 202] + strh w2, [x19, 198] + ldrb w5, [x19, 72] cmp w5, 1 - bne .L1468 - lsl w2, w2, 1 + bne .L1500 + ubfiz w2, w2, 1, 15 lsr w4, w4, 1 - lsl w3, w3, 1 - strh w2, [x19,198] - strb w20, [x19,73] + ubfiz w3, w3, 1, 15 + strh w2, [x19, 198] + strb w20, [x19, 73] mov w2, 8 - strh w4, [x19,190] - strh w3, [x19,196] - strh w2, [x19,202] -.L1468: - ldrb w0, [x1,20] + strh w4, [x19, 190] + strh w3, [x19, 196] + strh w2, [x19, 202] +.L1500: + ldrb w0, [x1, 20] bl FlashBchSel bl ftl_flash_suspend mov w0, 0 - b .L1488 -.L1470: - mov w0, -2 - b .L1488 -.L1425: - strb w5, [x3,1680] - b .L1424 -.L1488: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] +.L1448: + 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 +.L1465: + cmp w2, 220 + bne .L1467 + add x1, x0, :lo12:.LANCHOR1 + mov w2, 4096 + strh w2, [x1, 3438] + mov w2, -36 + b .L1548 +.L1467: + cmp w2, 211 + bne .L1466 + add x1, x0, :lo12:.LANCHOR1 + mov w2, 4096 + strh w2, [x1, 3438] + mov w2, 2 + strb w2, [x1, 3437] + b .L1466 +.L1474: + ldrb w0, [x20, 2357] + bl FlashSetInterfaceMode + ldrb w0, [x20, 2357] + b .L1543 +.L1505: + add x1, x1, 1292 + b .L1483 +.L1481: + sub w1, w0, #17 + and w1, w1, 255 + cmp w1, 2 + bhi .L1487 + adrp x1, MicronReadRetrial + add x1, x1, :lo12:MicronReadRetrial + str x1, [x20, 1624] + cmp w0, 19 + beq .L1488 +.L1549: + mov w0, 7 + b .L1546 +.L1488: + mov w0, 15 +.L1546: + strb w0, [x20, 1649] + b .L1480 +.L1487: + sub w1, w0, #65 + cmp w0, 33 + and w1, w1, 255 + ccmp w1, 1, 0, ne + bhi .L1489 + adrp x0, ToshibaReadRetrial + add x0, x0, :lo12:ToshibaReadRetrial + str x0, [x20, 1624] + mov w0, 4 + strb w0, [x21, 129] + b .L1549 +.L1489: + sub w2, w0, #34 + sub w1, w0, #67 + and w2, w2, 255 + and w1, w1, 255 + cmp w2, 1 + ccmp w1, 1, 0, hi + bhi .L1490 + adrp x2, ToshibaReadRetrial + add x2, x2, :lo12:ToshibaReadRetrial + str x2, [x20, 1624] + cmp w0, 35 + mov w2, 68 + ccmp w0, w2, 4, ne + beq .L1491 + mov w0, 7 +.L1545: + strb w0, [x20, 1649] + cmp w1, 1 + add x0, x19, :lo12:.LANCHOR0 + bhi .L1493 + mov w1, 4 +.L1547: + strb w1, [x0, 129] + b .L1480 +.L1491: + mov w0, 17 + b .L1545 +.L1493: + mov w1, 5 + b .L1547 +.L1490: + cmp w0, 49 + bne .L1494 + adrp x0, SamsungReadRetrial + add x0, x0, :lo12:SamsungReadRetrial + str x0, [x20, 1624] + b .L1480 +.L1494: + cmp w0, 50 + bne .L1480 + adrp x0, samsung_read_retrial + str wzr, [x21, 2376] + add x0, x0, :lo12:samsung_read_retrial + str x0, [x20, 1624] + b .L1480 +.L1502: + mov w0, -2 + b .L1448 +.L1462: + strb w5, [x3, 1688] + b .L1461 .size FlashInit, .-FlashInit .align 2 .global FlashPageProgMsbFFData .type FlashPageProgMsbFFData, %function FlashPageProgMsbFFData: - stp x29, x30, [sp, -80]! + stp x29, x30, [sp, -64]! 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 - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] - mov x23, x2 - ldr x3, [x0,88] - ldrb w4, [x0,204] - ldrb w3, [x3,19] - cbz w4, .L1519 - ldr w0, [x0,2376] - cbnz w0, .L1518 -.L1519: - sub w2, w3, #5 - uxtb w2, w2 - cmp w2, 2 - bls .L1520 - cmp w3, 50 - beq .L1520 - sub w2, w3, #19 - and w2, w2, -17 - uxtb w2, w2 - cbz w2, .L1520 - cmp w3, 68 - bne .L1518 -.L1520: - adrp x20, .LANCHOR2 + stp x19, x20, [sp, 16] + adrp x20, .LANCHOR0 + stp x23, x24, [sp, 48] + and w23, w0, 255 + add x0, x20, :lo12:.LANCHOR0 + stp x21, x22, [sp, 32] + and w19, w2, 65535 + ldrb w2, [x0, 204] + cbz w2, .L1551 + ldr w0, [x0, 2376] + cbnz w0, .L1550 +.L1551: + add x0, x20, :lo12:.LANCHOR0 + ldr x0, [x0, 88] + ldrb w0, [x0, 19] + sub w0, w0, #5 + and w3, w0, 255 + cmp w3, 63 + bhi .L1550 + mov x2, 16391 + movk x2, 0x4000, lsl 16 + movk x2, 0x2000, lsl 32 + movk x2, 0x8000, lsl 48 + lsr x0, x2, x3 + tbz x0, 0, .L1550 + adrp x21, .LANCHOR2 + add x21, x21, :lo12:.LANCHOR2 + adrp x22, .LANCHOR4 mov w24, w1 - add x20, x20, :lo12:.LANCHOR2 - mov w25, 65535 - add x20, x20, 1508 - adrp x26, .LANCHOR4 -.L1523: - add x0, x23, :lo12:.LANCHOR0 - ldr x0, [x0,88] - ldrh w0, [x0,10] + add x21, x21, 1500 + add x22, x22, :lo12:.LANCHOR4 +.L1553: + add x0, x20, :lo12:.LANCHOR0 + ldr x0, [x0, 88] + ldrh w0, [x0, 10] cmp w0, w19 - bls .L1518 - ldrh w0, [x20,w19,sxtw 1] - cmp w0, w25 - bne .L1518 - add x22, x26, :lo12:.LANCHOR4 - mov w1, 255 - mov w2, 32768 - ldr x0, [x22,1648] - bl ftl_memset - ldr x2, [x22,1648] - add w1, w19, w24 - mov w0, w21 - add w19, w19, 1 - mov x3, x2 - uxth w19, w19 - bl FlashProgPage - b .L1523 -.L1518: - 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 + bhi .L1554 +.L1550: + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x29, x30, [sp], 64 ret +.L1554: + ldrh w1, [x21, w19, sxtw 1] + mov w0, 65535 + cmp w1, w0 + bne .L1550 + ldr x0, [x22, 1656] + mov w2, 32768 + mov w1, 255 + bl ftl_memset + ldr x3, [x22, 1656] + add w1, w19, w24 + add w19, w19, 1 + mov w0, w23 + and w19, w19, 65535 + mov x2, x3 + bl FlashProgPage + b .L1553 .size FlashPageProgMsbFFData, .-FlashPageProgMsbFFData .align 2 .global FlashReadSlc2KPages .type FlashReadSlc2KPages, %function FlashReadSlc2KPages: - stp x29, x30, [sp, -144]! + stp x29, x30, [sp, -128]! add x29, sp, 0 - stp x23, x24, [sp,48] - adrp x23, .LANCHOR0 - mov w24, w1 - stp x19, x20, [sp,16] - adrp x1, .LANCHOR1+481 + stp x19, x20, [sp, 16] mov x19, x0 - add x0, x23, :lo12:.LANCHOR0 - str x0, [x29,120] - adrp x0, .LC98 - str w2, [x29,116] - add x0, x0, :lo12:.LC98 - str x0, [x29,104] - stp x25, x26, [sp,64] - adrp x0, .LC100 - ldrb w25, [x1,#:lo12:.LANCHOR1+481] - stp x21, x22, [sp,32] - add x0, x0, :lo12:.LC100 - mov w22, 0 - stp x27, x28, [sp,80] - str x0, [x29,96] -.L1535: - cmp w22, w24 - beq .L1599 - ldr w1, [x29,116] - sub w4, w24, w22 + mov w0, 56 + stp x21, x22, [sp, 32] + str w2, [x29, 104] + adrp x2, .LANCHOR1+481 + stp x23, x24, [sp, 48] + nop // between mem op and mult-accumulate + umaddl x0, w1, w0, x19 + stp x25, x26, [sp, 64] + and w22, w1, 255 + adrp x25, .LANCHOR0 + ldrb w2, [x2, #:lo12:.LANCHOR1+481] + add x23, x25, :lo12:.LANCHOR0 + stp x27, x28, [sp, 80] + str x0, [x29, 96] + str w2, [x29, 108] +.L1560: + ldr x0, [x29, 96] + cmp x19, x0 + bne .L1580 + ldp x19, x20, [sp, 16] + mov w0, 0 + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] + ldp x27, x28, [sp, 80] + ldp x29, x30, [sp], 128 + ret +.L1580: + ldr w1, [x29, 104] + add x2, x29, 124 + mov w4, w22 + add x3, x29, 120 mov x0, x19 - add x2, x29, 140 - add x3, x29, 136 - adrp x21, .LANCHOR0 bl LogAddr2PhyAddr - ldr x1, [x29,120] - ldr w0, [x29,136] - ldrb w1, [x1,2358] - cmp w0, w1 - bcc .L1536 + add x1, x25, :lo12:.LANCHOR0 + ldr w0, [x29, 120] + ldrb w2, [x1, 2358] + cmp w2, w0 + bhi .L1561 mov w0, -1 str w0, [x19] - b .L1537 -.L1536: - ldr x1, [x29,120] +.L1562: + sub w22, w22, #1 + add x19, x19, 56 + and w22, w22, 255 + b .L1560 +.L1561: add x0, x1, w0, uxtw - ldrb w20, [x0,2360] - mov w23, 0 - adrp x27, .LANCHOR4 + adrp x21, .LANCHOR4 + add x27, x21, :lo12:.LANCHOR4 + mov w24, 0 mov w28, 256 + ldrb w20, [x0, 2360] mov w0, w20 bl NandcWaitFlashReady mov w0, w20 bl NandcFlashCs -.L1538: - ldr w1, [x29,140] +.L1563: + ldr w1, [x29, 124] mov w0, w20 bl FlashReadCmd mov w0, w20 bl NandcWaitFlashReady - ldr x3, [x19,8] - mov w0, w20 - ldr x4, [x19,16] + ldrb w2, [x29, 108] mov w1, 0 - mov w2, w25 + ldp x3, x4, [x19, 8] + mov w0, w20 bl NandcXferData mov w26, w0 - add x0, x27, :lo12:.LANCHOR4 - ldrb w0, [x0,1680] - cbz w0, .L1539 + ldrb w0, [x27, 1688] + cbz w0, .L1564 mov w0, w20 bl flash_read_ecc cmp w0, 5 csel w26, w26, w28, ls -.L1539: - cmn w26, #1 - bne .L1540 - cmp w23, 9 - bhi .L1540 - add w23, w23, 1 - b .L1538 -.L1540: - cmp w23, wzr +.L1564: + cmp w24, 9 + ccmn w26, #1, 0, ls + bne .L1565 + add w24, w24, 1 + b .L1563 +.L1565: + cmp w24, 0 mov w27, 256 + add x21, x21, :lo12:.LANCHOR4 csel w26, w26, w27, eq - mov w23, 0 -.L1542: - add x0, x21, :lo12:.LANCHOR0 - ldr w1, [x29,140] - ldr w2, [x0,76] + mov w24, 0 +.L1567: + ldr w0, [x23, 76] + ldr w1, [x29, 124] + add w1, w1, w0 mov w0, w20 - add w1, w2, w1 bl FlashReadCmd mov w0, w20 bl NandcWaitFlashReady - ldr x0, [x19,8] + ldr x0, [x19, 8] mov w1, 0 - mov w2, w25 - cmp x0, xzr + ldrb w2, [x29, 108] + cmp x0, 0 add x3, x0, 2048 - ldr x0, [x19,16] + ldr x0, [x19, 16] csel x3, x3, xzr, ne + cmp x0, 0 add x4, x0, 8 - cmp x0, xzr csel x4, x4, xzr, ne mov w0, w20 bl NandcXferData mov w28, w0 - adrp x0, .LANCHOR4 - add x0, x0, :lo12:.LANCHOR4 - ldrb w0, [x0,1680] - cbz w0, .L1545 + ldrb w0, [x21, 1688] + cbz w0, .L1570 mov w0, w20 bl flash_read_ecc cmp w0, 5 csel w28, w28, w27, ls -.L1545: - cmn w28, #1 - bne .L1546 - cmp w23, 9 - bhi .L1546 - add w23, w23, 1 - b .L1542 -.L1546: - cmp w23, wzr +.L1570: + cmp w24, 9 + ccmn w28, #1, 0, ls + bne .L1571 + add w24, w24, 1 + b .L1567 +.L1571: + cmp w24, 0 + mov w2, 256 mov w0, w20 - mov w27, 256 - csel w28, w28, w27, eq + csel w28, w28, w2, eq bl NandcFlashDeCs - add x0, x21, :lo12:.LANCHOR0 - cmp w28, w26 - csel w28, w28, w26, cs - ldrb w0, [x0,2464] + ldrb w0, [x23, 2464] + cmp w26, w28 + csel w5, w26, w28, cs add w0, w0, w0, lsl 1 - cmp w28, w0, lsr 2 - bls .L1548 - cmn w28, #1 - csel w28, w28, w27, eq -.L1548: - cmp w28, 256 - beq .L1559 - cmn w28, #1 - bne .L1549 -.L1559: - str w28, [x19] - b .L1551 -.L1549: - str wzr, [x19] -.L1551: - ldr x0, [x19,16] - cbz x0, .L1552 - ldr w1, [x0,12] + cmp w5, w0, lsr 2 + bls .L1573 + cmn w5, #1 + csel w5, w5, w2, eq +.L1573: + cmp w5, 256 + ldr x0, [x19, 16] + ccmn w5, #1, 4, ne + csel w5, w5, wzr, eq + str w5, [x19] + cbz x0, .L1576 + ldr w1, [x0, 12] cmn w1, #1 - bne .L1552 - ldr w1, [x0,8] + bne .L1576 + ldr w1, [x0, 8] cmn w1, #1 - bne .L1552 + bne .L1576 ldr w0, [x0] cmn w0, #1 - beq .L1552 + beq .L1576 str w1, [x19] -.L1552: +.L1576: ldr w3, [x19] cmn w3, #1 - bne .L1537 - add x21, x21, :lo12:.LANCHOR0 - ldr w1, [x19,4] - ldr x0, [x29,104] - ldrb w2, [x21,2464] + bne .L1562 + ldr w1, [x19, 4] + adrp x0, .LC98 + ldrb w2, [x23, 2464] + add x0, x0, :lo12:.LC98 bl printk - ldr x1, [x19,8] - cbz x1, .L1554 + ldr x1, [x19, 8] + cbz x1, .L1578 adrp x0, .LC99 + mov w3, 8 mov w2, 4 add x0, x0, :lo12:.LC99 - mov w3, 8 bl rknand_print_hex -.L1554: - ldr x1, [x19,16] - cbz x1, .L1537 - mov w2, 4 - ldr x0, [x29,96] - mov w3, w2 +.L1578: + ldr x1, [x19, 16] + cbz x1, .L1562 + mov w3, 4 + adrp x0, .LC100 + mov w2, w3 + add x0, x0, :lo12:.LC100 bl rknand_print_hex -.L1537: - add w22, w22, 1 - add x19, x19, 56 - b .L1535 -.L1599: - mov w0, 0 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 144 - ret + b .L1562 .size FlashReadSlc2KPages, .-FlashReadSlc2KPages .align 2 .global FlashReadPages .type FlashReadPages, %function FlashReadPages: - stp x29, x30, [sp, -176]! - adrp x3, .LANCHOR1+481 + stp x29, x30, [sp, -144]! add x29, sp, 0 - stp x21, x22, [sp,32] - ldrb w3, [x3,#:lo12:.LANCHOR1+481] + stp x21, x22, [sp, 32] adrp x22, .LANCHOR0 - str w3, [x29,148] add x3, x22, :lo12:.LANCHOR0 - stp x25, x26, [sp,64] - stp x19, x20, [sp,16] - stp x23, x24, [sp,48] - stp x27, x28, [sp,80] - str w1, [x29,144] - mov x26, x0 - ldrb w4, [x3,80] - ldrb w23, [x3,72] - str w2, [x29,140] - str w4, [x29,136] - cbz w23, .L1640 + stp x19, x20, [sp, 16] + stp x23, x24, [sp, 48] + stp x25, x26, [sp, 64] + stp x27, x28, [sp, 80] + stp w2, w1, [x29, 104] + ldrb w4, [x3, 72] + cbnz w4, .L1609 + mov x25, x0 + adrp x0, .LANCHOR1+481 + mov w24, 0 + mov w23, 0 + ldrb w0, [x0, #:lo12:.LANCHOR1+481] + str w0, [x29, 120] + ldrb w0, [x3, 80] + str w0, [x29, 100] + adrp x0, .LANCHOR4 + add x27, x0, :lo12:.LANCHOR4 +.L1610: + ldr w0, [x29, 108] + cmp w23, w0 + bcc .L1644 + mov w0, 0 + b .L1608 +.L1609: bl FlashReadSlc2KPages - b .L1689 -.L1640: - adrp x0, .LC98 - mov w24, w23 - add x0, x0, :lo12:.LC98 - str x0, [x29,128] - adrp x0, .LC100 - add x0, x0, :lo12:.LC100 - str x0, [x29,120] - adrp x0, .LC101 - add x0, x0, :lo12:.LC101 - str x0, [x29,112] -.L1601: - ldr w0, [x29,144] - cmp w24, w0 - bcs .L1691 - mov w27, 56 - ldr w0, [x29,144] - ldr w1, [x29,140] - add x2, x29, 172 - umull x27, w24, w27 - sub w4, w0, w24 - add x3, x29, 168 - add x21, x26, x27 +.L1608: + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] + ldp x27, x28, [sp, 80] + ldp x29, x30, [sp], 144 + ret +.L1644: + mov w26, 56 + ldr w1, [x29, 104] + add x2, x29, 140 + add x3, x29, 136 + umull x0, w23, w26 + add x26, x22, :lo12:.LANCHOR0 + str x0, [x29, 112] + add x21, x25, x0 + ldr w0, [x29, 108] + sub w4, w0, w23 mov x0, x21 - ldr w28, [x21,4] + ldr w28, [x21, 4] bl LogAddr2PhyAddr - add x1, x22, :lo12:.LANCHOR0 + ldrb w2, [x26, 2358] mov w20, w0 - ldr w0, [x29,168] - ldrb w2, [x1,2358] - cmp w0, w2 - bcc .L1603 + ldr w0, [x29, 136] + cmp w2, w0 + bhi .L1612 + ldr x1, [x29, 112] mov w0, -1 - str w0, [x26,x27] - b .L1604 -.L1603: - add x0, x1, w0, uxtw - adrp x25, .LANCHOR4 - ldrb w19, [x0,2360] - add x0, x25, :lo12:.LANCHOR4 - str x1, [x29,152] - ldrb w0, [x0,1681] - cmp w0, wzr + str w0, [x25, x1] +.L1613: + add w23, w23, 1 + b .L1610 +.L1612: + add x0, x26, w0, uxtw + ldrb w19, [x0, 2360] + adrp x0, .LANCHOR4 + add x0, x0, :lo12:.LANCHOR4 + ldrb w0, [x0, 1689] + cmp w0, 0 mov w0, w19 csel w20, w20, wzr, ne bl NandcWaitFlashReady - ldr x1, [x29,152] - ldr x0, [x1,88] - ldrb w0, [x0,19] + ldr x0, [x26, 88] + ldrb w0, [x0, 19] sub w2, w0, #1 - uxtb w2, w2 + and w2, w2, 255 cmp w2, 7 - bhi .L1606 + bhi .L1615 + add x1, x26, 1272 + sxtw x2, w19 + add x1, x1, x2 sub w0, w0, #7 - add x1, x1, 1272 - sxtw x4, w19 - add x1, x1, x4 - uxtb w0, w0 + and w0, w0, 255 cmp w0, 1 - ldrb w3, [x1,12] - bhi .L1607 - ldrb w3, [x1,20] -.L1607: - add x2, x22, :lo12:.LANCHOR0 - add x4, x2, x4 - ldrb w0, [x4,2128] - cmp w0, w3 - beq .L1606 - ldrb w1, [x2,1273] + ldrb w3, [x1, 12] + bhi .L1616 + ldrb w3, [x1, 20] +.L1616: + add x0, x22, :lo12:.LANCHOR0 + add x2, x0, x2 + ldrb w1, [x2, 2128] + cmp w1, w3 + beq .L1615 + ldrb w1, [x0, 1273] + add x2, x0, 1276 mov w0, w19 - add x2, x2, 1276 bl HynixSetRRPara -.L1606: +.L1615: mov w0, w19 bl NandcFlashCs - ldr w0, [x29,140] + ldr w0, [x29, 104] cmp w0, 1 cset w0, eq orr w0, w0, w28, lsr 31 - str w0, [x29,152] - cbz w0, .L1608 + str w0, [x29, 124] + cbz w0, .L1617 add x0, x22, :lo12:.LANCHOR0 - ldrb w0, [x0,204] - cbz w0, .L1608 + ldrb w0, [x0, 204] + cbz w0, .L1617 mov w0, w19 bl flash_enter_slc_mode - b .L1609 -.L1608: - mov w0, w19 - bl flash_exit_slc_mode -.L1609: - cmp w19, 255 - ldr w1, [x29,172] - bne .L1647 +.L1618: + add x28, x22, :lo12:.LANCHOR0 +.L1624: + ldr w1, [x29, 140] cmn w1, #1 - cset w0, ne - cbz w0, .L1641 -.L1647: - cbz w20, .L1613 - add x0, x22, :lo12:.LANCHOR0 - ldr w2, [x0,76] + bne .L1619 + cmp w19, 255 + beq .L1646 +.L1619: + cbz w20, .L1621 + ldr w2, [x28, 76] mov w0, w19 add w2, w1, w2 bl FlashReadDpCmd - b .L1614 -.L1613: - mov w0, w19 - bl FlashReadCmd - b .L1614 -.L1641: - mov w20, w0 -.L1611: - ldrb w2, [x29,148] - mov w0, w19 - ldr x3, [x21,8] - mov w1, 0 - ldr x4, [x21,16] - bl NandcXferData - cmn w0, #1 - mov w28, w0 - bne .L1615 - add x0, x22, :lo12:.LANCHOR0 - ldrb w1, [x0,80] - cbz w1, .L1615 - strb wzr, [x0,80] - mov w20, 0 - b .L1609 -.L1615: - cbz w20, .L1616 - add x0, x22, :lo12:.LANCHOR0 - ldr w1, [x29,172] - ldr w2, [x0,76] - mov w0, w19 - add w1, w2, w1 - bl FlashReadDpDataOutCmd - add w0, w24, 1 - mov w4, 56 - ldrb w2, [x29,148] - mov w1, 0 - umull x4, w0, w4 - mov w0, w19 - 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 -.L1616: - mov w0, w19 - bl NandcFlashDeCs - add x6, x22, :lo12:.LANCHOR0 - ldrb w0, [x29,136] - cmn w28, #1 - strb w0, [x6,80] - bne .L1623 - ldrb w0, [x6,2380] - cbnz w0, .L1618 .L1622: - add x0, x25, :lo12:.LANCHOR4 - ldr x20, [x0,1616] - cbnz x20, .L1619 - b .L1692 -.L1618: - ldr x0, [x6,136] - mov w4, 1 - ldr w1, [x29,172] - ldr x2, [x21,8] - ldr x3, [x21,16] - ldr w20, [x0,304] - mov w0, w19 - str x6, [x29,104] - bl FlashDdrTunningRead - cmn w0, #1 - mov w28, w0 - beq .L1621 - ldr x6, [x29,104] - ldrb w0, [x6,2464] - cmp w28, w0, lsr 1 - bls .L1643 -.L1621: - lsr w0, w20, 8 - bl NandcSetDdrPara - cmn w28, #1 - beq .L1622 - b .L1643 -.L1619: - ldr w1, [x29,172] - mov w0, w19 - ldr x2, [x21,8] - ldr x3, [x21,16] - blr x20 - cmn w0, #1 - mov w28, w0 - mov w20, 0 - bne .L1624 - add x2, x22, :lo12:.LANCHOR0 - ldr x0, [x2,88] - ldrb w0, [x0,19] - sub w0, w0, #1 - uxtb w0, w0 - cmp w0, 7 - bhi .L1625 - ldrb w1, [x2,1273] - mov w0, w19 - add x2, x2, 1276 - mov w3, w20 - bl HynixSetRRPara -.L1625: - ldr w1, [x29,172] - mov w0, w19 - ldr x2, [x21,8] - mov w20, 0 - ldr x3, [x21,16] - bl FlashReadRawPage - mov w28, w0 - add x4, x22, :lo12:.LANCHOR0 - ldr x0, [x29,112] - ldr w1, [x21,4] - mov w3, w28 - str x4, [x29,104] - ldrb w2, [x4,2464] - bl printk - cmn w28, #1 - ldr x4, [x29,104] - bne .L1624 - ldrb w0, [x4,204] - cbz w0, .L1624 - ldr w0, [x29,152] - cbz w0, .L1626 - mov w0, w19 - bl flash_enter_slc_mode - b .L1627 -.L1626: - mov w0, w19 - bl flash_exit_slc_mode -.L1627: - add x0, x25, :lo12:.LANCHOR4 - ldr w1, [x29,172] - ldr x2, [x21,8] - mov w20, 0 - ldr x3, [x21,16] - ldr x4, [x0,1616] - mov w0, w19 - blr x4 - mov w28, w0 - b .L1624 -.L1692: - ldr w1, [x29,172] - mov w0, w19 - ldr x2, [x21,8] - ldr x3, [x21,16] - bl FlashReadRawPage - mov w28, w0 - b .L1624 -.L1643: - mov w20, 0 -.L1623: - add x0, x22, :lo12:.LANCHOR0 - ldrb w0, [x0,2464] - add w0, w0, w0, lsl 1 - cmp w28, w0, lsr 2 - bls .L1624 - add x0, x25, :lo12:.LANCHOR4 - ldr x0, [x0,1616] - cmp x0, xzr - mov w0, 256 - csel w28, w28, w0, ne -.L1624: - cmp w28, 256 - beq .L1648 - cmn w28, #1 - bne .L1628 -.L1648: - str w28, [x26,x27] - b .L1630 -.L1628: - str wzr, [x26,x27] -.L1630: - ldr w3, [x26,x27] - cmn w3, #1 - bne .L1632 - add x2, x22, :lo12:.LANCHOR0 - ldr w1, [x21,4] - ldr x0, [x29,128] - ldrb w2, [x2,2464] - bl printk - ldr x1, [x21,16] - cbz x1, .L1632 - mov w2, 4 - ldr x0, [x29,120] - mov w3, w2 - bl rknand_print_hex -.L1632: - cbz w20, .L1634 - add x0, x22, :lo12:.LANCHOR0 - ldrb w0, [x0,2464] - add w0, w0, w0, lsl 1 - cmp w23, w0, lsr 2 - bls .L1635 - add x25, x25, :lo12:.LANCHOR4 - ldr x0, [x25,1616] - cmp x0, xzr - mov w0, 256 - csel w23, w23, w0, ne -.L1635: - add w0, w24, 1 - mov w1, 56 - cmp w23, 256 - umull x0, w0, w1 - beq .L1649 - cmn w23, #1 - bne .L1636 -.L1649: - str w23, [x26,x0] - b .L1634 -.L1636: - str wzr, [x26,x0] -.L1634: - ldr w0, [x29,152] - add w24, w24, w20 - cbz w0, .L1604 - add x0, x22, :lo12:.LANCHOR0 - ldrb w0, [x0,204] - cbz w0, .L1604 - mov w0, w19 - bl flash_exit_slc_mode -.L1604: - add w24, w24, 1 - b .L1601 -.L1691: - mov w0, 0 - b .L1689 -.L1614: mov w0, w19 bl NandcWaitFlashReady - cbz w20, .L1611 - ldr w1, [x29,172] + cbz w20, .L1620 + ldr w1, [x29, 140] mov w0, w19 bl FlashReadDpDataOutCmd - b .L1611 -.L1689: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 176 - ret +.L1620: + ldrb w2, [x29, 120] + mov w1, 0 + ldp x3, x4, [x21, 8] + mov w0, w19 + bl NandcXferData + mov w26, w0 + ldrb w0, [x28, 80] + cbz w0, .L1623 + cmn w26, #1 + bne .L1623 + strb wzr, [x28, 80] + mov w20, 0 + b .L1624 +.L1617: + mov w0, w19 + bl flash_exit_slc_mode + b .L1618 +.L1621: + mov w0, w19 + bl FlashReadCmd + b .L1622 +.L1646: + mov w20, 0 + b .L1620 +.L1623: + cbz w20, .L1625 + add x0, x22, :lo12:.LANCHOR0 + ldr w1, [x29, 140] + ldr w0, [x0, 76] + add w1, w1, w0 + mov w0, w19 + bl FlashReadDpDataOutCmd + add w0, w23, 1 + mov w1, 56 + ldrb w2, [x29, 120] + nop // between mem op and mult-accumulate + umaddl x0, w0, w1, x25 + mov w1, 0 + ldp x3, x4, [x0, 8] + mov w0, w19 + bl NandcXferData + cmn w0, #1 + mov w24, w0 + csel w20, w20, wzr, ne +.L1625: + add x28, x22, :lo12:.LANCHOR0 + mov w0, w19 + bl NandcFlashDeCs + ldrb w0, [x29, 100] + cmn w26, #1 + strb w0, [x28, 80] + bne .L1626 + ldrb w0, [x28, 2380] + cbnz w0, .L1627 +.L1631: + ldr x4, [x27, 1624] + cbnz x4, .L1628 + ldr w1, [x29, 140] + mov w0, w19 + ldp x2, x3, [x21, 8] + bl FlashReadRawPage + b .L1683 +.L1627: + ldr x0, [x28, 136] + mov w4, 1 + ldr w1, [x29, 140] + ldp x2, x3, [x21, 8] + ldr w20, [x0, 304] + mov w0, w19 + bl FlashDdrTunningRead + mov w26, w0 + cmn w0, #1 + beq .L1630 + ldrb w0, [x28, 2464] + cmp w26, w0, lsr 1 + bls .L1647 +.L1630: + lsr w0, w20, 8 + bl NandcSetDdrPara + cmn w26, #1 + beq .L1631 +.L1647: + mov w20, 0 +.L1626: + add x0, x22, :lo12:.LANCHOR0 + ldrb w0, [x0, 2464] + add w0, w0, w0, lsl 1 + cmp w26, w0, lsr 2 + bls .L1632 + ldr x0, [x27, 1624] + cmp x0, 0 + mov w0, 256 + csel w26, w26, w0, ne +.L1632: + ldr x0, [x29, 112] + cmp w26, 256 + ccmn w26, #1, 4, ne + csel w3, w26, wzr, eq + cmn w3, #1 + str w3, [x25, x0] + bne .L1639 + add x0, x22, :lo12:.LANCHOR0 + ldr w1, [x21, 4] + ldrb w2, [x0, 2464] + adrp x0, .LC98 + add x0, x0, :lo12:.LC98 + bl printk + ldr x1, [x21, 16] + cbz x1, .L1639 + mov w3, 4 + adrp x0, .LC100 + mov w2, w3 + add x0, x0, :lo12:.LC100 + bl rknand_print_hex +.L1639: + cbz w20, .L1641 + add x0, x22, :lo12:.LANCHOR0 + ldrb w0, [x0, 2464] + add w0, w0, w0, lsl 1 + cmp w24, w0, lsr 2 + bls .L1642 + ldr x0, [x27, 1624] + cmp x0, 0 + mov w0, 256 + csel w24, w24, w0, ne +.L1642: + add w0, w23, 1 + mov w1, 56 + cmp w24, 256 + ccmn w24, #1, 4, ne + umull x0, w0, w1 + csel w1, w24, wzr, eq + str w1, [x25, x0] +.L1641: + ldr w0, [x29, 124] + add w23, w23, w20 + cbz w0, .L1613 + add x0, x22, :lo12:.LANCHOR0 + ldrb w0, [x0, 204] + cbz w0, .L1613 + mov w0, w19 + bl flash_exit_slc_mode + b .L1613 +.L1628: + ldr w1, [x29, 140] + mov w0, w19 + ldp x2, x3, [x21, 8] + mov w20, 0 + blr x4 + mov w26, w0 + cmn w0, #1 + bne .L1632 + add x1, x22, :lo12:.LANCHOR0 + ldr x0, [x1, 88] + ldrb w0, [x0, 19] + sub w0, w0, #1 + and w0, w0, 255 + cmp w0, 7 + bhi .L1633 + add x2, x1, 1276 + ldrb w1, [x1, 1273] + mov w3, 0 + mov w0, w19 + bl HynixSetRRPara +.L1633: + ldp x2, x3, [x21, 8] + add x20, x22, :lo12:.LANCHOR0 + ldr w1, [x29, 140] + mov w0, w19 + bl FlashReadRawPage + mov w26, w0 + ldrb w2, [x20, 2464] + mov w3, w0 + ldr w1, [x21, 4] + adrp x0, .LC101 + add x0, x0, :lo12:.LC101 + bl printk + cmn w26, #1 + bne .L1650 + ldrb w0, [x20, 204] + cbz w0, .L1650 + ldr w0, [x29, 124] + cbz w0, .L1634 + mov w0, w19 + bl flash_enter_slc_mode +.L1635: + ldr w1, [x29, 140] + mov w0, w19 + ldp x2, x3, [x21, 8] + ldr x4, [x27, 1624] + blr x4 +.L1683: + mov w26, w0 +.L1650: + mov w20, 0 + b .L1632 +.L1634: + mov w0, w19 + bl flash_exit_slc_mode + b .L1635 .size FlashReadPages, .-FlashReadPages .align 2 .global FlashLoadFactorBbt .type FlashLoadFactorBbt, %function FlashLoadFactorBbt: - stp x29, x30, [sp, -192]! + stp x29, x30, [sp, -176]! mov w2, 16 + mov w1, 0 add x29, sp, 0 - stp x21, x22, [sp,32] + stp x21, x22, [sp, 32] adrp x22, .LANCHOR0 add x0, x22, :lo12:.LANCHOR0 - stp x25, x26, [sp,64] - stp x27, x28, [sp,80] - stp x19, x20, [sp,16] - stp x23, x24, [sp,48] + stp x25, x26, [sp, 64] + stp x19, x20, [sp, 16] + add x0, x0, 176 + stp x23, x24, [sp, 48] adrp x23, .LANCHOR4 - mov w27, -1 - ldrh w1, [x0,188] + stp x27, x28, [sp, 80] add x19, x23, :lo12:.LANCHOR4 - ldrh w21, [x0,190] - add x0, x19, 1688 - mov w28, 0 - adrp x26, .LC102 - add x26, x26, :lo12:.LC102 - mul w21, w1, w21 - mov w1, 0 - uxth w21, w21 + mov w26, -1 + mov w27, 0 + ldrh w21, [x0, 14] + ldrh w0, [x0, 12] + mul w21, w21, w0 + add x0, x19, 1696 bl ftl_memset - add w25, w21, w27 - ldr x0, [x19,1656] - str x0, [x29,152] - mov w19, w28 + and w21, w21, 65535 + ldr x0, [x19, 1664] + add w25, w21, w26 + stp xzr, x0, [x29, 128] + and w25, w25, 65535 sub w0, w21, #12 - str xzr, [x29,144] - uxth w25, w25 - str w0, [x29,124] -.L1694: - add x1, x22, :lo12:.LANCHOR0 - ldrb w1, [x1,2358] - cmp w1, w19 - bls .L1704 - mul w3, w19, w21 - mov w20, w25 - mov w4, 61664 -.L1695: - ldr w0, [x29,124] - cmp w20, w0 - ble .L1697 - add w1, w3, w20 - add x0, x29, 136 - lsl w1, w1, 10 - str w1, [x29,140] - mov w1, 1 - str x4, [x29,104] - mov w2, w1 - str x3, [x29,112] - bl FlashReadPages - ldr w0, [x29,136] - ldr x3, [x29,112] - cmn w0, #1 - ldr x4, [x29,104] - beq .L1696 - add x24, x23, :lo12:.LANCHOR4 - ldr x0, [x24,1656] - ldrh w0, [x0] - cmp w0, w4 - bne .L1696 - add x24, x24, 1688 - mov x0, x26 - mov w1, w19 - mov w2, w20 - add w28, w28, 1 - bl printk - strh w20, [x24,w19,sxtw 1] - uxth w28, w28 - b .L1697 -.L1696: - sub w20, w20, #1 - uxth w20, w20 - b .L1695 -.L1697: - add x1, x22, :lo12:.LANCHOR0 - add w19, w19, 1 - uxtb w19, w19 - ldrb w1, [x1,2358] - cmp w1, w28 - csel w27, w27, wzr, ne - b .L1694 -.L1704: - mov w0, w27 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 192 + mov w19, 0 + str w0, [x29, 108] +.L1685: + add x0, x22, :lo12:.LANCHOR0 + ldrb w0, [x0, 2358] + cmp w0, w19 + bhi .L1691 + mov w0, w26 + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] + ldp x27, x28, [sp, 80] + ldp x29, x30, [sp], 176 ret +.L1691: + mul w28, w21, w19 + mov w20, w25 + add x24, x23, :lo12:.LANCHOR4 + mov w3, 61664 +.L1686: + ldr w0, [x29, 108] + cmp w20, w0 + ble .L1688 + add w0, w20, w28 + mov w2, 1 + lsl w0, w0, 10 + str w3, [x29, 104] + str w0, [x29, 124] + mov w1, w2 + add x0, x29, 120 + bl FlashReadPages + ldr w0, [x29, 120] + ldr w3, [x29, 104] + cmn w0, #1 + beq .L1687 + ldr x0, [x24, 1664] + ldrh w0, [x0] + cmp w0, w3 + bne .L1687 + add x24, x24, 1696 + add w27, w27, 1 + and w27, w27, 65535 + mov w2, w20 + mov w1, w19 + adrp x0, .LC102 + add x0, x0, :lo12:.LC102 + bl printk + strh w20, [x24, w19, sxtw 1] +.L1688: + add x0, x22, :lo12:.LANCHOR0 + add w19, w19, 1 + and w19, w19, 255 + ldrb w0, [x0, 2358] + cmp w0, w27 + csel w26, w26, wzr, ne + b .L1685 +.L1687: + sub w20, w20, #1 + and w20, w20, 65535 + b .L1686 .size FlashLoadFactorBbt, .-FlashLoadFactorBbt .align 2 .global FlashProgSlc2KPages .type FlashProgSlc2KPages, %function FlashProgSlc2KPages: - stp x29, x30, [sp, -160]! + stp x29, x30, [sp, -176]! add x29, sp, 0 - stp x23, x24, [sp,48] - mov w23, w1 - adrp x1, .LANCHOR1+481 - stp x21, x22, [sp,32] - stp x25, x26, [sp,64] - adrp x22, .LANCHOR0 - ldrb w26, [x1,#:lo12:.LANCHOR1+481] - stp x19, x20, [sp,16] - str x27, [sp,80] - mov w24, w2 - mov x19, x0 + stp x23, x24, [sp, 48] + mov w24, 56 + stp x25, x26, [sp, 64] + mov w25, w2 + adrp x2, .LANCHOR1+481 + stp x21, x22, [sp, 32] + nop // between mem op and mult-accumulate + umaddl x24, w1, w24, x0 + and w22, w1, 255 + ldrb w26, [x2, #:lo12:.LANCHOR1+481] + mov w23, w22 + stp x27, x28, [sp, 80] mov x21, x0 - mov w25, 0 - add x22, x22, :lo12:.LANCHOR0 - mov w27, -1 -.L1706: - cmp w25, w23 - beq .L1732 - mov w1, w24 - sub w4, w23, w25 + stp x19, x20, [sp, 16] + adrp x27, .LANCHOR0 + mov x19, x0 + add x28, x27, :lo12:.LANCHOR0 +.L1697: + cmp x21, x24 + bne .L1703 + adrp x23, .LANCHOR4 + add x24, x23, :lo12:.LANCHOR4 +.L1704: + cmp x19, x21 + bne .L1711 + ldp x19, x20, [sp, 16] + mov w0, 0 + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] + ldp x27, x28, [sp, 80] + ldp x29, x30, [sp], 176 + ret +.L1703: + mov w1, w25 + mov w4, w23 + add x3, x29, 116 + add x2, x29, 112 mov x0, x21 - add x2, x29, 96 - add x3, x29, 100 bl LogAddr2PhyAddr - ldr w0, [x29,100] - ldrb w1, [x22,2358] - cmp w0, w1 - bcc .L1707 - str w27, [x21] - b .L1708 -.L1707: - add x0, x22, w0, uxtw - ldrb w20, [x0,2360] + add x5, x27, :lo12:.LANCHOR0 + ldr w0, [x29, 116] + ldrb w1, [x5, 2358] + cmp w1, w0 + bhi .L1698 + mov w0, -1 + str w0, [x21] +.L1699: + sub w23, w23, #1 + add x21, x21, 56 + and w23, w23, 255 + b .L1697 +.L1698: + add x0, x5, w0, uxtw + str x5, [x29, 104] + ldrb w20, [x0, 2360] mov w0, w20 bl NandcWaitFlashReady mov w0, w20 bl NandcFlashCs - ldr w1, [x29,96] + ldr w1, [x29, 112] mov w0, w20 bl FlashProgFirstCmd - ldr x3, [x21,8] + ldp x3, x4, [x21, 8] mov w2, w26 - ldr x4, [x21,16] mov w1, 1 mov w0, w20 bl NandcXferData - ldr w1, [x29,96] + ldr w1, [x29, 112] mov w0, w20 bl FlashProgSecondCmd mov w0, w20 bl NandcWaitFlashReady - ldr w1, [x29,96] + ldr w1, [x29, 112] mov w0, w20 bl FlashReadStatus sbfx x0, x0, 0, 1 + ldr x5, [x29, 104] str w0, [x21] + ldr w1, [x29, 112] + ldr w0, [x5, 76] + add w1, w1, w0 mov w0, w20 - ldr w1, [x29,96] - ldr w2, [x22,76] - add w1, w2, w1 bl FlashProgFirstCmd - ldr x0, [x21,8] - mov w1, 1 + ldr x0, [x21, 8] mov w2, w26 - cmp x0, xzr + mov w1, 1 + cmp x0, 0 add x3, x0, 2048 - ldr x0, [x21,16] + ldr x0, [x21, 16] csel x3, x3, xzr, ne + cmp x0, 0 add x4, x0, 8 - cmp x0, xzr csel x4, x4, xzr, ne mov w0, w20 bl NandcXferData - adrp x0, .LANCHOR0 - ldr w1, [x29,96] - add x0, x0, :lo12:.LANCHOR0 - ldr w2, [x0,76] + ldr w0, [x28, 76] + ldr w1, [x29, 112] + add w1, w1, w0 mov w0, w20 - add w1, w2, w1 bl FlashProgSecondCmd mov w0, w20 bl NandcWaitFlashReady - ldr w1, [x29,96] + ldr w1, [x29, 112] mov w0, w20 bl FlashReadStatus - tbz x0, 0, .L1711 - str w27, [x21] -.L1711: + tbz x0, 0, .L1702 + mov w0, -1 + str w0, [x21] +.L1702: mov w0, w20 bl NandcFlashDeCs -.L1708: - add w25, w25, 1 - add x21, x21, 56 - b .L1706 -.L1732: - adrp x25, .LC107 - adrp x26, .LC106 - adrp x27, .LC105 - mov w21, 0 - add x25, x25, :lo12:.LC107 - add x26, x26, :lo12:.LC106 - add x27, x27, :lo12:.LC105 -.L1713: - cmp w21, w23 - beq .L1733 + b .L1699 +.L1711: ldr w0, [x19] cmn w0, #1 - bne .L1714 + bne .L1705 + ldr w1, [x19, 4] adrp x0, .LC103 - ldr w1, [x19,4] add x0, x0, :lo12:.LC103 bl printk - b .L1715 -.L1714: - adrp x20, .LANCHOR4 - sub w4, w23, w21 - add x22, x20, :lo12:.LANCHOR4 - add x3, x29, 100 - mov w1, w24 - add x2, x29, 96 +.L1706: + sub w22, w22, #1 + add x19, x19, 56 + and w22, w22, 255 + b .L1704 +.L1705: + add x20, x23, :lo12:.LANCHOR4 + mov w4, w22 + add x3, x29, 116 + add x2, x29, 112 + mov w1, w25 mov x0, x19 bl LogAddr2PhyAddr - ldr x0, [x22,1664] - mov x1, x19 + ldr x0, [x20, 1672] mov x2, 56 + mov x1, x19 str wzr, [x0] - ldr x0, [x22,1672] + ldr x0, [x20, 1680] str wzr, [x0] - add x0, x29, 104 + add x0, x29, 120 bl memcpy - ldr x0, [x22,1664] + ldr x0, [x20, 1672] + mov w2, w25 + str x0, [x29, 128] mov w1, 1 - str x0, [x29,112] - mov w2, w24 - ldr x0, [x22,1672] - str x0, [x29,120] - add x0, x29, 104 + ldr x0, [x20, 1680] + str x0, [x29, 136] + add x0, x29, 120 bl FlashReadPages - ldr w22, [x29,104] - cmn w22, #1 - bne .L1716 + ldr w20, [x29, 120] + cmn w20, #1 + bne .L1707 + ldr w1, [x19, 4] adrp x0, .LC104 - ldr w1, [x19,4] add x0, x0, :lo12:.LC104 bl printk - str w22, [x19] -.L1716: - ldr w22, [x29,104] - cmp w22, 256 - bne .L1717 - ldr w1, [x19,4] - mov x0, x27 + str w20, [x19] +.L1707: + ldr w20, [x29, 120] + cmp w20, 256 + bne .L1708 + ldr w1, [x19, 4] + adrp x0, .LC105 + add x0, x0, :lo12:.LC105 bl printk - str w22, [x19] -.L1717: - ldr x0, [x19,16] - cbz x0, .L1718 + str w20, [x19] +.L1708: + ldr x0, [x19, 16] + cbz x0, .L1709 ldr w2, [x0] - add x0, x20, :lo12:.LANCHOR4 - ldr x0, [x0,1672] + ldr x0, [x24, 1680] ldr w3, [x0] cmp w2, w3 - beq .L1718 - ldr w1, [x19,4] - mov x0, x26 + beq .L1709 + ldr w1, [x19, 4] + adrp x0, .LC106 + add x0, x0, :lo12:.LC106 bl printk mov w0, -1 str w0, [x19] -.L1718: - ldr x0, [x19,8] - cbz x0, .L1715 - add x20, x20, :lo12:.LANCHOR4 +.L1709: + ldr x0, [x19, 8] + cbz x0, .L1706 ldr w2, [x0] - ldr x0, [x20,1664] + ldr x0, [x24, 1672] ldr w3, [x0] cmp w2, w3 - beq .L1715 - ldr w1, [x19,4] - mov x0, x25 + beq .L1706 + ldr w1, [x19, 4] + adrp x0, .LC107 + add x0, x0, :lo12:.LC107 bl printk mov w0, -1 str w0, [x19] -.L1715: - add w21, w21, 1 - add x19, x19, 56 - b .L1713 -.L1733: - mov w0, 0 - ldr x27, [sp,80] - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x29, x30, [sp], 160 - ret + b .L1706 .size FlashProgSlc2KPages, .-FlashProgSlc2KPages .align 2 .global FtlLoadFactoryBbt .type FtlLoadFactoryBbt, %function FtlLoadFactoryBbt: - stp x29, x30, [sp, -80]! + stp x29, x30, [sp, -96]! adrp x0, .LANCHOR2 - add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x19, .LANCHOR4 add x0, x0, :lo12:.LANCHOR2 - add x19, x19, :lo12:.LANCHOR4 - stp x21, x22, [sp,32] - stp x25, x26, [sp,64] - stp x23, x24, [sp,48] - add x19, x19, 1704 - adrp x22, .LANCHOR0 - ldr x1, [x0,3616] - add x21, x22, :lo12:.LANCHOR0 - ldr x24, [x0,3664] - add x21, x21, 2624 - str x1, [x19,8] + add x29, sp, 0 + stp x23, x24, [sp, 48] mov w23, 0 - str x24, [x19,16] - mov w25, -1 - mov w26, 61664 -.L1735: - add x0, x22, :lo12:.LANCHOR0 - ldrh w1, [x0,2494] + stp x19, x20, [sp, 16] + adrp x20, .LANCHOR4 + stp x21, x22, [sp, 32] + add x20, x20, :lo12:.LANCHOR4 + stp x25, x26, [sp, 64] + add x20, x20, 1712 + str x27, [sp, 80] + mov x26, x20 + mov w27, 61664 + ldr x1, [x0, 3608] + ldr x25, [x0, 3656] + adrp x0, .LANCHOR0 + add x21, x0, :lo12:.LANCHOR0 + mov x24, x0 + add x21, x21, 2636 + stp x1, x25, [x20, 8] +.L1725: + add x0, x24, :lo12:.LANCHOR0 + ldrh w1, [x0, 2494] cmp w23, w1 - bcs .L1744 - ldrh w20, [x0,2542] - strh w25, [x21,12] -.L1737: - add x0, x22, :lo12:.LANCHOR0 - sub w20, w20, #1 - uxth w20, w20 - ldrh w0, [x0,2542] + bcc .L1730 + mov w0, 0 + ldr x27, [sp, 80] + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] + ldp x29, x30, [sp], 96 + ret +.L1730: + ldrh w19, [x0, 2542] + mov x22, x0 + mov w1, -1 + strh w1, [x21] + sub w19, w19, #1 + and w19, w19, 65535 +.L1726: + ldrh w0, [x22, 2542] sub w1, w0, #16 - cmp w20, w1 - ble .L1738 - madd w0, w23, w0, w20 - mov w1, 1 + cmp w19, w1 + ble .L1728 + madd w0, w0, w23, w19 + mov w2, 1 + mov w1, w2 lsl w0, w0, 10 - mov w2, w1 - str w0, [x19,4] - mov x0, x19 + str w0, [x26, 4] + mov x0, x20 bl FlashReadPages - ldr w0, [x19] + ldr w0, [x26] cmn w0, #1 - beq .L1737 - ldrh w0, [x24] - cmp w0, w26 - bne .L1737 - strh w20, [x21,12] -.L1738: + beq .L1727 + ldrh w0, [x25] + cmp w0, w27 + bne .L1727 + strh w19, [x21] +.L1728: add w23, w23, 1 add x21, x21, 2 - b .L1735 -.L1744: - mov w0, 0 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x29, x30, [sp], 80 - ret + b .L1725 +.L1727: + sub w19, w19, #1 + and w19, w19, 65535 + b .L1726 .size FtlLoadFactoryBbt, .-FtlLoadFactoryBbt .align 2 .global FtlGetLastWrittenPage .type FtlGetLastWrittenPage, %function FtlGetLastWrittenPage: - stp x29, x30, [sp, -208]! + stp x29, x30, [sp, -192]! cmp w1, 1 - adrp x3, .LANCHOR0 add x29, sp, 0 - stp x23, x24, [sp,48] - stp x19, x20, [sp,16] - stp x21, x22, [sp,32] - str x25, [sp,64] + stp x23, x24, [sp, 48] mov w23, w1 - add x3, x3, :lo12:.LANCHOR0 - bne .L1746 - ldrh w19, [x3,2546] - b .L1747 -.L1746: - ldrh w19, [x3,2544] -.L1747: + stp x19, x20, [sp, 16] + adrp x1, .LANCHOR0 + stp x21, x22, [sp, 32] + add x1, x1, :lo12:.LANCHOR0 + bne .L1736 + ldrh w19, [x1, 2546] +.L1737: sub w19, w19, #1 lsl w21, w0, 10 - mov w1, 1 - mov w2, w23 sxth w19, w19 - str xzr, [x29,96] + add x1, x29, 128 orr w0, w19, w21 - str w0, [x29,92] - add x0, x29, 88 - add x24, x29, 144 - str x24, [x29,104] - bl FlashReadPages - ldr w0, [x29,144] - cmn w0, #1 - bne .L1748 - mov w22, 0 - mov w25, 2 -.L1749: - cmp w22, w19 - bgt .L1748 - add w3, w22, w19 - mov w1, 1 + stp xzr, x1, [x29, 80] + str w0, [x29, 76] mov w2, w23 - sdiv w20, w3, w25 + mov w1, 1 + add x0, x29, 72 + bl FlashReadPages + ldr w0, [x29, 128] + cmn w0, #1 + bne .L1738 + mov w22, 0 + mov w24, 2 +.L1739: + cmp w22, w19 + ble .L1742 +.L1738: + mov w0, w19 + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x29, x30, [sp], 192 + ret +.L1736: + ldrh w19, [x1, 2544] + b .L1737 +.L1742: + add w20, w22, w19 + mov w2, w23 + mov w1, 1 + sdiv w20, w20, w24 sxth w0, w20 orr w0, w0, w21 - str w0, [x29,92] - add x0, x29, 88 + str w0, [x29, 76] + add x0, x29, 72 bl FlashReadPages - ldr w0, [x24] + ldr w0, [x29, 128] cmn w0, #1 - bne .L1750 - ldr w0, [x24,4] + bne .L1740 + ldr w0, [x29, 132] cmn w0, #1 - bne .L1750 - ldr w0, [x29,88] + bne .L1740 + ldr w0, [x29, 72] cmn w0, #1 - beq .L1750 + beq .L1740 sub w19, w20, #1 sxth w19, w19 - b .L1749 -.L1750: + b .L1739 +.L1740: add w20, w20, 1 sxth w22, w20 - b .L1749 -.L1748: - 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], 208 - ret + b .L1739 .size FtlGetLastWrittenPage, .-FtlGetLastWrittenPage .align 2 .global FtlLoadBbt @@ -11257,183 +11115,180 @@ FtlGetLastWrittenPage: FtlLoadBbt: stp x29, x30, [sp, -80]! add x29, sp, 0 - stp x23, x24, [sp,48] + stp x23, x24, [sp, 48] adrp x24, .LANCHOR2 - adrp x23, .LANCHOR4 add x0, x24, :lo12:.LANCHOR2 - stp x19, x20, [sp,16] - stp x21, x22, [sp,32] - stp x25, x26, [sp,64] - add x19, x23, :lo12:.LANCHOR4 - adrp x20, .LANCHOR0 - ldr x1, [x0,3616] - add x19, x19, 1704 - ldr x22, [x0,3664] - mov w25, 61649 - str x1, [x19,8] - str x22, [x19,16] + stp x19, x20, [sp, 16] + stp x25, x26, [sp, 64] + adrp x23, .LANCHOR4 + stp x21, x22, [sp, 32] + add x20, x23, :lo12:.LANCHOR4 + add x20, x20, 1712 + adrp x19, .LANCHOR0 + ldr x1, [x0, 3608] + add x25, x19, :lo12:.LANCHOR0 + ldr x22, [x0, 3656] + mov w26, 61649 + stp x1, x22, [x20, 8] bl FtlBbtMemInit - add x0, x20, :lo12:.LANCHOR0 - ldrh w21, [x0,2542] + ldrh w21, [x25, 2542] sub w21, w21, #1 - uxth w21, w21 -.L1757: - add x0, x20, :lo12:.LANCHOR0 - ldrh w0, [x0,2542] + and w21, w21, 65535 +.L1748: + ldrh w0, [x25, 2542] sub w0, w0, #48 cmp w21, w0 - ble .L1760 + ble .L1751 lsl w0, w21, 10 - mov w1, 1 - str w0, [x19,4] - mov w2, w1 - mov x0, x19 + mov w2, 1 + str w0, [x20, 4] + mov w1, w2 + mov x0, x20 bl FlashReadPages - ldr w0, [x19] + ldr w0, [x20] cmn w0, #1 - bne .L1758 - ldr w0, [x19,4] - mov w1, 1 - mov w2, w1 + bne .L1749 + ldr w0, [x20, 4] + mov w2, 1 + mov w1, w2 add w0, w0, 1 - str w0, [x19,4] - mov x0, x19 + str w0, [x20, 4] + mov x0, x20 bl FlashReadPages -.L1758: - ldr w0, [x19] +.L1749: + ldr w0, [x20] cmn w0, #1 - beq .L1759 + beq .L1750 ldrh w0, [x22] - cmp w0, w25 - bne .L1759 - add x1, x20, :lo12:.LANCHOR0 + cmp w0, w26 + bne .L1750 + add x1, x19, :lo12:.LANCHOR0 add x0, x1, 2624 - strh w21, [x1,2624] - ldr w1, [x22,4] - str w1, [x0,8] - ldrh w1, [x22,8] - strh w1, [x0,4] - b .L1760 -.L1759: - sub w21, w21, #1 - uxth w21, w21 - b .L1757 -.L1760: - add x21, x20, :lo12:.LANCHOR0 - mov w2, 65535 - mov w0, -1 - ldrh w1, [x21,2624] - cmp w1, w2 - beq .L1762 - ldrh w1, [x21,2628] - cmp w1, w2 - beq .L1764 + strh w21, [x1, 2624] + ldr w1, [x22, 4] + str w1, [x0, 8] + ldrh w1, [x22, 8] + strh w1, [x0, 4] +.L1751: + add x21, x19, :lo12:.LANCHOR0 + mov w0, 65535 + ldrh w1, [x21, 2624] + cmp w1, w0 + beq .L1765 + ldrh w1, [x21, 2628] + cmp w1, w0 + beq .L1755 add x25, x23, :lo12:.LANCHOR4 lsl w1, w1, 10 - add x0, x25, 1704 - str w1, [x0,4] - mov w1, 1 - mov w2, w1 + add x0, x25, 1712 + mov w2, 1 + str w1, [x0, 4] + mov w1, w2 bl FlashReadPages - ldr w0, [x25,1704] + ldr w0, [x25, 1712] cmn w0, #1 - beq .L1764 + beq .L1755 ldrh w1, [x22] mov w0, 61649 cmp w1, w0 - bne .L1764 - ldr w0, [x22,4] - ldr w1, [x21,2632] + bne .L1755 + ldr w1, [x21, 2632] + ldr w0, [x22, 4] cmp w0, w1 - bls .L1764 - str w0, [x21,2632] - ldrh w1, [x21,2628] - ldrh w0, [x22,8] - strh w1, [x21,2624] - strh w0, [x21,2628] -.L1764: - add x25, x20, :lo12:.LANCHOR0 - mov w1, 1 + bls .L1755 + str w0, [x21, 2632] + ldrh w1, [x21, 2628] + ldrh w0, [x22, 8] + strh w1, [x21, 2624] + strh w0, [x21, 2628] +.L1755: + add x25, x19, :lo12:.LANCHOR0 add x21, x23, :lo12:.LANCHOR4 - mov w26, 61649 - add x21, x21, 1704 - ldrh w0, [x25,2624] - bl FtlGetLastWrittenPage - sxth w19, w0 - add w0, w0, 1 - strh w0, [x25,2626] -.L1766: - tbnz w19, #31, .L1771 - ldrh w0, [x25,2624] + add x21, x21, 1712 + add x26, x24, :lo12:.LANCHOR2 mov w1, 1 - mov w2, w1 - orr w0, w19, w0, lsl 10 - str w0, [x21,4] - add x0, x24, :lo12:.LANCHOR2 - ldr x0, [x0,3616] - str x0, [x21,8] + ldrh w0, [x25, 2624] + bl FtlGetLastWrittenPage + sxth w20, w0 + add w0, w0, 1 + strh w0, [x25, 2626] +.L1757: + tbnz w20, #31, .L1762 + ldrh w0, [x25, 2624] + mov w2, 1 + mov w1, w2 + orr w0, w20, w0, lsl 10 + str w0, [x21, 4] + ldr x0, [x26, 3608] + str x0, [x21, 8] mov x0, x21 bl FlashReadPages ldr w0, [x21] cmn w0, #1 - beq .L1767 - ldrh w0, [x22] - cmp w0, w26 - bne .L1767 -.L1771: - add x1, x20, :lo12:.LANCHOR0 - ldrh w0, [x22,10] - mov w2, 65535 - strh w0, [x1,2630] - ldrh w0, [x22,12] - cmp w0, w2 - bne .L1768 - b .L1769 -.L1767: - sub w19, w19, #1 - sxth w19, w19 - b .L1766 -.L1768: - ldr w2, [x1,2468] - cmp w0, w2 - beq .L1769 - ldrh w1, [x1,2482] - lsr w1, w1, 2 - cmp w0, w1 - bcs .L1769 - cmp w2, w1 - bcs .L1769 - bl FtlSysBlkNumInit -.L1769: - add x20, x20, :lo12:.LANCHOR0 - mov x19, 0 - add x21, x20, 2624 - add x23, x23, :lo12:.LANCHOR4 -.L1772: - ldrh w0, [x20,2494] - mov w1, w19 - add x19, x19, 1 + beq .L1758 + ldrh w1, [x22] + mov w0, 61649 cmp w1, w0 - bcs .L1790 - add x0, x24, :lo12:.LANCHOR2 - ldr x3, [x23,1712] - ldrh w2, [x0,3792] - add x0, x21, x19, lsl 3 - mul w1, w1, w2 - ldr x0, [x0,24] - lsl w2, w2, 2 - add x1, x3, x1, lsl 2 - bl ftl_memcpy - b .L1772 -.L1790: - mov w0, 0 + bne .L1758 .L1762: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] + add x1, x19, :lo12:.LANCHOR0 + ldrh w0, [x22, 10] + mov w2, 65535 + strh w0, [x1, 2630] + ldrh w0, [x22, 12] + cmp w0, w2 + bne .L1759 +.L1760: + add x19, x19, :lo12:.LANCHOR0 + add x24, x24, :lo12:.LANCHOR2 + add x21, x19, 2656 + add x23, x23, :lo12:.LANCHOR4 + mov w20, 0 +.L1763: + ldrh w0, [x19, 2494] + cmp w20, w0 + bcc .L1764 + mov w0, 0 +.L1747: + 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 +.L1750: + sub w21, w21, #1 + and w21, w21, 65535 + b .L1748 +.L1758: + sub w20, w20, #1 + sxth w20, w20 + b .L1757 +.L1759: + ldr w2, [x1, 2468] + cmp w0, w2 + beq .L1760 + ldrh w1, [x1, 2482] + lsr w1, w1, 2 + cmp w2, w1 + bcs .L1760 + cmp w0, w1 + bcs .L1760 + bl FtlSysBlkNumInit + b .L1760 +.L1764: + ldrh w2, [x24, 3784] + ldr x0, [x23, 1720] + mul w1, w2, w20 + lsl w2, w2, 2 + add w20, w20, 1 + add x1, x0, x1, lsl 2 + ldr x0, [x21], 8 + bl ftl_memcpy + b .L1763 +.L1765: + mov w0, -1 + b .L1747 .size FtlLoadBbt, .-FtlLoadBbt .align 2 .global FtlScanSysBlk @@ -11442,909 +11297,846 @@ FtlScanSysBlk: stp x29, x30, [sp, -128]! mov w1, 0 add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x19, .LANCHOR0 - stp x21, x22, [sp,32] - add x20, x19, :lo12:.LANCHOR0 + stp x19, x20, [sp, 16] + stp x21, x22, [sp, 32] adrp x22, .LANCHOR2 - add x21, x22, :lo12:.LANCHOR2 - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] - stp x27, x28, [sp,80] - strh wzr, [x21,3864] - mov x24, x22 - ldr w2, [x20,2572] - mov w22, 65535 - ldr x0, [x21,3776] + add x19, x22, :lo12:.LANCHOR2 + stp x23, x24, [sp, 48] + adrp x23, .LANCHOR0 + add x20, x23, :lo12:.LANCHOR0 + stp x25, x26, [sp, 64] + mov w25, 56 + ldr x0, [x19, 3768] + ldr w2, [x20, 2572] + stp x27, x28, [sp, 80] + strh wzr, [x19, 3856] lsl w2, w2, 2 - strh wzr, [x20,2590] + strh wzr, [x20, 2590] bl ftl_memset - ldr w2, [x20,2572] + ldr x0, [x19, 3712] mov w1, 0 - ldr x0, [x21,3720] + ldr w2, [x20, 2572] lsl w2, w2, 1 bl ftl_memset - ldrh w2, [x20,2564] + ldr x0, [x19, 3736] mov w1, 0 - ldr x0, [x21,3744] + ldrh w2, [x20, 2564] lsl w2, w2, 2 bl ftl_memset - ldrh w2, [x20,2564] + ldr x0, [x20, 2592] mov w1, 0 - ldr x0, [x20,2592] + ldrh w2, [x20, 2564] lsl w2, w2, 1 bl ftl_memset - add x0, x21, 784 - mov w1, 255 mov w2, 16 + mov w1, 255 + add x0, x19, 784 bl ftl_memset - ldrh w21, [x20,2480] -.L1792: - add x1, x19, :lo12:.LANCHOR0 - ldrh w0, [x1,2482] - cmp w0, w21 - bls .L1833 - mov x27, 0 - ldrh w5, [x1,2472] - ldrh w4, [x1,2556] - mov w20, w27 - mov x23, x1 -.L1834: - cmp w5, w27, uxth - bls .L1867 - add x0, x23, 2504 - mov w1, w21 - str x4, [x29,112] - str x5, [x29,120] - ldrb w0, [x0,x27] + ldrh w24, [x20, 2480] + add x0, x20, 2504 + str x0, [x29, 112] +.L1777: + ldrh w0, [x20, 2482] + cmp w0, w24 + bls .L1816 + ldrh w9, [x20, 2472] + mov x6, 0 + ldrh w8, [x20, 2556] + mov w21, 0 + add x5, x22, :lo12:.LANCHOR2 + mov w7, 4 + b .L1817 +.L1779: + ldr x0, [x29, 112] + mov w1, w24 + ldrb w0, [x0, x6] bl V2P_block - uxth w28, w0 + and w4, w0, 65535 bl FtlBbmIsBadBlock - ldr x5, [x29,120] - ldr x4, [x29,112] - cbnz w0, .L1793 - add x2, x24, :lo12:.LANCHOR2 - mov w0, 56 - lsl w28, w28, 10 - mov w3, 4 - umull x0, w20, w0 - ldr x1, [x2,3592] - add x1, x1, x0 - str w28, [x1,4] - ldr x1, [x2,3592] - add x0, x1, x0 - ldr x1, [x2,1400] - ldr x2, [x2,1408] - str x1, [x0,8] - mul w1, w20, w4 - add w20, w20, 1 - sdiv w1, w1, w3 - uxth w20, w20 - add x1, x2, w1, sxtw 2 - str x1, [x0,16] -.L1793: - add x27, x27, 1 - b .L1834 -.L1867: - cbz w20, .L1796 - add x0, x24, :lo12:.LANCHOR2 - mov w1, w20 + cbnz w0, .L1778 + umull x2, w21, w25 + ldr x0, [x5, 3584] + lsl w4, w4, 10 + add x0, x0, x2 + str w4, [x0, 4] + ldr x1, [x5, 3584] + ldr x0, [x5, 1392] + add x1, x1, x2 + ldr x2, [x5, 1400] + str x0, [x1, 8] + mul w0, w21, w8 + add w21, w21, 1 + and w21, w21, 65535 + sdiv w0, w0, w7 + add x0, x2, w0, sxtw 2 + str x0, [x1, 16] +.L1778: + add x6, x6, 1 +.L1817: + cmp w9, w6, uxth + bhi .L1779 + cbnz w21, .L1780 +.L1815: + add w24, w24, 1 + and w24, w24, 65535 + b .L1777 +.L1780: + add x19, x22, :lo12:.LANCHOR2 mov w2, 1 - mov x23, 0 - mov w27, -1 - mov w28, 61604 - ldr x0, [x0,3592] + mov w1, w21 + add x27, x19, 784 + mov x26, 0 + ldr x0, [x19, 3584] bl FlashReadPages -.L1797: - cmp w20, w23, uxth - bls .L1796 - mov x0, 56 - mul x6, x23, x0 - add x0, x24, :lo12:.LANCHOR2 - ldr x0, [x0,3592] - add x1, x0, x6 - ldr w0, [x0,x6] - ldr w5, [x1,4] + umull x0, w21, w25 + str x0, [x29, 120] +.L1814: + ldr x0, [x19, 3584] + add x1, x0, x26 + ldr w0, [x0, x26] + ldr w28, [x1, 4] cmn w0, #1 - ldr x26, [x1,16] - ubfx x25, x5, 10, 16 - bne .L1799 - mov w7, 16 -.L1798: - add x8, x24, :lo12:.LANCHOR2 - str x7, [x29,104] - str x8, [x29,112] - str x6, [x29,120] - ldr x0, [x8,3592] - add x0, x0, x6 - ldr w1, [x0,4] + ldr x21, [x1, 16] + ubfx x28, x28, 10, 16 + bne .L1783 + mov w6, 16 + mov w7, 65535 +.L1785: + ldr x0, [x19, 3584] + mov w2, 1 + stp w7, w6, [x29, 104] + add x0, x0, x26 + ldr w1, [x0, 4] add w1, w1, 1 - str w1, [x0,4] - mov w1, 1 - ldr x0, [x8,3592] - mov w2, w1 - add x0, x0, x6 + str w1, [x0, 4] + mov w1, w2 + ldr x0, [x19, 3584] + add x0, x0, x26 bl FlashReadPages - ldrh w0, [x26] - ldr x8, [x29,112] - cmp w0, w22 - ldr x6, [x29,120] - ldr x7, [x29,104] - ldr x0, [x8,3592] - bne .L1800 - str w27, [x0,x6] - b .L1799 -.L1800: - ldr w0, [x0,x6] - cmn w0, #1 - bne .L1799 - sub w7, w7, #1 - uxth w7, w7 - cbnz w7, .L1798 -.L1799: - add x0, x24, :lo12:.LANCHOR2 - ldr x1, [x0,3592] - ldr w1, [x1,x6] - cmn w1, #1 - beq .L1802 - ldr w0, [x0,752] - cmn w0, #1 - beq .L1803 - ldr w1, [x26,4] + ldp w7, w6, [x29, 104] + ldrh w0, [x21] + cmp w0, w7 + ldr x0, [x19, 3584] + bne .L1782 + mov w1, -1 + str w1, [x0, x26] + ldr x0, [x19, 3584] + ldr w0, [x0, x26] cmp w0, w1 - bhi .L1804 -.L1803: - ldr w0, [x26,4] + beq .L1851 +.L1783: + ldr w0, [x19, 752] + ldr w10, [x21, 4] cmn w0, #1 - beq .L1804 - add x1, x24, :lo12:.LANCHOR2 - add w0, w0, 1 - str w0, [x1,752] -.L1804: - ldrh w0, [x26] - cmp w0, w28 - beq .L1806 - bhi .L1807 + beq .L1786 + cmp w0, w10 + bhi .L1787 +.L1786: + cmn w10, #1 + beq .L1787 + add w0, w10, 1 + str w0, [x19, 752] +.L1787: + ldrh w0, [x21] + mov w1, 61604 + cmp w0, w1 + beq .L1789 + bhi .L1790 mov w1, 61574 cmp w0, w1 - bne .L1805 - add x0, x19, :lo12:.LANCHOR0 - add x7, x24, :lo12:.LANCHOR2 - ldrh w6, [x0,2564] - ldrh w0, [x0,2590] - sub w2, w6, #1 - ldr x7, [x7,3744] - sxth x1, w2 - sub w2, w2, w0 - b .L1820 -.L1807: + beq .L1791 +.L1788: + ldr x0, [x29, 120] + add x26, x26, 56 + cmp x26, x0 + bne .L1814 + b .L1815 +.L1782: + ldr w0, [x0, x26] + cmn w0, #1 + bne .L1783 + sub w6, w6, #1 + ands w6, w6, 65535 + bne .L1785 +.L1851: + mov w1, 0 + mov w0, w28 + bl FtlFreeSysBlkQueueIn + b .L1788 +.L1790: mov w1, 61634 cmp w0, w1 - beq .L1809 - cmp w0, w22 - bne .L1805 - mov w0, w25 - b .L1866 -.L1809: - add x0, x19, :lo12:.LANCHOR0 - add x7, x24, :lo12:.LANCHOR2 - ldr w6, [x0,2572] - ldrh w0, [x7,3864] - ldr x7, [x7,3776] - uxth w2, w6 - sub w1, w2, #1 - sub w2, w2, w0 + beq .L1792 + mov w1, 65535 + cmp w0, w1 + beq .L1851 + b .L1788 +.L1792: + ldr w6, [x20, 2572] + ldrh w1, [x19, 3856] + and w2, w6, 65535 + ldr x7, [x19, 3768] + sub w0, w2, #1 + sub w2, w2, w1 sub w2, w2, #1 - sxth x1, w1 + sxth x0, w0 sxth w2, w2 -.L1811: - cmp w1, w2 - ble .L1868 - sbfiz x8, x1, 2, 32 - ldr w11, [x26,4] - sxth x9, w1 - ldr w10, [x7,x8] - cmp w11, w10 - bls .L1812 +.L1794: + cmp w0, w2 + bgt .L1800 + tbz w0, #31, .L1832 + b .L1788 +.L1800: + sxtw x8, w0 + lsl x9, x8, 2 + ldr w11, [x7, x9] + cmp w10, w11 + bls .L1795 ldr w2, [x7] - cbnz w2, .L1813 - cmp w0, w6 - beq .L1813 - add x2, x24, :lo12:.LANCHOR2 - add w0, w0, 1 - strh w0, [x2,3864] -.L1813: - mov w0, 0 -.L1814: - cmp w0, w1 - beq .L1869 - add x6, x24, :lo12:.LANCHOR2 - sxtw x2, w0 - lsl x7, x2, 2 - lsl x2, x2, 1 - add w0, w0, 1 - ldr x10, [x6,3776] - sxth w0, w0 - add x11, x10, x7 - ldr w11, [x11,4] - str w11, [x10,x7] - ldr x6, [x6,3720] - add x7, x6, x2 - ldrh w7, [x7,2] - strh w7, [x6,x2] - b .L1814 -.L1869: - add x0, x24, :lo12:.LANCHOR2 - ldr w6, [x26,4] - ldr x2, [x0,3776] - str w6, [x2,x8] - ldr x2, [x0,3720] - strh w25, [x2,x9,lsl 1] - tbz w1, #31, .L1816 - b .L1805 -.L1812: - sub w1, w1, #1 - sxth x1, w1 - b .L1811 -.L1868: - tbz w1, #31, .L1849 - b .L1805 -.L1816: - add x2, x19, :lo12:.LANCHOR0 - ldrh w0, [x0,3864] - ldr w2, [x2,2572] - sub w2, w2, w0 + cbnz w2, .L1796 + cmp w6, w1 + beq .L1796 + add w1, w1, 1 + strh w1, [x19, 3856] +.L1796: + mov w1, 0 +.L1797: + cmp w1, w0 + bne .L1798 + ldr x1, [x19, 3768] + ldr w2, [x21, 4] + str w2, [x1, x9] + ldr x1, [x19, 3712] + strh w28, [x1, x8, lsl 1] + tbnz w0, #31, .L1788 + ldrh w1, [x19, 3856] + ldr w2, [x20, 2572] + sub w2, w2, w1 sub w2, w2, #1 - cmp w1, w2, sxth - bgt .L1805 -.L1849: - add x2, x24, :lo12:.LANCHOR2 - add w0, w0, 1 - ldr w4, [x26,4] - strh w0, [x2,3864] - ldr x0, [x2,3776] - str w4, [x0,x1,lsl 2] - ldr x0, [x2,3720] - b .L1865 -.L1826: - sbfiz x8, x1, 2, 32 - ldr w11, [x26,4] - sxth x9, w1 - ldr w10, [x7,x8] - cmp w11, w10 - bhi .L1870 - sub w1, w1, #1 - sxth x1, w1 -.L1820: - cmp w1, w2 - bgt .L1826 - b .L1825 -.L1870: - ldr w2, [x7] - cbnz w2, .L1822 - cmp w0, w6 - beq .L1822 - add x2, x19, :lo12:.LANCHOR0 - add w0, w0, 1 - strh w0, [x2,2590] -.L1822: - mov w0, 0 -.L1823: - cmp w0, w1 - beq .L1871 - add x2, x24, :lo12:.LANCHOR2 - ldr x7, [x2,3744] - sxtw x2, w0 + cmp w0, w2, sxth + bgt .L1788 +.L1832: + add w1, w1, 1 + strh w1, [x19, 3856] + ldr x1, [x19, 3768] + ldr w2, [x21, 4] + str w2, [x1, x0, lsl 2] + ldr x1, [x19, 3712] +.L1850: + strh w28, [x1, x0, lsl 1] + b .L1788 +.L1798: + ldr x7, [x19, 3768] + sxtw x2, w1 lsl x6, x2, 2 lsl x2, x2, 1 add x10, x7, x6 - add w0, w0, 1 - sxth w0, w0 - ldr w10, [x10,4] - str w10, [x7,x6] - add x6, x19, :lo12:.LANCHOR0 - ldr x6, [x6,2592] + add w1, w1, 1 + sxth w1, w1 + ldr w10, [x10, 4] + str w10, [x7, x6] + ldr x6, [x19, 3712] add x7, x6, x2 - ldrh w7, [x7,2] - strh w7, [x6,x2] - b .L1823 -.L1871: - add x0, x24, :lo12:.LANCHOR2 - ldr w2, [x26,4] - ldr x0, [x0,3744] - str w2, [x0,x8] - add x0, x19, :lo12:.LANCHOR0 - ldr x0, [x0,2592] - strh w25, [x0,x9,lsl 1] -.L1825: - tbnz w1, #31, .L1805 - add x2, x19, :lo12:.LANCHOR0 - ldrh w0, [x2,2564] - ldrh w6, [x2,2590] + ldrh w7, [x7, 2] + strh w7, [x6, x2] + b .L1797 +.L1795: sub w0, w0, #1 - sub w0, w0, w6 - cmp w1, w0, sxth - bgt .L1805 - add x0, x24, :lo12:.LANCHOR2 - add w6, w6, 1 - ldr w4, [x26,4] - strh w6, [x2,2590] - ldr x0, [x0,3744] - str w4, [x0,x1,lsl 2] - ldr x0, [x2,2592] -.L1865: - strh w25, [x0,x1,lsl 1] - b .L1805 + sxth x0, w0 + b .L1794 +.L1791: + ldrh w6, [x20, 2564] + ldrh w1, [x20, 2590] + sub w2, w6, #1 + ldr x7, [x19, 3736] + sxth x0, w2 + sub w2, w2, w1 +.L1803: + cmp w0, w2 + ble .L1808 + sxtw x8, w0 + lsl x9, x8, 2 + ldr w11, [x7, x9] + cmp w10, w11 + bls .L1804 + ldr w2, [x7] + cbnz w2, .L1805 + cmp w6, w1 + beq .L1805 + add w1, w1, 1 + strh w1, [x20, 2590] +.L1805: + mov w1, 0 .L1806: - add x0, x24, :lo12:.LANCHOR2 - add x1, x0, 784 - ldrh w2, [x0,784] - cmp w2, w22 - bne .L1827 - strh w25, [x0,784] - ldr w0, [x26,4] - str w0, [x1,8] - b .L1805 -.L1827: - ldrh w0, [x1,4] - cmp w0, w22 - beq .L1828 + cmp w1, w0 + bne .L1807 + ldr x1, [x19, 3736] + ldr w2, [x21, 4] + str w2, [x1, x9] + ldr x1, [x20, 2592] + strh w28, [x1, x8, lsl 1] +.L1808: + tbnz w0, #31, .L1788 + ldrh w1, [x20, 2564] + ldrh w2, [x20, 2590] + sub w1, w1, #1 + sub w1, w1, w2 + cmp w0, w1, sxth + bgt .L1788 + ldr x1, [x19, 3736] + add w2, w2, 1 + strh w2, [x20, 2590] + ldr w2, [x21, 4] + str w2, [x1, x0, lsl 2] + ldr x1, [x20, 2592] + b .L1850 +.L1807: + ldr x7, [x19, 3736] + sxtw x2, w1 + lsl x6, x2, 2 + lsl x2, x2, 1 + add x10, x7, x6 + add w1, w1, 1 + sxth w1, w1 + ldr w10, [x10, 4] + str w10, [x7, x6] + ldr x6, [x20, 2592] + add x7, x6, x2 + ldrh w7, [x7, 2] + strh w7, [x6, x2] + b .L1806 +.L1804: + sub w0, w0, #1 + sxth x0, w0 + b .L1803 +.L1789: + ldrh w0, [x27] + mov w1, 65535 + cmp w0, w1 + bne .L1810 + strh w28, [x27] + str w10, [x27, 8] + b .L1788 +.L1810: + ldrh w0, [x27, 4] + cmp w0, w1 + beq .L1811 mov w1, 1 bl FtlFreeSysBlkQueueIn -.L1828: - add x1, x24, :lo12:.LANCHOR2 - ldr w2, [x26,4] - add x0, x1, 784 - ldr w6, [x0,8] - cmp w6, w2 - bcs .L1829 - ldrh w2, [x1,784] - strh w2, [x0,4] - strh w25, [x1,784] - ldr w1, [x26,4] - str w1, [x0,8] - b .L1805 -.L1829: - strh w25, [x0,4] - b .L1805 -.L1802: - add x0, x19, :lo12:.LANCHOR0 - ldrb w1, [x0,204] - mov w0, w25 - cbz w1, .L1830 -.L1866: - mov w1, 0 -.L1830: - bl FtlFreeSysBlkQueueIn -.L1805: - add x23, x23, 1 - b .L1797 -.L1796: - add w21, w21, 1 - uxth w21, w21 - b .L1792 -.L1833: - add x4, x24, :lo12:.LANCHOR2 - ldr x2, [x4,3720] - ldrh w0, [x2] - cbz w0, .L1835 -.L1838: - add x1, x19, :lo12:.LANCHOR0 - ldr x2, [x1,2592] - ldrh w0, [x2] - cbz w0, .L1836 - b .L1859 -.L1835: - ldrh w4, [x4,3864] - cbz w4, .L1838 - ldr w1, [x1,2572] -.L1839: - cmp w0, w1 - bcs .L1838 - ldrh w4, [x2,w0,sxtw 1] - cbz w4, .L1840 - mov w7, w0 -.L1841: - add x1, x19, :lo12:.LANCHOR0 - ldr w1, [x1,2572] - cmp w0, w1 - bcs .L1838 - add x2, x24, :lo12:.LANCHOR2 - sxtw x6, w0 - sub w1, w0, w7 - lsl x4, x6, 1 - add w0, w0, 1 - ldr x5, [x2,3720] - sxtw x1, w1 - sxth w0, w0 - ldrh w8, [x5,x4] - strh w8, [x5,x1,lsl 1] - ldr x5, [x2,3776] - ldr w6, [x5,x6,lsl 2] - str w6, [x5,x1,lsl 2] - ldr x1, [x2,3720] - strh wzr, [x1,x4] - b .L1841 -.L1840: - add w0, w0, 1 - sxth w0, w0 - b .L1839 -.L1836: - ldrh w4, [x1,2590] - cbz w4, .L1859 - ldrh w1, [x1,2564] -.L1844: - cmp w0, w1 - mov w7, w0 - bge .L1859 - ldrh w4, [x2,w0,sxtw 1] - cbz w4, .L1845 -.L1846: - add x2, x19, :lo12:.LANCHOR0 - ldrh w1, [x2,2564] - cmp w0, w1 - bge .L1859 - sxtw x6, w0 - sub w1, w0, w7 - ldr x5, [x2,2592] - lsl x4, x6, 1 - sxtw x1, w1 - add w0, w0, 1 - ldrh w8, [x5,x4] - sxth w0, w0 - strh w8, [x5,x1,lsl 1] - add x5, x24, :lo12:.LANCHOR2 - ldr x5, [x5,3744] - ldr w6, [x5,x6,lsl 2] - str w6, [x5,x1,lsl 2] - ldr x1, [x2,2592] - strh wzr, [x1,x4] - b .L1846 -.L1845: - add w0, w0, 1 - sxth w0, w0 - b .L1844 -.L1859: +.L1811: + ldr w0, [x21, 4] + ldr w1, [x27, 8] + cmp w1, w0 + bcs .L1812 + ldrh w0, [x27] + strh w0, [x27, 4] + strh w28, [x27] + ldr w0, [x21, 4] + str w0, [x27, 8] + b .L1788 +.L1812: + strh w28, [x27, 4] + b .L1788 +.L1816: + add x0, x22, :lo12:.LANCHOR2 + ldr x1, [x0, 3712] + ldrh w2, [x1] + cbz w2, .L1818 +.L1821: + add x0, x23, :lo12:.LANCHOR0 + ldr x1, [x0, 2592] + ldrh w2, [x1] + cbz w2, .L1819 +.L1837: + ldp x19, x20, [sp, 16] 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 x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] + ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 128 ret +.L1818: + ldrh w0, [x0, 3856] + cbz w0, .L1821 + ldr w2, [x20, 2572] + mov w0, 0 +.L1822: + cmp w0, w2 + bcs .L1821 + ldrh w3, [x1, w0, sxtw 1] + cbz w3, .L1823 + mov w1, w0 + add x7, x23, :lo12:.LANCHOR0 + add x3, x22, :lo12:.LANCHOR2 +.L1824: + ldr w2, [x7, 2572] + cmp w1, w2 + bcs .L1821 + ldr x5, [x3, 3712] + sxtw x6, w1 + lsl x4, x6, 1 + sub w2, w1, w0 + sxtw x2, w2 + add w1, w1, 1 + sxth w1, w1 + ldrh w8, [x5, x4] + strh w8, [x5, x2, lsl 1] + ldr x5, [x3, 3768] + ldr w6, [x5, x6, lsl 2] + str w6, [x5, x2, lsl 2] + ldr x2, [x3, 3712] + strh wzr, [x2, x4] + b .L1824 +.L1823: + add w0, w0, 1 + sxth w0, w0 + b .L1822 +.L1819: + ldrh w2, [x0, 2590] + cbz w2, .L1837 + ldrh w2, [x0, 2564] + mov w0, 0 +.L1827: + mov w5, w0 + cmp w0, w2 + bge .L1837 + ldrh w3, [x1, w0, sxtw 1] + cbz w3, .L1828 + add x23, x23, :lo12:.LANCHOR0 + add x22, x22, :lo12:.LANCHOR2 +.L1829: + ldrh w1, [x23, 2564] + cmp w0, w1 + bge .L1837 + ldr x3, [x23, 2592] + sxtw x4, w0 + lsl x2, x4, 1 + sub w1, w0, w5 + sxtw x1, w1 + add w0, w0, 1 + sxth w0, w0 + ldrh w6, [x3, x2] + strh w6, [x3, x1, lsl 1] + ldr x3, [x22, 3736] + ldr w4, [x3, x4, lsl 2] + str w4, [x3, x1, lsl 2] + ldr x1, [x23, 2592] + strh wzr, [x1, x2] + b .L1829 +.L1828: + add w0, w0, 1 + sxth w0, w0 + b .L1827 .size FtlScanSysBlk, .-FtlScanSysBlk .align 2 .global FtlLoadSysInfo .type FtlLoadSysInfo, %function FtlLoadSysInfo: - sub sp, sp, #144 + sub sp, sp, #112 mov w1, 0 - stp x29, x30, [sp,16] + stp x29, x30, [sp, 16] add x29, sp, 16 - stp x23, x24, [sp,64] - stp x21, x22, [sp,48] - adrp x23, .LANCHOR4 - adrp x21, .LANCHOR2 - stp x19, x20, [sp,32] - add x24, x21, :lo12:.LANCHOR2 - add x19, x23, :lo12:.LANCHOR4 - add x19, x19, 1704 + stp x19, x20, [sp, 32] adrp x20, .LANCHOR0 - stp x25, x26, [sp,80] - stp x27, x28, [sp,96] - ldr x0, [x24,3616] - add x25, x24, 784 - str x0, [x19,8] - ldr x0, [x24,3664] - str x0, [x19,16] + stp x23, x24, [sp, 64] + adrp x23, .LANCHOR4 + stp x21, x22, [sp, 48] + add x19, x23, :lo12:.LANCHOR4 + adrp x21, .LANCHOR2 + add x24, x21, :lo12:.LANCHOR2 + add x19, x19, 1712 + stp x25, x26, [sp, 80] + stp x27, x28, [sp, 96] + ldr x0, [x24, 3608] + str x0, [x19, 8] + ldr x0, [x24, 3656] + str x0, [x19, 16] add x0, x20, :lo12:.LANCHOR0 - ldrh w2, [x0,2480] - ldr x0, [x24,520] + ldrh w2, [x0, 2480] + ldr x0, [x24, 520] lsl w2, w2, 1 bl ftl_memset - str x23, [x29,120] - ldrh w0, [x24,784] + ldrh w0, [x24, 784] mov w1, 65535 cmp w0, w1 - bne .L1873 -.L1884: - mov w19, -1 - b .L1874 -.L1873: + bne .L1853 +.L1864: + mov w0, -1 +.L1852: + ldp x19, x20, [sp, 32] + ldp x21, x22, [sp, 48] + ldp x23, x24, [sp, 64] + ldp x25, x26, [sp, 80] + ldp x27, x28, [sp, 96] + ldp x29, x30, [sp, 16] + add sp, sp, 112 + ret +.L1853: + add x25, x24, 784 mov w1, 1 - adrp x26, .LC108 - add x26, x26, :lo12:.LC108 bl FtlGetLastWrittenPage - ldrsh w23, [x24,784] + ldrsh w28, [x24, 784] + mov w26, 19539 sxth w22, w0 + movk w26, 0x4654, lsl 16 add w0, w0, 1 - strh w0, [x25,2] -.L1875: - tbnz w22, #31, .L1883 - orr w0, w22, w23, lsl 10 - mov w1, 1 - str w0, [x19,4] - mov w2, w1 - ldr x0, [x24,3616] + strh w0, [x25, 2] +.L1855: + tbnz w22, #31, .L1863 + orr w0, w22, w28, lsl 10 add x27, x20, :lo12:.LANCHOR0 - str x0, [x19,8] + str w0, [x19, 4] + mov w2, 1 + ldr x0, [x24, 3608] + mov w1, w2 + str x0, [x19, 8] mov x0, x19 bl FlashReadPages - ldrb w0, [x27,72] - cbz w0, .L1876 - ldr x25, [x19,16] - ldr w7, [x25,12] - cbz w7, .L1876 - ldr x2, [x19,8] - ldrh w1, [x27,2554] - mov x0, x2 - str x7, [x29,104] - str x2, [x29,112] + ldrb w0, [x27, 72] + cbz w0, .L1856 + ldr x8, [x19, 16] + ldr w7, [x8, 12] + cbz w7, .L1856 + ldr x6, [x19, 8] + ldrh w1, [x27, 2554] + mov x0, x6 bl js_hash - ldr x7, [x29,104] cmp w7, w0 - beq .L1876 - ldr x2, [x29,112] - cbnz w22, .L1877 - ldrh w0, [x24,788] - cmp w23, w0 - beq .L1877 - ldr w0, [x2] + beq .L1856 + cbnz w22, .L1857 + ldrh w0, [x25, 4] + cmp w28, w0 + beq .L1857 + ldr w0, [x6] + ldrh w1, [x25] str w0, [sp] - mov x0, x26 - ldrh w1, [x24,784] - ldr w2, [x19] - ldr w3, [x19,4] - ldr w4, [x25] - ldr w5, [x25,4] - ldr w6, [x25,8] + adrp x0, .LC108 + add x0, x0, :lo12:.LC108 + ldp w4, w5, [x8] + ldr w6, [x8, 8] + ldp w2, w3, [x19] bl printk - ldrsh w23, [x24,788] - ldrh w22, [x27,2546] - b .L1879 -.L1877: + ldrsh w28, [x25, 4] + ldrh w22, [x27, 2546] +.L1859: + sub w22, w22, #1 + sxth w22, w22 + b .L1855 +.L1857: mov w0, -1 str w0, [x19] -.L1876: +.L1856: ldr w0, [x19] cmn w0, #1 - beq .L1879 - ldr x0, [x24,3616] - ldr w1, [x0] - mov w0, 19539 - movk w0, 0x4654, lsl 16 - cmp w1, w0 - bne .L1879 - ldr x0, [x24,3664] + beq .L1859 + ldr x0, [x24, 3608] + ldr w0, [x0] + cmp w0, w26 + bne .L1859 + ldr x0, [x24, 3656] ldrh w1, [x0] mov w0, 61604 cmp w1, w0 - bne .L1879 -.L1883: - ldr x0, [x29,120] + bne .L1859 +.L1863: + add x19, x23, :lo12:.LANCHOR4 add x24, x21, :lo12:.LANCHOR2 + add x19, x19, 1712 add x22, x20, :lo12:.LANCHOR0 mov w2, 48 - add x19, x0, :lo12:.LANCHOR4 add x0, x24, 456 - add x19, x19, 1704 - ldr x1, [x19,8] + ldr x1, [x19, 8] bl ftl_memcpy - ldr x1, [x19,8] - ldrh w2, [x22,2480] - ldr x0, [x24,520] - add x1, x1, 48 + ldr x0, [x24, 520] + ldrh w2, [x22, 2480] + ldr x1, [x19, 8] lsl w2, w2, 1 + add x1, x1, 48 bl ftl_memcpy - ldrh w2, [x22,2480] - ldr x3, [x19,8] - ubfiz x1, x2, 1, 16 - ldr x0, [x20,#:lo12:.LANCHOR0] + ldrh w1, [x22, 2480] + ldr x0, [x19, 8] + lsr w2, w1, 3 + ubfiz x1, x1, 1, 16 add x1, x1, 51 - lsr w2, w2, 3 - and x1, x1, 262140 add w2, w2, 4 - add x1, x3, x1 + and x1, x1, -4 + add x1, x0, x1 + ldr x0, [x22, 64] bl ftl_memcpy - ldrh w0, [x22,2588] - cbz w0, .L1881 - ldrh w0, [x22,2480] - ldr x3, [x19,8] - lsr w1, w0, 3 - ldrh w2, [x22,2580] - add w1, w1, w0, lsl 1 - ldr x0, [x24,3768] + ldrh w0, [x22, 2588] + cbz w0, .L1861 + ldrh w1, [x22, 2480] + ldrh w2, [x22, 2580] + lsr w0, w1, 3 + add w1, w0, w1, lsl 1 + ldr x0, [x19, 8] add w1, w1, 52 lsl w2, w2, 2 and x1, x1, 65532 - add x1, x3, x1 + add x1, x0, x1 + ldr x0, [x24, 3760] bl ftl_memcpy - b .L1881 -.L1879: - sub w22, w22, #1 - sxth w22, w22 - b .L1875 -.L1881: +.L1861: add x0, x21, :lo12:.LANCHOR2 mov w1, 19539 movk w1, 0x4654, lsl 16 - ldr w2, [x0,456] + ldr w2, [x0, 456] cmp w2, w1 - bne .L1884 + bne .L1864 add x1, x20, :lo12:.LANCHOR0 - ldrb w3, [x0,466] - ldrh w5, [x0,464] - strh w5, [x0,790] - ldrh w2, [x1,2494] - cmp w3, w2 - bne .L1884 - ldrh w3, [x1,2544] - ldr x2, [x29,120] - strh wzr, [x0,802] - mul w3, w3, w5 - add x23, x2, :lo12:.LANCHOR4 - ldrh w2, [x1,2550] - str w3, [x1,2616] - strb wzr, [x0,806] - mul w3, w3, w2 - str w3, [x1,2584] - ldrh w2, [x1,2630] - ldr w3, [x1,2484] - ldrh w1, [x1,2472] - sub w2, w3, w2 - str w5, [x23,1760] + ldrh w4, [x0, 464] + ldrb w5, [x0, 466] + strh w4, [x0, 790] + ldrh w2, [x1, 2494] + cmp w5, w2 + bne .L1864 + ldrh w2, [x1, 2544] + add x23, x23, :lo12:.LANCHOR4 + ldrh w5, [x1, 2550] + add x3, x0, 512 + strh wzr, [x0, 802] + str w4, [x23, 1768] + mul w2, w2, w4 + strb wzr, [x0, 806] + str w2, [x1, 2616] + strb wzr, [x0, 808] + mul w2, w5, w2 + ldrh w5, [x1, 2630] + str w2, [x1, 2584] + ldr w2, [x1, 2484] + ldrh w1, [x1, 2472] sub w2, w2, w5 - ldrh w3, [x0,470] - strh w3, [x0,560] + sub w2, w2, w4 + ldrh w4, [x0, 470] + strh w4, [x0, 560] udiv w1, w2, w1 - ldrh w2, [x0,472] - strh w1, [x0,780] + ldrh w2, [x0, 472] lsr w5, w2, 6 and w2, w2, 63 - strb w2, [x0,566] - ldrb w2, [x0,467] - strb w2, [x0,568] + strb w2, [x0, 566] + ldrb w2, [x0, 467] + strb w2, [x0, 568] mov w2, -1 - strh w2, [x0,800] - ldrh w2, [x0,474] - strh w2, [x0,608] - ldrh w2, [x0,476] - strh w5, [x0,562] + strh w2, [x0, 800] + ldrh w2, [x0, 474] + strh w2, [x0, 608] + ldrh w2, [x0, 476] + strh w5, [x0, 562] + strh w1, [x0, 780] lsr w5, w2, 6 and w2, w2, 63 - strb w2, [x0,614] - ldrb w2, [x0,468] - strb w2, [x0,616] - ldrh w2, [x0,478] - strh w2, [x0,656] - ldrh w2, [x0,480] - strh w5, [x0,610] + strb w2, [x0, 614] + ldrb w2, [x0, 468] + strb w2, [x0, 616] + ldrh w2, [x0, 478] + strh w2, [x0, 656] + ldrh w2, [x0, 480] + strh w5, [x0, 610] lsr w5, w2, 6 and w2, w2, 63 - strb wzr, [x0,808] - strh w5, [x0,658] - strb w2, [x0,662] - ldrb w2, [x0,469] - ldr w1, [x0,488] - strb w2, [x0,664] - str w1, [x0,760] - ldr w2, [x0,752] - ldr w1, [x0,496] - str wzr, [x0,740] - str wzr, [x0,728] + strh w5, [x0, 658] + strb w2, [x0, 662] + ldrb w2, [x0, 469] + strb w2, [x0, 664] + str wzr, [x0, 720] + ldr w1, [x0, 488] + ldr w2, [x0, 752] + stp wzr, wzr, [x3, 216] + stp wzr, wzr, [x3, 224] + str w1, [x0, 760] + str wzr, [x0, 764] + ldr w1, [x0, 496] + str wzr, [x0, 772] cmp w1, w2 - str wzr, [x0,720] - str wzr, [x0,736] - str wzr, [x0,764] - str wzr, [x0,772] - str wzr, [x0,732] - bls .L1885 - str w1, [x0,752] -.L1885: + bls .L1865 + str w1, [x0, 752] +.L1865: add x0, x21, :lo12:.LANCHOR2 - ldr w1, [x0,492] - ldr w2, [x0,756] + ldr w1, [x0, 492] + ldr w2, [x0, 756] cmp w1, w2 - bls .L1886 - str w1, [x0,756] -.L1886: + bls .L1866 + str w1, [x0, 756] +.L1866: mov w0, 65535 - cmp w3, w0 - beq .L1887 + cmp w4, w0 + beq .L1867 add x0, x21, :lo12:.LANCHOR2 add x0, x0, 560 bl make_superblock -.L1887: +.L1867: add x1, x21, :lo12:.LANCHOR2 add x0, x1, 608 - ldrh w2, [x1,608] + ldrh w2, [x1, 608] mov w1, 65535 cmp w2, w1 - beq .L1888 + beq .L1868 bl make_superblock -.L1888: +.L1868: add x1, x21, :lo12:.LANCHOR2 add x0, x1, 656 - ldrh w2, [x1,656] + ldrh w2, [x1, 656] mov w1, 65535 cmp w2, w1 - beq .L1889 + beq .L1869 bl make_superblock -.L1889: +.L1869: add x21, x21, :lo12:.LANCHOR2 mov w1, 65535 add x0, x21, 800 - mov w19, 0 - ldrh w2, [x21,800] + ldrh w2, [x21, 800] cmp w2, w1 - beq .L1874 + beq .L1870 bl make_superblock -.L1874: - sub sp, x29, #16 - mov w0, w19 - ldp x19, x20, [sp,32] - ldp x21, x22, [sp,48] - ldp x23, x24, [sp,64] - ldp x25, x26, [sp,80] - ldp x27, x28, [sp,96] - ldp x29, x30, [sp,16] - add sp, sp, 144 - ret +.L1870: + mov w0, 0 + b .L1852 .size FtlLoadSysInfo, .-FtlLoadSysInfo .align 2 .global FtlDumpBlockInfo .type FtlDumpBlockInfo, %function FtlDumpBlockInfo: - sub sp, sp, #176 - lsr x0, x0, 10 - stp x29, x30, [sp,16] + sub sp, sp, #160 + lsr w0, w0, 10 + stp x29, x30, [sp, 16] add x29, sp, 16 - stp x21, x22, [sp,48] - stp x19, x20, [sp,32] - stp x23, x24, [sp,64] - stp x25, x26, [sp,80] - stp x27, x28, [sp,96] - uxtb w25, w1 + stp x19, x20, [sp, 32] + adrp x19, .LANCHOR2 + stp x23, x24, [sp, 64] + adrp x23, .LANCHOR0 + add x20, x23, :lo12:.LANCHOR0 + stp x21, x22, [sp, 48] + stp x25, x26, [sp, 80] + and w24, w1, 255 + stp x27, x28, [sp, 96] bl P2V_block_in_plane - adrp x2, .LANCHOR3 - adrp x22, .LANCHOR0 - uxth w23, w0 - add x1, x2, :lo12:.LANCHOR3 - add x19, x22, :lo12:.LANCHOR0 - adrp x0, .LC109 + adrp x1, .LANCHOR3 + add x1, x1, :lo12:.LANCHOR3 + and w22, w0, 65535 add x1, x1, 152 + ldrh w26, [x20, 2544] + adrp x0, .LC109 add x0, x0, :lo12:.LC109 - adrp x21, .LANCHOR2 - ldrh w24, [x19,2544] bl printk - add x0, x21, :lo12:.LANCHOR2 - ubfiz x2, x23, 1, 16 - mov w1, w23 - ldr x3, [x0,520] + add x1, x19, :lo12:.LANCHOR2 + ubfiz x0, x22, 1, 16 + add x25, x29, 144 + ldr x1, [x1, 520] + ldrh w2, [x1, x0] + mov w1, w22 adrp x0, .LC110 add x0, x0, :lo12:.LC110 - ldrh w2, [x3,x2] bl printk - strh w23, [x29,112] - add x0, x29, 112 - bl make_superblock - cbnz w25, .L1909 - ldrb w0, [x19,204] - cbz w0, .L1909 - mov w0, w23 - bl ftl_get_blk_mode - cmp w0, 1 - mov w23, w0 - bne .L1901 - ldrh w24, [x19,2546] - b .L1901 -.L1909: - mov w23, 0 -.L1901: - add x3, x22, :lo12:.LANCHOR0 - adrp x0, .LC111 - adrp x25, .LC112 - add x0, x0, :lo12:.LC111 - mov w1, w23 - mov w2, w24 - ldrh w3, [x3,2544] - mov w20, 0 - mov w27, 65535 - mov w28, 56 - mov w26, 4 - add x25, x25, :lo12:.LC112 - bl printk -.L1902: - add x0, x22, :lo12:.LANCHOR0 - ldrh w5, [x0,2472] - ldrh w6, [x0,2554] - ldrh w7, [x0,2556] - mov x0, 0 - mov w19, w0 -.L1903: - cmp w5, w0, uxth - bls .L1917 - add x1, x29, 112 - add x1, x1, x0, lsl 1 - ldrh w2, [x1,16] - cmp w2, w27 - beq .L1904 - add x3, x21, :lo12:.LANCHOR2 - orr w2, w20, w2, lsl 10 - umull x1, w19, w28 - ldr x4, [x3,3592] - add x4, x4, x1 - str w2, [x4,4] - ldr x2, [x3,3592] - ldr x4, [x3,1400] - add x1, x2, x1 - ldr x3, [x3,1408] - mul w2, w19, w6 - sdiv w2, w2, w26 - add x2, x4, w2, sxtw 2 - str x2, [x1,8] - mul w2, w19, w7 - add w19, w19, 1 - uxth w19, w19 - sdiv w2, w2, w26 - add x2, x3, w2, sxtw 2 - str x2, [x1,16] -.L1904: - add x0, x0, 1 - b .L1903 -.L1917: - add x0, x21, :lo12:.LANCHOR2 - mov w1, w19 - mov w2, w23 - ldr x0, [x0,3592] - bl FlashReadPages - mov x8, 0 - mov x9, 56 -.L1906: - cmp w19, w8, uxth - bls .L1918 - add x0, x21, :lo12:.LANCHOR2 - ldrh w1, [x29,112] - mul x2, x8, x9 - str x9, [x29,96] - ldr x4, [x0,3592] - str x8, [x29,104] - add x3, x4, x2 - ldr x0, [x3,8] - ldr x7, [x3,16] - ldr w5, [x0] - str w5, [sp] - ldr w0, [x0,4] - str w0, [sp,8] + strh w22, [x25, -48]! mov x0, x25 - ldr w2, [x4,x2] - ldr w5, [x7,4] - ldr w4, [x7] - ldr w6, [x7,8] - ldr w3, [x3,4] - ldr w7, [x7,12] + bl make_superblock + ldrb w0, [x20, 204] + cbz w0, .L1891 + cbnz w24, .L1891 + mov w0, w22 + bl ftl_get_blk_mode + mov w22, w0 + cmp w0, 1 + bne .L1882 + ldrh w26, [x20, 2546] +.L1882: + add x0, x23, :lo12:.LANCHOR0 + add x19, x19, :lo12:.LANCHOR2 + mov w21, 0 + mov w27, 56 + mov w2, w26 + mov w1, w22 + ldrh w3, [x0, 2544] + adrp x0, .LC111 + add x0, x0, :lo12:.LC111 bl printk - ldr x8, [x29,104] - ldr x9, [x29,96] - add x8, x8, 1 - b .L1906 -.L1918: - add w20, w20, 1 - uxth w20, w20 - cmp w20, w24 - bne .L1902 -.L1908: - sub sp, x29, #16 +.L1883: + add x0, x23, :lo12:.LANCHOR0 + add x5, x25, 16 + mov w20, 0 + mov w10, 65535 + mov w6, 4 + ldrh w7, [x0, 2472] + ldrh w8, [x0, 2554] + ldrh w9, [x0, 2556] mov w0, 0 - 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 +.L1884: + cmp w0, w7 + bne .L1886 + ldr x0, [x19, 3584] + mov w1, w20 + adrp x28, .LC112 + mov w2, w22 + umull x20, w20, w27 + mov x24, 0 + add x28, x28, :lo12:.LC112 + bl FlashReadPages +.L1887: + cmp x24, x20 + bne .L1888 + add w21, w21, 1 + and w21, w21, 65535 + cmp w26, w21 + bne .L1883 +.L1889: + ldp x19, x20, [sp, 32] + mov w0, 0 + 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, 160 ret +.L1891: + mov w22, 0 + b .L1882 +.L1886: + ldrh w1, [x5] + cmp w1, w10 + beq .L1885 + umull x4, w20, w27 + ldr x3, [x19, 3584] + orr w1, w21, w1, lsl 10 + add x3, x3, x4 + str w1, [x3, 4] + mul w1, w20, w8 + ldr x2, [x19, 3584] + ldr x3, [x19, 1392] + sdiv w1, w1, w6 + add x2, x2, x4 + add x1, x3, w1, sxtw 2 + str x1, [x2, 8] + mul w1, w20, w9 + ldr x3, [x19, 1400] + add w20, w20, 1 + and w20, w20, 65535 + sdiv w1, w1, w6 + add x1, x3, w1, sxtw 2 + str x1, [x2, 16] +.L1885: + add w0, w0, 1 + add x5, x5, 2 + and w0, w0, 65535 + b .L1884 +.L1888: + ldr x8, [x19, 3584] + ldrh w1, [x29, 96] + add x2, x8, x24 + ldp x3, x0, [x2, 8] + ldr w4, [x3, 4] + str w4, [sp, 8] + ldr w3, [x3] + str w3, [sp] + ldp w4, w5, [x0] + ldp w6, w7, [x0, 8] + mov x0, x28 + ldr w3, [x2, 4] + ldr w2, [x8, x24] + add x24, x24, 56 + bl printk + b .L1887 .size FtlDumpBlockInfo, .-FtlDumpBlockInfo .align 2 .global FtlScanAllBlock @@ -12352,615 +12144,582 @@ FtlDumpBlockInfo: FtlScanAllBlock: sub sp, sp, #144 adrp x1, .LANCHOR3 - adrp x0, .LC109 add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC109 + adrp x0, .LC109 add x1, x1, 176 - stp x29, x30, [sp,16] + add x0, x0, :lo12:.LC109 + stp x29, x30, [sp, 16] add x29, sp, 16 - stp x23, x24, [sp,64] - stp x21, x22, [sp,48] - adrp x23, .LC114 - adrp x22, .LC113 - adrp x24, .LC115 - add x22, x22, :lo12:.LC113 - stp x19, x20, [sp,32] - add x23, x23, :lo12:.LC114 + stp x21, x22, [sp, 48] + adrp x22, .LANCHOR0 + stp x23, x24, [sp, 64] + add x22, x22, :lo12:.LANCHOR0 + adrp x24, .LANCHOR2 + add x21, x24, :lo12:.LANCHOR2 + stp x19, x20, [sp, 32] mov w20, 0 - add x24, x24, :lo12:.LC115 - stp x25, x26, [sp,80] + stp x25, x26, [sp, 80] bl printk -.L1920: - adrp x19, .LANCHOR0 - add x19, x19, :lo12:.LANCHOR0 - ldrh w0, [x19,2482] +.L1895: + ldrh w0, [x22, 2482] cmp w0, w20 - bls .L1929 - mov w0, w20 - strh w20, [x29,80] - adrp x21, .LANCHOR2 - bl ftl_get_blk_mode - mov w3, w0 - add x0, x21, :lo12:.LANCHOR2 - ubfiz x2, x20, 1, 16 - mov w1, w20 - ldr x4, [x0,520] - mov x0, x22 - ldrh w2, [x4,x2] - bl printk - add x0, x29, 80 - bl make_superblock - mov x1, 0 - ldrh w6, [x19,2472] - ldrh w7, [x19,2554] - mov w9, 65535 - ldrh w8, [x19,2556] - mov w10, 56 - mov w19, w1 - mov w5, 4 -.L1921: - cmp w6, w1, uxth - bls .L1930 - add x0, x29, 80 - add x0, x0, x1, lsl 1 - ldrh w2, [x0,16] - cmp w2, w9 - beq .L1922 - add x3, x21, :lo12:.LANCHOR2 - lsl w2, w2, 10 - umull x0, w19, w10 - ldr x4, [x3,3592] - add x4, x4, x0 - str w2, [x4,4] - ldr x2, [x3,3592] - ldr x4, [x3,1400] - add x2, x2, x0 - ldr x3, [x3,1408] - mul w0, w19, w7 - sdiv w0, w0, w5 - add x0, x4, w0, sxtw 2 - str x0, [x2,8] - mul w0, w19, w8 - add w19, w19, 1 - uxth w19, w19 - sdiv w0, w0, w5 - add x0, x3, w0, sxtw 2 - str x0, [x2,16] -.L1922: - add x1, x1, 1 - b .L1921 -.L1930: - add x0, x21, :lo12:.LANCHOR2 - mov w1, w19 - mov w2, 0 - mov x25, 0 - mov x26, 56 - ldr x0, [x0,3592] - bl FlashReadPages -.L1924: - add x0, x21, :lo12:.LANCHOR2 - cmp w19, w25, uxth - bls .L1931 - ldr x4, [x0,3592] - mul x2, x25, x26 - ldrh w1, [x29,80] - add x25, x25, 1 - add x3, x4, x2 - ldr x0, [x3,8] - ldr x7, [x3,16] - ldr w5, [x0] - str w5, [sp] - ldr w0, [x0,4] - str w0, [sp,8] - mov x0, x23 - ldr w2, [x4,x2] - ldr w5, [x7,4] - ldr w4, [x7] - ldr w6, [x7,8] - ldr w3, [x3,4] - ldr w7, [x7,12] - bl printk - b .L1924 -.L1931: - ldr x0, [x0,3592] - mov w1, w19 - mov w2, 1 - mov x25, 0 - mov x26, 56 - bl FlashReadPages -.L1926: - cmp w19, w25, uxth - bls .L1932 - add x0, x21, :lo12:.LANCHOR2 - ldrh w1, [x29,80] - mul x2, x25, x26 - add x25, x25, 1 - ldr x4, [x0,3592] - add x3, x4, x2 - ldr x0, [x3,8] - ldr x7, [x3,16] - ldr w5, [x0] - str w5, [sp] - ldr w0, [x0,4] - str w0, [sp,8] - mov x0, x24 - ldr w2, [x4,x2] - ldr w5, [x7,4] - ldr w4, [x7] - ldr w6, [x7,8] - ldr w3, [x3,4] - ldr w7, [x7,12] - bl printk - b .L1926 -.L1932: - add w20, w20, 1 - uxth w20, w20 - b .L1920 -.L1929: - sub sp, x29, #16 + bhi .L1903 + ldp x19, x20, [sp, 32] mov w0, 0 - ldp x19, x20, [sp,32] - ldp x21, x22, [sp,48] - ldp x23, x24, [sp,64] - ldp x25, x26, [sp,80] - ldp x29, x30, [sp,16] + ldp x21, x22, [sp, 48] + ldp x23, x24, [sp, 64] + ldp x25, x26, [sp, 80] + ldp x29, x30, [sp, 16] add sp, sp, 144 ret +.L1903: + add x19, x29, 128 + mov w0, w20 + strh w20, [x19, -48]! + bl ftl_get_blk_mode + add x2, x24, :lo12:.LANCHOR2 + ubfiz x1, x20, 1, 16 + mov w3, w0 + adrp x0, .LC113 + add x0, x0, :lo12:.LC113 + ldr x2, [x2, 520] + ldrh w2, [x2, x1] + mov w1, w20 + bl printk + mov x0, x19 + bl make_superblock + ldrh w7, [x22, 2472] + add x0, x19, 16 + ldrh w8, [x22, 2554] + mov w19, 0 + ldrh w9, [x22, 2556] + mov w1, 0 + mov w10, 65535 + mov w11, 56 + mov w5, 4 +.L1896: + cmp w1, w7 + bne .L1898 + ldr x0, [x21, 3584] + mov w25, 56 + adrp x26, .LC114 + mov w2, 0 + mov w1, w19 + umull x25, w19, w25 + mov x23, 0 + add x26, x26, :lo12:.LC114 + bl FlashReadPages +.L1899: + cmp x23, x25 + bne .L1900 + ldr x0, [x21, 3584] + mov w1, w19 + adrp x25, .LC115 + mov w2, 1 + mov x19, 0 + add x25, x25, :lo12:.LC115 + bl FlashReadPages +.L1901: + cmp x23, x19 + bne .L1902 + add w20, w20, 1 + and w20, w20, 65535 + b .L1895 +.L1898: + ldrh w2, [x0] + cmp w2, w10 + beq .L1897 + umull x6, w19, w11 + ldr x4, [x21, 3584] + lsl w2, w2, 10 + add x4, x4, x6 + str w2, [x4, 4] + mul w2, w19, w8 + ldr x3, [x21, 3584] + ldr x4, [x21, 1392] + sdiv w2, w2, w5 + add x3, x3, x6 + add x2, x4, w2, sxtw 2 + str x2, [x3, 8] + mul w2, w19, w9 + ldr x4, [x21, 1400] + add w19, w19, 1 + and w19, w19, 65535 + sdiv w2, w2, w5 + add x2, x4, w2, sxtw 2 + str x2, [x3, 16] +.L1897: + add w1, w1, 1 + add x0, x0, 2 + and w1, w1, 65535 + b .L1896 +.L1900: + ldr x8, [x21, 3584] + ldrh w1, [x29, 80] + add x2, x8, x23 + ldp x3, x0, [x2, 8] + ldr w4, [x3, 4] + str w4, [sp, 8] + ldr w3, [x3] + str w3, [sp] + ldp w4, w5, [x0] + ldp w6, w7, [x0, 8] + mov x0, x26 + ldr w3, [x2, 4] + ldr w2, [x8, x23] + add x23, x23, 56 + bl printk + b .L1899 +.L1902: + ldr x8, [x21, 3584] + ldrh w1, [x29, 80] + add x2, x8, x19 + ldp x3, x0, [x2, 8] + ldr w4, [x3, 4] + str w4, [sp, 8] + ldr w3, [x3] + str w3, [sp] + ldp w4, w5, [x0] + ldp w6, w7, [x0, 8] + mov x0, x25 + ldr w3, [x2, 4] + ldr w2, [x8, x19] + add x19, x19, 56 + bl printk + b .L1901 .size FtlScanAllBlock, .-FtlScanAllBlock .align 2 .global ftl_scan_all_ppa .type ftl_scan_all_ppa, %function ftl_scan_all_ppa: sub sp, sp, #96 - stp x29, x30, [sp,16] + stp x29, x30, [sp, 16] add x29, sp, 16 - stp x19, x20, [sp,32] + stp x19, x20, [sp, 32] adrp x20, .LANCHOR0 + add x20, x20, :lo12:.LANCHOR0 + stp x25, x26, [sp, 80] adrp x19, .LANCHOR4 - add x0, x20, :lo12:.LANCHOR0 add x19, x19, :lo12:.LANCHOR4 - stp x23, x24, [sp,64] - stp x21, x22, [sp,48] - stp x25, x26, [sp,80] - adrp x23, .LC116 - add x19, x19, 1704 - ldrh w26, [x0,2542] - add x23, x23, :lo12:.LC116 + add x19, x19, 1712 + stp x21, x22, [sp, 48] + ldrh w26, [x20, 2542] + stp x23, x24, [sp, 64] sub w26, w26, #16 -.L1934: - add x21, x20, :lo12:.LANCHOR0 - ldrh w0, [x21,2542] + lsl w25, w26, 10 +.L1906: + ldrh w0, [x20, 2542] cmp w26, w0 - bge .L1949 - uxth w22, w26 - mov w0, w22 - bl ftl_get_blk_mode - ldrb w1, [x21,204] - cbz w1, .L1935 - ldrh w1, [x21,2480] - cmp w26, w1 - bge .L1936 - ldrh w1, [x21,2558] - cmp w26, w1 - blt .L1936 -.L1935: - cmp w0, 1 - bne .L1937 -.L1936: - add x0, x20, :lo12:.LANCHOR0 - mov w21, -2147483648 - ldrh w24, [x0,2546] - b .L1938 -.L1937: - add x0, x20, :lo12:.LANCHOR0 - mov w21, 0 - ldrh w24, [x0,2544] -.L1938: - mov x0, x23 - mov w1, w26 - mov w2, w24 - mov w3, w21 - bl printk - mov w0, w22 - bl FtlBbmIsBadBlock - cbz w0, .L1939 - adrp x0, .LC117 - mov w1, w26 - add x0, x0, :lo12:.LC117 - mov w2, w24 - mov w3, w21 - bl printk -.L1939: - adrp x25, .LC118 - mov w22, 0 - add w21, w21, w26, lsl 10 - add x25, x25, :lo12:.LC118 -.L1940: - cmp w22, w24 - beq .L1950 - adrp x3, .LANCHOR2 - add w0, w21, w22 - add x3, x3, :lo12:.LANCHOR2 - str w0, [x19,4] - mov w1, 1 - mov w2, 0 - str wzr, [x19] - add w22, w22, 1 - ldr x0, [x3,3616] - str x0, [x19,8] - ldr x0, [x3,3664] - str x0, [x19,16] - mov x0, x19 - bl FlashReadPages - ldr x7, [x19,8] - ldr x6, [x19,16] - ldr w0, [x7,4] - str w0, [sp] - mov x0, x25 - ldr w3, [x6] - ldr w4, [x6,4] - ldr w5, [x6,8] - ldr w1, [x19,4] - ldr w2, [x19] - ldr w6, [x6,12] - ldr w7, [x7] - bl printk - b .L1940 -.L1950: - add w26, w26, 1 - b .L1934 -.L1949: + blt .L1914 adrp x1, .LANCHOR3 - adrp x0, .LC119 add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC119 add x1, x1, 192 + adrp x0, .LC119 + add x0, x0, :lo12:.LC119 bl printk - sub sp, x29, #16 - ldp x19, x20, [sp,32] - ldp x21, x22, [sp,48] - ldp x23, x24, [sp,64] - ldp x25, x26, [sp,80] - ldp x29, x30, [sp,16] + ldp x19, x20, [sp, 32] + ldp x21, x22, [sp, 48] + ldp x23, x24, [sp, 64] + ldp x25, x26, [sp, 80] + ldp x29, x30, [sp, 16] add sp, sp, 96 ret +.L1914: + and w21, w26, 65535 + mov w0, w21 + bl ftl_get_blk_mode + ldrb w1, [x20, 204] + cbz w1, .L1907 + ldrh w1, [x20, 2480] + cmp w26, w1 + bge .L1908 + ldrh w1, [x20, 2558] + cmp w26, w1 + blt .L1908 +.L1907: + cmp w0, 1 + bne .L1909 +.L1908: + ldrh w23, [x20, 2546] + mov w24, -2147483648 +.L1910: + mov w3, w24 + mov w2, w23 + mov w1, w26 + adrp x0, .LC116 + add x0, x0, :lo12:.LC116 + bl printk + mov w0, w21 + bl FtlBbmIsBadBlock + cbz w0, .L1911 + adrp x0, .LC117 + mov w3, w24 + mov w2, w23 + mov w1, w26 + add x0, x0, :lo12:.LC117 + bl printk +.L1911: + adrp x22, .LANCHOR2 + add x22, x22, :lo12:.LANCHOR2 + mov w21, 0 +.L1912: + cmp w21, w23 + bne .L1913 + add w26, w26, 1 + add w25, w25, 1024 + b .L1906 +.L1909: + ldrh w23, [x20, 2544] + mov w24, 0 + b .L1910 +.L1913: + add w0, w24, w25 + mov w2, 0 + add w0, w0, w21 + stp wzr, w0, [x19] + ldr x0, [x22, 3608] + mov w1, 1 + str x0, [x19, 8] + add w21, w21, 1 + ldr x0, [x22, 3656] + str x0, [x19, 16] + mov x0, x19 + bl FlashReadPages + ldp x1, x0, [x19, 8] + ldr w2, [x1, 4] + str w2, [sp] + ldp w3, w4, [x0] + ldp w5, w6, [x0, 8] + adrp x0, .LC118 + ldr w7, [x1] + add x0, x0, :lo12:.LC118 + ldp w2, w1, [x19] + bl printk + b .L1912 .size ftl_scan_all_ppa, .-ftl_scan_all_ppa .align 2 .global FlashProgPages .type FlashProgPages, %function FlashProgPages: - stp x29, x30, [sp, -192]! - adrp x6, .LANCHOR1+481 + stp x29, x30, [sp, -176]! + adrp x4, .LANCHOR0 add x29, sp, 0 - stp x21, x22, [sp,32] - adrp x21, .LANCHOR0 - ldrb w6, [x6,#:lo12:.LANCHOR1+481] - add x4, x21, :lo12:.LANCHOR0 - str w3, [x29,120] - stp x19, x20, [sp,16] - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] - stp x27, x28, [sp,80] - str w6, [x29,124] + stp x21, x22, [sp, 32] + add x21, x4, :lo12:.LANCHOR0 + stp x19, x20, [sp, 16] + stp x23, x24, [sp, 48] + stp x25, x26, [sp, 64] + stp x27, x28, [sp, 80] + str x4, [x29, 96] + ldr x5, [x21, 88] + ldrb w6, [x21, 72] + str w3, [x29, 108] + ldrb w5, [x5, 19] + cbnz w6, .L1923 mov x19, x0 - ldr x5, [x4,88] + adrp x0, .LANCHOR1+481 mov w25, w1 - ldrb w4, [x4,72] mov w23, w2 + add x27, x21, 2164 + ldrb w28, [x0, #:lo12:.LANCHOR1+481] mov w22, 0 - ldrb w5, [x5,19] - cbz w4, .L1952 - bl FlashProgSlc2KPages - b .L1953 -.L1952: sub w0, w5, #1 - mov w27, 56 - mov x28, 24 - str w0, [x29,116] -.L2003: + str w0, [x29, 104] +.L1924: cmp w22, w25 - bcs .L2004 - umull x20, w22, w27 + bcc .L1937 + ldr x0, [x29, 96] + mov x20, 0 + mov x24, 24 + add x21, x0, :lo12:.LANCHOR0 + add x22, x21, 2164 +.L1938: + ldrb w0, [x21, 2358] + cmp w0, w20 + bhi .L1940 + ldr w0, [x29, 108] + cbnz w0, .L1941 +.L1949: + mov w0, 0 + b .L1922 +.L1923: + bl FlashProgSlc2KPages +.L1922: + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] + ldp x27, x28, [sp, 80] + ldp x29, x30, [sp], 176 + ret +.L1937: + mov w12, 56 mov w1, w23 - add x2, x29, 128 - add x26, x19, x20 sub w4, w25, w22 + add x3, x29, 116 + umull x12, w22, w12 + add x2, x29, 112 + add x26, x19, x12 mov x0, x26 - add x3, x29, 132 bl LogAddr2PhyAddr mov w24, w0 - add x1, x21, :lo12:.LANCHOR0 - ldr w0, [x29,132] - ldrb w2, [x1,2358] - cmp w0, w2 - bcc .L1954 + ldrb w1, [x21, 2358] + ldr w0, [x29, 116] + cmp w1, w0 + bhi .L1926 mov w0, -1 - str w0, [x19,x20] - b .L1955 -.L1954: - ldrb w2, [x1,2368] - add x1, x1, 2164 - cmp w2, wzr - uxtw x2, w0 + str w0, [x19, x12] +.L1927: + add w22, w22, 1 + b .L1924 +.L1926: + ldrb w1, [x21, 2368] + mov x2, 24 + cmp w1, 0 + uxtw x1, w0 csel w24, w24, wzr, ne - madd x1, x2, x28, x1 - ldr x1, [x1,8] - cbz x1, .L1957 + madd x1, x1, x2, x27 + ldr x1, [x1, 8] + cbz x1, .L1929 bl FlashWaitCmdDone -.L1957: - add x0, x21, :lo12:.LANCHOR0 - ldr w2, [x29,132] - add x0, x0, 2164 - ldr w1, [x29,128] - madd x0, x2, x28, x0 - str x26, [x0,8] - str xzr, [x0,16] - str w1, [x0,4] - cbz w24, .L1958 - add w1, w22, 1 - umull x1, w1, w27 - add x1, x19, x1 - str x1, [x0,16] -.L1958: - add x1, x21, :lo12:.LANCHOR0 - add x0, x1, x2 - madd x2, x2, x28, x1 - ldrb w20, [x0,2360] - ldrb w0, [x1,2358] - strb w20, [x2,2164] +.L1929: + ldp w2, w1, [x29, 112] + mov x0, 24 + madd x0, x1, x0, x27 + str w2, [x0, 4] + stp x26, xzr, [x0, 8] + cbz w24, .L1930 + add w2, w22, 1 + mov w3, 56 + umaddl x2, w2, w3, x19 + str x2, [x0, 16] +.L1930: + add x0, x21, x1 + ldrb w20, [x0, 2360] + mov x0, 24 + mul x1, x1, x0 + ldrb w0, [x21, 2358] cmp w0, 1 - bne .L1959 mov w0, w20 + strb w20, [x27, x1] + bne .L1931 bl NandcWaitFlashReady - b .L1960 -.L1959: - mov w0, w20 - str x1, [x29,104] - bl NandcFlashCs - ldr x1, [x29,104] - ldr w0, [x29,132] - add x1, x1, 1232 - ldr w0, [x1,x0,lsl 2] - ldr w1, [x29,128] - cmp w0, wzr - mov w0, w20 - cset w2, ne - bl FlashWaitReadyEN - mov w0, w20 - bl NandcFlashDeCs -.L1960: - ldr w0, [x29,116] +.L1932: + ldr w0, [x29, 104] cmp w0, 7 - bhi .L1961 - add x2, x21, :lo12:.LANCHOR0 - add x0, x2, w20, sxtw - ldrb w0, [x0,2128] - cbz w0, .L1961 - ldrb w1, [x2,1273] - mov w0, w20 - add x2, x2, 1276 + bhi .L1933 + add x0, x21, w20, sxtw + ldrb w0, [x0, 2128] + cbz w0, .L1933 + ldrb w1, [x21, 1273] mov w3, 0 + add x2, x21, 1276 + mov w0, w20 bl HynixSetRRPara -.L1961: +.L1933: mov w0, w20 bl NandcFlashCs cmp w23, 1 - bne .L1962 - add x0, x21, :lo12:.LANCHOR0 - ldrb w0, [x0,204] - cbz w0, .L1962 + bne .L1934 + ldrb w0, [x21, 204] + cbz w0, .L1934 mov w0, w20 bl flash_enter_slc_mode - b .L1963 -.L1962: - mov w0, w20 - bl flash_exit_slc_mode -.L1963: - ldr w1, [x29,128] +.L1935: + ldr w1, [x29, 112] mov w0, w20 bl FlashProgFirstCmd - ldrb w2, [x29,124] - mov w0, w20 - ldr x3, [x26,8] + ldp x3, x4, [x26, 8] + mov w2, w28 mov w1, 1 - ldr x4, [x26,16] - bl NandcXferData - cbz w24, .L1964 - ldr w1, [x29,128] mov w0, w20 - add x26, x21, :lo12:.LANCHOR0 + bl NandcXferData + cbz w24, .L1936 + ldr w1, [x29, 112] + mov w0, w20 bl FlashProgDpFirstCmd - ldr w1, [x29,132] - add x0, x26, 1232 - ldr w0, [x0,x1,lsl 2] - ldr w1, [x29,128] - cmp w0, wzr + ldr w1, [x29, 116] + add x0, x21, 1232 + ldr w0, [x0, x1, lsl 2] + ldr w1, [x29, 112] + cmp w0, 0 mov w0, w20 cset w2, ne bl FlashWaitReadyEN - ldr w2, [x26,76] + ldr w0, [x21, 76] + ldr w1, [x29, 112] + add w1, w1, w0 mov w0, w20 - ldr w1, [x29,128] - add w1, w2, w1 bl FlashProgDpSecondCmd - add w4, w22, 1 - ldrb w2, [x29,124] - mov w0, w20 + add w0, w22, 1 + mov w1, 56 + mov w2, w28 + umaddl x0, w0, w1, x19 mov w1, 1 - umull x4, w4, w27 - add x4, x19, x4 - ldr x3, [x4,8] - ldr x4, [x4,16] + ldp x3, x4, [x0, 8] + mov w0, w20 bl NandcXferData -.L1964: - ldr w1, [x29,128] +.L1936: + ldr w1, [x29, 112] mov w0, w20 add w22, w22, w24 bl FlashProgSecondCmd mov w0, w20 bl NandcFlashDeCs -.L1955: - add w22, w22, 1 - b .L2003 -.L2004: - add x21, x21, :lo12:.LANCHOR0 - mov x20, 0 - add x22, x21, 2164 - mov x24, 24 -.L1966: - ldrb w0, [x21,2358] - cmp w0, w20 - bls .L2005 + b .L1927 +.L1931: + bl NandcFlashCs + ldr w1, [x29, 116] + add x0, x21, 1232 + ldr w0, [x0, x1, lsl 2] + ldr w1, [x29, 112] + cmp w0, 0 + mov w0, w20 + cset w2, ne + bl FlashWaitReadyEN + mov w0, w20 + bl NandcFlashDeCs + b .L1932 +.L1934: + mov w0, w20 + bl flash_exit_slc_mode + b .L1935 +.L1940: mov w0, w20 bl FlashWaitCmdDone cmp w23, 1 - bne .L1967 - ldrb w0, [x21,204] - cbz w0, .L1967 + bne .L1939 + ldrb w0, [x21, 204] + cbz w0, .L1939 mul x0, x20, x24 - ldrb w0, [x0,x22] + ldrb w0, [x0, x22] bl flash_exit_slc_mode -.L1967: +.L1939: add x20, x20, 1 - b .L1966 -.L2005: - ldr w0, [x29,120] - cbnz w0, .L1969 -.L1977: - mov w0, 0 - b .L1953 -.L1969: - adrp x24, .LC107 - adrp x26, .LC106 - adrp x27, .LC104 - mov w21, 0 - add x24, x24, :lo12:.LC107 - add x26, x26, :lo12:.LC106 - add x27, x27, :lo12:.LC104 -.L1970: - cmp w21, w25 - beq .L1977 + b .L1938 +.L1941: + mov w0, 56 + and w20, w25, 255 + adrp x22, .LANCHOR4 + add x24, x22, :lo12:.LANCHOR4 + umaddl x25, w25, w0, x19 +.L1942: + cmp x25, x19 + beq .L1949 ldr w0, [x19] cmn w0, #1 - bne .L1971 + bne .L1943 + ldr w1, [x19, 4] adrp x0, .LC103 - ldr w1, [x19,4] add x0, x0, :lo12:.LC103 bl printk - b .L1972 -.L1971: - adrp x20, .LANCHOR4 - sub w4, w25, w21 - add x22, x20, :lo12:.LANCHOR4 - add x3, x29, 132 +.L1944: + sub w20, w20, #1 + add x19, x19, 56 + and w20, w20, 255 + b .L1942 +.L1943: + add x21, x22, :lo12:.LANCHOR4 + mov w4, w20 + add x3, x29, 116 + add x2, x29, 112 mov w1, w23 - add x2, x29, 128 mov x0, x19 bl LogAddr2PhyAddr - ldr x0, [x22,1664] - mov x1, x19 + ldr x0, [x21, 1672] mov x2, 56 + mov x1, x19 str wzr, [x0] - ldr x0, [x22,1672] + ldr x0, [x21, 1680] str wzr, [x0] - add x0, x29, 136 + add x0, x29, 120 bl memcpy - ldr x0, [x22,1664] - mov w1, 1 - str x0, [x29,144] + ldr x0, [x21, 1672] mov w2, w23 - ldr x0, [x22,1672] - str x0, [x29,152] - add x0, x29, 136 + str x0, [x29, 128] + mov w1, 1 + ldr x0, [x21, 1680] + str x0, [x29, 136] + add x0, x29, 120 bl FlashReadPages - ldr w22, [x29,136] - cmn w22, #1 - bne .L1973 - ldr w1, [x19,4] - mov x0, x27 + ldr w21, [x29, 120] + cmn w21, #1 + bne .L1945 + ldr w1, [x19, 4] + adrp x0, .LC104 + add x0, x0, :lo12:.LC104 bl printk - str w22, [x19] -.L1973: - ldr x0, [x19,16] - cbz x0, .L1974 + str w21, [x19] +.L1945: + ldr x0, [x19, 16] + cbz x0, .L1946 ldr w2, [x0] - add x0, x20, :lo12:.LANCHOR4 - ldr x0, [x0,1672] + ldr x0, [x24, 1680] ldr w3, [x0] cmp w2, w3 - beq .L1974 - ldr w1, [x19,4] - mov x0, x26 + beq .L1946 + ldr w1, [x19, 4] + adrp x0, .LC106 + add x0, x0, :lo12:.LC106 bl printk mov w0, -1 str w0, [x19] -.L1974: - ldr x0, [x19,8] - cbz x0, .L1972 - add x20, x20, :lo12:.LANCHOR4 +.L1946: + ldr x0, [x19, 8] + cbz x0, .L1944 ldr w2, [x0] - ldr x0, [x20,1664] + ldr x0, [x24, 1672] ldr w3, [x0] cmp w2, w3 - beq .L1972 - ldr w1, [x19,4] - mov x0, x24 + beq .L1944 + ldr w1, [x19, 4] + adrp x0, .LC107 + add x0, x0, :lo12:.LC107 bl printk mov w0, -1 str w0, [x19] -.L1972: - add w21, w21, 1 - add x19, x19, 56 - b .L1970 -.L1953: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 192 - ret + b .L1944 .size FlashProgPages, .-FlashProgPages .align 2 .type FlashTestBlk.part.18, %function FlashTestBlk.part.18: stp x29, x30, [sp, -160]! - mov w1, 165 mov w2, 32 + mov w1, 165 add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] adrp x19, .LANCHOR4 - uxth w20, w0 add x19, x19, :lo12:.LANCHOR4 + and w20, w0, 65535 lsl w20, w20, 10 - ldr x0, [x19,1648] - str x0, [x29,48] + ldr x0, [x19, 1656] + str x0, [x29, 48] add x0, x29, 96 - str x0, [x29,56] + str x0, [x29, 56] bl ftl_memset - ldr x0, [x19,1648] - mov w1, 90 + ldr x0, [x19, 1656] mov w2, 8 + mov w1, 90 bl ftl_memset - str w20, [x29,44] - mov w1, 1 - add x0, x29, 40 - mov w2, w1 - bl FlashEraseBlocks - mov w1, 1 - add x0, x29, 40 - mov w3, w1 - mov w2, w1 - bl FlashProgPages - ldr w0, [x29,40] - mov w1, 0 + str w20, [x29, 44] mov w2, 1 - cmp w0, wzr + add x0, x29, 40 + mov w1, w2 + bl FlashEraseBlocks + mov w3, 1 + add x0, x29, 40 + mov w2, w3 + mov w1, w3 + bl FlashProgPages + ldr w0, [x29, 40] + mov w2, 1 + mov w1, 0 + cmp w0, 0 add x0, x29, 40 csetm w19, ne bl FlashEraseBlocks mov w0, w19 - ldp x19, x20, [sp,16] + ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 160 ret .size FlashTestBlk.part.18, .-FlashTestBlk.part.18 @@ -12968,626 +12727,596 @@ FlashTestBlk.part.18: .global FlashTestBlk .type FlashTestBlk, %function FlashTestBlk: - uxth w1, w0 - adrp x0, .LANCHOR4+1636 + adrp x1, .LANCHOR4+1644 + and w0, w0, 65535 + ldr w1, [x1, #:lo12:.LANCHOR4+1644] + cmp w0, w1 + bcc .L1979 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr w2, [x0,#:lo12:.LANCHOR4+1636] - mov w0, 0 - cmp w1, w2 - bcc .L2008 - mov w0, w1 bl FlashTestBlk.part.18 -.L2008: ldp x29, x30, [sp], 16 ret +.L1979: + mov w0, 0 + ret .size FlashTestBlk, .-FlashTestBlk .align 2 .global FlashMakeFactorBbt .type FlashMakeFactorBbt, %function FlashMakeFactorBbt: - stp x29, x30, [sp, -224]! + stp x29, x30, [sp, -240]! + adrp x1, .LANCHOR0 add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x20, .LANCHOR4 + stp x21, x22, [sp, 32] + adrp x21, .LANCHOR4 + add x0, x21, :lo12:.LANCHOR4 + stp x19, x20, [sp, 16] + stp x23, x24, [sp, 48] mov w19, 0 - add x0, x20, :lo12:.LANCHOR4 - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] - stp x27, x28, [sp,80] - adrp x21, .LANCHOR0 - ldr x0, [x0,1656] - str x0, [x29,136] - add x0, x21, :lo12:.LANCHOR0 - ldrh w1, [x0,188] - ldrh w23, [x0,190] - ldrh w26, [x0,76] - mul w23, w1, w23 - ldr x1, [x0,88] - ldrb w0, [x0,72] - uxth w23, w23 - ldrb w1, [x1,24] + stp x25, x26, [sp, 64] + stp x27, x28, [sp, 80] + ldr x0, [x0, 1664] + stp x0, x1, [x29, 152] + add x0, x1, :lo12:.LANCHOR0 + ldrh w2, [x0, 188] + ldrh w22, [x0, 190] + mul w22, w22, w2 + ldr x2, [x0, 88] + and w22, w22, 65535 + ldrb w2, [x2, 24] + str w2, [x29, 128] + ldrh w2, [x0, 76] + ldrb w0, [x0, 72] + uxtw x1, w2 cmp w0, 1 - str w1, [x29,132] - adrp x0, .LC120 - ubfiz w1, w26, 1, 15 - add x0, x0, :lo12:.LC120 - csel w26, w1, w26, eq + ubfiz w2, w2, 1, 15 + csel w0, w2, w1, eq mov w1, 1 + str w0, [x29, 168] + adrp x0, .LC120 + add x0, x0, :lo12:.LC120 bl printk - add x0, x20, :lo12:.LANCHOR4 - mov w1, 0 + add x0, x21, :lo12:.LANCHOR4 mov w2, 4096 - ldr x0, [x0,1656] + mov w1, 0 + ldr x0, [x0, 1664] bl ftl_memset - lsr w0, w23, 4 - 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] -.L2012: - add x24, x21, :lo12:.LANCHOR0 - ldrb w0, [x24,2358] + lsr w0, w22, 4 + str w0, [x29, 148] + sub w0, w22, #1 + and w0, w0, 65535 + str w0, [x29, 144] + adrp x0, .LC123 + add x0, x0, :lo12:.LC123 + str x0, [x29, 104] +.L1986: + ldr x0, [x29, 160] + add x20, x0, :lo12:.LANCHOR0 + ldrb w0, [x20, 2358] cmp w0, w19 - bls .L2062 - add x0, x20, :lo12:.LANCHOR4 - sxtw x25, w19 - add x1, x0, 1688 - ldrh w22, [x1,w19,sxtw 1] - cbnz w22, .L2042 - ldrh w2, [x24,196] - mov w1, w22 - ldr x0, [x0,1600] - add x24, x24, x25 + bhi .L2013 + 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 +.L2013: + add x0, x21, :lo12:.LANCHOR4 + sxtw x24, w19 + add x1, x0, 1696 + ldrh w1, [x1, x24, lsl 1] + str w1, [x29, 172] + cbnz w1, .L1987 + ldr x0, [x0, 1608] + add x28, x20, 1232 + ldrh w2, [x20, 196] + mov w23, 0 + mov w25, 0 + mov w26, 0 lsl w2, w2, 9 - mov w27, w22 bl ftl_memset - ldrb w28, [x24,2360] - ldr w0, [x29,132] - mov w24, w22 - and w0, w0, 4 - uxtb w0, w0 - str w0, [x29,120] -.L2014: - uxth w0, w27 - str w0, [x29,144] - cmp w0, w23 - bcs .L2024 - mov w0, -1 - strb w0, [x29,166] - strb w0, [x29,167] - ldr w0, [x29,116] - cbz w0, .L2016 - add x4, x21, :lo12:.LANCHOR0 - add x2, x29, 166 - add x0, x4, 1232 - 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 - ldr x4, [x29,96] - ldr x3, [x29,104] - ldrb w0, [x4,72] - cmp w0, 1 - bne .L2016 - ldr w1, [x4,76] - mov w0, w28 - add x2, x29, 167 - add w1, w3, w1 - bl FlashReadSpare - ldrb w0, [x29,166] - ldrb w1, [x29,167] - and w0, w1, w0 - strb w0, [x29,166] -.L2016: - ldr w0, [x29,112] - cbz w0, .L2018 - add x0, x21, :lo12:.LANCHOR0 - add x2, x29, 167 - ldr x1, [x0,88] - add x0, x0, 1232 - ldrh w1, [x1,10] - ldr w0, [x0,x25,lsl 2] - sub w1, w1, #1 - add w1, w1, w0 - mov w0, w28 - add w1, w1, w22 - bl FlashReadSpare -.L2018: - add x0, x21, :lo12:.LANCHOR0 - ldrb w1, [x29,166] - ldr x0, [x0,88] - ldrb w2, [x0,7] - cmp w2, 8 - beq .L2019 - cmp w2, 1 - beq .L2019 - ldrb w0, [x0,18] - cmp w0, 12 - bne .L2020 -.L2019: - mov w0, 1 - cbz w1, .L2021 - ldrb w0, [x29,167] - cmp w0, wzr - cset w0, eq - b .L2021 -.L2020: - cmp w1, 255 - mov w0, 1 - bne .L2021 - ldrb w0, [x29,167] - cmp w0, 255 - cset w0, ne -.L2021: - ldr w1, [x29,120] - cbz w1, .L2022 - add x0, x21, :lo12:.LANCHOR0 - add x0, x0, 1232 - ldr w1, [x0,x25,lsl 2] - mov w0, w28 - add w1, w22, w1 - bl SandiskProgTestBadBlock -.L2022: - cbz w0, .L2023 - adrp x0, .LC121 + add x0, x20, x24 + ldrb w27, [x0, 2360] + ldr w0, [x29, 128] + and w0, w0, 1 + str w0, [x29, 100] +.L1988: + and w0, w26, 65535 + str w0, [x29, 112] + cmp w0, w22 + bcc .L1999 +.L1998: + mov w2, w23 mov w1, w19 - mov w2, w27 - add x0, x0, :lo12:.LC121 - add w24, w24, 1 - bl printk - add x0, x20, :lo12:.LANCHOR4 - ldr x1, [x29,144] - ldrb w3, [x29,144] - uxth w24, w24 - ubfx x1, x1, 5, 11 - lsl x1, x1, 2 - ldr x2, [x0,1600] - mov w0, 1 - lsl w0, w0, w3 - ldr w3, [x2,x1] - orr w0, w3, w0 - str w0, [x2,x1] - add x0, x21, :lo12:.LANCHOR0 - ldr w1, [x29,128] - ldrb w0, [x0,2358] - mul w0, w1, w0 - cmp w24, w0 - bgt .L2024 -.L2023: - add w27, w27, 1 - add w22, w22, w26 - b .L2014 -.L2024: adrp x0, .LC122 - mov w1, w19 - mov w2, w24 add x0, x0, :lo12:.LC122 bl printk - add x1, x21, :lo12:.LANCHOR0 - ldr w2, [x29,128] - ldrb w0, [x1,2358] - mul w0, w2, w0 - cmp w24, w0 - blt .L2026 - add x0, x20, :lo12:.LANCHOR4 - ldrh w2, [x1,196] + ldr x0, [x29, 160] + ldr w2, [x29, 148] + add x1, x0, :lo12:.LANCHOR0 + ldrb w0, [x1, 2358] + mul w0, w0, w2 + cmp w23, w0 + blt .L2000 + add x0, x21, :lo12:.LANCHOR4 + ldrh w2, [x1, 196] mov w1, 0 + ldr x0, [x0, 1608] lsl w2, w2, 9 - ldr x0, [x0,1600] bl ftl_memset -.L2026: - cbnz w19, .L2028 - add x0, x20, :lo12:.LANCHOR4 - adrp x27, .LC123 - mov w22, w19 - add x27, x27, :lo12:.LC123 - mov w24, 1 - ldrh w28, [x0,1636] -.L2029: - add x0, x21, :lo12:.LANCHOR0 - ldrb w0, [x0,73] - cmp w0, w28 - bls .L2063 - mov w0, w28 - bl FlashTestBlk - cbz w0, .L2030 - mov w1, w28 - mov x0, x27 - add w22, w22, 1 - bl printk - add x0, x20, :lo12:.LANCHOR4 - ubfx x1, x28, 5, 11 - lsl x1, x1, 2 - uxth w22, w22 - ldr x2, [x0,1600] - lsl w0, w24, w28 - ldr w3, [x2,x1] - orr w0, w3, w0 - str w0, [x2,x1] -.L2030: - add w28, w28, 1 - uxth w28, w28 - b .L2029 -.L2063: - adrp x27, .LC123 - ldr w24, [x29,124] - sub w28, w23, #50 - add x27, x27, :lo12:.LC123 -.L2032: - cmp w24, w28 - ble .L2064 - mov w0, w24 - bl FlashTestBlk - cbz w0, .L2033 - mov w1, w24 - mov x0, x27 - bl printk - add x0, x20, :lo12:.LANCHOR4 - ubfx x1, x24, 5, 11 - lsl x1, x1, 2 - ldr x3, [x0,1600] - mov w0, 1 - lsl w0, w0, w24 - ldr w4, [x3,x1] - orr w0, w4, w0 - str w0, [x3,x1] -.L2033: - sub w2, w24, #1 - uxth w24, w2 - b .L2032 -.L2064: - add x2, x21, :lo12:.LANCHOR0 - add x1, x20, :lo12:.LANCHOR4 - ldrb w0, [x2,73] - ldr w3, [x1,1636] - sub w0, w0, w3 - cmp w22, w0 - bcc .L2028 - ldrh w2, [x2,196] - ldr x0, [x1,1600] +.L2000: + cbnz w19, .L2002 + add x20, x21, :lo12:.LANCHOR4 + ldr x0, [x29, 160] + mov w23, 1 + add x25, x0, :lo12:.LANCHOR0 + ldrh w26, [x20, 1644] +.L2003: + ldrb w0, [x25, 73] + cmp w0, w26 + bhi .L2005 + ldr w26, [x29, 144] + sub w25, w22, #50 + add x20, x21, :lo12:.LANCHOR4 + mov w23, 1 +.L2006: + cmp w26, w25 + bgt .L2008 + ldr x0, [x29, 160] + add x3, x21, :lo12:.LANCHOR4 + add x1, x0, :lo12:.LANCHOR0 + ldr w2, [x3, 1644] + ldrb w0, [x1, 73] + sub w0, w0, w2 + ldr w2, [x29, 172] + cmp w2, w0 + bcc .L2002 + ldr x0, [x3, 1608] + ldrh w2, [x1, 196] mov w1, 0 lsl w2, w2, 9 bl ftl_memset -.L2028: - adrp x24, .LC124 - ldr w28, [x29,124] - mul w27, w19, w23 - add x24, x24, :lo12:.LC124 - mov w22, -3872 -.L2036: - mov w2, w28 - mov x0, x24 +.L2002: + add x27, x21, :lo12:.LANCHOR4 + mul w25, w19, w22 + ldr w26, [x29, 144] + adrp x23, .LC124 + add x20, x27, 1696 + add x23, x23, :lo12:.LC124 +.L2010: mov w1, w19 + mov w2, w26 + mov x0, x23 bl printk - add x0, x20, :lo12:.LANCHOR4 - ldr x2, [x0,1600] -.L2037: - ubfx x0, x28, 5, 11 - ldr w0, [x2,x0,lsl 2] - lsr w0, w0, w28 - and w1, w0, 1 - tbz x0, 0, .L2065 - sub w28, w28, #1 - uxth w28, w28 - b .L2037 -.L2065: - add x0, x20, :lo12:.LANCHOR4 - add x2, x0, 1688 - strh w28, [x2,x25,lsl 1] - ldr x2, [x29,136] - strh w22, [x2] - strh w28, [x2,2] - strh w1, [x2,8] - ldr x1, [x0,1600] - ldr x0, [x0,1656] - str x0, [x29,184] - add w0, w28, w27 - str x1, [x29,176] + ldr x1, [x27, 1608] +.L2011: + ubfx x0, x26, 5, 11 + ldr w0, [x1, x0, lsl 2] + lsr w0, w0, w26 + tbnz x0, 0, .L2012 + ldr x1, [x29, 152] + mov w0, -3872 + strh w26, [x20, x24, lsl 1] + mov w2, 1 + strh w0, [x1] + strh w26, [x1, 2] + strh wzr, [x1, 8] + mov w1, w2 + ldr x0, [x27, 1608] + str x0, [x29, 192] + ldr x0, [x27, 1664] + str x0, [x29, 200] + add w0, w26, w25 lsl w0, w0, 10 - mov w1, 1 - str w0, [x29,172] - mov w2, w1 - add x0, x29, 168 + str w0, [x29, 188] + add x0, x29, 184 bl FlashEraseBlocks - mov w1, 1 - add x0, x29, 168 - mov w2, w1 - mov w3, w1 + mov w3, 1 + add x0, x29, 184 + mov w2, w3 + mov w1, w3 bl FlashProgPages - ldr w0, [x29,168] - cbz w0, .L2042 - sub w28, w28, #1 - uxth w28, w28 - b .L2036 -.L2042: + ldr w0, [x29, 184] + cbz w0, .L1987 + sub w26, w26, #1 + and w26, w26, 65535 + b .L2010 +.L1999: + mov w0, -1 + strb w0, [x29, 182] + strb w0, [x29, 183] + ldr w0, [x29, 100] + cbz w0, .L1990 + ldr w3, [x28, x24, lsl 2] + mov w0, w27 + add x2, x29, 182 + add w3, w25, w3 + str w3, [x29, 96] + mov w1, w3 + bl FlashReadSpare + ldrb w0, [x20, 72] + ldr w3, [x29, 96] + cmp w0, 1 + bne .L1990 + ldr w1, [x20, 76] + mov w0, w27 + add x2, x29, 183 + add w1, w3, w1 + bl FlashReadSpare + ldrb w0, [x29, 182] + ldrb w1, [x29, 183] + and w0, w0, w1 + strb w0, [x29, 182] +.L1990: + ldr x0, [x29, 128] + tbz x0, 1, .L1992 + ldr x0, [x20, 88] + add x2, x29, 183 + ldrh w1, [x0, 10] + ldr w0, [x28, x24, lsl 2] + sub w1, w1, #1 + add w0, w25, w0 + add w1, w1, w0 + mov w0, w27 + bl FlashReadSpare +.L1992: + ldr x1, [x20, 88] + ldrb w0, [x1, 7] + cmp w0, 1 + ccmp w0, 8, 4, ne + ldrb w0, [x29, 182] + beq .L1993 + ldrb w1, [x1, 18] + cmp w1, 12 + bne .L1994 +.L1993: + cbz w0, .L2015 + ldrb w0, [x29, 183] + cmp w0, 0 + cset w0, eq +.L1995: + ldr x1, [x29, 128] + tbz x1, 2, .L1996 + ldr w1, [x28, x24, lsl 2] + mov w0, w27 + add w1, w25, w1 + bl SandiskProgTestBadBlock +.L1996: + cbz w0, .L1997 + mov w2, w26 + mov w1, w19 + adrp x0, .LC121 + add x0, x0, :lo12:.LC121 + bl printk + add w23, w23, 1 + add x1, x21, :lo12:.LANCHOR4 + ldr x0, [x29, 112] + ldrb w2, [x29, 112] + and w23, w23, 65535 + ldr x3, [x1, 1608] + ubfx x0, x0, 5, 11 + lsl x0, x0, 2 + mov w1, 1 + lsl w2, w1, w2 + ldr w1, [x3, x0] + orr w1, w1, w2 + str w1, [x3, x0] + ldr w1, [x29, 148] + ldrb w0, [x20, 2358] + mul w0, w0, w1 + cmp w23, w0 + bgt .L1998 +.L1997: + ldr w0, [x29, 168] + add w26, w26, 1 + add w25, w25, w0 + b .L1988 +.L1994: + cmp w0, 255 + bne .L2015 + ldrb w0, [x29, 183] + cmp w0, 255 + cset w0, ne + b .L1995 +.L2015: + mov w0, 1 + b .L1995 +.L2005: + mov w0, w26 + bl FlashTestBlk + cbz w0, .L2004 + ldr x0, [x29, 104] + mov w1, w26 + bl printk + ldr x3, [x20, 1608] + ubfx x0, x26, 5, 11 + lsl x0, x0, 2 + lsl w1, w23, w26 + ldr w2, [x3, x0] + orr w1, w2, w1 + str w1, [x3, x0] + ldr w0, [x29, 172] + add w0, w0, 1 + and w0, w0, 65535 + str w0, [x29, 172] +.L2004: + add w26, w26, 1 + and w26, w26, 65535 + b .L2003 +.L2008: + mov w0, w26 + bl FlashTestBlk + cbz w0, .L2007 + ldr x0, [x29, 104] + mov w1, w26 + bl printk + ldr x3, [x20, 1608] + ubfx x0, x26, 5, 11 + lsl x0, x0, 2 + lsl w1, w23, w26 + ldr w2, [x3, x0] + orr w1, w2, w1 + str w1, [x3, x0] +.L2007: + sub w26, w26, #1 + and w26, w26, 65535 + b .L2006 +.L2012: + sub w26, w26, #1 + and w26, w26, 65535 + b .L2011 +.L1987: add w19, w19, 1 - uxtb w19, w19 - b .L2012 -.L2062: - 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 - ret + and w19, w19, 255 + b .L1986 .size FlashMakeFactorBbt, .-FlashMakeFactorBbt .align 2 .global FtlLowFormatEraseBlock .type FtlLowFormatEraseBlock, %function FtlLowFormatEraseBlock: - stp x29, x30, [sp, -128]! + stp x29, x30, [sp, -144]! add x29, sp, 0 - stp x19, x20, [sp,16] - stp x21, x22, [sp,32] - adrp x20, .LANCHOR2 - adrp x22, .LANCHOR0 - stp x25, x26, [sp,64] - stp x23, x24, [sp,48] - uxtb w25, w1 - add x24, x22, :lo12:.LANCHOR0 - add x1, x20, :lo12:.LANCHOR2 - uxth w26, w0 - stp x27, x28, [sp,80] - ldrb w0, [x24,2368] - ldr w2, [x1,424] - str w0, [x29,120] - mov w0, 0 - cbnz w2, .L2067 - ldrb w0, [x24,204] - mov w28, w2 - str w0, [x29,124] - mov w21, w2 - str w26, [x1,3580] - mov w19, w2 - mov w27, 56 -.L2068: - ldrh w0, [x24,2472] - cmp w0, w28 - bls .L2112 - add x1, x20, :lo12:.LANCHOR2 - umull x0, w28, w27 - ldr x1, [x1,432] - str wzr, [x1,x0] - add x0, x24, 2504 - mov w1, w26 - ldrb w0, [x0,w28,sxtw] - bl V2P_block - uxth w23, w0 - mov w1, w23 - cbz w25, .L2069 - str x1, [x29,112] - bl IsBlkInVendorPart - ldr x1, [x29,112] - cbnz w0, .L2070 -.L2069: - mov w0, w1 - bl FtlBbmIsBadBlock - cbnz w0, .L2071 - add x3, x20, :lo12:.LANCHOR2 - lsl w23, w23, 10 - umull x0, w21, w27 - mov w2, 4 - ldr x1, [x3,432] - add x1, x1, x0 - str w23, [x1,4] - ldr x1, [x3,432] - ldr x3, [x3,3672] - add x1, x1, x0 - ldrh w0, [x24,2556] - mul w0, w21, w0 - add w21, w21, 1 - str xzr, [x1,8] - sdiv w0, w0, w2 - uxth w21, w21 - add x0, x3, w0, sxtw 2 - str x0, [x1,16] - b .L2070 -.L2071: - add w19, w19, 1 - uxth w19, w19 -.L2070: - add w2, w28, 1 - uxth w28, w2 - b .L2068 -.L2112: - cbz w21, .L2091 - ldr w0, [x29,124] - mov w2, w21 - strb wzr, [x24,2368] - mov x27, 56 - cmp w0, wzr - add x0, x20, :lo12:.LANCHOR2 + stp x21, x22, [sp, 32] + adrp x22, .LANCHOR2 + add x5, x22, :lo12:.LANCHOR2 + stp x25, x26, [sp, 64] + stp x19, x20, [sp, 16] + and w26, w0, 65535 + stp x23, x24, [sp, 48] + stp x27, x28, [sp, 80] + ldr w0, [x5, 424] + cbnz w0, .L2058 + adrp x20, .LANCHOR0 + add x24, x20, :lo12:.LANCHOR0 + and w25, w1, 255 + add x9, x24, 2504 + mov w6, 0 + mov w21, 0 + ldrb w8, [x24, 204] + mov w19, 0 + ldrb w0, [x24, 2368] + mov w7, 56 + mov w10, 4 + str w26, [x5, 3572] + str w0, [x29, 132] +.L2037: + ldrh w0, [x24, 2472] + cmp w0, w6 + bhi .L2041 + cbz w21, .L2035 + add x27, x22, :lo12:.LANCHOR2 + cmp w8, 0 cset w23, ne + strb wzr, [x24, 2368] + mov w2, w21 mov w1, w23 - ldr x0, [x0,432] + ldr x0, [x27, 432] bl FlashEraseBlocks - ldrb w0, [x29,120] - strb w0, [x24,2368] + ldrb w0, [x29, 132] + strb w0, [x24, 2368] mov x24, 0 -.L2074: - cmp w21, w24, uxth - bls .L2113 - add x1, x20, :lo12:.LANCHOR2 - mul x0, x24, x27 - ldr x1, [x1,432] - add x2, x1, x0 - ldr w0, [x1,x0] + mov w0, 56 + umull x21, w21, w0 +.L2044: + ldr x0, [x27, 432] + add x1, x0, x24 + ldr w0, [x0, x24] cmn w0, #1 - bne .L2075 - ldr w0, [x2,4] + bne .L2043 + ldr w0, [x1, 4] add w19, w19, 1 + and w19, w19, 65535 lsr w0, w0, 10 - uxth w19, w19 bl FtlBbmMapBadBlock -.L2075: - add x24, x24, 1 - b .L2074 -.L2113: - cbnz w25, .L2077 +.L2043: + add x24, x24, 56 + cmp x21, x24 + bne .L2044 + cbnz w25, .L2045 + and w23, w23, 65535 mov w0, 1 - uxth w23, w23 mov w28, 6 - str w0, [x29,124] - b .L2078 -.L2077: - add x0, x22, :lo12:.LANCHOR0 - ldrh w1, [x0,2546] - ldrb w0, [x0,204] - str w1, [x29,124] - cbnz w0, .L2094 + str w0, [x29, 136] +.L2046: + add x20, x20, :lo12:.LANCHOR0 + add x27, x22, :lo12:.LANCHOR2 + add x0, x20, 2504 + mov w24, 0 + str x0, [x29, 120] +.L2054: + mov w5, 0 + mov w21, 0 + mov w6, 56 + mov w7, 4 +.L2047: + ldrh w0, [x20, 2472] + cmp w0, w5 + bhi .L2050 + cbz w21, .L2035 + ldr x0, [x27, 432] + mov w2, w23 + mov w1, w21 + strb wzr, [x20, 2368] + mov w3, 1 + bl FlashProgPages + mov w1, 56 + ldrb w0, [x29, 132] + strb w0, [x20, 2368] + mov x2, 0 + umull x1, w21, w1 +.L2053: + ldr x0, [x27, 432] + add x3, x0, x2 + ldr w0, [x0, x2] + cbz w0, .L2052 + ldr w0, [x3, 4] + add w19, w19, 1 + stp x2, x1, [x29, 104] + and w19, w19, 65535 + lsr w0, w0, 10 + bl FtlBbmMapBadBlock + ldp x2, x1, [x29, 104] +.L2052: + add x2, x2, 56 + cmp x1, x2 + bne .L2053 + add w24, w24, w28 + ldr w0, [x29, 136] + and w24, w24, 65535 + cmp w0, w24 + bhi .L2054 + add x24, x22, :lo12:.LANCHOR2 + mov x20, 0 +.L2056: + cbz w25, .L2055 + ldr x0, [x24, 432] + add x1, x0, x20 + ldr w0, [x0, x20] + cbnz w0, .L2055 + ldr w0, [x1, 4] + mov w1, 1 + str x2, [x29, 136] + lsr w0, w0, 10 + bl FtlFreeSysBlkQueueIn + ldr x2, [x29, 136] +.L2055: + add x20, x20, 56 + cmp x20, x2 + bne .L2056 + cmp w26, 63 + ccmp w25, 0, 0, hi + beq .L2035 + add x22, x22, :lo12:.LANCHOR2 + mov w2, w21 + mov w1, w23 + ldr x0, [x22, 432] + bl FlashEraseBlocks +.L2035: + 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], 144 + ret +.L2041: + umull x0, w6, w7 + ldr x1, [x5, 432] + str wzr, [x1, x0] + mov w1, w26 + ldrb w0, [x9, w6, sxtw] + bl V2P_block + and w11, w0, 65535 + mov w12, w11 + cbz w25, .L2038 + bl IsBlkInVendorPart + cbnz w0, .L2039 +.L2038: + mov w0, w12 + bl FtlBbmIsBadBlock + cbnz w0, .L2040 + umull x2, w21, w7 + ldr x0, [x5, 432] + lsl w11, w11, 10 + add x0, x0, x2 + str w11, [x0, 4] + ldrh w0, [x24, 2556] + ldr x1, [x5, 432] + add x1, x1, x2 + ldr x2, [x5, 3664] + mul w0, w0, w21 + add w21, w21, 1 + and w21, w21, 65535 + sdiv w0, w0, w10 + add x0, x2, w0, sxtw 2 + stp xzr, x0, [x1, 8] +.L2039: + add w6, w6, 1 + and w6, w6, 65535 + b .L2037 +.L2040: + add w19, w19, 1 + and w19, w19, 65535 + b .L2039 +.L2045: + add x0, x20, :lo12:.LANCHOR0 + ldrh w1, [x0, 2546] + ldrb w0, [x0, 204] + str w1, [x29, 136] + cbnz w0, .L2059 uxtw x0, w1 mov w23, 1 lsr w28, w0, 2 - b .L2078 -.L2094: + b .L2046 +.L2059: mov w23, 1 mov w28, w23 -.L2078: - mov w24, 0 - add x22, x22, :lo12:.LANCHOR0 -.L2087: - mov w27, 0 - mov w21, w27 -.L2079: - ldrh w0, [x22,2472] - cmp w0, w27 - bls .L2114 - add x1, x20, :lo12:.LANCHOR2 - mov w0, 56 - umull x0, w27, w0 - ldr x1, [x1,432] - str wzr, [x1,x0] - add x0, x22, 2504 + b .L2046 +.L2050: + umull x0, w5, w6 + ldr x1, [x27, 432] + str wzr, [x1, x0] mov w1, w26 - ldrb w0, [x0,w27,sxtw] + ldr x0, [x29, 120] + ldrb w0, [x0, w5, sxtw] bl V2P_block - uxth w2, w0 - str w2, [x29,112] - mov w1, w2 - cbz w25, .L2080 - str x1, [x29,104] + and w8, w0, 65535 + mov w9, w8 + cbz w25, .L2048 bl IsBlkInVendorPart - ldr x1, [x29,104] - cbnz w0, .L2081 -.L2080: - mov w0, w1 + cbnz w0, .L2049 +.L2048: + mov w0, w9 bl FtlBbmIsBadBlock - cbnz w0, .L2081 - add x2, x20, :lo12:.LANCHOR2 - mov w0, 56 - ldr w3, [x29,112] - umull x0, w21, w0 - ldr x1, [x2,432] - add w3, w24, w3, lsl 10 - add x1, x1, x0 - str w3, [x1,4] - mov w3, 4 - ldr x1, [x2,432] - add x1, x1, x0 - ldr x0, [x2,3648] - ldr x2, [x2,3656] - str x0, [x1,8] - ldrh w0, [x22,2556] - mul w0, w21, w0 + cbnz w0, .L2049 + umull x2, w21, w6 + ldr x0, [x27, 432] + add w8, w24, w8, lsl 10 + add x0, x0, x2 + str w8, [x0, 4] + ldr x1, [x27, 432] + ldr x0, [x27, 3640] + add x1, x1, x2 + ldr x2, [x27, 3648] + str x0, [x1, 8] + ldrh w0, [x20, 2556] + mul w0, w0, w21 add w21, w21, 1 - sdiv w0, w0, w3 - uxth w21, w21 + and w21, w21, 65535 + sdiv w0, w0, w7 add x0, x2, w0, sxtw 2 - str x0, [x1,16] -.L2081: - add w4, w27, 1 - uxth w27, w4 - b .L2079 -.L2114: - cbz w21, .L2091 - add x0, x20, :lo12:.LANCHOR2 - mov w1, w21 - mov w2, w23 - mov w3, 1 - strb wzr, [x22,2368] - ldr x0, [x0,432] - bl FlashProgPages - ldrb w0, [x29,120] - mov x1, 0 - strb w0, [x22,2368] -.L2084: - cmp w21, w1, uxth - bls .L2115 - add x2, x20, :lo12:.LANCHOR2 - mov x0, 56 - mul x0, x1, x0 - ldr x2, [x2,432] - add x3, x2, x0 - ldr w0, [x2,x0] - cbz w0, .L2085 - ldr w0, [x3,4] - add w19, w19, 1 - str x1, [x29,112] - lsr w0, w0, 10 - uxth w19, w19 - bl FtlBbmMapBadBlock - ldr x1, [x29,112] -.L2085: - add x1, x1, 1 - b .L2084 -.L2115: - add w24, w24, w28 - ldr w0, [x29,124] - uxth w24, w24 - cmp w24, w0 - bcc .L2087 - mov x22, 0 - mov x24, 56 -.L2088: - cmp w21, w22, uxth - bls .L2116 - cbz w25, .L2089 - add x1, x20, :lo12:.LANCHOR2 - mul x0, x22, x24 - ldr x1, [x1,432] - add x2, x1, x0 - ldr w0, [x1,x0] - cbnz w0, .L2089 - ldr w0, [x2,4] - mov w1, 1 - lsr w0, w0, 10 - bl FtlFreeSysBlkQueueIn -.L2089: - add x22, x22, 1 - b .L2088 -.L2116: - cmp w26, 63 - bls .L2095 - cbz w25, .L2091 -.L2095: - add x20, x20, :lo12:.LANCHOR2 - mov w1, w23 - mov w2, w21 - ldr x0, [x20,432] - bl FlashEraseBlocks -.L2091: - mov w0, w19 -.L2067: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 128 - ret + str x0, [x1, 16] +.L2049: + add w5, w5, 1 + and w5, w5, 65535 + b .L2047 +.L2058: + mov w19, 0 + b .L2035 .size FtlLowFormatEraseBlock, .-FtlLowFormatEraseBlock .align 2 .global FtlBbmTblFlush @@ -13595,562 +13324,556 @@ FtlLowFormatEraseBlock: FtlBbmTblFlush: stp x29, x30, [sp, -96]! add x29, sp, 0 - stp x21, x22, [sp,32] + stp x19, x20, [sp, 16] + stp x21, x22, [sp, 32] adrp x22, .LANCHOR2 - add x2, x22, :lo12:.LANCHOR2 - stp x19, x20, [sp,16] - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] - stp x27, x28, [sp,80] - ldr w1, [x2,424] - cbnz w1, .L2119 - adrp x19, .LANCHOR4 - adrp x20, .LANCHOR0 - add x24, x19, :lo12:.LANCHOR4 - add x20, x20, :lo12:.LANCHOR0 - ldr x0, [x2,3616] - mov x21, 0 - ldr x2, [x2,3664] - add x23, x20, 2624 - str x2, [x24,1720] - ldrh w2, [x20,2554] - str x0, [x24,1712] - bl ftl_memset -.L2120: - ldrh w1, [x20,2494] - mov w0, w21 - add x21, x21, 1 - cmp w0, w1 - bge .L2133 - add x1, x22, :lo12:.LANCHOR2 - ldr x3, [x24,1712] - ldrh w2, [x1,3792] - add x1, x23, x21, lsl 3 - ldr x1, [x1,24] - mul w0, w0, w2 - add x0, x3, w0, sxtw 2 - lsl w2, w2, 2 - bl ftl_memcpy - b .L2120 -.L2133: - add x19, x19, :lo12:.LANCHOR4 - mov w1, 255 - add x19, x19, 1704 - mov w2, 16 + add x19, x22, :lo12:.LANCHOR2 + stp x23, x24, [sp, 48] + stp x25, x26, [sp, 64] + stp x27, x28, [sp, 80] + ldr w0, [x19, 424] + cbnz w0, .L2082 + adrp x20, .LANCHOR4 + adrp x23, .LANCHOR0 + add x25, x20, :lo12:.LANCHOR4 + add x21, x23, :lo12:.LANCHOR0 + ldr x2, [x19, 3656] + mov w1, 0 + ldr x0, [x19, 3608] + add x26, x21, 2656 + str x2, [x25, 1728] mov w24, 0 + ldrh w2, [x21, 2554] + str x0, [x25, 1720] + bl ftl_memset +.L2083: + ldrh w0, [x21, 2494] + cmp w24, w0 + blt .L2084 + add x20, x20, :lo12:.LANCHOR4 + add x19, x21, 2624 + mov w2, 16 + mov w1, 255 adrp x26, .LC125 - ldr x21, [x19,16] - adrp x27, .LC126 - mov w25, w24 + add x23, x23, :lo12:.LANCHOR0 + ldr x28, [x20, 1728] add x26, x26, :lo12:.LC125 - mov x0, x21 - add x27, x27, :lo12:.LC126 + mov w24, 0 + mov x0, x28 bl ftl_memset mov w0, -3887 - strh w0, [x21] - ldr w0, [x23,8] - str w0, [x21,4] - ldrh w0, [x20,2624] - strh w0, [x21,2] - ldrh w0, [x23,4] - strh w0, [x21,8] - ldrh w0, [x23,6] - strh w0, [x21,10] - ldr w0, [x20,2468] - strh w0, [x21,12] -.L2122: - add x28, x22, :lo12:.LANCHOR2 - ldrh w1, [x20,2624] - ldrh w2, [x20,2626] - ldrh w3, [x20,2628] - ldr x0, [x28,3616] - str x0, [x19,8] - ldr x0, [x28,3664] - str x0, [x19,16] + strh w0, [x28] + ldr w0, [x19, 8] + str w0, [x28, 4] + ldrh w0, [x21, 2624] + strh w0, [x28, 2] + ldrh w0, [x19, 4] + strh w0, [x28, 8] + ldrh w0, [x19, 6] + strh w0, [x28, 10] + ldr w0, [x21, 2468] + mov w21, 0 + strh w0, [x28, 12] +.L2085: + add x25, x22, :lo12:.LANCHOR2 + ldrh w1, [x19] + ldrh w2, [x19, 2] + ldrh w3, [x19, 4] + ldr x0, [x25, 3608] + str x0, [x20, 1720] + ldr x0, [x25, 3656] + str x0, [x20, 1728] orr w0, w2, w1, lsl 10 - str w0, [x19,4] + str wzr, [x20, 1712] + ldrh w4, [x28, 10] + str w0, [x20, 1716] mov x0, x26 - ldrh w4, [x21,10] - str wzr, [x19] bl printk - ldrh w0, [x20,2546] - ldrh w1, [x20,2626] + ldrh w0, [x23, 2546] + ldrh w1, [x19, 2] sub w0, w0, #1 cmp w1, w0 - blt .L2123 - ldr w0, [x20,2632] - strh wzr, [x20,2626] + blt .L2086 + ldr w0, [x19, 8] + mov w2, 1 + ldrh w1, [x19] add w0, w0, 1 - str w0, [x20,2632] - str w0, [x21,4] - ldrh w0, [x20,2624] - ldrh w1, [x20,2628] - strh w0, [x21,8] - strh w0, [x20,2628] - ldr x0, [x28,432] - strh w1, [x20,2624] - lsl w1, w1, 10 - str w1, [x19,4] - str w1, [x0,4] - mov w1, 1 - mov w2, w1 - ldr x0, [x28,432] + str w0, [x19, 8] + str w0, [x28, 4] + strh w1, [x28, 8] + ldrh w0, [x19, 4] + strh w1, [x19, 4] + ldr x1, [x25, 432] + strh w0, [x19] + lsl w0, w0, 10 + str w0, [x20, 1716] + strh wzr, [x19, 2] + str w0, [x1, 4] + mov w1, w2 + ldr x0, [x25, 432] bl FlashEraseBlocks -.L2123: - mov w1, 1 - mov x0, x19 - mov w2, w1 - mov w3, w1 +.L2086: + add x25, x20, 1712 + mov w3, 1 + mov x0, x25 + mov w2, w3 + mov w1, w3 bl FlashProgPages - ldrh w0, [x20,2626] + ldrh w0, [x19, 2] add w0, w0, 1 - strh w0, [x20,2626] - ldr w0, [x19] + strh w0, [x19, 2] + ldr w0, [x20, 1712] cmn w0, #1 - bne .L2124 - ldr w1, [x19,4] - mov x0, x27 - add w24, w24, 1 + bne .L2087 + ldr w1, [x20, 1716] + add w21, w21, 1 + adrp x0, .LC126 + and w21, w21, 65535 + add x0, x0, :lo12:.LC126 bl printk - uxth w24, w24 - cmp w24, 3 - bls .L2122 - adrp x0, .LC127 - ldr w1, [x19,4] - add x0, x0, :lo12:.LC127 - mov w2, w24 + cmp w21, 3 + bls .L2085 + ldr w1, [x20, 1716] add x22, x22, :lo12:.LANCHOR2 + mov w2, w21 + adrp x0, .LC127 + add x0, x0, :lo12:.LC127 bl printk mov w0, 1 - str w0, [x22,424] - b .L2119 -.L2124: - add w25, w25, 1 - cmp w25, 1 - beq .L2122 - cmp w0, 256 - beq .L2122 -.L2119: + str w0, [x22, 424] +.L2082: 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 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 +.L2084: + ldrh w2, [x19, 3784] + ldr x1, [x26], 8 + ldr x0, [x25, 1720] + mul w3, w2, w24 + lsl w2, w2, 2 + add w24, w24, 1 + add x0, x0, w3, sxtw 2 + bl ftl_memcpy + b .L2083 +.L2090: + mov w24, 1 + b .L2085 +.L2087: + add w24, w24, 1 + cmp w24, 1 + ble .L2090 + cmp w0, 256 + bne .L2082 + b .L2085 .size FtlBbmTblFlush, .-FtlBbmTblFlush .align 2 .global allocate_data_superblock .type allocate_data_superblock, %function allocate_data_superblock: - stp x29, x30, [sp, -144]! + stp x29, x30, [sp, -128]! add x29, sp, 0 - stp x21, x22, [sp,32] - adrp x21, .LANCHOR2 - stp x19, x20, [sp,16] - add x19, x21, :lo12:.LANCHOR2 - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] - ldr w1, [x19,424] - stp x27, x28, [sp,80] - cbnz w1, .L2135 + stp x19, x20, [sp, 16] + stp x21, x22, [sp, 32] + adrp x22, .LANCHOR2 + add x19, x22, :lo12:.LANCHOR2 + stp x23, x24, [sp, 48] + stp x25, x26, [sp, 64] + stp x27, x28, [sp, 80] + ldr w1, [x19, 424] + cbnz w1, .L2096 + adrp x23, .LANCHOR0 mov x20, x0 - add x23, x19, 656 - adrp x22, .LANCHOR0 - mov w24, 7 - add x25, x19, 544 -.L2136: - cmp x20, x23 - bne .L2137 - ldrh w2, [x19,552] - ldr w4, [x19,1380] - lsr w3, w2, 1 - add w1, w3, 1 - mul w0, w2, w4 - add w1, w1, w0, lsr 2 - add x0, x22, :lo12:.LANCHOR0 - uxth w1, w1 - ldr w0, [x0,2372] - cbz w0, .L2138 - ldr w0, [x19,776] - cmp w0, 39 - bhi .L2138 - cmp w0, 2 - mov w1, 0 - bls .L2139 - tbz x2, 0, .L2166 - cbz w4, .L2139 -.L2166: - mov w1, w3 - b .L2138 -.L2137: - ldrb w0, [x20,8] - mov w1, 0 + add x24, x19, 656 + add x21, x23, :lo12:.LANCHOR0 +.L2097: + cmp x20, x24 + bne .L2098 + ldrh w2, [x19, 552] + ldr w3, [x19, 1376] + lsr w0, w2, 1 + add w4, w0, 1 + mul w1, w2, w3 + add w1, w4, w1, lsr 2 + ldr w4, [x21, 2372] + and w1, w1, 65535 + cbz w4, .L2099 + ldr w4, [x19, 776] + cmp w4, 39 + bhi .L2099 + cmp w4, 2 + bls .L2126 + tbz x2, 0, .L2122 + cbz w3, .L2126 +.L2122: + mov w1, w0 + b .L2099 +.L2098: + ldrb w0, [x20, 8] cmp w0, 1 - bne .L2139 - add x2, x22, :lo12:.LANCHOR0 - ldrh w0, [x2,2492] + bne .L2126 + ldrh w0, [x21, 2492] cmp w0, 1 - beq .L2139 - ldrb w0, [x2,204] - cbnz w0, .L2139 - ldr w2, [x2,2372] - ldrh w0, [x19,552] + beq .L2126 + ldrb w0, [x21, 204] + cbnz w0, .L2126 + ldr w2, [x21, 2372] + ldrh w0, [x19, 552] lsr w1, w0, 3 - cbz w2, .L2138 - ldr w2, [x19,776] + cbz w2, .L2099 + ldr w2, [x19, 776] cmp w2, 1 - bhi .L2138 - mul w1, w0, w24 + bhi .L2099 + mov w1, 7 + mul w1, w0, w1 lsr w1, w1, 3 -.L2138: - cbz w1, .L2139 +.L2099: + cbz w1, .L2100 sub w1, w1, #1 - uxth w1, w1 -.L2139: - ldrb w2, [x20,8] - mov x0, x25 - add x27, x22, :lo12:.LANCHOR0 + and w1, w1, 65535 +.L2100: + ldrb w2, [x20, 8] + add x0, x19, 544 bl List_pop_index_node - uxth w28, w0 - ldrh w0, [x19,552] + and w27, w0, 65535 + ldrh w0, [x19, 552] sub w0, w0, #1 - strh w0, [x19,552] - ldrh w0, [x27,2480] - cmp w0, w28 - bls .L2136 - ubfiz x26, x28, 1, 16 - ldr x0, [x19,520] - ldrh w0, [x0,x26] - cbnz w0, .L2136 - strh w28, [x20] + strh w0, [x19, 552] + ldrh w0, [x21, 2480] + cmp w0, w27 + bls .L2097 + ldr x0, [x19, 520] + ubfiz x26, x27, 1, 16 + ldrh w25, [x0, x26] + cbnz w25, .L2097 + strh w27, [x20] mov x0, x20 bl make_superblock - ldrb w0, [x20,7] - cbz w0, .L2191 + ldrb w0, [x20, 7] + cbz w0, .L2143 + add x28, x20, 16 + ldrh w5, [x21, 2472] + mov x3, x28 mov x0, 0 - ldrh w5, [x27,2472] - mov x3, 56 - mov w27, w0 + mov x4, 56 mov w6, 65535 -.L2143: +.L2103: cmp w5, w0, uxth - bls .L2194 - ldr x4, [x19,432] - madd x1, x0, x3, x4 - str xzr, [x1,16] - str xzr, [x1,8] - add x1, x20, x0, lsl 1 - ldrh w1, [x1,16] - cmp w1, w6 - beq .L2144 - umull x2, w27, w3 - add w27, w27, 1 - lsl w1, w1, 10 - add x2, x4, x2 - uxth w27, w27 - str w1, [x2,4] -.L2144: - add x0, x0, 1 - b .L2143 -.L2194: + bhi .L2105 + ldr w0, [x21, 2372] + cbz w0, .L2106 add x0, x19, 560 cmp x20, x0 - bne .L2146 - add x1, x22, :lo12:.LANCHOR0 - ldr w1, [x1,2372] - cbz w1, .L2146 - ldr x1, [x19,440] - ldrh w1, [x1,x26] - cmp w1, 40 - bls .L2146 - strb wzr, [x19,568] -.L2146: - ldrb w0, [x20,8] - cbnz w0, .L2147 - ldr x0, [x19,440] - mov w1, 2 - ldrh w2, [x0,x26] - cbz w2, .L2192 - add x1, x22, :lo12:.LANCHOR0 - ldrh w1, [x1,2536] - add w1, w2, w1 -.L2192: - strh w1, [x0,x26] + bne .L2106 + ldr x0, [x19, 440] + ldrh w0, [x0, x26] + cmp w0, 40 + bls .L2106 + strb wzr, [x20, 8] +.L2106: + ldrb w0, [x20, 8] + ldr x1, [x19, 440] + cbnz w0, .L2107 + ldrh w0, [x1, x26] + cbz w0, .L2108 + ldrh w2, [x21, 2536] + add w0, w0, w2 +.L2144: + strh w0, [x1, x26] mov w1, 0 - ldr w0, [x19,760] + ldr w0, [x19, 760] add w0, w0, 1 - str w0, [x19,760] - mov w0, w28 + str w0, [x19, 760] + mov w0, w27 bl ftl_set_blk_mode - b .L2150 -.L2147: - ldr x1, [x19,440] - ldrh w0, [x1,x26] - add w0, w0, 1 - strh w0, [x1,x26] - ldr w0, [x19,764] - add w0, w0, 1 - str w0, [x19,764] - mov w0, w28 - bl ftl_set_blk_mode.part.9 -.L2150: - ldr x0, [x19,440] - ldr w1, [x19,772] - ldrh w0, [x0,x26] +.L2110: + ldr x0, [x19, 440] + ldr w1, [x19, 772] + ldrh w0, [x0, x26] cmp w0, w1 - bls .L2151 - str w0, [x19,772] -.L2151: - add x2, x22, :lo12:.LANCHOR0 - ldr w3, [x19,760] - ldr w0, [x19,764] - ldrh w1, [x2,2536] - madd w0, w1, w3, w0 - ldrh w1, [x2,2480] - mov x3, 56 + bls .L2111 + str w0, [x19, 772] +.L2111: + ldr w2, [x19, 760] + ldr w1, [x19, 764] + ldrh w0, [x21, 2536] + madd w0, w0, w2, w1 + ldrh w1, [x21, 2480] + mov w2, 56 + umull x2, w25, w2 udiv w0, w0, w1 - ldr x1, [x19,3704] - str w0, [x19,768] - ldr w0, [x1,16] + ldr x1, [x19, 3696] + str w0, [x19, 768] + ldr w0, [x1, 16] add w0, w0, 1 - str w0, [x1,16] + str w0, [x1, 16] mov x0, 0 -.L2152: - cmp w27, w0, uxth - bls .L2195 - ldr x1, [x19,432] - madd x1, x0, x3, x1 - add x0, x0, 1 - ldr w2, [x1,4] - and w2, w2, -1024 - str w2, [x1,4] - b .L2152 -.L2195: - add x0, x22, :lo12:.LANCHOR0 - ldrb w0, [x0,204] - cbz w0, .L2154 - ldrb w0, [x20,8] +.L2112: + cmp x2, x0 + bne .L2113 + ldrb w0, [x21, 204] + cbz w0, .L2114 + ldrb w0, [x20, 8] + mov w2, w25 cmp w0, 1 - ldr x0, [x19,432] - bne .L2155 + bne .L2115 mov w1, 0 - b .L2193 -.L2155: - mov w1, 1 -.L2193: - mov w2, w27 +.L2145: + ldr x0, [x19, 432] bl FlashEraseBlocks -.L2154: - ldrb w1, [x20,8] - mov w2, w27 - ldr x0, [x19,432] +.L2114: + ldrb w1, [x20, 8] + mov w2, w25 + ldr x0, [x19, 432] bl FlashEraseBlocks mov x1, 0 + mov w2, 0 mov x4, 56 - mov w2, w1 -.L2156: - cmp w27, w1, uxth - bls .L2196 - mul x0, x1, x4 - ldr x3, [x19,432] - add x5, x3, x0 - ldr w3, [x3,x0] - cmn w3, #1 - bne .L2157 - ldr w0, [x5,4] - add w2, w2, 1 - str x4, [x29,104] - lsr w0, w0, 10 - str x3, [x29,112] - str x1, [x29,120] - str x2, [x29,128] - str x2, [x29,136] - bl FtlBbmMapBadBlock - ldr x1, [x29,120] - ldr x3, [x29,112] - ldr x4, [x29,104] - add x0, x20, x1, lsl 1 - ldr x2, [x29,136] - strh w3, [x0,16] - ldrb w0, [x20,7] - sub w0, w0, #1 - strb w0, [x20,7] -.L2157: - add x1, x1, 1 - b .L2156 -.L2196: - cbz w2, .L2159 - mov w0, w28 +.L2116: + cmp w25, w1, uxth + bhi .L2118 + cmp w2, 0 + ble .L2119 + mov w0, w27 bl update_multiplier_value bl FtlBbmTblFlush -.L2159: - ldrb w0, [x20,7] - cbnz w0, .L2160 -.L2191: - ldr x0, [x19,520] +.L2119: + ldrb w0, [x20, 7] + cbnz w0, .L2120 +.L2143: + ldr x0, [x19, 520] mov w1, -1 - strh w1, [x0,x26] - b .L2136 -.L2160: - adrp x1, .LANCHOR0 - add x21, x21, :lo12:.LANCHOR2 - add x1, x1, :lo12:.LANCHOR0 - strh wzr, [x20,2] - strb wzr, [x20,6] - ldrh w1, [x1,2544] - strh w28, [x20] + strh w1, [x0, x26] + b .L2097 +.L2126: + mov w1, 0 + b .L2100 +.L2105: + ldr x1, [x19, 432] + madd x2, x0, x4, x1 + stp xzr, xzr, [x2, 8] + ldrh w2, [x3] + cmp w2, w6 + beq .L2104 + umull x7, w25, w4 + add w25, w25, 1 + and w25, w25, 65535 + lsl w2, w2, 10 + add x1, x1, x7 + str w2, [x1, 4] +.L2104: + add x0, x0, 1 + add x3, x3, 2 + b .L2103 +.L2108: + mov w0, 2 + b .L2144 +.L2107: + ldrh w0, [x1, x26] + add w0, w0, 1 + strh w0, [x1, x26] + ldr w0, [x19, 764] + add w0, w0, 1 + str w0, [x19, 764] + mov w0, w27 + bl ftl_set_blk_mode.part.9 + b .L2110 +.L2113: + ldr x1, [x19, 432] + add x1, x1, x0 + add x0, x0, 56 + ldr w3, [x1, 4] + and w3, w3, -1024 + str w3, [x1, 4] + b .L2112 +.L2115: + mov w1, 1 + b .L2145 +.L2118: + mul x0, x1, x4 + ldr x3, [x19, 432] + add x5, x3, x0 + ldr w3, [x3, x0] + cmn w3, #1 + bne .L2117 + add w2, w2, 1 + ldr w0, [x5, 4] + stp x4, x1, [x29, 104] + stp w3, w2, [x29, 120] + lsr w0, w0, 10 + bl FtlBbmMapBadBlock + ldp w3, w2, [x29, 120] + strh w3, [x28] + ldp x4, x1, [x29, 104] + ldrb w0, [x20, 7] + sub w0, w0, #1 + strb w0, [x20, 7] +.L2117: + add x1, x1, 1 + add x28, x28, 2 + b .L2116 +.L2120: + add x23, x23, :lo12:.LANCHOR0 + add x22, x22, :lo12:.LANCHOR2 + strh wzr, [x20, 2] + strb wzr, [x20, 6] + ldrh w1, [x23, 2544] + strh w27, [x20] mul w0, w0, w1 - ldr w1, [x21,752] - str w1, [x20,12] - uxth w0, w0 + ldr w1, [x22, 752] + str w1, [x20, 12] + and w0, w0, 65535 add w1, w1, 1 - strh w0, [x20,4] - str w1, [x21,752] - ldr x1, [x21,520] + strh w0, [x20, 4] + str w1, [x22, 752] + ldr x1, [x22, 520] ldrh w2, [x20] - strh w0, [x1,x2,lsl 1] -.L2135: + strh w0, [x1, x2, lsl 1] +.L2096: + ldp x19, x20, [sp, 16] mov w0, 0 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 144 + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] + ldp x27, x28, [sp, 80] + ldp x29, x30, [sp], 128 ret .size allocate_data_superblock, .-allocate_data_superblock .align 2 .global FtlGcFreeBadSuperBlk .type FtlGcFreeBadSuperBlk, %function FtlGcFreeBadSuperBlk: - stp x29, x30, [sp, -80]! + stp x29, x30, [sp, -96]! add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x19, .LANCHOR2 - str x25, [sp,64] - add x19, x19, :lo12:.LANCHOR2 - stp x23, x24, [sp,48] - uxth w23, w0 - ldrh w0, [x19,1464] - stp x21, x22, [sp,32] - mov w21, 0 - cbz w0, .L2199 + stp x19, x20, [sp, 16] + adrp x20, .LANCHOR2 + add x20, x20, :lo12:.LANCHOR2 + stp x23, x24, [sp, 48] + and w23, w0, 65535 + stp x21, x22, [sp, 32] + stp x25, x26, [sp, 64] + ldrh w0, [x20, 1456] + str x27, [sp, 80] + cbz w0, .L2147 adrp x22, .LANCHOR0 - adrp x24, .LC128 + add x24, x20, 1464 add x22, x22, :lo12:.LANCHOR0 - add x24, x24, :lo12:.LC128 -.L2207: - ldrh w0, [x22,2472] + mov w21, 0 +.L2148: + ldrh w0, [x22, 2472] cmp w0, w21 - bls .L2208 + bhi .L2154 + bl FtlGcReFreshBadBlk +.L2147: + mov w0, 0 + ldr x27, [sp, 80] + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] + ldp x29, x30, [sp], 96 + ret +.L2154: add x0, x22, 2504 mov w1, w23 - mov w20, 0 - ldrb w0, [x0,w21,sxtw] + adrp x26, .LC128 + add x26, x26, :lo12:.LC128 + mov w19, 0 + ldrb w0, [x0, w21, sxtw] bl V2P_block - uxth w25, w0 -.L2200: - ldrh w0, [x19,1464] - cmp w0, w20 - bls .L2209 - add x0, x19, 1472 - ldrh w0, [x0,w20,sxtw 1] + and w25, w0, 65535 +.L2149: + ldrh w0, [x20, 1456] + cmp w0, w19 + bhi .L2153 + add w21, w21, 1 + and w21, w21, 65535 + b .L2148 +.L2153: + ldrh w0, [x24, w19, sxtw 1] + add w27, w19, 1 cmp w0, w25 - bne .L2201 + bne .L2150 mov w1, w25 - mov x0, x24 + mov x0, x26 bl printk mov w0, w25 bl FtlBbmMapBadBlock bl FtlBbmTblFlush - ldrh w2, [x19,1464] - mov w3, w20 -.L2202: - cmp w3, w2 - bcs .L2210 - add x4, x19, 1472 - add w0, w3, 1 - ldrh w1, [x4,w0,sxtw 1] - strh w1, [x4,w3,sxtw 1] - uxth w3, w0 - b .L2202 -.L2210: - sub w2, w2, #1 - strh w2, [x19,1464] -.L2201: - add w20, w20, 1 - uxth w20, w20 - b .L2200 -.L2209: - add w21, w21, 1 - uxth w21, w21 - b .L2207 -.L2208: - bl FtlGcReFreshBadBlk -.L2199: - mov w0, 0 - ldr x25, [sp,64] - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x29, x30, [sp], 80 - ret + ldrh w0, [x20, 1456] + mov w1, w27 +.L2151: + cmp w19, w0 + bcc .L2152 + sub w0, w0, #1 + strh w0, [x20, 1456] +.L2150: + and w19, w27, 65535 + b .L2149 +.L2152: + sub w2, w1, #1 + ldrh w3, [x24, w1, sxtw 1] + add w19, w19, 1 + add w1, w1, 1 + and w19, w19, 65535 + strh w3, [x24, w2, sxtw 1] + b .L2151 .size FtlGcFreeBadSuperBlk, .-FtlGcFreeBadSuperBlk .align 2 .global update_vpc_list .type update_vpc_list, %function update_vpc_list: - stp x29, x30, [sp, -32]! + and w13, w0, 65535 + adrp x8, .LANCHOR2 + add x0, x8, :lo12:.LANCHOR2 + stp x29, x30, [sp, -16]! + ubfiz x1, x13, 1, 16 add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x20, .LANCHOR2 - uxth w19, w0 - add x1, x20, :lo12:.LANCHOR2 - ubfiz x0, x19, 1, 16 - ldr x2, [x1,520] - ldrh w2, [x2,x0] - cbnz w2, .L2212 - ldrh w0, [x1,800] - cmp w0, w19 - bne .L2213 - mov w0, -1 - strh w0, [x1,800] - b .L2214 -.L2213: - ldrh w3, [x1,560] - mov w0, w2 - cmp w3, w19 - beq .L2215 - ldrh w3, [x1,608] - cmp w3, w19 - beq .L2215 - ldrh w1, [x1,656] - cmp w1, w19 - beq .L2215 -.L2214: - add x20, x20, :lo12:.LANCHOR2 - mov w1, w19 - add x0, x20, 512 + ldr x2, [x0, 520] + ldrh w1, [x2, x1] + cbnz w1, .L2160 + ldrh w1, [x0, 800] + cmp w1, w13 + bne .L2161 + mov w1, -1 + strh w1, [x0, 800] +.L2162: + add x8, x8, :lo12:.LANCHOR2 + mov w1, w13 + add x0, x8, 512 bl List_remove_node - ldrh w0, [x20,536] + ldrh w0, [x8, 536] sub w0, w0, #1 - strh w0, [x20,536] - mov w0, w19 + strh w0, [x8, 536] + mov w0, w13 bl free_data_superblock - mov w0, w19 + mov w0, w13 bl FtlGcFreeBadSuperBlk mov w0, 1 - b .L2215 -.L2212: - mov w0, w19 - bl List_update_data_list - mov w0, 0 -.L2215: - ldp x19, x20, [sp,16] - ldp x29, x30, [sp], 32 +.L2159: + ldp x29, x30, [sp], 16 ret +.L2161: + ldrh w1, [x0, 560] + cmp w1, w13 + beq .L2166 + ldrh w1, [x0, 608] + cmp w1, w13 + beq .L2166 + ldrh w0, [x0, 656] + cmp w0, w13 + bne .L2162 +.L2166: + mov w0, 0 + b .L2159 +.L2160: + mov w0, w13 + bl List_update_data_list + b .L2166 .size update_vpc_list, .-update_vpc_list .align 2 .global decrement_vpc_count @@ -14158,73 +13881,72 @@ update_vpc_list: decrement_vpc_count: stp x29, x30, [sp, -48]! add x29, sp, 0 - stp x19, x20, [sp,16] - uxth w19, w0 + stp x19, x20, [sp, 16] + and w19, w0, 65535 + stp x21, x22, [sp, 32] mov w0, 65535 - stp x21, x22, [sp,32] - cmp w19, w0 adrp x20, .LANCHOR2 - beq .L2220 + cmp w19, w0 + beq .L2169 add x21, x20, :lo12:.LANCHOR2 ubfiz x22, x19, 1, 16 - ldr x0, [x21,520] - ldrh w2, [x0,x22] - cbnz w2, .L2221 + ldr x1, [x21, 520] + ldrh w0, [x1, x22] + cbnz w0, .L2170 + mov w1, w19 + mov w2, 0 adrp x0, .LC129 - mov w1, w19 add x0, x0, :lo12:.LC129 - add x20, x21, 544 bl printk - ldr x0, [x21,520] + ldr x0, [x21, 520] + add x6, x21, 544 mov w1, 32 - strh w1, [x0,x22] - mov x0, x20 + strh w1, [x0, x22] mov w1, w19 + mov x0, x6 bl test_node_in_list - cbz w0, .L2222 + cbz w0, .L2171 mov w1, w19 - mov x0, x20 + mov x0, x6 bl List_remove_node - ldrh w0, [x21,552] + ldrh w0, [x21, 552] sub w0, w0, #1 - strh w0, [x21,552] + strh w0, [x21, 552] mov w0, w19 bl INSERT_DATA_LIST - ldr x2, [x21,520] + ldr x0, [x21, 520] + mov w1, w19 + ldrh w2, [x0, x22] adrp x0, .LC130 add x0, x0, :lo12:.LC130 - mov w1, w19 - ldrh w2, [x2,x22] bl printk -.L2222: +.L2171: mov w0, w19 bl FtlGcRefreshBlock - b .L2229 -.L2221: - sub w2, w2, #1 - strh w2, [x0,x22] -.L2220: +.L2174: + mov w0, 0 + b .L2168 +.L2170: + sub w0, w0, #1 + strh w0, [x1, x22] +.L2169: add x20, x20, :lo12:.LANCHOR2 - mov w0, 65535 - ldrh w1, [x20,3880] - cmp w1, w0 - bne .L2224 - strh w19, [x20,3880] -.L2229: - mov w0, 0 - b .L2223 -.L2224: - cmp w1, w19 - mov w0, 0 - beq .L2223 - mov w0, w1 + mov w1, 65535 + ldrh w0, [x20, 3872] + cmp w0, w1 + bne .L2173 + strh w19, [x20, 3872] + b .L2174 +.L2173: + cmp w19, w0 + beq .L2174 bl update_vpc_list - cmp w0, wzr + cmp w0, 0 cset w0, ne - strh w19, [x20,3880] -.L2223: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] + strh w19, [x20, 3872] +.L2168: + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] ldp x29, x30, [sp], 48 ret .size decrement_vpc_count, .-decrement_vpc_count @@ -14232,96 +13954,95 @@ decrement_vpc_count: .global FtlSlcSuperblockCheck .type FtlSlcSuperblockCheck, %function FtlSlcSuperblockCheck: + ldrh w1, [x0, 4] + cbz w1, .L2191 + ldrh w2, [x0] + mov w1, 65535 + cmp w2, w1 + beq .L2191 stp x29, x30, [sp, -48]! add x29, sp, 0 - stp x19, x20, [sp,16] - stp x21, x22, [sp,32] - ldrh w1, [x0,4] - cbz w1, .L2230 - ldrh w1, [x0] - mov w20, 65535 - cmp w1, w20 - beq .L2230 + stp x19, x20, [sp, 16] mov x19, x0 - ldrb w0, [x0,6] + stp x21, x22, [sp, 32] adrp x21, .LANCHOR2 - adrp x22, .LANCHOR0 - add x0, x0, 8 add x21, x21, :lo12:.LANCHOR2 - add x21, x21, 1508 - ldrh w0, [x19,x0,lsl 1] -.L2234: - cmp w0, w20 - bne .L2241 -.L2236: - ldrb w0, [x19,6] - add x1, x22, :lo12:.LANCHOR0 - add w0, w0, 1 - ldrh w1, [x1,2472] - uxtb w0, w0 - strb w0, [x19,6] - cmp w1, w0 - bne .L2235 - ldrh w0, [x19,2] - strb wzr, [x19,6] - add w0, w0, 1 - strh w0, [x19,2] -.L2235: - ldrb w0, [x19,6] + adrp x20, .LANCHOR0 + ldrb w0, [x0, 6] + add x22, x20, :lo12:.LANCHOR0 + add x21, x21, 1500 add x0, x0, 8 - ldrh w0, [x19,x0,lsl 1] - b .L2234 -.L2241: - ldrb w1, [x19,8] + ldrh w1, [x19, x0, lsl 1] +.L2183: + mov w0, 65535 + cmp w1, w0 + beq .L2185 + ldrb w1, [x19, 8] cmp w1, 1 - bne .L2237 - add x0, x22, :lo12:.LANCHOR0 - ldrb w0, [x0,204] - cbnz w0, .L2237 - ldrh w0, [x19,2] - ldrh w0, [x21,w0,sxtw 1] - cmp w0, w20 - bne .L2237 - ldrh w0, [x19,4] + bne .L2186 + ldrb w2, [x22, 204] + cbnz w2, .L2186 + ldrh w2, [x19, 2] + ldrh w2, [x21, x2, lsl 1] + cmp w2, w0 + bne .L2186 + ldrh w0, [x19, 4] sub w0, w0, #1 - strh w0, [x19,4] + strh w0, [x19, 4] ldrh w0, [x19] bl decrement_vpc_count - ldrh w1, [x19,4] - cbnz w1, .L2236 - ldrh w0, [x19,2] - strb w1, [x19,6] + ldrh w0, [x19, 4] + cbnz w0, .L2185 + ldrh w0, [x19, 2] add w0, w0, 1 - strh w0, [x19,2] - b .L2230 -.L2237: - adrp x0, .LANCHOR0 - add x0, x0, :lo12:.LANCHOR0 - ldrb w2, [x0,204] - cbz w2, .L2230 - cmp w1, 1 - bne .L2230 - ldrh w2, [x19,2] - ldrh w1, [x0,2546] - cmp w2, w1 - bcc .L2230 - adrp x2, .LANCHOR2+520 - ldrh w1, [x19] - ldrh w4, [x19,4] - lsl x1, x1, 1 - ldr x3, [x2,#:lo12:.LANCHOR2+520] - ldrh w2, [x3,x1] - sub w2, w2, w4 - strh w2, [x3,x1] - strh wzr, [x19,4] - ldrh w0, [x0,2544] - strh w0, [x19,2] - strb wzr, [x19,6] -.L2230: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] +.L2194: + strh w0, [x19, 2] + strb wzr, [x19, 6] +.L2179: + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] ldp x29, x30, [sp], 48 ret +.L2185: + ldrb w0, [x19, 6] + ldrh w1, [x22, 2472] + add w0, w0, 1 + and w0, w0, 255 + strb w0, [x19, 6] + cmp w1, w0 + bne .L2184 + ldrh w0, [x19, 2] + strb wzr, [x19, 6] + add w0, w0, 1 + strh w0, [x19, 2] +.L2184: + ldrb w0, [x19, 6] + add x0, x0, 8 + ldrh w1, [x19, x0, lsl 1] + b .L2183 +.L2186: + add x0, x20, :lo12:.LANCHOR0 + ldrb w2, [x0, 204] + cbz w2, .L2179 + cmp w1, 1 + bne .L2179 + ldrh w2, [x19, 2] + ldrh w1, [x0, 2546] + cmp w2, w1 + bcc .L2179 + ldrh w1, [x19] + adrp x2, .LANCHOR2+520 + ldrh w4, [x19, 4] + ldr x3, [x2, #:lo12:.LANCHOR2+520] + lsl x1, x1, 1 + ldrh w2, [x3, x1] + sub w2, w2, w4 + strh w2, [x3, x1] + strh wzr, [x19, 4] + ldrh w0, [x0, 2544] + b .L2194 +.L2191: + ret .size FtlSlcSuperblockCheck, .-FtlSlcSuperblockCheck .align 2 .global get_new_active_ppa @@ -14329,130 +14050,118 @@ FtlSlcSuperblockCheck: get_new_active_ppa: stp x29, x30, [sp, -64]! add x29, sp, 0 - stp x21, x22, [sp,32] - stp x19, x20, [sp,16] - stp x23, x24, [sp,48] + stp x19, x20, [sp, 16] mov x19, x0 - strb wzr, [x0,10] - ldrb w0, [x0,6] + stp x21, x22, [sp, 32] adrp x21, .LANCHOR2 + str x23, [sp, 48] add x21, x21, :lo12:.LANCHOR2 - mov w22, 65535 - add x0, x0, 8 - adrp x23, .LANCHOR0 - add x21, x21, 1508 - ldrh w0, [x19,x0,lsl 1] -.L2243: - cmp w0, w22 + strb wzr, [x0, 10] adrp x20, .LANCHOR0 - bne .L2258 -.L2244: - ldrb w0, [x19,6] - add x1, x23, :lo12:.LANCHOR0 - add w0, w0, 1 - ldrh w1, [x1,2472] - uxtb w0, w0 - strb w0, [x19,6] - cmp w1, w0 - bne .L2245 - ldrh w0, [x19,2] - strb wzr, [x19,6] - add w0, w0, 1 - strh w0, [x19,2] -.L2245: - ldrb w0, [x19,6] + ldrb w0, [x0, 6] + add x21, x21, 1500 + add x23, x20, :lo12:.LANCHOR0 add x0, x0, 8 - ldrh w0, [x19,x0,lsl 1] - b .L2243 -.L2258: - ldrb w1, [x19,8] + ldrh w0, [x19, x0, lsl 1] +.L2196: + mov w2, 65535 + cmp w0, w2 + beq .L2197 + ldrb w1, [x19, 8] + ldrh w22, [x19, 2] cmp w1, 1 - bne .L2246 - add x1, x23, :lo12:.LANCHOR0 - ldrb w1, [x1,204] - cbnz w1, .L2246 - ldrh w1, [x19,2] - ldrh w1, [x21,w1,sxtw 1] - cmp w1, w22 - bne .L2246 - ldrh w0, [x19,4] - sub w0, w0, #1 - strh w0, [x19,4] - ldrh w0, [x19] - bl decrement_vpc_count - b .L2244 -.L2246: - ldrh w1, [x19,4] - adrp x21, .LANCHOR2 - ldrh w22, [x19,2] - mov w23, 65535 - add x21, x21, :lo12:.LANCHOR2 - sub w1, w1, #1 - orr w22, w22, w0, lsl 10 - strh w1, [x19,4] - mov w24, w23 - add x21, x21, 1508 -.L2247: - add x0, x20, :lo12:.LANCHOR0 - ldrb w1, [x19,6] - ldrh w2, [x0,2472] -.L2249: - add w1, w1, 1 - uxtb w1, w1 - cmp w1, w2 - bne .L2248 - ldrh w1, [x19,2] - add w1, w1, 1 - strh w1, [x19,2] - mov w1, 0 -.L2248: - add x0, x19, w1, sxtw 1 - ldrh w0, [x0,16] - cmp w0, w23 - beq .L2249 - ldrb w0, [x19,8] - strb w1, [x19,6] - cmp w0, 1 - bne .L2254 - add x0, x20, :lo12:.LANCHOR0 - ldrb w0, [x0,204] - cbnz w0, .L2251 - ldrh w0, [x19,2] - ldrh w0, [x21,w0,sxtw 1] - cmp w0, w24 - bne .L2251 - ldrh w1, [x19,4] - cbz w1, .L2251 + ldrh w1, [x19, 4] + bne .L2199 + ldrb w3, [x23, 204] + cbnz w3, .L2199 + ldrh w3, [x21, w22, sxtw 1] + cmp w3, w2 + bne .L2199 ldrh w0, [x19] sub w1, w1, #1 - strh w1, [x19,4] + strh w1, [x19, 4] bl decrement_vpc_count - b .L2247 -.L2251: - add x20, x20, :lo12:.LANCHOR0 - ldrb w0, [x20,204] - cbz w0, .L2254 - ldrh w1, [x19,2] - ldrh w0, [x20,2546] +.L2197: + ldrb w0, [x19, 6] + ldrh w1, [x23, 2472] + add w0, w0, 1 + and w0, w0, 255 + strb w0, [x19, 6] cmp w1, w0 - bcc .L2254 - adrp x0, .LANCHOR2+520 - ldrh w1, [x19] - ldrh w3, [x19,4] - lsl x1, x1, 1 - ldr x0, [x0,#:lo12:.LANCHOR2+520] - ldrh w2, [x0,x1] - sub w2, w2, w3 - strh w2, [x0,x1] - strh wzr, [x19,4] - ldrh w0, [x20,2544] - strh w0, [x19,2] - strb wzr, [x19,6] -.L2254: + bne .L2198 + ldrh w0, [x19, 2] + strb wzr, [x19, 6] + add w0, w0, 1 + strh w0, [x19, 2] +.L2198: + ldrb w0, [x19, 6] + add x0, x0, 8 + ldrh w0, [x19, x0, lsl 1] + b .L2196 +.L2199: + adrp x21, .LANCHOR2 + add x21, x21, :lo12:.LANCHOR2 + orr w22, w22, w0, lsl 10 + add x20, x20, :lo12:.LANCHOR0 + add x21, x21, 1500 + sub w1, w1, #1 + strh w1, [x19, 4] +.L2200: + ldrb w0, [x19, 6] + mov w1, 65535 + ldrh w3, [x20, 2472] +.L2202: + add w0, w0, 1 + and w0, w0, 255 + cmp w0, w3 + bne .L2201 + ldrh w0, [x19, 2] + add w0, w0, 1 + strh w0, [x19, 2] + mov w0, 0 +.L2201: + add x2, x19, w0, sxtw 1 + ldrh w2, [x2, 16] + cmp w2, w1 + beq .L2202 + strb w0, [x19, 6] + ldrb w0, [x19, 8] + cmp w0, 1 + bne .L2195 + ldrb w2, [x20, 204] + ldrh w0, [x19, 2] + cbnz w2, .L2204 + ldrh w0, [x21, w0, sxtw 1] + cmp w0, w1 + bne .L2195 + ldrh w0, [x19, 4] + cbz w0, .L2195 + sub w0, w0, #1 + strh w0, [x19, 4] + ldrh w0, [x19] + bl decrement_vpc_count + b .L2200 +.L2204: + ldrh w1, [x20, 2546] + cmp w0, w1 + bcc .L2195 + ldrh w0, [x19] + adrp x1, .LANCHOR2+520 + ldrh w3, [x19, 4] + ldr x2, [x1, #:lo12:.LANCHOR2+520] + lsl x0, x0, 1 + ldrh w1, [x2, x0] + sub w1, w1, w3 + strh w1, [x2, x0] + strh wzr, [x19, 4] + ldrh w0, [x20, 2544] + strh w0, [x19, 2] + strb wzr, [x19, 6] +.L2195: mov w0, w22 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] + ldr x23, [sp, 48] + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] ldp x29, x30, [sp], 64 ret .size get_new_active_ppa, .-get_new_active_ppa @@ -14462,430 +14171,426 @@ get_new_active_ppa: FtlVpcTblFlush: stp x29, x30, [sp, -96]! add x29, sp, 0 - stp x23, x24, [sp,48] + stp x19, x20, [sp, 16] + stp x23, x24, [sp, 48] adrp x23, .LANCHOR2 - stp x19, x20, [sp,16] add x19, x23, :lo12:.LANCHOR2 - stp x21, x22, [sp,32] - stp x25, x26, [sp,64] - ldr w0, [x19,424] - stp x27, x28, [sp,80] - cbnz w0, .L2261 - adrp x26, .LANCHOR4 - ldr x21, [x19,3664] - add x22, x26, :lo12:.LANCHOR4 - ldr x1, [x19,3616] - ldrh w2, [x19,784] + stp x21, x22, [sp, 32] + stp x25, x26, [sp, 64] + stp x27, x28, [sp, 80] + ldr w0, [x19, 424] + cbnz w0, .L2213 + ldr x21, [x19, 3656] + adrp x24, .LANCHOR4 + add x22, x24, :lo12:.LANCHOR4 + ldr x0, [x19, 3608] + ldrh w1, [x19, 784] add x20, x19, 456 - adrp x24, .LANCHOR0 - add x22, x22, 1704 - str x1, [x22,8] - add x25, x24, :lo12:.LANCHOR0 - str x21, [x22,16] - strh w2, [x21,2] - mov w2, -3932 - strh w2, [x21] - str w0, [x21,12] - ldr w2, [x19,792] - str w2, [x21,4] - str w0, [x21,8] - mov w0, 19539 - ldrh w1, [x19,560] - movk w0, 0x4654, lsl 16 - strh w1, [x20,14] - ldrh w1, [x19,562] - ldrb w2, [x19,566] - str w0, [x19,456] - mov w0, 99 + adrp x26, .LANCHOR0 + add x25, x26, :lo12:.LANCHOR0 + str x0, [x22, 1720] + add x22, x22, 1712 + str x21, [x22, 16] + strh w1, [x21, 2] + mov w1, -3932 + strh w1, [x21] + str wzr, [x21, 12] + ldr w1, [x19, 792] + stp w1, wzr, [x21, 4] + mov w1, 19539 + movk w1, 0x4654, lsl 16 + str w1, [x19, 456] + mov w1, 99 + ldrb w2, [x19, 566] + movk w1, 0x5000, lsl 16 + str w1, [x20, 4] + ldrh w1, [x19, 560] + strh w1, [x20, 14] + ldrh w1, [x19, 562] + ldrh w0, [x19, 790] + strh w0, [x20, 8] orr w1, w2, w1, lsl 6 - strh w1, [x20,16] - ldrh w1, [x19,608] - movk w0, 0x5000, lsl 16 - strh w1, [x20,18] - ldrh w1, [x19,610] - str w0, [x20,4] - ldrb w2, [x19,614] - ldrh w0, [x19,790] - strh w0, [x20,8] + strh w1, [x20, 16] + ldrh w1, [x19, 608] + strh w1, [x20, 18] + ldrb w2, [x19, 614] + ldrh w1, [x19, 610] + ldrh w0, [x25, 2494] + strb w0, [x20, 10] + ldrb w0, [x19, 568] orr w1, w2, w1, lsl 6 - ldrh w0, [x25,2494] - strb w0, [x20,10] - ldrb w0, [x19,568] - strb w0, [x20,11] - strh w1, [x20,20] - ldrb w0, [x19,616] - ldrh w1, [x19,656] - strb w0, [x20,12] - strh w1, [x20,22] - ldrh w1, [x19,658] - ldrb w0, [x19,664] - strb w0, [x20,13] - ldr w0, [x19,760] - str w0, [x20,32] - ldr w0, [x19,752] - str w0, [x20,40] - ldr w0, [x19,756] - ldrb w2, [x19,662] - str w0, [x20,36] - ldrh w0, [x19,1456] + strb w0, [x20, 11] + ldrb w0, [x19, 616] + strb w0, [x20, 12] + strh w1, [x20, 20] + ldrh w1, [x19, 656] + strh w1, [x20, 22] + ldrb w0, [x19, 664] + strb w0, [x20, 13] + ldr w0, [x19, 760] + str w0, [x20, 32] + ldr w0, [x19, 752] + ldrb w2, [x19, 662] + str w0, [x20, 40] + ldrh w1, [x19, 658] + ldr w0, [x19, 756] + str w0, [x20, 36] + ldrh w0, [x19, 1448] orr w1, w2, w1, lsl 6 - strh w0, [x20,44] - ldrh w0, [x19,1458] - strh w0, [x20,46] - ldrh w2, [x25,2554] - ldr x0, [x22,8] - strh w1, [x20,24] + strh w0, [x20, 44] + ldrh w0, [x19, 1450] + strh w0, [x20, 46] + ldrh w2, [x25, 2554] + ldr x0, [x22, 8] + strh w1, [x20, 24] mov w1, 255 bl ftl_memset - ldr x0, [x22,8] + ldr x0, [x22, 8] mov x1, x20 mov w2, 48 mov x20, x26 bl ftl_memcpy - ldr x0, [x22,8] - ldrh w2, [x25,2480] - ldr x1, [x19,520] - add x0, x0, 48 + ldr x1, [x19, 520] + ldrh w2, [x25, 2480] + ldr x0, [x22, 8] lsl w2, w2, 1 + add x0, x0, 48 bl ftl_memcpy - ldrh w2, [x25,2480] - ldr x1, [x22,8] - ubfiz x0, x2, 1, 16 - lsr w2, w2, 3 + ldrh w0, [x25, 2480] + ldr x3, [x22, 8] + ldr x1, [x25, 64] + lsr w2, w0, 3 + ubfiz x0, x0, 1, 16 add x0, x0, 51 add w2, w2, 4 - and x0, x0, 262140 - add x0, x1, x0 - ldr x1, [x24,#:lo12:.LANCHOR0] + and x0, x0, -4 + add x0, x3, x0 bl ftl_memcpy - ldrh w0, [x25,2588] - cbz w0, .L2262 - ldrh w0, [x25,2480] - ldrh w2, [x25,2580] + ldrh w0, [x25, 2588] + cbz w0, .L2214 + ldrh w0, [x25, 2480] + ldr x3, [x22, 8] + ldrh w2, [x25, 2580] lsr w1, w0, 3 add w0, w1, w0, lsl 1 - ldr x1, [x22,8] + ldr x1, [x19, 3752] add w0, w0, 52 lsl w2, w2, 2 and x0, x0, 65532 - add x0, x1, x0 - ldr x1, [x19,3760] + add x0, x3, x0 bl ftl_memcpy -.L2262: - mov w0, 0 +.L2214: + add x27, x23, :lo12:.LANCHOR2 + add x26, x24, :lo12:.LANCHOR4 + add x19, x27, 784 + add x20, x20, :lo12:.LANCHOR0 mov w22, 0 mov w25, 65535 - add x26, x20, :lo12:.LANCHOR4 - add x19, x23, :lo12:.LANCHOR2 + mov w0, 0 bl FtlUpdateVaildLpn -.L2263: - ldrh w1, [x19,784] - ldr x0, [x19,3616] - ldrh w2, [x19,786] - str x0, [x26,1712] - ldr x0, [x19,3664] - str x0, [x26,1720] +.L2215: + ldrh w2, [x19, 2] + ldrh w1, [x19] + ldr x0, [x27, 3608] + str x0, [x26, 1720] + ldr x0, [x27, 3656] + str x0, [x26, 1728] orr w0, w2, w1, lsl 10 - str w0, [x26,1708] - add x0, x24, :lo12:.LANCHOR0 - ldrh w0, [x0,2546] + str w0, [x26, 1716] + ldrh w0, [x20, 2546] sub w0, w0, #1 cmp w2, w0 - blt .L2264 - ldrh w25, [x19,788] - strh wzr, [x19,786] - strh w1, [x19,788] + blt .L2216 + ldrh w25, [x19, 4] + strh wzr, [x19, 2] + strh w1, [x19, 4] bl FtlFreeSysBlkQueueOut - ldr w1, [x19,752] - str w1, [x19,792] + ldr w1, [x27, 752] + str w1, [x19, 8] add w2, w1, 1 - str w2, [x19,752] + str w2, [x27, 752] ubfiz w2, w0, 10, 16 - str w2, [x26,1708] - strh w0, [x19,784] - str w1, [x21,4] - strh w0, [x21,2] -.L2264: - add x1, x24, :lo12:.LANCHOR0 - ldrb w0, [x1,72] - cbz w0, .L2265 - ldr x0, [x19,3616] - ldrh w1, [x1,2554] + str w2, [x26, 1716] + strh w0, [x19] + strh w0, [x21, 2] + str w1, [x21, 4] +.L2216: + ldrb w0, [x20, 72] + cbz w0, .L2217 + ldrh w1, [x20, 2554] + ldr x0, [x27, 3608] bl js_hash - str w0, [x21,12] -.L2265: - mov w1, 1 - add x0, x26, 1704 - mov w2, w1 - mov w3, w1 + str w0, [x21, 12] +.L2217: + mov w3, 1 + add x0, x26, 1712 + mov w1, w3 + mov w2, w3 bl FlashProgPages - ldrh w1, [x19,786] - ldr w2, [x26,1704] - add w1, w1, 1 - cmn w2, #1 - uxth w1, w1 - strh w1, [x19,786] - bne .L2266 - cmp w1, 1 - bne .L2267 - add x1, x24, :lo12:.LANCHOR0 - ldrh w1, [x1,2546] - sub w1, w1, #1 - strh w1, [x19,786] -.L2267: + ldrh w0, [x19, 2] + ldr w1, [x26, 1712] + add w0, w0, 1 + and w0, w0, 65535 + strh w0, [x19, 2] + cmn w1, #1 + bne .L2218 + cmp w0, 1 + bne .L2219 + ldrh w0, [x20, 2546] + sub w0, w0, #1 + strh w0, [x19, 2] +.L2219: add w22, w22, 1 - uxth w22, w22 + and w22, w22, 65535 cmp w22, 3 - bls .L2263 - add x20, x20, :lo12:.LANCHOR4 + bls .L2215 + add x24, x24, :lo12:.LANCHOR4 + add x23, x23, :lo12:.LANCHOR2 + mov w2, w22 adrp x0, .LC131 add x0, x0, :lo12:.LC131 - mov w2, w22 - add x23, x23, :lo12:.LANCHOR2 - ldr w1, [x20,1708] + ldr w1, [x24, 1716] bl printk mov w0, 1 - str w0, [x23,424] - b .L2261 -.L2266: - cmp w1, 1 - beq .L2263 - cmp w2, 256 - beq .L2263 - mov w0, 65535 - cmp w25, w0 - beq .L2261 - mov w0, w25 - mov w1, 1 - bl FtlFreeSysBlkQueueIn -.L2261: + str w0, [x23, 424] +.L2213: 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 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 +.L2218: + cmp w0, 1 + beq .L2215 + cmp w1, 256 + beq .L2215 + mov w0, 65535 + cmp w25, w0 + beq .L2213 + mov w1, 1 + mov w0, w25 + bl FtlFreeSysBlkQueueIn + b .L2213 .size FtlVpcTblFlush, .-FtlVpcTblFlush .align 2 .global FtlSuperblockPowerLostFix .type FtlSuperblockPowerLostFix, %function FtlSuperblockPowerLostFix: - stp x29, x30, [sp, -128]! + stp x29, x30, [sp, -144]! add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x20, .LANCHOR2 - add x1, x20, :lo12:.LANCHOR2 - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - ldr w1, [x1,424] - cbnz w1, .L2276 - adrp x21, .LANCHOR0 - add x2, x21, :lo12:.LANCHOR0 - ldrb w22, [x2,204] - cbz w22, .L2291 - ldrb w22, [x0,8] - cmp w22, 1 - bne .L2287 - ldrh w24, [x0,4] - b .L2278 -.L2287: - mov w22, w1 -.L2291: - mov w24, 12 -.L2278: + stp x21, x22, [sp, 32] + adrp x21, .LANCHOR2 + add x1, x21, :lo12:.LANCHOR2 + stp x19, x20, [sp, 16] + stp x23, x24, [sp, 48] + str x25, [sp, 64] + ldr w25, [x1, 424] + cbnz w25, .L2235 + adrp x22, .LANCHOR0 + add x1, x22, :lo12:.LANCHOR0 + ldrb w1, [x1, 204] + cbz w1, .L2246 + ldrb w1, [x0, 8] + cmp w1, 1 + bne .L2246 + ldrh w24, [x0, 4] + mov w25, w1 +.L2237: mov x19, x0 mov w0, -1 - str w0, [x29,96] - add x0, x20, :lo12:.LANCHOR2 + str w0, [x29, 112] + add x0, x21, :lo12:.LANCHOR2 mov w2, 61589 - ldr x23, [x0,3664] - ldr x1, [x0,3616] - str x1, [x29,80] + mov x20, x0 + ldr x23, [x0, 3656] + ldr x1, [x0, 3608] + stp x1, x23, [x29, 96] mov w1, -3 - str x23, [x29,88] - str w1, [x23,8] + str w1, [x23, 8] mov w1, -2 - str w1, [x23,12] + str w1, [x23, 12] ldrh w1, [x19] - strh w1, [x23,2] + strh w1, [x23, 2] strh wzr, [x23] - ldr x1, [x0,3616] + ldr x1, [x0, 3608] str w2, [x1] - ldr x1, [x0,3616] - mov w0, 22136 - movk w0, 0x1234, lsl 16 - str w0, [x1,4] -.L2279: + mov w2, 22136 + movk w2, 0x1234, lsl 16 + ldr x1, [x0, 3608] + str w2, [x1, 4] +.L2238: sub w24, w24, #1 cmn w24, #1 - beq .L2282 - ldrh w0, [x19,4] - cbnz w0, .L2280 -.L2282: - add x20, x20, :lo12:.LANCHOR2 + beq .L2241 + ldrh w0, [x19, 4] + cbnz w0, .L2239 +.L2241: + add x21, x21, :lo12:.LANCHOR2 ldrh w0, [x19] - ldrh w3, [x19,4] - add x21, x21, :lo12:.LANCHOR0 + ldrh w3, [x19, 4] + add x22, x22, :lo12:.LANCHOR0 + ldr x2, [x21, 520] lsl x0, x0, 1 - ldr x2, [x20,520] - ldrh w1, [x2,x0] + ldrh w1, [x2, x0] sub w1, w1, w3 - strh w1, [x2,x0] - strb wzr, [x19,6] - ldrh w0, [x21,2544] - strh w0, [x19,2] - strh wzr, [x19,4] - b .L2276 -.L2280: + strh w1, [x2, x0] + strb wzr, [x19, 6] + ldrh w0, [x22, 2544] + strh w0, [x19, 2] + strh wzr, [x19, 4] +.L2235: + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldr x25, [sp, 64] + ldp x29, x30, [sp], 144 + ret +.L2246: + mov w24, 12 + b .L2237 +.L2239: mov x0, x19 bl get_new_active_ppa - str w0, [x29,76] + str w0, [x29, 92] cmn w0, #1 - beq .L2282 - add x1, x20, :lo12:.LANCHOR2 - mov w2, w22 + beq .L2241 + ldr w0, [x20, 756] mov w3, 0 - ldr w0, [x1,756] - str w0, [x23,4] + str w0, [x23, 4] + mov w2, w25 add w0, w0, 1 + mov w1, 1 cmn w0, #1 csel w0, w0, wzr, ne - str w0, [x1,756] - add x0, x29, 72 - mov w1, 1 + str w0, [x20, 756] + add x0, x29, 88 bl FlashProgPages ldrh w0, [x19] bl decrement_vpc_count - b .L2279 -.L2276: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x29, x30, [sp], 128 - ret + b .L2238 .size FtlSuperblockPowerLostFix, .-FtlSuperblockPowerLostFix .align 2 .global ftl_map_blk_gc .type ftl_map_blk_gc, %function ftl_map_blk_gc: - stp x29, x30, [sp, -96]! + stp x29, x30, [sp, -112]! add x29, sp, 0 - stp x19, x20, [sp,16] - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] - str x27, [sp,80] + stp x19, x20, [sp, 16] mov x19, x0 + stp x21, x22, [sp, 32] adrp x22, .LANCHOR0 - ldr x20, [x0,16] - ldr x25, [x0,40] + stp x23, x24, [sp, 48] + stp x25, x26, [sp, 64] + stp x27, x28, [sp, 80] + ldr x20, [x0, 16] + ldr x26, [x0, 40] bl ftl_free_no_use_map_blk - ldrh w1, [x19,10] - ldrh w2, [x19,8] + ldrh w1, [x19, 10] + ldrh w2, [x19, 8] sub w1, w1, #4 cmp w2, w1 - blt .L2293 + blt .L2252 ubfiz x0, x0, 1, 16 - ldrh w24, [x20,x0] - cbz w24, .L2293 - ldr w1, [x19,52] - cbnz w1, .L2293 - mov w2, 1 - str w2, [x19,52] - strh w1, [x20,x0] - ldrh w0, [x19,8] - ldrh w1, [x19,2] + ldrh w25, [x20, x0] + cbz w25, .L2252 + ldr w1, [x19, 52] + cbnz w1, .L2252 + mov w1, 1 + str w1, [x19, 52] + strh wzr, [x20, x0] + ldrh w0, [x19, 8] + ldrh w1, [x19, 2] sub w0, w0, #1 - strh w0, [x19,8] + strh w0, [x19, 8] add x0, x22, :lo12:.LANCHOR0 - ldrh w0, [x0,2546] + ldrh w0, [x0, 2546] cmp w1, w0 - bcc .L2294 + bcc .L2253 mov x0, x19 bl ftl_map_blk_alloc_new_blk -.L2294: - adrp x20, .LANCHOR4 - mov w21, 0 - add x20, x20, :lo12:.LANCHOR4 - adrp x26, .LANCHOR2 - add x20, x20, 1704 -.L2295: - ldrh w0, [x19,6] - cmp w0, w21 - bls .L2304 - ubfiz x0, x21, 2, 16 - add x27, x25, x0 - ldr w1, [x25,x0] - cmp w24, w1, lsr 10 - bne .L2296 - add x1, x26, :lo12:.LANCHOR2 - ldr x2, [x1,3624] - ldr x23, [x1,3664] - mov w1, 1 - str x2, [x20,8] - mov w2, w1 - str x23, [x20,16] - ldr w0, [x25,x0] - str w0, [x20,4] - mov x0, x20 - bl FlashReadPages - ldr w0, [x20] - cmn w0, #1 - bne .L2297 -.L2299: - adrp x1, .LANCHOR4 - str wzr, [x27] - add x1, x1, :lo12:.LANCHOR4 - adrp x0, .LC132 - ldrh w2, [x23,8] - add x0, x0, :lo12:.LC132 - ldr w1, [x1,1708] - bl printk - adrp x0, .LANCHOR2 - mov w1, 1 - add x0, x0, :lo12:.LANCHOR2 - str w1, [x0,424] - b .L2298 -.L2297: - ldrh w0, [x23,8] - cmp w0, w21 - bne .L2299 - ldrh w1, [x23] - ldrh w0, [x19,4] - cmp w1, w0 - bne .L2299 - ldr x2, [x20,8] - mov x0, x19 - mov w1, w21 - bl FtlMapWritePage -.L2296: - add w21, w21, 1 - uxth w21, w21 - b .L2295 -.L2304: - mov w0, w24 +.L2253: + adrp x23, .LANCHOR4 + add x21, x23, :lo12:.LANCHOR4 + adrp x24, .LANCHOR2 + add x21, x21, 1712 + add x28, x24, :lo12:.LANCHOR2 + mov w20, 0 +.L2254: + ldrh w0, [x19, 6] + cmp w0, w20 + bhi .L2259 mov w1, 1 + mov w0, w25 bl FtlFreeSysBlkQueueIn - str wzr, [x19,52] -.L2293: + str wzr, [x19, 52] +.L2252: add x22, x22, :lo12:.LANCHOR0 - ldrh w1, [x19,2] - ldrh w0, [x22,2546] + ldrh w1, [x19, 2] + ldrh w0, [x22, 2546] cmp w1, w0 - bcc .L2298 + bcc .L2257 mov x0, x19 bl ftl_map_blk_alloc_new_blk -.L2298: + b .L2257 +.L2259: + ubfiz x0, x20, 2, 16 + add x3, x26, x0 + ldr w1, [x26, x0] + cmp w25, w1, lsr 10 + bne .L2255 + ldr x1, [x28, 3616] + mov w2, 1 + ldr x27, [x28, 3656] + stp x1, x27, [x21, 8] + mov w1, w2 + str x3, [x29, 104] + ldr w0, [x26, x0] + str w0, [x21, 4] + mov x0, x21 + bl FlashReadPages + ldr w0, [x21] + ldr x3, [x29, 104] + cmn w0, #1 + bne .L2256 +.L2258: + add x23, x23, :lo12:.LANCHOR4 + str wzr, [x3] + add x24, x24, :lo12:.LANCHOR2 + adrp x0, .LC132 + ldrh w2, [x27, 8] + add x0, x0, :lo12:.LC132 + ldr w1, [x23, 1716] + bl printk + mov w0, 1 + str w0, [x24, 424] +.L2257: + ldp x19, x20, [sp, 16] mov w0, 0 - ldr x27, [sp,80] - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x29, x30, [sp], 96 + 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 +.L2256: + ldrh w0, [x27, 8] + cmp w0, w20 + bne .L2258 + ldrh w1, [x27] + ldrh w0, [x19, 4] + cmp w1, w0 + bne .L2258 + ldr x2, [x21, 8] + mov w1, w20 + mov x0, x19 + bl FtlMapWritePage +.L2255: + add w20, w20, 1 + and w20, w20, 65535 + b .L2254 .size ftl_map_blk_gc, .-ftl_map_blk_gc .align 2 .global Ftl_write_map_blk_to_last_page @@ -14893,110 +14598,110 @@ ftl_map_blk_gc: Ftl_write_map_blk_to_last_page: stp x29, x30, [sp, -80]! add x29, sp, 0 - stp x23, x24, [sp,48] - adrp x24, .LANCHOR2 - add x1, x24, :lo12:.LANCHOR2 - stp x19, x20, [sp,16] - stp x21, x22, [sp,32] - stp x25, x26, [sp,64] - ldr w20, [x1,424] - ldr x21, [x0,16] - ldr x26, [x0,40] - cbnz w20, .L2306 + stp x19, x20, [sp, 16] + adrp x20, .LANCHOR2 + add x20, x20, :lo12:.LANCHOR2 + stp x21, x22, [sp, 32] + stp x23, x24, [sp, 48] + str x25, [sp, 64] + ldr w1, [x20, 424] + cbnz w1, .L2265 mov x19, x0 ldrh w0, [x0] - mov w2, 65535 - cmp w0, w2 - bne .L2307 - ldrh w0, [x19,8] + mov w1, 65535 + cmp w0, w1 + ldr x21, [x19, 16] + bne .L2266 + ldrh w0, [x19, 8] add w0, w0, 1 - strh w0, [x19,8] + strh w0, [x19, 8] bl FtlFreeSysBlkQueueOut strh w0, [x21] - strh w20, [x19,2] - ldr w0, [x19,48] - strh w20, [x19] + strh wzr, [x19, 2] + ldr w0, [x19, 48] + strh wzr, [x19] add w0, w0, 1 - str w0, [x19,48] - b .L2306 -.L2307: - ubfiz x0, x0, 1, 16 - ldrh w2, [x19,2] - ldr x23, [x1,3664] - adrp x22, .LANCHOR0 - ldrh w25, [x21,x0] - adrp x21, .LANCHOR4 - add x0, x21, :lo12:.LANCHOR4 - orr w2, w2, w25, lsl 10 - str w2, [x0,1708] - ldr x2, [x1,3616] - str x2, [x0,1712] - str x23, [x0,1720] - 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,2546] - ldr x0, [x1,3616] - mov w1, 255 - lsl w2, w2, 3 - bl ftl_memset - mov w0, w20 -.L2308: - ldrh w1, [x19,6] - cmp w1, w0 - bls .L2315 - ubfiz x3, x0, 2, 32 - ldr w1, [x26,x3] - cmp w25, w1, lsr 10 - bne .L2309 - add x2, x24, :lo12:.LANCHOR2 - add w20, w20, 1 - uxth w20, w20 - ldr x4, [x2,3616] - ubfiz x1, x20, 3, 16 - str w0, [x4,x1] - ldr x2, [x2,3616] - ldr w3, [x26,x3] - add x1, x2, x1 - str w3, [x1,4] -.L2309: - add w0, w0, 1 - uxth w0, w0 - b .L2308 -.L2315: - add x22, x22, :lo12:.LANCHOR0 - ldrb w0, [x22,72] - cbz w0, .L2311 - add x0, x21, :lo12:.LANCHOR4 - ldrh w1, [x22,2554] - ldr x0, [x0,1712] - bl js_hash - str w0, [x23,12] -.L2311: - mov w1, 1 - add x0, x21, :lo12:.LANCHOR4 - add x0, x0, 1704 - mov w2, w1 - mov w3, 0 - bl FlashProgPages - ldrh w0, [x19,2] - add w0, w0, 1 - strh w0, [x19,2] - mov x0, x19 - bl ftl_map_blk_gc -.L2306: + str w0, [x19, 48] +.L2265: mov w0, 0 - 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 x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] ldp x29, x30, [sp], 80 ret +.L2266: + ubfiz x0, x0, 1, 16 + ldrh w1, [x19, 2] + ldr x23, [x20, 3656] + adrp x22, .LANCHOR0 + ldr x25, [x19, 40] + ldrh w24, [x21, x0] + adrp x21, .LANCHOR4 + add x0, x21, :lo12:.LANCHOR4 + orr w1, w1, w24, lsl 10 + str w1, [x0, 1716] + ldr x1, [x20, 3608] + str x1, [x0, 1720] + str x23, [x0, 1728] + mov w1, 255 + 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 w24, [x23, 2] + ldrh w2, [x0, 2546] + ldr x0, [x20, 3608] + lsl w2, w2, 3 + bl ftl_memset + mov w1, 0 + mov w0, 0 +.L2267: + ldrh w2, [x19, 6] + cmp w2, w0 + bhi .L2269 + add x22, x22, :lo12:.LANCHOR0 + ldrb w0, [x22, 72] + cbz w0, .L2270 + add x0, x21, :lo12:.LANCHOR4 + ldrh w1, [x22, 2554] + ldr x0, [x0, 1720] + bl js_hash + str w0, [x23, 12] +.L2270: + add x21, x21, :lo12:.LANCHOR4 + mov w2, 1 + mov w3, 0 + mov w1, w2 + add x0, x21, 1712 + bl FlashProgPages + ldrh w0, [x19, 2] + add w0, w0, 1 + strh w0, [x19, 2] + mov x0, x19 + bl ftl_map_blk_gc + b .L2265 +.L2269: + ubfiz x2, x0, 2, 16 + ldr w3, [x25, x2] + cmp w24, w3, lsr 10 + bne .L2268 + add w1, w1, 1 + ldr x4, [x20, 3608] + and w1, w1, 65535 + ubfiz x3, x1, 3, 16 + str w0, [x4, x3] + ldr w4, [x25, x2] + ldr x2, [x20, 3608] + add x2, x2, x3 + str w4, [x2, 4] +.L2268: + add w0, w0, 1 + and w0, w0, 65535 + b .L2267 .size Ftl_write_map_blk_to_last_page, .-Ftl_write_map_blk_to_last_page .align 2 .global FtlMapWritePage @@ -15004,142 +14709,142 @@ Ftl_write_map_blk_to_last_page: FtlMapWritePage: stp x29, x30, [sp, -112]! add x29, sp, 0 - stp x27, x28, [sp,80] - adrp x27, .LANCHOR4 - mov x28, x0 - stp x23, x24, [sp,48] - add x23, x27, :lo12:.LANCHOR4 - adrp x24, .LC133 - stp x21, x22, [sp,32] - stp x25, x26, [sp,64] - stp x19, x20, [sp,16] - mov w26, w1 - str x2, [x29,104] - mov w22, 0 - add x23, x23, 1704 - add x24, x24, :lo12:.LC133 -.L2317: - adrp x19, .LANCHOR2 + stp x23, x24, [sp, 48] + adrp x23, .LANCHOR2 + stp x25, x26, [sp, 64] + adrp x25, .LANCHOR4 + add x24, x25, :lo12:.LANCHOR4 + stp x21, x22, [sp, 32] + stp x27, x28, [sp, 80] + mov x22, x25 + stp x19, x20, [sp, 16] + mov w27, w1 + mov x19, x0 + mov x28, x2 + add x24, x24, 1712 + mov w21, 0 +.L2276: + add x1, x23, :lo12:.LANCHOR2 adrp x20, .LANCHOR0 - add x1, x19, :lo12:.LANCHOR2 - ldr w0, [x1,736] + ldr w0, [x1, 736] add w0, w0, 1 - str w0, [x1,736] + str w0, [x1, 736] add x0, x20, :lo12:.LANCHOR0 - ldrh w1, [x28,2] - ldrh w0, [x0,2546] + ldrh w1, [x19, 2] + ldrh w0, [x0, 2546] sub w0, w0, #1 cmp w1, w0 - bge .L2318 - ldrh w1, [x28] + bge .L2277 + ldrh w1, [x19] mov w0, 65535 cmp w1, w0 - bne .L2319 -.L2318: - mov x0, x28 + bne .L2278 +.L2277: + mov x0, x19 bl Ftl_write_map_blk_to_last_page -.L2319: - add x2, x19, :lo12:.LANCHOR2 - ldr w1, [x2,424] - cbnz w1, .L2320 - ldrh w3, [x28] - adrp x21, .LANCHOR4 - ldr x0, [x28,16] - ldrh w25, [x0,x3,lsl 1] - add x3, x27, :lo12:.LANCHOR4 - ldrh w0, [x28,2] - add x3, x3, 1704 - orr w0, w0, w25, lsl 10 - str w0, [x3,4] - ldr x0, [x29,104] - str x0, [x3,8] - ldr x0, [x2,3664] +.L2278: + add x1, x23, :lo12:.LANCHOR2 + ldr w0, [x1, 424] + cbnz w0, .L2291 + ldrh w2, [x19] + add x3, x25, :lo12:.LANCHOR4 + ldr x0, [x19, 16] + add x3, x3, 1712 + ldrh w26, [x0, x2, lsl 1] mov w2, 16 - str x0, [x3,16] - str x3, [x29,96] + ldrh w0, [x19, 2] + str x28, [x3, 8] + orr w0, w0, w26, lsl 10 + str w0, [x3, 4] + ldr x0, [x1, 3656] + mov w1, 0 + str x0, [x3, 16] + str x3, [x29, 104] bl ftl_memset - 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,72] - cbz w0, .L2321 - ldr x0, [x3,8] - ldrh w1, [x1,2554] - str x2, [x29,96] + ldr x3, [x29, 104] + ldr w0, [x19, 48] + ldr x6, [x3, 16] + strh w27, [x6, 8] + str w0, [x6, 4] + ldrh w0, [x19, 4] + strh w0, [x6] + add x0, x20, :lo12:.LANCHOR0 + strh w26, [x6, 2] + ldrb w1, [x0, 72] + cbz w1, .L2280 + ldrh w1, [x0, 2554] + ldr x0, [x3, 8] bl js_hash - ldr x2, [x29,96] - str w0, [x2,12] -.L2321: - mov w1, 1 - mov x0, x23 - mov w2, w1 - mov w3, w1 - bl FlashProgPages - ldrh w0, [x28,2] - add w0, w0, 1 - uxth w0, w0 - strh w0, [x28,2] - ldr w1, [x23] - cmn w1, #1 - bne .L2322 - ldr w1, [x23,4] + str w0, [x6, 12] +.L2280: + mov w3, 1 mov x0, x24 - add w22, w22, 1 + mov w1, w3 + mov w2, w3 + bl FlashProgPages + ldrh w0, [x19, 2] + add w0, w0, 1 + and w0, w0, 65535 + strh w0, [x19, 2] + ldr w1, [x24] + cmn w1, #1 + bne .L2281 + ldr w1, [x24, 4] + adrp x0, .LC133 + add x0, x0, :lo12:.LC133 + add w21, w21, 1 + and w21, w21, 65535 bl printk - uxth w22, w22 - ldrh w0, [x28,2] + ldrh w0, [x19, 2] cmp w0, 2 - bhi .L2323 + bhi .L2282 add x20, x20, :lo12:.LANCHOR0 - ldrh w0, [x20,2546] + ldrh w0, [x20, 2546] sub w0, w0, #1 - strh w0, [x28,2] -.L2323: - cmp w22, 3 - bls .L2317 - add x21, x21, :lo12:.LANCHOR4 + strh w0, [x19, 2] +.L2282: + cmp w21, 3 + bls .L2276 + add x22, x22, :lo12:.LANCHOR4 + add x23, x23, :lo12:.LANCHOR2 + mov w2, w21 adrp x0, .LC134 add x0, x0, :lo12:.LC134 - mov w2, w22 - add x19, x19, :lo12:.LANCHOR2 - ldr w1, [x21,1708] + ldr w1, [x22, 1716] bl printk mov w0, 1 - str w0, [x19,424] - b .L2320 -.L2322: - cbz w1, .L2325 - strh w25, [x28,60] -.L2325: - cmp w0, 1 - beq .L2326 - cmp w1, 256 - beq .L2326 - ldr w0, [x28,56] - cbz w0, .L2327 -.L2326: - str wzr, [x28,56] - b .L2317 -.L2327: - add x21, x21, :lo12:.LANCHOR4 - ldr x0, [x28,40] - ldr w1, [x21,1708] - str w1, [x0,w26,uxtw 2] -.L2320: + str w0, [x23, 424] +.L2291: + ldp x19, x20, [sp, 16] 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 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 +.L2281: + cbz w1, .L2284 + strh w26, [x19, 60] + cmp w0, 1 + bne .L2285 +.L2286: + str wzr, [x19, 56] + b .L2276 +.L2285: + cmp w1, 256 +.L2299: + beq .L2286 + ldr w0, [x19, 56] + cbnz w0, .L2286 + add x22, x22, :lo12:.LANCHOR4 + ldr x0, [x19, 40] + ldr w1, [x22, 1716] + str w1, [x0, w27, uxtw 2] + b .L2291 +.L2284: + cmp w0, 1 + b .L2299 .size FtlMapWritePage, .-FtlMapWritePage .align 2 .global flush_l2p_region @@ -15147,23 +14852,23 @@ FtlMapWritePage: flush_l2p_region: stp x29, x30, [sp, -32]! add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x20, .LANCHOR2 - ubfiz x19, x0, 4, 16 - add x20, x20, :lo12:.LANCHOR2 - add x0, x20, 3800 - ldr x1, [x20,704] - add x2, x1, x19 - ldrh w1, [x1,x19] - ldr x2, [x2,8] + stp x19, x20, [sp, 16] + adrp x19, .LANCHOR2 + add x19, x19, :lo12:.LANCHOR2 + ubfiz x20, x0, 4, 16 + ldr x0, [x19, 704] + add x1, x0, x20 + ldr x2, [x1, 8] + ldrh w1, [x0, x20] + add x0, x19, 3792 bl FtlMapWritePage - ldr x0, [x20,704] - add x19, x0, x19 - ldr w0, [x19,4] - and w0, w0, 2147483647 - str w0, [x19,4] + ldr x0, [x19, 704] + add x0, x0, x20 + ldr w1, [x0, 4] + and w1, w1, 2147483647 + str w1, [x0, 4] mov w0, 0 - ldp x19, x20, [sp,16] + ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 32 ret .size flush_l2p_region, .-flush_l2p_region @@ -15174,272 +14879,263 @@ FtlMapTblRecovery: stp x29, x30, [sp, -144]! mov w1, 0 add x29, sp, 0 - stp x23, x24, [sp,48] - mov x23, x0 - stp x19, x20, [sp,16] - stp x25, x26, [sp,64] - stp x27, x28, [sp,80] - stp x21, x22, [sp,32] - ldrh w25, [x23,6] - adrp x21, .LANCHOR2 - ldr x0, [x0,40] + stp x19, x20, [sp, 16] 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] + stp x25, x26, [sp, 64] + stp x21, x22, [sp, 32] + mov x22, x0 + stp x23, x24, [sp, 48] + stp x27, x28, [sp, 80] + ldrh w24, [x0, 6] + ldr x21, [x0, 40] + ldr x23, [x0, 16] + ldr x0, [x0, 24] + lsl w2, w24, 2 + str x0, [x29, 128] + ldrh w0, [x22, 8] + str w0, [x29, 140] + mov x0, x21 bl ftl_memset - add x1, x21, :lo12:.LANCHOR2 - adrp x0, .LANCHOR4 - add x4, x0, :lo12:.LANCHOR4 - str x0, [x29,112] - add x4, x4, 1704 - str x21, [x29,128] - ldr x2, [x1,3616] - sub w0, w27, #1 - ldr x20, [x1,3664] - mov w1, -1 - str x2, [x4,8] - str x20, [x4,16] - mov x21, x4 - strh w1, [x23] - strh w1, [x23,2] - mov w1, 1 - str wzr, [x23,52] - str wzr, [x23,48] - str w1, [x23,56] - str w0, [x29,108] -.L2336: - cmp w19, w27 - adrp x22, .LANCHOR0 - bge .L2354 - ldr w0, [x29,108] - sxtw x2, w19 + stp wzr, wzr, [x22, 48] + adrp x0, .LANCHOR2 + add x2, x0, :lo12:.LANCHOR2 + adrp x1, .LANCHOR4 + add x4, x1, :lo12:.LANCHOR4 + stp x0, x1, [x29, 104] + add x4, x4, 1712 + ldr w0, [x29, 140] + ldr x5, [x2, 3608] + ldr x20, [x2, 3656] + sub w0, w0, #1 + str x5, [x4, 8] + mov w2, -1 + str x20, [x4, 16] + mov x25, x4 + str w0, [x29, 136] + adrp x0, .LANCHOR0 + add x26, x0, :lo12:.LANCHOR0 + strh w2, [x22] + strh w2, [x22, 2] + mov w2, 1 + str w2, [x22, 56] +.L2303: + ldr w0, [x29, 140] cmp w19, w0 - bne .L2337 - lsl x0, x2, 1 + bge .L2322 + ldr w0, [x29, 136] + sxtw x27, w19 + cmp w19, w0 + bne .L2304 + lsl x0, x27, 1 mov w1, 1 - add x21, x24, x0 - str x2, [x29,128] + add x25, x23, x0 mov w26, 0 - mov w27, -1 - ldrh w0, [x24,x0] + ldrh w0, [x23, x0] bl FtlGetLastWrittenPage - strh w19, [x23] - ldr x2, [x29,128] - sxth w24, w0 + sxth w23, w0 add w0, w0, 1 - strh w0, [x23,2] - add w24, w24, 1 - ldr w0, [x28,x2,lsl 2] - str w0, [x23,48] - ldr x0, [x29,112] + strh w0, [x22, 2] + ldr x0, [x29, 128] + add w23, w23, 1 + strh w19, [x22] + ldr w0, [x0, x27, lsl 2] + str w0, [x22, 48] + ldr x0, [x29, 112] add x19, x0, :lo12:.LANCHOR4 - add x19, x19, 1704 -.L2338: - cmp w26, w24 - bge .L2354 - ldrh w0, [x21] - mov w1, 1 - mov w2, w1 - orr w0, w26, w0, lsl 10 - str w0, [x19,4] - mov x0, x19 - bl FlashReadPages - add x1, x22, :lo12:.LANCHOR0 - ldrb w0, [x1,72] - cbz w0, .L2339 - ldr x0, [x19,16] - ldr w28, [x0,12] - cbz w28, .L2339 - ldr x0, [x19,8] - ldrh w1, [x1,2554] - bl js_hash - cmp w28, w0 - beq .L2339 - str w27, [x19] -.L2339: - ldr w0, [x19] - cmn w0, #1 - beq .L2340 - ldrh w0, [x20,8] - cmp w0, w25 - bcs .L2340 - ldrh w2, [x20] - ldrh w1, [x23,4] - cmp w2, w1 - bne .L2340 - ubfiz x0, x0, 2, 16 - ldr x2, [x29,136] - ldr w1, [x19,4] - str w1, [x2,x0] -.L2340: - add w26, w26, 1 - sxth w26, w26 - b .L2338 -.L2354: - mov x0, x23 - add x22, x22, :lo12:.LANCHOR0 + adrp x0, .LANCHOR0 + add x19, x19, 1712 + add x27, x0, :lo12:.LANCHOR0 +.L2305: + cmp w26, w23 + blt .L2308 +.L2322: + mov x0, x22 bl ftl_free_no_use_map_blk - ldrh w1, [x23,2] - ldrh w0, [x22,2546] + adrp x0, .LANCHOR0 + add x21, x0, :lo12:.LANCHOR0 + ldrh w1, [x22, 2] + ldrh w0, [x21, 2546] cmp w1, w0 - bne .L2343 - mov x0, x23 + bne .L2310 + mov x0, x22 bl ftl_map_blk_alloc_new_blk - b .L2343 -.L2337: - ldr x0, [x29,128] - lsl x2, x2, 1 - add x0, x0, :lo12:.LANCHOR2 - ldr x0, [x0,3616] - str x0, [x21,8] - add x0, x24, x2 - str x0, [x29,120] - add x0, x26, :lo12:.LANCHOR0 - ldrh w1, [x24,x2] - ldrh w0, [x0,2546] - sub w0, w0, #1 - orr w0, w0, w1, lsl 10 - mov w1, 1 - str w0, [x21,4] - mov w2, w1 - mov x0, x21 - bl FlashReadPages - ldr w0, [x21] - cmn w0, #1 - beq .L2355 - ldrh w1, [x20] - mov w22, 0 - ldrh w0, [x23,4] - cmp w1, w0 - bne .L2376 - ldrh w1, [x20,8] - mov w0, 64245 - cmp w1, w0 - bne .L2376 - mov w5, w22 -.L2345: - add x0, x26, :lo12:.LANCHOR0 - ldrh w0, [x0,2546] - sub w0, w0, #1 - cmp w5, w0 - bge .L2348 - ldr x0, [x29,128] - sbfiz x1, x5, 3, 32 - add x0, x0, :lo12:.LANCHOR2 - ldr x2, [x0,3616] - ldrh w0, [x2,x1] - cmp w0, w25 - bcs .L2346 - add x1, x2, x1 - ubfiz x0, x0, 2, 16 - ldr x2, [x29,136] - ldr w1, [x1,4] - str w1, [x2,x0] -.L2346: - add w5, w5, 1 - sxth w5, w5 - b .L2345 -.L2355: - mov w22, 0 -.L2376: - add x6, x26, :lo12:.LANCHOR0 - ldrh w0, [x6,2546] - cmp w22, w0 - bge .L2348 - ldr x0, [x29,120] - mov w1, 1 - mov w2, w1 - str x6, [x29,96] - ldrh w0, [x0] - orr w0, w22, w0, lsl 10 - str w0, [x21,4] - mov x0, x21 - bl FlashReadPages - ldr x6, [x29,96] - ldrb w0, [x6,72] - cbz w0, .L2349 - ldr x0, [x21,16] - ldr w2, [x0,12] - cbz w2, .L2349 - ldr x0, [x21,8] - ldrh w1, [x6,2554] - str x2, [x29,96] - bl js_hash - ldr x2, [x29,96] - cmp w2, w0 - beq .L2349 - mov w0, -1 - str w0, [x21] -.L2349: - ldr w0, [x21] - cmn w0, #1 - beq .L2350 - ldrh w0, [x20,8] - cmp w0, w25 - bcs .L2350 - ldrh w2, [x20] - ldrh w1, [x23,4] - cmp w2, w1 - bne .L2350 - ubfiz x0, x0, 2, 16 - ldr x2, [x29,136] - ldr w1, [x21,4] - str w1, [x2,x0] -.L2350: - add w5, w22, 1 - sxth w22, w5 - b .L2376 -.L2348: - add w19, w19, 1 - sxth w19, w19 - b .L2336 -.L2343: - mov x0, x23 +.L2310: + mov x0, x22 bl ftl_map_blk_gc - mov x0, x23 + mov x0, x22 bl ftl_map_blk_gc 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 x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] + ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 144 ret +.L2308: + ldrh w0, [x25] + mov w2, 1 + mov w1, w2 + orr w0, w26, w0, lsl 10 + str w0, [x19, 4] + mov x0, x19 + bl FlashReadPages + ldrb w0, [x27, 72] + cbz w0, .L2306 + ldr x0, [x19, 16] + ldr w6, [x0, 12] + cbz w6, .L2306 + ldrh w1, [x27, 2554] + ldr x0, [x19, 8] + bl js_hash + cmp w6, w0 + beq .L2306 + mov w0, -1 + str w0, [x19] +.L2306: + ldr w0, [x19] + cmn w0, #1 + beq .L2307 + ldrh w0, [x20, 8] + cmp w24, w0 + bls .L2307 + ldrh w2, [x20] + ldrh w1, [x22, 4] + cmp w2, w1 + bne .L2307 + ubfiz x0, x0, 2, 16 + ldr w1, [x19, 4] + str w1, [x21, x0] +.L2307: + add w26, w26, 1 + sxth w26, w26 + b .L2305 +.L2304: + ldr x0, [x29, 104] + mov w2, 1 + add x28, x0, :lo12:.LANCHOR2 + ldr x0, [x28, 3608] + str x0, [x25, 8] + lsl x0, x27, 1 + add x1, x23, x0 + str x1, [x29, 120] + ldrh w1, [x26, 2546] + ldrh w0, [x23, x0] + sub w1, w1, #1 + orr w0, w1, w0, lsl 10 + mov w1, w2 + str w0, [x25, 4] + mov x0, x25 + bl FlashReadPages + ldr w0, [x25] + cmn w0, #1 + beq .L2324 + ldrh w1, [x20] + ldrh w0, [x22, 4] + cmp w1, w0 + bne .L2324 + ldrh w1, [x20, 8] + mov w0, 64245 + cmp w1, w0 + beq .L2312 +.L2324: + mov w27, 0 + mov w28, -1 +.L2313: + ldrh w0, [x26, 2546] + cmp w27, w0 + bge .L2320 + ldr x0, [x29, 120] + mov w2, 1 + mov w1, w2 + ldrh w0, [x0] + orr w0, w27, w0, lsl 10 + str w0, [x25, 4] + mov x0, x25 + bl FlashReadPages + ldrb w0, [x26, 72] + cbz w0, .L2317 + ldr x0, [x25, 16] + ldr w7, [x0, 12] + cbz w7, .L2317 + ldrh w1, [x26, 2554] + ldr x0, [x25, 8] + bl js_hash + cmp w7, w0 + beq .L2317 + str w28, [x25] +.L2317: + ldr w0, [x25] + cmn w0, #1 + beq .L2318 + ldrh w0, [x20, 8] + cmp w24, w0 + bls .L2318 + ldrh w2, [x20] + ldrh w1, [x22, 4] + cmp w2, w1 + bne .L2318 + ubfiz x0, x0, 2, 16 + ldr w1, [x25, 4] + str w1, [x21, x0] +.L2318: + add w5, w27, 1 + sxth w27, w5 + b .L2313 +.L2312: + mov w0, 0 +.L2314: + ldrh w1, [x26, 2546] + sub w1, w1, #1 + cmp w0, w1 + blt .L2316 +.L2320: + add w19, w19, 1 + sxth w19, w19 + b .L2303 +.L2316: + ldr x2, [x28, 3608] + sbfiz x5, x0, 3, 32 + ldrh w1, [x2, x5] + cmp w24, w1 + bls .L2315 + add x2, x2, x5 + ubfiz x1, x1, 2, 16 + ldr w2, [x2, 4] + str w2, [x21, x1] +.L2315: + add w0, w0, 1 + sxth w0, w0 + b .L2314 .size FtlMapTblRecovery, .-FtlMapTblRecovery .align 2 .global FtlLoadVonderInfo .type FtlLoadVonderInfo, %function FtlLoadVonderInfo: - adrp x0, .LANCHOR4 adrp x1, .LANCHOR0 - add x0, x0, :lo12:.LANCHOR4 add x1, x1, :lo12:.LANCHOR0 stp x29, x30, [sp, -16]! - add x0, x0, 1768 + adrp x0, .LANCHOR4 + add x0, x0, :lo12:.LANCHOR4 + add x0, x0, 1776 add x29, sp, 0 - ldrh w2, [x1,2564] - strh w2, [x0,10] + ldrh w2, [x1, 2564] + strh w2, [x0, 10] mov w2, -3962 - strh w2, [x0,4] - ldrh w2, [x1,2590] - strh w2, [x0,8] - ldrh w2, [x1,2566] - ldr x1, [x1,2592] - str x1, [x0,16] + strh w2, [x0, 4] + ldrh w2, [x1, 2590] + strh w2, [x0, 8] + ldrh w2, [x1, 2566] + ldr x1, [x1, 2592] + str x1, [x0, 16] adrp x1, .LANCHOR2 add x1, x1, :lo12:.LANCHOR2 - strh w2, [x0,6] - ldr x2, [x1,3744] - str x2, [x0,24] - ldr x2, [x1,3736] - ldr x1, [x1,3752] - str x2, [x0,32] - str x1, [x0,40] + strh w2, [x0, 6] + ldr x2, [x1, 3736] + str x2, [x0, 24] + ldr x2, [x1, 3728] + ldr x1, [x1, 3744] + stp x2, x1, [x0, 32] bl FtlMapTblRecovery mov w0, 0 ldp x29, x30, [sp], 16 @@ -15454,7 +15150,7 @@ FtlLoadMapInfo: bl FtlL2PDataInit adrp x0, .LANCHOR2 add x0, x0, :lo12:.LANCHOR2 - add x0, x0, 3800 + add x0, x0, 3792 bl FtlMapTblRecovery mov w0, 0 ldp x29, x30, [sp], 16 @@ -15466,313 +15162,314 @@ FtlLoadMapInfo: FtlVendorPartWrite: stp x29, x30, [sp, -176]! add x29, sp, 0 - stp x23, x24, [sp,48] + stp x27, x28, [sp, 80] + mov w28, w0 + stp x23, x24, [sp, 48] + mov x27, x2 adrp x23, .LANCHOR0 - stp x25, x26, [sp,64] - mov w26, w0 + add w2, w0, w1 add x0, x23, :lo12:.LANCHOR0 - stp x19, x20, [sp,16] - stp x27, x28, [sp,80] - stp x21, x22, [sp,32] - mov w28, w1 - add w1, w26, w1 - ldrh w21, [x0,2552] - mov x25, x2 - ldrh w0, [x0,2540] - mov w20, -1 - cmp w1, w0 - bhi .L2380 - adrp x24, .LANCHOR4 - lsr w21, w26, w21 - add x24, x24, :lo12:.LANCHOR4 - mov w20, 0 - adrp x27, .LANCHOR2 - add x24, x24, 1768 -.L2381: - cbz w28, .L2380 - adrp x0, .LANCHOR2 - add x2, x0, :lo12:.LANCHOR2 - ldr x0, [x2,3752] - ldr w4, [x0,w21,uxtw 2] - add x0, x23, :lo12:.LANCHOR0 - ldrh w1, [x0,2550] - uxth w0, w28 - udiv w22, w26, w1 - msub w22, w22, w1, w26 - sub w19, w1, w22 - uxth w19, w19 - cmp w19, w28 - csel w19, w0, w19, hi - cmp w19, w1 - beq .L2383 - cbz w4, .L2383 - ldr x0, [x2,3632] - mov w1, 1 - str x0, [x29,128] - mov w2, w1 - add x0, x29, 120 - str w4, [x29,124] - str xzr, [x29,136] - bl FlashReadPages - b .L2384 -.L2383: - add x0, x27, :lo12:.LANCHOR2 - add x2, x23, :lo12:.LANCHOR0 - mov w1, 0 - ldr x0, [x0,3632] - ldrh w2, [x2,2554] - bl ftl_memset -.L2384: - add x5, x27, :lo12:.LANCHOR2 - lsl w4, w19, 9 - ubfiz x22, x22, 9, 16 - mov w2, w4 - mov x1, x25 - str x4, [x29,104] - ldr x0, [x5,3632] - sub w28, w28, w19 - str x5, [x29,96] - add w26, w26, w19 - add x0, x0, x22 - bl ftl_memcpy - ldr x5, [x29,96] - mov w1, w21 - mov x0, x24 - add w21, w21, 1 - ldr x2, [x5,3632] - bl FtlMapWritePage - cmn w0, #1 - ldr x4, [x29,104] - csinv w20, w20, wzr, ne - add x25, x25, w4, sxtw - b .L2381 -.L2380: - mov w0, w20 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] + stp x21, x22, [sp, 32] + stp x19, x20, [sp, 16] + mov w21, w1 + stp x25, x26, [sp, 64] + ldrh w1, [x0, 2540] + cmp w2, w1 + bhi .L2356 + ldrh w22, [x0, 2552] + adrp x25, .LANCHOR2 + add x25, x25, :lo12:.LANCHOR2 + mov w24, 0 + mov x26, x25 + lsr w22, w28, w22 +.L2350: + cbnz w21, .L2355 +.L2348: + mov w0, w24 + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] + ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 176 ret +.L2355: + ldr x0, [x25, 3744] + ldr w2, [x0, w22, uxtw 2] + add x0, x23, :lo12:.LANCHOR0 + ldrh w1, [x0, 2550] + and w0, w21, 65535 + udiv w20, w28, w1 + msub w20, w20, w1, w28 + sub w19, w1, w20 + and w19, w19, 65535 + cmp w21, w19 + csel w19, w0, w19, cc + cbz w2, .L2352 + cmp w19, w1 + beq .L2352 + ldr x0, [x26, 3624] + str w2, [x29, 124] + mov w2, 1 + stp x0, xzr, [x29, 128] + mov w1, w2 + add x0, x29, 120 + bl FlashReadPages +.L2353: + lsl w3, w19, 9 + ldr x0, [x26, 3624] + lsl w20, w20, 9 + mov w2, w3 + asr w20, w20, 2 + mov x1, x27 + str w3, [x29, 108] + add x0, x0, w20, sxtw 2 + bl ftl_memcpy + sub w21, w21, w19 + ldr x2, [x26, 3624] + adrp x0, .LANCHOR4 + add x0, x0, :lo12:.LANCHOR4 + mov w1, w22 + add x0, x0, 1776 + add w28, w28, w19 + add w22, w22, 1 + bl FtlMapWritePage + cmn w0, #1 + ldr w3, [x29, 108] + csinv w24, w24, wzr, ne + add x27, x27, w3, sxtw + b .L2350 +.L2352: + add x0, x23, :lo12:.LANCHOR0 + mov w1, 0 + ldrh w2, [x0, 2554] + ldr x0, [x26, 3624] + bl ftl_memset + b .L2353 +.L2356: + mov w24, -1 + b .L2348 .size FtlVendorPartWrite, .-FtlVendorPartWrite .align 2 .global Ftl_save_ext_data .type Ftl_save_ext_data, %function Ftl_save_ext_data: adrp x0, .LANCHOR2 - mov w1, 19539 add x0, x0, :lo12:.LANCHOR2 + mov w1, 19539 movk w1, 0x4654, lsl 16 - stp x29, x30, [sp, -16]! - add x2, x0, 856 - add x29, sp, 0 - ldr w3, [x0,856] + ldr w3, [x0, 848] cmp w3, w1 - bne .L2394 + bne .L2364 + stp x29, x30, [sp, -16]! + add x2, x0, 848 mov w1, 99 + add x29, sp, 0 movk w1, 0x5000, lsl 16 - str w1, [x2,4] - ldr w1, [x0,744] - str w1, [x2,88] - ldr w1, [x0,748] - str w1, [x2,92] - ldr w1, [x0,740] - str w1, [x2,8] - ldr w1, [x0,728] - str w1, [x2,12] - ldr w1, [x0,720] - str w1, [x2,16] - ldr w1, [x0,736] - str w1, [x2,20] - ldr w1, [x0,764] - str w1, [x2,28] - ldr w1, [x0,448] - str w1, [x2,32] - ldr w1, [x0,724] - str w1, [x2,36] - ldr w1, [x0,732] - str w1, [x2,40] - ldr w1, [x0,772] - str w1, [x2,44] - ldr w1, [x0,776] - str w1, [x2,48] - ldr w1, [x0,848] - ldr w0, [x0,3564] - str w1, [x2,60] + str w1, [x2, 4] + ldr w1, [x0, 744] + str w1, [x2, 88] + ldr w1, [x0, 748] + str w1, [x2, 92] + ldr w1, [x0, 740] + str w1, [x2, 8] + ldr w1, [x0, 728] + str w1, [x2, 12] + ldr w1, [x0, 720] + str w1, [x2, 16] + ldr w1, [x0, 736] + str w1, [x2, 20] + ldr w1, [x0, 764] + str w1, [x2, 28] + ldr w1, [x0, 448] + str w1, [x2, 32] + ldr w1, [x0, 724] + str w1, [x2, 36] + ldr w1, [x0, 732] + str w1, [x2, 40] + ldr w1, [x0, 772] + str w1, [x2, 44] + ldr w1, [x0, 776] + str w1, [x2, 48] + ldr w1, [x0, 1360] + ldr w0, [x0, 3556] + stp w1, w0, [x2, 60] mov w1, 1 - str w0, [x2,64] mov w0, 0 bl FtlVendorPartWrite -.L2394: ldp x29, x30, [sp], 16 ret +.L2364: + ret .size Ftl_save_ext_data, .-Ftl_save_ext_data .align 2 .global FtlEctTblFlush .type FtlEctTblFlush, %function FtlEctTblFlush: adrp x1, .LANCHOR0+2372 - adrp x2, .LANCHOR2 - stp x29, x30, [sp, -16]! - add x29, sp, 0 - ldr w3, [x1,#:lo12:.LANCHOR0+2372] - mov w1, 32 - cbz w3, .L2397 - add x3, x2, :lo12:.LANCHOR2 - ldr w3, [x3,776] - cmp w3, 39 + ldr w2, [x1, #:lo12:.LANCHOR0+2372] + adrp x1, .LANCHOR2 + cbz w2, .L2372 + add x2, x1, :lo12:.LANCHOR2 mov w3, 4 - csel w1, w1, w3, hi -.L2397: + ldr w2, [x2, 776] + cmp w2, 39 + mov w2, 32 + csel w2, w2, w3, hi +.L2368: adrp x3, .LANCHOR4 add x3, x3, :lo12:.LANCHOR4 - ldrh w4, [x3,1832] + ldrh w4, [x3, 1840] cmp w4, 31 - bhi .L2398 + bhi .L2369 add w4, w4, 1 - mov w1, 1 - strh w4, [x3,1832] -.L2398: - cbnz w0, .L2399 - add x0, x2, :lo12:.LANCHOR2 - ldr x3, [x0,3704] - ldr w0, [x3,20] - add w1, w1, w0 - ldr w0, [x3,16] - cmp w0, w1 - bcc .L2400 -.L2399: - add x2, x2, :lo12:.LANCHOR2 - ldr x0, [x2,3704] - ldr w1, [x0,16] - str w1, [x0,20] - mov w1, 17221 - movk w1, 0x4254, lsl 16 - str w1, [x0] - ldr x0, [x2,3704] - ldrh w1, [x2,3688] - str wzr, [x0,4] + mov w2, 1 + strh w4, [x3, 1840] +.L2369: + cbnz w0, .L2370 + add x0, x1, :lo12:.LANCHOR2 + ldr x0, [x0, 3696] + ldr w3, [x0, 20] + ldr w0, [x0, 16] + add w2, w2, w3 + cmp w0, w2 + bcc .L2375 +.L2370: + add x0, x1, :lo12:.LANCHOR2 + stp x29, x30, [sp, -16]! + add x29, sp, 0 + ldr x1, [x0, 3696] + ldr w2, [x1, 16] + str w2, [x1, 20] + mov w2, 17221 + movk w2, 0x4254, lsl 16 + str w2, [x1] + ldr x2, [x0, 3696] + ldrh w1, [x0, 3680] lsl w3, w1, 9 - str w3, [x0,12] - ldr w3, [x0,8] - ldr x2, [x2,3704] + str wzr, [x2, 4] + str w3, [x2, 12] + ldr w3, [x2, 8] add w3, w3, 1 - str w3, [x0,8] + str w3, [x2, 8] + ldr x2, [x0, 3696] mov w0, 64 bl FtlVendorPartWrite bl Ftl_save_ext_data -.L2400: mov w0, 0 ldp x29, x30, [sp], 16 ret +.L2372: + mov w2, 32 + b .L2368 +.L2375: + mov w0, 0 + ret .size FtlEctTblFlush, .-FtlEctTblFlush .align 2 .global FtlVendorPartRead .type FtlVendorPartRead, %function FtlVendorPartRead: - stp x29, x30, [sp, -208]! + stp x29, x30, [sp, -176]! + add w3, w0, w1 add x29, sp, 0 - stp x21, x22, [sp,32] + stp x21, x22, [sp, 32] mov w22, w1 + stp x23, x24, [sp, 48] adrp x1, .LANCHOR0 - stp x23, x24, [sp,48] mov w23, w0 add x0, x1, :lo12:.LANCHOR0 - stp x25, x26, [sp,64] - stp x19, x20, [sp,16] - stp x27, x28, [sp,80] - mov x26, x2 - add w3, w23, w22 - ldrh w2, [x0,2540] - str x1, [x29,136] + stp x25, x26, [sp, 64] + mov x25, x2 + stp x19, x20, [sp, 16] + stp x27, x28, [sp, 80] + str x1, [x29, 104] + ldrh w2, [x0, 2540] cmp w3, w2 - ldrh w20, [x0,2552] - mov w0, -1 - bhi .L2405 - adrp x27, .LANCHOR4 + bhi .L2386 + ldrh w21, [x0, 2552] + adrp x26, .LANCHOR2 + add x26, x26, :lo12:.LANCHOR2 + mov w24, 0 + mov x27, x26 + lsr w21, w23, w21 +.L2379: + cbnz w22, .L2385 +.L2377: + mov w0, w24 + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] + ldp x27, x28, [sp, 80] + ldp x29, x30, [sp], 176 + ret +.L2385: + ldr x0, [x26, 3744] + ldr w4, [x0, w21, uxtw 2] + ldr x0, [x29, 104] + add x0, x0, :lo12:.LANCHOR0 + ldrh w19, [x0, 2550] + and w0, w22, 65535 + udiv w20, w23, w19 + msub w20, w20, w19, w23 + sub w19, w19, w20 + and w19, w19, 65535 + cmp w22, w19 + csel w19, w0, w19, cc + lsl w28, w19, 9 + cbz w4, .L2381 + ldr x0, [x27, 3624] + mov w2, 1 + str w4, [x29, 96] + mov w1, w2 + str w4, [x29, 124] + stp x0, xzr, [x29, 128] + add x0, x29, 120 + bl FlashReadPages + adrp x3, .LANCHOR4 + add x3, x3, :lo12:.LANCHOR4 + ldr w0, [x29, 120] + ldr w4, [x29, 96] + cmn w0, #1 + ldr w0, [x3, 1712] + csinv w24, w24, wzr, ne + cmp w0, 256 + bne .L2383 + mov w2, w4 + mov w1, w21 + str x3, [x29, 96] adrp x0, .LC135 add x0, x0, :lo12:.LC135 - add x27, x27, :lo12:.LANCHOR4 - str x0, [x29,128] - lsr w20, w23, w20 - add x0, x27, 1768 - mov w21, 0 - str x0, [x29,120] -.L2406: - cbz w22, .L2414 - adrp x25, .LANCHOR2 - add x4, x25, :lo12:.LANCHOR2 - ldr x0, [x4,3752] - ldr w3, [x0,w20,uxtw 2] - ldr x0, [x29,136] - add x0, x0, :lo12:.LANCHOR0 - ldrh w19, [x0,2550] - uxth w0, w22 - udiv w24, w23, w19 - msub w24, w24, w19, w23 - sub w19, w19, w24 - uxth w19, w19 - cmp w19, w22 - csel w19, w0, w19, hi - lsl w28, w19, 9 - cbz w3, .L2408 - ldr x0, [x4,3632] - mov w1, 1 - str x0, [x29,160] - mov w2, w1 - add x0, x29, 152 - str w3, [x29,156] - str x3, [x29,104] - str x4, [x29,112] - str xzr, [x29,168] - bl FlashReadPages - ldr w0, [x29,152] - ldr x3, [x29,104] - cmn w0, #1 - ldr w0, [x27,1704] - csinv w21, w21, wzr, ne - cmp w0, 256 - bne .L2410 - ldr x0, [x29,128] - mov w1, w20 - mov w2, w3 bl printk - ldr x4, [x29,112] - mov w1, w20 - ldr x0, [x29,120] - ldr x2, [x4,3632] + ldr x3, [x29, 96] + mov w1, w21 + ldr x2, [x27, 3624] + add x0, x3, 1776 bl FtlMapWritePage -.L2410: - add x25, x25, :lo12:.LANCHOR2 - ubfiz x24, x24, 9, 16 - mov x0, x26 +.L2383: + ldr x1, [x27, 3624] + lsl w20, w20, 9 + asr w20, w20, 2 mov w2, w28 - ldr x1, [x25,3632] - add x1, x1, x24 + mov x0, x25 + add x1, x1, w20, sxtw 2 bl ftl_memcpy - b .L2411 -.L2408: - mov x0, x26 - mov w1, w3 - mov w2, w28 - bl ftl_memset -.L2411: - add w20, w20, 1 +.L2384: + add w21, w21, 1 sub w22, w22, w19 add w23, w23, w19 - add x26, x26, w28, sxtw - b .L2406 -.L2414: - mov w0, w21 -.L2405: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 208 - ret + add x25, x25, w28, sxtw + b .L2379 +.L2381: + mov w2, w28 + mov w1, 0 + mov x0, x25 + bl ftl_memset + b .L2384 +.L2386: + mov w24, -1 + b .L2377 .size FtlVendorPartRead, .-FtlVendorPartRead .align 2 .global FtlLoadEctTbl @@ -15781,31 +15478,31 @@ FtlLoadEctTbl: stp x29, x30, [sp, -32]! mov w0, 64 add x29, sp, 0 - str x19, [sp,16] + str x19, [sp, 16] adrp x19, .LANCHOR2 add x19, x19, :lo12:.LANCHOR2 - ldrh w1, [x19,3688] - ldr x2, [x19,3704] + ldrh w1, [x19, 3680] + ldr x2, [x19, 3696] bl FtlVendorPartRead - ldr x0, [x19,3704] + ldr x0, [x19, 3696] ldr w1, [x0] mov w0, 17221 movk w0, 0x4254, lsl 16 cmp w1, w0 - beq .L2416 - adrp x0, .LC75 + beq .L2389 adrp x1, .LC136 + adrp x0, .LC76 add x1, x1, :lo12:.LC136 - add x0, x0, :lo12:.LC75 + add x0, x0, :lo12:.LC76 bl printk - ldrh w2, [x19,3688] + ldr x0, [x19, 3696] mov w1, 0 - ldr x0, [x19,3704] + ldrh w2, [x19, 3680] lsl w2, w2, 9 bl ftl_memset -.L2416: +.L2389: mov w0, 0 - ldr x19, [sp,16] + ldr x19, [sp, 16] ldp x29, x30, [sp], 32 ret .size FtlLoadEctTbl, .-FtlLoadEctTbl @@ -15817,262 +15514,265 @@ Ftl_load_ext_data: mov w1, 1 mov w0, 0 add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] adrp x19, .LANCHOR2 - str x21, [sp,32] add x20, x19, :lo12:.LANCHOR2 - add x21, x20, 856 - mov x2, x21 + stp x21, x22, [sp, 32] + add x22, x20, 848 + mov w21, 19539 + mov x2, x22 bl FtlVendorPartRead - ldr w1, [x20,856] - mov w0, 19539 - movk w0, 0x4654, lsl 16 - cmp w1, w0 - beq .L2418 - mov x0, x21 - mov w1, 0 + ldr w0, [x20, 848] + movk w21, 0x4654, lsl 16 + cmp w0, w21 + beq .L2392 mov w2, 512 + mov w1, 0 + mov x0, x22 bl ftl_memset - mov w0, 19539 - movk w0, 0x4654, lsl 16 - str w0, [x20,856] -.L2418: + str w21, [x20, 848] +.L2392: add x0, x19, :lo12:.LANCHOR2 mov w2, 19539 movk w2, 0x4654, lsl 16 - ldr w3, [x0,856] + ldr w3, [x0, 848] cmp w3, w2 - bne .L2419 - ldr w2, [x0,944] - str w2, [x0,744] - ldr w2, [x0,948] - str w2, [x0,748] - ldr w2, [x0,864] - str w2, [x0,740] - ldr w2, [x0,868] - str w2, [x0,728] - ldr w2, [x0,872] - str w2, [x0,720] - ldr w2, [x0,876] - str w2, [x0,736] - ldr w2, [x0,884] - str w2, [x0,764] - ldr w2, [x0,888] - str w2, [x0,448] - ldr w2, [x0,892] - str w2, [x0,724] - ldr w2, [x0,896] - str w2, [x0,732] - ldr w2, [x0,900] - str w2, [x0,772] - ldr w1, [x0,916] - ldr w2, [x0,904] - str w2, [x0,776] - str w1, [x0,848] -.L2419: + bne .L2393 + ldr w2, [x0, 936] + str w2, [x0, 744] + ldr w2, [x0, 940] + str w2, [x0, 748] + ldr w2, [x0, 856] + str w2, [x0, 740] + ldr w2, [x0, 860] + str w2, [x0, 728] + ldr w2, [x0, 864] + str w2, [x0, 720] + ldr w2, [x0, 868] + str w2, [x0, 736] + ldr w2, [x0, 876] + str w2, [x0, 764] + ldr w2, [x0, 880] + str w2, [x0, 448] + ldr w2, [x0, 884] + str w2, [x0, 724] + ldr w2, [x0, 888] + str w2, [x0, 732] + ldr w2, [x0, 892] + ldr w1, [x0, 908] + str w2, [x0, 772] + ldr w2, [x0, 896] + str w1, [x0, 1360] + str w2, [x0, 776] +.L2393: add x0, x19, :lo12:.LANCHOR2 mov w1, 34661 movk w1, 0x1234, lsl 16 - add x0, x0, 856 adrp x20, .LANCHOR0 - ldr w2, [x0,68] - str wzr, [x0,2708] + add x0, x0, 848 + ldr w2, [x0, 68] + str wzr, [x0, 2708] cmp w2, w1 - bne .L2420 + bne .L2394 add x1, x20, :lo12:.LANCHOR0 - ldrb w2, [x1,204] - cbz w2, .L2421 - str wzr, [x0,68] + ldrb w2, [x1, 204] + cbz w2, .L2395 + str wzr, [x0, 68] bl Ftl_save_ext_data - b .L2420 -.L2421: - mov w0, 1 - str w0, [x1,2372] - adrp x0, .LC75 - adrp x1, .LC137 - add x0, x0, :lo12:.LC75 - add x1, x1, :lo12:.LC137 - bl printk -.L2420: +.L2394: add x19, x19, :lo12:.LANCHOR2 add x20, x20, :lo12:.LANCHOR0 - ldr x21, [sp,32] - ldrh w1, [x20,2536] - ldr w2, [x19,760] - ldr w0, [x19,764] - madd w0, w1, w2, w0 - ldrh w1, [x20,2480] + ldp x21, x22, [sp, 32] + ldr w1, [x19, 764] + ldrh w0, [x20, 2536] + ldr w2, [x19, 760] + madd w0, w0, w2, w1 + ldrh w1, [x20, 2480] udiv w0, w0, w1 - str w0, [x19,768] - ldp x19, x20, [sp,16] + str w0, [x19, 768] + ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 48 ret +.L2395: + mov w0, 1 + str w0, [x1, 2372] + adrp x1, .LC137 + adrp x0, .LC76 + add x1, x1, :lo12:.LC137 + add x0, x0, :lo12:.LC76 + bl printk + b .L2394 .size Ftl_load_ext_data, .-Ftl_load_ext_data .align 2 .global FtlMapBlkWriteDumpData .type FtlMapBlkWriteDumpData, %function FtlMapBlkWriteDumpData: + ldr w1, [x0, 56] + cbz w1, .L2404 stp x29, x30, [sp, -48]! + adrp x2, .LANCHOR2 + add x2, x2, :lo12:.LANCHOR2 add x29, sp, 0 - stp x19, x20, [sp,16] - str x21, [sp,32] - ldr w1, [x0,56] - ldrh w20, [x0,6] - ldr x4, [x0,40] - cbz w1, .L2422 - adrp x3, .LANCHOR2 - str wzr, [x0,56] - add x3, x3, :lo12:.LANCHOR2 - ldr w1, [x3,424] - cbnz w1, .L2422 - adrp x2, .LANCHOR4 - sub w20, w20, #1 - add x1, x2, :lo12:.LANCHOR4 + stp x19, x20, [sp, 16] + str x21, [sp, 32] + str wzr, [x0, 56] + ldr w1, [x2, 424] + ldrh w19, [x0, 6] + ldr x4, [x0, 40] + cbnz w1, .L2397 + adrp x1, .LANCHOR4 + add x3, x1, :lo12:.LANCHOR4 + sub w19, w19, #1 mov x21, x0 - uxth w20, w20 - ldr x0, [x3,3624] - ldr x3, [x3,3664] - add x1, x1, 1704 - str x3, [x1,16] - ubfiz x3, x20, 2, 16 - str x0, [x1,8] - mov x19, x2 - ldr w3, [x4,x3] - str w3, [x1,4] - cbz w3, .L2426 - mov x0, x1 - mov w1, 1 - mov w2, w1 + and w19, w19, 65535 + ldr x0, [x2, 3616] + ldr x2, [x2, 3656] + mov x20, x1 + str x2, [x3, 1728] + ubfiz x2, x19, 2, 16 + str x0, [x3, 1720] + add x3, x3, 1712 + ldr w2, [x4, x2] + str w2, [x3, 4] + cbz w2, .L2401 + mov w2, 1 + mov x0, x3 + mov w1, w2 bl FlashReadPages - b .L2427 -.L2426: - adrp x2, .LANCHOR0+2554 - mov w1, 255 - ldrh w2, [x2,#:lo12:.LANCHOR0+2554] - bl ftl_memset -.L2427: - add x2, x19, :lo12:.LANCHOR4 +.L2402: + add x1, x20, :lo12:.LANCHOR4 mov x0, x21 - mov w1, w20 - ldr x2, [x2,1712] + ldr x2, [x1, 1720] + mov w1, w19 bl FtlMapWritePage -.L2422: - ldp x19, x20, [sp,16] - ldr x21, [sp,32] +.L2397: + ldp x19, x20, [sp, 16] + ldr x21, [sp, 32] ldp x29, x30, [sp], 48 ret +.L2401: + adrp x1, .LANCHOR0+2554 + ldrh w2, [x1, #:lo12:.LANCHOR0+2554] + mov w1, 255 + bl ftl_memset + b .L2402 +.L2404: + ret .size FtlMapBlkWriteDumpData, .-FtlMapBlkWriteDumpData .align 2 .type FlashReadFacBbtData.part.17, %function FlashReadFacBbtData.part.17: stp x29, x30, [sp, -32]! - mov w3, 0 - adrp x4, .LANCHOR4 + adrp x3, .LANCHOR4 add x29, sp, 0 - str x19, [sp,16] - mov w7, 1 + str x19, [sp, 16] mov x19, x0 - cbnz w1, .L2431 -.L2433: - add x0, x4, :lo12:.LANCHOR4 - ldr w1, [x0,1636] - cmp w3, w1 - bcs .L2431 - ubfx x5, x3, 5, 11 - ldr x0, [x0,1600] - lsl x5, x5, 2 - lsl w6, w7, w3 - add w3, w3, 1 - ldr w1, [x0,x5] - uxth w3, w3 - orr w6, w1, w6 - str w6, [x0,x5] - b .L2433 -.L2431: - add x4, x4, :lo12:.LANCHOR4 - mov x0, x19 - ldr x1, [x4,1600] - bl ftl_memcpy - mov w2, 4 - adrp x0, .LC138 - mov x1, x19 - add x0, x0, :lo12:.LC138 - mov w3, w2 - bl rknand_print_hex - ldr x19, [sp,16] + cbnz w1, .L2408 + add x5, x3, :lo12:.LANCHOR4 mov w0, 0 + mov w7, 1 +.L2409: + ldr w1, [x5, 1644] + cmp w0, w1 + bcc .L2410 +.L2408: + add x3, x3, :lo12:.LANCHOR4 + mov x0, x19 + ldr x1, [x3, 1608] + bl ftl_memcpy + mov w3, 4 + mov x1, x19 + mov w2, w3 + adrp x0, .LC138 + add x0, x0, :lo12:.LC138 + bl rknand_print_hex + mov w0, 0 + ldr x19, [sp, 16] ldp x29, x30, [sp], 32 ret +.L2410: + ubfx x1, x0, 5, 11 + ldr x6, [x5, 1608] + lsl x1, x1, 2 + lsl w8, w7, w0 + add w0, w0, 1 + and w0, w0, 65535 + ldr w4, [x6, x1] + orr w4, w4, w8 + str w4, [x6, x1] + b .L2409 .size FlashReadFacBbtData.part.17, .-FlashReadFacBbtData.part.17 .align 2 .global FlashReadFacBbtData .type FlashReadFacBbtData, %function FlashReadFacBbtData: stp x29, x30, [sp, -144]! - adrp x4, .LANCHOR0 add x29, sp, 0 - add x4, x4, :lo12:.LANCHOR0 - stp x19, x20, [sp,16] - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] - mov x22, x0 + stp x23, x24, [sp, 48] mov w23, w1 - ldrh w0, [x4,190] + adrp x1, .LANCHOR0 + add x1, x1, :lo12:.LANCHOR0 + stp x19, x20, [sp, 16] + add x1, x1, 176 + stp x21, x22, [sp, 32] + mov x22, x0 + stp x25, x26, [sp, 64] mov w25, w2 - ldrh w3, [x4,188] - adrp x4, .LANCHOR4 - mov x21, x4 mov w26, 61664 - mul w3, w3, w0 - add x0, x4, :lo12:.LANCHOR4 - uxth w3, w3 - sub w20, w3, #1 - ldr x1, [x0,1600] - mul w24, w23, w3 - ldr x0, [x0,1656] - uxth w20, w20 - str x1, [x29,96] - sub w19, w3, #16 - str x0, [x29,104] -.L2436: + ldrh w0, [x1, 14] + ldrh w1, [x1, 12] + mul w0, w0, w1 + adrp x1, .LANCHOR4 + add x1, x1, :lo12:.LANCHOR4 + and w0, w0, 65535 + mov x21, x1 + sub w20, w0, #1 + sub w19, w0, #16 + ldr x2, [x1, 1608] + and w20, w20, 65535 + mul w24, w0, w23 + str x2, [x29, 96] + ldr x2, [x1, 1664] + str x2, [x29, 104] +.L2414: cmp w20, w19 - ble .L2444 + bgt .L2417 + mov w0, -1 + b .L2413 +.L2417: add w0, w20, w24 - mov w1, 1 + mov w2, 1 lsl w0, w0, 10 - mov w2, w1 - str w0, [x29,92] + mov w1, w2 + str w0, [x29, 92] add x0, x29, 88 bl FlashReadPages - ldr w0, [x29,88] + ldr w0, [x29, 88] cmn w0, #1 - beq .L2437 - add x0, x21, :lo12:.LANCHOR4 - ldr x0, [x0,1656] + beq .L2415 + ldr x0, [x21, 1664] ldrh w0, [x0] cmp w0, w26 - bne .L2437 - mov w0, w22 - cbz x22, .L2438 - mov x0, x22 - mov w1, w23 + bne .L2415 + cbz x22, .L2418 mov w2, w25 + mov w1, w23 + mov x0, x22 bl FlashReadFacBbtData.part.17 - b .L2438 -.L2437: - sub w20, w20, #1 - uxth w20, w20 - b .L2436 -.L2444: - mov w0, -1 -.L2438: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] +.L2413: + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] ldp x29, x30, [sp], 144 ret +.L2415: + sub w20, w20, #1 + and w20, w20, 65535 + b .L2414 +.L2418: + mov w0, 0 + b .L2413 .size FlashReadFacBbtData, .-FlashReadFacBbtData .align 2 .global FlashGetBadBlockList @@ -16080,261 +15780,255 @@ FlashReadFacBbtData: FlashGetBadBlockList: stp x29, x30, [sp, -48]! add x29, sp, 0 - str x21, [sp,32] + str x21, [sp, 32] mov x21, x0 adrp x0, .LANCHOR0+88 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] adrp x20, .LANCHOR4 - ldr x0, [x0,#:lo12:.LANCHOR0+88] - ldrb w2, [x0,13] - ldrh w19, [x0,14] - add x0, x20, :lo12:.LANCHOR4 - mul w19, w2, w19 - ldr x0, [x0,1648] - uxth w19, w19 + add x20, x20, :lo12:.LANCHOR4 + ldr x0, [x0, #:lo12:.LANCHOR0+88] + ldrb w2, [x0, 13] + ldrh w19, [x0, 14] + ldr x0, [x20, 1656] + mul w19, w19, w2 + and w19, w19, 65535 add w2, w19, 7 lsr w2, w2, 3 bl FlashReadFacBbtData cmn w0, #1 - bne .L2446 -.L2450: - mov w1, 0 - b .L2447 -.L2446: - mov w2, 0 - lsr w0, w19, 4 - mov w1, w2 - sub w19, w19, #1 - mov w5, 1 -.L2448: - cmp w2, w19 - bge .L2447 - add x3, x20, :lo12:.LANCHOR4 - ubfx x4, x2, 5, 11 - ldr x6, [x3,1648] - lsl w3, w5, w2 - ldr w4, [x6,x4,lsl 2] - tst w3, w4 - beq .L2449 - add w3, w1, 1 - ubfiz x1, x1, 1, 16 - strh w2, [x21,x1] - uxth w1, w3 -.L2449: - cmp w1, w0 - bcs .L2450 - add w2, w2, 1 - uxth w2, w2 - b .L2448 -.L2447: - ubfiz x1, x1, 1, 16 - mov w0, -1 - ldp x19, x20, [sp,16] - strh w0, [x21,x1] + bne .L2424 +.L2428: mov w0, 0 - ldr x21, [sp,32] +.L2425: + ubfiz x0, x0, 1, 16 + mov w1, -1 + strh w1, [x21, x0] + mov w0, 0 + ldp x19, x20, [sp, 16] + ldr x21, [sp, 32] ldp x29, x30, [sp], 48 ret +.L2424: + lsr w4, w19, 4 + sub w19, w19, #1 + mov w1, 0 + mov w0, 0 + mov w5, 1 +.L2426: + cmp w1, w19 + bge .L2425 + ldr x6, [x20, 1656] + ubfx x3, x1, 5, 11 + lsl w2, w5, w1 + ldr w3, [x6, x3, lsl 2] + tst w2, w3 + beq .L2427 + add w2, w0, 1 + ubfiz x0, x0, 1, 16 + strh w1, [x21, x0] + and w0, w2, 65535 +.L2427: + cmp w0, w4 + bcs .L2428 + add w1, w1, 1 + and w1, w1, 65535 + b .L2426 .size FlashGetBadBlockList, .-FlashGetBadBlockList .align 2 .global FtlMakeBbt .type FtlMakeBbt, %function FtlMakeBbt: stp x29, x30, [sp, -112]! + adrp x0, .LANCHOR2 + add x1, x0, :lo12:.LANCHOR2 add x29, sp, 0 - stp x23, x24, [sp,48] - adrp x23, .LANCHOR2 - add x0, x23, :lo12:.LANCHOR2 - stp x19, x20, [sp,16] - stp x21, x22, [sp,32] - stp x25, x26, [sp,64] - stp x27, x28, [sp,80] - ldr w21, [x0,424] - cbnz w21, .L2456 - adrp x19, .LANCHOR0 - adrp x20, .LANCHOR4 - add x24, x19, :lo12:.LANCHOR0 - add x20, x20, :lo12:.LANCHOR4 - add x24, x24, 2624 - add x20, x20, 1704 - mov x25, x24 - mov x26, x20 + 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] + str x0, [x29, 104] + ldr w23, [x1, 424] + cbnz w23, .L2435 bl FtlBbtMemInit + adrp x20, .LANCHOR0 bl FtlLoadFactoryBbt -.L2457: - add x22, x19, :lo12:.LANCHOR0 - ldrh w0, [x22,2494] + add x22, x20, :lo12:.LANCHOR0 + adrp x0, .LANCHOR4 + add x24, x0, :lo12:.LANCHOR4 + add x26, x22, 2656 + add x24, x24, 1712 + add x22, x22, 2636 +.L2436: + add x19, x20, :lo12:.LANCHOR0 + ldrh w0, [x19, 2494] + cmp w23, w0 + bcc .L2442 + mov w21, 0 +.L2443: + ldrh w0, [x19, 2558] + cmp w0, w21 + bhi .L2444 + add x19, x19, 2624 + ldrh w21, [x19, 12] + mov w22, 65535 + sub w21, w21, #1 + and w21, w21, 65535 +.L2445: + ldrh w0, [x19, 12] + sub w0, w0, #48 cmp w21, w0 - bcs .L2475 - add x1, x23, :lo12:.LANCHOR2 - ldrh w28, [x25,12] - ldr x0, [x1,3616] - ldr x27, [x1,3664] - mov w1, 65535 - str x0, [x20,8] - cmp w28, w1 - str x27, [x20,16] - beq .L2458 - ldrh w0, [x22,2542] - mov w1, 1 - mov w2, w1 - madd w28, w21, w0, w28 + ble .L2449 + mov w0, w21 + bl FtlBbmIsBadBlock + cmp w0, 1 + beq .L2446 + mov w0, w21 + bl FlashTestBlk + cbz w0, .L2447 + mov w0, w21 + bl FtlBbmMapBadBlock +.L2446: + sub w21, w21, #1 + and w21, w21, 65535 + b .L2445 +.L2442: + ldr x0, [x29, 104] + adrp x1, .LANCHOR4 + add x21, x1, :lo12:.LANCHOR4 + ldrh w1, [x22] + add x25, x0, :lo12:.LANCHOR2 + add x21, x21, 1712 + mov w2, 65535 + cmp w1, w2 + ldr x0, [x25, 3608] + ldr x27, [x25, 3656] + stp x0, x27, [x21, 8] + beq .L2437 + ldrh w4, [x19, 2542] + mov w2, 1 + madd w28, w4, w23, w1 + mov w1, w2 lsl w0, w28, 10 - str w0, [x20,4] - mov x0, x20 + str w0, [x21, 4] + mov x0, x21 bl FlashReadPages - ldrh w2, [x22,2542] - ldr x0, [x24,32] + ldr x1, [x21, 8] + ldr x0, [x26] + ldrh w2, [x19, 2542] add w2, w2, 7 - ldr x1, [x20,8] lsr w2, w2, 3 bl ftl_memcpy - b .L2459 -.L2458: - mov w1, w21 +.L2438: + mov w0, w28 + add w23, w23, 1 + bl FtlBbmMapBadBlock + add x26, x26, 8 + add x22, x22, 2 + b .L2436 +.L2437: + mov w1, w23 bl FlashGetBadBlockList - ldr x0, [x20,8] - ldr x1, [x24,32] + ldr x0, [x21, 8] + ldr x1, [x26] bl FtlBbt2Bitmap - ldrh w22, [x22,2542] -.L2461: - sub w22, w22, #1 - uxth w22, w22 -.L2460: - add x28, x19, :lo12:.LANCHOR0 - ldrh w0, [x28,2542] - madd w0, w21, w0, w22 + ldrh w21, [x19, 2542] +.L2440: + sub w21, w21, #1 + and w21, w21, 65535 +.L2439: + ldrh w0, [x19, 2542] + madd w0, w23, w0, w21 bl FtlBbmIsBadBlock cmp w0, 1 - beq .L2461 - add x3, x23, :lo12:.LANCHOR2 - mov w1, 0 + beq .L2440 + ldr x0, [x25, 3656] mov w2, 16 - strh w22, [x25,12] - str x3, [x29,104] - ldr x0, [x3,3664] + strh w21, [x22] + mov w1, 0 bl ftl_memset - str wzr, [x27,4] + str wzr, [x27, 4] mov w0, -3872 strh w0, [x27] - ldr x3, [x29,104] - ldrh w0, [x25,12] - strh w0, [x27,2] - ldrh w0, [x28,2542] - ldrh w1, [x25,12] - ldrh w2, [x3,3792] - madd w28, w21, w0, w1 - ldr x1, [x24,32] + ldrh w0, [x22] + strh w0, [x27, 2] + ldrh w4, [x19, 2542] + ldrh w0, [x22] + ldr x1, [x26] + ldrh w2, [x25, 3784] + madd w28, w4, w23, w0 lsl w2, w2, 2 lsl w0, w28, 10 - str w0, [x26,4] - ldr x0, [x26,8] + str w0, [x24, 4] + ldr x0, [x24, 8] bl ftl_memcpy - mov w1, 1 - mov x0, x26 - mov w2, w1 + mov w2, 1 + mov x0, x24 + mov w1, w2 bl FlashEraseBlocks - mov w1, 1 - mov x0, x26 - mov w2, w1 - mov w3, w1 + mov w3, 1 + mov x0, x24 + mov w2, w3 + mov w1, w3 bl FlashProgPages - ldr w0, [x26] + ldr w0, [x24] cmn w0, #1 - bne .L2459 + bne .L2438 mov w0, w28 bl FtlBbmMapBadBlock - b .L2460 -.L2459: - mov w0, w28 + b .L2439 +.L2444: + mov w0, w21 add w21, w21, 1 - add x24, x24, 8 - add x25, x25, 2 bl FtlBbmMapBadBlock - b .L2457 -.L2475: - mov w20, 0 -.L2464: - add x21, x19, :lo12:.LANCHOR0 - ldrh w0, [x21,2558] - cmp w0, w20 - bls .L2476 - mov w0, w20 - add w20, w20, 1 - bl FtlBbmMapBadBlock - uxth w20, w20 - b .L2464 -.L2476: - ldrh w20, [x21,2636] - mov w24, 65535 - sub w20, w20, #1 - uxth w20, w20 -.L2466: - add x22, x21, 2624 - ldrh w0, [x22,12] - sub w0, w0, #48 - cmp w20, w0 - ble .L2470 - mov w0, w20 - bl FtlBbmIsBadBlock - cmp w0, 1 - beq .L2467 - mov w0, w20 - bl FlashTestBlk - cbz w0, .L2468 - mov w0, w20 - bl FtlBbmMapBadBlock - b .L2467 -.L2468: - ldrh w0, [x21,2624] - cmp w0, w24 - bne .L2469 - strh w20, [x21,2624] - b .L2467 -.L2469: - strh w20, [x22,4] - b .L2470 -.L2467: - sub w20, w20, #1 - uxth w20, w20 - b .L2466 -.L2470: - add x23, x23, :lo12:.LANCHOR2 - add x19, x19, :lo12:.LANCHOR0 - mov w2, 2 - ldr x1, [x23,432] - ldrh w0, [x19,2624] - str wzr, [x19,2632] - lsl w0, w0, 10 - str w0, [x1,4] - strh wzr, [x19,2626] - ldr x0, [x23,432] - ldrh w1, [x19,2628] + and w21, w21, 65535 + b .L2443 +.L2447: + ldrh w0, [x19] + cmp w0, w22 + bne .L2448 + strh w21, [x19] + b .L2446 +.L2448: + strh w21, [x19, 4] +.L2449: + ldr x0, [x29, 104] + add x20, x20, :lo12:.LANCHOR0 + add x0, x0, :lo12:.LANCHOR2 + ldrh w1, [x20, 2624] + str wzr, [x20, 2632] + ldr x2, [x0, 432] lsl w1, w1, 10 - str w1, [x0,60] + strh wzr, [x20, 2626] + str w1, [x2, 4] + mov w2, 2 + ldr x0, [x0, 432] + ldrh w1, [x20, 2628] + lsl w1, w1, 10 + str w1, [x0, 60] mov w1, 1 bl FlashEraseBlocks - ldrh w0, [x19,2624] + ldrh w0, [x20, 2624] bl FtlBbmMapBadBlock - ldrh w0, [x19,2628] + ldrh w0, [x20, 2628] bl FtlBbmMapBadBlock bl FtlBbmTblFlush - strh wzr, [x19,2626] - ldr w0, [x19,2632] - ldrh w1, [x19,2628] + strh wzr, [x20, 2626] + ldr w0, [x20, 2632] + ldrh w1, [x20, 2628] add w0, w0, 1 - str w0, [x19,2632] - ldrh w0, [x19,2624] - strh w0, [x19,2628] - strh w1, [x19,2624] + str w0, [x20, 2632] + ldrh w0, [x20, 2624] + strh w0, [x20, 2628] + strh w1, [x20, 2624] bl FtlBbmTblFlush -.L2456: +.L2435: + ldp x19, x20, [sp, 16] 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 x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] + ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 112 ret .size FtlMakeBbt, .-FtlMakeBbt @@ -16344,193 +16038,192 @@ FtlMakeBbt: log2phys: stp x29, x30, [sp, -128]! add x29, sp, 0 - stp x21, x22, [sp,32] + 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] - stp x25, x26, [sp,64] - stp x27, x28, [sp,80] - ldr w4, [x3,2616] - ldrh w27, [x3,2552] + stp x19, x20, [sp, 16] + stp x23, x24, [sp, 48] + stp x25, x26, [sp, 64] + stp x27, x28, [sp, 80] + ldr w4, [x3, 2616] cmp w0, w4 - bcs .L2478 - add w27, w27, 7 + bcs .L2456 + ldrh w27, [x3, 2552] + mov w25, w0 adrp x20, .LANCHOR2 + str x1, [x29, 120] + add w27, w27, 7 + ldrh w1, [x3, 2582] + str w2, [x29, 116] lsr w24, w0, w27 - str w0, [x29,116] add x0, x20, :lo12:.LANCHOR2 - str w2, [x29,112] - mov x26, x1 - uxth w23, w24 - ldrh w2, [x3,2582] - ldr x22, [x0,704] + and w23, w24, 65535 + ldr x8, [x0, 704] mov x0, 0 - b .L2479 -.L2478: - mov w0, -1 - cbnz w2, .L2480 - str w0, [x1] - b .L2480 -.L2484: - add x0, x0, 1 - add x3, x22, x0, lsl 4 - ldrh w3, [x3,-16] - cmp w3, w23 - beq .L2481 -.L2479: - uxth x19, w0 - cmp w19, w2 - bcc .L2484 +.L2457: + and x19, x0, 65535 + cmp w19, w1 + bcc .L2462 bl select_l2p_ram_region - uxth x19, w0 + and x19, x0, 65535 ubfiz x21, x19, 4, 16 - mov w1, 65535 - add x2, x22, x21 - ldrh w3, [x22,x21] - cmp w3, w1 - bne .L2492 -.L2485: + mov w2, 65535 + add x1, x8, x21 + ldrh w3, [x8, x21] + cmp w3, w2 + beq .L2463 + ldr w1, [x1, 4] + tbz w1, #31, .L2463 + bl flush_l2p_region +.L2463: add x28, x20, :lo12:.LANCHOR2 ubfiz x0, x23, 2, 16 - ldr x1, [x28,3760] - ldr w25, [x1,x0] - cbnz w25, .L2486 - ldr x1, [x29,120] - ldr x0, [x28,704] - add x22, x1, :lo12:.LANCHOR0 + ldr x1, [x28, 3752] + ldr w3, [x1, x0] + cbnz w3, .L2464 + ldr x0, [x28, 704] + add x22, x22, :lo12:.LANCHOR0 mov w1, 255 add x0, x0, x21 - ldrh w2, [x22,2554] - ldr x0, [x0,8] + ldrh w2, [x22, 2554] + ldr x0, [x0, 8] bl ftl_memset - ldr x0, [x28,704] - strh w23, [x0,x21] - ldr x0, [x28,704] + ldr x0, [x28, 704] + strh w23, [x0, x21] + ldr x0, [x28, 704] add x21, x0, x21 - str w25, [x21,4] -.L2481: - 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, .L2482 - add x0, x20, :lo12:.LANCHOR2 - ldr x0, [x0,704] - add x0, x0, x19, lsl 4 - ldr x0, [x0,8] - ldr w0, [x0,x25,lsl 2] - str w0, [x26] - b .L2483 -.L2482: - add x1, x20, :lo12:.LANCHOR2 - lsl x0, x19, 4 - ldr w3, [x26] - ldr x2, [x1,704] - add x2, x2, x0 - ldr x2, [x2,8] - str w3, [x2,x25,lsl 2] - strh w23, [x1,712] - ldr x2, [x1,704] - add x0, x2, x0 - ldr w2, [x0,4] - orr w2, w2, -2147483648 - str w2, [x0,4] -.L2483: - add x20, x20, :lo12:.LANCHOR2 - ldr x0, [x20,704] - add x19, x0, x19, lsl 4 - mov w0, 0 - ldr w1, [x19,4] - cmn w1, #1 - beq .L2480 - add w1, w1, 1 - str w1, [x19,4] - b .L2480 -.L2492: - ldr w1, [x2,4] - tbz w1, #31, .L2485 - bl flush_l2p_region - b .L2485 -.L2486: - ldr x0, [x28,704] - adrp x6, .LANCHOR4 - add x6, x6, :lo12:.LANCHOR4 - mov w1, 1 - add x0, x0, x21 - add x22, x6, 1704 - mov w2, w1 - str x6, [x29,104] - str w25, [x6,1708] - ldr x0, [x0,8] - str x0, [x6,1712] - ldr x0, [x28,3664] - str x0, [x6,1720] - mov x0, x22 - bl FlashReadPages - ldr x0, [x22,16] - ldr x6, [x29,104] - ldrh w0, [x0,8] - cmp w0, w23 - beq .L2487 - adrp x0, .LC139 - uxth w1, w24 - mov w2, w25 - add x0, x0, :lo12:.LC139 - bl printk - ldr x1, [x22,16] - mov w2, 4 - adrp x0, .LC100 - mov w3, w2 - add x0, x0, :lo12:.LC100 - bl rknand_print_hex - ldr x0, [x29,120] - mov w2, 4 - ldr x1, [x28,3760] - add x22, x0, :lo12:.LANCHOR0 - adrp x0, .LC140 - add x0, x0, :lo12:.LC140 - ldrh w3, [x22,2580] - bl rknand_print_hex - mov w0, 1 - str w0, [x28,424] - b .L2488 -.L2487: - ldr w0, [x6,1704] - cmp w0, 256 - bne .L2488 - and w24, w24, 65535 - adrp x0, .LC141 - mov w1, w24 - mov w2, w25 - add x0, x0, :lo12:.LC141 - bl printk - ldr x2, [x28,704] - add x0, x28, 3800 - mov w1, w24 - add x2, x2, x21 - ldr x2, [x2,8] - bl FtlMapWritePage -.L2488: - add x1, x20, :lo12:.LANCHOR2 - ldr x0, [x1,704] - add x0, x0, x21 - str wzr, [x0,4] - ldr x0, [x1,704] - strh w23, [x0,x21] - b .L2481 -.L2480: - 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] + str wzr, [x21, 4] + b .L2459 +.L2456: + mov w0, -1 + cbnz w2, .L2455 + str w0, [x1] +.L2455: + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] + ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 128 ret +.L2462: + add x0, x0, 1 + add x2, x8, x0, lsl 4 + ldrh w2, [x2, -16] + cmp w2, w23 + bne .L2457 +.L2459: + mov x0, 1 + lsl x27, x0, x27 + ldr w0, [x29, 116] + sub w27, w27, #1 + and w25, w27, w25 + and x25, x25, 65535 + cbnz w0, .L2460 + add x0, x20, :lo12:.LANCHOR2 + ldr x1, [x29, 120] + ldr x0, [x0, 704] + add x0, x0, x19, lsl 4 + ldr x0, [x0, 8] + ldr w0, [x0, x25, lsl 2] + str w0, [x1] +.L2461: + add x20, x20, :lo12:.LANCHOR2 + ldr x0, [x20, 704] + add x19, x0, x19, lsl 4 + ldr w0, [x19, 4] + cmn w0, #1 + beq .L2468 + add w0, w0, 1 + str w0, [x19, 4] +.L2468: + mov w0, 0 + b .L2455 +.L2460: + add x2, x20, :lo12:.LANCHOR2 + ldr x1, [x29, 120] + lsl x0, x19, 4 + ldr x3, [x2, 704] + ldr w4, [x1] + mov x1, x0 + add x0, x3, x0 + ldr x0, [x0, 8] + str w4, [x0, x25, lsl 2] + strh w23, [x2, 712] + ldr x0, [x2, 704] + add x0, x0, x1 + ldr w1, [x0, 4] + orr w1, w1, -2147483648 + str w1, [x0, 4] + b .L2461 +.L2464: + ldr x0, [x28, 704] + adrp x6, .LANCHOR4 + add x6, x6, :lo12:.LANCHOR4 + mov w2, 1 + add x0, x0, x21 + add x26, x6, 1712 + str x6, [x29, 104] + mov w1, w2 + str w3, [x6, 1716] + ldr x0, [x0, 8] + str x0, [x6, 1720] + ldr x0, [x28, 3656] + str x0, [x6, 1728] + mov x0, x26 + str w3, [x29, 112] + bl FlashReadPages + ldr x0, [x26, 16] + ldr w3, [x29, 112] + ldr x6, [x29, 104] + ldrh w0, [x0, 8] + cmp w0, w23 + beq .L2465 + mov w2, w3 + and w1, w24, 65535 + adrp x0, .LC139 + add x0, x0, :lo12:.LC139 + bl printk + add x22, x22, :lo12:.LANCHOR0 + ldr x1, [x26, 16] + mov w3, 4 + adrp x0, .LC100 + mov w2, w3 + add x0, x0, :lo12:.LC100 + bl rknand_print_hex + ldrh w3, [x22, 2580] + mov w2, 4 + ldr x1, [x28, 3752] + adrp x0, .LC140 + add x0, x0, :lo12:.LC140 + bl rknand_print_hex + mov w0, 1 + str w0, [x28, 424] +.L2466: + add x1, x20, :lo12:.LANCHOR2 + ldr x0, [x1, 704] + add x0, x0, x21 + str wzr, [x0, 4] + ldr x0, [x1, 704] + strh w23, [x0, x21] + b .L2459 +.L2465: + ldr w0, [x6, 1712] + cmp w0, 256 + bne .L2466 + and w24, w24, 65535 + mov w2, w3 + mov w1, w24 + adrp x0, .LC141 + add x0, x0, :lo12:.LC141 + bl printk + ldr x0, [x28, 704] + mov w1, w24 + add x0, x0, x21 + ldr x2, [x0, 8] + add x0, x28, 3792 + bl FtlMapWritePage + b .L2466 .size log2phys, .-log2phys .align 2 .global FtlWriteDumpData @@ -16538,104 +16231,103 @@ log2phys: FtlWriteDumpData: stp x29, x30, [sp, -144]! add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] adrp x19, .LANCHOR2 - str x25, [sp,64] - stp x23, x24, [sp,48] + stp x23, x24, [sp, 48] add x23, x19, :lo12:.LANCHOR2 - stp x21, x22, [sp,32] - ldr w0, [x23,424] - cbnz w0, .L2493 - ldrh w2, [x23,564] - cbz w2, .L2495 - ldrb w1, [x23,568] - cbnz w1, .L2495 + stp x21, x22, [sp, 32] + str x25, [sp, 64] + ldr w0, [x23, 424] + cbnz w0, .L2471 + ldrh w2, [x23, 564] + cbz w2, .L2473 + ldrb w1, [x23, 568] + cbnz w1, .L2473 adrp x21, .LANCHOR0 - ldrb w1, [x23,567] add x21, x21, :lo12:.LANCHOR0 - ldrh w3, [x21,2544] + ldrb w1, [x23, 567] + ldrh w3, [x21, 2544] mul w1, w1, w3 cmp w2, w1 - beq .L2495 - ldrb w24, [x23,570] - ldr w22, [x21,2616] - ldrh w25, [x21,2472] - cbnz w24, .L2493 - sub w22, w22, #1 + beq .L2473 + ldrb w0, [x23, 570] + cbnz w0, .L2471 + ldr w22, [x21, 2616] add x1, x29, 84 - mov w0, w22 - mov w2, w24 - bl log2phys - ldr x20, [x23,3664] - ldr w0, [x29,84] - ldr x1, [x23,3616] - str w0, [x29,92] - cmn w0, #1 - str w22, [x29,112] - str x1, [x29,96] - str x20, [x29,104] - str w24, [x20,4] - beq .L2497 - add x0, x29, 88 - mov w1, 1 - mov w2, w24 - bl FlashReadPages - b .L2498 -.L2497: - ldr x0, [x23,3616] - mov w1, 255 - ldrh w2, [x21,2554] - bl ftl_memset -.L2498: - add x24, x19, :lo12:.LANCHOR2 - mov w0, -3947 - lsl w25, w25, 2 - strh w0, [x20] - mov w23, 0 - add x21, x24, 560 -.L2499: - cmp w23, w25 - beq .L2500 - ldrh w0, [x21,4] - cbz w0, .L2500 - ldr w0, [x29,92] - add w23, w23, 1 - str w0, [x20,12] - ldrh w0, [x21] - strh w0, [x20,2] - mov x0, x21 - str w22, [x20,8] - bl get_new_active_ppa - str w0, [x29,92] - ldr w1, [x24,756] + ldrh w24, [x21, 2472] + mov w2, 0 + sub w22, w22, #1 + mov w0, w22 + bl log2phys + ldr x20, [x23, 3656] + ldr w0, [x29, 84] + ldr x1, [x23, 3608] + str w0, [x29, 92] + cmn w0, #1 + stp x1, x20, [x29, 96] + str w22, [x29, 112] + str wzr, [x20, 4] + beq .L2475 mov w2, 0 - str w1, [x20,4] - mov w3, w2 - add w1, w1, 1 - add x0, x29, 88 - cmn w1, #1 - csel w1, w1, wzr, ne - str w1, [x24,756] mov w1, 1 + add x0, x29, 88 + bl FlashReadPages +.L2476: + add x25, x19, :lo12:.LANCHOR2 + lsl w24, w24, 2 + add x21, x25, 560 + mov w0, -3947 + mov w23, 0 + strh w0, [x20] +.L2477: + cmp w24, w23 + bne .L2481 +.L2478: + add x19, x19, :lo12:.LANCHOR2 + mov w0, 1 + strb w0, [x19, 570] +.L2471: + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldr x25, [sp, 64] + ldp x29, x30, [sp], 144 + ret +.L2475: + ldrh w2, [x21, 2554] + mov w1, 255 + ldr x0, [x23, 3608] + bl ftl_memset + b .L2476 +.L2481: + ldrh w0, [x21, 4] + cbz w0, .L2478 + ldr w0, [x29, 92] + add w23, w23, 1 + stp w22, w0, [x20, 8] + ldrh w0, [x21] + strh w0, [x20, 2] + mov x0, x21 + bl get_new_active_ppa + str w0, [x29, 92] + ldr w0, [x25, 756] + mov w3, 0 + str w0, [x20, 4] + mov w2, 0 + add w0, w0, 1 + mov w1, 1 + cmn w0, #1 + csel w0, w0, wzr, ne + str w0, [x25, 756] + add x0, x29, 88 bl FlashProgPages ldrh w0, [x21] bl decrement_vpc_count - b .L2499 -.L2500: + b .L2477 +.L2473: add x19, x19, :lo12:.LANCHOR2 - mov w0, 1 - strb w0, [x19,570] - b .L2493 -.L2495: - add x19, x19, :lo12:.LANCHOR2 - strb wzr, [x19,570] -.L2493: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldr x25, [sp,64] - ldp x29, x30, [sp], 144 - ret + strb wzr, [x19, 570] + b .L2471 .size FtlWriteDumpData, .-FtlWriteDumpData .align 2 .global l2p_flush @@ -16643,35 +16335,35 @@ FtlWriteDumpData: l2p_flush: stp x29, x30, [sp, -48]! add x29, sp, 0 - stp x19, x20, [sp,16] - str x21, [sp,32] - mov w19, 0 + stp x19, x20, [sp, 16] adrp x20, .LANCHOR0 + str x21, [sp, 32] + add x20, x20, :lo12:.LANCHOR0 adrp x21, .LANCHOR2 + add x21, x21, :lo12:.LANCHOR2 + mov w19, 0 bl FtlWriteDumpData -.L2511: - add x0, x20, :lo12:.LANCHOR0 - ldrh w0, [x0,2582] +.L2490: + ldrh w0, [x20, 2582] cmp w0, w19 - bls .L2514 - add x1, x21, :lo12:.LANCHOR2 - ubfiz x0, x19, 4, 16 - ldr x1, [x1,704] - add x0, x1, x0 - ldr w0, [x0,4] - tbz w0, #31, .L2512 - mov w0, w19 - bl flush_l2p_region -.L2512: - add w19, w19, 1 - uxth w19, w19 - b .L2511 -.L2514: + bhi .L2492 mov w0, 0 - ldr x21, [sp,32] - ldp x19, x20, [sp,16] + ldr x21, [sp, 32] + ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 48 ret +.L2492: + ldr x1, [x21, 704] + ubfiz x0, x19, 4, 16 + add x0, x1, x0 + ldr w0, [x0, 4] + tbz w0, #31, .L2491 + mov w0, w19 + bl flush_l2p_region +.L2491: + add w19, w19, 1 + and w19, w19, 65535 + b .L2490 .size l2p_flush, .-l2p_flush .align 2 .global allocate_new_data_superblock @@ -16679,330 +16371,315 @@ l2p_flush: allocate_new_data_superblock: stp x29, x30, [sp, -48]! add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] adrp x19, .LANCHOR2 - str x21, [sp,32] add x2, x19, :lo12:.LANCHOR2 + str x21, [sp, 32] + ldr w1, [x2, 424] + cbnz w1, .L2495 ldrh w20, [x0] - ldr w1, [x2,424] - cbnz w1, .L2516 mov x21, x0 mov w0, 65535 cmp w20, w0 - beq .L2517 + beq .L2496 + ldr x0, [x2, 520] ubfiz x1, x20, 1, 16 - ldr x0, [x2,520] - ldrh w0, [x0,x1] - cbz w0, .L2518 + ldrh w0, [x0, x1] + cbz w0, .L2497 mov w0, w20 bl INSERT_DATA_LIST - b .L2517 -.L2518: - mov w0, w20 - bl INSERT_FREE_LIST -.L2517: +.L2496: add x2, x19, :lo12:.LANCHOR2 - strb wzr, [x21,8] + strb wzr, [x21, 8] add x0, x2, 608 cmp x21, x0 - beq .L2519 + beq .L2498 adrp x1, .LANCHOR0 add x4, x1, :lo12:.LANCHOR0 - ldrh w3, [x4,2492] + ldrh w3, [x4, 2492] cmp w3, 1 - beq .L2519 - ldrb w0, [x4,204] - cbz w0, .L2520 -.L2519: + beq .L2498 + ldrb w0, [x4, 204] + cbz w0, .L2499 +.L2498: mov w0, 1 - strb w0, [x21,8] - b .L2521 -.L2520: - add x0, x2, 560 - cmp x21, x0 - bne .L2521 - cmp w3, 3 - beq .L2523 - ldr w0, [x2,848] - cmp w0, 1 - bne .L2524 -.L2523: + strb w0, [x21, 8] +.L2500: add x2, x19, :lo12:.LANCHOR2 - mov w0, 1 - strb w0, [x2,568] -.L2524: - add x1, x1, :lo12:.LANCHOR0 - ldr w0, [x1,2372] - cbz w0, .L2521 - add x1, x19, :lo12:.LANCHOR2 - ldr w0, [x1,776] - cmp w0, 39 - bhi .L2521 - mov w0, 1 - strb w0, [x1,568] -.L2521: - add x3, x19, :lo12:.LANCHOR2 - mov w0, 65535 - ldrh w1, [x3,3880] - cmp w1, w0 - beq .L2526 - cmp w20, w1 - bne .L2527 - ubfiz x2, x1, 1, 16 - ldr x0, [x3,520] - ldrh w0, [x0,x2] - cbz w0, .L2528 -.L2527: - mov w0, w1 + mov w1, 65535 + ldrh w0, [x2, 3872] + cmp w0, w1 + beq .L2505 + cmp w20, w0 + bne .L2506 + ldr x2, [x2, 520] + ubfiz x1, x0, 1, 16 + ldrh w1, [x2, x1] + cbz w1, .L2507 +.L2506: bl update_vpc_list -.L2528: +.L2507: add x19, x19, :lo12:.LANCHOR2 mov w0, -1 - strh w0, [x19,3880] -.L2526: + strh w0, [x19, 3872] +.L2505: mov x0, x21 bl allocate_data_superblock bl l2p_flush mov w0, 0 bl FtlEctTblFlush bl FtlVpcTblFlush -.L2516: +.L2495: mov w0, 0 - ldr x21, [sp,32] - ldp x19, x20, [sp,16] + ldr x21, [sp, 32] + ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 48 ret +.L2497: + mov w0, w20 + bl INSERT_FREE_LIST + b .L2496 +.L2499: + add x0, x2, 560 + cmp x21, x0 + bne .L2500 + cmp w3, 3 + beq .L2502 + ldr w0, [x2, 1360] + cmp w0, 1 + bne .L2503 +.L2502: + add x2, x19, :lo12:.LANCHOR2 + mov w0, 1 + strb w0, [x2, 568] +.L2503: + add x1, x1, :lo12:.LANCHOR0 + ldr w0, [x1, 2372] + cbz w0, .L2500 + add x1, x19, :lo12:.LANCHOR2 + ldr w0, [x1, 776] + cmp w0, 39 + bhi .L2500 + mov w0, 1 + strb w0, [x1, 568] + b .L2500 .size allocate_new_data_superblock, .-allocate_new_data_superblock .align 2 .global FtlCheckVpc .type FtlCheckVpc, %function FtlCheckVpc: - stp x29, x30, [sp, -128]! + stp x29, x30, [sp, -112]! adrp x1, .LANCHOR3 - adrp x0, .LC109 add x1, x1, :lo12:.LANCHOR3 + adrp x0, .LC109 add x29, sp, 0 - add x1, x1, 216 - add x0, x0, :lo12:.LC109 - stp x19, x20, [sp,16] - adrp x20, .LANCHOR4 - mov w19, 0 - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] - stp x27, x28, [sp,80] - add x21, x20, :lo12:.LANCHOR4 - bl printk - add x0, x21, 1840 - mov w1, 0 - mov x2, 8192 - adrp x22, .LANCHOR0 - bl memset -.L2542: - add x0, x22, :lo12:.LANCHOR0 - adrp x26, .LANCHOR0 - ldr w0, [x0,2616] - cmp w19, w0 - bcs .L2561 - mov w0, w19 - add x1, x29, 124 - mov w2, 0 - bl log2phys - ldr w0, [x29,124] - cmn w0, #1 - beq .L2543 - lsr w0, w0, 10 - bl P2V_block_in_plane - uxth w0, w0 - add x2, x21, 1840 - ldrh w1, [x2,w0,sxtw 1] - add w1, w1, 1 - strh w1, [x2,w0,sxtw 1] -.L2543: - add w19, w19, 1 - b .L2542 -.L2561: - mov w21, 0 - adrp x22, .LC142 - mov w19, w21 - adrp x27, .LANCHOR2 - add x28, x20, :lo12:.LANCHOR4 - add x22, x22, :lo12:.LC142 - mov w4, 65535 -.L2545: - add x0, x26, :lo12:.LANCHOR0 - adrp x23, .LANCHOR2 - ldrh w0, [x0,2480] - cmp w0, w19 - bls .L2562 - add x25, x27, :lo12:.LANCHOR2 - ubfiz x24, x19, 1, 16 - add x23, x28, 1840 - sxtw x5, w19 - ldr x0, [x25,520] - ldrh w3, [x23,w19,sxtw 1] - ldrh w2, [x0,x24] - cmp w2, w3 - beq .L2546 - mov x0, x22 - mov w1, w19 - str x4, [x29,96] - str x5, [x29,104] - bl printk - ldr x0, [x25,520] - ldr x4, [x29,96] - ldrh w0, [x0,x24] - cmp w0, w4 - beq .L2546 - ldr x5, [x29,104] - ldrh w1, [x23,x5,lsl 1] - cmp w1, w0 - csinc w21, w21, wzr, ls -.L2546: - add w19, w19, 1 - uxth w19, w19 - b .L2545 -.L2562: - add x1, x23, :lo12:.LANCHOR2 - ldr x0, [x1,544] - cbz x0, .L2548 - ldr x19, [x1,504] - adrp x24, .LC143 - ldrh w25, [x1,552] + stp x19, x20, [sp, 16] + adrp x19, .LANCHOR0 + stp x23, x24, [sp, 48] + add x23, x19, :lo12:.LANCHOR0 + stp x21, x22, [sp, 32] mov w22, 0 - sub x19, x0, x19 - mov x0, -6148914691236517206 - asr x19, x19, 1 - add x24, x24, :lo12:.LC143 - add x20, x20, :lo12:.LANCHOR4 - mov w26, 6 - madd x19, x0, x19, x19 - mov w27, 65535 - uxth w19, w19 -.L2549: - cmp w22, w25 - beq .L2548 - add x1, x23, :lo12:.LANCHOR2 - ubfiz x0, x19, 1, 16 - ldr x1, [x1,520] - ldrh w2, [x1,x0] - cbz w2, .L2550 - add x3, x20, 1840 - mov x0, x24 - mov w1, w19 - mov w21, 1 - ldrh w3, [x3,w19,sxtw 1] + add x1, x1, 216 + stp x25, x26, [sp, 64] + stp x27, x28, [sp, 80] + add x0, x0, :lo12:.LC109 + adrp x21, check_valid_page_count_table bl printk -.L2550: - add x0, x23, :lo12:.LANCHOR2 - umull x19, w19, w26 - ldr x0, [x0,504] - ldrh w19, [x0,x19] - cmp w19, w27 - beq .L2548 - add w22, w22, 1 - uxth w22, w22 - b .L2549 -.L2548: + add x20, x21, :lo12:check_valid_page_count_table + mov x2, 8192 + mov w1, 0 + mov x0, x20 + bl memset +.L2522: + ldr w0, [x23, 2616] + cmp w22, w0 + bcc .L2524 + add x22, x19, :lo12:.LANCHOR0 + adrp x23, .LC142 + adrp x19, .LANCHOR2 + add x26, x21, :lo12:check_valid_page_count_table + add x25, x19, :lo12:.LANCHOR2 + add x23, x23, :lo12:.LC142 + mov w24, 0 + mov w20, 0 +.L2525: + ldrh w0, [x22, 2480] + cmp w0, w20 + bhi .L2527 + add x0, x19, :lo12:.LANCHOR2 + ldr x19, [x0, 544] + cbz x19, .L2528 + ldr x1, [x0, 504] + adrp x23, .LC143 + ldrh w25, [x0, 552] + mov x20, x0 + sub x19, x19, x1 + mov x1, -6148914691236517206 + asr x19, x19, 1 + movk x1, 0xaaab, lsl 0 + add x21, x21, :lo12:check_valid_page_count_table + add x23, x23, :lo12:.LC143 + mov w22, 0 + mov w26, 6 + mul x19, x19, x1 + and w19, w19, 65535 +.L2529: + cmp w22, w25 + bne .L2531 +.L2528: + mov w1, w24 adrp x0, .LC144 - mov w1, w21 add x0, x0, :lo12:.LC144 bl printk - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 128 + 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 +.L2524: + mov w2, 0 + add x1, x29, 108 + mov w0, w22 + bl log2phys + ldr w0, [x29, 108] + cmn w0, #1 + beq .L2523 + lsr w0, w0, 10 + bl P2V_block_in_plane + and x0, x0, 65535 + ldrh w1, [x20, x0, lsl 1] + add w1, w1, 1 + strh w1, [x20, x0, lsl 1] +.L2523: + add w22, w22, 1 + b .L2522 +.L2527: + ldr x0, [x25, 520] + ubfiz x28, x20, 1, 16 + sxtw x27, w20 + ldrh w2, [x0, x28] + ldrh w3, [x26, x27, lsl 1] + cmp w2, w3 + beq .L2526 + mov w1, w20 + mov x0, x23 + bl printk + ldr x0, [x25, 520] + mov w1, 65535 + ldrh w0, [x0, x28] + cmp w0, w1 + beq .L2526 + ldrh w1, [x26, x27, lsl 1] + cmp w1, w0 + csinc w24, w24, wzr, ls +.L2526: + add w20, w20, 1 + and w20, w20, 65535 + b .L2525 +.L2531: + ldr x1, [x20, 520] + ubfiz x0, x19, 1, 16 + ldrh w2, [x1, x0] + cbz w2, .L2530 + ldrh w3, [x21, w19, sxtw 1] + mov w24, 1 + mov w1, w19 + mov x0, x23 + bl printk +.L2530: + ldr x0, [x20, 504] + umull x19, w19, w26 + ldrh w19, [x0, x19] + mov w0, 65535 + cmp w19, w0 + beq .L2528 + add w22, w22, 1 + and w22, w22, 65535 + b .L2529 .size FtlCheckVpc, .-FtlCheckVpc .align 2 .global Ftlscanalldata .type Ftlscanalldata, %function Ftlscanalldata: - sub sp, sp, #80 + sub sp, sp, #96 adrp x0, .LC145 - add x0, x0, :lo12:.LC145 mov w1, 0 - stp x29, x30, [sp,16] + add x0, x0, :lo12:.LC145 + stp x29, x30, [sp, 16] add x29, sp, 16 - stp x19, x20, [sp,32] - adrp x19, .LANCHOR4 - mov w20, 0 - stp x21, x22, [sp,48] - add x19, x19, :lo12:.LANCHOR4 - adrp x21, .LC146 - add x21, x21, :lo12:.LC146 - add x19, x19, 1704 + stp x19, x20, [sp, 32] + mov w19, 0 + stp x21, x22, [sp, 48] + adrp x22, .LANCHOR4 + add x20, x22, :lo12:.LANCHOR4 + adrp x21, .LANCHOR0 + add x20, x20, 1712 + add x21, x21, :lo12:.LANCHOR0 + str x23, [sp, 64] bl printk -.L2564: - adrp x0, .LANCHOR0+2616 - ldr w0, [x0,#:lo12:.LANCHOR0+2616] - cmp w20, w0 - bcs .L2571 - mov w0, w20 - add x1, x29, 60 +.L2543: + ldr w0, [x21, 2616] + cmp w19, w0 + bcc .L2549 + ldp x19, x20, [sp, 32] + ldp x21, x22, [sp, 48] + ldp x29, x30, [sp, 16] + ldr x23, [sp, 64] + add sp, sp, 96 + ret +.L2549: mov w2, 0 + add x1, x29, 76 + mov w0, w19 bl log2phys - and w0, w20, 2047 - cbnz w0, .L2565 - ldr w2, [x29,60] - mov x0, x21 - mov w1, w20 + tst x19, 2047 + bne .L2544 + ldr w2, [x29, 76] + adrp x0, .LC146 + mov w1, w19 + add x0, x0, :lo12:.LC146 bl printk -.L2565: - ldr w0, [x29,60] +.L2544: + ldr w0, [x29, 76] cmn w0, #1 - beq .L2567 - adrp x1, .LANCHOR2 - str w0, [x19,4] - add x1, x1, :lo12:.LANCHOR2 + beq .L2546 + stp wzr, w0, [x20] + adrp x0, .LANCHOR2 + add x0, x0, :lo12:.LANCHOR2 mov w2, 0 - str w20, [x19,24] - str wzr, [x19] - ldr x0, [x1,3616] - ldr x22, [x1,3664] + str w19, [x20, 24] + ldr x1, [x0, 3608] + ldr x23, [x0, 3656] + mov x0, x20 + stp x1, x23, [x20, 8] mov w1, 1 - str x0, [x19,8] - mov x0, x19 - str x22, [x19,16] bl FlashReadPages - ldr w0, [x19] - cmn w0, #1 - beq .L2568 + ldr w0, [x20] cmp w0, 256 - beq .L2568 - ldr w0, [x22,8] - cmp w0, w20 - beq .L2567 -.L2568: - adrp x2, .LANCHOR4 - mov w1, w20 - add x2, x2, :lo12:.LANCHOR4 - add x2, x2, 1704 - ldr x7, [x2,8] - ldr x6, [x2,16] - ldr w0, [x7,4] - str w0, [sp] + ccmn w0, #1, 4, ne + beq .L2547 + ldr w0, [x23, 8] + cmp w19, w0 + beq .L2546 +.L2547: + add x0, x22, :lo12:.LANCHOR4 + ldr x2, [x0, 1720] + ldr x1, [x0, 1728] + ldr w3, [x2, 4] + str w3, [sp] + ldp w3, w4, [x1] + ldp w5, w6, [x1, 8] + mov w1, w19 + ldr w7, [x2] + ldr w2, [x0, 1716] adrp x0, .LC147 add x0, x0, :lo12:.LC147 - ldr w3, [x6] - ldr w4, [x6,4] - ldr w5, [x6,8] - ldr w2, [x2,4] - ldr w6, [x6,12] - ldr w7, [x7] bl printk -.L2567: - add w20, w20, 1 - b .L2564 -.L2571: - sub sp, x29, #16 - ldp x19, x20, [sp,32] - ldp x21, x22, [sp,48] - ldp x29, x30, [sp,16] - add sp, sp, 80 - ret +.L2546: + add w19, w19, 1 + b .L2543 .size Ftlscanalldata, .-Ftlscanalldata .align 2 .global FtlReUsePrevPpa @@ -17010,827 +16687,793 @@ Ftlscanalldata: FtlReUsePrevPpa: stp x29, x30, [sp, -64]! add x29, sp, 0 - stp x19, x20, [sp,16] - mov w20, w0 - lsr x0, x1, 10 - stp x21, x22, [sp,32] - str w1, [x29,60] - adrp x21, .LANCHOR2 + stp x19, x20, [sp, 16] + mov w19, w0 + str x21, [sp, 32] + lsr w0, w1, 10 + str w1, [x29, 60] bl P2V_block_in_plane - uxth w0, w0 - add x2, x21, :lo12:.LANCHOR2 - ubfiz x22, x0, 1, 16 - ldr x3, [x2,520] - ldrh w1, [x3,x22] - cbnz w1, .L2573 - ldr x19, [x2,544] - cbz x19, .L2574 - ldrh w3, [x2,552] + adrp x20, .LANCHOR2 + add x2, x20, :lo12:.LANCHOR2 + and w0, w0, 65535 + ubfiz x21, x0, 1, 16 + ldr x3, [x2, 520] + ldrh w1, [x3, x21] + cbnz w1, .L2552 + ldr x8, [x2, 544] + cbz x8, .L2553 + ldrh w3, [x2, 552] mov x4, -6148914691236517206 - ldr x2, [x2,504] + ldr x2, [x2, 504] + movk x4, 0xaaab, lsl 0 mov w5, 65535 - sub x19, x19, x2 - asr x19, x19, 1 - madd x19, x4, x19, x19 + sub x8, x8, x2 + asr x8, x8, 1 + mul x8, x8, x4 mov w4, 6 - uxth w19, w19 -.L2575: + and w8, w8, 65535 +.L2554: cmp w1, w3 - beq .L2574 - cmp w19, w0 - bne .L2576 - add x21, x21, :lo12:.LANCHOR2 - mov w1, w19 - add x0, x21, 544 + beq .L2553 + cmp w8, w0 + bne .L2555 + add x20, x20, :lo12:.LANCHOR2 + mov w1, w8 + add x0, x20, 544 bl List_remove_node - ldrh w0, [x21,552] + ldrh w0, [x20, 552] sub w0, w0, #1 - strh w0, [x21,552] - mov w0, w19 + strh w0, [x20, 552] + mov w0, w8 bl INSERT_DATA_LIST - ldr x1, [x21,520] - ldrh w0, [x1,x22] + ldr x1, [x20, 520] + ldrh w0, [x1, x21] add w0, w0, 1 - strh w0, [x1,x22] - b .L2574 -.L2576: - umull x19, w19, w4 - ldrh w19, [x2,x19] - cmp w19, w5 - beq .L2574 - add w1, w1, 1 - uxth w1, w1 - b .L2575 -.L2573: - add w1, w1, 1 - strh w1, [x3,x22] -.L2574: + strh w0, [x1, x21] +.L2553: add x1, x29, 60 - mov w0, w20 mov w2, 1 + mov w0, w19 bl log2phys - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] + ldp x19, x20, [sp, 16] + ldr x21, [sp, 32] ldp x29, x30, [sp], 64 ret +.L2555: + umull x8, w8, w4 + ldrh w8, [x2, x8] + cmp w8, w5 + beq .L2553 + add w1, w1, 1 + and w1, w1, 65535 + b .L2554 +.L2552: + add w1, w1, 1 + strh w1, [x3, x21] + b .L2553 .size FtlReUsePrevPpa, .-FtlReUsePrevPpa .align 2 .global FtlRecoverySuperblock .type FtlRecoverySuperblock, %function FtlRecoverySuperblock: - stp x29, x30, [sp, -208]! + stp x29, x30, [sp, -192]! mov w2, 65535 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 + stp x19, x20, [sp, 16] + mov x20, x0 + stp x21, x22, [sp, 32] + stp x23, x24, [sp, 48] + stp x25, x26, [sp, 64] + stp x27, x28, [sp, 80] ldrh w0, [x0] cmp w0, w2 - beq .L2742 - ldrh w0, [x19,2] + beq .L2707 adrp x23, .LANCHOR0 - str w0, [x29,188] - ldrb w0, [x19,6] - str w0, [x29,176] add x0, x23, :lo12:.LANCHOR0 - ldr w1, [x29,188] - ldrh w0, [x0,2544] - cmp w0, w1 - bne .L2584 - strh wzr, [x19,4] - b .L2748 -.L2584: - ldrh w0, [x19,16] + ldrh w28, [x20, 2] + ldrh w0, [x0, 2544] + cmp w0, w28 + bne .L2564 + strh wzr, [x20, 4] +.L2714: + strb wzr, [x20, 6] +.L2707: + ldp x19, x20, [sp, 16] + mov w0, 0 + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] + ldp x27, x28, [sp, 80] + ldp x29, x30, [sp], 192 + ret +.L2564: + ldrh w0, [x20, 16] mov w1, 0 -.L2585: +.L2565: cmp w0, w2 - bne .L2751 - add w1, w1, 1 - uxth w1, w1 - add x0, x19, w1, sxtw 1 - ldrh w0, [x0,16] - b .L2585 -.L2751: - ldrb w1, [x19,8] + beq .L2566 + ldrb w1, [x20, 6] + str w1, [x29, 152] + ldrb w1, [x20, 8] cmp w1, 1 - bne .L2587 + bne .L2567 bl FtlGetLastWrittenPage + mov w21, w0 cmn w0, #1 - mov w20, w0 - beq .L2588 + beq .L2568 add x0, x23, :lo12:.LANCHOR0 - mov w24, w20 - ldrb w1, [x0,204] - cbnz w1, .L2662 + ldrb w1, [x0, 204] + cbnz w1, .L2640 add x0, x0, 208 - ldrh w24, [x0,w20,sxtw 1] - b .L2662 -.L2587: - mov w1, 0 - bl FtlGetLastWrittenPage - cmn w0, #1 - mov w20, w0 - beq .L2588 - mov w24, w0 -.L2662: + ldrh w24, [x0, w21, sxtw 1] +.L2569: add x0, x23, :lo12:.LANCHOR0 - mov x2, x19 + add x1, x20, 16 + mov x4, x1 + str x1, [x29, 168] + adrp x1, .LANCHOR2 + add x1, x1, :lo12:.LANCHOR2 + ldrh w8, [x0, 2556] mov w26, 0 - mov w8, 65535 - mov w9, 56 - adrp x10, .LANCHOR2 - ldrh w4, [x0,2472] + ldrh w0, [x0, 2472] + mov w9, 65535 + mov w10, 56 mov w11, 4 - ldrh w7, [x0,2556] - add x4, x19, x4, lsl 1 - b .L2590 -.L2588: - strh wzr, [x19,2] -.L2748: - strb wzr, [x19,6] - b .L2742 -.L2592: - ldrh w1, [x2,16] - cmp w1, w8 - beq .L2591 - add x5, x10, :lo12:.LANCHOR2 - orr w1, w24, w1, lsl 10 - umull x0, w26, w9 - add w3, w26, 1 - ldr x6, [x5,3592] - add x6, x6, x0 - str w1, [x6,4] - ldr x1, [x5,3592] - ldr x5, [x5,1408] - add x0, x1, x0 - mul w1, w26, w7 - uxth w26, w3 - str xzr, [x0,8] - sdiv w1, w1, w11 - add x1, x5, w1, sxtw 2 - str x1, [x0,16] -.L2591: - add x2, x2, 2 -.L2590: - cmp x2, x4 - bne .L2592 - ldrb w0, [x19,8] - str wzr, [x29,184] + add x0, x0, 8 + add x0, x20, x0, lsl 1 +.L2570: + cmp x4, x0 + bne .L2572 + ldrb w0, [x20, 8] cmp w0, 1 - bne .L2593 + bne .L2641 add x0, x23, :lo12:.LANCHOR0 - ldrb w0, [x0,204] - cmp w0, wzr + ldrb w0, [x0, 204] + cmp w0, 0 cset w0, ne - str w0, [x29,184] -.L2593: - adrp x21, .LANCHOR2 - ldr w2, [x29,184] - add x22, x21, :lo12:.LANCHOR2 + str w0, [x29, 164] +.L2573: + adrp x19, .LANCHOR2 + add x25, x19, :lo12:.LANCHOR2 + ldr w2, [x29, 164] mov w1, w26 mov x27, 0 - mov w25, 65535 - mov x28, 56 - ldr x0, [x22,3592] + ldr x0, [x25, 3584] bl FlashReadPages - ldr w0, [x22,756] - adrp x22, .LC148 - str w0, [x29,168] - add x22, x22, :lo12:.LC148 - uxth w0, w24 - str w0, [x29,160] -.L2594: - uxth w2, w27 - cmp w2, w26 - bcs .L2601 - add x6, x21, :lo12:.LANCHOR2 - mul x0, x27, x28 - ldr x4, [x6,3592] - add x1, x4, x0 - ldr w0, [x4,x0] - cbnz w0, .L2595 - ldr x7, [x1,16] - ldr w4, [x7,4] - cmn w4, #1 - beq .L2596 - ldr w1, [x6,756] - mov w0, w4 - str x7, [x29,128] - str x2, [x29,136] - str x4, [x29,144] - str x6, [x29,152] - bl ftl_cmp_data_ver - ldr x6, [x29,152] - ldr x4, [x29,144] - ldr x2, [x29,136] - ldr x7, [x29,128] - cbz w0, .L2596 - add w4, w4, 1 - str w4, [x6,756] -.L2596: - ldr w0, [x7] - cmn w0, #1 - bne .L2597 -.L2601: - cmp w2, w26 - bne .L2743 - add x0, x21, :lo12:.LANCHOR2 - add w20, w20, 1 - uxth w20, w20 - ldr x0, [x0,3592] - ldr w0, [x0,4] - b .L2744 -.L2595: - ldr w1, [x1,4] - mov x0, x22 - bl printk - ldr w25, [x29,160] - adrp x0, .LANCHOR5 - ldrh w1, [x19] - add x0, x0, :lo12:.LANCHOR5 - strh w1, [x0,1328] -.L2597: - add x27, x27, 1 - b .L2594 -.L2743: - add x0, x21, :lo12:.LANCHOR2 - mov w1, 56 - uxth w20, w20 - umull x2, w2, w1 - ldr x0, [x0,3592] - add x2, x0, x2 - ldr w0, [x2,4] -.L2744: - lsr x0, x0, 10 - bl P2V_plane - uxth w26, w0 - ldrb w1, [x19,8] - cmp w1, 1 - bne .L2603 - add x0, x23, :lo12:.LANCHOR0 - ldrb w2, [x0,204] - cbnz w2, .L2603 - add x0, x0, 208 - ldrh w20, [x0,w20,sxtw 1] -.L2603: - add x0, x23, :lo12:.LANCHOR0 - ldrh w0, [x0,2544] - cmp w0, w20 - bne .L2604 - strh w20, [x19,2] - strb wzr, [x19,6] - strh wzr, [x19,4] -.L2604: - ldrh w0, [x29,176] - str w0, [x29,152] - ldr w0, [x29,188] - cmp w20, w0 - bne .L2605 - ldr w0, [x29,152] + ldr w22, [x25, 756] + adrp x0, .LC148 + add x0, x0, :lo12:.LC148 + sub w22, w22, #1 + str x0, [x29, 144] + mov w5, 65535 + adrp x0, .LANCHOR4 + add x0, x0, :lo12:.LANCHOR4 + str x0, [x29, 136] +.L2574: + and w0, w27, 65535 cmp w26, w0 - beq .L2749 -.L2605: - ldr w0, [x29,168] - sub w22, w0, #1 - mov w0, 65535 - cmp w25, w0 - bne .L2606 - cbnz w1, .L2607 -.L2606: - add x0, x21, :lo12:.LANCHOR2 - uxth w5, w24 - ldr w1, [x0,3892] - cmn w1, #1 - bne .L2608 - str w22, [x0,3892] -.L2608: - add x0, x21, :lo12:.LANCHOR2 - ldr w25, [x29,188] - ldr w6, [x0,3892] - ldr w0, [x29,188] - add w0, w0, 7 - cmp w0, w24, uxth - bge .L2609 - sub w25, w5, #7 - uxth w25, w25 -.L2609: - mov w3, -1 - add x28, x21, :lo12:.LANCHOR2 - mov w27, w3 - mov w4, 65535 - mov w7, 56 - add x8, x28, 1508 -.L2610: - cmp w25, w5 - bhi .L2623 + bhi .L2579 + bne .L2577 + add x0, x19, :lo12:.LANCHOR2 + add w21, w21, 1 + and w21, w21, 65535 + ldr x0, [x0, 3584] + ldr w0, [x0, 4] +.L2709: + lsr w0, w0, 10 + bl P2V_plane + ldrb w1, [x20, 8] + and w27, w0, 65535 + cmp w1, 1 + bne .L2581 add x0, x23, :lo12:.LANCHOR0 - mov w24, 0 - ldrh w2, [x0,2472] - mov x0, x19 - add x2, x19, x2, lsl 1 -.L2624: - cmp x0, x2 - beq .L2752 - ldrh w1, [x0,16] - cmp w1, w4 - beq .L2611 - umull x9, w24, w7 - ldr x10, [x28,3592] - add w24, w24, 1 - orr w1, w25, w1, lsl 10 - add x9, x10, x9 - uxth w24, w24 - str w1, [x9,4] -.L2611: - add x0, x0, 2 - b .L2624 -.L2752: - ldr x0, [x28,3592] - mov w1, w24 - ldr w2, [x29,184] - str x8, [x29,128] - str x7, [x29,136] - str x4, [x29,144] - str x6, [x29,160] - str x5, [x29,168] - str x3, [x29,176] - bl FlashReadPages + ldrb w2, [x0, 204] + cbnz w2, .L2581 + add x0, x0, 208 + ldrh w21, [x0, w21, sxtw 1] +.L2581: add x0, x23, :lo12:.LANCHOR0 - ldr x3, [x29,176] - ldr x5, [x29,168] + ldrh w0, [x0, 2544] + cmp w0, w21 + bne .L2582 + strh w21, [x20, 2] + strb wzr, [x20, 6] + strh wzr, [x20, 4] +.L2582: + ldrh w0, [x29, 152] + cmp w21, w28 + str w0, [x29, 144] + ccmp w27, w0, 0, eq + bne .L2583 +.L2715: + mov w2, w27 + mov w1, w21 + mov x0, x20 + bl ftl_sb_update_avl_pages + b .L2707 +.L2566: + add w1, w1, 1 + and w1, w1, 65535 + add x0, x20, w1, sxtw 1 + ldrh w0, [x0, 16] + b .L2565 +.L2567: mov w1, 0 - ldr x6, [x29,160] - sxtw x10, w25 - ldrb w9, [x0,204] - ldr x0, [x28,3592] - ldr x4, [x29,144] - ldr x7, [x29,136] - add x0, x0, 16 - ldr x8, [x29,128] -.L2613: - cmp w1, w24 - beq .L2753 - ldr w2, [x0,-16] - cbnz w2, .L2614 - ldr x2, [x0] - ldrh w11, [x2] - cmp w11, w4 - beq .L2615 - ldr w2, [x2,4] - cmn w2, #1 - beq .L2615 - ldr w27, [x28,3892] + bl FtlGetLastWrittenPage + mov w21, w0 + cmn w0, #1 + beq .L2568 +.L2640: + mov w24, w21 + b .L2569 +.L2568: + strh wzr, [x20, 2] + b .L2714 +.L2572: + ldrh w2, [x4] + cmp w2, w9 + beq .L2571 + umull x7, w26, w10 + ldr x6, [x1, 3584] + orr w2, w24, w2, lsl 10 + add w3, w26, 1 + add x6, x6, x7 + str w2, [x6, 4] + mul w2, w26, w8 + and w26, w3, 65535 + ldr x5, [x1, 3584] + ldr x6, [x1, 1400] + sdiv w2, w2, w11 + add x5, x5, x7 + add x2, x6, w2, sxtw 2 + stp xzr, x2, [x5, 8] +.L2571: + add x4, x4, 2 + b .L2570 +.L2641: + str wzr, [x29, 164] + b .L2573 +.L2579: + mov x0, 56 + ldr x4, [x25, 3584] + mul x0, x27, x0 + add x1, x4, x0 + ldr w0, [x4, x0] + cbnz w0, .L2575 + ldr x6, [x1, 16] + ldr w4, [x6, 4] + cmn w4, #1 + beq .L2576 + ldr w1, [x25, 756] + mov w0, w4 + bl ftl_cmp_data_ver + cbz w0, .L2576 + add w4, w4, 1 + str w4, [x25, 756] +.L2576: + ldr w0, [x6] + cmn w0, #1 + bne .L2578 +.L2577: + add x0, x19, :lo12:.LANCHOR2 + and x27, x27, 65535 + mov x1, 56 + and w21, w21, 65535 + ldr x0, [x0, 3584] + madd x27, x27, x1, x0 + ldr w0, [x27, 4] + b .L2709 +.L2575: + ldr w1, [x1, 4] + ldr x0, [x29, 144] + bl printk + ldr x1, [x29, 136] + and w5, w24, 65535 + ldrh w0, [x20] + strh w0, [x1, 1842] +.L2578: + add x27, x27, 1 + b .L2574 +.L2583: + mov w0, 65535 + cmp w5, w0 + bne .L2584 + cbnz w1, .L2585 +.L2584: + add x0, x19, :lo12:.LANCHOR2 + and w6, w24, 65535 + ldr w1, [x0, 3884] + cmn w1, #1 + bne .L2586 + str w22, [x0, 3884] +.L2586: + add x0, x19, :lo12:.LANCHOR2 + ldr w7, [x0, 3884] + add w0, w28, 7 + cmp w0, w24, uxth + bge .L2642 + sub w24, w6, #7 + and w24, w24, 65535 +.L2587: + add x4, x19, :lo12:.LANCHOR2 + mov w3, -1 + add x8, x4, 1500 + mov w26, w3 + mov w5, 65535 +.L2588: + cmp w24, w6 + bhi .L2601 + add x0, x23, :lo12:.LANCHOR0 + mov w25, 0 + mov w10, 56 + ldr x1, [x29, 168] + ldrh w0, [x0, 2472] + add x0, x0, 8 + add x0, x20, x0, lsl 1 + b .L2602 +.L2642: + mov w24, w28 + b .L2587 +.L2590: + ldrh w2, [x1] + cmp w2, w5 + beq .L2589 + ldr x9, [x4, 3584] + orr w2, w24, w2, lsl 10 + umaddl x9, w25, w10, x9 + add w25, w25, 1 + and w25, w25, 65535 + str w2, [x9, 4] +.L2589: + add x1, x1, 2 +.L2602: + cmp x0, x1 + bne .L2590 + ldr w2, [x29, 164] + mov w1, w25 + ldr x0, [x4, 3584] + str x8, [x29, 104] + str w5, [x29, 112] + str w7, [x29, 120] + str w6, [x29, 128] + str w3, [x29, 136] + str x4, [x29, 152] + bl FlashReadPages + ldr x4, [x29, 152] + add x0, x23, :lo12:.LANCHOR0 + mov w1, 56 + ldr w5, [x29, 112] + ldr w7, [x29, 120] + sxtw x9, w24 + ldrb w2, [x0, 204] + ldr x0, [x4, 3584] + ldr w6, [x29, 128] + ldr w3, [x29, 136] + ldr x8, [x29, 104] + nop // between mem op and mult-accumulate + umaddl x25, w25, w1, x0 +.L2591: + cmp x25, x0 + bne .L2600 + add w24, w24, 1 + and w24, w24, 65535 + b .L2588 +.L2600: + ldr w1, [x0] + cbnz w1, .L2592 + ldr x1, [x0, 16] + ldrh w10, [x1] + cmp w10, w5 + beq .L2593 + ldr w1, [x1, 4] + cmn w1, #1 + beq .L2593 + ldr w26, [x4, 3884] cmn w3, #1 - str w2, [x28,3892] - bne .L2615 - ldrh w2, [x8,x10,lsl 1] - cmp w2, w4 - bne .L2616 - cbz w9, .L2615 -.L2616: - cmp w27, w22 - csinv w3, w27, wzr, ne - b .L2615 -.L2614: - adrp x0, .LANCHOR5+1328 - ldrh w1, [x19] - strh w1, [x0,#:lo12:.LANCHOR5+1328] - ldrb w0, [x19,8] - cbnz w0, .L2607 - add x0, x21, :lo12:.LANCHOR2 - add x1, x0, 1508 - ldrh w2, [x1,w25,sxtw 1] + str w1, [x4, 3884] + bne .L2593 + ldrh w1, [x8, x9, lsl 1] + cmp w1, w5 + bne .L2594 + cbz w2, .L2593 +.L2594: + cmp w22, w26 + csel w3, w3, w26, eq +.L2593: + add x0, x0, 56 + b .L2591 +.L2592: + adrp x0, .LANCHOR4+1842 + ldrh w1, [x20] + strh w1, [x0, #:lo12:.LANCHOR4+1842] + ldrb w0, [x20, 8] + cbnz w0, .L2585 + add x0, x19, :lo12:.LANCHOR2 + add x1, x0, 1500 + ldrh w2, [x1, w24, sxtw 1] mov w1, 65535 cmp w2, w1 - bne .L2618 + bne .L2596 cmn w3, #1 - beq .L2619 - str w3, [x0,3892] - b .L2607 -.L2619: - cmp w6, w22 - beq .L2620 - str w6, [x0,3892] - b .L2607 -.L2620: - ldr w1, [x0,3892] - b .L2750 -.L2618: - cmp w27, w22 - beq .L2621 - cmn w27, #1 - beq .L2607 - str w27, [x0,3892] - b .L2607 -.L2621: - ldr w1, [x0,3892] - cmp w1, w22 - beq .L2607 -.L2750: - sub w1, w1, #1 - b .L2745 -.L2615: - add w1, w1, 1 - add x0, x0, 56 - uxth w1, w1 - b .L2613 -.L2753: - add w25, w25, 1 - uxth w25, w25 - b .L2610 -.L2623: - add x0, x21, :lo12:.LANCHOR2 - mov w1, -1 -.L2745: - str w1, [x0,3892] -.L2607: - adrp x0, .LANCHOR5 - str x0, [x29,136] - add x1, x0, :lo12:.LANCHOR5 + beq .L2597 + str w3, [x0, 3884] +.L2585: + adrp x0, .LANCHOR4 + add x1, x0, :lo12:.LANCHOR4 + mov w24, w28 + add x19, x19, :lo12:.LANCHOR2 + mov w2, 1 + str x0, [x29, 120] + strh w2, [x1, 1844] +.L2603: + add x0, x23, :lo12:.LANCHOR0 + ldr x1, [x29, 168] + mov w25, 0 + mov w7, 65535 + ldrb w6, [x0, 204] + ldrh w0, [x0, 2472] + add x0, x0, 8 + add x0, x20, x0, lsl 1 +.L2604: + cmp x0, x1 + bne .L2607 + ldr w2, [x29, 164] + mov w1, w25 + ldr x0, [x19, 3584] + bl FlashReadPages + mov w0, 56 + umull x0, w25, w0 + mov x25, 0 + str x0, [x29, 128] + ldr x0, [x29, 120] + add x0, x0, :lo12:.LANCHOR4 + str x0, [x29, 152] adrp x0, .LC150 add x0, x0, :lo12:.LC150 - ldr w24, [x29,188] - str x0, [x29,128] - adrp x0, .LC149 - mov w2, 1 - add x0, x0, :lo12:.LC149 - strh w2, [x1,1330] - str x0, [x29,120] -.L2625: - add x0, x23, :lo12:.LANCHOR0 - mov x1, x19 - str wzr, [x29,176] - mov w7, 65535 - mov w8, 56 - ldrh w3, [x0,2472] - ldrb w6, [x0,204] - add x3, x19, x3, lsl 1 -.L2626: - cmp x1, x3 - beq .L2754 - ldrh w2, [x1,16] - cmp w2, w7 - beq .L2627 - ldr w0, [x29,176] - add x5, x21, :lo12:.LANCHOR2 - orr w2, w24, w2, lsl 10 - ldr x4, [x5,3592] - umull x0, w0, w8 - add x4, x4, x0 - str w2, [x4,4] - ldrb w2, [x19,8] - cmp w2, 1 - bne .L2628 - cbz w6, .L2628 - ldr x2, [x5,3592] - add x0, x2, x0 - ldr w2, [x0,4] - orr w2, w2, -2147483648 - str w2, [x0,4] -.L2628: - ldr w0, [x29,176] - add w0, w0, 1 - uxth w0, w0 - str w0, [x29,176] -.L2627: - add x1, x1, 2 - b .L2626 -.L2754: - add x0, x21, :lo12:.LANCHOR2 - ldr w1, [x29,176] - ldr w2, [x29,184] - ldr x0, [x0,3592] - bl FlashReadPages - str xzr, [x29,160] -.L2630: - ldrh w0, [x29,160] - ldr w1, [x29,176] - cmp w1, w0, uxth - bls .L2755 - ldr x0, [x29,160] - mov x25, 56 - mul x25, x0, x25 - add x0, x21, :lo12:.LANCHOR2 - ldr x28, [x0,3592] - add x27, x28, x25 - ldr w1, [x27,4] - str w1, [x29,204] - lsr x0, x1, 10 - str x1, [x29,168] - bl P2V_plane - uxth w0, w0 - ldr w1, [x29,188] - cmp w24, w1 - ldr x1, [x29,168] - bcc .L2631 - ldr w2, [x29,152] - cmp w0, w2 - bcs .L2666 - ldr w2, [x29,188] - cmp w24, w2 - beq .L2631 -.L2666: - cmp w0, w26 - bne .L2667 - cmp w24, w20 - beq .L2633 -.L2667: - ldr w0, [x28,x25] - cmn w0, #1 - beq .L2635 - ldr x28, [x27,16] - mov w0, 61589 - ldrh w1, [x28] - cmp w1, w0 - beq .L2636 - ldrh w0, [x19] - b .L2746 -.L2636: - ldr w22, [x28,4] - cmn w22, #1 - beq .L2637 - add x27, x21, :lo12:.LANCHOR2 - mov w0, w22 - ldr w1, [x27,756] - bl ftl_cmp_data_ver - cbz w0, .L2637 - add w0, w22, 1 - str w0, [x27,756] -.L2637: - ldr w27, [x28,8] - add x1, x29, 200 - ldr w0, [x28,12] - mov w2, 0 - 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,3892] - cmn w1, #1 - beq .L2638 - mov w0, w22 - bl ftl_cmp_data_ver - ldr x3, [x29,168] - cbz w0, .L2638 - cmn w28, #1 - beq .L2639 - ldr x0, [x3,3592] - mov w2, 0 - str x3, [x29,112] - add x0, x0, x25 - str w28, [x0,4] - ldr x1, [x0,16] - ldr x0, [x3,3592] - str x1, [x29,168] - mov w1, 1 - add x0, x0, x25 - bl FlashReadPages - ldr x3, [x29,112] - ldr x0, [x29,168] - ldr x2, [x3,3592] - ldr w0, [x0,4] - str w0, [x29,144] - add x4, x2, x25 - ldr w0, [x2,x25] - cmn w0, #1 - bne .L2640 - b .L2641 -.L2639: - ldr w0, [x29,204] - ldr w1, [x29,200] - cmp w1, w0 - bne .L2631 - mov w0, w27 - add x1, x29, 196 - mov w2, 1 - bl log2phys - b .L2631 -.L2640: - ldr x0, [x29,168] - ldr w28, [x0,8] - cmp w28, w27 - bne .L2641 - ldr w0, [x3,3892] - ldr w1, [x29,144] - str x2, [x29,96] - str x4, [x29,104] - str x3, [x29,112] - bl ftl_cmp_data_ver - ldr x3, [x29,112] - ldr x4, [x29,104] - ldr x2, [x29,96] - cbz w0, .L2641 - ldr w0, [x29,200] - ldr w1, [x29,204] - cmp w0, w1 - beq .L2646 - ldr w1, [x29,196] - cmp w0, w1 - beq .L2641 - cmn w0, #1 - beq .L2644 - str w0, [x4,4] - mov w2, 0 - ldr x1, [x4,16] - ldr x0, [x3,3592] - str x1, [x29,168] - mov w1, 1 - add x0, x0, x25 - bl FlashReadPages - b .L2645 -.L2644: - str w0, [x2,x25] -.L2645: - add x0, x21, :lo12:.LANCHOR2 - ldr x1, [x0,3592] - ldr w1, [x1,x25] - cmn w1, #1 - beq .L2646 - ldr x1, [x29,168] - ldr w0, [x0,3892] - ldr w25, [x1,4] - mov w1, w25 - bl ftl_cmp_data_ver - cbz w0, .L2646 - ldr w0, [x29,144] - mov w1, w25 - bl ftl_cmp_data_ver - cbz w0, .L2641 -.L2646: - ldr w1, [x29,196] - mov w0, w28 - bl FtlReUsePrevPpa -.L2641: - mov w0, -1 - str w0, [x29,196] - b .L2648 -.L2638: - ldr w0, [x29,204] - ldr w1, [x29,200] - cmp w1, w0 - beq .L2648 - cmn w28, #1 - beq .L2650 - add x0, x23, :lo12:.LANCHOR0 - ubfx x28, x28, 10, 21 - ldr w0, [x0,2488] - cmp w28, w0 - bcs .L2631 -.L2650: - mov w0, w27 - add x1, x29, 204 - mov w2, 1 - bl log2phys - ldr w25, [x29,200] - cmn w25, #1 - beq .L2648 - ldr w0, [x29,196] - cmp w25, w0 - beq .L2648 - lsr x0, x25, 10 - bl P2V_block_in_plane - uxth w0, w0 - add x1, x21, :lo12:.LANCHOR2 - ldrh w2, [x1,560] - cmp w2, w0 - beq .L2652 - ldrh w2, [x1,608] - cmp w2, w0 - beq .L2652 - ldrh w1, [x1,656] - cmp w1, w0 - bne .L2648 -.L2652: - add x28, x21, :lo12:.LANCHOR2 - mov w1, 1 - mov w2, 0 - ldr x0, [x28,3592] - str w25, [x0,4] - ldr x3, [x0,16] - ldr x0, [x28,3592] - str x3, [x29,168] - bl FlashReadPages - ldr x0, [x28,3592] - ldr x3, [x29,168] - ldr w0, [x0] - ldr w1, [x3,4] - cmn w0, #1 - beq .L2648 - mov w0, w22 - bl ftl_cmp_data_ver - cbnz w0, .L2648 - mov w0, w27 - add x1, x29, 200 - mov w2, 1 - bl log2phys -.L2648: - ldr w0, [x29,196] - cmn w0, #1 - beq .L2631 - lsr x0, x0, 10 - bl P2V_block_in_plane - uxth w1, w0 - add x2, x21, :lo12:.LANCHOR2 - ubfiz x3, x1, 1, 16 - ldr x2, [x2,520] - ldrh w2, [x2,x3] - cbz w2, .L2653 -.L2746: - bl decrement_vpc_count - b .L2631 -.L2653: - ldr x0, [x29,120] - bl printk - b .L2631 -.L2635: - ldr x2, [x29,136] - ldrh w0, [x19] - add x25, x2, :lo12:.LANCHOR5 - mov w2, w22 - strh w0, [x25,1328] - ldr x0, [x29,128] - bl printk - ldr w0, [x25,1332] - cmp w0, 31 - bhi .L2654 - add x1, x25, 1336 - ldr w2, [x29,204] - str w2, [x1,w0,uxtw 2] - add w0, w0, 1 - str w0, [x25,1332] -.L2654: - ldrh w0, [x19] - bl decrement_vpc_count - add x0, x21, :lo12:.LANCHOR2 - ldr w1, [x0,3892] - cmn w1, #1 - beq .L2747 - cmp w1, w22 - bls .L2631 -.L2747: - str w22, [x0,3892] -.L2631: - ldr x0, [x29,160] - add x0, x0, 1 - str x0, [x29,160] - b .L2630 -.L2755: - ldrb w0, [x19,8] + str x0, [x29, 112] + ldr x0, [x29, 152] + add x0, x0, 1856 + str x0, [x29, 104] +.L2608: + ldr x0, [x29, 128] + cmp x0, x25 + bne .L2633 + ldrb w0, [x20, 8] add w24, w24, 1 + and w24, w24, 65535 cmp w0, 1 - uxth w24, w24 - bne .L2657 + bne .L2634 add x0, x23, :lo12:.LANCHOR0 - ldrb w1, [x0,204] - cbz w1, .L2657 - cmp w20, w24 - bne .L2657 - ldrh w0, [x0,2546] + ldrb w1, [x0, 204] + cbz w1, .L2634 + ldrh w0, [x0, 2546] cmp w0, w24 - beq .L2633 -.L2657: + bne .L2634 + cmp w21, w24 + beq .L2610 +.L2634: add x0, x23, :lo12:.LANCHOR0 - ldrh w1, [x0,2544] - cmp w24, w1 - bne .L2625 - ldrh w2, [x0,2472] - mov w3, 65535 - strh w24, [x19,2] - mov x0, 0 - strh wzr, [x19,4] -.L2659: - uxth w1, w0 - cmp w1, w2 - bcs .L2742 - add x0, x0, 1 - add x4, x19, x0, lsl 1 - ldrh w4, [x4,14] - cmp w4, w3 - beq .L2659 - strb w1, [x19,6] - b .L2742 -.L2633: - strb w26, [x19,6] - strh w20, [x19,2] -.L2749: - mov x0, x19 - mov w1, w20 - mov w2, w26 - bl ftl_sb_update_avl_pages -.L2742: + ldrh w1, [x0, 2544] + cmp w1, w24 + bne .L2603 + ldrh w1, [x0, 2472] + mov w2, 65535 + strh w24, [x20, 2] mov w0, 0 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 208 - ret + strh wzr, [x20, 4] +.L2635: + cmp w0, w1 + beq .L2707 + ldr x4, [x29, 168] + ldrh w3, [x4], 2 + str x4, [x29, 168] + cmp w3, w2 + beq .L2636 + strb w0, [x20, 6] + b .L2707 +.L2597: + cmp w22, w7 + beq .L2598 + str w7, [x0, 3884] + b .L2585 +.L2598: + ldr w1, [x0, 3884] +.L2716: + sub w1, w1, #1 +.L2710: + str w1, [x0, 3884] + b .L2585 +.L2596: + cmp w26, w22 + beq .L2599 + cmn w26, #1 + beq .L2585 + str w26, [x0, 3884] + b .L2585 +.L2599: + ldr w1, [x0, 3884] + cmp w22, w1 + bne .L2716 + b .L2585 +.L2601: + add x0, x19, :lo12:.LANCHOR2 + mov w1, -1 + b .L2710 +.L2607: + ldrh w3, [x1] + cmp w3, w7 + beq .L2605 + mov w2, 56 + ldr x4, [x19, 3584] + orr w3, w24, w3, lsl 10 + umull x5, w25, w2 + add x4, x4, x5 + str w3, [x4, 4] + ldrb w2, [x20, 8] + cmp w2, 1 + bne .L2606 + cbz w6, .L2606 + ldr x2, [x19, 3584] + add x2, x2, x5 + ldr w3, [x2, 4] + orr w3, w3, -2147483648 + str w3, [x2, 4] +.L2606: + add w25, w25, 1 + and w25, w25, 65535 +.L2605: + add x1, x1, 2 + b .L2604 +.L2633: + ldr x4, [x19, 3584] + add x4, x4, x25 + ldr w5, [x4, 4] + str w5, [x29, 188] + lsr w0, w5, 10 + bl P2V_plane + and w0, w0, 65535 + cmp w24, w28 + bcc .L2609 + ldr w1, [x29, 144] + ccmp w1, w0, 0, eq + bhi .L2609 + cmp w24, w21 + ccmp w27, w0, 0, eq + beq .L2610 + ldr w0, [x4] + cmn w0, #1 + beq .L2611 + ldr x3, [x4, 16] + mov w0, 61589 + ldrh w1, [x3] + cmp w1, w0 + beq .L2612 + ldrh w0, [x20] +.L2712: + bl decrement_vpc_count + b .L2609 +.L2612: + ldr w22, [x3, 4] + cmn w22, #1 + beq .L2613 + ldr w1, [x19, 756] + mov w0, w22 + bl ftl_cmp_data_ver + cbz w0, .L2613 + add w0, w22, 1 + str w0, [x19, 756] +.L2613: + ldp w26, w0, [x3, 8] + add x1, x29, 184 + str w0, [x29, 180] + mov w2, 0 + mov w0, w26 + bl log2phys + ldr w1, [x19, 3884] + ldr w3, [x29, 180] + cmn w1, #1 + beq .L2614 + mov w0, w22 + bl ftl_cmp_data_ver + cbz w0, .L2614 + cmn w3, #1 + beq .L2615 + ldr x0, [x19, 3584] + mov w2, 0 + mov w1, 1 + add x0, x0, x25 + ldr x4, [x0, 16] + str w3, [x0, 4] + str x4, [x29, 136] + ldr x0, [x19, 3584] + add x0, x0, x25 + bl FlashReadPages + ldr x0, [x19, 3584] + ldr x4, [x29, 136] + add x3, x0, x25 + ldr w0, [x0, x25] + cmn w0, #1 + bne .L2616 +.L2617: + mov w0, -1 + str w0, [x29, 180] +.L2624: + ldr w4, [x29, 180] + cmn w4, #1 + beq .L2609 +.L2639: + lsr w0, w4, 10 + bl P2V_block_in_plane + ldr x3, [x19, 520] + and w1, w0, 65535 + ubfiz x2, x1, 1, 16 + ldrh w2, [x3, x2] + cbnz w2, .L2712 + adrp x0, .LC149 + add x0, x0, :lo12:.LC149 + bl printk + b .L2609 +.L2615: + ldp w1, w0, [x29, 184] + cmp w1, w0 + bne .L2609 + mov w2, 1 + add x1, x29, 180 + mov w0, w26 + bl log2phys +.L2609: + add x25, x25, 56 + b .L2608 +.L2616: + ldr w0, [x4, 8] + cmp w26, w0 + bne .L2617 + ldr w0, [x4, 4] + str w0, [x29, 136] + str x4, [x29, 96] + uxtw x1, w0 + ldr w0, [x19, 3884] + bl ftl_cmp_data_ver + cbz w0, .L2617 + ldp w0, w1, [x29, 184] + ldr x4, [x29, 96] + cmp w0, w1 + ldr w1, [x29, 180] + bne .L2619 +.L2711: + mov w0, w26 + bl FtlReUsePrevPpa + b .L2617 +.L2619: + cmp w0, w1 + beq .L2617 + cmn w0, #1 + beq .L2620 + ldr x4, [x3, 16] + mov w2, 0 + str w0, [x3, 4] + mov w1, 1 + str x4, [x29, 96] + ldr x0, [x19, 3584] + add x0, x0, x25 + bl FlashReadPages + ldr x4, [x29, 96] +.L2621: + ldr x0, [x19, 3584] + ldr w0, [x0, x25] + cmn w0, #1 + beq .L2622 + ldr w3, [x4, 4] + ldr w0, [x19, 3884] + mov w1, w3 + bl ftl_cmp_data_ver + cbz w0, .L2622 + ldr w0, [x29, 136] + mov w1, w3 + bl ftl_cmp_data_ver + cbz w0, .L2617 +.L2622: + ldr w1, [x29, 180] + b .L2711 +.L2620: + str w0, [x3] + b .L2621 +.L2614: + ldp w1, w0, [x29, 184] + cmp w1, w0 + beq .L2624 + cmn w3, #1 + beq .L2626 + add x0, x23, :lo12:.LANCHOR0 + ubfx x3, x3, 10, 21 + ldr w0, [x0, 2488] + cmp w3, w0 + bcs .L2609 +.L2626: + mov w2, 1 + add x1, x29, 188 + mov w0, w26 + bl log2phys + ldr w4, [x29, 184] + cmn w4, #1 + beq .L2624 + ldr w0, [x29, 180] + cmp w4, w0 + beq .L2639 + lsr w0, w4, 10 + bl P2V_block_in_plane + ldrh w1, [x19, 560] + and w0, w0, 65535 + cmp w1, w0 + beq .L2629 + ldrh w1, [x19, 608] + cmp w1, w0 + beq .L2629 + ldrh w1, [x19, 656] + cmp w1, w0 + bne .L2624 +.L2629: + ldr x0, [x19, 3584] + mov w2, 0 + mov w1, 1 + str w4, [x0, 4] + ldr x3, [x0, 16] + ldr x0, [x19, 3584] + str x3, [x29, 136] + bl FlashReadPages + ldr x0, [x19, 3584] + ldr w0, [x0] + cmn w0, #1 + beq .L2624 + ldr x3, [x29, 136] + mov w0, w22 + ldr w1, [x3, 4] + bl ftl_cmp_data_ver + cbnz w0, .L2624 + mov w2, 1 + add x1, x29, 184 + mov w0, w26 + bl log2phys + b .L2624 +.L2611: + ldr x1, [x29, 152] + mov w2, w22 + ldrh w0, [x20] + strh w0, [x1, 1842] + mov w1, w5 + ldr x0, [x29, 112] + bl printk + ldr x0, [x29, 152] + ldr w0, [x0, 1848] + cmp w0, 31 + bhi .L2631 + ldr x2, [x29, 104] + ldr w1, [x29, 188] + str w1, [x2, w0, uxtw 2] + add w0, w0, 1 + ldr x1, [x29, 152] + str w0, [x1, 1848] +.L2631: + ldrh w0, [x20] + bl decrement_vpc_count + ldr w0, [x19, 3884] + cmn w0, #1 + bne .L2632 +.L2713: + str w22, [x19, 3884] + b .L2609 +.L2632: + cmp w22, w0 + bcs .L2609 + b .L2713 +.L2636: + add w0, w0, 1 + and w0, w0, 65535 + b .L2635 +.L2610: + strb w27, [x20, 6] + strh w21, [x20, 2] + b .L2715 .size FtlRecoverySuperblock, .-FtlRecoverySuperblock .align 2 .global FtlVpcCheckAndModify @@ -17838,727 +17481,706 @@ FtlRecoverySuperblock: FtlVpcCheckAndModify: stp x29, x30, [sp, -80]! adrp x1, .LANCHOR3 - adrp x0, .LC109 add x1, x1, :lo12:.LANCHOR3 + adrp x0, .LC109 add x29, sp, 0 + stp x19, x20, [sp, 16] + adrp x20, .LANCHOR2 + stp x23, x24, [sp, 48] + add x23, x20, :lo12:.LANCHOR2 + stp x21, x22, [sp, 32] + adrp x21, .LANCHOR0 + add x22, x21, :lo12:.LANCHOR0 add x1, x1, 232 add x0, x0, :lo12:.LC109 - stp x19, x20, [sp,16] - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - adrp x22, .LANCHOR0 bl printk - add x1, x22, :lo12:.LANCHOR0 - adrp x20, .LANCHOR2 - add x0, x20, :lo12:.LANCHOR2 - mov w19, 0 - ldrh w2, [x1,2482] + ldr x0, [x23, 3704] mov w1, 0 - ldr x0, [x0,3712] + ldrh w2, [x22, 2482] + mov w19, 0 lsl w2, w2, 1 bl ftl_memset -.L2757: - add x0, x22, :lo12:.LANCHOR0 - ldr w0, [x0,2616] +.L2718: + ldr w0, [x22, 2616] cmp w19, w0 - bcs .L2773 - mov w0, w19 - add x1, x29, 76 - mov w2, 0 - bl log2phys - ldr w0, [x29,76] - cmn w0, #1 - beq .L2758 - lsr x0, x0, 10 - bl P2V_block_in_plane - ubfiz x0, x0, 1, 16 - add x1, x20, :lo12:.LANCHOR2 - ldr x2, [x1,3712] - ldrh w1, [x2,x0] - add w1, w1, 1 - strh w1, [x2,x0] -.L2758: - add w19, w19, 1 - b .L2757 -.L2773: - adrp x23, .LC151 - mov w19, 0 + bcc .L2720 + adrp x22, .LC151 + add x23, x21, :lo12:.LANCHOR0 add x20, x20, :lo12:.LANCHOR2 + add x22, x22, :lo12:.LC151 + mov w19, 0 mov w24, 65535 - add x23, x23, :lo12:.LC151 -.L2760: - add x0, x22, :lo12:.LANCHOR0 - ldrh w0, [x0,2480] +.L2721: + ldrh w0, [x23, 2480] cmp w0, w19 - bls .L2774 - ubfiz x21, x19, 1, 16 - ldr x0, [x20,520] - ldrh w2, [x0,x21] - ldr x0, [x20,3712] - cmp w2, w24 - ldrh w3, [x0,x21] - beq .L2761 - cmp w2, w3 - beq .L2761 - ldrh w0, [x20,560] - cmp w0, w19 - beq .L2761 - ldrh w0, [x20,656] - cmp w0, w19 - beq .L2761 - ldrh w0, [x20,608] - cmp w0, w19 - beq .L2761 - mov w1, w19 - mov x0, x23 - bl printk - ldr x0, [x20,520] - ldrh w1, [x0,x21] - cbnz w1, .L2762 - ldr x1, [x20,3712] - ldrh w1, [x1,x21] - strh w1, [x0,x21] - b .L2761 -.L2762: - ldr x1, [x20,3712] - ldrh w1, [x1,x21] - strh w1, [x0,x21] - mov w0, w19 - bl update_vpc_list -.L2761: - add w19, w19, 1 - uxth w19, w19 - b .L2760 -.L2774: + bhi .L2724 bl l2p_flush bl FtlVpcTblFlush - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] ldp x29, x30, [sp], 80 ret +.L2720: + mov w2, 0 + add x1, x29, 76 + mov w0, w19 + bl log2phys + ldr w0, [x29, 76] + cmn w0, #1 + beq .L2719 + lsr w0, w0, 10 + bl P2V_block_in_plane + ldr x2, [x23, 3704] + ubfiz x0, x0, 1, 16 + ldrh w1, [x2, x0] + add w1, w1, 1 + strh w1, [x2, x0] +.L2719: + add w19, w19, 1 + b .L2718 +.L2724: + ldr x0, [x20, 520] + ubfiz x21, x19, 1, 16 + ldrh w2, [x0, x21] + ldr x0, [x20, 3704] + ldrh w3, [x0, x21] + cmp w2, w3 + beq .L2722 + cmp w2, w24 + beq .L2722 + ldrh w0, [x20, 560] + cmp w0, w19 + beq .L2722 + ldrh w0, [x20, 656] + cmp w0, w19 + beq .L2722 + ldrh w0, [x20, 608] + cmp w0, w19 + beq .L2722 + mov w1, w19 + mov x0, x22 + bl printk + ldr x0, [x20, 520] + ldrh w1, [x0, x21] + cbnz w1, .L2723 + ldr x1, [x20, 3704] + ldrh w1, [x1, x21] + strh w1, [x0, x21] +.L2722: + add w19, w19, 1 + and w19, w19, 65535 + b .L2721 +.L2723: + ldr x1, [x20, 3704] + ldrh w1, [x1, x21] + strh w1, [x0, x21] + mov w0, w19 + bl update_vpc_list + b .L2722 .size FtlVpcCheckAndModify, .-FtlVpcCheckAndModify .align 2 .global FtlGcScanTempBlk .type FtlGcScanTempBlk, %function FtlGcScanTempBlk: - stp x29, x30, [sp, -224]! + stp x29, x30, [sp, -208]! add x29, sp, 0 - stp x19, x20, [sp,16] - mov x20, x0 + stp x19, x20, [sp, 16] + mov x19, x0 adrp x0, .LANCHOR1 - str w1, [x29,148] + stp x21, x22, [sp, 32] + str w1, [x29, 132] 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,136] - ldrh w27, [x1,3456] + stp x23, x24, [sp, 48] + stp x25, x26, [sp, 64] + stp x27, x28, [sp, 80] + str x0, [x29, 120] + ldrh w28, [x1, 3456] mov w1, 65535 - cmp w27, w1 - beq .L2808 - cbnz w27, .L2776 - b .L2777 -.L2808: - mov w27, 0 -.L2776: - adrp x0, .LANCHOR0+2544 - ldr w1, [x29,148] - ldrh w0, [x0,#:lo12:.LANCHOR0+2544] - cmp w1, w0 - bne .L2778 -.L2777: + cmp w28, w1 + beq .L2760 + cbnz w28, .L2730 +.L2731: bl FtlGcPageVarInit -.L2778: + b .L2732 +.L2760: + mov w28, 0 +.L2730: + adrp x0, .LANCHOR0+2544 + ldr w1, [x29, 132] + ldrh w0, [x0, #:lo12:.LANCHOR0+2544] + cmp w0, w1 + beq .L2731 +.L2732: + adrp x25, .LANCHOR2 + mov x21, x25 + add x26, x25, :lo12:.LANCHOR2 mov w0, -1 - str w0, [x29,152] - adrp x0, .LC153 - mov w23, 0 - add x0, x0, :lo12:.LC153 - adrp x28, .LANCHOR0 - str x0, [x29,128] -.L2779: - ldrh w1, [x20] - mov w0, 65535 - strb wzr, [x20,8] - cmp w1, w0 - beq .L2809 -.L2781: - str w0, [x29,156] -.L2805: - adrp x0, .LANCHOR0 - mov x2, x20 - add x0, x0, :lo12:.LANCHOR0 - mov w21, 0 + mov w24, 0 + str w0, [x29, 136] +.L2733: + ldrh w0, [x19] + mov w23, 65535 + strb wzr, [x19, 8] + cmp w0, w23 + beq .L2761 +.L2757: + adrp x20, .LANCHOR0 + add x0, x20, :lo12:.LANCHOR0 + add x2, x19, 16 + add x4, x25, :lo12:.LANCHOR2 + mov w22, 0 mov w10, 56 - adrp x11, .LANCHOR2 + ldrh w8, [x0, 2554] mov w7, 4 - ldrh w5, [x0,2472] - ldrh w8, [x0,2554] - ldrh w9, [x0,2556] - add x5, x20, x5, lsl 1 -.L2782: - cmp x2, x5 - beq .L2828 - ldrh w1, [x2,16] - ldr w0, [x29,156] - cmp w1, w0 - beq .L2783 - add x4, x11, :lo12:.LANCHOR2 - orr w1, w27, w1, lsl 10 - umull x0, w21, w10 - ldr x6, [x4,3592] - add x6, x6, x0 - str w1, [x6,4] - ldr x1, [x4,3592] - ldr x6, [x4,1400] - add x0, x1, x0 - ldr x4, [x4,1408] - mul w1, w21, w8 + ldrh w9, [x0, 2556] + ldrh w0, [x0, 2472] + add x0, x0, 8 + add x0, x19, x0, lsl 1 +.L2735: + cmp x2, x0 + bne .L2737 + add x0, x25, :lo12:.LANCHOR2 + mov w1, w22 + mov w2, 0 + add x27, x20, :lo12:.LANCHOR0 + ldr x0, [x0, 3584] + bl FlashReadPages + mov w0, 56 + umull x0, w22, w0 + mov x22, 0 + str x0, [x29, 112] +.L2738: + ldr x0, [x29, 112] + cmp x0, x22 + bne .L2755 + ldr w0, [x29, 132] + add w3, w28, 1 + add w24, w24, 1 + and w28, w3, 65535 + cmp w0, w24 + bls .L2756 +.L2758: + add x20, x20, :lo12:.LANCHOR0 + ldrh w0, [x20, 2544] + cmp w0, w28 + bhi .L2757 +.L2761: + mov w2, 0 + b .L2734 +.L2737: + ldrh w1, [x2] + cmp w1, w23 + beq .L2736 + umull x11, w22, w10 + ldr x6, [x4, 3584] + orr w1, w28, w1, lsl 10 + add x6, x6, x11 + str w1, [x6, 4] + mul w1, w22, w8 + ldr x5, [x4, 3584] + ldr x6, [x4, 1392] + sdiv w1, w1, w7 + add x5, x5, x11 + add x1, x6, w1, sxtw 2 + str x1, [x5, 8] + mul w1, w22, w9 + ldr x6, [x4, 1400] + add w22, w22, 1 + and w22, w22, 65535 sdiv w1, w1, w7 add x1, x6, w1, sxtw 2 - str x1, [x0,8] - mul w1, w21, w9 - add w21, w21, 1 - uxth w21, w21 - sdiv w1, w1, w7 - add x1, x4, w1, sxtw 2 - str x1, [x0,16] -.L2783: + str x1, [x5, 16] +.L2736: add x2, x2, 2 - b .L2782 -.L2828: - adrp x19, .LANCHOR2 - mov w1, w21 - add x0, x19, :lo12:.LANCHOR2 - mov w2, 0 - mov x24, 0 - ldr x0, [x0,3592] - bl FlashReadPages -.L2785: - cmp w21, w24, uxth - bls .L2829 - add x25, x19, :lo12:.LANCHOR2 - mov x0, 56 - mul x22, x24, x0 - ldr x1, [x25,3592] - str x1, [x29,112] - add x2, x1, x22 - str x2, [x29,120] - ldr w26, [x2,4] - lsr x0, x26, 10 + b .L2735 +.L2755: + ldr x5, [x26, 3584] + add x4, x5, x22 + ldr w0, [x4, 4] + str w0, [x29, 140] + uxtw x1, w0 + lsr w0, w1, 10 bl P2V_plane - uxth w5, w0 - ldr x1, [x29,112] - ldr x2, [x29,120] - ldr w8, [x1,x22] - ldr x4, [x2,16] - cbnz w8, .L2786 + and w2, w0, 65535 + ldr w0, [x5, x22] + ldr x4, [x4, 16] + cbnz w0, .L2739 ldrh w0, [x4] - ldr w1, [x29,156] - cmp w0, w1 - bne .L2787 -.L2790: - adrp x0, .LANCHOR0 - add x0, x0, :lo12:.LANCHOR0 - ldrb w0, [x0,204] - cbz w0, .L2824 - add x19, x19, :lo12:.LANCHOR2 + cmp w0, w23 + bne .L2740 +.L2743: + add x20, x20, :lo12:.LANCHOR0 + ldrb w0, [x20, 204] + cbz w0, .L2777 + add x21, x21, :lo12:.LANCHOR2 mov w0, 1 - str w0, [x19,3888] - b .L2780 -.L2787: - add x7, x28, :lo12:.LANCHOR0 - ldr w0, [x4,8] - ldr w1, [x7,2616] - cmp w0, w1 - bls .L2825 - b .L2790 -.L2824: - add x19, x19, :lo12:.LANCHOR2 - ldrh w2, [x20] - ldr x1, [x19,520] - strh w0, [x1,x2,lsl 1] - b .L2827 -.L2825: - ldrb w1, [x7,72] - cbz w1, .L2794 - add x1, x29, 164 - mov w2, w8 - str x4, [x29,120] - str x7, [x29,104] - str x8, [x29,112] - bl log2phys - ldr x4, [x29,120] - ldr w1, [x29,164] - ldr w0, [x4,12] - cmp w1, w0 - bne .L2794 - cmn w1, #1 - beq .L2794 - str w0, [x29,172] - mov w1, 1 - ldr x0, [x25,3656] - ldr x8, [x29,112] - str x0, [x29,176] - ldr x0, [x25,3672] - mov w2, w8 - str x0, [x29,184] - add x0, x29, 168 - bl FlashReadPages - ldr x7, [x29,104] - ldr x0, [x25,3592] - ldr x5, [x29,176] - ldrh w2, [x7,2550] - add x22, x0, x22 - ldr x4, [x29,120] - mov x0, 0 - lsl w2, w2, 7 -.L2796: - cmp w2, w0 - bls .L2794 - lsl x1, x0, 2 - ldr x6, [x22,8] - add x0, x0, 1 - ldr w6, [x6,x1] - ldr w1, [x5,x1] - cmp w6, w1 - beq .L2796 - ldrh w1, [x20] - adrp x0, .LC152 - ldr w2, [x29,172] - add x0, x0, :lo12:.LC152 - add x19, x19, :lo12:.LANCHOR2 - bl printk - ldrh w1, [x20] - ldr x0, [x19,520] - strh wzr, [x0,x1,lsl 1] -.L2827: - ldrh w0, [x20] - bl INSERT_FREE_LIST - mov w0, -1 - strh w0, [x20] - strh w0, [x19,800] - b .L2826 -.L2794: - ldr w0, [x4,12] - mov w1, w26 - ldr w2, [x4,8] - add x24, x24, 1 - bl FtlGcUpdatePage - b .L2785 -.L2786: - ldrh w1, [x20] - mov w2, w26 - ldr x0, [x29,128] - bl printk - adrp x0, .LANCHOR0 - add x0, x0, :lo12:.LANCHOR0 - ldr w1, [x0,2372] - cbnz w1, .L2799 - ldrb w0, [x0,204] - cbz w0, .L2800 -.L2799: - add x0, x19, :lo12:.LANCHOR2 - ldrh w1, [x20] - ldr x0, [x0,440] - ldrh w0, [x0,x1,lsl 1] - cmp w0, 159 - bls .L2801 -.L2800: - add x0, x19, :lo12:.LANCHOR2 - ldr x0, [x0,3592] - ldr w0, [x0,x22] - cmn w0, #1 - bne .L2802 -.L2801: - add x0, x19, :lo12:.LANCHOR2 - ldr x0, [x0,3592] - add x22, x0, x22 - ldr w0, [x22,4] - str w0, [x29,152] -.L2802: - add x19, x19, :lo12:.LANCHOR2 - ldrh w1, [x20] - ldr x0, [x19,520] - strh wzr, [x0,x1,lsl 1] - ldrh w0, [x20] - bl INSERT_FREE_LIST - mov w0, -1 - strh w0, [x20] -.L2826: - bl FtlGcPageVarInit - mov w27, 0 - b .L2779 -.L2829: - ldr w0, [x29,148] - add w23, w23, 1 - add w3, w27, 1 - cmp w23, w0 - uxth w27, w3 - bcs .L2804 -.L2806: - add x0, x28, :lo12:.LANCHOR0 - ldrh w0, [x0,2544] - cmp w0, w27 - bhi .L2805 - b .L2809 -.L2804: - ldr x0, [x29,136] - ldr w2, [x29,156] - add x1, x0, :lo12:.LANCHOR1 - ldrh w0, [x1,3456] - cmp w0, w2 - beq .L2806 - add w0, w0, w23 - strh w0, [x1,3456] - add x0, x28, :lo12:.LANCHOR0 - ldrh w0, [x0,2544] - cmp w0, w27 - bls .L2806 - b .L2807 -.L2809: - mov w5, 0 -.L2780: - ldr x0, [x29,136] + str w0, [x21, 3880] +.L2734: + ldr x0, [x29, 120] mov w1, -1 - strh w27, [x20,2] - mov w2, w5 + strh w28, [x19, 2] add x0, x0, :lo12:.LANCHOR1 - strb w5, [x20,6] - strh w1, [x0,3456] - mov x0, x20 - mov w1, w27 + strb w2, [x19, 6] + strh w1, [x0, 3456] + mov w1, w28 + mov x0, x19 bl ftl_sb_update_avl_pages -.L2807: - ldr w0, [x29,152] - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 224 + b .L2729 +.L2740: + ldr w0, [x4, 8] + ldr w1, [x27, 2616] + cmp w0, w1 + bhi .L2743 + ldrb w1, [x27, 72] + cbnz w1, .L2746 +.L2747: + ldp w2, w0, [x4, 8] + add x22, x22, 56 + ldr w1, [x29, 140] + bl FtlGcUpdatePage + b .L2738 +.L2746: + add x1, x29, 148 + str x4, [x29, 104] + mov w2, 0 + bl log2phys + ldr x4, [x29, 104] + ldr w1, [x29, 148] + ldr w0, [x4, 12] + cmp w0, w1 + bne .L2747 + cmn w0, #1 + beq .L2747 + str w0, [x29, 156] + mov w2, 0 + ldr x0, [x26, 3648] + mov w1, 1 + str x0, [x29, 160] + ldr x0, [x26, 3664] + str x0, [x29, 168] + add x0, x29, 152 + bl FlashReadPages + ldrh w1, [x27, 2550] + mov x0, 0 + ldr x2, [x26, 3584] + ldr x4, [x29, 104] + ldr x5, [x29, 160] + ubfiz x1, x1, 9, 16 + add x2, x2, x22 +.L2748: + cmp x0, x1 + beq .L2747 + ldr x6, [x2, 8] + ldr w7, [x6, x0] + add x0, x0, 4 + add x6, x5, x0 + ldr w6, [x6, -4] + cmp w7, w6 + beq .L2748 + ldrh w1, [x19] + adrp x0, .LC152 + ldr w2, [x29, 156] + add x0, x0, :lo12:.LC152 + bl printk +.L2777: + add x13, x21, :lo12:.LANCHOR2 + ldrh w1, [x19] + ldr x0, [x13, 520] + strh wzr, [x0, x1, lsl 1] + ldrh w0, [x19] + bl INSERT_FREE_LIST + mov w0, -1 + strh w0, [x19] + strh w0, [x13, 800] +.L2776: + bl FtlGcPageVarInit + mov w28, 0 + b .L2733 +.L2739: + ldrh w1, [x19] + add x20, x20, :lo12:.LANCHOR0 + ldr w2, [x29, 140] + adrp x0, .LC153 + add x0, x0, :lo12:.LC153 + bl printk + ldr w1, [x20, 2372] + ldrh w0, [x19] + cbnz w1, .L2751 + ldrb w1, [x20, 204] + cbz w1, .L2752 +.L2751: + add x2, x21, :lo12:.LANCHOR2 + ubfiz x1, x0, 1, 16 + ldr x2, [x2, 440] + ldrh w1, [x2, x1] + cmp w1, 159 + bls .L2753 +.L2752: + add x1, x21, :lo12:.LANCHOR2 + ldr x1, [x1, 3584] + ldr w1, [x1, x22] + cmn w1, #1 + bne .L2754 +.L2753: + add x1, x21, :lo12:.LANCHOR2 + ldr x1, [x1, 3584] + add x22, x1, x22 + ldr w1, [x22, 4] + str w1, [x29, 136] +.L2754: + add x1, x21, :lo12:.LANCHOR2 + ubfiz x0, x0, 1, 16 + ldr x1, [x1, 520] + strh wzr, [x1, x0] + ldrh w0, [x19] + bl INSERT_FREE_LIST + mov w0, -1 + strh w0, [x19] + b .L2776 +.L2756: + ldr x0, [x29, 120] + add x1, x0, :lo12:.LANCHOR1 + ldrh w0, [x1, 3456] + cmp w0, w23 + beq .L2758 + add w0, w0, w24 + strh w0, [x1, 3456] + add x0, x20, :lo12:.LANCHOR0 + ldrh w0, [x0, 2544] + cmp w0, w28 + bls .L2758 +.L2729: + ldr w0, [x29, 136] + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] + ldp x27, x28, [sp, 80] + ldp x29, x30, [sp], 208 ret .size FtlGcScanTempBlk, .-FtlGcScanTempBlk .align 2 .global FtlReadRefresh .type FtlReadRefresh, %function FtlReadRefresh: + adrp x1, .LANCHOR2 + add x0, x1, :lo12:.LANCHOR2 + add x2, x0, 848 + ldr w3, [x2, 80] + cbz w3, .L2779 + adrp x1, .LANCHOR0 + add x1, x1, :lo12:.LANCHOR0 + ldr w4, [x2, 84] + ldr w3, [x1, 2616] + cmp w4, w3 + bcs .L2780 stp x29, x30, [sp, -112]! - adrp x2, .LANCHOR2 - add x1, x2, :lo12:.LANCHOR2 add x29, sp, 0 - add x3, x1, 856 - stp x19, x20, [sp,16] - stp x21, x22, [sp,32] - adrp x20, .LANCHOR0 - ldr w0, [x3,80] - cbz w0, .L2831 - add x0, x20, :lo12:.LANCHOR0 - ldr w2, [x3,84] - ldr w0, [x0,2616] - cmp w2, w0 - bcs .L2832 + stp x19, x20, [sp, 16] + mov x19, x0 + mov x20, x1 + stp x21, x22, [sp, 32] mov w21, 2048 - mov x19, x1 -.L2837: - add x22, x19, 856 - add x1, x20, :lo12:.LANCHOR0 - ldr w0, [x22,84] - ldr w1, [x1,2616] +.L2785: + add x22, x19, 848 + ldr w1, [x20, 2616] + ldr w0, [x22, 84] cmp w0, w1 - bcs .L2836 + bcc .L2781 +.L2784: + ldp x19, x20, [sp, 16] + mov w0, -1 + ldp x21, x22, [sp, 32] + ldp x29, x30, [sp], 112 + ret +.L2781: add x1, x29, 52 mov w2, 0 bl log2phys - ldr w0, [x22,84] - ldr w1, [x29,52] + ldr w0, [x22, 84] + ldr w1, [x29, 52] add w0, w0, 1 - str w0, [x22,84] + str w0, [x22, 84] cmn w1, #1 - beq .L2835 - str w1, [x29,60] + beq .L2783 + str w0, [x29, 80] + add x0, x29, 112 + str w1, [x29, 60] mov w2, 0 - str w0, [x29,80] + stp xzr, xzr, [x29, 64] mov w1, 1 - add x0, x29, 56 - str xzr, [x29,64] - str xzr, [x29,72] - str wzr, [x29,56] + str wzr, [x0, -56]! bl FlashReadPages - ldr w0, [x29,56] + ldr w0, [x29, 56] cmp w0, 256 - bne .L2836 - ldr w0, [x29,52] - lsr x0, x0, 10 + bne .L2784 + ldr w0, [x29, 52] + lsr w0, w0, 10 bl P2V_block_in_plane bl FtlGcRefreshBlock -.L2836: - mov w0, -1 - b .L2839 -.L2835: + b .L2784 +.L2783: subs w21, w21, #1 - bne .L2837 - b .L2836 -.L2832: - ldr w0, [x1,720] - str wzr, [x3,80] - str wzr, [x3,84] - str w0, [x3,76] - b .L2846 -.L2831: - ldr w4, [x1,772] - mov w6, 10000 - mov w8, 63 - ldr w7, [x1,720] - cmp w4, w6 - mov w6, 31 - csel w8, w6, w8, hi - ldr w6, [x3,76] - add x20, x20, :lo12:.LANCHOR0 - add w9, w7, 1048576 - cmp w6, w9 - ldr w5, [x20,2616] - bhi .L2841 - mov w9, 1000 - lsr w4, w4, 10 - add w4, w4, 1 - mul w5, w5, w9 - udiv w4, w5, w4 - add w4, w4, w6 - cmp w4, w7 - bcc .L2841 - ldrh w1, [x1,484] - tst w8, w1 - bne .L2839 - ldr w3, [x3,100] - cmp w3, w1 - beq .L2839 -.L2841: - add x0, x2, :lo12:.LANCHOR2 - add x1, x0, 856 - ldrh w0, [x0,484] - str w0, [x1,100] - mov w0, 1 - str wzr, [x1,84] - str w0, [x1,80] - str w7, [x1,76] -.L2846: + bne .L2785 + b .L2784 +.L2780: + ldr w0, [x0, 720] + stp w0, wzr, [x2, 76] + str wzr, [x2, 84] +.L2792: mov w0, 0 -.L2839: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x29, x30, [sp], 112 ret +.L2779: + ldr w4, [x0, 772] + mov w3, 10000 + ldr w5, [x0, 720] + mov w6, 31 + cmp w4, w3 + ldr w7, [x2, 76] + mov w3, 63 + csel w6, w6, w3, hi + add w3, w5, 1048576 + cmp w7, w3 + bhi .L2789 + adrp x3, .LANCHOR0+2616 + mov w8, 1000 + lsr w4, w4, 10 + ldr w3, [x3, #:lo12:.LANCHOR0+2616] + add w4, w4, 1 + mul w3, w3, w8 + udiv w3, w3, w4 + add w3, w3, w7 + cmp w5, w3 + bhi .L2789 + ldrh w0, [x0, 484] + tst w6, w0 + bne .L2792 + ldr w2, [x2, 100] + cmp w0, w2 + beq .L2792 +.L2789: + add x0, x1, :lo12:.LANCHOR2 + add x1, x0, 848 + ldrh w0, [x0, 484] + str w0, [x1, 100] + str w5, [x1, 76] + mov w0, 1 + str wzr, [x1, 84] + str w0, [x1, 80] + b .L2792 .size FtlReadRefresh, .-FtlReadRefresh .align 2 .global FtlGcFreeTempBlock .type FtlGcFreeTempBlock, %function FtlGcFreeTempBlock: - stp x29, x30, [sp, -96]! + stp x29, x30, [sp, -112]! add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] adrp x19, .LANCHOR2 add x2, x19, :lo12:.LANCHOR2 - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] + stp x21, x22, [sp, 32] + stp x23, x24, [sp, 48] adrp x21, .LANCHOR0 + stp x25, x26, [sp, 64] add x1, x21, :lo12:.LANCHOR0 - ldr w3, [x2,424] - ldrh w1, [x1,2544] - cbnz w3, .L2883 - ldrh w20, [x2,656] - mov w4, 65535 - cmp w20, w4 - bne .L2850 -.L2859: + str x27, [sp, 80] + ldr w3, [x2, 424] + ldrh w1, [x1, 2544] + cbz w3, .L2799 +.L2836: + mov w0, 0 +.L2798: + 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], 112 + ret +.L2799: + ldrh w20, [x2, 656] + mov w3, 65535 + cmp w20, w3 + bne .L2801 +.L2810: add x20, x19, :lo12:.LANCHOR2 mov w0, 65535 add x22, x20, 656 - ldrh w1, [x20,656] - str wzr, [x20,3888] + ldrh w1, [x20, 656] + str wzr, [x20, 3880] cmp w1, w0 - beq .L2883 + beq .L2836 + add x23, x21, :lo12:.LANCHOR0 bl FtlCacheWriteBack + ldrb w0, [x22, 7] mov w26, 12 - add x3, x21, :lo12:.LANCHOR0 - ldrb w0, [x22,7] - ldr x1, [x20,520] + ldr x1, [x20, 520] mov w22, 0 - ldrh w2, [x20,656] - ldrh w3, [x3,2544] + ldrh w3, [x23, 2544] + ldrh w2, [x20, 656] mul w0, w0, w3 - strh w0, [x1,x2,lsl 1] - ldr w0, [x20,740] - ldrh w1, [x20,1440] - add w0, w1, w0 - str w0, [x20,740] - b .L2860 -.L2850: - cbz w0, .L2853 - adrp x0, .LANCHOR1 - add x0, x0, :lo12:.LANCHOR1 - ldrh w5, [x0,3456] - cmp w5, w4 - beq .L2854 -.L2855: - mov w1, 2 - b .L2853 -.L2854: - strh w3, [x0,3456] - ldrh w0, [x2,552] - cmp w0, 17 - bhi .L2855 -.L2853: - add x22, x19, :lo12:.LANCHOR2 - add x0, x22, 656 - bl FtlGcScanTempBlk - str w0, [x29,92] - cmn w0, #1 - beq .L2856 - ubfiz x20, x20, 1, 16 - ldr x1, [x22,440] - ldrh w0, [x1,x20] - cmp w0, 4 - bls .L2857 - sub w0, w0, #5 - strh w0, [x1,x20] - mov w0, 1 - bl FtlEctTblFlush -.L2857: - add x0, x19, :lo12:.LANCHOR2 - ldr w1, [x0,3888] - cbnz w1, .L2858 - ldr w1, [x0,952] - add w1, w1, 1 - str w1, [x0,952] - ldr w0, [x29,92] - lsr w0, w0, 10 - bl FtlBbmMapBadBlock - bl FtlBbmTblFlush -.L2858: - add x19, x19, :lo12:.LANCHOR2 - mov w0, 1 - str wzr, [x19,3888] - b .L2849 -.L2856: - adrp x0, .LANCHOR1+3456 - mov w1, 65535 - ldrh w2, [x0,#:lo12:.LANCHOR1+3456] - mov w0, 1 - cmp w2, w1 - bne .L2849 - b .L2859 -.L2863: - ldr w1, [x23,4] - cmp w0, w1 - bne .L2881 -.L2862: - add w22, w22, 1 - uxth w22, w22 -.L2860: - ldrh w0, [x20,1440] + strh w0, [x1, x2, lsl 1] + ldr w1, [x20, 740] + ldrh w0, [x20, 1432] + add w0, w0, w1 + str w0, [x20, 740] +.L2811: + ldrh w0, [x20, 1432] cmp w0, w22 - bls .L2884 - umull x24, w22, w26 - ldr x25, [x20,1448] - add x1, x21, :lo12:.LANCHOR0 - add x23, x25, x24 - ldr w1, [x1,2616] - ldr w0, [x23,8] - cmp w0, w1 - bcs .L2881 - add x1, x29, 92 - mov w2, 0 - bl log2phys - ldr w0, [x29,92] - ldr w1, [x25,x24] - cmp w0, w1 - bne .L2863 - lsr x0, x0, 10 - bl P2V_block_in_plane - mov w24, w0 - ldr w0, [x23,8] - add x1, x23, 4 - mov w2, 1 - bl log2phys - mov w0, w24 - b .L2882 -.L2881: - ldrh w0, [x20,656] -.L2882: - bl decrement_vpc_count - b .L2862 -.L2884: + bhi .L2815 mov w0, -1 bl decrement_vpc_count add x0, x21, :lo12:.LANCHOR0 - ldrb w0, [x0,204] - cbz w0, .L2865 + ldrb w0, [x0, 204] + cbz w0, .L2816 + ldrh w1, [x20, 656] adrp x0, .LC154 - ldrh w1, [x20,656] add x0, x0, :lo12:.LC154 bl printk -.L2865: +.L2816: add x1, x19, :lo12:.LANCHOR2 - ldrh w0, [x1,656] - ldr x1, [x1,520] + ldrh w0, [x1, 656] + ldr x1, [x1, 520] ubfiz x2, x0, 1, 16 - ldrh w1, [x1,x2] - cbz w1, .L2866 + ldrh w1, [x1, x2] + cbz w1, .L2817 bl INSERT_DATA_LIST - b .L2867 -.L2866: - bl INSERT_FREE_LIST -.L2867: +.L2818: add x20, x19, :lo12:.LANCHOR2 mov w22, -1 - strh wzr, [x20,1440] - strh w22, [x20,656] - strh wzr, [x20,1428] + strh wzr, [x20, 1432] + strh w22, [x20, 656] + strh wzr, [x20, 1420] bl l2p_flush bl FtlVpcTblFlush - strh w22, [x20,800] + strh w22, [x20, 800] add x0, x21, :lo12:.LANCHOR0 - ldr w0, [x0,2372] - cbz w0, .L2868 - ldr w0, [x20,776] + ldr w0, [x0, 2372] + cbz w0, .L2819 + ldr w0, [x20, 776] cmp w0, 39 - bhi .L2868 - ldrh w0, [x20,780] - ldrh w1, [x20,552] + bhi .L2819 + ldrh w0, [x20, 780] + ldrh w1, [x20, 552] cmp w1, w0 - bcs .L2883 - lsl w0, w0, 1 - strh w0, [x20,1368] -.L2883: - mov w0, 0 - b .L2849 -.L2868: + bcs .L2836 + ubfiz w0, w0, 1, 15 + strh w0, [x20, 1364] + b .L2836 +.L2801: + cbz w0, .L2804 + adrp x0, .LANCHOR1 + add x0, x0, :lo12:.LANCHOR1 + ldrh w4, [x0, 3456] + cmp w4, w3 + beq .L2805 +.L2806: + mov w1, 2 +.L2804: + add x22, x19, :lo12:.LANCHOR2 + add x0, x22, 656 + bl FtlGcScanTempBlk + str w0, [x29, 108] + cmn w0, #1 + beq .L2807 + ldr x1, [x22, 440] + ubfiz x20, x20, 1, 16 + ldrh w0, [x1, x20] + cmp w0, 4 + bls .L2808 + sub w0, w0, #5 + strh w0, [x1, x20] + mov w0, 1 + bl FtlEctTblFlush +.L2808: + add x0, x19, :lo12:.LANCHOR2 + ldr w1, [x0, 3880] + cbnz w1, .L2809 + ldr w1, [x0, 944] + add w1, w1, 1 + str w1, [x0, 944] + ldr w0, [x29, 108] + lsr w0, w0, 10 + bl FtlBbmMapBadBlock + bl FtlBbmTblFlush +.L2809: add x19, x19, :lo12:.LANCHOR2 - ldrh w1, [x19,780] - ldrh w0, [x19,552] - add w2, w1, w1, lsl 1 - cmp w0, w2, lsr 2 - ble .L2883 + str wzr, [x19, 3880] +.L2821: + mov w0, 1 + b .L2798 +.L2805: + strh wzr, [x0, 3456] + ldrh w0, [x2, 552] + cmp w0, 17 + bhi .L2806 + b .L2804 +.L2807: + adrp x0, .LANCHOR1+3456 + ldrh w1, [x0, #:lo12:.LANCHOR1+3456] + mov w0, 65535 + cmp w1, w0 + bne .L2821 + b .L2810 +.L2815: + umull x25, w22, w26 + ldr x27, [x20, 1440] + ldr w1, [x23, 2616] + add x24, x27, x25 + ldr w0, [x24, 8] + cmp w0, w1 + bcc .L2812 +.L2833: + ldrh w0, [x20, 656] + b .L2834 +.L2812: + add x1, x29, 108 + mov w2, 0 + bl log2phys + ldr w0, [x27, x25] + ldr w1, [x29, 108] + cmp w0, w1 + bne .L2814 + lsr w0, w0, 10 + bl P2V_block_in_plane + mov w25, w0 + ldr w0, [x24, 8] + mov w2, 1 + add x1, x24, 4 + bl log2phys + mov w0, w25 +.L2834: + bl decrement_vpc_count + b .L2813 +.L2814: + ldr w0, [x24, 4] + cmp w1, w0 + bne .L2833 +.L2813: + add w22, w22, 1 + and w22, w22, 65535 + b .L2811 +.L2817: + bl INSERT_FREE_LIST + b .L2818 +.L2819: + add x19, x19, :lo12:.LANCHOR2 + ldrh w0, [x19, 780] + ldrh w1, [x19, 552] + add w2, w0, w0, lsl 1 + cmp w1, w2, lsr 2 + ble .L2836 add x21, x21, :lo12:.LANCHOR0 - ldrb w0, [x21,204] - cbz w0, .L2869 - sub w1, w1, #2 - strh w1, [x19,1368] - b .L2883 -.L2869: - mov w1, 20 - strh w1, [x19,1368] -.L2849: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x29, x30, [sp], 96 - ret + ldrb w1, [x21, 204] + cbz w1, .L2820 + sub w0, w0, #2 +.L2835: + strh w0, [x19, 1364] + b .L2836 +.L2820: + mov w0, 20 + b .L2835 .size FtlGcFreeTempBlock, .-FtlGcFreeTempBlock .align 2 .global FtlGcPageRecovery @@ -18566,28 +18188,28 @@ FtlGcFreeTempBlock: FtlGcPageRecovery: stp x29, x30, [sp, -48]! add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] adrp x20, .LANCHOR0 - adrp x19, .LANCHOR2 add x20, x20, :lo12:.LANCHOR0 + adrp x19, .LANCHOR2 add x19, x19, :lo12:.LANCHOR2 - str x21, [sp,32] + str x21, [sp, 32] add x21, x19, 656 + ldrh w1, [x20, 2544] mov x0, x21 - ldrh w1, [x20,2544] bl FtlGcScanTempBlk - ldrh w1, [x19,658] - ldrh w0, [x20,2544] + ldrh w1, [x19, 658] + ldrh w0, [x20, 2544] cmp w1, w0 - bcc .L2885 - add x0, x19, 3800 + bcc .L2837 + add x0, x19, 3792 bl FtlMapBlkWriteDumpData mov w0, 0 bl FtlGcFreeTempBlock - str wzr, [x19,3888] -.L2885: - ldp x19, x20, [sp,16] - ldr x21, [sp,32] + str wzr, [x19, 3880] +.L2837: + ldp x19, x20, [sp, 16] + ldr x21, [sp, 32] ldp x29, x30, [sp], 48 ret .size FtlGcPageRecovery, .-FtlGcPageRecovery @@ -18596,12 +18218,12 @@ FtlGcPageRecovery: .type FtlPowerLostRecovery, %function FtlPowerLostRecovery: stp x29, x30, [sp, -32]! - adrp x0, .LANCHOR5+1332 + adrp x0, .LANCHOR4+1848 add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] adrp x19, .LANCHOR2 - str wzr, [x0,#:lo12:.LANCHOR5+1332] add x19, x19, :lo12:.LANCHOR2 + str wzr, [x0, #:lo12:.LANCHOR4+1848] add x20, x19, 560 add x19, x19, 608 mov x0, x20 @@ -18616,7 +18238,7 @@ FtlPowerLostRecovery: mov w0, -1 bl decrement_vpc_count mov w0, 0 - ldp x19, x20, [sp,16] + ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 32 ret .size FtlPowerLostRecovery, .-FtlPowerLostRecovery @@ -18627,31 +18249,37 @@ FtlSysBlkInit: stp x29, x30, [sp, -64]! mov w1, -1 add x29, sp, 0 - stp x19, x20, [sp,16] - stp x21, x22, [sp,32] + stp x19, x20, [sp, 16] adrp x20, .LANCHOR0 - adrp x21, .LANCHOR5 - stp x23, x24, [sp,48] - add x0, x21, :lo12:.LANCHOR5 + stp x23, x24, [sp, 48] add x24, x20, :lo12:.LANCHOR0 + stp x21, x22, [sp, 32] + adrp x21, .LANCHOR4 + add x0, x21, :lo12:.LANCHOR4 adrp x19, .LANCHOR2 add x23, x19, :lo12:.LANCHOR2 - strh w1, [x0,1328] - strh wzr, [x0,1330] - ldrh w0, [x24,2476] + strh w1, [x0, 1842] + strh wzr, [x0, 1844] + ldrh w0, [x24, 2476] bl FtlFreeSysBlkQueueInit bl FtlScanSysBlk - ldrh w1, [x23,784] + ldrh w1, [x23, 784] mov w0, 65535 cmp w1, w0 - bne .L2889 -.L2891: + bne .L2843 +.L2845: mov w22, -1 - b .L2890 -.L2889: +.L2842: + mov w0, w22 + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x29, x30, [sp], 64 + ret +.L2843: bl FtlLoadSysInfo mov w22, w0 - cbnz w0, .L2891 + cbnz w0, .L2845 bl FtlLoadMapInfo bl FtlLoadVonderInfo bl Ftl_load_ext_data @@ -18661,95 +18289,92 @@ FtlSysBlkInit: bl FtlPowerLostRecovery mov w0, 1 bl FtlUpdateVaildLpn - ldrh w2, [x24,2582] - mov x1, 0 - ldr x0, [x23,704] -.L2892: - cmp w1, w2 - mov w3, w1 - bge .L2896 - add x4, x0, x1, lsl 4 - add x1, x1, 1 - ldr w4, [x4,4] - tbz w4, #31, .L2892 -.L2896: - add x0, x19, :lo12:.LANCHOR2 - cmp w3, w2 - ldrh w1, [x0,484] - add w1, w1, 1 - strh w1, [x0,484] - blt .L2893 - add x21, x21, :lo12:.LANCHOR5 - ldrh w0, [x21,1330] - cbz w0, .L2897 -.L2893: + ldr x1, [x23, 704] + mov w0, 0 + ldrh w3, [x24, 2582] + add x1, x1, 4 +.L2846: + cmp w0, w3 + bge .L2851 + ldr w2, [x1], 16 + tbz w2, #31, .L2847 +.L2851: add x1, x19, :lo12:.LANCHOR2 - ldrh w2, [x1,560] - ldr x4, [x1,520] + cmp w0, w3 + ldrh w2, [x1, 484] + add w2, w2, 1 + strh w2, [x1, 484] + bge .L2858 +.L2848: + add x0, x19, :lo12:.LANCHOR2 + ldrh w2, [x0, 560] + ldr x4, [x0, 520] + ldrh w5, [x0, 564] lsl x2, x2, 1 - ldrh w5, [x1,564] - ldrh w3, [x4,x2] + ldrh w3, [x4, x2] sub w3, w3, w5 - strh w3, [x4,x2] + strh w3, [x4, x2] add x4, x20, :lo12:.LANCHOR0 - strb wzr, [x1,566] - ldr x5, [x1,520] - strh wzr, [x1,564] - ldrh w2, [x4,2544] - strh w2, [x1,562] - ldrh w2, [x1,608] - ldrh w6, [x1,612] + strb wzr, [x0, 566] + ldr x5, [x0, 520] + strh wzr, [x0, 564] + ldrh w2, [x4, 2544] + strh w2, [x0, 562] + ldrh w2, [x0, 608] + ldrh w6, [x0, 612] lsl x2, x2, 1 - ldrh w3, [x5,x2] + ldrh w3, [x5, x2] sub w3, w3, w6 - strh w3, [x5,x2] - strb wzr, [x1,614] - ldrh w0, [x1,486] - ldrh w2, [x4,2544] - add w0, w0, 1 - strh w2, [x1,610] - strh wzr, [x1,612] - strh w0, [x1,486] + strh w3, [x5, x2] + strb wzr, [x0, 614] + ldrh w1, [x0, 486] + ldrh w2, [x4, 2544] + add w1, w1, 1 + strh w2, [x0, 610] + strh w1, [x0, 486] + strh wzr, [x0, 612] bl l2p_flush bl FtlVpcTblFlush bl FtlVpcTblFlush -.L2897: + b .L2852 +.L2847: + add w0, w0, 1 + b .L2846 +.L2858: + add x21, x21, :lo12:.LANCHOR4 + ldrh w0, [x21, 1844] + cbnz w0, .L2848 +.L2852: add x21, x19, :lo12:.LANCHOR2 mov w1, 65535 add x24, x21, 560 - ldrh w0, [x21,560] + ldrh w0, [x21, 560] cmp w0, w1 - beq .L2898 - ldrh w1, [x21,564] - cbnz w1, .L2898 - ldrh w1, [x21,612] + beq .L2853 + ldrh w1, [x21, 564] + cbnz w1, .L2853 + ldrh w1, [x21, 612] add x23, x21, 608 - cbnz w1, .L2898 + cbnz w1, .L2853 bl FtlGcRefreshOpenBlock - ldrh w0, [x21,608] + ldrh w0, [x21, 608] bl FtlGcRefreshOpenBlock bl FtlVpcTblFlush mov x0, x24 bl allocate_new_data_superblock mov x0, x23 bl allocate_new_data_superblock -.L2898: +.L2853: add x20, x20, :lo12:.LANCHOR0 - ldrb w0, [x20,72] - cbnz w0, .L2899 + ldrb w0, [x20, 72] + cbnz w0, .L2854 add x19, x19, :lo12:.LANCHOR2 - ldrh w0, [x19,484] - and w0, w0, 31 - cbnz w0, .L2890 -.L2899: + ldrh w0, [x19, 484] + tst x0, 31 + bne .L2842 +.L2854: bl FtlVpcCheckAndModify -.L2890: - mov w0, w22 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x29, x30, [sp], 64 - ret + b .L2842 .size FtlSysBlkInit, .-FtlSysBlkInit .align 2 .global FtlLowFormat @@ -18757,295 +18382,299 @@ FtlSysBlkInit: FtlLowFormat: stp x29, x30, [sp, -64]! add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] adrp x19, .LANCHOR2 - add x20, x19, :lo12:.LANCHOR2 - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - ldr w21, [x20,424] - cbnz w21, .L2907 - adrp x22, .LANCHOR0 - ldr x0, [x20,3768] - add x23, x22, :lo12:.LANCHOR0 - mov w1, w21 - ldrh w2, [x23,2580] + stp x21, x22, [sp, 32] + add x21, x19, :lo12:.LANCHOR2 + stp x23, x24, [sp, 48] + ldr w0, [x21, 424] + cbnz w0, .L2862 + adrp x20, .LANCHOR0 + add x22, x20, :lo12:.LANCHOR0 + ldr x0, [x21, 3760] + mov w1, 0 + ldrh w2, [x22, 2580] lsl w2, w2, 2 bl ftl_memset - ldrh w2, [x23,2580] - mov w1, w21 - ldr x0, [x20,3760] + ldr x0, [x21, 3752] + mov w1, 0 + ldrh w2, [x22, 2580] lsl w2, w2, 2 bl ftl_memset - str w21, [x20,752] - ldrh w0, [x23,2476] - str w21, [x20,756] + ldrh w0, [x22, 2476] + str wzr, [x21, 752] + str wzr, [x21, 756] bl FtlFreeSysBlkQueueInit bl FtlLoadBbt - cbz w0, .L2908 + cbz w0, .L2863 bl FtlMakeBbt -.L2908: - mov w0, 0 -.L2909: - add x1, x22, :lo12:.LANCHOR0 - ldrh w2, [x1,2550] - cmp w0, w2, lsl 7 - bge .L2936 +.L2863: + mov w5, 23752 + add x2, x20, :lo12:.LANCHOR0 add x3, x19, :lo12:.LANCHOR2 - ubfiz x2, x0, 2, 16 - mvn w1, w0 - ldr x4, [x3,3648] - orr w1, w0, w1, lsl 16 - add w0, w0, 1 - str w1, [x4,x2] - mov w1, 23752 - movk w1, 0xa0f, lsl 16 - uxth w0, w0 - ldr x3, [x3,3656] - str w1, [x3,x2] - b .L2909 -.L2936: - ldrh w21, [x1,2480] - mov w20, 0 -.L2911: - add x23, x22, :lo12:.LANCHOR0 - ldrh w0, [x23,2482] - cmp w0, w21 - bls .L2937 - mov w0, w21 - mov w1, 1 - add w21, w21, 1 - bl FtlLowFormatEraseBlock - add w0, w20, w0 - uxth w21, w21 - uxth w20, w0 - b .L2911 -.L2937: - ldrh w0, [x23,2472] - sub w1, w20, #3 + mov w0, 0 + movk w5, 0xa0f, lsl 16 +.L2864: + ldrh w1, [x2, 2550] + cmp w0, w1, lsl 7 + blt .L2865 + ldrh w22, [x2, 2480] + add x23, x20, :lo12:.LANCHOR0 + mov w21, 0 +.L2866: + ldrh w0, [x23, 2482] + cmp w0, w22 + bhi .L2867 + ldrh w0, [x23, 2472] + sub w1, w21, #3 cmp w1, w0, lsl 1 - blt .L2913 - udiv w0, w20, w0 - ldr w20, [x23,2576] - add w0, w0, w20 - mov w20, 0 + blt .L2868 + udiv w0, w21, w0 + ldr w21, [x23, 2576] + add w0, w0, w21 bl FtlSysBlkNumInit - ldrh w0, [x23,2476] + ldrh w0, [x23, 2476] + mov w21, 0 bl FtlFreeSysBlkQueueInit - ldrh w21, [x23,2480] -.L2914: - add x0, x22, :lo12:.LANCHOR0 - ldrh w0, [x0,2482] - cmp w0, w21 - bls .L2913 - mov w0, w21 - mov w1, 1 - add w21, w21, 1 - bl FtlLowFormatEraseBlock - add w0, w20, w0 - uxth w21, w21 - uxth w20, w0 - b .L2914 -.L2913: - mov w23, 0 - mov w21, w23 -.L2916: - add x0, x22, :lo12:.LANCHOR0 - ldrh w1, [x0,2480] - cmp w1, w21 - bls .L2938 - mov w0, w21 - mov w1, 0 - add w21, w21, 1 - bl FtlLowFormatEraseBlock - add w0, w23, w0 - uxth w21, w21 - uxth w23, w0 - b .L2916 -.L2938: - add x4, x19, :lo12:.LANCHOR2 - ldrh w1, [x0,2482] - ldrh w2, [x0,2472] - str w1, [x4,3580] - ldr w1, [x0,2484] - udiv w3, w1, w2 - str w3, [x0,2616] - ubfx x6, x3, 5, 16 - add w5, w6, 36 - strh w5, [x4,780] + ldrh w22, [x23, 2480] + add x23, x20, :lo12:.LANCHOR0 +.L2869: + ldrh w0, [x23, 2482] + cmp w0, w22 + bhi .L2870 +.L2868: + add x23, x20, :lo12:.LANCHOR0 + mov w22, 0 + mov w24, 0 +.L2871: + ldrh w0, [x23, 2480] + cmp w0, w24 + bhi .L2872 + add x1, x19, :lo12:.LANCHOR2 + ldrh w0, [x23, 2482] + ldr w2, [x23, 2484] + str w0, [x1, 3572] + ldrh w0, [x23, 2472] + udiv w4, w2, w0 + ubfx x3, x4, 5, 16 + str w4, [x23, 2616] + add w5, w3, 36 + strh w5, [x1, 780] mov w5, 24 - mul w5, w2, w5 - cmp w23, w5 - ble .L2918 - sub w1, w1, w23 - udiv w1, w1, w2 - str w1, [x0,2616] - lsr w1, w1, 5 - add w1, w1, 24 - strh w1, [x4,780] -.L2918: - add x0, x22, :lo12:.LANCHOR0 - ldr w0, [x0,2372] - cmp w0, 1 - bne .L2919 + mul w5, w0, w5 + cmp w22, w5 + ble .L2873 + sub w2, w2, w22 + udiv w2, w2, w0 + str w2, [x23, 2616] + lsr w2, w2, 5 + add w2, w2, 24 + strh w2, [x1, 780] +.L2873: + add x1, x20, :lo12:.LANCHOR0 + ldr w1, [x1, 2372] + cmp w1, 1 + bne .L2874 + udiv w2, w22, w0 add x1, x19, :lo12:.LANCHOR2 - udiv w0, w23, w2 - ldrh w4, [x1,780] - add w0, w4, w0 - add w0, w4, w0, asr 2 - strh w0, [x1,780] -.L2919: - add x0, x22, :lo12:.LANCHOR0 - ldrb w0, [x0,204] - cbz w0, .L2920 + ldrh w5, [x1, 780] + add w2, w2, w5 + add w2, w5, w2, asr 2 + strh w2, [x1, 780] +.L2874: + add x1, x20, :lo12:.LANCHOR0 + ldrb w1, [x1, 204] + cbz w1, .L2875 + udiv w2, w22, w0 add x1, x19, :lo12:.LANCHOR2 - udiv w0, w23, w2 - ldrh w4, [x1,780] - add w0, w4, w0 - add w0, w4, w0, asr 2 - strh w0, [x1,780] -.L2920: - add x5, x22, :lo12:.LANCHOR0 - ldrh w1, [x5,2538] - cbz w1, .L2922 - add x0, x19, :lo12:.LANCHOR2 - ldrh w4, [x0,780] - add w4, w4, w1, lsr 1 - strh w4, [x0,780] - mul w4, w1, w2 - cmp w4, w23 - ble .L2922 + ldrh w5, [x1, 780] + add w2, w2, w5 + add w2, w5, w2, asr 2 + strh w2, [x1, 780] +.L2875: + add x6, x20, :lo12:.LANCHOR0 + ldrh w1, [x6, 2538] + cbz w1, .L2877 + add x2, x19, :lo12:.LANCHOR2 + ldrh w5, [x2, 780] + add w5, w5, w1, lsr 1 + strh w5, [x2, 780] + mul w5, w1, w0 + cmp w22, w5 + bge .L2877 add w1, w1, 32 - str w3, [x5,2616] - add w1, w6, w1 - strh w1, [x0,780] -.L2922: - add x24, x22, :lo12:.LANCHOR0 - add x0, x19, :lo12:.LANCHOR2 - adrp x21, .LANCHOR4 - ldr w1, [x24,2616] - ldrh w0, [x0,780] - sub w0, w1, w0 - add x1, x21, :lo12:.LANCHOR4 - mul w0, w0, w2 - str w0, [x1,1760] - ldrh w1, [x24,2544] - mul w0, w0, w1 - ldrh w1, [x24,2550] - str w0, [x24,2616] - mul w0, w0, w1 - str w0, [x24,2584] + str w4, [x6, 2616] + add w1, w3, w1 + strh w1, [x2, 780] +.L2877: + add x24, x20, :lo12:.LANCHOR0 + add x1, x19, :lo12:.LANCHOR2 + adrp x23, .LANCHOR4 + ldrh w2, [x1, 780] + ldr w1, [x24, 2616] + sub w1, w1, w2 + mul w0, w1, w0 + add x1, x23, :lo12:.LANCHOR4 + str w0, [x1, 1768] + ldrh w1, [x24, 2544] + mul w0, w1, w0 + ldrh w1, [x24, 2550] + str w0, [x24, 2616] + mul w0, w1, w0 + str w0, [x24, 2584] bl FtlBbmTblFlush - ldr w2, [x24,2488] - add w1, w23, w20 - ldrh w0, [x24,2558] + ldrh w0, [x24, 2558] + add w1, w21, w22 + ldr w2, [x24, 2488] add w0, w0, w2, lsr 3 cmp w1, w0 - bls .L2924 + bls .L2879 adrp x0, .LC155 lsr w2, w2, 5 add x0, x0, :lo12:.LC155 bl printk -.L2924: - add x24, x22, :lo12:.LANCHOR0 - add x19, x19, :lo12:.LANCHOR2 +.L2879: + add x22, x20, :lo12:.LANCHOR0 + add x20, x19, :lo12:.LANCHOR2 + add x21, x20, 560 mov w1, 0 - add x20, x19, 560 - mov w23, -1 - ldrh w2, [x24,2482] - ldr x0, [x19,520] + mov w24, -1 + ldr x0, [x20, 520] + ldrh w2, [x22, 2482] lsl w2, w2, 1 bl ftl_memset - str wzr, [x19,716] mov w0, 1 - ldrh w2, [x24,2480] - strb w0, [x20,8] + strb w0, [x21, 8] + ldr x0, [x22, 64] mov w1, 255 - ldr x0, [x22,#:lo12:.LANCHOR0] + ldrh w2, [x22, 2480] + strh w24, [x20, 800] + strh wzr, [x20, 802] + strb wzr, [x20, 806] lsr w2, w2, 3 - strh w23, [x19,800] - strh wzr, [x19,802] - strb wzr, [x19,806] - strb wzr, [x19,808] - strh wzr, [x20,2] - strb wzr, [x20,6] - strh wzr, [x19,560] + strb wzr, [x20, 808] + strh wzr, [x21, 2] + strb wzr, [x21, 6] + strh wzr, [x20, 560] + str wzr, [x20, 716] bl ftl_memset -.L2925: - mov x0, x20 +.L2880: + mov x0, x21 bl make_superblock - ldrb w0, [x20,7] - cbnz w0, .L2926 - ldrh w1, [x20] - ldr x0, [x19,520] - strh w23, [x0,x1,lsl 1] - ldrh w0, [x20] + ldrb w1, [x21, 7] + ldrh w0, [x21] + cbnz w1, .L2881 + ldr x1, [x20, 520] + ubfiz x0, x0, 1, 16 + strh w24, [x1, x0] + ldrh w0, [x21] add w0, w0, 1 - strh w0, [x20] - b .L2925 -.L2926: - ldr w0, [x19,752] - mov w22, -1 - str w0, [x20,12] + strh w0, [x21] + b .L2880 +.L2865: + ldr x6, [x3, 3640] + ubfiz x4, x0, 2, 16 + mvn w1, w0 + orr w1, w0, w1, lsl 16 add w0, w0, 1 - ldrh w1, [x20] - str w0, [x19,752] - ldr x0, [x19,520] - ldrh w2, [x20,4] - strh w2, [x0,x1,lsl 1] - add x0, x19, 608 - strh wzr, [x19,610] - ldrh w1, [x20] - mov x20, x0 - strb wzr, [x19,614] - add w1, w1, 1 - strh w1, [x19,608] + and w0, w0, 65535 + str w1, [x6, x4] + ldr x1, [x3, 3648] + str w5, [x1, x4] + b .L2864 +.L2867: + mov w0, w22 mov w1, 1 - strb w1, [x19,616] -.L2927: - mov x0, x20 + add w22, w22, 1 + bl FtlLowFormatEraseBlock + add w21, w21, w0 + and w22, w22, 65535 + and w21, w21, 65535 + b .L2866 +.L2870: + mov w0, w22 + mov w1, 1 + add w22, w22, 1 + bl FtlLowFormatEraseBlock + add w21, w21, w0 + and w22, w22, 65535 + and w21, w21, 65535 + b .L2869 +.L2872: + mov w0, w24 + mov w1, 0 + add w24, w24, 1 + bl FtlLowFormatEraseBlock + add w22, w22, w0 + and w24, w24, 65535 + and w22, w22, 65535 + b .L2871 +.L2881: + ldr w1, [x20, 752] + ubfiz x0, x0, 1, 16 + str w1, [x21, 12] + add x19, x19, :lo12:.LANCHOR2 + add w1, w1, 1 + str w1, [x20, 752] + ldr x1, [x20, 520] + mov w13, -1 + ldrh w2, [x21, 4] + strh w2, [x1, x0] + add x0, x20, 608 + mov x12, x0 + strh wzr, [x20, 610] + ldrh w1, [x21] + strb wzr, [x20, 614] + add w1, w1, 1 + strh w1, [x20, 608] + mov w1, 1 + strb w1, [x20, 616] +.L2882: + mov x0, x12 bl make_superblock - ldrb w0, [x20,7] - cbnz w0, .L2928 - ldrh w1, [x20] - ldr x0, [x19,520] - strh w22, [x0,x1,lsl 1] - ldrh w0, [x20] + ldrb w1, [x12, 7] + ldrh w0, [x12] + cbnz w1, .L2883 + ldr x1, [x19, 520] + ubfiz x0, x0, 1, 16 + strh w13, [x1, x0] + ldrh w0, [x12] add w0, w0, 1 - strh w0, [x20] - b .L2927 -.L2928: - ldr w0, [x19,752] - add x21, x21, :lo12:.LANCHOR4 - str w0, [x20,12] - add w0, w0, 1 - ldrh w1, [x20] - str w0, [x19,752] - ldr x0, [x19,520] - ldrh w2, [x20,4] + strh w0, [x12] + b .L2882 +.L2883: + ldr w1, [x19, 752] + ubfiz x0, x0, 1, 16 + str w1, [x12, 12] + add x23, x23, :lo12:.LANCHOR4 + add w1, w1, 1 + str w1, [x19, 752] + ldr x1, [x19, 520] mov w20, -1 - strh w2, [x0,x1,lsl 1] - strh w20, [x19,656] + ldrh w2, [x12, 4] + strh w2, [x1, x0] + strh w20, [x19, 656] bl FtlFreeSysBlkQueueOut - strh w0, [x19,784] - ldr w0, [x21,1760] - strh w0, [x19,790] - ldr w0, [x19,752] - str w0, [x19,792] + strh w0, [x19, 784] + ldr w0, [x23, 1768] + strh w0, [x19, 790] + ldr w0, [x19, 752] + str w0, [x19, 792] add w0, w0, 1 - strh wzr, [x19,786] - strh w20, [x19,788] - str w0, [x19,752] + strh wzr, [x19, 786] + strh w20, [x19, 788] + str w0, [x19, 752] bl FtlVpcTblFlush bl FtlSysBlkInit - cbnz w0, .L2907 + cbnz w0, .L2862 adrp x0, .LANCHOR1+504 mov w1, 1 - str w1, [x0,#:lo12:.LANCHOR1+504] -.L2907: + str w1, [x0, #:lo12:.LANCHOR1+504] +.L2862: mov w0, 0 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] ldp x29, x30, [sp], 64 ret .size FtlLowFormat, .-FtlLowFormat @@ -19053,188 +18682,189 @@ FtlLowFormat: .global FtlReInitForSDUpdata .type FtlReInitForSDUpdata, %function FtlReInitForSDUpdata: - stp x29, x30, [sp, -48]! + stp x29, x30, [sp, -64]! add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] adrp x19, .LANCHOR0 add x0, x19, :lo12:.LANCHOR0 - ldrb w0, [x0,204] - cbz w0, .L2940 -.L2942: - mov w0, 0 - b .L2941 -.L2940: + str x21, [sp, 32] + ldrb w0, [x0, 204] + cbz w0, .L2893 +.L2895: + mov w21, 0 +.L2892: + mov w0, w21 + ldr x21, [sp, 32] + ldp x19, x20, [sp, 16] + ldp x29, x30, [sp], 64 + ret +.L2893: adrp x20, .LANCHOR4 add x0, x20, :lo12:.LANCHOR4 - ldr x0, [x0,1592] + ldr x0, [x0, 1584] bl FlashInit - cbnz w0, .L2942 + mov w21, w0 + cbnz w0, .L2895 bl FlashLoadFactorBbt - cbz w0, .L2943 + cbz w0, .L2896 bl FlashMakeFactorBbt -.L2943: +.L2896: add x20, x20, :lo12:.LANCHOR4 - ldr x0, [x20,1648] + ldr x0, [x20, 1656] bl FlashReadIdbDataRaw - cbz w0, .L2944 - mov w1, 0 + cbz w0, .L2897 mov w2, 16 - add x0, x29, 32 + mov w1, 0 + add x0, x29, 48 bl FlashReadFacBbtData + ldr w2, [x29, 48] mov w0, 0 - ldr w2, [x29,32] - mov w1, w0 - mov w4, 1 -.L2946: - lsl w3, w4, w1 - add w1, w1, 1 - tst w3, w2 - cset w3, ne - cmp w1, 16 - add w0, w0, w3 - bne .L2946 - cmp w0, 6 - bhi .L2947 - add x0, x19, :lo12:.LANCHOR0 - b .L2969 -.L2947: mov w1, 0 mov w4, 1 -.L2950: +.L2899: lsl w3, w4, w1 add w1, w1, 1 tst w3, w2 - cset w3, ne - cmp w1, 24 - add w0, w0, w3 - bne .L2950 - cmp w0, 17 + cinc w0, w0, ne + cmp w1, 16 + bne .L2899 + cmp w0, 6 + bhi .L2900 add x0, x19, :lo12:.LANCHOR0 - bls .L2969 - mov w1, 36 -.L2969: - strb w1, [x0,73] +.L2923: + strb w1, [x0, 73] add x0, x19, :lo12:.LANCHOR0 - ldrb w1, [x0,73] - strh w1, [x0,202] -.L2944: - adrp x0, .LC75 - adrp x1, .LC76 - add x1, x1, :lo12:.LC76 - add x0, x0, :lo12:.LC75 + ldrb w1, [x0, 73] + strh w1, [x0, 202] +.L2897: + adrp x1, .LC75 + add x1, x1, :lo12:.LC75 add x19, x19, :lo12:.LANCHOR0 + adrp x0, .LC76 + add x0, x0, :lo12:.LC76 bl printk add x0, x19, 176 bl FtlConstantsInit bl FtlVariablesInit - ldrh w0, [x19,2476] + ldrh w0, [x19, 2476] mov w19, 1 bl FtlFreeSysBlkQueueInit -.L2952: +.L2905: bl FtlLoadBbt - cbz w0, .L2953 -.L2971: + cbz w0, .L2906 +.L2925: bl FtlLowFormat cmp w19, 3 - bhi .L2972 + bls .L2907 + mov w21, -1 + b .L2892 +.L2900: + mov w1, 0 + mov w4, 1 +.L2903: + lsl w3, w4, w1 + add w1, w1, 1 + tst w3, w2 + cinc w0, w0, ne + cmp w1, 24 + bne .L2903 + cmp w0, 17 + add x0, x19, :lo12:.LANCHOR0 + bls .L2923 + mov w1, 36 + b .L2923 +.L2907: add w19, w19, 1 - b .L2952 -.L2972: - mov w0, -1 - b .L2941 -.L2953: + b .L2905 +.L2906: bl FtlSysBlkInit - cbnz w0, .L2971 - adrp x1, .LANCHOR1+504 - mov w2, 1 - str w2, [x1,#:lo12:.LANCHOR1+504] -.L2941: - ldp x19, x20, [sp,16] - ldp x29, x30, [sp], 48 - ret + cbnz w0, .L2925 + adrp x0, .LANCHOR1+504 + mov w1, 1 + str w1, [x0, #:lo12:.LANCHOR1+504] + b .L2892 .size FtlReInitForSDUpdata, .-FtlReInitForSDUpdata .align 2 .global Ftl_gc_temp_data_write_back .type Ftl_gc_temp_data_write_back, %function Ftl_gc_temp_data_write_back: - stp x29, x30, [sp, -48]! - add x29, sp, 0 - stp x21, x22, [sp,32] - adrp x21, .LANCHOR2 - add x0, x21, :lo12:.LANCHOR2 - stp x19, x20, [sp,16] - ldr w1, [x0,424] - cbz w1, .L2974 -.L2977: + adrp x12, .LANCHOR2 + add x0, x12, :lo12:.LANCHOR2 + ldr w1, [x0, 424] + cbz w1, .L2927 +.L2941: mov w0, 0 - b .L2975 -.L2974: + ret +.L2930: + mov w0, 0 +.L2926: + ldr x19, [sp, 16] + ldp x29, x30, [sp], 32 + ret +.L2927: adrp x1, .LANCHOR0+204 - ldrb w1, [x1,#:lo12:.LANCHOR0+204] - cbz w1, .L2976 - ldr w1, [x0,1384] - tbz x1, 0, .L2976 - ldrh w0, [x0,660] - cbnz w0, .L2977 -.L2976: - add x1, x21, :lo12:.LANCHOR2 + ldrb w1, [x1, #:lo12:.LANCHOR0+204] + cbz w1, .L2929 + ldr w1, [x0, 1380] + tbz x1, 0, .L2929 + ldrh w0, [x0, 660] + cbnz w0, .L2941 +.L2929: + stp x29, x30, [sp, -32]! + mov w3, 0 mov w2, 0 - mov w3, w2 - mov w20, 0 - mov w22, 56 - ldr x0, [x1,3600] - ldr w1, [x1,1384] + add x29, sp, 0 + str x19, [sp, 16] + add x19, x12, :lo12:.LANCHOR2 + ldr w1, [x19, 1380] + ldr x0, [x19, 3592] bl FlashProgPages -.L2978: - add x19, x21, :lo12:.LANCHOR2 - ldr w1, [x19,1384] - cmp w20, w1 - bcs .L2988 - umull x0, w20, w22 - ldr x3, [x19,3600] - add x1, x3, x0 - ldr w3, [x3,x0] - cmn w3, #1 - ldr x2, [x1,16] - bne .L2979 - ldrh w2, [x19,656] - ldr x1, [x19,520] - strh wzr, [x1,x2,lsl 1] - strh w3, [x19,656] - ldr w1, [x19,952] - add w1, w1, 1 - str w1, [x19,952] - ldr x1, [x19,3600] - add x0, x1, x0 - ldr w0, [x0,4] + mov w10, 0 + mov w11, 56 +.L2931: + ldr w1, [x19, 1380] + cmp w10, w1 + bcc .L2933 + ldr x0, [x19, 3592] + bl FtlGcBufFree + str wzr, [x19, 1380] + ldrh w0, [x19, 660] + cbnz w0, .L2930 + mov w0, 1 + bl FtlGcFreeTempBlock + b .L2943 +.L2933: + umull x1, w10, w11 + ldr x2, [x19, 3592] + add x3, x2, x1 + ldr w2, [x2, x1] + ldr x0, [x3, 16] + cmn w2, #1 + bne .L2932 + ldrh w3, [x19, 656] + ldr x0, [x19, 520] + strh wzr, [x0, x3, lsl 1] + strh w2, [x19, 656] + ldr w0, [x19, 944] + add w0, w0, 1 + str w0, [x19, 944] + ldr x0, [x19, 3592] + add x0, x0, x1 + ldr w0, [x0, 4] lsr w0, w0, 10 bl FtlBbmMapBadBlock bl FtlBbmTblFlush bl FtlGcPageVarInit - b .L2987 -.L2979: - ldr w0, [x2,12] - add w20, w20, 1 - ldr w1, [x1,4] - ldr w2, [x2,8] - uxth w20, w20 +.L2943: + mov w0, 1 + b .L2926 +.L2932: + ldp w2, w0, [x0, 8] + ldr w1, [x3, 4] bl FtlGcUpdatePage - b .L2978 -.L2988: - ldr x0, [x19,3600] - bl FtlGcBufFree - str wzr, [x19,1384] - ldrh w0, [x19,660] - cbnz w0, .L2977 - mov w0, 1 - bl FtlGcFreeTempBlock -.L2987: - mov w0, 1 -.L2975: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x29, x30, [sp], 48 - ret + add w10, w10, 1 + and w10, w10, 65535 + b .L2931 .size Ftl_gc_temp_data_write_back, .-Ftl_gc_temp_data_write_back .align 2 .global Ftl_get_new_temp_ppa @@ -19242,35 +18872,35 @@ Ftl_gc_temp_data_write_back: Ftl_get_new_temp_ppa: stp x29, x30, [sp, -32]! add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] adrp x19, .LANCHOR2 add x0, x19, :lo12:.LANCHOR2 add x1, x0, 656 - ldrh w2, [x0,656] + ldrh w2, [x0, 656] mov w0, 65535 cmp w2, w0 - beq .L2990 - ldrh w0, [x1,4] - cbnz w0, .L2991 -.L2990: + beq .L2945 + ldrh w0, [x1, 4] + cbnz w0, .L2946 +.L2945: bl FtlCacheWriteBack add x20, x19, :lo12:.LANCHOR2 mov w0, 0 bl FtlGcFreeTempBlock - strb wzr, [x20,664] add x0, x20, 656 + strb wzr, [x0, 8] bl allocate_data_superblock - strh wzr, [x20,1428] - strh wzr, [x20,1440] + strh wzr, [x20, 1420] + strh wzr, [x20, 1432] bl l2p_flush mov w0, 0 bl FtlEctTblFlush bl FtlVpcTblFlush -.L2991: +.L2946: add x0, x19, :lo12:.LANCHOR2 add x0, x0, 656 bl get_new_active_ppa - ldp x19, x20, [sp,16] + ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 32 ret .size Ftl_get_new_temp_ppa, .-Ftl_get_new_temp_ppa @@ -19278,1182 +18908,1188 @@ Ftl_get_new_temp_ppa: .global ftl_do_gc .type ftl_do_gc, %function ftl_do_gc: - stp x29, x30, [sp, -144]! - mov w2, 0 + stp x29, x30, [sp, -160]! add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] adrp x19, .LANCHOR2 - add x3, x19, :lo12:.LANCHOR2 - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] - stp x27, x28, [sp,80] - ldr w4, [x3,424] - cbnz w4, .L3145 - adrp x4, .LANCHOR1 - add x4, x4, :lo12:.LANCHOR1 - ldr w20, [x4,504] + add x2, x19, :lo12:.LANCHOR2 + stp x21, x22, [sp, 32] + stp x23, x24, [sp, 48] + stp x25, x26, [sp, 64] + stp x27, x28, [sp, 80] + ldr w3, [x2, 424] + cbnz w3, .L3047 + adrp x3, .LANCHOR1 + add x3, x3, :lo12:.LANCHOR1 + ldr w20, [x3, 504] cmp w20, 1 - bne .L3145 - ldr w5, [x3,3568] - cbnz w5, .L3145 - ldrh w5, [x3,536] - cmp w5, 47 - bls .L3145 + bne .L3047 + ldr w4, [x2, 3560] + cbnz w4, .L3047 + ldrh w4, [x2, 536] + cmp w4, 47 + bls .L3047 mov w22, w1 - ldrh w1, [x4,3456] - str w0, [x29,124] + ldrh w1, [x3, 3456] + mov w23, w0 mov w0, 65535 cmp w1, w0 - bne .L2994 -.L2997: + bne .L2950 +.L2953: add x0, x19, :lo12:.LANCHOR2 mov w2, 65535 - ldrh w4, [x0,1458] + ldrh w4, [x0, 1450] cmp w4, w2 - bne .L2995 - b .L2996 -.L2994: - ldrh w1, [x3,656] - cmp w1, w0 - beq .L2997 - mov w0, w20 - bl FtlGcFreeTempBlock - mov w2, w20 - cbz w0, .L2997 - b .L3145 -.L2995: - ldrh w1, [x0,1456] - cmp w1, w2 - bne .L2996 - ldrh w3, [x0,1460] - cmp w3, w1 - beq .L2996 - ldrh w2, [x0,1462] - cmp w2, w1 - beq .L2996 - mov w1, -1 - strh w4, [x0,1456] - strh w3, [x0,1458] - strh w2, [x0,1460] - strh w1, [x0,1462] -.L2996: + bne .L2951 +.L2952: add x1, x19, :lo12:.LANCHOR2 - ldr w2, [x29,124] - cmp w2, 1 - ldr w0, [x1,1372] + cmp w23, 1 + ldr w0, [x1, 1368] add w0, w0, 1 - add w0, w0, w2, lsl 7 - str w0, [x1,1372] - bne .L3008 + add w0, w0, w23, lsl 7 + str w0, [x1, 1368] + bne .L2954 adrp x2, .LANCHOR0 add x1, x2, :lo12:.LANCHOR0 - mov x26, x2 - ldr w3, [x1,2372] - cbnz w3, .L2999 - ldrb w1, [x1,204] - cbz w1, .L3008 -.L2999: - add x20, x19, :lo12:.LANCHOR2 - ldr w1, [x20,776] + mov x25, x2 + ldr w3, [x1, 2372] + cbnz w3, .L2955 + ldrb w1, [x1, 204] + cbz w1, .L2954 +.L2955: + add x24, x19, :lo12:.LANCHOR2 + ldr w1, [x24, 776] cmp w1, 39 - bhi .L3008 - adrp x21, .LANCHOR5 - add x1, x21, :lo12:.LANCHOR5 - ldrh w1, [x1,1464] - add w0, w0, w1 - str w0, [x20,1372] + bhi .L2954 + adrp x21, .LANCHOR4 + add x1, x21, :lo12:.LANCHOR4 + mov w20, 65535 + ldrh w1, [x1, 1984] + add w0, w1, w0 + str w0, [x24, 1368] bl FtlGcReFreshBadBlk - ldrh w0, [x20,800] - mov w1, 65535 - cmp w0, w1 - bne .L3008 - ldrh w1, [x20,1456] + ldrh w0, [x24, 800] + cmp w0, w20 + bne .L2956 + ldrh w1, [x24, 1448] cmp w1, w0 - bne .L3008 - ldr w0, [x20,1372] + bne .L3043 + ldr w0, [x24, 1368] cmp w0, 1024 - bhi .L3000 - ldrh w0, [x20,552] + bhi .L2958 + ldrh w0, [x24, 552] cmp w0, 63 - bhi .L3008 -.L3000: + bhi .L3043 +.L2958: add x0, x19, :lo12:.LANCHOR2 - add x1, x21, :lo12:.LANCHOR5 - ldrh w2, [x0,1370] - ldrh w3, [x0,552] + add x1, x21, :lo12:.LANCHOR4 + ldrh w2, [x0, 1366] + ldrh w3, [x0, 552] + strh wzr, [x1, 1984] add w2, w2, 64 - strh wzr, [x1,1464] cmp w3, w2 - bgt .L3008 - str wzr, [x0,1372] - ldr w0, [x0,776] - cbnz w0, .L3001 + bgt .L3043 + str wzr, [x0, 1368] + ldr w0, [x0, 776] + cbnz w0, .L2959 mov w0, 6 - b .L3167 -.L3001: - cmp w0, 5 - bhi .L3002 - mov w0, 18 -.L3167: - strh w0, [x1,1464] -.L3002: +.L3096: + strh w0, [x1, 1984] +.L2960: mov w0, 32 - mov w28, 65535 bl List_get_gc_head_node - uxth w25, w0 - cmp w25, w28 - beq .L3007 - add x23, x19, :lo12:.LANCHOR2 - ldrh w0, [x23,1376] - cbz w0, .L3004 - add x2, x26, :lo12:.LANCHOR0 - ldr x27, [x23,520] - ubfiz x25, x25, 1, 16 - ldrh w1, [x2,2546] - ldrh w2, [x2,2472] - ldrh w3, [x27,x25] + and w5, w0, 65535 + mov w8, 65535 + cmp w5, w8 + beq .L2964 + add x24, x19, :lo12:.LANCHOR2 + ldrh w0, [x24, 1372] + cbz w0, .L2962 + add x2, x25, :lo12:.LANCHOR0 + ldr x7, [x24, 520] + ubfiz x5, x5, 1, 16 + ldrh w1, [x2, 2546] + ldrh w2, [x2, 2472] + ldrh w3, [x7, x5] mul w1, w1, w2 add w1, w1, 1 cmp w3, w1 - bgt .L3007 - add w1, w0, 1 - str wzr, [x23,1380] - uxth w1, w1 - strh w1, [x23,1376] - str x1, [x29,112] + bgt .L2964 + add w6, w0, 1 + str wzr, [x24, 1376] + and w6, w6, 65535 + strh w6, [x24, 1372] bl List_get_gc_head_node - uxth w20, w0 - cmp w20, w28 - ldr x1, [x29,112] - beq .L3007 - ubfiz x26, x20, 1, 16 - adrp x0, .LC156 - ldrh w4, [x27,x25] - add x0, x0, :lo12:.LC156 + and w20, w0, 65535 + cmp w20, w8 + beq .L2964 + ubfiz x25, x20, 1, 16 + ldrh w4, [x7, x5] mov w2, w20 - ldrh w3, [x27,x26] + mov w1, w6 + adrp x0, .LC156 + add x0, x0, :lo12:.LC156 + ldrh w3, [x7, x25] bl printk - ldrh w0, [x23,1376] + ldrh w0, [x24, 1372] cmp w0, 40 - bls .L3005 - ldr x0, [x23,520] - ldrh w0, [x0,x26] + bls .L2963 + ldr x0, [x24, 520] + ldrh w0, [x0, x25] cmp w0, 32 - bls .L3005 - strh wzr, [x23,1376] -.L3005: - add x21, x21, :lo12:.LANCHOR5 + bls .L2963 + strh wzr, [x24, 1372] +.L2963: + add x21, x21, :lo12:.LANCHOR4 mov w0, 6 - strh w0, [x21,1464] - b .L3009 -.L3004: - mov w0, 1 - strh w0, [x23,1376] -.L3007: - bl GetSwlReplaceBlock - uxth w20, w0 - mov w0, 65535 - cmp w20, w0 - bne .L3009 - add x21, x21, :lo12:.LANCHOR5 - strh wzr, [x21,1464] -.L3008: - add x21, x19, :lo12:.LANCHOR2 - mov w0, 65535 - ldrh w20, [x21,800] - cmp w20, w0 - bne .L3171 - ldrh w0, [x21,656] - cmp w0, w20 - beq .L3172 -.L3009: - mov w0, 65535 - cmp w20, w0 - cset w2, eq - cbz w2, .L3022 - ldr w0, [x29,124] - cbnz w0, .L3022 + strh w0, [x21, 1984] +.L2956: + cmp w23, 0 + mov w1, 65535 add x0, x19, :lo12:.LANCHOR2 - mov w21, 1 - ldrh w1, [x0,552] - cmp w1, 24 - bhi .L3023 + ccmp w20, w1, 0, eq + bne .L2978 + ldrh w2, [x0, 552] + cmp w2, 24 + bhi .L3055 adrp x0, .LANCHOR0 - cmp w1, 16 add x0, x0, :lo12:.LANCHOR0 - ldrh w21, [x0,2544] - bls .L3024 + cmp w2, 16 + ldrh w21, [x0, 2544] + bls .L2980 lsr w21, w21, 5 - b .L3023 -.L3024: - cmp w1, 12 - bls .L3025 - lsr w21, w21, 4 - b .L3023 -.L3025: - cmp w1, 8 - bls .L3023 - lsr w21, w21, 2 -.L3023: - add x0, x19, :lo12:.LANCHOR2 - ldrh w2, [x0,1368] - cmp w2, w1 - bcs .L3027 - ldrh w1, [x0,656] +.L2979: + add x1, x19, :lo12:.LANCHOR2 + ldrh w0, [x1, 1364] + cmp w0, w2 + bcs .L2983 + ldrh w0, [x1, 656] mov w2, 65535 - cmp w1, w2 - bne .L3028 - ldrh w2, [x0,1456] - cmp w2, w1 - bne .L3028 - adrp x1, .LANCHOR5+1464 - ldrh w2, [x1,#:lo12:.LANCHOR5+1464] - cbnz w2, .L3029 - adrp x1, .LANCHOR0+2616 - ldr w3, [x0,716] - ldr w1, [x1,#:lo12:.LANCHOR0+2616] + cmp w0, w2 + bne .L2984 + ldrh w2, [x1, 1448] + cmp w2, w0 + bne .L2984 + adrp x0, .LANCHOR4+1984 + ldrh w0, [x0, #:lo12:.LANCHOR4+1984] + cbnz w0, .L2985 + adrp x2, .LANCHOR0+2616 + ldr w3, [x1, 716] + ldr w2, [x2, #:lo12:.LANCHOR0+2616] + add w2, w2, w2, lsl 1 + cmp w3, w2, lsr 2 + bcs .L2986 +.L2985: + add x2, x19, :lo12:.LANCHOR2 + ldrh w1, [x2, 780] add w1, w1, w1, lsl 1 - cmp w3, w1, lsr 2 - bcs .L3030 -.L3029: - add x1, x19, :lo12:.LANCHOR2 - ldrh w0, [x1,780] - add w0, w0, w0, lsl 1 - asr w0, w0, 2 - strh w0, [x1,1368] - b .L3031 -.L3030: - mov w1, 18 - strh w1, [x0,1368] -.L3031: + asr w1, w1, 2 + strh w1, [x2, 1364] +.L2987: add x19, x19, :lo12:.LANCHOR2 - str wzr, [x19,1380] - b .L3145 -.L3028: + str wzr, [x19, 1376] +.L2948: + 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 +.L2950: + ldrh w1, [x2, 656] + cmp w1, w0 + beq .L2953 + mov w0, w20 + bl FtlGcFreeTempBlock + cbz w0, .L2953 + mov w0, w20 + b .L2948 +.L2951: + ldrh w1, [x0, 1448] + cmp w1, w2 + bne .L2952 + ldrh w3, [x0, 1452] + cmp w3, w1 + beq .L2952 + ldrh w2, [x0, 1454] + cmp w2, w1 + beq .L2952 + mov w1, -1 + strh w4, [x0, 1448] + strh w3, [x0, 1450] + strh w2, [x0, 1452] + strh w1, [x0, 1454] + b .L2952 +.L2959: + cmp w0, 5 + bhi .L2960 + mov w0, 18 + b .L3096 +.L2962: + mov w0, 1 + strh w0, [x24, 1372] +.L2964: + bl GetSwlReplaceBlock + and w20, w0, 65535 + mov w0, 65535 + cmp w20, w0 + bne .L2956 + add x21, x21, :lo12:.LANCHOR4 + strh wzr, [x21, 1984] +.L2954: + add x0, x19, :lo12:.LANCHOR2 + mov w20, 65535 + ldrh w0, [x0, 800] + cmp w0, w20 + bne .L2956 +.L3043: + add x24, x19, :lo12:.LANCHOR2 + mov w0, 65535 + ldrh w20, [x24, 656] + cmp w20, w0 + bne .L3050 + ldrh w25, [x24, 1448] + cmp w25, w20 + bne .L2956 + ldrh w0, [x24, 552] + mov w1, 1024 + cmp w0, 24 + mov w0, 5120 + csel w0, w0, w1, cc + ldr w1, [x24, 1368] + cmp w1, w0 + bls .L2956 + adrp x0, .LANCHOR4+1984 + str wzr, [x24, 1368] + strh wzr, [x0, #:lo12:.LANCHOR4+1984] + bl GetSwlReplaceBlock + and w20, w0, 65535 + cmp w20, w25 + bne .L3053 + ldrh w1, [x24, 552] + ldrh w0, [x24, 1366] + cmp w1, w0 + bcs .L2967 + mov w0, 64 + bl List_get_gc_head_node + and x0, x0, 65535 + cmp w0, w20 + beq .L2969 + ldr w1, [x24, 3556] + adrp x5, .LANCHOR0 + cbnz w1, .L2970 + add x1, x5, :lo12:.LANCHOR0 + ldrh w2, [x1, 2492] + cmp w2, 3 + beq .L2970 + ldr w2, [x24, 1360] + cbnz w2, .L2970 + ldr w2, [x1, 2372] + cbnz w2, .L2970 + ldrb w1, [x1, 204] + cbz w1, .L2971 +.L2970: add x1, x19, :lo12:.LANCHOR2 - ldrh w0, [x1,780] + add x2, x5, :lo12:.LANCHOR0 + ldr x1, [x1, 520] + ldrh w3, [x1, x0, lsl 1] + ldrh w0, [x2, 2546] + ldrh w1, [x2, 2472] + ldrh w2, [x2, 2492] + cmp w2, 3 + mul w1, w1, w0 + lsr w0, w0, 1 + csel w0, w0, wzr, eq + add w0, w0, w1 + cmp w3, w0 + bgt .L2973 + mov w0, 0 + bl List_get_gc_head_node + add x5, x5, :lo12:.LANCHOR0 + add x1, x19, :lo12:.LANCHOR2 + and w21, w0, 65535 + ldr w0, [x5, 2616] + ldr w2, [x1, 716] + add w0, w0, w0, lsl 1 + cmp w2, w0, lsr 2 + bls .L2974 + mov w0, 128 +.L3097: + strh w0, [x1, 1366] +.L2975: + mov w0, 65535 + cmp w21, w0 + beq .L2969 +.L2966: + add x0, x19, :lo12:.LANCHOR2 + ubfiz x1, x21, 1, 32 + mov w20, w21 + ldr x3, [x0, 440] + ldr x2, [x0, 520] + ldrh w5, [x0, 1364] + ldrh w4, [x3, x1] + ldrh w3, [x2, x1] + mov w1, w21 + ldrh w2, [x0, 552] + adrp x0, .LC157 + add x0, x0, :lo12:.LC157 + bl printk + b .L2969 +.L2974: + mov w0, 160 + b .L3097 +.L2973: + add x0, x19, :lo12:.LANCHOR2 + mov w1, 128 +.L3098: + strh w1, [x0, 1366] +.L2969: + bl FtlGcReFreshBadBlk + b .L2956 +.L2971: + ldr x1, [x24, 520] + ldrh w0, [x1, x0, lsl 1] + cmp w0, 7 + bhi .L2976 + mov w0, 0 + bl List_get_gc_head_node + and w21, w0, 65535 + add x0, x19, :lo12:.LANCHOR2 + mov w1, 128 + strh w1, [x0, 1366] + b .L2975 +.L2976: + add x0, x19, :lo12:.LANCHOR2 + mov w1, 64 + b .L3098 +.L2967: + mov w0, 80 + strh w0, [x24, 1366] + b .L2969 +.L3053: + mov w21, w20 + b .L2966 +.L3050: + mov w20, w0 + b .L2956 +.L2980: + cmp w2, 12 + bls .L2981 + lsr w21, w21, 4 + b .L2979 +.L2981: + cmp w2, 8 + bls .L2979 + lsr w21, w21, 2 + b .L2979 +.L3055: + mov w21, 1 + b .L2979 +.L2986: + mov w2, 18 + strh w2, [x1, 1364] + b .L2987 +.L2984: + add x1, x19, :lo12:.LANCHOR2 + ldrh w0, [x1, 780] add w0, w0, w0, lsl 1 asr w0, w0, 2 - strh w0, [x1,1368] -.L3027: - cmp w22, 2 - bhi .L3099 + strh w0, [x1, 1364] +.L2983: adrp x0, .LANCHOR0+2372 - ldr w0, [x0,#:lo12:.LANCHOR0+2372] - cbz w0, .L3099 + ldr w0, [x0, #:lo12:.LANCHOR0+2372] + cbz w0, .L3057 + cmp w22, 2 + bhi .L3057 add w21, w21, 1 - uxth w21, w21 - b .L3099 -.L3022: - add x0, x19, :lo12:.LANCHOR2 - mov w3, 65535 - ldrh w1, [x0,656] - cmp w1, w3 - bne .L3034 - cbz w2, .L3034 - ldrh w2, [x0,1456] - cmp w2, w1 - bne .L3034 - ldrh w2, [x0,800] - cmp w2, w1 - beq .L3035 -.L3040: + and w21, w21, 65535 +.L3057: mov w20, 65535 - b .L3034 -.L3035: - ldrh w2, [x0,552] - adrp x20, .LANCHOR5 - ldrh w1, [x0,1368] - str wzr, [x0,1380] + b .L2989 +.L2978: + ldrh w2, [x0, 656] cmp w2, w1 - bls .L3036 - add x1, x20, :lo12:.LANCHOR5 - ldrh w1, [x1,1464] - cbnz w1, .L3037 + bne .L2990 + ldrh w1, [x0, 1448] + cmp w1, w2 + bne .L2990 + cmp w20, w1 + bne .L2990 + ldrh w1, [x0, 800] + cmp w1, w20 + bne .L2990 + ldrh w2, [x0, 552] + adrp x21, .LANCHOR4 + ldrh w1, [x0, 1364] + str wzr, [x0, 1376] + cmp w2, w1 + bls .L2992 + add x1, x21, :lo12:.LANCHOR4 + ldrh w1, [x1, 1984] + cbnz w1, .L2993 adrp x1, .LANCHOR0+2616 - ldr w2, [x0,716] - ldr w1, [x1,#:lo12:.LANCHOR0+2616] + ldr w2, [x0, 716] + ldr w1, [x1, #:lo12:.LANCHOR0+2616] add w1, w1, w1, lsl 1 cmp w2, w1, lsr 2 - bcs .L3038 -.L3037: + bcs .L2994 +.L2993: add x1, x19, :lo12:.LANCHOR2 - ldrh w0, [x1,780] + ldrh w0, [x1, 780] add w0, w0, w0, lsl 1 asr w0, w0, 2 - strh w0, [x1,1368] - b .L3039 -.L3038: - mov w1, 18 - strh w1, [x0,1368] -.L3039: + strh w0, [x1, 1364] +.L2995: bl FtlReadRefresh mov w0, 0 bl List_get_gc_head_node - ubfiz x0, x0, 1, 16 add x1, x19, :lo12:.LANCHOR2 - ldr x1, [x1,520] - ldrh w0, [x1,x0] - cmp w0, 4 - bls .L3036 - add x20, x20, :lo12:.LANCHOR5 - ldrh w2, [x20,1464] - b .L3145 -.L3036: - add x21, x20, :lo12:.LANCHOR5 - ldrh w0, [x21,1464] - cbnz w0, .L3040 - add x22, x19, :lo12:.LANCHOR2 - ldrh w20, [x22,780] - add w1, w20, w20, lsl 1 - asr w1, w1, 2 - strh w1, [x22,1368] - bl List_get_gc_head_node ubfiz x0, x0, 1, 16 - ldr x1, [x22,520] - ldrh w2, [x1,x0] + ldr x1, [x1, 520] + ldrh w0, [x1, x0] + cmp w0, 4 + bls .L2992 +.L3099: + add x21, x21, :lo12:.LANCHOR4 + b .L3100 +.L2994: + mov w1, 18 + strh w1, [x0, 1364] + b .L2995 +.L2992: + add x21, x21, :lo12:.LANCHOR4 + ldrh w0, [x21, 1984] + cbnz w0, .L2990 + add x6, x19, :lo12:.LANCHOR2 + ldrh w5, [x6, 780] + add w0, w5, w5, lsl 1 + asr w0, w0, 2 + strh w0, [x6, 1364] + mov w0, 0 + bl List_get_gc_head_node + ldr x1, [x6, 520] + ubfiz x0, x0, 1, 16 + ldrh w2, [x1, x0] adrp x1, .LANCHOR0 add x1, x1, :lo12:.LANCHOR0 - ldrh w0, [x1,2546] - ldrh w1, [x1,2472] + ldrh w0, [x1, 2546] + ldrh w1, [x1, 2472] mul w0, w0, w1 mov w1, 2 sdiv w0, w0, w1 cmp w2, w0 - ble .L3041 - ldrh w0, [x22,552] - sub w20, w20, #1 - cmp w0, w20 - blt .L3041 + ble .L2997 + ldrh w0, [x6, 552] + sub w5, w5, #1 + cmp w0, w5 + blt .L2997 bl FtlReadRefresh - b .L3170 -.L3041: - cbnz w2, .L3040 - mov w0, -1 +.L3100: + ldrh w0, [x21, 1984] + b .L2948 +.L2997: + cbnz w2, .L2990 add x19, x19, :lo12:.LANCHOR2 + mov w0, -1 bl decrement_vpc_count - ldrh w2, [x19,552] - add w2, w2, 1 - b .L3145 -.L3034: + ldrh w0, [x19, 552] + add w0, w0, 1 + b .L2948 +.L2990: adrp x0, .LANCHOR0+2372 - mov w21, 2 - ldr w0, [x0,#:lo12:.LANCHOR0+2372] - cmp w0, wzr - csinc w21, w21, wzr, ne - b .L3033 -.L3099: - mov w20, 65535 -.L3033: + ldr w0, [x0, #:lo12:.LANCHOR0+2372] + cmp w0, 0 + cset w21, ne + add w21, w21, 1 +.L2989: add x0, x19, :lo12:.LANCHOR2 mov w2, 65535 - ldrh w1, [x0,800] + ldrh w1, [x0, 800] cmp w1, w2 - bne .L3043 + bne .L2999 cmp w20, w1 - beq .L3044 - strh w20, [x0,800] - b .L3045 -.L3044: - ldrh w1, [x0,1456] - cmp w1, w20 - beq .L3045 - ubfiz x1, x1, 1, 16 - ldr x2, [x0,520] - ldrh w1, [x2,x1] - cbnz w1, .L3046 - mov w1, -1 - strh w1, [x0,1456] -.L3046: - add x0, x19, :lo12:.LANCHOR2 - ldrh w1, [x0,1456] - strh w1, [x0,800] - mov w1, -1 - strh w1, [x0,1456] -.L3045: - add x22, x19, :lo12:.LANCHOR2 + beq .L3000 + strh w20, [x0, 800] +.L3001: + add x5, x19, :lo12:.LANCHOR2 mov w1, 65535 - ldrh w0, [x22,800] - strb wzr, [x22,808] + ldrh w0, [x5, 800] + strb wzr, [x5, 808] cmp w0, w1 - beq .L3043 + beq .L2999 bl IsBlkInGcList - cbz w0, .L3048 + cbz w0, .L3004 mov w0, -1 - strh w0, [x22,800] -.L3048: + strh w0, [x5, 800] +.L3004: adrp x0, .LANCHOR0+204 - ldrb w0, [x0,#:lo12:.LANCHOR0+204] - cbz w0, .L3049 + ldrb w0, [x0, #:lo12:.LANCHOR0+204] + cbz w0, .L3005 add x0, x19, :lo12:.LANCHOR2 - add x22, x0, 800 - ldrh w0, [x0,800] + add x3, x0, 800 + ldrh w0, [x0, 800] bl ftl_get_blk_mode - strb w0, [x22,8] -.L3049: + strb w0, [x3, 8] +.L3005: + add x12, x19, :lo12:.LANCHOR2 + mov w0, 65535 + add x13, x12, 800 + ldrh w1, [x12, 800] + cmp w1, w0 + beq .L2999 + mov x0, x13 + bl make_superblock + adrp x0, .LANCHOR4 + add x0, x0, :lo12:.LANCHOR4 + ldrh w2, [x12, 800] + ldr x1, [x12, 520] + strh wzr, [x12, 802] + strb wzr, [x12, 806] + strh wzr, [x0, 1986] + ldrh w1, [x1, x2, lsl 1] + strh w1, [x0, 1988] +.L2999: + add x0, x19, :lo12:.LANCHOR2 + ldrh w1, [x0, 800] + ldrh w2, [x0, 560] + cmp w2, w1 + beq .L3006 + ldrh w2, [x0, 608] + cmp w2, w1 + beq .L3006 + ldrh w0, [x0, 656] + cmp w0, w1 + bne .L3040 +.L3006: + add x0, x19, :lo12:.LANCHOR2 + mov w1, -1 + strh w1, [x0, 800] +.L3040: add x22, x19, :lo12:.LANCHOR2 mov w0, 65535 - add x23, x22, 800 - ldrh w1, [x22,800] - cmp w1, w0 - beq .L3043 - mov x0, x23 - bl make_superblock - strh wzr, [x22,802] - adrp x0, .LANCHOR5 - ldrh w2, [x22,800] - add x0, x0, :lo12:.LANCHOR5 - ldr x1, [x22,520] - strb wzr, [x22,806] - strh wzr, [x0,1466] - ldrh w1, [x1,x2,lsl 1] - strh w1, [x0,1468] -.L3043: - add x0, x19, :lo12:.LANCHOR2 - ldrh w1, [x0,800] - ldrh w2, [x0,560] - cmp w2, w1 - beq .L3050 - ldrh w2, [x0,608] - cmp w2, w1 - beq .L3050 - ldrh w0, [x0,656] - cmp w0, w1 - bne .L3051 -.L3050: - add x0, x19, :lo12:.LANCHOR2 - mov w1, -1 - strh w1, [x0,800] -.L3051: - add x24, x19, :lo12:.LANCHOR2 - mov w25, 65535 -.L3084: - ldrh w0, [x24,800] - cmp w0, w25 - bne .L3052 - str wzr, [x24,1380] -.L3053: - ldrh w22, [x24,1376] - mov w0, w22 + ldrh w24, [x22, 800] + cmp w24, w0 + bne .L3008 + adrp x25, .LANCHOR0 + add x26, x25, :lo12:.LANCHOR0 + mov w27, 2 + str wzr, [x22, 1376] +.L3009: + ldrh w5, [x22, 1372] + mov w0, w5 bl List_get_gc_head_node - uxth w23, w0 - cmp w23, w25 - strh w23, [x24,800] - bne .L3054 - strh wzr, [x24,1376] - mov w2, 8 - b .L3145 -.L3054: - mov w0, w23 - add w22, w22, 1 + and w6, w0, 65535 + strh w6, [x22, 800] + cmp w6, w24 + bne .L3010 + strh wzr, [x22, 1372] + mov w0, 8 + b .L2948 +.L3000: + ldrh w1, [x0, 1448] + cmp w1, w20 + beq .L3001 + ldr x2, [x0, 520] + ubfiz x1, x1, 1, 16 + ldrh w1, [x2, x1] + cbnz w1, .L3002 + mov w1, -1 + strh w1, [x0, 1448] +.L3002: + add x0, x19, :lo12:.LANCHOR2 + ldrh w1, [x0, 1448] + strh w1, [x0, 800] + mov w1, -1 + strh w1, [x0, 1448] + b .L3001 +.L3010: + mov w0, w6 bl IsBlkInGcList - cbz w0, .L3055 - strh w22, [x24,1376] - b .L3053 -.L3055: - adrp x0, .LANCHOR0 - ubfiz x1, x23, 1, 16 - add x5, x0, :lo12:.LANCHOR0 - ldr x2, [x24,520] - uxth w22, w22 - mov w3, 2 - strh w22, [x24,1376] - ldrh w0, [x5,2544] - ldrh w5, [x5,2472] - ldrh w4, [x2,x1] - mul w0, w0, w5 - sdiv w5, w0, w3 - cmp w4, w5 - bgt .L3057 - cmp w4, 8 - bls .L3058 - cmp w22, 48 - bls .L3058 - ldrh w4, [x24,1428] - cmp w4, 35 - bhi .L3058 -.L3057: - strh wzr, [x24,1376] -.L3058: - cmp w20, w25 - ldrh w1, [x2,x1] - bne .L3059 - cmp w1, w0 - blt .L3059 - ldrh w0, [x24,1376] + add w5, w5, 1 + cbz w0, .L3011 + strh w5, [x22, 1372] + b .L3009 +.L3011: + ldrh w4, [x26, 2472] + ubfiz x1, x6, 1, 16 + ldrh w0, [x26, 2544] + and w5, w5, 65535 + ldr x2, [x22, 520] + strh w5, [x22, 1372] + mul w0, w0, w4 + ldrh w3, [x2, x1] + sdiv w4, w0, w27 + cmp w3, w4 + bgt .L3013 + cmp w5, 48 + bls .L3014 + cmp w3, 8 + bls .L3014 + ldrh w3, [x22, 1420] + cmp w3, 35 + bhi .L3014 +.L3013: + strh wzr, [x22, 1372] +.L3014: + ldrh w1, [x2, x1] + cmp w0, w1 + bgt .L3015 + cmp w20, w24 + bne .L3015 + ldrh w0, [x22, 1372] cmp w0, 3 - bhi .L3059 + bhi .L3015 mov w0, -1 - strh w0, [x24,800] - adrp x0, .LANCHOR5+1464 - strh wzr, [x24,1376] - ldrh w2, [x0,#:lo12:.LANCHOR5+1464] - b .L3145 -.L3059: - cbnz w1, .L3060 + strh w0, [x22, 800] + adrp x0, .LANCHOR4+1984 + strh wzr, [x22, 1372] + ldrh w0, [x0, #:lo12:.LANCHOR4+1984] + b .L2948 +.L3015: + cbnz w1, .L3016 mov w0, -1 bl decrement_vpc_count - ldrh w0, [x24,1376] + ldrh w0, [x22, 1372] add w0, w0, 1 - strh w0, [x24,1376] - b .L3053 -.L3060: - adrp x0, .LANCHOR0 - strb wzr, [x24,808] - add x0, x0, :lo12:.LANCHOR0 - ldrb w0, [x0,204] - cbz w0, .L3061 - mov w0, w23 + strh w0, [x22, 1372] + b .L3009 +.L3016: + add x25, x25, :lo12:.LANCHOR0 + add x3, x19, :lo12:.LANCHOR2 + add x3, x3, 800 + ldrb w0, [x25, 204] + strb wzr, [x3, 8] + cbz w0, .L3017 + mov w0, w6 bl ftl_get_blk_mode - strb w0, [x24,808] -.L3061: - add x22, x24, 800 - mov x0, x22 + strb w0, [x3, 8] +.L3017: + add x13, x19, :lo12:.LANCHOR2 + add x12, x13, 800 + mov x0, x12 bl make_superblock - adrp x1, .LANCHOR5 - ldrh w2, [x24,800] - add x1, x1, :lo12:.LANCHOR5 - ldr x0, [x24,520] - strh wzr, [x1,1466] - ldrh w0, [x0,x2,lsl 1] - strh w0, [x1,1468] - strh wzr, [x24,802] - strb wzr, [x24,806] -.L3052: - ldr w0, [x29,124] - cmp w0, 1 - bne .L3062 + ldrh w2, [x13, 800] + adrp x0, .LANCHOR4 + add x0, x0, :lo12:.LANCHOR4 + ldr x1, [x13, 520] + strh wzr, [x0, 1986] + ldrh w1, [x1, x2, lsl 1] + strh w1, [x0, 1988] + strh wzr, [x13, 802] + strb wzr, [x13, 806] +.L3008: + cmp w23, 1 + bne .L3018 bl FtlReadRefresh -.L3062: +.L3018: + add x1, x19, :lo12:.LANCHOR2 mov w0, 1 - str w0, [x24,3568] - adrp x0, .LANCHOR0 adrp x22, .LANCHOR0 - add x0, x0, :lo12:.LANCHOR0 - ldrb w1, [x0,204] - ldrh w26, [x0,2544] - cbz w1, .L3063 - ldrb w1, [x24,808] - cmp w1, 1 - bne .L3063 - ldrh w26, [x0,2546] -.L3063: - ldrh w0, [x24,802] - add w1, w0, w21 - cmp w1, w26 - ble .L3064 - sub w21, w26, w0 - uxth w21, w21 -.L3064: - mov w27, 0 -.L3065: - cmp w21, w27, uxth - bls .L3072 - add x1, x24, 800 + str w0, [x1, 3560] add x0, x22, :lo12:.LANCHOR0 - ldrh w4, [x1,2] - ldrh w6, [x0,2472] - mov x0, 0 - add w4, w4, w27 - mov w23, w0 -.L3073: - cmp w6, w0, uxth - bls .L3173 - add x2, x1, x0, lsl 1 - ldrh w2, [x2,16] - cmp w2, w25 - beq .L3066 - mov w3, 56 - ldr x7, [x24,1416] - orr w2, w4, w2, lsl 10 - umull x5, w23, w3 - add w23, w23, 1 - add x5, x7, x5 - uxth w23, w23 - str w2, [x5,4] -.L3066: - add x0, x0, 1 - b .L3073 -.L3173: - ldr x0, [x24,1416] - mov w1, w23 - ldrb w2, [x24,808] - mov x28, 0 - bl FlashReadPages -.L3068: - cmp w23, w28, uxth - bls .L3174 - mov x0, 56 - mul x4, x28, x0 - ldr x0, [x24,1416] - add x1, x0, x4 - ldr w0, [x0,x4] - cmn w0, #1 - ldr x5, [x1,16] - beq .L3102 - ldrh w0, [x5] - mov w1, 61589 - cmp w0, w1 - bne .L3102 - ldr w0, [x5,8] - add x1, x29, 136 + ldrb w2, [x0, 204] + ldrh w24, [x0, 2544] + cbz w2, .L3019 + ldrb w1, [x1, 808] + cmp w1, 1 + bne .L3019 + ldrh w24, [x0, 2546] +.L3019: + add x0, x19, :lo12:.LANCHOR2 + ldrh w0, [x0, 802] + add w1, w0, w21 + cmp w1, w24 + ble .L3020 + sub w21, w24, w0 + and w21, w21, 65535 +.L3020: + adrp x0, .LANCHOR4 + mov w25, 0 + add x0, x0, :lo12:.LANCHOR4 + str x0, [x29, 136] +.L3021: + cmp w21, w25, uxth + bls .L3028 + add x0, x22, :lo12:.LANCHOR0 + mov w6, 0 mov w2, 0 - str x4, [x29,104] - str x5, [x29,112] + mov w8, 65535 + mov w7, 56 + ldrh w9, [x0, 2472] + add x0, x19, :lo12:.LANCHOR2 + add x3, x0, 816 + ldrh w4, [x0, 802] + add w4, w4, w25 + b .L3029 +.L3023: + ldrh w1, [x3] + cmp w1, w8 + beq .L3022 + ldr x5, [x0, 1408] + orr w1, w4, w1, lsl 10 + umaddl x5, w6, w7, x5 + add w6, w6, 1 + and w6, w6, 65535 + str w1, [x5, 4] +.L3022: + add w2, w2, 1 + add x3, x3, 2 + and w2, w2, 65535 +.L3029: + cmp w2, w9 + bne .L3023 + add x26, x19, :lo12:.LANCHOR2 + mov w1, w6 + str w6, [x29, 128] + add x27, x26, 656 + mov x28, 0 + ldrb w2, [x26, 808] + ldr x0, [x26, 1408] + bl FlashReadPages + ldr w6, [x29, 128] + mov w0, 56 + umull x0, w6, w0 + str x0, [x29, 128] +.L3024: + ldr x0, [x29, 128] + cmp x0, x28 + bne .L3027 + add w25, w25, 1 + b .L3021 +.L3027: + ldr x0, [x26, 1408] + add x1, x0, x28 + ldr w0, [x0, x28] + cmn w0, #1 + beq .L3025 + ldr x5, [x1, 16] + mov w0, 61589 + ldrh w1, [x5] + cmp w1, w0 + bne .L3025 + ldr w0, [x5, 8] + mov w2, 0 + add x1, x29, 152 + str x5, [x29, 120] bl log2phys - ldr x2, [x24,1416] - ldr x4, [x29,104] - ldr w0, [x29,136] - add x2, x2, x4 - ldr x5, [x29,112] - and w0, w0, 2147483647 - ldr w1, [x2,4] - cmp w0, w1 - bne .L3102 - adrp x0, .LANCHOR5 - mov x3, 56 - add x1, x0, :lo12:.LANCHOR5 - str x4, [x29,96] - str x5, [x29,104] - ldrh w0, [x1,1466] - add w0, w0, 1 - strh w0, [x1,1466] - ldr w0, [x24,1384] - ldr x1, [x24,3600] - madd x1, x0, x3, x1 - ldr w0, [x2,24] - str x1, [x29,112] - str w0, [x1,24] + ldr x0, [x26, 1408] + ldr w1, [x29, 152] + add x0, x0, x28 + ldr x5, [x29, 120] + and w1, w1, 2147483647 + ldr w2, [x0, 4] + cmp w1, w2 + bne .L3025 + ldr x1, [x29, 136] + ldr x2, [x29, 136] + ldr x6, [x26, 3592] + ldr w0, [x0, 24] + ldrh w1, [x1, 1986] + str x5, [x29, 104] + add w1, w1, 1 + strh w1, [x2, 1986] + ldr w1, [x26, 1380] + mov w2, 56 + str w2, [x29, 116] + nop // between mem op and mult-accumulate + umaddl x1, w1, w2, x6 + str x1, [x29, 120] + str w0, [x1, 24] bl Ftl_get_new_temp_ppa - ldr x1, [x29,112] - mov x2, 56 - ldr x4, [x29,96] - ldr x5, [x29,104] - str w0, [x1,4] - ldr w0, [x24,1384] - ldr x1, [x24,3600] - madd x0, x0, x2, x1 - ldr x1, [x24,1416] - add x1, x1, x4 - ldr x2, [x1,8] - str x2, [x0,8] - add x2, x24, 656 - str x2, [x29,112] - ldr x1, [x1,16] - str x1, [x0,16] + ldr x1, [x29, 120] + ldr w2, [x29, 116] + ldr x5, [x29, 104] + str w0, [x1, 4] + ldr w0, [x26, 1380] + ldr x1, [x26, 3592] + umaddl x0, w0, w2, x1 + ldr x1, [x26, 1408] + add x1, x1, x28 + ldr x2, [x1, 8] + str x2, [x0, 8] + ldr x1, [x1, 16] + str x1, [x0, 16] + ldr w0, [x29, 152] mov w1, 1 - ldr w0, [x29,136] - str w0, [x5,12] - ldrh w0, [x24,656] - strh w0, [x5,2] - ldr w0, [x24,756] - str w0, [x5,4] - ldr w0, [x24,1384] + str w0, [x5, 12] + ldrh w0, [x27] + strh w0, [x5, 2] + ldr w0, [x26, 756] + str w0, [x5, 4] + ldr w0, [x26, 1380] add w0, w0, 1 - str w0, [x24,1384] - ldr x0, [x24,1416] - add x0, x0, x4 + str w0, [x26, 1380] + ldr x0, [x26, 1408] + add x0, x0, x28 bl FtlGcBufAlloc add x0, x22, :lo12:.LANCHOR0 - ldrb w0, [x0,204] - cbnz w0, .L3070 - ldr x2, [x29,112] - ldr w1, [x24,1384] - ldrb w0, [x2,7] + ldrb w0, [x0, 204] + cbnz w0, .L3026 + ldrb w1, [x27, 7] + ldr w0, [x26, 1380] cmp w1, w0 - beq .L3070 - ldrh w0, [x2,4] - cbnz w0, .L3102 -.L3070: + beq .L3026 + ldrh w0, [x27, 4] + cbnz w0, .L3025 +.L3026: bl Ftl_gc_temp_data_write_back - cbz w0, .L3102 + cbz w0, .L3025 add x19, x19, :lo12:.LANCHOR2 mov w0, -1 - strh w0, [x19,800] - adrp x0, .LANCHOR5 - add x0, x0, :lo12:.LANCHOR5 - str wzr, [x19,3568] - strh wzr, [x19,802] - ldrh w2, [x0,1464] - b .L3145 -.L3102: - add x28, x28, 1 - b .L3068 -.L3174: - add w27, w27, 1 - b .L3065 -.L3072: - ldrh w0, [x24,802] + strh w0, [x19, 800] + adrp x0, .LANCHOR4 + add x26, x0, :lo12:.LANCHOR4 + strh wzr, [x19, 802] + str wzr, [x19, 3560] + ldrh w0, [x26, 1984] + b .L2948 +.L3025: + add x28, x28, 56 + b .L3024 +.L3028: + add x25, x19, :lo12:.LANCHOR2 + ldrh w0, [x25, 802] add w21, w21, w0 - uxth w21, w21 - strh w21, [x24,802] - cmp w21, w26 - bcc .L3074 - ldr w0, [x24,1384] - adrp x21, .LANCHOR5 - cbz w0, .L3075 + and w21, w21, 65535 + strh w21, [x25, 802] + cmp w24, w21 + bhi .L3030 + ldr w0, [x25, 1380] + adrp x21, .LANCHOR4 + cbz w0, .L3031 bl Ftl_gc_temp_data_write_back - cbz w0, .L3075 - str wzr, [x24,3568] - add x21, x21, :lo12:.LANCHOR5 -.L3170: - ldrh w2, [x21,1464] - b .L3145 -.L3075: - add x21, x21, :lo12:.LANCHOR5 - ldrh w21, [x21,1466] - cbnz w21, .L3076 - ldrh w1, [x24,800] - ldr x0, [x24,520] - ldrh w0, [x0,x1,lsl 1] - cbz w0, .L3076 -.L3077: - add x0, x22, :lo12:.LANCHOR0 - ldr w0, [x0,2616] + cbz w0, .L3031 + str wzr, [x25, 3560] + b .L3099 +.L3031: + add x21, x21, :lo12:.LANCHOR4 + ldrh w0, [x21, 1986] + cbnz w0, .L3032 + add x0, x19, :lo12:.LANCHOR2 + ldrh w2, [x0, 800] + ldr x1, [x0, 520] + ldrh w1, [x1, x2, lsl 1] + cbz w1, .L3032 + add x25, x22, :lo12:.LANCHOR0 + mov x24, x0 + mov w21, 0 +.L3033: + ldr w0, [x25, 2616] cmp w21, w0 - bcs .L3082 - mov w0, w21 - add x1, x29, 140 + bcs .L3038 mov w2, 0 + add x1, x29, 156 + mov w0, w21 bl log2phys - ldr w0, [x29,140] + ldr w0, [x29, 156] cmn w0, #1 - beq .L3078 + beq .L3034 lsr w0, w0, 10 bl P2V_block_in_plane - ldrh w1, [x24,800] + ldrh w1, [x24, 800] cmp w1, w0, uxth - bne .L3078 -.L3082: + bne .L3034 +.L3038: add x0, x22, :lo12:.LANCHOR0 - ldr w0, [x0,2616] + ldr w0, [x0, 2616] cmp w21, w0 - bcc .L3076 - ldrh w1, [x24,800] - ldr x0, [x24,520] - strh wzr, [x0,x1,lsl 1] - ldrh w0, [x24,800] + bcc .L3032 + add x0, x19, :lo12:.LANCHOR2 + ldrh w2, [x0, 800] + ldr x1, [x0, 520] + strh wzr, [x1, x2, lsl 1] + ldrh w0, [x0, 800] bl update_vpc_list bl FtlCacheWriteBack bl l2p_flush bl FtlVpcTblFlush - b .L3076 -.L3078: - add w21, w21, 1 - b .L3077 -.L3076: - mov w0, -1 - strh w0, [x24,800] -.L3074: - ldrh w0, [x24,552] - cmp w0, 2 - bhi .L3083 - add x22, x22, :lo12:.LANCHOR0 - ldrh w21, [x22,2544] - b .L3084 -.L3083: - adrp x1, .LANCHOR5+1464 - str wzr, [x24,3568] - ldrh w2, [x1,#:lo12:.LANCHOR5+1464] - cmp w2, wzr - csinc w2, w2, w0, ne - b .L3145 -.L3172: - ldrh w25, [x21,1456] - cmp w25, w20 - bne .L3009 - ldrh w0, [x21,552] - mov w2, 1024 - ldr w1, [x21,1372] - cmp w0, 24 - mov w0, 5120 - csel w0, w0, w2, cc - cmp w1, w0 - bls .L3009 - adrp x0, .LANCHOR5+1464 - str wzr, [x21,1372] - mov x23, x21 - strh wzr, [x0,#:lo12:.LANCHOR5+1464] - bl GetSwlReplaceBlock - uxth w20, w0 - cmp w20, w25 - bne .L3011 - ldrh w1, [x21,552] - ldrh w0, [x21,1370] - cmp w1, w0 - bcs .L3012 - mov w0, 64 - bl List_get_gc_head_node - uxth w0, w0 - cmp w0, w20 - beq .L3021 - ldr w2, [x21,3564] - uxtw x1, w0 - adrp x21, .LANCHOR0 - cbnz w2, .L3014 - add x0, x21, :lo12:.LANCHOR0 - ldrh w2, [x0,2492] - cmp w2, 3 - beq .L3014 - ldr w2, [x23,848] - cbnz w2, .L3014 - ldr w2, [x0,2372] - cbnz w2, .L3014 - ldrb w0, [x0,204] - cbz w0, .L3015 -.L3014: +.L3032: add x0, x19, :lo12:.LANCHOR2 - add x3, x21, :lo12:.LANCHOR0 - ldr x0, [x0,520] - ldrh w4, [x0,x1,lsl 1] - ldrh w1, [x3,2546] - ldrh w0, [x3,2472] - ldrh w3, [x3,2492] - mul w2, w1, w0 - cmp w3, 3 - mov w0, 0 - lsr w1, w1, 1 - csel w0, w1, w0, eq - add w0, w2, w0 - cmp w4, w0 - bgt .L3017 - mov w0, 0 - add x21, x21, :lo12:.LANCHOR0 - bl List_get_gc_head_node - uxth w20, w0 + mov w1, -1 + strh w1, [x0, 800] +.L3030: add x1, x19, :lo12:.LANCHOR2 - ldr w0, [x21,2616] - ldr w2, [x1,716] - add w0, w0, w0, lsl 1 - cmp w2, w0, lsr 2 - bls .L3018 - mov w0, 128 - b .L3168 -.L3018: - mov w0, 160 -.L3168: - strh w0, [x1,1370] - b .L3019 -.L3017: - add x0, x19, :lo12:.LANCHOR2 - mov w1, 128 - b .L3169 -.L3015: - ldr x2, [x23,520] - ldrh w1, [x2,x1,lsl 1] - cmp w1, 7 - bhi .L3020 - bl List_get_gc_head_node - uxth w20, w0 - add x0, x19, :lo12:.LANCHOR2 - mov w1, 128 - strh w1, [x0,1370] - b .L3019 -.L3020: - add x0, x19, :lo12:.LANCHOR2 - mov w1, 64 -.L3169: - strh w1, [x0,1370] - b .L3021 -.L3012: - mov w0, 80 - strh w0, [x21,1370] - b .L3021 -.L3019: - mov w0, 65535 - cmp w20, w0 - beq .L3021 -.L3011: - add x5, x19, :lo12:.LANCHOR2 - ubfiz x4, x20, 1, 32 - adrp x0, .LC157 - mov w1, w20 - add x0, x0, :lo12:.LC157 - ldr x3, [x5,520] - ldr x6, [x5,440] - ldrh w2, [x5,552] - ldrh w3, [x3,x4] - ldrh w5, [x5,1368] - ldrh w4, [x6,x4] - bl printk -.L3021: - bl FtlGcReFreshBadBlk - b .L3009 -.L3171: - mov w20, w0 - b .L3009 -.L3145: - mov w0, w2 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 144 - ret + ldrh w0, [x1, 552] + cmp w0, 2 + bhi .L3039 + add x22, x22, :lo12:.LANCHOR0 + ldrh w21, [x22, 2544] + b .L3040 +.L3034: + add w21, w21, 1 + b .L3033 +.L3039: + str wzr, [x1, 3560] + adrp x1, .LANCHOR4+1984 + ldrh w1, [x1, #:lo12:.LANCHOR4+1984] + cmp w1, 0 + csinc w0, w1, w0, ne + b .L2948 +.L3047: + mov w0, 0 + b .L2948 .size ftl_do_gc, .-ftl_do_gc .align 2 .global FtlCacheWriteBack .type FtlCacheWriteBack, %function FtlCacheWriteBack: - stp x29, x30, [sp, -128]! - adrp x0, .LANCHOR5+1472 + stp x29, x30, [sp, -112]! add x29, sp, 0 - stp x21, x22, [sp,32] - adrp x22, .LANCHOR2 - stp x19, x20, [sp,16] - ldr x20, [x0,#:lo12:.LANCHOR5+1472] - add x0, x22, :lo12:.LANCHOR2 - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] - stp x27, x28, [sp,80] - ldr w23, [x0,424] - cbnz w23, .L3177 - adrp x19, .LANCHOR0 - add x0, x19, :lo12:.LANCHOR0 - ldr w1, [x0,2600] - cbz w1, .L3177 - ldrb w0, [x0,204] - cbz w0, .L3179 - ldrb w0, [x20,8] + stp x23, x24, [sp, 48] + adrp x23, .LANCHOR2 + add x0, x23, :lo12:.LANCHOR2 + stp x19, x20, [sp, 16] + stp x21, x22, [sp, 32] + stp x25, x26, [sp, 64] + stp x27, x28, [sp, 80] + ldr w24, [x0, 424] + cbnz w24, .L3103 + adrp x22, .LANCHOR0 + add x0, x22, :lo12:.LANCHOR0 + ldr w1, [x0, 2600] + cbz w1, .L3103 + ldrb w0, [x0, 204] + adrp x2, .LANCHOR4+1992 + ldr x19, [x2, #:lo12:.LANCHOR4+1992] + cbz w0, .L3128 + ldrb w0, [x19, 8] cmp w0, 1 - cset w23, eq -.L3179: - add x0, x19, :lo12:.LANCHOR0 - ldrb w3, [x20,9] + cset w25, eq +.L3105: + add x20, x22, :lo12:.LANCHOR0 + ldrb w3, [x19, 9] adrp x26, .LC158 - mov w2, w23 - mov w24, 0 + mov w2, w25 + mov w21, 0 mov w27, 56 - ldr x0, [x0,2608] + ldr x0, [x20, 2608] add x26, x26, :lo12:.LC158 bl FlashProgPages -.L3180: - add x0, x19, :lo12:.LANCHOR0 - ldr w1, [x0,2600] - cmp w24, w1 - bcs .L3198 - umull x21, w24, w27 - ldr x1, [x0,2608] - add x0, x1, x21 - ldr w25, [x1,x21] - cmn w25, #1 - beq .L3201 - ldr w1, [x0,4] - cbz w23, .L3215 - orr w1, w1, -2147483648 -.L3215: - ldr w0, [x0,24] - mov w2, 1 - str w1, [x29,124] - add x1, x29, 124 - bl log2phys - add x0, x19, :lo12:.LANCHOR0 - ldr x0, [x0,2608] - add x21, x0, x21 - ldr x0, [x21,16] - ldr w0, [x0,12] - cmn w0, #1 - beq .L3184 - lsr x0, x0, 10 - bl P2V_block_in_plane - uxth w1, w0 - add x2, x22, :lo12:.LANCHOR2 - ubfiz x0, x1, 1, 16 - mov w21, w1 - ldr x2, [x2,520] - ldrh w2, [x2,x0] - cbnz w2, .L3185 - mov x0, x26 - bl printk -.L3185: - mov w0, w21 - bl decrement_vpc_count -.L3184: - add w24, w24, 1 - b .L3180 -.L3217: - mov w20, 16386 -.L3197: - add x0, x22, :lo12:.LANCHOR2 - ldrh w0, [x0,1464] - cbz w0, .L3198 - mov w0, 1 - mov w1, w0 - bl ftl_do_gc - subs w20, w20, #1 - bne .L3197 -.L3198: - add x19, x19, :lo12:.LANCHOR0 - str wzr, [x19,2600] - b .L3177 -.L3201: - adrp x26, .LC158 - mov w24, 0 - mov w27, 56 - str w25, [x29,108] - mov w28, 1 - add x26, x26, :lo12:.LC158 -.L3181: - add x0, x19, :lo12:.LANCHOR0 - ldr w1, [x0,2600] - cmp w24, w1 - bcs .L3217 - umull x21, w24, w27 - ldr x0, [x0,2608] - ldr w1, [x29,108] - str w1, [x0,x21] -.L3187: - add x2, x19, :lo12:.LANCHOR0 - ldr x0, [x2,2608] - add x1, x0, x21 - ldr w0, [x0,x21] - cmn w0, #1 - bne .L3218 - ldr w0, [x1,4] - str x2, [x29,96] - lsr x0, x0, 10 - bl P2V_block_in_plane - ldrh w1, [x20] - cmp w1, w0, uxth - ldr x2, [x29,96] - bne .L3188 - add x0, x22, :lo12:.LANCHOR2 - ubfiz x1, x1, 1, 16 - ldrh w4, [x20,4] - ldr x3, [x0,520] - ldrh w0, [x3,x1] - sub w0, w0, w4 - strh w0, [x3,x1] - strb wzr, [x20,6] - ldrh w0, [x2,2544] - strh w0, [x20,2] - strh wzr, [x20,4] -.L3188: - ldrh w0, [x20,4] - cbnz w0, .L3189 - mov x0, x20 - bl allocate_new_data_superblock -.L3189: - add x5, x22, :lo12:.LANCHOR2 - add x25, x19, :lo12:.LANCHOR0 - str x5, [x29,96] - ldr w0, [x5,952] - add w0, w0, 1 - str w0, [x5,952] - ldr x0, [x25,2608] - add x0, x0, x21 - ldr w0, [x0,4] - lsr x0, x0, 10 - bl FtlGcMarkBadPhyBlk - mov x0, x20 - bl get_new_active_ppa - str w0, [x29,124] - ldr x1, [x25,2608] - mov w2, w23 - add x1, x1, x21 - str w0, [x1,4] - mov w1, 1 - ldr x0, [x25,2608] - ldrb w3, [x20,9] - add x0, x0, x21 - bl FlashProgPages - ldr x0, [x25,2608] - ldr x5, [x29,96] - ldr w0, [x0,x21] - cmn w0, #1 - bne .L3190 - str w28, [x5,424] -.L3190: - add x0, x22, :lo12:.LANCHOR2 - ldr w0, [x0,424] - cbz w0, .L3187 - b .L3177 -.L3218: - ldr w0, [x1,4] - cbz w23, .L3216 - orr w0, w0, -2147483648 -.L3216: - str w0, [x29,124] - mov w2, 1 - ldr w0, [x1,24] - add x1, x29, 124 - bl log2phys - add x0, x19, :lo12:.LANCHOR0 - ldr x0, [x0,2608] - add x21, x0, x21 - ldr x0, [x21,16] - ldr w0, [x0,12] - cmn w0, #1 - beq .L3194 - lsr x0, x0, 10 - bl P2V_block_in_plane - uxth w1, w0 - add x2, x22, :lo12:.LANCHOR2 - ubfiz x0, x1, 1, 16 - mov w21, w1 - ldr x2, [x2,520] - ldrh w2, [x2,x0] - cbnz w2, .L3195 - mov x0, x26 - bl printk -.L3195: - mov w0, w21 - bl decrement_vpc_count -.L3194: - add w24, w24, 1 - b .L3181 -.L3177: +.L3106: + ldr w0, [x20, 2600] + cmp w21, w0 + bcc .L3113 +.L3125: + add x22, x22, :lo12:.LANCHOR0 + str wzr, [x22, 2600] +.L3103: + ldp x19, x20, [sp, 16] mov w0, 0 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 128 + 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 +.L3128: + mov w25, 0 + b .L3105 +.L3113: + umull x28, w21, w27 + ldr x0, [x20, 2608] + add x3, x0, x28 + ldr w0, [x0, x28] + cmn w0, #1 + bne .L3107 + add x21, x22, :lo12:.LANCHOR0 + add x26, x23, :lo12:.LANCHOR2 +.L3108: + ldr w0, [x21, 2600] + cmp w24, w0 + bcc .L3123 + add x23, x23, :lo12:.LANCHOR2 + mov w19, 16386 +.L3126: + ldrh w0, [x23, 1456] + cbz w0, .L3125 + mov w1, 1 + mov w0, w1 + bl ftl_do_gc + subs w19, w19, #1 + bne .L3126 + b .L3125 +.L3107: + ldr w0, [x3, 4] + cbnz w25, .L3109 +.L3142: + str w0, [x29, 108] + mov w2, 1 + ldr w0, [x3, 24] + add x1, x29, 108 + bl log2phys + ldr x0, [x20, 2608] + add x0, x0, x28 + ldr x0, [x0, 16] + ldr w0, [x0, 12] + cmn w0, #1 + beq .L3111 + lsr w0, w0, 10 + bl P2V_block_in_plane + and w1, w0, 65535 + add x0, x23, :lo12:.LANCHOR2 + ubfiz x2, x1, 1, 16 + mov w28, w1 + ldr x0, [x0, 520] + ldrh w0, [x0, x2] + cbnz w0, .L3112 + mov w2, 0 + mov x0, x26 + bl printk +.L3112: + mov w0, w28 + bl decrement_vpc_count +.L3111: + add w21, w21, 1 + b .L3106 +.L3109: + orr w0, w0, -2147483648 + b .L3142 +.L3123: + mov w20, 56 + ldr x0, [x21, 2608] + mov w1, -1 + mov w27, 1 + umull x20, w24, w20 + str w1, [x0, x20] +.L3114: + ldr x0, [x21, 2608] + add x3, x0, x20 + ldr w0, [x0, x20] + cmn w0, #1 + ldr w0, [x3, 4] + beq .L3118 + cbnz w25, .L3119 +.L3143: + str w0, [x29, 108] + mov w2, 1 + ldr w0, [x3, 24] + add x1, x29, 108 + bl log2phys + ldr x0, [x21, 2608] + add x20, x0, x20 + ldr x0, [x20, 16] + ldr w0, [x0, 12] + cmn w0, #1 + beq .L3121 + lsr w0, w0, 10 + bl P2V_block_in_plane + ldr x2, [x26, 520] + and w1, w0, 65535 + ubfiz x0, x1, 1, 16 + mov w20, w1 + ldrh w0, [x2, x0] + cbnz w0, .L3122 + adrp x0, .LC158 + mov w2, 0 + add x0, x0, :lo12:.LC158 + bl printk +.L3122: + mov w0, w20 + bl decrement_vpc_count +.L3121: + add w24, w24, 1 + b .L3108 +.L3118: + lsr w0, w0, 10 + bl P2V_block_in_plane + ldrh w1, [x19] + cmp w1, w0, uxth + bne .L3115 + ldr x2, [x26, 520] + ubfiz x1, x1, 1, 16 + ldrh w3, [x19, 4] + ldrh w0, [x2, x1] + sub w0, w0, w3 + strh w0, [x2, x1] + strb wzr, [x19, 6] + ldrh w0, [x21, 2544] + strh w0, [x19, 2] + strh wzr, [x19, 4] +.L3115: + ldrh w0, [x19, 4] + cbnz w0, .L3116 + mov x0, x19 + bl allocate_new_data_superblock +.L3116: + ldr w0, [x26, 944] + add w0, w0, 1 + str w0, [x26, 944] + ldr x0, [x21, 2608] + add x0, x0, x20 + ldr w0, [x0, 4] + lsr w0, w0, 10 + bl FtlGcMarkBadPhyBlk + mov x0, x19 + bl get_new_active_ppa + ldr x1, [x21, 2608] + mov w2, w25 + str w0, [x29, 108] + add x1, x1, x20 + str w0, [x1, 4] + mov w1, 1 + ldrb w3, [x19, 9] + ldr x0, [x21, 2608] + add x0, x0, x20 + bl FlashProgPages + ldr x0, [x21, 2608] + ldr w0, [x0, x20] + cmn w0, #1 + bne .L3117 + str w27, [x26, 424] +.L3117: + ldr w0, [x26, 424] + cbz w0, .L3114 + b .L3103 +.L3119: + orr w0, w0, -2147483648 + b .L3143 .size FtlCacheWriteBack, .-FtlCacheWriteBack .align 2 .global FtlSysFlush .type FtlSysFlush, %function FtlSysFlush: adrp x0, .LANCHOR2+424 + ldr w0, [x0, #:lo12:.LANCHOR2+424] + cbnz w0, .L3147 stp x29, x30, [sp, -32]! - add x29, sp, 0 - ldr w0, [x0,#:lo12:.LANCHOR2+424] - str x19, [sp,16] - cbnz w0, .L3220 adrp x0, .LANCHOR1+504 - ldr w19, [x0,#:lo12:.LANCHOR1+504] + add x29, sp, 0 + str x19, [sp, 16] + ldr w19, [x0, #:lo12:.LANCHOR1+504] cmp w19, 1 - bne .L3220 + bne .L3145 bl FtlCacheWriteBack bl l2p_flush mov w0, w19 bl FtlEctTblFlush bl FtlVpcTblFlush -.L3220: +.L3145: mov w0, 0 - ldr x19, [sp,16] + ldr x19, [sp, 16] ldp x29, x30, [sp], 32 ret +.L3147: + mov w0, 0 + ret .size FtlSysFlush, .-FtlSysFlush .align 2 .global FtlDeInit .type FtlDeInit, %function FtlDeInit: adrp x0, .LANCHOR1+504 + ldr w0, [x0, #:lo12:.LANCHOR1+504] + cmp w0, 1 + bne .L3153 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr w0, [x0,#:lo12:.LANCHOR1+504] - cmp w0, 1 - bne .L3222 bl FtlSysFlush -.L3222: mov w0, 0 ldp x29, x30, [sp], 16 ret +.L3153: + mov w0, 0 + ret .size FtlDeInit, .-FtlDeInit .align 2 .global ftl_deinit @@ -20472,10 +20108,10 @@ ftl_deinit: .type rk_ftl_de_init, %function rk_ftl_de_init: stp x29, x30, [sp, -16]! - adrp x0, .LC159 mov w1, 0 - add x29, sp, 0 + adrp x0, .LC159 add x0, x0, :lo12:.LC159 + add x29, sp, 0 bl printk bl ftl_deinit ldp x29, x30, [sp], 16 @@ -20507,98 +20143,94 @@ rk_ftl_cache_write_back: ftl_discard: stp x29, x30, [sp, -80]! add x29, sp, 0 - stp x21, x22, [sp,32] - adrp x22, .LANCHOR0 - str x23, [sp,48] - add x21, x22, :lo12:.LANCHOR0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] mov w20, w0 + stp x21, x22, [sp, 32] + adrp x0, .LANCHOR0 + add x21, x0, :lo12:.LANCHOR0 + str x23, [sp, 48] mov w19, w1 - ldr w2, [x21,2584] - cmp w1, w2 - bhi .L3234 - cmp w0, w2 - cset w1, cs - cbnz w1, .L3234 - add w3, w0, w19 - mov w0, -1 - cmp w3, w2 - bhi .L3228 + ldr w1, [x21, 2584] + cmp w1, w20 + bls .L3173 + cmp w1, w19 + bcc .L3173 + mov x23, x0 + add w0, w20, w19 + cmp w1, w0 + bcc .L3173 cmp w19, 31 - mov w0, w1 - bls .L3228 - adrp x23, .LANCHOR2 - add x0, x23, :lo12:.LANCHOR2 - ldr w2, [x0,424] - mov w0, w1 - cbnz w2, .L3228 + bls .L3175 + adrp x22, .LANCHOR2 + add x0, x22, :lo12:.LANCHOR2 + ldr w0, [x0, 424] + cbnz w0, .L3175 bl FtlCacheWriteBack - ldrh w1, [x21,2550] - udiv w21, w20, w1 - msub w20, w1, w21, w20 - uxth w20, w20 - cbz w20, .L3229 - sub w20, w1, w20 + ldrh w0, [x21, 2550] + udiv w21, w20, w0 + msub w20, w0, w21, w20 + ands w20, w20, 65535 + beq .L3166 + sub w20, w0, w20 add w21, w21, 1 cmp w20, w19 csel w20, w20, w19, ls sub w19, w19, w20, uxth -.L3229: +.L3166: + add x20, x23, :lo12:.LANCHOR0 + adrp x23, .LANCHOR4 + add x23, x23, :lo12:.LANCHOR4 mov w0, -1 - adrp x20, .LANCHOR5 - str w0, [x29,76] -.L3230: - add x0, x22, :lo12:.LANCHOR0 - ldrh w0, [x0,2550] + str w0, [x29, 76] +.L3167: + ldrh w0, [x20, 2550] cmp w19, w0 - bcc .L3244 - mov w0, w21 - add x1, x29, 72 + bcs .L3169 + adrp x0, .LANCHOR4 + add x0, x0, :lo12:.LANCHOR4 + ldr w1, [x0, 2000] + cmp w1, 32 + bls .L3175 + str wzr, [x0, 2000] + bl l2p_flush + bl FtlVpcTblFlush +.L3175: + mov w0, 0 + b .L3164 +.L3169: mov w2, 0 + add x1, x29, 72 + mov w0, w21 bl log2phys - ldr w0, [x29,72] + ldr w0, [x29, 72] cmn w0, #1 - beq .L3231 - add x1, x20, :lo12:.LANCHOR5 + beq .L3168 + add x1, x22, :lo12:.LANCHOR2 + ldr w0, [x23, 2000] mov w2, 1 - ldr w0, [x1,1480] add w0, w0, 1 - str w0, [x1,1480] - add x1, x23, :lo12:.LANCHOR2 - ldr w0, [x1,724] + str w0, [x23, 2000] + ldr w0, [x1, 724] add w0, w0, 1 - str w0, [x1,724] + str w0, [x1, 724] add x1, x29, 76 mov w0, w21 bl log2phys - ldr w0, [x29,72] - lsr x0, x0, 10 + ldr w0, [x29, 72] + lsr w0, w0, 10 bl P2V_block_in_plane bl decrement_vpc_count -.L3231: - add x0, x22, :lo12:.LANCHOR0 +.L3168: + ldrh w0, [x20, 2550] add w21, w21, 1 - ldrh w0, [x0,2550] sub w19, w19, w0 - b .L3230 -.L3244: - adrp x0, .LANCHOR5 - add x0, x0, :lo12:.LANCHOR5 - ldr w1, [x0,1480] - cmp w1, 32 - bls .L3233 - str wzr, [x0,1480] - bl l2p_flush - bl FtlVpcTblFlush -.L3233: - mov w0, 0 - b .L3228 -.L3234: + b .L3167 +.L3173: mov w0, -1 -.L3228: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldr x23, [sp,48] +.L3164: + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldr x23, [sp, 48] ldp x29, x30, [sp], 80 ret .size ftl_discard, .-ftl_discard @@ -20617,322 +20249,312 @@ FtlDiscard: .type ftl_read, %function ftl_read: sub sp, sp, #208 - mov w4, w0 - adrp x0, .LANCHOR1+504 - stp x29, x30, [sp,16] + adrp x4, .LANCHOR1+504 + stp x29, x30, [sp, 16] add x29, sp, 16 - stp x21, x22, [sp,48] - ldr w21, [x0,#:lo12:.LANCHOR1+504] - mov w0, -1 - stp x19, x20, [sp,32] - stp x23, x24, [sp,64] - stp x25, x26, [sp,80] - stp x27, x28, [sp,96] - cmp w21, 1 - bne .L3247 - cmp w4, 16 - mov x25, x3 - mov w26, w2 - mov w20, w1 - bne .L3248 - add w0, w1, 256 - mov w1, w2 + stp x19, x20, [sp, 32] + stp x21, x22, [sp, 48] + ldr w20, [x4, #:lo12:.LANCHOR1+504] + stp x23, x24, [sp, 64] + stp x25, x26, [sp, 80] + cmp w20, 1 + stp x27, x28, [sp, 96] + bne .L3210 + mov x23, x3 + mov w24, w2 + mov w19, w1 + cmp w0, 16 + bne .L3187 mov x2, x3 - bl FtlVendorPartRead - b .L3247 -.L3248: - adrp x22, .LANCHOR0 - add x2, x22, :lo12:.LANCHOR0 - ldr w1, [x2,2584] - cmp w20, w1 - bcs .L3271 - cmp w26, w1 - bhi .L3271 - add w0, w20, w26 - str w0, [x29,168] - mov w0, -1 - ldr w3, [x29,168] - cmp w3, w1 - bhi .L3247 - ldrh w0, [x2,2550] - sub w27, w3, #1 - adrp x19, .LANCHOR2 - udiv w1, w20, w0 - str w1, [x29,172] - udiv w27, w27, w0 - ldr w0, [x29,172] - sub w21, w21, w0 - add x0, x19, :lo12:.LANCHOR2 - add w21, w21, w27 - ldr w1, [x0,748] - add w1, w26, w1 - str w1, [x0,748] - ldr w1, [x0,720] - add w1, w21, w1 - str w1, [x0,720] - ldr w0, [x29,172] - mov w1, w27 - bl FtlCacheMetchLpa - cbz w0, .L3249 - bl FtlCacheWriteBack -.L3249: - mov w28, 0 - adrp x0, .LC147 - ldr w23, [x29,172] - add x0, x0, :lo12:.LC147 - str w28, [x29,156] - mov w24, w28 - str w28, [x29,152] - str x0, [x29,112] -.L3250: - cbz w21, .L3295 - mov w0, w23 - add x1, x29, 188 - mov w2, 0 - bl log2phys - ldr w3, [x29,188] - cmn w3, #1 - bne .L3292 - mov w3, 0 -.L3251: - add x0, x22, :lo12:.LANCHOR0 - ldrh w0, [x0,2550] - cmp w3, w0 - bcs .L3255 - madd w0, w23, w0, w3 - cmp w0, w20 - bcc .L3253 - ldr w1, [x29,168] - cmp w0, w1 - bcs .L3253 - sub w0, w0, w20 - mov w1, 0 - ubfiz x0, x0, 9, 23 - mov w2, 512 - add x0, x25, x0 - str x3, [x29,160] - bl ftl_memset - ldr x3, [x29,160] -.L3253: - add w3, w3, 1 - b .L3251 -.L3292: - mov w0, 56 - umull x1, w24, w0 - add x0, x19, :lo12:.LANCHOR2 - ldr x2, [x0,3592] - add x2, x2, x1 - str w3, [x2,4] - ldr w2, [x29,172] - cmp w23, w2 - ldr x2, [x0,3592] - add x2, x2, x1 - bne .L3256 - ldr x0, [x0,3648] - str x0, [x2,8] - add x0, x22, :lo12:.LANCHOR0 - ldrh w0, [x0,2550] - udiv w3, w20, w0 - msub w3, w3, w0, w20 - str w3, [x29,128] - sub w3, w0, w3 - cmp w3, w26 - csel w3, w3, w26, ls - str w3, [x29,156] - cmp w3, w0 - bne .L3257 - str x25, [x2,8] - b .L3257 -.L3256: - cmp w23, w27 - bne .L3258 - ldr x0, [x0,3656] - str x0, [x2,8] - add x0, x22, :lo12:.LANCHOR0 - ldr w4, [x29,168] - ldrh w3, [x0,2550] - mul w0, w23, w3 - sub w28, w4, w0 - cmp w28, w3 - bne .L3257 - b .L3293 -.L3258: - add x0, x22, :lo12:.LANCHOR0 - ldrh w0, [x0,2550] - mul w0, w23, w0 -.L3293: - sub w0, w0, w20 - ubfiz x0, x0, 9, 23 - add x0, x25, x0 - str x0, [x2,8] -.L3257: - add x2, x19, :lo12:.LANCHOR2 - ldr x0, [x2,3592] - ldr x2, [x2,3672] - add x1, x0, x1 - add x0, x22, :lo12:.LANCHOR0 - ldrh w0, [x0,2556] - str w23, [x1,24] - mul w0, w24, w0 - add w24, w24, 1 - and x0, x0, 4294967292 - add x0, x2, x0 - str x0, [x1,16] -.L3255: - subs w21, w21, #1 - add w23, w23, 1 - beq .L3259 - add x0, x22, :lo12:.LANCHOR0 - ldrh w0, [x0,2472] - cmp w24, w0, lsl 3 - bne .L3250 -.L3259: - cbz w24, .L3250 - add x0, x19, :lo12:.LANCHOR2 mov w1, w24 - mov w2, 0 - ldr x0, [x0,3592] - bl FlashReadPages - str xzr, [x29,160] - ldr x0, [x29,128] - ubfiz x0, x0, 9, 23 - str x0, [x29,144] - ldr w0, [x29,156] - lsl w0, w0, 9 - str w0, [x29,124] - lsl w0, w28, 9 - str w0, [x29,120] -.L3261: - ldr w0, [x29,160] - cmp w24, w0 - bls .L3296 - ldr x0, [x29,160] - add x2, x19, :lo12:.LANCHOR2 - mov x1, 56 - ldr w3, [x29,172] - mul x8, x0, x1 - ldr x0, [x2,3592] - add x0, x0, x8 - ldr w1, [x0,24] - cmp w1, w3 - bne .L3262 - ldr x1, [x0,8] - ldr x0, [x2,3648] - cmp x1, x0 - bne .L3263 - ldr x2, [x29,144] - mov x0, x25 - str x8, [x29,104] - add x1, x1, x2 - ldr w2, [x29,124] - b .L3294 -.L3262: - cmp w1, w27 - bne .L3263 - ldr x1, [x0,8] - ldr x0, [x2,3656] - cmp x1, x0 - bne .L3263 - add x0, x22, :lo12:.LANCHOR0 - ldr w2, [x29,120] - str x8, [x29,104] - ldrh w0, [x0,2550] - mul w0, w27, w0 - sub w0, w0, w20 - ubfiz x0, x0, 9, 23 - add x0, x25, x0 -.L3294: - bl ftl_memcpy - ldr x8, [x29,104] -.L3263: - add x0, x19, :lo12:.LANCHOR2 - ldr x1, [x0,3592] - add x2, x1, x8 - ldr w3, [x1,x8] - cmn w3, #1 - bne .L3264 - ldr w1, [x0,928] - str w3, [x29,152] - add w1, w1, 1 - str w1, [x0,928] -.L3264: - ldr x0, [x2,16] - ldr w1, [x2,24] - ldr w0, [x0,8] - cmp w1, w0 - beq .L3265 - add x0, x19, :lo12:.LANCHOR2 - str x8, [x29,104] - ldr w1, [x0,928] - add w1, w1, 1 - str w1, [x0,928] - ldr x7, [x2,8] - ldr x6, [x2,16] - ldr w0, [x7,4] - str w0, [sp] - ldr x0, [x29,112] - ldr w1, [x2,24] - ldr w3, [x6] - ldr w4, [x6,4] - ldr w5, [x6,8] - ldr w2, [x2,4] - ldr w6, [x6,12] - ldr w7, [x7] - bl printk - ldr x8, [x29,104] -.L3265: - add x0, x19, :lo12:.LANCHOR2 - ldr x0, [x0,3592] - add x1, x0, x8 - ldr w0, [x0,x8] - cmp w0, 256 - bne .L3266 - ldr w0, [x1,4] - lsr x0, x0, 10 - bl P2V_block_in_plane - bl FtlGcRefreshBlock -.L3266: - ldr x0, [x29,160] - add x0, x0, 1 - str x0, [x29,160] - b .L3261 -.L3296: - mov w24, 0 - b .L3250 -.L3295: - add x19, x19, :lo12:.LANCHOR2 - ldrh w0, [x19,1464] - cbz w0, .L3269 - mov w0, w21 - mov w1, 1 - bl ftl_do_gc -.L3269: - ldr w0, [x29,152] - b .L3247 -.L3271: - mov w0, -1 -.L3247: - 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 w0, w19, 256 + bl FtlVendorPartRead + mov w25, w0 +.L3185: + mov w0, w25 + ldp x19, x20, [sp, 32] + ldp x21, x22, [sp, 48] + ldp x23, x24, [sp, 64] + ldp x25, x26, [sp, 80] + ldp x27, x28, [sp, 96] + ldp x29, x30, [sp, 16] add sp, sp, 208 ret +.L3187: + adrp x21, .LANCHOR0 + add x1, x21, :lo12:.LANCHOR0 + ldr w0, [x1, 2584] + cmp w19, w0 + bcs .L3210 + cmp w2, w0 + bhi .L3210 + add w2, w19, w2 + str w2, [x29, 148] + cmp w0, w2 + bcc .L3210 + ldrh w0, [x1, 2550] + sub w26, w2, #1 + adrp x7, .LANCHOR2 + udiv w27, w19, w0 + udiv w26, w26, w0 + sub w20, w20, w27 + add w0, w20, w26 + str w0, [x29, 172] + add x0, x7, :lo12:.LANCHOR2 + ldr w2, [x29, 172] + ldr w1, [x0, 748] + add w1, w1, w24 + str w1, [x0, 748] + ldr w1, [x0, 720] + add w1, w1, w2 + str w1, [x0, 720] + mov w1, w26 + mov w0, w27 + bl FtlCacheMetchLpa + str x7, [x29, 160] + cbz w0, .L3188 + bl FtlCacheWriteBack +.L3188: + mov w22, w27 + adrp x0, .LC147 + mov w28, 0 + add x0, x0, :lo12:.LC147 + mov w25, 0 + str x0, [x29, 104] + str wzr, [x29, 156] + str wzr, [x29, 168] +.L3189: + ldr w0, [x29, 172] + cbnz w0, .L3206 + ldr x0, [x29, 160] + add x0, x0, :lo12:.LANCHOR2 + ldrh w0, [x0, 1456] + cbz w0, .L3185 + mov w1, 1 + mov w0, 0 + bl ftl_do_gc + b .L3185 +.L3206: + mov w2, 0 + add x1, x29, 188 + mov w0, w22 + bl log2phys + ldr w4, [x29, 188] + cmn w4, #1 + bne .L3190 + add x5, x21, :lo12:.LANCHOR0 + mov w20, 0 +.L3191: + ldrh w0, [x5, 2550] + cmp w20, w0 + bcc .L3193 +.L3194: + ldr w0, [x29, 172] + add w22, w22, 1 + subs w0, w0, #1 + str w0, [x29, 172] + beq .L3198 + add x0, x21, :lo12:.LANCHOR0 + ldrh w0, [x0, 2472] + cmp w28, w0, lsl 3 + bne .L3189 +.L3198: + cbz w28, .L3189 + ldr x0, [x29, 160] + mov w1, w28 + mov w2, 0 + add x8, x0, :lo12:.LANCHOR2 + mov x20, x8 + ldr x0, [x8, 3584] + bl FlashReadPages + ldr w0, [x29, 156] + lsl w0, w0, 9 + str w0, [x29, 132] + ldr w0, [x29, 152] + lsl w0, w0, 9 + str x0, [x29, 136] + ldr w0, [x29, 168] + lsl w0, w0, 9 + str w0, [x29, 144] + mov w0, 56 + umull x0, w28, w0 + mov x28, 0 + str x0, [x29, 120] + add x0, x21, :lo12:.LANCHOR0 + str x0, [x29, 112] +.L3205: + ldr x0, [x20, 3584] + add x0, x0, x28 + ldr w1, [x0, 24] + cmp w27, w1 + bne .L3200 + ldr x1, [x0, 8] + ldr x0, [x20, 3640] + cmp x1, x0 + bne .L3201 + ldr x0, [x29, 136] + ldr w2, [x29, 144] + add x1, x1, x0 + mov x0, x23 +.L3226: + bl ftl_memcpy +.L3201: + ldr x1, [x20, 3584] + add x0, x1, x28 + ldr w2, [x1, x28] + cmn w2, #1 + bne .L3202 + ldr w1, [x20, 920] + mov w25, w2 + add w1, w1, 1 + str w1, [x20, 920] +.L3202: + ldr x1, [x0, 16] + ldr w2, [x0, 24] + ldr w1, [x1, 8] + cmp w2, w1 + beq .L3203 + ldr w1, [x20, 920] + add w1, w1, 1 + str w1, [x20, 920] + ldp x2, x1, [x0, 8] + ldr w3, [x2, 4] + str w3, [sp] + ldp w3, w4, [x1] + ldp w5, w6, [x1, 8] + ldr w7, [x2] + ldr w1, [x0, 24] + ldr w2, [x0, 4] + ldr x0, [x29, 104] + bl printk +.L3203: + ldr x0, [x20, 3584] + add x1, x0, x28 + ldr w0, [x0, x28] + cmp w0, 256 + bne .L3204 + ldr w0, [x1, 4] + lsr w0, w0, 10 + bl P2V_block_in_plane + bl FtlGcRefreshBlock +.L3204: + ldr x0, [x29, 120] + add x28, x28, 56 + cmp x0, x28 + bne .L3205 + mov w28, 0 + b .L3189 +.L3193: + madd w0, w22, w0, w20 + cmp w19, w0 + bhi .L3192 + ldr w1, [x29, 148] + cmp w1, w0 + bls .L3192 + sub w0, w0, w19 + str x5, [x29, 136] + lsl w0, w0, 9 + mov w2, 512 + mov w1, 0 + add x0, x23, x0 + bl ftl_memset + ldr x5, [x29, 136] +.L3192: + add w20, w20, 1 + b .L3191 +.L3190: + mov w0, 56 + cmp w22, w27 + umull x1, w28, w0 + ldr x0, [x29, 160] + add x0, x0, :lo12:.LANCHOR2 + ldr x2, [x0, 3584] + add x2, x2, x1 + str w4, [x2, 4] + ldr x2, [x0, 3584] + add x2, x2, x1 + bne .L3195 + ldr x0, [x0, 3640] + str x0, [x2, 8] + add x0, x21, :lo12:.LANCHOR0 + ldrh w0, [x0, 2550] + udiv w4, w19, w0 + msub w3, w4, w0, w19 + str w3, [x29, 152] + sub w4, w0, w3 + cmp w24, w4 + csel w3, w24, w4, ls + str w3, [x29, 168] + cmp w3, w0 + bne .L3196 + str x23, [x2, 8] +.L3196: + ldr x0, [x29, 160] + add x2, x0, :lo12:.LANCHOR2 + ldr x0, [x2, 3584] + ldr x2, [x2, 3664] + add x1, x0, x1 + add x0, x21, :lo12:.LANCHOR0 + ldrh w0, [x0, 2556] + str w22, [x1, 24] + mul w0, w0, w28 + add w28, w28, 1 + and x0, x0, 4294967292 + add x0, x2, x0 + str x0, [x1, 16] + b .L3194 +.L3195: + cmp w22, w26 + bne .L3197 + ldr x0, [x0, 3648] + str x0, [x2, 8] + add x0, x21, :lo12:.LANCHOR0 + ldr w3, [x29, 148] + ldrh w4, [x0, 2550] + mul w0, w22, w4 + sub w3, w3, w0 + str w3, [x29, 156] + cmp w4, w3 + bne .L3196 +.L3225: + sub w0, w0, w19 + lsl w0, w0, 9 + add x0, x23, x0 + str x0, [x2, 8] + b .L3196 +.L3197: + add x0, x21, :lo12:.LANCHOR0 + ldrh w0, [x0, 2550] + mul w0, w0, w22 + b .L3225 +.L3200: + cmp w26, w1 + bne .L3201 + ldr x1, [x0, 8] + ldr x0, [x20, 3648] + cmp x1, x0 + bne .L3201 + ldr x0, [x29, 112] + ldr w2, [x29, 132] + ldrh w0, [x0, 2550] + mul w0, w0, w26 + sub w0, w0, w19 + lsl w0, w0, 9 + add x0, x23, x0 + b .L3226 +.L3210: + mov w25, -1 + b .L3185 .size ftl_read, .-ftl_read .align 2 .global ftl_vendor_read .type ftl_vendor_read, %function ftl_vendor_read: stp x29, x30, [sp, -16]! - mov w5, w0 - mov w4, w1 - add x29, sp, 0 mov x3, x2 - mov w1, w5 - mov w2, w4 + mov w2, w1 + mov w1, w0 + add x29, sp, 0 mov w0, 16 bl ftl_read ldp x29, x30, [sp], 16 @@ -20942,40 +20564,43 @@ ftl_vendor_read: .global FlashBootVendorRead .type FlashBootVendorRead, %function FlashBootVendorRead: - stp x29, x30, [sp, -64]! + stp x29, x30, [sp, -48]! add x29, sp, 0 - str x19, [sp,16] - mov w19, -1 - str x0, [x29,40] - str x1, [x29,48] - str x2, [x29,56] + stp x19, x20, [sp, 16] + mov w19, w0 + str x21, [sp, 32] + mov w20, w1 + mov x21, x2 bl rknand_device_lock - adrp x3, .LANCHOR1+504 - ldr x2, [x29,56] - ldr x1, [x29,48] - ldr x0, [x29,40] - ldr w3, [x3,#:lo12:.LANCHOR1+504] - cmp w3, 1 - bne .L3299 + adrp x0, .LANCHOR1+504 + ldr w0, [x0, #:lo12:.LANCHOR1+504] + cmp w0, 1 + bne .L3231 + mov w0, w19 + mov x2, x21 + mov w1, w20 bl ftl_vendor_read mov w19, w0 -.L3299: +.L3230: bl rknand_device_unlock + ldr x21, [sp, 32] mov w0, w19 - ldr x19, [sp,16] - ldp x29, x30, [sp], 64 + ldp x19, x20, [sp, 16] + ldp x29, x30, [sp], 48 ret +.L3231: + mov w19, -1 + b .L3230 .size FlashBootVendorRead, .-FlashBootVendorRead .align 2 .global ftl_sys_read .type ftl_sys_read, %function ftl_sys_read: stp x29, x30, [sp, -16]! - mov w4, w1 mov x3, x2 - add x29, sp, 0 + mov w2, w1 add w1, w0, 256 - mov w2, w4 + add x29, sp, 0 mov w0, 16 bl ftl_read ldp x29, x30, [sp], 16 @@ -20985,25 +20610,25 @@ ftl_sys_read: .global StorageSysDataLoad .type StorageSysDataLoad, %function StorageSysDataLoad: - stp x29, x30, [sp, -48]! + stp x29, x30, [sp, -32]! mov w2, 512 add x29, sp, 0 - stp x19, x20, [sp,16] - mov w20, w0 + stp x19, x20, [sp, 16] mov x19, x1 - mov x0, x1 mov w1, 0 + mov w20, w0 + mov x0, x19 bl ftl_memset bl rknand_device_lock mov x2, x19 mov w1, 1 mov w0, w20 bl ftl_sys_read - str x0, [x29,40] + mov w19, w0 bl rknand_device_unlock - ldr x0, [x29,40] - ldp x19, x20, [sp,16] - ldp x29, x30, [sp], 48 + mov w0, w19 + ldp x19, x20, [sp, 16] + ldp x29, x30, [sp], 32 ret .size StorageSysDataLoad, .-StorageSysDataLoad .align 2 @@ -21011,7 +20636,7 @@ StorageSysDataLoad: .type FtlRead, %function FtlRead: stp x29, x30, [sp, -16]! - uxtb w0, w0 + and w0, w0, 255 add x29, sp, 0 bl ftl_read ldp x29, x30, [sp], 16 @@ -21023,96 +20648,99 @@ FtlRead: FtlInit: stp x29, x30, [sp, -48]! mov w0, -1 - adrp x1, .LC76 + adrp x1, .LC75 + add x1, x1, :lo12:.LC75 add x29, sp, 0 - stp x21, x22, [sp,32] - adrp x22, .LANCHOR1 - add x1, x1, :lo12:.LC76 - add x22, x22, :lo12:.LANCHOR1 - adrp x21, .LANCHOR0 - stp x19, x20, [sp,16] + stp x21, x22, [sp, 32] + adrp x21, .LANCHOR1 + add x21, x21, :lo12:.LANCHOR1 + stp x19, x20, [sp, 16] adrp x19, .LANCHOR2 - add x21, x21, :lo12:.LANCHOR0 - str w0, [x22,504] - adrp x0, .LANCHOR5+1484 add x19, x19, :lo12:.LANCHOR2 - str wzr, [x0,#:lo12:.LANCHOR5+1484] - adrp x0, .LC75 - add x0, x0, :lo12:.LC75 - str wzr, [x19,424] + adrp x20, .LANCHOR0 + add x20, x20, :lo12:.LANCHOR0 + str w0, [x21, 504] + adrp x0, .LANCHOR4+2004 + str wzr, [x19, 424] + str wzr, [x0, #:lo12:.LANCHOR4+2004] + adrp x0, .LC76 + add x0, x0, :lo12:.LC76 bl printk - add x0, x21, 176 + add x0, x20, 176 bl FtlConstantsInit bl FtlMemInit bl FtlVariablesInit - ldrh w0, [x21,2476] + ldrh w0, [x20, 2476] bl FtlFreeSysBlkQueueInit bl FtlLoadBbt - cbz w0, .L3305 - adrp x0, .LC160 - add x0, x0, :lo12:.LC160 - b .L3319 -.L3305: - bl FtlSysBlkInit - mov w20, w0 - cbz w0, .L3307 - adrp x0, .LC161 - add x0, x0, :lo12:.LC161 -.L3319: + cbz w0, .L3240 adrp x1, .LANCHOR3 add x1, x1, :lo12:.LANCHOR3 + adrp x0, .LC160 add x1, x1, 256 + add x0, x0, :lo12:.LC160 +.L3255: bl printk - b .L3306 -.L3307: +.L3241: + mov w0, 0 + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x29, x30, [sp], 48 + ret +.L3240: + bl FtlSysBlkInit + cbz w0, .L3242 + adrp x1, .LANCHOR3 + add x1, x1, :lo12:.LANCHOR3 + adrp x0, .LC161 + add x1, x1, 256 + add x0, x0, :lo12:.LC161 + b .L3255 +.L3242: mov w1, 1 - str w1, [x22,504] + str w1, [x21, 504] bl ftl_do_gc - ldrh w0, [x19,552] + ldrh w0, [x19, 552] cmp w0, 15 - bhi .L3308 - mov w22, 65535 + bhi .L3243 add w21, w0, 2 -.L3311: - ldrh w0, [x19,800] + mov w20, 0 + mov w22, 65535 +.L3246: + ldrh w0, [x19, 800] cmp w0, w22 - bne .L3309 - ldrh w0, [x19,1456] + bne .L3244 + ldrh w0, [x19, 1448] cmp w0, w22 - bne .L3309 + bne .L3244 and w0, w20, 63 bl List_get_gc_head_node bl FtlGcRefreshBlock -.L3309: - mov w0, 1 - mov w1, w0 - bl ftl_do_gc - mov w0, 0 +.L3244: mov w1, 1 + mov w0, w1 bl ftl_do_gc - ldrh w0, [x19,552] + mov w1, 1 + mov w0, 0 + bl ftl_do_gc + ldrh w0, [x19, 552] cmp w0, w21 - bhi .L3306 + bhi .L3241 add w20, w20, 1 cmp w20, 4096 - bne .L3311 - b .L3306 -.L3308: - ldrb w0, [x21,204] - cbz w0, .L3306 + bne .L3246 + b .L3241 +.L3243: + ldrb w0, [x20, 204] + cbz w0, .L3241 mov w19, 128 -.L3313: - mov w0, 1 - mov w1, w0 +.L3248: + mov w1, 1 + mov w0, w1 bl ftl_do_gc subs w19, w19, #1 - bne .L3313 -.L3306: - mov w0, 0 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x29, x30, [sp], 48 - ret + bne .L3248 + b .L3241 .size FtlInit, .-FtlInit .align 2 .global rk_ftl_init @@ -21121,43 +20749,44 @@ rk_ftl_init: stp x29, x30, [sp, -32]! mov w0, 2048 add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x20, .LANCHOR5 + stp x19, x20, [sp, 16] adrp x19, .LANCHOR4 - add x20, x20, :lo12:.LANCHOR5 - bl ftl_malloc add x19, x19, :lo12:.LANCHOR4 - add x1, x20, 1496 - str x0, [x20,1488] - add x0, x19, 1592 - str xzr, [x19,1592] - str xzr, [x20,1496] + bl ftl_dma32_malloc + add x1, x19, 2016 + str x0, [x19, 2008] + add x0, x19, 1584 + str xzr, [x19, 1584] + str wzr, [x19, 1592] + str xzr, [x19, 2016] bl rknand_get_reg_addr - ldr x1, [x19,1592] - mov w0, -1 - cbz x1, .L3321 + ldr x0, [x19, 1584] + cbz x0, .L3261 bl rk_nandc_irq_init - mov w1, 0 - ldr x0, [x20,1488] - mov w2, w1 + ldr x0, [x19, 2008] mov w3, 2048 + mov w2, 0 + mov w1, 0 bl FlashSramLoadStore bl rknand_flash_cs_init - ldr x0, [x19,1592] + ldr x0, [x19, 1584] bl FlashInit - mov w19, w0 - cbnz w0, .L3322 + mov w20, w0 + cbnz w0, .L3258 bl FtlInit -.L3322: +.L3258: adrp x0, .LC162 - mov w1, w19 + mov w1, w20 add x0, x0, :lo12:.LC162 bl printk - mov w0, w19 -.L3321: - ldp x19, x20, [sp,16] +.L3256: + mov w0, w20 + ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 32 ret +.L3261: + mov w20, -1 + b .L3256 .size rk_ftl_init, .-rk_ftl_init .align 2 .global ftl_fix_nand_power_lost_error @@ -21165,118 +20794,117 @@ rk_ftl_init: ftl_fix_nand_power_lost_error: stp x29, x30, [sp, -144]! add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x20, .LANCHOR0 - str x27, [sp,80] - add x0, x20, :lo12:.LANCHOR0 - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] - ldrb w0, [x0,204] - cbz w0, .L3325 - adrp x21, .LANCHOR5 - adrp x19, .LANCHOR2 - add x0, x21, :lo12:.LANCHOR5 - add x24, x19, :lo12:.LANCHOR2 - adrp x25, .LC163 - add x27, x24, 560 - add x26, x24, 608 - ldrh w23, [x0,1328] - add x0, x25, :lo12:.LC163 - ldr x2, [x24,520] - ubfiz x22, x23, 1, 16 - mov w1, w23 - ldrh w2, [x2,x22] + stp x25, x26, [sp, 64] + adrp x25, .LANCHOR0 + add x0, x25, :lo12:.LANCHOR0 + stp x19, x20, [sp, 16] + stp x21, x22, [sp, 32] + stp x23, x24, [sp, 48] + str x27, [sp, 80] + ldrb w0, [x0, 204] + cbz w0, .L3263 + adrp x21, .LANCHOR4 + add x0, x21, :lo12:.LANCHOR4 + adrp x20, .LANCHOR2 + add x19, x20, :lo12:.LANCHOR2 + adrp x24, .LC163 + add x27, x19, 560 + ldrh w22, [x0, 1842] + add x26, x19, 608 + ldr x0, [x19, 520] + mov w1, w22 + ubfiz x23, x22, 1, 16 + ldrh w2, [x0, x23] + add x0, x24, :lo12:.LC163 bl printk - ldrh w0, [x24,560] + ldrh w0, [x19, 560] bl FtlGcRefreshOpenBlock - ldrh w0, [x24,608] - mov w24, 4097 + ldrh w0, [x19, 608] bl FtlGcRefreshOpenBlock mov x0, x27 bl allocate_new_data_superblock mov x0, x26 + mov x26, x24 + mov w27, 4097 bl allocate_new_data_superblock -.L3327: - subs w24, w24, #1 - beq .L3331 - mov w0, 1 - mov w1, w0 - bl ftl_do_gc - add x0, x19, :lo12:.LANCHOR2 - ldr x0, [x0,520] - ldrh w0, [x0,x22] - cbnz w0, .L3327 -.L3331: - add x24, x19, :lo12:.LANCHOR2 - add x0, x25, :lo12:.LC163 - mov w1, w23 - ldr x2, [x24,520] - ldrh w2, [x2,x22] - bl printk - ldr x0, [x24,520] - ldrh w0, [x0,x22] - cbnz w0, .L3329 - add x0, x29, 96 - add x20, x20, :lo12:.LANCHOR0 - strh w23, [x29,96] - bl make_superblock - mov x0, 0 - ldrh w5, [x20,2472] - mov w6, 65535 - mov w20, w0 - mov w7, 56 -.L3332: - cmp w5, w0, uxth - bls .L3339 - add x1, x29, 96 - add x1, x1, x0, lsl 1 - ldrh w2, [x1,16] - cmp w2, w6 - beq .L3333 - add x4, x19, :lo12:.LANCHOR2 - lsl w2, w2, 10 - umull x1, w20, w7 - add w20, w20, 1 - ldr x3, [x4,432] - uxth w20, w20 - add x3, x3, x1 - str w2, [x3,4] - ldr x2, [x4,432] - add x1, x2, x1 - str xzr, [x1,8] - str xzr, [x1,16] -.L3333: - add x0, x0, 1 - b .L3332 -.L3339: - add x19, x19, :lo12:.LANCHOR2 - adrp x0, .LC164 - mov w1, w23 - add x0, x0, :lo12:.LC164 - ldr x2, [x19,520] - ldrh w2, [x2,x22] - bl printk - ldr x0, [x19,432] - mov w1, 0 - mov w2, w20 - bl FlashEraseBlocks - ldr x0, [x19,432] +.L3265: + subs w27, w27, #1 + beq .L3269 mov w1, 1 - mov w2, w20 + mov w0, w1 + bl ftl_do_gc + ldr x0, [x19, 520] + ldrh w0, [x0, x23] + cbnz w0, .L3265 +.L3269: + add x24, x20, :lo12:.LANCHOR2 + mov w1, w22 + ldr x0, [x24, 520] + ldrh w2, [x0, x23] + add x0, x26, :lo12:.LC163 + bl printk + ldr x0, [x24, 520] + ldrh w19, [x0, x23] + cbnz w19, .L3267 + add x12, x29, 144 + add x25, x25, :lo12:.LANCHOR0 + strh w22, [x12, -48]! + mov x0, x12 + bl make_superblock + ldrh w5, [x25, 2472] + add x12, x12, 16 + mov w0, 0 + mov w6, 65535 + mov w7, 56 +.L3270: + cmp w0, w5 + bne .L3272 + add x20, x20, :lo12:.LANCHOR2 + mov w1, w22 + ldr x0, [x20, 520] + ldrh w2, [x0, x23] + adrp x0, .LC164 + add x0, x0, :lo12:.LC164 + bl printk + ldr x0, [x20, 432] + mov w2, w19 + mov w1, 0 bl FlashEraseBlocks -.L3329: - add x21, x21, :lo12:.LANCHOR5 + ldr x0, [x20, 432] + mov w2, w19 + mov w1, 1 + bl FlashEraseBlocks +.L3267: + add x21, x21, :lo12:.LANCHOR4 mov w0, -1 - strh w0, [x21,1328] -.L3325: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldr x27, [sp,80] + strh w0, [x21, 1842] +.L3263: + 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], 144 ret +.L3272: + ldrh w2, [x12] + cmp w2, w6 + beq .L3271 + umull x4, w19, w7 + ldr x3, [x24, 432] + lsl w2, w2, 10 + add w19, w19, 1 + add x3, x3, x4 + and w19, w19, 65535 + str w2, [x3, 4] + ldr x1, [x24, 432] + add x1, x1, x4 + stp xzr, xzr, [x1, 8] +.L3271: + add w0, w0, 1 + add x12, x12, 2 + and w0, w0, 65535 + b .L3270 .size ftl_fix_nand_power_lost_error, .-ftl_fix_nand_power_lost_error .align 2 .global rk_ftl_garbage_collect @@ -21292,534 +20920,521 @@ rk_ftl_garbage_collect: .global ftl_write .type ftl_write, %function ftl_write: - stp x29, x30, [sp, -288]! - mov w4, w0 - mov w0, 0 + stp x29, x30, [sp, -272]! add x29, sp, 0 - stp x23, x24, [sp,48] - mov w23, w1 + stp x21, x22, [sp, 32] + mov w22, w1 adrp x1, .LANCHOR2 - stp x25, x26, [sp,64] - mov w25, w2 - add x2, x1, :lo12:.LANCHOR2 - stp x19, x20, [sp,16] - stp x21, x22, [sp,32] - stp x27, x28, [sp,80] - mov x26, x3 - str x1, [x29,176] - ldr w3, [x2,424] - cbnz w3, .L3342 + add x4, x1, :lo12:.LANCHOR2 + stp x23, x24, [sp, 48] + mov w24, w2 + stp x19, x20, [sp, 16] + stp x25, x26, [sp, 64] + stp x27, x28, [sp, 80] + str x1, [x29, 168] + ldr w2, [x4, 424] + cbnz w2, .L3322 adrp x1, .LANCHOR1 - str x1, [x29,152] - add x3, x1, :lo12:.LANCHOR1 - ldr w3, [x3,504] - cmp w3, 1 - bne .L3342 - cmp w4, 16 - bne .L3343 - add w0, w23, 256 - mov w1, w25 - mov x2, x26 + add x2, x1, :lo12:.LANCHOR1 + str x1, [x29, 160] + ldr w2, [x2, 504] + cmp w2, 1 + bne .L3322 + mov x23, x3 + cmp w0, 16 + bne .L3282 + mov x2, x3 + mov w1, w24 + add w0, w22, 256 bl FtlVendorPartWrite - b .L3342 -.L3343: - adrp x21, .LANCHOR0 - add x4, x21, :lo12:.LANCHOR0 - ldr w1, [x4,2584] - cmp w23, w1 - bcs .L3385 - cmp w25, w1 - bhi .L3385 - add w3, w23, w25 - mov w0, -1 - cmp w3, w1 - bhi .L3342 - adrp x5, .LANCHOR5 - ldrh w1, [x4,2550] - add x22, x5, :lo12:.LANCHOR5 - sub w3, w3, #1 - mov w0, 2048 - str x5, [x29,144] - udiv w27, w23, w1 - cmp w25, w1, lsl 1 - str w0, [x22,1504] - udiv w0, w3, w1 - ldr w3, [x4,2600] - str w0, [x29,208] - sub w24, w0, w27 - add w20, w24, 1 - ldr w0, [x2,728] - add w0, w20, w0 - str w0, [x2,728] - ldr w0, [x2,744] - add w0, w25, w0 - str w0, [x2,744] - cset w0, cs - str w0, [x29,212] - cbz w3, .L3345 - mov w0, 56 - sub w3, w3, #1 - umull x3, w3, w0 - ldr x0, [x4,2608] - add x3, x0, x3 - ldr w0, [x3,24] +.L3280: + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] + ldp x27, x28, [sp, 80] + ldp x29, x30, [sp], 272 + ret +.L3282: + adrp x20, .LANCHOR0 + add x0, x20, :lo12:.LANCHOR0 + ldr w1, [x0, 2584] + cmp w22, w1 + bcs .L3325 + cmp w24, w1 + bhi .L3325 + add w2, w22, w24 + cmp w1, w2 + bcc .L3325 + adrp x3, .LANCHOR4 + add x25, x3, :lo12:.LANCHOR4 + mov w1, 2048 + sub w2, w2, #1 + str x3, [x29, 152] + str w1, [x25, 2024] + ldrh w1, [x0, 2550] + cmp w24, w1, lsl 1 + udiv w2, w2, w1 + udiv w27, w22, w1 + str w2, [x29, 196] + sub w28, w2, w27 + ldr w2, [x4, 728] + add w26, w28, 1 + add w2, w2, w26 + str w2, [x4, 728] + ldr w2, [x4, 744] + add w2, w2, w24 + str w2, [x4, 744] + cset w2, cs + str w2, [x29, 204] + ldr w2, [x0, 2600] + cbz w2, .L3284 + ldr x0, [x0, 2608] + sub w2, w2, #1 + mov w3, 56 + umaddl x2, w2, w3, x0 + ldr w0, [x2, 24] cmp w27, w0 - bne .L3346 - ldr w0, [x2,732] + bne .L3285 + ldr w0, [x4, 732] + ldr x3, [x2, 8] add w0, w0, 1 - str w0, [x2,732] - ldr w0, [x22,1508] + str w0, [x4, 732] + ldr w0, [x25, 2028] add w0, w0, 1 - str w0, [x22,1508] - msub w0, w27, w1, w23 + str w0, [x25, 2028] + msub w0, w27, w1, w22 sub w1, w1, w0 - ubfiz x0, x0, 9, 23 - cmp w1, w25 - csel w19, w1, w25, ls - ldr x1, [x3,8] - lsl w20, w19, 9 - add x0, x1, x0 - mov w2, w20 - mov x1, x26 + cmp w24, w1 + lsl w0, w0, 9 + csel w19, w24, w1, ls + add x0, x3, x0 + lsl w21, w19, 9 + mov x1, x23 + mov w2, w21 bl ftl_memcpy - cbnz w24, .L3347 - ldr w0, [x22,1508] + cbnz w28, .L3286 + ldr w0, [x25, 2028] cmp w0, 2 - bgt .L3347 -.L3381: + bgt .L3286 +.L3322: mov w0, 0 - b .L3342 -.L3347: - add x26, x26, x20 - sub w25, w25, w19 - add w23, w23, w19 + b .L3280 +.L3286: + sub w24, w24, w19 + add w22, w22, w19 + add x23, x23, x21 add w27, w27, 1 - mov w20, w24 -.L3346: - ldr x0, [x29,144] - add x0, x0, :lo12:.LANCHOR5 - str wzr, [x0,1508] -.L3345: - ldr w1, [x29,208] + mov w26, w28 +.L3285: + ldr x0, [x29, 152] + add x0, x0, :lo12:.LANCHOR4 + str wzr, [x0, 2028] +.L3284: + ldr w1, [x29, 196] mov w0, w27 bl FtlCacheMetchLpa - cbz w0, .L3348 + cbz w0, .L3287 bl FtlCacheWriteBack -.L3348: - ldr x0, [x29,144] - ldr x1, [x29,176] - add x0, x0, :lo12:.LANCHOR5 - str w27, [x29,192] - add x24, x1, :lo12:.LANCHOR2 - add x22, x24, 560 - str x22, [x29,184] - str x22, [x0,1472] - adrp x0, .LC165 - add x0, x0, :lo12:.LC165 - str x0, [x29,104] -.L3349: - cbz w20, .L3413 - ldrh w0, [x22,4] - cbnz w0, .L3350 - ldr x1, [x29,184] - cmp x22, x1 - bne .L3351 - add x0, x24, 608 - ldrh w19, [x0,4] - cbnz w19, .L3352 - bl allocate_new_data_superblock - ldr x0, [x29,152] - add x0, x0, :lo12:.LANCHOR1 - str w19, [x0,3460] -.L3352: - ldr x0, [x29,184] - add x22, x24, 608 - bl allocate_new_data_superblock - ldr x0, [x29,152] - add x0, x0, :lo12:.LANCHOR1 - ldr w0, [x0,3460] - cbnz w0, .L3353 -.L3354: - ldr x22, [x29,184] - b .L3353 -.L3351: - ldr x1, [x29,152] - add x1, x1, :lo12:.LANCHOR1 - str w0, [x1,3460] - ldr x0, [x29,184] - ldrh w0, [x0,4] - cbnz w0, .L3354 - mov x0, x22 - bl allocate_new_data_superblock -.L3353: - ldrh w0, [x22,4] - cbnz w0, .L3355 - mov x0, x22 - bl allocate_new_data_superblock -.L3355: - ldr x0, [x29,144] - add x0, x0, :lo12:.LANCHOR5 - str x22, [x0,1472] -.L3350: - add x2, x21, :lo12:.LANCHOR0 - ldr w0, [x24,3588] - ldrh w1, [x22,4] - str xzr, [x29,200] - ldr w2, [x2,2600] - sub w0, w0, w2 - cmp w1, w0 - csel w0, w1, w0, ls - cmp w0, w20 - csel w0, w0, w20, ls - str w0, [x29,140] - ldr w0, [x29,212] - and w0, w0, 1 - str w0, [x29,116] - add w0, w25, w23 - str w0, [x29,136] -.L3356: - ldr w0, [x29,200] - ldr w2, [x29,140] - ldr w1, [x29,192] - cmp w0, w2 - add w28, w1, w0 - bcs .L3414 - ldrh w1, [x22,4] - cbz w1, .L3389 - ldr w1, [x29,208] - cmp w28, w1 - cset w6, eq - cbz w0, .L3358 - ldr w1, [x29,116] - tst w6, w1 - beq .L3358 - add x1, x21, :lo12:.LANCHOR0 - ldr w2, [x29,136] - ldrh w1, [x1,2550] - msub w2, w28, w1, w2 - cmp w2, w1 - bne .L3389 -.L3358: - add x1, x29, 228 - mov w2, 0 - mov w0, w28 - str x6, [x29,96] - add x19, x21, :lo12:.LANCHOR0 - bl log2phys - mov x0, x22 - bl get_new_active_ppa - ldr w5, [x19,2600] - mov w4, 56 - ldr x2, [x19,2608] - str x4, [x29,160] - umull x1, w5, w4 - add x2, x2, x1 - str w0, [x2,4] - ldrh w2, [x19,2556] - ldr x0, [x19,2608] - add x1, x0, x1 - mul w0, w2, w5 - and x0, x0, 4294967292 - str x0, [x29,128] - ldr x0, [x24,3680] - ldr x3, [x29,128] - str x0, [x29,120] - add x0, x0, x3 - str x0, [x29,216] - str x0, [x1,16] - ldrh w0, [x19,2554] - str w28, [x1,24] - mul w0, w0, w5 - ldr x5, [x24,3640] - and x0, x0, 4294967292 - add x0, x5, x0 - str x0, [x1,8] - ldr x0, [x29,216] - mov w1, 0 - bl ftl_memset - cmp w28, w27 - cset w0, eq - str w0, [x29,196] - cbnz w0, .L3393 - ldr x6, [x29,96] - ldr x4, [x29,160] - cbz w6, .L3359 - ldr w0, [x29,136] - ldrh w19, [x19,2550] - msub w19, w28, w19, w0 - ldr w0, [x29,196] - str w0, [x29,160] - uxth w19, w19 - b .L3362 -.L3393: - ldrh w19, [x19,2550] - udiv w0, w23, w19 - msub w0, w0, w19, w23 - str w0, [x29,160] - sub w19, w19, w0 - cmp w19, w25 - csel w19, w19, w25, ls -.L3362: - add x2, x21, :lo12:.LANCHOR0 - ldrh w0, [x2,2550] - cmp w19, w0 - bne .L3363 - ldr w0, [x29,196] - mov x1, x26 - cbnz w0, .L3364 - mul w1, w19, w28 - sub w1, w1, w23 - ubfiz x1, x1, 9, 23 - add x1, x26, x1 -.L3364: - ldr w2, [x29,212] - mov w0, 56 - add x4, x21, :lo12:.LANCHOR0 - cbz w2, .L3365 - ldr w2, [x4,2600] - umull x0, w2, w0 - ldr x2, [x4,2608] - add x0, x2, x0 - b .L3411 -.L3365: - ldr w2, [x4,2600] - umull x0, w2, w0 - ldr x2, [x4,2608] - add x0, x2, x0 - ldrh w2, [x4,2554] - ldr x0, [x0,8] - b .L3412 -.L3363: - ldr w0, [x29,228] - cmn w0, #1 - beq .L3367 - str w0, [x29,236] - mov w1, 56 - ldr w0, [x2,2600] - str w28, [x29,256] - umull x0, w0, w1 - ldr x1, [x2,2608] - mov w2, 0 - add x0, x1, x0 - ldr x1, [x0,8] - ldr x0, [x0,16] - str x1, [x29,240] - mov w1, 1 - str x0, [x29,248] - add x0, x29, 232 - bl FlashReadPages - ldr w0, [x29,232] - cmn w0, #1 - bne .L3368 - ldr w0, [x24,928] - add w0, w0, 1 - str w0, [x24,928] - b .L3370 -.L3368: - ldr x0, [x29,216] - ldr w0, [x0,8] - cmp w0, w28 - beq .L3370 - ldr w0, [x24,928] - mov w2, w28 - ldr x1, [x29,216] - add w0, w0, 1 - str w0, [x24,928] - ldr x0, [x29,104] - ldr w1, [x1,8] - bl printk - b .L3370 -.L3367: - ldr w0, [x2,2600] - mov w1, 56 - umull x0, w0, w1 - ldr x1, [x2,2608] - ldrh w2, [x2,2554] - add x0, x1, x0 - mov w1, 0 - ldr x0, [x0,8] - bl ftl_memset -.L3370: - ldr w1, [x29,196] - mov w0, 56 - lsl w2, w19, 9 - cbz w1, .L3371 - add x1, x21, :lo12:.LANCHOR0 - ldr w4, [x1,2600] - umull x0, w4, w0 - ldr x4, [x1,2608] - add x4, x4, x0 - ldr x0, [x29,160] - ubfiz x0, x0, 9, 23 - ldr x1, [x4,8] - add x0, x1, x0 - mov x1, x26 - b .L3412 -.L3371: - add x5, x21, :lo12:.LANCHOR0 - ldr w4, [x5,2600] - ldr x1, [x5,2608] - umull x0, w4, w0 - add x0, x1, x0 - ldrh w1, [x5,2550] - mul w1, w28, w1 - ldr x0, [x0,8] - sub w1, w1, w23 - ubfiz x1, x1, 9, 23 - add x1, x26, x1 - b .L3412 -.L3359: - ldr w0, [x29,212] - ldrh w1, [x19,2550] - ldr w2, [x19,2600] - cbz w0, .L3372 - mul w1, w28, w1 - umull x0, w2, w4 - sub w1, w1, w23 - ldr x2, [x19,2608] - ubfiz x1, x1, 9, 23 - add x0, x2, x0 - add x1, x26, x1 -.L3411: - str x1, [x0,8] - b .L3366 -.L3372: - umull x0, w2, w4 - ldr x2, [x19,2608] - mul w1, w28, w1 - add x0, x2, x0 - ldrh w2, [x19,2554] - sub w1, w1, w23 - ubfiz x1, x1, 9, 23 - ldr x0, [x0,8] - add x1, x26, x1 -.L3412: - bl ftl_memcpy -.L3366: - ldr x1, [x29,120] - mov w0, -3947 - ldr x2, [x29,128] - strh w0, [x1,x2] - ldr x1, [x29,216] - ldr w0, [x24,756] - str w0, [x1,4] - add w0, w0, 1 - cmn w0, #1 - str w28, [x1,8] - csel w0, w0, wzr, ne - str w0, [x24,756] - ldr w0, [x29,228] - str w0, [x1,12] - ldrh w0, [x22] - strh w0, [x1,2] - add x1, x21, :lo12:.LANCHOR0 - ldr w0, [x1,2600] - add w0, w0, 1 - str w0, [x1,2600] - ldr x0, [x29,200] - add x0, x0, 1 - str x0, [x29,200] - b .L3356 -.L3414: - str w28, [x29,192] - mov x0, x2 - b .L3357 -.L3389: - str w28, [x29,192] -.L3357: - sub w20, w20, w0 - ldr w0, [x29,212] - cbnz w0, .L3376 - add x0, x21, :lo12:.LANCHOR0 - ldr w1, [x0,2600] - ldr w0, [x24,3588] - cmp w1, w0 - bcs .L3376 - ldrh w0, [x22,4] - cbz w0, .L3376 -.L3378: - str wzr, [x29,212] - b .L3349 -.L3376: - bl FtlCacheWriteBack - add x0, x21, :lo12:.LANCHOR0 - cmp w20, 1 - str wzr, [x0,2600] - bhi .L3349 - b .L3378 -.L3413: - ldr w1, [x29,208] - mov w0, w20 - sub w1, w1, w27 +.L3287: + ldr x1, [x29, 168] + mov w19, w27 + ldr x0, [x29, 152] + add x25, x1, :lo12:.LANCHOR2 + add x0, x0, :lo12:.LANCHOR4 + add x1, x25, 560 + mov x21, x1 + str x1, [x29, 128] + str x1, [x29, 176] + str x1, [x0, 1992] +.L3288: + cbnz w26, .L3316 + ldr w0, [x29, 196] + sub w1, w0, w27 + mov w0, 0 bl ftl_do_gc - ldr x0, [x29,176] + ldr x0, [x29, 168] add x0, x0, :lo12:.LANCHOR2 - ldrh w0, [x0,552] + ldrh w0, [x0, 552] cmp w0, 5 - bls .L3380 + bls .L3317 cmp w0, 31 - bhi .L3381 - add x21, x21, :lo12:.LANCHOR0 - ldrb w0, [x21,72] - cbnz w0, .L3381 -.L3380: - ldr x0, [x29,176] - mov w21, 65535 - mov w22, 128 + bhi .L3322 + add x20, x20, :lo12:.LANCHOR0 + ldrb w0, [x20, 72] + cbnz w0, .L3322 +.L3317: + ldr x0, [x29, 168] + mov w20, 65535 + mov w21, 128 add x19, x0, :lo12:.LANCHOR2 -.L3404: - ldrh w0, [x19,800] - cmp w0, w21 - bne .L3382 - ldrh w0, [x19,1456] - cmp w0, w21 - bne .L3382 - ldrh w0, [x19,1458] - cmp w0, w21 - bne .L3382 - and w0, w20, 7 +.L3320: + ldrh w0, [x19, 800] + cmp w0, w20 + bne .L3319 + ldrh w0, [x19, 1448] + cmp w0, w20 + bne .L3319 + ldrh w0, [x19, 1450] + cmp w0, w20 + bne .L3319 + and w0, w26, 7 bl List_get_gc_head_node bl FtlGcRefreshBlock -.L3382: - mov w0, 1 - strh w22, [x19,1370] - mov w1, w0 - strh w22, [x19,1368] - bl ftl_do_gc - mov w0, 0 +.L3319: mov w1, 1 + strh w21, [x19, 1366] + mov w0, w1 + strh w21, [x19, 1364] bl ftl_do_gc - ldr w0, [x19,424] - cbnz w0, .L3381 - ldrh w0, [x19,552] + mov w1, 1 + mov w0, 0 + bl ftl_do_gc + ldr w0, [x19, 424] + cbnz w0, .L3322 + ldrh w0, [x19, 552] cmp w0, 2 - bhi .L3381 - add w20, w20, 1 - cmp w20, 256 - bne .L3404 - b .L3381 -.L3385: + bhi .L3322 + add w26, w26, 1 + cmp w26, 256 + bne .L3320 + b .L3322 +.L3316: + ldrh w0, [x21, 4] + cbnz w0, .L3289 + ldr x0, [x29, 128] + cmp x21, x0 + bne .L3290 + add x0, x25, 608 + ldrh w1, [x0, 4] + cbnz w1, .L3291 + bl allocate_new_data_superblock + ldr x0, [x29, 160] + add x0, x0, :lo12:.LANCHOR1 + str wzr, [x0, 3460] +.L3291: + ldr x0, [x29, 176] + add x21, x25, 608 + bl allocate_new_data_superblock + ldr x0, [x29, 160] + add x0, x0, :lo12:.LANCHOR1 + ldr w0, [x0, 3460] + cmp w0, 0 + ldr x0, [x29, 176] + csel x21, x21, x0, ne +.L3292: + ldrh w0, [x21, 4] + cbnz w0, .L3293 + mov x0, x21 + bl allocate_new_data_superblock +.L3293: + ldr x0, [x29, 152] + add x0, x0, :lo12:.LANCHOR4 + str x21, [x0, 1992] +.L3289: + add x1, x20, :lo12:.LANCHOR0 + ldr w0, [x25, 3580] + str wzr, [x29, 200] + ldr w1, [x1, 2600] + sub w0, w0, w1 + ldrh w1, [x21, 4] + cmp w0, w26 + csel w0, w0, w26, ls + cmp w1, w0 + csel w0, w1, w0, ls + str w0, [x29, 124] + ldr w0, [x29, 204] + and w0, w0, 1 + str w0, [x29, 120] + adrp x0, .LC165 + add x0, x0, :lo12:.LC165 + str x0, [x29, 112] +.L3294: + ldr w1, [x29, 124] + ldr w0, [x29, 200] + cmp w0, w1 + bne .L3312 +.L3295: + ldr w0, [x29, 200] + sub w26, w26, w0 + add x0, x20, :lo12:.LANCHOR0 + ldr w1, [x0, 2600] + ldr w0, [x25, 3580] + cmp w1, w0 + bcs .L3313 + ldr w0, [x29, 204] + cbnz w0, .L3313 + ldrh w0, [x21, 4] + cbz w0, .L3313 +.L3315: + str wzr, [x29, 204] + b .L3288 +.L3290: + ldr x0, [x29, 160] + add x0, x0, :lo12:.LANCHOR1 + str wzr, [x0, 3460] + ldr x0, [x29, 128] + ldrh w0, [x0, 4] + cbnz w0, .L3329 + mov x0, x21 + bl allocate_new_data_superblock + b .L3292 +.L3329: + ldr x21, [x29, 176] + b .L3293 +.L3312: + ldrh w0, [x21, 4] + cbz w0, .L3295 + ldr w0, [x29, 196] + cmp w0, w19 + ldr w0, [x29, 120] + cset w4, eq + tst w4, w0 + beq .L3296 + ldr w0, [x29, 200] + cbz w0, .L3296 + add x0, x20, :lo12:.LANCHOR0 + ldrh w1, [x0, 2550] + add w0, w22, w24 + msub w0, w19, w1, w0 + cmp w1, w0 + bne .L3295 +.L3296: + add x1, x29, 212 + mov w2, 0 + str w4, [x29, 108] + mov w0, w19 + bl log2phys + mov x0, x21 + bl get_new_active_ppa + add x3, x20, :lo12:.LANCHOR0 + mov w5, 56 + str x3, [x29, 184] + str w5, [x29, 192] + ldr w6, [x3, 2600] + ldr x1, [x3, 2608] + umull x2, w6, w5 + add x1, x1, x2 + str w0, [x1, 4] + ldr x0, [x3, 2608] + add x0, x0, x2 + ldrh w2, [x3, 2556] + str w19, [x0, 24] + mul w1, w6, w2 + and x1, x1, 4294967292 + str x1, [x29, 144] + ldr x1, [x25, 3672] + ldr x4, [x29, 144] + str x1, [x29, 136] + add x28, x1, x4 + ldrh w1, [x3, 2554] + str x28, [x0, 16] + mul w1, w1, w6 + ldr x6, [x25, 3632] + and x1, x1, 4294967292 + add x1, x6, x1 + str x1, [x0, 8] + mov w1, 0 + mov x0, x28 + bl ftl_memset + cmp w27, w19 + ldr w4, [x29, 108] + cset w0, eq + ldr w5, [x29, 192] + orr w4, w4, w0 + ldr x3, [x29, 184] + cbz w4, .L3297 + bne .L3298 + ldrh w2, [x3, 2550] + udiv w0, w22, w2 + msub w0, w0, w2, w22 + str w0, [x29, 192] + sub w2, w2, w0 + cmp w2, w24 + csel w0, w2, w24, ls + str w0, [x29, 184] +.L3299: + add x0, x20, :lo12:.LANCHOR0 + ldr w2, [x29, 184] + ldrh w1, [x0, 2550] + cmp w1, w2 + bne .L3300 + cmp w27, w19 + beq .L3330 + mul w1, w19, w2 + sub w1, w1, w22 + lsl w1, w1, 9 + add x1, x23, x1 +.L3301: + ldr w0, [x29, 204] + add x2, x20, :lo12:.LANCHOR0 + cbz w0, .L3302 + ldr w0, [x2, 2600] + mov w3, 56 + ldr x2, [x2, 2608] + umaddl x0, w0, w3, x2 +.L3348: + str x1, [x0, 8] +.L3303: + ldp x1, x2, [x29, 136] + mov w0, -3947 + strh w0, [x1, x2] + add x1, x20, :lo12:.LANCHOR0 + ldr w0, [x25, 756] + stp w0, w19, [x28, 4] + add w19, w19, 1 + add w0, w0, 1 + cmn w0, #1 + csel w0, w0, wzr, ne + str w0, [x25, 756] + ldr w0, [x29, 212] + str w0, [x28, 12] + ldrh w0, [x21] + strh w0, [x28, 2] + ldr w0, [x1, 2600] + add w0, w0, 1 + str w0, [x1, 2600] + ldr w0, [x29, 200] + add w0, w0, 1 + str w0, [x29, 200] + b .L3294 +.L3298: + ldrh w0, [x3, 2550] + add w2, w22, w24 + str wzr, [x29, 192] + msub w2, w19, w0, w2 + and w0, w2, 65535 + str w0, [x29, 184] + b .L3299 +.L3330: + mov x1, x23 + b .L3301 +.L3302: + ldr w0, [x2, 2600] + mov w4, 56 + ldr x3, [x2, 2608] + ldrh w2, [x2, 2554] + nop // between mem op and mult-accumulate + umaddl x0, w0, w4, x3 +.L3349: + ldr x0, [x0, 8] + b .L3351 +.L3300: + ldr w1, [x29, 212] + mov w2, 56 + cmn w1, #1 + beq .L3304 + str w1, [x29, 220] + ldr w1, [x0, 2600] + ldr x0, [x0, 2608] + str w19, [x29, 240] + nop // between mem op and mult-accumulate + umaddl x0, w1, w2, x0 + mov w2, 0 + ldp x1, x0, [x0, 8] + stp x1, x0, [x29, 224] + mov w1, 1 + add x0, x29, 216 + bl FlashReadPages + ldr w0, [x29, 216] + cmn w0, #1 + bne .L3305 + ldr w0, [x25, 920] + add w0, w0, 1 + str w0, [x25, 920] +.L3307: + ldr w0, [x29, 184] + cmp w27, w19 + lsl w2, w0, 9 + bne .L3308 + add x0, x20, :lo12:.LANCHOR0 + mov w3, 56 + ldr w1, [x0, 2600] + ldr x0, [x0, 2608] + umaddl x1, w1, w3, x0 + ldr w0, [x29, 192] + lsl w0, w0, 9 + ldr x3, [x1, 8] + mov x1, x23 + add x0, x3, x0 +.L3351: + bl ftl_memcpy + b .L3303 +.L3305: + ldr w0, [x28, 8] + cmp w19, w0 + beq .L3307 + ldr w0, [x25, 920] + mov w2, w19 + add w0, w0, 1 + str w0, [x25, 920] + ldr x0, [x29, 112] + ldr w1, [x28, 8] + bl printk + b .L3307 +.L3304: + ldr x1, [x0, 2608] + ldr w3, [x0, 2600] + umaddl x3, w3, w2, x1 + ldrh w2, [x0, 2554] + mov w1, 0 + ldr x0, [x3, 8] + bl ftl_memset + b .L3307 +.L3308: + add x3, x20, :lo12:.LANCHOR0 + mov w4, 56 + ldrh w1, [x3, 2550] + ldr w0, [x3, 2600] + ldr x3, [x3, 2608] + mul w1, w1, w19 + umaddl x0, w0, w4, x3 + sub w1, w1, w22 + lsl w1, w1, 9 +.L3350: + add x1, x23, x1 + b .L3349 +.L3297: + ldr w0, [x29, 204] + ldrh w1, [x3, 2550] + cbz w0, .L3309 + mul w1, w1, w19 + ldr w0, [x3, 2600] + ldr x2, [x3, 2608] + sub w1, w1, w22 + lsl w1, w1, 9 + add x1, x23, x1 + umaddl x0, w0, w5, x2 + b .L3348 +.L3309: + ldr x2, [x3, 2608] + mul w1, w1, w19 + ldr w0, [x3, 2600] + sub w1, w1, w22 + lsl w1, w1, 9 + umaddl x0, w0, w5, x2 + ldrh w2, [x3, 2554] + b .L3350 +.L3313: + bl FtlCacheWriteBack + add x0, x20, :lo12:.LANCHOR0 + cmp w26, 1 + str wzr, [x0, 2600] + bhi .L3288 + b .L3315 +.L3325: mov w0, -1 -.L3342: - 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], 288 - ret + b .L3280 .size ftl_write, .-ftl_write .align 2 .global ftl_vendor_write .type ftl_vendor_write, %function ftl_vendor_write: stp x29, x30, [sp, -16]! - mov w5, w0 - mov w4, w1 - add x29, sp, 0 mov x3, x2 - mov w1, w5 - mov w2, w4 + mov w2, w1 + mov w1, w0 + add x29, sp, 0 mov w0, 16 bl ftl_write ldp x29, x30, [sp], 16 @@ -21829,40 +21444,43 @@ ftl_vendor_write: .global FlashBootVendorWrite .type FlashBootVendorWrite, %function FlashBootVendorWrite: - stp x29, x30, [sp, -64]! + stp x29, x30, [sp, -48]! add x29, sp, 0 - str x19, [sp,16] - mov w19, -1 - str x0, [x29,40] - str x1, [x29,48] - str x2, [x29,56] + stp x19, x20, [sp, 16] + mov w19, w0 + str x21, [sp, 32] + mov w20, w1 + mov x21, x2 bl rknand_device_lock - adrp x3, .LANCHOR1+504 - ldr x2, [x29,56] - ldr x1, [x29,48] - ldr x0, [x29,40] - ldr w3, [x3,#:lo12:.LANCHOR1+504] - cmp w3, 1 - bne .L3417 + adrp x0, .LANCHOR1+504 + ldr w0, [x0, #:lo12:.LANCHOR1+504] + cmp w0, 1 + bne .L3356 + mov w0, w19 + mov x2, x21 + mov w1, w20 bl ftl_vendor_write mov w19, w0 -.L3417: +.L3355: bl rknand_device_unlock + ldr x21, [sp, 32] mov w0, w19 - ldr x19, [sp,16] - ldp x29, x30, [sp], 64 + ldp x19, x20, [sp, 16] + ldp x29, x30, [sp], 48 ret +.L3356: + mov w19, -1 + b .L3355 .size FlashBootVendorWrite, .-FlashBootVendorWrite .align 2 .global ftl_sys_write .type ftl_sys_write, %function ftl_sys_write: stp x29, x30, [sp, -16]! - mov w4, w1 mov x3, x2 - add x29, sp, 0 + mov w2, w1 add w1, w0, 256 - mov w2, w4 + add x29, sp, 0 mov w0, 16 bl ftl_write ldp x29, x30, [sp], 16 @@ -21874,16 +21492,18 @@ ftl_sys_write: StorageSysDataStore: stp x29, x30, [sp, -32]! add x29, sp, 0 - str x0, [x29,16] - str x1, [x29,24] + stp x19, x20, [sp, 16] + mov x20, x1 + mov w19, w0 bl rknand_device_lock - ldr x2, [x29,24] + mov x2, x20 mov w1, 1 - ldr x0, [x29,16] + mov w0, w19 bl ftl_sys_write - str x0, [x29,24] + mov w19, w0 bl rknand_device_unlock - ldr x0, [x29,24] + mov w0, w19 + ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 32 ret .size StorageSysDataStore, .-StorageSysDataStore @@ -21892,256 +21512,237 @@ StorageSysDataStore: .type FtlDumpSysBlock, %function FtlDumpSysBlock: sub sp, sp, #96 - stp x29, x30, [sp,16] + stp x29, x30, [sp, 16] add x29, sp, 16 - stp x19, x20, [sp,32] - stp x21, x22, [sp,48] + stp x19, x20, [sp, 32] adrp x19, .LANCHOR4 - adrp x21, .LANCHOR2 - stp x23, x24, [sp,64] + stp x21, x22, [sp, 48] add x19, x19, :lo12:.LANCHOR4 - uxth w23, w0 + stp x23, x24, [sp, 64] + adrp x21, .LANCHOR2 + and w24, w0, 65535 add x0, x21, :lo12:.LANCHOR2 - str x25, [sp,80] - add x19, x19, 1704 - adrp x22, .LC166 - adrp x24, .LC167 - lsl w25, w23, 10 - ldr x1, [x0,3616] + str x25, [sp, 80] + add x19, x19, 1712 + adrp x22, .LANCHOR0 + adrp x23, .LC166 + ldr x1, [x0, 3608] + add x22, x22, :lo12:.LANCHOR0 + ldr x0, [x0, 3656] + add x23, x23, :lo12:.LC166 + lsl w25, w24, 10 mov w20, 0 - ldr x0, [x0,3664] - add x22, x22, :lo12:.LC166 - str x1, [x19,8] - add x24, x24, :lo12:.LC167 - str x0, [x19,16] -.L3422: - adrp x0, .LANCHOR0+2546 - ldrh w0, [x0,#:lo12:.LANCHOR0+2546] + stp x1, x0, [x19, 8] +.L3363: + ldrh w0, [x22, 2546] cmp w20, w0 - bge .L3428 - mov w1, 1 - orr w0, w20, w25 - mov w2, w1 - str w0, [x19,4] - mov x0, x19 - bl FlashReadPages - ldr x0, [x19,8] - mov w1, w23 - ldr x7, [x19,16] - ldr w0, [x0] - str w0, [sp] - mov x0, x22 - ldr w4, [x7] - ldr w5, [x7,4] - ldr w6, [x7,8] - ldr w2, [x19] - ldr w3, [x19,4] - ldr w7, [x7,12] - bl printk - ldr x0, [x19,16] - ldr w0, [x0] - cmn w0, #1 - beq .L3423 - add x1, x21, :lo12:.LANCHOR2 - mov x0, x24 - mov w2, 4 - mov w3, 768 - ldr x1, [x1,3616] - bl rknand_print_hex -.L3423: - add w20, w20, 1 - sxth w20, w20 - b .L3422 -.L3428: - sub sp, x29, #16 - ldp x19, x20, [sp,32] - ldp x21, x22, [sp,48] - ldp x23, x24, [sp,64] - ldr x25, [sp,80] - ldp x29, x30, [sp,16] + blt .L3365 + ldp x19, x20, [sp, 32] + ldp x21, x22, [sp, 48] + ldp x23, x24, [sp, 64] + ldp x29, x30, [sp, 16] + ldr x25, [sp, 80] add sp, sp, 96 ret +.L3365: + orr w0, w20, w25 + mov w2, 1 + str w0, [x19, 4] + mov w1, w2 + mov x0, x19 + bl FlashReadPages + ldp x1, x0, [x19, 8] + ldr w1, [x1] + str w1, [sp] + mov w1, w24 + ldp w4, w5, [x0] + ldp w6, w7, [x0, 8] + mov x0, x23 + ldp w2, w3, [x19] + bl printk + ldr x0, [x19, 16] + ldr w0, [x0] + cmn w0, #1 + beq .L3364 + add x0, x21, :lo12:.LANCHOR2 + mov w3, 768 + mov w2, 4 + ldr x1, [x0, 3608] + adrp x0, .LC167 + add x0, x0, :lo12:.LC167 + bl rknand_print_hex +.L3364: + add w20, w20, 1 + sxth w20, w20 + b .L3363 .size FtlDumpSysBlock, .-FtlDumpSysBlock .align 2 .global dump_map_info .type dump_map_info, %function dump_map_info: - sub sp, sp, #128 - stp x29, x30, [sp,16] + sub sp, sp, #112 + stp x29, x30, [sp, 16] add x29, sp, 16 - stp x19, x20, [sp,32] + stp x19, x20, [sp, 32] adrp x19, .LANCHOR0 - add x0, x19, :lo12:.LANCHOR0 - stp x23, x24, [sp,64] - stp x25, x26, [sp,80] - stp x21, x22, [sp,48] - stp x27, x28, [sp,96] - adrp x23, .LC168 - mov w25, 56 - ldrh w21, [x0,2480] - adrp x24, .LANCHOR2 - mov w26, 4 - add x23, x23, :lo12:.LC168 -.L3430: - add x2, x19, :lo12:.LANCHOR0 - ldrh w0, [x2,2482] - cmp w0, w21 - bls .L3443 - mov x22, 0 - ldrh w5, [x2,2472] - ldrh w4, [x2,2556] - mov w27, w22 - mov x20, x2 -.L3439: - cmp w5, w22, uxth - bls .L3444 - add x0, x20, 2504 - mov w1, w21 - str x4, [x29,96] - str x5, [x29,104] - ldrb w0, [x0,x22] - bl V2P_block - uxth w28, w0 - bl FtlBbmIsBadBlock - ldr x5, [x29,104] - ldr x4, [x29,96] - cbnz w0, .L3431 - add x3, x24, :lo12:.LANCHOR2 - lsl w28, w28, 10 - umull x0, w27, w25 - mul w2, w27, w4 - ldr x1, [x3,3592] - add w27, w27, 1 - add x1, x1, x0 - uxth w27, w27 - sdiv w2, w2, w26 - str w28, [x1,4] - ldr x1, [x3,3592] - add x0, x1, x0 - ldr x1, [x3,1400] - str x1, [x0,8] - ldr x1, [x3,1408] - add x2, x1, w2, sxtw 2 - str x2, [x0,16] -.L3431: - add x22, x22, 1 - b .L3439 -.L3444: - cbz w27, .L3434 - add x0, x24, :lo12:.LANCHOR2 - mov w1, w27 - mov w2, 1 - mov x20, 0 - adrp x22, .LANCHOR2 - mov x28, 56 - ldr x0, [x0,3592] - bl FlashReadPages -.L3435: - cmp w27, w20, uxth - bls .L3434 - add x0, x22, :lo12:.LANCHOR2 - ldr x3, [x0,3592] - madd x3, x20, x28, x3 - add x20, x20, 1 - ldr x7, [x3,8] - ldr x6, [x3,16] - ldr w2, [x3,4] - ldr w0, [x7,4] - str w0, [sp] - ubfx x1, x2, 10, 16 - mov x0, x23 - ldr w3, [x6] - ldr w4, [x6,4] - ldr w5, [x6,8] - ldr w7, [x7] - ldr w6, [x6,12] - bl printk - b .L3435 -.L3434: - add w21, w21, 1 - uxth w21, w21 - b .L3430 -.L3443: - adrp x20, .LANCHOR4 - adrp x23, .LC112 - add x20, x20, :lo12:.LANCHOR4 + add x20, x19, :lo12:.LANCHOR0 + stp x23, x24, [sp, 64] + stp x21, x22, [sp, 48] + adrp x23, .LANCHOR2 + stp x25, x26, [sp, 80] + mov x21, x19 + stp x27, x28, [sp, 96] + add x24, x20, 2504 + add x26, x23, :lo12:.LANCHOR2 + ldrh w22, [x20, 2480] +.L3371: + ldrh w0, [x20, 2482] + cmp w0, w22 + bhi .L3377 + adrp x19, .LANCHOR4 + add x19, x19, :lo12:.LANCHOR4 + add x19, x19, 1712 mov w22, 0 - adrp x27, .LANCHOR2 - add x20, x20, 1704 - add x23, x23, :lo12:.LC112 -.L3438: - add x21, x27, :lo12:.LANCHOR2 adrp x26, .LANCHOR2 - ldrh w0, [x21,3864] +.L3378: + add x20, x26, :lo12:.LANCHOR2 + ldrh w0, [x20, 3856] cmp w22, w0 - bge .L3441 + bge .L3381 + adrp x23, .LC112 sbfiz x24, x22, 1, 32 - mov w21, 0 -.L3442: - add x0, x19, :lo12:.LANCHOR0 - ldrh w0, [x0,2546] - cmp w21, w0 - bge .L3445 - add x25, x26, :lo12:.LANCHOR2 - mov w1, 1 - mov w2, w1 - ldr x0, [x25,3720] - ldrh w0, [x0,x24] - orr w0, w21, w0, lsl 10 - str w0, [x20,4] - mov x0, x20 - add w21, w21, 1 + mov w20, 0 + add x23, x23, :lo12:.LC112 + b .L3382 +.L3373: + ldrb w0, [x24, x5] + mov w1, w22 + bl V2P_block + and w4, w0, 65535 + bl FtlBbmIsBadBlock + cbnz w0, .L3372 + umull x2, w19, w7 + ldr x0, [x26, 3584] + lsl w4, w4, 10 + add x0, x0, x2 + str w4, [x0, 4] + ldr x1, [x26, 3584] + ldr x0, [x26, 1392] + add x1, x1, x2 + ldr x2, [x26, 1400] + str x0, [x1, 8] + mul w0, w19, w8 + add w19, w19, 1 + and w19, w19, 65535 + sdiv w0, w0, w6 + add x0, x2, w0, sxtw 2 + str x0, [x1, 16] +.L3372: + add x5, x5, 1 +.L3379: + cmp w9, w5, uxth + bhi .L3373 + cbnz w19, .L3374 +.L3376: + add w22, w22, 1 + and w22, w22, 65535 + b .L3371 +.L3374: + ldr x0, [x26, 3584] + mov w1, w19 + mov w2, 1 + adrp x27, .LC168 + add x28, x23, :lo12:.LANCHOR2 + add x27, x27, :lo12:.LC168 + mov x25, 0 bl FlashReadPages - sxth w21, w21 - ldr x0, [x20,8] - ldr x1, [x25,3720] - ldr x7, [x20,16] - ldr w2, [x0] - ldrh w1, [x1,x24] - str w2, [sp] - ldr w0, [x0,4] - str w0, [sp,8] - mov x0, x23 - ldr w4, [x7] - ldr w5, [x7,4] - ldr w6, [x7,8] - ldr w2, [x20] - ldr w3, [x20,4] - ldr w7, [x7,12] + mov w0, 56 + umull x19, w19, w0 +.L3375: + ldr x0, [x28, 3584] + add x0, x0, x25 + add x25, x25, 56 + ldr x1, [x0, 16] + ldr w2, [x0, 4] + ldr x0, [x0, 8] + ldr w3, [x0, 4] + str w3, [sp] + ldr w7, [x0] + mov x0, x27 + ldp w3, w4, [x1] + ldp w5, w6, [x1, 8] + ubfx x1, x2, 10, 16 bl printk - b .L3442 -.L3445: + cmp x25, x19 + beq .L3376 + b .L3375 +.L3377: + ldrh w9, [x20, 2472] + mov x5, 0 + ldrh w8, [x20, 2556] + mov w19, 0 + mov w7, 56 + mov w6, 4 + b .L3379 +.L3380: + add x25, x26, :lo12:.LANCHOR2 + mov w2, 1 + mov w1, w2 + ldr x0, [x25, 3712] + ldrh w0, [x0, x24] + orr w0, w20, w0, lsl 10 + str w0, [x19, 4] + mov x0, x19 + bl FlashReadPages + ldp x2, x0, [x19, 8] + add w20, w20, 1 + ldr x1, [x25, 3712] + sxth w20, w20 + ldr w3, [x2, 4] + ldrh w1, [x1, x24] + str w3, [sp, 8] + ldr w2, [x2] + str w2, [sp] + ldp w4, w5, [x0] + ldp w6, w7, [x0, 8] + mov x0, x23 + ldp w2, w3, [x19] + bl printk +.L3382: + add x0, x21, :lo12:.LANCHOR0 + ldrh w0, [x0, 2546] + cmp w20, w0 + blt .L3380 add w22, w22, 1 sxth w22, w22 - b .L3438 -.L3441: - add x19, x19, :lo12:.LANCHOR0 - ldr x1, [x21,3720] - adrp x0, .LC169 + b .L3378 +.L3381: + add x21, x21, :lo12:.LANCHOR0 + ldr x1, [x20, 3712] mov w2, 2 + adrp x0, .LC169 add x0, x0, :lo12:.LC169 - ldr w3, [x19,2572] + ldr w3, [x21, 2572] bl rknand_print_hex - ldr x1, [x21,3760] + ldrh w3, [x21, 2580] + mov w2, 4 + ldr x1, [x20, 3752] adrp x0, .LC170 - ldrh w3, [x19,2580] add x0, x0, :lo12:.LC170 - mov w2, 4 bl rknand_print_hex - ldr x1, [x21,3768] + ldrh w3, [x21, 2580] + mov w2, 4 + ldr x1, [x20, 3760] adrp x0, .LC171 - ldrh w3, [x19,2580] add x0, x0, :lo12:.LC171 - mov w2, 4 bl rknand_print_hex - 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, 128 + ldp x19, x20, [sp, 32] + ldp x21, x22, [sp, 48] + ldp x23, x24, [sp, 64] + ldp x25, x26, [sp, 80] + ldp x27, x28, [sp, 96] + ldp x29, x30, [sp, 16] + add sp, sp, 112 ret .size dump_map_info, .-dump_map_info .align 2 @@ -22149,495 +21750,470 @@ dump_map_info: .type flash_boot_enter_slc_mode, %function flash_boot_enter_slc_mode: adrp x1, .LANCHOR0+2392 - uxtb w0, w0 - stp x29, x30, [sp, -16]! - add x29, sp, 0 - ldr w2, [x1,#:lo12:.LANCHOR0+2392] + ldr w2, [x1, #:lo12:.LANCHOR0+2392] mov w1, 12336 movk w1, 0x5638, lsl 16 cmp w2, w1 - bne .L3446 + bne .L3388 + stp x29, x30, [sp, -16]! + and w0, w0, 255 + add x29, sp, 0 bl flash_enter_slc_mode -.L3446: ldp x29, x30, [sp], 16 ret +.L3388: + ret .size flash_boot_enter_slc_mode, .-flash_boot_enter_slc_mode .align 2 .global flash_boot_exit_slc_mode .type flash_boot_exit_slc_mode, %function flash_boot_exit_slc_mode: adrp x1, .LANCHOR0+2392 - uxtb w0, w0 - stp x29, x30, [sp, -16]! - add x29, sp, 0 - ldr w2, [x1,#:lo12:.LANCHOR0+2392] + ldr w2, [x1, #:lo12:.LANCHOR0+2392] mov w1, 12336 movk w1, 0x5638, lsl 16 cmp w2, w1 - bne .L3448 + bne .L3394 + stp x29, x30, [sp, -16]! + and w0, w0, 255 + add x29, sp, 0 bl flash_exit_slc_mode -.L3448: ldp x29, x30, [sp], 16 ret +.L3394: + ret .size flash_boot_exit_slc_mode, .-flash_boot_exit_slc_mode .align 2 .global write_idblock .type write_idblock, %function write_idblock: - stp x29, x30, [sp, -304]! + stp x29, x30, [sp, -240]! add x29, sp, 0 - stp x25, x26, [sp,64] - adrp x25, .LANCHOR0 - stp x19, x20, [sp,16] + stp x23, x24, [sp, 48] + adrp x24, .LANCHOR0 + stp x19, x20, [sp, 16] mov w19, w0 - add x0, x25, :lo12:.LANCHOR0 - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - stp x27, x28, [sp,80] + add x0, x24, :lo12:.LANCHOR0 + stp x21, x22, [sp, 32] + stp x25, x26, [sp, 64] mov x22, x1 + stp x27, x28, [sp, 80] mov x23, x2 - ldr x1, [x0,88] - ldr w21, [x0,76] + ldr x1, [x0, 88] + ldr w20, [x0, 76] mov w0, 59392 movk w0, 0x3, lsl 16 - ldrb w20, [x1,9] + ldrb w21, [x1, 9] bl ftl_malloc - mov x27, x0 - mov w0, -1 - cbz x27, .L3493 + cbz x0, .L3421 add w19, w19, 511 + mov x26, x0 lsr w19, w19, 9 cmp w19, 8 - bls .L3475 + bls .L3422 + mov w0, -1 cmp w19, 500 - bhi .L3493 - b .L3452 -.L3475: - mov w19, 8 -.L3452: + bhi .L3397 +.L3399: ldr w2, [x22] mov w1, 35899 movk w1, 0xfcdc, lsl 16 mov w0, -1 cmp w2, w1 - bne .L3493 - mul w21, w20, w21 - mov w3, 0 + bne .L3397 + mul w21, w21, w20 + add x3, x22, 253952 + add x3, x3, 1532 mov w2, 63871 + and w21, w21, 65535 mov w4, 4097 - uxth w21, w21 add w0, w21, w0 add w0, w0, w19 udiv w0, w0, w21 - str w0, [x29,216] - add x0, x22, 253952 - add x0, x0, 1532 -.L3456: - ldr w1, [x0] - cbnz w1, .L3453 - ldr w1, [x22,w3,uxtw 2] - add w3, w3, 1 - cmp w3, w4 + str w0, [x29, 168] + mov w0, 0 +.L3403: + ldr w1, [x3] + cbnz w1, .L3400 + ldr w1, [x22, w0, uxtw 2] + add w0, w0, 1 + str w1, [x3, 512] + cmp w0, w4 sub w2, w2, #1 - str w1, [x0,512] - csel w3, w3, wzr, cc + csel w0, w0, wzr, cc + sub x3, x3, #4 cmp w2, 4096 - sub x0, x0, #4 - bne .L3456 - b .L3455 -.L3453: + bne .L3403 +.L3402: + add x20, x24, :lo12:.LANCHOR0 + mov w3, 5 + mov w2, 4 + mov x1, x23 + adrp x0, .LC173 + add x0, x0, :lo12:.LC173 + bl rknand_print_hex + adrp x25, .LANCHOR4 + ldrb w2, [x20, 73] + adrp x0, .LC174 + ldr w1, [x22, 512] + add x0, x0, :lo12:.LC174 + bl printk + add x0, x25, :lo12:.LANCHOR4 + ldrh w3, [x20, 202] + mov w1, w19 + mov w2, w19 + ldr w4, [x0, 1644] + adrp x0, .LC175 + add x0, x0, :lo12:.LC175 + bl printk + str x25, [x29, 160] + ldrb w0, [x20, 73] + ldr w1, [x22, 512] + cmp w1, w0 + bls .L3404 + str w0, [x22, 512] +.L3404: + lsl w0, w19, 7 + add x28, x24, :lo12:.LANCHOR0 + str w0, [x29, 140] + mov x20, 0 + add x0, x28, 208 + str wzr, [x29, 172] + str x0, [x29, 152] +.L3420: + ldr w1, [x23, x20, lsl 2] + ldrb w0, [x28, 73] + str w20, [x29, 136] + cmp w1, w0 + bcs .L3405 + ldr x0, [x29, 160] + add x0, x0, :lo12:.LANCHOR4 + ldr w0, [x0, 1644] + cmp w1, w0 + bcc .L3405 + ldr w0, [x29, 168] + cmp w20, 0 + ccmp w0, 1, 0, ne + bls .L3406 + sub w0, w20, #1 + ldr w0, [x23, x0, lsl 2] + add w0, w0, 1 + cmp w1, w0 + beq .L3405 +.L3406: + mov x2, 512 + mov w1, 0 + mov x0, x26 + bl memset + ldr w24, [x23, x20, lsl 2] + mov w2, w19 + ldr x0, [x28, 88] + ldr w25, [x28, 76] + mul w24, w21, w24 + ldrb w27, [x0, 9] + adrp x0, .LC176 + mov w1, w24 + add x0, x0, :lo12:.LC176 + bl printk + mov w0, 0 + bl flash_boot_enter_slc_mode + mul w25, w25, w27 + udiv w1, w24, w27 + mov w2, 0 + and w25, w25, 65535 + mov w0, 0 + bl FlashEraseBlock + cmp w25, w19 + bcs .L3425 + add w1, w24, w25 + mov w2, 0 + mov w0, 0 + bl FlashEraseBlock + mov w1, 2 +.L3407: + mov w0, 0 + str w1, [x29, 144] + bl flash_boot_exit_slc_mode + ldr x0, [x28, 88] + mov w5, 0 + ldr w1, [x29, 144] + mov w10, 1073741823 + udiv w8, w24, w25 + ldrh w4, [x0, 10] + ldrb w0, [x0, 12] + msub w8, w8, w25, w24 + mov x25, x22 + lsl w4, w4, 2 + mul w4, w4, w1 + sdiv w4, w4, w0 + sub w0, w24, w8 + str w0, [x29, 144] +.L3408: + cmp w4, w5 + bhi .L3412 + mov w1, w24 + mov w3, 0 + mov w2, w19 + adrp x0, .LC177 + add x0, x0, :lo12:.LC177 + bl printk + ldr x0, [x28, 88] + mov w2, w19 + ldr w25, [x28, 76] + ldr w24, [x23, x20, lsl 2] + ldrb w5, [x0, 9] + adrp x0, .LC178 + str w5, [x29, 144] + add x0, x0, :lo12:.LC178 + mul w24, w21, w24 + mul w25, w25, w5 + mov w1, w24 + bl printk + and w25, w25, 65535 + ldr w5, [x29, 144] + ldr x1, [x29, 160] + mov x7, x26 + mov w4, 0 + mov w9, 4 + udiv w27, w24, w25 + add x10, x1, :lo12:.LANCHOR4 + msub w27, w27, w25, w24 + sub w8, w24, w27 + mul w0, w27, w5 + ubfx x0, x0, 2, 2 +.L3413: + cmp w4, w19 + bcc .L3415 + mov w1, w24 + mov w3, 0 + mov w2, w19 + adrp x0, .LC179 + add x0, x0, :lo12:.LC179 + bl printk + mov x1, x26 + mov x0, x22 + mov x24, 0 +.L3416: + ldr w2, [x29, 140] + cmp w24, w2 + bcc .L3418 + ldr w0, [x29, 172] + add w0, w0, 1 + str w0, [x29, 172] + b .L3405 +.L3422: + mov w19, 8 + b .L3399 +.L3400: adrp x0, .LC172 add x0, x0, :lo12:.LC172 bl printk -.L3455: - adrp x0, .LC173 - mov w3, 5 - add x20, x25, :lo12:.LANCHOR0 - add x0, x0, :lo12:.LC173 - mov x1, x23 - mov w2, 4 - adrp x24, .LANCHOR4 - bl rknand_print_hex - ldr w1, [x22,512] - adrp x0, .LC174 - ldrb w2, [x20,73] - add x0, x0, :lo12:.LC174 - bl printk - add x4, x24, :lo12:.LANCHOR4 - adrp x0, .LC175 - ldrh w3, [x20,202] - mov w1, w19 - add x0, x0, :lo12:.LC175 - mov w2, w19 - ldr w4, [x4,1636] - bl printk - str x24, [x29,224] - ldrb w0, [x20,73] - ldr w1, [x22,512] - cmp w1, w0 - bls .L3457 - str w0, [x22,512] -.L3457: - lsl w0, w19, 7 - str w0, [x29,204] - adrp x0, .LC176 - mov x20, 0 - add x0, x0, :lo12:.LC176 - str x0, [x29,192] - adrp x0, .LC177 - str w20, [x29,236] - add x0, x0, :lo12:.LC177 - str x0, [x29,184] - adrp x0, .LC178 - add x0, x0, :lo12:.LC178 - str x0, [x29,176] -.L3473: - add x0, x25, :lo12:.LANCHOR0 - ldr w1, [x23,x20,lsl 2] - str w20, [x29,232] - ldrb w0, [x0,73] - cmp w1, w0 - bcs .L3458 - ldr x0, [x29,224] - add x0, x0, :lo12:.LANCHOR4 - ldr w0, [x0,1636] - cmp w1, w0 - bcc .L3458 - ldr w0, [x29,216] - cmp w0, 1 - cset w0, hi - str w0, [x29,220] - uxtw x0, w20 - cbz w0, .L3459 - ldr w0, [x29,220] - cbz w0, .L3459 - uxtw x0, w20 - sub w0, w0, #1 - ldr w0, [x23,x0,lsl 2] - add w0, w0, 1 - cmp w1, w0 - beq .L3458 -.L3459: - mov w1, 0 - mov x2, 512 - mov x0, x27 - bl memset - ldr w24, [x23,x20,lsl 2] - add x0, x25, :lo12:.LANCHOR0 - mov w2, w19 - mul w24, w21, w24 - ldr x1, [x0,88] - ldr w26, [x0,76] - ldr x0, [x29,192] - ldrb w28, [x1,9] - mov w1, w24 - bl printk - mov w0, 0 - mul w26, w26, w28 - bl flash_boot_enter_slc_mode - udiv w1, w24, w28 - mov w2, 0 - mov w0, 0 - uxth w26, w26 - bl FlashEraseBlock - cmp w19, w26 - mov w2, 1 - bls .L3460 - mov w2, 0 - mov w0, 0 - add w1, w24, w26 - bl FlashEraseBlock - mov w2, 2 -.L3460: - mov w0, 0 - str x2, [x29,208] - bl flash_boot_exit_slc_mode - add x4, x25, :lo12:.LANCHOR0 - ldr x2, [x29,208] - udiv w8, w24, w26 - mov w6, 0 - mov w10, 1073741823 - mov w11, 61424 - ldr x1, [x4,88] - ldrh w0, [x1,10] - ldrb w5, [x1,12] + b .L3402 +.L3425: + mov w1, 1 + b .L3407 +.L3412: + add w1, w8, w5 + lsr w1, w1, 2 + cbz w1, .L3409 + ldr x0, [x29, 152] + add w2, w1, 1 + ldrb w3, [x28, 204] + ldrh w0, [x0, w2, sxtw 1] + cbz w3, .L3410 + ldr w3, [x28, 2392] + mov w6, 12336 + movk w6, 0x5638, lsl 16 + cmp w3, w6 + csel w0, w0, w2, ne +.L3410: + add w0, w0, w10 lsl w0, w0, 2 - msub w8, w8, w26, w24 - mul w0, w0, w2 - mov x26, x22 - sdiv w5, w0, w5 - sub w0, w24, w8 - str w0, [x29,208] -.L3461: - cmp w6, w5 - bcs .L3505 - add w0, w6, w8 - lsr w0, w0, 2 - uxth w1, w0 - and w0, w0, 65535 - cbz w1, .L3462 - add w2, w0, 1 - add x1, x4, 208 - ldrb w3, [x4,204] - ldrh w1, [x1,w2,sxtw 1] - cbz w3, .L3463 - ldr w7, [x4,2392] - mov w3, 12336 - movk w3, 0x5638, lsl 16 - cmp w7, w3 - csel w1, w1, w2, ne -.L3463: - add w1, w1, w10 - lsl w1, w1, 2 - str w1, [x29,240] -.L3462: - add x1, x4, 208 - str w11, [x29,244] - ldrh w7, [x1,w0,sxtw 1] - ldrb w1, [x4,204] - cbz w1, .L3464 - ldr w2, [x4,2392] - mov w1, 12336 - movk w1, 0x5638, lsl 16 - cmp w2, w1 - csel w7, w7, w0, ne -.L3464: - ldr w0, [x29,208] - ldrb w12, [x4,2464] - str x11, [x29,104] - madd w2, w7, w28, w0 - ldr x0, [x29,224] - str x10, [x29,112] + str w0, [x29, 176] +.L3409: + mov w0, 61424 + str w0, [x29, 180] + ldr x0, [x29, 152] + ldrh w7, [x0, w1, sxtw 1] + ldrb w0, [x28, 204] + cbz w0, .L3411 + ldr w0, [x28, 2392] + mov w2, 12336 + movk w2, 0x5638, lsl 16 + cmp w0, w2 + csel w7, w7, w1, ne +.L3411: + ldr w0, [x29, 144] + ldrb w11, [x28, 2464] + stp w10, w5, [x29, 104] + stp w8, w4, [x29, 112] + madd w1, w27, w7, w0 + ldr x0, [x29, 160] + stp w7, w1, [x29, 120] add x0, x0, :lo12:.LANCHOR4 - str x6, [x29,120] - str x8, [x29,128] - str x5, [x29,136] - ldrb w0, [x0,1642] - str x7, [x29,144] - str x12, [x29,160] - str x2, [x29,152] - str x4, [x29,168] + str w11, [x29, 128] + ldrb w0, [x0, 1650] bl FlashBchSel mov w0, 0 bl flash_boot_enter_slc_mode - ldr x4, [x29,168] - add x3, x29, 240 - ldr x2, [x29,152] - ldr x0, [x4,88] - ldrb w1, [x0,9] + ldr x0, [x28, 88] + mov x2, x25 + ldr w1, [x29, 124] + add x3, x29, 176 + add x25, x25, 2048 + ldrb w0, [x0, 9] + udiv w1, w1, w0 mov w0, 0 - udiv w1, w2, w1 - mov x2, x26 - add x26, x26, 2048 bl FlashProgPage mov w0, 0 bl flash_boot_exit_slc_mode - ldr x12, [x29,160] - mov w0, w12 + ldr w11, [x29, 128] + mov w0, w11 bl FlashBchSel - ldr w1, [x29,208] - mov w0, 0 - ldr x7, [x29,144] - udiv w1, w1, w28 + ldr w0, [x29, 144] + ldr w7, [x29, 120] add w2, w7, 1 + udiv w1, w0, w27 + mov w0, 0 bl FlashPageProgMsbFFData - ldr x6, [x29,120] - ldr x11, [x29,104] - add w6, w6, 4 - ldr x10, [x29,112] - ldr x8, [x29,128] - uxth w6, w6 - ldr x5, [x29,136] - ldr x4, [x29,168] - b .L3461 -.L3505: - ldr x0, [x29,184] - mov w1, w24 - mov w2, w19 - mov w3, 0 - add x24, x25, :lo12:.LANCHOR0 - bl printk - ldr w5, [x23,x20,lsl 2] - mov w2, w19 - ldr x0, [x24,88] - ldr w26, [x24,76] - mul w5, w21, w5 - ldrb w7, [x0,9] - ldr x0, [x29,176] - mov w1, w5 - str x7, [x29,168] - mul w26, w26, w7 - str x5, [x29,208] - bl printk - ldr x5, [x29,208] - mov w12, 0 - uxth w26, w26 - ldr x7, [x29,168] - mov w11, 4 - udiv w8, w5, w26 - msub w8, w8, w26, w5 - mov x26, x27 - sub w10, w5, w8 - mul w0, w8, w7 - ubfx x0, x0, 2, 2 -.L3466: - cmp w12, w19 - bcs .L3506 - add w4, w12, w8 - add x1, x24, 208 - ubfx x4, x4, 2, 16 - sub w6, w11, w0 - uxth w6, w6 - ldrh w3, [x1,w4,sxtw 1] - ldrb w1, [x24,204] - cbz w1, .L3467 - ldr w2, [x24,2392] - mov w1, 12336 - movk w1, 0x5638, lsl 16 - cmp w2, w1 - csel w3, w3, w4, ne -.L3467: - add w0, w0, w10 - ldrb w4, [x24,2464] - str x11, [x29,112] - madd w28, w3, w7, w0 - ldr x0, [x24,88] - str x12, [x29,120] - str x6, [x29,128] - ldrb w1, [x0,9] - ldr x0, [x29,224] - str x8, [x29,136] - add x0, x0, :lo12:.LANCHOR4 - str x5, [x29,144] - str x10, [x29,152] - str x7, [x29,160] - ldrb w0, [x0,1642] - str x4, [x29,208] - str x1, [x29,168] + ldp w10, w5, [x29, 104] + ldp w8, w4, [x29, 112] + add w5, w5, 4 + and w5, w5, 65535 + b .L3408 +.L3415: + add w2, w27, w4 + ldr x1, [x29, 152] + ldrb w3, [x28, 204] + lsr w2, w2, 2 + sub w25, w9, w0 + and w25, w25, 65535 + ldrh w1, [x1, w2, sxtw 1] + cbz w3, .L3414 + ldr w3, [x28, 2392] + mov w6, 12336 + movk w6, 0x5638, lsl 16 + cmp w3, w6 + csel w1, w1, w2, ne +.L3414: + add w0, w0, w8 + ldrb w11, [x28, 2464] + stp w9, w4, [x29, 100] + stp w8, w5, [x29, 108] + madd w1, w5, w1, w0 + ldr x0, [x28, 88] + str x10, [x29, 128] + str w11, [x29, 124] + str x7, [x29, 144] + ldrb w12, [x0, 9] + ldrb w0, [x10, 1650] + stp w1, w12, [x29, 116] bl FlashBchSel mov w0, 0 bl flash_boot_enter_slc_mode - ldr x1, [x29,168] - mov x2, x26 + ldp w1, w12, [x29, 116] mov x3, 0 + ldr x7, [x29, 144] mov w0, 0 - udiv w1, w28, w1 + udiv w1, w1, w12 + mov x2, x7 bl FlashReadPage mov w0, 0 bl flash_boot_exit_slc_mode - ldr x4, [x29,208] - mov w0, w4 + ldr w11, [x29, 124] + mov w0, w11 bl FlashBchSel - ldr x6, [x29,128] - ldr x12, [x29,120] - ubfiz x0, x6, 9, 16 - ldr x11, [x29,112] - add x26, x26, x0 - add w0, w6, w12 - ldr x8, [x29,136] - uxth w12, w0 - ldr x5, [x29,144] + ldp w9, w4, [x29, 100] + ubfiz x0, x25, 9, 16 + ldr x7, [x29, 144] + add w4, w25, w4 + ldr x10, [x29, 128] + add x7, x7, x0 + and w4, w4, 65535 + ldp w8, w5, [x29, 108] mov w0, 0 - ldr x10, [x29,152] - ldr x7, [x29,160] - b .L3466 -.L3506: - adrp x0, .LC179 - mov w1, w5 - mov w2, w19 - add x0, x0, :lo12:.LC179 - mov w3, 0 - bl printk - mov x2, x27 - mov x1, x22 - mov x0, 0 -.L3469: - ldr w4, [x29,204] - mov w3, w0 - cmp w0, w4 - bcs .L3507 - mov x4, x2 - mov x26, x1 - mov x24, x0 - add x2, x2, 4 - add x0, x0, 1 + b .L3413 +.L3418: + mov x25, x1 + mov x27, x0 + add x2, x24, 1 add x1, x1, 4 - ldr w6, [x4] - ldr w5, [x26] - cmp w6, w5 - beq .L3469 - mov w1, 0 + add x0, x0, 4 + ldr w4, [x25] + ldr w3, [x27] + cmp w4, w3 + beq .L3426 mov x2, 512 - mov x0, x27 - str x4, [x29,168] - str x3, [x29,208] - and x24, x24, -256 + mov w1, 0 + mov x0, x26 bl memset + ldr w4, [x25] + mov w3, w24 + ldr w5, [x27] + and x24, x24, -256 + ldr w2, [x23, x20, lsl 2] lsl x24, x24, 2 - ldr x4, [x29,168] + ldr w1, [x29, 136] adrp x0, .LC180 - ldr w5, [x26] add x0, x0, :lo12:.LC180 - ldr w1, [x29,232] - ldr w4, [x4] - ldr w2, [x23,x20,lsl 2] - ldr x3, [x29,208] bl printk - adrp x0, .LC181 + mov w3, 256 + mov w2, 4 add x1, x22, x24 + adrp x0, .LC181 add x0, x0, :lo12:.LC181 - mov w2, 4 - mov w3, 256 bl rknand_print_hex - adrp x0, .LC182 - add x1, x27, x24 - mov w2, 4 + add x1, x26, x24 mov w3, 256 + mov w2, 4 + adrp x0, .LC182 add x0, x0, :lo12:.LC182 bl rknand_print_hex mov w0, 0 bl flash_boot_enter_slc_mode - ldr w1, [x23,x20,lsl 2] - mov w0, 0 + ldr w1, [x23, x20, lsl 2] mov w2, 0 + mov w0, 0 mul w1, w21, w1 bl FlashEraseBlock - ldr w0, [x29,220] - cbz w0, .L3470 - ldr w1, [x23,x20,lsl 2] - mov w0, 0 + ldr w0, [x29, 168] + cmp w0, 1 + bls .L3417 + ldr w1, [x23, x20, lsl 2] mov w2, 0 + mov w0, 0 madd w1, w1, w21, w21 bl FlashEraseBlock -.L3470: +.L3417: mov w0, 0 bl flash_boot_exit_slc_mode + ldr w1, [x23, x20, lsl 2] adrp x0, .LC183 - ldr w1, [x23,x20,lsl 2] add x0, x0, :lo12:.LC183 bl printk - b .L3458 -.L3507: - ldr w0, [x29,236] - add w0, w0, 1 - str w0, [x29,236] -.L3458: +.L3405: add x20, x20, 1 cmp x20, 5 - bne .L3473 - mov x0, x27 + bne .L3420 + mov x0, x26 bl ftl_free - ldr w0, [x29,236] - cmp w0, wzr + ldr w0, [x29, 172] + cmp w0, 0 csetm w0, eq -.L3493: - 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], 304 +.L3397: + 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 +.L3426: + mov x24, x2 + b .L3416 +.L3421: + mov w0, -1 + b .L3397 .size write_idblock, .-write_idblock .align 2 .global write_loader_lba @@ -22646,769 +22222,730 @@ write_loader_lba: stp x29, x30, [sp, -112]! cmp w0, 64 add x29, sp, 0 - stp x19, x20, [sp,16] - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] + stp x19, x20, [sp, 16] mov w19, w0 + stp x21, x22, [sp, 32] + adrp x20, .LANCHOR4 + stp x23, x24, [sp, 48] mov w21, w1 mov x24, x2 - adrp x20, .LANCHOR5 - bne .L3509 + bne .L3447 ldr w1, [x2] mov w0, 35899 movk w0, 0xfcdc, lsl 16 cmp w1, w0 - bne .L3509 - add x22, x20, :lo12:.LANCHOR5 + bne .L3447 + add x22, x20, :lo12:.LANCHOR4 mov w0, 1 - strb w0, [x22,1512] + strb w0, [x22, 2032] mov w0, 59392 movk w0, 0x3, lsl 16 bl ftl_malloc - str x0, [x22,1520] mov w2, 59392 mov w1, 0 movk w2, 0x3, lsl 16 + str x0, [x22, 2040] bl ftl_memset - str w19, [x22,1528] -.L3509: - add x23, x20, :lo12:.LANCHOR5 - adrp x0, .LC184 + str w19, [x22, 2048] +.L3447: + add x23, x20, :lo12:.LANCHOR4 ldr w2, [x24] - add x0, x0, :lo12:.LC184 - mov w3, w19 mov w4, w21 - ldr x1, [x23,1520] + mov w3, w19 + adrp x0, .LC184 + add x0, x0, :lo12:.LC184 + ldr x1, [x23, 2040] bl printk - ldrb w0, [x23,1512] - cbz w0, .L3508 + ldrb w0, [x23, 2032] + cbz w0, .L3446 sub w0, w19, #64 - ldr x22, [x23,1520] + ldr x22, [x23, 2040] cmp w0, 499 - bhi .L3511 - mov w3, 564 + bhi .L3449 + mov w2, 564 + sub w2, w2, w19 + cmp w21, w2 ubfiz x0, x0, 9, 25 - sub w3, w3, w19 - add x0, x22, x0 - cmp w3, w21 + csel w2, w21, w2, ls mov x1, x24 - csel w2, w3, w21, ls lsl w2, w2, 9 + add x0, x22, x0 bl ftl_memcpy - b .L3512 -.L3511: - cmp w19, 563 - bhi .L3522 -.L3512: - add x0, x20, :lo12:.LANCHOR5 - ldr w1, [x0,1528] - cmp w1, w19 - beq .L3520 - strb wzr, [x0,1512] - cbz x22, .L3521 +.L3450: + add x0, x20, :lo12:.LANCHOR4 + ldr w1, [x0, 2048] + cmp w19, w1 + beq .L3459 + strb wzr, [x0, 2032] + cbz x22, .L3460 mov x0, x22 bl ftl_free -.L3521: - add x0, x20, :lo12:.LANCHOR5 - str xzr, [x0,1520] -.L3520: - add x20, x20, :lo12:.LANCHOR5 - add w19, w19, w21 - str w19, [x20,1528] - b .L3508 -.L3522: - ldr w2, [x23,1528] - mov w0, 500 - sub w2, w2, #64 - cmp w2, 500 - csel w2, w2, w0, ls - adrp x0, .LANCHOR0+88 - ldr x0, [x0,#:lo12:.LANCHOR0+88] - ldrb w0, [x0,9] - cmp w0, 4 - beq .L3523 - mov w0, 2 - str w0, [x29,72] - mov w0, 3 - str w0, [x29,76] - mov w0, 4 - str w0, [x29,80] - mov w0, 5 - str w0, [x29,84] - mov w0, 6 - str w0, [x29,88] - b .L3514 -.L3523: - mov x3, 0 -.L3513: - cmp w2, 256 - add x0, x29, 72 - bls .L3515 - lsl w1, w3, 1 - str w1, [x0,x3,lsl 2] - b .L3516 -.L3515: - str w3, [x0,x3,lsl 2] -.L3516: - add x3, x3, 1 - cmp x3, 5 - bne .L3513 -.L3514: - add x0, x22, 253952 - mov w3, 63872 - add x0, x0, 1536 -.L3519: - ldr w1, [x0] - cbz w1, .L3517 - add w3, w3, 128 - lsl w0, w3, 2 - b .L3518 -.L3517: - sub w3, w3, #1 - sub x0, x0, #4 - cmp w3, 4096 - bne .L3519 - lsl w0, w2, 9 -.L3518: +.L3460: + add x0, x20, :lo12:.LANCHOR4 + str xzr, [x0, 2040] + b .L3459 +.L3449: + cmp w19, 563 + bls .L3450 + ldr w0, [x23, 2048] + mov w1, 500 + sub w0, w0, #64 + cmp w0, 500 + csel w0, w0, w1, ls + adrp x1, .LANCHOR0+88 + ldr x1, [x1, #:lo12:.LANCHOR0+88] + ldrb w1, [x1, 9] + cmp w1, 4 + beq .L3451 + mov w1, 2 + str w1, [x29, 72] + mov w1, 3 + str w1, [x29, 76] + mov w1, 4 + str w1, [x29, 80] + mov w1, 5 + str w1, [x29, 84] + mov w1, 6 + str w1, [x29, 88] +.L3452: + add x2, x22, 253952 + mov w1, 63872 + add x2, x2, 1536 +.L3458: + ldr w3, [x2] + cbz w3, .L3456 + add w0, w1, 128 + lsl w0, w0, 2 +.L3457: mov x1, x22 + add x22, x20, :lo12:.LANCHOR4 add x2, x29, 72 - add x22, x20, :lo12:.LANCHOR5 bl write_idblock - ldr x0, [x22,1520] - strb wzr, [x22,1512] + ldr x0, [x22, 2040] + strb wzr, [x22, 2032] bl ftl_free - str xzr, [x22,1520] - b .L3520 -.L3508: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] + str xzr, [x22, 2040] +.L3459: + add x20, x20, :lo12:.LANCHOR4 + add w19, w19, w21 + str w19, [x20, 2048] +.L3446: + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] ldp x29, x30, [sp], 112 ret +.L3451: + add x2, x29, 72 + mov x1, 0 +.L3455: + cmp w0, 256 + bls .L3453 + lsl w3, w1, 1 + str w3, [x2, x1, lsl 2] +.L3454: + add x1, x1, 1 + cmp x1, 5 + bne .L3455 + b .L3452 +.L3453: + str w1, [x2, x1, lsl 2] + b .L3454 +.L3456: + sub w1, w1, #1 + sub x2, x2, #4 + cmp w1, 4096 + bne .L3458 + lsl w0, w0, 9 + b .L3457 .size write_loader_lba, .-write_loader_lba .align 2 .global FtlWrite .type FtlWrite, %function FtlWrite: - stp x29, x30, [sp, -64]! + stp x29, x30, [sp, -48]! add x29, sp, 0 - str x21, [sp,32] - uxtb w21, w0 + stp x19, x20, [sp, 16] + and w20, w0, 255 + stp x21, x22, [sp, 32] sub w0, w1, #64 - stp x19, x20, [sp,16] - cmp w0, 1983 mov w19, w1 - mov w20, w2 - bhi .L3533 - cbnz w21, .L3533 - mov w0, w1 - mov w1, w2 + mov w21, w2 + mov x22, x3 + cmp w0, 1983 + bhi .L3471 + cbnz w20, .L3471 mov x2, x3 - str x3, [x29,56] + mov w1, w21 + mov w0, w19 bl write_loader_lba - ldr x3, [x29,56] -.L3533: +.L3471: + mov x3, x22 + mov w2, w21 mov w1, w19 - mov w2, w20 - mov w0, w21 + mov w0, w20 bl ftl_write - ldr x21, [sp,32] - ldp x19, x20, [sp,16] - ldp x29, x30, [sp], 64 + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x29, x30, [sp], 48 ret .size FtlWrite, .-FtlWrite .align 2 .global rknand_sys_storage_ioctl .type rknand_sys_storage_ioctl, %function rknand_sys_storage_ioctl: - sub sp, sp, #528 + sub sp, sp, #560 mov w0, 27688 movk w0, 0x4004, lsl 16 cmp w1, w0 - stp x29, x30, [sp, -32]! + stp x29, x30, [sp] add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] mov w19, w1 mov x20, x2 - beq .L3542 - mov w0, 27688 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - bhi .L3543 + beq .L3475 + bhi .L3476 mov w0, 25602 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3544 - mov w0, 25602 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - bhi .L3545 + beq .L3477 + bhi .L3478 mov w0, 25364 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3546 - mov w0, 25601 - movk w0, 0x4004, lsl 16 + beq .L3479 + add w0, w0, 237 cmp w1, w0 - beq .L3547 - b .L3578 -.L3545: + beq .L3480 +.L3510: + mov x19, -22 + b .L3473 +.L3478: mov w0, 25726 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L3548 - mov w0, 25727 - movk w0, 0x4004, lsl 16 + beq .L3481 + add w0, w0, 1 cmp w1, w0 - beq .L3549 + beq .L3482 mov w0, 25603 movk w0, 0x4004, lsl 16 cmp w1, w0 - bne .L3578 - b .L3600 -.L3543: - mov w0, 30224 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - beq .L3551 - mov w0, 30224 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - bhi .L3552 - mov w0, 27698 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - beq .L3542 - mov w0, 27708 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - beq .L3542 - b .L3578 -.L3552: - mov w0, 30226 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - beq .L3551 - mov w0, 30226 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - bcc .L3553 - mov w0, 30227 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - beq .L3553 - b .L3578 -.L3547: - adrp x0, .LC185 - add x0, x0, :lo12:.LC185 - bl printk - add x0, x29, 40 - mov x1, x20 - mov x2, 520 - bl rk_copy_from_user - cbz x0, .L3554 -.L3560: - adrp x0, .LC186 - add x0, x0, :lo12:.LC186 - bl printk - b .L3597 -.L3554: - ldr w1, [x29,40] - mov w0, 21060 - movk w0, 0x4b4d, lsl 16 - cmp w1, w0 - beq .L3555 -.L3557: - mov x19, -1 - b .L3556 -.L3555: - ldr w0, [x29,44] - cmp w0, 512 - bhi .L3557 - adrp x19, .LANCHOR5 - add x0, x29, 40 - add x19, x19, :lo12:.LANCHOR5 - mov x2, 512 - ldr x1, [x19,1536] - bl memcpy - ldr w1, [x19,1544] - mov w0, 5161 - movk w0, 0xc059, lsl 16 - cmp w1, w0 - beq .L3558 - add x0, x29, 104 - mov w1, 0 - mov x2, 128 - str wzr, [x29,48] - str wzr, [x29,52] - bl memset -.L3558: - add x0, x29, 296 - mov w1, 0 - mov x2, 256 - str wzr, [x29,56] - bl memset -.L3592: - mov x0, x20 - add x1, x29, 40 - mov x2, 520 - bl rk_copy_to_user - cbnz x0, .L3597 - b .L3595 -.L3544: - adrp x0, .LC187 - add x0, x0, :lo12:.LC187 - bl printk - add x0, x29, 40 - mov x1, x20 - mov x2, 520 - bl rk_copy_from_user - cbnz x0, .L3560 - ldr w1, [x29,40] - mov w0, 21060 - movk w0, 0x4b4d, lsl 16 - cmp w1, w0 - bne .L3557 - ldr w0, [x29,44] - cmp w0, 512 - bhi .L3557 - adrp x1, .LANCHOR5 - mov w2, 5161 - add x1, x1, :lo12:.LANCHOR5 - movk w2, 0xc059, lsl 16 - mov x0, -2 - ldr w3, [x1,1544] - cmp w3, w2 - bne .L3541 - ldr w2, [x29,52] - mov x0, -3 - sub w3, w2, #1 - cmp w3, 127 - bhi .L3541 - ldr x19, [x1,1536] - add x1, x29, 104 - add x0, x19, 64 - str w2, [x19,12] - ldr w2, [x29,52] - bl memcpy - mov w0, 1 - mov x1, x19 - b .L3596 -.L3549: - adrp x0, .LC188 - add x0, x0, :lo12:.LC188 - bl printk - add x0, x29, 40 - mov x1, x20 - mov x2, 520 - bl rk_copy_from_user - cbnz x0, .L3560 - ldr w1, [x29,40] - mov w0, 17476 - movk w0, 0x4253, lsl 16 - cmp w1, w0 - bne .L3557 - ldr w0, [x29,44] - cmp w0, 512 - bhi .L3557 - adrp x19, .LANCHOR5 - add x0, x19, :lo12:.LANCHOR5 - ldr w0, [x0,1548] - cbnz w0, .L3561 -.L3564: - mov x0, 0 - b .L3541 -.L3561: - add x0, x19, :lo12:.LANCHOR5 - mov w2, 22867 - movk w2, 0x4453, lsl 16 - ldr x1, [x0,1552] - ldr w3, [x1] - cmp w3, w2 - beq .L3562 - mov w2, 22867 - movk w2, 0x4453, lsl 16 - str w2, [x1] - mov w2, 504 - ldr x1, [x0,1552] - str w2, [x1,4] - ldr x0, [x0,1552] - str wzr, [x0,8] - str wzr, [x0,12] -.L3562: - add x20, x19, :lo12:.LANCHOR5 - mov w0, 0 - ldr x1, [x20,1552] - str wzr, [x1,16] - bl StorageSysDataStore - ldr x0, [x20,1536] - mov w1, 21060 - movk w1, 0x4b4d, lsl 16 - ldr w2, [x0] - cmp w2, w1 - beq .L3563 - mov w1, 21060 - movk w1, 0x4b4d, lsl 16 - str w1, [x0] - mov w1, 504 - ldr x0, [x20,1536] - str w1, [x0,4] - ldr x0, [x20,1536] - str wzr, [x0,8] -.L3563: - add x19, x19, :lo12:.LANCHOR5 - mov w1, 0 - mov x2, 128 - ldr x20, [x19,1536] - add x0, x20, 64 - str wzr, [x20,12] - bl memset - mov w0, 1 - mov x1, x20 - bl StorageSysDataStore - str wzr, [x19,1548] - str wzr, [x19,1544] - b .L3595 -.L3548: - adrp x0, .LC189 - add x0, x0, :lo12:.LC189 - bl printk - add x0, x29, 40 - mov x1, x20 - mov x2, 520 - bl rk_copy_from_user - cbnz x0, .L3560 - ldr w1, [x29,40] - mov w0, 20037 - movk w0, 0x4253, lsl 16 - cmp w1, w0 - bne .L3557 - ldr w0, [x29,44] - cmp w0, 512 - bhi .L3557 - adrp x19, .LANCHOR5 - add x0, x19, :lo12:.LANCHOR5 - ldr w1, [x0,1548] - cmp w1, 1 - beq .L3564 - ldr x0, [x0,1552] - mov w1, 22867 - movk w1, 0x4453, lsl 16 - ldr w2, [x0] - cmp w2, w1 - beq .L3565 - mov w1, 22867 - mov w2, 504 - movk w1, 0x4453, lsl 16 - str w1, [x0] - add x0, x19, :lo12:.LANCHOR5 - ldr x1, [x0,1552] - str w2, [x1,4] - ldr x0, [x0,1552] - str wzr, [x0,8] - str wzr, [x0,12] -.L3565: - add x20, x19, :lo12:.LANCHOR5 - mov w0, 1 - ldr x1, [x20,1552] - str w0, [x1,16] - mov w0, 0 - bl StorageSysDataStore - ldr x0, [x20,1536] - mov w1, 21060 - movk w1, 0x4b4d, lsl 16 - ldr w2, [x0] - cmp w2, w1 - beq .L3566 - mov w1, 21060 - movk w1, 0x4b4d, lsl 16 - str w1, [x0] - mov w1, 504 - ldr x0, [x20,1536] - str w1, [x0,4] - ldr x0, [x20,1536] - str wzr, [x0,8] -.L3566: - add x19, x19, :lo12:.LANCHOR5 - mov w1, 0 - mov x2, 128 - ldr x20, [x19,1536] - add x0, x20, 64 - str wzr, [x20,12] - bl memset - mov w0, 1 - mov x1, x20 - bl StorageSysDataStore - mov w0, 1 - str w0, [x19,1548] - b .L3595 -.L3600: + bne .L3510 adrp x0, .LC190 add x0, x0, :lo12:.LC190 bl printk - add x0, x29, 40 - mov x1, x20 mov x2, 520 + mov x1, x20 + add x0, x29, 40 bl rk_copy_from_user - cbnz x0, .L3560 - ldr w1, [x29,40] + cbnz x0, .L3493 + ldr w1, [x29, 40] mov w0, 20051 movk w0, 0x4144, lsl 16 cmp w1, w0 - bne .L3557 - ldr w2, [x29,44] + bne .L3490 + ldr w2, [x29, 44] cmp w2, 512 - bhi .L3557 - adrp x1, .LANCHOR5 - add x0, x29, 48 - add x1, x1, :lo12:.LANCHOR5 + bhi .L3490 + adrp x1, .LANCHOR4 + add x1, x1, :lo12:.LANCHOR4 uxtw x2, w2 - add x1, x1, 1560 - b .L3598 -.L3542: + add x1, x1, 2080 + add x0, x29, 48 +.L3531: + bl memcpy + b .L3525 +.L3476: + mov w0, 30224 + movk w0, 0x4004, lsl 16 + cmp w1, w0 + beq .L3484 + bhi .L3485 + mov w0, 27698 + movk w0, 0x4004, lsl 16 + cmp w1, w0 + beq .L3475 + add w0, w0, 10 + cmp w1, w0 + bne .L3510 +.L3475: mov w0, 27698 movk w0, 0x4004, lsl 16 cmp w19, w0 - bne .L3568 + bne .L3500 adrp x0, .LC191 add x0, x0, :lo12:.LC191 - b .L3594 -.L3568: - mov w0, 27708 - movk w0, 0x4004, lsl 16 - cmp w19, w0 - bne .L3570 - adrp x0, .LC192 - add x0, x0, :lo12:.LC192 - b .L3594 -.L3570: - adrp x0, .LC193 - add x0, x0, :lo12:.LC193 -.L3594: +.L3527: bl printk - add x0, x29, 40 - mov x1, x20 mov x2, 520 + mov x1, x20 + add x0, x29, 40 bl rk_copy_from_user - cbnz x0, .L3560 - ldr w1, [x29,40] + cbnz x0, .L3493 + ldr w1, [x29, 40] mov w0, 17227 movk w0, 0x4c4f, lsl 16 cmp w1, w0 - bne .L3597 + bne .L3530 mov w0, 27708 movk w0, 0x4004, lsl 16 cmp w19, w0 - adrp x0, .LANCHOR5 - bne .L3571 - add x0, x0, :lo12:.LANCHOR5 - add x1, x29, 40 + adrp x0, .LANCHOR4 + bne .L3503 + add x0, x0, :lo12:.LANCHOR4 mov x2, 16 - ldr x0, [x0,1536] - ldr w0, [x0,20] - str w0, [x29,44] - strb w0, [x29,48] + add x1, x29, 40 + ldr x0, [x0, 2056] + ldr w0, [x0, 20] + strb w0, [x29, 48] + str w0, [x29, 44] mov x0, x20 bl rk_copy_to_user - cbz x0, .L3541 - b .L3597 -.L3571: - add x20, x0, :lo12:.LANCHOR5 - ldr w1, [x20,2072] - cmp w1, 10 - bhi .L3597 - ldr x1, [x20,1536] - ldr w2, [x29,44] - ldr w3, [x1,24] - cmp w3, w2 - beq .L3572 - cbz w3, .L3572 - adrp x0, .LC194 - mov w1, w2 - add x0, x0, :lo12:.LC194 - bl printk - ldr w0, [x20,2072] - add w0, w0, 1 - str w0, [x20,2072] -.L3597: - mov x0, -14 - b .L3541 -.L3572: - add x0, x0, :lo12:.LANCHOR5 - str wzr, [x0,2072] - mov w0, 27698 + cbnz x0, .L3530 +.L3494: + mov x19, 0 +.L3473: + mov x0, x19 + ldp x19, x20, [sp, 16] + ldp x29, x30, [sp] + add sp, sp, 560 + ret +.L3485: + mov w0, 30226 movk w0, 0x4004, lsl 16 - cmp w19, w0 - bne .L3573 - str wzr, [x1,20] - str wzr, [x1,24] - b .L3574 -.L3573: - mov w0, 1 - str w2, [x1,24] - str w0, [x1,20] -.L3574: - mov w0, 1 - mov x19, -2 - bl StorageSysDataStore - cmn w0, #1 - bne .L3595 - b .L3556 -.L3551: - adrp x0, .LC195 - add x0, x0, :lo12:.LC195 - bl printk - add x0, x29, 40 - mov x1, x20 - mov x2, 520 - bl rk_copy_from_user - cbnz x0, .L3560 - ldr w1, [x29,40] - mov w0, 17750 - movk w0, 0x444e, lsl 16 cmp w1, w0 - bne .L3557 - ldr w2, [x29,44] - cmp w2, 504 - bhi .L3557 - mov w0, 30224 - adrp x1, .LANCHOR5 - movk w0, 0x4004, lsl 16 - uxtw x2, w2 - cmp w19, w0 - add x1, x1, :lo12:.LANCHOR5 - add x0, x29, 48 - bne .L3575 - ldr x1, [x1,2080] - b .L3599 -.L3575: - ldr x1, [x1,2088] -.L3599: - add x1, x1, 8 -.L3598: - bl memcpy - b .L3592 -.L3553: + beq .L3484 + bcc .L3486 + add w0, w0, 1 + cmp w1, w0 + bne .L3510 +.L3486: adrp x0, .LC196 add x0, x0, :lo12:.LC196 bl printk - add x0, x29, 40 - mov x1, x20 mov x2, 520 + mov x1, x20 + add x0, x29, 40 bl rk_copy_from_user - cbnz x0, .L3560 - ldr w1, [x29,40] + cbnz x0, .L3493 + ldr w1, [x29, 40] mov w0, 17750 movk w0, 0x444e, lsl 16 cmp w1, w0 - bne .L3557 - ldr w2, [x29,44] + bne .L3490 + ldr w2, [x29, 44] cmp w2, 504 - bhi .L3557 + bhi .L3490 mov w0, 30225 add w2, w2, 8 movk w0, 0x4004, lsl 16 - cmp w19, w0 - adrp x19, .LANCHOR5 - add x19, x19, :lo12:.LANCHOR5 - bne .L3577 - ldr x0, [x19,2080] add x1, x29, 40 + cmp w19, w0 + adrp x19, .LANCHOR4 + add x19, x19, :lo12:.LANCHOR4 + bne .L3509 + ldr x0, [x19, 2600] bl memcpy mov w0, 2 - ldr x1, [x19,2080] - b .L3596 -.L3577: - ldr x0, [x19,2088] - add x1, x29, 40 - bl memcpy - ldr x1, [x19,2088] - mov w0, 3 -.L3596: - bl StorageSysDataStore - uxtw x19, w0 - b .L3556 -.L3546: - bl rknand_dev_flush -.L3595: - mov x19, 0 -.L3556: - adrp x0, .LC197 + ldr x1, [x19, 2600] + b .L3529 +.L3480: + adrp x0, .LC185 + add x0, x0, :lo12:.LC185 + bl printk + mov x2, 520 + mov x1, x20 + add x0, x29, 40 + bl rk_copy_from_user + cbz x0, .L3487 +.L3493: + adrp x0, .LC186 + add x0, x0, :lo12:.LC186 + bl printk +.L3530: + mov x19, -14 + b .L3473 +.L3487: + ldr w1, [x29, 40] + mov w0, 21060 + movk w0, 0x4b4d, lsl 16 + cmp w1, w0 + beq .L3488 +.L3490: + mov x19, -1 +.L3489: mov x1, x19 + adrp x0, .LC197 add x0, x0, :lo12:.LC197 bl printk - mov x0, x19 - b .L3541 -.L3578: - mov x0, -22 -.L3541: - ldp x19, x20, [sp,16] - ldp x29, x30, [sp], 32 - add sp, sp, 528 - ret + b .L3473 +.L3488: + ldr w0, [x29, 44] + cmp w0, 512 + bhi .L3490 + adrp x19, .LANCHOR4 + add x19, x19, :lo12:.LANCHOR4 + mov x2, 512 + add x0, x29, 40 + ldr x1, [x19, 2056] + bl memcpy + ldr w1, [x19, 2064] + mov w0, 5161 + movk w0, 0xc059, lsl 16 + cmp w1, w0 + beq .L3491 + mov x2, 128 + mov w1, 0 + add x0, x29, 104 + stp wzr, wzr, [x29, 48] + bl memset +.L3491: + add x0, x29, 40 + mov x2, 256 + mov w1, 0 + add x0, x0, x2 + str wzr, [x29, 56] + bl memset +.L3525: + mov x2, 520 + add x1, x29, 40 + mov x0, x20 + bl rk_copy_to_user + cbnz x0, .L3530 +.L3528: + mov x19, 0 + b .L3489 +.L3477: + adrp x0, .LC187 + add x0, x0, :lo12:.LC187 + bl printk + mov x2, 520 + mov x1, x20 + add x0, x29, 40 + bl rk_copy_from_user + cbnz x0, .L3493 + ldr w1, [x29, 40] + mov w0, 21060 + movk w0, 0x4b4d, lsl 16 + cmp w1, w0 + bne .L3490 + ldr w0, [x29, 44] + cmp w0, 512 + bhi .L3490 + adrp x0, .LANCHOR4 + add x0, x0, :lo12:.LANCHOR4 + mov w1, 5161 + movk w1, 0xc059, lsl 16 + ldr w2, [x0, 2064] + cmp w2, w1 + bne .L3511 + ldr w1, [x29, 52] + mov x19, -3 + sub w2, w1, #1 + cmp w2, 127 + bhi .L3473 + ldr x19, [x0, 2056] + add x0, x19, 64 + str w1, [x19, 12] + add x1, x29, 104 + ldr w2, [x29, 52] + bl memcpy + mov x1, x19 + mov w0, 1 +.L3529: + bl StorageSysDataStore + uxtw x19, w0 + b .L3489 +.L3482: + adrp x0, .LC188 + add x0, x0, :lo12:.LC188 + bl printk + mov x2, 520 + mov x1, x20 + add x0, x29, 40 + bl rk_copy_from_user + cbnz x0, .L3493 + ldr w1, [x29, 40] + mov w0, 17476 + movk w0, 0x4253, lsl 16 + cmp w1, w0 + bne .L3490 + ldr w0, [x29, 44] + cmp w0, 512 + bhi .L3490 + adrp x19, .LANCHOR4 + add x0, x19, :lo12:.LANCHOR4 + ldr w0, [x0, 2068] + cbz w0, .L3494 + add x0, x19, :lo12:.LANCHOR4 + mov w2, 22867 + movk w2, 0x4453, lsl 16 + ldr x1, [x0, 2072] + ldr w3, [x1] + cmp w3, w2 + beq .L3495 + str w2, [x1] + mov w2, 504 + ldr x1, [x0, 2072] + str w2, [x1, 4] + ldr x0, [x0, 2072] + stp wzr, wzr, [x0, 8] +.L3495: + add x20, x19, :lo12:.LANCHOR4 + mov w0, 0 + ldr x1, [x20, 2072] + str wzr, [x1, 16] + bl StorageSysDataStore + ldr x0, [x20, 2056] + mov w1, 21060 + movk w1, 0x4b4d, lsl 16 + ldr w2, [x0] + cmp w2, w1 + beq .L3496 + str w1, [x0] + mov w1, 504 + ldr x0, [x20, 2056] + str w1, [x0, 4] + ldr x0, [x20, 2056] + str wzr, [x0, 8] +.L3496: + add x19, x19, :lo12:.LANCHOR4 + mov x2, 128 + mov w1, 0 + ldr x20, [x19, 2056] + add x0, x20, 64 + str wzr, [x20, 12] + bl memset + mov x1, x20 + mov w0, 1 + bl StorageSysDataStore + str wzr, [x19, 2064] + str wzr, [x19, 2068] + b .L3528 +.L3481: + adrp x0, .LC189 + add x0, x0, :lo12:.LC189 + bl printk + mov x2, 520 + mov x1, x20 + add x0, x29, 40 + bl rk_copy_from_user + cbnz x0, .L3493 + ldr w1, [x29, 40] + mov w0, 20037 + movk w0, 0x4253, lsl 16 + cmp w1, w0 + bne .L3490 + ldr w0, [x29, 44] + cmp w0, 512 + bhi .L3490 + adrp x19, .LANCHOR4 + add x0, x19, :lo12:.LANCHOR4 + ldr w1, [x0, 2068] + cmp w1, 1 + beq .L3494 + ldr x1, [x0, 2072] + mov w0, 22867 + movk w0, 0x4453, lsl 16 + ldr w2, [x1] + cmp w2, w0 + beq .L3497 + str w0, [x1] + add x0, x19, :lo12:.LANCHOR4 + mov w2, 504 + ldr x1, [x0, 2072] + str w2, [x1, 4] + ldr x0, [x0, 2072] + stp wzr, wzr, [x0, 8] +.L3497: + add x20, x19, :lo12:.LANCHOR4 + mov w0, 1 + ldr x1, [x20, 2072] + str w0, [x1, 16] + mov w0, 0 + bl StorageSysDataStore + ldr x0, [x20, 2056] + mov w1, 21060 + movk w1, 0x4b4d, lsl 16 + ldr w2, [x0] + cmp w2, w1 + beq .L3498 + str w1, [x0] + mov w1, 504 + ldr x0, [x20, 2056] + str w1, [x0, 4] + ldr x0, [x20, 2056] + str wzr, [x0, 8] +.L3498: + add x19, x19, :lo12:.LANCHOR4 + mov x2, 128 + mov w1, 0 + ldr x20, [x19, 2056] + add x0, x20, 64 + str wzr, [x20, 12] + bl memset + mov x1, x20 + mov w0, 1 + bl StorageSysDataStore + mov w0, 1 + str w0, [x19, 2068] + b .L3528 +.L3500: + mov w0, 27708 + movk w0, 0x4004, lsl 16 + cmp w19, w0 + bne .L3502 + adrp x0, .LC192 + add x0, x0, :lo12:.LC192 + b .L3527 +.L3502: + adrp x0, .LC193 + add x0, x0, :lo12:.LC193 + b .L3527 +.L3503: + add x20, x0, :lo12:.LANCHOR4 + ldr w1, [x20, 2592] + cmp w1, 10 + bhi .L3530 + ldr x1, [x20, 2056] + ldr w2, [x29, 44] + ldr w3, [x1, 24] + cmp w3, w2 + beq .L3504 + cbz w3, .L3504 + mov w1, w2 + adrp x0, .LC194 + add x0, x0, :lo12:.LC194 + bl printk + ldr w0, [x20, 2592] + add w0, w0, 1 + str w0, [x20, 2592] + b .L3530 +.L3504: + add x0, x0, :lo12:.LANCHOR4 + str wzr, [x0, 2592] + mov w0, 27698 + movk w0, 0x4004, lsl 16 + cmp w19, w0 + bne .L3505 + stp wzr, wzr, [x1, 20] +.L3506: + mov w0, 1 + bl StorageSysDataStore + cmn w0, #1 + bne .L3528 + mov x19, -2 + b .L3489 +.L3505: + mov w0, 1 + stp w0, w2, [x1, 20] + b .L3506 +.L3484: + adrp x0, .LC195 + add x0, x0, :lo12:.LC195 + bl printk + mov x2, 520 + mov x1, x20 + add x0, x29, 40 + bl rk_copy_from_user + cbnz x0, .L3493 + ldr w1, [x29, 40] + mov w0, 17750 + movk w0, 0x444e, lsl 16 + cmp w1, w0 + bne .L3490 + ldr w2, [x29, 44] + cmp w2, 504 + bhi .L3490 + mov w0, 30224 + adrp x1, .LANCHOR4 + movk w0, 0x4004, lsl 16 + uxtw x2, w2 + cmp w19, w0 + add x1, x1, :lo12:.LANCHOR4 + add x0, x29, 48 + bne .L3507 + ldr x1, [x1, 2600] +.L3532: + add x1, x1, 8 + b .L3531 +.L3507: + ldr x1, [x1, 2608] + b .L3532 +.L3509: + ldr x0, [x19, 2608] + bl memcpy + mov w0, 3 + ldr x1, [x19, 2608] + b .L3529 +.L3479: + bl rknand_dev_flush + b .L3528 +.L3511: + mov x19, -2 + b .L3473 .size rknand_sys_storage_ioctl, .-rknand_sys_storage_ioctl .align 2 .global rk_ftl_storage_sys_init .type rk_ftl_storage_sys_init, %function rk_ftl_storage_sys_init: - stp x29, x30, [sp, -48]! + stp x29, x30, [sp, -32]! mov w0, -1 mov w2, 512 add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x20, .LANCHOR5 - add x19, x20, :lo12:.LANCHOR5 - stp x21, x22, [sp,32] - ldr x1, [x19,1488] - str w0, [x19,1528] + stp x19, x20, [sp, 16] + adrp x20, .LANCHOR4 + add x19, x20, :lo12:.LANCHOR4 + ldr x1, [x19, 2008] + str w0, [x19, 2048] add x0, x1, 512 - str x0, [x19,1536] + str x0, [x19, 2056] add x0, x1, 1024 - str x1, [x19,1552] - str x0, [x19,2080] + str x1, [x19, 2072] + str x0, [x19, 2600] add x1, x1, 1536 - add x0, x19, 1560 - strb wzr, [x19,1512] - str xzr, [x19,1520] - str xzr, [x19,2096] - str x1, [x19,2088] + strb wzr, [x19, 2032] + add x0, x19, 2080 + str xzr, [x19, 2040] + str xzr, [x19, 2616] + str x1, [x19, 2608] bl ftl_memcpy - ldr x21, [x19,1552] - str wzr, [x19,1544] - str wzr, [x19,2072] - ldr w0, [x21,16] - ldr w22, [x21,508] - str w0, [x19,1548] - cbz w22, .L3602 - mov x0, x21 + ldr x6, [x19, 2072] + str wzr, [x19, 2064] + str wzr, [x19, 2592] + ldr w7, [x6, 508] + ldr w0, [x6, 16] + str w0, [x19, 2068] + cbz w7, .L3534 mov w1, 508 + mov x0, x6 bl js_hash - cmp w22, w0 - beq .L3602 + cmp w7, w0 + beq .L3534 + str wzr, [x6, 16] adrp x0, .LC198 - str wzr, [x21,16] + str wzr, [x19, 2068] add x0, x0, :lo12:.LC198 - str wzr, [x19,1548] bl printk -.L3602: - add x0, x20, :lo12:.LANCHOR5 - ldr w1, [x0,1548] - cbz w1, .L3603 +.L3534: + add x0, x20, :lo12:.LANCHOR4 + ldr w1, [x0, 2068] + cbz w1, .L3535 mov w1, 5161 movk w1, 0xc059, lsl 16 - str w1, [x0,1544] -.L3603: - add x20, x20, :lo12:.LANCHOR5 + str w1, [x0, 2064] +.L3535: + add x20, x20, :lo12:.LANCHOR4 mov w0, 2 - ldr x1, [x20,2080] + ldr x1, [x20, 2600] bl StorageSysDataLoad - ldr x1, [x20,2088] + ldr x1, [x20, 2608] mov w0, 3 bl StorageSysDataLoad bl rknand_sys_storage_init - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x29, x30, [sp], 48 + ldp x19, x20, [sp, 16] + ldp x29, x30, [sp], 32 ret .size rk_ftl_storage_sys_init, .-rk_ftl_storage_sys_init .align 2 @@ -23422,375 +22959,374 @@ StorageSysDataDeInit: .global rk_ftl_vendor_storage_init .type rk_ftl_vendor_storage_init, %function rk_ftl_vendor_storage_init: - stp x29, x30, [sp, -64]! + stp x29, x30, [sp, -80]! mov w0, 65536 add x29, sp, 0 - stp x19, x20, [sp,16] - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - adrp x21, .LANCHOR5 + stp x19, x20, [sp, 16] + adrp x19, .LANCHOR4 + add x20, x19, :lo12:.LANCHOR4 + stp x21, x22, [sp, 32] + stp x23, x24, [sp, 48] + stp x25, x26, [sp, 64] bl ftl_malloc - add x1, x21, :lo12:.LANCHOR5 - mov w19, -12 - str x0, [x1,2104] - cbz x0, .L3612 - mov w23, 0 + str x0, [x20, 2624] + cbz x0, .L3550 adrp x24, .LC199 - mov w19, w23 - mov w22, w23 + mov w26, 22084 + mov x22, x19 add x24, x24, :lo12:.LC199 -.L3616: - add x20, x21, :lo12:.LANCHOR5 - lsl w0, w22, 7 + mov w25, 0 + mov w23, 0 + mov w21, 0 + movk w26, 0x524b, lsl 16 +.L3548: + ldr x2, [x20, 2624] mov w1, 128 - ldr x2, [x20,2104] + lsl w0, w21, 7 bl FlashBootVendorRead - cbnz w0, .L3613 - ldr x3, [x20,2104] + cbnz w0, .L3546 + ldr x0, [x20, 2624] + add x1, x0, 61440 + ldr w3, [x0, 4] + ldr w2, [x1, 4092] + ldr w1, [x0] mov x0, x24 - add x2, x3, 61440 - ldr w1, [x3] - ldr w3, [x3,4] - ldr w2, [x2,4092] bl printk - ldr x20, [x20,2104] - mov w0, 22084 - movk w0, 0x524b, lsl 16 - ldr w1, [x20] - cmp w1, w0 - bne .L3614 - ldr w0, [x20,4] - cmp w19, w0 - bcs .L3614 - add x1, x20, 61440 - ldr w1, [x1,4092] - cmp w1, w0 - csel w23, w23, w22, ne - csel w19, w19, w0, ne -.L3614: - cbnz w22, .L3624 - mov w22, 1 - b .L3616 -.L3624: - cbz w19, .L3617 - lsl w0, w23, 7 + ldr x19, [x20, 2624] + ldr w0, [x19] + cmp w0, w26 + bne .L3547 + add x0, x19, 61440 + ldr w1, [x19, 4] + ldr w0, [x0, 4092] + cmp w0, w1 + bne .L3547 + cmp w0, w23 + bls .L3547 + mov w25, w21 + mov w23, w0 +.L3547: + add w21, w21, 1 + cmp w21, 2 + bne .L3548 + cbz w23, .L3549 + mov x2, x19 mov w1, 128 - mov x2, x20 + lsl w0, w25, 7 bl FlashBootVendorRead - mov w19, w0 - cbz w0, .L3612 - b .L3613 -.L3617: - mov x0, x20 - mov w1, w19 - mov x2, 65536 - bl memset - str w22, [x20,4] - mov w0, 22084 - movk w0, 0x524b, lsl 16 - str w0, [x20] - add x0, x20, 61440 - str w22, [x0,4092] - mov w0, -1032 - strh w19, [x20,12] - strh w0, [x20,14] - b .L3612 -.L3613: - add x21, x21, :lo12:.LANCHOR5 - mov w19, -1 - ldr x0, [x21,2104] - bl kfree - str xzr, [x21,2104] -.L3612: - mov w0, w19 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x29, x30, [sp], 64 + cbnz w0, .L3546 +.L3544: + 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 +.L3549: + mov w1, 0 + mov x2, 65536 + mov x0, x19 + bl memset + mov w1, 22084 + mov w0, 1 + movk w1, 0x524b, lsl 16 + stp w1, w0, [x19] + add x1, x19, 61440 + str w0, [x1, 4092] + mov w0, -1032 + strh w0, [x19, 14] + mov w0, 0 + b .L3544 +.L3546: + add x22, x22, :lo12:.LANCHOR4 + ldr x0, [x22, 2624] + bl kfree + str xzr, [x22, 2624] + mov w0, -1 + b .L3544 +.L3550: + mov w0, -12 + b .L3544 .size rk_ftl_vendor_storage_init, .-rk_ftl_vendor_storage_init .align 2 .global rk_ftl_vendor_read .type rk_ftl_vendor_read, %function rk_ftl_vendor_read: - adrp x3, .LANCHOR5+2104 - stp x29, x30, [sp, -32]! - add x29, sp, 0 - ldr x5, [x3,#:lo12:.LANCHOR5+2104] - mov w3, -1 - str x19, [sp,16] - cbz x5, .L3626 - ldrh w3, [x5,10] - mov x4, 0 -.L3627: - cmp w4, w3 - mov w6, w4 - bcs .L3631 - add x7, x5, x4, lsl 3 - add x4, x4, 1 - ldrh w7, [x7,16] + adrp x3, .LANCHOR4+2624 + ldr x4, [x3, #:lo12:.LANCHOR4+2624] + cbz x4, .L3558 + ldrh w6, [x4, 10] + add x5, x4, 16 + mov w3, 0 +.L3555: + cmp w3, w6 + bcc .L3557 +.L3558: + mov w0, -1 + ret +.L3557: + ldrh w7, [x5], 8 cmp w7, w0 - bne .L3627 - add x6, x5, w6, uxtw 3 - ldrh w4, [x6,20] + bne .L3556 + stp x29, x30, [sp, -32]! + add x3, x4, w3, uxtw 3 mov x0, x1 - ldrh w1, [x6,18] - cmp w2, w4 - csel w19, w2, w4, ls + add x29, sp, 0 + str x19, [sp, 16] + ldrh w19, [x3, 20] + ldrh w1, [x3, 18] + cmp w19, w2 + csel w19, w19, w2, ls add x1, x1, 1024 - add x1, x5, x1 uxtw x2, w19 + add x1, x4, x1 bl memcpy - mov w3, w19 - b .L3626 -.L3631: - mov w3, -1 -.L3626: - mov w0, w3 - ldr x19, [sp,16] + mov w0, w19 + ldr x19, [sp, 16] ldp x29, x30, [sp], 32 ret +.L3556: + add w3, w3, 1 + b .L3555 .size rk_ftl_vendor_read, .-rk_ftl_vendor_read .align 2 .global rk_ftl_vendor_write .type rk_ftl_vendor_write, %function rk_ftl_vendor_write: stp x29, x30, [sp, -112]! - mov w6, w0 - adrp x0, .LANCHOR5+2104 + adrp x3, .LANCHOR4+2624 add x29, sp, 0 - stp x19, x20, [sp,16] - ldr x19, [x0,#:lo12:.LANCHOR5+2104] - stp x25, x26, [sp,64] - stp x27, x28, [sp,80] - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - mov w26, w2 + stp x19, x20, [sp, 16] + ldr x19, [x3, #:lo12:.LANCHOR4+2624] + stp x21, x22, [sp, 32] + stp x23, x24, [sp, 48] + stp x25, x26, [sp, 64] + stp x27, x28, [sp, 80] + cbz x19, .L3578 + add w4, w2, 63 + ldrh w3, [x19, 10] + ldrh w24, [x19, 8] mov x28, x1 - mov w2, -1 - cbz x19, .L3633 - add w20, w26, 63 - ldrh w3, [x19,10] - ldrh w23, [x19,8] - and w20, w20, -64 - mov x2, 0 -.L3634: - cmp w2, w3 - mov w4, w2 - bcs .L3649 - add x0, x19, x2, lsl 3 - add x2, x2, 1 - ldrh w0, [x0,16] - cmp w0, w6 - bne .L3634 - add x21, x19, w4, uxtw 3 - ldrh w24, [x21,20] + mov w26, w2 + and w22, w4, -64 + add x1, x19, 16 + mov w20, 0 +.L3565: + cmp w20, w3 + bcc .L3573 + ldrh w1, [x19, 14] + cmp w22, w1 + bhi .L3578 + add x3, x19, w3, uxth 3 + strh w0, [x3, 16] + and w0, w22, 65535 + ldrh w2, [x19, 12] + strh w2, [x3, 18] + strh w26, [x3, 20] + add w2, w2, w0 + sub w0, w1, w0 + strh w2, [x19, 12] + strh w0, [x19, 14] + uxtw x2, w26 + mov x1, x28 + ldrh w0, [x3, 18] + add x0, x0, 1024 + add x0, x19, x0 + bl memcpy + ldrh w0, [x19, 10] + add w0, w0, 1 + strh w0, [x19, 10] + b .L3580 +.L3573: + ldrh w6, [x1], 8 + cmp w6, w0 + bne .L3566 + uxtw x23, w20 add x5, x19, 1024 - add w24, w24, 63 - and w24, w24, -64 - cmp w26, w24 - bls .L3635 - ldrh w0, [x19,14] - mov w2, -1 - cmp w0, w20 - bcc .L3633 - ldrh w21, [x21,18] - add w22, w3, w2 -.L3636: - cmp w4, w22 - uxtw x3, w4 - bcs .L3650 - add x3, x19, x3, lsl 3 - add w25, w4, 1 - add x1, x19, w25, uxtw 3 - ldrh w0, [x1,16] - str x6, [x29,96] - strh w0, [x3,16] - str x5, [x29,104] - ldrh w0, [x1,20] - strh w0, [x3,20] - strh w21, [x3,18] + add x21, x19, x23, lsl 3 + ldrh w25, [x21, 20] + add w25, w25, 63 + and w25, w25, -64 + cmp w26, w25 + bls .L3567 + ldrh w0, [x19, 14] + cmp w22, w0 + bhi .L3578 + add x23, x23, 2 + ldrh w21, [x21, 18] + add x23, x19, x23, lsl 3 + sub w3, w3, #1 +.L3568: + cmp w20, w3 + bcc .L3569 + add x20, x19, w20, uxtw 3 + and w21, w21, 65535 + add x0, x5, w21, uxth + uxtw x2, w26 + mov x1, x28 + strh w21, [x20, 18] + strh w6, [x20, 16] + strh w26, [x20, 20] + bl memcpy + ldrh w0, [x19, 14] + and w4, w22, 65535 + add w21, w21, w4 + strh w21, [x19, 12] + sub w0, w0, w4 + add w25, w0, w25 + strh w25, [x19, 14] +.L3580: + ldr w0, [x19, 4] + add x1, x19, 61440 + mov x2, x19 + add w0, w0, 1 + str w0, [x19, 4] + str w0, [x1, 4092] + mov w1, 128 + ldrh w0, [x19, 8] + add w0, w0, 1 + and w0, w0, 65535 + cmp w0, 1 + csel w0, w0, wzr, ls + strh w0, [x19, 8] + lsl w0, w24, 7 + bl FlashBootVendorWrite + mov w0, 0 +.L3563: + 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 +.L3569: + add w20, w20, 1 + stp w3, w6, [x29, 96] + add x0, x19, w20, uxtw 3 + str x5, [x29, 104] + add x23, x23, 8 + ldrh w1, [x0, 16] + strh w1, [x23, -8] + ldrh w1, [x0, 20] + strh w1, [x23, -4] + strh w21, [x23, -6] + ldrh w27, [x0, 20] + ldrh w1, [x0, 18] add x0, x5, w21, uxtw - ldrh w27, [x1,20] - ldrh w1, [x1,18] add w27, w27, 63 and w27, w27, -64 add x1, x5, x1 and x2, x27, 131008 + bl memcpy add w21, w21, w27 - bl memcpy - mov w4, w25 - ldr x6, [x29,96] - ldr x5, [x29,104] - b .L3636 -.L3650: - add x3, x19, x3, lsl 3 - uxth w21, w21 - mov x1, x28 + ldr x5, [x29, 104] + ldp w3, w6, [x29, 96] + b .L3568 +.L3567: + ldrh w0, [x21, 18] uxtw x2, w26 - add x0, x5, w21, uxth - uxth w20, w20 - strh w21, [x3,18] - add w21, w21, w20 - strh w6, [x3,16] - strh w26, [x3,20] - bl memcpy - strh w21, [x19,12] - ldrh w0, [x19,14] - add w24, w24, w0 - sub w24, w24, w20 - strh w24, [x19,14] - b .L3648 -.L3635: - ldrh w0, [x21,18] mov x1, x28 - uxtw x2, w26 add x0, x5, x0 bl memcpy - strh w26, [x21,20] - b .L3648 -.L3649: - ldrh w4, [x19,14] - mov w2, -1 - cmp w4, w20 - bcc .L3633 - add x3, x19, w3, uxth 3 - strh w6, [x3,16] - uxth w20, w20 - mov x1, x28 - ldrh w0, [x19,12] - uxtw x2, w26 - strh w0, [x3,18] - strh w26, [x3,20] - add w0, w20, w0 - sub w20, w4, w20 - strh w0, [x19,12] - strh w20, [x19,14] - ldrh w0, [x3,18] - add x0, x0, 1024 - add x0, x19, x0 - bl memcpy - ldrh w0, [x19,10] - add w0, w0, 1 - strh w0, [x19,10] -.L3648: - ldr w0, [x19,4] - add x1, x19, 61440 - mov x2, x19 - add w0, w0, 1 - str w0, [x19,4] - str w0, [x1,4092] - mov w1, 128 - ldrh w0, [x19,8] - add w0, w0, 1 - uxth w0, w0 - cmp w0, 1 - csel w0, w0, wzr, ls - strh w0, [x19,8] - lsl w0, w23, 7 - bl FlashBootVendorWrite - mov w2, 0 -.L3633: - mov w0, w2 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 112 - ret + strh w26, [x21, 20] + b .L3580 +.L3566: + add w20, w20, 1 + b .L3565 +.L3578: + mov w0, -1 + b .L3563 .size rk_ftl_vendor_write, .-rk_ftl_vendor_write .align 2 .global rk_ftl_vendor_storage_ioctl .type rk_ftl_vendor_storage_ioctl, %function rk_ftl_vendor_storage_ioctl: - stp x29, x30, [sp, -64]! + stp x29, x30, [sp, -48]! mov w0, 4096 add x29, sp, 0 - stp x19, x20, [sp,16] - str x21, [sp,32] - mov x20, -1 - str x1, [x29,56] - mov x21, x2 + stp x19, x20, [sp, 16] + mov x20, x2 + str x21, [sp, 32] + mov w21, w1 bl ftl_malloc + cbz x0, .L3589 + mov w1, 30209 mov x19, x0 - cbz x0, .L3652 - mov w2, 30209 - ldr x1, [x29,56] - movk w2, 0x4004, lsl 16 - cmp w1, w2 - beq .L3654 - mov w2, 30210 - movk w2, 0x4004, lsl 16 - cmp w1, w2 - beq .L3655 - b .L3666 -.L3654: - mov x1, x21 + movk w1, 0x4004, lsl 16 + cmp w21, w1 + beq .L3584 + add w1, w1, 1 + cmp w21, w1 + beq .L3585 +.L3595: + mov x20, -14 + b .L3583 +.L3584: mov x2, 8 + mov x1, x20 bl rk_copy_from_user - cbnz x0, .L3666 + cbnz x0, .L3595 ldr w1, [x19] mov w0, 17745 movk w0, 0x5652, lsl 16 cmp w1, w0 - beq .L3657 -.L3658: + beq .L3587 +.L3588: mov x20, -1 - b .L3653 -.L3657: - ldrh w0, [x19,4] - add x1, x19, 8 - ldrh w2, [x19,6] - bl rk_ftl_vendor_read - cmn w0, #1 - beq .L3658 - uxth x2, w0 - strh w0, [x19,6] - mov x1, x19 - mov x0, x21 - add x2, x2, 8 - mov x20, -14 - bl rk_copy_to_user - cmp x0, xzr - csel x20, xzr, x20, eq - b .L3653 -.L3655: - mov x1, x21 - mov x2, 8 - bl rk_copy_from_user - cbnz x0, .L3666 - ldr w1, [x19] - mov w0, 17745 - movk w0, 0x5652, lsl 16 - cmp w1, w0 - bne .L3658 - ldrh w3, [x19,6] - cmp w3, 4087 - bhi .L3658 - add w2, w3, 8 - mov x0, x19 - mov x1, x21 - sxtw x2, w2 - bl rk_copy_from_user - cbnz x0, .L3666 - ldrh w0, [x19,4] - add x1, x19, 8 - ldrh w2, [x19,6] - bl rk_ftl_vendor_write - sxtw x20, w0 - b .L3653 -.L3666: - mov x20, -14 -.L3653: +.L3583: mov x0, x19 bl kfree -.L3652: +.L3581: mov x0, x20 - ldr x21, [sp,32] - ldp x19, x20, [sp,16] - ldp x29, x30, [sp], 64 + ldr x21, [sp, 32] + ldp x19, x20, [sp, 16] + ldp x29, x30, [sp], 48 ret +.L3587: + ldrh w2, [x19, 6] + add x1, x19, 8 + ldrh w0, [x19, 4] + bl rk_ftl_vendor_read + cmn w0, #1 + beq .L3588 + strh w0, [x19, 6] + and x0, x0, 65535 + add x2, x0, 8 + mov x1, x19 + mov x0, x20 + bl rk_copy_to_user + cbnz x0, .L3595 + mov x20, 0 + b .L3583 +.L3585: + mov x2, 8 + mov x1, x20 + bl rk_copy_from_user + cbnz x0, .L3595 + ldr w1, [x19] + mov w0, 17745 + movk w0, 0x5652, lsl 16 + cmp w1, w0 + bne .L3588 + ldrh w2, [x19, 6] + cmp w2, 4087 + bhi .L3588 + add w2, w2, 8 + mov x1, x20 + sxtw x2, w2 + mov x0, x19 + bl rk_copy_from_user + cbnz x0, .L3595 + ldrh w2, [x19, 6] + add x1, x19, 8 + ldrh w0, [x19, 4] + bl rk_ftl_vendor_write + sxtw x20, w0 + b .L3583 +.L3589: + mov x20, -1 + b .L3581 .size rk_ftl_vendor_storage_ioctl, .-rk_ftl_vendor_storage_ioctl .global SecureBootUnlockTryCount .global SecureBootCheckOK @@ -23801,6 +23337,8 @@ rk_ftl_vendor_storage_ioctl: .global gSnSectorData .global gpDrmKeyInfo .global gpBootConfig + .global ftl_dma32_buffer_size + .global ftl_dma32_buffer .global gLoaderBootInfo .global RK29_NANDC1_REG_BASE .global RK29_NANDC_REG_BASE @@ -24037,10 +23575,10 @@ rk_ftl_vendor_storage_ioctl: .global read_retry_cur_offset .section .rodata .align 3 -.LANCHOR3 = . + 0 - .type __func__.20995, %object - .size __func__.20995, 11 -__func__.20995: + .set .LANCHOR3,. + 0 + .type __func__.27063, %object + .size __func__.27063, 11 +__func__.27063: .string "FtlMemInit" .zero 5 .type samsung_14nm_slc_rr, %object @@ -24180,438 +23718,37 @@ samsung_14nm_mlc_rr: .byte 18 .byte 9 .byte 8 - .type __func__.21774, %object - .size __func__.21774, 17 -__func__.21774: + .type __func__.27842, %object + .size __func__.27842, 17 +__func__.27842: .string "FtlDumpBlockInfo" .zero 7 - .type __func__.21793, %object - .size __func__.21793, 16 -__func__.21793: + .type __func__.27861, %object + .size __func__.27861, 16 +__func__.27861: .string "FtlScanAllBlock" - .type __func__.22061, %object - .size __func__.22061, 17 -__func__.22061: + .type __func__.28129, %object + .size __func__.28129, 17 +__func__.28129: .string "ftl_scan_all_ppa" .zero 7 - .type __func__.21742, %object - .size __func__.21742, 12 -__func__.21742: + .type __func__.27810, %object + .size __func__.27810, 12 +__func__.27810: .string "FtlCheckVpc" .zero 4 - .type __func__.22041, %object - .size __func__.22041, 21 -__func__.22041: + .type __func__.28109, %object + .size __func__.28109, 21 +__func__.28109: .string "FtlVpcCheckAndModify" .zero 3 - .type __func__.21068, %object - .size __func__.21068, 8 -__func__.21068: + .type __func__.27136, %object + .size __func__.27136, 8 +__func__.27136: .string "FtlInit" - .section .rodata.str1.1,"aMS",%progbits,1 -.LC0: - .string "FlashEraseBlocks pageAddr error %x\n" -.LC1: - .string "phyBlk = 0x%x die = %d block_in_die = 0x%x 0x%8x\n" -.LC2: - .string "FtlFreeSysBlkQueueOut free count = %d\n" -.LC3: - .string "FtlFreeSysBlkQueueOut = %x, free count = %d, error\n" -.LC4: - .string "FtlFreeSysBlkQueueOut = %x, free count = %d\n" -.LC5: - .string "FLASH INFO:\n" -.LC6: - .string "FLASH ID: %x\n" -.LC7: - .string "Device Capacity: %d MB\n" -.LC8: - .string "FMWAIT: %x %x %x %x\n" -.LC9: - .string "FTL INFO:\n" -.LC10: - .string "g_MaxLpn = 0x%x\n" -.LC11: - .string "g_VaildLpn = 0x%x\n" -.LC12: - .string "read_page_count = 0x%x\n" -.LC13: - .string "discard_page_count = 0x%x\n" -.LC14: - .string "write_page_count = 0x%x\n" -.LC15: - .string "cache_write_count = 0x%x\n" -.LC16: - .string "l2p_write_count = 0x%x\n" -.LC17: - .string "gc_page_count = 0x%x\n" -.LC18: - .string "totle_write = %d MB\n" -.LC19: - .string "totle_read = %d MB\n" -.LC20: - .string "GSV = 0x%x\n" -.LC21: - .string "GDV = 0x%x\n" -.LC22: - .string "bad blk num = %d %d\n" -.LC23: - .string "free_superblocks = 0x%x\n" -.LC24: - .string "mlc_EC = 0x%x\n" -.LC25: - .string "slc_EC = 0x%x\n" -.LC26: - .string "avg_EC = 0x%x\n" -.LC27: - .string "sys_EC = 0x%x\n" -.LC28: - .string "max_EC = 0x%x\n" -.LC29: - .string "min_EC = 0x%x\n" -.LC30: - .string "PLT = 0x%x\n" -.LC31: - .string "POT = 0x%x\n" -.LC32: - .string "MaxSector = 0x%x\n" -.LC33: - .string "init_sys_blks_pp = 0x%x\n" -.LC34: - .string "sys_blks_pp = 0x%x\n" -.LC35: - .string "free sysblock = 0x%x\n" -.LC36: - .string "data_blks_pp = 0x%x\n" -.LC37: - .string "data_op_blks_pp = 0x%x\n" -.LC38: - .string "max_data_blks = 0x%x\n" -.LC39: - .string "Sys.id = 0x%x\n" -.LC40: - .string "Bbt.id = 0x%x\n" -.LC41: - .string "ACT.page = 0x%x\n" -.LC42: - .string "ACT.plane = 0x%x\n" -.LC43: - .string "ACT.id = 0x%x\n" -.LC44: - .string "ACT.mode = 0x%x\n" -.LC45: - .string "ACT.a_pages = 0x%x\n" -.LC46: - .string "ACT VPC = 0x%x\n" -.LC47: - .string "BUF.page = 0x%x\n" -.LC48: - .string "BUF.plane = 0x%x\n" -.LC49: - .string "BUF.id = 0x%x\n" -.LC50: - .string "BUF.mode = 0x%x\n" -.LC51: - .string "BUF.a_pages = 0x%x\n" -.LC52: - .string "BUF VPC = 0x%x\n" -.LC53: - .string "TMP.page = 0x%x\n" -.LC54: - .string "TMP.plane = 0x%x\n" -.LC55: - .string "TMP.id = 0x%x\n" -.LC56: - .string "TMP.mode = 0x%x\n" -.LC57: - .string "TMP.a_pages = 0x%x\n" -.LC58: - .string "GC.page = 0x%x\n" -.LC59: - .string "GC.plane = 0x%x\n" -.LC60: - .string "GC.id = 0x%x\n" -.LC61: - .string "GC.mode = 0x%x\n" -.LC62: - .string "GC.a_pages = 0x%x\n" -.LC63: - .string "WR_CHK = 0x%x %x %x %x\n" -.LC64: - .string "Read Err = 0x%x\n" -.LC65: - .string "Prog Err = 0x%x\n" -.LC66: - .string "gc_free_blk_th= 0x%x\n" -.LC67: - .string "gc_merge_free_blk_th= 0x%x\n" -.LC68: - .string "gc_skip_write_count= 0x%x\n" -.LC69: - .string "gc_blk_index= 0x%x\n" -.LC70: - .string "free min EC= 0x%x\n" -.LC71: - .string "free max EC= 0x%x\n" -.LC72: - .string "GC__SB VPC = 0x%x\n" -.LC73: - .string "%d. [0x%x]=0x%x 0x%x 0x%x\n" -.LC74: - .string "free %d. [0x%x] 0x%x 0x%x\n" -.LC75: - .string "%s\n" -.LC76: - .string "FTL version: 5.0.63 20200923" -.LC77: - .string "swblk %x ,avg = %x max= %x vpc= %x,ec=%x ,max ec=%x\n" -.LC78: - .string "FtlGcRefreshBlock 0x%x\n" -.LC79: - .string "FtlGcMarkBadPhyBlk %d 0x%x\n" -.LC80: - .string "%s error allocating memory. return -1\n" -.LC81: - .string "%s %p:0x%x:" -.LC82: - .string "%x " -.LC83: - .string "" -.LC84: - .string "otp error! %d" -.LC85: - .string "rr" -.LC86: - .string "%d statReg->V6.mtrans_cnt=%d flReg.V6.page_num=%d\n" -.LC87: - .string "nandc:" -.LC88: - .string "%d flReg.d32=%x %x\n" -.LC89: - .string "sdr read ok %x ecc=%d\n" -.LC90: - .string "sync para %d\n" -.LC91: - .string "TOG mode Read error %x %x\n" -.LC92: - .string "read retry status %x %x %x\n" -.LC93: - .string "micron RR %d row=%x,count %d,status=%d\n" -.LC94: - .string "samsung RR %d row=%x,count %d,status=%d\n" -.LC95: - .string "ECC:%d\n" -.LC96: - .string "No.%d FLASH ID:%x %x %x %x %x %x\n" -.LC97: - .string "FlashLoadPhyInfo fail %x!!\n" -.LC98: - .string "Read pageadd=%x ecc=%x err=%x\n" -.LC99: - .string "data:" -.LC100: - .string "spare:" -.LC101: - .string "ReadRetry pageadd=%x ecc=%x err=%x\n" -.LC102: - .string "FLFB:%d %d\n" -.LC103: - .string "prog error: = %x\n" -.LC104: - .string "prog read error: = %x\n" -.LC105: - .string "prog read REFRESH: = %x\n" -.LC106: - .string "prog read s error: = %x %x %x\n" -.LC107: - .string "prog read d error: = %x %x %x\n" -.LC108: - .string "id = %x,%x addr= %x,spare= %x %x %x %x data= %x\n" -.LC109: - .string "...%s enter...\n" -.LC110: - .string "superBlkID = %x vpc=%x\n" -.LC111: - .string "flashmode = %x pagenum = %x %x\n" -.LC112: - .string "id = %x,%x addr= %x,spare= %x %x %x %x data=%x %x\n" -.LC113: - .string "blk = %x vpc=%x mode = %x\n" -.LC114: - .string "mlc id = %x,%x addr= %x,spare= %x %x %x %x data=%x %x\n" -.LC115: - .string "slc id = %x,%x addr= %x,spare= %x %x %x %x data=%x %x\n" -.LC116: - .string "ftl_scan_all_ppa blk %x page %x flag: %x\n" -.LC117: - .string "ftl_scan_all_ppa blk %x page %x flag: %x ............... is bad block\n" -.LC118: - .string "addr= %x, status= %d,spare= %x %x %x %x data=%x %x\n" -.LC119: - .string "%s finished\n" -.LC120: - .string "FlashMakeFactorBbt %d\n" -.LC121: - .string "bad block:%d %d\n" -.LC122: - .string "FMFB:%d %d\n" -.LC123: - .string "E:bad block:%d\n" -.LC124: - .string "FMFB:Save %d %d\n" -.LC125: - .string "FtlBbmTblFlush id=%x,page=%x,previd=%x cnt=%d\n" -.LC126: - .string "FtlBbmTblFlush error:%x\n" -.LC127: - .string "FtlBbmTblFlush error = %x error count = %d\n" -.LC128: - .string "FtlGcFreeBadSuperBlk 0x%x\n" -.LC129: - .string "decrement_vpc_count %x = %d\n" -.LC130: - .string "decrement_vpc_count %x = %d in free list\n" -.LC131: - .string "FtlVpcTblFlush error = %x error count = %d\n" -.LC132: - .string "page map lost: %x %x\n" -.LC133: - .string "FtlMapWritePage error = %x\n" -.LC134: - .string "FtlMapWritePage error = %x error count = %d\n" -.LC135: - .string "FtlVendorPartRead refresh = %x phyAddr = %x\n" -.LC136: - .string "no ect" -.LC137: - .string "slc mode" -.LC138: - .string "BBT:" -.LC139: - .string "region_id = %x phyAddr = %x\n" -.LC140: - .string "map_ppn:" -.LC141: - .string "load_l2p_region refresh = %x phyAddr = %x\n" -.LC142: - .string "FtlCheckVpc2 %x = %x %x\n" -.LC143: - .string "free blk vpc error %x = %x %x\n" -.LC144: - .string "error_flag %x\n" -.LC145: - .string "Ftlscanalldata = %x\n" -.LC146: - .string "scan lpa = %x ppa= %x\n" -.LC147: - .string "lba = %x,addr= %x,spare= %x %x %x %x data=%x %x\n" -.LC148: - .string "RSB refresh addr %x\n" -.LC149: - .string "spuer block %x vpn is 0\n " -.LC150: - .string "g_recovery_ppa %x ver %x\n " -.LC151: - .string "FtlCheckVpc %x = %x %x\n" -.LC152: - .string "FtlGcScanTempBlk Error ID %x %x!!!!!!! \n" -.LC153: - .string "FtlGcScanTempBlkError ID %x %x!!!!!!!\n" -.LC154: - .string "GC des block %x done\n" -.LC155: - .string "too many bad block = %d %d\n" -.LC156: - .string "%d GC datablk = %x vpc %x %x\n" -.LC157: - .string "SWL %x, FSB = %x vpc= %x,ec=%x th=%x\n" -.LC158: - .string "Ftlwrite decrement_vpc_count %x = %d\n" -.LC159: - .string "rk_ftl_de_init %x\n" -.LC160: - .string "...%s: no bad block mapping table, format device\n" -.LC161: - .string "...%s FtlSysBlkInit error ,format device!\n" -.LC162: - .string "FtlInit %x\n" -.LC163: - .string "fix power lost blk = %x vpc=%x\n" -.LC164: - .string "erase power lost blk = %x vpc=%x\n" -.LC165: - .string "FtlWrite: lpa error:%x %x\n" -.LC166: - .string "id = %x,%x addr= %x,spare= %x %x %x %x data = %x\n" -.LC167: - .string ":" -.LC168: - .string "phyBlk = %x,addr= %x,spare= %x %x %x %x data=%x %x\n" -.LC169: - .string "Mblk:" -.LC170: - .string "L2P:" -.LC171: - .string "L2PC:" -.LC172: - .string "write_idblock fix data %x %x\n" -.LC173: - .string "idblk:" -.LC174: - .string "idb reverse %x %x\n" -.LC175: - .string "write_idblock totle_sec %x %x %x %x\n" -.LC176: - .string "IDBlockWriteData %x %x\n" -.LC177: - .string "IDBlockWriteData %x %x ret= %x\n" -.LC178: - .string "IdBlockReadData %x %x\n" -.LC179: - .string "IdBlockReadData %x %x ret= %x\n" -.LC180: - .string "write and check error:%d idb=%x,offset=%x,r=%x,w=%x\n" -.LC181: - .string "write" -.LC182: - .string "read" -.LC183: - .string "write_idblock error %d\n" -.LC184: - .string "wl_lba %p %x %x %x\n" -.LC185: - .string "RKNAND_GET_DRM_KEY\n" -.LC186: - .string "rk_copy_from_user error\n" -.LC187: - .string "RKNAND_STORE_DRM_KEY\n" -.LC188: - .string "RKNAND_DIASBLE_SECURE_BOOT\n" -.LC189: - .string "RKNAND_ENASBLE_SECURE_BOOT\n" -.LC190: - .string "RKNAND_GET_SN_SECTOR\n" -.LC191: - .string "RKNAND_LOADER_UNLOCK\n" -.LC192: - .string "RKNAND_LOADER_STATUS\n" -.LC193: - .string "RKNAND_LOADER_LOCK\n" -.LC194: - .string "LockKey not match %d\n" -.LC195: - .string "RKNAND_GET_VENDOR_SECTOR\n" -.LC196: - .string "RKNAND_STORE_VENDOR_SECTOR\n" -.LC197: - .string "return ret = %lx\n" -.LC198: - .string "secureBootEn check error\n" -.LC199: - .string "\0013vendor storage %x,%x,%x\n" .data .align 3 -.LANCHOR1 = . + 0 + .set .LANCHOR1,. + 0 .type random_seed, %object .size random_seed, 256 random_seed: @@ -24743,55 +23880,6 @@ 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: @@ -24891,6 +23979,55 @@ Toshiba15RefValue: .byte 114 .byte 0 .zero 1 + .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 ToshibaRefValue, %object .size ToshibaRefValue, 8 ToshibaRefValue: @@ -27389,18 +26526,17 @@ power_up_flag: .word 1 .bss .align 3 -.LANCHOR0 = . + 0 -.LANCHOR2 = . + 4352 -.LANCHOR4 = . + 8704 -.LANCHOR5 = . + 17408 - .type p_blk_mode_table, %object - .size p_blk_mode_table, 8 -p_blk_mode_table: - .zero 8 + .set .LANCHOR0,. + 0 + .set .LANCHOR2,. + 4352 + .set .LANCHOR4,. + 8704 .type gNandChipMap, %object .size gNandChipMap, 64 gNandChipMap: .zero 64 + .type p_blk_mode_table, %object + .size p_blk_mode_table, 8 +p_blk_mode_table: + .zero 8 .type g_slc2KBNand, %object .size g_slc2KBNand, 1 g_slc2KBNand: @@ -27898,15 +27034,14 @@ gSysInfo: .size g_gc_superblock, 48 g_gc_superblock: .zero 48 - .type g_all_blk_used_slc_mode, %object - .size g_all_blk_used_slc_mode, 4 -g_all_blk_used_slc_mode: - .zero 4 - .zero 4 .type g_sys_ext_data, %object .size g_sys_ext_data, 512 g_sys_ext_data: .zero 512 + .type g_all_blk_used_slc_mode, %object + .size g_all_blk_used_slc_mode, 4 +g_all_blk_used_slc_mode: + .zero 4 .type g_gc_free_blk_threshold, %object .size g_gc_free_blk_threshold, 2 g_gc_free_blk_threshold: @@ -27931,7 +27066,6 @@ g_in_swl_replace: .type g_gc_num_req, %object .size g_gc_num_req, 4 g_gc_num_req: - .zero 4 .zero 4 .type gp_gc_page_buf_info, %object .size gp_gc_page_buf_info, 8 @@ -28190,6 +27324,15 @@ gNandIDataBuf: .type RK29_NANDC_REG_BASE, %object .size RK29_NANDC_REG_BASE, 8 RK29_NANDC_REG_BASE: + .zero 8 + .type ftl_dma32_buffer_size, %object + .size ftl_dma32_buffer_size, 4 +ftl_dma32_buffer_size: + .zero 4 + .zero 4 + .type ftl_dma32_buffer, %object + .size ftl_dma32_buffer, 8 +ftl_dma32_buffer: .zero 8 .type gFlashPageBuffer0, %object .size gFlashPageBuffer0, 8 @@ -28275,11 +27418,6 @@ gVendorBlkInfo: .size g_ect_tbl_power_up_flush, 2 g_ect_tbl_power_up_flush: .zero 2 - .zero 6 - .type check_valid_page_count_table, %object - .size check_valid_page_count_table, 8192 -check_valid_page_count_table: - .zero 8192 .type g_power_lost_ecc_error_blk, %object .size g_power_lost_ecc_error_blk, 2 g_power_lost_ecc_error_blk: @@ -28287,10 +27425,12 @@ g_power_lost_ecc_error_blk: .type g_power_lost_recovery_flag, %object .size g_power_lost_recovery_flag, 2 g_power_lost_recovery_flag: + .zero 2 .zero 2 .type g_recovery_page_num, %object .size g_recovery_page_num, 4 g_recovery_page_num: + .zero 4 .zero 4 .type g_recovery_ppa_tbl, %object .size g_recovery_ppa_tbl, 128 @@ -28392,6 +27532,10 @@ g_idb_buffer: .size g_vendor, 8 g_vendor: .zero 8 + .type check_valid_page_count_table, %object + .size check_valid_page_count_table, 8192 +check_valid_page_count_table: + .zero 8192 .type g_gc_refresh_block_temp_tbl, %object .size g_gc_refresh_block_temp_tbl, 34 g_gc_refresh_block_temp_tbl: @@ -28421,3 +27565,404 @@ gFlashOnfiModeEn: .size gFlashSdrModeEn, 1 gFlashSdrModeEn: .zero 1 + .section .rodata.str1.1,"aMS",@progbits,1 +.LC0: + .string "FlashEraseBlocks pageAddr error %x\n" +.LC1: + .string "phyBlk = 0x%x die = %d block_in_die = 0x%x 0x%8x\n" +.LC2: + .string "FtlFreeSysBlkQueueOut free count = %d\n" +.LC3: + .string "FtlFreeSysBlkQueueOut = %x, free count = %d, error\n" +.LC4: + .string "FtlFreeSysBlkQueueOut = %x, free count = %d\n" +.LC5: + .string "FLASH INFO:\n" +.LC6: + .string "FLASH ID: %x\n" +.LC7: + .string "Device Capacity: %d MB\n" +.LC8: + .string "FMWAIT: %x %x %x %x\n" +.LC9: + .string "FTL INFO:\n" +.LC10: + .string "g_MaxLpn = 0x%x\n" +.LC11: + .string "g_VaildLpn = 0x%x\n" +.LC12: + .string "read_page_count = 0x%x\n" +.LC13: + .string "discard_page_count = 0x%x\n" +.LC14: + .string "write_page_count = 0x%x\n" +.LC15: + .string "cache_write_count = 0x%x\n" +.LC16: + .string "l2p_write_count = 0x%x\n" +.LC17: + .string "gc_page_count = 0x%x\n" +.LC18: + .string "totle_write = %d MB\n" +.LC19: + .string "totle_read = %d MB\n" +.LC20: + .string "GSV = 0x%x\n" +.LC21: + .string "GDV = 0x%x\n" +.LC22: + .string "bad blk num = %d %d\n" +.LC23: + .string "free_superblocks = 0x%x\n" +.LC24: + .string "mlc_EC = 0x%x\n" +.LC25: + .string "slc_EC = 0x%x\n" +.LC26: + .string "avg_EC = 0x%x\n" +.LC27: + .string "sys_EC = 0x%x\n" +.LC28: + .string "max_EC = 0x%x\n" +.LC29: + .string "min_EC = 0x%x\n" +.LC30: + .string "PLT = 0x%x\n" +.LC31: + .string "POT = 0x%x\n" +.LC32: + .string "MaxSector = 0x%x\n" +.LC33: + .string "init_sys_blks_pp = 0x%x\n" +.LC34: + .string "sys_blks_pp = 0x%x\n" +.LC35: + .string "free sysblock = 0x%x\n" +.LC36: + .string "data_blks_pp = 0x%x\n" +.LC37: + .string "data_op_blks_pp = 0x%x\n" +.LC38: + .string "max_data_blks = 0x%x\n" +.LC39: + .string "Sys.id = 0x%x\n" +.LC40: + .string "Bbt.id = 0x%x\n" +.LC41: + .string "ACT.page = 0x%x\n" +.LC42: + .string "ACT.plane = 0x%x\n" +.LC43: + .string "ACT.id = 0x%x\n" +.LC44: + .string "ACT.mode = 0x%x\n" +.LC45: + .string "ACT.a_pages = 0x%x\n" +.LC46: + .string "ACT VPC = 0x%x\n" +.LC47: + .string "BUF.page = 0x%x\n" +.LC48: + .string "BUF.plane = 0x%x\n" +.LC49: + .string "BUF.id = 0x%x\n" +.LC50: + .string "BUF.mode = 0x%x\n" +.LC51: + .string "BUF.a_pages = 0x%x\n" +.LC52: + .string "BUF VPC = 0x%x\n" +.LC53: + .string "TMP.page = 0x%x\n" +.LC54: + .string "TMP.plane = 0x%x\n" +.LC55: + .string "TMP.id = 0x%x\n" +.LC56: + .string "TMP.mode = 0x%x\n" +.LC57: + .string "TMP.a_pages = 0x%x\n" +.LC58: + .string "GC.page = 0x%x\n" +.LC59: + .string "GC.plane = 0x%x\n" +.LC60: + .string "GC.id = 0x%x\n" +.LC61: + .string "GC.mode = 0x%x\n" +.LC62: + .string "GC.a_pages = 0x%x\n" +.LC63: + .string "WR_CHK = 0x%x %x %x %x\n" +.LC64: + .string "Read Err = 0x%x\n" +.LC65: + .string "Prog Err = 0x%x\n" +.LC66: + .string "gc_free_blk_th= 0x%x\n" +.LC67: + .string "gc_merge_free_blk_th= 0x%x\n" +.LC68: + .string "gc_skip_write_count= 0x%x\n" +.LC69: + .string "gc_blk_index= 0x%x\n" +.LC70: + .string "free min EC= 0x%x\n" +.LC71: + .string "free max EC= 0x%x\n" +.LC72: + .string "GC__SB VPC = 0x%x\n" +.LC73: + .string "%d. [0x%x]=0x%x 0x%x 0x%x\n" +.LC74: + .string "free %d. [0x%x] 0x%x 0x%x\n" +.LC75: + .string "FTL version: 5.0.63 20210616" +.LC76: + .string "%s\n" +.LC77: + .string "swblk %x ,avg = %x max= %x vpc= %x,ec=%x ,max ec=%x\n" +.LC78: + .string "FtlGcRefreshBlock 0x%x\n" +.LC79: + .string "FtlGcMarkBadPhyBlk %d 0x%x\n" +.LC80: + .string "%s error allocating memory. return -1\n" +.LC81: + .string "%s %p:0x%x:" +.LC82: + .string "%x " +.LC83: + .string "" +.LC84: + .string "otp error! %d" +.LC85: + .string "rr" +.LC86: + .string "%d statReg->V6.mtrans_cnt=%d flReg.V6.page_num=%d\n" +.LC87: + .string "nandc:" +.LC88: + .string "%d flReg.d32=%x %x\n" +.LC89: + .string "sdr read ok %x ecc=%d\n" +.LC90: + .string "sync para %d\n" +.LC91: + .string "TOG mode Read error %x %x\n" +.LC92: + .string "read retry status %x %x %x\n" +.LC93: + .string "micron RR %d row=%x,count %d,status=%d\n" +.LC94: + .string "samsung RR %d row=%x,count %d,status=%d\n" +.LC95: + .string "ECC:%d\n" +.LC96: + .string "No.%d FLASH ID:%x %x %x %x %x %x\n" +.LC97: + .string "FlashLoadPhyInfo fail %x!!\n" +.LC98: + .string "Read pageadd=%x ecc=%x err=%x\n" +.LC99: + .string "data:" +.LC100: + .string "spare:" +.LC101: + .string "ReadRetry pageadd=%x ecc=%x err=%x\n" +.LC102: + .string "FLFB:%d %d\n" +.LC103: + .string "prog error: = %x\n" +.LC104: + .string "prog read error: = %x\n" +.LC105: + .string "prog read REFRESH: = %x\n" +.LC106: + .string "prog read s error: = %x %x %x\n" +.LC107: + .string "prog read d error: = %x %x %x\n" +.LC108: + .string "id = %x,%x addr= %x,spare= %x %x %x %x data= %x\n" +.LC109: + .string "...%s enter...\n" +.LC110: + .string "superBlkID = %x vpc=%x\n" +.LC111: + .string "flashmode = %x pagenum = %x %x\n" +.LC112: + .string "id = %x,%x addr= %x,spare= %x %x %x %x data=%x %x\n" +.LC113: + .string "blk = %x vpc=%x mode = %x\n" +.LC114: + .string "mlc id = %x,%x addr= %x,spare= %x %x %x %x data=%x %x\n" +.LC115: + .string "slc id = %x,%x addr= %x,spare= %x %x %x %x data=%x %x\n" +.LC116: + .string "ftl_scan_all_ppa blk %x page %x flag: %x\n" +.LC117: + .string "ftl_scan_all_ppa blk %x page %x flag: %x ............... is bad block\n" +.LC118: + .string "addr= %x, status= %d,spare= %x %x %x %x data=%x %x\n" +.LC119: + .string "%s finished\n" +.LC120: + .string "FlashMakeFactorBbt %d\n" +.LC121: + .string "bad block:%d %d\n" +.LC122: + .string "FMFB:%d %d\n" +.LC123: + .string "E:bad block:%d\n" +.LC124: + .string "FMFB:Save %d %d\n" +.LC125: + .string "FtlBbmTblFlush id=%x,page=%x,previd=%x cnt=%d\n" +.LC126: + .string "FtlBbmTblFlush error:%x\n" +.LC127: + .string "FtlBbmTblFlush error = %x error count = %d\n" +.LC128: + .string "FtlGcFreeBadSuperBlk 0x%x\n" +.LC129: + .string "decrement_vpc_count %x = %d\n" +.LC130: + .string "decrement_vpc_count %x = %d in free list\n" +.LC131: + .string "FtlVpcTblFlush error = %x error count = %d\n" +.LC132: + .string "page map lost: %x %x\n" +.LC133: + .string "FtlMapWritePage error = %x\n" +.LC134: + .string "FtlMapWritePage error = %x error count = %d\n" +.LC135: + .string "FtlVendorPartRead refresh = %x phyAddr = %x\n" +.LC136: + .string "no ect" +.LC137: + .string "slc mode" +.LC138: + .string "BBT:" +.LC139: + .string "region_id = %x phyAddr = %x\n" +.LC140: + .string "map_ppn:" +.LC141: + .string "load_l2p_region refresh = %x phyAddr = %x\n" +.LC142: + .string "FtlCheckVpc2 %x = %x %x\n" +.LC143: + .string "free blk vpc error %x = %x %x\n" +.LC144: + .string "error_flag %x\n" +.LC145: + .string "Ftlscanalldata = %x\n" +.LC146: + .string "scan lpa = %x ppa= %x\n" +.LC147: + .string "lba = %x,addr= %x,spare= %x %x %x %x data=%x %x\n" +.LC148: + .string "RSB refresh addr %x\n" +.LC149: + .string "spuer block %x vpn is 0\n " +.LC150: + .string "g_recovery_ppa %x ver %x\n " +.LC151: + .string "FtlCheckVpc %x = %x %x\n" +.LC152: + .string "FtlGcScanTempBlk Error ID %x %x!!!!!!! \n" +.LC153: + .string "FtlGcScanTempBlkError ID %x %x!!!!!!!\n" +.LC154: + .string "GC des block %x done\n" +.LC155: + .string "too many bad block = %d %d\n" +.LC156: + .string "%d GC datablk = %x vpc %x %x\n" +.LC157: + .string "SWL %x, FSB = %x vpc= %x,ec=%x th=%x\n" +.LC158: + .string "Ftlwrite decrement_vpc_count %x = %d\n" +.LC159: + .string "rk_ftl_de_init %x\n" +.LC160: + .string "...%s: no bad block mapping table, format device\n" +.LC161: + .string "...%s FtlSysBlkInit error ,format device!\n" +.LC162: + .string "FtlInit %x\n" +.LC163: + .string "fix power lost blk = %x vpc=%x\n" +.LC164: + .string "erase power lost blk = %x vpc=%x\n" +.LC165: + .string "FtlWrite: lpa error:%x %x\n" +.LC166: + .string "id = %x,%x addr= %x,spare= %x %x %x %x data = %x\n" +.LC167: + .string ":" +.LC168: + .string "phyBlk = %x,addr= %x,spare= %x %x %x %x data=%x %x\n" +.LC169: + .string "Mblk:" +.LC170: + .string "L2P:" +.LC171: + .string "L2PC:" +.LC172: + .string "write_idblock fix data %x %x\n" +.LC173: + .string "idblk:" +.LC174: + .string "idb reverse %x %x\n" +.LC175: + .string "write_idblock totle_sec %x %x %x %x\n" +.LC176: + .string "IDBlockWriteData %x %x\n" +.LC177: + .string "IDBlockWriteData %x %x ret= %x\n" +.LC178: + .string "IdBlockReadData %x %x\n" +.LC179: + .string "IdBlockReadData %x %x ret= %x\n" +.LC180: + .string "write and check error:%d idb=%x,offset=%x,r=%x,w=%x\n" +.LC181: + .string "write" +.LC182: + .string "read" +.LC183: + .string "write_idblock error %d\n" +.LC184: + .string "wl_lba %p %x %x %x\n" +.LC185: + .string "RKNAND_GET_DRM_KEY\n" +.LC186: + .string "rk_copy_from_user error\n" +.LC187: + .string "RKNAND_STORE_DRM_KEY\n" +.LC188: + .string "RKNAND_DIASBLE_SECURE_BOOT\n" +.LC189: + .string "RKNAND_ENASBLE_SECURE_BOOT\n" +.LC190: + .string "RKNAND_GET_SN_SECTOR\n" +.LC191: + .string "RKNAND_LOADER_UNLOCK\n" +.LC192: + .string "RKNAND_LOADER_STATUS\n" +.LC193: + .string "RKNAND_LOADER_LOCK\n" +.LC194: + .string "LockKey not match %d\n" +.LC195: + .string "RKNAND_GET_VENDOR_SECTOR\n" +.LC196: + .string "RKNAND_STORE_VENDOR_SECTOR\n" +.LC197: + .string "return ret = %lx\n" +.LC198: + .string "secureBootEn check error\n" +.LC199: + .string "\0013vendor storage %x,%x,%x\n" diff --git a/drivers/rk_nand/rk_ftlv5_arm32.S b/drivers/rk_nand/rk_ftlv5_arm32.S index 7f9593473737..6c62f1b711c5 100644 --- a/drivers/rk_nand/rk_ftlv5_arm32.S +++ b/drivers/rk_nand/rk_ftlv5_arm32.S @@ -5,7 +5,7 @@ * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. - * date: 2020-09-23 + * date: 2021-07-16 * function: rk ftl v5 for rockchip soc base on arm v7 to support MLC NAND. */ .arch armv7-a @@ -24,39 +24,99 @@ .syntax unified .text .align 2 + .type ndelay, %function +ndelay: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + @ link register save eliminated. + ldr r3, .L2 + add r0, r0, #996 + add r0, r0, #3 + umull r0, r1, r0, r3 + ldr r3, .L2+4 + ldr r3, [r3, #8] + mov r0, r1, lsr #6 + bx r3 @ indirect register sibling call +.L3: + .align 2 +.L2: + .word 274877907 + .word arm_delay_ops + .fnend + .size ndelay, .-ndelay + .align 2 + .type flash_read_ecc, %function +flash_read_ecc: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + ldr r2, .L6 + stmfd sp!, {r4, lr} + .save {r4, lr} + ldr r3, [r2, r0, asl #3] + add r2, r2, r0, asl #3 + mov r0, #80 + ldrb r4, [r2, #4] @ zero_extendqisi2 + add r4, r3, r4, asl #8 + mov r3, #122 + str r3, [r4, #2056] + bl ndelay + ldr r3, [r4, #2048] + ldr r0, [r4, #2048] + and r3, r3, #15 + and r0, r0, #15 + cmp r0, r3 + movcc r0, r3 + ldr r3, [r4, #2048] + and r3, r3, #15 + cmp r0, r3 + movcc r0, r3 + ldr r3, [r4, #2048] + and r3, r3, #15 + cmp r0, r3 + movcc r0, r3 + ldmfd sp!, {r4, pc} +.L7: + .align 2 +.L6: + .word .LANCHOR0 + .fnend + .size flash_read_ecc, .-flash_read_ecc + .align 2 .global FlashMemCmp8 .type FlashMemCmp8, %function FlashMemCmp8: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L11 + ldr r3, .L18 str lr, [sp, #-4]! .save {lr} - ldrb r3, [r3] @ zero_extendqisi2 + ldrb r3, [r3, #32] @ zero_extendqisi2 cmp r3, #0 - beq .L4 + beq .L11 ldrb r3, [r1, #1] @ zero_extendqisi2 ldrb ip, [r0, #1] @ zero_extendqisi2 cmp ip, r3 movne r3, #0 - beq .L8 -.L4: + beq .L15 +.L11: cmp r3, r2 - beq .L8 + beq .L15 ldrb lr, [r0, r3] @ zero_extendqisi2 ldrb ip, [r1, r3] @ zero_extendqisi2 add r3, r3, #1 cmp lr, ip - beq .L4 + beq .L11 mov r0, r3 ldr pc, [sp], #4 -.L8: +.L15: mov r0, #0 ldr pc, [sp], #4 -.L12: +.L19: .align 2 -.L11: +.L18: .word .LANCHOR0 .fnend .size FlashMemCmp8, .-FlashMemCmp8 @@ -68,9 +128,9 @@ FlashRsvdBlkChk: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L14 - ldrb r2, [r3, #1] @ zero_extendqisi2 - ldr r3, [r3, #4] + ldr r3, .L21 + ldrb r2, [r3, #33] @ zero_extendqisi2 + ldr r3, [r3, #36] mul r3, r3, r2 cmp r1, r3 movcs r2, #0 @@ -79,9 +139,9 @@ FlashRsvdBlkChk: movne r2, #0 eor r0, r2, #1 bx lr -.L15: +.L22: .align 2 -.L14: +.L21: .word .LANCHOR0 .fnend .size FlashRsvdBlkChk, .-FlashRsvdBlkChk @@ -93,24 +153,24 @@ FlashGetRandomizer: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 and r3, r1, #127 - ldr r2, .L25 + ldr r2, .L32 stmfd sp!, {r4, lr} .save {r4, lr} mov r3, r3, asl #1 ldrh r4, [r2, r3] - ldr r3, .L25+4 - ldrb r3, [r3, #8] @ zero_extendqisi2 + ldr r3, .L32+4 + ldrb r3, [r3, #40] @ zero_extendqisi2 cmp r3, #0 - beq .L17 + beq .L24 bl FlashRsvdBlkChk cmp r0, #0 orrne r4, r4, #-1073741824 -.L17: +.L24: mov r0, r4 ldmfd sp!, {r4, pc} -.L26: +.L33: .align 2 -.L25: +.L32: .word .LANCHOR1 .word .LANCHOR0 .fnend @@ -123,28 +183,27 @@ FlashSetRandomizer: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 and r3, r1, #127 - ldr r2, .L36 + ldr r2, .L43 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r3, r3, asl #1 mov r6, r0 ldrh r5, [r2, r3] - ldr r3, .L36+4 - ldrb r2, [r3, #8] @ zero_extendqisi2 + ldr r3, .L43+4 + ldrb r2, [r3, #40] @ zero_extendqisi2 mov r4, r3 cmp r2, #0 - beq .L28 + beq .L35 bl FlashRsvdBlkChk cmp r0, #0 orrne r5, r5, #-1073741824 -.L28: - add r4, r4, r6, asl #3 - ldr r3, [r4, #12] +.L35: + ldr r3, [r4, r6, asl #3] str r5, [r3, #336] ldmfd sp!, {r4, r5, r6, pc} -.L37: +.L44: .align 2 -.L36: +.L43: .word .LANCHOR1 .word .LANCHOR0 .fnend @@ -158,22 +217,22 @@ FlashBlockAlignInit: @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. cmp r0, #512 - ldr r3, .L44 + ldr r3, .L51 movhi r2, #1024 - bhi .L43 + bhi .L50 cmp r0, #256 movhi r2, #512 - bhi .L43 + bhi .L50 cmp r0, #128 - strls r0, [r3, #4] + strls r0, [r3, #36] bxls lr mov r2, #256 -.L43: - str r2, [r3, #4] +.L50: + str r2, [r3, #36] bx lr -.L45: +.L52: .align 2 -.L44: +.L51: .word .LANCHOR0 .fnend .size FlashBlockAlignInit, .-FlashBlockAlignInit @@ -184,13 +243,13 @@ FlashReadCmd: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr ip, .L49 + ldr ip, .L56 str lr, [sp, #-4]! .save {lr} add r3, ip, r0, asl #3 + ldr r2, [ip, r0, asl #3] ldr ip, [ip, #44] - ldr r2, [r3, #12] - ldrb r3, [r3, #16] @ zero_extendqisi2 + ldrb r3, [r3, #4] @ zero_extendqisi2 ldrb ip, [ip, #7] @ zero_extendqisi2 mov r3, r3, asl #8 cmp ip, #1 @@ -212,9 +271,9 @@ FlashReadCmd: str r2, [r3, #2056] ldr lr, [sp], #4 b FlashSetRandomizer -.L50: +.L57: .align 2 -.L49: +.L56: .word .LANCHOR0 .fnend .size FlashReadCmd, .-FlashReadCmd @@ -225,20 +284,20 @@ FlashReadDpDataOutCmd: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr ip, .L56 + ldr ip, .L63 stmfd sp!, {r4, lr} .save {r4, lr} add r3, ip, r0, asl #3 - ldrb ip, [ip, #64] @ zero_extendqisi2 + ldr r2, [ip, r0, asl #3] uxtb r4, r1 - ldr r2, [r3, #12] + ldrb ip, [ip, #64] @ zero_extendqisi2 mov lr, r1, lsr #8 - ldrb r3, [r3, #16] @ zero_extendqisi2 + ldrb r3, [r3, #4] @ zero_extendqisi2 cmp ip, #1 mov ip, r1, lsr #16 mov r3, r3, asl #8 add r3, r2, r3 - bne .L52 + bne .L59 mov r2, #6 str r2, [r3, #2056] mov r2, #0 @@ -247,8 +306,8 @@ FlashReadDpDataOutCmd: str r4, [r3, #2052] str lr, [r3, #2052] str ip, [r3, #2052] - b .L55 -.L52: + b .L62 +.L59: mov r2, #0 str r2, [r3, #2056] str r2, [r3, #2052] @@ -260,14 +319,14 @@ FlashReadDpDataOutCmd: str ip, [r3, #2056] str r2, [r3, #2052] str r2, [r3, #2052] -.L55: +.L62: mov r2, #224 str r2, [r3, #2056] ldmfd sp!, {r4, lr} b FlashSetRandomizer -.L57: +.L64: .align 2 -.L56: +.L63: .word .LANCHOR0 .fnend .size FlashReadDpDataOutCmd, .-FlashReadDpDataOutCmd @@ -278,12 +337,13 @@ FlashProgFirstCmd: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - @ link register save eliminated. - ldr ip, .L59 + ldr ip, .L67 mov r2, r1, lsr #16 + str lr, [sp, #-4]! + .save {lr} + ldr r3, [ip, r0, asl #3] add ip, ip, r0, asl #3 - ldr r3, [ip, #12] - ldrb ip, [ip, #16] @ zero_extendqisi2 + ldrb ip, [ip, #4] @ zero_extendqisi2 add r3, r3, ip, asl #8 mov ip, #128 str ip, [r3, #2056] @@ -295,10 +355,11 @@ FlashProgFirstCmd: mov ip, r1, lsr #8 str ip, [r3, #2052] str r2, [r3, #2052] + ldr lr, [sp], #4 b FlashSetRandomizer -.L60: +.L68: .align 2 -.L59: +.L67: .word .LANCHOR0 .fnend .size FlashProgFirstCmd, .-FlashProgFirstCmd @@ -312,12 +373,12 @@ FlashEraseCmd: str lr, [sp, #-4]! .save {lr} cmp r2, #0 - ldr lr, .L67 + ldr lr, .L75 + ldr ip, [lr, r0, asl #3] add r0, lr, r0, asl #3 - ldrb r3, [r0, #16] @ zero_extendqisi2 - ldr ip, [r0, #12] + ldrb r3, [r0, #4] @ zero_extendqisi2 mov r3, r3, asl #8 - beq .L62 + beq .L70 add r2, ip, r3 mov r0, #96 str r0, [r2, #2056] @@ -327,9 +388,9 @@ FlashEraseCmd: str r0, [r2, #2052] mov r0, r1, lsr #16 str r0, [r2, #2052] - ldr r2, [lr, #4] + ldr r2, [lr, #36] add r1, r1, r2 -.L62: +.L70: add r3, ip, r3 mov r2, #96 str r2, [r3, #2056] @@ -342,9 +403,9 @@ FlashEraseCmd: mov r2, #208 str r2, [r3, #2056] ldr pc, [sp], #4 -.L68: +.L76: .align 2 -.L67: +.L75: .word .LANCHOR0 .fnend .size FlashEraseCmd, .-FlashEraseCmd @@ -355,15 +416,15 @@ FlashProgDpSecondCmd: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr ip, .L71 + stmfd sp!, {r4, lr} + .save {r4, lr} mov r2, r1, lsr #16 - str lr, [sp, #-4]! - .save {lr} - add lr, ip, r0, asl #3 - ldrb ip, [ip, #59] @ zero_extendqisi2 - ldr r3, [lr, #12] - ldrb lr, [lr, #16] @ zero_extendqisi2 - add r3, r3, lr, asl #8 + ldr lr, .L79 + add ip, lr, r0, asl #3 + ldr r3, [lr, r0, asl #3] + ldrb r4, [ip, #4] @ zero_extendqisi2 + ldrb ip, [lr, #59] @ zero_extendqisi2 + add r3, r3, r4, asl #8 str ip, [r3, #2056] mov ip, #0 str ip, [r3, #2052] @@ -373,11 +434,11 @@ FlashProgDpSecondCmd: mov ip, r1, lsr #8 str ip, [r3, #2052] str r2, [r3, #2052] - ldr lr, [sp], #4 + ldmfd sp!, {r4, lr} b FlashSetRandomizer -.L72: +.L80: .align 2 -.L71: +.L79: .word .LANCHOR0 .fnend .size FlashProgDpSecondCmd, .-FlashProgDpSecondCmd @@ -390,24 +451,24 @@ FlashProgSecondCmd: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} - ldr r3, .L75 - add r0, r3, r0, asl #3 - ldr r3, .L75+4 - ldrb r5, [r0, #16] @ zero_extendqisi2 - ldr r4, [r0, #12] - ldr r3, [r3, #4] + ldr r3, .L83 + ldr r4, [r3, r0, asl #3] + add r3, r3, r0, asl #3 + ldr r0, .L83+4 + ldrb r5, [r3, #4] @ zero_extendqisi2 + ldr r3, .L83+8 add r4, r4, r5, asl #8 - ldr r0, .L75+8 + ldr r3, [r3, #4] blx r3 mov r3, #16 str r3, [r4, #2056] ldmfd sp!, {r3, r4, r5, pc} -.L76: +.L84: .align 2 -.L75: +.L83: .word .LANCHOR0 + .word 64424500 .word arm_delay_ops - .word 214748300 .fnend .size FlashProgSecondCmd, .-FlashProgSecondCmd .align 2 @@ -418,21 +479,48 @@ FlashProgDpFirstCmd: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L78 + ldr r2, .L86 + ldr r3, [r2, r0, asl #3] add r0, r2, r0, asl #3 ldrb r2, [r2, #58] @ zero_extendqisi2 - ldrb r1, [r0, #16] @ zero_extendqisi2 - ldr r3, [r0, #12] + ldrb r1, [r0, #4] @ zero_extendqisi2 add r3, r3, r1, asl #8 str r2, [r3, #2056] bx lr -.L79: +.L87: .align 2 -.L78: +.L86: .word .LANCHOR0 .fnend .size FlashProgDpFirstCmd, .-FlashProgDpFirstCmd .align 2 + .global FlashReadStatus + .type FlashReadStatus, %function +FlashReadStatus: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r3, r4, r5, lr} + .save {r3, r4, r5, lr} + mov r2, #112 + ldr r3, .L90 + ldr r5, [r3, r0, asl #3] + add r3, r3, r0, asl #3 + mov r0, #80 + ldrb r4, [r3, #4] @ zero_extendqisi2 + add r3, r5, r4, asl #8 + add r4, r4, #8 + str r2, [r3, #2056] + bl ndelay + ldr r0, [r5, r4, asl #8] + ldmfd sp!, {r3, r4, r5, pc} +.L91: + .align 2 +.L90: + .word .LANCHOR0 + .fnend + .size FlashReadStatus, .-FlashReadStatus + .align 2 .global js_hash .type js_hash, %function js_hash: @@ -440,23 +528,23 @@ js_hash: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L84 + ldr r3, .L96 add r1, r0, r1 -.L81: +.L93: cmp r0, r1 - beq .L83 + beq .L95 mov r2, r3, asl #5 ldrb ip, [r0], #1 @ zero_extendqisi2 add r2, r2, r3, lsr #2 add r2, r2, ip eor r3, r3, r2 - b .L81 -.L83: + b .L93 +.L95: mov r0, r3 bx lr -.L85: +.L97: .align 2 -.L84: +.L96: .word 1204201446 .fnend .size js_hash, .-js_hash @@ -483,30 +571,30 @@ BuildFlashLsbPageTable: stmfd sp!, {r4, lr} .save {r4, lr} mov r4, r1 - bne .L88 - ldr r3, .L131 -.L89: + bne .L100 + ldr r3, .L143 +.L101: mov r2, r0, asl #1 strh r0, [r2, r3] @ movhi add r0, r0, #1 cmp r0, #512 - bne .L89 -.L93: + bne .L101 +.L105: mov r2, #2048 - ldr r0, .L131+4 + ldr r0, .L143+4 mov r1, #255 uxth r4, r4 bl ftl_memset - ldr r2, .L131 + ldr r2, .L143 mov r3, #0 add r0, r2, #1024 - b .L90 -.L88: + b .L102 +.L100: cmp r0, #1 - bne .L91 - ldr ip, .L131 + bne .L103 + ldr ip, .L143 mov r3, #0 -.L92: +.L104: uxth r2, r3 mov lr, r3, asl #1 cmp r2, #3 @@ -521,14 +609,14 @@ BuildFlashLsbPageTable: movne r2, r1 cmp r3, #512 strh r2, [lr, ip] @ movhi - bne .L92 - b .L93 -.L91: + bne .L104 + b .L105 +.L103: cmp r0, #2 - bne .L94 - ldr r1, .L131 + bne .L106 + ldr r1, .L143 mov r3, #0 -.L95: +.L107: uxth r2, r3 mov r0, r3, asl #1 cmp r2, #1 @@ -537,14 +625,14 @@ BuildFlashLsbPageTable: subhi r2, ip, #1 cmp r3, #512 strh r2, [r0, r1] @ movhi - bne .L95 - b .L93 -.L94: + bne .L107 + b .L105 +.L106: cmp r0, #3 - bne .L96 - ldr ip, .L131 + bne .L108 + ldr ip, .L143 mov r3, #0 -.L97: +.L109: uxth r2, r3 mov lr, r3, asl #1 cmp r2, #5 @@ -559,13 +647,13 @@ BuildFlashLsbPageTable: movne r2, r1 cmp r3, #512 strh r2, [lr, ip] @ movhi - bne .L97 - b .L93 -.L96: + bne .L109 + b .L105 +.L108: cmp r0, #4 mov r3, #0 - bne .L98 - ldr r2, .L131+8 + bne .L110 + ldr r2, .L143+8 strh r3, [r2, #80] @ movhi mov r3, #1 strh r0, [r2, #88] @ movhi @@ -580,7 +668,7 @@ BuildFlashLsbPageTable: strh r3, [r2, #92] @ movhi mov r3, #8 strh r3, [r2, #94]! @ movhi -.L99: +.L111: tst r3, #1 movne r1, #7 moveq r1, #6 @@ -589,31 +677,31 @@ BuildFlashLsbPageTable: strh r1, [r2, #2]! @ movhi uxth r3, r3 cmp r3, #512 - bne .L99 - b .L93 -.L98: + bne .L111 + b .L105 +.L110: cmp r0, #5 - bne .L100 - ldr r2, .L131 -.L101: + bne .L112 + ldr r2, .L143 +.L113: mov r1, r3, asl #1 strh r3, [r1, r2] @ movhi add r3, r3, #1 cmp r3, #16 - bne .L101 - ldr r2, .L131+12 -.L102: + bne .L113 + ldr r2, .L143+12 +.L114: strh r3, [r2, #2]! @ movhi add r3, r3, #2 uxth r3, r3 cmp r3, #1008 - bne .L102 - b .L93 -.L100: + bne .L114 + b .L105 +.L112: cmp r0, #6 - bne .L103 - ldr r1, .L131+16 -.L104: + bne .L115 + ldr r1, .L143+16 +.L116: cmp r3, #5 add r2, r3, r3, asl #1 movls r0, #0 @@ -628,12 +716,12 @@ BuildFlashLsbPageTable: strh r2, [r1, #2]! @ movhi uxth r3, r3 cmp r3, #512 - bne .L104 - b .L93 -.L103: + bne .L116 + b .L105 +.L115: cmp r0, #9 - bne .L105 - ldr r2, .L131+8 + bne .L117 + ldr r2, .L143+8 movw r1, #1021 strh r3, [r2, #80] @ movhi mov r3, #1 @@ -641,45 +729,45 @@ BuildFlashLsbPageTable: mov r3, #2 strh r3, [r2, #84]! @ movhi mov r3, #3 -.L106: +.L118: strh r3, [r2, #2]! @ movhi add r3, r3, #2 uxth r3, r3 cmp r3, r1 - bne .L106 - b .L93 -.L105: + bne .L118 + b .L105 +.L117: cmp r0, #10 - bne .L107 - ldr r2, .L131 -.L108: + bne .L119 + ldr r2, .L143 +.L120: mov r1, r3, asl #1 strh r3, [r1, r2] @ movhi add r3, r3, #1 cmp r3, #63 - bne .L108 - ldr r2, .L131+20 + bne .L120 + ldr r2, .L143+20 movw r1, #961 -.L109: +.L121: strh r3, [r2, #2]! @ movhi add r3, r3, #2 uxth r3, r3 cmp r3, r1 - bne .L109 - b .L93 -.L107: + bne .L121 + b .L105 +.L119: cmp r0, #11 - bne .L110 - ldr r2, .L131 + bne .L122 + ldr r2, .L143 mov r3, #0 -.L111: +.L123: mov r1, r3, asl #1 strh r3, [r1, r2] @ movhi add r3, r3, #1 cmp r3, #8 - bne .L111 - ldr r1, .L131+24 -.L112: + bne .L123 + ldr r1, .L143+24 +.L124: tst r3, #1 movne r2, #7 moveq r2, #6 @@ -688,12 +776,12 @@ BuildFlashLsbPageTable: strh r2, [r1, #2]! @ movhi uxth r3, r3 cmp r3, #512 - bne .L112 - b .L93 -.L110: + bne .L124 + b .L105 +.L122: cmp r0, #12 - bne .L93 - ldr r3, .L131+8 + bne .L105 + ldr r3, .L143+8 mov r2, #0 strh r2, [r3, #80] @ movhi mov r2, #1 @@ -703,30 +791,30 @@ BuildFlashLsbPageTable: mov r2, #3 strh r2, [r3, #86]! @ movhi mov r2, #4 -.L113: +.L125: sub r1, r2, #1 add r1, r1, r2, lsr #1 add r2, r2, #1 strh r1, [r3, #2]! @ movhi uxth r2, r2 cmp r2, #512 - bne .L113 - b .L93 -.L90: + bne .L125 + b .L105 +.L102: uxth r1, r3 cmp r1, r4 - bcs .L130 + bcs .L142 mov r1, r3, asl #1 add r3, r3, #1 ldrh r1, [r1, r2] mov ip, r1, asl #1 strh r1, [r0, ip] @ movhi - b .L90 -.L130: + b .L102 +.L142: ldmfd sp!, {r4, pc} -.L132: +.L144: .align 2 -.L131: +.L143: .word .LANCHOR0+80 .word .LANCHOR0+1104 .word .LANCHOR0 @@ -748,6 +836,104 @@ FlashPrintInfo: .fnend .size FlashPrintInfo, .-FlashPrintInfo .align 2 + .global ToshibaSetRRPara + .type ToshibaSetRRPara, %function +ToshibaSetRRPara: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} + .save {r4, r5, r6, r7, r8, r9, r10, lr} + add r7, r1, r1, asl #2 + ldr r8, .L156 + mov r5, r0 + ldr r10, .L156+4 + mov r6, r1 + add r9, r8, #256 + mov r4, #0 +.L147: + ldrb r3, [r10] @ zero_extendqisi2 + cmp r4, r3 + bcs .L155 + mov r3, #85 + str r3, [r5, #8] + ldrsb r3, [r4, r9] + mov r0, #200 + str r3, [r5, #4] + bl ndelay + ldr r3, .L156+8 + ldrb r3, [r3] @ zero_extendqisi2 + cmp r3, #34 + addeq r3, r4, r7 + addeq r3, r9, r3 + beq .L154 + cmp r3, #35 + addne r3, r8, r6 + addne r3, r3, #400 + ldrnesb r3, [r3] + bne .L153 + ldr r3, .L156+12 + add r2, r4, r7 + add r3, r3, r2 +.L154: + ldrsb r3, [r3, #5] +.L153: + str r3, [r5] + add r4, r4, #1 + b .L147 +.L155: + ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} +.L157: + .align 2 +.L156: + .word .LANCHOR1 + .word g_maxRegNum + .word g_retryMode + .word .LANCHOR1+304 + .fnend + .size ToshibaSetRRPara, .-ToshibaSetRRPara + .align 2 + .global SamsungSetRRPara + .type SamsungSetRRPara, %function +SamsungSetRRPara: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + ldr r3, .L163 + stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} + .save {r4, r5, r6, r7, r8, r9, r10, lr} + add r1, r3, r1, asl #2 + ldr r8, .L163+4 + mov r4, #0 + add r5, r1, #3 + mov r6, r0 + mov r7, r3 + mov r9, #161 + mov r10, r4 +.L159: + ldrb r3, [r8] @ zero_extendqisi2 + cmp r4, r3 + bcs .L162 + str r9, [r6, #8] + mov r0, #300 + str r10, [r6] + ldrsb r3, [r7, r4] + add r4, r4, #1 + str r3, [r6] + ldrsb r3, [r5, #1]! + str r3, [r6] + bl ndelay + b .L159 +.L162: + ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} +.L164: + .align 2 +.L163: + .word .LANCHOR1+408 + .word g_maxRegNum + .fnend + .size SamsungSetRRPara, .-SamsungSetRRPara + .align 2 .global FlashDieInfoInit .type FlashDieInfoInit, %function FlashDieInfoInit: @@ -757,35 +943,35 @@ FlashDieInfoInit: stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, lr} .save {r3, r4, r5, r6, r7, r8, r9, lr} mov r5, #0 - ldr r3, .L149 - ldr r4, .L149+4 - ldr r9, .L149+8 + ldr r3, .L180 + ldr r4, .L180+4 + ldr r9, .L180+8 ldrh r0, [r3, #10] strb r5, [r4, #3152] strb r5, [r4, #3153] bl FlashBlockAlignInit mov r1, r5 mov r2, #8 - ldr r0, .L149+12 + ldr r0, .L180+12 bl ftl_memset mov r1, r5 mov r2, #32 - ldr r0, .L149+16 + ldr r0, .L180+16 bl ftl_memset - ldr r0, .L149+20 + ldr r0, .L180+20 mov r1, r5 mov r2, #128 bl ftl_memset ldr r7, [r4, #44] add r6, r7, #1 -.L136: +.L167: mov r0, r6 add r1, r9, r5, asl #3 ldrb r2, [r7] @ zero_extendqisi2 bl FlashMemCmp8 - ldr r8, .L149+8 + ldr r8, .L180+8 cmp r0, #0 - bne .L135 + bne .L166 ldrb r3, [r4, #3152] @ zero_extendqisi2 add r2, r4, r3, asl #2 str r0, [r2, #3164] @@ -793,16 +979,16 @@ FlashDieInfoInit: add r3, r4, r3 strb r2, [r4, #3152] strb r5, [r3, #3156] -.L135: +.L166: add r5, r5, #1 cmp r5, #4 - bne .L136 + bne .L167 ldrb r3, [r4, #3152] @ zero_extendqisi2 strb r3, [r4, #3153] ldrb r3, [r7, #8] @ zero_extendqisi2 cmp r3, #2 - beq .L137 -.L141: + beq .L168 +.L172: ldrb r3, [r7, #13] @ zero_extendqisi2 ldrb r2, [r4, #3152] @ zero_extendqisi2 smulbb r2, r2, r3 @@ -811,17 +997,17 @@ FlashDieInfoInit: movw r2, #3324 strh r3, [r4, r2] @ movhi ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, pc} -.L137: - ldr r3, .L149+4 +.L168: + ldr r3, .L180+4 mov r5, #0 - ldr r9, [r3, #4] -.L140: + ldr r9, [r3, #36] +.L171: mov r0, r6 add r1, r8, r5, asl #3 ldrb r2, [r7] @ zero_extendqisi2 bl FlashMemCmp8 cmp r0, #0 - bne .L138 + bne .L169 ldrb r1, [r7, #13] @ zero_extendqisi2 ldrh r3, [r7, #14] ldrb r2, [r4, #3152] @ zero_extendqisi2 @@ -838,15 +1024,15 @@ FlashDieInfoInit: add r2, r4, r2 strb r3, [r4, #3152] strb r5, [r2, #3156] -.L138: +.L169: add r5, r5, #1 cmp r5, #4 - bne .L140 - b .L141 -.L150: + bne .L171 + b .L172 +.L181: .align 2 -.L149: - .word .LANCHOR1+256 +.L180: + .word .LANCHOR1+472 .word .LANCHOR0 .word IDByte .word .LANCHOR0+3156 @@ -864,13 +1050,13 @@ FlashReadIdbData: stmfd sp!, {r3, lr} .save {r3, lr} mov r2, #2048 - ldr r1, .L153 + ldr r1, .L184 bl ftl_memcpy mov r0, #0 ldmfd sp!, {r3, pc} -.L154: +.L185: .align 2 -.L153: +.L184: .word .LANCHOR0+3328 .fnend .size FlashReadIdbData, .-FlashReadIdbData @@ -883,66 +1069,66 @@ FlashLoadPhyInfoInRam: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, lr} .save {r3, r4, r5, r6, r7, r8, r9, lr} - mov r6, #0 - ldr r8, .L168 -.L159: - mov r4, r6, asl #5 - ldr r1, .L168+4 - add r0, r4, #1 - ldrb r2, [r8, r6, asl #5] @ zero_extendqisi2 + mov r4, #0 + ldr r8, .L199 +.L190: + mov r7, r4, asl #5 + ldr r1, .L199+4 + add r0, r7, #1 + ldrb r2, [r8, r4, asl #5] @ zero_extendqisi2 add r0, r8, r0 - ldr r5, .L168+8 + ldr r6, .L199+8 bl FlashMemCmp8 - add r9, r5, #288 - subs r7, r0, #0 - bne .L156 - adds r9, r9, r4 - beq .L162 - add r4, r5, r4 - add r5, r5, #3040 - ldrb r3, [r4, #310] @ zero_extendqisi2 - mov r4, r7 - b .L161 -.L156: - add r6, r6, #1 - cmp r6, #86 - bne .L159 - b .L162 -.L167: + add r9, r6, #504 + subs r5, r0, #0 + bne .L187 + adds r9, r9, r7 + beq .L193 + add r4, r6, r7 + mov r3, r5 + ldr r1, .L199+12 + ldrb r2, [r4, #526] @ zero_extendqisi2 + b .L192 +.L187: add r4, r4, #1 - cmp r4, #4 - beq .L160 -.L161: - ldrb r2, [r5, r4, asl #5] @ zero_extendqisi2 - cmp r2, r3 - bne .L167 -.L160: - ldr r6, .L168+12 + cmp r4, #86 + bne .L190 + b .L193 +.L198: + add r3, r3, #1 + cmp r3, #4 + beq .L191 +.L192: + ldrb r0, [r1, r3, asl #5] @ zero_extendqisi2 + cmp r0, r2 + bne .L198 +.L191: + ldr r4, .L199+16 mov r2, #32 - ldr r1, .L168+16 - ldr r0, .L168+20 - add r1, r1, r4, asl #5 + ldr r1, .L199+12 + ldr r0, .L199+20 + add r1, r1, r3, asl #5 bl ftl_memcpy - mov r0, r6 + mov r0, r4 mov r1, r9 mov r2, #32 bl ftl_memcpy - ldrh r0, [r6, #10] + ldrh r0, [r4, #10] bl FlashBlockAlignInit - b .L157 -.L162: - mvn r7, #0 -.L157: - mov r0, r7 + b .L188 +.L193: + mvn r5, #0 +.L188: + mov r0, r5 ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, pc} -.L169: +.L200: .align 2 -.L168: - .word .LANCHOR1+288 +.L199: + .word .LANCHOR1+504 .word IDByte .word .LANCHOR1 - .word .LANCHOR1+256 - .word .LANCHOR1+3040 + .word .LANCHOR1+3256 + .word .LANCHOR1+472 .word .LANCHOR0+48 .fnend .size FlashLoadPhyInfoInRam, .-FlashLoadPhyInfoInRam @@ -954,7 +1140,7 @@ ftl_flash_suspend: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L171 + ldr r3, .L202 ldr r2, [r3, #-2808] ldr r1, [r2] str r1, [r3, #-2804] @@ -973,9 +1159,9 @@ ftl_flash_suspend: str r1, [r3, #-2780] str r2, [r3, #-2776] bx lr -.L172: +.L203: .align 2 -.L171: +.L202: .word .LANCHOR2 .fnend .size ftl_flash_suspend, .-ftl_flash_suspend @@ -991,16 +1177,16 @@ LogAddr2PhyAddr: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 mov r9, r3 - ldr r3, .L179 + ldr r3, .L210 mov fp, r1 - ldr r7, .L179+4 + ldr r7, .L210+4 mov r5, r0 mov r8, r2 ldrh r4, [r3, #12] ldrh r3, [r3, #14] - ldrh r10, [r7, #4] + ldrh r10, [r7, #36] smulbb r4, r4, r3 - ldrb r3, [r7] @ zero_extendqisi2 + ldrb r3, [r7, #32] @ zero_extendqisi2 cmp r3, #1 ldr r3, [r0, #4] moveq r10, r10, asl #1 @@ -1019,13 +1205,13 @@ LogAddr2PhyAddr: ubfx r1, r3, #0, #10 rsb r6, r4, r6 uxth r6, r6 - bne .L175 - ldr r3, .L179+8 + bne .L206 + ldr r3, .L210+8 ldrb r3, [r3, #-2744] @ zero_extendqisi2 cmp r3, #0 addeq r1, r7, r1, asl #1 ldreqh r1, [r1, #80] -.L175: +.L206: add lr, r7, r0, asl #2 ldrb r3, [sp, #48] @ zero_extendqisi2 ldr ip, [lr, #3164] @@ -1044,15 +1230,95 @@ LogAddr2PhyAddr: add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L180: +.L211: .align 2 -.L179: +.L210: .word .LANCHOR2-2772 .word .LANCHOR0 .word .LANCHOR2 .fnend .size LogAddr2PhyAddr, .-LogAddr2PhyAddr .align 2 + .global FlashReadStatusEN + .type FlashReadStatusEN, %function +FlashReadStatusEN: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + ldr ip, .L223 + stmfd sp!, {r3, r4, r5, lr} + .save {r3, r4, r5, lr} + ldr r4, [ip, r0, asl #3] + add r0, ip, r0, asl #3 + ldr r3, [ip, #44] + ldrb r5, [r0, #4] @ zero_extendqisi2 + ldrb r3, [r3, #8] @ zero_extendqisi2 + cmp r3, #2 + mov r3, r5, asl #8 + addne r3, r4, r3 + add r5, r5, #8 + movne r2, #112 + strne r2, [r3, #2056] + bne .L217 + cmp r2, #0 + add r3, r4, r3 + ldrneb r2, [ip, #62] @ zero_extendqisi2 + ldreqb r2, [ip, #61] @ zero_extendqisi2 + str r2, [r3, #2056] + ldrb r0, [ip, #63] @ zero_extendqisi2 + cmp r0, #0 + addne ip, r4, r5, asl #8 + movne r2, #0 + beq .L217 +.L216: + cmp r2, r0 + bcs .L217 + mov r3, r2, asl #3 + add r2, r2, #1 + mov r3, r1, lsr r3 + uxtb r3, r3 + str r3, [ip, #4] + b .L216 +.L217: + mov r0, #80 + bl ndelay + ldr r0, [r4, r5, asl #8] + uxtb r0, r0 + ldmfd sp!, {r3, r4, r5, pc} +.L224: + .align 2 +.L223: + .word .LANCHOR0 + .fnend + .size FlashReadStatusEN, .-FlashReadStatusEN + .align 2 + .global FlashWaitReadyEN + .type FlashWaitReadyEN, %function +FlashWaitReadyEN: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r4, r5, r6, lr} + .save {r4, r5, r6, lr} + mov r4, r0 + mov r5, r1 + mov r6, r2 +.L226: + mov r0, r4 + mov r1, r5 + mov r2, r6 + bl FlashReadStatusEN + cmp r0, #255 + beq .L226 + tst r0, #64 + ldmnefd sp!, {r4, r5, r6, pc} + mov r0, #1 + mov r1, #3 + bl usleep_range + b .L226 + .fnend + .size FlashWaitReadyEN, .-FlashWaitReadyEN + .align 2 .global ftl_read_flash_info .type ftl_read_flash_info, %function ftl_read_flash_info: @@ -1065,15 +1331,15 @@ ftl_read_flash_info: mov r2, #11 mov r4, r0 bl ftl_memset - ldr r2, .L186 - ldr r0, .L186+4 + ldr r2, .L237 + ldr r0, .L237+4 mov ip, #1 ldr r3, [r2, #44] ldrb r1, [r3, #9] @ zero_extendqisi2 - ldr r3, [r2, #4] + ldr r3, [r2, #36] smulbb r3, r1, r3 strh r3, [r4, #4] @ unaligned - ldr r3, .L186+8 + ldr r3, .L237+8 ldrb r1, [r3, #-2743] @ zero_extendqisi2 ldr r3, [r3, #-2740] strb r1, [r4, #7] @@ -1088,21 +1354,21 @@ ftl_read_flash_info: strb r3, [r4, #9] mov r3, #0 strb r3, [r4, #10] -.L182: +.L233: uxtb r2, r3 cmp r2, r1 - bcs .L185 + bcs .L236 ldrb lr, [r3, r0] @ zero_extendqisi2 add r3, r3, #1 ldrb r2, [r4, #10] @ zero_extendqisi2 orr r2, r2, ip, asl lr strb r2, [r4, #10] - b .L182 -.L185: + b .L233 +.L236: ldmfd sp!, {r4, pc} -.L187: +.L238: .align 2 -.L186: +.L237: .word .LANCHOR0 .word .LANCHOR0+3156 .word .LANCHOR2 @@ -1116,14 +1382,14 @@ FlashScheduleEnSet: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L189 + ldr r3, .L240 ldr r2, [r3, #-2736] str r0, [r3, #-2736] mov r0, r2 bx lr -.L190: +.L241: .align 2 -.L189: +.L240: .word .LANCHOR2 .fnend .size FlashScheduleEnSet, .-FlashScheduleEnSet @@ -1135,13 +1401,13 @@ FlashGetPageSize: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L192 + ldr r3, .L243 ldr r3, [r3, #44] ldrb r0, [r3, #9] @ zero_extendqisi2 bx lr -.L193: +.L244: .align 2 -.L192: +.L243: .word .LANCHOR0 .fnend .size FlashGetPageSize, .-FlashGetPageSize @@ -1164,16 +1430,16 @@ NandcGetChipIf: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L196 - add r0, r3, r0, asl #3 - ldrb r2, [r0, #16] @ zero_extendqisi2 - ldr r0, [r0, #12] - add r2, r2, #8 - add r0, r0, r2, asl #8 + ldr r2, .L247 + add r3, r2, r0, asl #3 + ldr r0, [r2, r0, asl #3] + ldrb r3, [r3, #4] @ zero_extendqisi2 + add r3, r3, #8 + add r0, r0, r3, asl #8 bx lr -.L197: +.L248: .align 2 -.L196: +.L247: .word .LANCHOR0 .fnend .size NandcGetChipIf, .-NandcGetChipIf @@ -1185,16 +1451,16 @@ NandcSetDdrPara: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L199 + ldr r3, .L250 ldr r2, [r3, #-2808] mov r3, r0, asl #8 orr r0, r3, r0, asl #16 orr r3, r0, #1 str r3, [r2, #304] bx lr -.L200: +.L251: .align 2 -.L199: +.L250: .word .LANCHOR2 .fnend .size NandcSetDdrPara, .-NandcSetDdrPara @@ -1206,14 +1472,14 @@ NandcSetDdrDiv: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L202 + ldr r3, .L253 orr r0, r0, #16640 ldr r3, [r3, #-2808] str r0, [r3, #344] bx lr -.L203: +.L254: .align 2 -.L202: +.L253: .word .LANCHOR2 .fnend .size NandcSetDdrDiv, .-NandcSetDdrDiv @@ -1225,7 +1491,7 @@ NandcSetDdrMode: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L207 + ldr r3, .L258 cmp r0, #0 ldr r2, [r3, #-2808] ldr r3, [r2] @@ -1233,9 +1499,9 @@ NandcSetDdrMode: orrne r3, r3, #253952 str r3, [r2] bx lr -.L208: +.L259: .align 2 -.L207: +.L258: .word .LANCHOR2 .fnend .size NandcSetDdrMode, .-NandcSetDdrMode @@ -1247,18 +1513,18 @@ NandcSetMode: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L216 + ldr r3, .L267 ands r1, r0, #6 ldr r2, [r3, #-2808] ldr r3, [r2] bfieq r3, r1, #13, #1 - beq .L212 + beq .L263 orr r3, r3, #24576 movw r1, #8322 bfc r3, #15, #1 str r1, [r2, #344] orr r3, r3, #196608 - ldr r1, .L216+4 + ldr r1, .L267+4 tst r0, #4 orrne r3, r3, #32768 str r1, [r2, #304] @@ -1266,13 +1532,13 @@ NandcSetMode: str r1, [r2, #308] mov r1, #39 str r1, [r2, #308] -.L212: +.L263: str r3, [r2] mov r0, #0 bx lr -.L217: +.L268: .align 2 -.L216: +.L267: .word .LANCHOR2 .word 1052675 .fnend @@ -1285,19 +1551,19 @@ NandcFlashCs: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L219 - add r0, r2, r0, asl #3 + ldr r3, .L270 mov r2, #1 - ldr r1, [r0, #12] - ldrb r0, [r0, #16] @ zero_extendqisi2 + ldr r1, [r3, r0, asl #3] + add r0, r3, r0, asl #3 + ldrb r0, [r0, #4] @ zero_extendqisi2 ldr r3, [r1] mov r2, r2, asl r0 bfi r3, r2, #0, #8 str r3, [r1] bx lr -.L220: +.L271: .align 2 -.L219: +.L270: .word .LANCHOR0 .fnend .size NandcFlashCs, .-NandcFlashCs @@ -1309,172 +1575,20 @@ NandcFlashDeCs: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L222 - add r0, r3, r0, asl #3 - ldr r2, [r0, #12] + ldr r3, .L273 + ldr r2, [r3, r0, asl #3] ldr r3, [r2] bfc r3, #0, #8 bfc r3, #17, #1 str r3, [r2] bx lr -.L223: +.L274: .align 2 -.L222: +.L273: .word .LANCHOR0 .fnend .size NandcFlashDeCs, .-NandcFlashDeCs .align 2 - .global NandcDelayns - .type NandcDelayns, %function -NandcDelayns: - .fnstart - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r3, lr} - .save {r3, lr} - add r0, r0, #996 - ldr r3, .L226 - add r0, r0, #3 - umull r0, r1, r0, r3 - ldr r3, .L226+4 - ldr r3, [r3, #8] - mov r0, r1, lsr #6 - blx r3 - mov r0, #0 - ldmfd sp!, {r3, pc} -.L227: - .align 2 -.L226: - .word 274877907 - .word arm_delay_ops - .fnend - .size NandcDelayns, .-NandcDelayns - .align 2 - .global FlashReadStatus - .type FlashReadStatus, %function -FlashReadStatus: - .fnstart - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r3, r4, r5, lr} - .save {r3, r4, r5, lr} - mov r2, #112 - ldr r3, .L230 - add r0, r3, r0, asl #3 - ldrb r4, [r0, #16] @ zero_extendqisi2 - ldr r5, [r0, #12] - mov r0, #80 - add r3, r5, r4, asl #8 - add r4, r4, #8 - str r2, [r3, #2056] - bl NandcDelayns - ldr r0, [r5, r4, asl #8] - ldmfd sp!, {r3, r4, r5, pc} -.L231: - .align 2 -.L230: - .word .LANCHOR0 - .fnend - .size FlashReadStatus, .-FlashReadStatus - .align 2 - .global ToshibaSetRRPara - .type ToshibaSetRRPara, %function -ToshibaSetRRPara: - .fnstart - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} - .save {r4, r5, r6, r7, r8, r9, r10, lr} - add r7, r1, r1, asl #2 - ldr r8, .L242 - mov r5, r0 - ldr r10, .L242+4 - mov r6, r1 - add r9, r8, #3168 - mov r4, #0 -.L233: - ldrb r3, [r10] @ zero_extendqisi2 - cmp r4, r3 - bcs .L241 - mov r3, #85 - str r3, [r5, #8] - ldrsb r3, [r4, r9] - mov r0, #200 - str r3, [r5, #4] - bl NandcDelayns - ldr r3, .L242+8 - ldrb r3, [r3] @ zero_extendqisi2 - cmp r3, #34 - addeq r3, r4, r7 - addeq r3, r9, r3 - beq .L240 - cmp r3, #35 - addne r3, r8, r6 - addne r3, r3, #3312 - ldrnesb r3, [r3] - bne .L239 - ldr r3, .L242+12 - add r2, r4, r7 - add r3, r3, r2 -.L240: - ldrsb r3, [r3, #5] -.L239: - str r3, [r5] - add r4, r4, #1 - b .L233 -.L241: - ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L243: - .align 2 -.L242: - .word .LANCHOR1 - .word g_maxRegNum - .word g_retryMode - .word .LANCHOR1+3216 - .fnend - .size ToshibaSetRRPara, .-ToshibaSetRRPara - .align 2 - .global SamsungSetRRPara - .type SamsungSetRRPara, %function -SamsungSetRRPara: - .fnstart - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L249 - stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} - .save {r4, r5, r6, r7, r8, r9, r10, lr} - add r1, r3, r1, asl #2 - ldr r8, .L249+4 - mov r4, #0 - add r5, r1, #3 - mov r6, r0 - mov r7, r3 - mov r9, #161 - mov r10, r4 -.L245: - ldrb r3, [r8] @ zero_extendqisi2 - cmp r4, r3 - bcs .L248 - str r9, [r6, #8] - mov r0, #300 - str r10, [r6] - ldrsb r3, [r4, r7] - add r4, r4, #1 - str r3, [r6] - ldrsb r3, [r5, #1]! - str r3, [r6] - bl NandcDelayns - b .L245 -.L248: - ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L250: - .align 2 -.L249: - .word .LANCHOR1+3320 - .word g_maxRegNum - .fnend - .size SamsungSetRRPara, .-SamsungSetRRPara - .align 2 .global HynixSetRRPara .type HynixSetRRPara, %function HynixSetRRPara: @@ -1484,80 +1598,80 @@ HynixSetRRPara: stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 - mov r6, r3 - ldr r3, .L260 - mov r10, r2 - mov r7, r0 + mov r6, r0 + ldr r0, .L284 + mov r7, r3 mov r9, r1 - ldr r2, [r3, #44] - ldrb r4, [r2, #19] @ zero_extendqisi2 - mov r2, r0, asl #3 + mov r10, r2 + ldr r3, [r0, #44] + ldrb r4, [r3, #19] @ zero_extendqisi2 + mov r3, r6, asl #3 cmp r4, #6 - ldreq r4, .L260+4 - addeq r4, r4, r0, asl #6 + ldreq r4, .L284+4 + addeq r4, r4, r6, asl #6 addeq r4, r4, #20 - addeq r4, r4, r6, asl #2 - beq .L253 -.L252: + addeq r4, r4, r7, asl #2 + beq .L277 +.L276: cmp r4, #7 - bne .L254 - ldr r1, .L260+4 - mov r4, #160 - mla r4, r4, r0, r1 - add r1, r6, r6, asl #2 - add r4, r4, #28 - add r4, r4, r1, asl #1 - b .L253 -.L254: + bne .L278 + ldr r2, .L284+4 + mov ip, #160 + add r4, r7, r7, asl #2 + mla ip, ip, r6, r2 + add ip, ip, #28 + add r4, ip, r4, asl #1 + b .L277 +.L278: cmp r4, #8 - addne r4, r6, r2 - addeq r1, r6, r6, asl #2 - ldrne r1, .L260+4 - ldreq r4, .L260+8 - addne r4, r1, r4, asl #3 - addeq r4, r4, r1 + addne r4, r7, r3 + addeq r2, r7, r7, asl #2 + ldrne r2, .L284+4 + ldreq r4, .L284+8 + addne r4, r2, r4, asl #3 + addeq r4, r4, r2 addne r4, r4, #20 -.L253: - add r3, r3, r2 - mov r0, r7 +.L277: + ldr r8, [r0, r6, asl #3] + add r0, r0, r3 sub r9, r9, #1 - sub r4, r4, #1 - ldrb fp, [r3, #16] @ zero_extendqisi2 - ldr r8, [r3, #12] + sub r10, r10, #1 + ldrb fp, [r0, #4] @ zero_extendqisi2 + mov r0, r6 bl NandcFlashCs - sub r2, r10, #1 - add r10, r10, r9 - mov fp, fp, asl #8 + sub ip, r4, #1 + add r4, r4, r9 mov r3, #54 + mov fp, fp, asl #8 add r5, r8, fp str r3, [r5, #2056] -.L256: - cmp r2, r10 - beq .L259 - ldrb r3, [r2, #1]! @ zero_extendqisi2 +.L280: + cmp ip, r4 + beq .L283 + ldrb r3, [r10, #1]! @ zero_extendqisi2 mov r0, #200 + str ip, [sp, #4] str r3, [r5, #2052] - str r2, [sp, #4] - bl NandcDelayns - ldrsb r3, [r4, #1]! + bl ndelay + ldr ip, [sp, #4] + ldrsb r3, [ip, #1]! str r3, [r5, #2048] - ldr r2, [sp, #4] - b .L256 -.L259: + b .L280 +.L283: add r8, r8, fp mov r3, #22 - mov r0, r7 + mov r0, r6 str r3, [r8, #2056] bl NandcFlashDeCs - ldr r3, .L260+12 - add r7, r3, r7 - strb r6, [r7, #-1880] + ldr r3, .L284+12 + add r6, r3, r6 + strb r7, [r6, #-1880] add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L261: +.L285: .align 2 -.L260: +.L284: .word .LANCHOR0 .word .LANCHOR2-2732 .word .LANCHOR2-2704 @@ -1571,7 +1685,7 @@ FlashSetReadRetryDefault: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L270 + ldr r3, .L294 ldr r3, [r3, #44] ldrb r3, [r3, #19] @ zero_extendqisi2 sub r3, r3, #1 @@ -1580,25 +1694,25 @@ FlashSetReadRetryDefault: stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r4, #0 - ldr r5, .L270+4 - ldr r6, .L270+8 -.L263: + ldr r5, .L294+4 + ldr r6, .L294+8 +.L287: ldrb r3, [r5, r4, asl #3] @ zero_extendqisi2 uxtb r0, r4 cmp r3, #173 - bne .L264 + bne .L288 ldrb r1, [r6, #-2731] @ zero_extendqisi2 mov r3, #0 - ldr r2, .L270+12 + ldr r2, .L294+12 bl HynixSetRRPara -.L264: +.L288: add r4, r4, #1 cmp r4, #4 - bne .L263 + bne .L287 ldmfd sp!, {r4, r5, r6, pc} -.L271: +.L295: .align 2 -.L270: +.L294: .word .LANCHOR0 .word IDByte .word .LANCHOR2 @@ -1606,86 +1720,6 @@ FlashSetReadRetryDefault: .fnend .size FlashSetReadRetryDefault, .-FlashSetReadRetryDefault .align 2 - .global FlashReadStatusEN - .type FlashReadStatusEN, %function -FlashReadStatusEN: - .fnstart - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - ldr ip, .L283 - stmfd sp!, {r3, r4, r5, lr} - .save {r3, r4, r5, lr} - add r0, ip, r0, asl #3 - ldr r3, [ip, #44] - ldrb r5, [r0, #16] @ zero_extendqisi2 - ldr r4, [r0, #12] - ldrb r3, [r3, #8] @ zero_extendqisi2 - cmp r3, #2 - mov r3, r5, asl #8 - addne r3, r4, r3 - add r5, r5, #8 - movne r2, #112 - strne r2, [r3, #2056] - bne .L277 - cmp r2, #0 - add r3, r4, r3 - ldrneb r2, [ip, #62] @ zero_extendqisi2 - ldreqb r2, [ip, #61] @ zero_extendqisi2 - str r2, [r3, #2056] - ldrb r0, [ip, #63] @ zero_extendqisi2 - cmp r0, #0 - addne ip, r4, r5, asl #8 - movne r2, #0 - beq .L277 -.L276: - cmp r2, r0 - bcs .L277 - mov r3, r2, asl #3 - add r2, r2, #1 - mov r3, r1, lsr r3 - uxtb r3, r3 - str r3, [ip, #4] - b .L276 -.L277: - mov r0, #80 - bl NandcDelayns - ldr r0, [r4, r5, asl #8] - uxtb r0, r0 - ldmfd sp!, {r3, r4, r5, pc} -.L284: - .align 2 -.L283: - .word .LANCHOR0 - .fnend - .size FlashReadStatusEN, .-FlashReadStatusEN - .align 2 - .global FlashWaitReadyEN - .type FlashWaitReadyEN, %function -FlashWaitReadyEN: - .fnstart - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r4, r5, r6, lr} - .save {r4, r5, r6, lr} - mov r4, r0 - mov r5, r1 - mov r6, r2 -.L286: - mov r0, r4 - mov r1, r5 - mov r2, r6 - bl FlashReadStatusEN - cmp r0, #255 - beq .L286 - tst r0, #64 - ldmnefd sp!, {r4, r5, r6, pc} - mov r0, #1 - mov r1, #3 - bl usleep_range - b .L286 - .fnend - .size FlashWaitReadyEN, .-FlashWaitReadyEN - .align 2 .global FlashWaitCmdDone .type FlashWaitCmdDone, %function FlashWaitCmdDone: @@ -1694,12 +1728,12 @@ FlashWaitCmdDone: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} - ldr r5, .L300 + ldr r5, .L304 add r4, r5, r0, asl #4 ldr r3, [r4, #3204] ldrb r7, [r4, #3196] @ zero_extendqisi2 cmp r3, #0 - beq .L294 + beq .L298 mov r6, r0 mov r0, r7 add r5, r5, r6, asl #2 @@ -1722,53 +1756,29 @@ FlashWaitCmdDone: cmp r1, r2 strne r3, [r1] strne r2, [r4, #3208] -.L294: +.L298: mov r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L301: - .align 2 -.L300: - .word .LANCHOR0 - .fnend - .size FlashWaitCmdDone, .-FlashWaitCmdDone - .align 2 - .type flash_read_ecc, %function -flash_read_ecc: - .fnstart - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L304 - stmfd sp!, {r4, lr} - .save {r4, lr} - add r0, r2, r0, asl #3 - ldrb r4, [r0, #16] @ zero_extendqisi2 - ldr r3, [r0, #12] - mov r0, #80 - add r4, r3, r4, asl #8 - mov r3, #122 - str r3, [r4, #2056] - bl NandcDelayns - ldr r3, [r4, #2048] - ldr r0, [r4, #2048] - and r3, r3, #15 - and r0, r0, #15 - cmp r0, r3 - movcc r0, r3 - ldr r3, [r4, #2048] - and r3, r3, #15 - cmp r0, r3 - movcc r0, r3 - ldr r3, [r4, #2048] - and r3, r3, #15 - cmp r0, r3 - movcc r0, r3 - ldmfd sp!, {r4, pc} .L305: .align 2 .L304: .word .LANCHOR0 .fnend - .size flash_read_ecc, .-flash_read_ecc + .size FlashWaitCmdDone, .-FlashWaitCmdDone + .align 2 + .global NandcDelayns + .type NandcDelayns, %function +NandcDelayns: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r3, lr} + .save {r3, lr} + bl ndelay + mov r0, #0 + ldmfd sp!, {r3, pc} + .fnend + .size NandcDelayns, .-NandcDelayns .align 2 .global NandcWaitFlashReadyNoDelay .type NandcWaitFlashReadyNoDelay, %function @@ -1776,34 +1786,33 @@ NandcWaitFlashReadyNoDelay: .fnstart @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L312 + ldr r3, .L314 stmfd sp!, {r0, r1, r2, r4, r5, lr} .save {r4, r5, lr} .pad #12 - add r0, r3, r0, asl #3 - ldr r4, .L312+4 - ldr r5, [r0, #12] -.L308: + ldr r4, .L314+4 + ldr r5, [r3, r0, asl #3] +.L310: ldr r3, [r5] str r3, [sp, #4] ldr r3, [sp, #4] tst r3, #512 - bne .L309 + bne .L311 mov r0, #10 - bl NandcDelayns + bl ndelay subs r4, r4, #1 - bne .L308 + bne .L310 mvn r0, #0 - b .L307 -.L309: + b .L309 +.L311: mov r0, #0 -.L307: +.L309: add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, pc} -.L313: +.L315: .align 2 -.L312: +.L314: .word .LANCHOR0 .word 100000 .fnend @@ -1815,37 +1824,36 @@ NandcWaitFlashReady: .fnstart @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L320 + ldr r3, .L322 stmfd sp!, {r0, r1, r2, r4, r5, lr} .save {r4, r5, lr} .pad #12 - add r0, r3, r0, asl #3 - ldr r4, .L320+4 - ldr r5, [r0, #12] + ldr r5, [r3, r0, asl #3] mov r0, #130 - bl NandcDelayns -.L316: + bl ndelay + ldr r4, .L322+4 +.L318: ldr r3, [r5] str r3, [sp, #4] ldr r3, [sp, #4] tst r3, #512 - bne .L317 + bne .L319 mov r0, #1 mov r1, #2 bl usleep_range subs r4, r4, #1 - bne .L316 + bne .L318 mvn r0, #0 - b .L315 -.L317: + b .L317 +.L319: mov r0, #0 -.L315: +.L317: add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, pc} -.L321: +.L323: .align 2 -.L320: +.L322: .word .LANCHOR0 .word 100000 .fnend @@ -1857,13 +1865,13 @@ FlashReset: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L324 + ldr r3, .L326 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} - add r3, r3, r0, asl #3 mov r4, r0 - ldrb r6, [r3, #16] @ zero_extendqisi2 - ldr r5, [r3, #12] + ldr r5, [r3, r0, asl #3] + add r3, r3, r0, asl #3 + ldrb r6, [r3, #4] @ zero_extendqisi2 bl NandcFlashCs mov r3, #255 mov r0, r4 @@ -1873,9 +1881,9 @@ FlashReset: mov r0, r4 ldmfd sp!, {r4, r5, r6, lr} b NandcFlashDeCs -.L325: +.L327: .align 2 -.L324: +.L326: .word .LANCHOR0 .fnend .size FlashReset, .-FlashReset @@ -1888,28 +1896,28 @@ flash_enter_slc_mode: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} - ldr r6, .L333 + ldr r6, .L335 ldrb r3, [r6, #-2744] @ zero_extendqisi2 cmp r3, #0 ldmeqfd sp!, {r4, r5, r6, r7, r8, pc} mov r5, r0 bl NandcFlashCs - ldr r3, .L333+4 + ldr r3, .L335+4 + ldr r7, [r3, r5, asl #3] add r3, r3, r5, asl #3 - ldrb r8, [r3, #16] @ zero_extendqisi2 - ldr r7, [r3, #12] - ldr r3, .L333+8 + ldrb r8, [r3, #4] @ zero_extendqisi2 + ldr r3, .L335+8 mov r8, r8, asl #8 ldrb r3, [r3, r5, asl #3] @ zero_extendqisi2 cmp r3, #44 - bne .L328 + bne .L330 add r4, r7, r8 mov r3, #239 mov r0, #50 str r3, [r4, #2056] mov r3, #145 str r3, [r4, #2052] - bl NandcDelayns + bl ndelay mov r3, #0 mov r2, #1 str r3, [r4, #2048] @@ -1917,8 +1925,8 @@ flash_enter_slc_mode: str r2, [r4, #2048] str r3, [r4, #2048] str r3, [r4, #2048] - bl NandcDelayns -.L328: + bl ndelay +.L330: add r7, r7, r8 mov r0, r5 bl NandcWaitFlashReadyNoDelay @@ -1929,9 +1937,9 @@ flash_enter_slc_mode: mov r3, #2 strb r3, [r6, #-1876] ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L334: +.L336: .align 2 -.L333: +.L335: .word .LANCHOR2 .word .LANCHOR0 .word IDByte @@ -1946,28 +1954,28 @@ flash_exit_slc_mode: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} - ldr r6, .L342 + ldr r6, .L344 ldrb r3, [r6, #-2744] @ zero_extendqisi2 cmp r3, #0 ldmeqfd sp!, {r4, r5, r6, r7, r8, pc} mov r5, r0 bl NandcFlashCs - ldr r3, .L342+4 + ldr r3, .L344+4 + ldr r7, [r3, r5, asl #3] add r3, r3, r5, asl #3 - ldrb r8, [r3, #16] @ zero_extendqisi2 - ldr r7, [r3, #12] - ldr r3, .L342+8 + ldrb r8, [r3, #4] @ zero_extendqisi2 + ldr r3, .L344+8 mov r8, r8, asl #8 ldrb r3, [r3, r5, asl #3] @ zero_extendqisi2 cmp r3, #44 - bne .L337 + bne .L339 add r4, r7, r8 mov r3, #239 mov r0, #50 str r3, [r4, #2056] mov r3, #145 str r3, [r4, #2052] - bl NandcDelayns + bl ndelay mov r3, #2 mov r0, #100 str r3, [r4, #2048] @@ -1976,8 +1984,8 @@ flash_exit_slc_mode: mov r3, #0 str r3, [r4, #2048] str r3, [r4, #2048] - bl NandcDelayns -.L337: + bl ndelay +.L339: add r7, r7, r8 mov r0, r5 bl NandcWaitFlashReadyNoDelay @@ -1988,9 +1996,9 @@ flash_exit_slc_mode: mov r3, #0 strb r3, [r6, #-1876] ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L343: +.L345: .align 2 -.L342: +.L344: .word .LANCHOR2 .word .LANCHOR0 .word IDByte @@ -2034,14 +2042,14 @@ FlashSetInterfaceMode: .fnstart @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L369 + ldr r3, .L371 stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 mov lr, #0 ldrb r2, [r3, #-1875] @ zero_extendqisi2 mov r4, #239 - ldr r7, .L369+4 + ldr r7, .L371+4 mov r5, #128 and r3, r2, #1 and r2, r2, #4 @@ -2053,74 +2061,74 @@ FlashSetInterfaceMode: mov r9, #32 mov r10, #5 str r3, [sp] -.L356: - ldr r3, .L369+8 +.L358: + ldr r3, .L371+8 ldrb ip, [lr, r7] @ zero_extendqisi2 ldr r1, [r3, lr]! cmp ip, #69 cmpne ip, #152 ldrb r3, [r3, #4] @ zero_extendqisi2 - beq .L347 + beq .L349 cmp ip, #44 cmpne ip, #173 - bne .L348 -.L347: + bne .L350 +.L349: cmp r0, #1 - bne .L349 + bne .L351 ldr fp, [sp, #4] cmp fp, #0 - beq .L348 + beq .L350 mov r3, r3, asl #8 cmp ip, #173 add fp, r1, r3 str r4, [fp, #2056] streq r0, [fp, #2052] - beq .L368 + beq .L370 cmp ip, #44 streq r0, [fp, #2052] strne r5, [fp, #2052] streq r10, [fp, #2048] strne r0, [fp, #2048] - b .L354 -.L349: + b .L356 +.L351: ldr fp, [sp] cmp fp, #0 - beq .L348 + beq .L350 mov r3, r3, asl #8 cmp ip, #173 add fp, r1, r3 str r4, [fp, #2056] streq r6, [fp, #2052] streq r9, [fp, #2048] - beq .L354 + beq .L356 cmp ip, #44 streq r6, [fp, #2052] streq r8, [fp, #2048] - beq .L354 + beq .L356 str r5, [fp, #2052] -.L368: +.L370: str r2, [fp, #2048] -.L354: +.L356: add r3, r1, r3 str r2, [r3, #2048] str r2, [r3, #2048] str r2, [r3, #2048] -.L348: +.L350: add lr, lr, #8 cmp lr, #32 - bne .L356 + bne .L358 mov r0, #0 bl NandcWaitFlashReady mov r0, #0 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L370: +.L372: .align 2 -.L369: +.L371: .word .LANCHOR2 .word IDByte - .word .LANCHOR0+12 + .word .LANCHOR0 .fnend .size FlashSetInterfaceMode, .-FlashSetInterfaceMode .align 2 @@ -2130,18 +2138,18 @@ FlashReadSpare: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr ip, .L373 + ldr ip, .L375 stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} - add ip, ip, r0, asl #3 - ldr r3, .L373+4 mov r5, r2 - ldrb r2, [ip, #16] @ zero_extendqisi2 - ldr r4, [ip, #12] - ldrb r3, [r3, #265] @ zero_extendqisi2 + ldr r3, .L375+4 + ldr r4, [ip, r0, asl #3] + add ip, ip, r0, asl #3 + ldrb r3, [r3, #481] @ zero_extendqisi2 + ldrb r2, [ip, #4] @ zero_extendqisi2 + mov r3, r3, asl #9 add r4, r4, r2, asl #8 mov r2, #0 - mov r3, r3, asl #9 str r2, [r4, #2056] str r3, [r4, #2052] mov r3, r3, lsr #8 @@ -2158,9 +2166,9 @@ FlashReadSpare: ldr r3, [r4, #2048] strb r3, [r5] ldmfd sp!, {r3, r4, r5, pc} -.L374: +.L376: .align 2 -.L373: +.L375: .word .LANCHOR0 .word .LANCHOR1 .fnend @@ -2172,12 +2180,12 @@ SandiskProgTestBadBlock: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L377 + ldr r2, .L379 stmfd sp!, {r4, lr} .save {r4, lr} + ldr r3, [r2, r0, asl #3] add r2, r2, r0, asl #3 - ldrb r4, [r2, #16] @ zero_extendqisi2 - ldr r3, [r2, #12] + ldrb r4, [r2, #4] @ zero_extendqisi2 add r4, r3, r4, asl #8 mov r3, #162 str r3, [r4, #2056] @@ -2198,13 +2206,13 @@ SandiskProgTestBadBlock: mov r3, #112 mov r0, #80 str r3, [r4, #2056] - bl NandcDelayns + bl ndelay ldr r0, [r4, #2048] and r0, r0, #1 ldmfd sp!, {r4, pc} -.L378: +.L380: .align 2 -.L377: +.L379: .word .LANCHOR0 .fnend .size SandiskProgTestBadBlock, .-SandiskProgTestBadBlock @@ -2224,17 +2232,17 @@ SandiskSetRRPara: str r3, [r0, #4] mov r0, #200 mov r4, r1 - bl NandcDelayns - ldr r1, .L387 - ldr r0, .L387+4 + bl ndelay + ldr r1, .L389 + ldr r0, .L389+4 add r4, r4, r4, asl #2 - ldr ip, .L387+8 + ldr ip, .L389+8 sub lr, r1, #48 mov r2, #0 -.L380: +.L382: ldrb r3, [r0] @ zero_extendqisi2 cmp r2, r3 - bcs .L386 + bcs .L388 ldrb r3, [ip] @ zero_extendqisi2 cmp r3, #67 add r3, r2, r4 @@ -2243,15 +2251,15 @@ SandiskSetRRPara: add r2, r2, #1 ldrsb r3, [r3, #5] str r3, [r5] - b .L380 -.L386: + b .L382 +.L388: mov r0, #0 ldmfd sp!, {r3, r4, r5, lr} b NandcWaitFlashReady -.L388: +.L390: .align 2 -.L387: - .word .LANCHOR1+3216 +.L389: + .word .LANCHOR1+304 .word g_maxRegNum .word g_retryMode .fnend @@ -2268,26 +2276,26 @@ micron_auto_read_calibration_config: mov r4, r0 mov r5, r1 bl NandcWaitFlashReady - ldr r3, .L391 + ldr r2, .L393 mov r0, #200 - add r2, r3, r4, asl #3 - ldrb r4, [r2, #16] @ zero_extendqisi2 - ldr r3, [r2, #12] + ldr r3, [r2, r4, asl #3] + add r2, r2, r4, asl #3 + ldrb r4, [r2, #4] @ zero_extendqisi2 add r4, r3, r4, asl #8 mov r3, #239 str r3, [r4, #2056] mov r3, #150 str r3, [r4, #2052] - bl NandcDelayns + bl ndelay str r5, [r4, #2048] mov r3, #0 str r3, [r4, #2048] str r3, [r4, #2048] str r3, [r4, #2048] ldmfd sp!, {r3, r4, r5, pc} -.L392: +.L394: .align 2 -.L391: +.L393: .word .LANCHOR0 .fnend .size micron_auto_read_calibration_config, .-micron_auto_read_calibration_config @@ -2301,15 +2309,15 @@ FlashEraseSLc2KBlocks: stmfd sp!, {r4, r5, r6, r7, r8, r9, lr} .save {r4, r5, r6, r7, r8, r9, lr} mov r5, #0 - ldr r8, .L405 + ldr r8, .L407 .pad #20 sub sp, sp, #20 mov r6, r0 mov r9, r1 mov r7, r5 -.L394: +.L396: cmp r7, r9 - beq .L404 + beq .L406 rsb r3, r7, r9 add r2, sp, #8 add r0, r6, r5 @@ -2323,7 +2331,7 @@ FlashEraseSLc2KBlocks: cmp r3, r2 mvncs r3, #0 strcs r3, [r6, r5] - bcs .L396 + bcs .L398 add r2, r8, r3 add r3, r8, r3, asl #4 ldrb r4, [r2, #3156] @ zero_extendqisi2 @@ -2346,7 +2354,7 @@ FlashEraseSLc2KBlocks: sbfx r0, r0, #0, #1 str r0, [r6, r5] mov r0, r4 - ldr r1, [r8, #4] + ldr r1, [r8, #36] add r1, r1, r3 bl FlashEraseCmd mov r0, r4 @@ -2359,25 +2367,25 @@ FlashEraseSLc2KBlocks: strne r3, [r6, r5] ldr r3, [r6, r5] cmn r3, #1 - bne .L398 - ldr r0, .L405+4 + bne .L400 + ldr r0, .L407+4 ldr r1, [sp, #8] bl printk -.L398: +.L400: mov r0, r4 bl NandcFlashDeCs -.L396: +.L398: add r7, r7, #1 add r5, r5, #36 - b .L394 -.L404: + b .L396 +.L406: mov r0, #0 add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc} -.L406: +.L408: .align 2 -.L405: +.L407: .word .LANCHOR0 .word .LC1 .fnend @@ -2392,22 +2400,22 @@ FlashEraseBlocks: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r8, r2 - ldr r4, .L442 + ldr r4, .L444 .pad #28 sub sp, sp, #28 - ldrb r5, [r4] @ zero_extendqisi2 + ldrb r5, [r4, #32] @ zero_extendqisi2 cmp r5, #0 - beq .L425 + beq .L427 mov r1, r2 bl FlashEraseSLc2KBlocks - b .L409 -.L425: - ldr fp, .L442+4 + b .L411 +.L427: + ldr fp, .L444+4 mov r9, r0 mov r10, r1 -.L408: +.L410: cmp r5, r8 - bcs .L440 + bcs .L442 mov r3, #36 mov r1, #0 mul r6, r3, r5 @@ -2426,17 +2434,17 @@ FlashEraseBlocks: cmp r0, r3 mvncs r3, #0 strcs r3, [r9, r6] - bcs .L411 + bcs .L413 ldrb r3, [fp, #-1874] @ zero_extendqisi2 cmp r3, #0 add r3, r4, r0, asl #4 ldr r3, [r3, #3204] moveq r7, #0 cmp r3, #0 - beq .L413 + beq .L415 uxtb r0, r0 bl FlashWaitCmdDone -.L413: +.L415: ldr r2, [sp, #20] cmp r7, #0 ldr r0, [sp, #12] @@ -2458,16 +2466,16 @@ FlashEraseBlocks: bl NandcFlashCs cmp r10, #1 mov r0, r6 - bne .L415 - ldr r3, .L442+4 + bne .L417 + ldr r3, .L444+4 ldrb r3, [r3, #-2744] @ zero_extendqisi2 cmp r3, #0 - beq .L415 + beq .L417 bl flash_enter_slc_mode - b .L416 -.L415: + b .L418 +.L417: bl flash_exit_slc_mode -.L416: +.L418: ldr r3, [sp, #20] mov r0, r6 ldr r1, [sp, #16] @@ -2483,59 +2491,59 @@ FlashEraseBlocks: bl FlashEraseCmd mov r0, r6 bl NandcFlashDeCs -.L411: +.L413: add r5, r5, #1 - b .L408 -.L440: - ldr r6, .L442+4 + b .L410 +.L442: + ldr r6, .L444+4 mov r5, #0 - ldr r7, .L442+8 -.L418: + ldr r7, .L444+8 +.L420: ldrb r3, [r4, #3152] @ zero_extendqisi2 cmp r5, r3 - bcs .L441 + bcs .L443 uxtb r0, r5 bl FlashWaitCmdDone cmp r10, #1 - bne .L419 + bne .L421 ldrb r3, [r6, #-2744] @ zero_extendqisi2 cmp r3, #0 - beq .L419 + beq .L421 ldrb r0, [r7, r5, asl #4] @ zero_extendqisi2 bl flash_exit_slc_mode -.L419: +.L421: add r5, r5, #1 - b .L418 -.L441: - ldr r3, .L442+4 + b .L420 +.L443: + ldr r3, .L444+4 ldr r3, [r3, #-1872] cmp r3, #0 - bne .L421 -.L423: + bne .L423 +.L425: mov r0, #0 - b .L409 -.L421: - ldr r3, .L442+12 + b .L411 +.L423: + ldr r3, .L444+12 ldrb r3, [r3] @ zero_extendqisi2 cmp r3, #69 - bne .L423 + bne .L425 mov r3, #0 mov r2, #36 mov r1, r3 -.L422: +.L424: cmp r3, r8 - beq .L423 + beq .L425 mul r0, r2, r3 add r3, r3, #1 str r1, [r9, r0] - b .L422 -.L409: + b .L424 +.L411: add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L443: +.L445: .align 2 -.L442: +.L444: .word .LANCHOR0 .word .LANCHOR2 .word .LANCHOR0+3196 @@ -2549,7 +2557,7 @@ HynixGetReadRetryDefault: .fnstart @ args = 0, pretend = 0, frame = 40 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L553 + ldr r3, .L555 mvn r2, #83 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} @@ -2565,17 +2573,17 @@ HynixGetReadRetryDefault: strb r0, [r3, #-2727] strb r1, [r3, #-2726] strb r2, [r3, #-2725] - bne .L445 + bne .L447 mvn r2, #88 strb r2, [r3, #-2728] - ldr r3, .L553+4 + ldr r3, .L555+4 mvn r2, #8 mov r5, #7 strb r2, [r3, #3401] - b .L506 -.L445: + b .L508 +.L447: cmp r4, #3 - bne .L447 + bne .L449 mvn r2, #79 strb r2, [r3, #-2728] mvn r2, #78 @@ -2591,10 +2599,10 @@ HynixGetReadRetryDefault: mvn r2, #73 strb r2, [r3, #-2722] mvn r2, #72 - b .L547 -.L447: + b .L549 +.L449: cmp r4, #4 - bne .L448 + bne .L450 mvn ip, #51 strb r0, [r3, #-2723] strb ip, [r3, #-2728] @@ -2607,14 +2615,14 @@ HynixGetReadRetryDefault: strb ip, [r3, #-2725] mvn ip, #50 strb ip, [r3, #-2724] -.L547: +.L549: mov r5, #8 strb r2, [r3, #-2721] mov r6, r5 - b .L446 -.L448: + b .L448 +.L450: cmp r4, #5 - bne .L449 + bne .L451 mov r2, #56 mov r5, #8 strb r2, [r3, #-2728] @@ -2624,10 +2632,10 @@ HynixGetReadRetryDefault: strb r2, [r3, #-2726] mov r2, #59 strb r2, [r3, #-2725] - b .L506 -.L449: + b .L508 +.L451: cmp r4, #6 - bne .L450 + bne .L452 mov r2, #14 mov r5, #12 strb r2, [r3, #-2728] @@ -2637,10 +2645,10 @@ HynixGetReadRetryDefault: strb r2, [r3, #-2726] mov r2, #17 strb r2, [r3, #-2725] - b .L506 -.L450: + b .L508 +.L452: cmp r4, #7 - bne .L451 + bne .L453 mvn r2, #79 mov r5, #12 strb r2, [r3, #-2728] @@ -2663,11 +2671,11 @@ HynixGetReadRetryDefault: strb r2, [r3, #-2720] mvn r2, #42 strb r2, [r3, #-2719] - b .L446 -.L451: + b .L448 +.L453: cmp r4, #8 mov r5, #7 - bne .L506 + bne .L508 mov r2, #6 strb r5, [r3, #-2727] strb r2, [r3, #-2728] @@ -2678,42 +2686,42 @@ HynixGetReadRetryDefault: mov r6, #5 mov r2, #10 strb r2, [r3, #-2724] - b .L446 -.L506: + b .L448 +.L508: mov r6, #4 -.L446: +.L448: sub r3, r4, #1 cmp r3, #1 - bhi .L543 - ldr r10, .L553+8 + bhi .L545 + ldr r10, .L555+8 mov r9, #0 -.L452: - ldr r3, .L553+12 +.L454: + ldr r3, .L555+12 uxtb r2, r9 ldrb r1, [r3, #3152] @ zero_extendqisi2 cmp r1, r2 - bls .L459 + bls .L461 add r2, r3, r2 - ldr r8, .L553+16 + ldr r8, .L555+16 ldrb r2, [r2, #3156] @ zero_extendqisi2 + ldr r1, [r3, r2, asl #3] add r3, r3, r2, asl #3 add r4, r8, r2, asl #6 - add r4, r4, #20 add r8, r8, #3 - ldrb r7, [r3, #16] @ zero_extendqisi2 - ldr r1, [r3, #12] + ldrb r7, [r3, #4] @ zero_extendqisi2 + add r4, r4, #20 mov fp, r4 mov r2, r4 add r7, r1, r7, asl #8 mov r1, #55 -.L454: +.L456: str r1, [r7, #2056] mov r0, #80 ldrb r3, [r8, #1]! @ zero_extendqisi2 str r2, [sp, #4] str r1, [sp] str r3, [r7, #2052] - bl NandcDelayns + bl ndelay ldr r3, [r7, #2048] ldr r2, [sp, #4] ldr r1, [sp] @@ -2721,23 +2729,23 @@ HynixGetReadRetryDefault: rsb r3, r4, r2 uxtb r3, r3 cmp r3, r6 - bcc .L454 + bcc .L456 mov r2, #0 -.L455: +.L457: add r0, r10, r2 mov r3, #1 -.L456: +.L458: ldrb r1, [r0, r3, asl #2] @ zero_extendqisi2 ldrb ip, [fp] @ zero_extendqisi2 add r1, r1, ip strb r1, [fp, r3, asl #3] add r3, r3, #1 cmp r3, #7 - bne .L456 + bne .L458 add r2, r2, #1 add fp, fp, #1 cmp r2, #4 - bne .L455 + bne .L457 mov r3, #0 add r9, r9, #1 strb r3, [r4, #16] @@ -2747,13 +2755,13 @@ HynixGetReadRetryDefault: strb r3, [r4, #48] strb r3, [r4, #41] strb r3, [r4, #49] - b .L452 -.L543: + b .L454 +.L545: sub r3, r4, #3 cmp r3, #5 - bhi .L459 + bhi .L461 smulbb r8, r6, r5 - ldr fp, .L553 + ldr fp, .L555 mov r3, r8, asl #4 mov r8, r8, asr #1 str r3, [sp, #36] @@ -2761,31 +2769,31 @@ HynixGetReadRetryDefault: str r3, [sp, #4] mov r3, #0 str r3, [sp, #16] -.L460: +.L462: ldrb r3, [sp, #16] @ zero_extendqisi2 str r3, [sp, #12] - ldr r3, .L553+12 + ldr r3, .L555+12 ldr r2, [sp, #12] ldrb r3, [r3, #3152] @ zero_extendqisi2 cmp r3, r2 - bhi .L504 -.L459: - ldr r3, .L553 + bhi .L506 +.L461: + ldr r3, .L555 strb r6, [r3, #-2731] strb r5, [r3, #-2730] add sp, sp, #44 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L504: +.L506: ldr r2, [sp, #12] - ldr r3, .L553+12 + ldr r3, .L555+12 add r3, r3, r2 ldrb r10, [r3, #3156] @ zero_extendqisi2 - ldr r3, .L553+12 - add r3, r3, r10, asl #3 + ldr r3, .L555+12 mov r0, r10 - ldr r8, [r3, #12] - ldrb r3, [r3, #16] @ zero_extendqisi2 + ldr r8, [r3, r10, asl #3] + add r3, r3, r10, asl #3 + ldrb r3, [r3, #4] @ zero_extendqisi2 mov r9, r3, asl #8 str r3, [sp, #8] add r7, r8, r9 @@ -2793,50 +2801,50 @@ HynixGetReadRetryDefault: str r3, [r7, #2056] bl NandcWaitFlashReady cmp r4, #7 - ldreq r7, .L553+16 + ldreq r7, .L555+16 moveq r3, #160 mlaeq r7, r3, r10, r7 addeq r3, r7, #28 - beq .L548 -.L461: + beq .L550 +.L463: cmp r4, #8 - beq .L463 - ldr r7, .L553+16 + beq .L465 + ldr r7, .L555+16 add r7, r7, r10, asl #6 add r3, r7, #20 -.L548: +.L550: str r3, [sp, #20] cmp r4, #4 add r3, r8, r9 mov r2, #54 str r2, [r3, #2056] - bne .L464 + bne .L466 mov r2, #255 str r2, [r3, #2052] mov r2, #64 str r2, [r3, #2048] mov r2, #204 - b .L549 -.L464: + b .L551 +.L466: sub r2, r4, #5 cmp r2, #1 ldrlsb r2, [fp, #-2728] @ zero_extendqisi2 strls r2, [r3, #2052] movls r2, #82 - bls .L550 + bls .L552 cmp r4, #7 - bne .L465 + bne .L467 mov r2, #174 str r2, [r3, #2052] mov r2, #0 str r2, [r3, #2048] mov r2, #176 -.L549: +.L551: str r2, [r3, #2052] mov r2, #77 -.L550: +.L552: str r2, [r3, #2048] -.L465: +.L467: add r9, r8, r9 cmp r4, #6 mov r3, #22 @@ -2857,7 +2865,7 @@ HynixGetReadRetryDefault: str r3, [r9, #2052] mov r3, #0 str r3, [r9, #2052] -.L505: +.L507: ldr r3, [sp, #8] mov r2, #48 mov r0, r10 @@ -2877,134 +2885,134 @@ HynixGetReadRetryDefault: ldr r3, [sp, #24] orrs r3, r3, r2 movne ip, #16 - bne .L469 + bne .L471 cmp r4, #7 movne ip, #2 moveq ip, #32 -.L469: +.L471: ldr r2, [sp, #8] ldr r3, [fp, #-1868] add r1, r8, r2, asl #8 mov r0, r3 -.L470: +.L472: ldr r2, [r1, #2048] strb r2, [r0], #1 rsb r2, r3, r0 uxtb r2, r2 cmp r2, ip - bcc .L470 + bcc .L472 ldr r2, [sp] cmp r2, #0 - beq .L471 + beq .L473 mov r2, #0 -.L473: +.L475: ldrb ip, [r3, r2, asl #2] @ zero_extendqisi2 uxtb r0, r2 cmp ip, #50 - beq .L472 + beq .L474 add ip, r3, r2, asl #2 ldrb ip, [ip, #1] @ zero_extendqisi2 cmp ip, #5 - beq .L472 + beq .L474 add r2, r2, #1 cmp r2, #8 - bne .L473 - b .L474 -.L472: - cmp r0, #6 - bls .L475 + bne .L475 + b .L476 .L474: - ldr r0, .L553+20 + cmp r0, #6 + bls .L477 +.L476: + ldr r0, .L555+20 mov r1, #0 bl printk -.L476: - b .L476 -.L471: +.L478: + b .L478 +.L473: cmp r4, #7 - bne .L477 + bne .L479 ldr r2, [sp] -.L479: +.L481: ldrb ip, [r3, r2, asl #2] @ zero_extendqisi2 uxtb r0, r2 cmp ip, #12 - beq .L478 + beq .L480 add ip, r3, r2, asl #2 ldrb ip, [ip, #1] @ zero_extendqisi2 cmp ip, #10 - beq .L478 + beq .L480 add r2, r2, #1 cmp r2, #8 - bne .L479 - b .L480 -.L478: - cmp r0, #7 - bne .L475 + bne .L481 + b .L482 .L480: - ldr r0, .L553+20 + cmp r0, #7 + bne .L477 +.L482: + ldr r0, .L555+20 mov r1, #0 bl printk -.L481: - b .L481 -.L477: +.L483: + b .L483 +.L479: cmp r4, #6 - bne .L475 + bne .L477 sub r2, r3, #1 add r3, r3, #7 -.L482: +.L484: ldrb r0, [r2, #1]! @ zero_extendqisi2 cmp r0, #12 - beq .L475 + beq .L477 ldrb r0, [r2, #8] @ zero_extendqisi2 cmp r0, #4 - beq .L475 + beq .L477 cmp r2, r3 - bne .L482 - ldr r0, .L553+20 + bne .L484 + ldr r0, .L555+20 mov r1, #0 bl printk -.L484: - b .L484 -.L475: +.L486: + b .L486 +.L477: ldr r2, [fp, #-1868] ldr r0, [sp, #36] add r0, r2, r0 mov r3, r2 -.L485: +.L487: cmp r3, r0 ldrne ip, [r1, #2048] strneb ip, [r3], #1 - bne .L485 -.L552: - ldr r3, .L553 + bne .L487 +.L554: + ldr r3, .L555 mov r0, #8 ldr r1, [sp, #4] ldr r3, [r3, #-1868] add r1, r3, r1 str r1, [sp, #28] -.L488: +.L490: ldr ip, [sp, #4] add lr, r1, ip -.L487: +.L489: ldrh ip, [r1] mvn ip, ip strh ip, [r1], #2 @ movhi cmp r1, lr - bne .L487 + bne .L489 ldr ip, [sp, #4] subs r0, r0, #1 add r1, r1, ip - bne .L488 -.L489: + bne .L490 +.L491: mov ip, #0 mov r0, ip -.L492: +.L494: mov r1, #1 mov lr, #0 mov r1, r1, asl r0 mov r7, #16 str r7, [sp, #32] mov r7, lr -.L490: +.L492: ldrh r9, [r3, lr] and r9, r9, r1 cmp r9, r1 @@ -3014,70 +3022,70 @@ HynixGetReadRetryDefault: ldr r9, [sp, #32] subs r9, r9, #1 str r9, [sp, #32] - bne .L490 + bne .L492 cmp r7, #8 add r0, r0, #1 orrhi ip, ip, r1 uxthhi ip, ip cmp r0, #16 - bne .L492 + bne .L494 ldr r1, [sp, #28] strh ip, [r3], #2 @ movhi cmp r3, r1 - bne .L489 + bne .L491 ldr r1, [fp, #-1868] mov r3, #0 sub r0, r1, #4 add ip, r1, #28 -.L494: +.L496: ldr lr, [r0, #4]! cmp lr, #0 addeq r3, r3, #1 cmp r0, ip - bne .L494 + bne .L496 cmp r3, #7 - ble .L495 - ldr r0, .L553+24 + ble .L497 + ldr r0, .L555+24 mov r2, #1 mov r3, #1024 bl rknand_print_hex - ldr r0, .L553+20 + ldr r0, .L555+20 mov r1, #0 bl printk -.L496: - b .L496 -.L495: +.L498: + b .L498 +.L497: cmp r4, #6 moveq r0, #4 - beq .L497 + beq .L499 cmp r4, #7 moveq r0, #10 - beq .L497 + beq .L499 ldr r3, [sp] cmp r3, #0 moveq r0, #8 movne r0, #5 -.L497: +.L499: sub r9, r6, #1 ldr r1, [sp, #20] mov ip, #0 uxtb r9, r9 add r9, r9, #1 -.L498: +.L500: mov r7, r1 mov r3, r2 -.L499: +.L501: ldrb lr, [r3], #1 @ zero_extendqisi2 strb lr, [r7], #1 rsb lr, r2, r3 uxtb lr, lr cmp lr, r6 - bcc .L499 + bcc .L501 add ip, ip, #1 add r2, r2, r9 cmp ip, r5 add r1, r1, r0 - blt .L498 + blt .L500 ldr r3, [sp, #8] mov r0, r10 add r7, r8, r3, asl #8 @@ -3086,7 +3094,7 @@ HynixGetReadRetryDefault: bl NandcWaitFlashReady ldr r3, [sp, #24] cmp r3, #0 - beq .L501 + beq .L503 mov r3, #54 str r3, [r7, #2056] ldrb r3, [fp, #-2728] @ zero_extendqisi2 @@ -3098,21 +3106,21 @@ HynixGetReadRetryDefault: mov r3, #22 str r3, [r7, #2056] bl FlashReadCmd - b .L502 -.L501: + b .L504 +.L503: ldr r3, [sp] cmp r3, #0 movne r3, #190 moveq r3, #56 str r3, [r7, #2056] -.L502: +.L504: mov r0, r10 bl NandcWaitFlashReady ldr r3, [sp, #16] add r3, r3, #1 str r3, [sp, #16] - b .L460 -.L463: + b .L462 +.L465: mov r3, #120 mov r2, #23 str r3, [r7, #2056] @@ -3134,12 +3142,12 @@ HynixGetReadRetryDefault: str r1, [r7, #2052] str r2, [r7, #2052] str r3, [r7, #2052] - ldr r3, .L553+28 + ldr r3, .L555+28 str r3, [sp, #20] - b .L505 -.L554: + b .L507 +.L556: .align 2 -.L553: +.L555: .word .LANCHOR2 .word .LANCHOR1 .word .LANCHOR1+3384 @@ -3162,67 +3170,67 @@ FlashGetReadRetryDefault: bxeq lr sub r2, r3, #1 cmp r2, #7 - bhi .L557 + bhi .L559 b HynixGetReadRetryDefault -.L557: +.L559: cmp r3, #49 - bne .L558 - ldr r2, .L569 - ldr r0, .L569+4 - ldr r1, .L569+8 + bne .L560 + ldr r2, .L571 + ldr r0, .L571+4 + ldr r1, .L571+8 strb r3, [r2, #-2732] mov r3, #4 strb r3, [r2, #-2731] mov r3, #15 strb r3, [r2, #-2730] mov r2, #64 - b .L567 -.L558: + b .L569 +.L560: sub r2, r3, #65 cmp r3, #33 cmpne r2, #1 - ldrls r2, .L569 + ldrls r2, .L571 strlsb r3, [r2, #-2732] movls r3, #4 - bls .L568 -.L559: + bls .L570 +.L561: cmp r3, #34 cmpne r3, #67 - bne .L560 - ldr r2, .L569 + bne .L562 + ldr r2, .L571 strb r3, [r2, #-2732] mov r3, #5 -.L568: +.L570: strb r3, [r2, #-2731] mov r3, #7 - ldr r0, .L569+4 + ldr r0, .L571+4 strb r3, [r2, #-2730] mov r2, #45 - ldr r1, .L569+12 - b .L567 -.L560: + ldr r1, .L571+12 + b .L569 +.L562: cmp r3, #35 cmpne r3, #68 bxne lr - ldr r2, .L569 - ldr r0, .L569+4 - ldr r1, .L569+16 + ldr r2, .L571 + ldr r0, .L571+4 + ldr r1, .L571+16 strb r3, [r2, #-2732] mov r3, #5 strb r3, [r2, #-2731] mov r3, #17 strb r3, [r2, #-2730] mov r2, #95 -.L567: - b ftl_memcpy -.L570: - .align 2 .L569: + b ftl_memcpy +.L572: + .align 2 +.L571: .word .LANCHOR2 .word .LANCHOR2-2728 - .word .LANCHOR1+3320 - .word .LANCHOR1+3168 - .word .LANCHOR1+3216 + .word .LANCHOR1+408 + .word .LANCHOR1+256 + .word .LANCHOR1+304 .fnend .size FlashGetReadRetryDefault, .-FlashGetReadRetryDefault .align 2 @@ -3235,55 +3243,55 @@ FlashReadDpCmd: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} .save {r4, r5, r6, r7, r8, r9, r10, lr} mov r8, r0 - ldr r0, .L577 + ldr r0, .L579 mov r7, r1 uxtb r10, r2 mov r9, r2, lsr #8 add r3, r0, r8, asl #3 - mov r5, r2, lsr #16 + mov r6, r2, lsr #16 ldrb r1, [r0, #64] @ zero_extendqisi2 uxtb lr, r7 - ldr r4, [r3, #12] + ldrb r3, [r3, #4] @ zero_extendqisi2 mov ip, r7, lsr #8 - ldrb r3, [r3, #16] @ zero_extendqisi2 - cmp r1, #1 ldr r2, [r0, #44] + cmp r1, #1 + ldr r4, [r0, r8, asl #3] mov r1, r7, lsr #16 mov r3, r3, asl #8 ldrb r2, [r2, #7] @ zero_extendqisi2 - bne .L572 + bne .L574 cmp r2, #1 addeq r2, r4, r3 add r4, r4, r3 - moveq r6, #38 - streq r6, [r2, #2056] - mov r6, #0 + moveq r5, #38 + streq r5, [r2, #2056] + mov r5, #0 ldrb r3, [r0, #57] @ zero_extendqisi2 ldrb r2, [r0, #56] @ zero_extendqisi2 mov r0, r8 str r2, [r4, #2056] - str r6, [r4, #2052] - str r6, [r4, #2052] + str r5, [r4, #2052] + str r5, [r4, #2052] str lr, [r4, #2052] str ip, [r4, #2052] str r1, [r4, #2052] str r3, [r4, #2056] bl NandcWaitFlashReady - str r6, [r4, #2056] + str r5, [r4, #2056] mov r3, #48 - str r6, [r4, #2052] - str r6, [r4, #2052] + str r5, [r4, #2052] + str r5, [r4, #2052] str r10, [r4, #2052] str r9, [r4, #2052] - str r5, [r4, #2052] + str r6, [r4, #2052] str r3, [r4, #2056] - b .L574 -.L572: + b .L576 +.L574: cmp r2, #1 addeq r2, r4, r3 add r3, r4, r3 - moveq r6, #38 - streq r6, [r2, #2056] + moveq r5, #38 + streq r5, [r2, #2056] ldrb r2, [r0, #56] @ zero_extendqisi2 str r2, [r3, #2056] ldrb r2, [r0, #57] @ zero_extendqisi2 @@ -3294,16 +3302,16 @@ FlashReadDpCmd: mov r2, #48 str r10, [r3, #2052] str r9, [r3, #2052] - str r5, [r3, #2052] + str r6, [r3, #2052] str r2, [r3, #2056] -.L574: +.L576: mov r0, r8 mov r1, r7 ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} b FlashSetRandomizer -.L578: +.L580: .align 2 -.L577: +.L579: .word .LANCHOR0 .fnend .size FlashReadDpCmd, .-FlashReadDpCmd @@ -3319,39 +3327,39 @@ ftl_flash_de_init: mov r0, #0 bl NandcWaitFlashReady bl FlashSetReadRetryDefault - ldr r3, .L590 + ldr r3, .L592 ldr r0, [r3, #-1864] mov r4, r3 cmp r0, #0 - beq .L580 + beq .L582 mov r0, #0 bl flash_enter_slc_mode - b .L581 -.L580: + b .L583 +.L582: bl flash_exit_slc_mode -.L581: +.L583: ldrb r3, [r4, #-1860] @ zero_extendqisi2 - ldr r5, .L590 + ldr r5, .L592 cmp r3, #0 - beq .L582 + beq .L584 ldrb r3, [r5, #-1875] @ zero_extendqisi2 tst r3, #1 - beq .L582 + beq .L584 mov r0, #1 bl FlashSetInterfaceMode mov r0, #1 bl NandcSetMode mov r3, #0 strb r3, [r5, #-1860] -.L582: - ldr r3, .L590+4 +.L584: + ldr r3, .L592+4 mov r0, #0 - ldr r3, [r3, #12] + ldr r3, [r3] str r0, [r3, #336] ldmfd sp!, {r3, r4, r5, pc} -.L591: +.L593: .align 2 -.L590: +.L592: .word .LANCHOR2 .word .LANCHOR0 .fnend @@ -3364,14 +3372,13 @@ NandcRandmzSel: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L593 - add r0, r3, r0, asl #3 - ldr r3, [r0, #12] + ldr r3, .L595 + ldr r3, [r3, r0, asl #3] str r1, [r3, #336] bx lr -.L594: +.L596: .align 2 -.L593: +.L595: .word .LANCHOR0 .fnend .size NandcRandmzSel, .-NandcRandmzSel @@ -3388,35 +3395,35 @@ NandcTimeCfg: mov r4, r0 mov r0, #0 bl rknand_get_clk_rate - ldr r1, .L606 + ldr r1, .L608 bl __aeabi_idiv - ldr r3, .L606+4 + ldr r3, .L608+4 ldr r3, [r3, #-2808] cmp r0, #250 movwgt r2, #8354 - bgt .L604 + bgt .L606 cmp r0, #220 - bgt .L605 + bgt .L607 cmp r0, #185 movwgt r2, #4226 - bgt .L604 + bgt .L606 cmp r0, #160 movwgt r2, #4194 - bgt .L604 + bgt .L606 cmp r4, #35 movwls r2, #4193 - bls .L604 + bls .L606 cmp r4, #99 movwls r2, #4225 - bls .L604 -.L605: + bls .L606 +.L607: movw r2, #8322 -.L604: +.L606: str r2, [r3, #4] ldmfd sp!, {r4, pc} -.L607: +.L609: .align 2 -.L606: +.L608: .word 1000000 .word .LANCHOR2 .fnend @@ -3433,21 +3440,21 @@ FlashTimingCfg: sub r3, r3, #33 bic r3, r3, #32 cmp r3, #1 - bls .L609 + bls .L611 movw r3, #8322 cmp r0, r3 - bne .L610 -.L609: - ldr r3, .L611 + bne .L612 +.L611: + ldr r3, .L613 ldr r3, [r3, #-2808] str r0, [r3, #4] -.L610: - ldr r3, .L611+4 - ldrb r0, [r3, #277] @ zero_extendqisi2 - b NandcTimeCfg .L612: + ldr r3, .L613+4 + ldrb r0, [r3, #493] @ zero_extendqisi2 + b NandcTimeCfg +.L614: .align 2 -.L611: +.L613: .word .LANCHOR2 .word .LANCHOR1 .fnend @@ -3462,21 +3469,20 @@ NandcInit: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r2, #0 - ldr r4, .L616 + ldr r4, .L618 mov r1, #1 - ldr r3, .L616+4 + ldr r3, .L618+4 mov r5, #0 str r0, [r4, #-2808] - str r2, [r3, #16] - str r0, [r3, #12] - str r1, [r3, #24] + stmia r3, {r0, r2} + str r1, [r3, #12] mov r1, #2 - str r0, [r3, #20] - str r1, [r3, #32] + str r0, [r3, #8] + str r1, [r3, #20] mov r1, #3 - str r0, [r3, #28] - str r1, [r3, #40] - str r0, [r3, #36] + str r0, [r3, #16] + str r1, [r3, #28] + str r0, [r3, #24] ldr r3, [r0] and r3, r3, #253952 ubfx r1, r3, #13, #1 @@ -3501,9 +3507,9 @@ NandcInit: movw r2, #8322 mov r0, #36864 str r2, [r3, #344] - ldr r2, .L616+8 + ldr r2, .L618+8 str r2, [r3, #304] - bl ftl_malloc + bl ftl_dma32_malloc str r5, [r4, #-1816] str r5, [r4, #-1808] str r0, [r4, #-1844] @@ -3511,9 +3517,9 @@ NandcInit: add r0, r0, #32768 str r0, [r4, #-1836] ldmfd sp!, {r3, r4, r5, pc} -.L617: +.L619: .align 2 -.L616: +.L618: .word .LANCHOR2 .word .LANCHOR0 .word 1579009 @@ -3526,7 +3532,7 @@ NandcGetTimeCfg: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr ip, .L620 + ldr ip, .L622 str lr, [sp, #-4]! .save {lr} ldr lr, [ip, #-2808] @@ -3545,9 +3551,9 @@ NandcGetTimeCfg: orr r2, r2, r1, asl #16 str r2, [r3] ldr pc, [sp], #4 -.L621: +.L623: .align 2 -.L620: +.L622: .word .LANCHOR2 .fnend .size NandcGetTimeCfg, .-NandcGetTimeCfg @@ -3559,7 +3565,7 @@ NandcBchSel: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L630 + ldr r3, .L632 mov r1, #1 ldr r2, [r3, #-2808] str r0, [r3, #-1804] @@ -3569,25 +3575,25 @@ NandcBchSel: cmp r0, r1 bfi r3, r1, #8, #8 bfc r3, #18, #1 - bne .L623 -.L626: + bne .L625 +.L628: bfc r3, #4, #1 - b .L624 -.L623: + b .L626 +.L625: cmp r0, #24 orreq r3, r3, #16 - beq .L624 + beq .L626 cmp r0, #40 orr r3, r3, #262144 orr r3, r3, #16 - beq .L626 -.L624: + beq .L628 +.L626: orr r3, r3, #1 str r3, [r2, #12] bx lr -.L631: +.L633: .align 2 -.L630: +.L632: .word .LANCHOR2 .fnend .size NandcBchSel, .-NandcBchSel @@ -3599,12 +3605,12 @@ FlashBchSel: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L633 + ldr r3, .L635 strb r0, [r3, #-2743] b NandcBchSel -.L634: +.L636: .align 2 -.L633: +.L635: .word .LANCHOR2 .fnend .size FlashBchSel, .-FlashBchSel @@ -3615,14 +3621,14 @@ ftl_flash_resume: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L644 + ldr r3, .L646 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r5, #0 ldr r2, [r3, #-2808] mov r4, r3 ldr r1, [r3, #-2804] - ldr r6, .L644+4 + ldr r6, .L646+4 str r1, [r2] ldr r1, [r3, #-2800] ldr r2, [r3, #-2808] @@ -3639,22 +3645,22 @@ ftl_flash_resume: str r1, [r2, #336] ldr r1, [r3, #-2776] str r1, [r2, #344] -.L637: +.L639: ldrb r3, [r6, r5, asl #3] @ zero_extendqisi2 sub r3, r3, #1 uxtb r3, r3 cmp r3, #253 - bhi .L636 + bhi .L638 uxtb r0, r5 bl FlashReset -.L636: +.L638: add r5, r5, #1 cmp r5, #4 - bne .L637 + bne .L639 ldrb r3, [r4, #-1860] @ zero_extendqisi2 - ldr r5, .L644 + ldr r5, .L646 cmp r3, #0 - beq .L638 + beq .L640 mov r0, #1 bl NandcSetMode ldrb r0, [r5, #-1875] @ zero_extendqisi2 @@ -3663,15 +3669,15 @@ ftl_flash_resume: bl NandcSetMode ldrb r0, [r5, #-2787] @ zero_extendqisi2 bl NandcSetDdrPara -.L638: - ldr r3, .L644+8 +.L640: + ldr r3, .L646+8 ldmfd sp!, {r4, r5, r6, lr} ldr r3, [r3, #44] ldrb r0, [r3, #20] @ zero_extendqisi2 b FlashBchSel -.L645: +.L647: .align 2 -.L644: +.L646: .word .LANCHOR2 .word IDByte .word .LANCHOR0 @@ -3711,7 +3717,7 @@ NandcSendDumpDataStart: ldr r2, [r0, #16] .pad #8 sub sp, sp, #8 - ldr r3, .L650 + ldr r3, .L652 str r2, [sp, #4] ldr r2, [sp, #4] bic r2, r2, #4 @@ -3724,9 +3730,9 @@ NandcSendDumpDataStart: add sp, sp, #8 @ sp needed bx lr -.L651: +.L653: .align 2 -.L650: +.L652: .word 538969130 .fnend .size NandcSendDumpDataStart, .-NandcSendDumpDataStart @@ -3740,12 +3746,12 @@ NandcSendDumpDataDone: @ link register save eliminated. .pad #8 sub sp, sp, #8 -.L653: +.L655: ldr r3, [r0, #8] str r3, [sp, #4] ldr r3, [sp, #4] tst r3, #1048576 - beq .L653 + beq .L655 add sp, sp, #8 @ sp needed bx lr @@ -3761,16 +3767,16 @@ NandcXferStart: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r4, #0 - ldr lr, .L675 + ldr lr, .L677 .pad #28 sub sp, sp, #28 - ldr r5, .L675+4 - add r0, lr, r0, asl #3 - mov lr, #16 + ldr r5, .L677+4 ldr r8, [sp, #64] - ldr r6, [r0, #12] - ldrb r0, [r0, #16] @ zero_extendqisi2 + ldr r6, [lr, r0, asl #3] + add lr, lr, r0, asl #3 ldr ip, [sp, #68] + ldrb r0, [lr, #4] @ zero_extendqisi2 + mov lr, #16 ldr r7, [r6, #12] bfi r7, lr, #8, #8 bfi r7, r4, #3, #1 @@ -3785,7 +3791,7 @@ NandcXferStart: bfi r4, r3, #4, #1 ldr r3, [r5, #-1852] cmp r3, #3 - bls .L658 + bls .L660 ldr r3, [r6, #16] str r3, [sp, #20] ldr r3, [sp, #20] @@ -3796,18 +3802,18 @@ NandcXferStart: cmp ip, #0 cmpeq r8, #0 str r3, [sp, #8] - beq .L659 + beq .L661 cmp r1, #0 - bne .L660 -.L668: + bne .L662 +.L670: add r2, r2, #1 cmp r8, #0 mov r2, r2, asr #1 movne r0, r8 bfi r4, r2, #22, #6 ldreq r0, [r5, #-1840] - b .L662 -.L660: + b .L664 +.L662: ldr r3, [r5, #-1804] mov r9, r5 cmp r3, #25 @@ -3818,10 +3824,10 @@ NandcXferStart: str r3, [sp, #12] mov r3, #0 mov r0, r3 -.L664: +.L666: ldr lr, [sp, #12] cmp r0, lr - bcs .L668 + bcs .L670 ldr lr, [sp, #8] mov r10, r3, lsr #2 add r0, r0, #1 @@ -3836,8 +3842,8 @@ NandcXferStart: strne lr, [fp, r10, asl #2] ldr lr, [sp, #4] add r3, r3, lr - b .L664 -.L662: + b .L666 +.L664: ldr r3, [r5, #-1836] ubfx r10, r4, #22, #5 mov r9, r1 @@ -3884,10 +3890,10 @@ NandcXferStart: ldr r3, [sp, #20] orr r3, r3, #1 str r3, [sp, #20] -.L659: +.L661: ldr r3, [sp, #20] str r3, [r6, #16] -.L658: +.L660: str r7, [r6, #12] str r4, [r6, #8] orr r4, r4, #4 @@ -3895,9 +3901,9 @@ NandcXferStart: add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L676: +.L678: .align 2 -.L675: +.L677: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -3912,65 +3918,64 @@ NandcXferComp: stmfd sp!, {r0, r1, r4, r5, r6, lr} .save {r4, r5, r6, lr} .pad #8 - ldr r5, .L717 - ldr r3, .L717+4 - add r0, r3, r0, asl #3 + ldr r3, .L719 + ldr r5, .L719+4 + ldr r4, [r3, r0, asl #3] ldr r3, [r5, #-1852] cmp r3, #3 - ldr r4, [r0, #12] - bls .L708 + bls .L710 ldr r3, [r4, #16] tst r3, #4 - beq .L708 + beq .L710 ldr r6, [r4, #16] ldr r3, [r4, #8] ubfx r6, r6, #1, #1 cmp r6, #0 str r3, [sp] movne r6, #0 - beq .L690 -.L680: + beq .L692 +.L682: ldr r2, [r4, #28] ldr r3, [sp] ubfx r2, r2, #16, #5 ubfx r3, r3, #22, #6 cmp r2, r3 - bge .L688 + bge .L690 ldr r3, [r5, #-1852] cmp r3, #5 - bhi .L681 -.L684: + bhi .L683 +.L686: add r6, r6, #1 bic r3, r6, #-16777216 cmp r3, #0 - bne .L683 + bne .L685 ldr r2, [r4, #28] mov r1, r6 ldr r3, [sp] ubfx r2, r2, #16, #5 - ldr r0, .L717+8 + ldr r0, .L719+8 ubfx r3, r3, #22, #6 bl printk - ldr r0, .L717+12 + ldr r0, .L719+12 mov r1, r4 mov r2, #4 mov r3, #512 bl rknand_print_hex - b .L683 -.L681: + b .L685 +.L683: ldr r3, [r4] str r3, [sp, #4] ldr r3, [sp, #4] tst r3, #8192 - beq .L684 + beq .L686 ldr r3, [sp, #4] tst r3, #131072 - beq .L684 -.L688: + beq .L686 +.L690: ldr r3, [r5, #-1816] - ldr r4, .L717 + ldr r4, .L719+4 cmp r3, #0 - beq .L689 + beq .L691 ldr r1, [sp] mov r2, #0 ldr r0, [r4, #-1824] @@ -3983,48 +3988,48 @@ NandcXferComp: ubfx r1, r1, #22, #5 mov r1, r1, asl #7 bl rknand_dma_unmap_single - b .L689 -.L683: + b .L691 +.L685: mov r0, #1 mov r1, #5 bl usleep_range - b .L680 -.L692: + b .L682 +.L694: ldr r3, [r4, #8] add r6, r6, #1 str r3, [sp] bic r3, r6, #-16777216 cmp r3, #0 - bne .L691 + bne .L693 ldr r2, [sp] mov r1, r6 ldr r3, [r4, #28] - ldr r0, .L717+16 + ldr r0, .L719+16 ubfx r3, r3, #16, #5 bl printk - ldr r0, .L717+12 + ldr r0, .L719+12 mov r1, r4 mov r2, #4 mov r3, #512 bl rknand_print_hex -.L691: +.L693: mov r0, #1 mov r1, #5 bl usleep_range -.L690: +.L692: ldr r3, [sp] tst r3, #1048576 - beq .L692 + beq .L694 ldr r3, [r5, #-1808] cmp r3, #0 - beq .L693 + beq .L695 mov r0, r4 bl NandcSendDumpDataStart -.L693: +.L695: ldr r3, [r5, #-1816] - ldr r6, .L717 + ldr r6, .L719+4 cmp r3, #0 - beq .L694 + beq .L696 ldr r1, [sp] mov r2, #1 ldr r0, [r6, #-1824] @@ -4037,31 +4042,31 @@ NandcXferComp: ubfx r1, r1, #22, #5 mov r1, r1, asl #7 bl rknand_dma_unmap_single -.L694: +.L696: ldr r3, [r5, #-1808] cmp r3, #0 - beq .L689 + beq .L691 mov r0, r4 bl NandcSendDumpDataDone -.L689: +.L691: mov r3, #0 str r3, [r5, #-1816] - b .L677 -.L708: + b .L679 +.L710: ldr r3, [r4, #8] str r3, [sp] ldr r3, [sp] tst r3, #1048576 - beq .L708 -.L677: + beq .L710 +.L679: add sp, sp, #8 @ sp needed ldmfd sp!, {r4, r5, r6, pc} -.L718: +.L720: .align 2 -.L717: - .word .LANCHOR2 +.L719: .word .LANCHOR0 + .word .LANCHOR2 .word .LC4 .word .LC5 .word .LC6 @@ -4082,14 +4087,14 @@ NandcCopy1KB: ldr r5, [sp, #16] add r6, r0, #512 add r2, r2, r4, asl #9 - bne .L720 + bne .L722 cmp r3, #0 - beq .L721 + beq .L723 mov r0, r2 mov r1, r3 mov r2, #1024 bl ftl_memcpy -.L721: +.L723: cmp r5, #0 ldmeqfd sp!, {r4, r5, r6, pc} ldrb r3, [r5, #2] @ zero_extendqisi2 @@ -4104,14 +4109,14 @@ NandcCopy1KB: orr r3, r3, r2, asl #24 str r3, [r6, r4, asl #4] ldmfd sp!, {r4, r5, r6, pc} -.L720: +.L722: cmp r3, #0 - beq .L724 + beq .L726 mov r1, r2 mov r0, r3 mov r2, #1024 bl ftl_memcpy -.L724: +.L726: cmp r5, #0 ldmeqfd sp!, {r4, r5, r6, pc} mov r4, r4, lsr #1 @@ -4137,25 +4142,24 @@ NandcXferData: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov fp, r3 - ldr r3, .L784 + ldr r3, .L786 .pad #92 sub sp, sp, #92 tst fp, #63 mov r10, r0 - add r3, r3, r0, asl #3 mov r7, r1 mov r8, r2 ldr r5, [sp, #128] - ldr r9, [r3, #12] - bne .L737 + ldr r9, [r3, r0, asl #3] + bne .L739 cmp r5, #0 - bne .L738 + bne .L740 add r0, sp, #24 mov r1, #255 mov r2, #64 bl ftl_memset add r5, sp, #24 -.L738: +.L740: mov r0, r10 mov r1, r7 mov r2, r8 @@ -4168,8 +4172,8 @@ NandcXferData: bl NandcXferComp cmp r7, #0 movne r6, #0 - bne .L739 - ldr r4, .L784+4 + bne .L741 + ldr r4, .L786+4 mov r1, r8, lsr #1 mov r2, r7 ldr r3, [r4, #-1804] @@ -4177,11 +4181,11 @@ NandcXferData: mov r3, r7 movcc ip, #64 movcs ip, #128 -.L741: +.L743: cmp r2, r1 add r5, r5, #4 add r0, r3, ip - bcs .L782 + bcs .L784 ldr lr, [r4, #-1836] mov r3, r3, lsr #2 add r2, r2, #1 @@ -4194,30 +4198,30 @@ NandcXferData: strb lr, [r5, #-2] strb r3, [r5, #-1] mov r3, r0 - b .L741 -.L782: + b .L743 +.L784: ldr r0, [r4, #-1804] mov r2, #0 ldr r1, [r4, #-1852] mov r8, r8, lsr #2 mov r6, r2 -.L743: +.L745: cmp r2, r8 - bcs .L739 + bcs .L741 cmp r0, #0 - beq .L739 + beq .L741 add r3, r2, #8 ldr r3, [r9, r3, asl #2] str r3, [sp, #20] ldr r3, [sp, #20] tst r3, #4 - bne .L767 + bne .L769 ldr r4, [sp, #20] ubfx r4, r4, #15, #1 cmp r4, #0 - bne .L767 + bne .L769 cmp r1, #5 - bls .L745 + bls .L747 ldr ip, [sp, #20] ldr r4, [sp, #20] ldr r3, [sp, #20] @@ -4236,10 +4240,10 @@ NandcXferData: ubfxls r3, r3, #16, #5 ubfxhi r4, r4, #27, #1 ubfxls r4, r4, #29, #1 - b .L781 -.L745: + b .L783 +.L747: cmp r1, #3 - bls .L747 + bls .L749 ldr ip, [sp, #20] ldr r4, [sp, #20] ldr r3, [sp, #20] @@ -4251,41 +4255,41 @@ NandcXferData: orr ip, ip, r4, asl #5 orr r3, r3, lr, asl #5 cmp ip, r3 - bls .L748 + bls .L750 ldr r3, [sp, #20] ldr r4, [sp, #20] ubfx r3, r3, #3, #5 ubfx r4, r4, #28, #1 -.L781: +.L783: orr r4, r3, r4, asl #5 - b .L747 -.L748: + b .L749 +.L750: ldr r5, [sp, #20] ldr r4, [sp, #20] ubfx r5, r5, #16, #5 ubfx r4, r4, #30, #1 orr r4, r5, r4, asl #5 -.L747: +.L749: cmp r6, r4 movcc r6, r4 - b .L744 -.L767: + b .L746 +.L769: mvn r6, #0 -.L744: +.L746: add r2, r2, #1 - b .L743 -.L739: + b .L745 +.L741: mov r3, #0 str r3, [r9, #16] - b .L750 -.L737: + b .L752 +.L739: cmp r1, #1 mov r4, #0 - bne .L779 + bne .L781 mov r6, r4 -.L751: +.L753: cmp r4, r8 - bcs .L783 + bcs .L785 cmp fp, #0 and ip, r4, #3 addne r3, fp, r4, asl #9 @@ -4312,11 +4316,11 @@ NandcXferData: mov r0, r10 mov r1, #1 bl NandcXferComp - b .L751 -.L783: + b .L753 +.L785: mov r6, #0 - b .L750 -.L779: + b .L752 +.L781: str r4, [sp] mov r1, r4 str r4, [sp, #4] @@ -4325,9 +4329,9 @@ NandcXferData: mov r6, r4 bl NandcXferStart str fp, [sp, #8] -.L756: +.L758: cmp r4, r8 - bcs .L750 + bcs .L752 mov r0, r10 mov r1, r7 bl NandcXferComp @@ -4335,7 +4339,7 @@ NandcXferData: add ip, r4, #2 cmp ip, r8 str r3, [sp, #20] - bcs .L757 + bcs .L759 mov r3, #0 mov r0, r10 str r3, [sp] @@ -4346,11 +4350,11 @@ NandcXferData: str ip, [sp, #12] bl NandcXferStart ldr ip, [sp, #12] -.L757: +.L759: ldr r3, [sp, #20] tst r3, #4 mvnne r6, #0 - bne .L758 + bne .L760 ldr r2, [sp, #20] ldr r3, [sp, #20] ubfx r2, r2, #3, #5 @@ -4358,7 +4362,7 @@ NandcXferData: orr r3, r2, r3, asl #5 cmp r6, r3 movcc r6, r3 -.L758: +.L760: cmp fp, #0 ldr r3, [sp, #8] sub r2, ip, #2 @@ -4378,30 +4382,30 @@ NandcXferData: mov r4, ip add r3, r3, #1024 str r3, [sp, #8] - b .L756 -.L750: - ldr r3, .L784+4 + b .L758 +.L752: + ldr r3, .L786+4 clz r7, r7 mov r7, r7, lsr #5 ldr r3, [r3, #-1852] cmp r3, #5 movls r7, #0 cmp r7, #0 - beq .L762 + beq .L764 ldr r3, [r9] and r2, r3, #139264 cmp r2, #139264 orreq r3, r3, #131072 streq r3, [r9] mvneq r6, #0 -.L762: +.L764: mov r0, r6 add sp, sp, #92 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L785: +.L787: .align 2 -.L784: +.L786: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -4417,19 +4421,19 @@ FlashReadRawPage: .save {r4, r5, r6, r7, r8, lr} .pad #8 mov r8, r3 - ldr r3, .L789 + ldr r3, .L791 subs r4, r0, #0 mov r6, r1 mov r7, r2 - ldrb r5, [r3, #265] @ zero_extendqisi2 - bne .L787 - ldr r2, .L789+4 - ldrb r3, [r2, #1] @ zero_extendqisi2 - ldr r2, [r2, #4] + ldrb r5, [r3, #481] @ zero_extendqisi2 + bne .L789 + ldr r2, .L791+4 + ldrb r3, [r2, #33] @ zero_extendqisi2 + ldr r2, [r2, #36] mul r2, r2, r3 cmp r1, r2 movcc r5, #4 -.L787: +.L789: mov r0, r4 bl NandcWaitFlashReady mov r0, r4 @@ -4452,9 +4456,9 @@ FlashReadRawPage: add sp, sp, #8 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L790: +.L792: .align 2 -.L789: +.L791: .word .LANCHOR1 .word .LANCHOR0 .fnend @@ -4469,7 +4473,7 @@ FlashDdrTunningRead: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r7, r3 - ldr r4, .L818 + ldr r4, .L820 .pad #20 sub sp, sp, #20 mov r10, r0 @@ -4485,7 +4489,7 @@ FlashDdrTunningRead: movcs r9, #12 cmp r3, #0 moveq r6, #1024 - beq .L793 + beq .L795 mov r0, #1 bl FlashSetInterfaceMode mov r0, #1 @@ -4503,41 +4507,38 @@ FlashDdrTunningRead: ldrb r0, [r4, #-1875] @ zero_extendqisi2 bl NandcSetMode cmn r6, #1 - bne .L794 -.L803: + bne .L796 +.L805: mvn r6, #0 - b .L795 -.L794: - ldr r0, .L818+4 + b .L797 +.L796: mov r2, r6 + ldr r0, .L820+4 ldr r1, [sp] bl printk cmp r6, #9 - bhi .L796 - ldr r3, .L818+8 - add r3, r3, r10, asl #3 - ldr r3, [r3, #12] - ldr r2, [r3, #3840] - ldr r2, [r3] - orr r2, r2, #131072 - str r2, [r3] -.L796: + ldrls r3, .L820+8 + ldrls r3, [r3, r10, asl #3] + ldrls r2, [r3, #3840] + ldrls r2, [r3] + orrls r2, r2, #131072 + strls r2, [r3] ldr r3, [r4, #-1800] add r3, r3, #1 str r3, [r4, #-1800] cmp r3, #2048 - bcc .L795 - ldr r3, .L818 + bcc .L797 + ldr r3, .L820 mov r7, #0 mov fp, r7 str r7, [r3, #-1800] -.L793: +.L795: mov r4, #0 mvn r8, #0 mov ip, r4 mov r5, r4 str r4, [sp, #4] -.L801: +.L803: uxtb r0, r9 str ip, [sp, #12] bl NandcSetDdrPara @@ -4549,74 +4550,74 @@ FlashDdrTunningRead: add r3, r6, #1 cmp r0, r3 ldr ip, [sp, #12] - bhi .L797 + bhi .L799 cmp r0, #2 - bhi .L807 + bhi .L809 add r5, r5, #1 cmp r5, #9 - bls .L807 + bls .L809 rsb r4, r5, r9 mov r6, r0 mov r8, #0 - b .L799 -.L797: + b .L801 +.L799: ldr r3, [sp, #4] cmp r3, r5 - bcs .L808 + bcs .L810 cmp r5, #7 rsb ip, r5, r4 - bhi .L809 + bhi .L811 str r5, [sp, #4] - b .L808 -.L807: + b .L810 +.L809: mov r8, #0 mov r4, r9 mov r6, r0 mov r7, r8 mov fp, r8 - b .L798 -.L808: + b .L800 +.L810: mov r5, #0 -.L798: +.L800: add r9, r9, #2 cmp r9, #69 - bls .L801 -.L799: + bls .L803 +.L801: ldr r3, [sp, #4] cmp r3, r5 movcs r4, ip - b .L800 -.L809: + b .L802 +.L811: mov r4, ip -.L800: +.L802: cmp r4, #0 - beq .L802 - ldr r0, .L818+12 + beq .L804 + ldr r0, .L820+12 mov r1, r4 bl printk uxtb r0, r4 bl NandcSetDdrPara -.L802: +.L804: cmn r8, #1 - bne .L795 - ldr r0, .L818+16 + bne .L797 + ldr r0, .L820+16 mov r1, r10 ldr r2, [sp] bl printk ldr r3, [sp, #56] cmp r3, #0 - beq .L803 + beq .L805 ldr r3, [sp, #8] ubfx r0, r3, #8, #8 bl NandcSetDdrPara -.L795: +.L797: mov r0, r6 add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L819: +.L821: .align 2 -.L818: +.L820: .word .LANCHOR2 .word .LC7 .word .LANCHOR0 @@ -4639,34 +4640,34 @@ FlashReadPage: mov r8, r2 mov r7, r3 bl FlashReadRawPage - ldr r10, .L841 + ldr r10, .L843 cmn r0, #1 mov r4, r0 - bne .L821 - ldr r9, .L841+4 - ldrb fp, [r9, #8] @ zero_extendqisi2 + bne .L823 + ldr r9, .L843+4 + ldrb fp, [r9, #40] @ zero_extendqisi2 cmp fp, #0 - bne .L822 -.L824: + bne .L824 +.L826: ldrb r3, [r10, #-1860] @ zero_extendqisi2 - ldr r9, .L841 + ldr r9, .L843 cmp r3, #0 - beq .L821 - b .L840 -.L822: + beq .L823 + b .L842 +.L824: mov r3, #0 mov r0, r5 - strb r3, [r9, #8] + strb r3, [r9, #40] mov r1, r6 mov r2, r8 mov r3, r7 bl FlashReadRawPage - strb fp, [r9, #8] + strb fp, [r9, #40] cmn r0, #1 movne r4, r0 - beq .L824 - b .L821 -.L840: + beq .L826 + b .L823 +.L842: ldr r3, [r9, #-2808] mov r0, r5 mov r1, r6 @@ -4678,22 +4679,22 @@ FlashReadPage: bl FlashDdrTunningRead cmn r0, #1 mov r4, r0 - beq .L825 + beq .L827 ldrb r3, [r9, #-2743] @ zero_extendqisi2 cmp r0, r3, lsr #1 - bls .L821 -.L825: + bls .L823 +.L827: ubfx r0, fp, #8, #8 bl NandcSetDdrPara -.L821: +.L823: ldr ip, [r10, #-1796] - ldr r9, .L841 + ldr r9, .L843 adds r3, ip, #0 movne r3, #1 cmn r4, #1 movne r3, #0 cmp r3, #0 - beq .L826 + beq .L828 mov r1, r6 mov r2, r8 mov r3, r7 @@ -4702,14 +4703,14 @@ FlashReadPage: mov r2, r5 mov r3, r6 mov r4, r0 - ldr r0, .L841+8 + ldr r0, .L843+8 mov r1, r4 bl printk cmn r4, #1 - bne .L826 + bne .L828 ldrb r3, [r9, #-2744] @ zero_extendqisi2 cmp r3, #0 - beq .L826 + beq .L828 mov r0, r5 bl flash_enter_slc_mode ldr ip, [r9, #-1796] @@ -4721,14 +4722,14 @@ FlashReadPage: mov r4, r0 mov r0, r5 bl flash_exit_slc_mode -.L826: +.L828: mov r0, r4 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L842: +.L844: .align 2 -.L841: +.L843: .word .LANCHOR2 .word .LANCHOR0 .word .LC10 @@ -4745,7 +4746,7 @@ FlashDdrParaScan: .save {r4, r5, r6, r7, r8, lr} .pad #8 mov r7, r0 - ldr r5, .L853 + ldr r5, .L855 mov r6, r1 mov r4, #0 ldrb r0, [r5, #-1875] @ zero_extendqisi2 @@ -4767,27 +4768,27 @@ FlashDdrParaScan: mov r3, r5 cmn r0, #1 cmnne r8, #1 - bne .L844 + bne .L846 ldrb r2, [r5, #-1875] @ zero_extendqisi2 tst r2, #1 - beq .L844 + beq .L846 mov r0, #1 bl FlashSetInterfaceMode mov r0, #1 bl NandcSetMode strb r4, [r5, #-1860] - b .L845 -.L844: + b .L847 +.L846: mov r2, #1 strb r2, [r3, #-1860] -.L845: +.L847: mov r0, #0 add sp, sp, #8 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L854: +.L856: .align 2 -.L853: +.L855: .word .LANCHOR2 .fnend .size FlashDdrParaScan, .-FlashDdrParaScan @@ -4802,14 +4803,14 @@ FlashLoadPhyInfo: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #20 sub sp, sp, #20 - ldr r3, .L871 + ldr r3, .L873 mov r4, #0 - ldr r8, .L871+4 + ldr r8, .L873+4 mov r9, #4 - ldr r5, .L871+8 + ldr r5, .L873+8 mvn r7, #0 ldr r0, [r3] @ unaligned - ldr r3, [r8, #4] + ldr r3, [r8, #36] str r4, [r5, #-1788] mov r6, r5 str r0, [sp, #12] @ unaligned @@ -4818,10 +4819,10 @@ FlashLoadPhyInfo: ldr r3, [r5, #-1868] str r3, [r5, #-1792] bl flash_enter_slc_mode -.L856: +.L858: add fp, r4, #1 mov r10, #0 -.L858: +.L860: add r3, sp, #12 ldrb r0, [r3, r10] @ zero_extendqisi2 bl FlashBchSel @@ -4831,39 +4832,39 @@ FlashLoadPhyInfo: mov r3, r0 bl FlashReadRawPage cmn r0, #1 - bne .L857 + bne .L859 mov r0, #0 mov r1, fp ldr r2, [r6, #-1868] mov r3, r0 bl FlashReadRawPage cmn r0, #1 - bne .L857 + bne .L859 add r10, r10, #1 cmp r10, #4 - beq .L859 - b .L858 -.L860: + beq .L861 + b .L860 +.L862: add r0, fp, #12 movw r1, #2036 bl js_hash ldr r3, [fp, #8] cmp r3, r0 mvnne r7, #0 - bne .L859 - ldr r7, .L871+12 + bne .L861 + ldr r7, .L873+12 add r1, fp, #160 mov r2, #32 mov r0, r7 bl ftl_memcpy ldr r1, [r6, #-1792] mov r2, #32 - ldr r0, .L871+16 + ldr r0, .L873+16 add r1, r1, #192 bl ftl_memcpy ldr r1, [r6, #-1792] mov r2, #852 - ldr r0, .L871+20 + ldr r0, .L873+20 add r1, r1, #224 bl ftl_memcpy ldrh r0, [r7, #10] @@ -4871,7 +4872,7 @@ FlashLoadPhyInfo: ldr r7, [r6, #-1792] str r4, [r6, #-1788] mov r0, r4 - ldr r1, [r8, #4] + ldr r1, [r8, #36] ldr r3, [r7, #1076] strb r3, [r6, #-1860] bl __aeabi_uidiv @@ -4883,41 +4884,41 @@ FlashLoadPhyInfo: ldrh r3, [r7, #14] mov r7, #0 strb r3, [r5, #-1780] -.L859: +.L861: ldr r3, [sp, #4] subs r9, r9, #1 add r4, r4, r3 - bne .L856 + bne .L858 mov r0, r9 -.L870: +.L872: bl flash_exit_slc_mode mov r0, r7 add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L857: +.L859: ldr fp, [r5, #-1792] - ldr r2, .L871+24 + ldr r2, .L873+24 ldr r3, [fp] cmp r3, r2 - bne .L859 + bne .L861 cmp r7, #0 - bne .L860 + bne .L862 mov r0, r4 - ldr r1, [r8, #4] + ldr r1, [r8, #36] bl __aeabi_uidiv - ldr r3, .L871+8 + ldr r3, .L873+8 add r0, r0, #1 str r0, [r3, #-1784] mov r0, r7 - b .L870 -.L872: + b .L872 +.L874: .align 2 -.L871: +.L873: .word .LANCHOR3 .word .LANCHOR0 .word .LANCHOR2 - .word .LANCHOR1+256 + .word .LANCHOR1+472 .word .LANCHOR0+48 .word .LANCHOR2-2732 .word 1312902724 @@ -4934,76 +4935,76 @@ ToshibaReadRetrial: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #28 sub sp, sp, #28 - mov r8, r0 + mov r7, r0 mov r10, r3 str r1, [sp, #20] str r2, [sp, #8] bl NandcWaitFlashReady - ldr r3, .L902 - add r3, r3, r8, asl #3 - ldr r5, [r3, #12] - ldrb r3, [r3, #16] @ zero_extendqisi2 + ldr r3, .L904 + ldr r5, [r3, r7, asl #3] + add r3, r3, r7, asl #3 + ldrb r3, [r3, #4] @ zero_extendqisi2 add r6, r3, #8 add r6, r5, r6, asl #8 str r3, [sp, #4] - ldr r3, .L902+4 - ldrb r7, [r3] @ zero_extendqisi2 + ldr r3, .L904+4 + ldrb r8, [r3] @ zero_extendqisi2 str r3, [sp, #12] - sub r4, r7, #67 + sub r4, r8, #67 ldr r3, [sp, #4] cmp r4, #1 mov r3, r3, asl #8 movls r4, #0 str r3, [sp, #16] - bls .L874 - ldr r3, .L902+8 + bls .L876 + ldr r3, .L904+8 ldrb r4, [r3, #-1860] @ zero_extendqisi2 cmp r4, #0 - beq .L875 + beq .L877 mov r0, #0 mov r4, #1 bl NandcSetDdrMode -.L875: +.L877: ldr r3, [sp, #16] mov r2, #92 add r3, r5, r3 str r2, [r3, #2056] mov r2, #197 str r2, [r3, #2056] -.L874: - mov r7, #1 - mvn r9, #0 .L876: - ldr r3, .L902+12 + mov r8, #1 + mvn r9, #0 +.L878: + ldr r3, .L904+12 ldrb r3, [r3] @ zero_extendqisi2 add r3, r3, #1 - cmp r7, r3 - bcs .L901 + cmp r8, r3 + bcs .L903 ldr r3, [sp, #12] mov r0, r6 - uxtb r1, r7 + uxtb r1, r8 ldrb r3, [r3] @ zero_extendqisi2 sub r3, r3, #67 cmp r3, #1 - bhi .L877 + bhi .L879 bl SandiskSetRRPara - b .L878 -.L877: + b .L880 +.L879: bl ToshibaSetRRPara -.L878: +.L880: ldr r3, [sp, #12] ldrb r3, [r3] @ zero_extendqisi2 cmp r3, #34 - bne .L879 - ldr r3, .L902+12 + bne .L881 + ldr r3, .L904+12 ldrb r3, [r3] @ zero_extendqisi2 sub r3, r3, #3 - cmp r7, r3 + cmp r8, r3 ldreq r3, [sp, #4] moveq r2, #179 addeq r3, r5, r3, asl #8 streq r2, [r3, #2056] -.L879: +.L881: ldr r3, [sp, #16] cmp r4, #0 mov r2, #38 @@ -5011,10 +5012,10 @@ ToshibaReadRetrial: str r2, [r3, #2056] mov r2, #93 str r2, [r3, #2056] - beq .L880 + beq .L882 mov r0, #4 bl NandcSetDdrMode - mov r0, r8 + mov r0, r7 mov r3, r10 ldr r1, [sp, #20] ldr r2, [sp, #8] @@ -5022,70 +5023,70 @@ ToshibaReadRetrial: mov fp, r0 mov r0, #0 bl NandcSetDdrMode - b .L881 -.L880: - mov r0, r8 + b .L883 +.L882: + mov r0, r7 ldr r1, [sp, #20] ldr r2, [sp, #8] mov r3, r10 bl FlashReadRawPage mov fp, r0 -.L881: +.L883: cmn fp, #1 - beq .L882 - ldr r3, .L902+8 + beq .L884 + ldr r3, .L904+8 cmn r9, #1 moveq r9, fp ldrb r2, [r3, #-2743] @ zero_extendqisi2 add r2, r2, r2, asl #1 cmp fp, r2, asr #2 - bcc .L884 + bcc .L886 mov r10, #0 str r10, [sp, #8] -.L882: - add r7, r7, #1 - b .L876 -.L901: - mov fp, r9 .L884: + add r8, r8, #1 + b .L878 +.L903: + mov fp, r9 +.L886: ldr r3, [sp, #12] mov r0, r6 mov r1, #0 ldrb r2, [r3] @ zero_extendqisi2 sub r2, r2, #67 cmp r2, #1 - bhi .L886 + bhi .L888 bl SandiskSetRRPara - b .L887 -.L886: + b .L889 +.L888: bl ToshibaSetRRPara -.L887: +.L889: ldr r3, [sp, #16] mov r2, #255 add r5, r5, r3 str r2, [r5, #2056] - ldr r2, .L902+8 + ldr r2, .L904+8 ldrb r2, [r2, #-2743] @ zero_extendqisi2 add r2, r2, r2, asl #1 cmp fp, r2, asr #2 - bcc .L888 + bcc .L890 cmn fp, #1 movne fp, #256 -.L888: - mov r0, r8 +.L890: + mov r0, r7 bl NandcWaitFlashReady cmp r4, #0 - beq .L889 + beq .L891 mov r0, #4 bl NandcSetDdrMode -.L889: +.L891: mov r0, fp add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L903: +.L905: .align 2 -.L902: +.L904: .word .LANCHOR0 .word g_retryMode .word .LANCHOR2 @@ -5102,70 +5103,70 @@ SamsungReadRetrial: stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 - mov r8, r0 - ldr r4, .L918 - mov r7, r3 - mov fp, r1 + mov r7, r0 mov r9, r2 - add r4, r4, r8, asl #3 + mov r8, r3 + mov fp, r1 bl NandcWaitFlashReady - ldr r10, .L918+4 + ldr r2, .L920 mov r6, #1 - ldrb r3, [r4, #16] @ zero_extendqisi2 - ldr r5, [r4, #12] + ldr r10, .L920+4 mvn r4, #0 + add r3, r2, r7, asl #3 + ldr ip, .L920+8 + ldr r5, [r2, r7, asl #3] + ldrb r3, [r3, #4] @ zero_extendqisi2 add r3, r3, #8 - ldr ip, .L918+8 add r5, r5, r3, asl #8 -.L905: +.L907: ldrb r3, [r10] @ zero_extendqisi2 add r3, r3, #1 cmp r6, r3 - bcs .L908 + bcs .L910 mov r0, r5 uxtb r1, r6 str ip, [sp, #4] bl SamsungSetRRPara - mov r0, r8 + mov r0, r7 mov r1, fp mov r2, r9 - mov r3, r7 + mov r3, r8 bl FlashReadRawPage cmn r0, #1 ldr ip, [sp, #4] - beq .L906 + beq .L908 ldrb r3, [ip, #-2743] @ zero_extendqisi2 cmn r4, #1 moveq r4, r0 add r3, r3, r3, asl #1 cmp r0, r3, asr #2 - bcc .L911 - mov r7, #0 - mov r9, r7 -.L906: - add r6, r6, #1 - b .L905 -.L911: - mov r4, r0 + bcc .L913 + mov r8, #0 + mov r9, r8 .L908: + add r6, r6, #1 + b .L907 +.L913: + mov r4, r0 +.L910: mov r0, r5 mov r1, #0 bl SamsungSetRRPara - ldr r3, .L918+8 + ldr r3, .L920+8 ldrb r3, [r3, #-2743] @ zero_extendqisi2 add r3, r3, r3, asl #1 cmp r4, r3, asr #2 - bcc .L910 + bcc .L912 cmn r4, #1 movne r4, #256 -.L910: +.L912: mov r0, r4 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L919: +.L921: .align 2 -.L918: +.L920: .word .LANCHOR0 .word g_maxRetryCount .word .LANCHOR2 @@ -5178,11 +5179,11 @@ MicronReadRetrial: .fnstart @ args = 0, pretend = 0, frame = 24 @ frame_needed = 0, uses_anonymous_args = 0 -.L922: +.L924: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r8, r3 - ldr r3, .L946 + ldr r3, .L948 mov fp, r2 .pad #36 sub sp, sp, #36 @@ -5193,38 +5194,38 @@ MicronReadRetrial: str r1, [sp, #20] cmp r3, #0 addeq r5, r5, r5, asl #1 - ldrne r2, .L946+4 + ldrne r2, .L948+4 ubfxeq r5, r5, #2, #8 smullne r2, r3, r5, r2 uxtbne r5, r3 - ldr r3, .L946+8 + ldr r3, .L948+8 add r3, r3, r0, asl #3 str r3, [sp, #24] -.L932: +.L934: mov r0, r6 mov r9, #0 bl NandcWaitFlashReady + ldr r3, .L948+8 mvn r4, #0 - ldr r3, [sp, #24] - ldr r3, [r3, #12] + ldr r3, [r3, r6, asl #3] str r3, [sp, #12] ldr r3, [sp, #24] - ldrb r3, [r3, #16] @ zero_extendqisi2 + ldrb r3, [r3, #4] @ zero_extendqisi2 str r3, [sp, #16] ldr r2, [sp, #16] ldr r3, [sp, #12] add r7, r3, r2, asl #8 -.L923: - ldr r3, .L946+12 +.L925: + ldr r3, .L948+12 ldrb r3, [r3] @ zero_extendqisi2 cmp r9, r3 - bcs .L926 + bcs .L928 mov r3, #239 mov r0, #200 str r3, [r7, #2056] mov r3, #137 str r3, [r7, #2052] - bl NandcDelayns + bl ndelay mov ip, #0 add r3, r9, #1 mov r0, r6 @@ -5239,22 +5240,22 @@ MicronReadRetrial: str ip, [sp, #28] bl FlashReadRawPage cmn r0, #1 - beq .L924 + beq .L926 cmn r4, #1 ldr ip, [sp, #28] moveq r4, r0 cmp r0, r5 - bcc .L934 - mov r8, ip - mov fp, ip -.L924: - ldr r9, [sp, #8] - b .L923 -.L934: - mov r4, r0 + bcc .L936 mov r8, ip mov fp, ip .L926: + ldr r9, [sp, #8] + b .L925 +.L936: + mov r4, r0 + mov r8, ip + mov fp, ip +.L928: ldr r2, [sp, #16] mov r0, #200 ldr r3, [sp, #12] @@ -5263,17 +5264,17 @@ MicronReadRetrial: str r3, [r7, #2056] mov r3, #137 str r3, [r7, #2052] - bl NandcDelayns + bl ndelay cmp r4, r5 mov r3, #0 str r3, [r7, #2048] str r3, [r7, #2048] str r3, [r7, #2048] str r3, [r7, #2048] - bcc .L928 + bcc .L930 cmn r4, #1 movne r4, #256 -.L928: +.L930: cmn r4, #1 movne r7, #0 moveq r7, #1 @@ -5281,48 +5282,48 @@ MicronReadRetrial: movne r1, r7 orreq r1, r7, #1 cmp r1, #0 - beq .L929 + beq .L931 str r4, [sp] mov r1, r9 - ldr r0, .L946+16 + ldr r0, .L948+16 mov r3, r9 ldr r2, [sp, #20] bl printk cmp r10, #0 - bne .L930 - ldr r3, .L946 + bne .L932 + ldr r3, .L948 ldrb r3, [r3, #-2744] @ zero_extendqisi2 cmp r3, #0 moveq r7, #0 andne r7, r7, #1 cmp r7, #0 - beq .L939 + beq .L941 mov r0, r6 mov r1, #3 bl micron_auto_read_calibration_config mov r10, #1 - b .L932 -.L930: + b .L934 +.L932: mov r0, r6 mov r1, #0 bl micron_auto_read_calibration_config cmn r4, #1 movne r4, #256 - b .L939 -.L929: + b .L941 +.L931: cmp r10, #0 - beq .L939 + beq .L941 mov r0, r6 mov r4, #256 bl micron_auto_read_calibration_config -.L939: +.L941: mov r0, r4 add sp, sp, #36 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L947: +.L949: .align 2 -.L946: +.L948: .word .LANCHOR2 .word 1431655766 .word .LANCHOR0 @@ -5341,9 +5342,9 @@ HynixReadRetrial: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 mov r10, r2 - ldr r2, .L966 + ldr r2, .L968 mov fp, r1 - ldr ip, .L966+4 + ldr ip, .L968+4 mov r8, r3 mov r5, r0 ldr r1, [r2, #44] @@ -5359,14 +5360,14 @@ HynixReadRetrial: ldrlsb r4, [r3, #-2712] @ zero_extendqisi2 bl NandcWaitFlashReady mov ip, #0 -.L950: +.L952: cmp ip, r9 - bcs .L954 + bcs .L956 add r4, r4, #1 mov r0, r5 ldrb r1, [r7, #-2731] @ zero_extendqisi2 uxtb r4, r4 - ldr r2, .L966+8 + ldr r2, .L968+8 cmp r4, r9 str ip, [sp, #4] movcs r4, #0 @@ -5379,21 +5380,21 @@ HynixReadRetrial: bl FlashReadRawPage cmn r0, #1 ldr ip, [sp, #4] - beq .L952 + beq .L954 ldrb r3, [r7, #-2743] @ zero_extendqisi2 cmn r6, #1 moveq r6, r0 add r3, r3, r3, asl #1 cmp r0, r3, asr #2 - bcc .L959 + bcc .L961 mov r8, #0 mov r10, r8 -.L952: - add ip, ip, #1 - b .L950 -.L959: - mov r6, r0 .L954: + add ip, ip, #1 + b .L952 +.L961: + mov r6, r0 +.L956: ldr r3, [sp] add r5, r7, r5 ldr r3, [r3, #44] @@ -5405,17 +5406,17 @@ HynixReadRetrial: strhib r4, [r5, #-2720] add r3, r3, r3, asl #1 cmp r6, r3, asr #2 - bcc .L958 + bcc .L960 cmn r6, #1 movne r6, #256 -.L958: +.L960: mov r0, r6 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L967: +.L969: .align 2 -.L966: +.L968: .word .LANCHOR0 .word .LANCHOR2 .word .LANCHOR2-2728 @@ -5436,27 +5437,27 @@ samsung_read_retrial: mov r8, r3 str r1, [sp, #12] bl NandcWaitFlashReady - ldr r3, .L998 + ldr r3, .L1000 + ldr r4, [r3, r10, asl #3] add r3, r3, r10, asl #3 - ldr r4, [r3, #12] - ldrb r3, [r3, #16] @ zero_extendqisi2 + ldrb r3, [r3, #4] @ zero_extendqisi2 str r3, [sp, #8] - ldr r3, .L998+4 + ldr r3, .L1000+4 ldrb r2, [r3, #-1876] @ zero_extendqisi2 str r3, [sp, #16] cmp r2, #0 - bne .L969 + bne .L971 ldr r3, [sp, #8] mvn r5, #0 mov r6, #1 mov r9, r3, asl #8 add r7, r4, r9 -.L973: +.L975: mov r3, #239 str r3, [r7, #2056] mov r3, #141 str r3, [r7, #2052] - ldr r3, .L998+8 + ldr r3, .L1000+8 mov ip, #0 mov r0, r10 ldr r1, [sp, #12] @@ -5470,40 +5471,40 @@ samsung_read_retrial: str ip, [r7, #2048] bl FlashReadRawPage cmn r0, #1 - beq .L970 + beq .L972 ldr r3, [sp, #16] cmn r5, #1 moveq r5, r0 ldrb r3, [r3, #-2743] @ zero_extendqisi2 add r3, r3, r3, asl #1 cmp r0, r3, asr #2 - bcc .L981 + bcc .L983 ldr ip, [sp, #20] mov r8, ip mov fp, ip -.L970: +.L972: add r6, r6, #1 cmp r6, #26 - bne .L973 - b .L972 -.L981: + bne .L975 + b .L974 +.L983: mov r5, r0 -.L972: +.L974: add r9, r4, r9 mov r3, #239 str r3, [r9, #2056] ldr r3, [sp, #8] add r4, r4, r3, asl #8 mov r3, #141 - b .L997 -.L969: + b .L999 +.L971: ldr r3, [sp, #8] mvn r5, #0 - ldr r7, .L998+12 + ldr r7, .L1000+12 mov r6, #1 mov ip, r3, asl #8 add r9, r4, ip -.L978: +.L980: mov r3, #239 str r3, [r9, #2056] mov r3, #137 @@ -5524,32 +5525,32 @@ samsung_read_retrial: bl FlashReadRawPage cmn r0, #1 ldr ip, [sp, #20] - beq .L975 + beq .L977 ldr r3, [sp, #16] cmn r5, #1 moveq r5, r0 ldrb r3, [r3, #-2743] @ zero_extendqisi2 add r3, r3, r3, asl #1 cmp r0, r3, asr #2 - bcc .L982 + bcc .L984 mov r8, #0 mov fp, r8 -.L975: +.L977: add r6, r6, #1 add r7, r7, #4 cmp r6, #26 - bne .L978 - b .L977 -.L982: + bne .L980 + b .L979 +.L984: mov r5, r0 -.L977: +.L979: add ip, r4, ip mov r3, #239 str r3, [ip, #2056] ldr r3, [sp, #8] add r4, r4, r3, asl #8 mov r3, #137 -.L997: +.L999: str r3, [r4, #2052] mov r3, #0 str r3, [r4, #2048] @@ -5560,29 +5561,29 @@ samsung_read_retrial: ldrb r3, [r3, #-2743] @ zero_extendqisi2 add r3, r3, r3, asl #1 cmp r5, r3, asr #2 - bcc .L979 + bcc .L981 cmn r5, #1 movne r5, #256 -.L979: +.L981: cmn r5, #1 cmpne r5, #256 - bne .L980 + bne .L982 str r5, [sp] mov r1, r6 - ldr r0, .L998+16 + ldr r0, .L1000+16 mov r3, r6 ldr r2, [sp, #12] bl printk -.L980: +.L982: mov r0, r10 bl NandcWaitFlashReady mov r0, r5 add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L999: +.L1001: .align 2 -.L998: +.L1000: .word .LANCHOR0 .word .LANCHOR2 .word .LANCHOR3+4 @@ -5601,22 +5602,22 @@ FlashProgPage: .save {r4, r5, r6, r7, r8, lr} .pad #8 mov r8, r3 - ldr r3, .L1004 + ldr r3, .L1006 subs r4, r0, #0 mov r5, r1 mov r7, r2 - ldrb r6, [r3, #265] @ zero_extendqisi2 - bne .L1001 - ldr r2, .L1004+4 - ldrb r3, [r2, #1] @ zero_extendqisi2 - ldr r1, [r2, #4] + ldrb r6, [r3, #481] @ zero_extendqisi2 + bne .L1003 + ldr r2, .L1006+4 + ldrb r3, [r2, #33] @ zero_extendqisi2 + ldr r1, [r2, #36] mul r1, r1, r3 cmp r5, r1 - bcs .L1001 - ldrb r3, [r2] @ zero_extendqisi2 + bcs .L1003 + ldrb r3, [r2, #32] @ zero_extendqisi2 cmp r3, #0 movne r6, #4 -.L1001: +.L1003: mov r0, r4 bl NandcWaitFlashReady mov r0, r4 @@ -5645,9 +5646,9 @@ FlashProgPage: add sp, sp, #8 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L1005: +.L1007: .align 2 -.L1004: +.L1006: .word .LANCHOR1 .word .LANCHOR0 .fnend @@ -5662,9 +5663,9 @@ FlashSavePhyInfo: stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 - ldr r4, .L1020 - ldr r7, .L1020+4 - ldr r9, .L1020+8 + ldr r4, .L1022 + ldr r7, .L1022+4 + ldr r9, .L1022+8 ldr r3, [r4, #-1868] mov r8, r4 ldrb r0, [r4, #-1779] @ zero_extendqisi2 @@ -5676,30 +5677,30 @@ FlashSavePhyInfo: ldr r0, [r4, #-1868] bl ftl_memset ldr r3, [r4, #-1792] - ldr r1, .L1020+12 + ldr r1, .L1022+12 mov r2, #32 str r9, [r3] ldr r0, [r4, #-1792] ldrb r3, [r7, #3152] @ zero_extendqisi2 add r0, r0, #16 strh r3, [r0, #-4] @ movhi - ldrb r3, [r7, #1] @ zero_extendqisi2 + ldrb r3, [r7, #33] @ zero_extendqisi2 strh r3, [r0, #-2] @ movhi ldrb r3, [r4, #-1860] @ zero_extendqisi2 str r3, [r0, #1060] bl ftl_memcpy ldr r0, [r4, #-1792] - ldr r1, .L1020+16 + ldr r1, .L1022+16 mov r2, #8 add r0, r0, #80 bl ftl_memcpy ldr r0, [r4, #-1792] - ldr r1, .L1020+20 + ldr r1, .L1022+20 mov r2, #32 add r0, r0, #96 bl ftl_memcpy ldr r0, [r4, #-1792] - ldr r1, .L1020+24 + ldr r1, .L1022+24 mov r2, #32 add r0, r0, #160 bl ftl_memcpy @@ -5710,7 +5711,7 @@ FlashSavePhyInfo: bl ftl_memcpy ldr r0, [r4, #-1792] mov r2, #852 - ldr r1, .L1020+28 + ldr r1, .L1022+28 add r0, r0, #224 bl ftl_memcpy ldr r5, [r4, #-1792] @@ -5726,18 +5727,18 @@ FlashSavePhyInfo: bl flash_enter_slc_mode mov r5, #0 mov r6, r5 -.L1012: - ldr r1, [r7, #4] +.L1014: + ldr r1, [r7, #36] mov r0, #0 mov r2, r0 mul r1, r1, r6 bl FlashEraseBlock ldrb r10, [r4, #-2744] @ zero_extendqisi2 cmp r10, #0 - beq .L1007 + beq .L1009 mov r10, #0 -.L1008: - ldr r1, [r7, #4] +.L1010: + ldr r1, [r7, #36] mov r0, #0 ldr r2, [r4, #-1868] mov r3, r0 @@ -5745,24 +5746,24 @@ FlashSavePhyInfo: add r10, r10, #1 bl FlashProgPage cmp r10, #10 - bne .L1008 - b .L1009 -.L1007: - ldr r1, [fp, #4] + bne .L1010 + b .L1011 +.L1009: + ldr r1, [fp, #36] mov r3, r10 ldr r2, [r8, #-1868] mov r0, r10 mul r1, r1, r6 bl FlashProgPage - ldr r1, [fp, #4] + ldr r1, [fp, #36] mov r0, r10 ldr r2, [r8, #-1868] mov r3, r10 mul r1, r1, r6 add r1, r1, #1 bl FlashProgPage -.L1009: - ldr r1, [r7, #4] +.L1011: + ldr r1, [r7, #36] mov r0, #0 ldr r2, [r4, #-1776] mov r3, r0 @@ -5770,11 +5771,11 @@ FlashSavePhyInfo: bl FlashReadRawPage add r2, r6, #1 cmn r0, #1 - beq .L1010 + beq .L1012 ldr r10, [r8, #-1792] ldr r3, [r10] cmp r3, r9 - bne .L1010 + bne .L1012 add r0, r10, #12 movw r1, #2036 str r2, [sp, #4] @@ -5782,22 +5783,22 @@ FlashSavePhyInfo: ldr r3, [r10, #8] cmp r3, r0 ldr r2, [sp, #4] - bne .L1010 - ldr r3, [fp, #4] + bne .L1012 + ldr r3, [fp, #36] cmp r5, #1 str r2, [r8, #-1784] mul r6, r3, r6 str r6, [r8, #-1788] - beq .L1013 + beq .L1015 mov r5, #1 -.L1010: +.L1012: cmp r2, #4 mov r6, r2 - bne .L1012 - b .L1011 -.L1013: + bne .L1014 + b .L1013 +.L1015: mov r5, #2 -.L1011: +.L1013: mov r0, #0 bl flash_exit_slc_mode clz r0, r5 @@ -5806,16 +5807,16 @@ FlashSavePhyInfo: add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1021: +.L1023: .align 2 -.L1020: +.L1022: .word .LANCHOR2 .word .LANCHOR0 .word 1312902724 .word IDByte .word .LANCHOR0+3156 .word .LANCHOR0+3164 - .word .LANCHOR1+256 + .word .LANCHOR1+472 .word .LANCHOR2-2732 .fnend .size FlashSavePhyInfo, .-FlashSavePhyInfo @@ -5829,41 +5830,41 @@ FlashReadIdbDataRaw: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r9, r0 - ldr r3, .L1042 + ldr r3, .L1044 .pad #20 sub sp, sp, #20 - ldr r5, .L1042+4 + ldr r5, .L1044+4 ldr r0, [r3] @ unaligned ldrb r3, [r5, #-2743] @ zero_extendqisi2 str r0, [sp, #12] @ unaligned str r3, [sp] ldr r3, [r5, #-1864] cmp r3, #0 - beq .L1023 + beq .L1025 mov r0, #0 bl flash_enter_slc_mode -.L1023: +.L1025: mov r0, r9 mov r1, #0 mov r2, #2048 - ldr r10, .L1042+8 + ldr r10, .L1044+8 bl ftl_memset mvn r8, #0 mov r4, #2 mov fp, r10 -.L1024: - ldrb r3, [r10, #1] @ zero_extendqisi2 - cmp r4, r3 - bcs .L1028 - mov r7, #0 .L1026: + ldrb r3, [r10, #33] @ zero_extendqisi2 + cmp r4, r3 + bcs .L1030 + mov r7, #0 +.L1028: add r3, sp, #12 - ldr r6, .L1042+4 + ldr r6, .L1044+4 ldrb ip, [r7, r3] @ zero_extendqisi2 mov r0, ip str ip, [sp, #4] bl FlashBchSel - ldr r1, [fp, #4] + ldr r1, [fp, #36] mov r0, #0 ldr r2, [r5, #-1868] mov r3, r0 @@ -5871,19 +5872,19 @@ FlashReadIdbDataRaw: bl FlashReadRawPage cmn r0, #1 ldr ip, [sp, #4] - bne .L1025 + bne .L1027 add r7, r7, #1 cmp r7, #4 - bne .L1026 - b .L1027 -.L1025: + bne .L1028 + b .L1029 +.L1027: ldr r3, [r6, #-1868] - ldr r2, .L1042+12 + ldr r2, .L1044+12 ldr r3, [r3] cmp r3, r2 - bne .L1027 + bne .L1029 mov r1, ip - ldr r0, .L1042+16 + ldr r0, .L1044+16 bl printk mov r0, r9 ldr r1, [r6, #-1868] @@ -5891,34 +5892,34 @@ FlashReadIdbDataRaw: bl ftl_memcpy ldr r3, [r6, #-1868] ldr r3, [r3, #512] - strb r3, [fp, #1] + strb r3, [fp, #33] ldr r3, [r6, #-1784] cmp r3, r4 - bls .L1031 + bls .L1033 str r4, [r6, #-1784] bl FlashSavePhyInfo mov r8, #0 -.L1027: +.L1029: add r4, r4, #1 - b .L1024 -.L1031: + b .L1026 +.L1033: mov r8, #0 -.L1028: +.L1030: ldr r0, [sp] bl FlashBchSel ldr r3, [r5, #-1864] cmp r3, #0 - beq .L1035 + beq .L1037 mov r0, #0 bl flash_exit_slc_mode -.L1035: +.L1037: mov r0, r8 add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1043: +.L1045: .align 2 -.L1042: +.L1044: .word .LANCHOR3 .word .LANCHOR2 .word .LANCHOR0 @@ -5939,93 +5940,92 @@ FlashInit: .pad #20 sub sp, sp, #20 mov r0, #32768 - bl ftl_malloc - ldr r4, .L1143 - ldr r5, .L1143+4 + bl ftl_dma32_malloc + ldr r4, .L1145 + ldr r5, .L1145+4 mov r7, #0 str r0, [r4, #-1868] mov r0, #32768 - bl ftl_malloc + bl ftl_dma32_malloc str r0, [r4, #-1776] mov r0, #4096 - bl ftl_malloc + bl ftl_dma32_malloc str r0, [r4, #-1772] mov r0, #32768 - bl ftl_malloc + bl ftl_dma32_malloc str r0, [r4, #-1768] mov r0, #4096 - bl ftl_malloc + bl ftl_dma32_malloc mov r3, #50 str r7, [r4, #-1784] - strb r3, [r5, #1] + strb r3, [r5, #33] strb r3, [r4, #-1780] mov r3, #128 strb r7, [r4, #-1860] - str r3, [r5, #4] + str r3, [r5, #36] mov r3, #60 str r7, [r4, #-1800] - strb r7, [r5] + strb r7, [r5, #32] strb r7, [r4, #-1760] strb r3, [r4, #-1779] str r0, [r4, #-1764] mov r0, r6 bl NandcInit - ldr r6, .L1143+8 + ldr r6, .L1145+8 mov r8, r6 -.L1050: - ldr r3, .L1143+12 +.L1052: + add r2, r5, r7, asl #3 uxtb r9, r7 - add r2, r3, r7, asl #3 - mov r0, r9 - ldr r10, [r3, r7, asl #3] + ldr r10, [r5, r7, asl #3] ldrb fp, [r2, #4] @ zero_extendqisi2 + mov r0, r9 bl FlashReset mov r0, r9 bl NandcFlashCs - mov r2, #144 - add fp, r10, fp, asl #8 + mov r3, #144 + add r10, r10, fp, asl #8 mov r0, #200 - mov r10, #0 - str r2, [fp, #2056] - str r10, [fp, #2052] - bl NandcDelayns - ldr r1, [fp, #2048] + mov fp, #0 + str r3, [r10, #2056] + str fp, [r10, #2052] + bl ndelay + ldr r1, [r10, #2048] uxtb r1, r1 strb r1, [r6] - ldr r0, [fp, #2048] + ldr r0, [r10, #2048] cmp r1, #44 strb r0, [r6, #1] - ldr r0, [fp, #2048] + ldr r0, [r10, #2048] strb r0, [r6, #2] - ldr r0, [fp, #2048] + ldr r0, [r10, #2048] strb r0, [r6, #3] - ldr r0, [fp, #2048] + ldr r0, [r10, #2048] strb r0, [r6, #4] - ldr r0, [fp, #2048] + ldr r0, [r10, #2048] strb r0, [r6, #5] - bne .L1045 + bne .L1047 mov r1, #239 mov r0, #200 - str r1, [fp, #2056] + str r1, [r10, #2056] mov r1, #1 - str r1, [fp, #2052] - bl NandcDelayns + str r1, [r10, #2052] + bl ndelay mov r1, #4 - str r1, [fp, #2048] - str r10, [fp, #2048] - str r10, [fp, #2048] - str r10, [fp, #2048] -.L1045: + str r1, [r10, #2048] + str fp, [r10, #2048] + str fp, [r10, #2048] + str fp, [r10, #2048] +.L1047: mov r0, r9 bl NandcFlashDeCs ldrb r2, [r6] @ zero_extendqisi2 sub r3, r2, #1 uxtb r3, r3 cmp r3, #253 - bhi .L1046 + bhi .L1048 ldrb r1, [r6, #2] @ zero_extendqisi2 ldrb r3, [r6, #1] @ zero_extendqisi2 - ldr r0, .L1143+16 + ldr r0, .L1145+12 str r1, [sp] ldrb r1, [r6, #3] @ zero_extendqisi2 str r1, [sp, #4] @@ -6035,20 +6035,20 @@ FlashInit: str r1, [sp, #12] add r1, r7, #1 bl printk -.L1046: +.L1048: cmp r7, #0 - bne .L1047 + bne .L1049 ldrb r3, [r8] @ zero_extendqisi2 sub r3, r3, #1 uxtb r3, r3 cmp r3, #253 - bhi .L1097 - ldr r3, .L1143+8 + bhi .L1099 + ldr r3, .L1145+8 ldrb r3, [r3, #1] @ zero_extendqisi2 cmp r3, #255 - beq .L1097 + beq .L1099 bl FlashCs123Init -.L1047: +.L1049: ldrb r3, [r6] @ zero_extendqisi2 add r7, r7, #1 add r6, r6, #8 @@ -6056,32 +6056,32 @@ FlashInit: moveq r3, #44 streqb r3, [r6, #-8] cmp r7, #4 - bne .L1050 + bne .L1052 ldrb r3, [r8] @ zero_extendqisi2 cmp r3, #173 - beq .L1051 + beq .L1053 ldr r0, [r4, #-1856] bl NandcSetDdrMode -.L1051: +.L1053: mov r2, #852 - ldr r0, .L1143+20 + ldr r0, .L1145+16 mov r1, #0 - ldr r7, .L1143+24 + ldr r7, .L1145+20 bl ftl_memset ldr r2, [r4, #-1848] - ldr r0, .L1143+28 + ldr r0, .L1145+24 cmp r2, r7 - add r3, r0, #256 + add r3, r0, #472 str r3, [r5, #44] mov r3, #0 - strb r3, [r5, #8] - bne .L1052 - ldrb r3, [r0, #275] @ zero_extendqisi2 + strb r3, [r5, #40] + bne .L1054 + ldrb r3, [r0, #491] @ zero_extendqisi2 cmp r3, #50 - ldrne r3, .L1143 + ldrne r3, .L1145 movne r1, #1 strne r1, [r3, #-1864] -.L1052: +.L1054: ldrb r6, [r8, #1] @ zero_extendqisi2 sub ip, r6, #218 cmp r6, #161 @@ -6095,126 +6095,126 @@ FlashInit: cmp r1, #209 orreq r3, r3, #1 cmp r3, #0 - bne .L1053 + bne .L1055 cmp r6, #220 - bne .L1054 - ldr r3, .L1143+8 + bne .L1056 + ldr r3, .L1145+8 ldrb r3, [r3, #3] @ zero_extendqisi2 cmp r3, #149 - bne .L1054 -.L1053: + bne .L1056 +.L1055: mov lr, #16 - strb lr, [r5, #1] + strb lr, [r5, #33] strb lr, [r4, #-1779] mov r1, #1 ldrb lr, [r8] @ zero_extendqisi2 - strb r1, [r5] + strb r1, [r5, #32] cmp lr, #152 - ldr r3, .L1143 + ldr r3, .L1145 strb lr, [r0, #3413] strb r6, [r0, #3414] - bne .L1056 - ldr lr, .L1143+8 + bne .L1058 + ldr lr, .L1145+8 ldrsb lr, [lr, #4] cmp lr, #0 strltb r1, [r3, #-1760] movge r1, #24 strgeb r1, [r3, #-1779] -.L1056: +.L1058: movw r3, #2049 cmp r2, r7 cmpne r2, r3 moveq r3, #16 streqb r3, [r4, #-1779] cmp ip, #0 - ldrne r3, .L1143+32 + ldrne r3, .L1145+28 movne r2, #2048 strneh r2, [r3, #14] @ movhi mvnne r3, #37 - bne .L1137 -.L1060: + bne .L1139 +.L1062: cmp r6, #220 - bne .L1062 - ldr r3, .L1143+32 + bne .L1064 + ldr r3, .L1145+28 mov r2, #4096 strh r2, [r3, #14] @ movhi mvn r3, #35 -.L1137: +.L1139: strb r3, [r0, #3414] - b .L1061 -.L1062: + b .L1063 +.L1064: cmp r6, #211 - ldreq r3, .L1143+32 + ldreq r3, .L1145+28 moveq r2, #4096 streqh r2, [r3, #14] @ movhi moveq r3, #2 streqb r3, [r0, #3425] -.L1061: - ldr r1, .L1143+36 +.L1063: + ldr r1, .L1145+32 mov r2, #32 - ldr r0, .L1143+40 + ldr r0, .L1145+36 bl ftl_memcpy - ldr r0, .L1143+44 - ldr r1, .L1143+32 + ldr r0, .L1145+40 + ldr r1, .L1145+28 mov r2, #32 bl ftl_memcpy -.L1054: - ldrb r3, [r5] @ zero_extendqisi2 +.L1056: + ldrb r3, [r5, #32] @ zero_extendqisi2 cmp r3, #0 - bne .L1063 + bne .L1065 bl FlashLoadPhyInfoInRam cmp r0, #0 - bne .L1065 - ldr r3, .L1143+4 - ldr r6, .L1143 + bne .L1067 + ldr r3, .L1145+4 + ldr r6, .L1145 ldr r3, [r3, #44] ldrh r3, [r3, #16] mov r3, r3, lsr #8 tst r3, #1 and r0, r3, #7 strb r0, [r4, #-1875] - bne .L1065 + bne .L1067 mov r3, #1 strb r3, [r6, #-1860] bl FlashSetInterfaceMode ldrb r0, [r6, #-1875] @ zero_extendqisi2 bl NandcSetMode -.L1065: +.L1067: ldr r3, [r5, #44] - ldr r6, .L1143 + ldr r6, .L1145 ldrb r3, [r3, #26] @ zero_extendqisi2 strb r3, [r4, #-2744] bl FlashLoadPhyInfo cmp r0, #0 - beq .L1063 + beq .L1065 ldr r3, [r6, #-1856] cmp r3, #0 - beq .L1068 + beq .L1070 mov r0, #1 bl FlashSetInterfaceMode mov r0, #1 - b .L1138 -.L1068: + b .L1140 +.L1070: ldrb r0, [r6, #-1875] @ zero_extendqisi2 bl FlashSetInterfaceMode ldrb r0, [r6, #-1875] @ zero_extendqisi2 -.L1138: +.L1140: bl NandcSetMode bl FlashLoadPhyInfo cmp r0, #0 - beq .L1063 + beq .L1065 mov r0, #1 - ldr r6, .L1143+4 + ldr r6, .L1145+4 bl FlashSetInterfaceMode mov r0, #1 bl NandcSetMode ldr r3, [r5, #44] - ldr r0, .L1143+48 + ldr r0, .L1145+44 ldrh r1, [r3, #14] bl printk bl FlashLoadPhyInfoInRam cmn r0, #1 - beq .L1111 + beq .L1113 bl FlashDieInfoInit ldr r3, [r6, #44] ldrb r0, [r3, #19] @ zero_extendqisi2 @@ -6227,38 +6227,38 @@ FlashInit: add r3, r3, #15 cmp r1, r3, asr #12 ldrh r3, [r2, #14] - blt .L1070 + blt .L1072 add r0, r3, #255 cmp r1, r0, asr #8 - bge .L1071 -.L1070: + bge .L1073 +.L1072: bic r3, r3, #255 strh r3, [r2, #14] @ movhi -.L1071: +.L1073: ldrb r3, [r4, #-1875] @ zero_extendqisi2 tst r3, #6 - beq .L1072 + beq .L1074 bl FlashSavePhyInfo mov r0, #0 bl flash_enter_slc_mode - ldr r3, .L1143 + ldr r3, .L1145 mov r0, #0 ldr r1, [r3, #-1788] bl FlashDdrParaScan mov r0, #0 bl flash_exit_slc_mode -.L1072: +.L1074: bl FlashSavePhyInfo -.L1063: +.L1065: ldr r2, [r5, #44] - ldr r6, .L1143 + ldr r6, .L1145 ldrb r3, [r2, #26] @ zero_extendqisi2 ldrh r0, [r2, #10] ldrb r9, [r2, #18] @ zero_extendqisi2 strb r3, [r4, #-2744] ldrh r3, [r2, #16] ubfx r1, r3, #7, #1 - strb r1, [r5, #8] + strb r1, [r5, #40] ubfx r1, r3, #3, #1 strb r1, [r4, #-1759] ubfx r1, r3, #4, #1 @@ -6276,21 +6276,21 @@ FlashInit: ldr r3, [r5, #44] ldrh r2, [r3, #16] tst r2, #64 - beq .L1074 + beq .L1076 ldrb r0, [r3, #19] @ zero_extendqisi2 - ldr r3, .L1143+52 - ldr r2, .L1143+56 + ldr r3, .L1145+48 + ldr r2, .L1145+52 ldrb r1, [r6, #-2730] @ zero_extendqisi2 strb r0, [r3] ldrb r3, [r6, #-2731] @ zero_extendqisi2 mov ip, r2 strb r3, [r2] - ldr r3, .L1143+60 + ldr r3, .L1145+56 strb r1, [r3] sub r1, r0, #1 cmp r1, #7 - bhi .L1075 - ldr r3, .L1143+64 + bhi .L1077 + ldr r3, .L1145+60 sub r2, r0, #5 cmp r0, #8 cmpne r2, #1 @@ -6301,52 +6301,52 @@ FlashInit: strls r3, [r6, #-1808] cmp r0, #7 mov r1, r1, lsr #5 - ldreq r3, .L1143+68 - beq .L1078 - ldr r2, .L1143+68 + ldreq r3, .L1145+64 + beq .L1080 + ldr r2, .L1145+64 cmp r1, #0 sub r3, r2, #8 movne r3, r2 -.L1078: +.L1080: sub r1, r3, #1 add r3, r3, #31 mov r2, #0 -.L1079: +.L1081: ldrsb ip, [r1, #1]! cmp ip, #0 addeq r2, r2, #1 cmp r1, r3 - bne .L1079 + bne .L1081 cmp r2, #27 - bls .L1074 + bls .L1076 bl FlashGetReadRetryDefault bl FlashSavePhyInfo - b .L1074 -.L1075: + b .L1076 +.L1077: sub r1, r0, #17 cmp r1, #2 - bhi .L1081 - ldr r2, .L1143+72 + bhi .L1083 + ldr r2, .L1145+68 cmp r0, #19 str r2, [r6, #-1796] moveq r2, #15 - bne .L1142 - b .L1140 -.L1081: + bne .L1144 + b .L1142 +.L1083: sub r1, r0, #65 cmp r0, #33 cmpne r1, #1 - bhi .L1083 - ldr r1, .L1143+76 + bhi .L1085 + ldr r1, .L1145+72 str r1, [r6, #-1796] mov r1, #4 strb r1, [r2] -.L1142: +.L1144: mov r2, #7 -.L1140: +.L1142: strb r2, [r3] - b .L1074 -.L1083: + b .L1076 +.L1085: sub r1, r0, #67 sub r2, r0, #34 cmp r1, #1 @@ -6356,8 +6356,8 @@ FlashInit: movhi r2, r1 orrls r2, r1, #1 cmp r2, #0 - beq .L1084 - ldr r2, .L1143+76 + beq .L1086 + ldr r2, .L1145+72 cmp r0, #68 cmpne r0, #35 str r2, [r6, #-1796] @@ -6368,57 +6368,57 @@ FlashInit: movne r3, #4 moveq r3, #5 strb r3, [ip] - b .L1074 -.L1084: + b .L1076 +.L1086: cmp r0, #49 - ldreq r3, .L1143+80 + ldreq r3, .L1145+76 streq r3, [r6, #-1796] - beq .L1074 + beq .L1076 cmp r0, #50 streq r2, [r6, #-1864] - ldreq r3, .L1143+84 + ldreq r3, .L1145+80 streq r3, [r6, #-1796] -.L1074: +.L1076: ldr r3, [r4, #-1848] cmp r3, r7 - bne .L1089 - ldr r2, .L1143 + bne .L1091 + ldr r2, .L1145 ldrb r2, [r2, #-2744] @ zero_extendqisi2 cmp r2, #0 ldrne r2, [r5, #44] movne r1, #0 strneb r1, [r2, #18] -.L1089: +.L1091: ldrb r2, [r8] @ zero_extendqisi2 cmp r2, #44 - bne .L1090 + bne .L1092 ldrb r2, [r4, #-1860] @ zero_extendqisi2 cmp r2, #0 - beq .L1090 + beq .L1092 cmp r3, r7 - bne .L1091 - ldr r3, .L1143 + bne .L1093 + ldr r3, .L1145 ldrb r3, [r3, #-2744] @ zero_extendqisi2 cmp r3, #0 - bne .L1090 -.L1091: + bne .L1092 +.L1093: mov r0, #1 mov r3, #0 strb r3, [r4, #-1860] bl FlashSetInterfaceMode mov r0, #1 bl NandcSetMode -.L1090: +.L1092: ldrb r3, [r4, #-1875] @ zero_extendqisi2 tst r3, #6 - beq .L1092 - ldr r2, .L1143 + beq .L1094 + ldr r2, .L1145 ldrb r2, [r2, #-1860] @ zero_extendqisi2 cmp r2, #0 - bne .L1093 + bne .L1095 tst r3, #1 - bne .L1092 -.L1093: + bne .L1094 +.L1095: mov r0, #0 bl flash_enter_slc_mode mov r0, #0 @@ -6426,17 +6426,17 @@ FlashInit: bl FlashDdrParaScan mov r0, #0 bl flash_exit_slc_mode -.L1092: +.L1094: ldr r3, [r5, #44] mov r10, #16 - ldr r9, .L1143+4 - ldr r6, .L1143+88 + ldr r9, .L1145+4 + ldr r6, .L1145+84 ldrb r0, [r3, #20] @ zero_extendqisi2 bl FlashBchSel add r0, r9, #3328 bl FlashReadIdbDataRaw - ldr r0, .L1143+92 - strb r10, [r5, #1] + ldr r0, .L1145+88 + strb r10, [r5, #33] bl FlashTimingCfg ldr r7, [r5, #44] ldrb r2, [r8, #1] @ zero_extendqisi2 @@ -6470,49 +6470,48 @@ FlashInit: smulbb r3, r1, r3 mov r1, #512 strh r1, [r6, #24] @ movhi - ldrb r1, [r5, #1] @ zero_extendqisi2 + ldrb r1, [r5, #33] @ zero_extendqisi2 strh r1, [r6, #26] @ movhi uxth r3, r3 - ldrb r1, [r5] @ zero_extendqisi2 + ldrb r1, [r5, #32] @ zero_extendqisi2 strh r3, [r6, #22] @ movhi cmp r1, #1 - bne .L1095 + bne .L1097 mov r3, r3, asl #1 mov r4, r4, lsr #1 mov r2, r2, asl #1 strh r3, [r6, #22] @ movhi - strb r10, [r9, #1] + strb r10, [r9, #33] mov r3, #8 strh r4, [r6, #14] @ movhi strh r2, [r6, #20] @ movhi strh r3, [r6, #26] @ movhi -.L1095: +.L1097: ldrb r0, [r7, #20] @ zero_extendqisi2 bl FlashBchSel bl ftl_flash_suspend mov r0, #0 - b .L1111 -.L1097: + b .L1113 +.L1099: mvn r0, #1 -.L1111: +.L1113: add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1144: +.L1146: .align 2 -.L1143: +.L1145: .word .LANCHOR2 .word .LANCHOR0 .word IDByte - .word .LANCHOR0+12 .word .LC14 .word .LANCHOR2-2732 .word 1446522928 .word .LANCHOR1 .word .LANCHOR1+3412 - .word .LANCHOR1+3072 + .word .LANCHOR1+3288 .word .LANCHOR0+48 - .word .LANCHOR1+256 + .word .LANCHOR1+472 .word .LC15 .word g_retryMode .word g_maxRegNum @@ -6537,24 +6536,24 @@ FlashPageProgMsbFFData: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} .save {r4, r5, r6, r7, r8, r9, r10, lr} mov r7, r1 - ldr r5, .L1162 + ldr r5, .L1164 mov r4, r2 - ldr r1, .L1162+4 + ldr r1, .L1164+4 mov r6, r0 ldrb r2, [r5, #-2744] @ zero_extendqisi2 ldr r3, [r1, #44] mov r8, r1 cmp r2, #0 ldrb r3, [r3, #19] @ zero_extendqisi2 - beq .L1146 + beq .L1148 ldr r2, [r5, #-1864] cmp r2, #0 ldmnefd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L1146: +.L1148: sub r2, r3, #5 cmp r3, #50 cmpne r2, #2 - bls .L1147 + bls .L1149 sub r2, r3, #19 tst r2, #239 moveq r2, #1 @@ -6564,14 +6563,14 @@ FlashPageProgMsbFFData: orreq r3, r2, #1 cmp r3, #0 ldmeqfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L1147: - ldr r9, .L1162+8 - movw r10, #65535 .L1149: + ldr r9, .L1164+8 + movw r10, #65535 +.L1151: ldr r3, [r8, #44] ldrh r3, [r3, #10] cmp r3, r4 - bls .L1161 + bls .L1163 mov r3, r4, asl #1 ldrh r3, [r9, r3] cmp r3, r10 @@ -6587,12 +6586,12 @@ FlashPageProgMsbFFData: mov r3, r2 uxth r4, r4 bl FlashProgPage - b .L1149 -.L1161: - ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} + b .L1151 .L1163: + ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} +.L1165: .align 2 -.L1162: +.L1164: .word .LANCHOR2 .word .LANCHOR0 .word .LANCHOR0+1104 @@ -6605,28 +6604,28 @@ FlashReadSlc2KPages: .fnstart @ args = 0, pretend = 0, frame = 24 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1215 + ldr r3, .L1217 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #36 sub sp, sp, #36 - ldrb r3, [r3, #265] @ zero_extendqisi2 + ldrb r3, [r3, #481] @ zero_extendqisi2 mov r4, r0 - ldr r10, .L1215+4 + ldr r10, .L1217+4 mov r9, #0 str r1, [sp, #16] str r2, [sp, #20] str r3, [sp, #12] -.L1165: +.L1167: ldr r3, [sp, #16] cmp r9, r3 - beq .L1214 + beq .L1216 ldr r3, [sp, #16] mov r0, r4 ldr r1, [sp, #20] add r2, sp, #28 rsb r3, r9, r3 - ldr r8, .L1215+8 + ldr r8, .L1217+8 uxtb r3, r3 str r3, [sp] add r3, sp, #24 @@ -6636,7 +6635,7 @@ FlashReadSlc2KPages: cmp r5, r3 mvncs r3, #0 strcs r3, [r4] - bcs .L1167 + bcs .L1169 add r5, r8, r5 mov r7, #0 ldrb r5, [r5, #3156] @ zero_extendqisi2 @@ -6644,7 +6643,7 @@ FlashReadSlc2KPages: bl NandcWaitFlashReady mov r0, r5 bl NandcFlashCs -.L1168: +.L1170: ldr r1, [sp, #28] mov r0, r5 bl FlashReadCmd @@ -6657,30 +6656,30 @@ FlashReadSlc2KPages: ldr r2, [sp, #12] ldr r3, [r4, #8] bl NandcXferData - ldr r3, .L1215+4 + ldr r3, .L1217+4 ldrb r3, [r3, #-1760] @ zero_extendqisi2 cmp r3, #0 mov r6, r0 - beq .L1169 + beq .L1171 mov r0, r5 bl flash_read_ecc cmp r0, #5 movhi r6, #256 -.L1169: +.L1171: cmp r7, #9 cmnls r6, #1 moveq r3, #1 movne r3, #0 addeq r7, r7, #1 - beq .L1168 -.L1170: + beq .L1170 +.L1172: cmp r7, #0 mov r7, r3 movne r6, #256 -.L1172: +.L1174: ldr r3, [sp, #28] mov r0, r5 - ldr r1, [r8, #4] + ldr r1, [r8, #36] add r1, r1, r3 bl FlashReadCmd mov r0, r5 @@ -6699,17 +6698,17 @@ FlashReadSlc2KPages: ldrb r2, [r10, #-1760] @ zero_extendqisi2 cmp r2, #0 mov fp, r0 - beq .L1175 + beq .L1177 mov r0, r5 bl flash_read_ecc cmp r0, #5 movhi fp, #256 -.L1175: +.L1177: cmp r7, #9 cmnls fp, #1 addeq r7, r7, #1 - beq .L1172 -.L1176: + beq .L1174 +.L1178: cmp r7, #0 mov r0, r5 movne fp, #256 @@ -6720,61 +6719,61 @@ FlashReadSlc2KPages: movcc r3, r6 add r2, r2, r2, asl #1 cmp r3, r2, asr #2 - bls .L1178 + bls .L1180 cmn r3, #1 movne r3, #256 -.L1178: +.L1180: cmp r3, #256 cmnne r3, #1 movne r3, #0 str r3, [r4] ldr r3, [r4, #12] cmp r3, #0 - beq .L1181 + beq .L1183 ldr r2, [r3, #12] cmn r2, #1 - bne .L1181 + bne .L1183 ldr r2, [r3, #8] cmn r2, #1 - bne .L1181 + bne .L1183 ldr r3, [r3] cmn r3, #1 strne r2, [r4] -.L1181: +.L1183: ldr r3, [r4] cmn r3, #1 - bne .L1167 + bne .L1169 ldr r1, [r4, #4] - ldr r0, .L1215+12 + ldr r0, .L1217+12 ldrb r2, [r10, #-2743] @ zero_extendqisi2 bl printk ldr r1, [r4, #8] cmp r1, #0 - beq .L1183 - ldr r0, .L1215+16 + beq .L1185 + ldr r0, .L1217+16 mov r2, #4 mov r3, #8 bl rknand_print_hex -.L1183: +.L1185: ldr r1, [r4, #12] cmp r1, #0 - beq .L1167 + beq .L1169 mov r2, #4 - ldr r0, .L1215+20 + ldr r0, .L1217+20 mov r3, r2 bl rknand_print_hex -.L1167: +.L1169: add r9, r9, #1 add r4, r4, #36 - b .L1165 -.L1214: + b .L1167 +.L1216: mov r0, #0 add sp, sp, #36 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1216: +.L1218: .align 2 -.L1215: +.L1217: .word .LANCHOR1 .word .LANCHOR2 .word .LANCHOR0 @@ -6790,31 +6789,31 @@ FlashReadPages: .fnstart @ args = 0, pretend = 0, frame = 40 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1292 + ldr r3, .L1294 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #52 sub sp, sp, #52 - ldr r9, .L1292+4 - ldrb r3, [r3, #265] @ zero_extendqisi2 + ldr r9, .L1294+4 + ldrb r3, [r3, #481] @ zero_extendqisi2 str r1, [sp, #20] - ldrb r8, [r9] @ zero_extendqisi2 + ldrb r8, [r9, #32] @ zero_extendqisi2 str r3, [sp, #16] - ldrb r3, [r9, #8] @ zero_extendqisi2 + ldrb r3, [r9, #40] @ zero_extendqisi2 cmp r8, #0 str r2, [sp, #24] str r3, [sp, #28] - beq .L1254 + beq .L1256 bl FlashReadSlc2KPages - b .L1287 -.L1254: - ldr r7, .L1292+8 + b .L1289 +.L1256: + ldr r7, .L1294+8 mov r10, r0 mov fp, r8 -.L1218: +.L1220: ldr r3, [sp, #20] cmp fp, r3 - bcs .L1290 + bcs .L1292 mov r3, #36 add r2, sp, #44 mul r3, r3, fp @@ -6837,7 +6836,7 @@ FlashReadPages: ldrcs r2, [sp, #8] mvncs r3, #0 strcs r3, [r10, r2] - bcs .L1221 + bcs .L1223 add r3, r9, r3 ldrb r4, [r3, #3156] @ zero_extendqisi2 ldrb r3, [r7, #-1759] @ zero_extendqisi2 @@ -6845,27 +6844,27 @@ FlashReadPages: mov r0, r4 moveq r5, #0 bl NandcWaitFlashReady - ldr r3, .L1292+4 + ldr r3, .L1294+4 ldr r3, [r3, #44] ldrb r2, [r3, #19] @ zero_extendqisi2 sub r3, r2, #1 cmp r3, #7 - bhi .L1223 + bhi .L1225 sub r2, r2, #7 add r1, r7, r4 cmp r2, #1 - ldr r2, .L1292+8 + ldr r2, .L1294+8 ldrb r3, [r1, #-2720] @ zero_extendqisi2 add r2, r2, r4 ldrlsb r3, [r1, #-2712] @ zero_extendqisi2 ldrb r2, [r2, #-1880] @ zero_extendqisi2 cmp r2, r3 - beq .L1223 + beq .L1225 mov r0, r4 ldrb r1, [r7, #-2731] @ zero_extendqisi2 - ldr r2, .L1292+12 + ldr r2, .L1294+12 bl HynixSetRRPara -.L1223: +.L1225: mov r0, r4 bl NandcFlashCs mov r0, r4 @@ -6876,41 +6875,41 @@ FlashReadPages: orreq r3, r3, #1 str r3, [sp, #12] cmp r3, #0 - beq .L1225 + beq .L1227 ldrb r3, [r7, #-2744] @ zero_extendqisi2 cmp r3, #0 - beq .L1225 + beq .L1227 bl flash_enter_slc_mode - b .L1226 -.L1225: + b .L1228 +.L1227: bl flash_exit_slc_mode -.L1226: +.L1228: ldr r1, [sp, #44] cmn r1, #1 cmpeq r4, #255 moveq r3, #0 movne r3, #1 moveq r5, r3 - beq .L1228 + beq .L1230 cmp r5, #0 - beq .L1229 - ldr r2, [r9, #4] + beq .L1231 + ldr r2, [r9, #36] mov r0, r4 add r2, r1, r2 bl FlashReadDpCmd - b .L1230 -.L1229: + b .L1232 +.L1231: mov r0, r4 bl FlashReadCmd -.L1230: +.L1232: mov r0, r4 bl NandcWaitFlashReady cmp r5, #0 - beq .L1228 + beq .L1230 mov r0, r4 ldr r1, [sp, #44] bl FlashReadDpDataOutCmd -.L1228: +.L1230: ldr r3, [r6, #12] mov r0, r4 ldr r2, [sp, #16] @@ -6918,7 +6917,7 @@ FlashReadPages: str r3, [sp] ldr r3, [r6, #8] bl NandcXferData - ldrb r2, [r9, #8] @ zero_extendqisi2 + ldrb r2, [r9, #40] @ zero_extendqisi2 adds r2, r2, #0 movne r2, #1 cmn r0, #1 @@ -6926,17 +6925,17 @@ FlashReadPages: movne r2, #0 cmp r2, #0 movne r3, #0 - strneb r3, [r9, #8] + strneb r3, [r9, #40] movne r5, r3 - bne .L1226 -.L1231: + bne .L1228 +.L1233: cmp r5, #0 - beq .L1232 - ldr r3, .L1292+4 + beq .L1234 + ldr r3, .L1294+4 str r0, [sp, #32] mov r0, r4 str r2, [sp, #36] - ldr r1, [r3, #4] + ldr r1, [r3, #36] ldr r3, [sp, #44] add r1, r1, r3 bl FlashReadDpDataOutCmd @@ -6955,24 +6954,24 @@ FlashReadPages: ldr ip, [sp, #32] mov r8, r0 moveq r5, #0 -.L1232: +.L1234: mov r0, r4 str ip, [sp, #32] bl NandcFlashDeCs ldr ip, [sp, #32] ldrb r3, [sp, #28] @ zero_extendqisi2 cmn ip, #1 - strb r3, [r9, #8] - bne .L1239 + strb r3, [r9, #40] + bne .L1241 ldrb r3, [r7, #-1860] @ zero_extendqisi2 cmp r3, #0 - bne .L1234 -.L1238: + bne .L1236 +.L1240: ldr r5, [r7, #-1796] cmp r5, #0 - bne .L1235 - b .L1291 -.L1234: + bne .L1237 + b .L1293 +.L1236: ldr r3, [r7, #-2808] mov r0, r4 ldr r1, [sp, #44] @@ -6984,19 +6983,19 @@ FlashReadPages: bl FlashDdrTunningRead cmn r0, #1 mov ip, r0 - beq .L1237 + beq .L1239 ldrb r3, [r7, #-2743] @ zero_extendqisi2 cmp r0, r3, lsr #1 - bls .L1257 -.L1237: + bls .L1259 +.L1239: ubfx r0, r5, #8, #8 str ip, [sp, #32] bl NandcSetDdrPara ldr ip, [sp, #32] cmn ip, #1 - beq .L1238 - b .L1257 -.L1235: + beq .L1240 + b .L1259 +.L1237: mov r0, r4 ldr r1, [sp, #44] ldr r2, [r6, #8] @@ -7004,18 +7003,18 @@ FlashReadPages: blx r5 cmn r0, #1 mov ip, r0 - bne .L1259 + bne .L1261 ldr r3, [r9, #44] ldrb r3, [r3, #19] @ zero_extendqisi2 sub r3, r3, #1 cmp r3, #7 - bhi .L1241 + bhi .L1243 mov r0, r4 ldrb r1, [r7, #-2731] @ zero_extendqisi2 - ldr r2, .L1292+12 + ldr r2, .L1294+12 mov r3, #0 bl HynixSetRRPara -.L1241: +.L1243: ldr r1, [sp, #44] mov r0, r4 ldr r2, [r6, #8] @@ -7024,26 +7023,26 @@ FlashReadPages: ldr r1, [r6, #4] ldrb r2, [r7, #-2743] @ zero_extendqisi2 mov ip, r0 - ldr r0, .L1292+16 + ldr r0, .L1294+16 mov r3, ip str ip, [sp, #32] bl printk ldr ip, [sp, #32] cmn ip, #1 - bne .L1259 + bne .L1261 ldrb r5, [r7, #-2744] @ zero_extendqisi2 cmp r5, #0 - beq .L1240 + beq .L1242 ldr r3, [sp, #12] mov r0, r4 cmp r3, #0 - beq .L1242 + beq .L1244 bl flash_enter_slc_mode - b .L1243 -.L1242: + b .L1245 +.L1244: bl flash_exit_slc_mode -.L1243: - ldr r3, .L1292+8 +.L1245: + ldr r3, .L1294+8 mov r0, r4 ldr r1, [sp, #44] ldr r2, [r6, #8] @@ -7051,29 +7050,29 @@ FlashReadPages: ldr r3, [r6, #12] blx ip mov ip, r0 - b .L1259 -.L1291: + b .L1261 +.L1293: mov r0, r4 ldr r1, [sp, #44] ldr r2, [r6, #8] ldr r3, [r6, #12] bl FlashReadRawPage mov ip, r0 - b .L1240 -.L1257: + b .L1242 +.L1259: mov r5, #0 -.L1239: +.L1241: ldrb r3, [r7, #-2743] @ zero_extendqisi2 add r3, r3, r3, asl #1 cmp ip, r3, asr #2 - bls .L1240 + bls .L1242 ldr r3, [r7, #-1796] cmp r3, #0 moveq ip, #256 - b .L1240 -.L1259: + b .L1242 +.L1261: mov r5, #0 -.L1240: +.L1242: cmp ip, #256 cmnne ip, #1 ldreq r3, [sp, #8] @@ -7084,29 +7083,29 @@ FlashReadPages: ldr r3, [sp, #8] ldr r3, [r10, r3] cmn r3, #1 - bne .L1247 + bne .L1249 ldr r1, [r6, #4] - ldr r0, .L1292+20 + ldr r0, .L1294+20 ldrb r2, [r7, #-2743] @ zero_extendqisi2 bl printk ldr r1, [r6, #12] cmp r1, #0 - beq .L1247 + beq .L1249 mov r2, #4 - ldr r0, .L1292+24 + ldr r0, .L1294+24 mov r3, r2 bl rknand_print_hex -.L1247: +.L1249: cmp r5, #0 - beq .L1249 + beq .L1251 ldrb r3, [r7, #-2743] @ zero_extendqisi2 add r3, r3, r3, asl #1 cmp r8, r3, asr #2 - bls .L1250 + bls .L1252 ldr r3, [r7, #-1796] cmp r3, #0 moveq r8, #256 -.L1250: +.L1252: ldr r3, [sp, #8] cmp r8, #256 cmnne r8, #1 @@ -7114,28 +7113,28 @@ FlashReadPages: movne r2, #0 streq r8, [r10, r3] strne r2, [r10, r3] -.L1249: +.L1251: ldr r3, [sp, #12] add fp, fp, r5 cmp r3, #0 - beq .L1221 + beq .L1223 ldrb r3, [r7, #-2744] @ zero_extendqisi2 cmp r3, #0 - beq .L1221 + beq .L1223 mov r0, r4 bl flash_exit_slc_mode -.L1221: +.L1223: add fp, fp, #1 - b .L1218 -.L1290: + b .L1220 +.L1292: mov r0, #0 -.L1287: +.L1289: add sp, sp, #52 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1293: +.L1295: .align 2 -.L1292: +.L1294: .word .LANCHOR1 .word .LANCHOR0 .word .LANCHOR2 @@ -7155,13 +7154,13 @@ FlashLoadFactorBbt: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r1, #0 - ldr r5, .L1307 + ldr r5, .L1309 .pad #52 sub sp, sp, #52 mov r2, #16 - ldr r9, .L1307+4 + ldr r9, .L1309+4 add r0, r5, #1016 - ldr fp, .L1307+8 + ldr fp, .L1309+8 ldrh r7, [r5, #12] mvn r10, #0 ldrh r4, [r5, #14] @@ -7173,18 +7172,18 @@ FlashLoadFactorBbt: uxth r6, r7 str r5, [sp, #20] str r3, [sp, #24] -.L1295: +.L1297: ldrb r3, [fp, #3152] @ zero_extendqisi2 uxtb r7, r5 cmp r3, r7 - bls .L1306 + bls .L1308 mul ip, r6, r7 sub r4, r6, #1 sub r3, r6, #12 uxth r4, r4 -.L1296: +.L1298: cmp r4, r3 - ble .L1298 + ble .L1300 add r2, ip, r4 mov r1, #1 add r0, sp, #12 @@ -7198,41 +7197,41 @@ FlashLoadFactorBbt: ldr ip, [sp] cmn r2, #1 ldr r3, [sp, #4] - beq .L1297 + beq .L1299 ldr r2, [r9, #-1772] ldrh r1, [r2] movw r2, #61664 cmp r1, r2 - bne .L1297 + bne .L1299 mov r1, r7 - ldr r0, .L1307+12 + ldr r0, .L1309+12 mov r2, r4 mov r7, r7, asl #1 bl printk - ldr r3, .L1307+16 + ldr r3, .L1309+16 add r8, r8, #1 strh r4, [r3, r7] @ movhi uxth r8, r8 - b .L1298 -.L1297: + b .L1300 +.L1299: sub r4, r4, #1 uxth r4, r4 - b .L1296 -.L1298: - ldr r3, .L1307+8 + b .L1298 +.L1300: + ldr r3, .L1309+8 add r5, r5, #1 ldrb r3, [r3, #3152] @ zero_extendqisi2 cmp r3, r8 moveq r10, #0 - b .L1295 -.L1306: + b .L1297 +.L1308: mov r0, r10 add sp, sp, #52 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1308: +.L1310: .align 2 -.L1307: +.L1309: .word .LANCHOR2-2772 .word .LANCHOR2 .word .LANCHOR0 @@ -7247,7 +7246,7 @@ FlashReadFacBbtData: .fnstart @ args = 0, pretend = 0, frame = 40 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1324 + ldr r3, .L1326 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} .save {r4, r5, r6, r7, r8, r9, r10, lr} mov r8, r2 @@ -7256,7 +7255,7 @@ FlashReadFacBbtData: sub sp, sp, #40 ldrh r2, [r3, #12] mov r5, r0 - ldr r9, .L1324+4 + ldr r9, .L1326+4 mov r7, r1 smulbb r4, r2, r4 ldr r2, [r9, #-1868] @@ -7268,9 +7267,9 @@ FlashReadFacBbtData: mul r10, r3, r1 uxth r6, r6 str r2, [sp, #16] -.L1310: +.L1312: cmp r6, r4 - ble .L1323 + ble .L1325 mov r1, #1 add r3, r6, r10 add r0, sp, #4 @@ -7280,57 +7279,57 @@ FlashReadFacBbtData: bl FlashReadPages ldr r3, [sp, #4] cmn r3, #1 - beq .L1311 + beq .L1313 ldr r3, [r9, #-1772] ldrh r2, [r3] movw r3, #61664 cmp r2, r3 - bne .L1311 + bne .L1313 cmp r5, #0 moveq r0, r5 - beq .L1312 + beq .L1314 cmp r7, #0 - ldreq ip, .L1324+4 + ldreq ip, .L1326+4 moveq lr, #1 - beq .L1313 -.L1315: + beq .L1315 +.L1317: ldr r1, [r9, #-1868] mov r2, r8 mov r0, r5 bl ftl_memcpy mov r2, #4 - ldr r0, .L1324+8 + ldr r0, .L1326+8 mov r1, r5 mov r3, r2 bl rknand_print_hex mov r0, #0 - b .L1312 -.L1313: + b .L1314 +.L1315: ldr r3, [r9, #-1784] uxth r4, r7 add r7, r7, #1 cmp r4, r3 - bcs .L1315 + bcs .L1317 ldr r1, [ip, #-1868] mov r0, r4, lsr #5 and r3, r4, #31 ldr r2, [r1, r0, asl #2] orr r3, r2, lr, asl r3 str r3, [r1, r0, asl #2] - b .L1313 -.L1311: + b .L1315 +.L1313: sub r6, r6, #1 uxth r6, r6 - b .L1310 -.L1323: + b .L1312 +.L1325: mvn r0, #0 -.L1312: +.L1314: add sp, sp, #40 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L1325: +.L1327: .align 2 -.L1324: +.L1326: .word .LANCHOR2-2772 .word .LANCHOR2 .word .LC21 @@ -7343,12 +7342,12 @@ FlashGetBadBlockList: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1337 + ldr r3, .L1339 stmfd sp!, {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} mov r5, r0 ldr r3, [r3, #44] - ldr r6, .L1337+4 + ldr r6, .L1339+4 ldrb r4, [r3, #13] @ zero_extendqisi2 ldrh r3, [r3, #14] ldr r0, [r6, #-1776] @@ -7358,20 +7357,20 @@ FlashGetBadBlockList: mov r2, r2, asr #3 bl FlashReadFacBbtData cmn r0, #1 - bne .L1327 -.L1331: + bne .L1329 +.L1333: mov r3, #0 - b .L1328 -.L1327: + b .L1330 +.L1329: mov lr, r4, lsr #4 mov ip, #0 sub r4, r4, #1 mov r3, ip mov r7, #1 -.L1329: +.L1331: uxth r0, ip cmp r0, r4 - bge .L1328 + bge .L1330 ldr r8, [r6, #-1776] mov r1, r0, lsr #5 and r2, r0, #31 @@ -7383,17 +7382,17 @@ FlashGetBadBlockList: strneh r0, [r5, r3] @ movhi uxthne r3, r2 cmp r3, lr - bcc .L1329 - b .L1331 -.L1328: + bcc .L1331 + b .L1333 +.L1330: mov r3, r3, asl #1 mvn r2, #0 mov r0, #0 strh r2, [r5, r3] @ movhi ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L1338: +.L1340: .align 2 -.L1337: +.L1339: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -7405,23 +7404,23 @@ FlashProgSlc2KPages: .fnstart @ args = 0, pretend = 0, frame = 56 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1369 + ldr r3, .L1371 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #68 sub sp, sp, #68 - ldr r8, .L1369+4 + ldr r8, .L1371+4 mov r6, r1 - ldrb r3, [r3, #265] @ zero_extendqisi2 + ldrb r3, [r3, #481] @ zero_extendqisi2 mov r9, r2 mov r4, r0 mov r10, r0 mov r7, #0 mov fp, r8 str r3, [sp, #12] -.L1340: +.L1342: cmp r7, r6 - beq .L1367 + beq .L1369 rsb r3, r7, r6 add r2, sp, #20 mov r0, r10 @@ -7435,7 +7434,7 @@ FlashProgSlc2KPages: cmp r3, r2 mvncs r3, #0 strcs r3, [r10] - bcs .L1342 + bcs .L1344 add r3, r8, r3 ldrb r5, [r3, #3156] @ zero_extendqisi2 mov r0, r5 @@ -7464,7 +7463,7 @@ FlashProgSlc2KPages: sbfx r0, r0, #0, #1 str r0, [r10] mov r0, r5 - ldr r1, [r8, #4] + ldr r1, [r8, #36] add r1, r1, r3 bl FlashProgFirstCmd ldr r3, [r10, #8] @@ -7478,7 +7477,7 @@ FlashProgSlc2KPages: str r2, [sp] ldr r2, [sp, #12] bl NandcXferData - ldr r1, [fp, #4] + ldr r1, [fp, #36] mov r0, r5 ldr r3, [sp, #20] add r1, r1, r3 @@ -7493,25 +7492,25 @@ FlashProgSlc2KPages: mvnne r3, #0 strne r3, [r10] bl NandcFlashDeCs -.L1342: +.L1344: add r7, r7, #1 add r10, r10, #36 - b .L1340 -.L1367: - ldr r5, .L1369+8 + b .L1342 +.L1369: + ldr r5, .L1371+8 mov r7, #0 mov r8, r5 -.L1347: +.L1349: cmp r7, r6 - beq .L1368 + beq .L1370 ldr r3, [r4] cmn r3, #1 - bne .L1348 + bne .L1350 ldr r1, [r4, #4] - ldr r0, .L1369+12 + ldr r0, .L1371+12 bl printk - b .L1349 -.L1348: + b .L1351 +.L1350: rsb r3, r7, r6 mov r1, r9 add r2, sp, #20 @@ -7543,59 +7542,59 @@ FlashProgSlc2KPages: bl FlashReadPages ldr r10, [sp, #28] cmn r10, #1 - bne .L1350 - ldr r0, .L1369+16 + bne .L1352 + ldr r0, .L1371+16 ldr r1, [r4, #4] bl printk str r10, [r4] -.L1350: +.L1352: ldr r10, [sp, #28] cmp r10, #256 - bne .L1351 - ldr r0, .L1369+20 + bne .L1353 + ldr r0, .L1371+20 ldr r1, [r4, #4] bl printk str r10, [r4] -.L1351: +.L1353: ldr r3, [r4, #12] cmp r3, #0 - beq .L1352 + beq .L1354 ldr r2, [r3] ldr r3, [r8, #-1764] ldr r3, [r3] cmp r2, r3 - beq .L1352 - ldr r0, .L1369+24 + beq .L1354 + ldr r0, .L1371+24 ldr r1, [r4, #4] bl printk mvn r3, #0 str r3, [r4] -.L1352: +.L1354: ldr r3, [r4, #8] cmp r3, #0 - beq .L1349 + beq .L1351 ldr r2, [r3] ldr r3, [r8, #-1768] ldr r3, [r3] cmp r2, r3 - beq .L1349 - ldr r0, .L1369+28 + beq .L1351 + ldr r0, .L1371+28 ldr r1, [r4, #4] bl printk mvn r3, #0 str r3, [r4] -.L1349: +.L1351: add r7, r7, #1 add r4, r4, #36 - b .L1347 -.L1368: + b .L1349 +.L1370: mov r0, #0 add sp, sp, #68 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1370: +.L1372: .align 2 -.L1369: +.L1371: .word .LANCHOR1 .word .LANCHOR0 .word .LANCHOR2 @@ -7617,23 +7616,23 @@ FlashProgPages: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #76 sub sp, sp, #76 - ldr r6, .L1427 + ldr r6, .L1429 mov r4, r0 str r1, [sp, #8] mov r9, r2 str r3, [sp, #20] ldr ip, [r6, #44] - ldrb r8, [r6] @ zero_extendqisi2 + ldrb r8, [r6, #32] @ zero_extendqisi2 ldrb ip, [ip, #19] @ zero_extendqisi2 cmp r8, #0 str ip, [sp, #16] - ldr ip, .L1427+4 - ldrb ip, [ip, #265] @ zero_extendqisi2 + ldr ip, .L1429+4 + ldrb ip, [ip, #481] @ zero_extendqisi2 str ip, [sp, #12] - beq .L1372 + beq .L1374 bl FlashProgSlc2KPages - b .L1373 -.L1385: + b .L1375 +.L1387: mov r7, #36 ldr r3, [sp, #8] mul r7, r7, r8 @@ -7652,27 +7651,27 @@ FlashProgPages: cmp r0, r3 mvncs r3, #0 strcs r3, [r4, r7] - bcc .L1424 -.L1375: + bcc .L1426 +.L1377: add r8, r8, #1 -.L1372: +.L1374: ldr r3, [sp, #8] - ldr r5, .L1427 + ldr r5, .L1429 cmp r8, r3 - bcc .L1385 - b .L1425 -.L1424: - ldr r3, .L1427+8 + bcc .L1387 + b .L1427 +.L1426: + ldr r3, .L1429+8 ldrb r3, [r3, #-1874] @ zero_extendqisi2 cmp r3, #0 add r3, r6, r0, asl #4 ldr r3, [r3, #3204] moveq r10, #0 cmp r3, #0 - beq .L1377 + beq .L1379 uxtb r0, r0 bl FlashWaitCmdDone -.L1377: +.L1379: ldr r3, [sp, #32] mov r1, #0 cmp r10, #0 @@ -7691,10 +7690,10 @@ FlashProgPages: mov r0, r5 ldrb r3, [r6, #3152] @ zero_extendqisi2 cmp r3, #1 - bne .L1379 + bne .L1381 bl NandcWaitFlashReady - b .L1380 -.L1379: + b .L1382 +.L1381: bl NandcFlashCs mov r0, r5 ldr r3, [sp, #32] @@ -7706,37 +7705,37 @@ FlashProgPages: bl FlashWaitReadyEN mov r0, r5 bl NandcFlashDeCs -.L1380: +.L1382: ldr r3, [sp, #16] sub r3, r3, #1 cmp r3, #7 - bhi .L1381 - ldr r3, .L1427+8 + bhi .L1383 + ldr r3, .L1429+8 add r3, r3, r5 ldrb r3, [r3, #-1880] @ zero_extendqisi2 cmp r3, #0 - beq .L1381 - ldr r3, .L1427+8 + beq .L1383 + ldr r3, .L1429+8 mov r0, r5 - ldr r2, .L1427+12 + ldr r2, .L1429+12 ldrb r1, [r3, #-2731] @ zero_extendqisi2 mov r3, #0 bl HynixSetRRPara -.L1381: +.L1383: mov r0, r5 bl NandcFlashCs cmp r9, #1 mov r0, r5 - bne .L1382 - ldr r3, .L1427+8 + bne .L1384 + ldr r3, .L1429+8 ldrb r3, [r3, #-2744] @ zero_extendqisi2 cmp r3, #0 - beq .L1382 + beq .L1384 bl flash_enter_slc_mode - b .L1383 -.L1382: + b .L1385 +.L1384: bl flash_exit_slc_mode -.L1383: +.L1385: mov r0, r5 ldr r1, [sp, #28] bl FlashProgFirstCmd @@ -7748,7 +7747,7 @@ FlashProgPages: ldr r3, [fp, #8] bl NandcXferData cmp r10, #0 - beq .L1384 + beq .L1386 mov r0, r5 ldr r1, [sp, #28] bl FlashProgDpFirstCmd @@ -7762,7 +7761,7 @@ FlashProgPages: adds r2, r2, #0 movne r2, #1 bl FlashWaitReadyEN - ldr r1, [r6, #4] + ldr r1, [r6, #36] mov r0, r5 ldr r3, [sp, #28] add r1, r1, r3 @@ -7774,57 +7773,57 @@ FlashProgPages: ldr r2, [sp, #12] ldr r3, [r7, #8] bl NandcXferData -.L1384: +.L1386: mov r0, r5 ldr r1, [sp, #28] bl FlashProgSecondCmd mov r0, r5 bl NandcFlashDeCs add r8, r8, r10 - b .L1375 -.L1425: - ldr r7, .L1427+8 + b .L1377 +.L1427: + ldr r7, .L1429+8 mov r6, #0 - ldr r8, .L1427+16 -.L1386: + ldr r8, .L1429+16 +.L1388: ldrb r3, [r5, #3152] @ zero_extendqisi2 cmp r6, r3 - bcs .L1426 + bcs .L1428 uxtb r0, r6 bl FlashWaitCmdDone cmp r9, #1 - bne .L1387 + bne .L1389 ldrb r3, [r7, #-2744] @ zero_extendqisi2 cmp r3, #0 - beq .L1387 + beq .L1389 ldrb r0, [r8, r6, asl #4] @ zero_extendqisi2 bl flash_exit_slc_mode -.L1387: +.L1389: add r6, r6, #1 - b .L1386 -.L1426: + b .L1388 +.L1428: ldr r3, [sp, #20] cmp r3, #0 - bne .L1389 -.L1397: + bne .L1391 +.L1399: mov r0, #0 - b .L1373 -.L1389: - ldr r5, .L1427+8 + b .L1375 +.L1391: + ldr r5, .L1429+8 mov r6, #0 mov r7, r5 -.L1390: +.L1392: ldr r3, [sp, #8] cmp r6, r3 - beq .L1397 + beq .L1399 ldr r3, [r4] cmn r3, #1 - bne .L1391 + bne .L1393 ldr r1, [r4, #4] - ldr r0, .L1427+20 + ldr r0, .L1429+20 bl printk - b .L1392 -.L1391: + b .L1394 +.L1393: ldr r3, [sp, #8] mov r1, r9 add r2, sp, #28 @@ -7857,50 +7856,50 @@ FlashProgPages: bl FlashReadPages ldr r8, [sp, #36] cmn r8, #1 - bne .L1393 - ldr r0, .L1427+24 + bne .L1395 + ldr r0, .L1429+24 ldr r1, [r4, #4] bl printk str r8, [r4] -.L1393: +.L1395: ldr r3, [r4, #12] cmp r3, #0 - beq .L1394 + beq .L1396 ldr r2, [r3] ldr r3, [r7, #-1764] ldr r3, [r3] cmp r2, r3 + beq .L1396 + ldr r0, .L1429+28 + ldr r1, [r4, #4] + bl printk + mvn r3, #0 + str r3, [r4] +.L1396: + ldr r3, [r4, #8] + cmp r3, #0 beq .L1394 - ldr r0, .L1427+28 + ldr r2, [r3] + ldr r3, [r7, #-1768] + ldr r3, [r3] + cmp r2, r3 + beq .L1394 + ldr r0, .L1429+32 ldr r1, [r4, #4] bl printk mvn r3, #0 str r3, [r4] .L1394: - ldr r3, [r4, #8] - cmp r3, #0 - beq .L1392 - ldr r2, [r3] - ldr r3, [r7, #-1768] - ldr r3, [r3] - cmp r2, r3 - beq .L1392 - ldr r0, .L1427+32 - ldr r1, [r4, #4] - bl printk - mvn r3, #0 - str r3, [r4] -.L1392: add r6, r6, #1 add r4, r4, #36 - b .L1390 -.L1373: + b .L1392 +.L1375: add sp, sp, #76 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1428: +.L1430: .align 2 -.L1427: +.L1429: .word .LANCHOR0 .word .LANCHOR1 .word .LANCHOR2 @@ -7923,11 +7922,11 @@ FlashTestBlk: .save {r4, r5, lr} .pad #108 sub sp, sp, #108 - ldr r5, .L1433 + ldr r5, .L1435 ldr r3, [r5, #-1784] cmp r0, r3 movcc r4, #0 - bcc .L1430 + bcc .L1432 ldr r3, [r5, #-1776] mov r4, r0 mov r1, #165 @@ -7959,14 +7958,14 @@ FlashTestBlk: movne r4, #1 rsb r4, r4, #0 bl FlashEraseBlocks -.L1430: +.L1432: mov r0, r4 add sp, sp, #108 @ sp needed ldmfd sp!, {r4, r5, pc} -.L1434: +.L1436: .align 2 -.L1433: +.L1435: .word .LANCHOR2 .fnend .size FlashTestBlk, .-FlashTestBlk @@ -7981,23 +7980,23 @@ FlashMakeFactorBbt: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #84 sub sp, sp, #84 - ldr r4, .L1491 + ldr r4, .L1493 mov r1, #1 - ldr r5, .L1491+4 - ldr r0, .L1491+8 + ldr r5, .L1493+4 + ldr r0, .L1493+8 ldr r3, [r4, #-1772] ldrh r8, [r5, #12] - ldr r7, .L1491+12 + ldr r7, .L1493+12 str r3, [sp, #20] ldrh r3, [r5, #14] smulbb r8, r8, r3 - ldr r3, .L1491+12 + ldr r3, .L1493+12 ldr r2, [r3, #44] uxth r8, r8 ldrb r2, [r2, #24] @ zero_extendqisi2 str r2, [sp, #24] - ldrh r2, [r3, #4] - ldrb r3, [r3] @ zero_extendqisi2 + ldrh r2, [r3, #36] + ldrb r3, [r3, #32] @ zero_extendqisi2 cmp r3, #1 str r2, [sp, #16] moveq r3, r2 @@ -8009,21 +8008,21 @@ FlashMakeFactorBbt: mov r1, #0 mov r2, #4096 bl ftl_memset - ldr r4, .L1491 + ldr r4, .L1493 mov r3, r8, lsr #4 str r3, [sp, #28] mov r3, #0 str r3, [sp, #8] -.L1437: +.L1439: ldrb r6, [sp, #8] @ zero_extendqisi2 ldrb r3, [r7, #3152] @ zero_extendqisi2 cmp r3, r6 - bls .L1487 - ldr r3, .L1491+16 + bls .L1489 + ldr r3, .L1493+16 mov r2, r6, asl #1 ldrh r5, [r3, r2] cmp r5, #0 - bne .L1467 + bne .L1469 sub r3, r3, #1016 ldr r0, [r4, #-1868] mov r1, r5 @@ -8037,17 +8036,17 @@ FlashMakeFactorBbt: add fp, r7, r3 str r5, [sp, #4] str r3, [sp, #32] -.L1439: +.L1441: ldrh r3, [sp, #4] cmp r3, r8 str r3, [sp, #12] - bcs .L1449 + bcs .L1451 mvn r3, #0 strb r3, [sp, #42] strb r3, [sp, #43] ldr r3, [sp, #24] tst r3, #1 - beq .L1441 + beq .L1443 ldr r3, [fp, #3164] add r2, sp, #42 mov r0, r10 @@ -8055,11 +8054,11 @@ FlashMakeFactorBbt: str r3, [sp, #36] mov r1, r3 bl FlashReadSpare - ldrb r2, [r7] @ zero_extendqisi2 + ldrb r2, [r7, #32] @ zero_extendqisi2 cmp r2, #1 ldr r3, [sp, #36] - bne .L1441 - ldr r1, [r7, #4] + bne .L1443 + ldr r1, [r7, #36] add r2, sp, #43 mov r0, r10 add r1, r3, r1 @@ -8068,10 +8067,10 @@ FlashMakeFactorBbt: ldrb r2, [sp, #43] @ zero_extendqisi2 and r3, r3, r2 strb r3, [sp, #42] -.L1441: +.L1443: ldr r3, [sp, #24] tst r3, #2 - beq .L1443 + beq .L1445 ldr r3, [r7, #44] mov r0, r10 add r2, sp, #43 @@ -8081,49 +8080,49 @@ FlashMakeFactorBbt: add r1, r1, r3 add r1, r1, r5 bl FlashReadSpare -.L1443: +.L1445: ldr r2, [r7, #44] ldrb r3, [r2, #7] @ zero_extendqisi2 cmp r3, #1 cmpne r3, #8 ldrb r3, [sp, #42] @ zero_extendqisi2 - beq .L1444 + beq .L1446 ldrb r2, [r2, #18] @ zero_extendqisi2 cmp r2, #12 - bne .L1445 -.L1444: + bne .L1447 +.L1446: cmp r3, #0 ldrneb r0, [sp, #43] @ zero_extendqisi2 clzne r0, r0 movne r0, r0, lsr #5 - bne .L1446 - b .L1466 -.L1445: + bne .L1448 + b .L1468 +.L1447: cmp r3, #255 - bne .L1466 + bne .L1468 ldrb r0, [sp, #43] @ zero_extendqisi2 subs r0, r0, #255 movne r0, #1 - b .L1446 -.L1466: + b .L1448 +.L1468: mov r0, #1 -.L1446: +.L1448: ldr r3, [sp, #24] tst r3, #4 - beq .L1447 - ldr r3, .L1491+12 + beq .L1449 + ldr r3, .L1493+12 mov r0, r10 ldr r2, [sp, #32] add r3, r3, r2 ldr r1, [r3, #3164] add r1, r5, r1 bl SandiskProgTestBadBlock -.L1447: +.L1449: cmp r0, #0 - beq .L1448 + beq .L1450 mov r1, r6 ldr r2, [sp, #4] - ldr r0, .L1491+20 + ldr r0, .L1493+20 add r9, r9, #1 bl printk ldr r1, [r4, #-1868] @@ -8139,48 +8138,48 @@ FlashMakeFactorBbt: ldrb r3, [r7, #3152] @ zero_extendqisi2 mul r3, r3, r2 cmp r9, r3 - bgt .L1449 -.L1448: + bgt .L1451 +.L1450: ldr r3, [sp, #4] add r3, r3, #1 str r3, [sp, #4] ldr r3, [sp, #16] add r5, r5, r3 - b .L1439 -.L1449: + b .L1441 +.L1451: mov r2, r9 - ldr r0, .L1491+24 + ldr r0, .L1493+24 mov r1, r6 bl printk ldrb r3, [r7, #3152] @ zero_extendqisi2 ldr r2, [sp, #28] mul r3, r3, r2 cmp r9, r3 - blt .L1451 - ldr r3, .L1491+4 + blt .L1453 + ldr r3, .L1493+4 mov r1, #0 ldr r0, [r4, #-1868] ldrh r2, [r3, #20] mov r2, r2, asl #9 bl ftl_memset -.L1451: +.L1453: cmp r6, #0 - bne .L1453 + bne .L1455 ldr r3, [r4, #-1784] mov r5, r6 mov r9, #1 uxth r10, r3 -.L1454: - ldr r3, .L1491+12 - ldrb r3, [r3, #1] @ zero_extendqisi2 +.L1456: + ldr r3, .L1493+12 + ldrb r3, [r3, #33] @ zero_extendqisi2 cmp r3, r10 - bls .L1488 + bls .L1490 mov r0, r10 bl FlashTestBlk cmp r0, #0 - beq .L1455 + beq .L1457 mov r1, r10 - ldr r0, .L1491+28 + ldr r0, .L1493+28 bl printk ldr r1, [r4, #-1868] mov r0, r10, lsr #5 @@ -8190,24 +8189,24 @@ FlashMakeFactorBbt: uxth r5, r5 orr r3, r2, r9, asl r3 str r3, [r1, r0, asl #2] -.L1455: +.L1457: add r10, r10, #1 uxth r10, r10 - b .L1454 -.L1488: + b .L1456 +.L1490: sub fp, r8, #1 sub r9, r8, #50 mov r10, #1 uxth fp, fp -.L1457: +.L1459: cmp fp, r9 - ble .L1489 + ble .L1491 mov r0, fp bl FlashTestBlk cmp r0, #0 - beq .L1458 + beq .L1460 mov r1, fp - ldr r0, .L1491+28 + ldr r0, .L1493+28 bl printk ldr r1, [r4, #-1868] mov r0, fp, lsr #5 @@ -8215,37 +8214,37 @@ FlashMakeFactorBbt: ldr r2, [r1, r0, asl #2] orr r3, r2, r10, asl r3 str r3, [r1, r0, asl #2] -.L1458: +.L1460: sub fp, fp, #1 uxth fp, fp - b .L1457 -.L1489: - ldr r3, .L1491+12 + b .L1459 +.L1491: + ldr r3, .L1493+12 ldr r2, [r4, #-1784] - ldrb r3, [r3, #1] @ zero_extendqisi2 + ldrb r3, [r3, #33] @ zero_extendqisi2 rsb r3, r2, r3 cmp r5, r3 - bcc .L1453 - ldr r3, .L1491+4 + bcc .L1455 + ldr r3, .L1493+4 mov r1, #0 ldr r0, [r4, #-1868] ldrh r2, [r3, #20] mov r2, r2, asl #9 bl ftl_memset -.L1453: +.L1455: ldrb r5, [sp, #8] @ zero_extendqisi2 sub r10, r8, #1 - ldr r9, .L1491+16 + ldr r9, .L1493+16 uxth r10, r10 mul r5, r8, r5 add r9, r9, r6, asl #1 -.L1461: +.L1463: mov r1, r6 - ldr r0, .L1491+32 + ldr r0, .L1493+32 mov r2, r10 bl printk ldr r1, [r4, #-1868] -.L1462: +.L1464: mov r2, r10, lsr #5 and r3, r10, #31 ldr r2, [r1, r2, asl #2] @@ -8253,11 +8252,11 @@ FlashMakeFactorBbt: ands r3, r3, #1 subne r10, r10, #1 uxthne r10, r10 - bne .L1462 -.L1490: + bne .L1464 +.L1492: ldr r1, [sp, #20] add r0, sp, #44 - ldr r2, .L1491+36 + ldr r2, .L1493+36 strh r10, [r9] @ movhi strh r10, [r1, #2] @ movhi strh r2, [r1] @ movhi @@ -8281,19 +8280,19 @@ FlashMakeFactorBbt: cmp r3, #0 subne r10, r10, #1 uxthne r10, r10 - bne .L1461 -.L1467: + bne .L1463 +.L1469: ldr r3, [sp, #8] add r3, r3, #1 str r3, [sp, #8] - b .L1437 -.L1487: + b .L1439 +.L1489: add sp, sp, #84 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1492: +.L1494: .align 2 -.L1491: +.L1493: .word .LANCHOR2 .word .LANCHOR2-2772 .word .LC27 @@ -8316,13 +8315,13 @@ Ftl_log2: @ link register save eliminated. mov r1, #0 mov r2, #1 -.L1494: +.L1496: cmp r2, r0 uxth r3, r1 add r1, r1, #1 movls r2, r2, asl #1 - bls .L1494 -.L1496: + bls .L1496 +.L1498: sub r0, r3, #1 uxth r0, r0 bx lr @@ -8347,7 +8346,7 @@ FtlSysBlkNumInit: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1500 + ldr r3, .L1502 cmp r0, #23 sub ip, r3, #1728 movls r0, #24 @@ -8364,9 +8363,9 @@ FtlSysBlkNumInit: rsb r2, r2, r1 str r2, [r3, #-1724] bx lr -.L1501: +.L1503: .align 2 -.L1500: +.L1502: .word .LANCHOR2 .fnend .size FtlSysBlkNumInit, .-FtlSysBlkNumInit @@ -8381,7 +8380,7 @@ FtlConstantsInit: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #20 sub sp, sp, #20 - ldr r4, .L1529 + ldr r4, .L1531 mov ip, r0 ldrh r8, [r0, #8] mov r10, #0 @@ -8393,15 +8392,15 @@ FtlConstantsInit: strh r5, [r4, #-2] @ movhi strh r7, [r4] @ movhi strh r6, [r4, #-14] @ movhi -.L1503: +.L1505: strb r10, [r10, r3] add r10, r10, #1 cmp r10, #32 - bne .L1503 + bne .L1505 ldrh r2, [ip, #14] ldrh r3, [ip, #20] cmp r3, r2, lsr #8 - bcs .L1504 + bcs .L1506 sub r3, r5, #1 uxtb r9, r7 mul r3, r7, r3 @@ -8409,14 +8408,14 @@ FtlConstantsInit: uxtb fp, fp str r3, [sp, #4] mov r3, #0 -.L1505: +.L1507: cmp r3, r7 - bcs .L1507 + bcs .L1509 ldr r1, [sp, #4] uxtb r2, r3 - ldr r0, .L1529+4 + ldr r0, .L1531+4 add r1, r3, r1 - ldr lr, .L1529+4 + ldr lr, .L1531+4 add r1, r0, r1 str r1, [sp, #8] mov r1, #0 @@ -8424,10 +8423,10 @@ FtlConstantsInit: mov r10, r1 add r0, lr, r0 str r0, [sp, #12] -.L1508: +.L1510: cmp r10, r5 add r1, r1, r7 - bcs .L1528 + bcs .L1530 ldr r0, [sp, #12] add r10, r10, #1 strb r2, [r0, r1] @@ -8437,21 +8436,21 @@ FtlConstantsInit: ldr r0, [sp, #8] uxtb r2, r2 strb lr, [r0, r1] - b .L1508 -.L1528: + b .L1510 +.L1530: add r3, r3, #1 - b .L1505 -.L1507: + b .L1507 +.L1509: mov r5, r5, asl #1 mov r6, r6, lsr #1 strh r5, [r4, #-2] @ movhi strh r6, [r4, #-14] @ movhi -.L1504: - ldr r6, .L1529+8 +.L1506: + ldr r6, .L1531+8 cmp r8, #1 mov r3, #5 ldrh r9, [ip, #16] - ldr r5, .L1529+12 + ldr r5, .L1531+12 strh r3, [r6, #-12] @ movhi mov r3, #0 streqh r8, [r6, #-12] @ movhi @@ -8460,15 +8459,15 @@ FtlConstantsInit: strh r3, [r6, #-10] @ movhi mov r3, #4352 strh r3, [r6, #-8] @ movhi - ldr r3, .L1529+16 + ldr r3, .L1531+16 smulbb r8, r8, r7 ldrh r4, [r4, #-14] - ldrb fp, [r3] @ zero_extendqisi2 + ldrb fp, [r3, #32] @ zero_extendqisi2 ldrh r1, [ip, #18] cmp fp, #0 strh r9, [r6, #-4] @ movhi smulbb r7, r4, r7 - ldrne r3, .L1529+8 + ldrne r3, .L1531+8 uxth r8, r8 movne r2, #384 strh r1, [r6, #-2] @ movhi @@ -8524,7 +8523,7 @@ FtlConstantsInit: movls r2, #4 strlsh r2, [r7] @ movhi cmp fp, #0 - ldr fp, .L1529+12 + ldr fp, .L1531+12 ldrh r0, [r7] movne r2, #640 strneh r2, [r6, #-8] @ movhi @@ -8547,7 +8546,7 @@ FtlConstantsInit: addeq r4, r0, #4 streq r4, [fp, #-1740] ldr r3, [r5, #-1740] - ldr r4, .L1529+12 + ldr r4, .L1531+12 uxth r0, r3 sub fp, r4, #1648 bl FtlSysBlkNumInit @@ -8583,12 +8582,12 @@ FtlConstantsInit: addne r7, r7, #5 strneh r3, [fp] @ movhi strne r7, [r4, #-1640] - bne .L1518 -.L1517: + bne .L1520 +.L1519: cmp r2, #7 movls r3, #8 strls r3, [r4, #-1640] -.L1518: +.L1520: ldrh r2, [r10] mov r3, #0 strh r3, [r9, #-12] @ movhi @@ -8598,15 +8597,15 @@ FtlConstantsInit: add r3, r3, #52 add r8, r3, r8, asl #2 cmp r8, r6, asl #9 - ldrcc r3, .L1529+20 + ldrcc r3, .L1531+20 movcc r2, #1 strcch r2, [r3, #-12] @ movhi add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1530: +.L1532: .align 2 -.L1529: +.L1531: .word .LANCHOR2-1712 .word .LANCHOR2-1708 .word .LANCHOR2-1664 @@ -8626,7 +8625,7 @@ FtlMemInit: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 movw r3, #65535 - ldr r4, .L1636 + ldr r4, .L1638 mov r5, #0 mov r0, #1024 mov r10, #12 @@ -8674,7 +8673,7 @@ FtlMemInit: bl __aeabi_idiv ldrh r7, [r9, #-8] str r5, [r4, #-1516] - ldr r5, .L1636+4 + ldr r5, .L1638+4 mov r7, r7, asl #2 cmp r0, r7 str r0, [r4, #-1520] @@ -8865,140 +8864,140 @@ FtlMemInit: mov r2, r2, asl #2 mov r1, r2 str r0, [r4, #-1320] -.L1533: +.L1535: cmp r3, ip - bcs .L1634 + bcs .L1636 ldr r0, [r4, #-1320] add r3, r3, #1 add r0, r0, r1 add r1, r1, r2 str r0, [r5, #4]! - b .L1533 -.L1634: - ldr r2, .L1636+8 + b .L1535 +.L1636: + ldr r2, .L1638+8 mov r1, #0 -.L1535: +.L1537: cmp r3, #8 addne r0, r2, r3, asl #2 addne r3, r3, #1 strne r1, [r0, #28] - bne .L1535 -.L1635: - ldr r2, [r4, #-1404] - ldr r3, .L1636 - cmp r2, #0 bne .L1537 -.L1539: - ldr r0, .L1636+12 - ldr r1, .L1636+16 +.L1637: + ldr r2, [r4, #-1404] + ldr r3, .L1638 + cmp r2, #0 + bne .L1539 +.L1541: + ldr r0, .L1638+12 + ldr r1, .L1638+16 bl printk mvn r0, #0 - b .L1538 -.L1537: + b .L1540 +.L1539: ldr r2, [r3, #-1400] cmp r2, #0 - beq .L1539 + beq .L1541 ldr r2, [r3, #-1376] cmp r2, #0 - beq .L1539 + beq .L1541 ldr r2, [r3, #-1368] cmp r2, #0 - beq .L1539 + beq .L1541 ldr r2, [r3, #-1364] cmp r2, #0 - beq .L1539 + beq .L1541 ldr r2, [r3, #-1360] cmp r2, #0 - beq .L1539 + beq .L1541 ldr r2, [r3, #-1356] cmp r2, #0 - beq .L1539 + beq .L1541 ldr r2, [r3, #-1320] cmp r2, #0 - beq .L1539 + beq .L1541 ldr r3, [r3, #-1408] cmp r3, #0 - beq .L1539 + beq .L1541 ldr r2, [r4, #-1512] - ldr r3, .L1636 + ldr r3, .L1638 cmp r2, #0 - beq .L1539 + beq .L1541 ldr r2, [r3, #-1508] cmp r2, #0 - beq .L1539 + beq .L1541 ldr r2, [r3, #-1504] cmp r2, #0 - beq .L1539 + beq .L1541 ldr r2, [r3, #-1496] cmp r2, #0 - beq .L1539 + beq .L1541 ldr r2, [r3, #-1492] cmp r2, #0 - beq .L1539 + beq .L1541 ldr r2, [r3, #-1488] cmp r2, #0 - beq .L1539 + beq .L1541 ldr r2, [r3, #-1500] cmp r2, #0 - beq .L1539 + beq .L1541 ldr r2, [r3, #-1476] cmp r2, #0 - beq .L1539 + beq .L1541 ldr r2, [r3, #-1472] cmp r2, #0 - beq .L1539 + beq .L1541 ldr r3, [r3, #-1468] cmp r3, #0 - beq .L1539 + beq .L1541 ldr r2, [r4, #-1464] - ldr r3, .L1636 + ldr r3, .L1638 cmp r2, #0 - beq .L1539 + beq .L1541 ldr r2, [r3, #-1456] cmp r2, #0 - beq .L1539 + beq .L1541 ldr r2, [r3, #-1452] cmp r2, #0 - beq .L1539 + beq .L1541 ldr r2, [r3, #-1448] cmp r2, #0 - beq .L1539 + beq .L1541 ldr r2, [r3, #-1444] cmp r2, #0 - beq .L1539 + beq .L1541 ldr r2, [r3, #-1440] cmp r2, #0 - beq .L1539 + beq .L1541 ldr r2, [r3, #-1436] cmp r2, #0 - beq .L1539 + beq .L1541 ldr r2, [r3, #-1416] cmp r2, #0 - beq .L1539 + beq .L1541 ldr r2, [r3, #-1424] cmp r2, #0 - beq .L1539 + beq .L1541 ldr r3, [r3, #-1392] cmp r3, #0 - beq .L1539 - ldr r3, .L1636 + beq .L1541 + ldr r3, .L1638 ldr r2, [r3, #-1388] cmp r2, #0 - beq .L1539 + beq .L1541 ldr r2, [r3, #-1384] cmp r2, #0 - beq .L1539 + beq .L1541 ldr r3, [r3, #-1380] cmp r3, #0 - beq .L1539 + beq .L1541 mov r0, #0 -.L1538: +.L1540: add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1637: +.L1639: .align 2 -.L1636: +.L1638: .word .LANCHOR2 .word .LANCHOR2-1664 .word .LANCHOR2-1348 @@ -9014,29 +9013,29 @@ IsBlkInVendorPart: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L1645 + ldr r2, .L1647 sub r3, r2, #1280 ldrh r3, [r3, #-8] cmp r3, #0 - beq .L1644 + beq .L1646 ldr r3, [r2, #-1392] sub r2, r2, #1648 ldrh r2, [r2] add r2, r3, r2, asl #1 -.L1640: +.L1642: cmp r3, r2 - beq .L1644 + beq .L1646 ldrh r1, [r3], #2 cmp r1, r0 - bne .L1640 + bne .L1642 mov r0, #1 bx lr -.L1644: +.L1646: mov r0, #0 bx lr -.L1646: +.L1648: .align 2 -.L1645: +.L1647: .word .LANCHOR2 .fnend .size IsBlkInVendorPart, .-IsBlkInVendorPart @@ -9047,16 +9046,16 @@ FtlCacheMetchLpa: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L1654 + ldr r2, .L1656 ldr r3, [r2, #-1516] cmp r3, #0 - beq .L1650 + beq .L1652 stmfd sp!, {r4, r5, lr} .save {r4, r5, lr} mov r5, #36 ldr r4, [r2, #-1484] mov r2, #0 -.L1649: +.L1651: mla ip, r5, r2, r4 ldr lr, [ip, #16] cmp lr, r0 @@ -9065,21 +9064,21 @@ FtlCacheMetchLpa: cmp lr, r1 movhi ip, #0 cmp ip, #0 - bne .L1651 + bne .L1653 add r2, r2, #1 cmp r2, r3 - bne .L1649 + bne .L1651 mov r0, ip ldmfd sp!, {r4, r5, pc} -.L1650: +.L1652: mov r0, r3 bx lr -.L1651: +.L1653: mov r0, #1 ldmfd sp!, {r4, r5, pc} -.L1655: +.L1657: .align 2 -.L1654: +.L1656: .word .LANCHOR2 .fnend .size FtlCacheMetchLpa, .-FtlCacheMetchLpa @@ -9091,12 +9090,12 @@ FtlGetCap: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1657 + ldr r3, .L1659 ldr r0, [r3, #-2740] bx lr -.L1658: +.L1660: .align 2 -.L1657: +.L1659: .word .LANCHOR2 .fnend .size FtlGetCap, .-FtlGetCap @@ -9108,12 +9107,12 @@ FtlGetCapacity: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1660 + ldr r3, .L1662 ldr r0, [r3, #-2740] bx lr -.L1661: +.L1663: .align 2 -.L1660: +.L1662: .word .LANCHOR2 .fnend .size FtlGetCapacity, .-FtlGetCapacity @@ -9125,12 +9124,12 @@ ftl_get_density: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1663 + ldr r3, .L1665 ldr r0, [r3, #-2740] bx lr -.L1664: +.L1666: .align 2 -.L1663: +.L1665: .word .LANCHOR2 .fnend .size ftl_get_density, .-ftl_get_density @@ -9142,12 +9141,12 @@ FtlGetLpn: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1666 + ldr r3, .L1668 ldr r0, [r3, #-1284] bx lr -.L1667: +.L1669: .align 2 -.L1666: +.L1668: .word .LANCHOR2 .fnend .size FtlGetLpn, .-FtlGetLpn @@ -9162,7 +9161,7 @@ FtlBbmMapBadBlock: .save {r4, r5, r6, lr} .pad #8 mov r6, r0 - ldr r5, .L1670 + ldr r5, .L1672 sub r3, r5, #1664 ldrh r4, [r3, #-6] mov r1, r4 @@ -9178,7 +9177,7 @@ FtlBbmMapBadBlock: mov lr, r3, lsr #5 ldr r0, [ip, lr, asl #2] orr r1, r0, r4, asl r1 - ldr r0, .L1670+4 + ldr r0, .L1672+4 str r1, [ip, lr, asl #2] str r1, [sp] mov r1, r6 @@ -9191,9 +9190,9 @@ FtlBbmMapBadBlock: add sp, sp, #8 @ sp needed ldmfd sp!, {r4, r5, r6, pc} -.L1671: +.L1673: .align 2 -.L1670: +.L1672: .word .LANCHOR2 .word .LC33 .fnend @@ -9209,7 +9208,7 @@ FtlBbmIsBadBlock: stmfd sp!, {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} mov r7, r0 - ldr r5, .L1674 + ldr r5, .L1676 sub r3, r5, #1664 ldrh r6, [r3, #-6] mov r1, r6 @@ -9227,9 +9226,9 @@ FtlBbmIsBadBlock: mov r0, r0, lsr r4 and r0, r0, #1 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L1675: +.L1677: .align 2 -.L1674: +.L1676: .word .LANCHOR2 .fnend .size FtlBbmIsBadBlock, .-FtlBbmIsBadBlock @@ -9254,7 +9253,7 @@ FtlBbt2Bitmap: stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r4, r0 - ldr r5, .L1683 + ldr r5, .L1685 mov r0, r1 mov r6, r1 mov r1, #0 @@ -9267,7 +9266,7 @@ FtlBbt2Bitmap: sub r1, r4, #2 mov lr, #1 movw r4, #65535 -.L1679: +.L1681: ldrh r2, [r1, #2]! cmp r2, r4 ldmeqfd sp!, {r4, r5, r6, pc} @@ -9280,11 +9279,11 @@ FtlBbt2Bitmap: ldrh r2, [r5, #6] add r2, r2, #1 strh r2, [r5, #6] @ movhi - bne .L1679 + bne .L1681 ldmfd sp!, {r4, r5, r6, pc} -.L1684: +.L1686: .align 2 -.L1683: +.L1685: .word .LANCHOR2-1344 .fnend .size FtlBbt2Bitmap, .-FtlBbt2Bitmap @@ -9298,15 +9297,15 @@ FtlBbmTblFlush: stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 - ldr r4, .L1703 + ldr r4, .L1705 ldr r5, [r4, #-1280] cmp r5, #0 - bne .L1687 + bne .L1689 ldr r3, [r4, #-1444] mov r1, r5 ldr r0, [r4, #-1476] sub r8, r4, #1344 - ldr r6, .L1703+4 + ldr r6, .L1705+4 mov r10, r4 str r3, [r4, #-1264] sub r3, r4, #1648 @@ -9314,12 +9313,12 @@ FtlBbmTblFlush: sub fp, r6, #28 ldrh r2, [r3, #-10] bl ftl_memset - ldr r9, .L1703+8 -.L1688: + ldr r9, .L1705+8 +.L1690: ldrh r3, [r9] - ldr r7, .L1703 + ldr r7, .L1705 cmp r5, r3 - bge .L1702 + bge .L1704 ldrh r2, [fp] ldr r3, [r10, #-1268] ldr r1, [r6, #4]! @@ -9328,15 +9327,15 @@ FtlBbmTblFlush: add r5, r5, #1 add r0, r3, r0, asl #2 bl ftl_memcpy - b .L1688 -.L1702: + b .L1690 +.L1704: ldr r6, [r7, #-1264] mov r1, #255 mov r2, #16 - ldr r5, .L1703+12 + ldr r5, .L1705+12 mov r0, r6 bl ftl_memset - ldr r3, .L1703+16 + ldr r3, .L1705+16 mov r10, r5 strh r3, [r6] @ movhi ldr r3, [r7, #-1340] @@ -9351,7 +9350,7 @@ FtlBbmTblFlush: strh r3, [r6, #10] @ movhi ldr r3, [r7, #-1740] strh r3, [r6, #12] @ movhi -.L1690: +.L1692: ldr r3, [r4, #-1476] mov fp, #0 ldrh r1, [r5] @@ -9365,14 +9364,14 @@ FtlBbmTblFlush: str r3, [r4, #-1272] ldrh r3, [r5, #4] str r0, [sp] - ldr r0, .L1703+20 + ldr r0, .L1705+20 bl printk - ldr r3, .L1703+24 + ldr r3, .L1705+24 ldrh r2, [r5, #2] ldrh r3, [r3] sub r3, r3, #1 cmp r2, r3 - blt .L1691 + blt .L1693 ldr r3, [r7, #-1340] mov r1, #1 ldrh r2, [r5] @@ -9390,47 +9389,47 @@ FtlBbmTblFlush: str r3, [r0, #4] strh fp, [r5, #2] @ movhi bl FlashEraseBlocks -.L1691: +.L1693: mov r1, #1 - ldr r0, .L1703+28 + ldr r0, .L1705+28 mov r3, r1 mov r2, r1 bl FlashProgPages ldrh r3, [r10, #2] - ldr fp, .L1703 + ldr fp, .L1705 add r3, r3, #1 strh r3, [r10, #2] @ movhi ldr r3, [r4, #-1276] cmn r3, #1 - bne .L1692 + bne .L1694 add r8, r8, #1 - ldr r0, .L1703+32 + ldr r0, .L1705+32 ldr r1, [r7, #-1272] uxth r8, r8 bl printk cmp r8, #3 - bls .L1690 - ldr r0, .L1703+36 + bls .L1692 + ldr r0, .L1705+36 mov r2, r8 ldr r1, [fp, #-1272] bl printk mov r3, #1 str r3, [fp, #-1280] - b .L1687 -.L1692: + b .L1689 +.L1694: add r9, r9, #1 cmp r9, #1 - beq .L1690 + beq .L1692 cmp r3, #256 - beq .L1690 -.L1687: + beq .L1692 +.L1689: mov r0, #0 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1704: +.L1706: .align 2 -.L1703: +.L1705: .word .LANCHOR2 .word .LANCHOR2-1324 .word .LANCHOR2-1714 @@ -9450,61 +9449,61 @@ FtlLoadFactoryBbt: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L1717 + ldr r2, .L1719 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} .save {r4, r5, r6, r7, r8, r9, r10, lr} mov r5, #0 - ldr r6, .L1717+4 + ldr r6, .L1719+4 mov r9, r2 ldr r3, [r2, #-1476] ldr r7, [r2, #-1444] sub r8, r6, #376 str r3, [r2, #-1268] str r7, [r2, #-1264] -.L1706: +.L1708: ldrh r3, [r8] cmp r5, r3 - bcs .L1716 - ldr r2, .L1717+8 + bcs .L1718 + ldr r2, .L1719+8 mvn r3, #0 strh r3, [r6, #2]! @ movhi ldrh r3, [r2] mov r10, r2 sub r3, r3, #1 uxth r4, r3 -.L1707: +.L1709: ldrh r3, [r10] sub r2, r3, #16 cmp r4, r2 - ble .L1709 + ble .L1711 mla r3, r3, r5, r4 mov r1, #1 - ldr r0, .L1717+12 + ldr r0, .L1719+12 mov r2, r1 mov r3, r3, asl #10 str r3, [r9, #-1272] bl FlashReadPages ldr r3, [r9, #-1276] cmn r3, #1 - beq .L1708 + beq .L1710 ldrh r2, [r7] movw r3, #61664 cmp r2, r3 streqh r4, [r6] @ movhi - beq .L1709 -.L1708: + beq .L1711 +.L1710: sub r4, r4, #1 uxth r4, r4 - b .L1707 -.L1709: + b .L1709 +.L1711: add r5, r5, #1 - b .L1706 -.L1716: + b .L1708 +.L1718: mov r0, #0 ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L1718: +.L1720: .align 2 -.L1717: +.L1719: .word .LANCHOR2 .word .LANCHOR2-1338 .word .LANCHOR2-1670 @@ -9519,7 +9518,7 @@ FtlBbtMemInit: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r0, .L1720 + ldr r0, .L1722 mvn r2, #0 mov r1, #255 add r0, r0, #8 @@ -9528,9 +9527,9 @@ FtlBbtMemInit: strh r2, [r0, #-6] @ movhi mov r2, #16 b ftl_memset -.L1721: +.L1723: .align 2 -.L1720: +.L1722: .word .LANCHOR2-1344 .fnend .size FtlBbtMemInit, .-FtlBbtMemInit @@ -9544,27 +9543,27 @@ FtlBbtCalcTotleCnt: stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r5, #0 - ldr r4, .L1731 + ldr r4, .L1733 ldrh r6, [r4, #-6] ldrh r3, [r4, #-50] mov r4, r5 mul r6, r3, r6 -.L1723: +.L1725: uxth r0, r5 cmp r0, r6 - bge .L1730 + bge .L1732 bl FtlBbmIsBadBlock add r5, r5, #1 cmp r0, #0 addne r4, r4, #1 uxthne r4, r4 - b .L1723 -.L1730: + b .L1725 +.L1732: mov r0, r4 ldmfd sp!, {r4, r5, r6, pc} -.L1732: +.L1734: .align 2 -.L1731: +.L1733: .word .LANCHOR2-1664 .fnend .size FtlBbtCalcTotleCnt, .-FtlBbtCalcTotleCnt @@ -9577,20 +9576,20 @@ FtlMakeBbt: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} - ldr r7, .L1756 + ldr r7, .L1758 ldr r5, [r7, #-1280] cmp r5, #0 - bne .L1734 + bne .L1736 bl FtlBbtMemInit - ldr r8, .L1756+4 + ldr r8, .L1758+4 bl FtlLoadFactoryBbt mov r4, r7 sub r9, r8, #18 -.L1735: - ldr r6, .L1756+8 +.L1737: + ldr r6, .L1758+8 ldrh r3, [r6] cmp r5, r3 - bcs .L1754 + bcs .L1756 ldrh r3, [r9, #2]! movw r2, #65535 ldr r0, [r4, #-1476] @@ -9598,11 +9597,11 @@ FtlMakeBbt: cmp r3, r2 str r0, [r4, #-1268] str r10, [r4, #-1264] - beq .L1736 + beq .L1738 ldrh fp, [r6, #44] mov r1, #1 mov r2, r1 - ldr r0, .L1756+12 + ldr r0, .L1758+12 mla fp, fp, r5, r3 mov r3, fp, asl #10 str r3, [r4, #-1272] @@ -9613,31 +9612,31 @@ FtlMakeBbt: ldr r1, [r4, #-1268] mov r2, r2, asr #3 bl ftl_memcpy - b .L1737 -.L1736: + b .L1739 +.L1738: mov r1, r5 bl FlashGetBadBlockList ldr r0, [r4, #-1268] ldr r1, [r8] bl FtlBbt2Bitmap ldrh r6, [r6, #44] -.L1739: +.L1741: sub r6, r6, #1 uxth r6, r6 -.L1738: - ldr fp, .L1756+16 +.L1740: + ldr fp, .L1758+16 ldrh r0, [fp] smlabb r0, r0, r5, r6 uxth r0, r0 bl FtlBbmIsBadBlock cmp r0, #1 - beq .L1739 + beq .L1741 mov r1, #0 mov r2, #16 strh r6, [r9] @ movhi ldr r0, [r4, #-1444] bl ftl_memset - ldr r3, .L1756+20 + ldr r3, .L1758+20 strh r3, [r10] @ movhi mov r3, #0 str r3, [r10, #4] @@ -9650,78 +9649,78 @@ FtlMakeBbt: mla fp, fp, r5, r3 mov r3, fp, asl #10 str r3, [r4, #-1272] - ldr r3, .L1756+24 + ldr r3, .L1758+24 ldrh r2, [r3] mov r2, r2, asl #2 bl ftl_memcpy mov r1, #1 mov r2, r1 - ldr r0, .L1756+12 + ldr r0, .L1758+12 bl FlashEraseBlocks mov r1, #1 mov r3, r1 - ldr r0, .L1756+12 + ldr r0, .L1758+12 mov r2, r1 bl FlashProgPages ldr r3, [r4, #-1276] cmn r3, #1 - bne .L1737 + bne .L1739 uxth r0, fp bl FtlBbmMapBadBlock - b .L1738 -.L1737: + b .L1740 +.L1739: uxth r0, fp add r5, r5, #1 bl FtlBbmMapBadBlock add r8, r8, #4 - b .L1735 -.L1754: + b .L1737 +.L1756: add r6, r6, #60 mov r4, #0 -.L1742: +.L1744: ldrh r3, [r6] uxth r0, r4 add r4, r4, #1 cmp r3, r0 - bls .L1755 + bls .L1757 bl FtlBbmMapBadBlock - b .L1742 -.L1755: - ldr r6, .L1756+28 + b .L1744 +.L1757: + ldr r6, .L1758+28 movw r8, #65535 ldrh r4, [r6, #12] sub r4, r4, #1 uxth r4, r4 -.L1744: +.L1746: ldrh r3, [r6, #12] - ldr r5, .L1756+28 + ldr r5, .L1758+28 sub r3, r3, #48 cmp r4, r3 - ble .L1748 + ble .L1750 mov r0, r4 bl FtlBbmIsBadBlock cmp r0, #1 - beq .L1745 + beq .L1747 mov r0, r4 bl FlashTestBlk cmp r0, #0 - beq .L1746 + beq .L1748 mov r0, r4 bl FtlBbmMapBadBlock - b .L1745 -.L1746: + b .L1747 +.L1748: ldrh r3, [r6] cmp r3, r8 streqh r4, [r6] @ movhi -.L1747: +.L1749: strneh r4, [r5, #4] @ movhi - bne .L1748 -.L1745: + bne .L1750 +.L1747: sub r4, r4, #1 uxth r4, r4 - b .L1744 -.L1748: - ldr r3, .L1756+32 + b .L1746 +.L1750: + ldr r3, .L1758+32 mov r4, #0 ldr r0, [r7, #-1492] mov r1, #1 @@ -9735,7 +9734,7 @@ FtlMakeBbt: mov r3, r3, asl #10 str r3, [r0, #40] bl FlashEraseBlocks - ldr r3, .L1756+32 + ldr r3, .L1758+32 ldrh r0, [r3, #-4] bl FtlBbmMapBadBlock ldrh r0, [r5, #4] @@ -9745,19 +9744,19 @@ FtlMakeBbt: ldrh r2, [r5, #4] add r3, r3, #1 str r3, [r7, #-1340] - ldr r3, .L1756+32 - ldr r1, .L1756+32 + ldr r3, .L1758+32 + ldr r1, .L1758+32 strh r4, [r5, #2] @ movhi ldrh r3, [r3, #-4] strh r2, [r1, #-4] @ movhi strh r3, [r5, #4] @ movhi bl FtlBbmTblFlush -.L1734: +.L1736: mov r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1757: +.L1759: .align 2 -.L1756: +.L1758: .word .LANCHOR2 .word .LANCHOR2-1320 .word .LANCHOR2-1714 @@ -9779,7 +9778,7 @@ V2P_block: stmfd sp!, {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} mov r5, r1 - ldr r4, .L1760 + ldr r4, .L1762 mov r7, r0 sub r3, r4, #1712 sub r4, r4, #1664 @@ -9794,9 +9793,9 @@ V2P_block: smlabb r0, r3, r0, r5 uxth r0, r0 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L1761: +.L1763: .align 2 -.L1760: +.L1762: .word .LANCHOR2 .fnend .size V2P_block, .-V2P_block @@ -9807,7 +9806,7 @@ P2V_plane: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1764 + ldr r3, .L1766 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} sub r2, r3, #1712 @@ -9823,9 +9822,9 @@ P2V_plane: add r1, r4, r1 uxth r0, r1 ldmfd sp!, {r4, r5, r6, pc} -.L1765: +.L1767: .align 2 -.L1764: +.L1766: .word .LANCHOR2 .fnend .size P2V_plane, .-P2V_plane @@ -9838,7 +9837,7 @@ P2V_block_in_plane: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, lr} .save {r4, lr} - ldr r4, .L1768 + ldr r4, .L1770 sub r3, r4, #1664 sub r4, r4, #1712 ldrh r1, [r3, #-6] @@ -9848,9 +9847,9 @@ P2V_block_in_plane: bl __aeabi_uidiv uxth r0, r0 ldmfd sp!, {r4, pc} -.L1769: +.L1771: .align 2 -.L1768: +.L1770: .word .LANCHOR2 .fnend .size P2V_block_in_plane, .-P2V_block_in_plane @@ -9863,13 +9862,13 @@ ftl_cmp_data_ver: @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. cmp r0, r1 - bls .L1771 + bls .L1773 rsb r0, r1, r0 cmp r0, #-2147483648 movhi r0, #0 movls r0, #1 bx lr -.L1771: +.L1773: rsb r0, r0, r1 cmp r0, #-2147483648 movls r0, #0 @@ -9884,7 +9883,7 @@ FtlGetLastWrittenPage: .fnstart @ args = 0, pretend = 0, frame = 104 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1785 + ldr r3, .L1787 cmp r1, #1 stmfd sp!, {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} @@ -9909,12 +9908,12 @@ FtlGetLastWrittenPage: bl FlashReadPages ldr r3, [sp, #40] cmn r3, #1 - bne .L1776 -.L1777: + bne .L1778 +.L1779: sxth r4, r7 sxth r3, r5 cmp r4, r3 - bgt .L1776 + bgt .L1778 add r4, r4, r3 add r0, sp, #4 mov r1, #1 @@ -9927,27 +9926,27 @@ FtlGetLastWrittenPage: bl FlashReadPages ldr r3, [sp, #40] cmn r3, #1 - bne .L1778 + bne .L1780 ldr r3, [sp, #44] cmn r3, #1 - bne .L1778 + bne .L1780 ldr r3, [sp, #4] cmn r3, #1 subne r4, r4, #1 uxthne r5, r4 - bne .L1777 -.L1778: + bne .L1779 +.L1780: add r3, r4, #1 uxth r7, r3 - b .L1777 -.L1776: + b .L1779 +.L1778: sxth r0, r5 add sp, sp, #104 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L1786: +.L1788: .align 2 -.L1785: +.L1787: .word .LANCHOR2-1664 .fnend .size FtlGetLastWrittenPage, .-FtlGetLastWrittenPage @@ -9960,7 +9959,7 @@ FtlLoadBbt: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} - ldr r4, .L1820 + ldr r4, .L1822 ldr r3, [r4, #-1476] mov r7, r4 ldr r6, [r4, #-1444] @@ -9972,59 +9971,59 @@ FtlLoadBbt: ldrh r5, [r3, #-6] sub r5, r5, #1 uxth r5, r5 -.L1788: +.L1790: ldrh r3, [r8] sub r3, r3, #48 cmp r5, r3 - ble .L1791 + ble .L1793 mov r1, #1 - ldr r0, .L1820+4 + ldr r0, .L1822+4 mov r2, r1 mov r3, r5, asl #10 str r3, [r7, #-1272] bl FlashReadPages ldr r3, [r7, #-1276] cmn r3, #1 - bne .L1789 + bne .L1791 ldr r3, [r7, #-1272] mov r1, #1 - ldr r0, .L1820+4 + ldr r0, .L1822+4 mov r2, r1 add r3, r3, #1 str r3, [r7, #-1272] bl FlashReadPages -.L1789: +.L1791: ldr r2, [r4, #-1276] - ldr r3, .L1820 + ldr r3, .L1822 cmn r2, #1 - beq .L1790 + beq .L1792 ldrh r1, [r6] movw r2, #61649 cmp r1, r2 - bne .L1790 + bne .L1792 sub r2, r3, #1344 strh r5, [r2, #-4] @ movhi ldr r2, [r6, #4] str r2, [r3, #-1340] - ldr r3, .L1820+8 + ldr r3, .L1822+8 ldrh r2, [r6, #8] strh r2, [r3, #4] @ movhi - b .L1791 -.L1790: + b .L1793 +.L1792: sub r5, r5, #1 uxth r5, r5 - b .L1788 -.L1791: - ldr r8, .L1820 + b .L1790 +.L1793: + ldr r8, .L1822 movw r2, #65535 sub r7, r8, #1344 sub r5, r7, #4 ldrh r3, [r7, #-4] cmp r3, r2 - beq .L1805 + beq .L1807 ldrh r3, [r5, #4] cmp r3, r2 - beq .L1795 + beq .L1797 mov r1, #1 add r0, r5, #72 mov r2, r1 @@ -10033,11 +10032,11 @@ FtlLoadBbt: bl FlashReadPages ldr r3, [r8, #-1276] cmn r3, #1 - beq .L1795 + beq .L1797 ldrh r2, [r6] movw r3, #61649 cmp r2, r3 - bne .L1795 + bne .L1797 ldr r3, [r6, #4] ldr r2, [r8, #-1340] cmp r3, r2 @@ -10046,7 +10045,7 @@ FtlLoadBbt: ldrhih r3, [r6, #8] strhih r2, [r7, #-4] @ movhi strhih r3, [r5, #4] @ movhi -.L1795: +.L1797: ldrh r0, [r7, #-4] mov r1, #1 bl FtlGetLastWrittenPage @@ -10054,13 +10053,13 @@ FtlLoadBbt: uxth r7, r0 add r0, r0, #1 strh r0, [r5, #2] @ movhi -.L1797: +.L1799: sxth r3, r7 cmp r3, #0 - blt .L1802 + blt .L1804 ldrh r2, [r5] mov r1, #1 - ldr r0, .L1820+4 + ldr r0, .L1822+4 orr r3, r3, r2, asl #10 str r3, [r4, #-1272] ldr r3, [r4, #-1476] @@ -10069,44 +10068,44 @@ FtlLoadBbt: bl FlashReadPages ldr r3, [r4, #-1276] cmn r3, #1 - beq .L1798 + beq .L1800 ldrh r3, [r6] cmp r3, r8 - bne .L1798 -.L1802: + bne .L1800 +.L1804: ldrh r2, [r6, #10] ldrh r0, [r6, #12] - ldr r3, .L1820 + ldr r3, .L1822 strh r2, [r5, #6] @ movhi movw r2, #65535 cmp r0, r2 - bne .L1799 - b .L1800 -.L1798: + bne .L1801 + b .L1802 +.L1800: sub r7, r7, #1 uxth r7, r7 - b .L1797 -.L1799: + b .L1799 +.L1801: ldr r2, [r3, #-1740] cmp r0, r2 - beq .L1800 + beq .L1802 sub r3, r3, #1712 ldrh r3, [r3, #-14] mov r3, r3, lsr #2 cmp r0, r3 cmpcc r2, r3 - bcs .L1800 + bcs .L1802 bl FtlSysBlkNumInit -.L1800: - ldr r5, .L1820+12 +.L1802: + ldr r5, .L1822+12 mov r4, #0 - ldr r7, .L1820 - ldr r6, .L1820+16 + ldr r7, .L1822 + ldr r6, .L1822+16 sub r8, r5, #28 -.L1803: +.L1805: ldrh r3, [r6] cmp r4, r3 - bcs .L1819 + bcs .L1821 ldrh r2, [r8] ldr r1, [r7, #-1268] ldr r0, [r5, #4]! @@ -10114,16 +10113,16 @@ FtlLoadBbt: mla r1, r4, r2, r1 bl ftl_memcpy add r4, r4, #1 - b .L1803 -.L1819: + b .L1805 +.L1821: mov r0, #0 ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L1805: +.L1807: mvn r0, #0 ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L1821: +.L1823: .align 2 -.L1820: +.L1822: .word .LANCHOR2 .word .LANCHOR2-1276 .word .LANCHOR2-1348 @@ -10138,7 +10137,7 @@ FtlFreeSysBlkQueueInit: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1824 + ldr r3, .L1826 mov r2, #2048 stmfd sp!, {r4, lr} .save {r4, lr} @@ -10152,9 +10151,9 @@ FtlFreeSysBlkQueueInit: bl ftl_memset mov r0, r4 ldmfd sp!, {r4, pc} -.L1825: +.L1827: .align 2 -.L1824: +.L1826: .word .LANCHOR2-1232 .fnend .size FtlFreeSysBlkQueueInit, .-FtlFreeSysBlkQueueInit @@ -10166,14 +10165,14 @@ FtlFreeSysBlkQueueEmpty: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1827 + ldr r3, .L1829 ldrh r0, [r3, #6] clz r0, r0 mov r0, r0, lsr #5 bx lr -.L1828: +.L1830: .align 2 -.L1827: +.L1829: .word .LANCHOR2-1240 .fnend .size FtlFreeSysBlkQueueEmpty, .-FtlFreeSysBlkQueueEmpty @@ -10185,15 +10184,15 @@ FtlFreeSysBlkQueueFull: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1830 + ldr r3, .L1832 ldrh r0, [r3, #6] sub r0, r0, #1024 clz r0, r0 mov r0, r0, lsr #5 bx lr -.L1831: +.L1833: .align 2 -.L1830: +.L1832: .word .LANCHOR2-1240 .fnend .size FtlFreeSysBlkQueueFull, .-FtlFreeSysBlkQueueFull @@ -10212,16 +10211,16 @@ FtlFreeSysBlkQueueIn: uxth r3, r3 cmp r3, r2 ldmhifd sp!, {r3, r4, r5, r6, r7, pc} - ldr r4, .L1842 - ldr r5, .L1842+4 + ldr r4, .L1844 + ldr r5, .L1844+4 ldrh r3, [r4, #6] cmp r3, #1024 ldmeqfd sp!, {r3, r4, r5, r6, r7, pc} cmp r1, #0 - beq .L1834 + beq .L1836 ldr r3, [r5, #-1280] cmp r3, #0 - bne .L1834 + bne .L1836 bl P2V_block_in_plane mov r1, #1 mov r3, r7, asl #10 @@ -10238,7 +10237,7 @@ FtlFreeSysBlkQueueIn: ldr r3, [r5, #-1576] add r3, r3, #1 str r3, [r5, #-1576] -.L1834: +.L1836: ldrh r3, [r4, #6] add r3, r3, #1 strh r3, [r4, #6] @ movhi @@ -10249,9 +10248,9 @@ FtlFreeSysBlkQueueIn: strh r3, [r4, #4] @ movhi strh r7, [r2, #8] @ movhi ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L1843: +.L1845: .align 2 -.L1842: +.L1844: .word .LANCHOR2-1240 .word .LANCHOR2 .fnend @@ -10267,13 +10266,13 @@ FtlLowFormatEraseBlock: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #28 sub sp, sp, #28 - ldr r9, .L1894 + ldr r9, .L1896 ldr r5, [r9, #-1280] ldrb r3, [r9, #-1874] @ zero_extendqisi2 cmp r5, #0 str r3, [sp, #16] movne r0, #0 - bne .L1845 + bne .L1847 ldrb r3, [r9, #-2744] @ zero_extendqisi2 mov fp, r1 mov r10, r5 @@ -10283,13 +10282,13 @@ FtlLowFormatEraseBlock: str r0, [sp, #4] str r3, [sp, #8] str r0, [r9, #-1544] -.L1846: - ldr r3, .L1894+4 +.L1848: + ldr r3, .L1896+4 uxth r1, r10 - ldr r6, .L1894 + ldr r6, .L1896 ldrh r0, [r3] cmp r0, r1 - bls .L1889 + bls .L1891 mul r0, r8, r1 ldr ip, [r7, #-1492] add r1, r7, r1 @@ -10300,18 +10299,18 @@ FtlLowFormatEraseBlock: bl V2P_block cmp fp, #0 mov r6, r0 - beq .L1847 + beq .L1849 bl IsBlkInVendorPart cmp r0, #0 - bne .L1848 -.L1847: + bne .L1850 +.L1849: mov r0, r6 bl FtlBbmIsBadBlock cmp r0, #0 addne r4, r4, #1 uxthne r4, r4 - bne .L1848 - ldr r3, .L1894+8 + bne .L1850 + ldr r3, .L1896+8 mov r6, r6, asl #10 ldr ip, [r9, #-1492] ldrh r1, [r3] @@ -10328,12 +10327,12 @@ FtlLowFormatEraseBlock: bic r1, r1, #3 add r1, r0, r1 str r1, [ip, #12] -.L1848: +.L1850: add r10, r10, #1 - b .L1846 -.L1889: + b .L1848 +.L1891: cmp r5, #0 - beq .L1869 + beq .L1871 ldr r3, [sp, #8] mov r2, r5 ldr r0, [r6, #-1492] @@ -10346,35 +10345,35 @@ FtlLowFormatEraseBlock: ldrb r3, [sp, #16] @ zero_extendqisi2 strb r3, [r6, #-1874] mov r6, #36 -.L1852: +.L1854: uxth r2, r8 cmp r2, r5 - bcs .L1890 + bcs .L1892 mul r2, r6, r8 ldr r1, [r9, #-1492] add r0, r1, r2 ldr r2, [r1, r2] cmn r2, #1 - bne .L1853 + bne .L1855 ldr r0, [r0, #4] add r4, r4, #1 ubfx r0, r0, #10, #16 uxth r4, r4 bl FtlBbmMapBadBlock -.L1853: +.L1855: add r8, r8, #1 - b .L1852 -.L1890: + b .L1854 +.L1892: cmp fp, #0 - bne .L1855 + bne .L1857 mov r3, #6 uxth r6, r7 str r3, [sp, #12] mov r3, #1 str r3, [sp, #8] - b .L1856 -.L1855: - ldr r2, .L1894+12 + b .L1858 +.L1857: + ldr r2, .L1896+12 ldrh r3, [r2, #-2] str r3, [sp, #8] ldrb r3, [r9, #-2744] @ zero_extendqisi2 @@ -10385,19 +10384,19 @@ FtlLowFormatEraseBlock: strne r6, [sp, #12] moveq r3, r3, lsr #2 streq r3, [sp, #12] -.L1856: - ldr r10, .L1894 +.L1858: + ldr r10, .L1896 mov r7, #0 -.L1865: +.L1867: mov r8, #0 mov r5, r8 -.L1857: - ldr r3, .L1894+4 - ldr r9, .L1894 +.L1859: + ldr r3, .L1896+4 + ldr r9, .L1896 ldrh r2, [r3] uxth r3, r8 cmp r2, r3 - bls .L1891 + bls .L1893 mov r2, #36 ldr r1, [r10, #-1492] mul r2, r2, r3 @@ -10409,22 +10408,22 @@ FtlLowFormatEraseBlock: bl V2P_block cmp fp, #0 mov r9, r0 - beq .L1858 + beq .L1860 bl IsBlkInVendorPart cmp r0, #0 - bne .L1859 -.L1858: + bne .L1861 +.L1860: mov r0, r9 bl FtlBbmIsBadBlock cmp r0, #0 - bne .L1859 + bne .L1861 ldr r2, [r10, #-1492] mov r3, #36 add r9, r7, r9, asl #10 mla r2, r3, r5, r2 ldr r3, [r10, #-1456] str r3, [r2, #8] - ldr r3, .L1894+8 + ldr r3, .L1896+8 str r9, [r2, #4] ldrh r3, [r3] mul r3, r3, r5 @@ -10437,13 +10436,13 @@ FtlLowFormatEraseBlock: bic r3, r3, #3 add r3, r1, r3 str r3, [r2, #12] -.L1859: +.L1861: add r8, r8, #1 - b .L1857 -.L1891: + b .L1859 +.L1893: cmp r5, #0 - beq .L1869 - ldr r2, .L1894 + beq .L1871 + ldr r2, .L1896 mov r3, #0 mov r1, r5 mov r8, #0 @@ -10452,21 +10451,21 @@ FtlLowFormatEraseBlock: ldr r0, [r2, #-1492] mov r2, r6 bl FlashProgPages - ldr r3, .L1894 + ldr r3, .L1896 mov r1, #36 ldrb r2, [sp, #16] @ zero_extendqisi2 strb r2, [r3, #-1874] -.L1862: +.L1864: uxth r3, r8 cmp r3, r5 - bcs .L1892 + bcs .L1894 mul r3, r1, r8 - ldr r2, .L1894 + ldr r2, .L1896 ldr r2, [r2, #-1492] add r0, r2, r3 ldr r3, [r2, r3] cmp r3, #0 - beq .L1863 + beq .L1865 ldr r0, [r0, #4] add r4, r4, #1 str r1, [sp, #20] @@ -10474,58 +10473,58 @@ FtlLowFormatEraseBlock: uxth r4, r4 bl FtlBbmMapBadBlock ldr r1, [sp, #20] -.L1863: +.L1865: add r8, r8, #1 - b .L1862 -.L1892: + b .L1864 +.L1894: ldr r3, [sp, #12] add r7, r7, r3 ldr r3, [sp, #8] uxth r7, r7 cmp r7, r3 - bcc .L1865 + bcc .L1867 mov r7, #0 mov r8, #36 -.L1866: +.L1868: uxth r3, r7 cmp r3, r5 - bcs .L1893 + bcs .L1895 cmp fp, #0 - beq .L1867 + beq .L1869 mul r3, r8, r7 ldr r2, [r9, #-1492] add r1, r2, r3 ldr r3, [r2, r3] cmp r3, #0 - bne .L1867 + bne .L1869 ldr r0, [r1, #4] mov r1, #1 ubfx r0, r0, #10, #16 bl FtlFreeSysBlkQueueIn -.L1867: +.L1869: add r7, r7, #1 - b .L1866 -.L1893: + b .L1868 +.L1895: adds r3, fp, #0 ldr r2, [sp, #4] movne r3, #1 cmp r2, #63 orrls r3, r3, #1 cmp r3, #0 - beq .L1869 + beq .L1871 ldr r0, [r9, #-1492] mov r1, r6 mov r2, r5 bl FlashEraseBlocks -.L1869: +.L1871: mov r0, r4 -.L1845: +.L1847: add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1895: +.L1897: .align 2 -.L1894: +.L1896: .word .LANCHOR2 .word .LANCHOR2-1736 .word .LANCHOR2-1656 @@ -10539,9 +10538,9 @@ FtlFreeSysBLkSort: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1909 + ldr r3, .L1911 ldrh ip, [r3, #28] - ldr r3, .L1909+4 + ldr r3, .L1911+4 ldrh r2, [r3, #6] cmp r2, #0 bxeq lr @@ -10552,11 +10551,11 @@ FtlFreeSysBLkSort: and ip, ip, #31 ldrh r2, [r3, #4] mov r4, r0 -.L1898: +.L1900: uxth lr, r0 add r0, r0, #1 cmp lr, ip - bge .L1908 + bge .L1910 add lr, r3, r1, asl #1 add r1, r1, #1 ubfx r1, r1, #0, #10 @@ -10566,15 +10565,15 @@ FtlFreeSysBLkSort: mov r4, #1 add r2, r2, r4 ubfx r2, r2, #0, #10 - b .L1898 -.L1908: + b .L1900 +.L1910: cmp r4, #0 strneh r1, [r3, #2] @ movhi strneh r2, [r3, #4] @ movhi ldmfd sp!, {r4, pc} -.L1910: +.L1912: .align 2 -.L1909: +.L1911: .word .LANCHOR2+816 .word .LANCHOR2-1240 .fnend @@ -10588,13 +10587,13 @@ FtlFreeSysBlkQueueOut: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, lr} .save {r3, r4, r5, r6, r7, r8, r9, lr} - ldr r6, .L1922 - ldr r5, .L1922+4 + ldr r6, .L1924 + ldr r5, .L1924+4 mov r7, r6 -.L1912: +.L1914: ldrh r1, [r5, #6] cmp r1, #0 - beq .L1913 + beq .L1915 ldrh r3, [r5, #2] sub r1, r1, #1 ldr r9, [r6, #-1280] @@ -10605,7 +10604,7 @@ FtlFreeSysBlkQueueOut: ubfx r3, r3, #0, #10 ldrh r4, [r2, #8] strh r3, [r5, #2] @ movhi - bne .L1914 + bne .L1916 mov r0, r4 bl P2V_block_in_plane mov r3, r4, asl #10 @@ -10614,11 +10613,11 @@ FtlFreeSysBlkQueueOut: str r3, [r0, #4] ldrb r3, [r6, #-2744] @ zero_extendqisi2 cmp r3, #0 - beq .L1915 + beq .L1917 mov r1, r9 mov r2, #1 bl FlashEraseBlocks -.L1915: +.L1917: mov r1, #1 ldr r0, [r7, #-1492] mov r2, r1 @@ -10631,30 +10630,30 @@ FtlFreeSysBlkQueueOut: ldr r3, [r7, #-1576] add r3, r3, #1 str r3, [r7, #-1576] - b .L1914 -.L1913: - ldr r0, .L1922+8 - bl printk -.L1916: b .L1916 -.L1914: +.L1915: + ldr r0, .L1924+8 + bl printk +.L1918: + b .L1918 +.L1916: sub r3, r4, #1 movw r2, #65533 uxth r3, r3 cmp r3, r2 - bls .L1917 - ldr r3, .L1922+4 + bls .L1919 + ldr r3, .L1924+4 mov r1, r4 - ldr r0, .L1922+12 + ldr r0, .L1924+12 ldrh r2, [r3, #6] bl printk - b .L1912 -.L1917: + b .L1914 +.L1919: mov r0, r4 ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, pc} -.L1923: +.L1925: .align 2 -.L1922: +.L1924: .word .LANCHOR2 .word .LANCHOR2-1240 .word .LC37 @@ -10668,35 +10667,35 @@ test_node_in_list: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1930 + ldr r3, .L1932 str lr, [sp, #-4]! .save {lr} movw lr, #65535 ldr ip, [r3, #-1356] ldr r2, [r0] - ldr r3, .L1930+4 + ldr r3, .L1932+4 rsb r0, ip, r2 mov r0, r0, asr #1 mul r3, r3, r0 mov r0, #6 uxth r3, r3 -.L1926: +.L1928: cmp r1, r3 - beq .L1927 + beq .L1929 ldrh r3, [r2] cmp r3, lr - beq .L1928 + beq .L1930 mla r2, r0, r3, ip - b .L1926 -.L1927: + b .L1928 +.L1929: mov r0, #1 ldr pc, [sp], #4 -.L1928: +.L1930: mov r0, #0 ldr pc, [sp], #4 -.L1931: +.L1933: .align 2 -.L1930: +.L1932: .word .LANCHOR2 .word -1431655765 .fnend @@ -10711,11 +10710,11 @@ insert_data_list: stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 - ldr r2, .L1949 + ldr r2, .L1951 sub r5, r2, #1728 ldrh r3, [r5] cmp r3, r0 - bls .L1934 + bls .L1936 mov lr, #6 ldr r6, [r2, #-1356] mul lr, lr, r0 @@ -10725,7 +10724,7 @@ insert_data_list: strh ip, [r6, lr] @ movhi ldr r3, [r2, #864] cmp r3, #0 - beq .L1948 + beq .L1950 ldr r8, [r2, #-1408] mov r4, r0, asl #1 mov r10, r2 @@ -10736,7 +10735,7 @@ insert_data_list: str r5, [sp] mulne ip, r2, r7 ldr r7, [r10, #-1356] - ldr r2, .L1949+4 + ldr r2, .L1951+4 rsb r9, r7, r3 mov r9, r9, asr #1 mul r2, r2, r9 @@ -10745,7 +10744,7 @@ insert_data_list: str r4, [sp, #4] mov r4, #0 uxth r2, r2 -.L1943: +.L1945: add r4, r4, #1 ldr r5, [sp] uxth r4, r4 @@ -10755,7 +10754,7 @@ insert_data_list: cmp r0, r2 orreq r5, r5, #1 cmp r5, #0 - bne .L1934 + bne .L1936 mov r10, r2, asl #1 ldrh r5, [r3, #4] ldrh fp, [r8, r10] @@ -10763,56 +10762,56 @@ insert_data_list: mvneq r5, #0 mulne r5, r5, fp cmp r5, ip - bne .L1939 + bne .L1941 ldr r5, [sp, #4] ldrh r10, [r9, r10] ldrh r5, [r5] cmp r10, r5 - bcc .L1941 - b .L1940 -.L1939: - bhi .L1940 + bcc .L1943 + b .L1942 .L1941: + bhi .L1942 +.L1943: ldrh r5, [r3] movw r10, #65535 cmp r5, r10 streqh r2, [r1, #2] @ movhi streqh r0, [r3] @ movhi - ldreq r3, .L1949 + ldreq r3, .L1951 streq r1, [r3, #868] - beq .L1934 -.L1942: + beq .L1936 +.L1944: mov r3, #6 mov r2, r5 mla r3, r3, r5, r7 - b .L1943 -.L1940: + b .L1945 +.L1942: strh r2, [r6, lr] @ movhi ldrh r2, [r3, #2] strh r2, [r1, #2] @ movhi - ldr r2, .L1949 + ldr r2, .L1951 ldr ip, [r2, #864] cmp r3, ip - bne .L1944 + bne .L1946 strh r0, [r3, #2] @ movhi -.L1948: +.L1950: str r1, [r2, #864] - b .L1934 -.L1944: + b .L1936 +.L1946: ldrh ip, [r3, #2] ldr r1, [r2, #-1356] mov r2, #6 mul r2, r2, ip strh r0, [r1, r2] @ movhi strh r0, [r3, #2] @ movhi -.L1934: +.L1936: mov r0, #0 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1950: +.L1952: .align 2 -.L1949: +.L1951: .word .LANCHOR2 .word -1431655765 .fnend @@ -10827,14 +10826,14 @@ INSERT_DATA_LIST: stmfd sp!, {r3, lr} .save {r3, lr} bl insert_data_list - ldr r2, .L1953 + ldr r2, .L1955 ldrh r3, [r2] add r3, r3, #1 strh r3, [r2] @ movhi ldmfd sp!, {r3, pc} -.L1954: +.L1956: .align 2 -.L1953: +.L1955: .word .LANCHOR2+872 .fnend .size INSERT_DATA_LIST, .-INSERT_DATA_LIST @@ -10849,8 +10848,8 @@ insert_free_list: .save {r4, r5, r6, r7, r8, r9, r10, lr} movw r4, #65535 cmp r0, r4 - beq .L1956 - ldr r2, .L1964 + beq .L1958 + ldr r2, .L1966 mov lr, #6 mul r6, lr, r0 mvn r3, #0 @@ -10861,55 +10860,55 @@ insert_free_list: strh r3, [r7, r6] @ movhi ldr r3, [r2, #876] cmp r3, #0 - beq .L1963 + beq .L1965 ldr r9, [r2, #-1416] mov r2, r0, asl #1 ldr r8, [r5, #-1356] rsb r1, r8, r3 ldrh r10, [r9, r2] - ldr r2, .L1964+4 + ldr r2, .L1966+4 mov r1, r1, asr #1 mul r1, r2, r1 uxth r2, r1 -.L1960: +.L1962: mov r1, r2, asl #1 ldrh r1, [r9, r1] cmp r1, r10 - bcs .L1958 + bcs .L1960 ldrh r1, [r3] cmp r1, r4 streqh r2, [ip, #2] @ movhi streqh r0, [r3] @ movhi - beq .L1956 -.L1959: + beq .L1958 +.L1961: mla r3, lr, r1, r8 mov r2, r1 - b .L1960 -.L1958: + b .L1962 +.L1960: ldrh r1, [r3, #2] strh r1, [ip, #2] @ movhi strh r2, [r7, r6] @ movhi ldr r1, [r5, #876] - ldr r2, .L1964 + ldr r2, .L1966 cmp r3, r1 - bne .L1961 + bne .L1963 strh r0, [r3, #2] @ movhi -.L1963: +.L1965: str ip, [r2, #876] - b .L1956 -.L1961: + b .L1958 +.L1963: ldrh ip, [r3, #2] ldr r1, [r2, #-1356] mov r2, #6 mul r2, r2, ip strh r0, [r1, r2] @ movhi strh r0, [r3, #2] @ movhi -.L1956: +.L1958: mov r0, #0 ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L1965: +.L1967: .align 2 -.L1964: +.L1966: .word .LANCHOR2 .word -1431655765 .fnend @@ -10924,14 +10923,14 @@ INSERT_FREE_LIST: stmfd sp!, {r3, lr} .save {r3, lr} bl insert_free_list - ldr r2, .L1968 + ldr r2, .L1970 ldrh r3, [r2] add r3, r3, #1 strh r3, [r2] @ movhi ldmfd sp!, {r3, pc} -.L1969: +.L1971: .align 2 -.L1968: +.L1970: .word .LANCHOR2+880 .fnend .size INSERT_FREE_LIST, .-INSERT_FREE_LIST @@ -10945,7 +10944,7 @@ List_remove_node: stmfd sp!, {r4, r5, lr} .save {r4, r5, lr} mov ip, #6 - ldr r4, .L1976 + ldr r4, .L1978 movw r5, #65535 mul r1, ip, r1 ldr r3, [r0] @@ -10953,7 +10952,7 @@ List_remove_node: add lr, r2, r1 cmp lr, r3 ldrh r3, [r2, r1] - bne .L1971 + bne .L1973 cmp r3, r5 mlane r3, ip, r3, r2 moveq r3, #0 @@ -10961,17 +10960,17 @@ List_remove_node: strne r3, [r0] mvnne r0, #0 strneh r0, [r3, #2] @ movhi - b .L1973 -.L1971: + b .L1975 +.L1973: cmp r3, r5 ldrh r0, [lr, #2] - bne .L1974 + bne .L1976 cmp r0, r3 mulne r0, ip, r0 mvnne r3, #0 strneh r3, [r2, r0] @ movhi - b .L1973 -.L1974: + b .L1975 +.L1976: mla r3, ip, r3, r2 strh r0, [r3, #2] @ movhi ldrh r5, [lr, #2] @@ -10979,15 +10978,15 @@ List_remove_node: ldr r3, [r4, #-1356] mul ip, ip, r5 strh r0, [r3, ip] @ movhi -.L1973: +.L1975: mvn r3, #0 mov r0, #0 strh r3, [r2, r1] @ movhi strh r3, [lr, #2] @ movhi ldmfd sp!, {r4, r5, pc} -.L1977: +.L1979: .align 2 -.L1976: +.L1978: .word .LANCHOR2 .fnend .size List_remove_node, .-List_remove_node @@ -11000,19 +10999,19 @@ List_pop_index_node: @ frame_needed = 0, uses_anonymous_args = 0 ldr r3, [r0] cmp r3, #0 - beq .L1984 - ldr r2, .L1987 + beq .L1986 + ldr r2, .L1989 movw ip, #65535 stmfd sp!, {r4, lr} .save {r4, lr} mov lr, #6 ldr r4, [r2, #-1356] -.L1980: +.L1982: cmp r1, #0 - bne .L1981 -.L1983: + bne .L1983 +.L1985: rsb r4, r4, r3 - ldr r3, .L1987+4 + ldr r3, .L1989+4 mov r4, r4, asr #1 mul r4, r3, r4 uxth r4, r4 @@ -11020,20 +11019,20 @@ List_pop_index_node: bl List_remove_node mov r0, r4 ldmfd sp!, {r4, pc} -.L1981: +.L1983: ldrh r2, [r3] cmp r2, ip - beq .L1983 + beq .L1985 sub r1, r1, #1 mla r3, lr, r2, r4 uxth r1, r1 - b .L1980 -.L1984: + b .L1982 +.L1986: movw r0, #65535 bx lr -.L1988: +.L1990: .align 2 -.L1987: +.L1989: .word .LANCHOR2 .word -1431655765 .fnend @@ -11046,35 +11045,35 @@ List_get_gc_head_node: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L1996 + ldr r2, .L1998 ldr r3, [r2, #864] cmp r3, #0 ldrne r1, [r2, #-1356] movne ip, #6 movwne r2, #65535 - beq .L1994 -.L1991: + beq .L1996 +.L1993: cmp r0, #0 - beq .L1992 + beq .L1994 ldrh r3, [r3] cmp r3, r2 subne r0, r0, #1 mlane r3, ip, r3, r1 uxthne r0, r0 - bne .L1991 -.L1994: + bne .L1993 +.L1996: movw r0, #65535 bx lr -.L1992: +.L1994: rsb r3, r1, r3 - ldr r0, .L1996+4 + ldr r0, .L1998+4 mov r3, r3, asr #1 mul r0, r0, r3 uxth r0, r0 bx lr -.L1997: +.L1999: .align 2 -.L1996: +.L1998: .word .LANCHOR2 .word -1431655765 .fnend @@ -11086,19 +11085,19 @@ List_update_data_list: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2007 + ldr r3, .L2009 add r2, r3, #884 ldrh r2, [r2] cmp r2, r0 - beq .L2006 + beq .L2008 add r2, r3, #932 ldrh r2, [r2] cmp r2, r0 - beq .L2006 + beq .L2008 add r2, r3, #980 ldrh r2, [r2] cmp r2, r0 - beq .L2006 + beq .L2008 stmfd sp!, {r4, lr} .save {r4, lr} mov lr, #6 @@ -11107,7 +11106,7 @@ List_update_data_list: ldr r2, [r3, #864] add ip, r1, lr cmp ip, r2 - beq .L1999 + beq .L2001 ldr r4, [r3, #-1408] mov r3, r0, asl #1 ldrh r2, [r4, r3] @@ -11118,14 +11117,14 @@ List_update_data_list: mvneq r2, #0 movw r3, #65535 cmp ip, r3 - bne .L2001 + bne .L2003 ldrh r3, [r1, lr] cmp r3, ip - beq .L1999 -.L2001: + beq .L2001 +.L2003: mov r3, #6 mul ip, r3, ip - ldr r3, .L2007+4 + ldr r3, .L2009+4 add r1, r1, ip mov lr, ip, asr #1 mul r3, r3, lr @@ -11136,26 +11135,26 @@ List_update_data_list: mulne r3, r3, lr mvneq r3, #0 cmp r2, r3 - bcs .L1999 + bcs .L2001 mov r4, r0 - ldr r0, .L2007+8 + ldr r0, .L2009+8 mov r1, r4 bl List_remove_node - ldr r2, .L2007+12 + ldr r2, .L2009+12 mov r0, r4 ldrh r3, [r2] sub r3, r3, #1 strh r3, [r2] @ movhi bl INSERT_DATA_LIST -.L1999: +.L2001: mov r0, #0 ldmfd sp!, {r4, pc} -.L2006: +.L2008: mov r0, #0 bx lr -.L2008: +.L2010: .align 2 -.L2007: +.L2009: .word .LANCHOR2 .word -1431655765 .word .LANCHOR2+864 @@ -11181,19 +11180,19 @@ ftl_free_no_use_map_blk: mov r0, r5 bl ftl_memset mov r2, #0 -.L2010: +.L2012: ldrh r1, [r4, #6] uxth r3, r2 cmp r1, r3 - bls .L2030 + bls .L2032 ldr r0, [r6, r3, asl #2] mov r1, #0 ubfx r0, r0, #10, #16 -.L2011: +.L2013: ldrh ip, [r4, #10] uxth r3, r1 cmp ip, r3 - bls .L2031 + bls .L2033 mov r3, r3, asl #1 add r1, r1, #1 ldrh ip, [r7, r3] @@ -11206,12 +11205,12 @@ ftl_free_no_use_map_blk: ldrneh ip, [r5, r3] addne ip, ip, #1 strneh ip, [r5, r3] @ movhi - b .L2011 -.L2031: + b .L2013 +.L2033: add r2, r2, #1 - b .L2010 -.L2030: - ldr r3, .L2033 + b .L2012 +.L2032: + ldr r3, .L2035 mov r8, #0 mov r1, r8 mov fp, r8 @@ -11220,36 +11219,36 @@ ftl_free_no_use_map_blk: mov r3, r3, asl #1 strh r2, [r5, r3] @ movhi ldrh r9, [r5] -.L2015: +.L2017: ldrh r3, [r4, #10] uxth r6, r8 cmp r3, r6 - bls .L2032 + bls .L2034 mov r2, r6, asl #1 ldrh r3, [r5, r2] cmp r9, r3 - bls .L2016 + bls .L2018 ldrh r0, [r7, r2] add r10, r7, r2 cmp r0, #0 - bne .L2017 - b .L2018 -.L2016: + bne .L2019 + b .L2020 +.L2018: cmp r3, #0 - bne .L2018 + bne .L2020 ldrh r0, [r7, r2] add r10, r7, r2 cmp r0, #0 movne r6, r1 - beq .L2018 - b .L2020 -.L2017: + beq .L2020 + b .L2022 +.L2019: cmp r3, #0 movne r1, r6 movne r9, r3 - bne .L2018 + bne .L2020 mov r9, r3 -.L2020: +.L2022: mov r1, #1 bl FtlFreeSysBlkQueueIn strh fp, [r10] @ movhi @@ -11257,15 +11256,15 @@ ftl_free_no_use_map_blk: mov r1, r6 sub r3, r3, #1 strh r3, [r4, #8] @ movhi -.L2018: +.L2020: add r8, r8, #1 - b .L2015 -.L2032: + b .L2017 +.L2034: mov r0, r1 ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2034: +.L2036: .align 2 -.L2033: +.L2035: .word .LANCHOR2-1664 .fnend .size ftl_free_no_use_map_blk, .-ftl_free_no_use_map_blk @@ -11281,16 +11280,16 @@ ftl_map_blk_alloc_new_blk: mov r3, #0 ldrh r1, [r0, #10] ldr r2, [r0, #12] -.L2036: +.L2038: uxth r5, r3 cmp r5, r1 - bcs .L2039 + bcs .L2041 mov r7, r2 add r3, r3, #1 ldrh r6, [r7] add r2, r2, #2 cmp r6, #0 - bne .L2036 + bne .L2038 mov r4, r0 bl FtlFreeSysBlkQueueOut movw r2, #65533 @@ -11299,14 +11298,14 @@ ftl_map_blk_alloc_new_blk: strh r0, [r7] @ movhi uxth r3, r3 cmp r3, r2 - bls .L2037 - ldr r3, .L2043 - ldr r0, .L2043+4 + bls .L2039 + ldr r3, .L2045 + ldr r0, .L2045+4 ldrh r2, [r3, #6] bl printk -.L2038: - b .L2038 -.L2037: +.L2040: + b .L2040 +.L2039: ldr r3, [r4, #28] strh r6, [r4, #2] @ movhi add r3, r3, #1 @@ -11315,12 +11314,12 @@ ftl_map_blk_alloc_new_blk: strh r5, [r4] @ movhi add r3, r3, #1 strh r3, [r4, #8] @ movhi -.L2039: +.L2041: mov r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L2044: +.L2046: .align 2 -.L2043: +.L2045: .word .LANCHOR2-1240 .word .LC39 .fnend @@ -11336,33 +11335,33 @@ FtlMapWritePage: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 mov r4, r0 - ldr fp, .L2064 + ldr fp, .L2066 mov r8, r1 - ldr r9, .L2064+4 + ldr r9, .L2066+4 mov r5, #0 str r2, [sp] mov r10, fp -.L2046: +.L2048: ldr r3, [fp, #-1592] - ldr r6, .L2064 + ldr r6, .L2066 add r3, r3, #1 str r3, [fp, #-1592] ldrh r3, [r9] ldrh r2, [r4, #2] sub r3, r3, #1 cmp r2, r3 - bge .L2047 + bge .L2049 ldrh r2, [r4] movw r3, #65535 cmp r2, r3 - bne .L2048 -.L2047: + bne .L2050 +.L2049: mov r0, r4 bl Ftl_write_map_blk_to_last_page -.L2048: +.L2050: ldr r1, [r10, #-1280] cmp r1, #0 - bne .L2049 + bne .L2051 ldrh r3, [r4] ldr r2, [r4, #12] ldr r0, [fp, #-1444] @@ -11383,20 +11382,20 @@ FtlMapWritePage: ldrh r2, [r4, #4] strh r7, [r3, #2] @ movhi strh r2, [r3] @ movhi - ldr r2, .L2064+8 - ldrb r2, [r2] @ zero_extendqisi2 + ldr r2, .L2066+8 + ldrb r2, [r2, #32] @ zero_extendqisi2 cmp r2, #0 - beq .L2050 - ldr r2, .L2064+12 + beq .L2052 + ldr r2, .L2066+12 ldr r0, [fp, #-1268] str r3, [sp, #4] ldrh r1, [r2] bl js_hash ldr r3, [sp, #4] str r0, [r3, #12] -.L2050: +.L2052: mov r1, #1 - ldr r0, .L2064+16 + ldr r0, .L2066+16 mov r2, r1 mov r3, r1 bl FlashProgPages @@ -11406,8 +11405,8 @@ FtlMapWritePage: strh r3, [r4, #2] @ movhi ldr r2, [r10, #-1276] cmn r2, #1 - bne .L2051 - ldr r0, .L2064+20 + bne .L2053 + ldr r0, .L2066+20 add r5, r5, #1 ldr r1, [fp, #-1272] bl printk @@ -11418,39 +11417,39 @@ FtlMapWritePage: subls r3, r3, #1 strlsh r3, [r4, #2] @ movhi cmp r5, #3 - bls .L2046 - ldr r0, .L2064+24 + bls .L2048 + ldr r0, .L2066+24 mov r2, r5 ldr r1, [r6, #-1272] bl printk mov r3, #1 str r3, [r6, #-1280] - b .L2049 -.L2051: + b .L2051 +.L2053: cmp r2, #0 strneh r7, [r4, #40] @ movhi cmp r2, #256 cmpne r3, #1 - beq .L2055 + beq .L2057 ldr r3, [r4, #36] cmp r3, #0 - beq .L2056 -.L2055: + beq .L2058 +.L2057: mov r3, #0 str r3, [r4, #36] - b .L2046 -.L2056: + b .L2048 +.L2058: ldr r2, [r6, #-1272] ldr r3, [r4, #24] str r2, [r3, r8, asl #2] -.L2049: +.L2051: mov r0, #0 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2065: +.L2067: .align 2 -.L2064: +.L2066: .word .LANCHOR2 .word .LANCHOR2-1666 .word .LANCHOR0 @@ -11477,17 +11476,17 @@ ftl_map_blk_gc: ldrh r3, [r4, #10] ldrh r2, [r4, #8] sub r3, r3, #4 - ldr r8, .L2080 + ldr r8, .L2082 cmp r2, r3 - blt .L2067 + blt .L2069 uxth r0, r0 mov r0, r0, asl #1 ldrh r10, [r5, r0] cmp r10, #0 - beq .L2067 + beq .L2069 ldr r3, [r4, #32] cmp r3, #0 - bne .L2067 + bne .L2069 mov r2, #1 str r2, [r4, #32] strh r3, [r5, r0] @ movhi @@ -11497,26 +11496,26 @@ ftl_map_blk_gc: strh r3, [r4, #8] @ movhi ldrh r3, [r8, #-2] cmp r2, r3 - bcc .L2068 + bcc .L2070 mov r0, r4 bl ftl_map_blk_alloc_new_blk -.L2068: - ldr r5, .L2080+4 +.L2070: + ldr r5, .L2082+4 mov fp, #0 -.L2069: +.L2071: ldrh r3, [r4, #6] uxth r6, fp cmp r3, r6 - bls .L2079 + bls .L2081 ldr r3, [r7, r6, asl #2] add ip, r7, r6, asl #2 cmp r10, r3, lsr #10 - bne .L2070 + bne .L2072 ldr r3, [r5, #-1472] mov r1, #1 ldr r9, [r5, #-1444] mov r2, r1 - ldr r0, .L2080+8 + ldr r0, .L2082+8 str r3, [r5, #-1268] str r9, [r5, #-1264] ldr r3, [r7, r6, asl #2] @@ -11525,12 +11524,12 @@ ftl_map_blk_gc: bl FlashReadPages ldr r3, [r5, #-1276] cmn r3, #1 - ldr r3, .L2080+4 + ldr r3, .L2082+4 ldr ip, [sp, #4] - bne .L2071 -.L2073: + bne .L2073 +.L2075: mov r2, #0 - ldr r0, .L2080+12 + ldr r0, .L2082+12 str r2, [ip] ldr r1, [r3, #-1272] ldrh r2, [r9, #8] @@ -11539,42 +11538,42 @@ ftl_map_blk_gc: mov r2, #1 ldr r3, [sp, #4] str r2, [r3, #-1280] - b .L2072 -.L2071: + b .L2074 +.L2073: ldrh r1, [r9, #8] cmp r1, r6 - bne .L2073 + bne .L2075 ldrh r0, [r9] ldrh r2, [r4, #4] cmp r0, r2 - bne .L2073 + bne .L2075 mov r0, r4 ldr r2, [r5, #-1268] bl FtlMapWritePage -.L2070: +.L2072: add fp, fp, #1 - b .L2069 -.L2079: + b .L2071 +.L2081: mov r0, r10 mov r1, #1 bl FtlFreeSysBlkQueueIn mov r3, #0 str r3, [r4, #32] -.L2067: +.L2069: ldrh r2, [r4, #2] ldrh r3, [r8, #-2] cmp r2, r3 - bcc .L2072 + bcc .L2074 mov r0, r4 bl ftl_map_blk_alloc_new_blk -.L2072: +.L2074: mov r0, #0 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2081: +.L2083: .align 2 -.L2080: +.L2082: .word .LANCHOR2-1664 .word .LANCHOR2 .word .LANCHOR2-1276 @@ -11590,17 +11589,17 @@ Ftl_write_map_blk_to_last_page: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, lr} .save {r3, r4, r5, r6, r7, r8, r9, lr} - ldr r5, .L2094 + ldr r5, .L2096 ldr r7, [r0, #12] ldr r8, [r0, #24] ldr r6, [r5, #-1280] cmp r6, #0 - bne .L2083 + bne .L2085 ldrh r3, [r0] movw r2, #65535 mov r4, r0 cmp r3, r2 - bne .L2084 + bne .L2086 ldrh r3, [r0, #8] add r3, r3, #1 strh r3, [r0, #8] @ movhi @@ -11611,8 +11610,8 @@ Ftl_write_map_blk_to_last_page: add r3, r3, #1 strh r6, [r4] @ movhi str r3, [r4, #28] - b .L2083 -.L2084: + b .L2085 +.L2086: mov r3, r3, asl #1 mov r1, #255 ldrh r9, [r7, r3] @@ -11625,7 +11624,7 @@ Ftl_write_map_blk_to_last_page: str r3, [r5, #-1268] ldr r3, [r0, #28] str r3, [r7, #4] - ldr r3, .L2094+4 + ldr r3, .L2096+4 strh r3, [r7, #8] @ movhi ldrh r3, [r0, #4] strh r9, [r7, #2] @ movhi @@ -11636,14 +11635,14 @@ Ftl_write_map_blk_to_last_page: mov r2, r2, asl #3 bl ftl_memset mov r3, r6 -.L2085: +.L2087: ldrh r1, [r4, #6] uxth r2, r6 cmp r1, r2 - bls .L2093 + bls .L2095 ldr r1, [r8, r2, asl #2] cmp r9, r1, lsr #10 - bne .L2086 + bne .L2088 add r3, r3, #1 ldr r1, [r5, #-1476] uxth r3, r3 @@ -11652,23 +11651,23 @@ Ftl_write_map_blk_to_last_page: ldr r2, [r5, #-1476] add r2, r2, r3, asl #3 str r1, [r2, #4] -.L2086: +.L2088: add r6, r6, #1 - b .L2085 -.L2093: - ldr r3, .L2094+8 - ldrb r3, [r3] @ zero_extendqisi2 + b .L2087 +.L2095: + ldr r3, .L2096+8 + ldrb r3, [r3, #32] @ zero_extendqisi2 cmp r3, #0 - beq .L2088 - ldr r3, .L2094+12 + beq .L2090 + ldr r3, .L2096+12 ldr r0, [r5, #-1268] ldrh r1, [r3, #-10] bl js_hash str r0, [r7, #12] -.L2088: +.L2090: mov r1, #1 mov r3, #0 - ldr r0, .L2094+16 + ldr r0, .L2096+16 mov r2, r1 bl FlashProgPages ldrh r3, [r4, #2] @@ -11676,12 +11675,12 @@ Ftl_write_map_blk_to_last_page: add r3, r3, #1 strh r3, [r4, #2] @ movhi bl ftl_map_blk_gc -.L2083: +.L2085: mov r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, pc} -.L2095: +.L2097: .align 2 -.L2094: +.L2096: .word .LANCHOR2 .word -1291 .word .LANCHOR0 @@ -11699,7 +11698,7 @@ flush_l2p_region: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r4, #12 - ldr r5, .L2098 + ldr r5, .L2100 mul r4, r4, r0 add r0, r5, #1024 ldr r3, [r5, #-1364] @@ -11715,9 +11714,9 @@ flush_l2p_region: bic r3, r3, #-2147483648 str r3, [r4, #4] ldmfd sp!, {r3, r4, r5, pc} -.L2099: +.L2101: .align 2 -.L2098: +.L2100: .word .LANCHOR2 .fnend .size flush_l2p_region, .-flush_l2p_region @@ -11728,7 +11727,7 @@ select_l2p_ram_region: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2116 + ldr r3, .L2118 mov r1, #0 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} @@ -11737,25 +11736,25 @@ select_l2p_ram_region: mov ip, #12 ldrh r2, [r2, #-14] movw lr, #65535 -.L2101: +.L2103: uxth r0, r1 cmp r0, r2 - bcs .L2113 + bcs .L2115 add r1, r1, #1 mla r4, ip, r1, r3 ldrh r4, [r4, #-12] cmp r4, lr - bne .L2101 + bne .L2103 ldmfd sp!, {r4, r5, r6, pc} -.L2113: +.L2115: mov r0, r2 mov r1, #0 mov ip, #-2147483648 mov r5, #12 -.L2104: +.L2106: uxth r4, r1 cmp r4, r2 - bcs .L2114 + bcs .L2116 mla lr, r5, r1, r3 add r1, r1, #1 ldr lr, [lr, #4] @@ -11766,35 +11765,35 @@ select_l2p_ram_region: cmp r6, #0 movne ip, lr movne r0, r4 - b .L2104 -.L2114: + b .L2106 +.L2116: cmp r0, r2 ldmccfd sp!, {r4, r5, r6, pc} - ldr r1, .L2116+4 + ldr r1, .L2118+4 mov r0, r2 mvn ip, #0 ldrh r5, [r1] mov r1, #0 -.L2107: +.L2109: uxth lr, r1 cmp lr, r2 - bcs .L2115 + bcs .L2117 ldr r4, [r3, #4] cmp r4, ip - bcs .L2108 + bcs .L2110 ldrh r6, [r3] cmp r6, r5 movne ip, r4 movne r0, lr -.L2108: +.L2110: add r1, r1, #1 add r3, r3, #12 - b .L2107 -.L2115: - ldmfd sp!, {r4, r5, r6, pc} + b .L2109 .L2117: + ldmfd sp!, {r4, r5, r6, pc} +.L2119: .align 2 -.L2116: +.L2118: .word .LANCHOR2 .word .LANCHOR2+1072 .fnend @@ -11810,13 +11809,13 @@ log2phys: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #20 sub sp, sp, #20 - ldr r6, .L2135 + ldr r6, .L2137 sub r3, r6, #1648 str r3, [sp, #8] ldr ip, [r6, #-1284] ldrh r10, [r3, #-12] cmp r0, ip - bcs .L2119 + bcs .L2121 add r10, r10, #7 mov fp, r6 mov r6, r0, lsr r10 @@ -11829,22 +11828,22 @@ log2phys: mov r3, #0 ldr r4, [fp, #-1364] mov r1, #12 - b .L2120 -.L2119: + b .L2122 +.L2121: cmp r2, #0 mvn r0, #0 streq r0, [r1] - b .L2121 -.L2125: + b .L2123 +.L2127: add r3, r3, #1 mla r0, r1, r3, r4 ldrh r0, [r0, #-12] cmp r0, r6 - beq .L2122 -.L2120: + beq .L2124 +.L2122: uxth r7, r3 cmp r7, r2 - bcc .L2125 + bcc .L2127 bl select_l2p_ram_region mov r5, #12 movw r2, #65535 @@ -11853,13 +11852,13 @@ log2phys: add r3, r4, r5 ldrh r1, [r4, r5] cmp r1, r2 - bne .L2134 -.L2126: + bne .L2136 +.L2128: ldr r3, [fp, #-1376] - ldr r4, .L2135 + ldr r4, .L2137 ldr r8, [r3, r6, asl #2] cmp r8, #0 - bne .L2127 + bne .L2129 ldr r2, [r4, #-1364] mov r1, #255 ldr r3, [sp, #8] @@ -11872,7 +11871,7 @@ log2phys: ldr r2, [r4, #-1364] add r5, r2, r5 str r8, [r5, #4] -.L2122: +.L2124: ldr r3, [sp, #4] mvn r2, #0 bic r10, r3, r2, asl r10 @@ -11880,14 +11879,14 @@ log2phys: cmp r3, #0 uxth r10, r10 mov r3, #12 - bne .L2123 + bne .L2125 ldr r2, [fp, #-1364] mla r3, r3, r7, r2 ldr r3, [r3, #8] ldr r3, [r3, r10, asl #2] str r3, [r9] - b .L2124 -.L2123: + b .L2126 +.L2125: mul r3, r3, r7 ldr r2, [fp, #-1364] ldr r1, [r9] @@ -11899,9 +11898,9 @@ log2phys: ldr r2, [r3, #4] orr r2, r2, #-2147483648 str r2, [r3, #4] - ldr r3, .L2135+4 + ldr r3, .L2137+4 strh r6, [r3] @ movhi -.L2124: +.L2126: ldr r2, [fp, #-1364] mov r3, #12 mov r0, #0 @@ -11910,17 +11909,17 @@ log2phys: cmn r3, #1 addne r3, r3, #1 strne r3, [r7, #4] - b .L2121 -.L2134: + b .L2123 +.L2136: ldr r3, [r3, #4] cmp r3, #0 - bge .L2126 + bge .L2128 bl flush_l2p_region - b .L2126 -.L2127: + b .L2128 +.L2129: ldr r2, [r4, #-1364] mov r1, #1 - ldr r0, .L2135+8 + ldr r0, .L2137+8 add r2, r2, r5 str r8, [r4, #-1272] ldr r2, [r2, #8] @@ -11932,53 +11931,53 @@ log2phys: ldr r2, [r4, #-1264] ldrh r2, [r2, #8] cmp r2, r6 - beq .L2128 + beq .L2130 mov r1, r6 mov r2, r8 - ldr r0, .L2135+12 + ldr r0, .L2137+12 bl printk mov r2, #4 mov r3, r2 - ldr r0, .L2135+16 + ldr r0, .L2137+16 ldr r1, [r4, #-1264] bl rknand_print_hex sub r3, r4, #1632 - ldr r0, .L2135+20 + ldr r0, .L2137+20 mov r2, #4 ldrh r3, [r3] ldr r1, [r4, #-1376] bl rknand_print_hex mov r3, #1 str r3, [r4, #-1280] - b .L2129 -.L2128: + b .L2131 +.L2130: ldr r2, [r4, #-1276] cmp r2, #256 - bne .L2129 + bne .L2131 mov r1, r6 mov r2, r8 - ldr r0, .L2135+24 + ldr r0, .L2137+24 bl printk ldr r3, [r4, #-1364] - ldr r0, .L2135+28 + ldr r0, .L2137+28 mov r1, r6 add r3, r3, r5 ldr r2, [r3, #8] bl FtlMapWritePage -.L2129: +.L2131: ldr r3, [fp, #-1364] mov r1, #0 add r2, r3, r5 str r1, [r2, #4] strh r6, [r3, r5] @ movhi - b .L2122 -.L2121: + b .L2124 +.L2123: add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2136: +.L2138: .align 2 -.L2135: +.L2137: .word .LANCHOR2 .word .LANCHOR2+1072 .word .LANCHOR2-1276 @@ -11999,7 +11998,7 @@ FtlVendorPartWrite: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov fp, r2 - ldr r6, .L2148 + ldr r6, .L2150 add r2, r0, r1 mov r7, r0 .pad #60 @@ -12009,7 +12008,7 @@ FtlVendorPartWrite: ldrh r5, [r6, #-12] cmp r2, r3 mvnhi r0, #0 - bhi .L2138 + bhi .L2140 mov r5, r7, lsr r5 mov r3, #0 str r3, [sp] @@ -12017,14 +12016,14 @@ FtlVendorPartWrite: mov r10, r5, asl #2 str r3, [sp, #4] mov r8, r3 -.L2139: +.L2141: cmp r4, #0 - beq .L2147 + beq .L2149 ldr r3, [sp, #4] mov r0, r7 ldr r3, [r3, #-1380] ldr ip, [r3, r10] - ldr r3, .L2148+4 + ldr r3, .L2150+4 str ip, [sp, #12] ldrh r2, [r3] mov r1, r2 @@ -12041,7 +12040,7 @@ FtlVendorPartWrite: cmpne ip, #0 movne r1, #1 moveq r1, #0 - beq .L2141 + beq .L2143 ldr r2, [r8, #-1468] mov r1, #1 add r0, sp, #20 @@ -12051,13 +12050,13 @@ FtlVendorPartWrite: str r2, [sp, #32] mov r2, r1 bl FlashReadPages - b .L2142 -.L2141: - ldr r2, .L2148+8 + b .L2144 +.L2143: + ldr r2, .L2150+8 ldr r0, [r8, #-1468] ldrh r2, [r2] bl ftl_memset -.L2142: +.L2144: mov ip, r6, asl #9 ldr r0, [r8, #-1468] uxth r9, r9 @@ -12068,7 +12067,7 @@ FtlVendorPartWrite: rsb r4, r6, r4 bl ftl_memcpy mov r1, r5 - ldr r0, .L2148+12 + ldr r0, .L2150+12 add r5, r5, #1 ldr r2, [r8, #-1468] add r7, r7, r6 @@ -12080,16 +12079,16 @@ FtlVendorPartWrite: mvneq r3, #0 add fp, fp, ip str r3, [sp] - b .L2139 -.L2147: + b .L2141 +.L2149: ldr r0, [sp] -.L2138: +.L2140: add sp, sp, #60 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2149: +.L2151: .align 2 -.L2148: +.L2150: .word .LANCHOR2-1648 .word .LANCHOR2-1662 .word .LANCHOR2-1658 @@ -12106,7 +12105,7 @@ FtlVendorPartRead: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r9, r2 - ldr r6, .L2162 + ldr r6, .L2164 add r2, r0, r1 mov r8, r0 .pad #60 @@ -12116,7 +12115,7 @@ FtlVendorPartRead: ldrh r5, [r6, #-12] cmp r2, r3 mvnhi r0, #0 - bhi .L2151 + bhi .L2153 add r6, r6, #1648 mov r5, r8, lsr r5 mov r10, r6 @@ -12124,15 +12123,15 @@ FtlVendorPartRead: str r3, [sp, #4] mov r3, #0 str r3, [sp] -.L2152: +.L2154: cmp r7, #0 - beq .L2161 + beq .L2163 ldr r2, [sp, #4] mov r0, r8 ldr r3, [r6, #-1380] ldr r3, [r3, r2] str r3, [sp, #12] - ldr r3, .L2162+4 + ldr r3, .L2164+4 ldrh r4, [r3] mov r1, r4 bl __aeabi_uidivmod @@ -12144,7 +12143,7 @@ FtlVendorPartRead: uxthhi r4, r7 cmp r3, #0 mov fp, r4, asl #9 - beq .L2154 + beq .L2156 ldr r2, [r10, #-1468] mov r1, #1 add r0, sp, #20 @@ -12163,29 +12162,29 @@ FtlVendorPartRead: cmp r2, #256 str r3, [sp] ldr r3, [sp, #12] - bne .L2156 + bne .L2158 mov r1, r5 mov r2, r3 - ldr r0, .L2162+8 + ldr r0, .L2164+8 bl printk - ldr r0, .L2162+12 + ldr r0, .L2164+12 mov r1, r5 ldr r2, [r6, #-1468] bl FtlMapWritePage -.L2156: +.L2158: ldrh r3, [sp, #8] mov r0, r9 ldr r1, [r10, #-1468] mov r2, fp add r1, r1, r3, asl #9 bl ftl_memcpy - b .L2157 -.L2154: + b .L2159 +.L2156: mov r0, r9 mov r1, r3 mov r2, fp bl ftl_memset -.L2157: +.L2159: ldr r3, [sp, #4] add r5, r5, #1 rsb r7, r4, r7 @@ -12193,16 +12192,16 @@ FtlVendorPartRead: add r3, r3, #4 add r9, r9, fp str r3, [sp, #4] - b .L2152 -.L2161: + b .L2154 +.L2163: ldr r0, [sp] -.L2151: +.L2153: add sp, sp, #60 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2163: +.L2165: .align 2 -.L2162: +.L2164: .word .LANCHOR2-1648 .word .LANCHOR2-1662 .word .LC46 @@ -12216,7 +12215,7 @@ FtlUpdateVaildLpn: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2172 + ldr r3, .L2174 add r1, r3, #1120 ldrh r2, [r1] cmp r2, #4 @@ -12234,20 +12233,20 @@ FtlUpdateVaildLpn: ldrh r0, [r1] ldr r2, [r3, #-1408] add r0, r2, r0, asl #1 -.L2166: +.L2168: cmp r2, r0 - beq .L2171 + beq .L2173 ldrh r1, [r2], #2 cmp r1, ip ldrne lr, [r3, #1124] addne r1, r1, lr strne r1, [r3, #1124] - b .L2166 -.L2171: - ldr pc, [sp], #4 + b .L2168 .L2173: + ldr pc, [sp], #4 +.L2175: .align 2 -.L2172: +.L2174: .word .LANCHOR2 .fnend .size FtlUpdateVaildLpn, .-FtlUpdateVaildLpn @@ -12265,7 +12264,7 @@ FtlMapBlkWriteDumpData: cmp r2, #0 ldr r3, [r0, #24] ldmeqfd sp!, {r4, r5, r6, pc} - ldr r4, .L2181 + ldr r4, .L2183 mov r2, #0 str r2, [r0, #36] ldr r2, [r4, #-1280] @@ -12281,26 +12280,26 @@ FtlMapBlkWriteDumpData: ldr r3, [r3, r5, asl #2] cmp r3, #0 str r3, [r4, #-1272] - beq .L2178 + beq .L2180 mov r1, #1 - ldr r0, .L2181+4 + ldr r0, .L2183+4 mov r2, r1 bl FlashReadPages - b .L2179 -.L2178: + b .L2181 +.L2180: sub r3, r4, #1648 mov r1, #255 ldrh r2, [r3, #-10] bl ftl_memset -.L2179: +.L2181: mov r0, r6 mov r1, r5 ldr r2, [r4, #-1268] ldmfd sp!, {r4, r5, r6, lr} b FtlMapWritePage -.L2182: +.L2184: .align 2 -.L2181: +.L2183: .word .LANCHOR2 .word .LANCHOR2-1276 .fnend @@ -12314,28 +12313,28 @@ FtlVpcTblFlush: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} - ldr r4, .L2201 + ldr r4, .L2203 ldr r3, [r4, #-1280] cmp r3, #0 - bne .L2185 + bne .L2187 ldr r2, [r4, #-1476] add r5, r4, #816 ldr r6, [r4, #-1444] mov r1, #255 - ldr r7, .L2201+4 + ldr r7, .L2203+4 str r2, [r4, #-1268] movw r2, #1128 ldrh r2, [r4, r2] str r6, [r4, #-1264] str r3, [r6, #12] strh r2, [r6, #2] @ movhi - ldr r2, .L2201+8 + ldr r2, .L2203+8 strh r2, [r6] @ movhi ldr r2, [r4, #1136] stmib r6, {r2, r3} - ldr r3, .L2201+12 + ldr r3, .L2203+12 str r3, [r4, #816] - ldr r3, .L2201+16 + ldr r3, .L2203+16 str r3, [r4, #820] ldrh r3, [r7, #6] strh r3, [r5, #8] @ movhi @@ -12408,7 +12407,7 @@ FtlVpcTblFlush: sub r3, r4, #1616 ldrh r3, [r3, #-12] cmp r3, #0 - beq .L2186 + beq .L2188 ldrh r2, [r5] ldr r0, [r4, #-1268] ldr r1, [r4, #-1376] @@ -12421,14 +12420,14 @@ FtlVpcTblFlush: add r0, r0, r3, asl #2 mov r2, r2, asl #2 bl ftl_memcpy -.L2186: +.L2188: mov r0, #0 - ldr r9, .L2201 + ldr r9, .L2203 bl FtlUpdateVaildLpn - ldr fp, .L2201+4 + ldr fp, .L2203+4 mov r8, #0 movw r10, #65535 -.L2187: +.L2189: ldr r3, [r4, #-1476] ldrh r2, [r7] ldrh r1, [r7, #2] @@ -12437,11 +12436,11 @@ FtlVpcTblFlush: str r3, [r4, #-1264] orr r3, r1, r2, asl #10 str r3, [r4, #-1272] - ldr r3, .L2201+20 + ldr r3, .L2203+20 ldrh r3, [r3] sub r3, r3, #1 cmp r1, r3 - blt .L2188 + blt .L2190 mov r3, #0 ldrh r10, [fp, #4] strh r3, [fp, #2] @ movhi @@ -12456,19 +12455,19 @@ FtlVpcTblFlush: str r2, [r9, #-1272] str r3, [r6, #4] strh r0, [r6, #2] @ movhi -.L2188: - ldr r3, .L2201+24 - ldrb r3, [r3] @ zero_extendqisi2 +.L2190: + ldr r3, .L2203+24 + ldrb r3, [r3, #32] @ zero_extendqisi2 cmp r3, #0 - beq .L2189 - ldr r3, .L2201+28 + beq .L2191 + ldr r3, .L2203+28 ldr r0, [r4, #-1476] ldrh r1, [r3] bl js_hash str r0, [r6, #12] -.L2189: +.L2191: mov r1, #1 - ldr r0, .L2201+32 + ldr r0, .L2203+32 mov r3, r1 mov r2, r1 bl FlashProgPages @@ -12478,39 +12477,39 @@ FtlVpcTblFlush: cmn r3, #1 uxth r5, r5 strh r5, [r7, #2] @ movhi - bne .L2190 + bne .L2192 cmp r5, #1 add r8, r8, #1 - ldreq r3, .L2201+20 + ldreq r3, .L2203+20 uxth r8, r8 ldreqh r3, [r3] subeq r3, r3, #1 streqh r3, [fp, #2] @ movhi cmp r8, #3 - bls .L2187 - ldr r0, .L2201+36 + bls .L2189 + ldr r0, .L2203+36 mov r2, r8 ldr r1, [r4, #-1272] bl printk mov r3, #1 str r3, [r4, #-1280] - b .L2185 -.L2190: + b .L2187 +.L2192: cmp r3, #256 cmpne r5, #1 - beq .L2187 + beq .L2189 movw r3, #65535 cmp r10, r3 - beq .L2185 + beq .L2187 mov r0, r10 mov r1, #1 bl FtlFreeSysBlkQueueIn -.L2185: +.L2187: mov r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2202: +.L2204: .align 2 -.L2201: +.L2203: .word .LANCHOR2 .word .LANCHOR2+1128 .word -3932 @@ -12533,7 +12532,7 @@ FtlScanSysBlk: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} movw r3, #1144 - ldr r9, .L2289 + ldr r9, .L2291 mov r10, #0 mov r1, r10 .pad #36 @@ -12563,7 +12562,7 @@ FtlScanSysBlk: ldr r0, [r9, #-1392] mov r2, r2, asl #1 bl ftl_memset - ldr r0, .L2289+4 + ldr r0, .L2291+4 mov r1, #255 mov r2, #16 bl ftl_memset @@ -12572,16 +12571,16 @@ FtlScanSysBlk: str r5, [sp, #16] mov r5, r9 str r3, [sp, #8] -.L2204: - ldr r3, .L2289+8 +.L2206: + ldr r3, .L2291+8 ldr r2, [sp, #8] - ldr r1, .L2289 + ldr r1, .L2291 ldrh r3, [r3] cmp r3, r2 - bls .L2245 - ldr r3, .L2289+12 + bls .L2247 + ldr r3, .L2291+12 mov r8, #36 - ldr r1, .L2289+16 + ldr r1, .L2291+16 mov r7, #0 ldr r2, [r5, #-1504] ldrh ip, [r3] @@ -12590,10 +12589,10 @@ FtlScanSysBlk: ldr fp, [r5, #-1436] ldrh r10, [r1] str r7, [sp, #4] -.L2246: +.L2248: uxth r1, r7 cmp r1, ip - bcs .L2284 + bcs .L2286 ldr r1, [sp, #8] ldrb r0, [r9, r7] @ zero_extendqisi2 str r3, [sp, #28] @@ -12607,7 +12606,7 @@ FtlScanSysBlk: ldr ip, [sp, #20] ldr r2, [sp, #24] ldr r3, [sp, #28] - bne .L2205 + bne .L2207 ldr r0, [sp, #4] mov r1, r1, asl #10 mla r0, r8, r0, r2 @@ -12624,24 +12623,24 @@ FtlScanSysBlk: add r1, r1, #1 uxth r1, r1 str r1, [sp, #4] -.L2205: +.L2207: add r7, r7, #1 - b .L2246 -.L2284: + b .L2248 +.L2286: ldr r3, [sp, #4] cmp r3, #0 - beq .L2208 + beq .L2210 mov r1, r3 ldr r0, [r4, #-1504] mov r2, #1 bl FlashReadPages mov r3, #0 -.L2282: +.L2284: str r3, [sp, #12] ldr r2, [sp, #4] ldrh r3, [sp, #12] cmp r3, r2 - bcs .L2208 + bcs .L2210 ldr r3, [sp, #12] mov r9, #36 mul r9, r9, r3 @@ -12652,10 +12651,10 @@ FtlScanSysBlk: cmn r3, #1 ldr r8, [r2, #12] ubfx r7, r7, #10, #16 - bne .L2211 + bne .L2213 mov r10, #16 movw fp, #65535 -.L2210: +.L2212: ldr r0, [r4, #-1504] mov r1, #1 mov r2, r1 @@ -12669,61 +12668,61 @@ FtlScanSysBlk: ldreq r3, [r6, #-1504] mvneq r2, #0 streq r2, [r3, r9] - beq .L2211 -.L2212: + beq .L2213 +.L2214: ldr r3, [r5, #-1504] ldr r3, [r3, r9] cmn r3, #1 - bne .L2211 + bne .L2213 sub r10, r10, #1 uxth r10, r10 cmp r10, #0 - bne .L2210 -.L2211: + bne .L2212 +.L2213: ldr r3, [r5, #-1504] ldr r3, [r3, r9] cmn r3, #1 - beq .L2214 + beq .L2216 ldr r2, [r5, #-1616] ldr r3, [r8, #4] cmn r2, #1 - beq .L2215 + beq .L2217 cmp r2, r3 - bhi .L2216 -.L2215: + bhi .L2218 +.L2217: cmn r3, #1 addne r2, r3, #1 strne r2, [r6, #-1616] -.L2216: +.L2218: ldrh r2, [r8] movw r1, #61604 cmp r2, r1 - beq .L2218 - bhi .L2219 + beq .L2220 + bhi .L2221 movw r3, #61574 cmp r2, r3 - bne .L2217 + bne .L2219 ldr r3, [sp, #16] - ldr r2, .L2289+20 + ldr r2, .L2291+20 ldr lr, [r4, #-1384] ldrh ip, [r3] ldrh r1, [r2] sub r0, ip, #1 uxth r3, r0 rsb r0, r1, r0 - b .L2232 -.L2219: + b .L2234 +.L2221: movw r3, #61634 cmp r2, r3 - beq .L2221 + beq .L2223 movw r3, #65535 cmp r2, r3 moveq r0, r7 - beq .L2283 - b .L2217 -.L2221: + beq .L2285 + b .L2219 +.L2223: ldr ip, [r4, #-1640] - ldr fp, .L2289+24 + ldr fp, .L2291+24 ldr lr, [r4, #-1368] uxth r1, ip ldrh r2, [fp] @@ -12733,30 +12732,30 @@ FtlScanSysBlk: sub r1, r1, #1 sxth r1, r1 str r1, [sp, #20] -.L2223: +.L2225: ldr r1, [sp, #20] sxth r0, r3 cmp r0, r1 - ble .L2285 + ble .L2287 ldr r9, [lr, r0, asl #2] mov r10, r0, asl #2 ldr r1, [r8, #4] cmp r1, r9 - bls .L2224 + bls .L2226 ldr r1, [lr] cmp r1, #0 - bne .L2225 + bne .L2227 cmp r2, ip addne r2, r2, #1 - ldrne r1, .L2289+24 + ldrne r1, .L2291+24 strneh r2, [r1] @ movhi -.L2225: +.L2227: uxth lr, r3 mov r1, #0 -.L2226: +.L2228: uxth r2, r1 cmp r2, lr - bcs .L2286 + bcs .L2288 ldr ip, [r5, #-1368] sxth r2, r2 add r1, r1, #1 @@ -12768,8 +12767,8 @@ FtlScanSysBlk: add r9, ip, r2 ldrh r9, [r9, #2] strh r9, [ip, r2] @ movhi - b .L2226 -.L2286: + b .L2228 +.L2288: ldr r2, [r6, #-1368] mov r0, r0, asl #1 ldr r1, [r8, #4] @@ -12778,26 +12777,26 @@ FtlScanSysBlk: strh r7, [r2, r0] @ movhi sxth r0, r3 cmp r0, #0 - bge .L2228 - b .L2217 -.L2224: + bge .L2230 + b .L2219 +.L2226: sub r3, r3, #1 uxth r3, r3 - b .L2223 -.L2285: + b .L2225 +.L2287: cmp r0, #0 - bge .L2259 - b .L2217 -.L2228: - ldr r2, .L2289+24 + bge .L2261 + b .L2219 +.L2230: + ldr r2, .L2291+24 ldr r1, [r5, #-1640] ldrh r2, [r2] rsb r1, r2, r1 sub r1, r1, #1 sxth r1, r1 cmp r0, r1 - bgt .L2217 -.L2259: + bgt .L2219 +.L2261: add r2, r2, #1 ldr r1, [r8, #4] strh r2, [fp] @ movhi @@ -12806,35 +12805,35 @@ FtlScanSysBlk: str r1, [r2, r3, asl #2] mov r3, r3, asl #1 ldr r2, [r4, #-1404] - b .L2280 -.L2238: + b .L2282 +.L2240: ldr r10, [r8, #4] mov fp, r2, asl #2 ldr r9, [lr, r2, asl #2] cmp r10, r9 - bhi .L2287 + bhi .L2289 sub r3, r3, #1 uxth r3, r3 -.L2232: +.L2234: sxth r2, r3 cmp r2, r0 - bgt .L2238 - b .L2237 -.L2287: + bgt .L2240 + b .L2239 +.L2289: ldr r0, [lr] cmp r0, #0 - bne .L2234 + bne .L2236 cmp r1, ip addne r1, r1, #1 - ldrne r0, .L2289+20 + ldrne r0, .L2291+20 strneh r1, [r0] @ movhi -.L2234: +.L2236: uxth lr, r3 mov r0, #0 -.L2235: +.L2237: uxth r1, r0 cmp r1, lr - bcs .L2288 + bcs .L2290 ldr ip, [r5, #-1384] sxth r1, r1 add r0, r0, #1 @@ -12846,19 +12845,19 @@ FtlScanSysBlk: add r9, ip, r1 ldrh r9, [r9, #2] strh r9, [ip, r1] @ movhi - b .L2235 -.L2288: + b .L2237 +.L2290: ldr r1, [r6, #-1384] mov r2, r2, asl #1 ldr r0, [r8, #4] str r0, [r1, fp] ldr r1, [r6, #-1392] strh r7, [r1, r2] @ movhi -.L2237: +.L2239: sxth r3, r3 cmp r3, #0 - blt .L2217 - ldr r0, .L2289+20 + blt .L2219 + ldr r0, .L2291+20 sub r2, r0, #360 ldrh r1, [r0] ldrh r2, [r2] @@ -12866,7 +12865,7 @@ FtlScanSysBlk: rsb r2, r1, r2 sxth r2, r2 cmp r3, r2 - bgt .L2217 + bgt .L2219 add r1, r1, #1 ldr r2, [r5, #-1384] strh r1, [r0] @ movhi @@ -12874,90 +12873,90 @@ FtlScanSysBlk: str r1, [r2, r3, asl #2] mov r3, r3, asl #1 ldr r2, [r5, #-1392] -.L2280: +.L2282: strh r7, [r2, r3] @ movhi - b .L2217 -.L2218: - ldr r2, .L2289+4 - ldr r9, .L2289+4 + b .L2219 +.L2220: + ldr r2, .L2291+4 + ldr r9, .L2291+4 ldrh r1, [r2] movw r2, #65535 cmp r1, r2 moveq r2, r9 streqh r7, [r2] @ movhi - beq .L2281 - ldr r3, .L2289+4 + beq .L2283 + ldr r3, .L2291+4 ldrh r0, [r3, #4] cmp r0, r2 - beq .L2240 + beq .L2242 mov r1, #1 bl FtlFreeSysBlkQueueIn -.L2240: +.L2242: ldr r3, [r8, #4] ldr r2, [r6, #1136] cmp r2, r3 strcsh r7, [r9, #4] @ movhi - bcs .L2217 + bcs .L2219 ldrh r3, [r9] strh r7, [r9] @ movhi strh r3, [r9, #4] @ movhi ldr r3, [r8, #4] -.L2281: +.L2283: str r3, [r5, #1136] - b .L2217 -.L2214: + b .L2219 +.L2216: ldrb r1, [r5, #-2744] @ zero_extendqisi2 mov r0, r7 cmp r1, #0 - beq .L2242 -.L2283: + beq .L2244 +.L2285: mov r1, #0 -.L2242: +.L2244: bl FtlFreeSysBlkQueueIn -.L2217: +.L2219: ldr r3, [sp, #12] add r3, r3, #1 - b .L2282 -.L2208: + b .L2284 +.L2210: ldr r3, [sp, #8] add r7, r3, #1 uxth r3, r7 str r3, [sp, #8] - b .L2204 -.L2245: + b .L2206 +.L2247: ldr ip, [r1, #-1404] ldrh r2, [ip] cmp r2, #0 - beq .L2247 -.L2250: + beq .L2249 +.L2252: ldr ip, [r1, #-1392] ldrh r2, [ip] cmp r2, #0 - beq .L2248 - b .L2271 -.L2247: + beq .L2250 + b .L2273 +.L2249: movw r3, #1144 ldrh r3, [r1, r3] cmp r3, #0 ldrne lr, [r1, #-1640] - beq .L2250 -.L2251: + beq .L2252 +.L2253: uxth r3, r2 sxth r0, r3 cmp r0, lr - bcs .L2250 + bcs .L2252 mov r4, r0, asl #1 add r2, r2, #1 ldrh r4, [ip, r4] cmp r4, #0 - beq .L2251 - ldr ip, .L2289 + beq .L2253 + ldr ip, .L2291 mov r6, #0 -.L2252: +.L2254: ldr lr, [r1, #-1640] sxth r2, r3 cmp r2, lr - bcs .L2250 + bcs .L2252 ldr r4, [ip, #-1404] mov lr, r2, asl #1 rsb r5, r0, r2 @@ -12971,31 +12970,31 @@ FtlScanSysBlk: str r2, [r4, r5, asl #2] ldr r2, [ip, #-1404] strh r6, [r2, lr] @ movhi - b .L2252 -.L2248: - ldr r1, .L2289+28 + b .L2254 +.L2250: + ldr r1, .L2291+28 ldrh r3, [r1, #-8] cmp r3, #0 subne r1, r1, #368 ldrneh lr, [r1] - beq .L2271 -.L2255: + beq .L2273 +.L2257: uxth r3, r2 sxth r0, r3 cmp r0, lr - bge .L2271 + bge .L2273 mov r4, r0, asl #1 add r2, r2, #1 ldrh r4, [ip, r4] cmp r4, #0 - beq .L2255 - ldr ip, .L2289 + beq .L2257 + ldr ip, .L2291 mov r6, #0 -.L2256: +.L2258: ldrh lr, [r1] sxth r2, r3 cmp r2, lr - bge .L2271 + bge .L2273 ldr r4, [ip, #-1392] mov lr, r2, asl #1 rsb r5, r0, r2 @@ -13009,15 +13008,15 @@ FtlScanSysBlk: str r2, [r4, r5, asl #2] ldr r2, [ip, #-1392] strh r6, [r2, lr] @ movhi - b .L2256 -.L2271: + b .L2258 +.L2273: mov r0, #0 add sp, sp, #36 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2290: +.L2292: .align 2 -.L2289: +.L2291: .word .LANCHOR2 .word .LANCHOR2+1128 .word .LANCHOR2-1726 @@ -13038,30 +13037,30 @@ FtlLoadEctTbl: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r0, #64 - ldr r4, .L2294 + ldr r4, .L2296 sub r5, r4, #1424 ldr r2, [r4, #-1420] ldrh r1, [r5, #-4] bl FtlVendorPartRead ldr r3, [r4, #-1420] ldr r2, [r3] - ldr r3, .L2294+4 + ldr r3, .L2296+4 cmp r2, r3 - beq .L2292 - ldr r1, .L2294+8 - ldr r0, .L2294+12 + beq .L2294 + ldr r1, .L2296+8 + ldr r0, .L2296+12 bl printk ldrh r2, [r5, #-4] ldr r0, [r4, #-1420] mov r1, #0 mov r2, r2, asl #9 bl ftl_memset -.L2292: +.L2294: mov r0, #0 ldmfd sp!, {r3, r4, r5, pc} -.L2295: +.L2297: .align 2 -.L2294: +.L2296: .word .LANCHOR2 .word 1112818501 .word .LC49 @@ -13076,7 +13075,7 @@ ftl_set_blk_mode: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L2300 + ldr r2, .L2302 mov r3, r0, lsr #5 cmp r1, #0 and r0, r0, #31 @@ -13088,9 +13087,9 @@ ftl_set_blk_mode: biceq r0, r2, ip, asl r0 str r0, [r1, r3, asl #2] bx lr -.L2301: +.L2303: .align 2 -.L2300: +.L2302: .word .LANCHOR2 .fnend .size ftl_set_blk_mode, .-ftl_set_blk_mode @@ -13102,7 +13101,7 @@ ftl_get_blk_mode: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L2303 + ldr r3, .L2305 mov r2, r0, lsr #5 and r0, r0, #31 ldr r3, [r3, #-1396] @@ -13110,9 +13109,9 @@ ftl_get_blk_mode: mov r0, r3, lsr r0 and r0, r0, #1 bx lr -.L2304: +.L2306: .align 2 -.L2303: +.L2305: .word .LANCHOR2 .fnend .size ftl_get_blk_mode, .-ftl_get_blk_mode @@ -13127,96 +13126,96 @@ FtlCheckVpc: .save {r4, r5, r6, r7, r8, r9, lr} .pad #12 mov r4, #0 - ldr r1, .L2328 - ldr r0, .L2328+4 + ldr r1, .L2330 + ldr r0, .L2330+4 bl printk - ldr r0, .L2328+8 + ldr r0, .L2330+8 mov r1, #0 mov r2, #8192 bl memset - ldr r7, .L2328+12 - ldr r5, .L2328+8 -.L2306: + ldr r7, .L2330+12 + ldr r5, .L2330+8 +.L2308: ldr r3, [r7, #-1284] - ldr r6, .L2328+12 + ldr r6, .L2330+12 cmp r4, r3 - bcs .L2326 + bcs .L2328 mov r0, r4 add r1, sp, #4 mov r2, #0 bl log2phys ldr r0, [sp, #4] cmn r0, #1 - beq .L2307 + beq .L2309 ubfx r0, r0, #10, #16 bl P2V_block_in_plane mov r0, r0, asl #1 ldrh r3, [r5, r0] add r3, r3, #1 strh r3, [r5, r0] @ movhi -.L2307: +.L2309: add r4, r4, #1 - b .L2306 -.L2326: - ldr r9, .L2328+8 + b .L2308 +.L2328: + ldr r9, .L2330+8 mov r4, #0 mov r5, r4 mov r8, r6 -.L2309: - ldr r2, .L2328+12 +.L2311: + ldr r2, .L2330+12 uxth r1, r4 sub r3, r2, #1728 ldrh r3, [r3] cmp r3, r1 - bls .L2327 + bls .L2329 ldr r3, [r8, #-1408] mov r7, r1, asl #1 ldrh r2, [r3, r7] ldrh r3, [r9, r7] cmp r2, r3 - beq .L2310 - ldr r0, .L2328+16 + beq .L2312 + ldr r0, .L2330+16 bl printk ldr r3, [r8, #-1408] movw r2, #65535 ldrh r3, [r3, r7] cmp r3, r2 - beq .L2310 + beq .L2312 ldrh r2, [r9, r7] cmp r2, r3 movhi r5, #1 -.L2310: +.L2312: add r4, r4, #1 - b .L2309 -.L2327: + b .L2311 +.L2329: ldr r3, [r2, #876] cmp r3, #0 - beq .L2312 + beq .L2314 add r1, r2, #880 ldr r2, [r2, #-1356] add r9, r1, #268 mov r8, #0 rsb r3, r2, r3 - ldr r2, .L2328+20 + ldr r2, .L2330+20 ldrh r7, [r1] mov r3, r3, asr #1 mul r3, r2, r3 uxth r4, r3 -.L2313: +.L2315: uxth r3, r8 cmp r3, r7 - bcs .L2312 + bcs .L2314 ldr r2, [r6, #-1408] mov r3, r4, asl #1 ldrh r2, [r2, r3] cmp r2, #0 - beq .L2314 - ldr r0, .L2328+24 + beq .L2316 + ldr r0, .L2330+24 mov r1, r4 ldrh r3, [r9, r3] mov r5, #1 bl printk -.L2314: +.L2316: mov r3, #6 ldr r2, [r6, #-1356] mul r4, r3, r4 @@ -13224,17 +13223,17 @@ FtlCheckVpc: add r8, r8, #1 ldrh r4, [r2, r4] cmp r4, r3 - bne .L2313 -.L2312: + bne .L2315 +.L2314: mov r1, r5 - ldr r0, .L2328+28 + ldr r0, .L2330+28 bl printk add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc} -.L2329: +.L2331: .align 2 -.L2328: +.L2330: .word .LANCHOR3+148 .word .LC50 .word .LANCHOR2+1148 @@ -13255,30 +13254,30 @@ FtlDumpSysBlock: stmfd sp!, {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} mov r7, r0, asl #10 - ldr r4, .L2339 + ldr r4, .L2341 .pad #24 sub sp, sp, #24 - ldr r8, .L2339+4 + ldr r8, .L2341+4 mov r6, r0 mov r5, #0 ldr r3, [r4, #-1476] str r3, [r4, #-1268] ldr r3, [r4, #-1444] str r3, [r4, #-1264] -.L2331: +.L2333: ldrh r2, [r8] sxth r3, r5 cmp r3, r2 - bge .L2338 + bge .L2340 mov r1, #1 - ldr r0, .L2339+8 + ldr r0, .L2341+8 mov r2, r1 orr r3, r3, r7 str r3, [r4, #-1272] bl FlashReadPages ldr r3, [r4, #-1264] mov r1, r6 - ldr r0, .L2339+12 + ldr r0, .L2341+12 ldr r2, [r3] str r2, [sp] ldr r2, [r3, #4] @@ -13296,22 +13295,22 @@ FtlDumpSysBlock: ldr r3, [r4, #-1264] ldr r3, [r3] cmn r3, #1 - beq .L2332 - ldr r0, .L2339+16 + beq .L2334 + ldr r0, .L2341+16 mov r2, #4 ldr r1, [r4, #-1476] mov r3, #768 bl rknand_print_hex -.L2332: +.L2334: add r5, r5, #1 - b .L2331 -.L2338: + b .L2333 +.L2340: add sp, sp, #24 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L2340: +.L2342: .align 2 -.L2339: +.L2341: .word .LANCHOR2 .word .LANCHOR2-1666 .word .LANCHOR2-1276 @@ -13331,36 +13330,36 @@ Ftlscanalldata: mov r1, #0 .pad #36 sub sp, sp, #36 - ldr r0, .L2351 + ldr r0, .L2353 bl printk - ldr r6, .L2351+4 + ldr r6, .L2353+4 mov r5, #0 mov r4, r6 -.L2342: +.L2344: ldr r3, [r6, #-1284] cmp r5, r3 - bcs .L2350 + bcs .L2352 mov r0, r5 add r1, sp, #28 mov r2, #0 bl log2phys ubfx r3, r5, #0, #11 cmp r3, #0 - bne .L2343 - ldr r0, .L2351+8 + bne .L2345 + ldr r0, .L2353+8 mov r1, r5 ldr r2, [sp, #28] bl printk -.L2343: +.L2345: ldr r3, [sp, #28] cmn r3, #1 - beq .L2345 + beq .L2347 str r3, [r4, #-1272] mov r2, #0 ldr r3, [r4, #-1476] mov r1, #1 ldr r7, [r4, #-1444] - ldr r0, .L2351+12 + ldr r0, .L2353+12 str r3, [r4, #-1268] str r5, [r4, #-1260] str r7, [r4, #-1264] @@ -13369,14 +13368,14 @@ Ftlscanalldata: ldr r3, [r4, #-1276] cmn r3, #1 cmpne r3, #256 - beq .L2346 + beq .L2348 ldr r3, [r7, #8] cmp r3, r5 - beq .L2345 -.L2346: + beq .L2347 +.L2348: ldr r3, [r4, #-1264] ldr r2, [r4, #-1268] - ldr r0, .L2351+16 + ldr r0, .L2353+16 ldr r1, [r3, #4] str r1, [sp] ldr r1, [r3, #8] @@ -13391,16 +13390,16 @@ Ftlscanalldata: ldr r2, [r4, #-1272] ldr r3, [r3] bl printk -.L2345: +.L2347: add r5, r5, #1 - b .L2342 -.L2350: + b .L2344 +.L2352: add sp, sp, #36 @ sp needed ldmfd sp!, {r4, r5, r6, r7, pc} -.L2352: +.L2354: .align 2 -.L2351: +.L2353: .word .LC56 .word .LANCHOR2 .word .LC57 @@ -13419,16 +13418,16 @@ dump_map_info: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #52 sub sp, sp, #52 - ldr r5, .L2371 - ldr fp, .L2371+4 + ldr r5, .L2373 + ldr fp, .L2373+4 ldrh r6, [r5] add r5, r5, #1728 mov r8, r5 -.L2354: +.L2356: ldrh r3, [fp] cmp r3, r6 - bls .L2367 - ldr r1, .L2371+8 + bls .L2369 + ldr r1, .L2373+8 mov r7, #0 ldr r2, [r5, #-1504] mov r4, r7 @@ -13438,10 +13437,10 @@ dump_map_info: ldrh ip, [r1, #-28] ldrh r9, [r1, #52] str r1, [sp, #28] -.L2363: +.L2365: uxth r1, r7 cmp r1, ip - bcs .L2369 + bcs .L2371 str r3, [sp, #44] mov r1, r6 ldr r3, [sp, #28] @@ -13456,7 +13455,7 @@ dump_map_info: ldr ip, [sp, #36] ldr r2, [sp, #40] ldr r3, [sp, #44] - bne .L2355 + bne .L2357 mov r0, #36 mov r1, r1, asl #10 mla r0, r0, r4, r2 @@ -13470,24 +13469,24 @@ dump_map_info: bic r1, r1, #3 add r1, r10, r1 str r1, [r0, #12] -.L2355: +.L2357: add r7, r7, #1 - b .L2363 -.L2369: + b .L2365 +.L2371: cmp r4, #0 - beq .L2358 + beq .L2360 ldr r0, [r8, #-1504] mov r1, r4 mov r2, #1 mov r7, #0 bl FlashReadPages mov r9, #36 -.L2359: +.L2361: uxth r3, r7 cmp r3, r4 - bcs .L2358 + bcs .L2360 ldr r3, [r8, #-1504] - ldr r0, .L2371+12 + ldr r0, .L2373+12 mla r3, r9, r7, r3 add r7, r7, #1 ldmib r3, {r2, r3, ip} @@ -13504,33 +13503,33 @@ dump_map_info: str r3, [sp, #16] ldr r3, [ip] bl printk - b .L2359 -.L2358: + b .L2361 +.L2360: add r6, r6, #1 uxth r6, r6 - b .L2354 -.L2367: - ldr r4, .L2371+16 + b .L2356 +.L2369: + ldr r4, .L2373+16 mov r7, #0 - ldr r8, .L2371+20 -.L2362: + ldr r8, .L2373+20 +.L2364: ldrh r3, [r8] sxth r6, r7 - ldr r5, .L2371+16 + ldr r5, .L2373+16 cmp r6, r3 - bge .L2365 - ldr r9, .L2371+24 + bge .L2367 + ldr r9, .L2373+24 mov r6, r6, asl #1 mov r5, #0 -.L2366: +.L2368: ldrh r2, [r9] sxth r3, r5 add r5, r5, #1 cmp r3, r2 - bge .L2370 + bge .L2372 ldr r2, [r4, #-1404] mov r1, #1 - ldr r0, .L2371+28 + ldr r0, .L2373+28 ldrh r2, [r2, r6] orr r3, r3, r2, asl #10 mov r2, r1 @@ -13547,7 +13546,7 @@ dump_map_info: ldr r0, [r3, #8] str r0, [sp, #8] ldr r3, [r3, #12] - ldr r0, .L2371+32 + ldr r0, .L2373+32 str r3, [sp, #12] ldr r3, [r2] str r3, [sp, #16] @@ -13556,23 +13555,23 @@ dump_map_info: ldr r2, [r4, #-1276] ldr r3, [r4, #-1272] bl printk - b .L2366 -.L2370: + b .L2368 +.L2372: add r7, r7, #1 - b .L2362 -.L2365: + b .L2364 +.L2367: sub r4, r5, #1632 ldr r1, [r5, #-1404] ldr r3, [r5, #-1640] mov r2, #2 - ldr r0, .L2371+36 + ldr r0, .L2373+36 bl rknand_print_hex ldr r1, [r5, #-1376] ldrh r3, [r4] mov r2, #4 - ldr r0, .L2371+40 + ldr r0, .L2373+40 bl rknand_print_hex - ldr r0, .L2371+44 + ldr r0, .L2373+44 ldr r1, [r5, #-1372] mov r2, #4 ldrh r3, [r4] @@ -13580,9 +13579,9 @@ dump_map_info: @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} b rknand_print_hex -.L2372: +.L2374: .align 2 -.L2371: +.L2373: .word .LANCHOR2-1728 .word .LANCHOR2-1726 .word .LANCHOR2-1736 @@ -13618,7 +13617,7 @@ FtlMapTblRecovery: mov r2, r9, asl #2 ldr r8, [r0, #12] mov r0, r7 - ldr r5, .L2416 + ldr r5, .L2418 str r3, [sp, #8] bl ftl_memset mov r1, #0 @@ -13635,17 +13634,17 @@ FtlMapTblRecovery: mov r3, #1 str r3, [r4, #36] str r1, [sp, #4] -.L2374: +.L2376: ldrh r2, [sp, #4] ldr r3, [sp, #8] sxth fp, r2 cmp fp, r3 - bge .L2392 + bge .L2394 ldr r3, [sp, #8] sub r1, r3, #1 cmp fp, r1 mov r1, fp, asl #1 - bne .L2375 + bne .L2377 ldrh r0, [r8, r1] add r10, r8, r1 mov r1, #1 @@ -13659,31 +13658,31 @@ FtlMapTblRecovery: ldr r3, [sp, #12] strh r2, [r4] @ movhi ldr r3, [r3, fp, asl #2] - ldr fp, .L2416 + ldr fp, .L2418 str r3, [r4, #28] add r3, r0, #1 str r3, [sp, #4] -.L2376: +.L2378: ldr r2, [sp, #4] sxth r3, r8 cmp r3, r2 - bge .L2392 + bge .L2394 ldrh r2, [r10] mov r1, #1 - ldr r0, .L2416+4 + ldr r0, .L2418+4 orr r3, r3, r2, asl #10 mov r2, r1 str r3, [r5, #-1272] bl FlashReadPages - ldr r3, .L2416+8 - ldrb r3, [r3] @ zero_extendqisi2 + ldr r3, .L2418+8 + ldrb r3, [r3, #32] @ zero_extendqisi2 cmp r3, #0 - beq .L2377 + beq .L2379 ldr r3, [fp, #-1264] ldr r3, [r3, #12] cmp r3, #0 - beq .L2377 - ldr r2, .L2416+12 + beq .L2379 + ldr r2, .L2418+12 ldr r0, [fp, #-1268] str r3, [sp, #8] ldrh r1, [r2] @@ -13692,41 +13691,41 @@ FtlMapTblRecovery: cmp r3, r0 mvnne r3, #0 strne r3, [fp, #-1276] -.L2377: +.L2379: ldr r3, [fp, #-1276] cmn r3, #1 - beq .L2378 + beq .L2380 ldrh r3, [r6, #8] cmp r3, r9 - bcs .L2378 + bcs .L2380 ldrh r2, [r4, #4] ldrh r1, [r6] cmp r1, r2 ldreq r2, [fp, #-1272] streq r2, [r7, r3, asl #2] -.L2378: +.L2380: add r8, r8, #1 - b .L2376 -.L2392: + b .L2378 +.L2394: mov r0, r4 bl ftl_free_no_use_map_blk - ldr r3, .L2416+16 + ldr r3, .L2418+16 ldrh r2, [r4, #2] ldrh r3, [r3, #-2] cmp r2, r3 - bne .L2381 + bne .L2383 mov r0, r4 bl ftl_map_blk_alloc_new_blk - b .L2381 -.L2375: + b .L2383 +.L2377: ldr r2, [r5, #-1476] add r3, r8, r1 str r3, [sp, #16] - ldr r3, .L2416+20 + ldr r3, .L2418+20 str r2, [r5, #-1268] ldrh r1, [r8, r1] ldrh r2, [r3] - ldr r0, .L2416+4 + ldr r0, .L2418+4 sub r2, r2, #1 orr r2, r2, r1, asl #10 mov r1, #1 @@ -13735,26 +13734,26 @@ FtlMapTblRecovery: bl FlashReadPages ldr r2, [r5, #-1276] cmn r2, #1 - beq .L2394 + beq .L2396 ldrh r1, [r6] ldrh r2, [r4, #4] cmp r1, r2 - bne .L2394 + bne .L2396 ldrh r1, [r6, #8] movw r2, #64245 cmp r1, r2 - bne .L2394 + bne .L2396 mov r0, #0 mov fp, #8 mov lr, #4 -.L2383: - ldr r3, .L2416+20 +.L2385: + ldr r3, .L2418+20 uxth r2, r0 sxth r1, r2 ldrh ip, [r3] sub ip, ip, #1 cmp r1, ip - bge .L2386 + bge .L2388 ldr ip, [r10, #-1476] add r0, r0, #1 ldr r1, [ip, r1, asl #3] @@ -13763,32 +13762,32 @@ FtlMapTblRecovery: smlabbcc r2, r2, fp, lr ldrcc r2, [ip, r2] strcc r2, [r7, r1, asl #2] - b .L2383 -.L2394: + b .L2385 +.L2396: mov fp, #0 -.L2414: - ldr r3, .L2416+20 +.L2416: + ldr r3, .L2418+20 sxth r2, fp ldrh r1, [r3] cmp r2, r1 - bge .L2386 + bge .L2388 ldr r3, [sp, #16] - ldr r0, .L2416+4 + ldr r0, .L2418+4 ldrh r1, [r3] orr r2, r2, r1, asl #10 mov r1, #1 str r2, [r10, #-1272] mov r2, r1 bl FlashReadPages - ldr r2, .L2416+8 - ldrb r2, [r2] @ zero_extendqisi2 + ldr r2, .L2418+8 + ldrb r2, [r2, #32] @ zero_extendqisi2 cmp r2, #0 - beq .L2387 + beq .L2389 ldr r2, [r10, #-1264] ldr r2, [r2, #12] cmp r2, #0 - beq .L2387 - ldr r1, .L2416+12 + beq .L2389 + ldr r1, .L2418+12 ldr r0, [r10, #-1268] str r2, [sp, #20] ldrh r1, [r1] @@ -13797,27 +13796,27 @@ FtlMapTblRecovery: cmp r2, r0 mvnne r2, #0 strne r2, [r10, #-1276] -.L2387: +.L2389: ldr r2, [r10, #-1276] cmn r2, #1 - beq .L2388 + beq .L2390 ldrh r2, [r6, #8] cmp r2, r9 - bcs .L2388 + bcs .L2390 ldrh r1, [r4, #4] ldrh r0, [r6] cmp r0, r1 ldreq r1, [r10, #-1272] streq r1, [r7, r2, asl #2] -.L2388: +.L2390: add fp, fp, #1 - b .L2414 -.L2386: + b .L2416 +.L2388: ldr r3, [sp, #4] add r3, r3, #1 str r3, [sp, #4] - b .L2374 -.L2381: + b .L2376 +.L2383: mov r0, r4 bl ftl_map_blk_gc mov r0, r4 @@ -13826,9 +13825,9 @@ FtlMapTblRecovery: add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2417: +.L2419: .align 2 -.L2416: +.L2418: .word .LANCHOR2 .word .LANCHOR2-1276 .word .LANCHOR0 @@ -13846,13 +13845,13 @@ FtlLoadVonderInfo: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, lr} .save {r3, lr} - ldr r3, .L2420 + ldr r3, .L2422 sub r2, r3, #1648 add r0, r3, #1072 add r0, r0, #4 ldrh r2, [r2] strh r2, [r0, #10] @ movhi - ldr r2, .L2420+4 + ldr r2, .L2422+4 strh r2, [r0, #4] @ movhi sub r2, r3, #1280 ldrh r2, [r2, #-8] @@ -13871,9 +13870,9 @@ FtlLoadVonderInfo: bl FtlMapTblRecovery mov r0, #0 ldmfd sp!, {r3, pc} -.L2421: +.L2423: .align 2 -.L2420: +.L2422: .word .LANCHOR2 .word -3962 .fnend @@ -13888,7 +13887,7 @@ FtlL2PDataInit: stmfd sp!, {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} mov r1, #0 - ldr r4, .L2427 + ldr r4, .L2429 mvn r6, #0 ldr r2, [r4, #-1640] ldr r0, [r4, #-1400] @@ -13902,18 +13901,18 @@ FtlL2PDataInit: ldr r0, [r4, #-1360] mul r2, r2, r3 bl ftl_memset - ldr r0, .L2427+4 + ldr r0, .L2429+4 mov r1, #0 mov lr, #12 sub r7, r0, #28 mov r5, r1 -.L2423: +.L2425: ldrh r2, [r0] add ip, r1, #1 uxth r1, r1 - ldr r3, .L2427 + ldr r3, .L2429 cmp r2, r1 - bls .L2426 + bls .L2428 mul r8, lr, r1 ldr r3, [r4, #-1364] add r2, r3, r8 @@ -13928,16 +13927,16 @@ FtlL2PDataInit: add r2, r1, r2 mov r1, ip str r2, [r3, #8] - b .L2423 -.L2426: - ldr r2, .L2427+8 + b .L2425 +.L2428: + ldr r2, .L2429+8 movw r0, #1028 mvn r1, #0 strh r1, [r3, r0] @ movhi strh r1, [r2, #2] @ movhi ldr r1, [r3, #-1640] strh r1, [r2, #10] @ movhi - ldr r1, .L2427+12 + ldr r1, .L2429+12 strh r1, [r2, #4] @ movhi movw r1, #1144 ldrh r1, [r3, r1] @@ -13954,9 +13953,9 @@ FtlL2PDataInit: ldr r2, [r3, #-1376] str r2, [r3, #1052] ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L2428: +.L2430: .align 2 -.L2427: +.L2429: .word .LANCHOR2 .word .LANCHOR2-1630 .word .LANCHOR2+1028 @@ -13973,13 +13972,13 @@ FtlLoadMapInfo: stmfd sp!, {r3, lr} .save {r3, lr} bl FtlL2PDataInit - ldr r0, .L2431 + ldr r0, .L2433 bl FtlMapTblRecovery mov r0, #0 ldmfd sp!, {r3, pc} -.L2432: +.L2434: .align 2 -.L2431: +.L2433: .word .LANCHOR2+1028 .fnend .size FtlLoadMapInfo, .-FtlLoadMapInfo @@ -13992,16 +13991,16 @@ ftl_sb_update_avl_pages: @ frame_needed = 0, uses_anonymous_args = 0 mov r3, #0 strh r3, [r0, #4] @ movhi - ldr r3, .L2443 + ldr r3, .L2445 stmfd sp!, {r4, r5, lr} .save {r4, r5, lr} movw r4, #65535 ldrh lr, [r3, #-8] add r3, r2, #7 add r3, r0, r3, asl #1 -.L2434: +.L2436: cmp r2, lr - bcs .L2441 + bcs .L2443 ldrh ip, [r3, #2]! add r2, r2, #1 cmp ip, r4 @@ -14009,17 +14008,17 @@ ftl_sb_update_avl_pages: ldrneh ip, [r0, #4] addne ip, ip, #1 strneh ip, [r0, #4] @ movhi - b .L2434 -.L2441: - ldr r3, .L2443+4 + b .L2436 +.L2443: + ldr r3, .L2445+4 add ip, r0, #14 mov r2, #0 movw r5, #65535 ldrh r4, [r3, #-4] -.L2437: +.L2439: uxth r3, r2 cmp r3, lr - bcs .L2442 + bcs .L2444 ldrh r3, [ip, #2]! add r2, r2, #1 cmp r3, r5 @@ -14028,12 +14027,12 @@ ftl_sb_update_avl_pages: subne r3, r3, #1 rsbne r3, r1, r3 strneh r3, [r0, #4] @ movhi - b .L2437 -.L2442: - ldmfd sp!, {r4, r5, pc} + b .L2439 .L2444: + ldmfd sp!, {r4, r5, pc} +.L2446: .align 2 -.L2443: +.L2445: .word .LANCHOR2-1728 .word .LANCHOR2-1664 .fnend @@ -14052,20 +14051,20 @@ FtlReUsePrevPpa: ubfx r0, r1, #10, #16 str r1, [sp, #4] bl P2V_block_in_plane - ldr r6, .L2455 + ldr r6, .L2457 ldr r4, [r6, #-1408] mov r7, r0, asl #1 ldrh r3, [r4, r7] cmp r3, #0 addne r3, r3, #1 strneh r3, [r4, r7] @ movhi - bne .L2447 + bne .L2449 ldr r4, [r6, #876] cmp r4, #0 - beq .L2447 + beq .L2449 ldr r1, [r6, #-1356] add r2, r6, #880 - ldr lr, .L2455+4 + ldr lr, .L2457+4 movw r9, #65535 rsb r4, r1, r4 ldrh ip, [r2] @@ -14074,14 +14073,14 @@ FtlReUsePrevPpa: mul r4, lr, r4 mov lr, #6 uxth r4, r4 -.L2448: +.L2450: uxth r2, r3 cmp r2, ip - bcs .L2447 + bcs .L2449 cmp r4, r0 - bne .L2449 + bne .L2451 mov r1, r4 - ldr r0, .L2455+8 + ldr r0, .L2457+8 bl List_remove_node ldrh r3, [r8] mov r0, r4 @@ -14092,14 +14091,14 @@ FtlReUsePrevPpa: ldrh r3, [r2, r7] add r3, r3, #1 strh r3, [r2, r7] @ movhi - b .L2447 -.L2449: + b .L2449 +.L2451: mul r4, lr, r4 add r3, r3, #1 ldrh r4, [r1, r4] cmp r4, r9 - bne .L2448 -.L2447: + bne .L2450 +.L2449: mov r0, r5 add r1, sp, #4 mov r2, #1 @@ -14107,9 +14106,9 @@ FtlReUsePrevPpa: add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc} -.L2456: +.L2458: .align 2 -.L2455: +.L2457: .word .LANCHOR2 .word -1431655765 .word .LANCHOR2+876 @@ -14122,7 +14121,7 @@ make_superblock: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2471 + ldr r3, .L2473 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} .save {r4, r5, r6, r7, r8, r9, r10, lr} add r6, r0, #16 @@ -14133,10 +14132,10 @@ make_superblock: mov r5, #0 strh r5, [r0, #4] @ movhi strb r5, [r0, #7] -.L2458: +.L2460: uxth r3, r5 cmp r3, r8 - bcs .L2470 + bcs .L2472 ldrb r0, [r7, r5] @ zero_extendqisi2 add r6, r6, #2 ldrh r1, [r4] @@ -14150,9 +14149,9 @@ make_superblock: ldreqb r3, [r4, #7] @ zero_extendqisi2 addeq r3, r3, #1 streqb r3, [r4, #7] - b .L2458 -.L2470: - ldr r2, .L2471+4 + b .L2460 +.L2472: + ldr r2, .L2473+4 ldrb r1, [r4, #7] @ zero_extendqisi2 sub r3, r2, #1664 ldrh r3, [r3, #-4] @@ -14162,7 +14161,7 @@ make_superblock: strb r3, [r4, #9] ldr r3, [r2, #-1872] cmp r3, #0 - beq .L2461 + beq .L2463 ldrh r3, [r4] ldr r2, [r2, #-1416] mov r3, r3, asl #1 @@ -14170,17 +14169,17 @@ make_superblock: cmp r3, #79 movls r3, #1 strlsb r3, [r4, #9] -.L2461: - ldr r3, .L2471+8 +.L2463: + ldr r3, .L2473+8 mov r0, #0 - ldrb r3, [r3] @ zero_extendqisi2 + ldrb r3, [r3, #32] @ zero_extendqisi2 cmp r3, #0 movne r3, #1 strneb r3, [r4, #9] ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L2472: +.L2474: .align 2 -.L2471: +.L2473: .word .LANCHOR2-1728 .word .LANCHOR2 .word .LANCHOR0 @@ -14196,11 +14195,11 @@ FtlLoadSysInfo: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r1, #0 - ldr r4, .L2502 + ldr r4, .L2504 .pad #44 sub sp, sp, #44 movw r7, #1128 - ldr r9, .L2502+4 + ldr r9, .L2504+4 sub r6, r4, #1728 ldr r3, [r4, #-1476] ldrh r2, [r6] @@ -14213,11 +14212,11 @@ FtlLoadSysInfo: ldrh r0, [r4, r7] movw r3, #65535 cmp r0, r3 - bne .L2474 -.L2485: + bne .L2476 +.L2487: mvn r0, #0 - b .L2475 -.L2474: + b .L2477 +.L2476: mov r1, #1 bl FtlGetLastWrittenPage ldrh r3, [r4, r7] @@ -14226,29 +14225,29 @@ FtlLoadSysInfo: str r3, [sp, #28] add r0, r0, #1 strh r0, [r9, #2] @ movhi -.L2476: +.L2478: sxth r3, r5 cmp r3, #0 - blt .L2484 + blt .L2486 ldrsh fp, [sp, #28] mov r1, #1 - ldr r0, .L2502+8 + ldr r0, .L2504+8 mov r2, r1 orr r3, r3, fp, asl #10 str r3, [r4, #-1272] ldr r3, [r4, #-1476] str r3, [r4, #-1268] bl FlashReadPages - ldr r3, .L2502+12 - ldrb r3, [r3] @ zero_extendqisi2 + ldr r3, .L2504+12 + ldrb r3, [r3, #32] @ zero_extendqisi2 cmp r3, #0 - beq .L2477 + beq .L2479 ldr r8, [r7, #-1264] ldr r3, [r8, #12] cmp r3, #0 - beq .L2477 + beq .L2479 ldr r2, [r7, #-1268] - ldr r10, .L2502+16 + ldr r10, .L2504+16 str r3, [sp, #36] mov r0, r2 str r2, [sp, #32] @@ -14256,14 +14255,14 @@ FtlLoadSysInfo: bl js_hash ldr r3, [sp, #36] cmp r3, r0 - beq .L2477 + beq .L2479 cmp r5, #0 ldr r2, [sp, #32] - bne .L2478 + bne .L2480 ldrh r1, [r9, #4] - ldr ip, .L2502+4 + ldr ip, .L2504+4 cmp fp, r1 - beq .L2478 + beq .L2480 ldr r0, [r8] ldrh r1, [ip] str ip, [sp, #28] @@ -14274,7 +14273,7 @@ FtlLoadSysInfo: str r3, [sp, #12] str r0, [sp, #8] ldr r3, [r2] - ldr r0, .L2502+20 + ldr r0, .L2504+20 str r3, [sp, #16] ldr r3, [r7, #-1272] ldr r2, [r7, #-1276] @@ -14283,26 +14282,26 @@ FtlLoadSysInfo: ldr ip, [sp, #28] ldrh r3, [ip, #4] str r3, [sp, #28] - b .L2480 -.L2478: + b .L2482 +.L2480: mvn r3, #0 str r3, [r4, #-1276] -.L2477: +.L2479: ldr r3, [r4, #-1276] cmn r3, #1 - beq .L2480 + beq .L2482 ldr r3, [r7, #-1476] - ldr r2, .L2502+24 + ldr r2, .L2504+24 ldr r3, [r3] cmp r3, r2 - bne .L2480 + bne .L2482 ldr r3, [r7, #-1444] ldrh r2, [r3] movw r3, #61604 cmp r2, r3 - bne .L2480 -.L2484: - ldr r5, .L2502 + bne .L2482 +.L2486: + ldr r5, .L2504 mov r2, #48 ldr r1, [r4, #-1268] add r0, r5, #816 @@ -14327,7 +14326,7 @@ FtlLoadSysInfo: sub r3, r5, #1616 ldrh r3, [r3, #-12] cmp r3, #0 - beq .L2482 + beq .L2484 ldrh r2, [r7] ldr r1, [r5, #-1268] ldr r0, [r5, #-1372] @@ -14340,17 +14339,17 @@ FtlLoadSysInfo: add r1, r1, r3, asl #2 mov r2, r2, asl #2 bl ftl_memcpy - b .L2482 -.L2480: + b .L2484 +.L2482: sub r5, r5, #1 uxth r5, r5 - b .L2476 -.L2482: + b .L2478 +.L2484: ldr r2, [r4, #816] - ldr r3, .L2502+24 - ldr r5, .L2502 + ldr r3, .L2504+24 + ldr r5, .L2504 cmp r2, r3 - bne .L2485 + bne .L2487 sub r2, r5, #1712 add r8, r5, #816 ldrb r1, [r5, #826] @ zero_extendqisi2 @@ -14358,10 +14357,10 @@ FtlLoadSysInfo: ldrh r3, [r8, #8] cmp r1, r2 strh r3, [r9, #6] @ movhi - bne .L2485 + bne .L2487 sub r2, r5, #1664 sub r1, r5, #1648 - ldr r7, .L2502+28 + ldr r7, .L2504+28 ldrh r2, [r2, #-4] ldrh r1, [r1, #-14] str r3, [r7, #1156] @@ -14371,7 +14370,7 @@ FtlLoadSysInfo: ldrh r1, [r6, #-8] mov r6, #0 str r2, [r5, #-2740] - ldr r2, .L2502+32 + ldr r2, .L2504+32 ldrh r0, [r2, #6] ldr r2, [r5, #-1724] rsb r0, r0, r2 @@ -14395,7 +14394,7 @@ FtlLoadSysInfo: strb r3, [r5, #892] movw r3, #1164 strh r2, [r7, r3] @ movhi - ldr r3, .L2502+36 + ldr r3, .L2504+36 ldrh r2, [r8, #18] strh r6, [r3, #2] @ movhi add r3, r5, #932 @@ -14434,44 +14433,44 @@ FtlLoadSysInfo: ldr r3, [r4, #852] strhi r0, [r5, #-1616] cmp r3, r2 - ldrhi r2, .L2502 + ldrhi r2, .L2504 strhi r3, [r2, #-1612] movw r3, #65535 cmp r1, r3 - beq .L2488 - ldr r0, .L2502+40 + beq .L2490 + ldr r0, .L2504+40 bl make_superblock -.L2488: +.L2490: ldrh r2, [r6] movw r3, #65535 cmp r2, r3 - beq .L2489 - ldr r0, .L2502+44 + beq .L2491 + ldr r0, .L2504+44 bl make_superblock -.L2489: +.L2491: ldrh r2, [r9] movw r3, #65535 cmp r2, r3 - beq .L2490 - ldr r0, .L2502+48 + beq .L2492 + ldr r0, .L2504+48 bl make_superblock -.L2490: +.L2492: movw r3, #1164 ldrh r2, [r7, r3] movw r3, #65535 cmp r2, r3 - beq .L2491 - ldr r0, .L2502+36 + beq .L2493 + ldr r0, .L2504+36 bl make_superblock -.L2491: +.L2493: mov r0, #0 -.L2475: +.L2477: add sp, sp, #44 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2503: +.L2505: .align 2 -.L2502: +.L2504: .word .LANCHOR2 .word .LANCHOR2+1128 .word .LANCHOR2-1276 @@ -14501,17 +14500,17 @@ FtlDumpBlockInfo: sub sp, sp, #100 mov r4, r1 bl P2V_block_in_plane - ldr r7, .L2518 - ldr r1, .L2518+4 + ldr r7, .L2520 + ldr r1, .L2520+4 sub r5, r7, #1664 ldrh r9, [r5, #-4] mov r6, r0 - ldr r0, .L2518+8 + ldr r0, .L2520+8 bl printk ldr r2, [r7, #-1408] mov r3, r6, asl #1 mov r1, r6 - ldr r0, .L2518+12 + ldr r0, .L2520+12 ldrh r2, [r2, r3] bl printk add r0, sp, #96 @@ -14525,22 +14524,22 @@ FtlDumpBlockInfo: cmp r3, #0 moveq r4, r3 str r7, [sp, #44] - beq .L2505 + beq .L2507 mov r0, r6 bl ftl_get_blk_mode cmp r0, #1 mov r4, r0 ldreqh r9, [r5, #-2] -.L2505: - ldr r0, .L2518+16 +.L2507: + ldr r0, .L2520+16 mov r1, r4 mov r2, r9 ldrh r3, [r5, #-4] bl printk - ldr r8, .L2518 + ldr r8, .L2520 mov r6, #0 -.L2506: - ldr r3, .L2518+20 +.L2508: + ldr r3, .L2520+20 mov r2, #0 add r0, sp, #62 mov r5, r2 @@ -14552,20 +14551,20 @@ FtlDumpBlockInfo: str r3, [sp, #28] ldr r3, [r8, #-1464] str r3, [sp, #32] - ldr r3, .L2518+24 + ldr r3, .L2520+24 ldrh r3, [r3] str r3, [sp, #36] ldr r3, [r8, #-1436] str r3, [sp, #40] - ldr r3, .L2518+28 + ldr r3, .L2520+28 ldrh ip, [r3] -.L2507: +.L2509: uxth r3, r2 cmp r3, r7 - bcs .L2516 + bcs .L2518 ldrh r3, [r0, #2]! cmp r3, lr - beq .L2508 + beq .L2510 ldr r1, [sp, #28] orr r3, r6, r3, asl #10 mla r1, r10, r5, r1 @@ -14589,20 +14588,20 @@ FtlDumpBlockInfo: bic r3, r3, #3 add r3, fp, r3 str r3, [r1, #12] -.L2508: +.L2510: add r2, r2, #1 - b .L2507 -.L2516: + b .L2509 +.L2518: ldr r0, [r8, #-1504] mov r1, r5 mov r2, r4 mov r10, #0 bl FlashReadPages mov fp, #36 -.L2510: +.L2512: uxth r3, r10 cmp r3, r5 - bcs .L2517 + bcs .L2519 ldr r3, [sp, #44] mul r2, fp, r10 ldrh r1, [sp, #48] @@ -14622,25 +14621,25 @@ FtlDumpBlockInfo: ldr r3, [r0] str r3, [sp, #16] ldr r3, [r0, #4] - ldr r0, .L2518+32 + ldr r0, .L2520+32 str r3, [sp, #20] ldr r2, [lr, r2] ldr r3, [ip, #4] bl printk - b .L2510 -.L2517: + b .L2512 +.L2519: add r6, r6, #1 uxth r6, r6 cmp r6, r9 - bne .L2506 -.L2512: + bne .L2508 +.L2514: mov r0, #0 add sp, sp, #100 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2519: +.L2521: .align 2 -.L2518: +.L2520: .word .LANCHOR2 .word .LANCHOR3+160 .word .LC50 @@ -14663,18 +14662,18 @@ FtlScanAllBlock: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #92 sub sp, sp, #92 - ldr r0, .L2535 + ldr r0, .L2537 mov r7, #0 - ldr r1, .L2535+4 + ldr r1, .L2537+4 bl printk - ldr r5, .L2535+8 + ldr r5, .L2537+8 mov r6, r5 -.L2521: - ldr r3, .L2535+12 +.L2523: + ldr r3, .L2537+12 uxth r4, r7 ldrh r3, [r3] cmp r3, r4 - bls .L2531 + bls .L2533 add r8, sp, #88 mov r0, r4 movw r9, #65535 @@ -14686,11 +14685,11 @@ FtlScanAllBlock: mov r1, r4 ldrh r2, [ip, r2] mov r3, r0 - ldr r0, .L2535+16 + ldr r0, .L2537+16 bl printk mov r0, r8 bl make_superblock - ldr r3, .L2535+20 + ldr r3, .L2537+20 ldr lr, [r5, #-1436] ldrh r2, [r3] ldrh ip, [r3, #78] @@ -14703,14 +14702,14 @@ FtlScanAllBlock: str r2, [sp, #36] mov r2, #0 mov r4, r2 -.L2522: +.L2524: ldr r1, [sp, #28] uxth r3, r2 cmp r3, r1 - bcs .L2532 + bcs .L2534 ldrh r3, [r0, #2]! cmp r3, r9 - beq .L2523 + beq .L2525 ldr r1, [sp, #32] mov r3, r3, asl #10 mla r1, r10, r4, r1 @@ -14732,20 +14731,20 @@ FtlScanAllBlock: bic r3, r3, #3 add r3, lr, r3 str r3, [r1, #12] -.L2523: +.L2525: add r2, r2, #1 - b .L2522 -.L2532: + b .L2524 +.L2534: ldr r0, [r6, #-1504] mov r1, r4 mov r2, #0 mov r8, #0 bl FlashReadPages mov r9, #36 -.L2525: +.L2527: uxth r3, r8 cmp r3, r4 - bcs .L2533 + bcs .L2535 mul r2, r9, r8 ldr lr, [r6, #-1504] ldrh r1, [sp, #40] @@ -14764,23 +14763,23 @@ FtlScanAllBlock: ldr r3, [r0] str r3, [sp, #16] ldr r3, [r0, #4] - ldr r0, .L2535+24 + ldr r0, .L2537+24 str r3, [sp, #20] ldr r2, [lr, r2] ldr r3, [ip, #4] bl printk - b .L2525 -.L2533: + b .L2527 +.L2535: ldr r0, [r6, #-1504] mov r1, r4 mov r2, #1 mov r8, #0 bl FlashReadPages mov r9, #36 -.L2527: +.L2529: uxth r3, r8 cmp r3, r4 - bcs .L2534 + bcs .L2536 mul r2, r9, r8 ldr lr, [r6, #-1504] ldrh r1, [sp, #40] @@ -14799,23 +14798,23 @@ FtlScanAllBlock: ldr r3, [r0] str r3, [sp, #16] ldr r3, [r0, #4] - ldr r0, .L2535+28 + ldr r0, .L2537+28 str r3, [sp, #20] ldr r2, [lr, r2] ldr r3, [ip, #4] bl printk - b .L2527 -.L2534: + b .L2529 +.L2536: add r7, r7, #1 - b .L2521 -.L2531: + b .L2523 +.L2533: mov r0, #0 add sp, sp, #92 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2536: +.L2538: .align 2 -.L2535: +.L2537: .word .LC50 .word .LANCHOR3+180 .word .LANCHOR2 @@ -14836,7 +14835,7 @@ SupperBlkListInit: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r2, #6 - ldr r4, .L2549 + ldr r4, .L2551 mov r1, #0 .pad #28 sub sp, sp, #28 @@ -14861,15 +14860,15 @@ SupperBlkListInit: strh r3, [r0, #-10] @ movhi str r1, [sp, #8] str r2, [sp, #12] -.L2538: - ldr r3, .L2549+4 +.L2540: + ldr r3, .L2551+4 uxth r7, r5 sxth r10, r7 ldrh r2, [r3] cmp r10, r2 - bge .L2545 + bge .L2547 sub r3, r3, #8 - ldr r2, .L2549+8 + ldr r2, .L2551+8 mov ip, r7 ldrh r3, [r3] str r3, [sp] @@ -14877,11 +14876,11 @@ SupperBlkListInit: mov r2, #0 mov r6, r2 str r3, [sp, #4] -.L2546: +.L2548: ldr r3, [sp] sxth r1, r2 cmp r1, r3 - bge .L2548 + bge .L2550 add r1, r4, r1 str r2, [sp, #20] str ip, [sp, #16] @@ -14896,54 +14895,54 @@ SupperBlkListInit: add r2, r2, #1 addeq r6, r3, r6 uxtheq r6, r6 - b .L2546 -.L2548: + b .L2548 +.L2550: cmp r6, #0 - beq .L2541 + beq .L2543 sxth r1, r6 mov r0, #32768 bl __aeabi_idiv uxth r6, r0 - b .L2542 -.L2541: + b .L2544 +.L2543: sxth r7, r7 ldr r2, [r4, #-1408] mvn r1, #0 mov r7, r7, asl #1 strh r1, [r2, r7] @ movhi -.L2542: +.L2544: mov r1, r10, asl #1 ldr r2, [r4, #-1356] add r0, r1, r10 add r2, r2, r0, asl #1 strh r6, [r2, #4] @ movhi - ldr r2, .L2549+12 + ldr r2, .L2551+12 ldrh r0, [r2] cmp r10, r0 - beq .L2543 + beq .L2545 ldrh r0, [r2, #48] cmp r10, r0 - beq .L2543 + beq .L2545 ldrh r2, [r2, #96] cmp r10, r2 - beq .L2543 + beq .L2545 ldr r3, [fp, #-1408] uxth r0, r5 ldrh r3, [r3, r1] cmp r3, #0 - bne .L2544 + bne .L2546 add r8, r8, #1 uxth r8, r8 bl INSERT_FREE_LIST - b .L2543 -.L2544: + b .L2545 +.L2546: add r9, r9, #1 uxth r9, r9 bl INSERT_DATA_LIST -.L2543: - add r5, r5, #1 - b .L2538 .L2545: + add r5, r5, #1 + b .L2540 +.L2547: ldr r3, [sp, #8] mov r0, #0 strh r9, [r3] @ movhi @@ -14952,9 +14951,9 @@ SupperBlkListInit: add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2550: +.L2552: .align 2 -.L2549: +.L2551: .word .LANCHOR2 .word .LANCHOR2-1728 .word .LANCHOR2-1668 @@ -14969,19 +14968,19 @@ Ftl_save_ext_data: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L2553 - ldr r2, .L2553+4 + ldr r3, .L2555 + ldr r2, .L2555+4 ldr r1, [r3, #1212] cmp r1, r2 bxne lr - ldr r2, .L2553+8 + ldr r2, .L2555+8 mov r0, #0 str r2, [r3, #1216] ldr r2, [r3, #1724] str r2, [r3, #1300] ldr r2, [r3, #1728] str r2, [r3, #1304] - ldr r2, .L2553+12 + ldr r2, .L2555+12 ldr r1, [r2, #-1608] str r1, [r3, #1220] ldr r1, [r2, #-1604] @@ -15007,11 +15006,11 @@ Ftl_save_ext_data: str r1, [r3, #1272] mov r1, #1 str r2, [r3, #1276] - ldr r2, .L2553+16 + ldr r2, .L2555+16 b FtlVendorPartWrite -.L2554: +.L2556: .align 2 -.L2553: +.L2555: .word .LANCHOR4 .word 1179929683 .word 1342177379 @@ -15028,17 +15027,17 @@ FtlEctTblFlush: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, lr} .save {r3, lr} - ldr r3, .L2563 + ldr r3, .L2565 ldr r2, [r3, #-1872] cmp r2, #0 moveq r2, #32 - beq .L2556 + beq .L2558 ldr r2, [r3, #-1568] cmp r2, #39 movhi r2, #32 movls r2, #4 -.L2556: - ldr lr, .L2563+4 +.L2558: + ldr lr, .L2565+4 movw ip, #1732 ldrh r1, [lr, ip] cmp r1, #31 @@ -15046,22 +15045,22 @@ FtlEctTblFlush: strlsh r1, [lr, ip] @ movhi movls r2, #1 cmp r0, #0 - bne .L2558 + bne .L2560 ldr r1, [r3, #-1420] ldr r0, [r1, #20] ldr r1, [r1, #16] add r2, r2, r0 cmp r1, r2 - bcc .L2559 -.L2558: + bcc .L2561 +.L2560: ldr r2, [r3, #-1420] mov r0, #64 ldr r1, [r2, #16] str r1, [r2, #20] - ldr r1, .L2563+8 + ldr r1, .L2565+8 str r1, [r2] ldr r2, [r3, #-1420] - ldr r3, .L2563+12 + ldr r3, .L2565+12 ldrh r1, [r3, #-4] mov r3, r1, asl #9 str r3, [r2, #12] @@ -15072,12 +15071,12 @@ FtlEctTblFlush: str r3, [r2, #4] bl FtlVendorPartWrite bl Ftl_save_ext_data -.L2559: +.L2561: mov r0, #0 ldmfd sp!, {r3, pc} -.L2564: +.L2566: .align 2 -.L2563: +.L2565: .word .LANCHOR2 .word .LANCHOR4 .word 1112818501 @@ -15094,25 +15093,25 @@ Ftl_load_ext_data: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r0, #0 - ldr r5, .L2571 + ldr r5, .L2573 mov r1, #1 - ldr r2, .L2571+4 + ldr r2, .L2573+4 bl FtlVendorPartRead - ldr r4, .L2571+8 + ldr r4, .L2573+8 ldr r3, [r5, #1212] cmp r3, r4 - beq .L2566 - ldr r0, .L2571+4 + beq .L2568 + ldr r0, .L2573+4 mov r1, #0 mov r2, #512 bl ftl_memset str r4, [r5, #1212] -.L2566: +.L2568: ldr r2, [r5, #1212] - ldr r3, .L2571 + ldr r3, .L2573 cmp r2, r4 - ldr r4, .L2571+12 - bne .L2567 + ldr r4, .L2573+12 + bne .L2569 ldr r2, [r3, #1300] str r2, [r3, #1724] ldr r2, [r3, #1304] @@ -15139,29 +15138,29 @@ Ftl_load_ext_data: ldr r3, [r3, #1272] str r2, [r4, #-1568] str r3, [r4, #-1620] -.L2567: +.L2569: ldr r0, [r5, #1280] mov r2, #0 - ldr r1, .L2571+16 - ldr r3, .L2571+12 + ldr r1, .L2573+16 + ldr r3, .L2573+12 cmp r0, r1 str r2, [r4, #-1624] - bne .L2568 + bne .L2570 ldrb r1, [r3, #-2744] @ zero_extendqisi2 cmp r1, r2 - beq .L2569 - ldr r3, .L2571 + beq .L2571 + ldr r3, .L2573 str r2, [r3, #1280] bl Ftl_save_ext_data - b .L2568 -.L2569: - ldr r0, .L2571+20 + b .L2570 +.L2571: + ldr r0, .L2573+20 mov r2, #1 - ldr r1, .L2571+24 + ldr r1, .L2573+24 str r2, [r3, #-1872] bl printk -.L2568: - ldr r3, .L2571+28 +.L2570: + ldr r3, .L2573+28 ldr r2, [r4, #-1580] ldr r0, [r4, #-1584] ldrh r1, [r3, #-12] @@ -15170,9 +15169,9 @@ Ftl_load_ext_data: bl __aeabi_uidiv str r0, [r5, #1736] ldmfd sp!, {r3, r4, r5, pc} -.L2572: +.L2574: .align 2 -.L2571: +.L2573: .word .LANCHOR4 .word .LANCHOR4+1212 .word 1179929683 @@ -15194,68 +15193,68 @@ ftl_scan_all_ppa: .save {r4, r5, r6, r7, r8, r9, r10, lr} .pad #24 sub sp, sp, #24 - ldr r7, .L2592 - ldr r9, .L2592+4 + ldr r7, .L2594 + ldr r9, .L2594+4 ldrh r4, [r7, #-6] add r7, r7, #1664 sub r4, r4, #16 mov r5, r7 -.L2574: +.L2576: ldrh r3, [r9] cmp r4, r3 - bge .L2590 + bge .L2592 uxth r10, r4 mov r0, r10 bl ftl_get_blk_mode ldrb r3, [r7, #-2744] @ zero_extendqisi2 cmp r3, #0 - beq .L2575 - ldr r3, .L2592+8 + beq .L2577 + ldr r3, .L2594+8 ldrh r2, [r3] cmp r4, r2 - bge .L2576 + bge .L2578 ldrh r3, [r3, #74] cmp r4, r3 - blt .L2576 -.L2575: + blt .L2578 +.L2577: cmp r0, #1 - bne .L2577 -.L2576: - ldr r3, .L2592+12 + bne .L2579 +.L2578: + ldr r3, .L2594+12 mov r6, #-2147483648 ldrh r8, [r3] - b .L2578 -.L2577: - ldr r3, .L2592+16 + b .L2580 +.L2579: + ldr r3, .L2594+16 mov r6, #0 ldrh r8, [r3] -.L2578: +.L2580: mov r1, r4 mov r2, r8 mov r3, r6 - ldr r0, .L2592+20 + ldr r0, .L2594+20 bl printk mov r0, r10 bl FtlBbmIsBadBlock cmp r0, #0 - beq .L2579 - ldr r0, .L2592+24 + beq .L2581 + ldr r0, .L2594+24 mov r1, r4 mov r2, r8 mov r3, r6 bl printk -.L2579: +.L2581: add r6, r6, r4, asl #10 mov r10, #0 -.L2580: +.L2582: cmp r10, r8 - beq .L2591 + beq .L2593 add r3, r6, r10 str r3, [r5, #-1272] ldr r3, [r5, #-1476] mov r2, #0 mov r1, #1 - ldr r0, .L2592+28 + ldr r0, .L2594+28 str r2, [r5, #-1276] add r10, r10, #1 str r3, [r5, #-1268] @@ -15264,7 +15263,7 @@ ftl_scan_all_ppa: bl FlashReadPages ldr r3, [r5, #-1264] ldr r2, [r5, #-1268] - ldr r0, .L2592+32 + ldr r0, .L2594+32 ldr r1, [r3, #4] str r1, [sp] ldr r1, [r3, #8] @@ -15279,20 +15278,20 @@ ftl_scan_all_ppa: ldr r2, [r5, #-1276] ldr r3, [r3] bl printk - b .L2580 -.L2591: + b .L2582 +.L2593: add r4, r4, #1 - b .L2574 -.L2590: - ldr r0, .L2592+36 - ldr r1, .L2592+40 + b .L2576 +.L2592: + ldr r0, .L2594+36 + ldr r1, .L2594+40 add sp, sp, #24 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} b printk -.L2593: +.L2595: .align 2 -.L2592: +.L2594: .word .LANCHOR2-1664 .word .LANCHOR2-1670 .word .LANCHOR2-1728 @@ -15316,16 +15315,16 @@ update_multiplier_value: stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, lr} .save {r3, r4, r5, r6, r7, r8, r9, lr} mov r5, #0 - ldr r3, .L2604 + ldr r3, .L2606 mov r7, r0 mov r4, r5 add r6, r3, #20 ldrh r8, [r3, #-8] ldrh r9, [r3, #60] -.L2595: +.L2597: uxth r3, r5 cmp r3, r8 - bcs .L2603 + bcs .L2605 ldrb r0, [r6, r5] @ zero_extendqisi2 mov r1, r7 bl V2P_block @@ -15334,25 +15333,25 @@ update_multiplier_value: cmp r0, #0 addeq r4, r4, r9 uxtheq r4, r4 - b .L2595 -.L2603: + b .L2597 +.L2605: cmp r4, #0 - beq .L2598 + beq .L2600 mov r1, r4 mov r0, #32768 bl __aeabi_idiv uxth r4, r0 -.L2598: - ldr r3, .L2604+4 +.L2600: + ldr r3, .L2606+4 mov r2, #6 mov r0, #0 ldr r3, [r3, #-1356] mla r7, r2, r7, r3 strh r4, [r7, #4] @ movhi ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, pc} -.L2605: +.L2607: .align 2 -.L2604: +.L2606: .word .LANCHOR2-1728 .word .LANCHOR2 .fnend @@ -15365,13 +15364,13 @@ GetFreeBlockMinEraseCount: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L2609 + ldr r2, .L2611 ldr r0, [r2, #876] cmp r0, #0 bxeq lr ldr r3, [r2, #-1356] rsb r0, r3, r0 - ldr r3, .L2609+4 + ldr r3, .L2611+4 mov r0, r0, asr #1 mul r0, r3, r0 ldr r3, [r2, #-1416] @@ -15379,9 +15378,9 @@ GetFreeBlockMinEraseCount: mov r0, r0, asl #1 ldrh r0, [r3, r0] bx lr -.L2610: +.L2612: .align 2 -.L2609: +.L2611: .word .LANCHOR2 .word -1431655765 .fnend @@ -15393,10 +15392,10 @@ GetFreeBlockMaxEraseCount: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r1, .L2621 + ldr r1, .L2623 ldr r3, [r1, #876] cmp r3, #0 - beq .L2617 + beq .L2619 add r2, r1, #880 stmfd sp!, {r4, r5, lr} .save {r4, r5, lr} @@ -15410,33 +15409,33 @@ GetFreeBlockMaxEraseCount: mov r3, r3, asr #1 cmp r0, r2 uxthgt r0, r2 - ldr r2, .L2621+4 + ldr r2, .L2623+4 mul r3, r2, r3 mov r2, #0 uxth r3, r3 -.L2614: +.L2616: uxth lr, r2 cmp lr, r0 - bcs .L2616 + bcs .L2618 mul lr, r4, r3 add r2, r2, #1 ldrh lr, [ip, lr] cmp lr, r5 - bne .L2618 -.L2616: + bne .L2620 +.L2618: ldr r2, [r1, #-1416] mov r3, r3, asl #1 ldrh r0, [r2, r3] ldmfd sp!, {r4, r5, pc} -.L2618: +.L2620: mov r3, lr - b .L2614 -.L2617: + b .L2616 +.L2619: mov r0, r3 bx lr -.L2622: +.L2624: .align 2 -.L2621: +.L2623: .word .LANCHOR2 .word -1431655765 .fnend @@ -15451,35 +15450,35 @@ FtlPrintInfo2buf: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} .save {r4, r5, r6, r7, r8, r9, r10, lr} mov r7, r0 - ldr r6, .L2634 + ldr r6, .L2636 add r5, r7, #12 - ldr r1, .L2634+4 + ldr r1, .L2636+4 .pad #32 sub sp, sp, #32 bl strcpy mov r0, r5 - ldr r1, .L2634+8 + ldr r1, .L2636+8 ldr r2, [r6, #-2772] bl sprintf - ldr r1, .L2634+12 + ldr r1, .L2636+12 ldr r2, [r6, #-1652] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r3, .L2634+16 + ldr r3, .L2636+16 ldr r3, [r3, #3444] cmp r3, #1 add r4, r5, r0 - bne .L2629 + bne .L2631 add r0, sp, #16 add r1, sp, #20 add r2, sp, #24 add r3, sp, #28 bl NandcGetTimeCfg mov r0, r4 - ldr r1, .L2634+20 + ldr r1, .L2636+20 add r10, r6, #880 - ldr r8, .L2634+24 + ldr r8, .L2636+24 add r9, r6, #816 ldr r3, [sp, #24] ldr r2, [sp, #16] @@ -15488,69 +15487,69 @@ FtlPrintInfo2buf: str r3, [sp, #4] ldr r3, [sp, #20] bl sprintf - ldr r1, .L2634+28 + ldr r1, .L2636+28 add r4, r4, r0 add r5, r4, #10 mov r0, r4 sub r4, r6, #1344 bl strcpy mov r0, r5 - ldr r1, .L2634+32 + ldr r1, .L2636+32 ldr r2, [r6, #-1284] bl sprintf - ldr r1, .L2634+36 + ldr r1, .L2636+36 ldr r2, [r6, #1124] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L2634+40 + ldr r1, .L2636+40 ldr r2, [r6, #-1588] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L2634+44 + ldr r1, .L2636+44 ldr r2, [r6, #-1600] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L2634+48 + ldr r1, .L2636+48 ldr r2, [r6, #-1604] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L2634+52 + ldr r1, .L2636+52 ldr r2, [r6, #-1596] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L2634+56 + ldr r1, .L2636+56 ldr r2, [r6, #-1592] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L2634+60 + ldr r1, .L2636+60 ldr r2, [r6, #-1608] add r5, r5, r0 mov r0, r5 bl sprintf ldr r2, [r8, #1724] - ldr r1, .L2634+64 + ldr r1, .L2636+64 mov r2, r2, lsr #11 add r5, r5, r0 mov r0, r5 bl sprintf ldr r2, [r8, #1728] - ldr r1, .L2634+68 + ldr r1, .L2636+68 mov r2, r2, lsr #11 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L2634+72 + ldr r1, .L2636+72 ldr r2, [r6, #-1616] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L2634+76 + ldr r1, .L2636+76 ldr r2, [r6, #-1612] add r5, r5, r0 mov r0, r5 @@ -15558,221 +15557,221 @@ FtlPrintInfo2buf: add r5, r5, r0 bl FtlBbtCalcTotleCnt ldrh r2, [r4, #2] - ldr r1, .L2634+80 + ldr r1, .L2636+80 mov r3, r0 mov r0, r5 bl sprintf - ldr r1, .L2634+84 + ldr r1, .L2636+84 ldrh r2, [r10] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L2634+88 + ldr r1, .L2636+88 ldr r2, [r6, #-1584] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L2634+92 + ldr r1, .L2636+92 ldr r2, [r6, #-1580] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L2634+96 + ldr r1, .L2636+96 ldr r2, [r8, #1736] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L2634+100 + ldr r1, .L2636+100 ldr r2, [r6, #-1576] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L2634+104 + ldr r1, .L2636+104 ldr r2, [r6, #-1572] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L2634+108 + ldr r1, .L2636+108 ldr r2, [r6, #-1568] add r5, r5, r0 mov r0, r5 bl sprintf ldrh r2, [r9, #30] - ldr r1, .L2634+112 + ldr r1, .L2636+112 add r5, r5, r0 mov r0, r5 bl sprintf ldrh r2, [r9, #28] - ldr r1, .L2634+116 + ldr r1, .L2636+116 movw r9, #1164 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L2634+120 + ldr r1, .L2636+120 ldr r2, [r6, #-2740] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L2634+124 + ldr r1, .L2636+124 ldr r2, [r6, #-1636] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L2634+128 + ldr r1, .L2636+128 ldr r2, [r6, #-1740] add r5, r5, r0 mov r0, r5 bl sprintf ldrh r2, [r4, #110] - ldr r1, .L2634+132 + ldr r1, .L2636+132 add r5, r5, r0 mov r0, r5 bl sprintf sub r3, r6, #1728 - ldr r1, .L2634+136 + ldr r1, .L2636+136 ldrh r2, [r3] add r5, r5, r0 mov r0, r5 bl sprintf movw r3, #1160 ldrh r2, [r8, r3] - ldr r1, .L2634+140 + ldr r1, .L2636+140 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L2634+144 + ldr r1, .L2636+144 ldr r2, [r6, #-1724] add r5, r5, r0 mov r0, r5 bl sprintf movw r3, #1128 ldrh r2, [r6, r3] - ldr r1, .L2634+148 + ldr r1, .L2636+148 add r5, r5, r0 mov r0, r5 bl sprintf ldrh r2, [r4, #-4] - ldr r1, .L2634+152 + ldr r1, .L2636+152 add r4, r6, #884 add r5, r5, r0 mov r0, r5 bl sprintf ldrh r2, [r4, #2] - ldr r1, .L2634+156 + ldr r1, .L2636+156 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L2634+160 + ldr r1, .L2636+160 ldrb r2, [r6, #890] @ zero_extendqisi2 add r5, r5, r0 mov r0, r5 bl sprintf ldrh r2, [r4] - ldr r1, .L2634+164 + ldr r1, .L2636+164 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L2634+168 + ldr r1, .L2636+168 ldrb r2, [r6, #892] @ zero_extendqisi2 add r5, r5, r0 mov r0, r5 bl sprintf ldrh r2, [r4, #4] - ldr r1, .L2634+172 + ldr r1, .L2636+172 add r5, r5, r0 mov r0, r5 bl sprintf ldrh r3, [r4] ldr r2, [r6, #-1408] add r4, r6, #932 - ldr r1, .L2634+176 + ldr r1, .L2636+176 mov r3, r3, asl #1 ldrh r2, [r2, r3] add r5, r5, r0 mov r0, r5 bl sprintf ldrh r2, [r4, #2] - ldr r1, .L2634+180 + ldr r1, .L2636+180 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L2634+184 + ldr r1, .L2636+184 ldrb r2, [r6, #938] @ zero_extendqisi2 add r5, r5, r0 mov r0, r5 bl sprintf ldrh r2, [r4] - ldr r1, .L2634+188 + ldr r1, .L2636+188 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L2634+192 + ldr r1, .L2636+192 ldrb r2, [r6, #940] @ zero_extendqisi2 add r5, r5, r0 mov r0, r5 bl sprintf ldrh r2, [r4, #4] - ldr r1, .L2634+196 + ldr r1, .L2636+196 add r5, r5, r0 mov r0, r5 bl sprintf ldrh r3, [r4] ldr r2, [r6, #-1408] add r4, r6, #980 - ldr r1, .L2634+200 + ldr r1, .L2636+200 mov r3, r3, asl #1 ldrh r2, [r2, r3] add r5, r5, r0 mov r0, r5 bl sprintf ldrh r2, [r4, #2] - ldr r1, .L2634+204 + ldr r1, .L2636+204 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L2634+208 + ldr r1, .L2636+208 ldrb r2, [r6, #986] @ zero_extendqisi2 add r5, r5, r0 mov r0, r5 bl sprintf ldrh r2, [r4] - ldr r1, .L2634+212 + ldr r1, .L2636+212 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L2634+216 + ldr r1, .L2636+216 ldrb r2, [r6, #988] @ zero_extendqisi2 add r5, r5, r0 mov r0, r5 bl sprintf ldrh r2, [r4, #4] - ldr r1, .L2634+220 - ldr r4, .L2634+224 + ldr r1, .L2636+220 + ldr r4, .L2636+224 add r5, r5, r0 mov r0, r5 bl sprintf ldrh r2, [r4, #2] - ldr r1, .L2634+228 + ldr r1, .L2636+228 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L2634+232 + ldr r1, .L2636+232 ldrb r2, [r8, #1170] @ zero_extendqisi2 add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L2634+236 + ldr r1, .L2636+236 ldrh r2, [r8, r9] add r5, r5, r0 mov r0, r5 bl sprintf - ldr r1, .L2634+240 + ldr r1, .L2636+240 ldrb r2, [r8, #1172] @ zero_extendqisi2 add r5, r5, r0 mov r0, r5 bl sprintf ldrh r2, [r4, #4] - ldr r1, .L2634+244 + ldr r1, .L2636+244 add r5, r5, r0 mov r0, r5 bl sprintf @@ -15785,50 +15784,50 @@ FtlPrintInfo2buf: ldr r1, [r8, #1288] mov r0, r5 str r1, [sp, #4] - ldr r1, .L2634+248 + ldr r1, .L2636+248 ldr r3, [r8, #1292] bl sprintf - ldr r1, .L2634+252 + ldr r1, .L2636+252 ldr r2, [r8, #1284] add r4, r5, r0 sub r5, r6, #1520 mov r0, r4 bl sprintf - ldr r1, .L2634+256 + ldr r1, .L2636+256 ldr r2, [r8, #1308] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L2634+260 + ldr r1, .L2636+260 ldrh r2, [r5, #-12] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L2634+264 + ldr r1, .L2636+264 ldrh r2, [r5, #-10] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L2634+268 + ldr r1, .L2636+268 ldr r2, [r6, #-1548] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L2634+272 + ldr r1, .L2636+272 ldrh r2, [r5, #-8] add r4, r4, r0 mov r0, r4 bl sprintf add r4, r4, r0 bl GetFreeBlockMinEraseCount - ldr r1, .L2634+276 + ldr r1, .L2636+276 mov r2, r0 mov r0, r4 bl sprintf add r4, r4, r0 ldrh r0, [r10] bl GetFreeBlockMaxEraseCount - ldr r1, .L2634+280 + ldr r1, .L2636+280 mov r2, r0 mov r0, r4 bl sprintf @@ -15836,24 +15835,24 @@ FtlPrintInfo2buf: movw r2, #65535 cmp r3, r2 add r4, r4, r0 - beq .L2626 + beq .L2628 ldr r2, [r6, #-1408] mov r3, r3, asl #1 mov r0, r4 - ldr r1, .L2634+284 + ldr r1, .L2636+284 ldrh r2, [r2, r3] bl sprintf add r4, r4, r0 -.L2626: +.L2628: mov r0, #0 mov r5, #0 bl List_get_gc_head_node movw r10, #65535 mov r9, #6 uxth r3, r0 -.L2628: +.L2630: cmp r3, r10 - beq .L2627 + beq .L2629 ldr r2, [r6, #-1408] mov r1, r3, asl #1 mul r8, r9, r3 @@ -15866,7 +15865,7 @@ FtlPrintInfo2buf: str r2, [sp, #4] ldr r2, [r6, #-1416] ldrh r2, [r2, r1] - ldr r1, .L2634+288 + ldr r1, .L2636+288 str r2, [sp, #8] mov r2, r5 bl sprintf @@ -15875,21 +15874,21 @@ FtlPrintInfo2buf: cmp r5, #16 ldrh r3, [r3, r8] add r4, r4, r0 - bne .L2628 -.L2627: + bne .L2630 +.L2629: ldr r2, [r6, #-1356] mov r5, #0 ldr r3, [r6, #876] movw r10, #65535 mov r9, #6 rsb r3, r2, r3 - ldr r2, .L2634+292 + ldr r2, .L2636+292 mov r3, r3, asr #1 mul r3, r2, r3 uxth r3, r3 -.L2630: +.L2632: cmp r3, r10 - beq .L2629 + beq .L2631 mul r8, r9, r3 ldr r2, [r6, #-1356] ldr r1, [r6, #-1416] @@ -15899,7 +15898,7 @@ FtlPrintInfo2buf: str r2, [sp] mov r2, r3, asl #1 ldrh r2, [r1, r2] - ldr r1, .L2634+296 + ldr r1, .L2636+296 str r2, [sp, #4] mov r2, r5 bl sprintf @@ -15908,15 +15907,15 @@ FtlPrintInfo2buf: cmp r5, #4 ldrh r3, [r3, r8] add r4, r4, r0 - bne .L2630 -.L2629: + bne .L2632 +.L2631: rsb r0, r7, r4 add sp, sp, #32 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L2635: +.L2637: .align 2 -.L2634: +.L2636: .word .LANCHOR2 .word .LC75 .word .LC76 @@ -16004,8 +16003,8 @@ ftl_proc_ftl_read: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r5, r0 - ldr r1, .L2638 - ldr r2, .L2638+4 + ldr r1, .L2640 + ldr r2, .L2640+4 bl sprintf add r4, r5, r0 mov r0, r4 @@ -16013,9 +16012,9 @@ ftl_proc_ftl_read: add r0, r4, r0 rsb r0, r5, r0 ldmfd sp!, {r3, r4, r5, pc} -.L2639: +.L2641: .align 2 -.L2638: +.L2640: .word .LC48 .word .LC145 .fnend @@ -16031,70 +16030,70 @@ GetSwlReplaceBlock: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #28 sub sp, sp, #28 - ldr r5, .L2670 - ldr r4, .L2670+4 + ldr r5, .L2672 + ldr r4, .L2672+4 ldr r6, [r5, #1736] ldr r3, [r4, #-1568] cmp r6, r3 - bcs .L2641 + bcs .L2643 sub r3, r4, #1728 mov r6, #0 str r6, [r4, #-1584] ldrh r1, [r3] ldr r3, [r4, #-1416] sub r3, r3, #2 -.L2642: +.L2644: cmp r6, r1 - bcs .L2669 + bcs .L2671 ldrh r2, [r3, #2]! add r6, r6, #1 ldr r0, [r4, #-1584] add r2, r2, r0 str r2, [r4, #-1584] - b .L2642 -.L2669: + b .L2644 +.L2671: ldr r6, [r4, #-1584] mov r0, r6 bl __aeabi_uidiv - ldr r3, .L2670+8 + ldr r3, .L2672+8 ldrh r1, [r3, #-12] str r0, [r5, #1736] ldr r0, [r4, #-1580] rsb r0, r0, r6 bl __aeabi_uidiv str r0, [r4, #-1584] - b .L2644 -.L2641: + b .L2646 +.L2643: ldr r3, [r4, #-1572] cmp r6, r3 - bls .L2644 + bls .L2646 add r3, r3, #1 mov ip, r4 str r3, [r4, #-1572] mov r3, #0 -.L2646: - ldr r2, .L2670+12 +.L2648: + ldr r2, .L2672+12 ldrh r2, [r2] cmp r3, r2 - bcs .L2644 + bcs .L2646 ldr r0, [ip, #-1416] mov r1, r3, asl #1 add r3, r3, #1 ldrh r2, [r0, r1] add r2, r2, #1 strh r2, [r0, r1] @ movhi - b .L2646 -.L2644: + b .L2648 +.L2646: ldr r6, [r4, #-1568] ldr r8, [r5, #1736] add r3, r6, #256 - ldr r2, .L2670+4 + ldr r2, .L2672+4 cmp r3, r8 - bls .L2649 + bls .L2651 ldr r1, [r2, #-1572] add r3, r6, #768 cmp r3, r1 - bls .L2649 + bls .L2651 cmp r6, #40 ldr r2, [r2, #-1872] movls r3, #0 @@ -16102,12 +16101,12 @@ GetSwlReplaceBlock: cmp r2, #0 orreq r3, r3, #1 cmp r3, #0 - beq .L2649 -.L2651: + beq .L2651 +.L2653: movw r0, #65535 - b .L2650 -.L2649: - ldr r10, .L2670+4 + b .L2652 +.L2651: + ldr r10, .L2672+4 add r3, r10, #880 ldrh r0, [r3] add r0, r0, r0, asl #1 @@ -16121,32 +16120,32 @@ GetSwlReplaceBlock: cmp r6, #40 movls r1, #0 cmp r1, #0 - bne .L2651 + bne .L2653 ldr r3, [r10, #864] cmp r3, #0 - beq .L2651 + beq .L2653 sub r2, r10, #1728 ldr r0, [r10, #-1356] - ldr ip, .L2670+16 + ldr ip, .L2672+16 movw r7, #65535 ldrh r2, [r2] mov r5, r7 ldr r10, [r10, #-1416] mov lr, #6 str r2, [sp, #20] -.L2652: +.L2654: ldrh r2, [r3] movw fp, #65535 cmp r2, fp - beq .L2654 + beq .L2656 add r1, r1, #1 ldr fp, [sp, #20] uxth r1, r1 cmp r1, fp - bhi .L2651 + bhi .L2653 ldrh fp, [r3, #4] cmp fp, #0 - beq .L2653 + beq .L2655 rsb r3, r0, r3 mov r3, r3, asr #1 mul r3, ip, r3 @@ -16154,45 +16153,45 @@ GetSwlReplaceBlock: mov fp, r3, asl #1 ldrh fp, [r10, fp] cmp fp, r6 - bls .L2658 + bls .L2660 cmp fp, r7 movcc r7, fp movcc r5, r3 -.L2653: +.L2655: mla r3, lr, r2, r0 - b .L2652 -.L2658: + b .L2654 +.L2660: mov r5, r3 -.L2654: +.L2656: movw r3, #65535 cmp r5, r3 - beq .L2651 + beq .L2653 mov r3, r5, asl #1 ldrh fp, [r10, r3] cmp fp, r6 - bls .L2656 + bls .L2658 str r3, [sp, #20] bl GetFreeBlockMinEraseCount ldr r3, [sp, #20] cmp r0, r6 strhi r7, [r4, #-1568] -.L2656: +.L2658: cmp fp, r8 - bcs .L2651 + bcs .L2653 add r2, fp, #128 cmp r9, r2 - ble .L2651 + ble .L2653 add r2, fp, #256 cmp r2, r8 - bcc .L2657 + bcc .L2659 ldr r2, [r4, #-1572] add fp, fp, #768 cmp fp, r2 - bcs .L2651 -.L2657: + bcs .L2653 +.L2659: ldr r2, [r4, #-1408] mov r1, r5 - ldr r0, .L2670+20 + ldr r0, .L2672+20 ldrh r2, [r2, r3] str r2, [sp] mov r2, r8 @@ -16203,13 +16202,13 @@ GetSwlReplaceBlock: mov r0, r5 mov r3, #1 str r3, [r4, #-1560] -.L2650: +.L2652: add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2671: +.L2673: .align 2 -.L2670: +.L2672: .word .LANCHOR4 .word .LANCHOR2 .word .LANCHOR2-1664 @@ -16229,19 +16228,19 @@ free_data_superblock: cmp r0, r2 stmfd sp!, {r3, lr} .save {r3, lr} - beq .L2673 - ldr r2, .L2675 + beq .L2675 + ldr r2, .L2677 mov r3, r0, asl #1 mov r1, #0 ldr r2, [r2, #-1408] strh r1, [r2, r3] @ movhi bl INSERT_FREE_LIST -.L2673: +.L2675: mov r0, #0 ldmfd sp!, {r3, pc} -.L2676: +.L2678: .align 2 -.L2675: +.L2677: .word .LANCHOR2 .fnend .size free_data_superblock, .-free_data_superblock @@ -16256,18 +16255,18 @@ allocate_data_superblock: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #20 sub sp, sp, #20 - ldr r4, .L2732 + ldr r4, .L2734 ldr r3, [r4, #-1280] cmp r3, #0 - bne .L2678 + bne .L2680 sub r10, r4, #1728 mov r5, r0 mov r6, r4 -.L2679: - ldr r7, .L2732+4 +.L2681: + ldr r7, .L2734+4 ldrb r2, [r5, #8] @ zero_extendqisi2 cmp r5, r7 - bne .L2680 + bne .L2682 ldrh r3, [r7, #-100] ldr ip, [r6, #-1560] mov r0, r3, lsr #1 @@ -16277,47 +16276,47 @@ allocate_data_superblock: ldr lr, [r6, #-1872] cmp lr, #0 uxth r1, r1 - beq .L2681 + beq .L2683 ldr lr, [r6, #-1568] cmp lr, #39 - bhi .L2681 + bhi .L2683 cmp lr, #2 - bls .L2706 + bls .L2708 cmp ip, #0 movne r3, #0 andeq r3, r3, #1 cmp r3, #0 moveq r1, r0 - beq .L2681 - b .L2706 -.L2680: + beq .L2683 + b .L2708 +.L2682: cmp r2, #1 - bne .L2706 - ldr r3, .L2732+8 + bne .L2708 + ldr r3, .L2734+8 ldrh r3, [r3] cmp r3, #1 - beq .L2706 + beq .L2708 ldrb r3, [r6, #-2744] @ zero_extendqisi2 cmp r3, #0 - bne .L2706 + bne .L2708 ldr r0, [r6, #-1872] ldrh r3, [r7, #-100] cmp r0, #0 mov r1, r3, lsr #3 - beq .L2681 + beq .L2683 ldr r0, [r6, #-1568] cmp r0, #1 rsbls r3, r3, r3, asl #3 ubfxls r1, r3, #3, #16 -.L2681: +.L2683: cmp r1, #0 subne r1, r1, #1 uxthne r1, r1 - b .L2682 -.L2706: + b .L2684 +.L2708: mov r1, #0 -.L2682: - ldr r0, .L2732+12 +.L2684: + ldr r0, .L2734+12 bl List_pop_index_node ldrh r3, [r7, #-100] sub r3, r3, #1 @@ -16325,19 +16324,19 @@ allocate_data_superblock: ldrh r3, [r10] uxth r9, r0 cmp r3, r9 - bls .L2679 + bls .L2681 ldr r3, [r6, #-1408] mov r8, r9, asl #1 ldrh r7, [r3, r8] cmp r7, #0 - bne .L2679 + bne .L2681 strh r9, [r5] @ movhi mov r0, r5 bl make_superblock ldrb r3, [r5, #7] @ zero_extendqisi2 cmp r3, #0 - beq .L2684 - ldr r2, .L2732+16 + beq .L2686 + ldr r2, .L2734+16 add ip, r5, #14 ldr r0, [r6, #-1492] ldrh lr, [r2] @@ -16346,14 +16345,14 @@ allocate_data_superblock: mla r1, r2, lr, r0 mov lr, r7 str r1, [sp] - b .L2685 -.L2684: + b .L2687 +.L2686: ldr r3, [r6, #-1408] - b .L2727 -.L2685: + b .L2729 +.L2687: ldr r1, [sp] cmp r3, r1 - beq .L2729 + beq .L2731 str lr, [r3, #8] movw fp, #65535 str lr, [r3, #12] @@ -16365,9 +16364,9 @@ allocate_data_superblock: addne r7, r7, #1 uxthne r7, r7 strne r1, [fp, #4] - b .L2685 -.L2729: - ldr r3, .L2732+20 + b .L2687 +.L2731: + ldr r3, .L2734+20 ldr r2, [r4, #-1872] rsb r3, r3, r5 clz r3, r3 @@ -16375,21 +16374,21 @@ allocate_data_superblock: mov r3, r3, lsr #5 moveq r3, #0 cmp r3, #0 - beq .L2688 + beq .L2690 ldr r3, [r6, #-1416] ldrh r3, [r3, r8] cmp r3, #40 movhi r3, #0 strhib r3, [r6, #892] -.L2688: +.L2690: ldrb r3, [r5, #8] @ zero_extendqisi2 ldr r2, [r4, #-1416] cmp r3, #0 ldrh r3, [r2, r8] - bne .L2689 + bne .L2691 cmp r3, #0 mov r0, r9 - ldrne r1, .L2732+24 + ldrne r1, .L2734+24 moveq r3, #2 ldrneh r1, [r1] addne r3, r3, r1 @@ -16400,8 +16399,8 @@ allocate_data_superblock: add r3, r3, #1 str r3, [r4, #-1584] bl ftl_set_blk_mode - b .L2691 -.L2689: + b .L2693 +.L2691: add r3, r3, #1 strh r3, [r2, r8] @ movhi ldr r1, [r4, #-1396] @@ -16414,22 +16413,22 @@ allocate_data_superblock: and r3, r9, #31 orr r3, r2, ip, asl r3 str r3, [r1, r0, asl #2] -.L2691: +.L2693: ldr r3, [r4, #-1416] ldr r2, [r4, #-1572] ldr r0, [r4, #-1584] ldrh r3, [r3, r8] cmp r3, r2 strhi r3, [r6, #-1572] - ldr r3, .L2732+24 + ldr r3, .L2734+24 ldrh r2, [r3] ldr r3, [r4, #-1580] mla r0, r0, r2, r3 - ldr r3, .L2732+28 + ldr r3, .L2734+28 ldrh r1, [r3] bl __aeabi_uidiv ldr r2, [r4, #-1420] - ldr r3, .L2732+32 + ldr r3, .L2734+32 str r0, [r3, #1736] ldr r3, [r2, #16] add r3, r3, #1 @@ -16439,18 +16438,18 @@ allocate_data_superblock: add r1, r2, #4 mla r3, r3, r7, r2 add r3, r3, #40 -.L2693: +.L2695: add r1, r1, #36 cmp r1, r3 ldrne r2, [r1, #-36] bicne r2, r2, #1020 bicne r2, r2, #3 strne r2, [r1, #-36] - bne .L2693 -.L2730: + bne .L2695 +.L2732: ldrb r3, [r4, #-2744] @ zero_extendqisi2 cmp r3, #0 - beq .L2695 + beq .L2697 ldrb r3, [r5, #8] @ zero_extendqisi2 mov r2, r7 ldr r0, [r6, #-1492] @@ -16458,7 +16457,7 @@ allocate_data_superblock: moveq r1, #0 movne r1, #1 bl FlashEraseBlocks -.L2695: +.L2697: ldrb r1, [r5, #8] @ zero_extendqisi2 mov r2, r7 ldr r0, [r4, #-1492] @@ -16467,16 +16466,16 @@ allocate_data_superblock: add r1, r5, #16 mov r2, fp mov ip, #36 -.L2697: +.L2699: uxth r3, fp cmp r3, r7 - bcs .L2731 + bcs .L2733 mul r3, ip, fp ldr lr, [r4, #-1492] add r0, lr, r3 ldr r3, [lr, r3] cmn r3, #1 - bne .L2698 + bne .L2700 ldr r0, [r0, #4] add r2, r2, #1 stmib sp, {r1, r3, ip} @@ -16490,27 +16489,27 @@ allocate_data_superblock: ldrb r3, [r5, #7] @ zero_extendqisi2 sub r3, r3, #1 strb r3, [r5, #7] -.L2698: +.L2700: add fp, fp, #1 add r1, r1, #2 - b .L2697 -.L2731: + b .L2699 +.L2733: cmp r2, #0 - beq .L2700 + beq .L2702 mov r0, r9 bl update_multiplier_value bl FtlBbmTblFlush -.L2700: +.L2702: ldrb r3, [r5, #7] @ zero_extendqisi2 cmp r3, #0 - bne .L2701 + bne .L2703 ldr r3, [r4, #-1408] -.L2727: +.L2729: mvn r2, #0 strh r2, [r3, r8] @ movhi - b .L2679 -.L2701: - ldr r2, .L2732+36 + b .L2681 +.L2703: + ldr r2, .L2734+36 ldrh r2, [r2, #-4] strh r9, [r5] @ movhi smulbb r3, r2, r3 @@ -16527,14 +16526,14 @@ allocate_data_superblock: ldrh r2, [r5] mov r2, r2, asl #1 strh r3, [r1, r2] @ movhi -.L2678: +.L2680: mov r0, #0 add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2733: +.L2735: .align 2 -.L2732: +.L2734: .word .LANCHOR2 .word .LANCHOR2+980 .word .LANCHOR2-1716 @@ -16557,21 +16556,21 @@ FtlGcBufInit: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} .save {r4, r5, r6, r7, r8, r9, r10, lr} mov r4, #12 - ldr lr, .L2742 + ldr lr, .L2744 mov r5, #1 - ldr r2, .L2742+4 + ldr r2, .L2744+4 mov r7, #36 - ldr r1, .L2742+8 + ldr r1, .L2744+8 add r6, lr, #78 mov r3, #0 str r3, [r2, #1740] -.L2735: +.L2737: ldrh r2, [lr] add ip, r3, #1 uxth r3, r3 - ldr r0, .L2742+8 + ldr r0, .L2744+8 cmp r3, r2 - bcs .L2740 + bcs .L2742 mul r0, r4, r3 ldr r8, [r1, #-1448] add r2, r8, r0 @@ -16585,7 +16584,7 @@ FtlGcBufInit: bic r2, r2, #3 add r2, r9, r2 str r2, [r8, r0] - ldr r2, .L2742+12 + ldr r2, .L2744+12 ldr r9, [r1, #-1448] ldrh r2, [r2] add r8, r9, r0 @@ -16604,16 +16603,16 @@ FtlGcBufInit: ldr r2, [r8, #4] str r2, [r3, #12] mov r3, ip - b .L2735 -.L2740: - ldr r4, .L2742+16 + b .L2737 +.L2742: + ldr r4, .L2744+16 mov r1, r0 mov ip, #12 mov lr, #0 -.L2737: +.L2739: ldr r3, [r0, #-1480] cmp r2, r3 - bcs .L2741 + bcs .L2743 mul r5, ip, r2 ldr r7, [r1, #-1448] add r3, r7, r5 @@ -16627,7 +16626,7 @@ FtlGcBufInit: bic r3, r3, #3 add r3, r6, r3 str r3, [r7, r5] - ldr r3, .L2742+12 + ldr r3, .L2744+12 ldr r6, [r1, #-1448] ldrh r3, [r3] add r5, r6, r5 @@ -16641,12 +16640,12 @@ FtlGcBufInit: bic r3, r3, #3 add r3, r6, r3 str r3, [r5, #4] - b .L2737 -.L2741: - ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} + b .L2739 .L2743: + ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} +.L2745: .align 2 -.L2742: +.L2744: .word .LANCHOR2-1736 .word .LANCHOR4 .word .LANCHOR2 @@ -16664,9 +16663,9 @@ FtlVariablesInit: stmfd sp!, {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} movw r2, #1748 - ldr r6, .L2746 + ldr r6, .L2748 mvn r3, #0 - ldr r5, .L2746+4 + ldr r5, .L2748+4 mov r4, #0 mov r1, r4 strh r3, [r6, r2] @ movhi @@ -16706,9 +16705,9 @@ FtlVariablesInit: bl FtlL2PDataInit mov r0, r4 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L2747: +.L2749: .align 2 -.L2746: +.L2748: .word .LANCHOR4 .word .LANCHOR2 .fnend @@ -16720,7 +16719,7 @@ FtlGcBufFree: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2756 + ldr r3, .L2758 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} .save {r4, r5, r6, r7, r8, r9, r10, lr} mov lr, #0 @@ -16729,30 +16728,30 @@ FtlGcBufFree: ldr r4, [r3, #-1448] mov r7, lr mov r8, #12 -.L2749: +.L2751: uxth ip, lr cmp ip, r1 ldmcsfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} mla ip, r5, ip, r0 mov r2, #0 -.L2750: +.L2752: uxth r3, r2 cmp r3, r6 - bcs .L2751 + bcs .L2753 mul r3, r8, r3 add r2, r2, #1 add r9, r4, r3 ldr r10, [r4, r3] ldr r3, [ip, #8] cmp r10, r3 - bne .L2750 + bne .L2752 str r7, [r9, #8] -.L2751: +.L2753: add lr, lr, #1 - b .L2749 -.L2757: + b .L2751 +.L2759: .align 2 -.L2756: +.L2758: .word .LANCHOR2 .fnend .size FtlGcBufFree, .-FtlGcBufFree @@ -16763,7 +16762,7 @@ FtlGcBufAlloc: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2767 + ldr r3, .L2769 mov ip, #0 stmfd sp!, {r4, r5, r6, r7, r8, r9, lr} .save {r4, r5, r6, r7, r8, r9, lr} @@ -16772,34 +16771,34 @@ FtlGcBufAlloc: mov r7, #1 ldr r5, [r3, #-1448] mov r8, #36 -.L2759: +.L2761: uxth r2, ip cmp r2, r1 - bcs .L2766 + bcs .L2768 mov lr, #0 -.L2760: +.L2762: uxth r3, lr cmp r3, r4 - bcs .L2761 + bcs .L2763 mla r3, r6, r3, r5 add lr, lr, #1 ldr r9, [r3, #8] cmp r9, #0 - bne .L2760 + bne .L2762 mla r2, r8, r2, r0 ldr lr, [r3] str r7, [r3, #8] str lr, [r2, #8] ldr r3, [r3, #4] str r3, [r2, #12] -.L2761: +.L2763: add ip, ip, #1 - b .L2759 -.L2766: - ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc} + b .L2761 .L2768: + ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc} +.L2770: .align 2 -.L2767: +.L2769: .word .LANCHOR2 .fnend .size FtlGcBufAlloc, .-FtlGcBufAlloc @@ -16811,26 +16810,26 @@ IsBlkInGcList: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r1, .L2775 + ldr r1, .L2777 movw r2, #1764 - ldr r3, .L2775+4 + ldr r3, .L2777+4 ldrh r2, [r1, r2] ldr r3, [r3, #-1512] add r2, r3, r2, asl #1 -.L2770: +.L2772: cmp r3, r2 - beq .L2774 + beq .L2776 ldrh r1, [r3], #2 cmp r1, r0 - bne .L2770 + bne .L2772 mov r0, #1 bx lr -.L2774: +.L2776: mov r0, #0 bx lr -.L2776: +.L2778: .align 2 -.L2775: +.L2777: .word .LANCHOR4 .word .LANCHOR2 .fnend @@ -16849,31 +16848,31 @@ FtlGcUpdatePage: mov r5, r1 mov r6, r2 bl P2V_block_in_plane - ldr lr, .L2785 + ldr lr, .L2787 movw r2, #1764 - ldr r3, .L2785+4 + ldr r3, .L2787+4 ldr r1, [lr, #-1512] ldrh r7, [r3, r2] mov r2, #0 sub r8, r1, #2 -.L2778: +.L2780: uxth ip, r2 cmp ip, r7 - bcs .L2782 + bcs .L2784 ldrh r9, [r8, #2]! add r2, r2, #1 cmp r9, r0 - bne .L2778 -.L2782: - cmp ip, r7 bne .L2780 +.L2784: + cmp ip, r7 + bne .L2782 mov ip, ip, asl #1 movw r2, #1764 strh r0, [r1, ip] @ movhi ldrh r0, [r3, r2] add r0, r0, #1 strh r0, [r3, r2] @ movhi -.L2780: +.L2782: movw r0, #1766 mov ip, #12 ldrh r2, [r3, r0] @@ -16886,9 +16885,9 @@ FtlGcUpdatePage: add r2, r2, #1 strh r2, [r3, r0] @ movhi ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, pc} -.L2786: +.L2788: .align 2 -.L2785: +.L2787: .word .LANCHOR2 .word .LANCHOR4 .fnend @@ -16903,9 +16902,9 @@ FtlGcPageVarInit: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} movw r1, #1764 - ldr r3, .L2789 + ldr r3, .L2791 mov r2, #0 - ldr r4, .L2789+4 + ldr r4, .L2791+4 sub r5, r4, #1664 strh r2, [r3, r1] @ movhi movw r1, #1766 @@ -16923,9 +16922,9 @@ FtlGcPageVarInit: bl ftl_memset ldmfd sp!, {r3, r4, r5, lr} b FtlGcBufInit -.L2790: +.L2792: .align 2 -.L2789: +.L2791: .word .LANCHOR4 .word .LANCHOR2 .fnend @@ -16937,7 +16936,7 @@ FtlGcScanTempBlk: .fnstart @ args = 0, pretend = 0, frame = 64 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L2844 + ldr r2, .L2846 movw r3, #3448 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} @@ -16948,35 +16947,35 @@ FtlGcScanTempBlk: mov r4, r0 str r1, [sp, #8] cmp r5, r3 - beq .L2825 + beq .L2827 cmp r5, #0 - bne .L2792 - b .L2793 -.L2825: + bne .L2794 + b .L2795 +.L2827: mov r5, #0 -.L2792: - ldr r3, .L2844+4 +.L2794: + ldr r3, .L2846+4 ldr r2, [sp, #8] ldrh r3, [r3, #-4] cmp r2, r3 - bne .L2794 -.L2793: + bne .L2796 +.L2795: bl FtlGcPageVarInit -.L2794: - ldr r6, .L2844+8 +.L2796: + ldr r6, .L2846+8 mov r2, #0 mvn r3, #0 stmia sp, {r2, r3} -.L2795: +.L2797: ldrh r1, [r4] movw r3, #65535 mov r2, #0 strb r2, [r4, #8] cmp r1, r3 - beq .L2796 -.L2797: -.L2822: - ldr r3, .L2844+12 + beq .L2798 +.L2799: +.L2824: + ldr r3, .L2846+12 mov r7, #0 ldr r0, [r6, #-1436] add r1, r4, #14 @@ -16989,17 +16988,17 @@ FtlGcScanTempBlk: str r3, [sp, #16] ldr r3, [r6, #-1464] str r3, [sp, #20] - ldr r3, .L2844+16 + ldr r3, .L2846+16 ldrh fp, [r3] ldrh ip, [r3, #2] -.L2798: +.L2800: ldr r2, [sp, #12] uxth r3, r7 cmp r3, r2 - bcs .L2842 + bcs .L2844 ldrh r3, [r1, #2]! cmp r3, lr - beq .L2799 + beq .L2801 ldr r2, [sp, #16] orr r3, r5, r3, asl #10 mla r2, r9, r8, r2 @@ -17021,20 +17020,20 @@ FtlGcScanTempBlk: bic r3, r3, #3 add r3, r0, r3 str r3, [r2, #12] -.L2799: +.L2801: add r7, r7, #1 - b .L2798 -.L2842: + b .L2800 +.L2844: ldr r0, [r6, #-1504] mov r1, r8 mov r2, #0 mov r10, #0 bl FlashReadPages -.L2801: +.L2803: uxth r3, r10 cmp r3, r8 - bcs .L2843 - ldr r3, .L2844+8 + bcs .L2845 + ldr r3, .L2846+8 mov r9, #36 mul r9, r9, r10 ldr r7, [r3, #-1504] @@ -17044,40 +17043,40 @@ FtlGcScanTempBlk: ubfx r0, fp, #10, #16 bl P2V_plane ldr r7, [r7, r9] - ldr ip, .L2844+8 + ldr ip, .L2846+8 cmp r7, #0 ldr r3, [sp, #12] mov r2, r0 ldr r3, [r3, #12] - bne .L2802 + bne .L2804 ldrh r0, [r3] movw r1, #65535 cmp r0, r1 - bne .L2803 -.L2806: + bne .L2805 +.L2808: ldrb r1, [ip, #-2744] @ zero_extendqisi2 cmp r1, #0 - beq .L2837 - ldr r3, .L2844+20 + beq .L2839 + ldr r3, .L2846+20 mov r1, #1 str r1, [r3, #1756] - b .L2796 -.L2803: + b .L2798 +.L2805: ldr r0, [r3, #8] ldr r1, [r6, #-1284] cmp r0, r1 - bls .L2838 - b .L2806 -.L2837: + bls .L2840 + b .L2808 +.L2839: ldrh r3, [r4] ldr r2, [r6, #-1408] mov r3, r3, asl #1 - b .L2841 -.L2838: - ldr r2, .L2844+24 - ldrb r2, [r2] @ zero_extendqisi2 + b .L2843 +.L2840: + ldr r2, .L2846+24 + ldrb r2, [r2, #32] @ zero_extendqisi2 cmp r2, #0 - beq .L2810 + beq .L2812 add r1, sp, #24 mov r2, r7 str r3, [sp, #12] @@ -17091,7 +17090,7 @@ FtlGcScanTempBlk: mov r0, r0, lsr #5 moveq r0, #0 cmp r0, #0 - beq .L2810 + beq .L2812 str r2, [sp, #32] mov r1, #1 ldr r2, [r6, #-1452] @@ -17101,82 +17100,82 @@ FtlGcScanTempBlk: str r2, [sp, #40] mov r2, r7 bl FlashReadPages - ldr r2, .L2844+28 + ldr r2, .L2846+28 ldr r1, [r6, #-1504] ldrh r2, [r2] add r9, r1, r9 mov r2, r2, asl #7 ldr r1, [sp, #36] ldr r3, [sp, #12] - b .L2812 -.L2813: + b .L2814 +.L2815: add r7, r7, #1 -.L2812: +.L2814: cmp r7, r2 - beq .L2810 + beq .L2812 ldr r0, [r9, #8] ldr ip, [r0, r7, asl #2] ldr r0, [r1, r7, asl #2] cmp ip, r0 - beq .L2813 + beq .L2815 ldrh r1, [r4] ldr r2, [sp, #32] - ldr r0, .L2844+32 + ldr r0, .L2846+32 bl printk ldrh r3, [r4] ldr r2, [r6, #-1408] mov r1, #0 mov r3, r3, asl #1 -.L2841: +.L2843: strh r1, [r2, r3] @ movhi ldrh r0, [r4] bl INSERT_FREE_LIST - ldr r2, .L2844+36 + ldr r2, .L2846+36 mvn r3, #0 strh r3, [r4] @ movhi strh r3, [r2] @ movhi - b .L2840 -.L2810: + b .L2842 +.L2812: ldr r0, [r3, #12] mov r1, fp ldr r2, [r3, #8] add r10, r10, #1 bl FtlGcUpdatePage - b .L2801 -.L2802: - ldr r0, .L2844+40 + b .L2803 +.L2804: + ldr r0, .L2846+40 mov r2, fp ldrh r1, [r4] str ip, [sp, #12] bl printk - ldr r3, .L2844+8 + ldr r3, .L2846+8 ldrh r5, [r4] ldr r3, [r3, #-1872] cmp r3, #0 ldr ip, [sp, #12] - bne .L2816 - ldr r3, .L2844+8 + bne .L2818 + ldr r3, .L2846+8 ldrb r3, [r3, #-2744] @ zero_extendqisi2 cmp r3, #0 - beq .L2817 -.L2816: + beq .L2819 +.L2818: ldr r2, [ip, #-1416] mov r3, r5, asl #1 ldrh r3, [r2, r3] cmp r3, #159 - bls .L2818 -.L2817: + bls .L2820 +.L2819: ldr r3, [ip, #-1504] ldr r3, [r3, r9] cmn r3, #1 - bne .L2819 -.L2818: + bne .L2821 +.L2820: ldr r3, [ip, #-1504] add r9, r3, r9 ldr r3, [r9, #4] str r3, [sp, #4] -.L2819: - ldr r3, .L2844+8 +.L2821: + ldr r3, .L2846+8 mov r5, r5, asl #1 mov r2, #0 ldr r3, [r3, #-1408] @@ -17185,11 +17184,11 @@ FtlGcScanTempBlk: bl INSERT_FREE_LIST mvn r3, #0 strh r3, [r4] @ movhi -.L2840: +.L2842: bl FtlGcPageVarInit mov r5, #0 - b .L2795 -.L2843: + b .L2797 +.L2845: ldr r3, [sp] add r5, r5, #1 ldr r2, [sp, #8] @@ -17197,29 +17196,29 @@ FtlGcScanTempBlk: uxth r5, r5 cmp r3, r2 str r3, [sp] - ldr r2, .L2844+44 - bcs .L2821 -.L2823: + ldr r2, .L2846+44 + bcs .L2823 +.L2825: ldrh r3, [r2] cmp r3, r5 - bhi .L2822 + bhi .L2824 mov r2, #0 - b .L2796 -.L2821: - ldr r1, .L2844+48 + b .L2798 +.L2823: + ldr r1, .L2846+48 movw r0, #65535 ldrh r3, [r1] cmp r3, r0 - beq .L2823 + beq .L2825 ldr r0, [sp] add r3, r3, r0 strh r3, [r1] @ movhi ldrh r3, [r2] cmp r3, r5 - bls .L2823 - b .L2824 -.L2796: - ldr r1, .L2844 + bls .L2825 + b .L2826 +.L2798: + ldr r1, .L2846 movw r3, #3448 mvn r0, #0 strh r5, [r4, #2] @ movhi @@ -17228,14 +17227,14 @@ FtlGcScanTempBlk: mov r0, r4 mov r1, r5 bl ftl_sb_update_avl_pages -.L2824: +.L2826: ldr r0, [sp, #4] add sp, sp, #68 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2845: +.L2847: .align 2 -.L2844: +.L2846: .word .LANCHOR1 .word .LANCHOR2-1664 .word .LANCHOR2 @@ -17261,45 +17260,45 @@ FtlGcRefreshOpenBlock: stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r5, r0 - ldr r4, .L2854 + ldr r4, .L2856 ldrh r3, [r4, #-4] cmp r3, r0 - beq .L2848 + beq .L2850 ldrh r3, [r4, #-2] cmp r3, r0 - beq .L2848 + beq .L2850 ldrh r3, [r4] cmp r3, r0 - beq .L2848 + beq .L2850 add r6, r4, #16 ldrh r3, [r6, #-14] cmp r3, r0 - beq .L2848 - ldr r0, .L2854+4 + beq .L2850 + ldr r0, .L2856+4 mov r1, r5 bl printk ldrh r2, [r4, #-4] movw r3, #65535 cmp r2, r3 streqh r5, [r4, #-4] @ movhi - beq .L2848 + beq .L2850 ldrh r2, [r4, #-2] cmp r2, r3 streqh r5, [r4, #-2] @ movhi - beq .L2848 + beq .L2850 ldrh r2, [r4] cmp r2, r3 streqh r5, [r4] @ movhi - beq .L2848 + beq .L2850 ldrh r2, [r6, #-14] cmp r2, r3 streqh r5, [r6, #-14] @ movhi -.L2848: +.L2850: mov r0, #0 ldmfd sp!, {r4, r5, r6, pc} -.L2855: +.L2857: .align 2 -.L2854: +.L2856: .word .LANCHOR2-1536 .word .LC149 .fnend @@ -17314,49 +17313,49 @@ FtlGcRefreshBlock: stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r5, r0 - ldr r4, .L2867 + ldr r4, .L2869 ldrh r3, [r4, #-4] cmp r3, r0 - beq .L2864 + beq .L2866 ldrh r3, [r4, #-2] cmp r3, r0 - beq .L2864 + beq .L2866 ldrh r3, [r4] cmp r3, r0 - beq .L2864 + beq .L2866 add r6, r4, #16 ldrh r3, [r6, #-14] cmp r3, r0 - beq .L2864 - ldr r0, .L2867+4 + beq .L2866 + ldr r0, .L2869+4 mov r1, r5 bl printk ldrh r2, [r4, #-4] movw r3, #65535 cmp r2, r3 streqh r5, [r4, #-4] @ movhi - beq .L2864 + beq .L2866 ldrh r2, [r4, #-2] cmp r2, r3 streqh r5, [r4, #-2] @ movhi - beq .L2864 + beq .L2866 ldrh r2, [r4] cmp r2, r3 streqh r5, [r4] @ movhi - beq .L2864 + beq .L2866 ldrh r2, [r6, #-14] cmp r2, r3 - bne .L2865 + bne .L2867 strh r5, [r6, #-14] @ movhi -.L2864: +.L2866: mov r0, #0 ldmfd sp!, {r4, r5, r6, pc} -.L2865: +.L2867: mvn r0, #0 ldmfd sp!, {r4, r5, r6, pc} -.L2868: +.L2870: .align 2 -.L2867: +.L2869: .word .LANCHOR2-1536 .word .LC149 .fnend @@ -17372,51 +17371,51 @@ FtlGcMarkBadPhyBlk: .save {r3, r4, r5, r6, r7, lr} mov r5, r0 bl P2V_block_in_plane - ldr r6, .L2879 + ldr r6, .L2881 mov r2, r5 sub r7, r6, #1520 ldrh r1, [r7, #-6] mov r4, r0 - ldr r0, .L2879+4 + ldr r0, .L2881+4 bl printk mov r0, r4 bl FtlGcRefreshBlock ldr r3, [r6, #-1872] cmp r3, #0 - beq .L2870 + beq .L2872 ldr r2, [r6, #-1416] mov r4, r4, asl #1 ldrh r3, [r2, r4] cmp r3, #39 subhi r3, r3, #40 strhih r3, [r2, r4] @ movhi -.L2870: +.L2872: ldrh r3, [r7, #-6] mov r2, #0 - ldr r0, .L2879+8 -.L2871: + ldr r0, .L2881+8 +.L2873: uxth r1, r2 cmp r1, r3 - bcs .L2878 + bcs .L2880 add r2, r2, #1 add r1, r0, r2, asl #1 ldrh r1, [r1, #-2] cmp r1, r5 - bne .L2871 - b .L2872 -.L2878: + bne .L2873 + b .L2874 +.L2880: cmp r3, #15 addls r2, r3, #1 strlsh r2, [r7, #-6] @ movhi - ldrls r2, .L2879+8 + ldrls r2, .L2881+8 movls r3, r3, asl #1 strlsh r5, [r2, r3] @ movhi -.L2872: +.L2874: mov r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L2880: +.L2882: .align 2 -.L2879: +.L2881: .word .LANCHOR2 .word .LC150 .word .LANCHOR4+1768 @@ -17431,17 +17430,17 @@ FtlGcReFreshBadBlk: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, lr} .save {r4, lr} - ldr r4, .L2888 + ldr r4, .L2890 ldrh r3, [r4, #-6] cmp r3, #0 - beq .L2882 + beq .L2884 ldrh r1, [r4, #-20] movw r2, #65535 cmp r1, r2 - bne .L2882 + bne .L2884 ldrh r2, [r4, #-2] cmp r2, r3 - ldr r2, .L2888+4 + ldr r2, .L2890+4 movcs r3, #0 strcsh r3, [r4, #-2] @ movhi ldrh r3, [r4, #-2] @@ -17452,12 +17451,12 @@ FtlGcReFreshBadBlk: ldrh r3, [r4, #-2] add r3, r3, #1 strh r3, [r4, #-2] @ movhi -.L2882: +.L2884: mov r0, #0 ldmfd sp!, {r4, pc} -.L2889: +.L2891: .align 2 -.L2888: +.L2890: .word .LANCHOR2-1520 .word .LANCHOR4+1768 .fnend @@ -17472,40 +17471,40 @@ FtlGcFreeBadSuperBlk: stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 - ldr r5, .L2904 + ldr r5, .L2906 ldrh r3, [r5, #-6] cmp r3, #0 - beq .L2892 + beq .L2894 sub r5, r5, #6 mov r8, r0 mov r7, #0 mov r9, r5 -.L2891: - ldr r3, .L2904+4 +.L2893: + ldr r3, .L2906+4 uxth r2, r7 ldrh r3, [r3] cmp r3, r2 - bls .L2901 - ldr r3, .L2904+8 + bls .L2903 + ldr r3, .L2906+8 mov r1, r8 mov r10, #0 add r3, r3, r2 ldrb r0, [r3, #-1708] @ zero_extendqisi2 bl V2P_block - ldr ip, .L2904+12 + ldr ip, .L2906+12 mov fp, r0 -.L2893: +.L2895: ldrh r3, [r5] uxth r4, r10 cmp r3, r4 - bls .L2902 + bls .L2904 mov r3, r4, asl #1 add r6, ip, r3 ldrh r3, [ip, r3] cmp r3, fp - bne .L2894 + bne .L2896 mov r1, fp - ldr r0, .L2904+16 + ldr r0, .L2906+16 str ip, [sp, #4] bl printk mov r0, fp @@ -17514,32 +17513,32 @@ FtlGcFreeBadSuperBlk: ldrh r2, [r5] mov r3, r6 ldr ip, [sp, #4] -.L2895: +.L2897: cmp r4, r2 ldrcch r1, [r3, #2] addcc r4, r4, #1 uxthcc r4, r4 strcch r1, [r3], #2 @ movhi - bcc .L2895 -.L2903: + bcc .L2897 +.L2905: sub r2, r2, #1 strh r2, [r9] @ movhi -.L2894: +.L2896: add r10, r10, #1 - b .L2893 -.L2902: + b .L2895 +.L2904: add r7, r7, #1 - b .L2891 -.L2901: + b .L2893 +.L2903: bl FtlGcReFreshBadBlk -.L2892: +.L2894: mov r0, #0 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2905: +.L2907: .align 2 -.L2904: +.L2906: .word .LANCHOR2-1520 .word .LANCHOR2-1736 .word .LANCHOR2 @@ -17554,7 +17553,7 @@ update_vpc_list: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L2916 + ldr r2, .L2918 mov r3, r0, asl #1 stmfd sp!, {r4, lr} .save {r4, lr} @@ -17562,31 +17561,31 @@ update_vpc_list: ldr r1, [r2, #-1408] ldrh r3, [r1, r3] cmp r3, #0 - bne .L2907 - ldr r0, .L2916+4 + bne .L2909 + ldr r0, .L2918+4 movw r1, #1164 ldrh ip, [r0, r1] cmp ip, r4 mvneq r3, #0 streqh r3, [r0, r1] @ movhi - beq .L2909 + beq .L2911 add r1, r2, #884 ldrh r1, [r1] cmp r1, r4 - beq .L2915 + beq .L2917 add r1, r2, #932 ldrh r1, [r1] cmp r1, r4 - beq .L2915 + beq .L2917 add r2, r2, #980 ldrh r2, [r2] cmp r2, r4 - beq .L2915 -.L2909: + beq .L2917 +.L2911: mov r1, r4 - ldr r0, .L2916+8 + ldr r0, .L2918+8 bl List_remove_node - ldr r2, .L2916+12 + ldr r2, .L2918+12 mov r0, r4 ldrh r3, [r2] sub r3, r3, #1 @@ -17596,14 +17595,14 @@ update_vpc_list: bl FtlGcFreeBadSuperBlk mov r0, #1 ldmfd sp!, {r4, pc} -.L2907: +.L2909: bl List_update_data_list -.L2915: +.L2917: mov r0, #0 ldmfd sp!, {r4, pc} -.L2917: +.L2919: .align 2 -.L2916: +.L2918: .word .LANCHOR2 .word .LANCHOR4 .word .LANCHOR2+864 @@ -17622,17 +17621,17 @@ decrement_vpc_count: stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r4, r0 - beq .L2919 - ldr r5, .L2929 + beq .L2921 + ldr r5, .L2931 mov r6, r0, asl #1 ldr r3, [r5, #-1408] ldrh r2, [r3, r6] cmp r2, #0 subne r2, r2, #1 strneh r2, [r3, r6] @ movhi - bne .L2919 + bne .L2921 mov r1, r4 - ldr r0, .L2929+4 + ldr r0, .L2931+4 bl printk ldr r3, [r5, #-1408] mov r2, #32 @@ -17641,7 +17640,7 @@ decrement_vpc_count: strh r2, [r3, r6] @ movhi bl test_node_in_list cmp r0, #0 - beq .L2921 + beq .L2923 mov r1, r4 add r0, r5, #876 bl List_remove_node @@ -17652,35 +17651,35 @@ decrement_vpc_count: strh r3, [r2] @ movhi bl INSERT_DATA_LIST ldr r3, [r5, #-1408] - ldr r0, .L2929+8 + ldr r0, .L2931+8 mov r1, r4 ldrh r2, [r3, r6] bl printk -.L2921: +.L2923: mov r0, r4 bl FtlGcRefreshBlock - b .L2924 -.L2919: - ldr r6, .L2929+12 + b .L2926 +.L2921: + ldr r6, .L2931+12 movw r5, #1748 movw r3, #65535 ldrh r0, [r6, r5] cmp r0, r3 streqh r4, [r6, r5] @ movhi - beq .L2924 + beq .L2926 cmp r0, r4 - beq .L2924 + beq .L2926 bl update_vpc_list strh r4, [r6, r5] @ movhi adds r0, r0, #0 movne r0, #1 ldmfd sp!, {r4, r5, r6, pc} -.L2924: +.L2926: mov r0, #0 ldmfd sp!, {r4, r5, r6, pc} -.L2930: +.L2932: .align 2 -.L2929: +.L2931: .word .LANCHOR2 .word .LC152 .word .LC153 @@ -17698,7 +17697,7 @@ FtlRecoverySuperblock: movw r2, #65535 mov r1, r0 cmp r3, r2 - beq .L3075 + beq .L3077 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #68 @@ -17708,48 +17707,48 @@ FtlRecoverySuperblock: ldrb r3, [r0, #6] @ zero_extendqisi2 ldr r0, [sp, #8] str r3, [sp] - ldr r3, .L3090 + ldr r3, .L3092 ldrh r3, [r3, #-4] cmp r3, r0 mov r3, #0 streqh r3, [r1, #4] @ movhi streqb r3, [r1, #6] ldrneh r0, [r1, #16] - beq .L3072 -.L2935: + beq .L3074 +.L2937: cmp r0, r2 add r3, r3, #1 uxtheq r0, r3 addeq r0, r1, r0, asl #1 ldreqh r0, [r0, #16] - beq .L2935 -.L3085: + beq .L2937 +.L3087: mov r9, r1 ldrb r1, [r1, #8] @ zero_extendqisi2 cmp r1, #1 - bne .L2937 + bne .L2939 bl FtlGetLastWrittenPage cmn r0, #1 mov r4, r0 - beq .L2938 - ldr r3, .L3090+4 + beq .L2940 + ldr r3, .L3092+4 ldrb r3, [r3, #-2744] @ zero_extendqisi2 cmp r3, #0 - bne .L3076 - ldr r3, .L3090+8 + bne .L3078 + ldr r3, .L3092+8 add r3, r3, r0, asl #1 ldrh r6, [r3, #80] - b .L3009 -.L2937: + b .L3011 +.L2939: mov r1, #0 bl FtlGetLastWrittenPage cmn r0, #1 mov r4, r0 - beq .L2938 -.L3076: + beq .L2940 +.L3078: mov r6, r4 -.L3009: - ldr r3, .L3090+4 +.L3011: + ldr r3, .L3092+4 movw r8, #65535 sub r2, r3, #1728 sub r3, r3, #1648 @@ -17764,16 +17763,16 @@ FtlRecoverySuperblock: mov r0, r3 mov r5, r2 mov r10, r2 - b .L2940 -.L2938: + b .L2942 +.L2940: mov r3, #0 strh r3, [r9, #2] @ movhi strb r3, [r9, #6] - b .L3072 -.L2942: + b .L3074 +.L2944: ldrh r3, [r0, #2]! cmp r3, r8 - beq .L2941 + beq .L2943 mov r1, #36 orr r3, r6, r3, asl #10 mla r1, r1, r5, ip @@ -17787,22 +17786,22 @@ FtlRecoverySuperblock: bic r3, r3, #3 add r3, lr, r3 str r3, [r1, #12] -.L2941: +.L2943: add r2, r2, #1 -.L2940: +.L2942: ldr r1, [sp, #4] uxth r3, r2 cmp r3, r1 - bcc .L2942 + bcc .L2944 ldrb r3, [r9, #8] @ zero_extendqisi2 - ldr fp, .L3090+4 + ldr fp, .L3092+4 cmp r3, #1 movne r3, #0 - bne .L3077 + bne .L3079 ldrb lr, [fp, #-2744] @ zero_extendqisi2 adds r3, lr, #0 movne r3, #1 -.L3077: +.L3079: str r3, [sp, #24] mov r1, r5 ldr r2, [sp, #24] @@ -17810,25 +17809,25 @@ FtlRecoverySuperblock: ldr r0, [fp, #-1504] bl FlashReadPages ldr r3, [fp, #-1612] - ldr r2, .L3090+4 + ldr r2, .L3092+4 str r3, [sp, #28] movw r3, #65535 str r3, [sp, #16] -.L2944: +.L2946: uxth r7, r10 cmp r7, r5 - bcs .L2951 + bcs .L2953 mov r1, #36 ldr r0, [r2, #-1504] mul r1, r1, r10 add ip, r0, r1 ldr r1, [r0, r1] cmp r1, #0 - bne .L2945 + bne .L2947 ldr ip, [ip, #12] ldr r8, [ip, #4] cmn r8, #1 - beq .L2946 + beq .L2948 ldr r1, [r2, #-1612] mov r0, r8 str ip, [sp, #12] @@ -17839,57 +17838,57 @@ FtlRecoverySuperblock: ldr ip, [sp, #12] addne r8, r8, #1 strne r8, [r2, #-1612] -.L2946: +.L2948: ldr r1, [ip] cmn r1, #1 - bne .L2947 -.L2951: + bne .L2949 +.L2953: cmp r7, r5 - ldr r5, .L3090+4 - bne .L3073 + ldr r5, .L3092+4 + bne .L3075 add fp, r4, #1 uxth r3, fp str r3, [sp, #4] ldr r3, [r5, #-1504] ldr r0, [r3, #4] - b .L3078 -.L2945: + b .L3080 +.L2947: ldr r1, [ip, #4] - ldr r0, .L3090+12 + ldr r0, .L3092+12 str r2, [sp, #4] bl printk uxth r3, r6 ldrh r1, [r9] str r3, [sp, #16] ldr r2, [sp, #4] - ldr r3, .L3090+16 + ldr r3, .L3092+16 strh r1, [r3] @ movhi -.L2947: +.L2949: add r10, r10, #1 - b .L2944 -.L3073: + b .L2946 +.L3075: uxth r3, r4 str r3, [sp, #4] ldr r3, [fp, #-1504] mov r2, #36 mla r7, r2, r7, r3 ldr r0, [r7, #4] -.L3078: +.L3080: ubfx r0, r0, #10, #16 bl P2V_plane ldrb r3, [r9, #8] @ zero_extendqisi2 cmp r3, #1 str r0, [sp, #12] - bne .L2953 + bne .L2955 ldrb r2, [r5, #-2744] @ zero_extendqisi2 cmp r2, #0 ldreq r1, [sp, #4] - ldreq r2, .L3090+8 + ldreq r2, .L3092+8 addeq r2, r2, r1, asl #1 ldreqh r2, [r2, #80] streq r2, [sp, #4] -.L2953: - ldr r2, .L3090 +.L2955: + ldr r2, .L3092 ldr r1, [sp, #4] ldr r0, [sp, #12] ldrh r2, [r2, #-4] @@ -17908,7 +17907,7 @@ FtlRecoverySuperblock: cmpeq r0, ip moveq r0, r9 moveq r1, r2 - beq .L3083 + beq .L3085 clz r3, r3 ldr r2, [sp, #28] ldr r1, [sp, #16] @@ -17919,10 +17918,10 @@ FtlRecoverySuperblock: cmp r1, r2 orrne r3, r3, #1 cmp r3, #0 - beq .L2957 - ldr r3, .L3090+20 + beq .L2959 + ldr r3, .L3092+20 uxth fp, r6 - ldr r8, .L3090+4 + ldr r8, .L3092+4 mvn r7, #0 mov r6, r7 ldr r2, [r3, #1760] @@ -17936,10 +17935,10 @@ FtlRecoverySuperblock: subgt r4, fp, #7 ldrle r4, [sp, #8] uxthgt r4, r4 -.L2960: +.L2962: cmp r4, fp - bhi .L2973 - ldr r3, .L3090+24 + bhi .L2975 + ldr r3, .L3092+24 mov r0, #36 ldr lr, [r8, #-1504] ldr r1, [sp, #20] @@ -17947,11 +17946,11 @@ FtlRecoverySuperblock: str r3, [sp, #16] mov r3, #0 mov r5, r3 -.L2974: +.L2976: ldr ip, [sp, #16] uxth r2, r3 cmp r2, ip - bcs .L3086 + bcs .L3088 ldrh r2, [r1, #2]! movw ip, #65535 add r3, r3, #1 @@ -17961,8 +17960,8 @@ FtlRecoverySuperblock: addne r5, r5, #1 uxthne r5, r5 strne r2, [ip, #4] - b .L2974 -.L3086: + b .L2976 +.L3088: mov r1, r5 ldr r2, [sp, #24] ldr r0, [r8, #-1504] @@ -17972,97 +17971,97 @@ FtlRecoverySuperblock: ldrb ip, [r8, #-2744] @ zero_extendqisi2 movw r1, #65535 mla r5, r2, r5, r3 - ldr r2, .L3090+28 + ldr r2, .L3092+28 add r2, r2, r4, asl #1 -.L2963: +.L2965: cmp r3, r5 - beq .L3087 + beq .L3089 ldr r0, [r3] cmp r0, #0 - bne .L2964 + bne .L2966 ldr r0, [r3, #12] ldrh lr, [r0] cmp lr, r1 - beq .L2965 + beq .L2967 ldr r0, [r0, #4] cmn r0, #1 - beq .L2965 - ldr lr, .L3090+20 + beq .L2967 + ldr lr, .L3092+20 cmn r7, #1 ldr r6, [lr, #1760] str r0, [lr, #1760] - bne .L2965 + bne .L2967 ldrh r0, [r2] cmp r0, r1 - bne .L2966 + bne .L2968 cmp ip, #0 - beq .L2965 -.L2966: + beq .L2967 +.L2968: ldr r0, [sp] cmp r6, r0 mvneq r7, #0 movne r7, r6 - b .L2965 -.L2964: + b .L2967 +.L2966: ldrh r1, [r9] movw r2, #1802 - ldr r3, .L3090+20 + ldr r3, .L3092+20 strh r1, [r3, r2] @ movhi ldrb r2, [r9, #8] @ zero_extendqisi2 cmp r2, #0 - bne .L2957 - ldr r2, .L3090+28 + bne .L2959 + ldr r2, .L3092+28 mov r4, r4, asl #1 ldrh r1, [r2, r4] movw r2, #65535 cmp r1, r2 - bne .L2968 + bne .L2970 cmn r7, #1 strne r7, [r3, #1760] - bne .L2957 + bne .L2959 ldr r2, [sp] cmp r10, r2 strne r10, [r3, #1760] ldreq r2, [r3, #1760] - bne .L2957 - b .L3084 -.L2968: + bne .L2959 + b .L3086 +.L2970: ldr r2, [sp] cmp r6, r2 - beq .L2971 + beq .L2973 cmn r6, #1 strne r6, [r3, #1760] - b .L2957 -.L2971: + b .L2959 +.L2973: ldr r2, [r3, #1760] ldr r1, [sp] cmp r2, r1 - beq .L2957 -.L3084: + beq .L2959 +.L3086: sub r2, r2, #1 - b .L3079 -.L2965: + b .L3081 +.L2967: add r3, r3, #36 - b .L2963 -.L3087: + b .L2965 +.L3089: add r4, r4, #1 uxth r4, r4 - b .L2960 -.L2973: - ldr r3, .L3090+20 + b .L2962 +.L2975: + ldr r3, .L3092+20 mvn r2, #0 -.L3079: +.L3081: str r2, [r3, #1760] -.L2957: - ldr fp, .L3090+20 +.L2959: + ldr fp, .L3092+20 movw r3, #1804 ldr r10, [sp, #8] mov r2, #1 strh r2, [fp, r3] @ movhi -.L2975: - ldr r3, .L3090+4 +.L2977: + ldr r3, .L3092+4 movw lr, #65535 - ldr r2, .L3090+24 + ldr r2, .L3092+24 mov r1, #36 ldr r5, [sp, #20] mov r4, #0 @@ -18070,44 +18069,44 @@ FtlRecoverySuperblock: ldrh r6, [r2] ldrb r8, [r3, #-2744] @ zero_extendqisi2 str r4, [sp, #16] -.L2976: +.L2978: uxth r3, r4 cmp r3, r6 - bcs .L3088 + bcs .L3090 ldrh r3, [r5, #2]! cmp r3, lr - beq .L2977 + beq .L2979 ldr r2, [sp, #16] orr r3, r10, r3, asl #10 mla r2, r1, r2, r7 str r3, [r2, #4] ldrb r0, [r9, #8] @ zero_extendqisi2 cmp r0, #1 - bne .L2978 + bne .L2980 cmp r8, #0 orrne r3, r3, #-2147483648 strne r3, [r2, #4] -.L2978: +.L2980: ldr r3, [sp, #16] add ip, r3, #1 uxth r3, ip str r3, [sp, #16] -.L2977: +.L2979: add r4, r4, #1 - b .L2976 -.L3088: - ldr r4, .L3090+4 + b .L2978 +.L3090: + ldr r4, .L3092+4 ldr r1, [sp, #16] ldr r2, [sp, #24] ldr r0, [r4, #-1504] bl FlashReadPages mov r3, #0 -.L3082: +.L3084: str r3, [sp, #28] ldr r2, [sp, #16] ldrh r3, [sp, #28] cmp r3, r2 - bcs .L3089 + bcs .L3091 ldr r3, [sp, #28] mov r5, #36 ldr r8, [r4, #-1504] @@ -18119,7 +18118,7 @@ FtlRecoverySuperblock: bl P2V_plane ldr r3, [sp, #8] cmp r10, r3 - bcc .L2981 + bcc .L2983 ldr r3, [sp, #32] ldr r2, [sp, #8] cmp r0, r3 @@ -18128,25 +18127,25 @@ FtlRecoverySuperblock: cmp r10, r2 movne r3, #0 cmp r3, #0 - bne .L2981 + bne .L2983 ldr r3, [sp, #12] ldr r2, [sp, #4] cmp r0, r3 cmpeq r10, r2 - beq .L2982 + beq .L2984 ldr r3, [r8, r5] cmn r3, #1 - beq .L2983 + beq .L2985 ldr r7, [r7, #12] movw r3, #61589 ldrh r2, [r7] cmp r2, r3 ldrneh r0, [r9] - bne .L3080 + bne .L3082 ldr r3, [r7, #4] cmn r3, #1 str r3, [sp] - beq .L2985 + beq .L2987 mov r0, r3 ldr r1, [r4, #-1612] bl ftl_cmp_data_ver @@ -18154,7 +18153,7 @@ FtlRecoverySuperblock: ldrne r3, [sp] addne r3, r3, #1 strne r3, [r4, #-1612] -.L2985: +.L2987: ldr r6, [r7, #8] add r1, sp, #56 ldr r3, [r7, #12] @@ -18164,14 +18163,14 @@ FtlRecoverySuperblock: bl log2phys ldr r1, [fp, #1760] cmn r1, #1 - beq .L2986 + beq .L2988 ldr r0, [sp] bl ftl_cmp_data_ver cmp r0, #0 - beq .L2986 + beq .L2988 ldr r3, [sp, #52] cmn r3, #1 - beq .L2987 + beq .L2989 ldr r0, [r4, #-1504] mov r2, #0 mov r1, #1 @@ -18185,22 +18184,22 @@ FtlRecoverySuperblock: str r3, [sp, #36] ldr r3, [r2, r5] cmn r3, #1 - bne .L2988 - b .L2989 -.L2987: + bne .L2990 + b .L2991 +.L2989: ldr r3, [sp, #60] ldr r2, [sp, #56] cmp r2, r3 - bne .L2981 + bne .L2983 mov r0, r6 add r1, sp, #52 mov r2, #1 bl log2phys - b .L2981 -.L2988: + b .L2983 +.L2990: ldr r7, [r8, #8] cmp r7, r6 - bne .L2989 + bne .L2991 ldr r0, [fp, #1760] ldr r1, [sp, #36] str r2, [sp, #44] @@ -18209,85 +18208,85 @@ FtlRecoverySuperblock: cmp r0, #0 ldr ip, [sp, #40] ldr r2, [sp, #44] - beq .L2989 + beq .L2991 ldr r3, [sp, #56] ldr r1, [sp, #60] cmp r3, r1 - beq .L2994 + beq .L2996 ldr r1, [sp, #52] cmp r3, r1 - beq .L2989 + beq .L2991 cmn r3, #1 streq r3, [r2, r5] - beq .L2993 + beq .L2995 str r3, [ip, #4] mov r0, ip mov r1, #1 mov r2, #0 ldr r8, [ip, #12] bl FlashReadPages -.L2993: +.L2995: ldr r3, [r4, #-1504] ldr r3, [r3, r5] cmn r3, #1 - beq .L2994 + beq .L2996 ldr r5, [r8, #4] ldr r0, [fp, #1760] mov r1, r5 bl ftl_cmp_data_ver cmp r0, #0 - beq .L2994 + beq .L2996 ldr r0, [sp, #36] mov r1, r5 bl ftl_cmp_data_ver cmp r0, #0 - beq .L2989 -.L2994: + beq .L2991 +.L2996: mov r0, r7 ldr r1, [sp, #52] bl FtlReUsePrevPpa -.L2989: +.L2991: mvn r3, #0 str r3, [sp, #52] - b .L2996 -.L2986: + b .L2998 +.L2988: ldr r3, [sp, #60] ldr r2, [sp, #56] cmp r2, r3 - beq .L2996 + beq .L2998 ldr r3, [sp, #52] cmn r3, #1 - beq .L2998 + beq .L3000 ldr r2, [r4, #-1720] ubfx r3, r3, #10, #21 cmp r3, r2 - bcs .L2981 -.L2998: + bcs .L2983 +.L3000: mov r0, r6 add r1, sp, #60 mov r2, #1 bl log2phys ldr r8, [sp, #56] cmn r8, #1 - beq .L2996 + beq .L2998 ldr r3, [sp, #52] cmp r8, r3 - beq .L2996 + beq .L2998 ubfx r0, r8, #10, #16 - ldr r5, .L3090+32 + ldr r5, .L3092+32 bl P2V_block_in_plane ldrh r3, [r5] cmp r3, r0 - beq .L3000 + beq .L3002 add r2, r5, #48 ldrh r2, [r2] cmp r2, r0 - beq .L3000 + beq .L3002 add r3, r5, #96 ldrh r3, [r3] cmp r3, r0 - bne .L2996 -.L3000: + bne .L2998 +.L3002: ldr r0, [r5, #-2388] mov r1, #1 mov r2, #0 @@ -18298,19 +18297,19 @@ FtlRecoverySuperblock: ldr r1, [r7, #4] ldr r3, [r3] cmn r3, #1 - beq .L2996 + beq .L2998 ldr r0, [sp] bl ftl_cmp_data_ver cmp r0, #0 - bne .L2996 + bne .L2998 mov r0, r6 add r1, sp, #56 mov r2, #1 bl log2phys -.L2996: +.L2998: ldr r0, [sp, #52] cmn r0, #1 - beq .L2981 + beq .L2983 ubfx r0, r0, #10, #16 bl P2V_block_in_plane ldr r2, [r4, #-1408] @@ -18318,19 +18317,19 @@ FtlRecoverySuperblock: mov r1, r0 ldrh r3, [r2, r3] cmp r3, #0 - beq .L3001 -.L3080: + beq .L3003 +.L3082: bl decrement_vpc_count - b .L2981 -.L3001: - ldr r0, .L3090+36 + b .L2983 +.L3003: + ldr r0, .L3092+36 bl printk - b .L2981 -.L2983: + b .L2983 +.L2985: ldrh r2, [r9] mov r1, r6 - ldr r3, .L3090+16 - ldr r0, .L3090+40 + ldr r3, .L3092+16 + ldr r0, .L3092+40 strh r2, [r3] @ movhi ldr r2, [sp] bl printk @@ -18343,80 +18342,80 @@ FtlRecoverySuperblock: strls r1, [r2, #1812] ldrh r0, [r9] bl decrement_vpc_count - ldr r3, .L3090+20 + ldr r3, .L3092+20 ldr r3, [r3, #1760] cmn r3, #1 ldreq r3, [sp] - beq .L3081 + beq .L3083 ldr r2, [sp] cmp r3, r2 - bls .L2981 + bls .L2983 mov r3, r2 -.L3081: +.L3083: str r3, [fp, #1760] -.L2981: +.L2983: ldr r3, [sp, #28] add r3, r3, #1 - b .L3082 -.L3089: + b .L3084 +.L3091: ldrb r3, [r9, #8] @ zero_extendqisi2 add r10, r10, #1 cmp r3, #1 uxth r10, r10 - bne .L3005 - ldr r3, .L3090+4 + bne .L3007 + ldr r3, .L3092+4 ldrb r3, [r3, #-2744] @ zero_extendqisi2 cmp r3, #0 - beq .L3005 - ldr r3, .L3090+44 + beq .L3007 + ldr r3, .L3092+44 ldr r2, [sp, #4] ldrh r3, [r3] cmp r2, r10 cmpeq r3, r10 - beq .L2982 -.L3005: - ldr r2, .L3090+48 + beq .L2984 +.L3007: + ldr r2, .L3092+48 ldrh r3, [r2] cmp r10, r3 - bne .L2975 + bne .L2977 ldrh r1, [r2, #-68] movw r0, #65535 mov r3, #0 strh r10, [r9, #2] @ movhi strh r3, [r9, #4] @ movhi -.L3006: +.L3008: uxth r2, r3 cmp r2, r1 - bcs .L3072 + bcs .L3074 ldr lr, [sp, #20] add r3, r3, #1 ldrh ip, [lr, #2]! cmp ip, r0 str lr, [sp, #20] - beq .L3006 + beq .L3008 strb r2, [r9, #6] - b .L3072 -.L2982: + b .L3074 +.L2984: ldrb r3, [sp, #12] @ zero_extendqisi2 mov r0, r9 ldr r1, [sp, #4] strb r3, [r9, #6] ldrh r3, [sp, #4] strh r3, [r9, #2] @ movhi -.L3083: +.L3085: ldr r2, [sp, #12] bl ftl_sb_update_avl_pages -.L3072: +.L3074: mov r0, #0 add sp, sp, #68 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3075: +.L3077: mov r0, #0 bx lr -.L3091: +.L3093: .align 2 -.L3090: +.L3092: .word .LANCHOR2-1664 .word .LANCHOR2 .word .LANCHOR0 @@ -18450,16 +18449,16 @@ FtlSlcSuperblockCheck: ldmeqfd sp!, {r3, r4, r5, r6, r7, pc} ldrb r3, [r0, #6] @ zero_extendqisi2 mov r4, r0 - ldr r5, .L3105 - ldr r6, .L3105+4 + ldr r5, .L3107 + ldr r6, .L3107+4 add r3, r0, r3, asl #1 - ldr r7, .L3105+8 + ldr r7, .L3107+8 ldrh r3, [r3, #16] -.L3096: +.L3098: movw r2, #65535 cmp r3, r2 - bne .L3104 -.L3098: + bne .L3106 +.L3100: ldrb r3, [r4, #6] @ zero_extendqisi2 ldrh r2, [r7] add r3, r3, #1 @@ -18474,19 +18473,19 @@ FtlSlcSuperblockCheck: ldrb r3, [r4, #6] @ zero_extendqisi2 add r3, r4, r3, asl #1 ldrh r3, [r3, #16] - b .L3096 -.L3104: + b .L3098 +.L3106: ldrb r1, [r4, #8] @ zero_extendqisi2 cmp r1, #1 - bne .L3099 + bne .L3101 ldrb r3, [r5, #-2744] @ zero_extendqisi2 cmp r3, #0 - bne .L3099 + bne .L3101 ldrh r3, [r4, #2] mov r3, r3, asl #1 ldrh r3, [r6, r3] cmp r3, r2 - bne .L3099 + bne .L3101 ldrh r3, [r4, #4] ldrh r0, [r4] sub r3, r3, #1 @@ -18494,14 +18493,14 @@ FtlSlcSuperblockCheck: bl decrement_vpc_count ldrh r2, [r4, #4] cmp r2, #0 - bne .L3098 + bne .L3100 ldrh r3, [r4, #2] strb r2, [r4, #6] add r3, r3, #1 strh r3, [r4, #2] @ movhi ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L3099: - ldr r2, .L3105 +.L3101: + ldr r2, .L3107 ldrb r3, [r2, #-2744] @ zero_extendqisi2 cmp r3, #0 ldmeqfd sp!, {r3, r4, r5, r6, r7, pc} @@ -18525,9 +18524,9 @@ FtlSlcSuperblockCheck: strb r3, [r4, #6] strh r2, [r4, #2] @ movhi ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L3106: +.L3108: .align 2 -.L3105: +.L3107: .word .LANCHOR2 .word .LANCHOR0+1104 .word .LANCHOR2-1736 @@ -18546,17 +18545,17 @@ get_new_active_ppa: strb r3, [r0, #10] mov r4, r0 ldrb r3, [r0, #6] @ zero_extendqisi2 - ldr r7, .L3125 - ldr r8, .L3125+4 + ldr r7, .L3127 + ldr r8, .L3127+4 add r3, r0, r3, asl #1 - ldr r9, .L3125+8 + ldr r9, .L3127+8 ldrh r2, [r3, #16] -.L3108: +.L3110: movw r1, #65535 cmp r2, r1 - ldr r6, .L3125 - bne .L3124 -.L3109: + ldr r6, .L3127 + bne .L3126 +.L3111: ldrb r3, [r4, #6] @ zero_extendqisi2 ldrh r2, [r7] add r3, r3, #1 @@ -18571,35 +18570,35 @@ get_new_active_ppa: ldrb r3, [r4, #6] @ zero_extendqisi2 add r3, r4, r3, asl #1 ldrh r2, [r3, #16] - b .L3108 -.L3124: + b .L3110 +.L3126: ldrb r3, [r4, #8] @ zero_extendqisi2 ldrh r5, [r4, #2] cmp r3, #1 ldrh r3, [r4, #4] - bne .L3111 + bne .L3113 ldrb r0, [r8, #-2744] @ zero_extendqisi2 cmp r0, #0 - bne .L3111 + bne .L3113 mov r0, r5, asl #1 ldrh r0, [r9, r0] cmp r0, r1 - bne .L3111 + bne .L3113 sub r3, r3, #1 ldrh r0, [r4] strh r3, [r4, #4] @ movhi bl decrement_vpc_count - b .L3109 -.L3111: - ldr r7, .L3125+4 + b .L3111 +.L3113: + ldr r7, .L3127+4 orr r5, r5, r2, asl #10 sub r3, r3, #1 strh r3, [r4, #4] @ movhi -.L3112: +.L3114: ldrb r3, [r4, #6] @ zero_extendqisi2 movw r2, #65535 ldrh r0, [r6] -.L3114: +.L3116: add r3, r3, #1 uxtb r3, r3 cmp r3, r0 @@ -18610,39 +18609,39 @@ get_new_active_ppa: add r1, r4, r3, asl #1 ldrh r1, [r1, #16] cmp r1, r2 - beq .L3114 + beq .L3116 strb r3, [r4, #6] ldrb r3, [r4, #8] @ zero_extendqisi2 cmp r3, #1 - bne .L3119 + bne .L3121 ldrb r3, [r7, #-2744] @ zero_extendqisi2 cmp r3, #0 - bne .L3116 + bne .L3118 ldrh r3, [r4, #2] - ldr r2, .L3125+8 + ldr r2, .L3127+8 mov r3, r3, asl #1 ldrh r2, [r2, r3] movw r3, #65535 cmp r2, r3 - bne .L3116 + bne .L3118 ldrh r3, [r4, #4] cmp r3, #0 - beq .L3116 + beq .L3118 sub r3, r3, #1 ldrh r0, [r4] strh r3, [r4, #4] @ movhi bl decrement_vpc_count - b .L3112 -.L3116: - ldr r2, .L3125+4 + b .L3114 +.L3118: + ldr r2, .L3127+4 ldrb r3, [r2, #-2744] @ zero_extendqisi2 cmp r3, #0 - beq .L3119 + beq .L3121 sub r1, r2, #1664 ldrh r0, [r4, #2] ldrh r3, [r1, #-2] cmp r0, r3 - bcc .L3119 + bcc .L3121 ldrh r3, [r4] ldr r0, [r2, #-1408] ldrh ip, [r4, #4] @@ -18655,12 +18654,12 @@ get_new_active_ppa: strh r3, [r4, #4] @ movhi strb r3, [r4, #6] strh r2, [r4, #2] @ movhi -.L3119: +.L3121: mov r0, r5 ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, pc} -.L3126: +.L3128: .align 2 -.L3125: +.L3127: .word .LANCHOR2-1736 .word .LANCHOR2 .word .LANCHOR0+1104 @@ -18677,29 +18676,29 @@ FtlWriteDumpData: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #44 sub sp, sp, #44 - ldr r4, .L3146 + ldr r4, .L3148 ldr r3, [r4, #-1280] cmp r3, #0 - bne .L3127 + bne .L3129 add r7, r4, #884 ldrh r5, [r7, #4] cmp r5, #0 - beq .L3129 + beq .L3131 ldrb r3, [r4, #892] @ zero_extendqisi2 cmp r3, #0 - bne .L3129 + bne .L3131 sub r3, r4, #1664 ldrb r2, [r4, #891] @ zero_extendqisi2 ldrh r3, [r3, #-4] mul r3, r3, r2 cmp r5, r3 - beq .L3129 + beq .L3131 ldrb r8, [r4, #894] @ zero_extendqisi2 sub r3, r4, #1728 ldr r6, [r4, #-1284] cmp r8, #0 ldrh r9, [r3, #-8] - bne .L3127 + bne .L3129 sub r6, r6, #1 mov r1, sp mov r2, r8 @@ -18714,31 +18713,31 @@ FtlWriteDumpData: str r3, [sp, #8] str r5, [sp, #16] str r8, [r5, #4] - beq .L3131 + beq .L3133 mov r1, #1 mov r2, r8 add r0, sp, #4 bl FlashReadPages - b .L3132 -.L3131: + b .L3134 +.L3133: sub r3, r4, #1648 mov r1, #255 ldrh r2, [r3, #-10] bl ftl_memset -.L3132: - ldr r3, .L3146+4 +.L3134: + ldr r3, .L3148+4 mov r8, #0 - ldr fp, .L3146 + ldr fp, .L3148 mov r9, r9, asl #2 mov r10, r8 strh r3, [r5] @ movhi -.L3133: +.L3135: cmp r8, r9 - beq .L3134 + beq .L3136 ldrh r3, [r7, #4] - ldr r0, .L3146+8 + ldr r0, .L3148+8 cmp r3, #0 - beq .L3134 + beq .L3136 ldr r3, [sp, #8] add r8, r8, #1 str r6, [r5, #8] @@ -18760,21 +18759,21 @@ FtlWriteDumpData: bl FlashProgPages ldrh r0, [r7] bl decrement_vpc_count - b .L3133 -.L3134: + b .L3135 +.L3136: mov r3, #1 - b .L3145 -.L3129: + b .L3147 +.L3131: mov r3, #0 -.L3145: +.L3147: strb r3, [r4, #894] -.L3127: +.L3129: add sp, sp, #44 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3147: +.L3149: .align 2 -.L3146: +.L3148: .word .LANCHOR2 .word -3947 .word .LANCHOR2+884 @@ -18791,29 +18790,29 @@ l2p_flush: .save {r3, r4, r5, r6, r7, lr} bl FtlWriteDumpData mov r4, #0 - ldr r6, .L3154 + ldr r6, .L3156 mov r7, #12 - ldr r5, .L3154+4 -.L3149: + ldr r5, .L3156+4 +.L3151: ldrh r3, [r5] uxth r0, r4 cmp r3, r0 - bls .L3153 + bls .L3155 ldr r3, [r6, #-1364] mla r3, r7, r0, r3 ldr r3, [r3, #4] cmp r3, #0 - bge .L3150 + bge .L3152 bl flush_l2p_region -.L3150: +.L3152: add r4, r4, #1 - b .L3149 -.L3153: + b .L3151 +.L3155: mov r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L3155: +.L3157: .align 2 -.L3154: +.L3156: .word .LANCHOR2 .word .LANCHOR2-1630 .fnend @@ -18829,21 +18828,21 @@ FtlSuperblockPowerLostFix: .save {r4, r5, r6, r7, r8, r9, r10, lr} .pad #40 sub sp, sp, #40 - ldr r5, .L3173 + ldr r5, .L3175 ldr r3, [r5, #-1280] cmp r3, #0 - bne .L3156 + bne .L3158 ldrb r6, [r5, #-2744] @ zero_extendqisi2 cmp r6, #0 - beq .L3172 + beq .L3174 ldrb r6, [r0, #8] @ zero_extendqisi2 cmp r6, #1 ldreqh r10, [r0, #4] - beq .L3158 + beq .L3160 mov r6, r3 -.L3172: +.L3174: mov r10, #12 -.L3158: +.L3160: ldr r7, [r5, #-1444] mvn r3, #0 str r3, [sp, #20] @@ -18852,7 +18851,7 @@ FtlSuperblockPowerLostFix: movw r2, #61589 str r7, [sp, #16] mov r4, r0 - ldr r9, .L3173 + ldr r9, .L3175 str r3, [sp, #12] mvn r3, #2 str r3, [r7, #8] @@ -18863,16 +18862,16 @@ FtlSuperblockPowerLostFix: strh r3, [r7, #2] @ movhi ldr r3, [r5, #-1476] str r2, [r3] - ldr r2, .L3173+4 + ldr r2, .L3175+4 ldr r3, [r5, #-1476] str r2, [r3, #4] -.L3159: +.L3161: subs r10, r10, #1 - bcc .L3162 + bcc .L3164 ldrh r3, [r4, #4] cmp r3, #0 - bne .L3160 -.L3162: + bne .L3162 +.L3164: ldrh r3, [r4] ldr r1, [r5, #-1408] ldrh r0, [r4, #4] @@ -18880,19 +18879,19 @@ FtlSuperblockPowerLostFix: ldrh r2, [r1, r3] rsb r2, r0, r2 strh r2, [r1, r3] @ movhi - ldr r3, .L3173+8 + ldr r3, .L3175+8 ldrh r3, [r3, #-4] strh r3, [r4, #2] @ movhi mov r3, #0 strb r3, [r4, #6] strh r3, [r4, #4] @ movhi - b .L3156 -.L3160: + b .L3158 +.L3162: mov r0, r4 bl get_new_active_ppa cmn r0, #1 str r0, [sp, #8] - beq .L3162 + beq .L3164 ldr r3, [r5, #-1612] mov r1, #1 mov r2, r6 @@ -18906,14 +18905,14 @@ FtlSuperblockPowerLostFix: bl FlashProgPages ldrh r0, [r4] bl decrement_vpc_count - b .L3159 -.L3156: + b .L3161 +.L3158: add sp, sp, #40 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L3174: +.L3176: .align 2 -.L3173: +.L3175: .word .LANCHOR2 .word 305419896 .word .LANCHOR2-1664 @@ -18930,9 +18929,9 @@ FtlVpcCheckAndModify: .save {r4, r5, r6, r7, r8, r9, lr} .pad #12 mov r5, #0 - ldr r4, .L3192 - ldr r1, .L3192+4 - ldr r0, .L3192+8 + ldr r4, .L3194 + ldr r1, .L3194+4 + ldr r0, .L3194+8 bl printk sub r3, r4, #1712 ldr r0, [r4, #-1412] @@ -18941,17 +18940,17 @@ FtlVpcCheckAndModify: mov r6, r4 mov r2, r2, asl #1 bl ftl_memset -.L3176: +.L3178: ldr r3, [r4, #-1284] cmp r5, r3 - bcs .L3190 + bcs .L3192 mov r0, r5 add r1, sp, #4 mov r2, #0 bl log2phys ldr r0, [sp, #4] cmn r0, #1 - beq .L3177 + beq .L3179 ubfx r0, r0, #10, #16 bl P2V_block_in_plane ldr r2, [r6, #-1412] @@ -18959,20 +18958,20 @@ FtlVpcCheckAndModify: ldrh r3, [r2, r0] add r3, r3, #1 strh r3, [r2, r0] @ movhi -.L3177: +.L3179: add r5, r5, #1 - b .L3176 -.L3190: - ldr r5, .L3192 + b .L3178 +.L3192: + ldr r5, .L3194 mov r7, #0 add r8, r5, #884 add r9, r5, #980 -.L3179: - ldr r3, .L3192+12 +.L3181: + ldr r3, .L3194+12 uxth r4, r7 ldrh r3, [r3] cmp r3, r4 - bls .L3191 + bls .L3193 ldr r3, [r5, #-1408] mov r6, r4, asl #1 movw r1, #65535 @@ -18981,18 +18980,18 @@ FtlVpcCheckAndModify: ldrh r3, [r3, r6] cmp r2, r1 cmpne r2, r3 - beq .L3180 + beq .L3182 ldrh r1, [r8] cmp r1, r4 - beq .L3180 + beq .L3182 ldrh r1, [r9] cmp r1, r4 - beq .L3180 - ldr r1, .L3192+16 + beq .L3182 + ldr r1, .L3194+16 ldrh r1, [r1] cmp r1, r4 - beq .L3180 - ldr r0, .L3192+20 + beq .L3182 + ldr r0, .L3194+20 mov r1, r4 bl printk ldr r3, [r5, #-1408] @@ -19001,21 +19000,21 @@ FtlVpcCheckAndModify: ldr r2, [r5, #-1412] ldrh r2, [r2, r6] strh r2, [r3, r6] @ movhi - beq .L3180 + beq .L3182 mov r0, r4 bl update_vpc_list -.L3180: +.L3182: add r7, r7, #1 - b .L3179 -.L3191: + b .L3181 +.L3193: bl l2p_flush bl FtlVpcTblFlush add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc} -.L3193: +.L3195: .align 2 -.L3192: +.L3194: .word .LANCHOR2 .word .LANCHOR3+216 .word .LC50 @@ -19033,98 +19032,98 @@ allocate_new_data_superblock: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} - ldr r5, .L3221 + ldr r5, .L3223 ldrh r7, [r0] ldr r3, [r5, #-1280] cmp r3, #0 - bne .L3195 + bne .L3197 movw r3, #65535 cmp r7, r3 mov r4, r0 - beq .L3196 + beq .L3198 ldr r2, [r5, #-1408] mov r3, r7, asl #1 mov r0, r7 ldrh r3, [r2, r3] cmp r3, #0 - beq .L3197 + beq .L3199 bl INSERT_DATA_LIST - b .L3196 -.L3197: + b .L3198 +.L3199: bl INSERT_FREE_LIST -.L3196: +.L3198: mov r3, #0 strb r3, [r4, #8] - ldr r3, .L3221 + ldr r3, .L3223 add r2, r3, #932 cmp r4, r2 - beq .L3198 + beq .L3200 sub r2, r3, #1712 ldrh r2, [r2, #-4] cmp r2, #1 - beq .L3198 + beq .L3200 ldrb r1, [r3, #-2744] @ zero_extendqisi2 cmp r1, #0 - beq .L3199 -.L3198: + beq .L3201 +.L3200: mov r3, #1 strb r3, [r4, #8] - b .L3200 -.L3199: + b .L3202 +.L3201: add r1, r3, #884 cmp r4, r1 - bne .L3200 + bne .L3202 cmp r2, #3 - beq .L3202 + beq .L3204 ldr r3, [r3, #-1620] cmp r3, #1 - bne .L3203 -.L3202: + bne .L3205 +.L3204: mov r3, #1 strb r3, [r5, #892] -.L3203: +.L3205: ldr r2, [r5, #-1872] - ldr r3, .L3221 + ldr r3, .L3223 cmp r2, #0 - beq .L3200 + beq .L3202 ldr r2, [r3, #-1568] cmp r2, #39 movls r2, #1 strlsb r2, [r3, #892] -.L3200: - ldr r3, .L3221+4 +.L3202: + ldr r3, .L3223+4 movw r2, #1748 ldrh r0, [r3, r2] movw r2, #65535 mov r6, r3 cmp r0, r2 - beq .L3205 + beq .L3207 cmp r7, r0 - bne .L3206 + bne .L3208 ldr r2, [r5, #-1408] mov r3, r0, asl #1 ldrh r3, [r2, r3] cmp r3, #0 - beq .L3207 -.L3206: + beq .L3209 +.L3208: bl update_vpc_list -.L3207: +.L3209: movw r3, #1748 mvn r2, #0 strh r2, [r6, r3] @ movhi -.L3205: +.L3207: mov r0, r4 bl allocate_data_superblock bl l2p_flush mov r0, #0 bl FtlEctTblFlush bl FtlVpcTblFlush -.L3195: +.L3197: mov r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L3222: +.L3224: .align 2 -.L3221: +.L3223: .word .LANCHOR2 .word .LANCHOR4 .fnend @@ -19140,22 +19139,22 @@ FtlReadRefresh: .save {r4, r5, r6, r7, r8, r9, r10, lr} .pad #40 sub sp, sp, #40 - ldr r7, .L3240 - ldr r5, .L3240+4 + ldr r7, .L3242 + ldr r5, .L3242+4 ldr r10, [r7, #1292] mov r6, r7 cmp r10, #0 - beq .L3224 + beq .L3226 ldr r2, [r7, #1296] ldr r3, [r5, #-1284] cmp r2, r3 - bcs .L3225 + bcs .L3227 mov r4, #2048 -.L3230: +.L3232: ldr r0, [r6, #1296] ldr r3, [r5, #-1284] cmp r0, r3 - bcs .L3229 + bcs .L3231 mov r2, #0 mov r1, sp bl log2phys @@ -19164,7 +19163,7 @@ FtlReadRefresh: str r3, [r7, #1296] ldr r2, [sp] cmn r2, #1 - beq .L3228 + beq .L3230 add r0, sp, #40 str r2, [sp, #8] mov r1, #1 @@ -19176,26 +19175,26 @@ FtlReadRefresh: bl FlashReadPages ldr r3, [sp, #4] cmp r3, #256 - bne .L3229 + bne .L3231 ldr r0, [sp] ubfx r0, r0, #10, #16 bl P2V_block_in_plane bl FtlGcRefreshBlock -.L3229: +.L3231: mvn r0, #0 - b .L3232 -.L3228: + b .L3234 +.L3230: subs r4, r4, #1 - bne .L3230 - b .L3229 -.L3225: + bne .L3232 + b .L3231 +.L3227: ldr r3, [r5, #-1588] mov r0, #0 str r0, [r7, #1292] str r0, [r7, #1296] str r3, [r7, #1288] - b .L3232 -.L3224: + b .L3234 +.L3226: ldr r1, [r5, #-1572] movw r4, #10000 ldr r9, [r5, #-1588] @@ -19207,7 +19206,7 @@ FtlReadRefresh: movhi r4, #31 movls r4, #63 cmp r8, r2 - bhi .L3234 + bhi .L3236 mov r1, r1, lsr #10 mov r0, #1000 mul r0, r0, r3 @@ -19215,15 +19214,15 @@ FtlReadRefresh: bl __aeabi_uidiv add r0, r0, r8 cmp r0, r9 - bcc .L3234 + bcc .L3236 ldrh r3, [r5, #28] ands r0, r4, r3 movne r0, r10 - bne .L3232 + bne .L3234 ldr r2, [r7, #1312] cmp r2, r3 - beq .L3232 -.L3234: + beq .L3234 +.L3236: ldrh r3, [r5, #28] mov r0, #0 str r9, [r6, #1288] @@ -19231,13 +19230,13 @@ FtlReadRefresh: str r3, [r6, #1312] mov r3, #1 str r3, [r6, #1292] -.L3232: +.L3234: add sp, sp, #40 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L3241: +.L3243: .align 2 -.L3240: +.L3242: .word .LANCHOR4 .word .LANCHOR2 .fnend @@ -19253,24 +19252,24 @@ ftl_do_gc: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #44 sub sp, sp, #44 - ldr r5, .L3406 + ldr r5, .L3408 ldr r8, [r5, #-1280] cmp r8, #0 movne r0, #0 - bne .L3395 - ldr r2, .L3406+4 + bne .L3397 + ldr r2, .L3408+4 ldr r6, [r2, #3444] cmp r6, #1 - bne .L3338 + bne .L3340 ldr r3, [r5, #-1564] cmp r3, #0 - bne .L3338 + bne .L3340 mov r4, r0 add r0, r5, #872 ldrh r0, [r0] cmp r0, #47 movls r0, r3 - bls .L3395 + bls .L3397 movw r3, #3448 mov r7, r5 ldrh r2, [r2, r3] @@ -19278,32 +19277,32 @@ ftl_do_gc: mov r9, r1 str r4, [sp, #20] cmp r2, r3 - bne .L3244 -.L3247: - ldr r8, .L3406+8 + bne .L3246 +.L3249: + ldr r8, .L3408+8 movw r5, #65535 ldrh r4, [r8, #-2] cmp r4, r5 - bne .L3245 - b .L3246 -.L3244: + bne .L3247 + b .L3248 +.L3246: add r5, r5, #980 ldrh r2, [r5] cmp r2, r3 - beq .L3247 + beq .L3249 mov r0, r6 bl FtlGcFreeTempBlock cmp r0, #0 - beq .L3247 + beq .L3249 mov r0, r6 - b .L3395 -.L3245: + b .L3397 +.L3247: ldrh r3, [r8, #-4] cmp r3, r5 - bne .L3246 + bne .L3248 ldrh r0, [r8] cmp r0, r3 - beq .L3246 + beq .L3248 ldrh r1, [r8, #2] cmp r1, r3 strneh r4, [r8, #-4] @ movhi @@ -19311,27 +19310,27 @@ ftl_do_gc: mvnne r3, #0 strneh r1, [r8] @ movhi strneh r3, [r8, #2] @ movhi -.L3246: +.L3248: ldr r1, [sp, #20] ldr r3, [r7, #-1548] cmp r1, #1 - ldr r2, .L3406 + ldr r2, .L3408 add r3, r3, #1 - ldr r6, .L3406+12 + ldr r6, .L3408+12 add r3, r3, r1, asl #7 str r3, [r7, #-1548] - bne .L3258 + bne .L3260 ldr r1, [r2, #-1872] cmp r1, #0 - bne .L3249 + bne .L3251 ldrb r2, [r2, #-2744] @ zero_extendqisi2 cmp r2, #0 - beq .L3258 -.L3249: + beq .L3260 +.L3251: ldr r2, [r7, #-1568] - ldr r4, .L3406 + ldr r4, .L3408 cmp r2, #39 - bhi .L3258 + bhi .L3260 movw r2, #1940 ldrh r2, [r6, r2] add r3, r3, r2 @@ -19341,51 +19340,51 @@ ftl_do_gc: ldrh r3, [r6, r3] movw r2, #65535 cmp r3, r2 - bne .L3258 + bne .L3260 ldrh r2, [r8, #-4] cmp r2, r3 - bne .L3258 + bne .L3260 ldr r3, [r4, #-1548] add r4, r4, #880 cmp r3, #1024 - bhi .L3250 + bhi .L3252 ldrh r3, [r4] cmp r3, #63 - bhi .L3258 -.L3250: - ldr ip, .L3406 + bhi .L3260 +.L3252: + ldr ip, .L3408 movw r3, #1940 ldrh r0, [r4] mov r1, #0 sub r4, ip, #1520 - ldr r2, .L3406+12 + ldr r2, .L3408+12 strh r1, [r6, r3] @ movhi ldrh r10, [r4, #-10] add r5, r10, #64 cmp r0, r5 - bgt .L3258 + bgt .L3260 str r1, [ip, #-1548] ldr r1, [ip, #-1568] cmp r1, #0 moveq r1, #6 - beq .L3397 + beq .L3399 cmp r1, #5 - bhi .L3252 + bhi .L3254 mov r1, #18 -.L3397: +.L3399: strh r1, [r2, r3] @ movhi -.L3252: +.L3254: mov r0, #32 bl List_get_gc_head_node movw ip, #65535 uxth r2, r0 cmp r2, ip - beq .L3257 + beq .L3259 ldrh r0, [r4, #-8] - ldr r5, .L3406 + ldr r5, .L3408 cmp r0, #0 sub r10, r5, #1520 - beq .L3254 + beq .L3256 sub r1, r5, #1664 ldr r3, [r5, #-1408] mov r2, r2, asl #1 @@ -19396,7 +19395,7 @@ ftl_do_gc: mul r1, r1, r4 add r1, r1, #1 cmp lr, r1 - bgt .L3257 + bgt .L3259 add r1, r0, #1 str r2, [sp, #28] str ip, [sp, #24] @@ -19413,9 +19412,9 @@ ftl_do_gc: cmp r4, ip ldr r3, [sp, #16] ldr r2, [sp, #28] - beq .L3257 + beq .L3259 mov ip, r4, asl #1 - ldr r0, .L3406+16 + ldr r0, .L3408+16 str ip, [sp, #12] ldrh lr, [r3, ip] ldrh r3, [r3, r2] @@ -19426,41 +19425,41 @@ ftl_do_gc: ldrh r3, [r10, #-8] cmp r3, #40 ldr ip, [sp, #12] - bls .L3255 + bls .L3257 ldr r3, [r5, #-1408] ldrh r3, [r3, ip] cmp r3, #32 strhih fp, [r10, #-8] @ movhi -.L3255: +.L3257: movw r3, #1940 mov r2, #6 strh r2, [r6, r3] @ movhi - b .L3259 -.L3254: + b .L3261 +.L3256: mov r3, #1 strh r3, [r10, #-8] @ movhi -.L3257: +.L3259: bl GetSwlReplaceBlock movw r3, #65535 cmp r0, r3 mov r4, r0 - bne .L3259 + bne .L3261 movw r3, #1940 mov r2, #0 strh r2, [r6, r3] @ movhi -.L3258: +.L3260: movw r3, #1164 movw r4, #65535 ldrh r3, [r6, r3] cmp r3, r4 - bne .L3259 - ldr r5, .L3406 + bne .L3261 + ldr r5, .L3408 add r2, r5, #980 ldrh r4, [r2] cmp r4, r3 movne r4, r3 - beq .L3402 -.L3259: + beq .L3404 +.L3261: movw r0, #65535 rsb r3, r0, r4 clz r3, r3 @@ -19470,63 +19469,63 @@ ftl_do_gc: movne r1, #0 andeq r1, r3, #1 cmp r1, #0 - beq .L3272 - ldr r3, .L3406+20 + beq .L3274 + ldr r3, .L3408+20 ldrh r0, [r3] cmp r0, #24 movhi r5, #1 - bhi .L3273 + bhi .L3275 sub r3, r3, #2544 cmp r0, #16 ldrh r5, [r3, #-4] movhi r5, r5, lsr #5 - bhi .L3273 + bhi .L3275 cmp r0, #12 movhi r5, r5, lsr #4 - bhi .L3273 + bhi .L3275 cmp r0, #8 movhi r5, r5, lsr #2 -.L3273: - ldr r1, .L3406 +.L3275: + ldr r1, .L3408 sub r2, r1, #1520 ldrh r3, [r2, #-12] cmp r3, r0 - bcs .L3277 + bcs .L3279 add r3, r1, #980 movw r0, #65535 ldrh r3, [r3] cmp r3, r0 - bne .L3278 + bne .L3280 ldrh r0, [r8, #-4] cmp r0, r3 - bne .L3278 + bne .L3280 movw r3, #1940 ldrh r0, [r6, r3] cmp r0, #0 - bne .L3279 + bne .L3281 ldr r3, [r1, #-1284] ldr r1, [r1, #1124] add r3, r3, r3, asl #1 cmp r1, r3, lsr #2 movcs r3, #18 - bcs .L3280 -.L3279: + bcs .L3282 +.L3281: movw r3, #1160 ldrh r3, [r6, r3] add r3, r3, r3, asl #1 ubfx r3, r3, #2, #16 -.L3280: +.L3282: strh r3, [r2, #-12] @ movhi mov r3, #0 str r3, [r7, #-1560] - b .L3395 -.L3278: + b .L3397 +.L3280: movw r3, #1160 ldrh r3, [r6, r3] add r3, r3, r3, asl #1 mov r3, r3, asr #2 strh r3, [r2, #-12] @ movhi -.L3277: +.L3279: cmp r9, #2 ldr r3, [r7, #-1872] movw r4, #65535 @@ -19537,51 +19536,51 @@ ftl_do_gc: cmp r9, #0 addne r5, r5, #1 uxthne r5, r5 - b .L3282 -.L3272: - ldr r5, .L3406 + b .L3284 +.L3274: + ldr r5, .L3408 add r2, r5, #980 ldrh r2, [r2] cmp r2, r0 - bne .L3283 + bne .L3285 ldrh r0, [r8, #-4] cmp r0, r2 movne r3, #0 andeq r3, r3, #1 cmp r3, #0 - beq .L3283 + beq .L3285 movw r3, #1164 ldrh r3, [r6, r3] cmp r3, r2 - beq .L3284 -.L3288: + beq .L3286 +.L3290: movw r4, #65535 - b .L3283 -.L3284: + b .L3285 +.L3286: add r4, r5, #880 sub r10, r5, #1520 str r1, [r5, #-1560] ldrh r2, [r4] ldrh r3, [r10, #-12] cmp r2, r3 - bls .L3285 - ldr r2, .L3406+12 + bls .L3287 + ldr r2, .L3408+12 movw r3, #1940 ldrh r3, [r2, r3] cmp r3, #0 - bne .L3286 + bne .L3288 ldr r3, [r5, #-1284] ldr r2, [r5, #1124] add r3, r3, r3, asl #1 cmp r2, r3, lsr #2 movcs r3, #18 - bcs .L3287 -.L3286: + bcs .L3289 +.L3288: movw r3, #1160 ldrh r3, [r6, r3] add r3, r3, r3, asl #1 ubfx r3, r3, #2, #16 -.L3287: +.L3289: strh r3, [r10, #-12] @ movhi bl FtlReadRefresh mov r0, #0 @@ -19593,13 +19592,13 @@ ftl_do_gc: cmp r3, #4 movwhi r3, #1940 ldrhih r0, [r6, r3] - bhi .L3395 -.L3285: + bhi .L3397 +.L3287: movw r5, #1940 - ldr r9, .L3406+12 + ldr r9, .L3408+12 ldrh r0, [r6, r5] cmp r0, #0 - bne .L3288 + bne .L3290 movw r3, #1160 ldrh fp, [r9, r3] add r3, fp, fp, asl #1 @@ -19610,48 +19609,48 @@ ftl_do_gc: uxth r0, r0 mov r0, r0, asl #1 ldrh r1, [r3, r0] - ldr r3, .L3406+24 + ldr r3, .L3408+24 ldrh r2, [r3, #-2] ldrh r3, [r3, #-72] mul r3, r3, r2 add r3, r3, r3, lsr #31 cmp r1, r3, asr #1 - ble .L3289 + ble .L3291 ldrh r3, [r4] sub r2, fp, #1 cmp r3, r2 - blt .L3289 + blt .L3291 bl FtlReadRefresh ldrh r0, [r9, r5] - b .L3395 -.L3289: + b .L3397 +.L3291: cmp r1, #0 - bne .L3288 + bne .L3290 movw r0, #65535 bl decrement_vpc_count ldrh r0, [r4] add r0, r0, #1 - b .L3395 -.L3283: + b .L3397 +.L3285: ldr r3, [r7, #-1872] cmp r3, #0 moveq r5, #1 movne r5, #2 -.L3282: +.L3284: movw r3, #1164 movw r1, #65535 ldrh r2, [r6, r3] cmp r2, r1 - bne .L3291 - cmp r4, r2 - ldrne r2, .L3406+12 - strneh r4, [r2, r3] @ movhi bne .L3293 + cmp r4, r2 + ldrne r2, .L3408+12 + strneh r4, [r2, r3] @ movhi + bne .L3295 ldrh r3, [r8, #-4] - ldr r2, .L3406 + ldr r2, .L3408 cmp r3, r4 sub r1, r2, #1536 - beq .L3293 + beq .L3295 ldr r2, [r2, #-1408] mov r3, r3, asl #1 ldrh r3, [r2, r3] @@ -19663,34 +19662,34 @@ ftl_do_gc: strh r2, [r6, r3] @ movhi mvn r3, #0 strh r3, [r8, #-4] @ movhi -.L3293: +.L3295: movw r8, #1164 mov r3, #0 ldrh r0, [r6, r8] strb r3, [r6, #1172] movw r3, #65535 cmp r0, r3 - beq .L3291 + beq .L3293 bl IsBlkInGcList cmp r0, #0 - ldrne r3, .L3406+12 + ldrne r3, .L3408+12 mvnne r2, #0 strneh r2, [r3, r8] @ movhi ldrb r3, [r7, #-2744] @ zero_extendqisi2 cmp r3, #0 - beq .L3297 + beq .L3299 movw r3, #1164 ldrh r0, [r6, r3] bl ftl_get_blk_mode strb r0, [r6, #1172] -.L3297: +.L3299: movw r9, #1164 movw r3, #65535 ldrh r2, [r6, r9] - ldr r8, .L3406+12 + ldr r8, .L3408+12 cmp r2, r3 - ldr r10, .L3406+28 - beq .L3291 + ldr r10, .L3408+28 + beq .L3293 mov r0, r10 bl make_superblock movw r2, #1942 @@ -19704,40 +19703,40 @@ ftl_do_gc: ldrh r2, [r2, r3] movw r3, #1944 strh r2, [r8, r3] @ movhi -.L3291: - ldr r2, .L3406+32 +.L3293: + ldr r2, .L3408+32 movw r3, #1164 ldrh r3, [r6, r3] ldrh r1, [r2] cmp r1, r3 - beq .L3298 + beq .L3300 ldrh r1, [r2, #48] cmp r1, r3 - beq .L3298 + beq .L3300 ldrh r2, [r2, #96] cmp r2, r3 - bne .L3332 -.L3298: + bne .L3334 +.L3300: movw r3, #1164 mvn r2, #0 strh r2, [r6, r3] @ movhi -.L3332: - ldr r8, .L3406+28 +.L3334: + ldr r8, .L3408+28 movw r3, #65535 - ldr r7, .L3406 + ldr r7, .L3408 ldrh r2, [r8] cmp r2, r3 - bne .L3300 + bne .L3302 mov fp, r7 mov r3, #0 str r3, [r7, #-1560] -.L3301: - ldr r10, .L3406+36 - ldr r9, .L3406+12 +.L3303: + ldr r10, .L3408+36 + ldr r9, .L3408+12 ldrh r6, [r10] mov r0, r6 bl List_get_gc_head_node - ldr r2, .L3406+28 + ldr r2, .L3408+28 uxth r3, r0 strh r3, [r2] @ movhi movw r2, #65535 @@ -19745,18 +19744,18 @@ ftl_do_gc: moveq r3, #0 moveq r0, #8 streqh r3, [r10] @ movhi - beq .L3395 -.L3302: + beq .L3397 +.L3304: mov r0, r3 str r3, [sp, #12] bl IsBlkInGcList add r6, r6, #1 cmp r0, #0 ldr r3, [sp, #12] - ldrne r3, .L3406+36 + ldrne r3, .L3408+36 strneh r6, [r3] @ movhi - bne .L3301 - ldr r2, .L3406+36 + bne .L3303 + ldr r2, .L3408+36 uxth r6, r6 ldrh r1, [r10, #-208] mov r0, r3, asl #1 @@ -19767,61 +19766,61 @@ ftl_do_gc: mul r2, r1, r2 add r1, r2, r2, lsr #31 cmp lr, r1, asr #1 - bgt .L3305 + bgt .L3307 cmp lr, #8 cmphi r6, #48 - bls .L3306 - ldr r1, .L3406+40 + bls .L3308 + ldr r1, .L3408+40 ldrh r1, [r1] cmp r1, #35 - bhi .L3306 -.L3305: - ldr lr, .L3406+36 + bhi .L3308 +.L3307: + ldr lr, .L3408+36 mov r1, #0 strh r1, [lr] @ movhi -.L3306: +.L3308: ldrh r1, [ip, r0] movw r0, #65535 cmp r1, r2 cmpge r4, r0 - bne .L3307 - ldr r2, .L3406+36 + bne .L3309 + ldr r2, .L3408+36 ldrh r2, [r2] cmp r2, #3 - bhi .L3307 + bhi .L3309 movw r3, #1164 mvn r2, #0 strh r2, [r9, r3] @ movhi mov r2, #0 - ldr r3, .L3406+36 + ldr r3, .L3408+36 strh r2, [r3] @ movhi - b .L3400 -.L3307: + b .L3402 +.L3309: cmp r1, #0 - bne .L3308 + bne .L3310 movw r0, #65535 bl decrement_vpc_count - ldr r3, .L3406+36 - ldr r2, .L3406+36 + ldr r3, .L3408+36 + ldr r2, .L3408+36 ldrh r3, [r3] add r3, r3, #1 strh r3, [r2] @ movhi - b .L3301 -.L3308: + b .L3303 +.L3310: mov r2, #0 strb r2, [r9, #1172] ldrb r2, [r7, #-2744] @ zero_extendqisi2 cmp r2, #0 - beq .L3309 + beq .L3311 mov r0, r3 bl ftl_get_blk_mode - ldr r3, .L3406+12 + ldr r3, .L3408+12 strb r0, [r3, #1172] -.L3309: - ldr r0, .L3406+28 +.L3311: + ldr r0, .L3408+28 bl make_superblock ldrh r2, [r8] - ldr r1, .L3406+44 + ldr r1, .L3408+44 mov r3, #0 ldr r0, [r7, #-1408] mov r2, r2, asl #1 @@ -19830,48 +19829,48 @@ ftl_do_gc: strh r3, [r8, #2] @ movhi strb r3, [r9, #1170] strh r2, [r1, #2] @ movhi -.L3300: +.L3302: ldr r3, [sp, #20] cmp r3, #1 - bne .L3310 + bne .L3312 bl FtlReadRefresh -.L3310: +.L3312: mov r3, #1 str r3, [r7, #-1564] - ldr r3, .L3406+48 + ldr r3, .L3408+48 ldrh r2, [r3] str r2, [sp, #12] ldrb r2, [r7, #-2744] @ zero_extendqisi2 cmp r2, #0 - beq .L3311 - ldr r2, .L3406+12 + beq .L3313 + ldr r2, .L3408+12 ldrb r2, [r2, #1172] @ zero_extendqisi2 cmp r2, #1 ldreqh r3, [r3, #2] streq r3, [sp, #12] -.L3311: +.L3313: ldrh r3, [r8, #2] ldr r1, [sp, #12] add r2, r3, r5 - ldr r8, .L3406+12 + ldr r8, .L3408+12 cmp r2, r1 movgt r2, r1 rsbgt r3, r3, r2 uxthgt r5, r3 mov r3, #0 str r3, [sp, #16] - b .L3313 -.L3405: + b .L3315 +.L3407: ldr r0, [r7, #-1488] mov r1, r6 ldrb r2, [r8, #1172] @ zero_extendqisi2 mov r10, #0 bl FlashReadPages - ldr r7, .L3406 -.L3316: + ldr r7, .L3408 +.L3318: uxth r3, r10 cmp r3, r6 - bcs .L3403 + bcs .L3405 mov r3, #36 ldr r2, [r7, #-1488] mul r9, r3, r10 @@ -19879,11 +19878,11 @@ ftl_do_gc: ldr r2, [r2, r9] ldr fp, [r1, #12] cmn r2, #1 - beq .L3352 + beq .L3354 ldrh r1, [fp] movw r2, #61589 cmp r1, r2 - bne .L3352 + bne .L3354 add r1, sp, #32 mov r2, #0 ldr r0, [fp, #8] @@ -19896,8 +19895,8 @@ ftl_do_gc: ldr r3, [sp, #24] bic r2, r2, #-2147483648 cmp r2, r0 - bne .L3352 - ldr r0, .L3406+44 + bne .L3354 + ldr r0, .L3408+44 ldr r1, [r1, #16] str r3, [sp, #28] ldrh r2, [r0] @@ -19924,7 +19923,7 @@ ftl_do_gc: str r2, [r3, #12] ldr r3, [sp, #32] str r3, [fp, #12] - ldr r3, .L3406+52 + ldr r3, .L3408+52 ldrh r2, [r3] str r3, [sp, #24] strh r2, [fp, #2] @ movhi @@ -19933,40 +19932,40 @@ ftl_do_gc: str r2, [fp, #4] add r0, r0, r9 ldr r2, [r8, #1740] - ldr r9, .L3406+12 + ldr r9, .L3408+12 add r2, r2, #1 str r2, [r8, #1740] bl FtlGcBufAlloc ldrb r2, [r7, #-2744] @ zero_extendqisi2 cmp r2, #0 - beq .L3404 -.L3318: + beq .L3406 +.L3320: bl Ftl_gc_temp_data_write_back cmp r0, #0 - beq .L3352 - ldr r2, .L3406 + beq .L3354 + ldr r2, .L3408 mov r3, #0 mvn r1, #0 str r3, [r2, #-1564] movw r2, #1164 strh r1, [r9, r2] @ movhi - ldr r2, .L3406+28 + ldr r2, .L3408+28 strh r3, [r2, #2] @ movhi -.L3400: +.L3402: movw r3, #1940 ldrh r0, [r9, r3] - b .L3395 -.L3403: + b .L3397 +.L3405: ldr r3, [sp, #16] add r3, r3, #1 str r3, [sp, #16] -.L3313: +.L3315: ldrh r3, [sp, #16] - ldr r7, .L3406 + ldr r7, .L3408 cmp r3, r5 - ldr r6, .L3406+28 - bcs .L3320 - ldr r3, .L3406+56 + ldr r6, .L3408+28 + bcs .L3322 + ldr r3, .L3408+56 mov r2, #0 ldrh r0, [r6, #2] movw lr, #65535 @@ -19977,10 +19976,10 @@ ftl_do_gc: add r0, r0, r3 add r3, r6, #14 mov r6, r2 -.L3321: +.L3323: uxth r1, r2 cmp r1, r10 - bcs .L3405 + bcs .L3407 ldrh r1, [r3, #2]! add r2, r2, #1 cmp r1, lr @@ -19989,71 +19988,71 @@ ftl_do_gc: addne r6, r6, #1 uxthne r6, r6 strne r1, [fp, #4] - b .L3321 -.L3404: + b .L3323 +.L3406: ldrb r2, [r7, #987] @ zero_extendqisi2 ldr r1, [r8, #1740] cmp r1, r2 - beq .L3318 + beq .L3320 ldr r3, [sp, #24] ldrh r3, [r3, #4] cmp r3, #0 - beq .L3318 -.L3352: + beq .L3320 +.L3354: add r10, r10, #1 - b .L3316 -.L3320: + b .L3318 +.L3322: ldrh r3, [r6, #2] - ldr r8, .L3406+12 + ldr r8, .L3408+12 add r5, r5, r3 ldr r3, [sp, #12] uxth r5, r5 mov r9, r8 cmp r5, r3 strh r5, [r6, #2] @ movhi - bcc .L3322 + bcc .L3324 ldr r3, [r8, #1740] cmp r3, #0 - beq .L3323 + beq .L3325 bl Ftl_gc_temp_data_write_back cmp r0, #0 movne r3, #0 strne r3, [r7, #-1564] movwne r3, #1940 ldrneh r0, [r8, r3] - bne .L3395 -.L3323: - ldr r3, .L3406+44 + bne .L3397 +.L3325: + ldr r3, .L3408+44 ldrh r5, [r3] cmp r5, #0 - bne .L3324 + bne .L3326 ldrh r3, [r6] ldr r2, [r7, #-1408] mov r3, r3, asl #1 ldrh r3, [r2, r3] cmp r3, #0 - beq .L3324 -.L3325: + beq .L3326 +.L3327: ldr r3, [r7, #-1284] cmp r5, r3 - bcs .L3330 + bcs .L3332 mov r0, r5 add r1, sp, #36 mov r2, #0 bl log2phys ldr r0, [sp, #36] cmn r0, #1 - beq .L3326 + beq .L3328 ubfx r0, r0, #10, #16 bl P2V_block_in_plane ldrh r3, [r6] cmp r3, r0 - bne .L3326 -.L3330: + bne .L3328 +.L3332: ldr r3, [r7, #-1284] cmp r5, r3 - bcc .L3324 - ldr r2, .L3406 + bcc .L3326 + ldr r2, .L3408 mov r1, #0 ldrh r3, [r6] ldr r2, [r2, #-1408] @@ -20064,36 +20063,36 @@ ftl_do_gc: bl FtlCacheWriteBack bl l2p_flush bl FtlVpcTblFlush - b .L3324 -.L3326: + b .L3326 +.L3328: add r5, r5, #1 - b .L3325 -.L3324: + b .L3327 +.L3326: mvn r3, #0 strh r3, [r6] @ movhi -.L3322: - ldr r2, .L3406 +.L3324: + ldr r2, .L3408 add r3, r2, #880 ldrh r3, [r3] cmp r3, #2 - ldrls r3, .L3406+48 + ldrls r3, .L3408+48 ldrlsh r5, [r3] - bls .L3332 -.L3331: + bls .L3334 +.L3333: mov r1, #0 str r1, [r2, #-1564] movw r2, #1940 ldrh r0, [r9, r2] cmp r0, r1 addeq r0, r3, #1 - b .L3395 -.L3338: + b .L3397 +.L3340: mov r0, r8 - b .L3395 -.L3402: + b .L3397 +.L3404: ldrh fp, [r8, #-4] cmp fp, r4 - bne .L3259 + bne .L3261 add r10, r5, #880 ldr r2, [r5, #-1548] ldrh r3, [r10] @@ -20102,7 +20101,7 @@ ftl_do_gc: movcs r3, #1024 cmp r2, r3 movls r4, fp - bls .L3259 + bls .L3261 movw r2, #1940 mov r3, #0 str r3, [r7, #-1548] @@ -20111,39 +20110,39 @@ ftl_do_gc: cmp r0, fp mov r4, r0 sub fp, r5, #1520 - bne .L3261 + bne .L3263 ldrh r2, [r10] ldrh r3, [fp, #-10] cmp r2, r3 - bcs .L3262 + bcs .L3264 mov r0, #64 bl List_get_gc_head_node uxth r3, r0 cmp r3, r4 - beq .L3271 + beq .L3273 ldr r2, [r5, #-1624] sub r1, r5, #1712 cmp r2, #0 - bne .L3264 + bne .L3266 ldrh r2, [r1, #-4] cmp r2, #3 - beq .L3264 + beq .L3266 ldr r2, [r5, #-1620] cmp r2, #0 - bne .L3264 + bne .L3266 ldr r2, [r5, #-1872] cmp r2, #0 - bne .L3264 + bne .L3266 ldrb r0, [r5, #-2744] @ zero_extendqisi2 cmp r0, #0 - beq .L3265 -.L3264: + beq .L3267 +.L3266: ldr r2, [r7, #-1408] mov r3, r3, asl #1 ldrh r1, [r1, #-4] ldrh r0, [r2, r3] cmp r1, #3 - ldr r2, .L3406+24 + ldr r2, .L3408+24 ldrh r3, [r2, #-2] ldrh r2, [r2, #-72] mul r2, r2, r3 @@ -20151,7 +20150,7 @@ ftl_do_gc: movne r3, #0 add r3, r2, r3 cmp r0, r3 - bgt .L3267 + bgt .L3269 mov r0, #0 bl List_get_gc_head_node ldr r3, [r7, #-1284] @@ -20160,58 +20159,58 @@ ftl_do_gc: cmp r2, r3, lsr #2 movls r3, #160 uxth r4, r0 - bls .L3398 - b .L3401 -.L3265: + bls .L3400 + b .L3403 +.L3267: ldr r2, [r5, #-1408] mov r3, r3, asl #1 ldrh r3, [r2, r3] cmp r3, #7 - bhi .L3270 + bhi .L3272 bl List_get_gc_head_node uxth r4, r0 -.L3401: +.L3403: mov r3, #128 -.L3398: +.L3400: strh r3, [fp, #-10] @ movhi movw r3, #65535 cmp r4, r3 - beq .L3271 - b .L3261 -.L3267: + beq .L3273 + b .L3263 +.L3269: mov r3, #128 - b .L3399 -.L3270: + b .L3401 +.L3272: mov r3, #64 - b .L3399 -.L3262: + b .L3401 +.L3264: mov r3, #80 -.L3399: +.L3401: strh r3, [fp, #-10] @ movhi - b .L3271 -.L3261: + b .L3273 +.L3263: ldr r0, [r7, #-1416] mov r1, r4, asl #1 ldr r3, [r7, #-1408] ldrh r2, [r10] ldrh r3, [r3, r1] ldrh r1, [r0, r1] - ldr r0, .L3406+60 + ldr r0, .L3408+60 str r1, [sp] ldrh r1, [fp, #-12] str r1, [sp, #4] mov r1, r4 bl printk -.L3271: +.L3273: bl FtlGcReFreshBadBlk - b .L3259 -.L3395: + b .L3261 +.L3397: add sp, sp, #44 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3407: +.L3409: .align 2 -.L3406: +.L3408: .word .LANCHOR2 .word .LANCHOR1 .word .LANCHOR2-1536 @@ -20240,38 +20239,38 @@ FtlCacheWriteBack: stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 - ldr r4, .L3452 - ldr r8, .L3452+4 + ldr r4, .L3454 + ldr r8, .L3454+4 ldr r3, [r4, #-1280] ldr r5, [r8, #1948] cmp r3, #0 - bne .L3410 + bne .L3412 ldr r1, [r4, #-1516] cmp r1, #0 - beq .L3410 + beq .L3412 ldrb r6, [r4, #-2744] @ zero_extendqisi2 mov r7, #0 ldr r0, [r4, #-1484] mov r10, #36 cmp r6, #0 ldrb r3, [r5, #9] @ zero_extendqisi2 - ldr r9, .L3452 + ldr r9, .L3454 ldrneb r6, [r5, #8] @ zero_extendqisi2 subne r6, r6, #1 clzne r6, r6 movne r6, r6, lsr #5 mov r2, r6 bl FlashProgPages -.L3413: +.L3415: ldr r3, [r4, #-1516] cmp r7, r3 - bcs .L3431 + bcs .L3433 mul fp, r10, r7 ldr r3, [r9, #-1484] add r2, r3, fp ldr r3, [r3, fp] cmn r3, #1 - beq .L3434 + beq .L3436 ldr r3, [r2, #4] cmp r6, #0 ldr r0, [r2, #16] @@ -20285,7 +20284,7 @@ FtlCacheWriteBack: ldr r3, [r3, #12] ldr r0, [r3, #12] cmn r0, #1 - beq .L3417 + beq .L3419 ubfx r0, r0, #10, #16 bl P2V_block_in_plane ldr r2, [r9, #-1408] @@ -20293,75 +20292,75 @@ FtlCacheWriteBack: mov fp, r0 ldrh r2, [r2, r3] cmp r2, #0 - bne .L3418 - ldr r0, .L3452+8 + bne .L3420 + ldr r0, .L3454+8 mov r1, fp bl printk -.L3418: +.L3420: mov r0, fp bl decrement_vpc_count -.L3417: +.L3419: add r7, r7, #1 - b .L3413 -.L3450: - ldr r6, .L3452+12 + b .L3415 +.L3452: + ldr r6, .L3454+12 movw r5, #16386 -.L3430: +.L3432: ldrh r3, [r6] cmp r3, #0 - beq .L3431 + beq .L3433 mov r0, #1 mov r1, r0 bl ftl_do_gc subs r5, r5, #1 - bne .L3430 -.L3431: + bne .L3432 +.L3433: mov r3, #0 str r3, [r4, #-1516] - b .L3410 -.L3434: - ldr r10, .L3452 + b .L3412 +.L3436: + ldr r10, .L3454 mov r9, #0 -.L3414: +.L3416: ldr r3, [r4, #-1516] cmp r9, r3 - bcs .L3450 + bcs .L3452 mov r7, #36 ldr r3, [r10, #-1484] mul r7, r7, r9 mov fp, #0 mvn r2, #0 str r2, [r3, r7] -.L3420: +.L3422: ldr r3, [r4, #-1484] add r2, r3, r7 ldr r3, [r3, r7] cmn r3, #1 - bne .L3451 + bne .L3453 ldr r0, [r2, #4] ubfx r0, r0, #10, #16 bl P2V_block_in_plane ldrh r3, [r5] cmp r3, r0 - bne .L3421 + bne .L3423 ldr r1, [r10, #-1408] mov r3, r3, asl #1 ldrh r0, [r5, #4] ldrh r2, [r1, r3] rsb r2, r0, r2 strh r2, [r1, r3] @ movhi - ldr r3, .L3452+16 + ldr r3, .L3454+16 strb fp, [r5, #6] strh fp, [r5, #4] @ movhi ldrh r3, [r3] strh r3, [r5, #2] @ movhi -.L3421: +.L3423: ldrh r3, [r5, #4] cmp r3, #0 - bne .L3422 + bne .L3424 mov r0, r5 bl allocate_new_data_superblock -.L3422: +.L3424: ldr r3, [r8, #1308] add r3, r3, #1 str r3, [r8, #1308] @@ -20388,9 +20387,9 @@ FtlCacheWriteBack: streq r3, [r10, #-1280] ldr r3, [r4, #-1280] cmp r3, #0 - beq .L3420 - b .L3410 -.L3451: + beq .L3422 + b .L3412 +.L3453: ldr r3, [r2, #4] cmp r6, #0 ldr r0, [r2, #16] @@ -20404,7 +20403,7 @@ FtlCacheWriteBack: ldr r3, [r7, #12] ldr r0, [r3, #12] cmn r0, #1 - beq .L3427 + beq .L3429 ubfx r0, r0, #10, #16 bl P2V_block_in_plane ldr r2, [r10, #-1408] @@ -20412,24 +20411,24 @@ FtlCacheWriteBack: mov r7, r0 ldrh r2, [r2, r3] cmp r2, #0 - bne .L3428 - ldr r0, .L3452+8 + bne .L3430 + ldr r0, .L3454+8 mov r1, r7 bl printk -.L3428: +.L3430: mov r0, r7 bl decrement_vpc_count -.L3427: +.L3429: add r9, r9, #1 - b .L3414 -.L3410: + b .L3416 +.L3412: mov r0, #0 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3453: +.L3455: .align 2 -.L3452: +.L3454: .word .LANCHOR2 .word .LANCHOR4 .word .LC160 @@ -20444,30 +20443,30 @@ FtlSysFlush: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L3458 + ldr r3, .L3460 ldr r3, [r3, #-1280] cmp r3, #0 - bne .L3457 - ldr r3, .L3458+4 + bne .L3459 + ldr r3, .L3460+4 stmfd sp!, {r4, lr} .save {r4, lr} ldr r4, [r3, #3444] cmp r4, #1 - bne .L3455 + bne .L3457 bl FtlCacheWriteBack bl l2p_flush mov r0, r4 bl FtlEctTblFlush bl FtlVpcTblFlush -.L3455: - mov r0, #0 - ldmfd sp!, {r4, pc} .L3457: mov r0, #0 - bx lr + ldmfd sp!, {r4, pc} .L3459: + mov r0, #0 + bx lr +.L3461: .align 2 -.L3458: +.L3460: .word .LANCHOR2 .word .LANCHOR1 .fnend @@ -20481,17 +20480,17 @@ FtlDeInit: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, lr} .save {r3, lr} - ldr r3, .L3463 + ldr r3, .L3465 ldr r3, [r3, #3444] cmp r3, #1 - bne .L3461 + bne .L3463 bl FtlSysFlush -.L3461: +.L3463: mov r0, #0 ldmfd sp!, {r3, pc} -.L3464: +.L3466: .align 2 -.L3463: +.L3465: .word .LANCHOR1 .fnend .size FtlDeInit, .-FtlDeInit @@ -20532,24 +20531,24 @@ ftl_discard: .save {r4, r5, r6, r7, r8, lr} .pad #8 mov r6, r0 - ldr r5, .L3486 + ldr r5, .L3488 mov r4, r1 ldr r3, [r5, #-2740] cmp r1, r3 cmpls r0, r3 - bcs .L3477 + bcs .L3479 add r2, r0, r1 cmp r2, r3 - bhi .L3477 + bhi .L3479 cmp r1, #31 - bhi .L3470 -.L3471: + bhi .L3472 +.L3473: mov r0, #0 - b .L3469 -.L3470: + b .L3471 +.L3472: ldr r3, [r5, #-1280] cmp r3, #0 - bne .L3471 + bne .L3473 sub r5, r5, #1648 bl FtlCacheWriteBack mov r0, r6 @@ -20561,31 +20560,31 @@ ftl_discard: rsb r6, r3, r6 uxth r6, r6 cmp r6, #0 - beq .L3472 + beq .L3474 rsb r5, r6, r5 add r7, r0, #1 cmp r5, r4 movcs r5, r4 uxth r5, r5 rsb r4, r5, r4 -.L3472: - ldr r5, .L3486+4 +.L3474: + ldr r5, .L3488+4 mvn r3, #0 - ldr r8, .L3486 + ldr r8, .L3488 str r3, [sp, #4] mov r6, r5 -.L3473: +.L3475: ldrh r3, [r5] cmp r4, r3 - bcc .L3485 + bcc .L3487 mov r0, r7 mov r1, sp mov r2, #0 bl log2phys ldr r3, [sp] cmn r3, #1 - beq .L3474 - ldr r2, .L3486+8 + beq .L3476 + ldr r2, .L3488+8 add r1, sp, #4 mov r0, r7 ldr r3, [r2, #1952] @@ -20600,30 +20599,30 @@ ftl_discard: ubfx r0, r0, #10, #16 bl P2V_block_in_plane bl decrement_vpc_count -.L3474: +.L3476: ldrh r3, [r6] add r7, r7, #1 rsb r4, r3, r4 - b .L3473 -.L3485: - ldr r3, .L3486+8 + b .L3475 +.L3487: + ldr r3, .L3488+8 ldr r2, [r3, #1952] cmp r2, #32 - bls .L3471 + bls .L3473 mov r4, #0 str r4, [r3, #1952] bl l2p_flush bl FtlVpcTblFlush - b .L3471 -.L3477: + b .L3473 +.L3479: mvn r0, #0 -.L3469: +.L3471: add sp, sp, #8 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L3487: +.L3489: .align 2 -.L3486: +.L3488: .word .LANCHOR2 .word .LANCHOR2-1662 .word .LANCHOR4 @@ -20640,28 +20639,28 @@ FtlGcFreeTempBlock: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #20 sub sp, sp, #20 - ldr r6, .L3527 + ldr r6, .L3529 sub r9, r6, #1664 ldr r8, [r6, #-1280] ldrh r1, [r9, #-4] cmp r8, #0 - bne .L3525 + bne .L3527 add r4, r6, #980 mov r5, r6 movw ip, #65535 ldrh r6, [r4] cmp r6, ip - bne .L3491 -.L3500: + bne .L3493 +.L3502: ldrh r2, [r4] movw r3, #65535 - ldr r6, .L3527+4 + ldr r6, .L3529+4 mov r7, #0 - ldr r8, .L3527 + ldr r8, .L3529 cmp r2, r3 str r7, [r6, #1756] add r10, r8, #980 - beq .L3525 + beq .L3527 bl FtlCacheWriteBack ldrh r2, [r9, #-4] ldrb r0, [r8, #987] @ zero_extendqisi2 @@ -20670,52 +20669,52 @@ FtlGcFreeTempBlock: ldr r1, [r8, #-1408] smulbb r2, r0, r2 mov r3, r3, asl #1 - ldr r9, .L3527+8 + ldr r9, .L3529+8 strh r2, [r1, r3] @ movhi movw r3, #1766 ldr r2, [r8, #-1608] ldrh r3, [r6, r3] add r3, r3, r2 str r3, [r8, #-1608] - b .L3501 -.L3491: + b .L3503 +.L3493: cmp r0, #0 - beq .L3494 - ldr r2, .L3527+12 + beq .L3496 + ldr r2, .L3529+12 movw r3, #3448 ldrh r0, [r2, r3] cmp r0, ip - beq .L3495 -.L3496: + beq .L3497 +.L3498: mov r1, #2 - b .L3494 -.L3495: + b .L3496 +.L3497: strh r8, [r2, r3] @ movhi add r3, r5, #880 ldrh r3, [r3] cmp r3, #17 - bhi .L3496 -.L3494: - ldr r7, .L3527 + bhi .L3498 +.L3496: + ldr r7, .L3529 add r0, r7, #980 bl FtlGcScanTempBlk cmn r0, #1 str r0, [sp, #12] - beq .L3497 + beq .L3499 ldr r2, [r7, #-1416] mov r6, r6, asl #1 ldrh r3, [r2, r6] cmp r3, #4 - bls .L3498 + bls .L3500 sub r3, r3, #5 mov r0, #1 strh r3, [r2, r6] @ movhi bl FtlEctTblFlush -.L3498: - ldr r4, .L3527+4 +.L3500: + ldr r4, .L3529+4 ldr r3, [r4, #1756] cmp r3, #0 - bne .L3499 + bne .L3501 ldr r0, [sp, #12] ldr r3, [r4, #1308] ubfx r0, r0, #10, #16 @@ -20723,36 +20722,36 @@ FtlGcFreeTempBlock: str r3, [r4, #1308] bl FtlBbmMapBadBlock bl FtlBbmTblFlush -.L3499: +.L3501: mov r3, #0 str r3, [r4, #1756] - b .L3511 -.L3497: - ldr r2, .L3527+12 + b .L3513 +.L3499: + ldr r2, .L3529+12 movw r3, #3448 ldrh r2, [r2, r3] movw r3, #65535 cmp r2, r3 - bne .L3511 - b .L3500 -.L3504: + bne .L3513 + b .L3502 +.L3506: ldr r3, [fp, #4] cmp r0, r3 - bne .L3523 -.L3503: + bne .L3525 +.L3505: add r7, r7, #1 -.L3501: +.L3503: ldrh r3, [r9] uxth r8, r7 cmp r3, r8 - bls .L3526 + bls .L3528 mul r8, r10, r8 ldr r3, [r5, #-1508] ldr r2, [r5, #-1284] add fp, r3, r8 ldr r0, [fp, #8] cmp r0, r2 - bcs .L3523 + bcs .L3525 add r1, sp, #12 mov r2, #0 str r3, [sp, #4] @@ -20761,7 +20760,7 @@ FtlGcFreeTempBlock: ldr r0, [sp, #12] ldr r3, [r3, r8] cmp r0, r3 - bne .L3504 + bne .L3506 ubfx r0, r0, #10, #16 bl P2V_block_in_plane add r1, fp, #4 @@ -20770,33 +20769,33 @@ FtlGcFreeTempBlock: ldr r0, [fp, #8] bl log2phys mov r0, r8 - b .L3524 -.L3523: + b .L3526 +.L3525: ldrh r0, [r4] -.L3524: - bl decrement_vpc_count - b .L3503 .L3526: + bl decrement_vpc_count + b .L3505 +.L3528: movw r0, #65535 bl decrement_vpc_count ldrb r3, [r5, #-2744] @ zero_extendqisi2 cmp r3, #0 - beq .L3506 - ldr r0, .L3527+16 + beq .L3508 + ldr r0, .L3529+16 ldrh r1, [r4] bl printk -.L3506: +.L3508: ldrh r0, [r4] ldr r2, [r5, #-1408] mov r3, r0, asl #1 ldrh r3, [r2, r3] cmp r3, #0 - beq .L3507 + beq .L3509 bl INSERT_DATA_LIST - b .L3508 -.L3507: + b .L3510 +.L3509: bl INSERT_FREE_LIST -.L3508: +.L3510: movw r3, #1766 mvn r8, #0 strh r8, [r4] @ movhi @@ -20809,14 +20808,14 @@ FtlGcFreeTempBlock: movw r3, #1164 strh r8, [r6, r3] @ movhi ldr r3, [r5, #-1872] - ldr r7, .L3527 + ldr r7, .L3529 cmp r3, r4 add r1, r7, #880 - beq .L3509 + beq .L3511 ldr r3, [r7, #-1568] cmp r3, #39 - bhi .L3509 - ldr r2, .L3527+4 + bhi .L3511 + ldr r2, .L3529+4 movw r3, #1160 ldrh r3, [r2, r3] ldrh r2, [r1] @@ -20824,35 +20823,35 @@ FtlGcFreeTempBlock: subcc r7, r7, #1520 movcc r3, r3, asl #1 strcch r3, [r7, #-12] @ movhi - b .L3525 -.L3509: + b .L3527 +.L3511: movw r3, #1160 ldrh r1, [r1] ldrh r2, [r6, r3] - ldr r3, .L3527 + ldr r3, .L3529 add r0, r2, r2, asl #1 cmp r1, r0, asr #2 - ble .L3525 + ble .L3527 ldrb r0, [r3, #-2744] @ zero_extendqisi2 sub r3, r3, #1520 cmp r0, #0 moveq r2, #20 streqh r2, [r3, #-12] @ movhi - beq .L3490 + beq .L3492 sub r2, r2, #2 strh r2, [r3, #-12] @ movhi -.L3525: +.L3527: mov r0, #0 - b .L3490 -.L3511: + b .L3492 +.L3513: mov r0, #1 -.L3490: +.L3492: add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3528: +.L3530: .align 2 -.L3527: +.L3529: .word .LANCHOR2 .word .LANCHOR4 .word .LANCHOR4+1766 @@ -20869,8 +20868,8 @@ FtlGcPageRecovery: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} - ldr r4, .L3532 - ldr r5, .L3532+4 + ldr r4, .L3534 + ldr r5, .L3534+4 mov r0, r4 ldrh r1, [r5, #-4] bl FtlGcScanTempBlk @@ -20882,13 +20881,13 @@ FtlGcPageRecovery: bl FtlMapBlkWriteDumpData mov r0, #0 bl FtlGcFreeTempBlock - ldr r3, .L3532+8 + ldr r3, .L3534+8 mov r2, #0 str r2, [r3, #1756] ldmfd sp!, {r3, r4, r5, pc} -.L3533: +.L3535: .align 2 -.L3532: +.L3534: .word .LANCHOR2+980 .word .LANCHOR2-1664 .word .LANCHOR4 @@ -20904,8 +20903,8 @@ FtlPowerLostRecovery: stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r5, #0 - ldr r4, .L3536 - ldr r3, .L3536+4 + ldr r4, .L3538 + ldr r3, .L3538+4 add r6, r4, #884 add r4, r4, #932 mov r0, r6 @@ -20922,9 +20921,9 @@ FtlPowerLostRecovery: bl decrement_vpc_count mov r0, r5 ldmfd sp!, {r4, r5, r6, pc} -.L3537: +.L3539: .align 2 -.L3536: +.L3538: .word .LANCHOR2 .word .LANCHOR4 .fnend @@ -20939,9 +20938,9 @@ FtlSysBlkInit: stmfd sp!, {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} movw r3, #1804 - ldr r7, .L3556 + ldr r7, .L3558 mov r2, #0 - ldr r4, .L3556+4 + ldr r4, .L3558+4 strh r2, [r7, r3] @ movhi movw r3, #1802 mvn r2, #0 @@ -20954,14 +20953,14 @@ FtlSysBlkInit: ldrh r2, [r4, r3] movw r3, #65535 cmp r2, r3 - bne .L3539 -.L3541: + bne .L3541 +.L3543: mvn r8, #0 - b .L3540 -.L3539: + b .L3542 +.L3541: bl FtlLoadSysInfo subs r8, r0, #0 - bne .L3541 + bne .L3543 bl FtlLoadMapInfo bl FtlLoadVonderInfo bl Ftl_load_ext_data @@ -20976,34 +20975,34 @@ FtlSysBlkInit: mov r0, #12 ldrh r1, [r3, #-14] mov r3, r8 -.L3542: +.L3544: cmp r3, r1 - bge .L3547 + bge .L3549 mla ip, r0, r3, r2 ldr ip, [ip, #4] cmp ip, #0 - bge .L3543 -.L3547: - ldr r5, .L3556+8 + bge .L3545 +.L3549: + ldr r5, .L3558+8 cmp r3, r1 add r6, r5, #68 ldrh r2, [r5, #28] add r2, r2, #1 strh r2, [r5, #28] @ movhi - bge .L3554 - b .L3544 -.L3543: + bge .L3556 + b .L3546 +.L3545: add r3, r3, #1 - b .L3542 -.L3554: + b .L3544 +.L3556: movw r3, #1804 ldrh r3, [r7, r3] cmp r3, #0 - beq .L3548 -.L3544: + beq .L3550 +.L3546: ldrh r3, [r6] ldr r1, [r4, #-1408] - ldr ip, .L3556+12 + ldr ip, .L3558+12 mov r3, r3, asl #1 ldrh r0, [r6, #4] ldrh r2, [r1, r3] @@ -21014,7 +21013,7 @@ FtlSysBlkInit: ldr lr, [r4, #-1408] strb r2, [r4, #890] strh r3, [r6, #2] @ movhi - ldr r3, .L3556+16 + ldr r3, .L3558+16 strh r2, [r6, #4] @ movhi ldrh r1, [r3] ldrh r7, [r3, #4] @@ -21032,19 +21031,19 @@ FtlSysBlkInit: bl l2p_flush bl FtlVpcTblFlush bl FtlVpcTblFlush -.L3548: +.L3550: ldrh r0, [r6] movw r3, #65535 - ldr r7, .L3556+20 + ldr r7, .L3558+20 cmp r0, r3 - beq .L3549 + beq .L3551 ldrh r3, [r7, #4] cmp r3, #0 - bne .L3549 + bne .L3551 ldrh r3, [r7, #52] add r4, r7, #48 cmp r3, #0 - bne .L3549 + bne .L3551 bl FtlGcRefreshOpenBlock ldrh r0, [r7, #48] bl FtlGcRefreshOpenBlock @@ -21053,22 +21052,22 @@ FtlSysBlkInit: bl allocate_new_data_superblock mov r0, r4 bl allocate_new_data_superblock -.L3549: - ldr r3, .L3556+24 - ldrb r3, [r3] @ zero_extendqisi2 +.L3551: + ldr r3, .L3558+24 + ldrb r3, [r3, #32] @ zero_extendqisi2 cmp r3, #0 - bne .L3550 + bne .L3552 ldrh r3, [r5, #28] tst r3, #31 - bne .L3540 -.L3550: + bne .L3542 +.L3552: bl FtlVpcCheckAndModify -.L3540: +.L3542: mov r0, r8 ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L3557: +.L3559: .align 2 -.L3556: +.L3558: .word .LANCHOR4 .word .LANCHOR2 .word .LANCHOR2+816 @@ -21089,10 +21088,10 @@ FtlLowFormat: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #20 sub sp, sp, #20 - ldr r4, .L3593 + ldr r4, .L3595 ldr r5, [r4, #-1280] cmp r5, #0 - bne .L3560 + bne .L3562 sub r6, r4, #1632 mov r1, r5 ldr r0, [r4, #-1372] @@ -21111,37 +21110,37 @@ FtlLowFormat: bl FtlFreeSysBlkQueueInit bl FtlLoadBbt cmp r0, #0 - beq .L3561 + beq .L3563 bl FtlMakeBbt -.L3561: - ldr r0, .L3593 +.L3563: + ldr r0, .L3595 mov r2, #0 - ldr ip, .L3593+4 - ldr lr, .L3593+8 -.L3562: + ldr ip, .L3595+4 + ldr lr, .L3595+8 +.L3564: ldrh r1, [ip] uxth r3, r2 add r2, r2, #1 cmp r3, r1, asl #7 - bge .L3590 + bge .L3592 ldr r5, [r0, #-1456] mvn r1, r3 orr r1, r3, r1, asl #16 str r1, [r5, r3, asl #2] ldr r1, [r0, #-1452] str lr, [r1, r3, asl #2] - b .L3562 -.L3590: - ldr r9, .L3593+12 + b .L3564 +.L3592: + ldr r9, .L3595+12 mov r7, #0 add r10, r9, #2 ldrh r5, [r9] -.L3564: +.L3566: ldrh r3, [r10] - ldr r6, .L3593 + ldr r6, .L3595 cmp r3, r5 - ldr r8, .L3593+16 - bls .L3591 + ldr r8, .L3595+16 + bls .L3593 mov r0, r5 mov r1, #1 bl FtlLowFormatEraseBlock @@ -21149,13 +21148,13 @@ FtlLowFormat: uxth r5, r5 add r0, r7, r0 uxth r7, r0 - b .L3564 -.L3591: + b .L3566 +.L3593: ldrh r1, [r9, #-8] sub r3, r7, #3 sub r5, r6, #1728 cmp r3, r1, asl #1 - blt .L3566 + blt .L3568 mov r0, r7 mov r7, #0 bl __aeabi_uidiv @@ -21167,10 +21166,10 @@ FtlLowFormat: uxth r0, r0 bl FtlFreeSysBlkQueueInit ldrh r5, [r5] -.L3567: +.L3569: ldrh r3, [r8] cmp r3, r5 - bls .L3566 + bls .L3568 mov r0, r5 mov r1, #1 bl FtlLowFormatEraseBlock @@ -21178,24 +21177,24 @@ FtlLowFormat: uxth r5, r5 add r0, r7, r0 uxth r7, r0 - b .L3567 -.L3566: + b .L3569 +.L3568: mov r5, #0 mov r6, r5 -.L3569: +.L3571: ldrh r1, [r9] uxth r0, r5 - ldr r10, .L3593 + ldr r10, .L3595 add r5, r5, #1 cmp r1, r0 sub r2, r10, #1728 - bls .L3592 + bls .L3594 mov r1, #0 bl FtlLowFormatEraseBlock add r0, r6, r0 uxth r6, r0 - b .L3569 -.L3592: + b .L3571 +.L3594: sub r5, r10, #1712 ldr ip, [r10, #-1724] ldrh r8, [r2, #-8] @@ -21210,7 +21209,7 @@ FtlLowFormat: mov fp, r0 str r0, [r10, #-1284] add r1, r3, #36 - ldr r0, .L3593+20 + ldr r0, .L3595+20 str r5, [sp, #4] str r3, [sp] strh r1, [r0, r2] @ movhi @@ -21219,7 +21218,7 @@ FtlLowFormat: mov r5, r0 ldr ip, [sp, #8] cmp r6, r1 - ble .L3571 + ble .L3573 rsb r0, r6, ip mov r1, r8 str r2, [sp, #8] @@ -21229,10 +21228,10 @@ FtlLowFormat: mov r0, r0, lsr #5 add r0, r0, #24 strh r0, [r5, r2] @ movhi -.L3571: +.L3573: ldr r3, [r4, #-1872] cmp r3, #1 - bne .L3572 + bne .L3574 movw r2, #1160 mov r0, r6 ldrh r3, [r5, r2] @@ -21245,10 +21244,10 @@ FtlLowFormat: uxtah r0, r3, r0 add r3, r3, r0, asr #2 strh r3, [r5, r2] @ movhi -.L3572: +.L3574: ldrb r3, [r4, #-2744] @ zero_extendqisi2 cmp r3, #0 - beq .L3573 + beq .L3575 movw r2, #1160 mov r0, r6 ldrh r3, [r5, r2] @@ -21261,12 +21260,12 @@ FtlLowFormat: uxtah r0, r3, r0 add r3, r3, r0, asr #2 strh r3, [r5, r2] @ movhi -.L3573: - ldr ip, .L3593 +.L3575: + ldr ip, .L3595 sub r2, ip, #1664 ldrh r3, [r2, #-10] cmp r3, #0 - beq .L3575 + beq .L3577 movw r1, #1160 ldrh r0, [r5, r1] add r0, r0, r3, lsr #1 @@ -21277,11 +21276,11 @@ FtlLowFormat: addgt r3, r3, #32 ldrgt r0, [sp] addgt r3, r0, r3 - ldrgt r0, .L3593+20 + ldrgt r0, .L3595+20 strgth r3, [r0, r1] @ movhi -.L3575: +.L3577: movw r3, #1160 - ldr r10, .L3593+24 + ldr r10, .L3595+24 ldrh r1, [r5, r3] ldr r3, [r4, #-1284] rsb r3, r1, r3 @@ -21299,16 +21298,16 @@ FtlLowFormat: ldrh r3, [r10, #-6] add r3, r3, r2, lsr #3 cmp r1, r3 - bls .L3577 - ldr r0, .L3593+28 + bls .L3579 + ldr r0, .L3595+28 mov r2, r2, lsr #5 bl printk -.L3577: +.L3579: ldr r3, [sp, #4] mov r1, #0 ldr r0, [r4, #-1408] mvn r7, #0 - ldr r6, .L3593+32 + ldr r6, .L3595+32 ldrh r2, [r3, #-14] sub fp, r6, #884 mov r10, r6 @@ -21317,7 +21316,7 @@ FtlLowFormat: movw r2, #1164 strh r7, [r5, r2] @ movhi mov r3, #0 - ldr r2, .L3593+36 + ldr r2, .L3595+36 mov r1, #255 ldr r0, [r4, #-1396] str r3, [r4, #1124] @@ -21332,23 +21331,23 @@ FtlLowFormat: mov r3, #1 strb r3, [r4, #892] bl ftl_memset -.L3578: - ldr r9, .L3593 +.L3580: + ldr r9, .L3595 add r8, r9, #884 mov r0, r8 bl make_superblock ldrb r3, [r4, #891] @ zero_extendqisi2 cmp r3, #0 ldrh r3, [r6] - bne .L3579 + bne .L3581 ldr r2, [fp, #-1408] mov r3, r3, asl #1 strh r7, [r2, r3] @ movhi ldrh r3, [r10] add r3, r3, #1 strh r3, [r10] @ movhi - b .L3578 -.L3579: + b .L3580 +.L3581: ldr r2, [r9, #-1616] mov r3, r3, asl #1 ldrh r1, [r8, #4] @@ -21369,23 +21368,23 @@ FtlLowFormat: strh r3, [r2] @ movhi mov r3, #1 strb r3, [r9, #940] -.L3580: - ldr r6, .L3593 +.L3582: + ldr r6, .L3595 add r8, r6, #932 mov r0, r8 bl make_superblock ldrb r3, [r4, #939] @ zero_extendqisi2 cmp r3, #0 ldrh r3, [r7] - bne .L3581 + bne .L3583 ldr r2, [r9, #-1408] mov r3, r3, asl #1 strh fp, [r2, r3] @ movhi ldrh r3, [r10] add r3, r3, #1 strh r3, [r10] @ movhi - b .L3580 -.L3581: + b .L3582 +.L3583: ldr r2, [r6, #-1616] mov r3, r3, asl #1 ldrh r1, [r8, #4] @@ -21398,7 +21397,7 @@ FtlLowFormat: add r3, r6, #980 strh r4, [r3] @ movhi bl FtlFreeSysBlkQueueOut - ldr r3, .L3593+40 + ldr r3, .L3595+40 movw r2, #1128 strh r4, [r3, #4] @ movhi strh r0, [r6, r2] @ movhi @@ -21413,17 +21412,17 @@ FtlLowFormat: bl FtlVpcTblFlush bl FtlSysBlkInit cmp r0, #0 - ldreq r3, .L3593+44 + ldreq r3, .L3595+44 moveq r2, #1 streq r2, [r3, #3444] -.L3560: +.L3562: mov r0, #0 add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3594: +.L3596: .align 2 -.L3593: +.L3595: .word .LANCHOR2 .word .LANCHOR2-1662 .word 168778952 @@ -21448,28 +21447,28 @@ FtlReInitForSDUpdata: stmfd sp!, {r0, r1, r2, r3, r4, lr} .save {r4, lr} .pad #16 - ldr r4, .L3624 + ldr r4, .L3626 ldrb r3, [r4, #-2744] @ zero_extendqisi2 cmp r3, #0 - beq .L3596 -.L3598: + beq .L3598 +.L3600: mov r0, #0 - b .L3597 -.L3596: - ldr r3, .L3624+4 + b .L3599 +.L3598: + ldr r3, .L3626+4 ldr r0, [r3] bl FlashInit cmp r0, #0 - bne .L3598 + bne .L3600 bl FlashLoadFactorBbt cmp r0, #0 - beq .L3599 + beq .L3601 bl FlashMakeFactorBbt -.L3599: +.L3601: ldr r0, [r4, #-1776] bl FlashReadIdbDataRaw cmp r0, #0 - beq .L3600 + beq .L3602 mov r1, #0 mov r2, #16 mov r0, sp @@ -21478,71 +21477,71 @@ FtlReInitForSDUpdata: mov r2, r3 mov ip, #1 ldr r1, [sp] -.L3601: +.L3603: ands lr, r1, ip, asl r2 add r0, r3, #1 add r2, r2, #1 movne r3, r0 cmp r2, #16 - bne .L3601 + bne .L3603 cmp r3, #6 - ldrls r3, .L3624+8 - bls .L3620 + ldrls r3, .L3626+8 + bls .L3622 mov r2, #0 mov ip, #1 -.L3604: +.L3606: ands lr, r1, ip, asl r2 add r0, r3, #1 add r2, r2, #1 movne r3, r0 cmp r2, #24 - bne .L3604 + bne .L3606 cmp r3, #17 - ldr r3, .L3624+8 + ldr r3, .L3626+8 movhi r2, #36 -.L3620: - strb r2, [r3, #1] - ldr r3, .L3624+8 - ldrb r2, [r3, #1] @ zero_extendqisi2 - ldr r3, .L3624+12 +.L3622: + strb r2, [r3, #33] + ldr r3, .L3626+8 + ldrb r2, [r3, #33] @ zero_extendqisi2 + ldr r3, .L3626+12 strh r2, [r3, #26] @ movhi -.L3600: - ldr r1, .L3624+16 - ldr r0, .L3624+20 +.L3602: + ldr r1, .L3626+16 + ldr r0, .L3626+20 bl printk - ldr r0, .L3624+12 + ldr r0, .L3626+12 bl FtlConstantsInit bl FtlVariablesInit ldr r0, [r4, #-1732] mov r4, #1 uxth r0, r0 bl FtlFreeSysBlkQueueInit -.L3606: +.L3608: bl FtlLoadBbt cmp r0, #0 - beq .L3607 -.L3622: + beq .L3609 +.L3624: bl FtlLowFormat cmp r4, #3 addls r4, r4, #1 - bls .L3606 -.L3623: + bls .L3608 +.L3625: mvn r0, #0 - b .L3597 -.L3607: + b .L3599 +.L3609: bl FtlSysBlkInit cmp r0, #0 - bne .L3622 - ldr r3, .L3624+24 + bne .L3624 + ldr r3, .L3626+24 mov r2, #1 str r2, [r3, #3444] -.L3597: +.L3599: add sp, sp, #16 @ sp needed ldmfd sp!, {r4, pc} -.L3625: +.L3627: .align 2 -.L3624: +.L3626: .word .LANCHOR2 .word RK29_NANDC_REG_BASE .word .LANCHOR0 @@ -21561,26 +21560,26 @@ Ftl_gc_temp_data_write_back: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} - ldr r4, .L3643 + ldr r4, .L3645 ldr r3, [r4, #-1280] cmp r3, #0 - beq .L3627 -.L3630: + beq .L3629 +.L3632: mov r0, #0 ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L3627: +.L3629: ldrb r3, [r4, #-2744] @ zero_extendqisi2 - ldr r6, .L3643+4 + ldr r6, .L3645+4 cmp r3, #0 - beq .L3629 + beq .L3631 ldr r3, [r6, #1740] tst r3, #1 - beq .L3629 + beq .L3631 add r3, r4, #980 ldrh r3, [r3, #4] cmp r3, #0 - bne .L3630 -.L3629: + bne .L3632 +.L3631: mov r2, #0 ldr r0, [r4, #-1500] ldr r1, [r6, #1740] @@ -21588,21 +21587,21 @@ Ftl_gc_temp_data_write_back: bl FlashProgPages mov r7, #0 mov r8, #36 -.L3631: +.L3633: ldr r1, [r6, #1740] uxth r3, r7 - ldr r5, .L3643+4 + ldr r5, .L3645+4 cmp r3, r1 - bcs .L3642 + bcs .L3644 mul r3, r8, r3 ldr r0, [r4, #-1500] - ldr r2, .L3643 + ldr r2, .L3645 add r7, r7, #1 add r1, r0, r3 ldr lr, [r0, r3] ldr ip, [r1, #12] cmn lr, #1 - bne .L3632 + bne .L3634 add r0, r2, #980 ldr ip, [r2, #-1408] mov r4, #0 @@ -21620,30 +21619,30 @@ Ftl_gc_temp_data_write_back: bl FtlBbmMapBadBlock bl FtlBbmTblFlush bl FtlGcPageVarInit - b .L3641 -.L3632: + b .L3643 +.L3634: ldr r0, [ip, #12] ldr r1, [r1, #4] ldr r2, [ip, #8] bl FtlGcUpdatePage - b .L3631 -.L3642: + b .L3633 +.L3644: ldr r0, [r4, #-1500] bl FtlGcBufFree mov r3, #0 str r3, [r5, #1740] - ldr r3, .L3643+8 + ldr r3, .L3645+8 ldrh r3, [r3, #4] cmp r3, #0 - bne .L3630 + bne .L3632 mov r0, #1 bl FtlGcFreeTempBlock -.L3641: +.L3643: mov r0, #1 ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L3644: +.L3646: .align 2 -.L3643: +.L3645: .word .LANCHOR2 .word .LANCHOR4 .word .LANCHOR2+980 @@ -21656,26 +21655,26 @@ Ftl_get_new_temp_ppa: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L3649 + ldr r3, .L3651 movw r2, #65535 stmfd sp!, {r4, lr} .save {r4, lr} ldrh r1, [r3] cmp r1, r2 - beq .L3646 + beq .L3648 ldrh r3, [r3, #4] cmp r3, #0 - bne .L3647 -.L3646: + bne .L3649 +.L3648: bl FtlCacheWriteBack mov r0, #0 bl FtlGcFreeTempBlock - ldr r0, .L3649+4 + ldr r0, .L3651+4 mov r4, #0 add r0, r0, #980 strb r4, [r0, #8] bl allocate_data_superblock - ldr r3, .L3649+8 + ldr r3, .L3651+8 movw r2, #1764 strh r4, [r3, r2] @ movhi movw r2, #1766 @@ -21684,13 +21683,13 @@ Ftl_get_new_temp_ppa: mov r0, r4 bl FtlEctTblFlush bl FtlVpcTblFlush -.L3647: - ldr r0, .L3649 +.L3649: + ldr r0, .L3651 ldmfd sp!, {r4, lr} b get_new_active_ppa -.L3650: +.L3652: .align 2 -.L3649: +.L3651: .word .LANCHOR2+980 .word .LANCHOR2 .word .LANCHOR4 @@ -21706,31 +21705,31 @@ ftl_read: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r4, r1 - ldr r1, .L3699 + ldr r1, .L3701 .pad #84 sub sp, sp, #84 ldr r1, [r1, #3444] cmp r1, #1 - bne .L3676 + bne .L3678 cmp r0, #16 mov r8, r3 mov r9, r2 - bne .L3653 + bne .L3655 mov r1, r2 add r0, r4, #256 mov r2, r3 bl FtlVendorPartRead - b .L3652 -.L3653: - ldr r5, .L3699+4 + b .L3654 +.L3655: + ldr r5, .L3701+4 ldr r3, [r5, #-2740] cmp r2, r3 cmpls r4, r3 - bcs .L3676 + bcs .L3678 add r2, r4, r2 str r2, [sp, #40] cmp r2, r3 - bhi .L3676 + bhi .L3678 sub r3, r5, #1648 mov r0, r4 ldrh r6, [r3, #-14] @@ -21741,7 +21740,7 @@ ftl_read: str r0, [sp, #32] sub r0, r3, #1 bl __aeabi_uidiv - ldr r2, .L3699+8 + ldr r2, .L3701+8 ldr r3, [sp, #32] str r0, [sp, #36] rsb r3, r3, #1 @@ -21758,33 +21757,33 @@ ftl_read: str r3, [r5, #-1588] bl FtlCacheMetchLpa cmp r0, #0 - beq .L3654 + beq .L3656 bl FtlCacheWriteBack -.L3654: +.L3656: ldr r6, [sp, #32] mov r3, #0 - ldr r5, .L3699+4 + ldr r5, .L3701+4 mov r7, r3 str r3, [sp, #24] str r3, [sp, #48] str r3, [sp, #52] -.L3655: +.L3657: ldr r3, [sp, #28] cmp r3, #0 - beq .L3698 + beq .L3700 mov r0, r6 add r1, sp, #76 mov r2, #0 bl log2phys ldr r3, [sp, #76] cmn r3, #1 - bne .L3694 + bne .L3696 mov r10, #0 -.L3656: - ldr r3, .L3699+12 +.L3658: + ldr r3, .L3701+12 ldrh r0, [r3] cmp r10, r0 - bcs .L3660 + bcs .L3662 mla r0, r0, r6, r10 ldr r2, [sp, #40] cmp r0, r4 @@ -21793,27 +21792,27 @@ ftl_read: cmp r0, r2 movcs r3, #0 cmp r3, #0 - beq .L3658 + beq .L3660 rsb r0, r4, r0 mov r1, #0 mov r2, #512 add r0, r8, r0, asl #9 bl ftl_memset -.L3658: +.L3660: add r10, r10, #1 - b .L3656 -.L3694: + b .L3658 +.L3696: ldr r2, [r5, #-1504] mov r10, #36 mla r10, r10, r7, r2 str r3, [r10, #4] ldr r3, [sp, #32] cmp r6, r3 - bne .L3661 + bne .L3663 ldr r3, [r5, #-1456] mov r0, r4 str r3, [r10, #8] - ldr r3, .L3699+12 + ldr r3, .L3701+12 ldrh fp, [r3] mov r1, fp bl __aeabi_uidivmod @@ -21824,32 +21823,32 @@ ftl_read: cmp r3, fp str r3, [sp, #48] streq r8, [r10, #8] - b .L3662 -.L3661: + b .L3664 +.L3663: ldr r3, [sp, #36] cmp r6, r3 - bne .L3663 + bne .L3665 ldr r3, [r5, #-1452] ldr r1, [sp, #40] str r3, [r10, #8] - ldr r3, .L3699+12 + ldr r3, .L3701+12 ldrh r2, [r3] mul r3, r2, r6 rsb r1, r3, r1 str r1, [sp, #24] cmp r1, r2 - bne .L3662 - b .L3696 -.L3663: - ldr r3, .L3699+12 + bne .L3664 + b .L3698 +.L3665: + ldr r3, .L3701+12 ldrh r3, [r3] mul r3, r3, r6 -.L3696: +.L3698: rsb r3, r4, r3 add r3, r8, r3, asl #9 str r3, [r10, #8] -.L3662: - ldr r3, .L3699+16 +.L3664: + ldr r3, .L3701+16 ldr r2, [r5, #-1440] str r6, [r10, #16] ldrh r3, [r3] @@ -21858,23 +21857,23 @@ ftl_read: bic r3, r3, #3 add r3, r2, r3 str r3, [r10, #12] -.L3660: +.L3662: ldr r3, [sp, #28] add r6, r6, #1 subs r3, r3, #1 str r3, [sp, #28] - beq .L3664 - ldr r3, .L3699+20 + beq .L3666 + ldr r3, .L3701+20 ldrh r3, [r3] cmp r7, r3, asl #3 - bne .L3655 -.L3664: + bne .L3657 +.L3666: cmp r7, #0 - beq .L3655 + beq .L3657 ldr r0, [r5, #-1504] mov r1, r7 mov r2, #0 - ldr fp, .L3699+8 + ldr fp, .L3701+8 bl FlashReadPages ldr r3, [sp, #56] mov r3, r3, asl #9 @@ -21887,7 +21886,7 @@ ftl_read: str r3, [sp, #68] mov r3, #0 str r3, [sp, #44] -.L3671: +.L3673: ldr r3, [sp, #44] mov ip, #36 ldr r1, [sp, #32] @@ -21896,34 +21895,34 @@ ftl_read: add r3, r3, r10 ldr r2, [r3, #16] cmp r2, r1 - bne .L3666 + bne .L3668 ldr r1, [r3, #8] ldr r3, [r5, #-1456] cmp r1, r3 - bne .L3667 + bne .L3669 ldr r3, [sp, #60] mov r0, r8 ldr r2, [sp, #64] add r1, r1, r3 - b .L3697 -.L3666: + b .L3699 +.L3668: ldr r1, [sp, #36] cmp r2, r1 - bne .L3667 + bne .L3669 ldr r1, [r3, #8] ldr r3, [r5, #-1452] cmp r1, r3 - bne .L3667 - ldr r3, .L3699+12 + bne .L3669 + ldr r3, .L3701+12 ldr r2, [sp, #68] ldrh r0, [r3] ldr r3, [sp, #36] mul r0, r0, r3 rsb r0, r4, r0 add r0, r8, r0, asl #9 -.L3697: +.L3699: bl ftl_memcpy -.L3667: +.L3669: ldr r2, [r5, #-1504] add r3, r2, r10 ldr r1, [r2, r10] @@ -21936,9 +21935,9 @@ ftl_read: ldr r1, [r3, #16] ldr r2, [r2, #8] cmp r1, r2 - beq .L3669 + beq .L3671 ldr r2, [fp, #1284] - ldr r0, .L3699+24 + ldr r0, .L3701+24 add r2, r2, #1 str r2, [fp, #1284] ldr lr, [r3, #12] @@ -21957,44 +21956,44 @@ ftl_read: ldr r2, [r3, #4] ldr r3, [lr] bl printk -.L3669: +.L3671: ldr r3, [r5, #-1504] add r2, r3, r10 ldr r3, [r3, r10] cmp r3, #256 - bne .L3670 + bne .L3672 ldr r0, [r2, #4] ubfx r0, r0, #10, #16 bl P2V_block_in_plane bl FtlGcRefreshBlock -.L3670: +.L3672: ldr r3, [sp, #44] add r3, r3, #1 str r3, [sp, #44] cmp r3, r7 - bne .L3671 + bne .L3673 mov r7, #0 - b .L3655 -.L3698: - ldr r3, .L3699+28 + b .L3657 +.L3700: + ldr r3, .L3701+28 ldrh r3, [r3, #-6] cmp r3, #0 - beq .L3673 + beq .L3675 ldr r0, [sp, #28] mov r1, #1 bl ftl_do_gc -.L3673: +.L3675: ldr r0, [sp, #52] - b .L3652 -.L3676: + b .L3654 +.L3678: mvn r0, #0 -.L3652: +.L3654: add sp, sp, #84 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3700: +.L3702: .align 2 -.L3699: +.L3701: .word .LANCHOR1 .word .LANCHOR2 .word .LANCHOR4 @@ -22050,17 +22049,17 @@ FtlInit: stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, lr} .save {r3, r4, r5, r6, r7, r8, r9, lr} mvn r3, #0 - ldr r2, .L3721 - ldr r5, .L3721+4 - ldr r6, .L3721+8 - ldr r1, .L3721+12 - ldr r0, .L3721+16 + ldr r2, .L3723 + ldr r5, .L3723+4 + ldr r6, .L3723+8 + ldr r1, .L3723+12 + ldr r0, .L3723+16 str r3, [r6, #3444] mov r3, #0 str r3, [r2, #1956] str r3, [r5, #-1280] bl printk - ldr r0, .L3721+20 + ldr r0, .L3723+20 bl FtlConstantsInit bl FtlMemInit bl FtlVariablesInit @@ -22069,17 +22068,17 @@ FtlInit: bl FtlFreeSysBlkQueueInit bl FtlLoadBbt cmp r0, #0 - ldrne r0, .L3721+24 - bne .L3720 + ldrne r0, .L3723+24 + bne .L3722 bl FtlSysBlkInit subs r4, r0, #0 - beq .L3707 - ldr r0, .L3721+28 -.L3720: - ldr r1, .L3721+32 + beq .L3709 + ldr r0, .L3723+28 +.L3722: + ldr r1, .L3723+32 bl printk - b .L3706 -.L3707: + b .L3708 +.L3709: mov r1, #1 str r1, [r6, #3444] bl ftl_do_gc @@ -22087,22 +22086,22 @@ FtlInit: ldrh r7, [r3] mov r6, r3 cmp r7, #15 - bhi .L3708 - ldr r8, .L3721+36 + bhi .L3710 + ldr r8, .L3723+36 movw r5, #65535 - ldr r9, .L3721+40 -.L3711: + ldr r9, .L3723+40 +.L3713: ldrh r3, [r8] cmp r3, r5 - bne .L3709 + bne .L3711 ldrh r3, [r9] cmp r3, r5 - bne .L3709 + bne .L3711 and r0, r4, #63 bl List_get_gc_head_node uxth r0, r0 bl FtlGcRefreshBlock -.L3709: +.L3711: mov r0, #1 mov r1, r0 bl ftl_do_gc @@ -22112,28 +22111,28 @@ FtlInit: ldrh r2, [r6] add r3, r7, #2 cmp r2, r3 - bhi .L3706 + bhi .L3708 add r4, r4, #1 cmp r4, #4096 - bne .L3711 - b .L3706 -.L3708: + bne .L3713 + b .L3708 +.L3710: ldrb r3, [r5, #-2744] @ zero_extendqisi2 cmp r3, #0 - beq .L3706 + beq .L3708 mov r4, #128 -.L3713: +.L3715: mov r0, #1 mov r1, r0 bl ftl_do_gc subs r4, r4, #1 - bne .L3713 -.L3706: + bne .L3715 +.L3708: mov r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, pc} -.L3722: +.L3724: .align 2 -.L3721: +.L3723: .word .LANCHOR4 .word .LANCHOR2 .word .LANCHOR1 @@ -22158,34 +22157,34 @@ ftl_write: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #100 sub sp, sp, #100 - ldr r10, .L3797 + ldr r10, .L3799 str r3, [sp, #8] ldr r3, [r10, #-1280] cmp r3, #0 - bne .L3764 + bne .L3766 mov r8, r2 - ldr r2, .L3797+4 + ldr r2, .L3799+4 ldr r2, [r2, #3444] cmp r2, #1 movne r0, r3 - bne .L3724 + bne .L3726 cmp r0, #16 mov r7, r1 - bne .L3725 + bne .L3727 add r0, r1, #256 ldr r2, [sp, #8] mov r1, r8 bl FtlVendorPartWrite - b .L3724 -.L3725: + b .L3726 +.L3727: ldr r3, [r10, #-2740] cmp r8, r3 cmpls r1, r3 - bcs .L3767 + bcs .L3769 add r5, r1, r8 cmp r5, r3 - bhi .L3767 - ldr r6, .L3797+8 + bhi .L3769 + ldr r6, .L3799+8 mov r3, #2048 mov r0, r1 str r3, [r6, #1960] @@ -22215,7 +22214,7 @@ ftl_write: movcc r3, #0 cmp r2, #0 str r3, [sp, #24] - beq .L3727 + beq .L3729 mov r3, #36 ldr r9, [r10, #-1484] mul r3, r3, r2 @@ -22224,7 +22223,7 @@ ftl_write: add r9, r9, r3 ldr r3, [r9, #16] cmp r2, r3 - bne .L3728 + bne .L3730 ldr r3, [r10, #-1596] mov r1, r4 mov r0, r7 @@ -22244,11 +22243,11 @@ ftl_write: mov r2, r10 bl ftl_memcpy cmp r5, #0 - bne .L3729 + bne .L3731 ldr r3, [r6, #1964] cmp r3, #2 - ble .L3764 -.L3729: + ble .L3766 +.L3731: ldr r3, [sp, #8] rsb r8, r4, r8 add r7, r7, r4 @@ -22258,68 +22257,68 @@ ftl_write: ldr r3, [sp, #12] add r3, r3, #1 str r3, [sp, #12] -.L3728: +.L3730: mov r3, #0 str r3, [r6, #1964] -.L3727: +.L3729: ldr r0, [sp, #12] ldr r1, [sp, #28] bl FtlCacheMetchLpa cmp r0, #0 - beq .L3730 + beq .L3732 bl FtlCacheWriteBack -.L3730: - ldr r5, .L3797+12 +.L3732: + ldr r5, .L3799+12 mov r3, #0 str r3, [sp, #16] sub r4, r5, #884 str r3, [sp, #32] str r5, [r6, #1948] ldr r6, [sp, #12] -.L3731: +.L3733: ldr r3, [sp, #4] cmp r3, #0 - beq .L3796 + beq .L3798 ldrh r2, [r5, #4] cmp r2, #0 - bne .L3732 - ldr r3, .L3797+12 - ldr r9, .L3797+4 + bne .L3734 + ldr r3, .L3799+12 + ldr r9, .L3799+4 cmp r5, r3 - bne .L3733 + bne .L3735 add r0, r5, #48 ldrh r10, [r0, #4] cmp r10, #0 - bne .L3734 + bne .L3736 bl allocate_new_data_superblock str r10, [r9, #3452] -.L3734: - ldr r0, .L3797+12 +.L3736: + ldr r0, .L3799+12 bl allocate_new_data_superblock ldr r3, [r9, #3452] cmp r3, #0 - ldrne r5, .L3797+16 - bne .L3735 -.L3736: - ldr r5, .L3797+12 - b .L3735 -.L3733: + ldrne r5, .L3799+16 + bne .L3737 +.L3738: + ldr r5, .L3799+12 + b .L3737 +.L3735: ldrh r3, [r3, #4] str r2, [r9, #3452] cmp r3, #0 - bne .L3736 - mov r0, r5 - bl allocate_new_data_superblock -.L3735: - ldrh r3, [r5, #4] - cmp r3, #0 - bne .L3737 + bne .L3738 mov r0, r5 bl allocate_new_data_superblock .L3737: - ldr r3, .L3797+8 + ldrh r3, [r5, #4] + cmp r3, #0 + bne .L3739 + mov r0, r5 + bl allocate_new_data_superblock +.L3739: + ldr r3, .L3799+8 str r5, [r3, #1948] -.L3732: +.L3734: ldr r3, [r4, #-1520] ldr r1, [r4, #-1516] ldrh r2, [r5, #4] @@ -22331,15 +22330,15 @@ ftl_write: movcc r3, r2 str r3, [sp, #44] mov r3, #0 -.L3794: +.L3796: str r3, [sp, #20] ldr r3, [sp, #20] ldr r2, [sp, #44] cmp r3, r2 - beq .L3739 + beq .L3741 ldrh r3, [r5, #4] cmp r3, #0 - beq .L3739 + beq .L3741 ldr r3, [sp, #28] ldr r2, [sp, #20] rsb ip, r3, r6 @@ -22351,14 +22350,14 @@ ftl_write: moveq r3, #0 andne r3, r3, #1 cmp r3, #0 - beq .L3740 - ldr r3, .L3797+20 + beq .L3742 + ldr r3, .L3799+20 ldrh r2, [r3] add r3, r8, r7 mls r3, r2, r6, r3 cmp r3, r2 - bne .L3739 -.L3740: + bne .L3741 +.L3742: add r1, sp, #56 mov r2, #0 mov r0, r6 @@ -22369,7 +22368,7 @@ ftl_write: ldr r10, [r4, #-1516] ldr r1, [r4, #-1484] mov r3, #36 - ldr fp, .L3797+24 + ldr fp, .L3799+24 mla r1, r3, r10, r1 ldrh r2, [fp] str r6, [r1, #16] @@ -22399,9 +22398,9 @@ ftl_write: mov r10, r10, lsr #5 orrs r3, r10, ip ldr r3, [sp, #48] - beq .L3741 + beq .L3743 cmp r10, #0 - beq .L3742 + beq .L3744 ldrh fp, [fp, #-6] mov r0, r7 mov r1, fp @@ -22413,11 +22412,11 @@ ftl_write: movcc r3, r2 movcs r3, r8 str r3, [sp, #16] - b .L3743 -.L3742: + b .L3745 +.L3744: cmp ip, #0 - beq .L3743 - ldr r3, .L3797+20 + beq .L3745 + ldr r3, .L3799+20 add r2, r8, r7 str r10, [sp, #32] ldrh r1, [r3] @@ -22425,16 +22424,16 @@ ftl_write: rsb r2, r1, r2 uxth r3, r2 str r3, [sp, #16] -.L3743: - ldr r3, .L3797+20 +.L3745: + ldr r3, .L3799+20 ldr r2, [sp, #16] ldrh r3, [r3] cmp r2, r3 - bne .L3744 + bne .L3746 cmp r10, #0 - ldr r0, .L3797 + ldr r0, .L3799 moveq r3, r2 - ldr r2, .L3797 + ldr r2, .L3799 muleq r1, r6, r3 ldreq r3, [sp, #8] ldr r2, [r2, #-1516] @@ -22447,16 +22446,16 @@ ftl_write: mov r3, #36 mla r3, r3, r2, r0 strne r1, [r3, #8] - bne .L3747 + bne .L3749 ldr r0, [r3, #8] - ldr r3, .L3797+28 + ldr r3, .L3799+28 ldrh r2, [r3] - b .L3792 -.L3744: + b .L3794 +.L3746: ldr r2, [sp, #56] mov r3, #36 cmn r2, #1 - beq .L3748 + beq .L3750 ldr r1, [r4, #-1484] add r0, sp, #60 str r2, [sp, #64] @@ -22472,37 +22471,37 @@ ftl_write: bl FlashReadPages ldr r3, [sp, #60] cmn r3, #1 - ldreq r2, .L3797+8 + ldreq r2, .L3799+8 ldreq r3, [r2, #1284] addeq r3, r3, #1 streq r3, [r2, #1284] - beq .L3751 -.L3749: + beq .L3753 +.L3751: ldr r3, [r9, #8] cmp r3, r6 - beq .L3751 - ldr r2, .L3797+8 - ldr r0, .L3797+32 + beq .L3753 + ldr r2, .L3799+8 + ldr r0, .L3799+32 ldr r3, [r2, #1284] add r3, r3, #1 str r3, [r2, #1284] mov r2, r6 ldr r1, [r9, #8] bl printk - b .L3751 -.L3748: + b .L3753 +.L3750: ldr r2, [r4, #-1516] ldr r1, [r4, #-1484] mla r3, r3, r2, r1 mov r1, #0 ldr r0, [r3, #8] - ldr r3, .L3797+28 + ldr r3, .L3799+28 ldrh r2, [r3] bl ftl_memset -.L3751: +.L3753: cmp r10, #0 mov r3, #36 - beq .L3752 + beq .L3754 ldr r1, [r4, #-1484] ldr r2, [r4, #-1516] mla r3, r3, r2, r1 @@ -22510,41 +22509,41 @@ ftl_write: ldr r0, [r3, #8] ldr r3, [sp, #32] add r0, r0, r3, asl #9 - b .L3795 -.L3752: + b .L3797 +.L3754: ldr r1, [r4, #-1516] ldr r2, [r4, #-1484] mla r3, r3, r1, r2 - ldr r2, .L3797+20 + ldr r2, .L3799+20 ldrh r1, [r2] ldr r0, [r3, #8] mul r1, r1, r6 ldr r3, [sp, #8] rsb r1, r7, r1 add r1, r3, r1, asl #9 -.L3795: +.L3797: ldr r3, [sp, #16] mov r2, r3, asl #9 - b .L3792 -.L3741: + b .L3794 +.L3743: ldr r2, [sp, #24] cmp r2, #0 ldr r2, [r4, #-1516] - beq .L3753 + beq .L3755 ldr r1, [r4, #-1484] mla r3, r3, r2, r1 - ldr r2, .L3797+20 + ldr r2, .L3799+20 ldrh fp, [r2] ldr r2, [sp, #8] mul fp, fp, r6 rsb fp, r7, fp add fp, r2, fp, asl #9 str fp, [r3, #8] - b .L3747 -.L3753: + b .L3749 +.L3755: ldr r0, [r4, #-1484] mla r3, r3, r2, r0 - ldr r2, .L3797+20 + ldr r2, .L3799+20 ldrh r1, [r2] ldrh r2, [fp, #-2] ldr r0, [r3, #8] @@ -22552,10 +22551,10 @@ ftl_write: ldr r3, [sp, #8] rsb r1, r7, r1 add r1, r3, r1, asl #9 -.L3792: +.L3794: bl ftl_memcpy -.L3747: - ldr r3, .L3797+36 +.L3749: + ldr r3, .L3799+36 ldr r2, [sp, #40] ldr r1, [sp, #36] strh r3, [r2, r1] @ movhi @@ -22576,8 +22575,8 @@ ftl_write: str r3, [r4, #-1516] ldr r3, [sp, #20] add r3, r3, #1 - b .L3794 -.L3739: + b .L3796 +.L3741: ldr r3, [sp, #4] ldr r2, [sp, #20] ldr r1, [sp, #24] @@ -22588,62 +22587,62 @@ ftl_write: cmp r3, r2 orrcs r1, r1, #1 cmp r1, #0 - bne .L3757 + bne .L3759 ldrh r3, [r5, #4] cmp r3, #0 - beq .L3757 -.L3759: + beq .L3759 +.L3761: mov r3, #0 str r3, [sp, #24] - b .L3731 -.L3757: + b .L3733 +.L3759: bl FtlCacheWriteBack - ldr r2, .L3797 + ldr r2, .L3799 mov r3, #0 str r3, [r2, #-1516] ldr r3, [sp, #4] cmp r3, #1 - bhi .L3731 - b .L3759 -.L3796: + bhi .L3733 + b .L3761 +.L3798: mov r0, r3 ldr r2, [sp, #12] ldr r3, [sp, #28] rsb r1, r2, r3 bl ftl_do_gc - ldr r1, .L3797+40 + ldr r1, .L3799+40 ldrh r3, [r1] mov r6, r1 cmp r3, #5 - bls .L3770 + bls .L3772 cmp r3, #31 - bhi .L3764 - ldr r3, .L3797+44 - ldrb r3, [r3] @ zero_extendqisi2 + bhi .L3766 + ldr r3, .L3799+44 + ldrb r3, [r3, #32] @ zero_extendqisi2 cmp r3, #0 - bne .L3764 -.L3770: - ldr r5, .L3797+48 + bne .L3766 +.L3772: + ldr r5, .L3799+48 ldr r4, [sp, #4] - ldr r7, .L3797+52 + ldr r7, .L3799+52 add r8, r5, #2 -.L3783: +.L3785: ldrh r2, [r7] movw r3, #65535 cmp r2, r3 - bne .L3763 + bne .L3765 ldrh r3, [r5] cmp r3, r2 - bne .L3763 + bne .L3765 ldrh r2, [r8] cmp r2, r3 - bne .L3763 + bne .L3765 and r0, r4, #7 bl List_get_gc_head_node uxth r0, r0 bl FtlGcRefreshBlock -.L3763: - ldr r2, .L3797+56 +.L3765: + ldr r2, .L3799+56 mov r0, #1 mov r1, r0 mov r3, #128 @@ -22653,29 +22652,29 @@ ftl_write: mov r0, #0 mov r1, #1 bl ftl_do_gc - ldr r3, .L3797 + ldr r3, .L3799 ldr r3, [r3, #-1280] cmp r3, #0 - bne .L3764 + bne .L3766 ldrh r3, [r6] cmp r3, #2 - bhi .L3764 + bhi .L3766 add r4, r4, #1 cmp r4, #256 - bne .L3783 - b .L3764 -.L3767: + bne .L3785 + b .L3766 +.L3769: mvn r0, #0 - b .L3724 -.L3764: + b .L3726 +.L3766: mov r0, #0 -.L3724: +.L3726: add sp, sp, #100 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3798: +.L3800: .align 2 -.L3797: +.L3799: .word .LANCHOR2 .word .LANCHOR1 .word .LANCHOR4 @@ -22739,15 +22738,15 @@ ftl_fix_nand_power_lost_error: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #52 sub sp, sp, #52 - ldr r4, .L3818 + ldr r4, .L3820 ldrb r3, [r4, #-2744] @ zero_extendqisi2 cmp r3, #0 - beq .L3802 - ldr r8, .L3818+4 + beq .L3804 + ldr r8, .L3820+4 movw r3, #1802 add r9, r4, #884 add r5, r4, #932 - ldr r0, .L3818+8 + ldr r0, .L3820+8 ldrh r7, [r8, r3] ldr r3, [r4, #-1408] mov r6, r7, asl #1 @@ -22763,27 +22762,27 @@ ftl_fix_nand_power_lost_error: mov r0, r5 bl allocate_new_data_superblock movw r5, #4097 -.L3804: +.L3806: subs r5, r5, #1 - beq .L3808 + beq .L3810 mov r0, #1 mov r1, r0 bl ftl_do_gc ldr r3, [r4, #-1408] ldrh r3, [r3, r6] cmp r3, #0 - bne .L3804 -.L3808: + bne .L3806 +.L3810: ldr r3, [r4, #-1408] mov r1, r7 - ldr r0, .L3818+8 - ldr r9, .L3818 + ldr r0, .L3820+8 + ldr r9, .L3820 ldrh r2, [r3, r6] bl printk ldr r3, [r4, #-1408] ldrh r5, [r3, r6] cmp r5, #0 - bne .L3806 + bne .L3808 add r0, sp, #48 movw r10, #65535 mov fp, #36 @@ -22795,10 +22794,10 @@ ftl_fix_nand_power_lost_error: mov r3, r5 mov ip, r3 add r0, sp, #14 -.L3809: +.L3811: uxth r2, r3 cmp r2, lr - bcs .L3817 + bcs .L3819 ldrh r2, [r0, #2]! add r3, r3, #1 cmp r2, r10 @@ -22808,11 +22807,11 @@ ftl_fix_nand_power_lost_error: uxthne r5, r5 stmneib r1, {r2, ip} strne ip, [r1, #12] - b .L3809 -.L3817: + b .L3811 +.L3819: ldr r3, [r4, #-1408] mov r1, r7 - ldr r0, .L3818+12 + ldr r0, .L3820+12 ldrh r2, [r3, r6] bl printk mov r1, #0 @@ -22823,17 +22822,17 @@ ftl_fix_nand_power_lost_error: mov r1, #1 mov r2, r5 bl FlashEraseBlocks -.L3806: +.L3808: movw r3, #1802 mvn r2, #0 strh r2, [r8, r3] @ movhi -.L3802: +.L3804: add sp, sp, #52 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3819: +.L3821: .align 2 -.L3818: +.L3820: .word .LANCHOR2 .word .LANCHOR4 .word .LC166 @@ -23212,37 +23211,37 @@ samsung_14nm_mlc_rr: .byte 18 .byte 9 .byte 8 - .type __func__.20378, %object - .size __func__.20378, 11 -__func__.20378: + .type __func__.23829, %object + .size __func__.23829, 11 +__func__.23829: .ascii "FtlMemInit\000" .space 1 - .type __func__.21125, %object - .size __func__.21125, 12 -__func__.21125: + .type __func__.24576, %object + .size __func__.24576, 12 +__func__.24576: .ascii "FtlCheckVpc\000" - .type __func__.21157, %object - .size __func__.21157, 17 -__func__.21157: + .type __func__.24608, %object + .size __func__.24608, 17 +__func__.24608: .ascii "FtlDumpBlockInfo\000" .space 3 - .type __func__.21176, %object - .size __func__.21176, 16 -__func__.21176: + .type __func__.24627, %object + .size __func__.24627, 16 +__func__.24627: .ascii "FtlScanAllBlock\000" - .type __func__.21444, %object - .size __func__.21444, 17 -__func__.21444: + .type __func__.24895, %object + .size __func__.24895, 17 +__func__.24895: .ascii "ftl_scan_all_ppa\000" .space 3 - .type __func__.21424, %object - .size __func__.21424, 21 -__func__.21424: + .type __func__.24875, %object + .size __func__.24875, 21 +__func__.24875: .ascii "FtlVpcCheckAndModify\000" .space 3 - .type __func__.20451, %object - .size __func__.20451, 8 -__func__.20451: + .type __func__.23902, %object + .size __func__.23902, 8 +__func__.23902: .ascii "FtlInit\000" .section .rodata.str1.1,"aMS",%progbits,1 .LC1: @@ -23546,7 +23545,7 @@ __func__.20451: .LC144: .ascii "free %d. [0x%x] 0x%x 0x%x\012\000" .LC145: - .ascii "FTL version: 5.0.63 20200923\000" + .ascii "FTL version: 5.0.63 20210616\000" .LC146: .ascii "swblk %x ,avg = %x max= %x vpc= %x,ec=%x ,max ec=%x" .ascii "\012\000" @@ -23727,6 +23726,232 @@ random_seed: .short 28406 .short 17598 .short 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 + .space 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 + .space 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: @@ -26070,232 +26295,6 @@ NandOptPara: .byte 0 .byte 0 .space 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 - .space 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 - .space 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: @@ -26374,6 +26373,10 @@ power_up_flag: .LANCHOR0 = . + 0 .LANCHOR2 = . + 8184 .LANCHOR4 = . + 16368 + .type gNandChipMap, %object + .size gNandChipMap, 32 +gNandChipMap: + .space 32 .type g_slc2KBNand, %object .size g_slc2KBNand, 1 g_slc2KBNand: @@ -26392,10 +26395,6 @@ gBlockPageAlignSize: gNandRandomizer: .space 1 .space 3 - .type gNandChipMap, %object - .size gNandChipMap, 32 -gNandChipMap: - .space 32 .type gpNandParaInfo, %object .size gpNandParaInfo, 4 gpNandParaInfo: diff --git a/drivers/rk_nand/rk_ftlv5_arm64.S b/drivers/rk_nand/rk_ftlv5_arm64.S index 2a1c30de9cc4..260a57d855b5 100644 --- a/drivers/rk_nand/rk_ftlv5_arm64.S +++ b/drivers/rk_nand/rk_ftlv5_arm64.S @@ -5,134 +5,132 @@ * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. - * date: 2020-09-23 + * date: 2021-07-16 * function: rk ftl v5 for rockchip soc base on arm v8 to support MLC NAND. */ - .cpu generic+fp+simd .file "rk_ftlv5_arm64.S" .text .align 2 - .type FlashReadFacBbtData.part.6, %function -FlashReadFacBbtData.part.6: - stp x29, x30, [sp, -32]! - mov w3, 0 - adrp x5, .LANCHOR0 - add x29, sp, 0 - str x19, [sp,16] - mov w7, 1 - mov x19, x0 - cbnz w1, .L4 -.L6: - add x0, x5, :lo12:.LANCHOR0 - ldr w0, [x0,8] - cmp w3, w0 - bcs .L4 - ubfx x4, x3, 5, 11 - ldr x0, [x5,#:lo12:.LANCHOR0] - lsl x4, x4, 2 - lsl w6, w7, w3 - add w3, w3, 1 - ldr w1, [x0,x4] - uxth w3, w3 - orr w6, w1, w6 - str w6, [x0,x4] - b .L6 -.L4: - ldr x1, [x5,#:lo12:.LANCHOR0] - mov x0, x19 - bl ftl_memcpy - mov w2, 4 - adrp x0, .LC0 - mov x1, x19 - add x0, x0, :lo12:.LC0 - mov w3, w2 - bl rknand_print_hex - ldr x19, [sp,16] - mov w0, 0 - ldp x29, x30, [sp], 32 - ret - .size FlashReadFacBbtData.part.6, .-FlashReadFacBbtData.part.6 - .align 2 - .type ftl_set_blk_mode.part.17, %function -ftl_set_blk_mode.part.17: - adrp x1, .LANCHOR0+16 - uxth w0, w0 - ubfx x2, x0, 5, 11 - lsl x2, x2, 2 - ldr x3, [x1,#:lo12:.LANCHOR0+16] - mov w1, 1 - lsl w0, w1, w0 - ldr w1, [x3,x2] - orr w0, w1, w0 - str w0, [x3,x2] - ret - .size ftl_set_blk_mode.part.17, .-ftl_set_blk_mode.part.17 - .align 2 .type flash_read_ecc, %function flash_read_ecc: - adrp x2, .LANCHOR0 - ubfiz x0, x0, 4, 8 stp x29, x30, [sp, -32]! - add x2, x2, :lo12:.LANCHOR0 - add x2, x2, 24 + ubfiz x0, x0, 4, 8 + adrp x1, .LANCHOR0 + add x1, x1, :lo12:.LANCHOR0 + add x2, x1, x0 add x29, sp, 0 - add x1, x2, x0 - str x19, [sp,16] - ldrb w1, [x1,8] - ldr x19, [x2,x0] + str x19, [sp, 16] + ldr x0, [x1, x0] + ldrb w19, [x2, 8] + add x19, x0, x19, lsl 8 mov w0, 122 - add x19, x19, x1, lsl 8 - str w0, [x19,2056] + str w0, [x19, 2056] mov x0, 400 bl __const_udelay - ldr w1, [x19,2048] - ldr w0, [x19,2048] + ldr w1, [x19, 2048] + ldr w0, [x19, 2048] and w1, w1, 15 and w0, w0, 15 - cmp w0, w1 - csel w2, w0, w1, cs - ldr w1, [x19,2048] - ldr w0, [x19,2048] - and w1, w1, 15 - ldr x19, [sp,16] - cmp w2, w1 - and w0, w0, 15 - csel w1, w2, w1, cs cmp w1, w0 - csel w0, w1, w0, cs + csel w1, w1, w0, cs + ldr w0, [x19, 2048] + ldr w2, [x19, 2048] + and w0, w0, 15 + ldr x19, [sp, 16] + and w2, w2, 15 + cmp w0, w2 + csel w0, w0, w2, cs + cmp w0, w1 + csel w0, w0, w1, cs ldp x29, x30, [sp], 32 ret .size flash_read_ecc, .-flash_read_ecc .align 2 + .type FlashReadFacBbtData.part.6, %function +FlashReadFacBbtData.part.6: + stp x29, x30, [sp, -32]! + adrp x3, .LANCHOR0 + add x29, sp, 0 + str x19, [sp, 16] + mov x19, x0 + cbnz w1, .L4 + add x5, x3, :lo12:.LANCHOR0 + mov w0, 0 + mov w7, 1 +.L5: + ldr w1, [x5, 72] + cmp w0, w1 + bcc .L6 +.L4: + add x3, x3, :lo12:.LANCHOR0 + mov x0, x19 + ldr x1, [x3, 64] + bl ftl_memcpy + mov w3, 4 + mov x1, x19 + mov w2, w3 + adrp x0, .LC0 + add x0, x0, :lo12:.LC0 + bl rknand_print_hex + mov w0, 0 + ldr x19, [sp, 16] + ldp x29, x30, [sp], 32 + ret +.L6: + ubfx x1, x0, 5, 11 + ldr x6, [x5, 64] + lsl x1, x1, 2 + lsl w8, w7, w0 + add w0, w0, 1 + and w0, w0, 65535 + ldr w4, [x6, x1] + orr w4, w4, w8 + str w4, [x6, x1] + b .L5 + .size FlashReadFacBbtData.part.6, .-FlashReadFacBbtData.part.6 + .align 2 + .type ftl_set_blk_mode.part.17, %function +ftl_set_blk_mode.part.17: + and w0, w0, 65535 + adrp x2, .LANCHOR0+80 + ubfx x1, x0, 5, 11 + ldr x3, [x2, #:lo12:.LANCHOR0+80] + lsl x1, x1, 2 + mov w2, 1 + lsl w2, w2, w0 + ldr w0, [x3, x1] + orr w0, w0, w2 + str w0, [x3, x1] + ret + .size ftl_set_blk_mode.part.17, .-ftl_set_blk_mode.part.17 + .align 2 .global FlashMemCmp8 .type FlashMemCmp8, %function FlashMemCmp8: - mov x5, x0 - adrp x0, .LANCHOR0+88 - ldrb w0, [x0,#:lo12:.LANCHOR0+88] - cbz w0, .L16 - ldrb w4, [x5,1] - mov w0, 0 - ldrb w3, [x1,1] + adrp x3, .LANCHOR0+88 + ldrb w3, [x3, #:lo12:.LANCHOR0+88] + cbz w3, .L15 + ldrb w4, [x0, 1] + ldrb w3, [x1, 1] cmp w4, w3 - beq .L13 -.L16: + beq .L16 +.L15: mov x3, 0 -.L14: - cmp w3, w2 +.L13: mov w4, w3 - bcs .L19 - ldrb w0, [x5,x3] + cmp w3, w2 + bcc .L14 +.L16: + mov w0, 0 + ret +.L14: + ldrb w5, [x0, x3] add x3, x3, 1 add x6, x1, x3 - ldrb w6, [x6,-1] - cmp w6, w0 - beq .L14 + ldrb w6, [x6, -1] + cmp w6, w5 + beq .L13 add w0, w4, 1 - b .L13 -.L19: - mov w0, 0 -.L13: ret .size FlashMemCmp8, .-FlashMemCmp8 .align 2 @@ -140,138 +138,139 @@ FlashMemCmp8: .type FlashRsvdBlkChk, %function FlashRsvdBlkChk: adrp x2, .LANCHOR0 - uxtb w0, w0 add x2, x2, :lo12:.LANCHOR0 - ldrb w3, [x2,89] - ldr w2, [x2,92] + and w0, w0, 255 + ldrb w3, [x2, 89] + ldr w2, [x2, 92] mul w2, w3, w2 - cmp w1, w2 - cset w1, cc - cmp w0, wzr - cset w0, eq - and w0, w1, w0 - eor w0, w0, 1 + cmp w2, w1 + bls .L20 + cmp w0, 0 + cset w0, ne + ret +.L20: + mov w0, 1 ret .size FlashRsvdBlkChk, .-FlashRsvdBlkChk .align 2 .global FlashGetRandomizer .type FlashGetRandomizer, %function FlashGetRandomizer: - stp x29, x30, [sp, -32]! + and x3, x1, 127 adrp x2, .LANCHOR1 - and w3, w1, 127 add x2, x2, :lo12:.LANCHOR1 - add x29, sp, 0 - uxtb w0, w0 - str x19, [sp,16] - ldrh w19, [x2,w3,uxtw 1] + ldrh w4, [x2, x3, lsl 1] adrp x2, .LANCHOR0+96 - ldrb w2, [x2,#:lo12:.LANCHOR0+96] - cbz w2, .L22 + ldrb w2, [x2, #:lo12:.LANCHOR0+96] + cbz w2, .L29 + stp x29, x30, [sp, -16]! + and w0, w0, 255 + add x29, sp, 0 bl FlashRsvdBlkChk - cmp w0, wzr - orr w1, w19, -1073741824 - csel w19, w1, w19, ne -.L22: - mov w0, w19 - ldr x19, [sp,16] - ldp x29, x30, [sp], 32 + cmp w0, 0 + orr w1, w4, -1073741824 + csel w4, w1, w4, ne + mov w0, w4 + ldp x29, x30, [sp], 16 + ret +.L29: + mov w0, w4 ret .size FlashGetRandomizer, .-FlashGetRandomizer .align 2 .global FlashSetRandomizer .type FlashSetRandomizer, %function FlashSetRandomizer: - stp x29, x30, [sp, -48]! - and w2, w1, 127 - add x29, sp, 0 - str x21, [sp,32] - uxtb w21, w0 + and x2, x1, 127 + and w6, w0, 255 adrp x0, .LANCHOR1 add x0, x0, :lo12:.LANCHOR1 - stp x19, x20, [sp,16] - ldrh w20, [x0,w2,uxtw 1] - adrp x2, .LANCHOR0 - add x0, x2, :lo12:.LANCHOR0 - mov x19, x2 - ldrb w0, [x0,96] - cbz w0, .L29 - mov w0, w21 + ldrh w5, [x0, x2, lsl 1] + adrp x0, .LANCHOR0 + add x2, x0, :lo12:.LANCHOR0 + mov x4, x0 + ldrb w2, [x2, 96] + cbz w2, .L40 + stp x29, x30, [sp, -16]! + mov w0, w6 + add x29, sp, 0 bl FlashRsvdBlkChk - cmp w0, wzr - orr w1, w20, -1073741824 - csel w20, w1, w20, ne -.L29: - add x2, x19, :lo12:.LANCHOR0 - add x2, x2, w21, sxtw 4 - ldr x0, [x2,24] - str w20, [x0,336] - ldp x19, x20, [sp,16] - ldr x21, [sp,32] - ldp x29, x30, [sp], 48 + cmp w0, 0 + sbfiz x6, x6, 4, 32 + add x0, x4, :lo12:.LANCHOR0 + orr w1, w5, -1073741824 + csel w5, w1, w5, ne + ldr x0, [x0, x6] + str w5, [x0, 336] + ldp x29, x30, [sp], 16 + ret +.L40: + add x0, x0, :lo12:.LANCHOR0 + sbfiz x6, x6, 4, 32 + ldr x0, [x0, x6] + str w5, [x0, 336] ret .size FlashSetRandomizer, .-FlashSetRandomizer .align 2 .global FlashBlockAlignInit .type FlashBlockAlignInit, %function FlashBlockAlignInit: - uxth w0, w0 + and w0, w0, 65535 adrp x1, .LANCHOR0 cmp w0, 512 add x1, x1, :lo12:.LANCHOR0 - bls .L36 + bls .L44 mov w0, 1024 - b .L40 -.L36: - cmp w0, 256 - bls .L38 - mov w0, 512 - b .L40 -.L38: - cmp w0, 128 - bls .L40 - mov w0, 256 -.L40: - str w0, [x1,92] +.L48: + str w0, [x1, 92] ret +.L44: + cmp w0, 256 + bls .L46 + mov w0, 512 + b .L48 +.L46: + cmp w0, 128 + bls .L48 + mov w0, 256 + b .L48 .size FlashBlockAlignInit, .-FlashBlockAlignInit .align 2 .global FlashReadCmd .type FlashReadCmd, %function FlashReadCmd: - adrp x4, .LANCHOR0 - uxtb w0, w0 - add x4, x4, :lo12:.LANCHOR0 + and w0, w0, 255 + adrp x3, .LANCHOR0 sbfiz x2, x0, 4, 32 + add x3, x3, :lo12:.LANCHOR0 stp x29, x30, [sp, -16]! - add x3, x4, 24 + add x4, x3, x2 add x29, sp, 0 - ldr x4, [x4,104] - add x5, x3, x2 - ldr x2, [x3,x2] - ldrb w4, [x4,7] - ldrb w3, [x5,8] - cmp w4, 1 - bne .L42 - sxtw x4, w3 + ldr x2, [x3, x2] + ldr x3, [x3, 104] + ldrb w4, [x4, 8] + ldrb w3, [x3, 7] + cmp w3, 1 + bne .L50 + sxtw x3, w4 mov w5, 38 - add x4, x4, 8 - add x4, x2, x4, lsl 8 - str w5, [x4,8] -.L42: - ubfiz x3, x3, 8, 8 - add x2, x2, x3 + add x3, x3, 8 + add x3, x2, x3, lsl 8 + str w5, [x3, 8] +.L50: + ubfiz x4, x4, 8, 8 and w3, w1, 255 - str wzr, [x2,2056] - str wzr, [x2,2052] - str wzr, [x2,2052] - str w3, [x2,2052] + add x2, x2, x4 + str wzr, [x2, 2056] + str wzr, [x2, 2052] + str wzr, [x2, 2052] + str w3, [x2, 2052] lsr w3, w1, 8 - str w3, [x2,2052] + str w3, [x2, 2052] lsr w3, w1, 16 - str w3, [x2,2052] + str w3, [x2, 2052] mov w3, 48 - str w3, [x2,2056] + str w3, [x2, 2056] bl FlashSetRandomizer ldp x29, x30, [sp], 16 ret @@ -280,74 +279,72 @@ FlashReadCmd: .global FlashReadDpDataOutCmd .type FlashReadDpDataOutCmd, %function FlashReadDpDataOutCmd: + and w0, w0, 255 adrp x3, .LANCHOR0 - uxtb w0, w0 - add x3, x3, :lo12:.LANCHOR0 sbfiz x2, x0, 4, 32 - add x4, x3, 24 + add x3, x3, :lo12:.LANCHOR0 stp x29, x30, [sp, -16]! - add x5, x4, x2 + add x4, x3, x2 + and w5, w1, 255 add x29, sp, 0 - ldr x6, [x4,x2] - lsr w4, w1, 8 - ldrb w2, [x3,128] + ldr x6, [x3, x2] + ldrb w2, [x3, 128] lsr w3, w1, 16 cmp w2, 1 - ldrb w2, [x5,8] - and w5, w1, 255 + ldrb w2, [x4, 8] + lsr w4, w1, 8 add x2, x6, x2, lsl 8 - bne .L44 + bne .L53 mov w6, 6 - str w6, [x2,2056] - str wzr, [x2,2052] - str wzr, [x2,2052] - str w5, [x2,2052] - str w4, [x2,2052] - str w3, [x2,2052] - b .L46 -.L44: - str wzr, [x2,2056] - str wzr, [x2,2052] - str wzr, [x2,2052] - str w5, [x2,2052] - str w4, [x2,2052] - str w3, [x2,2052] - mov w3, 5 - str w3, [x2,2056] - str wzr, [x2,2052] - str wzr, [x2,2052] -.L46: + str w6, [x2, 2056] + str wzr, [x2, 2052] + str wzr, [x2, 2052] + str w5, [x2, 2052] + str w4, [x2, 2052] + str w3, [x2, 2052] +.L56: mov w3, 224 - str w3, [x2,2056] + str w3, [x2, 2056] bl FlashSetRandomizer ldp x29, x30, [sp], 16 ret +.L53: + str wzr, [x2, 2056] + str wzr, [x2, 2052] + str wzr, [x2, 2052] + str w5, [x2, 2052] + str w4, [x2, 2052] + str w3, [x2, 2052] + mov w3, 5 + str w3, [x2, 2056] + str wzr, [x2, 2052] + str wzr, [x2, 2052] + b .L56 .size FlashReadDpDataOutCmd, .-FlashReadDpDataOutCmd .align 2 .global FlashProgFirstCmd .type FlashProgFirstCmd, %function FlashProgFirstCmd: - adrp x3, .LANCHOR0 - uxtb w0, w0 - add x3, x3, :lo12:.LANCHOR0 + and w0, w0, 255 + adrp x4, .LANCHOR0 sbfiz x5, x0, 4, 32 - add x3, x3, 24 - lsr w4, w1, 16 - add x2, x3, x5 + add x4, x4, :lo12:.LANCHOR0 + add x2, x4, x5 stp x29, x30, [sp, -16]! + lsr w3, w1, 16 add x29, sp, 0 - ldrb w2, [x2,8] - ldr x3, [x3,x5] - add x2, x3, x2, lsl 8 - mov w3, 128 - str w3, [x2,2056] - and w3, w1, 255 - str wzr, [x2,2052] - str wzr, [x2,2052] - str w3, [x2,2052] - lsr w3, w1, 8 - str w3, [x2,2052] - str w4, [x2,2052] + ldr x4, [x4, x5] + ldrb w2, [x2, 8] + add x2, x4, x2, lsl 8 + mov w4, 128 + str w4, [x2, 2056] + and w4, w1, 255 + str wzr, [x2, 2052] + str wzr, [x2, 2052] + str w4, [x2, 2052] + lsr w4, w1, 8 + str w4, [x2, 2052] + str w3, [x2, 2052] bl FlashSetRandomizer ldp x29, x30, [sp], 16 ret @@ -356,64 +353,62 @@ FlashProgFirstCmd: .global FlashEraseCmd .type FlashEraseCmd, %function FlashEraseCmd: - adrp x3, .LANCHOR0 ubfiz x0, x0, 4, 8 + adrp x3, .LANCHOR0 add x3, x3, :lo12:.LANCHOR0 - add x4, x3, 24 - add x5, x4, x0 - ldr x4, [x4,x0] - ldrb w0, [x5,8] - cbz w2, .L49 + add x5, x3, x0 + ldr x4, [x3, x0] + ldrb w0, [x5, 8] + cbz w2, .L60 add x2, x4, x0, lsl 8 mov w5, 96 - str w5, [x2,2056] + str w5, [x2, 2056] and w5, w1, 255 - str w5, [x2,2052] + str w5, [x2, 2052] lsr w5, w1, 8 - str w5, [x2,2052] + str w5, [x2, 2052] lsr w5, w1, 16 - str w5, [x2,2052] - ldr w2, [x3,92] + str w5, [x2, 2052] + ldr w2, [x3, 92] add w1, w1, w2 -.L49: +.L60: add x0, x4, x0, lsl 8 mov w2, 96 - str w2, [x0,2056] + str w2, [x0, 2056] and w2, w1, 255 - str w2, [x0,2052] + str w2, [x0, 2052] lsr w2, w1, 8 - str w2, [x0,2052] + str w2, [x0, 2052] lsr w1, w1, 16 - str w1, [x0,2052] + str w1, [x0, 2052] mov w1, 208 - str w1, [x0,2056] + str w1, [x0, 2056] ret .size FlashEraseCmd, .-FlashEraseCmd .align 2 .global FlashProgDpSecondCmd .type FlashProgDpSecondCmd, %function FlashProgDpSecondCmd: - adrp x2, .LANCHOR0 - uxtb w0, w0 - add x2, x2, :lo12:.LANCHOR0 - sbfiz x4, x0, 4, 32 - add x5, x2, 24 - lsr w3, w1, 16 - add x7, x5, x4 + and w0, w0, 255 + adrp x4, .LANCHOR0 + sbfiz x5, x0, 4, 32 + add x4, x4, :lo12:.LANCHOR0 + add x2, x4, x5 stp x29, x30, [sp, -16]! + lsr w3, w1, 16 add x29, sp, 0 - ldrb w6, [x2,123] - ldrb w2, [x7,8] - ldr x4, [x5,x4] + ldrb w6, [x4, 123] + ldrb w2, [x2, 8] + ldr x4, [x4, x5] add x2, x4, x2, lsl 8 and w4, w1, 255 - str w6, [x2,2056] - str wzr, [x2,2052] - str wzr, [x2,2052] - str w4, [x2,2052] + str w6, [x2, 2056] + str wzr, [x2, 2052] + str wzr, [x2, 2052] + str w4, [x2, 2052] lsr w4, w1, 8 - str w4, [x2,2052] - str w3, [x2,2052] + str w4, [x2, 2052] + str w3, [x2, 2052] bl FlashSetRandomizer ldp x29, x30, [sp], 16 ret @@ -422,24 +417,23 @@ FlashProgDpSecondCmd: .global FlashProgSecondCmd .type FlashProgSecondCmd, %function FlashProgSecondCmd: - adrp x1, .LANCHOR0 - ubfiz x0, x0, 4, 8 stp x29, x30, [sp, -32]! + ubfiz x0, x0, 4, 8 + adrp x1, .LANCHOR0 add x1, x1, :lo12:.LANCHOR0 - add x1, x1, 24 add x29, sp, 0 add x2, x1, x0 - stp x19, x20, [sp,16] - ldrb w19, [x2,8] - ldr x20, [x1,x0] + stp x19, x20, [sp, 16] + ldr x20, [x1, x0] mov x0, 36284 - add x19, x19, 8 + ldrb w19, [x2, 8] movk x0, 0x6, lsl 16 - add x19, x20, x19, lsl 8 bl __const_udelay + add x19, x19, 8 mov w0, 16 - str w0, [x19,8] - ldp x19, x20, [sp,16] + add x19, x20, x19, lsl 8 + str w0, [x19, 8] + ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 32 ret .size FlashProgSecondCmd, .-FlashProgSecondCmd @@ -447,40 +441,38 @@ FlashProgSecondCmd: .global FlashProgDpFirstCmd .type FlashProgDpFirstCmd, %function FlashProgDpFirstCmd: - adrp x1, .LANCHOR0 ubfiz x0, x0, 4, 8 + adrp x1, .LANCHOR0 add x1, x1, :lo12:.LANCHOR0 - add x2, x1, 24 - add x3, x2, x0 - ldrb w1, [x1,122] - ldr x2, [x2,x0] - ldrb w0, [x3,8] + add x3, x1, x0 + ldr x2, [x1, x0] + ldrb w0, [x3, 8] + ldrb w1, [x1, 122] add x0, x0, 8 add x0, x2, x0, lsl 8 - str w1, [x0,8] + str w1, [x0, 8] ret .size FlashProgDpFirstCmd, .-FlashProgDpFirstCmd .align 2 .global FlashReadStatus .type FlashReadStatus, %function FlashReadStatus: - adrp x1, .LANCHOR0 - ubfiz x0, x0, 4, 8 stp x29, x30, [sp, -32]! + ubfiz x0, x0, 4, 8 + adrp x1, .LANCHOR0 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] + str x19, [sp, 16] + ldr x0, [x1, x0] + ldrb w19, [x2, 8] + add x19, x0, x19, lsl 8 mov w0, 112 - add x19, x19, x2, lsl 8 - str w0, [x19,2056] + str w0, [x19, 2056] mov x0, 400 bl __const_udelay - ldr w0, [x19,2048] - ldr x19, [sp,16] + ldr w0, [x19, 2048] + ldr x19, [sp, 16] ldp x29, x30, [sp], 32 ret .size FlashReadStatus, .-FlashReadStatus @@ -488,22 +480,22 @@ FlashReadStatus: .global js_hash .type js_hash, %function js_hash: - mov x5, x0 + mov x4, x0 mov w0, 42982 - mov x2, 0 + mov x3, 0 movk w0, 0x47c6, lsl 16 -.L58: - cmp w1, w2 - bls .L60 - lsl w3, w0, 5 - ldrb w4, [x5,x2] - add w3, w3, w0, lsr 2 - add x2, x2, 1 - add w3, w3, w4 - eor w0, w0, w3 - b .L58 -.L60: +.L72: + cmp w1, w3 + bhi .L73 ret +.L73: + lsr w2, w0, 2 + ldrb w5, [x4, x3] + add w2, w2, w0, lsl 5 + add x3, x3, 1 + add w2, w2, w5 + eor w0, w0, w2 + b .L72 .size js_hash, .-js_hash .align 2 .global FlashLoadIdbInfo @@ -516,280 +508,260 @@ FlashLoadIdbInfo: .global BuildFlashLsbPageTable .type BuildFlashLsbPageTable, %function BuildFlashLsbPageTable: - stp x29, x30, [sp, -32]! - adrp x2, .LANCHOR0 + stp x29, x30, [sp, -48]! add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] mov w19, w1 - cbnz w0, .L63 + str x21, [sp, 32] + adrp x1, .LANCHOR0 + cbnz w0, .L76 + add x2, x1, :lo12:.LANCHOR0 mov x0, 0 - add x3, x2, :lo12:.LANCHOR0 -.L64: - add x1, x3, 144 - strh w0, [x1,x0,lsl 1] - add x0, x0, 1 - cmp x0, 512 - bne .L64 -.L70: - add x20, x2, :lo12:.LANCHOR0 - mov w1, 255 - mov w2, 2048 - add x0, x20, 1168 - uxth w19, w19 - bl ftl_memset - mov x0, 0 - mov x2, x20 - b .L65 -.L63: - cmp w0, 1 - bne .L66 - mov x0, 0 - mov w5, 3 - mov w6, 2 - add x4, x2, :lo12:.LANCHOR0 -.L69: - cmp x0, 3 - uxth w3, w0 - mov w1, w3 - bls .L67 - ubfiz w1, w3, 1, 15 - and w3, w3, 1 - cmp w3, wzr - csel w3, w5, w6, ne - sub w1, w1, w3 - uxth w1, w1 -.L67: - add x3, x4, 144 - strh w1, [x3,x0,lsl 1] - add x0, x0, 1 - cmp x0, 512 - bne .L69 - b .L70 -.L66: - cmp w0, 2 - bne .L71 - mov w1, 65535 - mov x0, 0 - add x5, x2, :lo12:.LANCHOR0 -.L73: - add x4, x5, 144 - cmp x0, 1 - uxth w3, w0 - csel w3, w1, w3, hi - add w1, w1, 2 - strh w3, [x4,x0,lsl 1] - add x0, x0, 1 - cmp x0, 512 - uxth w1, w1 - bne .L73 - b .L70 -.L71: - cmp w0, 3 - bne .L74 - mov x0, 0 - mov w6, 5 - mov w7, 4 - add x5, x2, :lo12:.LANCHOR0 + add x2, x2, 144 .L77: - cmp x0, 5 - uxth w4, w0 - mov w3, w4 - bls .L75 - ubfiz w1, w4, 1, 15 - and w4, w4, 1 - cmp w4, wzr - csel w3, w6, w7, ne - sub w3, w1, w3 - uxth w3, w3 -.L75: - add x1, x5, 144 - strh w3, [x1,x0,lsl 1] + strh w0, [x2, x0, lsl 1] add x0, x0, 1 cmp x0, 512 bne .L77 - b .L70 -.L74: - cmp w0, 4 - bne .L78 - add x1, x2, :lo12:.LANCHOR0 - mov w6, 7 - add x3, x1, 144 - mov w5, 6 - strh w0, [x3,8] - mov w0, 5 - strh wzr, [x1,144] - mov w1, 1 - strh w0, [x3,10] - mov w0, 7 - strh w1, [x3,2] - mov w1, 2 - strh w0, [x3,12] - mov w0, 8 - strh w1, [x3,4] - mov w1, 3 - strh w0, [x3,14] - mov w0, 8 - strh w1, [x3,6] -.L80: - and w4, w0, 1 - ubfiz w1, w0, 1, 15 - add w0, w0, 1 - cmp w4, wzr - csel w4, w6, w5, ne - add x3, x3, 2 - uxth w0, w0 - sub w1, w1, w4 - cmp w0, 512 - strh w1, [x3,14] - bne .L80 - b .L70 +.L83: + add x20, x1, :lo12:.LANCHOR0 + mov w2, 2048 + add x21, x20, 1168 + mov w1, 255 + mov x0, x21 + bl ftl_memset + and w19, w19, 65535 + add x1, x20, 144 + mov x2, 0 .L78: - cmp w0, 5 - bne .L81 - mov x0, 0 - add x3, x2, :lo12:.LANCHOR0 + cmp w19, w2, uxth + bhi .L111 + ldp x19, x20, [sp, 16] + ldr x21, [sp, 32] + ldp x29, x30, [sp], 48 + ret +.L76: + cmp w0, 1 + bne .L79 + add x3, x1, :lo12:.LANCHOR0 + mov x2, 0 + add x3, x3, 144 .L82: - add x1, x3, 144 - strh w0, [x1,x0,lsl 1] + and w0, w2, 65535 + cmp x2, 3 + bls .L80 + ubfiz w4, w0, 1, 15 + and w0, w0, 1 + add w0, w0, 2 + sub w0, w4, w0 + and w0, w0, 65535 +.L80: + strh w0, [x3, x2, lsl 1] + add x2, x2, 1 + cmp x2, 512 + bne .L82 + b .L83 +.L79: + cmp w0, 2 + bne .L84 + add x3, x1, :lo12:.LANCHOR0 + mov w2, 65535 + add x3, x3, 144 + mov x0, 0 +.L86: + cmp x0, 2 + and w4, w0, 65535 + csel w4, w4, w2, cc + strh w4, [x3, x0, lsl 1] + add w2, w2, 2 + add x0, x0, 1 + and w2, w2, 65535 + cmp x0, 512 + bne .L86 + b .L83 +.L84: + cmp w0, 3 + bne .L87 + add x3, x1, :lo12:.LANCHOR0 + mov x2, 0 + add x3, x3, 144 +.L90: + and w0, w2, 65535 + cmp x2, 5 + bls .L88 + ubfiz w4, w0, 1, 15 + and w0, w0, 1 + add w0, w0, 4 + sub w0, w4, w0 + and w0, w0, 65535 +.L88: + strh w0, [x3, x2, lsl 1] + add x2, x2, 1 + cmp x2, 512 + bne .L90 + b .L83 +.L87: + cmp w0, 4 + bne .L91 + add x3, x1, :lo12:.LANCHOR0 + mov w4, 1 + add x3, x3, 160 + strh w0, [x3, -8] + mov w0, 5 + strh w4, [x3, -14] + mov w4, 2 + strh w0, [x3, -6] + mov w0, 7 + strh w4, [x3, -12] + mov w4, 3 + strh w0, [x3, -4] + mov w0, 8 + strh wzr, [x3, -16] + strh w0, [x3, -2] + mov w0, 8 + strh w4, [x3, -10] +.L93: + and w4, w0, 1 + ubfiz w2, w0, 1, 15 + add w4, w4, 6 + add w0, w0, 1 + sub w2, w2, w4 + strh w2, [x3], 2 + and w0, w0, 65535 + cmp w0, 512 + bne .L93 + b .L83 +.L91: + cmp w0, 5 + bne .L94 + add x2, x1, :lo12:.LANCHOR0 + mov x0, 0 + add x3, x2, 144 +.L95: + strh w0, [x3, x0, lsl 1] add x0, x0, 1 cmp x0, 16 - bne .L82 - mov x0, 0 -.L83: - add x3, x1, x0 - add w4, w0, 16 - add x0, x0, 2 - cmp x0, 992 - strh w4, [x3,32] - bne .L83 - b .L70 -.L81: + bne .L95 + add x2, x2, 176 +.L96: + strh w0, [x2], 2 + add w0, w0, 2 + and w0, w0, 65535 + cmp w0, 1008 + bne .L96 + b .L83 +.L94: cmp w0, 6 - bne .L84 + bne .L97 + add x4, x1, :lo12:.LANCHOR0 + mov w2, 0 + add x4, x4, 144 mov x3, 0 - mov w6, 12 - mov w7, 10 - add x5, x2, :lo12:.LANCHOR0 -.L87: + mov w5, 12 + mov w6, 10 +.L100: + and w0, w3, 65535 cmp x3, 5 - uxth w4, w3 - mov w0, w4 - bls .L85 - add w0, w4, w4, lsl 1 - and w4, w4, 1 - cmp w4, wzr - uxth w0, w0 - csel w1, w6, w7, ne - sub w0, w0, w1 - uxth w0, w0 -.L85: - add x1, x5, 144 - strh w0, [x1,x3,lsl 1] + bls .L98 + tst x0, 1 + csel w0, w5, w6, ne + sub w0, w2, w0 + and w0, w0, 65535 +.L98: + strh w0, [x4, x3, lsl 1] + add w2, w2, 3 + and w2, w2, 65535 add x3, x3, 1 - cmp x3, 512 - bne .L87 - b .L70 -.L84: + cmp w2, 1536 + bne .L100 + b .L83 +.L97: cmp w0, 9 - bne .L88 - add x0, x2, :lo12:.LANCHOR0 - add x1, x0, 144 - strh wzr, [x0,144] - mov w0, 1 - strh w0, [x1,2] - mov w0, 2 - strh w0, [x1,4] - mov x0, 0 -.L89: - add x3, x1, x0 - add w4, w0, 3 - add x0, x0, 2 - cmp x0, 1018 - strh w4, [x3,6] - bne .L89 - b .L70 -.L88: + bne .L101 + add x0, x1, :lo12:.LANCHOR0 + mov w3, 1 + add x2, x0, 150 + strh w3, [x0, 146] + mov w3, 2 + strh wzr, [x0, 144] + strh w3, [x0, 148] + mov w0, 3 +.L102: + strh w0, [x2], 2 + add w0, w0, 2 + and w0, w0, 65535 + cmp w0, 1021 + bne .L102 + b .L83 +.L101: cmp w0, 10 - bne .L90 + bne .L103 + add x2, x1, :lo12:.LANCHOR0 mov x0, 0 - add x3, x2, :lo12:.LANCHOR0 -.L91: - add x1, x3, 144 - strh w0, [x1,x0,lsl 1] + add x3, x2, 144 +.L104: + strh w0, [x3, x0, lsl 1] add x0, x0, 1 cmp x0, 63 - bne .L91 - mov x0, 0 -.L92: - add x3, x1, x0 - add w4, w0, 63 - add x0, x0, 2 - cmp x0, 898 - strh w4, [x3,126] - bne .L92 - b .L70 -.L90: + bne .L104 + add x2, x2, 270 +.L105: + strh w0, [x2], 2 + add w0, w0, 2 + and w0, w0, 65535 + cmp w0, 961 + bne .L105 + b .L83 +.L103: cmp w0, 11 - bne .L93 + bne .L106 + add x2, x1, :lo12:.LANCHOR0 mov x0, 0 - add x1, x2, :lo12:.LANCHOR0 -.L94: - add x3, x1, 144 - strh w0, [x3,x0,lsl 1] + add x3, x2, 144 +.L107: + strh w0, [x3, x0, lsl 1] add x0, x0, 1 cmp x0, 8 - bne .L94 - mov w6, 7 - mov w5, 6 -.L96: + bne .L107 + add x2, x2, 160 +.L109: and w4, w0, 1 - ubfiz w1, w0, 1, 15 + ubfiz w3, w0, 1, 15 + add w4, w4, 6 add w0, w0, 1 - cmp w4, wzr - csel w4, w6, w5, ne - add x3, x3, 2 - uxth w0, w0 - sub w1, w1, w4 + sub w3, w3, w4 + strh w3, [x2], 2 + and w0, w0, 65535 cmp w0, 512 - strh w1, [x3,14] - bne .L96 - b .L70 -.L93: + bne .L109 + b .L83 +.L106: cmp w0, 12 - bne .L70 - add x1, x2, :lo12:.LANCHOR0 - mov w3, 4 - add x0, x1, 144 - strh wzr, [x1,144] - mov w1, 1 - strh w1, [x0,2] - mov w1, 2 - strh w1, [x0,4] - mov w1, 3 - strh w1, [x0,6] -.L97: - sub w1, w3, #1 - add x0, x0, 2 - add w1, w1, w3, lsr 1 - add w3, w3, 1 - strh w1, [x0,6] - uxth w3, w3 - cmp w3, 512 - bne .L97 - b .L70 -.L65: - cmp w19, w0, uxth - bls .L122 - add x1, x2, 144 - add x3, x2, 1168 - ldrh w1, [x1,x0,lsl 1] - add x0, x0, 1 - strh w1, [x3,w1,sxtw 1] - b .L65 -.L122: - ldp x19, x20, [sp,16] - ldp x29, x30, [sp], 32 - ret + bne .L83 + add x0, x1, :lo12:.LANCHOR0 + mov w3, 1 + add x2, x0, 152 + strh w3, [x0, 146] + mov w3, 2 + strh wzr, [x0, 144] + strh w3, [x0, 148] + mov w3, 3 + strh w3, [x0, 150] + mov w0, 4 +.L110: + sub w3, w0, #1 + add w3, w3, w0, lsr 1 + add w0, w0, 1 + strh w3, [x2], 2 + and w0, w0, 65535 + cmp w0, 512 + bne .L110 + b .L83 +.L111: + ldrh w0, [x1, x2, lsl 1] + add x2, x2, 1 + strh w0, [x21, w0, sxtw 1] + b .L78 .size BuildFlashLsbPageTable, .-BuildFlashLsbPageTable .align 2 .global FlashPrintInfo @@ -801,213 +773,209 @@ FlashPrintInfo: .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 + and w1, w1, 255 + add w2, w1, 1 add x29, sp, 0 - add x2, x2, :lo12:.LANCHOR1 - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - add x23, x2, w1, 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 + stp x21, x22, [sp, 32] + mov x21, x0 + mov w0, 5 + stp x23, x24, [sp, 48] + stp x25, x26, [sp, 64] + adrp x23, g_maxRegNum + umull x2, w2, w0 + adrp x0, .LANCHOR1 + add x0, x0, :lo12:.LANCHOR1 + stp x19, x20, [sp, 16] + add x25, x0, 256 + add x24, x0, 352 + add x25, x25, x2 + add x24, x24, x2 + add x23, x23, :lo12:g_maxRegNum + mov x19, x0 + add x22, x0, w1, sxtw mov x20, 0 - add x24, x24, :lo12:g_maxRegNum - mov x19, x2 - add x26, x26, :lo12:g_retryMode -.L125: - ldrb w0, [x24] + mov w26, 85 +.L135: + ldrb w0, [x23] cmp w0, w20 - bls .L131 - 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 .L126 - ldrsb w0, [x25,x20] - b .L130 -.L126: - cmp w0, 35 - bne .L128 - ldrsb w0, [x21,x20] - b .L130 -.L128: - ldrsb w0, [x23,400] -.L130: - str w0, [x22] - add x20, x20, 1 - b .L125 -.L131: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] + bhi .L139 + 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 +.L139: + add x0, x19, 352 + str w26, [x21, 8] + ldrsb w0, [x20, x0] + str w0, [x21, 4] + mov x0, 1000 + bl __const_udelay + adrp x0, g_retryMode + ldrb w0, [x0, #:lo12:g_retryMode] + cmp w0, 34 + bne .L136 + ldrsb w0, [x24, x20] +.L141: + add x20, x20, 1 + str w0, [x21] + b .L135 +.L136: + cmp w0, 35 + bne .L138 + ldrsb w0, [x25, x20] + b .L141 +.L138: + ldrsb w0, [x22, 400] + b .L141 .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, w1, uxtb 2 - stp x23, x24, [sp,48] - mov x21, x0 - add x23, x1, 412 + stp x21, x22, [sp, 32] + mov x22, x0 + ubfiz x21, x1, 2, 8 + adrp x0, .LANCHOR1 + add x0, x0, :lo12:.LANCHOR1 + add x21, x21, 4 + add x0, x0, 408 + stp x19, x20, [sp, 16] + stp x23, x24, [sp, 48] + add x21, x0, x21 + adrp x23, g_maxRegNum + mov x19, x0 + add x23, x23, :lo12:g_maxRegNum mov x20, 0 - add x22, x22, :lo12:g_maxRegNum mov w24, 161 - mov x19, x2 -.L133: - ldrb w0, [x22] +.L143: + ldrb w0, [x23] cmp w0, w20 - bls .L135 - 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 .L133 -.L135: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] + bhi .L144 + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] ldp x29, x30, [sp], 64 ret +.L144: + str w24, [x22, 8] + str wzr, [x22] + ldrsb w0, [x20, x19] + str w0, [x22] + ldrsb w0, [x21, x20] + add x20, x20, 1 + str w0, [x22] + mov x0, 1500 + bl __const_udelay + b .L143 .size SamsungSetRRPara, .-SamsungSetRRPara .align 2 .global FlashDieInfoInit .type FlashDieInfoInit, %function FlashDieInfoInit: - stp x29, x30, [sp, -96]! + stp x29, x30, [sp, -48]! adrp x0, .LANCHOR1+482 add x29, sp, 0 - stp x21, x22, [sp,32] + ldrh w0, [x0, #:lo12:.LANCHOR1+482] + stp x19, x20, [sp, 16] + str x21, [sp, 32] adrp x21, .LANCHOR0 - ldrh w0, [x0,#:lo12:.LANCHOR1+482] - stp x19, x20, [sp,16] add x19, x21, :lo12:.LANCHOR0 - str x27, [sp,80] - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] - strb wzr, [x19,3216] - add x25, x19, 3220 - strb wzr, [x19,3217] + add x20, x19, 3228 + strb wzr, [x19, 3216] + strb wzr, [x19, 3217] bl FlashBlockAlignInit - mov w1, 0 mov w2, 8 - mov x0, x25 - add x24, x19, 3228 - adrp x26, IDByte - mov x23, 0 - bl ftl_memset - add x26, x26, :lo12:IDByte mov w1, 0 + add x0, x19, 3220 + bl ftl_memset mov w2, 32 - mov x0, x24 - bl ftl_memset - add x0, x19, 3260 mov w1, 0 - mov w2, 192 + mov x0, x20 bl ftl_memset - ldr x20, [x19,104] - add x22, x20, 1 -.L138: - ldrb w2, [x20] - mov x0, x22 - add x1, x26, x23, lsl 3 + mov w2, 192 + mov w1, 0 + add x0, x19, 3260 + bl ftl_memset + ldr x7, [x19, 104] + adrp x0, IDByte + add x13, x19, 3072 + add x11, x0, :lo12:IDByte + mov x10, x0 + add x12, x7, 1 + mov x8, 0 +.L148: + ldrb w2, [x7] + add x1, x11, x8, lsl 3 + mov x0, x12 bl FlashMemCmp8 - cbnz w0, .L137 - ldrb w1, [x19,3216] - str w0, [x24,w1,sxtw 2] - add w0, w1, 1 - strb w23, [x25,w1,sxtw] - strb w0, [x19,3216] -.L137: - add x23, x23, 1 - cmp x23, 4 - bne .L138 - add x19, x21, :lo12:.LANCHOR0 - ldrb w0, [x19,3216] - strb w0, [x19,3217] - ldrb w0, [x20,8] + cbnz w0, .L147 + ldrb w0, [x19, 3216] + add w1, w0, 1 + strb w1, [x19, 3216] + str wzr, [x20, x0, lsl 2] + add x0, x13, x0 + strb w8, [x0, 148] +.L147: + add x8, x8, 1 + cmp x8, 4 + bne .L148 + add x8, x21, :lo12:.LANCHOR0 + ldrb w0, [x8, 3216] + strb w0, [x8, 3217] + ldrb w0, [x7, 8] cmp w0, 2 - beq .L139 -.L143: - add x21, x21, :lo12:.LANCHOR0 - ldrb w1, [x20,13] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldrb w0, [x21,3216] - ldr x27, [sp,80] + beq .L149 +.L153: + add x9, x21, :lo12:.LANCHOR0 + ldrh w1, [x7, 14] + ldp x19, x20, [sp, 16] + ldrb w0, [x9, 3216] + ldr x21, [sp, 32] + ldp x29, x30, [sp], 48 mul w0, w0, w1 - ldrh w1, [x20,14] - ldp x19, x20, [sp,16] + ldrb w1, [x7, 13] mul w0, w0, w1 - strh w0, [x21,3452] - ldp x21, x22, [sp,32] - ldp x29, x30, [sp], 96 + strh w0, [x9, 3452] ret -.L139: - adrp x24, IDByte - ldr w26, [x19,92] - mov x23, 0 - add x24, x24, :lo12:IDByte - add x25, x19, 3228 - add x27, x19, 3220 -.L142: - ldrb w2, [x20] - mov x0, x22 - add x1, x24, x23, lsl 3 +.L149: + ldr w14, [x8, 92] + add x10, x10, :lo12:IDByte + add x13, x8, 3228 + add x15, x8, 3072 + mov x11, 0 +.L152: + ldrb w2, [x7] + add x1, x10, x11, lsl 3 + mov x0, x12 bl FlashMemCmp8 - cbnz w0, .L140 - ldrb w1, [x20,13] - ldrb w3, [x19,3216] - mul w2, w1, w26 - ldrh w1, [x20,14] - mov x0, x3 - and w1, w1, 65280 - mul w1, w2, w1 - str w1, [x25,w3,sxtw 2] - ldrb w2, [x20,23] - cbz w2, .L141 - lsl w1, w1, 1 - str w1, [x25,w3,sxtw 2] -.L141: - add w0, w0, 1 - strb w23, [x27,x3] - strb w0, [x19,3216] -.L140: - add x23, x23, 1 - cmp x23, 4 - bne .L142 - b .L143 + cbnz w0, .L150 + ldrb w1, [x7, 13] + ldrh w0, [x7, 14] + ldrb w2, [x8, 3216] + and w0, w0, 65280 + mul w1, w1, w14 + mul w0, w0, w1 + sxtw x1, w2 + str w0, [x13, x1, lsl 2] + ldrb w3, [x7, 23] + cbz w3, .L151 + lsl w0, w0, 1 + str w0, [x13, x1, lsl 2] +.L151: + add x1, x15, x1 + add w2, w2, 1 + strb w2, [x8, 3216] + strb w11, [x1, 148] +.L150: + add x11, x11, 1 + cmp x11, 4 + bne .L152 + b .L153 .size FlashDieInfoInit, .-FlashDieInfoInit .align 2 .global FlashReadIdbData @@ -1015,8 +983,8 @@ FlashDieInfoInit: FlashReadIdbData: stp x29, x30, [sp, -16]! adrp x1, .LANCHOR0 - mov w2, 2048 add x1, x1, :lo12:.LANCHOR0 + mov w2, 2048 add x29, sp, 0 add x1, x1, 3456 bl ftl_memcpy @@ -1028,75 +996,72 @@ FlashReadIdbData: .global FlashLoadPhyInfoInRam .type FlashLoadPhyInfoInRam, %function FlashLoadPhyInfoInRam: - stp x29, x30, [sp, -64]! + stp x29, x30, [sp, -48]! + adrp x9, IDByte + add x9, x9, :lo12:IDByte + mov x8, 0 add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] adrp x19, .LANCHOR1 - str x23, [sp,48] - stp x21, x22, [sp,32] - adrp x23, IDByte - add x21, x19, :lo12:.LANCHOR1 - add x21, x21, 504 - mov w20, 0 - add x23, x23, :lo12:IDByte -.L155: - ldrb w2, [x21] - add x0, x21, 1 - mov x1, x23 + add x7, x19, :lo12:.LANCHOR1 + str x21, [sp, 32] + add x7, x7, 505 +.L166: + ldrb w2, [x7, -1] + mov w10, w8 + lsl x21, x8, 5 + mov x1, x9 + mov x0, x7 bl FlashMemCmp8 - mov w22, w0 - cbnz w0, .L152 - add x0, x19, :lo12:.LANCHOR1 - ubfiz x20, x20, 5, 32 - add x1, x0, 504 - adds x20, x1, x20 - beq .L158 - ldrb w3, [x20,22] - mov x2, 0 - mov x1, x0 - b .L157 -.L152: - add w20, w20, 1 - add x21, x21, 32 - cmp w20, 86 - bne .L155 - b .L158 -.L157: - add x4, x1, x2, lsl 5 - mov w0, w2 - ldrb w4, [x4,3256] + mov w20, w0 + cbnz w0, .L164 + add x2, x19, :lo12:.LANCHOR1 + ubfiz x10, x10, 5, 32 + add x0, x2, 504 + add x1, x2, 3256 + add x21, x0, x21 + add x0, x0, x10 + ldrb w3, [x0, 22] + mov x0, 0 +.L165: + lsl x4, x0, 5 + mov w2, w0 + ldrb w4, [x4, x1] cmp w4, w3 - beq .L156 - add x2, x2, 1 - cmp x2, 4 - bne .L157 - mov w0, w2 -.L156: + beq .L168 + add x0, x0, 1 + cmp x0, 4 + bne .L165 + mov w2, w0 +.L168: add x19, x19, :lo12:.LANCHOR1 - ubfiz x1, x0, 5, 32 - adrp x0, .LANCHOR0 - add x2, x19, 3256 - add x0, x0, :lo12:.LANCHOR0 - add x1, x2, x1 - add x0, x0, 112 - mov w2, 32 + ubfiz x1, x2, 5, 32 + add x0, x19, 3256 add x19, x19, 472 - bl ftl_memcpy - mov x0, x19 - mov x1, x20 + add x1, x0, x1 + adrp x0, .LANCHOR0 + add x0, x0, :lo12:.LANCHOR0 mov w2, 32 + add x0, x0, 112 bl ftl_memcpy - ldrh w0, [x19,10] + mov w2, 32 + mov x1, x21 + mov x0, x19 + bl ftl_memcpy + ldrh w0, [x19, 10] bl FlashBlockAlignInit - b .L153 -.L158: - mov w22, -1 -.L153: - mov w0, w22 - ldr x23, [sp,48] - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x29, x30, [sp], 64 + b .L163 +.L164: + add x8, x8, 1 + add x7, x7, 32 + cmp x8, 86 + bne .L166 + mov w20, -1 +.L163: + mov w0, w20 + ldr x21, [sp, 32] + ldp x19, x20, [sp, 16] + ldp x29, x30, [sp], 48 ret .size FlashLoadPhyInfoInRam, .-FlashLoadPhyInfoInRam .align 2 @@ -1105,77 +1070,78 @@ FlashLoadPhyInfoInRam: ftl_flash_suspend: adrp x0, .LANCHOR2 add x0, x0, :lo12:.LANCHOR2 - ldr x1, [x0,1152] + ldr x1, [x0, 1152] ldr w2, [x1] - str w2, [x0,1160] - ldr w2, [x1,4] - str w2, [x0,1164] - ldr w2, [x1,8] - str w2, [x0,1168] - ldr w2, [x1,12] - str w2, [x0,1172] - ldr w2, [x1,304] - str w2, [x0,1176] - ldr w2, [x1,308] - str w2, [x0,1180] - ldr w2, [x1,336] - ldr w1, [x1,344] - str w2, [x0,1184] - str w1, [x0,1188] + str w2, [x0, 1160] + ldr w2, [x1, 4] + str w2, [x0, 1164] + ldr w2, [x1, 8] + str w2, [x0, 1168] + ldr w2, [x1, 12] + str w2, [x0, 1172] + ldr w2, [x1, 304] + str w2, [x0, 1176] + ldr w2, [x1, 308] + str w2, [x0, 1180] + ldr w2, [x1, 336] + ldr w1, [x1, 344] + str w2, [x0, 1184] + str w1, [x0, 1188] ret .size ftl_flash_suspend, .-ftl_flash_suspend .align 2 .global LogAddr2PhyAddr .type LogAddr2PhyAddr, %function LogAddr2PhyAddr: - adrp x6, .LANCHOR2 - uxtb w4, w4 - add x7, x6, :lo12:.LANCHOR2 - mov x9, x6 - add x7, x7, 1192 - ldrh w5, [x7,12] - ldrh w7, [x7,14] - mul w5, w5, w7 - adrp x7, .LANCHOR0 - add x8, x7, :lo12:.LANCHOR0 - uxth w5, w5 - ldrh w10, [x8,92] - ldrb w8, [x8,88] - ubfiz w6, w10, 1, 15 - cmp w8, 1 - ldr w8, [x0,4] - csel w10, w6, w10, eq + adrp x7, .LANCHOR2 + add x6, x7, :lo12:.LANCHOR2 + mov x9, x7 + ldr w7, [x0, 4] + and w4, w4, 255 + ldrh w10, [x6, 1204] + ldrh w5, [x6, 1206] + adrp x6, .LANCHOR0 + ubfx x12, x7, 10, 16 + and w7, w7, 1023 + mul w5, w5, w10 + and w10, w5, 65535 + add x5, x6, :lo12:.LANCHOR0 + ldrh w8, [x5, 92] + ldrb w11, [x5, 88] + ubfiz w5, w8, 1, 15 + cmp w11, 1 + csel w8, w5, w8, eq cmp w1, 1 - ubfx x6, x8, 10, 16 - and w8, w8, 1023 - udiv w11, w6, w5 - msub w5, w11, w5, w6 - uxth w6, w5 - bne .L165 + udiv w5, w12, w10 + and w11, w5, 65535 + msub w5, w5, w10, w12 + and w5, w5, 65535 + bne .L175 add x1, x9, :lo12:.LANCHOR2 - ldrb w1, [x1,1220] - cbnz w1, .L165 - add x1, x7, :lo12:.LANCHOR0 + ldrb w1, [x1, 1220] + cbnz w1, .L175 + add x1, x6, :lo12:.LANCHOR0 add x1, x1, 144 - ldrh w8, [x1,w8,sxtw 1] -.L165: - add x7, x7, :lo12:.LANCHOR0 + ldrh w7, [x1, w7, sxtw 1] +.L175: + add x6, x6, :lo12:.LANCHOR0 + uxtw x1, w11 + add x6, x6, 3228 cmp w4, 1 - add x7, x7, 3228 - mov w1, 0 - ldr w5, [x7,w11,uxtw 2] - madd w5, w6, w10, w5 - add w5, w5, w8 + ldr w1, [x6, x1, lsl 2] + madd w5, w5, w8, w1 + add w5, w5, w7 str w5, [x2] str w11, [x3] - bls .L166 - ldr w1, [x0,4] - ldr w0, [x0,60] + bls .L177 + ldr w1, [x0, 4] + ldr w0, [x0, 60] add w1, w1, 1024 cmp w1, w0 - cset w1, eq -.L166: - mov w0, w1 + cset w0, eq + ret +.L177: + mov w0, 0 ret .size LogAddr2PhyAddr, .-LogAddr2PhyAddr .align 2 @@ -1183,61 +1149,61 @@ LogAddr2PhyAddr: .type FlashReadStatusEN, %function FlashReadStatusEN: stp x29, x30, [sp, -32]! - adrp x3, .LANCHOR0 ubfiz x0, x0, 4, 8 - add x4, x3, :lo12:.LANCHOR0 + adrp x4, .LANCHOR0 + add x3, x4, :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,104] - ldrb w19, [x6,8] - ldrb w0, [x0,8] + stp x19, x20, [sp, 16] + add x5, x3, x0 + ldr x20, [x3, x0] + ldr x0, [x3, 104] + ldrb w19, [x5, 8] + ldrb w0, [x0, 8] cmp w0, 2 - bne .L169 - add x4, x4, 112 - cbnz w2, .L170 - ldrb w2, [x4,13] - b .L178 -.L170: - ldrb w2, [x4,14] -.L178: + bne .L179 + and w2, w2, 255 + add x3, x3, 112 + cbnz w2, .L180 + ldrb w2, [x3, 13] +.L190: add x0, x19, 8 - add x3, x3, :lo12:.LANCHOR0 + add x4, x4, :lo12:.LANCHOR0 add x0, x20, x0, lsl 8 - str w2, [x0,8] - mov w2, 0 - ldrb w4, [x3,127] - cbz w4, .L173 + str w2, [x0, 8] + ldrb w4, [x4, 127] + cbz w4, .L184 add x3, x19, 8 - lsl x3, x3, 8 -.L177: + mov w2, 0 + add x3, x20, x3, lsl 8 +.L183: cmp w2, w4 - bcs .L173 - add x5, x20, x3 - lsl w0, w2, 3 - lsr w0, w1, w0 - add w2, w2, 1 - and w0, w0, 255 - str w0, [x5,4] - b .L177 -.L169: - add x0, x19, 8 - mov w1, 112 - add x0, x20, x0, lsl 8 - str w1, [x0,8] -.L173: + bcc .L185 +.L184: add x19, x19, 8 mov x0, 400 lsl x19, x19, 8 bl __const_udelay - ldr w0, [x20,x19] - ldp x19, x20, [sp,16] + ldr w0, [x20, x19] + ldp x19, x20, [sp, 16] + and w0, w0, 255 ldp x29, x30, [sp], 32 - uxtb w0, w0 ret +.L180: + ldrb w2, [x3, 14] + b .L190 +.L185: + lsl w0, w2, 3 + add w2, w2, 1 + lsr w0, w1, w0 + and w0, w0, 255 + str w0, [x3, 4] + b .L183 +.L179: + add x0, x19, 8 + mov w1, 112 + add x0, x20, x0, lsl 8 + str w1, [x0, 8] + b .L184 .size FlashReadStatusEN, .-FlashReadStatusEN .align 2 .global FlashWaitReadyEN @@ -1245,27 +1211,27 @@ FlashReadStatusEN: FlashWaitReadyEN: stp x29, x30, [sp, -48]! add x29, sp, 0 - stp x19, x20, [sp,16] - str x21, [sp,32] - uxtb w19, w0 + stp x19, x20, [sp, 16] + and w19, w0, 255 + str x21, [sp, 32] mov w20, w1 - uxtb w21, w2 -.L180: - mov w0, w19 + and w21, w2, 255 +.L192: mov w1, w20 mov w2, w21 + mov w0, w19 bl FlashReadStatusEN + mov w1, w0 cmp w0, 255 - mov w3, w0 - beq .L180 - tbnz x3, 6, .L181 - mov x0, 1 + beq .L192 + tbnz x1, 6, .L191 mov x1, 3 + mov x0, 1 bl usleep_range - b .L180 -.L181: - ldp x19, x20, [sp,16] - ldr x21, [sp,32] + b .L192 +.L191: + ldp x19, x20, [sp, 16] + ldr x21, [sp, 32] ldp x29, x30, [sp], 48 ret .size FlashWaitReadyEN, .-FlashWaitReadyEN @@ -1274,52 +1240,52 @@ FlashWaitReadyEN: .type ftl_read_flash_info, %function ftl_read_flash_info: stp x29, x30, [sp, -32]! - mov w1, 0 mov w2, 11 + mov w1, 0 add x29, sp, 0 - str x19, [sp,16] + str x19, [sp, 16] mov x19, x0 bl ftl_memset - adrp x1, .LANCHOR0 - mov w5, 1 - add x1, x1, :lo12:.LANCHOR0 - ldr x0, [x1,104] - ldrb w2, [x0,9] - ldr w0, [x1,92] - mul w0, w0, w2 - strh w0, [x19,4] - adrp x0, .LANCHOR2 - add x0, x0, :lo12:.LANCHOR2 - ldrb w2, [x0,1221] - ldr w0, [x0,1224] - str w0, [x19] - strb w2, [x19,7] - ldrb w4, [x1,3216] - ldr x0, [x1,104] - ldrb w0, [x0,9] - strb w0, [x19,6] - mov w0, 32 - strb w0, [x19,8] - ldr x0, [x1,104] - add x1, x1, 3220 - ldrb w0, [x0,7] - strb w0, [x19,9] - mov x0, 0 - strb wzr, [x19,10] -.L186: - cmp w4, w0, uxtb - bls .L188 - ldrb w2, [x0,x1] - add x0, x0, 1 - ldrb w3, [x19,10] - lsl w2, w5, w2 - orr w2, w2, w3 - strb w2, [x19,10] - b .L186 -.L188: - ldr x19, [sp,16] + adrp x0, .LANCHOR0 + add x0, x0, :lo12:.LANCHOR0 + mov w4, 1 + ldr x1, [x0, 104] + ldrb w2, [x1, 9] + ldr w1, [x0, 92] + mul w1, w1, w2 + strh w1, [x19, 4] + adrp x1, .LANCHOR2 + add x1, x1, :lo12:.LANCHOR2 + ldrb w2, [x1, 1221] + ldr w1, [x1, 1224] + strb w2, [x19, 7] + mov x2, 0 + str w1, [x19] + ldr x1, [x0, 104] + ldrb w3, [x0, 3216] + ldrb w1, [x1, 9] + strb w1, [x19, 6] + mov w1, 32 + strb w1, [x19, 8] + ldr x1, [x0, 104] + add x0, x0, 3220 + ldrb w1, [x1, 7] + strb w1, [x19, 9] + strb wzr, [x19, 10] +.L199: + cmp w3, w2, uxtb + bhi .L200 + ldr x19, [sp, 16] ldp x29, x30, [sp], 32 ret +.L200: + ldrb w1, [x2, x0] + add x2, x2, 1 + ldrb w5, [x19, 10] + lsl w1, w4, w1 + orr w1, w1, w5 + strb w1, [x19, 10] + b .L199 .size ftl_read_flash_info, .-ftl_read_flash_info .align 2 .global FlashScheduleEnSet @@ -1327,8 +1293,8 @@ ftl_read_flash_info: FlashScheduleEnSet: adrp x1, .LANCHOR2 add x1, x1, :lo12:.LANCHOR2 - ldr w2, [x1,1228] - str w0, [x1,1228] + ldr w2, [x1, 1228] + str w0, [x1, 1228] mov w0, w2 ret .size FlashScheduleEnSet, .-FlashScheduleEnSet @@ -1337,8 +1303,8 @@ FlashScheduleEnSet: .type FlashGetPageSize, %function FlashGetPageSize: adrp x0, .LANCHOR0+104 - ldr x0, [x0,#:lo12:.LANCHOR0+104] - ldrb w0, [x0,9] + ldr x0, [x0, #:lo12:.LANCHOR0+104] + ldrb w0, [x0, 9] ret .size FlashGetPageSize, .-FlashGetPageSize .align 2 @@ -1351,13 +1317,12 @@ NandcReadDontCaseBusyEn: .global NandcGetChipIf .type NandcGetChipIf, %function NandcGetChipIf: - adrp x1, .LANCHOR0 ubfiz x0, x0, 4, 8 + adrp x1, .LANCHOR0 add x1, x1, :lo12:.LANCHOR0 - add x1, x1, 24 add x2, x1, x0 - ldr x0, [x1,x0] - ldrb w2, [x2,8] + ldr x0, [x1, x0] + ldrb w2, [x2, 8] add x2, x2, 8 add x0, x0, x2, lsl 8 ret @@ -1367,12 +1332,12 @@ NandcGetChipIf: .type NandcSetDdrPara, %function NandcSetDdrPara: adrp x1, .LANCHOR2+1152 - uxtb w0, w0 + and w0, w0, 255 lsl w2, w0, 8 + ldr x1, [x1, #:lo12:.LANCHOR2+1152] orr w0, w2, w0, lsl 16 - ldr x1, [x1,#:lo12:.LANCHOR2+1152] orr w0, w0, 1 - str w0, [x1,304] + str w0, [x1, 304] ret .size NandcSetDdrPara, .-NandcSetDdrPara .align 2 @@ -1380,11 +1345,11 @@ NandcSetDdrPara: .type NandcSetDdrDiv, %function NandcSetDdrDiv: adrp x1, .LANCHOR2+1152 - uxtb w0, w0 - ldr x2, [x1,#:lo12:.LANCHOR2+1152] - mov w1, 16640 - orr w0, w0, w1 - str w0, [x2,344] + and w0, w0, 255 + mov w2, 16640 + orr w0, w0, w2 + ldr x1, [x1, #:lo12:.LANCHOR2+1152] + str w0, [x1, 344] ret .size NandcSetDdrDiv, .-NandcSetDdrDiv .align 2 @@ -1392,8 +1357,8 @@ NandcSetDdrDiv: .type NandcSetDdrMode, %function NandcSetDdrMode: adrp x1, .LANCHOR2+1152 - cmp w0, wzr - ldr x2, [x1,#:lo12:.LANCHOR2+1152] + cmp w0, 0 + ldr x2, [x1, #:lo12:.LANCHOR2+1152] ldr w1, [x2] and w3, w1, -8193 orr w1, w1, 253952 @@ -1406,47 +1371,45 @@ NandcSetDdrMode: .type NandcSetMode, %function NandcSetMode: adrp x1, .LANCHOR2+1152 - uxtb w0, w0 + and w0, w0, 255 tst w0, 6 - ldr x2, [x1,#:lo12:.LANCHOR2+1152] + ldr x2, [x1, #:lo12:.LANCHOR2+1152] ldr w1, [x2] - beq .L199 - and w0, w0, 4 + beq .L212 orr w1, w1, 24576 - cmp w0, wzr - mov w0, 8322 + tst x0, 4 and w1, w1, -32769 - str w0, [x2,344] - mov w0, 4099 + mov w0, 8322 orr w1, w1, 196608 - movk w0, 0x10, lsl 16 - str w0, [x2,304] + str w0, [x2, 344] + mov w0, 4099 orr w3, w1, 32768 - mov w0, 38 - str w0, [x2,308] + movk w0, 0x10, lsl 16 + str w0, [x2, 304] csel w1, w3, w1, ne + mov w0, 38 + str w0, [x2, 308] mov w0, 39 - str w0, [x2,308] - b .L201 -.L199: - and w1, w1, -8193 -.L201: - str w1, [x2] + str w0, [x2, 308] +.L214: mov w0, 0 + str w1, [x2] ret +.L212: + and w1, w1, -8193 + b .L214 .size NandcSetMode, .-NandcSetMode .align 2 .global NandcFlashCs .type NandcFlashCs, %function NandcFlashCs: - adrp x1, .LANCHOR0 ubfiz x0, x0, 4, 8 + adrp x1, .LANCHOR0 add x1, x1, :lo12:.LANCHOR0 - add x1, x1, 24 add x3, x1, x0 - ldr x2, [x1,x0] + ldr x2, [x1, x0] mov w1, 1 - ldrb w3, [x3,8] + ldrb w3, [x3, 8] ldr w0, [x2] lsl w1, w1, w3 bfi w0, w1, 0, 8 @@ -1457,11 +1420,10 @@ NandcFlashCs: .global NandcFlashDeCs .type NandcFlashDeCs, %function NandcFlashDeCs: - adrp x1, .LANCHOR0 ubfiz x0, x0, 4, 8 + adrp x1, .LANCHOR0 add x1, x1, :lo12:.LANCHOR0 - add x1, x1, 24 - ldr x1, [x1,x0] + ldr x1, [x1, x0] ldr w0, [x1] and w0, w0, -256 and w0, w0, -131073 @@ -1473,179 +1435,180 @@ NandcFlashDeCs: .type HynixSetRRPara, %function HynixSetRRPara: stp x29, x30, [sp, -96]! - adrp x4, .LANCHOR0 add x29, sp, 0 - stp x23, x24, [sp,48] - uxtb x23, w0 - add x0, x4, :lo12:.LANCHOR0 - stp x19, x20, [sp,16] - stp x25, x26, [sp,64] - str x27, [sp,80] - adrp x24, .LANCHOR2 - stp x21, x22, [sp,32] + stp x23, x24, [sp, 48] + and w23, w0, 255 + str x27, [sp, 80] + adrp x0, .LANCHOR0 + and w27, w1, 255 + add x1, x0, :lo12:.LANCHOR0 + stp x19, x20, [sp, 16] mov x20, x2 - mov x26, x23 - ldr x0, [x0,104] - uxtb w27, w1 - uxtb w25, w3 - mov x2, x4 - add x19, x24, :lo12:.LANCHOR2 - ldrb w0, [x0,19] - cmp w0, 6 - bne .L207 - add x19, x19, x23, lsl 6 - lsl w4, w25, 2 - add x19, x19, 1252 - b .L213 -.L207: - cmp w0, 7 - bne .L209 - mov x3, 160 - mov w4, 10 - madd x19, x23, x3, x19 - mul w4, w25, w4 - add x19, x19, 1260 -.L213: - add x19, x19, w4, sxtw - b .L208 -.L209: - cmp w0, 8 - bne .L210 - add x19, x19, 1260 - add w4, w25, w25, lsl 2 - b .L213 -.L210: - lsl x4, x23, 3 - add x4, x4, w25, sxtw - add x19, x19, x4, lsl 3 - add x19, x19, 1252 -.L208: - add x4, x2, :lo12:.LANCHOR0 - lsl x0, x23, 4 - add x4, x4, 24 - uxtb x27, w27 - add x1, x4, x0 - ldr x21, [x4,x0] - mov w0, w26 - ldrb w22, [x1,8] + stp x21, x22, [sp, 32] + mov x2, x0 + stp x25, x26, [sp, 64] + adrp x21, .LANCHOR2 + and w22, w3, 255 + add x19, x21, :lo12:.LANCHOR2 + ldr x1, [x1, 104] + ldrb w1, [x1, 19] + cmp w1, 6 + bne .L220 + ubfiz x0, x23, 6, 8 + add x19, x19, 1232 + add x0, x0, 20 + add x0, x0, w22, uxtw 2 +.L227: + add x19, x19, x0 +.L221: + sxtw x25, w23 + add x0, x2, :lo12:.LANCHOR0 + lsl x1, x25, 4 + and x27, x27, 255 + add x2, x0, x1 + mov x26, 0 + ldr x24, [x0, x1] + mov w0, w23 + ldrb w5, [x2, 8] bl NandcFlashCs - ubfiz x22, x22, 8, 8 + ubfiz x5, x5, 8, 8 + add x24, x24, x5 mov w0, 54 - add x21, x21, x22 - mov x22, 0 - str w0, [x21,2056] -.L211: - cmp x22, x27 - beq .L214 - 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 .L211 -.L214: - add x24, x24, :lo12:.LANCHOR2 + str w0, [x24, 2056] +.L224: + cmp x26, x27 + bne .L225 + add x21, x21, :lo12:.LANCHOR2 mov w0, 22 - add x23, x24, x23 - str w0, [x21,2056] - mov w0, w26 + add x21, x21, x25 + str w0, [x24, 2056] + mov w0, w23 bl NandcFlashDeCs - strb w25, [x23,2088] - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldr x27, [sp,80] + strb w22, [x21, 2088] + 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 +.L220: + cmp w1, 7 + bne .L222 + mov w0, 160 + mov x1, 28 + add x19, x19, 1232 + umaddl x1, w0, w23, x1 + mov w0, 10 + umaddl x0, w22, w0, x1 + b .L227 +.L222: + cmp w1, 8 + bne .L223 + add x0, x19, 1260 + add w19, w22, w22, lsl 2 + add x19, x0, w19, sxtw + b .L221 +.L223: + and x0, x22, 255 + add x0, x0, 2 + add x0, x0, w23, uxtw 3 + add x19, x19, x0, lsl 3 + add x19, x19, 1236 + b .L221 +.L225: + ldrb w0, [x20, x26] + str w0, [x24, 2052] + mov x0, 1000 + bl __const_udelay + ldrsb w0, [x19, x26] + add x26, x26, 1 + str w0, [x24, 2048] + b .L224 .size HynixSetRRPara, .-HynixSetRRPara .align 2 .global FlashSetReadRetryDefault .type FlashSetReadRetryDefault, %function FlashSetReadRetryDefault: adrp x0, .LANCHOR0+104 + ldr x0, [x0, #:lo12:.LANCHOR0+104] + ldrb w0, [x0, 19] + sub w0, w0, #1 + and w0, w0, 255 + cmp w0, 7 + bhi .L235 stp x29, x30, [sp, -48]! add x29, sp, 0 - ldr x0, [x0,#:lo12:.LANCHOR0+104] - stp x19, x20, [sp,16] - stp x21, x22, [sp,32] - mov x19, 0 - ldrb w0, [x0,19] - sub w0, w0, #1 - uxtb w0, w0 - cmp w0, 7 - bhi .L215 + stp x19, x20, [sp, 16] adrp x20, .LANCHOR2 - adrp x21, IDByte add x20, x20, :lo12:.LANCHOR2 - add x21, x21, :lo12:IDByte + stp x21, x22, [sp, 32] + adrp x21, IDByte add x22, x20, 1236 -.L220: + add x21, x21, :lo12:IDByte + mov x19, 0 +.L231: lsl x1, x19, 3 - uxtb w0, w19 - ldrb w1, [x1,x21] + and w0, w19, 255 + ldrb w1, [x1, x21] cmp w1, 173 - bne .L217 - ldrb w1, [x20,1233] - mov x2, x22 + bne .L230 + ldrb w1, [x20, 1233] mov w3, 0 + mov x2, x22 bl HynixSetRRPara -.L217: +.L230: add x19, x19, 1 cmp x19, 4 - bne .L220 -.L215: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] + bne .L231 + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] ldp x29, x30, [sp], 48 ret +.L235: + ret .size FlashSetReadRetryDefault, .-FlashSetReadRetryDefault .align 2 .global FlashWaitCmdDone .type FlashWaitCmdDone, %function FlashWaitCmdDone: - stp x29, x30, [sp, -48]! - uxtb x1, w0 - mov x2, 24 + and x5, x0, 255 + mov x0, 24 + stp x29, x30, [sp, -32]! + adrp x4, .LANCHOR0 + add x4, x4, :lo12:.LANCHOR0 + mul x0, x5, x0 add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x20, .LANCHOR0 - stp x21, x22, [sp,32] - add x20, x20, :lo12:.LANCHOR0 - mov x22, x1 - mul x1, x1, x2 - add x0, x20, 3260 - add x19, x0, x1 - ldrb w21, [x0,x1] - ldr x0, [x19,8] - cbz x0, .L224 - mov w0, w21 - add x20, x20, 3228 + add x1, x4, 3260 + stp x19, x20, [sp, 16] + add x19, x1, x0 + ldr x2, [x19, 8] + cbz x2, .L240 + ldrb w20, [x1, x0] + mov w0, w20 bl NandcFlashCs - ldr w0, [x20,w22,sxtw 2] - ldr w1, [x19,4] - cmp w0, wzr - mov w0, w21 + add x4, x4, 3228 + ldr w1, [x19, 4] + ldr w0, [x4, x5, lsl 2] + cmp w0, 0 + mov w0, w20 cset w2, ne bl FlashWaitReadyEN - mov w20, w0 - mov w0, w21 + mov w2, w0 + mov w0, w20 bl NandcFlashDeCs - ldr x1, [x19,8] - sbfx x0, x20, 0, 1 + sbfx x0, x2, 0, 1 + ldr x1, [x19, 8] str w0, [x1] - str xzr, [x19,8] - ldr x1, [x19,16] - cbz x1, .L224 + str xzr, [x19, 8] + ldr x1, [x19, 16] + cbz x1, .L240 str w0, [x1] - str xzr, [x19,16] -.L224: + str xzr, [x19, 16] +.L240: mov w0, 0 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x29, x30, [sp], 48 + ldp x19, x20, [sp, 16] + ldp x29, x30, [sp], 32 ret .size FlashWaitCmdDone, .-FlashWaitCmdDone .align 2 @@ -1665,97 +1628,92 @@ NandcDelayns: .type NandcWaitFlashReadyNoDelay, %function NandcWaitFlashReadyNoDelay: stp x29, x30, [sp, -48]! - adrp x1, .LANCHOR0 ubfiz x0, x0, 4, 8 + adrp x1, .LANCHOR0 add x1, x1, :lo12:.LANCHOR0 add x29, sp, 0 - add x1, x1, 24 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] mov w19, 34464 - ldr x20, [x1,x0] movk w19, 0x1, lsl 16 -.L232: + ldr x20, [x1, x0] +.L250: ldr w0, [x20] - str w0, [x29,40] - ldr w0, [x29,40] - tbnz x0, 9, .L233 + str w0, [x29, 40] + ldr w0, [x29, 40] + tbnz x0, 9, .L251 mov x0, 50 bl __const_udelay subs w19, w19, #1 - bne .L232 + bne .L250 mov w0, -1 - b .L231 -.L233: - mov w0, 0 -.L231: - ldp x19, x20, [sp,16] +.L248: + ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 48 ret +.L251: + mov w0, 0 + b .L248 .size NandcWaitFlashReadyNoDelay, .-NandcWaitFlashReadyNoDelay .align 2 .global NandcWaitFlashReady .type NandcWaitFlashReady, %function NandcWaitFlashReady: stp x29, x30, [sp, -48]! - adrp x1, .LANCHOR0 ubfiz x0, x0, 4, 8 + adrp x1, .LANCHOR0 add x1, x1, :lo12:.LANCHOR0 add x29, sp, 0 - add x1, x1, 24 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] mov w19, 34464 - ldr x20, [x1,x0] movk w19, 0x1, lsl 16 + ldr x20, [x1, x0] mov x0, 650 bl __const_udelay -.L237: +.L256: ldr w0, [x20] - str w0, [x29,40] - ldr w0, [x29,40] - tbnz x0, 9, .L238 - mov x0, 1 + str w0, [x29, 40] + ldr w0, [x29, 40] + tbnz x0, 9, .L257 mov x1, 2 + mov x0, 1 bl usleep_range subs w19, w19, #1 - bne .L237 + bne .L256 mov w0, -1 - b .L236 -.L238: - mov w0, 0 -.L236: - ldp x19, x20, [sp,16] +.L254: + ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 48 ret +.L257: + mov w0, 0 + b .L254 .size NandcWaitFlashReady, .-NandcWaitFlashReady .align 2 .global FlashReset .type FlashReset, %function FlashReset: - stp x29, x30, [sp, -48]! - adrp x1, .LANCHOR0 + stp x29, x30, [sp, -32]! add x29, sp, 0 - stp x19, x20, [sp,16] - add x1, x1, :lo12:.LANCHOR0 - uxtb w20, w0 - add x1, x1, 24 - sbfiz x0, x20, 4, 32 - add x2, x1, x0 - str x21, [sp,32] - ldr x21, [x1,x0] - mov w0, w20 - ldrb w19, [x2,8] + str x19, [sp, 16] + and w19, w0, 255 + sbfiz x1, x19, 4, 32 + adrp x0, .LANCHOR0 + add x0, x0, :lo12:.LANCHOR0 + add x2, x0, x1 + ldr x5, [x0, x1] + mov w0, w19 + ldrb w4, [x2, 8] bl NandcFlashCs - add x19, x19, 8 + add x4, x4, 8 + add x4, x5, x4, lsl 8 mov w0, 255 - add x19, x21, x19, lsl 8 - str w0, [x19,8] - mov w0, w20 + str w0, [x4, 8] + mov w0, w19 bl NandcWaitFlashReady - mov w0, w20 + mov w0, w19 bl NandcFlashDeCs - ldr x21, [sp,32] - ldp x19, x20, [sp,16] - ldp x29, x30, [sp], 48 + ldr x19, [sp, 16] + ldp x29, x30, [sp], 32 ret .size FlashReset, .-FlashReset .align 2 @@ -1764,61 +1722,60 @@ FlashReset: flash_enter_slc_mode: stp x29, x30, [sp, -64]! add x29, sp, 0 - stp x21, x22, [sp,32] + stp x21, x22, [sp, 32] + and w22, w0, 255 adrp x21, .LANCHOR2 - uxtb w22, w0 add x0, x21, :lo12:.LANCHOR2 - str x23, [sp,48] - stp x19, x20, [sp,16] - ldrb w0, [x0,1220] - cbz w0, .L241 + stp x19, x20, [sp, 16] + str x23, [sp, 48] + ldrb w0, [x0, 1220] + cbz w0, .L262 mov w0, w22 bl NandcFlashCs - adrp x1, .LANCHOR0 sxtw x0, w22 - add x1, x1, :lo12:.LANCHOR0 + adrp x1, .LANCHOR0 lsl x2, x0, 4 - add x1, x1, 24 - lsl x0, x0, 3 + add x1, x1, :lo12:.LANCHOR0 add x3, x1, x2 - ldr x23, [x1,x2] + lsl x0, x0, 3 + ldr x23, [x1, x2] adrp x1, IDByte add x1, x1, :lo12:IDByte - ldrb w19, [x3,8] - ldrb w0, [x1,x0] + ldrb w19, [x3, 8] + ldrb w0, [x1, x0] cmp w0, 44 - bne .L243 + bne .L264 ubfiz x20, x19, 8, 8 mov w0, 239 add x20, x23, x20 - str w0, [x20,2056] + str w0, [x20, 2056] mov w0, 145 - str w0, [x20,2052] + str w0, [x20, 2052] mov x0, 250 bl __const_udelay - str wzr, [x20,2048] + str wzr, [x20, 2048] mov w0, 1 - str w0, [x20,2048] - str wzr, [x20,2048] + str w0, [x20, 2048] + str wzr, [x20, 2048] mov x0, 500 - str wzr, [x20,2048] + str wzr, [x20, 2048] bl __const_udelay -.L243: +.L264: add x19, x19, 8 mov w0, w22 - add x21, x21, :lo12:.LANCHOR2 add x19, x23, x19, lsl 8 bl NandcWaitFlashReadyNoDelay mov w0, 218 - str w0, [x19,8] + add x21, x21, :lo12:.LANCHOR2 + str w0, [x19, 8] mov w0, w22 bl NandcWaitFlashReady mov w0, 2 - strb w0, [x21,2092] -.L241: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldr x23, [sp,48] + strb w0, [x21, 2092] +.L262: + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldr x23, [sp, 48] ldp x29, x30, [sp], 64 ret .size flash_enter_slc_mode, .-flash_enter_slc_mode @@ -1828,61 +1785,60 @@ flash_enter_slc_mode: flash_exit_slc_mode: stp x29, x30, [sp, -64]! add x29, sp, 0 - stp x21, x22, [sp,32] + stp x21, x22, [sp, 32] + and w22, w0, 255 adrp x21, .LANCHOR2 - uxtb w22, w0 add x0, x21, :lo12:.LANCHOR2 - str x23, [sp,48] - stp x19, x20, [sp,16] - ldrb w0, [x0,1220] - cbz w0, .L247 + stp x19, x20, [sp, 16] + str x23, [sp, 48] + ldrb w0, [x0, 1220] + cbz w0, .L269 mov w0, w22 bl NandcFlashCs - adrp x1, .LANCHOR0 sxtw x0, w22 - add x1, x1, :lo12:.LANCHOR0 + adrp x1, .LANCHOR0 lsl x2, x0, 4 - add x1, x1, 24 - lsl x0, x0, 3 + add x1, x1, :lo12:.LANCHOR0 add x3, x1, x2 - ldr x23, [x1,x2] + lsl x0, x0, 3 + ldr x23, [x1, x2] adrp x1, IDByte add x1, x1, :lo12:IDByte - ldrb w19, [x3,8] - ldrb w0, [x1,x0] + ldrb w19, [x3, 8] + ldrb w0, [x1, x0] cmp w0, 44 - bne .L249 + bne .L271 ubfiz x20, x19, 8, 8 mov w0, 239 add x20, x23, x20 - str w0, [x20,2056] + str w0, [x20, 2056] mov w0, 145 - str w0, [x20,2052] + str w0, [x20, 2052] mov x0, 250 bl __const_udelay mov w0, 2 - str w0, [x20,2048] + str w0, [x20, 2048] mov w0, 1 - str w0, [x20,2048] - str wzr, [x20,2048] + str w0, [x20, 2048] + str wzr, [x20, 2048] mov x0, 500 - str wzr, [x20,2048] + str wzr, [x20, 2048] bl __const_udelay -.L249: +.L271: add x19, x19, 8 mov w0, w22 - add x21, x21, :lo12:.LANCHOR2 add x19, x23, x19, lsl 8 bl NandcWaitFlashReadyNoDelay + add x21, x21, :lo12:.LANCHOR2 mov w0, 223 - str w0, [x19,8] + str w0, [x19, 8] mov w0, w22 bl NandcWaitFlashReady - strb wzr, [x21,2092] -.L247: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldr x23, [sp,48] + strb wzr, [x21, 2092] +.L269: + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldr x23, [sp, 48] ldp x29, x30, [sp], 64 ret .size flash_exit_slc_mode, .-flash_exit_slc_mode @@ -1892,15 +1848,16 @@ flash_exit_slc_mode: FlashEraseBlock: stp x29, x30, [sp, -48]! add x29, sp, 0 - stp x19, x20, [sp,16] - uxtb w19, w0 + stp x19, x20, [sp, 16] + and w19, w0, 255 mov w20, w1 + str x21, [sp, 32] mov w0, w19 - str x2, [x29,40] + mov w21, w2 bl NandcWaitFlashReady mov w0, w19 bl NandcFlashCs - ldr x2, [x29,40] + mov w2, w21 mov w1, w20 mov w0, w19 bl FlashEraseCmd @@ -1909,11 +1866,12 @@ FlashEraseBlock: mov w1, w20 mov w0, w19 bl FlashReadStatus - mov w20, w0 + mov w2, w0 mov w0, w19 bl NandcFlashDeCs - and w0, w20, 1 - ldp x19, x20, [sp,16] + and w0, w2, 1 + ldp x19, x20, [sp, 16] + ldr x21, [sp, 32] ldp x29, x30, [sp], 48 ret .size FlashEraseBlock, .-FlashEraseBlock @@ -1921,170 +1879,166 @@ FlashEraseBlock: .global FlashSetInterfaceMode .type FlashSetInterfaceMode, %function FlashSetInterfaceMode: - adrp x1, .LANCHOR2+2093 - adrp x3, .LANCHOR0 stp x29, x30, [sp, -16]! - add x3, x3, :lo12:.LANCHOR0 - adrp x7, IDByte + adrp x1, .LANCHOR2+2093 + adrp x2, .LANCHOR0 + add x2, x2, :lo12:.LANCHOR0 add x29, sp, 0 - ldrb w1, [x1,#:lo12:.LANCHOR2+2093] - add x3, x3, 24 - mov x6, 0 + ldrb w1, [x1, #:lo12:.LANCHOR2+2093] + adrp x7, IDByte + add x2, x2, 8 add x7, x7, :lo12:IDByte - and w11, w1, 1 - and w1, w1, 4 + and w11, w1, 4 + and w6, w1, 1 + mov x5, 0 + mov w12, 69 mov w8, 239 mov w9, 128 - uxtb w5, w1 mov w10, 1 - mov w12, 35 - mov w13, 32 - mov w14, 5 -.L265: - ldrb w4, [x6,x7] - ldr x1, [x3] - cmp w4, 152 - ldrb w2, [x3,8] - beq .L255 - cmp w4, 69 - beq .L255 - cmp w4, 173 - beq .L255 - cmp w4, 44 - bne .L256 -.L255: + mov w13, 35 + mov w14, 32 + mov w15, 5 + mov w16, 44 +.L288: + ldrb w3, [x5, x7] + ldrb w4, [x2] + cmp w3, 152 + ccmp w3, w12, 4, ne + beq .L279 + cmp w3, 173 + ccmp w3, w16, 4, ne + bne .L280 +.L279: cmp w0, 1 - bne .L258 - cbz w11, .L256 - ubfiz x2, x2, 8, 8 - cmp w4, 173 - add x1, x1, x2 - str w8, [x1,2056] - bne .L259 - str w0, [x1,2052] - b .L276 -.L259: - cmp w4, 44 - bne .L261 - str w0, [x1,2052] - str w14, [x1,2048] - b .L263 -.L261: - str w9, [x1,2052] - str w0, [x1,2048] - b .L263 -.L258: - cbz w5, .L256 - ubfiz x2, x2, 8, 8 - cmp w4, 173 - add x1, x1, x2 - str w8, [x1,2056] - bne .L262 - str w10, [x1,2052] - str w13, [x1,2048] - b .L263 -.L262: - cmp w4, 44 - bne .L264 - str w10, [x1,2052] - str w12, [x1,2048] - b .L263 -.L264: - str w9, [x1,2052] -.L276: - str wzr, [x1,2048] -.L263: - str wzr, [x1,2048] - str wzr, [x1,2048] - str wzr, [x1,2048] -.L256: - add x6, x6, 8 - add x3, x3, 16 - cmp x6, 32 - bne .L265 + ldr x1, [x2, -8] + bne .L281 + cbz w6, .L280 + ubfiz x4, x4, 8, 8 + cmp w3, 173 + add x1, x1, x4 + str w8, [x1, 2056] + bne .L282 + str w0, [x1, 2052] +.L300: + str wzr, [x1, 2048] + b .L286 +.L282: + cmp w3, 44 + bne .L284 + str w0, [x1, 2052] + str w15, [x1, 2048] +.L286: + str wzr, [x1, 2048] + str wzr, [x1, 2048] + str wzr, [x1, 2048] +.L280: + add x5, x5, 8 + add x2, x2, 16 + cmp x5, 32 + bne .L288 mov w0, 0 bl NandcWaitFlashReady mov w0, 0 ldp x29, x30, [sp], 16 ret +.L284: + str w9, [x1, 2052] + str w0, [x1, 2048] + b .L286 +.L281: + cbz w11, .L280 + ubfiz x4, x4, 8, 8 + cmp w3, 173 + add x1, x1, x4 + str w8, [x1, 2056] + bne .L285 + str w10, [x1, 2052] + str w14, [x1, 2048] + b .L286 +.L285: + cmp w3, 44 + bne .L287 + str w10, [x1, 2052] + str w13, [x1, 2048] + b .L286 +.L287: + str w9, [x1, 2052] + b .L300 .size FlashSetInterfaceMode, .-FlashSetInterfaceMode .align 2 .global FlashReadSpare .type FlashReadSpare, %function FlashReadSpare: - adrp x3, .LANCHOR1+481 - adrp x5, .LANCHOR0 - stp x29, x30, [sp, -48]! - uxtb w0, w0 - add x5, x5, :lo12:.LANCHOR0 - add x5, x5, 24 - sbfiz x6, x0, 4, 32 + stp x29, x30, [sp, -32]! + and w0, w0, 255 + sbfiz x5, x0, 4, 32 + adrp x4, .LANCHOR0 add x29, sp, 0 - ldrb w4, [x3,#:lo12:.LANCHOR1+481] - add x3, x5, x6 - str x19, [sp,16] - lsl w4, w4, 9 - str x2, [x29,40] - ldrb w3, [x3,8] - ldr x19, [x5,x6] - add x19, x19, x3, lsl 8 - and w3, w1, 255 - str wzr, [x19,2056] - str w4, [x19,2052] - lsr w4, w4, 8 - str w4, [x19,2052] - str w3, [x19,2052] - lsr w3, w1, 8 - str w3, [x19,2052] + stp x19, x20, [sp, 16] + mov x20, x2 + adrp x2, .LANCHOR1+481 + add x4, x4, :lo12:.LANCHOR0 + ldrb w3, [x2, #:lo12:.LANCHOR1+481] + add x2, x4, x5 + ldrb w19, [x2, 8] + lsl w3, w3, 9 + ldr x2, [x4, x5] + add x19, x2, x19, lsl 8 + and w2, w1, 255 + str wzr, [x19, 2056] + str w3, [x19, 2052] + lsr w3, w3, 8 + str w3, [x19, 2052] + str w2, [x19, 2052] + lsr w2, w1, 8 + str w2, [x19, 2052] lsr w1, w1, 16 - str w1, [x19,2052] + str w1, [x19, 2052] mov w1, 48 - str w1, [x19,2056] + str w1, [x19, 2056] bl NandcWaitFlashReady - ldr x2, [x29,40] - ldr w0, [x19,2048] - strb w0, [x2] - ldr x19, [sp,16] - ldp x29, x30, [sp], 48 + ldr w0, [x19, 2048] + strb w0, [x20] + ldp x19, x20, [sp, 16] + ldp x29, x30, [sp], 32 ret .size FlashReadSpare, .-FlashReadSpare .align 2 .global SandiskProgTestBadBlock .type SandiskProgTestBadBlock, %function SandiskProgTestBadBlock: - adrp x3, .LANCHOR0 - uxtb w0, w0 stp x29, x30, [sp, -32]! - add x3, x3, :lo12:.LANCHOR0 - sbfiz x4, x0, 4, 32 - add x3, x3, 24 + and w0, w0, 255 + sbfiz x3, x0, 4, 32 + adrp x2, .LANCHOR0 + add x2, x2, :lo12:.LANCHOR0 add x29, sp, 0 - add x2, x3, x4 - str x19, [sp,16] - ldrb w2, [x2,8] - ldr x19, [x3,x4] - add x19, x19, x2, lsl 8 + add x4, x2, x3 + str x19, [sp, 16] + ldr x2, [x2, x3] + ldrb w19, [x4, 8] + add x19, x2, x19, lsl 8 mov w2, 162 - str w2, [x19,2056] + str w2, [x19, 2056] mov w2, 128 - str w2, [x19,2056] + str w2, [x19, 2056] and w2, w1, 255 - str wzr, [x19,2052] - str wzr, [x19,2052] - str w2, [x19,2052] + str wzr, [x19, 2052] + str wzr, [x19, 2052] + str w2, [x19, 2052] lsr w2, w1, 8 - str w2, [x19,2052] + str w2, [x19, 2052] lsr w1, w1, 16 - str w1, [x19,2052] + str w1, [x19, 2052] mov w1, 16 - str w1, [x19,2056] + str w1, [x19, 2056] bl NandcWaitFlashReady mov w0, 112 - str w0, [x19,2056] + str w0, [x19, 2056] mov x0, 400 bl __const_udelay - ldr w0, [x19,2048] - ldr x19, [sp,16] + ldr w0, [x19, 2048] + ldr x19, [sp, 16] and w0, w0, 1 ldp x29, x30, [sp], 32 ret @@ -2095,1128 +2049,1115 @@ SandiskProgTestBadBlock: SandiskSetRRPara: stp x29, x30, [sp, -32]! add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] mov x20, x0 mov w0, 239 - uxtb w19, w1 - add w19, w19, 1 - str w0, [x20,8] + and w19, w1, 255 + str w0, [x20, 8] mov w0, 17 - str w0, [x20,4] + str w0, [x20, 4] 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, 256 + add w1, w19, 1 + mov w0, 5 + adrp x2, g_maxRegNum adrp x4, g_retryMode - add x2, x2, 304 - add x3, x3, x1 - add x0, x0, :lo12:g_maxRegNum - add x1, x2, x1 + add x2, x2, :lo12:g_maxRegNum add x4, x4, :lo12:g_retryMode - mov x2, 0 -.L280: - ldrb w5, [x0] - cmp w5, w2 - bls .L285 - ldrb w5, [x4] - cmp w5, 67 - bne .L281 - ldrsb w5, [x3,x2] - b .L284 -.L281: - ldrsb w5, [x1,x2] -.L284: - str w5, [x20] - add x2, x2, 1 - b .L280 -.L285: + umull x1, w1, w0 + adrp x0, .LANCHOR1 + add x0, x0, :lo12:.LANCHOR1 + add x3, x0, 256 + add x0, x0, 352 + add x3, x3, x1 + add x0, x0, x1 + mov x1, 0 +.L306: + ldrb w5, [x2] + cmp w5, w1 + bhi .L309 mov w0, 0 bl NandcWaitFlashReady - ldp x19, x20, [sp,16] + ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 32 ret +.L309: + ldrb w5, [x4] + cmp w5, 67 + bne .L307 + ldrsb w5, [x0, x1] +.L311: + add x1, x1, 1 + str w5, [x20] + b .L306 +.L307: + ldrsb w5, [x3, x1] + b .L311 .size SandiskSetRRPara, .-SandiskSetRRPara .align 2 .global micron_auto_read_calibration_config .type micron_auto_read_calibration_config, %function micron_auto_read_calibration_config: - stp x29, x30, [sp, -48]! + stp x29, x30, [sp, -32]! add x29, sp, 0 - str x19, [sp,16] - uxtb w19, w0 + stp x19, x20, [sp, 16] + and w19, w0, 255 + mov w20, w1 mov w0, w19 - sbfiz x19, x19, 4, 32 - str x1, [x29,40] bl NandcWaitFlashReady - adrp x3, .LANCHOR0 - add x3, x3, :lo12:.LANCHOR0 - add x3, x3, 24 - add x0, x3, x19 - ldr x19, [x3,x19] - ldrb w2, [x0,8] + sbfiz x0, x19, 4, 32 + adrp x2, .LANCHOR0 + add x2, x2, :lo12:.LANCHOR0 + add x1, x2, x0 + ldr x0, [x2, x0] + ldrb w19, [x1, 8] + add x19, x0, x19, lsl 8 mov w0, 239 - add x19, x19, x2, lsl 8 - str w0, [x19,2056] + str w0, [x19, 2056] mov w0, 150 - str w0, [x19,2052] + str w0, [x19, 2052] mov x0, 1000 bl __const_udelay - ldr x1, [x29,40] - str w1, [x19,2048] - str wzr, [x19,2048] - str wzr, [x19,2048] - str wzr, [x19,2048] - ldr x19, [sp,16] - ldp x29, x30, [sp], 48 + str w20, [x19, 2048] + str wzr, [x19, 2048] + str wzr, [x19, 2048] + str wzr, [x19, 2048] + ldp x19, x20, [sp, 16] + ldp x29, x30, [sp], 32 ret .size micron_auto_read_calibration_config, .-micron_auto_read_calibration_config .align 2 .global FlashEraseSLc2KBlocks .type FlashEraseSLc2KBlocks, %function FlashEraseSLc2KBlocks: - stp x29, x30, [sp, -96]! + stp x29, x30, [sp, -80]! add x29, sp, 0 - stp x21, x22, [sp,32] + stp x23, x24, [sp, 48] + mov w23, 56 + stp x21, x22, [sp, 32] adrp x21, .LANCHOR0 - str x25, [sp,64] - stp x23, x24, [sp,48] + umaddl x23, w1, w23, x0 add x21, x21, :lo12:.LANCHOR0 - adrp x23, .LC1 - stp x19, x20, [sp,16] - mov w24, w1 + stp x19, x20, [sp, 16] + and w22, w1, 255 mov x20, x0 - mov w22, 0 - add x25, x21, 3220 - add x23, x23, :lo12:.LC1 -.L288: - cmp w22, w24 - beq .L297 - add x2, x29, 88 - sub w4, w24, w22 - mov x0, x20 + add x24, x21, 3072 +.L315: + cmp x20, x23 + bne .L320 + ldp x19, x20, [sp, 16] + mov w0, 0 + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x29, x30, [sp], 80 + ret +.L320: mov w1, 0 - add x3, x29, 92 + mov w4, w22 + add x3, x29, 76 + add x2, x29, 72 + mov x0, x20 bl LogAddr2PhyAddr - ldr w2, [x29,92] - ldrb w0, [x21,3216] - cmp w2, w0 - bcc .L289 + ldrb w1, [x21, 3216] + ldr w0, [x29, 76] + cmp w1, w0 + bhi .L316 mov w0, -1 str w0, [x20] - b .L290 -.L289: - uxtw x2, w2 - mov x0, 24 - ldrb w19, [x25,x2] - madd x2, x2, x0, x21 +.L317: + sub w22, w22, #1 + add x20, x20, 56 + and w22, w22, 255 + b .L315 +.L316: + uxtw x0, w0 + mov x2, 24 + add x1, x24, x0 + mul x0, x0, x2 + ldrb w19, [x1, 148] + add x1, x21, 3260 + strb w19, [x1, x0] mov w0, w19 - strb w19, [x2,3260] bl NandcWaitFlashReady mov w0, w19 bl NandcFlashCs - ldr w1, [x29,88] + ldr w1, [x29, 72] mov w2, 0 mov w0, w19 bl FlashEraseCmd mov w0, w19 bl NandcWaitFlashReady - ldr w1, [x29,88] + ldr w1, [x29, 72] mov w0, w19 bl FlashReadStatus sbfx x0, x0, 0, 1 str w0, [x20] - mov w0, w19 - ldr w1, [x29,88] - ldr w2, [x21,92] - add w1, w2, w1 mov w2, 0 + ldr w1, [x29, 72] + ldr w0, [x21, 92] + add w1, w1, w0 + mov w0, w19 bl FlashEraseCmd mov w0, w19 bl NandcWaitFlashReady - ldr w1, [x29,88] + ldr w1, [x29, 72] mov w0, w19 bl FlashReadStatus - tbz x0, 0, .L291 + tbz x0, 0, .L318 mov w0, -1 str w0, [x20] -.L291: +.L318: ldr w0, [x20] cmn w0, #1 - bne .L292 - ldr w1, [x29,88] - mov x0, x23 + bne .L319 + ldr w1, [x29, 72] + adrp x0, .LC1 + add x0, x0, :lo12:.LC1 bl printk -.L292: +.L319: mov w0, w19 bl NandcFlashDeCs -.L290: - add w22, w22, 1 - add x20, x20, 56 - b .L288 -.L297: - mov w0, 0 - ldr x25, [sp,64] - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x29, x30, [sp], 96 - ret + b .L317 .size FlashEraseSLc2KBlocks, .-FlashEraseSLc2KBlocks .align 2 .global FlashEraseBlocks .type FlashEraseBlocks, %function FlashEraseBlocks: - stp x29, x30, [sp, -128]! + stp x29, x30, [sp, -112]! add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] adrp x19, .LANCHOR0 - mov w20, 0 - stp x25, x26, [sp,64] - mov w26, w1 + stp x25, x26, [sp, 64] + mov w25, w1 add x1, x19, :lo12:.LANCHOR0 - stp x23, x24, [sp,48] - stp x21, x22, [sp,32] - stp x27, x28, [sp,80] - mov x24, x0 + stp x23, x24, [sp, 48] + stp x21, x22, [sp, 32] mov w23, w2 - ldrb w1, [x1,88] - cbz w1, .L299 + str x27, [sp, 80] + ldrb w1, [x1, 88] + cbnz w1, .L326 + adrp x26, .LANCHOR2 + mov x20, x0 + add x27, x26, :lo12:.LANCHOR2 + mov w21, 0 +.L327: + cmp w21, w23 + bcc .L336 + add x19, x19, :lo12:.LANCHOR0 + adrp x22, .LANCHOR2 + add x24, x19, 3260 + add x22, x22, :lo12:.LANCHOR2 + mov x21, 0 + mov x26, 24 +.L337: + ldrb w0, [x19, 3216] + cmp w0, w21 + bhi .L339 + adrp x0, .LANCHOR2+2096 + ldr w0, [x0, #:lo12:.LANCHOR2+2096] + cbnz w0, .L340 +.L341: + mov w0, 0 + b .L325 +.L326: mov w1, w2 bl FlashEraseSLc2KBlocks - b .L300 -.L299: - mov w27, 56 - adrp x28, .LANCHOR2 - mov x25, 24 -.L330: - cmp w20, w23 - bcs .L331 - umull x5, w20, w27 +.L325: + 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], 112 + ret +.L336: + mov w13, 56 + add x2, x29, 104 mov w1, 0 - add x2, x29, 120 - add x21, x24, x5 - sub w4, w23, w20 - mov x0, x21 - add x3, x29, 124 - str x5, [x29,104] + sub w4, w23, w21 + umull x13, w21, w13 + add x3, x29, 108 + add x22, x20, x13 + mov x0, x22 bl LogAddr2PhyAddr - mov w22, w0 + mov w24, w0 add x1, x19, :lo12:.LANCHOR0 - ldr w0, [x29,124] - ldr x5, [x29,104] - ldrb w2, [x1,3216] - cmp w0, w2 - bcc .L301 + ldr w0, [x29, 108] + ldrb w2, [x1, 3216] + cmp w2, w0 + bhi .L329 mov w0, -1 - str w0, [x24,x5] - b .L302 -.L301: - add x2, x28, :lo12:.LANCHOR2 - add x1, x1, 3260 - ldrb w2, [x2,2094] - cmp w2, wzr - uxtw x2, w0 - csel w22, w22, wzr, ne - madd x1, x2, x25, x1 - ldr x1, [x1,8] - cbz x1, .L304 + str w0, [x20, x13] +.L330: + add w21, w21, 1 + b .L327 +.L329: + add x2, x26, :lo12:.LANCHOR2 + mov x3, 24 + ldrb w2, [x2, 2094] + cmp w2, 0 + add x2, x1, 3260 + uxtw x1, w0 + csel w24, w24, wzr, ne + madd x1, x1, x3, x2 + ldr x1, [x1, 8] + cbz x1, .L332 bl FlashWaitCmdDone -.L304: +.L332: add x0, x19, :lo12:.LANCHOR0 - ldr w1, [x29,124] + ldr w1, [x29, 108] + add x2, x0, 3260 + mov x0, 24 + madd x0, x1, x0, x2 + ldr w2, [x29, 104] + str w2, [x0, 4] + stp x22, xzr, [x0, 8] + cbz w24, .L333 + add w2, w21, 1 + mov w3, 56 + umaddl x2, w2, w3, x20 + str x2, [x0, 16] +.L333: + add x0, x19, :lo12:.LANCHOR0 + add x2, x0, x1 add x0, x0, 3260 - ldr w2, [x29,120] - madd x0, x1, x25, x0 - str x21, [x0,8] - str xzr, [x0,16] - str w2, [x0,4] - cbz w22, .L305 - add w2, w20, 1 - umull x2, w2, w27 - add x2, x24, x2 - str x2, [x0,16] -.L305: - add x0, x19, :lo12:.LANCHOR0 - add x2, x0, 3220 - ldrb w21, [x2,x1] - madd x1, x1, x25, x0 - mov w0, w21 - strb w21, [x1,3260] + ldrb w22, [x2, 3220] + mov x2, 24 + mul x1, x1, x2 + strb w22, [x0, x1] + mov w0, w22 bl NandcFlashCs - cmp w26, 1 - bne .L306 - adrp x0, .LANCHOR2 - add x0, x0, :lo12:.LANCHOR2 - ldrb w0, [x0,1220] - cbz w0, .L306 - mov w0, w21 + cmp w25, 1 + bne .L334 + ldrb w0, [x27, 1220] + cbz w0, .L334 + mov w0, w22 bl flash_enter_slc_mode - b .L307 -.L306: - mov w0, w21 - bl flash_exit_slc_mode -.L307: +.L335: + ldr w1, [x29, 108] add x0, x19, :lo12:.LANCHOR0 - ldr w1, [x29,124] add x0, x0, 3228 - add w20, w20, w22 - ldr w0, [x0,x1,lsl 2] - ldr w1, [x29,120] - cmp w0, wzr - mov w0, w21 + add w21, w21, w24 + ldr w0, [x0, x1, lsl 2] + ldr w1, [x29, 104] + cmp w0, 0 + mov w0, w22 cset w2, ne bl FlashWaitReadyEN - ldr w1, [x29,120] - mov w0, w21 - mov w2, w22 + ldr w1, [x29, 104] + mov w2, w24 + mov w0, w22 bl FlashEraseCmd - mov w0, w21 + mov w0, w22 bl NandcFlashDeCs -.L302: - add w20, w20, 1 b .L330 -.L331: - add x19, x19, :lo12:.LANCHOR0 - mov x20, 0 - adrp x21, .LANCHOR2 - add x22, x19, 3260 - mov x25, 24 -.L309: - ldrb w0, [x19,3216] - cmp w0, w20 - bls .L332 - mov w0, w20 - bl FlashWaitCmdDone - cmp w26, 1 - bne .L310 - add x0, x21, :lo12:.LANCHOR2 - ldrb w0, [x0,1220] - cbz w0, .L310 - mul x0, x20, x25 - ldrb w0, [x0,x22] +.L334: + mov w0, w22 bl flash_exit_slc_mode -.L310: - add x20, x20, 1 - b .L309 -.L332: - adrp x0, .LANCHOR2+2096 - ldr w0, [x0,#:lo12:.LANCHOR2+2096] - cbnz w0, .L312 -.L314: - mov w0, 0 - b .L300 -.L312: + b .L335 +.L339: + mov w0, w21 + bl FlashWaitCmdDone + cmp w25, 1 + bne .L338 + ldrb w0, [x22, 1220] + cbz w0, .L338 + mul x0, x21, x26 + ldrb w0, [x0, x24] + bl flash_exit_slc_mode +.L338: + add x21, x21, 1 + b .L337 +.L340: adrp x0, IDByte - ldrb w0, [x0,#:lo12:IDByte] + ldrb w0, [x0, #:lo12:IDByte] cmp w0, 69 - bne .L314 - mov x0, 0 - mov x1, 56 -.L313: - cmp w23, w0 - bls .L314 - mul x2, x0, x1 - add x0, x0, 1 - str wzr, [x24,x2] - b .L313 -.L300: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 128 - ret + bne .L341 + mov w0, 56 + umaddl x23, w23, w0, x20 +.L342: + cmp x23, x20 + beq .L341 + str wzr, [x20], 56 + b .L342 .size FlashEraseBlocks, .-FlashEraseBlocks .align 2 .global HynixGetReadRetryDefault .type HynixGetReadRetryDefault, %function HynixGetReadRetryDefault: - stp x29, x30, [sp, -144]! - mov w4, -83 - mov w3, -82 + stp x29, x30, [sp, -128]! + mov w3, -83 + mov w2, -82 add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x20, .LANCHOR2 - stp x25, x26, [sp,64] - mov w26, w0 - add x0, x20, :lo12:.LANCHOR2 - add x1, x0, 1232 - cmp w26, 2 - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - stp x27, x28, [sp,80] - strb w26, [x0,1232] - mov w0, -84 - strb w4, [x1,5] - strb w0, [x1,4] - mov w0, -81 - strb w3, [x1,6] - strb w0, [x1,7] - bne .L334 - mov w0, -89 - strb w0, [x1,4] + stp x21, x22, [sp, 32] + adrp x21, .LANCHOR2 + add x1, x21, :lo12:.LANCHOR2 + stp x19, x20, [sp, 16] + mov w20, w0 + add x0, x1, 1232 + stp x23, x24, [sp, 48] + cmp w20, 2 + stp x25, x26, [sp, 64] + stp x27, x28, [sp, 80] + strb w20, [x1, 1232] + mov w1, -84 + strb w3, [x0, 5] + strb w1, [x0, 4] + mov w1, -81 + strb w2, [x0, 6] + strb w1, [x0, 7] + bne .L358 + mov w1, -89 + strb w1, [x0, 4] adrp x0, .LANCHOR1+3401 mov w1, -9 - strb w1, [x0,#:lo12:.LANCHOR1+3401] - b .L397 -.L334: - cmp w26, 3 - bne .L336 - mov w0, -80 - strb w0, [x1,4] - mov w0, -79 - strb w0, [x1,5] - mov w0, -78 - strb w0, [x1,6] - mov w0, -77 - strb w0, [x1,7] - mov w0, -76 - strb w0, [x1,8] - mov w0, -75 - strb w0, [x1,9] - mov w0, -74 - strb w0, [x1,10] - mov w0, -73 - b .L437 -.L336: - cmp w26, 4 - bne .L337 - mov w5, -52 - strb w5, [x1,4] - mov w5, -65 - strb w5, [x1,5] - mov w5, -86 - strb w5, [x1,6] - mov w5, -85 - strb w4, [x1,9] - strb w5, [x1,7] - mov w5, -51 - strb w3, [x1,10] - strb w5, [x1,8] -.L437: - mov w28, 8 - strb w0, [x1,11] - mov w27, w28 - b .L335 -.L337: - cmp w26, 5 - bne .L338 - mov w0, 56 - strb w0, [x1,4] - mov w0, 57 - strb w0, [x1,5] - mov w0, 58 - mov w28, 8 - strb w0, [x1,6] - mov w0, 59 - strb w0, [x1,7] - b .L438 -.L338: - cmp w26, 6 - bne .L339 - mov w0, 14 - strb w0, [x1,4] - mov w0, 15 - strb w0, [x1,5] - mov w0, 16 - mov w28, 12 - strb w0, [x1,6] - mov w0, 17 - strb w0, [x1,7] - b .L438 -.L339: - cmp w26, 7 - bne .L340 - mov w0, -80 - strb w0, [x1,4] - mov w0, -79 - strb w0, [x1,5] - mov w0, -78 - strb w0, [x1,6] - mov w0, -77 - strb w0, [x1,7] - mov w0, -76 - strb w0, [x1,8] - mov w0, -75 - strb w0, [x1,9] - mov w0, -74 - strb w0, [x1,10] - mov w0, -73 - strb w0, [x1,11] - mov w0, -44 - mov w28, 12 - strb w0, [x1,12] - mov w27, 10 - mov w0, -43 - strb w0, [x1,13] - b .L335 -.L340: - cmp w26, 8 - bne .L397 - 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 .L335 -.L397: - mov w28, 7 -.L438: - mov w27, 4 -.L335: - sub w0, w26, #1 + strb w1, [x0, #:lo12:.LANCHOR1+3401] +.L423: + mov w27, 7 + b .L467 +.L358: + cmp w20, 3 + bne .L360 + mov w1, -80 + strb w1, [x0, 4] + mov w1, -79 + strb w1, [x0, 5] + mov w1, -78 + strb w1, [x0, 6] + mov w1, -77 + strb w1, [x0, 7] + mov w1, -76 + strb w1, [x0, 8] + mov w1, -75 + strb w1, [x0, 9] + mov w1, -74 + strb w1, [x0, 10] + mov w1, -73 +.L466: + mov w27, 8 + mov w28, w27 + strb w1, [x0, 11] +.L359: + sub w0, w20, #1 cmp w0, 1 - bhi .L434 - adrp x23, .LANCHOR0 - adrp x24, .LANCHOR1 - add x23, x23, :lo12:.LANCHOR0 - add x24, x24, :lo12:.LANCHOR1 - mov w21, 0 - add x4, x23, 3220 - add x5, x20, :lo12:.LANCHOR2 - add x24, x24, 3384 -.L341: - ldrb w0, [x23,3216] - cmp w0, w21 - bls .L348 - ldrb w1, [x4,w21,sxtw] - add x0, x5, 1232 - add x2, x23, 24 - mov x25, 0 - mov x22, x0 - add x19, x0, x1, lsl 6 - lsl x1, x1, 4 - add x3, x2, x1 + bhi .L365 + adrp x25, .LANCHOR0 + adrp x26, .LANCHOR1 + add x25, x25, :lo12:.LANCHOR0 + add x26, x26, :lo12:.LANCHOR1 + add x3, x25, 3072 + add x26, x26, 3384 + mov w24, 0 +.L366: + ldrb w0, [x25, 3216] + cmp w0, w24 + bhi .L372 +.L373: + add x21, x21, :lo12:.LANCHOR2 + ldp x19, x20, [sp, 16] + strb w28, [x21, 1233] + strb w27, [x21, 1234] + ldp x23, x24, [sp, 48] + ldp x21, x22, [sp, 32] + ldp x25, x26, [sp, 64] + ldp x27, x28, [sp, 80] + ldp x29, x30, [sp], 128 + ret +.L360: + cmp w20, 4 + bne .L361 + mov w4, -52 + strb w4, [x0, 4] + mov w4, -65 + strb w4, [x0, 5] + mov w4, -86 + strb w4, [x0, 6] + mov w4, -85 + strb w3, [x0, 9] + strb w4, [x0, 7] + mov w4, -51 + strb w2, [x0, 10] + strb w4, [x0, 8] + b .L466 +.L361: + cmp w20, 5 + bne .L362 + mov w1, 56 + strb w1, [x0, 4] + mov w1, 57 + strb w1, [x0, 5] + mov w1, 58 + mov w27, 8 + strb w1, [x0, 6] + mov w1, 59 + strb w1, [x0, 7] +.L467: + mov w28, 4 + b .L359 +.L362: + cmp w20, 6 + bne .L363 + mov w1, 14 + strb w1, [x0, 4] + mov w1, 15 + strb w1, [x0, 5] + mov w1, 16 + mov w27, 12 + strb w1, [x0, 6] + mov w1, 17 + strb w1, [x0, 7] + b .L467 +.L363: + cmp w20, 7 + bne .L364 + mov w1, -80 + strb w1, [x0, 4] + mov w1, -79 + strb w1, [x0, 5] + mov w1, -78 + strb w1, [x0, 6] + mov w1, -77 + strb w1, [x0, 7] + mov w1, -76 + strb w1, [x0, 8] + mov w1, -75 + strb w1, [x0, 9] + mov w1, -74 + strb w1, [x0, 10] + mov w1, -73 + strb w1, [x0, 11] + mov w1, -44 + mov w27, 12 + strb w1, [x0, 12] + mov w28, 10 + mov w1, -43 + strb w1, [x0, 13] + b .L359 +.L364: + cmp w20, 8 + bne .L423 + mov w1, 6 + strb w1, [x0, 4] + mov w1, 7 + strb w1, [x0, 5] + mov w1, 9 + strb w20, [x0, 6] + strb w1, [x0, 7] + mov w27, 50 + mov w1, 10 + mov w28, 5 + strb w1, [x0, 8] + b .L359 +.L372: + add x0, x3, w24, sxtw + mov x22, 0 + ldrb w1, [x0, 148] + add x0, x21, :lo12:.LANCHOR2 + add x0, x0, 1232 + mov x20, x0 + ubfiz x19, x1, 6, 8 + sbfiz x1, x1, 4, 32 + add x2, x25, x1 add x19, x19, 20 - ldr x26, [x2,x1] - ldrb w1, [x3,8] - add x26, x26, x1, lsl 8 + add x19, x0, x19 + ldr x1, [x25, x1] + ldrb w23, [x2, 8] + add x23, x1, x23, lsl 8 mov w1, 55 -.L343: - add x0, x22, x25 - str w1, [x26,2056] - str x5, [x29,120] - str x4, [x29,128] - ldrb w0, [x0,4] - str w0, [x26,2052] +.L367: + add x0, x20, x22 + str w1, [x23, 2056] + str x3, [x29, 112] + str w1, [x29, 124] + ldrb w0, [x0, 4] + str w0, [x23, 2052] mov x0, 400 - str x1, [x29,136] bl __const_udelay - ldr w0, [x26,2048] - strb w0, [x19,x25] - add x25, x25, 1 - ldr x1, [x29,136] - cmp w27, w25, uxtb - ldr x4, [x29,128] - ldr x5, [x29,120] - bhi .L343 + ldr w0, [x23, 2048] + strb w0, [x19, x22] + add x22, x22, 1 + cmp w28, w22, uxtb + ldr w1, [x29, 124] + ldr x3, [x29, 112] + bhi .L367 mov x0, 0 -.L344: - add w2, w0, 8 - mov x1, 0 -.L345: - add x3, x1, x0 - add x1, x1, 4 - add x3, x24, x3 - cmp x1, 24 - ldrb w6, [x3,4] - ldrb w3, [x19,x0] - add w3, w6, w3 - strb w3, [x19,w2,sxtw] - add w2, w2, 8 - bne .L345 +.L370: + add x1, x0, 4 + add x2, x0, 28 + add w5, w0, 8 + add x1, x26, x1 + add x2, x26, x2 +.L369: + ldrb w6, [x19, x0] + ldrb w7, [x1], 4 + add w6, w6, w7 + strb w6, [x19, w5, sxtw] + cmp x2, x1 + add w5, w5, 8 + bne .L369 add x0, x0, 1 cmp x0, 4 - bne .L344 - add w21, w21, 1 - strb wzr, [x19,16] - strb wzr, [x19,24] - strb wzr, [x19,32] - uxtb w21, w21 - strb wzr, [x19,40] - strb wzr, [x19,48] - strb wzr, [x19,41] - strb wzr, [x19,49] - b .L341 -.L434: - sub w0, w26, #3 + bne .L370 + add w24, w24, 1 + strb wzr, [x19, 16] + strb wzr, [x19, 24] + and w24, w24, 255 + strb wzr, [x19, 32] + strb wzr, [x19, 40] + strb wzr, [x19, 48] + strb wzr, [x19, 41] + strb wzr, [x19, 49] + b .L366 +.L365: + sub w0, w20, #3 cmp w0, 5 - bhi .L348 - mul w0, w27, w28 + bhi .L373 + mul w26, w28, w27 + sub w25, w28, #1 adrp x24, .LANCHOR0 - sub w25, w27, #1 - asr w23, w0, 1 - lsl w0, w0, 4 - add x24, x24, :lo12:.LANCHOR0 - str w0, [x29,136] + and x25, x25, 255 + mov w22, 0 + lsl w0, w26, 4 + asr w23, w26, 1 + str w0, [x29, 112] + add x26, x24, :lo12:.LANCHOR0 lsl w0, w23, 1 - uxtb x25, w25 - str w0, [x29,128] - add x0, x24, 3220 - mov w21, 0 - str x0, [x29,120] + str w0, [x29, 124] add x0, x25, 1 - str x0, [x29,112] -.L349: - ldrb w0, [x24,3216] - adrp x25, .LANCHOR0 - cmp w0, w21 - bhi .L395 -.L348: - add x20, x20, :lo12:.LANCHOR2 - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - strb w27, [x20,1233] - strb w28, [x20,1234] - ldp x25, x26, [sp,64] - ldp x19, x20, [sp,16] - ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 144 - ret -.L395: - ldr x0, [x29,120] - ldrb w1, [x0,w21,sxtw] - add x0, x24, 24 - str x1, [x29,104] - lsl x3, x1, 4 - mov x22, x1 - add x7, x0, x3 - ldr x0, [x0,x3] - ldrb w19, [x7,8] + str x0, [x29, 104] +.L374: + ldrb w0, [x26, 3216] + cmp w0, w22 + bls .L373 + add x0, x26, w22, sxtw + ldrb w25, [x0, 3220] + sbfiz x0, x25, 4, 32 + add x1, x26, x0 + ldr x0, [x26, x0] + ldrb w19, [x1, 8] add x19, x0, x19, lsl 8 mov w0, 255 - str w0, [x19,2056] - mov w0, w1 + str w0, [x19, 2056] + mov w0, w25 bl NandcWaitFlashReady - cmp w26, 7 - sub w7, w26, #5 - ldr x1, [x29,104] - bne .L350 - add x3, x20, :lo12:.LANCHOR2 - mov x0, 160 - madd x3, x1, x0, x3 - add x3, x3, 1260 - b .L351 -.L350: - cmp w26, 8 - beq .L352 - add x3, x20, :lo12:.LANCHOR2 - add x3, x3, x1, lsl 6 - add x3, x3, 1252 -.L351: - mov w0, 54 - cmp w26, 4 - str w0, [x19,2056] - bne .L353 - mov w0, 255 - str w0, [x19,2052] - mov w0, 64 - str w0, [x19,2048] - mov w0, 204 - b .L439 -.L353: - cmp w7, 1 - bhi .L355 - add x0, x20, :lo12:.LANCHOR2 - ldrb w0, [x0,1236] - str w0, [x19,2052] - mov w0, 82 - b .L440 -.L355: - cmp w26, 7 - bne .L354 - mov w0, 174 - str w0, [x19,2052] - str wzr, [x19,2048] - mov w0, 176 -.L439: - str w0, [x19,2052] - mov w0, 77 -.L440: - str w0, [x19,2048] -.L354: - mov w0, 22 - str w0, [x19,2056] - mov w0, 23 - str w0, [x19,2056] - mov w0, 4 - str w0, [x19,2056] - mov w0, 25 - str w0, [x19,2056] - str wzr, [x19,2056] - cmp w26, 6 - str wzr, [x19,2052] - str wzr, [x19,2052] - bne .L356 - mov w0, 31 - str w0, [x19,2052] - b .L357 -.L356: - str wzr, [x19,2052] -.L357: - mov w0, 2 - str w0, [x19,2052] - str wzr, [x19,2052] -.L396: - mov w0, 48 - str w0, [x19,2056] - mov w0, w22 - str x7, [x29,96] - str x3, [x29,104] - bl NandcWaitFlashReady - ldr x7, [x29,96] - ldr x3, [x29,104] - cmp w7, 1 - cset w8, ls - cmp w26, 8 - cset w7, eq - cbnz w8, .L399 - cbnz w7, .L399 - cmp w26, 7 - mov w1, 32 - mov w0, 2 - csel w1, w0, w1, ne - b .L358 -.L399: - mov w1, 16 -.L358: - ldr x0, [x25,#:lo12:.LANCHOR0] - mov x9, 0 -.L359: - ldr w10, [x19,2048] - strb w10, [x0,x9] - add x9, x9, 1 - cmp w1, w9, uxtb - bhi .L359 - cbz w7, .L360 - mov w1, 0 -.L362: - ldrb w9, [x0] - cmp w9, 50 - beq .L361 - ldrb w9, [x0,1] - cmp w9, 5 - beq .L361 - add w1, w1, 1 - add x0, x0, 4 - uxtb w1, w1 - cmp w1, 8 - bne .L362 - b .L363 -.L361: - cmp w1, 6 - bls .L364 -.L363: - adrp x0, .LC2 - mov w1, 0 - add x0, x0, :lo12:.LC2 - bl printk -.L365: - b .L365 -.L360: - cmp w26, 7 - bne .L366 - mov w1, w7 -.L368: - ldrb w9, [x0] - cmp w9, 12 - beq .L367 - ldrb w9, [x0,1] - cmp w9, 10 - beq .L367 - add w1, w1, 1 - add x0, x0, 4 - uxtb w1, w1 - cmp w1, 8 - bne .L368 - b .L369 -.L367: - cmp w1, 7 - bne .L364 -.L369: - adrp x0, .LC2 - mov w1, 0 - add x0, x0, :lo12:.LC2 - bl printk -.L370: - b .L370 -.L366: - cmp w26, 6 - bne .L364 - mov x1, 0 -.L371: - ldrb w9, [x0,x1] - cmp w9, 12 - beq .L364 - add x9, x0, x1 - ldrb w9, [x9,8] - cmp w9, 4 - beq .L364 - add x1, x1, 1 - cmp x1, 8 - bne .L371 - adrp x0, .LC2 - mov w1, 0 - add x0, x0, :lo12:.LC2 - bl printk -.L373: - b .L373 -.L364: - ldr x10, [x25,#:lo12:.LANCHOR0] - mov x0, 0 -.L374: - ldr w1, [x29,136] - cmp w1, w0 - ble .L442 - ldr w1, [x19,2048] - strb w1, [x10,x0] - add x0, x0, 1 - b .L374 -.L442: - ldr x12, [x25,#:lo12:.LANCHOR0] - mov w11, w23 - mov w9, 8 -.L377: - mov w0, 0 + cmp w20, 7 + sub w6, w20, #5 + bne .L375 + mov x1, 28 + mov w0, 160 + add x2, x21, :lo12:.LANCHOR2 + umaddl x0, w0, w25, x1 + add x2, x2, 1232 + add x2, x2, x0 .L376: - add w1, w0, w11 + mov w0, 54 + str w0, [x19, 2056] + cmp w20, 4 + bne .L378 + mov w0, 255 + str w0, [x19, 2052] + mov w0, 64 + str w0, [x19, 2048] + mov w0, 204 +.L468: + str w0, [x19, 2052] + mov w0, 77 + b .L469 +.L375: + cmp w20, 8 + beq .L377 + add x2, x21, :lo12:.LANCHOR2 + ubfiz x0, x25, 6, 8 + add x2, x2, x0 + add x2, x2, 1252 + b .L376 +.L378: + cmp w6, 1 + bhi .L380 + add x0, x21, :lo12:.LANCHOR2 + ldrb w0, [x0, 1236] + str w0, [x19, 2052] + mov w0, 82 +.L469: + str w0, [x19, 2048] +.L379: + mov w0, 22 + str w0, [x19, 2056] + mov w0, 23 + str w0, [x19, 2056] + mov w0, 4 + str w0, [x19, 2056] + mov w0, 25 + str w0, [x19, 2056] + str wzr, [x19, 2056] + cmp w20, 6 + str wzr, [x19, 2052] + str wzr, [x19, 2052] + bne .L381 + mov w0, 31 + str w0, [x19, 2052] +.L382: + mov w0, 2 + str w0, [x19, 2052] + str wzr, [x19, 2052] +.L422: + mov w0, 48 + str w0, [x19, 2056] + str x2, [x29, 96] + mov w0, w25 + str w6, [x29, 120] + bl NandcWaitFlashReady + ldr w6, [x29, 120] + ldr x2, [x29, 96] + cmp w6, 1 + ccmp w20, 8, 4, hi + beq .L424 + cmp w20, 7 + mov w0, 2 + mov w1, 32 + csel w1, w1, w0, eq +.L383: + add x0, x24, :lo12:.LANCHOR0 + mov x7, 0 + ldr x0, [x0, 64] +.L384: + ldr w8, [x19, 2048] + strb w8, [x0, x7] + add x7, x7, 1 + cmp w1, w7, uxtb + bhi .L384 + cmp w20, 8 + bne .L385 + mov w1, 0 +.L387: + ldrb w7, [x0] + cmp w7, 50 + beq .L386 + ldrb w7, [x0, 1] + cmp w7, 5 + beq .L386 + add w1, w1, 1 + add x0, x0, 4 + and w1, w1, 255 + cmp w1, 8 + bne .L387 +.L388: + adrp x0, .LC2 + mov w1, 0 + add x0, x0, :lo12:.LC2 + bl printk +.L390: + b .L390 +.L380: + cmp w20, 7 + bne .L379 + mov w0, 174 + str w0, [x19, 2052] + str wzr, [x19, 2048] + mov w0, 176 + b .L468 +.L381: + str wzr, [x19, 2052] + b .L382 +.L424: + mov w1, 16 + b .L383 +.L386: + cmp w1, 6 + bhi .L388 +.L389: + add x0, x24, :lo12:.LANCHOR0 + ldr x7, [x0, 64] + mov x0, 0 +.L399: + ldr w1, [x29, 112] + cmp w1, w0 + bgt .L400 + add x0, x24, :lo12:.LANCHOR0 + mov w9, w23 + mov w8, 8 + ldr x11, [x0, 64] +.L402: + mov w0, 0 +.L401: + add w1, w0, w9 add w0, w0, 1 sbfiz x1, x1, 1, 32 - cmp w0, w23 - ldrh w13, [x12,x1] - mvn w13, w13 - strh w13, [x12,x1] - bne .L376 - ldr w0, [x29,128] - subs w9, w9, #1 - add w11, w11, w0 - bne .L377 - mov x9, 0 - mov w17, 1 -.L378: - mov w1, 0 - mov w11, w1 -.L382: - lsl w13, w17, w11 - mov w15, w9 - mov w0, 16 - mov w14, 0 -.L380: - ldrh w16, [x12,w15,sxtw 1] - add w15, w15, w23 - and w16, w16, w13 - cmp w16, w13 - csinc w14, w14, w14, ne - subs w0, w0, #1 - bne .L380 - cmp w14, 8 - bls .L381 - orr w1, w1, w13 - uxth w1, w1 -.L381: - add w11, w11, 1 - cmp w11, 16 - bne .L382 - strh w1, [x12,x9,lsl 1] - add x9, x9, 1 - cmp w23, w9 - bgt .L378 - mov x6, 0 - ldr x1, [x25,#:lo12:.LANCHOR0] - mov w9, w6 -.L385: - ldr w11, [x1,x6] - add x6, x6, 4 - cmp w11, wzr - csinc w9, w9, w9, ne - cmp x6, 32 - bne .L385 - cmp w9, 7 - ble .L386 - adrp x0, .LC3 - mov w2, 1 - add x0, x0, :lo12:.LC3 + cmp w23, w0 + ldrh w10, [x11, x1] + mvn w10, w10 + strh w10, [x11, x1] + bgt .L401 + ldr w0, [x29, 124] + subs w8, w8, #1 + add w9, w9, w0 + bne .L402 + mov x1, 0 + mov w14, 1 +.L408: + mov w0, 0 + mov w8, 0 +.L407: + mov w10, w1 + lsl w13, w14, w8 + mov w12, 16 + mov w9, 0 +.L405: + ldrh w15, [x11, w10, sxtw 1] + add w10, w10, w23 + bics wzr, w13, w15 + cinc w9, w9, eq + subs w12, w12, #1 + bne .L405 + cmp w9, 8 + bls .L406 + orr w0, w0, w13 + and w0, w0, 65535 +.L406: + add w8, w8, 1 + cmp w8, 16 + bne .L407 + strh w0, [x11, x1, lsl 1] + add x1, x1, 1 + cmp w23, w1 + bgt .L408 + add x0, x24, :lo12:.LANCHOR0 + mov w8, 0 + ldr x1, [x0, 64] + mov x0, 0 +.L411: + ldr w9, [x1, x0] + add x0, x0, 4 + cmp w9, 0 + cinc w8, w8, eq + cmp x0, 32 + bne .L411 + cmp w8, 7 + ble .L412 mov w3, 1024 + mov w2, 1 + adrp x0, .LC3 + add x0, x0, :lo12:.LC3 bl rknand_print_hex adrp x0, .LC2 mov w1, 0 add x0, x0, :lo12:.LC2 bl printk -.L387: - b .L387 -.L386: - cmp w26, 6 - mov w6, 4 - beq .L388 - cmp w26, 7 - mov w6, 10 - beq .L388 - cmp w7, wzr - mov w6, 5 - mov w1, 8 - csel w6, w1, w6, eq -.L388: - mov w9, 0 -.L389: +.L413: + b .L413 +.L385: + cmp w20, 7 + bne .L391 + mov w1, 0 +.L393: + ldrb w7, [x0] + cmp w7, 12 + beq .L392 + ldrb w7, [x0, 1] + cmp w7, 10 + beq .L392 + add w1, w1, 1 + add x0, x0, 4 + and w1, w1, 255 + cmp w1, 8 + bne .L393 +.L394: + adrp x0, .LC2 + mov w1, 0 + add x0, x0, :lo12:.LC2 + bl printk +.L395: + b .L395 +.L392: + cmp w1, 6 + bls .L389 + b .L394 +.L391: + cmp w20, 6 + bne .L389 mov x1, 0 -.L390: - add w11, w0, w1 - ldrb w12, [x10,x1] +.L396: + ldrb w7, [x0, x1] + cmp w7, 12 + beq .L389 + add x7, x0, x1 + ldrb w7, [x7, 8] + cmp w7, 4 + beq .L389 add x1, x1, 1 - cmp w27, w1, uxtb - strb w12, [x3,w11,sxtw] - bhi .L390 - add w9, w9, 1 - ldr x1, [x29,112] - cmp w9, w28 - add w0, w0, w6 - add x10, x10, x1 - blt .L389 + cmp x1, 8 + bne .L396 + adrp x0, .LC2 + mov w1, 0 + add x0, x0, :lo12:.LC2 + bl printk +.L398: + b .L398 +.L400: + ldr w1, [x19, 2048] + strb w1, [x7, x0] + add x0, x0, 1 + b .L399 +.L412: + cmp w20, 6 + beq .L426 + cmp w20, 7 + beq .L427 + cmp w20, 8 + mov w0, 8 + mov w1, 5 + csel w1, w1, w0, eq +.L414: + mov w8, 0 +.L415: + mov x0, 0 +.L416: + add w9, w12, w0 + ldrb w10, [x7, x0] + add x0, x0, 1 + cmp w28, w0, uxtb + strb w10, [x2, w9, sxtw] + bhi .L416 + ldr x0, [x29, 104] + add w8, w8, 1 + add w12, w12, w1 + cmp w27, w8 + add x7, x7, x0 + bgt .L415 mov w0, 255 - str w0, [x19,2056] - mov w0, w22 - str x7, [x29,96] - str x8, [x29,104] + str w0, [x19, 2056] + str w6, [x29, 96] + mov w0, w25 bl NandcWaitFlashReady - ldr x8, [x29,104] - ldr x7, [x29,96] - cbz w8, .L392 + ldr w6, [x29, 96] + cmp w6, 1 + bhi .L418 mov w0, 54 - str w0, [x19,2056] + str w0, [x19, 2056] adrp x0, .LANCHOR2+1236 mov w1, -1 - ldrb w0, [x0,#:lo12:.LANCHOR2+1236] - str w0, [x19,2052] + ldrb w0, [x0, #:lo12:.LANCHOR2+1236] + str w0, [x19, 2052] + str wzr, [x19, 2048] mov w0, 22 - str wzr, [x19,2048] - str w0, [x19,2056] - mov w0, w21 - bl FlashReadCmd - b .L393 -.L392: - mov w0, 190 - cbnz w7, .L441 - mov w0, 56 -.L441: - str w0, [x19,2056] -.L393: + str w0, [x19, 2056] mov w0, w22 - add w21, w21, 1 + bl FlashReadCmd +.L419: + add w22, w22, 1 + mov w0, w25 + and w22, w22, 255 bl NandcWaitFlashReady - uxtb w21, w21 - b .L349 -.L352: + b .L374 +.L426: + mov w1, 4 + b .L414 +.L427: + mov w1, 10 + b .L414 +.L418: + cmp w20, 8 + bne .L420 + mov w0, 190 +.L470: + str w0, [x19, 2056] + b .L419 +.L420: + mov w0, 56 + b .L470 +.L377: mov w0, 120 - str w0, [x19,2056] - str wzr, [x19,2052] + str w0, [x19, 2056] + str wzr, [x19, 2052] mov w0, 23 - str wzr, [x19,2052] + str wzr, [x19, 2052] mov w1, 25 - str wzr, [x19,2052] - add x3, x20, :lo12:.LANCHOR2 - str w0, [x19,2056] + str wzr, [x19, 2052] + add x2, x21, :lo12:.LANCHOR2 + str w0, [x19, 2056] mov w0, 4 - str w0, [x19,2056] - add x3, x3, 1260 - str w1, [x19,2056] + str w0, [x19, 2056] + add x2, x2, 1260 + str w1, [x19, 2056] mov w1, 218 - str w1, [x19,2056] + 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 .L396 + 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 .L422 .size HynixGetReadRetryDefault, .-HynixGetReadRetryDefault .align 2 .global FlashGetReadRetryDefault .type FlashGetReadRetryDefault, %function FlashGetReadRetryDefault: + cbz w0, .L484 stp x29, x30, [sp, -16]! - mov w1, w0 - add x29, sp, 0 - cbz w0, .L443 sub w2, w0, #1 + mov w1, w0 cmp w2, 7 - bhi .L445 + add x29, sp, 0 + bhi .L473 bl HynixGetReadRetryDefault - b .L443 -.L445: +.L471: + ldp x29, x30, [sp], 16 + ret +.L473: cmp w0, 49 - bne .L446 + bne .L474 adrp x0, .LANCHOR2 - mov w2, 64 add x0, x0, :lo12:.LANCHOR2 - add x0, x0, 1236 - strb w1, [x0,-4] + mov w2, 64 + strb w1, [x0, 1232] mov w1, 4 - strb w1, [x0,-3] + strb w1, [x0, 1233] mov w1, 15 - strb w1, [x0,-2] + strb w1, [x0, 1234] adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 add x1, x1, 408 - b .L461 -.L446: - sub w0, w0, #65 - cmp w0, 1 - bls .L452 - cmp w1, 33 - bne .L447 -.L452: - adrp x0, .LANCHOR2 - add x0, x0, :lo12:.LANCHOR2 - strb w1, [x0,1232] - mov w1, 4 - b .L462 -.L447: - cmp w1, 67 - beq .L453 - cmp w1, 34 - bne .L449 -.L453: - adrp x0, .LANCHOR2 - add x0, x0, :lo12:.LANCHOR2 - strb w1, [x0,1232] - mov w1, 5 -.L462: - strb w1, [x0,1233] - mov w1, 7 - strb w1, [x0,1234] - adrp x1, .LANCHOR1 - add x1, x1, :lo12:.LANCHOR1 +.L487: add x0, x0, 1236 - add x1, x1, 256 - mov w2, 45 - b .L461 -.L449: - cmp w1, 68 - beq .L454 - cmp w1, 35 - bne .L443 -.L454: - adrp x0, .LANCHOR2 - mov w2, 95 - add x0, x0, :lo12:.LANCHOR2 - add x0, x0, 1236 - strb w1, [x0,-4] - mov w1, 5 - strb w1, [x0,-3] - mov w1, 17 - strb w1, [x0,-2] - adrp x1, .LANCHOR1 - add x1, x1, :lo12:.LANCHOR1 - add x1, x1, 304 -.L461: bl ftl_memcpy -.L443: - ldp x29, x30, [sp], 16 + b .L471 +.L474: + sub w0, w0, #65 + cmp w1, 33 + ccmp w0, 1, 0, ne + bhi .L475 + adrp x0, .LANCHOR2 + add x0, x0, :lo12:.LANCHOR2 + strb w1, [x0, 1232] + mov w1, 4 +.L488: + strb w1, [x0, 1233] + mov w1, 7 + strb w1, [x0, 1234] + adrp x1, .LANCHOR1 + add x1, x1, :lo12:.LANCHOR1 + mov w2, 45 + add x1, x1, 352 + b .L487 +.L475: + cmp w1, 34 + mov w0, 67 + ccmp w1, w0, 4, ne + bne .L476 + adrp x0, .LANCHOR2 + add x0, x0, :lo12:.LANCHOR2 + strb w1, [x0, 1232] + mov w1, 5 + b .L488 +.L476: + cmp w1, 35 + mov w0, 68 + ccmp w1, w0, 4, ne + bne .L471 + adrp x0, .LANCHOR2 + add x0, x0, :lo12:.LANCHOR2 + mov w2, 95 + strb w1, [x0, 1232] + mov w1, 5 + strb w1, [x0, 1233] + mov w1, 17 + strb w1, [x0, 1234] + adrp x1, .LANCHOR1 + add x1, x1, :lo12:.LANCHOR1 + add x1, x1, 256 + b .L487 +.L484: ret .size FlashGetReadRetryDefault, .-FlashGetReadRetryDefault .align 2 .global FlashReadDpCmd .type FlashReadDpCmd, %function FlashReadDpCmd: - stp x29, x30, [sp, -80]! - adrp x3, .LANCHOR0 - and w8, w1, 255 + stp x29, x30, [sp, -64]! add x29, sp, 0 - stp x21, x22, [sp,32] - add x6, x3, :lo12:.LANCHOR0 - uxtb w21, w0 - sbfiz x0, x21, 4, 32 - add x4, x6, 24 - stp x19, x20, [sp,16] - str x23, [sp,48] - add x7, x4, x0 - and w23, w2, 255 - lsr w22, w2, 8 - ldr x5, [x4,x0] + stp x21, x22, [sp, 32] + and w22, w0, 255 + adrp x0, .LANCHOR0 + add x4, x0, :lo12:.LANCHOR0 + stp x23, x24, [sp, 48] + mov w21, w1 + stp x19, x20, [sp, 16] + sbfiz x1, x22, 4, 32 + and w24, w2, 255 + lsr w23, w2, 8 lsr w20, w2, 16 - ldrb w0, [x6,128] - ldr x2, [x6,104] - cmp w0, 1 - ldrb w19, [x7,8] - lsr w0, w1, 16 - lsr w7, w1, 8 - ldrb w2, [x2,7] - bne .L464 + ldr x2, [x4, 104] + add x3, x4, x1 + ldr x5, [x4, x1] + ldrb w1, [x4, 128] + and w7, w21, 255 + lsr w6, w21, 8 + cmp w1, 1 + ldrb w19, [x3, 8] + lsr w1, w21, 16 + ldrb w2, [x2, 7] + bne .L490 cmp w2, 1 - bne .L465 - sxtw x4, w19 + bne .L491 + sxtw x3, w19 mov w2, 38 - add x4, x4, 8 - add x4, x5, x4, lsl 8 - str w2, [x4,8] -.L465: - add x3, x3, :lo12:.LANCHOR0 + add x3, x3, 8 + add x3, x5, x3, lsl 8 + str w2, [x3, 8] +.L491: + add x0, x0, :lo12:.LANCHOR0 add x19, x5, x19, lsl 8 - str x1, [x29,72] - ldrb w2, [x3,120] - str w2, [x19,2056] - str wzr, [x19,2052] - str wzr, [x19,2052] - str w8, [x19,2052] - str w7, [x19,2052] - str w0, [x19,2052] - ldrb w0, [x3,121] - str w0, [x19,2056] - mov w0, w21 + add x0, x0, 112 + ldrb w2, [x0, 8] + str w2, [x19, 2056] + str wzr, [x19, 2052] + str wzr, [x19, 2052] + str w7, [x19, 2052] + str w6, [x19, 2052] + ldrb w0, [x0, 9] + str w1, [x19, 2052] + str w0, [x19, 2056] + mov w0, w22 bl NandcWaitFlashReady - str wzr, [x19,2056] - str wzr, [x19,2052] + str wzr, [x19, 2056] + str wzr, [x19, 2052] + str wzr, [x19, 2052] +.L495: + str w24, [x19, 2052] mov w0, 48 - str wzr, [x19,2052] - str w23, [x19,2052] - str w22, [x19,2052] - str w20, [x19,2052] - str w0, [x19,2056] - ldr x1, [x29,72] - b .L466 -.L464: - cmp w2, 1 - bne .L467 - sxtw x4, w19 - mov w2, 38 - add x4, x4, 8 - add x4, x5, x4, lsl 8 - str w2, [x4,8] -.L467: - add x3, x3, :lo12:.LANCHOR0 - add x19, x5, x19, lsl 8 - ldrb w2, [x3,120] - str w2, [x19,2056] - str w8, [x19,2052] - str w7, [x19,2052] - str w0, [x19,2052] - ldrb w0, [x3,121] - str w0, [x19,2056] - mov w0, 48 - str w23, [x19,2052] - str w22, [x19,2052] - str w20, [x19,2052] - str w0, [x19,2056] -.L466: - mov w0, w21 + str w23, [x19, 2052] + mov w1, w21 + str w20, [x19, 2052] + str w0, [x19, 2056] + mov w0, w22 bl FlashSetRandomizer - ldr x23, [sp,48] - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x29, x30, [sp], 80 + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x29, x30, [sp], 64 ret +.L490: + cmp w2, 1 + bne .L493 + sxtw x3, w19 + mov w2, 38 + add x3, x3, 8 + add x3, x5, x3, lsl 8 + str w2, [x3, 8] +.L493: + add x0, x0, :lo12:.LANCHOR0 + add x19, x5, x19, lsl 8 + add x0, x0, 112 + ldrb w2, [x0, 8] + str w2, [x19, 2056] + str w7, [x19, 2052] + str w6, [x19, 2052] + ldrb w0, [x0, 9] + str w1, [x19, 2052] + str w0, [x19, 2056] + b .L495 .size FlashReadDpCmd, .-FlashReadDpCmd .align 2 .global ftl_flash_de_init @@ -3225,48 +3166,48 @@ ftl_flash_de_init: stp x29, x30, [sp, -32]! mov w0, 0 add x29, sp, 0 - str x19, [sp,16] - adrp x19, .LANCHOR2 + str x19, [sp, 16] bl NandcWaitFlashReady bl FlashSetReadRetryDefault + adrp x19, .LANCHOR2 add x0, x19, :lo12:.LANCHOR2 - ldr w0, [x0,2100] - cbz w0, .L469 + ldr w0, [x0, 2100] + cbz w0, .L497 mov w0, 0 bl flash_enter_slc_mode - b .L470 -.L469: - bl flash_exit_slc_mode -.L470: +.L498: add x19, x19, :lo12:.LANCHOR2 - ldrb w0, [x19,2104] - cbz w0, .L471 - ldrb w0, [x19,2093] - tbz x0, 0, .L471 + ldrb w0, [x19, 2104] + cbz w0, .L499 + ldrb w0, [x19, 2093] + tbz x0, 0, .L499 mov w0, 1 bl FlashSetInterfaceMode mov w0, 1 bl NandcSetMode - strb wzr, [x19,2104] -.L471: - adrp x0, .LANCHOR0+24 - ldr x0, [x0,#:lo12:.LANCHOR0+24] - str wzr, [x0,336] + strb wzr, [x19, 2104] +.L499: + adrp x0, .LANCHOR0 + ldr x0, [x0, #:lo12:.LANCHOR0] + str wzr, [x0, 336] mov w0, 0 - ldr x19, [sp,16] + ldr x19, [sp, 16] ldp x29, x30, [sp], 32 ret +.L497: + mov w0, 0 + bl flash_exit_slc_mode + b .L498 .size ftl_flash_de_init, .-ftl_flash_de_init .align 2 .global NandcRandmzSel .type NandcRandmzSel, %function NandcRandmzSel: - adrp x2, .LANCHOR0 ubfiz x0, x0, 4, 8 + adrp x2, .LANCHOR0 add x2, x2, :lo12:.LANCHOR0 - add x2, x2, 24 - ldr x0, [x2,x0] - str w1, [x0,336] + ldr x0, [x2, x0] + str w1, [x0, 336] ret .size NandcRandmzSel, .-NandcRandmzSel .align 2 @@ -3275,73 +3216,77 @@ NandcRandmzSel: NandcTimeCfg: stp x29, x30, [sp, -32]! add x29, sp, 0 - str x19, [sp,16] + str x19, [sp, 16] mov w19, w0 mov w0, 0 bl rknand_get_clk_rate - mov w2, 16960 + mov w1, 16960 + movk w1, 0xf, lsl 16 + sdiv w0, w0, w1 adrp x1, .LANCHOR2 - movk w2, 0xf, lsl 16 add x1, x1, :lo12:.LANCHOR2 - sdiv w0, w0, w2 cmp w0, 250 - ble .L480 - ldr x0, [x1,1152] + ble .L509 + ldr x0, [x1, 1152] mov w1, 8354 - b .L487 -.L480: - cmp w0, 220 - ble .L482 - ldr x0, [x1,1152] - b .L488 -.L482: - cmp w0, 185 - ble .L483 - ldr x0, [x1,1152] - mov w1, 4226 - b .L487 -.L483: - cmp w0, 160 - ldr x0, [x1,1152] - ble .L484 - mov w1, 4194 - b .L487 -.L484: - cmp w19, 35 - mov w1, 4193 - bls .L487 - cmp w19, 99 - mov w1, 4225 - bls .L487 -.L488: - mov w1, 8322 -.L487: - str w1, [x0,4] - ldr x19, [sp,16] +.L517: + str w1, [x0, 4] + ldr x19, [sp, 16] ldp x29, x30, [sp], 32 ret +.L509: + cmp w0, 220 + ble .L511 + ldr x0, [x1, 1152] +.L518: + mov w1, 8322 + b .L517 +.L511: + cmp w0, 185 + ble .L512 + ldr x0, [x1, 1152] + mov w1, 4226 + b .L517 +.L512: + cmp w0, 160 + ldr x0, [x1, 1152] + ble .L513 + mov w1, 4194 + b .L517 +.L513: + cmp w19, 35 + bhi .L514 + mov w1, 4193 + b .L517 +.L514: + cmp w19, 99 + bhi .L518 + mov w1, 4225 + b .L517 .size NandcTimeCfg, .-NandcTimeCfg .align 2 .global FlashTimingCfg .type FlashTimingCfg, %function FlashTimingCfg: - sub w1, w0, #4096 - sub w1, w1, #97 stp x29, x30, [sp, -16]! - and w1, w1, -33 - cmp w1, 1 + mov w1, -4193 + add w2, w0, w1 + mov w3, -4225 add x29, sp, 0 - bls .L490 + add w1, w0, w3 + cmp w2, 1 + ccmp w1, 1, 0, hi + bls .L520 mov w1, 8322 cmp w0, w1 - bne .L491 -.L490: + bne .L521 +.L520: adrp x1, .LANCHOR2+1152 - ldr x1, [x1,#:lo12:.LANCHOR2+1152] - str w0, [x1,4] -.L491: + ldr x1, [x1, #:lo12:.LANCHOR2+1152] + str w0, [x1, 4] +.L521: adrp x0, .LANCHOR1+493 - ldrb w0, [x0,#:lo12:.LANCHOR1+493] + ldrb w0, [x0, #:lo12:.LANCHOR1+493] bl NandcTimeCfg ldp x29, x30, [sp], 16 ret @@ -3352,60 +3297,59 @@ FlashTimingCfg: NandcInit: stp x29, x30, [sp, -32]! adrp x2, .LANCHOR0 - add x2, x2, :lo12:.LANCHOR0 + add x1, x2, :lo12:.LANCHOR0 add x29, sp, 0 - add x1, x2, 24 - str x19, [sp,16] + str x19, [sp, 16] adrp x19, .LANCHOR2 - str wzr, [x2,32] - str x0, [x2,24] + str x0, [x2, #:lo12:.LANCHOR0] mov w2, 1 - str w2, [x1,24] + str w2, [x1, 24] mov w2, 2 - str w2, [x1,40] + str w2, [x1, 40] mov w2, 3 - str w2, [x1,56] + str w2, [x1, 56] add x2, x19, :lo12:.LANCHOR2 - str x0, [x1,16] - str x0, [x1,32] - str x0, [x1,48] - str x0, [x2,1152] + str wzr, [x1, 8] + str x0, [x1, 16] + str x0, [x1, 32] + str x0, [x1, 48] + str x0, [x2, 1152] ldr w1, [x0] ubfx x3, x1, 13, 1 - str w3, [x2,2108] - ldr w3, [x0,352] + str w3, [x2, 2108] + ldr w3, [x0, 352] and w1, w1, 245760 orr w1, w1, 256 ubfx x3, x3, 16, 4 - str w3, [x2,2112] - ldr w3, [x0,352] - str w3, [x2,2116] + str w3, [x2, 2112] + ldr w3, [x0, 352] + str w3, [x2, 2116] cmp w3, 2049 - bne .L493 + bne .L524 mov w3, 8 - str w3, [x2,2112] -.L493: + str w3, [x2, 2112] +.L524: add x19, x19, :lo12:.LANCHOR2 str w1, [x0] - ldr x0, [x19,1152] - str wzr, [x0,336] + ldr x0, [x19, 1152] + str wzr, [x0, 336] mov w0, 40 bl NandcTimeCfg - ldr x0, [x19,1152] + ldr x0, [x19, 1152] mov w1, 8322 - str w1, [x0,344] + str w1, [x0, 344] mov w1, 6145 movk w1, 0x18, lsl 16 - str w1, [x0,304] + str w1, [x0, 304] mov w0, 36864 - bl ftl_malloc - str wzr, [x19,2168] - str x0, [x19,2120] - str x0, [x19,2128] + bl ftl_dma32_malloc + str wzr, [x19, 2168] + str x0, [x19, 2120] + str x0, [x19, 2128] add x0, x0, 32768 - str wzr, [x19,2176] - str x0, [x19,2136] - ldr x19, [sp,16] + str wzr, [x19, 2176] + str x0, [x19, 2136] + ldr x19, [sp, 16] ldp x29, x30, [sp], 32 ret .size NandcInit, .-NandcInit @@ -3415,20 +3359,20 @@ NandcInit: NandcGetTimeCfg: adrp x4, .LANCHOR2 add x4, x4, :lo12:.LANCHOR2 - ldr x5, [x4,1152] - ldr w5, [x5,4] + ldr x5, [x4, 1152] + ldr w5, [x5, 4] str w5, [x0] - ldr x0, [x4,1152] + ldr x0, [x4, 1152] ldr w0, [x0] str w0, [x1] - ldr x0, [x4,1152] - ldr w0, [x0,304] + ldr x0, [x4, 1152] + ldr w0, [x0, 304] str w0, [x2] - ldr x1, [x4,1152] - ldr w0, [x1,308] - ldr w1, [x1,344] - and w0, w0, 255 - orr w0, w0, w1, lsl 16 + ldr x0, [x4, 1152] + ldr w1, [x0, 308] + ldr w0, [x0, 344] + and w1, w1, 255 + orr w0, w1, w0, lsl 16 str w0, [x3] ret .size NandcGetTimeCfg, .-NandcGetTimeCfg @@ -3437,32 +3381,32 @@ NandcGetTimeCfg: .type NandcBchSel, %function NandcBchSel: adrp x1, .LANCHOR2 - uxtb w0, w0 add x1, x1, :lo12:.LANCHOR2 + and w0, w0, 255 mov w3, 1 cmp w0, 16 - ldr x2, [x1,1152] - str w0, [x1,2180] + ldr x2, [x1, 1152] + str w0, [x1, 2180] mov w1, 4096 - str w3, [x2,8] - bne .L496 -.L499: + str w3, [x2, 8] + bne .L528 +.L531: and w1, w1, -17 - b .L497 -.L496: - cmp w0, 24 - bne .L498 - orr w1, w1, 16 - b .L497 -.L498: - cmp w0, 40 - orr w1, w1, 262144 - orr w1, w1, 16 - beq .L499 -.L497: +.L529: orr w1, w1, 1 - str w1, [x2,12] + str w1, [x2, 12] ret +.L528: + cmp w0, 24 + bne .L530 + orr w1, w1, 16 + b .L529 +.L530: + orr w1, w1, 262144 + cmp w0, 40 + orr w1, w1, 16 + bne .L529 + b .L531 .size NandcBchSel, .-NandcBchSel .align 2 .global FlashBchSel @@ -3470,9 +3414,9 @@ NandcBchSel: FlashBchSel: stp x29, x30, [sp, -16]! adrp x1, .LANCHOR2+1221 - uxtb w0, w0 + and w0, w0, 255 add x29, sp, 0 - strb w0, [x1,#:lo12:.LANCHOR2+1221] + strb w0, [x1, #:lo12:.LANCHOR2+1221] bl NandcBchSel ldp x29, x30, [sp], 16 ret @@ -3483,64 +3427,64 @@ FlashBchSel: ftl_flash_resume: stp x29, x30, [sp, -48]! add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] adrp x19, .LANCHOR2 - str x21, [sp,32] add x0, x19, :lo12:.LANCHOR2 + str x21, [sp, 32] adrp x21, IDByte - mov x20, 0 add x21, x21, :lo12:IDByte - ldr x1, [x0,1152] - ldr w2, [x0,1160] + mov x20, 0 + ldr x1, [x0, 1152] + ldr w2, [x0, 1160] str w2, [x1] - ldr w2, [x0,1164] - ldr x1, [x0,1152] - str w2, [x1,4] - ldr w2, [x0,1168] - ldr x1, [x0,1152] - str w2, [x1,8] - ldr w2, [x0,1172] - str w2, [x1,12] - ldr w2, [x0,1176] - str w2, [x1,304] - ldr w2, [x0,1180] - str w2, [x1,308] - ldr w2, [x0,1184] - str w2, [x1,336] - ldr w0, [x0,1188] - str w0, [x1,344] -.L506: + ldr w2, [x0, 1164] + ldr x1, [x0, 1152] + str w2, [x1, 4] + ldr w2, [x0, 1168] + ldr x1, [x0, 1152] + str w2, [x1, 8] + ldr w2, [x0, 1172] + str w2, [x1, 12] + ldr w2, [x0, 1176] + str w2, [x1, 304] + ldr w2, [x0, 1180] + str w2, [x1, 308] + ldr w2, [x0, 1184] + str w2, [x1, 336] + ldr w0, [x0, 1188] + str w0, [x1, 344] +.L539: lsl x0, x20, 3 - ldrb w0, [x0,x21] + ldrb w0, [x0, x21] sub w0, w0, #1 - uxtb w0, w0 + and w0, w0, 255 cmp w0, 253 - bhi .L505 + bhi .L538 mov w0, w20 bl FlashReset -.L505: +.L538: add x20, x20, 1 cmp x20, 4 - bne .L506 + bne .L539 add x19, x19, :lo12:.LANCHOR2 - ldrb w0, [x19,2104] - cbz w0, .L507 + ldrb w0, [x19, 2104] + cbz w0, .L540 mov w0, 1 bl NandcSetMode - ldrb w0, [x19,2093] + ldrb w0, [x19, 2093] bl FlashSetInterfaceMode - ldrb w0, [x19,2093] + ldrb w0, [x19, 2093] bl NandcSetMode - ldr w0, [x19,1176] + ldr w0, [x19, 1176] lsr w0, w0, 8 bl NandcSetDdrPara -.L507: +.L540: adrp x0, .LANCHOR0+104 - ldr x0, [x0,#:lo12:.LANCHOR0+104] - ldrb w0, [x0,20] + ldr x0, [x0, #:lo12:.LANCHOR0+104] + ldrb w0, [x0, 20] bl FlashBchSel - ldr x21, [sp,32] - ldp x19, x20, [sp,16] + ldr x21, [sp, 32] + ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 48 ret .size ftl_flash_resume, .-ftl_flash_resume @@ -3548,7 +3492,7 @@ ftl_flash_resume: .global ftl_nandc_get_irq_status .type ftl_nandc_get_irq_status, %function ftl_nandc_get_irq_status: - ldr w0, [x0,372] + ldr w0, [x0, 372] ret .size ftl_nandc_get_irq_status, .-ftl_nandc_get_irq_status .align 2 @@ -3562,23 +3506,19 @@ NandcIqrWaitFlashReady: .type NandcSendDumpDataStart, %function NandcSendDumpDataStart: sub sp, sp, #16 - mov w2, 1 - mov w1, 10 - bfi w1, w2, 5, 2 - ldr w2, [x0,16] - str w2, [sp,8] - orr w1, w1, 536870912 - orr w1, w1, 1024 - ldr w2, [sp,8] - orr w1, w1, 2097152 + ldr w2, [x0, 16] + mov w1, 1066 + movk w1, 0x2020, lsl 16 + str w2, [sp, 8] + ldr w2, [sp, 8] and w2, w2, -5 - str w2, [sp,8] - ldr w2, [sp,8] - add sp, sp, 16 - str w2, [x0,16] - str w1, [x0,8] + str w2, [sp, 8] + ldr w2, [sp, 8] + str w2, [x0, 16] + str w1, [x0, 8] orr w1, w1, 4 - str w1, [x0,8] + str w1, [x0, 8] + add sp, sp, 16 ret .size NandcSendDumpDataStart, .-NandcSendDumpDataStart .align 2 @@ -3586,11 +3526,11 @@ NandcSendDumpDataStart: .type NandcSendDumpDataDone, %function NandcSendDumpDataDone: sub sp, sp, #16 -.L516: - ldr w1, [x0,8] - str w1, [sp,8] - ldr w1, [sp,8] - tbz x1, 20, .L516 +.L551: + ldr w1, [x0, 8] + str w1, [sp, 8] + ldr w1, [sp, 8] + tbz x1, 20, .L551 add sp, sp, 16 ret .size NandcSendDumpDataDone, .-NandcSendDumpDataDone @@ -3599,694 +3539,698 @@ NandcSendDumpDataDone: .type NandcXferStart, %function NandcXferStart: stp x29, x30, [sp, -96]! - adrp x6, .LANCHOR0 ubfiz x0, x0, 4, 8 - add x6, x6, :lo12:.LANCHOR0 + ubfx x3, x3, 1, 7 add x29, sp, 0 - add x6, x6, 24 - stp x19, x20, [sp,16] - stp x23, x24, [sp,48] - stp x21, x22, [sp,32] - uxtb w23, w1 - add x1, x6, x0 - ldr x21, [x6,x0] - ubfiz w20, w23, 1, 1 + stp x23, x24, [sp, 48] + and w24, w1, 255 + adrp x1, .LANCHOR0 + add x1, x1, :lo12:.LANCHOR0 + stp x19, x20, [sp, 16] + add x6, x1, x0 + stp x21, x22, [sp, 32] + ubfiz w20, w24, 1, 1 + str x25, [sp, 64] orr w20, w20, 8 adrp x19, .LANCHOR2 - ldrb w0, [x1,8] + ldr x21, [x1, x0] mov w1, 16 - ldr w22, [x21,12] - ubfx x3, x3, 1, 7 - uxtb w2, w2 - bfi w22, w1, 8, 8 - and w22, w22, -9 - bfi w22, w0, 5, 3 + ldrb w0, [x6, 8] + ldr w23, [x21, 12] + bfi w23, w1, 8, 8 + and w23, w23, -9 + bfi w23, w0, 5, 3 mov w0, 1 bfi w20, w0, 5, 2 add x0, x19, :lo12:.LANCHOR2 orr w20, w20, 536870912 orr w20, w20, 1024 - ldr w0, [x0,2112] + ldr w1, [x0, 2112] bfi w20, w3, 4, 1 - cmp w0, 3 - bls .L520 - ldr w0, [x21,16] - cmp x5, xzr - str w0, [x29,88] - cset w9, ne - ldr w0, [x29,88] - and w0, w0, -5 - str w0, [x29,88] - cbnz w9, .L534 - cbz x4, .L521 -.L534: - cbnz w23, .L523 -.L531: + cmp w1, 3 + bls .L556 + ldr w1, [x21, 16] + cmp x5, 0 + str w1, [x29, 88] + ccmp x4, 0, 0, eq + ldr w1, [x29, 88] + and w1, w1, -5 + str w1, [x29, 88] + beq .L557 + and w2, w2, 255 + cbnz w24, .L558 +.L566: add w2, w2, 1 - mov x0, x4 asr w2, w2, 1 bfi w20, w2, 22, 6 - cbnz x4, .L525 - add x0, x19, :lo12:.LANCHOR2 - ldr x0, [x0,2128] - b .L525 -.L523: - add x1, x19, :lo12:.LANCHOR2 - mov w7, 128 - mov w3, 0 - lsr w10, w2, 1 - mov w6, w3 - mov w11, -1 - ldr w0, [x1,2180] - cmp w0, 25 - mov w0, 64 - csel w7, w0, w7, cc -.L527: - cmp w6, w10 - bcs .L531 - lsr w0, w3, 2 - ubfiz x0, x0, 2, 30 - cbz w9, .L528 - ldrh w8, [x5,2] - ldr x12, [x1,2136] - ldrh w13, [x5],4 - orr w8, w13, w8, lsl 16 - str w8, [x12,x0] - b .L529 -.L528: - ldr x8, [x1,2136] - str w11, [x8,x0] -.L529: - add w6, w6, 1 - add w3, w3, w7 - b .L527 -.L525: + cbz x4, .L559 + mov x0, x4 +.L560: add x19, x19, :lo12:.LANCHOR2 - ubfx x24, x20, 22, 5 - mov w2, w23 - str x4, [x29,72] - ldr x1, [x19,2136] - str x1, [x19,2152] - lsl w1, w24, 10 - str x0, [x19,2144] + ubfx x25, x20, 22, 5 + mov x22, x4 + mov w2, w24 + ldr x1, [x19, 2136] + str x1, [x19, 2152] + lsl w1, w25, 10 + str x0, [x19, 2144] bl rknand_dma_map_single - str w0, [x19,2160] - ldr x0, [x19,2152] - lsl w1, w24, 7 - mov w2, w23 + str w0, [x19, 2160] + lsl w1, w25, 7 + ldr x0, [x19, 2152] + mov w2, w24 bl rknand_dma_map_single - str w0, [x19,2164] + str w0, [x19, 2164] mov w0, 1 - str w0, [x19,2168] - ldr w0, [x19,2160] + str w0, [x19, 2168] + ldr w0, [x19, 2160] mov w1, 16 - str w0, [x21,20] - ldr x4, [x29,72] - ldr w0, [x19,2164] - str w0, [x21,24] - and x4, x4, 3 - str wzr, [x29,88] - ldr w0, [x29,88] + str w0, [x21, 20] + tst x22, 3 + ldr w0, [x19, 2164] + str w0, [x21, 24] + str wzr, [x29, 88] + ldr w0, [x29, 88] bfi w0, w1, 9, 5 - str w0, [x29,88] - ldr w0, [x29,88] + str w0, [x29, 88] + ldr w0, [x29, 88] orr w0, w0, 448 - str w0, [x29,88] - cbnz x4, .L532 - ldr w0, [x29,88] + str w0, [x29, 88] + bne .L567 + ldr w0, [x29, 88] mov w1, 2 bfi w0, w1, 3, 3 - str w0, [x29,88] -.L532: - ldr w0, [x29,88] - cmp w23, wzr + str w0, [x29, 88] +.L567: + ldr w0, [x29, 88] + cmp w24, 0 cset w1, eq orr w0, w0, 4 - str w0, [x29,88] - ldr w0, [x29,88] + str w0, [x29, 88] + ldr w0, [x29, 88] bfi w0, w1, 1, 1 - str w0, [x29,88] - ldr w0, [x29,88] + str w0, [x29, 88] + ldr w0, [x29, 88] orr w0, w0, 1 - str w0, [x29,88] -.L521: - ldr w0, [x29,88] - str w0, [x21,16] -.L520: - str w22, [x21,12] - str w20, [x21,8] + str w0, [x29, 88] +.L557: + ldr w0, [x29, 88] + str w0, [x21, 16] +.L556: + str w23, [x21, 12] + str w20, [x21, 8] orr w20, w20, 4 - str w20, [x21,8] - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] + str w20, [x21, 8] + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldr x25, [sp, 64] ldp x29, x30, [sp], 96 ret +.L558: + ldr w1, [x0, 2180] + mov w6, 64 + lsr w9, w2, 1 + mov x8, x5 + cmp w1, 25 + mov w1, 128 + csel w6, w6, w1, cc + mov w7, 0 + mov w3, 0 + mov w10, -1 +.L562: + cmp w3, w9 + bcs .L566 + lsr w1, w7, 2 + cbz x5, .L563 + ldr x11, [x0, 2136] + lsl w1, w1, 2 + ldr w12, [x8], 4 + str w12, [x11, x1] +.L564: + add w3, w3, 1 + add w7, w7, w6 + b .L562 +.L563: + ldr x11, [x0, 2136] + lsl w1, w1, 2 + str w10, [x11, x1] + b .L564 +.L559: + add x0, x19, :lo12:.LANCHOR2 + ldr x0, [x0, 2128] + b .L560 .size NandcXferStart, .-NandcXferStart .align 2 .global NandcXferComp .type NandcXferComp, %function NandcXferComp: stp x29, x30, [sp, -80]! - adrp x1, .LANCHOR0 ubfiz x0, x0, 4, 8 + adrp x1, .LANCHOR0 add x1, x1, :lo12:.LANCHOR0 add x29, sp, 0 - add x1, x1, 24 - stp x19, x20, [sp,16] - stp x21, x22, [sp,32] - str x23, [sp,48] + stp x19, x20, [sp, 16] adrp x20, .LANCHOR2 - ldr x19, [x1,x0] + stp x21, x22, [sp, 32] + stp x23, x24, [sp, 48] + ldr x19, [x1, x0] add x0, x20, :lo12:.LANCHOR2 - ldr w0, [x0,2112] - cmp w0, 3 - bls .L569 - ldr w0, [x19,16] - tbz x0, 2, .L569 - ldr w21, [x19,16] - ldr w0, [x19,8] - ubfx x21, x21, 1, 1 - str w0, [x29,64] - cbz w21, .L540 + ldr w1, [x0, 2112] + cmp w1, 3 + bls .L604 + ldr w1, [x19, 16] + tbz x1, 2, .L604 + ldr w1, [x19, 16] + tbz x1, 1, .L575 adrp x22, .LC4 adrp x23, .LC5 - mov w21, 0 + ldr w1, [x19, 8] + mov x24, x0 add x22, x22, :lo12:.LC4 add x23, x23, :lo12:.LC5 -.L541: - ldr w2, [x19,28] - ldr w1, [x29,64] - ubfx x2, x2, 16, 5 - ubfx x1, x1, 22, 6 - cmp w2, w1 - bge .L549 - add x0, x20, :lo12:.LANCHOR2 - ldr w0, [x0,2112] + mov w21, 0 + str w1, [x29, 64] +.L576: + ldr w1, [x19, 28] + ldr w0, [x29, 64] + ubfx x1, x1, 16, 5 + ubfx x0, x0, 22, 6 + cmp w1, w0 + bge .L584 + ldr w0, [x24, 2112] cmp w0, 5 - bhi .L542 -.L545: + bhi .L577 +.L580: add w21, w21, 1 - and w0, w21, 16777215 - cbnz w0, .L544 - ldr w2, [x19,28] + tst x21, 16777215 + bne .L579 + ldr w2, [x19, 28] mov w1, w21 - ldr w3, [x29,64] + ldr w3, [x29, 64] mov x0, x22 ubfx x2, x2, 16, 5 ubfx x3, x3, 22, 6 bl printk - mov x0, x23 - mov x1, x19 - mov w2, 4 mov w3, 512 + mov w2, 4 + mov x1, x19 + mov x0, x23 bl rknand_print_hex - b .L544 -.L542: +.L579: + mov x1, 5 + mov x0, 1 + bl usleep_range + b .L576 +.L577: ldr w0, [x19] - str w0, [x29,72] - ldr w0, [x29,72] - tbz x0, 13, .L545 - ldr w0, [x29,72] - tbz x0, 17, .L545 -.L549: + str w0, [x29, 72] + ldr w0, [x29, 72] + tbz x0, 13, .L580 + ldr w0, [x29, 72] + tbz x0, 17, .L580 +.L584: add x19, x20, :lo12:.LANCHOR2 add x19, x19, 2128 - ldr w0, [x19,40] - cbz w0, .L550 - ldr w1, [x29,64] + ldr w0, [x19, 40] + cbz w0, .L585 + ldr w0, [x19, 32] mov w2, 0 - ldr w0, [x19,32] + ldr w1, [x29, 64] ubfx x1, x1, 22, 5 lsl w1, w1, 10 bl rknand_dma_unmap_single - ldr w1, [x29,64] + ldr w1, [x29, 64] mov w2, 0 - ldr w0, [x19,36] + ldr w0, [x19, 36] ubfx x1, x1, 22, 5 lsl w1, w1, 7 bl rknand_dma_unmap_single - b .L550 -.L544: - mov x0, 1 - mov x1, 5 - bl usleep_range - b .L541 -.L540: +.L585: + add x20, x20, :lo12:.LANCHOR2 + str wzr, [x20, 2168] +.L573: + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x29, x30, [sp], 80 + ret +.L575: adrp x22, .LC6 adrp x23, .LC5 + ldr w0, [x19, 8] add x22, x22, :lo12:.LC6 add x23, x23, :lo12:.LC5 -.L551: - ldr w0, [x29,64] - tbnz x0, 20, .L577 - ldr w0, [x19,8] + mov w21, 0 + str w0, [x29, 64] +.L586: + ldr w0, [x29, 64] + tbz x0, 20, .L588 + add x0, x20, :lo12:.LANCHOR2 + ldr w0, [x0, 2176] + cbz w0, .L589 + mov x0, x19 + bl NandcSendDumpDataStart +.L589: + add x21, x20, :lo12:.LANCHOR2 + add x21, x21, 2128 + ldr w0, [x21, 40] + cbz w0, .L590 + ldr w0, [x21, 32] + mov w2, 1 + ldr w1, [x29, 64] + ubfx x1, x1, 22, 5 + lsl w1, w1, 10 + bl rknand_dma_unmap_single + ldr w1, [x29, 64] + mov w2, 1 + ldr w0, [x21, 36] + ubfx x1, x1, 22, 5 + lsl w1, w1, 7 + bl rknand_dma_unmap_single +.L590: + add x0, x20, :lo12:.LANCHOR2 + ldr w0, [x0, 2176] + cbz w0, .L585 + mov x0, x19 + bl NandcSendDumpDataDone + b .L585 +.L588: + ldr w0, [x19, 8] add w21, w21, 1 - str w0, [x29,64] - and w0, w21, 16777215 - cbnz w0, .L552 - ldr w2, [x29,64] + str w0, [x29, 64] + tst x21, 16777215 + bne .L587 + ldr w2, [x29, 64] mov w1, w21 - ldr w3, [x19,28] + ldr w3, [x19, 28] mov x0, x22 ubfx x3, x3, 16, 5 bl printk - mov x0, x23 - mov x1, x19 - mov w2, 4 mov w3, 512 + mov w2, 4 + mov x1, x19 + mov x0, x23 bl rknand_print_hex -.L552: - mov x0, 1 +.L587: mov x1, 5 + mov x0, 1 bl usleep_range - b .L551 -.L577: - add x0, x20, :lo12:.LANCHOR2 - ldr w0, [x0,2176] - cbz w0, .L554 - mov x0, x19 - bl NandcSendDumpDataStart -.L554: - add x21, x20, :lo12:.LANCHOR2 - add x21, x21, 2128 - ldr w0, [x21,40] - cbz w0, .L555 - ldr w1, [x29,64] - mov w2, 1 - ldr w0, [x21,32] - ubfx x1, x1, 22, 5 - lsl w1, w1, 10 - bl rknand_dma_unmap_single - ldr w1, [x29,64] - mov w2, 1 - ldr w0, [x21,36] - ubfx x1, x1, 22, 5 - lsl w1, w1, 7 - bl rknand_dma_unmap_single -.L555: - add x0, x20, :lo12:.LANCHOR2 - ldr w0, [x0,2176] - cbz w0, .L550 - mov x0, x19 - bl NandcSendDumpDataDone -.L550: - add x20, x20, :lo12:.LANCHOR2 - str wzr, [x20,2168] - b .L538 -.L569: - ldr w0, [x19,8] - str w0, [x29,64] - ldr w0, [x29,64] - tbz x0, 20, .L569 -.L538: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldr x23, [sp,48] - ldp x29, x30, [sp], 80 - ret + b .L586 +.L604: + ldr w0, [x19, 8] + str w0, [x29, 64] + ldr w0, [x29, 64] + tbz x0, 20, .L604 + b .L573 .size NandcXferComp, .-NandcXferComp .align 2 .global NandcCopy1KB .type NandcCopy1KB, %function NandcCopy1KB: stp x29, x30, [sp, -48]! - uxtb w1, w1 - add x29, sp, 0 - stp x19, x20, [sp,16] - str x21, [sp,32] - uxtb w19, w2 + and w1, w1, 255 cmp w1, 1 - mov x20, x4 - ubfiz x2, x19, 9, 8 - add x4, x0, 4096 + add x29, sp, 0 + stp x19, x20, [sp, 16] + and w19, w2, 255 + str x21, [sp, 32] + add x2, x0, 4096 add x21, x0, 512 - add x2, x4, x2 - bne .L579 - cbz x3, .L580 - mov x0, x2 + ubfiz x0, x19, 9, 8 + mov x20, x4 + add x0, x2, x0 + bne .L614 + cbz x3, .L615 + mov w2, 1024 mov x1, x3 - mov w2, 1024 bl ftl_memcpy -.L580: - cbz x20, .L578 - mov w0, 48 +.L615: + cbz x20, .L613 lsr w19, w19, 1 - ldrb w1, [x20,1] - mul w19, w19, w0 - ldrb w0, [x20,2] - asr w19, w19, 2 - lsl w0, w0, 16 - orr w0, w0, w1, lsl 8 - ldrb w1, [x20] - orr w0, w0, w1 - ldrb w1, [x20,3] - orr w0, w0, w1, lsl 24 - str w0, [x21,w19,sxtw 2] - b .L578 -.L579: - cbz x3, .L583 - mov x1, x2 - mov x0, x3 - mov w2, 1024 - bl ftl_memcpy -.L583: - cbz x20, .L578 - mov w0, 48 - lsr w19, w19, 1 - mul w19, w19, w0 - asr w19, w19, 2 - ldr w0, [x21,w19,sxtw 2] - strb w0, [x20] - lsr w1, w0, 8 - strb w1, [x20,1] - lsr w1, w0, 16 - lsr w0, w0, 24 - strb w1, [x20,2] - strb w0, [x20,3] -.L578: - ldp x19, x20, [sp,16] - ldr x21, [sp,32] + mov w1, 48 + ldr w0, [x20] + mul w19, w19, w1 + and x19, x19, 8176 + str w0, [x21, x19] +.L613: + ldp x19, x20, [sp, 16] + ldr x21, [sp, 32] ldp x29, x30, [sp], 48 ret +.L614: + cbz x3, .L618 + mov x1, x0 + mov w2, 1024 + mov x0, x3 + bl ftl_memcpy +.L618: + cbz x20, .L613 + lsr w19, w19, 1 + mov w0, 48 + mul w19, w19, w0 + and x19, x19, 8176 + ldr w0, [x21, x19] + strb w0, [x20] + lsr w1, w0, 8 + strb w1, [x20, 1] + lsr w1, w0, 16 + lsr w0, w0, 24 + strb w1, [x20, 2] + strb w0, [x20, 3] + b .L613 .size NandcCopy1KB, .-NandcCopy1KB .align 2 .global NandcXferData .type NandcXferData, %function NandcXferData: - stp x29, x30, [sp, -176]! + stp x29, x30, [sp, -192]! + tst x3, 63 add x29, sp, 0 - stp x23, x24, [sp,48] - stp x19, x20, [sp,16] - stp x21, x22, [sp,32] - stp x25, x26, [sp,64] - uxtb w24, w0 + stp x25, x26, [sp, 64] + and w25, w0, 255 + stp x19, x20, [sp, 16] adrp x0, .LANCHOR0 - stp x27, x28, [sp,80] + and w20, w1, 255 add x0, x0, :lo12:.LANCHOR0 - add x0, x0, w24, sxtw 4 - ldr x19, [x0,24] - and x0, x3, 63 - uxtb w20, w1 - uxtb w23, w2 - mov x25, x3 + sbfiz x1, x25, 4, 32 + stp x21, x22, [sp, 32] + stp x23, x24, [sp, 48] + mov x26, x3 + stp x27, x28, [sp, 80] + and w24, w2, 255 mov x21, x4 - cbnz x0, .L595 - cbnz x4, .L596 - add x0, x29, 112 - mov w1, 255 + ldr x19, [x0, x1] + bne .L631 + cbnz x4, .L632 + add x21, x29, 128 mov w2, 64 - add x21, x29, 112 + mov w1, 255 + add x0, x29, 128 bl ftl_memset -.L596: - mov w0, w24 - mov w1, w20 - mov w2, w23 - mov w3, 0 - mov x4, x25 +.L632: mov x5, x21 - mov w22, 0 - bl NandcXferStart - mov w0, w24 + mov x4, x26 + mov w2, w24 + mov w3, 0 mov w1, w20 + mov w0, w25 + bl NandcXferStart + mov w1, w20 + mov w0, w25 bl NandcXferComp - cbnz w20, .L597 + cbnz w20, .L656 adrp x0, .LANCHOR2 - ubfx x3, x23, 1, 7 add x2, x0, :lo12:.LANCHOR2 - mov w4, 128 + ubfx x3, x24, 1, 7 + mov w4, 64 add x3, x21, x3, lsl 2 - ldr w1, [x2,2180] + ldr w1, [x2, 2180] cmp w1, 25 - mov w1, 64 - csel w4, w1, w4, cc - mov w1, w20 -.L599: + mov w1, 128 + csel w4, w4, w1, cc + mov w1, 0 +.L635: + add w5, w4, w1 cmp x21, x3 - add w5, w1, w4 - beq .L641 - ldr x6, [x2,2136] - and x1, x1, 4294967292 - add x21, x21, 4 - ldr w1, [x6,x1] - strb w1, [x21,-4] - lsr w6, w1, 8 - strb w6, [x21,-3] - lsr w6, w1, 16 - strb w6, [x21,-2] - lsr w1, w1, 24 - strb w1, [x21,-1] - mov w1, w5 - b .L599 -.L641: + bne .L636 add x0, x0, :lo12:.LANCHOR2 - lsr w23, w23, 2 - ldr w4, [x0,2180] - ldr w5, [x0,2112] - mov w0, 0 - mov w22, w0 -.L601: - cmp w0, w23 - bcs .L597 - cbz w4, .L597 - uxtw x1, w0 - add x1, x1, 8 - ldr w1, [x19,x1,lsl 2] - str w1, [x29,104] - ldr w1, [x29,104] - tbnz x1, 2, .L625 - ldr w3, [x29,104] - ubfx x3, x3, 15, 1 - cbnz w3, .L625 - cmp w5, 5 - bls .L603 - ldr w2, [x29,104] - ubfx x6, x2, 3, 5 - ldr w2, [x29,104] - ldr w1, [x29,104] - ubfx x2, x2, 27, 1 - ubfx x3, x1, 16, 5 - ldr w1, [x29,104] - orr w2, w6, w2, lsl 5 - ubfx x1, x1, 29, 1 - orr w1, w3, w1, lsl 5 - ldr w3, [x29,104] - cmp w2, w1 - bls .L604 - ldr w1, [x29,104] - ubfx x3, x3, 3, 5 - ubfx x1, x1, 27, 1 - orr w3, w3, w1, lsl 5 - b .L605 -.L604: - ubfx x1, x3, 16, 5 - ldr w3, [x29,104] - ubfx x3, x3, 29, 1 - b .L640 -.L603: - cmp w5, 3 - bls .L605 - ldr w2, [x29,104] - ubfx x6, x2, 3, 5 - ldr w2, [x29,104] - ldr w1, [x29,104] - ubfx x2, x2, 28, 1 - ubfx x3, x1, 16, 5 - ldr w1, [x29,104] - orr w2, w6, w2, lsl 5 - ubfx x1, x1, 30, 1 - orr w1, w3, w1, lsl 5 - ldr w3, [x29,104] - cmp w2, w1 - bls .L606 - ubfx x1, x3, 3, 5 - ldr w3, [x29,104] - ubfx x3, x3, 28, 1 - b .L640 -.L606: - ubfx x1, x3, 16, 5 - ldr w3, [x29,104] - ubfx x3, x3, 30, 1 -.L640: - orr w3, w1, w3, lsl 5 -.L605: - cmp w22, w3 - csel w22, w22, w3, cs - b .L602 -.L625: - mov w22, -1 -.L602: - add w0, w0, 1 - b .L601 -.L597: - str wzr, [x19,16] - b .L608 -.L595: - cmp w20, 1 - bne .L639 + lsr w24, w24, 2 + mov w2, 0 mov w22, 0 - mov w27, 2 -.L609: - cmp w22, w23 - bcs .L642 - and w26, w22, 3 - mov x3, x25 - cbz x25, .L611 - ubfiz x0, x22, 9, 23 - add x3, x25, x0 -.L611: - cmp x21, xzr - mov x0, x19 - csel w4, w27, wzr, ne - mov w1, 1 - mov w2, w26 - mul w4, w4, w22 - add w22, w22, 2 - add x4, x21, x4 - bl NandcCopy1KB - mov x4, 0 - mov w0, w24 - mov w1, 1 - mov w2, 2 - mov w3, w26 - mov x5, x4 - bl NandcXferStart - mov w0, w24 - mov w1, 1 - bl NandcXferComp - b .L609 -.L642: - mov w22, 0 - b .L608 -.L639: - mov w1, 0 - mov x4, 0 - mov w26, 0 - mov w0, w24 - mov w2, 2 - mov w3, w1 - mov x5, x4 - mov w22, w26 - mov w27, 2 - bl NandcXferStart -.L614: - cmp w26, w23 - bcs .L608 - mov w0, w24 - mov w1, w20 - add w28, w26, 2 - bl NandcXferComp - ldr w0, [x19,32] - cmp w28, w23 - str w0, [x29,104] - bcs .L615 - mov x4, 0 - mov w0, w24 - mov w1, 0 - mov w2, 2 - and w3, w28, 3 - mov x5, x4 - bl NandcXferStart -.L615: - ldr w0, [x29,104] - tbnz x0, 2, .L630 - ldr w0, [x29,104] - ubfx x1, x0, 3, 5 - ldr w0, [x29,104] - ubfx x0, x0, 27, 1 - orr w0, w1, w0, lsl 5 - cmp w22, w0 - csel w22, w22, w0, cs - b .L616 -.L630: - mov w22, -1 -.L616: - and w2, w26, 3 - mov x3, x25 - cbz x25, .L617 - ubfiz x3, x26, 9, 23 - add x3, x25, x3 -.L617: - cmp x21, xzr - mov x0, x19 - csel w4, w27, wzr, ne - mov w1, 0 - mul w4, w4, w26 - mov w26, w28 - add x4, x21, x4 - bl NandcCopy1KB - b .L614 -.L608: - cbnz w20, .L620 + ldr w4, [x0, 2112] + ldr w3, [x0, 2180] +.L637: + cmp w2, w24 + bcs .L633 + cbnz w3, .L643 +.L633: + str wzr, [x19, 16] +.L644: adrp x0, .LANCHOR2+2112 - ldr w0, [x0,#:lo12:.LANCHOR2+2112] + ldr w0, [x0, #:lo12:.LANCHOR2+2112] cmp w0, 5 - bls .L620 + bls .L630 + cbnz w20, .L630 ldr w0, [x19] mov w1, 8192 movk w1, 0x2, lsl 16 and w1, w0, w1 cmp w1, 139264 - bne .L620 + bne .L630 orr w0, w0, 131072 mov w22, -1 str w0, [x19] -.L620: +.L630: mov w0, w22 - 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 x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] + ldp x27, x28, [sp, 80] + ldp x29, x30, [sp], 192 ret +.L636: + ldr x6, [x2, 2136] + and x1, x1, 4294967292 + add x21, x21, 4 + ldr w1, [x6, x1] + strb w1, [x21, -4] + lsr w6, w1, 8 + strb w6, [x21, -3] + lsr w6, w1, 16 + strb w6, [x21, -2] + lsr w1, w1, 24 + strb w1, [x21, -1] + mov w1, w5 + b .L635 +.L643: + uxtw x0, w2 + add x0, x0, 8 + ldr w0, [x19, x0, lsl 2] + str w0, [x29, 120] + ldr w0, [x29, 120] + tbnz x0, 2, .L659 + ldr w0, [x29, 120] + tbnz x0, 15, .L659 + cmp w4, 5 + bls .L639 + ldr w1, [x29, 120] + ubfx x6, x1, 3, 5 + ldr w1, [x29, 120] + ldr w0, [x29, 120] + ubfx x1, x1, 27, 1 + ubfx x5, x0, 16, 5 + ldr w0, [x29, 120] + orr w1, w6, w1, lsl 5 + ubfx x0, x0, 29, 1 + orr w0, w5, w0, lsl 5 + cmp w1, w0 + ldr w0, [x29, 120] + bls .L640 + ubfx x1, x0, 3, 5 + ldr w0, [x29, 120] + ubfx x0, x0, 27, 1 +.L665: + orr w0, w1, w0, lsl 5 +.L641: + cmp w22, w0 + csel w22, w22, w0, cs +.L638: + add w2, w2, 1 + b .L637 +.L640: + ubfx x1, x0, 16, 5 + ldr w0, [x29, 120] + ubfx x0, x0, 29, 1 + b .L665 +.L639: + cmp w4, 3 + bls .L660 + ldr w1, [x29, 120] + ubfx x6, x1, 3, 5 + ldr w1, [x29, 120] + ldr w0, [x29, 120] + ubfx x1, x1, 28, 1 + ubfx x5, x0, 16, 5 + ldr w0, [x29, 120] + orr w1, w6, w1, lsl 5 + ubfx x0, x0, 30, 1 + orr w0, w5, w0, lsl 5 + cmp w1, w0 + ldr w0, [x29, 120] + bls .L642 + ubfx x1, x0, 3, 5 + ldr w0, [x29, 120] + ubfx x0, x0, 28, 1 + b .L665 +.L642: + ubfx x1, x0, 16, 5 + ldr w0, [x29, 120] + ubfx x0, x0, 30, 1 + b .L665 +.L660: + mov w0, 0 + b .L641 +.L659: + mov w22, -1 + b .L638 +.L656: + mov w22, 0 + b .L633 +.L631: + cmp w20, 1 + bne .L645 + cmp x4, 0 + mov w23, 2 + csel w23, w23, wzr, ne + mov w27, 0 + lsl w23, w23, 1 + mov w22, 0 +.L646: + cmp w22, w24 + bcc .L648 + mov w22, 0 + b .L644 +.L648: + and w28, w22, 3 + cbz x26, .L661 + lsl w3, w22, 9 + add x3, x26, x3 +.L647: + add x4, x21, w27, uxtw + mov w2, w28 + mov w1, 1 + mov x0, x19 + bl NandcCopy1KB + add w22, w22, 2 + mov w3, w28 + mov x5, 0 + mov x4, 0 + mov w2, 2 + mov w1, 1 + mov w0, w25 + bl NandcXferStart + add w27, w27, w23 + mov w1, 1 + mov w0, w25 + bl NandcXferComp + b .L646 +.L661: + mov x3, 0 + b .L647 +.L645: + mov w0, w25 + mov x5, 0 + mov x4, 0 + mov w3, 0 + mov w2, 2 + mov w1, 0 + bl NandcXferStart + mov w27, 2 + cmp x21, 0 + mov w28, 0 + csel w27, w27, wzr, ne + mov w23, 0 + lsl w0, w27, 1 + mov w22, 0 + str w0, [x29, 108] +.L649: + cmp w24, w23 + bls .L644 + mov w0, w25 + mov w1, w20 + bl NandcXferComp + add w27, w23, 2 + ldr w0, [x19, 32] + cmp w24, w27 + str w0, [x29, 120] + bls .L650 + mov x5, 0 + mov x4, 0 + and w3, w27, 3 + mov w2, 2 + mov w1, 0 + mov w0, w25 + bl NandcXferStart +.L650: + ldr w0, [x29, 120] + tbnz x0, 2, .L662 + ldr w0, [x29, 120] + ubfx x1, x0, 3, 5 + ldr w0, [x29, 120] + ubfx x0, x0, 27, 1 + orr w0, w1, w0, lsl 5 + cmp w22, w0 + csel w22, w22, w0, cs +.L651: + and w2, w23, 3 + cbz x26, .L663 + lsl w3, w23, 9 + add x3, x26, x3 +.L652: + add x4, x21, w28, uxtw + mov x0, x19 + mov w1, 0 + bl NandcCopy1KB + ldr w0, [x29, 108] + mov w23, w27 + add w28, w28, w0 + b .L649 +.L662: + mov w22, -1 + b .L651 +.L663: + mov x3, 0 + b .L652 .size NandcXferData, .-NandcXferData .align 2 .global FlashReadRawPage .type FlashReadRawPage, %function FlashReadRawPage: stp x29, x30, [sp, -64]! - mov x4, x3 add x29, sp, 0 - stp x19, x20, [sp,16] - uxtb w19, w0 - adrp x0, .LANCHOR1+481 - str x21, [sp,32] - mov x21, x2 - ldrb w20, [x0,#:lo12:.LANCHOR1+481] - cbnz w19, .L644 + stp x19, x20, [sp, 16] + ands w19, w0, 255 + stp x21, x22, [sp, 32] + mov w21, w1 + str x23, [sp, 48] + adrp x1, .LANCHOR1+481 + mov x22, x2 + mov x23, x3 + ldrb w20, [x1, #:lo12:.LANCHOR1+481] + bne .L667 adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 - ldrb w5, [x0,89] - ldr w0, [x0,92] + ldrb w5, [x0, 89] + ldr w0, [x0, 92] mul w0, w5, w0 - cmp w1, w0 + cmp w0, w21 mov w0, 4 - csel w20, w20, w0, cs -.L644: + csel w20, w20, w0, ls +.L667: mov w0, w19 - str x4, [x29,48] - str x1, [x29,56] bl NandcWaitFlashReady mov w0, w19 bl NandcFlashCs - ldr x1, [x29,56] + mov w1, w21 mov w0, w19 bl FlashReadCmd mov w0, w19 bl NandcWaitFlashReady - ldr x4, [x29,48] mov w2, w20 - mov x3, x21 + mov x4, x23 + mov x3, x22 mov w1, 0 mov w0, w19 bl NandcXferData - mov w20, w0 + mov w2, w0 mov w0, w19 bl NandcFlashDeCs - ldr x21, [sp,32] - mov w0, w20 - ldp x19, x20, [sp,16] + mov w0, w2 + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldr x23, [sp, 48] ldp x29, x30, [sp], 64 ret .size FlashReadRawPage, .-FlashReadRawPage @@ -4294,163 +4238,162 @@ FlashReadRawPage: .global FlashDdrTunningRead .type FlashDdrTunningRead, %function FlashDdrTunningRead: - stp x29, x30, [sp, -128]! + stp x29, x30, [sp, -112]! add x29, sp, 0 - stp x23, x24, [sp,48] - uxtb w24, w0 - adrp x0, .LANCHOR2 - stp x19, x20, [sp,16] - add x20, x0, :lo12:.LANCHOR2 - mov x19, x0 - stp x21, x22, [sp,32] - stp x25, x26, [sp,64] - stp x27, x28, [sp,80] - mov w26, w1 - mov w0, 12 - ldr x1, [x20,1152] + stp x21, x22, [sp, 32] mov w22, 6 - mov x25, x2 - mov x23, x3 + stp x23, x24, [sp, 48] + and w23, w0, 255 + adrp x0, .LANCHOR2 + add x21, x0, :lo12:.LANCHOR2 + stp x25, x26, [sp, 64] + mov w26, w1 + stp x19, x20, [sp, 16] + mov x24, x2 + stp x27, x28, [sp, 80] + mov x19, x0 + mov x25, x3 + mov w0, 12 + ldr x1, [x21, 1152] mov w27, w4 - mov w21, 1024 - ldr w1, [x1,304] - str w1, [x29,124] - ldr w1, [x20,2112] + ldr w1, [x1, 304] + str w1, [x29, 108] + ldr w1, [x21, 2112] cmp w1, 8 csel w22, w22, w0, cc - cbz w4, .L647 + cbz w4, .L683 mov w0, 1 bl FlashSetInterfaceMode mov w0, 1 bl NandcSetMode - mov w0, w24 + mov w0, w23 bl FlashReset + mov x3, x25 + mov x2, x24 mov w1, w26 - mov x2, x25 - mov x3, x23 - mov w0, w24 + mov w0, w23 bl FlashReadRawPage - mov w21, w0 - ldrb w0, [x20,2093] + mov w20, w0 + ldrb w0, [x21, 2093] bl FlashSetInterfaceMode - ldrb w0, [x20,2093] + ldrb w0, [x21, 2093] bl NandcSetMode - cmn w21, #1 - bne .L648 -.L657: - mov w21, -1 - b .L649 -.L648: - adrp x0, .LC7 + cmn w20, #1 + bne .L672 +.L681: + mov w20, -1 +.L669: + mov w0, w20 + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] + ldp x27, x28, [sp, 80] + ldp x29, x30, [sp], 112 + ret +.L672: + mov w2, w20 mov w1, w26 + adrp x0, .LC7 add x0, x0, :lo12:.LC7 - mov w2, w21 bl printk - cmp w21, 9 - bhi .L650 - adrp x0, .LANCHOR0 - add x0, x0, :lo12:.LANCHOR0 - add x0, x0, w24, sxtw 4 - ldr x0, [x0,24] - ldr w1, [x0,3840] + cmp w20, 9 + bhi .L674 + sbfiz x0, x23, 4, 32 + adrp x1, .LANCHOR0 + add x1, x1, :lo12:.LANCHOR0 + ldr x0, [x1, x0] + ldr w1, [x0, 3840] ldr w1, [x0] orr w1, w1, 131072 str w1, [x0] -.L650: +.L674: add x0, x19, :lo12:.LANCHOR2 - ldr w1, [x0,2184] + ldr w1, [x0, 2184] add w1, w1, 1 - str w1, [x0,2184] + str w1, [x0, 2184] cmp w1, 2047 - bls .L649 - mov x23, 0 - str wzr, [x0,2184] - mov x25, x23 -.L647: + bls .L669 + mov x25, 0 + mov x24, 0 + str wzr, [x0, 2184] +.L671: + mov w5, 0 + mov w21, 0 + mov w6, 0 mov w19, 0 mov w28, -1 - mov w5, w19 - mov w6, w19 - mov w20, w19 -.L655: +.L679: + stp w5, w6, [x29, 100] mov w0, w22 - str x5, [x29,104] - str x6, [x29,112] bl NandcSetDdrPara mov w1, w26 - mov w0, w24 - mov x2, x25 - mov x3, x23 + mov x3, x25 + mov x2, x24 + mov w0, w23 bl FlashReadRawPage - add w1, w21, 1 - ldr x6, [x29,112] + add w1, w20, 1 cmp w0, w1 - ldr x5, [x29,104] - bhi .L651 + ldp w5, w6, [x29, 100] + bhi .L675 cmp w0, 2 - bhi .L661 - add w20, w20, 1 - cmp w20, 9 - bls .L661 - sub w19, w22, w20 - mov w21, w0 + bhi .L685 + add w19, w19, 1 + cmp w19, 9 + bls .L685 + mov w1, w21 + mov w20, w0 + sub w21, w22, w19 mov w28, 0 - b .L653 -.L651: - cmp w6, w20 - bcs .L662 - cmp w20, 7 - sub w5, w19, w20 - bhi .L663 - mov w6, w20 - b .L662 -.L661: - mov x23, 0 - mov w19, w22 - mov w21, w0 - mov w28, 0 - mov x25, x23 - b .L652 -.L662: - mov w20, 0 -.L652: - add w22, w22, 2 - cmp w22, 69 - bls .L655 -.L653: - cmp w6, w20 - csel w19, w19, w5, cc - b .L654 -.L663: - mov w19, w5 -.L654: - cbz w19, .L656 +.L677: + cmp w19, w6 + csel w21, w21, w1, hi +.L678: + cbz w21, .L680 + mov w1, w21 adrp x0, .LC8 - mov w1, w19 add x0, x0, :lo12:.LC8 bl printk - mov w0, w19 - bl NandcSetDdrPara -.L656: - cbz w28, .L649 - adrp x0, .LC9 - mov w1, w24 - add x0, x0, :lo12:.LC9 - mov w2, w26 - bl printk - cbz w27, .L657 - ldr w0, [x29,124] - lsr w0, w0, 8 - bl NandcSetDdrPara -.L649: mov w0, w21 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 128 - ret + bl NandcSetDdrPara +.L680: + cbz w28, .L669 + adrp x0, .LC9 + mov w2, w26 + mov w1, w23 + add x0, x0, :lo12:.LC9 + bl printk + cbz w27, .L681 + ldr w1, [x29, 108] + lsr w0, w1, 8 + bl NandcSetDdrPara + b .L669 +.L683: + mov w20, 1024 + b .L671 +.L675: + cmp w19, w6 + bls .L686 + sub w21, w5, w19 + cmp w19, 7 + bhi .L678 + mov w6, w19 +.L686: + mov w19, 0 + b .L676 +.L685: + mov w5, w22 + mov w20, w0 + mov w28, 0 + mov x25, 0 + mov x24, 0 +.L676: + add w22, w22, 2 + cmp w22, 69 + bls .L679 + mov w1, w21 + mov w21, w5 + b .L677 .size FlashDdrTunningRead, .-FlashDdrTunningRead .align 2 .global FlashReadPage @@ -4458,98 +4401,96 @@ FlashDdrTunningRead: FlashReadPage: stp x29, x30, [sp, -80]! add x29, sp, 0 - stp x19, x20, [sp,16] - uxtb w20, w0 + stp x19, x20, [sp, 16] + and w20, w0, 255 + stp x21, x22, [sp, 32] mov w0, w20 - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] + stp x23, x24, [sp, 48] mov w22, w1 - mov x25, x2 - mov x24, x3 - bl FlashReadRawPage - cmn w0, #1 - mov w19, w0 + stp x25, x26, [sp, 64] + mov x24, x2 + mov x25, x3 adrp x21, .LANCHOR2 - bne .L673 + bl FlashReadRawPage + mov w19, w0 + cmn w0, #1 + bne .L696 adrp x23, .LANCHOR0 add x23, x23, :lo12:.LANCHOR0 - ldrb w26, [x23,96] - cbnz w26, .L674 -.L676: + ldrb w26, [x23, 96] + cbnz w26, .L697 +.L699: add x23, x21, :lo12:.LANCHOR2 - ldrb w0, [x23,2104] - cbz w0, .L673 - b .L694 -.L674: - mov w0, w20 - mov w1, w22 - mov x2, x25 - mov x3, x24 - strb wzr, [x23,96] - bl FlashReadRawPage - strb w26, [x23,96] - cmn w0, #1 - beq .L676 - mov w19, w0 - b .L673 -.L694: - ldr x0, [x23,1152] - mov w1, w22 - mov x2, x25 - mov x3, x24 + ldrb w0, [x23, 2104] + cbz w0, .L696 + ldr x0, [x23, 1152] mov w4, 1 - ldr w26, [x0,304] + mov x3, x25 + mov x2, x24 + mov w1, w22 + ldr w26, [x0, 304] mov w0, w20 bl FlashDdrTunningRead - cmn w0, #1 mov w19, w0 - beq .L677 - ldrb w0, [x23,1221] + cmn w0, #1 + beq .L700 + ldrb w0, [x23, 1221] cmp w19, w0, lsr 1 - bls .L673 -.L677: + bls .L696 +.L700: lsr w0, w26, 8 bl NandcSetDdrPara -.L673: - add x21, x21, :lo12:.LANCHOR2 - cmn w19, #1 - ldr x4, [x21,2192] - bne .L678 - cbz x4, .L678 + b .L696 +.L697: + strb wzr, [x23, 96] + mov x3, x25 + mov x2, x24 + mov w1, w22 + mov w0, w20 + bl FlashReadRawPage + strb w26, [x23, 96] + cmn w0, #1 + beq .L699 + mov w19, w0 +.L696: + add x21, x21, :lo12:.LANCHOR2 + ldr x4, [x21, 2192] + cbz x4, .L695 + cmn w19, #1 + bne .L695 + mov x3, x25 + mov x2, x24 mov w1, w22 - mov x2, x25 - mov x3, x24 mov w0, w20 blr x4 mov w19, w0 - adrp x0, .LC10 - mov w1, w19 - add x0, x0, :lo12:.LC10 - mov w2, w20 + mov w1, w0 mov w3, w22 + mov w2, w20 + adrp x0, .LC10 + add x0, x0, :lo12:.LC10 bl printk cmn w19, #1 - bne .L678 - ldrb w0, [x21,1220] - cbz w0, .L678 + bne .L695 + ldrb w0, [x21, 1220] + cbz w0, .L695 mov w0, w20 bl flash_enter_slc_mode - ldr x4, [x21,2192] - mov w0, w20 + ldr x4, [x21, 2192] + mov x3, x25 + mov x2, x24 mov w1, w22 - mov x2, x25 - mov x3, x24 + mov w0, w20 blr x4 mov w19, w0 mov w0, w20 bl flash_exit_slc_mode -.L678: +.L695: mov w0, w19 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] ldp x29, x30, [sp], 80 ret .size FlashReadPage, .-FlashReadPage @@ -4559,361 +4500,365 @@ FlashReadPage: FlashDdrParaScan: stp x29, x30, [sp, -48]! add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] adrp x19, .LANCHOR2 - mov w20, w1 - stp x21, x22, [sp,32] + stp x21, x22, [sp, 32] add x22, x19, :lo12:.LANCHOR2 - uxtb w21, w0 - ldrb w0, [x22,2093] + and w20, w0, 255 + mov w21, w1 + ldrb w0, [x22, 2093] bl FlashSetInterfaceMode - ldrb w0, [x22,2093] + ldrb w0, [x22, 2093] bl NandcSetMode + mov w4, 0 + mov x3, 0 mov x2, 0 - mov w1, w20 - mov x3, x2 - mov w4, w2 - mov w0, w21 + mov w1, w21 + mov w0, w20 bl FlashDdrTunningRead + mov x3, 0 mov w22, w0 mov x2, 0 - mov w0, w21 - mov w1, w20 - mov x3, x2 + mov w1, w21 + mov w0, w20 bl FlashReadRawPage cmn w0, #1 - beq .L699 + beq .L716 cmn w22, #1 - bne .L696 -.L699: + bne .L717 +.L716: add x20, x19, :lo12:.LANCHOR2 - ldrb w0, [x20,2093] - tbz x0, 0, .L696 + ldrb w0, [x20, 2093] + tbz x0, 0, .L717 mov w0, 1 bl FlashSetInterfaceMode mov w0, 1 bl NandcSetMode - strb wzr, [x20,2104] - b .L698 -.L696: - add x19, x19, :lo12:.LANCHOR2 - mov w0, 1 - strb w0, [x19,2104] -.L698: + strb wzr, [x20, 2104] +.L718: mov w0, 0 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] ldp x29, x30, [sp], 48 ret +.L717: + add x19, x19, :lo12:.LANCHOR2 + mov w0, 1 + strb w0, [x19, 2104] + b .L718 .size FlashDdrParaScan, .-FlashDdrParaScan .align 2 .global FlashLoadPhyInfo .type FlashLoadPhyInfo, %function FlashLoadPhyInfo: - stp x29, x30, [sp, -112]! + stp x29, x30, [sp, -128]! mov w0, 60 add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x20, .LANCHOR0 - adrp x19, .LANCHOR2 - strb w0, [x29,104] + stp x19, x20, [sp, 16] + adrp x19, .LANCHOR0 + add x1, x19, :lo12:.LANCHOR0 + stp x21, x22, [sp, 32] + strb w0, [x29, 120] mov w0, 40 - strb w0, [x29,105] + stp x23, x24, [sp, 48] + adrp x22, .LANCHOR2 + stp x27, x28, [sp, 80] + adrp x21, .LANCHOR1 + stp x25, x26, [sp, 64] + mov w27, 20036 + strb w0, [x29, 121] mov w0, 24 - strb w0, [x29,106] + strb w0, [x29, 122] mov w0, 16 - strb w0, [x29,107] - add x0, x20, :lo12:.LANCHOR0 - stp x21, x22, [sp,32] - stp x25, x26, [sp,64] - stp x23, x24, [sp,48] - add x19, x19, :lo12:.LANCHOR2 - adrp x22, .LANCHOR1 - stp x27, x28, [sp,80] - add x22, x22, :lo12:.LANCHOR1 - mov w21, 0 - ldr w24, [x0,92] - mov w23, 4 - ldr x0, [x20,#:lo12:.LANCHOR0] - mov w26, -1 - str x0, [x19,2200] - add x22, x22, 472 + strb w0, [x29, 123] + add x21, x21, :lo12:.LANCHOR1 + ldr w0, [x1, 92] + mov w20, 0 + ldr x1, [x1, 64] + mov w24, 4 + str w0, [x29, 108] + add x0, x22, :lo12:.LANCHOR2 + mov w23, -1 + movk w27, 0x4e41, lsl 16 + add x21, x21, 472 + str x1, [x0, 2200] + str wzr, [x0, 2208] mov w0, 0 - add x25, x19, 1232 - str wzr, [x19,2208] bl flash_enter_slc_mode -.L707: - add w28, w21, 1 - mov x27, 0 -.L709: - add x0, x29, 104 - ldrb w0, [x27,x0] +.L727: + add w28, w20, 1 + add x25, x19, :lo12:.LANCHOR0 + mov x26, 0 +.L729: + add x0, x29, 120 + ldrb w0, [x0, x26] bl FlashBchSel - ldr x2, [x20,#:lo12:.LANCHOR0] - mov w0, 0 - mov w1, w21 + ldr x2, [x25, 64] mov x3, 0 + mov w1, w20 + mov w0, 0 bl FlashReadRawPage cmn w0, #1 - bne .L708 - ldr x2, [x20,#:lo12:.LANCHOR0] - mov w0, 0 + bne .L728 + ldr x2, [x25, 64] + mov x3, 0 mov w1, w28 - mov x3, 0 + mov w0, 0 bl FlashReadRawPage cmn w0, #1 - bne .L708 - add x27, x27, 1 - cmp x27, 4 - beq .L710 - b .L709 -.L711: + bne .L728 + add x26, x26, 1 + cmp x26, 4 + bne .L729 +.L730: + ldr w0, [x29, 108] + subs w24, w24, #1 + add w20, w20, w0 + bne .L727 + b .L735 +.L731: mov w1, 2036 - add x0, x27, 12 - mov w26, -1 + add x0, x6, 12 bl js_hash - ldr w1, [x27,8] + ldr w1, [x6, 8] cmp w1, w0 - beq .L722 -.L710: - subs w23, w23, #1 - add w21, w21, w24 - bne .L707 - mov w0, w23 -.L721: - bl flash_exit_slc_mode - 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 -.L708: - ldr x27, [x19,2200] - mov w0, 20036 - movk w0, 0x4e41, lsl 16 - ldr w1, [x27] - cmp w1, w0 - bne .L710 - cbnz w26, .L711 - add x20, x20, :lo12:.LANCHOR0 - ldr w0, [x20,92] - udiv w21, w21, w0 - mov w0, w26 - add w21, w21, 1 - str w21, [x20,8] - b .L721 -.L722: - add x1, x27, 160 + bne .L737 + add x1, x6, 160 mov w2, 32 - mov x0, x22 - add x26, x20, :lo12:.LANCHOR0 + mov x0, x21 bl ftl_memcpy - ldr x1, [x19,2200] + ldr x1, [x25, 2200] + add x23, x19, :lo12:.LANCHOR0 mov w2, 32 - add x0, x26, 112 + add x0, x23, 112 add x1, x1, 192 bl ftl_memcpy - ldr x1, [x19,2200] + ldr x1, [x25, 2200] mov w2, 852 - mov x0, x25 + add x0, x25, 1232 add x1, x1, 224 bl ftl_memcpy - ldrh w0, [x22,10] + ldrh w0, [x21, 10] bl FlashBlockAlignInit - str w21, [x19,2208] - ldr x0, [x19,2200] - ldr w1, [x0,1076] - strb w1, [x19,2104] - ldr w1, [x26,92] - udiv w1, w21, w1 - add w1, w1, 1 - cmp w1, 1 - bhi .L720 - mov w1, 2 -.L720: - ldrh w0, [x0,14] - str w1, [x26,8] - mov w26, 0 - strb w0, [x19,2212] - b .L710 + str w20, [x25, 2208] + ldr x1, [x25, 2200] + ldr w0, [x1, 1076] + strb w0, [x25, 2104] + ldr w0, [x23, 92] + udiv w0, w20, w0 + add w0, w0, 1 + cmp w0, 1 + bls .L733 +.L740: + str w0, [x23, 72] + add x0, x22, :lo12:.LANCHOR2 + ldrh w1, [x1, 14] + mov w23, 0 + strb w1, [x0, 2212] + b .L730 +.L733: + mov w0, 2 + b .L740 +.L737: + mov w23, -1 + b .L730 +.L728: + add x25, x22, :lo12:.LANCHOR2 + ldr x6, [x25, 2200] + ldr w0, [x6] + cmp w0, w27 + bne .L730 + cbnz w23, .L731 + add x19, x19, :lo12:.LANCHOR0 + ldr w0, [x19, 92] + udiv w20, w20, w0 + add w20, w20, 1 + str w20, [x19, 72] +.L735: + mov w0, 0 + bl flash_exit_slc_mode + mov w0, w23 + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] + ldp x27, x28, [sp, 80] + ldp x29, x30, [sp], 128 + ret .size FlashLoadPhyInfo, .-FlashLoadPhyInfo .align 2 .global ToshibaReadRetrial .type ToshibaReadRetrial, %function ToshibaReadRetrial: - stp x29, x30, [sp, -144]! + stp x29, x30, [sp, -128]! add x29, sp, 0 - stp x23, x24, [sp,48] - uxtb w23, w0 - mov w0, w23 - str w1, [x29,132] - stp x19, x20, [sp,16] - stp x27, x28, [sp,80] - stp x21, x22, [sp,32] - stp x25, x26, [sp,64] - mov x27, x2 + stp x21, x22, [sp, 32] + and w21, w0, 255 + stp x25, x26, [sp, 64] + mov w0, w21 + stp x19, x20, [sp, 16] + mov x25, x2 + stp x27, x28, [sp, 80] mov x26, x3 + str w1, [x29, 120] + stp x23, x24, [sp, 48] bl NandcWaitFlashReady - adrp x20, g_retryMode + sbfiz x1, x21, 4, 32 adrp x0, .LANCHOR0 - sbfiz x1, x23, 4, 32 add x0, x0, :lo12:.LANCHOR0 - mov w22, 0 - add x0, x0, 24 add x2, x0, x1 - ldr x24, [x0,x1] - ldrb w0, [x2,8] - str x0, [x29,136] - add x19, x0, 8 - mov x28, x0 - ldrb w0, [x20,#:lo12:g_retryMode] - add x19, x24, x19, lsl 8 + ldr x22, [x0, x1] + adrp x1, g_retryMode + ldrb w27, [x2, 8] + ldrb w0, [x1, #:lo12:g_retryMode] + str x1, [x29, 112] + add x19, x27, 8 sub w0, w0, #67 - uxtb w0, w0 + str w27, [x29, 124] + and w0, w0, 255 + add x19, x22, x19, lsl 8 cmp w0, 1 - bls .L724 + bls .L758 adrp x0, .LANCHOR2+2104 - ldrb w0, [x0,#:lo12:.LANCHOR2+2104] - cbz w0, .L725 - mov w0, w22 - mov w22, 1 + ldrb w0, [x0, #:lo12:.LANCHOR2+2104] + cbz w0, .L759 + mov w23, 1 + mov w0, 0 bl NandcSetDdrMode -.L725: - ubfiz x0, x28, 8, 8 - mov w2, 92 - add x0, x24, x0 - str w2, [x0,2056] - mov w2, 197 - str w2, [x0,2056] -.L724: - adrp x0, g_maxRetryCount - mov w21, 1 - add x0, x0, :lo12:g_maxRetryCount - str x0, [x29,120] - ldr x0, [x29,136] - mov w25, -1 +.L743: + add x0, x22, x27, lsl 8 + mov w1, 92 + str w1, [x0, 2056] + mov w1, 197 + str w1, [x0, 2056] +.L742: + ldrsw x0, [x29, 124] + mov w20, 1 + mov w24, -1 add x0, x0, 8 - lsl x0, x0, 8 - str x0, [x29,112] - ubfiz x0, x28, 8, 8 - str x0, [x29,104] -.L726: + add x0, x22, x0, lsl 8 + str x0, [x29, 104] +.L744: adrp x0, g_maxRetryCount - ldrb w0, [x0,#:lo12:g_maxRetryCount] + ldrb w0, [x0, #:lo12:g_maxRetryCount] add w0, w0, 1 - cmp w21, w0 - bcs .L751 - ldrb w0, [x20,#:lo12:g_retryMode] - mov w1, w21 + cmp w20, w0 + bcc .L753 + mov w28, w24 +.L752: + ldr x0, [x29, 112] + mov w1, 0 + ldrb w0, [x0, #:lo12:g_retryMode] sub w0, w0, #67 - uxtb w0, w0 + and w0, w0, 255 cmp w0, 1 mov x0, x19 - bhi .L727 + bhi .L754 bl SandiskSetRRPara - b .L728 -.L727: - bl ToshibaSetRRPara -.L728: - ldrb w0, [x20,#:lo12:g_retryMode] - cmp w0, 34 - bne .L729 - ldr x0, [x29,120] - ldrb w0, [x0] - sub w0, w0, #3 - cmp w21, w0 - bne .L729 - ldr x0, [x29,112] - mov w1, 179 - add x0, x24, x0 - str w1, [x0,8] -.L729: - ldr x0, [x29,104] - mov w1, 38 - add x0, x24, x0 - str w1, [x0,2056] - mov w1, 93 - str w1, [x0,2056] - cbz w22, .L730 +.L755: + ldrsw x0, [x29, 124] + add x0, x0, 8 + add x22, x22, x0, lsl 8 + mov w0, 255 + str w0, [x22, 8] + adrp x0, .LANCHOR2+1221 + ldrb w0, [x0, #:lo12:.LANCHOR2+1221] + add w0, w0, w0, lsl 1 + cmp w28, w0, lsr 2 + bcc .L756 + cmn w28, #1 + mov w0, 256 + csel w28, w28, w0, eq +.L756: + mov w0, w21 + bl NandcWaitFlashReady + cbz w23, .L741 mov w0, 4 bl NandcSetDdrMode - ldr w1, [x29,132] - mov w0, w23 - mov x2, x27 +.L741: + mov w0, w28 + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] + ldp x27, x28, [sp, 80] + ldp x29, x30, [sp], 128 + ret +.L759: + mov w23, 0 + b .L743 +.L758: + mov w23, 0 + b .L742 +.L753: + ldr x0, [x29, 112] + mov w1, w20 + ldrb w0, [x0, #:lo12:g_retryMode] + sub w0, w0, #67 + and w0, w0, 255 + cmp w0, 1 + mov x0, x19 + bhi .L745 + bl SandiskSetRRPara +.L746: + ldr x0, [x29, 112] + ldrb w0, [x0, #:lo12:g_retryMode] + cmp w0, 34 + bne .L747 + adrp x0, g_maxRetryCount + ldrb w0, [x0, #:lo12:g_maxRetryCount] + sub w0, w0, #3 + cmp w20, w0 + bne .L747 + ldr x1, [x29, 104] + mov w0, 179 + str w0, [x1, 8] +.L747: + add x0, x22, x27, lsl 8 + mov w1, 38 + str w1, [x0, 2056] + mov w1, 93 + str w1, [x0, 2056] + cbz w23, .L748 + mov w0, 4 + bl NandcSetDdrMode + ldr w1, [x29, 120] mov x3, x26 + mov x2, x25 + mov w0, w21 bl FlashReadRawPage mov w28, w0 mov w0, 0 bl NandcSetDdrMode - b .L731 -.L730: - ldr w1, [x29,132] - mov w0, w23 - mov x2, x27 +.L749: + cmn w28, #1 + beq .L750 + adrp x0, .LANCHOR2+1221 + cmn w24, #1 + csel w24, w24, w28, ne + ldrb w0, [x0, #:lo12:.LANCHOR2+1221] + add w0, w0, w0, lsl 1 + cmp w28, w0, lsr 2 + bcc .L752 + mov x26, 0 + mov x25, 0 +.L750: + add w20, w20, 1 + b .L744 +.L745: + bl ToshibaSetRRPara + b .L746 +.L748: + ldr w1, [x29, 120] mov x3, x26 + mov x2, x25 + mov w0, w21 bl FlashReadRawPage mov w28, w0 -.L731: - cmn w28, #1 - beq .L732 - adrp x0, .LANCHOR2+1221 - cmn w25, #1 - csel w25, w25, w28, ne - ldrb w0, [x0,#:lo12:.LANCHOR2+1221] - add w0, w0, w0, lsl 1 - cmp w28, w0, lsr 2 - bcc .L734 - mov x26, 0 - mov x27, x26 -.L732: - add w21, w21, 1 - b .L726 -.L751: - mov w28, w25 -.L734: - ldrb w0, [x20,#:lo12:g_retryMode] - mov w1, 0 - sub w0, w0, #67 - uxtb w0, w0 - cmp w0, 1 - mov x0, x19 - bhi .L736 - bl SandiskSetRRPara - b .L737 -.L736: + b .L749 +.L754: bl ToshibaSetRRPara -.L737: - ldr x0, [x29,136] - add x0, x0, 8 - add x24, x24, x0, lsl 8 - mov w0, 255 - str w0, [x24,8] - adrp x0, .LANCHOR2+1221 - ldrb w0, [x0,#:lo12:.LANCHOR2+1221] - add w0, w0, w0, lsl 1 - cmp w28, w0, lsr 2 - bcc .L738 - cmn w28, #1 - mov w0, 256 - csel w28, w28, w0, eq -.L738: - mov w0, w23 - bl NandcWaitFlashReady - cbz w22, .L739 - mov w0, 4 - bl NandcSetDdrMode -.L739: - mov w0, w28 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 144 - ret + b .L755 .size ToshibaReadRetrial, .-ToshibaReadRetrial .align 2 .global SamsungReadRetrial @@ -4921,247 +4866,232 @@ ToshibaReadRetrial: SamsungReadRetrial: stp x29, x30, [sp, -96]! add x29, sp, 0 - stp x21, x22, [sp,32] - uxtb w21, w0 - str x27, [sp,80] - mov w0, w21 - mov x22, x3 - stp x19, x20, [sp,16] - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] - mov w24, w1 - mov x23, x2 + stp x21, x22, [sp, 32] + and w22, w0, 255 + stp x19, x20, [sp, 16] + mov w0, w22 + stp x23, x24, [sp, 48] + mov w23, w1 + stp x25, x26, [sp, 64] + mov x24, x2 + str x27, [sp, 80] + mov x25, x3 bl NandcWaitFlashReady adrp x26, g_maxRetryCount - adrp x4, .LANCHOR0 - sbfiz x0, x21, 4, 32 - add x4, x4, :lo12:.LANCHOR0 - mov w25, 1 - add x4, x4, 24 - mov w19, -1 - add x1, x4, x0 - add x26, x26, :lo12:g_maxRetryCount + sbfiz x1, x22, 4, 32 + adrp x0, .LANCHOR0 + add x0, x0, :lo12:.LANCHOR0 adrp x27, .LANCHOR2 - ldr x0, [x4,x0] - ldrb w20, [x1,8] + add x2, x0, x1 + add x26, x26, :lo12:g_maxRetryCount + add x27, x27, :lo12:.LANCHOR2 + mov w21, 1 + ldr x0, [x0, x1] + mov w19, -1 + ldrb w20, [x2, 8] add x20, x20, 8 add x20, x0, x20, lsl 8 -.L753: +.L770: ldrb w0, [x26] add w0, w0, 1 - cmp w25, w0 - bcs .L756 - mov x0, x20 - mov w1, w25 - bl SamsungSetRRPara - mov w0, w21 - mov w1, w24 - mov x2, x23 - mov x3, x22 - bl FlashReadRawPage - cmn w0, #1 - beq .L754 - add x1, x27, :lo12:.LANCHOR2 - cmn w19, #1 - csel w19, w19, w0, ne - ldrb w1, [x1,1221] - add w1, w1, w1, lsl 1 - cmp w0, w1, lsr 2 - bcc .L759 - mov x22, 0 - mov x23, x22 -.L754: - add w25, w25, 1 - b .L753 -.L759: - mov w19, w0 -.L756: + cmp w21, w0 + bcc .L774 +.L773: mov x0, x20 mov w1, 0 bl SamsungSetRRPara adrp x0, .LANCHOR2+1221 - ldrb w0, [x0,#:lo12:.LANCHOR2+1221] + ldrb w0, [x0, #:lo12:.LANCHOR2+1221] add w0, w0, w0, lsl 1 cmp w19, w0, lsr 2 - bcc .L758 + bcc .L769 cmn w19, #1 mov w0, 256 csel w19, w19, w0, eq -.L758: +.L769: mov w0, w19 - ldr x27, [sp,80] - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] + ldr x27, [sp, 80] + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] ldp x29, x30, [sp], 96 ret +.L774: + mov w1, w21 + mov x0, x20 + bl SamsungSetRRPara + mov x3, x25 + mov x2, x24 + mov w1, w23 + mov w0, w22 + bl FlashReadRawPage + cmn w0, #1 + beq .L771 + ldrb w1, [x27, 1221] + cmn w19, #1 + csel w19, w19, w0, ne + add w1, w1, w1, lsl 1 + cmp w0, w1, lsr 2 + bcc .L776 + mov x25, 0 + mov x24, 0 +.L771: + add w21, w21, 1 + b .L770 +.L776: + mov w19, w0 + b .L773 .size SamsungReadRetrial, .-SamsungReadRetrial .align 2 .global MicronReadRetrial .type MicronReadRetrial, %function MicronReadRetrial: - stp x29, x30, [sp, -160]! + stp x29, x30, [sp, -144]! add x29, sp, 0 - stp x21, x22, [sp,32] - uxtb w21, w0 + stp x19, x20, [sp, 16] + and w20, w0, 255 adrp x0, .LANCHOR2 - stp x27, x28, [sp,80] - mov w28, w1 + stp x23, x24, [sp, 48] + str w1, [x29, 140] add x1, x0, :lo12:.LANCHOR2 - stp x25, x26, [sp,64] - stp x19, x20, [sp,16] - stp x23, x24, [sp,48] - str x0, [x29,152] - mov x25, x2 - ldrb w19, [x1,1221] - mov x22, x3 - ldrb w1, [x1,1220] - cbnz w1, .L766 + stp x25, x26, [sp, 64] + mov x24, x2 + stp x21, x22, [sp, 32] + mov x25, x3 + stp x27, x28, [sp, 80] + str x0, [x29, 128] + ldrb w19, [x1, 1221] + ldrb w1, [x1, 1220] + cbnz w1, .L784 add w19, w19, w19, lsl 1 - ubfx x19, x19, 2, 8 - b .L767 -.L766: - mov w0, 3 - sdiv w19, w19, w0 -.L767: - adrp x26, g_maxRetryCount - adrp x27, .LC11 - adrp x20, .LANCHOR0 - add x0, x26, :lo12:g_maxRetryCount - mov w24, 0 - str x0, [x29,144] - add x27, x27, :lo12:.LC11 - add x20, x20, :lo12:.LANCHOR0 - add x20, x20, 24 - add x20, x20, w21, sxtw 4 -.L778: - mov w0, w21 + asr w19, w19, 2 +.L785: + adrp x21, .LANCHOR0 + add x21, x21, :lo12:.LANCHOR0 + add x21, x21, w20, sxtw 4 mov w23, 0 - mov w26, -1 + mov w28, 137 +.L795: + mov w0, w20 bl NandcWaitFlashReady - ldrb w4, [x20,8] - mov w9, 239 - ldr x6, [x20] - mov w10, 137 - lsl x8, x4, 8 -.L768: - ldr x0, [x29,144] - ldrb w0, [x0] - cmp w23, w0 - bcs .L771 - add x2, x6, x8 - mov x0, 1000 - str x4, [x29,96] - str x8, [x29,104] - str w9, [x2,2056] - str w10, [x2,2052] - str x6, [x29,112] - str x9, [x29,120] - str x10, [x29,128] - str x2, [x29,136] - bl __const_udelay - ldr x2, [x29,136] - add w7, w23, 1 - mov w0, w21 - mov w1, w28 - mov x3, x22 - str x7, [x29,136] - str w7, [x2,2048] - str wzr, [x2,2048] - str wzr, [x2,2048] - str wzr, [x2,2048] - mov x2, x25 - bl FlashReadRawPage - cmn w0, #1 - ldr x7, [x29,136] - ldr x10, [x29,128] - ldr x9, [x29,120] - ldr x6, [x29,112] - ldr x8, [x29,104] - ldr x4, [x29,96] - beq .L769 - cmn w26, #1 - csel w26, w26, w0, ne - cmp w0, w19 - bcc .L780 - mov x22, 0 - mov x25, x22 -.L769: - mov w23, w7 - b .L768 -.L780: - mov x22, 0 - mov w26, w0 - mov x25, x22 -.L771: - add x1, x6, x4, lsl 8 + ldrb w4, [x21, 8] + adrp x7, g_maxRetryCount + ldr x8, [x21] + add x7, x7, :lo12:g_maxRetryCount + mov w22, 0 + mov w26, -1 + add x27, x8, x4, lsl 8 +.L786: + ldrb w0, [x7] + cmp w22, w0 + bcc .L790 +.L789: + add x4, x8, x4, lsl 8 mov w0, 239 - str x1, [x29,136] - str w0, [x1,2056] - mov w0, 137 - str w0, [x1,2052] + str x4, [x29, 120] + str w0, [x4, 2056] mov x0, 1000 + str w28, [x4, 2052] bl __const_udelay - ldr x1, [x29,136] + ldr x4, [x29, 120] cmp w26, w19 - str wzr, [x1,2048] - str wzr, [x1,2048] - str wzr, [x1,2048] - str wzr, [x1,2048] - bcc .L773 + str wzr, [x4, 2048] + str wzr, [x4, 2048] + str wzr, [x4, 2048] + str wzr, [x4, 2048] + bcc .L791 cmn w26, #1 mov w0, 256 csel w26, w26, w0, eq -.L773: - cmn w26, #1 - cset w6, eq - cbnz w6, .L782 +.L791: cmp w26, 256 - cset w1, eq - cbz w1, .L774 -.L782: - mov x0, x27 - mov w1, w23 - mov w2, w28 - mov w3, w23 + ccmn w26, #1, 4, ne + bne .L792 + ldr w2, [x29, 140] + adrp x0, .LC11 mov w4, w26 - str x6, [x29,136] + mov w3, w22 + mov w1, w22 + add x0, x0, :lo12:.LC11 bl printk - cbnz w24, .L776 - ldr x6, [x29,136] - cbz w6, .L787 - ldr x0, [x29,152] + cbnz w23, .L793 + ldr x0, [x29, 128] add x0, x0, :lo12:.LANCHOR2 - ldrb w0, [x0,1220] - cbz w0, .L787 - mov w0, w21 + ldrb w0, [x0, 1220] + cbz w0, .L783 + cmn w26, #1 + bne .L783 mov w1, 3 - mov w24, 1 + mov w0, w20 + mov w23, 1 bl micron_auto_read_calibration_config - b .L778 -.L776: - mov w0, w21 + b .L795 +.L784: + mov w0, 3 + sdiv w19, w19, w0 + b .L785 +.L790: + mov w0, 239 + str w0, [x27, 2056] + str w28, [x27, 2052] + mov x0, 1000 + stp x4, x7, [x29, 96] + str x8, [x29, 112] + bl __const_udelay + add w9, w22, 1 + str w9, [x27, 2048] + str wzr, [x27, 2048] + mov x3, x25 + ldr w1, [x29, 140] + mov x2, x24 + str wzr, [x27, 2048] + mov w0, w20 + str wzr, [x27, 2048] + str w9, [x29, 120] + bl FlashReadRawPage + cmn w0, #1 + ldr w9, [x29, 120] + ldp x4, x7, [x29, 96] + ldr x8, [x29, 112] + beq .L787 + cmn w26, #1 + csel w26, w26, w0, ne + cmp w0, w19 + bcc .L797 + mov x25, 0 + mov x24, 0 +.L787: + mov w22, w9 + b .L786 +.L797: + mov w26, w0 + mov x25, 0 + mov x24, 0 + b .L789 +.L793: + mov w0, w20 mov w1, 0 bl micron_auto_read_calibration_config cmn w26, #1 mov w0, 256 csel w26, w26, w0, eq - b .L787 -.L774: - cbz w24, .L787 - mov w0, w21 +.L783: + 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], 144 + ret +.L792: + cbz w23, .L783 + mov w1, 0 + mov w0, w20 mov w26, 256 bl micron_auto_read_calibration_config -.L787: - 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], 160 - ret + b .L783 .size MicronReadRetrial, .-MicronReadRetrial .align 2 .global HynixReadRetrial @@ -5169,326 +5099,311 @@ MicronReadRetrial: HynixReadRetrial: stp x29, x30, [sp, -128]! add x29, sp, 0 - stp x21, x22, [sp,32] + stp x21, x22, [sp, 32] adrp x21, .LANCHOR2 - adrp x22, .LANCHOR0 - stp x23, x24, [sp,48] - uxtb x23, w0 + stp x27, x28, [sp, 80] + and x28, x0, 255 add x0, x21, :lo12:.LANCHOR2 + stp x25, x26, [sp, 64] add x0, x0, 1232 - mov x24, x23 - stp x27, x28, [sp,80] - stp x25, x26, [sp,64] - stp x19, x20, [sp,16] - mov w28, w1 - add x1, x0, x23 - ldrb w26, [x0,2] + stp x23, x24, [sp, 48] + stp x19, x20, [sp, 16] + mov w27, w1 + adrp x22, .LANCHOR0 + add x1, x0, x28 + ldrb w24, [x0, 2] add x0, x22, :lo12:.LANCHOR0 - mov x27, x2 - mov x25, x3 - ldrb w19, [x1,12] - ldr x0, [x0,104] - ldrb w0, [x0,19] + mov x23, x28 + mov x25, x2 + mov x26, x3 + ldrb w19, [x1, 12] + ldr x0, [x0, 104] + ldrb w0, [x0, 19] sub w0, w0, #7 - uxtb w0, w0 + and w0, w0, 255 cmp w0, 1 - bhi .L796 - ldrb w19, [x1,20] -.L796: - mov w0, w24 - mov w20, -1 + bhi .L809 + ldrb w19, [x1, 20] +.L809: + mov w0, w23 bl NandcWaitFlashReady add x5, x21, :lo12:.LANCHOR2 mov w4, 0 add x6, x5, 1236 -.L797: - cmp w4, w26 - bcs .L801 + mov w20, -1 +.L810: + cmp w4, w24 + bcc .L815 +.L814: + add x22, x22, :lo12:.LANCHOR0 + ldr x0, [x22, 104] + ldrb w0, [x0, 19] + sub w0, w0, #7 + and w0, w0, 255 + cmp w0, 1 + add x0, x21, :lo12:.LANCHOR2 + add x0, x0, x28 + bhi .L816 + strb w19, [x0, 1252] +.L817: + add x21, x21, :lo12:.LANCHOR2 + ldrb w0, [x21, 1221] + add w0, w0, w0, lsl 1 + cmp w20, w0, lsr 2 + bcc .L808 + cmn w20, #1 + mov w0, 256 + csel w20, w20, w0, eq +.L808: + mov w0, w20 + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] + ldp x27, x28, [sp, 80] + ldp x29, x30, [sp], 128 + ret +.L815: add w19, w19, 1 - ldrb w1, [x5,1233] + ldrb w1, [x5, 1233] + and w19, w19, 255 mov x2, x6 - mov w0, w24 - uxtb w19, w19 - str x4, [x29,104] - cmp w19, w26 - str x5, [x29,112] - csel w19, w19, wzr, cc - str x6, [x29,120] + cmp w24, w19 + str w4, [x29, 108] + csel w19, w19, wzr, hi + stp x6, x5, [x29, 112] mov w3, w19 + mov w0, w23 bl HynixSetRRPara - mov w0, w24 - mov w1, w28 - mov x2, x27 - mov x3, x25 + mov x3, x26 + mov x2, x25 + mov w1, w27 + mov w0, w23 bl FlashReadRawPage cmn w0, #1 - ldr x6, [x29,120] - ldr x5, [x29,112] - ldr x4, [x29,104] - beq .L799 - ldrb w1, [x5,1221] + ldr w4, [x29, 108] + ldp x6, x5, [x29, 112] + beq .L812 + ldrb w1, [x5, 1221] cmn w20, #1 csel w20, w20, w0, ne add w1, w1, w1, lsl 1 cmp w0, w1, lsr 2 - bcc .L806 + bcc .L819 + mov x26, 0 mov x25, 0 - mov x27, x25 -.L799: +.L812: add w4, w4, 1 - b .L797 -.L806: + b .L810 +.L819: mov w20, w0 -.L801: - add x22, x22, :lo12:.LANCHOR0 - ldr x0, [x22,104] - ldrb w0, [x0,19] - sub w0, w0, #7 - uxtb w0, w0 - cmp w0, 1 - add x0, x21, :lo12:.LANCHOR2 - add x23, x0, x23 - bhi .L803 - strb w19, [x23,1252] - b .L804 -.L803: - strb w19, [x23,1244] -.L804: - add x21, x21, :lo12:.LANCHOR2 - ldrb w0, [x21,1221] - add w0, w0, w0, lsl 1 - cmp w20, w0, lsr 2 - bcc .L805 - cmn w20, #1 - mov w0, 256 - csel w20, w20, w0, eq -.L805: - mov w0, w20 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 128 - ret + b .L814 +.L816: + strb w19, [x0, 1244] + b .L817 .size HynixReadRetrial, .-HynixReadRetrial .align 2 .type samsung_read_retrial, %function samsung_read_retrial: - stp x29, x30, [sp, -128]! + stp x29, x30, [sp, -112]! add x29, sp, 0 - stp x21, x22, [sp,32] - uxtb w22, w0 - adrp x21, .LANCHOR3 - mov w0, w22 - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] - stp x19, x20, [sp,16] - mov w23, w1 + stp x23, x24, [sp, 48] + and w23, w0, 255 + stp x21, x22, [sp, 32] mov x24, x2 - stp x27, x28, [sp,80] - mov x26, x3 + stp x25, x26, [sp, 64] + mov w0, w23 + stp x19, x20, [sp, 16] + mov w26, w1 + mov x25, x3 + stp x27, x28, [sp, 80] bl NandcWaitFlashReady + adrp x22, .LANCHOR2 + sbfiz x1, x23, 4, 32 adrp x0, .LANCHOR0 - sbfiz x1, x22, 4, 32 add x0, x0, :lo12:.LANCHOR0 - adrp x25, .LANCHOR2 - add x0, x0, 24 - add x2, x0, x1 - ldr x5, [x0,x1] - add x0, x25, :lo12:.LANCHOR2 - ldrb w19, [x2,8] - ldrb w0, [x0,2092] - cbnz w0, .L813 - lsl x19, x19, 8 + adrp x21, .LANCHOR3 + add x3, x0, x1 + ldr x1, [x0, x1] + add x0, x22, :lo12:.LANCHOR2 + ldrb w19, [x3, 8] + ldrb w2, [x0, 2092] + cbnz w2, .L827 + add x19, x1, x19, lsl 8 + add x21, x21, :lo12:.LANCHOR3 + mov x27, x0 mov x4, 0 mov w20, -1 - add x27, x5, x19 mov w6, 239 - mov w7, 141 - add x21, x21, :lo12:.LANCHOR3 -.L817: - str w6, [x27,2056] + mov w5, 141 +.L831: + str w6, [x19, 2056] add x0, x21, x4 - str w7, [x27,2052] - mov w1, w23 - mov x2, x24 - mov x3, x26 - ldrsb w0, [x0,1] + str w5, [x19, 2052] add w28, w4, 1 - str w0, [x27,2048] - mov w0, w22 - str wzr, [x27,2048] - str wzr, [x27,2048] - str wzr, [x27,2048] - str x5, [x29,96] - str x6, [x29,104] - str x7, [x29,112] - str x4, [x29,120] + stp w6, w5, [x29, 96] + mov x3, x25 + ldrsb w0, [x0, 1] + mov x2, x24 + str w0, [x19, 2048] + mov w1, w26 + str wzr, [x19, 2048] + mov w0, w23 + str wzr, [x19, 2048] + str wzr, [x19, 2048] + str x4, [x29, 104] bl FlashReadRawPage cmn w0, #1 - ldr x4, [x29,120] - ldr x7, [x29,112] - ldr x6, [x29,104] - ldr x5, [x29,96] - beq .L814 - add x1, x25, :lo12:.LANCHOR2 + ldp w6, w5, [x29, 96] + ldr x4, [x29, 104] + beq .L828 + ldrb w1, [x27, 1221] cmn w20, #1 csel w20, w20, w0, ne - ldrb w1, [x1,1221] add w1, w1, w1, lsl 1 cmp w0, w1, lsr 2 - bcc .L826 - mov x26, 0 - mov x24, x26 -.L814: + bcc .L839 + mov x25, 0 + mov x24, 0 +.L828: add x4, x4, 1 cmp x4, 25 - bne .L817 + bne .L831 mov w28, 26 - b .L816 -.L826: - mov w20, w0 -.L816: - add x3, x5, x19 +.L830: mov w0, 239 - str w0, [x3,2056] + str w0, [x19, 2056] mov w0, 141 - b .L842 -.L813: - add x21, x21, :lo12:.LANCHOR3 - lsl x19, x19, 8 - add x21, x21, 32 - mov w20, -1 - mov w28, 1 - add x27, x5, x19 - mov w4, 239 - mov w6, 137 -.L822: - str w4, [x27,2056] - mov w1, w23 - str w6, [x27,2052] - mov x2, x24 - mov x3, x26 - str x5, [x29,104] - ldrb w0, [x21,4] - str w0, [x27,2048] - str x4, [x29,112] - ldrb w0, [x21,5] - str w0, [x27,2048] - str x6, [x29,120] - ldrb w0, [x21,6] - str w0, [x27,2048] - ldrb w0, [x21,7] - str w0, [x27,2048] - mov w0, w22 - bl FlashReadRawPage - cmn w0, #1 - ldr x6, [x29,120] - ldr x4, [x29,112] - ldr x5, [x29,104] - beq .L819 - add x1, x25, :lo12:.LANCHOR2 - cmn w20, #1 - csel w20, w20, w0, ne - ldrb w1, [x1,1221] - add w1, w1, w1, lsl 1 - cmp w0, w1, lsr 2 - bcc .L827 - mov x26, 0 - mov x24, x26 -.L819: - add w28, w28, 1 - add x21, x21, 4 - cmp w28, 26 - bne .L822 - b .L821 -.L827: - mov w20, w0 -.L821: - add x3, x5, x19 - mov w0, 239 - str w0, [x3,2056] - mov w0, 137 -.L842: - str w0, [x3,2052] - add x25, x25, :lo12:.LANCHOR2 - str wzr, [x3,2048] - str wzr, [x3,2048] - str wzr, [x3,2048] - str wzr, [x3,2048] - ldrb w0, [x25,1221] +.L855: + str w0, [x19, 2052] + add x22, x22, :lo12:.LANCHOR2 + str wzr, [x19, 2048] + str wzr, [x19, 2048] + str wzr, [x19, 2048] + str wzr, [x19, 2048] + ldrb w0, [x22, 1221] add w0, w0, w0, lsl 1 cmp w20, w0, lsr 2 - bcc .L823 + bcc .L837 cmn w20, #1 mov w0, 256 csel w20, w20, w0, eq -.L823: - cmn w20, #1 - beq .L828 +.L837: cmp w20, 256 - bne .L824 -.L828: + ccmn w20, #1, 4, ne + bne .L838 adrp x0, .LC12 + mov w4, w20 + mov w3, w28 + mov w2, w26 mov w1, w28 add x0, x0, :lo12:.LC12 - mov w2, w23 - mov w3, w28 - mov w4, w20 bl printk -.L824: - mov w0, w22 +.L838: + mov w0, w23 bl NandcWaitFlashReady mov w0, w20 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 128 + 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 +.L839: + mov w20, w0 + b .L830 +.L827: + add x21, x21, :lo12:.LANCHOR3 + add x19, x1, x19, lsl 8 + add x21, x21, 36 + mov x27, x0 + mov w20, -1 + mov w28, 1 + mov w5, 239 + mov w4, 137 +.L836: + str w5, [x19, 2056] + mov x3, x25 + str w4, [x19, 2052] + mov x2, x24 + stp w5, w4, [x29, 100] + mov w1, w26 + ldrb w0, [x21] + str w0, [x19, 2048] + ldrb w0, [x21, 1] + str w0, [x19, 2048] + ldrb w0, [x21, 2] + str w0, [x19, 2048] + ldrb w0, [x21, 3] + str w0, [x19, 2048] + mov w0, w23 + bl FlashReadRawPage + cmn w0, #1 + ldp w5, w4, [x29, 100] + beq .L833 + ldrb w1, [x27, 1221] + cmn w20, #1 + csel w20, w20, w0, ne + add w1, w1, w1, lsl 1 + cmp w0, w1, lsr 2 + bcc .L840 + mov x25, 0 + mov x24, 0 +.L833: + add w28, w28, 1 + add x21, x21, 4 + cmp w28, 26 + bne .L836 +.L835: + mov w0, 239 + str w0, [x19, 2056] + mov w0, 137 + b .L855 +.L840: + mov w20, w0 + b .L835 .size samsung_read_retrial, .-samsung_read_retrial .align 2 .global FlashProgPage .type FlashProgPage, %function FlashProgPage: stp x29, x30, [sp, -64]! - mov x4, x3 add x29, sp, 0 - stp x19, x20, [sp,16] - uxtb w19, w0 - adrp x0, .LANCHOR1+481 - stp x21, x22, [sp,32] + stp x19, x20, [sp, 16] mov w20, w1 + stp x21, x22, [sp, 32] + adrp x1, .LANCHOR1+481 + str x23, [sp, 48] mov x22, x2 - ldrb w21, [x0,#:lo12:.LANCHOR1+481] - cbnz w19, .L844 + ldrb w21, [x1, #:lo12:.LANCHOR1+481] + ands w19, w0, 255 + mov x23, x3 + bne .L857 adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 - ldrb w1, [x0,89] - ldr w2, [x0,92] + ldrb w1, [x0, 89] + ldr w2, [x0, 92] mul w1, w1, w2 - cmp w20, w1 - bcs .L844 - ldrb w0, [x0,88] - cmp w0, wzr + cmp w1, w20 + bls .L857 + ldrb w0, [x0, 88] + cmp w0, 0 mov w0, 4 csel w21, w21, w0, eq -.L844: +.L857: mov w0, w19 - str x4, [x29,56] bl NandcWaitFlashReady mov w0, w19 bl NandcFlashCs - mov w0, w19 mov w1, w20 - bl FlashProgFirstCmd - ldr x4, [x29,56] - mov w2, w21 - mov x3, x22 mov w0, w19 + bl FlashProgFirstCmd + mov x4, x23 + mov x3, x22 + mov w2, w21 mov w1, 1 + mov w0, w19 bl NandcXferData mov w1, w20 mov w0, w19 @@ -5498,12 +5413,13 @@ FlashProgPage: mov w1, w20 mov w0, w19 bl FlashReadStatus - mov w20, w0 + mov w2, w0 mov w0, w19 bl NandcFlashDeCs - and w0, w20, 1 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] + and w0, w2, 1 + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldr x23, [sp, 48] ldp x29, x30, [sp], 64 ret .size FlashProgPage, .-FlashProgPage @@ -5511,167 +5427,157 @@ FlashProgPage: .global FlashSavePhyInfo .type FlashSavePhyInfo, %function FlashSavePhyInfo: - stp x29, x30, [sp, -80]! + stp x29, x30, [sp, -64]! add x29, sp, 0 - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - adrp x21, .LANCHOR0 - adrp x24, .LANCHOR2 - stp x19, x20, [sp,16] - add x19, x24, :lo12:.LANCHOR2 - add x20, x21, :lo12:.LANCHOR0 - stp x25, x26, [sp,64] - ldr x0, [x21,#:lo12:.LANCHOR0] - mov w23, 0 - str x0, [x19,2200] - mov w22, w23 - ldrb w0, [x19,2213] + stp x19, x20, [sp, 16] + adrp x19, .LANCHOR0 + add x19, x19, :lo12:.LANCHOR0 + adrp x20, .LANCHOR2 + add x20, x20, :lo12:.LANCHOR2 + stp x21, x22, [sp, 32] + stp x23, x24, [sp, 48] + mov w23, 20036 + ldr x0, [x19, 64] + movk w23, 0x4e41, lsl 16 + str x0, [x20, 2200] + mov w22, 0 + ldrb w0, [x20, 2213] + mov w21, 0 bl FlashBchSel - ldr x0, [x21,#:lo12:.LANCHOR0] - mov w1, 0 + ldr x0, [x19, 64] mov w2, 2048 + mov w1, 0 bl ftl_memset - ldr x1, [x19,2200] - mov w0, 20036 - movk w0, 0x4e41, lsl 16 + ldr x0, [x20, 2200] mov w2, 32 - str w0, [x1] - ldr x0, [x19,2200] - ldrb w1, [x20,3216] + str w23, [x0] + ldr x0, [x20, 2200] + ldrb w1, [x19, 3216] add x0, x0, 16 - strh w1, [x0,-4] - ldrb w1, [x20,89] - strh w1, [x0,-2] - ldrb w1, [x19,2104] - str w1, [x0,1060] + strh w1, [x0, -4] + ldrb w1, [x19, 89] + strh w1, [x0, -2] + ldrb w1, [x20, 2104] + str w1, [x0, 1060] adrp x1, IDByte add x1, x1, :lo12:IDByte bl ftl_memcpy - ldr x0, [x19,2200] - add x1, x20, 3220 + ldr x0, [x20, 2200] mov w2, 8 + add x1, x19, 3220 add x0, x0, 80 bl ftl_memcpy - ldr x0, [x19,2200] - add x1, x20, 3228 + ldr x0, [x20, 2200] mov w2, 32 + add x1, x19, 3228 add x0, x0, 96 bl ftl_memcpy - ldr x0, [x19,2200] + ldr x0, [x20, 2200] adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 mov w2, 32 add x1, x1, 472 add x0, x0, 160 bl ftl_memcpy - ldr x0, [x19,2200] - add x1, x20, 112 + ldr x0, [x20, 2200] mov w2, 32 + add x1, x19, 112 add x0, x0, 192 bl ftl_memcpy - ldr x0, [x19,2200] - add x1, x19, 1232 + ldr x0, [x20, 2200] mov w2, 852 + add x1, x20, 1232 add x0, x0, 224 bl ftl_memcpy - ldr x20, [x19,2200] + ldr x6, [x20, 2200] mov w1, 2036 - add x0, x20, 12 + add x0, x6, 12 bl js_hash - str w0, [x20,8] + str w0, [x6, 8] mov w0, 1592 - str w0, [x20,4] - ldr x0, [x19,2216] - str x0, [x19,2200] + str w0, [x6, 4] + ldr x0, [x20, 2216] + str x0, [x20, 2200] mov w0, 0 - mov x19, x21 bl flash_enter_slc_mode -.L852: - add x21, x19, :lo12:.LANCHOR0 - mov w0, 0 +.L866: + ldr w1, [x19, 92] mov w2, 0 - ldr w1, [x21,92] - mul w1, w22, w1 + mov w0, 0 + mul w1, w21, w1 bl FlashEraseBlock - add x0, x24, :lo12:.LANCHOR2 - ldrb w20, [x0,1220] - cbz w20, .L847 - mov w20, 0 -.L848: - add x0, x19, :lo12:.LANCHOR0 - ldr x2, [x19,#:lo12:.LANCHOR0] + ldrb w0, [x20, 1220] + cbz w0, .L861 + mov w24, 0 +.L862: + ldr w1, [x19, 92] mov x3, 0 - ldr w1, [x0,92] + ldr x2, [x19, 64] mov w0, 0 - madd w1, w22, w1, w20 - add w20, w20, 1 + madd w1, w21, w1, w24 + add w24, w24, 1 bl FlashProgPage - cmp w20, 10 - bne .L848 - b .L849 -.L847: - ldr w1, [x21,92] + cmp w24, 10 + bne .L862 +.L863: + ldr w1, [x19, 92] mov x3, 0 - ldr x2, [x19,#:lo12:.LANCHOR0] - mov w0, w20 - mul w1, w22, w1 - bl FlashProgPage - ldr w1, [x21,92] - mov w0, w20 - ldr x2, [x19,#:lo12:.LANCHOR0] - mov x3, 0 - mul w1, w22, w1 - add w1, w1, 1 - bl FlashProgPage -.L849: - add x21, x19, :lo12:.LANCHOR0 - add x20, x24, :lo12:.LANCHOR2 + ldr x2, [x20, 2216] mov w0, 0 - mov x3, 0 - add w26, w22, 1 - ldr w1, [x21,92] - ldr x2, [x20,2216] - mul w1, w22, w1 + mul w1, w21, w1 bl FlashReadRawPage cmn w0, #1 - beq .L850 - ldr x25, [x20,2200] - mov w0, 20036 - movk w0, 0x4e41, lsl 16 - ldr w1, [x25] - cmp w1, w0 - bne .L850 + add w7, w21, 1 + beq .L864 + ldr x6, [x20, 2200] + ldr w0, [x6] + cmp w0, w23 + bne .L864 mov w1, 2036 - add x0, x25, 12 + add x0, x6, 12 bl js_hash - ldr w1, [x25,8] + ldr w1, [x6, 8] cmp w1, w0 - bne .L850 - ldr w0, [x21,92] - cmp w23, 1 - str w26, [x21,8] - mul w22, w22, w0 - str w22, [x20,2208] - beq .L853 - mov w23, 1 -.L850: - cmp w26, 4 - mov w22, w26 - bne .L852 - b .L851 -.L853: - mov w23, 2 -.L851: + bne .L864 + ldr w0, [x19, 92] + cmp w22, 1 + str w7, [x19, 72] + mul w21, w0, w21 + str w21, [x20, 2208] + beq .L867 + mov w22, 1 +.L864: + mov w21, w7 + cmp w7, 4 + bne .L866 +.L865: mov w0, 0 bl flash_exit_slc_mode - cmp w23, wzr + cmp w22, 0 csetm w0, eq - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x29, x30, [sp], 80 + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x29, x30, [sp], 64 ret +.L861: + ldr w1, [x19, 92] + mov x3, 0 + ldr x2, [x19, 64] + mov w0, 0 + mul w1, w21, w1 + bl FlashProgPage + ldr w1, [x19, 92] + mov x3, 0 + ldr x2, [x19, 64] + mov w0, 0 + mul w1, w21, w1 + add w1, w1, 1 + bl FlashProgPage + b .L863 +.L867: + mov w22, 2 + b .L865 .size FlashSavePhyInfo, .-FlashSavePhyInfo .align 2 .global FlashReadIdbDataRaw @@ -5679,109 +5585,109 @@ FlashSavePhyInfo: FlashReadIdbDataRaw: stp x29, x30, [sp, -128]! add x29, sp, 0 - stp x25, x26, [sp,64] + stp x25, x26, [sp, 64] mov x25, x0 mov w0, 60 - strb w0, [x29,120] + stp x21, x22, [sp, 32] + strb w0, [x29, 120] mov w0, 40 - strb w0, [x29,121] + strb w0, [x29, 121] mov w0, 24 - stp x21, x22, [sp,32] - strb w0, [x29,122] - adrp x21, .LANCHOR2 + strb w0, [x29, 122] mov w0, 16 - strb w0, [x29,123] + adrp x21, .LANCHOR2 + strb w0, [x29, 123] add x0, x21, :lo12:.LANCHOR2 - stp x19, x20, [sp,16] - stp x23, x24, [sp,48] - stp x27, x28, [sp,80] - ldrb w28, [x0,1221] - ldr w0, [x0,2100] - cbz w0, .L860 + stp x19, x20, [sp, 16] + stp x23, x24, [sp, 48] + stp x27, x28, [sp, 80] + ldrb w26, [x0, 1221] + ldr w0, [x0, 2100] + cbz w0, .L875 mov w0, 0 bl flash_enter_slc_mode -.L860: - adrp x26, .LANCHOR0 - adrp x24, .LC13 - mov x0, x25 - mov w1, 0 - mov w2, 2048 - mov w23, -1 +.L875: + adrp x22, .LANCHOR0 + add x22, x22, :lo12:.LANCHOR0 + mov w28, 35899 + add x27, x29, 120 + mov x19, x22 + mov w24, -1 mov w20, 2 - mov x27, x26 - add x24, x24, :lo12:.LC13 + movk w28, 0xfcdc, lsl 16 + mov w2, 2048 + mov w1, 0 + mov x0, x25 bl ftl_memset -.L861: - add x0, x26, :lo12:.LANCHOR0 - ldrb w0, [x0,89] +.L876: + ldrb w0, [x22, 89] cmp w20, w0 - bcs .L865 - mov x22, 0 -.L863: - add x0, x29, 120 - add x19, x27, :lo12:.LANCHOR0 - ldrb w4, [x22,x0] - str x4, [x29,104] + bcc .L881 +.L880: + add x21, x21, :lo12:.LANCHOR2 + mov w0, w26 + bl FlashBchSel + ldr w0, [x21, 2100] + cbz w0, .L874 + mov w0, 0 + bl flash_exit_slc_mode +.L874: + mov w0, w24 + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] + ldp x27, x28, [sp, 80] + ldp x29, x30, [sp], 128 + ret +.L881: + mov x23, 0 +.L878: + ldrb w4, [x23, x27] + str w4, [x29, 108] mov w0, w4 bl FlashBchSel - ldr w1, [x19,92] - mov w0, 0 - ldr x2, [x27,#:lo12:.LANCHOR0] + ldr w1, [x19, 92] mov x3, 0 + ldr x2, [x19, 64] + mov w0, 0 mul w1, w20, w1 bl FlashReadRawPage cmn w0, #1 - ldr x4, [x29,104] - bne .L862 - add x22, x22, 1 - cmp x22, 4 - bne .L863 - b .L864 -.L862: - ldr x0, [x19] - ldr w1, [x0] - mov w0, 35899 - movk w0, 0xfcdc, lsl 16 - cmp w1, w0 - bne .L864 - mov w1, w4 - mov x0, x24 - bl printk - ldr x1, [x19] - mov x0, x25 - mov w2, 2048 - bl ftl_memcpy - ldr x0, [x19] - ldr w0, [x0,512] - strb w0, [x19,89] - ldr w0, [x19,8] - cmp w0, w20 - bls .L868 - mov w23, 0 - str w20, [x19,8] - bl FlashSavePhyInfo -.L864: + ldr w4, [x29, 108] + bne .L877 + add x23, x23, 1 + cmp x23, 4 + bne .L878 +.L879: add w20, w20, 1 - b .L861 -.L868: - mov w23, 0 -.L865: - mov w0, w28 - add x21, x21, :lo12:.LANCHOR2 - bl FlashBchSel - ldr w0, [x21,2100] - cbz w0, .L872 - mov w0, 0 - bl flash_exit_slc_mode -.L872: - mov w0, w23 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 128 - ret + b .L876 +.L884: + mov w24, 0 + b .L880 +.L877: + ldr x0, [x19, 64] + ldr w0, [x0] + cmp w0, w28 + bne .L879 + mov w1, w4 + adrp x0, .LC13 + add x0, x0, :lo12:.LC13 + bl printk + ldr x1, [x19, 64] + mov w2, 2048 + mov x0, x25 + bl ftl_memcpy + ldr x0, [x19, 64] + ldr w0, [x0, 512] + strb w0, [x19, 89] + ldr w0, [x19, 72] + cmp w20, w0 + bcs .L884 + mov w24, 0 + str w20, [x19, 72] + bl FlashSavePhyInfo + b .L879 .size FlashReadIdbDataRaw, .-FlashReadIdbDataRaw .align 2 .global FlashInit @@ -5789,621 +5695,614 @@ FlashReadIdbDataRaw: FlashInit: stp x29, x30, [sp, -112]! add x29, sp, 0 - stp x19, x20, [sp,16] - stp x23, x24, [sp,48] + stp x19, x20, [sp, 16] adrp x20, .LANCHOR0 - mov x23, x0 - mov w0, 32768 + stp x23, x24, [sp, 48] + add x23, x20, :lo12:.LANCHOR0 + stp x21, x22, [sp, 32] adrp x19, .LANCHOR2 - stp x21, x22, [sp,32] - stp x27, x28, [sp,80] - stp x25, x26, [sp,64] - bl ftl_malloc add x21, x19, :lo12:.LANCHOR2 - str x0, [x20,#:lo12:.LANCHOR0] + mov x22, x0 + stp x25, x26, [sp, 64] mov w0, 32768 - add x22, x20, :lo12:.LANCHOR0 - adrp x24, .LC14 - bl ftl_malloc - str x0, [x21,2216] - mov w0, 4096 - add x22, x22, 24 - mov w27, 1 - mov w28, 4 - bl ftl_malloc - str x0, [x21,2224] + stp x27, x28, [sp, 80] + bl ftl_dma32_malloc + str x0, [x23, 64] mov w0, 32768 - bl ftl_malloc - str x0, [x21,2232] + bl ftl_dma32_malloc + str x0, [x21, 2216] mov w0, 4096 - bl ftl_malloc - str x0, [x21,2240] + bl ftl_dma32_malloc + str x0, [x21, 2224] + mov w0, 32768 + bl ftl_dma32_malloc + str x0, [x21, 2232] + mov w0, 4096 + bl ftl_dma32_malloc + str x0, [x21, 2240] + mov w0, 50 + strb w0, [x21, 2212] + adrp x25, .LC14 + strb w0, [x23, 89] mov w0, 128 - str w0, [x22,68] + str w0, [x23, 92] mov w0, 60 - mov w1, 50 - strb w0, [x21,2213] - mov x0, x23 - strb w1, [x22,65] - mov w23, 0 - strb w1, [x21,2212] - str wzr, [x22,-16] - strb wzr, [x21,2104] - str wzr, [x21,2184] - strb wzr, [x22,64] - strb wzr, [x21,2248] + strb wzr, [x21, 2104] + add x25, x25, :lo12:.LC14 + strb w0, [x21, 2213] + mov x0, x22 + strb wzr, [x21, 2248] + adrp x22, IDByte + str wzr, [x21, 2184] + add x21, x22, :lo12:IDByte + mov w24, 0 + mov w28, 239 + strb wzr, [x23, 88] + str wzr, [x23, 72] bl NandcInit - adrp x21, IDByte - add x0, x24, :lo12:.LC14 - add x26, x21, :lo12:IDByte - str x0, [x29,104] -.L884: - ldrb w2, [x22,8] - uxtb w25, w23 - mov w0, w25 - str x2, [x29,96] - ldr x24, [x22] +.L899: + ldrb w2, [x23, 8] + and w26, w24, 255 + str w2, [x29, 108] + mov w0, w26 + ldr x27, [x23] bl FlashReset - mov w0, w25 + mov w0, w26 bl NandcFlashCs - ldr x2, [x29,96] + ldr w2, [x29, 108] mov w0, 144 ubfiz x2, x2, 8, 8 - add x24, x24, x2 - str w0, [x24,2056] + add x27, x27, x2 + str w0, [x27, 2056] mov x0, 1000 - str wzr, [x24,2052] + str wzr, [x27, 2052] bl __const_udelay - ldr w0, [x24,2048] - uxtb w0, w0 - strb w0, [x26] + ldr w0, [x27, 2048] + and w0, w0, 255 + strb w0, [x21] cmp w0, 44 - ldr w2, [x24,2048] - strb w2, [x26,1] - ldr w2, [x24,2048] - strb w2, [x26,2] - ldr w2, [x24,2048] - strb w2, [x26,3] - ldr w2, [x24,2048] - strb w2, [x26,4] - ldr w2, [x24,2048] - strb w2, [x26,5] - bne .L879 - mov w0, 239 - str w0, [x24,2056] - str w27, [x24,2052] + ldr w2, [x27, 2048] + strb w2, [x21, 1] + ldr w2, [x27, 2048] + strb w2, [x21, 2] + ldr w2, [x27, 2048] + strb w2, [x21, 3] + ldr w2, [x27, 2048] + strb w2, [x21, 4] + ldr w2, [x27, 2048] + strb w2, [x21, 5] + bne .L894 + str w28, [x27, 2056] + mov w0, 1 + str w0, [x27, 2052] mov x0, 1000 bl __const_udelay - str w28, [x24,2048] - str wzr, [x24,2048] - str wzr, [x24,2048] - str wzr, [x24,2048] -.L879: - mov w0, w25 + mov w0, 4 + str w0, [x27, 2048] + str wzr, [x27, 2048] + str wzr, [x27, 2048] + str wzr, [x27, 2048] +.L894: + mov w0, w26 bl NandcFlashDeCs - ldrb w2, [x26] + ldrb w2, [x21] sub w0, w2, #1 - uxtb w0, w0 + and w0, w0, 255 cmp w0, 253 - bhi .L880 - ldr x0, [x29,104] - add w1, w23, 1 - ldrb w3, [x26,1] - ldrb w4, [x26,2] - ldrb w5, [x26,3] - ldrb w6, [x26,4] - ldrb w7, [x26,5] + bhi .L895 + ldrb w7, [x21, 5] + add w1, w24, 1 + ldrb w6, [x21, 4] + mov x0, x25 + ldrb w5, [x21, 3] + ldrb w4, [x21, 2] + ldrb w3, [x21, 1] bl printk -.L880: - cbnz w23, .L881 - ldrb w0, [x21,#:lo12:IDByte] - add x1, x21, :lo12:IDByte +.L895: + cbnz w24, .L896 + ldrb w0, [x22, #:lo12:IDByte] + add x1, x22, :lo12:IDByte sub w0, w0, #1 - uxtb w0, w0 + and w0, w0, 255 cmp w0, 253 - bhi .L936 - ldrb w0, [x1,1] + bhi .L947 + ldrb w0, [x1, 1] cmp w0, 255 - beq .L936 + beq .L947 bl FlashCs123Init -.L881: - ldrb w0, [x26] +.L896: + ldrb w0, [x21] cmp w0, 181 - bne .L883 + bne .L898 mov w0, 44 - strb w0, [x26] -.L883: - add w23, w23, 1 - add x22, x22, 16 - cmp w23, 4 - add x26, x26, 8 - bne .L884 - ldrb w0, [x21,#:lo12:IDByte] + strb w0, [x21] +.L898: + add w24, w24, 1 + add x23, x23, 16 + add x21, x21, 8 + cmp w24, 4 + bne .L899 + ldrb w0, [x22, #:lo12:IDByte] cmp w0, 173 - beq .L885 + beq .L900 add x0, x19, :lo12:.LANCHOR2 - ldr w0, [x0,2108] + ldr w0, [x0, 2108] bl NandcSetDdrMode -.L885: - add x22, x19, :lo12:.LANCHOR2 - mov w1, 0 +.L900: + add x21, x19, :lo12:.LANCHOR2 mov w2, 852 - add x0, x22, 1232 + mov w1, 0 + add x0, x21, 1232 bl ftl_memset add x2, x20, :lo12:.LANCHOR0 - adrp x1, .LANCHOR1 - add x0, x1, :lo12:.LANCHOR1 - ldr w4, [x22,2116] - add x0, x0, 472 - strb wzr, [x2,96] - str x0, [x2,104] + adrp x0, .LANCHOR1 + add x1, x0, :lo12:.LANCHOR1 + ldr w4, [x21, 2116] + add x1, x1, 472 + strb wzr, [x2, 96] + str x1, [x2, 104] mov w2, 12336 movk w2, 0x5638, lsl 16 cmp w4, w2 - bne .L886 - ldrb w0, [x0,19] - cmp w0, 50 - beq .L886 - mov w0, 1 - str w0, [x22,2100] -.L886: - add x3, x21, :lo12:IDByte - ldrb w0, [x3,1] - cmp w0, 218 - cset w6, eq - cmp w0, 241 - cset w5, eq - cmp w0, 161 - cset w2, eq - orr w2, w5, w2 - orr w2, w6, w2 - cbnz w2, .L887 - and w2, w0, -3 - cmp w2, 209 - beq .L887 - cmp w0, 220 - bne .L888 - ldrb w2, [x3,3] - cmp w2, 149 - bne .L888 -.L887: - add x2, x20, :lo12:.LANCHOR0 + bne .L901 + ldrb w1, [x1, 19] + cmp w1, 50 + beq .L901 + mov w1, 1 + str w1, [x21, 2100] +.L901: + add x1, x22, :lo12:IDByte + ldrb w2, [x1, 1] + add w1, w2, 95 + and w3, w1, 255 + mov x1, 1 + cmp w3, 57 + bhi .L902 + movk x1, 0x205, lsl 48 + lsr x1, x1, x3 + mvn x1, x1 +.L902: + and w1, w1, 1 + cmp w2, 241 + eor w1, w1, 1 + cset w3, eq + orr w1, w3, w1 + cbnz w1, .L903 + cmp w2, 220 + bne .L904 + add x1, x22, :lo12:IDByte + ldrb w1, [x1, 3] + cmp w1, 149 + bne .L904 +.L903: + add x1, x20, :lo12:.LANCHOR0 add x3, x19, :lo12:.LANCHOR2 - mov w7, 16 + mov w6, 16 mov w5, 1 - add x8, x21, :lo12:IDByte - strb w7, [x2,89] - strb w5, [x2,88] - add x2, x1, :lo12:.LANCHOR1 - strb w7, [x3,2213] - ldrb w7, [x21,#:lo12:IDByte] - strb w7, [x2,3417] - strb w0, [x2,3418] - cmp w7, 152 - bne .L890 - ldrsb w2, [x8,4] - tbnz w2, #31, .L891 - mov w2, 24 - strb w2, [x3,2213] -.L890: + add x7, x22, :lo12:IDByte + strb w6, [x1, 89] + strb w5, [x1, 88] + add x1, x0, :lo12:.LANCHOR1 + strb w6, [x3, 2213] + ldrb w6, [x22, #:lo12:IDByte] + strb w6, [x1, 3417] + strb w2, [x1, 3418] + cmp w6, 152 + bne .L906 + ldrsb w1, [x7, 4] + tbnz w1, #31, .L907 + mov w1, 24 + strb w1, [x3, 2213] +.L906: cmp w4, 2049 - beq .L939 - mov w2, 12336 - movk w2, 0x5638, lsl 16 - cmp w4, w2 - bne .L893 -.L939: - add x2, x19, :lo12:.LANCHOR2 + mov w1, 12336 + movk w1, 0x5638, lsl 16 + ccmp w4, w1, 4, ne + bne .L909 + add x1, x19, :lo12:.LANCHOR2 mov w3, 16 - strb w3, [x2,2213] -.L893: - cbz w6, .L895 - add x0, x1, :lo12:.LANCHOR1 + strb w3, [x1, 2213] +.L909: + cmp w2, 218 + bne .L910 + add x1, x0, :lo12:.LANCHOR1 mov w2, 2048 - strh w2, [x0,3430] + strh w2, [x1, 3430] mov w2, -38 - b .L984 -.L895: - cmp w0, 220 - bne .L897 - add x0, x1, :lo12:.LANCHOR1 - mov w2, 4096 - strh w2, [x0,3430] - mov w2, -36 -.L984: - strb w2, [x0,3418] - b .L896 -.L897: - cmp w0, 211 - bne .L896 - add x0, x1, :lo12:.LANCHOR1 - mov w2, 4096 - strh w2, [x0,3430] - mov w2, 2 - strb w2, [x0,3429] -.L896: - add x22, x1, :lo12:.LANCHOR1 +.L993: + strb w2, [x1, 3418] +.L911: + add x21, x0, :lo12:.LANCHOR1 add x0, x20, :lo12:.LANCHOR0 - add x1, x22, 3288 mov w2, 32 + add x1, x21, 3288 add x0, x0, 112 bl ftl_memcpy - add x0, x22, 472 - add x1, x22, 3416 mov w2, 32 + add x1, x21, 3416 + add x0, x21, 472 bl ftl_memcpy -.L888: - add x22, x20, :lo12:.LANCHOR0 - ldrb w0, [x22,88] - cbnz w0, .L898 +.L904: + add x21, x20, :lo12:.LANCHOR0 + ldrb w0, [x21, 88] + cbnz w0, .L914 bl FlashLoadPhyInfoInRam - cbnz w0, .L900 - ldr x0, [x22,104] - add x22, x19, :lo12:.LANCHOR2 - ldrb w1, [x0,17] + cbnz w0, .L916 + ldr x0, [x21, 104] + add x21, x19, :lo12:.LANCHOR2 + ldrb w1, [x0, 17] and w0, w1, 7 - strb w0, [x22,2093] - tbnz x1, 0, .L900 + strb w0, [x21, 2093] + tbnz x1, 0, .L916 mov w1, 1 - strb w1, [x22,2104] + strb w1, [x21, 2104] bl FlashSetInterfaceMode - ldrb w0, [x22,2093] + ldrb w0, [x21, 2093] bl NandcSetMode -.L900: +.L916: add x0, x20, :lo12:.LANCHOR0 - add x22, x19, :lo12:.LANCHOR2 - ldr x0, [x0,104] - ldrb w0, [x0,26] - strb w0, [x22,1220] + add x21, x19, :lo12:.LANCHOR2 + ldr x0, [x0, 104] + ldrb w0, [x0, 26] + strb w0, [x21, 1220] bl FlashLoadPhyInfo - cbz w0, .L898 - ldr w0, [x22,2108] - cbz w0, .L903 + cbz w0, .L914 + ldr w0, [x21, 2108] + cbz w0, .L919 mov w0, 1 bl FlashSetInterfaceMode mov w0, 1 - b .L980 -.L903: - ldrb w0, [x22,2093] - bl FlashSetInterfaceMode - ldrb w0, [x22,2093] -.L980: +.L988: bl NandcSetMode bl FlashLoadPhyInfo - cbz w0, .L898 + cbz w0, .L914 + add x21, x20, :lo12:.LANCHOR0 mov w0, 1 - add x22, x20, :lo12:.LANCHOR0 bl FlashSetInterfaceMode mov w0, 1 bl NandcSetMode - ldr x1, [x22,104] + ldr x0, [x21, 104] + ldrh w1, [x0, 14] adrp x0, .LC15 add x0, x0, :lo12:.LC15 - ldrh w1, [x1,14] bl printk bl FlashLoadPhyInfoInRam cmn w0, #1 - beq .L954 + beq .L893 bl FlashDieInfoInit - ldr x0, [x22,104] - ldrb w0, [x0,19] + ldr x0, [x21, 104] + ldrb w0, [x0, 19] bl FlashGetReadRetryDefault - ldr x0, [x22,104] - ldrh w1, [x22,3452] - ldrb w2, [x0,9] + ldr x0, [x21, 104] + ldrh w1, [x21, 3452] add w1, w1, 4095 + ldrb w2, [x0, 9] cmp w2, w1, lsr 12 - blt .L905 - ldrh w1, [x0,14] + blt .L921 + ldrh w1, [x0, 14] add w1, w1, 255 cmp w2, w1, lsr 8 - bge .L906 -.L905: - ldrh w1, [x0,14] + bge .L922 +.L921: + ldrh w1, [x0, 14] and w1, w1, -256 - strh w1, [x0,14] -.L906: - add x22, x19, :lo12:.LANCHOR2 - ldrb w0, [x22,2093] + strh w1, [x0, 14] +.L922: + add x21, x19, :lo12:.LANCHOR2 + ldrb w0, [x21, 2093] tst w0, 6 - beq .L907 + beq .L923 bl FlashSavePhyInfo mov w0, 0 bl flash_enter_slc_mode - ldr w1, [x22,2208] + ldr w1, [x21, 2208] mov w0, 0 bl FlashDdrParaScan mov w0, 0 bl flash_exit_slc_mode -.L907: +.L923: bl FlashSavePhyInfo -.L898: +.L914: add x23, x20, :lo12:.LANCHOR0 - add x22, x19, :lo12:.LANCHOR2 - ldr x2, [x23,104] - str xzr, [x22,2192] - ldrb w0, [x2,26] - strb w0, [x22,1220] - ldrh w0, [x2,16] - ldrh w3, [x2,10] + add x21, x19, :lo12:.LANCHOR2 + ldr x2, [x23, 104] + str xzr, [x21, 2192] + ldrb w0, [x2, 26] + strb w0, [x21, 1220] + ldrh w0, [x2, 16] ubfx x1, x0, 7, 1 - strb w1, [x23,96] + strb w1, [x23, 96] ubfx x1, x0, 3, 1 - strb w1, [x22,2249] + strb w1, [x21, 2249] ubfx x1, x0, 4, 1 - strb w1, [x22,2094] - ldrb w1, [x2,12] ubfx x0, x0, 8, 3 - strb w0, [x22,2093] - ldrb w0, [x2,18] - sdiv w1, w3, w1 + strb w1, [x21, 2094] + strb w0, [x21, 2093] + ldrh w1, [x2, 10] + ldrb w0, [x2, 12] + sdiv w1, w1, w0 + ldrb w0, [x2, 18] bl BuildFlashLsbPageTable bl FlashDieInfoInit - ldr x0, [x23,104] - ldrh w1, [x0,16] - tbz x1, 6, .L909 + ldr x0, [x23, 104] + ldrh w1, [x0, 16] + tbz x1, 6, .L925 adrp x1, g_retryMode - ldrb w0, [x0,19] - ldrb w2, [x22,1233] - ldrb w3, [x22,1234] - strb w0, [x1,#:lo12:g_retryMode] - adrp x1, g_maxRegNum - strb w2, [x1,#:lo12:g_maxRegNum] - adrp x2, g_maxRetryCount - strb w3, [x2,#:lo12:g_maxRetryCount] + ldrb w0, [x0, 19] + adrp x2, g_maxRegNum + ldrb w3, [x21, 1234] + strb w0, [x1, #:lo12:g_retryMode] + mov x4, x2 + ldrb w1, [x21, 1233] + strb w1, [x2, #:lo12:g_maxRegNum] + adrp x1, g_maxRetryCount + strb w3, [x1, #:lo12:g_maxRetryCount] sub w3, w0, #1 - uxtb w3, w3 + and w3, w3, 255 cmp w3, 7 - mov x3, x2 - bhi .L910 + bhi .L926 adrp x1, HynixReadRetrial - cmp w0, 8 add x1, x1, :lo12:HynixReadRetrial - str x1, [x22,2192] + str x1, [x21, 2192] sub w1, w0, #5 - cset w2, eq - uxtb w1, w1 + and w1, w1, 255 cmp w1, 1 - bls .L940 - cbz w2, .L911 -.L940: + ccmp w0, 8, 4, hi + bne .L927 + mov w1, 1 + str w1, [x21, 2176] +.L927: add x1, x19, :lo12:.LANCHOR2 - mov w3, 1 - str w3, [x1,2176] -.L911: cmp w0, 7 - add x1, x19, :lo12:.LANCHOR2 - beq .L938 - cbnz w2, .L938 - add x1, x1, 1252 - b .L914 -.L938: + beq .L989 + cmp w0, 8 + bne .L950 +.L989: add x1, x1, 1260 -.L914: +.L928: mov x2, 0 - mov w3, w2 -.L916: - ldrsb w4, [x1,x2] + mov w3, 0 +.L930: + ldrsb w4, [x1, x2] add x2, x2, 1 - cmp w4, wzr - csinc w3, w3, w3, ne + cmp w4, 0 + cinc w3, w3, eq cmp x2, 32 - bne .L916 + bne .L930 cmp w3, 27 - bls .L909 + bls .L925 bl FlashGetReadRetryDefault bl FlashSavePhyInfo - b .L909 -.L910: - sub w4, w0, #17 - uxtb w4, w4 - cmp w4, 2 - bhi .L918 - adrp x1, MicronReadRetrial - cmp w0, 19 - add x1, x1, :lo12:MicronReadRetrial - str x1, [x22,2192] - beq .L919 - mov w0, 7 - b .L982 -.L919: - mov w0, 15 -.L982: - strb w0, [x2,#:lo12:g_maxRetryCount] - b .L909 -.L918: - sub w2, w0, #65 - uxtb w2, w2 - cmp w2, 1 - bls .L941 - cmp w0, 33 - bne .L920 -.L941: +.L925: add x0, x19, :lo12:.LANCHOR2 - adrp x2, ToshibaReadRetrial - add x2, x2, :lo12:ToshibaReadRetrial - str x2, [x0,2192] - mov w0, 4 - strb w0, [x1,#:lo12:g_maxRegNum] - mov w0, 7 - strb w0, [x3,#:lo12:g_maxRetryCount] - b .L909 -.L920: - sub w2, w0, #67 - sub w4, w0, #34 - uxtb w2, w2 - uxtb w4, w4 - cmp w2, 1 - cset w2, ls - cmp w4, 1 - bls .L942 - cbz w2, .L922 -.L942: - add x4, x19, :lo12:.LANCHOR2 - adrp x5, ToshibaReadRetrial - add x5, x5, :lo12:ToshibaReadRetrial - cmp w0, 35 - str x5, [x4,2192] - beq .L924 - cmp w0, 68 - beq .L924 - mov w0, 7 - b .L981 -.L924: - mov w0, 17 -.L981: - strb w0, [x3,#:lo12:g_maxRetryCount] - mov w0, 4 - cbnz w2, .L983 - mov w0, 5 -.L983: - strb w0, [x1,#:lo12:g_maxRegNum] - b .L909 -.L922: - cmp w0, 49 - bne .L927 - adrp x0, SamsungReadRetrial - add x0, x0, :lo12:SamsungReadRetrial - str x0, [x22,2192] - b .L909 -.L927: - cmp w0, 50 - bne .L909 - adrp x0, samsung_read_retrial - str w2, [x22,2100] - add x0, x0, :lo12:samsung_read_retrial - str x0, [x22,2192] -.L909: - add x0, x19, :lo12:.LANCHOR2 - mov w1, 12336 - movk w1, 0x5638, lsl 16 - ldr w2, [x0,2116] - cmp w2, w1 - bne .L928 - ldrb w0, [x0,1220] - cbz w0, .L928 + mov w2, 12336 + movk w2, 0x5638, lsl 16 + ldr w1, [x0, 2116] + cmp w1, w2 + bne .L940 + ldrb w0, [x0, 1220] + cbz w0, .L940 add x0, x20, :lo12:.LANCHOR0 - ldr x0, [x0,104] - strb wzr, [x0,18] -.L928: - ldrb w0, [x21,#:lo12:IDByte] + ldr x0, [x0, 104] + strb wzr, [x0, 18] +.L940: + ldrb w0, [x22, #:lo12:IDByte] cmp w0, 44 - bne .L929 + bne .L941 add x0, x19, :lo12:.LANCHOR2 - ldrb w1, [x0,2104] - cbz w1, .L929 - mov w1, 12336 - movk w1, 0x5638, lsl 16 - cmp w2, w1 - bne .L930 - ldrb w0, [x0,1220] - cbnz w0, .L929 -.L930: + ldrb w2, [x0, 2104] + cbz w2, .L941 + mov w2, 12336 + movk w2, 0x5638, lsl 16 + cmp w1, w2 + bne .L942 + ldrb w0, [x0, 1220] + cbnz w0, .L941 +.L942: add x0, x19, :lo12:.LANCHOR2 - strb wzr, [x0,2104] + strb wzr, [x0, 2104] mov w0, 1 bl FlashSetInterfaceMode mov w0, 1 bl NandcSetMode -.L929: +.L941: add x1, x19, :lo12:.LANCHOR2 - ldrb w0, [x1,2093] + ldrb w0, [x1, 2093] tst w0, 6 - beq .L931 - ldrb w1, [x1,2104] - cbnz w1, .L932 - tbnz x0, 0, .L931 -.L932: + beq .L943 + ldrb w1, [x1, 2104] + cbnz w1, .L944 + tbnz x0, 0, .L943 +.L944: mov w0, 0 bl flash_enter_slc_mode - add x1, x19, :lo12:.LANCHOR2 + add x0, x19, :lo12:.LANCHOR2 + ldr w1, [x0, 2208] mov w0, 0 - ldr w1, [x1,2208] bl FlashDdrParaScan mov w0, 0 bl flash_exit_slc_mode -.L931: +.L943: add x20, x20, :lo12:.LANCHOR0 - mov w22, 16 + mov w21, 16 add x19, x19, :lo12:.LANCHOR2 - ldr x0, [x20,104] - ldrb w0, [x0,20] + ldr x0, [x20, 104] + ldrb w0, [x0, 20] bl FlashBchSel add x0, x20, 3456 bl FlashReadIdbDataRaw - strb w22, [x20,89] mov w0, 18928 + strb w21, [x20, 89] movk w0, 0x2, lsl 16 bl FlashTimingCfg - ldr x1, [x20,104] - add x4, x21, :lo12:IDByte - ldrb w2, [x1,12] - strh w2, [x19,1200] - ldrb w2, [x1,7] - str w2, [x19,1196] - ldrb w2, [x4,1] - lsl w3, w2, w22 - orr w2, w3, w2, lsl 8 - ldrb w3, [x21,#:lo12:IDByte] + ldr x1, [x20, 104] + ldrb w4, [x22, #:lo12:IDByte] + ldrb w2, [x1, 12] + strh w2, [x19, 1200] + ldrb w2, [x1, 7] + str w2, [x19, 1196] + add x2, x22, :lo12:IDByte + ldrb w3, [x2, 1] + ldrb w2, [x2, 3] + orr w2, w4, w2, lsl 24 + lsl w4, w3, w21 + orr w3, w4, w3, lsl 8 + ldrh w4, [x1, 14] orr w2, w2, w3 - ldrb w3, [x4,3] - ldrh w4, [x1,14] - orr w2, w2, w3, lsl 24 - str w2, [x19,1192] - ldrb w2, [x20,3216] - strh w2, [x19,1202] - ldrb w2, [x1,13] - strh w2, [x19,1204] - strh w4, [x19,1206] - ldrh w2, [x1,10] - strh w2, [x19,1208] - ldrb w3, [x1,12] - ldrh w2, [x1,10] + str w2, [x19, 1192] + ldrb w2, [x20, 3216] + strh w2, [x19, 1202] + ldrb w2, [x1, 13] + strh w2, [x19, 1204] + strh w4, [x19, 1206] + ldrh w2, [x1, 10] + strh w2, [x19, 1208] + ldrb w3, [x1, 12] + ldrh w2, [x1, 10] sdiv w2, w2, w3 - strh w2, [x19,1210] - ldrb w3, [x1,9] - strh w3, [x19,1212] - ldrh w5, [x1,10] - ldrb w2, [x1,9] + strh w2, [x19, 1210] + ldrb w3, [x1, 9] + strh w3, [x19, 1212] + ldrh w5, [x1, 10] + ldrb w2, [x1, 9] mul w2, w2, w5 mov w5, 512 - strh w5, [x19,1216] - ldrb w5, [x20,89] - strh w5, [x19,1218] - uxth w2, w2 - ldrb w5, [x20,88] - strh w2, [x19,1214] + strh w5, [x19, 1216] + ldrb w5, [x20, 89] + and w2, w2, 65535 + strh w5, [x19, 1218] + strh w2, [x19, 1214] + ldrb w5, [x20, 88] cmp w5, 1 - bne .L934 - lsl w2, w2, 1 + bne .L945 + ubfiz w2, w2, 1, 15 lsr w4, w4, 1 - lsl w3, w3, 1 - strh w2, [x19,1214] - strb w22, [x20,89] + ubfiz w3, w3, 1, 15 + strh w2, [x19, 1214] + strb w21, [x20, 89] mov w2, 8 - strh w4, [x19,1206] - strh w3, [x19,1212] - strh w2, [x19,1218] -.L934: - ldrb w0, [x1,20] + strh w4, [x19, 1206] + strh w3, [x19, 1212] + strh w2, [x19, 1218] +.L945: + ldrb w0, [x1, 20] bl FlashBchSel bl ftl_flash_suspend mov w0, 0 - b .L954 -.L936: - mov w0, -2 - b .L954 -.L891: - strb w5, [x3,2248] - b .L890 -.L954: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] +.L893: + 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 +.L910: + cmp w2, 220 + bne .L912 + add x1, x0, :lo12:.LANCHOR1 + mov w2, 4096 + strh w2, [x1, 3430] + mov w2, -36 + b .L993 +.L912: + cmp w2, 211 + bne .L911 + add x1, x0, :lo12:.LANCHOR1 + mov w2, 4096 + strh w2, [x1, 3430] + mov w2, 2 + strb w2, [x1, 3429] + b .L911 +.L919: + ldrb w0, [x21, 2093] + bl FlashSetInterfaceMode + ldrb w0, [x21, 2093] + b .L988 +.L950: + add x1, x1, 1252 + b .L928 +.L926: + sub w3, w0, #17 + and w3, w3, 255 + cmp w3, 2 + bhi .L932 + adrp x2, MicronReadRetrial + add x2, x2, :lo12:MicronReadRetrial + str x2, [x21, 2192] + cmp w0, 19 + beq .L933 +.L994: + mov w0, 7 + b .L991 +.L933: + mov w0, 15 +.L991: + strb w0, [x1, #:lo12:g_maxRetryCount] + b .L925 +.L932: + sub w3, w0, #65 + cmp w0, 33 + and w3, w3, 255 + ccmp w3, 1, 0, ne + bhi .L934 + adrp x0, ToshibaReadRetrial + add x0, x0, :lo12:ToshibaReadRetrial + str x0, [x21, 2192] + mov w0, 4 + strb w0, [x2, #:lo12:g_maxRegNum] + b .L994 +.L934: + sub w3, w0, #34 + sub w2, w0, #67 + and w3, w3, 255 + and w2, w2, 255 + cmp w3, 1 + ccmp w2, 1, 0, hi + bhi .L935 + adrp x3, ToshibaReadRetrial + add x3, x3, :lo12:ToshibaReadRetrial + str x3, [x21, 2192] + cmp w0, 35 + mov w3, 68 + ccmp w0, w3, 4, ne + beq .L936 + mov w0, 7 +.L990: + strb w0, [x1, #:lo12:g_maxRetryCount] + cmp w2, 1 + bhi .L938 + mov w0, 4 +.L992: + strb w0, [x4, #:lo12:g_maxRegNum] + b .L925 +.L936: + mov w0, 17 + b .L990 +.L938: + mov w0, 5 + b .L992 +.L935: + cmp w0, 49 + bne .L939 + adrp x0, SamsungReadRetrial + add x0, x0, :lo12:SamsungReadRetrial + str x0, [x21, 2192] + b .L925 +.L939: + cmp w0, 50 + bne .L925 + adrp x0, samsung_read_retrial + str wzr, [x21, 2100] + add x0, x0, :lo12:samsung_read_retrial + str x0, [x21, 2192] + b .L925 +.L947: + mov w0, -2 + b .L893 +.L907: + strb w5, [x3, 2248] + b .L906 .size FlashInit, .-FlashInit .align 2 .global FlashPageProgMsbFFData @@ -6411,69 +6310,65 @@ FlashInit: FlashPageProgMsbFFData: stp x29, x30, [sp, -80]! add x29, sp, 0 - stp x19, x20, [sp,16] - uxth w19, w2 + stp x21, x22, [sp, 32] + and w22, w0, 255 + adrp x21, .LANCHOR2 + add x0, x21, :lo12:.LANCHOR2 + stp x19, x20, [sp, 16] + and w19, w2, 65535 + stp x23, x24, [sp, 48] + str x25, [sp, 64] + ldrb w2, [x0, 1220] + cbz w2, .L996 + ldr w0, [x0, 2100] + cbnz w0, .L995 +.L996: adrp x20, .LANCHOR0 - adrp x2, .LANCHOR2 - str x25, [sp,64] - stp x21, x22, [sp,32] - add x3, x2, :lo12:.LANCHOR2 - uxtb w22, w0 - add x0, x20, :lo12:.LANCHOR0 - mov x21, x2 - stp x23, x24, [sp,48] - ldr x0, [x0,104] - ldrb w4, [x3,1220] - ldrb w0, [x0,19] - cbz w4, .L986 - ldr w2, [x3,2100] - cbnz w2, .L985 -.L986: - sub w2, w0, #5 - uxtb w2, w2 - cmp w2, 2 - bls .L987 - cmp w0, 50 - beq .L987 - sub w2, w0, #19 - and w2, w2, -17 - uxtb w2, w2 - cbz w2, .L987 - cmp w0, 68 - bne .L985 -.L987: - mov w23, w1 add x20, x20, :lo12:.LANCHOR0 + ldr x0, [x20, 104] + ldrb w0, [x0, 19] + sub w0, w0, #5 + and w3, w0, 255 + cmp w3, 63 + bhi .L995 + mov x2, 16391 + movk x2, 0x4000, lsl 16 + movk x2, 0x2000, lsl 32 + movk x2, 0x8000, lsl 48 + lsr x0, x2, x3 + tbz x0, 0, .L995 + mov w23, w1 + add x24, x20, 1168 + add x21, x21, :lo12:.LANCHOR2 mov w25, 65535 -.L990: - ldr x0, [x20,104] - ldrh w0, [x0,10] +.L998: + ldr x0, [x20, 104] + ldrh w0, [x0, 10] cmp w0, w19 - bls .L985 - add x0, x20, 1168 - ldrh w0, [x0,w19,sxtw 1] - cmp w0, w25 - bne .L985 - add x24, x21, :lo12:.LANCHOR2 - mov w1, 255 - mov w2, 32768 - ldr x0, [x24,2216] - bl ftl_memset - ldr x2, [x24,2216] - add w1, w19, w23 - mov w0, w22 - add w19, w19, 1 - mov x3, x2 - uxth w19, w19 - bl FlashProgPage - b .L990 -.L985: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldr x25, [sp,64] + bhi .L999 +.L995: + 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 +.L999: + ldrh w0, [x24, w19, sxtw 1] + cmp w0, w25 + bne .L995 + ldr x0, [x21, 2216] + mov w2, 32768 + mov w1, 255 + bl ftl_memset + ldr x3, [x21, 2216] + add w1, w19, w23 + add w19, w19, 1 + mov w0, w22 + and w19, w19, 65535 + mov x2, x3 + bl FlashProgPage + b .L998 .size FlashPageProgMsbFFData, .-FlashPageProgMsbFFData .align 2 .global FlashReadSlc2KPages @@ -6481,715 +6376,686 @@ FlashPageProgMsbFFData: FlashReadSlc2KPages: stp x29, x30, [sp, -144]! add x29, sp, 0 - stp x23, x24, [sp,48] - mov w24, w1 - adrp x23, .LANCHOR0 - adrp x1, .LANCHOR1+481 - str w2, [x29,116] - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] mov x19, x0 - add x0, x23, :lo12:.LANCHOR0 - str x0, [x29,120] - add x0, x0, 3220 - stp x25, x26, [sp,64] - str x0, [x29,104] - adrp x0, .LC16 - ldrb w25, [x1,#:lo12:.LANCHOR1+481] - add x0, x0, :lo12:.LC16 - stp x21, x22, [sp,32] - stp x27, x28, [sp,80] - mov w22, 0 - str x0, [x29,96] -.L1002: - cmp w22, w24 - beq .L1066 - ldr w1, [x29,116] - sub w4, w24, w22 - mov x0, x19 - add x2, x29, 140 + mov w0, 56 + stp x21, x22, [sp, 32] + str w2, [x29, 120] + adrp x2, .LANCHOR1+481 + umaddl x0, w1, w0, x19 + stp x25, x26, [sp, 64] + str x0, [x29, 112] + and w22, w1, 255 + adrp x0, .LANCHOR0 + ldrb w2, [x2, #:lo12:.LANCHOR1+481] + add x26, x0, :lo12:.LANCHOR0 + stp x23, x24, [sp, 48] + add x0, x26, 3072 + stp x27, x28, [sp, 80] + str x0, [x29, 96] + str w2, [x29, 124] +.L1005: + ldr x0, [x29, 112] + cmp x19, x0 + bne .L1025 + ldp x19, x20, [sp, 16] + mov w0, 0 + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] + ldp x27, x28, [sp, 80] + ldp x29, x30, [sp], 144 + ret +.L1025: + ldr w1, [x29, 120] + mov w4, w22 add x3, x29, 136 + add x2, x29, 140 + mov x0, x19 bl LogAddr2PhyAddr - ldr x1, [x29,120] - ldr w0, [x29,136] - ldrb w1, [x1,3216] - cmp w0, w1 - bcc .L1003 + ldrb w1, [x26, 3216] + ldr w0, [x29, 136] + cmp w1, w0 + bhi .L1006 mov w0, -1 str w0, [x19] - b .L1004 -.L1003: - ldr x1, [x29,104] - mov w23, 0 - adrp x27, .LANCHOR2 +.L1007: + sub w22, w22, #1 + add x19, x19, 56 + and w22, w22, 255 + b .L1005 +.L1006: + ldr x1, [x29, 96] + adrp x21, .LANCHOR2 + mov w25, 0 + add x23, x21, :lo12:.LANCHOR2 mov w28, 256 - ldrb w20, [x1,w0,uxtw] + add x0, x1, w0, uxtw + ldrb w20, [x0, 148] mov w0, w20 bl NandcWaitFlashReady mov w0, w20 bl NandcFlashCs -.L1005: - ldr w1, [x29,140] +.L1008: + ldr w1, [x29, 140] mov w0, w20 - adrp x21, .LANCHOR2 bl FlashReadCmd mov w0, w20 bl NandcWaitFlashReady - ldr x3, [x19,8] - mov w0, w20 - ldr x4, [x19,16] + ldrb w2, [x29, 124] mov w1, 0 - mov w2, w25 + ldp x3, x4, [x19, 8] + mov w0, w20 bl NandcXferData - mov w26, w0 - add x0, x27, :lo12:.LANCHOR2 - ldrb w0, [x0,2248] - cbz w0, .L1006 + mov w24, w0 + ldrb w0, [x23, 2248] + cbz w0, .L1009 mov w0, w20 bl flash_read_ecc cmp w0, 5 - csel w26, w26, w28, ls -.L1006: - cmn w26, #1 - bne .L1007 - cmp w23, 9 - bhi .L1007 - add w23, w23, 1 - b .L1005 -.L1007: - cmp w23, wzr - mov w27, 256 - csel w26, w26, w27, eq - mov w23, 0 + csel w24, w24, w28, ls .L1009: + cmp w25, 9 + ccmn w24, #1, 0, ls + bne .L1010 + add w25, w25, 1 + b .L1008 +.L1010: + cmp w25, 0 adrp x0, .LANCHOR0 - ldr w1, [x29,140] - add x0, x0, :lo12:.LANCHOR0 - ldr w2, [x0,92] + mov w23, 256 + csel w24, w24, w23, eq + add x28, x0, :lo12:.LANCHOR0 + mov w25, 0 + add x0, x21, :lo12:.LANCHOR2 + str x0, [x29, 104] +.L1012: + ldr w0, [x28, 92] + ldr w1, [x29, 140] + add w1, w1, w0 mov w0, w20 - add w1, w2, w1 bl FlashReadCmd mov w0, w20 bl NandcWaitFlashReady - ldr x0, [x19,8] + ldr x0, [x19, 8] mov w1, 0 - mov w2, w25 - cmp x0, xzr + ldrb w2, [x29, 124] + cmp x0, 0 add x3, x0, 2048 - ldr x0, [x19,16] + ldr x0, [x19, 16] csel x3, x3, xzr, ne + cmp x0, 0 add x4, x0, 8 - cmp x0, xzr csel x4, x4, xzr, ne mov w0, w20 bl NandcXferData - mov w28, w0 - add x0, x21, :lo12:.LANCHOR2 - ldrb w0, [x0,2248] - cbz w0, .L1012 + mov w27, w0 + ldr x0, [x29, 104] + ldrb w0, [x0, 2248] + cbz w0, .L1015 mov w0, w20 bl flash_read_ecc cmp w0, 5 - csel w28, w28, w27, ls -.L1012: - cmn w28, #1 - bne .L1013 - cmp w23, 9 - bhi .L1013 - add w23, w23, 1 - b .L1009 -.L1013: - cmp w23, wzr + csel w27, w27, w23, ls +.L1015: + cmp w25, 9 + ccmn w27, #1, 0, ls + bne .L1016 + add w25, w25, 1 + b .L1012 +.L1016: + cmp w25, 0 + mov w2, 256 mov w0, w20 - mov w27, 256 - csel w28, w28, w27, eq + csel w27, w27, w2, eq bl NandcFlashDeCs add x0, x21, :lo12:.LANCHOR2 - cmp w28, w26 - csel w28, w28, w26, cs - ldrb w0, [x0,1221] + cmp w24, w27 + csel w5, w24, w27, cs + ldrb w0, [x0, 1221] add w0, w0, w0, lsl 1 - cmp w28, w0, lsr 2 - bls .L1015 - cmn w28, #1 - csel w28, w28, w27, eq -.L1015: - cmp w28, 256 - beq .L1026 - cmn w28, #1 - bne .L1016 -.L1026: - str w28, [x19] - b .L1018 -.L1016: - str wzr, [x19] + cmp w5, w0, lsr 2 + bls .L1018 + cmn w5, #1 + csel w5, w5, w2, eq .L1018: - ldr x0, [x19,16] - cbz x0, .L1019 - ldr w1, [x0,12] + cmp w5, 256 + ldr x0, [x19, 16] + ccmn w5, #1, 4, ne + csel w5, w5, wzr, eq + str w5, [x19] + cbz x0, .L1021 + ldr w1, [x0, 12] cmn w1, #1 - bne .L1019 - ldr w1, [x0,8] + bne .L1021 + ldr w1, [x0, 8] cmn w1, #1 - bne .L1019 + bne .L1021 ldr w0, [x0] cmn w0, #1 - beq .L1019 + beq .L1021 str w1, [x19] -.L1019: +.L1021: ldr w3, [x19] cmn w3, #1 - bne .L1004 + bne .L1007 add x21, x21, :lo12:.LANCHOR2 - ldr w1, [x19,4] - ldr x0, [x29,96] - ldrb w2, [x21,1221] + ldr w1, [x19, 4] + adrp x0, .LC16 + add x0, x0, :lo12:.LC16 + ldrb w2, [x21, 1221] bl printk - ldr x1, [x19,8] - cbz x1, .L1021 + ldr x1, [x19, 8] + cbz x1, .L1023 adrp x0, .LC17 + mov w3, 8 mov w2, 4 add x0, x0, :lo12:.LC17 - mov w3, 8 bl rknand_print_hex -.L1021: - ldr x1, [x19,16] - cbz x1, .L1004 +.L1023: + ldr x1, [x19, 16] + cbz x1, .L1007 + mov w3, 4 adrp x0, .LC18 - mov w2, 4 + mov w2, w3 add x0, x0, :lo12:.LC18 - mov w3, w2 bl rknand_print_hex -.L1004: - add w22, w22, 1 - add x19, x19, 56 - b .L1002 -.L1066: - mov w0, 0 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 144 - ret + b .L1007 .size FlashReadSlc2KPages, .-FlashReadSlc2KPages .align 2 .global FlashReadPages .type FlashReadPages, %function FlashReadPages: stp x29, x30, [sp, -160]! - adrp x3, .LANCHOR1+481 add x29, sp, 0 - stp x23, x24, [sp,48] - adrp x23, .LANCHOR0 - ldrb w3, [x3,#:lo12:.LANCHOR1+481] - add x23, x23, :lo12:.LANCHOR0 - str w3, [x29,136] - stp x25, x26, [sp,64] - stp x19, x20, [sp,16] - ldrb w3, [x23,96] + stp x25, x26, [sp, 64] + adrp x25, .LANCHOR0 + add x3, x25, :lo12:.LANCHOR0 + stp x19, x20, [sp, 16] + stp x21, x22, [sp, 32] + stp x23, x24, [sp, 48] + stp x27, x28, [sp, 80] + stp w2, w1, [x29, 120] + ldrb w4, [x3, 88] + cbnz w4, .L1054 mov x26, x0 - ldrb w24, [x23,88] - stp x21, x22, [sp,32] - stp x27, x28, [sp,80] - str w1, [x29,132] - str w2, [x29,128] - str w3, [x29,116] - cbz w24, .L1107 - bl FlashReadSlc2KPages - b .L1156 -.L1107: - add x0, x23, 3220 - str x0, [x29,104] + adrp x0, .LANCHOR1+481 + mov w24, 0 + mov w23, 0 + ldrb w0, [x0, #:lo12:.LANCHOR1+481] + str w0, [x29, 136] + ldrb w0, [x3, 96] + str w0, [x29, 108] adrp x0, .LANCHOR2 - mov w25, w24 - add x21, x0, :lo12:.LANCHOR2 - add x0, x21, 1236 - str x0, [x29,120] -.L1068: - ldr w0, [x29,132] - cmp w25, w0 - bcs .L1158 + add x20, x0, :lo12:.LANCHOR2 + add x0, x20, 1236 + str x0, [x29, 112] +.L1055: + ldr w0, [x29, 124] + cmp w23, w0 + bcc .L1089 + mov w0, 0 + b .L1053 +.L1054: + bl FlashReadSlc2KPages +.L1053: + 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 +.L1089: mov w27, 56 - ldr w0, [x29,132] - ldr w1, [x29,128] + ldr w1, [x29, 120] add x2, x29, 156 - umull x27, w25, w27 - sub w4, w0, w25 add x3, x29, 152 - add x22, x26, x27 + umull x0, w23, w27 + add x27, x25, :lo12:.LANCHOR0 + str x0, [x29, 128] + add x22, x26, x0 + ldr w0, [x29, 124] + sub w4, w0, w23 mov x0, x22 - ldr w28, [x22,4] + ldr w28, [x22, 4] bl LogAddr2PhyAddr - ldrb w1, [x23,3216] - mov w20, w0 - ldr w0, [x29,152] - cmp w0, w1 - bcc .L1070 + ldrb w2, [x27, 3216] + mov w21, w0 + ldr w0, [x29, 152] + cmp w2, w0 + bhi .L1057 + ldr x1, [x29, 128] mov w0, -1 - str w0, [x26,x27] - b .L1071 -.L1070: - ldr x1, [x29,104] - ldrb w19, [x1,w0,uxtw] + str w0, [x26, x1] +.L1058: + add w23, w23, 1 + b .L1055 +.L1057: + add x0, x27, w0, uxtw + ldrb w19, [x0, 3220] adrp x0, .LANCHOR2 add x0, x0, :lo12:.LANCHOR2 - ldrb w0, [x0,2249] - cmp w0, wzr + ldrb w0, [x0, 2249] + cmp w0, 0 mov w0, w19 - csel w20, w20, wzr, ne + csel w21, w21, wzr, ne bl NandcWaitFlashReady - ldr x0, [x23,104] - ldrb w1, [x0,19] + ldr x0, [x27, 104] + ldrb w1, [x0, 19] sub w0, w1, #1 - uxtb w0, w0 + and w0, w0, 255 cmp w0, 7 - bhi .L1073 - sub w1, w1, #7 - add x0, x21, 1232 + bhi .L1060 + add x0, x20, 1232 sxtw x2, w19 add x0, x0, x2 - uxtb w1, w1 + sub w1, w1, #7 + and w1, w1, 255 cmp w1, 1 - ldrb w3, [x0,12] - bhi .L1074 - ldrb w3, [x0,20] -.L1074: - add x2, x21, x2 - ldrb w0, [x2,2088] + ldrb w3, [x0, 12] + bhi .L1061 + ldrb w3, [x0, 20] +.L1061: + add x2, x20, x2 + ldrb w0, [x2, 2088] cmp w0, w3 - beq .L1073 - ldrb w1, [x21,1233] + beq .L1060 + ldrb w1, [x20, 1233] mov w0, w19 - ldr x2, [x29,120] + ldr x2, [x29, 112] bl HynixSetRRPara -.L1073: +.L1060: mov w0, w19 bl NandcFlashCs - ldr w0, [x29,128] + ldr w0, [x29, 120] cmp w0, 1 cset w0, eq orr w0, w0, w28, lsr 31 - str w0, [x29,140] - cbz w0, .L1075 - ldrb w0, [x21,1220] - cbz w0, .L1075 + str w0, [x29, 140] + cbz w0, .L1062 + ldrb w0, [x20, 1220] + cbz w0, .L1062 mov w0, w19 bl flash_enter_slc_mode - b .L1076 -.L1075: - mov w0, w19 - bl flash_exit_slc_mode -.L1076: - cmp w19, 255 - ldr w1, [x29,156] - bne .L1114 +.L1063: + add x28, x25, :lo12:.LANCHOR0 +.L1069: + ldr w1, [x29, 156] cmn w1, #1 - cset w0, ne - cbz w0, .L1108 -.L1114: - cbz w20, .L1080 - ldr w2, [x23,92] + bne .L1064 + cmp w19, 255 + beq .L1091 +.L1064: + cbz w21, .L1066 + ldr w2, [x28, 92] mov w0, w19 add w2, w1, w2 bl FlashReadDpCmd - b .L1081 -.L1080: +.L1067: + mov w0, w19 + bl NandcWaitFlashReady + cbz w21, .L1065 + ldr w1, [x29, 156] + mov w0, w19 + bl FlashReadDpDataOutCmd +.L1065: + ldrb w2, [x29, 136] + mov w1, 0 + ldp x3, x4, [x22, 8] + mov w0, w19 + bl NandcXferData + mov w27, w0 + ldrb w0, [x28, 96] + cbz w0, .L1068 + cmn w27, #1 + bne .L1068 + strb wzr, [x28, 96] + mov w21, 0 + b .L1069 +.L1062: + mov w0, w19 + bl flash_exit_slc_mode + b .L1063 +.L1066: mov w0, w19 bl FlashReadCmd - b .L1081 -.L1108: - mov w20, w0 -.L1078: - ldrb w2, [x29,136] + b .L1067 +.L1091: + mov w21, 0 + b .L1065 +.L1068: + cbz w21, .L1070 + add x0, x25, :lo12:.LANCHOR0 + ldr w1, [x29, 156] + ldr w0, [x0, 92] + add w1, w1, w0 mov w0, w19 - ldr x3, [x22,8] - mov w1, 0 - ldr x4, [x22,16] - bl NandcXferData - cmn w0, #1 - mov w28, w0 - bne .L1082 - ldrb w0, [x23,96] - cbz w0, .L1082 - strb wzr, [x23,96] - mov w20, 0 - b .L1076 -.L1082: - cbz w20, .L1083 - ldr w2, [x23,92] - mov w0, w19 - ldr w1, [x29,156] - add w1, w2, w1 bl FlashReadDpDataOutCmd - add w0, w25, 1 - mov w4, 56 - ldrb w2, [x29,136] + add w0, w23, 1 + mov w1, 56 + ldrb w2, [x29, 136] + nop // between mem op and mult-accumulate + umaddl x0, w0, w1, x26 mov w1, 0 - umull x4, w0, w4 + ldp x3, x4, [x0, 8] mov w0, w19 - add x4, x26, x4 - ldr x3, [x4,8] - ldr x4, [x4,16] bl NandcXferData cmn w0, #1 mov w24, w0 - csel w20, w20, wzr, ne -.L1083: + csel w21, w21, wzr, ne +.L1070: mov w0, w19 bl NandcFlashDeCs - ldrb w0, [x29,116] - cmn w28, #1 - strb w0, [x23,96] - bne .L1090 - ldrb w0, [x21,2104] - cbnz w0, .L1085 -.L1089: - ldr x20, [x21,2192] - cbnz x20, .L1086 - b .L1159 -.L1085: - ldr x0, [x21,1152] + add x0, x25, :lo12:.LANCHOR0 + ldrb w1, [x29, 108] + cmn w27, #1 + strb w1, [x0, 96] + bne .L1071 + ldrb w0, [x20, 2104] + cbnz w0, .L1072 +.L1076: + ldr x4, [x20, 2192] + cbnz x4, .L1073 + ldr w1, [x29, 156] + mov w0, w19 + ldp x2, x3, [x22, 8] + bl FlashReadRawPage + b .L1128 +.L1072: + ldr x0, [x20, 1152] mov w4, 1 - ldr w1, [x29,156] - ldr x2, [x22,8] - ldr x3, [x22,16] - ldr w20, [x0,304] + ldr w1, [x29, 156] + ldp x2, x3, [x22, 8] + ldr w21, [x0, 304] mov w0, w19 bl FlashDdrTunningRead + mov w27, w0 cmn w0, #1 - mov w28, w0 - beq .L1088 - ldrb w0, [x21,1221] - cmp w28, w0, lsr 1 - bls .L1110 -.L1088: - lsr w0, w20, 8 + beq .L1075 + ldrb w0, [x20, 1221] + cmp w27, w0, lsr 1 + bls .L1092 +.L1075: + lsr w0, w21, 8 bl NandcSetDdrPara - cmn w28, #1 - beq .L1089 - b .L1110 -.L1086: - ldr w1, [x29,156] - mov w0, w19 - ldr x2, [x22,8] - ldr x3, [x22,16] - blr x20 - cmn w0, #1 - mov w28, w0 - mov w20, 0 - bne .L1091 - ldr x0, [x23,104] - ldrb w0, [x0,19] - sub w0, w0, #1 - uxtb w0, w0 - cmp w0, 7 - bhi .L1092 - ldrb w1, [x21,1233] - mov w0, w19 - ldr x2, [x29,120] - mov w3, w20 - bl HynixSetRRPara + cmn w27, #1 + beq .L1076 .L1092: - ldr w1, [x29,156] - mov w0, w19 - ldr x2, [x22,8] - mov w20, 0 - ldr x3, [x22,16] - bl FlashReadRawPage - mov w28, w0 - ldr w1, [x22,4] - adrp x0, .LC19 - ldrb w2, [x21,1221] - add x0, x0, :lo12:.LC19 - mov w3, w28 - bl printk - cmn w28, #1 - bne .L1091 - ldrb w0, [x21,1220] - cbz w0, .L1091 - ldr w0, [x29,140] - cbz w0, .L1093 - mov w0, w19 - bl flash_enter_slc_mode - b .L1094 -.L1093: - mov w0, w19 - bl flash_exit_slc_mode -.L1094: - ldr x4, [x21,2192] - mov w0, w19 - ldr w1, [x29,156] - mov w20, 0 - ldr x2, [x22,8] - ldr x3, [x22,16] - blr x4 - mov w28, w0 - b .L1091 -.L1159: - ldr w1, [x29,156] - mov w0, w19 - ldr x2, [x22,8] - ldr x3, [x22,16] - bl FlashReadRawPage - mov w28, w0 - b .L1091 -.L1110: - mov w20, 0 -.L1090: - ldrb w0, [x21,1221] + mov w21, 0 +.L1071: + ldrb w0, [x20, 1221] add w0, w0, w0, lsl 1 - cmp w28, w0, lsr 2 - bls .L1091 - ldr x0, [x21,2192] - cmp x0, xzr + cmp w27, w0, lsr 2 + bls .L1077 + ldr x0, [x20, 2192] + cmp x0, 0 mov w0, 256 - csel w28, w28, w0, ne -.L1091: - cmp w28, 256 - beq .L1115 - cmn w28, #1 - bne .L1095 -.L1115: - str w28, [x26,x27] - b .L1097 -.L1095: - str wzr, [x26,x27] -.L1097: - ldr w3, [x26,x27] + csel w27, w27, w0, ne +.L1077: + ldr x0, [x29, 128] + cmp w27, 256 + ccmn w27, #1, 4, ne + csel w3, w27, wzr, eq cmn w3, #1 - bne .L1099 - ldr w1, [x22,4] + str w3, [x26, x0] + bne .L1084 + ldr w1, [x22, 4] adrp x0, .LC16 - ldrb w2, [x21,1221] + ldrb w2, [x20, 1221] add x0, x0, :lo12:.LC16 bl printk - ldr x1, [x22,16] - cbz x1, .L1099 + ldr x1, [x22, 16] + cbz x1, .L1084 + mov w3, 4 adrp x0, .LC18 - mov w2, 4 + mov w2, w3 add x0, x0, :lo12:.LC18 - mov w3, w2 bl rknand_print_hex -.L1099: - cbz w20, .L1101 - ldrb w0, [x21,1221] +.L1084: + cbz w21, .L1086 + ldrb w0, [x20, 1221] add w0, w0, w0, lsl 1 cmp w24, w0, lsr 2 - bls .L1102 - ldr x0, [x21,2192] - cmp x0, xzr + bls .L1087 + ldr x0, [x20, 2192] + cmp x0, 0 mov w0, 256 csel w24, w24, w0, ne -.L1102: - add w0, w25, 1 +.L1087: + add w0, w23, 1 mov w1, 56 cmp w24, 256 + ccmn w24, #1, 4, ne umull x0, w0, w1 - beq .L1116 - cmn w24, #1 - bne .L1103 -.L1116: - str w24, [x26,x0] - b .L1101 -.L1103: - str wzr, [x26,x0] -.L1101: - ldr w0, [x29,140] - add w25, w25, w20 - cbz w0, .L1071 - ldrb w0, [x21,1220] - cbz w0, .L1071 + csel w1, w24, wzr, eq + str w1, [x26, x0] +.L1086: + ldr w0, [x29, 140] + add w23, w23, w21 + cbz w0, .L1058 + ldrb w0, [x20, 1220] + cbz w0, .L1058 mov w0, w19 bl flash_exit_slc_mode -.L1071: - add w25, w25, 1 - b .L1068 -.L1158: - mov w0, 0 - b .L1156 -.L1081: + b .L1058 +.L1073: + ldr w1, [x29, 156] mov w0, w19 - bl NandcWaitFlashReady - cbz w20, .L1078 - ldr w1, [x29,156] + ldp x2, x3, [x22, 8] + mov w21, 0 + blr x4 + mov w27, w0 + cmn w0, #1 + bne .L1077 + add x0, x25, :lo12:.LANCHOR0 + ldr x0, [x0, 104] + ldrb w0, [x0, 19] + sub w0, w0, #1 + and w0, w0, 255 + cmp w0, 7 + bhi .L1078 + ldrb w1, [x20, 1233] + mov w3, 0 + ldr x2, [x29, 112] mov w0, w19 - bl FlashReadDpDataOutCmd - b .L1078 -.L1156: - 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 + bl HynixSetRRPara +.L1078: + ldp x2, x3, [x22, 8] + mov w0, w19 + ldr w1, [x29, 156] + bl FlashReadRawPage + mov w27, w0 + ldrb w2, [x20, 1221] + mov w3, w0 + ldr w1, [x22, 4] + adrp x0, .LC19 + add x0, x0, :lo12:.LC19 + bl printk + cmn w27, #1 + bne .L1095 + ldrb w0, [x20, 1220] + cbz w0, .L1095 + ldr w0, [x29, 140] + cbz w0, .L1079 + mov w0, w19 + bl flash_enter_slc_mode +.L1080: + ldr w1, [x29, 156] + mov w0, w19 + ldr x4, [x20, 2192] + ldp x2, x3, [x22, 8] + blr x4 +.L1128: + mov w27, w0 +.L1095: + mov w21, 0 + b .L1077 +.L1079: + mov w0, w19 + bl flash_exit_slc_mode + b .L1080 .size FlashReadPages, .-FlashReadPages .align 2 .global FlashLoadFactorBbt .type FlashLoadFactorBbt, %function FlashLoadFactorBbt: - stp x29, x30, [sp, -192]! - mov w1, 0 + stp x29, x30, [sp, -176]! mov w2, 16 + mov w1, 0 add x29, sp, 0 - stp x21, x22, [sp,32] - adrp x22, .LANCHOR2 - stp x19, x20, [sp,16] - add x19, x22, :lo12:.LANCHOR2 - stp x25, x26, [sp,64] - stp x27, x28, [sp,80] - stp x23, x24, [sp,48] - mov w27, -1 - mov w28, 0 - ldrh w0, [x19,1204] - adrp x25, .LC20 - ldrh w21, [x19,1206] - adrp x26, .LANCHOR0 - add x25, x25, :lo12:.LC20 - mul w21, w0, w21 + stp x19, x20, [sp, 16] + stp x23, x24, [sp, 48] + adrp x23, .LANCHOR2 + add x19, x23, :lo12:.LANCHOR2 + stp x25, x26, [sp, 64] + stp x27, x28, [sp, 80] + mov w26, -1 + stp x21, x22, [sp, 32] + mov w27, 0 + ldrh w0, [x19, 1204] + ldrh w21, [x19, 1206] + mul w21, w21, w0 add x0, x19, 2256 - uxth w21, w21 bl ftl_memset - add w24, w21, w27 - ldr x0, [x19,2224] - str xzr, [x29,144] - mov w19, w28 - str x0, [x29,152] - uxth w24, w24 -.L1161: - add x1, x26, :lo12:.LANCHOR0 - ldrb w1, [x1,3216] - cmp w1, w19 - bls .L1171 - mul w4, w19, w21 - mov w20, w24 - sub w3, w21, #12 - mov w5, 61664 -.L1162: - cmp w20, w3 - ble .L1164 - add w1, w4, w20 - add x0, x29, 136 - lsl w1, w1, 10 - str w1, [x29,140] - mov w1, 1 - str x5, [x29,104] - mov w2, w1 - str x3, [x29,112] - str x4, [x29,120] - bl FlashReadPages - ldr w0, [x29,136] - ldr x4, [x29,120] - cmn w0, #1 - ldr x3, [x29,112] - ldr x5, [x29,104] - beq .L1163 - add x23, x22, :lo12:.LANCHOR2 - ldr x0, [x23,2224] - ldrh w0, [x0] - cmp w0, w5 - bne .L1163 - add x23, x23, 2256 - mov x0, x25 - mov w1, w19 - mov w2, w20 - add w28, w28, 1 - bl printk - strh w20, [x23,w19,sxtw 1] - uxth w28, w28 - b .L1164 -.L1163: - sub w20, w20, #1 - uxth w20, w20 - b .L1162 -.L1164: - adrp x0, .LANCHOR0 - add w19, w19, 1 - add x1, x0, :lo12:.LANCHOR0 - uxtb w19, w19 - ldrb w1, [x1,3216] - cmp w1, w28 - csel w27, w27, wzr, ne - b .L1161 -.L1171: - mov w0, w27 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 192 + and w21, w21, 65535 + ldr x0, [x19, 2224] + add w25, w21, w26 + stp xzr, x0, [x29, 128] + and w25, w25, 65535 + sub w0, w21, #12 + mov w19, 0 + str w0, [x29, 108] +.L1130: + adrp x22, .LANCHOR0 + add x0, x22, :lo12:.LANCHOR0 + ldrb w0, [x0, 3216] + cmp w0, w19 + bhi .L1136 + mov w0, w26 + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] + ldp x27, x28, [sp, 80] + ldp x29, x30, [sp], 176 ret +.L1136: + mul w28, w21, w19 + mov w20, w25 + add x24, x23, :lo12:.LANCHOR2 + mov w3, 61664 +.L1131: + ldr w0, [x29, 108] + cmp w20, w0 + ble .L1133 + add w0, w20, w28 + mov w2, 1 + lsl w0, w0, 10 + str w3, [x29, 104] + str w0, [x29, 124] + mov w1, w2 + add x0, x29, 120 + bl FlashReadPages + ldr w0, [x29, 120] + ldr w3, [x29, 104] + cmn w0, #1 + beq .L1132 + ldr x0, [x24, 2224] + ldrh w0, [x0] + cmp w0, w3 + bne .L1132 + add x24, x24, w19, sxtw 1 + add w27, w27, 1 + and w27, w27, 65535 + mov w2, w20 + mov w1, w19 + adrp x0, .LC20 + add x0, x0, :lo12:.LC20 + bl printk + strh w20, [x24, 2256] +.L1133: + add x22, x22, :lo12:.LANCHOR0 + add w19, w19, 1 + and w19, w19, 255 + ldrb w0, [x22, 3216] + cmp w0, w27 + csel w26, w26, wzr, ne + b .L1130 +.L1132: + sub w20, w20, #1 + and w20, w20, 65535 + b .L1131 .size FlashLoadFactorBbt, .-FlashLoadFactorBbt .align 2 .global FlashReadFacBbtData .type FlashReadFacBbtData, %function FlashReadFacBbtData: stp x29, x30, [sp, -144]! - adrp x4, .LANCHOR2 add x29, sp, 0 - stp x21, x22, [sp,32] - mov x22, x0 - add x0, x4, :lo12:.LANCHOR2 - stp x19, x20, [sp,16] - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] + stp x23, x24, [sp, 48] mov w23, w1 + adrp x1, .LANCHOR2 + add x1, x1, :lo12:.LANCHOR2 + stp x19, x20, [sp, 16] + stp x21, x22, [sp, 32] + mov x22, x0 + stp x25, x26, [sp, 64] mov w25, w2 - ldrh w1, [x0,1206] - mov x21, x4 - ldrh w3, [x0,1204] + mov x21, x1 mov w26, 61664 - ldr x0, [x0,2224] - str x0, [x29,104] - mul w3, w3, w1 - adrp x1, .LANCHOR0 - uxth w3, w3 - sub w20, w3, #1 - ldr x1, [x1,#:lo12:.LANCHOR0] - mul w24, w23, w3 - str x1, [x29,96] - uxth w20, w20 - sub w19, w3, #16 -.L1173: + ldrh w2, [x1, 1204] + ldrh w0, [x1, 1206] + mul w0, w0, w2 + adrp x2, .LANCHOR0+64 + and w0, w0, 65535 + ldr x2, [x2, #:lo12:.LANCHOR0+64] + sub w20, w0, #1 + str x2, [x29, 96] + and w20, w20, 65535 + ldr x2, [x1, 2224] + mul w24, w0, w23 + sub w19, w0, #16 + str x2, [x29, 104] +.L1142: cmp w20, w19 - ble .L1181 + bgt .L1145 + mov w0, -1 + b .L1141 +.L1145: add w0, w20, w24 - mov w1, 1 + mov w2, 1 lsl w0, w0, 10 - mov w2, w1 - str w0, [x29,92] + mov w1, w2 + str w0, [x29, 92] add x0, x29, 88 bl FlashReadPages - ldr w0, [x29,88] + ldr w0, [x29, 88] cmn w0, #1 - beq .L1174 - add x0, x21, :lo12:.LANCHOR2 - ldr x0, [x0,2224] + beq .L1143 + ldr x0, [x21, 2224] ldrh w0, [x0] cmp w0, w26 - bne .L1174 - mov w0, w22 - cbz x22, .L1175 - mov x0, x22 - mov w1, w23 + bne .L1143 + cbz x22, .L1146 mov w2, w25 + mov w1, w23 + mov x0, x22 bl FlashReadFacBbtData.part.6 - b .L1175 -.L1174: - sub w20, w20, #1 - uxth w20, w20 - b .L1173 -.L1181: - mov w0, -1 -.L1175: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] +.L1141: + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] ldp x29, x30, [sp], 144 ret +.L1143: + sub w20, w20, #1 + and w20, w20, 65535 + b .L1142 +.L1146: + mov w0, 0 + b .L1141 .size FlashReadFacBbtData, .-FlashReadFacBbtData .align 2 .global FlashGetBadBlockList @@ -7197,264 +7063,262 @@ FlashReadFacBbtData: FlashGetBadBlockList: stp x29, x30, [sp, -48]! add x29, sp, 0 - str x21, [sp,32] + str x21, [sp, 32] mov x21, x0 adrp x0, .LANCHOR0+104 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] adrp x20, .LANCHOR2 - ldr x0, [x0,#:lo12:.LANCHOR0+104] - ldrb w2, [x0,13] - ldrh w19, [x0,14] - add x0, x20, :lo12:.LANCHOR2 - mul w19, w2, w19 - ldr x0, [x0,2216] - uxth w19, w19 + add x20, x20, :lo12:.LANCHOR2 + ldr x0, [x0, #:lo12:.LANCHOR0+104] + ldrb w2, [x0, 13] + ldrh w19, [x0, 14] + ldr x0, [x20, 2216] + mul w19, w19, w2 + and w19, w19, 65535 add w2, w19, 7 lsr w2, w2, 3 bl FlashReadFacBbtData cmn w0, #1 - bne .L1183 -.L1187: - mov w1, 0 - b .L1184 -.L1183: - mov w2, 0 - lsr w0, w19, 4 - mov w1, w2 - sub w19, w19, #1 - mov w5, 1 -.L1185: - cmp w2, w19 - bge .L1184 - add x3, x20, :lo12:.LANCHOR2 - ubfx x4, x2, 5, 11 - ldr x6, [x3,2216] - lsl w3, w5, w2 - ldr w4, [x6,x4,lsl 2] - tst w3, w4 - beq .L1186 - add w3, w1, 1 - ubfiz x1, x1, 1, 16 - strh w2, [x21,x1] - uxth w1, w3 -.L1186: - cmp w1, w0 - bcs .L1187 - add w2, w2, 1 - uxth w2, w2 - b .L1185 -.L1184: - ubfiz x1, x1, 1, 16 - mov w0, -1 - ldp x19, x20, [sp,16] - strh w0, [x21,x1] + bne .L1152 +.L1156: mov w0, 0 - ldr x21, [sp,32] +.L1153: + ubfiz x0, x0, 1, 16 + mov w1, -1 + strh w1, [x21, x0] + mov w0, 0 + ldp x19, x20, [sp, 16] + ldr x21, [sp, 32] ldp x29, x30, [sp], 48 ret +.L1152: + lsr w4, w19, 4 + sub w19, w19, #1 + mov w1, 0 + mov w0, 0 + mov w5, 1 +.L1154: + cmp w1, w19 + bge .L1153 + ldr x6, [x20, 2216] + ubfx x3, x1, 5, 11 + lsl w2, w5, w1 + ldr w3, [x6, x3, lsl 2] + tst w2, w3 + beq .L1155 + add w2, w0, 1 + ubfiz x0, x0, 1, 16 + strh w1, [x21, x0] + and w0, w2, 65535 +.L1155: + cmp w0, w4 + bcs .L1156 + add w1, w1, 1 + and w1, w1, 65535 + b .L1154 .size FlashGetBadBlockList, .-FlashGetBadBlockList .align 2 .global FlashProgSlc2KPages .type FlashProgSlc2KPages, %function FlashProgSlc2KPages: - stp x29, x30, [sp, -160]! + stp x29, x30, [sp, -176]! add x29, sp, 0 - stp x23, x24, [sp,48] - mov w23, w1 - adrp x1, .LANCHOR1+481 - stp x21, x22, [sp,32] - adrp x22, .LANCHOR0 - str x27, [sp,80] - stp x25, x26, [sp,64] - add x22, x22, :lo12:.LANCHOR0 - ldrb w26, [x1,#:lo12:.LANCHOR1+481] - stp x19, x20, [sp,16] + stp x23, x24, [sp, 48] mov w24, w2 - mov x19, x0 - mov x21, x0 - mov w25, 0 - add x27, x22, 3220 -.L1193: - cmp w25, w23 - beq .L1219 + adrp x2, .LANCHOR1+481 + stp x21, x22, [sp, 32] + stp x25, x26, [sp, 64] + and w21, w1, 255 + mov w23, 56 + ldrb w26, [x2, #:lo12:.LANCHOR1+481] + stp x27, x28, [sp, 80] + mov w22, w21 + adrp x27, .LANCHOR0 + add x25, x27, :lo12:.LANCHOR0 + stp x19, x20, [sp, 16] + mov x28, x0 + umaddl x23, w1, w23, x0 + mov x20, x0 + add x0, x25, 3072 + str x0, [x29, 104] +.L1163: + cmp x20, x23 + bne .L1169 + adrp x22, .LANCHOR2 + add x23, x22, :lo12:.LANCHOR2 +.L1170: + cmp x28, x20 + bne .L1177 + ldp x19, x20, [sp, 16] + mov w0, 0 + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] + ldp x27, x28, [sp, 80] + ldp x29, x30, [sp], 176 + ret +.L1169: mov w1, w24 - sub w4, w23, w25 - mov x0, x21 - add x2, x29, 96 - add x3, x29, 100 + mov w4, w22 + add x3, x29, 116 + add x2, x29, 112 + mov x0, x20 bl LogAddr2PhyAddr - ldr w0, [x29,100] - ldrb w1, [x22,3216] - cmp w0, w1 - bcc .L1194 + ldrb w1, [x25, 3216] + ldr w0, [x29, 116] + cmp w1, w0 + bhi .L1164 mov w0, -1 - str w0, [x21] - b .L1195 -.L1194: - ldrb w20, [x27,w0,uxtw] - mov w0, w20 + str w0, [x20] +.L1165: + sub w22, w22, #1 + add x20, x20, 56 + and w22, w22, 255 + b .L1163 +.L1164: + ldr x1, [x29, 104] + add x0, x1, w0, uxtw + ldrb w19, [x0, 148] + mov w0, w19 bl NandcWaitFlashReady - mov w0, w20 + mov w0, w19 bl NandcFlashCs - ldr w1, [x29,96] - mov w0, w20 + ldr w1, [x29, 112] + mov w0, w19 bl FlashProgFirstCmd - ldr x3, [x21,8] + ldp x3, x4, [x20, 8] mov w2, w26 - ldr x4, [x21,16] mov w1, 1 - mov w0, w20 + mov w0, w19 bl NandcXferData - ldr w1, [x29,96] - mov w0, w20 + ldr w1, [x29, 112] + mov w0, w19 bl FlashProgSecondCmd - mov w0, w20 + mov w0, w19 bl NandcWaitFlashReady - ldr w1, [x29,96] - mov w0, w20 + ldr w1, [x29, 112] + mov w0, w19 bl FlashReadStatus sbfx x0, x0, 0, 1 - str w0, [x21] - mov w0, w20 - ldr w1, [x29,96] - ldr w2, [x22,92] - add w1, w2, w1 + str w0, [x20] + ldr w1, [x29, 112] + ldr w0, [x25, 92] + add w1, w1, w0 + mov w0, w19 bl FlashProgFirstCmd - ldr x0, [x21,8] - mov w1, 1 + ldr x0, [x20, 8] mov w2, w26 - cmp x0, xzr + mov w1, 1 + cmp x0, 0 add x3, x0, 2048 - ldr x0, [x21,16] + ldr x0, [x20, 16] csel x3, x3, xzr, ne + cmp x0, 0 add x4, x0, 8 - cmp x0, xzr csel x4, x4, xzr, ne - mov w0, w20 + mov w0, w19 bl NandcXferData - adrp x0, .LANCHOR0 - ldr w1, [x29,96] - add x0, x0, :lo12:.LANCHOR0 - ldr w2, [x0,92] - mov w0, w20 - add w1, w2, w1 + add x0, x27, :lo12:.LANCHOR0 + ldr w1, [x29, 112] + ldr w0, [x0, 92] + add w1, w1, w0 + mov w0, w19 bl FlashProgSecondCmd - mov w0, w20 + mov w0, w19 bl NandcWaitFlashReady - ldr w1, [x29,96] - mov w0, w20 + ldr w1, [x29, 112] + mov w0, w19 bl FlashReadStatus - tbz x0, 0, .L1198 + tbz x0, 0, .L1168 mov w0, -1 - str w0, [x21] -.L1198: - mov w0, w20 + str w0, [x20] +.L1168: + mov w0, w19 bl NandcFlashDeCs -.L1195: - add w25, w25, 1 - add x21, x21, 56 - b .L1193 -.L1219: - adrp x25, .LC25 - adrp x26, .LC24 - adrp x27, .LC23 - mov w21, 0 - add x25, x25, :lo12:.LC25 - add x26, x26, :lo12:.LC24 - add x27, x27, :lo12:.LC23 -.L1200: - cmp w21, w23 - beq .L1220 - ldr w0, [x19] + b .L1165 +.L1177: + ldr w0, [x28] cmn w0, #1 - bne .L1201 + bne .L1171 + ldr w1, [x28, 4] adrp x0, .LC21 - ldr w1, [x19,4] add x0, x0, :lo12:.LC21 bl printk - b .L1202 -.L1201: - adrp x20, .LANCHOR2 - sub w4, w23, w21 - add x22, x20, :lo12:.LANCHOR2 - add x3, x29, 100 +.L1172: + sub w21, w21, #1 + add x28, x28, 56 + and w21, w21, 255 + b .L1170 +.L1171: + add x19, x22, :lo12:.LANCHOR2 + mov w4, w21 + add x3, x29, 116 + add x2, x29, 112 mov w1, w24 - add x2, x29, 96 - mov x0, x19 + mov x0, x28 bl LogAddr2PhyAddr - ldr x0, [x22,2232] - mov x1, x19 + ldr x0, [x19, 2232] mov x2, 56 + mov x1, x28 str wzr, [x0] - ldr x0, [x22,2240] + ldr x0, [x19, 2240] str wzr, [x0] - add x0, x29, 104 + add x0, x29, 120 bl memcpy - ldr x0, [x22,2232] - mov w1, 1 - str x0, [x29,112] + ldr x0, [x19, 2232] mov w2, w24 - ldr x0, [x22,2240] - str x0, [x29,120] - add x0, x29, 104 + str x0, [x29, 128] + mov w1, 1 + ldr x0, [x19, 2240] + str x0, [x29, 136] + add x0, x29, 120 bl FlashReadPages - ldr w22, [x29,104] - cmn w22, #1 - bne .L1203 + ldr w19, [x29, 120] + cmn w19, #1 + bne .L1173 + ldr w1, [x28, 4] adrp x0, .LC22 - ldr w1, [x19,4] add x0, x0, :lo12:.LC22 bl printk - str w22, [x19] -.L1203: - ldr w22, [x29,104] - cmp w22, 256 - bne .L1204 - ldr w1, [x19,4] - mov x0, x27 + str w19, [x28] +.L1173: + ldr w19, [x29, 120] + cmp w19, 256 + bne .L1174 + ldr w1, [x28, 4] + adrp x0, .LC23 + add x0, x0, :lo12:.LC23 bl printk - str w22, [x19] -.L1204: - ldr x0, [x19,16] - cbz x0, .L1205 + str w19, [x28] +.L1174: + ldr x0, [x28, 16] + cbz x0, .L1175 ldr w2, [x0] - add x0, x20, :lo12:.LANCHOR2 - ldr x0, [x0,2240] + ldr x0, [x23, 2240] ldr w3, [x0] cmp w2, w3 - beq .L1205 - ldr w1, [x19,4] - mov x0, x26 + beq .L1175 + ldr w1, [x28, 4] + adrp x0, .LC24 + add x0, x0, :lo12:.LC24 bl printk mov w0, -1 - str w0, [x19] -.L1205: - ldr x0, [x19,8] - cbz x0, .L1202 - add x20, x20, :lo12:.LANCHOR2 + str w0, [x28] +.L1175: + ldr x0, [x28, 8] + cbz x0, .L1172 ldr w2, [x0] - ldr x0, [x20,2232] + ldr x0, [x23, 2232] ldr w3, [x0] cmp w2, w3 - beq .L1202 - ldr w1, [x19,4] - mov x0, x25 + beq .L1172 + ldr w1, [x28, 4] + adrp x0, .LC25 + add x0, x0, :lo12:.LC25 bl printk mov w0, -1 - str w0, [x19] -.L1202: - add w21, w21, 1 - add x19, x19, 56 - b .L1200 -.L1220: - mov w0, 0 - ldr x27, [sp,80] - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x29, x30, [sp], 160 - ret + str w0, [x28] + b .L1172 .size FlashProgSlc2KPages, .-FlashProgSlc2KPages .align 2 .global FlashProgPages @@ -7462,345 +7326,335 @@ FlashProgSlc2KPages: FlashProgPages: stp x29, x30, [sp, -192]! add x29, sp, 0 - stp x21, x22, [sp,32] + stp x21, x22, [sp, 32] adrp x21, .LANCHOR0 - mov w22, 0 add x4, x21, :lo12:.LANCHOR0 - str w3, [x29,116] - 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] + stp x23, x24, [sp, 48] + stp x25, x26, [sp, 64] + stp x27, x28, [sp, 80] + ldr x5, [x4, 104] + ldrb w4, [x4, 88] + ldrb w5, [x5, 19] + stp w3, w5, [x29, 116] + cbnz w4, .L1191 mov x19, x0 - mov w25, w1 - ldr x5, [x4,104] - mov w23, w2 - ldrb w4, [x4,88] - ldrb w5, [x5,19] - str w5, [x29,120] - adrp x5, .LANCHOR1+481 - ldrb w5, [x5,#:lo12:.LANCHOR1+481] - str w5, [x29,124] - cbz w4, .L1222 - bl FlashProgSlc2KPages - b .L1223 -.L1222: + adrp x0, .LANCHOR1+481 adrp x28, .LANCHOR2 + mov w25, w1 + ldrb w0, [x0, #:lo12:.LANCHOR1+481] add x26, x28, :lo12:.LANCHOR2 + mov w23, w2 + str w0, [x29, 124] + mov w22, 0 add x0, x26, 1236 - str x0, [x29,104] -.L1273: + str x0, [x29, 104] +.L1192: cmp w22, w25 - bcs .L1274 - mov w20, 56 - mov w1, w23 + bcc .L1205 + add x21, x21, :lo12:.LANCHOR0 + adrp x22, .LANCHOR2 + add x24, x21, 3260 + add x22, x22, :lo12:.LANCHOR2 + mov x20, 0 + mov x26, 24 +.L1206: + ldrb w0, [x21, 3216] + cmp w0, w20 + bhi .L1208 + ldr w0, [x29, 116] + cbnz w0, .L1209 +.L1217: + mov w0, 0 + b .L1190 +.L1191: + bl FlashProgSlc2KPages +.L1190: + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] + ldp x27, x28, [sp, 80] + ldp x29, x30, [sp], 192 + ret +.L1205: + mov w13, 56 add x2, x29, 128 + mov w1, w23 sub w4, w25, w22 - umull x20, w22, w20 + umull x13, w22, w13 add x3, x29, 132 - add x27, x19, x20 + add x27, x19, x13 mov x0, x27 bl LogAddr2PhyAddr mov w24, w0 add x1, x21, :lo12:.LANCHOR0 - ldr w0, [x29,132] - ldrb w2, [x1,3216] - cmp w0, w2 - bcc .L1224 + ldr w0, [x29, 132] + ldrb w2, [x1, 3216] + cmp w2, w0 + bhi .L1194 mov w0, -1 - str w0, [x19,x20] - b .L1225 -.L1224: + str w0, [x19, x13] +.L1195: + add w22, w22, 1 + b .L1192 +.L1194: add x2, x28, :lo12:.LANCHOR2 - add x1, x1, 3260 mov x3, 24 - ldrb w2, [x2,2094] - cmp w2, wzr - uxtw x2, w0 + ldrb w2, [x2, 2094] + cmp w2, 0 + add x2, x1, 3260 + uxtw x1, w0 csel w24, w24, wzr, ne - madd x1, x2, x3, x1 - ldr x1, [x1,8] - cbz x1, .L1227 + madd x1, x1, x3, x2 + ldr x1, [x1, 8] + cbz x1, .L1197 bl FlashWaitCmdDone -.L1227: +.L1197: add x0, x21, :lo12:.LANCHOR0 - ldr w2, [x29,132] - mov x1, 24 - add x0, x0, 3260 - madd x0, x2, x1, x0 - ldr w1, [x29,128] - str x27, [x0,8] - str xzr, [x0,16] - str w1, [x0,4] - cbz w24, .L1228 - add w1, w22, 1 - mov w3, 56 - umull x1, w1, w3 - add x1, x19, x1 - str x1, [x0,16] -.L1228: - add x1, x21, :lo12:.LANCHOR0 - add x0, x1, 3220 - ldrb w20, [x0,x2] + ldr w1, [x29, 132] + add x2, x0, 3260 mov x0, 24 - madd x2, x2, x0, x1 - ldrb w0, [x1,3216] - strb w20, [x2,3260] + madd x0, x1, x0, x2 + ldr w2, [x29, 128] + str w2, [x0, 4] + stp x27, xzr, [x0, 8] + cbz w24, .L1198 + add w2, w22, 1 + mov w3, 56 + umaddl x2, w2, w3, x19 + str x2, [x0, 16] +.L1198: + add x4, x21, :lo12:.LANCHOR0 + mov x2, 24 + add x0, x4, x1 + mul x1, x1, x2 + ldrb w20, [x0, 3220] + add x0, x4, 3260 + strb w20, [x0, x1] + ldrb w0, [x4, 3216] cmp w0, 1 - bne .L1229 mov w0, w20 + bne .L1199 bl NandcWaitFlashReady - b .L1230 -.L1229: - mov w0, w20 - str x1, [x29,96] - bl NandcFlashCs - ldr x1, [x29,96] - ldr w0, [x29,132] - add x1, x1, 3228 - ldr w0, [x1,x0,lsl 2] - ldr w1, [x29,128] - cmp w0, wzr - mov w0, w20 - cset w2, ne - bl FlashWaitReadyEN - mov w0, w20 - bl NandcFlashDeCs -.L1230: - ldr w0, [x29,120] +.L1200: + ldr w0, [x29, 120] sub w0, w0, #1 cmp w0, 7 - bhi .L1231 + bhi .L1201 add x0, x26, w20, sxtw - ldrb w0, [x0,2088] - cbz w0, .L1231 - ldrb w1, [x26,1233] - mov w0, w20 - ldr x2, [x29,104] + ldrb w0, [x0, 2088] + cbz w0, .L1201 + ldrb w1, [x26, 1233] mov w3, 0 + ldr x2, [x29, 104] + mov w0, w20 bl HynixSetRRPara -.L1231: +.L1201: mov w0, w20 bl NandcFlashCs cmp w23, 1 - bne .L1232 - ldrb w0, [x26,1220] - cbz w0, .L1232 + bne .L1202 + ldrb w0, [x26, 1220] + cbz w0, .L1202 mov w0, w20 bl flash_enter_slc_mode - b .L1233 -.L1232: - mov w0, w20 - bl flash_exit_slc_mode -.L1233: - ldr w1, [x29,128] +.L1203: + ldr w1, [x29, 128] mov w0, w20 bl FlashProgFirstCmd - ldrb w2, [x29,124] - mov w0, w20 - ldr x3, [x27,8] + ldrb w2, [x29, 124] mov w1, 1 - ldr x4, [x27,16] + ldp x3, x4, [x27, 8] + mov w0, w20 bl NandcXferData - cbz w24, .L1234 - ldr w1, [x29,128] + cbz w24, .L1204 + ldr w1, [x29, 128] mov w0, w20 add x27, x21, :lo12:.LANCHOR0 bl FlashProgDpFirstCmd - ldr w1, [x29,132] + ldr w1, [x29, 132] add x0, x27, 3228 - ldr w0, [x0,x1,lsl 2] - ldr w1, [x29,128] - cmp w0, wzr + ldr w0, [x0, x1, lsl 2] + ldr w1, [x29, 128] + cmp w0, 0 mov w0, w20 cset w2, ne bl FlashWaitReadyEN - ldr w2, [x27,92] + ldr w0, [x27, 92] + ldr w1, [x29, 128] + add w1, w1, w0 mov w0, w20 - ldr w1, [x29,128] - add w1, w2, w1 bl FlashProgDpSecondCmd add w0, w22, 1 - mov w4, 56 - ldrb w2, [x29,124] + mov w1, 56 + ldrb w2, [x29, 124] + nop // between mem op and mult-accumulate + umaddl x0, w0, w1, x19 mov w1, 1 - umull x4, w0, w4 + ldp x3, x4, [x0, 8] mov w0, w20 - add x4, x19, x4 - ldr x3, [x4,8] - ldr x4, [x4,16] bl NandcXferData -.L1234: - ldr w1, [x29,128] +.L1204: + ldr w1, [x29, 128] mov w0, w20 add w22, w22, w24 bl FlashProgSecondCmd mov w0, w20 bl NandcFlashDeCs -.L1225: - add w22, w22, 1 - b .L1273 -.L1274: - add x21, x21, :lo12:.LANCHOR0 - mov x20, 0 - adrp x22, .LANCHOR2 - add x24, x21, 3260 - mov x26, 24 -.L1236: - ldrb w0, [x21,3216] - cmp w0, w20 - bls .L1275 + b .L1195 +.L1199: + bl NandcFlashCs + add x4, x4, 3228 + ldp w1, w0, [x29, 128] + ldr w0, [x4, x0, lsl 2] + cmp w0, 0 + mov w0, w20 + cset w2, ne + bl FlashWaitReadyEN + mov w0, w20 + bl NandcFlashDeCs + b .L1200 +.L1202: + mov w0, w20 + bl flash_exit_slc_mode + b .L1203 +.L1208: mov w0, w20 bl FlashWaitCmdDone cmp w23, 1 - bne .L1237 - add x0, x22, :lo12:.LANCHOR2 - ldrb w0, [x0,1220] - cbz w0, .L1237 + bne .L1207 + ldrb w0, [x22, 1220] + cbz w0, .L1207 mul x0, x20, x26 - ldrb w0, [x0,x24] + ldrb w0, [x0, x24] bl flash_exit_slc_mode -.L1237: +.L1207: add x20, x20, 1 - b .L1236 -.L1275: - ldr w0, [x29,116] - cbnz w0, .L1239 -.L1247: - mov w0, 0 - b .L1223 -.L1239: - adrp x24, .LC25 - adrp x26, .LC24 - adrp x27, .LC22 - mov w21, 0 - add x24, x24, :lo12:.LC25 - add x26, x26, :lo12:.LC24 - add x27, x27, :lo12:.LC22 -.L1240: - cmp w21, w25 - beq .L1247 + b .L1206 +.L1209: + mov w0, 56 + and w20, w25, 255 + adrp x22, .LANCHOR2 + add x24, x22, :lo12:.LANCHOR2 + umaddl x25, w25, w0, x19 +.L1210: + cmp x25, x19 + beq .L1217 ldr w0, [x19] cmn w0, #1 - bne .L1241 + bne .L1211 + ldr w1, [x19, 4] adrp x0, .LC21 - ldr w1, [x19,4] add x0, x0, :lo12:.LC21 bl printk - b .L1242 -.L1241: - adrp x20, .LANCHOR2 - sub w4, w25, w21 - add x22, x20, :lo12:.LANCHOR2 +.L1212: + sub w20, w20, #1 + add x19, x19, 56 + and w20, w20, 255 + b .L1210 +.L1211: + add x21, x22, :lo12:.LANCHOR2 + mov w4, w20 add x3, x29, 132 - mov w1, w23 add x2, x29, 128 + mov w1, w23 mov x0, x19 bl LogAddr2PhyAddr - ldr x0, [x22,2232] - mov x1, x19 + ldr x0, [x21, 2232] mov x2, 56 + mov x1, x19 str wzr, [x0] - ldr x0, [x22,2240] + ldr x0, [x21, 2240] str wzr, [x0] add x0, x29, 136 bl memcpy - ldr x0, [x22,2232] - mov w1, 1 - str x0, [x29,144] + ldr x0, [x21, 2232] mov w2, w23 - ldr x0, [x22,2240] - str x0, [x29,152] + str x0, [x29, 144] + mov w1, 1 + ldr x0, [x21, 2240] + str x0, [x29, 152] add x0, x29, 136 bl FlashReadPages - ldr w22, [x29,136] - cmn w22, #1 - bne .L1243 - ldr w1, [x19,4] - mov x0, x27 + ldr w21, [x29, 136] + cmn w21, #1 + bne .L1213 + ldr w1, [x19, 4] + adrp x0, .LC22 + add x0, x0, :lo12:.LC22 bl printk - str w22, [x19] -.L1243: - ldr x0, [x19,16] - cbz x0, .L1244 + str w21, [x19] +.L1213: + ldr x0, [x19, 16] + cbz x0, .L1214 ldr w2, [x0] - add x0, x20, :lo12:.LANCHOR2 - ldr x0, [x0,2240] + ldr x0, [x24, 2240] ldr w3, [x0] cmp w2, w3 - beq .L1244 - ldr w1, [x19,4] - mov x0, x26 + beq .L1214 + ldr w1, [x19, 4] + adrp x0, .LC24 + add x0, x0, :lo12:.LC24 bl printk mov w0, -1 str w0, [x19] -.L1244: - ldr x0, [x19,8] - cbz x0, .L1242 - add x20, x20, :lo12:.LANCHOR2 +.L1214: + ldr x0, [x19, 8] + cbz x0, .L1212 ldr w2, [x0] - ldr x0, [x20,2232] + ldr x0, [x24, 2232] ldr w3, [x0] cmp w2, w3 - beq .L1242 - ldr w1, [x19,4] - mov x0, x24 + beq .L1212 + ldr w1, [x19, 4] + adrp x0, .LC25 + add x0, x0, :lo12:.LC25 bl printk mov w0, -1 str w0, [x19] -.L1242: - add w21, w21, 1 - add x19, x19, 56 - b .L1240 -.L1223: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 192 - ret + b .L1212 .size FlashProgPages, .-FlashProgPages .align 2 .type FlashTestBlk.part.7, %function FlashTestBlk.part.7: stp x29, x30, [sp, -160]! - mov w1, 165 mov w2, 32 + mov w1, 165 add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] adrp x19, .LANCHOR2 - uxth w20, w0 add x19, x19, :lo12:.LANCHOR2 + and w20, w0, 65535 lsl w20, w20, 10 - ldr x0, [x19,2216] - str x0, [x29,48] + ldr x0, [x19, 2216] + str x0, [x29, 48] add x0, x29, 96 - str x0, [x29,56] + str x0, [x29, 56] bl ftl_memset - ldr x0, [x19,2216] - mov w1, 90 + ldr x0, [x19, 2216] mov w2, 8 + mov w1, 90 bl ftl_memset - str w20, [x29,44] - mov w1, 1 - add x0, x29, 40 - mov w2, w1 - bl FlashEraseBlocks - mov w1, 1 - add x0, x29, 40 - mov w3, w1 - mov w2, w1 - bl FlashProgPages - ldr w0, [x29,40] - mov w1, 0 + str w20, [x29, 44] mov w2, 1 - cmp w0, wzr + add x0, x29, 40 + mov w1, w2 + bl FlashEraseBlocks + mov w3, 1 + add x0, x29, 40 + mov w2, w3 + mov w1, w3 + bl FlashProgPages + ldr w0, [x29, 40] + mov w2, 1 + mov w1, 0 + cmp w0, 0 add x0, x29, 40 csetm w19, ne bl FlashEraseBlocks mov w0, w19 - ldp x19, x20, [sp,16] + ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 160 ret .size FlashTestBlk.part.7, .-FlashTestBlk.part.7 @@ -7808,19 +7662,19 @@ FlashTestBlk.part.7: .global FlashTestBlk .type FlashTestBlk, %function FlashTestBlk: - uxth w1, w0 - adrp x0, .LANCHOR0+8 + adrp x1, .LANCHOR0+72 + and w0, w0, 65535 + ldr w1, [x1, #:lo12:.LANCHOR0+72] + cmp w0, w1 + bcc .L1247 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr w2, [x0,#:lo12:.LANCHOR0+8] - mov w0, 0 - cmp w1, w2 - bcc .L1278 - mov w0, w1 bl FlashTestBlk.part.7 -.L1278: ldp x29, x30, [sp], 16 ret +.L1247: + mov w0, 0 + ret .size FlashTestBlk, .-FlashTestBlk .align 2 .global FlashMakeFactorBbt @@ -7828,326 +7682,330 @@ FlashTestBlk: FlashMakeFactorBbt: stp x29, x30, [sp, -240]! add x29, sp, 0 - stp x23, x24, [sp,48] - adrp x23, .LANCHOR2 - add x0, x23, :lo12:.LANCHOR2 - stp x19, x20, [sp,16] - stp x21, x22, [sp,32] - stp x25, x26, [sp,64] - stp x27, x28, [sp,80] - adrp x19, .LANCHOR0 - mov w20, 0 - ldr x1, [x0,2224] - ldrh w22, [x0,1206] - str x1, [x29,160] - ldrh w1, [x0,1204] - add x0, x19, :lo12:.LANCHOR0 - add x19, x19, :lo12:.LANCHOR0 - mul w22, w1, w22 - ldr x1, [x0,104] - uxth w22, w22 - ldrb w1, [x1,24] - str w1, [x29,128] - ldrh w1, [x0,92] - str w1, [x29,172] - ldrb w0, [x0,88] - ubfiz w1, w1, 1, 15 + stp x21, x22, [sp, 32] + adrp x22, .LANCHOR2 + add x0, x22, :lo12:.LANCHOR2 + stp x19, x20, [sp, 16] + stp x23, x24, [sp, 48] + add x0, x0, 1192 + stp x25, x26, [sp, 64] + adrp x20, .LANCHOR0 + stp x27, x28, [sp, 80] + mov w19, 0 + ldr x1, [x0, 1032] + ldrh w21, [x0, 14] + ldrh w0, [x0, 12] + str x1, [x29, 136] + mul w21, w21, w0 + add x0, x20, :lo12:.LANCHOR0 + and w21, w21, 65535 + ldr x1, [x0, 104] + ldrh w2, [x0, 92] + ldrb w0, [x0, 88] + ldrb w1, [x1, 24] cmp w0, 1 - ldr w0, [x29,172] - csel w0, w1, w0, eq - str w0, [x29,172] - adrp x0, .LC26 + str w1, [x29, 112] + mov x1, x2 + ubfiz w2, w2, 1, 15 + csel w0, w2, w1, eq mov w1, 1 + str w0, [x29, 168] + adrp x0, .LC26 add x0, x0, :lo12:.LC26 bl printk - add x0, x23, :lo12:.LANCHOR2 - mov w1, 0 + add x0, x22, :lo12:.LANCHOR2 mov w2, 4096 - ldr x0, [x0,2224] - bl ftl_memset - lsr w0, w22, 4 - str w0, [x29,168] - add x0, x19, 3220 - str x0, [x29,112] - ldr w0, [x29,128] - and w0, w0, 1 - str w0, [x29,108] - sub w0, w22, #1 - uxth w0, w0 - str w0, [x29,124] -.L1282: - ldrb w0, [x19,3216] - cmp w0, w20 - bls .L1332 - add x0, x23, :lo12:.LANCHOR2 - sxtw x25, w20 - add x1, x0, 2256 - ldrh w21, [x1,w20,sxtw 1] - cbnz w21, .L1312 - ldrh w2, [x0,1212] - mov w1, w21 - ldr x0, [x19] - mov w26, w21 - lsl w2, w2, 9 - mov w24, w21 - add x28, x19, 3228 - bl ftl_memset - ldr x0, [x29,112] - ldrb w27, [x0,x25] - ldr w0, [x29,128] - and w0, w0, 2 - uxtb w0, w0 - str w0, [x29,120] -.L1284: - uxth w0, w26 - str w0, [x29,144] - cmp w0, w22 - bcs .L1294 - mov w0, -1 - strb w0, [x29,182] - strb w0, [x29,183] - ldr w0, [x29,108] - cbz w0, .L1286 - ldr w3, [x28,x25,lsl 2] - mov w0, w27 - add x2, x29, 182 - add w3, w21, w3 - str x3, [x29,96] - mov w1, w3 - bl FlashReadSpare - ldrb w0, [x19,88] - ldr x3, [x29,96] - cmp w0, 1 - bne .L1286 - ldr w1, [x19,92] - mov w0, w27 - add x2, x29, 183 - add w1, w3, w1 - bl FlashReadSpare - ldrb w0, [x29,182] - ldrb w1, [x29,183] - and w0, w1, w0 - strb w0, [x29,182] -.L1286: - ldr w0, [x29,120] - cbz w0, .L1288 - ldr x0, [x19,104] - add x2, x29, 183 - ldrh w1, [x0,10] - ldr w0, [x28,x25,lsl 2] - sub w1, w1, #1 - add w1, w1, w0 - mov w0, w27 - add w1, w1, w21 - bl FlashReadSpare -.L1288: - ldr x0, [x19,104] - ldrb w1, [x29,182] - ldrb w2, [x0,7] - cmp w2, 8 - beq .L1289 - cmp w2, 1 - beq .L1289 - ldrb w0, [x0,18] - cmp w0, 12 - bne .L1290 -.L1289: - mov w0, 1 - cbz w1, .L1291 - ldrb w0, [x29,183] - cmp w0, wzr - cset w0, eq - b .L1291 -.L1290: - cmp w1, 255 - mov w0, 1 - bne .L1291 - ldrb w0, [x29,183] - cmp w0, 255 - cset w0, ne -.L1291: - ldr x1, [x29,128] - tbz x1, 2, .L1292 - ldr w1, [x28,x25,lsl 2] - mov w0, w27 - add w1, w21, w1 - bl SandiskProgTestBadBlock -.L1292: - cbz w0, .L1293 - adrp x0, .LC27 - mov w1, w20 - mov w2, w26 - add x0, x0, :lo12:.LC27 - add w24, w24, 1 - bl printk - ldr x0, [x29,144] - uxth w24, w24 - ldr x2, [x19] - ubfx x1, x0, 5, 11 - ldrb w3, [x29,144] - lsl x1, x1, 2 - mov w0, 1 - lsl w0, w0, w3 - ldr w3, [x2,x1] - orr w0, w3, w0 - str w0, [x2,x1] - ldr w1, [x29,168] - ldrb w0, [x19,3216] - mul w0, w1, w0 - cmp w24, w0 - bgt .L1294 -.L1293: - ldr w0, [x29,172] - add w26, w26, 1 - add w21, w21, w0 - b .L1284 -.L1294: - adrp x0, .LC28 - mov w1, w20 - add x0, x0, :lo12:.LC28 - mov w2, w24 - bl printk - ldrb w0, [x19,3216] - ldr w1, [x29,168] - mul w0, w1, w0 - cmp w24, w0 - blt .L1296 - add x0, x23, :lo12:.LANCHOR2 mov w1, 0 - ldrh w2, [x0,1212] - ldr x0, [x19] - lsl w2, w2, 9 + ldr x0, [x0, 2224] bl ftl_memset -.L1296: - cbnz w20, .L1298 - adrp x26, .LC29 - ldrh w27, [x19,8] - mov w21, w20 - add x26, x26, :lo12:.LC29 - mov w24, 1 -.L1299: - ldrb w0, [x19,89] - cmp w0, w27 - bls .L1333 - mov w0, w27 - bl FlashTestBlk - cbz w0, .L1300 - mov w1, w27 - mov x0, x26 - add w21, w21, 1 - bl printk - ubfx x1, x27, 5, 11 - ldr x2, [x19] - lsl x1, x1, 2 - lsl w0, w24, w27 - uxth w21, w21 - ldr w3, [x2,x1] - orr w0, w3, w0 - str w0, [x2,x1] -.L1300: - add w27, w27, 1 - uxth w27, w27 - b .L1299 -.L1333: - adrp x26, .LC29 - ldr w28, [x29,124] - sub w27, w22, #50 - add x26, x26, :lo12:.LC29 - mov w24, 1 -.L1302: - cmp w28, w27 - ble .L1334 - mov w0, w28 - bl FlashTestBlk - cbz w0, .L1303 - mov w1, w28 - mov x0, x26 - bl printk - ubfx x1, x28, 5, 11 - ldr x2, [x19] - lsl x1, x1, 2 - lsl w0, w24, w28 - ldr w3, [x2,x1] - orr w0, w3, w0 - str w0, [x2,x1] -.L1303: - sub w28, w28, #1 - uxth w28, w28 - b .L1302 -.L1334: - ldrb w0, [x19,89] - ldr w1, [x19,8] - sub w0, w0, w1 - cmp w21, w0 - bcc .L1298 - add x0, x23, :lo12:.LANCHOR2 - mov w1, 0 - ldrh w2, [x0,1212] - ldr x0, [x19] - lsl w2, w2, 9 - bl ftl_memset -.L1298: - adrp x24, .LC30 - ldr w27, [x29,124] - mul w26, w20, w22 - add x24, x24, :lo12:.LC30 - add x28, x23, :lo12:.LANCHOR2 - mov w21, -3872 -.L1306: - mov w2, w27 - mov x0, x24 - mov w1, w20 - bl printk - ldr x2, [x19] -.L1307: - ubfx x0, x27, 5, 11 - ldr w0, [x2,x0,lsl 2] - lsr w0, w0, w27 - and w1, w0, 1 - tbz x0, 0, .L1335 - sub w27, w27, #1 - uxth w27, w27 - b .L1307 -.L1335: - add x0, x28, 2256 - strh w27, [x0,x25,lsl 1] - ldr x0, [x29,160] - strh w21, [x0] - strh w27, [x0,2] - strh w1, [x0,8] - mov w1, 1 - ldr x0, [x19] - mov w2, w1 - str x0, [x29,192] - ldr x0, [x28,2224] - str x0, [x29,200] - add w0, w27, w26 - lsl w0, w0, 10 - str w0, [x29,188] - add x0, x29, 184 - bl FlashEraseBlocks - mov w1, 1 - add x0, x29, 184 - mov w2, w1 - mov w3, w1 - bl FlashProgPages - ldr w0, [x29,184] - cbz w0, .L1312 - sub w27, w27, #1 - uxth w27, w27 - b .L1306 -.L1312: - add w20, w20, 1 - uxtb w20, w20 - b .L1282 -.L1332: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] + lsr w0, w21, 4 + str w0, [x29, 132] + sub w0, w21, #1 + and w0, w0, 65535 + str w0, [x29, 128] + adrp x0, .LC29 + add x0, x0, :lo12:.LC29 + str x0, [x29, 104] +.L1254: + add x28, x20, :lo12:.LANCHOR0 + ldrb w0, [x28, 3216] + cmp w0, w19 + bhi .L1281 + 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 +.L1281: + add x0, x22, :lo12:.LANCHOR2 + sxtw x24, w19 + add x1, x0, x24, lsl 1 + ldrh w1, [x1, 2256] + str w1, [x29, 172] + cbnz w1, .L1255 + ldrh w2, [x0, 1212] + mov x26, x28 + ldr x0, [x28, 64] + mov w23, 0 + mov w25, 0 + lsl w2, w2, 9 + bl ftl_memset + add x0, x28, x24 + add x28, x28, 3228 + ldrb w27, [x0, 3220] + ldr w0, [x29, 112] + and w0, w0, 1 + stp w0, wzr, [x29, 160] +.L1256: + ldrh w0, [x29, 164] + str w0, [x29, 144] + cmp w0, w21 + bcc .L1267 +.L1266: + mov w1, w19 + mov w2, w23 + adrp x0, .LC28 + add x0, x0, :lo12:.LC28 + bl printk + add x3, x20, :lo12:.LANCHOR0 + ldr w1, [x29, 132] + ldrb w0, [x3, 3216] + mul w0, w0, w1 + cmp w23, w0 + blt .L1268 + add x0, x22, :lo12:.LANCHOR2 + mov w1, 0 + ldrh w2, [x0, 1212] + ldr x0, [x3, 64] + lsl w2, w2, 9 + bl ftl_memset +.L1268: + cbnz w19, .L1270 + add x26, x20, :lo12:.LANCHOR0 + mov w23, 1 + ldrh w25, [x26, 72] +.L1271: + ldrb w0, [x26, 89] + cmp w0, w25 + bhi .L1273 + ldr w27, [x29, 128] + sub w26, w21, #50 + add x23, x20, :lo12:.LANCHOR0 + mov w25, 1 +.L1274: + cmp w27, w26 + bgt .L1276 + add x0, x20, :lo12:.LANCHOR0 + ldr w2, [x0, 72] + ldrb w1, [x0, 89] + sub w1, w1, w2 + ldr w2, [x29, 172] + cmp w2, w1 + bcc .L1270 + add x1, x22, :lo12:.LANCHOR2 + ldr x0, [x0, 64] + ldrh w2, [x1, 1212] + mov w1, 0 + lsl w2, w2, 9 + bl ftl_memset +.L1270: + add x28, x22, :lo12:.LANCHOR2 + mul w25, w19, w21 + add x0, x28, 2048 + ldr w26, [x29, 128] + adrp x23, .LC30 + add x27, x20, :lo12:.LANCHOR0 + add x23, x23, :lo12:.LC30 + add x24, x0, x24, lsl 1 +.L1278: + mov w1, w19 + mov w2, w26 + mov x0, x23 + bl printk + ldr x1, [x27, 64] +.L1279: + ubfx x0, x26, 5, 11 + ldr w0, [x1, x0, lsl 2] + lsr w0, w0, w26 + tbnz x0, 0, .L1280 + ldr x1, [x29, 136] + mov w0, -3872 + strh w26, [x24, 208] + mov w2, 1 + strh w0, [x1] + strh w26, [x1, 2] + strh wzr, [x1, 8] + mov w1, w2 + ldr x0, [x27, 64] + str x0, [x29, 192] + ldr x0, [x28, 2224] + str x0, [x29, 200] + add w0, w26, w25 + lsl w0, w0, 10 + str w0, [x29, 188] + add x0, x29, 184 + bl FlashEraseBlocks + mov w3, 1 + add x0, x29, 184 + mov w2, w3 + mov w1, w3 + bl FlashProgPages + ldr w0, [x29, 184] + cbz w0, .L1255 + sub w26, w26, #1 + and w26, w26, 65535 + b .L1278 +.L1267: + mov w0, -1 + strb w0, [x29, 182] + strb w0, [x29, 183] + ldr w0, [x29, 160] + cbz w0, .L1258 + ldr w4, [x28, x24, lsl 2] + mov w0, w27 + add x2, x29, 182 + add w4, w25, w4 + str w4, [x29, 100] + mov w1, w4 + bl FlashReadSpare + ldrb w0, [x26, 88] + ldr w4, [x29, 100] + cmp w0, 1 + bne .L1258 + ldr w1, [x26, 92] + mov w0, w27 + add x2, x29, 183 + add w1, w4, w1 + bl FlashReadSpare + ldrb w0, [x29, 182] + ldrb w1, [x29, 183] + and w0, w0, w1 + strb w0, [x29, 182] +.L1258: + ldr x0, [x29, 112] + tbz x0, 1, .L1260 + ldr x0, [x26, 104] + add x2, x29, 183 + ldrh w1, [x0, 10] + ldr w0, [x28, x24, lsl 2] + sub w1, w1, #1 + add w0, w25, w0 + add w1, w1, w0 + mov w0, w27 + bl FlashReadSpare +.L1260: + ldr x1, [x26, 104] + ldrb w0, [x1, 7] + cmp w0, 1 + ccmp w0, 8, 4, ne + ldrb w0, [x29, 182] + beq .L1261 + ldrb w1, [x1, 18] + cmp w1, 12 + bne .L1262 +.L1261: + cbz w0, .L1283 + ldrb w0, [x29, 183] + cmp w0, 0 + cset w0, eq +.L1263: + ldr x1, [x29, 112] + tbz x1, 2, .L1264 + ldr w1, [x28, x24, lsl 2] + mov w0, w27 + add w1, w25, w1 + bl SandiskProgTestBadBlock +.L1264: + cbz w0, .L1265 + ldr w2, [x29, 164] + mov w1, w19 + adrp x0, .LC27 + add x0, x0, :lo12:.LC27 + add w23, w23, 1 + and w23, w23, 65535 + bl printk + ldr x0, [x29, 144] + mov w1, 1 + ldr x4, [x26, 64] + ldrb w2, [x29, 144] + ubfx x0, x0, 5, 11 + lsl x0, x0, 2 + lsl w2, w1, w2 + ldr w1, [x4, x0] + orr w1, w1, w2 + str w1, [x4, x0] + ldr w1, [x29, 132] + ldrb w0, [x26, 3216] + mul w0, w0, w1 + cmp w23, w0 + bgt .L1266 +.L1265: + ldr w0, [x29, 164] + add w0, w0, 1 + str w0, [x29, 164] + ldr w0, [x29, 168] + add w25, w25, w0 + b .L1256 +.L1262: + cmp w0, 255 + bne .L1283 + ldrb w0, [x29, 183] + cmp w0, 255 + cset w0, ne + b .L1263 +.L1283: + mov w0, 1 + b .L1263 +.L1273: + mov w0, w25 + bl FlashTestBlk + cbz w0, .L1272 + ldr x0, [x29, 104] + mov w1, w25 + bl printk + ldr x3, [x26, 64] + ubfx x0, x25, 5, 11 + lsl x0, x0, 2 + lsl w1, w23, w25 + ldr w2, [x3, x0] + orr w1, w2, w1 + str w1, [x3, x0] + ldr w0, [x29, 172] + add w0, w0, 1 + and w0, w0, 65535 + str w0, [x29, 172] +.L1272: + add w25, w25, 1 + and w25, w25, 65535 + b .L1271 +.L1276: + mov w0, w27 + bl FlashTestBlk + cbz w0, .L1275 + ldr x0, [x29, 104] + mov w1, w27 + bl printk + ldr x3, [x23, 64] + ubfx x0, x27, 5, 11 + lsl x0, x0, 2 + lsl w1, w25, w27 + ldr w2, [x3, x0] + orr w1, w2, w1 + str w1, [x3, x0] +.L1275: + sub w27, w27, #1 + and w27, w27, 65535 + b .L1274 +.L1280: + sub w26, w26, #1 + and w26, w26, 65535 + b .L1279 +.L1255: + add w19, w19, 1 + and w19, w19, 255 + b .L1254 .size FlashMakeFactorBbt, .-FlashMakeFactorBbt .align 2 .global Ftl_log2 @@ -8155,16 +8013,16 @@ FlashMakeFactorBbt: Ftl_log2: mov w2, 1 mov w1, 0 -.L1337: +.L1304: cmp w2, w0 - bhi .L1339 - add w1, w1, 1 - lsl w2, w2, 1 - uxth w1, w1 - b .L1337 -.L1339: + bls .L1305 sub w0, w1, #1 ret +.L1305: + add w1, w1, 1 + lsl w2, w2, 1 + and w1, w1, 65535 + b .L1304 .size Ftl_log2, .-Ftl_log2 .align 2 .global FtlPrintInfo @@ -8176,246 +8034,242 @@ FtlPrintInfo: .global FtlSysBlkNumInit .type FtlSysBlkNumInit, %function FtlSysBlkNumInit: - uxth w0, w0 + and w0, w0, 65535 mov w1, 24 - cmp w0, 23 - csel w0, w0, w1, hi + cmp w0, 24 + csel w0, w0, w1, cs adrp x1, .LANCHOR2 add x1, x1, :lo12:.LANCHOR2 - ldrh w2, [x1,2276] - ldrh w3, [x1,2286] - str w0, [x1,2272] - mul w2, w0, w2 + and w0, w0, 65535 + ldrh w2, [x1, 2276] + ldrh w3, [x1, 2286] + str w0, [x1, 2272] + mul w2, w2, w0 sub w0, w3, w0 - strh w0, [x1,2284] - ldr w0, [x1,2292] - str w2, [x1,2280] + strh w0, [x1, 2284] + ldr w0, [x1, 2292] + str w2, [x1, 2280] sub w2, w0, w2 mov w0, 0 - str w2, [x1,2288] + str w2, [x1, 2288] ret .size FtlSysBlkNumInit, .-FtlSysBlkNumInit .align 2 .global FtlConstantsInit .type FtlConstantsInit, %function FtlConstantsInit: - stp x29, x30, [sp, -96]! - mov x3, 0 + mov x7, x0 + stp x29, x30, [sp, -16]! + adrp x5, .LANCHOR2 + add x1, x5, :lo12:.LANCHOR2 add x29, sp, 0 - stp x19, x20, [sp,16] - stp x23, x24, [sp,48] - adrp x20, .LANCHOR2 - mov x23, x0 - stp x21, x22, [sp,32] - stp x25, x26, [sp,64] - str x27, [sp,80] - add x1, x20, :lo12:.LANCHOR2 - ldrh w4, [x23,14] - ldrh w6, [x0,8] - ldrh w2, [x0,10] - ldrh w0, [x0,12] - strh w6, [x1,2296] - strh w2, [x1,2298] - strh w0, [x1,2300] - strh w4, [x1,2286] -.L1344: - add x5, x1, 2304 - strb w3, [x3,x5] + ldrh w9, [x0, 8] + add x1, x1, 2304 + ldrh w2, [x0, 10] + mov x3, 0 + ldrh w0, [x0, 12] + ldrh w4, [x7, 14] + strh w9, [x1, -8] + strh w2, [x1, -6] + strh w0, [x1, -4] + strh w4, [x1, -18] +.L1309: + strb w3, [x3, x1] add x3, x3, 1 cmp x3, 32 - bne .L1344 - ldrh w3, [x23,20] - ldrb w1, [x23,15] + bne .L1309 + ldrh w3, [x7, 20] + ldrb w1, [x7, 15] cmp w3, w1 - bcs .L1345 - uxtb w8, w0 + bcs .L1310 + and w11, w0, 255 + add x8, x5, :lo12:.LANCHOR2 + mul w13, w0, w2 + ubfiz w12, w11, 1, 7 + add x8, x8, 2304 mov w3, 0 - mul w11, w0, w2 - ubfiz w10, w8, 1, 7 - add x12, x20, :lo12:.LANCHOR2 -.L1346: +.L1311: cmp w3, w0 - bcs .L1348 - uxtb w1, w3 - mov w5, w3 - mov w7, 0 -.L1349: - cmp w7, w2 - bcs .L1371 - add x9, x12, 2304 - add w13, w5, w11 - add w14, w1, w8 - add w7, w7, 1 - strb w1, [x9,w5,uxtw] - add w1, w1, w10 - strb w14, [x9,x13] - add w5, w5, w0 - uxtb w1, w1 - b .L1349 -.L1371: + bcs .L1313 + and w1, w3, 255 + mov w6, w3 + mov w10, 0 + b .L1314 +.L1312: + add w14, w13, w6 + strb w1, [x8, w6, uxtw] + add w15, w11, w1 + add w1, w12, w1 + add w10, w10, 1 + and w1, w1, 255 + add w6, w6, w0 + strb w15, [x8, x14] +.L1314: + cmp w10, w2 + bcc .L1312 add w3, w3, 1 - b .L1346 -.L1348: - add x1, x20, :lo12:.LANCHOR2 - lsl w2, w2, 1 + b .L1311 +.L1313: + add x1, x5, :lo12:.LANCHOR2 + ubfiz w2, w2, 1, 15 lsr w4, w4, 1 - strh w2, [x1,2298] - strh w4, [x1,2286] -.L1345: - add x1, x20, :lo12:.LANCHOR2 + strh w2, [x1, 2298] + strh w4, [x1, 2286] +.L1310: + add x1, x5, :lo12:.LANCHOR2 mov w2, 5 - cmp w6, 1 - strh w2, [x1,2336] - strh wzr, [x1,2338] - bne .L1350 - strh w6, [x1,2336] -.L1350: - add x1, x20, :lo12:.LANCHOR2 + cmp w9, 1 + strh w2, [x1, 2336] + strh wzr, [x1, 2338] + bne .L1315 + strh w9, [x1, 2336] +.L1315: + add x1, x5, :lo12:.LANCHOR2 mov w2, 4352 - strh w2, [x1,2340] + strh w2, [x1, 2340] adrp x2, .LANCHOR0+88 - ldrb w26, [x2,#:lo12:.LANCHOR0+88] - cbz w26, .L1351 + ldrb w11, [x2, #:lo12:.LANCHOR0+88] + cbz w11, .L1316 mov w2, 384 - strh w2, [x1,2340] -.L1351: - add x21, x20, :lo12:.LANCHOR2 - ldrh w25, [x23,16] - ldrh w24, [x23,20] - ldrh w27, [x23,18] - ldrh w22, [x21,2298] - ldrh w19, [x21,2286] - strh w25, [x21,2344] - mul w22, w0, w22 - mul w0, w19, w0 - strh w0, [x21,2342] - uxth w22, w22 - strh w27, [x21,2346] - strh w22, [x21,2276] - mul w0, w22, w25 - strh w0, [x21,2348] - mov w0, w24 - strh w24, [x21,2350] + strh w2, [x1, 2340] +.L1316: + add x4, x5, :lo12:.LANCHOR2 + ldrh w10, [x7, 16] + ldrh w8, [x7, 20] + ldrh w9, [x7, 18] + ldrh w6, [x4, 2298] + ldrh w3, [x4, 2286] + strh w10, [x4, 2344] + strh w9, [x4, 2346] + mul w6, w0, w6 + strh w8, [x4, 2350] + mul w0, w0, w3 + and w6, w6, 65535 + strh w0, [x4, 2342] + strh w6, [x4, 2276] + mul w0, w6, w10 + strh w0, [x4, 2348] + mov w0, w8 bl Ftl_log2 - uxth w3, w0 - lsl w2, w24, 9 - strh w0, [x21,2352] - ldrh w0, [x23,26] - cmp w19, 1024 - strh w2, [x21,2354] - ubfx x2, x2, 9, 7 - strh w0, [x21,2358] - lsl w2, w2, 1 - mul w0, w22, w19 - strh w2, [x21,2356] - str w0, [x21,2292] - bls .L1352 - and w0, w19, 255 - strh w0, [x21,2338] -.L1352: - add x2, x20, :lo12:.LANCHOR2 - mul w0, w24, w27 - ldrh w1, [x2,2338] - sub w1, w19, w1 - mul w1, w22, w1 - mul w1, w1, w24 - mul w1, w1, w25 - asr w1, w1, 11 - str w1, [x2,2360] - ldrh w1, [x2,2340] - lsl w1, w1, 3 - sdiv w0, w1, w0 - uxth w0, w0 + and w2, w0, 65535 + strh w0, [x4, 2352] + ubfiz w0, w8, 9, 7 + strh w0, [x4, 2354] + ubfx w0, w0, 8, 8 + strh w0, [x4, 2356] + cmp w3, 1024 + ldrh w0, [x7, 26] + strh w0, [x4, 2358] + mul w0, w6, w3 + str w0, [x4, 2292] + bls .L1317 + and w0, w3, 255 + strh w0, [x4, 2338] +.L1317: + add x1, x5, :lo12:.LANCHOR2 + ldrh w0, [x1, 2338] + sub w0, w3, w0 + mul w0, w0, w6 + mul w0, w0, w8 + mul w8, w9, w8 + mul w0, w0, w10 + asr w0, w0, 11 + str w0, [x1, 2360] + ldrh w0, [x1, 2340] + lsl w0, w0, 3 + sdiv w0, w0, w8 + and w0, w0, 65535 cmp w0, 4 - bhi .L1368 - mov w0, 4 -.L1368: - strh w0, [x2,2364] - cbz w26, .L1355 - add x0, x20, :lo12:.LANCHOR2 + bls .L1318 +.L1334: + strh w0, [x1, 2364] + cbz w11, .L1320 + add x0, x5, :lo12:.LANCHOR2 mov w1, 640 - strh w1, [x0,2340] -.L1355: - add x1, x20, :lo12:.LANCHOR2 - lsl w19, w19, 6 - cmp w22, 1 - ldrh w0, [x1,2340] - asr w0, w0, w3 - add w3, w3, 9 - asr w19, w19, w3 - strh w19, [x1,2368] - and w19, w19, 65535 + strh w1, [x0, 2340] +.L1320: + add x1, x5, :lo12:.LANCHOR2 + lsl w3, w3, 6 + cmp w6, 1 + ldrh w0, [x1, 2340] + asr w0, w0, w2 + add w2, w2, 9 add w0, w0, 2 - strh w0, [x1,2366] - mul w0, w19, w22 - str w0, [x1,2372] - add w19, w19, 8 - ldrh w0, [x1,2364] - udiv w0, w0, w22 - add w19, w19, w0 - bne .L1369 - add w19, w19, 4 -.L1369: - str w19, [x1,2272] - add x19, x20, :lo12:.LANCHOR2 - ldrh w0, [x19,2272] + strh w0, [x1, 2366] + asr w3, w3, w2 + strh w3, [x1, 2368] + and w3, w3, 65535 + mul w0, w6, w3 + add w3, w3, 8 + str w0, [x1, 2372] + ldrh w0, [x1, 2364] + udiv w0, w0, w6 + add w3, w0, w3 + beq .L1321 +.L1335: + add x4, x5, :lo12:.LANCHOR2 + str w3, [x1, 2272] + ldrh w0, [x4, 2272] bl FtlSysBlkNumInit - str wzr, [x19,1224] - ldr w0, [x19,2272] - str w0, [x19,2376] - ldr w0, [x19,2288] - ldrh w1, [x19,2344] + ldr w0, [x4, 2272] + str w0, [x4, 2376] + ldr w0, [x4, 2288] + ldrh w1, [x4, 2344] + ldrh w3, [x4, 2350] lsl w0, w0, 2 - ldrh w3, [x19,2350] - ldrh w2, [x19,2364] - mul w1, w0, w1 - ldrh w0, [x19,2352] - ldrb w5, [x19,1220] - add w0, w0, 9 - lsr w0, w1, w0 + ldrh w2, [x4, 2364] + ldrb w7, [x4, 1220] + str wzr, [x4, 1224] + mul w0, w0, w1 + ldrh w1, [x4, 2352] + add w1, w1, 9 + lsr w0, w0, w1 mov w1, 2048 add w0, w0, 2 sdiv w1, w1, w3 - strh w1, [x19,2382] - uxth w0, w0 - strh w0, [x19,2380] + and w0, w0, 65535 + strh w0, [x4, 2380] + strh w1, [x4, 2382] add w1, w2, 3 - strh w1, [x19,2364] - ldr w1, [x19,2372] - add w4, w1, 3 - str w4, [x19,2372] - cbz w5, .L1358 - add w2, w2, 4 + strh w1, [x4, 2364] + ldr w1, [x4, 2372] + add w6, w1, 3 + str w6, [x4, 2372] + cbz w7, .L1323 add w1, w1, 5 - strh w2, [x19,2364] - b .L1370 -.L1358: - cmp w4, 7 - bhi .L1359 - mov w1, 8 -.L1370: - str w1, [x19,2372] -.L1359: - add x20, x20, :lo12:.LANCHOR2 - ldrh w1, [x20,2284] - strh wzr, [x20,2384] - lsr w2, w1, 3 - add w1, w2, w1, lsl 1 - add w1, w1, 52 - add w0, w1, w0, lsl 2 + add w2, w2, 4 + strh w2, [x4, 2364] +.L1336: + str w1, [x4, 2372] +.L1324: + add x5, x5, :lo12:.LANCHOR2 + ldrh w1, [x5, 2284] + strh wzr, [x5, 2384] + lsl w2, w1, 1 + lsr w1, w1, 3 + add w2, w2, 48 + add w1, w1, 4 + add w0, w2, w0, lsl 2 + add w0, w0, w1 cmp w0, w3, lsl 9 - bcs .L1360 + bcs .L1325 mov w0, 1 - strh w0, [x20,2384] -.L1360: + strh w0, [x5, 2384] +.L1325: mov w0, 0 - ldr x27, [sp,80] - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x29, x30, [sp], 96 + ldp x29, x30, [sp], 16 ret +.L1318: + mov w0, 4 + b .L1334 +.L1321: + add w3, w3, 4 + b .L1335 +.L1323: + cmp w6, 7 + bhi .L1324 + mov w1, 8 + b .L1336 .size FtlConstantsInit, .-FtlConstantsInit .align 2 .global FtlMemInit @@ -8423,373 +8277,372 @@ FtlConstantsInit: FtlMemInit: stp x29, x30, [sp, -64]! mov w1, 65535 + mov w2, 1024 add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] adrp x20, .LANCHOR2 - str x23, [sp,48] add x0, x20, :lo12:.LANCHOR2 - stp x21, x22, [sp,32] - str w1, [x0,2456] + stp x21, x22, [sp, 32] + add x3, x0, 2304 + str x23, [sp, 48] + add x4, x0, 2304 + add x5, x0, 2304 + strh wzr, [x0, 2386] + add x6, x0, 2304 + stp wzr, wzr, [x3, 84] + add x7, x0, 2304 + stp wzr, wzr, [x3, 92] + stp wzr, wzr, [x4, 100] + stp wzr, wzr, [x4, 108] + stp wzr, wzr, [x5, 116] + stp wzr, wzr, [x5, 124] + stp wzr, wzr, [x6, 132] + stp wzr, wzr, [x6, 140] + stp wzr, w1, [x7, 148] mov w1, -1 - strh wzr, [x0,2386] - strh w1, [x0,2472] - strh w1, [x0,2474] - strh w1, [x0,2476] - str wzr, [x0,2388] - str wzr, [x0,2392] - str wzr, [x0,2396] - str wzr, [x0,2400] - str wzr, [x0,2404] - str wzr, [x0,2408] - str wzr, [x0,2412] - str wzr, [x0,2416] - str wzr, [x0,2420] - str wzr, [x0,2424] - str wzr, [x0,2428] - str wzr, [x0,2432] - str wzr, [x0,2436] - str wzr, [x0,2440] - str wzr, [x0,2444] - str wzr, [x0,2448] - str wzr, [x0,2452] - str wzr, [x0,2460] - str wzr, [x0,2464] - str wzr, [x0,2468] - strh w1, [x0,2478] + stp wzr, wzr, [x7, 156] + strh w1, [x0, 2472] + strh w1, [x0, 2474] + str wzr, [x0, 2468] + strh w1, [x0, 2476] + strh w1, [x0, 2478] mov w1, 32 - ldrh w2, [x0,2350] - strh w1, [x0,2480] + strh w1, [x0, 2480] mov w1, 128 - strh w1, [x0,2482] - mov w1, 1024 - strh wzr, [x0,2484] - sdiv w2, w1, w2 - ldrh w1, [x0,2276] - strh wzr, [x0,2486] + strh w1, [x0, 2482] + ldrh w1, [x0, 2350] + strh wzr, [x0, 2484] + strh wzr, [x0, 2486] + strh wzr, [x0, 2488] + sdiv w2, w2, w1 + ldrh w1, [x0, 2276] + strh wzr, [x0, 2490] lsl w1, w1, 2 - strh wzr, [x0,2488] - strh wzr, [x0,2490] + str w2, [x0, 2492] cmp w2, w1 - str w2, [x0,2492] - bls .L1373 - str w1, [x0,2492] -.L1373: + bls .L1338 + str w1, [x0, 2492] +.L1338: add x19, x20, :lo12:.LANCHOR2 mov w22, 56 - ldrh w0, [x19,2348] - str wzr, [x19,2496] + ldrh w0, [x19, 2348] + str wzr, [x19, 2496] lsl w0, w0, 1 bl ftl_malloc - str x0, [x19,2504] - ldrh w1, [x19,2348] + ldrh w1, [x19, 2348] + str x0, [x19, 2504] mov w0, 12 mul w0, w1, w0 bl ftl_malloc - ldrh w21, [x19,2276] - str x0, [x19,2512] + ldrh w21, [x19, 2276] + str x0, [x19, 2512] mul w21, w21, w22 lsl w23, w21, 3 mov w0, w23 bl ftl_malloc - str x0, [x19,2520] + str x0, [x19, 2520] mov w0, w21 bl ftl_malloc - str x0, [x19,2528] + str x0, [x19, 2528] mov w0, w23 bl ftl_malloc - str x0, [x19,2536] + str x0, [x19, 2536] mov w0, w21 bl ftl_malloc - str x0, [x19,2544] + str x0, [x19, 2544] mov w0, w21 bl ftl_malloc - str x0, [x19,2552] - ldr w0, [x19,2492] + str x0, [x19, 2552] + ldr w0, [x19, 2492] mul w0, w0, w22 bl ftl_malloc - str x0, [x19,2560] - ldrh w0, [x19,2276] - ldrh w21, [x19,2354] + str x0, [x19, 2560] + ldrh w0, [x19, 2276] + ldrh w21, [x19, 2354] lsl w0, w0, 1 add w0, w0, 1 - str w0, [x19,2568] + str w0, [x19, 2568] mov w0, w21 bl ftl_malloc - str x0, [x19,2576] + str x0, [x19, 2576] mov w0, w21 bl ftl_malloc - str x0, [x19,2584] + str x0, [x19, 2584] mov w0, w21 bl ftl_malloc - str x0, [x19,2592] - ldr w0, [x19,2568] + str x0, [x19, 2592] + ldr w0, [x19, 2568] mul w0, w21, w0 bl ftl_malloc - str x0, [x19,2600] - ldr w0, [x19,2492] + str x0, [x19, 2600] + ldr w0, [x19, 2492] mul w0, w21, w0 bl ftl_malloc - str x0, [x19,2608] + str x0, [x19, 2608] mov w0, w21 bl ftl_malloc - str x0, [x19,2616] + str x0, [x19, 2616] mov w0, w21 bl ftl_malloc - str x0, [x19,2624] - ldr w1, [x19,2568] + str x0, [x19, 2624] + ldr w1, [x19, 2568] mov w0, 24 mul w0, w1, w0 bl ftl_malloc - ldrh w21, [x19,2276] - str x0, [x19,2632] - ldrh w0, [x19,2356] - mul w21, w0, w21 + ldrh w21, [x19, 2356] + str x0, [x19, 2632] + ldrh w0, [x19, 2276] + mul w21, w21, w0 mov w0, w21 bl ftl_malloc - str x0, [x19,2640] + str x0, [x19, 2640] lsl w0, w21, 3 bl ftl_malloc - str x0, [x19,2648] - ldrh w1, [x19,2356] - ldr w0, [x19,2568] + str x0, [x19, 2648] + ldrh w1, [x19, 2356] + ldr w0, [x19, 2568] mul w0, w1, w0 bl ftl_malloc - str x0, [x19,2656] - ldrh w1, [x19,2356] - ldr w0, [x19,2492] + str x0, [x19, 2656] + ldrh w1, [x19, 2356] + ldr w0, [x19, 2492] mul w0, w1, w0 bl ftl_malloc - str x0, [x19,2664] - ldrh w0, [x19,2286] - lsl w0, w0, 1 - strh w0, [x19,2672] + str x0, [x19, 2664] + ldrh w0, [x19, 2286] + ubfiz w0, w0, 1, 15 + strh w0, [x19, 2672] and w0, w0, 65534 bl ftl_malloc - str x0, [x19,2680] - ldrh w0, [x19,2672] + str x0, [x19, 2680] + ldrh w0, [x19, 2672] add x0, x0, 547 lsr x0, x0, 9 - strh w0, [x19,2672] + strh w0, [x19, 2672] lsl w0, w0, 9 bl ftl_malloc - ldrh w21, [x19,2286] - str x0, [x19,2688] + ldrh w21, [x19, 2286] + str x0, [x19, 2688] add x0, x0, 32 - lsl w21, w21, 1 - str x0, [x19,2696] - mov w0, w21 - bl ftl_malloc - str x0, [x19,2704] - mov w0, w21 - bl ftl_malloc - ldr w21, [x19,2372] - str x0, [x19,2712] + str x0, [x19, 2696] lsl w21, w21, 1 mov w0, w21 bl ftl_malloc - str x0, [x19,2720] + str x0, [x19, 2704] mov w0, w21 bl ftl_malloc - str x0, [x19,2728] - ldrh w0, [x19,2286] + ldr w21, [x19, 2372] + str x0, [x19, 2712] + lsl w21, w21, 1 + mov w0, w21 + bl ftl_malloc + str x0, [x19, 2720] + mov w0, w21 + bl ftl_malloc + str x0, [x19, 2728] + ldrh w0, [x19, 2286] lsr w0, w0, 3 add w0, w0, 4 bl ftl_malloc - adrp x1, .LANCHOR0+16 - str x0, [x1,#:lo12:.LANCHOR0+16] - ldrh w0, [x19,2364] + adrp x1, .LANCHOR0+80 + str x0, [x1, #:lo12:.LANCHOR0+80] + ldrh w0, [x19, 2364] lsl w0, w0, 1 bl ftl_malloc - str x0, [x19,2736] - ldrh w0, [x19,2364] + str x0, [x19, 2736] + ldrh w0, [x19, 2364] lsl w0, w0, 1 bl ftl_malloc - str x0, [x19,2744] - ldrh w0, [x19,2364] + str x0, [x19, 2744] + ldrh w0, [x19, 2364] lsl w0, w0, 2 bl ftl_malloc - str x0, [x19,2752] - ldrh w0, [x19,2366] + str x0, [x19, 2752] + ldrh w0, [x19, 2366] lsl w0, w0, 2 bl ftl_malloc - str x0, [x19,2760] - ldrh w2, [x19,2366] + ldrh w2, [x19, 2366] mov w1, 0 + str x0, [x19, 2760] lsl w2, w2, 2 bl ftl_memset - ldrh w21, [x19,2380] + ldrh w21, [x19, 2380] lsl w21, w21, 2 mov w0, w21 bl ftl_malloc - str x0, [x19,2768] + str x0, [x19, 2768] mov w0, w21 bl ftl_malloc - str x0, [x19,2776] - ldr w0, [x19,2372] + str x0, [x19, 2776] + ldr w0, [x19, 2372] lsl w0, w0, 2 bl ftl_malloc - str x0, [x19,2784] - ldrh w0, [x19,2382] + str x0, [x19, 2784] + ldrh w0, [x19, 2382] lsl w0, w0, 4 bl ftl_malloc - str x0, [x19,2792] - ldrh w1, [x19,2382] - ldrh w0, [x19,2354] + ldrh w1, [x19, 2382] + str x0, [x19, 2792] + ldrh w0, [x19, 2354] mul w0, w1, w0 bl ftl_malloc - str x0, [x19,2800] - ldrh w1, [x19,2286] + str x0, [x19, 2800] + ldrh w1, [x19, 2286] mov w0, 6 mul w0, w1, w0 bl ftl_malloc - str x0, [x19,2808] - ldrh w0, [x19,2342] - ldrh w1, [x19,2298] + str x0, [x19, 2808] + ldrh w0, [x19, 2342] + ldrh w1, [x19, 2298] add w0, w0, 31 asr w0, w0, 5 - strh w0, [x19,2816] - mul w0, w0, w1 + strh w0, [x19, 2816] + mul w0, w1, w0 lsl w0, w0, 2 bl ftl_malloc - str x0, [x19,2856] - add x1, x19, 2824 - ldrh w4, [x19,2816] - ldrh w5, [x19,2298] - mov w0, 1 - mov w2, w4 -.L1374: + ldrh w3, [x19, 2816] + add x4, x19, 2864 + ldrh w5, [x19, 2298] + mov w1, w3 + str x0, [x19, 2856] + mov x0, 1 +.L1339: cmp w0, w5 - add x1, x1, 8 - bcs .L1474 - ldr x3, [x19,2856] - add w0, w0, 1 - add x3, x3, w2, uxtw 2 - add w2, w2, w4 - str x3, [x1,32] - b .L1374 -.L1474: - add x1, x20, :lo12:.LANCHOR2 -.L1376: - cmp w0, 8 - beq .L1475 - add x2, x1, w0, uxtw 3 - add w0, w0, 1 - str xzr, [x2,2856] - b .L1376 -.L1475: + bcc .L1340 + mov w1, 8 + add x3, x20, :lo12:.LANCHOR2 + sub w1, w1, w0 + add x3, x3, 2824 + add x1, x1, 1 + mov x2, 0 +.L1341: + add x2, x2, 1 + cmp x2, x1 + bne .L1342 add x0, x20, :lo12:.LANCHOR2 - ldr x1, [x0,2720] - cbnz x1, .L1378 -.L1380: + ldr x1, [x0, 2720] + cbnz x1, .L1343 +.L1345: adrp x1, .LANCHOR3 - adrp x0, .LC31 add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC31 add x1, x1, 136 + adrp x0, .LC31 + add x0, x0, :lo12:.LC31 bl printk mov w0, -1 - b .L1379 -.L1378: - ldr x1, [x0,2728] - cbz x1, .L1380 - ldr x1, [x0,2768] - cbz x1, .L1380 - ldr x1, [x0,2784] - cbz x1, .L1380 - ldr x1, [x0,2792] - cbz x1, .L1380 - ldr x1, [x0,2800] - cbz x1, .L1380 - ldr x1, [x0,2808] - cbz x1, .L1380 - ldr x1, [x0,2856] - cbz x1, .L1380 - ldr x0, [x0,2712] - cbz x0, .L1380 - add x0, x20, :lo12:.LANCHOR2 - ldr x1, [x0,2504] - cbz x1, .L1380 - ldr x1, [x0,2512] - cbz x1, .L1380 - ldr x1, [x0,2520] - cbz x1, .L1380 - ldr x1, [x0,2536] - cbz x1, .L1380 - ldr x1, [x0,2544] - cbz x1, .L1380 - ldr x1, [x0,2552] - cbz x1, .L1380 - ldr x1, [x0,2528] - cbz x1, .L1380 - ldr x1, [x0,2576] - cbz x1, .L1380 - ldr x1, [x0,2584] - cbz x1, .L1380 - ldr x0, [x0,2592] - cbz x0, .L1380 - add x0, x20, :lo12:.LANCHOR2 - ldr x1, [x0,2600] - cbz x1, .L1380 - ldr x1, [x0,2616] - cbz x1, .L1380 - ldr x1, [x0,2624] - cbz x1, .L1380 - ldr x1, [x0,2632] - cbz x1, .L1380 - ldr x1, [x0,2640] - cbz x1, .L1380 - ldr x1, [x0,2648] - cbz x1, .L1380 - ldr x1, [x0,2656] - cbz x1, .L1380 - ldr x1, [x0,2696] - cbz x1, .L1380 - ldr x1, [x0,2680] - cbz x1, .L1380 - ldr x0, [x0,2736] - cbz x0, .L1380 - adrp x0, .LANCHOR2 - add x0, x0, :lo12:.LANCHOR2 - ldr x1, [x0,2744] - cbz x1, .L1380 - ldr x1, [x0,2752] - cbz x1, .L1380 - ldr x0, [x0,2760] - cbz x0, .L1380 - mov w0, 0 -.L1379: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldr x23, [sp,48] +.L1337: + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldr x23, [sp, 48] ldp x29, x30, [sp], 64 ret +.L1340: + ldr x2, [x19, 2856] + add w0, w0, 1 + add x2, x2, w1, uxtw 2 + add w1, w1, w3 + str x2, [x4], 8 + b .L1339 +.L1342: + add x4, x0, x2 + add x4, x3, x4, lsl 3 + str xzr, [x4, 24] + b .L1341 +.L1343: + ldr x1, [x0, 2728] + cbz x1, .L1345 + ldr x1, [x0, 2768] + cbz x1, .L1345 + ldr x1, [x0, 2784] + cbz x1, .L1345 + ldr x1, [x0, 2792] + cbz x1, .L1345 + ldr x1, [x0, 2800] + cbz x1, .L1345 + ldr x1, [x0, 2808] + cbz x1, .L1345 + ldr x1, [x0, 2856] + cbz x1, .L1345 + ldr x0, [x0, 2712] + cbz x0, .L1345 + add x0, x20, :lo12:.LANCHOR2 + ldr x1, [x0, 2504] + cbz x1, .L1345 + ldr x1, [x0, 2512] + cbz x1, .L1345 + ldr x1, [x0, 2520] + cbz x1, .L1345 + ldr x1, [x0, 2536] + cbz x1, .L1345 + ldr x1, [x0, 2544] + cbz x1, .L1345 + ldr x1, [x0, 2552] + cbz x1, .L1345 + ldr x1, [x0, 2528] + cbz x1, .L1345 + ldr x1, [x0, 2576] + cbz x1, .L1345 + ldr x1, [x0, 2584] + cbz x1, .L1345 + ldr x0, [x0, 2592] + cbz x0, .L1345 + add x0, x20, :lo12:.LANCHOR2 + ldr x1, [x0, 2600] + cbz x1, .L1345 + ldr x1, [x0, 2616] + cbz x1, .L1345 + ldr x1, [x0, 2624] + cbz x1, .L1345 + ldr x1, [x0, 2632] + cbz x1, .L1345 + ldr x1, [x0, 2640] + cbz x1, .L1345 + ldr x1, [x0, 2648] + cbz x1, .L1345 + ldr x1, [x0, 2656] + cbz x1, .L1345 + ldr x1, [x0, 2696] + cbz x1, .L1345 + ldr x1, [x0, 2680] + cbz x1, .L1345 + ldr x0, [x0, 2736] + cbz x0, .L1345 + adrp x0, .LANCHOR2 + add x0, x0, :lo12:.LANCHOR2 + ldr x1, [x0, 2744] + cbz x1, .L1345 + ldr x1, [x0, 2752] + cbz x1, .L1345 + ldr x0, [x0, 2760] + cbz x0, .L1345 + mov w0, 0 + b .L1337 .size FtlMemInit, .-FtlMemInit .align 2 .global IsBlkInVendorPart .type IsBlkInVendorPart, %function IsBlkInVendorPart: adrp x1, .LANCHOR2 - uxth w4, w0 add x1, x1, :lo12:.LANCHOR2 - mov w0, 0 - ldrh w2, [x1,2920] - cbz w2, .L1477 - ldrh w2, [x1,2364] - ldr x3, [x1,2736] + and w0, w0, 65535 + ldrh w2, [x1, 2920] + cbz w2, .L1444 + ldrh w2, [x1, 2364] + ldr x3, [x1, 2736] mov x1, 0 -.L1478: +.L1442: cmp w2, w1, uxth - bls .L1483 - add x1, x1, 1 - add x0, x3, x1, lsl 1 - ldrh w0, [x0,-2] - cmp w0, w4 - bne .L1478 - mov w0, 1 - b .L1477 -.L1483: + bhi .L1443 +.L1444: mov w0, 0 -.L1477: + ret +.L1443: + add x1, x1, 1 + add x4, x3, x1, lsl 1 + ldrh w4, [x4, -2] + cmp w4, w0 + bne .L1442 + mov w0, 1 ret .size IsBlkInVendorPart, .-IsBlkInVendorPart .align 2 @@ -8797,29 +8650,33 @@ IsBlkInVendorPart: .type FtlCacheMetchLpa, %function FtlCacheMetchLpa: adrp x2, .LANCHOR2 - mov w6, w0 add x2, x2, :lo12:.LANCHOR2 + ldr w4, [x2, 2496] + cbz w4, .L1451 + mov x5, 24 + mov w6, 56 + ldr x2, [x2, 2560] + nop // between mem op and mult-accumulate + umaddl x4, w4, w6, x5 + add x3, x2, 24 + add x2, x2, x4 +.L1448: + cmp x3, x2 + bne .L1450 +.L1451: mov w0, 0 - ldr w3, [x2,2496] - cbz w3, .L1485 - ldr x5, [x2,2560] - mov x0, 56 - mov x2, 0 -.L1486: - cmp w3, w2 - bls .L1495 - madd x4, x2, x0, x5 - add x2, x2, 1 - ldr w4, [x4,24] - cmp w4, w6 - bcc .L1486 + ret +.L1450: + ldr w4, [x3] + cmp w4, w0 + bcc .L1449 cmp w4, w1 - bhi .L1486 + bls .L1452 +.L1449: + add x3, x3, 56 + b .L1448 +.L1452: mov w0, 1 - b .L1485 -.L1495: - mov w0, 0 -.L1485: ret .size FtlCacheMetchLpa, .-FtlCacheMetchLpa .align 2 @@ -8827,7 +8684,7 @@ FtlCacheMetchLpa: .type FtlGetCap, %function FtlGetCap: adrp x0, .LANCHOR2+1224 - ldr w0, [x0,#:lo12:.LANCHOR2+1224] + ldr w0, [x0, #:lo12:.LANCHOR2+1224] ret .size FtlGetCap, .-FtlGetCap .align 2 @@ -8835,7 +8692,7 @@ FtlGetCap: .type FtlGetCapacity, %function FtlGetCapacity: adrp x0, .LANCHOR2+1224 - ldr w0, [x0,#:lo12:.LANCHOR2+1224] + ldr w0, [x0, #:lo12:.LANCHOR2+1224] ret .size FtlGetCapacity, .-FtlGetCapacity .align 2 @@ -8843,7 +8700,7 @@ FtlGetCapacity: .type ftl_get_density, %function ftl_get_density: adrp x0, .LANCHOR2+1224 - ldr w0, [x0,#:lo12:.LANCHOR2+1224] + ldr w0, [x0, #:lo12:.LANCHOR2+1224] ret .size ftl_get_density, .-ftl_get_density .align 2 @@ -8851,7 +8708,7 @@ ftl_get_density: .type FtlGetLpn, %function FtlGetLpn: adrp x0, .LANCHOR2+2924 - ldr w0, [x0,#:lo12:.LANCHOR2+2924] + ldr w0, [x0, #:lo12:.LANCHOR2+2924] ret .size FtlGetLpn, .-FtlGetLpn .align 2 @@ -8859,33 +8716,34 @@ FtlGetLpn: .type FtlBbmMapBadBlock, %function FtlBbmMapBadBlock: stp x29, x30, [sp, -32]! - uxth w1, w0 + and w1, w0, 65535 mov w4, 1 add x29, sp, 0 - str x19, [sp,16] + str x19, [sp, 16] adrp x19, .LANCHOR2 add x19, x19, :lo12:.LANCHOR2 - ldrh w3, [x19,2342] + ldrh w0, [x19, 2342] add x19, x19, 2824 - udiv w2, w1, w3 + udiv w3, w1, w0 + and w2, w3, 65535 + msub w3, w3, w0, w1 add x0, x19, w2, uxth 3 - ldr x0, [x0,32] - msub w3, w2, w3, w1 - uxth w3, w3 - ubfx x6, x3, 5, 11 + and w3, w3, 65535 + ldr x0, [x0, 32] + ubfx x5, x3, 5, 11 + lsl x5, x5, 2 lsl w4, w4, w3 - lsl x6, x6, 2 - ldr w5, [x0,x6] - orr w4, w4, w5 - str w4, [x0,x6] + ldr w6, [x0, x5] + orr w4, w4, w6 + str w4, [x0, x5] adrp x0, .LC32 add x0, x0, :lo12:.LC32 bl printk - ldrh w0, [x19,6] + ldrh w0, [x19, 6] add w0, w0, 1 - strh w0, [x19,6] + strh w0, [x19, 6] mov w0, 0 - ldr x19, [sp,16] + ldr x19, [sp, 16] ldp x29, x30, [sp], 32 ret .size FtlBbmMapBadBlock, .-FtlBbmMapBadBlock @@ -8894,16 +8752,16 @@ FtlBbmMapBadBlock: .type FtlBbmIsBadBlock, %function FtlBbmIsBadBlock: adrp x2, .LANCHOR2 - uxth w0, w0 add x3, x2, :lo12:.LANCHOR2 - ldrh w1, [x3,2342] + and w0, w0, 65535 + ldrh w1, [x3, 2342] udiv w2, w0, w1 msub w0, w2, w1, w0 add x2, x3, w2, uxth 3 - ldr x1, [x2,2856] - uxth w0, w0 + and w0, w0, 65535 + ldr x1, [x2, 2856] ubfx x3, x0, 5, 11 - ldr w1, [x1,x3,lsl 2] + ldr w1, [x1, x3, lsl 2] lsr w0, w1, w0 and w0, w0, 1 ret @@ -8920,39 +8778,39 @@ FtlBbtInfoPrint: FtlBbt2Bitmap: stp x29, x30, [sp, -48]! add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] adrp x19, .LANCHOR2 - str x21, [sp,32] add x19, x19, :lo12:.LANCHOR2 - mov x21, x0 mov x20, x1 - mov x0, x1 + str x21, [sp, 32] mov w1, 0 - ldrh w2, [x19,2816] + mov x21, x0 + mov x0, x20 + ldrh w2, [x19, 2816] lsl w2, w2, 2 bl ftl_memset - mov x3, 0 - mov w0, 65535 - mov w5, 1 -.L1505: - ldrh w2, [x21,x3] - cmp w2, w0 - beq .L1503 - ubfx x4, x2, 5, 11 - lsl w2, w5, w2 - lsl x4, x4, 2 - add x3, x3, 2 - cmp x3, 1024 - ldr w1, [x20,x4] - orr w2, w1, w2 - str w2, [x20,x4] - ldrh w2, [x19,2830] - add w2, w2, 1 - strh w2, [x19,2830] - bne .L1505 -.L1503: - ldp x19, x20, [sp,16] - ldr x21, [sp,32] + mov x1, 0 + mov w5, 65535 + mov w4, 1 +.L1463: + ldrh w0, [x21, x1] + cmp w0, w5 + beq .L1461 + ubfx x2, x0, 5, 11 + lsl w0, w4, w0 + lsl x2, x2, 2 + add x1, x1, 2 + cmp x1, 1024 + ldr w3, [x20, x2] + orr w0, w3, w0 + str w0, [x20, x2] + ldrh w0, [x19, 2830] + add w0, w0, 1 + strh w0, [x19, 2830] + bne .L1463 +.L1461: + ldp x19, x20, [sp, 16] + ldr x21, [sp, 32] ldp x29, x30, [sp], 48 ret .size FtlBbt2Bitmap, .-FtlBbt2Bitmap @@ -8962,217 +8820,222 @@ FtlBbt2Bitmap: FtlBbmTblFlush: stp x29, x30, [sp, -80]! add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x19, .LANCHOR2 - add x19, x19, :lo12:.LANCHOR2 - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - ldr w1, [x19,2928] - stp x25, x26, [sp,64] - cbnz w1, .L1510 - ldr x0, [x19,2576] - mov x22, 0 - ldr x3, [x19,2640] - add x21, x19, 2824 - ldrh w2, [x19,2354] - str x0, [x19,2944] - str x3, [x19,2952] + stp x19, x20, [sp, 16] + stp x25, x26, [sp, 64] + adrp x25, .LANCHOR2 + add x19, x25, :lo12:.LANCHOR2 + stp x21, x22, [sp, 32] + stp x23, x24, [sp, 48] + ldr w0, [x19, 2928] + cbnz w0, .L1469 + ldr x2, [x19, 2640] + mov w1, 0 + ldr x0, [x19, 2576] + add x21, x19, 2856 + str x2, [x19, 2952] + mov w20, 0 + ldrh w2, [x19, 2354] + str x0, [x19, 2944] bl ftl_memset -.L1511: - ldrh w1, [x19,2298] - mov w0, w22 - add x20, x19, 2936 - add x22, x22, 1 - cmp w0, w1 - bge .L1524 - add x1, x21, x22, lsl 3 - ldrh w2, [x19,2816] - ldr x3, [x20,8] - ldr x1, [x1,24] - mul w0, w0, w2 - add x0, x3, w0, sxtw 2 - lsl w2, w2, 2 - bl ftl_memcpy - b .L1511 -.L1524: - ldr x26, [x20,16] - mov w1, 255 +.L1470: + ldrh w0, [x19, 2298] + add x1, x19, 2936 + cmp w20, w0 + blt .L1471 + ldr x26, [x1, 16] mov w2, 16 - mov w22, 0 + mov w1, 255 + adrp x23, .LC33 mov x0, x26 - adrp x24, .LC33 - adrp x25, .LC34 - mov w23, w22 bl ftl_memset - add x24, x24, :lo12:.LC33 mov w0, -3887 + add x25, x25, :lo12:.LANCHOR2 strh w0, [x26] - add x25, x25, :lo12:.LC34 - ldr w0, [x21,8] - str w0, [x26,4] - ldrh w0, [x19,2824] - strh w0, [x26,2] - ldrh w0, [x21,4] - strh w0, [x26,8] - ldrh w0, [x21,6] - strh w0, [x26,10] - ldr w0, [x19,2272] - strh w0, [x26,12] -.L1513: - ldr x0, [x19,2576] - str x0, [x20,8] - ldrh w1, [x19,2824] - ldr x0, [x19,2640] - str x0, [x20,16] - ldrh w2, [x19,2826] - ldrh w3, [x19,2828] + add x0, x19, 2824 + add x23, x23, :lo12:.LC33 + mov w21, 0 + ldr w1, [x19, 2832] + mov w22, 0 + str w1, [x26, 4] + adrp x24, .LC34 + ldrh w1, [x19, 2824] + strh w1, [x26, 2] + ldrh w1, [x19, 2828] + strh w1, [x26, 8] + ldrh w1, [x19, 2830] + strh w1, [x26, 10] + ldr w1, [x19, 2272] + mov x19, x0 + strh w1, [x26, 12] +.L1472: + ldr x0, [x25, 2576] + str x0, [x25, 2944] + ldr x0, [x25, 2640] + str x0, [x25, 2952] + ldrh w1, [x19] + ldrh w2, [x19, 2] + ldrh w3, [x19, 4] + ldrh w4, [x26, 10] orr w0, w2, w1, lsl 10 - ldrh w4, [x26,10] - str w0, [x20,4] - mov x0, x24 - str wzr, [x20] + str wzr, [x25, 2936] + str w0, [x25, 2940] + mov x0, x23 bl printk - ldrh w1, [x19,2346] - ldrh w0, [x19,2826] - sub w1, w1, #1 - cmp w0, w1 - blt .L1514 - ldr w1, [x19,2832] - ldrh w0, [x19,2824] - add w1, w1, 1 - str w1, [x19,2832] - str w1, [x26,4] - strh w0, [x26,8] - ldrh w1, [x19,2828] - strh w0, [x19,2828] - ldr x0, [x19,2544] - strh w1, [x19,2824] - lsl w1, w1, 10 - str w1, [x20,4] - str w1, [x0,4] - mov w1, 1 - mov w2, w1 - strh wzr, [x19,2826] - ldr x0, [x19,2544] + ldrh w0, [x25, 2346] + ldrh w1, [x19, 2] + sub w0, w0, #1 + cmp w1, w0 + blt .L1473 + ldr w0, [x19, 8] + mov w2, 1 + ldrh w1, [x19] + add w0, w0, 1 + str w0, [x19, 8] + str w0, [x26, 4] + strh w1, [x26, 8] + ldrh w0, [x19, 4] + strh w1, [x19, 4] + ldr x1, [x25, 2544] + strh w0, [x19] + lsl w0, w0, 10 + str w0, [x25, 2940] + strh wzr, [x19, 2] + str w0, [x1, 4] + mov w1, w2 + ldr x0, [x25, 2544] bl FlashEraseBlocks -.L1514: - mov w1, 1 +.L1473: + add x20, x25, 2936 + mov w3, 1 mov x0, x20 - mov w2, w1 - mov w3, w1 + mov w2, w3 + mov w1, w3 bl FlashProgPages - ldrh w1, [x19,2826] - ldr w0, [x20] - add w1, w1, 1 - strh w1, [x19,2826] + ldrh w0, [x19, 2] + add w0, w0, 1 + strh w0, [x19, 2] + ldr w0, [x25, 2936] cmn w0, #1 - bne .L1515 - ldr w1, [x20,4] - mov x0, x25 - add w22, w22, 1 + bne .L1474 + ldr w1, [x25, 2940] + add w21, w21, 1 + add x0, x24, :lo12:.LC34 + and w21, w21, 65535 bl printk - uxth w22, w22 - cmp w22, 3 - bls .L1513 + cmp w21, 3 + bls .L1472 + ldr w1, [x25, 2940] + mov w2, w21 adrp x0, .LC35 - ldr w1, [x20,4] add x0, x0, :lo12:.LC35 - mov w2, w22 bl printk mov w0, 1 - str w0, [x19,2928] - b .L1510 -.L1515: - add w23, w23, 1 - cmp w23, 1 - beq .L1513 - cmp w0, 256 - beq .L1513 -.L1510: + str w0, [x25, 2928] +.L1469: mov w0, 0 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] ldp x29, x30, [sp], 80 ret +.L1471: + ldrh w2, [x19, 2816] + ldr x0, [x1, 8] + ldr x1, [x21], 8 + mul w3, w2, w20 + lsl w2, w2, 2 + add w20, w20, 1 + add x0, x0, w3, sxtw 2 + bl ftl_memcpy + b .L1470 +.L1477: + mov w22, 1 + b .L1472 +.L1474: + add w22, w22, 1 + cmp w22, 1 + ble .L1477 + cmp w0, 256 + bne .L1469 + b .L1472 .size FtlBbmTblFlush, .-FtlBbmTblFlush .align 2 .global FtlLoadFactoryBbt .type FtlLoadFactoryBbt, %function FtlLoadFactoryBbt: stp x29, x30, [sp, -80]! - adrp x1, .LANCHOR2 - add x1, x1, :lo12:.LANCHOR2 + adrp x0, .LANCHOR2 + add x0, x0, :lo12:.LANCHOR2 add x29, sp, 0 - stp x21, x22, [sp,32] - stp x25, x26, [sp,64] - stp x19, x20, [sp,16] - stp x23, x24, [sp,48] - add x21, x1, 2936 - add x23, x1, 2824 - ldr x0, [x1,2576] - mov w22, 0 - ldr x24, [x1,2640] - mov x19, x1 - str x0, [x21,8] - mov w25, -1 - str x24, [x21,16] + stp x21, x22, [sp, 32] + add x22, x0, 2836 + stp x25, x26, [sp, 64] + mov w21, 0 + stp x19, x20, [sp, 16] + mov x19, x0 + stp x23, x24, [sp, 48] + add x23, x0, 2936 + mov x25, x23 mov w26, 61664 -.L1526: - ldrh w0, [x19,2298] - cmp w22, w0 - bcs .L1535 - ldrh w20, [x19,2342] - strh w25, [x23,12] -.L1528: - sub w20, w20, #1 - ldrh w0, [x19,2342] - uxth w20, w20 - sub w1, w0, #16 - cmp w20, w1 - ble .L1529 - madd w0, w22, w0, w20 - mov w1, 1 - lsl w0, w0, 10 - mov w2, w1 - str w0, [x21,4] - mov x0, x21 - bl FlashReadPages - ldr w0, [x21] - cmn w0, #1 - beq .L1528 - ldrh w0, [x24] - cmp w0, w26 - bne .L1528 - strh w20, [x23,12] -.L1529: - add w22, w22, 1 - add x23, x23, 2 - b .L1526 -.L1535: + ldr x1, [x0, 2576] + ldr x24, [x0, 2640] + stp x1, x24, [x23, 8] +.L1483: + ldrh w0, [x19, 2298] + cmp w21, w0 + bcc .L1488 mov w0, 0 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] ldp x29, x30, [sp], 80 ret +.L1488: + ldrh w20, [x19, 2342] + mov w0, -1 + strh w0, [x22] +.L1485: + ldrh w0, [x19, 2342] + sub w20, w20, #1 + and w20, w20, 65535 + sub w1, w0, #16 + cmp w20, w1 + ble .L1486 + madd w0, w0, w21, w20 + mov w2, 1 + mov w1, w2 + lsl w0, w0, 10 + str w0, [x25, 4] + mov x0, x23 + bl FlashReadPages + ldr w0, [x25] + cmn w0, #1 + beq .L1485 + ldrh w0, [x24] + cmp w0, w26 + bne .L1485 + strh w20, [x22] +.L1486: + add w21, w21, 1 + add x22, x22, 2 + b .L1483 .size FtlLoadFactoryBbt, .-FtlLoadFactoryBbt .align 2 .global FtlBbtMemInit .type FtlBbtMemInit, %function FtlBbtMemInit: - adrp x0, .LANCHOR2 - mov w1, -1 stp x29, x30, [sp, -16]! + adrp x0, .LANCHOR2 add x0, x0, :lo12:.LANCHOR2 - mov w2, 16 + mov w1, -1 add x29, sp, 0 + mov w2, 16 add x0, x0, 2836 - strh w1, [x0,-12] + strh w1, [x0, -12] mov w1, 255 - strh wzr, [x0,-6] + strh wzr, [x0, -6] bl ftl_memset ldp x29, x30, [sp], 16 ret @@ -9181,34 +9044,33 @@ FtlBbtMemInit: .global FtlBbtCalcTotleCnt .type FtlBbtCalcTotleCnt, %function FtlBbtCalcTotleCnt: - stp x29, x30, [sp, -48]! adrp x0, .LANCHOR2 add x0, x0, :lo12:.LANCHOR2 + mov w4, 0 + mov w5, 0 + ldrh w6, [x0, 2342] + ldrh w0, [x0, 2298] + mul w6, w6, w0 + cmp w4, w6 + blt .L1505 + mov w0, w5 + ret +.L1505: + stp x29, x30, [sp, -16]! add x29, sp, 0 - stp x19, x20, [sp,16] - str x21, [sp,32] - mov w19, 0 - mov w20, w19 - ldrh w1, [x0,2342] - ldrh w21, [x0,2298] - mul w21, w1, w21 -.L1538: - cmp w20, w21 - bge .L1544 - mov w0, w20 +.L1498: + mov w0, w4 bl FtlBbmIsBadBlock - cbz w0, .L1539 - add w19, w19, 1 - uxth w19, w19 -.L1539: - add w20, w20, 1 - uxth w20, w20 - b .L1538 -.L1544: - mov w0, w19 - ldr x21, [sp,32] - ldp x19, x20, [sp,16] - ldp x29, x30, [sp], 48 + cbz w0, .L1497 + add w5, w5, 1 + and w5, w5, 65535 +.L1497: + add w4, w4, 1 + and w4, w4, 65535 + cmp w4, w6 + blt .L1498 + mov w0, w5 + ldp x29, x30, [sp], 16 ret .size FtlBbtCalcTotleCnt, .-FtlBbtCalcTotleCnt .align 2 @@ -9217,189 +9079,185 @@ FtlBbtCalcTotleCnt: FtlMakeBbt: stp x29, x30, [sp, -96]! add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] adrp x19, .LANCHOR2 add x20, x19, :lo12:.LANCHOR2 - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] - stp x27, x28, [sp,80] + stp x21, x22, [sp, 32] + stp x23, x24, [sp, 48] + stp x25, x26, [sp, 64] + stp x27, x28, [sp, 80] + ldr w24, [x20, 2928] + cbnz w24, .L1507 mov x21, x19 - ldr w22, [x20,2928] - cbnz w22, .L1546 - add x24, x20, 2824 + add x26, x20, 2856 + add x25, x20, 2836 mov x19, x20 - mov x25, x24 add x20, x20, 2936 mov w28, -3872 bl FtlBbtMemInit bl FtlLoadFactoryBbt -.L1547: - ldrh w0, [x19,2298] - cmp w22, w0 - bcs .L1565 - ldrh w4, [x25,12] - mov w1, 65535 - ldr x0, [x19,2576] - ldr x26, [x19,2640] - cmp w4, w1 - str x0, [x20,8] - str x26, [x20,16] - beq .L1548 - ldrh w0, [x19,2342] - mov w1, 1 - mov w2, w1 - madd w27, w22, w0, w4 - lsl w0, w27, 10 - str w0, [x20,4] - mov x0, x20 - bl FlashReadPages - ldrh w2, [x19,2342] - ldr x0, [x24,32] - add w2, w2, 7 - ldr x1, [x20,8] - lsr w2, w2, 3 - bl ftl_memcpy - b .L1549 -.L1548: - mov w1, w22 - bl FlashGetBadBlockList - ldr x0, [x20,8] - ldr x1, [x24,32] - bl FtlBbt2Bitmap - ldrh w23, [x19,2342] -.L1551: - sub w23, w23, #1 - uxth w23, w23 -.L1550: - ldrh w0, [x19,2342] - madd w0, w22, w0, w23 +.L1508: + ldrh w0, [x19, 2298] + cmp w24, w0 + bcc .L1514 + add x20, x21, :lo12:.LANCHOR2 + mov w19, 0 +.L1515: + ldrh w0, [x20, 2358] + cmp w0, w19 + bhi .L1516 + add x20, x20, 2824 + ldrh w19, [x20, 12] + mov w22, 65535 + sub w19, w19, #1 + and w19, w19, 65535 +.L1517: + ldrh w0, [x20, 12] + sub w0, w0, #48 + cmp w19, w0 + ble .L1521 + mov w0, w19 bl FtlBbmIsBadBlock cmp w0, 1 - beq .L1551 - ldr x0, [x19,2640] - mov w1, 0 - mov w2, 16 - strh w23, [x25,12] - bl ftl_memset - strh w28, [x26] - str wzr, [x26,4] - ldrh w2, [x19,2816] - ldrh w0, [x25,12] - strh w0, [x26,2] - lsl w2, w2, 2 - ldrh w0, [x19,2342] - ldrh w4, [x25,12] - ldr x1, [x24,32] - madd w27, w22, w0, w4 - lsl w0, w27, 10 - str w0, [x20,4] - ldr x0, [x20,8] + beq .L1518 + mov w0, w19 + bl FlashTestBlk + cbz w0, .L1519 + mov w0, w19 + bl FtlBbmMapBadBlock +.L1518: + sub w19, w19, #1 + and w19, w19, 65535 + b .L1517 +.L1514: + ldr x0, [x19, 2576] + mov w2, 65535 + ldr x27, [x19, 2640] + ldrh w1, [x25] + stp x0, x27, [x20, 8] + cmp w1, w2 + beq .L1509 + ldrh w23, [x19, 2342] + mov w2, 1 + madd w23, w23, w24, w1 + mov w1, w2 + lsl w0, w23, 10 + str w0, [x20, 4] + mov x0, x20 + bl FlashReadPages + ldr x1, [x20, 8] + ldr x0, [x26] + ldrh w2, [x19, 2342] + add w2, w2, 7 + lsr w2, w2, 3 bl ftl_memcpy - mov w1, 1 +.L1510: + mov w0, w23 + add w24, w24, 1 + bl FtlBbmMapBadBlock + add x26, x26, 8 + add x25, x25, 2 + b .L1508 +.L1509: + mov w1, w24 + bl FlashGetBadBlockList + ldr x0, [x20, 8] + ldr x1, [x26] + bl FtlBbt2Bitmap + ldrh w22, [x19, 2342] +.L1512: + sub w22, w22, #1 + and w22, w22, 65535 +.L1511: + ldrh w0, [x19, 2342] + madd w0, w24, w0, w22 + bl FtlBbmIsBadBlock + cmp w0, 1 + beq .L1512 + ldr x0, [x19, 2640] + mov w2, 16 + strh w22, [x25] + mov w1, 0 + bl ftl_memset + strh w28, [x27] + str wzr, [x27, 4] + ldrh w23, [x19, 2342] + ldrh w0, [x25] + strh w0, [x27, 2] + ldrh w2, [x19, 2816] + ldrh w0, [x25] + ldr x1, [x26] + lsl w2, w2, 2 + madd w23, w23, w24, w0 + lsl w0, w23, 10 + str w0, [x20, 4] + ldr x0, [x20, 8] + bl ftl_memcpy + mov w2, 1 mov x0, x20 - mov w2, w1 + mov w1, w2 bl FlashEraseBlocks - mov w1, 1 + mov w3, 1 mov x0, x20 - mov w2, w1 - mov w3, w1 + mov w2, w3 + mov w1, w3 bl FlashProgPages ldr w0, [x20] cmn w0, #1 - bne .L1549 - mov w0, w27 + bne .L1510 + mov w0, w23 bl FtlBbmMapBadBlock - b .L1550 -.L1549: - mov w0, w27 - add w22, w22, 1 - add x24, x24, 8 - add x25, x25, 2 - bl FtlBbmMapBadBlock - b .L1547 -.L1565: - mov w19, 0 -.L1554: - add x20, x21, :lo12:.LANCHOR2 - ldrh w0, [x20,2358] - cmp w0, w19 - bls .L1566 + b .L1511 +.L1516: mov w0, w19 add w19, w19, 1 bl FtlBbmMapBadBlock - uxth w19, w19 - b .L1554 -.L1566: - ldrh w19, [x20,2836] - mov w23, 65535 - sub w19, w19, #1 - uxth w19, w19 -.L1556: - add x22, x20, 2824 - ldrh w0, [x22,12] - sub w0, w0, #48 - cmp w19, w0 - ble .L1560 - mov w0, w19 - bl FtlBbmIsBadBlock - cmp w0, 1 - beq .L1557 - mov w0, w19 - bl FlashTestBlk - cbz w0, .L1558 - mov w0, w19 - bl FtlBbmMapBadBlock - b .L1557 -.L1558: - ldrh w0, [x20,2824] - cmp w0, w23 - bne .L1559 - strh w19, [x20,2824] - b .L1557 -.L1559: - strh w19, [x22,4] - b .L1560 -.L1557: - sub w19, w19, #1 - uxth w19, w19 - b .L1556 -.L1560: - add x19, x21, :lo12:.LANCHOR2 + and w19, w19, 65535 + b .L1515 +.L1519: + ldrh w0, [x20] + cmp w0, w22 + bne .L1520 + strh w19, [x20] + b .L1518 +.L1520: + strh w19, [x20, 4] +.L1521: + add x21, x21, :lo12:.LANCHOR2 mov w2, 2 - ldr x1, [x19,2544] - ldrh w0, [x19,2824] - str wzr, [x19,2832] + ldr x1, [x21, 2544] + ldrh w0, [x21, 2824] + str wzr, [x21, 2832] + strh wzr, [x21, 2826] lsl w0, w0, 10 - str w0, [x1,4] - strh wzr, [x19,2826] - ldr x0, [x19,2544] - ldrh w1, [x19,2828] + str w0, [x1, 4] + ldr x0, [x21, 2544] + ldrh w1, [x21, 2828] lsl w1, w1, 10 - str w1, [x0,60] + str w1, [x0, 60] mov w1, 1 bl FlashEraseBlocks - ldrh w0, [x19,2824] + ldrh w0, [x21, 2824] bl FtlBbmMapBadBlock - ldrh w0, [x19,2828] + ldrh w0, [x21, 2828] bl FtlBbmMapBadBlock bl FtlBbmTblFlush - strh wzr, [x19,2826] - ldr w0, [x19,2832] - ldrh w1, [x19,2828] + strh wzr, [x21, 2826] + ldr w0, [x21, 2832] + ldrh w1, [x21, 2828] add w0, w0, 1 - str w0, [x19,2832] - ldrh w0, [x19,2824] - strh w0, [x19,2828] - strh w1, [x19,2824] + str w0, [x21, 2832] + ldrh w0, [x21, 2824] + strh w0, [x21, 2828] + strh w1, [x21, 2824] bl FtlBbmTblFlush -.L1546: +.L1507: 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 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 FtlMakeBbt, .-FtlMakeBbt @@ -9407,16 +9265,16 @@ FtlMakeBbt: .global V2P_block .type V2P_block, %function V2P_block: - adrp x3, .LANCHOR2 - uxth w0, w0 - add x3, x3, :lo12:.LANCHOR2 - uxth w1, w1 - ldrh w4, [x3,2300] - udiv w2, w0, w4 - msub w0, w2, w4, w0 - madd w0, w1, w4, w0 - ldrh w1, [x3,2342] - madd w0, w2, w1, w0 + adrp x4, .LANCHOR2 + add x4, x4, :lo12:.LANCHOR2 + and w0, w0, 65535 + and w1, w1, 65535 + ldrh w2, [x4, 2300] + ldrh w4, [x4, 2342] + udiv w3, w0, w2 + msub w0, w3, w2, w0 + madd w2, w2, w1, w0 + madd w0, w3, w4, w2 ret .size V2P_block, .-V2P_block .align 2 @@ -9424,28 +9282,28 @@ V2P_block: .type P2V_plane, %function P2V_plane: adrp x2, .LANCHOR2 - uxth w0, w0 add x2, x2, :lo12:.LANCHOR2 - ldrh w1, [x2,2300] - ldrh w3, [x2,2342] - udiv w2, w0, w1 - udiv w3, w0, w3 - msub w0, w2, w1, w0 - madd w0, w1, w3, w0 + and w3, w0, 65535 + ldrh w1, [x2, 2300] + ldrh w2, [x2, 2342] + udiv w0, w3, w1 + udiv w2, w3, w2 + msub w0, w0, w1, w3 + madd w0, w1, w2, w0 ret .size P2V_plane, .-P2V_plane .align 2 .global P2V_block_in_plane .type P2V_block_in_plane, %function P2V_block_in_plane: - adrp x2, .LANCHOR2 - uxth w0, w0 - add x2, x2, :lo12:.LANCHOR2 - ldrh w3, [x2,2342] - udiv w1, w0, w3 - msub w0, w1, w3, w0 - ldrh w1, [x2,2300] - uxth w0, w0 + adrp x1, .LANCHOR2 + add x1, x1, :lo12:.LANCHOR2 + and w3, w0, 65535 + ldrh w2, [x1, 2342] + ldrh w1, [x1, 2300] + udiv w0, w3, w2 + msub w0, w0, w2, w3 + and w0, w0, 65535 udiv w0, w0, w1 ret .size P2V_block_in_plane, .-P2V_block_in_plane @@ -9455,91 +9313,88 @@ P2V_block_in_plane: ftl_cmp_data_ver: cmp w0, w1 mov w2, -2147483648 - bls .L1571 + bls .L1531 sub w1, w0, w1 cmp w1, w2 cset w0, ls - b .L1572 -.L1571: + ret +.L1531: sub w1, w1, w0 cmp w1, w2 cset w0, hi -.L1572: ret .size ftl_cmp_data_ver, .-ftl_cmp_data_ver .align 2 .global FtlGetLastWrittenPage .type FtlGetLastWrittenPage, %function FtlGetLastWrittenPage: - stp x29, x30, [sp, -208]! + stp x29, x30, [sp, -192]! cmp w1, 1 - adrp x3, .LANCHOR2 add x29, sp, 0 - stp x23, x24, [sp,48] - stp x19, x20, [sp,16] - stp x21, x22, [sp,32] - str x25, [sp,64] + stp x23, x24, [sp, 48] mov w23, w1 - add x3, x3, :lo12:.LANCHOR2 - bne .L1574 - ldrh w19, [x3,2346] - b .L1575 -.L1574: - ldrh w19, [x3,2344] -.L1575: + stp x19, x20, [sp, 16] + adrp x1, .LANCHOR2 + stp x21, x22, [sp, 32] + add x1, x1, :lo12:.LANCHOR2 + bne .L1534 + ldrh w19, [x1, 2346] +.L1535: sub w19, w19, #1 lsl w21, w0, 10 - mov w1, 1 - mov w2, w23 sxth w19, w19 - str xzr, [x29,96] + add x1, x29, 128 orr w0, w19, w21 - str w0, [x29,92] - add x0, x29, 88 - add x24, x29, 144 - str x24, [x29,104] - bl FlashReadPages - ldr w0, [x29,144] - cmn w0, #1 - bne .L1576 - mov w22, 0 - mov w25, 2 -.L1577: - cmp w22, w19 - bgt .L1576 - add w3, w22, w19 - mov w1, 1 + stp xzr, x1, [x29, 80] + str w0, [x29, 76] mov w2, w23 - sdiv w20, w3, w25 + mov w1, 1 + add x0, x29, 72 + bl FlashReadPages + ldr w0, [x29, 128] + cmn w0, #1 + bne .L1536 + mov w22, 0 + mov w24, 2 +.L1537: + cmp w22, w19 + ble .L1540 +.L1536: + mov w0, w19 + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x29, x30, [sp], 192 + ret +.L1534: + ldrh w19, [x1, 2344] + b .L1535 +.L1540: + add w20, w22, w19 + mov w2, w23 + mov w1, 1 + sdiv w20, w20, w24 sxth w0, w20 orr w0, w0, w21 - str w0, [x29,92] - add x0, x29, 88 + str w0, [x29, 76] + add x0, x29, 72 bl FlashReadPages - ldr w0, [x24] + ldr w0, [x29, 128] cmn w0, #1 - bne .L1578 - ldr w0, [x24,4] + bne .L1538 + ldr w0, [x29, 132] cmn w0, #1 - bne .L1578 - ldr w0, [x29,88] + bne .L1538 + ldr w0, [x29, 72] cmn w0, #1 - beq .L1578 + beq .L1538 sub w19, w20, #1 sxth w19, w19 - b .L1577 -.L1578: + b .L1537 +.L1538: add w20, w20, 1 sxth w22, w20 - b .L1577 -.L1576: - 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], 208 - ret + b .L1537 .size FtlGetLastWrittenPage, .-FtlGetLastWrittenPage .align 2 .global FtlLoadBbt @@ -9547,185 +9402,183 @@ FtlGetLastWrittenPage: FtlLoadBbt: stp x29, x30, [sp, -64]! add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] adrp x19, .LANCHOR2 - stp x23, x24, [sp,48] + stp x23, x24, [sp, 48] add x23, x19, :lo12:.LANCHOR2 - mov w24, 61649 - stp x21, x22, [sp,32] + stp x21, x22, [sp, 32] add x21, x23, 2936 - ldr x0, [x23,2576] - ldr x22, [x23,2640] - str x0, [x21,8] - str x22, [x21,16] + mov w24, 61649 + ldr x0, [x23, 2576] + ldr x22, [x23, 2640] + stp x0, x22, [x21, 8] bl FtlBbtMemInit - ldrh w20, [x23,2342] + ldrh w20, [x23, 2342] sub w20, w20, #1 - uxth w20, w20 -.L1585: - ldrh w0, [x23,2342] + and w20, w20, 65535 +.L1546: + ldrh w0, [x23, 2342] sub w0, w0, #48 cmp w20, w0 - ble .L1588 + ble .L1549 lsl w0, w20, 10 - mov w1, 1 - str w0, [x21,4] - mov w2, w1 + mov w2, 1 + str w0, [x21, 4] + mov w1, w2 mov x0, x21 bl FlashReadPages ldr w0, [x21] cmn w0, #1 - bne .L1586 - ldr w0, [x21,4] - mov w1, 1 - mov w2, w1 + bne .L1547 + ldr w0, [x21, 4] + mov w2, 1 + mov w1, w2 add w0, w0, 1 - str w0, [x21,4] + str w0, [x21, 4] mov x0, x21 bl FlashReadPages -.L1586: +.L1547: ldr w0, [x21] cmn w0, #1 - beq .L1587 + beq .L1548 ldrh w0, [x22] cmp w0, w24 - bne .L1587 - ldr w1, [x22,4] - str w1, [x23,2832] - strh w20, [x23,2824] - ldrh w1, [x22,8] - strh w1, [x23,2828] - b .L1588 -.L1587: - sub w20, w20, #1 - uxth w20, w20 - b .L1585 -.L1588: + bne .L1548 + ldr w1, [x22, 4] + str w1, [x23, 2832] + strh w20, [x23, 2824] + ldrh w1, [x22, 8] + strh w1, [x23, 2828] +.L1549: add x21, x19, :lo12:.LANCHOR2 - mov w2, 65535 - mov w0, -1 - ldrh w1, [x21,2824] - cmp w1, w2 - beq .L1590 - ldrh w1, [x21,2828] - cmp w1, w2 - beq .L1592 + mov w0, 65535 + ldrh w1, [x21, 2824] + cmp w1, w0 + beq .L1563 + ldrh w1, [x21, 2828] + cmp w1, w0 + beq .L1553 add x0, x21, 2936 lsl w1, w1, 10 - str w1, [x0,4] - mov w1, 1 - mov w2, w1 + mov w2, 1 + str w1, [x0, 4] + mov w1, w2 bl FlashReadPages - ldr w0, [x21,2936] + ldr w0, [x21, 2936] cmn w0, #1 - beq .L1592 + beq .L1553 ldrh w1, [x22] mov w0, 61649 cmp w1, w0 - bne .L1592 - ldr w0, [x22,4] - ldr w1, [x21,2832] + bne .L1553 + ldr w1, [x21, 2832] + ldr w0, [x22, 4] cmp w0, w1 - bls .L1592 - str w0, [x21,2832] - ldrh w1, [x21,2828] - ldrh w0, [x22,8] - strh w1, [x21,2824] - strh w0, [x21,2828] -.L1592: + bls .L1553 + str w0, [x21, 2832] + ldrh w1, [x21, 2828] + ldrh w0, [x22, 8] + strh w1, [x21, 2824] + strh w0, [x21, 2828] +.L1553: add x20, x19, :lo12:.LANCHOR2 mov w1, 1 add x23, x20, 2936 mov w24, 61649 - ldrh w0, [x20,2824] + ldrh w0, [x20, 2824] bl FtlGetLastWrittenPage sxth w21, w0 add w0, w0, 1 - strh w0, [x20,2826] -.L1594: - tbnz w21, #31, .L1599 - ldrh w0, [x20,2824] - mov w1, 1 - mov w2, w1 + strh w0, [x20, 2826] +.L1555: + tbnz w21, #31, .L1560 + ldrh w0, [x20, 2824] + mov w2, 1 + mov w1, w2 orr w0, w21, w0, lsl 10 - str w0, [x23,4] - ldr x0, [x20,2576] - str x0, [x23,8] + str w0, [x23, 4] + ldr x0, [x20, 2576] + str x0, [x23, 8] mov x0, x23 bl FlashReadPages ldr w0, [x23] cmn w0, #1 - beq .L1595 + beq .L1556 ldrh w0, [x22] cmp w0, w24 - bne .L1595 -.L1599: + bne .L1556 +.L1560: add x1, x19, :lo12:.LANCHOR2 - ldrh w0, [x22,10] + ldrh w0, [x22, 10] mov w2, 65535 - strh w0, [x1,2830] - ldrh w0, [x22,12] + strh w0, [x1, 2830] + ldrh w0, [x22, 12] cmp w0, w2 - bne .L1596 - b .L1597 -.L1595: - sub w21, w21, #1 - sxth w21, w21 - b .L1594 -.L1596: - ldr w2, [x1,2272] - cmp w0, w2 - beq .L1597 - ldrh w1, [x1,2286] - lsr w1, w1, 2 - cmp w0, w1 - bcs .L1597 - cmp w2, w1 - bcs .L1597 - bl FtlSysBlkNumInit -.L1597: + bne .L1557 +.L1558: add x19, x19, :lo12:.LANCHOR2 - mov x20, 0 - add x21, x19, 2824 -.L1600: - ldrh w0, [x19,2298] - mov w1, w20 - add x20, x20, 1 - cmp w1, w0 - bcs .L1618 - ldrh w2, [x19,2816] - add x0, x21, x20, lsl 3 - ldr x3, [x19,2944] - mul w1, w1, w2 - ldr x0, [x0,24] - lsl w2, w2, 2 - add x1, x3, x1, lsl 2 - bl ftl_memcpy - b .L1600 -.L1618: + mov w20, 0 + add x21, x19, 2856 +.L1561: + ldrh w0, [x19, 2298] + cmp w20, w0 + bcc .L1562 mov w0, 0 -.L1590: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] +.L1545: + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] ldp x29, x30, [sp], 64 ret +.L1548: + sub w20, w20, #1 + and w20, w20, 65535 + b .L1546 +.L1556: + sub w21, w21, #1 + sxth w21, w21 + b .L1555 +.L1557: + ldr w2, [x1, 2272] + cmp w0, w2 + beq .L1558 + ldrh w1, [x1, 2286] + lsr w1, w1, 2 + cmp w2, w1 + bcs .L1558 + cmp w0, w1 + bcs .L1558 + bl FtlSysBlkNumInit + b .L1558 +.L1562: + ldrh w2, [x19, 2816] + ldr x0, [x19, 2944] + mul w1, w2, w20 + lsl w2, w2, 2 + add w20, w20, 1 + add x1, x0, x1, lsl 2 + ldr x0, [x21], 8 + bl ftl_memcpy + b .L1561 +.L1563: + mov w0, -1 + b .L1545 .size FtlLoadBbt, .-FtlLoadBbt .align 2 .global FtlFreeSysBlkQueueInit .type FtlFreeSysBlkQueueInit, %function FtlFreeSysBlkQueueInit: - adrp x1, .LANCHOR2 - mov w2, 2048 stp x29, x30, [sp, -16]! - add x1, x1, :lo12:.LANCHOR2 + adrp x3, .LANCHOR2 + add x3, x3, :lo12:.LANCHOR2 + mov w2, 2048 add x29, sp, 0 - strh w0, [x1,2992] - add x0, x1, 3000 - strh wzr, [x1,2994] - strh wzr, [x1,2996] - strh wzr, [x1,2998] mov w1, 0 + strh w0, [x3, 2992] + add x0, x3, 3000 + strh wzr, [x3, 2994] + strh wzr, [x3, 2996] + strh wzr, [x3, 2998] bl ftl_memset mov w0, 0 ldp x29, x30, [sp], 16 @@ -9736,8 +9589,8 @@ FtlFreeSysBlkQueueInit: .type FtlFreeSysBlkQueueEmpty, %function FtlFreeSysBlkQueueEmpty: adrp x0, .LANCHOR2+2998 - ldrh w0, [x0,#:lo12:.LANCHOR2+2998] - cmp w0, wzr + ldrh w0, [x0, #:lo12:.LANCHOR2+2998] + cmp w0, 0 cset w0, eq ret .size FtlFreeSysBlkQueueEmpty, .-FtlFreeSysBlkQueueEmpty @@ -9746,7 +9599,7 @@ FtlFreeSysBlkQueueEmpty: .type FtlFreeSysBlkQueueFull, %function FtlFreeSysBlkQueueFull: adrp x0, .LANCHOR2+2998 - ldrh w0, [x0,#:lo12:.LANCHOR2+2998] + ldrh w0, [x0, #:lo12:.LANCHOR2+2998] cmp w0, 1024 cset w0, eq ret @@ -9756,57 +9609,57 @@ FtlFreeSysBlkQueueFull: .type FtlFreeSysBlkQueueIn, %function FtlFreeSysBlkQueueIn: stp x29, x30, [sp, -48]! - uxth w1, w1 add x29, sp, 0 - stp x21, x22, [sp,32] - stp x19, x20, [sp,16] - uxth w21, w0 - mov w0, 65533 + stp x21, x22, [sp, 32] + and w21, w0, 65535 + stp x19, x20, [sp, 16] sub w2, w21, #1 + mov w0, 65533 cmp w0, w2, uxth - bcc .L1622 - adrp x2, .LANCHOR2 - add x20, x2, :lo12:.LANCHOR2 - mov x19, x2 - ldrh w0, [x20,2998] - cmp w0, 1024 - beq .L1622 - cbz w1, .L1624 - ldr w0, [x20,2928] - cbnz w0, .L1624 + bcc .L1578 + adrp x0, .LANCHOR2 + add x20, x0, :lo12:.LANCHOR2 + mov x19, x0 + ldrh w2, [x20, 2998] + cmp w2, 1024 + beq .L1578 + and w1, w1, 65535 + cbz w1, .L1580 + ldr w0, [x20, 2928] + cbnz w0, .L1580 mov w0, w21 bl P2V_block_in_plane - uxth w22, w0 - ldr x0, [x20,2544] + and w22, w0, 65535 + ldr x0, [x20, 2544] lsl w1, w21, 10 - str w1, [x0,4] - mov w1, 1 - mov w2, w1 - ldr x0, [x20,2544] + mov w2, 1 + str w1, [x0, 4] + mov w1, w2 + ldr x0, [x20, 2544] bl FlashEraseBlocks + ldr x2, [x20, 2696] ubfiz x0, x22, 1, 16 - ldr x2, [x20,2696] - ldrh w1, [x2,x0] + ldrh w1, [x2, x0] add w1, w1, 1 - strh w1, [x2,x0] - ldr w0, [x20,2436] + strh w1, [x2, x0] + ldr w0, [x20, 2436] add w0, w0, 1 - str w0, [x20,2436] -.L1624: - add x1, x19, :lo12:.LANCHOR2 - add x1, x1, 2992 - ldrh w0, [x1,6] - ldrh w2, [x1,4] - add w0, w0, 1 - strh w0, [x1,6] - add x0, x1, w2, sxtw 1 - add w2, w2, 1 - and w2, w2, 1023 - strh w21, [x0,8] - strh w2, [x1,4] -.L1622: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] + str w0, [x20, 2436] +.L1580: + add x0, x19, :lo12:.LANCHOR2 + add x0, x0, 2992 + ldrh w1, [x0, 6] + add w1, w1, 1 + strh w1, [x0, 6] + ldrh w1, [x0, 4] + add x2, x0, w1, sxtw 1 + add w1, w1, 1 + and w1, w1, 1023 + strh w1, [x0, 4] + strh w21, [x2, 8] +.L1578: + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] ldp x29, x30, [sp], 48 ret .size FtlFreeSysBlkQueueIn, .-FtlFreeSysBlkQueueIn @@ -9814,378 +9667,358 @@ FtlFreeSysBlkQueueIn: .global FtlLowFormatEraseBlock .type FtlLowFormatEraseBlock, %function FtlLowFormatEraseBlock: - stp x29, x30, [sp, -128]! + stp x29, x30, [sp, -144]! add x29, sp, 0 - stp x21, x22, [sp,32] - adrp x21, .LANCHOR2 - stp x27, x28, [sp,80] - add x28, x21, :lo12:.LANCHOR2 - stp x25, x26, [sp,64] - uxth w25, w0 - ldr w2, [x28,2928] - ldrb w0, [x28,2094] - stp x23, x24, [sp,48] - str w0, [x29,120] - uxtb w24, w1 - stp x19, x20, [sp,16] - mov w0, 0 - cbnz w2, .L1632 - ldrb w0, [x28,1220] - mov w26, w2 - str w0, [x29,124] - mov w20, w2 - str w25, [x28,2468] - mov w19, w2 - mov w23, 56 - mov w27, 4 -.L1633: - ldrh w0, [x28,2276] - cmp w0, w26 - bls .L1677 - umull x0, w26, w23 - ldr x1, [x28,2544] - str wzr, [x1,x0] - add x0, x28, 2304 - mov w1, w25 - ldrb w0, [x0,w26,sxtw] - bl V2P_block - uxth w22, w0 - mov w1, w22 - cbz w24, .L1634 - str x1, [x29,112] - bl IsBlkInVendorPart - ldr x1, [x29,112] - cbnz w0, .L1635 -.L1634: - mov w0, w1 - bl FtlBbmIsBadBlock - cbnz w0, .L1636 - umull x0, w20, w23 - ldr x1, [x28,2544] - lsl w22, w22, 10 - add x1, x1, x0 - str w22, [x1,4] - ldr x1, [x28,2544] - ldr x3, [x28,2648] - add x1, x1, x0 - ldrh w0, [x28,2356] - mul w0, w20, w0 - add w20, w20, 1 - str xzr, [x1,8] - sdiv w0, w0, w27 - uxth w20, w20 - add x0, x3, w0, sxtw 2 - str x0, [x1,16] - b .L1635 -.L1636: - add w19, w19, 1 - uxth w19, w19 -.L1635: - add w2, w26, 1 - uxth w26, w2 - b .L1633 -.L1677: - cbz w20, .L1656 - ldr w0, [x29,124] - mov w2, w20 - strb wzr, [x28,2094] - mov x23, 0 - cmp w0, wzr - ldr x0, [x28,2544] + stp x19, x20, [sp, 16] + adrp x20, .LANCHOR2 + stp x21, x22, [sp, 32] + add x21, x20, :lo12:.LANCHOR2 + stp x25, x26, [sp, 64] + and w25, w0, 65535 + stp x23, x24, [sp, 48] + stp x27, x28, [sp, 80] + ldr w0, [x21, 2928] + cbnz w0, .L1611 + ldrb w8, [x21, 1220] + and w24, w1, 255 + ldrb w0, [x21, 2094] + add x9, x21, 2304 + mov w5, 0 + mov w23, 0 + mov w19, 0 + mov w7, 56 + mov w10, 4 + str w25, [x21, 2468] + str w0, [x29, 132] +.L1590: + ldrh w0, [x21, 2276] + cmp w0, w5 + bhi .L1594 + cbz w23, .L1588 + ldr x0, [x21, 2544] + cmp w8, 0 cset w22, ne - mov x26, 56 + strb wzr, [x21, 2094] + mov w2, w23 mov w1, w22 + add x26, x20, :lo12:.LANCHOR2 bl FlashEraseBlocks - ldrb w0, [x29,120] - strb w0, [x28,2094] -.L1639: - cmp w20, w23, uxth - bls .L1678 - add x1, x21, :lo12:.LANCHOR2 - mul x0, x23, x26 - ldr x1, [x1,2544] - add x2, x1, x0 - ldr w0, [x1,x0] + ldrb w0, [x29, 132] + strb w0, [x21, 2094] + mov w21, 56 + umull x21, w23, w21 + mov x23, 0 +.L1597: + ldr x0, [x26, 2544] + add x1, x0, x23 + ldr w0, [x0, x23] cmn w0, #1 - bne .L1640 - ldr w0, [x2,4] + bne .L1596 + ldr w0, [x1, 4] add w19, w19, 1 + and w19, w19, 65535 lsr w0, w0, 10 - uxth w19, w19 bl FtlBbmMapBadBlock -.L1640: - add x23, x23, 1 - b .L1639 -.L1678: - cbnz w24, .L1642 +.L1596: + add x23, x23, 56 + cmp x21, x23 + bne .L1597 + cbnz w24, .L1598 + and w22, w22, 65535 mov w0, 1 - uxth w22, w22 mov w27, 6 - str w0, [x29,124] - b .L1643 -.L1642: - add x0, x21, :lo12:.LANCHOR2 - ldrh w1, [x0,2346] - ldrb w0, [x0,1220] - str w1, [x29,124] - cbnz w0, .L1659 + str w0, [x29, 136] +.L1599: + add x26, x20, :lo12:.LANCHOR2 + mov w23, 0 + add x0, x26, 2304 + mov w28, 56 + str x0, [x29, 120] +.L1607: + mov w5, 0 + mov w21, 0 + mov w7, 4 +.L1600: + ldrh w0, [x26, 2276] + cmp w0, w5 + bhi .L1603 + cbz w21, .L1588 + ldr x0, [x26, 2544] + mov w2, w22 + mov w1, w21 + strb wzr, [x26, 2094] + mov w3, 1 + bl FlashProgPages + umull x1, w21, w28 + ldrb w0, [x29, 132] + strb w0, [x26, 2094] + mov x2, 0 +.L1606: + ldr x0, [x26, 2544] + add x3, x0, x2 + ldr w0, [x0, x2] + cbz w0, .L1605 + ldr w0, [x3, 4] + add w19, w19, 1 + stp x2, x1, [x29, 104] + and w19, w19, 65535 + lsr w0, w0, 10 + bl FtlBbmMapBadBlock + ldp x2, x1, [x29, 104] +.L1605: + add x2, x2, 56 + cmp x1, x2 + bne .L1606 + add w23, w23, w27 + ldr w0, [x29, 136] + and w23, w23, 65535 + cmp w0, w23 + bhi .L1607 + add x26, x20, :lo12:.LANCHOR2 + mov x23, 0 +.L1609: + cbz w24, .L1608 + ldr x0, [x26, 2544] + add x1, x0, x23 + ldr w0, [x0, x23] + cbnz w0, .L1608 + ldr w0, [x1, 4] + mov w1, 1 + str x2, [x29, 136] + lsr w0, w0, 10 + bl FtlFreeSysBlkQueueIn + ldr x2, [x29, 136] +.L1608: + add x23, x23, 56 + cmp x23, x2 + bne .L1609 + cmp w25, 63 + ccmp w24, 0, 0, hi + beq .L1588 + add x20, x20, :lo12:.LANCHOR2 + mov w2, w21 + mov w1, w22 + ldr x0, [x20, 2544] + bl FlashEraseBlocks +.L1588: + 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], 144 + ret +.L1594: + umull x0, w5, w7 + ldr x1, [x21, 2544] + str wzr, [x1, x0] + mov w1, w25 + ldrb w0, [x9, w5, sxtw] + bl V2P_block + and w6, w0, 65535 + mov w11, w6 + cbz w24, .L1591 + bl IsBlkInVendorPart + cbnz w0, .L1592 +.L1591: + mov w0, w11 + bl FtlBbmIsBadBlock + cbnz w0, .L1593 + umull x2, w23, w7 + ldr x0, [x21, 2544] + lsl w6, w6, 10 + add x0, x0, x2 + str w6, [x0, 4] + ldrh w0, [x21, 2356] + ldr x1, [x21, 2544] + add x1, x1, x2 + ldr x2, [x21, 2648] + mul w0, w0, w23 + add w23, w23, 1 + and w23, w23, 65535 + sdiv w0, w0, w10 + add x0, x2, w0, sxtw 2 + stp xzr, x0, [x1, 8] +.L1592: + add w5, w5, 1 + and w5, w5, 65535 + b .L1590 +.L1593: + add w19, w19, 1 + and w19, w19, 65535 + b .L1592 +.L1598: + add x0, x20, :lo12:.LANCHOR2 + ldrh w1, [x0, 2346] + ldrb w0, [x0, 1220] + str w1, [x29, 136] + cbnz w0, .L1612 uxtw x0, w1 mov w22, 1 lsr w27, w0, 2 - b .L1643 -.L1659: + b .L1599 +.L1612: mov w22, 1 mov w27, w22 -.L1643: - mov w23, 0 - add x28, x21, :lo12:.LANCHOR2 -.L1652: - mov w26, 0 - mov w20, w26 -.L1644: - ldrh w0, [x28,2276] - cmp w0, w26 - bls .L1679 - mov w0, 56 - ldr x1, [x28,2544] - umull x0, w26, w0 - str wzr, [x1,x0] - add x0, x28, 2304 + b .L1599 +.L1603: + umull x0, w5, w28 + ldr x1, [x26, 2544] + str wzr, [x1, x0] mov w1, w25 - ldrb w0, [x0,w26,sxtw] + ldr x0, [x29, 120] + ldrb w0, [x0, w5, sxtw] bl V2P_block - uxth w2, w0 - str w2, [x29,112] - mov w1, w2 - cbz w24, .L1645 - str x1, [x29,104] + and w6, w0, 65535 + mov w8, w6 + cbz w24, .L1601 bl IsBlkInVendorPart - ldr x1, [x29,104] - cbnz w0, .L1646 -.L1645: - mov w0, w1 + cbnz w0, .L1602 +.L1601: + mov w0, w8 bl FtlBbmIsBadBlock - cbnz w0, .L1646 - mov w0, 56 - ldr x1, [x28,2544] - ldr w2, [x29,112] - umull x0, w20, w0 - add x1, x1, x0 - add w2, w23, w2, lsl 10 - str w2, [x1,4] - mov w2, 4 - ldr x1, [x28,2544] - add x1, x1, x0 - ldr x0, [x28,2616] - str x0, [x1,8] - ldrh w0, [x28,2356] - mul w0, w20, w0 - add w20, w20, 1 - sdiv w0, w0, w2 - uxth w20, w20 - ldr x2, [x28,2624] + cbnz w0, .L1602 + umull x2, w21, w28 + ldr x0, [x26, 2544] + add w6, w23, w6, lsl 10 + add x0, x0, x2 + str w6, [x0, 4] + ldr x1, [x26, 2544] + ldr x0, [x26, 2616] + add x1, x1, x2 + ldr x2, [x26, 2624] + str x0, [x1, 8] + ldrh w0, [x26, 2356] + mul w0, w0, w21 + add w21, w21, 1 + and w21, w21, 65535 + sdiv w0, w0, w7 add x0, x2, w0, sxtw 2 - str x0, [x1,16] -.L1646: - add w3, w26, 1 - uxth w26, w3 - b .L1644 -.L1679: - cbz w20, .L1656 - ldr x0, [x28,2544] - mov w1, w20 - mov w2, w22 - mov w3, 1 - strb wzr, [x28,2094] - bl FlashProgPages - ldrb w0, [x29,120] - mov x1, 0 - strb w0, [x28,2094] -.L1649: - cmp w20, w1, uxth - bls .L1680 - mov x0, 56 - ldr x2, [x28,2544] - mul x0, x1, x0 - add x3, x2, x0 - ldr w0, [x2,x0] - cbz w0, .L1650 - ldr w0, [x3,4] - add w19, w19, 1 - str x1, [x29,112] - lsr w0, w0, 10 - uxth w19, w19 - bl FtlBbmMapBadBlock - ldr x1, [x29,112] -.L1650: - add x1, x1, 1 - b .L1649 -.L1680: - add w23, w23, w27 - ldr w0, [x29,124] - uxth w23, w23 - cmp w23, w0 - bcc .L1652 - mov x23, 0 - mov x26, 56 -.L1653: - cmp w20, w23, uxth - bls .L1681 - cbz w24, .L1654 - add x1, x21, :lo12:.LANCHOR2 - mul x0, x23, x26 - ldr x1, [x1,2544] - add x2, x1, x0 - ldr w0, [x1,x0] - cbnz w0, .L1654 - ldr w0, [x2,4] - mov w1, 1 - lsr w0, w0, 10 - bl FtlFreeSysBlkQueueIn -.L1654: - add x23, x23, 1 - b .L1653 -.L1681: - cmp w25, 63 - bls .L1660 - cbz w24, .L1656 -.L1660: - add x21, x21, :lo12:.LANCHOR2 - mov w1, w22 - mov w2, w20 - ldr x0, [x21,2544] - bl FlashEraseBlocks -.L1656: - mov w0, w19 -.L1632: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 128 - ret + str x0, [x1, 16] +.L1602: + add w5, w5, 1 + and w5, w5, 65535 + b .L1600 +.L1611: + mov w19, 0 + b .L1588 .size FtlLowFormatEraseBlock, .-FtlLowFormatEraseBlock .align 2 .global FtlFreeSysBLkSort .type FtlFreeSysBLkSort, %function FtlFreeSysBLkSort: - adrp x0, .LANCHOR4+724 - ldrh w6, [x0,#:lo12:.LANCHOR4+724] adrp x0, .LANCHOR2 add x1, x0, :lo12:.LANCHOR2 add x1, x1, 2992 - ldrh w2, [x1,6] - cbz w2, .L1682 - mov w5, 0 - ldrh w3, [x1,2] - ldrh w2, [x1,4] - mov w4, w5 - and w6, w6, 31 -.L1684: - cmp w4, w6 - bge .L1692 - add x5, x1, w3, sxtw 1 - ldrh w7, [x5,8] - add x5, x1, w2, sxtw 1 - add w4, w4, 1 - strh w7, [x5,8] - mov w5, 1 - add w3, w3, 1 - add w2, w2, w5 - uxth w4, w4 - and w3, w3, 1023 - and w2, w2, 1023 - b .L1684 -.L1692: - cbz w5, .L1682 + ldrh w2, [x1, 6] + cbz w2, .L1633 + adrp x2, .LANCHOR4+724 + ldrh w3, [x1, 2] + mov w6, 0 + mov w4, 0 + ldrh w5, [x2, #:lo12:.LANCHOR4+724] + ldrh w2, [x1, 4] + and w5, w5, 31 +.L1635: + cmp w5, w4 + bgt .L1636 + cbz w6, .L1633 add x0, x0, :lo12:.LANCHOR2 - strh w3, [x0,2994] - strh w2, [x0,2996] -.L1682: + strh w3, [x0, 2994] + strh w2, [x0, 2996] +.L1633: ret +.L1636: + add x6, x1, w3, sxtw 1 + add w4, w4, 1 + add w3, w3, 1 + and w4, w4, 65535 + and w3, w3, 1023 + ldrh w7, [x6, 8] + add x6, x1, w2, sxtw 1 + strh w7, [x6, 8] + mov w6, 1 + add w2, w2, w6 + and w2, w2, 1023 + b .L1635 .size FtlFreeSysBLkSort, .-FtlFreeSysBLkSort .align 2 .global FtlFreeSysBlkQueueOut .type FtlFreeSysBlkQueueOut, %function FtlFreeSysBlkQueueOut: - stp x29, x30, [sp, -96]! + stp x29, x30, [sp, -64]! add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] adrp x19, .LANCHOR2 - stp x23, x24, [sp,48] add x19, x19, :lo12:.LANCHOR2 - adrp x23, .LC37 - stp x21, x22, [sp,32] - stp x25, x26, [sp,64] - add x21, x19, 2992 - mov w24, 65533 - add x23, x23, :lo12:.LC37 -.L1694: - ldrh w1, [x21,6] - adrp x22, .LANCHOR2 - cbz w1, .L1695 - ldrh w2, [x21,2] - sub w1, w1, #1 - add x0, x21, w2, sxtw 1 - strh w1, [x21,6] - add w2, w2, 1 - ldr w1, [x19,2928] - and w2, w2, 1023 - strh w2, [x21,2] - ldrh w20, [x0,8] - cbnz w1, .L1696 - mov w0, w20 - str x1, [x29,88] - bl P2V_block_in_plane - uxth w26, w0 - ldr x0, [x19,2544] - lsl w2, w20, 10 - ldr x1, [x29,88] - str w2, [x0,4] - ldrb w0, [x19,1220] - cbz w0, .L1697 - ldr x0, [x19,2544] - mov w2, 1 - bl FlashEraseBlocks -.L1697: - add x25, x22, :lo12:.LANCHOR2 - mov w1, 1 - mov w2, w1 - ldr x0, [x25,2544] - bl FlashEraseBlocks - ubfiz x0, x26, 1, 16 - ldr x2, [x25,2696] - ldrh w1, [x2,x0] - add w1, w1, 1 - strh w1, [x2,x0] - ldr w0, [x25,2436] + stp x21, x22, [sp, 32] + str x23, [sp, 48] + mov x21, x19 + add x23, x19, 2992 +.L1643: + ldrh w2, [x19, 2998] + add x1, x19, 2992 + cbz w2, .L1644 + ldrh w0, [x19, 2994] + sub w2, w2, #1 + strh w2, [x19, 2998] + add x3, x1, w0, sxtw 1 add w0, w0, 1 - str w0, [x25,2436] - b .L1696 -.L1695: + and w0, w0, 1023 + strh w0, [x19, 2994] + ldr w0, [x19, 2928] + ldrh w20, [x3, 8] + cbnz w0, .L1645 + mov w0, w20 + bl P2V_block_in_plane + and w22, w0, 65535 + ldr x0, [x19, 2544] + lsl w1, w20, 10 + str w1, [x0, 4] + ldrb w0, [x19, 1220] + cbz w0, .L1646 + ldr x0, [x19, 2544] + mov w2, 1 + mov w1, 0 + bl FlashEraseBlocks +.L1646: + ldr x0, [x21, 2544] + mov w2, 1 + mov w1, w2 + bl FlashEraseBlocks + ldr x2, [x21, 2696] + ubfiz x0, x22, 1, 16 + ldrh w1, [x2, x0] + add w1, w1, 1 + strh w1, [x2, x0] + ldr w0, [x21, 2436] + add w0, w0, 1 + str w0, [x21, 2436] +.L1645: + sub w0, w20, #1 + mov w1, 65533 + cmp w1, w0, uxth + bcs .L1648 + ldrh w2, [x23, 6] + mov w1, w20 + adrp x0, .LC37 + add x0, x0, :lo12:.LC37 + bl printk + b .L1643 +.L1644: adrp x0, .LC36 + mov w1, 0 add x0, x0, :lo12:.LC36 bl printk -.L1698: - b .L1698 -.L1696: - sub w0, w20, #1 - cmp w24, w0, uxth - bcs .L1699 - add x22, x22, :lo12:.LANCHOR2 - mov x0, x23 - mov w1, w20 - ldrh w2, [x22,2998] - bl printk - b .L1694 -.L1699: +.L1647: + b .L1647 +.L1648: mov w0, w20 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x29, x30, [sp], 96 + ldr x23, [sp, 48] + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x29, x30, [sp], 64 ret .size FtlFreeSysBlkQueueOut, .-FtlFreeSysBlkQueueOut .align 2 @@ -10195,137 +10028,138 @@ test_node_in_list: ldr x2, [x0] adrp x0, .LANCHOR2+2808 mov x4, -6148914691236517206 - uxth w1, w1 + and w1, w1, 65535 + ldr x3, [x0, #:lo12:.LANCHOR2+2808] + movk x4, 0xaaab, lsl 0 mov w5, 65535 - ldr x3, [x0,#:lo12:.LANCHOR2+2808] sub x0, x2, x3 asr x0, x0, 1 - madd x0, x4, x0, x0 + mul x0, x0, x4 mov w4, 6 - uxth w0, w0 -.L1705: - cmp w1, w0 - beq .L1706 + and w0, w0, 65535 +.L1655: + cmp w0, w1 + beq .L1656 ldrh w0, [x2] cmp w0, w5 - beq .L1707 - umull x2, w0, w4 - add x2, x3, x2 - b .L1705 -.L1706: + beq .L1657 + umaddl x2, w0, w4, x3 + b .L1655 +.L1656: mov w0, 1 - b .L1704 -.L1707: + ret +.L1657: mov w0, 0 -.L1704: ret .size test_node_in_list, .-test_node_in_list .align 2 .global insert_data_list .type insert_data_list, %function insert_data_list: - sub sp, sp, #16 - adrp x10, .LANCHOR2 - add x3, x10, :lo12:.LANCHOR2 - uxth w0, w0 - str x19, [sp] - ldrh w1, [x3,2284] + adrp x11, .LANCHOR2 + add x3, x11, :lo12:.LANCHOR2 + and w0, w0, 65535 + ldrh w1, [x3, 2284] cmp w1, w0 - bls .L1710 - mov w7, 6 - ldr x12, [x3,2808] - adrp x2, .LANCHOR4 + bls .L1674 + mov w8, 6 + ldr x13, [x3, 2808] mov w1, -1 - umull x11, w0, w7 - add x6, x2, :lo12:.LANCHOR4 - mov x4, x2 - add x5, x12, x11 - strh w1, [x5,2] - strh w1, [x12,x11] - ldr x1, [x6,744] - cbnz x1, .L1711 - str x5, [x6,744] - b .L1710 -.L1711: - ubfiz x8, x0, 1, 16 - ldr x14, [x3,2712] - ldrh w2, [x5,4] - mov x9, -6148914691236517206 - ldr x13, [x3,2808] - mov w19, 65535 - ldrh w6, [x14,x8] - cmp w2, wzr - ldr x15, [x3,2696] - ldrh w18, [x3,2284] - mov w3, 0 - mul w6, w6, w2 - sub x2, x1, x13 - asr x2, x2, 1 - csinv w6, w6, wzr, ne - madd x2, x9, x2, x2 - add x9, x15, x8 - mov w8, w7 - uxth w2, w2 -.L1719: - add w3, w3, 1 - cmp w0, w2 - uxth w3, w3 - beq .L1710 - cmp w3, w18 - bhi .L1710 - ubfiz x16, x2, 1, 16 - ldrh w17, [x1,4] - cmp w17, wzr - ldrh w7, [x14,x16] - mul w7, w7, w17 - csinv w7, w7, wzr, ne - cmp w7, w6 - bne .L1715 - ldrh w16, [x15,x16] - ldrh w7, [x9] - cmp w16, w7 - bcc .L1717 - b .L1716 -.L1715: - bhi .L1716 -.L1717: - ldrh w7, [x1] - cmp w7, w19 - bne .L1718 - strh w2, [x5,2] - add x2, x4, :lo12:.LANCHOR4 - strh w0, [x1] - str x5, [x2,752] - b .L1710 -.L1718: - umull x1, w7, w8 - mov w2, w7 - add x1, x13, x1 - b .L1719 -.L1716: - strh w2, [x12,x11] - ldrh w2, [x1,2] - strh w2, [x5,2] - add x2, x4, :lo12:.LANCHOR4 - ldr x3, [x2,744] - cmp x1, x3 - bne .L1720 - strh w0, [x1,2] - str x5, [x2,744] - b .L1710 -.L1720: - ldrh w2, [x1,2] - add x3, x10, :lo12:.LANCHOR2 - mov w4, 6 - ldr x3, [x3,2808] - umull x2, w2, w4 - strh w0, [x3,x2] - strh w0, [x1,2] -.L1710: + adrp x2, .LANCHOR4 + umull x12, w0, w8 + add x4, x2, :lo12:.LANCHOR4 + mov x5, x2 + add x6, x13, x12 + strh w1, [x6, 2] + strh w1, [x13, x12] + ldr x1, [x4, 744] + cbnz x1, .L1661 + str x6, [x4, 744] +.L1674: mov w0, 0 - ldr x19, [sp] - add sp, sp, 16 ret +.L1661: + stp x29, x30, [sp, -32]! + ubfiz x9, x0, 1, 16 + mov w10, -1 + add x29, sp, 0 + str x19, [sp, 16] + mov w19, 65535 + ldr x15, [x3, 2712] + ldrh w2, [x6, 4] + ldr x14, [x3, 2808] + cmp w2, 0 + ldr x16, [x3, 2696] + ldrh w7, [x15, x9] + sub x4, x1, x14 + asr x4, x4, 1 + add x9, x16, x9 + ldrh w30, [x3, 2284] + mov w3, 0 + mul w7, w7, w2 + mov x2, -6148914691236517206 + movk x2, 0xaaab, lsl 0 + csel w7, w7, w10, ne + mul x4, x4, x2 + and w2, w4, 65535 +.L1669: + add w3, w3, 1 + and w3, w3, 65535 + cmp w3, w30 + bhi .L1660 + cmp w0, w2 + beq .L1660 + ubfiz x17, x2, 1, 16 + ldrh w18, [x1, 4] + cmp w18, 0 + ldrh w4, [x15, x17] + mul w4, w4, w18 + csel w4, w4, w10, ne + cmp w7, w4 + bne .L1665 + ldrh w17, [x16, x17] + ldrh w4, [x9] + cmp w17, w4 + bcc .L1667 +.L1666: + strh w2, [x13, x12] + ldrh w2, [x1, 2] + strh w2, [x6, 2] + add x2, x5, :lo12:.LANCHOR4 + ldr x3, [x2, 744] + cmp x1, x3 + bne .L1670 + strh w0, [x1, 2] + str x6, [x2, 744] + b .L1660 +.L1665: + bcc .L1666 +.L1667: + ldrh w4, [x1] + cmp w4, w19 + bne .L1668 + strh w2, [x6, 2] + add x2, x5, :lo12:.LANCHOR4 + strh w0, [x1] + str x6, [x2, 752] +.L1660: + mov w0, 0 + ldr x19, [sp, 16] + ldp x29, x30, [sp], 32 + ret +.L1668: + umaddl x1, w4, w8, x14 + mov w2, w4 + b .L1669 +.L1670: + ldrh w2, [x1, 2] + add x3, x11, :lo12:.LANCHOR2 + mov w4, 6 + ldr x3, [x3, 2808] + umull x2, w2, w4 + strh w0, [x3, x2] + strh w0, [x1, 2] + b .L1660 .size insert_data_list, .-insert_data_list .align 2 .global INSERT_DATA_LIST @@ -10336,9 +10170,9 @@ INSERT_DATA_LIST: bl insert_data_list adrp x0, .LANCHOR4 add x0, x0, :lo12:.LANCHOR4 - ldrh w1, [x0,760] + ldrh w1, [x0, 760] add w1, w1, 1 - strh w1, [x0,760] + strh w1, [x0, 760] ldp x29, x30, [sp], 16 ret .size INSERT_DATA_LIST, .-INSERT_DATA_LIST @@ -10346,75 +10180,75 @@ INSERT_DATA_LIST: .global insert_free_list .type insert_free_list, %function insert_free_list: - uxth w0, w0 - mov w5, 65535 - cmp w0, w5 - beq .L1725 + and w0, w0, 65535 + mov w7, 65535 + cmp w0, w7 + beq .L1679 adrp x3, .LANCHOR2 - mov w4, 6 - add x8, x3, :lo12:.LANCHOR2 - adrp x2, .LANCHOR4 - umull x6, w0, w4 + add x10, x3, :lo12:.LANCHOR2 + mov w6, 6 mov w1, -1 - add x9, x2, :lo12:.LANCHOR4 - ldr x7, [x8,2808] - mov x11, x3 + adrp x2, .LANCHOR4 + add x11, x2, :lo12:.LANCHOR4 + ldr x9, [x10, 2808] + umull x8, w0, w6 + mov x4, x3 mov x3, x2 - add x12, x7, x6 - strh w1, [x12,2] - strh w1, [x7,x6] - ldr x1, [x9,768] - cbnz x1, .L1726 - str x12, [x9,768] - b .L1725 -.L1726: - ldr x10, [x8,2696] - ubfiz x2, x0, 1, 16 - ldr x9, [x8,2808] - mov x8, -6148914691236517206 - ldrh w13, [x10,x2] - sub x2, x1, x9 - asr x2, x2, 1 - madd x2, x8, x2, x2 - uxth w2, w2 -.L1729: - ubfiz x8, x2, 1, 16 - ldrh w8, [x10,x8] - cmp w8, w13 - bcs .L1727 - ldrh w8, [x1] - cmp w8, w5 - bne .L1728 - strh w2, [x12,2] - strh w0, [x1] - b .L1725 -.L1728: - umull x1, w8, w4 - mov w2, w8 - add x1, x9, x1 - b .L1729 -.L1727: - ldrh w4, [x1,2] - strh w4, [x12,2] - strh w2, [x7,x6] - add x2, x3, :lo12:.LANCHOR4 - ldr x3, [x2,768] - cmp x1, x3 - bne .L1730 - strh w0, [x1,2] - str x12, [x2,768] - b .L1725 -.L1730: - ldrh w2, [x1,2] - add x3, x11, :lo12:.LANCHOR2 - mov w4, 6 - ldr x3, [x3,2808] - umull x2, w2, w4 - strh w0, [x3,x2] - strh w0, [x1,2] -.L1725: + add x5, x9, x8 + strh w1, [x5, 2] + strh w1, [x9, x8] + ldr x1, [x11, 768] + cbnz x1, .L1680 + str x5, [x11, 768] +.L1679: mov w0, 0 ret +.L1680: + ldr x12, [x10, 2696] + ubfiz x2, x0, 1, 16 + ldr x11, [x10, 2808] + mov x10, -6148914691236517206 + movk x10, 0xaaab, lsl 0 + ldrh w13, [x12, x2] + sub x2, x1, x11 + asr x2, x2, 1 + mul x2, x2, x10 + and w2, w2, 65535 +.L1683: + ubfiz x10, x2, 1, 16 + ldrh w10, [x12, x10] + cmp w10, w13 + bcs .L1681 + ldrh w10, [x1] + cmp w10, w7 + bne .L1682 + strh w2, [x5, 2] + strh w0, [x1] + b .L1679 +.L1682: + umaddl x1, w10, w6, x11 + mov w2, w10 + b .L1683 +.L1681: + ldrh w6, [x1, 2] + strh w6, [x5, 2] + strh w2, [x9, x8] + add x2, x3, :lo12:.LANCHOR4 + ldr x3, [x2, 768] + cmp x1, x3 + bne .L1684 + strh w0, [x1, 2] + str x5, [x2, 768] + b .L1679 +.L1684: + ldrh w2, [x1, 2] + add x3, x4, :lo12:.LANCHOR2 + mov w4, 6 + ldr x3, [x3, 2808] + umull x2, w2, w4 + strh w0, [x3, x2] + strh w0, [x1, 2] + b .L1679 .size insert_free_list, .-insert_free_list .align 2 .global INSERT_FREE_LIST @@ -10425,9 +10259,9 @@ INSERT_FREE_LIST: bl insert_free_list adrp x0, .LANCHOR4 add x0, x0, :lo12:.LANCHOR4 - ldrh w1, [x0,776] + ldrh w1, [x0, 776] add w1, w1, 1 - strh w1, [x0,776] + strh w1, [x0, 776] ldp x29, x30, [sp], 16 ret .size INSERT_FREE_LIST, .-INSERT_FREE_LIST @@ -10435,198 +10269,197 @@ INSERT_FREE_LIST: .global List_remove_node .type List_remove_node, %function List_remove_node: + and w1, w1, 65535 adrp x6, .LANCHOR2 - uxth w1, w1 add x6, x6, :lo12:.LANCHOR2 - mov w5, 6 - ldr x3, [x0] + mov w4, 6 + ldr x2, [x0] mov w7, 65535 - umull x1, w1, w5 - ldr x2, [x6,2808] - add x4, x2, x1 - cmp x4, x3 - bne .L1733 - ldrh w3, [x2,x1] - cmp w3, w7 - bne .L1734 + umull x1, w1, w4 + ldr x3, [x6, 2808] + add x5, x3, x1 + cmp x5, x2 + ldrh w2, [x3, x1] + bne .L1688 + cmp w2, w7 + bne .L1689 str xzr, [x0] - b .L1735 -.L1734: - umull x3, w3, w5 - add x3, x2, x3 - str x3, [x0] +.L1690: mov w0, -1 - strh w0, [x3,2] - b .L1735 -.L1733: - ldrh w0, [x2,x1] - ldrh w3, [x4,2] - cmp w0, w7 - bne .L1736 - cmp w3, w0 - beq .L1735 - umull x3, w3, w5 - mov w0, -1 - strh w0, [x2,x3] - b .L1735 -.L1736: - umull x0, w0, w5 - add x0, x2, x0 - strh w3, [x0,2] - ldrh w3, [x4,2] - ldr x0, [x6,2808] - ldrh w7, [x2,x1] - umull x3, w3, w5 - strh w7, [x0,x3] -.L1735: - mov w0, -1 - strh w0, [x2,x1] - strh w0, [x4,2] + strh w0, [x3, x1] + strh w0, [x5, 2] mov w0, 0 ret +.L1689: + umaddl x2, w2, w4, x3 + str x2, [x0] + mov w0, -1 + strh w0, [x2, 2] + b .L1690 +.L1688: + cmp w2, w7 + ldrh w0, [x5, 2] + bne .L1691 + cmp w0, w2 + beq .L1690 + umull x2, w0, w4 + mov w0, -1 + strh w0, [x3, x2] + b .L1690 +.L1691: + umaddl x2, w2, w4, x3 + strh w0, [x2, 2] + ldrh w2, [x5, 2] + ldr x0, [x6, 2808] + ldrh w7, [x3, x1] + umull x2, w2, w4 + strh w7, [x0, x2] + b .L1690 .size List_remove_node, .-List_remove_node .align 2 .global List_pop_index_node .type List_pop_index_node, %function List_pop_index_node: - stp x29, x30, [sp, -32]! - uxth w1, w1 - add x29, sp, 0 - str x19, [sp,16] - mov w19, 65535 ldr x2, [x0] - cbz x2, .L1738 + cbz x2, .L1698 + stp x29, x30, [sp, -16]! adrp x3, .LANCHOR2+2808 - mov w5, w19 - mov w6, 6 - ldr x4, [x3,#:lo12:.LANCHOR2+2808] -.L1739: - cbnz w1, .L1740 -.L1742: - sub x2, x2, x4 - mov x1, -6148914691236517206 - asr x2, x2, 1 - madd x2, x1, x2, x2 - uxth w19, w2 - mov w1, w19 + and w1, w1, 65535 + mov w4, 65535 + add x29, sp, 0 + ldr x8, [x3, #:lo12:.LANCHOR2+2808] + mov w5, 6 +.L1694: + cbnz w1, .L1695 +.L1697: + sub x8, x2, x8 + mov x2, -6148914691236517206 + asr x8, x8, 1 + movk x2, 0xaaab, lsl 0 + mul x8, x8, x2 + and w8, w8, 65535 + mov w1, w8 bl List_remove_node - b .L1738 -.L1740: + mov w0, w8 + ldp x29, x30, [sp], 16 + ret +.L1695: ldrh w3, [x2] - cmp w3, w5 - beq .L1742 - umull x3, w3, w6 + cmp w3, w4 + beq .L1697 sub w1, w1, #1 - add x2, x4, x3 - uxth w1, w1 - b .L1739 -.L1738: - mov w0, w19 - ldr x19, [sp,16] - ldp x29, x30, [sp], 32 + umaddl x2, w3, w5, x8 + and w1, w1, 65535 + b .L1694 +.L1698: + mov w0, 65535 ret .size List_pop_index_node, .-List_pop_index_node .align 2 .global List_get_gc_head_node .type List_get_gc_head_node, %function List_get_gc_head_node: - uxth w3, w0 + and w2, w0, 65535 adrp x0, .LANCHOR4+744 - ldr x1, [x0,#:lo12:.LANCHOR4+744] - mov w0, 65535 - cbz x1, .L1750 + ldr x1, [x0, #:lo12:.LANCHOR4+744] + cbz x1, .L1708 adrp x0, .LANCHOR2+2808 - mov w5, 6 - ldr x4, [x0,#:lo12:.LANCHOR2+2808] + mov w4, 6 + ldr x3, [x0, #:lo12:.LANCHOR2+2808] mov w0, 65535 -.L1746: - cbz w3, .L1747 - ldrh w2, [x1] - cmp w2, w0 - beq .L1750 - umull x2, w2, w5 - sub w3, w3, #1 - add x1, x4, x2 - uxth w3, w3 - b .L1746 -.L1747: - sub x1, x1, x4 - mov x0, -6148914691236517206 - asr x1, x1, 1 - madd x1, x0, x1, x1 - uxth w0, w1 -.L1750: +.L1705: + cbz w2, .L1706 + ldrh w1, [x1] + cmp w1, w0 + bne .L1707 + ret +.L1707: + sub w2, w2, #1 + umaddl x1, w1, w4, x3 + and w2, w2, 65535 + b .L1705 +.L1708: + mov w0, 65535 + ret +.L1706: + sub x0, x1, x3 + mov x1, -6148914691236517206 + asr x0, x0, 1 + movk x1, 0xaaab, lsl 0 + mul x0, x0, x1 + and w0, w0, 65535 ret .size List_get_gc_head_node, .-List_get_gc_head_node .align 2 .global List_update_data_list .type List_update_data_list, %function List_update_data_list: - stp x29, x30, [sp, -32]! - add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x19, .LANCHOR4 - uxth w20, w0 - add x4, x19, :lo12:.LANCHOR4 - ldrh w0, [x4,784] - cmp w0, w20 - beq .L1752 - ldrh w0, [x4,832] - cmp w0, w20 - beq .L1752 - ldrh w0, [x4,880] - cmp w0, w20 - beq .L1752 - adrp x3, .LANCHOR2 - mov w2, 6 - add x3, x3, :lo12:.LANCHOR2 - ldr x0, [x4,744] - umull x2, w20, w2 - ldr x5, [x3,2808] - add x1, x5, x2 - cmp x1, x0 - beq .L1752 - ubfiz x0, x20, 1, 16 - ldr x4, [x3,2712] - ldrh w6, [x1,4] - ldrh w1, [x1,2] - ldrh w3, [x4,x0] - cmp w6, wzr - mov w0, 65535 - mul w3, w3, w6 - csinv w3, w3, wzr, ne + adrp x8, .LANCHOR4 + add x2, x8, :lo12:.LANCHOR4 + and w9, w0, 65535 + ldrh w0, [x2, 784] + cmp w0, w9 + beq .L1717 + ldrh w0, [x2, 832] + cmp w0, w9 + beq .L1717 + ldrh w0, [x2, 880] + cmp w0, w9 + beq .L1717 + adrp x0, .LANCHOR2 + add x0, x0, :lo12:.LANCHOR2 + mov w1, 6 + ldr x2, [x2, 744] + umull x1, w9, w1 + ldr x3, [x0, 2808] + add x4, x3, x1 + cmp x4, x2 + beq .L1717 + ldr x5, [x0, 2712] + ubfiz x0, x9, 1, 16 + ldrh w2, [x5, x0] + ldrh w0, [x4, 4] + cmp w0, 0 + mul w2, w2, w0 + ldrh w0, [x4, 2] + mov w4, 65535 + csinv w2, w2, wzr, ne + cmp w0, w4 + bne .L1712 + ldrh w1, [x3, x1] cmp w1, w0 - bne .L1754 - ldrh w0, [x5,x2] - cmp w0, w1 - beq .L1752 -.L1754: - mov w0, 6 - umull x1, w1, w0 - mov x0, -6148914691236517206 - asr x2, x1, 1 - add x1, x5, x1 - madd x2, x0, x2, x2 - ldrh w2, [x4,x2,lsl 1] - ldrh w4, [x1,4] - cmp w4, wzr - mul w1, w2, w4 - csinv w1, w1, wzr, ne - cmp w3, w1 - bcs .L1752 - add x19, x19, :lo12:.LANCHOR4 - mov w1, w20 - add x0, x19, 744 + beq .L1717 +.L1712: + mov w1, 6 + mov x4, -6148914691236517206 + movk x4, 0xaaab, lsl 0 + umull x0, w0, w1 + asr x1, x0, 1 + add x0, x3, x0 + mul x1, x1, x4 + ldrh w3, [x0, 4] + cmp w3, 0 + ldrh w1, [x5, x1, lsl 1] + mul w0, w1, w3 + csinv w0, w0, wzr, ne + cmp w2, w0 + bcs .L1717 + add x8, x8, :lo12:.LANCHOR4 + stp x29, x30, [sp, -16]! + mov w1, w9 + add x0, x8, 744 + add x29, sp, 0 bl List_remove_node - ldrh w1, [x19,760] - mov w0, w20 - sub w1, w1, #1 - strh w1, [x19,760] + ldrh w0, [x8, 760] + sub w0, w0, #1 + strh w0, [x8, 760] + mov w0, w9 bl INSERT_DATA_LIST -.L1752: mov w0, 0 - ldp x19, x20, [sp,16] - ldp x29, x30, [sp], 32 + ldp x29, x30, [sp], 16 + ret +.L1717: + mov w0, 0 ret .size List_update_data_list, .-List_update_data_list .align 2 @@ -10636,96 +10469,98 @@ ftl_free_no_use_map_blk: stp x29, x30, [sp, -80]! mov w1, 0 add x29, sp, 0 - stp x19, x20, [sp,16] - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - str x25, [sp,64] + stp x19, x20, [sp, 16] mov x19, x0 - ldrh w2, [x0,10] - ldr x21, [x0,32] - ldr x22, [x0,16] + stp x21, x22, [sp, 32] + stp x23, x24, [sp, 48] + str x25, [sp, 64] + ldrh w2, [x0, 10] + ldp x21, x20, [x0, 32] + ldr x22, [x0, 16] lsl w2, w2, 1 - ldr x20, [x0,40] mov x0, x21 bl ftl_memset mov w0, 0 -.L1759: - ldrh w1, [x19,6] +.L1721: + ldrh w1, [x19, 6] cmp w1, w0 - bls .L1781 - ubfiz x1, x0, 2, 16 - ldr w2, [x20,x1] - mov w1, 0 - ubfx x2, x2, 10, 16 -.L1760: - ldrh w3, [x19,10] - cmp w3, w1 - bls .L1782 - ubfiz x3, x1, 1, 16 - ldrh w4, [x22,x3] - cmp w2, w4 - bne .L1761 - cbz w4, .L1761 - ldrh w4, [x21,x3] - add w4, w4, 1 - strh w4, [x21,x3] -.L1761: - add w1, w1, 1 - uxth w1, w1 - b .L1760 -.L1782: - add w0, w0, 1 - uxth w0, w0 - b .L1759 -.L1781: + bhi .L1725 adrp x0, .LANCHOR2+2346 mov w23, 0 - mov w20, w23 - ldrh w1, [x0,#:lo12:.LANCHOR2+2346] + mov w20, 0 + ldrh w1, [x0, #:lo12:.LANCHOR2+2346] ldrh w0, [x19] - strh w1, [x21,x0,lsl 1] + strh w1, [x21, x0, lsl 1] ldrh w24, [x21] -.L1764: - ldrh w0, [x19,10] +.L1726: + ldrh w0, [x19, 10] cmp w0, w20 - bls .L1783 - ubfiz x2, x20, 1, 16 - ldrh w1, [x21,x2] + bhi .L1730 + mov w0, w23 + ldr x25, [sp, 64] + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x29, x30, [sp], 80 + ret +.L1725: + ubfiz x1, x0, 2, 16 + ldr w2, [x20, x1] + mov w1, 0 + ubfx x2, x2, 10, 16 +.L1722: + ldrh w3, [x19, 10] + cmp w3, w1 + bhi .L1724 + add w0, w0, 1 + and w0, w0, 65535 + b .L1721 +.L1724: + ubfiz x3, x1, 1, 16 + ldrh w4, [x22, x3] + cmp w4, w2 + bne .L1723 + cbz w2, .L1723 + ldrh w4, [x21, x3] + add w4, w4, 1 + strh w4, [x21, x3] +.L1723: + add w1, w1, 1 + and w1, w1, 65535 + b .L1722 +.L1730: + ubfiz x0, x20, 1, 16 + ldrh w1, [x21, x0] cmp w24, w1 - bls .L1765 - ldrh w0, [x22,x2] - add x25, x22, x2 - cbnz w0, .L1766 - b .L1767 -.L1765: - cbnz w1, .L1767 - ldrh w0, [x22,x2] - add x25, x22, x2 - cbz w0, .L1767 -.L1769: + bls .L1727 + add x25, x22, x0 + ldrh w0, [x22, x0] + cbnz w0, .L1728 +.L1729: + add w20, w20, 1 + and w20, w20, 65535 + b .L1726 +.L1727: + cbnz w1, .L1729 + add x25, x22, x0 + ldrh w0, [x22, x0] + cbz w0, .L1729 +.L1731: mov w1, 1 bl FtlFreeSysBlkQueueIn strh wzr, [x25] - ldrh w0, [x19,8] + ldrh w0, [x19, 8] sub w0, w0, #1 - strh w0, [x19,8] -.L1767: - add w20, w20, 1 - uxth w20, w20 - b .L1764 -.L1766: + strh w0, [x19, 8] + b .L1729 +.L1732: + mov w24, 0 + b .L1731 +.L1728: mov w23, w20 + cbz w1, .L1732 mov w24, w1 - cbz w1, .L1769 - b .L1767 -.L1783: - mov w0, w23 - ldr x25, [sp,64] - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x29, x30, [sp], 80 - ret + b .L1729 .size ftl_free_no_use_map_blk, .-ftl_free_no_use_map_blk .align 2 .global ftl_map_blk_alloc_new_blk @@ -10733,189 +10568,185 @@ ftl_free_no_use_map_blk: ftl_map_blk_alloc_new_blk: stp x29, x30, [sp, -48]! add x29, sp, 0 - stp x19, x20, [sp,16] - stp x21, x22, [sp,32] + stp x19, x20, [sp, 16] mov w20, 0 - ldrh w2, [x0,10] - ldr x1, [x0,16] -.L1785: + str x21, [sp, 32] + ldrh w2, [x0, 10] + ldr x1, [x0, 16] +.L1742: cmp w20, w2 - beq .L1789 - mov x22, x1 - ldrh w21, [x1],2 - cbnz w21, .L1786 + beq .L1746 + mov x21, x1 + ldrh w3, [x1], 2 + cbnz w3, .L1743 mov x19, x0 bl FtlFreeSysBlkQueueOut - strh w0, [x22] - uxth w1, w0 + and w1, w0, 65535 + strh w0, [x21] sub w2, w1, #1 mov w0, 65533 cmp w0, w2, uxth - bcs .L1787 - adrp x2, .LANCHOR2+2998 + bcs .L1744 + adrp x0, .LANCHOR2+2998 + ldrh w2, [x0, #:lo12:.LANCHOR2+2998] adrp x0, .LC38 add x0, x0, :lo12:.LC38 - ldrh w2, [x2,#:lo12:.LANCHOR2+2998] bl printk -.L1788: - b .L1788 -.L1787: - ldr w0, [x19,48] - strh w21, [x19,2] +.L1745: + b .L1745 +.L1744: + ldr w0, [x19, 48] + strh wzr, [x19, 2] add w0, w0, 1 - str w0, [x19,48] - ldrh w0, [x19,8] + str w0, [x19, 48] + ldrh w0, [x19, 8] strh w20, [x19] add w0, w0, 1 - strh w0, [x19,8] - b .L1789 -.L1786: - add w20, w20, 1 - uxth w20, w20 - b .L1785 -.L1789: + strh w0, [x19, 8] +.L1746: mov w0, 0 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] + ldr x21, [sp, 32] + ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 48 ret +.L1743: + add w20, w20, 1 + and w20, w20, 65535 + b .L1742 .size ftl_map_blk_alloc_new_blk, .-ftl_map_blk_alloc_new_blk .align 2 .global FtlMapWritePage .type FtlMapWritePage, %function FtlMapWritePage: - stp x29, x30, [sp, -112]! + stp x29, x30, [sp, -96]! add x29, sp, 0 - stp x25, x26, [sp,64] - stp x23, x24, [sp,48] - adrp x26, .LANCHOR2 - adrp x23, .LC39 - stp x21, x22, [sp,32] - stp x27, x28, [sp,80] - stp x19, x20, [sp,16] - mov w25, w1 + stp x19, x20, [sp, 16] mov x19, x0 - mov x27, x2 + stp x21, x22, [sp, 32] mov w22, 0 - mov w28, 65535 - add x21, x26, :lo12:.LANCHOR2 - add x23, x23, :lo12:.LC39 -.L1792: - add x0, x26, :lo12:.LANCHOR2 - adrp x20, .LANCHOR2 - ldr w1, [x0,2420] + stp x23, x24, [sp, 48] + adrp x23, .LANCHOR2 + stp x25, x26, [sp, 64] + adrp x24, .LANCHOR0 + stp x27, x28, [sp, 80] + mov w26, w1 + mov x27, x2 + mov x21, x23 + add x20, x23, :lo12:.LANCHOR2 + add x24, x24, :lo12:.LANCHOR0 +.L1750: + add x0, x23, :lo12:.LANCHOR2 + ldr w1, [x0, 2420] add w1, w1, 1 - str w1, [x0,2420] - ldrh w0, [x0,2346] - ldrh w1, [x19,2] + str w1, [x0, 2420] + ldrh w0, [x0, 2346] + ldrh w1, [x19, 2] sub w0, w0, #1 cmp w1, w0 - bge .L1793 - ldrh w0, [x19] - cmp w0, w28 - bne .L1794 -.L1793: + bge .L1751 + ldrh w1, [x19] + mov w0, 65535 + cmp w1, w0 + bne .L1752 +.L1751: mov x0, x19 bl Ftl_write_map_blk_to_last_page -.L1794: - ldr w1, [x21,2928] - cbnz w1, .L1795 - ldrh w2, [x19] - add x3, x21, 2936 - ldr x0, [x19,16] - str x3, [x29,104] - ldrh w24, [x0,x2,lsl 1] +.L1752: + ldr w0, [x20, 2928] + cbnz w0, .L1765 + ldrh w1, [x19] mov w2, 16 - ldrh w0, [x19,2] - str x27, [x21,2944] - orr w0, w0, w24, lsl 10 - str w0, [x21,2940] - ldr x0, [x21,2640] - str x0, [x21,2952] + ldr x0, [x19, 16] + ldrh w25, [x0, x1, lsl 1] + mov w1, 0 + ldrh w0, [x19, 2] + str x27, [x20, 2944] + orr w0, w0, w25, lsl 10 + str w0, [x20, 2940] + ldr x0, [x20, 2640] + str x0, [x20, 2952] bl ftl_memset - 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+88 - strh w24, [x2,2] - ldrb w0, [x0,#:lo12:.LANCHOR0+88] - cbz w0, .L1796 - ldr x0, [x3,8] - ldrh w1, [x21,2354] - str x2, [x29,104] + ldr x6, [x20, 2952] + ldr w0, [x19, 48] + str w0, [x6, 4] + strh w26, [x6, 8] + ldrh w0, [x19, 4] + strh w0, [x6] + strh w25, [x6, 2] + ldrb w0, [x24, 88] + cbz w0, .L1754 + ldr x0, [x20, 2944] + ldrh w1, [x20, 2354] bl js_hash - ldr x2, [x29,104] - str w0, [x2,12] -.L1796: - add x4, x21, 2936 - mov w1, 1 - mov w2, w1 - mov x0, x4 - mov w3, w1 - str x4, [x29,104] + str w0, [x6, 12] +.L1754: + add x28, x20, 2936 + mov w3, 1 + mov x0, x28 + mov w1, w3 + mov w2, w3 bl FlashProgPages - ldrh w1, [x19,2] - ldr x4, [x29,104] - add w1, w1, 1 - uxth w1, w1 - strh w1, [x19,2] - ldr w2, [x21,2936] - cmn w2, #1 - bne .L1797 - ldr w1, [x4,4] - mov x0, x23 + ldrh w0, [x19, 2] + add w0, w0, 1 + and w0, w0, 65535 + strh w0, [x19, 2] + ldr w1, [x20, 2936] + cmn w1, #1 + bne .L1755 + ldr w1, [x20, 2940] + adrp x0, .LC39 + add x0, x0, :lo12:.LC39 add w22, w22, 1 + and w22, w22, 65535 bl printk - uxth w22, w22 - ldrh w0, [x19,2] + ldrh w0, [x19, 2] cmp w0, 2 - bhi .L1798 - ldrh w0, [x21,2346] + bhi .L1756 + ldrh w0, [x20, 2346] sub w0, w0, #1 - strh w0, [x19,2] -.L1798: + strh w0, [x19, 2] +.L1756: cmp w22, 3 - bls .L1792 - add x20, x20, :lo12:.LANCHOR2 + bls .L1750 + add x21, x21, :lo12:.LANCHOR2 + mov w2, w22 adrp x0, .LC40 add x0, x0, :lo12:.LC40 - mov w2, w22 - ldr w1, [x20,2940] + ldr w1, [x21, 2940] bl printk mov w0, 1 - str w0, [x20,2928] - b .L1795 -.L1797: - cbz w2, .L1800 - strh w24, [x19,60] -.L1800: - cmp w1, 1 - beq .L1801 - cmp w2, 256 - beq .L1801 - ldr w0, [x19,56] - cbz w0, .L1802 -.L1801: - str wzr, [x19,56] - b .L1792 -.L1802: - add x20, x20, :lo12:.LANCHOR2 - ldr x0, [x19,40] - ldr w1, [x20,2940] - str w1, [x0,w25,uxtw 2] -.L1795: + str w0, [x21, 2928] +.L1765: mov w0, 0 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 112 + ldp 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 +.L1755: + cbz w1, .L1758 + strh w25, [x19, 60] + cmp w0, 1 + bne .L1759 +.L1760: + str wzr, [x19, 56] + b .L1750 +.L1759: + cmp w1, 256 +.L1773: + beq .L1760 + ldr w0, [x19, 56] + cbnz w0, .L1760 + add x21, x21, :lo12:.LANCHOR2 + ldr x0, [x19, 40] + ldr w1, [x21, 2940] + str w1, [x0, w26, uxtw 2] + b .L1765 +.L1758: + cmp w0, 1 + b .L1773 .size FtlMapWritePage, .-FtlMapWritePage .align 2 .global ftl_map_blk_gc @@ -10923,114 +10754,113 @@ FtlMapWritePage: ftl_map_blk_gc: 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] - str x27, [sp,80] + stp x19, x20, [sp, 16] mov x19, x0 + stp x21, x22, [sp, 32] adrp x20, .LANCHOR2 - ldr x21, [x0,16] - ldr x25, [x0,40] + stp x23, x24, [sp, 48] + stp x25, x26, [sp, 64] + str x27, [sp, 80] + ldr x21, [x0, 16] + ldr x25, [x0, 40] bl ftl_free_no_use_map_blk - ldrh w1, [x19,10] - ldrh w2, [x19,8] + ldrh w1, [x19, 10] + ldrh w2, [x19, 8] sub w1, w1, #4 cmp w2, w1 - blt .L1810 - ubfiz x1, x0, 1, 16 - ldrh w24, [x21,x1] - cbz w24, .L1810 - ldr w0, [x19,52] - cbnz w0, .L1810 - mov w2, 1 - str w2, [x19,52] - strh w0, [x21,x1] - ldrh w0, [x19,8] - ldrh w1, [x19,2] + blt .L1775 + ubfiz x0, x0, 1, 16 + ldrh w24, [x21, x0] + cbz w24, .L1775 + ldr w1, [x19, 52] + cbnz w1, .L1775 + mov w1, 1 + str w1, [x19, 52] + strh wzr, [x21, x0] + ldrh w0, [x19, 8] + ldrh w1, [x19, 2] sub w0, w0, #1 - strh w0, [x19,8] + strh w0, [x19, 8] add x0, x20, :lo12:.LANCHOR2 - ldrh w0, [x0,2346] + ldrh w0, [x0, 2346] cmp w1, w0 - bcc .L1811 + bcc .L1776 mov x0, x19 bl ftl_map_blk_alloc_new_blk -.L1811: +.L1776: add x26, x20, :lo12:.LANCHOR2 mov w21, 0 add x22, x26, 2936 -.L1812: - ldrh w0, [x19,6] +.L1777: + ldrh w0, [x19, 6] cmp w0, w21 - bls .L1821 + bhi .L1782 + mov w1, 1 + mov w0, w24 + bl FtlFreeSysBlkQueueIn + str wzr, [x19, 52] +.L1775: + add x20, x20, :lo12:.LANCHOR2 + ldrh w1, [x19, 2] + ldrh w0, [x20, 2346] + cmp w1, w0 + bcc .L1780 + mov x0, x19 + bl ftl_map_blk_alloc_new_blk + b .L1780 +.L1782: ubfiz x0, x21, 2, 16 add x27, x25, x0 - ldr w1, [x25,x0] + ldr w1, [x25, x0] cmp w24, w1, lsr 10 - bne .L1813 - ldr x1, [x26,2584] - ldr x23, [x26,2640] - str x1, [x22,8] - mov w1, 1 - str x23, [x22,16] - mov w2, w1 - ldr w0, [x25,x0] - str w0, [x22,4] + bne .L1778 + ldr x1, [x26, 2584] + mov w2, 1 + ldr x23, [x26, 2640] + stp x1, x23, [x22, 8] + mov w1, w2 + ldr w0, [x25, x0] + str w0, [x22, 4] mov x0, x22 bl FlashReadPages ldr w0, [x22] cmn w0, #1 - bne .L1814 -.L1816: + bne .L1779 +.L1781: add x20, x20, :lo12:.LANCHOR2 str wzr, [x27] adrp x0, .LC41 - ldrh w2, [x23,8] add x0, x0, :lo12:.LC41 - ldr w1, [x20,2940] + ldrh w2, [x23, 8] + ldr w1, [x20, 2940] bl printk mov w0, 1 - str w0, [x20,2928] - b .L1815 -.L1814: - ldrh w0, [x23,8] - cmp w0, w21 - bne .L1816 - ldrh w1, [x23] - ldrh w0, [x19,4] - cmp w1, w0 - bne .L1816 - ldr x2, [x22,8] - mov x0, x19 - mov w1, w21 - bl FtlMapWritePage -.L1813: - add w21, w21, 1 - uxth w21, w21 - b .L1812 -.L1821: - mov w0, w24 - mov w1, 1 - bl FtlFreeSysBlkQueueIn - str wzr, [x19,52] -.L1810: - add x20, x20, :lo12:.LANCHOR2 - ldrh w1, [x19,2] - ldrh w0, [x20,2346] - cmp w1, w0 - bcc .L1815 - mov x0, x19 - bl ftl_map_blk_alloc_new_blk -.L1815: + str w0, [x20, 2928] +.L1780: mov w0, 0 - ldr x27, [sp,80] - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] + ldr x27, [sp, 80] + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] ldp x29, x30, [sp], 96 ret +.L1779: + ldrh w0, [x23, 8] + cmp w0, w21 + bne .L1781 + ldrh w1, [x23] + ldrh w0, [x19, 4] + cmp w1, w0 + bne .L1781 + ldr x2, [x22, 8] + mov w1, w21 + mov x0, x19 + bl FtlMapWritePage +.L1778: + add w21, w21, 1 + and w21, w21, 65535 + b .L1777 .size ftl_map_blk_gc, .-ftl_map_blk_gc .align 2 .global Ftl_write_map_blk_to_last_page @@ -11038,104 +10868,104 @@ ftl_map_blk_gc: Ftl_write_map_blk_to_last_page: stp x29, x30, [sp, -64]! add x29, sp, 0 - stp x21, x22, [sp,32] + stp x19, x20, [sp, 16] + stp x21, x22, [sp, 32] adrp x21, .LANCHOR2 - add x1, x21, :lo12:.LANCHOR2 - stp x19, x20, [sp,16] - stp x23, x24, [sp,48] - ldr w20, [x1,2928] - ldr x22, [x0,16] - ldr x24, [x0,40] - cbnz w20, .L1823 + add x20, x21, :lo12:.LANCHOR2 + stp x23, x24, [sp, 48] + ldr w1, [x20, 2928] + cbnz w1, .L1788 mov x19, x0 ldrh w0, [x0] - mov w2, 65535 - cmp w0, w2 - bne .L1824 - ldrh w0, [x19,8] + mov w1, 65535 + cmp w0, w1 + ldr x22, [x19, 16] + bne .L1789 + ldrh w0, [x19, 8] add w0, w0, 1 - strh w0, [x19,8] + strh w0, [x19, 8] bl FtlFreeSysBlkQueueOut strh w0, [x22] - strh w20, [x19,2] - ldr w0, [x19,48] - strh w20, [x19] + strh wzr, [x19, 2] + ldr w0, [x19, 48] + strh wzr, [x19] add w0, w0, 1 - str w0, [x19,48] - b .L1823 -.L1824: - ubfiz x0, x0, 1, 16 - ldrh w2, [x19,2] - ldrh w23, [x22,x0] - ldr x22, [x1,2640] - str x22, [x1,2952] - orr w2, w2, w23, lsl 10 - str w2, [x1,2940] - ldr x2, [x1,2576] - str x2, [x1,2944] - 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,2346] - ldr x0, [x1,2576] - mov w1, 255 - lsl w2, w2, 3 - bl ftl_memset - mov w0, w20 -.L1825: - ldrh w1, [x19,6] - cmp w1, w0 - bls .L1832 - ubfiz x3, x0, 2, 32 - ldr w1, [x24,x3] - cmp w23, w1, lsr 10 - bne .L1826 - add x2, x21, :lo12:.LANCHOR2 - add w20, w20, 1 - uxth w20, w20 - ldr x4, [x2,2576] - ubfiz x1, x20, 3, 16 - str w0, [x4,x1] - ldr x2, [x2,2576] - ldr w3, [x24,x3] - add x1, x2, x1 - str w3, [x1,4] -.L1826: - add w0, w0, 1 - uxth w0, w0 - b .L1825 -.L1832: - adrp x0, .LANCHOR0+88 - ldrb w0, [x0,#:lo12:.LANCHOR0+88] - cbz w0, .L1828 - add x1, x21, :lo12:.LANCHOR2 - ldr x0, [x1,2944] - ldrh w1, [x1,2354] - bl js_hash - str w0, [x22,12] -.L1828: - mov w1, 1 - add x0, x21, :lo12:.LANCHOR2 - add x0, x0, 2936 - mov w2, w1 - mov w3, 0 - bl FlashProgPages - ldrh w0, [x19,2] - add w0, w0, 1 - strh w0, [x19,2] - mov x0, x19 - bl ftl_map_blk_gc -.L1823: + str w0, [x19, 48] +.L1788: mov w0, 0 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] ldp x29, x30, [sp], 64 ret +.L1789: + ubfiz x0, x0, 1, 16 + ldrh w1, [x19, 2] + ldr x24, [x19, 40] + ldrh w23, [x22, x0] + ldr x22, [x20, 2640] + ldr w0, [x19, 48] + orr w1, w1, w23, lsl 10 + str w1, [x20, 2940] + ldr x1, [x20, 2576] + str x1, [x20, 2944] + str x22, [x20, 2952] + mov w1, 255 + str w0, [x22, 4] + mov w0, -1291 + strh w0, [x22, 8] + ldrh w0, [x19, 4] + strh w0, [x22] + strh w23, [x22, 2] + ldrh w2, [x20, 2346] + ldr x0, [x20, 2576] + lsl w2, w2, 3 + bl ftl_memset + mov w1, 0 + mov w0, 0 +.L1790: + ldrh w2, [x19, 6] + cmp w2, w0 + bhi .L1792 + adrp x0, .LANCHOR0+88 + ldrb w0, [x0, #:lo12:.LANCHOR0+88] + cbz w0, .L1793 + add x0, x21, :lo12:.LANCHOR2 + ldrh w1, [x0, 2354] + ldr x0, [x0, 2944] + bl js_hash + str w0, [x22, 12] +.L1793: + add x0, x21, :lo12:.LANCHOR2 + mov w2, 1 + mov w3, 0 + mov w1, w2 + add x0, x0, 2936 + bl FlashProgPages + ldrh w0, [x19, 2] + add w0, w0, 1 + strh w0, [x19, 2] + mov x0, x19 + bl ftl_map_blk_gc + b .L1788 +.L1792: + ubfiz x2, x0, 2, 16 + ldr w3, [x24, x2] + cmp w23, w3, lsr 10 + bne .L1791 + add w1, w1, 1 + ldr x4, [x20, 2576] + and w1, w1, 65535 + ubfiz x3, x1, 3, 16 + str w0, [x4, x3] + ldr w4, [x24, x2] + ldr x2, [x20, 2576] + add x2, x2, x3 + str w4, [x2, 4] +.L1791: + add w0, w0, 1 + and w0, w0, 65535 + b .L1790 .size Ftl_write_map_blk_to_last_page, .-Ftl_write_map_blk_to_last_page .align 2 .global flush_l2p_region @@ -11143,25 +10973,25 @@ Ftl_write_map_blk_to_last_page: flush_l2p_region: stp x29, x30, [sp, -32]! add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x20, .LANCHOR2 - ubfiz x19, x0, 4, 16 - add x20, x20, :lo12:.LANCHOR2 + stp x19, x20, [sp, 16] + adrp x19, .LANCHOR2 + add x19, x19, :lo12:.LANCHOR2 + ubfiz x20, x0, 4, 16 + ldr x0, [x19, 2792] + add x1, x0, x20 + ldr x2, [x1, 8] + ldrh w1, [x0, x20] adrp x0, .LANCHOR4 add x0, x0, :lo12:.LANCHOR4 add x0, x0, 928 - ldr x1, [x20,2792] - add x2, x1, x19 - ldrh w1, [x1,x19] - ldr x2, [x2,8] bl FtlMapWritePage - ldr x0, [x20,2792] - add x19, x0, x19 - ldr w0, [x19,4] - and w0, w0, 2147483647 - str w0, [x19,4] + ldr x0, [x19, 2792] + add x0, x0, x20 + ldr w1, [x0, 4] + and w1, w1, 2147483647 + str w1, [x0, 4] mov w0, 0 - ldp x19, x20, [sp,16] + ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 32 ret .size flush_l2p_region, .-flush_l2p_region @@ -11170,69 +11000,64 @@ flush_l2p_region: .type select_l2p_ram_region, %function select_l2p_ram_region: adrp x0, .LANCHOR2 - mov x3, 0 add x0, x0, :lo12:.LANCHOR2 - mov w4, 65535 - ldrh w2, [x0,2382] - ldr x1, [x0,2792] -.L1835: - uxth w0, w3 - cmp w0, w2 - bcs .L1851 - add x3, x3, 1 - add x5, x1, x3, lsl 4 - ldrh w5, [x5,-16] - cmp w5, w4 - bne .L1835 - b .L1836 -.L1851: - mov w0, w2 mov x3, 0 - mov w6, -2147483648 -.L1838: - uxth w5, w3 - cmp w5, w2 - bcs .L1852 - add x4, x1, x3, lsl 4 - ldr w4, [x4,4] - tbnz w4, #31, .L1847 - cmp w4, w6 - bcc .L1839 -.L1847: - mov w4, w6 - mov w5, w0 -.L1839: - add x3, x3, 1 - mov w6, w4 - mov w0, w5 - b .L1838 -.L1852: + mov w4, 65535 + ldrh w2, [x0, 2382] + ldr x1, [x0, 2792] +.L1801: + and w0, w3, 65535 cmp w0, w2 - bcc .L1836 + bcc .L1803 + add x4, x1, 4 + mov w0, w2 + mov w6, -2147483648 + mov w3, 0 +.L1804: + cmp w3, w2 + bne .L1806 + cmp w0, w2 + bcc .L1802 adrp x0, .LANCHOR4+992 - add x1, x1, 4 mov w4, -1 mov w3, 0 - ldrh w5, [x0,#:lo12:.LANCHOR4+992] + ldrh w5, [x0, #:lo12:.LANCHOR4+992] mov w0, w2 -.L1842: +.L1807: cmp w3, w2 - beq .L1836 - ldr w7, [x1] - cmp w7, w4 - bcs .L1843 - ldrh w6, [x1,-4] + beq .L1802 + ldr w7, [x1, 4] + cmp w4, w7 + bls .L1808 + ldrh w6, [x1] cmp w6, w5 csel w4, w4, w7, eq - cmp w6, w5 csel w0, w0, w3, eq -.L1843: +.L1808: add w3, w3, 1 add x1, x1, 16 - uxth w3, w3 - b .L1842 -.L1836: + and w3, w3, 65535 + b .L1807 +.L1803: + add x3, x3, 1 + add x5, x1, x3, lsl 4 + ldrh w5, [x5, -16] + cmp w5, w4 + bne .L1801 +.L1802: ret +.L1806: + ldr w5, [x4] + tbnz w5, #31, .L1805 + cmp w6, w5 + bls .L1805 + mov w6, w5 + mov w0, w3 +.L1805: + add w3, w3, 1 + add x4, x4, 16 + and w3, w3, 65535 + b .L1804 .size select_l2p_ram_region, .-select_l2p_ram_region .align 2 .global log2phys @@ -11240,377 +11065,370 @@ select_l2p_ram_region: log2phys: stp x29, x30, [sp, -112]! add x29, sp, 0 - stp x21, x22, [sp,32] + stp x21, x22, [sp, 32] adrp x21, .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] - ldr w5, [x4,2924] - ldrh w3, [x4,2352] - cmp w0, w5 - bcs .L1854 - add w27, w3, 7 - str x1, [x29,104] - lsr w28, w0, w27 + add x3, x21, :lo12:.LANCHOR2 + stp x19, x20, [sp, 16] + stp x23, x24, [sp, 48] + stp x25, x26, [sp, 64] + stp x27, x28, [sp, 80] + ldr w4, [x3, 2924] + cmp w0, w4 + bcs .L1811 mov w25, w0 - str w2, [x29,100] + ldrh w0, [x3, 2352] + mov x23, x1 + ldr x8, [x3, 2792] + add w27, w0, 7 + ldrh w1, [x3, 2382] mov x0, 0 - uxth w22, w28 - ldrh w1, [x4,2382] - ldr x19, [x4,2792] - b .L1855 -.L1854: - mov w0, -1 - cbnz w2, .L1856 - str w0, [x1] - b .L1856 -.L1860: - add x0, x0, 1 - add x2, x19, x0, lsl 4 - ldrh w2, [x2,-16] - cmp w2, w22 - beq .L1857 -.L1855: - uxth x20, w0 + str w2, [x29, 108] + lsr w28, w25, w27 + and w22, w28, 65535 +.L1812: + and x20, x0, 65535 cmp w20, w1 - bcc .L1860 + bcc .L1817 bl select_l2p_ram_region - uxth x20, w0 + and x20, x0, 65535 ubfiz x26, x20, 4, 16 mov w2, 65535 - add x1, x19, x26 - ldrh w3, [x19,x26] + add x1, x8, x26 + ldrh w3, [x8, x26] cmp w3, w2 - bne .L1868 -.L1861: + beq .L1818 + ldr w1, [x1, 4] + tbz w1, #31, .L1818 + bl flush_l2p_region +.L1818: add x19, x21, :lo12:.LANCHOR2 ubfiz x0, x22, 2, 16 - ldr x1, [x19,2768] - ldr w24, [x1,x0] - cbnz w24, .L1862 - ldr x0, [x19,2792] + ldr x1, [x19, 2768] + ldr w3, [x1, x0] + cbnz w3, .L1819 + ldr x0, [x19, 2792] mov w1, 255 - ldrh w2, [x19,2354] + ldrh w2, [x19, 2354] add x0, x0, x26 - ldr x0, [x0,8] + ldr x0, [x0, 8] bl ftl_memset - ldr x0, [x19,2792] - strh w22, [x0,x26] - ldr x0, [x19,2792] + ldr x0, [x19, 2792] + strh w22, [x0, x26] + ldr x0, [x19, 2792] add x26, x0, x26 - str w24, [x26,4] -.L1857: - mov x1, 1 - lsl x3, x1, x27 - ldr w1, [x29,100] - sub w3, w3, #1 - and w0, w25, w3 - uxth x0, w0 - cbnz w1, .L1858 - add x1, x21, :lo12:.LANCHOR2 - ldr x1, [x1,2792] - add x1, x1, x20, lsl 4 - ldr x1, [x1,8] - ldr w0, [x1,x0,lsl 2] - ldr x1, [x29,104] + str wzr, [x26, 4] + b .L1814 +.L1811: + mov w0, -1 + cbnz w2, .L1810 str w0, [x1] - b .L1859 -.L1858: - ldr x2, [x29,104] - add x3, x21, :lo12:.LANCHOR2 - lsl x1, x20, 4 - ldr w4, [x2] - ldr x2, [x3,2792] - add x2, x2, x1 - ldr x2, [x2,8] - str w4, [x2,x0,lsl 2] - ldr x0, [x3,2792] - add x0, x0, x1 - ldr w1, [x0,4] - orr w1, w1, -2147483648 - str w1, [x0,4] - adrp x0, .LANCHOR4+992 - strh w22, [x0,#:lo12:.LANCHOR4+992] -.L1859: - add x21, x21, :lo12:.LANCHOR2 - ldr x0, [x21,2792] - add x20, x0, x20, lsl 4 - mov w0, 0 - ldr w1, [x20,4] - cmn w1, #1 - beq .L1856 - add w1, w1, 1 - str w1, [x20,4] - b .L1856 -.L1868: - ldr w1, [x1,4] - tbz w1, #31, .L1861 - bl flush_l2p_region - b .L1861 -.L1862: - ldr x0, [x19,2792] - mov w1, 1 - add x23, x19, 2936 - mov w2, w1 - add x0, x0, x26 - str w24, [x19,2940] - ldr x0, [x0,8] - str x0, [x19,2944] - ldr x0, [x19,2640] - str x0, [x19,2952] - mov x0, x23 - bl FlashReadPages - ldr x0, [x19,2952] - ldrh w0, [x0,8] - cmp w0, w22 - beq .L1863 - adrp x0, .LC42 - uxth w1, w28 - mov w2, w24 - add x0, x0, :lo12:.LC42 - bl printk - mov w2, 4 - ldr x1, [x19,2952] - adrp x0, .LC18 - mov w3, w2 - add x0, x0, :lo12:.LC18 - bl rknand_print_hex - adrp x0, .LC43 - ldr x1, [x19,2768] - ldrh w3, [x19,2380] - add x0, x0, :lo12:.LC43 - mov w2, 4 - bl rknand_print_hex - mov w0, 1 - str w0, [x19,2928] - b .L1864 -.L1863: - ldr w0, [x19,2936] - cmp w0, 256 - bne .L1864 - and w28, w28, 65535 - adrp x0, .LC44 - mov w1, w28 - mov w2, w24 - add x0, x0, :lo12:.LC44 - bl printk - ldr x2, [x19,2792] - adrp x0, .LANCHOR4 - add x0, x0, :lo12:.LANCHOR4 - mov w1, w28 - add x2, x2, x26 - add x0, x0, 928 - ldr x2, [x2,8] - bl FtlMapWritePage -.L1864: - add x1, x21, :lo12:.LANCHOR2 - ldr x0, [x1,2792] - add x0, x0, x26 - str wzr, [x0,4] - ldr x0, [x1,2792] - strh w22, [x0,x26] - b .L1857 -.L1856: - 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] +.L1810: + 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 +.L1817: + add x0, x0, 1 + add x2, x8, x0, lsl 4 + ldrh w2, [x2, -16] + cmp w2, w22 + bne .L1812 +.L1814: + ldr w1, [x29, 108] + mov x0, 1 + lsl x0, x0, x27 + sub w0, w0, #1 + and w0, w0, w25 + and x0, x0, 65535 + cbnz w1, .L1815 + add x1, x21, :lo12:.LANCHOR2 + ldr x1, [x1, 2792] + add x1, x1, x20, lsl 4 + ldr x1, [x1, 8] + ldr w0, [x1, x0, lsl 2] + str w0, [x23] +.L1816: + add x21, x21, :lo12:.LANCHOR2 + ldr x0, [x21, 2792] + add x20, x0, x20, lsl 4 + ldr w0, [x20, 4] + cmn w0, #1 + beq .L1823 + add w0, w0, 1 + str w0, [x20, 4] +.L1823: + mov w0, 0 + b .L1810 +.L1815: + add x3, x21, :lo12:.LANCHOR2 + lsl x1, x20, 4 + ldr w4, [x23] + ldr x2, [x3, 2792] + add x2, x2, x1 + ldr x2, [x2, 8] + str w4, [x2, x0, lsl 2] + ldr x0, [x3, 2792] + add x0, x0, x1 + ldr w1, [x0, 4] + orr w1, w1, -2147483648 + str w1, [x0, 4] + adrp x0, .LANCHOR4+992 + strh w22, [x0, #:lo12:.LANCHOR4+992] + b .L1816 +.L1819: + ldr x0, [x19, 2792] + add x24, x19, 2936 + mov w2, 1 + str w3, [x19, 2940] + add x0, x0, x26 + str w3, [x29, 104] + mov w1, w2 + ldr x0, [x0, 8] + str x0, [x19, 2944] + ldr x0, [x19, 2640] + str x0, [x19, 2952] + mov x0, x24 + bl FlashReadPages + ldr x0, [x19, 2952] + ldr w3, [x29, 104] + ldrh w0, [x0, 8] + cmp w0, w22 + beq .L1820 + mov w2, w3 + and w1, w28, 65535 + adrp x0, .LC42 + add x0, x0, :lo12:.LC42 + bl printk + ldr x1, [x19, 2952] + mov w3, 4 + adrp x0, .LC18 + mov w2, w3 + add x0, x0, :lo12:.LC18 + bl rknand_print_hex + ldrh w3, [x19, 2380] + mov w2, 4 + ldr x1, [x19, 2768] + adrp x0, .LC43 + add x0, x0, :lo12:.LC43 + bl rknand_print_hex + mov w0, 1 + str w0, [x19, 2928] +.L1821: + add x1, x21, :lo12:.LANCHOR2 + ldr x0, [x1, 2792] + add x0, x0, x26 + str wzr, [x0, 4] + ldr x0, [x1, 2792] + strh w22, [x0, x26] + b .L1814 +.L1820: + ldr w0, [x19, 2936] + cmp w0, 256 + bne .L1821 + and w28, w28, 65535 + mov w2, w3 + mov w1, w28 + adrp x0, .LC44 + add x0, x0, :lo12:.LC44 + bl printk + ldr x0, [x19, 2792] + mov w1, w28 + add x0, x0, x26 + ldr x2, [x0, 8] + adrp x0, .LANCHOR4 + add x0, x0, :lo12:.LANCHOR4 + add x0, x0, 928 + bl FtlMapWritePage + b .L1821 .size log2phys, .-log2phys .align 2 .global FtlVendorPartWrite .type FtlVendorPartWrite, %function FtlVendorPartWrite: - stp x29, x30, [sp, -176]! + stp x29, x30, [sp, -160]! add x29, sp, 0 - stp x23, x24, [sp,48] - adrp x24, .LANCHOR2 - mov w23, w0 - add x0, x24, :lo12:.LANCHOR2 - stp x19, x20, [sp,16] - stp x21, x22, [sp,32] - stp x25, x26, [sp,64] - stp x27, x28, [sp,80] - mov w21, w1 - add w1, w23, w1 - ldrh w22, [x0,2352] - mov x26, x2 - ldrh w0, [x0,2340] - mov w20, -1 + stp x19, x20, [sp, 16] + adrp x19, .LANCHOR2 + add x19, x19, :lo12:.LANCHOR2 + stp x21, x22, [sp, 32] + stp x23, x24, [sp, 48] + mov w22, w1 + mov w24, w0 + add w1, w0, w1 + stp x25, x26, [sp, 64] + ldrh w0, [x19, 2340] + stp x27, x28, [sp, 80] cmp w1, w0 - bhi .L1870 + bhi .L1834 + ldrh w23, [x19, 2352] adrp x27, .LANCHOR4 - lsr w22, w23, w22 add x27, x27, :lo12:.LANCHOR4 - mov w20, 0 + mov x25, x2 add x27, x27, 1000 -.L1871: - cbz w21, .L1870 - add x2, x24, :lo12:.LANCHOR2 - ldrh w1, [x2,2350] - ldr x0, [x2,2760] - udiv w25, w23, w1 - ldr w3, [x0,w22,uxtw 2] - uxth w0, w21 - msub w25, w25, w1, w23 - sub w19, w1, w25 - uxth w19, w19 - cmp w19, w21 - csel w19, w0, w19, hi - cmp w19, w1 - beq .L1873 - cbz w3, .L1873 - ldr x0, [x2,2592] - mov w1, 1 - str x0, [x29,128] - mov w2, w1 - add x0, x29, 120 - str w3, [x29,124] - str xzr, [x29,136] + mov w26, 0 + lsr w23, w24, w23 +.L1828: + cbnz w22, .L1833 +.L1826: + 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], 160 + ret +.L1833: + ldrh w1, [x19, 2350] + ldr x0, [x19, 2760] + udiv w21, w24, w1 + ldr w2, [x0, w23, uxtw 2] + and w0, w22, 65535 + msub w21, w21, w1, w24 + sub w20, w1, w21 + and w20, w20, 65535 + cmp w22, w20 + csel w20, w0, w20, cc + cbz w2, .L1830 + cmp w20, w1 + beq .L1830 + ldr x0, [x19, 2592] + str w2, [x29, 108] + mov w2, 1 + stp x0, xzr, [x29, 112] + mov w1, w2 + add x0, x29, 104 bl FlashReadPages - b .L1874 -.L1873: - add x2, x24, :lo12:.LANCHOR2 - mov w1, 0 - ldr x0, [x2,2592] - ldrh w2, [x2,2354] - bl ftl_memset -.L1874: - add x3, x24, :lo12:.LANCHOR2 - lsl w28, w19, 9 - ubfiz x25, x25, 9, 16 - mov x1, x26 +.L1831: + ldr x0, [x19, 2592] + lsl w21, w21, 9 + lsl w28, w20, 9 + asr w21, w21, 2 + mov x1, x25 mov w2, w28 - str x3, [x29,104] - ldr x0, [x3,2592] - sub w21, w21, w19 - add w23, w23, w19 - add x26, x26, w28, sxtw - add x0, x0, x25 + add x0, x0, w21, sxtw 2 bl ftl_memcpy - ldr x3, [x29,104] - mov w1, w22 + ldr x2, [x19, 2592] + mov w1, w23 mov x0, x27 - add w22, w22, 1 - ldr x2, [x3,2592] + sub w22, w22, w20 + add w24, w24, w20 + add x25, x25, w28, sxtw + add w23, w23, 1 bl FtlMapWritePage cmn w0, #1 - csinv w20, w20, wzr, ne - b .L1871 -.L1870: - mov w0, w20 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 176 - ret + csinv w26, w26, wzr, ne + b .L1828 +.L1830: + ldrh w2, [x19, 2354] + mov w1, 0 + ldr x0, [x19, 2592] + bl ftl_memset + b .L1831 +.L1834: + mov w26, -1 + b .L1826 .size FtlVendorPartWrite, .-FtlVendorPartWrite .align 2 .global FtlVendorPartRead .type FtlVendorPartRead, %function FtlVendorPartRead: - stp x29, x30, [sp, -192]! + stp x29, x30, [sp, -176]! add x29, sp, 0 - stp x25, x26, [sp,64] - adrp x25, .LANCHOR2 - stp x23, x24, [sp,48] - mov w23, w0 - add x0, x25, :lo12:.LANCHOR2 - stp x21, x22, [sp,32] - stp x27, x28, [sp,80] - stp x19, x20, [sp,16] - mov w22, w1 + stp x19, x20, [sp, 16] + adrp x19, .LANCHOR2 + add x19, x19, :lo12:.LANCHOR2 + stp x23, x24, [sp, 48] + stp x21, x22, [sp, 32] + mov w24, w0 + mov w23, w1 + stp x25, x26, [sp, 64] + add w1, w0, w1 + stp x27, x28, [sp, 80] + ldrh w0, [x19, 2340] + cmp w1, w0 + bhi .L1848 + ldrh w22, [x19, 2352] + adrp x25, .LANCHOR4 + add x25, x25, :lo12:.LANCHOR4 mov x27, x2 - add w2, w23, w1 - ldrh w1, [x0,2340] - ldrh w20, [x0,2352] - mov w0, -1 - cmp w2, w1 - bhi .L1885 - adrp x0, .LC45 - adrp x26, .LANCHOR4 - add x0, x0, :lo12:.LC45 - add x26, x26, :lo12:.LANCHOR4 - str x0, [x29,120] - lsr w20, w23, w20 - add x0, x26, 1000 - mov w21, 0 - str x0, [x29,112] -.L1886: - cbz w22, .L1894 - add x26, x25, :lo12:.LANCHOR2 - ldrh w19, [x26,2350] - ldr x0, [x26,2760] - udiv w24, w23, w19 - ldr w4, [x0,w20,uxtw 2] - uxth w0, w22 - msub w24, w24, w19, w23 - sub w19, w19, w24 - uxth w19, w19 - cmp w19, w22 - csel w19, w0, w19, hi - lsl w28, w19, 9 - cbz w4, .L1888 - ldr x0, [x26,2592] - mov w1, 1 - str x0, [x29,144] - mov w2, w1 - add x0, x29, 136 - str w4, [x29,140] - str x4, [x29,104] - str xzr, [x29,152] - bl FlashReadPages - ldr w0, [x29,136] - ldr x4, [x29,104] - cmn w0, #1 - ldr w0, [x26,2936] - csinv w21, w21, wzr, ne - cmp w0, 256 - bne .L1890 - ldr x0, [x29,120] - mov w1, w20 - mov w2, w4 - bl printk - ldr x0, [x29,112] - mov w1, w20 - ldr x2, [x26,2592] - bl FtlMapWritePage -.L1890: - add x0, x25, :lo12:.LANCHOR2 - ubfiz x24, x24, 9, 16 - mov w2, w28 - ldr x1, [x0,2592] - mov x0, x27 - add x1, x1, x24 - bl ftl_memcpy - b .L1891 -.L1888: - mov x0, x27 - mov w1, w4 - mov w2, w28 - bl ftl_memset -.L1891: - add w20, w20, 1 - sub w22, w22, w19 - add w23, w23, w19 - add x27, x27, w28, sxtw - b .L1886 -.L1894: - mov w0, w21 -.L1885: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 192 + add x25, x25, 1000 + mov w26, 0 + lsr w22, w24, w22 +.L1841: + cbnz w23, .L1847 +.L1839: + mov w0, w26 + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] + ldp x27, x28, [sp, 80] + ldp x29, x30, [sp], 176 ret +.L1847: + ldrh w20, [x19, 2350] + ldr x0, [x19, 2760] + udiv w21, w24, w20 + ldr w3, [x0, w22, uxtw 2] + and w0, w23, 65535 + msub w21, w21, w20, w24 + sub w20, w20, w21 + and w20, w20, 65535 + cmp w23, w20 + csel w20, w0, w20, cc + lsl w28, w20, 9 + cbz w3, .L1843 + ldr x0, [x19, 2592] + mov w2, 1 + str w3, [x29, 108] + mov w1, w2 + str w3, [x29, 124] + stp x0, xzr, [x29, 128] + add x0, x29, 120 + bl FlashReadPages + ldr w0, [x29, 120] + ldr w3, [x29, 108] + cmn w0, #1 + ldr w0, [x19, 2936] + csinv w26, w26, wzr, ne + cmp w0, 256 + bne .L1845 + mov w2, w3 + mov w1, w22 + adrp x0, .LC45 + add x0, x0, :lo12:.LC45 + bl printk + ldr x2, [x19, 2592] + mov w1, w22 + mov x0, x25 + bl FtlMapWritePage +.L1845: + ldr x1, [x19, 2592] + lsl w21, w21, 9 + asr w21, w21, 2 + mov w2, w28 + mov x0, x27 + add x1, x1, w21, sxtw 2 + bl ftl_memcpy +.L1846: + add w22, w22, 1 + sub w23, w23, w20 + add w24, w24, w20 + add x27, x27, w28, sxtw + b .L1841 +.L1843: + mov w2, w28 + mov w1, 0 + mov x0, x27 + bl ftl_memset + b .L1846 +.L1848: + mov w26, -1 + b .L1839 .size FtlVendorPartRead, .-FtlVendorPartRead .align 2 .global FtlUpdateVaildLpn @@ -11618,298 +11436,296 @@ FtlVendorPartRead: FtlUpdateVaildLpn: adrp x1, .LANCHOR4 add x3, x1, :lo12:.LANCHOR4 - ldrh w2, [x3,1064] - cbnz w0, .L1896 + ldrh w2, [x3, 1064] cmp w2, 4 - bhi .L1896 + bhi .L1851 + cbnz w0, .L1851 add w2, w2, 1 - strh w2, [x3,1064] - b .L1895 -.L1896: - add x0, x1, :lo12:.LANCHOR4 - mov w7, 65535 - strh wzr, [x0,1064] - str wzr, [x0,1068] - adrp x0, .LANCHOR2 - add x0, x0, :lo12:.LANCHOR2 - ldrh w5, [x0,2284] - ldr x6, [x0,2712] - mov x0, 0 -.L1897: - cmp w5, w0, uxth - bls .L1895 - ldrh w4, [x6,x0,lsl 1] - cmp w4, w7 - beq .L1898 - add x3, x1, :lo12:.LANCHOR4 - ldr w2, [x3,1068] - add w2, w4, w2 - str w2, [x3,1068] -.L1898: - add x0, x0, 1 - b .L1897 -.L1895: + strh w2, [x3, 1064] ret +.L1851: + add x0, x1, :lo12:.LANCHOR4 + adrp x1, .LANCHOR2 + add x1, x1, :lo12:.LANCHOR2 + mov w6, 65535 + strh wzr, [x0, 1064] + ldrh w4, [x1, 2284] + ldr x5, [x1, 2712] + mov x1, 0 + str wzr, [x0, 1068] +.L1852: + cmp w4, w1, uxth + bhi .L1854 + ret +.L1854: + ldrh w3, [x5, x1, lsl 1] + cmp w3, w6 + beq .L1853 + ldr w2, [x0, 1068] + add w2, w2, w3 + str w2, [x0, 1068] +.L1853: + add x1, x1, 1 + b .L1852 .size FtlUpdateVaildLpn, .-FtlUpdateVaildLpn .align 2 .global FtlMapBlkWriteDumpData .type FtlMapBlkWriteDumpData, %function FtlMapBlkWriteDumpData: + ldr w1, [x0, 56] + cbz w1, .L1863 stp x29, x30, [sp, -48]! + adrp x2, .LANCHOR2 + add x1, x2, :lo12:.LANCHOR2 add x29, sp, 0 - stp x19, x20, [sp,16] - str x21, [sp,32] - ldr w1, [x0,56] - ldrh w19, [x0,6] - ldr x4, [x0,40] - cbz w1, .L1901 - adrp x1, .LANCHOR2 - str wzr, [x0,56] - add x2, x1, :lo12:.LANCHOR2 - mov x21, x1 - ldr w3, [x2,2928] - cbnz w3, .L1901 + str x21, [sp, 32] + mov x21, x2 + stp x19, x20, [sp, 16] + str wzr, [x0, 56] + ldr w3, [x1, 2928] + ldrh w19, [x0, 6] + ldr x4, [x0, 40] + cbnz w3, .L1856 mov x20, x0 + add x0, x1, 2936 sub w19, w19, #1 - add x0, x2, 2936 - ldr x3, [x2,2640] - uxth w19, w19 - ldr x1, [x2,2584] - str x3, [x0,16] - ubfiz x3, x19, 2, 16 - str x1, [x0,8] - ldr w3, [x4,x3] - str w3, [x0,4] - cbz w3, .L1905 - mov w1, 1 - mov w2, w1 + ldr x2, [x1, 2640] + and w19, w19, 65535 + ldr x3, [x1, 2584] + stp x3, x2, [x0, 8] + ubfiz x2, x19, 2, 16 + ldr w2, [x4, x2] + str w2, [x0, 4] + cbz w2, .L1860 + mov w2, 1 + mov w1, w2 bl FlashReadPages - b .L1906 -.L1905: - ldrh w2, [x2,2354] - mov x0, x1 +.L1861: + add x0, x21, :lo12:.LANCHOR2 + mov w1, w19 + ldr x2, [x0, 2944] + mov x0, x20 + bl FtlMapWritePage +.L1856: + ldp x19, x20, [sp, 16] + ldr x21, [sp, 32] + ldp x29, x30, [sp], 48 + ret +.L1860: + ldrh w2, [x1, 2354] + mov x0, x3 mov w1, 255 bl ftl_memset -.L1906: - add x2, x21, :lo12:.LANCHOR2 - mov x0, x20 - mov w1, w19 - ldr x2, [x2,2944] - bl FtlMapWritePage -.L1901: - ldp x19, x20, [sp,16] - ldr x21, [sp,32] - ldp x29, x30, [sp], 48 + b .L1861 +.L1863: ret .size FtlMapBlkWriteDumpData, .-FtlMapBlkWriteDumpData .align 2 .global FtlVpcTblFlush .type FtlVpcTblFlush, %function FtlVpcTblFlush: - stp x29, x30, [sp, -96]! + stp x29, x30, [sp, -80]! add x29, sp, 0 - stp x21, x22, [sp,32] + stp x19, x20, [sp, 16] + stp x21, x22, [sp, 32] adrp x22, .LANCHOR2 - str x27, [sp,80] - stp x19, x20, [sp,16] add x19, x22, :lo12:.LANCHOR2 - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] - ldr w1, [x19,2928] - cbnz w1, .L1909 - ldr x0, [x19,2576] + stp x23, x24, [sp, 48] + stp x25, x26, [sp, 64] + ldr w0, [x19, 2928] + cbnz w0, .L1868 + ldr x0, [x19, 2576] adrp x25, .LANCHOR4 - str x0, [x19,2944] + str x0, [x19, 2944] add x0, x25, :lo12:.LANCHOR4 - ldr x21, [x19,2640] + ldr x21, [x19, 2640] add x20, x0, 696 - str x21, [x19,2952] + str x21, [x19, 2952] adrp x23, .LANCHOR0 - ldrh w3, [x0,1072] - strh w3, [x21,2] - mov w3, -3932 - strh w3, [x21] - str w1, [x21,12] - ldr w3, [x0,1080] - str w1, [x21,8] - mov w1, 19539 - movk w1, 0x4654, lsl 16 - str w3, [x21,4] - ldrh w2, [x0,784] - str w1, [x0,696] - mov w1, 99 - strh w2, [x20,14] - movk w1, 0x5000, lsl 16 - ldrh w2, [x0,786] - ldrb w3, [x0,790] - str w1, [x20,4] - ldrh w1, [x0,1078] + ldrh w2, [x0, 1072] + strh w2, [x21, 2] + mov w2, -3932 + strh w2, [x21] + str wzr, [x21, 12] + ldr w2, [x0, 1080] + stp w2, wzr, [x21, 4] + mov w2, 19539 + movk w2, 0x4654, lsl 16 + str w2, [x0, 696] + mov w2, 99 + ldrb w3, [x0, 790] + movk w2, 0x5000, lsl 16 + str w2, [x20, 4] + ldrh w2, [x0, 784] + strh w2, [x20, 14] + ldrh w2, [x0, 786] + ldrh w1, [x0, 1078] + strh w1, [x20, 8] orr w2, w3, w2, lsl 6 - strh w1, [x20,8] - ldrh w1, [x19,2298] - strb w1, [x20,10] - ldrb w1, [x0,792] - strh w2, [x20,16] - strb w1, [x20,11] - ldrh w2, [x0,832] - ldrb w1, [x0,840] - strb w1, [x20,12] + ldrh w1, [x19, 2298] + strb w1, [x20, 10] + strh w2, [x20, 16] + ldrb w1, [x0, 792] + ldrh w2, [x0, 832] + ldrb w3, [x0, 838] + strb w1, [x20, 11] + strh w2, [x20, 18] + ldrb w1, [x0, 840] + ldrh w2, [x0, 834] + strb w1, [x20, 12] add x1, x0, 880 - strh w2, [x20,18] - ldrh w2, [x0,834] - ldrb w3, [x0,838] - ldrh w0, [x0,880] + ldrh w0, [x0, 880] orr w2, w3, w2, lsl 6 - strh w0, [x20,22] - strh w2, [x20,20] - ldrh w0, [x1,2] - ldrb w2, [x1,6] + strh w2, [x20, 20] + strh w0, [x20, 22] + ldrb w2, [x1, 6] + ldrh w0, [x1, 2] orr w0, w2, w0, lsl 6 - strh w0, [x20,24] - ldrb w0, [x1,8] + strh w0, [x20, 24] + ldrb w0, [x1, 8] mov w1, 255 - strb w0, [x20,13] - ldr w0, [x19,2428] - str w0, [x20,32] - ldr w0, [x19,2396] - str w0, [x20,40] - ldr w0, [x19,2400] - str w0, [x20,36] - ldrh w0, [x19,2472] - strh w0, [x20,44] - ldrh w0, [x19,2474] - strh w0, [x20,46] - ldrh w2, [x19,2354] - ldr x0, [x19,2944] + strb w0, [x20, 13] + ldr w0, [x19, 2428] + str w0, [x20, 32] + ldr w0, [x19, 2396] + str w0, [x20, 40] + ldr w0, [x19, 2400] + str w0, [x20, 36] + ldrh w0, [x19, 2472] + strh w0, [x20, 44] + ldrh w0, [x19, 2474] + strh w0, [x20, 46] + ldrh w2, [x19, 2354] + ldr x0, [x19, 2944] bl ftl_memset - ldr x0, [x19,2944] + ldr x0, [x19, 2944] mov x1, x20 mov w2, 48 mov x20, x25 bl ftl_memcpy - ldr x0, [x19,2944] - ldrh w2, [x19,2284] - ldr x1, [x19,2712] - add x0, x0, 48 + ldr x1, [x19, 2712] + ldrh w2, [x19, 2284] + ldr x0, [x19, 2944] lsl w2, w2, 1 + add x0, x0, 48 bl ftl_memcpy - ldrh w2, [x19,2284] add x1, x23, :lo12:.LANCHOR0 - ldr x3, [x19,2944] - ubfiz x0, x2, 1, 16 - lsr w2, w2, 3 - add x0, x0, 51 - ldr x1, [x1,16] - and x0, x0, 262140 + ldrh w0, [x19, 2284] + ldr x3, [x19, 2944] + ldr x1, [x1, 80] + lsr w2, w0, 3 + ubfiz x0, x0, 1, 16 add w2, w2, 4 + add x0, x0, 51 + and x0, x0, -4 add x0, x3, x0 bl ftl_memcpy - ldrh w0, [x19,2384] - cbz w0, .L1910 - ldrh w0, [x19,2284] - ldrh w2, [x19,2380] + ldrh w0, [x19, 2384] + cbz w0, .L1869 + ldrh w0, [x19, 2284] + ldr x3, [x19, 2944] + ldrh w2, [x19, 2380] lsr w1, w0, 3 add w0, w1, w0, lsl 1 - ldr x1, [x19,2944] + ldr x1, [x19, 2768] add w0, w0, 52 lsl w2, w2, 2 and x0, x0, 65532 - add x0, x1, x0 - ldr x1, [x19,2768] + add x0, x3, x0 bl ftl_memcpy -.L1910: - mov w0, 0 +.L1869: + add x19, x20, :lo12:.LANCHOR4 + add x26, x22, :lo12:.LANCHOR2 + add x19, x19, 1072 + add x23, x23, :lo12:.LANCHOR0 mov w24, 0 mov w25, 65535 - add x19, x22, :lo12:.LANCHOR2 - add x20, x20, :lo12:.LANCHOR4 + mov w0, 0 bl FtlUpdateVaildLpn -.L1911: - ldrh w1, [x20,1072] - ldr x0, [x19,2576] - ldrh w2, [x20,1074] - str x0, [x19,2944] - ldr x0, [x19,2640] - str x0, [x19,2952] +.L1870: + ldrh w2, [x19, 2] + ldrh w1, [x19] + ldr x0, [x26, 2576] + str x0, [x26, 2944] + ldr x0, [x26, 2640] + str x0, [x26, 2952] orr w0, w2, w1, lsl 10 - str w0, [x19,2940] - ldrh w0, [x19,2346] + str w0, [x26, 2940] + ldrh w0, [x26, 2346] sub w0, w0, #1 cmp w2, w0 - blt .L1912 - ldrh w25, [x20,1076] - strh wzr, [x20,1074] - strh w1, [x20,1076] + blt .L1871 + ldrh w25, [x19, 4] + strh wzr, [x19, 2] + strh w1, [x19, 4] bl FtlFreeSysBlkQueueOut - ldr w1, [x19,2396] - str w1, [x20,1080] + ldr w1, [x26, 2396] + str w1, [x19, 8] add w2, w1, 1 - str w2, [x19,2396] + str w2, [x26, 2396] ubfiz w2, w0, 10, 16 - str w2, [x19,2940] - strh w0, [x20,1072] - str w1, [x21,4] - strh w0, [x21,2] -.L1912: - add x0, x23, :lo12:.LANCHOR0 - ldrb w0, [x0,88] - cbz w0, .L1913 - ldr x0, [x19,2576] - ldrh w1, [x19,2354] + str w2, [x26, 2940] + strh w0, [x19] + strh w0, [x21, 2] + str w1, [x21, 4] +.L1871: + ldrb w0, [x23, 88] + cbz w0, .L1872 + ldrh w1, [x26, 2354] + ldr x0, [x26, 2576] bl js_hash - str w0, [x21,12] -.L1913: - mov w1, 1 - add x0, x19, 2936 - mov w2, w1 - mov w3, w1 + str w0, [x21, 12] +.L1872: + mov w3, 1 + add x0, x26, 2936 + mov w1, w3 + mov w2, w3 bl FlashProgPages - ldrh w1, [x20,1074] - ldr w2, [x19,2936] - add w1, w1, 1 - cmn w2, #1 - uxth w1, w1 - strh w1, [x20,1074] - bne .L1914 - cmp w1, 1 - bne .L1915 - ldrh w1, [x19,2346] - sub w1, w1, #1 - strh w1, [x20,1074] -.L1915: + ldrh w0, [x19, 2] + ldr w1, [x26, 2936] + add w0, w0, 1 + and w0, w0, 65535 + strh w0, [x19, 2] + cmn w1, #1 + bne .L1873 + cmp w0, 1 + bne .L1874 + ldrh w0, [x26, 2346] + sub w0, w0, #1 + strh w0, [x19, 2] +.L1874: add w24, w24, 1 - uxth w24, w24 + and w24, w24, 65535 cmp w24, 3 - bls .L1911 + bls .L1870 add x22, x22, :lo12:.LANCHOR2 + mov w2, w24 adrp x0, .LC46 add x0, x0, :lo12:.LC46 - mov w2, w24 - ldr w1, [x22,2940] + ldr w1, [x22, 2940] bl printk mov w0, 1 - str w0, [x22,2928] - b .L1909 -.L1914: - cmp w1, 1 - beq .L1911 - cmp w2, 256 - beq .L1911 + str w0, [x22, 2928] +.L1868: + mov w0, 0 + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] + ldp x29, x30, [sp], 80 + ret +.L1873: + cmp w0, 1 + beq .L1870 + cmp w1, 256 + beq .L1870 mov w0, 65535 cmp w25, w0 - beq .L1909 - mov w0, w25 + beq .L1868 mov w1, 1 + mov w0, w25 bl FtlFreeSysBlkQueueIn -.L1909: - mov w0, 0 - ldr x27, [sp,80] - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x29, x30, [sp], 96 - ret + b .L1868 .size FtlVpcTblFlush, .-FtlVpcTblFlush .align 2 .global FtlScanSysBlk @@ -11918,470 +11734,434 @@ FtlScanSysBlk: stp x29, x30, [sp, -128]! mov w1, 0 add x29, sp, 0 - stp x21, x22, [sp,32] - adrp x22, .LANCHOR2 - stp x19, x20, [sp,16] - add x20, x22, :lo12:.LANCHOR2 - adrp x19, .LANCHOR4 - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] - stp x27, x28, [sp,80] - add x21, x19, :lo12:.LANCHOR4 - strh wzr, [x20,2920] - ldr w2, [x20,2372] - mov x24, x22 - ldr x0, [x20,2784] - mov w22, 65535 + stp x19, x20, [sp, 16] + stp x21, x22, [sp, 32] + adrp x21, .LANCHOR2 + add x19, x21, :lo12:.LANCHOR2 + adrp x22, .LANCHOR4 + add x20, x22, :lo12:.LANCHOR4 + stp x23, x24, [sp, 48] + stp x25, x26, [sp, 64] + mov w25, 56 + ldr x0, [x19, 2784] + ldr w2, [x19, 2372] + stp x27, x28, [sp, 80] + strh wzr, [x20, 1088] lsl w2, w2, 2 - strh wzr, [x21,1088] + strh wzr, [x19, 2920] bl ftl_memset - ldr w2, [x20,2372] + ldr x0, [x19, 2720] mov w1, 0 - ldr x0, [x20,2720] + ldr w2, [x19, 2372] lsl w2, w2, 1 bl ftl_memset - ldrh w2, [x20,2364] + ldr x0, [x19, 2752] mov w1, 0 - ldr x0, [x20,2752] + ldrh w2, [x19, 2364] lsl w2, w2, 2 bl ftl_memset - ldrh w2, [x20,2364] + ldr x0, [x19, 2736] mov w1, 0 - ldr x0, [x20,2736] + ldrh w2, [x19, 2364] lsl w2, w2, 1 bl ftl_memset - add x0, x21, 1072 - mov w1, 255 mov w2, 16 + mov w1, 255 + add x0, x20, 1072 bl ftl_memset - ldrh w21, [x20,2284] -.L1925: - add x1, x24, :lo12:.LANCHOR2 - ldrh w0, [x1,2286] - cmp w0, w21 - bls .L1966 - mov x27, 0 - ldrh w4, [x1,2276] - ldrh w2, [x1,2356] - mov w20, w27 - mov x23, x1 -.L1967: - cmp w4, w27, uxth - bls .L2000 - add x0, x23, 2304 - mov w1, w21 - str x2, [x29,112] - str x4, [x29,120] - ldrb w0, [x0,x27] + ldrh w23, [x19, 2284] + add x0, x19, 2304 + str x0, [x29, 112] +.L1891: + ldrh w0, [x19, 2286] + cmp w0, w23 + bls .L1930 + ldrh w8, [x19, 2276] + mov x5, 0 + ldrh w7, [x19, 2356] + mov w20, 0 + mov w6, 4 + b .L1931 +.L1893: + ldr x0, [x29, 112] + mov w1, w23 + ldrb w0, [x0, x5] bl V2P_block - uxth w28, w0 + and w4, w0, 65535 bl FtlBbmIsBadBlock - ldr x4, [x29,120] - ldr x2, [x29,112] - cbnz w0, .L1926 - mov w0, 56 - ldr x1, [x23,2520] - lsl w28, w28, 10 - mov w3, 4 - umull x0, w20, w0 - add x1, x1, x0 - str w28, [x1,4] - ldr x1, [x23,2520] - ldr x5, [x23,2656] - add x0, x1, x0 - ldr x1, [x23,2600] - str x1, [x0,8] - mul w1, w20, w2 + cbnz w0, .L1892 + umull x2, w20, w25 + ldr x0, [x19, 2520] + lsl w4, w4, 10 + add x0, x0, x2 + str w4, [x0, 4] + ldr x1, [x19, 2520] + ldr x0, [x19, 2600] + add x1, x1, x2 + ldr x2, [x19, 2656] + str x0, [x1, 8] + mul w0, w20, w7 add w20, w20, 1 - sdiv w1, w1, w3 - uxth w20, w20 - add x1, x5, w1, sxtw 2 - str x1, [x0,16] -.L1926: - add x27, x27, 1 - b .L1967 -.L2000: - cbz w20, .L1929 - add x0, x24, :lo12:.LANCHOR2 - mov w1, w20 - mov w2, 1 - mov x23, 0 - mov w27, -1 - mov w28, 61604 - ldr x0, [x0,2520] - bl FlashReadPages -.L1930: - cmp w20, w23, uxth - bls .L1929 - mov x0, 56 - mul x6, x23, x0 - add x0, x24, :lo12:.LANCHOR2 - ldr x0, [x0,2520] - add x1, x0, x6 - ldr w0, [x0,x6] - ldr w5, [x1,4] - cmn w0, #1 - ldr x26, [x1,16] - ubfx x25, x5, 10, 16 - bne .L1932 - mov w7, 16 + and w20, w20, 65535 + sdiv w0, w0, w6 + add x0, x2, w0, sxtw 2 + str x0, [x1, 16] +.L1892: + add x5, x5, 1 .L1931: - add x8, x24, :lo12:.LANCHOR2 - str x7, [x29,104] - str x8, [x29,112] - str x6, [x29,120] - ldr x0, [x8,2520] - add x0, x0, x6 - ldr w1, [x0,4] - add w1, w1, 1 - str w1, [x0,4] - mov w1, 1 - ldr x0, [x8,2520] - mov w2, w1 - add x0, x0, x6 + cmp w8, w5, uxth + bhi .L1893 + cbnz w20, .L1894 +.L1929: + add w23, w23, 1 + and w23, w23, 65535 + b .L1891 +.L1894: + ldr x0, [x19, 2520] + mov w2, 1 + mov w1, w20 + add x24, x22, :lo12:.LANCHOR4 + add x27, x24, 1072 + mov x26, 0 bl FlashReadPages - ldrh w0, [x26] - ldr x8, [x29,112] - cmp w0, w22 - ldr x6, [x29,120] - ldr x7, [x29,104] - ldr x0, [x8,2520] - bne .L1933 - str w27, [x0,x6] - b .L1932 -.L1933: - ldr w0, [x0,x6] + umull x0, w20, w25 + str x0, [x29, 120] +.L1928: + ldr x0, [x19, 2520] + add x1, x0, x26 + ldr w0, [x0, x26] + ldr w28, [x1, 4] cmn w0, #1 - bne .L1932 - sub w7, w7, #1 - uxth w7, w7 - cbnz w7, .L1931 -.L1932: - add x0, x24, :lo12:.LANCHOR2 - ldr x1, [x0,2520] - ldr w1, [x1,x6] - cmn w1, #1 - beq .L1935 - ldr w0, [x0,2396] - cmn w0, #1 - beq .L1936 - ldr w1, [x26,4] + ldr x20, [x1, 16] + ubfx x28, x28, 10, 16 + bne .L1897 + mov w6, 16 + mov w7, 65535 +.L1899: + ldr x0, [x19, 2520] + mov w2, 1 + stp w7, w6, [x29, 104] + add x0, x0, x26 + ldr w1, [x0, 4] + add w1, w1, 1 + str w1, [x0, 4] + mov w1, w2 + ldr x0, [x19, 2520] + add x0, x0, x26 + bl FlashReadPages + ldp w7, w6, [x29, 104] + ldrh w0, [x20] + cmp w0, w7 + ldr x0, [x19, 2520] + bne .L1896 + mov w1, -1 + str w1, [x0, x26] + ldr x0, [x19, 2520] + ldr w0, [x0, x26] cmp w0, w1 - bhi .L1937 -.L1936: - ldr w0, [x26,4] + beq .L1965 +.L1897: + ldr w0, [x19, 2396] + ldr w10, [x20, 4] cmn w0, #1 - beq .L1937 - add x1, x24, :lo12:.LANCHOR2 - add w0, w0, 1 - str w0, [x1,2396] -.L1937: - ldrh w0, [x26] - cmp w0, w28 - beq .L1939 - bhi .L1940 + beq .L1900 + cmp w0, w10 + bhi .L1901 +.L1900: + cmn w10, #1 + beq .L1901 + add w0, w10, 1 + str w0, [x19, 2396] +.L1901: + ldrh w0, [x20] + mov w1, 61604 + cmp w0, w1 + beq .L1903 + bhi .L1904 mov w1, 61574 cmp w0, w1 - bne .L1938 - add x6, x24, :lo12:.LANCHOR2 - ldrh w7, [x6,2364] - ldrh w0, [x6,2920] - sub w2, w7, #1 - ldr x6, [x6,2752] - sxth x1, w2 - sub w2, w2, w0 - b .L1953 -.L1940: + beq .L1905 +.L1902: + ldr x0, [x29, 120] + add x26, x26, 56 + cmp x26, x0 + bne .L1928 + b .L1929 +.L1896: + ldr w0, [x0, x26] + cmn w0, #1 + bne .L1897 + sub w6, w6, #1 + ands w6, w6, 65535 + bne .L1899 +.L1965: + mov w1, 0 + mov w0, w28 + bl FtlFreeSysBlkQueueIn + b .L1902 +.L1904: mov w1, 61634 cmp w0, w1 - beq .L1942 - cmp w0, w22 - bne .L1938 - mov w0, w25 - b .L1999 -.L1942: - add x7, x24, :lo12:.LANCHOR2 - add x0, x19, :lo12:.LANCHOR4 - ldr w6, [x7,2372] - ldrh w0, [x0,1088] - ldr x7, [x7,2784] - uxth w2, w6 - sub w1, w2, #1 - sub w2, w2, w0 + beq .L1906 + mov w1, 65535 + cmp w0, w1 + beq .L1965 + b .L1902 +.L1906: + ldr w6, [x19, 2372] + ldrh w1, [x24, 1088] + and w2, w6, 65535 + ldr x7, [x19, 2784] + sub w0, w2, #1 + sub w2, w2, w1 sub w2, w2, #1 - sxth x1, w1 + sxth x0, w0 sxth w2, w2 -.L1944: - cmp w1, w2 - ble .L2001 - sbfiz x8, x1, 2, 32 - ldr w11, [x26,4] - sxth x9, w1 - ldr w10, [x7,x8] - cmp w11, w10 - bls .L1945 +.L1908: + cmp w0, w2 + bgt .L1914 + tbz w0, #31, .L1946 + b .L1902 +.L1914: + sxtw x8, w0 + lsl x9, x8, 2 + ldr w11, [x7, x9] + cmp w10, w11 + bls .L1909 ldr w2, [x7] - cbnz w2, .L1946 - cmp w0, w6 - beq .L1946 - add x2, x19, :lo12:.LANCHOR4 - add w0, w0, 1 - strh w0, [x2,1088] + cbnz w2, .L1910 + cmp w6, w1 + beq .L1910 + add w1, w1, 1 + strh w1, [x24, 1088] +.L1910: + mov w1, 0 +.L1911: + cmp w1, w0 + bne .L1912 + ldr x1, [x19, 2784] + ldr w2, [x20, 4] + str w2, [x1, x9] + ldr x1, [x19, 2720] + strh w28, [x1, x8, lsl 1] + tbnz w0, #31, .L1902 + ldrh w1, [x24, 1088] + ldr w2, [x19, 2372] + sub w2, w2, w1 + sub w2, w2, #1 + cmp w0, w2, sxth + bgt .L1902 .L1946: - mov w0, 0 -.L1947: - cmp w0, w1 - beq .L2002 - add x6, x24, :lo12:.LANCHOR2 - sxtw x2, w0 - lsl x7, x2, 2 + add w1, w1, 1 + strh w1, [x24, 1088] + ldr x1, [x19, 2784] + ldr w2, [x20, 4] + str w2, [x1, x0, lsl 2] + ldr x1, [x19, 2720] +.L1964: + strh w28, [x1, x0, lsl 1] + b .L1902 +.L1912: + ldr x7, [x19, 2784] + sxtw x2, w1 + lsl x6, x2, 2 lsl x2, x2, 1 - add w0, w0, 1 - ldr x10, [x6,2784] - sxth w0, w0 - add x11, x10, x7 - ldr w11, [x11,4] - str w11, [x10,x7] - ldr x6, [x6,2720] + add x10, x7, x6 + add w1, w1, 1 + sxth w1, w1 + ldr w10, [x10, 4] + str w10, [x7, x6] + ldr x6, [x19, 2720] add x7, x6, x2 - ldrh w7, [x7,2] - strh w7, [x6,x2] - b .L1947 -.L2002: - add x2, x24, :lo12:.LANCHOR2 - ldr w6, [x26,4] - ldr x0, [x2,2784] - str w6, [x0,x8] - ldr x0, [x2,2720] - strh w25, [x0,x9,lsl 1] - tbz w1, #31, .L1949 - b .L1938 -.L1945: + ldrh w7, [x7, 2] + strh w7, [x6, x2] + b .L1911 +.L1909: + sub w0, w0, #1 + sxth x0, w0 + b .L1908 +.L1905: + ldrh w6, [x19, 2364] + ldrh w1, [x19, 2920] + sub w2, w6, #1 + ldr x7, [x19, 2752] + sxth x0, w2 + sub w2, w2, w1 +.L1917: + cmp w0, w2 + ble .L1922 + sxtw x8, w0 + lsl x9, x8, 2 + ldr w11, [x7, x9] + cmp w10, w11 + bls .L1918 + ldr w2, [x7] + cbnz w2, .L1919 + cmp w6, w1 + beq .L1919 + add w1, w1, 1 + strh w1, [x19, 2920] +.L1919: + mov w1, 0 +.L1920: + cmp w1, w0 + bne .L1921 + ldr x1, [x19, 2752] + ldr w2, [x20, 4] + str w2, [x1, x9] + ldr x1, [x19, 2736] + strh w28, [x1, x8, lsl 1] +.L1922: + tbnz w0, #31, .L1902 + ldrh w1, [x19, 2364] + ldrh w2, [x19, 2920] sub w1, w1, #1 - sxth x1, w1 - b .L1944 -.L2001: - tbz w1, #31, .L1982 - b .L1938 -.L1949: - add x0, x19, :lo12:.LANCHOR4 - ldr w2, [x2,2372] - ldrh w0, [x0,1088] - sub w2, w2, w0 - sub w2, w2, #1 - cmp w1, w2, sxth - bgt .L1938 -.L1982: - add x2, x19, :lo12:.LANCHOR4 - add w0, w0, 1 - ldr w4, [x26,4] - strh w0, [x2,1088] - add x0, x24, :lo12:.LANCHOR2 - ldr x2, [x0,2784] - str w4, [x2,x1,lsl 2] - ldr x0, [x0,2720] - b .L1998 -.L1959: - sbfiz x8, x1, 2, 32 - ldr w11, [x26,4] - sxth x9, w1 - ldr w10, [x6,x8] - cmp w11, w10 - bhi .L2003 - sub w1, w1, #1 - sxth x1, w1 -.L1953: - cmp w1, w2 - bgt .L1959 - b .L1958 -.L2003: - ldr w2, [x6] - cbnz w2, .L1955 - cmp w0, w7 - beq .L1955 - add x2, x24, :lo12:.LANCHOR2 - add w0, w0, 1 - strh w0, [x2,2920] -.L1955: - mov w0, 0 -.L1956: - cmp w0, w1 - beq .L2004 - add x6, x24, :lo12:.LANCHOR2 - sxtw x2, w0 - lsl x7, x2, 2 + sub w1, w1, w2 + cmp w0, w1, sxth + bgt .L1902 + ldr x1, [x19, 2752] + add w2, w2, 1 + strh w2, [x19, 2920] + ldr w2, [x20, 4] + str w2, [x1, x0, lsl 2] + ldr x1, [x19, 2736] + b .L1964 +.L1921: + ldr x7, [x19, 2752] + sxtw x2, w1 + lsl x6, x2, 2 lsl x2, x2, 1 - add w0, w0, 1 - ldr x10, [x6,2752] - sxth w0, w0 - add x11, x10, x7 - ldr w11, [x11,4] - str w11, [x10,x7] - ldr x6, [x6,2736] + add x10, x7, x6 + add w1, w1, 1 + sxth w1, w1 + ldr w10, [x10, 4] + str w10, [x7, x6] + ldr x6, [x19, 2736] add x7, x6, x2 - ldrh w7, [x7,2] - strh w7, [x6,x2] - b .L1956 -.L2004: - add x0, x24, :lo12:.LANCHOR2 - ldr w6, [x26,4] - ldr x2, [x0,2752] - str w6, [x2,x8] - ldr x0, [x0,2736] - strh w25, [x0,x9,lsl 1] -.L1958: - tbnz w1, #31, .L1938 - add x0, x24, :lo12:.LANCHOR2 - ldrh w2, [x0,2364] - ldrh w6, [x0,2920] - sub w2, w2, #1 - sub w2, w2, w6 - cmp w1, w2, sxth - bgt .L1938 - ldr x2, [x0,2752] - add w6, w6, 1 - ldr w4, [x26,4] - strh w6, [x0,2920] - str w4, [x2,x1,lsl 2] - ldr x0, [x0,2736] -.L1998: - strh w25, [x0,x1,lsl 1] - b .L1938 -.L1939: - add x0, x19, :lo12:.LANCHOR4 - add x1, x0, 1072 - ldrh w2, [x0,1072] - cmp w2, w22 - bne .L1960 - strh w25, [x0,1072] - ldr w0, [x26,4] - str w0, [x1,8] - b .L1938 -.L1960: - ldrh w0, [x1,4] - cmp w0, w22 - beq .L1961 + ldrh w7, [x7, 2] + strh w7, [x6, x2] + b .L1920 +.L1918: + sub w0, w0, #1 + sxth x0, w0 + b .L1917 +.L1903: + ldrh w0, [x27] + mov w1, 65535 + cmp w0, w1 + bne .L1924 + strh w28, [x27] + str w10, [x27, 8] + b .L1902 +.L1924: + ldrh w0, [x27, 4] + cmp w0, w1 + beq .L1925 mov w1, 1 bl FtlFreeSysBlkQueueIn -.L1961: - add x1, x19, :lo12:.LANCHOR4 - ldr w2, [x26,4] - add x0, x1, 1072 - ldr w6, [x0,8] - cmp w6, w2 - bcs .L1962 - ldrh w2, [x1,1072] - strh w2, [x0,4] - strh w25, [x1,1072] - ldr w1, [x26,4] - str w1, [x0,8] - b .L1938 -.L1962: - strh w25, [x0,4] - b .L1938 +.L1925: + ldr w0, [x20, 4] + ldr w1, [x27, 8] + cmp w1, w0 + bcs .L1926 + ldrh w0, [x27] + strh w0, [x27, 4] + strh w28, [x27] + ldr w0, [x20, 4] + str w0, [x27, 8] + b .L1902 +.L1926: + strh w28, [x27, 4] + b .L1902 +.L1930: + ldr x1, [x19, 2720] + ldrh w0, [x1] + cbz w0, .L1932 .L1935: - ldrb w1, [x0,1220] - mov w0, w25 - cbz w1, .L1963 -.L1999: - mov w1, 0 -.L1963: - bl FtlFreeSysBlkQueueIn -.L1938: - add x23, x23, 1 - b .L1930 -.L1929: - add w21, w21, 1 - uxth w21, w21 - b .L1925 -.L1966: - ldr x2, [x1,2720] - ldrh w0, [x2] - cbz w0, .L1968 -.L1971: - add x1, x24, :lo12:.LANCHOR2 - ldr x2, [x1,2736] - ldrh w0, [x2] - cbz w0, .L1969 - b .L1992 -.L1968: - add x19, x19, :lo12:.LANCHOR4 - ldrh w4, [x19,1088] - cbz w4, .L1971 - ldr w1, [x1,2372] -.L1972: - cmp w0, w1 - bcs .L1971 - ldrh w4, [x2,w0,sxtw 1] - cbz w4, .L1973 - mov w7, w0 -.L1974: - add x1, x24, :lo12:.LANCHOR2 - ldr w2, [x1,2372] - cmp w0, w2 - bcs .L1971 - sxtw x6, w0 - sub w2, w0, w7 - ldr x5, [x1,2720] - lsl x4, x6, 1 - sxtw x2, w2 - add w0, w0, 1 - ldrh w8, [x5,x4] - sxth w0, w0 - strh w8, [x5,x2,lsl 1] - ldr x5, [x1,2784] - ldr w6, [x5,x6,lsl 2] - str w6, [x5,x2,lsl 2] - ldr x1, [x1,2720] - strh wzr, [x1,x4] - b .L1974 -.L1973: - add w0, w0, 1 - sxth w0, w0 - b .L1972 -.L1969: - ldrh w4, [x1,2920] - cbz w4, .L1992 - ldrh w1, [x1,2364] -.L1977: - cmp w0, w1 - mov w7, w0 - bge .L1992 - ldrh w4, [x2,w0,sxtw 1] - cbz w4, .L1978 -.L1979: - add x1, x24, :lo12:.LANCHOR2 - ldrh w2, [x1,2364] - cmp w0, w2 - bge .L1992 - sxtw x6, w0 - sub w2, w0, w7 - ldr x5, [x1,2736] - lsl x4, x6, 1 - sxtw x2, w2 - add w0, w0, 1 - ldrh w8, [x5,x4] - sxth w0, w0 - strh w8, [x5,x2,lsl 1] - ldr x5, [x1,2752] - ldr w6, [x5,x6,lsl 2] - str w6, [x5,x2,lsl 2] - ldr x1, [x1,2736] - strh wzr, [x1,x4] - b .L1979 -.L1978: - add w0, w0, 1 - sxth w0, w0 - b .L1977 -.L1992: + add x0, x21, :lo12:.LANCHOR2 + ldr x1, [x0, 2736] + ldrh w2, [x1] + cbz w2, .L1933 +.L1951: + ldp x19, x20, [sp, 16] 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 x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] + ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 128 ret +.L1932: + add x22, x22, :lo12:.LANCHOR4 + ldrh w0, [x22, 1088] + cbz w0, .L1935 + ldr w2, [x19, 2372] + mov w0, 0 +.L1936: + cmp w0, w2 + bcs .L1935 + ldrh w3, [x1, w0, sxtw 1] + cbz w3, .L1937 + mov w1, w0 + add x2, x21, :lo12:.LANCHOR2 +.L1938: + ldr w3, [x2, 2372] + cmp w1, w3 + bcs .L1935 + ldr x5, [x2, 2720] + sxtw x6, w1 + lsl x4, x6, 1 + sub w3, w1, w0 + sxtw x3, w3 + add w1, w1, 1 + sxth w1, w1 + ldrh w7, [x5, x4] + strh w7, [x5, x3, lsl 1] + ldr x5, [x2, 2784] + ldr w6, [x5, x6, lsl 2] + str w6, [x5, x3, lsl 2] + ldr x3, [x2, 2720] + strh wzr, [x3, x4] + b .L1938 +.L1937: + add w0, w0, 1 + sxth w0, w0 + b .L1936 +.L1933: + ldrh w2, [x0, 2920] + cbz w2, .L1951 + ldrh w2, [x0, 2364] + mov w0, 0 +.L1941: + mov w5, w0 + cmp w0, w2 + bge .L1951 + ldrh w3, [x1, w0, sxtw 1] + cbz w3, .L1942 + add x21, x21, :lo12:.LANCHOR2 +.L1943: + ldrh w1, [x21, 2364] + cmp w0, w1 + bge .L1951 + ldr x3, [x21, 2736] + sxtw x4, w0 + lsl x2, x4, 1 + sub w1, w0, w5 + sxtw x1, w1 + add w0, w0, 1 + sxth w0, w0 + ldrh w6, [x3, x2] + strh w6, [x3, x1, lsl 1] + ldr x3, [x21, 2752] + ldr w4, [x3, x4, lsl 2] + str w4, [x3, x1, lsl 2] + ldr x1, [x21, 2736] + strh wzr, [x1, x2] + b .L1943 +.L1942: + add w0, w0, 1 + sxth w0, w0 + b .L1941 .size FtlScanSysBlk, .-FtlScanSysBlk .align 2 .global FtlLoadEctTbl @@ -12390,31 +12170,31 @@ FtlLoadEctTbl: stp x29, x30, [sp, -32]! mov w0, 64 add x29, sp, 0 - str x19, [sp,16] + str x19, [sp, 16] adrp x19, .LANCHOR2 add x19, x19, :lo12:.LANCHOR2 - ldrh w1, [x19,2672] - ldr x2, [x19,2688] + ldrh w1, [x19, 2672] + ldr x2, [x19, 2688] bl FtlVendorPartRead - ldr x0, [x19,2688] + ldr x0, [x19, 2688] ldr w1, [x0] mov w0, 17221 movk w0, 0x4254, lsl 16 cmp w1, w0 - beq .L2006 - adrp x0, .LC47 - adrp x1, .LC48 - add x1, x1, :lo12:.LC48 - add x0, x0, :lo12:.LC47 + beq .L1967 + adrp x1, .LC47 + adrp x0, .LC48 + add x1, x1, :lo12:.LC47 + add x0, x0, :lo12:.LC48 bl printk - ldrh w2, [x19,2672] + ldr x0, [x19, 2688] mov w1, 0 - ldr x0, [x19,2688] + ldrh w2, [x19, 2672] lsl w2, w2, 9 bl ftl_memset -.L2006: +.L1967: mov w0, 0 - ldr x19, [sp,16] + ldr x19, [sp, 16] ldp x29, x30, [sp], 32 ret .size FtlLoadEctTbl, .-FtlLoadEctTbl @@ -12422,36 +12202,35 @@ FtlLoadEctTbl: .global ftl_set_blk_mode .type ftl_set_blk_mode, %function ftl_set_blk_mode: + and w0, w0, 65535 + cbz w1, .L1970 stp x29, x30, [sp, -16]! - uxth w0, w0 add x29, sp, 0 - cbz w1, .L2008 bl ftl_set_blk_mode.part.17 - b .L2007 -.L2008: - adrp x1, .LANCHOR0+16 + ldp x29, x30, [sp], 16 + ret +.L1970: + adrp x1, .LANCHOR0+80 ubfx x2, x0, 5, 11 lsl x2, x2, 2 - ldr x3, [x1,#:lo12:.LANCHOR0+16] + ldr x3, [x1, #:lo12:.LANCHOR0+80] mov w1, 1 lsl w0, w1, w0 - ldr w1, [x3,x2] + ldr w1, [x3, x2] bic w0, w1, w0 - str w0, [x3,x2] -.L2007: - ldp x29, x30, [sp], 16 + str w0, [x3, x2] ret .size ftl_set_blk_mode, .-ftl_set_blk_mode .align 2 .global ftl_get_blk_mode .type ftl_get_blk_mode, %function ftl_get_blk_mode: - adrp x1, .LANCHOR0+16 - uxth w0, w0 - ubfx x2, x0, 5, 11 - ldr x1, [x1,#:lo12:.LANCHOR0+16] - ldr w1, [x1,x2,lsl 2] - lsr w0, w1, w0 + and w1, w0, 65535 + adrp x0, .LANCHOR0+80 + ldr x0, [x0, #:lo12:.LANCHOR0+80] + ubfx x2, x1, 5, 11 + ldr w0, [x0, x2, lsl 2] + lsr w0, w0, w1 and w0, w0, 1 ret .size ftl_get_blk_mode, .-ftl_get_blk_mode @@ -12459,211 +12238,199 @@ ftl_get_blk_mode: .global FtlCheckVpc .type FtlCheckVpc, %function FtlCheckVpc: - stp x29, x30, [sp, -128]! + stp x29, x30, [sp, -112]! adrp x1, .LANCHOR3 - adrp x0, .LC49 add x1, x1, :lo12:.LANCHOR3 + adrp x0, .LC49 add x29, sp, 0 - add x1, x1, 152 - add x0, x0, :lo12:.LC49 - stp x19, x20, [sp,16] - adrp x20, .LANCHOR4 - mov w19, 0 - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] - stp x27, x28, [sp,80] - add x21, x20, :lo12:.LANCHOR4 - bl printk - add x0, x21, 1096 - mov w1, 0 - mov x2, 8192 - adrp x22, .LANCHOR2 - bl memset -.L2012: - add x0, x22, :lo12:.LANCHOR2 - adrp x23, .LANCHOR2 - ldr w0, [x0,2924] - cmp w19, w0 - bcs .L2031 - mov w0, w19 - add x1, x29, 124 - mov w2, 0 - bl log2phys - ldr w0, [x29,124] - cmn w0, #1 - beq .L2013 - lsr w0, w0, 10 - bl P2V_block_in_plane - uxth w0, w0 - add x2, x21, 1096 - ldrh w1, [x2,w0,sxtw 1] - add w1, w1, 1 - strh w1, [x2,w0,sxtw 1] -.L2013: - add w19, w19, 1 - b .L2012 -.L2031: - mov w21, 0 - adrp x24, .LC50 - mov w19, w21 - add x27, x20, :lo12:.LANCHOR4 - add x24, x24, :lo12:.LC50 - mov w28, 65535 -.L2015: - add x22, x23, :lo12:.LANCHOR2 - ldrh w0, [x22,2284] - cmp w0, w19 - bls .L2032 - ubfiz x26, x19, 1, 16 - ldr x0, [x22,2712] - add x25, x27, 1096 - sxtw x4, w19 - ldrh w2, [x0,x26] - ldrh w3, [x25,w19,sxtw 1] - cmp w2, w3 - beq .L2016 - mov x0, x24 - mov w1, w19 - str x4, [x29,104] - bl printk - ldr x0, [x22,2712] - ldrh w0, [x0,x26] - cmp w0, w28 - beq .L2016 - ldr x4, [x29,104] - ldrh w1, [x25,x4,lsl 1] - cmp w1, w0 - csinc w21, w21, wzr, ls -.L2016: - add w19, w19, 1 - uxth w19, w19 - b .L2015 -.L2032: - add x2, x20, :lo12:.LANCHOR4 - ldr x0, [x2,768] - cbz x0, .L2018 - ldr x19, [x22,2808] - adrp x24, .LC51 - ldrh w25, [x2,776] + stp x19, x20, [sp, 16] + adrp x20, .LANCHOR2 + stp x23, x24, [sp, 48] + add x23, x20, :lo12:.LANCHOR2 + stp x21, x22, [sp, 32] mov w22, 0 - sub x19, x0, x19 + add x1, x1, 152 + stp x25, x26, [sp, 64] + stp x27, x28, [sp, 80] + add x0, x0, :lo12:.LC49 + adrp x21, check_valid_page_count_table + bl printk + add x19, x21, :lo12:check_valid_page_count_table + mov x2, 8192 + mov w1, 0 + mov x0, x19 + bl memset +.L1978: + ldr w0, [x23, 2924] + cmp w22, w0 + bcc .L1980 + adrp x24, .LC50 + add x22, x20, :lo12:.LANCHOR2 + add x25, x21, :lo12:check_valid_page_count_table + add x24, x24, :lo12:.LC50 + mov w23, 0 + mov w19, 0 + mov w28, 65535 +.L1981: + ldrh w0, [x22, 2284] + cmp w0, w19 + bhi .L1983 + adrp x0, .LANCHOR4 + add x0, x0, :lo12:.LANCHOR4 + ldr x19, [x0, 768] + cbz x19, .L1984 + ldrh w25, [x0, 776] + adrp x24, .LC51 + ldr x0, [x22, 2808] + add x20, x20, :lo12:.LANCHOR2 + add x21, x21, :lo12:check_valid_page_count_table + add x24, x24, :lo12:.LC51 + sub x19, x19, x0 mov x0, -6148914691236517206 asr x19, x19, 1 - add x24, x24, :lo12:.LC51 - mov x20, x2 + movk x0, 0xaaab, lsl 0 mov w26, 6 - madd x19, x0, x19, x19 - mov w27, 65535 - uxth w19, w19 -.L2019: + mov w22, 0 + mul x19, x19, x0 + and w19, w19, 65535 +.L1985: cmp w22, w25 - beq .L2018 - add x1, x23, :lo12:.LANCHOR2 - ubfiz x0, x19, 1, 16 - ldr x1, [x1,2712] - ldrh w2, [x1,x0] - cbz w2, .L2020 - add x3, x20, 1096 - mov x0, x24 - mov w1, w19 - mov w21, 1 - ldrh w3, [x3,w19,sxtw 1] - bl printk -.L2020: - add x0, x23, :lo12:.LANCHOR2 - umull x19, w19, w26 - ldr x0, [x0,2808] - ldrh w19, [x0,x19] - cmp w19, w27 - beq .L2018 - add w22, w22, 1 - uxth w22, w22 - b .L2019 -.L2018: + bne .L1987 +.L1984: + mov w1, w23 adrp x0, .LC52 - mov w1, w21 add x0, x0, :lo12:.LC52 bl printk - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 128 + 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 +.L1980: + mov w2, 0 + add x1, x29, 108 + mov w0, w22 + bl log2phys + ldr w0, [x29, 108] + cmn w0, #1 + beq .L1979 + lsr w0, w0, 10 + bl P2V_block_in_plane + and x0, x0, 65535 + ldrh w1, [x19, x0, lsl 1] + add w1, w1, 1 + strh w1, [x19, x0, lsl 1] +.L1979: + add w22, w22, 1 + b .L1978 +.L1983: + ldr x0, [x22, 2712] + ubfiz x27, x19, 1, 16 + sxtw x26, w19 + ldrh w2, [x0, x27] + ldrh w3, [x25, x26, lsl 1] + cmp w2, w3 + beq .L1982 + mov w1, w19 + mov x0, x24 + bl printk + ldr x0, [x22, 2712] + ldrh w0, [x0, x27] + cmp w0, w28 + beq .L1982 + ldrh w1, [x25, x26, lsl 1] + cmp w1, w0 + csinc w23, w23, wzr, ls +.L1982: + add w19, w19, 1 + and w19, w19, 65535 + b .L1981 +.L1987: + ldr x1, [x20, 2712] + ubfiz x0, x19, 1, 16 + ldrh w2, [x1, x0] + cbz w2, .L1986 + ldrh w3, [x21, w19, sxtw 1] + mov w23, 1 + mov w1, w19 + mov x0, x24 + bl printk +.L1986: + ldr x0, [x20, 2808] + umull x19, w19, w26 + ldrh w19, [x0, x19] + mov w0, 65535 + cmp w19, w0 + beq .L1984 + add w22, w22, 1 + and w22, w22, 65535 + b .L1985 .size FtlCheckVpc, .-FtlCheckVpc .align 2 .global FtlDumpSysBlock .type FtlDumpSysBlock, %function FtlDumpSysBlock: - sub sp, sp, #96 - adrp x2, .LANCHOR2 - add x2, x2, :lo12:.LANCHOR2 - stp x29, x30, [sp,16] + sub sp, sp, #80 + stp x29, x30, [sp, 16] add x29, sp, 16 - stp x19, x20, [sp,32] - stp x21, x22, [sp,48] - stp x23, x24, [sp,64] - str x25, [sp,80] - add x19, x2, 2936 - uxth w23, w0 - adrp x22, .LC53 - ldr x0, [x2,2576] - adrp x25, .LC54 - str x0, [x19,8] + stp x23, x24, [sp, 64] + and w23, w0, 65535 + adrp x0, .LANCHOR2 + add x0, x0, :lo12:.LANCHOR2 + stp x19, x20, [sp, 32] + add x19, x0, 2936 + stp x21, x22, [sp, 48] lsl w24, w23, 10 - ldr x0, [x2,2640] - mov w20, 0 - str x0, [x19,16] - mov x21, x2 + adrp x22, .LC53 + mov x21, x0 + ldr x1, [x0, 2576] add x22, x22, :lo12:.LC53 - add x25, x25, :lo12:.LC54 -.L2034: - ldrh w0, [x21,2346] + str x1, [x19, 8] + mov w20, 0 + ldr x1, [x0, 2640] + str x1, [x19, 16] +.L1999: + ldrh w0, [x21, 2346] cmp w20, w0 - bge .L2040 - mov w1, 1 + blt .L2001 + ldp x19, x20, [sp, 32] + ldp x21, x22, [sp, 48] + ldp x23, x24, [sp, 64] + ldp x29, x30, [sp, 16] + add sp, sp, 80 + ret +.L2001: orr w0, w20, w24 - mov w2, w1 - str w0, [x19,4] + mov w2, 1 + str w0, [x19, 4] + mov w1, w2 mov x0, x19 bl FlashReadPages - ldr x0, [x19,8] + ldp x1, x0, [x19, 8] + ldr w1, [x1] + str w1, [sp] mov w1, w23 - ldr x7, [x19,16] - ldr w0, [x0] - str w0, [sp] + ldp w4, w5, [x0] + ldp w6, w7, [x0, 8] mov x0, x22 - ldr w4, [x7] - ldr w5, [x7,4] - ldr w6, [x7,8] - ldr w2, [x19] - ldr w3, [x19,4] - ldr w7, [x7,12] + ldp w2, w3, [x19] bl printk - ldr x0, [x19,16] + ldr x0, [x19, 16] ldr w0, [x0] cmn w0, #1 - beq .L2035 - ldr x1, [x21,2576] - mov x0, x25 - mov w2, 4 + beq .L2000 + ldr x1, [x21, 2576] + adrp x0, .LC54 mov w3, 768 + mov w2, 4 + add x0, x0, :lo12:.LC54 bl rknand_print_hex -.L2035: +.L2000: add w20, w20, 1 sxth w20, w20 - b .L2034 -.L2040: - sub sp, x29, #16 - ldp x19, x20, [sp,32] - ldp x21, x22, [sp,48] - ldp x23, x24, [sp,64] - ldr x25, [sp,80] - ldp x29, x30, [sp,16] - add sp, sp, 96 - ret + b .L1999 .size FtlDumpSysBlock, .-FtlDumpSysBlock .align 2 .global Ftlscanalldata @@ -12671,520 +12438,497 @@ FtlDumpSysBlock: Ftlscanalldata: sub sp, sp, #96 adrp x0, .LC55 - add x0, x0, :lo12:.LC55 mov w1, 0 - stp x29, x30, [sp,16] + add x0, x0, :lo12:.LC55 + stp x29, x30, [sp, 16] add x29, sp, 16 - stp x23, x24, [sp,64] - adrp x23, .LANCHOR2 - stp x21, x22, [sp,48] - adrp x21, .LC56 - add x22, x23, :lo12:.LANCHOR2 - stp x19, x20, [sp,32] - add x21, x21, :lo12:.LC56 + stp x21, x22, [sp, 48] + adrp x22, .LANCHOR2 + add x21, x22, :lo12:.LANCHOR2 + stp x19, x20, [sp, 32] + str x23, [sp, 64] mov w20, 0 - add x19, x22, 2936 + add x19, x21, 2936 bl printk -.L2042: - add x0, x23, :lo12:.LANCHOR2 - ldr w0, [x0,2924] +.L2007: + add x0, x22, :lo12:.LANCHOR2 + ldr w0, [x0, 2924] cmp w20, w0 - bcs .L2049 - mov w0, w20 - add x1, x29, 76 - mov w2, 0 - bl log2phys - and w0, w20, 2047 - cbnz w0, .L2043 - ldr w2, [x29,76] - mov x0, x21 - mov w1, w20 - bl printk -.L2043: - ldr w0, [x29,76] - cmn w0, #1 - beq .L2045 - str w0, [x19,4] - mov w1, 1 - ldr x0, [x22,2576] - mov w2, 0 - str x0, [x19,8] - mov x0, x19 - ldr x24, [x22,2640] - str w20, [x19,24] - str x24, [x19,16] - str wzr, [x19] - bl FlashReadPages - ldr w0, [x19] - cmn w0, #1 - beq .L2046 - cmp w0, 256 - beq .L2046 - ldr w0, [x24,8] - cmp w0, w20 - beq .L2045 -.L2046: - ldr x7, [x19,8] - mov w1, w20 - ldr x6, [x19,16] - ldr w0, [x7,4] - str w0, [sp] - adrp x0, .LC57 - add x0, x0, :lo12:.LC57 - ldr w3, [x6] - ldr w4, [x6,4] - ldr w5, [x6,8] - ldr w2, [x19,4] - ldr w6, [x6,12] - ldr w7, [x7] - bl printk -.L2045: - add w20, w20, 1 - b .L2042 -.L2049: - sub sp, x29, #16 - ldp x19, x20, [sp,32] - ldp x21, x22, [sp,48] - ldp x23, x24, [sp,64] - ldp x29, x30, [sp,16] + bcc .L2013 + ldp x19, x20, [sp, 32] + ldp x21, x22, [sp, 48] + ldp x29, x30, [sp, 16] + ldr x23, [sp, 64] add sp, sp, 96 ret +.L2013: + mov w2, 0 + add x1, x29, 76 + mov w0, w20 + bl log2phys + tst x20, 2047 + bne .L2008 + ldr w2, [x29, 76] + adrp x0, .LC56 + mov w1, w20 + add x0, x0, :lo12:.LC56 + bl printk +.L2008: + ldr w0, [x29, 76] + cmn w0, #1 + beq .L2010 + ldr x23, [x21, 2640] + mov w2, 0 + stp wzr, w0, [x19] + mov w1, 1 + ldr x0, [x21, 2576] + str x0, [x19, 8] + mov x0, x19 + str x23, [x19, 16] + str w20, [x19, 24] + bl FlashReadPages + ldr w0, [x19] + cmp w0, 256 + ccmn w0, #1, 4, ne + beq .L2011 + ldr w0, [x23, 8] + cmp w20, w0 + beq .L2010 +.L2011: + ldp x1, x0, [x19, 8] + ldr w2, [x1, 4] + str w2, [sp] + ldp w3, w4, [x0] + ldp w5, w6, [x0, 8] + adrp x0, .LC57 + ldr w7, [x1] + add x0, x0, :lo12:.LC57 + ldr w2, [x19, 4] + mov w1, w20 + bl printk +.L2010: + add w20, w20, 1 + b .L2007 .size Ftlscanalldata, .-Ftlscanalldata .align 2 .global dump_map_info .type dump_map_info, %function dump_map_info: - sub sp, sp, #128 - stp x29, x30, [sp,16] + sub sp, sp, #96 + stp x29, x30, [sp, 16] add x29, sp, 16 - stp x19, x20, [sp,32] + stp x19, x20, [sp, 32] adrp x19, .LANCHOR2 add x0, x19, :lo12:.LANCHOR2 - stp x25, x26, [sp,80] - stp x23, x24, [sp,64] - stp x27, x28, [sp,96] - stp x21, x22, [sp,48] - adrp x24, .LC58 - mov w25, 56 - ldrh w22, [x0,2284] - mov w26, 4 - mov x27, 56 - add x24, x24, :lo12:.LC58 -.L2051: - add x20, x19, :lo12:.LANCHOR2 - ldrh w0, [x20,2286] + stp x23, x24, [sp, 64] + stp x21, x22, [sp, 48] + add x24, x0, 2304 + stp x25, x26, [sp, 80] + mov x21, x19 + mov x19, x0 + mov w23, 56 + ldrh w22, [x0, 2284] +.L2016: + ldrh w0, [x19, 2286] cmp w0, w22 - bls .L2064 - mov x23, 0 - ldrh w3, [x20,2276] - ldrh w2, [x20,2356] - mov w21, w23 -.L2060: - cmp w3, w23, uxth - bls .L2065 - add x0, x20, 2304 - mov w1, w22 - str x2, [x29,96] - str x3, [x29,104] - ldrb w0, [x0,x23] - bl V2P_block - uxth w28, w0 - bl FtlBbmIsBadBlock - ldr x3, [x29,104] - ldr x2, [x29,96] - cbnz w0, .L2052 - umull x0, w21, w25 - ldr x1, [x20,2520] - lsl w28, w28, 10 - add x1, x1, x0 - str w28, [x1,4] - ldr x1, [x20,2520] - ldr x4, [x20,2656] - add x0, x1, x0 - ldr x1, [x20,2600] - str x1, [x0,8] - mul w1, w21, w2 - add w21, w21, 1 - sdiv w1, w1, w26 - uxth w21, w21 - add x1, x4, w1, sxtw 2 - str x1, [x0,16] -.L2052: - add x23, x23, 1 - b .L2060 -.L2065: - cbz w21, .L2055 - add x0, x19, :lo12:.LANCHOR2 - mov w1, w21 - mov w2, 1 - mov x20, 0 - ldr x0, [x0,2520] - bl FlashReadPages -.L2056: - cmp w21, w20, uxth - bls .L2055 - add x0, x19, :lo12:.LANCHOR2 - ldr x0, [x0,2520] - madd x0, x20, x27, x0 - add x20, x20, 1 - ldr x7, [x0,8] - ldr x6, [x0,16] - ldr w2, [x0,4] - ldr w0, [x7,4] - str w0, [sp] - ubfx x1, x2, 10, 16 - mov x0, x24 - ldr w3, [x6] - ldr w4, [x6,4] - ldr w5, [x6,8] - ldr w7, [x7] - ldr w6, [x6,12] - bl printk - b .L2056 -.L2055: - add w22, w22, 1 - uxth w22, w22 - b .L2051 -.L2064: - adrp x23, .LC59 - mov w22, 0 + bhi .L2022 + add x25, x21, :lo12:.LANCHOR2 adrp x26, .LANCHOR4 - add x25, x20, 2936 - add x23, x23, :lo12:.LC59 -.L2059: - add x1, x26, :lo12:.LANCHOR4 - ldrh w1, [x1,1088] - cmp w22, w1 - bge .L2062 - sbfiz x24, x22, 1, 32 - mov w21, 0 -.L2063: - ldrh w0, [x20,2346] - cmp w21, w0 - bge .L2066 - ldr x0, [x20,2720] - ldrh w1, [x0,x24] - mov x0, x25 - orr w1, w21, w1, lsl 10 - str w1, [x25,4] - mov w1, 1 - add w21, w21, 1 - mov w2, w1 - sxth w21, w21 - bl FlashReadPages - ldr x2, [x25,8] - ldr x0, [x20,2720] - ldr x7, [x25,16] - ldrh w1, [x0,x24] - ldr w0, [x2] - str w0, [sp] - ldr w0, [x2,4] - str w0, [sp,8] - mov x0, x23 - ldr w4, [x7] - ldr w5, [x7,4] - ldr w6, [x7,8] - ldr w2, [x25] - ldr w3, [x25,4] - ldr w7, [x7,12] - bl printk - b .L2063 -.L2066: + add x24, x25, 2936 + add x26, x26, :lo12:.LANCHOR4 + mov w20, 0 +.L2023: + ldrh w0, [x26, 1088] + cmp w20, w0 + bge .L2026 + adrp x0, .LC59 + sbfiz x22, x20, 1, 32 + mov w19, 0 + add x23, x0, :lo12:.LC59 + b .L2027 +.L2018: + ldrb w0, [x24, x5] + mov w1, w22 + bl V2P_block + and w4, w0, 65535 + bl FtlBbmIsBadBlock + cbnz w0, .L2017 + umull x2, w20, w23 + ldr x0, [x19, 2520] + lsl w4, w4, 10 + add x0, x0, x2 + str w4, [x0, 4] + ldr x1, [x19, 2520] + ldr x0, [x19, 2600] + add x1, x1, x2 + ldr x2, [x19, 2656] + str x0, [x1, 8] + mul w0, w20, w7 + add w20, w20, 1 + and w20, w20, 65535 + sdiv w0, w0, w6 + add x0, x2, w0, sxtw 2 + str x0, [x1, 16] +.L2017: + add x5, x5, 1 +.L2024: + cmp w8, w5, uxth + bhi .L2018 + cbnz w20, .L2019 +.L2021: add w22, w22, 1 - sxth w22, w22 - b .L2059 -.L2062: - add x19, x19, :lo12:.LANCHOR2 + and w22, w22, 65535 + b .L2016 +.L2019: + ldr x0, [x19, 2520] + mov w1, w20 + adrp x26, .LC58 + mov w2, 1 + umull x20, w20, w23 + mov x25, 0 + add x26, x26, :lo12:.LC58 + bl FlashReadPages +.L2020: + ldr x0, [x19, 2520] + add x0, x0, x25 + add x25, x25, 56 + ldr x1, [x0, 16] + ldr w2, [x0, 4] + ldr x0, [x0, 8] + ldr w3, [x0, 4] + str w3, [sp] + ldr w7, [x0] + mov x0, x26 + ldp w3, w4, [x1] + ldp w5, w6, [x1, 8] + ubfx x1, x2, 10, 16 + bl printk + cmp x25, x20 + beq .L2021 + b .L2020 +.L2022: + ldrh w8, [x19, 2276] + mov x5, 0 + ldrh w7, [x19, 2356] + mov w20, 0 + mov w6, 4 + b .L2024 +.L2025: + ldr x0, [x25, 2720] + mov w2, 1 + mov w1, w2 + ldrh w0, [x0, x22] + orr w0, w19, w0, lsl 10 + str w0, [x24, 4] + mov x0, x24 + bl FlashReadPages + ldp x2, x0, [x24, 8] + add w19, w19, 1 + ldr x1, [x25, 2720] + sxth w19, w19 + ldr w3, [x2, 4] + ldrh w1, [x1, x22] + str w3, [sp, 8] + ldr w2, [x2] + str w2, [sp] + ldp w4, w5, [x0] + ldp w6, w7, [x0, 8] + mov x0, x23 + ldp w2, w3, [x24] + bl printk +.L2027: + ldrh w0, [x25, 2346] + cmp w19, w0 + blt .L2025 + add w20, w20, 1 + sxth w20, w20 + b .L2023 +.L2026: + add x21, x21, :lo12:.LANCHOR2 + mov w2, 2 adrp x0, .LC60 add x0, x0, :lo12:.LC60 - mov w2, 2 - ldr x1, [x19,2720] - ldr w3, [x19,2372] + ldr w3, [x21, 2372] + ldr x1, [x21, 2720] bl rknand_print_hex - ldr x1, [x19,2768] + ldrh w3, [x21, 2380] + mov w2, 4 + ldr x1, [x21, 2768] adrp x0, .LC61 - ldrh w3, [x19,2380] add x0, x0, :lo12:.LC61 - mov w2, 4 bl rknand_print_hex - ldr x1, [x19,2776] + ldrh w3, [x21, 2380] + mov w2, 4 + ldr x1, [x21, 2776] adrp x0, .LC62 - ldrh w3, [x19,2380] add x0, x0, :lo12:.LC62 - mov w2, 4 bl rknand_print_hex - 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, 128 + ldp x19, x20, [sp, 32] + ldp x21, x22, [sp, 48] + ldp x23, x24, [sp, 64] + ldp x25, x26, [sp, 80] + ldp x29, x30, [sp, 16] + add sp, sp, 96 ret .size dump_map_info, .-dump_map_info .align 2 .global FtlMapTblRecovery .type FtlMapTblRecovery, %function FtlMapTblRecovery: - stp x29, x30, [sp, -144]! + stp x29, x30, [sp, -128]! mov w1, 0 add x29, sp, 0 - stp x19, x20, [sp,16] - stp x21, x22, [sp,32] - stp x25, x26, [sp,64] - stp x27, x28, [sp,80] - stp x23, x24, [sp,48] - mov x27, x0 + stp x19, x20, [sp, 16] adrp x20, .LANCHOR2 - ldr x22, [x0,40] + stp x21, x22, [sp, 32] + mov x22, x0 + stp x25, x26, [sp, 64] mov w19, 0 - ldrh w24, [x0,6] - ldr x23, [x0,16] - ldr x26, [x0,24] + stp x23, x24, [sp, 48] + adrp x25, .LANCHOR0 + stp x27, x28, [sp, 80] + ldrh w24, [x0, 6] + ldr x0, [x0, 40] + str x0, [x29, 120] + ldrh w0, [x22, 8] lsl w2, w24, 2 - ldrh w0, [x0,8] - str w0, [x29,136] - mov x0, x22 + str w0, [x29, 116] + ldr x0, [x29, 120] + ldp x23, x27, [x22, 16] bl ftl_memset - str x20, [x29,128] - add x6, x20, :lo12:.LANCHOR2 - str wzr, [x27,52] - add x4, x6, 2936 - str wzr, [x27,48] - mov x20, x6 - mov x25, x4 - ldr x0, [x6,2576] - ldr x21, [x6,2640] - str x0, [x6,2944] + stp wzr, wzr, [x22, 48] + add x4, x20, :lo12:.LANCHOR2 mov w0, -1 - str x21, [x6,2952] - strh w0, [x27] - strh w0, [x27,2] + mov x26, x4 + ldr x1, [x4, 2576] + ldr x21, [x4, 2640] + str x1, [x4, 2944] + str x21, [x4, 2952] + strh w0, [x22] + strh w0, [x22, 2] mov w0, 1 - str w0, [x27,56] - ldr w0, [x29,136] + str w0, [x22, 56] + ldr w0, [x29, 116] sub w0, w0, #1 - str w0, [x29,116] -.L2068: - ldr w0, [x29,136] + str w0, [x29, 112] + add x0, x25, :lo12:.LANCHOR0 + str x0, [x29, 96] +.L2031: + ldr w0, [x29, 116] cmp w19, w0 - bge .L2086 - ldr w0, [x29,116] + bge .L2050 + ldr w0, [x29, 112] sxtw x28, w19 cmp w19, w0 - bne .L2069 + bne .L2032 lsl x0, x28, 1 mov w1, 1 add x25, x23, x0 - mov w20, 0 - ldrh w0, [x23,x0] - bl FtlGetLastWrittenPage - strh w19, [x27] - sxth w1, w0 - add w0, w0, 1 - 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, 2936 -.L2070: - cmp w20, w19 - bge .L2086 - ldrh w0, [x25] - mov w1, 1 - mov w2, w1 - orr w0, w20, w0, lsl 10 - str w0, [x28,4] - mov x0, x28 - bl FlashReadPages - add x0, x26, :lo12:.LANCHOR0 - ldrb w0, [x0,88] - cbz w0, .L2071 - ldr x0, [x28,16] - ldr w2, [x0,12] - cbz w2, .L2071 - ldr x0, [x28,8] - ldrh w1, [x23,2354] - str x2, [x29,136] - bl js_hash - ldr x2, [x29,136] - cmp w2, w0 - beq .L2071 - mov w0, -1 - str w0, [x28] -.L2071: - ldr w0, [x28] - cmn w0, #1 - beq .L2072 - ldrh w0, [x21,8] - cmp w0, w24 - bcs .L2072 - ldrh w2, [x21] - ldrh w1, [x27,4] - cmp w2, w1 - bne .L2072 - ubfiz x0, x0, 2, 16 - ldr w1, [x28,4] - str w1, [x22,x0] -.L2072: - add w4, w20, 1 - sxth w20, w4 - b .L2070 -.L2086: - mov x0, x27 + add x26, x26, :lo12:.LANCHOR0 + ldrh w0, [x23, x0] + bl FtlGetLastWrittenPage + strh w19, [x22] + sxth w23, w0 + add w0, w0, 1 + strh w0, [x22, 2] + add w23, w23, 1 + ldr w0, [x27, x28, lsl 2] + add x27, x20, :lo12:.LANCHOR2 + add x19, x27, 2936 + mov w28, 0 + str w0, [x22, 48] +.L2033: + cmp w28, w23 + blt .L2036 +.L2050: + add x20, x20, :lo12:.LANCHOR2 + mov x0, x22 bl ftl_free_no_use_map_blk - ldr x0, [x29,128] - ldrh w1, [x27,2] - add x20, x0, :lo12:.LANCHOR2 - ldrh w0, [x20,2346] + ldrh w1, [x22, 2] + ldrh w0, [x20, 2346] cmp w1, w0 - bne .L2075 - mov x0, x27 + bne .L2038 + mov x0, x22 bl ftl_map_blk_alloc_new_blk - b .L2075 -.L2069: - ldr x0, [x20,2576] - str x0, [x25,8] - lsl x0, x28, 1 - add x1, x23, x0 - str x1, [x29,120] - ldrh w1, [x23,x0] - ldrh w0, [x20,2346] - sub w0, w0, #1 - orr w0, w0, w1, lsl 10 - mov w1, 1 - str w0, [x25,4] - mov w2, w1 - mov x0, x25 - bl FlashReadPages - ldr w0, [x25] - cmn w0, #1 - beq .L2087 - ldrh w1, [x21] - mov w28, 0 - ldrh w0, [x27,4] - cmp w1, w0 - bne .L2108 - ldrh w1, [x21,8] - mov w0, 64245 - cmp w1, w0 - bne .L2108 - mov w5, w28 -.L2077: - ldrh w0, [x20,2346] - sub w0, w0, #1 - cmp w5, w0 - bge .L2080 - ldr x2, [x20,2576] - sbfiz x1, x5, 3, 32 - ldrh w0, [x2,x1] - cmp w0, w24 - bcs .L2078 - add x1, x2, x1 - ubfiz x0, x0, 2, 16 - ldr w1, [x1,4] - str w1, [x22,x0] -.L2078: - add w5, w5, 1 - sxth w5, w5 - b .L2077 -.L2087: - mov w28, 0 -.L2108: - ldrh w0, [x20,2346] - cmp w28, w0 - bge .L2080 - ldr x0, [x29,120] - mov w1, 1 - mov w2, w1 - ldrh w0, [x0] - orr w0, w28, w0, lsl 10 - str w0, [x25,4] - mov x0, x25 - bl FlashReadPages - adrp x0, .LANCHOR0 - add x0, x0, :lo12:.LANCHOR0 - ldrb w0, [x0,88] - cbz w0, .L2081 - ldr x0, [x25,16] - ldr w2, [x0,12] - cbz w2, .L2081 - ldr x0, [x25,8] - ldrh w1, [x20,2354] - str x2, [x29,104] - bl js_hash - ldr x2, [x29,104] - cmp w2, w0 - beq .L2081 - mov w0, -1 - str w0, [x25] -.L2081: - ldr w0, [x25] - cmn w0, #1 - beq .L2082 - ldrh w0, [x21,8] - cmp w0, w24 - bcs .L2082 - ldrh w2, [x21] - ldrh w1, [x27,4] - cmp w2, w1 - bne .L2082 - ubfiz x0, x0, 2, 16 - ldr w1, [x25,4] - str w1, [x22,x0] -.L2082: - add w5, w28, 1 - sxth w28, w5 - b .L2108 -.L2080: - add w19, w19, 1 - sxth w19, w19 - b .L2068 -.L2075: - mov x0, x27 +.L2038: + mov x0, x22 bl ftl_map_blk_gc - mov x0, x27 + mov x0, x22 bl ftl_map_blk_gc mov w0, 0 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 144 + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] + ldp x27, x28, [sp, 80] + ldp x29, x30, [sp], 128 ret +.L2036: + ldrh w0, [x25] + mov w2, 1 + mov w1, w2 + orr w0, w28, w0, lsl 10 + str w0, [x19, 4] + mov x0, x19 + bl FlashReadPages + ldrb w0, [x26, 88] + cbz w0, .L2034 + ldr x0, [x19, 16] + ldr w6, [x0, 12] + cbz w6, .L2034 + ldrh w1, [x27, 2354] + ldr x0, [x19, 8] + bl js_hash + cmp w6, w0 + beq .L2034 + mov w0, -1 + str w0, [x19] +.L2034: + ldr w0, [x19] + cmn w0, #1 + beq .L2035 + ldrh w0, [x21, 8] + cmp w24, w0 + bls .L2035 + ldrh w2, [x21] + ldrh w1, [x22, 4] + cmp w2, w1 + bne .L2035 + ldr x2, [x29, 120] + ubfiz x0, x0, 2, 16 + ldr w1, [x19, 4] + str w1, [x2, x0] +.L2035: + add w28, w28, 1 + sxth w28, w28 + b .L2033 +.L2032: + add x0, x26, 2936 + ldr x1, [x26, 2576] + str x1, [x0, 8] + lsl x1, x28, 1 + add x2, x23, x1 + str x2, [x29, 104] + ldrh w2, [x26, 2346] + ldrh w1, [x23, x1] + sub w2, w2, #1 + orr w1, w2, w1, lsl 10 + mov w2, 1 + str w1, [x0, 4] + mov w1, w2 + bl FlashReadPages + ldr w0, [x26, 2936] + cmn w0, #1 + beq .L2052 + ldrh w1, [x21] + ldrh w0, [x22, 4] + cmp w1, w0 + bne .L2052 + ldrh w1, [x21, 8] + mov w0, 64245 + cmp w1, w0 + beq .L2040 +.L2052: + add x25, x26, 2936 + mov w28, 0 +.L2041: + ldrh w0, [x26, 2346] + cmp w28, w0 + bge .L2048 + ldr x0, [x29, 104] + mov w2, 1 + mov w1, w2 + ldrh w0, [x0] + orr w0, w28, w0, lsl 10 + str w0, [x25, 4] + mov x0, x25 + bl FlashReadPages + ldr x0, [x29, 96] + ldrb w0, [x0, 88] + cbz w0, .L2045 + ldr x0, [x25, 16] + ldr w6, [x0, 12] + cbz w6, .L2045 + ldrh w1, [x26, 2354] + ldr x0, [x25, 8] + bl js_hash + cmp w6, w0 + beq .L2045 + mov w0, -1 + str w0, [x25] +.L2045: + ldr w0, [x25] + cmn w0, #1 + beq .L2046 + ldrh w0, [x21, 8] + cmp w24, w0 + bls .L2046 + ldrh w2, [x21] + ldrh w1, [x22, 4] + cmp w2, w1 + bne .L2046 + ldr x2, [x29, 120] + ubfiz x0, x0, 2, 16 + ldr w1, [x25, 4] + str w1, [x2, x0] +.L2046: + add w5, w28, 1 + sxth w28, w5 + b .L2041 +.L2040: + mov w0, 0 +.L2042: + ldrh w1, [x26, 2346] + sub w1, w1, #1 + cmp w0, w1 + blt .L2044 +.L2048: + add w19, w19, 1 + sxth w19, w19 + b .L2031 +.L2044: + ldr x2, [x26, 2576] + sbfiz x5, x0, 3, 32 + ldrh w1, [x2, x5] + cmp w24, w1 + bls .L2043 + add x2, x2, x5 + ldr x3, [x29, 120] + ubfiz x1, x1, 2, 16 + ldr w2, [x2, 4] + str w2, [x3, x1] +.L2043: + add w0, w0, 1 + sxth w0, w0 + b .L2042 .size FtlMapTblRecovery, .-FtlMapTblRecovery .align 2 .global FtlLoadVonderInfo .type FtlLoadVonderInfo, %function FtlLoadVonderInfo: - adrp x0, .LANCHOR4 adrp x1, .LANCHOR2 - add x0, x0, :lo12:.LANCHOR4 add x1, x1, :lo12:.LANCHOR2 stp x29, x30, [sp, -16]! + adrp x0, .LANCHOR4 + add x0, x0, :lo12:.LANCHOR4 add x0, x0, 1000 add x29, sp, 0 - ldrh w2, [x1,2364] - strh w2, [x0,10] + ldrh w2, [x1, 2364] + strh w2, [x0, 10] mov w2, -3962 - strh w2, [x0,4] - ldrh w2, [x1,2920] - strh w2, [x0,8] - ldrh w2, [x1,2366] - strh w2, [x0,6] - ldr x2, [x1,2736] - str x2, [x0,16] - ldr x2, [x1,2752] - str x2, [x0,24] - ldr x2, [x1,2744] - ldr x1, [x1,2760] - str x2, [x0,32] - str x1, [x0,40] + strh w2, [x0, 4] + ldrh w2, [x1, 2920] + strh w2, [x0, 8] + ldrh w2, [x1, 2366] + strh w2, [x0, 6] + ldr x2, [x1, 2736] + str x2, [x0, 16] + ldr x2, [x1, 2752] + str x2, [x0, 24] + ldr x2, [x1, 2744] + ldr x1, [x1, 2760] + stp x2, x1, [x0, 32] bl FtlMapTblRecovery mov w0, 0 ldp x29, x30, [sp], 16 @@ -13195,72 +12939,71 @@ FtlLoadVonderInfo: .type FtlL2PDataInit, %function FtlL2PDataInit: stp x29, x30, [sp, -32]! + adrp x0, .LANCHOR2 mov w1, 0 add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x20, .LANCHOR2 - add x19, x20, :lo12:.LANCHOR2 - ldr w2, [x19,2372] - ldr x0, [x19,2728] + str x19, [sp, 16] + add x19, x0, :lo12:.LANCHOR2 + ldr x0, [x19, 2728] + ldr w2, [x19, 2372] lsl w2, w2, 1 bl ftl_memset - ldrh w3, [x19,2354] + ldrh w0, [x19, 2382] mov w1, 255 - ldrh w2, [x19,2382] - ldr x0, [x19,2800] - mul w2, w3, w2 + ldrh w2, [x19, 2354] + mul w2, w2, w0 + ldr x0, [x19, 2800] bl ftl_memset - mov w2, 0 - mov w4, -1 -.L2111: - add x0, x20, :lo12:.LANCHOR2 - ldrh w1, [x0,2382] - cmp w1, w2 - bls .L2113 - ldr x3, [x0,2792] - ubfiz x1, x2, 4, 16 - add x3, x3, x1 - str wzr, [x3,4] - ldr x3, [x0,2792] - strh w4, [x3,x1] - ldr x3, [x0,2792] - add x3, x3, x1 - ldrh w1, [x0,2354] - ldr x0, [x0,2800] - mul w1, w1, w2 - add w2, w2, 1 - sxtw x1, w1 - uxth w2, w2 - and x1, x1, -4 - add x0, x0, x1 - str x0, [x3,8] - b .L2111 -.L2113: + mov x0, x19 + mov w1, 0 + mov w5, -1 +.L2075: + ldrh w2, [x0, 2382] + cmp w2, w1 + bhi .L2076 adrp x2, .LANCHOR4 - mov w3, -1 add x2, x2, :lo12:.LANCHOR4 + mov w3, -1 add x1, x2, 928 - strh w3, [x2,930] - strh w3, [x2,928] - ldr w3, [x0,2372] - strh w3, [x2,938] + strh w3, [x2, 930] + strh w3, [x2, 928] + ldr w3, [x0, 2372] + strh w3, [x2, 938] mov w3, -3902 - strh w3, [x2,932] - ldrh w2, [x2,1088] - strh w2, [x1,8] - ldrh w2, [x0,2380] - strh w2, [x1,6] - ldr x2, [x0,2720] - str x2, [x1,16] - ldr x2, [x0,2784] - str x2, [x1,24] - ldr x2, [x0,2728] - ldr x0, [x0,2768] - str x2, [x1,32] - str x0, [x1,40] - ldp x19, x20, [sp,16] + strh w3, [x2, 932] + ldrh w2, [x2, 1088] + strh w2, [x1, 8] + ldrh w2, [x0, 2380] + strh w2, [x1, 6] + ldr x2, [x0, 2720] + str x2, [x1, 16] + ldr x2, [x0, 2784] + str x2, [x1, 24] + ldr x2, [x0, 2728] + ldr x0, [x0, 2768] + stp x2, x0, [x1, 32] + ldr x19, [sp, 16] ldp x29, x30, [sp], 32 ret +.L2076: + ldr x3, [x0, 2792] + ubfiz x2, x1, 4, 16 + add x3, x3, x2 + str wzr, [x3, 4] + ldr x3, [x0, 2792] + strh w5, [x3, x2] + ldr x3, [x0, 2792] + ldr x4, [x0, 2800] + add x3, x3, x2 + ldrh w2, [x0, 2354] + mul w2, w2, w1 + add w1, w1, 1 + and w1, w1, 65535 + sxtw x2, w2 + and x2, x2, -4 + add x2, x4, x2 + str x2, [x3, 8] + b .L2075 .size FtlL2PDataInit, .-FtlL2PDataInit .align 2 .global FtlLoadMapInfo @@ -13281,624 +13024,621 @@ FtlLoadMapInfo: .global ftl_sb_update_avl_pages .type ftl_sb_update_avl_pages, %function ftl_sb_update_avl_pages: - adrp x3, .LANCHOR2 - uxth w1, w1 - add x4, x3, :lo12:.LANCHOR2 - uxth w2, w2 - strh wzr, [x0,4] - mov w6, 65535 - ldrh w4, [x4,2276] -.L2116: - cmp w2, w4 - bcs .L2122 - add x5, x0, w2, sxtw 1 - ldrh w5, [x5,16] - cmp w5, w6 - beq .L2117 - ldrh w5, [x0,4] - add w5, w5, 1 - strh w5, [x0,4] -.L2117: - add w2, w2, 1 - uxth w2, w2 - b .L2116 -.L2122: - add x3, x3, :lo12:.LANCHOR2 - mov w6, 65535 - add x4, x0, w4, uxth 1 - ldrh w5, [x3,2344] - mov x3, x0 -.L2119: - cmp x3, x4 - beq .L2123 - ldrh w2, [x3,16] - cmp w2, w6 - beq .L2120 - ldrh w2, [x0,4] - add w2, w5, w2 - sub w2, w2, #1 - sub w2, w2, w1 - strh w2, [x0,4] -.L2120: - add x3, x3, 2 - b .L2119 -.L2123: + and w6, w1, 65535 + adrp x4, .LANCHOR2 + add x1, x4, :lo12:.LANCHOR2 + and w2, w2, 65535 + strh wzr, [x0, 4] + ldrh w3, [x1, 2276] + mov w1, 65535 +.L2081: + cmp w3, w2, uxth + bhi .L2083 + add x4, x4, :lo12:.LANCHOR2 + ubfiz x3, x3, 1, 16 + add x3, x3, 16 + add x2, x0, 16 + add x3, x0, x3 + mov w5, 65535 + ldrh w1, [x4, 2344] + sub w1, w1, #1 + and w1, w1, 65535 + sub w1, w1, w6 +.L2084: + cmp x2, x3 + bne .L2086 ret +.L2083: + add x5, x0, w2, sxtw 1 + ldrh w5, [x5, 16] + cmp w5, w1 + beq .L2082 + ldrh w5, [x0, 4] + add w5, w5, 1 + strh w5, [x0, 4] +.L2082: + add w2, w2, 1 + b .L2081 +.L2086: + ldrh w4, [x2] + cmp w4, w5 + beq .L2085 + ldrh w4, [x0, 4] + add w4, w1, w4 + strh w4, [x0, 4] +.L2085: + add x2, x2, 2 + b .L2084 .size ftl_sb_update_avl_pages, .-ftl_sb_update_avl_pages .align 2 .global FtlReUsePrevPpa .type FtlReUsePrevPpa, %function FtlReUsePrevPpa: - stp x29, x30, [sp, -80]! + stp x29, x30, [sp, -64]! add x29, sp, 0 - stp x19, x20, [sp,16] - mov w20, w0 - lsr x0, x1, 10 - stp x21, x22, [sp,32] - str x23, [sp,48] - str w1, [x29,76] + stp x19, x20, [sp, 16] + mov w19, w0 + str x21, [sp, 32] + lsr w0, w1, 10 + str w1, [x29, 60] bl P2V_block_in_plane adrp x2, .LANCHOR2 - uxth w0, w0 add x4, x2, :lo12:.LANCHOR2 - ubfiz x23, x0, 1, 16 - mov x22, x2 - ldr x3, [x4,2712] - ldrh w1, [x3,x23] - cbnz w1, .L2125 - adrp x21, .LANCHOR4 - add x2, x21, :lo12:.LANCHOR4 - ldr x19, [x2,768] - cbz x19, .L2126 - ldrh w3, [x2,776] + and w0, w0, 65535 + ubfiz x21, x0, 1, 16 + ldr x3, [x4, 2712] + ldrh w1, [x3, x21] + cbnz w1, .L2088 + mov x20, x2 + adrp x9, .LANCHOR4 + add x2, x9, :lo12:.LANCHOR4 + ldr x8, [x2, 768] + cbz x8, .L2089 + ldrh w3, [x2, 776] mov w5, 65535 - ldr x2, [x4,2808] + ldr x2, [x4, 2808] mov x4, -6148914691236517206 - sub x19, x19, x2 - asr x19, x19, 1 - madd x19, x4, x19, x19 + movk x4, 0xaaab, lsl 0 + sub x8, x8, x2 + asr x8, x8, 1 + mul x8, x8, x4 mov w4, 6 - uxth w19, w19 -.L2127: + and w8, w8, 65535 +.L2090: cmp w1, w3 - beq .L2126 - cmp w19, w0 - bne .L2128 - add x21, x21, :lo12:.LANCHOR4 - mov w1, w19 - add x0, x21, 768 + beq .L2089 + cmp w8, w0 + bne .L2091 + add x9, x9, :lo12:.LANCHOR4 + mov w1, w8 + add x0, x9, 768 bl List_remove_node - ldrh w0, [x21,776] + ldrh w0, [x9, 776] sub w0, w0, #1 - strh w0, [x21,776] - mov w0, w19 + strh w0, [x9, 776] + mov w0, w8 bl INSERT_DATA_LIST - add x2, x22, :lo12:.LANCHOR2 - ldr x1, [x2,2712] - ldrh w0, [x1,x23] + add x2, x20, :lo12:.LANCHOR2 + ldr x1, [x2, 2712] + ldrh w0, [x1, x21] add w0, w0, 1 - strh w0, [x1,x23] - b .L2126 -.L2128: - umull x19, w19, w4 - ldrh w19, [x2,x19] - cmp w19, w5 - beq .L2126 - add w1, w1, 1 - uxth w1, w1 - b .L2127 -.L2125: - add w1, w1, 1 - strh w1, [x3,x23] -.L2126: - add x1, x29, 76 - mov w0, w20 + strh w0, [x1, x21] +.L2089: + add x1, x29, 60 mov w2, 1 + mov w0, w19 bl log2phys - ldr x23, [sp,48] - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x29, x30, [sp], 80 + ldp x19, x20, [sp, 16] + ldr x21, [sp, 32] + ldp x29, x30, [sp], 64 ret +.L2091: + umull x8, w8, w4 + ldrh w8, [x2, x8] + cmp w8, w5 + beq .L2089 + add w1, w1, 1 + and w1, w1, 65535 + b .L2090 +.L2088: + add w1, w1, 1 + strh w1, [x3, x21] + b .L2089 .size FtlReUsePrevPpa, .-FtlReUsePrevPpa .align 2 .global make_superblock .type make_superblock, %function make_superblock: - stp x29, x30, [sp, -80]! - add x29, sp, 0 - stp x19, x20, [sp,16] - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] - mov x19, x0 - strh wzr, [x0,4] - strb wzr, [x0,7] + mov x5, x0 + strh wzr, [x0, 4] + strb wzr, [x0, 7] adrp x0, .LANCHOR2 add x1, x0, :lo12:.LANCHOR2 - add x22, x19, 16 - mov x21, 0 - mov x20, x0 - mov x23, x1 - mov w25, -1 - ldrh w24, [x1,2276] -.L2134: - cmp w24, w21, uxth - bls .L2145 - add x0, x23, 2304 - ldrh w1, [x19] - ldrb w0, [x0,x21] - bl V2P_block - strh w25, [x22] - mov w26, w0 - bl FtlBbmIsBadBlock - cbnz w0, .L2135 - strh w26, [x22] - ldrb w0, [x19,7] - add w0, w0, 1 - strb w0, [x19,7] -.L2135: - add x21, x21, 1 - add x22, x22, 2 - b .L2134 -.L2145: - add x0, x20, :lo12:.LANCHOR2 - ldrb w1, [x19,7] - strb wzr, [x19,9] - ldrh w2, [x0,2344] + mov x7, 0 + add x8, x5, 16 + mov x6, x0 + add x9, x1, 2304 + mov w11, -1 + ldrh w10, [x1, 2276] + cmp w10, w7, uxth + bhi .L2117 + add x0, x0, :lo12:.LANCHOR2 + ldrb w1, [x5, 7] + strb wzr, [x5, 9] + ldrh w2, [x0, 2344] mul w1, w1, w2 - strh w1, [x19,4] - ldr w1, [x0,2096] - cbz w1, .L2137 - ldrh w1, [x19] - ldr x0, [x0,2696] - ldrh w0, [x0,x1,lsl 1] + strh w1, [x5, 4] + ldr w1, [x0, 2096] + cbz w1, .L2113 + ldrh w1, [x5] + ldr x0, [x0, 2696] + ldrh w0, [x0, x1, lsl 1] cmp w0, 79 - bhi .L2137 + bhi .L2113 mov w0, 1 - strb w0, [x19,9] -.L2137: + strb w0, [x5, 9] +.L2113: adrp x0, .LANCHOR0+88 - ldrb w0, [x0,#:lo12:.LANCHOR0+88] - cbz w0, .L2138 + ldrb w0, [x0, #:lo12:.LANCHOR0+88] + cbz w0, .L2116 mov w0, 1 - strb w0, [x19,9] -.L2138: + strb w0, [x5, 9] +.L2116: mov w0, 0 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x29, x30, [sp], 80 + ret +.L2117: + stp x29, x30, [sp, -16]! + add x29, sp, 0 +.L2100: + ldrh w1, [x5] + ldrb w0, [x9, x7] + bl V2P_block + mov w4, w0 + strh w11, [x8] + bl FtlBbmIsBadBlock + cbnz w0, .L2099 + strh w4, [x8] + ldrb w0, [x5, 7] + add w0, w0, 1 + strb w0, [x5, 7] +.L2099: + add x7, x7, 1 + add x8, x8, 2 + cmp w10, w7, uxth + bhi .L2100 + add x0, x6, :lo12:.LANCHOR2 + ldrb w1, [x5, 7] + strb wzr, [x5, 9] + ldrh w2, [x0, 2344] + mul w1, w1, w2 + strh w1, [x5, 4] + ldr w1, [x0, 2096] + cbz w1, .L2101 + ldrh w1, [x5] + ldr x0, [x0, 2696] + ldrh w0, [x0, x1, lsl 1] + cmp w0, 79 + bhi .L2101 + mov w0, 1 + strb w0, [x5, 9] +.L2101: + adrp x0, .LANCHOR0+88 + ldrb w0, [x0, #:lo12:.LANCHOR0+88] + cbz w0, .L2102 + mov w0, 1 + strb w0, [x5, 9] +.L2102: + mov w0, 0 + ldp x29, x30, [sp], 16 ret .size make_superblock, .-make_superblock .align 2 .global FtlLoadSysInfo .type FtlLoadSysInfo, %function FtlLoadSysInfo: - sub sp, sp, #128 + sub sp, sp, #112 mov w1, 0 - stp x29, x30, [sp,16] + stp x29, x30, [sp, 16] add x29, sp, 16 - stp x21, x22, [sp,48] + stp x23, x24, [sp, 64] + stp x21, x22, [sp, 48] adrp x22, .LANCHOR2 - stp x23, x24, [sp,64] - add x23, x22, :lo12:.LANCHOR2 - stp x19, x20, [sp,32] - add x20, x23, 2936 + add x24, x22, :lo12:.LANCHOR2 + stp x19, x20, [sp, 32] + add x20, x24, 2936 + stp x25, x26, [sp, 80] + stp x27, x28, [sp, 96] adrp x19, .LANCHOR4 - stp x25, x26, [sp,80] - stp x27, x28, [sp,96] - ldr x0, [x23,2576] - add x24, x19, :lo12:.LANCHOR4 - str x0, [x20,8] - add x25, x24, 1072 - ldr x0, [x23,2640] - ldrh w2, [x23,2284] - str x0, [x20,16] - ldr x0, [x23,2712] + ldr x0, [x24, 2576] + add x23, x19, :lo12:.LANCHOR4 + str x0, [x20, 8] + ldr x0, [x24, 2640] + str x0, [x20, 16] + ldr x0, [x24, 2712] + ldrh w2, [x24, 2284] lsl w2, w2, 1 bl ftl_memset - ldrh w0, [x24,1072] + ldrh w0, [x23, 1072] mov w1, 65535 cmp w0, w1 - bne .L2147 -.L2158: - mov w19, -1 - b .L2148 -.L2147: + bne .L2119 +.L2130: + mov w0, -1 +.L2118: + ldp x19, x20, [sp, 32] + ldp x21, x22, [sp, 48] + ldp x23, x24, [sp, 64] + ldp x25, x26, [sp, 80] + ldp x27, x28, [sp, 96] + ldp x29, x30, [sp, 16] + add sp, sp, 112 + ret +.L2119: + add x25, x23, 1072 mov w1, 1 - adrp x26, .LC63 - add x26, x26, :lo12:.LC63 + mov w26, 19539 bl FtlGetLastWrittenPage + ldrsh w28, [x23, 1072] sxth w21, w0 + adrp x23, .LANCHOR0 add w0, w0, 1 - strh w0, [x25,2] - ldrsh w25, [x24,1072] -.L2149: - tbnz w21, #31, .L2157 - orr w0, w21, w25, lsl 10 - mov w1, 1 - str w0, [x20,4] - mov w2, w1 - ldr x0, [x23,2576] - str x0, [x20,8] + strh w0, [x25, 2] + add x25, x23, :lo12:.LANCHOR0 + movk w26, 0x4654, lsl 16 +.L2121: + tbnz w21, #31, .L2129 + orr w0, w21, w28, lsl 10 + str w0, [x20, 4] + ldr x0, [x24, 2576] + mov w2, 1 + str x0, [x20, 8] + mov w1, w2 mov x0, x20 bl FlashReadPages - adrp x0, .LANCHOR0 - add x0, x0, :lo12:.LANCHOR0 - ldrb w0, [x0,88] - cbz w0, .L2150 - ldr x24, [x20,16] - ldr w7, [x24,12] - cbz w7, .L2150 - ldr x28, [x20,8] - ldrh w1, [x23,2354] - mov x0, x28 - str x7, [x29,104] + ldrb w0, [x25, 88] + cbz w0, .L2122 + ldr x8, [x20, 16] + ldr w7, [x8, 12] + cbz w7, .L2122 + ldr x6, [x20, 8] + ldrh w1, [x24, 2354] + mov x0, x6 bl js_hash - ldr x7, [x29,104] cmp w7, w0 - beq .L2150 - cbnz w21, .L2151 + beq .L2122 + cbnz w21, .L2123 add x0, x19, :lo12:.LANCHOR4 add x27, x0, 1072 - ldrh w1, [x0,1076] - cmp w25, w1 - beq .L2151 - ldrh w1, [x0,1072] - ldr w0, [x28] + ldrh w1, [x0, 1076] + cmp w28, w1 + beq .L2123 + ldrh w1, [x0, 1072] + ldr w0, [x6] str w0, [sp] - mov x0, x26 - ldr w2, [x20] - ldr w3, [x20,4] - ldr w4, [x24] - ldr w5, [x24,4] - ldr w6, [x24,8] + adrp x0, .LC63 + add x0, x0, :lo12:.LC63 + ldp w4, w5, [x8] + ldr w6, [x8, 8] + ldp w2, w3, [x20] bl printk - ldrsh w25, [x27,4] - ldrh w21, [x23,2346] - b .L2153 -.L2151: + ldrsh w28, [x27, 4] + ldrh w21, [x24, 2346] +.L2125: + sub w21, w21, #1 + sxth w21, w21 + b .L2121 +.L2123: mov w0, -1 str w0, [x20] -.L2150: +.L2122: ldr w0, [x20] cmn w0, #1 - beq .L2153 - ldr x0, [x23,2576] - ldr w1, [x0] - mov w0, 19539 - movk w0, 0x4654, lsl 16 - cmp w1, w0 - bne .L2153 - ldr x0, [x23,2640] + beq .L2125 + ldr x0, [x24, 2576] + ldr w0, [x0] + cmp w0, w26 + bne .L2125 + ldr x0, [x24, 2640] ldrh w1, [x0] mov w0, 61604 cmp w1, w0 - bne .L2153 -.L2157: + bne .L2125 +.L2129: add x20, x22, :lo12:.LANCHOR2 add x0, x19, :lo12:.LANCHOR4 add x21, x20, 2936 mov w2, 48 add x0, x0, 696 - ldr x1, [x21,8] + add x23, x23, :lo12:.LANCHOR0 + ldr x1, [x21, 8] bl ftl_memcpy - ldr x1, [x21,8] - ldrh w2, [x20,2284] - ldr x0, [x20,2712] - add x1, x1, 48 + ldr x0, [x20, 2712] + ldrh w2, [x20, 2284] + ldr x1, [x21, 8] lsl w2, w2, 1 + add x1, x1, 48 bl ftl_memcpy - ldrh w2, [x20,2284] - adrp x0, .LANCHOR0 - add x0, x0, :lo12:.LANCHOR0 - ldr x3, [x21,8] - ubfiz x1, x2, 1, 16 - lsr w2, w2, 3 + ldrh w1, [x20, 2284] + ldr x0, [x21, 8] + lsr w2, w1, 3 + ubfiz x1, x1, 1, 16 add x1, x1, 51 add w2, w2, 4 - and x1, x1, 262140 - ldr x0, [x0,16] - add x1, x3, x1 + and x1, x1, -4 + add x1, x0, x1 + ldr x0, [x23, 80] bl ftl_memcpy - ldrh w0, [x20,2384] - cbz w0, .L2155 - ldrh w0, [x20,2284] - ldr x3, [x21,8] - lsr w1, w0, 3 - ldrh w2, [x20,2380] - add w1, w1, w0, lsl 1 - ldr x0, [x20,2776] + ldrh w0, [x20, 2384] + cbz w0, .L2127 + ldrh w1, [x20, 2284] + ldrh w2, [x20, 2380] + lsr w0, w1, 3 + add w1, w0, w1, lsl 1 + ldr x0, [x21, 8] add w1, w1, 52 lsl w2, w2, 2 and x1, x1, 65532 - add x1, x3, x1 + add x1, x0, x1 + ldr x0, [x20, 2776] bl ftl_memcpy - b .L2155 -.L2153: - sub w21, w21, #1 - sxth w21, w21 - b .L2149 -.L2155: - add x6, x19, :lo12:.LANCHOR4 +.L2127: + add x2, x19, :lo12:.LANCHOR4 mov w0, 19539 movk w0, 0x4654, lsl 16 - ldr w2, [x6,696] - cmp w2, w0 - bne .L2158 + add x1, x2, 696 + ldr w3, [x2, 696] + cmp w3, w0 + bne .L2130 add x0, x22, :lo12:.LANCHOR2 - ldrb w3, [x6,706] - ldrh w5, [x6,704] - strh w5, [x6,1078] - ldrh w2, [x0,2298] - cmp w3, w2 - bne .L2158 - ldrh w3, [x0,2344] - adrp x7, .LANCHOR5 - ldrh w2, [x0,2350] - add x4, x7, :lo12:.LANCHOR5 - mov x20, x7 - mul w3, w3, w5 - str w3, [x0,2924] - str w5, [x4,584] - mul w3, w3, w2 - str w3, [x0,1224] - ldrh w2, [x0,2830] - ldr w3, [x0,2288] - strh wzr, [x4,594] - sub w2, w3, w2 - ldrh w3, [x0,2276] - sub w2, w2, w5 - strb wzr, [x4,598] - strb wzr, [x4,600] - udiv w2, w2, w3 - mov w3, -1 - strh w2, [x4,588] - strh w3, [x4,592] - ldrh w5, [x6,710] - strh w5, [x6,784] - ldrh w2, [x6,712] - lsr w8, w2, 6 - and w2, w2, 63 - strb w2, [x6,790] - ldrb w2, [x6,707] - strb w2, [x6,792] - ldrh w2, [x6,714] - strh w2, [x6,832] - ldrh w2, [x6,716] - strh w8, [x6,786] + ldrh w4, [x2, 704] + ldrb w5, [x2, 706] + strh w4, [x2, 1078] + ldrh w3, [x0, 2298] + cmp w5, w3 + bne .L2130 + ldrh w3, [x0, 2344] + ldrh w5, [x0, 2350] + str w4, [x2, 1092] + strh wzr, [x2, 1106] + mul w3, w3, w4 + strb wzr, [x2, 1110] + str w3, [x0, 2924] + strb wzr, [x2, 1112] + mul w3, w5, w3 + ldrh w5, [x0, 2830] + str w3, [x0, 1224] + ldr w3, [x0, 2288] + sub w3, w3, w5 + ldrh w5, [x2, 710] + sub w3, w3, w4 + ldrh w4, [x0, 2276] + strh w5, [x2, 784] + udiv w3, w3, w4 + mov w4, -1 + strh w4, [x2, 1104] + ldrh w4, [x2, 718] + strh w4, [x2, 880] + strh w3, [x2, 1096] + ldrh w3, [x2, 712] + lsr w6, w3, 6 + and w3, w3, 63 + strb w3, [x2, 790] + ldrb w3, [x2, 707] + strb w3, [x2, 792] + ldrh w3, [x2, 714] + strh w3, [x2, 832] + ldrh w3, [x2, 716] + strh w6, [x2, 786] + lsr w6, w3, 6 + and w3, w3, 63 + strb w3, [x2, 838] + ldrb w3, [x2, 708] + strb w3, [x2, 840] + add x3, x2, 880 + strh w6, [x2, 834] + ldrh w2, [x2, 720] lsr w4, w2, 6 and w2, w2, 63 - strb w2, [x6,838] - ldrb w2, [x6,708] - strb w2, [x6,840] - ldrh w2, [x6,718] - strh w2, [x6,880] - ldrh w2, [x6,720] - strh w4, [x6,834] - lsr w4, w2, 6 - and w2, w2, 63 - strh w4, [x6,882] - strb w2, [x6,886] - ldrb w2, [x6,709] - strb w2, [x6,888] - ldr w2, [x6,728] - str w2, [x0,2428] - ldr w1, [x0,2396] - ldr w2, [x6,736] - str wzr, [x0,2404] - str wzr, [x0,2408] - cmp w2, w1 - str wzr, [x0,2424] - str wzr, [x0,2420] - str wzr, [x0,2432] - str wzr, [x0,2440] - str wzr, [x0,2416] - bls .L2159 - str w2, [x0,2396] -.L2159: + strh w4, [x3, 2] + strb w2, [x3, 6] + ldrb w2, [x1, 13] + strb w2, [x3, 8] + add x3, x0, 2304 + ldr w2, [x1, 32] + str wzr, [x0, 2404] + str wzr, [x0, 2408] + ldr w1, [x1, 40] + stp wzr, wzr, [x3, 112] + stp wzr, w2, [x3, 120] + str wzr, [x0, 2432] + ldr w2, [x0, 2396] + str wzr, [x0, 2440] + cmp w1, w2 + bls .L2131 + str w1, [x0, 2396] +.L2131: add x0, x19, :lo12:.LANCHOR4 add x22, x22, :lo12:.LANCHOR2 - ldr w0, [x0,732] - ldr w1, [x22,2400] + ldr w0, [x0, 732] + ldr w1, [x22, 2400] cmp w0, w1 - bls .L2160 - str w0, [x22,2400] -.L2160: + bls .L2132 + str w0, [x22, 2400] +.L2132: mov w0, 65535 cmp w5, w0 - beq .L2161 + beq .L2133 add x0, x19, :lo12:.LANCHOR4 add x0, x0, 784 bl make_superblock -.L2161: - add x2, x19, :lo12:.LANCHOR4 +.L2133: + add x1, x19, :lo12:.LANCHOR4 + add x0, x1, 832 + ldrh w2, [x1, 832] mov w1, 65535 - add x0, x2, 832 - ldrh w2, [x2,832] cmp w2, w1 - beq .L2162 + beq .L2134 bl make_superblock -.L2162: +.L2134: + add x1, x19, :lo12:.LANCHOR4 + add x0, x1, 880 + ldrh w2, [x1, 880] + mov w1, 65535 + cmp w2, w1 + beq .L2135 + bl make_superblock +.L2135: add x19, x19, :lo12:.LANCHOR4 mov w1, 65535 - add x0, x19, 880 - ldrh w2, [x19,880] + add x0, x19, 1104 + ldrh w2, [x19, 1104] cmp w2, w1 - beq .L2163 + beq .L2136 bl make_superblock -.L2163: - add x1, x20, :lo12:.LANCHOR5 - mov w19, 0 - add x0, x1, 592 - ldrh w2, [x1,592] - mov w1, 65535 - cmp w2, w1 - beq .L2148 - bl make_superblock -.L2148: - sub sp, x29, #16 - mov w0, w19 - ldp x19, x20, [sp,32] - ldp x21, x22, [sp,48] - ldp x23, x24, [sp,64] - ldp x25, x26, [sp,80] - ldp x27, x28, [sp,96] - ldp x29, x30, [sp,16] - add sp, sp, 128 - ret +.L2136: + mov w0, 0 + b .L2118 .size FtlLoadSysInfo, .-FtlLoadSysInfo .align 2 .global FtlDumpBlockInfo .type FtlDumpBlockInfo, %function FtlDumpBlockInfo: - sub sp, sp, #176 - lsr x0, x0, 10 - stp x29, x30, [sp,16] + sub sp, sp, #160 + lsr w0, w0, 10 + stp x29, x30, [sp, 16] add x29, sp, 16 - stp x19, x20, [sp,32] - stp x21, x22, [sp,48] - stp x23, x24, [sp,64] - stp x25, x26, [sp,80] - stp x27, x28, [sp,96] - uxtb w24, w1 + stp x19, x20, [sp, 32] + adrp x19, .LANCHOR2 + add x20, x19, :lo12:.LANCHOR2 + stp x21, x22, [sp, 48] + stp x23, x24, [sp, 64] + add x23, x29, 144 + stp x25, x26, [sp, 80] + and w25, w1, 255 + str x27, [sp, 96] bl P2V_block_in_plane - adrp x2, .LANCHOR3 - adrp x20, .LANCHOR2 - uxth w22, w0 - add x1, x2, :lo12:.LANCHOR3 - add x19, x20, :lo12:.LANCHOR2 - adrp x0, .LC49 + adrp x1, .LANCHOR3 + add x1, x1, :lo12:.LANCHOR3 + and w22, w0, 65535 add x1, x1, 168 + ldrh w24, [x20, 2344] + adrp x0, .LC49 add x0, x0, :lo12:.LC49 - ldrh w23, [x19,2344] bl printk - ldr x3, [x19,2712] - ubfiz x2, x22, 1, 16 - adrp x0, .LC64 + ldr x1, [x20, 2712] + ubfiz x0, x22, 1, 16 + ldrh w2, [x1, x0] mov w1, w22 + adrp x0, .LC64 add x0, x0, :lo12:.LC64 - ldrh w2, [x3,x2] bl printk - strh w22, [x29,112] - add x0, x29, 112 + strh w22, [x23, -48]! + mov x0, x23 bl make_superblock - cbnz w24, .L2183 - ldrb w0, [x19,1220] - cbz w0, .L2183 + ldrb w0, [x20, 1220] + cbz w0, .L2157 + cbnz w25, .L2157 mov w0, w22 bl ftl_get_blk_mode - cmp w0, 1 mov w22, w0 - bne .L2175 - ldrh w23, [x19,2346] - b .L2175 -.L2183: - mov w22, 0 -.L2175: - add x3, x20, :lo12:.LANCHOR2 - adrp x0, .LC65 - adrp x24, .LC59 - add x0, x0, :lo12:.LC65 - mov w1, w22 - mov w2, w23 - ldrh w3, [x3,2344] + cmp w0, 1 + bne .L2148 + ldrh w24, [x20, 2346] +.L2148: + add x19, x19, :lo12:.LANCHOR2 mov w21, 0 - mov w26, 65535 - mov w27, 56 - mov w25, 4 - add x24, x24, :lo12:.LC59 + mov w26, 56 + mov w2, w24 + mov w1, w22 + adrp x0, .LC65 + ldrh w3, [x19, 2344] + add x0, x0, :lo12:.LC65 bl printk -.L2176: - add x0, x20, :lo12:.LANCHOR2 - mov x3, 0 - mov w19, w3 - ldrh w5, [x0,2276] - ldrh w6, [x0,2354] - ldrh w7, [x0,2356] -.L2177: - cmp w5, w3, uxth - bls .L2191 - add x0, x29, 112 - add x0, x0, x3, lsl 1 - ldrh w1, [x0,16] - cmp w1, w26 - beq .L2178 - add x2, x20, :lo12:.LANCHOR2 - orr w1, w21, w1, lsl 10 - umull x0, w19, w27 - ldr x4, [x2,2520] - add x4, x4, x0 - str w1, [x4,4] - ldr x1, [x2,2520] - ldr x4, [x2,2600] - add x0, x1, x0 - ldr x2, [x2,2656] - mul w1, w19, w6 - sdiv w1, w1, w25 - add x1, x4, w1, sxtw 2 - str x1, [x0,8] - mul w1, w19, w7 - add w19, w19, 1 - uxth w19, w19 - sdiv w1, w1, w25 - add x1, x2, w1, sxtw 2 - str x1, [x0,16] -.L2178: - add x3, x3, 1 - b .L2177 -.L2191: - add x0, x20, :lo12:.LANCHOR2 - mov w1, w19 - mov w2, w22 - mov x28, 0 - ldr x0, [x0,2520] - bl FlashReadPages - mov x8, 56 -.L2180: - cmp w19, w28, uxth - bls .L2192 - add x0, x20, :lo12:.LANCHOR2 - ldrh w1, [x29,112] - mul x2, x28, x8 - str x8, [x29,104] - add x28, x28, 1 - ldr x4, [x0,2520] - add x3, x4, x2 - ldr x0, [x3,8] - ldr x7, [x3,16] - ldr w5, [x0] - str w5, [sp] - ldr w0, [x0,4] - str w0, [sp,8] - mov x0, x24 - ldr w2, [x4,x2] - ldr w5, [x7,4] - ldr w4, [x7] - ldr w6, [x7,8] - ldr w3, [x3,4] - ldr w7, [x7,12] - bl printk - ldr x8, [x29,104] - b .L2180 -.L2192: - add w21, w21, 1 - uxth w21, w21 - cmp w21, w23 - bne .L2176 -.L2182: - sub sp, x29, #16 +.L2149: + ldrh w7, [x19, 2276] + add x3, x23, 16 + ldrh w8, [x19, 2354] + mov w20, 0 + ldrh w9, [x19, 2356] mov w0, 0 - 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 + mov w10, 65535 + mov w5, 4 +.L2150: + cmp w0, w7 + bne .L2152 + ldr x0, [x19, 2520] + mov w1, w20 + adrp x27, .LC59 + mov w2, w22 + umull x20, w20, w26 + mov x25, 0 + add x27, x27, :lo12:.LC59 + bl FlashReadPages +.L2153: + cmp x25, x20 + bne .L2154 + add w21, w21, 1 + and w21, w21, 65535 + cmp w24, w21 + bne .L2149 +.L2155: + ldp x19, x20, [sp, 32] + mov w0, 0 + ldp x21, x22, [sp, 48] + ldp x23, x24, [sp, 64] + ldp x25, x26, [sp, 80] + ldp x29, x30, [sp, 16] + ldr x27, [sp, 96] + add sp, sp, 160 ret +.L2157: + mov w22, 0 + b .L2148 +.L2152: + ldrh w1, [x3] + cmp w1, w10 + beq .L2151 + umull x6, w20, w26 + ldr x4, [x19, 2520] + orr w1, w21, w1, lsl 10 + add x4, x4, x6 + str w1, [x4, 4] + mul w1, w20, w8 + ldr x2, [x19, 2520] + ldr x4, [x19, 2600] + sdiv w1, w1, w5 + add x2, x2, x6 + add x1, x4, w1, sxtw 2 + str x1, [x2, 8] + mul w1, w20, w9 + ldr x4, [x19, 2656] + add w20, w20, 1 + and w20, w20, 65535 + sdiv w1, w1, w5 + add x1, x4, w1, sxtw 2 + str x1, [x2, 16] +.L2151: + add w0, w0, 1 + add x3, x3, 2 + and w0, w0, 65535 + b .L2150 +.L2154: + ldr x8, [x19, 2520] + ldrh w1, [x29, 96] + add x2, x8, x25 + ldp x3, x0, [x2, 8] + ldr w4, [x3, 4] + str w4, [sp, 8] + ldr w3, [x3] + str w3, [sp] + ldp w4, w5, [x0] + ldp w6, w7, [x0, 8] + mov x0, x27 + ldr w3, [x2, 4] + ldr w2, [x8, x25] + add x25, x25, 56 + bl printk + b .L2153 .size FtlDumpBlockInfo, .-FtlDumpBlockInfo .align 2 .global FtlScanAllBlock @@ -13906,388 +13646,366 @@ FtlDumpBlockInfo: FtlScanAllBlock: sub sp, sp, #144 adrp x1, .LANCHOR3 - adrp x0, .LC49 add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC49 + adrp x0, .LC49 add x1, x1, 192 - stp x29, x30, [sp,16] + add x0, x0, :lo12:.LC49 + stp x29, x30, [sp, 16] add x29, sp, 16 - stp x23, x24, [sp,64] - stp x21, x22, [sp,48] - adrp x23, .LC67 - adrp x22, .LC66 - adrp x24, .LC68 - add x22, x22, :lo12:.LC66 - stp x19, x20, [sp,32] - add x23, x23, :lo12:.LC67 + stp x19, x20, [sp, 32] mov w20, 0 - add x24, x24, :lo12:.LC68 - stp x25, x26, [sp,80] + stp x21, x22, [sp, 48] + stp x23, x24, [sp, 64] + adrp x23, .LANCHOR2 + str x25, [sp, 80] + add x21, x23, :lo12:.LANCHOR2 bl printk -.L2194: - adrp x21, .LANCHOR2 - add x19, x21, :lo12:.LANCHOR2 - ldrh w0, [x19,2286] +.L2161: + add x19, x23, :lo12:.LANCHOR2 + ldrh w0, [x19, 2286] cmp w0, w20 - bls .L2203 + bhi .L2169 + ldp x19, x20, [sp, 32] + mov w0, 0 + ldp x21, x22, [sp, 48] + ldp x23, x24, [sp, 64] + ldp x29, x30, [sp, 16] + ldr x25, [sp, 80] + add sp, sp, 144 + ret +.L2169: + strh w20, [x29, 80] mov w0, w20 - strh w20, [x29,80] bl ftl_get_blk_mode mov w3, w0 - ldr x4, [x19,2712] - ubfiz x2, x20, 1, 16 + ldr x2, [x19, 2712] + ubfiz x1, x20, 1, 16 + adrp x0, .LC66 + add x0, x0, :lo12:.LC66 + ldrh w2, [x2, x1] mov w1, w20 - mov x0, x22 - ldrh w2, [x4,x2] bl printk add x0, x29, 80 bl make_superblock - mov x1, 0 - ldrh w6, [x19,2276] - ldrh w7, [x19,2354] - mov w9, 65535 - ldrh w8, [x19,2356] - mov w10, 56 - mov w19, w1 - mov w5, 4 -.L2195: - cmp w6, w1, uxth - bls .L2204 - add x0, x29, 80 - add x0, x0, x1, lsl 1 - ldrh w0, [x0,16] - cmp w0, w9 - beq .L2196 - add x3, x21, :lo12:.LANCHOR2 - lsl w0, w0, 10 - umull x2, w19, w10 - ldr x4, [x3,2520] - add x4, x4, x2 - str w0, [x4,4] - ldr x0, [x3,2520] - ldr x4, [x3,2600] - add x2, x0, x2 - ldr x3, [x3,2656] - mul w0, w19, w7 - sdiv w0, w0, w5 - add x0, x4, w0, sxtw 2 - str x0, [x2,8] - mul w0, w19, w8 - add w19, w19, 1 - uxth w19, w19 - sdiv w0, w0, w5 - add x0, x3, w0, sxtw 2 - str x0, [x2,16] -.L2196: - add x1, x1, 1 - b .L2195 -.L2204: - add x0, x21, :lo12:.LANCHOR2 - mov w1, w19 - mov w2, 0 - mov x25, 0 - mov x26, 56 - ldr x0, [x0,2520] - bl FlashReadPages -.L2198: - add x0, x21, :lo12:.LANCHOR2 - cmp w19, w25, uxth - bls .L2205 - ldr x4, [x0,2520] - mul x2, x25, x26 - ldrh w1, [x29,80] - add x25, x25, 1 - add x3, x4, x2 - ldr x0, [x3,8] - ldr x7, [x3,16] - ldr w5, [x0] - str w5, [sp] - ldr w0, [x0,4] - str w0, [sp,8] - mov x0, x23 - ldr w2, [x4,x2] - ldr w5, [x7,4] - ldr w4, [x7] - ldr w6, [x7,8] - ldr w3, [x3,4] - ldr w7, [x7,12] - bl printk - b .L2198 -.L2205: - ldr x0, [x0,2520] - mov w1, w19 - mov w2, 1 - mov x25, 0 - mov x26, 56 - bl FlashReadPages -.L2200: - cmp w19, w25, uxth - bls .L2206 - add x0, x21, :lo12:.LANCHOR2 - ldrh w1, [x29,80] - mul x2, x25, x26 - add x25, x25, 1 - ldr x4, [x0,2520] - add x3, x4, x2 - ldr x0, [x3,8] - ldr x7, [x3,16] - ldr w5, [x0] - str w5, [sp] - ldr w0, [x0,4] - str w0, [sp,8] - mov x0, x24 - ldr w2, [x4,x2] - ldr w5, [x7,4] - ldr w4, [x7] - ldr w6, [x7,8] - ldr w3, [x3,4] - ldr w7, [x7,12] - bl printk - b .L2200 -.L2206: - add w20, w20, 1 - uxth w20, w20 - b .L2194 -.L2203: - sub sp, x29, #16 + add x3, x29, 96 + ldrh w7, [x19, 2276] + ldrh w8, [x19, 2354] mov w0, 0 - ldp x19, x20, [sp,32] - ldp x21, x22, [sp,48] - ldp x23, x24, [sp,64] - ldp x25, x26, [sp,80] - ldp x29, x30, [sp,16] - add sp, sp, 144 - ret + ldrh w9, [x19, 2356] + mov w10, 65535 + mov w19, 0 + mov w11, 56 + mov w5, 4 +.L2162: + cmp w0, w7 + bne .L2164 + ldr x0, [x21, 2520] + mov w24, 56 + adrp x25, .LC67 + mov w2, 0 + mov w1, w19 + umull x24, w19, w24 + mov x22, 0 + add x25, x25, :lo12:.LC67 + bl FlashReadPages +.L2165: + cmp x22, x24 + bne .L2166 + ldr x0, [x21, 2520] + mov w1, w19 + adrp x24, .LC68 + mov w2, 1 + mov x19, 0 + add x24, x24, :lo12:.LC68 + bl FlashReadPages +.L2167: + cmp x22, x19 + bne .L2168 + add w20, w20, 1 + and w20, w20, 65535 + b .L2161 +.L2164: + ldrh w1, [x3] + cmp w1, w10 + beq .L2163 + umull x6, w19, w11 + ldr x4, [x21, 2520] + lsl w1, w1, 10 + add x4, x4, x6 + str w1, [x4, 4] + mul w1, w19, w8 + ldr x2, [x21, 2520] + ldr x4, [x21, 2600] + sdiv w1, w1, w5 + add x2, x2, x6 + add x1, x4, w1, sxtw 2 + str x1, [x2, 8] + mul w1, w19, w9 + ldr x4, [x21, 2656] + add w19, w19, 1 + and w19, w19, 65535 + sdiv w1, w1, w5 + add x1, x4, w1, sxtw 2 + str x1, [x2, 16] +.L2163: + add w0, w0, 1 + add x3, x3, 2 + and w0, w0, 65535 + b .L2162 +.L2166: + ldr x8, [x21, 2520] + ldrh w1, [x29, 80] + add x2, x8, x22 + ldp x3, x0, [x2, 8] + ldr w4, [x3, 4] + str w4, [sp, 8] + ldr w3, [x3] + str w3, [sp] + ldp w4, w5, [x0] + ldp w6, w7, [x0, 8] + mov x0, x25 + ldr w3, [x2, 4] + ldr w2, [x8, x22] + add x22, x22, 56 + bl printk + b .L2165 +.L2168: + ldr x8, [x21, 2520] + ldrh w1, [x29, 80] + add x2, x8, x19 + ldp x3, x0, [x2, 8] + ldr w4, [x3, 4] + str w4, [sp, 8] + ldr w3, [x3] + str w3, [sp] + ldp w4, w5, [x0] + ldp w6, w7, [x0, 8] + mov x0, x24 + ldr w3, [x2, 4] + ldr w2, [x8, x19] + add x19, x19, 56 + bl printk + b .L2167 .size FtlScanAllBlock, .-FtlScanAllBlock .align 2 .global SupperBlkListInit .type SupperBlkListInit, %function SupperBlkListInit: - stp x29, x30, [sp, -128]! + stp x29, x30, [sp, -64]! + mov w0, 6 mov w1, 0 add x29, sp, 0 - stp x23, x24, [sp,48] - adrp x23, .LANCHOR2 - stp x19, x20, [sp,16] - add x19, x23, :lo12:.LANCHOR2 - stp x21, x22, [sp,32] - stp x25, x26, [sp,64] - stp x27, x28, [sp,80] - mov w25, 6 - adrp x22, .LANCHOR4 - ldrh w2, [x19,2286] - add x21, x22, :lo12:.LANCHOR4 - ldr x0, [x19,2808] - mov w28, 0 - mov w24, w28 - mov w26, -1 - mul w2, w2, w25 - mov w27, 32768 + stp x19, x20, [sp, 16] + adrp x19, .LANCHOR2 + add x19, x19, :lo12:.LANCHOR2 + stp x21, x22, [sp, 32] + stp x23, x24, [sp, 48] + adrp x20, .LANCHOR4 + add x23, x19, 2304 + mov w21, 0 + ldrh w2, [x19, 2286] + mov w22, 0 + mov w24, 0 + mul w2, w2, w0 + ldr x0, [x19, 2808] bl ftl_memset - strh wzr, [x19,2386] - str xzr, [x21,768] - mov w19, w28 - str xzr, [x21,744] - str xzr, [x21,752] - strh wzr, [x21,760] - strh wzr, [x21,776] -.L2208: - add x0, x23, :lo12:.LANCHOR2 - ldrh w1, [x0,2284] - cmp w19, w1 - bge .L2215 - mov w20, 0 - ldrh w5, [x0,2276] - ldrh w4, [x0,2344] - mov w3, w20 - mov x2, x0 -.L2216: - cmp w3, w5 - bge .L2217 - add x0, x2, 2304 - mov w1, w19 - str x4, [x29,96] - str x5, [x29,104] - ldrb w0, [x0,w3,sxtw] - str x2, [x29,112] - str x3, [x29,120] + strh wzr, [x19, 2386] + add x0, x20, :lo12:.LANCHOR4 + strh wzr, [x0, 760] + strh wzr, [x0, 776] + str xzr, [x0, 744] + str xzr, [x0, 752] + str xzr, [x0, 768] +.L2172: + ldrh w0, [x19, 2284] + cmp w24, w0 + bge .L2179 + ldrh w8, [x19, 2276] + mov w5, 0 + ldrh w7, [x19, 2344] + mov w6, 0 + b .L2180 +.L2174: + ldrb w0, [x23, w6, sxtw] + mov w1, w24 bl V2P_block bl FtlBbmIsBadBlock - ldr x3, [x29,120] - ldr x2, [x29,112] - ldr x5, [x29,104] - ldr x4, [x29,96] - cbnz w0, .L2209 - add w20, w4, w20 - sxth w20, w20 -.L2209: - add w3, w3, 1 - sxth w3, w3 - b .L2216 -.L2217: - cbz w20, .L2211 - sdiv w20, w27, w20 - sxth w20, w20 - b .L2212 -.L2211: - add x0, x23, :lo12:.LANCHOR2 - ldr x0, [x0,2712] - strh w26, [x0,w19,sxtw 1] -.L2212: - add x1, x23, :lo12:.LANCHOR2 - ldr x0, [x1,2808] - smaddl x0, w19, w25, x0 - strh w20, [x0,4] - ldrh w0, [x21,784] - cmp w19, w0 - beq .L2213 - ldrh w0, [x21,832] - cmp w19, w0 - beq .L2213 - ldrh w0, [x21,880] - cmp w19, w0 - beq .L2213 - ldr x0, [x1,2712] - ldrh w0, [x0,w19,sxtw 1] - cbnz w0, .L2214 - add w28, w28, 1 - mov w0, w19 - uxth w28, w28 + cbnz w0, .L2173 + add w5, w7, w5 + sxth w5, w5 +.L2173: + add w6, w6, 1 + sxth w6, w6 +.L2180: + cmp w6, w8 + blt .L2174 + cbz w5, .L2175 + mov w0, 32768 + sdiv w5, w0, w5 + sxth w5, w5 +.L2176: + ldr x1, [x19, 2808] + mov w0, 6 + smaddl x0, w24, w0, x1 + strh w5, [x0, 4] + add x0, x20, :lo12:.LANCHOR4 + ldrh w1, [x0, 784] + cmp w24, w1 + beq .L2177 + ldrh w1, [x0, 832] + cmp w24, w1 + beq .L2177 + ldrh w0, [x0, 880] + cmp w24, w0 + beq .L2177 + ldr x0, [x19, 2712] + ldrh w0, [x0, w24, sxtw 1] + cbnz w0, .L2178 + add w21, w21, 1 + mov w0, w24 + and w21, w21, 65535 bl INSERT_FREE_LIST - b .L2213 -.L2214: +.L2177: add w24, w24, 1 - mov w0, w19 - uxth w24, w24 + sxth w24, w24 + b .L2172 +.L2175: + ldr x0, [x19, 2712] + mov w1, -1 + strh w1, [x0, w24, sxtw 1] + b .L2176 +.L2178: + add w22, w22, 1 + mov w0, w24 + and w22, w22, 65535 bl INSERT_DATA_LIST -.L2213: - add w19, w19, 1 - sxth w19, w19 - b .L2208 -.L2215: - add x22, x22, :lo12:.LANCHOR4 + b .L2177 +.L2179: + add x20, x20, :lo12:.LANCHOR4 mov w0, 0 - ldp x19, x20, [sp,16] - ldp x25, x26, [sp,64] - strh w24, [x22,760] - strh w28, [x22,776] - ldp x23, x24, [sp,48] - ldp x21, x22, [sp,32] - ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 128 + ldp x23, x24, [sp, 48] + strh w22, [x20, 760] + strh w21, [x20, 776] + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x29, x30, [sp], 64 ret .size SupperBlkListInit, .-SupperBlkListInit .align 2 .global Ftl_save_ext_data .type Ftl_save_ext_data, %function Ftl_save_ext_data: - adrp x0, .LANCHOR5 + adrp x0, .LANCHOR4 + add x0, x0, :lo12:.LANCHOR4 mov w1, 19539 - add x0, x0, :lo12:.LANCHOR5 movk w1, 0x4654, lsl 16 - stp x29, x30, [sp, -16]! - add x2, x0, 640 - add x29, sp, 0 - ldr w3, [x0,640] + ldr w3, [x0, 1152] cmp w3, w1 - bne .L2218 + bne .L2185 + stp x29, x30, [sp, -16]! + add x2, x0, 1152 mov w1, 99 + add x29, sp, 0 movk w1, 0x5000, lsl 16 - str w1, [x2,4] - ldr w1, [x0,1152] - ldr w0, [x0,1156] - str w0, [x2,92] + str w1, [x2, 4] + ldr w1, [x0, 1664] + ldr w0, [x0, 1668] + stp w1, w0, [x2, 88] adrp x0, .LANCHOR2 add x0, x0, :lo12:.LANCHOR2 - str w1, [x2,88] - ldr w1, [x0,2404] - str w1, [x2,8] - ldr w1, [x0,2408] - str w1, [x2,12] - ldr w1, [x0,2424] - str w1, [x2,16] - ldr w1, [x0,2420] - str w1, [x2,20] - ldr w1, [x0,2432] - str w1, [x2,28] - ldr w1, [x0,2436] - str w1, [x2,32] - ldr w1, [x0,2412] - str w1, [x2,36] - ldr w1, [x0,2416] - str w1, [x2,40] - ldr w1, [x0,2440] - str w1, [x2,44] - ldr w1, [x0,2444] - str w1, [x2,48] - ldr w1, [x0,2392] - ldr w0, [x0,2388] - str w1, [x2,60] + ldr w1, [x0, 2404] + str w1, [x2, 8] + ldr w1, [x0, 2408] + str w1, [x2, 12] + ldr w1, [x0, 2424] + str w1, [x2, 16] + ldr w1, [x0, 2420] + str w1, [x2, 20] + ldr w1, [x0, 2432] + str w1, [x2, 28] + ldr w1, [x0, 2436] + str w1, [x2, 32] + ldr w1, [x0, 2412] + str w1, [x2, 36] + ldr w1, [x0, 2416] + str w1, [x2, 40] + ldr w1, [x0, 2440] + str w1, [x2, 44] + ldr w1, [x0, 2444] + str w1, [x2, 48] + ldr w1, [x0, 2392] + ldr w0, [x0, 2388] + stp w1, w0, [x2, 60] mov w1, 1 - str w0, [x2,64] mov w0, 0 bl FtlVendorPartWrite -.L2218: ldp x29, x30, [sp], 16 ret +.L2185: + ret .size Ftl_save_ext_data, .-Ftl_save_ext_data .align 2 .global FtlEctTblFlush .type FtlEctTblFlush, %function FtlEctTblFlush: - adrp x2, .LANCHOR2 - mov w1, 32 - add x3, x2, :lo12:.LANCHOR2 + adrp x1, .LANCHOR2 + add x2, x1, :lo12:.LANCHOR2 + ldr w3, [x2, 2096] + cbz w3, .L2193 + ldr w2, [x2, 2444] + mov w3, 4 + cmp w2, 39 + mov w2, 32 + csel w2, w2, w3, hi +.L2189: + adrp x3, .LANCHOR4 + add x3, x3, :lo12:.LANCHOR4 + ldrh w4, [x3, 1672] + cmp w4, 31 + bhi .L2190 + add w4, w4, 1 + mov w2, 1 + strh w4, [x3, 1672] +.L2190: + cbnz w0, .L2191 + add x0, x1, :lo12:.LANCHOR2 + ldr x0, [x0, 2688] + ldr w3, [x0, 20] + ldr w0, [x0, 16] + add w2, w2, w3 + cmp w0, w2 + bcc .L2196 +.L2191: + add x0, x1, :lo12:.LANCHOR2 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr w4, [x3,2096] - cbz w4, .L2221 - ldr w3, [x3,2444] - cmp w3, 39 - mov w3, 4 - csel w1, w1, w3, hi -.L2221: - adrp x3, .LANCHOR5 - add x3, x3, :lo12:.LANCHOR5 - ldrh w4, [x3,1160] - cmp w4, 31 - bhi .L2222 - add w4, w4, 1 - mov w1, 1 - strh w4, [x3,1160] -.L2222: - cbnz w0, .L2223 - add x0, x2, :lo12:.LANCHOR2 - ldr x3, [x0,2688] - ldr w0, [x3,20] - add w1, w1, w0 - ldr w0, [x3,16] - cmp w0, w1 - bcc .L2224 -.L2223: - add x2, x2, :lo12:.LANCHOR2 - ldr x0, [x2,2688] - ldr w1, [x0,16] - str w1, [x0,20] - mov w1, 17221 - movk w1, 0x4254, lsl 16 - str w1, [x0] - ldr x0, [x2,2688] - ldrh w1, [x2,2672] - str wzr, [x0,4] + ldr x1, [x0, 2688] + ldr w2, [x1, 16] + str w2, [x1, 20] + mov w2, 17221 + movk w2, 0x4254, lsl 16 + str w2, [x1] + ldr x2, [x0, 2688] + ldrh w1, [x0, 2672] lsl w3, w1, 9 - str w3, [x0,12] - ldr w3, [x0,8] - ldr x2, [x2,2688] + str wzr, [x2, 4] + str w3, [x2, 12] + ldr w3, [x2, 8] add w3, w3, 1 - str w3, [x0,8] + str w3, [x2, 8] + ldr x2, [x0, 2688] mov w0, 64 bl FtlVendorPartWrite bl Ftl_save_ext_data -.L2224: mov w0, 0 ldp x29, x30, [sp], 16 ret +.L2193: + mov w2, 32 + b .L2189 +.L2196: + mov w0, 0 + ret .size FtlEctTblFlush, .-FtlEctTblFlush .align 2 .global Ftl_load_ext_data @@ -14297,267 +14015,264 @@ Ftl_load_ext_data: mov w1, 1 mov w0, 0 add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x19, .LANCHOR5 - str x21, [sp,32] - add x20, x19, :lo12:.LANCHOR5 - add x21, x20, 640 - mov x2, x21 + stp x19, x20, [sp, 16] + adrp x19, .LANCHOR4 + add x20, x19, :lo12:.LANCHOR4 + stp x21, x22, [sp, 32] + add x22, x20, 1152 + mov w21, 19539 + mov x2, x22 bl FtlVendorPartRead - ldr w1, [x20,640] - mov w0, 19539 - movk w0, 0x4654, lsl 16 - cmp w1, w0 - beq .L2229 - mov x0, x21 - mov w1, 0 + ldr w0, [x20, 1152] + movk w21, 0x4654, lsl 16 + cmp w0, w21 + beq .L2199 mov w2, 512 + mov w1, 0 + mov x0, x22 bl ftl_memset - mov w0, 19539 - movk w0, 0x4654, lsl 16 - str w0, [x20,640] -.L2229: - add x1, x19, :lo12:.LANCHOR5 + str w21, [x20, 1152] +.L2199: + add x1, x19, :lo12:.LANCHOR4 mov w2, 19539 movk w2, 0x4654, lsl 16 - add x0, x1, 640 + add x0, x1, 1152 adrp x20, .LANCHOR2 - ldr w3, [x1,640] + ldr w3, [x1, 1152] cmp w3, w2 - bne .L2230 - ldr w2, [x1,728] - str w2, [x1,1152] - ldr w2, [x1,732] - str w2, [x1,1156] + bne .L2200 + ldr w2, [x1, 1240] + str w2, [x1, 1664] + ldr w2, [x1, 1244] + str w2, [x1, 1668] add x1, x20, :lo12:.LANCHOR2 - ldr w2, [x0,8] - str w2, [x1,2404] - ldr w2, [x0,12] - str w2, [x1,2408] - ldr w2, [x0,16] - str w2, [x1,2424] - ldr w2, [x0,20] - str w2, [x1,2420] - ldr w2, [x0,28] - str w2, [x1,2432] - ldr w2, [x0,32] - str w2, [x1,2436] - ldr w2, [x0,36] - str w2, [x1,2412] - ldr w2, [x0,40] - str w2, [x1,2416] - ldr w2, [x0,44] - str w2, [x1,2440] - ldr w2, [x0,48] - ldr w0, [x0,60] - str w2, [x1,2444] - str w0, [x1,2392] -.L2230: - add x0, x19, :lo12:.LANCHOR5 + ldr w2, [x0, 8] + str w2, [x1, 2404] + ldr w2, [x0, 12] + str w2, [x1, 2408] + ldr w2, [x0, 16] + str w2, [x1, 2424] + ldr w2, [x0, 20] + str w2, [x1, 2420] + ldr w2, [x0, 28] + str w2, [x1, 2432] + ldr w2, [x0, 32] + str w2, [x1, 2436] + ldr w2, [x0, 36] + str w2, [x1, 2412] + ldr w2, [x0, 40] + str w2, [x1, 2416] + ldr w2, [x0, 44] + str w2, [x1, 2440] + ldr w2, [x0, 48] + ldr w0, [x0, 60] + str w0, [x1, 2392] + str w2, [x1, 2444] +.L2200: + add x0, x19, :lo12:.LANCHOR4 add x1, x20, :lo12:.LANCHOR2 mov w2, 34661 - add x0, x0, 640 + add x0, x0, 1152 movk w2, 0x1234, lsl 16 - ldr w3, [x0,68] - str wzr, [x1,2388] + ldr w3, [x0, 68] + str wzr, [x1, 2388] cmp w3, w2 - bne .L2231 - ldrb w2, [x1,1220] - cbz w2, .L2232 - str wzr, [x0,68] + bne .L2201 + ldrb w2, [x1, 1220] + cbz w2, .L2202 + str wzr, [x0, 68] bl Ftl_save_ext_data - b .L2231 -.L2232: - mov w0, 1 - str w0, [x1,2096] - adrp x0, .LC47 - adrp x1, .LC69 - add x0, x0, :lo12:.LC47 - add x1, x1, :lo12:.LC69 - bl printk -.L2231: +.L2201: add x0, x20, :lo12:.LANCHOR2 - add x19, x19, :lo12:.LANCHOR5 - ldr x21, [sp,32] - ldrh w2, [x0,2336] - ldr w3, [x0,2428] - ldr w1, [x0,2432] - ldrh w0, [x0,2284] - madd w1, w2, w3, w1 + add x19, x19, :lo12:.LANCHOR4 + ldp x21, x22, [sp, 32] + ldrh w1, [x0, 2336] + ldr w3, [x0, 2428] + ldr w2, [x0, 2432] + ldrh w0, [x0, 2284] + madd w1, w1, w3, w2 udiv w0, w1, w0 - str w0, [x19,1164] - ldp x19, x20, [sp,16] + str w0, [x19, 1676] + ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 48 ret +.L2202: + mov w0, 1 + str w0, [x1, 2096] + adrp x1, .LC69 + adrp x0, .LC48 + add x1, x1, :lo12:.LC69 + add x0, x0, :lo12:.LC48 + bl printk + b .L2201 .size Ftl_load_ext_data, .-Ftl_load_ext_data .align 2 .global ftl_scan_all_ppa .type ftl_scan_all_ppa, %function ftl_scan_all_ppa: sub sp, sp, #112 - stp x29, x30, [sp,16] + stp x29, x30, [sp, 16] add x29, sp, 16 - stp x21, x22, [sp,48] - adrp x21, .LANCHOR2 - add x0, x21, :lo12:.LANCHOR2 - stp x25, x26, [sp,80] - stp x23, x24, [sp,64] - stp x19, x20, [sp,32] - stp x27, x28, [sp,96] - adrp x24, .LC70 - adrp x25, .LC71 - ldrh w19, [x0,2342] - adrp x26, .LC72 - add x24, x24, :lo12:.LC70 - add x25, x25, :lo12:.LC71 - sub w19, w19, #16 - add x26, x26, :lo12:.LC72 -.L2234: - add x20, x21, :lo12:.LANCHOR2 - ldrh w0, [x20,2342] - cmp w19, w0 - bge .L2249 - uxth w27, w19 - mov w0, w27 - bl ftl_get_blk_mode - ldrb w1, [x20,1220] - cbz w1, .L2235 - ldrh w1, [x20,2284] - cmp w19, w1 - bge .L2236 - ldrh w1, [x20,2358] - cmp w19, w1 - blt .L2236 -.L2235: - cmp w0, 1 - bne .L2237 -.L2236: - add x0, x21, :lo12:.LANCHOR2 - mov w22, -2147483648 - ldrh w23, [x0,2346] - b .L2238 -.L2237: - add x0, x21, :lo12:.LANCHOR2 - mov w22, 0 - ldrh w23, [x0,2344] -.L2238: - mov x0, x24 - mov w1, w19 - mov w2, w23 - mov w3, w22 - bl printk - mov w0, w27 - bl FtlBbmIsBadBlock - cbz w0, .L2239 - mov x0, x25 - mov w1, w19 - mov w2, w23 - mov w3, w22 - bl printk -.L2239: - add x28, x21, :lo12:.LANCHOR2 - mov w27, 0 - add x20, x28, 2936 - add w22, w22, w19, lsl 10 -.L2240: - cmp w27, w23 - beq .L2250 - add w0, w22, w27 - str w0, [x20,4] - ldr x0, [x28,2576] - mov w1, 1 - str x0, [x20,8] - mov w2, 0 - ldr x0, [x28,2640] - add w27, w27, 1 - str x0, [x20,16] - mov x0, x20 - str wzr, [x20] - bl FlashReadPages - ldr x7, [x20,8] - ldr x6, [x20,16] - ldr w0, [x7,4] - str w0, [sp] - mov x0, x26 - ldr w3, [x6] - ldr w4, [x6,4] - ldr w5, [x6,8] - ldr w1, [x20,4] - ldr w2, [x20] - ldr w6, [x6,12] - ldr w7, [x7] - bl printk - b .L2240 -.L2250: - add w19, w19, 1 - b .L2234 -.L2249: + stp x19, x20, [sp, 32] + adrp x19, .LANCHOR2 + add x19, x19, :lo12:.LANCHOR2 + stp x23, x24, [sp, 64] + stp x25, x26, [sp, 80] + add x20, x19, 2936 + adrp x26, .LC70 + add x26, x26, :lo12:.LC70 + ldrh w23, [x19, 2342] + stp x21, x22, [sp, 48] + sub w23, w23, #16 + str x27, [sp, 96] + lsl w25, w23, 10 +.L2205: + ldrh w0, [x19, 2342] + cmp w23, w0 + blt .L2213 adrp x1, .LANCHOR3 - adrp x0, .LC73 add x1, x1, :lo12:.LANCHOR3 - add x0, x0, :lo12:.LC73 add x1, x1, 208 + adrp x0, .LC73 + add x0, x0, :lo12:.LC73 bl printk - sub sp, x29, #16 - ldp x19, x20, [sp,32] - ldp x21, x22, [sp,48] - ldp x23, x24, [sp,64] - ldp x25, x26, [sp,80] - ldp x27, x28, [sp,96] - ldp x29, x30, [sp,16] + ldp x19, x20, [sp, 32] + ldp x21, x22, [sp, 48] + ldp x23, x24, [sp, 64] + ldp x25, x26, [sp, 80] + ldp x29, x30, [sp, 16] + ldr x27, [sp, 96] add sp, sp, 112 ret +.L2213: + and w22, w23, 65535 + mov w0, w22 + bl ftl_get_blk_mode + ldrb w1, [x19, 1220] + cbz w1, .L2206 + ldrh w1, [x19, 2284] + cmp w23, w1 + bge .L2207 + ldrh w1, [x19, 2358] + cmp w23, w1 + blt .L2207 +.L2206: + cmp w0, 1 + bne .L2208 +.L2207: + ldrh w24, [x19, 2346] + mov w21, -2147483648 +.L2209: + mov w3, w21 + mov w2, w24 + mov w1, w23 + mov x0, x26 + bl printk + mov w0, w22 + bl FtlBbmIsBadBlock + cbz w0, .L2210 + adrp x0, .LC71 + mov w3, w21 + mov w2, w24 + mov w1, w23 + add x0, x0, :lo12:.LC71 + bl printk +.L2210: + adrp x27, .LC72 + add w21, w21, w25 + add x27, x27, :lo12:.LC72 + mov w22, 0 +.L2211: + cmp w22, w24 + bne .L2212 + add w23, w23, 1 + add w25, w25, 1024 + b .L2205 +.L2208: + ldrh w24, [x19, 2344] + mov w21, 0 + b .L2209 +.L2212: + add w0, w21, w22 + stp wzr, w0, [x20] + ldr x0, [x19, 2576] + mov w2, 0 + str x0, [x20, 8] + mov w1, 1 + ldr x0, [x19, 2640] + add w22, w22, 1 + str x0, [x20, 16] + mov x0, x20 + bl FlashReadPages + ldp x1, x0, [x20, 8] + ldr w2, [x1, 4] + str w2, [sp] + ldp w3, w4, [x0] + ldp w5, w6, [x0, 8] + mov x0, x27 + ldr w7, [x1] + ldp w2, w1, [x20] + bl printk + b .L2211 .size ftl_scan_all_ppa, .-ftl_scan_all_ppa .align 2 .global update_multiplier_value .type update_multiplier_value, %function update_multiplier_value: - stp x29, x30, [sp, -80]! - add x29, sp, 0 - stp x19, x20, [sp,16] - uxth w20, w0 + and w8, w0, 65535 adrp x0, .LANCHOR2 add x1, x0, :lo12:.LANCHOR2 - str x25, [sp,64] - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - mov x22, 0 - mov x21, x0 - ldrh w24, [x1,2276] - mov w19, w22 - ldrh w25, [x1,2344] - mov x23, x1 -.L2252: - cmp w24, w22, uxth - bls .L2259 - add x0, x23, 2304 - mov w1, w20 - ldrb w0, [x0,x22] + mov x9, 0 + mov w6, 0 + mov x5, x0 + add x7, x1, 2304 + ldrh w10, [x1, 2276] + ldrh w11, [x1, 2344] + cmp w10, w9, uxth + bhi .L2233 + cbz w6, .L2231 + mov w0, 32768 + sdiv w6, w0, w6 +.L2232: + add x0, x5, :lo12:.LANCHOR2 + mov w1, 6 + ldr x0, [x0, 2808] + umaddl x8, w8, w1, x0 + mov w0, 0 + strh w6, [x8, 4] + ret +.L2226: + mov w6, 0 + b .L2225 +.L2231: + mov w6, 0 + b .L2232 +.L2233: + stp x29, x30, [sp, -16]! + add x29, sp, 0 +.L2224: + ldrb w0, [x7, x9] + mov w1, w8 bl V2P_block bl FtlBbmIsBadBlock - cbnz w0, .L2253 - add w19, w19, w25 - uxth w19, w19 -.L2253: - add x22, x22, 1 - b .L2252 -.L2259: - cbz w19, .L2255 + cbnz w0, .L2223 + add w6, w6, w11 + and w6, w6, 65535 +.L2223: + add x9, x9, 1 + cmp w10, w9, uxth + bhi .L2224 + cbz w6, .L2226 mov w0, 32768 - sdiv w19, w0, w19 -.L2255: - add x0, x21, :lo12:.LANCHOR2 + sdiv w6, w0, w6 +.L2225: + add x0, x5, :lo12:.LANCHOR2 mov w1, 6 - umull x20, w20, w1 - ldr x0, [x0,2808] - add x20, x0, x20 + ldr x0, [x0, 2808] + umaddl x8, w8, w1, x0 mov w0, 0 - strh w19, [x20,4] - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldr x25, [sp,64] - ldp x29, x30, [sp], 80 + strh w6, [x8, 4] + ldp x29, x30, [sp], 16 ret .size update_multiplier_value, .-update_multiplier_value .align 2 @@ -14565,20 +14280,22 @@ update_multiplier_value: .type GetFreeBlockMinEraseCount, %function GetFreeBlockMinEraseCount: adrp x0, .LANCHOR4+768 - ldr x1, [x0,#:lo12:.LANCHOR4+768] - mov w0, w1 - cbz x1, .L2261 - adrp x0, .LANCHOR2 - add x0, x0, :lo12:.LANCHOR2 - ldr x2, [x0,2808] - ldr x0, [x0,2696] - sub x1, x1, x2 + ldr x0, [x0, #:lo12:.LANCHOR4+768] + cbz x0, .L2236 + adrp x1, .LANCHOR2 + add x1, x1, :lo12:.LANCHOR2 + ldr x2, [x1, 2808] + ldr x1, [x1, 2696] + sub x0, x0, x2 mov x2, -6148914691236517206 - asr x1, x1, 1 - madd x1, x2, x1, x1 - and x1, x1, 65535 - ldrh w0, [x0,x1,lsl 1] -.L2261: + asr x0, x0, 1 + movk x2, 0xaaab, lsl 0 + mul x0, x0, x2 + and x0, x0, 65535 + ldrh w0, [x1, x0, lsl 1] + ret +.L2236: + mov w0, 0 ret .size GetFreeBlockMinEraseCount, .-GetFreeBlockMinEraseCount .align 2 @@ -14586,47 +14303,48 @@ GetFreeBlockMinEraseCount: .type GetFreeBlockMaxEraseCount, %function GetFreeBlockMaxEraseCount: adrp x2, .LANCHOR4 - uxth w4, w0 add x2, x2, :lo12:.LANCHOR4 - ldr x1, [x2,768] - mov w0, w1 - cbz x1, .L2264 - ldrh w2, [x2,776] - mov w0, 7 - mov x3, -6148914691236517206 + and w0, w0, 65535 + ldr x1, [x2, 768] + cbz x1, .L2244 + ldrh w2, [x2, 776] + mov w3, 7 mov w6, 6 mov w7, 65535 - mul w2, w2, w0 + mul w2, w2, w3 asr w2, w2, 3 - cmp w4, w2 - csel w4, w2, w4, gt + cmp w0, w2 + csel w0, w2, w0, gt adrp x2, .LANCHOR2 - add x0, x2, :lo12:.LANCHOR2 - ldr x0, [x0,2808] - sub x1, x1, x0 + add x3, x2, :lo12:.LANCHOR2 + ldr x4, [x3, 2808] + mov x3, -6148914691236517206 + movk x3, 0xaaab, lsl 0 + sub x1, x1, x4 asr x1, x1, 1 - madd x1, x3, x1, x1 + mul x1, x1, x3 mov w3, 0 - uxth w1, w1 -.L2266: - cmp w3, w4 - beq .L2269 + and w1, w1, 65535 +.L2240: + cmp w0, w3 + beq .L2243 umull x5, w1, w6 - ldrh w5, [x0,x5] + ldrh w5, [x4, x5] cmp w5, w7 - bne .L2267 -.L2269: + bne .L2241 +.L2243: add x2, x2, :lo12:.LANCHOR2 ubfiz x1, x1, 1, 16 - ldr x0, [x2,2696] - ldrh w0, [x0,x1] - b .L2264 -.L2267: + ldr x0, [x2, 2696] + ldrh w0, [x0, x1] + ret +.L2241: add w3, w3, 1 mov w1, w5 - uxth w3, w3 - b .L2266 -.L2264: + and w3, w3, 65535 + b .L2240 +.L2244: + mov w0, 0 ret .size GetFreeBlockMaxEraseCount, .-GetFreeBlockMaxEraseCount .align 2 @@ -14635,550 +14353,547 @@ GetFreeBlockMaxEraseCount: FtlPrintInfo2buf: stp x29, x30, [sp, -112]! adrp x1, .LC74 - add x29, sp, 0 - stp x23, x24, [sp,48] - adrp x24, .LANCHOR2 add x1, x1, :lo12:.LC74 - stp x21, x22, [sp,32] - add x22, x24, :lo12:.LANCHOR2 - mov x23, x0 - stp x19, x20, [sp,16] - stp x25, x26, [sp,64] - stp x27, x28, [sp,80] + add x29, sp, 0 + stp x23, x24, [sp, 48] + adrp x23, .LANCHOR2 + stp x21, x22, [sp, 32] + add x22, x23, :lo12:.LANCHOR2 + stp x19, x20, [sp, 16] + mov x24, x0 + stp x25, x26, [sp, 64] + add x20, x24, 12 + stp x27, x28, [sp, 80] bl strcpy - add x20, x23, 12 - ldr w2, [x22,1192] - adrp x1, .LC75 + ldr w2, [x22, 1192] mov x0, x20 + adrp x1, .LC75 add x1, x1, :lo12:.LC75 bl sprintf add x20, x20, w0, sxtw - adrp x1, .LC76 - ldr w2, [x22,2360] + ldr w2, [x22, 2360] mov x0, x20 + adrp x1, .LC76 add x1, x1, :lo12:.LC76 bl sprintf add x20, x20, w0, sxtw adrp x0, .LANCHOR1+3448 - ldr w0, [x0,#:lo12:.LANCHOR1+3448] + ldr w0, [x0, #:lo12:.LANCHOR1+3448] cmp w0, 1 - beq .L2272 - sub w0, w20, w23 - b .L2273 -.L2272: - add x0, x29, 96 - add x1, x29, 100 - add x2, x29, 104 + beq .L2246 + sub w0, w20, w24 +.L2245: + 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 +.L2246: add x3, x29, 108 - adrp x26, .LANCHOR4 + add x2, x29, 104 + add x1, x29, 100 + add x0, x29, 96 bl NandcGetTimeCfg - add x25, x26, :lo12:.LANCHOR4 - ldr w4, [x29,104] + adrp x26, .LANCHOR4 + ldp w4, w5, [x29, 104] adrp x1, .LC77 - ldr w5, [x29,108] - mov x0, x20 - ldr w3, [x29,100] + ldp w2, w3, [x29, 96] add x1, x1, :lo12:.LC77 - ldr w2, [x29,96] + mov x0, x20 + add x25, x26, :lo12:.LANCHOR4 bl sprintf add x21, x20, w0, sxtw + mov x0, x21 adrp x1, .LC78 - mov x0, x21 add x1, x1, :lo12:.LC78 - add x21, x21, 10 - adrp x20, .LANCHOR5 bl strcpy - add x20, x20, :lo12:.LANCHOR5 - ldr w2, [x22,2924] - adrp x1, .LC79 + ldr w2, [x22, 2924] + add x21, x21, 10 mov x0, x21 + adrp x1, .LC79 add x1, x1, :lo12:.LC79 bl sprintf add x21, x21, w0, sxtw - ldr w2, [x25,1068] - adrp x1, .LC80 + ldr w2, [x25, 1068] mov x0, x21 + adrp x1, .LC80 add x1, x1, :lo12:.LC80 bl sprintf add x21, x21, w0, sxtw - ldr w2, [x22,2424] - adrp x1, .LC81 + ldr w2, [x22, 2424] mov x0, x21 + adrp x1, .LC81 add x1, x1, :lo12:.LC81 bl sprintf add x21, x21, w0, sxtw - ldr w2, [x22,2412] - adrp x1, .LC82 + ldr w2, [x22, 2412] mov x0, x21 + adrp x1, .LC82 add x1, x1, :lo12:.LC82 bl sprintf add x21, x21, w0, sxtw - ldr w2, [x22,2408] - adrp x1, .LC83 + ldr w2, [x22, 2408] mov x0, x21 + adrp x1, .LC83 add x1, x1, :lo12:.LC83 bl sprintf add x21, x21, w0, sxtw - ldr w2, [x22,2416] - adrp x1, .LC84 + ldr w2, [x22, 2416] mov x0, x21 + adrp x1, .LC84 add x1, x1, :lo12:.LC84 bl sprintf add x21, x21, w0, sxtw - ldr w2, [x22,2420] - adrp x1, .LC85 + ldr w2, [x22, 2420] mov x0, x21 + adrp x1, .LC85 add x1, x1, :lo12:.LC85 bl sprintf add x21, x21, w0, sxtw - ldr w2, [x22,2404] - adrp x1, .LC86 + ldr w2, [x22, 2404] mov x0, x21 + adrp x1, .LC86 add x1, x1, :lo12:.LC86 bl sprintf add x21, x21, w0, sxtw - ldr w2, [x20,1152] - adrp x1, .LC87 + ldr w2, [x25, 1664] mov x0, x21 + adrp x1, .LC87 add x1, x1, :lo12:.LC87 lsr w2, w2, 11 bl sprintf + ldr w2, [x25, 1668] add x21, x21, w0, sxtw - ldr w2, [x20,1156] - adrp x1, .LC88 mov x0, x21 + adrp x1, .LC88 add x1, x1, :lo12:.LC88 lsr w2, w2, 11 bl sprintf + ldr w2, [x22, 2396] add x21, x21, w0, sxtw - ldr w2, [x22,2396] - adrp x1, .LC89 mov x0, x21 + adrp x1, .LC89 add x1, x1, :lo12:.LC89 bl sprintf add x21, x21, w0, sxtw - ldr w2, [x22,2400] + ldr w2, [x22, 2400] adrp x1, .LC90 add x1, x1, :lo12:.LC90 mov x0, x21 bl sprintf add x21, x21, w0, sxtw bl FtlBbtCalcTotleCnt - uxth w3, w0 - ldrh w2, [x22,2830] - adrp x1, .LC91 + and w3, w0, 65535 + ldrh w2, [x22, 2830] mov x0, x21 + adrp x1, .LC91 add x1, x1, :lo12:.LC91 bl sprintf add x21, x21, w0, sxtw - ldrh w2, [x25,776] - adrp x1, .LC92 + ldrh w2, [x25, 776] mov x0, x21 + adrp x1, .LC92 add x1, x1, :lo12:.LC92 bl sprintf add x21, x21, w0, sxtw - ldr w2, [x22,2428] - adrp x1, .LC93 + ldr w2, [x22, 2428] mov x0, x21 + adrp x1, .LC93 add x1, x1, :lo12:.LC93 bl sprintf add x21, x21, w0, sxtw - ldr w2, [x22,2432] - adrp x1, .LC94 + ldr w2, [x22, 2432] mov x0, x21 + adrp x1, .LC94 add x1, x1, :lo12:.LC94 bl sprintf add x21, x21, w0, sxtw - ldr w2, [x20,1164] - adrp x1, .LC95 + ldr w2, [x25, 1676] mov x0, x21 + adrp x1, .LC95 add x1, x1, :lo12:.LC95 bl sprintf add x21, x21, w0, sxtw - ldr w2, [x22,2436] - adrp x1, .LC96 + ldr w2, [x22, 2436] mov x0, x21 + adrp x1, .LC96 add x1, x1, :lo12:.LC96 bl sprintf add x21, x21, w0, sxtw - ldr w2, [x22,2440] - adrp x1, .LC97 + ldr w2, [x22, 2440] mov x0, x21 + adrp x1, .LC97 add x1, x1, :lo12:.LC97 bl sprintf add x21, x21, w0, sxtw - ldr w2, [x22,2444] - adrp x1, .LC98 + ldr w2, [x22, 2444] mov x0, x21 + adrp x1, .LC98 add x1, x1, :lo12:.LC98 bl sprintf add x21, x21, w0, sxtw - ldrh w2, [x25,726] - adrp x1, .LC99 + ldrh w2, [x25, 726] mov x0, x21 + adrp x1, .LC99 add x1, x1, :lo12:.LC99 bl sprintf add x21, x21, w0, sxtw - ldrh w2, [x25,724] - adrp x1, .LC100 + ldrh w2, [x25, 724] mov x0, x21 + adrp x1, .LC100 add x1, x1, :lo12:.LC100 bl sprintf add x21, x21, w0, sxtw - ldr w2, [x22,1224] - adrp x1, .LC101 + ldr w2, [x22, 1224] mov x0, x21 + adrp x1, .LC101 add x1, x1, :lo12:.LC101 bl sprintf add x21, x21, w0, sxtw - ldr w2, [x22,2376] - adrp x1, .LC102 + ldr w2, [x22, 2376] mov x0, x21 + adrp x1, .LC102 add x1, x1, :lo12:.LC102 bl sprintf add x21, x21, w0, sxtw - ldr w2, [x22,2272] - adrp x1, .LC103 + ldr w2, [x22, 2272] mov x0, x21 + adrp x1, .LC103 add x1, x1, :lo12:.LC103 bl sprintf add x21, x21, w0, sxtw - ldrh w2, [x22,2998] - adrp x1, .LC104 + ldrh w2, [x22, 2998] mov x0, x21 + adrp x1, .LC104 add x1, x1, :lo12:.LC104 bl sprintf add x21, x21, w0, sxtw - ldrh w2, [x22,2284] - adrp x1, .LC105 + ldrh w2, [x22, 2284] mov x0, x21 + adrp x1, .LC105 add x1, x1, :lo12:.LC105 bl sprintf add x21, x21, w0, sxtw - ldrh w2, [x20,588] - adrp x1, .LC106 + ldrh w2, [x25, 1096] mov x0, x21 + adrp x1, .LC106 add x1, x1, :lo12:.LC106 bl sprintf add x21, x21, w0, sxtw - ldr w2, [x22,2288] - adrp x1, .LC107 + ldr w2, [x22, 2288] mov x0, x21 + adrp x1, .LC107 add x1, x1, :lo12:.LC107 bl sprintf add x21, x21, w0, sxtw - ldrh w2, [x25,1072] - adrp x1, .LC108 + ldrh w2, [x25, 1072] mov x0, x21 + adrp x1, .LC108 add x1, x1, :lo12:.LC108 bl sprintf add x21, x21, w0, sxtw - ldrh w2, [x22,2824] - adrp x1, .LC109 + ldrh w2, [x22, 2824] mov x0, x21 + adrp x1, .LC109 add x1, x1, :lo12:.LC109 bl sprintf add x21, x21, w0, sxtw - ldrh w2, [x25,786] - adrp x1, .LC110 + ldrh w2, [x25, 786] mov x0, x21 + adrp x1, .LC110 add x1, x1, :lo12:.LC110 bl sprintf add x21, x21, w0, sxtw - ldrb w2, [x25,790] - adrp x1, .LC111 + ldrb w2, [x25, 790] mov x0, x21 + adrp x1, .LC111 add x1, x1, :lo12:.LC111 bl sprintf add x21, x21, w0, sxtw - ldrh w2, [x25,784] - adrp x1, .LC112 + ldrh w2, [x25, 784] mov x0, x21 + adrp x1, .LC112 add x1, x1, :lo12:.LC112 bl sprintf add x21, x21, w0, sxtw - ldrb w2, [x25,792] - adrp x1, .LC113 + ldrb w2, [x25, 792] mov x0, x21 + adrp x1, .LC113 add x1, x1, :lo12:.LC113 bl sprintf add x21, x21, w0, sxtw - ldrh w2, [x25,788] - adrp x1, .LC114 + ldrh w2, [x25, 788] mov x0, x21 + adrp x1, .LC114 add x1, x1, :lo12:.LC114 bl sprintf add x21, x21, w0, sxtw - ldrh w3, [x25,784] - adrp x1, .LC115 - ldr x2, [x22,2712] + ldrh w1, [x25, 784] + ldr x0, [x22, 2712] + ldrh w2, [x0, x1, lsl 1] mov x0, x21 + adrp x1, .LC115 add x1, x1, :lo12:.LC115 - ldrh w2, [x2,x3,lsl 1] bl sprintf add x21, x21, w0, sxtw - ldrh w2, [x25,834] - adrp x1, .LC116 + ldrh w2, [x25, 834] mov x0, x21 + adrp x1, .LC116 add x1, x1, :lo12:.LC116 bl sprintf add x21, x21, w0, sxtw - ldrb w2, [x25,838] - adrp x1, .LC117 + ldrb w2, [x25, 838] mov x0, x21 + adrp x1, .LC117 add x1, x1, :lo12:.LC117 bl sprintf add x21, x21, w0, sxtw - ldrh w2, [x25,832] - adrp x1, .LC118 + ldrh w2, [x25, 832] mov x0, x21 + adrp x1, .LC118 add x1, x1, :lo12:.LC118 bl sprintf add x21, x21, w0, sxtw - ldrb w2, [x25,840] - adrp x1, .LC119 + ldrb w2, [x25, 840] mov x0, x21 + adrp x1, .LC119 add x1, x1, :lo12:.LC119 bl sprintf add x21, x21, w0, sxtw - ldrh w2, [x25,836] - adrp x1, .LC120 + ldrh w2, [x25, 836] mov x0, x21 + adrp x1, .LC120 add x1, x1, :lo12:.LC120 bl sprintf add x21, x21, w0, sxtw - ldrh w3, [x25,832] - adrp x1, .LC121 - ldr x2, [x22,2712] + ldrh w1, [x25, 832] + ldr x0, [x22, 2712] + ldrh w2, [x0, x1, lsl 1] mov x0, x21 + adrp x1, .LC121 add x1, x1, :lo12:.LC121 - ldrh w2, [x2,x3,lsl 1] bl sprintf add x21, x21, w0, sxtw - ldrh w2, [x25,882] - adrp x1, .LC122 + ldrh w2, [x25, 882] mov x0, x21 + adrp x1, .LC122 add x1, x1, :lo12:.LC122 bl sprintf add x21, x21, w0, sxtw - ldrb w2, [x25,886] - adrp x1, .LC123 + ldrb w2, [x25, 886] mov x0, x21 + adrp x1, .LC123 add x1, x1, :lo12:.LC123 bl sprintf add x21, x21, w0, sxtw - ldrh w2, [x25,880] - adrp x1, .LC124 + ldrh w2, [x25, 880] mov x0, x21 + adrp x1, .LC124 add x1, x1, :lo12:.LC124 bl sprintf add x21, x21, w0, sxtw - ldrb w2, [x25,888] - adrp x1, .LC125 + ldrb w2, [x25, 888] mov x0, x21 + adrp x1, .LC125 add x1, x1, :lo12:.LC125 bl sprintf add x21, x21, w0, sxtw - ldrh w2, [x25,884] - adrp x1, .LC126 + ldrh w2, [x25, 884] mov x0, x21 + adrp x1, .LC126 add x1, x1, :lo12:.LC126 bl sprintf add x21, x21, w0, sxtw - ldrh w2, [x20,594] - adrp x1, .LC127 + ldrh w2, [x25, 1106] mov x0, x21 + adrp x1, .LC127 add x1, x1, :lo12:.LC127 bl sprintf add x21, x21, w0, sxtw - ldrb w2, [x20,598] - adrp x1, .LC128 + ldrb w2, [x25, 1110] mov x0, x21 + adrp x1, .LC128 add x1, x1, :lo12:.LC128 bl sprintf add x21, x21, w0, sxtw - ldrh w2, [x20,592] - adrp x1, .LC129 + ldrh w2, [x25, 1104] mov x0, x21 + adrp x1, .LC129 add x1, x1, :lo12:.LC129 bl sprintf add x21, x21, w0, sxtw - ldrb w2, [x20,600] - adrp x1, .LC130 + ldrb w2, [x25, 1112] mov x0, x21 + adrp x1, .LC130 add x1, x1, :lo12:.LC130 bl sprintf add x21, x21, w0, sxtw - ldrh w2, [x20,596] - adrp x1, .LC131 + ldrh w2, [x25, 1108] mov x0, x21 + adrp x1, .LC131 add x1, x1, :lo12:.LC131 bl sprintf add x21, x21, w0, sxtw - ldr w3, [x22,2392] + ldr w5, [x25, 1228] adrp x1, .LC132 - ldr w2, [x22,2096] + ldr w3, [x25, 1232] add x1, x1, :lo12:.LC132 - ldr w4, [x20,724] + ldr w4, [x25, 1236] + ldr w0, [x22, 2096] + ldr w2, [x22, 2392] + orr w2, w0, w2, lsl 8 mov x0, x21 - ldr w5, [x20,716] - orr w2, w2, w3, lsl 8 - ldr w3, [x20,720] bl sprintf add x19, x21, w0, sxtw - ldr w2, [x20,712] - adrp x1, .LC133 + ldr w2, [x25, 1224] mov x0, x19 + adrp x1, .LC133 add x1, x1, :lo12:.LC133 bl sprintf add x19, x19, w0, sxtw - ldr w2, [x20,736] - adrp x1, .LC134 + ldr w2, [x25, 1248] mov x0, x19 + adrp x1, .LC134 add x1, x1, :lo12:.LC134 bl sprintf add x19, x19, w0, sxtw - ldrh w2, [x22,2480] - adrp x1, .LC135 + ldrh w2, [x22, 2480] mov x0, x19 + adrp x1, .LC135 add x1, x1, :lo12:.LC135 bl sprintf add x19, x19, w0, sxtw - ldrh w2, [x22,2482] - adrp x1, .LC136 + ldrh w2, [x22, 2482] mov x0, x19 + adrp x1, .LC136 add x1, x1, :lo12:.LC136 bl sprintf add x19, x19, w0, sxtw - ldr w2, [x22,2464] - adrp x1, .LC137 + ldr w2, [x22, 2464] mov x0, x19 + adrp x1, .LC137 add x1, x1, :lo12:.LC137 bl sprintf add x19, x19, w0, sxtw - ldrh w2, [x22,2484] + ldrh w2, [x22, 2484] adrp x1, .LC138 add x1, x1, :lo12:.LC138 mov x0, x19 bl sprintf add x19, x19, w0, sxtw bl GetFreeBlockMinEraseCount - uxth w2, w0 + and w2, w0, 65535 adrp x1, .LC139 mov x0, x19 add x1, x1, :lo12:.LC139 bl sprintf add x19, x19, w0, sxtw - ldrh w0, [x25,776] + ldrh w0, [x25, 776] bl GetFreeBlockMaxEraseCount - uxth w2, w0 + and w2, w0, 65535 adrp x1, .LC140 mov x0, x19 add x1, x1, :lo12:.LC140 bl sprintf add x19, x19, w0, sxtw - ldrh w0, [x20,592] + ldrh w0, [x25, 1104] mov w1, 65535 cmp w0, w1 - beq .L2274 - ubfiz x2, x0, 1, 16 - ldr x3, [x22,2712] - adrp x1, .LC141 + beq .L2248 + ldr x1, [x22, 2712] + ubfiz x0, x0, 1, 16 + ldrh w2, [x1, x0] mov x0, x19 + adrp x1, .LC141 add x1, x1, :lo12:.LC141 - ldrh w2, [x3,x2] bl sprintf add x19, x19, w0, sxtw -.L2274: +.L2248: mov w0, 0 adrp x22, .LC142 + bl List_get_gc_head_node + add x21, x23, :lo12:.LANCHOR2 + and w3, w0, 65535 + add x22, x22, :lo12:.LC142 mov w20, 0 mov w28, 65535 - bl List_get_gc_head_node mov w27, 6 - uxth w3, w0 - add x22, x22, :lo12:.LC142 -.L2276: +.L2250: cmp w3, w28 - beq .L2275 - add x21, x24, :lo12:.LANCHOR2 - ubfiz x6, x3, 1, 16 + beq .L2249 umull x25, w3, w27 + ldr x0, [x21, 2808] + ldr x4, [x21, 2696] + ubfiz x1, x3, 1, 16 + ldr x2, [x21, 2712] + add x0, x0, x25 + ldrh w6, [x4, x1] + ldrh w5, [x0, 4] mov x0, x19 + ldrh w4, [x2, x1] mov w2, w20 - ldr x5, [x21,2808] mov x1, x22 - ldr x4, [x21,2712] add w20, w20, 1 - ldr x7, [x21,2696] - add x5, x5, x25 - ldrh w4, [x4,x6] - ldrh w5, [x5,4] - ldrh w6, [x7,x6] bl sprintf add x19, x19, w0, sxtw - ldr x0, [x21,2808] + ldr x0, [x21, 2808] cmp w20, 16 - ldrh w3, [x0,x25] - bne .L2276 -.L2275: + ldrh w3, [x0, x25] + bne .L2250 +.L2249: add x26, x26, :lo12:.LANCHOR4 - add x1, x24, :lo12:.LANCHOR2 - adrp x22, .LC143 + add x23, x23, :lo12:.LANCHOR2 + adrp x21, .LC143 + add x21, x21, :lo12:.LC143 mov w20, 0 - mov w27, 65535 - add x22, x22, :lo12:.LC143 - ldr x0, [x26,768] + mov w25, 65535 + ldr x0, [x23, 2808] + ldr x3, [x26, 768] mov w26, 6 - ldr x3, [x1,2808] - sub x3, x0, x3 + sub x3, x3, x0 mov x0, -6148914691236517206 asr x3, x3, 1 - madd x3, x0, x3, x3 - uxth w3, w3 -.L2278: - cmp w3, w27 - beq .L2277 - add x21, x24, :lo12:.LANCHOR2 - ubfiz x5, x3, 1, 16 - umull x25, w3, w26 - mov x0, x19 + movk x0, 0xaaab, lsl 0 + mul x3, x3, x0 + and w3, w3, 65535 +.L2252: + cmp w3, w25 + beq .L2251 + umull x22, w3, w26 + ldr x0, [x23, 2808] + ldr x2, [x23, 2696] + ubfiz x1, x3, 1, 16 + add x0, x0, x22 + ldrh w5, [x2, x1] mov w2, w20 - ldr x4, [x21,2808] - mov x1, x22 - ldr x6, [x21,2696] + ldrh w4, [x0, 4] + mov x1, x21 + mov x0, x19 add w20, w20, 1 - add x4, x4, x25 - ldrh w5, [x6,x5] - ldrh w4, [x4,4] bl sprintf add x19, x19, w0, sxtw - ldr x0, [x21,2808] cmp w20, 4 - ldrh w3, [x0,x25] - bne .L2278 -.L2277: - sub w0, w19, w23 -.L2273: - 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 + beq .L2251 + ldr x0, [x23, 2808] + ldrh w3, [x0, x22] + b .L2252 +.L2251: + sub w0, w19, w24 + b .L2245 .size FtlPrintInfo2buf, .-FtlPrintInfo2buf .align 2 .global ftl_proc_ftl_read .type ftl_proc_ftl_read, %function ftl_proc_ftl_read: stp x29, x30, [sp, -32]! - adrp x1, .LC47 adrp x2, .LC144 - add x29, sp, 0 - add x1, x1, :lo12:.LC47 + adrp x1, .LC48 add x2, x2, :lo12:.LC144 - stp x19, x20, [sp,16] + add x29, sp, 0 + add x1, x1, :lo12:.LC48 + stp x19, x20, [sp, 16] mov x20, x0 bl sprintf add x19, x20, w0, sxtw @@ -15186,7 +14901,7 @@ ftl_proc_ftl_read: bl FtlPrintInfo2buf add x0, x19, w0, sxtw sub w0, w0, w20 - ldp x19, x20, [sp,16] + ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 32 ret .size ftl_proc_ftl_read, .-ftl_proc_ftl_read @@ -15194,210 +14909,200 @@ ftl_proc_ftl_read: .global GetSwlReplaceBlock .type GetSwlReplaceBlock, %function GetSwlReplaceBlock: - stp x29, x30, [sp, -96]! - adrp x0, .LANCHOR5 - add x1, x0, :lo12:.LANCHOR5 + stp x29, x30, [sp, -32]! + adrp x9, .LANCHOR4 + add x0, x9, :lo12:.LANCHOR4 + adrp x8, .LANCHOR2 add x29, sp, 0 - stp x19, x20, [sp,16] - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] - adrp x19, .LANCHOR2 - ldr w3, [x1,1164] - add x1, x19, :lo12:.LANCHOR2 - ldr w2, [x1,2444] - cmp w3, w2 - bcs .L2283 - str wzr, [x1,2428] - ldrh w3, [x1,2284] - ldr x5, [x1,2696] + stp x19, x20, [sp, 16] + ldr w2, [x0, 1676] + add x0, x8, :lo12:.LANCHOR2 + ldr w1, [x0, 2444] + cmp w2, w1 + bcs .L2261 + ldrh w2, [x0, 2284] mov x1, 0 -.L2284: - cmp w3, w1 - bls .L2316 - add x4, x19, :lo12:.LANCHOR2 - ldrh w6, [x5,x1,lsl 1] + ldr x4, [x0, 2696] + str wzr, [x0, 2428] +.L2262: + cmp w2, w1 + bhi .L2263 + add x1, x8, :lo12:.LANCHOR2 + add x3, x9, :lo12:.LANCHOR4 + ldr w0, [x1, 2428] + udiv w2, w0, w2 + str w2, [x3, 1676] + ldr w2, [x1, 2432] + sub w0, w0, w2 + ldrh w2, [x1, 2336] + udiv w0, w0, w2 + str w0, [x1, 2428] +.L2264: + add x0, x8, :lo12:.LANCHOR2 + add x1, x9, :lo12:.LANCHOR4 + ldr w10, [x0, 2444] + ldr w11, [x1, 1676] + add w1, w10, 256 + cmp w1, w11 + bls .L2269 + ldr w2, [x0, 2440] + add w1, w10, 768 + cmp w1, w2 + bls .L2269 + ldr w0, [x0, 2096] + cbnz w0, .L2270 +.L2272: + mov w20, 65535 +.L2271: + mov w0, w20 + ldp x19, x20, [sp, 16] + ldp x29, x30, [sp], 32 + ret +.L2263: + ldrh w3, [x4, x1, lsl 1] add x1, x1, 1 - ldr w2, [x4,2428] - add w2, w6, w2 - str w2, [x4,2428] - b .L2284 -.L2316: - add x2, x19, :lo12:.LANCHOR2 - add x4, x0, :lo12:.LANCHOR5 - ldr w1, [x2,2428] - udiv w3, w1, w3 - str w3, [x4,1164] - ldr w3, [x2,2432] - sub w1, w1, w3 - ldrh w3, [x2,2336] - udiv w1, w1, w3 - str w1, [x2,2428] - b .L2286 -.L2283: - ldr w2, [x1,2440] - cmp w3, w2 - bls .L2286 - add w2, w2, 1 - str w2, [x1,2440] - mov w1, 0 -.L2288: - add x2, x19, :lo12:.LANCHOR2 - ldrh w3, [x2,2284] - cmp w1, w3 - bcs .L2286 - ubfiz x3, x1, 1, 32 - ldr x4, [x2,2696] + ldr w5, [x0, 2428] + add w3, w3, w5 + str w3, [x0, 2428] + b .L2262 +.L2261: + ldr w1, [x0, 2440] + cmp w2, w1 + bls .L2264 add w1, w1, 1 - ldrh w2, [x4,x3] + str w1, [x0, 2440] + mov w1, 0 +.L2266: + ldrh w2, [x0, 2284] + cmp w1, w2 + bcs .L2264 + ldr x4, [x0, 2696] + ubfiz x3, x1, 1, 32 + add w1, w1, 1 + ldrh w2, [x4, x3] add w2, w2, 1 - strh w2, [x4,x3] - b .L2288 -.L2286: - add x1, x19, :lo12:.LANCHOR2 - add x0, x0, :lo12:.LANCHOR5 - ldr w21, [x1,2444] - ldr w23, [x0,1164] - add w0, w21, 256 - cmp w0, w23 - bls .L2291 - ldr w2, [x1,2440] - add w0, w21, 768 - cmp w0, w2 - bls .L2291 - ldr w0, [x1,2096] - cbz w0, .L2294 - cmp w21, 40 - bls .L2291 -.L2294: - mov w0, 65535 - b .L2293 -.L2291: - adrp x20, .LANCHOR4 - add x0, x20, :lo12:.LANCHOR4 - ldrh w0, [x0,776] + strh w2, [x4, x3] + b .L2266 +.L2270: + cmp w10, 40 + bhi .L2272 +.L2269: + add x0, x9, :lo12:.LANCHOR4 + ldrh w0, [x0, 776] add w0, w0, w0, lsl 1 lsr w0, w0, 2 bl GetFreeBlockMaxEraseCount - uxth w6, w0 - add w0, w21, 64 + and w6, w0, 65535 + add w0, w10, 64 cmp w6, w0 - bcs .L2303 - cmp w21, 40 - bhi .L2294 -.L2303: - add x20, x20, :lo12:.LANCHOR4 - ldr x3, [x20,744] - cbz x3, .L2294 - add x0, x19, :lo12:.LANCHOR2 - mov w26, 65535 + bcs .L2273 + cmp w10, 40 + bhi .L2272 +.L2273: + add x9, x9, :lo12:.LANCHOR4 + ldr x0, [x9, 744] + cbz x0, .L2272 + add x1, x8, :lo12:.LANCHOR2 + mov w4, 65535 + mov x13, -6148914691236517206 + mov w2, w4 + mov w9, w4 + movk x13, 0xaaab, lsl 0 + ldrh w12, [x1, 2284] + mov w14, 6 + ldr x5, [x1, 2696] + ldr x7, [x1, 2808] mov w1, 0 - mov w20, w26 - mov w8, w26 - mov w10, 6 - ldrh w9, [x0,2284] - ldr x7, [x0,2808] - ldr x25, [x0,2696] - mov x0, -6148914691236517206 - add x0, x0, 1 -.L2296: - ldrh w5, [x3] - cmp w5, w8 - beq .L2298 - add w1, w1, 1 - uxth w1, w1 - cmp w1, w9 - bhi .L2294 - ldrh w2, [x3,4] - cbz w2, .L2297 - sub x4, x3, x7 - asr x4, x4, 1 - mul x4, x4, x0 - uxth w3, w4 - and x4, x4, 65535 - ldrh w2, [x25,x4,lsl 1] - cmp w2, w21 - bls .L2302 - cmp w2, w26 - bcs .L2297 - mov w26, w2 - mov w20, w3 -.L2297: - umull x3, w5, w10 - add x3, x7, x3 - b .L2296 -.L2302: - mov w20, w3 -.L2298: +.L2274: + ldrh w3, [x0] + cmp w3, w9 + bne .L2277 + mov w20, w2 +.L2276: mov w0, 65535 cmp w20, w0 - beq .L2294 - ubfiz x24, x20, 1, 16 - ldrh w22, [x25,x24] - cmp w22, w21 - bls .L2300 - str x6, [x29,88] + beq .L2272 + ubfiz x7, x20, 1, 32 + ldrh w3, [x5, x7] + cmp w10, w3 + bcs .L2278 bl GetFreeBlockMinEraseCount - ldr x6, [x29,88] - cmp w21, w0, uxth - bcs .L2300 - add x0, x19, :lo12:.LANCHOR2 - str w26, [x0,2444] -.L2300: - cmp w22, w23 - bcs .L2294 - add w0, w22, 128 + cmp w10, w0, uxth + bcs .L2278 + add x0, x8, :lo12:.LANCHOR2 + str w4, [x0, 2444] +.L2278: + cmp w11, w3 + bls .L2272 + add w0, w3, 128 cmp w6, w0 - ble .L2294 - add w0, w22, 256 - cmp w0, w23 - bcc .L2301 - add x0, x19, :lo12:.LANCHOR2 - add w22, w22, 768 - ldr w0, [x0,2440] - cmp w22, w0 - bcs .L2294 -.L2301: - add x19, x19, :lo12:.LANCHOR2 - adrp x0, .LC145 - ldrh w5, [x25,x24] - add x0, x0, :lo12:.LC145 + ble .L2272 + add w0, w3, 256 + cmp w11, w0 + bhi .L2279 + add x0, x8, :lo12:.LANCHOR2 + add w3, w3, 768 + ldr w0, [x0, 2440] + cmp w3, w0 + bcs .L2272 +.L2279: + add x19, x8, :lo12:.LANCHOR2 + ldrh w5, [x5, x7] + mov w2, w11 mov w1, w20 - mov w2, w23 - ldr x4, [x19,2712] - ldr w3, [x19,2440] - ldrh w4, [x4,x24] + ldr x0, [x19, 2712] + ldr w3, [x19, 2440] + ldrh w4, [x0, x7] + adrp x0, .LC145 + add x0, x0, :lo12:.LC145 bl printk mov w0, 1 - str w0, [x19,2452] - mov w0, w20 -.L2293: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x29, x30, [sp], 96 - ret + str w0, [x19, 2452] + b .L2271 +.L2277: + add w1, w1, 1 + and w1, w1, 65535 + cmp w1, w12 + bhi .L2272 + ldrh w15, [x0, 4] + cbz w15, .L2275 + sub x0, x0, x7 + asr x0, x0, 1 + mul x0, x0, x13 + and w20, w0, 65535 + and x0, x0, 65535 + ldrh w0, [x5, x0, lsl 1] + cmp w10, w0 + bcs .L2276 + cmp w4, w0 + bls .L2275 + mov w4, w0 + mov w2, w20 +.L2275: + umaddl x0, w3, w14, x7 + b .L2274 .size GetSwlReplaceBlock, .-GetSwlReplaceBlock .align 2 .global free_data_superblock .type free_data_superblock, %function free_data_superblock: - stp x29, x30, [sp, -16]! - uxth w0, w0 + and w0, w0, 65535 mov w1, 65535 cmp w0, w1 - add x29, sp, 0 - beq .L2318 + beq .L2290 + stp x29, x30, [sp, -16]! adrp x2, .LANCHOR2+2712 ubfiz x1, x0, 1, 16 - ldr x2, [x2,#:lo12:.LANCHOR2+2712] - strh wzr, [x2,x1] + add x29, sp, 0 + ldr x2, [x2, #:lo12:.LANCHOR2+2712] + strh wzr, [x2, x1] bl INSERT_FREE_LIST -.L2318: mov w0, 0 ldp x29, x30, [sp], 16 ret +.L2290: + mov w0, 0 + ret .size free_data_superblock, .-free_data_superblock .align 2 .global allocate_data_superblock @@ -15405,290 +15110,270 @@ free_data_superblock: allocate_data_superblock: stp x29, x30, [sp, -128]! add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x19, .LANCHOR2 - add x1, x19, :lo12:.LANCHOR2 - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] - stp x27, x28, [sp,80] - ldr w1, [x1,2928] - cbnz w1, .L2320 - adrp x21, .LANCHOR4 + stp x19, x20, [sp, 16] + stp x21, x22, [sp, 32] + adrp x21, .LANCHOR2 + add x19, x21, :lo12:.LANCHOR2 + stp x23, x24, [sp, 48] + stp x25, x26, [sp, 64] + stp x27, x28, [sp, 80] + ldr w1, [x19, 2928] + cbnz w1, .L2294 + adrp x23, .LANCHOR4 + add x22, x23, :lo12:.LANCHOR4 mov x20, x0 - add x21, x21, :lo12:.LANCHOR4 - add x23, x21, 880 - mov x22, x21 - add x24, x21, 768 -.L2321: - cmp x20, x23 - bne .L2322 - add x2, x19, :lo12:.LANCHOR2 - ldrh w0, [x21,776] - lsr w3, w0, 1 - ldr w4, [x2,2452] - add w5, w3, 1 - mul w1, w0, w4 - add w1, w5, w1, lsr 2 - ldr w5, [x2,2096] - uxth w1, w1 - cbz w5, .L2323 - ldr w2, [x2,2444] - cmp w2, 39 - bhi .L2323 - cmp w2, 2 - mov w1, 0 + add x24, x22, 768 +.L2295: + add x0, x23, :lo12:.LANCHOR4 + add x1, x0, 880 + cmp x20, x1 + bne .L2296 + ldrh w2, [x0, 776] + ldr w3, [x19, 2452] + lsr w0, w2, 1 + add w4, w0, 1 + mul w1, w2, w3 + add w1, w4, w1, lsr 2 + ldr w4, [x19, 2096] + and w1, w1, 65535 + cbz w4, .L2297 + ldr w4, [x19, 2444] + cmp w4, 39 + bhi .L2297 + cmp w4, 2 bls .L2324 - tbz x0, 0, .L2351 - cbz w4, .L2324 -.L2351: - mov w1, w3 - b .L2323 -.L2322: - ldrb w0, [x20,8] - mov w1, 0 - cmp w0, 1 + tbz x2, 0, .L2320 + cbz w3, .L2324 +.L2320: + mov w1, w0 + b .L2297 +.L2296: + ldrb w1, [x20, 8] + cmp w1, 1 bne .L2324 - add x2, x19, :lo12:.LANCHOR2 - ldrh w0, [x2,2296] - cmp w0, 1 + ldrh w1, [x19, 2296] + cmp w1, 1 beq .L2324 - ldrb w0, [x2,1220] - cbnz w0, .L2324 - ldr w3, [x2,2096] - ldrh w0, [x21,776] + ldrb w1, [x19, 1220] + cbnz w1, .L2324 + ldr w2, [x19, 2096] + ldrh w0, [x0, 776] lsr w1, w0, 3 - cbz w3, .L2323 - ldr w2, [x2,2444] + cbz w2, .L2297 + ldr w2, [x19, 2444] cmp w2, 1 - bhi .L2323 + bhi .L2297 mov w1, 7 mul w1, w0, w1 lsr w1, w1, 3 -.L2323: - cbz w1, .L2324 +.L2297: + cbz w1, .L2298 sub w1, w1, #1 - uxth w1, w1 -.L2324: - ldrb w2, [x20,8] + and w1, w1, 65535 +.L2298: + ldrb w2, [x20, 8] mov x0, x24 - add x26, x19, :lo12:.LANCHOR2 bl List_pop_index_node - uxth w27, w0 - ldrh w0, [x22,776] + and w27, w0, 65535 + ldrh w0, [x22, 776] sub w0, w0, #1 - strh w0, [x22,776] - ldrh w0, [x26,2284] + strh w0, [x22, 776] + ldrh w0, [x19, 2284] cmp w0, w27 - bls .L2321 - ubfiz x25, x27, 1, 16 - ldr x0, [x26,2712] - ldrh w0, [x0,x25] - cbnz w0, .L2321 + bls .L2295 + ldr x0, [x19, 2712] + ubfiz x26, x27, 1, 16 + ldrh w25, [x0, x26] + cbnz w25, .L2295 strh w27, [x20] mov x0, x20 bl make_superblock - ldrb w0, [x20,7] - cbz w0, .L2327 + ldrb w0, [x20, 7] + cbz w0, .L2341 + add x28, x20, 16 + ldrh w5, [x19, 2276] + mov x3, x28 mov x0, 0 - ldrh w5, [x26,2276] - mov x3, 56 - mov w26, w0 + mov x4, 56 mov w6, 65535 - b .L2328 -.L2327: - ldr x0, [x26,2712] - b .L2376 -.L2330: - add x1, x19, :lo12:.LANCHOR2 - ldr x4, [x1,2544] - madd x1, x0, x3, x4 - str xzr, [x1,16] - str xzr, [x1,8] - add x1, x20, x0, lsl 1 - ldrh w1, [x1,16] - cmp w1, w6 - beq .L2329 - umull x2, w26, w3 - add w26, w26, 1 - lsl w1, w1, 10 - add x2, x4, x2 - uxth w26, w26 - str w1, [x2,4] -.L2329: - add x0, x0, 1 -.L2328: +.L2301: cmp w5, w0, uxth - bhi .L2330 + bhi .L2303 + ldr w0, [x19, 2096] + cbz w0, .L2304 add x0, x22, 784 cmp x20, x0 - bne .L2331 - add x1, x19, :lo12:.LANCHOR2 - ldr w2, [x1,2096] - cbz w2, .L2331 - ldr x1, [x1,2696] - ldrh w1, [x1,x25] - cmp w1, 40 - bls .L2331 - strb wzr, [x22,792] -.L2331: - ldrb w0, [x20,8] - cbnz w0, .L2332 - add x1, x19, :lo12:.LANCHOR2 - ldr x0, [x1,2696] - ldrh w2, [x0,x25] - cbz w2, .L2333 - ldrh w1, [x1,2336] - add w1, w2, w1 - b .L2377 -.L2333: - mov w1, 2 -.L2377: - strh w1, [x0,x25] - add x1, x19, :lo12:.LANCHOR2 - ldr w0, [x1,2428] - add w0, w0, 1 - str w0, [x1,2428] - mov w0, w27 - mov w1, 0 - bl ftl_set_blk_mode - b .L2335 -.L2332: - add x0, x19, :lo12:.LANCHOR2 - ldr x2, [x0,2696] - ldrh w1, [x2,x25] - add w1, w1, 1 - strh w1, [x2,x25] - ldr w1, [x0,2432] - add w1, w1, 1 - str w1, [x0,2432] - mov w0, w27 - bl ftl_set_blk_mode.part.17 -.L2335: - add x0, x19, :lo12:.LANCHOR2 - ldr x1, [x0,2696] - ldr w2, [x0,2440] - ldrh w1, [x1,x25] - cmp w1, w2 - bls .L2336 - str w1, [x0,2440] -.L2336: - add x0, x19, :lo12:.LANCHOR2 - ldrh w2, [x0,2336] - ldr w3, [x0,2428] - ldr w1, [x0,2432] - madd w1, w2, w3, w1 - ldrh w2, [x0,2284] - mov x3, 56 - udiv w1, w1, w2 - adrp x2, .LANCHOR5+1164 - str w1, [x2,#:lo12:.LANCHOR5+1164] - ldr x1, [x0,2688] - ldr w0, [x1,16] - add w0, w0, 1 - str w0, [x1,16] - mov x0, 0 -.L2337: - cmp w26, w0, uxth - bls .L2379 - add x1, x19, :lo12:.LANCHOR2 - ldr x1, [x1,2544] - madd x1, x0, x3, x1 - add x0, x0, 1 - ldr w2, [x1,4] - and w2, w2, -1024 - str w2, [x1,4] - b .L2337 -.L2379: - add x0, x19, :lo12:.LANCHOR2 - ldrb w1, [x0,1220] - cbz w1, .L2339 - ldrb w1, [x20,8] - ldr x0, [x0,2544] - cmp w1, 1 - bne .L2340 - mov w1, 0 - b .L2378 -.L2340: - mov w1, 1 -.L2378: - mov w2, w26 - bl FlashEraseBlocks -.L2339: - add x0, x19, :lo12:.LANCHOR2 - ldrb w1, [x20,8] - mov w2, w26 - mov x28, 0 - ldr x0, [x0,2544] - bl FlashEraseBlocks - mov w1, w28 - mov x3, 56 -.L2341: - cmp w26, w28, uxth - bls .L2380 - add x2, x19, :lo12:.LANCHOR2 - mul x0, x28, x3 - ldr x2, [x2,2544] - add x4, x2, x0 - ldr w2, [x2,x0] - cmn w2, #1 - bne .L2342 - ldr w0, [x4,4] - add w1, w1, 1 - str x3, [x29,96] - lsr w0, w0, 10 - str x2, [x29,104] - str x1, [x29,112] - str x1, [x29,120] - bl FtlBbmMapBadBlock - add x0, x20, x28, lsl 1 - ldr x2, [x29,104] - ldr x3, [x29,96] - ldr x1, [x29,120] - strh w2, [x0,16] - ldrb w0, [x20,7] - sub w0, w0, #1 - strb w0, [x20,7] + bne .L2304 + ldr x0, [x19, 2696] + ldrh w0, [x0, x26] + cmp w0, 40 + bls .L2304 + strb wzr, [x20, 8] +.L2304: + ldrb w0, [x20, 8] + ldr x1, [x19, 2696] + cbnz w0, .L2305 + ldrh w0, [x1, x26] + cbz w0, .L2306 + ldrh w2, [x19, 2336] + add w0, w0, w2 .L2342: - add x28, x28, 1 - b .L2341 -.L2380: - cbz w1, .L2344 + strh w0, [x1, x26] + mov w1, 0 + ldr w0, [x19, 2428] + add w0, w0, 1 + str w0, [x19, 2428] + mov w0, w27 + bl ftl_set_blk_mode +.L2308: + ldr x0, [x19, 2696] + ldr w1, [x19, 2440] + ldrh w0, [x0, x26] + cmp w0, w1 + bls .L2309 + str w0, [x19, 2440] +.L2309: + ldr w2, [x19, 2428] + ldr w1, [x19, 2432] + ldrh w0, [x19, 2336] + madd w0, w0, w2, w1 + ldrh w1, [x19, 2284] + mov w2, 56 + umull x2, w25, w2 + udiv w0, w0, w1 + ldr x1, [x19, 2688] + str w0, [x22, 1676] + ldr w0, [x1, 16] + add w0, w0, 1 + str w0, [x1, 16] + mov x0, 0 +.L2310: + cmp x2, x0 + bne .L2311 + ldrb w0, [x19, 1220] + cbz w0, .L2312 + ldrb w0, [x20, 8] + mov w2, w25 + cmp w0, 1 + bne .L2313 + mov w1, 0 +.L2343: + ldr x0, [x19, 2544] + bl FlashEraseBlocks +.L2312: + ldrb w1, [x20, 8] + mov w2, w25 + ldr x0, [x19, 2544] + bl FlashEraseBlocks + mov x1, 0 + mov w2, 0 + mov x4, 56 +.L2314: + cmp w25, w1, uxth + bhi .L2316 + cmp w2, 0 + ble .L2317 mov w0, w27 bl update_multiplier_value bl FtlBbmTblFlush -.L2344: - ldrb w0, [x20,7] - cbnz w0, .L2345 - add x0, x19, :lo12:.LANCHOR2 - ldr x0, [x0,2712] -.L2376: +.L2317: + ldrb w0, [x20, 7] + cbnz w0, .L2318 +.L2341: + ldr x0, [x19, 2712] mov w1, -1 - strh w1, [x0,x25] - b .L2321 -.L2345: - add x19, x19, :lo12:.LANCHOR2 - strh wzr, [x20,2] - strb wzr, [x20,6] - ldrh w1, [x19,2344] + strh w1, [x0, x26] + b .L2295 +.L2324: + mov w1, 0 + b .L2298 +.L2303: + ldr x1, [x19, 2544] + madd x2, x0, x4, x1 + stp xzr, xzr, [x2, 8] + ldrh w2, [x3] + cmp w2, w6 + beq .L2302 + umull x7, w25, w4 + add w25, w25, 1 + and w25, w25, 65535 + lsl w2, w2, 10 + add x1, x1, x7 + str w2, [x1, 4] +.L2302: + add x0, x0, 1 + add x3, x3, 2 + b .L2301 +.L2306: + mov w0, 2 + b .L2342 +.L2305: + ldrh w0, [x1, x26] + add w0, w0, 1 + strh w0, [x1, x26] + ldr w0, [x19, 2432] + add w0, w0, 1 + str w0, [x19, 2432] + mov w0, w27 + bl ftl_set_blk_mode.part.17 + b .L2308 +.L2311: + ldr x1, [x19, 2544] + add x1, x1, x0 + add x0, x0, 56 + ldr w3, [x1, 4] + and w3, w3, -1024 + str w3, [x1, 4] + b .L2310 +.L2313: + mov w1, 1 + b .L2343 +.L2316: + mul x0, x1, x4 + ldr x3, [x19, 2544] + add x5, x3, x0 + ldr w3, [x3, x0] + cmn w3, #1 + bne .L2315 + add w2, w2, 1 + ldr w0, [x5, 4] + stp x4, x1, [x29, 104] + stp w3, w2, [x29, 120] + lsr w0, w0, 10 + bl FtlBbmMapBadBlock + ldp w3, w2, [x29, 120] + strh w3, [x28] + ldp x4, x1, [x29, 104] + ldrb w0, [x20, 7] + sub w0, w0, #1 + strb w0, [x20, 7] +.L2315: + add x1, x1, 1 + add x28, x28, 2 + b .L2314 +.L2318: + add x21, x21, :lo12:.LANCHOR2 + strh wzr, [x20, 2] + strb wzr, [x20, 6] + ldrh w1, [x21, 2344] strh w27, [x20] mul w0, w0, w1 - ldr w1, [x19,2396] - str w1, [x20,12] - uxth w0, w0 + ldr w1, [x21, 2396] + str w1, [x20, 12] + and w0, w0, 65535 add w1, w1, 1 - strh w0, [x20,4] - str w1, [x19,2396] - ldr x1, [x19,2712] + strh w0, [x20, 4] + str w1, [x21, 2396] + ldr x1, [x21, 2712] ldrh w2, [x20] - strh w0, [x1,x2,lsl 1] -.L2320: + strh w0, [x1, x2, lsl 1] +.L2294: + ldp x19, x20, [sp, 16] 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 x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] + ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 128 ret .size allocate_data_superblock, .-allocate_data_superblock @@ -15696,79 +15381,78 @@ allocate_data_superblock: .global FtlGcBufInit .type FtlGcBufInit, %function FtlGcBufInit: - adrp x0, .LANCHOR5+1168 - mov w1, 0 - adrp x7, .LANCHOR2 + adrp x0, .LANCHOR4+1680 + mov w2, 0 mov w8, 24 mov w9, 1 - mov w4, 4 - str wzr, [x0,#:lo12:.LANCHOR5+1168] + str wzr, [x0, #:lo12:.LANCHOR4+1680] + adrp x0, .LANCHOR2 + add x3, x0, :lo12:.LANCHOR2 + mov w5, 4 mov w10, 56 -.L2382: - add x2, x7, :lo12:.LANCHOR2 - adrp x6, .LANCHOR2 - ldrh w0, [x2,2276] - cmp w1, w0 - bcs .L2386 - umull x3, w1, w8 - ldr x5, [x2,2632] - ldr x6, [x2,2600] - add x0, x5, x3 - str w9, [x0,16] - ldrh w0, [x2,2354] - mul w0, w1, w0 - sdiv w0, w0, w4 - add x0, x6, w0, sxtw 2 - str x0, [x5,x3] - ldrh w0, [x2,2356] - ldr x6, [x2,2632] - ldr x11, [x2,2656] - mul w0, w1, w0 - add x5, x6, x3 - ldr x2, [x2,2552] - sdiv w0, w0, w4 - add x0, x11, w0, sxtw 2 - str x0, [x5,8] - umull x0, w1, w10 - add w1, w1, 1 - add x0, x2, x0 - ldr x2, [x6,x3] - uxth w1, w1 - str x2, [x0,8] - ldr x2, [x5,8] - str x2, [x0,16] - b .L2382 -.L2386: - mov w7, 24 - mov w4, 4 -.L2384: - add x1, x6, :lo12:.LANCHOR2 - ldr w2, [x1,2568] - cmp w0, w2 - bcs .L2387 - umull x3, w0, w7 - ldr x5, [x1,2632] - ldr x8, [x1,2600] - add x2, x5, x3 - str wzr, [x2,16] - ldrh w2, [x1,2354] - mul w2, w0, w2 - sdiv w2, w2, w4 - add x2, x8, w2, sxtw 2 - str x2, [x5,x3] - ldrh w2, [x1,2356] - ldr x5, [x1,2632] - ldr x1, [x1,2656] - mul w2, w0, w2 - add x3, x5, x3 - add w0, w0, 1 - sdiv w2, w2, w4 - uxth w0, w0 - add x1, x1, w2, sxtw 2 - str x1, [x3,8] - b .L2384 -.L2387: +.L2345: + ldrh w1, [x3, 2276] + cmp w2, w1 + bcc .L2346 + add x0, x0, :lo12:.LANCHOR2 + mov w6, 24 + mov w5, 4 +.L2347: + ldr w2, [x0, 2568] + cmp w1, w2 + bcc .L2348 ret +.L2346: + umull x4, w2, w8 + ldr x6, [x3, 2632] + ldr x7, [x3, 2600] + add x1, x6, x4 + str w9, [x1, 16] + ldrh w1, [x3, 2354] + mul w1, w1, w2 + sdiv w1, w1, w5 + add x1, x7, w1, sxtw 2 + str x1, [x6, x4] + ldrh w1, [x3, 2356] + ldr x7, [x3, 2632] + ldr x11, [x3, 2656] + add x6, x7, x4 + mul w1, w1, w2 + sdiv w1, w1, w5 + add x1, x11, w1, sxtw 2 + str x1, [x6, 8] + ldr x1, [x3, 2552] + ldr x4, [x7, x4] + nop // between mem op and mult-accumulate + umaddl x1, w2, w10, x1 + add w2, w2, 1 + and w2, w2, 65535 + str x4, [x1, 8] + ldr x4, [x6, 8] + str x4, [x1, 16] + b .L2345 +.L2348: + umull x4, w1, w6 + ldr x3, [x0, 2632] + ldr x7, [x0, 2600] + add x2, x3, x4 + str wzr, [x2, 16] + ldrh w2, [x0, 2354] + mul w2, w2, w1 + sdiv w2, w2, w5 + add x2, x7, w2, sxtw 2 + str x2, [x3, x4] + ldrh w2, [x0, 2356] + ldr x3, [x0, 2632] + add x3, x3, x4 + ldr x4, [x0, 2656] + mul w2, w2, w1 + add w1, w1, 1 + and w1, w1, 65535 + sdiv w2, w2, w5 + add x2, x4, w2, sxtw 2 + str x2, [x3, 8] + b .L2347 .size FtlGcBufInit, .-FtlGcBufInit .align 2 .global FtlVariablesInit @@ -15778,47 +15462,45 @@ FtlVariablesInit: mov w0, -1 mov w1, 0 add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x20, .LANCHOR5 + stp x19, x20, [sp, 16] + adrp x20, .LANCHOR4 + add x20, x20, :lo12:.LANCHOR4 adrp x19, .LANCHOR2 add x19, x19, :lo12:.LANCHOR2 - add x20, x20, :lo12:.LANCHOR5 - ldrh w2, [x19,2364] - strh w0, [x20,1184] + strh w0, [x20, 1696] mov w0, -1 - str w0, [x20,1196] + str w0, [x20, 1708] + ldr x0, [x19, 2736] + ldrh w2, [x19, 2364] + strh wzr, [x19, 2920] + str wzr, [x19, 2096] lsl w2, w2, 1 - ldr x0, [x19,2736] - str xzr, [x20,1176] - str wzr, [x20,1188] - str wzr, [x20,1192] - str wzr, [x19,2096] - strh wzr, [x19,2920] + str xzr, [x20, 1688] + str wzr, [x20, 1700] + str wzr, [x20, 1704] bl ftl_memset - ldrh w2, [x19,2286] + ldr x0, [x19, 2696] mov w1, 0 - ldr x0, [x19,2696] + ldrh w2, [x19, 2286] lsl w2, w2, 1 bl ftl_memset - ldrh w2, [x19,2286] + ldr x0, [x19, 2680] mov w1, 0 - ldr x0, [x19,2680] + ldrh w2, [x19, 2286] lsl w2, w2, 1 bl ftl_memset - adrp x0, .LANCHOR4 - mov w1, 0 - add x0, x0, :lo12:.LANCHOR4 mov w2, 48 - add x0, x0, 696 - bl ftl_memset mov w1, 0 + add x0, x20, 696 + bl ftl_memset mov w2, 512 - add x0, x20, 640 + mov w1, 0 + add x0, x20, 1152 bl ftl_memset bl FtlGcBufInit bl FtlL2PDataInit mov w0, 0 - ldp x19, x20, [sp,16] + ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 32 ret .size FtlVariablesInit, .-FtlVariablesInit @@ -15827,38 +15509,36 @@ FtlVariablesInit: .type FtlGcBufFree, %function FtlGcBufFree: adrp x2, .LANCHOR2 - mov w3, 0 add x2, x2, :lo12:.LANCHOR2 + mov w3, 0 mov w7, 56 mov w9, 24 - ldr w8, [x2,2568] - ldr x5, [x2,2632] -.L2390: + ldr w8, [x2, 2568] + ldr x4, [x2, 2632] +.L2352: cmp w3, w1 - bcs .L2389 - umull x4, w3, w7 + bcs .L2351 + umaddl x6, w3, w7, x0 mov w2, 0 - add x4, x0, x4 -.L2395: - cmp w2, w8 - bcs .L2392 - umull x6, w2, w9 - add x10, x5, x6 - ldr x11, [x5,x6] - ldr x6, [x4,8] - cmp x11, x6 - bne .L2391 - str wzr, [x10,16] - b .L2392 -.L2391: + b .L2357 +.L2353: add w2, w2, 1 - uxth w2, w2 - b .L2395 -.L2392: + and w2, w2, 65535 +.L2357: + cmp w2, w8 + bcs .L2354 + umull x5, w2, w9 + add x10, x4, x5 + ldr x11, [x4, x5] + ldr x5, [x6, 8] + cmp x11, x5 + bne .L2353 + str wzr, [x10, 16] +.L2354: add w3, w3, 1 - uxth w3, w3 - b .L2390 -.L2389: + and w3, w3, 65535 + b .L2352 +.L2351: ret .size FtlGcBufFree, .-FtlGcBufFree .align 2 @@ -15866,126 +15546,118 @@ FtlGcBufFree: .type FtlGcBufAlloc, %function FtlGcBufAlloc: adrp x2, .LANCHOR2 - mov w7, 24 add x2, x2, :lo12:.LANCHOR2 + mov w3, 0 + mov w7, 24 mov w8, 1 mov w9, 56 - ldr w5, [x2,2568] - ldr x6, [x2,2632] + ldr w5, [x2, 2568] + ldr x6, [x2, 2632] +.L2359: + cmp w3, w1 + bcs .L2358 mov w2, 0 -.L2397: - cmp w2, w1 - bcs .L2403 - mov w3, 0 -.L2401: - cmp w3, w5 - bcs .L2399 - umull x4, w3, w7 - add x4, x6, x4 - ldr w10, [x4,16] - cbnz w10, .L2398 - umull x3, w2, w9 - str w8, [x4,16] - add x3, x0, x3 - ldr x10, [x4] - str x10, [x3,8] - ldr x4, [x4,8] - str x4, [x3,16] - b .L2399 -.L2398: - add w3, w3, 1 - uxth w3, w3 - b .L2401 -.L2399: + b .L2364 +.L2360: add w2, w2, 1 - uxth w2, w2 - b .L2397 -.L2403: + and w2, w2, 65535 +.L2364: + cmp w2, w5 + bcs .L2361 + umaddl x4, w2, w7, x6 + ldr w10, [x4, 16] + cbnz w10, .L2360 + umaddl x2, w3, w9, x0 + ldr x10, [x4] + str w8, [x4, 16] + str x10, [x2, 8] + ldr x4, [x4, 8] + str x4, [x2, 16] +.L2361: + add w3, w3, 1 + and w3, w3, 65535 + b .L2359 +.L2358: ret .size FtlGcBufAlloc, .-FtlGcBufAlloc .align 2 .global IsBlkInGcList .type IsBlkInGcList, %function IsBlkInGcList: - adrp x1, .LANCHOR5+1200 - uxth w0, w0 - ldrh w2, [x1,#:lo12:.LANCHOR5+1200] + adrp x1, .LANCHOR4+1712 + and w0, w0, 65535 + ldrh w2, [x1, #:lo12:.LANCHOR4+1712] adrp x1, .LANCHOR2+2504 - ldr x3, [x1,#:lo12:.LANCHOR2+2504] + ldr x3, [x1, #:lo12:.LANCHOR2+2504] mov x1, 0 -.L2405: +.L2366: cmp w2, w1, uxth - bls .L2409 + bhi .L2368 + mov w0, 0 + ret +.L2368: add x1, x1, 1 add x4, x3, x1, lsl 1 - ldrh w4, [x4,-2] + ldrh w4, [x4, -2] cmp w4, w0 - bne .L2405 + bne .L2366 mov w0, 1 - b .L2406 -.L2409: - mov w0, 0 -.L2406: ret .size IsBlkInGcList, .-IsBlkInGcList .align 2 .global FtlGcUpdatePage .type FtlGcUpdatePage, %function FtlGcUpdatePage: - stp x29, x30, [sp, -48]! + mov w6, w0 + mov w9, w1 + mov w8, w2 + stp x29, x30, [sp, -16]! + lsr w0, w0, 10 add x29, sp, 0 - str x19, [sp,16] - mov w19, w0 - lsr x0, x19, 10 - str x1, [x29,32] - str x2, [x29,40] bl P2V_block_in_plane - adrp x3, .LANCHOR5 - ldr x2, [x29,40] - add x4, x3, :lo12:.LANCHOR5 - ldr x1, [x29,32] - uxth w9, w0 - mov x6, 0 - ldrh w8, [x4,1200] + and w10, w0, 65535 + adrp x3, .LANCHOR4 adrp x4, .LANCHOR2 - add x5, x4, :lo12:.LANCHOR2 - ldr x7, [x5,2504] -.L2411: - uxth w5, w6 - cmp w5, w8 - bcs .L2415 - add x6, x6, 1 - add x10, x7, x6, lsl 1 - ldrh w10, [x10,-2] - cmp w10, w9 - bne .L2411 -.L2415: - cmp w5, w8 - bne .L2413 - ubfiz x5, x5, 1, 16 - strh w0, [x7,x5] - add x0, x3, :lo12:.LANCHOR5 - ldrh w5, [x0,1200] - add w5, w5, 1 - strh w5, [x0,1200] -.L2413: - add x3, x3, :lo12:.LANCHOR5 - add x4, x4, :lo12:.LANCHOR2 - mov w0, 12 - ldrh w5, [x3,1202] - ldr x6, [x4,2512] - umull x5, w5, w0 - add x6, x6, x5 - str w1, [x6,4] - ldr x1, [x4,2512] - add x0, x1, x5 - str w2, [x0,8] - str w19, [x1,x5] - ldrh w0, [x3,1202] + add x1, x3, :lo12:.LANCHOR4 + add x2, x4, :lo12:.LANCHOR2 + mov x5, 0 + ldrh w1, [x1, 1712] + ldr x7, [x2, 2504] +.L2371: + and w2, w5, 65535 + cmp w2, w1 + bcc .L2373 + bne .L2372 + and x5, x5, 65535 + strh w0, [x7, x5, lsl 1] + add x5, x3, :lo12:.LANCHOR4 + ldrh w0, [x5, 1712] add w0, w0, 1 - strh w0, [x3,1202] - ldr x19, [sp,16] - ldp x29, x30, [sp], 48 + strh w0, [x5, 1712] + b .L2372 +.L2373: + add x5, x5, 1 + add x2, x7, x5, lsl 1 + ldrh w2, [x2, -2] + cmp w2, w10 + bne .L2371 +.L2372: + add x0, x3, :lo12:.LANCHOR4 + add x3, x4, :lo12:.LANCHOR2 + mov w1, 12 + ldrh w5, [x0, 1714] + ldr x4, [x3, 2512] + umull x5, w5, w1 + add x4, x4, x5 + str w9, [x4, 4] + ldr x1, [x3, 2512] + add x3, x1, x5 + str w8, [x3, 8] + str w6, [x1, x5] + ldrh w1, [x0, 1714] + add w1, w1, 1 + strh w1, [x0, 1714] + ldp x29, x30, [sp], 16 ret .size FtlGcUpdatePage, .-FtlGcUpdatePage .align 2 @@ -15993,27 +15665,27 @@ FtlGcUpdatePage: .type FtlGcPageVarInit, %function FtlGcPageVarInit: stp x29, x30, [sp, -32]! - adrp x0, .LANCHOR5 + adrp x0, .LANCHOR4 + add x0, x0, :lo12:.LANCHOR4 mov w1, 255 add x29, sp, 0 - str x19, [sp,16] + str x19, [sp, 16] adrp x19, .LANCHOR2 add x19, x19, :lo12:.LANCHOR2 - add x0, x0, :lo12:.LANCHOR5 - ldrh w2, [x19,2348] - strh wzr, [x0,1200] - strh wzr, [x0,1202] + strh wzr, [x0, 1712] + strh wzr, [x0, 1714] + ldr x0, [x19, 2504] + ldrh w2, [x19, 2348] lsl w2, w2, 1 - ldr x0, [x19,2504] bl ftl_memset - ldrh w3, [x19,2348] - mov w2, 12 - ldr x0, [x19,2512] + ldrh w2, [x19, 2348] + mov w0, 12 mov w1, 255 - mul w2, w3, w2 + mul w2, w2, w0 + ldr x0, [x19, 2512] bl ftl_memset bl FtlGcBufInit - ldr x19, [sp,16] + ldr x19, [sp, 16] ldp x29, x30, [sp], 32 ret .size FtlGcPageVarInit, .-FtlGcPageVarInit @@ -16021,303 +15693,276 @@ FtlGcPageVarInit: .global FtlGcScanTempBlk .type FtlGcScanTempBlk, %function FtlGcScanTempBlk: - stp x29, x30, [sp, -224]! + stp x29, x30, [sp, -176]! add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] mov x19, x0 - adrp x0, .LANCHOR1 - str w1, [x29,136] - add x1, x0, :lo12:.LANCHOR1 - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] - stp x27, x28, [sp,80] - str x0, [x29,128] - ldrh w27, [x1,3452] - mov w1, 65535 - cmp w27, w1 - beq .L2451 - cbnz w27, .L2419 - b .L2420 -.L2451: - mov w27, 0 -.L2419: - adrp x0, .LANCHOR2+2344 - ldr w1, [x29,136] - ldrh w0, [x0,#:lo12:.LANCHOR2+2344] - cmp w1, w0 - bne .L2421 -.L2420: + stp x21, x22, [sp, 32] + adrp x22, .LANCHOR1 + add x0, x22, :lo12:.LANCHOR1 + stp x23, x24, [sp, 48] + stp x25, x26, [sp, 64] + stp x27, x28, [sp, 80] + str w1, [x29, 104] + ldrh w26, [x0, 3452] + mov w0, 65535 + cmp w26, w0 + beq .L2408 + cbnz w26, .L2378 +.L2379: bl FtlGcPageVarInit -.L2421: + b .L2380 +.L2408: + mov w26, 0 +.L2378: + adrp x0, .LANCHOR2+2344 + ldr w1, [x29, 104] + ldrh w0, [x0, #:lo12:.LANCHOR2+2344] + cmp w0, w1 + beq .L2379 +.L2380: + adrp x28, .LANCHOR2 + add x27, x28, :lo12:.LANCHOR2 mov w0, -1 - adrp x23, .LANCHOR2 - str w0, [x29,140] - adrp x0, .LC147 - add x0, x0, :lo12:.LC147 - mov w24, 0 - mov x22, x23 - str x0, [x29,120] -.L2422: + mov w23, 0 + str w0, [x29, 108] +.L2381: ldrh w1, [x19] mov w0, 65535 - strb wzr, [x19,8] + strb wzr, [x19, 8] cmp w1, w0 - beq .L2452 -.L2424: - mov w28, w0 -.L2448: - adrp x0, .LANCHOR2 - mov x2, x19 - add x0, x0, :lo12:.LANCHOR2 + beq .L2409 +.L2405: + add x0, x28, :lo12:.LANCHOR2 + add x6, x19, 16 mov w20, 0 - mov w10, 56 + mov w11, 65535 + mov w12, 56 mov w7, 4 - ldrh w5, [x0,2276] - ldrh w8, [x0,2354] - ldrh w9, [x0,2356] - add x5, x19, x5, lsl 1 -.L2425: - cmp x2, x5 - beq .L2470 - ldrh w1, [x2,16] - cmp w1, w28 - beq .L2426 - add x4, x23, :lo12:.LANCHOR2 - orr w1, w27, w1, lsl 10 - umull x0, w20, w10 - ldr x6, [x4,2520] - add x6, x6, x0 - str w1, [x6,4] - ldr x1, [x4,2520] - ldr x6, [x4,2600] - add x0, x1, x0 - ldr x4, [x4,2656] - mul w1, w20, w8 - sdiv w1, w1, w7 - add x1, x6, w1, sxtw 2 - str x1, [x0,8] - mul w1, w20, w9 - add w20, w20, 1 - uxth w20, w20 - sdiv w1, w1, w7 - add x1, x4, w1, sxtw 2 - str x1, [x0,16] -.L2426: - add x2, x2, 2 - b .L2425 -.L2470: - add x0, x23, :lo12:.LANCHOR2 - mov w1, w20 + ldrh w9, [x0, 2354] + ldrh w10, [x0, 2356] + ldrh w0, [x0, 2276] + add x0, x0, 8 + add x0, x19, x0, lsl 1 +.L2383: + cmp x6, x0 + bne .L2385 + ldr x0, [x27, 2520] mov w2, 0 - mov x25, 0 - ldr x0, [x0,2520] + mov w1, w20 + adrp x24, .LANCHOR0 + add x24, x24, :lo12:.LANCHOR0 + mov x21, 0 bl FlashReadPages -.L2428: - cmp w20, w25, uxth - bls .L2471 - add x26, x23, :lo12:.LANCHOR2 - mov x0, 56 - mul x21, x25, x0 - ldr x1, [x26,2520] - str x1, [x29,104] - add x2, x1, x21 - str x2, [x29,112] - ldr w0, [x2,4] - str w0, [x29,144] - ldr x0, [x29,144] - lsr x0, x0, 10 + mov w0, 56 + umull x0, w20, w0 + str x0, [x29, 96] +.L2386: + ldr x0, [x29, 96] + cmp x0, x21 + bne .L2403 + ldr w0, [x29, 104] + add w4, w26, 1 + add w23, w23, 1 + and w26, w4, 65535 + cmp w0, w23 + bls .L2404 +.L2406: + ldrh w0, [x27, 2344] + cmp w0, w26 + bhi .L2405 +.L2409: + mov w2, 0 + b .L2382 +.L2385: + ldrh w1, [x6] + cmp w1, w11 + beq .L2384 + umull x8, w20, w12 + ldr x5, [x27, 2520] + orr w1, w26, w1, lsl 10 + add x5, x5, x8 + str w1, [x5, 4] + mul w1, w20, w9 + ldr x2, [x27, 2520] + ldr x5, [x27, 2600] + sdiv w1, w1, w7 + add x2, x2, x8 + add x1, x5, w1, sxtw 2 + str x1, [x2, 8] + mul w1, w20, w10 + ldr x5, [x27, 2656] + add w20, w20, 1 + and w20, w20, 65535 + sdiv w1, w1, w7 + add x1, x5, w1, sxtw 2 + str x1, [x2, 16] +.L2384: + add x6, x6, 2 + b .L2383 +.L2403: + ldr x6, [x27, 2520] + add x5, x6, x21 + ldr w25, [x5, 4] + lsr w0, w25, 10 bl P2V_plane - uxth w6, w0 - ldr x1, [x29,104] - ldr x2, [x29,112] - ldr w7, [x1,x21] - ldr x5, [x2,16] - cbnz w7, .L2429 - ldrh w0, [x5] - cmp w0, w28 - bne .L2430 -.L2433: - add x1, x22, :lo12:.LANCHOR2 - adrp x20, .LANCHOR5 - ldrb w0, [x1,1220] - cbz w0, .L2467 - add x20, x20, :lo12:.LANCHOR5 + and w2, w0, 65535 + ldr w0, [x6, x21] + ldr x20, [x5, 16] + cbnz w0, .L2387 + ldrh w1, [x20] + mov w0, 65535 + cmp w1, w0 + bne .L2388 +.L2391: + ldrb w0, [x27, 1220] + adrp x14, .LANCHOR4 + cbz w0, .L2421 + add x14, x14, :lo12:.LANCHOR4 mov w0, 1 - str w0, [x20,1192] - b .L2423 -.L2430: - ldr w0, [x5,8] - ldr w1, [x26,2924] + str w0, [x14, 1704] +.L2382: + add x22, x22, :lo12:.LANCHOR1 + strh w26, [x19, 2] + strb w2, [x19, 6] + mov w0, -1 + mov w1, w26 + strh w0, [x22, 3452] + mov x0, x19 + bl ftl_sb_update_avl_pages + b .L2377 +.L2388: + ldr w0, [x20, 8] + ldr w1, [x27, 2924] cmp w0, w1 - bls .L2468 - b .L2433 -.L2467: - ldrh w2, [x19] - add x20, x20, :lo12:.LANCHOR5 - ldr x1, [x1,2712] - strh w0, [x1,x2,lsl 1] + bhi .L2391 + ldrb w1, [x24, 88] + cbnz w1, .L2394 +.L2395: + ldp w2, w0, [x20, 8] + mov w1, w25 + add x21, x21, 56 + bl FtlGcUpdatePage + b .L2386 +.L2421: + ldr x0, [x27, 2712] + ldrh w1, [x19] + strh wzr, [x0, x1, lsl 1] ldrh w0, [x19] bl INSERT_FREE_LIST + add x14, x14, :lo12:.LANCHOR4 mov w0, -1 strh w0, [x19] - strh w0, [x20,592] - b .L2469 -.L2468: - adrp x1, .LANCHOR0 - add x1, x1, :lo12:.LANCHOR0 - ldrb w1, [x1,88] - cbz w1, .L2437 - add x1, x29, 164 - mov w2, w7 - str x5, [x29,112] - str x7, [x29,104] + strh w0, [x14, 1104] +.L2424: + bl FtlGcPageVarInit + mov w26, 0 + b .L2381 +.L2394: + add x1, x29, 116 + mov w2, 0 bl log2phys - ldr x5, [x29,112] - ldr w1, [x29,164] - ldr w0, [x5,12] - cmp w1, w0 - bne .L2437 - cmn w1, #1 - beq .L2437 - str w0, [x29,172] + ldr w0, [x20, 12] + ldr w1, [x29, 116] + cmp w0, w1 + bne .L2395 + cmn w0, #1 + beq .L2395 + str w0, [x29, 124] + mov w2, 0 + ldr x0, [x27, 2624] mov w1, 1 - ldr x0, [x26,2624] - ldr x7, [x29,104] - str x0, [x29,176] - ldr x0, [x26,2648] - mov w2, w7 - str x0, [x29,184] - add x0, x29, 168 + str x0, [x29, 128] + ldr x0, [x27, 2648] + str x0, [x29, 136] + add x0, x29, 120 bl FlashReadPages - ldr x0, [x26,2520] - ldrh w2, [x26,2350] - ldr x4, [x29,176] - add x21, x0, x21 - ldr x5, [x29,112] - lsl w2, w2, 7 + ldrh w1, [x27, 2350] mov x0, 0 -.L2439: - cmp w2, w0 - bls .L2437 - lsl x1, x0, 2 - ldr x6, [x21,8] - add x0, x0, 1 - ldr w6, [x6,x1] - ldr w1, [x4,x1] - cmp w6, w1 - beq .L2439 + ldr x2, [x27, 2520] + ldr x6, [x29, 128] + ubfiz x1, x1, 9, 16 + add x2, x2, x21 +.L2396: + cmp x0, x1 + beq .L2395 + ldr x7, [x2, 8] + ldr w8, [x7, x0] + add x0, x0, 4 + add x7, x6, x0 + ldr w7, [x7, -4] + cmp w8, w7 + beq .L2396 ldrh w1, [x19] adrp x0, .LC146 - ldr w2, [x29,172] + ldr w2, [x29, 124] add x0, x0, :lo12:.LC146 bl printk - add x0, x22, :lo12:.LANCHOR2 ldrh w1, [x19] - ldr x0, [x0,2712] - strh wzr, [x0,x1,lsl 1] + ldr x0, [x27, 2712] + strh wzr, [x0, x1, lsl 1] ldrh w0, [x19] bl INSERT_FREE_LIST - adrp x1, .LANCHOR5+592 + adrp x1, .LANCHOR4+1104 mov w0, -1 strh w0, [x19] - strh w0, [x1,#:lo12:.LANCHOR5+592] - b .L2469 -.L2437: - ldr w0, [x5,12] - add x25, x25, 1 - ldr w1, [x29,144] - ldr w2, [x5,8] - bl FtlGcUpdatePage - b .L2428 -.L2429: - ldr x0, [x29,120] + strh w0, [x1, #:lo12:.LANCHOR4+1104] + b .L2424 +.L2387: ldrh w1, [x19] - ldr w2, [x29,144] + mov w2, w25 + adrp x0, .LC147 + add x0, x0, :lo12:.LC147 bl printk - ldr w0, [x26,2096] - cbnz w0, .L2442 - ldrb w0, [x26,1220] - cbz w0, .L2443 -.L2442: - add x0, x22, :lo12:.LANCHOR2 - ldrh w1, [x19] - ldr x0, [x0,2696] - ldrh w0, [x0,x1,lsl 1] - cmp w0, 159 - bls .L2444 -.L2443: - add x0, x22, :lo12:.LANCHOR2 - ldr x0, [x0,2520] - ldr w0, [x0,x21] - cmn w0, #1 - bne .L2445 -.L2444: - add x0, x22, :lo12:.LANCHOR2 - ldr x0, [x0,2520] - add x21, x0, x21 - ldr w0, [x21,4] - str w0, [x29,140] -.L2445: - add x0, x22, :lo12:.LANCHOR2 - ldrh w1, [x19] - ldr x0, [x0,2712] - strh wzr, [x0,x1,lsl 1] + ldr w1, [x27, 2096] + ldrh w0, [x19] + cbnz w1, .L2399 + ldrb w1, [x27, 1220] + cbz w1, .L2400 +.L2399: + ldr x2, [x27, 2696] + ubfiz x1, x0, 1, 16 + ldrh w1, [x2, x1] + cmp w1, 159 + bls .L2401 +.L2400: + ldr x1, [x27, 2520] + ldr w1, [x1, x21] + cmn w1, #1 + bne .L2402 +.L2401: + ldr x1, [x27, 2520] + add x21, x1, x21 + ldr w1, [x21, 4] + str w1, [x29, 108] +.L2402: + ldr x1, [x27, 2712] + ubfiz x0, x0, 1, 16 + strh wzr, [x1, x0] ldrh w0, [x19] bl INSERT_FREE_LIST mov w0, -1 strh w0, [x19] -.L2469: - bl FtlGcPageVarInit - mov w27, 0 - b .L2422 -.L2471: - ldr w0, [x29,136] - add w24, w24, 1 - add w3, w27, 1 - cmp w24, w0 - uxth w27, w3 - bcs .L2447 -.L2449: - add x0, x23, :lo12:.LANCHOR2 - ldrh w0, [x0,2344] - cmp w0, w27 - bhi .L2448 - b .L2452 -.L2447: - ldr x0, [x29,128] - add x1, x0, :lo12:.LANCHOR1 - ldrh w0, [x1,3452] - cmp w0, w28 - beq .L2449 - add w0, w0, w24 - strh w0, [x1,3452] - add x0, x23, :lo12:.LANCHOR2 - ldrh w0, [x0,2344] - cmp w0, w27 - bls .L2449 - b .L2450 -.L2452: - mov w6, 0 -.L2423: - ldr x0, [x29,128] - mov w1, -1 - strh w27, [x19,2] - mov w2, w6 - add x0, x0, :lo12:.LANCHOR1 - strb w6, [x19,6] - strh w1, [x0,3452] - mov x0, x19 - mov w1, w27 - bl ftl_sb_update_avl_pages -.L2450: - ldr w0, [x29,140] - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 224 + b .L2424 +.L2404: + add x1, x22, :lo12:.LANCHOR1 + mov w2, 65535 + ldrh w0, [x1, 3452] + cmp w0, w2 + beq .L2406 + add w0, w0, w23 + strh w0, [x1, 3452] + ldrh w0, [x27, 2344] + cmp w0, w26 + bls .L2406 +.L2377: + ldr w0, [x29, 108] + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] + ldp x27, x28, [sp, 80] + ldp x29, x30, [sp], 176 ret .size FtlGcScanTempBlk, .-FtlGcScanTempBlk .align 2 @@ -16326,54 +15971,54 @@ FtlGcScanTempBlk: FtlGcRefreshOpenBlock: stp x29, x30, [sp, -32]! add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] adrp x19, .LANCHOR2 - uxth w20, w0 add x19, x19, :lo12:.LANCHOR2 - ldrh w0, [x19,2472] + and w20, w0, 65535 + ldrh w0, [x19, 2472] cmp w0, w20 - beq .L2474 - ldrh w0, [x19,2474] + beq .L2427 + ldrh w0, [x19, 2474] cmp w0, w20 - beq .L2474 - ldrh w0, [x19,2476] + beq .L2427 + ldrh w0, [x19, 2476] cmp w0, w20 - beq .L2474 - ldrh w0, [x19,2478] + beq .L2427 + ldrh w0, [x19, 2478] cmp w0, w20 - beq .L2474 - adrp x0, .LC148 + beq .L2427 mov w1, w20 + adrp x0, .LC148 add x0, x0, :lo12:.LC148 bl printk - ldrh w1, [x19,2472] + ldrh w1, [x19, 2472] mov w0, 65535 cmp w1, w0 - bne .L2476 - strh w20, [x19,2472] - b .L2474 -.L2476: - ldrh w1, [x19,2474] - cmp w1, w0 - bne .L2477 - strh w20, [x19,2474] - b .L2474 -.L2477: - ldrh w1, [x19,2476] - cmp w1, w0 - bne .L2478 - strh w20, [x19,2476] - b .L2474 -.L2478: - ldrh w1, [x19,2478] - cmp w1, w0 - bne .L2474 - strh w20, [x19,2478] -.L2474: + bne .L2429 + strh w20, [x19, 2472] +.L2427: mov w0, 0 - ldp x19, x20, [sp,16] + ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 32 ret +.L2429: + ldrh w1, [x19, 2474] + cmp w1, w0 + bne .L2430 + strh w20, [x19, 2474] + b .L2427 +.L2430: + ldrh w1, [x19, 2476] + cmp w1, w0 + bne .L2431 + strh w20, [x19, 2476] + b .L2427 +.L2431: + ldrh w1, [x19, 2478] + cmp w1, w0 + bne .L2427 + strh w20, [x19, 2478] + b .L2427 .size FtlGcRefreshOpenBlock, .-FtlGcRefreshOpenBlock .align 2 .global FtlGcRefreshBlock @@ -16381,60 +16026,63 @@ FtlGcRefreshOpenBlock: FtlGcRefreshBlock: stp x29, x30, [sp, -48]! add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] adrp x19, .LANCHOR2 - uxth w20, w0 add x19, x19, :lo12:.LANCHOR2 - str x21, [sp,32] + and w20, w0, 65535 + str x21, [sp, 32] + ldrh w0, [x19, 2472] + cmp w0, w20 + beq .L2440 + ldrh w0, [x19, 2474] + cmp w0, w20 + beq .L2440 + ldrh w0, [x19, 2476] + cmp w0, w20 + beq .L2440 + ldrh w0, [x19, 2478] mov w21, 0 - ldrh w0, [x19,2472] cmp w0, w20 - beq .L2480 - ldrh w0, [x19,2474] - cmp w0, w20 - beq .L2480 - ldrh w0, [x19,2476] - cmp w0, w20 - beq .L2480 - ldrh w0, [x19,2478] - cmp w0, w20 - beq .L2480 - adrp x0, .LC148 + beq .L2433 mov w1, w20 + adrp x0, .LC148 add x0, x0, :lo12:.LC148 bl printk - ldrh w1, [x19,2472] + ldrh w1, [x19, 2472] mov w0, 65535 cmp w1, w0 - bne .L2481 - strh w20, [x19,2472] - b .L2480 -.L2481: - ldrh w1, [x19,2474] - cmp w1, w0 - bne .L2482 - strh w20, [x19,2474] - b .L2480 -.L2482: - ldrh w1, [x19,2476] - cmp w1, w0 - bne .L2483 - strh w20, [x19,2476] - b .L2480 -.L2483: - ldrh w1, [x19,2478] - cmp w1, w0 - bne .L2488 - strh w20, [x19,2478] - b .L2480 -.L2488: - mov w21, -1 -.L2480: + bne .L2435 + strh w20, [x19, 2472] +.L2433: mov w0, w21 - ldr x21, [sp,32] - ldp x19, x20, [sp,16] + ldr x21, [sp, 32] + ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 48 ret +.L2435: + ldrh w1, [x19, 2474] + cmp w1, w0 + bne .L2436 + strh w20, [x19, 2474] + b .L2433 +.L2436: + ldrh w1, [x19, 2476] + cmp w1, w0 + bne .L2437 + strh w20, [x19, 2476] + b .L2433 +.L2437: + ldrh w1, [x19, 2478] + cmp w1, w0 + bne .L2442 + strh w20, [x19, 2478] + b .L2433 +.L2440: + mov w21, 0 + b .L2433 +.L2442: + mov w21, -1 + b .L2433 .size FtlGcRefreshBlock, .-FtlGcRefreshBlock .align 2 .global FtlGcMarkBadPhyBlk @@ -16442,62 +16090,62 @@ FtlGcRefreshBlock: FtlGcMarkBadPhyBlk: stp x29, x30, [sp, -64]! add x29, sp, 0 - stp x19, x20, [sp,16] - uxth w20, w0 + stp x19, x20, [sp, 16] adrp x19, .LANCHOR2 - stp x21, x22, [sp,32] - mov w0, w20 + stp x21, x22, [sp, 32] add x22, x19, :lo12:.LANCHOR2 - str x23, [sp,48] + and w20, w0, 65535 + str x23, [sp, 48] + mov w0, w20 bl P2V_block_in_plane - uxth w21, w0 - ldrh w1, [x22,2486] - adrp x0, .LC149 + ldrh w1, [x22, 2486] mov w2, w20 + and w21, w0, 65535 + adrp x0, .LC149 add x0, x0, :lo12:.LC149 bl printk mov w0, w21 bl FtlGcRefreshBlock - ldr w0, [x22,2096] - cbz w0, .L2490 + ldr w0, [x22, 2096] + cbz w0, .L2445 + ldr x2, [x22, 2696] ubfiz x0, x21, 1, 16 - ldr x2, [x22,2696] - ldrh w1, [x2,x0] + ldrh w1, [x2, x0] cmp w1, 39 - bls .L2490 + bls .L2445 sub w1, w1, #40 - strh w1, [x2,x0] -.L2490: + strh w1, [x2, x0] +.L2445: add x0, x19, :lo12:.LANCHOR2 - adrp x1, .LANCHOR5 - add x1, x1, :lo12:.LANCHOR5 - add x1, x1, 1208 - ldrh w3, [x0,2486] - mov x0, 0 -.L2491: - cmp w3, w0, uxth - bls .L2497 - add x0, x0, 1 - add x2, x1, x0, lsl 1 - ldrh w2, [x2,-2] - cmp w2, w20 - bne .L2491 - b .L2492 -.L2497: - cmp w3, 15 - bhi .L2492 - adrp x1, .LANCHOR5 + mov x2, 0 + ldrh w1, [x0, 2486] + adrp x0, .LANCHOR4 + add x0, x0, :lo12:.LANCHOR4 + add x0, x0, 1720 +.L2446: + cmp w1, w2, uxth + bhi .L2448 + cmp w1, 15 + bhi .L2447 add x19, x19, :lo12:.LANCHOR2 - add x1, x1, :lo12:.LANCHOR5 - add w0, w3, 1 - add x1, x1, 1208 - strh w0, [x19,2486] - strh w20, [x1,w3,sxtw 1] -.L2492: + add w0, w1, 1 + strh w0, [x19, 2486] + adrp x0, .LANCHOR4 + add x0, x0, :lo12:.LANCHOR4 + add x0, x0, 1720 + strh w20, [x0, w1, sxtw 1] + b .L2447 +.L2448: + add x2, x2, 1 + add x3, x0, x2, lsl 1 + ldrh w3, [x3, -2] + cmp w3, w20 + bne .L2446 +.L2447: mov w0, 0 - ldr x23, [sp,48] - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] + ldr x23, [sp, 48] + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] ldp x29, x30, [sp], 64 ret .size FtlGcMarkBadPhyBlk, .-FtlGcMarkBadPhyBlk @@ -16507,34 +16155,34 @@ FtlGcMarkBadPhyBlk: FtlGcReFreshBadBlk: stp x29, x30, [sp, -32]! add x29, sp, 0 - str x19, [sp,16] + str x19, [sp, 16] adrp x19, .LANCHOR2 add x0, x19, :lo12:.LANCHOR2 - ldrh w1, [x0,2486] - cbz w1, .L2499 - ldrh w3, [x0,2472] + ldrh w1, [x0, 2486] + cbz w1, .L2454 + ldrh w3, [x0, 2472] mov w2, 65535 cmp w3, w2 - bne .L2499 - ldrh w2, [x0,2490] + bne .L2454 + ldrh w2, [x0, 2490] cmp w2, w1 - bcc .L2500 - strh wzr, [x0,2490] -.L2500: + bcc .L2455 + strh wzr, [x0, 2490] +.L2455: add x19, x19, :lo12:.LANCHOR2 - adrp x0, .LANCHOR5 - add x0, x0, :lo12:.LANCHOR5 - add x0, x0, 1208 - ldrh w1, [x19,2490] - ldrh w0, [x0,w1,sxtw 1] + adrp x0, .LANCHOR4 + add x0, x0, :lo12:.LANCHOR4 + add x0, x0, 1720 + ldrh w1, [x19, 2490] + ldrh w0, [x0, x1, lsl 1] bl P2V_block_in_plane bl FtlGcRefreshBlock - ldrh w0, [x19,2490] + ldrh w0, [x19, 2490] add w0, w0, 1 - strh w0, [x19,2490] -.L2499: + strh w0, [x19, 2490] +.L2454: mov w0, 0 - ldr x19, [sp,16] + ldr x19, [sp, 16] ldp x29, x30, [sp], 32 ret .size FtlGcReFreshBadBlk, .-FtlGcReFreshBadBlk @@ -16544,1081 +16192,1023 @@ FtlGcReFreshBadBlk: FtlGcFreeBadSuperBlk: stp x29, x30, [sp, -96]! add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x19, .LANCHOR2 - str x27, [sp,80] - add x19, x19, :lo12:.LANCHOR2 - stp x23, x24, [sp,48] - uxth w23, w0 - ldrh w0, [x19,2486] - stp x21, x22, [sp,32] - stp x25, x26, [sp,64] - mov w21, 0 - cbz w0, .L2506 - adrp x24, .LANCHOR5 - adrp x22, .LC150 - add x22, x22, :lo12:.LC150 - add x25, x24, :lo12:.LANCHOR5 -.L2514: - ldrh w0, [x19,2276] - cmp w0, w21 - bls .L2515 - add x0, x19, 2304 - mov w1, w23 + stp x23, x24, [sp, 48] + and w23, w0, 65535 + adrp x0, .LANCHOR2 + add x1, x0, :lo12:.LANCHOR2 + stp x19, x20, [sp, 16] + stp x21, x22, [sp, 32] + stp x25, x26, [sp, 64] + str x27, [sp, 80] + ldrh w1, [x1, 2486] + cbz w1, .L2461 + adrp x22, .LANCHOR4 + add x21, x22, :lo12:.LANCHOR4 + mov x27, x0 + add x21, x21, 1720 mov w20, 0 - add x27, x24, :lo12:.LANCHOR5 - ldrb w0, [x0,w21,sxtw] - bl V2P_block - uxth w26, w0 -.L2507: - ldrh w0, [x19,2486] - cmp w0, w20 - bls .L2516 - add x0, x27, 1208 - ldrh w0, [x0,w20,sxtw 1] - cmp w0, w26 - bne .L2508 - mov w1, w26 - mov x0, x22 - bl printk - mov w0, w26 - bl FtlBbmMapBadBlock - bl FtlBbmTblFlush - ldrh w2, [x19,2486] - mov w3, w20 -.L2509: - cmp w3, w2 - bcs .L2517 - add x4, x25, 1208 - add w0, w3, 1 - ldrh w1, [x4,w0,sxtw 1] - strh w1, [x4,w3,sxtw 1] - uxth w3, w0 - b .L2509 -.L2517: - sub w2, w2, #1 - strh w2, [x19,2486] -.L2508: - add w20, w20, 1 - uxth w20, w20 - b .L2507 -.L2516: - add w21, w21, 1 - uxth w21, w21 - b .L2514 -.L2515: +.L2462: + add x0, x27, :lo12:.LANCHOR2 + ldrh w1, [x0, 2276] + cmp w1, w20 + bhi .L2468 bl FtlGcReFreshBadBlk -.L2506: +.L2461: mov w0, 0 - ldr x27, [sp,80] - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] + ldr x27, [sp, 80] + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] ldp x29, x30, [sp], 96 ret +.L2468: + add x0, x0, 2304 + mov w1, w23 + mov w19, 0 + ldrb w0, [x0, w20, sxtw] + bl V2P_block + and w24, w0, 65535 +.L2463: + add x25, x27, :lo12:.LANCHOR2 + ldrh w0, [x25, 2486] + cmp w0, w19 + bhi .L2467 + add w20, w20, 1 + and w20, w20, 65535 + b .L2462 +.L2467: + add x0, x22, :lo12:.LANCHOR4 + add w26, w19, 1 + add x0, x0, 1720 + ldrh w0, [x0, w19, sxtw 1] + cmp w0, w24 + bne .L2464 + mov w1, w24 + adrp x0, .LC150 + add x0, x0, :lo12:.LC150 + bl printk + mov w0, w24 + bl FtlBbmMapBadBlock + bl FtlBbmTblFlush + ldrh w0, [x25, 2486] + mov w1, w26 +.L2465: + cmp w19, w0 + bcc .L2466 + add x1, x27, :lo12:.LANCHOR2 + sub w0, w0, #1 + strh w0, [x1, 2486] +.L2464: + and w19, w26, 65535 + b .L2463 +.L2466: + sub w2, w1, #1 + ldrh w3, [x21, w1, sxtw 1] + add w19, w19, 1 + add w1, w1, 1 + and w19, w19, 65535 + strh w3, [x21, w2, sxtw 1] + b .L2465 .size FtlGcFreeBadSuperBlk, .-FtlGcFreeBadSuperBlk .align 2 .global update_vpc_list .type update_vpc_list, %function update_vpc_list: - stp x29, x30, [sp, -32]! + stp x29, x30, [sp, -16]! adrp x1, .LANCHOR2+2712 + and w14, w0, 65535 add x29, sp, 0 - stp x19, x20, [sp,16] - uxth w19, w0 - ldr x1, [x1,#:lo12:.LANCHOR2+2712] - ubfiz x0, x19, 1, 16 - ldrh w1, [x1,x0] - cbnz w1, .L2519 - adrp x0, .LANCHOR5 - adrp x20, .LANCHOR4 - add x0, x0, :lo12:.LANCHOR5 - ldrh w2, [x0,592] - cmp w2, w19 - bne .L2520 + ldr x1, [x1, #:lo12:.LANCHOR2+2712] + ubfiz x0, x14, 1, 16 + ldrh w0, [x1, x0] + cbnz w0, .L2474 + adrp x8, .LANCHOR4 + add x0, x8, :lo12:.LANCHOR4 + ldrh w1, [x0, 1104] + cmp w1, w14 + bne .L2475 mov w1, -1 - strh w1, [x0,592] - b .L2521 -.L2520: - add x2, x20, :lo12:.LANCHOR4 - mov w0, w1 - ldrh w3, [x2,784] - cmp w3, w19 - beq .L2522 - ldrh w3, [x2,832] - cmp w3, w19 - beq .L2522 - ldrh w2, [x2,880] - cmp w2, w19 - beq .L2522 -.L2521: - add x20, x20, :lo12:.LANCHOR4 - mov w1, w19 - add x0, x20, 744 + strh w1, [x0, 1104] +.L2476: + add x8, x8, :lo12:.LANCHOR4 + mov w1, w14 + add x0, x8, 744 bl List_remove_node - ldrh w0, [x20,760] + ldrh w0, [x8, 760] sub w0, w0, #1 - strh w0, [x20,760] - mov w0, w19 + strh w0, [x8, 760] + mov w0, w14 bl free_data_superblock - mov w0, w19 + mov w0, w14 bl FtlGcFreeBadSuperBlk mov w0, 1 - b .L2522 -.L2519: - mov w0, w19 - bl List_update_data_list - mov w0, 0 -.L2522: - ldp x19, x20, [sp,16] - ldp x29, x30, [sp], 32 +.L2473: + ldp x29, x30, [sp], 16 ret +.L2475: + ldrh w1, [x0, 784] + cmp w1, w14 + beq .L2480 + ldrh w1, [x0, 832] + cmp w1, w14 + beq .L2480 + ldrh w0, [x0, 880] + cmp w0, w14 + bne .L2476 +.L2480: + mov w0, 0 + b .L2473 +.L2474: + mov w0, w14 + bl List_update_data_list + b .L2480 .size update_vpc_list, .-update_vpc_list .align 2 .global decrement_vpc_count .type decrement_vpc_count, %function decrement_vpc_count: - stp x29, x30, [sp, -64]! + stp x29, x30, [sp, -48]! add x29, sp, 0 - stp x19, x20, [sp,16] - uxth w19, w0 + stp x19, x20, [sp, 16] + and w19, w0, 65535 + stp x21, x22, [sp, 32] mov w0, 65535 - stp x21, x22, [sp,32] - str x23, [sp,48] + adrp x20, .LANCHOR4 cmp w19, w0 - beq .L2527 - adrp x20, .LANCHOR2 + beq .L2483 + adrp x21, .LANCHOR2 + add x21, x21, :lo12:.LANCHOR2 ubfiz x22, x19, 1, 16 - add x20, x20, :lo12:.LANCHOR2 - ldr x0, [x20,2712] - ldrh w2, [x0,x22] - cbnz w2, .L2528 + ldr x1, [x21, 2712] + ldrh w0, [x1, x22] + cbnz w0, .L2484 + mov w1, w19 + mov w2, 0 adrp x0, .LC151 - mov w1, w19 add x0, x0, :lo12:.LC151 - adrp x21, .LANCHOR4 - add x21, x21, :lo12:.LANCHOR4 bl printk - add x23, x21, 768 - ldr x0, [x20,2712] + add x20, x20, :lo12:.LANCHOR4 + ldr x0, [x21, 2712] + add x6, x20, 768 mov w1, 32 - strh w1, [x0,x22] - mov x0, x23 + strh w1, [x0, x22] mov w1, w19 + mov x0, x6 bl test_node_in_list - cbz w0, .L2529 + cbz w0, .L2485 mov w1, w19 - mov x0, x23 + mov x0, x6 bl List_remove_node - ldrh w0, [x21,776] + ldrh w0, [x20, 776] sub w0, w0, #1 - strh w0, [x21,776] + strh w0, [x20, 776] mov w0, w19 bl INSERT_DATA_LIST - ldr x2, [x20,2712] + ldr x0, [x21, 2712] + mov w1, w19 + ldrh w2, [x0, x22] adrp x0, .LC152 add x0, x0, :lo12:.LC152 - mov w1, w19 - ldrh w2, [x2,x22] bl printk -.L2529: +.L2485: mov w0, w19 bl FtlGcRefreshBlock - b .L2536 -.L2528: - sub w2, w2, #1 - strh w2, [x0,x22] -.L2527: - adrp x20, .LANCHOR5 - mov w0, 65535 - add x20, x20, :lo12:.LANCHOR5 - ldrh w1, [x20,1184] - cmp w1, w0 - bne .L2531 - strh w19, [x20,1184] -.L2536: +.L2488: mov w0, 0 - b .L2530 -.L2531: - cmp w1, w19 - mov w0, 0 - beq .L2530 - mov w0, w1 + b .L2482 +.L2484: + sub w0, w0, #1 + strh w0, [x1, x22] +.L2483: + add x20, x20, :lo12:.LANCHOR4 + mov w1, 65535 + ldrh w0, [x20, 1696] + cmp w0, w1 + bne .L2487 + strh w19, [x20, 1696] + b .L2488 +.L2487: + cmp w19, w0 + beq .L2488 bl update_vpc_list - cmp w0, wzr + cmp w0, 0 cset w0, ne - strh w19, [x20,1184] -.L2530: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldr x23, [sp,48] - ldp x29, x30, [sp], 64 + strh w19, [x20, 1696] +.L2482: + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x29, x30, [sp], 48 ret .size decrement_vpc_count, .-decrement_vpc_count .align 2 .global FtlRecoverySuperblock .type FtlRecoverySuperblock, %function FtlRecoverySuperblock: - stp x29, x30, [sp, -224]! + stp x29, x30, [sp, -176]! mov w2, 65535 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] + stp x19, x20, [sp, 16] mov x19, x0 + stp x21, x22, [sp, 32] + stp x23, x24, [sp, 48] + stp x25, x26, [sp, 64] + stp x27, x28, [sp, 80] ldrh w0, [x0] cmp w0, w2 - beq .L2698 - ldrh w0, [x19,2] + beq .L2639 + ldrh w0, [x19, 2] adrp x20, .LANCHOR2 - str w0, [x29,204] + str w0, [x29, 156] add x0, x20, :lo12:.LANCHOR2 - ldrb w28, [x19,6] - ldr w1, [x29,204] - ldrh w0, [x0,2344] + ldr w1, [x29, 156] + ldrh w0, [x0, 2344] cmp w0, w1 - bne .L2540 - strh wzr, [x19,4] - b .L2704 -.L2540: - ldrh w0, [x19,16] + bne .L2496 + strh wzr, [x19, 4] +.L2646: + strb wzr, [x19, 6] +.L2639: + ldp x19, x20, [sp, 16] + mov w0, 0 + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] + ldp x27, x28, [sp, 80] + ldp x29, x30, [sp], 176 + ret +.L2496: + ldrh w0, [x19, 16] mov w1, 0 -.L2541: +.L2497: cmp w0, w2 - bne .L2707 - add w1, w1, 1 - uxth w1, w1 - add x0, x19, w1, sxtw 1 - ldrh w0, [x0,16] - b .L2541 -.L2707: - ldrb w1, [x19,8] + beq .L2498 + ldrb w1, [x19, 6] + str w1, [x29, 140] + ldrb w1, [x19, 8] cmp w1, 1 - bne .L2543 + bne .L2499 bl FtlGetLastWrittenPage - cmn w0, #1 mov w21, w0 - beq .L2544 + cmn w0, #1 + beq .L2500 add x0, x20, :lo12:.LANCHOR2 - mov w23, w21 - ldrb w0, [x0,1220] - cbnz w0, .L2618 + ldrb w0, [x0, 1220] + cbnz w0, .L2572 adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 add x0, x0, 144 - ldrh w23, [x0,w21,sxtw 1] - b .L2618 -.L2543: - mov w1, 0 - bl FtlGetLastWrittenPage - cmn w0, #1 - mov w21, w0 - beq .L2544 - mov w23, w0 -.L2618: + ldrh w23, [x0, w21, sxtw 1] +.L2501: add x0, x20, :lo12:.LANCHOR2 - mov x2, x19 - mov w25, 0 + add x1, x19, 16 + str x1, [x29, 144] + add x3, x19, 16 + mov w28, 0 mov w8, 65535 + ldrh w1, [x0, 2276] mov w9, 56 + ldrh w7, [x0, 2356] mov w10, 4 - ldrh w4, [x0,2276] - ldrh w7, [x0,2356] - add x4, x19, x4, lsl 1 - b .L2546 -.L2544: - strh wzr, [x19,2] -.L2704: - strb wzr, [x19,6] - b .L2698 -.L2548: - ldrh w1, [x2,16] - cmp w1, w8 - beq .L2547 - add x5, x20, :lo12:.LANCHOR2 - orr w1, w23, w1, lsl 10 - umull x0, w25, w9 - add w3, w25, 1 - ldr x6, [x5,2520] - add x6, x6, x0 - str w1, [x6,4] - ldr x1, [x5,2520] - ldr x5, [x5,2656] - add x0, x1, x0 - mul w1, w25, w7 - uxth w25, w3 - str xzr, [x0,8] - sdiv w1, w1, w10 - add x1, x5, w1, sxtw 2 - str x1, [x0,16] -.L2547: - add x2, x2, 2 -.L2546: - cmp x2, x4 - bne .L2548 - ldrb w0, [x19,8] - str wzr, [x29,200] + add x1, x1, 8 + add x1, x19, x1, lsl 1 +.L2502: + cmp x3, x1 + bne .L2504 + ldrb w0, [x19, 8] cmp w0, 1 - bne .L2549 + bne .L2573 add x0, x20, :lo12:.LANCHOR2 - ldrb w0, [x0,1220] - cmp w0, wzr + ldrb w0, [x0, 1220] + cmp w0, 0 cset w0, ne - str w0, [x29,200] -.L2549: - add x22, x20, :lo12:.LANCHOR2 - ldr w2, [x29,200] - mov w1, w25 - mov x26, 0 - mov w24, 65535 - adrp x27, .LANCHOR5 - ldr x0, [x22,2520] + str w0, [x29, 152] +.L2505: + add x24, x20, :lo12:.LANCHOR2 + ldr w2, [x29, 152] + mov w1, w28 + adrp x25, .LC153 + adrp x26, .LANCHOR4 + add x25, x25, :lo12:.LC153 + ldr x0, [x24, 2520] + add x26, x26, :lo12:.LANCHOR4 + mov x27, 0 bl FlashReadPages - ldr w0, [x22,2400] - adrp x22, .LC153 - str w0, [x29,192] - add x22, x22, :lo12:.LC153 - uxth w0, w23 - str w0, [x29,184] -.L2550: - uxth w2, w26 - cmp w2, w25 - bcs .L2557 - add x6, x20, :lo12:.LANCHOR2 - mov x0, 56 - mul x0, x26, x0 - ldr x4, [x6,2520] - add x1, x4, x0 - ldr w0, [x4,x0] - cbnz w0, .L2551 - ldr x7, [x1,16] - ldr w4, [x7,4] - cmn w4, #1 - beq .L2552 - ldr w1, [x6,2400] - mov w0, w4 - str x7, [x29,152] - str x2, [x29,160] - str x4, [x29,168] - str x6, [x29,176] - bl ftl_cmp_data_ver - ldr x6, [x29,176] - ldr x4, [x29,168] - ldr x2, [x29,160] - ldr x7, [x29,152] - cbz w0, .L2552 - add w4, w4, 1 - str w4, [x6,2400] -.L2552: - ldr w0, [x7] - cmn w0, #1 - bne .L2553 -.L2557: - cmp w2, w25 - bne .L2699 + ldr w22, [x24, 2400] + mov w4, 65535 + sub w22, w22, #1 +.L2506: + and w0, w27, 65535 + cmp w28, w0 + bhi .L2511 + bne .L2509 add x0, x20, :lo12:.LANCHOR2 add w21, w21, 1 - uxth w21, w21 - ldr x0, [x0,2520] - ldr w0, [x0,4] - b .L2700 -.L2551: - ldr w1, [x1,4] - mov x0, x22 - bl printk - ldr w24, [x29,184] - add x0, x27, :lo12:.LANCHOR5 - ldrh w1, [x19] - strh w1, [x0,1242] -.L2553: - add x26, x26, 1 - b .L2550 -.L2699: - add x0, x20, :lo12:.LANCHOR2 - mov w1, 56 - uxth w21, w21 - umull x2, w2, w1 - ldr x0, [x0,2520] - add x2, x0, x2 - ldr w0, [x2,4] -.L2700: - lsr x0, x0, 10 + and w21, w21, 65535 + ldr x0, [x0, 2520] + ldr w0, [x0, 4] +.L2641: + lsr w0, w0, 10 bl P2V_plane - uxth w26, w0 - ldrb w1, [x19,8] + ldrb w1, [x19, 8] + and w28, w0, 65535 cmp w1, 1 - bne .L2559 + bne .L2513 add x0, x20, :lo12:.LANCHOR2 - ldrb w0, [x0,1220] - cbnz w0, .L2559 + ldrb w0, [x0, 1220] + cbnz w0, .L2513 adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 add x0, x0, 144 - ldrh w21, [x0,w21,sxtw 1] -.L2559: + ldrh w21, [x0, w21, sxtw 1] +.L2513: add x0, x20, :lo12:.LANCHOR2 - ldrh w0, [x0,2344] + ldrh w0, [x0, 2344] cmp w0, w21 - bne .L2560 - strh w21, [x19,2] - strb wzr, [x19,6] - strh wzr, [x19,4] -.L2560: - uxth w0, w28 - str w0, [x29,160] - ldr w0, [x29,204] + bne .L2514 + strh w21, [x19, 2] + strb wzr, [x19, 6] + strh wzr, [x19, 4] +.L2514: + ldrh w0, [x29, 140] + str w0, [x29, 140] + ldr w0, [x29, 156] cmp w21, w0 - bne .L2561 - ldr w0, [x29,160] - cmp w26, w0 - beq .L2705 -.L2561: - ldr w0, [x29,192] - adrp x25, .LANCHOR5 - sub w22, w0, #1 + ldr w0, [x29, 140] + ccmp w28, w0, 0, eq + bne .L2515 +.L2647: + mov w2, w28 + mov w1, w21 + mov x0, x19 + bl ftl_sb_update_avl_pages + b .L2639 +.L2498: + add w1, w1, 1 + and w1, w1, 65535 + add x0, x19, w1, sxtw 1 + ldrh w0, [x0, 16] + b .L2497 +.L2499: + mov w1, 0 + bl FtlGetLastWrittenPage + mov w21, w0 + cmn w0, #1 + beq .L2500 +.L2572: + mov w23, w21 + b .L2501 +.L2500: + strh wzr, [x19, 2] + b .L2646 +.L2504: + ldrh w2, [x3] + cmp w2, w8 + beq .L2503 + umull x6, w28, w9 + ldr x5, [x0, 2520] + orr w2, w23, w2, lsl 10 + add x5, x5, x6 + str w2, [x5, 4] + mul w2, w28, w7 + add w28, w28, 1 + ldr x4, [x0, 2520] + and w28, w28, 65535 + ldr x5, [x0, 2656] + sdiv w2, w2, w10 + add x4, x4, x6 + add x2, x5, w2, sxtw 2 + stp xzr, x2, [x4, 8] +.L2503: + add x3, x3, 2 + b .L2502 +.L2573: + str wzr, [x29, 152] + b .L2505 +.L2511: + mov x0, 56 + ldr x3, [x24, 2520] + mul x0, x27, x0 + add x1, x3, x0 + ldr w0, [x3, x0] + cbnz w0, .L2507 + ldr x5, [x1, 16] + ldr w3, [x5, 4] + cmn w3, #1 + beq .L2508 + ldr w1, [x24, 2400] + mov w0, w3 + bl ftl_cmp_data_ver + cbz w0, .L2508 + add w3, w3, 1 + str w3, [x24, 2400] +.L2508: + ldr w0, [x5] + cmn w0, #1 + bne .L2510 +.L2509: + add x0, x20, :lo12:.LANCHOR2 + and x27, x27, 65535 + mov x1, 56 + and w21, w21, 65535 + ldr x0, [x0, 2520] + madd x27, x27, x1, x0 + ldr w0, [x27, 4] + b .L2641 +.L2507: + ldr w1, [x1, 4] + mov x0, x25 + bl printk + ldrh w0, [x19] + and w4, w23, 65535 + strh w0, [x26, 1754] +.L2510: + add x27, x27, 1 + b .L2506 +.L2515: mov w0, 65535 - cmp w24, w0 - bne .L2562 - cbnz w1, .L2563 -.L2562: - add x0, x25, :lo12:.LANCHOR5 - uxth w6, w23 - ldr w1, [x0,1196] + adrp x27, .LANCHOR4 + cmp w4, w0 + bne .L2516 + cbnz w1, .L2517 +.L2516: + add x0, x27, :lo12:.LANCHOR4 + and w6, w23, 65535 + ldr w1, [x0, 1708] cmn w1, #1 - bne .L2564 - str w22, [x0,1196] -.L2564: - add x0, x25, :lo12:.LANCHOR5 - ldr w24, [x29,204] - ldr w3, [x0,1196] - ldr w0, [x29,204] + bne .L2518 + str w22, [x0, 1708] +.L2518: + add x0, x27, :lo12:.LANCHOR4 + ldr w5, [x0, 1708] + ldr w0, [x29, 156] add w0, w0, 7 cmp w0, w23, uxth - bge .L2565 - sub w24, w6, #7 - uxth w24, w24 -.L2565: - mov w28, -1 - adrp x5, .LANCHOR0 - mov w27, w28 - mov w4, 65535 - mov w7, 56 - add x5, x5, :lo12:.LANCHOR0 -.L2566: - cmp w24, w6 - bhi .L2579 - add x0, x20, :lo12:.LANCHOR2 - mov w23, 0 - ldrh w2, [x0,2276] - mov x0, x19 - add x2, x19, x2, lsl 1 -.L2580: - cmp x0, x2 - beq .L2708 - ldrh w1, [x0,16] - cmp w1, w4 - beq .L2567 - add x9, x20, :lo12:.LANCHOR2 - orr w1, w24, w1, lsl 10 - umull x8, w23, w7 - add w23, w23, 1 - ldr x9, [x9,2520] - uxth w23, w23 - add x8, x9, x8 - str w1, [x8,4] -.L2567: - add x0, x0, 2 - b .L2580 -.L2708: - add x8, x20, :lo12:.LANCHOR2 - ldr w2, [x29,200] - mov w1, w23 - str x5, [x29,144] - str x7, [x29,152] - ldr x0, [x8,2520] - str x4, [x29,168] - str x3, [x29,176] - str x6, [x29,184] - str x8, [x29,192] + bge .L2574 + sub w23, w6, #7 + and w23, w23, 65535 +.L2519: + adrp x4, .LANCHOR0 + add x4, x4, :lo12:.LANCHOR0 + mov w26, -1 + add x3, x20, :lo12:.LANCHOR2 + mov w25, w26 + add x4, x4, 1168 +.L2520: + cmp w23, w6 + bhi .L2533 + ldrh w0, [x3, 2276] + mov w24, 0 + mov w9, 65535 + mov w8, 56 + add x0, x0, 8 + ldr x1, [x29, 144] + add x0, x19, x0, lsl 1 + b .L2534 +.L2574: + ldr w23, [x29, 156] + b .L2519 +.L2522: + ldrh w2, [x1] + cmp w2, w9 + beq .L2521 + ldr x7, [x3, 2520] + orr w2, w23, w2, lsl 10 + umaddl x7, w24, w8, x7 + add w24, w24, 1 + and w24, w24, 65535 + str w2, [x7, 4] +.L2521: + add x1, x1, 2 +.L2534: + cmp x0, x1 + bne .L2522 + ldr w2, [x29, 152] + mov w1, w24 + ldr x0, [x3, 2520] + str x4, [x29, 104] + str w5, [x29, 112] + str w6, [x29, 120] + str x3, [x29, 128] bl FlashReadPages - ldr x8, [x29,192] - mov w1, 0 - ldr x6, [x29,184] - sxtw x10, w24 - ldr x3, [x29,176] - ldr x0, [x8,2520] - ldrb w9, [x8,1220] - ldr x4, [x29,168] - add x0, x0, 16 - ldr x7, [x29,152] - ldr x5, [x29,144] -.L2569: - cmp w1, w23 - beq .L2709 - ldr w2, [x0,-16] - cbnz w2, .L2570 - ldr x2, [x0] - ldrh w8, [x2] - cmp w8, w4 - beq .L2571 - ldr w8, [x2,4] - cmn w8, #1 - beq .L2571 - add x2, x25, :lo12:.LANCHOR5 - cmn w28, #1 - ldr w27, [x2,1196] - str w8, [x2,1196] - bne .L2571 - add x2, x5, 1168 - ldrh w2, [x2,x10,lsl 1] - cmp w2, w4 - bne .L2572 - cbz w9, .L2571 -.L2572: - cmp w27, w22 - csinv w28, w27, wzr, ne - b .L2571 -.L2570: - add x0, x25, :lo12:.LANCHOR5 + ldr x3, [x29, 128] + mov w1, 56 + ldr w5, [x29, 112] + add x2, x27, :lo12:.LANCHOR4 + ldr w6, [x29, 120] + sxtw x9, w23 + ldr x4, [x29, 104] + ldr x0, [x3, 2520] + ldrb w8, [x3, 1220] + nop // between mem op and mult-accumulate + umaddl x24, w24, w1, x0 + mov w1, 65535 +.L2523: + cmp x24, x0 + bne .L2532 + add w23, w23, 1 + and w23, w23, 65535 + b .L2520 +.L2532: + ldr w7, [x0] + cbnz w7, .L2524 + ldr x7, [x0, 16] + ldrh w10, [x7] + cmp w10, w1 + beq .L2525 + ldr w7, [x7, 4] + cmn w7, #1 + beq .L2525 + ldr w25, [x2, 1708] + cmn w26, #1 + str w7, [x2, 1708] + bne .L2525 + ldrh w7, [x4, x9, lsl 1] + cmp w7, w1 + bne .L2526 + cbz w8, .L2525 +.L2526: + cmp w22, w25 + csel w26, w26, w25, eq +.L2525: + add x0, x0, 56 + b .L2523 +.L2524: + add x0, x27, :lo12:.LANCHOR4 ldrh w1, [x19] - strh w1, [x0,1242] - ldrb w1, [x19,8] - cbnz w1, .L2563 + strh w1, [x0, 1754] + ldrb w1, [x19, 8] + cbnz w1, .L2517 adrp x1, .LANCHOR0 add x1, x1, :lo12:.LANCHOR0 add x1, x1, 1168 - ldrh w2, [x1,w24,sxtw 1] + ldrh w2, [x1, w23, sxtw 1] mov w1, 65535 cmp w2, w1 - bne .L2574 - cmn w28, #1 - beq .L2575 - str w28, [x0,1196] - b .L2563 -.L2575: - cmp w3, w22 - beq .L2576 - str w3, [x0,1196] - b .L2563 -.L2576: - ldr w1, [x0,1196] - b .L2706 -.L2574: - cmp w27, w22 - beq .L2577 - cmn w27, #1 - beq .L2563 - str w27, [x0,1196] - b .L2563 -.L2577: - ldr w1, [x0,1196] - cmp w1, w22 - beq .L2563 -.L2706: - sub w1, w1, #1 - b .L2701 -.L2571: - add w1, w1, 1 - add x0, x0, 56 - uxth w1, w1 - b .L2569 -.L2709: - add w24, w24, 1 - uxth w24, w24 - b .L2566 -.L2579: - add x0, x25, :lo12:.LANCHOR5 - mov w1, -1 -.L2701: - str w1, [x0,1196] -.L2563: - add x0, x25, :lo12:.LANCHOR5 + bne .L2528 + cmn w26, #1 + beq .L2529 + str w26, [x0, 1708] +.L2517: + add x0, x27, :lo12:.LANCHOR4 + ldr w24, [x29, 156] + add x20, x20, :lo12:.LANCHOR2 mov w1, 1 - ldr w23, [x29,204] - strh w1, [x0,1244] + strh w1, [x0, 1756] +.L2535: + ldrh w0, [x20, 2276] + mov w23, 0 + ldrb w6, [x20, 1220] + mov w7, 65535 + add x0, x0, 8 + ldr x1, [x29, 144] + add x0, x19, x0, lsl 1 +.L2536: + cmp x0, x1 + bne .L2539 + ldr w2, [x29, 152] + mov w1, w23 + ldr x0, [x20, 2520] + mov x25, 0 + bl FlashReadPages + mov w0, 56 + umull x0, w23, w0 + add x23, x27, :lo12:.LANCHOR4 + str x0, [x29, 120] adrp x0, .LC155 add x0, x0, :lo12:.LC155 - str x0, [x29,136] + str x0, [x29, 112] + add x0, x23, 1768 + str x0, [x29, 104] +.L2540: + ldr x0, [x29, 120] + cmp x0, x25 + bne .L2565 + ldrb w0, [x19, 8] + add w24, w24, 1 + and w24, w24, 65535 + cmp w0, 1 + bne .L2566 + ldrb w0, [x20, 1220] + cbz w0, .L2566 + ldrh w0, [x20, 2346] + cmp w0, w24 + bne .L2566 + cmp w21, w24 + beq .L2542 +.L2566: + ldrh w0, [x20, 2344] + cmp w0, w24 + bne .L2535 + ldrh w1, [x20, 2276] + mov w0, 0 + strh w24, [x19, 2] + mov w2, 65535 + strh wzr, [x19, 4] +.L2567: + cmp w0, w1 + beq .L2639 + ldr x4, [x29, 144] + ldrh w3, [x4], 2 + str x4, [x29, 144] + cmp w3, w2 + beq .L2568 + strb w0, [x19, 6] + b .L2639 +.L2529: + cmp w22, w5 + beq .L2530 + str w5, [x0, 1708] + b .L2517 +.L2530: + ldr w1, [x0, 1708] +.L2648: + sub w1, w1, #1 +.L2642: + str w1, [x0, 1708] + b .L2517 +.L2528: + cmp w25, w22 + beq .L2531 + cmn w25, #1 + beq .L2517 + str w25, [x0, 1708] + b .L2517 +.L2531: + ldr w1, [x0, 1708] + cmp w22, w1 + bne .L2648 + b .L2517 +.L2533: + add x0, x27, :lo12:.LANCHOR4 + mov w1, -1 + b .L2642 +.L2539: + ldrh w3, [x1] + cmp w3, w7 + beq .L2537 + mov w2, 56 + ldr x4, [x20, 2520] + orr w3, w24, w3, lsl 10 + umull x5, w23, w2 + add x4, x4, x5 + str w3, [x4, 4] + ldrb w2, [x19, 8] + cmp w2, 1 + bne .L2538 + cbz w6, .L2538 + ldr x2, [x20, 2520] + add x2, x2, x5 + ldr w3, [x2, 4] + orr w3, w3, -2147483648 + str w3, [x2, 4] +.L2538: + add w23, w23, 1 + and w23, w23, 65535 +.L2537: + add x1, x1, 2 + b .L2536 +.L2565: + ldr x4, [x20, 2520] + add x4, x4, x25 + ldr w5, [x4, 4] + str w5, [x29, 172] + lsr w0, w5, 10 + bl P2V_plane + and w0, w0, 65535 + ldr w1, [x29, 156] + cmp w24, w1 + bcc .L2541 + ldr w1, [x29, 140] + ccmp w1, w0, 0, eq + bhi .L2541 + cmp w24, w21 + ccmp w28, w0, 0, eq + beq .L2542 + ldr w0, [x4] + cmn w0, #1 + beq .L2543 + ldr x3, [x4, 16] + mov w0, 61589 + ldrh w1, [x3] + cmp w1, w0 + beq .L2544 + ldrh w0, [x19] +.L2644: + bl decrement_vpc_count + b .L2541 +.L2544: + ldr w22, [x3, 4] + cmn w22, #1 + beq .L2545 + ldr w1, [x20, 2400] + mov w0, w22 + bl ftl_cmp_data_ver + cbz w0, .L2545 + add w0, w22, 1 + str w0, [x20, 2400] +.L2545: + ldp w26, w0, [x3, 8] + add x1, x29, 168 + str w0, [x29, 164] + mov w2, 0 + mov w0, w26 + bl log2phys + ldr w1, [x23, 1708] + ldr w3, [x29, 164] + cmn w1, #1 + beq .L2546 + mov w0, w22 + bl ftl_cmp_data_ver + cbz w0, .L2546 + cmn w3, #1 + beq .L2547 + ldr x0, [x20, 2520] + mov w2, 0 + mov w1, 1 + add x0, x0, x25 + ldr x4, [x0, 16] + str w3, [x0, 4] + str x4, [x29, 128] + ldr x0, [x20, 2520] + add x0, x0, x25 + bl FlashReadPages + ldr x0, [x20, 2520] + ldr x4, [x29, 128] + add x3, x0, x25 + ldr w0, [x0, x25] + cmn w0, #1 + bne .L2548 +.L2549: + mov w0, -1 + str w0, [x29, 164] +.L2556: + ldr w4, [x29, 164] + cmn w4, #1 + beq .L2541 +.L2571: + lsr w0, w4, 10 + bl P2V_block_in_plane + ldr x3, [x20, 2712] + and w1, w0, 65535 + ubfiz x2, x1, 1, 16 + ldrh w2, [x3, x2] + cbnz w2, .L2644 adrp x0, .LC154 add x0, x0, :lo12:.LC154 - str x0, [x29,128] - adrp x0, .LANCHOR4 - add x0, x0, :lo12:.LANCHOR4 - str x0, [x29,168] -.L2581: - add x0, x20, :lo12:.LANCHOR2 - mov x1, x19 - str wzr, [x29,192] - mov w7, 65535 - mov w8, 56 - ldrh w3, [x0,2276] - ldrb w6, [x0,1220] - add x3, x19, x3, lsl 1 -.L2582: - cmp x1, x3 - beq .L2710 - ldrh w2, [x1,16] - cmp w2, w7 - beq .L2583 - ldr w0, [x29,192] - add x5, x20, :lo12:.LANCHOR2 - orr w2, w23, w2, lsl 10 - ldr x4, [x5,2520] - umull x0, w0, w8 - add x4, x4, x0 - str w2, [x4,4] - ldrb w2, [x19,8] - cmp w2, 1 - bne .L2584 - cbz w6, .L2584 - ldr x2, [x5,2520] - add x0, x2, x0 - ldr w2, [x0,4] - orr w2, w2, -2147483648 - str w2, [x0,4] -.L2584: - ldr w0, [x29,192] - add w0, w0, 1 - uxth w0, w0 - str w0, [x29,192] -.L2583: - add x1, x1, 2 - b .L2582 -.L2710: - add x0, x20, :lo12:.LANCHOR2 - ldr w1, [x29,192] - ldr w2, [x29,200] - ldr x0, [x0,2520] - bl FlashReadPages - str xzr, [x29,176] -.L2586: - ldrh w0, [x29,176] - ldr w1, [x29,192] - cmp w1, w0, uxth - bls .L2711 - ldr x0, [x29,176] - mov x24, 56 - mul x24, x0, x24 - add x0, x20, :lo12:.LANCHOR2 - ldr x28, [x0,2520] - add x27, x28, x24 - ldr w1, [x27,4] - str w1, [x29,220] - lsr x0, x1, 10 - str x1, [x29,184] - bl P2V_plane - uxth w0, w0 - ldr w1, [x29,204] - cmp w23, w1 - ldr x1, [x29,184] - bcc .L2587 - ldr w2, [x29,160] - cmp w0, w2 - bcs .L2622 - ldr w2, [x29,204] - cmp w23, w2 - beq .L2587 -.L2622: - cmp w0, w26 - bne .L2623 - cmp w23, w21 - beq .L2589 -.L2623: - ldr w0, [x28,x24] - cmn w0, #1 - beq .L2591 - ldr x28, [x27,16] - mov w0, 61589 - ldrh w1, [x28] - cmp w1, w0 - beq .L2592 - ldrh w0, [x19] - b .L2702 -.L2592: - ldr w22, [x28,4] - cmn w22, #1 - beq .L2593 - add x27, x20, :lo12:.LANCHOR2 - mov w0, w22 - ldr w1, [x27,2400] - bl ftl_cmp_data_ver - cbz w0, .L2593 - add w0, w22, 1 - str w0, [x27,2400] -.L2593: - ldr w27, [x28,8] - add x1, x29, 216 - ldr w0, [x28,12] - mov w2, 0 - str w0, [x29,212] - mov w0, w27 - bl log2phys - ldr w28, [x29,212] - add x0, x25, :lo12:.LANCHOR5 - str x0, [x29,144] - ldr w1, [x0,1196] - cmn w1, #1 - beq .L2594 - mov w0, w22 - bl ftl_cmp_data_ver - cbz w0, .L2594 - cmn w28, #1 - beq .L2595 - add x3, x20, :lo12:.LANCHOR2 - mov w2, 0 - str x3, [x29,120] - ldr x0, [x3,2520] - add x0, x0, x24 - str w28, [x0,4] - ldr x1, [x0,16] - ldr x0, [x3,2520] - str x1, [x29,184] - mov w1, 1 - add x0, x0, x24 - bl FlashReadPages - ldr x3, [x29,120] - ldr x0, [x29,184] - ldr x2, [x3,2520] - ldr w0, [x0,4] - str w0, [x29,152] - add x4, x2, x24 - ldr w0, [x2,x24] - cmn w0, #1 - bne .L2596 - b .L2597 -.L2595: - ldr w0, [x29,220] - ldr w1, [x29,216] - cmp w1, w0 - bne .L2587 - mov w0, w27 - add x1, x29, 212 - mov w2, 1 - bl log2phys - b .L2587 -.L2596: - ldr x0, [x29,184] - ldr w28, [x0,8] - cmp w28, w27 - bne .L2597 - ldr x0, [x29,144] - ldr w1, [x29,152] - str x2, [x29,104] - ldr w0, [x0,1196] - str x3, [x29,112] - str x4, [x29,120] - bl ftl_cmp_data_ver - ldr x4, [x29,120] - ldr x3, [x29,112] - ldr x2, [x29,104] - cbz w0, .L2597 - ldr w0, [x29,216] - ldr w1, [x29,220] - cmp w0, w1 - beq .L2602 - ldr w1, [x29,212] - cmp w0, w1 - beq .L2597 - cmn w0, #1 - beq .L2600 - str w0, [x4,4] - mov w2, 0 - ldr x1, [x4,16] - ldr x0, [x3,2520] - str x1, [x29,184] - mov w1, 1 - add x0, x0, x24 - bl FlashReadPages - b .L2601 -.L2600: - str w0, [x2,x24] -.L2601: - adrp x0, .LANCHOR2 - add x0, x0, :lo12:.LANCHOR2 - ldr x0, [x0,2520] - ldr w0, [x0,x24] - cmn w0, #1 - beq .L2602 - ldr x0, [x29,184] - ldr w24, [x0,4] - add x0, x25, :lo12:.LANCHOR5 - mov w1, w24 - ldr w0, [x0,1196] - bl ftl_cmp_data_ver - cbz w0, .L2602 - ldr w0, [x29,152] - mov w1, w24 - bl ftl_cmp_data_ver - cbz w0, .L2597 -.L2602: - ldr w1, [x29,212] - mov w0, w28 - bl FtlReUsePrevPpa -.L2597: - mov w0, -1 - str w0, [x29,212] - b .L2604 -.L2594: - ldr w0, [x29,220] - ldr w1, [x29,216] - cmp w1, w0 - beq .L2604 - cmn w28, #1 - beq .L2606 - add x0, x20, :lo12:.LANCHOR2 - ubfx x28, x28, 10, 21 - ldr w0, [x0,2292] - cmp w28, w0 - bcs .L2587 -.L2606: - mov w0, w27 - add x1, x29, 220 - mov w2, 1 - bl log2phys - ldr w28, [x29,216] - cmn w28, #1 - beq .L2604 - ldr w0, [x29,212] - cmp w28, w0 - beq .L2604 - lsr x0, x28, 10 - bl P2V_block_in_plane - uxth w0, w0 - ldr x1, [x29,168] - ldrh w1, [x1,784] - cmp w1, w0 - beq .L2608 - ldr x1, [x29,168] - ldrh w1, [x1,832] - cmp w1, w0 - beq .L2608 - ldr x1, [x29,168] - ldrh w1, [x1,880] - cmp w1, w0 - bne .L2604 -.L2608: - adrp x0, .LANCHOR2 - mov w1, 1 - add x24, x0, :lo12:.LANCHOR2 - mov w2, 0 - ldr x0, [x24,2520] - str w28, [x0,4] - ldr x3, [x0,16] - ldr x0, [x24,2520] - str x3, [x29,184] - bl FlashReadPages - ldr x0, [x24,2520] - ldr x3, [x29,184] - ldr w0, [x0] - ldr w1, [x3,4] - cmn w0, #1 - beq .L2604 - mov w0, w22 - bl ftl_cmp_data_ver - cbnz w0, .L2604 - mov w0, w27 - add x1, x29, 216 - mov w2, 1 - bl log2phys -.L2604: - ldr w0, [x29,212] - cmn w0, #1 - beq .L2587 - lsr x0, x0, 10 - bl P2V_block_in_plane - uxth w1, w0 - add x2, x20, :lo12:.LANCHOR2 - ubfiz x3, x1, 1, 16 - ldr x2, [x2,2712] - ldrh w2, [x2,x3] - cbz w2, .L2609 -.L2702: - bl decrement_vpc_count - b .L2587 -.L2609: - ldr x0, [x29,128] bl printk - b .L2587 -.L2591: - add x24, x25, :lo12:.LANCHOR5 + b .L2541 +.L2547: + ldp w1, w0, [x29, 168] + cmp w1, w0 + bne .L2541 + mov w2, 1 + add x1, x29, 164 + mov w0, w26 + bl log2phys +.L2541: + add x25, x25, 56 + b .L2540 +.L2548: + ldr w0, [x4, 8] + cmp w26, w0 + bne .L2549 + ldr w0, [x4, 4] + str w0, [x29, 128] + str x4, [x29, 96] + uxtw x1, w0 + ldr w0, [x23, 1708] + bl ftl_cmp_data_ver + cbz w0, .L2549 + ldp w0, w1, [x29, 168] + ldr x4, [x29, 96] + cmp w0, w1 + ldr w1, [x29, 164] + bne .L2551 +.L2643: + mov w0, w26 + bl FtlReUsePrevPpa + b .L2549 +.L2551: + cmp w0, w1 + beq .L2549 + cmn w0, #1 + beq .L2552 + ldr x4, [x3, 16] + mov w2, 0 + str w0, [x3, 4] + mov w1, 1 + str x4, [x29, 96] + ldr x0, [x20, 2520] + add x0, x0, x25 + bl FlashReadPages + ldr x4, [x29, 96] +.L2553: + adrp x0, .LANCHOR2+2520 + ldr x0, [x0, #:lo12:.LANCHOR2+2520] + ldr w0, [x0, x25] + cmn w0, #1 + beq .L2554 + ldr w3, [x4, 4] + ldr w0, [x23, 1708] + mov w1, w3 + bl ftl_cmp_data_ver + cbz w0, .L2554 + ldr w0, [x29, 128] + mov w1, w3 + bl ftl_cmp_data_ver + cbz w0, .L2549 +.L2554: + ldr w1, [x29, 164] + b .L2643 +.L2552: + str w0, [x3] + b .L2553 +.L2546: + ldp w1, w0, [x29, 168] + cmp w1, w0 + beq .L2556 + cmn w3, #1 + beq .L2558 + ldr w0, [x20, 2292] + ubfx x3, x3, 10, 21 + cmp w3, w0 + bcs .L2541 +.L2558: + mov w2, 1 + add x1, x29, 172 + mov w0, w26 + bl log2phys + ldr w4, [x29, 168] + cmn w4, #1 + beq .L2556 + ldr w0, [x29, 164] + cmp w4, w0 + beq .L2571 + lsr w0, w4, 10 + bl P2V_block_in_plane + ldrh w1, [x23, 784] + and w0, w0, 65535 + cmp w1, w0 + beq .L2561 + ldrh w1, [x23, 832] + cmp w1, w0 + beq .L2561 + ldrh w1, [x23, 880] + cmp w1, w0 + bne .L2556 +.L2561: + ldr x0, [x20, 2520] + mov w2, 0 + mov w1, 1 + str w4, [x0, 4] + ldr x3, [x0, 16] + ldr x0, [x20, 2520] + str x3, [x29, 128] + bl FlashReadPages + ldr x0, [x20, 2520] + ldr w0, [x0] + cmn w0, #1 + beq .L2556 + ldr x3, [x29, 128] + mov w0, w22 + ldr w1, [x3, 4] + bl ftl_cmp_data_ver + cbnz w0, .L2556 + mov w2, 1 + add x1, x29, 168 + mov w0, w26 + bl log2phys + b .L2556 +.L2543: ldrh w0, [x19] mov w2, w22 - strh w0, [x24,1242] - ldr x0, [x29,136] + strh w0, [x23, 1754] + mov w1, w5 + ldr x0, [x29, 112] bl printk - ldr w0, [x24,1248] + ldr w0, [x23, 1760] cmp w0, 31 - bhi .L2610 - add x1, x24, 1256 - ldr w2, [x29,220] - str w2, [x1,w0,uxtw 2] + bhi .L2563 + ldr x2, [x29, 104] + ldr w1, [x29, 172] + str w1, [x2, w0, uxtw 2] add w0, w0, 1 - str w0, [x24,1248] -.L2610: + str w0, [x23, 1760] +.L2563: ldrh w0, [x19] bl decrement_vpc_count - add x0, x25, :lo12:.LANCHOR5 - ldr w1, [x0,1196] - cmn w1, #1 - beq .L2703 - cmp w1, w22 - bls .L2587 -.L2703: - str w22, [x0,1196] -.L2587: - ldr x0, [x29,176] - add x0, x0, 1 - str x0, [x29,176] - b .L2586 -.L2711: - ldrb w0, [x19,8] - add w23, w23, 1 - cmp w0, 1 - uxth w23, w23 - bne .L2613 - add x0, x20, :lo12:.LANCHOR2 - ldrb w1, [x0,1220] - cbz w1, .L2613 - cmp w21, w23 - bne .L2613 - ldrh w0, [x0,2346] - cmp w0, w23 - beq .L2589 -.L2613: - add x0, x20, :lo12:.LANCHOR2 - ldrh w1, [x0,2344] - cmp w23, w1 - bne .L2581 - ldrh w2, [x0,2276] - mov w3, 65535 - strh w23, [x19,2] - mov x0, 0 - strh wzr, [x19,4] -.L2615: - uxth w1, w0 - cmp w1, w2 - bcs .L2698 - add x0, x0, 1 - add x4, x19, x0, lsl 1 - ldrh w4, [x4,14] - cmp w4, w3 - beq .L2615 - strb w1, [x19,6] - b .L2698 -.L2589: - strb w26, [x19,6] - strh w21, [x19,2] -.L2705: - mov x0, x19 - mov w1, w21 - mov w2, w26 - bl ftl_sb_update_avl_pages -.L2698: - 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], 224 - ret + ldr w0, [x23, 1708] + cmn w0, #1 + bne .L2564 +.L2645: + str w22, [x23, 1708] + b .L2541 +.L2564: + cmp w22, w0 + bcs .L2541 + b .L2645 +.L2568: + add w0, w0, 1 + and w0, w0, 65535 + b .L2567 +.L2542: + strb w28, [x19, 6] + strh w21, [x19, 2] + b .L2647 .size FtlRecoverySuperblock, .-FtlRecoverySuperblock .align 2 .global FtlSlcSuperblockCheck .type FtlSlcSuperblockCheck, %function FtlSlcSuperblockCheck: + ldrh w1, [x0, 4] + cbz w1, .L2661 + ldrh w2, [x0] + mov w1, 65535 + cmp w2, w1 + beq .L2661 stp x29, x30, [sp, -48]! add x29, sp, 0 - stp x19, x20, [sp,16] - stp x21, x22, [sp,32] - ldrh w1, [x0,4] - cbz w1, .L2712 - ldrh w1, [x0] - mov w20, 65535 - cmp w1, w20 - beq .L2712 + stp x19, x20, [sp, 16] mov x19, x0 - ldrb w0, [x0,6] + stp x21, x22, [sp, 32] adrp x21, .LANCHOR0 - adrp x22, .LANCHOR2 - add x0, x0, 8 add x21, x21, :lo12:.LANCHOR0 - ldrh w0, [x19,x0,lsl 1] -.L2716: - cmp w0, w20 - bne .L2723 -.L2718: - ldrb w0, [x19,6] - add x1, x22, :lo12:.LANCHOR2 - add w0, w0, 1 - ldrh w1, [x1,2276] - uxtb w0, w0 - strb w0, [x19,6] - cmp w1, w0 - bne .L2717 - ldrh w0, [x19,2] - strb wzr, [x19,6] - add w0, w0, 1 - strh w0, [x19,2] -.L2717: - ldrb w0, [x19,6] + adrp x20, .LANCHOR2 + ldrb w0, [x0, 6] + add x22, x20, :lo12:.LANCHOR2 + add x21, x21, 1168 add x0, x0, 8 - ldrh w0, [x19,x0,lsl 1] - b .L2716 -.L2723: - ldrb w1, [x19,8] + ldrh w1, [x19, x0, lsl 1] +.L2653: + mov w0, 65535 + cmp w1, w0 + beq .L2655 + ldrb w1, [x19, 8] cmp w1, 1 - bne .L2719 - add x0, x22, :lo12:.LANCHOR2 - ldrb w0, [x0,1220] - cbnz w0, .L2719 - ldrh w2, [x19,2] - add x0, x21, 1168 - ldrh w0, [x0,w2,sxtw 1] - cmp w0, w20 - bne .L2719 - ldrh w0, [x19,4] + bne .L2656 + ldrb w2, [x22, 1220] + cbnz w2, .L2656 + ldrh w2, [x19, 2] + ldrh w2, [x21, x2, lsl 1] + cmp w2, w0 + bne .L2656 + ldrh w0, [x19, 4] sub w0, w0, #1 - strh w0, [x19,4] + strh w0, [x19, 4] ldrh w0, [x19] bl decrement_vpc_count - ldrh w1, [x19,4] - cbnz w1, .L2718 - ldrh w0, [x19,2] - strb w1, [x19,6] + ldrh w0, [x19, 4] + cbnz w0, .L2655 + ldrh w0, [x19, 2] add w0, w0, 1 - strh w0, [x19,2] - b .L2712 -.L2719: - adrp x0, .LANCHOR2 - add x0, x0, :lo12:.LANCHOR2 - ldrb w2, [x0,1220] - cbz w2, .L2712 - cmp w1, 1 - bne .L2712 - ldrh w2, [x19,2] - ldrh w1, [x0,2346] - cmp w2, w1 - bcc .L2712 - ldrh w1, [x19] - ldr x3, [x0,2712] - lsl x1, x1, 1 - ldrh w4, [x19,4] - ldrh w2, [x3,x1] - sub w2, w2, w4 - strh w2, [x3,x1] - strh wzr, [x19,4] - ldrh w0, [x0,2344] - strh w0, [x19,2] - strb wzr, [x19,6] -.L2712: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] +.L2664: + strh w0, [x19, 2] + strb wzr, [x19, 6] +.L2649: + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] ldp x29, x30, [sp], 48 ret +.L2655: + ldrb w0, [x19, 6] + ldrh w1, [x22, 2276] + add w0, w0, 1 + and w0, w0, 255 + strb w0, [x19, 6] + cmp w1, w0 + bne .L2654 + ldrh w0, [x19, 2] + strb wzr, [x19, 6] + add w0, w0, 1 + strh w0, [x19, 2] +.L2654: + ldrb w0, [x19, 6] + add x0, x0, 8 + ldrh w1, [x19, x0, lsl 1] + b .L2653 +.L2656: + add x0, x20, :lo12:.LANCHOR2 + ldrb w2, [x0, 1220] + cbz w2, .L2649 + cmp w1, 1 + bne .L2649 + ldrh w2, [x19, 2] + ldrh w1, [x0, 2346] + cmp w2, w1 + bcc .L2649 + ldrh w1, [x19] + ldr x3, [x0, 2712] + ldrh w4, [x19, 4] + lsl x1, x1, 1 + ldrh w2, [x3, x1] + sub w2, w2, w4 + strh w2, [x3, x1] + strh wzr, [x19, 4] + ldrh w0, [x0, 2344] + b .L2664 +.L2661: + ret .size FtlSlcSuperblockCheck, .-FtlSlcSuperblockCheck .align 2 .global get_new_active_ppa @@ -17626,129 +17216,117 @@ FtlSlcSuperblockCheck: get_new_active_ppa: stp x29, x30, [sp, -64]! add x29, sp, 0 - stp x21, x22, [sp,32] - stp x19, x20, [sp,16] - stp x23, x24, [sp,48] + stp x19, x20, [sp, 16] mov x19, x0 - strb wzr, [x0,10] - ldrb w0, [x0,6] + stp x21, x22, [sp, 32] adrp x21, .LANCHOR0 - mov w22, 65535 - adrp x23, .LANCHOR2 - add x0, x0, 8 + str x23, [sp, 48] add x21, x21, :lo12:.LANCHOR0 - ldrh w0, [x19,x0,lsl 1] -.L2725: - cmp w0, w22 + strb wzr, [x0, 10] adrp x20, .LANCHOR2 - bne .L2740 -.L2726: - ldrb w0, [x19,6] - add x1, x23, :lo12:.LANCHOR2 - add w0, w0, 1 - ldrh w1, [x1,2276] - uxtb w0, w0 - strb w0, [x19,6] - cmp w1, w0 - bne .L2727 - ldrh w0, [x19,2] - strb wzr, [x19,6] - add w0, w0, 1 - strh w0, [x19,2] -.L2727: - ldrb w0, [x19,6] + ldrb w0, [x0, 6] + add x21, x21, 1168 + add x23, x20, :lo12:.LANCHOR2 add x0, x0, 8 - ldrh w0, [x19,x0,lsl 1] - b .L2725 -.L2740: - ldrb w1, [x19,8] + ldrh w0, [x19, x0, lsl 1] +.L2666: + mov w2, 65535 + cmp w0, w2 + beq .L2667 + ldrb w1, [x19, 8] + ldrh w22, [x19, 2] cmp w1, 1 - bne .L2728 - add x1, x23, :lo12:.LANCHOR2 - ldrb w1, [x1,1220] - cbnz w1, .L2728 - ldrh w2, [x19,2] - add x1, x21, 1168 - ldrh w1, [x1,w2,sxtw 1] - cmp w1, w22 - bne .L2728 - ldrh w0, [x19,4] - sub w0, w0, #1 - strh w0, [x19,4] + ldrh w1, [x19, 4] + bne .L2669 + ldrb w3, [x23, 1220] + cbnz w3, .L2669 + ldrh w3, [x21, w22, sxtw 1] + cmp w3, w2 + bne .L2669 ldrh w0, [x19] + sub w1, w1, #1 + strh w1, [x19, 4] bl decrement_vpc_count - b .L2726 -.L2728: - ldrh w1, [x19,4] - mov w23, 65535 - ldrh w22, [x19,2] +.L2667: + ldrb w0, [x19, 6] + ldrh w1, [x23, 2276] + add w0, w0, 1 + and w0, w0, 255 + strb w0, [x19, 6] + cmp w1, w0 + bne .L2668 + ldrh w0, [x19, 2] + strb wzr, [x19, 6] + add w0, w0, 1 + strh w0, [x19, 2] +.L2668: + ldrb w0, [x19, 6] + add x0, x0, 8 + ldrh w0, [x19, x0, lsl 1] + b .L2666 +.L2669: adrp x21, .LANCHOR0 - sub w1, w1, #1 - mov w24, w23 - orr w22, w22, w0, lsl 10 - strh w1, [x19,4] add x21, x21, :lo12:.LANCHOR0 -.L2729: - add x0, x20, :lo12:.LANCHOR2 - ldrb w1, [x19,6] - ldrh w2, [x0,2276] -.L2731: - add w1, w1, 1 - uxtb w1, w1 - cmp w1, w2 - bne .L2730 - ldrh w1, [x19,2] - add w1, w1, 1 - strh w1, [x19,2] - mov w1, 0 -.L2730: - add x0, x19, w1, sxtw 1 - ldrh w0, [x0,16] - cmp w0, w23 - beq .L2731 - ldrb w0, [x19,8] - strb w1, [x19,6] - cmp w0, 1 - bne .L2736 - add x0, x20, :lo12:.LANCHOR2 - ldrb w0, [x0,1220] - cbnz w0, .L2733 - ldrh w1, [x19,2] - add x0, x21, 1168 - ldrh w0, [x0,w1,sxtw 1] - cmp w0, w24 - bne .L2733 - ldrh w1, [x19,4] - cbz w1, .L2733 - ldrh w0, [x19] + orr w22, w22, w0, lsl 10 + add x20, x20, :lo12:.LANCHOR2 + add x21, x21, 1168 sub w1, w1, #1 - strh w1, [x19,4] + strh w1, [x19, 4] +.L2670: + ldrb w0, [x19, 6] + mov w1, 65535 + ldrh w3, [x20, 2276] +.L2672: + add w0, w0, 1 + and w0, w0, 255 + cmp w0, w3 + bne .L2671 + ldrh w0, [x19, 2] + add w0, w0, 1 + strh w0, [x19, 2] + mov w0, 0 +.L2671: + add x2, x19, w0, sxtw 1 + ldrh w2, [x2, 16] + cmp w2, w1 + beq .L2672 + strb w0, [x19, 6] + ldrb w0, [x19, 8] + cmp w0, 1 + bne .L2665 + ldrb w2, [x20, 1220] + ldrh w0, [x19, 2] + cbnz w2, .L2674 + ldrh w0, [x21, w0, sxtw 1] + cmp w0, w1 + bne .L2665 + ldrh w0, [x19, 4] + cbz w0, .L2665 + sub w0, w0, #1 + strh w0, [x19, 4] + ldrh w0, [x19] bl decrement_vpc_count - b .L2729 -.L2733: - add x1, x20, :lo12:.LANCHOR2 - ldrb w0, [x1,1220] - cbz w0, .L2736 - ldrh w2, [x19,2] - ldrh w0, [x1,2346] - cmp w2, w0 - bcc .L2736 - ldrh w2, [x19] - ldr x0, [x1,2712] - lsl x2, x2, 1 - ldrh w4, [x19,4] - ldrh w3, [x0,x2] - sub w3, w3, w4 - strh w3, [x0,x2] - strh wzr, [x19,4] - ldrh w0, [x1,2344] - strh w0, [x19,2] - strb wzr, [x19,6] -.L2736: + b .L2670 +.L2674: + ldrh w1, [x20, 2346] + cmp w0, w1 + bcc .L2665 + ldrh w0, [x19] + ldr x2, [x20, 2712] + ldrh w3, [x19, 4] + lsl x0, x0, 1 + ldrh w1, [x2, x0] + sub w1, w1, w3 + strh w1, [x2, x0] + strh wzr, [x19, 4] + ldrh w0, [x20, 2344] + strh w0, [x19, 2] + strb wzr, [x19, 6] +.L2665: mov w0, w22 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] + ldr x23, [sp, 48] + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] ldp x29, x30, [sp], 64 ret .size get_new_active_ppa, .-get_new_active_ppa @@ -17758,106 +17336,105 @@ get_new_active_ppa: FtlWriteDumpData: stp x29, x30, [sp, -144]! add x29, sp, 0 - stp x21, x22, [sp,32] + stp x19, x20, [sp, 16] + stp x21, x22, [sp, 32] adrp x22, .LANCHOR2 - str x25, [sp,64] - stp x19, x20, [sp,16] add x20, x22, :lo12:.LANCHOR2 - stp x23, x24, [sp,48] - ldr w0, [x20,2928] - cbnz w0, .L2741 + stp x23, x24, [sp, 48] + str x25, [sp, 64] + ldr w0, [x20, 2928] + cbnz w0, .L2681 adrp x19, .LANCHOR4 - add x1, x19, :lo12:.LANCHOR4 - add x1, x1, 784 - ldrh w2, [x1,4] - cbz w2, .L2743 - ldrb w0, [x1,8] - cbnz w0, .L2743 - ldrb w0, [x1,7] - ldrh w3, [x20,2344] - mul w0, w0, w3 - cmp w2, w0 - beq .L2743 - ldrb w24, [x1,10] - ldr w23, [x20,2924] - ldrh w25, [x20,2276] - cbnz w24, .L2741 - sub w23, w23, #1 + add x0, x19, :lo12:.LANCHOR4 + add x0, x0, 784 + ldrh w2, [x0, 4] + cbz w2, .L2683 + ldrb w1, [x0, 8] + cbnz w1, .L2683 + ldrb w1, [x0, 7] + ldrh w3, [x20, 2344] + mul w1, w1, w3 + cmp w2, w1 + beq .L2683 + ldrb w0, [x0, 10] + cbnz w0, .L2681 + ldr w23, [x20, 2924] add x1, x29, 84 - mov w0, w23 - mov w2, w24 - bl log2phys - ldr x21, [x20,2640] - ldr w0, [x29,84] - ldr x1, [x20,2576] - str w0, [x29,92] - cmn w0, #1 - str w23, [x29,112] - str x1, [x29,96] - str x21, [x29,104] - str w24, [x21,4] - beq .L2745 - add x0, x29, 88 - mov w1, 1 - mov w2, w24 - bl FlashReadPages - b .L2746 -.L2745: - ldr x0, [x20,2576] - mov w1, 255 - ldrh w2, [x20,2354] - bl ftl_memset -.L2746: - add x20, x19, :lo12:.LANCHOR4 - mov w0, -3947 - lsl w25, w25, 2 - strh w0, [x21] - mov w24, 0 - add x20, x20, 784 -.L2747: - cmp w24, w25 - beq .L2748 - ldrh w0, [x20,4] - cbz w0, .L2748 - ldr w0, [x29,92] - add w24, w24, 1 - str w0, [x21,12] - ldrh w0, [x20] - strh w0, [x21,2] - mov x0, x20 - str w23, [x21,8] - bl get_new_active_ppa - str w0, [x29,92] - add x0, x22, :lo12:.LANCHOR2 + ldrh w25, [x20, 2276] + mov w2, 0 + sub w23, w23, #1 + mov w0, w23 + bl log2phys + ldr x21, [x20, 2640] + ldr w0, [x29, 84] + ldr x1, [x20, 2576] + str w0, [x29, 92] + cmn w0, #1 + stp x1, x21, [x29, 96] + str w23, [x29, 112] + str wzr, [x21, 4] + beq .L2685 mov w2, 0 - mov w3, w2 - ldr w1, [x0,2400] - str w1, [x21,4] - add w1, w1, 1 - cmn w1, #1 - csel w1, w1, wzr, ne - str w1, [x0,2400] mov w1, 1 add x0, x29, 88 + bl FlashReadPages +.L2686: + add x20, x19, :lo12:.LANCHOR4 + lsl w25, w25, 2 + add x20, x20, 784 + add x22, x22, :lo12:.LANCHOR2 + mov w0, -3947 + mov w24, 0 + strh w0, [x21] +.L2687: + cmp w25, w24 + bne .L2691 +.L2688: + add x19, x19, :lo12:.LANCHOR4 + mov w0, 1 + strb w0, [x19, 794] +.L2681: + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldr x25, [sp, 64] + ldp x29, x30, [sp], 144 + ret +.L2685: + ldrh w2, [x20, 2354] + mov w1, 255 + ldr x0, [x20, 2576] + bl ftl_memset + b .L2686 +.L2691: + ldrh w0, [x20, 4] + cbz w0, .L2688 + ldr w0, [x29, 92] + add w24, w24, 1 + stp w23, w0, [x21, 8] + ldrh w0, [x20] + strh w0, [x21, 2] + mov x0, x20 + bl get_new_active_ppa + str w0, [x29, 92] + ldr w0, [x22, 2400] + mov w3, 0 + str w0, [x21, 4] + mov w2, 0 + add w0, w0, 1 + mov w1, 1 + cmn w0, #1 + csel w0, w0, wzr, ne + str w0, [x22, 2400] + add x0, x29, 88 bl FlashProgPages ldrh w0, [x20] bl decrement_vpc_count - b .L2747 -.L2748: + b .L2687 +.L2683: add x19, x19, :lo12:.LANCHOR4 - mov w0, 1 - strb w0, [x19,794] - b .L2741 -.L2743: - add x19, x19, :lo12:.LANCHOR4 - strb wzr, [x19,794] -.L2741: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldr x25, [sp,64] - ldp x29, x30, [sp], 144 - ret + strb wzr, [x19, 794] + b .L2681 .size FtlWriteDumpData, .-FtlWriteDumpData .align 2 .global l2p_flush @@ -17865,31 +17442,31 @@ FtlWriteDumpData: l2p_flush: stp x29, x30, [sp, -32]! add x29, sp, 0 - stp x19, x20, [sp,16] - mov w19, 0 + stp x19, x20, [sp, 16] adrp x20, .LANCHOR2 + add x20, x20, :lo12:.LANCHOR2 + mov w19, 0 bl FtlWriteDumpData -.L2759: - add x1, x20, :lo12:.LANCHOR2 - ldrh w0, [x1,2382] +.L2700: + ldrh w0, [x20, 2382] cmp w0, w19 - bls .L2762 - ldr x1, [x1,2792] - ubfiz x0, x19, 4, 16 - add x0, x1, x0 - ldr w0, [x0,4] - tbz w0, #31, .L2760 - mov w0, w19 - bl flush_l2p_region -.L2760: - add w19, w19, 1 - uxth w19, w19 - b .L2759 -.L2762: + bhi .L2702 mov w0, 0 - ldp x19, x20, [sp,16] + ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 32 ret +.L2702: + ldr x1, [x20, 2792] + ubfiz x0, x19, 4, 16 + add x0, x1, x0 + ldr w0, [x0, 4] + tbz w0, #31, .L2701 + mov w0, w19 + bl flush_l2p_region +.L2701: + add w19, w19, 1 + and w19, w19, 65535 + b .L2700 .size l2p_flush, .-l2p_flush .align 2 .global FtlSuperblockPowerLostFix @@ -17897,200 +17474,194 @@ l2p_flush: FtlSuperblockPowerLostFix: stp x29, x30, [sp, -128]! add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] adrp x20, .LANCHOR2 - str x23, [sp,48] - add x2, x20, :lo12:.LANCHOR2 - stp x21, x22, [sp,32] - ldr w1, [x2,2928] - cbnz w1, .L2763 - ldrb w21, [x2,1220] - cbz w21, .L2778 - ldrb w21, [x0,8] - cmp w21, 1 - bne .L2774 - ldrh w23, [x0,4] - b .L2765 -.L2774: - mov w21, w1 -.L2778: - mov w23, 12 -.L2765: + add x1, x20, :lo12:.LANCHOR2 + stp x21, x22, [sp, 32] + stp x23, x24, [sp, 48] + ldr w24, [x1, 2928] + cbnz w24, .L2704 + ldrb w1, [x1, 1220] + cbz w1, .L2715 + ldrb w1, [x0, 8] + cmp w1, 1 + bne .L2715 + ldrh w23, [x0, 4] + mov w24, w1 +.L2706: mov x19, x0 mov w0, -1 - str w0, [x29,96] + str w0, [x29, 96] add x0, x20, :lo12:.LANCHOR2 mov w2, 61589 - ldr x22, [x0,2640] - ldr x1, [x0,2576] - str x1, [x29,80] + mov x21, x0 + ldr x22, [x0, 2640] + ldr x1, [x0, 2576] + stp x1, x22, [x29, 80] mov w1, -3 - str x22, [x29,88] - str w1, [x22,8] + str w1, [x22, 8] mov w1, -2 - str w1, [x22,12] + str w1, [x22, 12] ldrh w1, [x19] - strh w1, [x22,2] + strh w1, [x22, 2] strh wzr, [x22] - ldr x1, [x0,2576] + ldr x1, [x0, 2576] str w2, [x1] - ldr x1, [x0,2576] - mov w0, 22136 - movk w0, 0x1234, lsl 16 - str w0, [x1,4] -.L2766: + mov w2, 22136 + movk w2, 0x1234, lsl 16 + ldr x1, [x0, 2576] + str w2, [x1, 4] +.L2707: sub w23, w23, #1 cmn w23, #1 - beq .L2769 - ldrh w0, [x19,4] - cbnz w0, .L2767 -.L2769: + beq .L2710 + ldrh w0, [x19, 4] + cbnz w0, .L2708 +.L2710: add x20, x20, :lo12:.LANCHOR2 ldrh w0, [x19] - ldrh w3, [x19,4] + ldrh w3, [x19, 4] + ldr x2, [x20, 2712] lsl x0, x0, 1 - ldr x2, [x20,2712] - ldrh w1, [x2,x0] + ldrh w1, [x2, x0] sub w1, w1, w3 - strh w1, [x2,x0] - strb wzr, [x19,6] - ldrh w0, [x20,2344] - strh w0, [x19,2] - strh wzr, [x19,4] - b .L2763 -.L2767: + strh w1, [x2, x0] + strb wzr, [x19, 6] + ldrh w0, [x20, 2344] + strh w0, [x19, 2] + strh wzr, [x19, 4] +.L2704: + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x29, x30, [sp], 128 + ret +.L2715: + mov w23, 12 + b .L2706 +.L2708: mov x0, x19 bl get_new_active_ppa - str w0, [x29,76] + str w0, [x29, 76] cmn w0, #1 - beq .L2769 - add x1, x20, :lo12:.LANCHOR2 - mov w2, w21 + beq .L2710 + ldr w0, [x21, 2400] mov w3, 0 - ldr w0, [x1,2400] - str w0, [x22,4] + str w0, [x22, 4] + mov w2, w24 add w0, w0, 1 + mov w1, 1 cmn w0, #1 csel w0, w0, wzr, ne - str w0, [x1,2400] + str w0, [x21, 2400] add x0, x29, 72 - mov w1, 1 bl FlashProgPages ldrh w0, [x19] bl decrement_vpc_count - b .L2766 -.L2763: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldr x23, [sp,48] - ldp x29, x30, [sp], 128 - ret + b .L2707 .size FtlSuperblockPowerLostFix, .-FtlSuperblockPowerLostFix .align 2 .global FtlVpcCheckAndModify .type FtlVpcCheckAndModify, %function FtlVpcCheckAndModify: - stp x29, x30, [sp, -96]! + stp x29, x30, [sp, -80]! adrp x1, .LANCHOR3 - adrp x0, .LC49 add x1, x1, :lo12:.LANCHOR3 + adrp x0, .LC49 add x29, sp, 0 + stp x19, x20, [sp, 16] + adrp x20, .LANCHOR2 + add x19, x20, :lo12:.LANCHOR2 + stp x21, x22, [sp, 32] add x1, x1, 232 add x0, x0, :lo12:.LC49 - stp x19, x20, [sp,16] - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - str x25, [sp,64] - adrp x22, .LANCHOR2 + str x23, [sp, 48] bl printk - mov w19, 0 - add x0, x22, :lo12:.LANCHOR2 + ldr x0, [x19, 2704] + mov w21, 0 + ldrh w2, [x19, 2286] mov w1, 0 - ldrh w2, [x0,2286] - ldr x0, [x0,2704] lsl w2, w2, 1 bl ftl_memset -.L2780: - add x20, x22, :lo12:.LANCHOR2 - ldr w0, [x20,2924] - cmp w19, w0 - bcs .L2796 - mov w0, w19 - add x1, x29, 92 - mov w2, 0 - bl log2phys - ldr w0, [x29,92] - cmn w0, #1 - beq .L2781 - lsr x0, x0, 10 - bl P2V_block_in_plane - ubfiz x0, x0, 1, 16 - ldr x2, [x20,2704] - ldrh w1, [x2,x0] - add w1, w1, 1 - strh w1, [x2,x0] -.L2781: - add w19, w19, 1 - b .L2780 -.L2796: - adrp x23, .LANCHOR4 - adrp x24, .LC156 +.L2721: + ldr w0, [x19, 2924] + cmp w21, w0 + bcc .L2723 + adrp x22, .LANCHOR4 + adrp x23, .LC156 + add x20, x20, :lo12:.LANCHOR2 + add x22, x22, :lo12:.LANCHOR4 + add x23, x23, :lo12:.LC156 mov w19, 0 - mov w25, 65535 - add x23, x23, :lo12:.LANCHOR4 - add x24, x24, :lo12:.LC156 -.L2783: - add x21, x22, :lo12:.LANCHOR2 - ldrh w0, [x21,2284] +.L2724: + ldrh w0, [x20, 2284] cmp w0, w19 - bls .L2797 - ubfiz x20, x19, 1, 16 - ldr x0, [x21,2712] - ldrh w2, [x0,x20] - ldr x0, [x21,2704] - cmp w2, w25 - ldrh w3, [x0,x20] - beq .L2784 - cmp w2, w3 - beq .L2784 - ldrh w0, [x23,784] - cmp w0, w19 - beq .L2784 - ldrh w0, [x23,880] - cmp w0, w19 - beq .L2784 - ldrh w0, [x23,832] - cmp w0, w19 - beq .L2784 - mov w1, w19 - mov x0, x24 - bl printk - ldr x0, [x21,2712] - ldrh w1, [x0,x20] - cbnz w1, .L2785 - ldr x1, [x21,2704] - ldrh w1, [x1,x20] - strh w1, [x0,x20] - b .L2784 -.L2785: - ldr x1, [x21,2704] - ldrh w1, [x1,x20] - strh w1, [x0,x20] - mov w0, w19 - bl update_vpc_list -.L2784: - add w19, w19, 1 - uxth w19, w19 - b .L2783 -.L2797: + bhi .L2727 bl l2p_flush bl FtlVpcTblFlush - ldr x25, [sp,64] - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x29, x30, [sp], 96 + ldr x23, [sp, 48] + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x29, x30, [sp], 80 ret +.L2723: + mov w2, 0 + add x1, x29, 76 + mov w0, w21 + bl log2phys + ldr w0, [x29, 76] + cmn w0, #1 + beq .L2722 + lsr w0, w0, 10 + bl P2V_block_in_plane + ldr x2, [x19, 2704] + ubfiz x0, x0, 1, 16 + ldrh w1, [x2, x0] + add w1, w1, 1 + strh w1, [x2, x0] +.L2722: + add w21, w21, 1 + b .L2721 +.L2727: + ldr x0, [x20, 2712] + ubfiz x21, x19, 1, 16 + ldrh w2, [x0, x21] + ldr x0, [x20, 2704] + ldrh w3, [x0, x21] + cmp w2, w3 + beq .L2725 + mov w0, 65535 + cmp w2, w0 + beq .L2725 + ldrh w0, [x22, 784] + cmp w0, w19 + beq .L2725 + ldrh w0, [x22, 880] + cmp w0, w19 + beq .L2725 + ldrh w0, [x22, 832] + cmp w0, w19 + beq .L2725 + mov w1, w19 + mov x0, x23 + bl printk + ldr x0, [x20, 2712] + ldrh w1, [x0, x21] + cbnz w1, .L2726 + ldr x1, [x20, 2704] + ldrh w1, [x1, x21] + strh w1, [x0, x21] +.L2725: + add w19, w19, 1 + and w19, w19, 65535 + b .L2724 +.L2726: + ldr x1, [x20, 2704] + ldrh w1, [x1, x21] + strh w1, [x0, x21] + mov w0, w19 + bl update_vpc_list + b .L2725 .size FtlVpcCheckAndModify, .-FtlVpcCheckAndModify .align 2 .global allocate_new_data_superblock @@ -18098,1397 +17669,1377 @@ FtlVpcCheckAndModify: allocate_new_data_superblock: stp x29, x30, [sp, -48]! add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] adrp x20, .LANCHOR2 - add x1, x20, :lo12:.LANCHOR2 - stp x21, x22, [sp,32] - ldr w2, [x1,2928] - ldrh w22, [x0] - cbnz w2, .L2799 - mov x19, x0 - mov w0, 65535 - cmp w22, w0 - beq .L2800 - ubfiz x0, x22, 1, 16 - ldr x1, [x1,2712] - ldrh w0, [x1,x0] - cbz w0, .L2801 - mov w0, w22 - bl INSERT_DATA_LIST - b .L2800 -.L2801: - mov w0, w22 - bl INSERT_FREE_LIST -.L2800: - adrp x0, .LANCHOR4 - strb wzr, [x19,8] - add x1, x0, :lo12:.LANCHOR4 - add x2, x1, 832 - cmp x19, x2 - beq .L2802 add x2, x20, :lo12:.LANCHOR2 - ldrh w3, [x2,2296] + stp x21, x22, [sp, 32] + ldr w1, [x2, 2928] + cbnz w1, .L2733 + ldrh w21, [x0] + mov x22, x0 + mov w0, 65535 + cmp w21, w0 + beq .L2734 + ldr x0, [x2, 2712] + ubfiz x1, x21, 1, 16 + ldrh w0, [x0, x1] + cbz w0, .L2735 + mov w0, w21 + bl INSERT_DATA_LIST +.L2734: + adrp x19, .LANCHOR4 + strb wzr, [x22, 8] + add x1, x19, :lo12:.LANCHOR4 + add x0, x1, 832 + cmp x22, x0 + beq .L2736 + add x2, x20, :lo12:.LANCHOR2 + ldrh w3, [x2, 2296] cmp w3, 1 - beq .L2802 - ldrb w4, [x2,1220] - cbz w4, .L2803 -.L2802: + beq .L2736 + ldrb w0, [x2, 1220] + cbz w0, .L2737 +.L2736: mov w0, 1 - strb w0, [x19,8] - b .L2804 -.L2803: - add x1, x1, 784 - cmp x19, x1 - bne .L2804 - cmp w3, 3 - beq .L2806 - ldr w1, [x2,2392] - cmp w1, 1 - bne .L2807 -.L2806: - add x1, x0, :lo12:.LANCHOR4 - mov w2, 1 - strb w2, [x1,792] -.L2807: - add x1, x20, :lo12:.LANCHOR2 - ldr w2, [x1,2096] - cbz w2, .L2804 - ldr w1, [x1,2444] - cmp w1, 39 - bhi .L2804 - add x0, x0, :lo12:.LANCHOR4 - mov w1, 1 - strb w1, [x0,792] -.L2804: - adrp x1, .LANCHOR5 - mov w2, 65535 - add x0, x1, :lo12:.LANCHOR5 - mov x21, x1 - ldrh w0, [x0,1184] - cmp w0, w2 - beq .L2809 - cmp w22, w0 - bne .L2810 + strb w0, [x22, 8] +.L2738: + add x0, x19, :lo12:.LANCHOR4 + mov w1, 65535 + ldrh w0, [x0, 1696] + cmp w0, w1 + beq .L2743 + cmp w21, w0 + bne .L2744 add x20, x20, :lo12:.LANCHOR2 ubfiz x1, x0, 1, 16 - ldr x2, [x20,2712] - ldrh w1, [x2,x1] - cbz w1, .L2811 -.L2810: + ldr x2, [x20, 2712] + ldrh w1, [x2, x1] + cbz w1, .L2745 +.L2744: bl update_vpc_list -.L2811: - add x1, x21, :lo12:.LANCHOR5 +.L2745: + add x19, x19, :lo12:.LANCHOR4 mov w0, -1 - strh w0, [x1,1184] -.L2809: - mov x0, x19 + strh w0, [x19, 1696] +.L2743: + mov x0, x22 bl allocate_data_superblock bl l2p_flush mov w0, 0 bl FtlEctTblFlush bl FtlVpcTblFlush -.L2799: +.L2733: mov w0, 0 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] ldp x29, x30, [sp], 48 ret +.L2735: + mov w0, w21 + bl INSERT_FREE_LIST + b .L2734 +.L2737: + add x1, x1, 784 + cmp x22, x1 + bne .L2738 + cmp w3, 3 + beq .L2740 + ldr w0, [x2, 2392] + cmp w0, 1 + bne .L2741 +.L2740: + add x1, x19, :lo12:.LANCHOR4 + mov w0, 1 + strb w0, [x1, 792] +.L2741: + add x1, x20, :lo12:.LANCHOR2 + ldr w0, [x1, 2096] + cbz w0, .L2738 + ldr w0, [x1, 2444] + cmp w0, 39 + bhi .L2738 + add x1, x19, :lo12:.LANCHOR4 + mov w0, 1 + strb w0, [x1, 792] + b .L2738 .size allocate_new_data_superblock, .-allocate_new_data_superblock .align 2 .global FtlReadRefresh .type FtlReadRefresh, %function FtlReadRefresh: + adrp x0, .LANCHOR4 + add x4, x0, :lo12:.LANCHOR4 + add x2, x4, 1152 + mov x1, x0 + adrp x0, .LANCHOR2 + add x0, x0, :lo12:.LANCHOR2 + ldr w3, [x2, 80] + cbz w3, .L2760 + ldr w1, [x0, 2924] + ldr w3, [x2, 84] + cmp w3, w1 + bcs .L2761 stp x29, x30, [sp, -112]! - adrp x1, .LANCHOR5 - add x3, x1, :lo12:.LANCHOR5 add x29, sp, 0 - add x2, x3, 640 - stp x19, x20, [sp,16] - stp x21, x22, [sp,32] - adrp x19, .LANCHOR2 - ldr w0, [x2,80] - cbz w0, .L2825 - add x0, x19, :lo12:.LANCHOR2 - ldr w4, [x2,84] - ldr w1, [x0,2924] - cmp w4, w1 - bcs .L2826 + stp x19, x20, [sp, 16] + mov x20, x4 + mov x19, x0 + stp x21, x22, [sp, 32] mov w21, 2048 - mov x20, x3 -.L2831: - add x22, x20, 640 - add x1, x19, :lo12:.LANCHOR2 - ldr w0, [x22,84] - ldr w1, [x1,2924] +.L2766: + add x22, x20, 1152 + ldr w1, [x19, 2924] + ldr w0, [x22, 84] cmp w0, w1 - bcs .L2830 + bcc .L2762 +.L2765: + ldp x19, x20, [sp, 16] + mov w0, -1 + ldp x21, x22, [sp, 32] + ldp x29, x30, [sp], 112 + ret +.L2762: add x1, x29, 52 mov w2, 0 bl log2phys - ldr w0, [x22,84] - ldr w1, [x29,52] + ldr w0, [x22, 84] + ldr w1, [x29, 52] add w0, w0, 1 - str w0, [x22,84] + str w0, [x22, 84] cmn w1, #1 - beq .L2829 - str w1, [x29,60] + beq .L2764 + str w0, [x29, 80] + add x0, x29, 112 + str w1, [x29, 60] mov w2, 0 - str w0, [x29,80] + stp xzr, xzr, [x29, 64] mov w1, 1 - add x0, x29, 56 - str xzr, [x29,64] - str xzr, [x29,72] - str wzr, [x29,56] + str wzr, [x0, -56]! bl FlashReadPages - ldr w0, [x29,56] + ldr w0, [x29, 56] cmp w0, 256 - bne .L2830 - ldr w0, [x29,52] - lsr x0, x0, 10 + bne .L2765 + ldr w0, [x29, 52] + lsr w0, w0, 10 bl P2V_block_in_plane bl FtlGcRefreshBlock -.L2830: - mov w0, -1 - b .L2833 -.L2829: + b .L2765 +.L2764: subs w21, w21, #1 - bne .L2831 - b .L2830 -.L2826: - ldr w0, [x0,2424] - str wzr, [x2,80] - str wzr, [x2,84] - str w0, [x2,76] - b .L2840 -.L2825: - add x19, x19, :lo12:.LANCHOR2 + bne .L2766 + b .L2765 +.L2761: + ldr w0, [x0, 2424] + stp w0, wzr, [x2, 76] + str wzr, [x2, 84] +.L2773: + mov w0, 0 + ret +.L2760: + ldr w3, [x0, 2440] mov w5, 10000 - mov w8, 63 - ldr w6, [x2,76] - ldr w3, [x19,2440] - ldr w7, [x19,2424] + mov w6, 31 + ldr w7, [x2, 76] cmp w3, w5 - mov w5, 31 - csel w8, w5, w8, hi - add w5, w7, 1048576 - cmp w6, w5 - ldr w4, [x19,2924] - adrp x5, .LANCHOR4 - bhi .L2835 - mov w9, 1000 + mov w5, 63 + csel w6, w6, w5, hi + ldr w5, [x0, 2424] + add w8, w5, 1048576 + cmp w7, w8 + bhi .L2770 + ldr w0, [x0, 2924] + mov w8, 1000 lsr w3, w3, 10 add w3, w3, 1 - mul w4, w4, w9 - udiv w3, w4, w3 - add w3, w3, w6 - cmp w3, w7 - bcc .L2835 - add x3, x5, :lo12:.LANCHOR4 - ldrh w3, [x3,724] - tst w8, w3 - bne .L2833 - ldr w2, [x2,100] - cmp w2, w3 - beq .L2833 -.L2835: - add x5, x5, :lo12:.LANCHOR4 - add x0, x1, :lo12:.LANCHOR5 - ldrh w1, [x5,724] - str w1, [x0,740] - mov w1, 1 - str wzr, [x0,724] - str w1, [x0,720] - str w7, [x0,716] -.L2840: - mov w0, 0 -.L2833: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x29, x30, [sp], 112 - ret + mul w0, w0, w8 + udiv w0, w0, w3 + add w0, w0, w7 + cmp w5, w0 + bhi .L2770 + ldrh w0, [x4, 724] + tst w6, w0 + bne .L2773 + ldr w2, [x2, 100] + cmp w0, w2 + beq .L2773 +.L2770: + add x0, x1, :lo12:.LANCHOR4 + add x1, x0, 1152 + ldrh w0, [x0, 724] + str w0, [x1, 100] + str w5, [x1, 76] + mov w0, 1 + str wzr, [x1, 84] + str w0, [x1, 80] + b .L2773 .size FtlReadRefresh, .-FtlReadRefresh .align 2 .global ftl_do_gc .type ftl_do_gc, %function ftl_do_gc: - stp x29, x30, [sp, -160]! - mov w2, 0 + stp x29, x30, [sp, -144]! add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] adrp x19, .LANCHOR2 - add x4, x19, :lo12:.LANCHOR2 - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] - stp x27, x28, [sp,80] - ldr w3, [x4,2928] - cbnz w3, .L2994 - adrp x3, .LANCHOR1 - add x3, x3, :lo12:.LANCHOR1 - ldr w20, [x3,3448] - cmp w20, 1 - bne .L2994 - ldr w4, [x4,2448] - cbnz w4, .L2994 - adrp x23, .LANCHOR4 - add x4, x23, :lo12:.LANCHOR4 - ldrh w5, [x4,760] - cmp w5, 47 - bls .L2994 - mov w24, w1 - ldrh w1, [x3,3452] - str w0, [x29,132] + add x3, x19, :lo12:.LANCHOR2 + stp x21, x22, [sp, 32] + stp x23, x24, [sp, 48] + stp x25, x26, [sp, 64] + stp x27, x28, [sp, 80] + ldr w2, [x3, 2928] + cbnz w2, .L2878 + adrp x2, .LANCHOR1 + add x2, x2, :lo12:.LANCHOR1 + ldr w21, [x2, 3448] + cmp w21, 1 + bne .L2878 + ldr w3, [x3, 2448] + cbnz w3, .L2878 + adrp x20, .LANCHOR4 + add x3, x20, :lo12:.LANCHOR4 + ldrh w4, [x3, 760] + cmp w4, 47 + bls .L2878 + mov w23, w1 + str w0, [x29, 124] + ldrh w1, [x2, 3452] mov w0, 65535 cmp w1, w0 - bne .L2843 -.L2846: + bne .L2781 +.L2784: add x0, x19, :lo12:.LANCHOR2 mov w2, 65535 - ldrh w4, [x0,2474] + ldrh w4, [x0, 2474] cmp w4, w2 - bne .L2844 - b .L2845 -.L2843: - ldrh w1, [x4,880] - cmp w1, w0 - beq .L2846 - mov w0, w20 - bl FtlGcFreeTempBlock - mov w2, w20 - cbz w0, .L2846 - b .L2994 -.L2844: - ldrh w1, [x0,2472] - cmp w1, w2 - bne .L2845 - ldrh w3, [x0,2476] - cmp w3, w1 - beq .L2845 - ldrh w2, [x0,2478] - cmp w2, w1 - beq .L2845 - mov w1, -1 - strh w4, [x0,2472] - strh w3, [x0,2474] - strh w2, [x0,2476] - strh w1, [x0,2478] -.L2845: + bne .L2782 +.L2783: add x1, x19, :lo12:.LANCHOR2 - ldr w2, [x29,132] - adrp x20, .LANCHOR5 + ldr w2, [x29, 124] cmp w2, 1 - ldr w0, [x1,2464] + ldr w0, [x1, 2464] add w0, w0, 1 add w0, w0, w2, lsl 7 - str w0, [x1,2464] - bne .L2857 - ldr w2, [x1,2096] - cbnz w2, .L2848 - ldrb w1, [x1,1220] - cbz w1, .L2857 -.L2848: - add x21, x19, :lo12:.LANCHOR2 - ldr w1, [x21,2444] + str w0, [x1, 2464] + bne .L2785 + ldr w2, [x1, 2096] + cbnz w2, .L2786 + ldrb w1, [x1, 1220] + cbz w1, .L2785 +.L2786: + add x22, x19, :lo12:.LANCHOR2 + ldr w1, [x22, 2444] cmp w1, 39 - bhi .L2857 - add x22, x20, :lo12:.LANCHOR5 - ldrh w1, [x22,1384] - add w0, w0, w1 - str w0, [x21,2464] + bhi .L2785 + add x25, x20, :lo12:.LANCHOR4 + mov w21, 65535 + ldrh w1, [x25, 1896] + add w0, w1, w0 + str w0, [x22, 2464] bl FtlGcReFreshBadBlk - ldrh w0, [x22,592] - mov w1, 65535 - cmp w0, w1 - bne .L2857 - ldrh w1, [x21,2472] + ldrh w0, [x25, 1104] + cmp w0, w21 + bne .L2787 + ldrh w1, [x22, 2472] cmp w1, w0 - bne .L2857 - ldr w0, [x21,2464] + bne .L2874 + ldr w0, [x22, 2464] cmp w0, 1024 - bhi .L2849 - add x0, x23, :lo12:.LANCHOR4 - ldrh w0, [x0,776] + bhi .L2789 + ldrh w0, [x25, 776] cmp w0, 63 - bhi .L2857 -.L2849: - add x1, x23, :lo12:.LANCHOR4 - add x0, x20, :lo12:.LANCHOR5 - ldrh w3, [x1,776] + bhi .L2874 +.L2789: add x1, x19, :lo12:.LANCHOR2 - strh wzr, [x0,1384] - ldrh w2, [x1,2482] + add x0, x20, :lo12:.LANCHOR4 + ldrh w2, [x1, 2482] + ldrh w3, [x0, 776] + strh wzr, [x0, 1896] add w2, w2, 64 cmp w3, w2 - bgt .L2857 - str wzr, [x1,2464] - ldr w1, [x1,2444] - cbnz w1, .L2850 + bgt .L2874 + str wzr, [x1, 2464] + ldr w1, [x1, 2444] + cbnz w1, .L2790 mov w1, 6 - b .L3016 -.L2850: - cmp w1, 5 - bhi .L2851 - mov w1, 18 -.L3016: - strh w1, [x0,1384] -.L2851: +.L2927: + strh w1, [x0, 1896] +.L2791: mov w0, 32 - mov w27, 65535 bl List_get_gc_head_node - uxth w25, w0 - cmp w25, w27 - beq .L2856 + and w5, w0, 65535 + mov w8, 65535 + cmp w5, w8 + beq .L2795 add x22, x19, :lo12:.LANCHOR2 - ldrh w0, [x22,2484] - cbz w0, .L2853 - ldrh w1, [x22,2346] - ubfiz x25, x25, 1, 16 - ldrh w3, [x22,2276] - ldr x26, [x22,2712] + ldrh w0, [x22, 2484] + cbz w0, .L2793 + ldrh w1, [x22, 2346] + ubfiz x5, x5, 1, 16 + ldrh w3, [x22, 2276] + ldr x7, [x22, 2712] mul w1, w1, w3 - ldrh w2, [x26,x25] + ldrh w2, [x7, x5] add w1, w1, 1 cmp w2, w1 - bgt .L2856 - add w1, w0, 1 - str wzr, [x22,2452] - uxth w1, w1 - strh w1, [x22,2484] - str x1, [x29,136] + bgt .L2795 + add w6, w0, 1 + str wzr, [x22, 2452] + and w6, w6, 65535 + strh w6, [x22, 2484] bl List_get_gc_head_node - uxth w21, w0 - cmp w21, w27 - ldr x1, [x29,136] - beq .L2856 - ubfiz x27, x21, 1, 16 - adrp x0, .LC157 - ldrh w4, [x26,x25] - add x0, x0, :lo12:.LC157 + and w21, w0, 65535 + cmp w21, w8 + beq .L2795 + ubfiz x25, x21, 1, 16 + ldrh w4, [x7, x5] mov w2, w21 - ldrh w3, [x26,x27] + mov w1, w6 + adrp x0, .LC157 + add x0, x0, :lo12:.LC157 + ldrh w3, [x7, x25] bl printk - ldrh w0, [x22,2484] + ldrh w0, [x22, 2484] cmp w0, 40 - bls .L2854 - ldr x0, [x22,2712] - ldrh w0, [x0,x27] + bls .L2794 + ldr x0, [x22, 2712] + ldrh w0, [x0, x25] cmp w0, 32 - bls .L2854 - strh wzr, [x22,2484] -.L2854: - add x0, x20, :lo12:.LANCHOR5 + bls .L2794 + strh wzr, [x22, 2484] +.L2794: + add x0, x20, :lo12:.LANCHOR4 mov w1, 6 - strh w1, [x0,1384] - b .L2858 -.L2853: - mov w0, 1 - strh w0, [x22,2484] -.L2856: - bl GetSwlReplaceBlock - uxth w21, w0 + strh w1, [x0, 1896] +.L2787: + ldr w1, [x29, 124] mov w0, 65535 - cmp w21, w0 - bne .L2858 - add x0, x20, :lo12:.LANCHOR5 - strh wzr, [x0,1384] -.L2857: - add x1, x20, :lo12:.LANCHOR5 - mov w0, 65535 - ldrh w21, [x1,592] - cmp w21, w0 - bne .L3021 - add x26, x23, :lo12:.LANCHOR4 - ldrh w0, [x26,880] - cmp w0, w21 - beq .L3022 -.L2858: - mov w0, 65535 - cmp w21, w0 - cset w0, eq - cbz w0, .L2871 - ldr w1, [x29,132] - cbnz w1, .L2871 - add x0, x23, :lo12:.LANCHOR4 - mov w22, 1 - ldrh w0, [x0,776] + cmp w1, 0 + ccmp w21, w0, 0, eq + bne .L2809 + add x0, x20, :lo12:.LANCHOR4 + ldrh w0, [x0, 776] cmp w0, 24 - bhi .L2872 + bhi .L2886 add x1, x19, :lo12:.LANCHOR2 cmp w0, 16 - ldrh w22, [x1,2344] - bls .L2873 + ldrh w22, [x1, 2344] + bls .L2811 lsr w22, w22, 5 - b .L2872 -.L2873: - cmp w0, 12 - bls .L2874 - lsr w22, w22, 4 - b .L2872 -.L2874: - cmp w0, 8 - bls .L2872 - lsr w22, w22, 2 -.L2872: +.L2810: add x1, x19, :lo12:.LANCHOR2 - ldrh w2, [x1,2480] + ldrh w2, [x1, 2480] cmp w2, w0 - bcs .L2876 - add x3, x23, :lo12:.LANCHOR4 + bcs .L2814 + add x3, x20, :lo12:.LANCHOR4 mov w2, 65535 - ldrh w0, [x3,880] + ldrh w0, [x3, 880] cmp w0, w2 - bne .L2877 - ldrh w2, [x1,2472] + bne .L2815 + ldrh w2, [x1, 2472] cmp w2, w0 - bne .L2877 - add x0, x20, :lo12:.LANCHOR5 - ldrh w2, [x0,1384] - cbnz w2, .L2878 - ldr w0, [x1,2924] - ldr w3, [x3,1068] - add w0, w0, w0, lsl 1 - cmp w3, w0, lsr 2 - bcs .L2879 -.L2878: - add x20, x20, :lo12:.LANCHOR5 - add x1, x19, :lo12:.LANCHOR2 - ldrh w0, [x20,588] - add w0, w0, w0, lsl 1 - asr w0, w0, 2 - b .L3019 -.L2879: - mov w0, 18 -.L3019: - add x19, x19, :lo12:.LANCHOR2 - strh w0, [x1,2480] - str wzr, [x19,2452] - b .L2994 -.L2877: - add x0, x20, :lo12:.LANCHOR5 - add x1, x19, :lo12:.LANCHOR2 - ldrh w0, [x0,588] - add w0, w0, w0, lsl 1 - asr w0, w0, 2 - strh w0, [x1,2480] -.L2876: - cmp w24, 2 - bhi .L2948 - add x0, x19, :lo12:.LANCHOR2 - ldr w0, [x0,2096] - cbz w0, .L2948 - add w22, w22, 1 - uxth w22, w22 - b .L2948 -.L2871: - add x2, x23, :lo12:.LANCHOR4 - mov w3, 65535 - ldrh w1, [x2,880] - cmp w1, w3 - bne .L2883 - cbz w0, .L2883 - add x0, x19, :lo12:.LANCHOR2 - ldrh w3, [x0,2472] - cmp w3, w1 - bne .L2883 - add x3, x20, :lo12:.LANCHOR5 - ldrh w4, [x3,592] - cmp w4, w1 - beq .L2884 -.L2889: - mov w21, 65535 - b .L2883 -.L2884: - ldrh w4, [x2,776] - ldrh w1, [x0,2480] - str wzr, [x0,2452] - cmp w4, w1 - bls .L2885 - ldrh w1, [x3,1384] - cbnz w1, .L2886 - ldr w1, [x0,2924] - ldr w2, [x2,1068] + bne .L2815 + ldrh w0, [x3, 1896] + cbnz w0, .L2816 + ldr w2, [x1, 2924] + ldr w3, [x3, 1068] + add w2, w2, w2, lsl 1 + cmp w3, w2, lsr 2 + bcs .L2817 +.L2816: + add x20, x20, :lo12:.LANCHOR4 + add x2, x19, :lo12:.LANCHOR2 + ldrh w1, [x20, 1096] add w1, w1, w1, lsl 1 - cmp w2, w1, lsr 2 - bcs .L2887 -.L2886: - add x0, x20, :lo12:.LANCHOR5 + asr w1, w1, 2 + strh w1, [x2, 2480] +.L2818: + add x19, x19, :lo12:.LANCHOR2 + str wzr, [x19, 2452] +.L2779: + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] + ldp x27, x28, [sp, 80] + ldp x29, x30, [sp], 144 + ret +.L2781: + ldrh w1, [x3, 880] + cmp w1, w0 + beq .L2784 + mov w0, w21 + bl FtlGcFreeTempBlock + cbz w0, .L2784 + mov w0, w21 + b .L2779 +.L2782: + ldrh w1, [x0, 2472] + cmp w1, w2 + bne .L2783 + ldrh w3, [x0, 2476] + cmp w3, w1 + beq .L2783 + ldrh w2, [x0, 2478] + cmp w2, w1 + beq .L2783 + mov w1, -1 + strh w4, [x0, 2472] + strh w3, [x0, 2474] + strh w2, [x0, 2476] + strh w1, [x0, 2478] + b .L2783 +.L2790: + cmp w1, 5 + bhi .L2791 + mov w1, 18 + b .L2927 +.L2793: + mov w0, 1 + strh w0, [x22, 2484] +.L2795: + bl GetSwlReplaceBlock + and w21, w0, 65535 + mov w0, 65535 + cmp w21, w0 + bne .L2787 + add x0, x20, :lo12:.LANCHOR4 + strh wzr, [x0, 1896] +.L2785: + add x0, x20, :lo12:.LANCHOR4 + mov w21, 65535 + ldrh w0, [x0, 1104] + cmp w0, w21 + bne .L2787 +.L2874: + add x25, x20, :lo12:.LANCHOR4 + mov w0, 65535 + ldrh w21, [x25, 880] + cmp w21, w0 + bne .L2881 + add x26, x19, :lo12:.LANCHOR2 + ldrh w27, [x26, 2472] + cmp w27, w21 + bne .L2787 + ldrh w0, [x25, 776] + mov w1, 1024 + cmp w0, 24 + mov w0, 5120 + csel w0, w0, w1, cc + ldr w1, [x26, 2464] + cmp w1, w0 + bls .L2787 + strh wzr, [x25, 1896] + str wzr, [x26, 2464] + bl GetSwlReplaceBlock + and w21, w0, 65535 + cmp w21, w27 + bne .L2884 + ldrh w1, [x25, 776] + ldrh w0, [x26, 2482] + cmp w1, w0 + bcs .L2798 + mov w0, 64 + bl List_get_gc_head_node + and x0, x0, 65535 + cmp w0, w21 + beq .L2800 + ldr w1, [x26, 2388] + cbnz w1, .L2801 + ldrh w1, [x26, 2296] + cmp w1, 3 + beq .L2801 + ldr w1, [x26, 2392] + cbnz w1, .L2801 + ldr w1, [x26, 2096] + cbnz w1, .L2801 + ldrb w1, [x26, 1220] + cbz w1, .L2802 +.L2801: add x1, x19, :lo12:.LANCHOR2 - ldrh w0, [x0,588] + ldr x2, [x1, 2712] + ldrh w3, [x2, x0, lsl 1] + ldrh w0, [x1, 2346] + ldrh w2, [x1, 2276] + ldrh w1, [x1, 2296] + cmp w1, 3 + mul w2, w2, w0 + lsr w0, w0, 1 + csel w0, w0, wzr, eq + add w0, w0, w2 + cmp w3, w0 + bgt .L2804 + mov w0, 0 + bl List_get_gc_head_node + add x1, x19, :lo12:.LANCHOR2 + add x2, x20, :lo12:.LANCHOR4 + and w22, w0, 65535 + ldr w0, [x1, 2924] + ldr w2, [x2, 1068] + add w0, w0, w0, lsl 1 + cmp w2, w0, lsr 2 + bls .L2805 + mov w0, 128 +.L2928: + strh w0, [x1, 2482] +.L2806: + mov w0, 65535 + cmp w22, w0 + beq .L2800 +.L2797: + add x1, x19, :lo12:.LANCHOR2 + ubfiz x2, x22, 1, 32 + add x0, x20, :lo12:.LANCHOR4 + mov w21, w22 + ldr x4, [x1, 2696] + ldr x3, [x1, 2712] + ldrh w5, [x1, 2480] + mov w1, w22 + ldrh w4, [x4, x2] + ldrh w3, [x3, x2] + ldrh w2, [x0, 776] + adrp x0, .LC158 + add x0, x0, :lo12:.LC158 + bl printk + b .L2800 +.L2805: + mov w0, 160 + b .L2928 +.L2804: + add x0, x19, :lo12:.LANCHOR2 + mov w1, 128 +.L2929: + strh w1, [x0, 2482] +.L2800: + bl FtlGcReFreshBadBlk + b .L2787 +.L2802: + ldr x1, [x26, 2712] + ldrh w0, [x1, x0, lsl 1] + cmp w0, 7 + bhi .L2807 + mov w0, 0 + bl List_get_gc_head_node + and w22, w0, 65535 + add x0, x19, :lo12:.LANCHOR2 + mov w1, 128 + strh w1, [x0, 2482] + b .L2806 +.L2807: + add x0, x19, :lo12:.LANCHOR2 + mov w1, 64 + b .L2929 +.L2798: + mov w0, 80 + strh w0, [x26, 2482] + b .L2800 +.L2884: + mov w22, w21 + b .L2797 +.L2881: + mov w21, w0 + b .L2787 +.L2811: + cmp w0, 12 + bls .L2812 + lsr w22, w22, 4 + b .L2810 +.L2812: + cmp w0, 8 + bls .L2810 + lsr w22, w22, 2 + b .L2810 +.L2886: + mov w22, 1 + b .L2810 +.L2817: + mov w2, 18 + strh w2, [x1, 2480] + b .L2818 +.L2815: + add x0, x20, :lo12:.LANCHOR4 + add x1, x19, :lo12:.LANCHOR2 + ldrh w0, [x0, 1096] add w0, w0, w0, lsl 1 asr w0, w0, 2 - strh w0, [x1,2480] - b .L2888 -.L2887: - mov w1, 18 - strh w1, [x0,2480] + strh w0, [x1, 2480] +.L2814: + add x0, x19, :lo12:.LANCHOR2 + ldr w0, [x0, 2096] + cbz w0, .L2888 + cmp w23, 2 + bhi .L2888 + add w22, w22, 1 + and w22, w22, 65535 .L2888: + mov w21, 65535 + b .L2820 +.L2809: + add x1, x20, :lo12:.LANCHOR4 + ldrh w3, [x1, 880] + cmp w3, w0 + bne .L2821 + add x0, x19, :lo12:.LANCHOR2 + ldrh w2, [x0, 2472] + cmp w2, w3 + bne .L2821 + cmp w21, w2 + bne .L2821 + ldrh w2, [x1, 1104] + cmp w2, w21 + bne .L2821 + ldrh w3, [x1, 776] + ldrh w2, [x0, 2480] + str wzr, [x0, 2452] + cmp w3, w2 + bls .L2823 + ldrh w2, [x1, 1896] + cbnz w2, .L2824 + ldr w2, [x0, 2924] + ldr w1, [x1, 1068] + add w2, w2, w2, lsl 1 + cmp w1, w2, lsr 2 + bcs .L2825 +.L2824: + add x0, x20, :lo12:.LANCHOR4 + add x1, x19, :lo12:.LANCHOR2 + ldrh w0, [x0, 1096] + add w0, w0, w0, lsl 1 + asr w0, w0, 2 + strh w0, [x1, 2480] +.L2826: bl FtlReadRefresh mov w0, 0 bl List_get_gc_head_node - ubfiz x0, x0, 1, 16 add x1, x19, :lo12:.LANCHOR2 - ldr x1, [x1,2712] - ldrh w0, [x1,x0] - cmp w0, 4 - bls .L2885 - add x20, x20, :lo12:.LANCHOR5 - b .L3020 -.L2885: - add x24, x20, :lo12:.LANCHOR5 - ldrh w0, [x24,1384] - cbnz w0, .L2889 - ldrh w21, [x24,588] - add x22, x19, :lo12:.LANCHOR2 - add w1, w21, w21, lsl 1 - asr w1, w1, 2 - strh w1, [x22,2480] - bl List_get_gc_head_node ubfiz x0, x0, 1, 16 - ldr x1, [x22,2712] - ldrh w2, [x22,2276] - ldrh w1, [x1,x0] - ldrh w0, [x22,2346] + ldr x1, [x1, 2712] + ldrh w0, [x1, x0] + cmp w0, 4 + bls .L2823 + add x20, x20, :lo12:.LANCHOR4 +.L2930: + ldrh w0, [x20, 1896] + b .L2779 +.L2825: + mov w1, 18 + strh w1, [x0, 2480] + b .L2826 +.L2823: + add x22, x20, :lo12:.LANCHOR4 + ldrh w0, [x22, 1896] + cbnz w0, .L2821 + ldrh w5, [x22, 1096] + add x6, x19, :lo12:.LANCHOR2 + add w0, w5, w5, lsl 1 + asr w0, w0, 2 + strh w0, [x6, 2480] + mov w0, 0 + bl List_get_gc_head_node + ldr x1, [x6, 2712] + ubfiz x0, x0, 1, 16 + ldrh w2, [x6, 2276] + ldrh w1, [x1, x0] + ldrh w0, [x6, 2346] mul w0, w0, w2 mov w2, 2 sdiv w0, w0, w2 cmp w1, w0 - ble .L2890 - add x0, x23, :lo12:.LANCHOR4 - sub w21, w21, #1 - ldrh w0, [x0,776] - cmp w0, w21 - blt .L2890 + ble .L2828 + ldrh w0, [x22, 776] + sub w5, w5, #1 + cmp w0, w5 + blt .L2828 bl FtlReadRefresh - ldrh w2, [x24,1384] - b .L2994 -.L2890: - cbnz w1, .L2889 + ldrh w0, [x22, 1896] + b .L2779 +.L2828: + cbnz w1, .L2821 + add x20, x20, :lo12:.LANCHOR4 mov w0, -1 - add x23, x23, :lo12:.LANCHOR4 bl decrement_vpc_count - ldrh w2, [x23,776] - add w2, w2, 1 - b .L2994 -.L2883: + ldrh w0, [x20, 776] + add w0, w0, 1 + b .L2779 +.L2821: add x0, x19, :lo12:.LANCHOR2 - mov w22, 2 - ldr w0, [x0,2096] - cmp w0, wzr - csinc w22, w22, wzr, ne - b .L2882 -.L2948: - mov w21, 65535 -.L2882: - add x0, x20, :lo12:.LANCHOR5 + ldr w0, [x0, 2096] + cmp w0, 0 + cset w22, ne + add w22, w22, 1 +.L2820: + add x0, x20, :lo12:.LANCHOR4 mov w2, 65535 - ldrh w1, [x0,592] + ldrh w1, [x0, 1104] cmp w1, w2 - bne .L2892 + bne .L2830 cmp w21, w1 - beq .L2893 - strh w21, [x0,592] - b .L2894 -.L2893: - add x1, x19, :lo12:.LANCHOR2 - ldrh w0, [x1,2472] - cmp w0, w21 - beq .L2894 - ubfiz x0, x0, 1, 16 - ldr x2, [x1,2712] - ldrh w0, [x2,x0] - cbnz w0, .L2895 - mov w0, -1 - strh w0, [x1,2472] -.L2895: - add x1, x19, :lo12:.LANCHOR2 - add x0, x20, :lo12:.LANCHOR5 - ldrh w2, [x1,2472] - strh w2, [x0,592] - mov w0, -1 - strh w0, [x1,2472] -.L2894: - add x24, x20, :lo12:.LANCHOR5 + beq .L2831 + strh w21, [x0, 1104] +.L2832: + add x5, x20, :lo12:.LANCHOR4 mov w1, 65535 - ldrh w0, [x24,592] - strb wzr, [x24,600] + ldrh w0, [x5, 1104] + strb wzr, [x5, 1112] cmp w0, w1 - beq .L2892 + beq .L2830 bl IsBlkInGcList - cbz w0, .L2897 + cbz w0, .L2835 mov w0, -1 - strh w0, [x24,592] -.L2897: + strh w0, [x5, 1104] +.L2835: add x0, x19, :lo12:.LANCHOR2 - ldrb w0, [x0,1220] - cbz w0, .L2898 - add x0, x20, :lo12:.LANCHOR5 - add x24, x0, 592 - ldrh w0, [x0,592] + ldrb w0, [x0, 1220] + cbz w0, .L2836 + add x0, x20, :lo12:.LANCHOR4 + add x3, x0, 1104 + ldrh w0, [x0, 1104] bl ftl_get_blk_mode - strb w0, [x24,8] -.L2898: - add x24, x20, :lo12:.LANCHOR5 + strb w0, [x3, 8] +.L2836: + add x12, x20, :lo12:.LANCHOR4 mov w0, 65535 - add x25, x24, 592 - ldrh w1, [x24,592] + add x13, x12, 1104 + ldrh w1, [x12, 1104] cmp w1, w0 - beq .L2892 - mov x0, x25 + beq .L2830 + mov x0, x13 bl make_superblock - strh wzr, [x24,594] add x0, x19, :lo12:.LANCHOR2 - ldrh w1, [x24,592] - strb wzr, [x24,598] - strh wzr, [x24,1386] - ldr x0, [x0,2712] - ldrh w0, [x0,x1,lsl 1] - strh w0, [x24,1388] -.L2892: - add x0, x20, :lo12:.LANCHOR5 - add x1, x23, :lo12:.LANCHOR4 - ldrh w0, [x0,592] - ldrh w2, [x1,784] - cmp w2, w0 - beq .L2899 - ldrh w2, [x1,832] - cmp w2, w0 - beq .L2899 - ldrh w1, [x1,880] - cmp w1, w0 - bne .L2900 -.L2899: - add x0, x20, :lo12:.LANCHOR5 - mov w1, -1 - strh w1, [x0,592] -.L2900: - add x25, x20, :lo12:.LANCHOR5 -.L2933: - ldrh w0, [x25,592] - mov w1, 65535 + ldrh w1, [x12, 1104] + strh wzr, [x12, 1106] + strb wzr, [x12, 1110] + ldr x0, [x0, 2712] + strh wzr, [x12, 1898] + ldrh w0, [x0, x1, lsl 1] + strh w0, [x12, 1900] +.L2830: + add x0, x20, :lo12:.LANCHOR4 + ldrh w1, [x0, 1104] + ldrh w2, [x0, 784] + cmp w2, w1 + beq .L2837 + ldrh w2, [x0, 832] + cmp w2, w1 + beq .L2837 + ldrh w0, [x0, 880] cmp w0, w1 - bne .L2901 - add x0, x19, :lo12:.LANCHOR2 - str wzr, [x0,2452] -.L2902: - add x26, x19, :lo12:.LANCHOR2 - ldrh w24, [x26,2484] - mov w0, w24 - bl List_get_gc_head_node - uxth w27, w0 - mov w0, 65535 - strh w27, [x25,592] - cmp w27, w0 - bne .L2903 - strh wzr, [x26,2484] - mov w2, 8 - b .L2994 -.L2903: - mov w0, w27 - add w24, w24, 1 - bl IsBlkInGcList - cbz w0, .L2904 - strh w24, [x26,2484] - b .L2902 -.L2904: - ldrh w5, [x26,2276] - ubfiz x1, x27, 1, 16 - ldrh w0, [x26,2344] - uxth w24, w24 - ldr x2, [x26,2712] - mov w3, 2 - strh w24, [x26,2484] - mul w0, w0, w5 - ldrh w4, [x2,x1] - sdiv w5, w0, w3 - cmp w4, w5 - bgt .L2906 - cmp w4, 8 - bls .L2907 - cmp w24, 48 - bls .L2907 - ldrh w4, [x25,1200] - cmp w4, 35 - bhi .L2907 -.L2906: - add x4, x19, :lo12:.LANCHOR2 - strh wzr, [x4,2484] -.L2907: - ldrh w1, [x2,x1] - mov w2, 65535 - cmp w21, w2 - bne .L2908 - cmp w1, w0 - blt .L2908 - add x0, x19, :lo12:.LANCHOR2 - ldrh w2, [x0,2484] - cmp w2, 3 - bhi .L2908 - add x20, x20, :lo12:.LANCHOR5 + bne .L2871 +.L2837: + add x0, x20, :lo12:.LANCHOR4 mov w1, -1 - strh wzr, [x0,2484] - strh w1, [x20,592] -.L3020: - ldrh w2, [x20,1384] - b .L2994 -.L2908: - cbnz w1, .L2909 + strh w1, [x0, 1104] +.L2871: + add x25, x20, :lo12:.LANCHOR4 + mov w0, 65535 + ldrh w26, [x25, 1104] + cmp w26, w0 + bne .L2839 + add x23, x19, :lo12:.LANCHOR2 + mov w27, 2 + str wzr, [x23, 2452] +.L2840: + ldrh w5, [x23, 2484] + mov w0, w5 + bl List_get_gc_head_node + and w6, w0, 65535 + strh w6, [x25, 1104] + cmp w6, w26 + bne .L2841 + strh wzr, [x23, 2484] + mov w0, 8 + b .L2779 +.L2831: + add x1, x19, :lo12:.LANCHOR2 + ldrh w0, [x1, 2472] + cmp w0, w21 + beq .L2832 + ldr x2, [x1, 2712] + ubfiz x0, x0, 1, 16 + ldrh w0, [x2, x0] + cbnz w0, .L2833 + mov w0, -1 + strh w0, [x1, 2472] +.L2833: + add x1, x19, :lo12:.LANCHOR2 + add x0, x20, :lo12:.LANCHOR4 + ldrh w2, [x1, 2472] + strh w2, [x0, 1104] + mov w0, -1 + strh w0, [x1, 2472] + b .L2832 +.L2841: + mov w0, w6 + bl IsBlkInGcList + add w5, w5, 1 + cbz w0, .L2842 + strh w5, [x23, 2484] + b .L2840 +.L2842: + ldrh w4, [x23, 2276] + ubfiz x1, x6, 1, 16 + ldrh w0, [x23, 2344] + and w5, w5, 65535 + ldr x2, [x23, 2712] + strh w5, [x23, 2484] + mul w0, w0, w4 + ldrh w3, [x2, x1] + sdiv w4, w0, w27 + cmp w3, w4 + bgt .L2844 + cmp w5, 48 + bls .L2845 + cmp w3, 8 + bls .L2845 + ldrh w3, [x25, 1712] + cmp w3, 35 + bhi .L2845 +.L2844: + strh wzr, [x23, 2484] +.L2845: + ldrh w1, [x2, x1] + cmp w0, w1 + bgt .L2846 + cmp w21, w26 + bne .L2846 + ldrh w0, [x23, 2484] + cmp w0, 3 + bhi .L2846 + add x20, x20, :lo12:.LANCHOR4 + mov w0, -1 + strh wzr, [x23, 2484] + strh w0, [x20, 1104] + b .L2930 +.L2846: + cbnz w1, .L2847 mov w0, -1 bl decrement_vpc_count - add x1, x19, :lo12:.LANCHOR2 - ldrh w0, [x1,2484] + ldrh w0, [x23, 2484] add w0, w0, 1 - strh w0, [x1,2484] - b .L2902 -.L2909: + strh w0, [x23, 2484] + b .L2840 +.L2847: add x0, x19, :lo12:.LANCHOR2 - strb wzr, [x25,600] - ldrb w0, [x0,1220] - cbz w0, .L2910 - mov w0, w27 + add x3, x20, :lo12:.LANCHOR4 + add x3, x3, 1104 + ldrb w0, [x0, 1220] + strb wzr, [x3, 8] + cbz w0, .L2848 + mov w0, w6 bl ftl_get_blk_mode - strb w0, [x25,600] -.L2910: - add x24, x25, 592 - mov x0, x24 + strb w0, [x3, 8] +.L2848: + add x12, x20, :lo12:.LANCHOR4 + add x13, x12, 1104 + mov x0, x13 bl make_superblock - strh wzr, [x25,1386] + ldrh w1, [x12, 1104] add x0, x19, :lo12:.LANCHOR2 - ldrh w1, [x25,592] - ldr x0, [x0,2712] - ldrh w0, [x0,x1,lsl 1] - strh w0, [x25,1388] - strh wzr, [x25,594] - strb wzr, [x25,598] -.L2901: - ldr w0, [x29,132] + strh wzr, [x12, 1898] + ldr x0, [x0, 2712] + ldrh w0, [x0, x1, lsl 1] + strh w0, [x12, 1900] + strh wzr, [x12, 1106] + strb wzr, [x12, 1110] +.L2839: + ldr w0, [x29, 124] cmp w0, 1 - bne .L2911 + bne .L2849 bl FtlReadRefresh -.L2911: +.L2849: add x0, x19, :lo12:.LANCHOR2 mov w1, 1 - str w1, [x0,2448] - ldrh w1, [x0,2344] - str w1, [x29,136] - ldrb w1, [x0,1220] - cbz w1, .L2912 - ldrb w1, [x25,600] + str w1, [x0, 2448] + ldrb w1, [x0, 1220] + ldrh w25, [x0, 2344] + cbz w1, .L2850 + add x1, x20, :lo12:.LANCHOR4 + ldrb w1, [x1, 1112] cmp w1, 1 - bne .L2912 - ldrh w0, [x0,2346] - str w0, [x29,136] -.L2912: - ldrh w0, [x25,594] - ldr w2, [x29,136] + bne .L2850 + ldrh w25, [x0, 2346] +.L2850: + add x0, x20, :lo12:.LANCHOR4 + ldrh w0, [x0, 1106] add w1, w0, w22 - cmp w1, w2 - ble .L2913 - sub w22, w2, w0 - uxth w22, w22 -.L2913: - mov w27, 0 -.L2914: - cmp w22, w27, uxth - bls .L2921 - add x1, x25, 592 - add x0, x19, :lo12:.LANCHOR2 - ldrh w4, [x1,2] - ldrh w7, [x0,2276] - mov x0, 0 - add w4, w4, w27 - mov w24, w0 -.L2922: - cmp w7, w0, uxth - bls .L3023 - add x2, x1, x0, lsl 1 - mov w3, 65535 - ldrh w2, [x2,16] - cmp w2, w3 - beq .L2915 - add x6, x19, :lo12:.LANCHOR2 - mov w3, 56 - orr w2, w4, w2, lsl 10 - umull x5, w24, w3 - ldr x6, [x6,2552] - add w24, w24, 1 - add x5, x6, x5 - uxth w24, w24 - str w2, [x5,4] -.L2915: - add x0, x0, 1 - b .L2922 -.L3023: - add x0, x19, :lo12:.LANCHOR2 - ldrb w2, [x25,600] - mov w1, w24 - mov x28, 0 - ldr x0, [x0,2552] + cmp w1, w25 + ble .L2851 + sub w22, w25, w0 + and w22, w22, 65535 +.L2851: + add x24, x20, :lo12:.LANCHOR4 + mov w26, 0 + add x27, x24, 880 +.L2852: + cmp w22, w26, uxth + bls .L2859 + add x1, x19, :lo12:.LANCHOR2 + ldrh w5, [x24, 1106] + add x3, x24, 1120 + mov w23, 0 + add w5, w5, w26 + mov w0, 0 + ldrh w9, [x1, 2276] + mov w8, 65535 + mov w7, 56 + b .L2860 +.L2854: + ldrh w2, [x3] + cmp w2, w8 + beq .L2853 + ldr x6, [x1, 2552] + orr w2, w5, w2, lsl 10 + umaddl x6, w23, w7, x6 + add w23, w23, 1 + and w23, w23, 65535 + str w2, [x6, 4] +.L2853: + add w0, w0, 1 + add x3, x3, 2 + and w0, w0, 65535 +.L2860: + cmp w0, w9 + bne .L2854 + add x3, x19, :lo12:.LANCHOR2 + ldrb w2, [x24, 1112] + mov w1, w23 + mov x28, x3 + ldr x0, [x3, 2552] bl FlashReadPages - add x0, x23, :lo12:.LANCHOR4 - str x0, [x29,120] -.L2917: - cmp w24, w28, uxth - bls .L3024 - add x26, x19, :lo12:.LANCHOR2 - mov x0, 56 - mul x5, x28, x0 - ldr x0, [x26,2552] - add x1, x0, x5 - ldr w0, [x0,x5] + mov w0, 56 + umull x0, w23, w0 + mov x23, 0 + str x0, [x29, 112] +.L2855: + ldr x0, [x29, 112] + cmp x0, x23 + bne .L2858 + add w26, w26, 1 + b .L2852 +.L2858: + ldr x0, [x28, 2552] + add x1, x0, x23 + ldr w0, [x0, x23] cmn w0, #1 - ldr x6, [x1,16] - beq .L2951 - ldrh w0, [x6] + beq .L2856 + ldr x5, [x1, 16] mov w1, 61589 + ldrh w0, [x5] cmp w0, w1 - bne .L2951 - ldr w0, [x6,8] - add x1, x29, 152 + bne .L2856 + ldr w0, [x5, 8] mov w2, 0 - str x5, [x29,104] - str x6, [x29,112] + add x1, x29, 136 + str x5, [x29, 104] bl log2phys - ldr x2, [x26,2552] - ldr x5, [x29,104] - ldr w0, [x29,152] - add x2, x2, x5 - ldr x6, [x29,112] - and w0, w0, 2147483647 - ldr w1, [x2,4] - cmp w0, w1 - bne .L2951 - ldrh w0, [x25,1386] - mov x3, 56 - ldr x1, [x26,2528] - add w0, w0, 1 - strh w0, [x25,1386] - ldr w0, [x25,1168] - str x5, [x29,96] - str x6, [x29,104] - madd x1, x0, x3, x1 - ldr w0, [x2,24] - str x1, [x29,112] - str w0, [x1,24] + ldr x0, [x28, 2552] + ldr w1, [x29, 136] + add x0, x0, x23 + ldr x5, [x29, 104] + and w1, w1, 2147483647 + ldr w2, [x0, 4] + cmp w1, w2 + bne .L2856 + ldrh w1, [x24, 1898] + mov w2, 56 + ldr x7, [x28, 2528] + add w1, w1, 1 + strh w1, [x24, 1898] + ldr w1, [x24, 1680] + ldr w0, [x0, 24] + str w2, [x29, 120] + nop // between mem op and mult-accumulate + umaddl x1, w1, w2, x7 + stp x5, x1, [x29, 96] + str w0, [x1, 24] bl Ftl_get_new_temp_ppa - ldr x1, [x29,112] - mov x2, 56 - ldr x5, [x29,96] - ldr x6, [x29,104] - str w0, [x1,4] - ldr w0, [x25,1168] - ldr x1, [x26,2528] - madd x0, x0, x2, x1 - ldr x1, [x26,2552] - add x1, x1, x5 - ldr x2, [x1,8] - str x2, [x0,8] - ldr x1, [x1,16] - str x1, [x0,16] + ldp x5, x1, [x29, 96] + ldr w2, [x29, 120] + str w0, [x1, 4] + ldr w0, [x24, 1680] + ldr x1, [x28, 2528] + umaddl x0, w0, w2, x1 + ldr x1, [x28, 2552] + add x1, x1, x23 + ldr x2, [x1, 8] + str x2, [x0, 8] + ldr x1, [x1, 16] + str x1, [x0, 16] + ldr w0, [x29, 136] mov w1, 1 - ldr w0, [x29,152] - str w0, [x6,12] - ldr x0, [x29,120] - add x2, x0, 880 - str x2, [x29,112] - ldrh w0, [x0,880] - strh w0, [x6,2] - ldr w0, [x26,2400] - str w0, [x6,4] - ldr w0, [x25,1168] + str w0, [x5, 12] + ldrh w0, [x27] + strh w0, [x5, 2] + ldr w0, [x28, 2400] + str w0, [x5, 4] + ldr w0, [x24, 1680] add w0, w0, 1 - str w0, [x25,1168] - ldr x0, [x26,2552] - add x0, x0, x5 + str w0, [x24, 1680] + ldr x0, [x28, 2552] + add x0, x0, x23 bl FtlGcBufAlloc - ldrb w0, [x26,1220] - cbnz w0, .L2919 - ldr x2, [x29,112] - ldr w1, [x25,1168] - ldrb w0, [x2,7] + ldrb w0, [x28, 1220] + cbnz w0, .L2857 + ldrb w1, [x27, 7] + ldr w0, [x24, 1680] cmp w1, w0 - beq .L2919 - ldrh w0, [x2,4] - cbnz w0, .L2951 -.L2919: + beq .L2857 + ldrh w0, [x27, 4] + cbnz w0, .L2856 +.L2857: bl Ftl_gc_temp_data_write_back - cbz w0, .L2951 - add x20, x20, :lo12:.LANCHOR5 + cbz w0, .L2856 + add x20, x20, :lo12:.LANCHOR4 add x19, x19, :lo12:.LANCHOR2 mov w0, -1 - str wzr, [x19,2448] - strh w0, [x20,592] - strh wzr, [x20,594] - b .L3020 -.L2951: - add x28, x28, 1 - b .L2917 -.L3024: - add w27, w27, 1 - b .L2914 -.L2921: - ldrh w0, [x25,594] + strh wzr, [x20, 1106] + strh w0, [x20, 1104] + str wzr, [x19, 2448] + b .L2930 +.L2856: + add x23, x23, 56 + b .L2855 +.L2859: + add x23, x20, :lo12:.LANCHOR4 + ldrh w0, [x23, 1106] add w22, w22, w0 - ldr w0, [x29,136] - uxth w22, w22 - strh w22, [x25,594] - cmp w22, w0 - bcc .L2923 - ldr w0, [x25,1168] - cbz w0, .L2924 + and w22, w22, 65535 + strh w22, [x23, 1106] + cmp w25, w22 + bhi .L2861 + ldr w0, [x23, 1680] + cbz w0, .L2862 bl Ftl_gc_temp_data_write_back - cbz w0, .L2924 + cbz w0, .L2862 add x19, x19, :lo12:.LANCHOR2 - ldrh w2, [x25,1384] - str wzr, [x19,2448] - b .L2994 -.L2924: - ldrh w22, [x25,1386] - cbnz w22, .L2925 - add x0, x19, :lo12:.LANCHOR2 - ldrh w1, [x25,592] - ldr x0, [x0,2712] - ldrh w0, [x0,x1,lsl 1] - cbz w0, .L2925 -.L2926: - add x0, x19, :lo12:.LANCHOR2 - ldr w0, [x0,2924] + ldrh w0, [x23, 1896] + str wzr, [x19, 2448] + b .L2779 +.L2862: + add x0, x20, :lo12:.LANCHOR4 + ldrh w1, [x0, 1898] + cbnz w1, .L2863 + add x1, x19, :lo12:.LANCHOR2 + ldrh w3, [x0, 1104] + ldr x2, [x1, 2712] + ldrh w2, [x2, x3, lsl 1] + cbz w2, .L2863 + mov x25, x1 + mov x23, x0 + mov w22, 0 +.L2864: + ldr w0, [x25, 2924] cmp w22, w0 - bcs .L2931 - mov w0, w22 - add x1, x29, 156 + bcs .L2869 mov w2, 0 + add x1, x29, 140 + mov w0, w22 bl log2phys - ldr w0, [x29,156] + ldr w0, [x29, 140] cmn w0, #1 - beq .L2927 + beq .L2865 lsr w0, w0, 10 bl P2V_block_in_plane - ldrh w1, [x25,592] + ldrh w1, [x23, 1104] cmp w1, w0, uxth - bne .L2927 -.L2931: - add x0, x19, :lo12:.LANCHOR2 - ldr w1, [x0,2924] - cmp w22, w1 - bcc .L2925 - ldrh w1, [x25,592] - ldr x0, [x0,2712] - strh wzr, [x0,x1,lsl 1] - ldrh w0, [x25,592] + bne .L2865 +.L2869: + add x1, x19, :lo12:.LANCHOR2 + ldr w0, [x1, 2924] + cmp w22, w0 + bcc .L2863 + add x0, x20, :lo12:.LANCHOR4 + ldr x1, [x1, 2712] + ldrh w2, [x0, 1104] + strh wzr, [x1, x2, lsl 1] + ldrh w0, [x0, 1104] bl update_vpc_list bl FtlCacheWriteBack bl l2p_flush bl FtlVpcTblFlush - b .L2925 -.L2927: - add w22, w22, 1 - b .L2926 -.L2925: - mov w0, -1 - strh w0, [x25,592] -.L2923: - add x0, x23, :lo12:.LANCHOR4 - ldrh w0, [x0,776] - cmp w0, 2 - bhi .L2932 - add x0, x19, :lo12:.LANCHOR2 - ldrh w22, [x0,2344] - b .L2933 -.L2932: - add x20, x20, :lo12:.LANCHOR5 - add x19, x19, :lo12:.LANCHOR2 - ldrh w2, [x20,1384] - str wzr, [x19,2448] - cmp w2, wzr - csinc w2, w2, w0, ne - b .L2994 -.L3022: - add x25, x19, :lo12:.LANCHOR2 - ldrh w27, [x25,2472] - cmp w27, w21 - bne .L2858 - ldrh w0, [x26,776] - mov w3, 1024 - ldr w2, [x25,2464] - cmp w0, 24 - mov w0, 5120 - csel w0, w0, w3, cc - cmp w2, w0 - bls .L2858 - str wzr, [x25,2464] - strh wzr, [x1,1384] - bl GetSwlReplaceBlock - uxth w21, w0 - cmp w21, w27 - bne .L2860 - ldrh w1, [x26,776] - ldrh w0, [x25,2482] - cmp w1, w0 - bcs .L2861 - mov w0, 64 - bl List_get_gc_head_node - uxth w0, w0 - cmp w0, w21 - beq .L2870 - ldr w2, [x25,2388] - uxtw x1, w0 - cbnz w2, .L2863 - ldrh w0, [x25,2296] - cmp w0, 3 - beq .L2863 - ldr w0, [x25,2392] - cbnz w0, .L2863 - ldr w0, [x25,2096] - cbnz w0, .L2863 - ldrb w0, [x25,1220] - cbz w0, .L2864 .L2863: - add x2, x19, :lo12:.LANCHOR2 - ldr x0, [x2,2712] - ldrh w4, [x0,x1,lsl 1] - ldrh w1, [x2,2346] - ldrh w0, [x2,2276] - ldrh w2, [x2,2296] - mul w3, w1, w0 - cmp w2, 3 - mov w0, 0 - lsr w1, w1, 1 - csel w0, w1, w0, eq - add w0, w3, w0 - cmp w4, w0 - bgt .L2866 - mov w0, 0 - bl List_get_gc_head_node - uxth w21, w0 - add x1, x19, :lo12:.LANCHOR2 - add x2, x23, :lo12:.LANCHOR4 - ldr w0, [x1,2924] - ldr w2, [x2,1068] - add w0, w0, w0, lsl 1 - cmp w2, w0, lsr 2 - bls .L2867 - mov w0, 128 - b .L3017 -.L2867: - mov w0, 160 -.L3017: - strh w0, [x1,2482] - b .L2868 -.L2866: - add x0, x19, :lo12:.LANCHOR2 - mov w1, 128 - b .L3018 -.L2864: - ldr x2, [x25,2712] - ldrh w1, [x2,x1,lsl 1] - cmp w1, 7 - bhi .L2869 - bl List_get_gc_head_node - uxth w21, w0 - add x0, x19, :lo12:.LANCHOR2 - mov w1, 128 - strh w1, [x0,2482] - b .L2868 -.L2869: - add x0, x19, :lo12:.LANCHOR2 - mov w1, 64 -.L3018: - strh w1, [x0,2482] - b .L2870 + add x0, x20, :lo12:.LANCHOR4 + mov w1, -1 + strh w1, [x0, 1104] .L2861: - mov w0, 80 - strh w0, [x25,2482] - b .L2870 -.L2868: - mov w0, 65535 - cmp w21, w0 - beq .L2870 -.L2860: - add x5, x19, :lo12:.LANCHOR2 - ubfiz x4, x21, 1, 32 - add x2, x23, :lo12:.LANCHOR4 - adrp x0, .LC158 - add x0, x0, :lo12:.LC158 - mov w1, w21 - ldr x3, [x5,2712] - ldr x6, [x5,2696] - ldrh w2, [x2,776] - ldrh w3, [x3,x4] - ldrh w5, [x5,2480] - ldrh w4, [x6,x4] - bl printk + add x0, x20, :lo12:.LANCHOR4 + ldrh w1, [x0, 776] + cmp w1, 2 + bhi .L2870 + add x0, x19, :lo12:.LANCHOR2 + ldrh w22, [x0, 2344] + b .L2871 +.L2865: + add w22, w22, 1 + b .L2864 .L2870: - bl FtlGcReFreshBadBlk - b .L2858 -.L3021: - mov w21, w0 - b .L2858 -.L2994: - mov w0, w2 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 160 - ret + ldrh w0, [x0, 1896] + add x19, x19, :lo12:.LANCHOR2 + cmp w0, 0 + csinc w0, w0, w1, ne + str wzr, [x19, 2448] + b .L2779 +.L2878: + mov w0, 0 + b .L2779 .size ftl_do_gc, .-ftl_do_gc .align 2 .global FtlCacheWriteBack .type FtlCacheWriteBack, %function FtlCacheWriteBack: - stp x29, x30, [sp, -128]! + stp x29, x30, [sp, -112]! add x29, sp, 0 - stp x23, x24, [sp,48] - adrp x23, .LANCHOR5 - add x0, x23, :lo12:.LANCHOR5 - stp x19, x20, [sp,16] - stp x21, x22, [sp,32] - stp x25, x26, [sp,64] - stp x27, x28, [sp,80] - adrp x19, .LANCHOR2 - ldr x20, [x0,1392] - add x0, x19, :lo12:.LANCHOR2 - ldr w22, [x0,2928] - cbnz w22, .L3027 - ldr w1, [x0,2496] - cbz w1, .L3027 - ldrb w0, [x0,1220] - cbz w0, .L3029 - ldrb w0, [x20,8] + stp x21, x22, [sp, 32] + adrp x22, .LANCHOR2 + add x0, x22, :lo12:.LANCHOR2 + stp x19, x20, [sp, 16] + stp x23, x24, [sp, 48] + stp x25, x26, [sp, 64] + stp x27, x28, [sp, 80] + ldr w24, [x0, 2928] + cbnz w24, .L2933 + ldr w1, [x0, 2496] + cbz w1, .L2933 + ldrb w0, [x0, 1220] + adrp x23, .LANCHOR4 + add x2, x23, :lo12:.LANCHOR4 + ldr x20, [x2, 1904] + cbz w0, .L2958 + ldrb w0, [x20, 8] cmp w0, 1 - cset w22, eq -.L3029: - add x0, x19, :lo12:.LANCHOR2 - ldrb w3, [x20,9] + cset w25, eq +.L2935: + add x19, x22, :lo12:.LANCHOR2 + ldrb w3, [x20, 9] adrp x26, .LC159 - mov w2, w22 - mov w24, 0 + mov w2, w25 + mov w21, 0 mov w27, 56 - ldr x0, [x0,2560] + ldr x0, [x19, 2560] add x26, x26, :lo12:.LC159 bl FlashProgPages -.L3030: - add x0, x19, :lo12:.LANCHOR2 - ldr w1, [x0,2496] - cmp w24, w1 - bcs .L3048 - umull x21, w24, w27 - ldr x1, [x0,2560] - add x0, x1, x21 - ldr w25, [x1,x21] - cmn w25, #1 - beq .L3051 - ldr w1, [x0,4] - cbz w22, .L3065 - orr w1, w1, -2147483648 -.L3065: - ldr w0, [x0,24] - mov w2, 1 - str w1, [x29,124] - add x25, x19, :lo12:.LANCHOR2 - add x1, x29, 124 - bl log2phys - ldr x0, [x25,2560] - add x21, x0, x21 - ldr x0, [x21,16] - ldr w0, [x0,12] +.L2936: + ldr w0, [x19, 2496] + cmp w21, w0 + bcc .L2943 +.L2955: + add x22, x22, :lo12:.LANCHOR2 + str wzr, [x22, 2496] +.L2933: + ldp x19, x20, [sp, 16] + mov w0, 0 + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] + ldp x27, x28, [sp, 80] + ldp x29, x30, [sp], 112 + ret +.L2958: + mov w25, 0 + b .L2935 +.L2943: + umull x28, w21, w27 + ldr x0, [x19, 2560] + add x3, x0, x28 + ldr w0, [x0, x28] cmn w0, #1 - beq .L3034 - lsr x0, x0, 10 + bne .L2937 + add x19, x22, :lo12:.LANCHOR2 + add x23, x23, :lo12:.LANCHOR4 +.L2938: + ldr w0, [x19, 2496] + cmp w24, w0 + bcc .L2953 + add x20, x22, :lo12:.LANCHOR2 + mov w19, 16386 +.L2956: + ldrh w0, [x20, 2486] + cbz w0, .L2955 + mov w1, 1 + mov w0, w1 + bl ftl_do_gc + subs w19, w19, #1 + bne .L2956 + b .L2955 +.L2937: + ldr w0, [x3, 4] + cbnz w25, .L2939 +.L2972: + str w0, [x29, 108] + mov w2, 1 + ldr w0, [x3, 24] + add x1, x29, 108 + bl log2phys + ldr x0, [x19, 2560] + add x0, x0, x28 + ldr x0, [x0, 16] + ldr w0, [x0, 12] + cmn w0, #1 + beq .L2941 + lsr w0, w0, 10 bl P2V_block_in_plane - uxth w1, w0 + ldr x2, [x19, 2712] + and w1, w0, 65535 ubfiz x0, x1, 1, 16 - ldr x2, [x25,2712] - mov w21, w1 - ldrh w2, [x2,x0] - cbnz w2, .L3035 + mov w28, w1 + ldrh w0, [x2, x0] + cbnz w0, .L2942 + mov w2, 0 mov x0, x26 bl printk -.L3035: +.L2942: + mov w0, w28 + bl decrement_vpc_count +.L2941: + add w21, w21, 1 + b .L2936 +.L2939: + orr w0, w0, -2147483648 + b .L2972 +.L2953: + mov w21, 56 + ldr x0, [x19, 2560] + mov w1, -1 + mov w26, 1 + umull x21, w24, w21 + str w1, [x0, x21] +.L2944: + ldr x0, [x19, 2560] + add x3, x0, x21 + ldr w0, [x0, x21] + cmn w0, #1 + ldr w0, [x3, 4] + beq .L2948 + cbnz w25, .L2949 +.L2973: + str w0, [x29, 108] + mov w2, 1 + ldr w0, [x3, 24] + add x1, x29, 108 + bl log2phys + ldr x0, [x19, 2560] + add x21, x0, x21 + ldr x0, [x21, 16] + ldr w0, [x0, 12] + cmn w0, #1 + beq .L2951 + lsr w0, w0, 10 + bl P2V_block_in_plane + ldr x2, [x19, 2712] + and w1, w0, 65535 + ubfiz x0, x1, 1, 16 + mov w21, w1 + ldrh w0, [x2, x0] + cbnz w0, .L2952 + adrp x0, .LC159 + mov w2, 0 + add x0, x0, :lo12:.LC159 + bl printk +.L2952: mov w0, w21 bl decrement_vpc_count -.L3034: +.L2951: add w24, w24, 1 - b .L3030 -.L3067: - mov w20, 16386 -.L3047: - add x0, x19, :lo12:.LANCHOR2 - ldrh w0, [x0,2486] - cbz w0, .L3048 - mov w0, 1 - mov w1, w0 - bl ftl_do_gc - subs w20, w20, #1 - bne .L3047 -.L3048: - add x19, x19, :lo12:.LANCHOR2 - str wzr, [x19,2496] - b .L3027 -.L3051: - adrp x26, .LC159 - add x0, x23, :lo12:.LANCHOR5 - mov w24, 0 - mov w27, 56 - str x0, [x29,104] - add x26, x26, :lo12:.LC159 -.L3031: - add x0, x19, :lo12:.LANCHOR2 - ldr w1, [x0,2496] - cmp w24, w1 - bcs .L3067 - umull x21, w24, w27 - ldr x0, [x0,2560] - mov w28, 1 - str w25, [x0,x21] -.L3037: - add x2, x19, :lo12:.LANCHOR2 - ldr x0, [x2,2560] - add x1, x0, x21 - ldr w0, [x0,x21] - cmn w0, #1 - bne .L3068 - ldr w0, [x1,4] - str x2, [x29,96] - lsr x0, x0, 10 + b .L2938 +.L2948: + lsr w0, w0, 10 bl P2V_block_in_plane ldrh w1, [x20] cmp w1, w0, uxth - ldr x2, [x29,96] - bne .L3038 - ldr x3, [x2,2712] + bne .L2945 + ldr x2, [x19, 2712] ubfiz x1, x1, 1, 16 - ldrh w4, [x20,4] - ldrh w0, [x3,x1] - sub w0, w0, w4 - strh w0, [x3,x1] - strb wzr, [x20,6] - ldrh w0, [x2,2344] - strh w0, [x20,2] - strh wzr, [x20,4] -.L3038: - ldrh w0, [x20,4] - cbnz w0, .L3039 + ldrh w3, [x20, 4] + ldrh w0, [x2, x1] + sub w0, w0, w3 + strh w0, [x2, x1] + strb wzr, [x20, 6] + ldrh w0, [x19, 2344] + strh w0, [x20, 2] + strh wzr, [x20, 4] +.L2945: + ldrh w0, [x20, 4] + cbnz w0, .L2946 mov x0, x20 bl allocate_new_data_superblock -.L3039: - ldr x0, [x29,104] - add x23, x19, :lo12:.LANCHOR2 - add x1, x0, 640 - ldr w0, [x0,736] +.L2946: + ldr w0, [x23, 1248] add w0, w0, 1 - str w0, [x1,96] - ldr x0, [x23,2560] + str w0, [x23, 1248] + ldr x0, [x19, 2560] add x0, x0, x21 - ldr w0, [x0,4] - lsr x0, x0, 10 + ldr w0, [x0, 4] + lsr w0, w0, 10 bl FtlGcMarkBadPhyBlk mov x0, x20 bl get_new_active_ppa - str w0, [x29,124] - ldr x1, [x23,2560] - mov w2, w22 + ldr x1, [x19, 2560] + mov w2, w25 + str w0, [x29, 108] add x1, x1, x21 - str w0, [x1,4] + str w0, [x1, 4] mov w1, 1 - ldr x0, [x23,2560] - ldrb w3, [x20,9] + ldrb w3, [x20, 9] + ldr x0, [x19, 2560] add x0, x0, x21 bl FlashProgPages - ldr x0, [x23,2560] - ldr w0, [x0,x21] + ldr x0, [x19, 2560] + ldr w0, [x0, x21] cmn w0, #1 - bne .L3040 - str w28, [x23,2928] -.L3040: - add x0, x19, :lo12:.LANCHOR2 - ldr w0, [x0,2928] - cbz w0, .L3037 - b .L3027 -.L3068: - ldr w0, [x1,4] - cbz w22, .L3066 + bne .L2947 + str w26, [x19, 2928] +.L2947: + ldr w0, [x19, 2928] + cbz w0, .L2944 + b .L2933 +.L2949: orr w0, w0, -2147483648 -.L3066: - str w0, [x29,124] - mov w2, 1 - ldr w0, [x1,24] - add x28, x19, :lo12:.LANCHOR2 - add x1, x29, 124 - bl log2phys - ldr x0, [x28,2560] - add x21, x0, x21 - ldr x0, [x21,16] - ldr w0, [x0,12] - cmn w0, #1 - beq .L3044 - lsr x0, x0, 10 - bl P2V_block_in_plane - uxth w1, w0 - ubfiz x0, x1, 1, 16 - ldr x2, [x28,2712] - mov w21, w1 - ldrh w2, [x2,x0] - cbnz w2, .L3045 - mov x0, x26 - bl printk -.L3045: - mov w0, w21 - bl decrement_vpc_count -.L3044: - add w24, w24, 1 - b .L3031 -.L3027: - mov w0, 0 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 128 - ret + b .L2973 .size FtlCacheWriteBack, .-FtlCacheWriteBack .align 2 .global FtlSysFlush .type FtlSysFlush, %function FtlSysFlush: adrp x0, .LANCHOR2+2928 + ldr w0, [x0, #:lo12:.LANCHOR2+2928] + cbnz w0, .L2977 stp x29, x30, [sp, -32]! - add x29, sp, 0 - ldr w0, [x0,#:lo12:.LANCHOR2+2928] - str x19, [sp,16] - cbnz w0, .L3070 adrp x0, .LANCHOR1+3448 - ldr w19, [x0,#:lo12:.LANCHOR1+3448] + add x29, sp, 0 + str x19, [sp, 16] + ldr w19, [x0, #:lo12:.LANCHOR1+3448] cmp w19, 1 - bne .L3070 + bne .L2975 bl FtlCacheWriteBack bl l2p_flush mov w0, w19 bl FtlEctTblFlush bl FtlVpcTblFlush -.L3070: +.L2975: mov w0, 0 - ldr x19, [sp,16] + ldr x19, [sp, 16] ldp x29, x30, [sp], 32 ret +.L2977: + mov w0, 0 + ret .size FtlSysFlush, .-FtlSysFlush .align 2 .global FtlDeInit .type FtlDeInit, %function FtlDeInit: adrp x0, .LANCHOR1+3448 + ldr w0, [x0, #:lo12:.LANCHOR1+3448] + cmp w0, 1 + bne .L2983 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr w0, [x0,#:lo12:.LANCHOR1+3448] - cmp w0, 1 - bne .L3072 bl FtlSysFlush -.L3072: mov w0, 0 ldp x29, x30, [sp], 16 ret +.L2983: + mov w0, 0 + ret .size FtlDeInit, .-FtlDeInit .align 2 .global ftl_deinit @@ -19516,96 +19067,94 @@ ftl_cache_flush: .global ftl_discard .type ftl_discard, %function ftl_discard: - stp x29, x30, [sp, -80]! + stp x29, x30, [sp, -64]! add x29, sp, 0 - stp x21, x22, [sp,32] - adrp x22, .LANCHOR2 - str x23, [sp,48] - add x21, x22, :lo12:.LANCHOR2 - stp x19, x20, [sp,16] + stp x21, x22, [sp, 32] + mov w21, w0 + stp x19, x20, [sp, 16] + adrp x20, .LANCHOR2 + add x22, x20, :lo12:.LANCHOR2 + ldr w0, [x22, 1224] + cmp w0, w21 + bls .L3000 mov w19, w1 - mov w20, w0 - ldr w1, [x21,1224] - cmp w19, w1 - bhi .L3083 cmp w0, w1 - bcs .L3083 - add w2, w0, w19 - mov w0, -1 - cmp w2, w1 - bhi .L3076 + bcc .L3000 + add w1, w21, w1 + cmp w0, w1 + bcc .L3000 cmp w19, 31 - bls .L3091 - ldr w0, [x21,2928] - cbnz w0, .L3091 + bhi .L2992 +.L3008: + mov w0, 0 +.L2990: + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x29, x30, [sp], 64 + ret +.L2992: + ldr w0, [x22, 2928] + cbnz w0, .L3008 bl FtlCacheWriteBack - ldrh w1, [x21,2350] - udiv w21, w20, w1 - msub w20, w1, w21, w20 - uxth w20, w20 - cbz w20, .L3079 - sub w20, w1, w20 - add w21, w21, 1 - cmp w20, w19 - csel w20, w20, w19, ls - sub w19, w19, w20, uxth -.L3079: + ldrh w0, [x22, 2350] + udiv w22, w21, w0 + msub w21, w0, w22, w21 + ands w21, w21, 65535 + beq .L2994 + sub w21, w0, w21 + add w22, w22, 1 + cmp w21, w19 + csel w21, w21, w19, ls + sub w19, w19, w21, uxth +.L2994: + adrp x21, .LANCHOR4 + add x20, x20, :lo12:.LANCHOR2 + add x21, x21, :lo12:.LANCHOR4 mov w0, -1 - adrp x23, .LANCHOR5 - str w0, [x29,76] -.L3080: - add x20, x22, :lo12:.LANCHOR2 - ldrh w0, [x20,2350] + str w0, [x29, 60] +.L2995: + ldrh w0, [x20, 2350] cmp w19, w0 - bcc .L3092 - mov w0, w21 - add x1, x29, 72 - mov w2, 0 - bl log2phys - ldr w0, [x29,72] - cmn w0, #1 - beq .L3081 - add x1, x23, :lo12:.LANCHOR5 - mov w2, 1 - ldr w0, [x1,1400] - add w0, w0, 1 - str w0, [x1,1400] - ldr w0, [x20,2412] - add x1, x29, 76 - add w0, w0, 1 - str w0, [x20,2412] - mov w0, w21 - bl log2phys - ldr w0, [x29,72] - lsr x0, x0, 10 - bl P2V_block_in_plane - bl decrement_vpc_count -.L3081: - add x0, x22, :lo12:.LANCHOR2 - add w21, w21, 1 - ldrh w0, [x0,2350] - sub w19, w19, w0 - b .L3080 -.L3092: - adrp x0, .LANCHOR5 - add x0, x0, :lo12:.LANCHOR5 - ldr w1, [x0,1400] + bcs .L2997 + adrp x0, .LANCHOR4 + add x0, x0, :lo12:.LANCHOR4 + ldr w1, [x0, 1912] cmp w1, 32 - bls .L3091 - str wzr, [x0,1400] + bls .L3008 + str wzr, [x0, 1912] bl l2p_flush bl FtlVpcTblFlush -.L3091: - mov w0, 0 - b .L3076 -.L3083: + b .L3008 +.L2997: + mov w2, 0 + add x1, x29, 56 + mov w0, w22 + bl log2phys + ldr w0, [x29, 56] + cmn w0, #1 + beq .L2996 + ldr w0, [x21, 1912] + mov w2, 1 + add x1, x29, 60 + add w0, w0, 1 + str w0, [x21, 1912] + ldr w0, [x20, 2412] + add w0, w0, 1 + str w0, [x20, 2412] + mov w0, w22 + bl log2phys + ldr w0, [x29, 56] + lsr w0, w0, 10 + bl P2V_block_in_plane + bl decrement_vpc_count +.L2996: + ldrh w0, [x20, 2350] + add w22, w22, 1 + sub w19, w19, w0 + b .L2995 +.L3000: mov w0, -1 -.L3076: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldr x23, [sp,48] - ldp x29, x30, [sp], 80 - ret + b .L2990 .size ftl_discard, .-ftl_discard .align 2 .global FtlGcFreeTempBlock @@ -19613,220 +19162,214 @@ ftl_discard: FtlGcFreeTempBlock: stp x29, x30, [sp, -112]! add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] adrp x19, .LANCHOR2 - str x27, [sp,80] add x2, x19, :lo12:.LANCHOR2 - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] - ldr w3, [x2,2928] - ldrh w1, [x2,2344] - cbnz w3, .L3129 + stp x21, x22, [sp, 32] + stp x23, x24, [sp, 48] + stp x25, x26, [sp, 64] + str x27, [sp, 80] + ldrh w1, [x2, 2344] + ldr w2, [x2, 2928] + cbz w2, .L3010 +.L3047: + mov w0, 0 +.L3009: + 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], 112 + ret +.L3010: adrp x20, .LANCHOR4 - mov w4, 65535 add x2, x20, :lo12:.LANCHOR4 - ldrh w21, [x2,880] - cmp w21, w4 - bne .L3096 -.L3105: - add x22, x20, :lo12:.LANCHOR4 - adrp x21, .LANCHOR5 - add x23, x21, :lo12:.LANCHOR5 + mov w3, 65535 + ldrh w21, [x2, 880] + cmp w21, w3 + bne .L3012 +.L3021: + add x21, x20, :lo12:.LANCHOR4 mov w0, 65535 - add x24, x22, 880 - ldrh w1, [x22,880] - str wzr, [x23,1192] + add x22, x21, 880 + ldrh w1, [x21, 880] + str wzr, [x21, 1704] cmp w1, w0 - beq .L3129 + beq .L3047 bl FtlCacheWriteBack - mov w25, 12 + mov w23, 0 add x0, x19, :lo12:.LANCHOR2 - ldrb w1, [x24,7] - ldrh w3, [x22,880] - mov w24, 0 - ldrh w4, [x0,2344] - ldr x2, [x0,2712] + ldrb w1, [x22, 7] + ldrh w3, [x21, 880] + mov x22, x0 + mov w26, 12 + ldrh w4, [x0, 2344] + ldr x2, [x0, 2712] mul w1, w1, w4 - strh w1, [x2,x3,lsl 1] - ldrh w2, [x23,1202] - mov x23, x22 - ldr w1, [x0,2404] - add w1, w2, w1 - str w1, [x0,2404] - b .L3106 -.L3096: - cbz w0, .L3099 - adrp x0, .LANCHOR1 - add x0, x0, :lo12:.LANCHOR1 - ldrh w5, [x0,3452] - cmp w5, w4 - beq .L3100 -.L3101: - mov w1, 2 - b .L3099 -.L3100: - strh w3, [x0,3452] - ldrh w0, [x2,776] - cmp w0, 17 - bhi .L3101 -.L3099: - add x0, x20, :lo12:.LANCHOR4 - add x0, x0, 880 - bl FtlGcScanTempBlk - str w0, [x29,108] - cmn w0, #1 - beq .L3102 - add x19, x19, :lo12:.LANCHOR2 - ubfiz x21, x21, 1, 16 - ldr x1, [x19,2696] - ldrh w0, [x1,x21] - cmp w0, 4 - bls .L3103 - sub w0, w0, #5 - strh w0, [x1,x21] - mov w0, 1 - bl FtlEctTblFlush -.L3103: - adrp x0, .LANCHOR5 - add x1, x0, :lo12:.LANCHOR5 - mov x19, x0 - ldr w2, [x1,1192] - cbnz w2, .L3104 - ldr w0, [x1,736] - add w0, w0, 1 - str w0, [x1,736] - ldr w0, [x29,108] - lsr w0, w0, 10 - bl FtlBbmMapBadBlock - bl FtlBbmTblFlush -.L3104: - add x0, x19, :lo12:.LANCHOR5 - str wzr, [x0,1192] - mov w0, 1 - b .L3095 -.L3102: - adrp x0, .LANCHOR1+3452 - mov w1, 65535 - ldrh w2, [x0,#:lo12:.LANCHOR1+3452] - mov w0, 1 - cmp w2, w1 - bne .L3095 - b .L3105 -.L3109: - ldr w1, [x22,4] - cmp w0, w1 - bne .L3127 -.L3108: - add w24, w24, 1 - uxth w24, w24 -.L3106: - add x0, x21, :lo12:.LANCHOR5 - ldrh w0, [x0,1202] - cmp w0, w24 - bls .L3130 - add x1, x19, :lo12:.LANCHOR2 - umull x26, w24, w25 - ldr x27, [x1,2512] - ldr w1, [x1,2924] - add x22, x27, x26 - ldr w0, [x22,8] - cmp w0, w1 - bcs .L3127 - add x1, x29, 108 - mov w2, 0 - bl log2phys - ldr w0, [x29,108] - ldr w1, [x27,x26] - cmp w0, w1 - bne .L3109 - lsr x0, x0, 10 - bl P2V_block_in_plane - mov w26, w0 - ldr w0, [x22,8] - add x1, x22, 4 - mov w2, 1 - bl log2phys - mov w0, w26 - b .L3128 -.L3127: - ldrh w0, [x23,880] -.L3128: - bl decrement_vpc_count - b .L3108 -.L3130: + strh w1, [x2, x3, lsl 1] + ldr w2, [x0, 2404] + ldrh w1, [x21, 1714] + add w1, w1, w2 + str w1, [x0, 2404] +.L3022: + ldrh w0, [x21, 1714] + cmp w0, w23 + bhi .L3026 mov w0, -1 bl decrement_vpc_count add x0, x19, :lo12:.LANCHOR2 - ldrb w0, [x0,1220] - cbz w0, .L3111 - add x1, x20, :lo12:.LANCHOR4 + ldrb w0, [x0, 1220] + cbz w0, .L3027 + ldrh w1, [x21, 880] adrp x0, .LC160 add x0, x0, :lo12:.LC160 - ldrh w1, [x1,880] bl printk -.L3111: +.L3027: add x0, x20, :lo12:.LANCHOR4 add x1, x19, :lo12:.LANCHOR2 - ldrh w0, [x0,880] - ldr x1, [x1,2712] + ldrh w0, [x0, 880] + ldr x1, [x1, 2712] ubfiz x2, x0, 1, 16 - ldrh w1, [x1,x2] - cbz w1, .L3112 + ldrh w1, [x1, x2] + cbz w1, .L3028 bl INSERT_DATA_LIST - b .L3113 -.L3112: - bl INSERT_FREE_LIST -.L3113: - add x22, x21, :lo12:.LANCHOR5 - add x23, x20, :lo12:.LANCHOR4 - mov w24, -1 - strh wzr, [x22,1202] - strh w24, [x23,880] - strh wzr, [x22,1200] +.L3029: + add x21, x20, :lo12:.LANCHOR4 + mov w22, -1 + strh wzr, [x21, 1714] + strh w22, [x21, 880] + strh wzr, [x21, 1712] bl l2p_flush bl FtlVpcTblFlush - strh w24, [x22,592] + strh w22, [x21, 1104] add x1, x19, :lo12:.LANCHOR2 - ldr w0, [x1,2096] - cbz w0, .L3114 - ldr w0, [x1,2444] + ldr w0, [x1, 2096] + cbz w0, .L3030 + ldr w0, [x1, 2444] cmp w0, 39 - bhi .L3114 - ldrh w0, [x22,588] - ldrh w2, [x23,776] + bhi .L3030 + ldrh w0, [x21, 1096] + ldrh w2, [x21, 776] cmp w2, w0 - bcs .L3129 - lsl w0, w0, 1 - strh w0, [x1,2480] -.L3129: - mov w0, 0 - b .L3095 -.L3114: - add x21, x21, :lo12:.LANCHOR5 - add x20, x20, :lo12:.LANCHOR4 - ldrh w1, [x21,588] - ldrh w0, [x20,776] - add w2, w1, w1, lsl 1 - cmp w0, w2, lsr 2 - ble .L3129 + bcs .L3047 + ubfiz w0, w0, 1, 15 + strh w0, [x1, 2480] + b .L3047 +.L3012: + cbz w0, .L3015 + adrp x0, .LANCHOR1 + add x0, x0, :lo12:.LANCHOR1 + ldrh w4, [x0, 3452] + cmp w4, w3 + beq .L3016 +.L3017: + mov w1, 2 +.L3015: + add x0, x20, :lo12:.LANCHOR4 + add x0, x0, 880 + bl FtlGcScanTempBlk + str w0, [x29, 108] + cmn w0, #1 + beq .L3018 add x19, x19, :lo12:.LANCHOR2 - ldrb w0, [x19,1220] - cbz w0, .L3115 - sub w1, w1, #2 - strh w1, [x19,2480] - b .L3129 -.L3115: - mov w1, 20 - strh w1, [x19,2480] -.L3095: - 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], 112 - ret + ubfiz x21, x21, 1, 16 + ldr x1, [x19, 2696] + ldrh w0, [x1, x21] + cmp w0, 4 + bls .L3019 + sub w0, w0, #5 + strh w0, [x1, x21] + mov w0, 1 + bl FtlEctTblFlush +.L3019: + add x0, x20, :lo12:.LANCHOR4 + ldr w1, [x0, 1704] + cbnz w1, .L3020 + ldr w1, [x0, 1248] + add w1, w1, 1 + str w1, [x0, 1248] + ldr w0, [x29, 108] + lsr w0, w0, 10 + bl FtlBbmMapBadBlock + bl FtlBbmTblFlush +.L3020: + add x20, x20, :lo12:.LANCHOR4 + str wzr, [x20, 1704] +.L3032: + mov w0, 1 + b .L3009 +.L3016: + strh wzr, [x0, 3452] + ldrh w0, [x2, 776] + cmp w0, 17 + bhi .L3017 + b .L3015 +.L3018: + adrp x0, .LANCHOR1+3452 + ldrh w1, [x0, #:lo12:.LANCHOR1+3452] + mov w0, 65535 + cmp w1, w0 + bne .L3032 + b .L3021 +.L3026: + umull x25, w23, w26 + ldr x27, [x22, 2512] + ldr w1, [x22, 2924] + add x24, x27, x25 + ldr w0, [x24, 8] + cmp w0, w1 + bcc .L3023 +.L3044: + ldrh w0, [x21, 880] + b .L3045 +.L3023: + add x1, x29, 108 + mov w2, 0 + bl log2phys + ldr w0, [x27, x25] + ldr w1, [x29, 108] + cmp w0, w1 + bne .L3025 + lsr w0, w0, 10 + bl P2V_block_in_plane + mov w25, w0 + ldr w0, [x24, 8] + mov w2, 1 + add x1, x24, 4 + bl log2phys + mov w0, w25 +.L3045: + bl decrement_vpc_count + b .L3024 +.L3025: + ldr w0, [x24, 4] + cmp w1, w0 + bne .L3044 +.L3024: + add w23, w23, 1 + and w23, w23, 65535 + b .L3022 +.L3028: + bl INSERT_FREE_LIST + b .L3029 +.L3030: + add x20, x20, :lo12:.LANCHOR4 + ldrh w0, [x20, 1096] + ldrh w1, [x20, 776] + add w2, w0, w0, lsl 1 + cmp w1, w2, lsr 2 + ble .L3047 + add x19, x19, :lo12:.LANCHOR2 + ldrb w1, [x19, 1220] + cbz w1, .L3031 + sub w0, w0, #2 +.L3046: + strh w0, [x19, 2480] + b .L3047 +.L3031: + mov w0, 20 + b .L3046 .size FtlGcFreeTempBlock, .-FtlGcFreeTempBlock .align 2 .global FtlGcPageRecovery @@ -19834,29 +19377,28 @@ FtlGcFreeTempBlock: FtlGcPageRecovery: stp x29, x30, [sp, -48]! add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] adrp x20, .LANCHOR2 - adrp x19, .LANCHOR4 add x20, x20, :lo12:.LANCHOR2 + adrp x19, .LANCHOR4 add x19, x19, :lo12:.LANCHOR4 - str x21, [sp,32] + str x21, [sp, 32] add x21, x19, 880 + ldrh w1, [x20, 2344] mov x0, x21 - ldrh w1, [x20,2344] bl FtlGcScanTempBlk - ldrh w1, [x19,882] - ldrh w0, [x20,2344] + ldrh w1, [x19, 882] + ldrh w0, [x20, 2344] cmp w1, w0 - bcc .L3131 + bcc .L3048 add x0, x19, 928 bl FtlMapBlkWriteDumpData mov w0, 0 bl FtlGcFreeTempBlock - adrp x0, .LANCHOR5+1192 - str wzr, [x0,#:lo12:.LANCHOR5+1192] -.L3131: - ldp x19, x20, [sp,16] - ldr x21, [sp,32] + str wzr, [x19, 1704] +.L3048: + ldp x19, x20, [sp, 16] + ldr x21, [sp, 32] ldp x29, x30, [sp], 48 ret .size FtlGcPageRecovery, .-FtlGcPageRecovery @@ -19865,15 +19407,14 @@ FtlGcPageRecovery: .type FtlPowerLostRecovery, %function FtlPowerLostRecovery: stp x29, x30, [sp, -32]! - adrp x0, .LANCHOR5+1248 add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] adrp x19, .LANCHOR4 - str wzr, [x0,#:lo12:.LANCHOR5+1248] add x19, x19, :lo12:.LANCHOR4 add x20, x19, 784 add x19, x19, 832 mov x0, x20 + str wzr, [x19, 928] bl FtlRecoverySuperblock mov x0, x20 bl FtlSlcSuperblockCheck @@ -19885,7 +19426,7 @@ FtlPowerLostRecovery: mov w0, -1 bl decrement_vpc_count mov w0, 0 - ldp x19, x20, [sp,16] + ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 32 ret .size FtlPowerLostRecovery, .-FtlPowerLostRecovery @@ -19894,33 +19435,37 @@ FtlPowerLostRecovery: .type FtlSysBlkInit, %function FtlSysBlkInit: stp x29, x30, [sp, -64]! - mov w1, -1 + mov w0, -1 add x29, sp, 0 - stp x19, x20, [sp,16] - stp x21, x22, [sp,32] - adrp x20, .LANCHOR2 - adrp x21, .LANCHOR5 - str x23, [sp,48] - add x0, x21, :lo12:.LANCHOR5 - add x23, x20, :lo12:.LANCHOR2 + stp x19, x20, [sp, 16] adrp x19, .LANCHOR4 - strh w1, [x0,1242] - strh wzr, [x0,1244] - ldrh w0, [x23,2280] + stp x21, x22, [sp, 32] + adrp x20, .LANCHOR2 + add x21, x19, :lo12:.LANCHOR4 + add x22, x20, :lo12:.LANCHOR2 + str x23, [sp, 48] + strh w0, [x21, 1754] + ldrh w0, [x22, 2280] + strh wzr, [x21, 1756] bl FtlFreeSysBlkQueueInit bl FtlScanSysBlk - add x0, x19, :lo12:.LANCHOR4 - ldrh w1, [x0,1072] + ldrh w1, [x21, 1072] mov w0, 65535 cmp w1, w0 - bne .L3135 -.L3137: - mov w22, -1 - b .L3136 -.L3135: + bne .L3054 +.L3056: + mov w21, -1 +.L3053: + mov w0, w21 + ldr x23, [sp, 48] + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x29, x30, [sp], 64 + ret +.L3054: bl FtlLoadSysInfo - mov w22, w0 - cbnz w0, .L3137 + mov w21, w0 + cbnz w0, .L3056 bl FtlLoadMapInfo bl FtlLoadVonderInfo bl Ftl_load_ext_data @@ -19930,95 +19475,91 @@ FtlSysBlkInit: bl FtlPowerLostRecovery mov w0, 1 bl FtlUpdateVaildLpn - ldrh w2, [x23,2382] - mov x1, 0 - ldr x0, [x23,2792] -.L3138: - cmp w1, w2 - mov w3, w1 - bge .L3142 - add x4, x0, x1, lsl 4 - add x1, x1, 1 - ldr w4, [x4,4] - tbz w4, #31, .L3138 -.L3142: - add x0, x19, :lo12:.LANCHOR4 - cmp w3, w2 - ldrh w1, [x0,724] + ldr x1, [x22, 2792] + mov w0, 0 + ldrh w3, [x22, 2382] + add x1, x1, 4 +.L3057: + cmp w0, w3 + bge .L3062 + ldr w2, [x1], 16 + tbz w2, #31, .L3058 +.L3062: + add x2, x19, :lo12:.LANCHOR4 + cmp w0, w3 + ldrh w1, [x2, 724] add w1, w1, 1 - strh w1, [x0,724] - blt .L3139 - add x21, x21, :lo12:.LANCHOR5 - ldrh w0, [x21,1244] - cbz w0, .L3143 -.L3139: - add x1, x19, :lo12:.LANCHOR4 - add x2, x20, :lo12:.LANCHOR2 - ldrh w3, [x1,784] - ldr x5, [x2,2712] + strh w1, [x2, 724] + bge .L3069 +.L3059: + add x0, x19, :lo12:.LANCHOR4 + add x1, x20, :lo12:.LANCHOR2 + ldrh w3, [x0, 784] + ldr x5, [x1, 2712] + ldrh w6, [x0, 788] lsl x3, x3, 1 - ldrh w6, [x1,788] - ldrh w4, [x5,x3] + ldrh w4, [x5, x3] sub w4, w4, w6 - strh w4, [x5,x3] - strb wzr, [x1,790] - ldrh w3, [x2,2344] - strh w3, [x1,786] - ldrh w3, [x1,832] - ldr x5, [x2,2712] + strh w4, [x5, x3] + strb wzr, [x0, 790] + ldrh w3, [x1, 2344] + strh w3, [x0, 786] + ldrh w3, [x0, 832] + ldr x5, [x1, 2712] + strh wzr, [x0, 788] lsl x3, x3, 1 - strh wzr, [x1,788] - ldrh w6, [x1,836] - ldrh w4, [x5,x3] + ldrh w6, [x0, 836] + ldrh w4, [x5, x3] sub w4, w4, w6 - strh w4, [x5,x3] - strb wzr, [x1,838] - ldrh w0, [x1,726] - ldrh w2, [x2,2344] - add w0, w0, 1 - strh w2, [x1,834] - strh wzr, [x1,836] - strh w0, [x1,726] + strh w4, [x5, x3] + strb wzr, [x0, 838] + ldrh w1, [x1, 2344] + strh w1, [x0, 834] + ldrh w1, [x0, 726] + strh wzr, [x0, 836] + add w1, w1, 1 + strh w1, [x0, 726] bl l2p_flush bl FtlVpcTblFlush bl FtlVpcTblFlush -.L3143: + b .L3063 +.L3058: + add w0, w0, 1 + b .L3057 +.L3069: + ldrh w0, [x2, 1756] + cbnz w0, .L3059 +.L3063: add x20, x19, :lo12:.LANCHOR4 mov w1, 65535 add x23, x20, 784 - ldrh w0, [x20,784] + ldrh w0, [x20, 784] cmp w0, w1 - beq .L3144 - ldrh w1, [x20,788] - cbnz w1, .L3144 - ldrh w1, [x20,836] - add x21, x20, 832 - cbnz w1, .L3144 + beq .L3064 + ldrh w1, [x20, 788] + cbnz w1, .L3064 + ldrh w1, [x20, 836] + add x22, x20, 832 + cbnz w1, .L3064 bl FtlGcRefreshOpenBlock - ldrh w0, [x20,832] + ldrh w0, [x20, 832] bl FtlGcRefreshOpenBlock bl FtlVpcTblFlush mov x0, x23 bl allocate_new_data_superblock - mov x0, x21 + mov x0, x22 bl allocate_new_data_superblock -.L3144: +.L3064: adrp x0, .LANCHOR0+88 - ldrb w0, [x0,#:lo12:.LANCHOR0+88] - cbnz w0, .L3145 + ldrb w0, [x0, #:lo12:.LANCHOR0+88] + cbnz w0, .L3065 add x19, x19, :lo12:.LANCHOR4 - ldrh w0, [x19,724] - and w0, w0, 31 - cbnz w0, .L3136 -.L3145: + ldrh w0, [x19, 724] + tst x0, 31 + bne .L3053 +.L3065: bl FtlVpcCheckAndModify -.L3136: - mov w0, w22 - ldr x23, [sp,48] - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x29, x30, [sp], 64 - ret + b .L3053 .size FtlSysBlkInit, .-FtlSysBlkInit .align 2 .global FtlLowFormat @@ -20026,298 +19567,298 @@ FtlSysBlkInit: FtlLowFormat: stp x29, x30, [sp, -64]! add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] adrp x19, .LANCHOR2 add x20, x19, :lo12:.LANCHOR2 - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - ldr w21, [x20,2928] - cbnz w21, .L3153 - ldrh w2, [x20,2380] - mov w1, w21 - ldr x0, [x20,2776] + stp x21, x22, [sp, 32] + stp x23, x24, [sp, 48] + ldr w0, [x20, 2928] + cbnz w0, .L3073 + ldr x0, [x20, 2776] + mov w1, 0 + ldrh w2, [x20, 2380] lsl w2, w2, 2 bl ftl_memset - ldrh w2, [x20,2380] - mov w1, w21 - ldr x0, [x20,2768] + ldr x0, [x20, 2768] + mov w1, 0 + ldrh w2, [x20, 2380] lsl w2, w2, 2 bl ftl_memset - str w21, [x20,2396] - ldrh w0, [x20,2280] - str w21, [x20,2400] + ldrh w0, [x20, 2280] + str wzr, [x20, 2396] + str wzr, [x20, 2400] bl FtlFreeSysBlkQueueInit bl FtlLoadBbt - cbz w0, .L3154 + cbz w0, .L3074 bl FtlMakeBbt -.L3154: - mov w0, 0 -.L3155: +.L3074: + mov w4, 23752 add x1, x19, :lo12:.LANCHOR2 - ldrh w2, [x1,2350] + mov w0, 0 + movk w4, 0xa0f, lsl 16 +.L3075: + ldrh w2, [x1, 2350] cmp w0, w2, lsl 7 - bge .L3182 - ubfiz x3, x0, 2, 16 - ldr x4, [x1,2616] - mvn w2, w0 - orr w2, w0, w2, lsl 16 - str w2, [x4,x3] - add w0, w0, 1 - ldr x2, [x1,2624] - mov w1, 23752 - movk w1, 0xa0f, lsl 16 - uxth w0, w0 - str w1, [x2,x3] - b .L3155 -.L3182: - ldrh w21, [x1,2284] - mov w20, 0 -.L3157: + blt .L3076 + ldrh w21, [x1, 2284] add x22, x19, :lo12:.LANCHOR2 - ldrh w0, [x22,2286] + mov w20, 0 +.L3077: + ldrh w0, [x22, 2286] cmp w0, w21 - bls .L3183 - mov w0, w21 - mov w1, 1 - add w21, w21, 1 - bl FtlLowFormatEraseBlock - add w0, w20, w0 - uxth w21, w21 - uxth w20, w0 - b .L3157 -.L3183: - ldrh w0, [x22,2276] + bhi .L3078 + ldrh w0, [x22, 2276] sub w1, w20, #3 cmp w1, w0, lsl 1 - blt .L3159 + blt .L3079 udiv w0, w20, w0 - ldr w20, [x22,2376] + ldr w20, [x22, 2376] add w0, w0, w20 - mov w20, 0 bl FtlSysBlkNumInit - ldrh w0, [x22,2280] + ldrh w0, [x22, 2280] + mov w20, 0 bl FtlFreeSysBlkQueueInit - ldrh w21, [x22,2284] -.L3160: - add x0, x19, :lo12:.LANCHOR2 - ldrh w0, [x0,2286] + ldrh w21, [x22, 2284] + add x22, x19, :lo12:.LANCHOR2 +.L3080: + ldrh w0, [x22, 2286] cmp w0, w21 - bls .L3159 - mov w0, w21 - mov w1, 1 - add w21, w21, 1 - bl FtlLowFormatEraseBlock - add w0, w20, w0 - uxth w21, w21 - uxth w20, w0 - b .L3160 -.L3159: - mov w21, 0 - mov w22, w21 -.L3162: - add x0, x19, :lo12:.LANCHOR2 - ldrh w1, [x0,2284] - cmp w1, w22 - bls .L3184 - mov w0, w22 - mov w1, 0 - add w22, w22, 1 - bl FtlLowFormatEraseBlock - add w0, w21, w0 - uxth w22, w22 - uxth w21, w0 - b .L3162 -.L3184: - ldrh w1, [x0,2286] - adrp x22, .LANCHOR5 - ldrh w2, [x0,2276] - add x6, x22, :lo12:.LANCHOR5 - str w1, [x0,2468] - ldr w1, [x0,2288] - udiv w3, w1, w2 - str w3, [x0,2924] - ubfx x5, x3, 5, 16 - add w4, w5, 36 - strh w4, [x6,588] - mov w4, 24 - mul w4, w2, w4 - cmp w21, w4 - ble .L3164 - sub w1, w1, w21 - udiv w1, w1, w2 - str w1, [x0,2924] - lsr w1, w1, 5 - add w1, w1, 24 - strh w1, [x6,588] -.L3164: - add x0, x19, :lo12:.LANCHOR2 - ldr w0, [x0,2096] - cmp w0, 1 - bne .L3165 - add x1, x22, :lo12:.LANCHOR5 - udiv w0, w21, w2 - ldrh w4, [x1,588] - add w0, w4, w0 - add w0, w4, w0, asr 2 - strh w0, [x1,588] -.L3165: - add x0, x19, :lo12:.LANCHOR2 - ldrb w0, [x0,1220] - cbz w0, .L3166 - add x1, x22, :lo12:.LANCHOR5 - udiv w0, w21, w2 - ldrh w4, [x1,588] - add w0, w4, w0 - add w0, w4, w0, asr 2 - strh w0, [x1,588] -.L3166: - add x6, x19, :lo12:.LANCHOR2 - ldrh w1, [x6,2338] - cbz w1, .L3168 - add x0, x22, :lo12:.LANCHOR5 - ldrh w4, [x0,588] - add w4, w4, w1, lsr 1 - strh w4, [x0,588] - mul w4, w1, w2 - cmp w4, w21 - ble .L3168 - add w1, w1, 32 - str w3, [x6,2924] - add w1, w5, w1 - strh w1, [x0,588] -.L3168: + bhi .L3081 +.L3079: add x23, x19, :lo12:.LANCHOR2 - add x3, x22, :lo12:.LANCHOR5 - ldr w1, [x23,2924] - ldrh w0, [x3,588] - sub w0, w1, w0 - ldrh w1, [x23,2344] - mul w0, w0, w2 - str w0, [x3,584] - mul w0, w0, w1 - ldrh w1, [x23,2350] - str w0, [x23,2924] - mul w0, w0, w1 - str w0, [x23,1224] + mov w22, 0 + mov w21, 0 +.L3082: + ldrh w0, [x23, 2284] + cmp w0, w21 + bhi .L3083 + ldrh w0, [x23, 2286] + adrp x21, .LANCHOR4 + ldr w2, [x23, 2288] + add x5, x21, :lo12:.LANCHOR4 + str w0, [x23, 2468] + ldrh w0, [x23, 2276] + udiv w4, w2, w0 + ubfx x3, x4, 5, 16 + str w4, [x23, 2924] + add w1, w3, 36 + strh w1, [x5, 1096] + mov w1, 24 + mul w1, w0, w1 + cmp w22, w1 + ble .L3084 + sub w2, w2, w22 + udiv w2, w2, w0 + str w2, [x23, 2924] + lsr w2, w2, 5 + add w2, w2, 24 + strh w2, [x5, 1096] +.L3084: + add x1, x19, :lo12:.LANCHOR2 + ldr w1, [x1, 2096] + cmp w1, 1 + bne .L3085 + udiv w2, w22, w0 + add x1, x21, :lo12:.LANCHOR4 + ldrh w5, [x1, 1096] + add w2, w2, w5 + add w2, w5, w2, asr 2 + strh w2, [x1, 1096] +.L3085: + add x1, x19, :lo12:.LANCHOR2 + ldrb w1, [x1, 1220] + cbz w1, .L3086 + udiv w2, w22, w0 + add x1, x21, :lo12:.LANCHOR4 + ldrh w5, [x1, 1096] + add w2, w2, w5 + add w2, w5, w2, asr 2 + strh w2, [x1, 1096] +.L3086: + add x6, x19, :lo12:.LANCHOR2 + ldrh w1, [x6, 2338] + cbz w1, .L3088 + add x2, x21, :lo12:.LANCHOR4 + ldrh w5, [x2, 1096] + add w5, w5, w1, lsr 1 + strh w5, [x2, 1096] + mul w5, w1, w0 + cmp w22, w5 + bge .L3088 + add w1, w1, 32 + str w4, [x6, 2924] + add w1, w3, w1 + strh w1, [x2, 1096] +.L3088: + add x23, x19, :lo12:.LANCHOR2 + add x2, x21, :lo12:.LANCHOR4 + ldr w1, [x23, 2924] + ldrh w3, [x2, 1096] + sub w1, w1, w3 + mul w0, w1, w0 + ldrh w1, [x23, 2344] + str w0, [x2, 1092] + mul w0, w1, w0 + ldrh w1, [x23, 2350] + str w0, [x23, 2924] + mul w0, w1, w0 + str w0, [x23, 1224] bl FtlBbmTblFlush - ldr w2, [x23,2292] - add w1, w21, w20 - ldrh w0, [x23,2358] + ldrh w0, [x23, 2358] + add w1, w20, w22 + ldr w2, [x23, 2292] add w0, w0, w2, lsr 3 cmp w1, w0 - bls .L3170 + bls .L3090 adrp x0, .LC161 lsr w2, w2, 5 add x0, x0, :lo12:.LC161 bl printk -.L3170: - add x24, x19, :lo12:.LANCHOR2 - adrp x20, .LANCHOR4 - add x20, x20, :lo12:.LANCHOR4 +.L3090: + add x23, x19, :lo12:.LANCHOR2 + add x22, x21, :lo12:.LANCHOR4 + add x20, x22, 784 mov w1, 0 - add x21, x20, 784 - mov w23, -1 - ldrh w2, [x24,2286] - ldr x0, [x24,2712] + mov w24, -1 + ldr x0, [x23, 2712] + ldrh w2, [x23, 2286] lsl w2, w2, 1 bl ftl_memset - str wzr, [x20,1068] mov w0, 1 - strb w0, [x21,8] - adrp x0, .LANCHOR0+16 - add x1, x22, :lo12:.LANCHOR5 - ldrh w2, [x24,2284] - strh wzr, [x21,2] - ldr x0, [x0,#:lo12:.LANCHOR0+16] - lsr w2, w2, 3 - strh w23, [x1,592] - strh wzr, [x1,594] - strb wzr, [x1,598] - strb wzr, [x1,600] + strb w0, [x20, 8] + adrp x0, .LANCHOR0+80 + ldrh w2, [x23, 2284] + strh w24, [x22, 1104] mov w1, 255 - strb wzr, [x21,6] - strh wzr, [x20,784] + ldr x0, [x0, #:lo12:.LANCHOR0+80] + strh wzr, [x22, 1106] + lsr w2, w2, 3 + strb wzr, [x22, 1110] + strb wzr, [x22, 1112] + strh wzr, [x20, 2] + strb wzr, [x20, 6] + strh wzr, [x22, 784] + str wzr, [x22, 1068] bl ftl_memset -.L3171: - mov x0, x21 +.L3091: + mov x0, x20 bl make_superblock - ldrb w0, [x21,7] - cbnz w0, .L3172 - add x0, x19, :lo12:.LANCHOR2 - ldrh w1, [x21] - ldr x0, [x0,2712] - strh w23, [x0,x1,lsl 1] - ldrh w0, [x21] + ldrb w1, [x20, 7] + ldrh w0, [x20] + cbnz w1, .L3092 + ldr x1, [x23, 2712] + ubfiz x0, x0, 1, 16 + strh w24, [x1, x0] + ldrh w0, [x20] add w0, w0, 1 - strh w0, [x21] - b .L3171 -.L3172: - add x1, x19, :lo12:.LANCHOR2 - ldrh w2, [x21] - ldrh w3, [x21,4] - mov w23, -1 - ldr w0, [x1,2396] - str w0, [x21,12] + strh w0, [x20] + b .L3091 +.L3076: + ldr x5, [x1, 2616] + ubfiz x3, x0, 2, 16 + mvn w2, w0 + orr w2, w0, w2, lsl 16 add w0, w0, 1 - str w0, [x1,2396] - ldr x0, [x1,2712] - strh w3, [x0,x2,lsl 1] - add x0, x20, 832 - strh wzr, [x20,834] - ldrh w1, [x21] - mov x21, x0 - strb wzr, [x20,838] - add w1, w1, 1 - strh w1, [x20,832] + and w0, w0, 65535 + str w2, [x5, x3] + ldr x2, [x1, 2624] + str w4, [x2, x3] + b .L3075 +.L3078: + mov w0, w21 mov w1, 1 - strb w1, [x20,840] -.L3173: - mov x0, x21 + add w21, w21, 1 + bl FtlLowFormatEraseBlock + add w20, w20, w0 + and w21, w21, 65535 + and w20, w20, 65535 + b .L3077 +.L3081: + mov w0, w21 + mov w1, 1 + add w21, w21, 1 + bl FtlLowFormatEraseBlock + add w20, w20, w0 + and w21, w21, 65535 + and w20, w20, 65535 + b .L3080 +.L3083: + mov w0, w21 + mov w1, 0 + add w21, w21, 1 + bl FtlLowFormatEraseBlock + add w22, w22, w0 + and w21, w21, 65535 + and w22, w22, 65535 + b .L3082 +.L3092: + add x1, x19, :lo12:.LANCHOR2 + ubfiz x0, x0, 1, 16 + ldrh w3, [x20, 4] + mov x13, x1 + mov w14, -1 + ldr w2, [x1, 2396] + str w2, [x20, 12] + add w2, w2, 1 + str w2, [x1, 2396] + ldr x2, [x1, 2712] + strh w3, [x2, x0] + add x0, x22, 832 + mov x12, x0 + strh wzr, [x22, 834] + ldrh w2, [x20] + add x20, x21, :lo12:.LANCHOR4 + strb wzr, [x22, 838] + add w2, w2, 1 + strh w2, [x22, 832] + mov w2, 1 + strb w2, [x22, 840] +.L3093: + mov x0, x12 bl make_superblock - ldrb w0, [x21,7] - cbnz w0, .L3174 - add x0, x19, :lo12:.LANCHOR2 - ldrh w1, [x21] - ldr x0, [x0,2712] - strh w23, [x0,x1,lsl 1] - ldrh w0, [x21] + ldrb w1, [x12, 7] + ldrh w0, [x12] + cbnz w1, .L3094 + ldr x1, [x13, 2712] + ubfiz x0, x0, 1, 16 + strh w14, [x1, x0] + ldrh w0, [x12] add w0, w0, 1 - strh w0, [x21] - b .L3173 -.L3174: + strh w0, [x12] + b .L3093 +.L3094: add x19, x19, :lo12:.LANCHOR2 - ldrh w1, [x21] - ldrh w2, [x21,4] - add x22, x22, :lo12:.LANCHOR5 - ldr w0, [x19,2396] - str w0, [x21,12] + ubfiz x0, x0, 1, 16 + ldrh w2, [x12, 4] mov w21, -1 - add w0, w0, 1 - str w0, [x19,2396] - ldr x0, [x19,2712] - strh w2, [x0,x1,lsl 1] - strh w21, [x20,880] + ldr w1, [x19, 2396] + str w1, [x12, 12] + add w1, w1, 1 + str w1, [x19, 2396] + ldr x1, [x19, 2712] + strh w2, [x1, x0] + strh w21, [x20, 880] bl FtlFreeSysBlkQueueOut - strh w0, [x20,1072] - ldr w0, [x22,584] - strh w0, [x20,1078] - ldr w0, [x19,2396] - str w0, [x20,1080] + strh w0, [x20, 1072] + ldr w0, [x20, 1092] + strh w0, [x20, 1078] + ldr w0, [x19, 2396] + str w0, [x20, 1080] add w0, w0, 1 - strh wzr, [x20,1074] - strh w21, [x20,1076] - str w0, [x19,2396] + strh wzr, [x20, 1074] + strh w21, [x20, 1076] + str w0, [x19, 2396] bl FtlVpcTblFlush bl FtlSysBlkInit - cbnz w0, .L3153 + cbnz w0, .L3073 adrp x0, .LANCHOR1+3448 mov w1, 1 - str w1, [x0,#:lo12:.LANCHOR1+3448] -.L3153: + str w1, [x0, #:lo12:.LANCHOR1+3448] +.L3073: mov w0, 0 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] ldp x29, x30, [sp], 64 ret .size FtlLowFormat, .-FtlLowFormat @@ -20327,199 +19868,193 @@ FtlLowFormat: FtlReInitForSDUpdata: stp x29, x30, [sp, -48]! add x29, sp, 0 - str x19, [sp,16] + stp x19, x20, [sp, 16] adrp x19, .LANCHOR2 add x0, x19, :lo12:.LANCHOR2 - ldrb w0, [x0,1220] - cbz w0, .L3186 -.L3188: - mov w0, 0 - b .L3187 -.L3186: + ldrb w0, [x0, 1220] + cbz w0, .L3104 +.L3106: + mov w20, 0 +.L3103: + mov w0, w20 + ldp x19, x20, [sp, 16] + ldp x29, x30, [sp], 48 + ret +.L3104: adrp x0, RK29_NANDC_REG_BASE - ldr x0, [x0,#:lo12:RK29_NANDC_REG_BASE] + ldr x0, [x0, #:lo12:RK29_NANDC_REG_BASE] bl FlashInit - cbnz w0, .L3188 + mov w20, w0 + cbnz w0, .L3106 bl FlashLoadFactorBbt - cbz w0, .L3189 + cbz w0, .L3107 bl FlashMakeFactorBbt -.L3189: +.L3107: add x0, x19, :lo12:.LANCHOR2 - ldr x0, [x0,2216] + ldr x0, [x0, 2216] bl FlashReadIdbDataRaw - cbz w0, .L3190 - mov w1, 0 + cbz w0, .L3108 mov w2, 16 + mov w1, 0 add x0, x29, 32 bl FlashReadFacBbtData + ldr w2, [x29, 32] mov w0, 0 - ldr w2, [x29,32] - mov w1, w0 - mov w4, 1 -.L3192: - lsl w3, w4, w1 - add w1, w1, 1 - tst w3, w2 - cset w3, ne - cmp w1, 16 - add w0, w0, w3 - bne .L3192 - cmp w0, 6 - bhi .L3193 - adrp x0, .LANCHOR0+89 - strb w1, [x0,#:lo12:.LANCHOR0+89] - b .L3194 -.L3193: mov w1, 0 mov w4, 1 -.L3196: +.L3110: lsl w3, w4, w1 add w1, w1, 1 tst w3, w2 - cset w3, ne - cmp w1, 24 - add w0, w0, w3 - bne .L3196 - cmp w0, 17 - adrp x0, .LANCHOR0 - add x0, x0, :lo12:.LANCHOR0 - bls .L3215 - mov w1, 36 -.L3215: - strb w1, [x0,89] -.L3194: - adrp x1, .LANCHOR0+89 + cinc w0, w0, ne + cmp w1, 16 + bne .L3110 + cmp w0, 6 + bhi .L3111 + adrp x0, .LANCHOR0+89 + strb w1, [x0, #:lo12:.LANCHOR0+89] +.L3112: add x0, x19, :lo12:.LANCHOR2 - ldrb w1, [x1,#:lo12:.LANCHOR0+89] - strh w1, [x0,1218] -.L3190: - adrp x0, .LC47 + adrp x1, .LANCHOR0+89 + ldrb w1, [x1, #:lo12:.LANCHOR0+89] + strh w1, [x0, 1218] +.L3108: adrp x1, .LC144 add x1, x1, :lo12:.LC144 - add x0, x0, :lo12:.LC47 add x19, x19, :lo12:.LANCHOR2 + adrp x0, .LC48 + add x0, x0, :lo12:.LC48 bl printk add x0, x19, 1192 bl FtlConstantsInit bl FtlVariablesInit - ldrh w0, [x19,2280] + ldrh w0, [x19, 2280] mov w19, 1 bl FtlFreeSysBlkQueueInit -.L3198: +.L3116: bl FtlLoadBbt - cbz w0, .L3199 -.L3217: + cbz w0, .L3117 +.L3136: bl FtlLowFormat cmp w19, 3 - bhi .L3218 + bls .L3118 + mov w20, -1 + b .L3103 +.L3111: + mov w1, 0 + mov w4, 1 +.L3114: + lsl w3, w4, w1 + add w1, w1, 1 + tst w3, w2 + cinc w0, w0, ne + cmp w1, 24 + bne .L3114 + cmp w0, 17 + adrp x0, .LANCHOR0 + add x0, x0, :lo12:.LANCHOR0 + bhi .L3115 +.L3134: + strb w1, [x0, 89] + b .L3112 +.L3115: + mov w1, 36 + b .L3134 +.L3118: add w19, w19, 1 - b .L3198 -.L3218: - mov w0, -1 - b .L3187 -.L3199: + b .L3116 +.L3117: bl FtlSysBlkInit - cbnz w0, .L3217 - adrp x1, .LANCHOR1+3448 - mov w2, 1 - str w2, [x1,#:lo12:.LANCHOR1+3448] -.L3187: - ldr x19, [sp,16] - ldp x29, x30, [sp], 48 - ret + cbnz w0, .L3136 + adrp x0, .LANCHOR1+3448 + mov w1, 1 + str w1, [x0, #:lo12:.LANCHOR1+3448] + b .L3103 .size FtlReInitForSDUpdata, .-FtlReInitForSDUpdata .align 2 .global Ftl_gc_temp_data_write_back .type Ftl_gc_temp_data_write_back, %function Ftl_gc_temp_data_write_back: - stp x29, x30, [sp, -64]! + stp x29, x30, [sp, -48]! add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x19, .LANCHOR2 - str x23, [sp,48] - add x0, x19, :lo12:.LANCHOR2 - stp x21, x22, [sp,32] - ldr w1, [x0,2928] - cbz w1, .L3220 -.L3223: + str x21, [sp, 32] + adrp x21, .LANCHOR2 + add x0, x21, :lo12:.LANCHOR2 + stp x19, x20, [sp, 16] + ldr w1, [x0, 2928] + cbz w1, .L3138 +.L3141: mov w0, 0 - b .L3221 -.L3220: - ldrb w0, [x0,1220] - adrp x22, .LANCHOR5 - cbz w0, .L3222 - add x0, x22, :lo12:.LANCHOR5 - ldr w0, [x0,1168] - tbz x0, 0, .L3222 - adrp x0, .LANCHOR4+884 - ldrh w0, [x0,#:lo12:.LANCHOR4+884] - cbnz w0, .L3223 -.L3222: - add x0, x19, :lo12:.LANCHOR2 - add x1, x22, :lo12:.LANCHOR5 +.L3137: + ldp x19, x20, [sp, 16] + ldr x21, [sp, 32] + ldp x29, x30, [sp], 48 + ret +.L3138: + ldrb w0, [x0, 1220] + adrp x12, .LANCHOR4 + cbz w0, .L3140 + add x0, x12, :lo12:.LANCHOR4 + ldr w1, [x0, 1680] + tbz x1, 0, .L3140 + ldrh w0, [x0, 884] + cbnz w0, .L3141 +.L3140: + add x11, x21, :lo12:.LANCHOR2 + add x19, x12, :lo12:.LANCHOR4 + mov w3, 0 mov w2, 0 - mov w21, 0 - mov w3, w2 - mov w23, 56 - ldr x0, [x0,2528] - ldr w1, [x1,1168] + mov x20, x11 + ldr w1, [x19, 1680] + ldr x0, [x11, 2528] bl FlashProgPages -.L3224: - add x20, x22, :lo12:.LANCHOR5 - ldr w1, [x20,1168] - cmp w21, w1 - bcs .L3234 - add x2, x19, :lo12:.LANCHOR2 - umull x0, w21, w23 - ldr x4, [x2,2528] - add x1, x4, x0 - ldr w4, [x4,x0] - cmn w4, #1 - ldr x3, [x1,16] - bne .L3225 - adrp x1, .LANCHOR4 - ldr x3, [x2,2712] - add x1, x1, :lo12:.LANCHOR4 - ldrh w5, [x1,880] - strh wzr, [x3,x5,lsl 1] - strh w4, [x1,880] - ldr w1, [x20,736] - add w1, w1, 1 - str w1, [x20,736] - ldr x1, [x2,2528] - add x0, x1, x0 - ldr w0, [x0,4] + mov w13, 0 + mov w14, 56 +.L3142: + ldr w1, [x19, 1680] + cmp w13, w1 + bcc .L3144 + add x21, x21, :lo12:.LANCHOR2 + ldr x0, [x21, 2528] + bl FtlGcBufFree + str wzr, [x19, 1680] + ldrh w0, [x19, 884] + cbnz w0, .L3141 + mov w0, 1 + bl FtlGcFreeTempBlock + b .L3152 +.L3144: + umull x1, w13, w14 + ldr x2, [x20, 2528] + add x3, x2, x1 + ldr w2, [x2, x1] + ldr x0, [x3, 16] + cmn w2, #1 + bne .L3143 + ldrh w3, [x19, 880] + ldr x0, [x20, 2712] + strh wzr, [x0, x3, lsl 1] + strh w2, [x19, 880] + ldr w0, [x19, 1248] + add w0, w0, 1 + str w0, [x19, 1248] + ldr x0, [x20, 2528] + add x0, x0, x1 + ldr w0, [x0, 4] lsr w0, w0, 10 bl FtlBbmMapBadBlock bl FtlBbmTblFlush bl FtlGcPageVarInit - b .L3233 -.L3225: - ldr w0, [x3,12] - add w21, w21, 1 - ldr w1, [x1,4] - ldr w2, [x3,8] - uxth w21, w21 +.L3152: + mov w0, 1 + b .L3137 +.L3143: + ldp w2, w0, [x0, 8] + ldr w1, [x3, 4] bl FtlGcUpdatePage - b .L3224 -.L3234: - add x19, x19, :lo12:.LANCHOR2 - ldr x0, [x19,2528] - bl FtlGcBufFree - str wzr, [x20,1168] - adrp x0, .LANCHOR4+884 - ldrh w0, [x0,#:lo12:.LANCHOR4+884] - cbnz w0, .L3223 - mov w0, 1 - bl FtlGcFreeTempBlock -.L3233: - mov w0, 1 -.L3221: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldr x23, [sp,48] - ldp x29, x30, [sp], 64 - ret + add w13, w13, 1 + and w13, w13, 65535 + b .L3142 .size Ftl_gc_temp_data_write_back, .-Ftl_gc_temp_data_write_back .align 2 .global Ftl_get_new_temp_ppa @@ -20527,37 +20062,35 @@ Ftl_gc_temp_data_write_back: Ftl_get_new_temp_ppa: stp x29, x30, [sp, -32]! add x29, sp, 0 - str x19, [sp,16] + stp x19, x20, [sp, 16] adrp x19, .LANCHOR4 add x0, x19, :lo12:.LANCHOR4 add x1, x0, 880 - ldrh w2, [x0,880] + ldrh w2, [x0, 880] mov w0, 65535 cmp w2, w0 - beq .L3236 - ldrh w0, [x1,4] - cbnz w0, .L3237 -.L3236: + beq .L3154 + ldrh w0, [x1, 4] + cbnz w0, .L3155 +.L3154: bl FtlCacheWriteBack + add x20, x19, :lo12:.LANCHOR4 mov w0, 0 bl FtlGcFreeTempBlock - add x0, x19, :lo12:.LANCHOR4 - add x0, x0, 880 - strb wzr, [x0,8] + add x0, x20, 880 + strb wzr, [x0, 8] bl allocate_data_superblock - adrp x0, .LANCHOR5 - add x0, x0, :lo12:.LANCHOR5 - strh wzr, [x0,1200] - strh wzr, [x0,1202] + strh wzr, [x20, 1712] + strh wzr, [x20, 1714] bl l2p_flush mov w0, 0 bl FtlEctTblFlush bl FtlVpcTblFlush -.L3237: +.L3155: add x0, x19, :lo12:.LANCHOR4 add x0, x0, 880 bl get_new_active_ppa - ldr x19, [sp,16] + ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 32 ret .size Ftl_get_new_temp_ppa, .-Ftl_get_new_temp_ppa @@ -20565,326 +20098,313 @@ Ftl_get_new_temp_ppa: .global ftl_read .type ftl_read, %function ftl_read: - sub sp, sp, #224 - mov w4, w0 - adrp x0, .LANCHOR1+3448 - stp x29, x30, [sp,16] + sub sp, sp, #208 + adrp x4, .LANCHOR1+3448 + stp x29, x30, [sp, 16] add x29, sp, 16 - stp x21, x22, [sp,48] - ldr w21, [x0,#:lo12:.LANCHOR1+3448] - mov w0, -1 - stp x19, x20, [sp,32] - stp x23, x24, [sp,64] - stp x25, x26, [sp,80] - stp x27, x28, [sp,96] + stp x21, x22, [sp, 48] + stp x19, x20, [sp, 32] + ldr w21, [x4, #:lo12:.LANCHOR1+3448] + stp x23, x24, [sp, 64] + stp x25, x26, [sp, 80] cmp w21, 1 - bne .L3239 - cmp w4, 16 - mov x24, x3 - mov w25, w2 - mov w20, w1 - bne .L3240 - add w0, w1, 256 - mov w1, w2 + stp x27, x28, [sp, 96] + bne .L3182 + mov x23, x3 + mov w24, w2 + mov w19, w1 + cmp w0, 16 + bne .L3159 mov x2, x3 + mov w1, w24 + add w0, w19, 256 bl FtlVendorPartRead - b .L3239 -.L3240: - adrp x19, .LANCHOR2 - add x1, x19, :lo12:.LANCHOR2 - ldr w2, [x1,1224] - cmp w20, w2 - bcs .L3263 - cmp w25, w2 - bhi .L3263 - add w0, w20, w25 - str w0, [x29,188] - mov w0, -1 - ldr w3, [x29,188] - cmp w3, w2 - bhi .L3239 - adrp x22, .LANCHOR5 - ldrh w0, [x1,2350] - add x2, x22, :lo12:.LANCHOR5 - sub w26, w3, #1 - udiv w28, w20, w0 - sub w21, w21, w28 - udiv w26, w26, w0 - ldr w0, [x2,1156] - add w0, w25, w0 - str w0, [x2,1156] - ldr w0, [x1,2424] - add w21, w21, w26 - add w0, w21, w0 - str w0, [x1,2424] - mov w0, w28 + mov w25, w0 +.L3157: + mov w0, w25 + ldp x19, x20, [sp, 32] + ldp x21, x22, [sp, 48] + ldp x23, x24, [sp, 64] + ldp x25, x26, [sp, 80] + ldp x27, x28, [sp, 96] + ldp x29, x30, [sp, 16] + add sp, sp, 208 + ret +.L3159: + adrp x20, .LANCHOR2 + add x0, x20, :lo12:.LANCHOR2 + ldr w1, [x0, 1224] + cmp w19, w1 + bcs .L3182 + cmp w2, w1 + bhi .L3182 + add w2, w19, w2 + str w2, [x29, 156] + cmp w1, w2 + bcc .L3182 + ldrh w1, [x0, 2350] + sub w26, w2, #1 + adrp x7, .LANCHOR4 + add x2, x7, :lo12:.LANCHOR4 + udiv w27, w19, w1 + udiv w26, w26, w1 + sub w21, w21, w27 + add w1, w21, w26 + str w1, [x29, 172] + ldr w1, [x2, 1668] + add w1, w1, w24 + str w1, [x2, 1668] + ldr w2, [x29, 172] + ldr w1, [x0, 2424] + add w1, w1, w2 + str w1, [x0, 2424] mov w1, w26 + mov w0, w27 bl FtlCacheMetchLpa - str x22, [x29,120] - cbz w0, .L3241 + str x7, [x29, 112] + cbz w0, .L3160 bl FtlCacheWriteBack -.L3241: - mov w27, 0 +.L3160: + mov w22, w27 adrp x0, .LC57 + mov w28, 0 add x0, x0, :lo12:.LC57 - mov w22, w28 - str w27, [x29,184] - mov w23, w27 - str w27, [x29,172] - str x0, [x29,112] -.L3242: - cbz w21, .L3286 + mov w25, 0 + str x0, [x29, 104] + stp wzr, wzr, [x29, 164] +.L3161: + ldr w0, [x29, 172] + cbnz w0, .L3178 + add x20, x20, :lo12:.LANCHOR2 + ldrh w0, [x20, 2486] + cbz w0, .L3157 + mov w1, 1 + mov w0, 0 + bl ftl_do_gc + b .L3157 +.L3178: + mov w2, 0 + add x1, x29, 188 mov w0, w22 - add x1, x29, 204 - mov w2, 0 bl log2phys - ldr w3, [x29,204] - cmn w3, #1 - bne .L3284 - mov w3, 0 -.L3243: - add x0, x19, :lo12:.LANCHOR2 - ldrh w0, [x0,2350] - cmp w3, w0 - bcs .L3247 - madd w0, w22, w0, w3 - cmp w0, w20 - bcc .L3245 - ldr w1, [x29,188] - cmp w0, w1 - bcs .L3245 - sub w0, w0, w20 - mov w1, 0 - ubfiz x0, x0, 9, 23 - mov w2, 512 - add x0, x24, x0 - str x3, [x29,176] - bl ftl_memset - ldr x3, [x29,176] -.L3245: - add w3, w3, 1 - b .L3243 -.L3284: - add x2, x19, :lo12:.LANCHOR2 - mov w0, 56 - cmp w22, w28 - umull x1, w23, w0 - ldr x0, [x2,2520] - add x0, x0, x1 - str w3, [x0,4] - ldrh w0, [x2,2350] - bne .L3248 - ldr x3, [x2,2520] - ldr x2, [x2,2616] - add x3, x3, x1 - str x2, [x3,8] - udiv w2, w20, w0 - msub w2, w2, w0, w20 - str w2, [x29,144] - sub w2, w0, w2 - cmp w2, w25 - csel w2, w2, w25, ls - str w2, [x29,184] - cmp w2, w0 - bne .L3249 - str x24, [x3,8] - b .L3249 -.L3248: - cmp w22, w26 - bne .L3250 - ldr x3, [x2,2520] - ldr x2, [x2,2624] - add x3, x3, x1 - ldr w4, [x29,188] - str x2, [x3,8] - mul w2, w22, w0 - sub w27, w4, w2 - cmp w27, w0 - bne .L3249 - sub w2, w2, w20 - ubfiz x2, x2, 9, 23 - add x2, x24, x2 - str x2, [x3,8] - b .L3249 -.L3250: - ldr x2, [x2,2520] - mul w0, w22, w0 - add x2, x2, x1 - sub w0, w0, w20 - ubfiz x0, x0, 9, 23 - add x0, x24, x0 - str x0, [x2,8] -.L3249: - add x2, x19, :lo12:.LANCHOR2 - ldr x0, [x2,2520] - add x1, x0, x1 - ldrh w0, [x2,2356] - ldr x2, [x2,2648] - mul w0, w23, w0 - str w22, [x1,24] - add w23, w23, 1 - and x0, x0, 4294967292 - add x0, x2, x0 - str x0, [x1,16] -.L3247: - subs w21, w21, #1 + ldr w4, [x29, 188] + cmn w4, #1 + bne .L3162 + add x5, x20, :lo12:.LANCHOR2 + mov w21, 0 +.L3163: + ldrh w0, [x5, 2350] + cmp w21, w0 + bcc .L3165 +.L3166: + ldr w0, [x29, 172] add w22, w22, 1 - beq .L3251 - add x0, x19, :lo12:.LANCHOR2 - ldrh w0, [x0,2276] - cmp w23, w0, lsl 3 - bne .L3242 -.L3251: - cbz w23, .L3242 - add x0, x19, :lo12:.LANCHOR2 - mov w1, w23 + subs w0, w0, #1 + str w0, [x29, 172] + beq .L3170 + add x0, x20, :lo12:.LANCHOR2 + ldrh w0, [x0, 2276] + cmp w28, w0, lsl 3 + bne .L3161 +.L3170: + cbz w28, .L3161 + add x8, x20, :lo12:.LANCHOR2 + mov w1, w28 mov w2, 0 - ldr x0, [x0,2520] + mov x21, x8 + ldr x0, [x8, 2520] bl FlashReadPages - str xzr, [x29,176] - ldr x0, [x29,144] - ubfiz x0, x0, 9, 23 - str x0, [x29,136] - ldr w0, [x29,184] + ldr w0, [x29, 164] lsl w0, w0, 9 - str w0, [x29,168] - lsl w0, w27, 9 - str w0, [x29,132] - ldr x0, [x29,120] - add x0, x0, :lo12:.LANCHOR5 - str x0, [x29,160] -.L3253: - ldr w0, [x29,176] - cmp w23, w0 - bls .L3287 - ldr x0, [x29,176] - add x2, x19, :lo12:.LANCHOR2 - mov x1, 56 - mul x8, x0, x1 - ldr x0, [x2,2520] - add x0, x0, x8 - ldr w1, [x0,24] - cmp w1, w28 - bne .L3254 - ldr x1, [x0,8] - ldr x0, [x2,2616] + str w0, [x29, 132] + ldr w0, [x29, 160] + lsl w0, w0, 9 + str x0, [x29, 136] + ldr w0, [x29, 168] + lsl w0, w0, 9 + str w0, [x29, 152] + mov w0, 56 + umull x0, w28, w0 + mov x28, 0 + str x0, [x29, 120] + ldr x0, [x29, 112] + add x0, x0, :lo12:.LANCHOR4 + str x0, [x29, 144] +.L3177: + ldr x0, [x21, 2520] + add x0, x0, x28 + ldr w1, [x0, 24] + cmp w27, w1 + bne .L3172 + ldr x1, [x0, 8] + ldr x0, [x21, 2616] cmp x1, x0 - bne .L3255 - ldr x2, [x29,136] - mov x0, x24 - str x8, [x29,104] - add x1, x1, x2 - ldr w2, [x29,168] - b .L3285 -.L3254: - cmp w1, w26 - bne .L3255 - ldr x1, [x0,8] - ldr x0, [x2,2624] - cmp x1, x0 - bne .L3255 - ldrh w0, [x2,2350] - ldr w2, [x29,132] - str x8, [x29,104] - mul w0, w26, w0 - sub w0, w0, w20 - ubfiz x0, x0, 9, 23 - add x0, x24, x0 -.L3285: + bne .L3173 + ldr x0, [x29, 136] + ldr w2, [x29, 152] + add x1, x1, x0 + mov x0, x23 +.L3197: bl ftl_memcpy - ldr x8, [x29,104] -.L3255: - add x0, x19, :lo12:.LANCHOR2 - ldr x0, [x0,2520] - add x2, x0, x8 - ldr w1, [x0,x8] - cmn w1, #1 - bne .L3256 - ldr x0, [x29,160] - str w1, [x29,172] - add x3, x0, 640 - ldr w0, [x0,712] - add w0, w0, 1 - str w0, [x3,72] -.L3256: - ldr x0, [x2,16] - ldr w1, [x2,24] - ldr w0, [x0,8] - cmp w1, w0 - beq .L3257 - ldr x0, [x29,160] - str x8, [x29,104] - add x1, x0, 640 - ldr w0, [x0,712] - add w0, w0, 1 - str w0, [x1,72] - ldr x7, [x2,8] - ldr x6, [x2,16] - ldr w0, [x7,4] - str w0, [sp] - ldr x0, [x29,112] - ldr w1, [x2,24] - ldr w3, [x6] - ldr w4, [x6,4] - ldr w5, [x6,8] - ldr w2, [x2,4] - ldr w6, [x6,12] - ldr w7, [x7] +.L3173: + ldr x1, [x21, 2520] + add x0, x1, x28 + ldr w2, [x1, x28] + cmn w2, #1 + bne .L3174 + ldr x1, [x29, 144] + mov w25, w2 + add x3, x1, 1152 + ldr w1, [x1, 1224] + add w1, w1, 1 + str w1, [x3, 72] +.L3174: + ldr x1, [x0, 16] + ldr w2, [x0, 24] + ldr w1, [x1, 8] + cmp w2, w1 + beq .L3175 + ldr x1, [x29, 144] + add x2, x1, 1152 + ldr w1, [x1, 1224] + add w1, w1, 1 + str w1, [x2, 72] + ldp x2, x1, [x0, 8] + ldr w3, [x2, 4] + str w3, [sp] + ldp w3, w4, [x1] + ldp w5, w6, [x1, 8] + ldr w7, [x2] + ldr w1, [x0, 24] + ldr w2, [x0, 4] + ldr x0, [x29, 104] bl printk - ldr x8, [x29,104] -.L3257: - add x0, x19, :lo12:.LANCHOR2 - ldr x0, [x0,2520] - add x1, x0, x8 - ldr w0, [x0,x8] +.L3175: + ldr x0, [x21, 2520] + add x1, x0, x28 + ldr w0, [x0, x28] cmp w0, 256 - bne .L3258 - ldr w0, [x1,4] - lsr x0, x0, 10 + bne .L3176 + ldr w0, [x1, 4] + lsr w0, w0, 10 bl P2V_block_in_plane bl FtlGcRefreshBlock -.L3258: - ldr x0, [x29,176] - add x0, x0, 1 - str x0, [x29,176] - b .L3253 -.L3287: - mov w23, 0 - b .L3242 -.L3286: - add x19, x19, :lo12:.LANCHOR2 - ldrh w0, [x19,2486] - cbz w0, .L3261 - mov w0, w21 - mov w1, 1 - bl ftl_do_gc -.L3261: - ldr w0, [x29,172] - b .L3239 -.L3263: - mov w0, -1 -.L3239: - 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, 224 - ret +.L3176: + ldr x0, [x29, 120] + add x28, x28, 56 + cmp x0, x28 + bne .L3177 + mov w28, 0 + b .L3161 +.L3165: + madd w0, w22, w0, w21 + cmp w19, w0 + bhi .L3164 + ldr w1, [x29, 156] + cmp w1, w0 + bls .L3164 + sub w0, w0, w19 + str x5, [x29, 144] + lsl w0, w0, 9 + mov w2, 512 + mov w1, 0 + add x0, x23, x0 + bl ftl_memset + ldr x5, [x29, 144] +.L3164: + add w21, w21, 1 + b .L3163 +.L3162: + add x1, x20, :lo12:.LANCHOR2 + mov w0, 56 + cmp w22, w27 + umull x2, w28, w0 + ldr x0, [x1, 2520] + add x0, x0, x2 + str w4, [x0, 4] + ldrh w0, [x1, 2350] + bne .L3167 + ldr x4, [x1, 2520] + ldr x1, [x1, 2616] + add x4, x4, x2 + str x1, [x4, 8] + udiv w1, w19, w0 + msub w1, w1, w0, w19 + str w1, [x29, 160] + sub w1, w0, w1 + cmp w24, w1 + csel w1, w24, w1, ls + str w1, [x29, 168] + cmp w1, w0 + bne .L3168 + str x23, [x4, 8] +.L3168: + add x1, x20, :lo12:.LANCHOR2 + ldr x0, [x1, 2520] + add x2, x0, x2 + ldrh w0, [x1, 2356] + ldr x1, [x1, 2648] + str w22, [x2, 24] + mul w0, w0, w28 + add w28, w28, 1 + and x0, x0, 4294967292 + add x0, x1, x0 + str x0, [x2, 16] + b .L3166 +.L3167: + cmp w22, w26 + bne .L3169 + ldr x4, [x1, 2520] + ldr x1, [x1, 2624] + add x4, x4, x2 + ldr w3, [x29, 156] + str x1, [x4, 8] + mul w1, w22, w0 + sub w3, w3, w1 + str w3, [x29, 164] + cmp w0, w3 + bne .L3168 + sub w1, w1, w19 + lsl w1, w1, 9 + add x1, x23, x1 + str x1, [x4, 8] + b .L3168 +.L3169: + ldr x1, [x1, 2520] + mul w0, w0, w22 + add x1, x1, x2 + sub w0, w0, w19 + lsl w0, w0, 9 + add x0, x23, x0 + str x0, [x1, 8] + b .L3168 +.L3172: + cmp w26, w1 + bne .L3173 + ldr x1, [x0, 8] + ldr x0, [x21, 2624] + cmp x1, x0 + bne .L3173 + ldrh w0, [x21, 2350] + ldr w2, [x29, 132] + mul w0, w0, w26 + sub w0, w0, w19 + lsl w0, w0, 9 + add x0, x23, x0 + b .L3197 +.L3182: + mov w25, -1 + b .L3157 .size ftl_read, .-ftl_read .align 2 .global ftl_vendor_read .type ftl_vendor_read, %function ftl_vendor_read: stp x29, x30, [sp, -16]! - mov w5, w0 - mov w4, w1 - add x29, sp, 0 mov x3, x2 - mov w1, w5 - mov w2, w4 + mov w2, w1 + mov w1, w0 + add x29, sp, 0 mov w0, 16 bl ftl_read ldp x29, x30, [sp], 16 @@ -20895,11 +20415,10 @@ ftl_vendor_read: .type ftl_sys_read, %function ftl_sys_read: stp x29, x30, [sp, -16]! - mov w4, w1 mov x3, x2 - add x29, sp, 0 + mov w2, w1 add w1, w0, 256 - mov w2, w4 + add x29, sp, 0 mov w0, 16 bl ftl_read ldp x29, x30, [sp], 16 @@ -20910,641 +20429,617 @@ ftl_sys_read: .type FtlInit, %function FtlInit: stp x29, x30, [sp, -64]! - mov w0, -1 adrp x1, .LC144 - add x29, sp, 0 - stp x23, x24, [sp,48] - adrp x23, .LANCHOR1 add x1, x1, :lo12:.LC144 - add x23, x23, :lo12:.LANCHOR1 - stp x21, x22, [sp,32] - stp x19, x20, [sp,16] - adrp x22, .LANCHOR2 - adrp x20, .LANCHOR5 - add x21, x22, :lo12:.LANCHOR2 - str w0, [x23,3448] - add x20, x20, :lo12:.LANCHOR5 - adrp x0, .LC47 - add x0, x0, :lo12:.LC47 - str wzr, [x21,2928] - str wzr, [x20,1404] + mov w0, -1 + add x29, sp, 0 + stp x19, x20, [sp, 16] + adrp x20, .LANCHOR4 + stp x21, x22, [sp, 32] + add x20, x20, :lo12:.LANCHOR4 + adrp x21, .LANCHOR1 + adrp x19, .LANCHOR2 + add x21, x21, :lo12:.LANCHOR1 + add x19, x19, :lo12:.LANCHOR2 + str x23, [sp, 48] + str wzr, [x20, 1916] + str w0, [x21, 3448] + adrp x0, .LC48 + str wzr, [x19, 2928] + add x0, x0, :lo12:.LC48 bl printk - add x0, x21, 1192 + add x0, x19, 1192 bl FtlConstantsInit bl FtlMemInit bl FtlVariablesInit - ldrh w0, [x21,2280] + ldrh w0, [x19, 2280] bl FtlFreeSysBlkQueueInit bl FtlLoadBbt - cbz w0, .L3291 - adrp x0, .LC162 - add x0, x0, :lo12:.LC162 - b .L3305 -.L3291: - bl FtlSysBlkInit - mov w19, w0 - cbz w0, .L3293 - adrp x0, .LC163 - add x0, x0, :lo12:.LC163 -.L3305: + cbz w0, .L3203 adrp x1, .LANCHOR3 add x1, x1, :lo12:.LANCHOR3 + adrp x0, .LC162 add x1, x1, 256 + add x0, x0, :lo12:.LC162 +.L3218: bl printk - b .L3292 -.L3293: - mov w1, 1 - str w1, [x23,3448] - bl ftl_do_gc - adrp x1, .LANCHOR4 - add x0, x1, :lo12:.LANCHOR4 - mov x24, x1 - ldrh w0, [x0,776] - cmp w0, 15 - bhi .L3294 - mov w23, 65535 - add w21, w0, 2 -.L3297: - ldrh w0, [x20,592] - cmp w0, w23 - bne .L3295 - add x0, x22, :lo12:.LANCHOR2 - ldrh w0, [x0,2472] - cmp w0, w23 - bne .L3295 - and w0, w19, 63 - bl List_get_gc_head_node - bl FtlGcRefreshBlock -.L3295: - mov w0, 1 - mov w1, w0 - bl ftl_do_gc +.L3204: mov w0, 0 - mov w1, 1 - bl ftl_do_gc - add x0, x24, :lo12:.LANCHOR4 - ldrh w0, [x0,776] - cmp w0, w21 - bhi .L3292 - add w19, w19, 1 - cmp w19, 4096 - bne .L3297 - b .L3292 -.L3294: - ldrb w0, [x21,1220] - cbz w0, .L3292 - mov w19, 128 -.L3299: - mov w0, 1 - mov w1, w0 - bl ftl_do_gc - subs w19, w19, #1 - bne .L3299 -.L3292: - mov w0, 0 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] + ldr x23, [sp, 48] + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] ldp x29, x30, [sp], 64 ret +.L3203: + bl FtlSysBlkInit + cbz w0, .L3205 + adrp x1, .LANCHOR3 + add x1, x1, :lo12:.LANCHOR3 + adrp x0, .LC163 + add x1, x1, 256 + add x0, x0, :lo12:.LC163 + b .L3218 +.L3205: + mov w1, 1 + str w1, [x21, 3448] + bl ftl_do_gc + ldrh w0, [x20, 776] + cmp w0, 15 + bhi .L3206 + add w22, w0, 2 + mov w21, 0 + mov w23, 65535 +.L3209: + ldrh w0, [x20, 1104] + cmp w0, w23 + bne .L3207 + ldrh w0, [x19, 2472] + cmp w0, w23 + bne .L3207 + and w0, w21, 63 + bl List_get_gc_head_node + bl FtlGcRefreshBlock +.L3207: + mov w1, 1 + mov w0, w1 + bl ftl_do_gc + mov w1, 1 + mov w0, 0 + bl ftl_do_gc + ldrh w0, [x20, 776] + cmp w0, w22 + bhi .L3204 + add w21, w21, 1 + cmp w21, 4096 + bne .L3209 + b .L3204 +.L3206: + ldrb w0, [x19, 1220] + cbz w0, .L3204 + mov w19, 128 +.L3211: + mov w1, 1 + mov w0, w1 + bl ftl_do_gc + subs w19, w19, #1 + bne .L3211 + b .L3204 .size FtlInit, .-FtlInit .align 2 .global ftl_write .type ftl_write, %function ftl_write: - stp x29, x30, [sp, -288]! - mov w4, w0 - mov w0, 0 + stp x29, x30, [sp, -256]! add x29, sp, 0 - stp x21, x22, [sp,32] - adrp x22, .LANCHOR2 - stp x23, x24, [sp,48] - mov w24, w2 - add x2, x22, :lo12:.LANCHOR2 - stp x25, x26, [sp,64] - stp x19, x20, [sp,16] - stp x27, x28, [sp,80] + stp x19, x20, [sp, 16] + adrp x20, .LANCHOR2 + stp x25, x26, [sp, 64] + mov w25, w2 + add x2, x20, :lo12:.LANCHOR2 + stp x23, x24, [sp, 48] + stp x21, x22, [sp, 32] mov w23, w1 - mov x25, x3 - ldr w1, [x2,2928] - cbnz w1, .L3307 + stp x27, x28, [sp, 80] + ldr w1, [x2, 2928] + cbnz w1, .L3261 adrp x1, .LANCHOR1 - str x1, [x29,176] + mov x24, x3 add x3, x1, :lo12:.LANCHOR1 - ldr w3, [x3,3448] + str x1, [x29, 144] + ldr w3, [x3, 3448] cmp w3, 1 - bne .L3307 - cmp w4, 16 - bne .L3308 + bne .L3261 + cmp w0, 16 + bne .L3221 + mov x2, x24 + mov w1, w25 add w0, w23, 256 - mov w1, w24 - mov x2, x25 bl FtlVendorPartWrite - b .L3307 -.L3308: - ldr w1, [x2,1224] +.L3219: + 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], 256 + ret +.L3221: + ldr w1, [x2, 1224] cmp w23, w1 - bcs .L3350 - cmp w24, w1 - bhi .L3350 - add w3, w23, w24 - mov w0, -1 - cmp w3, w1 - bhi .L3307 - adrp x4, .LANCHOR5 - ldrh w1, [x2,2350] - add x21, x4, :lo12:.LANCHOR5 - sub w3, w3, #1 - mov w0, 2048 - str x4, [x29,216] - udiv w26, w23, w1 - cmp w24, w1, lsl 1 - str w0, [x21,1408] - udiv w0, w3, w1 - ldr w3, [x2,2496] - str w0, [x29,208] - sub w27, w0, w26 - add w20, w27, 1 - ldr w0, [x2,2408] - add w0, w20, w0 - str w0, [x2,2408] - ldr w0, [x21,1152] - add w0, w24, w0 - str w0, [x21,1152] + bcs .L3264 + cmp w25, w1 + bhi .L3264 + add w0, w23, w25 + cmp w1, w0 + bcc .L3264 + adrp x3, .LANCHOR4 + add x21, x3, :lo12:.LANCHOR4 + mov w1, 2048 + sub w0, w0, #1 + ldr w4, [x2, 2496] + str w1, [x21, 1920] + ldrh w1, [x2, 2350] + str x3, [x29, 152] + cmp w25, w1, lsl 1 + udiv w0, w0, w1 + udiv w27, w23, w1 + str w0, [x29, 172] + sub w28, w0, w27 + ldr w0, [x2, 2408] + add w26, w28, 1 + add w0, w0, w26 + str w0, [x2, 2408] + ldr w0, [x21, 1664] + add w0, w0, w25 + str w0, [x21, 1664] cset w0, cs - str w0, [x29,212] - cbz w3, .L3310 - mov w0, 56 - sub w3, w3, #1 - umull x3, w3, w0 - ldr x0, [x2,2560] - add x3, x0, x3 - ldr w0, [x3,24] - cmp w26, w0 - bne .L3311 - ldr w0, [x2,2416] + str w0, [x29, 188] + cbz w4, .L3223 + ldr x0, [x2, 2560] + sub w4, w4, #1 + mov w3, 56 + umaddl x4, w4, w3, x0 + ldr w0, [x4, 24] + cmp w27, w0 + bne .L3224 + ldr w0, [x2, 2416] + ldr x3, [x4, 8] add w0, w0, 1 - str w0, [x2,2416] - ldr w0, [x21,1412] + str w0, [x2, 2416] + ldr w0, [x21, 1924] add w0, w0, 1 - str w0, [x21,1412] - msub w0, w26, w1, w23 + str w0, [x21, 1924] + msub w0, w27, w1, w23 sub w1, w1, w0 - ubfiz x0, x0, 9, 23 - cmp w1, w24 - csel w19, w1, w24, ls - ldr x1, [x3,8] - lsl w20, w19, 9 - add x0, x1, x0 - mov w2, w20 - mov x1, x25 + cmp w25, w1 + lsl w0, w0, 9 + csel w19, w25, w1, ls + add x0, x3, x0 + lsl w22, w19, 9 + mov x1, x24 + mov w2, w22 bl ftl_memcpy - cbnz w27, .L3312 - ldr w0, [x21,1412] + cbnz w28, .L3225 + ldr w0, [x21, 1924] cmp w0, 2 - bgt .L3312 -.L3346: + bgt .L3225 +.L3261: mov w0, 0 - b .L3307 -.L3312: - add x25, x25, x20 - sub w24, w24, w19 + b .L3219 +.L3225: + sub w25, w25, w19 add w23, w23, w19 - add w26, w26, 1 - mov w20, w27 -.L3311: - ldr x0, [x29,216] - add x0, x0, :lo12:.LANCHOR5 - str wzr, [x0,1412] -.L3310: - ldr w1, [x29,208] - mov w0, w26 + add x24, x24, x22 + add w27, w27, 1 + mov w26, w28 +.L3224: + ldr x0, [x29, 152] + add x0, x0, :lo12:.LANCHOR4 + str wzr, [x0, 1924] +.L3223: + ldr w1, [x29, 172] + mov w0, w27 bl FtlCacheMetchLpa - cbz w0, .L3313 + cbz w0, .L3226 bl FtlCacheWriteBack -.L3313: - ldr x0, [x29,216] - adrp x2, .LANCHOR4 - add x1, x2, :lo12:.LANCHOR4 - str w26, [x29,192] - add x0, x0, :lo12:.LANCHOR5 - add x21, x1, 784 - str x2, [x29,128] - str x1, [x29,120] - str x21, [x0,1392] - adrp x0, .LC164 - add x0, x0, :lo12:.LC164 - str x21, [x29,184] - str x0, [x29,104] -.L3314: - cbz w20, .L3378 - ldrh w0, [x21,4] - cbnz w0, .L3315 - ldr x1, [x29,184] - cmp x21, x1 - bne .L3316 - ldr x0, [x29,120] +.L3226: + ldr x0, [x29, 152] + mov w21, w27 + add x0, x0, :lo12:.LANCHOR4 + str x0, [x29, 176] + add x1, x0, 784 + str x1, [x29, 160] + mov x22, x1 + str x1, [x29, 120] + str x1, [x0, 1904] +.L3227: + cbnz w26, .L3255 + ldr w0, [x29, 172] + sub w1, w0, w27 + mov w0, 0 + bl ftl_do_gc + ldr x0, [x29, 152] + add x0, x0, :lo12:.LANCHOR4 + ldrh w0, [x0, 776] + cmp w0, 5 + bls .L3256 + cmp w0, 31 + bhi .L3261 + adrp x0, .LANCHOR0+88 + ldrb w0, [x0, #:lo12:.LANCHOR0+88] + cbnz w0, .L3261 +.L3256: + ldr x0, [x29, 152] + add x20, x20, :lo12:.LANCHOR2 + mov w19, 65535 + mov w22, 128 + add x21, x0, :lo12:.LANCHOR4 +.L3259: + ldrh w0, [x21, 1104] + cmp w0, w19 + bne .L3258 + ldrh w0, [x20, 2472] + cmp w0, w19 + bne .L3258 + ldrh w0, [x20, 2474] + cmp w0, w19 + bne .L3258 + and w0, w26, 7 + bl List_get_gc_head_node + bl FtlGcRefreshBlock +.L3258: + mov w1, 1 + strh w22, [x20, 2482] + mov w0, w1 + strh w22, [x20, 2480] + bl ftl_do_gc + mov w1, 1 + mov w0, 0 + bl ftl_do_gc + ldr w0, [x20, 2928] + cbnz w0, .L3261 + ldrh w0, [x21, 776] + cmp w0, 2 + bhi .L3261 + add w26, w26, 1 + cmp w26, 256 + bne .L3259 + b .L3261 +.L3255: + ldrh w0, [x22, 4] + cbnz w0, .L3228 + ldr x0, [x29, 120] + cmp x22, x0 + bne .L3229 + ldr x0, [x29, 176] add x0, x0, 832 - ldrh w19, [x0,4] - cbnz w19, .L3317 + ldrh w1, [x0, 4] + cbnz w1, .L3230 bl allocate_new_data_superblock - ldr x0, [x29,176] + ldr x0, [x29, 144] add x0, x0, :lo12:.LANCHOR1 - str w19, [x0,3456] -.L3317: - ldr x0, [x29,184] + str wzr, [x0, 3456] +.L3230: + ldr x0, [x29, 160] bl allocate_new_data_superblock - ldr x0, [x29,176] - ldr x1, [x29,120] + ldr x0, [x29, 144] + ldr x1, [x29, 176] add x0, x0, :lo12:.LANCHOR1 - add x21, x1, 832 - ldr w0, [x0,3456] - cbnz w0, .L3318 -.L3319: - ldr x21, [x29,184] - b .L3318 -.L3316: - ldr x1, [x29,176] - add x1, x1, :lo12:.LANCHOR1 - str w0, [x1,3456] - ldr x0, [x29,184] - ldrh w0, [x0,4] - cbnz w0, .L3319 - mov x0, x21 + add x22, x1, 832 + ldr w0, [x0, 3456] + cmp w0, 0 + ldr x0, [x29, 160] + csel x22, x22, x0, ne +.L3231: + ldrh w0, [x22, 4] + cbnz w0, .L3232 + mov x0, x22 bl allocate_new_data_superblock -.L3318: - ldrh w0, [x21,4] - cbnz w0, .L3320 - mov x0, x21 - bl allocate_new_data_superblock -.L3320: - ldr x0, [x29,216] - add x0, x0, :lo12:.LANCHOR5 - str x21, [x0,1392] -.L3315: - add x2, x22, :lo12:.LANCHOR2 - ldrh w1, [x21,4] - str xzr, [x29,200] - ldr w0, [x2,2492] - ldr w2, [x2,2496] - sub w0, w0, w2 +.L3232: + ldr x0, [x29, 176] + str x22, [x0, 1904] +.L3228: + add x1, x20, :lo12:.LANCHOR2 + str wzr, [x29, 184] + ldr w0, [x1, 2492] + ldr w1, [x1, 2496] + sub w0, w0, w1 + ldrh w1, [x22, 4] + cmp w0, w26 + csel w0, w0, w26, ls cmp w1, w0 csel w0, w1, w0, ls - cmp w0, w20 - csel w0, w0, w20, ls - str w0, [x29,156] - ldr w0, [x29,212] + str w0, [x29, 116] + ldr w0, [x29, 188] and w0, w0, 1 - str w0, [x29,116] - add w0, w24, w23 - str w0, [x29,152] -.L3321: - ldr w0, [x29,200] - ldr w2, [x29,156] - ldr w1, [x29,192] - cmp w0, w2 - add w28, w1, w0 - bcs .L3379 - ldrh w1, [x21,4] - cbz w1, .L3354 - ldr w1, [x29,208] - cmp w28, w1 - cset w6, eq - cbz w0, .L3323 - ldr w1, [x29,116] - tst w6, w1 - beq .L3323 - add x1, x22, :lo12:.LANCHOR2 - ldr w2, [x29,152] - ldrh w1, [x1,2350] - msub w2, w28, w1, w2 - cmp w2, w1 - bne .L3354 -.L3323: - add x1, x29, 228 + str w0, [x29, 112] + adrp x0, .LC164 + add x0, x0, :lo12:.LC164 + str x0, [x29, 104] +.L3233: + ldr w1, [x29, 116] + ldr w0, [x29, 184] + cmp w0, w1 + bne .L3251 +.L3234: + ldr w0, [x29, 184] + sub w26, w26, w0 + add x0, x20, :lo12:.LANCHOR2 + ldr w1, [x0, 2496] + ldr w0, [x0, 2492] + cmp w1, w0 + bcs .L3252 + ldr w0, [x29, 188] + cbnz w0, .L3252 + ldrh w0, [x22, 4] + cbz w0, .L3252 +.L3254: + str wzr, [x29, 188] + b .L3227 +.L3229: + ldr x0, [x29, 144] + add x0, x0, :lo12:.LANCHOR1 + str wzr, [x0, 3456] + ldr x0, [x29, 120] + ldrh w0, [x0, 4] + cbnz w0, .L3268 + mov x0, x22 + bl allocate_new_data_superblock + b .L3231 +.L3268: + ldr x22, [x29, 160] + b .L3232 +.L3251: + ldrh w0, [x22, 4] + cbz w0, .L3234 + ldr w0, [x29, 172] + cmp w0, w21 + ldr w0, [x29, 112] + cset w3, eq + tst w3, w0 + beq .L3235 + ldr w0, [x29, 184] + cbz w0, .L3235 + add x0, x20, :lo12:.LANCHOR2 + ldrh w1, [x0, 2350] + add w0, w23, w25 + msub w0, w21, w1, w0 + cmp w1, w0 + bne .L3234 +.L3235: + add x1, x29, 196 + add x19, x20, :lo12:.LANCHOR2 mov w2, 0 - mov w0, w28 - str x6, [x29,96] - add x19, x22, :lo12:.LANCHOR2 + str w3, [x29, 100] + mov w0, w21 bl log2phys - mov x0, x21 + mov x0, x22 bl get_new_active_ppa - ldr w5, [x19,2496] + ldr w5, [x19, 2496] mov w4, 56 - ldr x2, [x19,2560] - str x4, [x29,160] - umull x1, w5, w4 - add x2, x2, x1 - str w0, [x2,4] - ldrh w2, [x19,2356] - ldr x0, [x19,2560] - add x1, x0, x1 - mul w0, w2, w5 - and x0, x0, 4294967292 - str x0, [x29,144] - ldr x0, [x19,2664] - ldr x3, [x29,144] - str x0, [x29,136] - add x27, x0, x3 - ldrh w0, [x19,2354] - str x27, [x1,16] - str w28, [x1,24] - mul w0, w0, w5 - ldr x5, [x19,2608] - and x0, x0, 4294967292 - add x0, x5, x0 - str x0, [x1,8] - mov x0, x27 + ldr x1, [x19, 2560] + str w4, [x29, 168] + umull x2, w5, w4 + add x1, x1, x2 + str w0, [x1, 4] + ldr x0, [x19, 2560] + add x0, x0, x2 + ldrh w2, [x19, 2356] + str w21, [x0, 24] + mul w1, w5, w2 + and x1, x1, 4294967292 + str x1, [x29, 136] + ldr x1, [x19, 2664] + ldr x3, [x29, 136] + str x1, [x29, 128] + add x28, x1, x3 + ldrh w1, [x19, 2354] + str x28, [x0, 16] + mul w1, w1, w5 + ldr x5, [x19, 2608] + and x1, x1, 4294967292 + add x1, x5, x1 + str x1, [x0, 8] mov w1, 0 + mov x0, x28 bl ftl_memset - cmp w28, w26 + cmp w27, w21 + ldr w3, [x29, 100] cset w0, eq - str w0, [x29,196] - cbnz w0, .L3358 - ldr x6, [x29,96] - ldr x4, [x29,160] - cbz w6, .L3324 - ldr w0, [x29,152] - ldrh w19, [x19,2350] - msub w19, w28, w19, w0 - ldr w0, [x29,196] - str w0, [x29,160] - uxth w19, w19 - b .L3327 -.L3358: - ldrh w19, [x19,2350] + ldr w4, [x29, 168] + orr w3, w3, w0 + cbz w3, .L3236 + bne .L3237 + ldrh w19, [x19, 2350] udiv w0, w23, w19 msub w0, w0, w19, w23 - str w0, [x29,160] + str w0, [x29, 168] sub w19, w19, w0 - cmp w19, w24 - csel w19, w19, w24, ls -.L3327: - add x2, x22, :lo12:.LANCHOR2 - ldrh w0, [x2,2350] - cmp w19, w0 - bne .L3328 - ldr w0, [x29,196] - mov x1, x25 - cbnz w0, .L3329 - mul w1, w19, w28 + cmp w19, w25 + csel w19, w19, w25, ls +.L3238: + add x0, x20, :lo12:.LANCHOR2 + ldrh w1, [x0, 2350] + cmp w1, w19 + bne .L3239 + cmp w27, w21 + beq .L3269 + mul w1, w21, w19 sub w1, w1, w23 - ubfiz x1, x1, 9, 23 - add x1, x25, x1 -.L3329: - ldr w2, [x29,212] - mov w0, 56 - add x4, x22, :lo12:.LANCHOR2 - cbz w2, .L3330 - ldr w2, [x4,2496] - umull x0, w2, w0 - ldr x2, [x4,2560] - add x0, x2, x0 - b .L3376 -.L3330: - ldr w2, [x4,2496] - umull x0, w2, w0 - ldr x2, [x4,2560] - add x0, x2, x0 - ldrh w2, [x4,2354] - ldr x0, [x0,8] - b .L3377 -.L3328: - ldr w0, [x29,228] - cmn w0, #1 - beq .L3332 - str w0, [x29,236] - mov w1, 56 - ldr w0, [x2,2496] - str w28, [x29,256] - umull x0, w0, w1 - ldr x1, [x2,2560] - mov w2, 0 - add x0, x1, x0 - ldr x1, [x0,8] - ldr x0, [x0,16] - str x1, [x29,240] - mov w1, 1 - str x0, [x29,248] - add x0, x29, 232 - bl FlashReadPages - ldr w0, [x29,232] - cmn w0, #1 - bne .L3333 - ldr x0, [x29,216] - add x0, x0, :lo12:.LANCHOR5 - ldr w1, [x0,712] - add w1, w1, 1 - str w1, [x0,712] - b .L3335 -.L3333: - ldr w0, [x27,8] - cmp w0, w28 - beq .L3335 - ldr x0, [x29,216] - mov w2, w28 - add x0, x0, :lo12:.LANCHOR5 - ldr w1, [x0,712] - add w1, w1, 1 - str w1, [x0,712] - ldr x0, [x29,104] - ldr w1, [x27,8] - bl printk - b .L3335 -.L3332: - ldr w0, [x2,2496] - mov w1, 56 - umull x0, w0, w1 - ldr x1, [x2,2560] - ldrh w2, [x2,2354] - add x0, x1, x0 - mov w1, 0 - ldr x0, [x0,8] - bl ftl_memset -.L3335: - ldr w1, [x29,196] - mov w0, 56 - lsl w2, w19, 9 - cbz w1, .L3336 - add x1, x22, :lo12:.LANCHOR2 - ldr w4, [x1,2496] - umull x0, w4, w0 - ldr x4, [x1,2560] - add x4, x4, x0 - ldr x0, [x29,160] - ubfiz x0, x0, 9, 23 - ldr x1, [x4,8] - add x0, x1, x0 - mov x1, x25 - b .L3377 -.L3336: - add x5, x22, :lo12:.LANCHOR2 - ldr w4, [x5,2496] - ldr x1, [x5,2560] - umull x0, w4, w0 - add x0, x1, x0 - ldrh w1, [x5,2350] - mul w1, w28, w1 - ldr x0, [x0,8] - sub w1, w1, w23 - ubfiz x1, x1, 9, 23 - add x1, x25, x1 - b .L3377 -.L3324: - ldr w0, [x29,212] - ldrh w1, [x19,2350] - ldr w2, [x19,2496] - cbz w0, .L3337 - mul w1, w28, w1 - umull x0, w2, w4 - sub w1, w1, w23 - ldr x2, [x19,2560] - ubfiz x1, x1, 9, 23 - add x0, x2, x0 - add x1, x25, x1 -.L3376: - str x1, [x0,8] - b .L3331 -.L3337: - umull x0, w2, w4 - ldr x2, [x19,2560] - mul w1, w28, w1 - add x0, x2, x0 - ldrh w2, [x19,2354] - sub w1, w1, w23 - ubfiz x1, x1, 9, 23 - ldr x0, [x0,8] - add x1, x25, x1 -.L3377: - bl ftl_memcpy -.L3331: - ldr x1, [x29,136] + lsl w1, w1, 9 + add x1, x24, x1 +.L3240: + ldr w0, [x29, 188] + add x2, x20, :lo12:.LANCHOR2 + cbz w0, .L3241 + ldr w0, [x2, 2496] + mov w3, 56 + ldr x2, [x2, 2560] + umaddl x0, w0, w3, x2 +.L3287: + str x1, [x0, 8] +.L3242: + ldp x1, x2, [x29, 128] mov w0, -3947 - ldr x2, [x29,144] - strh w0, [x1,x2] - add x1, x22, :lo12:.LANCHOR2 - str w28, [x27,8] - ldr w0, [x1,2400] - str w0, [x27,4] + strh w0, [x1, x2] + add x1, x20, :lo12:.LANCHOR2 + ldr w0, [x1, 2400] + stp w0, w21, [x28, 4] + add w21, w21, 1 add w0, w0, 1 cmn w0, #1 csel w0, w0, wzr, ne - str w0, [x1,2400] - ldr w0, [x29,228] - str w0, [x27,12] - ldrh w0, [x21] - strh w0, [x27,2] - ldr w0, [x1,2496] + str w0, [x1, 2400] + ldr w0, [x29, 196] + str w0, [x28, 12] + ldrh w0, [x22] + strh w0, [x28, 2] + ldr w0, [x1, 2496] add w0, w0, 1 - str w0, [x1,2496] - ldr x0, [x29,200] - add x0, x0, 1 - str x0, [x29,200] - b .L3321 -.L3379: - str w28, [x29,192] - mov x0, x2 - b .L3322 -.L3354: - str w28, [x29,192] -.L3322: - sub w20, w20, w0 - ldr w0, [x29,212] - cbnz w0, .L3341 - add x0, x22, :lo12:.LANCHOR2 - ldr w1, [x0,2496] - ldr w0, [x0,2492] - cmp w1, w0 - bcs .L3341 - ldrh w0, [x21,4] - cbz w0, .L3341 -.L3343: - str wzr, [x29,212] - b .L3314 -.L3341: - bl FtlCacheWriteBack - add x0, x22, :lo12:.LANCHOR2 - cmp w20, 1 - str wzr, [x0,2496] - bhi .L3314 - b .L3343 -.L3378: - ldr w1, [x29,208] - mov w0, w20 - sub w1, w1, w26 - bl ftl_do_gc - ldr x0, [x29,128] - add x0, x0, :lo12:.LANCHOR4 - ldrh w0, [x0,776] - cmp w0, 5 - bls .L3345 - cmp w0, 31 - bhi .L3346 - adrp x0, .LANCHOR0+88 - ldrb w0, [x0,#:lo12:.LANCHOR0+88] - cbnz w0, .L3346 -.L3345: - ldr x0, [x29,216] - mov w19, 65535 - mov w23, 128 - add x24, x0, :lo12:.LANCHOR5 -.L3369: - ldrh w0, [x24,592] - cmp w0, w19 - bne .L3347 - add x0, x22, :lo12:.LANCHOR2 - ldrh w1, [x0,2472] - cmp w1, w19 - bne .L3347 - ldrh w0, [x0,2474] - cmp w0, w19 - bne .L3347 - and w0, w20, 7 - bl List_get_gc_head_node - bl FtlGcRefreshBlock -.L3347: - add x21, x22, :lo12:.LANCHOR2 - mov w0, 1 - mov w1, w0 - strh w23, [x21,2482] - strh w23, [x21,2480] - bl ftl_do_gc - mov w0, 0 + str w0, [x1, 2496] + ldr w0, [x29, 184] + add w0, w0, 1 + str w0, [x29, 184] + b .L3233 +.L3237: + ldrh w0, [x19, 2350] + add w2, w23, w25 + str wzr, [x29, 168] + msub w19, w21, w0, w2 + and w19, w19, 65535 + b .L3238 +.L3269: + mov x1, x24 + b .L3240 +.L3241: + ldr w0, [x2, 2496] + mov w4, 56 + ldr x3, [x2, 2560] + ldrh w2, [x2, 2354] + nop // between mem op and mult-accumulate + umaddl x0, w0, w4, x3 +.L3288: + ldr x0, [x0, 8] + b .L3290 +.L3239: + ldr w1, [x29, 196] + mov w2, 56 + cmn w1, #1 + beq .L3243 + str w1, [x29, 204] + ldr w1, [x0, 2496] + ldr x0, [x0, 2560] + str w21, [x29, 224] + nop // between mem op and mult-accumulate + umaddl x0, w1, w2, x0 + mov w2, 0 + ldp x1, x0, [x0, 8] + stp x1, x0, [x29, 208] mov w1, 1 - bl ftl_do_gc - ldr w0, [x21,2928] - cbnz w0, .L3346 - ldr x0, [x29,128] - add x0, x0, :lo12:.LANCHOR4 - ldrh w0, [x0,776] - cmp w0, 2 - bhi .L3346 - add w20, w20, 1 - cmp w20, 256 - bne .L3369 - b .L3346 -.L3350: + add x0, x29, 200 + bl FlashReadPages + ldr w0, [x29, 200] + cmn w0, #1 + bne .L3244 + ldr x0, [x29, 176] + add x1, x0, 1152 + ldr w0, [x0, 1224] + add w0, w0, 1 + str w0, [x1, 72] +.L3246: + cmp w27, w21 + lsl w2, w19, 9 + bne .L3247 + add x0, x20, :lo12:.LANCHOR2 + mov w3, 56 + ldr w1, [x0, 2496] + ldr x0, [x0, 2560] + umaddl x1, w1, w3, x0 + ldr w0, [x29, 168] + lsl w0, w0, 9 + ldr x3, [x1, 8] + mov x1, x24 + add x0, x3, x0 +.L3290: + bl ftl_memcpy + b .L3242 +.L3244: + ldr w0, [x28, 8] + cmp w21, w0 + beq .L3246 + ldr x0, [x29, 176] + mov w2, w21 + add x1, x0, 1152 + ldr w0, [x0, 1224] + add w0, w0, 1 + str w0, [x1, 72] + ldr x0, [x29, 104] + ldr w1, [x28, 8] + bl printk + b .L3246 +.L3243: + ldr x1, [x0, 2560] + ldr w3, [x0, 2496] + umaddl x3, w3, w2, x1 + ldrh w2, [x0, 2354] + mov w1, 0 + ldr x0, [x3, 8] + bl ftl_memset + b .L3246 +.L3247: + add x3, x20, :lo12:.LANCHOR2 + mov w4, 56 + ldrh w1, [x3, 2350] + ldr w0, [x3, 2496] + ldr x3, [x3, 2560] + mul w1, w1, w21 + umaddl x0, w0, w4, x3 + sub w1, w1, w23 + lsl w1, w1, 9 +.L3289: + add x1, x24, x1 + b .L3288 +.L3236: + ldr w0, [x29, 188] + ldrh w1, [x19, 2350] + cbz w0, .L3248 + mul w1, w1, w21 + ldr w0, [x19, 2496] + ldr x2, [x19, 2560] + sub w1, w1, w23 + lsl w1, w1, 9 + add x1, x24, x1 + umaddl x0, w0, w4, x2 + b .L3287 +.L3248: + ldr x2, [x19, 2560] + mul w1, w1, w21 + ldr w0, [x19, 2496] + sub w1, w1, w23 + lsl w1, w1, 9 + umaddl x0, w0, w4, x2 + ldrh w2, [x19, 2354] + b .L3289 +.L3252: + bl FtlCacheWriteBack + add x0, x20, :lo12:.LANCHOR2 + cmp w26, 1 + str wzr, [x0, 2496] + bhi .L3227 + b .L3254 +.L3264: mov w0, -1 -.L3307: - 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], 288 - ret + b .L3219 .size ftl_write, .-ftl_write .align 2 .global ftl_vendor_write .type ftl_vendor_write, %function ftl_vendor_write: stp x29, x30, [sp, -16]! - mov w5, w0 - mov w4, w1 - add x29, sp, 0 mov x3, x2 - mov w1, w5 - mov w2, w4 + mov w2, w1 + mov w1, w0 + add x29, sp, 0 mov w0, 16 bl ftl_write ldp x29, x30, [sp], 16 @@ -21555,11 +21050,10 @@ ftl_vendor_write: .type ftl_sys_write, %function ftl_sys_write: stp x29, x30, [sp, -16]! - mov w4, w1 mov x3, x2 - add x29, sp, 0 + mov w2, w1 add w1, w0, 256 - mov w2, w4 + add x29, sp, 0 mov w0, 16 bl ftl_write ldp x29, x30, [sp], 16 @@ -21569,117 +21063,116 @@ ftl_sys_write: .global ftl_fix_nand_power_lost_error .type ftl_fix_nand_power_lost_error, %function ftl_fix_nand_power_lost_error: - stp x29, x30, [sp, -128]! + stp x29, x30, [sp, -144]! add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x19, .LANCHOR2 - add x0, x19, :lo12:.LANCHOR2 - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] - ldrb w1, [x0,1220] - cbz w1, .L3382 - adrp x21, .LANCHOR5 - ldr x2, [x0,2712] - add x1, x21, :lo12:.LANCHOR5 - adrp x24, .LC165 - adrp x20, .LANCHOR4 - add x0, x24, :lo12:.LC165 - add x20, x20, :lo12:.LANCHOR4 - ldrh w23, [x1,1242] - add x26, x20, 784 - add x25, x20, 832 - ubfiz x22, x23, 1, 16 - mov w1, w23 - ldrh w2, [x2,x22] + stp x19, x20, [sp, 16] + adrp x20, .LANCHOR2 + add x19, x20, :lo12:.LANCHOR2 + stp x21, x22, [sp, 32] + stp x23, x24, [sp, 48] + stp x25, x26, [sp, 64] + str x27, [sp, 80] + ldrb w0, [x19, 1220] + cbz w0, .L3295 + mov x24, x20 + adrp x21, .LANCHOR4 + add x20, x21, :lo12:.LANCHOR4 + ldr x0, [x19, 2712] + adrp x25, .LC165 + add x27, x20, 784 + add x26, x20, 832 + ldrh w22, [x20, 1754] + mov w1, w22 + ubfiz x23, x22, 1, 16 + ldrh w2, [x0, x23] + add x0, x25, :lo12:.LC165 bl printk - ldrh w0, [x20,784] + ldrh w0, [x20, 784] bl FtlGcRefreshOpenBlock - ldrh w0, [x20,832] + ldrh w0, [x20, 832] mov w20, 4097 bl FtlGcRefreshOpenBlock + mov x0, x27 + bl allocate_new_data_superblock mov x0, x26 bl allocate_new_data_superblock - mov x0, x25 - bl allocate_new_data_superblock -.L3384: +.L3297: subs w20, w20, #1 - beq .L3388 - mov w0, 1 - mov w1, w0 - bl ftl_do_gc - add x0, x19, :lo12:.LANCHOR2 - ldr x0, [x0,2712] - ldrh w0, [x0,x22] - cbnz w0, .L3384 -.L3388: - add x20, x19, :lo12:.LANCHOR2 - add x0, x24, :lo12:.LC165 - mov w1, w23 - ldr x2, [x20,2712] - ldrh w2, [x2,x22] - bl printk - ldr x0, [x20,2712] - ldrh w0, [x0,x22] - cbnz w0, .L3386 - add x0, x29, 80 - strh w23, [x29,80] - bl make_superblock - mov x0, 0 - ldrh w5, [x20,2276] - mov w6, 65535 - mov w20, w0 - mov w7, 56 -.L3389: - cmp w5, w0, uxth - bls .L3396 - add x1, x29, 80 - add x1, x1, x0, lsl 1 - ldrh w2, [x1,16] - cmp w2, w6 - beq .L3390 - add x4, x19, :lo12:.LANCHOR2 - lsl w2, w2, 10 - umull x1, w20, w7 - add w20, w20, 1 - ldr x3, [x4,2544] - uxth w20, w20 - add x3, x3, x1 - str w2, [x3,4] - ldr x2, [x4,2544] - add x1, x2, x1 - str xzr, [x1,8] - str xzr, [x1,16] -.L3390: - add x0, x0, 1 - b .L3389 -.L3396: - add x19, x19, :lo12:.LANCHOR2 - adrp x0, .LC166 - mov w1, w23 - add x0, x0, :lo12:.LC166 - ldr x2, [x19,2712] - ldrh w2, [x2,x22] - bl printk - ldr x0, [x19,2544] - mov w1, 0 - mov w2, w20 - bl FlashEraseBlocks - ldr x0, [x19,2544] + beq .L3301 mov w1, 1 - mov w2, w20 + mov w0, w1 + bl ftl_do_gc + ldr x0, [x19, 2712] + ldrh w0, [x0, x23] + cbnz w0, .L3297 +.L3301: + add x20, x24, :lo12:.LANCHOR2 + mov w1, w22 + ldr x0, [x20, 2712] + ldrh w2, [x0, x23] + add x0, x25, :lo12:.LC165 + bl printk + ldr x0, [x20, 2712] + ldrh w19, [x0, x23] + cbnz w19, .L3299 + add x12, x29, 144 + strh w22, [x12, -48]! + mov x0, x12 + bl make_superblock + ldrh w5, [x20, 2276] + add x12, x12, 16 + mov w0, 0 + mov w6, 65535 + mov w7, 56 +.L3302: + cmp w0, w5 + bne .L3304 + add x24, x24, :lo12:.LANCHOR2 + mov w1, w22 + ldr x0, [x24, 2712] + ldrh w2, [x0, x23] + adrp x0, .LC166 + add x0, x0, :lo12:.LC166 + bl printk + ldr x0, [x24, 2544] + mov w2, w19 + mov w1, 0 bl FlashEraseBlocks -.L3386: - add x21, x21, :lo12:.LANCHOR5 + ldr x0, [x24, 2544] + mov w2, w19 + mov w1, 1 + bl FlashEraseBlocks +.L3299: + add x21, x21, :lo12:.LANCHOR4 mov w0, -1 - strh w0, [x21,1242] -.L3382: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x29, x30, [sp], 128 + strh w0, [x21, 1754] +.L3295: + 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], 144 ret +.L3304: + ldrh w2, [x12] + cmp w2, w6 + beq .L3303 + umull x4, w19, w7 + ldr x3, [x20, 2544] + lsl w2, w2, 10 + add w19, w19, 1 + add x3, x3, x4 + and w19, w19, 65535 + str w2, [x3, 4] + ldr x1, [x20, 2544] + add x1, x1, x4 + stp xzr, xzr, [x1, 8] +.L3303: + add w0, w0, 1 + add x12, x12, 2 + and w0, w0, 65535 + b .L3302 .size ftl_fix_nand_power_lost_error, .-ftl_fix_nand_power_lost_error .global gc_ink_free_return_value .global check_valid_page_count_table @@ -21910,7 +21403,7 @@ ftl_fix_nand_power_lost_error: .global read_retry_cur_offset .section .rodata .align 3 -.LANCHOR3 = . + 0 + .set .LANCHOR3,. + 0 .type samsung_14nm_slc_rr, %object .size samsung_14nm_slc_rr, 26 samsung_14nm_slc_rr: @@ -22048,377 +21541,42 @@ samsung_14nm_mlc_rr: .byte 18 .byte 9 .byte 8 - .type __func__.20983, %object - .size __func__.20983, 11 -__func__.20983: + .type __func__.27051, %object + .size __func__.27051, 11 +__func__.27051: .string "FtlMemInit" .zero 5 - .type __func__.21730, %object - .size __func__.21730, 12 -__func__.21730: + .type __func__.27798, %object + .size __func__.27798, 12 +__func__.27798: .string "FtlCheckVpc" .zero 4 - .type __func__.21762, %object - .size __func__.21762, 17 -__func__.21762: + .type __func__.27830, %object + .size __func__.27830, 17 +__func__.27830: .string "FtlDumpBlockInfo" .zero 7 - .type __func__.21781, %object - .size __func__.21781, 16 -__func__.21781: + .type __func__.27849, %object + .size __func__.27849, 16 +__func__.27849: .string "FtlScanAllBlock" - .type __func__.22049, %object - .size __func__.22049, 17 -__func__.22049: + .type __func__.28117, %object + .size __func__.28117, 17 +__func__.28117: .string "ftl_scan_all_ppa" .zero 7 - .type __func__.22029, %object - .size __func__.22029, 21 -__func__.22029: + .type __func__.28097, %object + .size __func__.28097, 21 +__func__.28097: .string "FtlVpcCheckAndModify" .zero 3 - .type __func__.21056, %object - .size __func__.21056, 8 -__func__.21056: + .type __func__.27124, %object + .size __func__.27124, 8 +__func__.27124: .string "FtlInit" - .section .rodata.str1.1,"aMS",%progbits,1 -.LC0: - .string "BBT:" -.LC1: - .string "FlashEraseBlocks pageAddr error %x\n" -.LC2: - .string "otp error! %d" -.LC3: - .string "rr" -.LC4: - .string "%d statReg->V6.mtrans_cnt=%d flReg.V6.page_num=%d\n" -.LC5: - .string "nandc:" -.LC6: - .string "%d flReg.d32=%x %x\n" -.LC7: - .string "sdr read ok %x ecc=%d\n" -.LC8: - .string "sync para %d\n" -.LC9: - .string "TOG mode Read error %x %x\n" -.LC10: - .string "read retry status %x %x %x\n" -.LC11: - .string "micron RR %d row=%x,count %d,status=%d\n" -.LC12: - .string "samsung RR %d row=%x,count %d,status=%d\n" -.LC13: - .string "ECC:%d\n" -.LC14: - .string "No.%d FLASH ID:%x %x %x %x %x %x\n" -.LC15: - .string "FlashLoadPhyInfo fail %x!!\n" -.LC16: - .string "Read pageadd=%x ecc=%x err=%x\n" -.LC17: - .string "data:" -.LC18: - .string "spare:" -.LC19: - .string "ReadRetry pageadd=%x ecc=%x err=%x\n" -.LC20: - .string "FLFB:%d %d\n" -.LC21: - .string "prog error: = %x\n" -.LC22: - .string "prog read error: = %x\n" -.LC23: - .string "prog read REFRESH: = %x\n" -.LC24: - .string "prog read s error: = %x %x %x\n" -.LC25: - .string "prog read d error: = %x %x %x\n" -.LC26: - .string "FlashMakeFactorBbt %d\n" -.LC27: - .string "bad block:%d %d\n" -.LC28: - .string "FMFB:%d %d\n" -.LC29: - .string "E:bad block:%d\n" -.LC30: - .string "FMFB:Save %d %d\n" -.LC31: - .string "%s error allocating memory. return -1\n" -.LC32: - .string "phyBlk = 0x%x die = %d block_in_die = 0x%x 0x%8x\n" -.LC33: - .string "FtlBbmTblFlush id=%x,page=%x,previd=%x cnt=%d\n" -.LC34: - .string "FtlBbmTblFlush error:%x\n" -.LC35: - .string "FtlBbmTblFlush error = %x error count = %d\n" -.LC36: - .string "FtlFreeSysBlkQueueOut free count = %d\n" -.LC37: - .string "FtlFreeSysBlkQueueOut = %x, free count = %d, error\n" -.LC38: - .string "FtlFreeSysBlkQueueOut = %x, free count = %d\n" -.LC39: - .string "FtlMapWritePage error = %x\n" -.LC40: - .string "FtlMapWritePage error = %x error count = %d\n" -.LC41: - .string "page map lost: %x %x\n" -.LC42: - .string "region_id = %x phyAddr = %x\n" -.LC43: - .string "map_ppn:" -.LC44: - .string "load_l2p_region refresh = %x phyAddr = %x\n" -.LC45: - .string "FtlVendorPartRead refresh = %x phyAddr = %x\n" -.LC46: - .string "FtlVpcTblFlush error = %x error count = %d\n" -.LC47: - .string "%s\n" -.LC48: - .string "no ect" -.LC49: - .string "...%s enter...\n" -.LC50: - .string "FtlCheckVpc2 %x = %x %x\n" -.LC51: - .string "free blk vpc error %x = %x %x\n" -.LC52: - .string "error_flag %x\n" -.LC53: - .string "id = %x,%x addr= %x,spare= %x %x %x %x data = %x\n" -.LC54: - .string ":" -.LC55: - .string "Ftlscanalldata = %x\n" -.LC56: - .string "scan lpa = %x ppa= %x\n" -.LC57: - .string "lba = %x,addr= %x,spare= %x %x %x %x data=%x %x\n" -.LC58: - .string "phyBlk = %x,addr= %x,spare= %x %x %x %x data=%x %x\n" -.LC59: - .string "id = %x,%x addr= %x,spare= %x %x %x %x data=%x %x\n" -.LC60: - .string "Mblk:" -.LC61: - .string "L2P:" -.LC62: - .string "L2PC:" -.LC63: - .string "id = %x,%x addr= %x,spare= %x %x %x %x data= %x\n" -.LC64: - .string "superBlkID = %x vpc=%x\n" -.LC65: - .string "flashmode = %x pagenum = %x %x\n" -.LC66: - .string "blk = %x vpc=%x mode = %x\n" -.LC67: - .string "mlc id = %x,%x addr= %x,spare= %x %x %x %x data=%x %x\n" -.LC68: - .string "slc id = %x,%x addr= %x,spare= %x %x %x %x data=%x %x\n" -.LC69: - .string "slc mode" -.LC70: - .string "ftl_scan_all_ppa blk %x page %x flag: %x\n" -.LC71: - .string "ftl_scan_all_ppa blk %x page %x flag: %x ............... is bad block\n" -.LC72: - .string "addr= %x, status= %d,spare= %x %x %x %x data=%x %x\n" -.LC73: - .string "%s finished\n" -.LC74: - .string "FLASH INFO:\n" -.LC75: - .string "FLASH ID: %x\n" -.LC76: - .string "Device Capacity: %d MB\n" -.LC77: - .string "FMWAIT: %x %x %x %x\n" -.LC78: - .string "FTL INFO:\n" -.LC79: - .string "g_MaxLpn = 0x%x\n" -.LC80: - .string "g_VaildLpn = 0x%x\n" -.LC81: - .string "read_page_count = 0x%x\n" -.LC82: - .string "discard_page_count = 0x%x\n" -.LC83: - .string "write_page_count = 0x%x\n" -.LC84: - .string "cache_write_count = 0x%x\n" -.LC85: - .string "l2p_write_count = 0x%x\n" -.LC86: - .string "gc_page_count = 0x%x\n" -.LC87: - .string "totle_write = %d MB\n" -.LC88: - .string "totle_read = %d MB\n" -.LC89: - .string "GSV = 0x%x\n" -.LC90: - .string "GDV = 0x%x\n" -.LC91: - .string "bad blk num = %d %d\n" -.LC92: - .string "free_superblocks = 0x%x\n" -.LC93: - .string "mlc_EC = 0x%x\n" -.LC94: - .string "slc_EC = 0x%x\n" -.LC95: - .string "avg_EC = 0x%x\n" -.LC96: - .string "sys_EC = 0x%x\n" -.LC97: - .string "max_EC = 0x%x\n" -.LC98: - .string "min_EC = 0x%x\n" -.LC99: - .string "PLT = 0x%x\n" -.LC100: - .string "POT = 0x%x\n" -.LC101: - .string "MaxSector = 0x%x\n" -.LC102: - .string "init_sys_blks_pp = 0x%x\n" -.LC103: - .string "sys_blks_pp = 0x%x\n" -.LC104: - .string "free sysblock = 0x%x\n" -.LC105: - .string "data_blks_pp = 0x%x\n" -.LC106: - .string "data_op_blks_pp = 0x%x\n" -.LC107: - .string "max_data_blks = 0x%x\n" -.LC108: - .string "Sys.id = 0x%x\n" -.LC109: - .string "Bbt.id = 0x%x\n" -.LC110: - .string "ACT.page = 0x%x\n" -.LC111: - .string "ACT.plane = 0x%x\n" -.LC112: - .string "ACT.id = 0x%x\n" -.LC113: - .string "ACT.mode = 0x%x\n" -.LC114: - .string "ACT.a_pages = 0x%x\n" -.LC115: - .string "ACT VPC = 0x%x\n" -.LC116: - .string "BUF.page = 0x%x\n" -.LC117: - .string "BUF.plane = 0x%x\n" -.LC118: - .string "BUF.id = 0x%x\n" -.LC119: - .string "BUF.mode = 0x%x\n" -.LC120: - .string "BUF.a_pages = 0x%x\n" -.LC121: - .string "BUF VPC = 0x%x\n" -.LC122: - .string "TMP.page = 0x%x\n" -.LC123: - .string "TMP.plane = 0x%x\n" -.LC124: - .string "TMP.id = 0x%x\n" -.LC125: - .string "TMP.mode = 0x%x\n" -.LC126: - .string "TMP.a_pages = 0x%x\n" -.LC127: - .string "GC.page = 0x%x\n" -.LC128: - .string "GC.plane = 0x%x\n" -.LC129: - .string "GC.id = 0x%x\n" -.LC130: - .string "GC.mode = 0x%x\n" -.LC131: - .string "GC.a_pages = 0x%x\n" -.LC132: - .string "WR_CHK = 0x%x %x %x %x\n" -.LC133: - .string "Read Err = 0x%x\n" -.LC134: - .string "Prog Err = 0x%x\n" -.LC135: - .string "gc_free_blk_th= 0x%x\n" -.LC136: - .string "gc_merge_free_blk_th= 0x%x\n" -.LC137: - .string "gc_skip_write_count= 0x%x\n" -.LC138: - .string "gc_blk_index= 0x%x\n" -.LC139: - .string "free min EC= 0x%x\n" -.LC140: - .string "free max EC= 0x%x\n" -.LC141: - .string "GC__SB VPC = 0x%x\n" -.LC142: - .string "%d. [0x%x]=0x%x 0x%x 0x%x\n" -.LC143: - .string "free %d. [0x%x] 0x%x 0x%x\n" -.LC144: - .string "FTL version: 5.0.63 20200923" -.LC145: - .string "swblk %x ,avg = %x max= %x vpc= %x,ec=%x ,max ec=%x\n" -.LC146: - .string "FtlGcScanTempBlk Error ID %x %x!!!!!!! \n" -.LC147: - .string "FtlGcScanTempBlkError ID %x %x!!!!!!!\n" -.LC148: - .string "FtlGcRefreshBlock 0x%x\n" -.LC149: - .string "FtlGcMarkBadPhyBlk %d 0x%x\n" -.LC150: - .string "FtlGcFreeBadSuperBlk 0x%x\n" -.LC151: - .string "decrement_vpc_count %x = %d\n" -.LC152: - .string "decrement_vpc_count %x = %d in free list\n" -.LC153: - .string "RSB refresh addr %x\n" -.LC154: - .string "spuer block %x vpn is 0\n " -.LC155: - .string "g_recovery_ppa %x ver %x\n " -.LC156: - .string "FtlCheckVpc %x = %x %x\n" -.LC157: - .string "%d GC datablk = %x vpc %x %x\n" -.LC158: - .string "SWL %x, FSB = %x vpc= %x,ec=%x th=%x\n" -.LC159: - .string "Ftlwrite decrement_vpc_count %x = %d\n" -.LC160: - .string "GC des block %x done\n" -.LC161: - .string "too many bad block = %d %d\n" -.LC162: - .string "...%s: no bad block mapping table, format device\n" -.LC163: - .string "...%s FtlSysBlkInit error ,format device!\n" -.LC164: - .string "FtlWrite: lpa error:%x %x\n" -.LC165: - .string "fix power lost blk = %x vpc=%x\n" -.LC166: - .string "erase power lost blk = %x vpc=%x\n" .data .align 3 -.LANCHOR1 = . + 0 + .set .LANCHOR1,. + 0 .type random_seed, %object .size random_seed, 256 random_seed: @@ -22550,55 +21708,6 @@ 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: @@ -22698,6 +21807,55 @@ Toshiba15RefValue: .byte 114 .byte 0 .zero 1 + .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 ToshibaRefValue, %object .size ToshibaRefValue, 8 ToshibaRefValue: @@ -25195,10 +24353,13 @@ power_up_flag: .word 1 .bss .align 3 -.LANCHOR0 = . + 0 -.LANCHOR2 = . + 4352 -.LANCHOR4 = . + 8704 -.LANCHOR5 = . + 17408 + .set .LANCHOR0,. + 0 + .set .LANCHOR2,. + 4352 + .set .LANCHOR4,. + 8704 + .type gNandChipMap, %object + .size gNandChipMap, 64 +gNandChipMap: + .zero 64 .type gFlashPageBuffer0, %object .size gFlashPageBuffer0, 8 gFlashPageBuffer0: @@ -25212,10 +24373,6 @@ gNandFlashIdbBlockAddr: .size p_blk_mode_table, 8 p_blk_mode_table: .zero 8 - .type gNandChipMap, %object - .size gNandChipMap, 64 -gNandChipMap: - .zero 64 .type g_slc2KBNand, %object .size g_slc2KBNand, 1 g_slc2KBNand: @@ -25980,11 +25137,7 @@ gSysInfo: .size g_totle_map_block, 2 g_totle_map_block: .zero 2 - .zero 6 - .type check_valid_page_count_table, %object - .size check_valid_page_count_table, 8192 -check_valid_page_count_table: - .zero 8192 + .zero 2 .type g_MaxLbn, %object .size g_MaxLbn, 4 g_MaxLbn: @@ -25993,7 +25146,7 @@ g_MaxLbn: .size c_ftl_nand_data_op_blks_per_plane, 2 c_ftl_nand_data_op_blks_per_plane: .zero 2 - .zero 2 + .zero 6 .type g_gc_superblock, %object .size g_gc_superblock, 48 g_gc_superblock: @@ -26109,6 +25262,10 @@ g_ftl_nand_free_count: .size last_cache_match_count, 4 last_cache_match_count: .zero 4 + .type check_valid_page_count_table, %object + .size check_valid_page_count_table, 8192 +check_valid_page_count_table: + .zero 8192 .type g_gc_refresh_block_temp_tbl, %object .size g_gc_refresh_block_temp_tbl, 34 g_gc_refresh_block_temp_tbl: @@ -26138,3 +25295,338 @@ gFlashOnfiModeEn: .size gFlashSdrModeEn, 1 gFlashSdrModeEn: .zero 1 + .section .rodata.str1.1,"aMS",@progbits,1 +.LC0: + .string "BBT:" +.LC1: + .string "FlashEraseBlocks pageAddr error %x\n" +.LC2: + .string "otp error! %d" +.LC3: + .string "rr" +.LC4: + .string "%d statReg->V6.mtrans_cnt=%d flReg.V6.page_num=%d\n" +.LC5: + .string "nandc:" +.LC6: + .string "%d flReg.d32=%x %x\n" +.LC7: + .string "sdr read ok %x ecc=%d\n" +.LC8: + .string "sync para %d\n" +.LC9: + .string "TOG mode Read error %x %x\n" +.LC10: + .string "read retry status %x %x %x\n" +.LC11: + .string "micron RR %d row=%x,count %d,status=%d\n" +.LC12: + .string "samsung RR %d row=%x,count %d,status=%d\n" +.LC13: + .string "ECC:%d\n" +.LC14: + .string "No.%d FLASH ID:%x %x %x %x %x %x\n" +.LC15: + .string "FlashLoadPhyInfo fail %x!!\n" +.LC16: + .string "Read pageadd=%x ecc=%x err=%x\n" +.LC17: + .string "data:" +.LC18: + .string "spare:" +.LC19: + .string "ReadRetry pageadd=%x ecc=%x err=%x\n" +.LC20: + .string "FLFB:%d %d\n" +.LC21: + .string "prog error: = %x\n" +.LC22: + .string "prog read error: = %x\n" +.LC23: + .string "prog read REFRESH: = %x\n" +.LC24: + .string "prog read s error: = %x %x %x\n" +.LC25: + .string "prog read d error: = %x %x %x\n" +.LC26: + .string "FlashMakeFactorBbt %d\n" +.LC27: + .string "bad block:%d %d\n" +.LC28: + .string "FMFB:%d %d\n" +.LC29: + .string "E:bad block:%d\n" +.LC30: + .string "FMFB:Save %d %d\n" +.LC31: + .string "%s error allocating memory. return -1\n" +.LC32: + .string "phyBlk = 0x%x die = %d block_in_die = 0x%x 0x%8x\n" +.LC33: + .string "FtlBbmTblFlush id=%x,page=%x,previd=%x cnt=%d\n" +.LC34: + .string "FtlBbmTblFlush error:%x\n" +.LC35: + .string "FtlBbmTblFlush error = %x error count = %d\n" +.LC36: + .string "FtlFreeSysBlkQueueOut free count = %d\n" +.LC37: + .string "FtlFreeSysBlkQueueOut = %x, free count = %d, error\n" +.LC38: + .string "FtlFreeSysBlkQueueOut = %x, free count = %d\n" +.LC39: + .string "FtlMapWritePage error = %x\n" +.LC40: + .string "FtlMapWritePage error = %x error count = %d\n" +.LC41: + .string "page map lost: %x %x\n" +.LC42: + .string "region_id = %x phyAddr = %x\n" +.LC43: + .string "map_ppn:" +.LC44: + .string "load_l2p_region refresh = %x phyAddr = %x\n" +.LC45: + .string "FtlVendorPartRead refresh = %x phyAddr = %x\n" +.LC46: + .string "FtlVpcTblFlush error = %x error count = %d\n" +.LC47: + .string "no ect" +.LC48: + .string "%s\n" +.LC49: + .string "...%s enter...\n" +.LC50: + .string "FtlCheckVpc2 %x = %x %x\n" +.LC51: + .string "free blk vpc error %x = %x %x\n" +.LC52: + .string "error_flag %x\n" +.LC53: + .string "id = %x,%x addr= %x,spare= %x %x %x %x data = %x\n" +.LC54: + .string ":" +.LC55: + .string "Ftlscanalldata = %x\n" +.LC56: + .string "scan lpa = %x ppa= %x\n" +.LC57: + .string "lba = %x,addr= %x,spare= %x %x %x %x data=%x %x\n" +.LC58: + .string "phyBlk = %x,addr= %x,spare= %x %x %x %x data=%x %x\n" +.LC59: + .string "id = %x,%x addr= %x,spare= %x %x %x %x data=%x %x\n" +.LC60: + .string "Mblk:" +.LC61: + .string "L2P:" +.LC62: + .string "L2PC:" +.LC63: + .string "id = %x,%x addr= %x,spare= %x %x %x %x data= %x\n" +.LC64: + .string "superBlkID = %x vpc=%x\n" +.LC65: + .string "flashmode = %x pagenum = %x %x\n" +.LC66: + .string "blk = %x vpc=%x mode = %x\n" +.LC67: + .string "mlc id = %x,%x addr= %x,spare= %x %x %x %x data=%x %x\n" +.LC68: + .string "slc id = %x,%x addr= %x,spare= %x %x %x %x data=%x %x\n" +.LC69: + .string "slc mode" +.LC70: + .string "ftl_scan_all_ppa blk %x page %x flag: %x\n" +.LC71: + .string "ftl_scan_all_ppa blk %x page %x flag: %x ............... is bad block\n" +.LC72: + .string "addr= %x, status= %d,spare= %x %x %x %x data=%x %x\n" +.LC73: + .string "%s finished\n" +.LC74: + .string "FLASH INFO:\n" +.LC75: + .string "FLASH ID: %x\n" +.LC76: + .string "Device Capacity: %d MB\n" +.LC77: + .string "FMWAIT: %x %x %x %x\n" +.LC78: + .string "FTL INFO:\n" +.LC79: + .string "g_MaxLpn = 0x%x\n" +.LC80: + .string "g_VaildLpn = 0x%x\n" +.LC81: + .string "read_page_count = 0x%x\n" +.LC82: + .string "discard_page_count = 0x%x\n" +.LC83: + .string "write_page_count = 0x%x\n" +.LC84: + .string "cache_write_count = 0x%x\n" +.LC85: + .string "l2p_write_count = 0x%x\n" +.LC86: + .string "gc_page_count = 0x%x\n" +.LC87: + .string "totle_write = %d MB\n" +.LC88: + .string "totle_read = %d MB\n" +.LC89: + .string "GSV = 0x%x\n" +.LC90: + .string "GDV = 0x%x\n" +.LC91: + .string "bad blk num = %d %d\n" +.LC92: + .string "free_superblocks = 0x%x\n" +.LC93: + .string "mlc_EC = 0x%x\n" +.LC94: + .string "slc_EC = 0x%x\n" +.LC95: + .string "avg_EC = 0x%x\n" +.LC96: + .string "sys_EC = 0x%x\n" +.LC97: + .string "max_EC = 0x%x\n" +.LC98: + .string "min_EC = 0x%x\n" +.LC99: + .string "PLT = 0x%x\n" +.LC100: + .string "POT = 0x%x\n" +.LC101: + .string "MaxSector = 0x%x\n" +.LC102: + .string "init_sys_blks_pp = 0x%x\n" +.LC103: + .string "sys_blks_pp = 0x%x\n" +.LC104: + .string "free sysblock = 0x%x\n" +.LC105: + .string "data_blks_pp = 0x%x\n" +.LC106: + .string "data_op_blks_pp = 0x%x\n" +.LC107: + .string "max_data_blks = 0x%x\n" +.LC108: + .string "Sys.id = 0x%x\n" +.LC109: + .string "Bbt.id = 0x%x\n" +.LC110: + .string "ACT.page = 0x%x\n" +.LC111: + .string "ACT.plane = 0x%x\n" +.LC112: + .string "ACT.id = 0x%x\n" +.LC113: + .string "ACT.mode = 0x%x\n" +.LC114: + .string "ACT.a_pages = 0x%x\n" +.LC115: + .string "ACT VPC = 0x%x\n" +.LC116: + .string "BUF.page = 0x%x\n" +.LC117: + .string "BUF.plane = 0x%x\n" +.LC118: + .string "BUF.id = 0x%x\n" +.LC119: + .string "BUF.mode = 0x%x\n" +.LC120: + .string "BUF.a_pages = 0x%x\n" +.LC121: + .string "BUF VPC = 0x%x\n" +.LC122: + .string "TMP.page = 0x%x\n" +.LC123: + .string "TMP.plane = 0x%x\n" +.LC124: + .string "TMP.id = 0x%x\n" +.LC125: + .string "TMP.mode = 0x%x\n" +.LC126: + .string "TMP.a_pages = 0x%x\n" +.LC127: + .string "GC.page = 0x%x\n" +.LC128: + .string "GC.plane = 0x%x\n" +.LC129: + .string "GC.id = 0x%x\n" +.LC130: + .string "GC.mode = 0x%x\n" +.LC131: + .string "GC.a_pages = 0x%x\n" +.LC132: + .string "WR_CHK = 0x%x %x %x %x\n" +.LC133: + .string "Read Err = 0x%x\n" +.LC134: + .string "Prog Err = 0x%x\n" +.LC135: + .string "gc_free_blk_th= 0x%x\n" +.LC136: + .string "gc_merge_free_blk_th= 0x%x\n" +.LC137: + .string "gc_skip_write_count= 0x%x\n" +.LC138: + .string "gc_blk_index= 0x%x\n" +.LC139: + .string "free min EC= 0x%x\n" +.LC140: + .string "free max EC= 0x%x\n" +.LC141: + .string "GC__SB VPC = 0x%x\n" +.LC142: + .string "%d. [0x%x]=0x%x 0x%x 0x%x\n" +.LC143: + .string "free %d. [0x%x] 0x%x 0x%x\n" +.LC144: + .string "FTL version: 5.0.63 20210616" +.LC145: + .string "swblk %x ,avg = %x max= %x vpc= %x,ec=%x ,max ec=%x\n" +.LC146: + .string "FtlGcScanTempBlk Error ID %x %x!!!!!!! \n" +.LC147: + .string "FtlGcScanTempBlkError ID %x %x!!!!!!!\n" +.LC148: + .string "FtlGcRefreshBlock 0x%x\n" +.LC149: + .string "FtlGcMarkBadPhyBlk %d 0x%x\n" +.LC150: + .string "FtlGcFreeBadSuperBlk 0x%x\n" +.LC151: + .string "decrement_vpc_count %x = %d\n" +.LC152: + .string "decrement_vpc_count %x = %d in free list\n" +.LC153: + .string "RSB refresh addr %x\n" +.LC154: + .string "spuer block %x vpn is 0\n " +.LC155: + .string "g_recovery_ppa %x ver %x\n " +.LC156: + .string "FtlCheckVpc %x = %x %x\n" +.LC157: + .string "%d GC datablk = %x vpc %x %x\n" +.LC158: + .string "SWL %x, FSB = %x vpc= %x,ec=%x th=%x\n" +.LC159: + .string "Ftlwrite decrement_vpc_count %x = %d\n" +.LC160: + .string "GC des block %x done\n" +.LC161: + .string "too many bad block = %d %d\n" +.LC162: + .string "...%s: no bad block mapping table, format device\n" +.LC163: + .string "...%s FtlSysBlkInit error ,format device!\n" +.LC164: + .string "FtlWrite: lpa error:%x %x\n" +.LC165: + .string "fix power lost blk = %x vpc=%x\n" +.LC166: + .string "erase power lost blk = %x vpc=%x\n" diff --git a/drivers/rk_nand/rk_nand_base.c b/drivers/rk_nand/rk_nand_base.c index c6192c13759b..9d5e2fb02baa 100644 --- a/drivers/rk_nand/rk_nand_base.c +++ b/drivers/rk_nand/rk_nand_base.c @@ -8,7 +8,6 @@ */ #include -#include #include #include #include @@ -59,61 +58,23 @@ void ftl_free(void *buf) kfree(buf); } -char rknand_get_sn(char *pbuf) -{ - memcpy(pbuf, &nand_idb_data[0x600], 0x200); - return 0; -} - -char rknand_get_vendor0(char *pbuf) -{ - memcpy(pbuf, &nand_idb_data[0x400 + 8], 504); - return 0; -} - -char *rknand_get_idb_data(void) -{ - return nand_idb_data; -} -EXPORT_SYMBOL(rknand_get_idb_data); - int rknand_get_clk_rate(int nandc_id) { return g_nandc_info[nandc_id].clk_rate; } EXPORT_SYMBOL(rknand_get_clk_rate); -unsigned long rknand_dma_flush_dcache(unsigned long ptr, int size, int dir) -{ -#ifdef CONFIG_ARM64 - __flush_dcache_area((void *)ptr, size + 63); -#else - __cpuc_flush_dcache_area((void *)ptr, size + 63); -#endif - return ((unsigned long)virt_to_phys((void *)ptr)); -} -EXPORT_SYMBOL(rknand_dma_flush_dcache); - unsigned long rknand_dma_map_single(unsigned long ptr, int size, int dir) { -#ifdef CONFIG_ARM64 - __dma_map_area((void *)ptr, size, dir); - return ((unsigned long)virt_to_phys((void *)ptr)); -#else - return dma_map_single(NULL, (void *)ptr, size + return dma_map_single(g_nand_device, (void *)ptr, size , dir ? DMA_TO_DEVICE : DMA_FROM_DEVICE); -#endif } EXPORT_SYMBOL(rknand_dma_map_single); void rknand_dma_unmap_single(unsigned long ptr, int size, int dir) { -#ifdef CONFIG_ARM64 - __dma_unmap_area(phys_to_virt(ptr), size, dir); -#else - dma_unmap_single(NULL, (dma_addr_t)ptr, size + dma_unmap_single(g_nand_device, (dma_addr_t)ptr, size , dir ? DMA_TO_DEVICE : DMA_FROM_DEVICE); -#endif } EXPORT_SYMBOL(rknand_dma_unmap_single); @@ -392,7 +353,7 @@ static int rknand_probe(struct platform_device *pdev) pm_runtime_enable(&pdev->dev); pm_runtime_get_sync(&pdev->dev); - return 0; + return dma_set_mask(g_nand_device, DMA_BIT_MASK(32)); } static int rknand_suspend(struct platform_device *pdev, pm_message_t state) @@ -491,4 +452,5 @@ static int __init rknand_driver_init(void) module_init(rknand_driver_init); module_exit(rknand_driver_exit); -MODULE_ALIAS(DRIVER_NAME); +MODULE_ALIAS("rknand"); +MODULE_LICENSE("GPL v2"); diff --git a/drivers/rk_nand/rk_nand_blk.c b/drivers/rk_nand/rk_nand_blk.c index 3bf533b4ddc9..7d1c46966481 100644 --- a/drivers/rk_nand/rk_nand_blk.c +++ b/drivers/rk_nand/rk_nand_blk.c @@ -7,12 +7,15 @@ * (at your option) any later version. */ +#define pr_fmt(fmt) "rk_nand: " fmt + #include #include #include #include #include #include +#include #include #include #include @@ -36,9 +39,6 @@ #include "rk_nand_blk.h" #include "rk_ftl_api.h" -static struct nand_part disk_array[MAX_PART_COUNT]; -static int g_max_part_num = 4; - #define PART_READONLY 0x85 #define PART_WRITEONLY 0x86 #define PART_NO_ACCESS 0x87 @@ -48,10 +48,17 @@ static unsigned long totle_write_data; static unsigned long totle_read_count; static unsigned long totle_write_count; static int rk_nand_dev_initialised; +static unsigned long rk_ftl_gc_do; +static DECLARE_WAIT_QUEUE_HEAD(rknand_thread_wait); +static unsigned long rk_ftl_gc_jiffies; static char *mtd_read_temp_buffer; #define MTD_RW_SECTORS (512) +#define DISABLE_WRITE _IO('V', 0) +#define ENABLE_WRITE _IO('V', 1) +#define DISABLE_READ _IO('V', 2) +#define ENABLE_READ _IO('V', 3) static int rknand_proc_show(struct seq_file *m, void *v) { m->count = rknand_proc_ftlread(m->buf); @@ -62,43 +69,16 @@ static int rknand_proc_show(struct seq_file *m, void *v) return 0; } -static int rknand_mtd_proc_show(struct seq_file *m, void *v) -{ - int i; - - seq_printf(m, "%s", "dev: size erasesize name\n"); - for (i = 0; i < g_max_part_num; i++) { - seq_printf(m, "rknand%d: %8.8llx %8.8x \"%s\"\n", i, - (unsigned long long)disk_array[i].size * 512, - 32 * 0x200, disk_array[i].name); - } - return 0; -} - static int rknand_proc_open(struct inode *inode, struct file *file) { return single_open(file, rknand_proc_show, PDE_DATA(inode)); } -static int rknand_mtd_proc_open(struct inode *inode, struct file *file) -{ - return single_open(file, rknand_mtd_proc_show, PDE_DATA(inode)); -} - -static const struct file_operations rknand_proc_fops = { - .owner = THIS_MODULE, - .open = rknand_proc_open, - .read = seq_read, - .llseek = seq_lseek, - .release = single_release, -}; - -static const struct file_operations rknand_mtd_proc_fops = { - .owner = THIS_MODULE, - .open = rknand_mtd_proc_open, - .read = seq_read, - .llseek = seq_lseek, - .release = single_release, +static const struct proc_ops rknand_proc_fops = { + .proc_open = rknand_proc_open, + .proc_read = seq_read, + .proc_lseek = seq_lseek, + .proc_release = single_release, }; static int rknand_create_procfs(void) @@ -110,10 +90,6 @@ static int rknand_create_procfs(void) if (!ent) return -1; - ent = proc_create_data("mtd", 0444, NULL, &rknand_mtd_proc_fops, - (void *)0); - if (!ent) - return -1; return 0; } @@ -143,8 +119,7 @@ static int nand_dev_transfer(struct nand_blk_dev *dev, unsigned long start, unsigned long nsector, char *buf, - int cmd, - int totle_nsec) + int cmd) { int ret; @@ -155,7 +130,6 @@ static int nand_dev_transfer(struct nand_blk_dev *dev, } start += dev->off_size; - rknand_device_lock(); switch (cmd) { case READ: @@ -179,24 +153,9 @@ static int nand_dev_transfer(struct nand_blk_dev *dev, break; } - rknand_device_unlock(); return ret; } -static DECLARE_WAIT_QUEUE_HEAD(rknand_thread_wait); -static void rk_ftl_gc_timeout_hack(struct timer_list *unused); -static DEFINE_TIMER(rk_ftl_gc_timeout, rk_ftl_gc_timeout_hack); -static unsigned long rk_ftl_gc_jiffies; -static unsigned long rk_ftl_gc_do; - -static void rk_ftl_gc_timeout_hack(struct timer_list *unused) -{ - del_timer(&rk_ftl_gc_timeout); - rk_ftl_gc_do++; - rk_ftl_gc_timeout.expires = jiffies + rk_ftl_gc_jiffies * rk_ftl_gc_do; - add_timer(&rk_ftl_gc_timeout); -} - static int req_check_buffer_align(struct request *req, char **pbuf) { int nr_vec = 0; @@ -225,284 +184,220 @@ static int req_check_buffer_align(struct request *req, char **pbuf) return 1; } -static int nand_blktrans_thread(void *arg) +static blk_status_t do_blktrans_all_request(struct nand_blk_dev *dev, + struct request *req) { - struct nand_blk_ops *nandr = arg; - struct request_queue *rq = nandr->rq; - struct request *req = NULL; - int ftl_gc_status = 0; - char *buf, *page_buf; + unsigned long block, nsect; + char *buf = NULL; struct req_iterator rq_iter; struct bio_vec bvec; - unsigned long long sector_index = ULLONG_MAX; + int ret = BLK_STS_IOERR; unsigned long totle_nsect; - int rw_flag = 0; - int req_empty_times = 0; - int op; + unsigned long rq_len = 0; + + block = blk_rq_pos(req); + nsect = blk_rq_cur_bytes(req) >> 9; + totle_nsect = (req->__data_len) >> 9; + + if (blk_rq_pos(req) + blk_rq_cur_sectors(req) > + get_capacity(req->rq_disk)) + return BLK_STS_IOERR; + + switch (req_op(req)) { + case REQ_OP_DISCARD: + if (FtlDiscard(block, nsect)) + return BLK_STS_IOERR; + return BLK_STS_OK; + case REQ_OP_READ: + buf = mtd_read_temp_buffer; + req_check_buffer_align(req, &buf); + ret = nand_dev_transfer(dev, + block, + totle_nsect, + buf, + REQ_OP_READ); + if (buf == mtd_read_temp_buffer) { + char *p = buf; + + rq_for_each_segment(bvec, req, rq_iter) { + memcpy(page_address(bvec.bv_page) + + bvec.bv_offset, + p, + bvec.bv_len); + p += bvec.bv_len; + } + } + + if (ret) + return BLK_STS_IOERR; + else + return BLK_STS_OK; + case REQ_OP_WRITE: + rq_for_each_segment(bvec, req, rq_iter) { + if ((page_address(bvec.bv_page) + bvec.bv_offset) == (buf + rq_len)) { + rq_len += bvec.bv_len; + } else { + if (rq_len) { + ret = nand_dev_transfer(dev, + block, + rq_len >> 9, + buf, + REQ_OP_WRITE); + if (ret) + return BLK_STS_IOERR; + else + return BLK_STS_OK; + } + block += rq_len >> 9; + buf = (page_address(bvec.bv_page) + bvec.bv_offset); + rq_len = bvec.bv_len; + } + } + + if (rq_len) { + ret = nand_dev_transfer(dev, + block, + rq_len >> 9, + buf, + REQ_OP_WRITE); + } + + if (ret) + return BLK_STS_IOERR; + else + return BLK_STS_OK; + + default: + return BLK_STS_IOERR; + } +} + +static struct request *rk_nand_next_request(struct nand_blk_dev *dev) +{ + struct nand_blk_ops *nand_ops = dev->nand_ops; + struct request *rq; + + rq = list_first_entry_or_null(&nand_ops->rq_list, struct request, queuelist); + if (rq) { + list_del_init(&rq->queuelist); + blk_mq_start_request(rq); + return rq; + } + + return NULL; +} + +static void rk_nand_blktrans_work(struct nand_blk_dev *dev) + __releases(&dev->nand_ops->queue_lock) + __acquires(&dev->nand_ops->queue_lock) +{ + struct request *req = NULL; + + while (1) { + blk_status_t res; + + req = rk_nand_next_request(dev); + if (!req) + break; + + spin_unlock_irq(&dev->nand_ops->queue_lock); + + rknand_device_lock(); + res = do_blktrans_all_request(dev, req); + rknand_device_unlock(); + + if (!blk_update_request(req, res, req->__data_len)) { + __blk_mq_end_request(req, res); + req = NULL; + } + + spin_lock_irq(&dev->nand_ops->queue_lock); + } +} + +static blk_status_t rk_nand_queue_rq(struct blk_mq_hw_ctx *hctx, + const struct blk_mq_queue_data *bd) +{ + struct nand_blk_dev *dev; + + dev = hctx->queue->queuedata; + if (!dev) { + blk_mq_start_request(bd->rq); + return BLK_STS_IOERR; + } - spin_lock_irq(rq->queue_lock); - rk_ftl_gc_jiffies = HZ / 10; /* do garbage collect after 100ms */ rk_ftl_gc_do = 0; - rk_ftl_gc_timeout.expires = jiffies + rk_ftl_gc_jiffies; - add_timer(&rk_ftl_gc_timeout); + spin_lock_irq(&dev->nand_ops->queue_lock); + list_add_tail(&bd->rq->queuelist, &dev->nand_ops->rq_list); + rk_nand_blktrans_work(dev); + spin_unlock_irq(&dev->nand_ops->queue_lock); - while (!nandr->quit) { - int res; - struct nand_blk_dev *dev; + /* wake up gc thread */ + rk_ftl_gc_do = 1; + wake_up(&dev->nand_ops->thread_wq); + + return BLK_STS_OK; +} + +static const struct blk_mq_ops rk_nand_mq_ops = { + .queue_rq = rk_nand_queue_rq, +}; + +static int nand_gc_thread(void *arg) +{ + struct nand_blk_ops *nand_ops = arg; + int ftl_gc_status = 0; + int req_empty_times = 0; + int gc_done_times = 0; + + rk_ftl_gc_jiffies = HZ / 10; + rk_ftl_gc_do = 1; + + while (!nand_ops->quit) { DECLARE_WAITQUEUE(wait, current); - if (!req) - req = blk_fetch_request(rq); - if (!req) { - add_wait_queue(&nandr->thread_wq, &wait); - set_current_state(TASK_INTERRUPTIBLE); - spin_unlock_irq(rq->queue_lock); + add_wait_queue(&nand_ops->thread_wq, &wait); + set_current_state(TASK_INTERRUPTIBLE); + + if (rk_ftl_gc_do) { + /* do garbage collect at idle state */ if (rknand_device_trylock()) { ftl_gc_status = rk_ftl_garbage_collect(1, 0); rknand_device_unlock(); rk_ftl_gc_jiffies = HZ / 50; - if (ftl_gc_status == 0) - rk_ftl_gc_jiffies = 1 * HZ; - + if (ftl_gc_status == 0) { + gc_done_times++; + if (gc_done_times > 10) + rk_ftl_gc_jiffies = 10 * HZ; + else + rk_ftl_gc_jiffies = 1 * HZ; + } else { + gc_done_times = 0; + } } else { - rk_ftl_gc_jiffies = HZ / 50; + rk_ftl_gc_jiffies = 1 * HZ; } req_empty_times++; if (req_empty_times < 10) rk_ftl_gc_jiffies = HZ / 50; - /* 100ms cache write back */ + /* cache write back after 100ms */ if (req_empty_times >= 5 && req_empty_times < 7) { rknand_device_lock(); rk_ftl_cache_write_back(); rknand_device_unlock(); } - wait_event_timeout(nandr->thread_wq, - rk_ftl_gc_do || nandr->quit, - rk_ftl_gc_jiffies); - rk_ftl_gc_do = 0; - spin_lock_irq(rq->queue_lock); - remove_wait_queue(&nandr->thread_wq, &wait); - continue; } else { - rk_ftl_gc_jiffies = 1 * HZ; req_empty_times = 0; + rk_ftl_gc_jiffies = 1 * HZ; } - - dev = req->rq_disk->private_data; - totle_nsect = (req->__data_len) >> 9; - sector_index = blk_rq_pos(req); - buf = 0; - res = 0; - - op = req_op(req); - if (op == REQ_OP_DISCARD) { - spin_unlock_irq(rq->queue_lock); - rknand_device_lock(); - if (FtlDiscard(blk_rq_pos(req) + - dev->off_size, totle_nsect)) - res = BLK_STS_IOERR; - rknand_device_unlock(); - spin_lock_irq(rq->queue_lock); - if (!__blk_end_request_cur(req, res)) - req = NULL; - continue; - } else if (op == REQ_OP_FLUSH) { - spin_unlock_irq(rq->queue_lock); - rknand_device_lock(); - rk_ftl_cache_write_back(); - rknand_device_unlock(); - spin_lock_irq(rq->queue_lock); - if (!__blk_end_request_cur(req, res)) - req = NULL; - continue; - } else if (op == REQ_OP_READ) { - rw_flag = READ; - } else if (op == REQ_OP_WRITE) { - rw_flag = WRITE; - } else { - __blk_end_request_all(req, BLK_STS_IOERR); - req = NULL; - continue; - } - - if (mtd_read_temp_buffer) { - buf = mtd_read_temp_buffer; - req_check_buffer_align(req, &buf); - - if (rw_flag == WRITE && buf == mtd_read_temp_buffer) { - char *p = buf; - - rq_for_each_segment(bvec, req, rq_iter) { - page_buf = kmap_atomic(bvec.bv_page); - memcpy(p, - page_buf + bvec.bv_offset, - bvec.bv_len); - p += bvec.bv_len; - kunmap_atomic(page_buf); - } - } - - spin_unlock_irq(rq->queue_lock); - res = nand_dev_transfer(dev, - sector_index, - totle_nsect, - buf, - rw_flag, - totle_nsect); - spin_lock_irq(rq->queue_lock); - - if (rw_flag == READ && buf == mtd_read_temp_buffer) { - char *p = buf; - - rq_for_each_segment(bvec, req, rq_iter) { - page_buf = kmap_atomic(bvec.bv_page); - - memcpy(page_buf + bvec.bv_offset, - p, - bvec.bv_len); - p += bvec.bv_len; - kunmap_atomic(page_buf); - } - } - __blk_end_request_all(req, res); - req = NULL; - } else { - while (req) { - sector_index = blk_rq_pos(req); - totle_nsect = blk_rq_cur_bytes(req); - buf = kmap_atomic(bio_page(req->bio)) + - bio_offset(req->bio); - spin_unlock_irq(rq->queue_lock); - res = nand_dev_transfer(dev, - sector_index, - totle_nsect, - buf, - rw_flag, - totle_nsect); - spin_lock_irq(rq->queue_lock); - kunmap_atomic(buf); - if (!__blk_end_request_cur(req, res)) - req = NULL; - } - } - } - pr_info("nand th quited\n"); - nandr->nand_th_quited = 1; - if (req) - __blk_end_request_all(req, BLK_STS_IOERR); - rk_nand_schedule_enable_config(0); - while ((req = blk_fetch_request(rq)) != NULL) - __blk_end_request_all(req, BLK_STS_IOERR); - spin_unlock_irq(rq->queue_lock); - complete_and_exit(&nandr->thread_exit, 0); - return 0; -} - -static void nand_blk_request(struct request_queue *rq) -{ - struct nand_blk_ops *nandr = rq->queuedata; - struct request *req = NULL; - - if (nandr->nand_th_quited) { - while ((req = blk_fetch_request(rq)) != NULL) - __blk_end_request_all(req, BLK_STS_IOERR); - return; - } - rk_ftl_gc_do = 1; - wake_up(&nandr->thread_wq); -} - -static int rknand_get_part(char *parts, - struct nand_part *this_part, - int *part_index) -{ - char delim; - unsigned int mask_flags; - unsigned long long size, offset = ULLONG_MAX; - char name[40] = "\0"; - - if (*parts == '-') { - size = ULLONG_MAX; - parts++; - } else { - size = memparse(parts, &parts); - } - - if (*parts == '@') { - parts++; - offset = memparse(parts, &parts); - } - - mask_flags = 0; - delim = 0; - - if (*parts == '(') - delim = ')'; - - if (delim) { - char *p; - - p = strchr(parts + 1, delim); - if (!p) - return 0; - strncpy(name, parts + 1, p - (parts + 1)); - parts = p + 1; - } - - if (strncmp(parts, "ro", 2) == 0) { - mask_flags = PART_READONLY; - parts += 2; - } - - if (strncmp(parts, "wo", 2) == 0) { - mask_flags = PART_WRITEONLY; - parts += 2; - } - - this_part->size = (unsigned long)size; - this_part->offset = (unsigned long)offset; - this_part->type = mask_flags; - sprintf(this_part->name, "%s", name); - - if ((++(*part_index) < MAX_PART_COUNT) && (*parts == ',')) - rknand_get_part(++parts, this_part + 1, part_index); - - return 1; -} - -static int nand_prase_cmdline_part(struct nand_part *pdisk_part) -{ - char *pbuf; - int part_num = 0, i; - unsigned int cap_size = rk_ftl_get_capacity(); - char *cmdline; - - cmdline = strstr(saved_command_line, "mtdparts="); - if (!cmdline) - return 0; - cmdline += 9; - if (!memcmp(cmdline, "rk29xxnand:", strlen("rk29xxnand:"))) { - pbuf = cmdline + strlen("rk29xxnand:"); - rknand_get_part(pbuf, pdisk_part, &part_num); - if (part_num) - pdisk_part[part_num - 1].size = cap_size - - pdisk_part[part_num - 1].offset; - - for (i = 0; i < part_num; i++) { - if (pdisk_part[i].size + pdisk_part[i].offset - > cap_size) { - pdisk_part[i].size = cap_size - - pdisk_part[i].offset; - pr_err("partition error....max cap:%x\n", - cap_size); - if (!pdisk_part[i].size) - return i; - else - return (i + 1); - } - } - return part_num; + wait_event_timeout(nand_ops->thread_wq, nand_ops->quit, + rk_ftl_gc_jiffies); + remove_wait_queue(&nand_ops->thread_wq, &wait); + continue; } + pr_info("nand gc quited\n"); + nand_ops->nand_th_quited = 1; + complete_and_exit(&nand_ops->thread_exit, 0); return 0; } @@ -515,10 +410,6 @@ static void rknand_release(struct gendisk *disk, fmode_t mode) { }; -#define DISABLE_WRITE _IO('V', 0) -#define ENABLE_WRITE _IO('V', 1) -#define DISABLE_READ _IO('V', 2) -#define ENABLE_READ _IO('V', 3) static int rknand_ioctl(struct block_device *bdev, fmode_t mode, unsigned int cmd, unsigned long arg) @@ -564,7 +455,7 @@ static struct nand_blk_ops mytr = { .owner = THIS_MODULE, }; -static int nand_add_dev(struct nand_blk_ops *nandr, struct nand_part *part) +static int nand_add_dev(struct nand_blk_ops *nand_ops, struct nand_part *part) { struct nand_blk_dev *dev; struct gendisk *gd; @@ -576,45 +467,37 @@ static int nand_add_dev(struct nand_blk_ops *nandr, struct nand_part *part) if (!dev) return -ENOMEM; - gd = alloc_disk(1 << nandr->minorbits); + gd = alloc_disk(1 << nand_ops->minorbits); if (!gd) { kfree(dev); return -ENOMEM; } - - dev->nandr = nandr; + nand_ops->rq->queuedata = dev; + dev->nand_ops = nand_ops; dev->size = part->size; dev->off_size = part->offset; - dev->devnum = nandr->last_dev_index; - list_add_tail(&dev->list, &nandr->devs); - nandr->last_dev_index++; + dev->devnum = nand_ops->last_dev_index; + list_add_tail(&dev->list, &nand_ops->devs); + nand_ops->last_dev_index++; - gd->major = nandr->major; - gd->first_minor = (dev->devnum) << nandr->minorbits; + gd->major = nand_ops->major; + gd->first_minor = (dev->devnum) << nand_ops->minorbits; gd->fops = &nand_blktrans_ops; - if (part->name[0]) { - snprintf(gd->disk_name, - sizeof(gd->disk_name), - "%s_%s", - nandr->name, - part->name); - } else { - gd->flags = GENHD_FL_EXT_DEVT; - gd->minors = 255; - snprintf(gd->disk_name, - sizeof(gd->disk_name), - "%s%d", - nandr->name, - dev->devnum); - } + gd->flags = GENHD_FL_EXT_DEVT; + gd->minors = 255; + snprintf(gd->disk_name, + sizeof(gd->disk_name), + "%s%d", + nand_ops->name, + dev->devnum); + set_capacity(gd, dev->size); gd->private_data = dev; dev->blkcore_priv = gd; - gd->queue = nandr->rq; - gd->queue->bypass_depth = 1; + gd->queue = nand_ops->rq; if (part->type == PART_NO_ACCESS) dev->disable_access = 1; @@ -628,10 +511,7 @@ static int nand_add_dev(struct nand_blk_ops *nandr, struct nand_part *part) if (dev->readonly) set_disk_ro(gd, 1); - if (gd->flags != GENHD_FL_EXT_DEVT) - add_disk(gd); - else - device_add_disk(g_nand_device, gd); + device_add_disk(g_nand_device, gd, NULL); return 0; } @@ -646,81 +526,63 @@ static int nand_remove_dev(struct nand_blk_dev *dev) del_gendisk(gd); put_disk(gd); kfree(dev); + return 0; } -int nand_blk_add_whole_disk(void) +static int nand_blk_register(struct nand_blk_ops *nand_ops) { struct nand_part part; - - part.offset = 0; - part.size = rk_ftl_get_capacity(); - part.type = 0; - strncpy(part.name, "rknand", sizeof(part.name)); - nand_add_dev(&mytr, &part); - return 0; -} - -static int nand_blk_register(struct nand_blk_ops *nandr) -{ - int i, ret; - u32 part_size; - struct nand_part part; + int ret; rk_nand_schedule_enable_config(1); - nandr->quit = 0; - nandr->nand_th_quited = 0; + nand_ops->quit = 0; + nand_ops->nand_th_quited = 0; mtd_read_temp_buffer = kmalloc(MTD_RW_SECTORS * 512, GFP_KERNEL | GFP_DMA); - ret = register_blkdev(nandr->major, nandr->name); + ret = register_blkdev(nand_ops->major, nand_ops->name); if (ret) return -1; - spin_lock_init(&nandr->queue_lock); - init_completion(&nandr->thread_exit); - init_waitqueue_head(&nandr->thread_wq); + init_completion(&nand_ops->thread_exit); + init_waitqueue_head(&nand_ops->thread_wq); rknand_device_lock_init(); - nandr->rq = blk_init_queue(nand_blk_request, &nandr->queue_lock); - if (!nandr->rq) { - unregister_blkdev(nandr->major, nandr->name); - return -1; + /* Create the request queue */ + spin_lock_init(&nand_ops->queue_lock); + INIT_LIST_HEAD(&nand_ops->rq_list); + + nand_ops->tag_set = kzalloc(sizeof(*nand_ops->tag_set), GFP_KERNEL); + if (!nand_ops->tag_set) + goto tag_set_error; + + nand_ops->rq = blk_mq_init_sq_queue(nand_ops->tag_set, &rk_nand_mq_ops, 1, + BLK_MQ_F_SHOULD_MERGE | BLK_MQ_F_BLOCKING); + if (IS_ERR(nand_ops->rq)) { + ret = PTR_ERR(nand_ops->rq); + nand_ops->rq = NULL; + goto rq_init_error; } - blk_queue_max_hw_sectors(nandr->rq, MTD_RW_SECTORS); - blk_queue_max_segments(nandr->rq, MTD_RW_SECTORS); + blk_queue_max_hw_sectors(nand_ops->rq, MTD_RW_SECTORS); + blk_queue_max_segments(nand_ops->rq, MTD_RW_SECTORS); - blk_queue_flag_set(QUEUE_FLAG_DISCARD, nandr->rq); - blk_queue_max_discard_sectors(nandr->rq, UINT_MAX >> 9); + blk_queue_flag_set(QUEUE_FLAG_DISCARD, nand_ops->rq); + blk_queue_max_discard_sectors(nand_ops->rq, UINT_MAX >> 9); /* discard_granularity config to one nand page size 32KB*/ - nandr->rq->limits.discard_granularity = 64 << 9; + nand_ops->rq->limits.discard_granularity = 64 << 9; - nandr->rq->queuedata = nandr; - INIT_LIST_HEAD(&nandr->devs); - kthread_run(nand_blktrans_thread, (void *)nandr, "rknand"); + INIT_LIST_HEAD(&nand_ops->devs); + kthread_run(nand_gc_thread, (void *)nand_ops, "rknand_gc"); - g_max_part_num = nand_prase_cmdline_part(disk_array); - - nandr->last_dev_index = 0; + nand_ops->last_dev_index = 0; part.offset = 0; part.size = rk_ftl_get_capacity(); part.type = 0; part.name[0] = 0; - nand_add_dev(&mytr, &part); - - if (g_max_part_num) { - for (i = 0; i < g_max_part_num; i++) { - part_size = (disk_array[i].offset + disk_array[i].size); - pr_info("%10s: 0x%09llx -- 0x%09llx (%llu MB)\n", - disk_array[i].name, - (u64)disk_array[i].offset * 512, - (u64)part_size * 512, - (u64)disk_array[i].size / 2048); - nand_add_dev(nandr, &disk_array[i]); - } - } + nand_add_dev(nand_ops, &part); rknand_create_procfs(); rk_ftl_storage_sys_init(); @@ -735,25 +597,32 @@ static int nand_blk_register(struct nand_blk_ops *nandr) } return 0; + +rq_init_error: + kfree(nand_ops->tag_set); +tag_set_error: + unregister_blkdev(nand_ops->major, nand_ops->name); + + return ret; } -static void nand_blk_unregister(struct nand_blk_ops *nandr) +static void nand_blk_unregister(struct nand_blk_ops *nand_ops) { struct list_head *this, *next; if (!rk_nand_dev_initialised) return; - nandr->quit = 1; - wake_up(&nandr->thread_wq); - wait_for_completion(&nandr->thread_exit); - list_for_each_safe(this, next, &nandr->devs) { + nand_ops->quit = 1; + wake_up(&nand_ops->thread_wq); + wait_for_completion(&nand_ops->thread_exit); + list_for_each_safe(this, next, &nand_ops->devs) { struct nand_blk_dev *dev = list_entry(this, struct nand_blk_dev, list); nand_remove_dev(dev); } - blk_cleanup_queue(nandr->rq); - unregister_blkdev(nandr->major, nandr->name); + blk_cleanup_queue(nand_ops->rq); + unregister_blkdev(nand_ops->major, nand_ops->name); } void rknand_dev_flush(void) diff --git a/drivers/rk_nand/rk_nand_blk.h b/drivers/rk_nand/rk_nand_blk.h index dc4776fc5d6f..681c625f5081 100644 --- a/drivers/rk_nand/rk_nand_blk.h +++ b/drivers/rk_nand/rk_nand_blk.h @@ -22,7 +22,7 @@ struct nand_part { }; struct nand_blk_dev { - struct nand_blk_ops *nandr; + struct nand_blk_ops *nand_ops; struct list_head list; int devnum; unsigned long size; @@ -44,6 +44,11 @@ struct nand_blk_ops { wait_queue_head_t thread_wq; /* thread wait queue */ struct request_queue *rq; spinlock_t queue_lock; /* queue lock */ + + /* block-mq */ + struct list_head rq_list; + struct blk_mq_tag_set *tag_set; + struct list_head devs; struct module *owner; }; diff --git a/drivers/rk_nand/rk_zftl_arm32.S b/drivers/rk_nand/rk_zftl_arm32.S index 7af38f29b02e..065b984941f1 100644 --- a/drivers/rk_nand/rk_zftl_arm32.S +++ b/drivers/rk_nand/rk_zftl_arm32.S @@ -5,7 +5,7 @@ * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. - * date: 2021-03-15 + * date: 2021-07-16 * function: rk ftl v6 for rockchip soc base on arm v7 to support 3D/2D * TLC and MLC. */ @@ -198,6 +198,77 @@ _list_remove_node: .fnend .size _list_remove_node, .-_list_remove_node .align 2 + .type ndelay, %function +ndelay: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + @ link register save eliminated. + ldr r3, .L39 + add r0, r0, #996 + add r0, r0, #3 + umull r0, r1, r0, r3 + ldr r3, .L39+4 + ldr r3, [r3, #8] + mov r0, r1, lsr #6 + bx r3 @ indirect register sibling call +.L40: + .align 2 +.L39: + .word 274877907 + .word arm_delay_ops + .fnend + .size ndelay, .-ndelay + .align 2 + .type hynix_set_rr_para, %function +hynix_set_rr_para: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, lr} + .save {r3, r4, r5, r6, r7, r8, r9, lr} + mov r6, r0, asl #8 + ldr r3, .L48 + ldr r2, [r3, #1040] + ldr r8, [r3, #1044] + ldrb ip, [r2, #113] @ zero_extendqisi2 + mov r3, r2 + add r7, r8, r6 + mul r5, r1, ip + ldrb r1, [r3, #112]! @ zero_extendqisi2 + sub ip, ip, #1 + cmp r1, #8 + mov r1, #54 + str r1, [r7, #2056] + movne r4, #160 + mlane r5, r4, r0, r5 + add r5, r5, #32 + add r3, r3, r5 + add r5, r2, #127 + sub r9, r3, #1 + add r4, r3, ip +.L44: + cmp r9, r4 + beq .L47 + ldrb r3, [r5, #1]! @ zero_extendqisi2 + mov r0, #120 + str r3, [r7, #2052] + bl ndelay + ldrsb r3, [r9, #1]! + str r3, [r7, #2048] + b .L44 +.L47: + add r6, r8, r6 + mov r3, #22 + str r3, [r6, #2056] + ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, pc} +.L49: + .align 2 +.L48: + .word .LANCHOR0 + .fnend + .size hynix_set_rr_para, .-hynix_set_rr_para + .align 2 .type zftl_debug_proc_open, %function zftl_debug_proc_open: .fnstart @@ -207,14 +278,14 @@ zftl_debug_proc_open: .save {r4, lr} mov r4, r1 bl PDE_DATA - ldr r1, .L40 + ldr r1, .L52 mov r2, r0 mov r0, r4 ldmfd sp!, {r4, lr} b single_open -.L41: +.L53: .align 2 -.L40: +.L52: .word zftl_debug_proc_show .fnend .size zftl_debug_proc_open, .-zftl_debug_proc_open @@ -227,19 +298,19 @@ zftl_debug_proc_show: stmfd sp!, {r4, lr} .save {r4, lr} mov r4, r0 - ldr r1, .L44 - ldr r2, .L44+4 + ldr r1, .L56 + ldr r2, .L56+4 bl seq_printf - ldr r3, .L44+8 + ldr r3, .L56+8 mov r0, r4 - ldr r1, .L44+12 + ldr r1, .L56+12 ldr r2, [r3] bl seq_printf mov r0, #0 ldmfd sp!, {r4, pc} -.L45: +.L57: .align 2 -.L44: +.L56: .word .LC1 .word .LC2 .word .LANCHOR2 @@ -254,45 +325,45 @@ zftl_flash_suspend: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L50 + ldr r3, .L62 ldrb r2, [r3, #1028] @ zero_extendqisi2 cmp r2, #9 - ldr r2, [r3, #1040] + ldr r2, [r3, #1044] ldr r1, [r2] - str r1, [r3, #1044] - ldr r1, [r2, #4] str r1, [r3, #1048] - bne .L47 - ldr r1, [r2, #16] + ldr r1, [r2, #4] str r1, [r3, #1052] - ldr r1, [r2, #32] + bne .L59 + ldr r1, [r2, #16] str r1, [r3, #1056] - ldr r1, [r2, #80] + ldr r1, [r2, #32] str r1, [r3, #1060] - ldr r1, [r2, #84] + ldr r1, [r2, #80] str r1, [r3, #1064] + ldr r1, [r2, #84] + str r1, [r3, #1068] ldr r1, [r2, #520] ldr r2, [r2, #8] - str r1, [r3, #1068] - b .L49 -.L47: + str r1, [r3, #1072] + b .L61 +.L59: ldr r1, [r2, #8] - str r1, [r3, #1052] - ldr r1, [r2, #12] str r1, [r3, #1056] - ldr r1, [r2, #304] + ldr r1, [r2, #12] str r1, [r3, #1060] - ldr r1, [r2, #308] + ldr r1, [r2, #304] str r1, [r3, #1064] + ldr r1, [r2, #308] + str r1, [r3, #1068] ldr r1, [r2, #336] ldr r2, [r2, #344] - str r1, [r3, #1068] -.L49: - str r2, [r3, #1072] + str r1, [r3, #1072] +.L61: + str r2, [r3, #1076] bx lr -.L51: +.L63: .align 2 -.L50: +.L62: .word .LANCHOR0 .fnend .size zftl_flash_suspend, .-zftl_flash_suspend @@ -302,8 +373,8 @@ _insert_free_list: .fnstart @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L62 - movw ip, #1076 + ldr r3, .L74 + movw ip, #1080 ldrh ip, [r3, ip] cmp ip, r1 bxls lr @@ -323,12 +394,12 @@ _insert_free_list: strh r3, [r7, r6] @ movhi ldr r3, [r0] cmp r3, #0 - beq .L61 - ldr r5, [r4, #1080] - movw r8, #1084 - ldrh r10, [r4, r8] + beq .L73 + ldr r5, [r4, #1084] + add r8, r4, #1088 mov r2, r1, asl #2 ldr r9, [r4, #1036] + ldrh r10, [r8] movw fp, #65535 ldr r8, [r5, r1, asl #2] ldrh r2, [r5, r2] @@ -340,11 +411,11 @@ _insert_free_list: rsb r8, r9, r3 uxth r2, r2 str r2, [sp] - ldr r2, .L62+4 + ldr r2, .L74+4 mov r8, r8, asr #1 mul r2, r2, r8 uxth r2, r2 -.L57: +.L69: ldr ip, [r5, r2, asl #2] mov r8, r2, asl #2 ubfx ip, ip, #11, #8 @@ -355,42 +426,42 @@ _insert_free_list: ldr ip, [sp] uxth r8, r8 cmp r8, ip - bcs .L55 + bcs .L67 ldrh ip, [r3] cmp ip, fp streqh r2, [lr, #2] @ movhi streqh r1, [r3] @ movhi - beq .L52 -.L56: + beq .L64 +.L68: ldr r3, [sp, #4] mov r2, ip mla r3, r3, ip, r9 - b .L57 -.L55: + b .L69 +.L67: ldrh ip, [r3, #2] strh ip, [lr, #2] @ movhi strh r2, [r7, r6] @ movhi ldr r2, [r0] cmp r3, r2 - bne .L58 + bne .L70 strh r1, [r3, #2] @ movhi -.L61: +.L73: str lr, [r0] - b .L52 -.L58: + b .L64 +.L70: ldrh ip, [r3, #2] mov r2, #6 ldr r0, [r4, #1036] mul r2, r2, ip strh r1, [r0, r2] @ movhi strh r1, [r3, #2] @ movhi -.L52: +.L64: add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L63: +.L75: .align 2 -.L62: +.L74: .word .LANCHOR0 .word -1431655765 .fnend @@ -401,63 +472,63 @@ _insert_data_list: .fnstart @ args = 0, pretend = 0, frame = 24 @ frame_needed = 0, uses_anonymous_args = 0 - ldr ip, .L85 - movw r3, #1076 - ldrh r3, [ip, r3] - cmp r3, r1 + ldr r3, .L97 + movw ip, #1080 + ldrh ip, [r3, ip] + cmp ip, r1 bxls lr stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r5, #6 - ldrh r3, [r2] + ldrh ip, [r2] + mov r4, r3 + mul r5, r5, r1 + add ip, ip, #1 + strh ip, [r2] @ movhi .pad #28 sub sp, sp, #28 - mul r5, r5, r1 - add r3, r3, #1 - strh r3, [r2] @ movhi + ldr r10, [r3, #1036] mvn r3, #0 - ldr r10, [ip, #1036] add lr, r10, r5 strh r3, [lr, #2] @ movhi strh r3, [r10, r5] @ movhi ldr r3, [r0] cmp r3, #0 - beq .L84 - ldr r2, [ip, #1088] - movw r8, #1084 - ldr r9, [ip, #1080] - ldrh ip, [ip, r8] + beq .L96 + ldr r2, [r4, #1092] + add r8, r4, #1088 + ldr r9, [r4, #1084] + ldrh r8, [r8] str r2, [sp, #4] mov r2, r1, asl #1 - ldr r6, [sp, #4] - ldrh r4, [lr, #4] - str ip, [sp, #8] - ldrh r7, [r6, r2] - muls ip, r4, r7 - ldr r6, [r9, r1, asl #2] + ldr ip, [sp, #4] + ldr r7, [r9, r1, asl #2] + ldrh r6, [lr, #4] + ldrh ip, [ip, r2] + muls ip, r6, ip + str r8, [sp, #8] + ubfx r7, r7, #11, #8 + ldrneh r8, [sp, #8] mov r2, r1, asl #2 - ldrneh r7, [sp, #8] - ubfx r6, r6, #11, #8 ldrh r2, [r9, r2] - smulbbne r6, r6, r7 + smulbbne r7, r7, r8 ubfx r2, r2, #0, #11 - addne r2, r2, r6 + addne r2, r2, r7 uxtahne ip, ip, r2 - cmp r4, #0 - ldr r4, .L85 - mvneq ip, #0 ldr r2, [r4, #1036] + cmp r6, #0 rsb r6, r2, r3 str r2, [sp, #12] - ldr r2, .L85+4 + mvneq ip, #0 + ldr r2, .L97+4 mov r6, r6, asr #1 mul r2, r2, r6 - movw r6, #1076 + movw r6, #1080 ldrh r4, [r4, r6] mov r6, #0 str r4, [sp, #16] uxth r2, r2 -.L74: +.L86: add r6, r6, #1 ldr r4, [sp, #16] uxth r6, r6 @@ -467,7 +538,7 @@ _insert_data_list: cmp r1, r2 orreq r4, r4, #1 cmp r4, #0 - bne .L64 + bne .L76 ldr r7, [sp, #4] mov r4, r2, asl #1 ldr r8, [r9, r2, asl #2] @@ -486,45 +557,45 @@ _insert_data_list: uxtahne r4, r4, r8 cmp fp, #0 cmpne r4, ip - bcs .L72 + bcs .L84 ldrh r4, [r3] movw r7, #65535 cmp r4, r7 streqh r2, [lr, #2] @ movhi streqh r1, [r3] @ movhi - beq .L64 -.L73: + beq .L76 +.L85: ldr r2, [sp, #12] mov r3, #6 mla r3, r3, r4, r2 mov r2, r4 - b .L74 -.L72: + b .L86 +.L84: ldrh ip, [r3, #2] strh ip, [lr, #2] @ movhi strh r2, [r10, r5] @ movhi ldr r2, [r0] cmp r3, r2 - bne .L75 + bne .L87 strh r1, [r3, #2] @ movhi -.L84: +.L96: str lr, [r0] - b .L64 -.L75: - ldr r2, .L85 + b .L76 +.L87: + ldr r2, .L97 ldrh ip, [r3, #2] ldr r0, [r2, #1036] mov r2, #6 mul r2, r2, ip strh r1, [r0, r2] @ movhi strh r1, [r3, #2] @ movhi -.L64: +.L76: add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L86: +.L98: .align 2 -.L85: +.L97: .word .LANCHOR0 .word -1431655765 .fnend @@ -538,9 +609,9 @@ _list_update_data_list: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} .save {r4, r5, r6, r7, r8, r9, r10, lr} mov r4, r1 - ldr r1, .L98 + ldr r1, .L110 mov r6, r0 - ldr r3, [r1, #1092] + ldr r3, [r1, #1096] ldrh r0, [r3, #16] cmp r0, r4 ldmeqfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} @@ -562,25 +633,25 @@ _list_update_data_list: mov r7, r2 movw r2, #65535 cmp r3, r2 - bne .L91 + bne .L103 ldrh r2, [r10, r8] cmp r2, r3 - bne .L91 - ldr r1, .L98+4 + bne .L103 + ldr r1, .L110+4 movw r2, #273 - ldr r0, .L98+8 + ldr r0, .L110+8 bl printk bl dump_stack -.L91: +.L103: ldrh r2, [r9, #2] movw r3, #65535 cmp r2, r3 - bne .L92 + bne .L104 ldrh r3, [r10, r8] cmp r3, r2 ldmeqfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L92: - ldr r0, [r5, #1088] +.L104: + ldr r0, [r5, #1092] mov r3, r4, asl #1 ldrh r1, [r0, r3] ldrh r3, [r9, #4] @@ -588,7 +659,7 @@ _list_update_data_list: mulne r1, r3, r1 mov r3, #6 mul r2, r3, r2 - ldr r3, .L98+12 + ldr r3, .L110+12 mvneq r1, #0 mov ip, r2, asr #1 mul r3, r3, ip @@ -611,9 +682,9 @@ _list_update_data_list: mov r2, r7 ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} b _insert_data_list -.L99: +.L111: .align 2 -.L98: +.L110: .word .LANCHOR0 .word .LANCHOR1+20 .word .LC0 @@ -633,57 +704,163 @@ rk_simple_strtoull.constprop.34: cmp r3, #48 movne r2, r0 movne lr, #10 - bne .L101 + bne .L113 ldrb r3, [r0, #1] @ zero_extendqisi2 add r2, r0, #1 orr r3, r3, #32 cmp r3, #120 - bne .L112 + bne .L124 ldrb r3, [r0, #2] @ zero_extendqisi2 bic ip, r3, #32 sub ip, ip, #65 cmp ip, #25 - bls .L102 + bls .L114 sub r3, r3, #48 cmp r3, #9 - bls .L102 -.L112: + bls .L114 +.L124: mov lr, #8 -.L101: +.L113: mov r0, #0 -.L103: +.L115: mov r4, r2 ldrb ip, [r2], #1 @ zero_extendqisi2 bic r3, ip, #32 sub r3, r3, #65 cmp r3, #25 sub r3, ip, #48 - bls .L104 + bls .L116 cmp r3, #9 - bls .L104 -.L108: + bls .L116 +.L120: cmp r1, #0 - bne .L105 + bne .L117 ldmfd sp!, {r4, pc} -.L105: +.L117: str r4, [r1] ldmfd sp!, {r4, pc} -.L102: +.L114: add r2, r0, #2 mov lr, #16 - b .L101 -.L104: + b .L113 +.L116: cmp r3, #9 orrhi ip, ip, #32 subhi r3, ip, #87 cmp r3, lr - bcs .L108 + bcs .L120 mla r0, lr, r0, r3 - b .L103 + b .L115 .fnend .size rk_simple_strtoull.constprop.34, .-rk_simple_strtoull.constprop.34 .text .align 2 + .global flash_read_status + .type flash_read_status, %function +flash_read_status: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r4, lr} + .save {r4, lr} + mov r3, #112 + mov r4, r0 + str r3, [r0, #8] + mov r0, #120 + bl ndelay + ldr r0, [r4] + uxtb r0, r0 + ldmfd sp!, {r4, pc} + .fnend + .size flash_read_status, .-flash_read_status + .align 2 + .global toshiba_set_rr_para + .type toshiba_set_rr_para, %function +toshiba_set_rr_para: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} + .save {r4, r5, r6, r7, r8, r9, r10, lr} + add r8, r1, r1, asl #2 + ldr r9, .L139 + mov r5, r0 + ldr r7, .L139+4 + mov r6, r1 + add r10, r9, #44 + mov r4, #0 +.L130: + ldrb r3, [r7, #1101] @ zero_extendqisi2 + cmp r4, r3 + bcs .L138 + mov r3, #85 + str r3, [r5, #8] + ldrsb r3, [r4, r10] + mov r0, #200 + str r3, [r5, #4] + bl ndelay + ldrb r3, [r7, #1100] @ zero_extendqisi2 + cmp r3, #34 + addeq r3, r4, r8 + addeq r3, r10, r3 + beq .L137 + cmp r3, #35 + addne r3, r9, r6 + ldrnesb r3, [r3, #188] + bne .L136 + ldr r3, .L139+8 + add r2, r4, r8 + add r3, r3, r2 +.L137: + ldrsb r3, [r3, #5] +.L136: + str r3, [r5] + add r4, r4, #1 + b .L130 +.L138: + ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} +.L140: + .align 2 +.L139: + .word .LANCHOR1 + .word .LANCHOR0 + .word .LANCHOR1+92 + .fnend + .size toshiba_set_rr_para, .-toshiba_set_rr_para + .align 2 + .global hynix_reconfig_rr_para + .type hynix_reconfig_rr_para, %function +hynix_reconfig_rr_para: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r3, r4, r5, lr} + .save {r3, r4, r5, lr} + ldr r5, .L147 + ldrb r2, [r5, #1100] @ zero_extendqisi2 + sub r2, r2, #1 + cmp r2, #7 + ldmhifd sp!, {r3, r4, r5, pc} + ldr r2, [r5, #1040] + add r2, r2, r0 + ldrb r2, [r2, #120] @ zero_extendqisi2 + cmp r2, #0 + ldmeqfd sp!, {r3, r4, r5, pc} + mov r1, #0 + mov r4, r0 + bl hynix_set_rr_para + ldr r2, [r5, #1040] + mov r3, #0 + add r4, r2, r4 + strb r3, [r4, #120] + ldmfd sp!, {r3, r4, r5, pc} +.L148: + .align 2 +.L147: + .word .LANCHOR0 + .fnend + .size hynix_reconfig_rr_para, .-hynix_reconfig_rr_para + .align 2 .global nand_flash_print_info .type nand_flash_print_info, %function nand_flash_print_info: @@ -693,19 +870,19 @@ nand_flash_print_info: stmfd sp!, {r0, r1, r2, r3, r4, lr} .save {r4, lr} .pad #16 - ldr r4, .L234 + ldr r4, .L268 ldr r3, [r4] tst r3, #4096 - beq .L116 - ldr r0, .L234+4 - ldr r1, .L234+8 + beq .L150 + ldr r0, .L268+4 + ldr r1, .L268+8 bl printk -.L116: +.L150: ldr r3, [r4] tst r3, #4096 - beq .L117 - ldr r3, .L234+12 - ldr r0, [r3, #1096] + beq .L151 + ldr r3, .L268+12 + ldr r0, [r3, #1104] ldrb ip, [r0, #4] @ zero_extendqisi2 ldrb r1, [r0, #1] @ zero_extendqisi2 ldrb r2, [r0, #2] @ zero_extendqisi2 @@ -715,281 +892,281 @@ nand_flash_print_info: str ip, [sp, #4] ldrb r0, [r0, #6] @ zero_extendqisi2 str r0, [sp, #8] - ldr r0, .L234+16 + ldr r0, .L268+16 bl printk -.L117: +.L151: ldr r3, [r4] tst r3, #4096 - beq .L118 - ldr r3, .L234+12 - ldr r0, .L234+20 - ldr r3, [r3, #1096] + beq .L152 + ldr r3, .L268+12 + ldr r0, .L268+20 + ldr r3, [r3, #1104] ldrb r1, [r3, #8] @ zero_extendqisi2 bl printk -.L118: +.L152: ldr r3, [r4] tst r3, #4096 - beq .L119 - ldr r3, .L234+12 - ldr r0, .L234+24 - ldr r3, [r3, #1096] + beq .L153 + ldr r3, .L268+12 + ldr r0, .L268+24 + ldr r3, [r3, #1104] ldrb r1, [r3, #9] @ zero_extendqisi2 bl printk -.L119: +.L153: ldr r3, [r4] tst r3, #4096 - beq .L120 - ldr r3, .L234+12 - ldr r0, .L234+28 - ldr r3, [r3, #1096] + beq .L154 + ldr r3, .L268+12 + ldr r0, .L268+28 + ldr r3, [r3, #1104] ldrh r1, [r3, #10] bl printk -.L120: +.L154: ldr r3, [r4] tst r3, #4096 - beq .L121 - ldr r3, .L234+12 - ldr r0, .L234+32 - ldr r3, [r3, #1096] + beq .L155 + ldr r3, .L268+12 + ldr r0, .L268+32 + ldr r3, [r3, #1104] ldrb r1, [r3, #12] @ zero_extendqisi2 bl printk -.L121: +.L155: ldr r3, [r4] tst r3, #4096 - beq .L122 - ldr r3, .L234+12 - ldr r0, .L234+36 - ldr r3, [r3, #1096] + beq .L156 + ldr r3, .L268+12 + ldr r0, .L268+36 + ldr r3, [r3, #1104] ldrb r1, [r3, #13] @ zero_extendqisi2 bl printk -.L122: +.L156: ldr r3, [r4] tst r3, #4096 - beq .L123 - ldr r3, .L234+12 - ldr r0, .L234+40 - ldr r3, [r3, #1096] + beq .L157 + ldr r3, .L268+12 + ldr r0, .L268+40 + ldr r3, [r3, #1104] ldrh r1, [r3, #14] bl printk -.L123: +.L157: ldr r3, [r4] tst r3, #4096 - beq .L124 - ldr r3, .L234+12 - ldr r0, .L234+44 - ldr r3, [r3, #1096] + beq .L158 + ldr r3, .L268+12 + ldr r0, .L268+44 + ldr r3, [r3, #1104] ldrb r1, [r3, #23] @ zero_extendqisi2 bl printk -.L124: +.L158: ldr r3, [r4] tst r3, #4096 - beq .L125 - ldr r3, .L234+12 - ldr r0, .L234+48 - ldr r3, [r3, #1096] + beq .L159 + ldr r3, .L268+12 + ldr r0, .L268+48 + ldr r3, [r3, #1104] ldrb r1, [r3, #18] @ zero_extendqisi2 bl printk -.L125: +.L159: ldr r3, [r4] tst r3, #4096 - beq .L126 - ldr r3, .L234+12 - ldr r0, .L234+52 - ldr r3, [r3, #1096] + beq .L160 + ldr r3, .L268+12 + ldr r0, .L268+52 + ldr r3, [r3, #1104] ldrb r1, [r3, #19] @ zero_extendqisi2 bl printk -.L126: +.L160: ldr r3, [r4] tst r3, #4096 - beq .L127 - ldr r3, .L234+12 - ldr r0, .L234+56 - ldr r3, [r3, #1096] + beq .L161 + ldr r3, .L268+12 + ldr r0, .L268+56 + ldr r3, [r3, #1104] ldrb r1, [r3, #20] @ zero_extendqisi2 bl printk -.L127: +.L161: ldr r3, [r4] tst r3, #4096 - beq .L128 - ldr r3, .L234+12 - ldr r0, .L234+60 - ldrb r1, [r3, #1100] @ zero_extendqisi2 + beq .L162 + ldr r3, .L268+12 + ldr r0, .L268+60 + ldrb r1, [r3, #1108] @ zero_extendqisi2 bl printk -.L128: +.L162: ldr r3, [r4] tst r3, #4096 - beq .L129 - ldr r3, .L234+12 - ldr r0, .L234+64 - ldr r3, [r3, #1096] + beq .L163 + ldr r3, .L268+12 + ldr r0, .L268+64 + ldr r3, [r3, #1104] ldrb r1, [r3, #22] @ zero_extendqisi2 bl printk -.L129: +.L163: ldr r3, [r4] tst r3, #4096 - beq .L130 - ldr r3, .L234+12 - ldr r0, .L234+68 - ldrb r1, [r3, #1101] @ zero_extendqisi2 + beq .L164 + ldr r3, .L268+12 + ldr r0, .L268+68 + ldrb r1, [r3, #1109] @ zero_extendqisi2 bl printk -.L130: +.L164: ldr r3, [r4] tst r3, #4096 - beq .L131 - ldr r3, .L234+12 - ldr r0, .L234+72 - ldr r3, [r3, #1096] + beq .L165 + ldr r3, .L268+12 + ldr r0, .L268+72 + ldr r3, [r3, #1104] ldrh r1, [r3, #16] and r1, r1, #1 bl printk -.L131: +.L165: ldr r3, [r4] tst r3, #4096 - beq .L132 - ldr r3, .L234+12 - ldr r0, .L234+76 - ldr r3, [r3, #1096] + beq .L166 + ldr r3, .L268+12 + ldr r0, .L268+76 + ldr r3, [r3, #1104] ldrh r1, [r3, #16] ubfx r1, r1, #1, #1 bl printk -.L132: +.L166: ldr r3, [r4] tst r3, #4096 - beq .L133 - ldr r3, .L234+12 - ldr r0, .L234+80 - ldr r3, [r3, #1096] + beq .L167 + ldr r3, .L268+12 + ldr r0, .L268+80 + ldr r3, [r3, #1104] ldrh r1, [r3, #16] ubfx r1, r1, #2, #1 bl printk -.L133: +.L167: ldr r3, [r4] tst r3, #4096 - beq .L134 - ldr r3, .L234+12 - ldr r0, .L234+84 - ldr r3, [r3, #1096] + beq .L168 + ldr r3, .L268+12 + ldr r0, .L268+84 + ldr r3, [r3, #1104] ldrh r1, [r3, #16] ubfx r1, r1, #3, #1 bl printk -.L134: +.L168: ldr r3, [r4] tst r3, #4096 - beq .L135 - ldr r3, .L234+12 - ldr r0, .L234+88 - ldr r3, [r3, #1096] + beq .L169 + ldr r3, .L268+12 + ldr r0, .L268+88 + ldr r3, [r3, #1104] ldrh r1, [r3, #16] ubfx r1, r1, #4, #1 bl printk -.L135: +.L169: ldr r3, [r4] tst r3, #4096 - beq .L136 - ldr r3, .L234+12 - ldr r0, .L234+92 - ldr r3, [r3, #1096] + beq .L170 + ldr r3, .L268+12 + ldr r0, .L268+92 + ldr r3, [r3, #1104] ldrh r1, [r3, #16] ubfx r1, r1, #5, #1 bl printk -.L136: +.L170: ldr r3, [r4] tst r3, #4096 - beq .L137 - ldr r3, .L234+12 - ldr r0, .L234+96 - ldr r3, [r3, #1096] + beq .L171 + ldr r3, .L268+12 + ldr r0, .L268+96 + ldr r3, [r3, #1104] ldrh r1, [r3, #16] ubfx r1, r1, #6, #1 bl printk -.L137: +.L171: ldr r3, [r4] tst r3, #4096 - beq .L138 - ldr r3, .L234+12 - ldr r0, .L234+100 - ldr r3, [r3, #1096] + beq .L172 + ldr r3, .L268+12 + ldr r0, .L268+100 + ldr r3, [r3, #1104] ldrh r1, [r3, #16] ubfx r1, r1, #7, #1 bl printk -.L138: +.L172: ldr r3, [r4] tst r3, #4096 - beq .L139 - ldr r3, .L234+12 - ldr r0, .L234+104 - ldr r3, [r3, #1096] + beq .L173 + ldr r3, .L268+12 + ldr r0, .L268+104 + ldr r3, [r3, #1104] ldrh r1, [r3, #16] ubfx r1, r1, #8, #1 bl printk -.L139: +.L173: ldr r3, [r4] tst r3, #4096 - beq .L140 - ldr r3, .L234+12 - ldr r0, .L234+108 - ldr r3, [r3, #1096] + beq .L174 + ldr r3, .L268+12 + ldr r0, .L268+108 + ldr r3, [r3, #1104] ldrh r1, [r3, #16] ubfx r1, r1, #9, #1 bl printk -.L140: +.L174: ldr r3, [r4] tst r3, #4096 - beq .L141 - ldr r3, .L234+12 - ldr r0, .L234+112 - ldr r3, [r3, #1096] + beq .L175 + ldr r3, .L268+12 + ldr r0, .L268+112 + ldr r3, [r3, #1104] ldrh r1, [r3, #16] ubfx r1, r1, #10, #1 bl printk -.L141: +.L175: ldr r3, [r4] tst r3, #4096 - beq .L142 - ldr r3, .L234+12 - ldr r0, .L234+116 + beq .L176 + ldr r3, .L268+12 + ldr r0, .L268+116 ldrb r1, [r3] @ zero_extendqisi2 - ldrb r2, [r3, #1102] @ zero_extendqisi2 + ldrb r2, [r3, #1110] @ zero_extendqisi2 bl printk -.L142: +.L176: ldr r3, [r4] tst r3, #4096 - beq .L143 - ldr r3, .L234+12 - ldr r0, .L234+120 - ldrb r1, [r3, #1113] @ zero_extendqisi2 - ldrb r2, [r3, #1114] @ zero_extendqisi2 + beq .L177 + ldr r3, .L268+12 + ldr r0, .L268+120 + ldrb r1, [r3, #1121] @ zero_extendqisi2 + ldrb r2, [r3, #1122] @ zero_extendqisi2 bl printk -.L143: +.L177: ldr r3, [r4] tst r3, #4096 - beq .L144 - ldr r3, .L234+12 - ldr r0, .L234+124 - ldrb r1, [r3, #1111] @ zero_extendqisi2 - ldrb r2, [r3, #1112] @ zero_extendqisi2 + beq .L178 + ldr r3, .L268+12 + ldr r0, .L268+124 + ldrb r1, [r3, #1119] @ zero_extendqisi2 + ldrb r2, [r3, #1120] @ zero_extendqisi2 bl printk -.L144: +.L178: ldr r3, [r4] tst r3, #4096 - beq .L115 - ldr r3, .L234+12 - ldr r0, .L234+128 - ldrb r1, [r3, #1135] @ zero_extendqisi2 + beq .L149 + ldr r3, .L268+12 + ldr r0, .L268+128 + ldrb r1, [r3, #1143] @ zero_extendqisi2 add sp, sp, #16 @ sp needed ldmfd sp!, {r4, lr} b printk -.L115: +.L149: add sp, sp, #16 @ sp needed ldmfd sp!, {r4, pc} -.L235: +.L269: .align 2 -.L234: +.L268: .word .LANCHOR2 .word .LC4 - .word .LANCHOR1+44 + .word .LANCHOR1+196 .word .LANCHOR0 .word .LC5 .word .LC6 @@ -1023,152 +1200,6 @@ nand_flash_print_info: .fnend .size nand_flash_print_info, .-nand_flash_print_info .align 2 - .global nandc_init - .type nandc_init, %function -nandc_init: - .fnstart - @ args = 0, pretend = 0, frame = 8 - @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r4, r5, r6, r7, lr} - .save {r4, r5, r6, r7, lr} - .pad #20 - sub sp, sp, #20 - ldr r5, .L256 - mov r3, #0 - str r3, [sp, #12] - mov r7, r0 - ldr r3, [r5] - tst r3, #4096 - beq .L237 - ldr r0, .L256+4 - mov r2, r7 - ldr r1, .L256+8 - bl printk -.L237: - ldr r4, .L256+12 - mov r3, #6 - ldr r2, [r7, #352] - ldr r6, .L256+12 - strb r3, [r4, #1028] - ldr r3, .L256+16 - str r7, [r4, #1040] - cmp r2, r3 - ldr r2, [r7, #128] - moveq r3, #8 - streqb r3, [r4, #1028] - ldr r3, .L256+20 - cmp r2, r3 - ldr r2, .L256+24 - moveq r3, #9 - streqb r3, [r4, #1028] - ldrb r3, [r4, #1028] @ zero_extendqisi2 - cmp r3, #9 - bne .L240 - mov r3, #1 - strb r3, [r6, #1136] - ldr r3, [sp, #12] - orr r3, r3, #256 - str r3, [sp, #12] - ldr r3, [sp, #12] - bic r3, r3, #1835008 - orr r3, r3, #524288 - str r3, [sp, #12] - ldr r3, [sp, #12] - str r3, [r7] - mov r3, #0 - ldr r0, [r6, #1040] - str r3, [r0, #520] - movw r3, #4161 - str r3, [r0, #4] - movw r3, #8321 - str r3, [r0, #8] - mov r3, #38 - str r2, [r0, #80] - str r3, [r0, #84] - mov r3, #39 - str r3, [r0, #84] - ldr r3, [r5] - tst r3, #4096 - beq .L242 - ldr r1, [r0] - ldr r2, [r0, #8] - ldr r3, [r0, #80] - ldr ip, [r0, #84] - ldr r0, [r0, #88] - b .L255 -.L240: - ldr r3, [sp, #12] - mov r1, #0 - strb r1, [r6, #1136] - mov r0, #2048 - orr r3, r3, #256 - str r3, [sp, #12] - ldr r3, [sp, #12] - bic r3, r3, #117440512 - orr r3, r3, #16777216 - str r3, [sp, #12] - ldr r3, [sp, #12] - str r3, [r7] - ldr r3, [r6, #1040] - str r1, [r3, #336] - movw r1, #4193 - str r1, [r3, #4] - movw r1, #8321 - str r1, [r3, #344] - str r2, [r3, #304] - mov r2, #38 - str r2, [r3, #308] - mov r2, #39 - str r2, [r3, #308] - bl ftl_malloc - ldr r3, [r5] - tst r3, #4096 - str r0, [r6, #1140] - beq .L242 - ldr r0, [r6, #1040] - ldr r1, [r0] - ldr r2, [r0, #344] - ldr r3, [r0, #304] - ldr ip, [r0, #308] - ldr r0, [r0, #312] -.L255: - str r0, [sp, #4] - str ip, [sp] - ldr r0, .L256+28 - bl printk -.L242: - movw r2, #1170 - mov r3, #1 - strb r3, [r4, #1168] - mov r3, #0 - strh r3, [r4, r2] @ movhi - strb r3, [r4, #1172] - ldr r3, [r5] - tst r3, #4096 - beq .L236 - ldr r3, .L256+12 - ldr r0, .L256+32 - ldrb r1, [r3, #1028] @ zero_extendqisi2 - bl printk -.L236: - add sp, sp, #20 - @ sp needed - ldmfd sp!, {r4, r5, r6, r7, pc} -.L257: - .align 2 -.L256: - .word .LANCHOR2 - .word .LC34 - .word .LANCHOR1+68 - .word .LANCHOR0 - .word 1446522928 - .word 1446588464 - .word 1052675 - .word .LC35 - .word .LC36 - .fnend - .size nandc_init, .-nandc_init - .align 2 .global timer_delay_ns .type timer_delay_ns, %function timer_delay_ns: @@ -1176,178 +1207,10 @@ timer_delay_ns: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L259 - add r0, r0, #996 - add r0, r0, #3 - umull r0, r1, r0, r3 - ldr r3, .L259+4 - ldr r3, [r3, #8] - mov r0, r1, lsr #6 - bx r3 @ indirect register sibling call -.L260: - .align 2 -.L259: - .word 274877907 - .word arm_delay_ops + b ndelay .fnend .size timer_delay_ns, .-timer_delay_ns .align 2 - .global flash_read_status - .type flash_read_status, %function -flash_read_status: - .fnstart - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r4, lr} - .save {r4, lr} - mov r3, #112 - mov r4, r0 - str r3, [r0, #8] - mov r0, #120 - bl timer_delay_ns - ldr r0, [r4] - uxtb r0, r0 - ldmfd sp!, {r4, pc} - .fnend - .size flash_read_status, .-flash_read_status - .align 2 - .global toshiba_set_rr_para - .type toshiba_set_rr_para, %function -toshiba_set_rr_para: - .fnstart - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} - .save {r4, r5, r6, r7, r8, r9, r10, lr} - add r8, r1, r1, asl #2 - ldr r9, .L273 - mov r5, r0 - ldr r7, .L273+4 - mov r6, r1 - add r10, r9, #80 - mov r4, #0 -.L264: - ldrb r3, [r7, #1174] @ zero_extendqisi2 - cmp r4, r3 - bcs .L272 - mov r3, #85 - str r3, [r5, #8] - ldrsb r3, [r4, r10] - mov r0, #200 - str r3, [r5, #4] - bl timer_delay_ns - ldrb r3, [r7, #1173] @ zero_extendqisi2 - cmp r3, #34 - addeq r3, r4, r8 - addeq r3, r10, r3 - beq .L271 - cmp r3, #35 - addne r3, r9, r6 - ldrnesb r3, [r3, #224] - bne .L270 - ldr r3, .L273+8 - add r2, r4, r8 - add r3, r3, r2 -.L271: - ldrsb r3, [r3, #5] -.L270: - str r3, [r5] - add r4, r4, #1 - b .L264 -.L272: - ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L274: - .align 2 -.L273: - .word .LANCHOR1 - .word .LANCHOR0 - .word .LANCHOR1+128 - .fnend - .size toshiba_set_rr_para, .-toshiba_set_rr_para - .align 2 - .type hynix_set_rr_para, %function -hynix_set_rr_para: - .fnstart - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, lr} - .save {r3, r4, r5, r6, r7, r8, r9, lr} - mov r5, r0, asl #8 - ldr r3, .L282 - ldr r4, [r3, #1176] - ldr r7, [r3, #1040] - add lr, r4, #128 - add r9, r4, #127 - mov r3, r4 - ldrb ip, [r4, #113] @ zero_extendqisi2 - ldrb r2, [r3, #112]! @ zero_extendqisi2 - add r6, r7, r5 - cmp r2, #8 - mul r1, r1, ip - movne r2, #160 - mlane r1, r2, r0, r1 - sub ip, ip, #1 - add r8, lr, ip - mov r2, #54 - str r2, [r6, #2056] - add r1, r1, #32 - add r3, r3, r1 - sub r4, r3, #1 -.L278: - cmp r9, r8 - beq .L281 - ldrb r3, [r9, #1]! @ zero_extendqisi2 - mov r0, #120 - str r3, [r6, #2052] - bl timer_delay_ns - ldrsb r3, [r4, #1]! - str r3, [r6, #2048] - b .L278 -.L281: - add r5, r7, r5 - mov r3, #22 - str r3, [r5, #2056] - ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, pc} -.L283: - .align 2 -.L282: - .word .LANCHOR0 - .fnend - .size hynix_set_rr_para, .-hynix_set_rr_para - .align 2 - .global hynix_reconfig_rr_para - .type hynix_reconfig_rr_para, %function -hynix_reconfig_rr_para: - .fnstart - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r3, r4, r5, lr} - .save {r3, r4, r5, lr} - ldr r5, .L290 - ldrb r2, [r5, #1173] @ zero_extendqisi2 - sub r2, r2, #1 - cmp r2, #7 - ldmhifd sp!, {r3, r4, r5, pc} - ldr r2, [r5, #1176] - add r2, r2, r0 - ldrb r2, [r2, #120] @ zero_extendqisi2 - cmp r2, #0 - ldmeqfd sp!, {r3, r4, r5, pc} - mov r1, #0 - mov r4, r0 - bl hynix_set_rr_para - ldr r2, [r5, #1176] - mov r3, #0 - add r4, r2, r4 - strb r3, [r4, #120] - ldmfd sp!, {r3, r4, r5, pc} -.L291: - .align 2 -.L290: - .word .LANCHOR0 - .fnend - .size hynix_reconfig_rr_para, .-hynix_reconfig_rr_para - .align 2 .global nandc_set_ddr_para .type nandc_set_ddr_para, %function nandc_set_ddr_para: @@ -1355,9 +1218,9 @@ nandc_set_ddr_para: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L295 + ldr r3, .L274 ldrb r2, [r3, #1028] @ zero_extendqisi2 - ldr r3, [r3, #1040] + ldr r3, [r3, #1044] cmp r2, #9 mov r2, r0, asl #16 mov r0, r0, asl #8 @@ -1366,9 +1229,9 @@ nandc_set_ddr_para: streq r0, [r3, #80] strne r0, [r3, #304] bx lr -.L296: +.L275: .align 2 -.L295: +.L274: .word .LANCHOR0 .fnend .size nandc_set_ddr_para, .-nandc_set_ddr_para @@ -1380,17 +1243,17 @@ nandc_get_ddr_para: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L301 + ldr r3, .L280 ldrb r2, [r3, #1028] @ zero_extendqisi2 - ldr r3, [r3, #1040] + ldr r3, [r3, #1044] cmp r2, #9 ldreq r0, [r3, #80] ldrne r0, [r3, #304] ubfx r0, r0, #8, #8 bx lr -.L302: +.L281: .align 2 -.L301: +.L280: .word .LANCHOR0 .fnend .size nandc_get_ddr_para, .-nandc_get_ddr_para @@ -1402,12 +1265,12 @@ nandc_set_if_mode: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r1, .L311 + ldr r1, .L290 ands ip, r0, #6 - ldr r3, [r1, #1040] + ldr r3, [r1, #1044] ldr r2, [r3] bfieq r2, ip, #13, #1 - beq .L307 + beq .L286 orr r2, r2, #24576 ldrb r1, [r1, #1028] @ zero_extendqisi2 bfc r2, #15, #1 @@ -1416,7 +1279,7 @@ nandc_set_if_mode: movw r0, #8321 orrne r2, r2, #32768 cmp r1, #9 - ldr r1, .L311+4 + ldr r1, .L290+4 streq r0, [r3, #8] strne r0, [r3, #344] streq r1, [r3, #80] @@ -1429,12 +1292,12 @@ nandc_set_if_mode: movne r1, #39 streq r1, [r3, #84] strne r1, [r3, #308] -.L307: +.L286: str r2, [r3] bx lr -.L312: +.L291: .align 2 -.L311: +.L290: .word .LANCHOR0 .word 1052675 .fnend @@ -1447,17 +1310,17 @@ nandc_cs: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L314 + ldr r3, .L293 mov r2, #1 mov r0, r2, asl r0 - ldr r1, [r3, #1040] + ldr r1, [r3, #1044] ldr r3, [r1] bfi r3, r0, #0, #8 str r3, [r1] bx lr -.L315: +.L294: .align 2 -.L314: +.L293: .word .LANCHOR0 .fnend .size nandc_cs, .-nandc_cs @@ -1469,16 +1332,16 @@ nandc_de_cs: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L317 - ldr r2, [r3, #1040] + ldr r3, .L296 + ldr r2, [r3, #1044] ldr r3, [r2] bfc r3, #0, #8 bfc r3, #17, #1 str r3, [r2] bx lr -.L318: +.L297: .align 2 -.L317: +.L296: .word .LANCHOR0 .fnend .size nandc_de_cs, .-nandc_de_cs @@ -1493,41 +1356,41 @@ flash_wait_device_ready_raw: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 mov r6, r0 - ldr r4, .L328 + ldr r4, .L307 mov r5, r1 mov r7, r2 - ldrb r3, [r4, #1101] @ zero_extendqisi2 + ldrb r3, [r4, #1109] @ zero_extendqisi2 cmp r3, r0 - bhi .L320 - ldr r1, .L328+4 + bhi .L299 + ldr r1, .L307+4 mov r2, #812 - ldr r0, .L328+8 + ldr r0, .L307+8 bl printk bl dump_stack -.L320: +.L299: add r6, r4, r6 - ldr r3, [r4, #1040] + ldr r3, [r4, #1044] mov r9, r5, lsr #16 mov r10, r5, lsr #24 - ldrb r6, [r6, #1180] @ zero_extendqisi2 + ldrb r6, [r6, #1144] @ zero_extendqisi2 mov fp, #120 mov r2, r5, lsr #8 str r2, [sp] add r8, r3, r6, asl #8 -.L322: +.L301: mov r0, r6 bl nandc_cs str fp, [r8, #2056] uxtb r2, r5 str r2, [r8, #2052] - ldrb r2, [r4, #1188] @ zero_extendqisi2 + ldrb r2, [r4, #1152] @ zero_extendqisi2 mov r0, #120 cmp r2, #0 ldr r3, [sp] str r3, [r8, #2052] str r9, [r8, #2052] strne r10, [r8, #2052] - bl timer_delay_ns + bl ndelay ldr r2, [r8, #2048] mov r0, r6 uxtb r2, r2 @@ -1541,16 +1404,16 @@ flash_wait_device_ready_raw: cmp r0, r7 orrne r1, r1, #1 cmp r1, #0 - bne .L322 + bne .L301 mov r0, r2 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L329: +.L308: .align 2 -.L328: +.L307: .word .LANCHOR0 - .word .LANCHOR1+232 + .word .LANCHOR1+220 .word .LC0 .fnend .size flash_wait_device_ready_raw, .-flash_wait_device_ready_raw @@ -1564,10 +1427,10 @@ flash_wait_device_ready: stmfd sp!, {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} mov r3, #1 - ldr r6, .L342 + ldr r6, .L321 tst r0, #50331648 mov r8, r1 - ldrb r2, [r6, #1189] @ zero_extendqisi2 + ldrb r2, [r6, #1153] @ zero_extendqisi2 rsb r5, r2, #24 mov r4, r3, asl r5 mov r3, r3, asl r2 @@ -1576,36 +1439,36 @@ flash_wait_device_ready: and r5, r3, r0, asr r5 and r4, r4, r0 uxtb r5, r5 - bne .L331 + bne .L310 ldrb r3, [r6] @ zero_extendqisi2 cmp r3, #0 - beq .L332 + beq .L311 ldrb r3, [r6, #1] @ zero_extendqisi2 cmp r3, #0 - beq .L331 -.L332: + beq .L310 +.L311: ldrh r7, [r6, #2] mov r0, r4 mov r1, r7 bl __aeabi_uidiv ldrb r3, [r6, #1] @ zero_extendqisi2 cmp r3, #0 - ldreq r3, .L342 + ldreq r3, .L321 mul r0, r7, r0 rsb r4, r0, r4 mov r4, r4, asl #1 addeq r4, r3, r4 ldreqh r4, [r4, #4] add r4, r4, r0 -.L331: +.L310: mov r0, r5 mov r1, r4 mov r2, r8 ldmfd sp!, {r4, r5, r6, r7, r8, lr} b flash_wait_device_ready_raw -.L343: +.L322: .align 2 -.L342: +.L321: .word .LANCHOR0 .fnend .size flash_wait_device_ready, .-flash_wait_device_ready @@ -1619,30 +1482,30 @@ nandc_wait_flash_ready_no_delay: stmfd sp!, {r0, r1, r2, r4, r5, lr} .save {r4, r5, lr} .pad #12 - ldr r4, .L350 - ldr r5, .L350+4 -.L346: - ldr r3, [r5, #1040] + ldr r4, .L329 + ldr r5, .L329+4 +.L325: + ldr r3, [r5, #1044] ldr r3, [r3] str r3, [sp, #4] ldr r3, [sp, #4] tst r3, #512 - bne .L347 + bne .L326 mov r0, #10 - bl timer_delay_ns + bl ndelay subs r4, r4, #1 - bne .L346 + bne .L325 mvn r0, #0 - b .L345 -.L347: + b .L324 +.L326: mov r0, #0 -.L345: +.L324: add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, pc} -.L351: +.L330: .align 2 -.L350: +.L329: .word 100000 .word .LANCHOR0 .fnend @@ -1656,30 +1519,30 @@ zftl_flash_enter_slc_mode: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} - ldr r3, .L371 + ldr r3, .L350 ldrb r2, [r3] @ zero_extendqisi2 cmp r2, #0 ldmeqfd sp!, {r3, r4, r5, r6, r7, pc} cmp r2, #1 - ldr r5, [r3, #1040] - bne .L355 - ldr r3, .L371+4 + ldr r5, [r3, #1044] + bne .L334 + ldr r3, .L350+4 ldrb r3, [r3, #33] @ zero_extendqisi2 cmp r3, #0 addne r0, r5, r0, asl #8 strne r3, [r0, #2056] ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L355: +.L334: cmp r2, #2 mov r4, r0 - bne .L357 + bne .L336 add r3, r3, r0 - ldrb r2, [r3, #1192] @ zero_extendqisi2 + ldrb r2, [r3, #1156] @ zero_extendqisi2 cmp r2, #0 ldmeqfd sp!, {r3, r4, r5, r6, r7, pc} - ldr r6, .L371+4 + ldr r6, .L350+4 mov r2, #0 - strb r2, [r3, #1192] + strb r2, [r3, #1156] ldrb r3, [r6, #33] @ zero_extendqisi2 cmp r3, r2 ldmeqfd sp!, {r3, r4, r5, r6, r7, pc} @@ -1688,11 +1551,11 @@ zftl_flash_enter_slc_mode: add r4, r5, r4, asl #8 str r3, [r4, #2056] ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L357: +.L336: cmp r2, #3 ldmnefd sp!, {r3, r4, r5, r6, r7, pc} add r6, r3, r0 - ldrb r3, [r6, #1192] @ zero_extendqisi2 + ldrb r3, [r6, #1156] @ zero_extendqisi2 cmp r3, #0 ldmeqfd sp!, {r3, r4, r5, r6, r7, pc} add r4, r5, r4, asl #8 @@ -1703,24 +1566,24 @@ zftl_flash_enter_slc_mode: mov r3, #145 str r3, [r4, #2052] mov r7, #0 - strb r7, [r6, #1192] - bl timer_delay_ns + strb r7, [r6, #1156] + bl ndelay str r7, [r4, #2048] mov r3, #1 mov r0, #150 str r3, [r4, #2048] str r7, [r4, #2048] str r7, [r4, #2048] - bl timer_delay_ns + bl ndelay bl nandc_wait_flash_ready_no_delay mov r3, #218 mov r0, #50 str r3, [r4, #2056] ldmfd sp!, {r3, r4, r5, r6, r7, lr} - b timer_delay_ns -.L372: + b ndelay +.L351: .align 2 -.L371: +.L350: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -1732,34 +1595,34 @@ zftl_flash_exit_slc_mode: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L394 + ldr r3, .L373 stmfd sp!, {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} ldrb r4, [r3] @ zero_extendqisi2 cmp r4, #0 ldmeqfd sp!, {r4, r5, r6, r7, r8, pc} cmp r4, #1 - ldr r7, [r3, #1040] - bne .L376 - ldr r3, .L394+4 + ldr r7, [r3, #1044] + bne .L355 + ldr r3, .L373+4 ldrb r3, [r3, #34] @ zero_extendqisi2 cmp r3, #0 addne r0, r7, r0, asl #8 strne r3, [r0, #2056] ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L376: +.L355: cmp r4, #2 mov r5, r0 - bne .L378 + bne .L357 add r3, r3, r0 - ldrb r2, [r3, #1192] @ zero_extendqisi2 + ldrb r2, [r3, #1156] @ zero_extendqisi2 cmp r2, #0 ldmnefd sp!, {r4, r5, r6, r7, r8, pc} - ldr r4, .L394+4 + ldr r4, .L373+4 ldrb r2, [r4, #16] @ zero_extendqisi2 cmp r2, #2 movne r2, #4 - strb r2, [r3, #1192] + strb r2, [r3, #1156] ldrb r3, [r4, #34] @ zero_extendqisi2 cmp r3, #0 ldmeqfd sp!, {r4, r5, r6, r7, r8, pc} @@ -1768,14 +1631,14 @@ zftl_flash_exit_slc_mode: add r5, r7, r5, asl #8 str r3, [r5, #2056] ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L378: +.L357: cmp r4, #3 ldmnefd sp!, {r4, r5, r6, r7, r8, pc} add r4, r3, r0 - ldrb r3, [r4, #1192] @ zero_extendqisi2 + ldrb r3, [r4, #1156] @ zero_extendqisi2 cmp r3, #0 ldmnefd sp!, {r4, r5, r6, r7, r8, pc} - ldr r8, .L394+4 + ldr r8, .L373+4 bl nandc_wait_flash_ready_no_delay mov r5, r5, asl #8 mov r0, #100 @@ -1784,33 +1647,33 @@ zftl_flash_exit_slc_mode: ldrb r3, [r8, #16] @ zero_extendqisi2 cmp r3, #2 movne r3, #4 - strb r3, [r4, #1192] + strb r3, [r4, #1156] mov r3, #239 str r3, [r6, #2056] mov r3, #145 str r3, [r6, #2052] - bl timer_delay_ns + bl ndelay ldrb r3, [r8, #11] @ zero_extendqisi2 mov r0, #150 cmp r3, #9 mov r3, #1 streq r3, [r6, #2048] - ldrneb r2, [r4, #1192] @ zero_extendqisi2 + ldrneb r2, [r4, #1156] @ zero_extendqisi2 strne r2, [r6, #2048] str r3, [r6, #2048] mov r3, #0 str r3, [r6, #2048] str r3, [r6, #2048] - bl timer_delay_ns + bl ndelay bl nandc_wait_flash_ready_no_delay mov r3, #223 mov r0, #50 str r3, [r5, #2056] ldmfd sp!, {r4, r5, r6, r7, r8, lr} - b timer_delay_ns -.L395: + b ndelay +.L374: .align 2 -.L394: +.L373: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -1825,74 +1688,74 @@ flash_start_page_read: stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} mvn r2, #0 - ldr r7, .L411 + ldr r7, .L390 mov r5, r0 mov r8, r1 - ldrb r3, [r7, #1189] @ zero_extendqisi2 + ldrb r3, [r7, #1153] @ zero_extendqisi2 rsb r6, r3, #24 mvn r2, r2, asl r3 and r2, r2, r1, lsr r6 - ldrb r3, [r7, #1101] @ zero_extendqisi2 + ldrb r3, [r7, #1109] @ zero_extendqisi2 uxtb r4, r2 cmp r3, r4 - bhi .L397 - ldr r1, .L411+4 + bhi .L376 + ldr r1, .L390+4 movw r2, #1013 - ldr r0, .L411+8 + ldr r0, .L390+8 bl printk bl dump_stack -.L397: - ldrb r3, [r7, #1101] @ zero_extendqisi2 - ldr r9, .L411 +.L376: + ldrb r3, [r7, #1109] @ zero_extendqisi2 + ldr r9, .L390 cmp r3, r4 ldmlsfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} add r4, r9, r4 mvn r3, #0 bic r6, r8, r3, asl r6 ubfx r8, r8, #24, #2 - ldrb fp, [r4, #1180] @ zero_extendqisi2 - ldr r4, [r9, #1040] + ldrb fp, [r4, #1144] @ zero_extendqisi2 + ldr r4, [r9, #1044] mov r0, fp mov r10, fp, asl #8 bl nandc_cs cmp r8, #0 - bne .L399 + bne .L378 mov r0, r6 bl slc_phy_page_address_calc ldrb r3, [r9] @ zero_extendqisi2 cmp r3, #0 mov r6, r0 - beq .L400 + beq .L379 mov r0, fp bl zftl_flash_enter_slc_mode - b .L400 -.L399: - ldr r3, [r9, #1096] + b .L379 +.L378: + ldr r3, [r9, #1104] ldrb r3, [r3, #12] @ zero_extendqisi2 cmp r3, #3 - bne .L401 - ldrb r3, [r9, #1196] @ zero_extendqisi2 + bne .L380 + ldrb r3, [r9, #1160] @ zero_extendqisi2 cmp r3, #0 - bne .L401 - ldrb r3, [r9, #1197] @ zero_extendqisi2 + bne .L380 + ldrb r3, [r9, #1161] @ zero_extendqisi2 cmp r3, #0 addeq r3, r4, r10 streq r8, [r3, #2056] - beq .L400 -.L401: + beq .L379 +.L380: mov r0, fp bl zftl_flash_exit_slc_mode -.L400: - ldr r3, [r7, #1096] +.L379: + ldr r3, [r7, #1104] ldrb r2, [r3, #7] @ zero_extendqisi2 cmp r2, #1 - bne .L402 + bne .L381 ldrb r3, [r3, #12] @ zero_extendqisi2 cmp r3, #2 addeq r3, r4, r10 moveq r2, #38 streq r2, [r3, #2056] -.L402: +.L381: add r2, r4, r10 mov r3, #0 str r3, [r2, #2056] @@ -1904,18 +1767,18 @@ flash_start_page_read: str r3, [r2, #2052] mov r3, r6, lsr #16 str r3, [r2, #2052] - ldrb r3, [r7, #1188] @ zero_extendqisi2 + ldrb r3, [r7, #1152] @ zero_extendqisi2 cmp r3, #0 movne r3, r6, lsr #24 strne r3, [r2, #2052] add r3, r4, r10 str r5, [r3, #2056] ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L412: +.L391: .align 2 -.L411: +.L390: .word .LANCHOR0 - .word .LANCHOR1+260 + .word .LANCHOR1+248 .word .LC0 .fnend .size flash_start_page_read, .-flash_start_page_read @@ -1930,31 +1793,31 @@ nandc_wait_flash_ready: .save {r4, r5, lr} .pad #12 mov r0, #150 - bl timer_delay_ns - ldr r4, .L419 - ldr r5, .L419+4 -.L415: - ldr r3, [r5, #1040] + bl ndelay + ldr r4, .L398 + ldr r5, .L398+4 +.L394: + ldr r3, [r5, #1044] ldr r3, [r3] str r3, [sp, #4] ldr r3, [sp, #4] tst r3, #512 - bne .L416 + bne .L395 mov r0, #10 - bl timer_delay_ns + bl ndelay subs r4, r4, #1 - bne .L415 + bne .L394 mvn r0, #0 - b .L414 -.L416: + b .L393 +.L395: mov r0, #0 -.L414: +.L393: add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, pc} -.L420: +.L399: .align 2 -.L419: +.L398: .word 100000 .word .LANCHOR0 .fnend @@ -1975,17 +1838,17 @@ sandisk_set_rr_para: str r3, [r0, #4] mov r0, #200 mov r4, r1 - bl timer_delay_ns - ldr r0, .L429 - ldr r1, .L429+4 + bl ndelay + ldr r0, .L408 + ldr r1, .L408+4 add r4, r4, r4, asl #2 sub ip, r0, #48 mov r2, #0 -.L422: - ldrb r3, [r1, #1174] @ zero_extendqisi2 +.L401: + ldrb r3, [r1, #1101] @ zero_extendqisi2 cmp r2, r3 - bcs .L428 - ldrb r3, [r1, #1173] @ zero_extendqisi2 + bcs .L407 + ldrb r3, [r1, #1100] @ zero_extendqisi2 cmp r3, #67 add r3, r2, r4 addeq r3, ip, r3 @@ -1993,14 +1856,14 @@ sandisk_set_rr_para: add r2, r2, #1 ldrsb r3, [r3, #5] str r3, [r5] - b .L422 -.L428: + b .L401 +.L407: ldmfd sp!, {r3, r4, r5, lr} b nandc_wait_flash_ready -.L430: +.L409: .align 2 -.L429: - .word .LANCHOR1+128 +.L408: + .word .LANCHOR1+92 .word .LANCHOR0 .fnend .size sandisk_set_rr_para, .-sandisk_set_rr_para @@ -2015,7 +1878,7 @@ toshiba_3d_set_tlc_rr_para: stmfd sp!, {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} rsb r1, r1, r1, asl #3 - ldr r5, .L433 + ldr r5, .L412 mov r6, #0 mov r7, #213 mvn r3, #118 @@ -2024,16 +1887,16 @@ toshiba_3d_set_tlc_rr_para: str r6, [r0, #4] mov r4, r0 str r3, [r0, #4] - add r3, r5, #284 + add r3, r5, #272 ldrsb r3, [r3] str r3, [r0] - movw r3, #285 + movw r3, #273 ldrsb r3, [r5, r3] str r3, [r0] - movw r3, #286 + movw r3, #274 ldrsb r3, [r5, r3] str r3, [r0] - movw r3, #287 + movw r3, #275 ldrsb r3, [r5, r3] str r3, [r0] bl nandc_wait_flash_ready @@ -2041,21 +1904,21 @@ toshiba_3d_set_tlc_rr_para: mvn r3, #117 str r6, [r4, #4] str r3, [r4, #4] - add r3, r5, #288 + add r3, r5, #276 ldrsb r3, [r3] str r3, [r4] - movw r3, #289 + movw r3, #277 ldrsb r3, [r5, r3] str r3, [r4] - movw r3, #290 + movw r3, #278 ldrsb r3, [r5, r3] str r3, [r4] str r6, [r4] ldmfd sp!, {r3, r4, r5, r6, r7, lr} b nandc_wait_flash_ready -.L434: +.L413: .align 2 -.L433: +.L412: .word .LANCHOR1 .fnend .size toshiba_3d_set_tlc_rr_para, .-toshiba_3d_set_tlc_rr_para @@ -2073,18 +1936,18 @@ toshiba_3d_set_slc_rr_para: mov r3, #0 str r3, [r0, #4] str r2, [r0, #4] - ldr r2, .L436 + ldr r2, .L415 add r2, r2, r1 - movw r1, #685 + movw r1, #673 ldrsb r2, [r2, r1] str r2, [r0] str r3, [r0] str r3, [r0] str r3, [r0] b nandc_wait_flash_ready -.L437: +.L416: .align 2 -.L436: +.L415: .word .LANCHOR1 .fnend .size toshiba_3d_set_slc_rr_para, .-toshiba_3d_set_slc_rr_para @@ -2096,13 +1959,13 @@ toshiba_tlc_set_rr_para: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 cmp r2, #0 - ldr r3, .L442 + ldr r3, .L421 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r6, #239 mov r4, r0 str r6, [r0, #8] - beq .L439 + beq .L418 rsb r1, r1, r1, asl #3 mov r2, #18 add r5, r3, r1 @@ -2127,8 +1990,8 @@ toshiba_tlc_set_rr_para: str r3, [r4] mov r3, #0 str r3, [r4] - b .L440 -.L439: + b .L419 +.L418: add r3, r3, r1 mov r0, #20 str r0, [r4, #4] @@ -2137,12 +2000,12 @@ toshiba_tlc_set_rr_para: str r2, [r4] str r2, [r4] str r2, [r4] -.L440: +.L419: ldmfd sp!, {r4, r5, r6, lr} b nandc_wait_flash_ready -.L443: +.L422: .align 2 -.L442: +.L421: .word .LANCHOR2 .fnend .size toshiba_tlc_set_rr_para, .-toshiba_tlc_set_rr_para @@ -2156,18 +2019,18 @@ ymtc_3d_set_tlc_rr_para: stmfd sp!, {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} rsb r1, r1, r1, asl #3 - ldr r5, .L446 + ldr r5, .L425 mov r7, #239 mov r3, #160 str r7, [r0, #8] add r5, r5, r1 str r3, [r0, #4] - add r3, r5, #696 + add r3, r5, #684 mov r4, r0 mov r6, #0 ldrsb r3, [r3] str r3, [r0] - add r3, r5, #700 + add r3, r5, #688 ldrsb r3, [r3] str r3, [r0] str r6, [r0] @@ -2176,13 +2039,13 @@ ymtc_3d_set_tlc_rr_para: str r7, [r4, #8] mov r3, #161 str r3, [r4, #4] - movw r3, #697 + movw r3, #685 ldrsb r3, [r5, r3] str r3, [r4] - movw r3, #699 + movw r3, #687 ldrsb r3, [r5, r3] str r3, [r4] - movw r3, #701 + movw r3, #689 ldrsb r3, [r5, r3] str r3, [r4] str r6, [r4] @@ -2190,19 +2053,19 @@ ymtc_3d_set_tlc_rr_para: str r7, [r4, #8] mov r3, #162 str r3, [r4, #4] - movw r3, #698 + movw r3, #686 ldrsb r3, [r5, r3] str r3, [r4] - movw r3, #702 + movw r3, #690 ldrsb r3, [r5, r3] str r3, [r4] str r6, [r4] str r6, [r4] ldmfd sp!, {r3, r4, r5, r6, r7, lr} b nandc_wait_flash_ready -.L447: +.L426: .align 2 -.L446: +.L425: .word .LANCHOR1 .fnend .size ymtc_3d_set_tlc_rr_para, .-ymtc_3d_set_tlc_rr_para @@ -2218,18 +2081,20 @@ ymtc_3d_set_slc_rr_para: str r3, [r0, #8] mov r3, #163 str r3, [r0, #4] - ldr r3, .L449 - ldrsb r3, [r3, r1] + ldr r3, .L428 + movw r2, #1044 + add r1, r3, r1 + ldrsb r3, [r1, r2] str r3, [r0] mov r3, #0 str r3, [r0] str r3, [r0] str r3, [r0] b nandc_wait_flash_ready -.L450: +.L429: .align 2 -.L449: - .word .LANCHOR1+1056 +.L428: + .word .LANCHOR1 .fnend .size ymtc_3d_set_slc_rr_para, .-ymtc_3d_set_slc_rr_para .align 2 @@ -2242,36 +2107,36 @@ flash_start_plane_read: stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r3, #1 - ldr r7, .L479 + ldr r7, .L458 ubfx r9, r0, #24, #2 - ldrb r2, [r7, #1189] @ zero_extendqisi2 + ldrb r2, [r7, #1153] @ zero_extendqisi2 rsb r5, r2, #24 mov r4, r3, asl r5 mov r3, r3, asl r2 sub r3, r3, #1 sub r4, r4, #1 and r5, r3, r0, lsr r5 - ldrb r3, [r7, #1101] @ zero_extendqisi2 + ldrb r3, [r7, #1109] @ zero_extendqisi2 and r6, r4, r0 and r4, r4, r1 uxtb r5, r5 cmp r3, r5 - bhi .L452 - ldr r1, .L479+4 + bhi .L431 + ldr r1, .L458+4 movw r2, #1148 - ldr r0, .L479+8 + ldr r0, .L458+8 bl printk bl dump_stack -.L452: +.L431: add r5, r7, r5 - ldr r8, [r7, #1040] - ldr fp, .L479 - ldrb r5, [r5, #1180] @ zero_extendqisi2 + ldr r8, [r7, #1044] + ldr fp, .L458 + ldrb r5, [r5, #1144] @ zero_extendqisi2 mov r0, r5 mov r10, r5, asl #8 bl nandc_cs cmp r9, #0 - bne .L453 + bne .L432 mov r0, r6 bl slc_phy_page_address_calc mov r6, r0 @@ -2280,41 +2145,41 @@ flash_start_plane_read: ldrb r3, [fp] @ zero_extendqisi2 cmp r3, #0 mov r4, r0 - beq .L454 + beq .L433 mov r0, r5 bl zftl_flash_enter_slc_mode - b .L454 -.L453: - ldr r3, [fp, #1096] + b .L433 +.L432: + ldr r3, [fp, #1104] ldrb r3, [r3, #12] @ zero_extendqisi2 cmp r3, #3 - bne .L455 - ldrb r3, [fp, #1196] @ zero_extendqisi2 + bne .L434 + ldrb r3, [fp, #1160] @ zero_extendqisi2 cmp r3, #0 - bne .L455 - ldrb r3, [fp, #1197] @ zero_extendqisi2 + bne .L434 + ldrb r3, [fp, #1161] @ zero_extendqisi2 cmp r3, #0 addeq r3, r8, r10 streq r9, [r3, #2056] - beq .L454 -.L455: + beq .L433 +.L434: mov r0, r5 bl zftl_flash_exit_slc_mode -.L454: - ldrb r2, [r7, #1119] @ zero_extendqisi2 +.L433: + ldrb r2, [r7, #1127] @ zero_extendqisi2 uxtb ip, r6 - ldr r3, .L479 + ldr r3, .L458 mov r0, r6, lsr #8 cmp r2, #1 mov r1, r6, lsr #16 - bne .L456 - ldrb r2, [r3, #1111] @ zero_extendqisi2 + bne .L435 + ldrb r2, [r3, #1119] @ zero_extendqisi2 add r5, r8, r10 - ldrb r3, [r3, #1188] @ zero_extendqisi2 + ldrb r3, [r3, #1152] @ zero_extendqisi2 str r2, [r5, #2056] mov r2, #0 cmp r3, r2 - ldrb r3, [r7, #1112] @ zero_extendqisi2 + ldrb r3, [r7, #1120] @ zero_extendqisi2 str r2, [r5, #2052] movne r6, r6, lsr #24 str r2, [r5, #2052] @@ -2325,7 +2190,7 @@ flash_start_plane_read: add r6, r8, r10 str r3, [r6, #2056] bl nandc_wait_flash_ready - ldr r3, [r7, #1096] + ldr r3, [r7, #1104] ldrb r2, [r3, #12] @ zero_extendqisi2 adds r3, r9, #0 movne r3, #1 @@ -2345,25 +2210,25 @@ flash_start_plane_read: str r3, [r5, #2052] mov r3, r4, lsr #16 str r3, [r5, #2052] - ldrb r3, [r7, #1188] @ zero_extendqisi2 + ldrb r3, [r7, #1152] @ zero_extendqisi2 cmp r3, #0 mov r3, #48 movne r4, r4, lsr #24 strne r4, [r5, #2052] str r3, [r10, #2056] ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L456: - ldr r2, [r3, #1096] +.L435: + ldr r2, [r3, #1104] ldrb r3, [r2, #7] @ zero_extendqisi2 cmp r3, #1 - bne .L461 + bne .L440 ldrb r3, [r2, #12] @ zero_extendqisi2 cmp r3, #2 addeq r3, r8, r10 moveq lr, #38 streq lr, [r3, #2056] -.L461: - ldrb lr, [r7, #1111] @ zero_extendqisi2 +.L440: + ldrb lr, [r7, #1119] @ zero_extendqisi2 add r3, r8, r10 add r8, r8, r10 str lr, [r3, #2056] @@ -2376,7 +2241,7 @@ flash_start_plane_read: cmp r1, #3 movne r2, #0 cmp r2, #0 - ldrb r2, [r7, #1112] @ zero_extendqisi2 + ldrb r2, [r7, #1120] @ zero_extendqisi2 strne r9, [r3, #2056] str r2, [r8, #2056] uxtb r2, r4 @@ -2388,11 +2253,11 @@ flash_start_plane_read: mov r3, #48 str r3, [r8, #2056] ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L480: +.L459: .align 2 -.L479: +.L458: .word .LANCHOR0 - .word .LANCHOR1+1068 + .word .LANCHOR1+1056 .word .LC0 .fnend .size flash_start_plane_read, .-flash_start_plane_read @@ -2406,17 +2271,16 @@ flash_set_interface_mode: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} .save {r4, r5, r6, r7, r8, r9, r10, lr} mov r8, r0 - ldr r6, .L515 - mov r9, #0 - ldr r10, .L515+4 + ldr r6, .L494 + mov r10, #0 + ldr r9, .L494+4 mov r7, r6 -.L493: - ldr r3, .L515+8 - ldr r5, [r6, #1040] - ldrb r4, [r3, r9, asl #3] @ zero_extendqisi2 +.L472: + ldrb r4, [r9, r10, asl #3] @ zero_extendqisi2 + ldr r5, [r6, #1044] cmp r4, #69 cmpne r4, #152 - beq .L482 + beq .L461 cmp r4, #137 cmpne r4, #44 moveq r3, #1 @@ -2424,46 +2288,48 @@ flash_set_interface_mode: cmp r4, #155 orreq r3, r3, #1 cmp r3, #0 - beq .L483 -.L482: + beq .L462 +.L461: cmp r8, #1 - ldrb r1, [r7, #1232] @ zero_extendqisi2 - bne .L484 + ldrb r1, [r7, #1196] @ zero_extendqisi2 + bne .L463 tst r1, #1 - beq .L483 - ldr r3, [r10] + beq .L462 + ldr r3, .L494+8 + ldr r3, [r3] tst r3, #4096 - beq .L485 - ldr r0, .L515+12 + beq .L464 + ldr r0, .L494+12 bl printk -.L485: - mov r2, r9, asl #8 +.L464: + mov r2, r10, asl #8 cmp r4, #44 cmpne r4, #137 add r3, r5, r2 mov r1, #239 str r1, [r3, #2056] - beq .L514 + beq .L493 cmp r4, #155 movne r1, #128 strne r1, [r3, #2052] movne r1, #1 - bne .L512 -.L514: + bne .L491 +.L493: mov r1, #1 str r1, [r3, #2052] mov r1, #5 - b .L512 -.L484: + b .L491 +.L463: tst r1, #4 - beq .L483 - ldr r3, [r10] + beq .L462 + ldr r3, .L494+8 + ldr r3, [r3] tst r3, #4096 - beq .L489 - ldr r0, .L515+16 + beq .L468 + ldr r0, .L494+16 bl printk -.L489: - mov r2, r9, asl #8 +.L468: + mov r2, r10, asl #8 cmp r4, #44 cmpne r4, #137 add r3, r5, r2 @@ -2474,35 +2340,35 @@ flash_set_interface_mode: moveq r1, #1 streq r1, [r3, #2052] moveq r1, #35 - beq .L512 + beq .L491 cmp r4, #155 moveq r1, #1 streq r1, [r3, #2052] moveq r1, #37 movne r0, #128 strne r0, [r3, #2052] -.L512: +.L491: add r5, r5, r2 str r1, [r3, #2048] mov r3, #0 str r3, [r5, #2048] str r3, [r5, #2048] str r3, [r5, #2048] -.L483: - add r9, r9, #1 - cmp r9, #4 - bne .L493 +.L462: + add r10, r10, #1 + cmp r10, #4 + bne .L472 bl nandc_wait_flash_ready mov r0, #0 ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L516: +.L495: .align 2 -.L515: +.L494: .word .LANCHOR0 + .word .LANCHOR0+1164 .word .LANCHOR2 - .word .LANCHOR0+1200 - .word .LC37 - .word .LC38 + .word .LC34 + .word .LC35 .fnend .size flash_set_interface_mode, .-flash_set_interface_mode .align 2 @@ -2513,15 +2379,15 @@ flash_reset: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L518 + ldr r3, .L497 mov r2, #255 - ldr r3, [r3, #1040] + ldr r3, [r3, #1044] add r0, r3, r0, asl #8 str r2, [r0, #2056] b nandc_wait_flash_ready -.L519: +.L498: .align 2 -.L518: +.L497: .word .LANCHOR0 .fnend .size flash_reset, .-flash_reset @@ -2536,9 +2402,9 @@ flash_read_id: .save {r4, r5, r6, lr} .pad #16 mov r6, r0 - ldr r3, .L523 + ldr r3, .L502 mov r4, r1 - ldr r5, [r3, #1040] + ldr r5, [r3, #1044] bl flash_reset mov r0, r6 add r5, r5, r6, asl #8 @@ -2548,7 +2414,7 @@ flash_read_id: str r3, [r5, #2056] mov r3, #0 str r3, [r5, #2052] - bl timer_delay_ns + bl ndelay ldr r3, [r5, #2048] mov r0, r6 strb r3, [r4] @@ -2571,10 +2437,10 @@ flash_read_id: sub r3, r2, #1 uxtb r3, r3 cmp r3, #253 - bhi .L520 + bhi .L499 ldrb r1, [r4, #2] @ zero_extendqisi2 ldrb r3, [r4, #1] @ zero_extendqisi2 - ldr r0, .L523+4 + ldr r0, .L502+4 str r1, [sp] ldrb r1, [r4, #3] @ zero_extendqisi2 str r1, [sp, #4] @@ -2584,15 +2450,15 @@ flash_read_id: str r1, [sp, #12] add r1, r6, #1 bl printk -.L520: +.L499: add sp, sp, #16 @ sp needed ldmfd sp!, {r4, r5, r6, pc} -.L524: +.L503: .align 2 -.L523: +.L502: .word .LANCHOR0 - .word .LC39 + .word .LC36 .fnend .size flash_read_id, .-flash_read_id .align 2 @@ -2605,10 +2471,10 @@ flash_read_spare: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r5, r2 - ldr r3, .L527 - ldr r2, .L527+4 + ldr r3, .L506 + ldr r2, .L506+4 ldrb r3, [r3, #13] @ zero_extendqisi2 - ldr r4, [r2, #1040] + ldr r4, [r2, #1044] mov r2, #0 add r4, r4, r0, asl #8 mov r3, r3, asl #9 @@ -2628,9 +2494,9 @@ flash_read_spare: ldr r3, [r4, #2048] strb r3, [r5] ldmfd sp!, {r3, r4, r5, pc} -.L528: +.L507: .align 2 -.L527: +.L506: .word .LANCHOR2 .word .LANCHOR0 .fnend @@ -2642,12 +2508,12 @@ flash_read_otp_data: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L533 + ldr r3, .L512 stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 mov r8, r0 - ldr r7, [r3, #1040] + ldr r7, [r3, #1044] mov r10, r8, asl #8 mov r5, r1 mov r9, r2 @@ -2659,7 +2525,7 @@ flash_read_otp_data: str r3, [r4, #2056] str fp, [r4, #2052] mov r6, #0 - bl timer_delay_ns + bl ndelay mov r3, #1 str r3, [r4, #2048] str r6, [r4, #2048] @@ -2672,7 +2538,7 @@ flash_read_otp_data: ldr r2, [r4, #2048] ldr r3, [r4, #2048] ldr r1, [r4, #2048] - ldr r0, .L533+4 + ldr r0, .L512+4 str r1, [sp] mov r1, r5 bl printk @@ -2690,18 +2556,18 @@ flash_read_otp_data: str r3, [r4, #2056] bl nandc_wait_flash_ready add r3, r9, #16384 -.L530: +.L509: ldr r2, [r4, #2048] strb r2, [r9], #1 cmp r9, r3 - bne .L530 + bne .L509 add r7, r7, r10 mov r3, #239 mov r0, #50 str r3, [r7, #2056] mov r3, #144 str r3, [r4, #2052] - bl timer_delay_ns + bl ndelay mov r3, #0 mov r0, r8 str r3, [r4, #2048] @@ -2712,11 +2578,11 @@ flash_read_otp_data: @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} b nandc_de_cs -.L534: +.L513: .align 2 -.L533: +.L512: .word .LANCHOR0 - .word .LC40 + .word .LC37 .fnend .size flash_read_otp_data, .-flash_read_otp_data .align 2 @@ -2726,13 +2592,13 @@ sandisk_prog_test_bad_block: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L551 + ldr r3, .L530 stmfd sp!, {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} mov r7, r0, asl #8 - ldr r6, .L551+4 + ldr r6, .L530+4 mov r8, r1 - ldr r5, [r3, #1040] + ldr r5, [r3, #1044] ldrb r4, [r6, #33] @ zero_extendqisi2 add r3, r5, r7 cmp r4, #0 @@ -2757,31 +2623,31 @@ sandisk_prog_test_bad_block: mov r3, #112 mov r0, #200 str r3, [r4, #2056] - bl timer_delay_ns + bl ndelay ldr r2, [r4, #2048] cmp r2, #255 ldreq r2, [r4, #2048] ands r4, r2, #5 - beq .L539 + beq .L518 ldr r3, [r6] tst r3, #4096 - beq .L539 - ldr r0, .L551+8 + beq .L518 + ldr r0, .L530+8 mov r1, r8 bl printk -.L539: +.L518: ldrb r3, [r6, #34] @ zero_extendqisi2 mov r0, r4 cmp r3, #0 addne r5, r5, r7 strne r3, [r5, #2056] ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L552: +.L531: .align 2 -.L551: +.L530: .word .LANCHOR0 .word .LANCHOR2 - .word .LC41 + .word .LC38 .fnend .size sandisk_prog_test_bad_block, .-sandisk_prog_test_bad_block .align 2 @@ -2792,10 +2658,10 @@ nandc_rdy_status: @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L555 + ldr r3, .L534 .pad #8 sub sp, sp, #8 - ldr r3, [r3, #1040] + ldr r3, [r3, #1044] ldr r3, [r3] str r3, [sp, #4] ldr r0, [sp, #4] @@ -2803,9 +2669,9 @@ nandc_rdy_status: add sp, sp, #8 @ sp needed bx lr -.L556: +.L535: .align 2 -.L555: +.L534: .word .LANCHOR0 .fnend .size nandc_rdy_status, .-nandc_rdy_status @@ -2824,23 +2690,23 @@ nandc_bch_sel: ldr r2, [sp, #4] orr r2, r2, #1 str r2, [sp, #4] - ldr r2, .L570 + ldr r2, .L549 ldrb r1, [r2, #1028] @ zero_extendqisi2 - strb r0, [r2, #1172] + strb r0, [r2, #1197] cmp r1, #9 - bne .L558 - ldr r1, [r2, #1040] + bne .L537 + ldr r1, [r2, #1044] cmp r0, #70 ldr r2, [sp, #4] str r2, [r1, #16] - beq .L559 + beq .L538 cmp r0, #60 moveq r3, #3 - beq .L559 + beq .L538 cmp r0, #40 moveq r3, #2 movne r3, #1 -.L559: +.L538: mov r2, #0 str r2, [sp] ldr r2, [sp] @@ -2852,11 +2718,11 @@ nandc_bch_sel: str r3, [sp] ldr r3, [sp] str r3, [r1, #32] - b .L557 -.L558: + b .L536 +.L537: ldr r1, [sp, #4] cmp r0, #16 - ldr r2, [r2, #1040] + ldr r2, [r2, #1044] str r1, [r2, #8] str r3, [sp] ldr r3, [sp] @@ -2866,36 +2732,36 @@ nandc_bch_sel: ldr r3, [sp] bic r3, r3, #262144 str r3, [sp] - beq .L568 + beq .L547 ldr r3, [sp] cmp r0, #24 orreq r3, r3, #16 - beq .L569 + beq .L548 orr r3, r3, #262144 str r3, [sp] ldr r3, [sp] cmp r0, #40 orr r3, r3, #16 str r3, [sp] - bne .L562 -.L568: + bne .L541 +.L547: ldr r3, [sp] bic r3, r3, #16 -.L569: +.L548: str r3, [sp] -.L562: +.L541: ldr r3, [sp] orr r3, r3, #1 str r3, [sp] ldr r3, [sp] str r3, [r2, #12] -.L557: +.L536: add sp, sp, #8 @ sp needed bx lr -.L571: +.L550: .align 2 -.L570: +.L549: .word .LANCHOR0 .fnend .size nandc_bch_sel, .-nandc_bch_sel @@ -2908,84 +2774,84 @@ zftl_flash_resume: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, lr} .save {r3, r4, r5, r6, r7, r8, r9, lr} - ldr r4, .L583 + ldr r4, .L562 ldrb r3, [r4, #1028] @ zero_extendqisi2 - ldr r2, [r4, #1044] - cmp r3, #9 - ldr r3, [r4, #1040] - str r2, [r3] ldr r2, [r4, #1048] - ldr r3, [r4, #1040] - str r2, [r3, #4] + cmp r3, #9 + ldr r3, [r4, #1044] + str r2, [r3] ldr r2, [r4, #1052] - bne .L573 + ldr r3, [r4, #1044] + str r2, [r3, #4] + ldr r2, [r4, #1056] + bne .L552 str r2, [r3, #16] - ldr r2, [r4, #1056] + ldr r2, [r4, #1060] str r2, [r3, #32] - ldr r2, [r4, #1060] + ldr r2, [r4, #1064] str r2, [r3, #80] - ldr r2, [r4, #1064] + ldr r2, [r4, #1068] str r2, [r3, #84] - ldr r2, [r4, #1068] + ldr r2, [r4, #1072] str r2, [r3, #520] - ldr r2, [r4, #1072] + ldr r2, [r4, #1076] str r2, [r3, #8] - b .L574 -.L573: + b .L553 +.L552: str r2, [r3, #8] - ldr r2, [r4, #1056] - str r2, [r3, #12] ldr r2, [r4, #1060] - str r2, [r3, #304] + str r2, [r3, #12] ldr r2, [r4, #1064] - str r2, [r3, #308] + str r2, [r3, #304] ldr r2, [r4, #1068] - str r2, [r3, #336] + str r2, [r3, #308] ldr r2, [r4, #1072] + str r2, [r3, #336] + ldr r2, [r4, #1076] str r2, [r3, #344] -.L574: - ldr r6, .L583+4 +.L553: + ldr r6, .L562+4 mov r5, #0 mov r8, #2 sub r7, r6, #8 -.L576: +.L555: ldrb r3, [r6, r5, asl #3] @ zero_extendqisi2 sub r3, r3, #1 uxtb r3, r3 cmp r3, #253 - bhi .L575 + bhi .L554 uxtb r9, r5 mov r0, r9 bl flash_reset strb r8, [r5, r7] mov r0, r9 bl zftl_flash_enter_slc_mode -.L575: +.L554: add r5, r5, #1 cmp r5, #4 - bne .L576 - ldrb r3, [r4, #1135] @ zero_extendqisi2 + bne .L555 + ldrb r3, [r4, #1143] @ zero_extendqisi2 cmp r3, #0 - beq .L577 + beq .L556 mov r0, #1 bl nandc_set_if_mode mov r0, r5 bl flash_set_interface_mode mov r0, r5 bl nandc_set_if_mode - ldr r3, .L583 - ldrb r0, [r3, #1061] @ zero_extendqisi2 + ldr r3, .L562 + ldrb r0, [r3, #1065] @ zero_extendqisi2 bl nandc_set_ddr_para -.L577: - ldr r3, .L583+8 +.L556: + ldr r3, .L562+8 ldrb r0, [r3, #24] @ zero_extendqisi2 ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, lr} b nandc_bch_sel -.L584: +.L563: .align 2 -.L583: +.L562: .word .LANCHOR0 - .word .LANCHOR0+1200 + .word .LANCHOR0+1164 .word .LANCHOR2 .fnend .size zftl_flash_resume, .-zftl_flash_resume @@ -2997,7 +2863,7 @@ rk_nandc_flash_ready: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L588 + ldr r3, .L567 ldrb r3, [r3, #1028] @ zero_extendqisi2 cmp r3, #9 ldreq r3, [r0, #292] @@ -3013,9 +2879,9 @@ rk_nandc_flash_ready: streq r3, [r0, #288] strne r3, [r0, #364] bx lr -.L589: +.L568: .align 2 -.L588: +.L567: .word .LANCHOR0 .fnend .size rk_nandc_flash_ready, .-rk_nandc_flash_ready @@ -3028,11 +2894,11 @@ nandc_iqr_wait_flash_ready: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, lr} .save {r4, lr} - ldr r4, .L597 - ldr r0, [r4, #1040] + ldr r4, .L576 + ldr r0, [r4, #1044] bl rk_nandc_rb_irq_flag_init ldrb r3, [r4, #1028] @ zero_extendqisi2 - ldr r0, [r4, #1040] + ldr r0, [r4, #1044] cmp r3, #9 ldreq r3, [r0, #292] ldrne r3, [r0, #368] @@ -3048,10 +2914,10 @@ nandc_iqr_wait_flash_ready: strne r3, [r0, #364] ldr r3, [r0] tst r3, #512 - bne .L593 + bne .L572 ldmfd sp!, {r4, lr} b wait_for_nand_flash_ready -.L593: +.L572: ldrb r3, [r4, #1028] @ zero_extendqisi2 cmp r3, #9 ldreq r3, [r0, #292] @@ -3067,9 +2933,9 @@ nandc_iqr_wait_flash_ready: streq r3, [r0, #288] strne r3, [r0, #364] ldmfd sp!, {r4, pc} -.L598: +.L577: .align 2 -.L597: +.L576: .word .LANCHOR0 .fnend .size nandc_iqr_wait_flash_ready, .-nandc_iqr_wait_flash_ready @@ -3084,50 +2950,50 @@ flash_erase_duplane_block: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 mov r8, r3 - ldr fp, .L624 + ldr fp, .L603 mov r4, r0 mov r5, r1 mov r9, r2 - ldrb r3, [fp, #1101] @ zero_extendqisi2 + ldrb r3, [fp, #1109] @ zero_extendqisi2 cmp r3, r0 - bhi .L600 - ldr r1, .L624+4 + bhi .L579 + ldr r1, .L603+4 movw r2, #695 - ldr r0, .L624+8 + ldr r0, .L603+8 bl printk bl dump_stack -.L600: - ldrb r2, [fp, #1101] @ zero_extendqisi2 - ldr r3, .L624 +.L579: + ldrb r2, [fp, #1109] @ zero_extendqisi2 + ldr r3, .L603 cmp r2, r4 mvnls r0, #0 - bls .L601 + bls .L580 add r4, r3, r4 - ldr r7, [r3, #1040] - ldr r3, .L624+12 - ldrb r6, [r4, #1180] @ zero_extendqisi2 + ldr r7, [r3, #1044] + ldr r3, .L603+12 + ldrb r6, [r4, #1144] @ zero_extendqisi2 ldr r3, [r3] add r10, r6, #8 tst r3, #16 add r10, r7, r10, asl #8 - beq .L602 - ldr r0, .L624+16 + beq .L581 + ldr r0, .L603+16 mov r1, r6 mov r2, r9 mov r3, r8 bl printk -.L602: +.L581: bl nandc_wait_flash_ready mov r0, r6 bl nandc_cs cmp r5, #0 mov r0, r6 - bne .L603 + bne .L582 bl zftl_flash_enter_slc_mode - b .L604 -.L603: + b .L583 +.L582: bl zftl_flash_exit_slc_mode -.L604: +.L583: mov r3, r6, asl #8 mov r2, #96 add r4, r7, r3 @@ -3138,14 +3004,14 @@ flash_erase_duplane_block: str r2, [r4, #2052] mov r2, r9, lsr #16 str r2, [r4, #2052] - ldrb r2, [fp, #1188] @ zero_extendqisi2 + ldrb r2, [fp, #1152] @ zero_extendqisi2 cmp r2, #0 movne r2, r9, lsr #24 strne r2, [r4, #2052] - ldrb r2, [fp, #1233] @ zero_extendqisi2 + ldrb r2, [fp, #1198] @ zero_extendqisi2 cmp r2, #0 movne r5, #0 - bne .L606 + bne .L585 add r2, r7, r3 mov r1, #208 str r3, [sp, #4] @@ -3155,7 +3021,7 @@ flash_erase_duplane_block: bl flash_read_status ldr r3, [sp, #4] and r5, r0, #5 -.L606: +.L585: add r2, r7, r3 mov r1, #96 add r7, r7, r3 @@ -3167,7 +3033,7 @@ flash_erase_duplane_block: str r2, [r4, #2052] mov r2, r8, lsr #16 str r2, [r4, #2052] - ldrb r2, [fp, #1188] @ zero_extendqisi2 + ldrb r2, [fp, #1152] @ zero_extendqisi2 cmp r2, #0 movne r8, r8, lsr #24 strne r8, [r4, #2052] @@ -3181,26 +3047,26 @@ flash_erase_duplane_block: bl nandc_de_cs and r3, r4, #5 orrs r5, r3, r5 - beq .L608 - ldr r0, .L624+20 + beq .L587 + ldr r0, .L603+20 mov r1, r9 mov r2, r4 bl printk -.L608: +.L587: mov r0, r5 -.L601: +.L580: add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L625: +.L604: .align 2 -.L624: +.L603: .word .LANCHOR0 - .word .LANCHOR1+1092 + .word .LANCHOR1+1080 .word .LC0 .word .LANCHOR2 - .word .LC42 - .word .LC43 + .word .LC39 + .word .LC40 .fnend .size flash_erase_duplane_block, .-flash_erase_duplane_block .align 2 @@ -3213,52 +3079,52 @@ flash_erase_block_en: stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} mvn r4, #0 - ldr r5, .L645 + ldr r5, .L624 mov r7, r0 mov fp, r1 mov r8, r2 - ldrb r3, [r5, #1189] @ zero_extendqisi2 + ldrb r3, [r5, #1153] @ zero_extendqisi2 rsb r3, r3, #24 bic r4, r2, r4, asl r3 - ldrb r3, [r5, #1101] @ zero_extendqisi2 + ldrb r3, [r5, #1109] @ zero_extendqisi2 cmp r3, r0 - bhi .L627 - ldr r1, .L645+4 + bhi .L606 + ldr r1, .L624+4 movw r2, #757 - ldr r0, .L645+8 + ldr r0, .L624+8 bl printk bl dump_stack -.L627: - ldrb r2, [r5, #1101] @ zero_extendqisi2 - ldr r3, .L645 +.L606: + ldrb r2, [r5, #1109] @ zero_extendqisi2 + ldr r3, .L624 cmp r2, r7 - bls .L634 + bls .L613 add r2, r3, r7 - ldr r9, [r3, #1040] - ldr r3, .L645+12 - ldrb r6, [r2, #1180] @ zero_extendqisi2 + ldr r9, [r3, #1044] + ldr r3, .L624+12 + ldrb r6, [r2, #1144] @ zero_extendqisi2 ldr r3, [r3] add r10, r6, #8 tst r3, #16 add r10, r9, r10, asl #8 - beq .L629 - ldr r0, .L645+16 + beq .L608 + ldr r0, .L624+16 mov r1, r6 mov r2, r8 mov r3, fp bl printk -.L629: +.L608: bl nandc_wait_flash_ready mov r0, r6 bl nandc_cs cmp fp, #0 mov r0, r6 - bne .L630 + bne .L609 bl zftl_flash_enter_slc_mode - b .L631 -.L630: + b .L610 +.L609: bl zftl_flash_exit_slc_mode -.L631: +.L610: mov r2, r6, asl #8 mov r1, #96 add r3, r9, r2 @@ -3270,7 +3136,7 @@ flash_erase_block_en: str r1, [r3, #2052] mov r1, r4, lsr #16 str r1, [r3, #2052] - ldrb r1, [r5, #1188] @ zero_extendqisi2 + ldrb r1, [r5, #1152] @ zero_extendqisi2 cmp r1, #0 movne r4, r4, lsr #24 strne r4, [r3, #2052] @@ -3284,7 +3150,7 @@ flash_erase_block_en: mov r0, r6 bl nandc_de_cs ands r4, r4, #5 - beq .L633 + beq .L612 ldrh r1, [r5, #2] mov r0, r8 bl __aeabi_uidiv @@ -3292,23 +3158,23 @@ flash_erase_block_en: mov r1, r7 mvn r4, #0 mov r2, r0 - ldr r0, .L645+20 + ldr r0, .L624+20 bl printk -.L633: +.L612: mov r0, r4 ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L634: +.L613: mvn r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L646: +.L625: .align 2 -.L645: +.L624: .word .LANCHOR0 - .word .LANCHOR1+1120 + .word .LANCHOR1+1108 .word .LC0 .word .LANCHOR2 - .word .LC44 - .word .LC45 + .word .LC41 + .word .LC42 .fnend .size flash_erase_block_en, .-flash_erase_block_en .align 2 @@ -3334,45 +3200,45 @@ flash_erase_all: stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, lr} .save {r3, r4, r5, r6, r7, r8, r9, lr} mov r6, #0 - ldr r3, .L656 - ldr r7, .L656+4 + ldr r3, .L635 + ldr r7, .L635+4 ldrb r4, [r3, #17] @ zero_extendqisi2 ldrh r3, [r3, #18] mov r8, r7 smulbb r4, r4, r3 uxth r4, r4 -.L649: - ldrb r2, [r7, #1101] @ zero_extendqisi2 +.L628: + ldrb r2, [r7, #1109] @ zero_extendqisi2 uxth r3, r6 cmp r2, r3 - bls .L654 + bls .L633 add r3, r7, r3 mov r5, #0 - ldrb r9, [r3, #1180] @ zero_extendqisi2 -.L650: + ldrb r9, [r3, #1144] @ zero_extendqisi2 +.L629: uxth r3, r5 cmp r3, r4 - bcs .L655 + bcs .L634 ldrh r1, [r8, #2] mov r0, r9 mul r1, r1, r5 bl flash_erase_block add r5, r5, #1 - b .L650 -.L655: + b .L629 +.L634: add r6, r6, #1 - b .L649 -.L654: - ldr r0, .L656+8 + b .L628 +.L633: + ldr r0, .L635+8 mov r1, #0 ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, lr} b printk -.L657: +.L636: .align 2 -.L656: +.L635: .word .LANCHOR2 .word .LANCHOR0 - .word .LC46 + .word .LC43 .fnend .size flash_erase_all, .-flash_erase_all .align 2 @@ -3383,7 +3249,7 @@ rk_nandc_flash_xfer_completed: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L661 + ldr r3, .L640 ldrb r3, [r3, #1028] @ zero_extendqisi2 cmp r3, #9 ldreq r3, [r0, #292] @@ -3399,9 +3265,9 @@ rk_nandc_flash_xfer_completed: streq r3, [r0, #288] strne r3, [r0, #364] bx lr -.L662: +.L641: .align 2 -.L661: +.L640: .word .LANCHOR0 .fnend .size rk_nandc_flash_xfer_completed, .-rk_nandc_flash_xfer_completed @@ -3415,7 +3281,7 @@ nandc_xfer_start: stmfd sp!, {r4, r5, r6, r7, r8, r9, lr} .save {r4, r5, r6, r7, r8, r9, lr} mov r5, r0 - ldr r4, .L680 + ldr r4, .L659 mov r0, r2 .pad #20 sub sp, sp, #20 @@ -3423,7 +3289,7 @@ nandc_xfer_start: add lr, r1, #1 ldrb r2, [r4, #1028] @ zero_extendqisi2 cmp r2, #9 - bne .L664 + bne .L643 mov r2, #0 str r2, [sp, #4] ldr r2, [sp, #4] @@ -3454,39 +3320,39 @@ nandc_xfer_start: ldr r2, [sp, #4] orr r2, r2, #128 str r2, [sp, #4] - ldrb r2, [r4, #1136] @ zero_extendqisi2 + ldrb r2, [r4, #1199] @ zero_extendqisi2 cmp r2, #0 - beq .L665 - ldrb r2, [r4, #1168] @ zero_extendqisi2 + beq .L644 + ldrb r2, [r4, #1200] @ zero_extendqisi2 cmp r2, #0 ldrne r2, [sp, #4] orrne r2, r2, #512 strne r2, [sp, #4] -.L665: +.L644: ldr r1, [sp, #4] mov r2, r5 - str r3, [r4, #1148] + str r3, [r4, #1212] ubfx r1, r1, #22, #6 - str r0, [r4, #1144] + str r0, [r4, #1208] mov r1, r1, asl #10 bl rknand_dma_map_single mov r2, r5 clz r5, r5 mov r5, r5, lsr #5 ldr r1, [sp, #4] - str r0, [r4, #1152] + str r0, [r4, #1216] ubfx r1, r1, #22, #6 - ldr r0, [r4, #1148] + ldr r0, [r4, #1212] mov r1, r1, asl #2 bl rknand_dma_map_single - ldr r2, [r4, #1040] + ldr r2, [r4, #1044] mov r3, #1 - str r3, [r4, #1160] - ldr r3, [r4, #1152] + str r3, [r4, #1224] + ldr r3, [r4, #1216] str r3, [r2, #52] str r0, [r2, #56] ldr r3, [r2, #48] - str r0, [r4, #1156] + str r0, [r4, #1220] str r3, [sp, #8] ldr r3, [sp, #8] bic r3, r3, #15872 @@ -3502,15 +3368,15 @@ nandc_xfer_start: ldr r3, [sp, #8] orr r3, r3, #4 str r3, [sp, #8] - ldr r3, [sp, #8] - bic r3, r3, #2 - orr r5, r3, r5, asl #1 + ldr r4, [sp, #8] + bic r4, r4, #2 + orr r5, r4, r5, asl #1 str r5, [sp, #8] ldr r3, [sp, #8] orr r3, r3, #1 str r3, [sp, #8] - movw r3, #1170 - ldrh r1, [r4, r3] + ldr r3, .L659+4 + ldrh r1, [r3] ldr r3, [sp, #8] ubfx r1, r1, #0, #11 bic r3, r3, #133169152 @@ -3526,14 +3392,13 @@ nandc_xfer_start: str r3, [sp, #4] ldr r3, [sp, #4] str r3, [r2, #16] - b .L663 -.L664: - ldr r2, [r4, #1040] + b .L642 +.L643: + ldr r2, [r4, #1044] mov ip, #0 - cmp r5, ip ubfx lr, lr, #1, #6 + cmp r5, ip ldr r2, [r2, #12] - ldreq r3, [r4, #1140] str r2, [sp, #12] ldr r2, [sp, #12] bic r2, r2, #65280 @@ -3571,56 +3436,57 @@ nandc_xfer_start: bic r6, r6, #264241152 orr lr, r6, lr, asl #22 str lr, [sp, #4] + ldreq r3, [r4, #1204] streq r2, [r3] - beq .L671 - ldrb r2, [r4, #1172] @ zero_extendqisi2 + beq .L650 + ldrb r2, [r4, #1197] @ zero_extendqisi2 mov r1, r1, lsr #1 mov r6, ip cmp r2, #25 movcc r7, #64 movcs r7, #128 -.L669: +.L648: cmp r6, r1 add r3, r3, #4 add r8, ip, r7 - bge .L671 + bge .L650 ldrh lr, [r3, #-2] mov ip, ip, lsr #2 - ldr r9, [r4, #1140] + ldr r9, [r4, #1204] add r6, r6, #1 ldrh r2, [r3, #-4] orr lr, r2, lr, asl #16 str lr, [r9, ip, asl #2] mov ip, r8 - b .L669 -.L671: + b .L648 +.L650: ldr r1, [sp, #4] mov r2, r5 - ldr r3, [r4, #1140] + ldr r3, [r4, #1204] ubfx r1, r1, #22, #6 - str r0, [r4, #1144] + str r0, [r4, #1208] mov r1, r1, asl #10 - str r3, [r4, #1148] + str r3, [r4, #1212] bl rknand_dma_map_single mov r2, r5 clz r5, r5 mov r5, r5, lsr #5 ldr r1, [sp, #4] - str r0, [r4, #1152] + str r0, [r4, #1216] ubfx r1, r1, #22, #6 - ldr r0, [r4, #1148] + ldr r0, [r4, #1212] mov r1, r1, asl #7 bl rknand_dma_map_single - ldr r2, [r4, #1152] + ldr r2, [r4, #1216] mov r3, #1 - str r3, [r4, #1160] - ldr r3, [r4, #1040] + str r3, [r4, #1224] + ldr r3, [r4, #1044] str r2, [r3, #20] mov r2, #0 str r0, [r3, #24] + str r0, [r4, #1220] str r2, [sp, #8] ldr r2, [sp, #8] - str r0, [r4, #1156] bic r2, r2, #15872 orr r2, r2, #8192 str r2, [sp, #8] @@ -3652,14 +3518,15 @@ nandc_xfer_start: str r2, [sp, #4] ldr r2, [sp, #4] str r2, [r3, #8] -.L663: +.L642: add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc} -.L681: +.L660: .align 2 -.L680: +.L659: .word .LANCHOR0 + .word .LANCHOR0+1232 .fnend .size nandc_xfer_start, .-nandc_xfer_start .align 2 @@ -3670,26 +3537,26 @@ nandc_set_seed: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L689 + ldr r2, .L668 and r0, r0, #127 - ldr r3, .L689+4 + ldr r3, .L668+4 mov r0, r0, asl #1 - ldrb r1, [r2, #1168] @ zero_extendqisi2 + ldrb r1, [r2, #1200] @ zero_extendqisi2 ldrh r3, [r3, r0] cmp r1, #0 - ldr r1, .L689 + ldr r1, .L668 ldrb r2, [r2, #1028] @ zero_extendqisi2 orrne r3, r3, #-1073741824 cmp r2, #9 - ldr r2, [r1, #1040] + ldr r2, [r1, #1044] streq r3, [r2, #520] strne r3, [r2, #336] bx lr -.L690: +.L669: .align 2 -.L689: +.L668: .word .LANCHOR0 - .word .LANCHOR1+1144 + .word .LANCHOR1+1132 .fnend .size nandc_set_seed, .-nandc_set_seed .align 2 @@ -3702,49 +3569,49 @@ zftl_flash_de_init: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} bl nandc_wait_flash_ready - ldr r4, .L711 + ldr r4, .L690 ldrb r3, [r4] @ zero_extendqisi2 cmp r3, #0 - beq .L692 - ldrb r0, [r4, #1102] @ zero_extendqisi2 + beq .L671 + ldrb r0, [r4, #1110] @ zero_extendqisi2 cmp r0, #0 - bne .L692 + bne .L671 ldrb r3, [r4, #1028] @ zero_extendqisi2 cmp r3, #9 - beq .L692 + beq .L671 bl zftl_flash_exit_slc_mode -.L692: +.L671: mov r0, #0 - ldr r5, .L711 + ldr r5, .L690 bl hynix_reconfig_rr_para - ldrb r3, [r4, #1135] @ zero_extendqisi2 + ldrb r3, [r4, #1143] @ zero_extendqisi2 cmp r3, #0 - beq .L693 - ldrb r3, [r5, #1232] @ zero_extendqisi2 + beq .L672 + ldrb r3, [r5, #1196] @ zero_extendqisi2 tst r3, #1 - beq .L693 + beq .L672 mov r0, #1 bl flash_set_interface_mode mov r0, #1 bl nandc_set_if_mode mov r3, #0 - strb r3, [r5, #1135] -.L693: - ldrb r3, [r4, #1168] @ zero_extendqisi2 - ldr r5, .L711 + strb r3, [r5, #1143] +.L672: + ldrb r3, [r4, #1200] @ zero_extendqisi2 + ldr r5, .L690 cmp r3, #0 - beq .L694 + beq .L673 mov r0, #0 - strb r0, [r5, #1168] + strb r0, [r5, #1200] bl nandc_set_seed mov r3, #1 - strb r3, [r5, #1168] -.L694: + strb r3, [r5, #1200] +.L673: mov r0, #0 ldmfd sp!, {r3, r4, r5, pc} -.L712: +.L691: .align 2 -.L711: +.L690: .word .LANCHOR0 .fnend .size zftl_flash_de_init, .-zftl_flash_de_init @@ -3756,12 +3623,12 @@ nandc_randomizer_enable: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L714 - strb r0, [r3, #1168] + ldr r3, .L693 + strb r0, [r3, #1200] bx lr -.L715: +.L694: .align 2 -.L714: +.L693: .word .LANCHOR0 .fnend .size nandc_randomizer_enable, .-nandc_randomizer_enable @@ -3773,63 +3640,18 @@ nandc_get_chip_if: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L717 + ldr r3, .L696 add r0, r0, #8 - ldr r3, [r3, #1040] + ldr r3, [r3, #1044] add r0, r3, r0, asl #8 bx lr -.L718: +.L697: .align 2 -.L717: +.L696: .word .LANCHOR0 .fnend .size nandc_get_chip_if, .-nandc_get_chip_if .align 2 - .global zbuf_init - .type zbuf_init, %function -zbuf_init: - .fnstart - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r4, r5, r6, r7, r8, lr} - .save {r4, r5, r6, r7, r8, lr} - mov r5, #0 - ldr r4, .L723 - mov r7, r5 - ldr r8, .L723+4 -.L720: - ldrb r0, [r8, #2772] @ zero_extendqisi2 - uxtb r3, r5 - add r2, r3, #1 - strb r3, [r4, #1] - strb r2, [r4] - add r5, r5, #1 - mov r0, r0, asl #9 - strb r7, [r4, #2] - str r7, [r4, #8] - bl ftl_malloc - ldr r6, .L723+4 - add r4, r4, #48 - str r0, [r4, #-44] - mov r0, #64 - bl ftl_malloc - cmp r5, #32 - str r0, [r4, #-36] - bne .L720 - mvn r3, #0 - strb r5, [r6, #2774] - strb r3, [r6, #2724] - mov r3, #0 - strb r3, [r6, #2773] - ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L724: - .align 2 -.L723: - .word .LANCHOR0+1236 - .word .LANCHOR0 - .fnend - .size zbuf_init, .-zbuf_init - .align 2 .global buf_reinit .type buf_reinit, %function buf_reinit: @@ -3837,10 +3659,10 @@ buf_reinit: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L728 + ldr r2, .L701 mov r3, #0 mov r1, r3 -.L726: +.L699: uxtb r0, r3 add r3, r3, #1 cmp r3, #32 @@ -3850,17 +3672,17 @@ buf_reinit: strb ip, [r2, #-48] strb r1, [r2, #-46] str r1, [r2, #-40] - bne .L726 - ldr r2, .L728+4 + bne .L699 + ldr r2, .L701+4 mvn r1, #0 - strb r3, [r2, #2774] + strb r3, [r2, #2773] strb r1, [r2, #2724] mov r1, #0 - strb r1, [r2, #2773] + strb r1, [r2, #2772] bx lr -.L729: +.L702: .align 2 -.L728: +.L701: .word .LANCHOR0+1236 .word .LANCHOR0 .fnend @@ -3880,47 +3702,47 @@ buf_add_tail: ldrb r3, [r0] @ zero_extendqisi2 mov r5, r0 cmp r3, #255 - ldrne r2, .L738 + ldrne r2, .L711 movne r1, #48 - bne .L736 + bne .L709 ldrb r3, [r4, #1] @ zero_extendqisi2 cmp r3, #255 - bne .L732 - ldr r1, .L738+4 + bne .L705 + ldr r1, .L711+4 mov r2, #74 - ldr r0, .L738+8 + ldr r0, .L711+8 bl printk bl dump_stack -.L732: +.L705: ldrb r3, [r4, #1] @ zero_extendqisi2 strb r3, [r5] ldmfd sp!, {r3, r4, r5, pc} -.L736: +.L709: mov r5, r3 mla r3, r1, r3, r2 ldrb r3, [r3, #1236] @ zero_extendqisi2 cmp r3, #255 - bne .L736 + bne .L709 ldrb r3, [r4, #1] @ zero_extendqisi2 cmp r3, #255 - bne .L734 - ldr r1, .L738+4 + bne .L707 + ldr r1, .L711+4 mov r2, #81 - ldr r0, .L738+8 + ldr r0, .L711+8 bl printk bl dump_stack -.L734: - ldr r2, .L738 +.L707: + ldr r2, .L711 mov r1, #48 ldrb r3, [r4, #1] @ zero_extendqisi2 mla r5, r1, r5, r2 strb r3, [r5, #1236] ldmfd sp!, {r3, r4, r5, pc} -.L739: +.L712: .align 2 -.L738: +.L711: .word .LANCHOR0 - .word .LANCHOR1+1400 + .word .LANCHOR1+1388 .word .LC0 .fnend .size buf_add_tail, .-buf_add_tail @@ -3939,17 +3761,17 @@ queue_read_cmd: mov r3, #1 mov r1, r4 strb r3, [r4, #42] - ldr r0, .L742 + ldr r0, .L715 mov r3, #0 strb r3, [r4, #43] mvn r3, #0 strb r3, [r4] ldmfd sp!, {r4, lr} b buf_add_tail -.L743: +.L716: .align 2 -.L742: - .word .LANCHOR0+2775 +.L715: + .word .LANCHOR0+2774 .fnend .size queue_read_cmd, .-queue_read_cmd .align 2 @@ -3962,34 +3784,34 @@ zbuf_free: stmfd sp!, {r4, lr} .save {r4, lr} ldrb r3, [r0, #2] @ zero_extendqisi2 - ldr r4, .L754 + ldr r4, .L727 and r3, r3, #8 uxtb r3, r3 strb r3, [r0, #2] cmp r3, #0 - beq .L745 + beq .L718 ldr r3, [r0, #20] cmn r3, #1 - beq .L745 + beq .L718 mov r1, r0 - ldr r0, .L754+4 + ldr r0, .L727+4 bl buf_add_tail - b .L746 -.L745: - ldrb r3, [r4, #2773] @ zero_extendqisi2 + b .L719 +.L718: + ldrb r3, [r4, #2772] @ zero_extendqisi2 strb r3, [r0] ldrb r3, [r0, #1] @ zero_extendqisi2 - strb r3, [r4, #2773] -.L746: - ldrb r3, [r4, #2774] @ zero_extendqisi2 + strb r3, [r4, #2772] +.L719: + ldrb r3, [r4, #2773] @ zero_extendqisi2 add r3, r3, #1 - strb r3, [r4, #2774] + strb r3, [r4, #2773] ldmfd sp!, {r4, pc} -.L755: +.L728: .align 2 -.L754: +.L727: .word .LANCHOR0 - .word .LANCHOR0+2773 + .word .LANCHOR0+2772 .fnend .size zbuf_free, .-zbuf_free .align 2 @@ -4002,36 +3824,36 @@ buf_alloc: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r5, r0 - ldr r4, .L767 - ldrb r3, [r4, #2774] @ zero_extendqisi2 + ldr r4, .L740 + ldrb r3, [r4, #2773] @ zero_extendqisi2 cmp r3, #0 - beq .L757 -.L760: - ldrb r1, [r4, #2773] @ zero_extendqisi2 + beq .L730 +.L733: + ldrb r1, [r4, #2772] @ zero_extendqisi2 cmp r5, #0 - ldr r3, .L767+4 + ldr r3, .L740+4 mov r0, #48 mla r0, r0, r1, r3 - beq .L758 - b .L759 -.L757: - ldr r1, .L767+8 + beq .L731 + b .L732 +.L730: + ldr r1, .L740+8 mov r2, #121 - ldr r0, .L767+12 + ldr r0, .L740+12 bl printk bl dump_stack - ldrb r3, [r4, #2774] @ zero_extendqisi2 + ldrb r3, [r4, #2773] @ zero_extendqisi2 cmp r3, #0 - bne .L760 -.L762: + bne .L733 +.L735: mov r0, #0 ldmfd sp!, {r3, r4, r5, pc} -.L758: - ldr r2, .L767 - ldrb r2, [r2, #2774] @ zero_extendqisi2 +.L731: + ldr r2, .L740 + ldrb r2, [r2, #2773] @ zero_extendqisi2 cmp r2, #1 - beq .L762 -.L759: + beq .L735 +.L732: mov r2, #48 mul r1, r2, r1 add r2, r4, r1 @@ -4040,24 +3862,24 @@ buf_alloc: ldrb ip, [r2, #1236] @ zero_extendqisi2 strh r1, [r3, #34] @ movhi str r1, [r2, #1244] - strb ip, [r4, #2773] - ldrb ip, [r4, #2774] @ zero_extendqisi2 + strb ip, [r4, #2772] + ldrb ip, [r4, #2773] @ zero_extendqisi2 strb r1, [r2, #1276] sub ip, ip, #1 strb r1, [r2, #1277] - strb ip, [r4, #2774] + strb ip, [r4, #2773] mov ip, #1 strb ip, [r2, #1238] mvn ip, #0 strb ip, [r2, #1236] str ip, [r2, #1256] ldmfd sp!, {r3, r4, r5, pc} -.L768: +.L741: .align 2 -.L767: +.L740: .word .LANCHOR0 .word .LANCHOR0+1236 - .word .LANCHOR1+1416 + .word .LANCHOR1+1404 .word .LC0 .fnend .size buf_alloc, .-buf_alloc @@ -4071,25 +3893,25 @@ buf_remove_buf: ldrb ip, [r1, #1] @ zero_extendqisi2 ldrb r3, [r0] @ zero_extendqisi2 cmp ip, r3 - bne .L770 + bne .L743 ldrb r3, [r1] @ zero_extendqisi2 strb r3, [r0] mov r0, #1 bx lr -.L770: - ldr r0, .L777 +.L743: + ldr r0, .L750 str lr, [sp, #-4]! .save {lr} mov lr, #48 -.L772: +.L745: cmp r3, #255 - beq .L776 + beq .L749 mov r2, r3 mla r3, lr, r3, r0 ldrb r3, [r3, #1236] @ zero_extendqisi2 cmp r3, ip - bne .L772 - ldr r0, .L777 + bne .L745 + ldr r0, .L750 mov ip, #48 ldrb r3, [r1] @ zero_extendqisi2 mla r2, ip, r2, r0 @@ -4098,12 +3920,12 @@ buf_remove_buf: mvn r3, #0 strb r3, [r1] ldr pc, [sp], #4 -.L776: +.L749: mov r0, #0 ldr pc, [sp], #4 -.L778: +.L751: .align 2 -.L777: +.L750: .word .LANCHOR0 .fnend .size buf_remove_buf, .-buf_remove_buf @@ -4114,42 +3936,42 @@ buf_remove_free: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L785 + ldr r3, .L758 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r5, r0 - ldrb r2, [r3, #2774] @ zero_extendqisi2 + ldrb r2, [r3, #2773] @ zero_extendqisi2 mov r4, r3 cmp r2, #0 - bne .L780 - ldr r1, .L785+4 + bne .L753 + ldr r1, .L758+4 mov r2, #172 - ldr r0, .L785+8 + ldr r0, .L758+8 bl printk bl dump_stack -.L780: - ldrb r3, [r4, #2774] @ zero_extendqisi2 - ldr r6, .L785 +.L753: + ldrb r3, [r4, #2773] @ zero_extendqisi2 + ldr r6, .L758 cmp r3, #0 ldmeqfd sp!, {r4, r5, r6, pc} - ldr r0, .L785+12 + ldr r0, .L758+12 mov r1, r5 bl buf_remove_buf cmp r0, #1 - ldreqb r3, [r6, #2774] @ zero_extendqisi2 + ldreqb r3, [r6, #2773] @ zero_extendqisi2 subeq r3, r3, #1 - streqb r3, [r6, #2774] + streqb r3, [r6, #2773] ldreqb r3, [r5, #2] @ zero_extendqisi2 orreq r3, r3, #1 streqb r3, [r5, #2] ldmfd sp!, {r4, r5, r6, pc} -.L786: +.L759: .align 2 -.L785: +.L758: .word .LANCHOR0 - .word .LANCHOR1+1428 + .word .LANCHOR1+1416 .word .LC0 - .word .LANCHOR0+2773 + .word .LANCHOR0+2772 .fnend .size buf_remove_free, .-buf_remove_free .align 2 @@ -4163,28 +3985,28 @@ dump_buf_info: .save {r4, r5, lr} .pad #28 sub sp, sp, #28 - ldr r4, .L791 - ldr r0, .L791+4 + ldr r4, .L764 + ldr r0, .L764+4 + ldrb r1, [r4, #2774] @ zero_extendqisi2 + bl printk ldrb r1, [r4, #2775] @ zero_extendqisi2 + ldr r0, .L764+8 bl printk ldrb r1, [r4, #2776] @ zero_extendqisi2 - ldr r0, .L791+8 + ldr r0, .L764+12 bl printk ldrb r1, [r4, #2777] @ zero_extendqisi2 - ldr r0, .L791+12 + ldr r0, .L764+16 bl printk - ldrb r1, [r4, #2778] @ zero_extendqisi2 - ldr r0, .L791+16 + ldrb r1, [r4, #2772] @ zero_extendqisi2 + ldr r0, .L764+20 bl printk ldrb r1, [r4, #2773] @ zero_extendqisi2 - ldr r0, .L791+20 + ldr r0, .L764+24 bl printk - ldrb r1, [r4, #2774] @ zero_extendqisi2 - ldr r0, .L791+24 - bl printk - ldr r4, .L791+28 + ldr r4, .L764+28 add r5, r4, #1536 -.L788: +.L761: ldrh r0, [r4, #34] add r4, r4, #48 ldrb r1, [r4, #-47] @ zero_extendqisi2 @@ -4199,25 +4021,25 @@ dump_buf_info: str r0, [sp, #12] ldr r0, [r4, #-24] str r0, [sp, #16] - ldr r0, .L791+32 + ldr r0, .L764+32 bl printk cmp r4, r5 - bne .L788 + bne .L761 add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, pc} -.L792: +.L765: .align 2 -.L791: +.L764: .word .LANCHOR0 + .word .LC44 + .word .LC45 + .word .LC46 .word .LC47 .word .LC48 .word .LC49 - .word .LC50 - .word .LC51 - .word .LC52 .word .LANCHOR0+1236 - .word .LC53 + .word .LC50 .fnend .size dump_buf_info, .-dump_buf_info .align 2 @@ -4228,12 +4050,12 @@ flash_check_bad_block: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L794 + ldr r3, .L767 ldrb r2, [r3, #17] @ zero_extendqisi2 ldrh r3, [r3, #18] smulbb r3, r2, r3 - ldr r2, .L794+4 - ldr r2, [r2, #1176] + ldr r2, .L767+4 + ldr r2, [r2, #1040] uxth r3, r3 add r3, r3, #31 mov r3, r3, asr #5 @@ -4248,9 +4070,9 @@ flash_check_bad_block: mov r0, r0, lsr r1 and r0, r0, #1 bx lr -.L795: +.L768: .align 2 -.L794: +.L767: .word .LANCHOR2 .word .LANCHOR0 .fnend @@ -4262,7 +4084,7 @@ flash_mask_bad_block: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L798 + ldr r3, .L771 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r5, r1 @@ -4270,15 +4092,15 @@ flash_mask_bad_block: mov r6, r0 ldrh r4, [r3, #18] mov r1, r6 - ldr r0, .L798+4 + ldr r0, .L771+4 smulbb r4, r2, r4 mov r2, r5 bl printk - ldr r3, .L798+8 + ldr r3, .L771+8 mov r2, r5, lsr #5 mov r1, #1 and r5, r5, #31 - ldr r3, [r3, #1176] + ldr r3, [r3, #1040] uxth r4, r4 add r4, r4, #31 mov r4, r4, asr #5 @@ -4291,11 +4113,11 @@ flash_mask_bad_block: orr r5, r3, r1, asl r5 str r5, [r4, r2, asl #2] ldmfd sp!, {r4, r5, r6, pc} -.L799: +.L772: .align 2 -.L798: +.L771: .word .LANCHOR2 - .word .LC54 + .word .LC51 .word .LANCHOR0 .fnend .size flash_mask_bad_block, .-flash_mask_bad_block @@ -4309,39 +4131,39 @@ str2hex: @ link register save eliminated. ldrb r3, [r0] @ zero_extendqisi2 cmp r3, #48 - bne .L801 + bne .L774 ldrb r3, [r0, #1] @ zero_extendqisi2 and r3, r3, #223 cmp r3, #88 addeq r0, r0, #2 -.L801: +.L774: ldrb r3, [r0] @ zero_extendqisi2 and r3, r3, #223 cmp r3, #88 addeq r0, r0, #1 sub r3, r0, #1 mov r0, #0 -.L803: +.L776: ldrb r2, [r3, #1]! @ zero_extendqisi2 cmp r2, #0 - beq .L812 + beq .L785 sub r1, r2, #48 uxtb ip, r1 cmp ip, #9 addls r0, r1, r0, asl #4 - bls .L803 + bls .L776 sub r1, r2, #97 cmp r1, #5 subls r2, r2, #87 - bls .L811 + bls .L784 sub r1, r2, #65 cmp r1, #5 bxhi lr sub r2, r2, #55 -.L811: +.L784: add r0, r2, r0, asl #4 - b .L803 -.L812: + b .L776 +.L785: bx lr .fnend .size str2hex, .-str2hex @@ -4358,17 +4180,17 @@ zftl_proc_debug_init: mov r2, #0 mov r1, #292 str r2, [sp] - ldr r3, .L815 - ldr r0, .L815+4 + ldr r3, .L788 + ldr r0, .L788+4 bl proc_create_data add sp, sp, #12 @ sp needed ldr pc, [sp], #4 -.L816: +.L789: .align 2 -.L815: - .word .LANCHOR1+1448 - .word .LC55 +.L788: + .word .LANCHOR1+1432 + .word .LC52 .fnend .size zftl_proc_debug_init, .-zftl_proc_debug_init .align 2 @@ -4382,11 +4204,11 @@ ftl_print_info_to_buf: .save {r4, r5, r6, lr} .pad #16 mov r5, r0 - ldr r1, .L819 - ldr r2, .L819+4 + ldr r1, .L792 + ldr r2, .L792+4 bl sprintf - ldr r1, .L819+8 - ldr r6, .L819+12 + ldr r1, .L792+8 + ldr r6, .L792+12 ldrb r3, [r1, #6] @ zero_extendqisi2 ldrb r2, [r1, #5] @ zero_extendqisi2 add r4, r5, r0 @@ -4399,99 +4221,99 @@ ftl_print_info_to_buf: mov r0, r4 ldrb r1, [r1, #10] @ zero_extendqisi2 str r1, [sp, #12] - ldr r1, .L819+16 + ldr r1, .L792+16 bl sprintf ldr r2, [r6, #1032] - ldr r1, .L819+20 + ldr r1, .L792+20 mov r2, r2, lsr #11 add r4, r4, r0 mov r0, r4 bl sprintf ldr r2, [r6, #2780] - ldr r1, .L819+24 + ldr r1, .L792+24 mov r2, r2, lsr #11 add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, .L819+28 + ldr r1, .L792+28 add r4, r4, r0 mov r0, r4 add r4, r4, #10 bl strcpy ldr r2, [r6, #2784] mov r0, r4 - ldr r1, .L819+32 + ldr r1, .L792+32 bl sprintf ldr r2, [r6, #1032] - ldr r1, .L819+36 + ldr r1, .L792+36 add r4, r4, r0 mov r0, r4 bl sprintf - ldr r3, [r6, #1092] - ldr r1, .L819+40 + ldr r3, [r6, #1096] + ldr r1, .L792+40 ldr r2, [r3, #524] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r3, [r6, #1092] - ldr r1, .L819+44 + ldr r3, [r6, #1096] + ldr r1, .L792+44 ldr r2, [r3, #528] add r4, r4, r0 mov r0, r4 bl sprintf movw r3, #2788 ldrh r2, [r6, r3] - ldr r1, .L819+48 + ldr r1, .L792+48 add r4, r4, r0 mov r0, r4 bl sprintf movw r3, #2790 ldrh r2, [r6, r3] - ldr r1, .L819+52 + ldr r1, .L792+52 add r4, r4, r0 mov r0, r4 bl sprintf movw r3, #2792 ldrh r2, [r6, r3] - ldr r1, .L819+56 + ldr r1, .L792+56 add r4, r4, r0 mov r0, r4 bl sprintf movw r3, #2794 ldrh r2, [r6, r3] - ldr r1, .L819+60 + ldr r1, .L792+60 add r4, r4, r0 mov r0, r4 bl sprintf movw r3, #2796 ldrh r2, [r6, r3] - ldr r1, .L819+64 + ldr r1, .L792+64 add r4, r4, r0 mov r0, r4 bl sprintf movw r3, #2798 ldrh r2, [r6, r3] - ldr r1, .L819+68 + ldr r1, .L792+68 add r4, r4, r0 mov r0, r4 bl sprintf ldrb r1, [r6, #2801] @ zero_extendqisi2 - ldrb r2, [r6, #2774] @ zero_extendqisi2 + ldrb r2, [r6, #2773] @ zero_extendqisi2 ldrb r3, [r6, #2800] @ zero_extendqisi2 add r4, r4, r0 str r1, [sp] - ldr r1, .L819+72 + ldr r1, .L792+72 mov r0, r4 bl sprintf ldr r3, [r6, #2804] - ldr r1, .L819+76 + ldr r1, .L792+76 ldrh r2, [r3, #148] ldrh r3, [r3, #146] add r4, r4, r0 mov r0, r4 bl sprintf ldr r3, [r6, #2804] - ldr r1, .L819+80 + ldr r1, .L792+80 ldr r2, [r3, #16] ldr r3, [r3, #20] add r2, r3, r2, lsr #11 @@ -4499,7 +4321,7 @@ ftl_print_info_to_buf: mov r0, r4 bl sprintf ldr r3, [r6, #2804] - ldr r1, .L819+84 + ldr r1, .L792+84 ldr r2, [r3, #24] ldr r3, [r3, #28] add r2, r3, r2, lsr #11 @@ -4507,20 +4329,20 @@ ftl_print_info_to_buf: mov r0, r4 bl sprintf ldr r3, [r6, #2804] - ldr r1, .L819+88 + ldr r1, .L792+88 ldr r2, [r3, #64] add r4, r4, r0 mov r0, r4 bl sprintf ldr r3, [r6, #2804] - ldr r1, .L819+92 + ldr r1, .L792+92 ldr r2, [r3, #68] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r3, [r6, #1092] - ldr r2, .L819+96 - ldr r1, .L819+100 + ldr r3, [r6, #1096] + ldr r2, .L792+96 + ldr r1, .L792+100 ldr r3, [r3, #12] umull r2, r3, r3, r2 mov r2, r3, lsr #3 @@ -4532,71 +4354,71 @@ ftl_print_info_to_buf: ldrh r1, [r3, #150] add r4, r4, r0 str r1, [sp] - ldr r1, .L819+104 + ldr r1, .L792+104 mov r0, r4 ldr r3, [r3, #156] bl sprintf - ldr r3, [r6, #1092] - ldr r1, .L819+108 + ldr r3, [r6, #1096] + ldr r1, .L792+108 ldr r2, [r3, #556] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r3, [r6, #1092] - ldr r1, .L819+112 + ldr r3, [r6, #1096] + ldr r1, .L792+112 ldr r2, [r3, #552] add r4, r4, r0 mov r0, r4 bl sprintf ldr r3, [r6, #2804] - ldr r1, .L819+116 + ldr r1, .L792+116 ldr r2, [r3, #52] add r4, r4, r0 mov r0, r4 bl sprintf ldr r3, [r6, #2804] - ldr r1, .L819+120 + ldr r1, .L792+120 ldr r2, [r3, #60] add r4, r4, r0 mov r0, r4 bl sprintf ldr r3, [r6, #2804] - ldr r1, .L819+124 + ldr r1, .L792+124 ldr r2, [r3, #76] add r4, r4, r0 mov r0, r4 bl sprintf ldr r3, [r6, #2804] - ldr r1, .L819+128 + ldr r1, .L792+128 ldr r2, [r3, #8] add r4, r4, r0 mov r0, r4 bl sprintf - ldr r1, [r6, #1092] + ldr r1, [r6, #1096] ldrh r2, [r1, #16] ldrh r3, [r1, #22] ldrb r1, [r1, #25] @ zero_extendqisi2 add r4, r4, r0 str r1, [sp] - ldr r1, .L819+132 + ldr r1, .L792+132 mov r0, r4 bl sprintf - ldr r1, [r6, #1092] + ldr r1, [r6, #1096] ldrh r2, [r1, #48] ldrh r3, [r1, #54] ldrb r1, [r1, #57] @ zero_extendqisi2 add r4, r4, r0 str r1, [sp] - ldr r1, .L819+136 + ldr r1, .L792+136 mov r0, r4 bl sprintf - ldr r1, [r6, #1092] + ldr r1, [r6, #1096] ldrh r2, [r1, #80] ldrh r3, [r1, #86] ldrb r1, [r1, #89] @ zero_extendqisi2 add r4, r4, r0 str r1, [sp] - ldr r1, .L819+140 + ldr r1, .L792+140 mov r0, r4 bl sprintf ldr r3, [r6, #2804] @@ -4609,7 +4431,7 @@ ftl_print_info_to_buf: str r1, [sp, #4] ldrh r1, [r3, #96] str r1, [sp, #8] - ldr r1, .L819+144 + ldr r1, .L792+144 ldr r3, [r3, #84] bl sprintf ldr r3, [r6, #2804] @@ -4622,12 +4444,12 @@ ftl_print_info_to_buf: str r1, [sp, #4] ldrh r1, [r3, #98] str r1, [sp, #8] - ldr r1, .L819+148 + ldr r1, .L792+148 ldr r3, [r3, #80] bl sprintf movw r3, #2808 ldrh r2, [r6, r3] - ldr r1, .L819+152 + ldr r1, .L792+152 add r4, r4, r0 mov r0, r4 bl sprintf @@ -4645,9 +4467,9 @@ ftl_print_info_to_buf: str r1, [sp, #4] ldr r1, [r6, #2820] str r1, [sp, #8] - ldr r1, .L819+156 + ldr r1, .L792+156 bl sprintf - ldr r1, [r6, #1092] + ldr r1, [r6, #1096] add r3, r1, #584 ldrh r2, [r3] movw r3, #586 @@ -4660,10 +4482,10 @@ ftl_print_info_to_buf: ldrh r1, [r1, r0] mov r0, r4 str r1, [sp, #4] - ldr r1, .L819+160 + ldr r1, .L792+160 bl sprintf - ldr r3, [r6, #1092] - ldr r1, .L819+164 + ldr r3, [r6, #1096] + ldr r1, .L792+164 ldr r2, [r3, #544] str r2, [sp] add r4, r4, r0 @@ -4681,13 +4503,16 @@ ftl_print_info_to_buf: add sp, sp, #16 @ sp needed ldmfd sp!, {r4, r5, r6, pc} -.L820: +.L793: .align 2 -.L819: +.L792: .word .LC1 .word .LC2 .word .LANCHOR2 .word .LANCHOR0 + .word .LC53 + .word .LC54 + .word .LC55 .word .LC56 .word .LC57 .word .LC58 @@ -4705,10 +4530,10 @@ ftl_print_info_to_buf: .word .LC70 .word .LC71 .word .LC72 + .word -858993459 .word .LC73 .word .LC74 .word .LC75 - .word -858993459 .word .LC76 .word .LC77 .word .LC78 @@ -4723,9 +4548,6 @@ ftl_print_info_to_buf: .word .LC87 .word .LC88 .word .LC89 - .word .LC90 - .word .LC91 - .word .LC92 .fnend .size ftl_print_info_to_buf, .-ftl_print_info_to_buf .align 2 @@ -4750,7 +4572,7 @@ ftl_gc_write_buf: .save {r4, lr} mov r1, r0 ldrb r3, [r0, #2] @ zero_extendqisi2 - ldr r4, .L824 + ldr r4, .L797 orr r3, r3, #2 strb r3, [r0, #2] add r0, r4, #2816 @@ -4761,9 +4583,9 @@ ftl_gc_write_buf: uxtb r0, r0 strb r0, [r4, #2800] ldmfd sp!, {r4, pc} -.L825: +.L798: .align 2 -.L824: +.L797: .word .LANCHOR0 .fnend .size ftl_gc_write_buf, .-ftl_gc_write_buf @@ -4811,26 +4633,26 @@ gc_add_sblk: .save {r4, r5, r6, r7, r8, r9, r10, lr} .pad #16 mov r5, r0 - ldr r8, .L866 + ldr r8, .L839 mov r4, r1 mov r9, r2 - ldr r7, .L866+4 + ldr r7, .L839+4 ldr r3, [r8] tst r3, #256 - beq .L830 - ldr r3, [r7, #1080] + beq .L803 + ldr r3, [r7, #1084] mov r1, r5 - ldr r2, [r7, #1088] + ldr r2, [r7, #1092] add r3, r3, r0, asl #2 ldrb r3, [r3, #2] @ zero_extendqisi2 mov r3, r3, lsr #5 str r3, [sp] mov r3, r0, asl #1 - ldr r0, .L866+8 + ldr r0, .L839+8 ldrh r3, [r2, r3] mov r2, r4 str r3, [sp, #4] - ldr r3, .L866+12 + ldr r3, .L839+12 ldrh r3, [r3, #52] str r3, [sp, #8] movw r3, #2814 @@ -4838,134 +4660,134 @@ gc_add_sblk: str r3, [sp, #12] mov r3, r9 bl printk -.L830: - movw r3, #1076 +.L803: + movw r3, #1080 ldrh r3, [r7, r3] cmp r3, r5 - bhi .L831 - ldr r1, .L866+16 + bhi .L804 + ldr r1, .L839+16 movw r2, #543 - ldr r0, .L866+20 + ldr r0, .L839+20 bl printk bl dump_stack -.L831: - movw r3, #1076 - ldr r1, .L866+4 +.L804: + movw r3, #1080 + ldr r1, .L839+4 ldrh r3, [r7, r3] cmp r3, r5 - bhi .L832 + bhi .L805 ldr r0, [r8] ands r0, r0, #1024 - beq .L833 + beq .L806 mov r1, r5 mov r2, r4 mov r3, r9 - ldr r0, .L866+24 + ldr r0, .L839+24 bl printk - b .L852 -.L832: - ldr r2, [r1, #1088] + b .L825 +.L805: + ldr r2, [r1, #1092] mov r3, r5, asl #1 ldrh r3, [r2, r3] - ldr r2, [r1, #1080] + ldr r2, [r1, #1084] add r2, r2, r5, asl #2 ldrb ip, [r2, #2] @ zero_extendqisi2 ands r6, ip, #224 - bne .L834 + bne .L807 cmp r3, #0 - beq .L852 - ldr r1, .L866+16 + beq .L825 + ldr r1, .L839+16 movw r2, #553 - ldr r0, .L866+20 + ldr r0, .L839+20 bl printk bl dump_stack - b .L852 -.L834: + b .L825 +.L807: movw r2, #2828 ldrh r2, [r1, r2] cmp r2, r5 - beq .L852 - ldr r2, [r1, #1092] + beq .L825 + ldr r2, [r1, #1096] ldrh r0, [r2, #48] cmp r0, r5 - beq .L852 + beq .L825 ldrh r0, [r2, #16] cmp r0, r5 - beq .L852 + beq .L825 ldrh r0, [r2, #80] cmp r0, r5 - beq .L852 - ldr r0, .L866+12 + beq .L825 + ldr r0, .L839+12 add r1, r1, #2880 ldrh lr, [r0, #52] mov r0, #0 -.L835: +.L808: cmp r0, lr - bcs .L865 + bcs .L838 ldrh r6, [r1, #2]! cmp r6, r5 - beq .L852 + beq .L825 add r0, r0, #1 - b .L835 -.L865: + b .L808 +.L838: cmp r4, #0 - bne .L840 - ldr r0, .L866+28 + bne .L813 + ldr r0, .L839+28 ldrh r6, [r0] cmp r6, r5 moveq r0, r4 - beq .L833 + beq .L806 add r0, r0, #4 mov r1, r4 -.L839: +.L812: ldrh r10, [r1, r0] cmp r5, r10 - bne .L838 + bne .L811 ldr r0, [r8] ands r0, r0, #256 - beq .L833 + beq .L806 stmia sp, {r5, r6} mov r1, r5 mov r2, ip, lsr #5 - ldr r0, .L866+32 + ldr r0, .L839+32 bl printk - b .L852 -.L838: + b .L825 +.L811: add r1, r1, #2 cmp r1, #16 - bne .L839 + bne .L812 add r6, r2, r9, asl #7 add r6, r6, #136 - b .L841 -.L840: + b .L814 +.L813: add r6, r2, #392 -.L841: +.L814: ldr r2, [r8] tst r2, #256 - beq .L842 + beq .L815 stmia sp, {r3, lr} movw r3, #2814 ldrh r3, [r7, r3] mov r1, r5 - ldr r0, .L866+36 + ldr r0, .L839+36 mov r2, r4 str r3, [sp, #8] mov r3, ip, lsr #5 bl printk -.L842: +.L815: add r1, r6, #128 mov r3, r6 movw r0, #65535 -.L845: +.L818: mov r2, r3 add r3, r3, #2 ldrh ip, [r2] cmp ip, r0 - bne .L843 + bne .L816 cmp r4, #0 strh r5, [r2] @ movhi - ldreq r3, [r7, #1092] - ldrne r2, [r7, #1092] + ldreq r3, [r7, #1096] + ldrne r2, [r7, #1096] addeq r9, r3, r9, asl #1 ldrneh r3, [r2, #124] ldreqh r3, [r9, #120] @@ -4973,32 +4795,32 @@ gc_add_sblk: addeq r3, r3, #1 strneh r3, [r2, #124] @ movhi streqh r3, [r9, #120] @ movhi - b .L864 -.L843: + b .L837 +.L816: cmp r3, r1 - bne .L845 -.L864: + bne .L818 +.L837: mov r0, #1 - b .L833 -.L852: + b .L806 +.L825: mov r0, #0 -.L833: +.L806: add sp, sp, #16 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L867: +.L840: .align 2 -.L866: +.L839: .word .LANCHOR2 .word .LANCHOR0 - .word .LC93 + .word .LC90 .word .LANCHOR0+2828 - .word .LANCHOR1+1608 + .word .LANCHOR1+1476 .word .LC0 - .word .LC94 + .word .LC91 .word .LANCHOR3-3152 - .word .LC95 - .word .LC96 + .word .LC92 + .word .LC93 .fnend .size gc_add_sblk, .-gc_add_sblk .align 2 @@ -5008,16 +4830,16 @@ gc_mark_bad_ppa: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L874 + ldr r3, .L847 stmfd sp!, {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} sub r2, r3, #3120 - ldr r5, .L874+4 + ldr r5, .L847+4 mov r6, #1 ldrh r1, [r2, #-12] mov r7, r0 add r5, r5, #4096 - ldrb r2, [r5, #-2907] @ zero_extendqisi2 + ldrb r2, [r5, #-2943] @ zero_extendqisi2 mov r0, r0, lsr r1 rsb r2, r2, #24 uxth r4, r0 @@ -5031,46 +4853,46 @@ gc_mark_bad_ppa: ldr r1, [r5, #920] mov r2, r4 uxth r8, r0 - ldr r0, .L874+8 + ldr r0, .L847+8 bl printk mov r1, r6 mov r0, r8 mov r2, #0 bl gc_add_sblk ldr r3, [r5, #920] - ldr r0, .L874+12 + ldr r0, .L847+12 mov r1, #0 -.L869: +.L842: uxth r2, r1 cmp r2, r3 - bcs .L873 + bcs .L846 add r2, r2, #1088 add r1, r1, #1 add r2, r2, #8 mov r2, r2, asl #1 ldrh r2, [r0, r2] cmp r2, r4 - bne .L869 - b .L870 -.L873: + bne .L842 + b .L843 +.L846: cmp r3, #5 - bhi .L870 + bhi .L843 add r2, r3, #1 add r3, r3, #1088 add r3, r3, #8 str r2, [r5, #920] - ldr r2, .L874+12 + ldr r2, .L847+12 mov r3, r3, asl #1 strh r4, [r2, r3] @ movhi -.L870: +.L843: mov r0, #0 ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L875: +.L848: .align 2 -.L874: +.L847: .word .LANCHOR3 .word .LANCHOR0 - .word .LC97 + .word .LC94 .word .LANCHOR0+2828 .fnend .size gc_mark_bad_ppa, .-gc_mark_bad_ppa @@ -5082,13 +4904,13 @@ gc_get_src_ppa_from_index: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L877 + ldr r3, .L850 ldr r3, [r3, #-3128] ldr r0, [r3, r0, asl #2] bx lr -.L878: +.L851: .align 2 -.L877: +.L850: .word .LANCHOR3 .fnend .size gc_get_src_ppa_from_index, .-gc_get_src_ppa_from_index @@ -5102,67 +4924,67 @@ gc_write_completed: stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 - ldr r5, .L910 + ldr r5, .L883 mov r6, r5 -.L880: - ldrb fp, [r5, #2777] @ zero_extendqisi2 +.L853: + ldrb fp, [r5, #2776] @ zero_extendqisi2 cmp fp, #255 - beq .L909 + beq .L882 mov r3, #48 mul r3, r3, fp add r2, r5, r3 ldrb r1, [r2, #1236] @ zero_extendqisi2 - strb r1, [r5, #2777] - ldr r1, .L910+4 + strb r1, [r5, #2776] + ldr r1, .L883+4 add r3, r1, r3 ldr r1, [r2, #1272] cmp r1, #0 ldrh r8, [r3, #32] - beq .L881 - ldr r3, .L910+8 + beq .L854 + ldr r3, .L883+8 mov r0, #1 ldr r2, [r2, #1260] strh r0, [r3] @ movhi - ldr r3, .L910+12 - ldr r0, .L910+16 + ldr r3, .L883+12 + ldr r0, .L883+16 str r2, [r3, #916] bl printk - ldr r1, .L910+20 + ldr r1, .L883+20 mov r2, #956 - ldr r0, .L910+24 + ldr r0, .L883+24 bl printk bl dump_stack -.L881: - ldr r7, .L910+28 +.L854: + ldr r7, .L883+28 ldrb r3, [r7, #-3124] @ zero_extendqisi2 mov r10, r7 cmp r3, #3 - bne .L882 - ldrb r3, [r6, #1196] @ zero_extendqisi2 + bne .L855 + ldrb r3, [r6, #1160] @ zero_extendqisi2 cmp r3, #0 - bne .L882 - ldr r3, [r5, #1092] + bne .L855 + ldr r3, [r5, #1096] ldrb r2, [r7, #-3123] @ zero_extendqisi2 ldrb r3, [r3, #89] @ zero_extendqisi2 cmp r2, r3 movhi r3, #1 - bhi .L884 + bhi .L857 cmp r3, #3 movcs r3, #2 -.L884: +.L857: add r4, r3, r3, asl #1 - b .L885 -.L882: + b .L858 +.L855: ldrb r3, [r7, #-3122] @ zero_extendqisi2 cmp r3, #0 moveq r4, #1 - beq .L885 - ldr r3, .L910+28 + beq .L858 + ldr r3, .L883+28 ldrb r3, [r3, #-3121] @ zero_extendqisi2 cmp r3, #0 moveq r4, #1 movne r4, #2 -.L885: +.L858: mov r2, #48 ldr r1, [r7, #-3120] mla r2, r2, fp, r6 @@ -5170,57 +4992,57 @@ gc_write_completed: ldrb r1, [r1, r8] @ zero_extendqisi2 ldrb r2, [r2, #1237] @ zero_extendqisi2 cmp r1, r2 - beq .L886 - ldr r1, .L910+20 + beq .L859 + ldr r1, .L883+20 mov r2, #976 - ldr r0, .L910+24 + ldr r0, .L883+24 bl printk bl dump_stack -.L886: +.L859: mov r2, #48 mla fp, r2, fp, r6 ldrb r2, [fp, #1281] @ zero_extendqisi2 cmp r2, #3 - beq .L887 + beq .L860 ldrb r1, [r7, #-3124] @ zero_extendqisi2 - ldr r2, .L910+28 + ldr r2, .L883+28 cmp r1, #3 - bne .L887 + bne .L860 ldrb r1, [r2, #-3116] @ zero_extendqisi2 cmp r1, #0 - bne .L887 - ldrb r1, [r5, #1196] @ zero_extendqisi2 + bne .L860 + ldrb r1, [r5, #1160] @ zero_extendqisi2 cmp r1, #0 - bne .L887 - ldrb r1, [r5, #1197] @ zero_extendqisi2 + bne .L860 + ldrb r1, [r5, #1161] @ zero_extendqisi2 cmp r1, #0 - bne .L887 + bne .L860 ldrb r1, [r2, #-3122] @ zero_extendqisi2 cmp r1, #0 - beq .L888 + beq .L861 ldrb r2, [r2, #-3121] @ zero_extendqisi2 cmp r2, #0 - bne .L887 -.L888: + bne .L860 +.L861: ldr r2, [r7, #-3120] mov r3, #0 mov r1, #48 mov r0, r3 add ip, r2, r8 - b .L889 -.L887: - ldr r2, .L910+32 + b .L862 +.L860: + ldr r2, .L883+32 mvn r7, #0 mov fp, #48 strh r8, [r2] @ movhi mov r2, #0 -.L890: +.L863: rsb r1, r8, r9 uxth r1, r1 cmp r1, r4 - bcs .L880 + bcs .L853 ldr r1, [r10, #-3120] - ldr r3, .L910+4 + ldr r3, .L883+4 str r2, [sp, #4] ldrb r0, [r1, r9] @ zero_extendqisi2 strb r7, [r1, r9] @@ -5234,29 +5056,29 @@ gc_write_completed: sub r1, r1, #1 strb r1, [r6, #2835] ldr r2, [sp, #4] - b .L890 -.L889: + b .L863 +.L862: uxth r2, r3 cmp r2, r4 - bcs .L880 + bcs .L853 ldrb r2, [ip, r3] @ zero_extendqisi2 add r3, r3, #1 mla r2, r1, r2, r6 strb r0, [r2, #1281] - b .L889 -.L909: + b .L862 +.L882: add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L911: +.L884: .align 2 -.L910: +.L883: .word .LANCHOR0 .word .LANCHOR0+1236 .word .LANCHOR0+5010 .word .LANCHOR0+4096 - .word .LC98 - .word .LANCHOR1+1620 + .word .LC95 + .word .LANCHOR1+1488 .word .LC0 .word .LANCHOR3 .word .LANCHOR0+4932 @@ -5269,37 +5091,37 @@ gc_get_src_blk: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r1, .L922 + ldr r1, .L895 stmfd sp!, {r4, r5, lr} .save {r4, r5, lr} - ldr r3, [r1, #1092] - ldr ip, .L922+4 + ldr r3, [r1, #1096] + ldr ip, .L895+4 ldrh r2, [r3, #124] ldrb r0, [ip, #-3115] @ zero_extendqisi2 cmp r2, #0 addne r3, r3, #392 movne r2, #1 - bne .L914 + bne .L887 add lr, r3, r0, asl #1 ldrh lr, [lr, #120] cmp lr, #0 - beq .L919 + beq .L892 add r3, r3, r0, asl #7 add r3, r3, #136 -.L914: +.L887: add lr, r3, #128 movw r4, #65535 -.L918: +.L891: mov r5, r3 ldrh r0, [r3], #2 cmp r0, r4 - beq .L916 + beq .L889 cmp r2, #0 mvn r3, #0 strh r3, [r5] @ movhi ldreqb r2, [ip, #-3115] @ zero_extendqisi2 - ldreq r3, [r1, #1092] - ldrne r2, [r1, #1092] + ldreq r3, [r1, #1096] + ldrne r2, [r1, #1096] addeq r3, r3, r2, asl #1 ldrneh r3, [r2, #124] ldreqh r2, [r3, #120] @@ -5308,16 +5130,16 @@ gc_get_src_blk: strneh r3, [r2, #124] @ movhi streqh r2, [r3, #120] @ movhi ldmfd sp!, {r4, r5, pc} -.L916: +.L889: cmp r3, lr - bne .L918 + bne .L891 ldmfd sp!, {r4, r5, pc} -.L919: +.L892: movw r0, #65535 ldmfd sp!, {r4, r5, pc} -.L923: +.L896: .align 2 -.L922: +.L895: .word .LANCHOR0 .word .LANCHOR3 .fnend @@ -5331,16 +5153,16 @@ gc_free_temp_buf: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} - ldr r5, .L939 + ldr r5, .L912 ldrb r0, [r5, #2835] @ zero_extendqisi2 cmp r0, #0 ldmeqfd sp!, {r4, r5, r6, pc} - ldrb r3, [r5, #2774] @ zero_extendqisi2 + ldrb r3, [r5, #2773] @ zero_extendqisi2 cmp r3, #1 - bhi .L931 - ldr r2, .L939+4 + bhi .L904 + ldr r2, .L912+4 movw r3, #2104 - ldr r1, .L939+8 + ldr r1, .L912+8 ldrh r4, [r2, r3] sub r3, r1, #3104 mov r6, r1 @@ -5352,30 +5174,30 @@ gc_free_temp_buf: mov r1, #48 cmp r3, r2 movcs r3, r2 -.L926: +.L899: cmp r4, r3 - bcs .L931 + bcs .L904 ldrb r2, [r0, r4] @ zero_extendqisi2 cmp r2, #255 - beq .L927 + beq .L900 mul r2, r1, r2 add ip, r5, r2 ldrb ip, [ip, #1281] @ zero_extendqisi2 cmp ip, #0 - bne .L927 - ldr r0, .L939+12 + bne .L900 + ldr r0, .L912+12 add r0, r0, r2 bl zbuf_free - ldr r3, .L939+16 + ldr r3, .L912+16 ldr r3, [r3] tst r3, #256 - beq .L928 + beq .L901 ldr r3, [r6, #-3120] mov r1, r4 - ldr r0, .L939+20 + ldr r0, .L912+20 ldrb r2, [r3, r4] @ zero_extendqisi2 bl printk -.L928: +.L901: ldr r3, [r6, #-3120] mvn r2, #0 mov r0, #1 @@ -5384,21 +5206,21 @@ gc_free_temp_buf: add r3, r3, r2 strb r3, [r5, #2835] ldmfd sp!, {r4, r5, r6, pc} -.L927: +.L900: add r4, r4, #1 - b .L926 -.L931: + b .L899 +.L904: mov r0, #0 ldmfd sp!, {r4, r5, r6, pc} -.L940: +.L913: .align 2 -.L939: +.L912: .word .LANCHOR0 .word .LANCHOR0+2828 .word .LANCHOR3 .word .LANCHOR0+1236 .word .LANCHOR2 - .word .LC99 + .word .LC96 .fnend .size gc_free_temp_buf, .-gc_free_temp_buf .align 2 @@ -5409,7 +5231,7 @@ get_ink_scaned_blk: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r1, .L944 + ldr r1, .L917 movw ip, #2108 ldrh r3, [r1, ip] cmp r3, #0 @@ -5421,9 +5243,9 @@ get_ink_scaned_blk: ldrneh r0, [r2, #6] movweq r0, #65535 bx lr -.L945: +.L918: .align 2 -.L944: +.L917: .word .LANCHOR0+2828 .fnend .size get_ink_scaned_blk, .-get_ink_scaned_blk @@ -5438,29 +5260,29 @@ print_gc_debug_info: .save {lr} .pad #20 movw r2, #2828 - ldr r0, .L948 + ldr r0, .L921 movw ip, #2102 add r3, r0, r2 ldrh r1, [r0, r2] ldrh r2, [r3, #2] ldrh r3, [r3, ip] - ldrb ip, [r0, #2774] @ zero_extendqisi2 + ldrb ip, [r0, #2773] @ zero_extendqisi2 str ip, [sp] ldrb ip, [r0, #2835] @ zero_extendqisi2 str ip, [sp, #4] movw ip, #2808 ldrh r0, [r0, ip] str r0, [sp, #8] - ldr r0, .L948+4 + ldr r0, .L921+4 bl printk add sp, sp, #20 @ sp needed ldr pc, [sp], #4 -.L949: +.L922: .align 2 -.L948: +.L921: .word .LANCHOR0 - .word .LC100 + .word .LC97 .fnend .size print_gc_debug_info, .-print_gc_debug_info .align 2 @@ -5474,17 +5296,17 @@ _list_pop_index_node: .save {r3, r4, r5, lr} ldr r5, [r0] cmp r5, #0 - beq .L956 - ldr r3, .L958 + beq .L929 + ldr r3, .L931 movw ip, #65535 mov lr, #6 ldr r4, [r3, #1036] -.L952: +.L925: cmp r1, #0 - bne .L953 -.L955: + bne .L926 +.L928: rsb r4, r4, r5 - ldr r3, .L958+4 + ldr r3, .L931+4 mov r4, r4, asr #1 mul r4, r3, r4 uxth r4, r4 @@ -5495,20 +5317,20 @@ _list_pop_index_node: strh r3, [r5] @ movhi strh r3, [r5, #2] @ movhi ldmfd sp!, {r3, r4, r5, pc} -.L953: +.L926: ldrh r3, [r5] cmp r3, ip - beq .L955 + beq .L928 sub r1, r1, #1 mla r5, lr, r3, r4 uxth r1, r1 - b .L952 -.L956: + b .L925 +.L929: movw r0, #65535 ldmfd sp!, {r3, r4, r5, pc} -.L959: +.L932: .align 2 -.L958: +.L931: .word .LANCHOR0 .word -1431655765 .fnend @@ -5523,35 +5345,35 @@ _list_get_gc_head_node: @ link register save eliminated. ldr r0, [r0] cmp r0, #0 - beq .L965 - ldr r3, .L968 + beq .L938 + ldr r3, .L941 mov ip, #6 ldr r2, [r3, #1036] movw r3, #65535 -.L962: +.L935: cmp r1, #0 - beq .L963 + beq .L936 ldrh r0, [r0] cmp r0, r3 subne r1, r1, #1 mlane r0, ip, r0, r2 uxthne r1, r1 - bne .L962 -.L967: + bne .L935 +.L940: bx lr -.L965: +.L938: movw r0, #65535 bx lr -.L963: +.L936: rsb r0, r2, r0 - ldr r3, .L968+4 + ldr r3, .L941+4 mov r0, r0, asr #1 mul r0, r3, r0 uxth r0, r0 bx lr -.L969: +.L942: .align 2 -.L968: +.L941: .word .LANCHOR0 .word -1431655765 .fnend @@ -5567,36 +5389,36 @@ gc_search_src_blk: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #36 sub sp, sp, #36 - ldr r6, .L1093 + ldr r6, .L1066 str r0, [sp, #8] str r1, [sp, #16] - ldr r7, [r6, #1092] + ldr r7, [r6, #1096] add r3, r7, r0, asl #1 ldrh r4, [r3, #120] cmp r4, #0 - bne .L1025 - ldr r3, .L1093+4 + bne .L998 + ldr r3, .L1066+4 mov r5, r2 ldrh r2, [r3, #52] cmp r2, #1 - ldrls r1, .L1093+8 + ldrls r1, .L1066+8 strlsh r4, [r1, #-8] @ movhi strlsh r4, [r1, #-6] @ movhi strlsh r4, [r1, #-4] @ movhi ldr r1, [sp, #8] cmp r1, #0 - bne .L1092 + bne .L1065 ldr r8, [sp, #8] - ldr r10, .L1093+12 - ldr fp, .L1093+16 + ldr r10, .L1066+12 + ldr fp, .L1066+16 mov r4, r8 -.L974: +.L947: add r9, r5, #1 uxth r3, r8 cmp r3, r9 - bge .L980 + bge .L953 ldrh r2, [r10] - ldr ip, .L1093+12 + ldr ip, .L1066+12 mov r1, r2 add r0, ip, #6 str ip, [sp, #20] @@ -5610,65 +5432,65 @@ gc_search_src_blk: add r2, r2, #1 uxth r2, r2 strh r2, [r10] @ movhi - beq .L976 + beq .L949 ldr r3, [fp] mov ip, r0, asl #1 tst r3, #256 - beq .L977 - ldr r3, [r6, #1088] + beq .L950 + ldr r3, [r6, #1092] mov r1, r7 - ldr r0, .L1093+20 + ldr r0, .L1066+20 str ip, [sp, #12] ldrh r3, [r3, ip] bl printk ldr ip, [sp, #12] -.L977: - ldr r3, [r6, #1088] +.L950: + ldr r3, [r6, #1092] ldrh r2, [r3, ip] - ldr r3, .L1093+24 + ldr r3, .L1066+24 ldrh r3, [r3] cmp r2, r3 - bcs .L978 + bcs .L951 mov r1, #0 mov r0, r7 mov r2, r1 bl gc_add_sblk cmp r0, #0 - beq .L979 + beq .L952 add r4, r4, #1 uxth r4, r4 cmp r4, r5 - bcc .L979 - b .L980 -.L978: - ldr r3, .L1093+8 + bcc .L952 + b .L953 +.L951: + ldr r3, .L1066+8 mov r2, #0 strh r2, [r3, #-6] @ movhi - b .L980 -.L976: + b .L953 +.L949: mov r3, #0 strh r3, [ip] @ movhi - b .L980 -.L979: + b .L953 +.L952: add r8, r8, #1 - b .L974 -.L980: + b .L947 +.L953: ldr r3, [sp, #16] tst r3, #2 - beq .L982 + beq .L955 movw r3, #2798 ldrh r3, [r6, r3] cmp r3, #32 movhi r10, #0 - ldrhi r8, .L1093+28 - bls .L982 -.L983: + ldrhi r8, .L1066+28 + bls .L955 +.L956: uxth r2, r10 - ldr r7, .L1093+32 + ldr r7, .L1066+32 cmp r2, r9 - bge .L987 + bge .L960 ldrh fp, [r8] - ldr r2, .L1093+28 + ldr r2, .L1066+28 mov r1, fp add r0, r2, #8 str r2, [sp, #12] @@ -5678,35 +5500,35 @@ gc_search_src_blk: strh fp, [r8] @ movhi cmp r0, ip ldr r2, [sp, #12] - beq .L984 - ldr fp, [r6, #1088] + beq .L957 + ldr fp, [r6, #1092] mov r1, r0, asl #1 - ldr r3, .L1093+32 + ldr r3, .L1066+32 ldrh ip, [fp, r1] ldrh r1, [r3] cmp ip, r1 - bcs .L984 + bcs .L957 mov r1, #0 mov r2, r1 bl gc_add_sblk cmp r0, #0 - beq .L986 + beq .L959 add r4, r4, #1 uxth r4, r4 cmp r4, r5 - bcc .L986 - b .L987 -.L984: + bcc .L959 + b .L960 +.L957: mov r3, #0 strh r3, [r2] @ movhi - b .L987 -.L986: + b .L960 +.L959: add r10, r10, #1 - b .L983 -.L987: + b .L956 +.L960: cmp r4, r5 - ldr r2, .L1093+36 - bcs .L989 + ldr r2, .L1066+36 + bcs .L962 ldrh ip, [r2, #-26] ldrb r3, [r2, #-35] @ zero_extendqisi2 ldrh r0, [r2, #-8] @@ -5714,30 +5536,30 @@ gc_search_src_blk: mul r3, r3, ip sub r3, r3, r0, lsr #2 cmp r1, r3 - ldrlt r3, .L1093+32 + ldrlt r3, .L1066+32 addlt r1, r1, r0, lsr #3 strlth r1, [r3] @ movhi - b .L982 -.L989: + b .L955 +.L962: ldrh r2, [r2, #-8] ldrh r3, [r7] cmp r3, r2 subhi r3, r3, r2, lsr #3 - ldrhi r2, .L1093+32 + ldrhi r2, .L1066+32 strhih r3, [r2] @ movhi -.L982: +.L955: ldr r3, [sp, #16] tst r3, #1 - beq .L990 + beq .L963 uxth r7, r5 cmp r4, r7 - bcs .L990 - ldr r8, .L1093+40 + bcs .L963 + ldr r8, .L1066+40 mov fp, #0 movw r9, #65535 -.L995: +.L968: ldrh r10, [r8] - ldr r3, .L1093+40 + ldr r3, .L1066+40 mov r1, r10 add r0, r3, #20 str r3, [sp, #12] @@ -5746,50 +5568,50 @@ gc_search_src_blk: strh r10, [r8] @ movhi cmp r0, r9 ldr r3, [sp, #12] - beq .L991 + beq .L964 mov r1, #0 mov r2, r1 bl gc_add_sblk cmp r0, #0 - beq .L992 + beq .L965 add r4, r4, #1 uxth r4, r4 cmp r4, r7 - bcc .L992 - b .L993 -.L991: + bcc .L965 + b .L966 +.L964: mov r2, #0 strh r2, [r3] @ movhi - b .L994 -.L992: + b .L967 +.L965: add fp, fp, #1 uxth r3, fp cmp r3, r7 - bcc .L995 -.L994: + bcc .L968 +.L967: cmp r4, r7 - bcs .L993 - ldr r1, .L1093+36 + bcs .L966 + ldr r1, .L1066+36 movw r2, #2814 ldrh r3, [r6, r2] ldrh r1, [r1, #-8] cmp r3, r1 addcc r3, r3, r1, lsr #3 - bcc .L1091 - b .L990 -.L993: - ldr r1, .L1093+36 + bcc .L1064 + b .L963 +.L966: + ldr r1, .L1066+36 movw r2, #2814 ldrh r3, [r6, r2] ldrh r1, [r1, #-8] cmp r3, r1, lsr #1 - bls .L990 + bls .L963 sub r3, r3, r1, lsr #3 -.L1091: - ldr r1, .L1093 - b .L1090 -.L1092: - ldr r8, .L1093+44 +.L1064: + ldr r1, .L1066 + b .L1063 +.L1065: + ldr r8, .L1066+44 cmp r5, #1 sub r8, r8, #3104 ldrb r0, [r8, #-19] @ zero_extendqisi2 @@ -5797,9 +5619,9 @@ gc_search_src_blk: smulbb r1, r0, r1 uxth r1, r1 str r1, [sp, #12] - bne .L996 + bne .L969 cmp r2, #0 - beq .L996 + beq .L969 ldrh r0, [r7, #80] movw r1, #65535 mov r5, #8 @@ -5810,39 +5632,39 @@ gc_search_src_blk: rsbne r1, r1, r0 uxthne r1, r1 strne r1, [sp, #12] -.L996: +.L969: movw r0, #2180 mov r7, #0 strh r7, [r3, r0] @ movhi ldr r3, [sp, #16] - ldr r4, .L1093+36 + ldr r4, .L1066+36 ands r3, r3, #1 str r3, [sp, #20] - ldr r1, .L1093 + ldr r1, .L1066 strh r7, [r4] @ movhi ldreq r7, [sp, #20] moveq r4, r7 - beq .L997 + beq .L970 ldrh r0, [r4, #2] movw r3, #2794 ldrh r3, [r1, r3] add r4, r4, #16 str r4, [sp, #24] cmp r3, r0, lsr #2 - bhi .L998 + bhi .L971 movw r0, #2796 ldrh r1, [r1, r0] cmp r1, r3 movcs r4, r7 - bcs .L999 -.L998: + bcs .L972 +.L971: cmp r2, #1 - bls .L1000 -.L1002: + bls .L973 +.L975: mov r4, #0 - b .L1001 -.L1000: - ldr r4, .L1093+8 + b .L974 +.L973: + ldr r4, .L1066+8 mov r1, #0 mov r3, r3, lsr #2 strh r3, [r8, #-8] @ movhi @@ -5850,13 +5672,13 @@ gc_search_src_blk: bl _list_get_gc_head_node movw r2, #65535 cmp r0, r2 - beq .L1002 - ldr r1, [r6, #1088] + beq .L975 + ldr r1, [r6, #1092] mov r3, r0, asl #1 ldrh r2, [r4, #8] ldrh r3, [r1, r3] cmp r3, r2, lsr #2 - bcs .L1002 + bcs .L975 mov r1, #0 ldr r2, [sp, #8] mov r3, #1 @@ -5864,13 +5686,13 @@ gc_search_src_blk: bl gc_add_sblk adds r4, r0, #0 movne r4, #1 -.L1001: - ldr r9, .L1093+40 +.L974: + ldr r9, .L1066+40 mov r8, #64 mov r7, #0 -.L1005: +.L978: ldrh fp, [r9] - ldr r3, .L1093+40 + ldr r3, .L1066+40 mov r1, fp add r0, r3, #20 str r3, [sp, #28] @@ -5879,15 +5701,15 @@ gc_search_src_blk: cmp r0, r2 mov r10, r0 ldr r3, [sp, #28] - beq .L1003 + beq .L976 mov r1, #0 ldr r2, [sp, #8] add fp, fp, #1 strh fp, [r9] @ movhi bl gc_add_sblk cmp r0, #0 - beq .L1004 - ldr r3, [r6, #1088] + beq .L977 + ldr r3, [r6, #1092] mov r10, r10, asl #1 add r4, r4, #1 ldrh r3, [r3, r10] @@ -5897,40 +5719,40 @@ gc_search_src_blk: uxth r7, r7 cmp r7, r3 cmpls r4, r5 - bcs .L999 - ldr r2, .L1093+48 - ldr r3, .L1093+52 + bcs .L972 + ldr r2, .L1066+48 + ldr r3, .L1066+52 ldrh r2, [r2] ldrh r3, [r3] cmp r3, r2, asl #1 - ble .L1004 - b .L999 -.L1003: + ble .L977 + b .L972 +.L976: mov r2, #0 strh r2, [r3] @ movhi - b .L999 -.L1004: + b .L972 +.L977: sub r8, r8, #1 uxth r8, r8 cmp r8, #0 - bne .L1005 -.L999: + bne .L978 +.L972: movw r3, #2796 ldrh r2, [r6, r3] ldr r3, [sp, #24] ldrh r3, [r3, #-14] cmp r2, r3, lsr #2 - bhi .L1026 - ldr r1, .L1093 + bhi .L999 + ldr r1, .L1066 movw r3, #2794 ldrh r3, [r1, r3] add r3, r3, #8 cmp r2, r3 - bgt .L1026 -.L997: + bgt .L999 +.L970: ldr r3, [sp, #16] tst r3, #2 - beq .L1009 + beq .L982 movw r3, #2798 ldrh r2, [r6, r3] ldr r3, [sp, #12] @@ -5940,52 +5762,52 @@ gc_search_src_blk: cmp r2, #32 movls r3, #0 cmp r3, #0 - beq .L1009 - ldr r9, .L1093+28 + beq .L982 + ldr r9, .L1066+28 mov r8, #64 mov r6, #0 -.L1015: +.L988: ldrh r3, [r9] - ldr r10, .L1093+28 - ldr fp, .L1093 + ldr r10, .L1066+28 + ldr fp, .L1066 add r0, r10, #8 mov r1, r3 str r3, [sp, #24] bl _list_get_gc_head_node movw r2, #65535 cmp r0, r2 - beq .L1010 + beq .L983 ldr r3, [sp, #24] cmp r5, #1 add r3, r3, #1 strh r3, [r9] @ movhi - bne .L1011 - ldr r3, .L1093+44 + bne .L984 + ldr r3, .L1066+44 ldrb r2, [r3, #-3123] @ zero_extendqisi2 ldrh r3, [r10, #-6] smulbb r3, r2, r3 ldrh r2, [r10, #12] sub r3, r3, r2, lsr #3 - ldr r2, .L1093+56 + ldr r2, .L1066+56 strh r3, [r2] @ movhi -.L1011: - ldr r3, [fp, #1088] +.L984: + ldr r3, [fp, #1092] mov r10, r0, asl #1 ldrh r2, [r3, r10] - ldr r3, .L1093+56 + ldr r3, .L1066+56 ldrh r3, [r3] cmp r2, r3 - bcs .L1012 + bcs .L985 mov r1, #0 ldr r2, [sp, #8] bl gc_add_sblk cmp r0, #0 - beq .L1013 - ldr r3, .L1093 + beq .L986 + ldr r3, .L1066 add r4, r4, #1 add r6, r6, #1 uxth r4, r4 - ldr r3, [r3, #1088] + ldr r3, [r3, #1092] uxth r6, r6 ldrh r3, [r3, r10] add r7, r7, r3 @@ -5993,38 +5815,38 @@ gc_search_src_blk: uxth r7, r7 cmp r7, r3 cmpls r4, r5 - bcc .L1013 - b .L1014 -.L1012: - ldr r3, .L1093+8 + bcc .L986 + b .L987 +.L985: + ldr r3, .L1066+8 mov r2, #0 strh r2, [r3, #-4] @ movhi - b .L1014 -.L1010: + b .L987 +.L983: mov r3, #0 strh r3, [r10] @ movhi - b .L1014 -.L1013: + b .L987 +.L986: sub r8, r8, #1 uxth r8, r8 cmp r8, #0 - bne .L1015 -.L1014: - ldr r0, .L1093+44 + bne .L988 +.L987: + ldr r0, .L1066+44 cmp r4, r5 sub r2, r0, #3088 - bcc .L1016 + bcc .L989 cmp r6, #0 - bne .L1017 - ldr ip, .L1093 + bne .L990 + ldr ip, .L1066 sub r3, r0, #3072 movw r1, #2798 ldrh r3, [r3, #-12] ldrh r1, [ip, r1] cmp r1, r3 - bls .L1017 -.L1016: - ldr r3, .L1093+8 + bls .L990 +.L989: + ldr r3, .L1066+8 movw r1, #2810 ldrh r2, [r2, #-8] ldrh ip, [fp, r1] @@ -6035,10 +5857,10 @@ gc_search_src_blk: rsb r3, r2, r3 cmp ip, r3 addlt r3, r2, ip - ldrlt r2, .L1093 + ldrlt r2, .L1066 strlth r3, [r2, r1] @ movhi - b .L1009 -.L1017: + b .L982 +.L990: ldrh ip, [r2, #-8] movw r1, #2810 ldrb r2, [r0, #-3123] @ zero_extendqisi2 @@ -6046,22 +5868,22 @@ gc_search_src_blk: mul r2, r2, ip cmp r3, r2 subgt r3, r3, ip, lsr #3 - bgt .L1089 - b .L990 -.L1009: + bgt .L1062 + b .L963 +.L982: ldr r3, [sp, #20] cmp r3, #0 - beq .L990 + beq .L963 ldr r3, [sp, #12] uxth r9, r5 cmp r4, r9 cmpcc r7, r3 - bcs .L990 - ldr r10, .L1093 + bcs .L963 + ldr r10, .L1066 mov r6, #64 -.L1023: - ldr r2, .L1093+12 - ldr fp, .L1093 +.L996: + ldr r2, .L1066+12 + ldr fp, .L1066 add r0, r2, #6 ldrh r8, [r2] str r2, [sp, #20] @@ -6070,29 +5892,29 @@ gc_search_src_blk: movw r1, #65535 cmp r0, r1 ldr r2, [sp, #20] - beq .L1019 - ldr r3, .L1093+12 + beq .L992 + ldr r3, .L1066+12 add r8, r8, #1 - ldr r2, [r10, #1088] + ldr r2, [r10, #1092] strh r8, [r3] @ movhi mov r8, r0, asl #1 ldrh r1, [r2, r8] - ldr r2, .L1093+60 + ldr r2, .L1066+60 ldrh r2, [r2] cmp r1, r2 - bcs .L1020 - ldr r2, .L1093+52 + bcs .L993 + ldr r2, .L1066+52 ldrh r1, [r3, #24] ldrh r2, [r2] cmp r2, r1, lsr #1 - bls .L1021 -.L1020: + bls .L994 +.L993: mov r1, #0 ldr r2, [sp, #8] bl gc_add_sblk cmp r0, #0 - beq .L1022 - ldr r2, [r10, #1088] + beq .L995 + ldr r2, [r10, #1092] add r4, r4, #1 ldr r3, [sp, #12] uxth r4, r4 @@ -6101,35 +5923,35 @@ gc_search_src_blk: uxth r7, r7 cmp r7, r3 cmpls r4, r9 - bcc .L1022 - b .L1021 -.L1019: + bcc .L995 + b .L994 +.L992: cmp r8, #64 movhi r3, #0 strhih r3, [r2] @ movhi - b .L1021 -.L1022: + b .L994 +.L995: sub r6, r6, #1 uxth r6, r6 cmp r6, #0 - bne .L1023 -.L1021: + bne .L996 +.L994: cmp r4, r9 - ldr r0, .L1093+36 + ldr r0, .L1066+36 movw r1, #2812 - bcs .L1024 + bcs .L997 ldrh r2, [r0, #-8] ldrh r3, [fp, r1] cmp r3, r2, lsr #1 - bls .L990 + bls .L963 sub r3, r3, r2, lsr #3 -.L1089: - ldr r2, .L1093 -.L1090: +.L1062: + ldr r2, .L1066 +.L1063: strh r3, [r2, r1] @ movhi - b .L990 -.L1024: - ldr r3, .L1093+44 + b .L963 +.L997: + ldr r3, .L1066+44 ldrh r0, [r0, #-8] ldrh r2, [fp, r1] ldrb r3, [r3, #-3123] @ zero_extendqisi2 @@ -6137,34 +5959,34 @@ gc_search_src_blk: sub r3, r3, #32 cmp r2, r3 addlt r2, r2, r0, lsr #3 - ldrlt r3, .L1093 + ldrlt r3, .L1066 strlth r2, [r3, r1] @ movhi -.L990: - ldr r3, .L1093+16 +.L963: + ldr r3, .L1066+16 ldr r3, [r3] tst r3, #256 - beq .L1025 + beq .L998 str r5, [sp] mov r3, r4 - ldr r0, .L1093+64 + ldr r0, .L1066+64 ldr r1, [sp, #8] ldr r2, [sp, #16] bl printk -.L1025: +.L998: mov r0, r4 add sp, sp, #36 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1026: +.L999: ldr r3, [sp, #12] cmp r7, r3 - bcs .L997 - ldr r9, .L1093+12 + bcs .L970 + ldr r9, .L1066+12 mov r8, #64 movw r10, #65535 -.L1008: +.L981: ldrh fp, [r9] - ldr r2, .L1093+12 + ldr r2, .L1066+12 mov r1, fp add r0, r2, #6 str r2, [sp, #28] @@ -6173,7 +5995,7 @@ gc_search_src_blk: mov r3, r0 str r0, [sp, #24] ldr r2, [sp, #28] - beq .L1006 + beq .L979 mov r1, #0 ldr r2, [sp, #8] add fp, fp, #1 @@ -6181,8 +6003,8 @@ gc_search_src_blk: bl gc_add_sblk cmp r0, #0 ldr r3, [sp, #24] - beq .L1007 - ldr r2, [r6, #1088] + beq .L980 + ldr r2, [r6, #1092] mov r3, r3, asl #1 add r4, r4, #1 ldrh r3, [r2, r3] @@ -6192,28 +6014,28 @@ gc_search_src_blk: uxth r7, r7 cmp r7, r3 cmpls r4, r5 - bcc .L1007 - b .L997 -.L1006: + bcc .L980 + b .L970 +.L979: cmp fp, #64 movhi r3, #0 strhih r3, [r2] @ movhi - b .L997 -.L1007: + b .L970 +.L980: sub r8, r8, #1 uxth r8, r8 cmp r8, #0 - bne .L1008 - b .L997 -.L1094: + bne .L981 + b .L970 +.L1067: .align 2 -.L1093: +.L1066: .word .LANCHOR0 .word .LANCHOR0+2828 .word .LANCHOR3-3104 .word .LANCHOR3-3110 .word .LANCHOR2 - .word .LC101 + .word .LC98 .word .LANCHOR0+2814 .word .LANCHOR3-3108 .word .LANCHOR0+2816 @@ -6224,7 +6046,7 @@ gc_search_src_blk: .word .LANCHOR0+2796 .word .LANCHOR0+2810 .word .LANCHOR0+2812 - .word .LC102 + .word .LC99 .fnend .size gc_search_src_blk, .-gc_search_src_blk .align 2 @@ -6237,17 +6059,17 @@ zftl_get_gc_node: @ link register save eliminated. cmp r1, #5 mov r3, r0 - ldreq r0, .L1099 - beq .L1098 + ldreq r0, .L1072 + beq .L1071 cmp r1, #2 - ldreq r0, .L1099+4 - ldrne r0, .L1099+8 -.L1098: + ldreq r0, .L1072+4 + ldrne r0, .L1072+8 +.L1071: mov r1, r3 b _list_get_gc_head_node -.L1100: +.L1073: .align 2 -.L1099: +.L1072: .word .LANCHOR3-3100 .word .LANCHOR3-3092 .word .LANCHOR3-3104 @@ -6261,26 +6083,26 @@ zftl_insert_free_list: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1105 + ldr r3, .L1078 mov r1, r0 - ldr r3, [r3, #1080] + ldr r3, [r3, #1084] add r3, r3, r0, asl #2 ldrb r3, [r3, #2] @ zero_extendqisi2 ands r3, r3, #24 - ldreq r0, .L1105+4 - ldreq r2, .L1105+8 - beq .L1104 -.L1102: + ldreq r0, .L1078+4 + ldreq r2, .L1078+8 + beq .L1077 +.L1075: cmp r3, #16 - ldreq r0, .L1105+12 - ldreq r2, .L1105+16 - ldrne r0, .L1105+20 - ldrne r2, .L1105+24 -.L1104: + ldreq r0, .L1078+12 + ldreq r2, .L1078+16 + ldrne r0, .L1078+20 + ldrne r2, .L1078+24 +.L1077: b _insert_free_list -.L1106: +.L1079: .align 2 -.L1105: +.L1078: .word .LANCHOR0 .word .LANCHOR3-3080 .word .LANCHOR0+2788 @@ -6298,31 +6120,31 @@ zftl_insert_data_list: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1112 + ldr r3, .L1085 mov r1, r0 - ldr r3, [r3, #1080] + ldr r3, [r3, #1084] add r3, r3, r0, asl #2 ldrb r3, [r3, #2] @ zero_extendqisi2 and r3, r3, #224 cmp r3, #64 - ldreq r0, .L1112+4 - ldreq r2, .L1112+8 - beq .L1111 -.L1108: + ldreq r0, .L1085+4 + ldreq r2, .L1085+8 + beq .L1084 +.L1081: cmp r3, #96 - ldreq r0, .L1112+12 - ldreq r2, .L1112+16 - beq .L1111 -.L1109: + ldreq r0, .L1085+12 + ldreq r2, .L1085+16 + beq .L1084 +.L1082: cmp r3, #160 bxne lr - ldr r0, .L1112+20 - ldr r2, .L1112+24 -.L1111: + ldr r0, .L1085+20 + ldr r2, .L1085+24 +.L1084: b _insert_data_list -.L1113: +.L1086: .align 2 -.L1112: +.L1085: .word .LANCHOR0 .word .LANCHOR3-3092 .word .LANCHOR0+2794 @@ -6343,9 +6165,9 @@ zftl_gc_get_free_sblk: .save {r4, r5, r6, r7, r8, lr} .pad #16 movw r2, #65535 - ldr r8, .L1129 + ldr r8, .L1102 mov r7, r0 - ldr r3, [r8, #1092] + ldr r3, [r8, #1096] add r3, r3, #588 ldrh r4, [r3] clz r3, r0 @@ -6353,16 +6175,16 @@ zftl_gc_get_free_sblk: mov r3, r3, lsr #5 moveq r3, #0 cmp r3, #0 - beq .L1115 - ldr r0, .L1129+4 + beq .L1088 + ldr r0, .L1102+4 mov r1, r4 bl printk - ldr r3, [r8, #1092] + ldr r3, [r8, #1096] mvn r2, #0 add r3, r3, #588 strh r2, [r3] @ movhi - b .L1116 -.L1115: + b .L1089 +.L1088: movw r3, #2790 mov r6, r1 ldrh r1, [r8, r3] @@ -6370,34 +6192,34 @@ zftl_gc_get_free_sblk: ldrh r3, [r8, r3] mov r5, r8 cmp r1, r3 - bcc .L1117 + bcc .L1090 movw r2, #2788 ldrh r2, [r8, r2] cmp r3, #0 cmpne r2, r1 - bls .L1118 -.L1117: + bls .L1091 +.L1090: cmp r7, #0 - ldr r0, .L1129+8 + ldr r0, .L1102+8 rsbne r1, r1, r1, asl #3 moveq r1, r3, lsr #2 ubfxne r1, r1, #3, #16 - ldr r2, .L1129+12 - b .L1128 -.L1118: + ldr r2, .L1102+12 + b .L1101 +.L1091: cmp r0, #0 - ldr r2, .L1129+16 + ldr r2, .L1102+16 movne r1, r1, lsr #3 moveq r1, r0 - ldr r0, .L1129+20 -.L1128: + ldr r0, .L1102+20 +.L1101: bl _list_pop_index_node movw r3, #65535 uxth r4, r0 cmp r4, r3 - bne .L1123 + bne .L1096 movw r3, #2788 - ldr r0, .L1129+24 + ldr r0, .L1102+24 ldrh r3, [r5, r3] mov r1, r4 mov r2, r6 @@ -6405,17 +6227,17 @@ zftl_gc_get_free_sblk: movw r3, #2792 ldrh r3, [r5, r3] str r3, [sp, #4] - ldr r3, .L1129+28 + ldr r3, .L1102+28 ldr r3, [r3, #-3080] bl printk -.L1123: +.L1096: cmp r7, #0 - beq .L1116 - ldr r3, .L1129+32 + beq .L1089 + ldr r3, .L1102+32 ldr r3, [r3] tst r3, #256 - beq .L1116 - ldr r2, [r5, #1080] + beq .L1089 + ldr r2, [r5, #1084] mov r0, r4, asl #2 add r3, r2, r0 ldr r1, [r2, r4, asl #2] @@ -6423,10 +6245,10 @@ zftl_gc_get_free_sblk: ubfx r1, r1, #11, #8 str r1, [sp] ldrh r2, [r2, r0] - ldr r0, .L1129+36 + ldr r0, .L1102+36 ubfx r2, r2, #0, #11 str r2, [sp, #4] - ldr r1, [r5, #1088] + ldr r1, [r5, #1092] mov r2, r4, asl #1 ldrh r2, [r1, r2] mov r1, r4 @@ -6434,24 +6256,24 @@ zftl_gc_get_free_sblk: mov r2, r3, lsr #5 ubfx r3, r3, #3, #2 bl printk -.L1116: +.L1089: mov r0, r4 add sp, sp, #16 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L1130: +.L1103: .align 2 -.L1129: +.L1102: .word .LANCHOR0 - .word .LC103 + .word .LC100 .word .LANCHOR3-3072 .word .LANCHOR0+2792 .word .LANCHOR0+2790 .word .LANCHOR3-3076 - .word .LC104 + .word .LC101 .word .LANCHOR3 .word .LANCHOR2 - .word .LC105 + .word .LC102 .fnend .size zftl_gc_get_free_sblk, .-zftl_gc_get_free_sblk .align 2 @@ -6466,86 +6288,86 @@ zftl_get_free_sblk: .save {r4, r5, r6, r7, r8, lr} .pad #8 mov r7, r1 - ldr r5, .L1147 - bne .L1132 + ldr r5, .L1120 + bne .L1105 movw r3, #2790 ldrh r1, [r5, r3] movw r3, #2792 ldrh r2, [r5, r3] cmp r1, r2 - bcc .L1133 + bcc .L1106 movw r3, #2788 ldrh r3, [r5, r3] cmp r2, #0 cmpne r3, r1 movhi r1, #1 movls r1, #0 - bls .L1134 -.L1133: - ldr r0, .L1147+4 + bls .L1107 +.L1106: + ldr r0, .L1120+4 mov r1, r2, lsr #1 - b .L1146 -.L1134: - ldr r0, .L1147+8 - ldr r2, .L1147+12 - b .L1145 -.L1132: - ldr r3, [r5, #1092] + b .L1119 +.L1107: + ldr r0, .L1120+8 + ldr r2, .L1120+12 + b .L1118 +.L1105: + ldr r3, [r5, #1096] movw r8, #590 ldrh r4, [r3, r8] movw r3, #65535 cmp r1, #1 cmpne r4, r3 - beq .L1136 - ldr r0, .L1147+16 + beq .L1109 + ldr r0, .L1120+16 mov r1, r4 bl printk - ldr r3, [r5, #1092] + ldr r3, [r5, #1096] mvn r2, #0 strh r2, [r3, r8] @ movhi - b .L1137 -.L1136: + b .L1110 +.L1109: movw r3, #2788 movw r2, #2792 ldrh r3, [r5, r3] mov r6, r0 ldrh r2, [r5, r2] cmp r3, r2 - bcc .L1138 + bcc .L1111 movw r1, #2790 ldrh r1, [r5, r1] cmp r2, #0 cmpne r1, r3 - bls .L1139 -.L1138: + bls .L1112 +.L1111: bl get_ink_scaned_blk movw r3, #65535 cmp r0, r3 movne r4, r0 - bne .L1137 + bne .L1110 cmp r7, #1 - ldr r0, .L1147+4 + ldr r0, .L1120+4 movweq r3, #2792 ldreqh r6, [r5, r3] moveq r6, r6, lsr #1 mov r1, r6 -.L1146: - ldr r2, .L1147+20 - b .L1145 -.L1139: +.L1119: + ldr r2, .L1120+20 + b .L1118 +.L1112: cmp r7, #1 - ldr r0, .L1147+24 + ldr r0, .L1120+24 moveq r6, r3, lsr #1 - ldr r2, .L1147+28 + ldr r2, .L1120+28 mov r1, r6 -.L1145: +.L1118: bl _list_pop_index_node movw r3, #65535 uxth r4, r0 cmp r4, r3 - bne .L1137 + bne .L1110 movw r3, #2788 - ldr r0, .L1147+32 + ldr r0, .L1120+32 ldrh r3, [r5, r3] mov r1, r4 mov r2, r7 @@ -6553,26 +6375,26 @@ zftl_get_free_sblk: movw r3, #2792 ldrh r3, [r5, r3] str r3, [sp, #4] - ldr r3, .L1147+36 + ldr r3, .L1120+36 ldr r3, [r3, #-3080] bl printk -.L1137: +.L1110: mov r0, r4 add sp, sp, #8 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L1148: +.L1121: .align 2 -.L1147: +.L1120: .word .LANCHOR0 .word .LANCHOR3-3072 .word .LANCHOR3-3076 .word .LANCHOR0+2790 - .word .LC106 + .word .LC103 .word .LANCHOR0+2792 .word .LANCHOR3-3080 .word .LANCHOR0+2788 - .word .LC104 + .word .LC101 .word .LANCHOR3 .fnend .size zftl_get_free_sblk, .-zftl_get_free_sblk @@ -6584,31 +6406,31 @@ zftl_remove_data_node: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1154 + ldr r3, .L1127 mov r1, r0 - ldr r3, [r3, #1080] + ldr r3, [r3, #1084] add r3, r3, r0, asl #2 ldrb r3, [r3, #2] @ zero_extendqisi2 and r3, r3, #224 cmp r3, #64 - ldreq r0, .L1154+4 - ldreq r2, .L1154+8 - beq .L1153 -.L1150: + ldreq r0, .L1127+4 + ldreq r2, .L1127+8 + beq .L1126 +.L1123: cmp r3, #96 - ldreq r0, .L1154+12 - ldreq r2, .L1154+16 - beq .L1153 -.L1151: + ldreq r0, .L1127+12 + ldreq r2, .L1127+16 + beq .L1126 +.L1124: cmp r3, #160 bxne lr - ldr r0, .L1154+20 - ldr r2, .L1154+24 -.L1153: + ldr r0, .L1127+20 + ldr r2, .L1127+24 +.L1126: b _list_remove_node -.L1155: +.L1128: .align 2 -.L1154: +.L1127: .word .LANCHOR0 .word .LANCHOR3-3092 .word .LANCHOR0+2794 @@ -6626,26 +6448,26 @@ zftl_remove_free_node: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1160 + ldr r3, .L1133 mov r1, r0 - ldr r3, [r3, #1080] + ldr r3, [r3, #1084] add r3, r3, r0, asl #2 ldrb r3, [r3, #2] @ zero_extendqisi2 ands r3, r3, #24 - ldreq r0, .L1160+4 - ldreq r2, .L1160+8 - beq .L1159 -.L1157: + ldreq r0, .L1133+4 + ldreq r2, .L1133+8 + beq .L1132 +.L1130: cmp r3, #16 - ldreq r0, .L1160+12 - ldreq r2, .L1160+16 - ldrne r0, .L1160+20 - ldrne r2, .L1160+24 -.L1159: + ldreq r0, .L1133+12 + ldreq r2, .L1133+16 + ldrne r0, .L1133+20 + ldrne r2, .L1133+24 +.L1132: b _list_remove_node -.L1161: +.L1134: .align 2 -.L1160: +.L1133: .word .LANCHOR0 .word .LANCHOR3-3080 .word .LANCHOR0+2788 @@ -6663,31 +6485,31 @@ zftl_list_update_data_list: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1167 + ldr r3, .L1140 mov r1, r0 - ldr r3, [r3, #1080] + ldr r3, [r3, #1084] add r3, r3, r0, asl #2 ldrb r3, [r3, #2] @ zero_extendqisi2 and r3, r3, #224 cmp r3, #64 - ldreq r0, .L1167+4 - ldreq r2, .L1167+8 - beq .L1166 -.L1163: + ldreq r0, .L1140+4 + ldreq r2, .L1140+8 + beq .L1139 +.L1136: cmp r3, #96 - ldreq r0, .L1167+12 - ldreq r2, .L1167+16 - beq .L1166 -.L1164: + ldreq r0, .L1140+12 + ldreq r2, .L1140+16 + beq .L1139 +.L1137: cmp r3, #160 bxne lr - ldr r0, .L1167+20 - ldr r2, .L1167+24 -.L1166: + ldr r0, .L1140+20 + ldr r2, .L1140+24 +.L1139: b _list_update_data_list -.L1168: +.L1141: .align 2 -.L1167: +.L1140: .word .LANCHOR0 .word .LANCHOR3-3092 .word .LANCHOR0+2794 @@ -6711,19 +6533,19 @@ print_list_info: .pad #36 sub sp, sp, #36 ldr r1, [r4] - ldr r0, .L1174 + ldr r0, .L1147 bl printk ldr r4, [r4] cmp r4, #0 - beq .L1169 - ldr r6, .L1174+4 + beq .L1142 + ldr r6, .L1147+4 mov r5, #0 - ldr r7, .L1174+8 -.L1172: + ldr r7, .L1147+8 +.L1145: ldr r2, [r6, #1036] ldrh r0, [r4, #2] rsb r2, r2, r4 - ldr r1, [r6, #1080] + ldr r1, [r6, #1084] ldrh r3, [r4] mov r2, r2, asr #1 str r0, [sp] @@ -6743,39 +6565,39 @@ print_list_info: ubfx r0, r0, #11, #8 str r0, [sp, #16] ldrh r1, [r1, ip] - ldr r0, [r6, #1088] + ldr r0, [r6, #1092] ubfx r1, r1, #0, #11 str r1, [sp, #20] mov r1, r2, asl #1 ldrh r1, [r0, r1] - ldr r0, .L1174+12 + ldr r0, .L1147+12 str r1, [sp, #24] mov r1, r5 bl printk ldrh r2, [r4] movw r3, #65535 cmp r2, r3 - beq .L1169 + beq .L1142 ldr r3, [r6, #1036] mov r4, #6 add r5, r5, #1 mla r4, r4, r2, r3 - ldr r3, .L1174+16 + ldr r3, .L1147+16 uxth r5, r5 ldrh r3, [r3] cmp r3, r5 - bcs .L1172 -.L1169: + bcs .L1145 +.L1142: add sp, sp, #36 @ sp needed ldmfd sp!, {r4, r5, r6, r7, pc} -.L1175: +.L1148: .align 2 -.L1174: - .word .LC107 +.L1147: + .word .LC104 .word .LANCHOR0 .word -1431655765 - .word .LC108 + .word .LC105 .word .LANCHOR3-3068 .fnend .size print_list_info, .-print_list_info @@ -6788,8 +6610,8 @@ dump_all_list_info: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} - ldr r4, .L1178 - ldr r5, .L1178+4 + ldr r4, .L1151 + ldr r5, .L1151+4 add r1, r4, #2784 sub r6, r5, #3072 add r1, r1, #4 @@ -6817,9 +6639,9 @@ dump_all_list_info: add r1, r1, #14 ldmfd sp!, {r4, r5, r6, lr} b print_list_info -.L1179: +.L1152: .align 2 -.L1178: +.L1151: .word .LANCHOR0 .word .LANCHOR3 .fnend @@ -6832,7 +6654,7 @@ ftl_tmp_into_update: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1185 + ldr r3, .L1158 ldr r3, [r3, #2804] ldr r2, [r3, #16] cmp r2, #2048 @@ -6867,9 +6689,9 @@ ftl_tmp_into_update: addhi r1, r1, r0 strhi r1, [r3, #44] bx lr -.L1186: +.L1159: .align 2 -.L1185: +.L1158: .word .LANCHOR0 .fnend .size ftl_tmp_into_update, .-ftl_tmp_into_update @@ -6885,23 +6707,23 @@ ftl_get_blk_list_in_sblk: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 mov r5, #0 - ldr r8, .L1197 + ldr r8, .L1170 mov r10, r0 - ldr r9, .L1197+4 + ldr r9, .L1170+4 mov r6, r1 - ldr r2, .L1197+8 + ldr r2, .L1170+8 mov r7, r5 - ldr r4, [r8, #1080] + ldr r4, [r8, #1084] add r4, r4, r0, asl #2 ldrb r3, [r4, #3] @ zero_extendqisi2 -.L1188: +.L1161: ldrb r1, [r9, #-3123] @ zero_extendqisi2 cmp r7, r1 - ldr r1, .L1197+4 - bge .L1195 + ldr r1, .L1170+4 + bge .L1168 mov r1, r3, asr r7 tst r1, #1 - bne .L1189 + bne .L1162 ldrb r4, [r9, #-3130] @ zero_extendqisi2 mov r0, r7 str r2, [sp, #4] @@ -6911,7 +6733,7 @@ ftl_get_blk_list_in_sblk: mov r1, r4 bl __aeabi_idiv smulbb r4, r10, r4 - ldrb r1, [r8, #1189] @ zero_extendqisi2 + ldrb r1, [r8, #1153] @ zero_extendqisi2 rsb r1, r1, #24 ldr r2, [sp, #4] ldr r3, [sp] @@ -6926,26 +6748,26 @@ ftl_get_blk_list_in_sblk: andhi r1, r1, r7 addhi r4, r4, r1 strhih r4, [r6, fp] @ movhi -.L1189: +.L1162: add r7, r7, #1 - b .L1188 -.L1195: + b .L1161 +.L1168: add r6, r6, r5, asl #1 mov r0, r5 mvn r2, #0 -.L1192: +.L1165: ldrb r3, [r1, #-3123] @ zero_extendqisi2 cmp r5, r3 strlth r2, [r6], #2 @ movhi addlt r5, r5, #1 - blt .L1192 -.L1196: + blt .L1165 +.L1169: add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1198: +.L1171: .align 2 -.L1197: +.L1170: .word .LANCHOR0 .word .LANCHOR3 .word .LANCHOR3-3132 @@ -6961,9 +6783,9 @@ ftl_erase_phy_blk: stmfd sp!, {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} mov r6, r1 - ldr r3, .L1205 - ldrb r4, [r3, #1189] @ zero_extendqisi2 - ldr r3, .L1205+4 + ldr r3, .L1178 + ldrb r4, [r3, #1153] @ zero_extendqisi2 + ldr r3, .L1178+4 rsb r4, r4, #24 sub r2, r3, #3120 sub r7, r3, #3056 @@ -6976,26 +6798,26 @@ ftl_erase_phy_blk: uxtb r5, r5 sxth r4, r4 cmp r2, #0 - beq .L1200 + beq .L1173 ldrb r3, [r3, #-3121] @ zero_extendqisi2 cmp r3, #0 - bne .L1200 + bne .L1173 ldrh r2, [r7, #-10] clz r1, r1 mov r0, r5 mov r1, r1, lsr #5 mul r2, r2, r4 bl flash_erase_block_en -.L1200: +.L1173: ldrh r2, [r7, #-10] mov r0, r5 uxtb r1, r6 mul r2, r2, r4 ldmfd sp!, {r3, r4, r5, r6, r7, lr} b flash_erase_block_en -.L1206: +.L1179: .align 2 -.L1205: +.L1178: .word .LANCHOR0 .word .LANCHOR3 .fnend @@ -7010,39 +6832,39 @@ ftl_erase_sblk: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r10, r0, asl #2 - ldr r4, .L1235 + ldr r4, .L1208 .pad #84 sub sp, sp, #84 - ldr r9, .L1235+4 + ldr r9, .L1208+4 mov r8, r0 mov r7, r1 mov r6, #0 - ldr r3, [r4, #1080] + ldr r3, [r4, #1084] add r3, r3, r10 ldrb r3, [r3, #3] @ zero_extendqisi2 str r3, [sp, #12] -.L1208: +.L1181: ldrb r3, [r9, #-3064] @ zero_extendqisi2 cmp r6, r3 - bge .L1219 + bge .L1192 ldrb r2, [r9, #-3130] @ zero_extendqisi2 mov r5, #0 sub fp, r2, #1 mul r3, r2, r8 mul ip, r2, r6 str r3, [sp, #4] - ldr r3, .L1235+8 + ldr r3, .L1208+8 ldrh r3, [r3] str r3, [sp, #8] mov r3, r5 -.L1220: +.L1193: cmp r3, r2 - bge .L1234 + bge .L1207 ldr lr, [sp, #12] add r1, r3, ip mov r1, lr, asr r1 tst r1, #1 - bne .L1209 + bne .L1182 add r1, sp, #80 ldr r0, [sp, #4] add lr, r1, r5, asl #2 @@ -7052,18 +6874,18 @@ ftl_erase_sblk: add r5, r5, #1 mul r1, r0, r1 str r1, [lr, #-64] -.L1209: +.L1182: add r3, r3, #1 - b .L1220 -.L1234: + b .L1193 +.L1207: cmp r2, #4 - bne .L1232 + bne .L1205 uxtb r3, r6 uxtb ip, r7 mov fp, #0 -.L1211: +.L1184: cmp fp, r5 - beq .L1214 + beq .L1187 mov r0, r3 str r3, [sp, #8] add r3, sp, #16 @@ -7074,59 +6896,59 @@ ftl_erase_sblk: bl flash_erase_block_en ldr ip, [sp, #4] ldr r3, [sp, #8] - b .L1211 -.L1232: + b .L1184 +.L1205: cmp r5, #2 - bne .L1215 - ldr r3, .L1235+4 + bne .L1188 + ldr r3, .L1208+4 uxtb r5, r6 ldrb r3, [r3, #-3122] @ zero_extendqisi2 cmp r3, #0 - beq .L1216 + beq .L1189 ldrb r3, [r9, #-3121] @ zero_extendqisi2 cmp r3, #0 - bne .L1216 + bne .L1189 clz r1, r7 mov r0, r5 ldr r2, [sp, #16] mov r1, r1, lsr #5 ldr r3, [sp, #20] bl flash_erase_duplane_block -.L1216: +.L1189: mov r0, r5 uxtb r1, r7 ldr r2, [sp, #16] ldr r3, [sp, #20] bl flash_erase_duplane_block - b .L1214 -.L1215: + b .L1187 +.L1188: cmp r5, #1 - bne .L1214 - ldr r3, .L1235+4 + bne .L1187 + ldr r3, .L1208+4 uxtb r5, r6 ldrb r3, [r3, #-3122] @ zero_extendqisi2 cmp r3, #0 - beq .L1218 + beq .L1191 ldrb r3, [r9, #-3121] @ zero_extendqisi2 cmp r3, #0 - bne .L1218 + bne .L1191 clz r1, r7 mov r0, r5 ldr r2, [sp, #16] mov r1, r1, lsr #5 bl flash_erase_block_en -.L1218: +.L1191: mov r0, r5 uxtb r1, r7 ldr r2, [sp, #16] bl flash_erase_block_en -.L1214: +.L1187: add r6, r6, #1 - b .L1208 -.L1219: + b .L1181 +.L1192: cmp r7, #0 - ldr r1, [r4, #1080] - bne .L1221 + ldr r1, [r4, #1084] + bne .L1194 ldrh r3, [r1, r10] ubfx r2, r3, #0, #11 add r2, r2, #1 @@ -7137,14 +6959,14 @@ ftl_erase_sblk: ldrh r0, [r3, #96] add r2, r2, #1 str r2, [r3, #84] - ldr r2, [r4, #1080] + ldr r2, [r4, #1084] ldrh r2, [r2, r10] ubfx r2, r2, #0, #11 uxth r1, r2 cmp r0, r1 strlth r2, [r3, #96] @ movhi - b .L1223 -.L1221: + b .L1196 +.L1194: ldr r3, [r1, r8, asl #2] ubfx r2, r3, #11, #8 add r2, r2, #1 @@ -7155,19 +6977,19 @@ ftl_erase_sblk: ldrh r1, [r3, #98] add r2, r2, #1 str r2, [r3, #80] - ldr r2, [r4, #1080] + ldr r2, [r4, #1084] ldr r2, [r2, r8, asl #2] ubfx r2, r2, #11, #8 cmp r1, r2 strcch r2, [r3, #98] @ movhi -.L1223: +.L1196: mov r0, #0 add sp, sp, #84 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1236: +.L1209: .align 2 -.L1235: +.L1208: .word .LANCHOR0 .word .LANCHOR3 .word .LANCHOR3-3066 @@ -7180,7 +7002,7 @@ ftl_alloc_sys_blk: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1248 + ldr r3, .L1221 stmfd sp!, {r4, lr} .save {r4, lr} ldr r2, [r3, #2804] @@ -7191,32 +7013,32 @@ ftl_alloc_sys_blk: strhih r3, [r2, #136] @ movhi ldrh r3, [r2, #112] cmp r3, #0 - bne .L1239 - ldr r1, .L1248+4 + bne .L1212 + ldr r1, .L1221+4 movw r2, #1359 - ldr r0, .L1248+8 + ldr r0, .L1221+8 bl printk bl dump_stack -.L1239: +.L1212: ldr r3, [r4, #2804] movw lr, #65535 mov ip, #0 -.L1243: +.L1216: ldrh r2, [r3, #136] add r1, r2, #79 add r1, r3, r1, asl #1 -.L1240: +.L1213: cmp r2, #63 - bgt .L1247 + bgt .L1220 ldrh r0, [r1, #2]! cmp r0, lr - bne .L1245 + bne .L1218 add r2, r2, #1 - b .L1240 -.L1247: + b .L1213 +.L1220: strh ip, [r3, #136] @ movhi - b .L1243 -.L1245: + b .L1216 +.L1218: add r1, r3, r2, asl #1 mvn ip, #0 strh ip, [r1, #160] @ movhi @@ -7225,11 +7047,11 @@ ftl_alloc_sys_blk: add r2, r2, ip strh r2, [r3, #112] @ movhi ldmfd sp!, {r4, pc} -.L1249: +.L1222: .align 2 -.L1248: +.L1221: .word .LANCHOR0 - .word .LANCHOR1+1640 + .word .LANCHOR1+1508 .word .LC0 .fnend .size ftl_alloc_sys_blk, .-ftl_alloc_sys_blk @@ -7243,7 +7065,7 @@ ftl_free_sys_blk: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r5, r0 - ldr r3, .L1260 + ldr r3, .L1233 ldr r2, [r3, #2804] mov r4, r3 ldrh r1, [r2, #138] @@ -7252,26 +7074,26 @@ ftl_free_sys_blk: strhih r3, [r2, #138] @ movhi ldrh r3, [r2, #112] cmp r3, #63 - bls .L1252 - ldr r1, .L1260+4 + bls .L1225 + ldr r1, .L1233+4 movw r2, #1386 - ldr r0, .L1260+8 + ldr r0, .L1233+8 bl printk bl dump_stack -.L1252: +.L1225: ldr r3, [r4, #2804] movw ip, #65535 mov r0, #0 -.L1256: +.L1229: ldrh r2, [r3, #138] add r1, r2, #79 add r1, r3, r1, asl #1 -.L1253: +.L1226: cmp r2, #63 - bgt .L1259 + bgt .L1232 ldrh lr, [r1, #2]! cmp lr, ip - bne .L1254 + bne .L1227 add r1, r3, r2, asl #1 strh r5, [r1, #160] @ movhi strh r2, [r3, #138] @ movhi @@ -7279,17 +7101,17 @@ ftl_free_sys_blk: add r2, r2, #1 strh r2, [r3, #112] @ movhi ldmfd sp!, {r3, r4, r5, pc} -.L1254: +.L1227: add r2, r2, #1 - b .L1253 -.L1259: + b .L1226 +.L1232: strh r0, [r3, #138] @ movhi - b .L1256 -.L1261: + b .L1229 +.L1234: .align 2 -.L1260: +.L1233: .word .LANCHOR0 - .word .LANCHOR1+1660 + .word .LANCHOR1+1528 .word .LC0 .fnend .size ftl_free_sys_blk, .-ftl_free_sys_blk @@ -7306,9 +7128,9 @@ ftl_info_data_recovery: ldrh r6, [r0] cmp r6, r3 ldmeqfd sp!, {r4, r5, r6, r7, r8, pc} - ldr r4, .L1272 + ldr r4, .L1245 mov r8, r6, asl #2 - ldr r5, [r4, #1080] + ldr r5, [r4, #1084] add r7, r5, r8 ldrb r3, [r7, #2] @ zero_extendqisi2 tst r3, #224 @@ -7324,7 +7146,7 @@ ftl_info_data_recovery: ldrneh r3, [r2, #116] subne r3, r3, #1 strneh r3, [r2, #116] @ movhi - bne .L1267 + bne .L1240 tst r3, #24 ldreqh r3, [r2, #114] ldrneh r3, [r2, #118] @@ -7332,11 +7154,11 @@ ftl_info_data_recovery: subne r3, r3, #1 streqh r3, [r2, #114] @ movhi strneh r3, [r2, #118] @ movhi -.L1267: +.L1240: ldrb r3, [r7, #2] @ zero_extendqisi2 and r3, r3, #224 cmp r3, #160 - bne .L1269 + bne .L1242 ldr r3, [r5, r6, asl #2] ubfx r2, r3, #11, #8 add r2, r2, #1 @@ -7347,29 +7169,29 @@ ftl_info_data_recovery: sub r3, r3, #1 strh r3, [r2, #120] @ movhi ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L1269: +.L1242: ldrh r2, [r5, r8] cmp r3, #64 ubfx r1, r2, #0, #11 add r1, r1, #1 bfi r2, r1, #0, #11 strh r2, [r5, r8] @ movhi - bne .L1270 + bne .L1243 ldr r2, [r4, #2804] ldrh r3, [r2, #122] sub r3, r3, #1 strh r3, [r2, #122] @ movhi ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L1270: +.L1243: cmp r3, #96 ldreq r2, [r4, #2804] ldreqh r3, [r2, #124] subeq r3, r3, #1 streqh r3, [r2, #124] @ movhi ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L1273: +.L1246: .align 2 -.L1272: +.L1245: .word .LANCHOR0 .fnend .size ftl_info_data_recovery, .-ftl_info_data_recovery @@ -7383,9 +7205,9 @@ ftl_get_ppa_from_index: stmfd sp!, {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} mov r4, r0 - ldr r3, .L1279 - ldr r2, .L1279+4 - ldr r5, [r3, #1092] + ldr r3, .L1252 + ldr r2, .L1252+4 + ldr r5, [r3, #1096] sub r3, r2, #3088 ldrb r2, [r2, #-3123] @ zero_extendqisi2 ldrh r3, [r3, #-8] @@ -7408,23 +7230,23 @@ ftl_get_ppa_from_index: add r5, r5, r4, asl #1 ldrh r4, [r5, #16] cmp r4, r3 - bne .L1277 - ldr r1, .L1279+8 + bne .L1250 + ldr r1, .L1252+8 movw r2, #1945 - ldr r0, .L1279+12 + ldr r0, .L1252+12 bl printk bl dump_stack -.L1277: - ldr r3, .L1279+16 +.L1250: + ldr r3, .L1252+16 ldrh r0, [r3, #-10] mla r0, r0, r4, r7 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L1280: +.L1253: .align 2 -.L1279: +.L1252: .word .LANCHOR0 .word .LANCHOR3 - .word .LANCHOR1+1680 + .word .LANCHOR1+1548 .word .LC0 .word .LANCHOR3-3056 .fnend @@ -7437,8 +7259,8 @@ lpa_hash_get_ppa: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 uxtb r3, r0 - ldr r2, .L1287 - ldr r1, .L1287+4 + ldr r2, .L1260 + ldr r1, .L1260+4 mov r3, r3, asl #1 str lr, [sp, #-4]! .save {lr} @@ -7446,25 +7268,25 @@ lpa_hash_get_ppa: ldr ip, [r2, #-2544] ldr r1, [r2, #-2548] movw r2, #65535 -.L1282: +.L1255: cmp r3, r2 - beq .L1286 + beq .L1259 ldr lr, [r1, r3, asl #2] cmp lr, r0 - bne .L1283 + bne .L1256 mov r0, r3 ldr lr, [sp], #4 b ftl_get_ppa_from_index -.L1283: +.L1256: mov r3, r3, asl #1 ldrh r3, [ip, r3] - b .L1282 -.L1286: + b .L1255 +.L1259: mvn r0, #0 ldr pc, [sp], #4 -.L1288: +.L1261: .align 2 -.L1287: +.L1260: .word .LANCHOR3 .word .LANCHOR3-3060 .fnend @@ -7482,44 +7304,44 @@ ftl_get_new_free_page: ldrh r2, [r0] mov r4, r0 cmp r2, r3 - bne .L1290 - ldr r1, .L1299 + bne .L1263 + ldr r1, .L1272 movw r2, #2088 - ldr r0, .L1299+4 + ldr r0, .L1272+4 bl printk bl dump_stack -.L1290: - ldr r3, .L1299+8 +.L1263: + ldr r3, .L1272+8 ldrh r2, [r4, #2] ldrh r3, [r3, #-8] cmp r2, r3 - bne .L1291 - ldr r1, .L1299 + bne .L1264 + ldr r1, .L1272 movw r2, #2089 - ldr r0, .L1299+4 + ldr r0, .L1272+4 bl printk bl dump_stack -.L1291: +.L1264: ldrh r3, [r4, #6] cmp r3, #0 - bne .L1292 - ldr r1, .L1299 + bne .L1265 + ldr r1, .L1272 movw r2, #2090 - ldr r0, .L1299+4 + ldr r0, .L1272+4 bl printk bl dump_stack -.L1292: +.L1265: ldrb r3, [r4, #5] @ zero_extendqisi2 movw r2, #65535 - ldr r1, .L1299+12 + ldr r1, .L1272+12 mov lr, #0 add r3, r4, r3, asl #1 ldrb r0, [r1, #-3123] @ zero_extendqisi2 ldrh ip, [r3, #16] -.L1293: +.L1266: cmp ip, r2 ldrb r3, [r4, #5] @ zero_extendqisi2 - bne .L1298 + bne .L1271 add r3, r3, #1 uxtb r3, r3 strb r3, [r4, #5] @@ -7531,9 +7353,9 @@ ftl_get_new_free_page: ldrb r3, [r4, #5] @ zero_extendqisi2 add r3, r4, r3, asl #1 ldrh ip, [r3, #16] - b .L1293 -.L1298: - ldr r0, .L1299+16 + b .L1266 +.L1271: + ldr r0, .L1272+16 add r3, r3, #1 ldrb r1, [r1, #-3123] @ zero_extendqisi2 uxtb r3, r3 @@ -7554,10 +7376,10 @@ ftl_get_new_free_page: add ip, ip, #1 strh ip, [r4, #10] @ movhi ldmfd sp!, {r4, pc} -.L1300: +.L1273: .align 2 -.L1299: - .word .LANCHOR1+1704 +.L1272: + .word .LANCHOR1+1572 .word .LC0 .word .LANCHOR3-3088 .word .LANCHOR3 @@ -7579,14 +7401,14 @@ ftl_ext_alloc_new_blk: mov r4, r0 uxth r3, r3 cmp r3, r2 - bls .L1302 - ldr r1, .L1304 + bls .L1275 + ldr r1, .L1277 movw r2, #2125 - ldr r0, .L1304+4 + ldr r0, .L1277+4 bl printk bl dump_stack -.L1302: - ldr r5, .L1304+8 +.L1275: + ldr r5, .L1277+8 mov r1, #0 mov r0, r4 bl ftl_erase_phy_blk @@ -7598,10 +7420,10 @@ ftl_ext_alloc_new_blk: strh r4, [r3, #130] @ movhi strh r0, [r3, #140] @ movhi ldmfd sp!, {r3, r4, r5, pc} -.L1305: +.L1278: .align 2 -.L1304: - .word .LANCHOR1+1728 +.L1277: + .word .LANCHOR1+1596 .word .LC0 .word .LANCHOR0 .fnend @@ -7613,15 +7435,15 @@ ftl_total_vpn_update: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L1319 + ldr r2, .L1292 ldrh r3, [r2, #-12] cmp r3, #4 cmpls r0, #0 addeq r3, r3, #1 streqh r3, [r2, #-12] @ movhi bxeq lr - ldr r3, .L1319+4 - movw ip, #1076 + ldr r3, .L1292+4 + movw ip, #1080 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r0, #0 @@ -7629,26 +7451,26 @@ ftl_total_vpn_update: movw r6, #65535 strh r0, [r2, #-12] @ movhi mov ip, r0 - ldr r1, [r3, #1088] - ldr r2, [r3, #1080] + ldr r1, [r3, #1092] + ldr r2, [r3, #1084] sub r1, r1, #2 add lr, r2, lr, asl #2 -.L1309: +.L1282: cmp r2, lr - beq .L1318 + beq .L1291 ldrh r4, [r1, #2]! cmp r4, r6 - beq .L1310 + beq .L1283 ldrb r5, [r2, #2] @ zero_extendqisi2 and r5, r5, #224 cmp r5, #160 addeq r0, r0, r4 addne ip, ip, r4 -.L1310: +.L1283: add r2, r2, #4 - b .L1309 -.L1318: - ldr r4, [r3, #1092] + b .L1282 +.L1291: + ldr r4, [r3, #1096] ldr r3, [r3, #2804] str ip, [r4, #524] str r0, [r4, #528] @@ -7658,9 +7480,9 @@ ftl_total_vpn_update: bl __aeabi_uidiv str r0, [r4, #532] ldmfd sp!, {r4, r5, r6, pc} -.L1320: +.L1293: .align 2 -.L1319: +.L1292: .word .LANCHOR3-2528 .word .LANCHOR0 .fnend @@ -7672,10 +7494,10 @@ ftl_debug_info_fill: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1326 - ldrb r3, [r3, #2772] @ zero_extendqisi2 + ldr r3, .L1299 + ldrb r3, [r3, #-2538] @ zero_extendqisi2 cmp r3, #8 - bls .L1325 + bls .L1298 stmfd sp!, {r4, lr} .save {r4, lr} sub r4, r0, #2 @@ -7686,24 +7508,24 @@ ftl_debug_info_fill: cmp r4, #0 streq r4, [r1] streq r4, [r1, #4] - beq .L1322 - ldr r3, .L1326+4 + beq .L1295 + ldr r3, .L1299+4 mov r4, r1 mov r0, r2 str r3, [r1] mov r1, #1024 bl js_hash str r0, [r4, #4] -.L1322: +.L1295: mov r0, #0 ldmfd sp!, {r4, pc} -.L1325: +.L1298: mov r0, #0 bx lr -.L1327: +.L1300: .align 2 -.L1326: - .word .LANCHOR0 +.L1299: + .word .LANCHOR3 .word 1212240712 .fnend .size ftl_debug_info_fill, .-ftl_debug_info_fill @@ -7718,18 +7540,18 @@ ftl_vpn_update: .save {r4, lr} mov r4, r0 bl zftl_list_update_data_list - ldr r3, .L1332 + ldr r3, .L1305 mov r4, r4, asl #1 - ldr r2, [r3, #1088] + ldr r2, [r3, #1092] ldrh r2, [r2, r4] cmp r2, #0 moveq r0, #1 movne r0, #0 streq r0, [r3, #2820] ldmfd sp!, {r4, pc} -.L1333: +.L1306: .align 2 -.L1332: +.L1305: .word .LANCHOR0 .fnend .size ftl_vpn_update, .-ftl_vpn_update @@ -7745,39 +7567,39 @@ ftl_vpn_decrement: movw r3, #65535 cmp r0, r3 mov r5, r0 - beq .L1335 - ldr r1, .L1344 + beq .L1308 + ldr r1, .L1317 mov r3, r0, asl #1 - ldr r2, [r1, #1088] + ldr r2, [r1, #1092] ldrh r4, [r2, r3] cmp r4, #0 subne r4, r4, #1 strneh r4, [r2, r3] @ movhi - bne .L1335 - ldr r3, [r1, #1080] + bne .L1308 + ldr r3, [r1, #1084] mov r2, r4 mov r1, r5 add r3, r3, r0, asl #2 - ldr r0, .L1344+4 + ldr r0, .L1317+4 ldrb r3, [r3, #2] @ zero_extendqisi2 mov r3, r3, lsr #5 bl printk mov r0, r4 ldmfd sp!, {r3, r4, r5, pc} -.L1335: - ldr r3, .L1344+8 +.L1308: + ldr r3, .L1317+8 ldrh r0, [r3] mov r4, r3 cmp r0, r5 - beq .L1341 + beq .L1314 movw r2, #65535 cmp r0, r2 streqh r5, [r3] @ movhi - beq .L1341 + beq .L1314 bl ftl_vpn_update add r3, r4, #624 ldrh r1, [r4] - ldrh r2, [r3, #-10] + ldrh r2, [r3, #-8] strh r5, [r4] @ movhi add r2, r2, #1 uxth r2, r2 @@ -7785,20 +7607,20 @@ ftl_vpn_decrement: movne r0, #1 cmp r2, #7 movhi r2, #0 - strh r2, [r3, #-10] @ movhi - ldrh r3, [r3, #-10] - ldr r2, .L1344+12 + strh r2, [r3, #-8] @ movhi + ldrh r3, [r3, #-8] + ldr r2, .L1317+12 mov r3, r3, asl #1 strh r1, [r2, r3] @ movhi ldmfd sp!, {r3, r4, r5, pc} -.L1341: +.L1314: mov r0, #0 ldmfd sp!, {r3, r4, r5, pc} -.L1345: +.L1318: .align 2 -.L1344: +.L1317: .word .LANCHOR0 - .word .LC109 + .word .LC106 .word .LANCHOR3-3152 .word .LANCHOR3-3148 .fnend @@ -7813,22 +7635,22 @@ lpa_hash_update_ppa: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} .save {r4, r5, r6, r7, r8, r9, r10, lr} uxtb r6, r0 - ldr r3, .L1358 + ldr r3, .L1331 movw r4, #65535 - ldr ip, .L1358+4 + ldr ip, .L1331+4 mov r6, r6, asl #1 mov r8, r4 ldr r7, [r3, #-2548] ldrh lr, [ip, r6] ldr r9, [r3, #-2544] -.L1347: +.L1320: cmp lr, r8 - beq .L1351 + beq .L1324 ldr r5, [r7, lr, asl #2] add r10, r7, lr, asl #2 cmp r5, r0 mov r5, lr, asl #1 - bne .L1348 + bne .L1321 mvn lr, #0 str lr, [r10] movw lr, #65535 @@ -7842,27 +7664,27 @@ lpa_hash_update_ppa: mvn r4, #0 ldr lr, [r3, #-2544] strh r4, [lr, r5] @ movhi - b .L1351 -.L1348: + b .L1324 +.L1321: mov r4, lr ldrh lr, [r9, r5] - b .L1347 -.L1351: + b .L1320 +.L1324: ldr r4, [r3, #-2548] cmn r1, #1 - ldr lr, .L1358 + ldr lr, .L1331 str r0, [r4, r2, asl #2] ldrh r0, [ip, r6] ldr r3, [r3, #-2544] strh r2, [ip, r6] @ movhi mov r2, r2, asl #1 strh r0, [r3, r2] @ movhi - beq .L1353 + beq .L1326 sub r3, lr, #3120 ldrh r0, [r3, #-12] - ldr r3, .L1358+8 + ldr r3, .L1331+8 mov r1, r1, lsr r0 - ldrb r3, [r3, #1189] @ zero_extendqisi2 + ldrb r3, [r3, #1153] @ zero_extendqisi2 rsb r3, r3, #24 rsb r3, r0, r3 mvn r0, #0 @@ -7871,12 +7693,12 @@ lpa_hash_update_ppa: bl __aeabi_uidiv uxth r0, r0 bl ftl_vpn_decrement -.L1353: +.L1326: mvn r0, #0 ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L1359: +.L1332: .align 2 -.L1358: +.L1331: .word .LANCHOR3 .word .LANCHOR3-3060 .word .LANCHOR0 @@ -7893,11 +7715,11 @@ ftl_mask_bad_block: .save {r4, r5, r6, r7, r8, r9, lr} .pad #12 mov r3, #1 - ldr r1, .L1368 - ldr r7, .L1368+4 + ldr r1, .L1341 + ldr r7, .L1341+4 sub r1, r1, #3120 ldrb r5, [r1, #-10] @ zero_extendqisi2 - ldrb r4, [r7, #1189] @ zero_extendqisi2 + ldrb r4, [r7, #1153] @ zero_extendqisi2 ldrh r1, [r1, #-12] rsb r2, r4, #24 mov r4, r3, asl r4 @@ -7919,39 +7741,39 @@ ftl_mask_bad_block: uxth r8, r0 addhi r3, r6, r3 uxtbhi r6, r3 - ldr r3, .L1368+8 + ldr r3, .L1341+8 ldr r3, [r3] tst r3, #16384 - beq .L1362 + beq .L1335 str r9, [sp] mov r1, r4 - ldr r0, .L1368+12 + ldr r0, .L1341+12 mov r2, r6 mov r3, r8 bl printk -.L1362: - movw r3, #1076 +.L1335: + movw r3, #1080 ldrh r3, [r7, r3] cmp r3, r8 - bls .L1360 - ldr r3, .L1368+4 + bls .L1333 + ldr r3, .L1341+4 mov r2, #1 - ldr r4, [r3, #1080] + ldr r4, [r3, #1084] add r4, r4, r8, asl #2 ldrb r3, [r4, #3] @ zero_extendqisi2 orr r6, r3, r2, asl r6 strb r6, [r4, #3] -.L1360: +.L1333: add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc} -.L1369: +.L1342: .align 2 -.L1368: +.L1341: .word .LANCHOR3 .word .LANCHOR0 .word .LANCHOR2 - .word .LC110 + .word .LC107 .fnend .size ftl_mask_bad_block, .-ftl_mask_bad_block .align 2 @@ -7964,26 +7786,26 @@ gc_free_bad_sblk: stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 - ldr r4, .L1391 + ldr r4, .L1364 str r0, [sp] ldr r3, [r4, #920] cmp r3, #0 movne r5, #0 - ldrne r7, .L1391+4 - beq .L1387 -.L1371: + ldrne r7, .L1364+4 + beq .L1360 +.L1344: ldrb r3, [r7, #-3123] @ zero_extendqisi2 uxth r0, r5 cmp r3, r0 - bls .L1387 + bls .L1360 ldrb r9, [r7, #-3130] @ zero_extendqisi2 mov fp, #0 - ldr r6, .L1391+8 + ldr r6, .L1364+8 mov r1, r9 uxth r8, r9 bl __aeabi_idiv - ldr r2, .L1391+12 - ldrb r3, [r6, #1189] @ zero_extendqisi2 + ldr r2, .L1364+12 + ldrb r3, [r6, #1153] @ zero_extendqisi2 cmp r9, #1 subhi r1, r8, #1 ldrh r2, [r2] @@ -7992,53 +7814,53 @@ gc_free_bad_sblk: ldrh r2, [sp] andhi r1, r1, r5 smulbb r2, r2, r8 - ldr r8, .L1391+16 + ldr r8, .L1364+16 add r0, r2, r0, asl r3 mov r9, r8 uxth r2, r0 addhi r2, r2, r1 uxthhi r2, r2 -.L1373: +.L1346: ldr r1, [r4, #920] uxth r10, fp cmp r10, r1 - bcs .L1389 + bcs .L1362 add r1, r10, #1088 add r1, r1, #8 mov r1, r1, asl #1 ldrh r1, [r8, r1] cmp r1, r2 - bne .L1374 + bne .L1347 mov r1, r2 - ldr r0, .L1391+20 + ldr r0, .L1364+20 str r2, [sp, #4] bl printk - ldr r3, .L1391+4 - ldrb r1, [r3, #-2536] @ zero_extendqisi2 + ldr r3, .L1364+4 + ldrb r1, [r3, #-2534] @ zero_extendqisi2 cmp r1, #0 ldr r2, [sp, #4] - bne .L1375 + bne .L1348 ldrb r1, [r7, #-3122] @ zero_extendqisi2 cmp r1, #0 - beq .L1376 -.L1375: + beq .L1349 +.L1348: ldr r1, [r6, #2804] - ldr r3, .L1391+24 + ldr r3, .L1364+24 ldr r1, [r1, #156] cmp r1, r3 - beq .L1377 -.L1376: - ldr r1, .L1391+12 + beq .L1350 +.L1349: + ldr r1, .L1364+12 str r2, [sp, #4] ldrh r0, [r1] mov r0, r2, asl r0 bl ftl_mask_bad_block ldr r2, [sp, #4] -.L1377: +.L1350: ldr r0, [r4, #920] -.L1378: +.L1351: cmp r10, r0 - bcs .L1390 + bcs .L1363 add r1, r10, #1088 add r3, r10, #1 add r1, r1, #9 @@ -8049,30 +7871,30 @@ gc_free_bad_sblk: uxth r10, r3 mov r1, r1, asl #1 strh lr, [r9, r1] @ movhi - b .L1378 -.L1390: + b .L1351 +.L1363: sub r0, r0, #1 str r0, [r4, #920] -.L1374: +.L1347: add fp, fp, #1 - b .L1373 -.L1389: + b .L1346 +.L1362: add r5, r5, #1 - b .L1371 -.L1387: + b .L1344 +.L1360: mov r0, #0 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1392: +.L1365: .align 2 -.L1391: +.L1364: .word .LANCHOR0+4096 .word .LANCHOR3 .word .LANCHOR0 .word .LANCHOR3-3132 .word .LANCHOR0+2828 - .word .LC111 + .word .LC108 .word 1145785929 .fnend .size gc_free_bad_sblk, .-gc_free_bad_sblk @@ -8086,19 +7908,19 @@ ftl_free_sblk: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r10, r0, asl #2 - ldr r5, .L1417 + ldr r5, .L1390 .pad #20 sub sp, sp, #20 mov r7, r0 - ldr r6, [r5, #1080] + ldr r6, [r5, #1084] add r8, r6, r10 ldrb r4, [r8, #2] @ zero_extendqisi2 tst r4, #8 mov r3, r4, lsr #5 str r3, [sp] - beq .L1394 + beq .L1367 ldr r9, [r5, #2804] - movw r1, #1084 + add r1, r5, #1088 ldrh r2, [r6, r10] ldr fp, [r6, r0, asl #2] ldrh r3, [r9, #74] @@ -8106,7 +7928,7 @@ ftl_free_sblk: ldrh ip, [r9, #72] ubfx fp, fp, #11, #8 add r3, r2, r3 - ldrh r9, [r5, r1] + ldrh r9, [r1] add ip, fp, ip str r2, [sp, #12] uxth r3, r3 @@ -8116,14 +7938,14 @@ ftl_free_sblk: mov r0, r3 str ip, [sp, #8] bl __aeabi_uidiv - ldr r1, .L1417+4 - ldrh lr, [r1, #-6] + ldr r1, .L1390+4 + ldrh lr, [r1, #-4] ldr ip, [sp, #8] ldr r3, [sp, #4] uxtah r0, ip, r0 ldr r2, [sp, #12] cmp r0, lr - ble .L1395 + ble .L1368 movw r3, #2798 sub r1, r1, #544 ldrh r0, [r5, r3] @@ -8133,7 +7955,7 @@ ftl_free_sblk: ldrh r3, [r1, #-12] add r3, r3, #8 cmp r0, r3 - blt .L1401 + blt .L1374 movw r3, #2794 movw r0, #2788 ldrh r0, [r5, r0] @@ -8145,12 +7967,12 @@ ftl_free_sblk: ldrh r3, [r1, #-14] add r3, r3, #8 cmp ip, r3 - b .L1416 -.L1395: + b .L1389 +.L1368: mla r3, r9, ip, r3 - ldrh r0, [r1, #-4] + ldrh r0, [r1, #-2] cmp r3, r0 - ble .L1397 + ble .L1370 movw r3, #2794 movw r0, #2788 ldrh r0, [r5, r0] @@ -8163,7 +7985,7 @@ ftl_free_sblk: ldrh r1, [r3, #-14] add r0, r1, #8 cmp ip, r0 - blt .L1414 + blt .L1387 movw r0, #2798 movw lr, #2790 ldrh r0, [r5, r0] @@ -8172,23 +7994,23 @@ ftl_free_sblk: add r0, r0, lr add r3, r3, #8 cmp r0, r3 - blt .L1401 + blt .L1374 add r1, r1, #24 cmp ip, r1 -.L1416: - bge .L1401 -.L1414: +.L1389: + bge .L1374 +.L1387: bfc r4, #3, #2 - b .L1412 -.L1401: + b .L1385 +.L1374: mov r3, #2 bfi r4, r3, #3, #2 -.L1412: +.L1385: strb r4, [r8, #2] -.L1397: +.L1370: ldrb r3, [r8, #2] @ zero_extendqisi2 ands r3, r3, #24 - bne .L1402 + bne .L1375 mul r9, r9, fp ldrh r3, [r6, r10] mov fp, fp, lsr #3 @@ -8199,10 +8021,10 @@ ftl_free_sblk: ldr r4, [r6, r7, asl #2] bfi r4, fp, #11, #8 str r4, [r6, r7, asl #2] - b .L1403 -.L1402: + b .L1376 +.L1375: cmp r3, #16 - bne .L1403 + bne .L1376 mov r0, r2 mov r1, r9 str r2, [sp, #4] @@ -8216,23 +8038,23 @@ ftl_free_sblk: ldrh r3, [r6, r10] mov r2, r2, asr #5 bfi r3, r2, #0, #11 - b .L1413 -.L1394: + b .L1386 +.L1367: tst r4, #24 - bne .L1403 + bne .L1376 movw r3, #2792 ldrh r3, [r5, r3] cmp r3, #0 - bne .L1403 + bne .L1376 movw r3, #2790 ldrh r1, [r5, r3] cmp r1, #15 - bhi .L1403 + bhi .L1376 movw r3, #2794 movw r2, #2788 ldrh r2, [r5, r2] ldrh r3, [r5, r3] - ldr r0, .L1417+8 + ldr r0, .L1390+8 add r3, r3, r2 movw r2, #2796 ldrh r2, [r5, r2] @@ -8240,20 +8062,20 @@ ftl_free_sblk: ldrh r2, [r0, #-14] add r2, r2, #16 cmp r3, r2 - ble .L1403 + ble .L1376 movw r3, #2798 ldrh r2, [r5, r3] ldrh r3, [r0, #-12] add r2, r2, r1 add r3, r3, #8 cmp r2, r3 - bge .L1403 + bge .L1376 mov r3, #2 bfi r4, r3, #3, #2 strb r4, [r8, #2] - movw r3, #1084 + add r5, r5, #1088 ldrh r4, [r6, r10] - ldrh r1, [r5, r3] + ldrh r1, [r5] ubfx r4, r4, #0, #11 mov r0, r4 mov r4, r4, asr #5 @@ -8266,65 +8088,65 @@ ftl_free_sblk: str r3, [r6, r7, asl #2] ldrh r3, [r6, r10] bfi r3, r4, #0, #11 -.L1413: +.L1386: strh r3, [r6, r10] @ movhi -.L1403: +.L1376: mov r0, r7 bl zftl_remove_data_node - ldr r3, .L1417 + ldr r3, .L1390 mov r0, #0 - ldr r2, [r3, #1080] + ldr r2, [r3, #1084] mov r4, r3 add r10, r2, r10 ldrb r2, [r10, #2] @ zero_extendqisi2 bfc r2, #5, #3 strb r2, [r10, #2] - ldr r1, [r3, #1088] + ldr r1, [r3, #1092] mov r2, r7, asl #1 strh r0, [r1, r2] @ movhi ldr r2, [sp] add r2, r2, #6 and r2, r2, #7 cmp r2, #4 - bhi .L1406 + bhi .L1379 mov r0, r7 bl gc_free_bad_sblk -.L1406: +.L1379: ldrb r3, [r8, #2] @ zero_extendqisi2 tst r3, #8 - beq .L1407 - ldr r3, [r4, #1092] + beq .L1380 + ldr r3, [r4, #1096] movw r2, #586 ldrh r1, [r3, r2] cmp r1, r7 - bne .L1407 + bne .L1380 mvn r1, #0 strh r1, [r3, r2] @ movhi movw r2, #590 movw r1, #65535 ldrh r0, [r3, r2] cmp r0, r1 - bne .L1407 + bne .L1380 strh r7, [r3, r2] @ movhi mov r1, r7 - ldr r0, .L1417+12 + ldr r0, .L1390+12 add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} b printk -.L1407: +.L1380: mov r0, r7 add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} b zftl_insert_free_list -.L1418: +.L1391: .align 2 -.L1417: +.L1390: .word .LANCHOR0 .word .LANCHOR3-2528 .word .LANCHOR3-3072 - .word .LC112 + .word .LC109 .fnend .size ftl_free_sblk, .-ftl_free_sblk .align 2 @@ -8337,44 +8159,44 @@ gc_free_src_blk: stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, lr} .save {r3, r4, r5, r6, r7, r8, r9, lr} mov r5, #0 - ldr r6, .L1458 - ldr r8, .L1458+4 + ldr r6, .L1431 + ldr r8, .L1431+4 mov r7, r6 -.L1420: +.L1393: ldrh r2, [r8, #52] uxth r3, r5 cmp r2, r3 - bls .L1457 + bls .L1430 add r3, r8, r3, asl #1 ldrh r4, [r3, #54] - ldr r3, [r6, #1088] + ldr r3, [r6, #1092] mov r9, r4, asl #1 ldrh r2, [r3, r9] cmp r2, #0 - beq .L1421 - ldr r0, .L1458+8 + beq .L1394 + ldr r0, .L1431+8 mov r1, r4 bl printk -.L1421: - ldr r3, [r7, #1088] +.L1394: + ldr r3, [r7, #1092] mov r2, #0 strh r2, [r3, r9] @ movhi - ldr r3, [r7, #1088] + ldr r3, [r7, #1092] ldrh r3, [r3, r9] cmp r3, r2 - bne .L1422 - ldr r3, .L1458+12 - ldr r9, [r6, #1080] + bne .L1395 + ldr r3, .L1431+12 + ldr r9, [r6, #1084] ldr r3, [r3] add r9, r9, r4, asl #2 tst r3, #256 - beq .L1423 + beq .L1396 ldrb r2, [r9, #2] @ zero_extendqisi2 mov r1, r4 - ldr r0, .L1458+16 + ldr r0, .L1431+16 mov r2, r2, lsr #5 bl printk -.L1423: +.L1396: ldrb r3, [r9, #2] @ zero_extendqisi2 tst r3, #192 and r3, r3, #224 @@ -8384,101 +8206,101 @@ gc_free_src_blk: movne r3, r2 orreq r3, r2, #1 cmp r3, #0 - beq .L1424 - ldr r1, .L1458+20 + beq .L1397 + ldr r1, .L1431+20 movw r2, #1363 - ldr r0, .L1458+24 + ldr r0, .L1431+24 bl printk bl dump_stack -.L1424: +.L1397: mov r0, r4 bl ftl_free_sblk - ldr r3, [r7, #1092] + ldr r3, [r7, #1096] ldrh r1, [r3, #124] cmp r1, #0 - beq .L1425 + beq .L1398 add r0, r3, #388 mov r2, #0 add r0, r0, #2 -.L1427: +.L1400: ldrh ip, [r0, #2]! cmp ip, r4 - bne .L1426 + bne .L1399 add r2, r2, #196 mvn r0, #0 add r1, r1, r0 mov r2, r2, asl #1 strh r0, [r3, r2] @ movhi strh r1, [r3, #124] @ movhi - b .L1425 -.L1426: + b .L1398 +.L1399: add r2, r2, #1 cmp r2, #64 - bne .L1427 -.L1425: + bne .L1400 +.L1398: ldrh r1, [r3, #120] cmp r1, #0 - beq .L1428 + beq .L1401 add r0, r3, #134 mov r2, #0 -.L1430: +.L1403: ldrh ip, [r0, #2]! cmp ip, r4 - bne .L1429 + bne .L1402 add r2, r3, r2, asl #1 mvn r0, #0 add r1, r1, r0 strh r0, [r2, #136] @ movhi strh r1, [r3, #120] @ movhi - b .L1428 -.L1429: + b .L1401 +.L1402: add r2, r2, #1 cmp r2, #64 - bne .L1430 -.L1428: + bne .L1403 +.L1401: ldrh r0, [r3, #122] cmp r0, #0 - beq .L1431 + beq .L1404 add r1, r3, #260 mov r2, #0 add r1, r1, #2 -.L1433: +.L1406: ldrh ip, [r1, #2]! cmp ip, r4 - bne .L1432 + bne .L1405 add r2, r2, #132 mvn r1, #0 add r0, r0, r1 mov r2, r2, asl #1 strh r1, [r3, r2] @ movhi strh r0, [r3, #122] @ movhi - b .L1431 -.L1432: + b .L1404 +.L1405: add r2, r2, #1 cmp r2, #64 - bne .L1433 - b .L1431 -.L1422: + bne .L1406 + b .L1404 +.L1395: mov r0, r4 mov r1, #1 bl gc_add_sblk -.L1431: +.L1404: add r5, r5, #1 - b .L1420 -.L1457: - ldr r3, .L1458+4 + b .L1393 +.L1430: + ldr r3, .L1431+4 mov r2, #0 strh r2, [r3, #52] @ movhi ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, pc} -.L1459: +.L1432: .align 2 -.L1458: +.L1431: .word .LANCHOR0 .word .LANCHOR0+2828 - .word .LC113 + .word .LC110 .word .LANCHOR2 - .word .LC114 - .word .LANCHOR1+1752 + .word .LC111 + .word .LANCHOR1+1620 .word .LC0 .fnend .size gc_free_src_blk, .-gc_free_src_blk @@ -8492,12 +8314,12 @@ print_ftl_debug_info: stmfd sp!, {r4, lr} .save {r4, lr} movw ip, #2790 - ldr r4, .L1462 + ldr r4, .L1435 .pad #32 sub sp, sp, #32 ldr r3, [r4, #2804] ldrh ip, [r4, ip] - ldr r0, [r4, #1092] + ldr r0, [r4, #1096] ldrh r1, [r3, #148] ldrh r2, [r3, #146] movw r3, #2788 @@ -8521,11 +8343,11 @@ print_ftl_debug_info: str r0, [sp, #24] ldr r0, [r4, #2784] str r0, [sp, #28] - ldr r0, .L1462+4 + ldr r0, .L1435+4 bl printk ldr r2, [r4, #2804] ldrb r3, [r4, #2801] @ zero_extendqisi2 - ldr r0, .L1462+8 + ldr r0, .L1435+8 ldr r1, [r2, #8] str r1, [sp] ldr r1, [r2, #64] @@ -8534,7 +8356,7 @@ print_ftl_debug_info: ldr r2, [r2, #28] bl printk ldr r2, [r4, #2804] - ldr r0, .L1462+12 + ldr r0, .L1435+12 ldr r3, [r2, #16] ldr r1, [r2, #52] ldr r2, [r2, #60] @@ -8557,7 +8379,7 @@ print_ftl_debug_info: str r0, [sp, #20] ldrh r0, [r2, #98] str r0, [sp, #24] - ldr r0, .L1462+16 + ldr r0, .L1435+16 ldr r2, [r2, #84] bl printk add r0, r4, #2816 @@ -8572,9 +8394,9 @@ print_ftl_debug_info: movw r0, #2808 ldrh r0, [r4, r0] str r0, [sp, #4] - ldr r0, .L1462+20 + ldr r0, .L1435+20 bl printk - ldr r0, [r4, #1092] + ldr r0, [r4, #1096] movw lr, #590 ldr ip, [r4, #2804] add r3, r0, #584 @@ -8589,21 +8411,21 @@ print_ftl_debug_info: str r0, [sp, #4] ldrh r0, [ip, #150] str r0, [sp, #8] - ldr r0, .L1462+24 + ldr r0, .L1435+24 bl printk add sp, sp, #32 @ sp needed ldmfd sp!, {r4, pc} -.L1463: +.L1436: .align 2 -.L1462: +.L1435: .word .LANCHOR0 + .word .LC112 + .word .LC113 + .word .LC114 .word .LC115 .word .LC116 .word .LC117 - .word .LC118 - .word .LC119 - .word .LC120 .fnend .size print_ftl_debug_info, .-print_ftl_debug_info .align 2 @@ -8616,42 +8438,43 @@ ftl_write_buf: stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} subs r4, r0, #0 - bne .L1465 - ldr r1, .L1476 - movw r2, #810 - ldr r0, .L1476+4 + bne .L1438 + ldr r1, .L1449 + movw r2, #811 + ldr r0, .L1449+4 bl printk bl dump_stack bl print_ftl_debug_info mvn r0, #0 ldmfd sp!, {r4, r5, r6, pc} -.L1465: - ldr r5, .L1476+8 - ldrb r2, [r4, #40] @ zero_extendqisi2 - ldrb r3, [r5, #2772] @ zero_extendqisi2 - cmp r2, r3 - bls .L1470 - ldr r1, .L1476 - movw r2, #817 - ldr r0, .L1476+4 +.L1438: + ldr r3, .L1449+8 + ldrb r1, [r4, #40] @ zero_extendqisi2 + ldrb r2, [r3, #-2538] @ zero_extendqisi2 + mov r5, r3 + cmp r1, r2 + bls .L1443 + ldr r1, .L1449 + movw r2, #818 + ldr r0, .L1449+4 bl printk bl dump_stack -.L1470: +.L1443: ldrb r3, [r4, #40] @ zero_extendqisi2 + ldr r6, .L1449+12 cmp r3, #0 - beq .L1467 - ldrb r2, [r5, #2772] @ zero_extendqisi2 - ldr r6, .L1476+8 + beq .L1440 + ldrb r2, [r5, #-2538] @ zero_extendqisi2 cmp r2, r3 - bcs .L1468 -.L1467: + bcs .L1441 +.L1440: mov r0, r4 bl zbuf_free - ldrb r0, [r5, #2800] @ zero_extendqisi2 + ldrb r0, [r6, #2800] @ zero_extendqisi2 ldmfd sp!, {r4, r5, r6, pc} -.L1468: +.L1441: mov r1, r4 - ldr r0, .L1476+12 + ldr r0, .L1449+16 bl buf_add_tail ldr r3, [r6, #2804] ldrb r1, [r4, #40] @ zero_extendqisi2 @@ -8666,11 +8489,12 @@ ftl_write_buf: add r2, r2, #1 str r2, [r3, #32] ldmfd sp!, {r4, r5, r6, pc} -.L1477: +.L1450: .align 2 -.L1476: - .word .LANCHOR1+1768 +.L1449: + .word .LANCHOR1+1636 .word .LC0 + .word .LANCHOR3 .word .LANCHOR0 .word .LANCHOR0+2824 .fnend @@ -8685,42 +8509,42 @@ ftl_write_completed: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} .save {r4, r5, r6, r7, r8, r9, r10, lr} mov r5, #0 - ldr r8, .L1496 - ldr r9, .L1496+4 + ldr r8, .L1469 + ldr r9, .L1469+4 mov r6, r8 -.L1479: - ldrb r10, [r8, #2778] @ zero_extendqisi2 +.L1452: + ldrb r10, [r8, #2777] @ zero_extendqisi2 cmp r10, #255 - beq .L1495 + beq .L1468 mov r4, #48 - ldr r7, .L1496+8 + ldr r7, .L1469+8 mul r4, r4, r10 add r7, r7, r4 add r4, r8, r4 ldrb r3, [r4, #1236] @ zero_extendqisi2 - strb r3, [r8, #2778] + strb r3, [r8, #2777] ldr r3, [r4, #1272] cmn r3, #1 - bne .L1480 - ldr r4, .L1496+12 - ldrb r3, [r4, #-2536] @ zero_extendqisi2 + bne .L1453 + ldr r4, .L1469+12 + ldrb r3, [r4, #-2534] @ zero_extendqisi2 cmp r3, #0 - bne .L1481 + bne .L1454 ldrb r3, [r4, #-3122] @ zero_extendqisi2 cmp r3, #0 - beq .L1482 -.L1481: + beq .L1455 +.L1454: ldr r3, [r6, #2804] ldr r3, [r3, #156] cmp r3, r9 - beq .L1483 -.L1482: + beq .L1456 +.L1455: mov r5, #48 - ldr r3, .L1496+16 + ldr r3, .L1469+16 mla r5, r5, r10, r6 ldrb r1, [r4, #-3130] @ zero_extendqisi2 ldrh r0, [r3] - ldrb r3, [r6, #1189] @ zero_extendqisi2 + ldrb r3, [r6, #1153] @ zero_extendqisi2 rsb r3, r3, #24 ldr r2, [r5, #1260] rsb r3, r0, r3 @@ -8728,14 +8552,14 @@ ftl_write_completed: mvn r0, #0 bic r0, r2, r0, asl r3 bl __aeabi_uidiv - ldr r3, [r6, #1092] + ldr r3, [r6, #1096] movw r2, #65535 ldr r1, [r3, #560] cmp r1, r2 uxth r4, r0 streq r4, [r3, #560] ldreq r2, [r5, #1260] - ldr r0, .L1496+20 + ldr r0, .L1469+20 mov r1, r4 streq r2, [r3, #564] mov r3, #48 @@ -8743,7 +8567,7 @@ ftl_write_completed: ldr r2, [r10, #1256] ldr r3, [r10, #1260] bl printk - ldr r3, [r6, #1092] + ldr r3, [r6, #1096] ldr r2, [r3, #556] add r2, r2, #1 str r2, [r3, #556] @@ -8751,29 +8575,29 @@ ftl_write_completed: cmp r2, r4 moveq r2, #0 streqh r2, [r3, #22] @ movhi - beq .L1483 + beq .L1456 ldrh r2, [r3, #48] cmp r2, r4 moveq r2, #0 streqh r2, [r3, #54] @ movhi -.L1483: +.L1456: mov r0, r7 mov r5, #1 bl ftl_write_buf - b .L1479 -.L1480: + b .L1452 +.L1453: cmp r5, #1 add r3, r4, #1248 add r3, r3, #12 - bne .L1488 + bne .L1461 ldr r1, [r4, #1256] ldr r2, [r4, #1260] - ldr r0, .L1496+24 + ldr r0, .L1469+24 bl printk mov r0, r7 bl ftl_write_buf - b .L1479 -.L1488: + b .L1452 +.L1461: ldr r1, [r3, #4] ldr r0, [r4, #1256] ldrh r2, [r7, #32] @@ -8784,22 +8608,22 @@ ftl_write_completed: bicne r3, r3, #2 strneb r3, [r4, #1238] movne r5, #0 - bne .L1479 + bne .L1452 mov r0, r7 bl zbuf_free - b .L1479 -.L1495: + b .L1452 +.L1468: ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L1497: +.L1470: .align 2 -.L1496: +.L1469: .word .LANCHOR0 .word 1145785929 .word .LANCHOR0+1236 .word .LANCHOR3 .word .LANCHOR3-3132 - .word .LC121 - .word .LC122 + .word .LC118 + .word .LC119 .fnend .size ftl_write_completed, .-ftl_write_completed .align 2 @@ -8811,43 +8635,41 @@ zftl_add_read_buf: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} - subs r4, r0, #0 - bne .L1499 - ldr r1, .L1504 - movw r2, #1150 - ldr r0, .L1504+4 + subs r5, r0, #0 + bne .L1472 + ldr r1, .L1477 + movw r2, #1151 + ldr r0, .L1477+4 bl printk bl dump_stack ldmfd sp!, {r3, r4, r5, lr} b print_ftl_debug_info -.L1499: - ldr r3, .L1504+8 - ldrb r2, [r4, #40] @ zero_extendqisi2 - ldrb r3, [r3, #2772] @ zero_extendqisi2 +.L1472: + ldr r4, .L1477+8 + ldrb r2, [r5, #40] @ zero_extendqisi2 + ldrb r3, [r4, #-2538] @ zero_extendqisi2 cmp r2, r3 - bls .L1501 - ldr r1, .L1504 - movw r2, #1157 - ldr r0, .L1504+4 + bls .L1474 + ldr r1, .L1477 + movw r2, #1158 + ldr r0, .L1477+4 bl printk bl dump_stack -.L1501: - ldr r5, .L1504+12 - mov r1, r4 - ldr r0, .L1504+16 +.L1474: + ldr r0, .L1477+12 + mov r1, r5 bl buf_add_tail - ldrb r3, [r5, #-2529] @ zero_extendqisi2 + ldrb r3, [r4, #-2527] @ zero_extendqisi2 add r3, r3, #1 - strb r3, [r5, #-2529] + strb r3, [r4, #-2527] ldmfd sp!, {r3, r4, r5, pc} -.L1505: +.L1478: .align 2 -.L1504: - .word .LANCHOR1+1784 +.L1477: + .word .LANCHOR1+1652 .word .LC0 - .word .LANCHOR0 .word .LANCHOR3 - .word .LANCHOR3-2530 + .word .LANCHOR3-2528 .fnend .size zftl_add_read_buf, .-zftl_add_read_buf .align 2 @@ -8858,17 +8680,17 @@ sblk_init: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1507 + ldr r3, .L1480 mvn r2, #0 mov r0, #0 - strb r2, [r3, #2775] - strb r2, [r3, #2778] - strb r2, [r3, #2776] + strb r2, [r3, #2774] strb r2, [r3, #2777] + strb r2, [r3, #2775] + strb r2, [r3, #2776] bx lr -.L1508: +.L1481: .align 2 -.L1507: +.L1480: .word .LANCHOR0 .fnend .size sblk_init, .-sblk_init @@ -8881,36 +8703,36 @@ dump_sblk_queue: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} - ldr r4, .L1519 - ldr r0, .L1519+4 - ldrb r1, [r4, #2775] @ zero_extendqisi2 + ldr r4, .L1492 + ldr r0, .L1492+4 + ldrb r1, [r4, #2774] @ zero_extendqisi2 bl printk - ldrb r4, [r4, #2775] @ zero_extendqisi2 + ldrb r4, [r4, #2774] @ zero_extendqisi2 cmp r4, #255 ldmeqfd sp!, {r4, r5, r6, pc} - ldr r3, .L1519+8 + ldr r3, .L1492+8 mov r2, #48 mov r6, r2 mla r4, r2, r4, r3 mov r5, r3 -.L1511: +.L1484: ldrb r1, [r4, #1] @ zero_extendqisi2 ldrb r2, [r4, #42] @ zero_extendqisi2 ldr r3, [r4, #24] - ldr r0, .L1519+12 + ldr r0, .L1492+12 bl printk ldrb r4, [r4] @ zero_extendqisi2 cmp r4, #255 ldmeqfd sp!, {r4, r5, r6, pc} mla r4, r6, r4, r5 - b .L1511 -.L1520: + b .L1484 +.L1493: .align 2 -.L1519: +.L1492: .word .LANCHOR0 - .word .LC123 + .word .LC120 .word .LANCHOR0+1236 - .word .LC124 + .word .LC121 .fnend .size dump_sblk_queue, .-dump_sblk_queue .align 2 @@ -8922,13 +8744,13 @@ queue_lun_state: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - ldr lr, .L1537 - ldrb ip, [lr, #2775] @ zero_extendqisi2 + ldr lr, .L1510 + ldrb ip, [lr, #2774] @ zero_extendqisi2 cmp ip, #255 - beq .L1529 - ldr r4, .L1537+4 + beq .L1502 + ldr r4, .L1510+4 mov r2, #1 - ldrb r3, [lr, #1189] @ zero_extendqisi2 + ldrb r3, [lr, #1153] @ zero_extendqisi2 mov r9, #48 sub r5, r4, #3120 rsb r7, r3, #24 @@ -8946,52 +8768,52 @@ queue_lun_state: and r10, r3, r0, asr r7 uxth r2, r2 and r5, r5, r2 -.L1528: +.L1501: mla r0, r9, ip, lr ldr r6, [r0, #1260] and fp, r3, r6, lsr r7 cmp fp, r10 - bne .L1523 + bne .L1496 and r6, r4, r6, lsr r8 ldrb r0, [r0, #1278] @ zero_extendqisi2 and r6, r6, r2 cmp r6, r5 - bne .L1524 + bne .L1497 cmp r1, #1 ldmnefd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} sub r6, r0, #7 tst r6, #253 - beq .L1523 + beq .L1496 ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1524: +.L1497: cmp r1, #3 ldrls pc, [pc, r1, asl #2] - b .L1523 -.L1525: - .word .L1522 - .word .L1526 - .word .L1527 - .word .L1522 -.L1526: + b .L1496 +.L1498: + .word .L1495 + .word .L1499 + .word .L1500 + .word .L1495 +.L1499: sub r6, r0, #7 tst r6, #253 - beq .L1523 + beq .L1496 ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1527: +.L1500: cmp r0, #11 ldmnefd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1523: +.L1496: mla ip, r9, ip, lr ldrb ip, [ip, #1236] @ zero_extendqisi2 cmp ip, #255 - bne .L1528 -.L1529: + bne .L1501 +.L1502: mov r0, #0 -.L1522: +.L1495: ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1538: +.L1511: .align 2 -.L1537: +.L1510: .word .LANCHOR0 .word .LANCHOR3 .fnend @@ -9003,101 +8825,101 @@ queue_remove_completed_req: .fnstart @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1566 + ldr r3, .L1539 mov ip, #0 stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 mov r0, #48 - ldrb r1, [r3, #2777] @ zero_extendqisi2 + ldrb r1, [r3, #2776] @ zero_extendqisi2 mov r8, r3 - ldrb r2, [r3, #2775] @ zero_extendqisi2 + ldrb r2, [r3, #2774] @ zero_extendqisi2 mvn r9, #0 - ldrb r6, [r3, #2776] @ zero_extendqisi2 + ldrb r6, [r3, #2775] @ zero_extendqisi2 mov r4, r3 - ldrb r7, [r3, #2778] @ zero_extendqisi2 + ldrb r7, [r3, #2777] @ zero_extendqisi2 mov r5, r0 - ldr r10, .L1566+4 + ldr r10, .L1539+4 str r1, [sp, #4] -.L1540: +.L1513: cmp r2, #255 - beq .L1541 + beq .L1514 mla fp, r0, r2, r3 mov r1, r2 ldrb lr, [fp, #1278] @ zero_extendqisi2 sub lr, lr, #12 cmp lr, #1 - bls .L1542 + bls .L1515 cmp ip, #0 - ldrne r3, .L1566 - beq .L1539 - b .L1564 -.L1542: + ldrne r3, .L1539 + beq .L1512 + b .L1537 +.L1515: mul ip, r0, r1 ldrb r2, [fp, #1236] @ zero_extendqisi2 add lr, r8, ip ldrb fp, [lr, #1279] @ zero_extendqisi2 strb r9, [lr, #1236] cmp fp, #1 - bne .L1545 + bne .L1518 add ip, r10, ip ldrh ip, [ip, #34] cmp ip, #0 moveq ip, r7 - ldreq lr, .L1566+8 + ldreq lr, .L1539+8 ldrne ip, [sp, #4] - ldrne lr, .L1566+12 - b .L1546 -.L1545: + ldrne lr, .L1539+12 + b .L1519 +.L1518: cmp fp, #0 - beq .L1565 -.L1547: + beq .L1538 +.L1520: mov ip, #1 - b .L1540 -.L1565: + b .L1513 +.L1538: ldr ip, [lr, #1256] cmn ip, #1 movne ip, r6 - ldrne lr, .L1566+16 - beq .L1547 -.L1546: + ldrne lr, .L1539+16 + beq .L1520 +.L1519: cmp ip, #255 - bne .L1551 - strb r2, [r3, #2775] + bne .L1524 + strb r2, [r3, #2774] mov r2, #48 mla r1, r2, r1, r3 ldrb r3, [r1, #1237] @ zero_extendqisi2 strb r3, [lr] - b .L1539 -.L1551: + b .L1512 +.L1524: mov lr, ip mla ip, r0, ip, r3 ldrb ip, [ip, #1236] @ zero_extendqisi2 cmp ip, #255 - bne .L1551 + bne .L1524 mla r1, r5, r1, r4 mla lr, r5, lr, r4 ldrb r1, [r1, #1237] @ zero_extendqisi2 strb r1, [lr, #1236] - b .L1547 -.L1541: + b .L1520 +.L1514: cmp ip, #0 - beq .L1539 + beq .L1512 mvn r2, #0 -.L1564: - strb r2, [r3, #2775] -.L1539: +.L1537: + strb r2, [r3, #2774] +.L1512: add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1567: +.L1540: .align 2 -.L1566: +.L1539: .word .LANCHOR0 .word .LANCHOR0+1236 - .word .LANCHOR0+2778 .word .LANCHOR0+2777 .word .LANCHOR0+2776 + .word .LANCHOR0+2775 .fnend .size queue_remove_completed_req, .-queue_remove_completed_req .align 2 @@ -9107,76 +8929,76 @@ pm_select_ram_region: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L1583 + ldr r2, .L1556 mov r3, #0 - movw r1, #65535 -.L1570: - mov ip, r3, asl #3 + movw ip, #65535 +.L1543: + mov r1, r3, asl #3 uxth r0, r3 - ldrh ip, [ip, r2] - cmp ip, r1 - ldr ip, .L1583 + ldrh r1, [r1, r2] + cmp r1, ip + ldr r1, .L1556 bxeq lr add r3, r3, #1 cmp r3, #32 - bne .L1570 + bne .L1543 mov r2, #0 mov r0, r3 - mov r1, #32768 + mov ip, #32768 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} -.L1572: - add r3, ip, r2, asl #3 +.L1545: + add r3, r1, r2, asl #3 uxth lr, r2 ldrh r3, [r3, #2] tst r3, #32768 - bne .L1571 - cmp r3, r1 - movcc r1, r3 + bne .L1544 + cmp r3, ip + movcc ip, r3 movcc r0, lr -.L1571: +.L1544: add r2, r2, #1 cmp r2, #32 - bne .L1572 + bne .L1545 cmp r0, #32 mov r4, r0 ldmnefd sp!, {r4, r5, r6, pc} - ldr r2, .L1583+4 + ldr r3, .L1556+4 + mvn r2, #0 + ldr r5, .L1556 + ldrb lr, [r3, #-2268] @ zero_extendqisi2 mov r3, #0 - mvn r1, #0 - sub r2, r2, #2528 - ldrb r5, [r2, #256] @ zero_extendqisi2 -.L1574: - mov lr, r3, asl #3 +.L1547: + mov ip, r3, asl #3 uxth r6, r3 - add r0, ip, lr + add r0, r1, ip ldrh r0, [r0, #2] - cmp r0, r1 - bcs .L1573 - ldrh lr, [lr, r2] - cmp lr, r5 - movne r1, r0 + cmp r0, r2 + bcs .L1546 + ldrh ip, [ip, r5] + cmp ip, lr + movne r2, r0 movne r4, r6 -.L1573: +.L1546: add r3, r3, #1 cmp r3, #32 - bne .L1574 + bne .L1547 cmp r4, #32 - bne .L1575 - ldr r1, .L1583+8 + bne .L1548 + ldr r1, .L1556+8 movw r2, #377 - ldr r0, .L1583+12 + ldr r0, .L1556+12 bl printk bl dump_stack -.L1575: +.L1548: mov r0, r4 ldmfd sp!, {r4, r5, r6, pc} -.L1584: +.L1557: .align 2 -.L1583: - .word .LANCHOR3-2528 +.L1556: + .word .LANCHOR3-2524 .word .LANCHOR3 - .word .LANCHOR1+1804 + .word .LANCHOR1+1672 .word .LC0 .fnend .size pm_select_ram_region, .-pm_select_ram_region @@ -9201,36 +9023,36 @@ flash_lsb_page_tbl_build: stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r6, r0 - ldr r4, .L1630 + ldr r4, .L1603 mov r0, #1024 - ldr r3, [r4, #1096] + ldr r3, [r4, #1104] ldrb r1, [r3, #12] @ zero_extendqisi2 bl __aeabi_idiv cmp r6, #0 uxth r5, r0 - bne .L1587 + bne .L1560 add r4, r4, #4 -.L1588: +.L1561: mov r3, r6, asl #1 strh r6, [r3, r4] @ movhi add r6, r6, #1 cmp r6, #512 - bne .L1588 -.L1592: + bne .L1561 +.L1565: mov r1, #255 - ldr r0, .L1630+4 + ldr r0, .L1603+4 mov r2, #2048 bl ftl_memset mov r3, #0 - ldr r1, .L1630+8 - ldr r0, .L1630+4 - b .L1589 -.L1587: + ldr r1, .L1603+8 + ldr r0, .L1603+4 + b .L1562 +.L1560: cmp r6, #1 - bne .L1590 + bne .L1563 add r4, r4, #4 mov r3, #0 -.L1591: +.L1564: uxth r2, r3 mov ip, r3, asl #1 cmp r2, #3 @@ -9245,14 +9067,14 @@ flash_lsb_page_tbl_build: movne r2, r1 cmp r3, #512 strh r2, [ip, r4] @ movhi - bne .L1591 - b .L1592 -.L1590: + bne .L1564 + b .L1565 +.L1563: cmp r6, #2 - bne .L1593 + bne .L1566 add r4, r4, #4 mov r3, #0 -.L1594: +.L1567: uxth r2, r3 mov r1, r3, asl #1 cmp r2, #1 @@ -9261,14 +9083,14 @@ flash_lsb_page_tbl_build: subhi r2, r0, #1 cmp r3, #512 strh r2, [r1, r4] @ movhi - bne .L1594 - b .L1592 -.L1593: + bne .L1567 + b .L1565 +.L1566: cmp r6, #3 - bne .L1595 + bne .L1568 add r4, r4, #4 mov r3, #0 -.L1596: +.L1569: uxth r2, r3 mov ip, r3, asl #1 cmp r2, #5 @@ -9283,12 +9105,12 @@ flash_lsb_page_tbl_build: movne r2, r1 cmp r3, #512 strh r2, [ip, r4] @ movhi - bne .L1596 - b .L1592 -.L1595: + bne .L1569 + b .L1565 +.L1568: cmp r6, #4 mov r3, #0 - bne .L1597 + bne .L1570 strh r3, [r4, #4] @ movhi mov r3, #1 strh r6, [r4, #12] @ movhi @@ -9303,7 +9125,7 @@ flash_lsb_page_tbl_build: strh r3, [r4, #16] @ movhi mov r3, #8 strh r3, [r4, #18]! @ movhi -.L1598: +.L1571: tst r3, #1 movne r2, #7 moveq r2, #6 @@ -9312,39 +9134,39 @@ flash_lsb_page_tbl_build: strh r2, [r4, #2]! @ movhi uxth r3, r3 cmp r3, #512 - bne .L1598 - b .L1592 -.L1597: + bne .L1571 + b .L1565 +.L1570: cmp r6, #5 - bne .L1599 + bne .L1572 add r4, r4, #4 -.L1600: +.L1573: mov r2, r3, asl #1 strh r3, [r2, r4] @ movhi add r3, r3, #1 cmp r3, #16 - bne .L1600 - ldr r2, .L1630+12 -.L1601: + bne .L1573 + ldr r2, .L1603+12 +.L1574: strh r3, [r2, #2]! @ movhi add r3, r3, #2 uxth r3, r3 cmp r3, #1008 - bne .L1601 - b .L1592 -.L1599: + bne .L1574 + b .L1565 +.L1572: cmp r6, #8 - bne .L1602 + bne .L1575 add r4, r4, #4 -.L1603: +.L1576: strh r3, [r3, r4] @ movhi add r3, r3, #2 cmp r3, #1024 - bne .L1603 - b .L1592 -.L1602: + bne .L1576 + b .L1565 +.L1575: cmp r6, #9 - bne .L1604 + bne .L1577 strh r3, [r4, #4] @ movhi movw r2, #1021 mov r3, #1 @@ -9352,45 +9174,45 @@ flash_lsb_page_tbl_build: mov r3, #2 strh r3, [r4, #8]! @ movhi mov r3, #3 -.L1605: +.L1578: strh r3, [r4, #2]! @ movhi add r3, r3, #2 uxth r3, r3 cmp r3, r2 - bne .L1605 - b .L1592 -.L1604: + bne .L1578 + b .L1565 +.L1577: cmp r6, #10 - bne .L1606 + bne .L1579 add r4, r4, #4 -.L1607: +.L1580: mov r2, r3, asl #1 strh r3, [r2, r4] @ movhi add r3, r3, #1 cmp r3, #63 - bne .L1607 - ldr r2, .L1630+16 + bne .L1580 + ldr r2, .L1603+16 movw r1, #961 -.L1608: +.L1581: strh r3, [r2, #2]! @ movhi add r3, r3, #2 uxth r3, r3 cmp r3, r1 - bne .L1608 - b .L1592 -.L1606: + bne .L1581 + b .L1565 +.L1579: cmp r6, #11 - bne .L1609 - ldr r2, .L1630+8 + bne .L1582 + ldr r2, .L1603+8 mov r3, #0 -.L1610: +.L1583: mov r1, r3, asl #1 strh r3, [r1, r2] @ movhi add r3, r3, #1 cmp r3, #8 - bne .L1610 - ldr r1, .L1630+20 -.L1611: + bne .L1583 + ldr r1, .L1603+20 +.L1584: tst r3, #1 movne r2, #7 moveq r2, #6 @@ -9399,37 +9221,37 @@ flash_lsb_page_tbl_build: strh r2, [r1, #2]! @ movhi uxth r3, r3 cmp r3, #512 - bne .L1611 - b .L1592 -.L1609: + bne .L1584 + b .L1565 +.L1582: cmp r6, #13 - bne .L1592 - ldr r2, .L1630+24 + bne .L1565 + ldr r2, .L1603+24 mov r3, #0 -.L1612: +.L1585: strh r3, [r2, #2]! @ movhi add r3, r3, #3 uxth r3, r3 cmp r3, #1536 - bne .L1612 - b .L1592 -.L1589: + bne .L1585 + b .L1565 +.L1562: uxth r2, r3 cmp r2, r5 - bcs .L1629 + bcs .L1602 mov r2, r3, asl #1 add r3, r3, #1 ldrh r2, [r2, r1] mov ip, r2, asl #1 strh r2, [r0, ip] @ movhi - b .L1589 -.L1629: + b .L1562 +.L1602: ldmfd sp!, {r4, r5, r6, pc} -.L1631: +.L1604: .align 2 -.L1630: +.L1603: .word .LANCHOR0 - .word .LANCHOR3-2268 + .word .LANCHOR3-2264 .word .LANCHOR0+4 .word .LANCHOR0+34 .word .LANCHOR0+128 @@ -9447,88 +9269,88 @@ flash_die_info_init: stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 - ldr r5, .L1663 + ldr r5, .L1636 ldr r3, [r5] tst r3, #4096 - beq .L1633 - ldr r0, .L1663+4 - ldr r1, .L1663+8 + beq .L1606 + ldr r0, .L1636+4 + ldr r1, .L1636+8 bl printk -.L1633: +.L1606: ldrh r3, [r5, #30] mov r7, #0 - ldr r4, .L1663+12 + ldr r4, .L1636+12 ldrb r1, [r5, #16] @ zero_extendqisi2 ldrh r0, [r5, #14] - add r10, r4, #1200 strh r3, [r4, #2] @ movhi - strb r7, [r4, #1101] + strb r7, [r4, #1109] bl __aeabi_idiv - ldr r6, .L1663+16 + ldr r6, .L1636+16 mov r1, r7 mov r2, #8 - ldr r9, .L1663+20 - strh r0, [r6, #-220] @ movhi - ldr r0, .L1663+24 + ldr r9, .L1636+20 + add r10, r9, #8 + strh r0, [r6, #-216] @ movhi + ldr r0, .L1636+24 bl ftl_memset - sub r0, r6, #216 + sub r0, r6, #212 mov r1, r7 mov r2, #32 bl ftl_memset -.L1638: +.L1611: ldrb r2, [r5, #4] @ zero_extendqisi2 add r1, r10, r7, asl #3 - ldr r8, .L1663+28 + ldr r8, .L1636+28 mov r3, #2 - ldr r0, .L1663+32 + ldr r0, .L1636+32 strb r3, [r7, r9] mov r3, #0 -.L1634: +.L1607: cmp r3, r2 - bcs .L1661 + bcs .L1634 add ip, r0, r3 ldrb lr, [ip, #1] @ zero_extendqisi2 ldrb ip, [r1, r3] @ zero_extendqisi2 cmp lr, ip - bne .L1635 + bne .L1608 add r3, r3, #1 - b .L1634 -.L1661: - ldrb r3, [r4, #1101] @ zero_extendqisi2 + b .L1607 +.L1634: + ldrb r3, [r4, #1109] @ zero_extendqisi2 mov r1, #0 uxtb r0, r7 add r2, r6, r3, asl #2 - str r1, [r2, #-216] + str r1, [r2, #-212] add r2, r3, #1 add r3, r4, r3 - strb r2, [r4, #1101] - strb r0, [r3, #1180] + strb r2, [r4, #1109] + strb r0, [r3, #1144] bl zftl_flash_enter_slc_mode -.L1635: +.L1608: add r7, r7, #1 cmp r7, #4 - bne .L1638 + bne .L1611 ldrb r2, [r5, #12] @ zero_extendqisi2 - ldr r3, .L1663 + ldr r3, .L1636 cmp r2, #2 - beq .L1639 -.L1646: + beq .L1612 +.L1619: ldrb r3, [r5, #17] @ zero_extendqisi2 - ldrb r2, [r4, #1101] @ zero_extendqisi2 + ldrb r2, [r4, #1109] @ zero_extendqisi2 smulbb r2, r2, r3 ldrh r3, [r5, #18] smulbb r3, r2, r3 - strh r3, [r6, #-184] @ movhi + strh r3, [r6, #-180] @ movhi add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1639: +.L1612: ldrh ip, [r3, #18] mov lr, #0 ldrh r2, [r4, #2] add r3, r3, #4 and ip, ip, #65280 - ldrb r1, [r4, #1101] @ zero_extendqisi2 + ldrb r1, [r4, #1109] @ zero_extendqisi2 ldrb r7, [r3] @ zero_extendqisi2 mul r2, r2, ip ldrb ip, [r3, #13] @ zero_extendqisi2 @@ -9538,49 +9360,49 @@ flash_die_info_init: mov r2, ip, asl #1 str r2, [sp, #4] mov r2, lr -.L1644: +.L1617: add r9, r8, r2, asl #3 mov r0, #0 -.L1640: +.L1613: cmp r0, r7 - bcs .L1662 + bcs .L1635 add r10, r3, r0 ldrb fp, [r10, #1] @ zero_extendqisi2 ldrb r10, [r9, r0] @ zero_extendqisi2 cmp fp, r10 - bne .L1641 + bne .L1614 add r0, r0, #1 - b .L1640 -.L1662: + b .L1613 +.L1635: ldmia sp, {r9, lr} mov r0, r1 add r1, r6, r1, asl #2 cmp r9, #0 moveq lr, ip - str lr, [r1, #-216] + str lr, [r1, #-212] add r1, r0, #1 add r0, r4, r0 mov lr, #1 uxtb r1, r1 - strb r2, [r0, #1180] -.L1641: + strb r2, [r0, #1144] +.L1614: add r2, r2, #1 cmp r2, #4 - bne .L1644 + bne .L1617 cmp lr, #0 - strneb r1, [r4, #1101] - b .L1646 -.L1664: + strneb r1, [r4, #1109] + b .L1619 +.L1637: .align 2 -.L1663: +.L1636: .word .LANCHOR2 .word .LC4 - .word .LANCHOR1+1828 + .word .LANCHOR1+1696 .word .LANCHOR0 .word .LANCHOR3 - .word .LANCHOR0+1192 - .word .LANCHOR0+1180 - .word .LANCHOR0+1200 + .word .LANCHOR0+1156 + .word .LANCHOR0+1144 + .word .LANCHOR0+1164 .word .LANCHOR2+4 .fnend .size flash_die_info_init, .-flash_die_info_init @@ -9594,7 +9416,7 @@ lpa_hash_init: stmfd sp!, {r4, lr} .save {r4, lr} mov r1, #255 - ldr r4, .L1667 + ldr r4, .L1640 mov r2, #512 sub r0, r4, #3056 sub r0, r0, #4 @@ -9608,9 +9430,9 @@ lpa_hash_init: mov r2, r2, asl #2 ldmfd sp!, {r4, lr} b ftl_memset -.L1668: +.L1641: .align 2 -.L1667: +.L1640: .word .LANCHOR3 .fnend .size lpa_hash_init, .-lpa_hash_init @@ -9623,20 +9445,20 @@ lpa_rebuild_hash: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} - ldr r3, .L1682 + ldr r3, .L1655 ldr r3, [r3] tst r3, #4096 - beq .L1670 - ldr r0, .L1682+4 + beq .L1643 + ldr r0, .L1655+4 mov r2, #239 - ldr r1, .L1682+8 + ldr r1, .L1655+8 mov r3, #0 bl printk -.L1670: - ldr r4, .L1682+12 +.L1643: + ldr r4, .L1655+12 mov r1, #255 mov r2, #512 - ldr r0, .L1682+16 + ldr r0, .L1655+16 sub r5, r4, #3088 bl ftl_memset ldrb r3, [r4, #-3123] @ zero_extendqisi2 @@ -9650,17 +9472,17 @@ lpa_rebuild_hash: add r5, r5, #28 mov r0, #0 mov ip, r4 -.L1671: +.L1644: ldrh r1, [lr] uxth r2, r0 ldrb r3, [r4, #-3123] @ zero_extendqisi2 mul r3, r3, r1 cmp r2, r3, asl #1 - bge .L1681 + bge .L1654 ldr r3, [ip, #-2548] ldr r3, [r3, r2, asl #2] cmn r3, #1 - beq .L1672 + beq .L1645 uxtb r3, r3 mov r3, r3, asl #1 ldrh r1, [r5, r3] @@ -9668,17 +9490,17 @@ lpa_rebuild_hash: mov r2, r2, asl #1 ldr r3, [ip, #-2544] strh r1, [r3, r2] @ movhi -.L1672: +.L1645: add r0, r0, #1 - b .L1671 -.L1681: + b .L1644 +.L1654: ldmfd sp!, {r3, r4, r5, pc} -.L1683: +.L1656: .align 2 -.L1682: +.L1655: .word .LANCHOR2 - .word .LC125 - .word .LANCHOR1+1848 + .word .LC122 + .word .LANCHOR1+1716 .word .LANCHOR3 .word .LANCHOR3-3060 .fnend @@ -9696,15 +9518,15 @@ zftl_read_flash_info: mov r2, #11 mov r4, r0 bl ftl_memset - ldr r2, .L1689 - ldr r3, .L1689+4 + ldr r2, .L1662 + ldr r3, .L1662+4 mov ip, #1 ldrh r1, [r2, #2] ldrb r0, [r3, #13] @ zero_extendqisi2 smulbb r1, r0, r1 - ldr r0, .L1689+8 + ldr r0, .L1662+8 strh r1, [r4, #4] @ unaligned - ldrb r1, [r2, #1172] @ zero_extendqisi2 + ldrb r1, [r2, #1197] @ zero_extendqisi2 strb r1, [r4, #7] ldr r1, [r2, #1032] str r1, [r4] @ unaligned @@ -9713,121 +9535,31 @@ zftl_read_flash_info: mov r1, #32 ldrb r3, [r3, #11] @ zero_extendqisi2 strb r1, [r4, #8] - ldrb r1, [r2, #1101] @ zero_extendqisi2 + ldrb r1, [r2, #1109] @ zero_extendqisi2 strb r3, [r4, #9] mov r3, #0 strb r3, [r4, #10] -.L1685: +.L1658: uxtb r2, r3 cmp r2, r1 - bcs .L1688 + bcs .L1661 ldrb lr, [r3, r0] @ zero_extendqisi2 add r3, r3, #1 ldrb r2, [r4, #10] @ zero_extendqisi2 orr r2, r2, ip, asl lr strb r2, [r4, #10] - b .L1685 -.L1688: + b .L1658 +.L1661: ldmfd sp!, {r4, pc} -.L1690: +.L1663: .align 2 -.L1689: +.L1662: .word .LANCHOR0 .word .LANCHOR2 - .word .LANCHOR0+1180 + .word .LANCHOR0+1144 .fnend .size zftl_read_flash_info, .-zftl_read_flash_info .align 2 - .global gc_init - .type gc_init, %function -gc_init: - .fnstart - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, lr} - .save {r3, r4, r5, r6, r7, r8, r9, lr} - movw r9, #2828 - ldr r6, .L1693 - mov r5, #0 - ldr r4, .L1693+4 - mov r1, r5 - add r7, r6, r9 - movw r2, #2204 - sub r8, r4, #3088 - mov r0, r7 - strb r5, [r4, #-3115] - strb r5, [r4, #-182] - str r5, [r4, #-180] - strh r5, [r8] @ movhi - bl ftl_memset - ldrh r2, [r8, #-8] - mvn r3, #0 - strh r3, [r6, r9] @ movhi - movw ip, #2812 - str r5, [r6, #2836] - mov r3, r2, lsr #1 - strh r3, [r7, #34] @ movhi - ldrb r3, [r4, #-3123] @ zero_extendqisi2 - mov r0, r2, lsr #2 - strh r0, [r7, #32] @ movhi - sub r7, r4, #3104 - smulbb r1, r3, r2 - strh r5, [r7, #-8] @ movhi - strh r5, [r7, #-6] @ movhi - strh r5, [r7, #-4] @ movhi - uxth r1, r1 - sub lr, r1, #32 - strh lr, [r6, ip] @ movhi - movw ip, #2810 - strh r1, [r6, ip] @ movhi - add r1, r6, #2816 - strh r2, [r1] @ movhi - mov r2, #4 - strh r2, [r4, #-176] @ movhi - movw r2, #2814 - strh r0, [r6, r2] @ movhi - sub r4, r4, #3072 - ldrh r0, [r7, #-10] - mul r0, r3, r0 - mov r0, r0, asl #2 - bl ftl_malloc - ldrb r3, [r4, #-51] @ zero_extendqisi2 - str r0, [r4, #2900] - ldrh r0, [r7, #-10] - mul r0, r3, r0 - mov r0, r0, asl #2 - bl ftl_malloc - ldrh r3, [r7, #-10] - str r0, [r4, #2904] - ldrb r0, [r4, #-51] @ zero_extendqisi2 - mul r0, r0, r3 - bl ftl_malloc - ldrb r3, [r4, #-51] @ zero_extendqisi2 - str r0, [r4, #-48] - ldrh r0, [r7, #-10] - mul r0, r3, r0 - mov r0, r0, asl #2 - bl ftl_malloc - ldrb r3, [r4, #-51] @ zero_extendqisi2 - str r0, [r4, #-56] - ldrh r0, [r7, #-10] - mul r0, r3, r0 - mov r0, r0, asl #2 - bl ftl_malloc - movw r2, #2808 - str r0, [r4, #2908] - ldrh r3, [r4, #-14] - mov r3, r3, lsr #2 - strh r3, [r6, r2] @ movhi - ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, pc} -.L1694: - .align 2 -.L1693: - .word .LANCHOR0 - .word .LANCHOR3 - .fnend - .size gc_init, .-gc_init - .align 2 .global gc_static_wearleveling .type gc_static_wearleveling, %function gc_static_wearleveling: @@ -9838,33 +9570,33 @@ gc_static_wearleveling: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #44 sub sp, sp, #44 - ldr r4, .L1814 + ldr r4, .L1783 ldr r3, [r4, #2804] ldr r3, [r3, #32] cmp r3, #10240 - bls .L1696 + bls .L1665 bl ftl_tmp_into_update -.L1696: - ldr r3, [r4, #1092] +.L1665: + ldr r3, [r4, #1096] ldr r2, [r3, #568] ldr r0, [r3, #12] add r1, r2, #35840 add r1, r1, #160 cmp r0, r1 - bcs .L1697 - ldr r1, .L1814 + bcs .L1666 + ldr r1, .L1783 ldr ip, [r1, #2804] ldr r1, [r3, #572] ldr ip, [ip, #36] add r1, r1, #256 cmp ip, r1 movcc r0, #0 - bcc .L1806 -.L1697: + bcc .L1775 +.L1666: add r2, r2, #860160 add r2, r2, #3840 cmp r0, r2 - bhi .L1699 + bhi .L1668 ldr r1, [r4, #2804] ldr r2, [r3, #572] ldr r1, [r1, #36] @@ -9872,11 +9604,11 @@ gc_static_wearleveling: cmp r1, r2 movls r7, #0 movls r9, r7 - bls .L1700 -.L1699: + bls .L1669 +.L1668: ldr r2, [r4, #2804] mov r8, #0 - ldr ip, .L1814 + ldr ip, .L1783 movw r5, #65535 mov fp, r8 mov r9, r8 @@ -9890,26 +9622,26 @@ gc_static_wearleveling: str r8, [sp, #28] str r8, [sp, #24] str r8, [sp, #20] -.L1701: - ldr r2, .L1814+4 - ldr r3, .L1814 +.L1670: + ldr r2, .L1783+4 + ldr r3, .L1783 ldrh r2, [r2] cmp r2, r7 - bls .L1811 - ldr r0, [ip, #1080] + bls .L1780 + ldr r0, [ip, #1084] mov r1, r7, asl #2 add lr, r0, r1 ldrb r3, [lr, #2] @ zero_extendqisi2 and r2, r3, #224 cmp r2, #224 - beq .L1702 + beq .L1671 tst r3, #8 ldrneh r3, [r0, r1] ldrne r4, [r0, r1] ubfxne r3, r3, #0, #11 ubfxne r4, r4, #11, #8 - bne .L1704 -.L1703: + bne .L1673 +.L1672: tst r3, #24 ldreqh r3, [r0, r1] movweq r4, #65535 @@ -9917,27 +9649,27 @@ gc_static_wearleveling: movwne r3, #65535 ubfxeq r3, r3, #0, #11 ubfxne r4, r4, #11, #8 - bne .L1706 -.L1704: + bne .L1675 +.L1673: ldr r2, [sp, #32] add r9, r9, #1 cmp r5, r3 add r2, r2, r3 uxth r9, r9 str r2, [sp, #32] - ldrhi r2, [ip, #1092] + ldrhi r2, [ip, #1096] movhi r5, r3 addhi r2, r2, #584 strhih r7, [r2, #2] @ movhi -.L1748: +.L1717: ldr r2, [sp, #20] cmp r2, r3 movw r2, #65535 strcc r3, [sp, #20] movcc r8, r7 cmp r4, r2 - beq .L1708 -.L1706: + beq .L1677 +.L1675: ldr r2, [sp, #24] cmp r6, r4 add r2, r2, #1 @@ -9947,20 +9679,20 @@ gc_static_wearleveling: ldr r2, [sp, #28] add r2, r2, r4 str r2, [sp, #28] - ldrhi r2, [ip, #1092] + ldrhi r2, [ip, #1096] addhi r2, r2, #584 strhih r7, [r2] @ movhi cmp r10, r4 movcc fp, r7 movcc r10, r4 -.L1708: +.L1677: cmp r4, #9 cmphi r3, #9 - bhi .L1702 - ldr r3, .L1814+8 + bhi .L1671 + ldr r3, .L1783+8 ldr r3, [r3] tst r3, #256 - beq .L1702 + beq .L1671 ldrh r2, [r0, r1] ldr r3, [r0, r1] ldrb r1, [lr, #2] @ zero_extendqisi2 @@ -9975,19 +9707,19 @@ gc_static_wearleveling: ldrb r1, [lr, #3] @ zero_extendqisi2 str r1, [sp, #8] mov r1, r7, asl #1 - ldr r0, [ip, #1088] + ldr r0, [ip, #1092] ldrh r1, [r0, r1] - ldr r0, .L1814+12 + ldr r0, .L1783+12 str r1, [sp, #12] mov r1, r7 bl printk ldr ip, [sp, #36] -.L1702: +.L1671: add r7, r7, #1 uxth r7, r7 - b .L1701 -.L1811: - ldr r0, [r3, #1092] + b .L1670 +.L1780: + ldr r0, [r3, #1096] mov r2, #0 mov r1, #255 str r3, [sp, #36] @@ -9997,15 +9729,15 @@ gc_static_wearleveling: bl ftl_memset movw r2, #586 ldr r3, [sp, #36] - ldr r1, [r3, #1092] - ldr r7, [r3, #1080] + ldr r1, [r3, #1096] + ldr r7, [r3, #1084] ldrh r1, [r1, r2] - ldr r2, .L1814+8 + ldr r2, .L1783+8 mov ip, r1, asl #2 ldr r2, [r2] add r4, r7, ip tst r2, #1024 - beq .L1711 + beq .L1680 ldrb r0, [r4, #2] @ zero_extendqisi2 ldrh r2, [r7, ip] ldr lr, [r7, r1, asl #2] @@ -10018,90 +9750,90 @@ gc_static_wearleveling: str r0, [sp, #4] ldrb r0, [r4, #3] @ zero_extendqisi2 str r0, [sp, #8] - ldr r0, [r3, #1088] + ldr r0, [r3, #1092] mov r3, r1, asl #1 ldrh r3, [r0, r3] - ldr r0, .L1814+16 + ldr r0, .L1783+16 str r3, [sp, #12] ubfx r3, lr, #11, #8 bl printk ldr ip, [sp, #36] -.L1711: +.L1680: ldrb r3, [r4, #2] @ zero_extendqisi2 - ldr r1, .L1814 + ldr r1, .L1783 and r3, r3, #224 cmp r3, #32 - bne .L1712 + bne .L1681 ldr r3, [r1, #2804] add r3, r3, #688 ldrh r3, [r3] cmp r3, #2 - ldrhi r3, .L1814+20 + ldrhi r3, .L1783+20 movhi r2, #1 - strhi r2, [r3, #-160] -.L1712: + strhi r2, [r3, #-176] +.L1681: ldrb r2, [r4, #2] @ zero_extendqisi2 tst r2, #8 - beq .L1713 + beq .L1682 ldr r3, [r1, #2804] - ldr r0, .L1814+20 - ldr r4, .L1814 + ldr r0, .L1783+20 + ldr r4, .L1783 ldrh r1, [r3, #96] - ldrh r0, [r0, #-156] + ldrh r0, [r0, #-172] ldrh r3, [r7, ip] ubfx r3, r3, #0, #11 add r3, r3, r0, lsr #2 cmp r1, r3 - ble .L1713 + ble .L1682 and r3, r2, #192 cmp r3, #64 - bne .L1714 - ldr r2, [r4, #1092] + bne .L1683 + ldr r2, [r4, #1096] movw r3, #586 mov r1, #0 ldrh r0, [r2, r3] mov r2, #1 bl gc_add_sblk - ldr r2, .L1814+24 + ldr r2, .L1783+24 movw r3, #2180 mov r1, #1 strh r1, [r2, r3] @ movhi - b .L1713 -.L1714: + b .L1682 +.L1683: tst r2, #224 - bne .L1713 - ldr r3, [r4, #1092] + bne .L1682 + ldr r3, [r4, #1096] movw r2, #590 movw r1, #65535 ldrh r0, [r3, r2] cmp r0, r1 - bne .L1713 + bne .L1682 movw r7, #586 str r2, [sp, #36] ldrh r0, [r3, r7] add r3, r3, #588 ldrh r3, [r3] cmp r3, r0 - beq .L1713 + beq .L1682 bl zftl_remove_free_node - ldr r3, [r4, #1092] + ldr r3, [r4, #1096] ldrh r1, [r3, r7] ldr r2, [sp, #36] strh r1, [r3, r2] @ movhi mvn r2, #0 strh r2, [r3, r7] @ movhi -.L1713: - ldr r1, .L1814 - ldr r2, .L1814+8 - ldr r3, [r1, #1092] +.L1682: + ldr r1, .L1783 + ldr r2, .L1783+8 + ldr r3, [r1, #1096] ldr r2, [r2] add r3, r3, #584 - ldr ip, [r1, #1080] + ldr ip, [r1, #1084] tst r2, #1024 ldrh r7, [r3] mov r3, r7, asl #2 add r4, ip, r3 - beq .L1715 + beq .L1684 ldrb r0, [r4, #2] @ zero_extendqisi2 ldrh r2, [ip, r3] ubfx r0, r0, #3, #2 @@ -10115,72 +9847,72 @@ gc_static_wearleveling: str r0, [sp, #4] ldrb r0, [r4, #3] @ zero_extendqisi2 str r0, [sp, #8] - ldr r0, [r1, #1088] + ldr r0, [r1, #1092] mov r1, r7, asl #1 ldrh r1, [r0, r1] - ldr r0, .L1814+28 + ldr r0, .L1783+28 str r1, [sp, #12] mov r1, r7 bl printk ldr ip, [sp, #36] -.L1715: +.L1684: ldrb r3, [r4, #2] @ zero_extendqisi2 - ldr r4, .L1814 + ldr r4, .L1783 tst r3, #8 - beq .L1716 + beq .L1685 ldr r2, [r4, #2804] - ldr r0, .L1814+20 + ldr r0, .L1783+20 ldrh r1, [r2, #98] - ldrh r0, [r0, #-154] + ldrh r0, [r0, #-170] ldr r2, [ip, r7, asl #2] ubfx r2, r2, #11, #8 add r2, r2, r0, lsr #2 cmp r1, r2 - ble .L1716 + ble .L1685 and r2, r3, #192 cmp r2, #64 - bne .L1717 - ldr r3, [r4, #1092] + bne .L1686 + ldr r3, [r4, #1096] mov r1, #0 mov r2, #1 add r3, r3, #584 ldrh r0, [r3] bl gc_add_sblk - ldr r2, .L1814+24 + ldr r2, .L1783+24 movw r3, #2180 mov r1, #1 strh r1, [r2, r3] @ movhi - b .L1716 -.L1717: + b .L1685 +.L1686: and r3, r3, #248 cmp r3, #16 - bne .L1716 - ldr r3, [r4, #1092] + bne .L1685 + ldr r3, [r4, #1096] add r2, r3, #588 ldrh r1, [r2] movw r2, #65535 cmp r1, r2 - bne .L1716 + bne .L1685 add r2, r3, #584 ldrh r0, [r2] movw r2, #590 ldrh r3, [r3, r2] cmp r3, r0 - beq .L1716 + beq .L1685 bl zftl_remove_free_node - ldr r3, [r4, #1092] + ldr r3, [r4, #1096] add r2, r3, #588 add r3, r3, #584 ldrh r1, [r3] strh r1, [r2] @ movhi mvn r2, #0 strh r2, [r3] @ movhi -.L1716: - ldr r3, .L1814+8 - ldr r0, [r4, #1080] +.L1685: + ldr r3, .L1783+8 + ldr r0, [r4, #1084] ldr r3, [r3] tst r3, #1024 - beq .L1718 + beq .L1687 mov r3, r8, asl #2 add r1, r0, r3 ldrh r2, [r0, r3] @@ -10195,21 +9927,21 @@ gc_static_wearleveling: str r0, [sp, #4] ldrb r1, [r1, #3] @ zero_extendqisi2 str r1, [sp, #8] - ldr r1, .L1814 - ldr r0, [r1, #1088] + ldr r1, .L1783 + ldr r0, [r1, #1092] mov r1, r8, asl #1 ldrh r1, [r0, r1] - ldr r0, .L1814+32 + ldr r0, .L1783+32 str r1, [sp, #12] mov r1, r8 bl printk -.L1718: - ldr r3, .L1814+8 - ldr ip, .L1814 +.L1687: + ldr r3, .L1783+8 + ldr ip, .L1783 ldr r3, [r3] - ldr r0, [ip, #1080] + ldr r0, [ip, #1084] tst r3, #1024 - beq .L1719 + beq .L1688 mov r3, fp, asl #2 add r1, r0, r3 ldrh r2, [r0, r3] @@ -10225,13 +9957,13 @@ gc_static_wearleveling: ldrb r1, [r1, #3] @ zero_extendqisi2 str r1, [sp, #8] mov r1, fp, asl #1 - ldr r0, [ip, #1088] + ldr r0, [ip, #1092] ldrh r1, [r0, r1] - ldr r0, .L1814+36 + ldr r0, .L1783+36 str r1, [sp, #12] mov r1, fp bl printk -.L1719: +.L1688: ldr r4, [r4, #2804] mov r1, r9 ldrh r3, [sp, #20] @@ -10247,66 +9979,66 @@ gc_static_wearleveling: ldr r0, [sp, #28] bl __aeabi_uidiv strh r0, [r4, #90] @ movhi - ldr r4, .L1814+8 + ldr r4, .L1783+8 ldr r3, [r4] tst r3, #1024 - beq .L1720 + beq .L1689 uxth r0, r0 mov r1, r9 str r0, [sp] uxth r3, r7 - ldr r0, .L1814+40 + ldr r0, .L1783+40 ldr r2, [sp, #24] bl printk -.L1720: +.L1689: ldr r3, [r4] - ldr r4, .L1814+20 + ldr r4, .L1783+20 tst r3, #1024 - beq .L1721 + beq .L1690 str r10, [sp] mov r1, r5 - ldrh r3, [r4, #-156] + ldrh r3, [r4, #-172] mov r2, r6 - ldr r0, .L1814+44 + ldr r0, .L1783+44 str r3, [sp, #4] - ldrh r3, [r4, #-154] + ldrh r3, [r4, #-170] str r3, [sp, #8] ldr r3, [sp, #20] bl printk -.L1721: +.L1690: rsb r3, r6, r10 str r3, [sp, #24] ldr r2, [sp, #24] - ldrh r3, [r4, #-154] + ldrh r3, [r4, #-170] cmp r2, r3 - bgt .L1722 - ldr r2, .L1814+20 + bgt .L1691 + ldr r2, .L1783+20 ldr r3, [sp, #20] - ldrh r2, [r2, #-156] + ldrh r2, [r2, #-172] rsb r3, r5, r3 cmp r3, r2 movle r7, #0 movle r9, r7 - ble .L1723 -.L1722: - ldr ip, .L1814 + ble .L1692 +.L1691: + ldr ip, .L1783 mov r7, #0 mov r9, r7 - ldr r3, [ip, #1092] + ldr r3, [ip, #1096] mov fp, ip ldr r4, [r3, #580] ldr r3, [ip, #2804] uxth r4, r4 ldrh r10, [r3, #134] -.L1724: - ldr r3, .L1814+4 +.L1693: + ldr r3, .L1783+4 ldrh r3, [r3] cmp r10, r3 - bcs .L1733 + bcs .L1702 add r4, r4, #1 uxth r4, r4 cmp r4, r3 - ldr r3, [fp, #1080] + ldr r3, [fp, #1084] movcs r4, #0 mov r8, r4, asl #2 add r2, r3, r8 @@ -10318,54 +10050,54 @@ gc_static_wearleveling: cmp r0, #224 orreq r1, r1, #1 cmp r1, #0 - bne .L1726 + bne .L1695 ubfx r2, r2, #3, #2 ands r1, r2, #1 - beq .L1727 + beq .L1696 cmp r0, #160 - b .L1809 -.L1727: + b .L1778 +.L1696: cmp r2, #2 -.L1809: - bne .L1729 - ldr r2, .L1814+20 +.L1778: + bne .L1698 + ldr r2, .L1783+20 ldr r0, [sp, #24] - ldrh r2, [r2, #-154] + ldrh r2, [r2, #-170] cmp r0, r2 - ble .L1730 + ble .L1699 ldr r2, [r3, r8] ubfx r2, r2, #11, #8 cmp r2, r6 - bls .L1731 + bls .L1700 cmp r1, #0 - beq .L1730 + beq .L1699 ldrh r2, [r3, r8] ubfx r2, r2, #0, #11 cmp r2, r5 - bgt .L1730 -.L1731: + bgt .L1699 +.L1700: mov r1, #0 mov r2, #1 mov r0, r4 str r3, [sp, #28] bl gc_add_sblk - ldr r2, .L1814+48 + ldr r2, .L1783+48 mov r1, #1 add r9, r9, r1 strh r1, [r2] @ movhi - ldr r2, .L1814+8 + ldr r2, .L1783+8 ldr r2, [r2] tst r2, #1024 ldr r3, [sp, #28] - beq .L1730 - ldr r0, [fp, #1088] + beq .L1699 + ldr r0, [fp, #1092] mov r1, r4, asl r1 - ldr r2, [fp, #1080] + ldr r2, [fp, #1084] ldrh lr, [r0, r1] add r2, r2, r8 - ldr r1, .L1814+24 + ldr r1, .L1783+24 ldrb r2, [r2, #2] @ zero_extendqisi2 - ldr r0, .L1814+52 + ldr r0, .L1783+52 ldrh r1, [r1, #52] str r1, [sp] ldrh r1, [r3, r8] @@ -10374,49 +10106,49 @@ gc_static_wearleveling: ldr r3, [r3, r8] ubfx r3, r3, #11, #8 str r3, [sp, #8] - b .L1810 -.L1729: - ldr r0, .L1814+20 + b .L1779 +.L1698: + ldr r0, .L1783+20 ldr r2, [sp, #20] - ldrh r0, [r0, #-156] + ldrh r0, [r0, #-172] rsb r2, r5, r2 cmp r2, r0 - ble .L1730 + ble .L1699 ldrh r2, [r3, r8] add r0, r5, #8 ubfx r2, r2, #0, #11 cmp r2, r0 - ble .L1732 + ble .L1701 cmp r1, #0 - beq .L1730 + beq .L1699 ldr r2, [r3, r8] add r1, r6, #4 ubfx r2, r2, #11, #8 cmp r2, r1 - bgt .L1730 -.L1732: + bgt .L1699 +.L1701: mov r1, #0 mov r2, #1 mov r0, r4 str r3, [sp, #28] bl gc_add_sblk - ldr r2, .L1814+48 + ldr r2, .L1783+48 mov r1, #1 add r7, r7, r1 strh r1, [r2] @ movhi - ldr r2, .L1814+8 + ldr r2, .L1783+8 ldr r2, [r2] tst r2, #1024 ldr r3, [sp, #28] - beq .L1730 - ldr r0, [fp, #1088] + beq .L1699 + ldr r0, [fp, #1092] mov r1, r4, asl r1 - ldr r2, [fp, #1080] + ldr r2, [fp, #1084] ldrh lr, [r0, r1] add r2, r2, r8 - ldr r1, .L1814+24 + ldr r1, .L1783+24 ldrb r2, [r2, #2] @ zero_extendqisi2 - ldr r0, .L1814+56 + ldr r0, .L1783+56 ldrh r1, [r1, #52] str r1, [sp] ldrh r1, [r3, r8] @@ -10425,52 +10157,52 @@ gc_static_wearleveling: ldr r3, [r3, r8] ubfx r3, r3, #11, #8 str r3, [sp, #8] -.L1810: +.L1779: mov r1, r4 mov r2, r2, lsr #5 mov r3, lr bl printk -.L1730: +.L1699: cmp r9, #4 cmpls r7, #4 - bhi .L1733 -.L1726: + bhi .L1702 +.L1695: add r10, r10, #1 uxth r10, r10 - b .L1724 -.L1733: - ldr r3, .L1814 - ldr r3, [r3, #1092] + b .L1693 +.L1702: + ldr r3, .L1783 + ldr r3, [r3, #1096] str r4, [r3, #580] -.L1723: +.L1692: cmp r6, #0 - beq .L1736 - ldr r0, .L1814 - ldr r4, .L1814+4 + beq .L1705 + ldr r0, .L1783 + ldr r4, .L1783+4 ldr r3, [r0, #2804] ldrh r3, [r3, #134] -.L1737: +.L1706: ldrh r2, [r4] cmp r2, r3 - bls .L1812 - ldr ip, [r0, #1080] + bls .L1781 + ldr ip, [r0, #1084] mov lr, r3, asl #2 add r8, ip, lr ldr r2, [ip, r3, asl #2] ubfx r1, r2, #11, #8 cmp r1, r6 - bcc .L1738 + bcc .L1707 ldrb r8, [r8, #2] @ zero_extendqisi2 tst r8, #24 rsbne r1, r6, r1 bfine r2, r1, #11, #8 strne r2, [ip, lr] -.L1738: +.L1707: add r3, r3, #1 uxth r3, r3 - b .L1737 -.L1812: - ldr r3, .L1814 + b .L1706 +.L1781: + ldr r3, .L1783 ldr r3, [r3, #2804] ldrh r2, [r3, #72] add r2, r6, r2 @@ -10479,36 +10211,36 @@ gc_static_wearleveling: cmp r2, r6 rsbhi r2, r6, r2 strhih r2, [r3, #98] @ movhi -.L1736: +.L1705: cmp r5, #0 - beq .L1742 - ldr ip, .L1814 - ldr r6, .L1814+4 + beq .L1711 + ldr ip, .L1783 + ldr r6, .L1783+4 ldr r3, [ip, #2804] ldrh r3, [r3, #134] -.L1743: +.L1712: ldrh r2, [r6] cmp r2, r3 - bls .L1813 - ldr r4, [ip, #1080] + bls .L1782 + ldr r4, [ip, #1084] mov lr, r3, asl #2 add r0, r4, lr ldrh r2, [r4, lr] ubfx r1, r2, #0, #11 cmp r1, r5 - blt .L1744 + blt .L1713 ldrb r0, [r0, #2] @ zero_extendqisi2 and r0, r0, #24 cmp r0, #16 rsbne r1, r5, r1 bfine r2, r1, #0, #11 strneh r2, [r4, lr] @ movhi -.L1744: +.L1713: add r3, r3, #1 uxth r3, r3 - b .L1743 -.L1813: - ldr r3, .L1814 + b .L1712 +.L1782: + ldr r3, .L1783 ldr r3, [r3, #2804] ldrh r2, [r3, #74] add r2, r5, r2 @@ -10517,49 +10249,49 @@ gc_static_wearleveling: cmp r2, r5 rsbhi r2, r5, r2 strhih r2, [r3, #96] @ movhi -.L1742: - ldr r4, .L1814+60 +.L1711: + ldr r4, .L1783+60 mov r1, #0 sub r0, r4, #12 bl _list_get_gc_head_node movw r2, #65535 cmp r0, r2 - beq .L1700 - ldr r2, .L1814 + beq .L1669 + ldr r2, .L1783 mov r3, r0, asl #1 - ldr r1, [r2, #1088] + ldr r1, [r2, #1092] ldrh r2, [r4, #-8] ldrh r3, [r1, r3] cmp r3, r2, lsr #1 - bhi .L1700 + bhi .L1669 mov r1, #0 mov r2, #1 bl gc_add_sblk add r9, r9, #1 -.L1700: +.L1669: add r0, r7, r9 -.L1806: +.L1775: add sp, sp, #44 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1815: +.L1784: .align 2 -.L1814: +.L1783: .word .LANCHOR0 - .word .LANCHOR0+1076 + .word .LANCHOR0+1080 .word .LANCHOR2 - .word .LC126 - .word .LC127 + .word .LC123 + .word .LC124 .word .LANCHOR3 .word .LANCHOR0+2828 + .word .LC125 + .word .LC126 + .word .LC127 .word .LC128 .word .LC129 + .word .LANCHOR0+5008 .word .LC130 .word .LC131 - .word .LC132 - .word .LANCHOR0+5008 - .word .LC133 - .word .LC134 .word .LANCHOR3-3088 .fnend .size gc_static_wearleveling, .-gc_static_wearleveling @@ -10572,10 +10304,10 @@ zftl_sblk_list_init: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - movw r3, #1076 - ldr r5, .L1849 + movw r3, #1080 + ldr r5, .L1818 mov r2, #6 - ldr r6, .L1849+4 + ldr r6, .L1818+4 mov r1, #0 .pad #20 sub sp, sp, #20 @@ -10584,7 +10316,7 @@ zftl_sblk_list_init: mov r4, fp ldr r0, [r5, #1036] mov r8, r5 - ldr r10, .L1849+8 + ldr r10, .L1818+8 mul r2, r2, r3 bl ftl_memset sub r3, r6, #3056 @@ -10620,28 +10352,28 @@ zftl_sblk_list_init: str r6, [sp, #8] ldrh r7, [r3, #134] strh fp, [r3, #146] @ movhi -.L1817: - ldr r2, .L1849+12 +.L1786: + ldr r2, .L1818+12 sxth ip, r7 - ldr r3, .L1849 + ldr r3, .L1818 ldrh r2, [r2] cmp ip, r2 - bge .L1847 - ldr r6, [r8, #1080] + bge .L1816 + ldr r6, [r8, #1084] add r6, r6, ip, asl #2 ldrb r3, [r6, #3] @ zero_extendqisi2 cmp r3, #0 ldreq r1, [sp, #4] - beq .L1818 + beq .L1787 ldr r3, [sp, #8] ldrh fp, [r10] ldr r0, [r8, #2804] ldrb lr, [r3, #-3123] @ zero_extendqisi2 mov r3, #0 mov r1, r3 -.L1819: +.L1788: cmp r3, lr - bge .L1848 + bge .L1817 ldrb r2, [r6, #3] @ zero_extendqisi2 mov r2, r2, asr r3 add r3, r3, #1 @@ -10651,10 +10383,10 @@ zftl_sblk_list_init: uxtheq r1, r1 addne r2, r2, #1 strneh r2, [r0, #146] @ movhi - b .L1819 -.L1848: + b .L1788 +.L1817: cmp r1, #0 - beq .L1823 + beq .L1792 sxth r1, r1 mov r0, #32768 str ip, [sp, #12] @@ -10662,16 +10394,16 @@ zftl_sblk_list_init: add r0, r0, #1 ldr ip, [sp, #12] uxth r1, r0 - b .L1818 -.L1823: + b .L1787 +.L1792: ldrb r3, [r6, #2] @ zero_extendqisi2 mvn r0, #0 orr r3, r3, #224 strb r3, [r6, #2] - ldr r2, [r5, #1088] + ldr r2, [r5, #1092] mov r3, ip, asl #1 strh r0, [r2, r3] @ movhi -.L1818: +.L1787: mov r9, ip, asl #1 ldr r0, [r5, #1036] add r2, r9, ip @@ -10687,60 +10419,60 @@ zftl_sblk_list_init: cmpne r2, #224 moveq fp, #1 movne fp, #0 - beq .L1824 - ldr r1, [r8, #1092] + beq .L1793 + ldr r1, [r8, #1096] ldrh r0, [r1, #16] cmp ip, r0 - beq .L1824 + beq .L1793 ldrh r0, [r1, #48] cmp ip, r0 - beq .L1824 + beq .L1793 ldrh r1, [r1, #80] cmp ip, r1 - beq .L1824 + beq .L1793 cmp r2, #64 uxtheq r6, r7 - ldreq r0, .L1849+16 - ldreq r2, .L1849+20 + ldreq r0, .L1818+16 + ldreq r2, .L1818+20 moveq r1, r6 - beq .L1845 -.L1825: + beq .L1814 +.L1794: cmp r2, #96 uxtheq r6, r7 - ldreq r0, .L1849+24 - ldreq r2, .L1849+28 + ldreq r0, .L1818+24 + ldreq r2, .L1818+28 moveq r1, r6 - beq .L1845 -.L1826: + beq .L1814 +.L1795: cmp r2, #160 - bne .L1827 + bne .L1796 uxth r6, r7 - ldr r0, .L1849+32 - ldr r2, .L1849+36 + ldr r0, .L1818+32 + ldr r2, .L1818+36 mov r1, r6 -.L1845: +.L1814: bl _insert_data_list - ldr r2, [r8, #1088] + ldr r2, [r8, #1092] ldrh r3, [r2, r9] cmp r3, #7 movls r0, r6 movls r1, #1 movls r2, fp - bhi .L1824 - b .L1843 -.L1827: + bhi .L1793 + b .L1812 +.L1796: cmp r2, #0 - bne .L1824 - ldr r2, [r8, #1088] + bne .L1793 + ldr r2, [r8, #1092] uxth fp, r7 ldrh r2, [r2, r9] cmp r2, #0 - beq .L1828 + beq .L1797 sxth r3, r4 cmp r3, #2 - bgt .L1829 + bgt .L1798 mov r1, ip - ldr r0, .L1849+40 + ldr r0, .L1818+40 bl printk ldrb r3, [r6, #2] @ zero_extendqisi2 add r4, r4, #1 @@ -10753,37 +10485,37 @@ zftl_sblk_list_init: bfi r3, r2, #5, #3 mov r2, #0 strb r3, [r6, #2] -.L1843: +.L1812: bl gc_add_sblk - b .L1824 -.L1829: - ldr r1, .L1849+44 + b .L1793 +.L1798: + ldr r1, .L1818+44 mov r2, #656 - ldr r0, .L1849+48 + ldr r0, .L1818+48 bl printk bl dump_stack -.L1828: +.L1797: ldrb r3, [r6, #2] @ zero_extendqisi2 ands r3, r3, #24 - ldreq r0, .L1849+52 + ldreq r0, .L1818+52 moveq r1, fp - ldreq r2, .L1849+56 - beq .L1841 -.L1831: + ldreq r2, .L1818+56 + beq .L1810 +.L1800: cmp r3, #16 - ldreq r0, .L1849+60 + ldreq r0, .L1818+60 moveq r1, fp - ldreq r2, .L1849+64 + ldreq r2, .L1818+64 movne r1, fp - ldrne r0, .L1849+68 - ldrne r2, .L1849+72 -.L1841: + ldrne r0, .L1818+68 + ldrne r2, .L1818+72 +.L1810: bl _insert_free_list -.L1824: +.L1793: add r7, r7, #1 uxth r7, r7 - b .L1817 -.L1847: + b .L1786 +.L1816: movw r1, #2788 ldr r2, [r3, #2804] ldrh r1, [r3, r1] @@ -10806,21 +10538,21 @@ zftl_sblk_list_init: add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1850: +.L1819: .align 2 -.L1849: +.L1818: .word .LANCHOR0 .word .LANCHOR3 .word .LANCHOR3-3114 - .word .LANCHOR0+1076 + .word .LANCHOR0+1080 .word .LANCHOR3-3092 .word .LANCHOR0+2794 .word .LANCHOR3-3104 .word .LANCHOR0+2796 .word .LANCHOR3-3100 .word .LANCHOR0+2798 - .word .LC135 - .word .LANCHOR1+1868 + .word .LC132 + .word .LANCHOR1+1736 .word .LC0 .word .LANCHOR3-3080 .word .LANCHOR0+2788 @@ -10841,19 +10573,19 @@ pm_free_sblk: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #284 sub sp, sp, #284 - ldr r5, .L1881 - ldrh r3, [r5, #-152] + ldr r5, .L1850 + ldrh r3, [r5, #-168] cmp r3, #128 - bls .L1852 - ldr r1, .L1881+4 + bls .L1821 + ldr r1, .L1850+4 mov r2, #94 - ldr r0, .L1881+8 + ldr r0, .L1850+8 bl printk bl dump_stack -.L1852: - ldr r4, .L1881+12 +.L1821: + ldr r4, .L1850+12 mov r1, #0 - ldrh lr, [r5, #-152] + ldrh lr, [r5, #-168] mov r0, r1 movw r6, #65535 ldr r2, [r4, #2804] @@ -10861,21 +10593,21 @@ pm_free_sblk: add r2, r2, #412 add r2, r2, #2 ldrh ip, [r3] -.L1855: +.L1824: ldrh r7, [r2, #2]! uxth r3, r1 cmp r7, r6 addne r0, r0, #1 uxthne r0, r0 cmp r0, ip - bcs .L1854 + bcs .L1823 cmp r0, lr - bcs .L1854 + bcs .L1823 add r1, r1, #1 cmp r1, #128 - bne .L1855 + bne .L1824 mov r3, r1 -.L1854: +.L1823: add r3, r3, #1 add r0, sp, #24 mov r1, #0 @@ -10892,16 +10624,16 @@ pm_free_sblk: ldrb ip, [r5, #-3130] @ zero_extendqisi2 add r10, r7, #700 ldrh fp, [r7, r3] - ldr r3, .L1881+16 + ldr r3, .L1850+16 ldrh r9, [r3, #-12] - ldrb r3, [r4, #1189] @ zero_extendqisi2 + ldrb r3, [r4, #1153] @ zero_extendqisi2 rsb r3, r3, #24 rsb r3, r9, r3 mvn r8, r8, asl r3 -.L1856: +.L1825: uxth r3, r6 cmp r3, fp - bcs .L1878 + bcs .L1847 ldr r0, [r10, #4]! mov r1, ip str ip, [sp, #16] @@ -10914,11 +10646,11 @@ pm_free_sblk: add r3, r7, #412 add r3, r3, #2 add r2, sp, #24 -.L1857: +.L1826: ldr r0, [sp, #8] uxth lr, r1 cmp lr, r0 - bcs .L1879 + bcs .L1848 ldrh lr, [r3, #2]! add r1, r1, #1 ldr r0, [sp, #12] @@ -10927,12 +10659,12 @@ pm_free_sblk: ldreqh lr, [r2, #-2] addeq lr, lr, #1 streqh lr, [r2, #-2] @ movhi - b .L1857 -.L1879: + b .L1826 +.L1848: add r6, r6, #1 - b .L1856 -.L1878: - ldr r2, .L1881+20 + b .L1825 +.L1847: + ldr r2, .L1850+20 mov r6, #0 ldrb fp, [r5, #-3123] @ zero_extendqisi2 add r8, sp, #24 @@ -10943,11 +10675,11 @@ pm_free_sblk: add r3, r2, #3088 str r3, [sp, #12] uxth r7, fp -.L1861: +.L1830: ldr r3, [sp, #8] uxth fp, r6 cmp fp, r3 - bcs .L1880 + bcs .L1849 add r3, r6, #208 ldr ip, [r4, #2804] ldrb r1, [r5, #-3130] @ zero_extendqisi2 @@ -10964,7 +10696,7 @@ pm_free_sblk: movw r0, #65535 ldreq r2, [sp, #12] ldreqb r1, [r2, #-3123] @ zero_extendqisi2 - ldreq r2, .L1881+24 + ldreq r2, .L1850+24 ldreqh r2, [r2] smulbbeq r2, r1, r2 streqh r2, [r8] @ movhi @@ -10979,42 +10711,42 @@ pm_free_sblk: movne r7, r2 cmp r3, r0 cmpne r1, #2 - bls .L1864 - ldr r0, [r4, #1080] + bls .L1833 + ldr r0, [r4, #1084] mov r1, r3, asl #2 ldrh r1, [r0, r1] ldrh r0, [ip, #92] ubfx r1, r1, #0, #11 add r0, r0, #4 cmp r1, r0 - bgt .L1864 + bgt .L1833 str r1, [sp] mov r1, r6 - ldr r0, .L1881+28 + ldr r0, .L1850+28 mov r10, fp bl printk -.L1864: +.L1833: ldrh r2, [r8] cmp r2, #0 - bne .L1865 + bne .L1834 add fp, r6, #208 ldr r1, [r4, #2804] movw r0, #65535 mov r3, fp, asl #1 ldrh r3, [r1, r3] cmp r3, r0 - beq .L1865 - ldr r0, .L1881+32 + beq .L1834 + ldr r0, .L1850+32 ldr r0, [r0] tst r0, #4096 - beq .L1866 + beq .L1835 add r1, r1, #688 - ldr r0, .L1881+36 + ldr r0, .L1850+36 ldrh r1, [r1] str r1, [sp] mov r1, r6 bl printk -.L1866: +.L1835: ldr r3, [r4, #2804] mov fp, fp, asl #1 ldrh r0, [r3, fp] @@ -11026,11 +10758,11 @@ pm_free_sblk: ldrh r2, [r3] sub r2, r2, #1 strh r2, [r3] @ movhi -.L1865: +.L1834: add r6, r6, #1 add r8, r8, #2 - b .L1861 -.L1880: + b .L1830 +.L1849: movw r0, #65535 cmp r10, r0 movne r0, r10 @@ -11038,19 +10770,19 @@ pm_free_sblk: add sp, sp, #284 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1882: +.L1851: .align 2 -.L1881: +.L1850: .word .LANCHOR3 - .word .LANCHOR1+1888 + .word .LANCHOR1+1756 .word .LC0 .word .LANCHOR0 .word .LANCHOR3-3120 .word .LANCHOR3-3088 .word .LANCHOR3-3096 - .word .LC136 + .word .LC133 .word .LANCHOR2 - .word .LC137 + .word .LC134 .fnend .size pm_free_sblk, .-pm_free_sblk .align 2 @@ -11071,49 +10803,49 @@ flash_info_data_init: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1890 + ldr r3, .L1859 stmfd sp!, {r4, lr} .save {r4, lr} ldr r3, [r3] tst r3, #4096 - beq .L1885 - ldr r0, .L1890+4 + beq .L1854 + ldr r0, .L1859+4 mov r1, #120 - ldr r2, .L1890+8 + ldr r2, .L1859+8 bl printk -.L1885: - ldr r4, .L1890+12 +.L1854: + ldr r4, .L1859+12 mov r1, #0 mov r2, #2048 - ldr r0, [r4, #1176] + ldr r0, [r4, #1040] bl ftl_memset - ldr r3, [r4, #1176] - ldr r2, .L1890+16 - ldr r1, .L1890+20 + ldr r3, [r4, #1040] + ldr r2, .L1859+16 + ldr r1, .L1859+20 str r2, [r3] mov r3, #2032 - ldr r0, [r4, #1176] + ldr r0, [r4, #1040] mov r2, #32 add r0, r0, #80 str r3, [r0, #-72] mov r3, #1 strh r3, [r0, #-64] @ movhi bl ftl_memcpy - ldr r0, [r4, #1176] - ldr r1, .L1890+24 + ldr r0, [r4, #1040] + ldr r1, .L1859+24 mov r2, #32 add r0, r0, #48 ldmfd sp!, {r4, lr} b ftl_memcpy -.L1891: +.L1860: .align 2 -.L1890: +.L1859: .word .LANCHOR2 - .word .LC138 - .word .LANCHOR1+1904 + .word .LC135 + .word .LANCHOR1+1772 .word .LANCHOR0 .word 1398362953 - .word .LANCHOR0+1103 + .word .LANCHOR0+1111 .word .LANCHOR2+4 .fnend .size flash_info_data_init, .-flash_info_data_init @@ -11126,13 +10858,13 @@ ftl_memcpy32: @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. mov r3, #0 -.L1893: +.L1862: cmp r3, r2 ldrne ip, [r1, r3, asl #2] strne ip, [r0, r3, asl #2] addne r3, r3, #1 - bne .L1893 -.L1895: + bne .L1862 +.L1864: bx lr .fnend .size ftl_memcpy32, .-ftl_memcpy32 @@ -11155,15 +10887,15 @@ timer_get_time: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1898 + ldr r3, .L1867 ldr r0, [r3] - ldr r3, .L1898+4 - ldr r3, [r3, #-144] + ldr r3, .L1867+4 + ldr r3, [r3, #-160] rsb r0, r3, r0 b jiffies_to_msecs -.L1899: +.L1868: .align 2 -.L1898: +.L1867: .word jiffies .word .LANCHOR3 .fnend @@ -11184,20 +10916,20 @@ StorageSysDataLoad: mov r1, #0 bl ftl_memset bl rknand_device_lock - ldr r3, .L1902 + ldr r3, .L1871 mov r2, r4 mov r1, #1 mov r0, r5 - ldr r3, [r3, #-136] + ldr r3, [r3, #-152] ldr r3, [r3, #12] blx r3 mov r4, r0 bl rknand_device_unlock mov r0, r4 ldmfd sp!, {r3, r4, r5, pc} -.L1903: +.L1872: .align 2 -.L1902: +.L1871: .word .LANCHOR3 .fnend .size StorageSysDataLoad, .-StorageSysDataLoad @@ -11213,20 +10945,20 @@ StorageSysDataStore: mov r4, r1 mov r5, r0 bl rknand_device_lock - ldr r3, .L1906 + ldr r3, .L1875 mov r2, r4 mov r1, #1 mov r0, r5 - ldr r3, [r3, #-136] + ldr r3, [r3, #-152] ldr r3, [r3, #16] blx r3 mov r4, r0 bl rknand_device_unlock mov r0, r4 ldmfd sp!, {r3, r4, r5, pc} -.L1907: +.L1876: .align 2 -.L1906: +.L1875: .word .LANCHOR3 .fnend .size StorageSysDataStore, .-StorageSysDataStore @@ -11243,20 +10975,20 @@ FlashBootVendorRead: mov r5, r1 mov r4, r2 bl rknand_device_lock - ldr r3, .L1910 + ldr r3, .L1879 mov r2, r4 mov r1, r5 mov r0, r6 - ldr r3, [r3, #-136] + ldr r3, [r3, #-152] ldr r3, [r3, #4] blx r3 mov r4, r0 bl rknand_device_unlock mov r0, r4 ldmfd sp!, {r4, r5, r6, pc} -.L1911: +.L1880: .align 2 -.L1910: +.L1879: .word .LANCHOR3 .fnend .size FlashBootVendorRead, .-FlashBootVendorRead @@ -11273,20 +11005,20 @@ FlashBootVendorWrite: mov r5, r1 mov r4, r2 bl rknand_device_lock - ldr r3, .L1914 + ldr r3, .L1883 mov r2, r4 mov r1, r5 mov r0, r6 - ldr r3, [r3, #-136] + ldr r3, [r3, #-152] ldr r3, [r3, #8] blx r3 mov r4, r0 bl rknand_device_unlock mov r0, r4 ldmfd sp!, {r4, r5, r6, pc} -.L1915: +.L1884: .align 2 -.L1914: +.L1883: .word .LANCHOR3 .fnend .size FlashBootVendorWrite, .-FlashBootVendorWrite @@ -11297,13 +11029,13 @@ flash_sram_load_store: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr ip, .L1920 + ldr ip, .L1889 cmp r2, #0 moveq r2, r3 - ldr ip, [ip, #-132] + ldr ip, [ip, #-148] add ip, ip, #4096 add r1, ip, r1 - beq .L1919 + beq .L1888 str lr, [sp, #-4]! .save {lr} mov lr, r0 @@ -11311,11 +11043,11 @@ flash_sram_load_store: mov r1, lr ldr lr, [sp], #4 mov r2, r3 -.L1919: +.L1888: b ftl_memcpy -.L1921: +.L1890: .align 2 -.L1920: +.L1889: .word .LANCHOR3 .fnend .size flash_sram_load_store, .-flash_sram_load_store @@ -11331,6 +11063,327 @@ FlashCs123Init: .fnend .size FlashCs123Init, .-FlashCs123Init .align 2 + .global ftl_dma32_malloc + .type ftl_dma32_malloc, %function +ftl_dma32_malloc: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + cmp r0, #8192 + stmfd sp!, {r3, r4, r5, lr} + .save {r3, r4, r5, lr} + ble .L1893 + ldmfd sp!, {r3, r4, r5, lr} + b ftl_malloc +.L1893: + ldr r5, .L1896 + add r4, r0, #63 + bic r4, r4, #63 + ldr r3, [r5, #-144] + cmp r3, r4 + bge .L1894 + mov r0, #16384 + bl ftl_malloc + mov r3, #16384 + str r3, [r5, #-144] + str r0, [r5, #-140] +.L1894: + ldr r3, [r5, #-144] + ldr r0, [r5, #-140] + rsb r3, r4, r3 + str r3, [r5, #-144] + add r4, r0, r4 + str r4, [r5, #-140] + ldmfd sp!, {r3, r4, r5, pc} +.L1897: + .align 2 +.L1896: + .word .LANCHOR3 + .fnend + .size ftl_dma32_malloc, .-ftl_dma32_malloc + .align 2 + .global nandc_init + .type nandc_init, %function +nandc_init: + .fnstart + @ args = 0, pretend = 0, frame = 8 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r4, r5, r6, r7, lr} + .save {r4, r5, r6, r7, lr} + .pad #20 + sub sp, sp, #20 + ldr r5, .L1918 + mov r3, #0 + str r3, [sp, #12] + mov r7, r0 + ldr r3, [r5] + tst r3, #4096 + beq .L1899 + ldr r0, .L1918+4 + mov r2, r7 + ldr r1, .L1918+8 + bl printk +.L1899: + ldr r4, .L1918+12 + mov r3, #6 + ldr r2, [r7, #352] + ldr r6, .L1918+12 + strb r3, [r4, #1028] + ldr r3, .L1918+16 + str r7, [r4, #1044] + cmp r2, r3 + ldr r2, [r7, #128] + moveq r3, #8 + streqb r3, [r4, #1028] + ldr r3, .L1918+20 + cmp r2, r3 + ldr r2, .L1918+24 + moveq r3, #9 + streqb r3, [r4, #1028] + ldrb r3, [r4, #1028] @ zero_extendqisi2 + cmp r3, #9 + bne .L1902 + mov r3, #1 + strb r3, [r6, #1199] + ldr r3, [sp, #12] + orr r3, r3, #256 + str r3, [sp, #12] + ldr r3, [sp, #12] + bic r3, r3, #1835008 + orr r3, r3, #524288 + str r3, [sp, #12] + ldr r3, [sp, #12] + str r3, [r7] + mov r3, #0 + ldr r0, [r6, #1044] + str r3, [r0, #520] + movw r3, #4161 + str r3, [r0, #4] + movw r3, #8321 + str r3, [r0, #8] + mov r3, #38 + str r2, [r0, #80] + str r3, [r0, #84] + mov r3, #39 + str r3, [r0, #84] + ldr r3, [r5] + tst r3, #4096 + beq .L1904 + ldr r1, [r0] + ldr r2, [r0, #8] + ldr r3, [r0, #80] + ldr ip, [r0, #84] + ldr r0, [r0, #88] + b .L1917 +.L1902: + ldr r3, [sp, #12] + mov r1, #0 + strb r1, [r6, #1199] + mov r0, #2048 + orr r3, r3, #256 + str r3, [sp, #12] + ldr r3, [sp, #12] + bic r3, r3, #117440512 + orr r3, r3, #16777216 + str r3, [sp, #12] + ldr r3, [sp, #12] + str r3, [r7] + ldr r3, [r6, #1044] + str r1, [r3, #336] + movw r1, #4193 + str r1, [r3, #4] + movw r1, #8321 + str r1, [r3, #344] + str r2, [r3, #304] + mov r2, #38 + str r2, [r3, #308] + mov r2, #39 + str r2, [r3, #308] + bl ftl_dma32_malloc + ldr r3, [r5] + tst r3, #4096 + str r0, [r6, #1204] + beq .L1904 + ldr r0, [r6, #1044] + ldr r1, [r0] + ldr r2, [r0, #344] + ldr r3, [r0, #304] + ldr ip, [r0, #308] + ldr r0, [r0, #312] +.L1917: + str r0, [sp, #4] + str ip, [sp] + ldr r0, .L1918+28 + bl printk +.L1904: + ldr r3, .L1918+12 + mov r2, #1 + strb r2, [r4, #1200] + mov r2, #0 + add r1, r3, #1232 + strb r2, [r4, #1197] + strh r2, [r1] @ movhi + ldr r2, [r5] + tst r2, #4096 + beq .L1898 + ldr r0, .L1918+32 + ldrb r1, [r3, #1028] @ zero_extendqisi2 + bl printk +.L1898: + add sp, sp, #20 + @ sp needed + ldmfd sp!, {r4, r5, r6, r7, pc} +.L1919: + .align 2 +.L1918: + .word .LANCHOR2 + .word .LC136 + .word .LANCHOR1+1796 + .word .LANCHOR0 + .word 1446522928 + .word 1446588464 + .word 1052675 + .word .LC137 + .word .LC138 + .fnend + .size nandc_init, .-nandc_init + .align 2 + .global zbuf_init + .type zbuf_init, %function +zbuf_init: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r3, r4, r5, r6, r7, lr} + .save {r3, r4, r5, r6, r7, lr} + mov r5, #0 + ldr r4, .L1924 + mov r6, r5 + ldr r7, .L1924+4 +.L1921: + ldrb r0, [r7, #-2538] @ zero_extendqisi2 + uxtb r3, r5 + add r2, r3, #1 + strb r3, [r4, #1] + strb r2, [r4] + add r5, r5, #1 + mov r0, r0, asl #9 + strb r6, [r4, #2] + str r6, [r4, #8] + bl ftl_dma32_malloc + add r4, r4, #48 + str r0, [r4, #-44] + mov r0, #64 + bl ftl_dma32_malloc + cmp r5, #32 + str r0, [r4, #-36] + bne .L1921 + ldr r3, .L1924+8 + mvn r2, #0 + strb r5, [r3, #2773] + strb r2, [r3, #2724] + mov r2, #0 + strb r2, [r3, #2772] + ldmfd sp!, {r3, r4, r5, r6, r7, pc} +.L1925: + .align 2 +.L1924: + .word .LANCHOR0+1236 + .word .LANCHOR3 + .word .LANCHOR0 + .fnend + .size zbuf_init, .-zbuf_init + .align 2 + .global gc_init + .type gc_init, %function +gc_init: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, lr} + .save {r3, r4, r5, r6, r7, r8, r9, lr} + movw r9, #2828 + ldr r6, .L1928 + mov r5, #0 + ldr r4, .L1928+4 + mov r1, r5 + add r7, r6, r9 + movw r2, #2204 + sub r8, r4, #3088 + mov r0, r7 + strb r5, [r4, #-3115] + strb r5, [r4, #-136] + str r5, [r4, #-132] + strh r5, [r8] @ movhi + bl ftl_memset + ldrh r2, [r8, #-8] + mvn r3, #0 + strh r3, [r6, r9] @ movhi + movw ip, #2812 + str r5, [r6, #2836] + mov r3, r2, lsr #1 + strh r3, [r7, #34] @ movhi + ldrb r3, [r4, #-3123] @ zero_extendqisi2 + mov r0, r2, lsr #2 + strh r0, [r7, #32] @ movhi + sub r7, r4, #3104 + smulbb r1, r3, r2 + strh r5, [r7, #-8] @ movhi + strh r5, [r7, #-6] @ movhi + strh r5, [r7, #-4] @ movhi + uxth r1, r1 + sub lr, r1, #32 + strh lr, [r6, ip] @ movhi + movw ip, #2810 + strh r1, [r6, ip] @ movhi + add r1, r6, #2816 + strh r2, [r1] @ movhi + mov r2, #4 + strh r2, [r4, #-128] @ movhi + movw r2, #2814 + strh r0, [r6, r2] @ movhi + sub r4, r4, #3072 + ldrh r0, [r7, #-10] + mul r0, r3, r0 + mov r0, r0, asl #2 + bl ftl_dma32_malloc + ldrb r3, [r4, #-51] @ zero_extendqisi2 + str r0, [r4, #2948] + ldrh r0, [r7, #-10] + mul r0, r3, r0 + mov r0, r0, asl #2 + bl ftl_dma32_malloc + ldrh r3, [r7, #-10] + str r0, [r4, #2952] + ldrb r0, [r4, #-51] @ zero_extendqisi2 + mul r0, r0, r3 + bl ftl_dma32_malloc + ldrb r3, [r4, #-51] @ zero_extendqisi2 + str r0, [r4, #-48] + ldrh r0, [r7, #-10] + mul r0, r3, r0 + mov r0, r0, asl #2 + bl ftl_dma32_malloc + ldrb r3, [r4, #-51] @ zero_extendqisi2 + str r0, [r4, #-56] + ldrh r0, [r7, #-10] + mul r0, r3, r0 + mov r0, r0, asl #2 + bl ftl_dma32_malloc + movw r2, #2808 + str r0, [r4, #2956] + ldrh r3, [r4, #-14] + mov r3, r3, lsr #2 + strh r3, [r6, r2] @ movhi + ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, pc} +.L1929: + .align 2 +.L1928: + .word .LANCHOR0 + .word .LANCHOR3 + .fnend + .size gc_init, .-gc_init + .align 2 .global rk_ftl_de_init .type rk_ftl_de_init, %function rk_ftl_de_init: @@ -11340,16 +11393,16 @@ rk_ftl_de_init: stmfd sp!, {r4, lr} .save {r4, lr} mov r1, #0 - ldr r0, .L1925 + ldr r0, .L1932 bl printk - ldr r3, .L1925+4 - ldr r3, [r3, #-136] + ldr r3, .L1932+4 + ldr r3, [r3, #-152] ldr r3, [r3, #40] ldmfd sp!, {r4, lr} bx r3 @ indirect register sibling call -.L1926: +.L1933: .align 2 -.L1925: +.L1932: .word .LC139 .word .LANCHOR3 .fnend @@ -11362,14 +11415,14 @@ rk_ftl_cache_write_back: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1928 + ldr r3, .L1935 mov r0, #0 - ldr r3, [r3, #-136] + ldr r3, [r3, #-152] ldr r3, [r3, #32] bx r3 @ indirect register sibling call -.L1929: +.L1936: .align 2 -.L1928: +.L1935: .word .LANCHOR3 .fnend .size rk_ftl_cache_write_back, .-rk_ftl_cache_write_back @@ -11381,13 +11434,13 @@ rk_nand_suspend: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1931 - ldr r3, [r3, #-136] + ldr r3, .L1938 + ldr r3, [r3, #-152] ldr r3, [r3, #44] bx r3 @ indirect register sibling call -.L1932: +.L1939: .align 2 -.L1931: +.L1938: .word .LANCHOR3 .fnend .size rk_nand_suspend, .-rk_nand_suspend @@ -11399,13 +11452,13 @@ rk_nand_resume: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1934 - ldr r3, [r3, #-136] + ldr r3, .L1941 + ldr r3, [r3, #-152] ldr r3, [r3, #48] bx r3 @ indirect register sibling call -.L1935: +.L1942: .align 2 -.L1934: +.L1941: .word .LANCHOR3 .fnend .size rk_nand_resume, .-rk_nand_resume @@ -11417,14 +11470,14 @@ rk_ftl_get_capacity: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1937 + ldr r3, .L1944 mov r0, #0 - ldr r3, [r3, #-136] + ldr r3, [r3, #-152] ldr r3, [r3, #36] bx r3 -.L1938: +.L1945: .align 2 -.L1937: +.L1944: .word .LANCHOR3 .fnend .size rk_ftl_get_capacity, .-rk_ftl_get_capacity @@ -11436,13 +11489,13 @@ rk_nandc_get_irq_status: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1940 - ldr r3, [r3, #-136] + ldr r3, .L1947 + ldr r3, [r3, #-152] ldr r3, [r3, #60] bx r3 -.L1941: +.L1948: .align 2 -.L1940: +.L1947: .word .LANCHOR3 .fnend .size rk_nandc_get_irq_status, .-rk_nandc_get_irq_status @@ -11454,13 +11507,13 @@ rknand_proc_ftlread: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1943 - ldr r3, [r3, #-136] + ldr r3, .L1950 + ldr r3, [r3, #-152] ldr r3, [r3, #64] bx r3 -.L1944: +.L1951: .align 2 -.L1943: +.L1950: .word .LANCHOR3 .fnend .size rknand_proc_ftlread, .-rknand_proc_ftlread @@ -11472,13 +11525,13 @@ FtlRead: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr ip, .L1946 - ldr ip, [ip, #-136] + ldr ip, .L1953 + ldr ip, [ip, #-152] ldr ip, [ip, #20] bx ip -.L1947: +.L1954: .align 2 -.L1946: +.L1953: .word .LANCHOR3 .fnend .size FtlRead, .-FtlRead @@ -11490,13 +11543,13 @@ FtlDiscard: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1949 - ldr r3, [r3, #-136] + ldr r3, .L1956 + ldr r3, [r3, #-152] ldr r3, [r3, #28] bx r3 -.L1950: +.L1957: .align 2 -.L1949: +.L1956: .word .LANCHOR3 .fnend .size FtlDiscard, .-FtlDiscard @@ -11508,13 +11561,13 @@ rk_ftl_garbage_collect: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1952 - ldr r3, [r3, #-136] + ldr r3, .L1959 + ldr r3, [r3, #-152] ldr r3, [r3, #52] bx r3 -.L1953: +.L1960: .align 2 -.L1952: +.L1959: .word .LANCHOR3 .fnend .size rk_ftl_garbage_collect, .-rk_ftl_garbage_collect @@ -11526,13 +11579,13 @@ ReadFlashInfo: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L1955 - ldr r3, [r3, #-136] + ldr r3, .L1962 + ldr r3, [r3, #-152] ldr r3, [r3, #56] bx r3 @ indirect register sibling call -.L1956: +.L1963: .align 2 -.L1955: +.L1962: .word .LANCHOR3 .fnend .size ReadFlashInfo, .-ReadFlashInfo @@ -11551,7 +11604,7 @@ rknand_print_hex: str r2, [sp] str r1, [sp, #4] mov r2, #0 - ldr r0, .L1959 + ldr r0, .L1966 mov r1, ip str r2, [sp, #12] str r3, [sp, #8] @@ -11560,9 +11613,9 @@ rknand_print_hex: add sp, sp, #20 @ sp needed ldr pc, [sp], #4 -.L1960: +.L1967: .align 2 -.L1959: +.L1966: .word .LC140 .fnend .size rknand_print_hex, .-rknand_print_hex @@ -11576,13 +11629,13 @@ hynix_get_read_retry_default: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} cmp r0, #2 - ldr r8, .L2072 + ldr r8, .L2079 .pad #36 sub sp, sp, #36 mvn r7, #81 mvn r6, #80 mov r5, r0 - ldr r4, [r8, #1176] + ldr r4, [r8, #1040] add r3, r4, #128 str r3, [sp] strb r0, [r4, #112] @@ -11592,29 +11645,29 @@ hynix_get_read_retry_default: mvn r3, #82 strb r6, [r4, #131] strb r3, [r4, #129] - bne .L1962 + bne .L1969 mvn r3, #88 strb r3, [r4, #128] - ldr r3, .L2072+4 + ldr r3, .L2079+4 mvn r1, #8 mov r6, #7 strb r1, [r3, #413] - b .L2023 -.L1962: + b .L2030 +.L1969: cmp r0, #3 - bne .L1964 + bne .L1971 add r1, r4, #127 mov r3, #176 -.L1965: +.L1972: strb r3, [r1, #1]! add r3, r3, #1 uxtb r3, r3 cmp r3, #184 - bne .L1965 - b .L2066 -.L1964: + bne .L1972 + b .L2073 +.L1971: cmp r0, #4 - bne .L1966 + bne .L1973 mvn r1, #51 strb r3, [r4, #133] strb r1, [r4, #128] @@ -11628,13 +11681,13 @@ hynix_get_read_retry_default: strb r1, [r4, #131] mvn r1, #50 strb r1, [r4, #132] -.L2066: +.L2073: mov r6, #8 mov fp, r6 - b .L1963 -.L1966: + b .L1970 +.L1973: cmp r0, #5 - bne .L1967 + bne .L1974 mov r3, #56 mov r6, #8 strb r3, [r4, #128] @@ -11644,10 +11697,10 @@ hynix_get_read_retry_default: strb r3, [r4, #130] mov r3, #59 strb r3, [r4, #131] - b .L2023 -.L1967: + b .L2030 +.L1974: cmp r0, #6 - bne .L1968 + bne .L1975 mov r3, #14 mov r6, #12 strb r3, [r4, #128] @@ -11657,29 +11710,29 @@ hynix_get_read_retry_default: strb r3, [r4, #130] mov r3, #17 strb r3, [r4, #131] - b .L2023 -.L1968: + b .L2030 +.L1975: cmp r0, #7 - bne .L1969 + bne .L1976 add r1, r4, #127 mov r3, #176 -.L1970: +.L1977: strb r3, [r1, #1]! add r3, r3, #1 uxtb r3, r3 cmp r3, #184 - bne .L1970 + bne .L1977 mvn r3, #43 mov r6, #12 strb r3, [r4, #136] mov fp, #10 mvn r3, #42 strb r3, [r4, #137] - b .L1963 -.L1969: + b .L1970 +.L1976: cmp r0, #8 mov r6, #7 - bne .L2023 + bne .L2030 mov r3, #6 strb r6, [r4, #129] strb r3, [r4, #128] @@ -11690,26 +11743,26 @@ hynix_get_read_retry_default: mov fp, #5 mov r3, #10 strb r3, [r4, #132] - b .L1963 -.L2023: + b .L1970 +.L2030: mov fp, #4 -.L1963: +.L1970: sub r3, r5, #1 cmp r3, #1 - bhi .L2062 - ldr r1, .L2072+8 + bhi .L2069 + ldr r1, .L2079+8 mov r9, #0 -.L1971: - ldrb ip, [r8, #1101] @ zero_extendqisi2 +.L1978: + ldrb ip, [r8, #1109] @ zero_extendqisi2 uxtb r3, r9 - ldr r0, .L2072 + ldr r0, .L2079 cmp ip, r3 - bls .L1978 + bls .L1985 add r3, r0, r3 mov r5, #160 - ldr r0, [r0, #1040] + ldr r0, [r0, #1044] sub r10, fp, #1 - ldrb r7, [r3, #1180] @ zero_extendqisi2 + ldrb r7, [r3, #1144] @ zero_extendqisi2 add r2, r4, #127 ldr ip, [sp] mla r5, r5, r7, r4 @@ -11718,7 +11771,7 @@ hynix_get_read_retry_default: mov ip, #55 add r5, r5, #144 sub r3, r5, #1 -.L1973: +.L1980: str ip, [r7, #2056] ldrb r0, [r2, #1]! @ zero_extendqisi2 str r1, [sp, #16] @@ -11728,7 +11781,7 @@ hynix_get_read_retry_default: str ip, [sp, #8] str r2, [sp, #4] str r2, [sp, #20] - bl timer_delay_ns + bl ndelay ldr r0, [r7, #2048] ldr r2, [sp, #4] ldr r3, [sp, #12] @@ -11736,24 +11789,24 @@ hynix_get_read_retry_default: ldr ip, [sp, #8] ldr r1, [sp, #16] strb r0, [r3, #1]! - bne .L1973 + bne .L1980 mov ip, r5 mov r0, #0 -.L1974: +.L1981: add r7, r1, r0 mov r3, #1 -.L1975: +.L1982: ldrb lr, [r7, r3, asl #2] @ zero_extendqisi2 ldrb r10, [ip] @ zero_extendqisi2 add lr, lr, r10 strb lr, [ip, r3, asl #3] add r3, r3, #1 cmp r3, #7 - bne .L1975 + bne .L1982 add r0, r0, #1 add ip, ip, #1 cmp r0, #4 - bne .L1974 + bne .L1981 mov r3, #0 add r9, r9, #1 strb r3, [r5, #16] @@ -11763,11 +11816,11 @@ hynix_get_read_retry_default: strb r3, [r5, #48] strb r3, [r5, #41] strb r3, [r5, #49] - b .L1971 -.L2062: + b .L1978 +.L2069: sub r3, r5, #3 cmp r3, #5 - bhi .L1978 + bhi .L1985 smulbb r2, fp, r6 mov r3, r2, asl #4 mov r2, r2, asr #1 @@ -11775,25 +11828,25 @@ hynix_get_read_retry_default: mov r3, r2, asl #1 str r3, [sp, #8] mov r3, #0 -.L2070: +.L2077: str r3, [sp, #12] - ldr r3, .L2072 - ldrb r2, [r3, #1101] @ zero_extendqisi2 + ldr r3, .L2079 + ldrb r2, [r3, #1109] @ zero_extendqisi2 ldrb r3, [sp, #12] @ zero_extendqisi2 cmp r2, r3 - bhi .L2022 -.L1978: + bhi .L2029 +.L1985: strb fp, [r4, #113] strb r6, [r4, #114] add sp, sp, #36 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2022: - ldr r2, .L2072 +.L2029: + ldr r2, .L2079 mov r10, #160 mov r9, #255 add r3, r2, r3 - ldrb r3, [r3, #1180] @ zero_extendqisi2 + ldrb r3, [r3, #1144] @ zero_extendqisi2 mov r0, r3 str r3, [sp] bl zftl_flash_exit_slc_mode @@ -11801,8 +11854,8 @@ hynix_get_read_retry_default: mla r10, r10, r3, r4 add r3, r10, #144 str r3, [sp, #24] - ldr r3, .L2072 - ldr r3, [r3, #1040] + ldr r3, .L2079 + ldr r3, [r3, #1044] str r3, [sp, #4] ldr r3, [sp] mov r8, r3, asl #8 @@ -11811,7 +11864,7 @@ hynix_get_read_retry_default: str r9, [r7, #2056] bl nandc_wait_flash_ready cmp r5, #8 - bne .L1980 + bne .L1987 add r3, r4, #144 mov r2, #23 mov r1, #25 @@ -11835,8 +11888,8 @@ hynix_get_read_retry_default: str r1, [r7, #2052] str r2, [r7, #2052] str r3, [r7, #2052] - b .L1981 -.L1980: + b .L1988 +.L1987: cmp r5, #4 mov r3, #54 str r3, [r7, #2056] @@ -11844,27 +11897,27 @@ hynix_get_read_retry_default: streq r9, [r7, #2052] streq r3, [r7, #2048] moveq r3, #204 - beq .L2067 -.L1982: + beq .L2074 +.L1989: sub r3, r5, #5 cmp r3, #1 ldrlsb r3, [r4, #128] @ zero_extendqisi2 strls r3, [r7, #2052] movls r3, #82 - bls .L2068 + bls .L2075 cmp r5, #7 - bne .L1983 + bne .L1990 mov r3, #174 str r3, [r7, #2052] mov r3, #0 str r3, [r7, #2048] mov r3, #176 -.L2067: +.L2074: str r3, [r7, #2052] mov r3, #77 -.L2068: +.L2075: str r3, [r7, #2048] -.L1983: +.L1990: ldr r3, [sp, #4] cmp r5, #6 add r8, r3, r8 @@ -11886,7 +11939,7 @@ hynix_get_read_retry_default: str r3, [r8, #2052] mov r3, #0 str r3, [r8, #2052] -.L1981: +.L1988: ldmia sp, {r2, r3} sub r10, r5, #8 sub r8, r5, #5 @@ -11902,134 +11955,134 @@ hynix_get_read_retry_default: str r3, [sp, #16] orrs r3, r3, r10 movne ip, #16 - bne .L1987 + bne .L1994 cmp r5, #7 movne ip, #2 moveq ip, #32 -.L1987: - ldr r3, .L2072+12 +.L1994: + ldr r3, .L2079+12 ldmia sp, {r1, r2} - ldr r3, [r3, #-128] + ldr r3, [r3, #-112] add r1, r2, r1, asl #8 mov r0, r3 -.L1988: +.L1995: ldr r2, [r1, #2048] strb r2, [r0], #1 rsb r2, r3, r0 uxtb r2, r2 cmp r2, ip - bcc .L1988 + bcc .L1995 cmp r10, #0 - beq .L1989 + beq .L1996 mov r2, #0 -.L1991: +.L1998: ldrb ip, [r3, r2, asl #2] @ zero_extendqisi2 uxtb r0, r2 cmp ip, #50 - beq .L1990 + beq .L1997 add ip, r3, r2, asl #2 ldrb ip, [ip, #1] @ zero_extendqisi2 cmp ip, #5 - beq .L1990 + beq .L1997 add r2, r2, #1 cmp r2, #8 - bne .L1991 - b .L1992 -.L1990: + bne .L1998 + b .L1999 +.L1997: cmp r0, #7 - bne .L1993 -.L1992: - ldr r0, .L2072+16 + bne .L2000 +.L1999: + ldr r0, .L2079+16 mov r1, #0 bl printk -.L1994: - b .L1994 -.L1989: +.L2001: + b .L2001 +.L1996: cmp r5, #7 - bne .L1995 + bne .L2002 mov r2, r10 -.L1997: +.L2004: ldrb ip, [r3, r2, asl #2] @ zero_extendqisi2 uxtb r0, r2 cmp ip, #12 - beq .L1996 + beq .L2003 add ip, r3, r2, asl #2 ldrb ip, [ip, #1] @ zero_extendqisi2 cmp ip, #10 - beq .L1996 + beq .L2003 add r2, r2, #1 cmp r2, #8 - bne .L1997 - b .L1998 -.L1996: + bne .L2004 + b .L2005 +.L2003: cmp r0, #7 - bne .L1993 -.L1998: - ldr r0, .L2072+16 + bne .L2000 +.L2005: + ldr r0, .L2079+16 mov r1, #0 bl printk -.L1999: - b .L1999 -.L1995: +.L2006: + b .L2006 +.L2002: cmp r5, #6 - bne .L1993 + bne .L2000 sub r2, r3, #1 add r3, r3, #7 -.L2000: +.L2007: ldrb r0, [r2, #1]! @ zero_extendqisi2 cmp r0, #12 - beq .L1993 + beq .L2000 ldrb r0, [r2, #8] @ zero_extendqisi2 cmp r0, #4 - beq .L1993 + beq .L2000 cmp r2, r3 - bne .L2000 - ldr r0, .L2072+16 + bne .L2007 + ldr r0, .L2079+16 mov r1, #0 bl printk -.L2002: - b .L2002 -.L1993: - ldr r3, .L2072+12 +.L2009: + b .L2009 +.L2000: + ldr r3, .L2079+12 ldr r0, [sp, #28] - ldr r2, [r3, #-128] + ldr r2, [r3, #-112] add r0, r2, r0 mov r3, r2 -.L2003: +.L2010: cmp r3, r0 ldrne ip, [r1, #2048] strneb ip, [r3], #1 - bne .L2003 -.L2071: - ldr r3, .L2072+12 + bne .L2010 +.L2078: + ldr r3, .L2079+12 mov r0, #8 ldr r1, [sp, #8] - ldr r3, [r3, #-128] + ldr r3, [r3, #-112] add r1, r3, r1 str r1, [sp, #20] -.L2006: +.L2013: ldr ip, [sp, #8] add lr, r1, ip -.L2005: +.L2012: ldrh ip, [r1] mvn ip, ip strh ip, [r1], #2 @ movhi cmp r1, lr - bne .L2005 + bne .L2012 ldr ip, [sp, #8] subs r0, r0, #1 add r1, r1, ip - bne .L2006 -.L2007: + bne .L2013 +.L2014: mov ip, #0 mov r0, ip -.L2010: +.L2017: mov r1, #1 mov lr, #0 mov r1, r1, asl r0 mov r8, #16 mov r7, lr -.L2008: +.L2015: ldrh r9, [r3, lr] and r9, r9, r1 cmp r9, r1 @@ -12037,70 +12090,70 @@ hynix_get_read_retry_default: ldr r9, [sp, #8] subs r8, r8, #1 add lr, lr, r9 - bne .L2008 + bne .L2015 cmp r7, #8 add r0, r0, #1 orrhi ip, ip, r1 uxthhi ip, ip cmp r0, #16 - bne .L2010 + bne .L2017 ldr r1, [sp, #20] strh ip, [r3], #2 @ movhi cmp r3, r1 - bne .L2007 - ldr r3, .L2072+12 - ldr r1, [r3, #-128] + bne .L2014 + ldr r3, .L2079+12 + ldr r1, [r3, #-112] mov r3, #0 sub r0, r1, #4 add ip, r1, #28 -.L2012: +.L2019: ldr lr, [r0, #4]! cmp lr, #0 addeq r3, r3, #1 cmp r0, ip - bne .L2012 + bne .L2019 cmp r3, #7 - ble .L2013 - ldr r0, .L2072+20 + ble .L2020 + ldr r0, .L2079+20 mov r2, #1 mov r3, #1024 bl rknand_print_hex - ldr r0, .L2072+16 + ldr r0, .L2079+16 mov r1, #0 bl printk -.L2014: - b .L2014 -.L2013: +.L2021: + b .L2021 +.L2020: cmp r5, #6 moveq r0, #4 - beq .L2015 + beq .L2022 cmp r5, #7 moveq r0, #10 - beq .L2015 + beq .L2022 cmp r10, #0 moveq r0, #8 movne r0, #5 -.L2015: +.L2022: sub r9, fp, #1 ldr r1, [sp, #24] mov ip, #0 uxtb r9, r9 add r9, r9, #1 -.L2016: +.L2023: mov r7, r1 mov r3, r2 -.L2017: +.L2024: ldrb lr, [r3], #1 @ zero_extendqisi2 strb lr, [r7], #1 rsb lr, r2, r3 uxtb lr, lr cmp lr, fp - bcc .L2017 + bcc .L2024 add ip, ip, #1 add r2, r2, r9 cmp ip, r6 add r1, r1, r0 - blt .L2016 + blt .L2023 ldmia sp, {r2, r3} mov r8, #255 add r7, r3, r2, asl #8 @@ -12108,7 +12161,7 @@ hynix_get_read_retry_default: bl nandc_wait_flash_ready ldr r3, [sp, #16] cmp r3, #0 - beq .L2019 + beq .L2026 mov r3, #54 str r3, [r7, #2056] ldrb r3, [r4, #128] @ zero_extendqisi2 @@ -12124,20 +12177,20 @@ hynix_get_read_retry_default: str r8, [r7, #2052] str r8, [r7, #2052] str r8, [r7, #2052] - b .L2069 -.L2019: + b .L2076 +.L2026: cmp r10, #0 movne r3, #190 moveq r3, #56 -.L2069: +.L2076: str r3, [r7, #2056] bl nandc_wait_flash_ready ldr r3, [sp, #12] add r3, r3, #1 - b .L2070 -.L2073: + b .L2077 +.L2080: .align 2 -.L2072: +.L2079: .word .LANCHOR0 .word .LANCHOR2 .word .LANCHOR2+396 @@ -12154,15 +12207,15 @@ flash_get_read_retry_tbl: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L2076 + ldr r3, .L2083 ldrb r0, [r3, #23] @ zero_extendqisi2 sub r3, r0, #1 cmp r3, #7 bxhi lr b hynix_get_read_retry_default -.L2077: +.L2084: .align 2 -.L2076: +.L2083: .word .LANCHOR2 .fnend .size flash_get_read_retry_tbl, .-flash_get_read_retry_tbl @@ -12173,18 +12226,18 @@ nandc_xfer_done: .fnstart @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2127 + ldr r3, .L2134 stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, lr} .save {r4, r5, r6, r7, lr} .pad #12 mov r5, #0 ldrb r2, [r3, #1028] @ zero_extendqisi2 mov r4, r3 - ldr r7, .L2127+4 + ldr r7, .L2134+4 cmp r2, #9 - strb r5, [r7, #-124] - bne .L2079 - ldr r6, [r3, #1040] + strb r5, [r7, #-108] + bne .L2086 + ldr r6, [r3, #1044] ldr r3, [r6, #16] str r3, [sp] ldr r3, [r6, #48] @@ -12192,157 +12245,88 @@ nandc_xfer_done: cmp r3, r5 moveq r5, r3 moveq r7, r4 - beq .L2081 -.L2080: + beq .L2088 +.L2087: ldr r2, [r6, #64] ldr r3, [sp] ubfx r2, r2, #16, #6 ubfx r3, r3, #22, #6 cmp r2, r3 - bge .L2083 - ldr r3, [r4, #1040] + bge .L2090 + ldr r3, [r4, #1044] ldr r3, [r3] str r3, [sp, #4] ldr r3, [sp, #4] tst r3, #8192 - beq .L2082 + beq .L2089 ldr r3, [sp, #4] tst r3, #131072 - beq .L2082 + beq .L2089 ldr r1, [sp, #4] - ldr r0, .L2127+8 + ldr r0, .L2134+8 ubfx r1, r1, #17, #1 bl printk - b .L2083 -.L2082: + b .L2090 +.L2089: ldr r3, [sp] add r5, r5, #1 ubfx r3, r3, #22, #6 cmp r5, r3, asl #12 - bne .L2084 + bne .L2091 ldr r2, [r6, #64] mov r1, r5 ldr r3, [sp] - ldr r0, .L2127+12 + ldr r0, .L2134+12 ubfx r2, r2, #16, #5 ubfx r3, r3, #22, #6 bl printk ldr r3, [sp, #4] tst r3, #8192 mov r3, #1 - strb r3, [r7, #-124] - bne .L2083 - ldr r3, .L2127+16 - ldr r0, .L2127+20 + strb r3, [r7, #-108] + bne .L2090 + ldr r3, .L2134+16 + ldr r0, .L2134+20 ldr r3, [r3, #4] blx r3 - b .L2083 -.L2084: + b .L2090 +.L2091: mov r0, #5 mov r1, #10 bl usleep_range - b .L2080 -.L2083: - ldr r3, [r4, #1160] - ldr r5, .L2127 + b .L2087 +.L2090: + ldr r3, [r4, #1224] + ldr r5, .L2134 cmp r3, #0 - beq .L2088 + beq .L2095 ldr r1, [sp] mov r2, #0 - ldr r0, [r5, #1152] + ldr r0, [r5, #1216] ubfx r1, r1, #22, #6 mov r1, r1, asl #10 bl rknand_dma_unmap_single - ldr r0, [r5, #1156] + ldr r0, [r5, #1220] ldr r1, [sp] ubfx r1, r1, #22, #6 mov r1, r1, asl #2 - b .L2126 -.L2090: - ldr r3, [r4, #1040] + b .L2133 +.L2097: + ldr r3, [r4, #1044] add r5, r5, #1 ldr r3, [r3, #16] str r3, [sp] bic r3, r5, #-16777216 cmp r3, #0 - bne .L2089 + bne .L2096 ldr r2, [sp] mov r1, r5 ldr r3, [r6, #64] - ldr r0, .L2127+24 + ldr r0, .L2134+24 ubfx r3, r3, #16, #6 bl printk - ldr r0, .L2127+28 - ldr r1, [r7, #1040] - mov r2, #4 - mov r3, #64 - bl rknand_print_hex -.L2089: - mov r0, #5 - mov r1, #10 - bl usleep_range -.L2081: - ldr r3, [sp] - tst r3, #1048576 - beq .L2090 - ldr r3, [r4, #1160] - ldr r5, .L2127 - cmp r3, #0 - beq .L2088 - ldr r1, [sp] - mov r2, #1 - ldr r0, [r5, #1152] - ubfx r1, r1, #22, #6 - mov r1, r1, asl #10 - bl rknand_dma_unmap_single - ldr r0, [r5, #1156] - ldr r1, [sp] - ubfx r1, r1, #22, #6 - mov r1, r1, asl #2 - b .L2125 -.L2079: - ldr r7, [r3, #1040] - ldr r3, [r7, #8] - str r3, [sp] - ldr r6, [r7, #16] - ubfx r6, r6, #1, #1 - cmp r6, #0 - moveq r5, r4 - beq .L2093 -.L2092: - ldr r2, [r7, #28] - ldr r3, [sp] - ubfx r2, r2, #16, #5 - ubfx r3, r3, #22, #6 - cmp r2, r3 - bge .L2095 - ldr r3, [r4, #1040] - ldr r3, [r3] - str r3, [sp, #4] - ldr r3, [sp, #4] - tst r3, #8192 - beq .L2094 - ldr r3, [sp, #4] - tst r3, #131072 - beq .L2094 - ldr r1, [sp, #4] - ldr r0, .L2127+32 - bl printk - b .L2095 -.L2094: - add r5, r5, #1 - bic r3, r5, #-16777216 - cmp r3, #0 - bne .L2096 - ldr r2, [r7, #28] - mov r1, r5 - ldr r3, [sp] - ubfx r2, r2, #16, #5 - ldr r0, .L2127+12 - ubfx r3, r3, #22, #6 - bl printk - ldr r0, .L2127+28 - ldr r1, [r4, #1040] + ldr r0, .L2134+28 + ldr r1, [r7, #1044] mov r2, #4 mov r3, #64 bl rknand_print_hex @@ -12350,79 +12334,148 @@ nandc_xfer_done: mov r0, #5 mov r1, #10 bl usleep_range - b .L2092 -.L2095: - ldr r3, [r4, #1160] - ldr r5, .L2127 +.L2088: + ldr r3, [sp] + tst r3, #1048576 + beq .L2097 + ldr r3, [r4, #1224] + ldr r5, .L2134 cmp r3, #0 - beq .L2088 + beq .L2095 ldr r1, [sp] - mov r2, #0 - ldr r0, [r5, #1152] + mov r2, #1 + ldr r0, [r5, #1216] ubfx r1, r1, #22, #6 mov r1, r1, asl #10 bl rknand_dma_unmap_single - ldr r0, [r5, #1156] + ldr r0, [r5, #1220] + ldr r1, [sp] + ubfx r1, r1, #22, #6 + mov r1, r1, asl #2 + b .L2132 +.L2086: + ldr r7, [r3, #1044] + ldr r3, [r7, #8] + str r3, [sp] + ldr r6, [r7, #16] + ubfx r6, r6, #1, #1 + cmp r6, #0 + moveq r5, r4 + beq .L2100 +.L2099: + ldr r2, [r7, #28] + ldr r3, [sp] + ubfx r2, r2, #16, #5 + ubfx r3, r3, #22, #6 + cmp r2, r3 + bge .L2102 + ldr r3, [r4, #1044] + ldr r3, [r3] + str r3, [sp, #4] + ldr r3, [sp, #4] + tst r3, #8192 + beq .L2101 + ldr r3, [sp, #4] + tst r3, #131072 + beq .L2101 + ldr r1, [sp, #4] + ldr r0, .L2134+32 + bl printk + b .L2102 +.L2101: + add r5, r5, #1 + bic r3, r5, #-16777216 + cmp r3, #0 + bne .L2103 + ldr r2, [r7, #28] + mov r1, r5 + ldr r3, [sp] + ubfx r2, r2, #16, #5 + ldr r0, .L2134+12 + ubfx r3, r3, #22, #6 + bl printk + ldr r0, .L2134+28 + ldr r1, [r4, #1044] + mov r2, #4 + mov r3, #64 + bl rknand_print_hex +.L2103: + mov r0, #5 + mov r1, #10 + bl usleep_range + b .L2099 +.L2102: + ldr r3, [r4, #1224] + ldr r5, .L2134 + cmp r3, #0 + beq .L2095 + ldr r1, [sp] + mov r2, #0 + ldr r0, [r5, #1216] + ubfx r1, r1, #22, #6 + mov r1, r1, asl #10 + bl rknand_dma_unmap_single + ldr r0, [r5, #1220] ldr r1, [sp] ubfx r1, r1, #22, #6 mov r1, r1, asl #7 -.L2126: +.L2133: mov r2, #0 - b .L2124 -.L2099: - ldr r3, [r4, #1040] + b .L2131 +.L2106: + ldr r3, [r4, #1044] add r6, r6, #1 ldr r3, [r3, #8] str r3, [sp] bic r3, r6, #-16777216 cmp r3, #0 - bne .L2098 + bne .L2105 ldr r2, [sp] mov r1, r6 ldr r3, [r7, #28] - ldr r0, .L2127+24 + ldr r0, .L2134+24 ubfx r3, r3, #16, #5 bl printk - ldr r0, .L2127+28 - ldr r1, [r5, #1040] + ldr r0, .L2134+28 + ldr r1, [r5, #1044] mov r2, #4 mov r3, #64 bl rknand_print_hex -.L2098: +.L2105: mov r0, #5 mov r1, #10 bl usleep_range -.L2093: +.L2100: ldr r3, [sp] tst r3, #1048576 - beq .L2099 - ldr r3, [r4, #1160] - ldr r5, .L2127 + beq .L2106 + ldr r3, [r4, #1224] + ldr r5, .L2134 cmp r3, #0 - beq .L2088 + beq .L2095 ldr r1, [sp] mov r2, #1 - ldr r0, [r5, #1152] + ldr r0, [r5, #1216] ubfx r1, r1, #22, #6 mov r1, r1, asl #10 bl rknand_dma_unmap_single - ldr r0, [r5, #1156] + ldr r0, [r5, #1220] ldr r1, [sp] ubfx r1, r1, #22, #6 mov r1, r1, asl #7 -.L2125: +.L2132: mov r2, #1 -.L2124: +.L2131: bl rknand_dma_unmap_single -.L2088: +.L2095: mov r3, #0 - str r3, [r4, #1160] + str r3, [r4, #1224] add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, pc} -.L2128: +.L2135: .align 2 -.L2127: +.L2134: .word .LANCHOR0 .word .LANCHOR3 .word .LC143 @@ -12457,19 +12510,19 @@ nandc_xfer: bl nandc_xfer_done cmp r4, #0 movne r0, #0 - bne .L2159 - ldr r5, .L2172 + bne .L2166 + ldr r5, .L2179 ldrb r3, [r5, #1028] @ zero_extendqisi2 cmp r3, #9 - bne .L2131 - ldr ip, [r5, #1040] + bne .L2138 + ldr ip, [r5, #1044] mov r2, r8, lsr #2 mov r1, #1 mov lr, r4 mov r0, r4 -.L2132: +.L2139: cmp lr, r2 - bcs .L2169 + bcs .L2176 add r3, lr, #84 ldr r3, [ip, r3, asl #2] str r3, [sp, #4] @@ -12480,10 +12533,10 @@ nandc_xfer: ldr r3, [sp, #4] and r1, r1, r4 tst r3, #4 - bne .L2151 + bne .L2158 ldr r3, [sp, #4] tst r3, #262144 - bne .L2151 + bne .L2158 ldr r4, [sp, #4] ldr r3, [sp, #4] ubfx r4, r4, #3, #7 @@ -12494,55 +12547,55 @@ nandc_xfer: ubfxle r3, r3, #19, #7 cmp r0, r3 movcc r0, r3 - b .L2133 -.L2151: + b .L2140 +.L2158: mvn r0, #0 -.L2133: +.L2140: add lr, lr, #1 - b .L2132 -.L2169: - ldr r3, [r5, #1040] + b .L2139 +.L2176: + ldr r3, [r5, #1044] cmp r1, #0 movne r0, #512 ldr r4, [r3] and r3, r4, #139264 cmp r3, #139264 - bne .L2138 + bne .L2145 mov r1, r4 - ldr r0, .L2172+4 + ldr r0, .L2179+4 bl printk - ldr r3, [r5, #1040] + ldr r3, [r5, #1044] mvn r0, #0 orr r4, r4, #131072 str r4, [r3] -.L2138: +.L2145: tst r4, #8192 - beq .L2139 - ldr r3, .L2172+8 - ldrb r3, [r3, #-124] @ zero_extendqisi2 + beq .L2146 + ldr r3, .L2179+8 + ldrb r3, [r3, #-108] @ zero_extendqisi2 cmp r3, #0 - beq .L2139 - ldr r0, .L2172+12 + beq .L2146 + ldr r0, .L2179+12 mov r1, r4 bl printk - ldr r3, [r5, #1040] + ldr r3, [r5, #1044] mov r2, #1 str r2, [r3, #16] - b .L2140 -.L2131: - ldrb r3, [r5, #1172] @ zero_extendqisi2 + b .L2147 +.L2138: + ldrb r3, [r5, #1197] @ zero_extendqisi2 mov r1, r8, lsr #1 mov r2, r4 cmp r3, #25 mov r3, r7 movcc ip, #64 movcs ip, #128 -.L2142: +.L2149: cmp r2, r1 add r0, r4, ip add r3, r3, #4 - bcs .L2170 - ldr lr, [r5, #1140] + bcs .L2177 + ldr lr, [r5, #1204] mov r4, r4, lsr #2 add r2, r2, #1 ldr r4, [lr, r4, asl #2] @@ -12554,24 +12607,24 @@ nandc_xfer: strb lr, [r3, #-2] strb r4, [r3, #-1] mov r4, r0 - b .L2142 -.L2170: - ldr ip, [r5, #1040] + b .L2149 +.L2177: + ldr ip, [r5, #1044] mov r1, #0 mov r2, r8, lsr #2 mov r0, r1 -.L2144: +.L2151: cmp r1, r2 - bcs .L2171 + bcs .L2178 add r3, r1, #8 ldr r3, [ip, r3, asl #2] str r3, [sp, #4] ldr r3, [sp, #4] tst r3, #4 - bne .L2154 + bne .L2161 ldr r3, [sp, #4] tst r3, #32768 - bne .L2154 + bne .L2161 ldr lr, [sp, #4] ldr r8, [sp, #4] ldr r3, [sp, #4] @@ -12593,50 +12646,50 @@ nandc_xfer: orr r4, r3, r4, asl #5 cmp r0, r4 movcc r0, r4 - b .L2145 -.L2154: + b .L2152 +.L2161: mvn r0, #0 -.L2145: +.L2152: add r1, r1, #1 - b .L2144 -.L2171: - ldr r3, [r5, #1040] + b .L2151 +.L2178: + ldr r3, [r5, #1044] mov r2, #0 str r2, [r3, #16] ldr r4, [r3] and r3, r4, #139264 cmp r3, #139264 - bne .L2139 + bne .L2146 mov r1, r4 - ldr r0, .L2172+16 + ldr r0, .L2179+16 bl printk - ldr r3, .L2172 + ldr r3, .L2179 orr r4, r4, #131072 - ldr r3, [r3, #1040] + ldr r3, [r3, #1044] str r4, [r3] - b .L2140 -.L2139: + b .L2147 +.L2146: cmn r0, #1 - beq .L2159 + beq .L2166 ldr r3, [r7] cmn r3, #1 - bne .L2159 + bne .L2166 ldr r3, [r7, #4] cmn r3, #1 - bne .L2159 + bne .L2166 ldr r3, [r6] cmn r3, #1 moveq r0, #512 - b .L2159 -.L2140: + b .L2166 +.L2147: mvn r0, #0 -.L2159: +.L2166: add sp, sp, #8 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L2173: +.L2180: .align 2 -.L2172: +.L2179: .word .LANCHOR0 .word .LC148 .word .LANCHOR3 @@ -12654,16 +12707,16 @@ flash_read_page: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r6, r0 - ldr r10, .L2190 + ldr r10, .L2197 .pad #20 sub sp, sp, #20 mvn r4, #0 ubfx r9, r1, #24, #2 str r2, [sp, #12] mov r8, r3 - ldrb r0, [r10, #1189] @ zero_extendqisi2 + ldrb r0, [r10, #1153] @ zero_extendqisi2 mov r7, r10 - ldr r5, [r10, #1040] + ldr r5, [r10, #1044] mov r10, r6, asl #8 rsb r0, r0, #24 bic r4, r1, r4, asl r0 @@ -12671,37 +12724,37 @@ flash_read_page: mov r0, r6 bl nandc_cs cmp r9, #0 - bne .L2175 + bne .L2182 mov r0, r6 bl zftl_flash_enter_slc_mode - b .L2176 -.L2175: - ldr r2, [r7, #1096] + b .L2183 +.L2182: + ldr r2, [r7, #1104] ldrb r2, [r2, #12] @ zero_extendqisi2 cmp r2, #3 - bne .L2177 - ldrb r2, [r7, #1196] @ zero_extendqisi2 + bne .L2184 + ldrb r2, [r7, #1160] @ zero_extendqisi2 cmp r2, #0 - bne .L2177 - ldrb r2, [r7, #1197] @ zero_extendqisi2 + bne .L2184 + ldrb r2, [r7, #1161] @ zero_extendqisi2 cmp r2, #0 addeq r2, r5, r10 streq r9, [r2, #2056] - beq .L2176 -.L2177: + beq .L2183 +.L2184: mov r0, r6 bl zftl_flash_exit_slc_mode -.L2176: - ldr r2, [r7, #1096] +.L2183: + ldr r2, [r7, #1104] ldrb r1, [r2, #7] @ zero_extendqisi2 cmp r1, #1 - bne .L2178 + bne .L2185 ldrb r1, [r2, #12] @ zero_extendqisi2 cmp r1, #2 addeq r1, r5, r10 moveq r0, #38 streq r0, [r1, #2056] -.L2178: +.L2185: add fp, r5, r10 mov r1, #0 mov r0, #48 @@ -12714,7 +12767,7 @@ flash_read_page: str r1, [fp, #2052] mov r1, r4, lsr #16 str r1, [fp, #2052] - ldrb r1, [r7, #1188] @ zero_extendqisi2 + ldrb r1, [r7, #1152] @ zero_extendqisi2 cmp r1, #0 movne r1, r4, lsr #24 strne r1, [fp, #2052] @@ -12726,20 +12779,20 @@ flash_read_page: cmp r1, #3 movne r2, #0 cmp r2, #0 - beq .L2180 - ldrb r3, [r7, #1196] @ zero_extendqisi2 + beq .L2187 + ldrb r3, [r7, #1160] @ zero_extendqisi2 cmp r3, #0 - bne .L2180 - ldr r3, .L2190 - ldrb r3, [r3, #1197] @ zero_extendqisi2 + bne .L2187 + ldr r3, .L2197 + ldrb r3, [r3, #1161] @ zero_extendqisi2 cmp r3, #0 addeq r4, r4, r4, asl #1 subeq r0, r4, #1 addeq r0, r0, r9 - beq .L2189 -.L2180: + beq .L2196 +.L2187: mov r0, r4 -.L2189: +.L2196: bl nandc_set_seed mov r4, #0 bl nandc_wait_flash_ready @@ -12763,9 +12816,9 @@ flash_read_page: add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2191: +.L2198: .align 2 -.L2190: +.L2197: .word .LANCHOR0 .fnend .size flash_read_page, .-flash_read_page @@ -12780,21 +12833,21 @@ micron_read_retrial: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #36 sub sp, sp, #36 - ldr r4, .L2220 + ldr r4, .L2227 mov r5, r0 str r3, [sp, #24] mov r9, r1 str r2, [sp, #20] mov r8, #0 - ldrb r3, [r4, #1172] @ zero_extendqisi2 - ldr r10, .L2220+4 + ldrb r3, [r4, #1197] @ zero_extendqisi2 + ldr r10, .L2227+4 add r3, r3, r3, asl #1 mov r3, r3, asr #2 str r3, [sp, #12] bl nandc_wait_flash_ready - ldr r3, [r4, #1040] + ldr r3, [r4, #1044] str r3, [sp, #16] -.L2193: +.L2200: mov r0, r5 mov r7, #0 bl zftl_flash_enter_slc_mode @@ -12803,17 +12856,17 @@ micron_read_retrial: mvn r4, #0 ldr r3, [sp, #16] add r6, r3, r5, asl #8 -.L2194: - ldrb r3, [r10, #-116] @ zero_extendqisi2 +.L2201: + ldrb r3, [r10, #-100] @ zero_extendqisi2 cmp r7, r3 - bcs .L2198 + bcs .L2205 mov r3, #239 mov r0, #200 str r3, [r6, #2056] mov r3, #137 str r3, [r6, #2052] add fp, r7, #1 - bl timer_delay_ns + bl ndelay str fp, [r6, #2048] mov r3, #0 str r3, [r6, #2048] @@ -12826,37 +12879,37 @@ micron_read_retrial: str r3, [sp] ldr r3, [sp, #24] bl flash_read_page - ldr r3, .L2220+8 + ldr r3, .L2227+8 ldr r3, [r3] tst r3, #4096 mov ip, r0 - beq .L2195 + beq .L2202 str r0, [sp] mov r1, r7 str r0, [sp, #28] mov r2, r9 - ldr r0, .L2220+12 + ldr r0, .L2227+12 mov r3, r4 bl printk ldr ip, [sp, #28] -.L2195: +.L2202: cmn ip, #1 - beq .L2196 - ldr r3, [r10, #-128] + beq .L2203 + ldr r3, [r10, #-112] cmn r4, #1 moveq r4, ip str r3, [sp, #20] - ldr r3, [r10, #-120] + ldr r3, [r10, #-104] str r3, [sp, #24] ldr r3, [sp, #12] cmp ip, r3 - bcc .L2205 -.L2196: + bcc .L2212 +.L2203: mov r7, fp - b .L2194 -.L2205: + b .L2201 +.L2212: mov r4, ip -.L2198: +.L2205: ldr r3, [sp, #16] mov r6, r5, asl #8 mov r0, #200 @@ -12865,7 +12918,7 @@ micron_read_retrial: str r3, [fp, #2056] mov r3, #137 str r3, [fp, #2052] - bl timer_delay_ns + bl ndelay mov r3, #0 str r3, [fp, #2048] str r3, [fp, #2048] @@ -12873,10 +12926,10 @@ micron_read_retrial: str r3, [fp, #2048] ldr r3, [sp, #12] cmp r4, r3 - bcc .L2200 + bcc .L2207 cmn r4, #1 movne r4, #256 -.L2200: +.L2207: cmn r4, #1 movne fp, #0 moveq fp, #1 @@ -12884,85 +12937,85 @@ micron_read_retrial: movne r3, fp orreq r3, fp, #1 cmp r3, #0 - beq .L2201 + beq .L2208 mov r3, r7 str r4, [sp] - ldr r0, .L2220+16 + ldr r0, .L2227+16 mov r1, r5 mov r2, r9 eor r7, r8, #1 bl printk ands r7, fp, r7 - beq .L2202 + beq .L2209 bl nandc_wait_flash_ready - ldr r3, .L2220 + ldr r3, .L2227 mov r0, #200 mov r8, #1 - ldr r3, [r3, #1040] + ldr r3, [r3, #1044] add r6, r3, r6 mov r3, #239 str r3, [r6, #2056] mov r3, #150 str r3, [r6, #2052] - bl timer_delay_ns + bl ndelay mov r3, #3 str r3, [r6, #2048] mov r3, #0 str r3, [r6, #2048] str r3, [r6, #2048] str r3, [r6, #2048] - b .L2193 -.L2202: + b .L2200 +.L2209: cmp r8, #0 - beq .L2203 + beq .L2210 bl nandc_wait_flash_ready - ldr r3, .L2220 + ldr r3, .L2227 mov r0, #200 - ldr r9, [r3, #1040] + ldr r9, [r3, #1044] mov r3, #239 add r5, r9, r5, asl #8 add r6, r9, r6 str r3, [r6, #2056] mov r3, #150 str r3, [r5, #2052] - bl timer_delay_ns + bl ndelay cmn r4, #1 str r7, [r5, #2048] movne r4, #256 str r7, [r5, #2048] str r7, [r5, #2048] str r7, [r5, #2048] - b .L2203 -.L2201: + b .L2210 +.L2208: cmp r8, #0 - beq .L2203 + beq .L2210 str r3, [sp, #12] bl nandc_wait_flash_ready - ldr r2, .L2220 + ldr r2, .L2227 mov r0, #200 mov r4, #256 - ldr r9, [r2, #1040] + ldr r9, [r2, #1044] mov r2, #239 add r5, r9, r5, asl #8 add r6, r9, r6 str r2, [r6, #2056] mov r2, #150 str r2, [r5, #2052] - bl timer_delay_ns + bl ndelay ldr r3, [sp, #12] str r3, [r5, #2048] str r3, [r5, #2048] str r3, [r5, #2048] str r3, [r5, #2048] -.L2203: +.L2210: bl nandc_wait_flash_ready mov r0, r4 add sp, sp, #36 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2221: +.L2228: .align 2 -.L2220: +.L2227: .word .LANCHOR0 .word .LANCHOR3 .word .LANCHOR2 @@ -12987,12 +13040,12 @@ toshiba_3d_read_retrial: mov r10, r1 str r2, [sp, #12] bl nandc_wait_flash_ready - ldr r7, .L2270 + ldr r7, .L2277 add r6, r8, #8 - ldr r3, [r7, #1040] + ldr r3, [r7, #1044] add r6, r3, r6, asl #8 str r3, [sp, #8] - ldrb r3, [r7, #1173] @ zero_extendqisi2 + ldrb r3, [r7, #1100] @ zero_extendqisi2 cmp r3, #36 movne r3, #56 moveq r3, #46 @@ -13001,28 +13054,28 @@ toshiba_3d_read_retrial: cmp r4, #0 str r3, [sp, #16] mvn r4, #0 - bne .L2224 + bne .L2231 ldr r3, [sp, #8] mov r9, #1 add r3, r3, r8, asl #8 str r3, [sp, #16] -.L2231: - ldr r3, .L2270 +.L2238: + ldr r3, .L2277 mov r0, r6 - ldrb r3, [r3, #1173] @ zero_extendqisi2 + ldrb r3, [r3, #1100] @ zero_extendqisi2 cmp r3, #36 - bne .L2225 + bne .L2232 mov r2, #0 mov r1, r9 bl toshiba_tlc_set_rr_para mov r3, #93 ldr r2, [sp, #16] str r3, [r2, #2056] - b .L2226 -.L2225: + b .L2233 +.L2232: uxtb r1, r9 bl toshiba_3d_set_slc_rr_para -.L2226: +.L2233: ldr r3, [sp, #64] mov r0, r8 mov r1, r10 @@ -13030,69 +13083,69 @@ toshiba_3d_read_retrial: str r3, [sp] mov r3, fp bl flash_read_page - ldr r3, .L2270+4 + ldr r3, .L2277+4 ldr r3, [r3] tst r3, #16 mov ip, r0 - beq .L2227 + beq .L2234 mov r3, ip - ldr r0, .L2270+8 + ldr r0, .L2277+8 mov r1, r9 mov r2, r10 str ip, [sp, #20] bl printk ldr ip, [sp, #20] -.L2227: +.L2234: cmn ip, #1 - beq .L2228 - ldr r3, .L2270+12 + beq .L2235 + ldr r3, .L2277+12 cmn r4, #1 moveq r4, ip - ldr r2, [r3, #-128] - ldr fp, [r3, #-120] - ldrb r3, [r7, #1172] @ zero_extendqisi2 + ldr r2, [r3, #-112] + ldr fp, [r3, #-104] + ldrb r3, [r7, #1197] @ zero_extendqisi2 str r2, [sp, #12] add r3, r3, r3, asl #1 cmp ip, r3, asr #2 - bcc .L2246 -.L2228: + bcc .L2253 +.L2235: add r9, r9, #1 cmp r9, r5 - bne .L2231 - b .L2230 -.L2246: + bne .L2238 + b .L2237 +.L2253: mov r5, r9 mov r4, ip -.L2230: - ldr r3, .L2270 +.L2237: + ldr r3, .L2277 mov r1, #0 mov r0, r6 - ldrb r3, [r3, #1173] @ zero_extendqisi2 + ldrb r3, [r3, #1100] @ zero_extendqisi2 cmp r3, #36 moveq r2, r1 - beq .L2269 + beq .L2276 bl toshiba_3d_set_slc_rr_para - b .L2233 -.L2224: + b .L2240 +.L2231: ldr r3, [sp, #8] mov r5, #1 add r9, r3, r8, asl #8 -.L2240: - ldr r3, .L2270 +.L2247: + ldr r3, .L2277 mov r0, r6 - ldrb r3, [r3, #1173] @ zero_extendqisi2 + ldrb r3, [r3, #1100] @ zero_extendqisi2 cmp r3, #36 - bne .L2234 + bne .L2241 mov r1, r5 mov r2, #1 bl toshiba_tlc_set_rr_para mov r3, #93 - b .L2268 -.L2234: + b .L2275 +.L2241: uxtb r1, r5 bl toshiba_3d_set_tlc_rr_para mov r3, #38 -.L2268: +.L2275: str r3, [r9, #2056] mov r0, r8 ldr r3, [sp, #64] @@ -13101,57 +13154,57 @@ toshiba_3d_read_retrial: str r3, [sp] mov r3, fp bl flash_read_page - ldr r3, .L2270+4 + ldr r3, .L2277+4 ldr r3, [r3] tst r3, #16 mov ip, r0 - beq .L2236 + beq .L2243 mov r3, ip - ldr r0, .L2270+16 + ldr r0, .L2277+16 mov r1, r5 mov r2, r10 str ip, [sp, #20] bl printk ldr ip, [sp, #20] -.L2236: +.L2243: cmn ip, #1 - beq .L2237 - ldr r3, .L2270+12 + beq .L2244 + ldr r3, .L2277+12 cmn r4, #1 moveq r4, ip - ldr r2, [r3, #-128] - ldr fp, [r3, #-120] - ldrb r3, [r7, #1172] @ zero_extendqisi2 + ldr r2, [r3, #-112] + ldr fp, [r3, #-104] + ldrb r3, [r7, #1197] @ zero_extendqisi2 str r2, [sp, #12] add r3, r3, r3, asl #1 cmp ip, r3, asr #2 - bcc .L2247 -.L2237: + bcc .L2254 +.L2244: ldr r3, [sp, #16] add r5, r5, #1 cmp r5, r3 - bne .L2240 - b .L2239 -.L2247: + bne .L2247 + b .L2246 +.L2254: mov r4, ip -.L2239: - ldr r3, .L2270 +.L2246: + ldr r3, .L2277 mov r0, r6 mov r1, #0 - ldrb r3, [r3, #1173] @ zero_extendqisi2 + ldrb r3, [r3, #1100] @ zero_extendqisi2 cmp r3, #36 - bne .L2241 + bne .L2248 mov r2, #1 -.L2269: +.L2276: bl toshiba_tlc_set_rr_para - b .L2233 -.L2241: + b .L2240 +.L2248: bl toshiba_3d_set_tlc_rr_para -.L2233: - ldr r3, .L2270 - ldrb r3, [r3, #1173] @ zero_extendqisi2 +.L2240: + ldr r3, .L2277 + ldrb r3, [r3, #1100] @ zero_extendqisi2 cmp r3, #36 - bne .L2242 + bne .L2249 ldr r3, [sp, #8] mov r2, #85 add r3, r3, r8, asl #8 @@ -13161,32 +13214,32 @@ toshiba_3d_read_retrial: str r2, [r3, #2048] mov r2, #255 str r2, [r3, #2056] -.L2242: - ldrb r3, [r7, #1172] @ zero_extendqisi2 +.L2249: + ldrb r3, [r7, #1197] @ zero_extendqisi2 add r3, r3, r3, asl #1 cmp r4, r3, asr #2 - bcc .L2243 + bcc .L2250 cmn r4, #1 movne r4, #256 -.L2243: +.L2250: cmn r4, #1 cmpne r4, #256 - bne .L2244 + bne .L2251 str r4, [sp] mov r1, r8 - ldr r0, .L2270+20 + ldr r0, .L2277+20 mov r2, r10 mov r3, r5 bl printk -.L2244: +.L2251: bl nandc_wait_flash_ready mov r0, r4 add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2271: +.L2278: .align 2 -.L2270: +.L2277: .word .LANCHOR0 .word .LANCHOR2 .word .LC153 @@ -13207,7 +13260,7 @@ toshiba_read_retrial: .pad #36 sub sp, sp, #36 mov r5, r0 - ldr r4, .L2305 + ldr r4, .L2312 str r3, [sp, #20] add r9, r5, #8 str r1, [sp, #12] @@ -13217,8 +13270,8 @@ toshiba_read_retrial: bl zftl_flash_enter_slc_mode mov r0, r5 bl zftl_flash_exit_slc_mode - ldrb r3, [r4, #1173] @ zero_extendqisi2 - ldr r7, [r4, #1040] + ldrb r3, [r4, #1100] @ zero_extendqisi2 + ldr r7, [r4, #1044] sub r3, r3, #67 cmp r3, #1 add r9, r7, r9, asl #8 @@ -13226,56 +13279,56 @@ toshiba_read_retrial: str r3, [sp, #24] movls r3, #0 strls r3, [sp, #8] - bls .L2273 - ldrb r6, [r4, #1135] @ zero_extendqisi2 + bls .L2280 + ldrb r6, [r4, #1143] @ zero_extendqisi2 cmp r6, #0 streq r6, [sp, #8] - beq .L2274 + beq .L2281 mov r0, #1 bl nandc_set_if_mode mov r3, #1 str r3, [sp, #8] -.L2274: +.L2281: ldr r3, [sp, #24] mov r2, #92 add r3, r7, r3 str r2, [r3, #2056] mov r2, #197 str r2, [r3, #2056] -.L2273: - ldr fp, .L2305+4 +.L2280: + ldr fp, .L2312+4 mov r8, #1 mvn r10, #0 mov r3, r5, asl #8 str r3, [sp, #28] -.L2275: - ldrb r3, [fp, #-116] @ zero_extendqisi2 +.L2282: + ldrb r3, [fp, #-100] @ zero_extendqisi2 add r3, r3, #1 cmp r8, r3 - bcs .L2304 - ldrb r3, [r4, #1173] @ zero_extendqisi2 + bcs .L2311 + ldrb r3, [r4, #1100] @ zero_extendqisi2 mov r0, r9 uxtb r1, r8 sub r3, r3, #67 cmp r3, #1 - bhi .L2276 + bhi .L2283 bl sandisk_set_rr_para - b .L2277 -.L2276: + b .L2284 +.L2283: bl toshiba_set_rr_para -.L2277: - ldrb r3, [r4, #1173] @ zero_extendqisi2 +.L2284: + ldrb r3, [r4, #1100] @ zero_extendqisi2 cmp r3, #34 - bne .L2278 - ldr r3, .L2305+4 - ldrb r3, [r3, #-116] @ zero_extendqisi2 + bne .L2285 + ldr r3, .L2312+4 + ldrb r3, [r3, #-100] @ zero_extendqisi2 sub r3, r3, #3 cmp r8, r3 ldreq r3, [sp, #28] moveq r2, #179 addeq r3, r7, r3 streq r2, [r3, #2056] -.L2278: +.L2285: ldr r3, [sp, #24] mov r2, #38 add r1, sp, #12 @@ -13290,68 +13343,68 @@ toshiba_read_retrial: bl flash_read_page cmn r0, #1 mov r6, r0 - beq .L2281 - ldr r3, [fp, #-128] + beq .L2288 + ldr r3, [fp, #-112] cmn r10, #1 moveq r10, r0 str r3, [sp, #16] - ldr r3, [fp, #-120] + ldr r3, [fp, #-104] str r3, [sp, #20] - ldrb r3, [r4, #1172] @ zero_extendqisi2 + ldrb r3, [r4, #1197] @ zero_extendqisi2 add r3, r3, r3, asl #1 cmp r0, r3, asr #2 - bcc .L2283 -.L2281: + bcc .L2290 +.L2288: add r8, r8, #1 - b .L2275 -.L2304: + b .L2282 +.L2311: mov r6, r10 -.L2283: - ldrb r3, [r4, #1173] @ zero_extendqisi2 +.L2290: + ldrb r3, [r4, #1100] @ zero_extendqisi2 mov r0, r9 mov r1, #0 sub r3, r3, #67 cmp r3, #1 - bhi .L2285 + bhi .L2292 bl sandisk_set_rr_para - b .L2286 -.L2285: + b .L2293 +.L2292: bl toshiba_set_rr_para -.L2286: +.L2293: add r5, r7, r5, asl #8 mov r3, #255 str r3, [r5, #2056] - ldrb r3, [r4, #1172] @ zero_extendqisi2 + ldrb r3, [r4, #1197] @ zero_extendqisi2 add r3, r3, r3, asl #1 cmp r6, r3, asr #2 - bcc .L2287 + bcc .L2294 cmn r6, #1 movne r6, #256 -.L2287: +.L2294: cmn r6, #1 cmpne r6, #256 - bne .L2288 + bne .L2295 str r6, [sp] mov r1, r8 - ldr r0, .L2305+8 + ldr r0, .L2312+8 mov r3, r8 ldr r2, [sp, #12] bl printk -.L2288: +.L2295: bl nandc_wait_flash_ready ldr r3, [sp, #8] cmp r3, #0 - beq .L2289 + beq .L2296 mov r0, #4 bl nandc_set_if_mode -.L2289: +.L2296: mov r0, r6 add sp, sp, #36 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2306: +.L2313: .align 2 -.L2305: +.L2312: .word .LANCHOR0 .word .LANCHOR3 .word .LC155 @@ -13369,7 +13422,7 @@ ymtc_3d_read_retrial: mov r8, r0 .pad #20 sub sp, sp, #20 - ldr r6, .L2337 + ldr r6, .L2344 mov r9, r1 mov fp, r3 mov r10, r2 @@ -13379,14 +13432,14 @@ ymtc_3d_read_retrial: bl zftl_flash_enter_slc_mode mov r0, r8 bl zftl_flash_exit_slc_mode - ldr r3, [r6, #1040] + ldr r3, [r6, #1044] tst r9, #50331648 mvn r4, #0 add r7, r3, r7, asl #8 mov r5, #1 - ldr ip, .L2337+4 - bne .L2317 -.L2312: + ldr ip, .L2344+4 + bne .L2324 +.L2319: mov r0, r7 uxtb r1, r5 str ip, [sp, #12] @@ -13400,41 +13453,41 @@ ymtc_3d_read_retrial: bl flash_read_page cmn r0, #1 ldr ip, [sp, #12] - beq .L2309 - ldrb r3, [r6, #1172] @ zero_extendqisi2 + beq .L2316 + ldrb r3, [r6, #1197] @ zero_extendqisi2 cmn r4, #1 - ldr r10, [ip, #-128] + ldr r10, [ip, #-112] moveq r4, r0 - ldr fp, [ip, #-120] + ldr fp, [ip, #-104] add r3, r3, r3, asl #1 cmp r0, r3, asr #2 - bcc .L2320 -.L2309: + bcc .L2327 +.L2316: add r5, r5, #1 cmp r5, #10 - bne .L2312 - b .L2311 -.L2320: + bne .L2319 + b .L2318 +.L2327: mov r4, r0 -.L2311: +.L2318: mov r0, r7 mov r1, #0 bl ymtc_3d_set_slc_rr_para - b .L2313 -.L2336: - ldrb r3, [r6, #1172] @ zero_extendqisi2 + b .L2320 +.L2343: + ldrb r3, [r6, #1197] @ zero_extendqisi2 cmn r4, #1 - ldr r10, [ip, #-128] + ldr r10, [ip, #-112] moveq r4, r0 - ldr fp, [ip, #-120] + ldr fp, [ip, #-104] add r3, r3, r3, asl #1 cmp r0, r3, asr #2 - bcc .L2321 -.L2314: + bcc .L2328 +.L2321: add r5, r5, #1 cmp r5, #51 - beq .L2316 -.L2317: + beq .L2323 +.L2324: mov r0, r7 uxtb r1, r5 str ip, [sp, #12] @@ -13448,40 +13501,40 @@ ymtc_3d_read_retrial: bl flash_read_page cmn r0, #1 ldr ip, [sp, #12] - bne .L2336 - b .L2314 -.L2321: + bne .L2343 + b .L2321 +.L2328: mov r4, r0 -.L2316: +.L2323: mov r0, r7 mov r1, #0 bl ymtc_3d_set_tlc_rr_para -.L2313: - ldrb r3, [r6, #1172] @ zero_extendqisi2 +.L2320: + ldrb r3, [r6, #1197] @ zero_extendqisi2 add r3, r3, r3, asl #1 cmp r4, r3, asr #2 - bcc .L2318 + bcc .L2325 cmn r4, #1 movne r4, #256 -.L2318: +.L2325: cmn r4, #1 cmpne r4, #256 - bne .L2319 + bne .L2326 str r4, [sp] mov r1, r5 - ldr r0, .L2337+8 + ldr r0, .L2344+8 mov r2, r9 mov r3, r5 bl printk -.L2319: +.L2326: bl nandc_wait_flash_ready mov r0, r4 add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2338: +.L2345: .align 2 -.L2337: +.L2344: .word .LANCHOR0 .word .LANCHOR3 .word .LC156 @@ -13507,21 +13560,21 @@ samsung_read_retrial: bl zftl_flash_enter_slc_mode mov r0, r7 bl zftl_flash_exit_slc_mode - ldr r3, .L2377 + ldr r3, .L2384 tst r8, #50331648 - ldr r4, [r3, #1040] + ldr r4, [r3, #1044] str r3, [sp, #16] - bne .L2340 + bne .L2347 mov r10, r7, asl #8 mvn r5, #0 add r9, r4, r10 mov r6, #1 mov fp, #239 -.L2345: +.L2352: str fp, [r9, #2056] mov r3, #141 str r3, [r9, #2052] - ldr r3, .L2377+4 + ldr r3, .L2384+4 ldrsb r3, [r6, r3] str r3, [r9, #2048] mov r3, #0 @@ -13536,55 +13589,55 @@ samsung_read_retrial: str r3, [sp] ldr r3, [sp, #12] bl flash_read_page - ldr r3, .L2377+8 + ldr r3, .L2384+8 ldr r3, [r3] tst r3, #16 mov ip, r0 - beq .L2341 + beq .L2348 mov r3, ip - ldr r0, .L2377+12 + ldr r0, .L2384+12 mov r1, r6 mov r2, r8 str ip, [sp, #20] bl printk ldr ip, [sp, #20] -.L2341: +.L2348: cmn ip, #1 - beq .L2342 - ldr r3, .L2377+16 + beq .L2349 + ldr r3, .L2384+16 cmn r5, #1 moveq r5, ip - ldr r2, [r3, #-128] - ldr r3, [r3, #-120] + ldr r2, [r3, #-112] + ldr r3, [r3, #-104] str r2, [sp, #8] str r3, [sp, #12] ldr r3, [sp, #16] - ldrb r3, [r3, #1172] @ zero_extendqisi2 + ldrb r3, [r3, #1197] @ zero_extendqisi2 add r3, r3, r3, asl #1 cmp ip, r3, asr #2 - bcc .L2354 -.L2342: + bcc .L2361 +.L2349: add r6, r6, #1 cmp r6, #26 - bne .L2345 - b .L2344 -.L2354: + bne .L2352 + b .L2351 +.L2361: mov r5, ip -.L2344: +.L2351: add r10, r4, r10 mov r3, #239 add r4, r4, r7, asl #8 str r3, [r10, #2056] mov r3, #141 - b .L2376 -.L2340: + b .L2383 +.L2347: mov r3, r7, asl #8 - ldr r9, .L2377+20 + ldr r9, .L2384+20 add r10, r4, r3 mvn r5, #0 mov r6, #1 str r3, [sp, #20] -.L2351: +.L2358: mov r3, #239 str r3, [r10, #2056] mov r3, #137 @@ -13605,47 +13658,47 @@ samsung_read_retrial: str r3, [sp] ldr r3, [sp, #12] bl flash_read_page - ldr r3, .L2377+8 + ldr r3, .L2384+8 ldr r3, [r3] tst r3, #16 mov fp, r0 - beq .L2347 - ldr r0, .L2377+24 + beq .L2354 + ldr r0, .L2384+24 mov r1, r6 mov r2, r8 mov r3, fp bl printk -.L2347: +.L2354: cmn fp, #1 - beq .L2348 - ldr r3, .L2377+16 + beq .L2355 + ldr r3, .L2384+16 cmn r5, #1 moveq r5, fp - ldr r2, [r3, #-128] - ldr r3, [r3, #-120] + ldr r2, [r3, #-112] + ldr r3, [r3, #-104] str r2, [sp, #8] str r3, [sp, #12] ldr r3, [sp, #16] - ldrb r3, [r3, #1172] @ zero_extendqisi2 + ldrb r3, [r3, #1197] @ zero_extendqisi2 add r3, r3, r3, asl #1 cmp fp, r3, asr #2 - bcc .L2355 -.L2348: + bcc .L2362 +.L2355: add r6, r6, #1 add r9, r9, #4 cmp r6, #26 - bne .L2351 - b .L2350 -.L2355: + bne .L2358 + b .L2357 +.L2362: mov r5, fp -.L2350: +.L2357: ldr r3, [sp, #20] mov r2, #239 add r3, r4, r3 add r4, r4, r7, asl #8 str r2, [r3, #2056] mov r3, #137 -.L2376: +.L2383: str r3, [r4, #2052] mov r3, #0 str r3, [r4, #2048] @@ -13654,37 +13707,37 @@ samsung_read_retrial: str r3, [r4, #2048] bl nandc_wait_flash_ready ldr r3, [sp, #16] - ldrb r3, [r3, #1172] @ zero_extendqisi2 + ldrb r3, [r3, #1197] @ zero_extendqisi2 add r3, r3, r3, asl #1 cmp r5, r3, asr #2 - bcc .L2352 + bcc .L2359 cmn r5, #1 movne r5, #256 -.L2352: +.L2359: cmn r5, #1 cmpne r5, #256 - bne .L2353 + bne .L2360 str r5, [sp] mov r1, r6 - ldr r0, .L2377+28 + ldr r0, .L2384+28 mov r2, r8 mov r3, r6 bl printk -.L2353: +.L2360: bl nandc_wait_flash_ready mov r0, r5 add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2378: +.L2385: .align 2 -.L2377: +.L2384: .word .LANCHOR0 - .word .LANCHOR1+1928 + .word .LANCHOR1+1808 .word .LANCHOR2 .word .LC157 .word .LANCHOR3 - .word .LANCHOR1+1956 + .word .LANCHOR1+1836 .word .LC158 .word .LC159 .fnend @@ -13699,14 +13752,14 @@ hynix_read_retrial: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov fp, r3 - ldr r3, .L2398 + ldr r3, .L2405 .pad #28 sub sp, sp, #28 mov r10, r2 mov r6, r0 mov r8, r1 mov r7, #0 - ldr r2, [r3, #1176] + ldr r2, [r3, #1040] mvn r4, #0 str r3, [sp, #16] add r3, r2, r0 @@ -13718,10 +13771,10 @@ hynix_read_retrial: bl zftl_flash_enter_slc_mode mov r0, r6 bl zftl_flash_exit_slc_mode - ldr ip, .L2398+4 -.L2380: + ldr ip, .L2405+4 +.L2387: cmp r7, r9 - bcs .L2384 + bcs .L2391 add r5, r5, #1 mov r0, r6 str ip, [sp, #20] @@ -13739,50 +13792,50 @@ hynix_read_retrial: bl flash_read_page cmn r0, #1 ldr ip, [sp, #20] - beq .L2382 + beq .L2389 ldr r3, [sp, #16] cmn r4, #1 - ldr r10, [ip, #-128] + ldr r10, [ip, #-112] moveq r4, r0 - ldr fp, [ip, #-120] - ldrb r3, [r3, #1172] @ zero_extendqisi2 + ldr fp, [ip, #-104] + ldrb r3, [r3, #1197] @ zero_extendqisi2 add r3, r3, r3, asl #1 cmp r0, r3, asr #2 - bcc .L2388 -.L2382: + bcc .L2395 +.L2389: add r7, r7, #1 - b .L2380 -.L2388: + b .L2387 +.L2395: mov r4, r0 -.L2384: +.L2391: ldr r3, [sp, #12] strb r5, [r3, #120] ldr r3, [sp, #16] - ldrb r3, [r3, #1172] @ zero_extendqisi2 + ldrb r3, [r3, #1197] @ zero_extendqisi2 add r3, r3, r3, asl #1 cmp r4, r3, asr #2 - bcc .L2386 + bcc .L2393 cmn r4, #1 movne r4, #256 -.L2386: +.L2393: cmn r4, #1 cmpne r4, #256 - bne .L2387 + bne .L2394 str r4, [sp] mov r1, r7 - ldr r0, .L2398+8 + ldr r0, .L2405+8 mov r2, r8 mov r3, r7 bl printk -.L2387: +.L2394: bl nandc_wait_flash_ready mov r0, r4 add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2399: +.L2406: .align 2 -.L2398: +.L2405: .word .LANCHOR0 .word .LANCHOR3 .word .LC160 @@ -13812,7 +13865,7 @@ flash_ddr_tuning_read: str r0, [sp, #24] str r4, [sp, #20] str r4, [sp, #12] -.L2406: +.L2413: uxtb r0, r7 bl nandc_set_ddr_para mov r0, r8 @@ -13822,92 +13875,92 @@ flash_ddr_tuning_read: str r3, [sp] ldr r3, [sp, #16] bl flash_read_page - ldr r3, .L2427 + ldr r3, .L2434 ldr r3, [r3] tst r3, #16 mov ip, r0 - beq .L2401 + beq .L2408 mov r3, ip - ldr r0, .L2427+4 + ldr r0, .L2434+4 mov r1, r7 mov r2, r10 str ip, [sp, #28] bl printk ldr ip, [sp, #28] -.L2401: +.L2408: add r3, r6, #1 cmp ip, r3 - bhi .L2402 - ldr r3, .L2427+8 - ldr fp, [r3, #-128] - ldr r3, [r3, #-120] + bhi .L2409 + ldr r3, .L2434+8 + ldr fp, [r3, #-112] + ldr r3, [r3, #-104] str r3, [sp, #16] - ldr r3, .L2427+12 - ldrb r3, [r3, #1172] @ zero_extendqisi2 + ldr r3, .L2434+12 + ldrb r3, [r3, #1197] @ zero_extendqisi2 cmp ip, r3, lsr #2 - bcs .L2412 + bcs .L2419 add r5, r5, #1 cmp r5, #7 - bls .L2412 + bls .L2419 rsb r4, r5, r7 mov r6, ip mov r9, #0 - b .L2404 -.L2402: + b .L2411 +.L2409: ldr r3, [sp, #12] cmp r3, r5 - bcs .L2413 + bcs .L2420 cmp r5, #7 rsb r3, r5, r4 str r3, [sp, #20] - bhi .L2405 + bhi .L2412 str r5, [sp, #12] - b .L2413 -.L2412: + b .L2420 +.L2419: mov r4, r7 mov r6, ip mov r9, #0 - b .L2403 -.L2413: + b .L2410 +.L2420: mov r5, #0 -.L2403: +.L2410: add r7, r7, #2 cmp r7, #50 - bne .L2406 -.L2404: + bne .L2413 +.L2411: ldr r2, [sp, #12] ldr r3, [sp, #20] cmp r2, r5 movhi r4, r3 -.L2405: +.L2412: cmp r4, #0 - beq .L2407 - ldr r3, .L2427+12 - ldr r2, .L2427+16 - ldrb r3, [r3, #1172] @ zero_extendqisi2 + beq .L2414 + ldr r3, .L2434+12 + ldr r2, .L2434+16 + ldrb r3, [r3, #1197] @ zero_extendqisi2 umull r2, r3, r3, r2 ubfx r3, r3, #1, #8 cmp r6, r3 - bcs .L2407 - ldr r0, .L2427+20 + bcs .L2414 + ldr r0, .L2434+20 mov r1, r4 bl printk uxtb r0, r4 - b .L2426 -.L2407: + b .L2433 +.L2414: ldrb r0, [sp, #24] @ zero_extendqisi2 -.L2426: +.L2433: bl nandc_set_ddr_para cmn r9, #1 - bne .L2409 - ldr r5, .L2427+12 - ldrb r3, [r5, #1232] @ zero_extendqisi2 + bne .L2416 + ldr r5, .L2434+12 + ldrb r3, [r5, #1196] @ zero_extendqisi2 mov r4, r5 tst r3, #1 - beq .L2409 + beq .L2416 mov r1, r8 mov r2, r10 - ldr r0, .L2427+24 + ldr r0, .L2434+24 bl printk mov r0, r8 bl flash_reset @@ -13918,7 +13971,7 @@ flash_ddr_tuning_read: add r3, r5, r8 mov r0, r8 mov r2, #2 - strb r2, [r3, #1192] + strb r2, [r3, #1156] bl zftl_flash_enter_slc_mode mov r1, r10 mov r2, fp @@ -13930,36 +13983,36 @@ flash_ddr_tuning_read: mov r1, r8 mov r2, r10 mov r6, r0 - ldr r0, .L2427+28 + ldr r0, .L2434+28 mov r3, r6 bl printk - ldrb r3, [r5, #1172] @ zero_extendqisi2 + ldrb r3, [r5, #1197] @ zero_extendqisi2 cmp r6, r3 - bhi .L2414 - ldr r2, .L2427+8 - ldr r3, [r2, #-112] + bhi .L2421 + ldr r2, .L2434+8 + ldr r3, [r2, #-96] add r3, r3, #1 - str r3, [r2, #-112] + str r3, [r2, #-96] cmp r3, #100 movhi r3, #0 - strhib r3, [r5, #1135] - bls .L2410 - b .L2409 -.L2414: + strhib r3, [r5, #1143] + bls .L2417 + b .L2416 +.L2421: mov r6, r9 -.L2410: - ldrb r0, [r4, #1232] @ zero_extendqisi2 +.L2417: + ldrb r0, [r4, #1196] @ zero_extendqisi2 bl flash_set_interface_mode - ldrb r0, [r4, #1232] @ zero_extendqisi2 + ldrb r0, [r4, #1196] @ zero_extendqisi2 bl nandc_set_if_mode -.L2409: +.L2416: mov r0, r6 add sp, sp, #36 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2428: +.L2435: .align 2 -.L2427: +.L2434: .word .LANCHOR2 .word .LC161 .word .LANCHOR3 @@ -13981,63 +14034,63 @@ flash_read_page_en: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 mov r7, r3 - ldr r5, .L2460 + ldr r5, .L2467 mov r10, r0 mov r4, r1 mov r8, r2 ldr r9, [sp, #48] - ldrb r3, [r5, #1101] @ zero_extendqisi2 + ldrb r3, [r5, #1109] @ zero_extendqisi2 cmp r3, r0 - bhi .L2430 - ldr r1, .L2460+4 + bhi .L2437 + ldr r1, .L2467+4 movw r2, #431 - ldr r0, .L2460+8 + ldr r0, .L2467+8 bl printk bl dump_stack -.L2430: +.L2437: add r2, r5, r10 - ldr r3, .L2460 - ldrb r6, [r2, #1180] @ zero_extendqisi2 - ldrb r2, [r5, #1101] @ zero_extendqisi2 + ldr r3, .L2467 + ldrb r6, [r2, #1144] @ zero_extendqisi2 + ldrb r2, [r5, #1109] @ zero_extendqisi2 cmp r10, r2 - bcc .L2431 - ldr r3, .L2460+12 + bcc .L2438 + ldr r3, .L2467+12 ldr r3, [r3] tst r3, #64 - beq .L2459 + beq .L2466 str r2, [sp] mov r1, r6 - ldr r0, .L2460+16 + ldr r0, .L2467+16 mov r2, r10 mov r3, r4 bl printk -.L2459: +.L2466: mvn r0, #0 - b .L2456 -.L2431: + b .L2463 +.L2438: tst r4, #50331648 - bne .L2434 + bne .L2441 ldrb r2, [r3] @ zero_extendqisi2 cmp r2, #0 - beq .L2435 + beq .L2442 ldrb r3, [r3, #1] @ zero_extendqisi2 cmp r3, #0 - beq .L2434 -.L2435: + beq .L2441 +.L2442: ldrh r10, [r5, #2] mov r0, r4 mov r1, r10 bl __aeabi_uidiv ldrb r3, [r5, #1] @ zero_extendqisi2 cmp r3, #0 - ldreq r3, .L2460 + ldreq r3, .L2467 mul r0, r10, r0 rsb r4, r0, r4 mov r4, r4, asl #1 addeq r4, r3, r4 ldreqh r4, [r4, #4] add r4, r4, r0 -.L2434: +.L2441: str r9, [sp] mov r0, r6 mov r1, r4 @@ -14045,31 +14098,31 @@ flash_read_page_en: mov r3, r7 bl flash_read_page cmn r0, #1 - bne .L2456 - ldrb fp, [r5, #1168] @ zero_extendqisi2 - ldr r10, .L2460 + bne .L2463 + ldrb fp, [r5, #1200] @ zero_extendqisi2 + ldr r10, .L2467 cmp fp, #0 - bne .L2438 -.L2441: - ldr r3, .L2460+20 - ldr ip, [r3, #-108] + bne .L2445 +.L2448: + ldr r3, .L2467+20 + ldr ip, [r3, #-92] cmp ip, #0 - bne .L2439 - b .L2440 -.L2438: + bne .L2446 + b .L2447 +.L2445: mov r3, #0 mov r0, r6 - strb r3, [r10, #1168] + strb r3, [r10, #1200] mov r1, r4 str r9, [sp] mov r2, r8 mov r3, r7 bl flash_read_page - strb fp, [r10, #1168] + strb fp, [r10, #1200] cmn r0, #1 - beq .L2441 - b .L2456 -.L2439: + beq .L2448 + b .L2463 +.L2446: str r9, [sp] mov r0, r6 mov r1, r4 @@ -14077,18 +14130,18 @@ flash_read_page_en: mov r3, r7 blx ip cmn r0, #1 - bne .L2456 -.L2440: - ldrb r3, [r5, #1168] @ zero_extendqisi2 + bne .L2463 +.L2447: + ldrb r3, [r5, #1200] @ zero_extendqisi2 mov r1, #0 - ldr r0, .L2460+24 + ldr r0, .L2467+24 mov r2, r4 str r3, [sp] mvn r3, #0 bl printk - ldrb r3, [r5, #1135] @ zero_extendqisi2 + ldrb r3, [r5, #1143] @ zero_extendqisi2 cmp r3, #0 - beq .L2459 + beq .L2466 str r9, [sp, #48] mov r0, r6 mov r1, r4 @@ -14098,15 +14151,15 @@ flash_read_page_en: @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} b flash_ddr_tuning_read -.L2456: +.L2463: add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2461: +.L2468: .align 2 -.L2460: +.L2467: .word .LANCHOR0 - .word .LANCHOR1+2060 + .word .LANCHOR1+1940 .word .LC0 .word .LANCHOR2 .word .LC165 @@ -14124,15 +14177,15 @@ flash_get_last_written_page: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r9, r1 - ldr r6, .L2473 + ldr r6, .L2480 .pad #20 sub sp, sp, #20 - ldr r1, .L2473+4 + ldr r1, .L2480+4 mov r10, r0 mov fp, r2 mov r8, r3 ldrh r7, [r6, #30] - ldrh r4, [r1, #-220] + ldrh r4, [r1, #-216] ldr r1, [sp, #56] sub r4, r4, #1 mul r7, r7, r9 @@ -14142,12 +14195,12 @@ flash_get_last_written_page: bl flash_read_page_en cmp r0, #512 moveq ip, #0 - bne .L2463 -.L2464: + bne .L2470 +.L2471: sxth r3, ip sxth r2, r4 cmp r3, r2 - bgt .L2463 + bgt .L2470 add r3, r3, r2 mov r0, r10 mov r2, fp @@ -14165,25 +14218,25 @@ flash_get_last_written_page: addne ip, r5, #1 uxtheq r4, r5 uxthne ip, ip - b .L2464 -.L2463: + b .L2471 +.L2470: ldr r3, [r6] sxth r4, r4 tst r3, #4096 - beq .L2468 - ldr r0, .L2473+8 + beq .L2475 + ldr r0, .L2480+8 mov r1, r9 mov r2, r4 ldr r3, [r8] bl printk -.L2468: +.L2475: mov r0, r4 add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2474: +.L2481: .align 2 -.L2473: +.L2480: .word .LANCHOR2 .word .LANCHOR3 .word .LC167 @@ -14200,11 +14253,11 @@ flash_get_last_written_page_ext: .save {r4, lr} .pad #8 mov lr, r2 - ldr r2, .L2477 + ldr r2, .L2484 mov r4, r1 - ldr r1, .L2477+4 + ldr r1, .L2484+4 mov ip, r0 - ldrb r2, [r2, #1189] @ zero_extendqisi2 + ldrb r2, [r2, #1153] @ zero_extendqisi2 ldrh r1, [r1, #-12] rsb r2, r2, #24 str r3, [sp] @@ -14219,9 +14272,9 @@ flash_get_last_written_page_ext: add sp, sp, #8 @ sp needed ldmfd sp!, {r4, pc} -.L2478: +.L2485: .align 2 -.L2477: +.L2484: .word .LANCHOR0 .word .LANCHOR3-3120 .fnend @@ -14237,52 +14290,52 @@ flash_ddr_para_scan: .save {r4, r5, r6, r7, r8, r9, lr} .pad #12 mov r8, r0 - ldr r4, .L2486 + ldr r4, .L2493 mov r7, r1 mov r6, #1 - ldr r5, .L2486+4 + ldr r5, .L2493+4 mov r9, #4 - ldrb r0, [r4, #1232] @ zero_extendqisi2 - strb r6, [r4, #1135] + ldrb r0, [r4, #1196] @ zero_extendqisi2 + strb r6, [r4, #1143] bl flash_set_interface_mode - ldrb r0, [r4, #1232] @ zero_extendqisi2 + ldrb r0, [r4, #1196] @ zero_extendqisi2 bl nandc_set_if_mode mov r1, r7 - ldr r2, [r5, #-104] + ldr r2, [r5, #-88] mov r0, r8 - ldr r3, [r5, #-100] + ldr r3, [r5, #-84] str r9, [sp] bl flash_ddr_tuning_read - ldr r3, [r5, #-100] + ldr r3, [r5, #-84] mov r0, r8 mov r1, r7 - ldr r2, [r5, #-104] + ldr r2, [r5, #-88] str r9, [sp] bl flash_read_page mov r3, r4 cmn r0, #1 - bne .L2480 - ldrb r2, [r4, #1232] @ zero_extendqisi2 + bne .L2487 + ldrb r2, [r4, #1196] @ zero_extendqisi2 tst r2, #1 - beq .L2480 + beq .L2487 mov r0, r6 bl flash_set_interface_mode mov r0, r6 bl nandc_set_if_mode mov r3, #0 - strb r3, [r4, #1135] - b .L2481 -.L2480: + strb r3, [r4, #1143] + b .L2488 +.L2487: mov r2, #1 - strb r2, [r3, #1135] -.L2481: + strb r2, [r3, #1143] +.L2488: mov r0, #0 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc} -.L2487: +.L2494: .align 2 -.L2486: +.L2493: .word .LANCHOR0 .word .LANCHOR3 .fnend @@ -14295,12 +14348,12 @@ id_block_read_data.constprop.31: .fnstart @ args = 0, pretend = 0, frame = 112 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2519 + ldr r3, .L2526 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #124 sub sp, sp, #124 - ldr r4, .L2519+4 + ldr r4, .L2526+4 mov r6, r2 str r1, [sp, #24] mov r5, #0 @@ -14308,12 +14361,12 @@ id_block_read_data.constprop.31: mov r7, #4 ldrh r1, [r3, #30] mov r10, r5 - ldrb r3, [r4, #1168] @ zero_extendqisi2 + ldrb r3, [r4, #1200] @ zero_extendqisi2 str r0, [sp, #40] mul r1, r1, r2 str r3, [sp, #44] str r2, [sp, #28] - strb r5, [r4, #1168] + strb r5, [r4, #1200] bl __aeabi_uidivmod ldr r3, [sp, #40] str r1, [sp, #12] @@ -14321,10 +14374,10 @@ id_block_read_data.constprop.31: str r3, [sp, #32] and r3, r1, #3 str r3, [sp, #16] -.L2489: +.L2496: ldr r3, [sp, #24] cmp r5, r3 - bcs .L2518 + bcs .L2525 ldr r3, [sp, #16] mov r1, r7 rsb r3, r3, r7 @@ -14333,37 +14386,37 @@ id_block_read_data.constprop.31: ldr r3, [sp, #12] add r0, r5, r3 bl __aeabi_uidiv - ldrb r1, [r4, #1102] @ zero_extendqisi2 + ldrb r1, [r4, #1110] @ zero_extendqisi2 cmp r1, #0 uxth r0, r0 mov r3, r0, asl #1 add r2, r4, r3 ldrh r2, [r2, #4] moveq r0, r2 - beq .L2491 + beq .L2498 ldrb r2, [r4, #1] @ zero_extendqisi2 cmp r2, #0 movne r0, r3 -.L2491: +.L2498: ldr r2, [sp, #32] ldr r3, [sp, #28] ldr r1, [sp, #16] mla r3, r3, r0, r2 str r3, [sp, #36] - ldr r3, .L2519+4 + ldr r3, .L2526+4 ldr r2, [sp, #36] - ldrb r9, [r3, #1100] @ zero_extendqisi2 + ldrb r9, [r3, #1108] @ zero_extendqisi2 add r0, r2, r1 - ldr r3, [r3, #1096] + ldr r3, [r3, #1104] ldrb r1, [r3, #9] @ zero_extendqisi2 bl __aeabi_uidiv - ldr r3, .L2519+4 - ldrb r3, [r3, #1172] @ zero_extendqisi2 + ldr r3, .L2526+4 + ldrb r3, [r3, #1197] @ zero_extendqisi2 mov fp, r0 mov r0, r9 str r3, [sp, #48] bl nandc_bch_sel -.L2492: +.L2499: str r7, [sp] mov r0, #0 mov r1, fp @@ -14372,31 +14425,31 @@ id_block_read_data.constprop.31: bl flash_read_page cmn r0, #1 mov r8, r0 - bne .L2499 - ldrb ip, [r4, #1168] @ zero_extendqisi2 + bne .L2506 + ldrb ip, [r4, #1200] @ zero_extendqisi2 cmp ip, #0 - bne .L2494 -.L2497: - ldr r3, .L2519+8 - ldr ip, [r3, #-108] + bne .L2501 +.L2504: + ldr r3, .L2526+8 + ldr ip, [r3, #-92] cmp ip, #0 - bne .L2495 - b .L2496 -.L2494: + bne .L2502 + b .L2503 +.L2501: mov r0, #0 str r7, [sp] mov r1, fp mov r2, r6 add r3, sp, #56 str ip, [sp, #52] - strb r0, [r4, #1168] + strb r0, [r4, #1200] bl flash_read_page ldr ip, [sp, #52] cmn r0, #1 - strb ip, [r4, #1168] - beq .L2497 - b .L2517 -.L2495: + strb ip, [r4, #1200] + beq .L2504 + b .L2524 +.L2502: str r7, [sp] mov r0, #0 mov r1, fp @@ -14404,31 +14457,31 @@ id_block_read_data.constprop.31: add r3, sp, #56 blx ip cmn r0, #1 - bne .L2517 -.L2496: - ldrb r3, [r4, #1135] @ zero_extendqisi2 + bne .L2524 +.L2503: + ldrb r3, [r4, #1143] @ zero_extendqisi2 cmp r3, #0 - beq .L2499 + beq .L2506 str r7, [sp] mov r0, #0 mov r1, fp mov r2, r6 add r3, sp, #56 bl flash_ddr_tuning_read -.L2517: +.L2524: mov r8, r0 -.L2499: +.L2506: subs r9, r9, #16 movne r9, #1 cmn r8, #1 movne r9, #0 cmp r9, #0 - beq .L2500 + beq .L2507 mov r0, #16 mov r9, #16 bl nandc_bch_sel - b .L2492 -.L2500: + b .L2499 +.L2507: ldr r0, [sp, #48] bl nandc_bch_sel cmn r8, #1 @@ -14443,21 +14496,21 @@ id_block_read_data.constprop.31: movne r3, #0 andeq r3, r3, #1 cmp r3, #0 - beq .L2502 + beq .L2509 ldr r3, [r6] - ldr r2, .L2519+12 + ldr r2, .L2526+12 cmp r3, r2 - bne .L2502 + bne .L2509 ldr r3, [sp, #24] ldr r2, [sp, #20] ldrb r7, [r6, #17] @ zero_extendqisi2 add r3, r3, r2 str r3, [sp, #24] - b .L2503 -.L2502: + b .L2510 +.L2509: ldr r3, [sp, #20] mov r2, r5 - ldr r0, .L2519+16 + ldr r0, .L2526+16 ldr r1, [sp, #36] add r6, r6, r3, asl #9 ldr r3, [sp, #60] @@ -14466,22 +14519,22 @@ id_block_read_data.constprop.31: bl printk mov r3, #0 str r3, [sp, #16] -.L2503: +.L2510: ldr r3, [sp, #20] add r5, r3, r5 uxth r5, r5 - b .L2489 -.L2518: - ldr r3, .L2519+4 + b .L2496 +.L2525: + ldr r3, .L2526+4 mov r0, r10 ldrb r2, [sp, #44] @ zero_extendqisi2 - strb r2, [r3, #1168] + strb r2, [r3, #1200] add sp, sp, #124 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2520: +.L2527: .align 2 -.L2519: +.L2526: .word .LANCHOR2 .word .LANCHOR0 .word .LANCHOR3 @@ -14500,16 +14553,16 @@ flash_prog_page: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov fp, r3 - ldr r7, .L2533 + ldr r7, .L2540 mov r4, r0 .pad #20 sub sp, sp, #20 mvn r5, #0 mov r8, r1 mov r10, r2 - ldrb r3, [r7, #1189] @ zero_extendqisi2 + ldrb r3, [r7, #1153] @ zero_extendqisi2 add r9, r0, #8 - ldr r6, [r7, #1040] + ldr r6, [r7, #1044] rsb r3, r3, #24 bic r5, r1, r5, asl r3 bl nandc_wait_flash_ready @@ -14520,12 +14573,12 @@ flash_prog_page: bl nandc_cs tst r8, #50331648 mov r0, r4 - bne .L2522 + bne .L2529 bl zftl_flash_enter_slc_mode - b .L2523 -.L2522: + b .L2530 +.L2529: bl zftl_flash_exit_slc_mode -.L2523: +.L2530: mov ip, r4, asl #8 mov r2, #128 add r3, r6, ip @@ -14541,12 +14594,12 @@ flash_prog_page: str r2, [r3, #2052] mov r2, r5, lsr #16 str r2, [r3, #2052] - ldrb r2, [r7, #1188] @ zero_extendqisi2 + ldrb r2, [r7, #1152] @ zero_extendqisi2 cmp r2, #0 movne r2, r5, lsr #24 strne r2, [r3, #2052] bl nandc_set_seed - ldr r3, .L2533+4 + ldr r3, .L2540+4 mov r1, #1 mov r0, r4 ldrb r2, [r3, #13] @ zero_extendqisi2 @@ -14565,19 +14618,19 @@ flash_prog_page: mov r0, r4 bl nandc_de_cs ands r2, r5, #4 - beq .L2525 - ldr r0, .L2533+8 + beq .L2532 + ldr r0, .L2540+8 mov r1, r8 bl printk mvn r2, #0 -.L2525: +.L2532: mov r0, r2 add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2534: +.L2541: .align 2 -.L2533: +.L2540: .word .LANCHOR0 .word .LANCHOR2 .word .LC169 @@ -14594,58 +14647,58 @@ flash_test_blk: .save {r4, r5, r6, r7, lr} .pad #12 mov r6, r0 - ldr r4, .L2546 + ldr r4, .L2553 mov r5, r1 mov r2, #32 mov r1, #165 - ldr r0, [r4, #-128] + ldr r0, [r4, #-112] bl ftl_memset mov r1, #90 mov r2, #8 - ldr r0, [r4, #-120] + ldr r0, [r4, #-104] bl ftl_memset - ldr r3, .L2546+4 + ldr r3, .L2553+4 mov r0, r6 ldrh r3, [r3, #2] mul r5, r3, r5 mov r1, r5 bl flash_erase_block cmn r0, #1 - bne .L2536 -.L2538: + bne .L2543 +.L2545: mvn r4, #0 - b .L2537 -.L2536: - ldr r7, .L2546+8 + b .L2544 +.L2543: + ldr r7, .L2553+8 mov r0, r6 mov r1, r5 ldrb r3, [r7, #13] @ zero_extendqisi2 str r3, [sp] - ldr r2, [r4, #-128] - ldr r3, [r4, #-120] + ldr r2, [r4, #-112] + ldr r3, [r4, #-104] bl flash_prog_page cmn r0, #1 - beq .L2538 + beq .L2545 ldrb r3, [r7, #13] @ zero_extendqisi2 mov r0, r6 mov r1, r5 str r3, [sp] - ldr r2, [r4, #-128] - ldr r3, [r4, #-120] + ldr r2, [r4, #-112] + ldr r3, [r4, #-104] bl flash_read_page_en cmn r0, #1 - beq .L2538 - ldr r3, [r4, #-128] + beq .L2545 + ldr r3, [r4, #-112] ldr r2, [r3] - ldr r3, .L2546+12 + ldr r3, .L2553+12 cmp r2, r3 - bne .L2538 - ldr r3, [r4, #-120] - ldr r4, .L2546+16 + bne .L2545 + ldr r3, [r4, #-104] + ldr r4, .L2553+16 ldr r3, [r3] subs r4, r3, r4 mvnne r4, #0 -.L2537: +.L2544: mov r0, r6 mov r1, r5 bl flash_erase_block @@ -14653,9 +14706,9 @@ flash_test_blk: add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, pc} -.L2547: +.L2554: .align 2 -.L2546: +.L2553: .word .LANCHOR3 .word .LANCHOR0 .word .LANCHOR2 @@ -14674,13 +14727,13 @@ flash_start_one_pass_page_prog: .save {r4, r5, r6, r7, r8, r9, r10, lr} .pad #8 mov r10, r0 - ldr r6, .L2558 + ldr r6, .L2565 mov r0, r3 ldr r5, [sp, #40] mov r9, r3 mov r8, r2 mov r7, r9, asl #8 - ldr r4, [r6, #1040] + ldr r4, [r6, #1044] bl nandc_cs cmp r10, #0 mov r0, r5 @@ -14699,12 +14752,12 @@ flash_start_one_pass_page_prog: str r3, [r2, #2052] mov r3, r5, lsr #16 str r3, [r2, #2052] - ldrb r3, [r6, #1188] @ zero_extendqisi2 + ldrb r3, [r6, #1152] @ zero_extendqisi2 cmp r3, #0 movne r3, r5, lsr #24 strne r3, [r2, #2052] bl nandc_set_seed - ldr r3, .L2558+4 + ldr r3, .L2565+4 mov r0, r9 mov r1, #1 ldrb r2, [r3, #13] @ zero_extendqisi2 @@ -14716,9 +14769,9 @@ flash_start_one_pass_page_prog: add sp, sp, #8 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L2559: +.L2566: .align 2 -.L2558: +.L2565: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -14733,40 +14786,40 @@ flash_dual_page_prog: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r9, r3 - ldr r4, .L2573 + ldr r4, .L2580 add r8, r0, #8 - ldr r6, .L2573+4 + ldr r6, .L2580+4 .pad #20 sub sp, sp, #20 mov r5, r0 mov r7, r1 - ldr r3, [r4, #1040] + ldr r3, [r4, #1044] mov r10, r2 ubfx fp, r1, #24, #2 add r8, r3, r8, asl #8 - ldrb r3, [r4, #1189] @ zero_extendqisi2 + ldrb r3, [r4, #1153] @ zero_extendqisi2 mvn r4, #0 rsb r3, r3, #24 bic r4, r1, r4, asl r3 ldr r3, [r6] tst r3, #16 - beq .L2561 - ldr r0, .L2573+8 + beq .L2568 + ldr r0, .L2580+8 mov r2, fp ldr r3, [sp, #64] bl printk -.L2561: +.L2568: bl nandc_wait_flash_ready mov r0, r5 bl nandc_cs cmp fp, #0 mov r0, r5 - bne .L2562 + bne .L2569 bl zftl_flash_enter_slc_mode - b .L2563 -.L2562: + b .L2570 +.L2569: bl zftl_flash_exit_slc_mode -.L2563: +.L2570: mov r0, #0 mov r2, #16 mov r1, r0 @@ -14793,23 +14846,23 @@ flash_dual_page_prog: mov r0, r5 bl nandc_de_cs ands r2, r4, #4 - beq .L2564 + beq .L2571 ldr r3, [r6] tst r3, #4096 - beq .L2565 - ldr r0, .L2573+12 + beq .L2572 + ldr r0, .L2580+12 mov r1, r7 bl printk -.L2565: +.L2572: mvn r2, #0 -.L2564: +.L2571: mov r0, r2 add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2574: +.L2581: .align 2 -.L2573: +.L2580: .word .LANCHOR0 .word .LANCHOR2 .word .LC170 @@ -14827,14 +14880,14 @@ ymtc_flash_tlc_page_prog: .save {r4, r5, r6, r7, r8, r9, r10, lr} .pad #16 mov r8, r3 - ldr r4, .L2582 + ldr r4, .L2589 mov r6, #1 add r7, r0, #8 mov r5, r0 mov r9, r2 mov r10, r1 - ldr r3, [r4, #1040] - ldrb r4, [r4, #1189] @ zero_extendqisi2 + ldr r3, [r4, #1044] + ldrb r4, [r4, #1153] @ zero_extendqisi2 add r7, r3, r7, asl #8 rsb r4, r4, #24 mov r4, r6, asl r4 @@ -14878,24 +14931,24 @@ ymtc_flash_tlc_page_prog: mov r0, r5 bl nandc_de_cs ands r2, r4, #4 - beq .L2576 - ldr r3, .L2582+4 + beq .L2583 + ldr r3, .L2589+4 ldr r3, [r3] tst r3, #4096 - beq .L2577 - ldr r0, .L2582+8 + beq .L2584 + ldr r0, .L2589+8 mov r1, r10 bl printk -.L2577: +.L2584: mvn r2, #0 -.L2576: +.L2583: mov r0, r2 add sp, sp, #16 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L2583: +.L2590: .align 2 -.L2582: +.L2589: .word .LANCHOR0 .word .LANCHOR2 .word .LC171 @@ -14911,40 +14964,40 @@ fw_flash_page_prog.constprop.30: stmfd sp!, {r4, r5, r6, r7, r8, r9, lr} .save {r4, r5, r6, r7, r8, r9, lr} mov r6, r1 - ldr r4, .L2590 + ldr r4, .L2597 .pad #20 sub sp, sp, #20 mov r5, r2 - ldr r3, [r4, #1096] + ldr r3, [r4, #1104] ldrb r1, [r3, #9] @ zero_extendqisi2 bl __aeabi_uidiv - ldrb r8, [r4, #1172] @ zero_extendqisi2 + ldrb r8, [r4, #1197] @ zero_extendqisi2 mov r7, r0 - ldrb r0, [r4, #1100] @ zero_extendqisi2 + ldrb r0, [r4, #1108] @ zero_extendqisi2 bl nandc_bch_sel - ldr r3, .L2590+4 + ldr r3, .L2597+4 ldrb r2, [r3, #11] @ zero_extendqisi2 cmp r2, #9 - bne .L2585 - ldrb r4, [r4, #1102] @ zero_extendqisi2 + bne .L2592 + ldrb r4, [r4, #1110] @ zero_extendqisi2 cmp r4, #0 - bne .L2585 + bne .L2592 ldrb r3, [r3, #16] @ zero_extendqisi2 cmp r3, #3 - bne .L2586 + bne .L2593 mov r0, r4 mov r1, r7 mov r2, r6 mov r3, r5 bl ymtc_flash_tlc_page_prog - b .L2589 -.L2586: - ldr r9, .L2590+8 + b .L2596 +.L2593: + ldr r9, .L2597+8 mov r1, #255 mov r2, #16384 - ldr r0, [r9, #-128] + ldr r0, [r9, #-112] bl ftl_memset - ldr r3, [r9, #-128] + ldr r3, [r9, #-112] mov r0, r4 mov r1, r7 mov r2, r6 @@ -14954,8 +15007,8 @@ fw_flash_page_prog.constprop.30: str r3, [sp, #8] mov r3, r5 bl flash_dual_page_prog - b .L2589 -.L2585: + b .L2596 +.L2592: mov r3, #4 mov r0, #0 str r3, [sp] @@ -14963,7 +15016,7 @@ fw_flash_page_prog.constprop.30: mov r2, r6 mov r3, r5 bl flash_prog_page -.L2589: +.L2596: mov r4, r0 mov r0, r8 bl nandc_bch_sel @@ -14971,9 +15024,9 @@ fw_flash_page_prog.constprop.30: add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc} -.L2591: +.L2598: .align 2 -.L2590: +.L2597: .word .LANCHOR0 .word .LANCHOR2 .word .LANCHOR3 @@ -14991,29 +15044,29 @@ flash_start_tlc_page_prog: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 mov r4, r3 - ldr r3, .L2600 + ldr r3, .L2607 mov r8, r2 add r5, sp, #48 mov fp, r0 mov r7, r1 - ldrb r2, [r3, #1101] @ zero_extendqisi2 + ldrb r2, [r3, #1109] @ zero_extendqisi2 mov r6, r3 ldmia r5, {r5, r9, r10} cmp r2, r4 - bhi .L2593 - ldr r1, .L2600+4 + bhi .L2600 + ldr r1, .L2607+4 mov r2, #868 - ldr r0, .L2600+8 + ldr r0, .L2607+8 bl printk bl dump_stack -.L2593: - ldrb r2, [r6, #1101] @ zero_extendqisi2 - ldr r3, .L2600 +.L2600: + ldrb r2, [r6, #1109] @ zero_extendqisi2 + ldr r3, .L2607 cmp r2, r4 - bls .L2592 + bls .L2599 add r4, r3, r4 - ldrb r6, [r4, #1180] @ zero_extendqisi2 - ldr r4, [r3, #1040] + ldrb r6, [r4, #1144] @ zero_extendqisi2 + ldr r4, [r3, #1044] mov r0, r6 bl nandc_cs cmp fp, #0 @@ -15037,7 +15090,7 @@ flash_start_tlc_page_prog: sub r0, r5, #1 add r0, r0, r7 bl nandc_set_seed - ldr r3, .L2600+12 + ldr r3, .L2607+12 mov r0, r6 mov r1, #1 ldrb r2, [r3, #13] @ zero_extendqisi2 @@ -15050,15 +15103,15 @@ flash_start_tlc_page_prog: @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} b nandc_de_cs -.L2592: +.L2599: add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2601: +.L2608: .align 2 -.L2600: +.L2607: .word .LANCHOR0 - .word .LANCHOR1+2080 + .word .LANCHOR1+1960 .word .LC0 .word .LANCHOR2 .fnend @@ -15073,14 +15126,14 @@ queue_tlc_prog_cmd: .save {r4, r5, r6, r7, r8, lr} .pad #16 mov r8, #1 - ldr r2, .L2607 + ldr r2, .L2614 mov r6, r0 ldr r3, [r0] mov r7, r1 - ldrb r4, [r2, #1189] @ zero_extendqisi2 + ldrb r4, [r2, #1153] @ zero_extendqisi2 ldr r0, [r3, #24] rsb r1, r4, #24 - ldrb r2, [r2, #1197] @ zero_extendqisi2 + ldrb r2, [r2, #1161] @ zero_extendqisi2 mov r4, r8, asl r4 mov r5, r8, asl r1 sub r4, r4, #1 @@ -15089,7 +15142,7 @@ queue_tlc_prog_cmd: sub r5, r5, #1 and r5, r5, r0 uxtb r4, r4 - beq .L2603 + beq .L2610 mov r0, r4 bl zftl_flash_exit_slc_mode ldr r3, [r6] @@ -15131,8 +15184,8 @@ queue_tlc_prog_cmd: str r3, [sp, #8] mov r3, r4 bl flash_start_one_pass_page_prog - b .L2604 -.L2603: + b .L2611 +.L2610: ldrb r0, [r3, #44] @ zero_extendqisi2 mov r1, r8 str r5, [sp] @@ -15170,12 +15223,12 @@ queue_tlc_prog_cmd: str r3, [sp, #8] mov r3, r4 bl flash_start_tlc_page_prog -.L2604: +.L2611: cmp r7, #0 - beq .L2602 + beq .L2609 ldr r1, [r6] mov r3, #4 - ldr r0, .L2607+4 + ldr r0, .L2614+4 strb r3, [r1, #42] mov r3, #1 strb r3, [r1, #43] @@ -15185,15 +15238,15 @@ queue_tlc_prog_cmd: @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, lr} b buf_add_tail -.L2602: +.L2609: add sp, sp, #16 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L2608: +.L2615: .align 2 -.L2607: +.L2614: .word .LANCHOR0 - .word .LANCHOR0+2775 + .word .LANCHOR0+2774 .fnend .size queue_tlc_prog_cmd, .-queue_tlc_prog_cmd .align 2 @@ -15207,11 +15260,11 @@ sblk_3d_tlc_dump_prog: .save {r4, r5, r6, r7, r8, lr} .pad #16 mov r7, #1 - ldr r3, .L2613 + ldr r3, .L2620 mov r5, r0 ldr r1, [r0, #24] - ldrb r4, [r3, #1189] @ zero_extendqisi2 - ldrb r8, [r3, #1197] @ zero_extendqisi2 + ldrb r4, [r3, #1153] @ zero_extendqisi2 + ldrb r8, [r3, #1161] @ zero_extendqisi2 rsb r2, r4, #24 mov r4, r7, asl r4 sub r4, r4, #1 @@ -15221,7 +15274,7 @@ sblk_3d_tlc_dump_prog: sub r6, r6, #1 and r6, r6, r1 uxtb r4, r4 - beq .L2610 + beq .L2617 mov r0, r4 bl zftl_flash_exit_slc_mode ldr r3, [r5, #4] @@ -15260,8 +15313,8 @@ sblk_3d_tlc_dump_prog: str r3, [sp, #8] mov r3, r4 bl flash_start_one_pass_page_prog - b .L2611 -.L2610: + b .L2618 +.L2617: str r6, [sp] mov r1, r7 ldr r3, [r0, #4] @@ -15296,7 +15349,7 @@ sblk_3d_tlc_dump_prog: str r3, [sp, #8] mov r3, r4 bl flash_start_tlc_page_prog -.L2611: +.L2618: bl nandc_iqr_wait_flash_ready bl nandc_wait_flash_ready ldr r0, [r5, #24] @@ -15305,9 +15358,9 @@ sblk_3d_tlc_dump_prog: @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, lr} b flash_wait_device_ready -.L2614: +.L2621: .align 2 -.L2613: +.L2620: .word .LANCHOR0 .fnend .size sblk_3d_tlc_dump_prog, .-sblk_3d_tlc_dump_prog @@ -15322,27 +15375,27 @@ flash_start_3d_mlc_page_prog: .save {r4, r5, r6, r7, r8, lr} .pad #8 mov r8, r3 - ldr r3, .L2619 + ldr r3, .L2626 mov r5, r2 mov r7, r0 mov r4, r1 - ldrb r2, [r3, #1101] @ zero_extendqisi2 + ldrb r2, [r3, #1109] @ zero_extendqisi2 mov r6, r3 cmp r2, r1 - bhi .L2616 - ldr r1, .L2619+4 + bhi .L2623 + ldr r1, .L2626+4 movw r2, #903 - ldr r0, .L2619+8 + ldr r0, .L2626+8 bl printk bl dump_stack -.L2616: - ldrb r2, [r6, #1101] @ zero_extendqisi2 - ldr r3, .L2619 +.L2623: + ldrb r2, [r6, #1109] @ zero_extendqisi2 + ldr r3, .L2626 cmp r2, r4 - bls .L2615 + bls .L2622 add r4, r3, r4 - ldrb r6, [r4, #1180] @ zero_extendqisi2 - ldr r4, [r3, #1040] + ldrb r6, [r4, #1144] @ zero_extendqisi2 + ldr r4, [r3, #1044] add r4, r4, r6, asl #8 mov r0, r6 bl nandc_cs @@ -15359,7 +15412,7 @@ flash_start_3d_mlc_page_prog: mov r3, r5, lsr #16 str r3, [r4, #2052] bl nandc_set_seed - ldr r3, .L2619+12 + ldr r3, .L2626+12 mov r0, r6 mov r1, #1 ldrb r2, [r3, #13] @ zero_extendqisi2 @@ -15368,15 +15421,15 @@ flash_start_3d_mlc_page_prog: mov r3, r8 bl nandc_xfer str r7, [r4, #2056] -.L2615: +.L2622: add sp, sp, #8 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L2620: +.L2627: .align 2 -.L2619: +.L2626: .word .LANCHOR0 - .word .LANCHOR1+2108 + .word .LANCHOR1+1988 .word .LC0 .word .LANCHOR2 .fnend @@ -15388,12 +15441,12 @@ sblk_mlc_dump_prog: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2627 + ldr r3, .L2634 stmfd sp!, {r0, r1, r4, r5, r6, lr} .save {r4, r5, r6, lr} .pad #8 mov r4, #1 - ldrb r1, [r3, #1189] @ zero_extendqisi2 + ldrb r1, [r3, #1153] @ zero_extendqisi2 mov r5, r0 ldr r2, [r0, #24] rsb r3, r1, #24 @@ -15406,16 +15459,16 @@ sblk_mlc_dump_prog: uxtb r4, r4 mov r0, r4 bl zftl_flash_exit_slc_mode - ldr r3, .L2627+4 + ldr r3, .L2634+4 ldr r3, [r3] tst r3, #4096 - beq .L2622 + beq .L2629 ldr r2, [r5, #24] mov r1, r6 - ldr r0, .L2627+8 + ldr r0, .L2634+8 add r3, r2, #1 bl printk -.L2622: +.L2629: ldr r3, [r5, #12] mov r1, r4 mov r2, r6 @@ -15444,9 +15497,9 @@ sblk_mlc_dump_prog: add sp, sp, #8 @ sp needed ldmfd sp!, {r4, r5, r6, pc} -.L2628: +.L2635: .align 2 -.L2627: +.L2634: .word .LANCHOR0 .word .LANCHOR2 .word .LC172 @@ -15462,71 +15515,71 @@ flash_start_page_prog: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov fp, r3 - ldr r6, .L2644 + ldr r6, .L2651 mvn r3, #0 mov r10, r2 .pad #20 sub sp, sp, #20 mov r8, r1 - ldrb r4, [r6, #1189] @ zero_extendqisi2 - ldrb r2, [r6, #1101] @ zero_extendqisi2 + ldrb r4, [r6, #1153] @ zero_extendqisi2 + ldrb r2, [r6, #1109] @ zero_extendqisi2 rsb r7, r4, #24 str r0, [sp, #8] mvn r4, r3, asl r4 and r5, r4, r1, lsr r7 uxtb r9, r5 cmp r2, r9 - bhi .L2630 - ldr r1, .L2644+4 + bhi .L2637 + ldr r1, .L2651+4 mov r2, #956 - ldr r0, .L2644+8 + ldr r0, .L2651+8 bl printk bl dump_stack -.L2630: - ldrb r1, [r6, #1101] @ zero_extendqisi2 - ldr r2, .L2644 +.L2637: + ldrb r1, [r6, #1109] @ zero_extendqisi2 + ldr r2, .L2651 cmp r1, r9 - bls .L2629 + bls .L2636 add r1, r2, r9 mvn r4, #0 str r2, [sp, #12] bic r4, r8, r4, asl r7 - ldrb r5, [r1, #1180] @ zero_extendqisi2 - ldr r7, [r2, #1040] + ldrb r5, [r1, #1144] @ zero_extendqisi2 + ldr r7, [r2, #1044] bl nandc_rdy_status cmp r0, #0 ldr r2, [sp, #12] - bne .L2632 - ldrb r2, [r2, #1101] @ zero_extendqisi2 + bne .L2639 + ldrb r2, [r2, #1109] @ zero_extendqisi2 cmp r2, #1 - bne .L2633 + bne .L2640 bl nandc_wait_flash_ready - b .L2632 -.L2633: + b .L2639 +.L2640: mov r0, r9 mov r1, r4 mov r2, #64 bl flash_wait_device_ready_raw -.L2632: +.L2639: mov r0, r5 bl hynix_reconfig_rr_para mov r0, r5 bl nandc_cs tst r8, #50331648 - bne .L2634 + bne .L2641 mov r0, r4 bl slc_phy_page_address_calc ldrb r3, [r6] @ zero_extendqisi2 cmp r3, #0 mov r4, r0 - beq .L2635 + beq .L2642 mov r0, r5 bl zftl_flash_enter_slc_mode - b .L2635 -.L2634: + b .L2642 +.L2641: mov r0, r5 bl zftl_flash_exit_slc_mode -.L2635: +.L2642: mov r8, r5, asl #8 mov r2, #128 add r3, r7, r8 @@ -15542,12 +15595,12 @@ flash_start_page_prog: str r2, [r3, #2052] mov r2, r4, lsr #16 str r2, [r3, #2052] - ldrb r2, [r6, #1188] @ zero_extendqisi2 + ldrb r2, [r6, #1152] @ zero_extendqisi2 cmp r2, #0 movne r2, r4, lsr #24 strne r2, [r3, #2052] bl nandc_set_seed - ldr r3, .L2644+12 + ldr r3, .L2651+12 mov r0, r5 mov r1, #1 ldrb r2, [r3, #13] @ zero_extendqisi2 @@ -15561,15 +15614,15 @@ flash_start_page_prog: @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} b nandc_de_cs -.L2629: +.L2636: add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2645: +.L2652: .align 2 -.L2644: +.L2651: .word .LANCHOR0 - .word .LANCHOR1+2140 + .word .LANCHOR1+2020 .word .LC0 .word .LANCHOR2 .fnend @@ -15588,52 +15641,52 @@ queue_prog_cmd: ldr r3, [r4, #12] ldr r1, [r4, #24] bl flash_start_page_prog - ldr r2, .L2655 + ldr r2, .L2662 ldr r0, [r4, #24] - ldrb r3, [r2, #2775] @ zero_extendqisi2 + ldrb r3, [r2, #2774] @ zero_extendqisi2 cmp r3, #255 - beq .L2647 - ldrb ip, [r2, #1189] @ zero_extendqisi2 + beq .L2654 + ldrb ip, [r2, #1153] @ zero_extendqisi2 mvn r1, #0 mov r5, #48 rsb r6, ip, #24 mvn r1, r1, asl ip uxth r1, r1 and r0, r1, r0, asr r6 -.L2649: +.L2656: mla lr, r5, r3, r2 ldr ip, [lr, #1260] and ip, r1, ip, lsr r6 cmp r0, ip - bne .L2648 + bne .L2655 add ip, lr, #1264 ldrb lr, [lr, #1278] @ zero_extendqisi2 add ip, ip, #12 cmp lr, #7 moveq r3, #3 streqb r3, [ip, #2] - beq .L2647 -.L2648: + beq .L2654 +.L2655: mla r3, r5, r3, r2 ldrb r3, [r3, #1236] @ zero_extendqisi2 cmp r3, #255 - bne .L2649 -.L2647: + bne .L2656 +.L2654: mov r3, #3 mov r1, r4 strb r3, [r4, #42] mov r3, #1 - ldr r0, .L2655+4 + ldr r0, .L2662+4 strb r3, [r4, #43] mvn r3, #0 strb r3, [r4] ldmfd sp!, {r4, r5, r6, lr} b buf_add_tail -.L2656: +.L2663: .align 2 -.L2655: +.L2662: .word .LANCHOR0 - .word .LANCHOR0+2775 + .word .LANCHOR0+2774 .fnend .size queue_prog_cmd, .-queue_prog_cmd .align 2 @@ -15647,60 +15700,60 @@ flash_complete_plane_page_read: .save {r4, r5, r6, r7, r8, r9, r10, lr} .pad #8 mvn r3, #0 - ldr r8, .L2687 + ldr r8, .L2694 mov r10, r0 mov r6, r1 mov r7, r2 - ldrb r4, [r8, #1189] @ zero_extendqisi2 + ldrb r4, [r8, #1153] @ zero_extendqisi2 rsb r9, r4, #24 mvn r4, r3, asl r4 and r4, r4, r0, lsr r9 - ldrb r3, [r8, #1101] @ zero_extendqisi2 + ldrb r3, [r8, #1109] @ zero_extendqisi2 uxtb r5, r4 cmp r3, r5 - bhi .L2658 - ldr r1, .L2687+4 + bhi .L2665 + ldr r1, .L2694+4 movw r2, #1070 - ldr r0, .L2687+8 + ldr r0, .L2694+8 bl printk bl dump_stack -.L2658: - ldrb r2, [r8, #1101] @ zero_extendqisi2 - ldr r3, .L2687 +.L2665: + ldrb r2, [r8, #1109] @ zero_extendqisi2 + ldr r3, .L2694 cmp r2, r5 mvnls r0, #0 - bls .L2659 + bls .L2666 add r5, r3, r5 mvn r4, #0 bic r4, r10, r4, asl r9 ubfx r10, r10, #24, #2 - ldrb r9, [r5, #1180] @ zero_extendqisi2 - ldr r5, [r3, #1040] + ldrb r9, [r5, #1144] @ zero_extendqisi2 + ldr r5, [r3, #1044] mov r0, r9 bl nandc_cs cmp r10, #0 - bne .L2660 + bne .L2667 mov r0, r4 bl slc_phy_page_address_calc mov r4, r0 -.L2660: - ldrb r3, [r8, #1119] @ zero_extendqisi2 +.L2667: + ldrb r3, [r8, #1127] @ zero_extendqisi2 uxtb ip, r4 mov r0, r4, lsr #8 - ldrb r1, [r8, #1188] @ zero_extendqisi2 + ldrb r1, [r8, #1152] @ zero_extendqisi2 cmp r3, #1 mov r3, r9, asl #8 addeq r2, r5, r3 moveq lr, #6 - beq .L2686 - ldr r2, .L2687 - ldr r2, [r2, #1096] + beq .L2693 + ldr r2, .L2694 + ldr r2, [r2, #1104] ldrb r2, [r2, #12] @ zero_extendqisi2 cmp r2, #3 add r2, r5, r3 - bne .L2664 + bne .L2671 mov lr, #5 -.L2686: +.L2693: add r3, r5, r3 str lr, [r2, #2056] mov lr, #0 @@ -15715,8 +15768,8 @@ flash_complete_plane_page_read: strne r1, [r2, #2052] mov r2, #224 str r2, [r3, #2056] - b .L2663 -.L2664: + b .L2670 +.L2671: add r5, r5, r3 mov lr, #0 cmp r1, lr @@ -15736,30 +15789,30 @@ flash_complete_plane_page_read: str r3, [r2, #2052] mov r3, #224 str r3, [r5, #2056] -.L2663: - ldr r2, [r8, #1096] - ldr r3, .L2687 +.L2670: + ldr r2, [r8, #1104] + ldr r3, .L2694 ldrb r1, [r2, #12] @ zero_extendqisi2 adds r2, r10, #0 movne r2, #1 cmp r1, #3 movne r2, #0 cmp r2, #0 - beq .L2667 - ldrb r2, [r3, #1196] @ zero_extendqisi2 + beq .L2674 + ldrb r2, [r3, #1160] @ zero_extendqisi2 cmp r2, #0 - bne .L2667 - ldrb r3, [r3, #1197] @ zero_extendqisi2 + bne .L2674 + ldrb r3, [r3, #1161] @ zero_extendqisi2 cmp r3, #0 subeq r0, r10, #1 addeq r4, r4, r4, asl #1 addeq r0, r0, r4 - beq .L2683 -.L2667: + beq .L2690 +.L2674: mov r0, r4 -.L2683: +.L2690: bl nandc_set_seed - ldr r3, .L2687+12 + ldr r3, .L2694+12 mov r1, #0 mov r0, r9 ldrb r2, [r3, #13] @ zero_extendqisi2 @@ -15770,15 +15823,15 @@ flash_complete_plane_page_read: mov r0, r9 bl nandc_de_cs mov r0, r4 -.L2659: +.L2666: add sp, sp, #8 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L2688: +.L2695: .align 2 -.L2687: +.L2694: .word .LANCHOR0 - .word .LANCHOR1+2164 + .word .LANCHOR1+2044 .word .LC0 .word .LANCHOR2 .fnend @@ -15793,47 +15846,47 @@ flash_complete_page_read: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r6, #1 - ldr r5, .L2724 + ldr r5, .L2731 .pad #20 sub sp, sp, #20 mov r9, r0 mov r10, r1 mov fp, r2 - ldrb r7, [r5, #1189] @ zero_extendqisi2 + ldrb r7, [r5, #1153] @ zero_extendqisi2 rsb r3, r7, #24 mov r7, r6, asl r7 sub r7, r7, #1 mov r4, r6, asl r3 and r7, r7, r0, lsr r3 - ldrb r3, [r5, #1101] @ zero_extendqisi2 + ldrb r3, [r5, #1109] @ zero_extendqisi2 sub r4, r4, #1 ubfx r6, r0, #24, #2 uxtb r7, r7 and r4, r4, r0 cmp r3, r7 - bhi .L2690 - ldr r1, .L2724+4 + bhi .L2697 + ldr r1, .L2731+4 mov r2, #1232 - ldr r0, .L2724+8 + ldr r0, .L2731+8 bl printk bl dump_stack -.L2690: +.L2697: add r7, r5, r7 - ldr r3, [r5, #1040] - ldrb r8, [r7, #1180] @ zero_extendqisi2 + ldr r3, [r5, #1044] + ldrb r8, [r7, #1144] @ zero_extendqisi2 str r3, [sp, #12] mov r0, r8 bl nandc_cs cmp r6, #0 - bne .L2691 + bne .L2698 mov r0, r4 bl slc_phy_page_address_calc mov r4, r0 -.L2691: - ldr r7, .L2724+12 +.L2698: + ldr r7, .L2731+12 ldrb r3, [r7, #16] @ zero_extendqisi2 cmp r3, #3 - bne .L2692 + bne .L2699 ldr r3, [sp, #12] mov r2, #5 add r3, r3, r8, asl #8 @@ -15849,28 +15902,28 @@ flash_complete_page_read: str r2, [r3, #2052] mov r2, #224 str r2, [r3, #2056] -.L2692: - ldr r2, [r5, #1096] - ldr r3, .L2724 +.L2699: + ldr r2, [r5, #1104] + ldr r3, .L2731 ldrb r1, [r2, #12] @ zero_extendqisi2 adds r2, r6, #0 movne r2, #1 cmp r1, #3 movne r2, #0 cmp r2, #0 - beq .L2693 - ldrb r2, [r3, #1196] @ zero_extendqisi2 + beq .L2700 + ldrb r2, [r3, #1160] @ zero_extendqisi2 cmp r2, #0 - bne .L2693 - ldrb r3, [r3, #1197] @ zero_extendqisi2 + bne .L2700 + ldrb r3, [r3, #1161] @ zero_extendqisi2 cmp r3, #0 subeq r0, r6, #1 addeq r3, r4, r4, asl #1 addeq r0, r0, r3 - beq .L2723 -.L2693: + beq .L2730 +.L2700: mov r0, r4 -.L2723: +.L2730: bl nandc_set_seed ldrb r2, [r7, #13] @ zero_extendqisi2 mov r0, r8 @@ -15879,61 +15932,61 @@ flash_complete_page_read: str fp, [sp] bl nandc_xfer cmn r0, #1 - bne .L2695 - ldrb ip, [r5, #1168] @ zero_extendqisi2 + bne .L2702 + ldrb ip, [r5, #1200] @ zero_extendqisi2 cmp ip, #0 - beq .L2696 - ldr r2, .L2724 + beq .L2703 + ldr r2, .L2731 mov r3, #0 mov r0, r8 orr r1, r4, r6, asl #24 str ip, [sp, #12] - strb r3, [r2, #1168] + strb r3, [r2, #1200] mov r2, r10 - ldr r3, .L2724+12 + ldr r3, .L2731+12 ldrb r3, [r3, #13] @ zero_extendqisi2 str r3, [sp] mov r3, fp bl flash_read_page - ldr r3, .L2724 + ldr r3, .L2731 cmp r6, #0 ldr ip, [sp, #12] - strb ip, [r3, #1168] - bne .L2697 -.L2704: + strb ip, [r3, #1200] + bne .L2704 +.L2711: ldrb r3, [r5] @ zero_extendqisi2 cmp r3, #0 - beq .L2697 - ldr r3, .L2724 - ldrb r3, [r3, #1172] @ zero_extendqisi2 + beq .L2704 + ldr r3, .L2731 + ldrb r3, [r3, #1197] @ zero_extendqisi2 add r3, r3, r3, asl #1 cmp r0, r3, asr #2 - blt .L2697 + blt .L2704 ldrb r3, [r7, #23] @ zero_extendqisi2 sub r3, r3, #4 cmp r3, #4 movls r0, #256 - b .L2711 -.L2697: + b .L2718 +.L2704: cmn r0, #1 - bne .L2711 -.L2705: - ldr r3, .L2724+16 - ldr ip, [r3, #-108] + bne .L2718 +.L2712: + ldr r3, .L2731+16 + ldr ip, [r3, #-92] cmp ip, #0 - bne .L2700 -.L2703: - ldrb r3, [r5, #1168] @ zero_extendqisi2 + bne .L2707 +.L2710: + ldrb r3, [r5, #1200] @ zero_extendqisi2 mov r1, #0 - ldr r0, .L2724+20 + ldr r0, .L2731+20 mov r2, r9 str r3, [sp] mvn r3, #0 bl printk - ldrb r3, [r5, #1135] @ zero_extendqisi2 + ldrb r3, [r5, #1143] @ zero_extendqisi2 cmp r3, #0 mvneq r0, #0 - beq .L2711 + beq .L2718 ldrb r3, [r7, #13] @ zero_extendqisi2 mov r0, r8 orr r1, r4, r6, asl #24 @@ -15941,8 +15994,8 @@ flash_complete_page_read: str r3, [sp] mov r3, fp bl flash_ddr_tuning_read - b .L2711 -.L2700: + b .L2718 +.L2707: ldrb r3, [r7, #13] @ zero_extendqisi2 mov r0, r8 orr r1, r4, r6, asl #24 @@ -15951,25 +16004,25 @@ flash_complete_page_read: mov r3, fp blx ip cmn r0, #1 - bne .L2711 - b .L2703 -.L2695: + bne .L2718 + b .L2710 +.L2702: cmp r6, #0 - beq .L2704 - b .L2711 -.L2696: + beq .L2711 + b .L2718 +.L2703: cmp r6, #0 - beq .L2704 - b .L2705 -.L2711: + beq .L2711 + b .L2712 +.L2718: add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2725: +.L2732: .align 2 -.L2724: +.L2731: .word .LANCHOR0 - .word .LANCHOR1+2196 + .word .LANCHOR1+2076 .word .LC0 .word .LANCHOR2 .word .LANCHOR3 @@ -15986,86 +16039,81 @@ queue_wait_first_req_completed: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #20 sub sp, sp, #20 - ldr r4, .L2816 - ldrb r5, [r4, #2775] @ zero_extendqisi2 - cmp r5, #255 - beq .L2760 + ldr r5, .L2824 + ldrb r4, [r5, #2774] @ zero_extendqisi2 + cmp r4, #255 + beq .L2767 mov r7, #48 - mla r2, r7, r5, r4 + mla r2, r7, r4, r5 ldrb r3, [r2, #1278] @ zero_extendqisi2 ldr r6, [r2, #1260] sub r2, r3, #1 cmp r2, #10 ldrls pc, [pc, r2, asl #2] - b .L2760 -.L2730: - .word .L2729 - .word .L2731 - .word .L2732 - .word .L2732 - .word .L2732 - .word .L2732 - .word .L2733 - .word .L2734 - .word .L2735 - .word .L2732 - .word .L2735 -.L2729: - mla r7, r7, r5, r4 + b .L2767 +.L2737: + .word .L2736 + .word .L2738 + .word .L2739 + .word .L2739 + .word .L2739 + .word .L2739 + .word .L2740 + .word .L2741 + .word .L2742 + .word .L2739 + .word .L2742 +.L2736: + mla r7, r7, r4, r5 bl nandc_wait_flash_ready ldr r3, [r7, #1244] ldr r1, [r7, #1240] cmp r3, #0 - beq .L2736 - ldr r2, .L2816 + beq .L2743 + ldr r2, .L2824+4 ldrb r0, [r7, #1276] @ zero_extendqisi2 - ldrb r2, [r2, #2772] @ zero_extendqisi2 + ldrb r2, [r2, #-2538] @ zero_extendqisi2 cmp r0, r2 moveq r1, r3 -.L2736: +.L2743: mov r3, #48 mov r0, r6 - mla r5, r3, r5, r4 + mla r5, r3, r4, r5 ldr r2, [r5, #1248] bl flash_complete_page_read - mov r3, #13 - strb r3, [r5, #1278] - ldrb r3, [r5, #1238] @ zero_extendqisi2 - orr r3, r3, #8 - strb r3, [r5, #1238] str r0, [r5, #1272] - b .L2760 -.L2731: + b .L2822 +.L2738: bl nandc_wait_flash_ready - mla r3, r7, r5, r4 + mla r3, r7, r4, r5 ldrb r6, [r3, #1236] @ zero_extendqisi2 ldr r2, [r3, #1244] ldr r10, [r3, #1240] - mla r7, r7, r6, r4 + mla r7, r7, r6, r5 cmp r2, #0 ldr r8, [r7, #1240] - beq .L2737 + beq .L2744 ldrb r1, [r3, #1276] @ zero_extendqisi2 - ldr r3, .L2816 - ldrb r3, [r3, #2772] @ zero_extendqisi2 + ldr r3, .L2824+4 + ldrb r3, [r3, #-2538] @ zero_extendqisi2 cmp r1, r3 moveq r10, r2 -.L2737: +.L2744: mov r3, #48 - mla r3, r3, r6, r4 + mla r3, r3, r6, r5 ldr r2, [r3, #1244] cmp r2, #0 - beq .L2738 + beq .L2745 ldrb r1, [r3, #1276] @ zero_extendqisi2 - ldr r3, .L2816 - ldrb r3, [r3, #2772] @ zero_extendqisi2 + ldr r3, .L2824+4 + ldrb r3, [r3, #-2538] @ zero_extendqisi2 cmp r1, r3 moveq r8, r2 -.L2738: +.L2745: mov r9, #48 mov r1, r10 - mla r3, r9, r5, r4 - mla r9, r9, r6, r4 + mla r3, r9, r4, r5 + mla r9, r9, r6, r5 add fp, r3, #1232 add fp, fp, #12 ldr r2, [r3, #1248] @@ -16079,23 +16127,24 @@ queue_wait_first_req_completed: bl flash_complete_plane_page_read cmn r7, #1 mov r9, r0 - beq .L2739 + beq .L2746 ldr r3, [sp, #12] ldr r3, [r3, #1256] cmn r3, #1 - beq .L2740 + beq .L2747 ldr r2, [fp, #4] ldr r2, [r2, #4] cmp r3, r2 - beq .L2740 -.L2739: + beq .L2747 +.L2746: mov fp, #48 - ldrb r0, [r4, #1189] @ zero_extendqisi2 - mla fp, fp, r5, r4 - ldrb lr, [r4, #2772] @ zero_extendqisi2 - rsb r1, r0, #24 - mvn r3, #0 - mvn r3, r3, asl r0 + ldr lr, .L2824+4 + mla fp, fp, r4, r5 + ldrb r3, [r5, #1153] @ zero_extendqisi2 + ldrb lr, [lr, #-2538] @ zero_extendqisi2 + mvn r0, #0 + rsb r1, r3, #24 + mvn r3, r0, asl r3 add ip, fp, #1232 add ip, ip, #12 str ip, [sp, #12] @@ -16110,128 +16159,130 @@ queue_wait_first_req_completed: ldr r2, [fp, #1256] cmn r2, #1 mov r7, r0 - beq .L2741 + beq .L2748 ldr ip, [sp, #12] ldr r3, [ip, #4] ldr r1, [r3, #4] cmp r2, r1 - beq .L2741 - ldr r0, .L2816+4 + beq .L2748 + ldr r0, .L2824+8 ldr r0, [r0] tst r0, #64 - beq .L2741 + beq .L2748 str r1, [sp] - ldr r0, .L2816+8 + ldr r0, .L2824+12 ldr r1, [fp, #1260] ldr r3, [r3] bl printk -.L2741: +.L2748: mov r3, #48 - mla r3, r3, r5, r4 + mla r3, r3, r4, r5 ldr r2, [r3, #1256] cmn r2, #1 - beq .L2740 + beq .L2747 ldr r3, [r3, #1248] ldr r3, [r3, #4] cmp r2, r3 - beq .L2740 - ldr r1, .L2816+12 + beq .L2747 + ldr r1, .L2824+16 movw r2, #431 - ldr r0, .L2816+16 + ldr r0, .L2824+20 bl printk bl dump_stack -.L2740: +.L2747: mov r3, #48 mov r2, #13 - mla r5, r3, r5, r4 + mla r4, r3, r4, r5 cmn r9, #1 - strb r2, [r5, #1278] - ldrb r2, [r5, #1238] @ zero_extendqisi2 - str r7, [r5, #1272] + strb r2, [r4, #1278] + ldrb r2, [r4, #1238] @ zero_extendqisi2 + str r7, [r4, #1272] orr r2, r2, #8 - strb r2, [r5, #1238] - beq .L2742 - ldr r2, .L2816 + strb r2, [r4, #1238] + beq .L2749 + ldr r2, .L2824 mla r3, r3, r6, r2 ldr r2, [r3, #1256] cmn r2, #1 - beq .L2744 + beq .L2751 ldr r3, [r3, #1248] ldr r3, [r3, #4] cmp r2, r3 - beq .L2744 -.L2742: - mov r5, #48 - ldrb r0, [r4, #1189] @ zero_extendqisi2 - mla r5, r5, r6, r4 - rsb r1, r0, #24 - ldrb ip, [r4, #2772] @ zero_extendqisi2 + beq .L2751 +.L2749: + mov r4, #48 + ldr ip, .L2824+4 + mla r4, r4, r6, r5 + ldrb r0, [r5, #1153] @ zero_extendqisi2 + ldrb ip, [ip, #-2538] @ zero_extendqisi2 mvn r3, #0 + rsb r1, r0, #24 mvn r3, r3, asl r0 - add r9, r5, #1232 + add r9, r4, #1232 add r9, r9, #12 - ldr r2, [r5, #1260] + ldr r2, [r4, #1260] str ip, [sp] and r0, r3, r2, lsr r1 bic r1, r2, r3, asl r1 mov r2, r8 - ldr r3, [r5, #1248] + ldr r3, [r4, #1248] uxtb r0, r0 bl flash_read_page_en - ldr r2, [r5, #1256] + ldr r2, [r4, #1256] cmn r2, #1 - beq .L2746 + beq .L2753 ldr r3, [r9, #4] ldr r1, [r3, #4] cmp r2, r1 - beq .L2746 - ldr r0, .L2816+4 + beq .L2753 + ldr r0, .L2824+8 ldr r0, [r0] tst r0, #64 - beq .L2746 + beq .L2753 str r1, [sp] - ldr r0, .L2816+8 - ldr r1, [r5, #1260] + ldr r0, .L2824+12 + ldr r1, [r4, #1260] ldr r3, [r3] bl printk -.L2746: +.L2753: mov r3, #48 - mla r3, r3, r6, r4 + mla r3, r3, r6, r5 ldr r2, [r3, #1256] cmn r2, #1 - beq .L2744 + beq .L2751 ldr r3, [r3, #1248] ldr r3, [r3, #4] cmp r2, r3 - beq .L2744 - ldr r1, .L2816+12 + beq .L2751 + ldr r1, .L2824+16 movw r2, #450 - ldr r0, .L2816+16 + ldr r0, .L2824+20 bl printk bl dump_stack -.L2744: +.L2751: mov r3, #48 - mla r4, r3, r6, r4 + mla r5, r3, r6, r5 + str r7, [r5, #1272] +.L2822: mov r3, #13 - strb r3, [r4, #1278] - ldrb r3, [r4, #1238] @ zero_extendqisi2 - str r7, [r4, #1272] + strb r3, [r5, #1278] + ldrb r3, [r5, #1238] @ zero_extendqisi2 orr r3, r3, #8 - strb r3, [r4, #1238] - b .L2760 -.L2732: + strb r3, [r5, #1238] + b .L2767 +.L2739: bl nandc_iqr_wait_flash_ready mov r0, r6 mov r1, #64 bl flash_wait_device_ready tst r0, #64 mov r7, r0 - beq .L2760 + beq .L2767 ands r6, r0, #5 mov r3, #48 - beq .L2748 - mla r5, r3, r5, r4 - ldr r0, .L2816+20 + beq .L2755 + mla r5, r3, r4, r5 + ldr r0, .L2824+24 mov r3, #12 mov r2, r7 mov r6, r7 @@ -16242,102 +16293,102 @@ queue_wait_first_req_completed: bl printk mvn r3, #0 str r3, [r5, #1272] - b .L2728 -.L2748: - mul r3, r3, r5 + b .L2735 +.L2755: + mul r3, r3, r4 mov r2, #13 - ldr ip, .L2816 - add r7, r4, r3 - strb r2, [r7, #1278] - ldr r2, [r4, #2804] - str r6, [r7, #1272] + add r8, r5, r3 + strb r2, [r8, #1278] + ldr r2, [r5, #2804] + str r6, [r8, #1272] ldr r1, [r2, #156] - ldr r2, .L2816+24 + ldr r2, .L2824+28 cmp r1, r2 - bne .L2760 - ldr r2, .L2816+28 + bne .L2767 + ldr r2, .L2824+32 add r3, r3, r2 ldrh r3, [r3, #2] cmp r3, #0 - bne .L2760 - ldrb r0, [ip, #1189] @ zero_extendqisi2 + bne .L2767 + ldr r3, .L2824 + ldr r7, .L2824+4 + ldr r2, [r8, #1260] + ldrb r0, [r3, #1153] @ zero_extendqisi2 mvn r3, #0 - ldr r2, [r7, #1260] + ldrb ip, [r7, #-2538] @ zero_extendqisi2 rsb r1, r0, #24 - ldr r8, .L2816+32 - ldrb ip, [ip, #2772] @ zero_extendqisi2 mvn r3, r3, asl r0 and r0, r3, r2, lsr r1 - bic r1, r2, r3, asl r1 str ip, [sp] + bic r1, r2, r3, asl r1 uxtb r0, r0 - ldr r3, [r8, #-100] - ldr r2, [r8, #-104] + ldr r3, [r7, #-84] + ldr r2, [r7, #-88] bl flash_read_page_en cmn r0, #1 mov r3, r0 - beq .L2749 - ldr r1, [r7, #1248] - ldr r2, [r8, #-100] + beq .L2756 + ldr r1, [r8, #1248] + ldr r2, [r7, #-84] ldr r1, [r1] ldr r2, [r2] cmp r1, r2 - beq .L2760 -.L2749: + beq .L2767 +.L2756: mov r2, #48 - ldr r0, .L2816+36 - mla r5, r2, r5, r4 - ldrb r2, [r4, #1168] @ zero_extendqisi2 - ldrb r1, [r5, #1237] @ zero_extendqisi2 + ldr r0, .L2824+36 + mla r4, r2, r4, r5 + ldrb r2, [r5, #1200] @ zero_extendqisi2 + ldrb r1, [r4, #1237] @ zero_extendqisi2 str r2, [sp] - ldr r2, [r5, #1260] + ldr r2, [r4, #1260] bl printk mvn r3, #0 - str r3, [r5, #1272] - b .L2728 -.L2735: - ldr r2, .L2816+40 + str r3, [r4, #1272] + b .L2735 +.L2742: + ldr r2, .L2824+40 cmp r3, #11 mov r1, #48 - ldrb r3, [r4, #1189] @ zero_extendqisi2 - mvn r7, #0 + ldrb r3, [r5, #1153] @ zero_extendqisi2 + mvn r8, #0 movne r9, #3 - mla ip, r1, r5, r2 + mla ip, r1, r4, r2 rsb lr, r3, #24 - mvn r3, r7, asl r3 + mvn r3, r8, asl r3 and r0, r3, r6, lsr lr moveq r9, #10 mov r10, r3 uxth r0, r0 -.L2751: +.L2758: ldrb r8, [ip] @ zero_extendqisi2 cmp r8, #255 - beq .L2815 + beq .L2823 mul r3, r1, r8 - ldr r7, .L2816 + ldr r7, .L2824 add ip, r2, r3 - add r3, r4, r3 + add r3, r5, r3 ldrb fp, [r3, #1278] @ zero_extendqisi2 cmp fp, r9 - bne .L2751 + bne .L2758 ldr r3, [r3, #1260] and r3, r10, r3, lsr lr cmp r0, r3 - bne .L2751 + bne .L2758 bl nandc_iqr_wait_flash_ready mov r0, r6 mov r1, #64 bl flash_wait_device_ready tst r0, #64 mov r6, r0 - beq .L2814 + beq .L2821 ands r2, r0, #15 mov r3, #48 - mul r3, r3, r5 - beq .L2755 + mul r3, r3, r4 + beq .L2762 add r7, r7, r3 mov r9, #12 - ldr r0, .L2816+44 + ldr r0, .L2824+44 mov r2, r6 ldrb r1, [r7, #1237] @ zero_extendqisi2 str r9, [sp] @@ -16346,81 +16397,81 @@ queue_wait_first_req_completed: mvn r3, #0 strb r9, [r7, #1278] str r3, [r7, #1272] - b .L2754 -.L2755: - add r6, r7, r3 + b .L2761 +.L2762: + add r9, r7, r3 mov r1, #13 - str r2, [r6, #1272] + str r2, [r9, #1272] ldr r2, [r7, #2804] - strb r1, [r6, #1278] + strb r1, [r9, #1278] ldr r1, [r2, #156] - ldr r2, .L2816+24 + ldr r2, .L2824+28 cmp r1, r2 - bne .L2814 - ldr r2, .L2816+40 + bne .L2821 + ldr r2, .L2824+40 add r3, r2, r3 ldrh r3, [r3, #34] cmp r3, #0 - bne .L2814 - ldr r2, [r6, #1260] + bne .L2821 + ldr r6, .L2824+4 mvn r3, #0 - ldrb r0, [r7, #1189] @ zero_extendqisi2 - ldr r9, .L2816+32 + ldr r2, [r9, #1260] + ldrb r0, [r7, #1153] @ zero_extendqisi2 + ldrb ip, [r6, #-2538] @ zero_extendqisi2 rsb r1, r0, #24 - ldrb ip, [r7, #2772] @ zero_extendqisi2 mvn r3, r3, asl r0 and r0, r3, r2, lsr r1 - bic r1, r2, r3, asl r1 str ip, [sp] + bic r1, r2, r3, asl r1 uxtb r0, r0 - ldr r3, [r9, #-100] - ldr r2, [r9, #-104] + ldr r3, [r6, #-84] + ldr r2, [r6, #-88] bl flash_read_page_en cmn r0, #1 mov r3, r0 - beq .L2757 - ldr r1, [r6, #1248] - ldr r2, [r9, #-100] + beq .L2764 + ldr r1, [r9, #1248] + ldr r2, [r6, #-84] ldr r1, [r1] ldr r2, [r2] cmp r1, r2 - beq .L2814 -.L2757: + beq .L2821 +.L2764: mov r6, #48 - ldrb r2, [r4, #1168] @ zero_extendqisi2 - mla r6, r6, r5, r4 - ldr r0, .L2816+48 + ldrb r2, [r5, #1200] @ zero_extendqisi2 + mla r6, r6, r4, r5 + ldr r0, .L2824+48 ldrb r1, [r6, #1237] @ zero_extendqisi2 str r2, [sp] ldr r2, [r6, #1260] bl printk mvn r3, #0 str r3, [r6, #1272] -.L2814: +.L2821: mov r6, #0 -.L2754: +.L2761: mov r3, #48 - mla r5, r3, r5, r4 - mla r4, r3, r8, r4 - ldrb r2, [r5, #1278] @ zero_extendqisi2 - ldr r3, [r5, #1272] - strb r2, [r4, #1278] - str r3, [r4, #1272] - b .L2728 -.L2815: + mla r4, r3, r4, r5 + mla r5, r3, r8, r5 + ldrb r2, [r4, #1278] @ zero_extendqisi2 + ldr r3, [r4, #1272] + strb r2, [r5, #1278] + str r3, [r5, #1272] + b .L2735 +.L2823: mvn r6, #0 - b .L2728 -.L2733: + b .L2735 +.L2740: mov r0, r6 mov r1, #32 bl flash_wait_device_ready tst r0, #32 - beq .L2760 + beq .L2767 ands r6, r0, #15 mov r3, #48 - mlaeq r5, r3, r5, r4 + mlaeq r5, r3, r4, r5 movne r2, #12 - mlane r3, r3, r5, r4 + mlane r3, r3, r4, r5 moveq r3, #13 movne r6, r0 streqb r3, [r5, #1278] @@ -16428,36 +16479,36 @@ queue_wait_first_req_completed: strneb r2, [r3, #1278] mvnne r2, #0 strne r2, [r3, #1272] - b .L2728 -.L2734: + b .L2735 +.L2741: mov r0, r6 mov r1, #64 bl flash_wait_device_ready tst r0, #64 movne r3, #48 - mlane r5, r3, r5, r4 + mlane r5, r3, r4, r5 movne r3, #7 strne r0, [r5, #1272] strneb r3, [r5, #1278] -.L2760: +.L2767: mov r6, #0 -.L2728: +.L2735: mov r0, r6 add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2817: +.L2825: .align 2 -.L2816: +.L2824: .word .LANCHOR0 + .word .LANCHOR3 .word .LANCHOR2 .word .LC174 - .word .LANCHOR1+2224 + .word .LANCHOR1+2104 .word .LC0 .word .LC175 .word 1145785929 .word .LANCHOR0+1268 - .word .LANCHOR3 .word .LC176 .word .LANCHOR0+1236 .word .LC177 @@ -16478,49 +16529,49 @@ sblk_prog_page: ldrh r3, [r0, #34] mov r5, r1 cmp r3, #0 - beq .L2819 - ldr r3, .L2850 + beq .L2827 + ldr r3, .L2858 ldr r3, [r3] tst r3, #256 - beq .L2819 - ldr r0, .L2850+4 + beq .L2827 + ldr r0, .L2858+4 mov r2, r5 ldr r1, [r4, #24] bl printk -.L2819: - ldr r8, .L2850+8 +.L2827: + ldr r8, .L2858+8 mov r6, #0 mov r9, r8 -.L2820: +.L2828: cmp r5, #0 - beq .L2847 + beq .L2855 ldrb r3, [r4] @ zero_extendqisi2 ldr r7, [r4, #24] str r3, [sp, #4] -.L2821: +.L2829: mov r0, r7 mov r1, #1 bl queue_lun_state cmp r0, #0 - beq .L2849 + beq .L2857 bl queue_wait_first_req_completed bl queue_remove_completed_req - b .L2821 -.L2849: + b .L2829 +.L2857: cmp r5, #1 - beq .L2823 - ldrb r3, [r8, #1233] @ zero_extendqisi2 + beq .L2831 + ldrb r3, [r8, #1198] @ zero_extendqisi2 cmp r3, #0 - beq .L2823 - ldrb r3, [r8, #1197] @ zero_extendqisi2 + beq .L2831 + ldrb r3, [r8, #1161] @ zero_extendqisi2 cmp r3, #0 - beq .L2824 -.L2823: + beq .L2832 +.L2831: mov r0, r4 bl queue_prog_cmd - b .L2825 -.L2824: - ldrb r3, [r8, #1189] @ zero_extendqisi2 + b .L2833 +.L2832: + ldrb r3, [r8, #1153] @ zero_extendqisi2 mvn fp, #0 rsb ip, r3, #24 mov ip, r7, lsr ip @@ -16528,18 +16579,18 @@ sblk_prog_page: ldrb r3, [r4] @ zero_extendqisi2 cmp r3, #255 uxth fp, fp - bne .L2826 - ldr r1, .L2850+12 + bne .L2834 + ldr r1, .L2858+12 movw r2, #697 - ldr r0, .L2850+16 + ldr r0, .L2858+16 bl printk bl dump_stack -.L2826: +.L2834: ldrb r3, [r4] @ zero_extendqisi2 mov r2, #48 mov r10, #1 mla r3, r2, r3, r9 - ldrb r2, [r9, #1189] @ zero_extendqisi2 + ldrb r2, [r9, #1153] @ zero_extendqisi2 ldr ip, [r3, #1260] rsb r3, r2, #24 mov r2, r10, asl r2 @@ -16547,10 +16598,10 @@ sblk_prog_page: and r2, r2, ip, lsr r3 uxth r2, r2 cmp fp, r2 - bne .L2827 - ldr r2, .L2850+20 + bne .L2835 + ldr r2, .L2858+20 ldrh fp, [r2] - ldr r2, .L2850+24 + ldr r2, .L2858+24 rsb r3, fp, r3 mov r0, r10, asl fp mov r3, r10, asl r3 @@ -16572,9 +16623,9 @@ sblk_prog_page: cmp r7, ip movne fp, #0 cmp fp, #0 - beq .L2828 + beq .L2836 cmp r6, lr - beq .L2827 + beq .L2835 mov r0, #17 ldr r1, [r4, #24] ldr r2, [r4, #4] @@ -16586,42 +16637,42 @@ sblk_prog_page: mov r1, r4 strb r3, [r4, #42] mvn r3, #0 - ldr r0, .L2850+28 + ldr r0, .L2858+28 strb r3, [r4] bl buf_add_tail - b .L2825 -.L2828: + b .L2833 +.L2836: mov r0, r4 mov r6, fp bl queue_prog_cmd - b .L2825 -.L2827: + b .L2833 +.L2835: mov r0, r4 mov r6, #0 bl queue_prog_cmd -.L2825: +.L2833: subs r5, r5, #1 - ldrne r3, .L2850+32 + ldrne r3, .L2858+32 movne r4, #48 ldrne r2, [sp, #4] mlane r4, r4, r2, r3 - bne .L2820 -.L2847: + bne .L2828 +.L2855: mov r0, #0 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2851: +.L2859: .align 2 -.L2850: +.L2858: .word .LANCHOR2 .word .LC179 .word .LANCHOR0 - .word .LANCHOR1+2256 + .word .LANCHOR1+2136 .word .LC0 .word .LANCHOR3-3132 .word .LANCHOR3 - .word .LANCHOR0+2775 + .word .LANCHOR0+2774 .word .LANCHOR0+1236 .fnend .size sblk_prog_page, .-sblk_prog_page @@ -16634,19 +16685,19 @@ sblk_wait_write_queue_completed: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, lr} .save {r4, lr} - ldr r4, .L2857 -.L2853: - ldrb r3, [r4, #2775] @ zero_extendqisi2 + ldr r4, .L2865 +.L2861: + ldrb r3, [r4, #2774] @ zero_extendqisi2 cmp r3, #255 - beq .L2856 + beq .L2864 bl queue_wait_first_req_completed bl queue_remove_completed_req - b .L2853 -.L2856: + b .L2861 +.L2864: ldmfd sp!, {r4, pc} -.L2858: +.L2866: .align 2 -.L2857: +.L2865: .word .LANCHOR0 .fnend .size sblk_wait_write_queue_completed, .-sblk_wait_write_queue_completed @@ -16659,20 +16710,20 @@ ftl_flush: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} - ldr r3, .L2865 - ldr r5, .L2865+4 + ldr r3, .L2873 + ldr r5, .L2873+4 ldrb r1, [r3, #2801] @ zero_extendqisi2 mov r4, r3 cmp r1, #0 - beq .L2860 - ldrb r2, [r5, #-96] @ zero_extendqisi2 + beq .L2868 + ldrb r2, [r5, #-80] @ zero_extendqisi2 mov r0, #48 - ldr r3, .L2865+8 + ldr r3, .L2873+8 mla r0, r0, r2, r3 bl sblk_prog_page -.L2860: +.L2868: mvn r3, #0 - strb r3, [r5, #-96] + strb r3, [r5, #-80] mov r3, #0 strb r3, [r4, #2801] bl sblk_wait_write_queue_completed @@ -16680,9 +16731,9 @@ ftl_flush: movw r0, #65535 ldmfd sp!, {r3, r4, r5, lr} b ftl_vpn_decrement -.L2866: +.L2874: .align 2 -.L2865: +.L2873: .word .LANCHOR0 .word .LANCHOR3 .word .LANCHOR0+1236 @@ -16697,21 +16748,21 @@ zftl_cache_flush: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, lr} .save {r3, lr} - ldr r3, .L2872 + ldr r3, .L2880 ldrb r3, [r3, #2801] @ zero_extendqisi2 cmp r3, #0 ldmeqfd sp!, {r3, pc} bl timer_get_time - ldr r3, .L2872+4 - ldr r3, [r3, #-92] + ldr r3, .L2880+4 + ldr r3, [r3, #-76] add r3, r3, #100 cmp r0, r3 ldmlsfd sp!, {r3, pc} ldmfd sp!, {r3, lr} b ftl_flush -.L2873: +.L2881: .align 2 -.L2872: +.L2880: .word .LANCHOR0 .word .LANCHOR3 .fnend @@ -16751,12 +16802,12 @@ ftl_read_ppa_page: .save {r4, r5, r6, r7, r8, lr} .pad #8 mov r8, r3 - ldr r3, .L2878 + ldr r3, .L2886 mov r7, r1 mov r6, r2 mvn r2, #0 mov r5, r0 - ldrb r1, [r3, #1189] @ zero_extendqisi2 + ldrb r1, [r3, #1153] @ zero_extendqisi2 rsb r4, r1, #24 mvn r2, r2, asl r1 and r4, r2, r0, lsr r4 @@ -16771,9 +16822,9 @@ ftl_read_ppa_page: add sp, sp, #8 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L2879: +.L2887: .align 2 -.L2878: +.L2886: .word .LANCHOR0 .fnend .size ftl_read_ppa_page, .-ftl_read_ppa_page @@ -16788,35 +16839,35 @@ sblk_read_page: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #20 sub sp, sp, #20 - ldr r10, .L2908 + ldr r10, .L2916 mov r8, r0 mov r6, r1 mov r4, r0 mov r5, r1 -.L2881: +.L2889: cmp r5, #0 - beq .L2904 + beq .L2912 ldrb fp, [r4] @ zero_extendqisi2 ldr r9, [r4, #24] -.L2882: +.L2890: mov r0, r9 mov r1, #0 bl queue_lun_state cmp r0, #0 - beq .L2906 + beq .L2914 bl queue_wait_first_req_completed bl queue_remove_completed_req - b .L2882 -.L2906: + b .L2890 +.L2914: cmp r5, #1 - beq .L2888 - ldr r3, .L2908+4 - ldrb r3, [r3, #-88] @ zero_extendqisi2 + beq .L2896 + ldr r3, .L2916+4 + ldrb r3, [r3, #-72] @ zero_extendqisi2 cmp r3, #0 - beq .L2888 - ldr r3, .L2908 + beq .L2896 + ldr r3, .L2916 mvn lr, #0 - ldrb r2, [r3, #1189] @ zero_extendqisi2 + ldrb r2, [r3, #1153] @ zero_extendqisi2 rsb r3, r2, #24 mov r3, r9, lsr r3 bic lr, r3, lr, asl r2 @@ -16824,16 +16875,16 @@ sblk_read_page: str r3, [sp, #4] ldrb r3, [r4] @ zero_extendqisi2 cmp r3, #255 - bne .L2887 - ldr r1, .L2908+8 + bne .L2895 + ldr r1, .L2916+8 movw r2, #782 - ldr r0, .L2908+12 + ldr r0, .L2916+12 bl printk bl dump_stack -.L2887: +.L2895: ldrb r3, [r4] @ zero_extendqisi2 mov r2, #48 - ldrb r0, [r10, #1189] @ zero_extendqisi2 + ldrb r0, [r10, #1153] @ zero_extendqisi2 mvn ip, #0 mul r3, r2, r3 rsb r2, r0, #24 @@ -16844,12 +16895,12 @@ sblk_read_page: ldr r0, [sp, #4] uxth r2, r2 cmp r0, r2 - bne .L2888 - ldr r2, .L2908+16 + bne .L2896 + ldr r2, .L2916+16 ldrh r2, [r2] add r9, r2, r9 cmp r1, r9 - bne .L2888 + bne .L2896 ldr r0, [r4, #24] mvn r9, #0 str r3, [sp, #12] @@ -16861,14 +16912,14 @@ sblk_read_page: strb ip, [r4, #42] mov r1, r4 strb r2, [r4, #43] - ldr r0, .L2908+20 + ldr r0, .L2916+20 strb r9, [r4] str ip, [sp, #8] str r2, [sp, #4] bl buf_add_tail - ldr r1, .L2908+24 + ldr r1, .L2916+24 strb r9, [r7, #1236] - ldr r0, .L2908+20 + ldr r0, .L2916+20 ldr ip, [sp, #8] ldr r2, [sp, #4] ldr r3, [sp, #12] @@ -16876,47 +16927,47 @@ sblk_read_page: strb r2, [r7, #1279] add r1, r1, r3 bl buf_add_tail - b .L2886 -.L2888: + b .L2894 +.L2896: mov r0, r4 bl queue_read_cmd -.L2886: +.L2894: subs r5, r5, #1 - ldrne r3, .L2908+24 + ldrne r3, .L2916+24 movne r4, #48 mlane r4, r4, fp, r3 - bne .L2881 -.L2904: - ldr r4, .L2908+24 + bne .L2889 +.L2912: + ldr r4, .L2916+24 mov r5, #48 -.L2892: +.L2900: cmp r6, #0 - beq .L2907 + beq .L2915 ldrb r3, [r8, #42] @ zero_extendqisi2 cmp r3, #13 - bne .L2893 + bne .L2901 ldrb r3, [r8] @ zero_extendqisi2 sub r6, r6, #1 cmp r3, #255 mlane r8, r5, r3, r4 -.L2893: +.L2901: bl queue_wait_first_req_completed bl queue_remove_completed_req - b .L2892 -.L2907: + b .L2900 +.L2915: mov r0, r6 add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2909: +.L2917: .align 2 -.L2908: +.L2916: .word .LANCHOR0 .word .LANCHOR3 - .word .LANCHOR1+2272 + .word .LANCHOR1+2152 .word .LC0 .word .LANCHOR3-3066 - .word .LANCHOR0+2775 + .word .LANCHOR0+2774 .word .LANCHOR0+1236 .fnend .size sblk_read_page, .-sblk_read_page @@ -16931,65 +16982,65 @@ gc_check_data_one_wl: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #36 sub sp, sp, #36 - ldr r6, .L2946 + ldr r6, .L2954 ldr r3, [r6, #2836] - ldr r9, [r6, #1092] + ldr r9, [r6, #1096] cmp r3, #0 - bne .L2911 + bne .L2919 mov r0, #1 bl buf_alloc str r0, [r6, #2836] -.L2911: +.L2919: ldr r4, [r6, #2836] cmp r4, #0 - bne .L2912 - ldr r1, .L2946+4 + bne .L2920 + ldr r1, .L2954+4 movw r2, #729 - ldr r0, .L2946+8 + ldr r0, .L2954+8 bl printk bl dump_stack -.L2912: - ldr fp, .L2946+12 +.L2920: + ldr fp, .L2954+12 add r10, r9, #96 mov r8, #0 mov ip, fp -.L2913: +.L2921: ldrb r3, [r9, #89] @ zero_extendqisi2 - ldr r5, .L2946+16 + ldr r5, .L2954+16 cmp r8, r3 - bge .L2944 + bge .L2952 mov r7, #1 -.L2924: +.L2932: ldrh r3, [r5, #16] cmp r7, r3 - bgt .L2945 - ldr r2, .L2946+20 + bgt .L2953 + ldr r2, .L2954+20 ldrb r1, [fp, #-3124] @ zero_extendqisi2 ldrh r3, [r10] ldrh r2, [r2] cmp r1, #2 mul r2, r2, r3 - beq .L2914 - ldr r3, .L2946 - ldrb r3, [r3, #1196] @ zero_extendqisi2 + beq .L2922 + ldr r3, .L2954 + ldrb r3, [r3, #1160] @ zero_extendqisi2 cmp r3, #0 - beq .L2915 -.L2914: + beq .L2923 +.L2922: ldrh r3, [r5, #12] sub r3, r3, #1 add r3, r3, r2 add r3, r3, r7 orr r3, r3, r1, asl #24 - b .L2943 -.L2915: - ldr r3, .L2946+16 + b .L2951 +.L2923: + ldr r3, .L2954+16 cmp r1, #3 ldrh r3, [r3, #12] addne r2, r2, r3 strne r2, [r4, #24] - bne .L2916 - ldr r1, .L2946 - ldrb r1, [r1, #1197] @ zero_extendqisi2 + bne .L2924 + ldr r1, .L2954 + ldrb r1, [r1, #1161] @ zero_extendqisi2 cmp r1, #0 addne r3, r3, r3, asl #1 addeq r3, r2, r3 @@ -16998,9 +17049,9 @@ gc_check_data_one_wl: addne r3, r3, r2 addne r3, r3, r7 orrne r3, r3, #50331648 -.L2943: +.L2951: str r3, [r4, #24] -.L2916: +.L2924: mov r0, r4 mov r1, #1 str ip, [sp, #28] @@ -17008,33 +17059,33 @@ gc_check_data_one_wl: ldr r2, [r4, #36] cmn r2, #1 ldr ip, [sp, #28] - beq .L2919 - ldr r0, [ip, #-172] + beq .L2927 + ldr r0, [ip, #-124] ldrh r1, [r5, #18] ldr r3, [r4, #12] ldr lr, [r0, r1, asl #2] ldr r0, [r3, #4] cmp lr, r0 - bne .L2919 - ldr r0, [fp, #-168] + bne .L2927 + ldr r0, [fp, #-120] ldr r3, [r3, #8] ldr r1, [r0, r1, asl #2] cmp r1, r3 - beq .L2920 -.L2919: + beq .L2928 +.L2927: ldrh r3, [r5, #18] - ldr r1, [ip, #-172] + ldr r1, [ip, #-124] mov r0, r3, asl #2 ldr r3, [r1, r3, asl #2] cmn r3, #1 - beq .L2920 - ldr r1, .L2946+24 + beq .L2928 + ldr r1, .L2954+24 ldr r1, [r1] tst r1, #1024 - beq .L2921 - ldr ip, .L2946+12 + beq .L2929 + ldr ip, .L2954+12 ldr r1, [r4, #12] - ldr ip, [ip, #-168] + ldr ip, [ip, #-120] ldr r0, [ip, r0] str r0, [sp] ldr r0, [r1] @@ -17044,68 +17095,68 @@ gc_check_data_one_wl: ldr r0, [r1, #8] str r0, [sp, #12] ldr r1, [r1, #12] - ldr r0, .L2946+28 + ldr r0, .L2954+28 str r1, [sp, #16] ldr r1, [r4, #24] bl printk -.L2921: +.L2929: ldrh r3, [r9, #80] mov r1, #0 - ldr r2, [r6, #1088] + ldr r2, [r6, #1092] mov r3, r3, asl #1 strh r1, [r2, r3] @ movhi - ldr r2, [r6, #1092] + ldr r2, [r6, #1096] ldr r3, [r2, #556] add r3, r3, #1 str r3, [r2, #556] ldr r3, [r6, #2804] ldr r2, [r3, #156] - ldr r3, .L2946+32 + ldr r3, .L2954+32 cmp r2, r3 - bne .L2927 - ldr r3, .L2946+12 - ldrb r3, [r3, #-2536] @ zero_extendqisi2 + bne .L2935 + ldr r3, .L2954+12 + ldrb r3, [r3, #-2534] @ zero_extendqisi2 cmp r3, r1 - bne .L2927 - ldr r3, .L2946+12 + bne .L2935 + ldr r3, .L2954+12 ldrb r3, [r3, #-3122] @ zero_extendqisi2 cmp r3, r1 - bne .L2927 + bne .L2935 ldr r0, [r4, #24] bl ftl_mask_bad_block - b .L2927 -.L2920: + b .L2935 +.L2928: ldrh r3, [r5, #18] add r7, r7, #1 add r3, r3, #1 strh r3, [r5, #18] @ movhi - b .L2924 -.L2945: + b .L2932 +.L2953: add r8, r8, #1 add r10, r10, #2 - b .L2913 -.L2944: + b .L2921 +.L2952: ldrh r3, [r5, #12] add r2, r3, #1 strh r2, [r5, #12] @ movhi - ldr r2, .L2946+12 + ldr r2, .L2954+12 ldrb r0, [r2, #-3122] @ zero_extendqisi2 cmp r0, #0 addne r3, r3, #2 strneh r3, [r5, #12] @ movhi movne r0, #0 - b .L2922 -.L2927: + b .L2930 +.L2935: mvn r0, #0 -.L2922: +.L2930: add sp, sp, #36 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2947: +.L2955: .align 2 -.L2946: +.L2954: .word .LANCHOR0 - .word .LANCHOR1+2288 + .word .LANCHOR1+2168 .word .LC0 .word .LANCHOR3 .word .LANCHOR0+2828 @@ -17127,16 +17178,16 @@ sblk_tlc_prog_one_page: mov r4, r0 ldr r3, [r0] ldr r6, [r3, #24] -.L2949: +.L2957: mov r0, r6 mov r1, #1 bl queue_lun_state subs r5, r0, #0 - beq .L2952 + beq .L2960 bl queue_wait_first_req_completed bl queue_remove_completed_req - b .L2949 -.L2952: + b .L2957 +.L2960: mov r0, r4 mov r1, #1 bl queue_tlc_prog_cmd @@ -17160,28 +17211,28 @@ sblk_xlc_prog_pages: mov r7, r1 mov r10, r2 ldr r4, [r3, #24] -.L2954: +.L2962: mov r0, r4 mov r1, #1 bl queue_lun_state subs r9, r0, #0 - beq .L2966 + beq .L2974 bl queue_wait_first_req_completed bl queue_remove_completed_req - b .L2954 -.L2966: + b .L2962 +.L2974: cmp r10, #2 - bne .L2956 - ldr r2, .L2968 + bne .L2964 + ldr r2, .L2976 ldr lr, [r7] - ldrb r3, [r2, #1233] @ zero_extendqisi2 + ldrb r3, [r2, #1198] @ zero_extendqisi2 cmp r3, #0 ldreq r4, [lr, #24] - beq .L2961 + beq .L2969 ldr r3, [r5] mov fp, #1 - ldrb r4, [r2, #1189] @ zero_extendqisi2 - ldrb r2, [r2, #1197] @ zero_extendqisi2 + ldrb r4, [r2, #1153] @ zero_extendqisi2 + ldrb r2, [r2, #1161] @ zero_extendqisi2 ldr r0, [r3, #24] rsb r1, r4, #24 mov r4, fp, asl r4 @@ -17194,7 +17245,7 @@ sblk_xlc_prog_pages: and r8, ip, r0 and r6, r6, ip uxtb r4, r4 - beq .L2958 + beq .L2966 mov r0, r4 bl zftl_flash_exit_slc_mode ldr r3, [r5] @@ -17272,8 +17323,8 @@ sblk_xlc_prog_pages: str r3, [sp, #8] mov r3, r4 bl flash_start_one_pass_page_prog - b .L2959 -.L2958: + b .L2967 +.L2966: ldrb r0, [r3, #44] @ zero_extendqisi2 mov r1, fp str r8, [sp] @@ -17348,56 +17399,56 @@ sblk_xlc_prog_pages: str r3, [sp, #8] mov r3, r4 bl flash_start_tlc_page_prog -.L2959: +.L2967: ldr r1, [r5] mov r3, #5 - ldr r0, .L2968+4 + ldr r0, .L2976+4 strb r3, [r1, #42] mov r3, #1 strb r3, [r1, #43] mvn r3, #0 strb r3, [r1] bl buf_add_tail - b .L2960 -.L2961: + b .L2968 +.L2969: mov r0, r4 mov r1, #1 bl queue_lun_state subs r6, r0, #0 - beq .L2967 + beq .L2975 bl queue_wait_first_req_completed bl queue_remove_completed_req - b .L2961 -.L2967: + b .L2969 +.L2975: mov r0, r5 mov r1, #1 bl queue_tlc_prog_cmd mov r0, r7 mov r1, r6 bl queue_tlc_prog_cmd -.L2963: +.L2971: mov r0, r4 mov r1, #1 bl queue_lun_state cmp r0, #0 - beq .L2960 + beq .L2968 bl queue_wait_first_req_completed bl queue_remove_completed_req - b .L2963 -.L2956: + b .L2971 +.L2964: mov r0, r5 mov r1, #1 bl queue_tlc_prog_cmd -.L2960: +.L2968: mov r0, #0 add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2969: +.L2977: .align 2 -.L2968: +.L2976: .word .LANCHOR0 - .word .LANCHOR0+2775 + .word .LANCHOR0+2774 .fnend .size sblk_xlc_prog_pages, .-sblk_xlc_prog_pages .align 2 @@ -17411,27 +17462,27 @@ sblk_3d_mlc_prog_pages: .save {r4, r5, r6, r7, r8, r9, lr} .pad #12 add r5, r0, #8 - ldr r9, .L2978 + ldr r9, .L2986 mov r7, r1 mov r8, #1 -.L2971: +.L2979: cmp r7, #0 - beq .L2976 + beq .L2984 ldr r3, [r5, #-8] ldr r4, [r3, #24] -.L2972: +.L2980: mov r0, r4 mov r1, #1 bl queue_lun_state cmp r0, #0 - beq .L2977 + beq .L2985 bl queue_wait_first_req_completed bl queue_remove_completed_req - b .L2972 -.L2977: + b .L2980 +.L2985: ldr r3, [r5, #-8] sub r7, r7, #1 - ldrb r4, [r9, #1189] @ zero_extendqisi2 + ldrb r4, [r9, #1153] @ zero_extendqisi2 add r5, r5, #8 ldr r2, [r3, #24] rsb r3, r4, #24 @@ -17465,23 +17516,23 @@ sblk_3d_mlc_prog_pages: bl nandc_de_cs ldr r1, [r5, #-16] mov r3, #4 - ldr r0, .L2978+4 + ldr r0, .L2986+4 strb r3, [r1, #42] mvn r3, #0 strb r8, [r1, #43] strb r3, [r1] bl buf_add_tail - b .L2971 -.L2976: + b .L2979 +.L2984: mov r0, r7 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc} -.L2979: +.L2987: .align 2 -.L2978: +.L2986: .word .LANCHOR0 - .word .LANCHOR0+2775 + .word .LANCHOR0+2774 .fnend .size sblk_3d_mlc_prog_pages, .-sblk_3d_mlc_prog_pages .align 2 @@ -17496,67 +17547,67 @@ flash_prog_page_en: .pad #28 sub sp, sp, #28 mov r8, r3 - ldr r6, .L3010 + ldr r6, .L3018 ldrb r3, [sp, #68] @ zero_extendqisi2 mov r7, r0 mov r5, r1 mov r9, r2 ubfx r4, r1, #24, #2 str r3, [sp, #16] - ldrb r3, [r6, #1101] @ zero_extendqisi2 + ldrb r3, [r6, #1109] @ zero_extendqisi2 cmp r3, r0 - bhi .L2981 - ldr r1, .L3010+4 + bhi .L2989 + ldr r1, .L3018+4 movw r2, #642 - ldr r0, .L3010+8 + ldr r0, .L3018+8 bl printk bl dump_stack -.L2981: - ldrb r2, [r6, #1101] @ zero_extendqisi2 - ldr r3, .L3010 +.L2989: + ldrb r2, [r6, #1109] @ zero_extendqisi2 + ldr r3, .L3018 cmp r2, r7 mvnls r0, #0 - bls .L2982 + bls .L2990 add r2, r3, r7 cmp r4, #0 - ldrb r10, [r2, #1180] @ zero_extendqisi2 - bne .L2994 + ldrb r10, [r2, #1144] @ zero_extendqisi2 + bne .L3002 ldrb r2, [r3] @ zero_extendqisi2 cmp r2, #0 - beq .L2984 + beq .L2992 ldrb r3, [r3, #1] @ zero_extendqisi2 cmp r3, #0 - beq .L2994 -.L2984: + beq .L3002 +.L2992: ldrh fp, [r6, #2] mov r0, r5 mov r1, fp bl __aeabi_uidiv ldrb r3, [r6, #1] @ zero_extendqisi2 cmp r3, #0 - ldreq r3, .L3010 + ldreq r3, .L3018 mul r0, fp, r0 rsb r4, r0, r5 mov r4, r4, asl #1 addeq r4, r3, r4 ldreqh r4, [r4, #4] add r4, r4, r0 - b .L2983 -.L2994: + b .L2991 +.L3002: mov r4, r5 -.L2983: - ldr fp, .L3010+12 - ldr r6, .L3010+16 -.L2989: +.L2991: + ldr fp, .L3018+12 + ldr r6, .L3018+16 +.L2997: ldr r3, [fp] tst r3, #16 - beq .L2986 - ldr r0, .L3010+20 + beq .L2994 + ldr r0, .L3018+20 mov r1, r10 mov r2, r5 mov r3, r4 bl printk -.L2986: +.L2994: ldr r3, [sp, #64] mov r0, r10 mov r1, r4 @@ -17567,14 +17618,14 @@ flash_prog_page_en: ldr r3, [sp, #16] mov ip, r0 cmp r3, #0 - beq .L2987 + beq .L2995 ldr r3, [sp, #64] mov r1, r5 str r0, [sp, #20] mov r0, r7 str r3, [sp] - ldr r3, [r6, #-100] - ldr r2, [r6, #-104] + ldr r3, [r6, #-84] + ldr r2, [r6, #-88] bl flash_read_page_en sub r3, r0, #512 cmp r0, #512 @@ -17582,67 +17633,67 @@ flash_prog_page_en: clz r3, r3 mov r3, r3, lsr #5 str r3, [sp, #12] - beq .L2988 - ldr r3, [r6, #-104] + beq .L2996 + ldr r3, [r6, #-88] ldr r2, [r9] ldr ip, [sp, #20] ldr r3, [r3] cmp r2, r3 - bne .L2988 - ldr r3, [r6, #-100] + bne .L2996 + ldr r3, [r6, #-84] ldr r2, [r8] ldr r3, [r3] cmp r2, r3 - beq .L2987 -.L2988: + beq .L2995 +.L2996: mov r2, #4 - ldr r0, .L3010+24 + ldr r0, .L3018+24 mov r3, r2 mov r1, r9 bl rknand_print_hex mov r2, #4 mov r3, r2 - ldr r0, .L3010+28 + ldr r0, .L3018+28 mov r1, r8 bl rknand_print_hex mov r2, #4 mov r3, r2 - ldr r0, .L3010+32 - ldr r1, [r6, #-100] + ldr r0, .L3018+32 + ldr r1, [r6, #-84] bl rknand_print_hex mov r2, #4 mov r3, r2 - ldr r0, .L3010+36 - ldr r1, [r6, #-104] + ldr r0, .L3018+36 + ldr r1, [r6, #-88] bl rknand_print_hex ldr r3, [sp, #12] cmp r3, #0 - bne .L2989 -.L2991: + bne .L2997 +.L2999: mov r1, r5 - ldr r0, .L3010+40 + ldr r0, .L3018+40 bl printk - ldr r1, .L3010+4 + ldr r1, .L3018+4 movw r2, #685 - ldr r0, .L3010+8 + ldr r0, .L3018+8 bl printk bl dump_stack mvn ip, #0 - b .L2990 -.L2987: + b .L2998 +.L2995: cmn ip, #1 - beq .L2991 -.L2990: + beq .L2999 +.L2998: mov r0, ip -.L2982: +.L2990: add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3011: +.L3019: .align 2 -.L3010: +.L3018: .word .LANCHOR0 - .word .LANCHOR1+2312 + .word .LANCHOR1+2192 .word .LC0 .word .LANCHOR2 .word .LANCHOR3 @@ -17680,24 +17731,24 @@ ftl_prog_page: bl flash_prog_page_en cmn r0, #1 mov r4, r0 - bne .L3013 - ldr r1, .L3015 + bne .L3021 + ldr r1, .L3023 movw r2, #2678 - ldr r0, .L3015+4 + ldr r0, .L3023+4 bl printk bl dump_stack - ldr r0, .L3015+8 + ldr r0, .L3023+8 mov r1, r5 bl printk -.L3013: +.L3021: mov r0, r4 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, pc} -.L3016: +.L3024: .align 2 -.L3015: - .word .LANCHOR1+2332 +.L3023: + .word .LANCHOR1+2212 .word .LC0 .word .LC186 .fnend @@ -17711,206 +17762,210 @@ ftl_info_flush: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - mov r1, #0 - ldr r6, .L3052 .pad #20 sub sp, sp, #20 - mov r10, r0 - ldr r0, .L3052+4 - ldr r4, .L3052+8 - mov r8, #0 - ldrb r2, [r6, #2772] @ zero_extendqisi2 - ldr r9, .L3052+12 - mov r7, r4 + ldr r4, .L3060 + mov r1, #0 + ldr r5, .L3060+4 + mov r7, #0 + str r0, [sp, #8] + ldrb r2, [r4, #-2538] @ zero_extendqisi2 + mov r9, r4 + ldr r0, [r4, #-68] + ldr r6, .L3060 mov r2, r2, asl #1 + ldr r8, .L3060+8 bl ftl_memset - ldr r3, [r6, #2804] + ldr r3, [r5, #2804] ldrh r2, [r3, #74] cmp r2, #1 movhi r2, #0 strhih r2, [r3, #150] @ movhi -.L3029: - ldrh r3, [r4, #202] - ldr r2, [r6, #2804] - ldrb r1, [r6, #2772] @ zero_extendqisi2 - str r3, [sp, #12] +.L3037: + ldr r2, [r5, #2804] + ldrb r4, [r9, #-56] @ zero_extendqisi2 + ldrh fp, [r8] ldr r3, [r2, #4] - ldr r0, [r4, #204] - mov r1, r1, asl #9 + ldrh r10, [r9, #-54] add r3, r3, #1 str r3, [r2, #4] - ldrb r5, [r4, #200] @ zero_extendqisi2 - str r3, [r4, #-52] - ldrh fp, [r9] - str r10, [r4, #-56] + ldr r3, [r9, #-68] + ldr r2, [sp, #8] + str r2, [r3] + ldr r2, [r5, #2804] + ldr r3, [r9, #-68] + ldrb r1, [r9, #-2538] @ zero_extendqisi2 + ldr r2, [r2, #4] + ldr r0, [r9, #-52] + mov r1, r1, asl #9 + str r3, [sp, #12] + str r2, [r3, #4] bl js_hash - ldr r3, .L3052+16 + ldr r3, [sp, #12] + str r0, [r3, #8] + ldr r3, .L3060+12 ldr r3, [r3] tst r3, #4096 - str r0, [r4, #-48] - beq .L3019 - ldr r3, .L3052 - ldr r0, .L3052+20 - ldrb r1, [r4, #200] @ zero_extendqisi2 + beq .L3027 + ldr r3, .L3060+4 + ldr r0, .L3060+16 + ldrb r1, [r6, #-56] @ zero_extendqisi2 ldr r3, [r3, #2804] - ldrh r2, [r4, #202] + ldrh r2, [r6, #-54] ldr r3, [r3, #4] bl printk -.L3019: - ldr r3, .L3052+24 - ldrh r0, [r7, #202] +.L3027: + ldr r3, .L3060+20 + ldrh r0, [r9, #-54] ldrh r3, [r3] cmp r3, r0 - bhi .L3020 -.L3025: - ldrb r3, [r7, #201] @ zero_extendqisi2 + bhi .L3028 +.L3033: + ldrb r3, [r9, #-55] @ zero_extendqisi2 add r3, r3, #1 uxtb r3, r3 - strb r3, [r7, #201] + strb r3, [r9, #-55] cmp r3, #7 - bls .L3021 + bls .L3029 mov r3, #8 -.L3024: - ldr r2, [r6, #1176] - sub r5, r3, #8 +.L3032: + ldr r2, [r5, #1040] + sub r4, r3, #8 add r2, r2, r3 - uxth r5, r5 + uxth r4, r4 ldrb r1, [r2, #32] @ zero_extendqisi2 add r2, r1, #127 uxtb r2, r2 cmp r2, #125 - bhi .L3022 - ldr r1, .L3052+28 + bhi .L3030 + ldr r1, .L3060+24 movw r2, #846 - ldr r0, .L3052+32 + ldr r0, .L3060+28 bl printk bl dump_stack - b .L3023 -.L3022: + b .L3031 +.L3030: cmp r1, #255 - bne .L3023 + bne .L3031 add r3, r3, #1 cmp r3, #16 - bne .L3024 - mov r5, #8 -.L3023: - mov r8, #1 - strb r5, [r7, #201] -.L3021: - ldr r3, [r6, #1176] - ldrb r2, [r7, #201] @ zero_extendqisi2 + bne .L3032 + mov r4, #8 +.L3031: + mov r7, #1 + strb r4, [r9, #-55] +.L3029: + ldr r3, [r5, #1040] + ldrb r2, [r9, #-55] @ zero_extendqisi2 + ldr r10, .L3060 add r3, r3, r2 ldrb r3, [r3, #40] @ zero_extendqisi2 cmp r3, #255 - strb r3, [r7, #200] - beq .L3025 - ldrh r5, [r9] + strb r3, [r9, #-56] + beq .L3033 + ldrh r4, [r8] mov r0, #0 - mul r5, r5, r3 - mov r1, r5 + mul r4, r4, r3 + mov r1, r4 bl flash_erase_block - ldr r3, .L3052 - mov r1, r5 + ldrb r3, [r10, #-2538] @ zero_extendqisi2 + mov r1, r4 mov r0, #0 - ldrb r3, [r3, #2772] @ zero_extendqisi2 str r3, [sp] - ldr r3, .L3052+4 - ldr r2, [r4, #204] + ldr r3, [r10, #-68] + ldr r2, [r10, #-52] bl ftl_prog_page mov r3, #1 - strh r3, [r4, #202] @ movhi - add r5, r5, r3 - b .L3026 -.L3020: - ldr r3, [sp, #12] - cmp r0, #0 - mla r5, fp, r5, r3 - bne .L3026 - mov r1, r5 - bl flash_erase_block -.L3026: - ldrb r3, [r6, #2772] @ zero_extendqisi2 - mov r0, #0 - ldr fp, .L3052+8 - mov r1, r5 - str r3, [sp] - sub r3, fp, #56 - ldr r2, [r7, #204] - bl ftl_prog_page - ldrh r3, [r7, #202] - add r3, r3, #1 - strh r3, [r7, #202] @ movhi - cmn r0, #1 - beq .L3027 - ldrb r3, [r4, #208] @ zero_extendqisi2 - cmp r3, #0 - beq .L3028 -.L3027: - mov r3, #0 - strb r3, [r7, #208] - b .L3029 + strh r3, [r10, #-54] @ movhi + add r4, r4, r3 + b .L3034 .L3028: - cmp r8, #1 - beq .L3030 -.L3038: - ldr r3, .L3052+8 - ldrb r3, [r3, #200] @ zero_extendqisi2 - cmp r3, #255 - bne .L3032 - ldr r1, .L3052+28 - movw r2, #890 - ldr r0, .L3052+32 - bl printk - bl dump_stack - b .L3032 -.L3030: - ldrb r4, [fp, #201] @ zero_extendqisi2 - add r4, r4, #1 -.L3033: - cmp r4, #7 - bhi .L3038 - ldr r3, [r6, #1176] - add r3, r3, r4 - ldrb r5, [r3, #40] @ zero_extendqisi2 - add r3, r5, #127 - uxtb r3, r3 - cmp r3, #125 - bhi .L3034 - ldr r1, .L3052+28 - movw r2, #881 - ldr r0, .L3052+32 - bl printk - bl dump_stack - b .L3035 + cmp r0, #0 + mla r4, fp, r4, r10 + bne .L3034 + mov r1, r4 + bl flash_erase_block .L3034: - cmp r5, #255 + ldrb r3, [r9, #-2538] @ zero_extendqisi2 + mov r0, #0 + mov r1, r4 + str r3, [sp] + ldr r3, [r9, #-68] + ldr r2, [r9, #-52] + bl ftl_prog_page + ldrh r3, [r9, #-54] + add r3, r3, #1 + strh r3, [r9, #-54] @ movhi + cmn r0, #1 + beq .L3035 + ldrb r3, [r6, #-48] @ zero_extendqisi2 + cmp r3, #0 beq .L3036 .L3035: - ldr r3, .L3052+12 + mov r3, #0 + strb r3, [r9, #-48] + b .L3037 +.L3036: + cmp r7, #1 + beq .L3038 +.L3046: + ldrb r3, [r9, #-56] @ zero_extendqisi2 + cmp r3, #255 + bne .L3040 + ldr r1, .L3060+24 + movw r2, #890 + ldr r0, .L3060+28 + bl printk + bl dump_stack + b .L3040 +.L3038: + ldr r3, .L3060 + ldrb r4, [r3, #-55] @ zero_extendqisi2 + add r4, r4, #1 +.L3041: + cmp r4, #7 + bhi .L3046 + ldr r3, [r5, #1040] + add r3, r3, r4 + ldrb r6, [r3, #40] @ zero_extendqisi2 + add r3, r6, #127 + uxtb r3, r3 + cmp r3, #125 + bhi .L3042 + ldr r1, .L3060+24 + movw r2, #881 + ldr r0, .L3060+28 + bl printk + bl dump_stack + b .L3043 +.L3042: + cmp r6, #255 + beq .L3044 +.L3043: + ldr r3, .L3060+8 mov r0, #0 ldrh r1, [r3] - mul r1, r1, r5 + mul r1, r1, r6 bl flash_erase_block -.L3036: +.L3044: add r4, r4, #1 uxth r4, r4 - b .L3033 -.L3032: + b .L3041 +.L3040: mov r0, #0 add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3053: +.L3061: .align 2 -.L3052: - .word .LANCHOR0 - .word .LANCHOR3-56 +.L3060: .word .LANCHOR3 + .word .LANCHOR0 .word .LANCHOR3-3066 .word .LANCHOR2 .word .LC187 .word .LANCHOR3-3096 - .word .LANCHOR1+2348 + .word .LANCHOR1+2228 .word .LC0 .fnend .size ftl_info_flush, .-ftl_info_flush @@ -17924,173 +17979,170 @@ ftl_info_blk_init: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r3, #1 - ldr r4, .L3087 + ldr r4, .L3095 mov r6, #0 - ldr r5, .L3087+4 + ldr r5, .L3095+4 mov r1, r6 mov r2, #16384 .pad #28 sub sp, sp, #28 - strb r3, [r4, #208] - mov r10, r4 - strb r3, [r4, #210] - movw r3, #1076 - ldr r0, [r4, #204] + strb r3, [r4, #-48] + mov r9, r4 + strb r3, [r4, #-46] + movw r3, #1080 + ldr r0, [r4, #-52] ldrh r3, [r5, r3] - strb r6, [r4, #209] - str r0, [r5, #1080] + strb r6, [r4, #-47] + str r0, [r5, #1084] add r3, r0, r3, asl #2 str r3, [r5, #2804] bl ftl_memset mov r1, r6 - ldr r0, [r4, #212] + ldr r0, [r4, #-44] mov r2, #16384 bl ftl_memset - ldr r3, [r5, #1176] - ldr fp, .L3087+8 - strb r6, [r4, #201] + ldr r3, [r5, #1040] + ldr r10, .L3095+8 + ldr fp, .L3095+12 ldrb r3, [r3, #40] @ zero_extendqisi2 - strh r6, [r4, #202] @ movhi + strb r6, [r4, #-55] + strh r6, [r4, #-54] @ movhi mov r6, #7 - strb r3, [r4, #200] -.L3059: - ldr r3, [r5, #1176] - uxth r7, r6 - ldr ip, .L3087+4 + strb r3, [r4, #-56] +.L3067: + ldr r3, [r5, #1040] + uxth r8, r6 add r3, r3, r6 ldrb r3, [r3, #40] @ zero_extendqisi2 cmp r3, #255 - beq .L3055 - ldr r2, .L3087+12 + beq .L3063 + ldrh ip, [r10] mov r0, #0 - str ip, [sp, #12] - ldrh r9, [r2] - ldr r2, [r4, #204] - mul r9, r9, r3 - ldrb r3, [ip, #2772] @ zero_extendqisi2 + ldr r2, [r4, #-52] + mul ip, ip, r3 + ldrb r3, [r4, #-2538] @ zero_extendqisi2 str r3, [sp] - ldr r3, .L3087+16 - mov r1, r9 + ldr r3, [r4, #-68] + mov r1, ip + str ip, [sp, #12] bl ftl_read_page cmn r0, #1 - mov r8, r0 + mov r7, r0 ldr ip, [sp, #12] - bne .L3056 - ldrb r3, [ip, #2772] @ zero_extendqisi2 + bne .L3064 + ldrb r3, [r9, #-2538] @ zero_extendqisi2 mov r0, #0 - add r1, r9, #1 + add r1, ip, #1 str r3, [sp] - ldr r3, .L3087+16 - ldr r2, [r10, #204] + ldr r2, [r9, #-52] + ldr r3, [r9, #-68] bl ftl_read_page - mov r8, r0 -.L3056: - ldr r3, .L3087+20 + mov r7, r0 +.L3064: + ldr r3, .L3095+16 ldr r3, [r3] tst r3, #4096 - beq .L3057 + beq .L3065 ldr r3, [r5, #2804] mov r1, r6 - ldr r0, .L3087+24 - mov r2, r8 + ldr r0, .L3095+20 + mov r2, r7 ldr r3, [r3] str r3, [sp] movw r3, #749 bl printk -.L3057: - cmn r8, #1 - beq .L3055 +.L3065: + cmn r7, #1 + beq .L3063 ldr r3, [r5, #2804] ldr r3, [r3] cmp r3, fp - beq .L3069 -.L3055: + beq .L3077 +.L3063: subs r6, r6, #1 - bcs .L3059 - movw r6, #65535 - mov r7, #0 - b .L3058 -.L3069: - mov r6, r7 -.L3058: - ldr r3, .L3087+20 - sxth r6, r6 - ldr r2, [r3] - str r3, [sp, #16] - tst r2, #4096 - beq .L3060 + bcs .L3067 + movw r7, #65535 + mov r8, #0 + b .L3066 +.L3077: + mov r7, r8 +.L3066: + ldr r6, .L3095+16 + sxth r7, r7 + ldr r3, [r6] + str r6, [sp, #16] + tst r3, #4096 + beq .L3068 ldr r3, [r5, #2804] - mov r1, r6 - ldr r0, .L3087+28 + mov r1, r7 + ldr r0, .L3095+24 mov r2, #4800 ldr r3, [r3] bl printk -.L3060: - cmn r6, #1 - bne .L3061 +.L3068: + cmn r7, #1 + bne .L3069 mov r2, #16384 - ldr r0, [r4, #204] + ldr r0, [r4, #-52] mov r1, #0 bl ftl_memset ldr r3, [r5, #2804] - ldr r2, .L3087+8 - mov r0, r6 + ldr r2, .L3095+12 + mov r0, r7 str r2, [r3] - ldr r2, .L3087+32 + ldr r2, .L3095+28 ldr r3, [r5, #2804] str r2, [r3, #12] - b .L3062 -.L3061: - ldr r3, [r5, #1176] + b .L3070 +.L3069: + ldr r3, [r5, #1040] mov r0, #0 - ldr r2, [r4, #204] - sxtah r3, r3, r7 - strb r7, [r4, #201] - ldr r6, .L3087+36 + ldr r2, [r4, #-52] mov r7, #0 + sxtah r3, r3, r8 + strb r8, [r4, #-55] + ldr fp, .L3095+12 ldrb r1, [r3, #40] @ zero_extendqisi2 mov r3, #4 str r3, [sp] - ldr r3, .L3087+16 - strb r1, [r4, #200] + ldr r3, [r4, #-68] + strb r1, [r4, #-56] bl flash_get_last_written_page - ldrh r8, [r6, #-10] - add r6, r6, #3056 - ldr fp, .L3087+8 + ldr ip, .L3095+32 + add r6, ip, #3056 + ldrh r8, [ip, #-10] uxth r9, r0 mov r10, r0 add r3, r9, #1 uxth r3, r3 str r3, [sp, #12] - ldrb r3, [r4, #200] @ zero_extendqisi2 + ldrb r3, [r4, #-56] @ zero_extendqisi2 mul r8, r8, r3 -.L3063: +.L3071: rsb r3, r7, r9 tst r3, #32768 - bne .L3067 - ldrb r3, [r5, #2772] @ zero_extendqisi2 + bne .L3075 + ldrb r3, [r4, #-2538] @ zero_extendqisi2 add r1, r10, r8 - ldr ip, .L3087+4 mov r0, #0 rsb r1, r7, r1 - ldr r2, [r4, #204] + ldr r2, [r4, #-52] str r3, [sp] - ldr r3, .L3087+16 - str ip, [sp, #20] + ldr r3, [r4, #-68] bl ftl_read_page cmn r0, #1 - beq .L3064 - ldr ip, [sp, #20] - ldr r3, [ip, #2804] + beq .L3072 + ldr r3, [r5, #2804] ldr r3, [r3] cmp r3, fp - bne .L3064 - ldr r3, [r6, #-48] + bne .L3072 + ldr r3, [r6, #-68] + ldr r3, [r3, #8] cmp r3, #0 - bne .L3065 -.L3067: + bne .L3073 +.L3075: ldrh r3, [sp, #12] - strh r3, [r4, #202] @ movhi + strh r3, [r4, #-54] @ movhi bl ftl_tmp_into_update ldr r2, [r5, #2804] mov r0, #0 @@ -18103,41 +18155,41 @@ ftl_info_blk_init: ldr r3, [sp, #16] ldr r0, [r3] ands r0, r0, #16384 - beq .L3062 - ldr r3, .L3087+4 - ldr r0, .L3087+40 + beq .L3070 + ldr r3, .L3095+4 + ldr r0, .L3095+36 ldr r3, [r3, #2804] ldr r1, [r3, #156] bl printk mov r0, #0 - b .L3062 -.L3065: - ldrb r1, [ip, #2772] @ zero_extendqisi2 - ldr r0, [r6, #204] + b .L3070 +.L3073: + ldrb r1, [r6, #-2538] @ zero_extendqisi2 + ldr r0, [r6, #-52] str r3, [sp, #20] mov r1, r1, asl #9 bl js_hash ldr r3, [sp, #20] cmp r3, r0 - beq .L3067 - ldr r0, .L3087+44 - ldr r1, [r6, #-48] + beq .L3075 + ldr r3, [r6, #-68] + ldr r0, .L3095+40 + ldr r1, [r3, #8] bl printk -.L3064: +.L3072: add r7, r7, #1 - b .L3063 -.L3062: + b .L3071 +.L3070: add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3088: +.L3096: .align 2 -.L3087: +.L3095: .word .LANCHOR3 .word .LANCHOR0 - .word 1229739078 .word .LANCHOR3-3066 - .word .LANCHOR3-56 + .word 1229739078 .word .LANCHOR2 .word .LC188 .word .LC189 @@ -18154,123 +18206,124 @@ ftl_ext_info_flush: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, lr} - .save {r4, r5, r6, r7, r8, r9, lr} + stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr} + .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 bl timer_get_time - ldr r3, .L3105 - ldr r4, .L3105+4 + ldr r3, .L3113 + ldr r5, .L3113+4 + ldr r4, [r5, #1096] umull r0, r1, r0, r3 - ldr r3, [r4, #1092] - ldr r0, [r3, #520] - mov r1, r1, lsr #5 - cmp r1, r0 - ldrhi r2, [r3, #12] - rsbhi r2, r0, r2 - addhi r2, r2, r1 - strhi r2, [r3, #12] - bhi .L3104 -.L3090: - bcs .L3091 -.L3104: - str r1, [r3, #520] -.L3091: + mov r2, r1, lsr #5 + ldr r1, [r4, #520] + cmp r2, r1 + ldrhi r3, [r4, #12] + rsbhi r3, r1, r3 + addhi r3, r3, r2 + strhi r3, [r4, #12] + bhi .L3112 +.L3098: + bcs .L3099 +.L3112: + str r2, [r4, #520] +.L3099: mov r0, #0 - ldr r7, .L3105+8 + ldr r4, .L3113+8 bl ftl_total_vpn_update - ldr r6, .L3105+12 -.L3095: - ldr r3, [r4, #2804] + ldr r7, .L3113+12 + mov r8, r4 + mov r6, r4 +.L3103: + ldr r3, [r5, #2804] ldr r2, [r3, #56] add r2, r2, #1 str r2, [r3, #56] ldrh r2, [r3, #140] ldrh r3, [r7] cmp r2, r3 - bcc .L3093 + bcc .L3101 bl ftl_ext_alloc_new_blk -.L3093: - ldr r3, [r4, #2804] +.L3101: + ldr r3, [r5, #2804] ldrh r2, [r3, #130] movw r3, #65535 cmp r2, r3 - bne .L3094 - ldr r1, .L3105+16 + bne .L3102 + ldr r1, .L3113+16 movw r2, #2211 - ldr r0, .L3105+20 + ldr r0, .L3113+20 bl printk bl dump_stack -.L3094: - ldr r1, [r4, #2804] - ldr r0, .L3105+24 - ldrb r2, [r4, #1189] @ zero_extendqisi2 +.L3102: + ldr r1, [r5, #2804] + ldr r9, .L3113+24 + ldrb r2, [r5, #1153] @ zero_extendqisi2 ldrh r3, [r1, #130] - ldrh r0, [r0] + ldrh r0, [r9] rsb r2, r2, #24 - ldr r8, .L3105+12 + ldrh r9, [r9, #66] rsb r2, r0, r2 mvn r0, #0 - mov r9, r3, asr r2 + mov r10, r3, asr r2 bic r3, r3, r0, asl r2 - ldr r2, .L3105+28 - sub r0, r8, #56 - sxth r3, r3 - ldrh r5, [r2] ldrh r2, [r1, #140] mov r1, #0 - mla r5, r5, r3, r2 - ldrb r2, [r4, #2772] @ zero_extendqisi2 + sxth r3, r3 + ldr r0, [r4, #-68] + mla r9, r9, r3, r2 + ldrb r2, [r4, #-2538] @ zero_extendqisi2 mov r2, r2, asl #1 bl ftl_memset - mov r3, #0 - str r3, [r6, #-56] - ldr r3, [r4, #2804] - ldrb r1, [r4, #2772] @ zero_extendqisi2 - ldr r0, [r6, #212] + ldr r3, [r4, #-68] + mov r2, #0 + str r2, [r3] + ldr r3, [r5, #2804] + ldr fp, [r4, #-68] + ldrb r1, [r4, #-2538] @ zero_extendqisi2 ldr r3, [r3, #56] + ldr r0, [r4, #-44] mov r1, r1, asl #9 - str r3, [r6, #-52] + str r3, [fp, #4] bl js_hash - ldrb r3, [r4, #2772] @ zero_extendqisi2 - mov r1, r5 - ldr r2, [r6, #212] - str r0, [r6, #-48] - uxtb r0, r9 + ldrb r3, [r4, #-2538] @ zero_extendqisi2 + mov r1, r9 + str r0, [fp, #8] + uxtb r0, r10 str r3, [sp] - sub r3, r8, #56 + ldr r2, [r4, #-44] + ldr r3, [r4, #-68] bl ftl_prog_page - ldr r2, [r4, #2804] + ldr r2, [r5, #2804] ldrh r3, [r2, #140] add r3, r3, #1 uxth r3, r3 strh r3, [r2, #140] @ movhi cmp r3, #1 - beq .L3095 + beq .L3103 cmn r0, #1 - beq .L3096 - ldrb r0, [r8, #210] @ zero_extendqisi2 + beq .L3104 + ldrb r0, [r8, #-46] @ zero_extendqisi2 cmp r0, #0 - beq .L3097 -.L3096: -.L3092: + beq .L3105 +.L3104: +.L3100: mov r3, #0 - strb r3, [r8, #210] - b .L3095 -.L3097: + strb r3, [r6, #-46] + b .L3103 +.L3105: add sp, sp, #12 @ sp needed - ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc} -.L3106: + ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} +.L3114: .align 2 -.L3105: +.L3113: .word 1374389535 .word .LANCHOR0 - .word .LANCHOR3-3096 .word .LANCHOR3 - .word .LANCHOR1+2364 + .word .LANCHOR3-3096 + .word .LANCHOR1+2244 .word .LC0 .word .LANCHOR3-3132 - .word .LANCHOR3-3066 .fnend .size ftl_ext_info_flush, .-ftl_ext_info_flush .align 2 @@ -18278,120 +18331,118 @@ ftl_ext_info_flush: .type ftl_ext_info_init, %function ftl_ext_info_init: .fnstart - @ args = 0, pretend = 0, frame = 16 + @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 - ldr ip, .L3127 - mov r2, #0 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - sub r3, ip, #2528 - ldr r4, .L3127+4 - mvn r5, #0 + mov r2, #0 + ldr r5, .L3135 + mvn r6, #0 + ldr r9, .L3135+4 + .pad #20 + sub sp, sp, #20 + sub r3, r5, #2528 + sub r1, r5, #3120 strh r2, [r3, #-12] @ movhi - sub r2, ip, #3120 - .pad #28 - sub sp, sp, #28 - ldr r3, [r4, #2804] - ldrb r9, [r4, #1189] @ zero_extendqisi2 - ldrh r6, [r2, #-12] - ldrh r3, [r3, #130] - rsb r8, r9, #24 - rsb r6, r6, r8 - str ip, [sp, #12] - bic r5, r3, r5, asl r6 - mov fp, r3, asr r6 + ldr r3, [r9, #2804] + ldrh r4, [r1, #-12] + ldrh r2, [r3, #130] + ldrb r3, [r9, #1153] @ zero_extendqisi2 + rsb r3, r3, #24 + rsb r4, r4, r3 mov r3, #4 - mov r1, r5 + mov r7, r2, asr r4 + bic r6, r2, r6, asl r4 str r3, [sp] - uxtb r10, fp - ldr r2, [ip, #212] - sub r3, ip, #56 + mov r4, r9 + uxtb r10, r7 + ldr r2, [r5, #-44] + ldr r3, [r5, #-68] + mov r1, r6 mov r0, r10 bl flash_get_last_written_page - ldr r3, .L3127+8 + ldr r3, .L3135+8 ldr r2, [r3] tst r2, #4096 - mov r7, r0 - str r3, [sp, #16] - beq .L3108 - uxth fp, fp - str fp, [sp] - ldr r3, [r4, #2804] + mov r8, r0 + str r3, [sp, #8] + beq .L3116 + uxth r7, r7 + str r7, [sp] + ldr r3, [r9, #2804] mov r2, #2256 - ldr r0, .L3127+12 - ldr r1, .L3127+16 + ldr r0, .L3135+12 + ldr r1, .L3135+16 ldrh r3, [r3, #130] str r3, [sp, #4] - mov r3, r7 + mov r3, r8 bl printk -.L3108: - ldr r9, .L3127 - mov r8, #0 - ldr fp, .L3127+20 -.L3109: - uxth r6, r7 - rsb r3, r8, r6 +.L3116: + ldr fp, .L3135 + mov r9, #0 +.L3117: + uxth r7, r8 + rsb r3, r9, r7 tst r3, #32768 - bne .L3114 - ldr r3, .L3127+24 - rsb r1, r8, r7 - ldrb r2, [r4, #2772] @ zero_extendqisi2 + bne .L3122 + ldr r3, .L3135+20 + rsb r1, r9, r8 + ldrb r2, [r5, #-2538] @ zero_extendqisi2 mov r0, r10 - ldr ip, .L3127+4 ldrh r3, [r3] str r2, [sp] - str ip, [sp, #20] - mla r1, r3, r5, r1 - ldr r3, [sp, #12] - ldr r2, [r3, #212] - ldr r3, .L3127+28 + ldr r2, [r5, #-44] + mla r1, r3, r6, r1 + ldr r3, [r5, #-68] bl flash_read_page_en cmp r0, #512 cmnne r0, #1 - ldr ip, [sp, #20] - beq .L3110 - ldr r3, [ip, #1092] + beq .L3118 + ldr r3, [r4, #1096] + ldr r2, .L3135+24 ldr r3, [r3] - cmp r3, fp - bne .L3110 - ldr r3, [r9, #-48] + cmp r3, r2 + bne .L3118 + ldr r3, [fp, #-68] + ldr r3, [r3, #8] cmp r3, #0 - bne .L3111 -.L3114: + bne .L3119 +.L3122: bl zftl_sblk_list_init ldr r3, [r4, #2804] ldrh r2, [r3, #140] - cmp r2, r7 - bgt .L3113 - add r6, r6, #1 - strh r6, [r3, #140] @ movhi + cmp r2, r8 + bgt .L3121 + add r7, r7, #1 + strh r7, [r3, #140] @ movhi bl ftl_ext_info_flush - b .L3113 -.L3111: - ldrb r1, [ip, #2772] @ zero_extendqisi2 - ldr r0, [r9, #212] - str r3, [sp, #20] + b .L3121 +.L3119: + ldrb r1, [fp, #-2538] @ zero_extendqisi2 + ldr r0, [fp, #-44] + str r3, [sp, #12] mov r1, r1, asl #9 bl js_hash - ldr r3, [sp, #20] + ldr r3, [sp, #12] cmp r3, r0 - beq .L3114 - ldr r0, .L3127+32 - ldr r1, [r9, #-48] + beq .L3122 + ldr r3, [fp, #-68] + ldr r0, .L3135+28 + ldr r1, [r3, #8] bl printk -.L3110: - add r8, r8, #1 - b .L3109 -.L3113: - ldr r5, [r4, #1092] +.L3118: + add r9, r9, #1 + b .L3117 +.L3121: + ldr r5, [r4, #1096] bl timer_get_time - ldr r3, .L3127+36 + ldr r3, .L3135+32 umull r0, r1, r0, r3 mov r3, r1, lsr #5 str r3, [r5, #520] - ldr r5, [r4, #1092] + ldr r5, [r4, #1096] bl timer_get_time - ldr r3, [r4, #1092] + ldr r3, [r4, #1096] mov r2, #0 add r1, r3, #584 str r0, [r5, #604] @@ -18406,39 +18457,38 @@ ftl_ext_info_init: strh r2, [r3, r1] @ movhi movw r1, #65535 str r2, [r3, #564] - ldr r2, [sp, #16] + ldr r2, [sp, #8] str r1, [r3, #560] ldr r2, [r2] tst r2, #4096 - beq .L3116 + beq .L3124 ldr r5, [r3, #520] ldr r4, [r3, #12] bl timer_get_time - ldr r1, .L3127+16 + ldr r1, .L3135+16 mov r2, r5 mov r3, r4 str r0, [sp] - ldr r0, .L3127+40 + ldr r0, .L3135+36 bl printk -.L3116: - ldr r3, .L3127+44 +.L3124: + ldr r3, .L3135+40 mvn r2, #0 mov r0, #0 strh r2, [r3] @ movhi - add sp, sp, #28 + add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3128: +.L3136: .align 2 -.L3127: +.L3135: .word .LANCHOR3 .word .LANCHOR0 .word .LANCHOR2 .word .LC192 - .word .LANCHOR1+2384 - .word 1162432070 + .word .LANCHOR1+2264 .word .LANCHOR3-3066 - .word .LANCHOR3-56 + .word 1162432070 .word .LC193 .word 1374389535 .word .LC194 @@ -18456,10 +18506,10 @@ ftl_prog_ppa_page: .save {r4, lr} .pad #8 mov lr, r2 - ldr r2, .L3131 + ldr r2, .L3139 mov ip, r0 mov r4, r1 - ldrb r0, [r2, #1189] @ zero_extendqisi2 + ldrb r0, [r2, #1153] @ zero_extendqisi2 mov r2, #1 str r3, [sp] mov r3, lr @@ -18476,9 +18526,9 @@ ftl_prog_ppa_page: add sp, sp, #8 @ sp needed ldmfd sp!, {r4, pc} -.L3132: +.L3140: .align 2 -.L3131: +.L3139: .word .LANCHOR0 .fnend .size ftl_prog_ppa_page, .-ftl_prog_ppa_page @@ -18491,57 +18541,57 @@ ftl_write_last_log_page: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} - mov r4, r0 ldrh r3, [r0, #6] - ldr r5, .L3138 + ldr r5, .L3146 cmp r3, #1 ldrh r8, [r0, #12] ldr r6, [r5, #-2548] - bne .L3135 + bne .L3143 + mov r4, r0 bl ftl_get_new_free_page cmn r0, #1 mov r7, r0 - beq .L3136 + beq .L3144 ldrh r0, [r4] add r6, r6, r8, asl #2 bl ftl_vpn_decrement - ldr r3, .L3138+4 + ldr r3, [r5, #-40] + ldr r2, .L3146+4 mov r0, r6 - mov r4, #0 - str r3, [r5, #264] + str r2, [r3] sub r3, r5, #3088 + ldr r4, [r5, #-40] ldrh r1, [r3, #-8] ldrb r3, [r5, #-3123] @ zero_extendqisi2 mul r1, r3, r1 mov r1, r1, asl #2 bl js_hash - mov r1, r5 - str r4, [r1, #280]! + ldr r1, [r5, #-40] + str r0, [r4, #4] + mov r4, #0 mov r2, r4 - str r4, [r5, #272] - str r4, [r5, #276] - str r0, [r5, #268] + str r4, [r1, #8] + str r4, [r1, #12] mov r0, #2 + str r4, [r1, #16]! bl ftl_debug_info_fill - ldr r3, .L3138+8 mov r0, r7 mov r1, r6 - add r2, r5, #264 - ldrb r3, [r3, #2772] @ zero_extendqisi2 + ldr r2, [r5, #-40] + ldrb r3, [r5, #-2538] @ zero_extendqisi2 bl ftl_prog_ppa_page - b .L3136 -.L3135: + b .L3144 +.L3143: mvn r0, #0 ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L3136: +.L3144: mov r0, #0 ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L3139: +.L3147: .align 2 -.L3138: +.L3146: .word .LANCHOR3 .word -178307901 - .word .LANCHOR0 .fnend .size ftl_write_last_log_page, .-ftl_write_last_log_page .align 2 @@ -18551,64 +18601,65 @@ ftl_dump_write_open_sblk: .fnstart @ args = 0, pretend = 0, frame = 72 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L3182 - movw r2, #1076 + ldr r3, .L3190 + movw r2, #1080 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - mov r6, r0 - ldrh r2, [r3, r2] .pad #116 sub sp, sp, #116 + ldrh r2, [r3, r2] + mov r10, r0 + str r3, [sp, #44] cmp r2, r0 - bls .L3140 - mov fp, r3 - ldr r3, .L3182+4 + bls .L3148 + ldr r3, .L3190+4 ldrb r2, [r3, #-3116] @ zero_extendqisi2 cmp r2, #0 - bne .L3142 + bne .L3150 ldrb r2, [r3, #-3122] @ zero_extendqisi2 cmp r2, #0 - beq .L3140 -.L3142: - ldrb r2, [fp, #1196] @ zero_extendqisi2 + beq .L3148 +.L3150: + ldr r2, [sp, #44] + ldrb r2, [r2, #1160] @ zero_extendqisi2 cmp r2, #0 - bne .L3140 - ldr r2, .L3182 - mov r4, r6, asl #2 + bne .L3148 + ldr r2, .L3190 + mov r4, r10, asl #2 add r1, sp, #96 - mov r0, r6 - strh r6, [sp, #80] @ movhi + mov r0, r10 + strh r10, [sp, #80] @ movhi mov r5, #0 - ldr r2, [r2, #1080] - mov r7, r5 - ldr r8, .L3182+8 - mov r9, r5 + ldr r2, [r2, #1084] + mov r6, r5 + ldr r7, .L3190+8 + mov r8, r5 add r2, r2, r4 ldrb r2, [r2, #2] @ zero_extendqisi2 + mov fp, r7 and r2, r2, #224 cmp r2, #160 - ldreqb r10, [r3, #-3124] @ zero_extendqisi2 - movne r10, #1 + ldreqb r9, [r3, #-3124] @ zero_extendqisi2 + movne r9, #1 bl ftl_get_blk_list_in_sblk - mov r2, r8 - ldrh r3, [r2, #-8]! + ldrh r3, [fp, #-8]! uxtb r0, r0 strb r0, [sp, #89] - str r2, [sp, #44] - smulbb r0, r3, r0 - ldr r2, [fp, #1080] strh r5, [sp, #82] @ movhi - add r3, r2, r4 + smulbb r0, r3, r0 + ldr r3, [sp, #44] strb r5, [sp, #85] strh r5, [sp, #90] @ movhi + ldr r2, [r3, #1084] + add r3, r2, r4 strh r0, [sp, #86] @ movhi ldrh r1, [r2, r4] ldrb r3, [r3, #2] @ zero_extendqisi2 ubfx r1, r1, #0, #11 str r1, [sp] - ldr r2, [r2, r6, asl #2] - mov r1, r6 - ldr r0, .L3182+12 + ldr r2, [r2, r10, asl #2] + mov r1, r10 + ldr r0, .L3190+12 ubfx r2, r2, #11, #8 str r2, [sp, #4] mov r2, r3, lsr #5 @@ -18616,66 +18667,65 @@ ftl_dump_write_open_sblk: bl printk mov r0, #1 bl buf_alloc - add r3, r8, #3088 + add r3, r7, #3088 mov r4, r0 str r3, [sp, #48] -.L3144: - ldr r3, [sp, #44] - uxth r8, r5 - ldrh r3, [r3] - cmp r3, r8 - bls .L3167 - mov r3, r8, asl #1 +.L3152: + ldrh r3, [fp] + uxth r7, r5 + cmp r3, r7 + bls .L3175 + mov r3, r7, asl #1 mov ip, #0 - add r2, r3, r8 + add r2, r3, r7 sub r3, r3, #1 sub r2, r2, #1 str r3, [sp, #60] str r2, [sp, #52] -.L3155: +.L3163: ldrb r3, [sp, #89] @ zero_extendqisi2 - uxth r9, ip - cmp r3, r9 - bls .L3179 - add r3, r9, #8 - mov r7, #1 - mov r3, r3, asl r7 + uxth r8, ip + cmp r3, r8 + bls .L3187 + add r3, r8, #8 + mov r6, #1 + mov r3, r3, asl r6 str r3, [sp, #64] -.L3154: - cmp r7, r10 - bhi .L3180 +.L3162: + cmp r6, r9 + bhi .L3188 ldr r2, [sp, #64] add r3, sp, #112 add r3, r3, r2 ldrh r2, [r3, #-32] movw r3, #65535 cmp r2, r3 - beq .L3146 - ldr r3, .L3182+16 - cmp r10, #3 + beq .L3154 + ldr r3, .L3190+16 + cmp r9, #3 ldrh r3, [r3] mul r3, r3, r2 - bne .L3147 - ldr r1, .L3182 - ldrb r1, [r1, #1197] @ zero_extendqisi2 + bne .L3155 + ldr r1, .L3190 + ldrb r1, [r1, #1161] @ zero_extendqisi2 cmp r1, #0 uxtaheq r3, r3, r5 ldrne r1, [sp, #52] - orreq r3, r3, r7, asl #24 - beq .L3149 - b .L3178 -.L3147: - cmp r10, #2 + orreq r3, r3, r6, asl #24 + beq .L3157 + b .L3186 +.L3155: + cmp r9, #2 uxtahne r3, r3, r5 - bne .L3149 + bne .L3157 ldr r1, [sp, #60] -.L3178: +.L3186: add r3, r3, r1 ldr r1, [sp, #48] - add r3, r3, r7 + add r3, r3, r6 ldrb r1, [r1, #-3124] @ zero_extendqisi2 orr r3, r3, r1, asl #24 -.L3149: +.L3157: str r3, [r4, #24] mov r0, r4 mov r1, #1 @@ -18693,7 +18743,7 @@ ftl_dump_write_open_sblk: str r3, [sp, #56] ldr ip, [sp, #76] ldr r3, [sp, #68] - bne .L3146 + bne .L3154 ldr r0, [r4, #4] ldr r1, [r4, #12] str lr, [sp] @@ -18713,137 +18763,136 @@ ftl_dump_write_open_sblk: ldr r0, [r1, #8] str r0, [sp, #28] ldr r1, [r1, #12] - ldr r0, .L3182+20 + ldr r0, .L3190+20 str r1, [sp, #32] mov r1, r2 - mov r2, r8 + mov r2, r7 bl printk ldr r3, [sp, #56] ldr ip, [sp, #68] cmp r3, #0 - bne .L3167 -.L3146: - add r7, r7, #1 - uxth r7, r7 - b .L3154 -.L3180: + bne .L3175 +.L3154: + add r6, r6, #1 + uxth r6, r6 + b .L3162 +.L3188: add ip, ip, #1 - b .L3155 -.L3179: + b .L3163 +.L3187: add r5, r5, #1 - b .L3144 -.L3167: -.L3152: - str r7, [sp] - mov r3, r9 - ldr r7, .L3182 - mov r1, r6 - mov r2, r8 - ldr r0, .L3182+24 + b .L3152 +.L3175: +.L3160: + str r6, [sp] + mov r3, r8 + ldr r6, .L3190+4 + mov r1, r10 + mov r2, r7 + ldr r0, .L3190+24 bl printk mov r1, #0 - ldrb r2, [r7, #2772] @ zero_extendqisi2 - mov r5, r8 + ldrb r2, [r6, #-2538] @ zero_extendqisi2 + mov r5, r7 ldr r0, [r4, #4] - ldr r10, .L3182+28 + ldr fp, .L3190+28 mov r2, r2, asl #9 - ldr r9, .L3182+32 bl ftl_memset - ldrb r2, [r7, #2772] @ zero_extendqisi2 + ldrb r2, [r6, #-2538] @ zero_extendqisi2 ldr r0, [r4, #12] mov r1, #0 mov r2, r2, asl #1 bl ftl_memset -.L3156: - ldrh r3, [r10] +.L3164: + ldr r3, .L3190+32 + ldrh r3, [r3] cmp r3, r5 - bls .L3162 - ldr r8, .L3182+4 + bls .L3170 + ldr r8, .L3190+4 + mov r9, r5, asl #1 mov r7, #0 - mov r3, r5, asl #1 - str r3, [sp, #44] -.L3163: +.L3171: ldrb r2, [sp, #89] @ zero_extendqisi2 uxth r3, r7 cmp r2, r3 - bls .L3181 - ldr r2, [r9] + bls .L3189 + ldr r2, [fp] tst r2, #4096 - beq .L3157 + beq .L3165 mov r2, r3 - ldr r0, .L3182+36 + ldr r0, .L3190+36 mov r1, r5 str r3, [sp, #48] bl printk ldr r3, [sp, #48] -.L3157: - ldrb ip, [r8, #-3116] @ zero_extendqisi2 +.L3165: + ldrb ip, [r6, #-3116] @ zero_extendqisi2 cmp ip, #0 - beq .L3158 + beq .L3166 add r2, sp, #112 mov r0, r4 add r3, r2, r3, asl #1 ldrh r2, [r3, #-16] - ldr r3, .L3182+16 + ldr r3, .L3190+16 ldrh r3, [r3] mul r3, r3, r2 orr r3, r3, r5 str r3, [r4, #24] bl sblk_3d_tlc_dump_prog - b .L3159 -.L3158: + b .L3167 +.L3166: ldrb r2, [r8, #-3124] @ zero_extendqisi2 cmp r2, #2 add r2, sp, #112 add r3, r2, r3, asl #1 ldrh r2, [r3, #-16] - ldr r3, .L3182+16 + ldr r3, .L3190+16 ldrh r3, [r3] mul r3, r3, r2 - bne .L3160 - ldr r2, [sp, #44] + bne .L3168 + orr r3, r3, r9 mov r0, r4 - orr r3, r3, r2 orr r3, r3, #33554432 str r3, [r4, #24] bl sblk_mlc_dump_prog - b .L3159 -.L3160: - ldrb r2, [fp, #1189] @ zero_extendqisi2 + b .L3167 +.L3168: + ldr r2, [sp, #44] orr r3, r3, r5 mvn r0, #0 - ldrb lr, [fp, #2772] @ zero_extendqisi2 - rsb r1, r2, #24 + ldrb lr, [r8, #-2538] @ zero_extendqisi2 str r3, [r4, #24] + ldrb r2, [r2, #1153] @ zero_extendqisi2 + str lr, [sp] + rsb r1, r2, #24 + str ip, [sp, #4] mvn r2, r0, asl r2 and r0, r2, r3, lsr r1 - str lr, [sp] bic r1, r3, r2, asl r1 - str ip, [sp, #4] - uxtb r0, r0 ldr r2, [r4, #4] + uxtb r0, r0 ldr r3, [r4, #12] bl flash_prog_page_en -.L3159: +.L3167: add r7, r7, #1 - b .L3163 -.L3181: + b .L3171 +.L3189: add r5, r5, #1 uxth r5, r5 - b .L3156 -.L3162: + b .L3164 +.L3170: mov r0, r4 bl zbuf_free - ldr r0, .L3182+40 - mov r1, r6 + ldr r0, .L3190+40 + mov r1, r10 bl printk -.L3140: +.L3148: add sp, sp, #116 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3183: +.L3191: .align 2 -.L3182: +.L3190: .word .LANCHOR0 .word .LANCHOR3 .word .LANCHOR3-3088 @@ -18851,8 +18900,8 @@ ftl_dump_write_open_sblk: .word .LANCHOR3-3066 .word .LC196 .word .LC197 - .word .LANCHOR3-3096 .word .LANCHOR2 + .word .LANCHOR3-3096 .word .LC198 .word .LC199 .fnend @@ -18868,72 +18917,73 @@ gc_ink_check_sblk: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 movw r5, #2106 - ldr r4, .L3213 - ldr r7, .L3213+4 + ldr r4, .L3221 + ldr r7, .L3221+4 ldrh r3, [r4, r5] ldr r6, [r7, #908] cmp r3, #3 ldrls pc, [pc, r3, asl #2] - b .L3185 -.L3187: - .word .L3186 - .word .L3188 - .word .L3189 - .word .L3190 -.L3186: - ldr r8, .L3213+8 + b .L3193 +.L3195: + .word .L3194 + .word .L3196 + .word .L3197 + .word .L3198 +.L3194: + ldr r8, .L3221+8 movw r3, #2792 ldrh r3, [r8, r3] cmp r3, #7 - bls .L3184 - ldrb r3, [r8, #2774] @ zero_extendqisi2 + bls .L3192 + ldrb r3, [r8, #2773] @ zero_extendqisi2 cmp r3, #2 - bls .L3184 - ldr r0, .L3213+12 + bls .L3192 + ldr r9, .L3221+12 mov r1, #0 + movw r10, #65535 + sub r0, r9, #3072 bl _list_get_gc_head_node - movw r9, #65535 - cmp r0, r9 - beq .L3184 - ldr r3, [r8, #1080] + cmp r0, r10 + beq .L3192 + ldr r3, [r8, #1084] mov r0, r0, asl #2 ldrh r3, [r3, r0] ubfx r3, r3, #0, #11 cmp r3, #2 - bgt .L3184 + bgt .L3192 mov r0, #1 add r6, r8, #4096 bl buf_alloc cmp r0, #0 str r0, [r7, #908] - beq .L3184 - ldr r0, .L3213+12 + beq .L3192 + sub r0, r9, #3072 mov r1, #0 - ldr r2, .L3213+16 + ldr r2, .L3221+16 bl _list_pop_index_node uxth r5, r0 - cmp r5, r9 - bne .L3194 + cmp r5, r10 + bne .L3202 ldr r0, [r6, #908] bl zbuf_free mov r3, #0 str r3, [r6, #908] - b .L3184 -.L3194: - ldr r1, .L3213+20 + b .L3192 +.L3202: + ldr r1, .L3221+20 mov r0, r5 bl ftl_get_blk_list_in_sblk movw r3, #2142 strh r5, [r4, r3] @ movhi mov r2, #0 - ldr r3, .L3213+24 + ldr r3, .L3221+24 mov r5, r5, asl #2 strh r2, [r3] @ movhi movw r3, #2106 mov r2, #1 strh r2, [r4, r3] @ movhi - ldr r3, [r8, #1080] - ldrb r2, [r8, #2772] @ zero_extendqisi2 + ldr r3, [r8, #1084] + ldrb r2, [r9, #-2538] @ zero_extendqisi2 mov r2, r2, asl #9 strb r0, [r6, #883] ldrh r3, [r3, r5] @@ -18946,7 +18996,7 @@ gc_ink_check_sblk: @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} b ftl_memset -.L3188: +.L3196: movw r3, #2142 mov r1, #0 ldrh r0, [r4, r3] @@ -18954,27 +19004,28 @@ gc_ink_check_sblk: movw r3, #2106 mov r2, #2 strh r2, [r4, r3] @ movhi - b .L3184 -.L3189: + b .L3192 +.L3197: bl sblk_wait_write_queue_completed - ldr r9, .L3213+8 - ldr r10, .L3213+28 + ldr r9, .L3221+8 + ldr r10, .L3221+12 mov r8, #0 - ldr fp, .L3213+32 -.L3196: + ldr fp, .L3221+28 +.L3204: ldrb r3, [r7, #883] @ zero_extendqisi2 uxth r5, r8 cmp r3, r5 - bls .L3211 + bls .L3219 add r5, r4, r5, asl #1 movw r3, #65535 add r5, r5, #2144 ldrh r2, [r5, #14] cmp r2, r3 - beq .L3197 - ldr r3, .L3213+24 + beq .L3205 + ldr r3, .L3221+32 mov ip, #0 - ldrh r1, [r10] + ldrh r1, [r3] + ldr r3, .L3221+24 ldrh r3, [r3] mla r3, r1, r2, r3 ldr r2, [r6, #4] @@ -18984,8 +19035,8 @@ gc_ink_check_sblk: ldr r2, [r6, #12] str ip, [r2] mvn r2, #0 - ldrb r0, [r9, #1189] @ zero_extendqisi2 - ldrb lr, [r9, #2772] @ zero_extendqisi2 + ldrb r0, [r9, #1153] @ zero_extendqisi2 + ldrb lr, [r10, #-2538] @ zero_extendqisi2 rsb r1, r0, #24 str ip, [sp, #4] mvn r2, r2, asl r0 @@ -18996,12 +19047,12 @@ gc_ink_check_sblk: ldr r2, [r6, #4] ldr r3, [r6, #12] bl flash_prog_page_en -.L3197: +.L3205: add r8, r8, #1 - b .L3196 -.L3211: - ldr r1, .L3213 - ldr r0, .L3213+36 + b .L3204 +.L3219: + ldr r1, .L3221 + ldr r0, .L3221+36 add r2, r1, #2144 ldrh r3, [r2] ldrh r0, [r0, #-8] @@ -19014,25 +19065,25 @@ gc_ink_check_sblk: movwls r3, #2106 movls r2, #3 strlsh r2, [r1, r3] @ movhi - b .L3184 -.L3190: + b .L3192 +.L3198: bl sblk_wait_write_queue_completed - ldr r9, .L3213+28 - ldr r10, .L3213+24 + ldr r9, .L3221+32 + ldr r10, .L3221+24 mov fp, #0 -.L3199: +.L3207: ldrb r3, [r7, #883] @ zero_extendqisi2 uxth r5, fp - ldr r8, .L3213+4 + ldr r8, .L3221+4 cmp r3, r5 - bls .L3212 + bls .L3220 add r5, r4, r5, asl #1 movw r2, #65535 add r5, r5, #2144 add r5, r5, #14 ldrh r3, [r5] cmp r3, r2 - beq .L3201 + beq .L3209 ldrh r2, [r10] mov r0, r6 ldrh r8, [r9] @@ -19043,25 +19094,25 @@ gc_ink_check_sblk: ldr r3, [r6, #4] ldr r3, [r3] cmp r3, r8 - beq .L3201 + beq .L3209 mov r0, r8 bl ftl_mask_bad_block mvn r3, #0 strh r3, [r5] @ movhi -.L3201: +.L3209: add fp, fp, #1 - b .L3199 -.L3212: + b .L3207 +.L3220: add r2, r8, #876 - ldr r5, .L3213 + ldr r5, .L3221 ldrh r3, [r2] add r3, r3, #1 uxth r3, r3 strh r3, [r2] @ movhi - ldr r2, .L3213+36 + ldr r2, .L3221+36 ldrh r2, [r2, #-8] cmp r2, r3 - bhi .L3184 + bhi .L3192 movw r3, #2106 ldr r0, [r8, #908] mov r6, #0 @@ -19071,7 +19122,7 @@ gc_ink_check_sblk: ldrh r3, [r5, r2] str r6, [r8, #908] cmp r3, #15 - bhi .L3204 + bhi .L3212 add r1, r3, #1 add r3, r3, #1040 strh r1, [r5, r2] @ movhi @@ -19080,14 +19131,14 @@ gc_ink_check_sblk: ldrh r2, [r5, r2] add r3, r5, r3, asl #1 strh r2, [r3, #6] @ movhi - b .L3205 -.L3204: + b .L3213 +.L3212: movw r3, #2142 ldrh r0, [r5, r3] bl zftl_insert_free_list -.L3205: +.L3213: movw r3, #2142 - ldr r0, .L3213+40 + ldr r0, .L3221+40 ldrh r1, [r4, r3] movw r3, #2108 ldrh r2, [r4, r3] @@ -19095,25 +19146,25 @@ gc_ink_check_sblk: @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} b printk -.L3185: +.L3193: mov r3, #0 strh r3, [r4, r5] @ movhi -.L3184: +.L3192: add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3214: +.L3222: .align 2 -.L3213: +.L3221: .word .LANCHOR0+2828 .word .LANCHOR0+4096 .word .LANCHOR0 - .word .LANCHOR3-3072 + .word .LANCHOR3 .word .LANCHOR0+2792 .word .LANCHOR0+4986 .word .LANCHOR0+4972 - .word .LANCHOR3-3066 .word 1437269760 + .word .LANCHOR3-3066 .word .LANCHOR3-3088 .word .LC200 .fnend @@ -19129,43 +19180,44 @@ ftl_ink_check_sblk: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #52 sub sp, sp, #52 - ldr r6, .L3238 + ldr r6, .L3246 mov r3, r0, asl #2 str r3, [sp, #8] mov r5, r0 ldr r2, [sp, #8] mov r1, r5 - ldr r3, [r6, #1080] + ldr r3, [r6, #1084] ldrh r2, [r3, r2] ldr r3, [r3, r0, asl #2] ubfx r2, r2, #0, #11 - ldr r0, .L3238+4 + ldr r0, .L3246+4 ubfx r3, r3, #11, #8 bl printk movw r3, #65535 cmp r5, r3 - beq .L3215 - movw r3, #1076 + beq .L3223 + movw r3, #1080 ldrh r3, [r6, r3] cmp r3, r5 - bls .L3215 + bls .L3223 mov r1, #0 mov r0, r5 bl ftl_erase_sblk mov r0, r5 - mov r8, #0 + ldr r8, .L3246+8 + mov r7, #0 add r1, sp, #32 strh r5, [sp, #16] @ movhi bl ftl_get_blk_list_in_sblk strb r0, [sp, #25] mov r0, #1 bl buf_alloc - ldr r3, [r6, #1080] + ldr r3, [r6, #1084] ldr r2, [sp, #8] mov r4, r0 ldr r0, [r0, #4] ldrh r3, [r3, r2] - ldrb r2, [r6, #2772] @ zero_extendqisi2 + ldrb r2, [r8, #-2538] @ zero_extendqisi2 ubfx r3, r3, #0, #11 cmp r3, #1 mov r2, r2, asl #9 @@ -19173,77 +19225,77 @@ ftl_ink_check_sblk: movgt r1, #170 bl ftl_memset bl sblk_wait_write_queue_completed -.L3219: - ldr r3, .L3238+8 - uxth r10, r8 - ldr fp, .L3238+8 +.L3227: + ldr r3, .L3246+12 + uxth r10, r7 + ldr fp, .L3246+12 ldrh r3, [r3] cmp r3, r10 - bls .L3234 + bls .L3242 add fp, fp, #30 mov r9, #0 -.L3222: +.L3230: ldrb r2, [sp, #25] @ zero_extendqisi2 uxth r3, r9 cmp r2, r3 - bls .L3235 + bls .L3243 add r2, sp, #48 add r3, r2, r3, asl #1 movw r2, #65535 ldrh r3, [r3, #-16] cmp r3, r2 - beq .L3220 - ldrh r7, [fp] + beq .L3228 + ldrh r1, [fp] + mov ip, #0 + ldr r2, [r4, #4] mvn r0, #0 - ldr r2, .L3238+12 - mla r7, r7, r3, r10 - ldr r3, [r4, #4] - str r7, [r3] - ldr r3, [r4, #4] - str r2, [r3, #4] - mov r2, #0 - ldr r3, [r4, #12] - str r2, [r3] - ldrb r3, [r6, #1189] @ zero_extendqisi2 - ldrb ip, [r6, #2772] @ zero_extendqisi2 - rsb r1, r3, #24 - str r2, [sp, #4] - mvn r3, r0, asl r3 - and r0, r3, r7, lsr r1 - str ip, [sp] - bic r1, r7, r3, asl r1 + mla r3, r1, r3, r10 + ldr r1, .L3246+16 + str r3, [r2] + ldr r2, [r4, #4] + str r1, [r2, #4] + ldr r2, [r4, #12] + str ip, [r2] + ldrb r2, [r6, #1153] @ zero_extendqisi2 + ldrb lr, [r8, #-2538] @ zero_extendqisi2 + rsb r1, r2, #24 + str ip, [sp, #4] + mvn r2, r0, asl r2 + and r0, r2, r3, lsr r1 + str lr, [sp] + bic r1, r3, r2, asl r1 uxtb r0, r0 ldr r2, [r4, #4] ldr r3, [r4, #12] bl flash_prog_page_en -.L3220: +.L3228: add r9, r9, #1 - b .L3222 -.L3235: - add r8, r8, #1 - b .L3219 -.L3234: + b .L3230 +.L3243: + add r7, r7, #1 + b .L3227 +.L3242: mov r10, #0 -.L3223: +.L3231: ldrh r1, [fp] uxth r3, r10 str r3, [sp, #12] cmp r1, r3 - bls .L3236 + bls .L3244 mov r9, #0 -.L3228: +.L3236: ldrb r1, [sp, #25] @ zero_extendqisi2 uxth r7, r9 cmp r1, r7 - bls .L3237 + bls .L3245 add r7, r7, #8 add r3, sp, #48 add r7, r3, r7, asl #1 movw r3, #65535 ldrh r1, [r7, #-32] cmp r1, r3 - beq .L3225 - ldr r3, .L3238+16 + beq .L3233 + ldr r3, .L3246+20 mov r0, r4 ldrh r8, [r3] ldr r3, [sp, #12] @@ -19254,22 +19306,22 @@ ftl_ink_check_sblk: ldr r1, [r4, #4] ldr r1, [r1] cmp r1, r8 - beq .L3225 + beq .L3233 mov r0, r8 bl ftl_mask_bad_block mvn r1, #0 strh r1, [r7, #-32] @ movhi -.L3225: +.L3233: add r9, r9, #1 - b .L3228 -.L3237: + b .L3236 +.L3245: add r10, r10, #1 - b .L3223 -.L3236: + b .L3231 +.L3244: mov r0, r4 bl zbuf_free - ldr r3, [r6, #1080] - ldr r0, .L3238+20 + ldr r3, [r6, #1084] + ldr r0, .L3246+24 mov r1, r5 ldr r2, [sp, #8] ldrh r2, [r3, r2] @@ -19277,15 +19329,16 @@ ftl_ink_check_sblk: ubfx r2, r2, #0, #11 ubfx r3, r3, #11, #8 bl printk -.L3215: +.L3223: add sp, sp, #52 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3239: +.L3247: .align 2 -.L3238: +.L3246: .word .LANCHOR0 .word .LC201 + .word .LANCHOR3 .word .LANCHOR3-3096 .word 1437269760 .word .LANCHOR3-3066 @@ -19312,20 +19365,20 @@ ftl_alloc_sblk: movw r3, #65535 cmp r0, r3 mov r4, r0 - beq .L3242 - ldr r6, .L3256 + beq .L3250 + ldr r6, .L3264 mov r8, r0, asl #2 - ldr r5, [r6, #1080] + ldr r5, [r6, #1084] add r5, r5, r8 ldrb r3, [r5, #2] @ zero_extendqisi2 tst r3, #224 - beq .L3243 - ldr r1, .L3256+4 + beq .L3251 + ldr r1, .L3264+4 mov r2, #1012 - ldr r0, .L3256+8 + ldr r0, .L3264+8 bl printk bl dump_stack -.L3243: +.L3251: ldrb r3, [r5, #2] @ zero_extendqisi2 bfi r3, r9, #5, #3 uxtb r3, r3 @@ -19343,46 +19396,46 @@ ftl_alloc_sblk: ldr r3, [r6, #2804] ldrh r3, [r3, #150] cmp r3, #0 - beq .L3247 - ldr r3, .L3256 + beq .L3255 + ldr r3, .L3264 mov r0, r4 - ldr r3, [r3, #1080] + ldr r3, [r3, #1084] ldrh r3, [r3, r8] ubfx r3, r3, #0, #11 orrs r3, r7, r3 - bne .L3248 + bne .L3256 bl ftl_ink_check_sblk - b .L3247 -.L3242: + b .L3255 +.L3250: bl print_ftl_debug_info mov r1, r4 mov r2, r9 - ldr r0, .L3256+12 + ldr r0, .L3264+12 bl printk mov r1, r5 mov r0, #0 bl zftl_get_free_sblk mov r2, r9 mov r4, r0 - ldr r0, .L3256+12 + ldr r0, .L3264+12 mov r1, r4 bl printk bl dump_all_list_info - ldr r1, .L3256+4 + ldr r1, .L3264+4 movw r2, #1031 - ldr r0, .L3256+8 + ldr r0, .L3264+8 bl printk bl dump_stack -.L3247: +.L3255: mov r0, r4 ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, pc} -.L3248: - ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, pc} -.L3257: - .align 2 .L3256: + ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, pc} +.L3265: + .align 2 +.L3264: .word .LANCHOR0 - .word .LANCHOR1+2404 + .word .LANCHOR1+2284 .word .LC0 .word .LC203 .fnend @@ -19397,20 +19450,20 @@ ftl_open_sblk_init: stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r4, r0 - ldr r6, .L3266 + ldr r6, .L3274 mov r5, r1 - ldr r8, .L3266+4 + ldr r8, .L3274+4 mov r7, r6 -.L3259: +.L3267: movw r10, #65535 -.L3260: +.L3268: mov r0, r5 bl ftl_alloc_sblk cmp r0, r10 mov r9, r0 - beq .L3260 + beq .L3268 mov r1, #0 - ldr fp, .L3266+8 + ldr fp, .L3274+8 bl ftl_erase_sblk add r1, r4, #16 mov r0, r9 @@ -19439,24 +19492,24 @@ ftl_open_sblk_init: add r0, r1, r0, asl #2 mov r1, #255 bl ftl_memset - ldr r3, [fp, #1088] + ldr r3, [fp, #1092] ldrh r2, [r4, #6] strh r2, [r3, r10] @ movhi ldrb r3, [r4, #9] @ zero_extendqisi2 cmp r3, #0 ldmnefd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} - ldr r0, .L3266+12 + ldr r0, .L3274+12 mov r1, r9 bl printk - ldr r3, [fp, #1088] + ldr r3, [fp, #1092] mvn r2, #0 strh r2, [r3, r10] @ movhi mov r3, #7 strb r3, [r4, #4] - b .L3259 -.L3267: + b .L3267 +.L3275: .align 2 -.L3266: +.L3274: .word .LANCHOR3 .word .LANCHOR3-3096 .word .LANCHOR0 @@ -19474,8 +19527,8 @@ pm_alloc_new_blk: .save {r4, r5, r6, r7, r8, lr} .pad #8 movw r2, #690 - ldr r5, .L3286 - ldr r7, .L3286+4 + ldr r5, .L3294 + ldr r7, .L3294+4 ldr r4, [r5, #2804] ldrh r3, [r4, r2] add r3, r3, #1 @@ -19483,22 +19536,22 @@ pm_alloc_new_blk: strh r3, [r4, r2] @ movhi ldrb r2, [r7, #-3123] @ zero_extendqisi2 cmp r2, r3 - bls .L3269 + bls .L3277 add r3, r3, #336 mov r3, r3, asl #1 ldrh r2, [r4, r3] movw r3, #65535 cmp r2, r3 - bne .L3270 -.L3269: - ldr r4, .L3286 + bne .L3278 +.L3277: + ldr r4, .L3294 movw r8, #65535 -.L3271: +.L3279: mov r0, #1 bl ftl_alloc_sblk cmp r0, r8 mov r6, r0 - beq .L3271 + beq .L3279 mov r1, #0 bl ftl_erase_sblk ldr r1, [r5, #2804] @@ -19507,18 +19560,18 @@ pm_alloc_new_blk: bl ftl_get_blk_list_in_sblk uxth r0, r0 cmp r0, #0 - bne .L3272 + bne .L3280 mov r1, r6 - ldr r0, .L3286+8 + ldr r0, .L3294+8 bl printk - ldr r3, [r4, #1080] + ldr r3, [r4, #1084] add r6, r3, r6, asl #2 ldrb r3, [r6, #2] @ zero_extendqisi2 orr r3, r3, #224 strb r3, [r6, #2] - b .L3271 -.L3272: - ldr r3, .L3286 + b .L3279 +.L3280: + ldr r3, .L3294 movw r2, #690 mov r4, #0 movw r1, #65535 @@ -19527,22 +19580,22 @@ pm_alloc_new_blk: add r3, r3, #412 add r3, r3, #2 mov r2, #1 - str r2, [r7, #520] -.L3274: + str r2, [r7, #-36] +.L3282: ldrh r0, [r3, #2]! uxth r2, r4 cmp r0, r1 - beq .L3273 + beq .L3281 add r4, r4, #1 cmp r4, #128 - bne .L3274 + bne .L3282 mov r2, #264 - ldr r1, .L3286+12 - ldr r0, .L3286+16 + ldr r1, .L3294+12 + ldr r0, .L3294+16 bl printk bl dump_stack mov r2, r4 -.L3273: +.L3281: add r2, r2, #208 ldr r3, [r5, #2804] mov r2, r2, asl #1 @@ -19551,7 +19604,7 @@ pm_alloc_new_blk: ldrh r2, [r3] add r2, r2, #1 strh r2, [r3] @ movhi -.L3270: +.L3278: ldr r2, [r5, #2804] movw r3, #690 ldrh r3, [r2, r3] @@ -19562,51 +19615,51 @@ pm_alloc_new_blk: sub r3, r4, #1 uxth r3, r3 cmp r3, r2 - bls .L3276 - ldr r1, .L3286+12 + bls .L3284 + ldr r1, .L3294+12 movw r2, #270 - ldr r0, .L3286+16 + ldr r0, .L3294+16 bl printk bl dump_stack -.L3276: +.L3284: ldr r1, [r5, #2804] mov r2, #0 add r3, r1, #696 strh r2, [r3] @ movhi - ldr r2, .L3286+20 - ldrb r3, [r5, #1189] @ zero_extendqisi2 + ldr r2, .L3294+20 + ldrb r3, [r5, #1153] @ zero_extendqisi2 ldrh r5, [r2, #-12] rsb r3, r3, #24 movw r2, #694 rsb r5, r5, r3 mov r3, r4, asr r5 strh r3, [r1, r2] @ movhi - ldr r2, .L3286+24 + ldr r2, .L3294+24 add r1, r1, #692 strh r4, [r1] @ movhi ldr r2, [r2] tst r2, #4096 - beq .L3280 + beq .L3288 mvn r2, #0 uxth r3, r3 - ldr r0, .L3286+28 + ldr r0, .L3294+28 mov r1, r4 str r3, [sp] mvn r2, r2, asl r5 mov r3, r4 bl printk -.L3280: +.L3288: mov r0, #0 add sp, sp, #8 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, pc} -.L3287: +.L3295: .align 2 -.L3286: +.L3294: .word .LANCHOR0 .word .LANCHOR3 .word .LC204 - .word .LANCHOR1+2420 + .word .LANCHOR1+2300 .word .LC0 .word .LANCHOR3-3120 .word .LANCHOR2 @@ -19623,12 +19676,12 @@ pm_write_page: stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 - mov r6, r0 - ldr r8, .L3302 + mov r5, r0 + ldr r8, .L3310 mov r7, r1 - ldr r9, .L3302+4 - mov r4, r8 -.L3289: + ldr r9, .L3310+4 + mov r6, r8 +.L3297: ldr r3, [r8, #2804] ldr r2, [r3, #48] add r2, r2, #1 @@ -19637,99 +19690,99 @@ pm_write_page: ldrh r1, [r2] ldrh r2, [r9] cmp r1, r2 - bcs .L3290 + bcs .L3298 add r3, r3, #692 ldrh r2, [r3] movw r3, #65535 cmp r2, r3 - bne .L3291 -.L3290: + bne .L3299 +.L3298: bl pm_alloc_new_blk mov r0, #0 bl ftl_info_flush -.L3291: - ldr r3, [r4, #2804] +.L3299: + ldr r3, [r6, #2804] add r3, r3, #692 ldrh r2, [r3] movw r3, #65535 cmp r2, r3 - bne .L3292 - ldr r1, .L3302+8 + bne .L3300 + ldr r1, .L3310+8 movw r2, #303 - ldr r0, .L3302+12 + ldr r0, .L3310+12 bl printk bl dump_stack -.L3292: - ldr r3, [r4, #2804] - ldr r5, .L3302+16 +.L3300: + ldr r3, [r6, #2804] + ldr r4, .L3310+16 add r2, r3, #692 add r3, r3, #696 ldrh r1, [r2] - ldr r2, .L3302+20 - ldr r0, [r5, #524] + ldr r2, .L3310+20 + ldr r0, [r4, #-32] ldrh r10, [r2] ldrh r2, [r3] mla r10, r10, r1, r2 mov r2, #64 mov r1, #0 bl ftl_memset - ldr r3, [r5, #524] + ldr r3, [r4, #-32] mov r0, r7 - str r6, [r3] - ldr r3, [r4, #2804] - ldr fp, [r5, #524] - ldrb r1, [r4, #2772] @ zero_extendqisi2 + str r5, [r3] + ldr r3, [r6, #2804] + ldr fp, [r4, #-32] + ldrb r1, [r4, #-2538] @ zero_extendqisi2 ldr r3, [r3, #48] mov r1, r1, asl #9 str r3, [fp, #4] bl js_hash - ldr r3, [r4, #2804] + ldr r3, [r6, #2804] mov r1, r10 mov r2, r7 str r0, [fp, #8] ldrb r0, [r3, #694] @ zero_extendqisi2 - ldrb r3, [r4, #2772] @ zero_extendqisi2 + ldrb r3, [r4, #-2538] @ zero_extendqisi2 str r3, [sp] - ldr r3, [r5, #524] + ldr r3, [r4, #-32] bl ftl_prog_page - ldr r2, [r4, #2804] + ldr r2, [r6, #2804] add r1, r2, #696 ldrh r3, [r1] add r3, r3, #1 uxth r3, r3 strh r3, [r1] @ movhi cmp r3, #1 - beq .L3293 - ldrb r3, [r5, #528] @ zero_extendqisi2 + beq .L3301 + ldrb r3, [r4, #-28] @ zero_extendqisi2 cmp r3, #0 - beq .L3294 -.L3293: + beq .L3302 +.L3301: mov r3, #0 - strb r3, [r5, #528] - b .L3289 -.L3294: + strb r3, [r4, #-28] + b .L3297 +.L3302: cmn r0, #1 - bne .L3296 + bne .L3304 mov r1, r10 - ldr r0, .L3302+24 + ldr r0, .L3310+24 bl printk - b .L3289 -.L3296: + b .L3297 +.L3304: movw r3, #698 mov r0, #0 ldrh r3, [r2, r3] - cmp r6, r3 - addcc r6, r6, #176 - strcc r10, [r2, r6, asl #2] + cmp r5, r3 + addcc r5, r5, #176 + strcc r10, [r2, r5, asl #2] add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3303: +.L3311: .align 2 -.L3302: +.L3310: .word .LANCHOR0 .word .LANCHOR3-3096 - .word .LANCHOR1+2440 + .word .LANCHOR1+2320 .word .LC0 .word .LANCHOR3 .word .LANCHOR3-3066 @@ -19743,132 +19796,126 @@ flash_info_flush: .fnstart @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L3318 + ldr r3, .L3326 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #20 sub sp, sp, #20 ldr r3, [r3] tst r3, #4096 - beq .L3305 - ldr r0, .L3318+4 + beq .L3313 + ldr r0, .L3326+4 movw r1, #365 - ldr r2, .L3318+8 + ldr r2, .L3326+8 bl printk -.L3305: - ldr r5, .L3318+12 +.L3313: + ldr r4, .L3326+12 mov r1, #0 - ldr r6, .L3318+16 + ldr r6, .L3326+16 mov r2, #64 - add r8, r5, #536 - mov r9, #0 - ldr r0, [r5, #532] - mov r7, r5 + ldr r10, .L3326+20 + mov r8, #0 + ldr r0, [r4, #-24] + mov r7, r4 bl ftl_memset - ldr r0, .L3318+20 - ldr r1, [r6, #1176] + ldr r0, .L3326+24 + ldr r1, [r6, #1040] mov r2, #4 mov r3, #16 - mov r10, r8 + mov r9, r6 bl rknand_print_hex - ldr r4, [r6, #1176] - add r0, r4, #16 - ldr r1, [r4, #8] + ldr r5, [r6, #1040] + add r0, r5, #16 + ldr r1, [r5, #8] bl js_hash - str r0, [r4, #12] -.L3306: - ldrb r3, [r5, #536] @ zero_extendqisi2 - ldrh r4, [r8, #2] - ldrh ip, [r6, #2] - mov r1, r3 - ldr r0, .L3318+24 - mov r2, r4 - str r3, [sp, #8] - str ip, [sp, #12] + str r0, [r5, #12] +.L3314: + ldrb r5, [r4, #-20] @ zero_extendqisi2 + ldrh fp, [r4, #-18] + ldrh r3, [r6, #2] + ldr r0, .L3326+28 + mov r1, r5 + mov r2, fp + str r3, [sp, #12] bl printk - ldrh r2, [r5, #-220] - ldrh r0, [r8, #2] + ldrh r2, [r4, #-216] + ldrh r0, [r4, #-18] sub r2, r2, #1 - ldr fp, .L3318+16 cmp r0, r2 - ldr r3, [sp, #8] - ldr ip, [sp, #12] - blt .L3307 - ldr r4, [fp, #1176] - ldrb r2, [r7, #537] @ zero_extendqisi2 - ldr r3, [r4, #4] - mov r0, r4 + ldr r3, [sp, #12] + blt .L3315 + ldr r5, [r9, #1040] + mov fp, #0 + ldrb r2, [r7, #-19] @ zero_extendqisi2 + strh fp, [r7, #-18] @ movhi + ldr r3, [r5, #4] + mov r0, r5 add r3, r3, #1 - str r3, [r4, #4] - ldrb r3, [r7, #536] @ zero_extendqisi2 - strb r2, [r7, #536] - ldrh r2, [r4, #16] - strb r3, [r7, #537] - mov r3, #0 - add r2, r2, #1 - strh r2, [r0, #16]! @ movhi - ldr r1, [r4, #8] - strh r3, [r8, #2] @ movhi - str r3, [sp, #8] + str r3, [r5, #4] + ldrb r3, [r7, #-20] @ zero_extendqisi2 + strb r2, [r7, #-20] + strb r3, [r7, #-19] + ldrh r3, [r5, #16] + add r3, r3, #1 + strh r3, [r0, #16]! @ movhi + ldr r1, [r5, #8] bl js_hash - ldrb r2, [r7, #536] @ zero_extendqisi2 - str r0, [r4, #12] - ldr r3, [sp, #8] - ldrh r4, [fp, #2] - mov r0, r3 - mul r4, r4, r2 - b .L3316 -.L3307: + ldrb r3, [r7, #-20] @ zero_extendqisi2 + str r0, [r5, #12] + mov r0, fp + ldrh r5, [r9, #2] + mul r5, r5, r3 + b .L3324 +.L3315: cmp r0, #0 - mla r4, ip, r3, r4 - bne .L3308 -.L3316: - mov r1, r4 + mla r5, r3, r5, fp + bne .L3316 +.L3324: + mov r1, r5 bl flash_erase_block -.L3308: - ldr r2, [r6, #1176] +.L3316: + ldr r2, [r6, #1040] mov fp, #1 - ldr r3, [r5, #532] + ldr r3, [r4, #-24] mov r0, #0 - mov r1, r4 + mov r1, r5 ldr r2, [r2, #4] str r2, [r3] - ldr r2, .L3318+28 - ldr r3, [r5, #532] - str r2, [r3, #4] mov r2, #4 + ldr r3, [r4, #-24] + str r10, [r3, #4] stmia sp, {r2, fp} - ldr r2, [r6, #1176] + ldr r2, [r6, #1040] bl flash_prog_page_en - ldrh r3, [r10, #2] + ldrh r3, [r4, #-18] add r3, r3, fp - strh r3, [r10, #2] @ movhi + strh r3, [r4, #-18] @ movhi cmn r0, #1 - bne .L3309 - mov r1, r4 - ldr r0, .L3318+32 + bne .L3317 + mov r1, r5 + ldr r0, .L3326+32 bl printk - b .L3306 -.L3309: - cmp r9, #0 - moveq r9, fp - beq .L3306 + b .L3314 .L3317: + cmp r8, #0 + moveq r8, fp + beq .L3314 +.L3325: mov r0, #0 add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3319: +.L3327: .align 2 -.L3318: +.L3326: .word .LANCHOR2 - .word .LC138 - .word .LANCHOR1+2456 + .word .LC135 + .word .LANCHOR1+2336 .word .LANCHOR3 .word .LANCHOR0 + .word 1398362953 .word .LC207 .word .LC208 - .word 1398362953 .word .LC209 .fnend .size flash_info_flush, .-flash_info_flush @@ -19879,172 +19926,170 @@ flash_info_blk_init: .fnstart @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L3353 + ldr r3, .L3361 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #20 sub sp, sp, #20 ldr r3, [r3] - ldr r6, .L3353+4 + ldr r6, .L3361+4 tst r3, #4096 - beq .L3321 - ldr r3, [r6, #1176] + beq .L3329 + ldr r3, [r6, #1040] mov r1, #50 - ldr r0, .L3353+8 - ldr r2, .L3353+12 + ldr r0, .L3361+8 + ldr r2, .L3361+12 str r3, [sp] mov r3, #2048 bl printk -.L3321: - ldr ip, .L3353+4 +.L3329: + ldr ip, .L3361+4 mov r7, #4 - ldr fp, .L3353+16 -.L3322: + ldr fp, .L3361+16 +.L3330: mov r5, #0 -.L3325: +.L3333: ldrh r1, [r6, #2] mov r8, #4 - ldr r4, .L3353+20 + ldr r4, .L3361+20 mov r0, #0 str r8, [sp] mla r1, r1, r7, r5 - ldr r2, [r6, #1176] - ldr r3, [r4, #532] + ldr r2, [r6, #1040] + ldr r3, [r4, #-24] str ip, [sp, #12] bl flash_read_page_en - ldr r9, .L3353+4 + ldr r9, .L3361+4 cmn r0, #1 ldr ip, [sp, #12] - beq .L3323 - ldr r2, [ip, #1176] - ldr r10, .L3353+16 + beq .L3331 + ldr r2, [ip, #1040] + ldr r10, .L3361+16 ldr r3, [r2] cmp r3, fp - beq .L3324 -.L3323: + beq .L3332 +.L3331: add r5, r5, #1 cmp r5, #4 - bne .L3325 + bne .L3333 add r7, r7, #1 cmp r7, #16 - bne .L3322 - b .L3334 -.L3324: + bne .L3330 + b .L3342 +.L3332: ldrb r1, [r2, #37] @ zero_extendqisi2 mov r0, #0 ldrb r3, [r2, #36] @ zero_extendqisi2 - strb r1, [r4, #537] + strb r1, [r4, #-19] ldrh r1, [r9, #2] - strb r3, [r4, #536] + strb r3, [r4, #-20] str r8, [sp] mul r1, r1, r3 - ldr r3, [r4, #532] + ldr r3, [r4, #-24] bl flash_read_page_en cmn r0, #1 - beq .L3335 - ldr r3, [r9, #1176] + beq .L3343 + ldr r3, [r9, #1040] ldr r2, [r3] cmp r2, fp ldreq r5, [r3, #4] - bne .L3335 -.L3327: - ldrb r3, [r4, #537] @ zero_extendqisi2 + bne .L3343 +.L3335: + ldrb r3, [r4, #-19] @ zero_extendqisi2 mov r2, #4 ldrh r1, [r6, #2] mov r0, #0 str r2, [sp] - ldr r2, [r6, #1176] + ldr r2, [r6, #1040] mul r1, r1, r3 - ldr r3, [r4, #532] + ldr r3, [r4, #-24] bl flash_read_page_en - ldr r7, .L3353+20 + ldr r7, .L3361+20 cmn r0, #1 - bne .L3352 -.L3328: - ldr r2, [r6, #1176] + bne .L3360 +.L3336: + ldr r3, [r4, #-24] mov r8, #4 - ldr r3, [r4, #532] + ldrb r1, [r4, #-20] @ zero_extendqisi2 mov r0, #0 - ldrb r1, [r4, #536] @ zero_extendqisi2 - mov r7, #0 str r8, [sp] + mov r7, #0 + ldr r2, [r6, #1040] bl flash_get_last_written_page - ldr r3, .L3353+24 ldrh r9, [r6, #2] - ldr ip, .L3353+4 + ldr ip, .L3361+4 uxth fp, r0 - add r2, fp, #1 - strh r2, [r3, #2] @ movhi - ldrb r3, [r4, #536] @ zero_extendqisi2 + add r3, fp, #1 + strh r3, [r4, #-18] @ movhi + ldrb r3, [r4, #-20] @ zero_extendqisi2 mla r9, r9, r3, r0 -.L3329: +.L3337: rsb r5, r7, fp sxth r5, r5 cmp r5, #0 - bge .L3332 + bge .L3340 cmn r5, #1 - bne .L3331 - ldr r3, [r6, #1176] - ldr r0, .L3353+28 + bne .L3339 + ldr r3, [r6, #1040] + ldr r0, .L3361+24 ldr r1, [r3] bl printk -.L3334: +.L3342: mvn r0, #0 - b .L3350 -.L3335: + b .L3358 +.L3343: mov r5, #0 - b .L3327 -.L3352: - ldr r3, .L3353+4 - ldr r3, [r3, #1176] + b .L3335 +.L3360: + ldr r3, .L3361+4 + ldr r3, [r3, #1040] ldr r2, [r3] cmp r2, r10 - bne .L3328 + bne .L3336 ldr r2, [r3, #4] cmp r5, r2 ldrccb r2, [r3, #37] @ zero_extendqisi2 ldrccb r3, [r3, #36] @ zero_extendqisi2 - strccb r2, [r7, #536] - strccb r3, [r7, #537] - b .L3328 -.L3332: + strccb r2, [r7, #-20] + strccb r3, [r7, #-19] + b .L3336 +.L3340: str r8, [sp] mov r0, #0 rsb r1, r7, r9 - ldr r2, [r6, #1176] - ldr r3, [r4, #532] + ldr r2, [r6, #1040] + ldr r3, [r4, #-24] str ip, [sp, #12] bl flash_read_page_en cmn r0, #1 ldr ip, [sp, #12] - beq .L3330 - ldr r3, [ip, #1176] + beq .L3338 + ldr r3, [ip, #1040] ldr r3, [r3] cmp r3, r10 - beq .L3331 -.L3330: + beq .L3339 +.L3338: add r7, r7, #1 - b .L3329 -.L3331: + b .L3337 +.L3339: cmp r7, #1 - bls .L3336 + bls .L3344 bl flash_info_flush -.L3336: +.L3344: mov r0, #0 -.L3350: +.L3358: add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3354: +.L3362: .align 2 -.L3353: +.L3361: .word .LANCHOR2 .word .LANCHOR0 .word .LC210 - .word .LANCHOR1+2476 + .word .LANCHOR1+2356 .word 1398362953 .word .LANCHOR3 - .word .LANCHOR3+536 .word .LC211 .fnend .size flash_info_blk_init, .-flash_info_blk_init @@ -20058,106 +20103,105 @@ nand_flash_init: stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r4, r0 - ldr r6, .L3451 + ldr r6, .L3459 ldr r3, [r6] tst r3, #4096 - beq .L3356 - ldr r0, .L3451+4 + beq .L3364 + ldr r0, .L3459+4 movw r1, #3450 - ldr r2, .L3451+8 + ldr r2, .L3459+8 bl printk -.L3356: - ldr r5, .L3451+12 +.L3364: + ldr r5, .L3459+12 mov r0, r4 mov r7, #0 - ldr r4, .L3451+16 - str r7, [r5, #-112] + ldr r4, .L3459+16 + ldr r8, .L3459+20 + str r7, [r5, #-96] bl nandc_init - ldr r3, .L3451+20 + ldr r3, .L3459+24 mov r1, r7 mov r2, #8 - ldr r0, .L3451+24 - add r10, r4, #1200 - mov r9, r4 - str r3, [r4, #1096] + ldr r0, .L3459+28 + mov r10, r4 + mov fp, r8 + str r3, [r4, #1104] mov r3, #1 - strb r3, [r4, #1101] + strb r3, [r4, #1109] mov r3, #3 - strb r3, [r4, #1189] + strb r3, [r4, #1153] bl ftl_memset - sub r0, r5, #216 + sub r0, r5, #212 mov r1, r7 mov r2, #32 - mov fp, r10 bl ftl_memset -.L3362: - mov r8, r7, asl #3 +.L3370: + mov r9, r7, asl #3 uxtb r0, r7 - add r1, r10, r8 + add r1, r8, r9 bl flash_read_id cmp r7, #0 - ldr r1, .L3451+28 - bne .L3357 - ldrb r3, [r9, #1200] @ zero_extendqisi2 + ldr r1, .L3459+20 + bne .L3365 + ldrb r3, [r10, #1164] @ zero_extendqisi2 sub r3, r3, #1 uxtb r3, r3 cmp r3, #253 - bls .L3358 -.L3360: + bls .L3366 +.L3368: mvn r7, #1 - b .L3440 -.L3358: - ldrb r3, [r9, #1201] @ zero_extendqisi2 + b .L3448 +.L3366: + ldrb r3, [r10, #1165] @ zero_extendqisi2 cmp r3, #255 - beq .L3360 -.L3357: - ldrb r3, [fp, r8] @ zero_extendqisi2 + beq .L3368 +.L3365: + ldrb r3, [r9, fp] @ zero_extendqisi2 add r7, r7, #1 cmp r3, #181 - ldreq r3, .L3451+28 - moveq r2, #44 - streqb r2, [r8, r3] + moveq r3, #44 + streqb r3, [r9, r8] cmp r7, #4 - bne .L3362 - ldr ip, .L3451+32 + bne .L3370 + ldr ip, .L3459+32 mov r3, #0 -.L3400: +.L3408: mov r0, r3, asl #5 ldrb r8, [ip, r3, asl #5] @ zero_extendqisi2 add r7, r0, #1 - ldr lr, .L3451+32 + ldr lr, .L3459+32 add r7, ip, r7 mov r2, #0 -.L3363: +.L3371: cmp r2, r8 - bcs .L3450 + bcs .L3458 ldrb r10, [r7, r2] @ zero_extendqisi2 - ldrb r9, [r1, r2] @ zero_extendqisi2 + ldrb r9, [r2, r1] @ zero_extendqisi2 cmp r10, r9 - bne .L3364 + bne .L3372 add r2, r2, #1 - b .L3363 -.L3450: + b .L3371 +.L3458: adds r8, lr, r0 - beq .L3360 - ldr r3, .L3451 - ldr r2, .L3451+36 + beq .L3368 + ldr r3, .L3459 + ldr r2, .L3459+36 add r0, r3, r0 mov r3, #0 ldrb r1, [r0, #446] @ zero_extendqisi2 -.L3368: +.L3376: ldrb r0, [r2, r3, asl #5] @ zero_extendqisi2 cmp r0, r1 - beq .L3367 + beq .L3375 add r3, r3, #1 cmp r3, #4 - bne .L3368 -.L3367: - ldr r1, .L3451+36 + bne .L3376 +.L3375: + ldr r1, .L3459+36 mov r2, #32 - ldr r7, .L3451 + ldr r7, .L3459 add r1, r1, r3, asl #5 - ldr r0, .L3451+40 + ldr r0, .L3459+40 bl ftl_memcpy add r0, r7, #4 mov r1, r8 @@ -20165,145 +20209,145 @@ nand_flash_init: bl ftl_memcpy ldrb r3, [r4, #1028] @ zero_extendqisi2 cmp r3, #8 - bhi .L3369 + bhi .L3377 ldrb r2, [r7, #24] @ zero_extendqisi2 cmp r2, #60 movhi r2, #60 strhib r2, [r7, #24] cmp r3, #6 - beq .L3360 -.L3369: + beq .L3368 +.L3377: ldr r3, [r6] tst r3, #4096 - beq .L3371 - ldr r0, .L3451+4 + beq .L3379 + ldr r0, .L3459+4 movw r1, #3480 - ldr r2, .L3451+8 + ldr r2, .L3459+8 bl printk -.L3371: - ldr r3, [r4, #1096] +.L3379: + ldr r3, [r4, #1104] mov r0, #16384 mov r7, #0 ldrh r3, [r3, #10] cmp r3, #1024 - ldrcs r3, .L3451+16 + ldrcs r3, .L3459+16 movcs r2, #2 - strcsb r2, [r3, #1189] + strcsb r2, [r3, #1153] bl ftl_malloc - str r0, [r5, #-104] + str r0, [r5, #-88] mov r0, #16384 bl ftl_malloc - str r0, [r5, #-128] + str r0, [r5, #-112] mov r0, #2048 - bl ftl_malloc - str r0, [r4, #1176] + bl ftl_dma32_malloc + str r0, [r4, #1040] mov r0, #64 - bl ftl_malloc - str r0, [r5, #-100] + bl ftl_dma32_malloc + str r0, [r5, #-84] mov r0, #64 - bl ftl_malloc - str r0, [r5, #-120] + bl ftl_dma32_malloc + str r0, [r5, #-104] mov r0, #64 - bl ftl_malloc - strb r7, [r5, #540] - str r0, [r5, #532] + bl ftl_dma32_malloc + strb r7, [r5, #-16] + str r0, [r5, #-24] bl flash_die_info_init ldrb r0, [r6, #22] @ zero_extendqisi2 bl flash_lsb_page_tbl_build ldrb r0, [r6, #24] @ zero_extendqisi2 bl nandc_bch_sel - ldr r1, [r4, #1096] - str r7, [r5, #-108] + ldr r1, [r4, #1104] + str r7, [r5, #-92] ldrh r3, [r1, #16] ubfx r2, r3, #8, #3 - strb r2, [r4, #1232] + strb r2, [r4, #1196] ubfx r2, r3, #3, #1 - strb r2, [r5, #-88] + strb r2, [r5, #-72] ubfx r2, r3, #4, #1 - strb r2, [r4, #1233] + strb r2, [r4, #1198] ubfx r2, r3, #12, #1 strb r2, [r5, #-3116] ubfx r2, r3, #13, #1 strb r2, [r5, #-3122] ubfx r2, r3, #11, #1 - strb r2, [r4, #1196] + strb r2, [r4, #1160] ldrb r2, [r1, #31] @ zero_extendqisi2 ldrb r1, [r1, #28] @ zero_extendqisi2 ubfx r0, r2, #1, #1 - strb r0, [r5, #-2536] + strb r0, [r5, #-2534] ubfx r0, r2, #2, #1 - strb r0, [r5, #541] + strb r0, [r5, #-15] ubfx r0, r3, #14, #1 mov r3, r3, lsr #15 strb r3, [r5, #-3121] ubfx r3, r2, #3, #1 - strb r3, [r4, #1188] + strb r3, [r4, #1152] mov r3, #60 - strb r3, [r4, #1100] + strb r3, [r4, #1108] ubfx r2, r2, #4, #1 ldrb r3, [r4, #1028] @ zero_extendqisi2 - strb r2, [r4, #1197] + strb r2, [r4, #1161] cmp r3, #9 strb r1, [r4] - strb r1, [r4, #1102] - ldreq r2, .L3451+16 + strb r1, [r4, #1110] + ldreq r2, .L3459+16 ldrb r1, [r6, #35] @ zero_extendqisi2 strb r0, [r4, #1] moveq r0, #70 - streqb r0, [r2, #1100] + streqb r0, [r2, #1108] tst r1, #1 - ldr r2, .L3451+16 - beq .L3374 - ldr r1, .L3451 + ldr r2, .L3459+16 + beq .L3382 + ldr r1, .L3459 ldrb r1, [r1, #33] @ zero_extendqisi2 cmp r1, #0 movne r1, #2 moveq r1, #3 - strb r1, [r2, #1102] -.L3374: + strb r1, [r2, #1110] +.L3382: cmp r3, #8 - bne .L3376 - ldrb r3, [r4, #1200] @ zero_extendqisi2 + bne .L3384 + ldrb r3, [r4, #1164] @ zero_extendqisi2 cmp r3, #44 cmpne r3, #137 - bne .L3376 + bne .L3384 ldrb r3, [r6, #32] @ zero_extendqisi2 cmp r3, #3 - ldreq r3, .L3451+16 + ldreq r3, .L3459+16 moveq r2, #0 - streqb r2, [r3, #1102] -.L3376: + streqb r2, [r3, #1110] +.L3384: ldrh r2, [r6, #20] ldrb r3, [r6, #23] @ zero_extendqisi2 tst r2, #64 - ldr r0, .L3451+16 - strb r3, [r4, #1173] - beq .L3378 + ldr r0, .L3459+16 + strb r3, [r4, #1100] + beq .L3386 sub r2, r3, #17 sub r1, r3, #21 clz r1, r1 cmp r3, #21 cmpne r2, #2 mov r1, r1, lsr #5 - bhi .L3379 - ldr r2, .L3451+44 + bhi .L3387 + ldr r2, .L3459+44 cmp r1, #0 - ldr r3, .L3451+12 - str r2, [r5, #-108] + ldr r3, .L3459+12 + str r2, [r5, #-92] moveq r2, #15 movne r2, #4 - strb r2, [r3, #-116] - b .L3378 -.L3379: + strb r2, [r3, #-100] + b .L3386 +.L3387: sub r2, r3, #65 cmp r3, #33 cmpne r2, #1 - ldrls r3, .L3451+48 - strls r3, [r5, #-108] + ldrls r3, .L3459+48 + strls r3, [r5, #-92] movls r3, #4 - strlsb r3, [r0, #1174] - bls .L3449 -.L3382: + strlsb r3, [r0, #1101] + bls .L3457 +.L3390: sub r1, r3, #67 sub r2, r3, #34 cmp r1, #1 @@ -20319,153 +20363,153 @@ nand_flash_init: cmp r2, #0 mov ip, ip, lsr #5 mov lr, lr, lsr #5 - beq .L3383 - ldr r2, .L3451+48 - ldr r3, .L3451+12 - str r2, [r5, #-108] + beq .L3391 + ldr r2, .L3459+48 + ldr r3, .L3459+12 + str r2, [r5, #-92] orrs r2, lr, ip moveq r2, #7 movne r2, #17 cmp r1, #0 - strb r2, [r3, #-116] + strb r2, [r3, #-100] movne r3, #4 moveq r3, #5 - strb r3, [r4, #1174] - b .L3378 -.L3383: + strb r3, [r4, #1101] + b .L3386 +.L3391: sub r1, r3, #36 cmp r1, #1 - bhi .L3387 - ldr r3, .L3451+52 - str r3, [r5, #-108] -.L3449: + bhi .L3395 + ldr r3, .L3459+52 + str r3, [r5, #-92] +.L3457: mov r3, #7 - b .L3447 -.L3387: + b .L3455 +.L3395: cmp r3, #50 - bne .L3388 - ldr r3, .L3451+56 - str r3, [r5, #-108] + bne .L3396 + ldr r3, .L3459+56 + str r3, [r5, #-92] mov r3, #25 -.L3447: - strb r3, [r5, #-116] - b .L3378 -.L3388: +.L3455: + strb r3, [r5, #-100] + b .L3386 +.L3396: cmp r3, #81 - streqb r2, [r0, #1136] - ldreq r3, .L3451+60 - streq r3, [r5, #-108] + streqb r2, [r0, #1199] + ldreq r3, .L3459+60 + streq r3, [r5, #-92] moveq r3, #7 - streqb r3, [r5, #-116] -.L3378: + streqb r3, [r5, #-100] +.L3386: ldr r3, [r6] tst r3, #4096 - beq .L3389 - ldr r0, .L3451+4 + beq .L3397 + ldr r0, .L3459+4 movw r1, #3573 - ldr r2, .L3451+8 + ldr r2, .L3459+8 bl printk -.L3389: +.L3397: mov r3, #0 - strb r3, [r4, #1135] - ldrb r3, [r4, #1232] @ zero_extendqisi2 + strb r3, [r4, #1143] + ldrb r3, [r4, #1196] @ zero_extendqisi2 tst r3, #1 moveq r0, #4 - beq .L3448 - ldr r3, .L3451+16 - ldrb r3, [r3, #1200] @ zero_extendqisi2 + beq .L3456 + ldr r3, .L3459+16 + ldrb r3, [r3, #1164] @ zero_extendqisi2 cmp r3, #155 - beq .L3391 + beq .L3399 mov r0, #4 bl flash_set_interface_mode mov r0, #4 bl nandc_set_if_mode -.L3391: +.L3399: mov r0, #1 bl flash_set_interface_mode mov r0, #1 -.L3448: +.L3456: bl nandc_set_if_mode bl flash_info_blk_init cmn r0, #1 mov r7, r0 - bne .L3393 - ldr r3, [r4, #1176] + bne .L3401 + ldr r3, [r4, #1040] mov r2, #17 mov r0, #0 - strb r0, [r4, #1192] + strb r0, [r4, #1156] strb r2, [r3, #32] bl zftl_flash_exit_slc_mode - b .L3440 -.L3393: + b .L3448 +.L3401: ldrb r3, [r6, #11] @ zero_extendqisi2 cmp r3, #9 - bne .L3394 - ldr r3, [r4, #1176] + bne .L3402 + ldr r3, [r4, #1040] ldrb r3, [r3, #20] @ zero_extendqisi2 cmp r3, #1 - ldrne r3, .L3451+16 + ldrne r3, .L3459+16 movne r2, #0 - strneb r2, [r3, #1102] -.L3394: - ldrb r3, [r4, #1173] @ zero_extendqisi2 - ldr r7, .L3451+16 + strneb r2, [r3, #1110] +.L3402: + ldrb r3, [r4, #1100] @ zero_extendqisi2 + ldr r7, .L3459+16 sub r3, r3, #1 cmp r3, #7 - ldrls r3, .L3451+64 - strls r3, [r5, #-108] - ldrb r3, [r4, #1232] @ zero_extendqisi2 + ldrls r3, .L3459+64 + strls r3, [r5, #-92] + ldrb r3, [r4, #1196] @ zero_extendqisi2 tst r3, #4 - beq .L3397 - ldr r3, [r7, #1176] + beq .L3405 + ldr r3, [r7, #1040] ldrb r3, [r3, #19] @ zero_extendqisi2 cmp r3, #0 - beq .L3397 - ldrb r3, [r5, #536] @ zero_extendqisi2 + beq .L3405 + ldrb r3, [r5, #-20] @ zero_extendqisi2 mov r0, #0 ldrh r1, [r7, #2] mul r1, r1, r3 bl flash_ddr_para_scan - ldrb r3, [r7, #1135] @ zero_extendqisi2 + ldrb r3, [r7, #1143] @ zero_extendqisi2 cmp r3, #0 - bne .L3397 - ldr r2, [r7, #1176] + bne .L3405 + ldr r2, [r7, #1040] strb r3, [r2, #19] bl flash_info_flush -.L3397: +.L3405: ldr r3, [r6] tst r3, #4096 - beq .L3399 - ldr r0, .L3451+4 + beq .L3407 + ldr r0, .L3459+4 movw r1, #3676 - ldr r2, .L3451+8 + ldr r2, .L3459+8 bl printk -.L3399: +.L3407: bl nand_flash_print_info mov r7, #0 - b .L3440 -.L3364: + b .L3448 +.L3372: add r3, r3, #1 cmp r3, #49 - bne .L3400 - b .L3360 -.L3440: + bne .L3408 + b .L3368 +.L3448: mov r0, r7 ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3452: +.L3460: .align 2 -.L3451: +.L3459: .word .LANCHOR2 - .word .LC138 - .word .LANCHOR1+2496 + .word .LC135 + .word .LANCHOR1+2376 .word .LANCHOR3 .word .LANCHOR0 + .word .LANCHOR0+1164 .word .LANCHOR2+4 - .word .LANCHOR0+1180 - .word .LANCHOR0+1200 + .word .LANCHOR0+1144 .word .LANCHOR2+424 .word .LANCHOR2+1992 - .word .LANCHOR0+1103 + .word .LANCHOR0+1111 .word micron_read_retrial .word toshiba_read_retrial .word toshiba_3d_read_retrial @@ -20483,30 +20527,30 @@ ftl_sysblk_dump: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - mov fp, r0 + mov r10, r0 .pad #52 sub sp, sp, #52 mov r0, #1 bl buf_alloc - ldr r10, .L3465 + ldr ip, .L3473 mov r6, #0 mov r5, r6 - ldr ip, [r0, #4] + ldr fp, [r0, #4] mov r4, r0 -.L3454: - ldrh r3, [r10] +.L3462: + ldr r3, .L3473+4 uxth r8, r6 + ldrh r3, [r3] cmp r3, r8 - bls .L3464 - ldr r3, .L3465+4 + bls .L3472 + ldrh r7, [ip] add r6, r6, #1 + ldr r3, .L3473+8 ldr r1, [r4, #4] + mla r7, r7, r10, r8 ldr r2, [r4, #12] - ldrh r7, [r3] - ldr r3, .L3465+8 + ldrb r3, [r3, #-2538] @ zero_extendqisi2 str ip, [sp, #44] - mla r7, r7, fp, r8 - ldrb r3, [r3, #2772] @ zero_extendqisi2 mov r0, r7 bl ftl_read_ppa_page ldr r2, [r4, #4] @@ -20514,13 +20558,13 @@ ftl_sysblk_dump: str r0, [sp] mov r9, r0 ldr r1, [r2] - ldr r0, .L3465+12 + ldr r0, .L3473+12 str r1, [sp, #4] ldr r1, [r2, #4] str r1, [sp, #8] ldr r1, [r2, #8] str r1, [sp, #12] - mov r1, fp + mov r1, r10 ldr r2, [r2, #12] str r2, [sp, #16] ldr r2, [r3] @@ -20538,36 +20582,36 @@ ftl_sysblk_dump: cmpne r9, #512 moveq r5, #1 ldr ip, [sp, #44] - b .L3454 -.L3464: - ldr r0, .L3465+16 - add r1, ip, #704 + b .L3462 +.L3472: + ldr r0, .L3473+16 + add r1, fp, #704 mov r2, #4 mov r3, #32 bl rknand_print_hex mov r0, r4 bl zbuf_free cmp r5, #0 - beq .L3457 - ldr r1, .L3465+20 + beq .L3465 + ldr r1, .L3473+20 movw r2, #1619 - ldr r0, .L3465+24 + ldr r0, .L3473+24 bl printk bl dump_stack -.L3457: +.L3465: mov r0, r5 add sp, sp, #52 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3466: +.L3474: .align 2 -.L3465: - .word .LANCHOR3-3096 +.L3473: .word .LANCHOR3-3066 - .word .LANCHOR0 + .word .LANCHOR3-3096 + .word .LANCHOR3 .word .LC196 .word .LC212 - .word .LANCHOR1+2512 + .word .LANCHOR1+2392 .word .LC0 .fnend .size ftl_sysblk_dump, .-ftl_sysblk_dump @@ -20582,57 +20626,58 @@ ftl_open_sblk_recovery: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #228 sub sp, sp, #228 - ldr r5, .L3606 + ldr r5, .L3614 mov r4, r0 str r1, [sp, #28] ldr r3, [r5] tst r3, #4096 - beq .L3468 - ldr r0, .L3606+4 + beq .L3476 + ldr r0, .L3614+4 ldrh r1, [r4, #2] bl printk -.L3468: +.L3476: ldr r3, [r5] tst r3, #4096 - beq .L3469 - ldr r0, .L3606+8 + beq .L3477 + ldr r0, .L3614+8 ldrb r1, [r4, #5] @ zero_extendqisi2 bl printk -.L3469: +.L3477: ldr r3, [r5] tst r3, #4096 - beq .L3470 - ldr r0, .L3606+12 + beq .L3478 + ldr r0, .L3614+12 ldrh r1, [r4] bl printk -.L3470: +.L3478: ldr r3, [r5] tst r3, #4096 - beq .L3471 - ldr r0, .L3606+16 + beq .L3479 + ldr r0, .L3614+16 ldrh r1, [r4, #16] ldrh r2, [r4, #18] bl printk -.L3471: +.L3479: ldr r3, [r5] tst r3, #4096 - beq .L3472 - ldr r0, .L3606+20 + beq .L3480 + ldr r0, .L3614+20 ldrb r1, [r4, #9] @ zero_extendqisi2 bl printk -.L3472: +.L3480: ldrh r3, [r4, #10] - ldr r6, .L3606+24 + ldr r1, .L3614+24 ldrh r2, [r4] strh r3, [r4, #14] @ movhi - movw r3, #1076 - ldrh r3, [r6, r3] + movw r3, #1080 + ldrh r3, [r1, r3] cmp r2, r3 - bcs .L3467 + bcs .L3475 mov r0, #1 bl buf_alloc - ldrb r3, [r6, #2772] @ zero_extendqisi2 + ldr r3, .L3614+28 mov r1, #255 + ldrb r3, [r3, #-2538] @ zero_extendqisi2 sub r3, r3, #2 ldr r2, [r0, #4] mov r5, r0 @@ -20655,101 +20700,101 @@ ftl_open_sblk_recovery: str r3, [sp, #12] mov r3, #0 str r3, [sp, #24] -.L3474: - ldr r3, .L3606+28 +.L3482: + ldr r3, .L3614+32 ldrh r3, [r3] cmp r3, r7 - bls .L3477 + bls .L3485 ldrb r6, [r4, #5] @ zero_extendqisi2 - ldr r8, .L3606+24 -.L3475: + ldr r8, .L3614+28 +.L3483: ldrb r3, [r4, #9] @ zero_extendqisi2 cmp r3, r6 - bls .L3602 + bls .L3610 add r3, r4, r6, asl #1 ldrh r10, [r3, #16] movw r3, #65535 cmp r10, r3 - beq .L3476 - ldr r3, .L3606+32 + beq .L3484 + ldr r3, .L3614+36 ldr r1, [r5, #4] ldr r2, [r5, #12] ldrh r3, [r3] mla r3, r3, r10, r7 str r3, [sp, #20] mov r0, r3 - ldrb r3, [r8, #2772] @ zero_extendqisi2 + ldrb r3, [r8, #-2538] @ zero_extendqisi2 bl ftl_read_ppa_page cmp r0, #512 mov r9, r0 - beq .L3477 + beq .L3485 cmn r0, #1 - beq .L3478 + beq .L3486 ldr r3, [r5, #12] ldr r2, [r3] cmn r2, #1 - bne .L3478 + bne .L3486 ldr r3, [r3, #4] cmn r3, #1 - bne .L3478 + bne .L3486 ldr r3, [r5, #4] ldr r3, [r3] cmn r3, #1 - beq .L3477 -.L3478: - ldr r3, .L3606+36 - mov r2, #1 - strb r2, [r3, #209] + beq .L3485 +.L3486: + ldr r2, .L3614+28 + mov r3, #1 + strb r3, [r2, #-47] ldrb r3, [r4, #9] @ zero_extendqisi2 ldrh r2, [r4, #10] mla r3, r3, r7, r6 cmp r2, r3 - beq .L3479 - ldr r1, .L3606+40 + beq .L3487 + ldr r1, .L3614+40 movw r2, #1694 - ldr r0, .L3606+44 + ldr r0, .L3614+44 bl printk bl dump_stack -.L3479: +.L3487: ldrh r3, [r4, #6] ldrh r2, [r4, #10] add r2, r3, r2 - ldr r3, .L3606+28 + ldr r3, .L3614+32 ldrh r1, [r3] ldrb r3, [r4, #9] @ zero_extendqisi2 mul r3, r3, r1 cmp r2, r3 - beq .L3480 - ldr r1, .L3606+40 + beq .L3488 + ldr r1, .L3614+40 movw r2, #1695 - ldr r0, .L3606+44 + ldr r0, .L3614+44 bl printk bl dump_stack -.L3480: - ldr r3, .L3606+24 - ldrb r3, [r3, #2772] @ zero_extendqisi2 +.L3488: + ldr r3, .L3614+28 + ldrb r3, [r3, #-2538] @ zero_extendqisi2 cmp r3, #8 - bls .L3481 + bls .L3489 ldr r3, [r5, #12] - ldr r1, .L3606+48 + ldr r1, .L3614+48 ldr r2, [r3] cmp r2, r1 - beq .L3481 + beq .L3489 cmn r9, #1 - beq .L3486 + beq .L3494 ldr r2, [r3, #4] cmn r2, #1 - beq .L3519 + beq .L3527 ldr r2, [r3, #16] - ldr r1, .L3606+52 + ldr r1, .L3614+52 cmp r2, r1 - bne .L3519 + bne .L3527 ldr r0, [sp, #16] mov r1, #1024 ldr fp, [r3, #20] bl js_hash cmp fp, r0 - beq .L3519 + beq .L3527 mov r1, #1024 ldr r0, [sp, #16] bl js_hash @@ -20758,56 +20803,56 @@ ftl_open_sblk_recovery: str r9, [sp] str r0, [sp, #4] ldr r3, [sp, #20] - ldr r0, .L3606+56 + ldr r0, .L3614+56 bl printk - ldr r0, .L3606+60 + ldr r0, .L3614+60 mov r2, #4 mov r3, #16 ldr r1, [sp, #16] bl rknand_print_hex - ldrb r3, [r8, #2772] @ zero_extendqisi2 - ldr r0, .L3606+64 + ldrb r3, [r8, #-2538] @ zero_extendqisi2 + ldr r0, .L3614+64 mov r2, #4 ldr r1, [r5, #12] mov r3, r3, lsr #1 bl rknand_print_hex - b .L3486 -.L3481: + b .L3494 +.L3489: cmn r9, #1 - beq .L3486 -.L3519: + beq .L3494 +.L3527: ldr r3, [r5, #12] ldr r0, [r3, #4] cmn r0, #1 - beq .L3486 + beq .L3494 ldr r3, [r3] - ldr r2, .L3606+48 + ldr r2, .L3614+48 cmp r3, r2 - beq .L3486 + beq .L3494 bl lpa_hash_get_ppa ldr r2, [sp, #28] mov r3, r0 cmp r2, #0 - beq .L3485 + beq .L3493 ldr r2, [r5, #12] ldr r1, [r2, #8] str r2, [sp, #24] cmp r0, r1 cmnne r0, #1 - beq .L3485 - ldr r2, .L3606+24 + beq .L3493 + ldr r10, .L3614+24 mov r9, #1 - ldr fp, .L3606+68 - ldr r10, .L3606+36 - ldrb r1, [r2, #1189] @ zero_extendqisi2 + ldr fp, .L3614+68 + str r3, [sp, #12] + ldrb r1, [r10, #1153] @ zero_extendqisi2 ldrh r0, [fp] rsb r1, r1, #24 - str r3, [sp, #12] rsb r1, r0, r1 mov r1, r9, asl r1 sub r1, r1, #1 and r0, r1, r3, lsr r0 - ldrb r1, [r10, #-3130] @ zero_extendqisi2 + ldr r3, .L3614+28 + ldrb r1, [r3, #-3130] @ zero_extendqisi2 bl __aeabi_uidiv ldr r3, [sp, #28] uxth r0, r0 @@ -20815,26 +20860,27 @@ ftl_open_sblk_recovery: ldrh r1, [r3] ldr r3, [sp, #12] cmp r1, r0 - bne .L3485 + bne .L3493 ldr ip, [r2] mov r0, r3 ldr r1, [r5, #4] - sub r2, r10, #56 - ldrb r3, [r8, #2772] @ zero_extendqisi2 + ldrb r3, [r8, #-2538] @ zero_extendqisi2 + ldr r2, [r8, #-68] str ip, [sp, #12] bl ftl_read_ppa_page - ldr r3, [r10, #-56] + ldr r3, [r8, #-68] + ldr r3, [r3] ldr ip, [sp, #12] cmp r3, ip - bcc .L3485 + bcc .L3493 ldr r3, [r5, #12] ldr r0, [r3, #8] cmn r0, #1 - beq .L3486 - ldrb r3, [r8, #1189] @ zero_extendqisi2 + beq .L3494 + ldrb r3, [r10, #1153] @ zero_extendqisi2 ldrh r2, [fp] rsb r3, r3, #24 - ldrb r1, [r10, #-3130] @ zero_extendqisi2 + ldrb r1, [r8, #-3130] @ zero_extendqisi2 rsb r3, r2, r3 mov r9, r9, asl r3 sub r9, r9, #1 @@ -20842,26 +20888,27 @@ ftl_open_sblk_recovery: bl __aeabi_uidiv uxth r0, r0 bl ftl_vpn_decrement - b .L3486 -.L3485: - ldr r2, [r5, #12] - ldr r3, [r8, #2784] - ldr r1, [r2, #4] - cmp r1, r3 - bcs .L3486 - ldr r3, .L3606+28 - ldrb r0, [r4, #9] @ zero_extendqisi2 - ldrh r1, [r4, #10] + b .L3494 +.L3493: + ldr r1, [r5, #12] + ldr r2, .L3614+24 + ldr r0, [r1, #4] + ldr r3, [r2, #2784] + cmp r0, r3 + bcs .L3494 + ldr r3, .L3614+32 + ldrb ip, [r4, #9] @ zero_extendqisi2 + ldrh r0, [r4, #10] ldrh r3, [r3] - mul r3, r3, r0 + mul r3, r3, ip sub r3, r3, #1 - cmp r1, r3 - bge .L3486 - ldr r3, [r8, #2804] - ldr r2, [r2] - ldr r1, [r3, #8] - cmp r2, r1 - strhi r2, [r3, #8] + cmp r0, r3 + bge .L3494 + ldr r3, [r2, #2804] + ldr r1, [r1] + ldr r2, [r3, #8] + cmp r1, r2 + strhi r1, [r3, #8] ldrh r3, [r4, #12] ldrh r2, [r4, #10] ldr r1, [r5, #12] @@ -20877,7 +20924,7 @@ ftl_open_sblk_recovery: str r3, [sp, #40] ldr r3, [sp, #20] str r3, [sp, #44] -.L3486: +.L3494: ldrh r3, [r4, #6] sub r3, r3, #1 strh r3, [r4, #6] @ movhi @@ -20888,43 +20935,43 @@ ftl_open_sblk_recovery: str r3, [sp, #12] mov r3, #1 str r3, [sp, #24] -.L3476: +.L3484: add r6, r6, #1 uxth r6, r6 - b .L3475 -.L3602: + b .L3483 +.L3610: add r7, r7, #1 mov r3, #0 strb r3, [r4, #5] uxth r7, r7 - b .L3474 -.L3477: + b .L3482 +.L3485: ldrh r3, [r4, #6] strb r6, [r4, #5] ldrh r6, [r4, #10] ldrb fp, [r4, #9] @ zero_extendqisi2 add r6, r3, r6 - ldr r3, .L3606+72 + ldr r3, .L3614+72 strh r7, [r4, #2] @ movhi ldrh ip, [r3, #-8] str r3, [sp, #16] mul fp, ip, fp cmp r6, fp - beq .L3490 - ldr r1, .L3606+40 + beq .L3498 + ldr r1, .L3614+40 movw r2, #1802 - ldr r0, .L3606+44 + ldr r0, .L3614+44 bl printk bl dump_stack -.L3490: - ldr r9, .L3606+36 +.L3498: + ldr r9, .L3614+28 mov r8, #0 ldrh r6, [r4, #10] mov r7, r8 ldr r10, [r9, #-2548] -.L3491: +.L3499: cmp r7, r6 - bcs .L3603 + bcs .L3611 ldrh r3, [r4, #12] add r3, r7, r3 add r7, r7, #1 @@ -20932,59 +20979,59 @@ ftl_open_sblk_recovery: cmn r3, #1 addne r8, r8, #1 uxthne r8, r8 - b .L3491 -.L3603: + b .L3499 +.L3611: ldr r2, [sp, #16] ldrb r3, [r4, #9] @ zero_extendqisi2 ldrh r10, [r2, #-8] smulbb r3, r3, r10 - ldr r10, .L3606+24 + ldr r10, .L3614+24 rsb r6, r6, r3 add r6, r8, r6 - ldr r8, .L3606 + ldr r8, .L3614 uxth r6, r6 ldr r3, [r8] tst r3, #4096 - beq .L3494 + beq .L3502 ldrh r1, [r4] mov r2, r6 - ldr ip, [r10, #1088] - ldr r0, .L3606+76 + ldr ip, [r10, #1092] + ldr r0, .L3614+76 mov r3, r1, asl #1 ldrh r3, [ip, r3] bl printk -.L3494: +.L3502: ldrh r3, [r4] - ldr r2, [r10, #1088] + ldr r2, [r10, #1092] mov r3, r3, asl #1 strh r6, [r2, r3] @ movhi ldr r3, [r8] tst r3, #16384 - beq .L3495 + beq .L3503 ldr r3, [sp, #44] add r1, sp, #32 - ldr r0, .L3606+80 + ldr r0, .L3614+80 str r3, [sp] ldmia r1, {r1, r2, r3} bl printk -.L3495: - ldrb r2, [r10, #2772] @ zero_extendqisi2 +.L3503: + ldrb r2, [r9, #-2538] @ zero_extendqisi2 mov r1, #0 ldr r0, [r5, #4] mov r7, #0 mov r2, r2, asl #9 bl ftl_memset -.L3496: +.L3504: ldrb r3, [r9, #-3123] @ zero_extendqisi2 ldr r2, [sp, #12] mul r3, r3, r2 cmp r7, r3 - bcs .L3604 + bcs .L3612 add ip, sp, #32 ldr r0, [ip, r7, asl #2] cmn r0, #1 - bne .L3497 -.L3501: + bne .L3505 +.L3509: ldr r2, [r10, #2804] mvn r6, #0 ldr r3, [r5, #12] @@ -21005,12 +21052,12 @@ ftl_open_sblk_recovery: ldr r1, [r5, #12] add r1, r1, #16 bl ftl_debug_info_fill - b .L3498 -.L3497: - ldr r3, .L3606+24 + b .L3506 +.L3505: + ldr r3, .L3614+28 ldr r1, [r5, #4] ldr r2, [r5, #12] - ldrb r3, [r3, #2772] @ zero_extendqisi2 + ldrb r3, [r3, #-2538] @ zero_extendqisi2 str ip, [sp, #20] bl ftl_read_ppa_page ldr r3, [r5, #12] @@ -21021,14 +21068,14 @@ ftl_open_sblk_recovery: tst r3, #16384 mov fp, r0 ldr ip, [sp, #20] - beq .L3499 + beq .L3507 ldr r3, [r5, #12] mov r1, fp - ldr r0, .L3606+84 + ldr r0, .L3614+84 ldr r2, [ip, r7, asl #2] ldr r3, [r3, #4] bl printk -.L3499: +.L3507: add r3, sp, #32 mov r2, #1 mov r0, #2 @@ -21046,31 +21093,31 @@ ftl_open_sblk_recovery: add r1, r1, #16 bl ftl_debug_info_fill cmn r6, #1 - beq .L3501 -.L3498: + beq .L3509 +.L3506: ldr r3, [sp, #24] cmp r3, #1 - bne .L3503 + bne .L3511 ldrh r3, [r4, #6] cmp r3, #1 - bls .L3503 -.L3573: + bls .L3511 +.L3581: mov r0, r4 bl ftl_get_new_free_page ldr r3, [r8] tst r3, #16384 mov fp, r0 - beq .L3505 + beq .L3513 ldrh r1, [r4, #12] ldr r2, [r5, #12] ldrh r3, [r4, #10] - ldr r0, .L3606+88 + ldr r0, .L3614+88 add r3, r3, r1 ldr r2, [r2, #4] mov r1, fp sub r3, r3, #1 bl printk -.L3505: +.L3513: ldrb r3, [r9, #-3123] @ zero_extendqisi2 ldr r1, [sp, #12] ldrh r2, [r4, #6] @@ -21078,12 +21125,12 @@ ftl_open_sblk_recovery: add r3, r3, #1 rsb r3, r7, r3 cmp r2, r3 - bls .L3503 - ldr r3, .L3606+24 + bls .L3511 + ldr r3, .L3614+28 mov r0, fp ldr r2, [r5, #12] ldr r1, [r5, #4] - ldrb r3, [r3, #2772] @ zero_extendqisi2 + ldrb r3, [r3, #-2538] @ zero_extendqisi2 bl ftl_prog_ppa_page str r0, [sp, #20] ldrh r0, [r4] @@ -21093,7 +21140,7 @@ ftl_open_sblk_recovery: ldr r2, [sp, #20] cmn r2, #1 cmnne r6, #1 - beq .L3506 + beq .L3514 add r3, sp, #96 ldrh r2, [r4, #12] str fp, [r3, r7, asl #2] @@ -21102,80 +21149,80 @@ ftl_open_sblk_recovery: add r2, sp, #160 sub r3, r3, #1 str r3, [r2, r7, asl #2] - b .L3503 -.L3506: + b .L3511 +.L3514: ldrh r2, [r4, #6] cmp r2, #1 movls r3, #0 andhi r3, r3, #1 cmp r3, #0 - bne .L3573 -.L3503: + bne .L3581 +.L3511: add r7, r7, #1 - b .L3496 -.L3604: - ldr r10, .L3606+24 + b .L3504 +.L3612: + ldr r10, .L3614+28 + add r7, sp, #32 mov r6, #0 -.L3509: +.L3517: ldrb r3, [r9, #-3123] @ zero_extendqisi2 ldr r2, [sp, #12] mul r3, r3, r2 cmp r6, r3 - bcs .L3605 + bcs .L3613 add fp, sp, #96 ldr r3, [fp, r6, asl #2] cmn r3, #1 - beq .L3511 - add r7, sp, #32 + beq .L3519 + ldr r0, [r7, r6, asl #2] ldr r1, [r5, #4] ldr r2, [r5, #12] - ldr r0, [r7, r6, asl #2] - ldrb r3, [r10, #2772] @ zero_extendqisi2 + ldrb r3, [r10, #-2538] @ zero_extendqisi2 bl ftl_read_ppa_page cmn r0, #1 cmpne r0, #256 - bne .L3511 + bne .L3519 ldr r0, [fp, r6, asl #2] - ldrb r3, [r10, #2772] @ zero_extendqisi2 + ldrb r3, [r10, #-2538] @ zero_extendqisi2 ldr r1, [r5, #4] ldr r2, [r5, #12] bl ftl_read_ppa_page ldr r3, [r8] tst r3, #16384 mov fp, r0 - beq .L3513 + beq .L3521 ldr r3, [r5, #12] mov r1, fp - ldr r0, .L3606+88 + ldr r0, .L3614+88 ldr r2, [r3, #8] ldr r3, [r7, r6, asl #2] bl printk -.L3513: +.L3521: cmn fp, #1 - beq .L3511 + beq .L3519 ldr r3, [r5, #12] ldr r2, [r7, r6, asl #2] ldr r1, [r3, #8] cmp r2, r1 - bne .L3511 + bne .L3519 ldr r1, [r8] - add r7, sp, #160 + add fp, sp, #160 tst r1, #16384 - beq .L3514 + beq .L3522 ldr r1, [r3, #4] - ldr r0, .L3606+92 - ldr r3, [r7, r6, asl #2] + ldr r0, .L3614+92 + ldr r3, [fp, r6, asl #2] bl printk -.L3514: +.L3522: ldr r3, [r5, #12] - ldr r2, [r7, r6, asl #2] + ldr r2, [fp, r6, asl #2] ldmib r3, {r0, r1} uxth r2, r2 bl lpa_hash_update_ppa -.L3511: +.L3519: add r6, r6, #1 - b .L3509 -.L3605: + b .L3517 +.L3613: mov r0, r5 bl zbuf_free ldrh r3, [r4, #12] @@ -21183,30 +21230,30 @@ ftl_open_sblk_recovery: ldr r2, [sp, #16] ldrh r2, [r2, #-8] mla r3, r1, r2, r3 - ldr r2, .L3606+36 + ldr r2, .L3614+28 ldr r2, [r2, #-2548] sub r3, r3, #-1073741823 ldr r3, [r2, r3, asl #2] cmn r3, #1 - beq .L3516 - ldr r1, .L3606+40 + beq .L3524 + ldr r1, .L3614+40 movw r2, #1917 - ldr r0, .L3606+44 + ldr r0, .L3614+44 bl printk bl dump_stack -.L3516: +.L3524: ldrh r3, [r4, #6] cmp r3, #1 - bne .L3467 + bne .L3475 mov r0, r4 bl ftl_write_last_log_page -.L3467: +.L3475: add sp, sp, #228 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3607: +.L3615: .align 2 -.L3606: +.L3614: .word .LANCHOR2 .word .LC213 .word .LC214 @@ -21214,10 +21261,10 @@ ftl_open_sblk_recovery: .word .LC216 .word .LC217 .word .LANCHOR0 + .word .LANCHOR3 .word .LANCHOR3-3096 .word .LANCHOR3-3066 - .word .LANCHOR3 - .word .LANCHOR1+2528 + .word .LANCHOR1+2408 .word .LC0 .word -178307901 .word 1212240712 @@ -21243,24 +21290,24 @@ dump_ftl_info: stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, lr} .save {r4, r5, r6, r7, lr} .pad #12 - movw r7, #1076 - ldr r4, .L3610 - ldr r5, .L3610+4 - ldr r0, .L3610+8 - ldrb r1, [r4, #2774] @ zero_extendqisi2 + movw r7, #1080 + ldr r4, .L3618 + ldr r5, .L3618+4 + ldr r0, .L3618+8 + ldrb r1, [r4, #2773] @ zero_extendqisi2 sub r6, r5, #3088 bl printk - ldrb r1, [r5, #200] @ zero_extendqisi2 - ldrb r2, [r5, #201] @ zero_extendqisi2 - ldrh r3, [r5, #202] - ldr r0, .L3610+12 + ldrb r1, [r5, #-56] @ zero_extendqisi2 + ldrb r2, [r5, #-55] @ zero_extendqisi2 + ldrh r3, [r5, #-54] + ldr r0, .L3618+12 bl printk ldr r3, [r4, #2804] - ldr r0, .L3610+16 + ldr r0, .L3618+16 ldrh r1, [r3, #130] ldrh r2, [r3, #140] bl printk - ldr r0, [r4, #1092] + ldr r0, [r4, #1096] ldrh ip, [r0, #22] ldrh r1, [r0, #16] ldrh r2, [r0, #18] @@ -21268,9 +21315,9 @@ dump_ftl_info: str ip, [sp] ldrh r0, [r0, #26] str r0, [sp, #4] - ldr r0, .L3610+20 + ldr r0, .L3618+20 bl printk - ldr r0, [r4, #1092] + ldr r0, [r4, #1096] ldrh ip, [r0, #54] ldrh r1, [r0, #48] ldrh r2, [r0, #50] @@ -21278,9 +21325,9 @@ dump_ftl_info: str ip, [sp] ldrh r0, [r0, #58] str r0, [sp, #4] - ldr r0, .L3610+24 + ldr r0, .L3618+24 bl printk - ldr r0, [r4, #1092] + ldr r0, [r4, #1096] ldrh ip, [r0, #86] ldrh r1, [r0, #80] ldrh r2, [r0, #82] @@ -21288,42 +21335,42 @@ dump_ftl_info: str ip, [sp] ldrh r0, [r0, #90] str r0, [sp, #4] - ldr r0, .L3610+28 + ldr r0, .L3618+28 bl printk ldrh r2, [r6, #-8] ldrb r3, [r5, #-3123] @ zero_extendqisi2 ldr r1, [r5, #-2548] - ldr r0, .L3610+32 + ldr r0, .L3618+32 mul r3, r3, r2 mov r2, #4 mov r3, r3, asl #1 bl rknand_print_hex - ldr r1, [r4, #1088] + ldr r1, [r4, #1092] ldrh r3, [r4, r7] mov r2, #2 - ldr r0, .L3610+36 + ldr r0, .L3618+36 bl rknand_print_hex ldr r3, [r4, #2804] movw ip, #698 - ldr r0, .L3610+40 + ldr r0, .L3618+40 add r1, r3, #704 mov r2, #4 ldrh r3, [r3, ip] bl rknand_print_hex - ldr r1, [r4, #1080] + ldr r1, [r4, #1084] ldrh r3, [r4, r7] mov r2, #4 - ldr r0, .L3610+44 + ldr r0, .L3618+44 bl rknand_print_hex sub r1, r5, #3056 - ldr r0, .L3610+48 + ldr r0, .L3618+48 sub r1, r1, #4 mov r2, #2 mov r3, #256 bl rknand_print_hex ldrh r2, [r6, #-8] ldrb r3, [r5, #-3123] @ zero_extendqisi2 - ldr r0, .L3610+52 + ldr r0, .L3618+52 ldr r1, [r5, #-2544] mul r3, r3, r2 mov r2, #2 @@ -21332,9 +21379,9 @@ dump_ftl_info: @ sp needed ldmfd sp!, {r4, r5, r6, r7, lr} b rknand_print_hex -.L3611: +.L3619: .align 2 -.L3610: +.L3618: .word .LANCHOR0 .word .LANCHOR3 .word .LC225 @@ -21361,21 +21408,21 @@ pm_ppa_update_check: stmfd sp!, {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} mov r4, r2 - ldr r3, .L3616 + ldr r3, .L3624 mov r6, r0 - ldr r7, .L3616+4 + ldr r7, .L3624+4 mov r5, r1 sub r2, r3, #3120 mvn r1, #0 ldrh r0, [r2, #-12] - ldrb r2, [r7, #1189] @ zero_extendqisi2 + ldrb r2, [r7, #1153] @ zero_extendqisi2 rsb r2, r2, #24 rsb r2, r0, r2 mov r0, r4, lsr r0 bic r0, r0, r1, asl r2 ldrb r1, [r3, #-3130] @ zero_extendqisi2 bl __aeabi_uidiv - ldr r3, [r7, #1080] + ldr r3, [r7, #1084] uxth r0, r0 add r0, r3, r0, asl #2 ldrb r0, [r0, #2] @ zero_extendqisi2 @@ -21388,14 +21435,14 @@ pm_ppa_update_check: mov r1, r6 mov r2, r5 mov r3, r4 - ldr r0, .L3616+8 + ldr r0, .L3624+8 bl printk bl dump_ftl_info mvn r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L3617: +.L3625: .align 2 -.L3616: +.L3624: .word .LANCHOR3 .word .LANCHOR0 .word .LC236 @@ -21411,150 +21458,148 @@ load_l2p_region: stmfd sp!, {r0, r1, r4, r5, r6, r7, r8, r9, r10, lr} .save {r4, r5, r6, r7, r8, r9, r10, lr} .pad #8 - mov r6, r0 - mov r5, r1 - bls .L3619 - ldr r1, .L3633 + mov r7, r0 + mov r6, r1 + bls .L3627 + ldr r1, .L3641 mov r2, #32 - ldr r0, .L3633+4 + ldr r0, .L3641+4 bl printk bl dump_stack -.L3619: - ldr r9, .L3633+8 +.L3627: + ldr r8, .L3641+8 movw r10, #698 - ldr r7, .L3633+12 - ldr r3, [r9, #2804] - mov r8, r9 + ldr r5, .L3641+12 + ldr r3, [r8, #2804] + mov r9, r8 ldrh r2, [r3, r10] - cmp r6, r2 - bls .L3620 - mov r1, r6 - ldr r0, .L3633+16 - bl printk + cmp r7, r2 + bls .L3628 + mov r1, r7 + ldr r0, .L3641+16 mov r4, #0 - movw r3, #542 + bl printk ldr r0, [r4, #4] - ldrh r2, [r7, r3] mov r1, #255 + ldrh r2, [r5, #-14] bl ftl_memset - ldr r3, [r9, #2804] + ldr r3, [r8, #2804] ldrh r3, [r3, r10] - cmp r3, r6 - bcs .L3631 - ldr r0, .L3633+4 + cmp r3, r7 + bcs .L3639 + ldr r0, .L3641+4 mov r2, #37 - ldr r1, .L3633 - b .L3632 -.L3620: - add r2, r6, #176 - mov r5, r5, asl #3 - add r9, r7, r5 + ldr r1, .L3641 + b .L3640 +.L3628: + add r2, r7, #176 + mov r6, r6, asl #3 + add r8, r5, r6 ldr r4, [r3, r2, asl #2] - sub r3, r7, #2528 - add r2, r3, r5 - strh r6, [r3, r5] @ movhi + ldr r3, .L3641+20 + add r2, r3, r6 + strh r7, [r3, r6] @ movhi mov r3, #0 cmp r4, r3 strh r3, [r2, #2] @ movhi - bne .L3623 - mov r1, r6 + bne .L3631 + mov r1, r7 mov r2, r4 - ldr r0, .L3633+20 + ldr r0, .L3641+24 bl printk - movw r3, #542 - ldr r0, [r9, #-2524] + ldr r0, [r8, #-2520] mov r1, #255 - ldrh r2, [r7, r3] + ldrh r2, [r5, #-14] bl ftl_memset - b .L3631 -.L3623: - ldr r2, [r7, #524] + b .L3639 +.L3631: + ldr r2, [r5, #-32] mov r0, r4 - ldrb r3, [r8, #2772] @ zero_extendqisi2 - ldr r1, [r9, #-2524] + ldrb r3, [r5, #-2538] @ zero_extendqisi2 + ldr r1, [r8, #-2520] bl ftl_read_ppa_page - ldr r2, [r7, #524] + ldr r2, [r5, #-32] ldr r2, [r2] - cmp r2, r6 + cmp r2, r7 mov r3, r0 - bne .L3624 + bne .L3632 cmn r0, #1 cmpne r0, #512 - beq .L3624 -.L3628: - ldr r3, [r7, #524] + beq .L3632 +.L3636: + ldr r3, [r5, #-32] ldr r3, [r3] - cmp r3, r6 - beq .L3631 - ldr r0, .L3633+4 + cmp r3, r7 + beq .L3639 + ldr r0, .L3641+4 mov r2, #73 - ldr r1, .L3633 - b .L3632 -.L3624: - mov r1, r6 + ldr r1, .L3641 + b .L3640 +.L3632: + mov r1, r7 str r4, [sp] - ldr r0, .L3633+24 - add r5, r7, r5 + ldr r0, .L3641+28 + add r6, r5, r6 bl printk - ldr r3, [r8, #2804] + ldr r3, [r9, #2804] movw ip, #698 - ldr r0, .L3633+28 + ldr r0, .L3641+32 add r1, r3, #704 mov r2, #4 ldrh r3, [r3, ip] bl rknand_print_hex - ldrb r3, [r8, #2772] @ zero_extendqisi2 - ldr r0, .L3633+32 + ldrb r3, [r5, #-2538] @ zero_extendqisi2 + ldr r0, .L3641+36 mov r2, #4 - ldr r1, [r5, #-2524] + ldr r1, [r6, #-2520] mov r3, r3, asl #7 - ldr r9, .L3633+12 + ldr r8, .L3641+12 bl rknand_print_hex - ldr r0, .L3633+36 - ldr r1, [r7, #524] + ldr r0, .L3641+40 + ldr r1, [r5, #-32] mov r2, #4 mov r3, #16 bl rknand_print_hex mov r0, r4 - ldr r1, [r5, #-2524] - ldr r2, [r7, #524] - ldrb r3, [r8, #2772] @ zero_extendqisi2 + ldr r1, [r6, #-2520] + ldr r2, [r5, #-32] + ldrb r3, [r5, #-2538] @ zero_extendqisi2 bl ftl_read_ppa_page cmn r0, #1 cmpne r0, #512 - bne .L3627 - movw r3, #542 - ldr r0, [r5, #-2524] + bne .L3635 + ldr r0, [r6, #-2520] mov r1, #255 - ldrh r2, [r9, r3] + ldrh r2, [r8, #-14] bl ftl_memset - b .L3629 -.L3627: - ldr r3, [r9, #524] + b .L3637 +.L3635: + ldr r3, [r8, #-32] ldr r3, [r3] - cmp r3, r6 - beq .L3628 - b .L3629 -.L3632: + cmp r3, r7 + beq .L3636 + b .L3637 +.L3640: bl printk bl dump_stack -.L3631: +.L3639: mov r0, #0 - b .L3622 -.L3629: + b .L3630 +.L3637: mvn r0, #0 -.L3622: +.L3630: add sp, sp, #8 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L3634: +.L3642: .align 2 -.L3633: - .word .LANCHOR1+2552 +.L3641: + .word .LANCHOR1+2432 .word .LC0 .word .LANCHOR0 .word .LANCHOR3 .word .LC237 + .word .LANCHOR3-2524 .word .LC238 .word .LC239 .word .LC240 @@ -21572,44 +21617,44 @@ pm_gc: stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 - ldr r5, .L3654 + ldr r5, .L3662 ldr r4, [r5, #2804] add r4, r4, #688 ldrh r2, [r4] - ldr r4, .L3654+4 - ldrh r3, [r4, #-152] + ldr r4, .L3662+4 + ldrh r3, [r4, #-168] sub r3, r3, #1 cmp r2, r3 - bge .L3636 - ldr r3, [r4, #-160] + bge .L3644 + ldr r3, [r4, #-176] cmp r3, #0 - beq .L3637 -.L3636: + beq .L3645 +.L3644: bl pm_free_sblk ldr r2, [r5, #2804] add r3, r2, #688 ldrh r1, [r3] - ldrh r3, [r4, #-152] + ldrh r3, [r4, #-168] sub r3, r3, #1 cmp r1, r3 - bge .L3638 - ldr r3, .L3654+4 - ldr r3, [r3, #-160] + bge .L3646 + ldr r3, .L3662+4 + ldr r3, [r3, #-176] cmp r3, #0 - beq .L3637 -.L3638: + beq .L3645 +.L3646: uxth r0, r0 movw r6, #65535 add r0, r0, #208 mov r3, #0 - str r3, [r4, #-160] + str r3, [r4, #-176] mov r0, r0, asl #1 ldrh r7, [r2, r0] cmp r7, r6 - bne .L3640 - ldr r1, .L3654+8 + bne .L3648 + ldr r1, .L3662+8 mov r2, #182 - ldr r0, .L3654+12 + ldr r0, .L3662+12 bl printk bl dump_stack bl pm_free_sblk @@ -21619,50 +21664,50 @@ pm_gc: mov r0, r0, asl #1 ldrh r7, [r3, r0] cmp r7, r6 - beq .L3637 -.L3640: + beq .L3645 +.L3648: bl pm_select_ram_region - ldr r8, .L3654+4 + ldr r3, .L3662+16 movw r2, #65535 - sub r3, r8, #2528 mov r6, r0, asl #3 mov r10, r0 - add r9, r3, r6 + add r8, r3, r6 str r3, [sp] ldrh r0, [r3, r6] cmp r0, r2 - beq .L3641 - add r8, r8, r6 - ldr r1, [r8, #-2524] + beq .L3649 + ldr r3, .L3662+4 + add r3, r3, r6 + ldr r1, [r3, #-2520] cmp r1, #0 - beq .L3641 - ldrsh r3, [r9, #2] + beq .L3649 + ldrsh r3, [r8, #2] cmp r3, #0 - bge .L3641 + bge .L3649 bl pm_write_page - ldrh r3, [r9, #2] + ldrh r3, [r8, #2] ubfx r3, r3, #0, #15 - strh r3, [r9, #2] @ movhi -.L3641: - ldr fp, .L3654 + strh r3, [r8, #2] @ movhi +.L3649: + ldr fp, .L3662 mov r8, #0 - ldr r9, .L3654+4 + ldr r9, .L3662+4 add r3, r9, r6 str r3, [sp, #4] -.L3642: +.L3650: ldr r0, [r5, #2804] uxth r9, r8 add r3, r0, #696 add r3, r3, #2 ldrh r3, [r3] cmp r3, r9 - bls .L3653 - ldr r3, .L3654+16 + bls .L3661 + ldr r3, .L3662+20 ldrh r1, [r3] add r3, r9, #176 ldr ip, [r0, r3, asl #2] mvn r0, #0 - ldrb r3, [fp, #1189] @ zero_extendqisi2 + ldrb r3, [fp, #1153] @ zero_extendqisi2 rsb r3, r3, #24 rsb r3, r1, r3 mvn r0, r0, asl r3 @@ -21671,37 +21716,38 @@ pm_gc: bl __aeabi_uidiv uxth r0, r0 cmp r0, r7 - bne .L3643 + bne .L3651 mov r0, r9 mov r1, r10 bl load_l2p_region cmp r0, #0 - bne .L3644 + bne .L3652 ldr r3, [sp, #4] mov r0, r9 - ldr r1, [r3, #-2524] + ldr r1, [r3, #-2520] bl pm_write_page -.L3644: +.L3652: ldr r2, [sp] mvn r3, #0 strh r3, [r2, r6] @ movhi -.L3643: +.L3651: add r8, r8, #1 - b .L3642 -.L3653: + b .L3650 +.L3661: bl pm_free_sblk -.L3637: +.L3645: mov r0, #0 add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3655: +.L3663: .align 2 -.L3654: +.L3662: .word .LANCHOR0 .word .LANCHOR3 - .word .LANCHOR1+2568 + .word .LANCHOR1+2448 .word .LC0 + .word .LANCHOR3-2524 .word .LANCHOR3-3132 .fnend .size pm_gc, .-pm_gc @@ -21715,29 +21761,30 @@ pm_flush_id: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r0, r0, asl #3 - ldr r4, .L3662 - sub r3, r4, #2528 + ldr r4, .L3670 + ldr r3, .L3670+4 add r2, r4, r0 add r5, r3, r0 - ldr r1, [r2, #-2524] + ldr r1, [r2, #-2520] ldrh r0, [r3, r0] bl pm_write_page ldrh r3, [r5, #2] ubfx r3, r3, #0, #15 strh r3, [r5, #2] @ movhi - ldr r3, [r4, #520] + ldr r3, [r4, #-36] cmp r3, #0 - beq .L3657 + beq .L3665 bl pm_gc mov r3, #0 - str r3, [r4, #520] -.L3657: + str r3, [r4, #-36] +.L3665: mov r0, #0 ldmfd sp!, {r3, r4, r5, pc} -.L3663: +.L3671: .align 2 -.L3662: +.L3670: .word .LANCHOR3 + .word .LANCHOR3-2524 .fnend .size pm_flush_id, .-pm_flush_id .align 2 @@ -21750,24 +21797,24 @@ pm_flush: stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r4, #0 - ldr r5, .L3669 -.L3666: + ldr r5, .L3677 +.L3674: add r3, r5, r4, asl #3 uxth r0, r4 ldrsh r3, [r3, #2] cmp r3, #0 - bge .L3665 + bge .L3673 bl pm_flush_id -.L3665: +.L3673: add r4, r4, #1 cmp r4, #32 - bne .L3666 + bne .L3674 mov r0, #0 ldmfd sp!, {r3, r4, r5, pc} -.L3670: +.L3678: .align 2 -.L3669: - .word .LANCHOR3-2528 +.L3677: + .word .LANCHOR3-2524 .fnend .size pm_flush, .-pm_flush .align 2 @@ -21812,38 +21859,38 @@ pm_init: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r7, r0 - ldr r4, .L3699 + ldr r4, .L3707 .pad #20 sub sp, sp, #20 mov r0, #64 mov r5, #0 mov r3, #1 - ldr r10, .L3699+4 - str r5, [r4, #-160] - sub r8, r4, #2528 - str r5, [r4, #520] - mvn r9, #0 - strb r3, [r4, #528] - bl ftl_malloc - str r0, [r4, #524] -.L3677: + ldr r9, .L3707+4 + str r5, [r4, #-176] + mov r8, r4 + str r5, [r4, #-36] + mvn r10, #0 + strb r3, [r4, #-28] + bl ftl_dma32_malloc + str r0, [r4, #-32] +.L3685: mov r3, #0 cmp r7, r3 - mov r6, r8 - strh r9, [r6, r5]! @ movhi + mov r6, r9 + strh r10, [r6, r5]! @ movhi strh r3, [r6, #2] @ movhi - beq .L3676 - ldrb r0, [r10, #2772] @ zero_extendqisi2 + beq .L3684 + ldrb r0, [r8, #-2538] @ zero_extendqisi2 mov r0, r0, asl #9 - bl ftl_malloc + bl ftl_dma32_malloc str r0, [r6, #4] -.L3676: +.L3684: add r5, r5, #8 cmp r5, #256 - bne .L3677 - ldr r5, .L3699+4 - ldr r10, [r4, #-2524] - ldr r6, [r4, #524] + bne .L3685 + ldr r5, .L3707+8 + ldr r10, [r4, #-2520] + ldr r6, [r4, #-32] ldr r3, [r5, #2804] mov r2, r10 add r3, r3, #692 @@ -21858,9 +21905,9 @@ pm_init: ldrh r2, [r2] cmp r2, r0 mov r7, r0 - bgt .L3678 + bgt .L3686 add r3, r3, #692 - ldr r0, .L3699+8 + ldr r0, .L3707+12 mov fp, r5 ldrh r1, [r3] mov r3, r7 @@ -21869,19 +21916,19 @@ pm_init: add r7, r7, #1 add r3, r3, #696 ldrh r9, [r3] -.L3679: +.L3687: sxth r3, r9 cmp r3, r7 - bge .L3698 + bge .L3706 ldr r2, [r5, #2804] - ldr r0, .L3699+12 + ldr r0, .L3707+16 add r1, r2, #692 ldrh r8, [r0] ldrh r1, [r1] ldrb r0, [r2, #694] @ zero_extendqisi2 mov r2, r10 mla r8, r8, r1, r3 - ldrb r3, [r5, #2772] @ zero_extendqisi2 + ldrb r3, [r4, #-2538] @ zero_extendqisi2 str r3, [sp] mov r3, r6 mov r1, r8 @@ -21896,83 +21943,84 @@ pm_init: mov r2, r8 ldrh r3, [r3] str r0, [sp, #12] - ldr r0, .L3699+16 + ldr r0, .L3707+20 bl printk ldr ip, [sp, #12] cmp ip, #512 cmnne ip, #1 - beq .L3680 + beq .L3688 ldr r3, [fp, #2804] ldr r2, [r6] add r3, r3, #696 add r3, r3, #2 ldrh r3, [r3] cmp r2, r3 - bcs .L3680 + bcs .L3688 ldr r3, [r6, #8] cmp r3, #0 - beq .L3681 - ldrb r1, [fp, #2772] @ zero_extendqisi2 + beq .L3689 + ldr r2, .L3707 mov r0, r10 str r3, [sp, #12] + ldrb r1, [r2, #-2538] @ zero_extendqisi2 mov r1, r1, asl #9 bl js_hash ldr r3, [sp, #12] cmp r3, r0 - beq .L3681 + beq .L3689 ldr r1, [r6, #8] - ldr r0, .L3699+20 + ldr r0, .L3707+24 bl printk - b .L3680 -.L3681: + b .L3688 +.L3689: ldr r3, [r6] ldr r2, [r5, #2804] add r3, r3, #176 str r8, [r2, r3, asl #2] -.L3680: +.L3688: add r9, r9, #1 uxth r9, r9 - b .L3679 -.L3698: + b .L3687 +.L3706: mov r3, #1 - strb r3, [r4, #209] + strb r3, [r4, #-47] ldr r3, [r5, #2804] add r3, r3, #696 strh r7, [r3] @ movhi bl pm_free_sblk -.L3678: - movw r3, #542 +.L3686: mov r1, #255 - ldrh r2, [r4, r3] - ldr r0, [r4, #-2524] + ldrh r2, [r4, #-14] + ldr r0, [r4, #-2520] bl ftl_memset mvn r0, #0 - ldr r1, [r4, #-2524] + ldr r1, [r4, #-2520] bl pm_write_page - ldrb r3, [r4, #209] @ zero_extendqisi2 - ldr r5, .L3699 + ldrb r3, [r4, #-47] @ zero_extendqisi2 + ldr r5, .L3707 cmp r3, #0 - beq .L3683 - ldr r1, [r5, #-2524] + beq .L3691 + ldr r1, [r5, #-2520] mvn r0, #0 bl pm_write_page - ldr r1, [r5, #-2524] + ldr r1, [r5, #-2520] mvn r0, #0 bl pm_write_page mvn r0, #0 - ldr r1, [r5, #-2524] + ldr r1, [r5, #-2520] bl pm_write_page -.L3683: +.L3691: bl pm_free_sblk bl pm_gc mov r0, #0 add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3700: +.L3708: .align 2 -.L3699: +.L3707: .word .LANCHOR3 + .word .LANCHOR3-2524 .word .LANCHOR0 .word .LC242 .word .LANCHOR3-3066 @@ -21985,98 +22033,100 @@ pm_init: .type pm_log2phys, %function pm_log2phys: .fnstart - @ args = 0, pretend = 0, frame = 0 + @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} - .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} + stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr} + .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} + .pad #12 mov r6, r1 - ldr r9, .L3720 + ldr r9, .L3728 mov r10, r0 mov r8, r2 - ldrb r4, [r9, #2772] @ zero_extendqisi2 + ldrb r4, [r9, #-2538] @ zero_extendqisi2 mov r1, r4, asl #7 mov r5, r4, asl #7 bl __aeabi_uidiv - ldr r2, [r9, #2784] + ldr r1, .L3728+4 + ldr r2, [r1, #2784] cmp r10, r2 - movcc r3, #0 - ldrcc r2, .L3720+4 + movcc r2, #0 uxth fp, r0 + str r1, [sp, #4] mov r7, r0 + ldrcc r1, .L3728+8 smulbb r5, r5, fp rsb r5, r5, r10 uxth r5, r5 - bcc .L3702 + bcc .L3710 + ldr r0, .L3728+12 mov r1, r10 - ldr r0, .L3720+8 bl printk - mvn r0, #0 cmp r8, #0 + mvn r0, #0 streq r0, [r6] - ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3718: - ldrh r1, [r1, r2] - cmp r1, fp - beq .L3705 -.L3704: - add r3, r3, #1 - cmp r3, #32 - beq .L3717 -.L3702: - mov r1, r3, asl #3 - uxth r4, r3 - add r0, r2, r1 - ldr r10, .L3720+4 - ldr r0, [r0, #4] - cmp r0, #0 - bne .L3718 - b .L3704 -.L3717: + b .L3711 +.L3726: + ldrh r0, [r0, r1] + cmp r0, fp + beq .L3713 +.L3712: + add r2, r2, #1 + cmp r2, #32 + beq .L3725 +.L3710: + mov r0, r2, asl #3 + uxth r4, r2 + add ip, r1, r0 + ldr r10, .L3728+8 + ldr ip, [ip, #4] + cmp ip, #0 + bne .L3726 + b .L3712 +.L3725: bl pm_select_ram_region - mov r3, r0, asl #3 + mov r2, r0, asl #3 mov r4, r0 - add r2, r10, r3 - ldrh r1, [r10, r3] - movw r3, #65535 - cmp r1, r3 - bne .L3719 -.L3708: - ldr r3, .L3720+12 + add r1, r10, r2 + ldrh ip, [r10, r2] + movw r2, #65535 + cmp ip, r2 + bne .L3727 +.L3716: mov r0, fp mov r1, r4 - strb r4, [r3, #544] + strb r4, [r9, #-12] bl load_l2p_region -.L3705: +.L3713: cmp r8, #0 - ldr r1, .L3720+12 mov r4, r4, asl #3 - bne .L3706 - add r3, r1, r4 - mvn r2, #0 - ldr r3, [r3, #-2524] - ldr r3, [r3, r5, asl #2] - str r3, [r6] - ldrb r0, [r9, #1189] @ zero_extendqisi2 + bne .L3714 + add r2, r9, r4 + ldr r3, [sp, #4] + mvn r1, #0 + ldr r2, [r2, #-2520] + ldr r2, [r2, r5, asl #2] + str r2, [r6] + ldrb r0, [r3, #1153] @ zero_extendqisi2 + ldrb r3, [r9, #-3064] @ zero_extendqisi2 rsb ip, r0, #24 - mvn r2, r2, asl r0 - and r3, r2, r3, lsr ip - ldrb r2, [r1, #-3064] @ zero_extendqisi2 - cmp r3, r2 + mvn r1, r1, asl r0 + and r2, r1, r2, lsr ip + cmp r2, r3 mvncs r3, #0 strcs r3, [r6] - b .L3707 -.L3706: - add r3, r1, r4 - ldr r2, [r6] - ldr r3, [r3, #-2524] - str r2, [r3, r5, asl #2] - add r2, r10, r4 - strb r7, [r1, #-2272] - ldrh r3, [r2, #2] - mvn r3, r3, asl #17 - mvn r3, r3, lsr #17 - strh r3, [r2, #2] @ movhi -.L3707: + b .L3715 +.L3714: + add r2, r9, r4 + ldr r1, [r6] + ldr r2, [r2, #-2520] + str r1, [r2, r5, asl #2] + add r1, r10, r4 + strb r7, [r9, #-2268] + ldrh r2, [r1, #2] + mvn r2, r2, asl #17 + mvn r2, r2, lsr #17 + strh r2, [r1, #2] @ movhi +.L3715: add r4, r10, r4 movw r2, #32767 mov r0, #0 @@ -22085,20 +22135,24 @@ pm_log2phys: cmp r1, r2 addne r3, r3, #1 strneh r3, [r4, #2] @ movhi - ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3719: - ldrsh r3, [r2, #2] - cmp r3, #0 - bge .L3708 + b .L3711 +.L3727: + ldrsh r2, [r1, #2] + cmp r2, #0 + bge .L3716 bl pm_flush_id - b .L3708 -.L3721: + b .L3716 +.L3711: + add sp, sp, #12 + @ sp needed + ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} +.L3729: .align 2 -.L3720: - .word .LANCHOR0 - .word .LANCHOR3-2528 - .word .LC245 +.L3728: .word .LANCHOR3 + .word .LANCHOR0 + .word .LANCHOR3-2524 + .word .LC245 .fnend .size pm_log2phys, .-pm_log2phys .align 2 @@ -22111,17 +22165,17 @@ gc_recovery: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} movw r3, #65535 - ldr r7, .L3822 + ldr r7, .L3830 mov r6, #0 - ldr r8, .L3822+4 + ldr r8, .L3830+4 .pad #68 sub sp, sp, #68 - ldr r5, [r7, #1092] + ldr r5, [r7, #1096] strb r6, [r8, #-3115] - strb r6, [r8, #-182] + strb r6, [r8, #-136] ldrh r4, [r5, #80] cmp r4, r3 - beq .L3723 + beq .L3731 mvn r3, #0 mov r0, #1 strh r3, [r5, #130] @ movhi @@ -22136,49 +22190,49 @@ gc_recovery: cmp r3, #2 mov r4, r0 str r1, [sp, #56] - beq .L3724 - ldrb r2, [r7, #1196] @ zero_extendqisi2 + beq .L3732 + ldrb r2, [r7, #1160] @ zero_extendqisi2 cmp r2, r6 - bne .L3724 - ldrb r2, [r7, #1197] @ zero_extendqisi2 + bne .L3732 + ldrb r2, [r7, #1161] @ zero_extendqisi2 cmp r2, r6 - beq .L3725 -.L3724: - ldr r2, .L3822+8 + beq .L3733 +.L3732: + ldr r2, .L3830+8 ldrh r2, [r2, #-10] sub r2, r2, #1 add r2, r2, r1 orr r3, r2, r3, asl #24 - b .L3814 -.L3725: + b .L3822 +.L3733: cmp r3, #3 - bne .L3726 + bne .L3734 sub r3, r8, #3088 ldrh r3, [r3, #-8] sub r3, r3, #1 add r3, r3, r1 orr r3, r3, #50331648 -.L3814: +.L3822: str r3, [r4, #24] -.L3726: +.L3734: mov r0, r4 mov r1, #1 bl sblk_read_page ldr r3, [r4, #36] cmn r3, #1 cmpne r3, #512 - beq .L3727 + beq .L3735 ldr r3, [r4, #12] - ldr r6, .L3822+12 + ldr r6, .L3830+12 ldr r3, [r3] cmp r3, r6 - beq .L3728 -.L3727: + beq .L3736 +.L3735: mov r0, r4 bl zbuf_free ldr r3, [r4, #4] ldr r2, [r4, #12] - ldr r0, .L3822+16 + ldr r0, .L3830+16 ldr r1, [r3, #4] str r1, [sp] ldr r1, [r3, #8] @@ -22197,22 +22251,21 @@ gc_recovery: ldr r2, [r4, #36] ldr r3, [r3] bl printk - b .L3818 -.L3728: - ldrb r3, [r8, #545] @ zero_extendqisi2 - ldr r10, .L3822+4 + b .L3826 +.L3736: + ldrb r3, [r8, #-11] @ zero_extendqisi2 + ldr r10, .L3830+4 cmp r3, #2 sub r9, r10, #3104 - bne .L3730 + bne .L3738 ldrb r3, [r10, #-3124] @ zero_extendqisi2 cmp r3, #3 - bne .L3730 + bne .L3738 ldrh r2, [r9, #-10] - movw r3, #542 ldrb ip, [r10, #-3123] @ zero_extendqisi2 - ldrh r3, [r10, r3] + ldrh r3, [r10, #-14] mov r2, r2, asl #2 - ldr r1, [r10, #-172] + ldr r1, [r10, #-124] smulbb r2, ip, r2 mov r0, r3, lsr #2 add r0, r1, r0, asl #2 @@ -22220,25 +22273,25 @@ gc_recovery: rsb r2, r3, r2 uxth r2, r2 bl ftl_memcpy - ldrb r3, [r7, #1196] @ zero_extendqisi2 + ldrb r3, [r7, #1160] @ zero_extendqisi2 cmp r3, #0 - bne .L3731 - ldr r3, .L3822 - ldrb r3, [r3, #1197] @ zero_extendqisi2 + bne .L3739 + ldr r3, .L3830 + ldrb r3, [r3, #1161] @ zero_extendqisi2 cmp r3, #0 - beq .L3732 -.L3731: + beq .L3740 +.L3739: ldr r3, [r4, #24] sub r3, r3, #1 - b .L3733 -.L3732: + b .L3741 +.L3740: sub r10, r10, #3088 ldr r3, [sp, #56] ldrh r2, [r10, #-8] sub r3, r3, #1 add r3, r3, r2 orr r3, r3, #33554432 -.L3733: +.L3741: str r3, [r4, #24] mov r0, r4 mov r1, #1 @@ -22246,148 +22299,146 @@ gc_recovery: ldr r3, [r4, #36] cmn r3, #1 cmpne r3, #512 - beq .L3734 + beq .L3742 ldr r3, [r4, #12] ldr r3, [r3] cmp r3, r6 - beq .L3735 -.L3734: + beq .L3743 +.L3742: mov r0, r4 bl zbuf_free -.L3818: +.L3826: ldrh r4, [r5, #80] mov r6, #0 - ldr r3, [r7, #1088] + ldr r3, [r7, #1092] mov r4, r4, asl #1 strh r6, [r3, r4] @ movhi ldrh r2, [r5, #80] - ldr r3, [r7, #1092] + ldr r3, [r7, #1096] strh r2, [r3, #130] @ movhi - b .L3729 -.L3735: - movw r3, #542 - ldr r0, [r8, #-172] + b .L3737 +.L3743: + ldr r0, [r8, #-124] ldr r1, [r4, #4] - ldrh r2, [r8, r3] - b .L3815 -.L3730: + ldrh r2, [r8, #-14] + b .L3823 +.L3738: ldrh r2, [r9, #-10] ldrb r3, [r8, #-3123] @ zero_extendqisi2 - ldr r0, [r8, #-172] + ldr r0, [r8, #-124] ldr r1, [r4, #4] mul r2, r3, r2 mov r2, r2, asl #2 -.L3815: +.L3823: bl ftl_memcpy ldrb r3, [r8, #-3123] @ zero_extendqisi2 ldrh r2, [r9, #-10] - ldr r10, .L3822+4 + ldr r10, .L3830+4 mul r2, r3, r2 - ldrb r3, [r7, #2772] @ zero_extendqisi2 + ldrb r3, [r8, #-2538] @ zero_extendqisi2 sub r6, r10, #3104 cmp r3, r2, asr #6 mov r2, r2, asl #2 - bge .L3737 - ldr r0, [r10, #-168] + bge .L3745 + ldr r0, [r10, #-120] mov r1, #0 bl ftl_memset - ldrb r9, [r10, #545] @ zero_extendqisi2 + ldrb r9, [r10, #-11] @ zero_extendqisi2 cmp r9, #1 movne r9, #1 movne r6, #0 - bne .L3738 + bne .L3746 ldrh r1, [r6, #-10] - movw r2, #542 ldrb r3, [r10, #-3123] @ zero_extendqisi2 - ldrh r6, [r10, r2] - ldr r0, [r10, #-168] + ldrh r6, [r10, #-14] + ldr r0, [r10, #-120] mul r3, r3, r1 ldr r1, [r4, #4] sub r6, r6, r3, asl #2 add r1, r1, r3, asl #2 mov r2, r6 bl ftl_memcpy - b .L3738 -.L3737: + b .L3746 +.L3745: ldr r1, [r4, #4] mov r9, #0 - ldr r0, [r10, #-168] + ldr r0, [r10, #-120] mov r6, r9 add r1, r1, r2 bl ftl_memcpy -.L3738: - ldr r3, .L3822+4 +.L3746: + ldr r3, .L3830+4 sub r2, r3, #3088 ldrh r2, [r2, #-8] str r2, [sp, #36] ldrb r2, [r8, #-3124] @ zero_extendqisi2 cmp r2, #2 str r2, [sp, #32] - bne .L3739 + bne .L3747 ldrb r3, [r3, #-3122] @ zero_extendqisi2 cmp r3, #0 - beq .L3740 -.L3739: - ldrb r3, [r7, #1196] @ zero_extendqisi2 + beq .L3748 +.L3747: + ldrb r3, [r7, #1160] @ zero_extendqisi2 cmp r3, #0 - beq .L3741 -.L3740: + beq .L3749 +.L3748: ldr r3, [sp, #32] ldr r2, [sp, #36] mul r3, r3, r2 str r3, [sp, #36] mov r3, #1 str r3, [sp, #32] -.L3741: - ldr r10, .L3822+4 +.L3749: + ldr r10, .L3830+4 mov r7, #0 str r7, [sp, #40] -.L3742: +.L3750: ldr r3, [sp, #36] cmp r7, r3 - bcs .L3755 + bcs .L3763 add ip, r5, #96 add r3, r7, r7, asl #1 sub r3, r3, #1 str r3, [sp, #48] mov r3, #0 str r3, [sp, #44] -.L3756: +.L3764: ldrb r3, [r5, #89] @ zero_extendqisi2 ldr r2, [sp, #44] cmp r2, r3 - bge .L3752 + bge .L3760 ldr r3, [sp, #40] mov fp, #1 mov r8, r3, asl #2 -.L3753: +.L3761: ldr r3, [sp, #32] cmp fp, r3 - bhi .L3820 - ldr r3, .L3822+20 + bhi .L3828 + ldr r3, .L3830+20 ldrh r2, [ip] ldrb r1, [r10, #-3124] @ zero_extendqisi2 ldrh r3, [r3] cmp r1, #2 mul r3, r3, r2 str r3, [sp, #56] - beq .L3743 - ldr r2, .L3822 - ldrb r2, [r2, #1196] @ zero_extendqisi2 + beq .L3751 + ldr r2, .L3830 + ldrb r2, [r2, #1160] @ zero_extendqisi2 cmp r2, #0 - beq .L3744 -.L3743: + beq .L3752 +.L3751: sub r2, r7, #1 add r3, r2, r3 add r3, r3, fp orr r3, r3, r1, asl #24 - b .L3816 -.L3744: + b .L3824 +.L3752: cmp r1, #3 addne r3, r3, r7 - bne .L3816 - ldr r2, .L3822 - ldrb r2, [r2, #1197] @ zero_extendqisi2 + bne .L3824 + ldr r2, .L3830 + ldrb r2, [r2, #1161] @ zero_extendqisi2 cmp r2, #0 addeq r3, r3, r7 ldrne r2, [sp, #48] @@ -22395,7 +22446,7 @@ gc_recovery: addne r3, r3, r2 addne r3, r3, fp orrne r3, r3, #50331648 -.L3816: +.L3824: str r3, [r4, #24] mov r0, r4 mov r1, #1 @@ -22403,96 +22454,96 @@ gc_recovery: bl sblk_read_page cmp r9, #0 ldr ip, [sp, #52] - beq .L3748 - ldr r3, [r10, #-168] + beq .L3756 + ldr r3, [r10, #-120] ldr r2, [r3, r8] cmp r2, #0 ldreq r2, [r4, #12] ldreq r2, [r2, #8] streq r2, [r3, r8] -.L3748: - ldr r3, [r10, #-172] +.L3756: + ldr r3, [r10, #-124] ldr r2, [r4, #12] ldr r3, [r3, r8] ldr r1, [r2, #4] cmp r3, r1 - bne .L3749 - ldr r0, [r10, #-168] + bne .L3757 + ldr r0, [r10, #-120] ldr lr, [r0, r8] ldr r0, [r2, #8] cmp lr, r0 - beq .L3779 -.L3749: - ldr r0, [r10, #-168] + beq .L3787 +.L3757: + ldr r0, [r10, #-120] str ip, [sp, #52] ldr r0, [r0, r8] str r0, [sp] ldr r0, [r2] stmib sp, {r0, r1} ldr r1, [r2, #8] - ldr r0, .L3822+24 + ldr r0, .L3830+24 str r1, [sp, #12] ldr r2, [r2, #12] str r2, [sp, #16] ldr r1, [r4, #24] ldr r2, [r4, #36] bl printk - ldr r3, [r10, #-172] + ldr r3, [r10, #-124] ldr r3, [r3, r8] cmn r3, #1 ldr ip, [sp, #52] - beq .L3779 + beq .L3787 mov r0, r4 bl zbuf_free - ldr r2, .L3822 + ldr r2, .L3830 ldrh r3, [r5, #80] mov r0, #0 - ldr r1, [r2, #1088] + ldr r1, [r2, #1092] mov r3, r3, asl #1 strh r0, [r1, r3] @ movhi ldrh r1, [r5, #80] - ldr r3, [r2, #1092] + ldr r3, [r2, #1096] strh r1, [r3, #130] @ movhi - b .L3729 -.L3779: + b .L3737 +.L3787: ldr r3, [sp, #40] add fp, fp, #1 add r8, r8, #4 add r3, r3, #1 str r3, [sp, #40] - b .L3753 -.L3820: + b .L3761 +.L3828: ldr r3, [sp, #44] add ip, ip, #2 add r3, r3, #1 str r3, [sp, #44] - b .L3756 -.L3752: + b .L3764 +.L3760: ldrb r3, [r10, #-3122] @ zero_extendqisi2 cmp r3, #0 addne r7, r7, #1 add r7, r7, #1 - b .L3742 -.L3755: + b .L3750 +.L3763: mov r0, r4 mov r6, #0 bl zbuf_free - ldr ip, .L3822+8 + ldr ip, .L3830+8 ldrb r8, [r5, #89] @ zero_extendqisi2 mov r7, r6 - ldr r3, .L3822 + ldr r3, .L3830 add r10, ip, #3104 ldrh r9, [ip, #-10] ldrh r4, [r5, #80] - ldr r3, [r3, #1088] + ldr r3, [r3, #1092] smulbb r8, r8, r9 mov r4, r4, asl #1 mov r9, r6 strh r8, [r3, r4] @ movhi -.L3757: +.L3765: ldr r3, [sp, #36] cmp r9, r3 - bcs .L3771 + bcs .L3779 add r2, r9, r9, asl #1 sub r3, r2, #1 str r3, [sp, #48] @@ -22500,56 +22551,56 @@ gc_recovery: str r3, [sp, #44] mov r3, #0 str r3, [sp, #40] -.L3772: +.L3780: ldrb r2, [r5, #89] @ zero_extendqisi2 ldr r3, [sp, #40] cmp r3, r2 - bge .L3768 + bge .L3776 mov r4, #1 -.L3769: +.L3777: ldr r3, [sp, #32] cmp r4, r3 - bhi .L3821 - ldr r2, [r10, #-172] + bhi .L3829 + ldr r2, [r10, #-124] ldr r8, [r2, r7, asl #2] cmn r8, #1 - beq .L3758 - ldr r2, [r10, #-168] + beq .L3766 + ldr r2, [r10, #-120] mov r0, r8 ldr fp, [r2, r7, asl #2] bl lpa_hash_get_ppa cmn r0, #1 str r0, [sp, #60] - bne .L3759 + bne .L3767 mov r0, r8 add r1, sp, #60 mov r2, #0 bl pm_log2phys -.L3759: +.L3767: ldr r3, [sp, #44] ldrh r2, [r3] - ldr r3, .L3822+20 + ldr r3, .L3830+20 ldrh r1, [r3] - ldr r3, .L3822+4 + ldr r3, .L3830+4 mul r2, r1, r2 ldrb r1, [r3, #-3124] @ zero_extendqisi2 cmp r1, #2 - beq .L3760 - ldr r0, .L3822 - ldrb lr, [r0, #1196] @ zero_extendqisi2 + beq .L3768 + ldr r0, .L3830 + ldrb lr, [r0, #1160] @ zero_extendqisi2 cmp lr, #0 - beq .L3761 -.L3760: + beq .L3769 +.L3768: sub r0, r9, #1 add r2, r0, r2 add r2, r2, r4 orr r2, r2, r1, asl #24 - b .L3817 -.L3761: + b .L3825 +.L3769: cmp r1, #3 addne r2, r2, r9 - bne .L3817 - ldrb r1, [r0, #1197] @ zero_extendqisi2 + bne .L3825 + ldrb r1, [r0, #1161] @ zero_extendqisi2 cmp r1, #0 mov r1, r4, asl #24 addeq r2, r2, r9 @@ -22557,12 +22608,12 @@ gc_recovery: addne r2, r2, r3 addne r2, r2, r4 orr r2, r1, r2 -.L3817: +.L3825: str r2, [sp, #56] - ldr r2, .L3822+28 + ldr r2, .L3830+28 ldrh r0, [r2] - ldr r2, .L3822 - ldrb r1, [r2, #1189] @ zero_extendqisi2 + ldr r2, .L3830 + ldrb r1, [r2, #1153] @ zero_extendqisi2 mov r2, #1 str r2, [sp, #52] rsb r1, r1, #24 @@ -22576,112 +22627,112 @@ gc_recovery: ldr r2, [sp, #52] cmp r1, fp uxth fp, r0 - bne .L3765 + bne .L3773 mov r0, r8 add r1, sp, #56 bl pm_log2phys mov r0, fp add r6, r6, #1 bl ftl_vpn_decrement - b .L3766 -.L3765: + b .L3774 +.L3773: ldr r2, [sp, #56] cmp r1, r2 addeq r6, r6, #1 -.L3766: - ldr r1, .L3822 +.L3774: + ldr r1, .L3830 add r7, r7, #1 - ldr r2, [r1, #1080] + ldr r2, [r1, #1084] add r2, r2, fp, asl #2 ldrb r2, [r2, #2] @ zero_extendqisi2 ands r2, r2, #224 - bne .L3758 - ldr r8, [r1, #1088] + bne .L3766 + ldr r8, [r1, #1092] mov fp, fp, asl #1 ldrh r1, [r8, fp] cmp r1, #0 strneh r2, [r8, fp] @ movhi -.L3758: +.L3766: add r4, r4, #1 - b .L3769 -.L3821: + b .L3777 +.L3829: ldr r3, [sp, #40] add r3, r3, #1 str r3, [sp, #40] ldr r3, [sp, #44] add r3, r3, #2 str r3, [sp, #44] - b .L3772 -.L3768: + b .L3780 +.L3776: ldrb r2, [r10, #-3122] @ zero_extendqisi2 cmp r2, #0 addne r9, r9, #1 add r9, r9, #1 - b .L3757 -.L3771: - ldr r2, .L3822 + b .L3765 +.L3779: + ldr r2, .L3830 ldrh r3, [r5, #80] - ldr r2, [r2, #1088] + ldr r2, [r2, #1092] mov r3, r3, asl #1 strh r6, [r2, r3] @ movhi ldrh r0, [r5, #80] bl zftl_insert_data_list -.L3729: - ldr r4, .L3822 +.L3737: + ldr r4, .L3830 ldrh r0, [r5, #80] - ldr r2, [r4, #1088] + ldr r2, [r4, #1092] mov r3, r0, asl #1 ldrh r3, [r2, r3] cmp r3, #0 - bne .L3773 + bne .L3781 bl ftl_dump_write_open_sblk -.L3773: +.L3781: mov r2, r6 ldrh r1, [r5, #80] - ldr r0, .L3822+32 + ldr r0, .L3830+32 bl printk mvn r3, #0 strh r3, [r5, #80] @ movhi bl pm_flush bl ftl_ext_info_flush - ldr r3, [r4, #1092] + ldr r3, [r4, #1096] movw r2, #65535 ldrh r3, [r3, #130] cmp r3, r2 - beq .L3774 - ldr r1, .L3822 - movw r2, #1076 + beq .L3782 + ldr r1, .L3830 + movw r2, #1080 ldrh r2, [r1, r2] cmp r2, r3 - bhi .L3775 - ldr r1, .L3822+36 + bhi .L3783 + ldr r1, .L3830+36 movw r2, #517 - ldr r0, .L3822+40 + ldr r0, .L3830+40 bl printk bl dump_stack -.L3775: - ldr r3, [r4, #1092] +.L3783: + ldr r3, [r4, #1096] ldrh r0, [r3, #130] bl ftl_free_sblk -.L3774: +.L3782: ldr r2, [r4, #2804] mvn r3, #0 mov r0, #0 strh r3, [r2, #126] @ movhi - ldr r2, [r4, #1092] + ldr r2, [r4, #1096] strh r3, [r2, #130] @ movhi bl ftl_info_flush - b .L3722 -.L3723: + b .L3730 +.L3731: ldrh r3, [r5, #130] cmp r3, r4 - beq .L3722 + beq .L3730 ldr r2, [r7, #2804] ldrh r2, [r2, #126] cmp r2, r3 - bne .L3777 + bne .L3785 bl pm_flush - ldr r3, [r7, #1092] + ldr r3, [r7, #1096] ldrh r0, [r3, #130] bl ftl_free_sblk ldr r3, [r7, #2804] @@ -22689,17 +22740,17 @@ gc_recovery: mov r0, r6 strh r2, [r3, #126] @ movhi bl ftl_info_flush -.L3777: - ldr r3, [r7, #1092] +.L3785: + ldr r3, [r7, #1096] mvn r2, #0 strh r2, [r3, #130] @ movhi -.L3722: +.L3730: add sp, sp, #68 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3823: +.L3831: .align 2 -.L3822: +.L3830: .word .LANCHOR0 .word .LANCHOR3 .word .LANCHOR3-3104 @@ -22709,7 +22760,7 @@ gc_recovery: .word .LC247 .word .LANCHOR3-3132 .word .LC248 - .word .LANCHOR1+2576 + .word .LANCHOR1+2456 .word .LC0 .fnend .size gc_recovery, .-gc_recovery @@ -22724,41 +22775,41 @@ gc_update_l2p_map_new: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #28 sub sp, sp, #28 - ldr r4, .L3860 - ldr r3, .L3860+4 - ldr r9, .L3860+8 - ldr r5, [r4, #1092] + ldr r5, .L3868 + ldr r3, .L3868+4 + ldr r9, .L3868+8 + ldr r6, [r5, #1096] ldrh r3, [r3, #-10] - ldrb r2, [r5, #89] @ zero_extendqisi2 + ldrb r2, [r6, #89] @ zero_extendqisi2 mul r3, r2, r3 str r3, [sp] ldr r3, [r9] tst r3, #256 - beq .L3825 - ldr r0, .L3860+12 - ldrh r1, [r5, #80] + beq .L3833 + ldr r0, .L3868+12 + ldrh r1, [r6, #80] bl printk -.L3825: - ldrh r3, [r5, #80] +.L3833: + ldrh r3, [r6, #80] mov r8, #0 - ldr r6, .L3860+16 + ldr r4, .L3868+16 mov r7, r8 - ldr r1, [r4, #1088] + ldr r1, [r5, #1092] mov r3, r3, asl #1 ldr r0, [sp] - ldrb r2, [r6, #545] @ zero_extendqisi2 + ldrb r2, [r4, #-11] @ zero_extendqisi2 rsb r2, r2, r0 strh r2, [r1, r3] @ movhi -.L3826: +.L3834: ldr r3, [sp] cmp r7, r3 - beq .L3859 - ldr r3, [r6, #-172] + beq .L3867 + ldr r3, [r4, #-124] mov r10, r7, asl #2 ldr fp, [r3, r7, asl #2] cmn fp, #1 - beq .L3827 - ldrb r1, [r4, #2772] @ zero_extendqisi2 + beq .L3835 + ldrb r1, [r4, #-2538] @ zero_extendqisi2 mov r0, fp mov r1, r1, asl #7 bl __aeabi_uidiv @@ -22766,131 +22817,131 @@ gc_update_l2p_map_new: str r3, [sp, #12] ldr r3, [r9] tst r3, #256 - beq .L3828 - ldr r0, .L3860+20 + beq .L3836 + ldr r0, .L3868+20 mov r2, fp ldr r1, [sp, #12] mov r3, r7 bl printk -.L3828: +.L3836: str r7, [sp, #8] -.L3834: - ldr r3, [r6, #-172] +.L3842: + ldr r3, [r4, #-124] ldr fp, [r3, r10] cmn fp, #1 - beq .L3829 - ldrb r1, [r4, #2772] @ zero_extendqisi2 + beq .L3837 + ldrb r1, [r4, #-2538] @ zero_extendqisi2 mov r0, fp mov r1, r1, asl #7 bl __aeabi_uidiv ldr r3, [sp, #12] uxth r0, r0 cmp r0, r3 - bne .L3829 - ldr r3, [r6, #-168] + bne .L3837 + ldr r3, [r4, #-120] mov r0, fp ldr r3, [r3, r10] str r3, [sp, #4] bl lpa_hash_get_ppa cmn r0, #1 str r0, [sp, #20] - bne .L3830 + bne .L3838 mov r0, fp add r1, sp, #20 mov r2, #0 bl pm_log2phys -.L3830: +.L3838: ldr r3, [sp, #20] ldr r2, [sp, #4] cmp r3, r2 - bne .L3831 - ldr r3, .L3860+16 + bne .L3839 + ldr r3, .L3868+16 add r1, sp, #24 mov r0, fp mov r2, #1 add r8, r8, #1 - ldr r3, [r3, #-164] + ldr r3, [r3, #-116] ldr r3, [r3, r10] str r3, [r1, #-8]! bl pm_log2phys - ldr r3, .L3860+24 + ldr r3, .L3868+24 ldrh r0, [r3] - ldrb r3, [r4, #1189] @ zero_extendqisi2 + ldrb r3, [r5, #1153] @ zero_extendqisi2 rsb r3, r3, #24 rsb r3, r0, r3 ldr r2, [sp, #4] mov fp, r2, lsr r0 mvn r0, #0 bic r0, fp, r0, asl r3 - ldr r3, .L3860+16 + ldr r3, .L3868+16 ldrb r1, [r3, #-3130] @ zero_extendqisi2 bl __aeabi_uidiv uxth r0, r0 - b .L3858 -.L3831: + b .L3866 +.L3839: ldr r2, [r9] tst r2, #256 - beq .L3833 - ldr r0, .L3860+28 + beq .L3841 + ldr r0, .L3868+28 mov r1, fp ldr r2, [sp, #4] bl printk -.L3833: - ldrh r0, [r5, #80] -.L3858: +.L3841: + ldrh r0, [r6, #80] +.L3866: bl ftl_vpn_decrement - ldr r3, [r6, #-172] + ldr r3, [r4, #-124] mvn r2, #0 str r2, [r3, r10] -.L3829: +.L3837: ldr r3, [sp, #8] add r10, r10, #4 ldr r2, [sp] add r3, r3, #1 str r3, [sp, #8] cmp r3, r2 - bne .L3834 -.L3827: + bne .L3842 +.L3835: add r7, r7, #1 - b .L3826 -.L3859: + b .L3834 +.L3867: ldr r3, [r9] tst r3, #256 - beq .L3836 - ldrh r3, [r5, #80] - ldr r1, [r4, #1092] - ldr r2, [r4, #1088] + beq .L3844 + ldrh r3, [r6, #80] + ldr r1, [r5, #1096] + ldr r2, [r5, #1092] mov r3, r3, asl #1 - ldr r0, .L3860+32 + ldr r0, .L3868+32 ldrh r1, [r1, #80] ldrh r2, [r2, r3] mov r3, r8 bl printk -.L3836: - ldrh r3, [r5, #80] - ldr r2, [r4, #1088] +.L3844: + ldrh r3, [r6, #80] + ldr r2, [r5, #1092] mov r3, r3, asl #1 ldrh r3, [r2, r3] cmp r3, r8 - beq .L3837 - ldr r1, .L3860+36 + beq .L3845 + ldr r1, .L3868+36 movw r2, #898 - ldr r0, .L3860+40 + ldr r0, .L3868+40 bl printk bl dump_stack -.L3837: - ldrh r3, [r5, #80] - ldr r2, [r4, #1088] +.L3845: + ldrh r3, [r6, #80] + ldr r2, [r5, #1092] mov r3, r3, asl #1 strh r8, [r2, r3] @ movhi - ldrh r0, [r5, #80] + ldrh r0, [r6, #80] bl zftl_insert_data_list add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3861: +.L3869: .align 2 -.L3860: +.L3868: .word .LANCHOR0 .word .LANCHOR3-3104 .word .LANCHOR2 @@ -22900,7 +22951,7 @@ gc_update_l2p_map_new: .word .LANCHOR3-3132 .word .LC251 .word .LC252 - .word .LANCHOR1+2588 + .word .LANCHOR1+2468 .word .LC0 .fnend .size gc_update_l2p_map_new, .-gc_update_l2p_map_new @@ -22914,21 +22965,21 @@ gc_scan_src_blk_one_page: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r1, #0 - ldr r6, .L3891 + ldr r6, .L3899 .pad #20 sub sp, sp, #20 - ldr r4, .L3891+4 + ldr r4, .L3899+4 mov lr, r1 - ldr r5, .L3891+8 + ldr r5, .L3899+8 movw r0, #65535 ldrb r3, [r6, #2832] @ zero_extendqisi2 ldrb ip, [r5, #-3123] @ zero_extendqisi2 add r2, r4, r3, asl #1 ldrh r7, [r2, #36] ldrh r2, [r4, #2] -.L3863: +.L3871: cmp r7, r0 - bne .L3889 + bne .L3897 add r3, r3, #1 uxtb r3, r3 cmp r3, ip @@ -22939,70 +22990,70 @@ gc_scan_src_blk_one_page: uxtheq r2, r2 ldrh r7, [r1, #36] mov r1, #1 - b .L3863 -.L3889: + b .L3871 +.L3897: mov r0, #1 cmp lr, #0 strneh r2, [r4, #2] @ movhi cmp r1, #0 strneb r3, [r6, #2832] bl buf_alloc - ldr r8, .L3891 + ldr r8, .L3899 mov r9, #1 - ldr r10, .L3891+12 + ldr r10, .L3899+12 mov fp, r0 -.L3868: +.L3876: ldrb r3, [r6, #2834] @ zero_extendqisi2 - ldr r2, .L3891 + ldr r2, .L3899 cmp r9, r3 - bgt .L3890 + bgt .L3898 ldrh r2, [r10] cmp r3, #2 mul r2, r2, r7 - bne .L3869 + bne .L3877 ldrh r3, [r4, #2] add r3, r2, r3, asl #1 - ldr r2, .L3891+8 + ldr r2, .L3899+8 sub r3, r3, #1 add r3, r3, r9 ldrb r2, [r2, #-3124] @ zero_extendqisi2 - b .L3887 -.L3869: + b .L3895 +.L3877: cmp r3, #3 ldrneh r1, [r4, #2] addne r2, r2, r1 - bne .L3888 - ldrb r3, [r8, #1196] @ zero_extendqisi2 + bne .L3896 + ldrb r3, [r8, #1160] @ zero_extendqisi2 cmp r3, #0 - bne .L3872 - ldrb r3, [r8, #1197] @ zero_extendqisi2 + bne .L3880 + ldrb r3, [r8, #1161] @ zero_extendqisi2 cmp r3, #0 - beq .L3873 -.L3872: + beq .L3881 +.L3880: ldrh r3, [r4, #2] add r3, r3, r3, asl #1 sub r3, r3, #1 add r3, r3, r2 ldrb r2, [r5, #-3124] @ zero_extendqisi2 add r3, r3, r9 -.L3887: +.L3895: orr r3, r3, r2, asl #24 str r3, [fp, #24] - b .L3870 -.L3873: + b .L3878 +.L3881: ldrh r1, [r4, #2] add r2, r2, r1 orr r2, r2, r9, asl #24 -.L3888: +.L3896: str r2, [fp, #24] -.L3870: +.L3878: mov r0, fp mov r1, #1 bl sblk_read_page ldr r3, [fp, #36] cmp r3, #512 cmnne r3, #1 - beq .L3875 + beq .L3883 ldr r3, [fp, #12] ldr r3, [r3, #4] mov r0, r3 @@ -23011,15 +23062,15 @@ gc_scan_src_blk_one_page: cmn r0, #1 str r0, [sp, #12] ldr r3, [sp, #4] - bne .L3876 + bne .L3884 ldr r2, [r6, #2784] cmp r3, r2 - bcs .L3876 + bcs .L3884 mov r0, r3 add r1, sp, #12 mov r2, #0 bl pm_log2phys -.L3876: +.L3884: ldr r3, [fp, #24] ldr r2, [sp, #12] cmp r3, r2 @@ -23029,13 +23080,13 @@ gc_scan_src_blk_one_page: ldreqh r3, [r4, #20] addeq r3, r3, #1 streqh r3, [r4, #20] @ movhi -.L3875: +.L3883: ldrh r3, [r4, #22] add r9, r9, #1 add r3, r3, #1 strh r3, [r4, #22] @ movhi - b .L3868 -.L3890: + b .L3876 +.L3898: mov r0, fp str r2, [sp, #4] bl zbuf_free @@ -23054,9 +23105,9 @@ gc_scan_src_blk_one_page: add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3892: +.L3900: .align 2 -.L3891: +.L3899: .word .LANCHOR0 .word .LANCHOR0+2828 .word .LANCHOR3 @@ -23073,51 +23124,51 @@ gc_scan_src_blk: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} movw r3, #2828 - ldr r4, .L3945 + ldr r4, .L3953 .pad #28 sub sp, sp, #28 ldrh r2, [r4, r3] movw r3, #65535 cmp r2, r3 - bne .L3894 - ldr r1, .L3945+4 + bne .L3902 + ldr r1, .L3953+4 movw r2, #1505 - ldr r0, .L3945+8 + ldr r0, .L3953+8 bl printk bl dump_stack -.L3894: +.L3902: movw r3, #2828 ldrh r1, [r4, r3] movw r3, #65535 cmp r1, r3 moveq r0, #0 - beq .L3895 - ldr r3, .L3945+12 + beq .L3903 + ldr r3, .L3953+12 ldr r3, [r3] tst r3, #256 - beq .L3896 - ldr r3, .L3945 - ldr r0, .L3945+16 - ldr r2, [r3, #1088] + beq .L3904 + ldr r3, .L3953 + ldr r0, .L3953+16 + ldr r2, [r3, #1092] mov r3, r1, asl #1 ldrh r2, [r2, r3] bl printk -.L3896: - ldr r5, .L3945 +.L3904: + ldr r5, .L3953 movw r7, #2828 bl timer_get_time ldrh r0, [r4, r7] add r1, r5, #2864 - ldr r6, .L3945+20 + ldr r6, .L3953+20 bl ftl_get_blk_list_in_sblk uxtb r0, r0 strb r0, [r4, #2833] cmp r0, #0 mvneq r3, #0 streqh r3, [r5, r7] @ movhi - beq .L3895 + beq .L3903 ldrh r3, [r5, r7] - ldr r2, [r5, #1080] + ldr r2, [r5, #1084] add r2, r2, r3, asl #2 ldrb r2, [r2, #2] @ zero_extendqisi2 tst r2, #192 @@ -23127,60 +23178,60 @@ gc_scan_src_blk: cmp r1, #224 orreq r2, r2, #1 cmp r2, #0 - bne .L3898 - ldr r2, [r5, #1092] + bne .L3906 + ldr r2, [r5, #1096] ldrh ip, [r2, #16] cmp ip, r3 - beq .L3898 + beq .L3906 ldrh ip, [r2, #48] cmp ip, r3 - beq .L3898 + beq .L3906 ldrh r2, [r2, #80] cmp r2, r3 - bne .L3899 -.L3898: + bne .L3907 +.L3906: cmp r1, #0 - bne .L3900 - ldr r2, [r4, #1088] + bne .L3908 + ldr r2, [r4, #1092] mov r3, r3, asl #1 ldrh r3, [r2, r3] cmp r3, #0 - beq .L3901 - ldr r1, .L3945+4 + beq .L3909 + ldr r1, .L3953+4 movw r2, #1530 - ldr r0, .L3945+8 + ldr r0, .L3953+8 bl printk bl dump_stack -.L3901: +.L3909: movw r3, #2828 - ldr r2, [r4, #1088] + ldr r2, [r4, #1092] ldrh r3, [r4, r3] mov r1, #0 mov r3, r3, asl #1 strh r1, [r2, r3] @ movhi -.L3900: +.L3908: movw r3, #2828 mvn r2, #0 mov r0, #0 strh r2, [r4, r3] @ movhi strh r0, [r6, #20] @ movhi - b .L3895 -.L3899: + b .L3903 +.L3907: add r0, r6, r0, asl #1 movw r3, #65535 ldrh r10, [r0, #34] cmp r10, r3 - bne .L3902 - ldr r1, .L3945+4 + bne .L3910 + ldr r1, .L3953+4 movw r2, #1540 - ldr r0, .L3945+8 + ldr r0, .L3953+8 bl printk bl dump_stack -.L3902: +.L3910: movw r3, #2828 - ldr r5, .L3945+24 + ldr r5, .L3953+24 ldrh r2, [r4, r3] - ldr r3, [r4, #1080] + ldr r3, [r4, #1084] sub r9, r5, #3088 sub fp, r5, #3056 str fp, [sp, #4] @@ -23194,28 +23245,28 @@ gc_scan_src_blk: cmp r3, #160 mul r7, r7, r10 movne r3, #1 - bne .L3903 + bne .L3911 ldrb r2, [r5, #-3124] @ zero_extendqisi2 cmp r2, #2 uxth r3, r2 orr r7, r7, r2, asl #24 subeq r2, r5, #3104 ldreqh r8, [r2, #-10] - ldrb r2, [r4, #1196] @ zero_extendqisi2 + ldrb r2, [r4, #1160] @ zero_extendqisi2 subeq r8, r8, #1 uxtheq r8, r8 cmp r2, #0 - bne .L3905 - ldr r2, .L3945 - ldrb r2, [r2, #1197] @ zero_extendqisi2 + bne .L3913 + ldr r2, .L3953 + ldrb r2, [r2, #1161] @ zero_extendqisi2 cmp r2, #0 - beq .L3903 -.L3905: - ldr r2, .L3945+28 + beq .L3911 +.L3913: + ldr r2, .L3953+28 ldrh r8, [r2, #-10] sub r8, r8, #1 uxth r8, r8 -.L3903: +.L3911: mov r0, #1 strb r3, [r4, #2834] str r3, [sp] @@ -23235,39 +23286,38 @@ gc_scan_src_blk: cmn r2, #1 cmpne r2, #512 ldr r3, [sp] - beq .L3942 + beq .L3950 ldr r0, [fp, #12] - ldr r2, .L3945+32 + ldr r2, .L3953+32 ldr r1, [r0] str r2, [sp, #8] cmp r1, r2 - beq .L3907 - ldr r0, .L3945+8 + beq .L3915 + ldr r0, .L3953+8 movw r2, #1578 - ldr r1, .L3945+4 -.L3943: + ldr r1, .L3953+4 +.L3951: bl printk bl dump_stack -.L3942: +.L3950: mov r0, fp bl zbuf_free - b .L3940 -.L3907: + b .L3948 +.L3915: ldrb r8, [r5, #-3123] @ zero_extendqisi2 ldrh r1, [r9, #-8] - ldr r2, .L3945+24 + ldr r2, .L3953+24 smulbb r1, r1, r8 smulbb r1, r1, r3 uxth r1, r1 str r1, [sp] - ldrb r1, [r5, #545] @ zero_extendqisi2 + ldrb r1, [r5, #-11] @ zero_extendqisi2 cmp r3, #3 cmpeq r1, #2 - bne .L3908 - movw r3, #542 - ldr r1, [fp, #4] - ldrh r0, [r2, r3] + bne .L3916 sub r3, r2, #3104 + ldrh r0, [r2, #-14] + ldr r1, [fp, #4] ldrh r3, [r3, #-10] mov r3, r3, asl #2 smulbb r8, r3, r8 @@ -23281,34 +23331,34 @@ gc_scan_src_blk: ldr r3, [fp, #12] ldr r3, [r3, #4] cmp r3, #0 - beq .L3909 + beq .L3917 ldr r0, [fp, #4] mov r1, r8 str r3, [sp, #12] bl js_hash ldr r3, [sp, #12] cmp r3, r0 - beq .L3909 + beq .L3917 mov r0, fp bl zbuf_free ldr r3, [fp, #12] - ldr r0, .L3945+36 + ldr r0, .L3953+36 ldr r2, [fp, #24] ldr r1, [r3, #4] mov r3, r8 - b .L3941 -.L3909: - ldrb r3, [r4, #1196] @ zero_extendqisi2 + b .L3949 +.L3917: + ldrb r3, [r4, #1160] @ zero_extendqisi2 cmp r3, #0 - bne .L3910 - ldr r3, .L3945 - ldrb r3, [r3, #1197] @ zero_extendqisi2 + bne .L3918 + ldr r3, .L3953 + ldrb r3, [r3, #1161] @ zero_extendqisi2 cmp r3, #0 - beq .L3911 -.L3910: + beq .L3919 +.L3918: sub r7, r7, #1 - b .L3912 -.L3911: + b .L3920 +.L3919: ldr r3, [sp, #4] ldrh r7, [r9, #-8] ldrh r3, [r3, #-10] @@ -23317,7 +23367,7 @@ gc_scan_src_blk: mul r10, r3, r10 orr r7, r7, #33554432 orr r7, r7, r10 -.L3912: +.L3920: str r7, [fp, #24] mov r0, fp mov r1, #1 @@ -23325,22 +23375,20 @@ gc_scan_src_blk: ldr r3, [fp, #36] cmn r3, #1 cmpne r3, #512 - beq .L3942 + beq .L3950 ldr r3, [fp, #12] ldr r2, [sp, #8] ldr r3, [r3] cmp r3, r2 - ldrne r0, .L3945+8 - movwne r2, #1619 - ldrne r1, .L3945+4 - bne .L3943 -.L3914: - movw r3, #542 - ldr r0, [r5, #-3128] - ldr r1, [fp, #4] - ldrh r2, [r5, r3] - b .L3939 -.L3908: + ldreq r0, [r5, #-3128] + ldreq r1, [fp, #4] + ldreqh r2, [r5, #-14] + beq .L3947 + ldr r0, .L3953+8 + movw r2, #1619 + ldr r1, .L3953+4 + b .L3951 +.L3916: ldr r3, [sp] ldr r8, [r0, #4] ldr r0, [fp, #4] @@ -23353,47 +23401,47 @@ gc_scan_src_blk: ldreq r1, [fp, #4] ldreq r0, [r2, #-3128] moveq r2, r7 - beq .L3939 + beq .L3947 mov r0, fp bl zbuf_free ldr r3, [fp, #12] - ldr r0, .L3945+36 + ldr r0, .L3953+36 ldr r2, [fp, #24] ldr r1, [r3, #4] mov r3, r7 -.L3941: +.L3949: bl printk -.L3940: +.L3948: mvn r0, #0 - b .L3895 -.L3939: + b .L3903 +.L3947: bl ftl_memcpy ldr r7, [r5, #-3128] - ldr r10, .L3945+24 + ldr r10, .L3953+24 mov r8, #0 - ldr r9, .L3945+20 + ldr r9, .L3953+20 sub r7, r7, #4 -.L3917: +.L3925: ldr r3, [sp] cmp r8, r3 - bge .L3944 + bge .L3952 ldr r0, [r7, #4]! cmn r0, #1 - beq .L3919 + beq .L3927 bl lpa_hash_get_ppa cmn r0, #1 str r0, [sp, #20] - bne .L3920 + bne .L3928 ldr r0, [r7] add r1, sp, #20 mov r2, #0 bl pm_log2phys -.L3920: - ldr r3, .L3945+40 +.L3928: + ldr r3, .L3953+40 mvn r1, #0 ldr r2, [sp, #20] ldrh r0, [r3] - ldrb r3, [r4, #1189] @ zero_extendqisi2 + ldrb r3, [r4, #1153] @ zero_extendqisi2 str r2, [sp, #4] rsb r3, r3, #24 rsb r3, r0, r3 @@ -23410,42 +23458,42 @@ gc_scan_src_blk: ldreqh r3, [r9, #20] addeq r3, r3, #1 streqh r3, [r9, #20] @ movhi -.L3919: +.L3927: bl timer_get_time add r8, r8, #1 - b .L3917 -.L3944: + b .L3925 +.L3952: mov r0, fp bl zbuf_free movw r3, #2828 ldrh r1, [r4, r3] - ldr r2, [r4, #1088] + ldr r2, [r4, #1092] mov r3, r1, asl #1 ldrh r2, [r2, r3] ldrh r3, [r6, #20] cmp r2, r3 - beq .L3923 - ldr r0, .L3945+44 + beq .L3931 + ldr r0, .L3953+44 bl printk -.L3923: +.L3931: movw r3, #2828 ldrh r1, [r6, #20] ldrh r3, [r4, r3] - ldr r2, [r4, #1088] + ldr r2, [r4, #1092] mov r3, r3, asl #1 strh r1, [r2, r3] @ movhi mov r3, #0 ldrh r0, [r6, #20] strh r3, [r6, #24] @ movhi -.L3895: +.L3903: add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L3946: +.L3954: .align 2 -.L3945: +.L3953: .word .LANCHOR0 - .word .LANCHOR1+2612 + .word .LANCHOR1+2492 .word .LC0 .word .LANCHOR2 .word .LC253 @@ -23468,15 +23516,15 @@ gc_scan_static_data: stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, lr} .save {r4, r5, r6, r7, r8, r9, lr} .pad #12 - ldr r4, .L3964 - ldr r3, [r4, #1092] + ldr r4, .L3972 + ldr r3, [r4, #1096] ldr r2, [r3, #544] cmn r2, #1 - beq .L3948 + beq .L3956 mov r5, #0 mov r7, r4 -.L3949: - ldr r3, [r4, #1092] +.L3957: + ldr r3, [r4, #1096] add r1, sp, #4 mov r2, #0 uxth r6, r5 @@ -23484,7 +23532,7 @@ gc_scan_static_data: bl pm_log2phys ldr r3, [sp, #4] cmn r3, #1 - beq .L3950 + beq .L3958 mov r0, #1 bl buf_alloc mov r1, #1 @@ -23494,47 +23542,47 @@ gc_scan_static_data: bl sblk_read_page ldr r3, [r8, #36] cmp r3, #256 - bne .L3951 - ldr r3, .L3964+4 + bne .L3959 + ldr r3, .L3972+4 mov r9, #1 ldr r0, [sp, #4] ldrh r2, [r3] - ldrb r3, [r7, #1189] @ zero_extendqisi2 + ldrb r3, [r7, #1153] @ zero_extendqisi2 rsb r3, r3, #24 rsb r3, r2, r3 mov r3, r9, asl r3 sub r3, r3, #1 and r0, r3, r0, lsr r2 - ldr r3, .L3964+8 + ldr r3, .L3972+8 ldrb r1, [r3, #-3130] @ zero_extendqisi2 bl __aeabi_uidiv mov r1, r9 mov r2, #0 uxth r0, r0 bl gc_add_sblk -.L3951: +.L3959: ldr r2, [r8, #12] - ldr r3, [r4, #1092] + ldr r3, [r4, #1096] ldr r2, [r2, #4] ldr r3, [r3, #544] cmp r2, r3 - beq .L3952 - ldr r1, .L3964+12 + beq .L3960 + ldr r1, .L3972+12 movw r2, #2163 - ldr r0, .L3964+16 + ldr r0, .L3972+16 bl printk bl dump_stack -.L3952: +.L3960: mov r0, r8 bl zbuf_free -.L3950: - ldr r3, [r4, #1092] +.L3958: + ldr r3, [r4, #1096] ldr r1, [r4, #2784] ldr r2, [r3, #544] add r2, r2, #1 str r2, [r3, #544] cmp r2, r1 - bcc .L3953 + bcc .L3961 mvn r2, #0 str r2, [r3, #544] ldr r2, [r3, #548] @@ -23545,51 +23593,50 @@ gc_scan_static_data: bl ftl_ext_info_flush mov r0, #0 bl ftl_info_flush - b .L3947 -.L3953: + b .L3955 +.L3961: ldr r3, [sp, #4] cmn r3, #1 - bne .L3947 - ldr r3, .L3964+20 + bne .L3955 + ldr r3, .L3972+8 add r5, r5, #1 - ldrh r3, [r3] + ldrh r3, [r3, #-14] cmp r6, r3, lsr #2 - bcc .L3949 - b .L3947 -.L3948: + bcc .L3957 + b .L3955 +.L3956: ldr r2, [r3, #536] ldr r1, [r3, #12] add r2, r2, #12910592 add r2, r2, #49408 cmp r1, r2 - bhi .L3958 + bhi .L3966 ldr r0, [r4, #2804] ldr r2, [r3, #540] ldr r0, [r0, #44] add r2, r2, #4992 add r2, r2, #8 cmp r0, r2 - bls .L3947 -.L3958: + bls .L3955 +.L3966: ldr r2, [r4, #2804] ldr r2, [r2, #44] str r1, [r3, #536] str r2, [r3, #540] mov r2, #0 str r2, [r3, #544] -.L3947: +.L3955: add sp, sp, #12 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc} -.L3965: +.L3973: .align 2 -.L3964: +.L3972: .word .LANCHOR0 .word .LANCHOR3-3132 .word .LANCHOR3 - .word .LANCHOR1+2628 + .word .LANCHOR1+2508 .word .LC0 - .word .LANCHOR3+542 .fnend .size gc_scan_static_data, .-gc_scan_static_data .align 2 @@ -23601,53 +23648,53 @@ gc_block_vpn_scan: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - movw r4, #1076 - ldr r5, .L4004 + movw r4, #1080 + ldr r5, .L4012 .pad #44 sub sp, sp, #44 - ldr r2, [r5, #1092] + ldr r2, [r5, #1096] ldrh r3, [r5, r4] ldr r2, [r2, #608] cmp r2, r3 - bcs .L3966 + bcs .L3974 bl timer_get_time - ldr r6, [r5, #1092] + ldr r6, [r5, #1096] ldr r3, [r6, #604] add r3, r3, #29952 add r3, r3, #48 cmp r0, r3 - bls .L3966 + bls .L3974 bl timer_get_time - ldr r3, [r5, #1092] + ldr r3, [r5, #1096] ldrh r1, [r5, r4] str r0, [r6, #604] ldr r2, [r3, #600] cmp r2, r1 - bcs .L3970 + bcs .L3978 ldr r1, [r5, #2804] ldrh r1, [r1, #134] cmp r2, r1 - bcs .L3971 -.L3970: + bcs .L3979 +.L3978: ldr r2, [r5, #2804] ldrh r2, [r2, #134] str r2, [r3, #600] -.L3971: +.L3979: ldr r4, [r3, #600] movw r3, #65535 uxth r4, r4 cmp r4, r3 - bne .L3972 - ldr r1, .L4004+4 + bne .L3980 + ldr r1, .L4012+4 movw r2, #2504 - ldr r0, .L4004+8 + ldr r0, .L4012+8 bl printk bl dump_stack -.L3972: - ldr r3, [r5, #1092] +.L3980: + ldr r3, [r5, #1096] mov r0, r4 add r1, sp, #24 - ldr r6, .L4004 + ldr r6, .L4012 ldr r2, [r3, #600] add r2, r2, #1 str r2, [r3, #600] @@ -23657,8 +23704,8 @@ gc_block_vpn_scan: bl ftl_get_blk_list_in_sblk uxth r0, r0 cmp r0, #0 - beq .L3966 - ldr r9, [r6, #1080] + beq .L3974 + ldr r9, [r6, #1084] add r9, r9, r4, asl #2 ldrb r3, [r9, #2] @ zero_extendqisi2 tst r3, #192 @@ -23668,49 +23715,49 @@ gc_block_vpn_scan: cmp r2, #224 orreq r3, r3, #1 cmp r3, #0 - bne .L3973 - ldr r3, [r6, #1092] + bne .L3981 + ldr r3, [r6, #1096] ldrh r1, [r3, #16] cmp r1, r4 - beq .L3973 + beq .L3981 ldrh r1, [r3, #48] cmp r1, r4 - beq .L3973 + beq .L3981 ldrh r3, [r3, #80] cmp r3, r4 - bne .L3974 -.L3973: + bne .L3982 +.L3981: cmp r2, #0 - bne .L3966 - ldr r3, [r5, #1088] + bne .L3974 + ldr r3, [r5, #1092] mov r4, r4, asl #1 ldrh r3, [r3, r4] cmp r3, #0 - beq .L3975 - ldr r1, .L4004+4 + beq .L3983 + ldr r1, .L4012+4 movw r2, #2521 - ldr r0, .L4004+8 + ldr r0, .L4012+8 bl printk bl dump_stack -.L3975: - ldr r3, [r5, #1088] +.L3983: + ldr r3, [r5, #1092] mov r2, #0 strh r2, [r3, r4] @ movhi - b .L3966 -.L3974: + b .L3974 +.L3982: add r3, sp, #40 add r0, r3, r0, asl #1 movw r3, #65535 ldrh r7, [r0, #-18] cmp r7, r3 - bne .L3977 - ldr r1, .L4004+4 + bne .L3985 + ldr r1, .L4012+4 movw r2, #2529 - ldr r0, .L4004+8 + ldr r0, .L4012+8 bl printk bl dump_stack -.L3977: - ldr r6, .L4004+12 +.L3985: + ldr r6, .L4012+12 ldrb r10, [r9, #2] @ zero_extendqisi2 sub fp, r6, #3088 ldrh r3, [fp, #-8] @@ -23723,7 +23770,7 @@ gc_block_vpn_scan: and r2, r10, #224 cmp r2, #160 movne r10, #1 - bne .L3978 + bne .L3986 ldrb r2, [r6, #-3124] @ zero_extendqisi2 cmp r2, #2 uxth r10, r2 @@ -23731,7 +23778,7 @@ gc_block_vpn_scan: ldreqh r8, [r3, #-10] subeq r8, r8, #1 uxtheq r8, r8 -.L3978: +.L3986: mov r0, #1 str r3, [sp, #12] bl buf_alloc @@ -23756,21 +23803,21 @@ gc_block_vpn_scan: moveq r0, r4 moveq r1, #1 moveq r2, #0 - beq .L4002 + beq .L4010 ldr r3, [r8, #12] ldr r1, [r3] - ldr r3, .L4004+16 + ldr r3, .L4012+16 cmp r1, r3 - beq .L3980 + beq .L3988 mov r0, r4 mov r1, #1 -.L4002: +.L4010: bl gc_add_sblk mov r0, r8 bl zbuf_free - b .L3966 -.L3980: - ldr r3, .L4004+12 + b .L3974 +.L3988: + ldr r3, .L4012+12 mov r7, r2 ldrh fp, [fp, #-8] ldrb r3, [r3, #-3123] @ zero_extendqisi2 @@ -23780,24 +23827,24 @@ gc_block_vpn_scan: uxth r3, fp mov fp, r2 str r3, [sp, #12] -.L3981: +.L3989: ldr r3, [sp, #12] cmp fp, r3 - bge .L4003 + bge .L4011 ldr r0, [r10, fp, asl #2] cmn r0, #1 - beq .L3982 + beq .L3990 bl lpa_hash_get_ppa cmn r0, #1 str r0, [sp, #20] - bne .L3983 + bne .L3991 ldr r0, [r10, fp, asl #2] add r1, sp, #20 mov r2, #0 bl pm_log2phys -.L3983: - ldr r3, .L4004+20 - ldrb r2, [r5, #1189] @ zero_extendqisi2 +.L3991: + ldr r3, .L4012+20 + ldrb r2, [r5, #1153] @ zero_extendqisi2 ldr r0, [sp, #20] ldrh r1, [r3] rsb r2, r2, #24 @@ -23811,44 +23858,44 @@ gc_block_vpn_scan: cmp r0, r4 addeq r7, r7, #1 uxtheq r7, r7 -.L3982: +.L3990: add fp, fp, #1 - b .L3981 -.L4003: + b .L3989 +.L4011: mov r0, r8 mov r6, r4, asl #1 bl zbuf_free - ldr r3, .L4004+24 + ldr r3, .L4012+24 ldr r3, [r3] tst r3, #256 - beq .L3985 - ldr r3, [r5, #1088] + beq .L3993 + ldr r3, [r5, #1092] mov r1, r4 - ldr r0, .L4004+28 + ldr r0, .L4012+28 ldrh r2, [r3, r6] ldrb r3, [r9, #2] @ zero_extendqisi2 mov r3, r3, lsr #5 str r3, [sp] mov r3, r7 bl printk -.L3985: - ldr r3, [r5, #1088] +.L3993: + ldr r3, [r5, #1092] cmp r7, #31 strh r7, [r3, r6] @ movhi - bhi .L3966 + bhi .L3974 mov r0, r4 mov r1, #1 mov r2, #0 bl gc_add_sblk -.L3966: +.L3974: add sp, sp, #44 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L4005: +.L4013: .align 2 -.L4004: +.L4012: .word .LANCHOR0 - .word .LANCHOR1+2648 + .word .LANCHOR1+2528 .word .LC0 .word .LANCHOR3 .word -178307901 @@ -23867,12 +23914,12 @@ ftl_sblk_dump: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov fp, r0, asl #2 - ldr r4, .L4044 + ldr r4, .L4052 .pad #132 sub sp, sp, #132 mov r7, r0 str r1, [sp, #60] - ldr r2, [r4, #1080] + ldr r2, [r4, #1084] add r3, r2, fp ldrh r1, [r2, fp] ldrb r3, [r3, #2] @ zero_extendqisi2 @@ -23881,19 +23928,19 @@ ftl_sblk_dump: ldr r10, [r2, r0, asl #2] mov r1, r7 mov r2, r3, lsr #5 - ldr r0, .L4044+4 + ldr r0, .L4052+4 ubfx r3, r3, #3, #2 ubfx r10, r10, #11, #8 str r10, [sp, #4] bl printk movw r3, #65535 cmp r7, r3 - beq .L4029 - movw r3, #1076 + beq .L4037 + movw r3, #1080 ldrh r3, [r4, r3] cmp r3, r7 - bls .L4029 - ldr r3, [r4, #1080] + bls .L4037 + ldr r3, [r4, #1084] add r1, sp, #112 mov r0, r7 strh r7, [sp, #96] @ movhi @@ -23903,11 +23950,11 @@ ftl_sblk_dump: ldrb r3, [r3, #2] @ zero_extendqisi2 and r3, r3, #224 cmp r3, #160 - ldreq r3, .L4044+8 + ldreq r3, .L4052+8 movne r10, #1 ldreqb r10, [r3, #-3124] @ zero_extendqisi2 bl ftl_get_blk_list_in_sblk - ldr r3, .L4044+12 + ldr r3, .L4052+12 mov r1, r7 mov r2, r3 ldrh r3, [r2, #-8]! @@ -23919,12 +23966,12 @@ ftl_sblk_dump: str r2, [sp, #64] strh r5, [sp, #106] @ movhi strh r3, [sp, #102] @ movhi - ldr r3, [r4, #1080] + ldr r3, [r4, #1084] add r3, r3, fp ldrb r2, [r3, #2] @ zero_extendqisi2 mov r3, r10 str r0, [sp] - ldr r0, .L4044+16 + ldr r0, .L4052+16 mov r2, r2, lsr #5 bl printk mov r0, #1 @@ -23932,13 +23979,13 @@ ftl_sblk_dump: mov r6, r0 str r5, [sp, #44] str r5, [sp, #52] -.L4009: +.L4017: ldr r3, [sp, #64] uxth r2, r5 str r2, [sp, #48] ldrh r3, [r3] cmp r3, r2 - bls .L4026 + bls .L4034 mov r3, r2, asl #1 add r2, r3, r2 sub r3, r3, #1 @@ -23946,36 +23993,36 @@ ftl_sblk_dump: mov r3, #0 sub r2, r2, #1 str r2, [sp, #68] -.L4042: +.L4050: str r3, [sp, #56] ldrb r2, [sp, #105] @ zero_extendqisi2 ldrh r3, [sp, #56] cmp r2, r3 - bls .L4024 + bls .L4032 mov r8, #1 add r3, r3, #8 str r3, [sp, #76] -.L4025: +.L4033: cmp r8, r10 - bhi .L4043 + bhi .L4051 ldr r2, [sp, #76] add r3, sp, #128 add r3, r3, r2, asl #1 ldrh r2, [r3, #-32] movw r3, #65535 cmp r2, r3 - beq .L4010 - ldr r3, .L4044+20 + beq .L4018 + ldr r3, .L4052+20 cmp r10, #3 ldrh r3, [r3] mul r3, r3, r2 - bne .L4011 - ldr r1, .L4044 - ldrb r0, [r1, #1196] @ zero_extendqisi2 + bne .L4019 + ldr r1, .L4052 + ldrb r0, [r1, #1160] @ zero_extendqisi2 cmp r0, #0 ldrne r1, [sp, #68] - bne .L4040 - ldrb r1, [r1, #1197] @ zero_extendqisi2 + bne .L4048 + ldrb r1, [r1, #1161] @ zero_extendqisi2 mov r4, r8, asl #24 cmp r1, #0 uxtaheq r3, r3, r5 @@ -23983,19 +24030,19 @@ ftl_sblk_dump: addne r3, r3, r1 addne r3, r3, r8 orr r4, r4, r3 - b .L4013 -.L4011: + b .L4021 +.L4019: cmp r10, #2 uxtahne r4, r3, r5 - bne .L4013 + bne .L4021 ldr r1, [sp, #72] -.L4040: +.L4048: add r3, r3, r1 - ldr r1, .L4044+8 + ldr r1, .L4052+8 add r3, r3, r8 ldrb r4, [r1, #-3124] @ zero_extendqisi2 orr r4, r3, r4, asl #24 -.L4013: +.L4021: mov r1, #1 str r4, [r6, #24] mov r0, r6 @@ -24014,7 +24061,7 @@ ftl_sblk_dump: ldr r0, [r1, #8] str r0, [sp, #12] ldr r1, [r1, #12] - ldr r0, .L4044+24 + ldr r0, .L4052+24 str r1, [sp, #16] ldr r1, [r3] str r1, [sp, #20] @@ -24028,18 +24075,18 @@ ftl_sblk_dump: str r3, [sp, #32] mov r3, r4 bl printk - ldr r0, .L4044+28 + ldr r0, .L4052+28 ldr ip, [sp, #80] ldr r3, [sp, #52] cmn ip, #1 cmpne ip, #512 moveq r3, #1 str r3, [sp, #52] - ldr r3, .L4044+32 + ldr r3, .L4052+32 ldr r3, [r3, #4] blx r3 - ldr r3, .L4044 - ldr r3, [r3, #1080] + ldr r3, .L4052 + ldr r3, [r3, #1084] add r3, r3, fp ldrb r2, [r3, #2] @ zero_extendqisi2 and r2, r2, #224 @@ -24047,7 +24094,7 @@ ftl_sblk_dump: cmpne r2, #32 moveq r2, #1 movne r2, #0 - beq .L4010 + beq .L4018 ldr r3, [r6, #12] str r2, [sp, #80] ldr r0, [r3, #4] @@ -24055,89 +24102,89 @@ ftl_sblk_dump: cmn r0, #1 str r0, [sp, #92] ldr r2, [sp, #80] - bne .L4017 + bne .L4025 ldr r3, [r6, #12] add r1, sp, #92 ldr r0, [r3, #4] bl pm_log2phys -.L4017: +.L4025: ldr r3, [sp, #92] cmp r3, r4 - bne .L4018 + bne .L4026 ldr r3, [sp, #44] mov r1, r4 - ldr r0, .L4044+36 + ldr r0, .L4052+36 add r3, r3, #1 str r3, [sp, #44] ldr r3, [r6, #12] ldr r2, [r3, #4] ldr r3, [sp, #44] bl printk -.L4018: +.L4026: ldr r3, [sp, #60] cmp r3, #0 - beq .L4020 + beq .L4028 ldr r2, [r3, r9, asl #2] mov r4, r9, asl #2 ldr r3, [r6, #12] ldr r3, [r3, #4] cmp r3, r2 - beq .L4021 - ldr r3, .L4044+40 + beq .L4029 + ldr r3, .L4052+40 ldr r3, [r3] tst r3, #4096 - beq .L4021 - ldr r0, .L4044+44 + beq .L4029 + ldr r0, .L4052+44 mov r1, r9 bl printk -.L4021: +.L4029: ldr r3, [sp, #60] ldr r2, [r6, #12] ldr r3, [r3, r4] ldr r2, [r2, #4] cmp r2, r3 cmnne r3, #1 - beq .L4020 - ldr r1, .L4044+48 + beq .L4028 + ldr r1, .L4052+48 movw r2, #1575 - ldr r0, .L4044+52 + ldr r0, .L4052+52 bl printk bl dump_stack -.L4020: +.L4028: add r9, r9, #1 -.L4010: +.L4018: add r8, r8, #1 uxth r8, r8 - b .L4025 -.L4043: + b .L4033 +.L4051: ldr r3, [sp, #56] add r3, r3, #1 - b .L4042 -.L4024: + b .L4050 +.L4032: add r5, r5, #1 - b .L4009 -.L4026: + b .L4017 +.L4034: mov r0, r6 bl zbuf_free - ldr r3, .L4044 - ldr r0, .L4044+56 + ldr r3, .L4052 + ldr r0, .L4052+56 mov r1, r7 - ldr r2, [r3, #1088] + ldr r2, [r3, #1092] mov r3, r7, asl #1 ldrh r2, [r2, r3] ldr r3, [sp, #44] bl printk ldr r0, [sp, #52] - b .L4007 -.L4029: + b .L4015 +.L4037: mov r0, #0 -.L4007: +.L4015: add sp, sp, #132 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L4045: +.L4053: .align 2 -.L4044: +.L4052: .word .LANCHOR0 .word .LC257 .word .LANCHOR3 @@ -24150,7 +24197,7 @@ ftl_sblk_dump: .word .LC259 .word .LANCHOR2 .word .LC260 - .word .LANCHOR1+2668 + .word .LANCHOR1+2548 .word .LC0 .word .LC261 .fnend @@ -24164,148 +24211,148 @@ zftl_read: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - mov r6, r3 - ldr r3, .L4113 + mov r7, r3 + ldr r3, .L4121 .pad #76 sub sp, sp, #76 mov r8, r0 mov r4, r1 - mov r5, r2 + mov r6, r2 ldr r3, [r3] tst r3, #4096 - beq .L4047 - ldr r0, .L4113+4 + beq .L4055 + ldr r0, .L4121+4 mov r1, r8 mov r2, r4 - mov r3, r5 + mov r3, r6 bl printk -.L4047: +.L4055: cmp r8, #0 - ldreq r3, .L4113+8 + ldreq r3, .L4121+8 moveq ip, #24576 ldreq r8, [r3, #1032] - beq .L4049 -.L4048: + beq .L4057 +.L4056: cmp r8, #3 - bhi .L4078 + bhi .L4086 mov ip, r8, asl #13 mov r8, #8192 -.L4049: - cmp r5, r8 +.L4057: + cmp r6, r8 cmpls r4, r8 - movcs r7, #1 - movcc r7, #0 - bcs .L4078 - add r3, r4, r5 + movcs r10, #1 + movcc r10, #0 + bcs .L4086 + add r3, r4, r6 cmp r3, r8 - bhi .L4078 - ldr r2, .L4113+8 + bhi .L4086 add r3, ip, r4 str r3, [sp, #28] + ldr r3, .L4121+8 + ldr r4, .L4121+12 ldr r0, [sp, #28] - ldr r1, [r2, #2804] - ldrb r4, [r2, #2772] @ zero_extendqisi2 - ldr r3, [r1, #24] - add r3, r3, r5 - str r3, [r1, #24] - mov r1, r4 + ldr r2, [r3, #2804] + ldrb r5, [r4, #-2538] @ zero_extendqisi2 + ldr r3, [r2, #24] + mov r1, r5 + add r3, r3, r6 + str r3, [r2, #24] bl __aeabi_uidiv - mov r1, r4 + mov r1, r5 ldr r3, [sp, #28] str r0, [sp, #36] - add r3, r3, r5 + add r3, r3, r6 str r3, [sp, #44] sub r0, r3, #1 bl __aeabi_uidiv ldr r3, [sp, #36] - str r7, [sp, #40] - ldr r4, [sp, #36] + ldr r5, [sp, #36] rsb r3, r3, #1 - ldr r7, .L4113+12 - add r3, r3, r0 str r0, [sp, #48] + add r3, r3, r0 + str r10, [sp, #40] str r3, [sp, #32] -.L4051: +.L4059: ldr r3, [sp, #32] cmp r3, #0 - beq .L4110 + beq .L4118 ldr r3, [sp, #36] - ldr r8, .L4113+8 - rsb r2, r3, r4 + ldrb r8, [r4, #-2538] @ zero_extendqisi2 + rsb r1, r3, r5 ldr r3, [sp, #48] - clz r2, r2 - rsb r3, r3, r4 - ldrb r1, [r8, #2772] @ zero_extendqisi2 + clz r1, r1 + rsb r3, r3, r5 + uxth r9, r8 clz r3, r3 - mov r2, r2, lsr #5 - mov r9, r8 + mov r1, r1, lsr #5 mov r3, r3, lsr #5 - uxth r10, r1 - orrs fp, r3, r2 - beq .L4052 - cmp r2, #0 - beq .L4053 + orrs r10, r3, r1 + beq .L4060 + cmp r1, #0 + beq .L4061 ldr r0, [sp, #28] + mov r1, r8 bl __aeabi_uidivmod - uxth fp, r1 - rsb r10, fp, r10 - uxth r10, r10 - cmp r10, r5 - uxthhi r10, r5 - b .L4052 -.L4053: + uxth r10, r1 + rsb r9, r10, r9 + uxth r9, r9 + cmp r9, r6 + uxthhi r9, r6 + b .L4060 +.L4061: cmp r3, #0 ldrne r3, [sp, #28] - movne fp, r2 - moveq fp, r3 - addne r3, r3, r5 - mlsne r1, r4, r1, r3 - uxtbne r10, r1 -.L4052: - ldr r2, .L4113+16 - mov r3, #0 -.L4056: - ldr r1, [r2, #20] - cmp r1, r4 - bne .L4054 - ldrb r1, [r2, #2] @ zero_extendqisi2 + movne r10, r1 + moveq r10, r3 + addne r9, r3, r6 + mlsne r9, r5, r8, r9 + uxtbne r9, r9 +.L4060: + ldr r3, .L4121+16 + mov r2, #0 + mov r8, r3 +.L4064: + ldr r1, [r3, #20] + cmp r1, r5 + bne .L4062 + ldrb r1, [r3, #2] @ zero_extendqisi2 tst r1, #8 - beq .L4054 - ldr r1, .L4113+8 - mov r2, #48 - mov r10, r10, asl #9 - mov r0, r6 - add r6, r6, r10 - mla r3, r2, r3, r1 - mov r2, r10 - ldr r1, [r3, #1240] - add r1, r1, fp, asl #9 + beq .L4062 + ldr r1, .L4121+8 + mov r3, #48 + mov r9, r9, asl #9 + mov r0, r7 + add r7, r7, r9 + mla r2, r3, r2, r1 + ldr r1, [r2, #1240] + mov r2, r9 + add r1, r1, r10, asl #9 bl ftl_memcpy - b .L4055 -.L4054: - add r3, r3, #1 - add r2, r2, #48 - cmp r3, #32 - bne .L4056 - mov r0, r4 + b .L4063 +.L4062: + add r2, r2, #1 + add r3, r3, #48 + cmp r2, #32 + bne .L4064 + mov r0, r5 bl lpa_hash_get_ppa cmn r0, #1 str r0, [sp, #68] - bne .L4057 - mov r0, r4 + bne .L4065 + mov r0, r5 add r1, sp, #68 mov r2, #0 bl pm_log2phys -.L4057: +.L4065: ldr r3, [sp, #68] cmn r3, #1 - moveq r10, #0 - bne .L4111 -.L4059: - ldrb r3, [r9, #2772] @ zero_extendqisi2 - cmp r10, r3 - bcs .L4055 - mla r3, r3, r4, r10 + moveq r9, #0 + bne .L4119 +.L4067: + ldrb r3, [r4, #-2538] @ zero_extendqisi2 + cmp r9, r3 + bcs .L4063 + mla r3, r3, r5, r9 ldr r2, [sp, #28] ldr r1, [sp, #44] cmp r3, r2 @@ -24314,72 +24361,72 @@ zftl_read: cmp r3, r1 movcs r2, #0 cmp r2, #0 - beq .L4060 - mov r0, r6 + beq .L4068 + mov r0, r7 mov r1, #0 mov r2, #512 - add r6, r6, #512 + add r7, r7, #512 bl ftl_memset -.L4060: - add r10, r10, #1 - b .L4059 -.L4111: +.L4068: + add r9, r9, #1 + b .L4067 +.L4119: mov r0, #0 bl buf_alloc subs r3, r0, #0 - beq .L4062 - ldr r2, .L4113+8 + beq .L4070 + ldr r2, .L4121+8 ldr r1, [r2, #2804] ldr r2, [r1, #40] add r2, r2, #1 str r2, [r1, #40] ldr r2, [sp, #68] - str r6, [r3, #8] - add r6, r6, r10, asl #9 - str r4, [r3, #20] + str r7, [r3, #8] + add r7, r7, r9, asl #9 + str r5, [r3, #20] str r2, [r3, #24] str r2, [r3, #28] - strb r10, [r3, #40] - strb fp, [r3, #41] + strb r9, [r3, #40] + strb r10, [r3, #41] bl zftl_add_read_buf -.L4055: +.L4063: ldr r3, [sp, #32] - add r4, r4, #1 + add r5, r5, #1 sub r3, r3, #1 str r3, [sp, #32] -.L4062: - ldrb r3, [r8, #2774] @ zero_extendqisi2 +.L4070: + ldr r3, .L4121+8 ldr r2, [sp, #32] + ldrb r3, [r3, #2773] @ zero_extendqisi2 cmp r2, #0 cmpne r3, #2 - bhi .L4051 - ldrb r1, [r7, #-2529] @ zero_extendqisi2 + bhi .L4059 + ldrb r1, [r4, #-2527] @ zero_extendqisi2 cmp r1, #0 - beq .L4051 - ldrb r2, [r7, #-2530] @ zero_extendqisi2 + beq .L4059 + ldrb r3, [r4, #-2528] @ zero_extendqisi2 mov r0, #48 - ldr r3, .L4113+16 - mla r0, r0, r2, r3 + mla r0, r0, r3, r8 bl sblk_read_page -.L4064: - ldrb r3, [r7, #-2529] @ zero_extendqisi2 +.L4072: + ldrb r3, [r4, #-2527] @ zero_extendqisi2 cmp r3, #0 - beq .L4112 - ldrb r3, [r7, #-2530] @ zero_extendqisi2 + beq .L4120 + ldrb r3, [r4, #-2528] @ zero_extendqisi2 cmp r3, #255 - bne .L4065 - ldr r1, .L4113+20 - movw r2, #1283 - ldr r0, .L4113+24 + bne .L4073 + ldr r1, .L4121+20 + movw r2, #1284 + ldr r0, .L4121+24 bl printk bl dump_stack -.L4065: - ldr r3, .L4113+12 +.L4073: + ldr r3, .L4121+12 mov ip, #48 - ldr r8, .L4113+8 - ldr r1, .L4113+12 - ldrb r10, [r3, #-2530] @ zero_extendqisi2 - ldr r3, .L4113+16 + ldr r8, .L4121+8 + ldr r1, .L4121+12 + ldrb r10, [r3, #-2528] @ zero_extendqisi2 + ldr r3, .L4121+16 mul ip, ip, r10 add r2, r8, ip add r3, r3, ip @@ -24387,22 +24434,22 @@ zftl_read: ldr r9, [r2, #1272] ldrb r3, [r2, #1236] @ zero_extendqisi2 cmn r9, #1 - strb r3, [r1, #-2530] - bne .L4066 - ldr r2, [r8, #1092] + strb r3, [r1, #-2528] + bne .L4074 + ldr r2, [r8, #1096] str r9, [sp, #40] ldr r3, [r2, #552] add r3, r3, #1 str r3, [r2, #552] - b .L4067 -.L4066: + b .L4075 +.L4074: cmp r9, #256 - bne .L4067 - ldr r1, .L4113+28 + bne .L4075 + ldr r1, .L4121+28 ldr r3, [r2, #1260] str r2, [sp, #60] ldrh r0, [r1] - ldrb r1, [r8, #1189] @ zero_extendqisi2 + ldrb r1, [r8, #1153] @ zero_extendqisi2 mov r8, #1 str r3, [sp, #56] rsb r1, r1, #24 @@ -24410,21 +24457,21 @@ zftl_read: mov r1, r8, asl r1 sub r1, r1, #1 and r0, r1, r3, lsr r0 - ldrb r1, [r7, #-3130] @ zero_extendqisi2 + ldrb r1, [r4, #-3130] @ zero_extendqisi2 bl __aeabi_uidiv ldr r2, [sp, #60] uxth fp, r0 ldr r3, [sp, #56] mov r1, fp - ldr r0, .L4113+32 + ldr r0, .L4121+32 ldr r2, [r2, #1256] bl printk mov r0, fp mov r1, r8 mov r2, #0 bl gc_add_sblk -.L4067: - ldr r1, .L4113+8 +.L4075: + ldr r1, .L4121+8 mov r0, #48 cmn r9, #1 mla r0, r0, r10, r1 @@ -24436,14 +24483,14 @@ zftl_read: cmp lr, ip orrne r2, r2, #1 cmp r2, #0 - beq .L4068 + beq .L4076 ldr r9, [r0, #1240] mvn ip, #0 ldr r8, [r0, #1260] ldr r2, [r0, #1244] ldrb fp, [r0, #1276] @ zero_extendqisi2 - ldrb r0, [r1, #1189] @ zero_extendqisi2 - ldrb lr, [r1, #2772] @ zero_extendqisi2 + ldrb r0, [r1, #1153] @ zero_extendqisi2 + ldrb lr, [r4, #-2538] @ zero_extendqisi2 rsb r1, r0, #24 mvn ip, ip, asl r0 cmp fp, lr @@ -24454,8 +24501,8 @@ zftl_read: uxtb r0, r0 bl flash_read_page_en mov r9, r0 -.L4068: - ldr ip, .L4113+8 +.L4076: + ldr ip, .L4121+8 mov r8, #48 cmn r9, #1 mla r8, r8, r10, ip @@ -24470,9 +24517,9 @@ zftl_read: moveq r2, fp orrne r2, fp, #1 cmp r2, #0 - beq .L4070 - ldr r1, [ip, #1092] - ldr r0, .L4113+36 + beq .L4078 + ldr r1, [ip, #1096] + ldr r0, .L4121+36 str ip, [sp, #56] ldr r2, [r1, #552] add r2, r2, #1 @@ -24492,13 +24539,13 @@ zftl_read: str r3, [sp, #16] ldr r3, [r8, #1256] bl printk - ldr r3, .L4113+28 + ldr r3, .L4121+28 ldr r2, [r8, #1260] - ldrb r1, [r7, #-3130] @ zero_extendqisi2 + ldrb r1, [r4, #-3130] @ zero_extendqisi2 ldrh r0, [r3] mov r2, r2, lsr r0 ldr ip, [sp, #56] - ldrb r3, [ip, #1189] @ zero_extendqisi2 + ldrb r3, [ip, #1153] @ zero_extendqisi2 rsb r3, r3, #24 rsb r3, r0, r3 mvn r0, #0 @@ -24507,81 +24554,83 @@ zftl_read: mov r1, #0 uxth r0, r0 bl ftl_sblk_dump -.L4070: - ldr r8, .L4113+8 - mov r3, #48 - mla r3, r3, r10, r8 - mov r9, r8 - ldr r2, [r3, #1248] - ldr r3, [r3, #1256] - ldr r2, [r2, #4] - cmp r2, r3 +.L4078: + ldr r3, .L4121+8 + mov r2, #48 + mla r2, r2, r10, r3 + mov r8, r3 + ldr r1, [r2, #1248] + ldr r2, [r2, #1256] + ldr r1, [r1, #4] + cmp r1, r2 orrne fp, fp, #1 cmp fp, #0 - beq .L4071 - ldr r1, .L4113+20 - movw r2, #1319 - ldr r0, .L4113+24 + beq .L4079 + ldr r1, .L4121+20 + movw r2, #1320 + ldr r0, .L4121+24 bl printk bl dump_stack -.L4071: +.L4079: mov r3, #48 - mla r10, r3, r10, r9 - ldrb r3, [r8, #2772] @ zero_extendqisi2 + mla r10, r3, r10, r8 + ldrb r3, [r4, #-2538] @ zero_extendqisi2 ldrb r2, [r10, #1276] @ zero_extendqisi2 cmp r3, r2 ldrlsb r3, [r10, #1238] @ zero_extendqisi2 bicls r3, r3, #8 strlsb r3, [r10, #1238] - bls .L4073 + bls .L4081 ldrb r1, [r10, #1277] @ zero_extendqisi2 mov r2, r2, asl #9 ldr r3, [r10, #1240] ldr r0, [r10, #1244] add r1, r3, r1, asl #9 bl ftl_memcpy -.L4073: +.L4081: ldr r1, [sp, #52] - ldr r0, .L4113+40 + ldr r0, .L4121+40 bl buf_remove_buf ldr r0, [sp, #52] bl zbuf_free - ldrb r3, [r7, #-2529] @ zero_extendqisi2 + ldr r3, .L4121+12 + ldr r2, .L4121+12 + ldrb r3, [r3, #-2527] @ zero_extendqisi2 sub r3, r3, #1 - strb r3, [r7, #-2529] - b .L4064 -.L4112: - ldr r1, .L4113+12 + strb r3, [r2, #-2527] + b .L4072 +.L4120: + ldr r1, .L4121+12 mvn r2, #0 - strb r3, [r1, #-2529] - strb r2, [r1, #-2530] - b .L4051 -.L4110: + strb r3, [r1, #-2527] + strb r2, [r1, #-2528] + b .L4059 +.L4118: bl timer_get_time - ldr r3, .L4113+12 - str r0, [r3, #548] + ldr r3, .L4121+12 + str r0, [r3, #-8] ldr r0, [sp, #40] - b .L4050 -.L4078: + b .L4058 +.L4086: mvn r0, #0 -.L4050: +.L4058: add sp, sp, #76 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L4114: +.L4122: .align 2 -.L4113: +.L4121: .word .LANCHOR2 .word .LC262 .word .LANCHOR0 .word .LANCHOR3 .word .LANCHOR0+1236 - .word .LANCHOR1+2684 + .word .LANCHOR1+2564 .word .LC0 .word .LANCHOR3-3132 .word .LC263 .word .LC264 - .word .LANCHOR0+2776 + .word .LANCHOR0+2775 .fnend .size zftl_read, .-zftl_read .align 2 @@ -24625,8 +24674,8 @@ zftl_debug_proc_write: .fnstart @ args = 0, pretend = 0, frame = 88 @ frame_needed = 0, uses_anonymous_args = 0 - stmfd sp!, {r4, r5, r6, r7, r8, r9, lr} - .save {r4, r5, r6, r7, r8, r9, lr} + stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} + .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} cmp r2, #79 .pad #124 sub sp, sp, #124 @@ -24634,50 +24683,50 @@ zftl_debug_proc_write: add r4, sp, #40 mvnhi r0, #21 str r4, [sp, #36] - bhi .L4119 + bhi .L4127 mov r0, r4 bl rk_copy_from_user cmp r0, #0 mvnne r0, #13 - bne .L4119 + bne .L4127 add r3, sp, #120 mov r1, r4 add r3, r3, r5 strb r0, [r3, #-80] - ldr r0, .L4144 + ldr r0, .L4152 bl printk - ldr r0, .L4144+4 + ldr r0, .L4152+4 mov r1, r4 mov r2, #1 mov r3, #16 bl rknand_print_hex bl rknand_device_lock mov r0, r4 - ldr r1, .L4144+8 + ldr r1, .L4152+8 mov r2, #7 bl memcmp subs r6, r0, #0 - bne .L4120 - ldr r4, .L4144+12 + bne .L4128 + ldr r4, .L4152+12 movw ip, #698 - ldr r0, .L4144+16 + ldr r0, .L4152+16 mov r2, #4 - ldr r7, .L4144+20 + ldr r7, .L4152+20 movw r8, #65535 ldr r3, [r4, #2804] add r1, r3, #704 ldrh r3, [r3, ip] bl rknand_print_hex ldr r1, [r4, #2804] - ldr r0, .L4144+24 + ldr r0, .L4152+24 mov r2, #2 add r1, r1, #416 - ldrh r3, [r7, #-152] + ldrh r3, [r7, #-168] bl rknand_print_hex -.L4121: - ldrh r3, [r7, #-152] +.L4129: + ldrh r3, [r7, #-168] cmp r6, r3 - bge .L4124 + bge .L4132 mov r0, #300 bl msleep add r3, r6, #208 @@ -24685,84 +24734,84 @@ zftl_debug_proc_write: mov r3, r3, asl #1 ldrh r0, [r2, r3] cmp r0, r8 - beq .L4122 + beq .L4130 mov r1, #0 bl ftl_sblk_dump -.L4122: +.L4130: add r6, r6, #1 - b .L4121 -.L4120: + b .L4129 +.L4128: mov r0, r4 - ldr r1, .L4144+28 + ldr r1, .L4152+28 mov r2, #7 bl memcmp subs r6, r0, #0 - bne .L4125 - ldr r7, .L4144+12 + bne .L4133 + ldr r9, .L4152+12 movw ip, #698 - ldr r0, .L4144+16 + ldr r0, .L4152+16 mov r2, #4 - ldr r9, .L4144+20 - ldr r3, [r7, #2804] + ldr r7, .L4152+20 + ldr r3, [r9, #2804] + ldr r10, .L4152+32 add r1, r3, #704 + mov fp, r7 ldrh r3, [r3, ip] bl rknand_print_hex - ldr r1, [r7, #2804] - ldrh r3, [r9, #-152] + ldr r1, [r9, #2804] mov r2, #2 + ldrh r3, [r7, #-168] add r1, r1, #416 - ldr r0, .L4144+24 + ldr r0, .L4152+24 bl rknand_print_hex mov r0, #50 bl msleep - ldr r0, .L4144+32 - sub r9, r9, #2528 + ldr r0, .L4152+36 add r4, sp, #120 add r1, sp, #47 str r1, [r4, #-84]! bl printk mov r1, r4 - mov r4, r6 ldr r0, [sp, #36] bl rk_simple_strtoull.constprop.34 - uxth r8, r0 + uxth r4, r0 str r0, [sp, #32] -.L4127: - add r6, r9, r4 - ldr r0, .L4144+36 - ldrh r1, [r9, r4] - ldrh r2, [r6, #2] +.L4135: + add r8, r10, r6 + ldr r0, .L4152+40 + ldrh r1, [r10, r6] + ldrh r2, [r8, #2] bl printk - ldrh r3, [r4, r9] - cmp r3, r8 - bne .L4126 - ldrb r3, [r7, #2772] @ zero_extendqisi2 + ldrh r3, [r6, r10] + cmp r3, r4 + bne .L4134 + ldrb r3, [fp, #-2538] @ zero_extendqisi2 mov r2, #4 - ldr r0, .L4144+40 - ldr r1, [r6, #4] + ldr r0, .L4152+44 + ldr r1, [r8, #4] mov r3, r3, asl #7 bl rknand_print_hex mov r0, #50 bl msleep -.L4126: - add r4, r4, #8 - cmp r4, #256 - bne .L4127 +.L4134: + add r6, r6, #8 + cmp r6, #256 + bne .L4135 mov r0, #300 - add r8, r8, #176 + add r4, r4, #176 bl msleep mov r0, #1 bl buf_alloc - ldr r3, [r7, #2804] + ldr r3, [r9, #2804] mov r1, #1 - ldr r3, [r3, r8, asl #2] + ldr r3, [r3, r4, asl #2] str r3, [r0, #24] - mov r4, r0 + mov r6, r0 str r3, [sp, #32] bl sblk_read_page - ldr ip, [r4, #4] - ldr r3, [r4, #12] - ldr r0, .L4144+44 + ldr ip, [r6, #4] + ldr r3, [r6, #12] + ldr r0, .L4152+48 ldr r2, [ip, #4] str r2, [sp] ldr r2, [ip, #8] @@ -24778,60 +24827,62 @@ zftl_debug_proc_write: str r2, [sp, #20] ldr r3, [r3, #12] str r3, [sp, #24] - ldr r2, [r4, #36] ldr r3, [ip] + ldr r2, [r6, #36] bl printk - ldrb r3, [r7, #2772] @ zero_extendqisi2 - ldr r0, .L4144+48 + ldrb r3, [r7, #-2538] @ zero_extendqisi2 + ldr r0, .L4152+52 mov r2, #4 - ldr r1, [r4, #4] + ldr r1, [r6, #4] mov r3, r3, asl #7 - b .L4143 -.L4125: + bl rknand_print_hex + mov r0, r6 + b .L4151 +.L4133: mov r0, r4 - ldr r1, .L4144+52 + ldr r1, .L4152+56 mov r2, #7 bl memcmp cmp r0, #0 - bne .L4128 + bne .L4136 bl dump_ftl_info - b .L4124 -.L4128: + b .L4132 +.L4136: mov r0, r4 - ldr r1, .L4144+56 + ldr r1, .L4152+60 mov r2, #9 bl memcmp cmp r0, #0 - bne .L4129 + bne .L4137 add r1, sp, #120 add r0, sp, #49 str r0, [r1, #-84]! bl rk_simple_strtoull.constprop.34 - ldr r3, .L4144+60 + ldr r3, .L4152+64 str r0, [sp, #32] strh r0, [r3, #-12] @ movhi bl dump_all_list_info - b .L4124 -.L4129: + b .L4132 +.L4137: mov r0, r4 - ldr r1, .L4144+64 + ldr r1, .L4152+68 mov r2, #8 bl memcmp cmp r0, #0 - beq .L4124 + beq .L4132 mov r0, r4 - ldr r1, .L4144+68 + ldr r1, .L4152+72 mov r2, #8 bl memcmp cmp r0, #0 - bne .L4131 + bne .L4139 add r4, sp, #120 add r1, sp, #48 - ldr r0, .L4144+32 + ldr r0, .L4152+36 str r1, [r4, #-84]! bl printk mov r1, r4 - ldr r6, .L4144+12 + ldr r6, .L4152+20 ldr r0, [sp, #36] bl rk_simple_strtoull.constprop.34 str r0, [sp, #32] @@ -24844,7 +24895,7 @@ zftl_debug_proc_write: bl sblk_read_page ldr r3, [r4, #4] ldr r2, [r4, #12] - ldr r0, .L4144+44 + ldr r0, .L4152+48 ldr r1, [r3, #4] str r1, [sp] ldr r1, [r3, #8] @@ -24863,32 +24914,32 @@ zftl_debug_proc_write: ldr r2, [r4, #36] ldr r3, [r3] bl printk - ldrb r3, [r6, #2772] @ zero_extendqisi2 - ldr r0, .L4144+72 + ldrb r3, [r6, #-2538] @ zero_extendqisi2 + ldr r0, .L4152+76 mov r2, #4 ldr r1, [r4, #4] mov r3, r3, asl #7 bl rknand_print_hex - ldrb r3, [r6, #2772] @ zero_extendqisi2 - ldr r0, .L4144+76 + ldrb r3, [r6, #-2538] @ zero_extendqisi2 + ldr r0, .L4152+80 mov r2, #4 ldr r1, [r4, #12] mov r3, r3, asl #1 -.L4143: bl rknand_print_hex mov r0, r4 +.L4151: bl zbuf_free - b .L4124 -.L4131: + b .L4132 +.L4139: mov r0, r4 - ldr r1, .L4144+80 + ldr r1, .L4152+84 mov r2, #8 bl memcmp subs r6, r0, #0 - bne .L4132 + bne .L4140 add r4, sp, #120 add r1, sp, #48 - ldr r0, .L4144+32 + ldr r0, .L4152+36 str r1, [r4, #-84]! bl printk mov r1, r4 @@ -24898,36 +24949,36 @@ zftl_debug_proc_write: str r0, [sp, #32] uxth r0, r0 bl ftl_sblk_dump - b .L4124 -.L4132: + b .L4132 +.L4140: mov r0, r4 - ldr r1, .L4144+84 + ldr r1, .L4152+88 mov r2, #10 bl memcmp cmp r0, #0 - bne .L4133 + bne .L4141 add r4, sp, #120 add r1, sp, #50 - ldr r0, .L4144+32 + ldr r0, .L4152+36 str r1, [r4, #-84]! bl printk mov r1, r4 ldr r0, [sp, #36] bl rk_simple_strtoull.constprop.34 - ldr r3, .L4144+88 + ldr r3, .L4152+92 str r0, [sp, #32] str r0, [r3] - b .L4124 -.L4133: + b .L4132 +.L4141: mov r0, r4 - ldr r1, .L4144+92 + ldr r1, .L4152+96 mov r2, #8 bl memcmp subs r6, r0, #0 - bne .L4134 + bne .L4142 add r4, sp, #120 add r1, sp, #48 - ldr r0, .L4144+32 + ldr r0, .L4152+36 str r1, [r4, #-84]! bl printk mov r1, r4 @@ -24937,46 +24988,46 @@ zftl_debug_proc_write: bl lpa_hash_get_ppa cmn r0, #1 str r0, [sp, #32] - bne .L4135 + bne .L4143 mov r0, r4 add r1, sp, #32 mov r2, r6 bl pm_log2phys -.L4135: +.L4143: mov r1, r4 ldr r2, [sp, #32] - ldr r0, .L4144+96 + ldr r0, .L4152+100 bl printk - b .L4124 -.L4134: - ldr r0, .L4144+100 + b .L4132 +.L4142: + ldr r0, .L4152+104 bl printk - ldr r0, .L4144+104 + ldr r0, .L4152+108 bl printk - ldr r0, .L4144+108 + ldr r0, .L4152+112 bl printk - ldr r0, .L4144+112 + ldr r0, .L4152+116 bl printk - ldr r0, .L4144+116 + ldr r0, .L4152+120 bl printk - ldr r0, .L4144+120 + ldr r0, .L4152+124 bl printk - ldr r0, .L4144+124 + ldr r0, .L4152+128 bl printk - ldr r0, .L4144+128 + ldr r0, .L4152+132 bl printk - ldr r0, .L4144+132 + ldr r0, .L4152+136 bl printk -.L4124: +.L4132: bl rknand_device_unlock mov r0, r5 -.L4119: +.L4127: add sp, sp, #124 @ sp needed - ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc} -.L4145: + ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} +.L4153: .align 2 -.L4144: +.L4152: .word .LC265 .word .LC266 .word .LC267 @@ -24985,6 +25036,7 @@ zftl_debug_proc_write: .word .LANCHOR3 .word .LC269 .word .LC270 + .word .LANCHOR3-2524 .word .LC271 .word .LC272 .word .LC273 @@ -25020,92 +25072,93 @@ ftl_update_l2p_map: .fnstart @ args = 0, pretend = 0, frame = 16 @ frame_needed = 0, uses_anonymous_args = 0 + ldr r3, .L4185 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - mov r6, r0 - ldr r5, .L4177 + sub r2, r3, #3088 + ldrb r7, [r0, #9] @ zero_extendqisi2 .pad #20 sub sp, sp, #20 - ldrb r7, [r0, #9] @ zero_extendqisi2 - sub r3, r5, #3088 + ldrh r2, [r2, #-8] + mov r6, r0 ldrh r4, [r0, #12] - ldrh r3, [r3, #-8] - mul r7, r7, r3 - ldr r3, [r5, #-2548] - add r4, r3, r4, asl #2 - sub r3, r7, #-1073741823 - ldr r3, [r4, r3, asl #2] - cmn r3, #1 - beq .L4147 - ldr r1, .L4177+4 + ldr r5, [r3, #-2548] + mul r7, r7, r2 + add r4, r5, r4, asl #2 + str r3, [sp] + sub r2, r7, #-1073741823 + ldr r2, [r4, r2, asl #2] + cmn r2, #1 + beq .L4155 + ldr r1, .L4185+4 movw r2, #1998 - ldr r0, .L4177+8 + ldr r0, .L4185+8 bl printk bl dump_stack -.L4147: +.L4155: mov r5, #0 sub r4, r4, #4 mov r9, r5 -.L4148: +.L4156: cmp r9, r7 - beq .L4176 + beq .L4184 ldr r8, [r4, #4]! cmn r8, #1 - beq .L4149 - ldr r3, .L4177+12 + beq .L4157 + ldr r3, [sp] mov r0, r8 - ldrb r1, [r3, #2772] @ zero_extendqisi2 + ldrb r1, [r3, #-2538] @ zero_extendqisi2 mov r1, r1, asl #7 bl __aeabi_uidiv - ldr r3, .L4177+16 + ldr r3, .L4185+12 ldr r3, [r3] tst r3, #4096 uxth fp, r0 - beq .L4150 - ldr r0, .L4177+20 + beq .L4158 + ldr r0, .L4185+16 mov r1, fp mov r2, r8 mov r3, r9 bl printk -.L4150: +.L4158: mov r8, r4 mov r10, r9 -.L4153: +.L4161: ldr r0, [r8] cmn r0, #1 - beq .L4151 - ldr r3, .L4177+12 - ldrb r1, [r3, #2772] @ zero_extendqisi2 + beq .L4159 + ldr r3, [sp] + ldrb r1, [r3, #-2538] @ zero_extendqisi2 mov r1, r1, asl #7 bl __aeabi_uidiv uxth r0, r0 cmp r0, fp - bne .L4151 + bne .L4159 ldrb r3, [r6, #9] @ zero_extendqisi2 mov r0, r10 mov r1, r3 str r3, [sp, #4] bl __aeabi_idiv - ldr r2, .L4177+24 + ldr r2, .L4185+20 ldrh r2, [r2] ldr r3, [sp, #4] mls r3, r3, r0, r10 add r3, r6, r3, asl #1 ldrh r3, [r3, #16] mla r2, r2, r3, r0 - ldr r0, .L4177+28 + ldr r0, .L4185+24 str r2, [sp, #12] ldr r1, [r8] bl pm_ppa_update_check cmp r0, #0 - beq .L4152 - ldr r3, .L4177 + beq .L4160 + ldr r3, .L4185 mov r2, #4 - ldr r0, .L4177+32 + ldr r0, .L4185+28 ldr r1, [r3, #-2548] mov r3, r7 bl rknand_print_hex -.L4152: +.L4160: add r5, r5, #1 ldr r0, [r8] add r1, sp, #12 @@ -25114,47 +25167,47 @@ ftl_update_l2p_map: bl pm_log2phys mvn r3, #0 str r3, [r8] -.L4151: +.L4159: add r10, r10, #1 add r8, r8, #4 cmp r10, r7 - bne .L4153 -.L4149: + bne .L4161 +.L4157: add r9, r9, #1 - b .L4148 -.L4176: - ldr r3, .L4177+16 - ldr r4, .L4177+12 + b .L4156 +.L4184: + ldr r3, .L4185+12 + ldr r4, .L4185+32 ldr r3, [r3] tst r3, #4096 - beq .L4155 + beq .L4163 ldrh r1, [r6] mov r2, r5 - ldr ip, [r4, #1088] - ldr r0, .L4177+36 + ldr ip, [r4, #1092] + ldr r0, .L4185+36 mov r3, r1, asl #1 ldrh r3, [ip, r3] bl printk -.L4155: +.L4163: ldrh r3, [r6] - ldr r2, [r4, #1088] + ldr r2, [r4, #1092] mov r3, r3, asl #1 strh r5, [r2, r3] @ movhi add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L4178: +.L4186: .align 2 -.L4177: +.L4185: .word .LANCHOR3 - .word .LANCHOR1+2696 + .word .LANCHOR1+2576 .word .LC0 - .word .LANCHOR0 .word .LANCHOR2 .word .LC292 .word .LANCHOR3-3066 .word .LC293 .word .LC294 + .word .LANCHOR0 .word .LC295 .fnend .size ftl_update_l2p_map, .-ftl_update_l2p_map @@ -25174,19 +25227,19 @@ ftl_alloc_new_data_sblk: ldrh r0, [r6] movw r3, #65535 cmp r0, r3 - beq .L4180 + beq .L4188 bl zftl_insert_data_list -.L4180: - ldr r4, .L4188 +.L4188: + ldr r4, .L4196 mov r0, r6 - ldr r1, [r4, #1092] + ldr r1, [r4, #1096] add r1, r1, #16 cmp r1, r6 movw r6, #65535 moveq r1, #2 movne r1, #3 bl ftl_open_sblk_init - ldr r3, [r4, #1092] + ldr r3, [r4, #1096] cmp r5, r6 ldr r3, [r3, #560] rsb r3, r5, r3 @@ -25194,27 +25247,27 @@ ftl_alloc_new_data_sblk: mov r3, r3, lsr #5 moveq r3, #0 cmp r3, #0 - beq .L4182 + beq .L4190 mov r1, r5 - ldr r0, .L4188+4 + ldr r0, .L4196+4 bl printk - ldr r3, [r4, #1092] + ldr r3, [r4, #1096] ldr r0, [r3, #564] bl gc_mark_bad_ppa - ldr r3, [r4, #1092] + ldr r3, [r4, #1096] mvn r2, #0 str r6, [r3, #560] str r2, [r3, #564] -.L4182: +.L4190: bl ftl_ext_info_flush mov r0, #0 bl ftl_info_flush bl lpa_rebuild_hash mov r0, #0 ldmfd sp!, {r4, r5, r6, pc} -.L4189: +.L4197: .align 2 -.L4188: +.L4196: .word .LANCHOR0 .word .LC296 .fnend @@ -25230,20 +25283,21 @@ ftl_write_commit: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #36 sub sp, sp, #36 - ldr r7, .L4258 - mov r8, r7 -.L4191: + ldr r7, .L4266 + mov r9, r7 +.L4199: ldrb r2, [r7, #2800] @ zero_extendqisi2 cmp r2, #0 - beq .L4193 + beq .L4201 ldrb r3, [r7, #2824] @ zero_extendqisi2 sub r2, r2, #1 strb r2, [r7, #2800] + ldr r10, .L4266+4 str r3, [sp, #16] mov r3, #48 ldr r1, [sp, #16] mul r3, r3, r1 - ldr r1, .L4258+4 + ldr r1, .L4266+4 add r1, r1, r3 add r3, r7, r3 str r1, [sp, #20] @@ -25252,25 +25306,25 @@ ftl_write_commit: ldr r3, [r7, #2784] cmp r2, r3 strb r1, [r7, #2824] - bcc .L4194 - ldr r1, .L4258+8 - movw r2, #606 - ldr r0, .L4258+12 + bcc .L4202 + ldr r1, .L4266+8 + movw r2, #607 + ldr r0, .L4266+12 bl printk bl dump_stack -.L4194: +.L4202: ldr r2, [sp, #16] mov r3, #48 - ldr r1, [r8, #2784] - mla r2, r3, r2, r8 - ldr r9, [r2, #1256] - cmp r9, r1 - bcc .L4195 + ldr r1, [r9, #2784] + mla r2, r3, r2, r9 + ldr r8, [r2, #1256] + cmp r8, r1 + bcc .L4203 ldr r0, [sp, #20] bl zbuf_free mvn r0, #0 - b .L4254 -.L4195: + b .L4262 +.L4203: ldr r1, [r2, #1248] ldr fp, [r2, #1240] ldrb r5, [r2, #1277] @ zero_extendqisi2 @@ -25279,21 +25333,19 @@ ftl_write_commit: str r2, [sp, #12] ldrb r2, [r7, #2801] @ zero_extendqisi2 cmp r2, #0 - beq .L4197 - ldr r2, .L4258+16 - ldrb r4, [r2, #-96] @ zero_extendqisi2 - ldr r2, .L4258+4 - mla r4, r3, r4, r2 -.L4198: + beq .L4205 + ldr r6, .L4266+16 + ldrb r4, [r6, #-80] @ zero_extendqisi2 + mla r4, r3, r4, r10 +.L4206: ldrb r2, [r4] @ zero_extendqisi2 cmp r2, #255 - ldrne r1, .L4258+4 - mlane r4, r3, r2, r1 - bne .L4198 -.L4256: + mlane r4, r3, r2, r10 + bne .L4206 +.L4264: ldr r3, [r4, #20] - cmp r3, r9 - bne .L4197 + cmp r3, r8 + bne .L4205 ldr r3, [sp, #12] mov r1, r5, asl #9 ldr r0, [r4, #4] @@ -25301,7 +25353,7 @@ ftl_write_commit: add r0, r0, r1 add r1, fp, r1 bl ftl_memcpy - ldrb r3, [r8, #2772] @ zero_extendqisi2 + ldrb r3, [r6, #-2538] @ zero_extendqisi2 ldr r1, [r4, #12] mov r0, #2 sub r3, r3, #2 @@ -25311,29 +25363,29 @@ ftl_write_commit: bl ftl_debug_info_fill ldr r0, [sp, #20] bl zbuf_free - b .L4191 -.L4197: - mov r0, r9 + b .L4199 +.L4205: + mov r0, r8 bl lpa_hash_get_ppa cmn r0, #1 str r0, [sp, #28] - bne .L4201 - mov r0, r9 + bne .L4209 + mov r0, r8 add r1, sp, #28 mov r2, #0 bl pm_log2phys -.L4201: - ldr r6, [r8, #1092] +.L4209: + ldr r6, [r9, #1096] mov r1, #0 - ldr r3, .L4258+4 + ldr r3, .L4266+4 mov r4, r1 ldr ip, [sp, #28] add r6, r6, #16 add r0, r3, #1536 -.L4203: +.L4211: ldr r2, [r3, #20] - cmp r2, r9 - bne .L4202 + cmp r2, r8 + bne .L4210 ldrb r2, [r3, #2] @ zero_extendqisi2 tst r2, #8 bicne r2, r2, #8 @@ -25341,67 +25393,70 @@ ftl_write_commit: ldrne r4, [r3, #4] movne r1, #1 ldrne ip, [r3, #24] -.L4202: +.L4210: add r3, r3, #48 cmp r3, r0 - bne .L4203 - ldrb r3, [r8, #2772] @ zero_extendqisi2 + bne .L4211 + ldr r3, .L4266+16 cmp r1, #0 ldr r2, [sp, #12] strne ip, [sp, #28] + ldrb r3, [r3, #-2538] @ zero_extendqisi2 cmp r2, r3 - bcs .L4230 + bcs .L4238 cmp r4, #0 - beq .L4206 + beq .L4214 cmp r5, #0 - beq .L4207 + beq .L4215 mov r0, fp mov r1, r4 mov r2, r5, asl #9 bl ftl_memcpy - ldr r6, [r7, #1092] + ldr r6, [r9, #1096] add r6, r6, #48 -.L4207: +.L4215: ldr r3, [sp, #12] - ldrb r10, [r8, #2772] @ zero_extendqisi2 add r2, r5, r3 + ldr r3, .L4266+16 + ldrb r10, [r3, #-2538] @ zero_extendqisi2 cmp r2, r10 - ldrcs r6, [r7, #1092] + ldrcs r6, [r9, #1096] addcs r6, r6, #16 - bcs .L4230 + bcs .L4238 mov r1, r2, asl #9 rsb r2, r2, r10 add r0, fp, r1 add r1, r4, r1 mov r2, r2, asl #9 bl ftl_memcpy - b .L4230 -.L4206: + b .L4238 +.L4214: ldr r3, [sp, #28] cmn r3, #1 - beq .L4209 + beq .L4217 mov r0, #1 bl buf_alloc mov r1, #1 ldr r3, [sp, #28] mov r4, r0 - str r9, [r0, #20] + str r8, [r0, #20] str r3, [r0, #24] bl sblk_read_page ldr r3, [r4, #12] ldr r2, [r3, #4] ldr r10, [r3, #12] - cmp r2, r9 + cmp r2, r8 add r10, r10, #1 - bne .L4210 + bne .L4218 ldr r2, [r4, #36] cmn r2, #1 - bne .L4211 -.L4210: - ldr ip, [r4, #24] + bne .L4219 +.L4218: + ldr lr, .L4266+16 mvn r0, #0 - ldrb r2, [r8, #1189] @ zero_extendqisi2 - ldrb lr, [r8, #2772] @ zero_extendqisi2 + ldr ip, [r4, #24] + ldrb r2, [r9, #1153] @ zero_extendqisi2 + ldrb lr, [lr, #-2538] @ zero_extendqisi2 rsb r1, r2, #24 mvn r2, r0, asl r2 and r0, r2, ip, lsr r1 @@ -25411,17 +25466,17 @@ ftl_write_commit: ldr r2, [r4, #4] bl flash_read_page_en str r0, [r4, #36] -.L4211: +.L4219: ldr r3, [r4, #12] ldr r3, [r3, #4] - cmp r3, r9 - bne .L4212 + cmp r3, r8 + bne .L4220 ldr r3, [r4, #36] cmn r3, #1 - bne .L4213 -.L4212: - ldr r2, [r7, #1092] - ldr r0, .L4258+20 + bne .L4221 +.L4220: + ldr r2, [r7, #1096] + ldr r0, .L4266+20 ldr r3, [r2, #552] add r3, r3, #1 str r3, [r2, #552] @@ -25429,99 +25484,100 @@ ftl_write_commit: ldrb r1, [r4, #1] @ zero_extendqisi2 ldr r2, [sp, #28] str r3, [sp] - mov r3, r9 + mov r3, r8 bl printk mov r2, #4 - ldr r0, .L4258+24 + ldr r0, .L4266+24 mov r3, r2 ldr r1, [r4, #12] bl rknand_print_hex -.L4213: +.L4221: ldr r3, [r4, #12] ldr r3, [r3, #4] - cmp r3, r9 - bne .L4214 + cmp r3, r8 + bne .L4222 ldr r3, [r4, #36] cmn r3, #1 - bne .L4215 -.L4214: - ldr r1, .L4258+8 - movw r2, #698 - ldr r0, .L4258+12 + bne .L4223 +.L4222: + ldr r1, .L4266+8 + movw r2, #699 + ldr r0, .L4266+12 bl printk bl dump_stack -.L4215: +.L4223: cmp r5, #0 - beq .L4216 + beq .L4224 ldr r3, [sp, #28] mov r2, r5, asl #9 cmn r3, #1 - beq .L4217 + beq .L4225 mov r0, fp ldr r1, [r4, #4] bl ftl_memcpy - b .L4218 -.L4209: + b .L4226 +.L4217: cmp r5, #0 moveq r4, r5 moveq r10, r5 - beq .L4216 + beq .L4224 mov r2, r5, asl #9 mov r10, r4 -.L4217: +.L4225: mov r0, fp mov r1, #0 bl ftl_memset -.L4218: - ldr r6, [r7, #1092] +.L4226: + ldr r6, [r7, #1096] add r6, r6, #48 -.L4216: +.L4224: ldr r3, [sp, #12] - ldrb r2, [r7, #2772] @ zero_extendqisi2 add r5, r5, r3 + ldr r3, .L4266+16 + ldrb r2, [r3, #-2538] @ zero_extendqisi2 cmp r5, r2 - bcc .L4219 - ldrhi r6, [r7, #1092] + bcc .L4227 + ldrhi r6, [r7, #1096] addhi r6, r6, #16 - b .L4220 -.L4219: + b .L4228 +.L4227: ldr r3, [sp, #28] rsb r2, r5, r2 mov r5, r5, asl #9 cmn r3, #1 mov r2, r2, asl #9 - beq .L4221 + beq .L4229 ldr r1, [r4, #4] add r0, fp, r5 add r1, r1, r5 bl ftl_memcpy - b .L4220 -.L4221: + b .L4228 +.L4229: add r0, fp, r5 mov r1, #0 bl ftl_memset -.L4220: +.L4228: cmp r4, #0 - beq .L4205 + beq .L4213 ldrb r3, [r4, #2] @ zero_extendqisi2 mov r1, r4 - ldr r0, .L4258+28 + ldr r0, .L4266+28 bic r3, r3, #8 strb r3, [r4, #2] bl buf_remove_buf mov r0, r4 bl zbuf_free - b .L4205 -.L4230: + b .L4213 +.L4238: mov r10, #0 -.L4205: +.L4213: ldrh r3, [r6, #6] cmp r3, #0 - bne .L4222 + bne .L4230 bl ftl_flush mov r0, r6 bl ftl_alloc_new_data_sblk -.L4222: +.L4230: mov r0, r6 mov r4, #48 bl ftl_get_new_free_page @@ -25530,19 +25586,21 @@ ftl_write_commit: mov r0, #2 mul r4, r4, r3 ldr r3, [sp, #8] - add r5, r8, r4 + add r5, r9, r4 mov r1, r3 ldr r2, [r5, #1252] str r10, [r3, #12] - stmia r3, {r2, r9} + stmia r3, {r2, r8} ldr r2, [sp, #28] - ldrb ip, [r8, #2772] @ zero_extendqisi2 str r2, [r3, #8] mov r2, #0 + ldr r3, .L4266+16 str r2, [r1, #16]! - sub r2, ip, #2 + ldrb r2, [r3, #-2538] @ zero_extendqisi2 + sub r2, r2, #2 add r2, fp, r2, asl #9 bl ftl_debug_info_fill + ldr r0, .L4266+32 ldr r3, [sp, #12] ldr r1, [sp, #20] str r3, [r5, #1260] @@ -25553,83 +25611,84 @@ ftl_write_commit: ldrb r3, [r5, #1238] @ zero_extendqisi2 orr r3, r3, #10 strb r3, [r5, #1238] - ldr r3, .L4258+4 - ldrh r10, [r6, #10] - ldrh r9, [r6, #12] + ldr r3, .L4266+4 + ldrh fp, [r6, #10] + ldrh r10, [r6, #12] add r4, r3, r4 - add r9, r10, r9 - sub r9, r9, #1 - strh r9, [r4, #32] @ movhi - ldr r4, .L4258+16 - sub r0, r4, #96 + add r10, fp, r10 + sub r8, r10, #1 + strh r8, [r4, #32] @ movhi bl buf_add_tail - ldrb r3, [r8, #2801] @ zero_extendqisi2 + ldrb r3, [r9, #2801] @ zero_extendqisi2 add r3, r3, #1 - strb r3, [r8, #2801] + strb r3, [r9, #2801] bl timer_get_time - ldrb r3, [r8, #2801] @ zero_extendqisi2 + ldr r3, .L4266+16 ldrh r2, [r6, #6] + str r0, [r3, #-76] + ldrb r3, [r9, #2801] @ zero_extendqisi2 cmp r3, #2 - str r0, [r4, #-92] - bhi .L4223 + bhi .L4231 cmp r2, #1 - bne .L4193 -.L4223: + bne .L4201 +.L4231: ldrb r1, [r6, #5] @ zero_extendqisi2 - mov lr, #48 - ldrb r0, [r4, #-96] @ zero_extendqisi2 + mov r4, #48 + ldr r0, .L4266+16 cmp r1, #0 mov r1, #0 + ldrb lr, [r0, #-80] @ zero_extendqisi2 moveq ip, #1 movne ip, #2 cmp r2, #1 - mov r2, r0 + mov r2, lr moveq ip, r3 -.L4227: +.L4235: cmp r1, ip - mlane r2, lr, r2, r7 + mlane r2, r4, r2, r7 addne r1, r1, #1 ldrneb r2, [r2, #1236] @ zero_extendqisi2 - bne .L4227 -.L4257: - strb r2, [r4, #-96] + bne .L4235 +.L4265: uxtb r1, r1 - ldr r2, .L4258+4 + strb r2, [r0, #-80] rsb r3, r1, r3 - strb r3, [r8, #2801] - mov r3, #48 - mla r0, r3, r0, r2 + strb r3, [r9, #2801] + ldr r3, .L4266+4 + mov r0, #48 + mla r0, r0, lr, r3 bl sblk_prog_page ldrh r3, [r6, #6] cmp r3, #1 - bne .L4193 + bne .L4201 bl sblk_wait_write_queue_completed bl ftl_write_completed mov r0, r6 bl ftl_write_last_log_page mov r0, r6 bl ftl_alloc_new_data_sblk -.L4193: +.L4201: ldrb r4, [r7, #2800] @ zero_extendqisi2 cmp r4, #0 - bne .L4191 + bne .L4199 bl ftl_write_completed mov r0, r4 -.L4254: +.L4262: add sp, sp, #36 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L4259: +.L4267: .align 2 -.L4258: +.L4266: .word .LANCHOR0 .word .LANCHOR0+1236 - .word .LANCHOR1+2716 + .word .LANCHOR1+2596 .word .LC0 .word .LANCHOR3 .word .LC297 .word .LC241 - .word .LANCHOR0+2776 + .word .LANCHOR0+2775 + .word .LANCHOR3-80 .fnend .size ftl_write_commit, .-ftl_write_commit .align 2 @@ -25637,23 +25696,23 @@ ftl_write_commit: .type gc_do_copy_back, %function gc_do_copy_back: .fnstart - @ args = 0, pretend = 0, frame = 64 + @ args = 0, pretend = 0, frame = 56 @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - .pad #76 - sub sp, sp, #76 - ldr r8, .L4408 - ldr r5, .L4408+4 + .pad #68 + sub sp, sp, #68 + ldr r8, .L4417 + ldr r5, .L4417+4 ldrb r0, [r8, #-3115] @ zero_extendqisi2 - ldr r3, [r5, #1092] + ldr r3, [r5, #1096] cmp r0, #0 - str r3, [sp, #12] - bne .L4261 + str r3, [sp, #8] + bne .L4269 bl buf_alloc subs r4, r0, #0 - beq .L4260 - ldr r7, .L4408+8 + beq .L4268 + ldr r7, .L4417+8 ldrh r6, [r7, #22] mov r0, r6 add r6, r6, #1 @@ -25661,61 +25720,61 @@ gc_do_copy_back: mov r1, #1 strh r6, [r7, #22] @ movhi str r0, [r4, #24] - mov r9, r0 + mov r10, r0 mov r0, r4 bl sblk_read_page ldr r3, [r4, #36] cmn r3, #1 cmpne r3, #512 - bne .L4263 - ldr r1, .L4408+12 + bne .L4271 + ldr r1, .L4417+12 movw r2, #1032 - ldr r0, .L4408+16 + ldr r0, .L4417+16 bl printk bl dump_stack -.L4263: +.L4271: ldr r3, [r4, #12] ldr r6, [r3, #4] mov r0, r6 bl lpa_hash_get_ppa cmn r0, #1 - str r0, [sp, #48] - bne .L4264 + str r0, [sp, #40] + bne .L4272 mov r0, r6 - add r1, sp, #48 + add r1, sp, #40 mov r2, #0 bl pm_log2phys -.L4264: - ldr r8, [sp, #48] - cmp r8, r9 - bne .L4265 - ldr r1, .L4408+20 +.L4272: + ldr r9, [sp, #40] + cmp r9, r10 + bne .L4273 + ldr r1, .L4417+20 mov r3, #0 -.L4268: +.L4276: add r2, r1, r3 ldr r0, [r2, #20] cmp r0, r6 - bne .L4266 + bne .L4274 ldrb r2, [r2, #2] @ zero_extendqisi2 tst r2, #2 - beq .L4266 + beq .L4274 mov r0, r4 bl zbuf_free - ldr r3, .L4408+24 + ldr r3, .L4417+24 ldr r3, [r3] tst r3, #256 - beq .L4260 + beq .L4268 mov r1, r6 - mov r2, r8 + mov r2, r9 ldrh r3, [r7, #22] - ldr r0, .L4408+28 + ldr r0, .L4417+28 bl printk - b .L4260 -.L4266: + b .L4268 +.L4274: add r3, r3, #48 cmp r3, #1536 - bne .L4268 - ldrb r3, [r5, #2772] @ zero_extendqisi2 + bne .L4276 + ldrb r3, [r8, #-2538] @ zero_extendqisi2 mov r2, #0 str r6, [r4, #20] strb r2, [r4, #41] @@ -25724,21 +25783,21 @@ gc_do_copy_back: ldr r1, [r3] str r1, [r4, #16] str r2, [r3, #16] - ldr r3, .L4408+24 + ldr r3, .L4417+24 ldr r3, [r3] tst r3, #256 - beq .L4269 + beq .L4277 mov r0, r6 bl lpa_hash_get_ppa mov r1, r6 - str r8, [sp] + str r9, [sp] mov r3, r0 ldrh r2, [r7, #22] - ldr r0, .L4408+32 + ldr r0, .L4417+32 str r2, [sp, #4] - mov r2, r8 + mov r2, r9 bl printk -.L4269: +.L4277: mov r0, r4 bl ftl_gc_write_buf bl ftl_write_commit @@ -25749,71 +25808,71 @@ gc_do_copy_back: ldrh r3, [r7, #24] add r3, r3, #1 strh r3, [r7, #24] @ movhi - b .L4260 -.L4265: - ldr r3, .L4408+24 + b .L4268 +.L4273: + ldr r3, .L4417+24 ldr r3, [r3] tst r3, #256 - beq .L4271 + beq .L4279 mov r0, r6 bl lpa_hash_get_ppa mov r1, r6 - str r9, [sp] + str r10, [sp] mov r3, r0 ldrh r2, [r7, #22] - ldr r0, .L4408+32 + ldr r0, .L4417+32 str r2, [sp, #4] - mov r2, r8 + mov r2, r9 bl printk -.L4271: +.L4279: mov r0, r4 bl zbuf_free - b .L4260 -.L4261: - ldr r3, [sp, #12] + b .L4268 +.L4269: + ldr r3, [sp, #8] ldrb r9, [r3, #89] @ zero_extendqisi2 ldrb r3, [r8, #-3123] @ zero_extendqisi2 uxth fp, r9 cmp r3, fp movhi r6, #1 - bhi .L4273 + bhi .L4281 cmp fp, #2 movcc r6, fp movcs r6, #2 -.L4273: +.L4281: ldrb r4, [r8, #-3124] @ zero_extendqisi2 - ldr r10, .L4408 + ldr r10, .L4417 cmp r4, #3 - ldr r3, .L4408+8 - bne .L4274 - ldrb r2, [r5, #1196] @ zero_extendqisi2 + ldr r3, .L4417+8 + bne .L4282 + ldrb r2, [r5, #1160] @ zero_extendqisi2 cmp r2, #0 - beq .L4275 + beq .L4283 movw r2, #2102 mov r1, r9 ldrh r7, [r3, r2] mov r0, r7 bl __aeabi_idiv - ldrb r3, [r10, #-2536] @ zero_extendqisi2 + ldrb r3, [r10, #-2534] @ zero_extendqisi2 cmp r3, #0 uxth r5, r0 - beq .L4276 - ldr r3, .L4408+36 + beq .L4284 + ldr r3, .L4417+36 mov r0, r0, asl #1 ldrh r3, [r3, r0] cmp r3, #0 moveq r4, #1 movne r4, #2 - b .L4277 -.L4276: - ldrb r3, [r10, #541] @ zero_extendqisi2 + b .L4285 +.L4284: + ldrb r3, [r10, #-15] @ zero_extendqisi2 cmp r3, #0 moveq r4, #1 - beq .L4277 + beq .L4285 sub r3, r5, #62 cmp r3, #2160 movcs r4, #2 - bcs .L4277 + bcs .L4285 mov r1, r4 mov r0, r5 bl __aeabi_uidivmod @@ -25821,22 +25880,22 @@ gc_do_copy_back: cmp r1, #0 movne r4, #1 moveq r4, #2 -.L4277: +.L4285: smulbb r1, r5, fp rsb r1, r1, r7 uxth r3, r1 - str r3, [sp, #16] - b .L4280 -.L4275: + str r3, [sp, #12] + b .L4288 +.L4283: ldrb r2, [r10, #-3116] @ zero_extendqisi2 cmp r2, #0 movw r2, #2102 ldrh r7, [r3, r2] mov r0, r7 - beq .L4279 + beq .L4287 add r1, r9, r9, asl #1 bl __aeabi_idiv - ldr r2, .L4408+40 + ldr r2, .L4417+40 mul r9, r9, r0 uxth r5, r0 sub r9, r9, r9, asl #2 @@ -25844,239 +25903,239 @@ gc_do_copy_back: smull r2, r3, r1, r2 sub r1, r3, r1, asr #31 uxth r3, r1 - str r3, [sp, #16] - ldr r3, .L4408+4 - ldrb r3, [r3, #1197] @ zero_extendqisi2 + str r3, [sp, #12] + ldr r3, .L4417+4 + ldrb r3, [r3, #1161] @ zero_extendqisi2 cmp r3, #0 addne r5, r5, r5, asl #1 uxthne r5, r5 - b .L4280 -.L4279: + b .L4288 +.L4287: mov r1, r9 bl __aeabi_idiv - ldr r2, .L4408+44 + ldr r2, .L4417+44 smulbb r1, r0, fp mov r3, r0, asl #1 ldrh r2, [r2, r3] rsb r1, r1, r7 and r3, r2, #7 - str r3, [sp, #20] + str r3, [sp, #16] mov r5, r2, lsr #3 uxth r3, r1 - str r3, [sp, #16] + str r3, [sp, #12] mla r9, r9, r5, r3 - ldr r3, [sp, #20] + ldr r3, [sp, #16] cmp r3, #1 add r9, r9, r9, asl #1 uxth r7, r9 - bne .L4281 - b .L4280 -.L4274: + bne .L4289 + b .L4288 +.L4282: ldrb r2, [r10, #-3122] @ zero_extendqisi2 mov r1, r9 cmp r2, #0 movw r2, #2102 ldrh r7, [r3, r2] mov r0, r7 - bne .L4282 + bne .L4290 bl __aeabi_idiv mov r4, #1 uxth r5, r0 smulbb r1, r5, fp rsb r1, r1, r7 uxth r3, r1 - str r3, [sp, #16] - b .L4280 -.L4282: + str r3, [sp, #12] + b .L4288 +.L4290: bl __aeabi_idiv mov r4, #2 uxth r5, r0 smulbb r1, r5, fp rsb r1, r1, r7 uxth r3, r1 - str r3, [sp, #16] -.L4280: + str r3, [sp, #12] +.L4288: mul r3, r6, r4 - ldr r10, .L4408+36 + ldr r10, .L4417+36 mov r2, #0 - ldr ip, .L4408 + ldr ip, .L4417 add r10, r10, r5, asl #1 - ldr r1, .L4408+8 - str r3, [sp, #20] - b .L4283 -.L4403: + ldr r1, .L4417+8 + str r3, [sp, #16] + b .L4291 +.L4412: ldrh r0, [r10] cmp r0, r5 - bcs .L4341 + bcs .L4349 tst lr, #1 - beq .L4341 -.L4284: - ldr fp, [r8, #-168] + beq .L4349 +.L4292: + ldr fp, [r8, #-120] ldr r0, [fp, r3, asl #2] cmn r0, #1 - beq .L4402 -.L4287: + beq .L4411 +.L4295: add r2, r2, #1 -.L4283: - ldr r3, [sp, #20] +.L4291: + ldr r3, [sp, #16] uxth lr, r2 cmp lr, r3 - bge .L4341 - ldr r0, .L4408+48 + bge .L4349 + ldr r0, .L4417+48 add r3, r7, lr - ldr r9, [sp, #12] + ldr r9, [sp, #8] ldrh r0, [r0] ldrb r9, [r9, #89] @ zero_extendqisi2 mul r0, r9, r0 - ldrb r9, [r8, #545] @ zero_extendqisi2 + ldrb r9, [r8, #-11] @ zero_extendqisi2 rsb r0, r9, r0 cmp r3, r0 - blt .L4284 - ldrb r0, [ip, #-2536] @ zero_extendqisi2 + blt .L4292 + ldrb r0, [ip, #-2534] @ zero_extendqisi2 cmp r0, #0 - bne .L4403 -.L4341: + bne .L4412 +.L4349: mov r3, #1 - str r3, [sp, #20] -.L4281: + str r3, [sp, #16] +.L4289: rsb r1, r6, r6, asl #15 mul r3, r6, r4 mov r1, r1, asl #1 smulbb r1, r1, r4 - str r3, [sp, #24] + str r3, [sp, #20] add r1, r7, r1 uxth r3, r1 - ldr r1, .L4408+36 - str r3, [sp, #36] - mov r3, #0 - str r3, [sp, #28] - add r3, r1, r5, asl #1 + ldr r1, .L4417+36 str r3, [sp, #32] - b .L4286 -.L4402: + mov r3, #0 + str r3, [sp, #24] + add r3, r1, r5, asl #1 + str r3, [sp, #28] + b .L4294 +.L4411: ldrh r9, [r1, #22] ldrh r0, [r1, #20] cmp r0, r9 - bls .L4260 - ldrb r0, [ip, #-2536] @ zero_extendqisi2 + bls .L4268 + ldrb r0, [ip, #-2534] @ zero_extendqisi2 cmp r0, #0 - beq .L4288 + beq .L4296 ldrh r0, [r10] cmp r0, r5 - bcs .L4288 + bcs .L4296 tst lr, #1 ldrne r0, [fp, r0, asl #2] strne r0, [fp, r3, asl #2] - bne .L4287 -.L4288: + bne .L4295 +.L4296: mov r0, r9 - str r1, [sp, #36] - str ip, [sp, #32] + str r1, [sp, #32] + str ip, [sp, #28] add r9, r9, #1 - str r2, [sp, #28] - str r3, [sp, #24] + str r2, [sp, #24] + str r3, [sp, #20] bl gc_get_src_ppa_from_index - ldr r3, .L4408+8 + ldr r3, .L4417+8 strh r9, [r3, #22] @ movhi - ldr r3, [sp, #24] - ldr r1, [sp, #36] - ldr ip, [sp, #32] + ldr r3, [sp, #20] + ldr r1, [sp, #32] + ldr ip, [sp, #28] str r0, [fp, r3, asl #2] - ldr r2, [sp, #28] - b .L4287 -.L4312: + ldr r2, [sp, #24] + b .L4295 +.L4320: ldr r3, [fp, #-3120] add r10, r7, r9 ldrb r3, [r3, r10] @ zero_extendqisi2 cmp r3, #255 - beq .L4404 -.L4290: - ldr r1, .L4408 - add r2, sp, #72 + beq .L4413 +.L4298: + ldr r1, .L4417 + add r2, sp, #64 add r2, r2, r9, asl #2 - ldr r0, .L4408+20 - ldr ip, .L4408+4 + ldr r0, .L4417+20 + ldr ip, .L4417+4 ldr r3, [r1, #-3120] ldrb r8, [r3, r10] @ zero_extendqisi2 mov r3, #48 mul r3, r3, r8 add r0, r0, r3 str r0, [r2, #-24] - ldrb r2, [sp, #20] @ zero_extendqisi2 + ldrb r2, [sp, #16] @ zero_extendqisi2 add r3, ip, r3 strb r2, [r3, #1281] mov r2, #2 strh r2, [r0, #34] @ movhi ldrb r2, [r1, #-3124] @ zero_extendqisi2 cmp r2, #3 - bne .L4303 - ldrb r2, [ip, #1196] @ zero_extendqisi2 + bne .L4311 + ldrb r2, [ip, #1160] @ zero_extendqisi2 cmp r2, #0 - beq .L4304 - ldrb r1, [r1, #-2536] @ zero_extendqisi2 + beq .L4312 + ldrb r1, [r1, #-2534] @ zero_extendqisi2 and r2, r9, #1 add r3, r5, r2 cmp r1, #0 - beq .L4305 - ldr r1, [sp, #32] + beq .L4313 + ldr r1, [sp, #28] ldrh r1, [r1] cmp r1, r5 movcs r2, #0 andcc r2, r2, #1 cmp r2, #0 movne r3, r1 -.L4305: - ldr r2, .L4408+4 +.L4313: + ldr r2, .L4417+4 mov r1, r4 mov fp, #48 mov r0, r9 - str r3, [sp, #40] + str r3, [sp, #36] mla fp, fp, r8, r2 bl __aeabi_uidiv - ldr r1, .L4408+52 + ldr r1, .L4417+52 ldrh r1, [r1] - ldr r3, [sp, #16] - uxtah r0, r3, r0 ldr r3, [sp, #12] + uxtah r0, r3, r0 + ldr r3, [sp, #8] add r0, r3, r0, asl #1 - ldr r3, [sp, #40] + ldr r3, [sp, #36] ldrh r2, [r0, #96] mla r3, r1, r2, r3 orr r3, r3, #50331648 str r3, [fp, #1260] -.L4306: +.L4314: mov r3, #48 mul r8, r3, r8 - ldr r3, .L4408+4 + ldr r3, .L4417+4 add r3, r3, r8 ldr r1, [r3, #1260] - ldr r3, .L4408+20 + ldr r3, .L4417+20 add r8, r3, r8 - ldr r3, .L4408 + ldr r3, .L4417 ldrh r2, [r8, #32] - ldr r3, [r3, #-164] + ldr r3, [r3, #-116] str r1, [r3, r2, asl #2] -.L4331: - ldr r8, .L4408 - ldrb r3, [r8, #-2536] @ zero_extendqisi2 +.L4339: + ldr r8, .L4417 + ldrb r3, [r8, #-2534] @ zero_extendqisi2 cmp r3, #0 - bne .L4405 -.L4311: - ldr r3, [sp, #28] - add r3, r3, #1 - str r3, [sp, #28] -.L4286: - ldrh r9, [sp, #28] + bne .L4414 +.L4319: ldr r3, [sp, #24] - ldr fp, .L4408 + add r3, r3, #1 + str r3, [sp, #24] +.L4294: + ldrh r9, [sp, #24] + ldr r3, [sp, #20] + ldr fp, .L4417 cmp r9, r3 - blt .L4312 - b .L4406 -.L4404: + blt .L4320 + b .L4415 +.L4413: mov r0, #0 bl buf_alloc subs r8, r0, #0 - bne .L4291 + bne .L4299 bl sblk_wait_write_queue_completed bl ftl_write_completed bl gc_write_completed @@ -26084,195 +26143,185 @@ gc_do_copy_back: mov r0, r8 bl buf_alloc subs r8, r0, #0 - beq .L4260 -.L4291: + beq .L4268 +.L4299: ldrb r2, [r8, #1] @ zero_extendqisi2 ldr r3, [fp, #-3120] strb r2, [r3, r10] - ldr r2, .L4408+4 + ldr r2, .L4417+4 ldrb r3, [r2, #2835] @ zero_extendqisi2 add r3, r3, #1 strb r3, [r2, #2835] add r3, r9, r7 strh r3, [r8, #32] @ movhi - ldrb r3, [sp, #20] @ zero_extendqisi2 + ldrb r3, [sp, #16] @ zero_extendqisi2 strb r3, [r8, #45] - ldr r3, .L4408+48 + ldr r3, .L4417+48 ldrh r2, [r3] - ldr r3, [sp, #12] + ldr r3, [sp, #8] ldrb r3, [r3, #89] @ zero_extendqisi2 mul r3, r3, r2 - ldrb r2, [fp, #545] @ zero_extendqisi2 + ldrb r2, [fp, #-11] @ zero_extendqisi2 rsb r3, r2, r3 cmp r10, r3 - blt .L4292 - ldr r3, .L4408 - ldrb r3, [r3, #-2536] @ zero_extendqisi2 + blt .L4300 + ldr r3, .L4417 + ldrb r3, [r3, #-2534] @ zero_extendqisi2 cmp r3, #0 - beq .L4293 - ldr r3, [sp, #32] + beq .L4301 + ldr r3, [sp, #28] ldrh r3, [r3] cmp r3, r5 - bcs .L4293 + bcs .L4301 tst r9, #1 - bne .L4292 -.L4293: - ldr r3, .L4408 + bne .L4300 +.L4301: + ldr fp, .L4417 mvn r1, #0 - ldr fp, .L4408+56 - ldr r2, [r3, #-172] + ldr r2, [fp, #-124] str r1, [r2, r10, asl #2] - ldrb r2, [r3, #545] @ zero_extendqisi2 + ldrb r2, [fp, #-11] @ zero_extendqisi2 cmp r2, #2 - bne .L4294 - ldr r2, .L4408+48 - ldr ip, .L4408+60 - ldrh r0, [r2] - ldr r2, [sp, #12] - ldrb r2, [r2, #89] @ zero_extendqisi2 - mul r2, r2, r0 + bne .L4302 + ldr r2, .L4417+48 + ldr r3, [sp, #8] + ldrh r1, [r2] + ldrb r2, [r3, #89] @ zero_extendqisi2 + mul r2, r2, r1 sub r2, r2, #2 cmp r10, r2 - bne .L4295 - ldrh r2, [ip] - ldr r1, [r3, #-172] + ldrh r2, [fp, #-14] + bne .L4303 + ldr r1, [fp, #-124] ldr r0, [r8, #4] - str ip, [sp, #44] bl ftl_memcpy - ldr r3, .L4408+4 + ldrb r2, [fp, #-2538] @ zero_extendqisi2 mov r1, #0 ldr r0, [r8, #12] - ldrb r2, [r3, #2772] @ zero_extendqisi2 mov r2, r2, asl #1 - str r3, [sp, #40] bl ftl_memset ldr r2, [r8, #12] - str fp, [r2] + ldr r3, .L4417+56 + str r3, [r2] + ldr r3, [r8, #12] ldr r0, [r8, #4] - ldr fp, [r8, #12] - ldr ip, [sp, #44] - ldrh r1, [ip] + ldrh r1, [fp, #-14] + str r3, [sp, #36] bl js_hash - ldr r3, [sp, #40] - str r0, [fp, #4] - ldr r2, [r8, #12] - ldr r3, [r3, #1092] - ldr r3, [r3, #132] - str r3, [r2, #8] + ldr r2, .L4417+4 + ldr r2, [r2, #1096] + ldr r3, [sp, #36] + str r0, [r3, #4] + ldr r3, [r8, #12] + ldr r2, [r2, #132] + str r2, [r3, #8] mov r2, #0 ldr r3, [r8, #12] - b .L4398 -.L4295: - ldrb r2, [r3, #-3123] @ zero_extendqisi2 - ldrh r1, [ip] - ldr r3, [r3, #-172] - mul r0, r2, r0 - rsb ip, r1, r0, asl #2 - mov r1, r1, lsr #2 + b .L4406 +.L4303: + ldrb r0, [fp, #-3123] @ zero_extendqisi2 + mul r1, r0, r1 ldr r0, [r8, #4] + rsb ip, r2, r1, asl #2 + ldr r1, [fp, #-124] + mov r2, r2, lsr #2 + str ip, [sp, #36] + add r1, r1, r2, asl #2 mov r2, ip - add r1, r3, r1, asl #2 - str ip, [sp, #44] bl ftl_memcpy - ldr r3, .L4408+4 + ldrb r2, [fp, #-2538] @ zero_extendqisi2 mov r1, #0 ldr r0, [r8, #12] - ldrb r2, [r3, #2772] @ zero_extendqisi2 mov r2, r2, asl #1 - str r3, [sp, #40] bl ftl_memset - ldr r2, [r8, #12] - str fp, [r2] + ldr r3, [r8, #12] + ldr r2, .L4417+56 + str r2, [r3] ldr r0, [r8, #4] ldr fp, [r8, #12] - ldr ip, [sp, #44] + ldr ip, [sp, #36] mov r1, ip bl js_hash - ldr r3, [sp, #40] + ldr r2, .L4417+4 + ldr r2, [r2, #1096] str r0, [fp, #4] - ldr r2, [r8, #12] - ldr r3, [r3, #1092] - ldr r3, [r3, #132] - str r3, [r2, #8] + ldr r3, [r8, #12] + ldr r2, [r2, #132] + str r2, [r3, #8] mov r2, #1 ldr r3, [r8, #12] -.L4398: +.L4406: str r2, [r3, #12] - b .L4296 -.L4294: - ldr ip, .L4408+48 - ldrb r2, [r3, #-3123] @ zero_extendqisi2 + b .L4304 +.L4302: + ldr ip, .L4417+48 + ldrb r2, [fp, #-3123] @ zero_extendqisi2 ldr r0, [r8, #4] ldrh r1, [ip] - str ip, [sp, #44] - str r3, [sp, #40] + str ip, [sp, #36] mul r2, r2, r1 - ldr r1, [r3, #-172] + ldr r1, [fp, #-124] mov r2, r2, asl #2 bl ftl_memcpy - ldr r0, [r8, #4] - ldr ip, [sp, #44] - ldr r3, [sp, #40] + ldrb r2, [fp, #-3123] @ zero_extendqisi2 + ldrb r0, [fp, #-2538] @ zero_extendqisi2 + ldr ip, [sp, #36] ldrh r1, [ip] - ldrb r3, [r3, #-3123] @ zero_extendqisi2 - ldr ip, .L4408 - mul r3, r3, r1 - ldr r1, .L4408+4 - str ip, [sp, #44] - ldrb r1, [r1, #2772] @ zero_extendqisi2 - cmp r1, r3, asr #6 - mov r2, r3, asl #2 - ldrlt r1, .L4408+60 - mov r3, r2 - add r0, r0, r3 - ldrlth r1, [r1] - rsblt r2, r2, r1 - ldr r1, [ip, #-168] + mul r1, r2, r1 + cmp r0, r1, asr #6 + mov r2, r1, asl #2 + ldr r0, [r8, #4] + ldrlth r3, [fp, #-14] + mov r1, r2 + add r0, r0, r1 + rsblt r2, r2, r3 + ldr r3, .L4417 + ldr r1, [r3, #-120] + str r3, [sp, #36] bl ftl_memcpy - ldr r3, .L4408+4 mov r1, #0 ldr r0, [r8, #12] - ldrb r2, [r3, #2772] @ zero_extendqisi2 + ldr r3, [sp, #36] + ldrb r2, [r3, #-2538] @ zero_extendqisi2 mov r2, r2, asl #1 - str r3, [sp, #40] bl ftl_memset ldr r2, [r8, #12] - str fp, [r2] - ldr r2, .L4408+48 + ldr r3, .L4417+56 + str r3, [r2] + ldr r2, .L4417+48 ldr r0, [r8, #4] ldr fp, [r8, #12] ldrh r1, [r2] - ldr ip, [sp, #44] - ldrb r2, [ip, #-3123] @ zero_extendqisi2 - mul r1, r2, r1 + ldr r3, [sp, #36] + ldrb r3, [r3, #-3123] @ zero_extendqisi2 + mul r1, r3, r1 mov r1, r1, asl #2 bl js_hash - ldr r3, [sp, #40] + ldr r2, .L4417+4 + ldr r2, [r2, #1096] str r0, [fp, #4] - ldr r2, [r8, #12] - ldr r3, [r3, #1092] - ldr r3, [r3, #132] - str r3, [r2, #8] - b .L4296 -.L4292: - ldr fp, .L4408 + ldr r3, [r8, #12] + ldr r2, [r2, #132] + b .L4407 +.L4300: + ldr fp, .L4417 mov r0, r8 mov r1, #1 - ldr r3, [fp, #-168] + ldr r3, [fp, #-120] ldr r3, [r3, r10, asl #2] str r3, [r8, #24] bl sblk_read_page ldr r3, [r8, #36] cmn r3, #1 cmpne r3, #512 - bne .L4299 - ldr r3, .L4408+64 + bne .L4307 + ldr r3, .L4417+60 ldr r2, [r8, #24] ldrb r1, [fp, #-3130] @ zero_extendqisi2 ldrh r0, [r3] - ldr r3, .L4408+4 + ldr r3, .L4417+4 mov r2, r2, lsr r0 - ldrb r3, [r3, #1189] @ zero_extendqisi2 + ldrb r3, [r3, #1153] @ zero_extendqisi2 rsb r3, r3, #24 rsb r3, r0, r3 mvn r0, #0 @@ -26287,19 +26336,19 @@ gc_do_copy_back: ldreq r3, [r8, #12] mvneq r2, #0 streq r2, [r3, #4] -.L4299: +.L4307: ldr r3, [r8, #36] cmn r3, #1 cmpne r3, #512 - bne .L4301 - ldr r1, .L4408+12 + bne .L4309 + ldr r1, .L4417+12 movw r2, #1223 - ldr r0, .L4408+16 + ldr r0, .L4417+16 bl printk bl dump_stack -.L4301: +.L4309: ldr r3, [r8, #12] - ldr r2, .L4408+4 + ldr r2, .L4417+4 ldr r1, [r3, #4] ldr r2, [r2, #2784] cmp r1, r2 @@ -26307,245 +26356,246 @@ gc_do_copy_back: strcs r2, [r3, #4] ldr r3, [r8, #12] ldr r2, [r3, #4] - ldr r3, .L4408 - ldr r3, [r3, #-172] + ldr r3, .L4417 + ldr r3, [r3, #-124] str r2, [r3, r10, asl #2] ldr r3, [r8, #12] ldr r2, [r8, #24] +.L4407: str r2, [r3, #8] -.L4296: +.L4304: ldr r3, [r8, #12] mov r2, #0 str r2, [r3, #16] - b .L4290 -.L4304: - ldrb r2, [ip, #1197] @ zero_extendqisi2 + b .L4298 +.L4312: + ldrb r2, [ip, #1161] @ zero_extendqisi2 cmp r2, #0 - ldr r2, .L4408+68 + ldr r2, .L4417+64 umull r0, r1, r9, r2 - beq .L4307 + beq .L4315 mov r1, r1, lsr #1 - ldr r0, [sp, #16] - ldr ip, [sp, #12] + ldr r0, [sp, #12] + ldr ip, [sp, #8] uxtah r0, r0, r1 add r1, r1, r1, asl #1 rsb r1, r1, r9 add r0, ip, r0, asl #1 - ldr ip, .L4408+52 + ldr ip, .L4417+52 ldrh r0, [r0, #96] ldrh ip, [ip] mla r0, ip, r0, r5 uxtah r0, r0, r1 str r0, [r3, #1260] - b .L4308 -.L4307: - ldr r0, [sp, #16] + b .L4316 +.L4315: + ldr r0, [sp, #12] ubfx r1, r1, #1, #16 add r1, r0, r1 - ldr r0, [sp, #12] + ldr r0, [sp, #8] add r1, r0, r1, asl #1 - ldr r0, .L4408+52 + ldr r0, .L4417+52 ldrh r1, [r1, #96] ldrh r0, [r0] mla r1, r0, r1, r5 str r1, [r3, #1260] - b .L4308 -.L4303: + b .L4316 +.L4311: cmp r2, #2 - bne .L4306 + bne .L4314 ldrb r2, [r1, #-3122] @ zero_extendqisi2 cmp r2, #0 - ldr r2, [sp, #16] - bne .L4310 - ldr r1, [sp, #12] + ldr r2, [sp, #12] + bne .L4318 + ldr r1, [sp, #8] add r2, r2, r9 add r2, r1, r2, asl #1 - ldr r1, .L4408+52 + ldr r1, .L4417+52 ldrh r2, [r2, #96] ldrh r1, [r1] mla r2, r1, r2, r5 - b .L4399 -.L4310: - ldr r1, [sp, #12] + b .L4408 +.L4318: + ldr r1, [sp, #8] add r2, r2, r9, lsr #1 add r2, r1, r2, asl #1 - ldr r1, .L4408+52 + ldr r1, .L4417+52 ldrh r2, [r2, #96] ldrh r1, [r1] mla r2, r1, r2, r5 and r1, r9, #1 add r2, r2, r1 -.L4399: +.L4408: orr r2, r2, #33554432 str r2, [r3, #1260] - b .L4306 -.L4405: - ldr r3, [sp, #32] + b .L4314 +.L4414: + ldr r3, [sp, #28] ldrh r3, [r3] cmp r3, r5 - bcs .L4311 + bcs .L4319 tst r9, #1 - beq .L4311 + beq .L4319 ldr r2, [r8, #-3120] mvn r3, #0 - ldrh r1, [sp, #36] - ldr r0, [sp, #36] + ldrh r1, [sp, #32] + ldr r0, [sp, #32] strb r3, [r2, r10] - add r2, sp, #72 + add r2, sp, #64 add r9, r2, r9, asl #2 ldr r2, [r9, #-24] strh r1, [r2, #32] @ movhi ldrb r1, [r2, #1] @ zero_extendqisi2 ldr r2, [r8, #-3120] strb r1, [r2, r0] - ldr r2, [r8, #-168] + ldr r2, [r8, #-120] str r3, [r2, r10, asl #2] - b .L4311 -.L4406: + b .L4319 +.L4415: ldrb r3, [fp, #-3124] @ zero_extendqisi2 cmp r3, #3 - bne .L4313 - ldr r3, .L4408+4 - ldrb r1, [r3, #1196] @ zero_extendqisi2 + bne .L4321 + ldr r3, .L4417+4 + ldrb r1, [r3, #1160] @ zero_extendqisi2 cmp r1, #0 - ldrne r3, [sp, #24] + ldrne r3, [sp, #20] movne r2, #0 subne r1, r3, #1 - beq .L4407 -.L4315: + beq .L4416 +.L4323: uxth r3, r2 add r2, r2, #1 cmp r3, r1 - bge .L4400 - add ip, sp, #72 - add r0, sp, #72 - add ip, ip, r3, asl #2 + bge .L4409 + add r0, sp, #64 add r0, r0, r3, asl #2 - ldr r3, [ip, #-20] - ldr r0, [r0, #-24] + ldr ip, [r0, #-24] + add r0, sp, #64 + add r0, r0, r3, asl #2 + ldr r3, [r0, #-20] ldrb r3, [r3, #1] @ zero_extendqisi2 - strb r3, [r0] - b .L4315 -.L4407: + strb r3, [ip] + b .L4323 +.L4416: ldrb r2, [fp, #-3116] @ zero_extendqisi2 - ldr r3, [sp, #48] + ldr r3, [sp, #40] cmp r2, #0 strneb r1, [r3, #44] - bne .L4401 - ldr r1, [sp, #20] + bne .L4410 + ldr r1, [sp, #16] cmp r1, #1 moveq r2, #9 - beq .L4321 - ldr r1, [sp, #20] + beq .L4329 + ldr r1, [sp, #16] cmp r1, #2 moveq r2, #13 -.L4321: +.L4329: strb r2, [r3, #44] -.L4401: - add r1, sp, #60 +.L4410: + add r1, sp, #52 mov r2, r6 - add r0, sp, #48 + add r0, sp, #40 bl sblk_xlc_prog_pages - b .L4317 -.L4313: + b .L4325 +.L4321: ldrb r3, [fp, #-3122] @ zero_extendqisi2 cmp r3, #0 - beq .L4322 + beq .L4330 ldrb r3, [fp, #-3121] @ zero_extendqisi2 cmp r3, #0 - bne .L4323 -.L4322: - ldr r3, [sp, #24] + bne .L4331 +.L4330: + ldr r3, [sp, #20] mov r2, #0 sub r1, r3, #1 - b .L4324 -.L4323: + b .L4332 +.L4331: mov r1, r6 - add r0, sp, #48 + add r0, sp, #40 bl sblk_3d_mlc_prog_pages - b .L4317 -.L4324: + b .L4325 +.L4332: uxth r3, r2 add r2, r2, #1 cmp r3, r1 - bge .L4400 - add ip, sp, #72 - add r0, sp, #72 - add ip, ip, r3, asl #2 + bge .L4409 + add r0, sp, #64 add r0, r0, r3, asl #2 - ldr r3, [ip, #-20] - ldr r0, [r0, #-24] + ldr ip, [r0, #-24] + add r0, sp, #64 + add r0, r0, r3, asl #2 + ldr r3, [r0, #-20] ldrb r3, [r3, #1] @ zero_extendqisi2 - strb r3, [r0] - b .L4324 -.L4400: - add r3, sp, #72 + strb r3, [ip] + b .L4332 +.L4409: + add r3, sp, #64 mvn r2, #0 add r1, r3, r1, asl #2 ldr r3, [r1, #-24] smulbb r1, r4, r6 strb r2, [r3] - ldr r0, [sp, #48] + ldr r0, [sp, #40] uxtb r1, r1 bl sblk_prog_page -.L4317: +.L4325: ldrb r3, [fp, #-3116] @ zero_extendqisi2 - ldr r2, .L4408 + ldr r2, .L4417 cmp r3, #0 - ldr r3, .L4408+4 + ldr r3, .L4417+4 addne r4, r6, r6, asl #1 - bne .L4327 + bne .L4335 ldrb r1, [r2, #-3122] @ zero_extendqisi2 cmp r1, #0 movne r4, r6, asl #1 - bne .L4327 - ldrb r1, [r3, #1196] @ zero_extendqisi2 + bne .L4335 + ldrb r1, [r3, #1160] @ zero_extendqisi2 cmp r1, #0 moveq r4, r6 - beq .L4327 - ldrb r2, [r2, #-2536] @ zero_extendqisi2 + beq .L4335 + ldrb r2, [r2, #-2534] @ zero_extendqisi2 mul r4, r4, r6 cmp r2, #0 - beq .L4327 - ldr r1, .L4408+36 + beq .L4335 + ldr r1, .L4417+36 mov r2, r5, asl #1 ldrh r2, [r1, r2] cmp r2, r5 movcc r4, r6 -.L4327: +.L4335: ldr r2, [r3, #2804] ldr r3, [r2, #52] add r3, r3, r4 str r3, [r2, #52] - ldr r2, .L4408+8 + ldr r2, .L4417+8 movw r3, #2102 ldrh r1, [r2, r3] add r4, r4, r1 uxth r4, r4 strh r4, [r2, r3] @ movhi - ldr r3, .L4408+72 + ldr r3, .L4417+68 ldrh r2, [r3, #-10] - ldr r3, [sp, #12] + ldr r3, [sp, #8] ldrb r3, [r3, #89] @ zero_extendqisi2 mul r3, r3, r2 cmp r4, r3 - ldrge r3, .L4408+4 + ldrge r3, .L4417+4 movge r2, #0 - ldrge r3, [r3, #1092] + ldrge r3, [r3, #1096] strgeh r2, [r3, #86] @ movhi bl gc_write_completed - b .L4260 -.L4308: + b .L4268 +.L4316: mov r0, #48 - ldr r3, .L4408+20 + ldr r3, .L4417+20 mul r0, r0, r8 - ldr ip, .L4408+4 + ldr ip, .L4417+4 add r3, r3, r0 add r0, ip, r0 ldrh r1, [r3, #32] - ldr r3, .L4408 + ldr r3, .L4417 ldr r0, [r0, #1260] - ldr lr, [r3, #-164] + ldr lr, [r3, #-116] umull r2, r3, r9, r2 mov r2, r3, lsr #1 add r2, r2, r2, asl #1 @@ -26554,18 +26604,18 @@ gc_do_copy_back: add r2, r2, #16777216 orr r2, r2, r0 str r2, [lr, r1, asl #2] - b .L4331 -.L4260: - add sp, sp, #76 + b .L4339 +.L4268: + add sp, sp, #68 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L4409: +.L4418: .align 2 -.L4408: +.L4417: .word .LANCHOR3 .word .LANCHOR0 .word .LANCHOR0+2828 - .word .LANCHOR1+2736 + .word .LANCHOR1+2616 .word .LC0 .word .LANCHOR0+1236 .word .LANCHOR2 @@ -26577,7 +26627,6 @@ gc_do_copy_back: .word .LANCHOR3-3114 .word .LANCHOR3-3066 .word -178307901 - .word .LANCHOR3+542 .word .LANCHOR3-3132 .word -1431655765 .word .LANCHOR3-3104 @@ -26593,71 +26642,71 @@ zftl_do_gc: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} movw r3, #2792 - ldr r4, .L4635+60 + ldr r4, .L4644+60 cmp r0, #1 .pad #44 sub sp, sp, #44 mov fp, r0 - ldr r5, .L4635+32 + ldr r5, .L4644+32 ldrh r9, [r4, r3] movw r3, #2788 ldrh r7, [r4, r3] movw r3, #2790 - ldr r6, [r4, #1092] + ldr r6, [r4, #1096] add r7, r9, r7 ldrh r8, [r4, r3] uxth r7, r7 - beq .L4411 -.L4422: - ldrb r3, [r5, #-182] @ zero_extendqisi2 + beq .L4420 +.L4431: + ldrb r3, [r5, #-136] @ zero_extendqisi2 cmp r3, #6 ldrls pc, [pc, r3, asl #2] - b .L4536 -.L4414: - .word .L4413 - .word .L4415 - .word .L4416 - .word .L4417 - .word .L4418 - .word .L4537 - .word .L4420 -.L4411: - ldr r10, [r5, #548] + b .L4545 +.L4423: + .word .L4422 + .word .L4424 + .word .L4425 + .word .L4426 + .word .L4427 + .word .L4546 + .word .L4429 +.L4420: + ldr r10, [r5, #-8] cmp r10, #0 - bne .L4421 - ldr r3, [r5, #552] + bne .L4430 + ldr r3, [r5, #-4] cmp r3, #0 - beq .L4422 -.L4421: - ldr r3, .L4635+32 + beq .L4431 +.L4430: + ldr r3, .L4644+32 sub r2, r3, #3072 ldrh r2, [r2, #-14] cmp r7, r2, lsr #2 - bls .L4422 + bls .L4431 movw r2, #2808 ldrh r2, [r4, r2] cmp r2, r7 - bcs .L4422 + bcs .L4431 str r3, [sp, #28] bl timer_get_time add r10, r10, #20 ldr r3, [sp, #28] cmp r10, r0 - ldr r10, [r5, #552] + ldr r10, [r5, #-4] movcc r2, #0 - strcc r2, [r3, #548] + strcc r2, [r3, #-8] bl timer_get_time add r10, r10, #20 cmp r10, r0 - ldrcc r3, .L4635+32 + ldrcc r3, .L4644+32 movcc r2, #0 - strcc r2, [r3, #552] - ldr r3, [r4, #1092] + strcc r2, [r3, #-4] + ldr r3, [r4, #1096] ldrh r3, [r3, #124] cmp r3, #0 - beq .L4536 - b .L4422 -.L4413: + beq .L4545 + b .L4431 +.L4422: movw r2, #2794 movw r3, #2796 ldrh r3, [r4, r3] @@ -26668,17 +26717,17 @@ zftl_do_gc: add r10, r3, r10 movw r3, #65535 cmp r2, r3 - ldr r9, .L4635+60 + ldr r9, .L4644+60 uxth r10, r10 - beq .L4425 + beq .L4434 cmp fp, #0 - bne .L4426 + bne .L4435 movw r3, #2808 ldrh r3, [r9, r3] cmp r7, r3, asl #1 - bge .L4536 -.L4426: - ldr fp, .L4635+32 + bge .L4545 +.L4435: + ldr fp, .L4644+32 sub r9, fp, #3088 sub r0, r9, #12 ldrh r1, [r9] @@ -26688,45 +26737,45 @@ zftl_do_gc: bl _list_get_gc_head_node movw r3, #65535 cmp r0, r3 - beq .L4428 - ldr ip, [r4, #1088] + beq .L4437 + ldr ip, [r4, #1092] mov r2, r0, asl #1 - ldr r3, [fp, #-180] - ldr r1, .L4635+60 + ldr r3, [fp, #-132] + ldr r1, .L4644+60 ldrh r2, [ip, r2] add r3, r3, #1 ldrh ip, [r9, #-8] - str r3, [fp, #-180] + str r3, [fp, #-132] cmp ip, r2 - bcs .L4429 - movw ip, #1076 + bcs .L4438 + movw ip, #1080 ldrh ip, [r1, ip] cmp r3, ip, lsr #4 - bls .L4428 + bls .L4437 movw r3, #2810 ldrh r3, [r1, r3] cmp r3, r2 - bls .L4428 -.L4429: + bls .L4437 +.L4438: mov r1, #0 ldrb r2, [r5, #-3115] @ zero_extendqisi2 bl gc_add_sblk - ldr r9, .L4635+32 + ldr r9, .L4644+32 cmp r0, #0 - beq .L4430 + beq .L4439 mov r3, #1 - strb r3, [r9, #-182] + strb r3, [r9, #-136] mov r3, #0 - str r3, [r9, #-180] - b .L4536 -.L4428: + str r3, [r9, #-132] + b .L4545 +.L4437: mov r3, #0 strh r3, [r9] @ movhi -.L4430: +.L4439: cmp r8, #15 movls r9, #2 - bls .L4431 - ldr r2, .L4635 + bls .L4440 + ldr r2, .L4644 movw r3, #2798 ldrh r3, [r4, r3] ldrh r2, [r2, #-12] @@ -26739,16 +26788,16 @@ zftl_do_gc: cmp r10, #0 movne r9, #2 moveq r9, #1 -.L4431: - ldr r3, .L4635+4 +.L4440: + ldr r3, .L4644+4 ldr r3, [r3] tst r3, #256 - beq .L4432 - ldr r3, [r4, #1092] + beq .L4441 + ldr r3, [r4, #1096] ldrb r2, [r5, #-3115] @ zero_extendqisi2 str r8, [sp] ldrh r1, [r3, #124] - ldr r0, .L4635+8 + ldr r0, .L4644+8 str r1, [sp, #4] ldrh r1, [r3, #120] str r1, [sp, #8] @@ -26759,246 +26808,246 @@ zftl_do_gc: str r3, [sp, #16] mov r3, r7 bl printk -.L4432: +.L4441: ldrb r0, [r5, #-3115] @ zero_extendqisi2 mov r1, r9 mov r2, #1 bl gc_search_src_blk cmp r0, #0 - ble .L4433 -.L4434: + ble .L4442 +.L4443: mov r3, #1 - b .L4631 -.L4433: - ldr r3, .L4635+32 + b .L4640 +.L4442: + ldr r3, .L4644+32 mov r1, #3 mov r2, #1 ldrb r0, [r3, #-3115] @ zero_extendqisi2 bl gc_search_src_blk cmp r0, #0 - bgt .L4434 - b .L4536 -.L4425: + bgt .L4443 + b .L4545 +.L4434: cmp fp, #1 - bne .L4435 + bne .L4444 ldr r3, [r9, #2804] ldrh r3, [r3, #150] cmp r3, #0 - beq .L4436 + beq .L4445 movw r3, #2792 ldrh r3, [r9, r3] cmp r3, #8 - bls .L4436 + bls .L4445 bl gc_ink_check_sblk -.L4436: +.L4445: bl gc_scan_static_data - ldr r3, [r4, #1092] + ldr r3, [r4, #1096] ldrh r3, [r3, #122] cmp r3, #0 - beq .L4437 -.L4438: + beq .L4446 +.L4447: mov r3, #1 strb r3, [r5, #-3115] - b .L4631 -.L4437: + b .L4640 +.L4446: bl gc_static_wearleveling cmp r0, #0 - bne .L4438 + bne .L4447 bl gc_block_vpn_scan cmp r8, #0 - beq .L4439 + beq .L4448 cmp r7, r10 - ldr r6, .L4635 - bcs .L4440 + ldr r6, .L4644 + bcs .L4449 ldrh r3, [r6, #-14] cmp r3, r7 - bhi .L4441 -.L4440: + bhi .L4450 +.L4449: ldrh r2, [r6, #-14] add r3, r7, r10 cmp r3, r2 - blt .L4441 + blt .L4450 movw r3, #2798 ldrh r2, [r4, r3] - ldr r3, .L4635 + ldr r3, .L4644 ldrh r3, [r3, #-12] cmp r2, r3 - bcc .L4439 -.L4441: - ldr r0, .L4635+12 + bcc .L4448 +.L4450: + ldr r0, .L4644+12 mov r1, #16 mov ip, #1 strb ip, [r5, #-3115] str ip, [sp, #28] bl _list_get_gc_head_node movw r2, #65535 - ldr r9, .L4635+32 + ldr r9, .L4644+32 cmp r0, r2 - beq .L4442 - ldr r2, [r4, #1088] + beq .L4451 + ldr r2, [r4, #1092] mov r3, r0, asl #1 ldr ip, [sp, #28] ldrh r3, [r2, r3] - ldrh r2, [r9, #-176] + ldrh r2, [r9, #-128] cmp r3, r2 movcs r3, #0 movcc r3, #1 cmp r7, #2 movls r3, #0 cmp r3, #0 - beq .L4442 + beq .L4451 mov r2, #0 mov r1, ip strb r2, [r9, #-3115] - str r2, [r9, #-180] + str r2, [r9, #-132] bl gc_add_sblk cmp r0, #0 - bne .L4434 -.L4442: - ldr r9, .L4635+32 + bne .L4443 +.L4451: + ldr r9, .L4644+32 mov r1, #0 sub r0, r9, #3104 bl _list_get_gc_head_node movw r2, #65535 cmp r0, r2 - beq .L4443 - ldr r2, [r4, #1088] + beq .L4452 + ldr r2, [r4, #1092] mov r3, r0, asl #1 ldrh r3, [r2, r3] - ldrh r2, [r9, #-176] + ldrh r2, [r9, #-128] cmp r3, r2 movcs r3, #0 movcc r3, #1 cmp r7, #2 movls r3, #0 cmp r3, #0 - beq .L4443 + beq .L4452 mov r2, #0 mov r1, #1 strb r2, [r9, #-3115] - str r2, [r9, #-180] + str r2, [r9, #-132] bl gc_add_sblk cmp r0, #0 - bne .L4434 -.L4443: - ldr r1, .L4635+32 + bne .L4443 +.L4452: + ldr r1, .L4644+32 mov r9, #0 - ldrh r3, [r5, #-176] + ldrh r3, [r5, #-128] sub r2, r1, #3088 - ldr ip, .L4635+60 + ldr ip, .L4644+60 add r3, r3, #1 ldrh r2, [r2, #-8] uxth r3, r3 - strh r3, [r5, #-176] @ movhi + strh r3, [r5, #-128] @ movhi cmp r3, r2, lsr #5 movhi r3, #4 - strhih r3, [r1, #-176] @ movhi - ldr r3, .L4635+32 - ldr r1, [r5, #-180] + strhih r3, [r1, #-128] @ movhi + ldr r3, .L4644+32 + ldr r1, [r5, #-132] sub r0, r3, #3104 add r1, r1, #1 - str r1, [r5, #-180] + str r1, [r5, #-132] strh r9, [r0, #-8] @ movhi strh r9, [r0, #-6] @ movhi strh r9, [r0, #-4] @ movhi - movw r0, #1076 + movw r0, #1080 ldrh r0, [r4, r0] cmp r1, r0, lsr #5 - bls .L4445 + bls .L4454 movw r1, #2798 ldrh r1, [ip, r1] cmp r1, r8 - bls .L4445 + bls .L4454 mov r1, r9 - ldr r0, .L4635+16 + ldr r0, .L4644+16 str ip, [sp, #36] str r3, [sp, #32] str r2, [sp, #28] bl _list_get_gc_head_node movw r1, #65535 cmp r0, r1 - beq .L4541 + beq .L4550 ldr ip, [sp, #36] mov r0, r0, asl #1 ldr r3, [sp, #32] ldr r2, [sp, #28] - ldr r1, [ip, #1088] + ldr r1, [ip, #1092] ldrh r0, [r1, r0] ldrb r1, [r3, #-3123] @ zero_extendqisi2 mul r2, r1, r2 cmp r0, r2 - strle r9, [r3, #-180] + strle r9, [r3, #-132] ldrleb r0, [r3, #-3115] @ zero_extendqisi2 movle r1, #2 - bgt .L4541 - b .L4624 -.L4445: + bgt .L4550 + b .L4633 +.L4454: movw r2, #2798 - ldr r3, .L4635+60 + ldr r3, .L4644+60 ldrh r1, [r4, r2] ldrh r2, [r6, #-12] cmp r1, r2 - ldrcs r3, .L4635+32 + ldrcs r3, .L4644+32 movcs r1, #2 movcs r2, #1 ldrcsb r0, [r3, #-3115] @ zero_extendqisi2 - bcs .L4623 -.L4448: + bcs .L4632 +.L4457: movw r2, #2794 ldrh r2, [r3, r2] cmp r2, #0 - bne .L4449 + bne .L4458 movw r2, #2796 ldrh r3, [r3, r2] cmp r3, #8 - bls .L4450 -.L4449: + bls .L4459 +.L4458: ldrb r0, [r5, #-3115] @ zero_extendqisi2 mov r1, #1 -.L4624: +.L4633: mov r2, #4 -.L4623: +.L4632: bl gc_search_src_blk uxth r0, r0 cmp r0, #0 - bne .L4434 - b .L4541 -.L4450: - ldr r2, .L4635+56 + bne .L4443 + b .L4550 +.L4459: + ldr r2, .L4644+56 movw r3, #2106 ldrh r3, [r2, r3] cmp r3, #0 movne r6, #16 moveq r6, #0 - b .L4451 -.L4439: - ldr r3, .L4635+32 + b .L4460 +.L4448: + ldr r3, .L4644+32 sub r2, r3, #3088 ldrh r1, [r2, #-8] - ldrh r2, [r5, #-176] + ldrh r2, [r5, #-128] cmp r2, r1, lsr #5 movcs r2, #4 - strcsh r2, [r3, #-176] @ movhi - b .L4541 -.L4435: + strcsh r2, [r3, #-128] @ movhi + b .L4550 +.L4444: movw r3, #2808 ldrh r3, [r9, r3] cmp r3, r7 - bcs .L4541 - ldr r3, [r9, #1092] + bcs .L4550 + ldr r3, [r9, #1096] ldrh r3, [r3, #124] cmp r3, #0 - beq .L4536 -.L4541: + beq .L4545 +.L4550: mov r6, #16 -.L4451: +.L4460: ldr r3, [r4, #2820] cmp r3, #0 - beq .L4453 - ldr r3, .L4635+60 + beq .L4462 + ldr r3, .L4644+60 cmp r7, #15 mov r2, #0 - ldr r0, .L4635+16 + ldr r0, .L4644+16 mov r1, #0 str r2, [r3, #2820] movhi r3, #0 @@ -27011,88 +27060,88 @@ zftl_do_gc: bl _list_get_gc_head_node movw r2, #65535 cmp r0, r2 - beq .L4456 - ldr r2, [r4, #1088] + beq .L4465 + ldr r2, [r4, #1092] mov r3, r0, asl #1 ldrh r3, [r2, r3] cmp r3, #8 - bhi .L4456 - ldr r3, .L4635+60 + bhi .L4465 + ldr r3, .L4644+60 mov r2, #1 mov r1, #0 str r2, [r3, #2820] - ldr r3, .L4635+32 + ldr r3, .L4644+32 ldrb r2, [r3, #-3115] @ zero_extendqisi2 bl gc_add_sblk cmp r0, #0 - bne .L4434 -.L4456: - ldr r9, .L4635+32 + bne .L4443 +.L4465: + ldr r9, .L4644+32 mov r1, #0 sub r0, r9, #3104 bl _list_get_gc_head_node movw r2, #65535 cmp r0, r2 - beq .L4457 - ldr r2, [r4, #1088] + beq .L4466 + ldr r2, [r4, #1092] mov r3, r0, asl #1 ldrh r3, [r2, r3] cmp r3, #4 - bhi .L4457 - ldr r3, .L4635+60 + bhi .L4466 + ldr r3, .L4644+60 mov r2, #1 mov r1, #0 str r2, [r3, #2820] ldrb r2, [r9, #-3115] @ zero_extendqisi2 bl gc_add_sblk cmp r0, #0 - bne .L4434 -.L4457: - ldr r0, .L4635+12 + bne .L4443 +.L4466: + ldr r0, .L4644+12 mov r1, #0 bl _list_get_gc_head_node movw r2, #65535 cmp r0, r2 - beq .L4453 - ldr r2, [r4, #1088] + beq .L4462 + ldr r2, [r4, #1092] mov r3, r0, asl #1 ldrh r3, [r2, r3] cmp r3, #4 - bhi .L4453 - ldr r3, .L4635+60 + bhi .L4462 + ldr r3, .L4644+60 mov r1, #1 str r1, [r3, #2820] - ldr r3, .L4635+32 + ldr r3, .L4644+32 ldrb r2, [r3, #-3115] @ zero_extendqisi2 bl gc_add_sblk cmp r0, #0 - bne .L4434 -.L4453: - ldr r2, [r4, #1092] + bne .L4443 +.L4462: + ldr r2, [r4, #1096] mov r1, #1 - ldr r9, .L4635+32 - ldr r3, .L4635+60 + ldr r9, .L4644+32 + ldr r3, .L4644+60 ldrh ip, [r2, #124] strb r1, [r5, #-3115] cmp ip, #0 - strneb r1, [r9, #-182] + strneb r1, [r9, #-136] movne r3, #0 strneb r3, [r9, #-3115] - bne .L4459 + bne .L4468 movw r2, #2808 ldrh r0, [r3, r2] cmp r7, r0 - bcs .L4460 + bcs .L4469 cmp r8, #0 - beq .L4461 + beq .L4470 cmp r8, #16 - bls .L4462 + bls .L4471 sub r2, r9, #3072 movw r0, #2798 ldrh r0, [r3, r0] ldrh r2, [r2, #-12] cmp r0, r2 - bhi .L4462 + bhi .L4471 mov r0, r1 mov r2, #4 str ip, [sp, #32] @@ -27102,7 +27151,7 @@ zftl_do_gc: ldr r3, [sp, #28] cmp r0, #0 ldr ip, [sp, #32] - beq .L4628 + beq .L4637 sub r7, r9, #3088 mov r1, ip sub r0, r7, #12 @@ -27110,35 +27159,35 @@ zftl_do_gc: bl _list_get_gc_head_node movw r2, #65535 cmp r0, r2 - beq .L4534 + beq .L4543 ldr r3, [sp, #28] mov r1, r0, asl #1 - ldr r2, [r9, #-180] - ldr ip, [r3, #1088] + ldr r2, [r9, #-132] + ldr ip, [r3, #1092] add r2, r2, #1 - str r2, [r9, #-180] + str r2, [r9, #-132] ldrh r1, [ip, r1] ldrh ip, [r7, #-8] cmp ip, r1 - bcs .L4466 - movw ip, #1076 + bcs .L4475 + movw ip, #1080 ldrh ip, [r3, ip] cmp r2, ip, lsr #4 - bls .L4534 + bls .L4543 movw r2, #2810 ldrh r3, [r3, r2] cmp r3, r1 - bls .L4534 -.L4466: + bls .L4543 +.L4475: mov r1, #0 ldrb r2, [r5, #-3115] @ zero_extendqisi2 bl gc_add_sblk mov r3, #1 str r3, [r4, #2820] mov r3, #0 - str r3, [r5, #-180] - b .L4534 -.L4462: + str r3, [r5, #-132] + b .L4543 +.L4471: mov r0, #1 mov r1, #2 mov r2, r0 @@ -27146,33 +27195,33 @@ zftl_do_gc: uxth r0, r0 cmp r0, #0 ldreqb r0, [r5, #-3115] @ zero_extendqisi2 - bne .L4534 - b .L4627 -.L4461: + bne .L4543 + b .L4636 +.L4470: cmp r7, #16 strb r8, [r9, #-3115] mov r0, r8 - bhi .L4627 + bhi .L4636 mov r2, r1 bl gc_search_src_blk uxth r0, r0 cmp r0, #0 - bne .L4534 -.L4628: + bne .L4543 +.L4637: ldrb r0, [r9, #-3115] @ zero_extendqisi2 -.L4627: +.L4636: mov r1, #3 mov r2, #4 bl gc_search_src_blk uxth r0, r0 - b .L4464 -.L4460: + b .L4473 +.L4469: cmp fp, #1 - bne .L4459 + bne .L4468 cmp r7, r0, asl #1 - bge .L4469 + bge .L4478 cmp r10, r8, lsr #1 - bcs .L4470 + bcs .L4479 sub r9, r9, #3072 movw r1, #2798 ldrh r0, [r3, r1] @@ -27181,16 +27230,16 @@ zftl_do_gc: ldrcch r1, [r9, #-14] movcc r1, r1, lsr #2 strcch r1, [r3, r2] @ movhi - bcc .L4459 -.L4470: - ldr r0, .L4635+12 + bcc .L4468 +.L4479: + ldr r0, .L4644+12 mov r1, #8 bl _list_get_gc_head_node movw r2, #65535 - ldr r9, .L4635+32 + ldr r9, .L4644+32 cmp r0, r2 - beq .L4471 - ldr r2, [r4, #1088] + beq .L4480 + ldr r2, [r4, #1092] mov r3, r0, asl #1 ldrh r3, [r2, r3] cmp r3, #3 @@ -27199,44 +27248,44 @@ zftl_do_gc: cmp r7, #0 moveq r3, #0 cmp r3, #0 - beq .L4471 + beq .L4480 mov r2, #0 mov r1, #1 strb r2, [r9, #-3115] bl gc_add_sblk cmp r0, #0 - bne .L4634 -.L4471: - ldr r0, .L4635+16 + bne .L4643 +.L4480: + ldr r0, .L4644+16 mov r1, #0 bl _list_get_gc_head_node movw r3, #65535 - ldr r9, .L4635+32 + ldr r9, .L4644+32 cmp r0, r3 mov fp, r0 - bne .L4472 -.L4477: + bne .L4481 +.L4486: cmp r8, #1 - bhi .L4473 - b .L4474 -.L4472: - movw r1, #1076 - ldr r3, [r9, #-180] + bhi .L4482 + b .L4483 +.L4481: + movw r1, #1080 + ldr r3, [r9, #-132] ldrh r1, [r4, r1] mov ip, r0, asl #1 add r3, r3, #1 - ldr r2, .L4635+60 - str r3, [r9, #-180] + ldr r2, .L4644+60 + str r3, [r9, #-132] cmp r3, r1, lsr #4 - bls .L4475 - ldr r3, [r2, #1088] + bls .L4484 + ldr r3, [r2, #1092] mov r1, #0 - str r1, [r9, #-180] + str r1, [r9, #-132] ldrh lr, [r3, ip] movw r3, #2810 ldrh r3, [r2, r3] cmp lr, r3 - bcs .L4475 + bcs .L4484 mov r3, #1 str ip, [sp, #32] mov r2, r3 @@ -27246,26 +27295,26 @@ zftl_do_gc: cmp r0, #0 ldr r3, [sp, #28] ldr ip, [sp, #32] - bne .L4633 -.L4475: - ldr r2, [r4, #1088] - ldr r9, .L4635+32 - ldr r3, .L4635+60 + bne .L4642 +.L4484: + ldr r2, [r4, #1092] + ldr r9, .L4644+32 + ldr r3, .L4644+60 ldrh r1, [r2, ip] sub r2, r9, #3088 ldrh r2, [r2, #-8] cmp r1, r2, lsr #1 - bhi .L4476 + bhi .L4485 mov r0, fp mov r1, #1 mov r2, #0 bl gc_add_sblk -.L4634: +.L4643: mov r3, #1 -.L4633: - strb r3, [r9, #-182] - b .L4459 -.L4476: +.L4642: + strb r3, [r9, #-136] + b .L4468 +.L4485: movw r2, #2794 movw r0, #2796 ldrh r0, [r3, r0] @@ -27274,58 +27323,58 @@ zftl_do_gc: add r2, r2, r0 ldrh r0, [r9, #-14] cmp r2, r0, asl #1 - ble .L4477 + ble .L4486 movw r2, #2810 ldrh r3, [r3, r2] cmp r3, r1 - bcc .L4474 - b .L4477 -.L4473: - ldr r9, .L4635+32 + bcc .L4483 + b .L4486 +.L4482: + ldr r9, .L4644+32 cmp r8, #16 mov r0, #1 strb r0, [r5, #-3115] sub r8, r9, #3072 - bls .L4478 + bls .L4487 movw r3, #2798 ldrh r2, [r4, r3] ldrh r3, [r8, #-12] cmp r2, r3 - bhi .L4478 + bhi .L4487 mov r1, r0 mov r2, #4 bl gc_search_src_blk uxth r0, r0 cmp r0, #0 ldreqb r0, [r9, #-3115] @ zero_extendqisi2 - bne .L4479 - b .L4626 -.L4478: + bne .L4488 + b .L4635 +.L4487: mov r0, #1 mov r1, #2 mov r2, r0 bl gc_search_src_blk uxth r0, r0 cmp r0, #0 - bne .L4479 + bne .L4488 ldrb r0, [r5, #-3115] @ zero_extendqisi2 -.L4626: +.L4635: mov r1, #3 mov r2, #4 bl gc_search_src_blk uxth r0, r0 -.L4479: +.L4488: ldrh r3, [r8, #-14] cmp r7, r10, lsr #1 movw r2, #2808 movhi r3, r3, lsr #2 movls r3, r3, lsr #1 strh r3, [r4, r2] @ movhi - b .L4464 -.L4474: + b .L4473 +.L4483: cmp r7, r10 - ldr r8, .L4635 - bcs .L4481 + ldr r8, .L4644 + bcs .L4490 sub r0, r8, #20 mov r1, #4 mov r9, #0 @@ -27333,11 +27382,11 @@ zftl_do_gc: bl _list_get_gc_head_node movw r3, #65535 cmp r0, r3 - beq .L4481 - ldr r3, [r4, #1088] + beq .L4490 + ldr r3, [r4, #1092] mov r0, r0, asl #1 ldrh r1, [r8, #-24] - ldr r7, .L4635+60 + ldr r7, .L4644+60 ldrh r2, [r3, r0] ldrb r3, [r8, #-51] @ zero_extendqisi2 mul r3, r3, r1 @@ -27346,8 +27395,8 @@ zftl_do_gc: movwgt r2, #2808 movgt r3, r3, lsr #2 strgth r3, [r7, r2] @ movhi - bgt .L4459 -.L4483: + bgt .L4468 +.L4492: mov r2, #4 mov r0, r9 mov r1, #3 @@ -27357,81 +27406,81 @@ zftl_do_gc: mov r3, r3, lsr #1 strh r3, [r7, r2] @ movhi uxth r0, r0 - b .L4464 -.L4481: + b .L4473 +.L4490: ldrh r3, [r8, #-14] movw r2, #2808 mov r3, r3, lsr #2 strh r3, [r4, r2] @ movhi - b .L4459 -.L4469: + b .L4468 +.L4478: sub r9, r9, #3072 ldrh r1, [r9, #-14] mov r1, r1, lsr #2 strh r1, [r3, r2] @ movhi - ldr r2, .L4635+56 + ldr r2, .L4644+56 movw r3, #2106 ldrh r3, [r2, r3] cmp r3, #0 moveq r6, #0 - b .L4459 -.L4464: + b .L4468 +.L4473: cmp r0, #0 - beq .L4459 -.L4534: + beq .L4468 +.L4543: mov r3, #1 - strb r3, [r5, #-182] - b .L4459 -.L4415: + strb r3, [r5, #-136] + b .L4468 +.L4424: movw r6, #2828 movw r3, #65535 ldrh r2, [r4, r6] cmp r2, r3 - bne .L4484 + bne .L4493 bl gc_get_src_blk - ldr r3, .L4635+60 + ldr r3, .L4644+60 strh r0, [r3, r6] @ movhi -.L4484: +.L4493: movw r3, #2828 movw r0, #65535 ldrh r1, [r4, r3] - ldr r2, .L4635+60 + ldr r2, .L4644+60 cmp r1, r0 - beq .L4485 - movw r0, #1076 + beq .L4494 + movw r0, #1080 ldrh r0, [r2, r0] cmp r0, r1 mvnls r1, #0 strlsh r1, [r2, r3] @ movhi -.L4485: +.L4494: movw r3, #2828 movw r1, #65535 ldrh r3, [r4, r3] - ldr r2, .L4635+60 + ldr r2, .L4644+60 cmp r3, r1 - beq .L4632 - ldr r0, .L4635+56 - ldr r1, [r2, #1080] + beq .L4641 + ldr r0, .L4644+56 + ldr r1, [r2, #1084] ldrh ip, [r0, #52] add r1, r1, r3, asl #2 cmp ip, #0 addne r2, r2, #2880 movne r0, #0 - beq .L4487 -.L4488: + beq .L4496 +.L4497: uxth lr, r0 cmp lr, ip - bcs .L4487 + bcs .L4496 ldrh lr, [r2, #2]! add r0, r0, #1 cmp lr, r3 - bne .L4488 -.L4492: + bne .L4497 +.L4501: movw r3, #2828 mvn r2, #0 strh r2, [r4, r3] @ movhi - b .L4536 -.L4487: + b .L4545 +.L4496: ldrb r2, [r1, #2] @ zero_extendqisi2 tst r2, #192 and r2, r2, #224 @@ -27441,61 +27490,61 @@ zftl_do_gc: movne r2, r1 orreq r2, r1, #1 cmp r2, #0 - beq .L4490 - ldr r2, [r4, #1088] + beq .L4499 + ldr r2, [r4, #1092] mov r3, r3, asl #1 ldrh r3, [r2, r3] cmp r3, #0 - beq .L4492 - ldr r1, .L4635+64 + beq .L4501 + ldr r1, .L4644+64 movw r2, #3306 - ldr r0, .L4635+68 + ldr r0, .L4644+68 bl printk bl dump_stack - b .L4492 -.L4490: + b .L4501 +.L4499: mov r3, #2 - b .L4631 -.L4416: + b .L4640 +.L4425: bl gc_scan_src_blk cmn r0, #1 moveq r3, #3 - beq .L4631 + beq .L4640 movw r3, #2828 - ldr r2, .L4635+56 + ldr r2, .L4644+56 ldrh r3, [r4, r3] movw r1, #65535 cmp r3, r1 mov r6, r2 - beq .L4434 + beq .L4443 ldrh r1, [r2, #20] cmp r1, #0 movne r3, #4 - strneb r3, [r5, #-182] + strneb r3, [r5, #-136] movne r3, #0 strneh r3, [r2, #22] @ movhi - bne .L4536 -.L4494: + bne .L4545 +.L4503: mov r2, #1 - strb r2, [r5, #-182] - ldr r2, .L4635+60 + strb r2, [r5, #-136] + ldr r2, .L4644+60 mov r3, r3, asl #1 - ldr r2, [r2, #1088] + ldr r2, [r2, #1092] ldrh r3, [r2, r3] cmp r3, #0 - beq .L4495 - ldr r1, .L4635+64 + beq .L4504 + ldr r1, .L4644+64 movw r2, #3336 - ldr r0, .L4635+68 + ldr r0, .L4644+68 bl printk bl dump_stack -.L4495: +.L4504: movw r5, #2828 - ldr r7, .L4635+56 + ldr r7, .L4644+56 ldrh r0, [r4, r5] bl ftl_free_sblk ldrh r3, [r4, r5] - ldr r2, [r4, #1088] + ldr r2, [r4, #1092] mov r5, #0 mov r3, r3, asl #1 strh r5, [r2, r3] @ movhi @@ -27504,85 +27553,85 @@ zftl_do_gc: uxth r3, r3 cmp r3, #8 strlsh r3, [r7, #26] @ movhi - bls .L4492 + bls .L4501 strh r5, [r7, #26] @ movhi bl ftl_flush bl pm_flush bl ftl_ext_info_flush mov r0, r5 bl ftl_info_flush - b .L4492 -.L4417: - ldr r6, .L4635+56 -.L4594: + b .L4501 +.L4426: + ldr r6, .L4644+56 +.L4603: bl gc_scan_src_blk_one_page - ldr r3, .L4635+20 + ldr r3, .L4644+20 ldrh r1, [r6, #2] - ldr r0, .L4635+60 + ldr r0, .L4644+60 ldrh r3, [r3] - ldr r2, .L4635+32 + ldr r2, .L4644+32 cmp r1, r3 - ldr r5, .L4635+56 - bcs .L4498 + ldr r5, .L4644+56 + bcs .L4507 cmp r7, #7 - bls .L4594 - b .L4536 -.L4498: + bls .L4603 + b .L4545 +.L4507: ldrh r3, [r5, #20] ldrh r1, [r5] cmp r3, #0 - beq .L4499 - ldr r0, [r0, #1088] + beq .L4508 + ldr r0, [r0, #1092] mov ip, #4 - strb ip, [r2, #-182] + strb ip, [r2, #-136] mov r2, #0 strh r2, [r5, #22] @ movhi mov r2, r1, asl #1 ldrh r2, [r0, r2] cmp r2, r3 - beq .L4500 - ldr r0, .L4635+4 + beq .L4509 + ldr r0, .L4644+4 ldr r0, [r0] tst r0, #1024 - beq .L4500 - ldr r0, .L4635+24 + beq .L4509 + ldr r0, .L4644+24 bl printk -.L4500: +.L4509: movw r3, #2828 - ldr r2, [r4, #1088] + ldr r2, [r4, #1092] ldrh r3, [r4, r3] mov r3, r3, asl #1 ldrh r2, [r2, r3] ldrh r3, [r5, #20] cmp r2, r3 - beq .L4501 - ldr r1, .L4635+64 + beq .L4510 + ldr r1, .L4644+64 movw r2, #3379 - ldr r0, .L4635+68 + ldr r0, .L4644+68 bl printk bl dump_stack -.L4501: +.L4510: movw r3, #2828 ldrh r1, [r5, #20] ldrh r3, [r4, r3] - ldr r2, [r4, #1088] + ldr r2, [r4, #1092] mov r3, r3, asl #1 strh r1, [r2, r3] @ movhi - b .L4536 -.L4499: + b .L4545 +.L4508: mov r3, #1 - strb r3, [r2, #-182] - ldr r3, .L4635+4 - ldr r6, [r0, #1080] + strb r3, [r2, #-136] + ldr r3, .L4644+4 + ldr r6, [r0, #1084] ldr r3, [r3] add r6, r6, r1, asl #2 tst r3, #256 - beq .L4502 + beq .L4511 ldrb r2, [r6, #2] @ zero_extendqisi2 - ldr r0, .L4635+28 + ldr r0, .L4644+28 mov r2, r2, lsr #5 bl printk -.L4502: +.L4511: ldrb r3, [r6, #2] @ zero_extendqisi2 tst r3, #192 and r3, r3, #224 @@ -27592,15 +27641,15 @@ zftl_do_gc: movne r3, r2 orreq r3, r2, #1 cmp r3, #0 - beq .L4503 - ldr r1, .L4635+64 + beq .L4512 + ldr r1, .L4644+64 movw r2, #3389 - ldr r0, .L4635+68 + ldr r0, .L4644+68 bl printk bl dump_stack -.L4503: +.L4512: movw r7, #2828 - ldr r6, .L4635+56 + ldr r6, .L4644+56 ldrh r0, [r4, r7] bl ftl_free_sblk mvn r3, #0 @@ -27612,11 +27661,11 @@ zftl_do_gc: strlsh r3, [r6, #26] @ movhi movhi r3, #0 strhih r3, [r6, #26] @ movhi - bls .L4536 - b .L4630 -.L4636: + bls .L4545 + b .L4639 +.L4645: .align 2 -.L4635: +.L4644: .word .LANCHOR3-3072 .word .LANCHOR2 .word .LC300 @@ -27633,24 +27682,24 @@ zftl_do_gc: .word .LANCHOR3-3088 .word .LANCHOR0+2828 .word .LANCHOR0 - .word .LANCHOR1+2752 + .word .LANCHOR1+2632 .word .LC0 -.L4418: +.L4427: cmp fp, #0 - bne .L4505 + bne .L4514 movw r3, #2808 ldrh r3, [r4, r3] cmp r3, r7 - bcc .L4536 -.L4505: + bcc .L4545 +.L4514: ldrh r2, [r6, #80] movw r3, #65535 cmp r2, r3 - bne .L4506 + bne .L4515 ldrb r8, [r5, #-3115] @ zero_extendqisi2 cmp r8, #1 - bne .L4506 - ldr r9, .L4635+56 + bne .L4515 + ldr r9, .L4644+56 bl ftl_flush movw r3, #2180 mov r1, #5 @@ -27661,23 +27710,23 @@ zftl_do_gc: movw r3, #65535 cmp r0, r3 mov r7, r0 - beq .L4509 - ldr r8, [r4, #1080] + beq .L4518 + ldr r8, [r4, #1084] add r8, r8, r0, asl #2 ldrb r3, [r8, #2] @ zero_extendqisi2 tst r3, #224 - beq .L4510 - ldr r1, .L4635+64 + beq .L4519 + ldr r1, .L4644+64 movw r2, #3423 - ldr r0, .L4635+68 + ldr r0, .L4644+68 bl printk bl dump_stack -.L4510: +.L4519: ldrb r3, [r8, #2] @ zero_extendqisi2 and r3, r3, #15 orr r3, r3, #176 strb r3, [r8, #2] -.L4535: +.L4544: mov r0, r7 mov r1, #1 bl ftl_erase_sblk @@ -27685,7 +27734,7 @@ zftl_do_gc: add r1, r6, #96 strb r3, [r6, #84] mov r0, r7 - ldr r10, .L4635+52 + ldr r10, .L4644+52 bl ftl_get_blk_list_in_sblk mov r8, #0 strh r7, [r6, #80] @ movhi @@ -27701,13 +27750,13 @@ zftl_do_gc: ldrb r3, [r5, #-3123] @ zero_extendqisi2 mul r2, r3, r2 strh r0, [r6, #86] @ movhi - ldr r0, [r5, #-172] + ldr r0, [r5, #-124] mov r2, r2, asl #2 bl ftl_memset ldrb r3, [r5, #-3123] @ zero_extendqisi2 ldrh r2, [r10, #-26] mov r1, #255 - ldr r0, [r5, #-168] + ldr r0, [r5, #-120] mul r2, r3, r2 mov r2, r2, asl #2 bl ftl_memset @@ -27718,7 +27767,7 @@ zftl_do_gc: mvn r5, #0 mul r2, r2, r3 bl ftl_memset - ldr r3, [r4, #1092] + ldr r3, [r4, #1096] strh r5, [r3, #128] @ movhi strh r5, [r3, #130] @ movhi str r7, [r3, #132] @@ -27734,101 +27783,101 @@ zftl_do_gc: strh r8, [r9, r3] @ movhi movw r3, #2182 strh r8, [r9, r3] @ movhi - ldr r3, .L4635+40 + ldr r3, .L4644+40 str r5, [r3, #916] bl ftl_info_flush - b .L4536 -.L4506: + b .L4545 +.L4515: cmp fp, #1 - ldr r10, .L4635+56 - ldr r9, .L4635+36 + ldr r10, .L4644+56 + ldr r9, .L4644+36 movne r8, #1 moveq r8, #4 cmp r7, #15 addls r8, r8, #4 -.L4513: +.L4522: sub r8, r8, #1 uxtb r8, r8 cmp r8, #255 - beq .L4536 + beq .L4545 bl gc_do_copy_back ldrb r3, [r5, #-3115] @ zero_extendqisi2 - ldr fp, .L4635+32 + ldr fp, .L4644+32 cmp r3, #0 - ldr r7, .L4635+56 - bne .L4514 - ldrb r3, [r4, #2774] @ zero_extendqisi2 + ldr r7, .L4644+56 + bne .L4523 + ldrb r3, [r4, #2773] @ zero_extendqisi2 cmp r3, #3 - bhi .L4515 + bhi .L4524 bl ftl_write_commit -.L4515: +.L4524: ldrh r2, [r10, #22] ldrh r3, [r10, #20] cmp r2, r3 - bcc .L4513 + bcc .L4522 mov r3, #1 - strb r3, [r5, #-182] + strb r3, [r5, #-136] bl ftl_write_commit bl ftl_flush - ldr r3, .L4635+56 - ldr r2, .L4635+60 + ldr r3, .L4644+56 + ldr r2, .L4644+60 ldrh r3, [r3] - ldr r2, [r2, #1088] + ldr r2, [r2, #1092] mov r3, r3, asl #1 ldrh r3, [r2, r3] cmp r3, #0 - beq .L4517 - ldr r1, .L4635+64 + beq .L4526 + ldr r1, .L4644+64 movw r2, #3507 - ldr r0, .L4635+68 + ldr r0, .L4644+68 bl printk bl dump_stack -.L4517: +.L4526: movw r3, #2828 - ldr r1, [r4, #1088] + ldr r1, [r4, #1092] ldrh r0, [r4, r3] mov r2, r0, asl #1 ldrh ip, [r1, r2] cmp ip, #0 - bne .L4518 + bne .L4527 strh ip, [r1, r2] @ movhi - ldr r2, .L4635+60 + ldr r2, .L4644+60 ldrh r0, [r2, r3] bl ftl_free_sblk - b .L4492 -.L4518: + b .L4501 +.L4527: mov r1, #0 mov r2, #1 bl gc_add_sblk - b .L4492 -.L4514: + b .L4501 +.L4523: ldrh r3, [r9] cmp r3, #0 - beq .L4519 - ldr r3, .L4635+36 + beq .L4528 + ldr r3, .L4644+36 mov r2, #0 - ldr r8, .L4635+40 + ldr r8, .L4644+40 strh r2, [r3] @ movhi bl sblk_wait_write_queue_completed bl gc_write_completed ldr r0, [r8, #916] cmn r0, #1 - beq .L4520 - ldrb r3, [fp, #-2536] @ zero_extendqisi2 + beq .L4529 + ldrb r3, [fp, #-2534] @ zero_extendqisi2 cmp r3, #0 - bne .L4521 + bne .L4530 ldrb r3, [fp, #-3122] @ zero_extendqisi2 cmp r3, #0 - beq .L4522 -.L4521: + beq .L4531 +.L4530: ldr r3, [r4, #2804] - ldr r9, .L4635+60 + ldr r9, .L4644+60 ldr r2, [r3, #156] - ldr r3, .L4635+44 + ldr r3, .L4644+44 cmp r2, r3 - bne .L4522 - ldr r10, .L4635+48 - ldrb r3, [r9, #1189] @ zero_extendqisi2 + bne .L4531 + ldr r10, .L4644+48 + ldrb r3, [r9, #1153] @ zero_extendqisi2 ldrb r1, [r5, #-3130] @ zero_extendqisi2 ldrh r2, [r10, #-12] rsb r3, r3, #24 @@ -27837,23 +27886,23 @@ zftl_do_gc: mvn r0, #0 bic r0, r2, r0, asl r3 bl __aeabi_uidiv - ldr r6, [r9, #1080] + ldr r6, [r9, #1084] mov ip, r0, asl #2 add r1, r6, ip ldrb r3, [r1, #2] @ zero_extendqisi2 tst r3, #8 - beq .L4520 + beq .L4529 movw r2, #2788 ldrh lr, [r10, #34] ldrh r2, [r9, r2] add r2, r2, #8 cmp r2, lr - bge .L4520 + bge .L4529 + add r9, r9, #1088 bfc r3, #3, #2 - movw r2, #1084 strb r3, [r1, #2] ldr r3, [r6, r0, asl #2] - ldrh r2, [r9, r2] + ldrh r2, [r9] ubfx r3, r3, #11, #8 ldrh r1, [r6, ip] mul r2, r2, r3 @@ -27866,46 +27915,46 @@ zftl_do_gc: ldr r2, [r6, r0, asl #2] bfi r2, r3, #11, #8 str r2, [r6, r0, asl #2] - b .L4520 -.L4522: + b .L4529 +.L4531: bl ftl_mask_bad_block -.L4520: - ldr r3, [r4, #1092] +.L4529: + ldr r3, [r4, #1096] mov r6, #0 str r6, [r8, #916] strh r6, [r7, #52] @ movhi ldrh r0, [r3, #80] bl ftl_free_sblk ldr r0, [r4, #2836] - ldr r2, [r4, #1092] + ldr r2, [r4, #1096] mvn r3, #0 ldr r1, [r4, #2804] cmp r0, r6 strh r3, [r2, #80] @ movhi strh r3, [r1, #126] @ movhi strh r3, [r2, #130] @ movhi - beq .L4523 + beq .L4532 bl zbuf_free -.L4523: +.L4532: str r6, [r4, #2836] bl flt_sys_flush - ldr r1, .L4635+64 + ldr r1, .L4644+64 movw r2, #3567 - ldr r0, .L4635+68 - strb r6, [r5, #-182] + ldr r0, .L4644+68 + strb r6, [r5, #-136] bl printk bl dump_stack - b .L4536 -.L4519: + b .L4545 +.L4528: ldrh r3, [r6, #86] ldrh r2, [r10, #22] cmp r3, #1 ldrh r3, [r10, #20] - bls .L4524 + bls .L4533 cmp r2, r3 - bcc .L4513 + bcc .L4522 mov r3, #1 - strb r3, [fp, #-182] + strb r3, [fp, #-136] ldrh r3, [r7, #52] add r2, r3, #1 strh r2, [r7, #52] @ movhi @@ -27914,12 +27963,12 @@ zftl_do_gc: strh r2, [r3, #54] @ movhi mvn r3, #0 strh r3, [r7] @ movhi - b .L4536 -.L4524: + b .L4545 +.L4533: cmp r2, r3 mov r1, #5 - strb r1, [fp, #-182] - bcc .L4525 + strb r1, [fp, #-136] + bcc .L4534 ldrh r3, [r7, #52] add r2, r3, #1 strh r2, [r7, #52] @ movhi @@ -27928,22 +27977,22 @@ zftl_do_gc: strh r2, [r3, #54] @ movhi mvn r3, #0 strh r3, [r7] @ movhi -.L4525: +.L4534: bl ftl_flush bl sblk_wait_write_queue_completed bl gc_write_completed ldrh r2, [r6, #80] - ldr r3, [r4, #1092] + ldr r3, [r4, #1096] strh r2, [r3, #128] @ movhi bl pm_flush bl ftl_ext_info_flush - ldr r1, .L4635+52 - ldrb r0, [r4, #1196] @ zero_extendqisi2 + ldr r1, .L4644+52 + ldrb r0, [r4, #1160] @ zero_extendqisi2 mov r3, #0 strh r3, [r7, #12] @ movhi ldrh r3, [r1, #-8] cmp r0, #0 - ldr r2, .L4635+56 + ldr r2, .L4644+56 ldrneh r1, [r1, #-26] strh r3, [r7, #14] @ movhi ldrb r3, [r5, #-3124] @ zero_extendqisi2 @@ -27952,33 +28001,33 @@ zftl_do_gc: strh r3, [r7, #16] @ movhi strneh r1, [r2, #16] @ movhi cmp r3, #2 - bne .L4528 + bne .L4537 ldrh r3, [r7, #14] mov r3, r3, asl #1 strh r3, [r7, #14] @ movhi ldrb r3, [r5, #-3122] @ zero_extendqisi2 cmp r3, #0 - ldreq r3, .L4635+56 + ldreq r3, .L4644+56 moveq r2, #1 streqh r2, [r3, #16] @ movhi -.L4528: +.L4537: mov r3, #0 strh r3, [r7, #18] @ movhi - b .L4536 -.L4537: - ldr r8, .L4635+56 + b .L4545 +.L4546: + ldr r8, .L4644+56 mov r6, #0 -.L4419: +.L4428: bl gc_check_data_one_wl subs r10, r0, #0 - beq .L4531 - ldr r3, .L4635+56 + beq .L4540 + ldr r3, .L4644+56 mov r6, #0 strh r6, [r3, #52] @ movhi - ldr r3, [r4, #1092] + ldr r3, [r4, #1096] ldrh r0, [r3, #80] bl ftl_free_sblk - ldr r2, [r4, #1092] + ldr r2, [r4, #1096] ldr r1, [r4, #2804] mvn r3, #0 ldr r0, [r4, #2836] @@ -27987,33 +28036,33 @@ zftl_do_gc: strh r3, [r2, #130] @ movhi bl zbuf_free str r6, [r4, #2836] - strb r6, [r5, #-182] -.L4630: + strb r6, [r5, #-136] +.L4639: bl flt_sys_flush - b .L4536 -.L4531: + b .L4545 +.L4540: ldrh r2, [r8, #12] ldrh r3, [r8, #14] - ldr r9, .L4635+60 + ldr r9, .L4644+60 cmp r2, r3 - bcc .L4532 + bcc .L4541 ldr r0, [r9, #2836] mov r3, #6 - strb r3, [r5, #-182] + strb r3, [r5, #-136] bl zbuf_free str r10, [r9, #2836] - b .L4536 -.L4532: + b .L4545 +.L4541: cmp r7, #15 - bls .L4419 + bls .L4428 cmp fp, #1 - bne .L4536 + bne .L4545 add r6, r6, #1 uxtb r6, r6 cmp r6, #4 - bls .L4419 - b .L4536 -.L4420: + bls .L4428 + b .L4545 +.L4429: bl gc_update_l2p_map_new mvn r7, #0 bl gc_free_src_blk @@ -28025,24 +28074,24 @@ zftl_do_gc: mov r0, #0 strh r7, [r3, #126] @ movhi bl ftl_info_flush -.L4632: +.L4641: mov r3, #0 -.L4631: - strb r3, [r5, #-182] -.L4536: +.L4640: + strb r3, [r5, #-136] +.L4545: mov r0, #16 - b .L4621 -.L4459: + b .L4630 +.L4468: mov r0, r6 - b .L4621 -.L4509: - ldr r1, .L4635+64 + b .L4630 +.L4518: + ldr r1, .L4644+64 movw r2, #3430 - ldr r0, .L4635+68 + ldr r0, .L4644+68 bl printk bl dump_stack - b .L4535 -.L4621: + b .L4544 +.L4630: add sp, sp, #44 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} @@ -28059,97 +28108,96 @@ zftl_init: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #28 sub sp, sp, #28 - ldr r5, .L4721 + ldr r5, .L4730 mvn r3, #0 - ldr r4, .L4721+4 + ldr r4, .L4730+4 mov r6, #0 - ldr r1, .L4721+8 - ldr r0, .L4721+12 + ldr r1, .L4730+8 + ldr r0, .L4730+12 strb r3, [r4, #2824] - strb r3, [r5, #-2530] - strb r3, [r5, #-96] - str r3, [r5, #556] + strb r3, [r5, #-2528] + strb r3, [r5, #-80] + str r3, [r5] strb r6, [r4, #2800] - strb r6, [r5, #-2529] + strb r6, [r5, #-2527] strb r6, [r4, #2801] bl printk - ldr r8, .L4721+16 - sub r2, r5, #3104 + ldr r8, .L4730+16 + sub r1, r5, #3104 ldrb r3, [r8, #16] @ zero_extendqisi2 ldrb fp, [r8, #13] @ zero_extendqisi2 - strb fp, [r4, #2772] + strb fp, [r5, #-2538] mov r9, fp, asl #9 uxth r9, r9 str r3, [sp, #4] ldrb r3, [sp, #4] @ zero_extendqisi2 - ldr r1, [sp, #4] strb r3, [r5, #-3124] ldrh r3, [r8, #14] - strh r3, [r2, #-10] @ movhi + strh r3, [r1, #-10] @ movhi mov r0, r3 - str r3, [sp, #8] + ldr r1, [sp, #4] + str r3, [sp, #12] bl __aeabi_idiv sub r1, r5, #3088 ldrh r10, [r8, #18] ldrh ip, [r4, #2] - strh r0, [r1, #-8] @ movhi - mov r2, r0 - ldrb r1, [r4, #1101] @ zero_extendqisi2 + strh r9, [r5, #-14] @ movhi + str r0, [sp, #8] + ldrh r3, [sp, #8] ldrb r0, [r8, #17] @ zero_extendqisi2 - ldr r3, [sp, #8] + strh r3, [r1, #-8] @ movhi + ldrb r1, [r4, #1109] @ zero_extendqisi2 + ldr r3, [sp, #12] + strb r0, [r5, #-3130] strb r1, [r5, #-3064] smulbb r1, r0, r1 - strb r0, [r5, #-3130] mov r0, #1 uxtb r7, r1 - movw r1, #1076 + movw r1, #1080 strh r10, [r4, r1] @ movhi - movw r1, #542 - strh r9, [r5, r1] @ movhi sub r1, r5, #3056 strb r7, [r5, #-3123] strh ip, [r1, #-10] @ movhi -.L4638: +.L4647: cmp r0, ip uxth r1, r6 add r6, r6, #1 movls r0, r0, asl #1 - bls .L4638 -.L4719: - ldr r0, .L4721+20 + bls .L4647 +.L4728: + mul r2, r3, fp + ldr r0, .L4730+20 sub r1, r1, #1 strh r1, [r0, #-12] @ movhi mov r0, #0 - mul r1, r3, fp - mul r6, r10, r1 - str r1, [sp, #8] mov r1, #1 + mul r6, r10, r2 mov ip, r6, lsr #21 -.L4640: +.L4649: cmp r1, ip uxth lr, r0 add r0, r0, #1 movls r1, r1, asl #1 - bls .L4640 -.L4720: - ldr r1, .L4721+24 + bls .L4649 +.L4729: + ldr r1, .L4730+24 sub lr, lr, #1 mov r0, #1 - str r3, [sp, #20] + str r2, [sp, #20] mul r6, r7, r6 uxth lr, lr mul r1, r1, r7 mov lr, r0, asl lr - str r2, [sp, #12] + str r3, [sp, #16] mov r10, r10, lsr #4 str r6, [r4, #2780] - ldr r6, .L4721 + ldr r6, .L4730 mul r8, lr, r1 mov r1, fp - add fp, r6, #564 + sub fp, r6, #3072 add ip, r8, #24576 - str ip, [r6, #560] - str ip, [sp, #16] + str ip, [r6, #4] + str ip, [sp, #12] mov r0, ip str r8, [r4, #1032] bl __aeabi_uidiv @@ -28158,191 +28206,188 @@ zftl_init: add r0, r1, r0, asl #2 mov r1, r9 bl __aeabi_uidiv - ldr r2, [sp, #12] - strh r0, [fp] @ movhi + ldr r3, [sp, #8] + strh r0, [r6, #8] @ movhi uxth r0, r0 - mul r1, r7, r2 + mul r1, r7, r3 mov r0, r0, asl #4 bl __aeabi_idiv - sub r2, r6, #3072 - ldr r3, [sp, #8] - ldr ip, [sp, #16] - strh r0, [r6, #-152] @ movhi - mul r1, r7, r3 + ldr r2, [sp, #20] + ldr ip, [sp, #12] + strh r0, [r6, #-168] @ movhi + mul r1, r7, r2 mov r0, ip - str r2, [sp, #12] sub r1, r1, #1 bl __aeabi_uidiv cmp r10, #79 - movw ip, #1084 + ldr lr, .L4730+4 + mov ip, #2000 movls r1, #80 - ldr r2, [sp, #12] + strh r10, [fp, #-14] @ movhi + add r10, lr, #1088 add r0, r0, #8 - ldr r3, [sp, #20] - strh r10, [r2, #-14] @ movhi - strlsh r1, [r2, #-14] @ movhi - ldr r1, .L4721 - strh r0, [r2, #-12] @ movhi - mov r0, #2000 - sub r2, r1, #2528 + ldr r2, [sp, #4] + strh r0, [fp, #-12] @ movhi + ldr r0, .L4730 + strlsh r1, [fp, #-14] @ movhi + cmp r2, #2 + sub r1, r0, #2528 + ldr r3, [sp, #16] + strh ip, [r1, #-2] @ movhi + mov r2, r1 + mov ip, #50 + strh ip, [r1, #-4] @ movhi + mov ip, #256 + strh ip, [r6, #-172] @ movhi + mov ip, #48 + strh ip, [r6, #-170] @ movhi + mov ip, #32 + strh ip, [r10] @ movhi + beq .L4652 + ldrb r10, [r0, #-3116] @ zero_extendqisi2 + cmp r10, #0 + beq .L4653 +.L4652: + mov r0, #150 strh r0, [r2, #-4] @ movhi - mov r0, #50 - strh r0, [r2, #-6] @ movhi - mov r0, #256 - strh r0, [r6, #-156] @ movhi - mov r0, #48 - strh r0, [r6, #-154] @ movhi - mov r0, #32 - strh r0, [r4, ip] @ movhi - ldr ip, [sp, #4] - cmp ip, #2 - mov ip, r2 - beq .L4643 - ldrb lr, [r1, #-3116] @ zero_extendqisi2 - cmp lr, #0 - beq .L4644 -.L4643: - mov r1, #150 - strh r1, [ip, #-6] @ movhi - mov r1, #64 - strh r1, [r6, #-154] @ movhi - movw r1, #1084 + mov r0, #64 + strh r0, [r6, #-170] @ movhi + ldr r0, .L4730+28 mov lr, #12 - strh lr, [r4, r1] @ movhi + ldr r1, .L4730 + strh lr, [r0] @ movhi + sub ip, r1, #2528 ldrb lr, [r4] @ zero_extendqisi2 - ldr r2, .L4721 cmp lr, #0 - sub r0, r2, #2528 - bne .L4645 - ldr lr, .L4721+4 - mov r10, #4 - strh r10, [lr, r1] @ movhi - mov r1, #600 - strh r1, [r0, #-4] @ movhi - mov r1, #128 - strh r1, [r2, #-156] @ movhi -.L4645: - ldrb r2, [r4, #1197] @ zero_extendqisi2 + moveq lr, #4 + streqh lr, [r0] @ movhi + moveq r0, #600 + streqh r0, [ip, #-2] @ movhi + moveq r0, #128 + streqh r0, [r1, #-172] @ movhi + ldrb r1, [r4, #1161] @ zero_extendqisi2 + cmp r1, #0 + movne r1, #200 + strneh r1, [r2, #-4] @ movhi + movne r1, #2000 + strneh r1, [r2, #-2] @ movhi + b .L4656 +.L4653: + ldrb r2, [lr, #1160] @ zero_extendqisi2 cmp r2, #0 - movne r2, #200 - strneh r2, [ip, #-6] @ movhi - movne r2, #2000 - strneh r2, [ip, #-4] @ movhi - b .L4647 -.L4644: - ldr ip, .L4721+4 - ldrb ip, [ip, #1196] @ zero_extendqisi2 - cmp ip, #0 - strneh r0, [r2, #-6] @ movhi - strneh r0, [r1, #-154] @ movhi - movne ip, #1200 - strneh ip, [r2, #-4] @ movhi -.L4647: + strneh ip, [r1, #-4] @ movhi + strneh ip, [r0, #-170] @ movhi + movne r2, #1200 + strneh r2, [r1, #-2] @ movhi +.L4656: mul r3, r7, r3 - ldr r7, .L4721+16 + ldr r7, .L4730+16 mov r2, #0 str r2, [r4, #2820] mov r2, #1 - strb r2, [r6, #545] + strb r2, [r6, #-11] cmp r9, r3, asl #2 - ldrlt r3, .L4721 + ldrlt r3, .L4730 movlt r2, #2 - strltb r2, [r3, #545] + strltb r2, [r3, #-11] ldr r3, [r7] tst r3, #4096 - beq .L4650 - ldr r0, .L4721+28 + beq .L4659 + ldr r0, .L4730+32 mov r1, r8 bl printk -.L4650: +.L4659: ldr r3, [r7] tst r3, #4096 - beq .L4651 - ldr r0, .L4721+32 + beq .L4660 + ldr r0, .L4730+36 ldr r1, [r4, #2780] bl printk -.L4651: +.L4660: ldr r3, [r7] tst r3, #4096 - beq .L4652 - ldr r0, .L4721+36 + beq .L4661 + ldr r0, .L4730+40 ldr r1, [r4, #2784] bl printk -.L4652: +.L4661: ldr r3, [r7] tst r3, #4096 - beq .L4653 - ldr r0, .L4721+40 - ldr r1, [r6, #560] + beq .L4662 + ldr r0, .L4730+44 + ldr r1, [r6, #4] bl printk -.L4653: +.L4662: ldr r3, [r7] tst r3, #4096 - beq .L4654 - ldr r0, .L4721+44 - ldrh r1, [fp] + beq .L4663 + ldr r0, .L4730+48 + ldrh r1, [r6, #8] bl printk -.L4654: +.L4663: ldr r3, [r7] tst r3, #4096 - beq .L4655 - movw r3, #542 - ldr r0, .L4721+48 - ldrh r1, [r6, r3] + beq .L4664 + ldr r0, .L4730+52 + ldrh r1, [r6, #-14] bl printk -.L4655: +.L4664: ldr r3, [r7] tst r3, #4096 - beq .L4656 - ldr r0, .L4721+52 - ldrh r1, [r6, #-152] + beq .L4665 + ldr r0, .L4730+56 + ldrh r1, [r6, #-168] bl printk -.L4656: +.L4665: ldr r3, [r7] tst r3, #4096 - beq .L4657 - ldr r3, .L4721+56 - ldr r0, .L4721+60 - ldrh r1, [r3, #-14] + beq .L4666 + ldr r0, .L4730+60 + ldrh r1, [fp, #-14] bl printk -.L4657: +.L4666: ldr r3, [r7] tst r3, #4096 - beq .L4658 - ldr r3, .L4721+56 - ldr r0, .L4721+64 - ldrh r1, [r3, #-12] + beq .L4667 + ldr r0, .L4730+64 + ldrh r1, [fp, #-12] bl printk -.L4658: +.L4667: bl zbuf_init mov r0, #16384 bl ftl_malloc - movw r9, #1076 - ldr r8, .L4721+68 - str r0, [r5, #204] + movw r9, #1080 + ldr r8, .L4730+68 + str r0, [r5, #-52] mov r0, #16384 bl ftl_malloc - str r0, [r5, #212] + str r0, [r5, #-44] mov r0, #16384 bl ftl_malloc + str r0, [r5, #12] + mov r0, #256 + bl ftl_dma32_malloc + str r0, [r5, #-68] + mov r0, #256 + bl ftl_dma32_malloc ldrh r3, [r4, r9] - str r0, [r5, #568] + str r0, [r5, #-40] mov r0, #6 mul r0, r0, r3 - bl ftl_malloc + bl ftl_dma32_malloc ldrb r3, [r5, #-3123] @ zero_extendqisi2 str r0, [r4, #1036] ldrh r0, [r8, #-8] mul r0, r3, r0 mov r0, r0, asl #2 - bl ftl_malloc + bl ftl_dma32_malloc ldrb r3, [r5, #-3123] @ zero_extendqisi2 ldrh r1, [r8, #-8] - ldr r2, [r5, #212] + ldr r2, [r5, #-44] mul r1, r3, r1 str r2, [r5, #-2548] add r3, r2, r1, asl #3 - str r3, [r4, #1088] + str r3, [r4, #1092] str r0, [r5, #-2544] ldrh r5, [r4, r9] ldr r0, [r7] @@ -28350,82 +28395,80 @@ zftl_init: tst r0, #4096 add r1, r5, r1, asl #1 add r1, r2, r1, asl #2 - str r1, [r4, #1092] - beq .L4659 - ldr r0, .L4721+72 + str r1, [r4, #1096] + beq .L4668 + ldr r0, .L4730+72 bl printk -.L4659: - movw r3, #1076 +.L4668: + movw r3, #1080 ldrh r5, [r8, #-8] ldrh r2, [r4, r3] ldrb r3, [r6, #-3123] @ zero_extendqisi2 - ldrh fp, [fp] mul r5, r3, r5 + ldrh r3, [r6, #8] + mov r3, r3, asl #2 + add r8, r3, r2, asl #2 ldr r3, [r7] - mov fp, fp, asl #2 - tst r3, #4096 - add fp, fp, r2, asl #2 - add fp, fp, #704 add r5, r2, r5, asl #2 + add r8, r8, #704 + tst r3, #4096 mov r5, r5, asl #1 add r5, r5, #632 - beq .L4660 - ldr ip, .L4721 - movw r3, #542 - ldr r0, .L4721+76 + beq .L4669 + ldr r3, .L4730 mov r1, r5 - mov r2, fp - ldrh r3, [ip, r3] + ldr r0, .L4730+76 + mov r2, r8 + ldrh r3, [r3, #-14] bl printk -.L4660: - movw r3, #542 - ldrh r3, [r6, r3] - cmp fp, r3 +.L4669: + ldrh r3, [r6, #-14] + cmp r8, r3 cmpls r5, r3 - movhi fp, #1 - movls fp, #0 - bls .L4661 -.L4717: - b .L4717 -.L4661: + movhi r8, #1 + movls r8, #0 + bls .L4670 +.L4726: + b .L4726 +.L4670: bl sblk_init bl gc_init bl ftl_info_blk_init cmn r0, #1 - beq .L4663 + beq .L4672 bl ftl_ext_info_init mov r0, #1 bl pm_init bl lpa_rebuild_hash - ldr r0, [r4, #1092] - mov r1, fp + ldr r0, [r4, #1096] + mov r1, r8 add r0, r0, #16 bl ftl_open_sblk_recovery - ldr r1, [r4, #1092] + ldr r1, [r4, #1096] add r0, r1, #48 add r1, r1, #16 bl ftl_open_sblk_recovery ldr r2, [r4, #2804] - ldr r0, [r4, #1092] + ldr r0, [r4, #1096] ldr r3, [r2, #8] add r0, r0, #16 add r3, r3, #16 str r3, [r2, #8] bl ftl_info_data_recovery - ldr r0, [r4, #1092] + ldr r0, [r4, #1096] add r0, r0, #48 bl ftl_info_data_recovery - ldr r0, [r4, #1092] + ldr r0, [r4, #1096] add r0, r0, #80 bl ftl_info_data_recovery bl gc_recovery bl pm_flush mov r0, #1 bl ftl_total_vpn_update - ldr r3, .L4721 - ldrb r3, [r3, #209] @ zero_extendqisi2 + ldr r3, .L4730 + ldrb r3, [r3, #-47] @ zero_extendqisi2 cmp r3, #0 - ldrne r3, .L4721+4 + ldrne r3, .L4730+4 ldrne r2, [r3, #2804] ldrne r3, [r2, #68] addne r3, r3, #1 @@ -28434,56 +28477,56 @@ zftl_init: mov r0, #0 bl ftl_info_flush bl print_ftl_debug_info - ldr r3, [r4, #1092] - ldr r2, .L4721+4 + ldr r3, [r4, #1096] + ldr r2, .L4730+4 ldrh r3, [r3, #124] cmp r3, #0 - bne .L4669 + bne .L4678 movw r3, #2788 movw r1, #2792 ldrh r3, [r2, r3] ldrh r2, [r2, r1] add r3, r3, r2 cmp r3, #7 - ble .L4669 -.L4667: + ble .L4678 +.L4676: mov r0, #0 - b .L4663 -.L4669: - ldr r6, .L4721+80 + b .L4672 +.L4678: + ldr r6, .L4730+80 mov r5, #16384 -.L4700: +.L4709: mov r1, #1 mov r0, #0 bl zftl_do_gc mov r0, #1 mov r1, r0 bl zftl_do_gc - ldr r3, [r4, #1092] + ldr r3, [r4, #1096] ldrh r2, [r3, #124] cmp r2, #0 - bne .L4666 + bne .L4675 ldrh r2, [r3, #80] movw r3, #65535 cmp r2, r3 - bne .L4666 - ldr r2, .L4721+84 + bne .L4675 + ldr r2, .L4730+84 ldrh r3, [r6] ldrh r2, [r2] add r3, r3, r2 cmp r3, #7 - bgt .L4667 -.L4666: + bgt .L4676 +.L4675: subs r5, r5, #1 - bne .L4700 - b .L4667 -.L4663: + bne .L4709 + b .L4676 +.L4672: add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L4722: +.L4731: .align 2 -.L4721: +.L4730: .word .LANCHOR3 .word .LANCHOR0 .word .LC2 @@ -28491,6 +28534,7 @@ zftl_init: .word .LANCHOR2 .word .LANCHOR3-3120 .word 1892352 + .word .LANCHOR0+1088 .word .LC303 .word .LC304 .word .LC305 @@ -28498,7 +28542,6 @@ zftl_init: .word .LC307 .word .LC308 .word .LC309 - .word .LANCHOR3-3072 .word .LC310 .word .LC311 .word .LANCHOR3-3088 @@ -28518,124 +28561,125 @@ rk_ftl_init: stmfd sp!, {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} mov r0, #68 - ldr r3, .L4739 + ldr r3, .L4748 mov r5, #0 - ldr r4, .L4739+4 + ldr r4, .L4748+4 ldr r3, [r3] - str r5, [r4, #-140] - strb r5, [r4, #572] - str r3, [r4, #-144] - bl ftl_malloc + str r5, [r4, #-156] + strb r5, [r4, #16] + str r3, [r4, #-160] + str r5, [r4, #-144] + bl ftl_dma32_malloc cmp r0, r5 - str r0, [r4, #-136] - bne .L4724 -.L4726: + str r0, [r4, #-152] + bne .L4733 +.L4735: mvn r0, #0 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L4724: +.L4733: mov r0, #2048 - bl ftl_malloc - add r1, r4, #580 - str r5, [r4, #-132] - str r5, [r4, #580] - str r0, [r4, #576] - sub r0, r4, #132 + bl ftl_dma32_malloc + add r1, r4, #24 + str r5, [r4, #-148] + str r5, [r4, #24] + str r0, [r4, #20] + sub r0, r4, #148 bl rknand_get_reg_addr - ldr r3, [r4, #-132] + ldr r3, [r4, #-148] cmp r3, #0 - beq .L4726 + beq .L4735 bl rk_nandc_irq_init mov r1, r5 mov r2, r5 mov r3, #2048 - ldr r0, [r4, #576] + ldr r0, [r4, #20] bl flash_sram_load_store bl rknand_flash_cs_init - ldr r3, [r4, #-136] - ldr r2, .L4739+8 - ldr r0, [r4, #-132] + ldr r3, [r4, #-152] + ldr r2, .L4748+8 + ldr r0, [r4, #-148] str r2, [r3, #40] - ldr r2, .L4739+12 + ldr r2, .L4748+12 str r2, [r3, #32] - ldr r2, .L4739+16 + ldr r2, .L4748+16 str r2, [r3, #44] - ldr r2, .L4739+20 + ldr r2, .L4748+20 str r2, [r3, #48] - ldr r2, .L4739+24 + ldr r2, .L4748+24 str r2, [r3, #36] - ldr r2, .L4739+28 + ldr r2, .L4748+28 str r2, [r3, #56] - ldr r2, .L4739+32 + ldr r2, .L4748+32 str r2, [r3, #20] - ldr r2, .L4739+36 + ldr r2, .L4748+36 str r2, [r3, #24] - ldr r2, .L4739+40 + ldr r2, .L4748+40 str r2, [r3, #12] - ldr r2, .L4739+44 + ldr r2, .L4748+44 str r2, [r3, #16] - ldr r2, .L4739+48 + ldr r2, .L4748+48 str r2, [r3, #4] - ldr r2, .L4739+52 + ldr r2, .L4748+52 str r2, [r3, #8] - ldr r2, .L4739+56 + ldr r2, .L4748+56 str r2, [r3, #60] - ldr r2, .L4739+60 + ldr r2, .L4748+60 str r2, [r3, #64] - ldr r2, .L4739+64 + ldr r2, .L4748+64 str r2, [r3, #52] - ldr r2, .L4739+68 + ldr r2, .L4748+68 str r2, [r3, #28] bl nand_flash_init subs r7, r0, #0 - bne .L4727 + bne .L4736 bl zftl_init mov r5, r0 bl zftl_proc_debug_init mov r3, #1 - strb r3, [r4, #572] - b .L4728 -.L4727: - ldr r3, [r4, #-136] + strb r3, [r4, #16] + b .L4737 +.L4736: + ldr r3, [r4, #-152] mov r6, r4 - ldr r2, .L4739+72 - ldr r0, [r4, #-132] - ldr r4, .L4739+76 + ldr r2, .L4748+72 + ldr r0, [r4, #-148] + ldr r4, .L4748+76 str r2, [r3, #40] - ldr r2, .L4739+80 + ldr r2, .L4748+80 str r2, [r3, #32] - ldr r2, .L4739+84 + ldr r2, .L4748+84 str r2, [r3, #44] - ldr r2, .L4739+88 + ldr r2, .L4748+88 str r2, [r3, #48] - ldr r2, .L4739+92 + ldr r2, .L4748+92 str r2, [r3, #36] - ldr r2, .L4739+96 + ldr r2, .L4748+96 str r2, [r3, #56] - ldr r2, .L4739+100 + ldr r2, .L4748+100 str r2, [r3, #20] - ldr r2, .L4739+104 + ldr r2, .L4748+104 str r2, [r3, #24] - ldr r2, .L4739+108 + ldr r2, .L4748+108 str r2, [r3, #12] - ldr r2, .L4739+112 + ldr r2, .L4748+112 str r2, [r3, #16] - ldr r2, .L4739+116 + ldr r2, .L4748+116 str r2, [r3, #4] - ldr r2, .L4739+120 + ldr r2, .L4748+120 str r2, [r3, #8] - ldr r2, .L4739+124 + ldr r2, .L4748+124 str r2, [r3, #60] - ldr r2, .L4739+128 + ldr r2, .L4748+128 str r2, [r3, #64] - ldr r2, .L4739+132 + ldr r2, .L4748+132 str r2, [r3, #52] - ldr r2, .L4739+136 + ldr r2, .L4748+136 str r2, [r3, #28] bl FlashInit cmn r7, #2 mov r5, r0 - bne .L4729 - ldr r1, .L4739+140 + bne .L4738 + ldr r1, .L4748+140 mov r2, #32 add r0, r4, #4 bl ftl_memcpy @@ -28643,57 +28687,57 @@ rk_ftl_init: bl flash_lsb_page_tbl_build ldrh r3, [r4, #14] strh r3, [r4, #30] @ movhi -.L4729: - ldr r3, .L4739+144 +.L4738: + ldr r3, .L4748+144 ldr r2, [r3] - ldr r3, .L4739+148 + ldr r3, .L4748+148 cmp r2, r3 - ldr r2, .L4739+152 - bne .L4730 - ldr r3, .L4739+156 + ldr r2, .L4748+152 + bne .L4739 + ldr r3, .L4748+156 ldrb r3, [r3] @ zero_extendqisi2 cmp r3, #0 - bne .L4731 -.L4730: + bne .L4740 +.L4739: mov r3, #0 - strb r3, [r2, #1102] + strb r3, [r2, #1110] strb r3, [r2] -.L4731: - ldr r1, .L4739+160 +.L4740: + ldr r1, .L4748+160 mov r0, #1 ldrh ip, [r4, #14] mov r3, #0 - str r3, [r6, #-108] + str r3, [r6, #-92] ldrb r1, [r1] @ zero_extendqisi2 - strb r1, [r2, #1100] - ldr r1, .L4739+164 + strb r1, [r2, #1108] + ldr r1, .L4748+164 ldrb r1, [r1] @ zero_extendqisi2 - strb r1, [r2, #1172] -.L4732: + strb r1, [r2, #1197] +.L4741: cmp r0, ip uxth r1, r3 add r3, r3, #1 movls r0, r0, asl #1 - bls .L4732 -.L4738: - ldr r3, .L4739+168 + bls .L4741 +.L4747: + ldr r3, .L4748+168 sub r1, r1, #1 strh r1, [r3, #-12] @ movhi mov r3, #0 cmp r5, r3 - strb r3, [r2, #1135] - bne .L4728 + strb r3, [r2, #1143] + bne .L4737 bl FtlInit mov r5, r0 -.L4728: +.L4737: mov r1, r5 - ldr r0, .L4739+172 + ldr r0, .L4748+172 bl printk mov r0, r5 ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L4740: +.L4749: .align 2 -.L4739: +.L4748: .word jiffies .word .LANCHOR3 .word zftl_deinit @@ -28745,132 +28789,135 @@ rk_ftl_init: .type zftl_write, %function zftl_write: .fnstart - @ args = 0, pretend = 0, frame = 16 + @ args = 0, pretend = 0, frame = 24 @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - mov r9, r3 - ldr r3, .L4776 - .pad #28 - sub sp, sp, #28 - mov r5, r0 + mov r8, r3 + ldr r3, .L4785 + .pad #36 + sub sp, sp, #36 + mov r6, r0 mov r4, r1 - mov r6, r2 + mov r5, r2 ldr r3, [r3] tst r3, #4096 - beq .L4742 - ldr r3, [r9] - mov r1, r5 - ldr r0, .L4776+4 + beq .L4751 + ldr r3, [r8] + mov r1, r6 + ldr r0, .L4785+4 mov r2, r4 str r3, [sp] - mov r3, r6 + mov r3, r5 bl printk -.L4742: - cmp r5, #0 - ldreq r3, .L4776+8 - moveq r5, #24576 +.L4751: + cmp r6, #0 + ldreq r3, .L4785+8 + moveq r6, #24576 ldreq r3, [r3, #1032] - beq .L4744 -.L4743: - cmp r5, #3 - bhi .L4762 - mov r5, r5, asl #13 + beq .L4753 +.L4752: + cmp r6, #3 + bhi .L4771 + mov r6, r6, asl #13 mov r3, #8192 -.L4744: - cmp r6, r3 +.L4753: + cmp r5, r3 cmpls r4, r3 movcs fp, #1 movcc fp, #0 - bcs .L4762 - add r1, r4, r6 + bcs .L4771 + add r1, r4, r5 cmp r1, r3 - bhi .L4762 - add r4, r5, r4 - ldr r5, .L4776+8 + bhi .L4771 + ldr r10, .L4785+12 + add r4, r6, r4 mov r0, r4 - ldrb r7, [r5, #2772] @ zero_extendqisi2 - mov r1, r7 + ldrb r6, [r10, #-2538] @ zero_extendqisi2 + mov r1, r6 bl __aeabi_uidiv - mov r1, r7 - mov r10, r0 - sub r0, r6, #1 + mov r1, r6 + mov r9, r0 + sub r0, r5, #1 add r0, r0, r4 - mov r8, r10 + mov r7, r9 bl __aeabi_uidiv - add r3, r4, r6 - rsb r7, r10, r0 - str r0, [sp, #8] - add r7, r7, #1 - str fp, [sp, #12] - str r3, [sp, #16] -.L4746: - cmp r7, #0 - beq .L4774 - ldrb r3, [r5, #2800] @ zero_extendqisi2 + add r3, r4, r5 + rsb r6, r9, r0 + str r10, [sp, #16] + ldr r10, .L4785+8 + add r6, r6, #1 + str r0, [sp, #12] + str fp, [sp, #20] + str r3, [sp, #24] +.L4755: + cmp r6, #0 + ldr r2, .L4785+8 + beq .L4783 + ldrb r3, [r10, #2800] @ zero_extendqisi2 cmp r3, #0 - beq .L4747 - ldr r3, .L4776+8 - ldrb r3, [r3, #2774] @ zero_extendqisi2 + beq .L4756 + ldrb r3, [r10, #2773] @ zero_extendqisi2 cmp r3, #2 - bhi .L4747 + bhi .L4756 bl ftl_write_commit -.L4747: +.L4756: mov r0, #0 bl buf_alloc subs fp, r0, #0 - bne .L4748 + bne .L4757 bl ftl_write_commit - b .L4746 -.L4748: - ldrb r3, [sp, #12] @ zero_extendqisi2 - rsb r0, r10, r8 + b .L4755 +.L4757: + ldrb r3, [sp, #20] @ zero_extendqisi2 + rsb r0, r9, r7 clz r0, r0 - ldrb r2, [r5, #2772] @ zero_extendqisi2 strb r3, [fp, #41] mov r0, r0, lsr #5 - ldr r3, [sp, #8] + ldr r3, [sp, #16] + ldrb r2, [r3, #-2538] @ zero_extendqisi2 + ldr r3, [sp, #12] + rsb r1, r3, r7 strb r2, [fp, #40] - rsb r1, r3, r8 clz r1, r1 mov r1, r1, lsr #5 orrs r3, r1, r0 - beq .L4751 + beq .L4760 cmp r0, #0 - beq .L4752 + beq .L4761 mov r1, r2 mov r0, r4 - str r2, [sp, #20] + str r2, [sp, #28] bl __aeabi_uidivmod - ldr r2, [sp, #20] + ldr r2, [sp, #28] uxtb r1, r1 strb r1, [fp, #41] rsb r2, r1, r2 uxtb r2, r2 - cmp r2, r6 - strhib r6, [fp, #40] - bhi .L4751 - b .L4773 -.L4752: + cmp r2, r5 + strhib r5, [fp, #40] + bhi .L4760 + b .L4782 +.L4761: cmp r1, #0 - beq .L4751 - smulbb r2, r8, r2 - ldr r3, [sp, #16] + beq .L4760 + smulbb r2, r7, r2 + ldr r3, [sp, #24] rsb r2, r2, r3 -.L4773: +.L4782: strb r2, [fp, #40] -.L4751: +.L4760: ldrb r0, [fp, #41] @ zero_extendqisi2 - sub r7, r7, #1 + sub r6, r6, #1 ldrb r2, [fp, #40] @ zero_extendqisi2 ldr r1, [fp, #4] mov r2, r2, asl #9 add r0, r1, r0, asl #9 - mov r1, r9 + mov r1, r8 bl ftl_memcpy - ldr r1, [r5, #2804] - str r8, [fp, #20] - add r8, r8, #1 + ldr r1, [r10, #2804] + str r7, [fp, #20] + add r7, r7, #1 ldr r2, [r1, #8] add r0, r2, #1 str r0, [r1, #8] @@ -28878,66 +28925,67 @@ zftl_write: mov r0, fp bl ftl_write_buf ldrb r3, [fp, #40] @ zero_extendqisi2 - add r9, r9, r3, asl #9 - b .L4746 -.L4774: + add r8, r8, r3, asl #9 + b .L4755 +.L4783: + str r2, [sp, #12] bl ftl_write_commit - mov r0, r7 + mov r0, r6 mov r1, #1 bl zftl_do_gc - ldr r3, [r5, #1092] - ldr r2, .L4776+8 + ldr r2, [sp, #12] + ldr r3, [r2, #1096] ldrh r3, [r3, #124] cmp r3, #0 - bne .L4756 + bne .L4765 movw r3, #2788 movw r1, #2792 ldrh r3, [r2, r3] ldrh r2, [r2, r1] add r3, r3, r2 cmp r3, #11 - bgt .L4757 -.L4756: + bgt .L4766 +.L4765: mov r0, #0 mov r1, #1 bl zftl_do_gc -.L4757: - ldr r4, .L4776+12 -.L4758: - ldr r2, .L4776+16 +.L4766: + ldr r4, .L4785+16 +.L4767: + ldr r2, .L4785+20 ldrh r3, [r4] ldrh r2, [r2] add r3, r3, r2 cmp r3, #7 - bgt .L4775 + bgt .L4784 mov r1, #1 mov r0, #0 bl zftl_do_gc mov r0, #1 mov r1, r0 bl zftl_do_gc - b .L4758 -.L4775: + b .L4767 +.L4784: bl timer_get_time - ldr r3, .L4776+20 - str r0, [r3, #552] + ldr r3, [sp, #16] + str r0, [r3, #-4] mov r0, #0 - b .L4745 -.L4762: + b .L4754 +.L4771: mvn r0, #0 -.L4745: - add sp, sp, #28 +.L4754: + add sp, sp, #36 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L4777: +.L4786: .align 2 -.L4776: +.L4785: .word .LANCHOR2 .word .LC315 .word .LANCHOR0 + .word .LANCHOR3 .word .LANCHOR0+2788 .word .LANCHOR0+2792 - .word .LANCHOR3 .fnend .size zftl_write, .-zftl_write .align 2 @@ -28985,7 +29033,7 @@ zftl_discard: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r4, r1 - ldr r6, .L4832 + ldr r6, .L4841 .pad #36 sub sp, sp, #36 ldr r5, [r6, #1032] @@ -28993,68 +29041,68 @@ zftl_discard: cmpls r0, r5 movcs r2, #1 movcc r2, #0 - bcs .L4803 + bcs .L4812 add r3, r0, r1 cmp r3, r5 - bhi .L4803 - ldr r3, .L4832+4 - add r7, r0, #24576 - ldr fp, .L4832+8 + bhi .L4812 + ldr r3, .L4841+4 + add r8, r0, #24576 + ldr r9, .L4841+8 ldr r0, [r3] - ldr r5, [fp, #584] - mov r9, fp + ldr r5, [r9, #28] + mov r7, r9 tst r0, #4096 str r3, [sp, #16] add r1, r1, r5 - str r1, [fp, #584] - beq .L4783 + str r1, [r9, #28] + beq .L4792 str r2, [sp] mov r3, r4 - ldr r0, .L4832+12 - mov r2, r7 + ldr r0, .L4841+12 + mov r2, r8 bl printk -.L4783: +.L4792: ldr r3, [r6, #2804] ldr r10, [r3, #8] add r2, r10, #1 str r2, [r3, #8] bl ftl_write_commit bl ftl_flush - ldrb r8, [r6, #2772] @ zero_extendqisi2 - mov r0, r7 - mov r1, r8 + ldrb r9, [r7, #-2538] @ zero_extendqisi2 + mov r0, r8 + mov r1, r9 bl __aeabi_uidiv - mls fp, r8, r0, r7 + mls fp, r9, r0, r8 mov r5, r0 cmp fp, #0 - beq .L4784 - rsb r8, fp, r8 - cmp r8, r4 - movcs r8, r4 + beq .L4793 + rsb r9, fp, r9 + cmp r9, r4 + movcs r9, r4 bl lpa_hash_get_ppa cmn r0, #1 str r0, [sp, #24] - bne .L4785 + bne .L4794 mov r0, r5 add r1, sp, #24 mov r2, #0 bl pm_log2phys -.L4785: +.L4794: ldr r3, [sp, #24] cmn r3, #1 - uxth r3, r8 + uxth r3, r9 str r3, [sp, #12] - beq .L4787 + beq .L4796 mov r0, #0 bl buf_alloc subs r3, r0, #0 - beq .L4787 + beq .L4796 ldr r0, [r3, #4] mov r1, #0 str r5, [r3, #20] strb fp, [r3, #41] add r0, r0, fp, asl #9 - strb r8, [r3, #40] + strb r9, [r3, #40] str r10, [r3, #16] str r3, [sp, #20] ldr r3, [sp, #12] @@ -29068,33 +29116,33 @@ zftl_discard: ldr r3, [r2, #76] add r3, r3, #1 str r3, [r2, #76] -.L4787: +.L4796: ldr r3, [sp, #12] add r5, r5, #1 rsb r4, r3, r4 -.L4784: +.L4793: cmp r4, #0 - beq .L4789 + beq .L4798 bl ftl_flush -.L4789: - ldr r8, .L4832 +.L4798: + ldr r9, .L4841+8 mvn r3, #0 - ldr fp, .L4832+16 + ldr fp, .L4841+16 str r3, [sp, #28] -.L4790: - ldrb r3, [r6, #2772] @ zero_extendqisi2 +.L4799: + ldrb r3, [r7, #-2538] @ zero_extendqisi2 cmp r4, r3 - bcc .L4831 + bcc .L4840 mov r0, r5 bl lpa_hash_get_ppa cmn r0, #1 str r0, [sp, #24] - beq .L4791 + beq .L4800 mov r0, #0 bl buf_alloc subs r3, r0, #0 - beq .L4793 - ldrb r2, [r8, #2772] @ zero_extendqisi2 + beq .L4802 + ldrb r2, [r9, #-2538] @ zero_extendqisi2 mov r1, #0 str r5, [r3, #20] strb r1, [r3, #41] @@ -29108,20 +29156,20 @@ zftl_discard: mov r0, r3 bl ftl_write_buf bl ftl_write_commit - b .L4830 -.L4791: + b .L4839 +.L4800: mov r0, r5 add r1, sp, #24 mov r2, #0 bl pm_log2phys ldr r3, [sp, #24] cmn r3, #1 - beq .L4793 + beq .L4802 add r1, sp, #28 mov r2, #1 mov r0, r5 bl pm_log2phys - ldrb r3, [r8, #1189] @ zero_extendqisi2 + ldrb r3, [r6, #1153] @ zero_extendqisi2 ldrh r0, [fp] rsb r3, r3, #24 ldrb r1, [r9, #-3130] @ zero_extendqisi2 @@ -29133,100 +29181,100 @@ zftl_discard: bl __aeabi_uidiv uxth r0, r0 bl ftl_vpn_decrement -.L4830: - ldr r2, [r8, #2804] +.L4839: + ldr r2, [r6, #2804] ldr r3, [r2, #76] add r3, r3, #1 str r3, [r2, #76] -.L4793: - ldrb r3, [r6, #2772] @ zero_extendqisi2 +.L4802: + ldrb r3, [r7, #-2538] @ zero_extendqisi2 add r5, r5, #1 rsb r4, r3, r4 - b .L4790 -.L4831: + b .L4799 +.L4840: cmp r4, #0 - beq .L4797 + beq .L4806 mov r0, r5 bl lpa_hash_get_ppa cmn r0, #1 str r0, [sp, #24] - bne .L4798 + bne .L4807 mov r0, r5 add r1, sp, #24 mov r2, #0 bl pm_log2phys -.L4798: +.L4807: ldr r3, [sp, #24] cmn r3, #1 - beq .L4797 + beq .L4806 mov r0, #0 bl buf_alloc - subs r8, r0, #0 - beq .L4797 + subs r9, r0, #0 + beq .L4806 mov r3, #0 - strb r3, [r8, #41] - ldrb r3, [r6, #2772] @ zero_extendqisi2 - str r5, [r8, #20] + strb r3, [r9, #41] + ldrb r3, [r7, #-2538] @ zero_extendqisi2 + str r5, [r9, #20] cmp r4, r3 - strb r4, [r8, #40] - str r10, [r8, #16] - bcc .L4800 - ldr r1, .L4832+20 - movw r2, #1495 - ldr r0, .L4832+24 + strb r4, [r9, #40] + str r10, [r9, #16] + bcc .L4809 + ldr r1, .L4841+20 + movw r2, #1496 + ldr r0, .L4841+24 bl printk bl dump_stack -.L4800: +.L4809: mov r2, r4, asl #9 mov r1, #0 - ldr r0, [r8, #4] + ldr r0, [r9, #4] bl ftl_memset - mov r0, r8 + mov r0, r9 bl ftl_write_buf bl ftl_write_commit ldr r2, [r6, #2804] ldr r3, [r2, #76] add r3, r3, #1 str r3, [r2, #76] -.L4797: - ldr r1, [r9, #584] +.L4806: + ldr r1, [r7, #28] cmp r1, #8192 - bls .L4804 + bls .L4813 ldr r3, [sp, #16] ldr r3, [r3] tst r3, #4096 - beq .L4801 + beq .L4810 mov r3, #0 - ldr r0, .L4832+12 + ldr r0, .L4841+12 str r3, [sp] - mov r2, r7 + mov r2, r8 mov r3, r4 bl printk -.L4801: +.L4810: mov r4, #0 - str r4, [r9, #584] + str r4, [r7, #28] bl flt_sys_flush mov r3, #1 str r3, [r6, #2820] - b .L4804 -.L4803: + b .L4813 +.L4812: mvn r0, #0 - b .L4782 -.L4804: + b .L4791 +.L4813: mov r0, #0 -.L4782: +.L4791: add sp, sp, #36 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L4833: +.L4842: .align 2 -.L4832: +.L4841: .word .LANCHOR0 .word .LANCHOR2 .word .LANCHOR3 .word .LC316 .word .LANCHOR3-3132 - .word .LANCHOR1+2764 + .word .LANCHOR1+2644 .word .LC0 .fnend .size zftl_discard, .-zftl_discard @@ -29240,43 +29288,43 @@ dump_pm_blk: stmfd sp!, {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} movw ip, #698 - ldr r4, .L4840 + ldr r4, .L4849 mov r2, #4 - ldr r0, .L4840+4 + ldr r0, .L4849+4 mov r6, #0 - ldr r5, .L4840+8 + ldr r5, .L4849+8 movw r7, #65535 ldr r3, [r4, #2804] add r1, r3, #704 ldrh r3, [r3, ip] bl rknand_print_hex ldr r1, [r4, #2804] - ldr r0, .L4840+12 + ldr r0, .L4849+12 mov r2, #2 add r1, r1, #416 - ldrh r3, [r5, #-152] + ldrh r3, [r5, #-168] bl rknand_print_hex -.L4835: - ldrh r2, [r5, #-152] +.L4844: + ldrh r2, [r5, #-168] uxth r3, r6 cmp r2, r3 - bls .L4839 + bls .L4848 add r3, r3, #208 ldr r2, [r4, #2804] mov r3, r3, asl #1 ldrh r0, [r2, r3] cmp r0, r7 - beq .L4836 + beq .L4845 mov r1, #0 bl ftl_sblk_dump -.L4836: +.L4845: add r6, r6, #1 - b .L4835 -.L4839: + b .L4844 +.L4848: ldmfd sp!, {r3, r4, r5, r6, r7, pc} -.L4841: +.L4850: .align 2 -.L4840: +.L4849: .word .LANCHOR0 .word .LC268 .word .LANCHOR3 @@ -29293,35 +29341,35 @@ id_block_prog_msb_ff_data: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r4, r2 - ldr r5, .L4849 + ldr r5, .L4858 .pad #20 sub sp, sp, #20 - ldrb r2, [r5, #1102] @ zero_extendqisi2 - ldr r3, [r5, #1096] + ldrb r2, [r5, #1110] @ zero_extendqisi2 + ldr r3, [r5, #1104] cmp r2, #0 ldrb r3, [r3, #19] @ zero_extendqisi2 - bne .L4842 + bne .L4851 sub r2, r3, #5 mov r8, r0 cmp r3, #68 cmpne r2, #2 mov r9, r1 - bls .L4844 + bls .L4853 sub r3, r3, #19 tst r3, #239 - bne .L4842 -.L4844: - ldr fp, .L4849 - ldr r6, .L4849+4 - ldr r7, .L4849+8 -.L4846: - ldr r3, [r5, #1096] + bne .L4851 +.L4853: + ldr fp, .L4858 + ldr r6, .L4858+4 + ldr r7, .L4858+8 +.L4855: + ldr r3, [r5, #1104] ldrh r3, [r3, #10] cmp r3, r4 - bls .L4842 + bls .L4851 mov ip, r4, asl #1 add r10, r4, r9 - ldr r0, .L4849+12 + ldr r0, .L4858+12 mov r1, r4 ldrh r3, [r7, ip] mov r2, r10 @@ -29331,14 +29379,14 @@ id_block_prog_msb_ff_data: ldr ip, [sp, #12] ldrh r2, [r7, ip] cmp r2, r3 - bne .L4842 + bne .L4851 mov r1, #255 mov r2, #16384 - ldr r0, [r6, #-128] + ldr r0, [r6, #-112] add r4, r4, #1 bl ftl_memset - ldr r3, [fp, #1096] - ldr r2, [r6, #-128] + ldr r3, [fp, #1104] + ldr r2, [r6, #-112] mov r0, r8 mov r1, r10 uxth r4, r4 @@ -29346,17 +29394,17 @@ id_block_prog_msb_ff_data: str r3, [sp] mov r3, r2 bl flash_prog_page - b .L4846 -.L4842: + b .L4855 +.L4851: add sp, sp, #20 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L4850: +.L4859: .align 2 -.L4849: +.L4858: .word .LANCHOR0 .word .LANCHOR3 - .word .LANCHOR3-2268 + .word .LANCHOR3-2264 .word .LC317 .fnend .size id_block_prog_msb_ff_data, .-id_block_prog_msb_ff_data @@ -29367,69 +29415,80 @@ write_idblock: .fnstart @ args = 0, pretend = 0, frame = 136 @ frame_needed = 0, uses_anonymous_args = 0 - ldr ip, .L4930 + ldr ip, .L4940 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #156 sub sp, sp, #156 - ldr r3, [ip, #1096] - ldr r5, [r1] - ldr r8, .L4930+4 + ldr r3, [ip, #1104] + ldr r6, [r1] + ldr r8, .L4940+4 ldrb r4, [r3, #9] @ zero_extendqisi2 ldrh r9, [r3, #10] - ldr r3, .L4930+8 - ldr fp, .L4930+12 - ldr r10, .L4930+16 - ldrh r6, [r3, #30] - cmp r5, r8 - cmpne r5, fp + ldr r3, .L4940+8 + ldr fp, .L4940+12 + ldr r10, .L4940+16 + ldrh r7, [r3, #30] + cmp r6, r8 + cmpne r6, fp ldrb r3, [ip] @ zero_extendqisi2 - movne r7, #1 - moveq r7, #0 - cmp r5, r10 + movne r5, #1 moveq r5, #0 - andne r5, r7, #1 + cmp r6, r10 + moveq r5, #0 + andne r5, r5, #1 str r3, [sp, #60] cmp r5, #0 ldrh r3, [sp, #60] str r3, [sp, #44] - ldrb r3, [ip, #1102] @ zero_extendqisi2 + ldrb r3, [ip, #1110] @ zero_extendqisi2 str r3, [sp, #68] - bne .L4928 + bne .L4938 cmp r0, #15 - bls .L4928 - mov r7, r0 + bls .L4938 + mov r5, r0 mov r0, #256000 str ip, [sp, #20] - mov r5, r2 + mov r6, r2 str r1, [sp, #36] bl ftl_malloc subs r3, r0, #0 str r3, [sp, #24] - beq .L4928 - ldr r3, .L4930+20 + beq .L4938 + ldr r3, .L4940+20 ldr ip, [sp, #20] - ldrb r3, [r3, #572] @ zero_extendqisi2 + ldrb r3, [r3, #16] @ zero_extendqisi2 cmp r3, #0 - beq .L4927 + beq .L4937 ldrb r3, [ip] @ zero_extendqisi2 cmp r3, #0 - ldrb r3, [ip, #1102] @ zero_extendqisi2 + ldrb r3, [ip, #1110] @ zero_extendqisi2 clzne r3, r3 movne r3, r3, lsr #5 - bne .L4927 + bne .L4937 cmp r3, #3 streq r3, [sp, #44] moveq r3, #2 - beq .L4927 + beq .L4937 cmp r3, #2 ldr r3, [sp, #44] moveq r3, #2 str r3, [sp, #44] movne r3, #0 moveq r3, #3 -.L4927: +.L4937: + add r5, r5, #508 str r3, [sp, #20] + add r5, r5, #3 + mov r5, r5, lsr #9 + cmp r5, #8 + bls .L4904 + cmp r5, #500 + bhi .L4867 + b .L4866 +.L4904: + mov r5, #8 +.L4866: ldr r3, [sp, #36] ldr r3, [r3] cmp r3, r8 @@ -29440,40 +29499,35 @@ write_idblock: moveq r10, #0 andne r10, fp, #1 cmp r10, #0 - beq .L4858 + beq .L4868 +.L4867: ldr r0, [sp, #24] bl ftl_free -.L4928: +.L4938: mvn r0, #0 - b .L4853 -.L4858: + b .L4862 +.L4868: mov r0, r10 - add r7, r7, #508 bl zftl_flash_exit_slc_mode - ldr r3, .L4930 mul r9, r9, r4 - add r7, r7, #3 - ldrb r2, [r3, #1102] @ zero_extendqisi2 + ldr r3, .L4940 + ldrb r2, [r3, #1110] @ zero_extendqisi2 sub r0, r9, #1 - strb r2, [r3] - mov r3, r7, lsr #9 - cmp r3, #8 + add r0, r0, r5 mov r1, r9 - movcs fp, r3 - movcc fp, #8 - add r0, r0, fp + strb r2, [r3] bl __aeabi_uidiv - ldr ip, .L4930+24 + ldr ip, .L4940+24 movw r2, #63871 ldr r3, [sp, #36] str r0, [sp, #72] movw r0, #4094 add r3, r3, #254976 add r3, r3, #512 -.L4864: +.L4874: ldr r1, [r3, #-4]! cmp r1, #0 - bne .L4859 + bne .L4869 cmp r10, #0 streq ip, [r3, #512] sub r2, r2, #1 @@ -29484,307 +29538,306 @@ write_idblock: cmp r10, r0 movhi r10, #0 cmp r2, #4096 - bne .L4864 - b .L4863 -.L4859: - ldr r0, .L4930+28 + bne .L4874 + b .L4873 +.L4869: + ldr r0, .L4940+28 bl printk -.L4863: - mul r3, r6, r4 - ldr r0, .L4930+32 - mov r1, r5 +.L4873: + mul r3, r7, r4 + ldr r0, .L4940+32 + mov r1, r6 mov r2, #4 - ldr r4, .L4930 + ldr r4, .L4940 str r3, [sp, #56] mov r3, #5 bl rknand_print_hex - ldr r0, .L4930+36 - mov r1, fp - mov r2, fp + ldr r0, .L4940+36 + mov r1, r5 + mov r2, r5 bl printk - sub r3, r5, #4 + sub r3, r6, #4 str r3, [sp, #48] mov r3, #0 str r3, [sp, #40] str r3, [sp, #28] -.L4889: - ldr r3, .L4930+20 - ldrb r3, [r3, #572] @ zero_extendqisi2 +.L4899: + ldr r3, .L4940+20 + ldrb r3, [r3, #16] @ zero_extendqisi2 cmp r3, #0 - bne .L4865 + bne .L4875 ldr r3, [sp, #48] ldr r1, [sp, #72] ldr r2, [r3, #4] ldr r3, [sp, #56] - mul r6, r3, r2 + mul r7, r3, r2 ldr r3, [sp, #28] cmp r3, #0 cmpne r1, #1 - bls .L4866 + bls .L4876 ldr r3, [sp, #48] ldr r3, [r3] add r3, r3, #1 cmp r2, r3 - bne .L4866 - b .L4867 -.L4865: - ldr r3, [r4, #1176] + bne .L4876 + b .L4877 +.L4875: + ldr r3, [r4, #1040] ldr r2, [sp, #28] add r3, r3, r2 - ldrb r6, [r3, #32] @ zero_extendqisi2 - cmp r6, #255 - beq .L4867 + ldrb r7, [r3, #32] @ zero_extendqisi2 + cmp r7, #255 + beq .L4877 ldr r3, [sp, #56] - mul r6, r3, r6 + mul r7, r3, r7 ldr r3, [sp, #20] cmp r3, #0 - beq .L4866 + beq .L4876 ldr r3, [sp, #20] - and r5, r2, #1 + and r6, r2, #1 cmp r3, #3 - orreq r5, r5, #1 - cmp r5, #0 + orreq r6, r6, #1 + cmp r6, #0 ldrneb r3, [sp, #44] @ zero_extendqisi2 strneb r3, [r4] - strneb r3, [r4, #1102] - bne .L4866 - mov r0, r5 - bl zftl_flash_exit_slc_mode - strb r5, [r4] - strb r5, [r4, #1102] -.L4866: - mov r2, #512 - mov r1, #0 - ldr r0, [sp, #24] - mov r7, #0 - bl ftl_memset - ldr r3, [r4, #1096] + strneb r3, [r4, #1110] + bne .L4876 mov r0, r6 - ldrb r10, [r3, #9] @ zero_extendqisi2 - ldrh r8, [r3, #10] - ldr r3, .L4930+8 - mov r1, r10 - mul r8, r8, r10 - ldrh r5, [r3, #30] - ldrb r3, [r4, #1168] @ zero_extendqisi2 - strb r7, [r4, #1168] - mul r5, r5, r10 + bl zftl_flash_exit_slc_mode + strb r6, [r4] + strb r6, [r4, #1110] +.L4876: + mov r1, #0 + mov r2, #512 + ldr r0, [sp, #24] + mov r8, #0 + bl ftl_memset + ldr r3, [r4, #1104] + mov r0, r7 + ldrb r2, [r3, #9] @ zero_extendqisi2 + ldrh r9, [r3, #10] + ldr r3, .L4940+8 + mov r1, r2 + mul r9, r9, r2 + ldrh r6, [r3, #30] + ldrb r3, [r4, #1200] @ zero_extendqisi2 + strb r8, [r4, #1200] + mul r6, r6, r2 + str r2, [sp, #32] str r3, [sp, #76] bl __aeabi_uidiv mov r1, r0 - mov r0, r7 + mov r0, r8 bl flash_erase_block - cmp fp, r8 + cmp r5, r9 movls r0, #1 - bls .L4869 - mov r0, r7 - add r1, r6, r5 + bls .L4879 + mov r0, r8 + add r1, r7, r6 bl flash_erase_block mov r0, #2 -.L4869: - ldr r3, .L4930 - ldr r2, [r3, #1096] +.L4879: + ldr r3, .L4940 + ldr r2, [r3, #1104] ldrh r3, [r2, #10] ldrb r1, [r2, #12] @ zero_extendqisi2 mov r3, r3, asl #2 mul r0, r0, r3 bl __aeabi_idiv - mov r1, r5 + mov r1, r6 str r0, [sp, #80] - mov r0, r6 + mov r0, r7 bl __aeabi_uidivmod - rsb r3, r1, r6 + rsb r3, r1, r7 str r1, [sp, #64] - cmp r6, r3 + cmp r7, r3 str r3, [sp, #52] - bne .L4896 + bne .L4907 ldrb r3, [r4, #1028] @ zero_extendqisi2 cmp r3, #9 - bne .L4896 - ldr r3, .L4930+20 + bne .L4907 + ldr r3, .L4940+20 mov r1, #0 mov r2, #1024 - ldr r5, [r3, #-104] - mov r0, r5 + sub r9, r5, #4 + ldr r6, [r3, #-88] + mov r0, r6 bl ftl_memset - ldr r2, .L4930+40 + ldr r2, .L4940+40 mov r3, #12 - stmia r5, {r2, r3} + stmia r6, {r2, r3} mov r3, #0 - strb r3, [r5, #16] - str r3, [r5, #12] - ldrb r3, [r4, #1102] @ zero_extendqisi2 + strb r3, [r6, #16] + str r3, [r6, #12] + ldrb r3, [r4, #1110] @ zero_extendqisi2 cmp r3, #0 - ldrne r3, [r4, #1096] + ldrne r3, [r4, #1104] ldrneb r3, [r3, #29] @ zero_extendqisi2 - strneb r3, [r5, #16] + strneb r3, [r6, #16] mov r3, #4 - strb r3, [r5, #17] - ldr r3, [r4, #1096] + strb r3, [r6, #17] + ldr r3, [r4, #1104] ldrb r1, [r3, #12] @ zero_extendqisi2 ldrh r0, [r3, #10] bl __aeabi_idiv - cmp r10, #8 mov r3, #0 mov r1, #12 - strb r3, [r5, #20] + strb r3, [r6, #20] + strh r3, [r6, #22] @ movhi + ldr r2, [sp, #32] + strh r0, [r6, #18] @ movhi + add r0, r6, #12 + cmp r2, #8 movhi r2, #70 movls r2, #16 - strh r3, [r5, #22] @ movhi - strh r0, [r5, #18] @ movhi - add r0, r5, #12 - strb r2, [r5, #21] + strb r2, [r6, #21] bl js_hash - sub r3, fp, #4 - str r0, [r5, #8] - str r3, [sp, #32] - b .L4870 -.L4896: - mov r5, #0 - str fp, [sp, #32] -.L4870: - ldr r8, [sp, #36] - mov r9, #0 -.L4873: + str r0, [r6, #8] + b .L4880 +.L4907: + mov r9, r5 + mov r6, #0 +.L4880: + ldr fp, [sp, #36] + mov r10, #0 +.L4883: ldr r3, [sp, #80] - cmp r9, r3 - bcs .L4929 + cmp r10, r3 + bcs .L4939 ldr r3, [sp, #64] - ldrb r2, [r4, #1102] @ zero_extendqisi2 - add r7, r9, r3 - ubfx r7, r7, #2, #16 + ldrb r2, [r4, #1110] @ zero_extendqisi2 + add r8, r10, r3 + ubfx r8, r8, #2, #16 cmp r2, #0 - add r0, r7, #1 + add r0, r8, #1 mov r1, r0, asl #1 add r3, r4, r1 ldrh r3, [r3, #4] - beq .L4875 + beq .L4885 ldrb ip, [r4, #1] @ zero_extendqisi2 cmp ip, #0 moveq r3, r0 movne r3, r1 -.L4875: +.L4885: ldrb r1, [r4, #1028] @ zero_extendqisi2 - ldr r0, .L4930 + ldr r0, .L4940 cmp r1, #9 movw r1, #61424 str r1, [sp, #92] - mov r1, r7, asl #1 + mov r1, r8, asl #1 add r0, r0, r1 subne r3, r3, #1 ldrh r0, [r0, #4] movne r3, r3, asl #2 cmp r2, #0 str r3, [sp, #88] - moveq r7, r0 - beq .L4879 + moveq r8, r0 + beq .L4889 ldrb r2, [r4, #1] @ zero_extendqisi2 cmp r2, #0 - movne r7, r1 -.L4879: - cmp r5, #0 - mul r0, r10, r7 - bne .L4880 + movne r8, r1 +.L4889: + ldr r2, [sp, #32] + cmp r6, #0 + mul r0, r2, r8 + bne .L4890 ldr r2, [sp, #52] - str r8, [sp] + str fp, [sp] add ip, r0, r2 - ldr r2, [r8] - ldr r0, .L4930+44 + ldr r2, [fp] + ldr r0, .L4940+44 mov r1, ip str ip, [sp, #84] stmib sp, {r2, r3} movw r3, #61424 - mov r2, r9 + mov r2, r10 str r3, [sp, #12] - mov r3, fp + mov r3, r5 bl printk - mov r1, r8 + mov r1, fp ldr ip, [sp, #84] add r2, sp, #88 mov r0, ip bl fw_flash_page_prog.constprop.30 - ldrb r3, [r4, #1102] @ zero_extendqisi2 + ldrb r3, [r4, #1110] @ zero_extendqisi2 cmp r3, #0 - bne .L4881 - mov r1, r10 + bne .L4891 + ldr r1, [sp, #32] ldr r0, [sp, #52] bl __aeabi_uidiv - add r2, r7, #1 + add r2, r8, #1 uxth r2, r2 mov r1, r0 - mov r0, r5 + mov r0, r6 bl id_block_prog_msb_ff_data -.L4881: - ldr r3, [sp, #32] - add r8, r8, #2048 - add r3, r3, #16 - cmp r9, r3 - bcc .L4882 - ldr r3, [sp, #32] - add r3, r3, #20 - cmp r9, r3 +.L4891: + add r3, r9, #16 + add fp, fp, #2048 + cmp r10, r3 + bcc .L4892 + add r3, r9, #20 + cmp r10, r3 ldrcc r3, [sp, #36] - addcc r8, r3, #2048 - b .L4882 -.L4880: + addcc fp, r3, #2048 + b .L4892 +.L4890: ldr r3, [sp, #52] - mov r1, r5 + mov r1, r6 add r2, sp, #88 add r0, r0, r3 bl fw_flash_page_prog.constprop.30 -.L4882: - add r9, r9, #4 - mov r5, #0 - uxth r9, r9 - b .L4873 -.L4929: - ldr r3, .L4930 - mov r0, r6 +.L4892: + add r10, r10, #4 + mov r6, #0 + uxth r10, r10 + b .L4883 +.L4939: + ldr r3, .L4940 + mov r0, r7 ldrb r2, [sp, #76] @ zero_extendqisi2 - ldr r1, [sp, #32] - strb r2, [r3, #1168] + mov r1, r9 + strb r2, [r3, #1200] ldr r2, [sp, #24] bl id_block_read_data.constprop.31 ldr r3, [sp, #20] cmp r3, #0 - beq .L4884 + beq .L4894 mov r0, #0 bl zftl_flash_exit_slc_mode mov r3, #0 strb r3, [r4] - strb r3, [r4, #1102] -.L4884: - ldr r3, [sp, #32] - mov r5, #0 - mov r8, r3, asl #7 -.L4887: + strb r3, [r4, #1110] +.L4894: + mov r9, r9, asl #7 + mov r6, #0 +.L4897: ldr r3, [sp, #24] - ldr r2, [r3, r5, asl #2] + ldr r2, [r3, r6, asl #2] ldr r3, [sp, #36] - ldr r3, [r3, r5, asl #2] + ldr r3, [r3, r6, asl #2] cmp r2, r3 - beq .L4885 + beq .L4895 mov r1, #0 mov r2, #512 ldr r0, [sp, #24] bl ftl_memset mov r0, #0 - mov r1, r6 + mov r1, r7 bl flash_erase_block - cmp r5, r8 - bcs .L4886 - b .L4867 -.L4885: - add r5, r5, #1 - cmp r5, r8 - bne .L4887 -.L4886: + cmp r6, r9 + bcs .L4896 + b .L4877 +.L4895: + add r6, r6, #1 + cmp r6, r9 + bne .L4897 +.L4896: ldr r3, [sp, #40] add r3, r3, #1 str r3, [sp, #40] cmp r3, #5 - bhi .L4888 -.L4867: + bhi .L4898 +.L4877: ldr r3, [sp, #28] add r3, r3, #1 str r3, [sp, #28] @@ -29793,20 +29846,20 @@ write_idblock: str r3, [sp, #48] ldr r3, [sp, #28] cmp r3, #4 - bne .L4889 -.L4888: + bne .L4899 +.L4898: mov r0, #0 bl zftl_flash_exit_slc_mode - ldr r3, .L4930 + ldr r3, .L4940 mov r0, #0 ldrb r2, [sp, #60] @ zero_extendqisi2 strb r2, [r3] ldr r2, [sp, #20] cmp r2, #0 ldrneb r2, [sp, #68] @ zero_extendqisi2 - strneb r2, [r3, #1102] + strneb r2, [r3, #1110] mov r2, #2 - strb r2, [r3, #1192] + strb r2, [r3, #1156] bl zftl_flash_enter_slc_mode ldr r0, [sp, #24] bl ftl_free @@ -29814,13 +29867,13 @@ write_idblock: clz r0, r3 mov r0, r0, lsr #5 rsb r0, r0, #0 -.L4853: +.L4862: add sp, sp, #156 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L4931: +.L4941: .align 2 -.L4930: +.L4940: .word .LANCHOR0 .word 1397640018 .word .LANCHOR2 @@ -29850,47 +29903,47 @@ write_loader_lba: sub sp, sp, #52 mov r6, r1 mov r8, r2 - ldr r5, .L4958 - bne .L4933 + ldr r5, .L4968 + bne .L4943 ldr r3, [r2] - ldr r1, .L4958+4 - ldr r2, .L4958+8 + ldr r1, .L4968+4 + ldr r2, .L4968+8 cmp r3, r1 cmpne r3, r2 - ldr r1, .L4958+12 + ldr r1, .L4968+12 moveq r2, #1 movne r2, #0 cmp r3, r1 movne r3, r2 orreq r3, r2, #1 cmp r3, #0 - beq .L4933 + beq .L4943 mov r0, #256000 mov r3, #1 - strb r3, [r5, #588] + strb r3, [r5, #32] bl ftl_malloc mov r1, #0 mov r2, #256000 - str r0, [r5, #592] + str r0, [r5, #36] bl ftl_memset - str r4, [r5, #596] -.L4933: + str r4, [r5, #40] +.L4943: str r6, [sp] mov r3, r4 - ldr r0, .L4958+16 - ldr r1, [r5, #592] + ldr r0, .L4968+16 + ldr r1, [r5, #36] ldr r2, [r8] bl printk - ldrb r3, [r5, #588] @ zero_extendqisi2 - ldr r9, .L4958 + ldrb r3, [r5, #32] @ zero_extendqisi2 + ldr r9, .L4968 cmp r3, #0 - beq .L4932 - ldr r7, [r9, #592] + beq .L4942 + ldr r7, [r9, #36] cmp r7, #0 - beq .L4932 + beq .L4942 sub r0, r4, #64 cmp r0, #500 - bcs .L4935 + bcs .L4945 rsb r2, r4, #564 add r0, r7, r0, asl #9 cmp r2, r6 @@ -29898,34 +29951,34 @@ write_loader_lba: movcs r2, r6 mov r2, r2, asl #9 bl ftl_memcpy - b .L4936 -.L4935: + b .L4946 +.L4945: cmp r4, #564 - bcs .L4944 -.L4936: - ldr r3, [r5, #596] - ldr r8, .L4958 + bcs .L4954 +.L4946: + ldr r3, [r5, #40] + ldr r8, .L4968 cmp r3, r4 - beq .L4942 + beq .L4952 mov r0, r7 mov r9, #0 - strb r9, [r8, #588] + strb r9, [r8, #32] bl ftl_free - str r9, [r8, #592] -.L4942: + str r9, [r8, #36] +.L4952: add r4, r4, r6 - str r4, [r5, #596] - b .L4932 -.L4944: - ldr r3, .L4958+20 - ldr r0, [r9, #596] - ldr r3, [r3, #1096] + str r4, [r5, #40] + b .L4942 +.L4954: + ldr r3, .L4968+20 + ldr r0, [r9, #40] + ldr r3, [r3, #1104] sub r0, r0, #64 cmp r0, #500 ldrb r3, [r3, #9] @ zero_extendqisi2 movcs r0, #500 cmp r3, #4 - beq .L4945 + beq .L4955 mov r3, #2 str r3, [sp, #8] mov r3, #3 @@ -29936,10 +29989,10 @@ write_loader_lba: str r3, [sp, #20] mov r3, #6 str r3, [sp, #24] - b .L4938 -.L4945: + b .L4948 +.L4955: mov r3, #0 -.L4937: +.L4947: cmp r0, #256 add r1, sp, #8 mov r2, r3, asl #1 @@ -29947,37 +30000,37 @@ write_loader_lba: str r2, [r1, r3, asl #2] add r3, r3, #1 cmp r3, #5 - bne .L4937 -.L4938: + bne .L4947 +.L4948: mov r3, #61952 -.L4941: +.L4951: ldr r2, [r7, r3, asl #2] cmp r2, #0 addne r3, r3, #2048 movne r0, r3, asl #2 - bne .L4940 -.L4939: + bne .L4950 +.L4949: sub r3, r3, #1 cmp r3, #4096 - bne .L4941 + bne .L4951 mov r0, r0, asl #9 -.L4940: +.L4950: mov r1, r7 add r2, sp, #8 bl write_idblock - ldr r0, [r5, #592] + ldr r0, [r5, #36] mov r7, #0 - strb r7, [r5, #588] + strb r7, [r5, #32] bl ftl_free - str r7, [r5, #592] - b .L4942 -.L4932: + str r7, [r5, #36] + b .L4952 +.L4942: add sp, sp, #52 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, pc} -.L4959: +.L4969: .align 2 -.L4958: +.L4968: .word .LANCHOR3 .word -52655045 .word 1397640018 @@ -30006,24 +30059,24 @@ FtlWrite: cmp r0, #0 movne r2, #0 cmp r2, #0 - beq .L4961 + beq .L4971 mov r0, r1 mov r2, r3 mov r1, r6 bl write_loader_lba -.L4961: - ldr r3, .L4966 +.L4971: + ldr r3, .L4976 mov r0, r7 mov r1, r4 mov r2, r6 - ldr r3, [r3, #-136] + ldr r3, [r3, #-152] ldr ip, [r3, #24] mov r3, r5 ldmfd sp!, {r4, r5, r6, r7, r8, lr} bx ip -.L4967: +.L4977: .align 2 -.L4966: +.L4976: .word .LANCHOR3 .fnend .size FtlWrite, .-FtlWrite @@ -30032,484 +30085,27 @@ FtlWrite: .type rknand_sys_storage_ioctl, %function rknand_sys_storage_ioctl: .fnstart - @ args = 0, pretend = 0, frame = 520 + @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L5025 - stmfd sp!, {r4, r5, r6, r7, lr} - .save {r4, r5, r6, r7, lr} + stmfd sp!, {r3, lr} + .save {r3, lr} + ldr r3, .L4984 cmp r1, r3 - .pad #524 - sub sp, sp, #524 - mov r4, r1 - mov r5, r2 - beq .L4970 - bhi .L4971 - sub r3, r3, #2080 - sub r3, r3, #6 - cmp r1, r3 - beq .L4972 - bhi .L4973 - sub r3, r3, #238 - cmp r1, r3 - beq .L4974 - add r3, r3, #237 - cmp r1, r3 - beq .L4975 - b .L5005 -.L4973: - ldr r3, .L5025+4 - cmp r1, r3 - beq .L4976 - add r3, r3, #1 - cmp r1, r3 - beq .L4977 - sub r3, r3, #124 - cmp r1, r3 - bne .L5005 - b .L5023 -.L4971: - ldr r3, .L5025+8 - cmp r1, r3 - mov r6, r3 - beq .L4979 - bhi .L4980 - sub r3, r3, #2512 - sub r3, r3, #14 - cmp r1, r3 - beq .L4970 - add r3, r3, #10 - cmp r1, r3 - beq .L4970 - b .L5005 -.L4980: - ldr r3, .L5025+12 - cmp r1, r3 - beq .L4979 - bcc .L4981 - add r3, r3, #1 - cmp r1, r3 - beq .L4981 - b .L5005 -.L4975: - ldr r0, .L5025+16 - bl printk - mov r1, r5 - mov r2, #520 - mov r0, sp - bl rk_copy_from_user - cmp r0, #0 - beq .L4982 -.L4988: - ldr r0, .L5025+20 - bl printk - b .L5020 -.L4982: - ldr r2, [sp] - ldr r3, .L5025+24 - cmp r2, r3 - beq .L4983 -.L4985: - mvn r4, #0 - b .L4984 -.L4983: - ldr r3, [sp, #4] - cmp r3, #512 - bhi .L4985 - ldr r4, .L5025+28 - mov r2, #512 - mov r0, sp - ldr r1, [r4, #600] - bl memcpy - ldr r2, [r4, #604] - ldr r3, .L5025+32 - cmp r2, r3 - beq .L4986 - mov r1, #0 - add r0, sp, #64 - mov r2, #128 - str r1, [sp, #8] - str r1, [sp, #12] - bl memset -.L4986: - mov r1, #0 - add r0, sp, #256 - mov r2, #256 - str r1, [sp, #16] - bl memset -.L5015: - mov r0, r5 - mov r1, sp - mov r2, #520 - bl rk_copy_to_user - cmp r0, #0 - bne .L5020 - b .L5019 -.L4972: - ldr r0, .L5025+36 - bl printk - mov r1, r5 - mov r2, #520 - mov r0, sp - bl rk_copy_from_user - cmp r0, #0 - bne .L4988 - ldr r2, [sp] - ldr r3, .L5025+24 - cmp r2, r3 - bne .L4985 - ldr r3, [sp, #4] - cmp r3, #512 - bhi .L4985 - ldr r2, .L5025+28 - ldr r3, .L5025+32 - ldr r1, [r2, #604] - cmp r1, r3 - mvnne r0, #1 - bne .L4969 - ldr r3, [sp, #12] - sub r1, r3, #1 - cmp r1, #127 - mvnhi r0, #2 - bhi .L4969 - ldr r4, [r2, #600] - add r1, sp, #64 - add r0, r4, #64 - str r3, [r4, #12] - ldr r2, [sp, #12] - bl memcpy - mov r0, #1 - mov r1, r4 - b .L5018 -.L4977: - ldr r0, .L5025+40 - bl printk - mov r1, r5 - mov r2, #520 - mov r0, sp - bl rk_copy_from_user - cmp r0, #0 - bne .L4988 - ldr r2, [sp] - ldr r3, .L5025+44 - cmp r2, r3 - bne .L4985 - ldr r3, [sp, #4] - cmp r3, #512 - bhi .L4985 - ldr r5, .L5025+28 - ldr r3, [r5, #608] - cmp r3, #0 - bne .L4989 -.L4992: - mov r0, #0 - b .L4969 -.L4989: - ldr r3, [r5, #612] - ldr r2, .L5025+48 - ldr r1, [r3] - cmp r1, r2 - beq .L4990 - str r2, [r3] - mov r2, #504 - ldr r3, .L5025+28 - ldr r3, [r3, #612] - str r2, [r3, #4] - mov r2, #0 - str r2, [r3, #8] - str r2, [r3, #12] -.L4990: - ldr r1, [r5, #612] - mov r4, #0 - mov r0, r4 - str r4, [r1, #16] - bl StorageSysDataStore - ldr r3, [r5, #600] - ldr r2, .L5025+24 - ldr r1, [r3] - cmp r1, r2 - strne r2, [r3] - ldr r6, [r5, #600] - ldrne r3, .L5025+28 - movne r2, #504 - add r0, r6, #64 - ldrne r3, [r3, #600] - stmneib r3, {r2, r4} - mov r4, #0 - mov r1, r4 - mov r2, #128 - str r4, [r6, #12] - bl memset - mov r0, #1 - mov r1, r6 - bl StorageSysDataStore - str r4, [r5, #608] - str r4, [r5, #604] - b .L4984 -.L4976: - ldr r0, .L5025+52 - bl printk - mov r1, r5 - mov r2, #520 - mov r0, sp - bl rk_copy_from_user - cmp r0, #0 - bne .L4988 - ldr r2, [sp] - ldr r3, .L5025+56 - cmp r2, r3 - bne .L4985 - ldr r3, [sp, #4] - cmp r3, #512 - bhi .L4985 - ldr r5, .L5025+28 - ldr r3, [r5, #608] - cmp r3, #1 - beq .L4992 - ldr r2, [r5, #612] - ldr r3, .L5025+48 - ldr r1, [r2] - cmp r1, r3 - beq .L4993 - str r3, [r2] - mov r2, #504 - ldr r3, [r5, #612] - str r2, [r3, #4] - mov r2, #0 - str r2, [r3, #8] - str r2, [r3, #12] -.L4993: - ldr r1, [r5, #612] - mov r3, #1 - mov r0, #0 - mov r4, #0 - str r3, [r1, #16] - bl StorageSysDataStore - ldr r3, [r5, #600] - ldr r2, .L5025+24 - ldr r1, [r3] - cmp r1, r2 - strne r2, [r3] - ldr r6, [r5, #600] - ldrne r3, .L5025+28 - movne r1, #504 - movne r2, #0 - add r0, r6, #64 - ldrne r3, [r3, #600] - stmneib r3, {r1, r2} - mov r1, r4 - mov r2, #128 - str r4, [r6, #12] - bl memset - mov r0, #1 - mov r1, r6 - bl StorageSysDataStore - mov r3, #1 - str r3, [r5, #608] - b .L4984 -.L5023: - ldr r0, .L5025+60 - bl printk - mov r1, r5 - mov r2, #520 - mov r0, sp - bl rk_copy_from_user - cmp r0, #0 - bne .L4988 - ldr r2, [sp] - ldr r3, .L5025+64 - cmp r2, r3 - bne .L4985 - ldr r2, [sp, #4] - cmp r2, #512 - addls r0, sp, #8 - ldrls r1, .L5025+68 - bls .L5021 - b .L4985 -.L4970: - ldr r0, .L5025+72 - cmp r4, r0 - mov r7, r0 - ldreq r0, .L5025+76 - beq .L5017 - ldr r3, .L5025+80 - cmp r4, r3 - ldreq r0, .L5025+84 - ldrne r0, .L5025+88 -.L5017: - bl printk - mov r1, r5 - mov r2, #520 - mov r0, sp - bl rk_copy_from_user - cmp r0, #0 - bne .L4988 - ldr r2, [sp] - ldr r3, .L5025+92 - cmp r2, r3 - bne .L5020 - ldr r3, .L5025+80 - ldr r6, .L5025+28 - cmp r4, r3 - bne .L4999 - ldr r3, [r6, #600] - mov r0, r5 - mov r1, sp - mov r2, #16 - ldr r3, [r3, #20] - str r3, [sp, #4] - strb r3, [sp, #8] - bl rk_copy_to_user - cmp r0, #0 - beq .L4969 - b .L5020 -.L4999: - ldr r3, [r6, #1128] - cmp r3, #10 - bhi .L5020 - ldr r1, [r6, #600] - ldr r2, [sp, #4] - ldr r3, [r1, #24] - cmp r3, r2 - cmpne r3, #0 - movne r3, #1 - moveq r3, #0 - beq .L5000 - ldr r0, .L5025+96 - mov r1, r2 - bl printk - ldr r3, [r6, #1128] - add r3, r3, #1 - str r3, [r6, #1128] -.L5020: - mvn r0, #13 - b .L4969 -.L5000: - cmp r4, r7 - str r3, [r6, #1128] - mov r0, #1 - moveq r2, r3 - movne r3, #1 - moveq r3, r2 - str r2, [r1, #24] - str r3, [r1, #20] - bl StorageSysDataStore - cmn r0, #1 - bne .L5019 - b .L5024 -.L4979: - ldr r0, .L5025+100 - bl printk - mov r1, r5 - mov r2, #520 - mov r0, sp - bl rk_copy_from_user - cmp r0, #0 - bne .L4988 - ldr r2, [sp] - ldr r3, .L5025+104 - cmp r2, r3 - bne .L4985 - ldr r2, [sp, #4] - cmp r2, #504 - bhi .L4985 - ldr r3, .L5025+28 - cmp r4, r6 - add r0, sp, #8 - ldreq r1, [r3, #1132] - ldrne r1, [r3, #1136] - add r1, r1, #8 -.L5021: - bl memcpy - b .L5015 -.L4981: - ldr r0, .L5025+108 - bl printk - mov r1, r5 - mov r2, #520 - mov r0, sp - bl rk_copy_from_user - cmp r0, #0 - bne .L4988 - ldr r2, [sp] - ldr r3, .L5025+104 - cmp r2, r3 - bne .L4985 - ldr r2, [sp, #4] - cmp r2, #504 - bhi .L4985 - ldr r3, .L5025+112 - add r2, r2, #8 - cmp r4, r3 - ldr r4, .L5025+28 - bne .L5004 - mov r1, sp - ldr r0, [r4, #1132] - bl memcpy - mov r0, #2 - ldr r1, [r4, #1132] - b .L5018 -.L5004: - mov r1, sp - ldr r0, [r4, #1136] - bl memcpy - ldr r1, [r4, #1136] - mov r0, #3 -.L5018: - bl StorageSysDataStore - mov r4, r0 - b .L4984 -.L4974: + bne .L4982 bl rknand_dev_flush -.L5019: - mov r4, #0 - b .L4984 -.L5024: - mvn r4, #1 -.L4984: - ldr r0, .L5025+116 - mov r1, r4 + mov r1, #0 + ldr r0, .L4984+4 bl printk - mov r0, r4 - b .L4969 -.L5005: + mov r0, #0 + ldmfd sp!, {r3, pc} +.L4982: mvn r0, #21 -.L4969: - add sp, sp, #524 - @ sp needed - ldmfd sp!, {r4, r5, r6, r7, pc} -.L5026: + ldmfd sp!, {r3, pc} +.L4985: .align 2 -.L5025: - .word 1074031656 - .word 1074029694 - .word 1074034192 - .word 1074034194 +.L4984: + .word 1074029332 .word .LC323 - .word .LC324 - .word 1263358532 - .word .LANCHOR3 - .word -1067903959 - .word .LC325 - .word .LC326 - .word 1112753220 - .word 1146313043 - .word .LC327 - .word 1112755781 - .word .LC328 - .word 1094995539 - .word .LANCHOR3+616 - .word 1074031666 - .word .LC329 - .word 1074031676 - .word .LC330 - .word .LC331 - .word 1280262987 - .word .LC332 - .word .LC333 - .word 1145980246 - .word .LC334 - .word 1074034193 - .word .LC335 .fnend .size rknand_sys_storage_ioctl, .-rknand_sys_storage_ioctl .align 2 @@ -30519,63 +30115,19 @@ rk_ftl_storage_sys_init: .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} - mvn r3, #0 - ldr r4, .L5036 - mov r2, #512 - mov r5, #0 - add r0, r4, #616 - ldr r1, [r4, #576] - str r3, [r4, #596] - add r3, r1, #512 - str r3, [r4, #600] - str r1, [r4, #612] - add r3, r1, #1024 - add r1, r1, #1536 - str r3, [r4, #1132] - strb r5, [r4, #588] - str r5, [r4, #592] - str r5, [r4, #1140] - str r1, [r4, #1136] - bl ftl_memcpy - ldr r0, [r4, #612] - str r5, [r4, #604] - str r5, [r4, #1128] - ldr r6, [r0, #508] - ldr r3, [r0, #16] - cmp r6, r5 - str r3, [r4, #608] - beq .L5029 - mov r1, #508 - bl js_hash - cmp r6, r0 - beq .L5029 - ldr r3, [r4, #612] - ldr r0, .L5036+4 - str r5, [r4, #608] - str r5, [r3, #16] - bl printk -.L5029: - ldr r3, [r4, #608] - mov r0, #2 - ldr r1, [r4, #1132] - cmp r3, #0 - ldrne r2, .L5036+8 - ldrne r3, .L5036 - strne r2, [r3, #604] - bl StorageSysDataLoad - ldr r1, [r4, #1136] - mov r0, #3 - bl StorageSysDataLoad - ldmfd sp!, {r4, r5, r6, lr} + @ link register save eliminated. + ldr r3, .L4987 + mov r2, #0 + mvn r1, #0 + strb r2, [r3, #32] + str r1, [r3, #40] + str r2, [r3, #36] + str r2, [r3, #44] b rknand_sys_storage_init -.L5037: +.L4988: .align 2 -.L5036: +.L4987: .word .LANCHOR3 - .word .LC336 - .word -1067903959 .fnend .size rk_ftl_storage_sys_init, .-rk_ftl_storage_sys_init .align 2 @@ -30599,35 +30151,40 @@ rk_ftl_vendor_storage_init: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, lr} .save {r4, r5, r6, r7, r8, r9, r10, lr} + ldr r7, .L5002 + ldr r3, [r7, #48] + cmp r3, #0 + bne .L4991 mov r0, #65536 bl ftl_malloc - ldr r6, .L5050 - cmp r0, #0 - str r0, [r6, #1144] - beq .L5045 - ldr r9, .L5050+4 + str r0, [r7, #48] +.L4991: + ldr r3, [r7, #48] + cmp r3, #0 + beq .L4996 + ldr r10, .L5002 mov r8, #0 + ldr r9, .L5002+4 mov r4, r8 - mov r7, r8 - mov r10, r6 -.L5043: - mov r0, r7, asl #7 + mov r6, r8 +.L4994: + mov r0, r6, asl #7 mov r1, #128 - ldr r2, [r6, #1144] + ldr r2, [r7, #48] bl FlashBootVendorRead cmp r0, #0 - bne .L5041 - ldr r3, [r10, #1144] - ldr r0, .L5050+8 + bne .L4997 + ldr r3, [r10, #48] + ldr r0, .L5002+8 add r2, r3, #61440 ldr r1, [r3] ldr r2, [r2, #4092] ldr r3, [r3, #4] bl printk - ldr r5, [r10, #1144] + ldr r5, [r10, #48] ldr r3, [r5] cmp r3, r9 - bne .L5042 + bne .L4993 add r2, r5, #61440 ldr r3, [r5, #4] ldr r1, [r2, #4092] @@ -30637,53 +30194,50 @@ rk_ftl_vendor_storage_init: cmp r1, r3 movne r2, #0 cmp r2, #0 - movne r8, r7 + movne r8, r6 movne r4, r3 -.L5042: - cmp r7, #1 - movne r7, #1 - bne .L5043 -.L5049: +.L4993: + cmp r6, #1 + movne r6, #1 + bne .L4994 +.L5001: cmp r4, #0 - beq .L5044 + beq .L4995 mov r0, r8, asl #7 mov r1, #128 mov r2, r5 bl FlashBootVendorRead - cmp r0, #0 - bne .L5041 + adds r0, r0, #0 + movne r0, #1 + rsb r0, r0, #0 ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L5044: +.L4995: mov r0, r5 mov r1, r4 mov r2, #65536 bl memset - ldr r3, .L5050+4 - str r7, [r5, #4] + ldr r3, .L5002+4 + str r6, [r5, #4] mov r0, r4 str r3, [r5] add r3, r5, #61440 - str r7, [r3, #4092] - ldr r3, .L5050+12 + str r6, [r3, #4092] + ldr r3, .L5002+12 strh r4, [r5, #12] @ movhi strh r3, [r5, #14] @ movhi ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L5041: - ldr r0, [r6, #1144] - bl kfree - mov r3, #0 - mvn r0, #0 - str r3, [r6, #1144] - ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L5045: +.L4996: mvn r0, #11 ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} -.L5051: +.L4997: + mvn r0, #0 + ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, pc} +.L5003: .align 2 -.L5050: +.L5002: .word .LANCHOR3 .word 1380668996 - .word .LC337 + .word .LC324 .word -1032 .fnend .size rk_ftl_vendor_storage_init, .-rk_ftl_vendor_storage_init @@ -30696,19 +30250,19 @@ rk_ftl_vendor_read: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r3, r4, r5, lr} .save {r3, r4, r5, lr} - ldr r3, .L5059 - ldr ip, [r3, #1144] + ldr r3, .L5011 + ldr ip, [r3, #48] cmp ip, #0 ldrneh r4, [ip, #10] movne r3, #0 - beq .L5057 -.L5054: + beq .L5009 +.L5006: cmp r3, r4 - bcs .L5057 + bcs .L5009 add lr, ip, r3, asl #3 ldrh r5, [lr, #16] cmp r5, r0 - bne .L5055 + bne .L5007 ldrh r3, [lr, #20] mov r0, r1 ldrh r1, [lr, #18] @@ -30721,15 +30275,15 @@ rk_ftl_vendor_read: bl memcpy mov r0, r4 ldmfd sp!, {r3, r4, r5, pc} -.L5055: +.L5007: add r3, r3, #1 - b .L5054 -.L5057: + b .L5006 +.L5009: mvn r0, #0 ldmfd sp!, {r3, r4, r5, pc} -.L5060: +.L5012: .align 2 -.L5059: +.L5011: .word .LANCHOR3 .fnend .size rk_ftl_vendor_read, .-rk_ftl_vendor_read @@ -30743,12 +30297,12 @@ rk_ftl_vendor_write: stmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r9, r2 - ldr r2, .L5084 + ldr r2, .L5036 .pad #28 sub sp, sp, #28 - ldr r4, [r2, #1144] + ldr r4, [r2, #48] cmp r4, #0 - beq .L5076 + beq .L5028 mov r3, r1 add r7, r9, #63 ldrh r1, [r4, #8] @@ -30757,31 +30311,31 @@ rk_ftl_vendor_write: mov ip, r0 mov r6, #0 str r1, [sp, #4] -.L5063: +.L5015: cmp r6, r2 - bcs .L5082 + bcs .L5034 add r5, r4, r6, asl #3 ldrh r1, [r5, #16] cmp r1, ip - bne .L5064 + bne .L5016 ldrh r1, [r5, #20] add fp, r4, #1024 add r1, r1, #63 bic r1, r1, #63 str r1, [sp, #8] cmp r9, r1 - bls .L5065 + bls .L5017 ldrh r1, [r4, #14] cmp r1, r7 subcs r2, r2, #1 strcs r2, [sp, #12] ldrcsh r8, [r5, #18] - bcc .L5076 -.L5066: + bcc .L5028 +.L5018: ldr r2, [sp, #12] add r5, r5, #8 cmp r6, r2 - bcs .L5083 + bcs .L5035 ldrh r10, [r5, #20] add r0, fp, r8 ldrh r2, [r5, #16] @@ -30800,8 +30354,8 @@ rk_ftl_vendor_write: add r8, r8, r10 ldr r3, [sp, #20] ldr ip, [sp, #16] - b .L5066 -.L5083: + b .L5018 +.L5035: add r6, r4, r6, asl #3 uxth r8, r8 add r0, fp, r8 @@ -30819,22 +30373,22 @@ rk_ftl_vendor_write: add r5, r3, r5 rsb r7, r7, r5 strh r7, [r4, #14] @ movhi - b .L5081 -.L5065: + b .L5033 +.L5017: ldrh r0, [r5, #18] mov r1, r3 mov r2, r9 add r0, fp, r0 bl memcpy strh r9, [r5, #20] @ movhi - b .L5081 -.L5064: + b .L5033 +.L5016: add r6, r6, #1 - b .L5063 -.L5082: + b .L5015 +.L5034: ldrh r1, [r4, #14] cmp r1, r7 - bcc .L5076 + bcc .L5028 add r2, r4, r2, asl #3 uxth r7, r7 rsb r1, r7, r1 @@ -30854,7 +30408,7 @@ rk_ftl_vendor_write: ldrh r3, [r4, #10] add r3, r3, #1 strh r3, [r4, #10] @ movhi -.L5081: +.L5033: ldr r3, [r4, #4] add r2, r4, #61440 mov r1, #128 @@ -30872,16 +30426,16 @@ rk_ftl_vendor_write: mov r0, r3, asl #7 bl FlashBootVendorWrite mov r0, #0 - b .L5062 -.L5076: + b .L5014 +.L5028: mvn r0, #0 -.L5062: +.L5014: add sp, sp, #28 @ sp needed ldmfd sp!, {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L5085: +.L5037: .align 2 -.L5084: +.L5036: .word .LANCHOR3 .fnend .size rk_ftl_vendor_write, .-rk_ftl_vendor_write @@ -30894,40 +30448,40 @@ rk_ftl_vendor_storage_ioctl: @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, lr} .save {r4, r5, r6, lr} - mov r0, #4096 + mov r0, #9216 mov r5, r2 mov r6, r1 bl ftl_malloc subs r4, r0, #0 mvneq r5, #0 - beq .L5087 - ldr r3, .L5103 + beq .L5039 + ldr r3, .L5055 cmp r6, r3 - beq .L5089 + beq .L5041 add r3, r3, #1 cmp r6, r3 - beq .L5090 - b .L5101 -.L5089: + beq .L5042 + b .L5053 +.L5041: mov r1, r5 mov r2, #8 bl rk_copy_from_user cmp r0, #0 - bne .L5101 + bne .L5053 ldr r2, [r4] - ldr r3, .L5103+4 + ldr r3, .L5055+4 cmp r2, r3 - beq .L5092 -.L5093: + beq .L5044 +.L5045: mvn r5, #0 - b .L5088 -.L5092: + b .L5040 +.L5044: ldrh r0, [r4, #4] add r1, r4, #8 ldrh r2, [r4, #6] bl rk_ftl_vendor_read cmn r0, #1 - beq .L5093 + beq .L5045 uxth r2, r0 strh r0, [r4, #6] @ movhi mov r1, r4 @@ -30937,44 +30491,44 @@ rk_ftl_vendor_storage_ioctl: cmp r0, #0 moveq r5, #0 mvnne r5, #13 - b .L5088 -.L5090: + b .L5040 +.L5042: mov r1, r5 mov r2, #8 bl rk_copy_from_user cmp r0, #0 - bne .L5101 + bne .L5053 ldr r2, [r4] - ldr r3, .L5103+4 + ldr r3, .L5055+4 cmp r2, r3 - bne .L5093 + bne .L5045 ldrh r2, [r4, #6] movw r3, #4087 cmp r2, r3 - bhi .L5093 + bhi .L5045 mov r0, r4 mov r1, r5 add r2, r2, #8 bl rk_copy_from_user cmp r0, #0 - bne .L5101 + bne .L5053 ldrh r0, [r4, #4] add r1, r4, #8 ldrh r2, [r4, #6] bl rk_ftl_vendor_write mov r5, r0 - b .L5088 -.L5101: + b .L5040 +.L5053: mvn r5, #13 -.L5088: +.L5040: mov r0, r4 bl kfree -.L5087: +.L5039: mov r0, r5 ldmfd sp!, {r4, r5, r6, pc} -.L5104: +.L5056: .align 2 -.L5103: +.L5055: .word 1074034177 .word 1448232273 .fnend @@ -30988,6 +30542,8 @@ rk_ftl_vendor_storage_ioctl: .global gSnSectorData .global gpDrmKeyInfo .global gpBootConfig + .global ftl_dma32_buffer_size + .global ftl_dma32_buffer .global gLoaderBootInfo .global RK29_NANDC1_REG_BASE .global RK29_NANDC_REG_BASE @@ -31158,28 +30714,18 @@ rk_ftl_vendor_storage_ioctl: .global g_flash_spare_buffer .global g_flash_page_buffer .section .rodata - .align 3 + .align 2 .LANCHOR1 = . + 0 - .type __func__.39677, %object - .size __func__.39677, 18 -__func__.39677: + .type __func__.42986, %object + .size __func__.42986, 18 +__func__.42986: .ascii "_list_remove_node\000" .space 2 - .type __func__.39702, %object - .size __func__.39702, 23 -__func__.39702: + .type __func__.43011, %object + .size __func__.43011, 23 +__func__.43011: .ascii "_list_update_data_list\000" .space 1 - .type __func__.20210, %object - .size __func__.20210, 22 -__func__.20210: - .ascii "nand_flash_print_info\000" - .space 2 - .type __func__.20296, %object - .size __func__.20296, 11 -__func__.20296: - .ascii "nandc_init\000" - .space 1 .type toshiba_A19ref_value, %object .size toshiba_A19ref_value, 45 toshiba_A19ref_value: @@ -31339,13 +30885,18 @@ toshiba_ref_value: .byte 8 .byte 12 .byte 112 - .type __func__.19683, %object - .size __func__.19683, 28 -__func__.19683: + .type __func__.23492, %object + .size __func__.23492, 22 +__func__.23492: + .ascii "nand_flash_print_info\000" + .space 2 + .type __func__.22965, %object + .size __func__.22965, 28 +__func__.22965: .ascii "flash_wait_device_ready_raw\000" - .type __func__.19747, %object - .size __func__.19747, 22 -__func__.19747: + .type __func__.23029, %object + .size __func__.23029, 22 +__func__.23029: .ascii "flash_start_page_read\000" .space 2 .type toshiba_3D_tlc_value, %object @@ -32141,19 +31692,19 @@ ymtc_3D_slc_value: .byte -12 .byte 56 .space 2 - .type __func__.19772, %object - .size __func__.19772, 23 -__func__.19772: + .type __func__.23054, %object + .size __func__.23054, 23 +__func__.23054: .ascii "flash_start_plane_read\000" .space 1 - .type __func__.19658, %object - .size __func__.19658, 26 -__func__.19658: + .type __func__.22940, %object + .size __func__.22940, 26 +__func__.22940: .ascii "flash_erase_duplane_block\000" .space 2 - .type __func__.19669, %object - .size __func__.19669, 21 -__func__.19669: + .type __func__.22951, %object + .size __func__.22951, 21 +__func__.22951: .ascii "flash_erase_block_en\000" .space 3 .type random_seed, %object @@ -32287,109 +31838,112 @@ random_seed: .short 28406 .short 17598 .short 28087 - .type __func__.20475, %object - .size __func__.20475, 13 -__func__.20475: + .type __func__.23757, %object + .size __func__.23757, 13 +__func__.23757: .ascii "buf_add_tail\000" .space 3 - .type __func__.20488, %object - .size __func__.20488, 10 -__func__.20488: + .type __func__.23770, %object + .size __func__.23770, 10 +__func__.23770: .ascii "buf_alloc\000" .space 2 - .type __func__.20502, %object - .size __func__.20502, 16 -__func__.20502: + .type __func__.23784, %object + .size __func__.23784, 16 +__func__.23784: .ascii "buf_remove_free\000" - .space 4 .type zftl_debug_proc_fops, %object - .size zftl_debug_proc_fops, 160 + .size zftl_debug_proc_fops, 44 zftl_debug_proc_fops: - .word 0 - .word seq_lseek - .word seq_read - .word zftl_debug_proc_write - .space 36 - .word zftl_debug_proc_open .space 4 + .word zftl_debug_proc_open + .word seq_read + .space 4 + .word zftl_debug_proc_write + .word seq_lseek .word single_release - .space 96 - .type __func__.39210, %object - .size __func__.39210, 12 -__func__.39210: + .space 16 + .type __func__.42519, %object + .size __func__.42519, 12 +__func__.42519: .ascii "gc_add_sblk\000" - .type __func__.39302, %object - .size __func__.39302, 19 -__func__.39302: + .type __func__.42611, %object + .size __func__.42611, 19 +__func__.42611: .ascii "gc_write_completed\000" .space 1 - .type __func__.39908, %object - .size __func__.39908, 18 -__func__.39908: + .type __func__.43217, %object + .size __func__.43217, 18 +__func__.43217: .ascii "ftl_alloc_sys_blk\000" .space 2 - .type __func__.39918, %object - .size __func__.39918, 17 -__func__.39918: + .type __func__.43227, %object + .size __func__.43227, 17 +__func__.43227: .ascii "ftl_free_sys_blk\000" .space 3 - .type __func__.40039, %object - .size __func__.40039, 23 -__func__.40039: + .type __func__.43348, %object + .size __func__.43348, 23 +__func__.43348: .ascii "ftl_get_ppa_from_index\000" .space 1 - .type __func__.40079, %object - .size __func__.40079, 22 -__func__.40079: + .type __func__.43388, %object + .size __func__.43388, 22 +__func__.43388: .ascii "ftl_get_new_free_page\000" .space 2 - .type __func__.40090, %object - .size __func__.40090, 22 -__func__.40090: + .type __func__.43399, %object + .size __func__.43399, 22 +__func__.43399: .ascii "ftl_ext_alloc_new_blk\000" .space 2 - .type __func__.39359, %object - .size __func__.39359, 16 -__func__.39359: + .type __func__.42668, %object + .size __func__.42668, 16 +__func__.42668: .ascii "gc_free_src_blk\000" - .type __func__.38953, %object - .size __func__.38953, 14 -__func__.38953: + .type __func__.42262, %object + .size __func__.42262, 14 +__func__.42262: .ascii "ftl_write_buf\000" .space 2 - .type __func__.38998, %object - .size __func__.38998, 18 -__func__.38998: + .type __func__.42307, %object + .size __func__.42307, 18 +__func__.42307: .ascii "zftl_add_read_buf\000" .space 2 - .type __func__.40512, %object - .size __func__.40512, 21 -__func__.40512: + .type __func__.43821, %object + .size __func__.43821, 21 +__func__.43821: .ascii "pm_select_ram_region\000" .space 3 - .type __func__.20200, %object - .size __func__.20200, 20 -__func__.20200: + .type __func__.23482, %object + .size __func__.23482, 20 +__func__.23482: .ascii "flash_die_info_init\000" - .type __func__.38885, %object - .size __func__.38885, 17 -__func__.38885: + .type __func__.42194, %object + .size __func__.42194, 17 +__func__.42194: .ascii "lpa_rebuild_hash\000" .space 3 - .type __func__.39777, %object - .size __func__.39777, 20 -__func__.39777: + .type __func__.43086, %object + .size __func__.43086, 20 +__func__.43086: .ascii "zftl_sblk_list_init\000" - .type __func__.40444, %object - .size __func__.40444, 13 -__func__.40444: + .type __func__.43753, %object + .size __func__.43753, 13 +__func__.43753: .ascii "pm_free_sblk\000" .space 3 - .type __func__.20538, %object - .size __func__.20538, 21 -__func__.20538: + .type __func__.23820, %object + .size __func__.23820, 21 +__func__.23820: .ascii "flash_info_data_init\000" .space 3 + .type __func__.23578, %object + .size __func__.23578, 11 +__func__.23578: + .ascii "nandc_init\000" + .space 1 .type samsung_14nm_slc_rr, %object .size samsung_14nm_slc_rr, 26 samsung_14nm_slc_rr: @@ -32527,181 +32081,181 @@ samsung_14nm_mlc_rr: .byte 18 .byte 9 .byte 8 - .type __func__.19581, %object - .size __func__.19581, 19 -__func__.19581: + .type __func__.22863, %object + .size __func__.22863, 19 +__func__.22863: .ascii "flash_read_page_en\000" .space 1 - .type __func__.19707, %object - .size __func__.19707, 26 -__func__.19707: + .type __func__.22989, %object + .size __func__.22989, 26 +__func__.22989: .ascii "flash_start_tlc_page_prog\000" .space 2 - .type __func__.19718, %object - .size __func__.19718, 29 -__func__.19718: + .type __func__.23000, %object + .size __func__.23000, 29 +__func__.23000: .ascii "flash_start_3d_mlc_page_prog\000" .space 3 - .type __func__.19736, %object - .size __func__.19736, 22 -__func__.19736: + .type __func__.23018, %object + .size __func__.23018, 22 +__func__.23018: .ascii "flash_start_page_prog\000" .space 2 - .type __func__.19760, %object - .size __func__.19760, 31 -__func__.19760: + .type __func__.23042, %object + .size __func__.23042, 31 +__func__.23042: .ascii "flash_complete_plane_page_read\000" .space 1 - .type __func__.19785, %object - .size __func__.19785, 25 -__func__.19785: + .type __func__.23067, %object + .size __func__.23067, 25 +__func__.23067: .ascii "flash_complete_page_read\000" .space 3 - .type __func__.40277, %object - .size __func__.40277, 31 -__func__.40277: + .type __func__.43586, %object + .size __func__.43586, 31 +__func__.43586: .ascii "queue_wait_first_req_completed\000" .space 1 - .type __func__.40331, %object - .size __func__.40331, 15 -__func__.40331: + .type __func__.43640, %object + .size __func__.43640, 15 +__func__.43640: .ascii "sblk_prog_page\000" .space 1 - .type __func__.40358, %object - .size __func__.40358, 15 -__func__.40358: + .type __func__.43667, %object + .size __func__.43667, 15 +__func__.43667: .ascii "sblk_read_page\000" .space 1 - .type __func__.39257, %object - .size __func__.39257, 21 -__func__.39257: + .type __func__.42566, %object + .size __func__.42566, 21 +__func__.42566: .ascii "gc_check_data_one_wl\000" .space 3 - .type __func__.19642, %object - .size __func__.19642, 19 -__func__.19642: + .type __func__.22924, %object + .size __func__.22924, 19 +__func__.22924: .ascii "flash_prog_page_en\000" .space 1 - .type __func__.40154, %object - .size __func__.40154, 14 -__func__.40154: + .type __func__.43463, %object + .size __func__.43463, 14 +__func__.43463: .ascii "ftl_prog_page\000" .space 2 - .type __func__.39811, %object - .size __func__.39811, 15 -__func__.39811: + .type __func__.43120, %object + .size __func__.43120, 15 +__func__.43120: .ascii "ftl_info_flush\000" .space 1 - .type __func__.40116, %object - .size __func__.40116, 19 -__func__.40116: + .type __func__.43425, %object + .size __func__.43425, 19 +__func__.43425: .ascii "ftl_ext_info_flush\000" .space 1 - .type __func__.40128, %object - .size __func__.40128, 18 -__func__.40128: + .type __func__.43437, %object + .size __func__.43437, 18 +__func__.43437: .ascii "ftl_ext_info_init\000" .space 2 - .type __func__.39866, %object - .size __func__.39866, 15 -__func__.39866: + .type __func__.43175, %object + .size __func__.43175, 15 +__func__.43175: .ascii "ftl_alloc_sblk\000" .space 1 - .type __func__.40484, %object - .size __func__.40484, 17 -__func__.40484: + .type __func__.43793, %object + .size __func__.43793, 17 +__func__.43793: .ascii "pm_alloc_new_blk\000" .space 3 - .type __func__.40494, %object - .size __func__.40494, 14 -__func__.40494: + .type __func__.43803, %object + .size __func__.43803, 14 +__func__.43803: .ascii "pm_write_page\000" .space 2 - .type __func__.20560, %object - .size __func__.20560, 17 -__func__.20560: + .type __func__.23842, %object + .size __func__.23842, 17 +__func__.23842: .ascii "flash_info_flush\000" .space 3 - .type __func__.20523, %object - .size __func__.20523, 20 -__func__.20523: + .type __func__.23805, %object + .size __func__.23805, 20 +__func__.23805: .ascii "flash_info_blk_init\000" - .type __func__.20255, %object - .size __func__.20255, 16 -__func__.20255: + .type __func__.23537, %object + .size __func__.23537, 16 +__func__.23537: .ascii "nand_flash_init\000" - .type __func__.39981, %object - .size __func__.39981, 16 -__func__.39981: + .type __func__.43290, %object + .size __func__.43290, 16 +__func__.43290: .ascii "ftl_sysblk_dump\000" - .type __func__.40006, %object - .size __func__.40006, 23 -__func__.40006: + .type __func__.43315, %object + .size __func__.43315, 23 +__func__.43315: .ascii "ftl_open_sblk_recovery\000" .space 1 - .type __func__.40428, %object - .size __func__.40428, 16 -__func__.40428: + .type __func__.43737, %object + .size __func__.43737, 16 +__func__.43737: .ascii "load_l2p_region\000" - .type __func__.40468, %object - .size __func__.40468, 6 -__func__.40468: + .type __func__.43777, %object + .size __func__.43777, 6 +__func__.43777: .ascii "pm_gc\000" .space 2 - .type __func__.39200, %object - .size __func__.39200, 12 -__func__.39200: + .type __func__.42509, %object + .size __func__.42509, 12 +__func__.42509: .ascii "gc_recovery\000" - .type __func__.39289, %object - .size __func__.39289, 22 -__func__.39289: + .type __func__.42598, %object + .size __func__.42598, 22 +__func__.42598: .ascii "gc_update_l2p_map_new\000" .space 2 - .type __func__.39403, %object - .size __func__.39403, 16 -__func__.39403: + .type __func__.42712, %object + .size __func__.42712, 16 +__func__.42712: .ascii "gc_scan_src_blk\000" - .type __func__.39464, %object - .size __func__.39464, 20 -__func__.39464: + .type __func__.42773, %object + .size __func__.42773, 20 +__func__.42773: .ascii "gc_scan_static_data\000" - .type __func__.39527, %object - .size __func__.39527, 18 -__func__.39527: + .type __func__.42836, %object + .size __func__.42836, 18 +__func__.42836: .ascii "gc_block_vpn_scan\000" .space 2 - .type __func__.39957, %object - .size __func__.39957, 14 -__func__.39957: + .type __func__.43266, %object + .size __func__.43266, 14 +__func__.43266: .ascii "ftl_sblk_dump\000" .space 2 - .type __func__.39031, %object - .size __func__.39031, 10 -__func__.39031: + .type __func__.42340, %object + .size __func__.42340, 10 +__func__.42340: .ascii "zftl_read\000" .space 2 - .type __func__.40060, %object - .size __func__.40060, 19 -__func__.40060: + .type __func__.43369, %object + .size __func__.43369, 19 +__func__.43369: .ascii "ftl_update_l2p_map\000" .space 1 - .type __func__.38935, %object - .size __func__.38935, 17 -__func__.38935: + .type __func__.42244, %object + .size __func__.42244, 17 +__func__.42244: .ascii "ftl_write_commit\000" .space 3 - .type __func__.39332, %object - .size __func__.39332, 16 -__func__.39332: + .type __func__.42641, %object + .size __func__.42641, 16 +__func__.42641: .ascii "gc_do_copy_back\000" - .type __func__.39582, %object - .size __func__.39582, 11 -__func__.39582: + .type __func__.42891, %object + .size __func__.42891, 11 +__func__.42891: .ascii "zftl_do_gc\000" .space 1 - .type __func__.39063, %object - .size __func__.39063, 13 -__func__.39063: + .type __func__.42372, %object + .size __func__.42372, 13 +__func__.42372: .ascii "_ftl_discard\000" .section .rodata.str1.1,"aMS",%progbits,1 .LC0: @@ -32709,7 +32263,7 @@ __func__.39063: .LC1: .ascii "%s\012\000" .LC2: - .ascii "FTL version: 6.0.24 20210315\000" + .ascii "FTL version: 6.0.24 20210716\000" .LC3: .ascii "zftl_debug:0x%x\012\000" .LC4: @@ -32773,229 +32327,229 @@ __func__.39063: .LC33: .ascii "g_flash_toggle_mode_en: %x\012\000" .LC34: - .ascii "...%s enter... %p\012\000" -.LC35: - .ascii "0:%x %x %x %x %x\012\000" -.LC36: - .ascii "g_nandc_ver...%d\012\000" -.LC37: .ascii "nand sdr mode %x\012\000" -.LC38: +.LC35: .ascii "nand ddr mode %x\012\000" -.LC39: +.LC36: .ascii "No.%d FLASH ID:%x %x %x %x %x %x\012\000" -.LC40: +.LC37: .ascii "otp:%x %x %x %x\012\000" -.LC41: +.LC38: .ascii "bad block test:%x %x\012\000" -.LC42: +.LC39: .ascii "flash_erase_duplane_block %x %x %x\012\000" -.LC43: +.LC40: .ascii "flash_erase_duplane_block pageadd = %x status = %x\012" .ascii "\000" -.LC44: +.LC41: .ascii "flash_erase_block %x %x %x\012\000" -.LC45: +.LC42: .ascii "flash_erase_block %d block = %x status = %x\012\000" -.LC46: +.LC43: .ascii "erase done: %x\012\000" -.LC47: +.LC44: .ascii "sblk_queue_head = %d\012\000" -.LC48: +.LC45: .ascii "sblk_read_completed_queue_head = %d\012\000" -.LC49: +.LC46: .ascii "sblk_gc_write_completed_queue_head = %d\012\000" -.LC50: +.LC47: .ascii "sblk_write_completed_queue_head = %d\012\000" -.LC51: +.LC48: .ascii "p_free_buf_head = %d\012\000" -.LC52: +.LC49: .ascii "free_buf_count = %d\012\000" -.LC53: +.LC50: .ascii "buf = %d, next=%d, flag=%d gc_write_flag=%d, lun_st" .ascii "ate=%d, op_status = %d lpa=%x, ppa=%x\012\000" -.LC54: +.LC51: .ascii "flash_mask_bad_block %d %d\012\000" -.LC55: +.LC52: .ascii "zftl_debug\000" -.LC56: +.LC53: .ascii "FLASH ID: %x %x %x %x %x %x\012\000" -.LC57: +.LC54: .ascii "density: %d MB\012\000" -.LC58: +.LC55: .ascii "device density: %d MB\012\000" -.LC59: +.LC56: .ascii "FTL INFO:\012\000" -.LC60: +.LC57: .ascii "max_lpn = 0x%x\012\000" -.LC61: +.LC58: .ascii "density = 0x%x\012\000" -.LC62: +.LC59: .ascii "slc vpn = 0x%x\012\000" -.LC63: +.LC60: .ascii "xlc vpn = 0x%x\012\000" -.LC64: +.LC61: .ascii "free slc blk = 0x%x\012\000" -.LC65: +.LC62: .ascii "free xlc blk = 0x%x\012\000" -.LC66: +.LC63: .ascii "free mix blk = 0x%x\012\000" -.LC67: +.LC64: .ascii "slc data blk = 0x%x\012\000" -.LC68: +.LC65: .ascii "slc cache blk = 0x%x\012\000" -.LC69: +.LC66: .ascii "xlc data blk = 0x%x\012\000" -.LC70: +.LC67: .ascii "free buf = %d, %d, %d\012\000" -.LC71: +.LC68: .ascii "bad blk = %d %d\012\000" -.LC72: +.LC69: .ascii "TBW = %d MB\012\000" -.LC73: +.LC70: .ascii "TBR = %d MB\012\000" -.LC74: +.LC71: .ascii "POC = %d\012\000" -.LC75: +.LC72: .ascii "PLC = %d\012\000" -.LC76: +.LC73: .ascii "sys run time = %d S\012\000" -.LC77: +.LC74: .ascii "slc mode = %x %x %x\012\000" -.LC78: +.LC75: .ascii "prog err = %d\012\000" -.LC79: +.LC76: .ascii "read err = %d\012\000" -.LC80: +.LC77: .ascii "GC XLC page = %d\012\000" -.LC81: +.LC78: .ascii "GC SLC page = %d\012\000" -.LC82: +.LC79: .ascii "discard page = 0x%x\012\000" -.LC83: +.LC80: .ascii "version = %d\012\000" -.LC84: +.LC81: .ascii "acblk = 0x%x %d %d\012\000" -.LC85: +.LC82: .ascii "tmblk = 0x%x %d %d\012\000" -.LC86: +.LC83: .ascii "gcblk = 0x%x %d %d\012\000" -.LC87: +.LC84: .ascii "slc ec = %d, %d, %d, %d, %d\012\000" -.LC88: +.LC85: .ascii "xlc ec = %d, %d, %d, %d, %d\012\000" -.LC89: +.LC86: .ascii "gc free blk th = %d\012\000" -.LC90: +.LC87: .ascii "gc vpn th = %d %d %d %d %d\012\000" -.LC91: +.LC88: .ascii "swl blk = %x %x %x %x\012\000" -.LC92: +.LC89: .ascii "rf info = %x %x %x %x %x\012\000" -.LC93: +.LC90: .ascii "gc_add_sblk = %d, %d, %d, %d, %d, %d, %d\012\000" -.LC94: +.LC91: .ascii "gc_add_sblk = %d, %d, %d\012\000" -.LC95: +.LC92: .ascii "gc_add_sblk = %d, %d, %d,last update:%d, %d\012\000" -.LC96: +.LC93: .ascii "gc_add_sblk = %d, %d, %d, %d, %d, %d\012\000" -.LC97: +.LC94: .ascii "gc_mark_bad_ppa %d %x %x\012\000" -.LC98: +.LC95: .ascii "status: %x, ppa: %x\012\000" -.LC99: +.LC96: .ascii "%d gc_free_temp_buf buf id= %x\012\000" -.LC100: +.LC97: .ascii "gc: b:%x,p:%x,i:%x; free buf=%d %d free slc th: %d\012" .ascii "\000" -.LC101: +.LC98: .ascii "zftl_get_gc_node cache = %x index = %d vpn = %x\012" .ascii "\000" -.LC102: +.LC99: .ascii "gc_search_src_blk mode = %x, src mode = %x, count= " .ascii "%d %d\012\000" -.LC103: +.LC100: .ascii "swl_tlc_free_mini_ec_blk alloc sblk %x\012\000" -.LC104: +.LC101: .ascii "zftl_get_free_sblk %x %d, %p %d %d\012\000" -.LC105: +.LC102: .ascii "zftl_gc_get_free_sblk %x %x %x, %d %d %d\012\000" -.LC106: +.LC103: .ascii "swl_slc_free_mini_ec_blk alloc sblk %x\012\000" -.LC107: +.LC104: .ascii "list count:%p %d\012\000" -.LC108: +.LC105: .ascii "%d: node:%x %x %x %x, %d %d %d %d %d\012\000" -.LC109: +.LC106: .ascii "ftl_vpn_decrement %x = %d, %d\012\000" -.LC110: +.LC107: .ascii "mask bad block:cs %x %x block: %x %x\012\000" -.LC111: +.LC108: .ascii "gc_free_bad_sblk 0x%x\012\000" -.LC112: +.LC109: .ascii "swl_slc_free_mini_ec_blk sblk %x\012\000" -.LC113: +.LC110: .ascii "gc_free_src_blk = %x, vpn = %d\012\000" -.LC114: +.LC111: .ascii "gc_free_src_blk %x, %d\012\000" -.LC115: +.LC112: .ascii "bad blk = %x, %x free blk: s:%x,t:%x,m:%x, data blk" .ascii ":s:%x,%x,t%x vpn: s:%x t:%x, max_vpn: %x\012\000" -.LC116: +.LC113: .ascii "totle w: %d MB,r: %d MB %d dv:0x%X,poc:%d\012\000" -.LC117: +.LC114: .ascii "gc xlc page: %d,gc slc page: %d, tmp w: %d MB\012\000" -.LC118: +.LC115: .ascii "slc ec: %d,%d,%d,%d,%d,tlc ec: %d,%d,%d,%d,%d\012\000" -.LC119: +.LC116: .ascii "gc th: tlc_tlc: %d tlc_slc: %d slc_slc: %d slc_tlc:" .ascii "%d free_th: %d\012\000" -.LC120: +.LC117: .ascii "swl : %x %x %x %x %x %x\012\000" -.LC121: +.LC118: .ascii "ftl prog error =%x, lpa = %x, ppa= %x\012\000" -.LC122: +.LC119: .ascii "ftl re prog: lpa = %x, ppa= %x\012\000" -.LC123: +.LC120: .ascii "dump_sblk_queue: %d\012\000" -.LC124: +.LC121: .ascii "buf id= %d state = %d ppa = %x\012\000" -.LC125: +.LC122: .ascii "%s %d %d\012\000" -.LC126: +.LC123: .ascii "gc_static_wearleveling: min blk: %x,sec=%d,xec = %d" .ascii " ,mode=%d, func=%x, bbt=%x vpn = %d\012\000" -.LC127: +.LC124: .ascii "gc_static_wearleveling: min slc blk: %x,sec=%d,xec " .ascii "= %d ,mode=%d, func=%x, bbt=%x vpn = %d\012\000" -.LC128: +.LC125: .ascii "gc_static_wearleveling: min tlc blk: %x,sec=%d,xec " .ascii "= %d ,mode=%d, func=%x, bbt=%x vpn = %d\012\000" -.LC129: +.LC126: .ascii "gc_static_wearleveling: max slc blk: %x,sec=%d,xec " .ascii "= %d ,mode=%d, func=%x, bbt=%x vpn = %d\012\000" -.LC130: +.LC127: .ascii "gc_static_wearleveling: max xlc blk: %x,sec=%d,xec " .ascii "= %d ,mode=%d, func=%x, bbt=%x vpn = %d\012\000" -.LC131: +.LC128: .ascii "gc_static_wearleveling: slc blk: %x, tlc blk: %d av" .ascii "g slc ec: %d, avg tlc ec: %d \012\000" -.LC132: +.LC129: .ascii "gc_static_wearleveling: min slc ec: %x, min tlc ec:" .ascii " %d max slc ec: %d, max tlc ec: %d; %d %d\012\000" -.LC133: +.LC130: .ascii "swl add tlc gc = %x, %d, %d, %d, %d, %d\012\000" -.LC134: +.LC131: .ascii "swl add slc gc = %x, %d, %d, %d, %d, %d\012\000" -.LC135: +.LC132: .ascii "free blk vpn error: %x %x\012\000" -.LC136: +.LC133: .ascii "GC PM block %x %x %x %d\012\000" -.LC137: +.LC134: .ascii "ftl_free_no_use_map_blk %x %x %x %d\012\000" -.LC138: +.LC135: .ascii "...%d @ %s\012\000" +.LC136: + .ascii "...%s enter... %p\012\000" +.LC137: + .ascii "0:%x %x %x %x %x\012\000" +.LC138: + .ascii "g_nandc_ver...%d\012\000" .LC139: .ascii "rk_ftl_de_init %x\012\000" .LC140: @@ -33386,34 +32940,8 @@ __func__.39063: .LC322: .ascii "wl_lba %p %x %x %x\012\000" .LC323: - .ascii "RKNAND_GET_DRM_KEY\012\000" -.LC324: - .ascii "rk_copy_from_user error\012\000" -.LC325: - .ascii "RKNAND_STORE_DRM_KEY\012\000" -.LC326: - .ascii "RKNAND_DIASBLE_SECURE_BOOT\012\000" -.LC327: - .ascii "RKNAND_ENASBLE_SECURE_BOOT\012\000" -.LC328: - .ascii "RKNAND_GET_SN_SECTOR\012\000" -.LC329: - .ascii "RKNAND_LOADER_UNLOCK\012\000" -.LC330: - .ascii "RKNAND_LOADER_STATUS\012\000" -.LC331: - .ascii "RKNAND_LOADER_LOCK\012\000" -.LC332: - .ascii "LockKey not match %d\012\000" -.LC333: - .ascii "RKNAND_GET_VENDOR_SECTOR\012\000" -.LC334: - .ascii "RKNAND_STORE_VENDOR_SECTOR\012\000" -.LC335: .ascii "return ret = %lx\012\000" -.LC336: - .ascii "secureBootEn check error\012\000" -.LC337: +.LC324: .ascii "\0013vendor storage %x,%x,%x\012\000" .data .align 2 @@ -36490,6 +36018,10 @@ _c_user_data_density: .type gp_sblk_list_tbl, %object .size gp_sblk_list_tbl, 4 gp_sblk_list_tbl: + .space 4 + .type gp_flash_info, %object + .size gp_flash_info, 4 +gp_flash_info: .space 4 .type gp_nandc, %object .size gp_nandc, 4 @@ -36549,6 +36081,15 @@ ftl_sblk_vpn: .size gp_ftl_ext_info, 4 gp_ftl_ext_info: .space 4 + .type g_retryMode, %object + .size g_retryMode, 1 +g_retryMode: + .space 1 + .type g_maxRegNum, %object + .size g_maxRegNum, 1 +g_maxRegNum: + .space 1 + .space 2 .type gp_nand_para_info, %object .size gp_nand_para_info, 4 gp_nand_para_info: @@ -36573,41 +36114,6 @@ g_nand_opt_para: .size g_flash_toggle_mode_en, 1 g_flash_toggle_mode_en: .space 1 - .type nandc_hw_seed, %object - .size nandc_hw_seed, 1 -nandc_hw_seed: - .space 1 - .space 3 - .type g_nandc_v6_master_info, %object - .size g_nandc_v6_master_info, 28 -g_nandc_v6_master_info: - .space 28 - .type nandc_randomizer_en, %object - .size nandc_randomizer_en, 1 -nandc_randomizer_en: - .space 1 - .space 1 - .type fill_spare_size, %object - .size fill_spare_size, 2 -fill_spare_size: - .space 2 - .type g_nandc_ecc_bits, %object - .size g_nandc_ecc_bits, 1 -g_nandc_ecc_bits: - .space 1 - .type g_retryMode, %object - .size g_retryMode, 1 -g_retryMode: - .space 1 - .type g_maxRegNum, %object - .size g_maxRegNum, 1 -g_maxRegNum: - .space 1 - .space 1 - .type gp_flash_info, %object - .size gp_flash_info, 4 -gp_flash_info: - .space 4 .type g_die_cs_idx, %object .size g_die_cs_idx, 8 g_die_cs_idx: @@ -36641,20 +36147,37 @@ IDByte: .type g_flash_interface_mode, %object .size g_flash_interface_mode, 1 g_flash_interface_mode: + .space 1 + .type g_nandc_ecc_bits, %object + .size g_nandc_ecc_bits, 1 +g_nandc_ecc_bits: .space 1 .type g_flash_multi_page_prog_en, %object .size g_flash_multi_page_prog_en, 1 g_flash_multi_page_prog_en: .space 1 + .type nandc_hw_seed, %object + .size nandc_hw_seed, 1 +nandc_hw_seed: + .space 1 + .type nandc_randomizer_en, %object + .size nandc_randomizer_en, 1 +nandc_randomizer_en: + .space 1 + .space 3 + .type g_nandc_v6_master_info, %object + .size g_nandc_v6_master_info, 28 +g_nandc_v6_master_info: + .space 28 + .type fill_spare_size, %object + .size fill_spare_size, 2 +fill_spare_size: + .space 2 .space 2 .type g_buf, %object .size g_buf, 1536 g_buf: .space 1536 - .type _c_ftl_sec_per_page, %object - .size _c_ftl_sec_per_page, 1 -_c_ftl_sec_per_page: - .space 1 .type p_free_buf_head, %object .size p_free_buf_head, 1 p_free_buf_head: @@ -36679,7 +36202,7 @@ sblk_gc_write_completed_queue_head: .size sblk_write_completed_queue_head, 1 sblk_write_completed_queue_head: .space 1 - .space 1 + .space 2 .type _c_totle_phy_density, %object .size _c_totle_phy_density, 4 _c_totle_phy_density: @@ -36897,6 +36420,11 @@ lpa_hash_index: .size ftl_vpn_update_count, 2 ftl_vpn_update_count: .space 2 + .type _c_ftl_sec_per_page, %object + .size _c_ftl_sec_per_page, 1 +_c_ftl_sec_per_page: + .space 1 + .space 1 .type ftl_sblk_update_list_offset, %object .size ftl_sblk_update_list_offset, 2 ftl_sblk_update_list_offset: @@ -36922,6 +36450,7 @@ read_buf_head: .size read_buf_count, 1 read_buf_count: .space 1 + .space 2 .type pm_ram_info, %object .size pm_ram_info, 256 pm_ram_info: @@ -36948,32 +36477,7 @@ g_die_addr: .size g_totle_phy_block, 2 g_totle_phy_block: .space 2 - .type gc_state, %object - .size gc_state, 1 -gc_state: - .space 1 - .space 1 - .type gc_search_count, %object - .size gc_search_count, 4 -gc_search_count: - .space 4 - .type gc_slc_mode_slc_vpn_th, %object - .size gc_slc_mode_slc_vpn_th, 2 -gc_slc_mode_slc_vpn_th: .space 2 - .space 2 - .type gc_lpa_tbl, %object - .size gc_lpa_tbl, 4 -gc_lpa_tbl: - .space 4 - .type gc_pre_ppa_tbl, %object - .size gc_pre_ppa_tbl, 4 -gc_pre_ppa_tbl: - .space 4 - .type gc_des_ppa_tbl, %object - .size gc_des_ppa_tbl, 4 -gc_des_ppa_tbl: - .space 4 .type pm_force_gc, %object .size pm_force_gc, 4 pm_force_gc: @@ -37002,6 +36506,40 @@ gp_ftl_api: .type RK29_NANDC_REG_BASE, %object .size RK29_NANDC_REG_BASE, 4 RK29_NANDC_REG_BASE: + .space 4 + .type ftl_dma32_buffer_size, %object + .size ftl_dma32_buffer_size, 4 +ftl_dma32_buffer_size: + .space 4 + .type ftl_dma32_buffer, %object + .size ftl_dma32_buffer, 4 +ftl_dma32_buffer: + .space 4 + .type gc_state, %object + .size gc_state, 1 +gc_state: + .space 1 + .space 3 + .type gc_search_count, %object + .size gc_search_count, 4 +gc_search_count: + .space 4 + .type gc_slc_mode_slc_vpn_th, %object + .size gc_slc_mode_slc_vpn_th, 2 +gc_slc_mode_slc_vpn_th: + .space 2 + .space 2 + .type gc_lpa_tbl, %object + .size gc_lpa_tbl, 4 +gc_lpa_tbl: + .space 4 + .type gc_pre_ppa_tbl, %object + .size gc_pre_ppa_tbl, 4 +gc_pre_ppa_tbl: + .space 4 + .type gc_des_ppa_tbl, %object + .size gc_des_ppa_tbl, 4 +gc_des_ppa_tbl: .space 4 .type g_flash_tmp_page_buffer, %object .size g_flash_tmp_page_buffer, 4 @@ -37050,11 +36588,12 @@ ftl_flush_jiffies: .size g_flash_multi_page_read_en, 1 g_flash_multi_page_read_en: .space 1 - .space 31 + .space 3 .type ftl_info_spare, %object - .size ftl_info_spare, 256 + .size ftl_info_spare, 4 ftl_info_spare: - .space 256 + .space 4 + .space 8 .type g_ftl_info_blk, %object .size g_ftl_info_blk, 4 g_ftl_info_blk: @@ -37080,11 +36619,10 @@ ftl_ext_info_first_write: .size ftl_ext_info_data_buffer, 4 ftl_ext_info_data_buffer: .space 4 - .space 48 .type ftl_tmp_spare, %object - .size ftl_tmp_spare, 256 + .size ftl_tmp_spare, 4 ftl_tmp_spare: - .space 256 + .space 4 .type pm_gc_enable, %object .size pm_gc_enable, 4 pm_gc_enable: @@ -37182,9 +36720,17 @@ idb_buf: .size idb_last_lba, 4 idb_last_lba: .space 4 - .type gpDrmKeyInfo, %object - .size gpDrmKeyInfo, 4 -gpDrmKeyInfo: + .type g_idb_buffer, %object + .size g_idb_buffer, 4 +g_idb_buffer: + .space 4 + .type g_vendor, %object + .size g_vendor, 4 +g_vendor: + .space 4 + .type SecureBootUnlockTryCount, %object + .size SecureBootUnlockTryCount, 4 +SecureBootUnlockTryCount: .space 4 .type SecureBootCheckOK, %object .size SecureBootCheckOK, 4 @@ -37194,33 +36740,25 @@ SecureBootCheckOK: .size SecureBootEn, 4 SecureBootEn: .space 4 - .type gpBootConfig, %object - .size gpBootConfig, 4 -gpBootConfig: - .space 4 - .type gSnSectorData, %object - .size gSnSectorData, 512 -gSnSectorData: - .space 512 - .type SecureBootUnlockTryCount, %object - .size SecureBootUnlockTryCount, 4 -SecureBootUnlockTryCount: + .type gpVendor1Info, %object + .size gpVendor1Info, 4 +gpVendor1Info: .space 4 .type gpVendor0Info, %object .size gpVendor0Info, 4 gpVendor0Info: .space 4 - .type gpVendor1Info, %object - .size gpVendor1Info, 4 -gpVendor1Info: + .type gSnSectorData, %object + .size gSnSectorData, 512 +gSnSectorData: + .space 512 + .type gpDrmKeyInfo, %object + .size gpDrmKeyInfo, 4 +gpDrmKeyInfo: .space 4 - .type g_idb_buffer, %object - .size g_idb_buffer, 4 -g_idb_buffer: - .space 4 - .type g_vendor, %object - .size g_vendor, 4 -g_vendor: + .type gpBootConfig, %object + .size gpBootConfig, 4 +gpBootConfig: .space 4 .type ftl_low_format_cur_blk, %object .size ftl_low_format_cur_blk, 2 diff --git a/drivers/rk_nand/rk_zftl_arm64.S b/drivers/rk_nand/rk_zftl_arm64.S index 12045b051a46..943e37110677 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: 2021-01-07 + * date: 2021-07-16 * function: rk ftl v6 for rockchip soc base on arm v8 to support 3D/2D * TLC and MLC. */ @@ -17,20 +17,19 @@ flash_mem_cmp8: mov x3, 0 .L2: - cmp w3, w2 mov w4, w3 - bcs .L7 - ldrb w5, [x0,x3] + cmp w3, w2 + bcc .L4 + mov w0, 0 + ret +.L4: + ldrb w5, [x0, x3] add x3, x3, 1 add x6, x1, x3 - ldrb w6, [x6,-1] + ldrb w6, [x6, -1] cmp w6, w5 beq .L2 add w0, w4, 1 - b .L3 -.L7: - mov w0, 0 -.L3: ret .size flash_mem_cmp8, .-flash_mem_cmp8 .align 2 @@ -38,25 +37,25 @@ flash_mem_cmp8: slc_phy_page_address_calc: adrp x1, .LANCHOR0 add x2, x1, :lo12:.LANCHOR0 - ldrb w3, [x1,#:lo12:.LANCHOR0] - cbz w3, .L9 - ldrb w2, [x2,1] - cbz w2, .L10 -.L9: + ldrb w3, [x1, #:lo12:.LANCHOR0] + cbz w3, .L7 + ldrb w2, [x2, 1] + cbz w2, .L8 +.L7: add x1, x1, :lo12:.LANCHOR0 - ldrh w3, [x1,2] + ldrh w3, [x1, 2] udiv w2, w0, w3 mul w2, w2, w3 - ldrb w3, [x1,1] + ldrb w3, [x1, 1] sub w0, w0, w2 - cbz w3, .L11 + cbz w3, .L9 add w0, w2, w0, lsl 1 - b .L10 -.L11: + ret +.L9: add x1, x1, 4 - ldrh w0, [x1,w0,uxtw 1] + ldrh w0, [x1, w0, uxtw 1] add w0, w0, w2 -.L10: +.L8: ret .size slc_phy_page_address_calc, .-slc_phy_page_address_calc .align 2 @@ -64,30 +63,29 @@ slc_phy_page_address_calc: .type zftl_nandc_get_irq_status, %function zftl_nandc_get_irq_status: adrp x1, .LANCHOR0+1028 - ldrb w1, [x1,#:lo12:.LANCHOR0+1028] + ldrb w1, [x1, #:lo12:.LANCHOR0+1028] cmp w1, 9 - bne .L19 - ldr w0, [x0,296] - b .L20 -.L19: - ldr w0, [x0,372] -.L20: + bne .L17 + ldr w0, [x0, 296] + ret +.L17: + ldr w0, [x0, 372] ret .size zftl_nandc_get_irq_status, .-zftl_nandc_get_irq_status - .section .text.unlikely,"ax",%progbits + .section .text.unlikely,"ax",@progbits .align 2 .type isxdigit, %function isxdigit: and w1, w0, -33 - mov w2, 1 sub w1, w1, #65 cmp w1, 25 - bls .L22 + bls .L21 sub w0, w0, #48 cmp w0, 9 - cset w2, ls -.L22: - mov w0, w2 + cset w0, ls + ret +.L21: + mov w0, 1 ret .size isxdigit, .-isxdigit .text @@ -95,133 +93,178 @@ isxdigit: .global zftl_get_density .type zftl_get_density, %function zftl_get_density: - cbnz w0, .L25 + cbnz w0, .L23 adrp x0, .LANCHOR0+1032 - ldr w0, [x0,#:lo12:.LANCHOR0+1032] - b .L26 -.L25: + ldr w0, [x0, #:lo12:.LANCHOR0+1032] + ret +.L23: cmp w0, 4 - mov w0, 8192 - csel w0, w0, wzr, cc -.L26: + cset w0, cc + lsl w0, w0, 13 ret .size zftl_get_density, .-zftl_get_density .align 2 .type _list_remove_node, %function _list_remove_node: stp x29, x30, [sp, -64]! - uxth w1, w1 + and w1, w1, 65535 mov w4, 6 add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] adrp x19, .LANCHOR0 add x3, x19, :lo12:.LANCHOR0 - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] + stp x21, x22, [sp, 32] + stp x23, x24, [sp, 48] umull x21, w1, w4 - ldr x23, [x3,1040] - mov w3, 65535 + mov w1, 65535 + ldr x23, [x3, 1040] add x20, x23, x21 - ldrh w1, [x23,x21] - cmp w1, w3 - bne .L29 - ldrh w3, [x20,2] - cmp w3, w1 - bne .L29 + ldrh w4, [x23, x21] + ldrh w3, [x20, 2] + cmp w4, w1 ldr x1, [x0] + bne .L27 + cmp w3, w4 + bne .L27 cmp x20, x1 - bne .L28 -.L29: - ldrh w1, [x20,2] + bne .L26 +.L27: mov x22, x0 - mov w0, 65535 mov x24, x2 - cmp w1, w0 - bne .L31 - ldr x0, [x22] - cmp x20, x0 - beq .L31 - adrp x0, .LC0 + mov w0, 65535 + cmp w3, w0 + bne .L29 + cmp x20, x1 + beq .L29 adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 mov w2, 202 + adrp x0, .LC0 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L31: +.L29: ldr x0, [x22] - mov w2, 65535 + ldrh w3, [x23, x21] cmp x20, x0 - bne .L32 - ldrh w1, [x23,x21] - cmp w1, w2 - bne .L33 + mov w0, 65535 + bne .L30 + cmp w3, w0 + bne .L31 str xzr, [x22] - b .L34 -.L33: - add x19, x19, :lo12:.LANCHOR0 - mov w0, 6 - umull x1, w1, w0 - ldr x0, [x19,1040] - add x1, x0, x1 - str x1, [x22] - mov w0, -1 - strh w0, [x1,2] - b .L34 .L32: - ldrh w0, [x23,x21] - cmp w0, w2 - bne .L35 - ldrh w1, [x20,2] - cmp w1, w0 - beq .L34 - add x19, x19, :lo12:.LANCHOR0 - mov w0, 6 - mov w2, -1 - umull x1, w1, w0 - ldr x0, [x19,1040] - b .L36 -.L35: - add x19, x19, :lo12:.LANCHOR0 - mov w1, 6 - ldrh w2, [x20,2] - umull x0, w0, w1 - ldr x3, [x19,1040] - add x0, x3, x0 - strh w2, [x0,2] - ldrh w0, [x20,2] - ldrh w2, [x23,x21] - umull x0, w0, w1 - ldr x1, [x19,1040] -.L36: - strh w2, [x1,x0] -.L34: mov w0, -1 - strh w0, [x23,x21] - strh w0, [x20,2] + strh w0, [x23, x21] + strh w0, [x20, 2] ldrh w0, [x24] sub w0, w0, #1 strh w0, [x24] -.L28: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] +.L26: + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] ldp x29, x30, [sp], 64 ret +.L31: + add x19, x19, :lo12:.LANCHOR0 + mov w1, 6 + ldr x0, [x19, 1040] + umaddl x3, w3, w1, x0 + mov w0, -1 + str x3, [x22] + strh w0, [x3, 2] + b .L32 +.L30: + cmp w3, w0 + ldrh w0, [x20, 2] + bne .L33 + cmp w0, w3 + beq .L32 + add x19, x19, :lo12:.LANCHOR0 + mov w1, 6 + mov w2, -1 + umull x0, w0, w1 + ldr x1, [x19, 1040] +.L35: + strh w2, [x1, x0] + b .L32 +.L33: + add x19, x19, :lo12:.LANCHOR0 + mov w1, 6 + ldr x2, [x19, 1040] + umaddl x3, w3, w1, x2 + strh w0, [x3, 2] + ldrh w0, [x20, 2] + ldrh w2, [x23, x21] + umull x0, w0, w1 + ldr x1, [x19, 1040] + b .L35 .size _list_remove_node, .-_list_remove_node .align 2 + .type hynix_set_rr_para, %function +hynix_set_rr_para: + stp x29, x30, [sp, -64]! + adrp x3, .LANCHOR0 + add x3, x3, :lo12:.LANCHOR0 + and w1, w1, 255 + add x29, sp, 0 + stp x21, x22, [sp, 32] + and w0, w0, 255 + str x23, [sp, 48] + stp x19, x20, [sp, 16] + ldr x2, [x3, 1048] + ldr x19, [x3, 1056] + add x23, x2, 128 + add x21, x2, 112 + ldrb w22, [x2, 113] + ldrb w2, [x2, 112] + cmp w2, 8 + mov x2, 32 + umaddl x1, w1, w22, x2 + beq .L37 + mov w2, 160 + umaddl x1, w2, w0, x1 +.L37: + ubfiz x0, x0, 8, 8 + add x21, x21, x1 + add x19, x19, x0 + mov x20, 0 + mov w0, 54 + str w0, [x19, 2056] +.L39: + cmp w22, w20, uxtb + bhi .L40 + mov w0, 22 + str w0, [x19, 2056] + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldr x23, [sp, 48] + ldp x29, x30, [sp], 64 + ret +.L40: + ldrb w0, [x23, x20] + str w0, [x19, 2052] + mov x0, 600 + bl __const_udelay + ldrsb w0, [x21, x20] + add x20, x20, 1 + str w0, [x19, 2048] + b .L39 + .size hynix_set_rr_para, .-hynix_set_rr_para + .align 2 .type zftl_debug_proc_open, %function zftl_debug_proc_open: stp x29, x30, [sp, -32]! add x29, sp, 0 - str x1, [x29,24] + str x19, [sp, 16] + mov x19, x1 bl PDE_DATA - ldr x1, [x29,24] mov x2, x0 - mov x0, x1 adrp x1, zftl_debug_proc_show + mov x0, x19 add x1, x1, :lo12:zftl_debug_proc_show bl single_open + ldr x19, [sp, 16] ldp x29, x30, [sp], 32 ret .size zftl_debug_proc_open, .-zftl_debug_proc_open @@ -229,21 +272,21 @@ zftl_debug_proc_open: .type zftl_debug_proc_show, %function zftl_debug_proc_show: stp x29, x30, [sp, -32]! - adrp x1, .LC1 - adrp x2, .LC2 + adrp x2, .LC1 + adrp x1, .LC2 + add x2, x2, :lo12:.LC1 add x29, sp, 0 - add x1, x1, :lo12:.LC1 - add x2, x2, :lo12:.LC2 - str x19, [sp,16] + str x19, [sp, 16] + add x1, x1, :lo12:.LC2 mov x19, x0 bl seq_printf - adrp x2, .LANCHOR2 + adrp x0, .LANCHOR2 adrp x1, .LC3 - mov x0, x19 add x1, x1, :lo12:.LC3 - ldr w2, [x2,#:lo12:.LANCHOR2] + ldr w2, [x0, #:lo12:.LANCHOR2] + mov x0, x19 bl seq_printf - ldr x19, [sp,16] + ldr x19, [sp, 16] mov w0, 0 ldp x29, x30, [sp], 32 ret @@ -254,260 +297,263 @@ zftl_debug_proc_show: zftl_flash_suspend: adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 - ldrb w1, [x0,1028] + ldrb w1, [x0, 1028] cmp w1, 9 - ldr x1, [x0,1048] + ldr x1, [x0, 1056] ldr w2, [x1] - str w2, [x0,1056] - ldr w2, [x1,4] - str w2, [x0,1060] - bne .L40 - ldr w2, [x1,16] - str w2, [x0,1064] - ldr w2, [x1,32] - str w2, [x0,1068] - ldr w2, [x1,80] - str w2, [x0,1072] - ldr w2, [x1,84] - str w2, [x0,1076] - ldr w2, [x1,520] - str w2, [x0,1080] - ldr w1, [x1,8] - b .L42 -.L40: - ldr w2, [x1,8] - str w2, [x0,1064] - ldr w2, [x1,12] - str w2, [x0,1068] - ldr w2, [x1,304] - str w2, [x0,1072] - ldr w2, [x1,308] - str w2, [x0,1076] - ldr w2, [x1,336] - ldr w1, [x1,344] - str w2, [x0,1080] -.L42: - str w1, [x0,1084] + str w2, [x0, 1064] + ldr w2, [x1, 4] + str w2, [x0, 1068] + bne .L47 + ldr w2, [x1, 16] + str w2, [x0, 1072] + ldr w2, [x1, 32] + str w2, [x0, 1076] + ldr w2, [x1, 80] + str w2, [x0, 1080] + ldr w2, [x1, 84] + str w2, [x0, 1084] + ldr w2, [x1, 520] + ldr w1, [x1, 8] + str w2, [x0, 1088] +.L49: + str w1, [x0, 1092] ret +.L47: + ldr w2, [x1, 8] + str w2, [x0, 1072] + ldr w2, [x1, 12] + str w2, [x0, 1076] + ldr w2, [x1, 304] + str w2, [x0, 1080] + ldr w2, [x1, 308] + str w2, [x0, 1084] + ldr w2, [x1, 336] + str w2, [x0, 1088] + ldr w1, [x1, 344] + b .L49 .size zftl_flash_suspend, .-zftl_flash_suspend .align 2 .type nandc_irq_disable, %function nandc_irq_disable: adrp x2, .LANCHOR0+1028 - ldrb w2, [x2,#:lo12:.LANCHOR0+1028] + ldrb w2, [x2, #:lo12:.LANCHOR0+1028] cmp w2, 9 mov x2, 1 - bne .L44 - ldr w3, [x0,292] + bne .L51 + ldr w3, [x0, 292] lsl x1, x2, x1 orr w2, w3, w1 - str w2, [x0,292] - ldr w2, [x0,288] + str w2, [x0, 292] + ldr w2, [x0, 288] bic w1, w2, w1 - str w1, [x0,288] - b .L43 -.L44: - ldr w3, [x0,368] + str w1, [x0, 288] + ret +.L51: + ldr w3, [x0, 368] lsl x1, x2, x1 orr w2, w3, w1 - str w2, [x0,368] - ldr w2, [x0,364] + str w2, [x0, 368] + ldr w2, [x0, 364] bic w1, w2, w1 - str w1, [x0,364] -.L43: + str w1, [x0, 364] ret .size nandc_irq_disable, .-nandc_irq_disable .align 2 .type _insert_free_list, %function _insert_free_list: - adrp x3, .LANCHOR0 - uxth w1, w1 - add x6, x3, :lo12:.LANCHOR0 - mov x10, x3 - ldrh w4, [x6,1088] + adrp x9, .LANCHOR0 + add x3, x9, :lo12:.LANCHOR0 + and w1, w1, 65535 + ldrh w4, [x3, 1096] cmp w4, w1 - bls .L46 - ldrh w3, [x2] - mov w7, 6 - add w3, w3, 1 - strh w3, [x2] - umull x11, w1, w7 - ldr x12, [x6,1040] + bls .L53 + ldrh w4, [x2] + mov w6, 6 + add w4, w4, 1 + strh w4, [x2] + umull x10, w1, w6 mov w2, -1 - add x5, x12, x11 - strh w2, [x5,2] - strh w2, [x12,x11] + ldr x11, [x3, 1040] + add x5, x11, x10 + strh w2, [x5, 2] + strh w2, [x11, x10] ldr x2, [x0] - cbz x2, .L53 - ldr x9, [x6,1096] - ubfiz x8, x1, 2, 16 - ldrh w13, [x6,1104] - mov w16, 65535 - ldr x14, [x6,1040] - mov x6, -6148914691236517206 - ldr w4, [x9,x8] - ubfx x3, x4, 11, 8 - ldrh w4, [x9,x8] - mov w8, w7 - ubfx x4, x4, 0, 11 - madd w4, w13, w3, w4 + cbnz x2, .L55 +.L60: + str x5, [x0] + ret +.L55: + ldr x8, [x3, 1104] + ubfiz x7, x1, 2, 16 + ldrh w13, [x3, 1112] + mov w15, 65535 + ldr x14, [x3, 1040] + ldr w4, [x8, x7] sub x3, x2, x14 + ldrh w7, [x8, x7] asr x3, x3, 1 - uxth w4, w4 - madd x3, x6, x3, x3 - uxth w3, w3 -.L51: - ubfiz x15, x3, 2, 16 - ldr w6, [x9,x15] - ubfx x7, x6, 11, 8 - ldrh w6, [x9,x15] - ubfx x6, x6, 0, 11 - madd w6, w13, w7, w6 + and w7, w7, 2047 + ubfx x4, x4, 11, 8 + madd w4, w13, w4, w7 + mov x7, -6148914691236517206 + movk x7, 0xaaab, lsl 0 + and w4, w4, 65535 + mul x3, x3, x7 + mov w7, w6 + and w3, w3, 65535 +.L58: + ubfiz x12, x3, 2, 16 + ldr w6, [x8, x12] + ldrh w12, [x8, x12] + ubfx x6, x6, 11, 8 + and w12, w12, 2047 + madd w6, w13, w6, w12 cmp w4, w6, uxth - bls .L49 + bls .L56 ldrh w6, [x2] - cmp w6, w16 - bne .L50 - strh w3, [x5,2] + cmp w6, w15 + bne .L57 + strh w3, [x5, 2] strh w1, [x2] - b .L46 -.L50: - umull x2, w6, w8 + ret +.L57: + umaddl x2, w6, w7, x14 mov w3, w6 - add x2, x14, x2 - b .L51 -.L49: - ldrh w4, [x2,2] - strh w4, [x5,2] - strh w3, [x12,x11] + b .L58 +.L56: + ldrh w4, [x2, 2] + strh w4, [x5, 2] + strh w3, [x11, x10] ldr x3, [x0] cmp x2, x3 - bne .L52 - strh w1, [x2,2] -.L53: - str x5, [x0] - b .L46 -.L52: - ldrh w0, [x2,2] - add x3, x10, :lo12:.LANCHOR0 + bne .L59 + strh w1, [x2, 2] + b .L60 +.L59: + ldrh w0, [x2, 2] + add x3, x9, :lo12:.LANCHOR0 mov w4, 6 - ldr x3, [x3,1040] + ldr x3, [x3, 1040] umull x0, w0, w4 - strh w1, [x3,x0] - strh w1, [x2,2] -.L46: + strh w1, [x3, x0] + strh w1, [x2, 2] +.L53: ret .size _insert_free_list, .-_insert_free_list .align 2 .type _insert_data_list, %function _insert_data_list: - sub sp, sp, #32 - adrp x6, .LANCHOR0 - add x10, x6, :lo12:.LANCHOR0 - uxth w1, w1 - stp x19, x20, [sp] - str x21, [sp,16] - ldrh w3, [x10,1088] + adrp x9, .LANCHOR0 + add x5, x9, :lo12:.LANCHOR0 + and w1, w1, 65535 + ldrh w3, [x5, 1096] cmp w3, w1 - bls .L54 + bls .L83 ldrh w3, [x2] - mov w8, 6 + mov w11, 6 add w3, w3, 1 strh w3, [x2] - umull x8, w1, w8 - ldr x14, [x10,1040] + umull x11, w1, w11 mov w2, -1 - add x7, x14, x8 - strh w2, [x7,2] - strh w2, [x14,x8] + ldr x13, [x5, 1040] + add x10, x13, x11 + strh w2, [x10, 2] + strh w2, [x13, x11] ldr x2, [x0] - cbz x2, .L72 - uxtw x9, w1 - ldr x15, [x10,1112] - ldr x13, [x10,1096] - ldrh w11, [x7,4] - ldrh w5, [x15,x9,lsl 1] - lsl x9, x9, 2 - ldrh w16, [x10,1104] - ldr w3, [x13,x9] - mul w5, w5, w11 - ubfx x4, x3, 11, 8 - ldrh w3, [x13,x9] - and w3, w3, 2047 - cbz w5, .L58 - madd w3, w16, w4, w3 - add w5, w5, w3, uxth -.L58: - add x4, x6, :lo12:.LANCHOR0 - mov x9, -6148914691236517206 - cmp w11, wzr - mov w21, 65535 - csinv w5, w5, wzr, ne - mov w19, 6 - ldr x17, [x4,1040] - ldrh w20, [x4,1088] - sub x3, x2, x17 - asr x3, x3, 1 - madd x3, x9, x3, x3 - mov w9, 0 - uxth w3, w3 + cbnz x2, .L64 + str x10, [x0] + ret .L64: - add w9, w9, 1 + stp x29, x30, [sp, -32]! + uxtw x4, w1 + add x29, sp, 0 + str x19, [sp, 16] + ldr x14, [x5, 1120] + ldrh w6, [x10, 4] + ldr x12, [x5, 1104] + ldrh w15, [x5, 1112] + ldrh w8, [x14, x4, lsl 1] + lsl x4, x4, 2 + ldr w3, [x12, x4] + mul w8, w8, w6 + ldrh w4, [x12, x4] + ubfx x3, x3, 11, 8 + and w4, w4, 2047 + cbz w8, .L65 + madd w3, w15, w3, w4 + add w8, w8, w3, uxth +.L65: + add x4, x9, :lo12:.LANCHOR0 + mov x5, -6148914691236517206 + movk x5, 0xaaab, lsl 0 + cmp w6, 0 + csinv w8, w8, wzr, ne + mov w19, 65535 + ldr x16, [x4, 1040] + mov w18, 6 + ldrh w30, [x4, 1096] + sub x3, x2, x16 + asr x3, x3, 1 + mul x3, x3, x5 + mov w5, 0 + and w3, w3, 65535 +.L71: + add w5, w5, 1 + and w5, w5, 65535 + cmp w5, w30 + bhi .L61 cmp w1, w3 - uxth w9, w9 - beq .L54 - cmp w9, w20 - bhi .L54 - uxtw x12, w3 - ldrh w18, [x2,4] - ldrh w4, [x15,x12,lsl 1] - lsl x12, x12, 2 - ldr w10, [x13,x12] - mul w4, w4, w18 - ubfx x11, x10, 11, 8 - ldrh w10, [x13,x12] - and w10, w10, 2047 - cbz w4, .L61 - madd w10, w16, w11, w10 - add w4, w4, w10, uxth -.L61: - cmp w4, w5 - bcs .L62 - cbz w18, .L62 + beq .L61 + uxtw x7, w3 + ldrh w17, [x2, 4] + ldrh w4, [x14, x7, lsl 1] + lsl x7, x7, 2 + ldr w6, [x12, x7] + mul w4, w4, w17 + ldrh w7, [x12, x7] + ubfx x6, x6, 11, 8 + and w7, w7, 2047 + cbz w4, .L68 + madd w6, w15, w6, w7 + add w4, w4, w6, uxth +.L68: + cbz w17, .L69 + cmp w8, w4 + bls .L69 ldrh w4, [x2] - cmp w4, w21 - bne .L63 - strh w3, [x7,2] + cmp w4, w19 + bne .L70 + strh w3, [x10, 2] strh w1, [x2] - b .L54 -.L63: - umull x2, w4, w19 +.L61: + ldr x19, [sp, 16] + ldp x29, x30, [sp], 32 + ret +.L70: + umaddl x2, w4, w18, x16 mov w3, w4 - add x2, x17, x2 - b .L64 -.L62: - ldrh w4, [x2,2] - strh w4, [x7,2] - strh w3, [x14,x8] + b .L71 +.L69: + ldrh w4, [x2, 2] + strh w4, [x10, 2] + strh w3, [x13, x11] ldr x3, [x0] cmp x2, x3 - bne .L65 - strh w1, [x2,2] + bne .L72 + strh w1, [x2, 2] + str x10, [x0] + b .L61 .L72: - str x7, [x0] - b .L54 -.L65: - ldrh w0, [x2,2] - add x6, x6, :lo12:.LANCHOR0 + ldrh w0, [x2, 2] + add x9, x9, :lo12:.LANCHOR0 mov w3, 6 umull x0, w0, w3 - ldr x3, [x6,1040] - strh w1, [x3,x0] - strh w1, [x2,2] -.L54: - ldp x19, x20, [sp] - ldr x21, [sp,16] - add sp, sp, 32 + ldr x3, [x9, 1040] + strh w1, [x3, x0] + strh w1, [x2, 2] + b .L61 +.L83: ret .size _insert_data_list, .-_insert_data_list .align 2 @@ -515,324 +561,275 @@ _insert_data_list: _list_update_data_list: stp x29, x30, [sp, -80]! add x29, sp, 0 - stp x19, x20, [sp,16] - uxth w19, w1 + stp x19, x20, [sp, 16] + and w19, w1, 65535 adrp x1, .LANCHOR0 add x4, x1, :lo12:.LANCHOR0 - str x25, [sp,64] - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - mov x20, x1 - ldr x3, [x4,1120] - ldrh w5, [x3,16] + stp x21, x22, [sp, 32] + stp x23, x24, [sp, 48] + str x25, [sp, 64] + ldr x3, [x4, 1128] + ldrh w5, [x3, 16] cmp w5, w19 - beq .L73 - ldrh w1, [x3,48] + beq .L85 + mov x20, x1 + ldrh w1, [x3, 48] cmp w1, w19 - beq .L73 - ldrh w1, [x3,80] + beq .L85 + ldrh w1, [x3, 80] cmp w1, w19 - beq .L73 + beq .L85 mov w23, 6 - ldr x25, [x4,1040] + ldr x25, [x4, 1040] ldr x1, [x0] umull x23, w19, w23 add x24, x25, x23 cmp x24, x1 - beq .L73 + beq .L85 mov x21, x0 - ldrh w0, [x24,2] + ldrh w0, [x24, 2] mov w1, 65535 mov x22, x2 cmp w0, w1 - bne .L77 - ldrh w1, [x25,x23] + bne .L89 + ldrh w1, [x25, x23] cmp w1, w0 - bne .L77 + bne .L89 adrp x1, .LANCHOR1 - adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - mov w2, 273 add x1, x1, 24 + mov w2, 273 + adrp x0, .LC0 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L77: - ldrh w3, [x24,2] +.L89: + ldrh w3, [x24, 2] mov w0, 65535 cmp w3, w0 - bne .L78 - ldrh w0, [x25,x23] + bne .L90 + ldrh w0, [x25, x23] cmp w0, w3 - beq .L73 -.L78: + beq .L85 +.L90: add x1, x20, :lo12:.LANCHOR0 - ubfiz x0, x19, 1, 16 - mov x5, -6148914691236517206 - ldr x4, [x1,1112] - ldr x1, [x1,1040] - ldrh w2, [x4,x0] - ldrh w0, [x24,4] - cmp w0, wzr - mul w2, w2, w0 - mov w0, 6 - csinv w2, w2, wzr, ne - umull x3, w3, w0 - asr x0, x3, 1 + ubfiz x2, x19, 1, 16 + ldrh w4, [x24, 4] + mov x6, -6148914691236517206 + movk x6, 0xaaab, lsl 0 + mov w5, -1 + ldr x0, [x1, 1120] + cmp w4, 0 + ldr x1, [x1, 1040] + ldrh w2, [x0, x2] + mul w2, w2, w4 + mov w4, 6 + umull x3, w3, w4 + csel w2, w2, w5, ne + asr x4, x3, 1 add x3, x1, x3 - madd x0, x5, x0, x0 - ldrh w1, [x3,4] - ldrh w0, [x4,x0,lsl 1] - cmp w1, wzr + mul x4, x4, x6 + ldrh w1, [x3, 4] + cmp w1, 0 + ldrh w0, [x0, x4, lsl 1] mul w0, w0, w1 - csinv w0, w0, wzr, ne + csel w0, w0, w5, ne cmp w2, w0 - bcs .L73 - mov x0, x21 - mov w1, w19 + bcs .L85 mov x2, x22 + mov w1, w19 + mov x0, x21 bl _list_remove_node - mov x0, x21 - mov w1, w19 mov x2, x22 + mov w1, w19 + mov x0, x21 bl _insert_data_list -.L73: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldr x25, [sp,64] +.L85: + 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 _list_update_data_list, .-_list_update_data_list .section .text.unlikely .align 2 - .type rk_simple_strtoull.constprop.34, %function -rk_simple_strtoull.constprop.34: - stp x29, x30, [sp, -64]! + .type rk_simple_strtoull.constprop.33, %function +rk_simple_strtoull.constprop.33: + stp x29, x30, [sp, -16]! + mov x3, x0 + mov x6, x1 add x29, sp, 0 - stp x19, x20, [sp,16] - str x23, [sp,48] - mov x20, x0 - stp x21, x22, [sp,32] - mov x23, x1 ldrb w0, [x0] cmp w0, 48 - bne .L94 - ldrb w0, [x20,1] - add x19, x20, 1 - mov w21, 8 + bne .L107 + ldrb w0, [x3, 1] + add x2, x3, 1 orr w0, w0, 32 - uxtb w0, w0 + and w0, w0, 255 cmp w0, 120 - bne .L84 - ldrb w0, [x20,2] + bne .L109 + ldrb w0, [x3, 2] bl isxdigit - cbz w0, .L84 - add x19, x20, 2 - mov w21, 16 - b .L84 -.L94: - mov x19, x20 - mov w21, 10 -.L84: - mov w22, 0 -.L85: - ldrb w20, [x19] - mov w0, w20 - bl isxdigit - cbnz w0, .L86 -.L92: - cbz x23, .L98 - str x19, [x23] - b .L98 -.L86: - sub w2, w20, #48 - cmp w2, 9 - bhi .L99 -.L93: - cmp w2, w21 - bcs .L92 - madd w22, w22, w21, w2 - add x19, x19, 1 - b .L85 -.L99: - orr w20, w20, 32 - sub w2, w20, #87 - b .L93 + cbz w0, .L109 + add x2, x3, 2 + mov w4, 16 +.L97: + mov w5, 0 .L98: - mov w0, w22 - ldr x23, [sp,48] - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x29, x30, [sp], 64 + ldrb w3, [x2] + mov w0, w3 + bl isxdigit + cbnz w0, .L99 +.L105: + cbnz x6, .L100 +.L96: + mov w0, w5 + ldp x29, x30, [sp], 16 ret - .size rk_simple_strtoull.constprop.34, .-rk_simple_strtoull.constprop.34 +.L107: + mov x2, x3 + mov w4, 10 + b .L97 +.L109: + mov w4, 8 + b .L97 +.L99: + sub w0, w3, #48 + cmp w0, 9 + bhi .L110 +.L106: + cmp w0, w4 + bcs .L105 + madd w5, w5, w4, w0 + add x2, x2, 1 + b .L98 +.L100: + str x2, [x6] + b .L96 +.L110: + orr w0, w3, 32 + sub w0, w0, #87 + b .L106 + .size rk_simple_strtoull.constprop.33, .-rk_simple_strtoull.constprop.33 .text .align 2 - .type hynix_set_rr_para, %function -hynix_set_rr_para: - stp x29, x30, [sp, -64]! - adrp x3, .LANCHOR0 - uxtb w1, w1 - add x3, x3, :lo12:.LANCHOR0 - add x29, sp, 0 - uxtb w0, w0 - stp x21, x22, [sp,32] - str x23, [sp,48] - stp x19, x20, [sp,16] - ldr x2, [x3,1128] - ldr x19, [x3,1048] - 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 .L101 - sxtw x2, w0 - mov x3, 160 - madd x2, x2, x3, x1 - add x2, x2, 32 - add x21, x21, x2 - b .L102 -.L101: - add x1, x1, 32 - add x21, x21, x1 -.L102: - ubfiz x0, x0, 8, 8 - mov x20, 0 - add x19, x19, x0 - mov w0, 54 - str w0, [x19,2056] -.L103: - cmp w22, w20, uxtb - bls .L105 - ldrb w0, [x23,x20] - str w0, [x19,2052] - mov x0, 600 - bl __const_udelay - ldrsb w0, [x21,x20] - add x20, x20, 1 - str w0, [x19,2048] - b .L103 -.L105: - mov w0, 22 - str w0, [x19,2056] - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldr x23, [sp,48] - ldp x29, x30, [sp], 64 + .type nandc_de_cs.constprop.35, %function +nandc_de_cs.constprop.35: + adrp x0, .LANCHOR0+1056 + ldr x1, [x0, #:lo12:.LANCHOR0+1056] + ldr w0, [x1] + and w0, w0, -256 + and w0, w0, -131073 + str w0, [x1] ret - .size hynix_set_rr_para, .-hynix_set_rr_para + .size nandc_de_cs.constprop.35, .-nandc_de_cs.constprop.35 .align 2 .global flash_read_status .type flash_read_status, %function flash_read_status: stp x29, x30, [sp, -32]! add x29, sp, 0 - str x19, [sp,16] + str x19, [sp, 16] mov x19, x0 mov w0, 112 - str w0, [x19,8] + str w0, [x19, 8] mov x0, 600 bl __const_udelay ldr w0, [x19] - ldr x19, [sp,16] + ldr x19, [sp, 16] + and w0, w0, 255 ldp x29, x30, [sp], 32 - uxtb w0, w0 ret .size flash_read_status, .-flash_read_status .align 2 .global toshiba_set_rr_para .type toshiba_set_rr_para, %function toshiba_set_rr_para: - uxtb w1, w1 - mov w3, 5 + stp x29, x30, [sp, -80]! + and w1, w1, 255 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, w1, sxtw - add x24, x2, 48 - add x21, x2, 96 - 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 + stp x21, x22, [sp, 32] + mov x21, x0 + mov w0, 5 + stp x23, x24, [sp, 48] + stp x25, x26, [sp, 64] + adrp x22, .LANCHOR0 + umull x2, w2, w0 + adrp x0, .LANCHOR1 + add x0, x0, :lo12:.LANCHOR1 + stp x19, x20, [sp, 16] + add x25, x0, 48 + add x24, x0, 144 + add x25, x25, x2 + add x24, x24, x2 + add x22, x22, :lo12:.LANCHOR0 + mov x19, x0 + add x23, x0, w1, sxtw mov x20, 0 - adrp x26, .LANCHOR0 - mov w27, 85 - mov x19, x2 -.L108: - add x25, x26, :lo12:.LANCHOR0 - ldrb w0, [x25,1137] + mov w26, 85 +.L116: + ldrb w0, [x22, 1137] cmp w0, w20 - bls .L114 - add x0, x19, 48 - str w27, [x22,8] - ldrsb w0, [x20,x0] - str w0, [x22,4] + bhi .L120 + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] + ldp x29, x30, [sp], 80 + ret +.L120: + add x0, x19, 144 + str w26, [x21, 8] + ldrsb w0, [x20, x0] + str w0, [x21, 4] mov x0, 1000 bl __const_udelay - ldrb w0, [x25,1136] + ldrb w0, [x22, 1136] cmp w0, 34 - bne .L109 - ldrsb w0, [x24,x20] - b .L113 -.L109: - cmp w0, 35 - bne .L111 - ldrsb w0, [x21,x20] - b .L113 -.L111: - ldrsb w0, [x23,192] -.L113: - str w0, [x22] + bne .L117 + ldrsb w0, [x24, x20] +.L122: add x20, x20, 1 - b .L108 -.L114: - 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 + str w0, [x21] + b .L116 +.L117: + cmp w0, 35 + bne .L119 + ldrsb w0, [x25, x20] + b .L122 +.L119: + ldrsb w0, [x23, 192] + b .L122 .size toshiba_set_rr_para, .-toshiba_set_rr_para .align 2 .global hynix_reconfig_rr_para .type hynix_reconfig_rr_para, %function hynix_reconfig_rr_para: stp x29, x30, [sp, -32]! - uxtb w0, w0 add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] adrp x19, .LANCHOR0 add x19, x19, :lo12:.LANCHOR0 - ldrb w1, [x19,1136] + ldrb w1, [x19, 1136] sub w1, w1, #1 - uxtb w1, w1 + and w1, w1, 255 cmp w1, 7 - bhi .L115 - ldr x1, [x19,1128] + bhi .L123 + and w0, w0, 255 + ldr x1, [x19, 1048] sxtw x20, w0 add x1, x1, x20 - ldrb w1, [x1,120] - cbz w1, .L115 + ldrb w1, [x1, 120] + cbz w1, .L123 mov w1, 0 bl hynix_set_rr_para - ldr x0, [x19,1128] - add x20, x0, x20 - strb wzr, [x20,120] -.L115: - ldp x19, x20, [sp,16] + ldr x0, [x19, 1048] + add x0, x0, x20 + strb wzr, [x0, 120] +.L123: + ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 32 ret .size hynix_reconfig_rr_para, .-hynix_reconfig_rr_para @@ -842,440 +839,299 @@ hynix_reconfig_rr_para: nand_flash_print_info: stp x29, x30, [sp, -32]! add x29, sp, 0 - str x19, [sp,16] + str x19, [sp, 16] adrp x19, .LANCHOR2 - ldr w0, [x19,#:lo12:.LANCHOR2] - tbz x0, 12, .L121 - adrp x1, .LANCHOR1 - adrp x0, .LC4 - add x1, x1, :lo12:.LANCHOR1 - add x0, x0, :lo12:.LC4 - add x1, x1, 200 - bl printk -.L121: - ldr w0, [x19,#:lo12:.LANCHOR2] - tbz x0, 12, .L122 - adrp x0, .LANCHOR0+1144 - ldr x6, [x0,#:lo12:.LANCHOR0+1144] - adrp x0, .LC5 - add x0, x0, :lo12:.LC5 - ldrb w1, [x6,1] - ldrb w2, [x6,2] - ldrb w3, [x6,3] - ldrb w4, [x6,4] - ldrb w5, [x6,5] - ldrb w6, [x6,6] - bl printk -.L122: - ldr w0, [x19,#:lo12:.LANCHOR2] - tbz x0, 12, .L123 - adrp x0, .LANCHOR0+1144 - ldr x1, [x0,#:lo12:.LANCHOR0+1144] - adrp x0, .LC6 - add x0, x0, :lo12:.LC6 - ldrb w1, [x1,8] - bl printk -.L123: - ldr w0, [x19,#:lo12:.LANCHOR2] - tbz x0, 12, .L124 - adrp x0, .LANCHOR0+1144 - ldr x1, [x0,#:lo12:.LANCHOR0+1144] - adrp x0, .LC7 - add x0, x0, :lo12:.LC7 - ldrb w1, [x1,9] - bl printk -.L124: - ldr w0, [x19,#:lo12:.LANCHOR2] - tbz x0, 12, .L125 - adrp x0, .LANCHOR0+1144 - ldr x1, [x0,#:lo12:.LANCHOR0+1144] - adrp x0, .LC8 - add x0, x0, :lo12:.LC8 - ldrh w1, [x1,10] - bl printk -.L125: - ldr w0, [x19,#:lo12:.LANCHOR2] - tbz x0, 12, .L126 - adrp x0, .LANCHOR0+1144 - ldr x1, [x0,#:lo12:.LANCHOR0+1144] - adrp x0, .LC9 - add x0, x0, :lo12:.LC9 - ldrb w1, [x1,12] - bl printk -.L126: - ldr w0, [x19,#:lo12:.LANCHOR2] - tbz x0, 12, .L127 - adrp x0, .LANCHOR0+1144 - ldr x1, [x0,#:lo12:.LANCHOR0+1144] - adrp x0, .LC10 - add x0, x0, :lo12:.LC10 - ldrb w1, [x1,13] - bl printk -.L127: - ldr w0, [x19,#:lo12:.LANCHOR2] - tbz x0, 12, .L128 - adrp x0, .LANCHOR0+1144 - ldr x1, [x0,#:lo12:.LANCHOR0+1144] - adrp x0, .LC11 - add x0, x0, :lo12:.LC11 - ldrh w1, [x1,14] - bl printk -.L128: - ldr w0, [x19,#:lo12:.LANCHOR2] - tbz x0, 12, .L129 - adrp x0, .LANCHOR0+1144 - ldr x1, [x0,#:lo12:.LANCHOR0+1144] - adrp x0, .LC12 - add x0, x0, :lo12:.LC12 - ldrb w1, [x1,23] - bl printk -.L129: - ldr w0, [x19,#:lo12:.LANCHOR2] + ldr w0, [x19, #:lo12:.LANCHOR2] tbz x0, 12, .L130 - adrp x0, .LANCHOR0+1144 - ldr x1, [x0,#:lo12:.LANCHOR0+1144] - adrp x0, .LC13 - add x0, x0, :lo12:.LC13 - ldrb w1, [x1,18] + adrp x1, .LANCHOR1 + add x1, x1, :lo12:.LANCHOR1 + adrp x0, .LC4 + add x1, x1, 200 + add x0, x0, :lo12:.LC4 bl printk .L130: - ldr w0, [x19,#:lo12:.LANCHOR2] + ldr w0, [x19, #:lo12:.LANCHOR2] tbz x0, 12, .L131 adrp x0, .LANCHOR0+1144 - ldr x1, [x0,#:lo12:.LANCHOR0+1144] - adrp x0, .LC14 - add x0, x0, :lo12:.LC14 - ldrb w1, [x1,19] + ldr x0, [x0, #:lo12:.LANCHOR0+1144] + ldrb w6, [x0, 6] + ldrb w5, [x0, 5] + ldrb w4, [x0, 4] + ldrb w3, [x0, 3] + ldrb w2, [x0, 2] + ldrb w1, [x0, 1] + adrp x0, .LC5 + add x0, x0, :lo12:.LC5 bl printk .L131: - ldr w0, [x19,#:lo12:.LANCHOR2] + ldr w0, [x19, #:lo12:.LANCHOR2] tbz x0, 12, .L132 adrp x0, .LANCHOR0+1144 - ldr x1, [x0,#:lo12:.LANCHOR0+1144] - adrp x0, .LC15 - add x0, x0, :lo12:.LC15 - ldrb w1, [x1,20] + ldr x0, [x0, #:lo12:.LANCHOR0+1144] + ldrb w1, [x0, 8] + adrp x0, .LC6 + add x0, x0, :lo12:.LC6 bl printk .L132: - ldr w0, [x19,#:lo12:.LANCHOR2] + ldr w0, [x19, #:lo12:.LANCHOR2] tbz x0, 12, .L133 - adrp x1, .LANCHOR0+1152 - adrp x0, .LC16 - add x0, x0, :lo12:.LC16 - ldrb w1, [x1,#:lo12:.LANCHOR0+1152] + adrp x0, .LANCHOR0+1144 + ldr x0, [x0, #:lo12:.LANCHOR0+1144] + ldrb w1, [x0, 9] + adrp x0, .LC7 + add x0, x0, :lo12:.LC7 bl printk .L133: - ldr w0, [x19,#:lo12:.LANCHOR2] + ldr w0, [x19, #:lo12:.LANCHOR2] tbz x0, 12, .L134 adrp x0, .LANCHOR0+1144 - ldr x1, [x0,#:lo12:.LANCHOR0+1144] - adrp x0, .LC17 - add x0, x0, :lo12:.LC17 - ldrb w1, [x1,22] + ldr x0, [x0, #:lo12:.LANCHOR0+1144] + ldrh w1, [x0, 10] + adrp x0, .LC8 + add x0, x0, :lo12:.LC8 bl printk .L134: - ldr w0, [x19,#:lo12:.LANCHOR2] + ldr w0, [x19, #:lo12:.LANCHOR2] tbz x0, 12, .L135 - adrp x1, .LANCHOR0+1153 - adrp x0, .LC18 - add x0, x0, :lo12:.LC18 - ldrb w1, [x1,#:lo12:.LANCHOR0+1153] + adrp x0, .LANCHOR0+1144 + ldr x0, [x0, #:lo12:.LANCHOR0+1144] + ldrb w1, [x0, 12] + adrp x0, .LC9 + add x0, x0, :lo12:.LC9 bl printk .L135: - ldr w0, [x19,#:lo12:.LANCHOR2] + ldr w0, [x19, #:lo12:.LANCHOR2] tbz x0, 12, .L136 adrp x0, .LANCHOR0+1144 - ldr x0, [x0,#:lo12:.LANCHOR0+1144] - ldrh w1, [x0,16] + ldr x0, [x0, #:lo12:.LANCHOR0+1144] + ldrb w1, [x0, 13] + adrp x0, .LC10 + add x0, x0, :lo12:.LC10 + bl printk +.L136: + ldr w0, [x19, #:lo12:.LANCHOR2] + tbz x0, 12, .L137 + adrp x0, .LANCHOR0+1144 + ldr x0, [x0, #:lo12:.LANCHOR0+1144] + ldrh w1, [x0, 14] + adrp x0, .LC11 + add x0, x0, :lo12:.LC11 + bl printk +.L137: + ldr w0, [x19, #:lo12:.LANCHOR2] + tbz x0, 12, .L138 + adrp x0, .LANCHOR0+1144 + ldr x0, [x0, #:lo12:.LANCHOR0+1144] + ldrb w1, [x0, 23] + adrp x0, .LC12 + add x0, x0, :lo12:.LC12 + bl printk +.L138: + ldr w0, [x19, #:lo12:.LANCHOR2] + tbz x0, 12, .L139 + adrp x0, .LANCHOR0+1144 + ldr x0, [x0, #:lo12:.LANCHOR0+1144] + ldrb w1, [x0, 18] + adrp x0, .LC13 + add x0, x0, :lo12:.LC13 + bl printk +.L139: + ldr w0, [x19, #:lo12:.LANCHOR2] + tbz x0, 12, .L140 + adrp x0, .LANCHOR0+1144 + ldr x0, [x0, #:lo12:.LANCHOR0+1144] + ldrb w1, [x0, 19] + adrp x0, .LC14 + add x0, x0, :lo12:.LC14 + bl printk +.L140: + ldr w0, [x19, #:lo12:.LANCHOR2] + tbz x0, 12, .L141 + adrp x0, .LANCHOR0+1144 + ldr x0, [x0, #:lo12:.LANCHOR0+1144] + ldrb w1, [x0, 20] + adrp x0, .LC15 + add x0, x0, :lo12:.LC15 + bl printk +.L141: + ldr w0, [x19, #:lo12:.LANCHOR2] + tbz x0, 12, .L142 + adrp x0, .LANCHOR0+1152 + ldrb w1, [x0, #:lo12:.LANCHOR0+1152] + adrp x0, .LC16 + add x0, x0, :lo12:.LC16 + bl printk +.L142: + ldr w0, [x19, #:lo12:.LANCHOR2] + tbz x0, 12, .L143 + adrp x0, .LANCHOR0+1144 + ldr x0, [x0, #:lo12:.LANCHOR0+1144] + ldrb w1, [x0, 22] + adrp x0, .LC17 + add x0, x0, :lo12:.LC17 + bl printk +.L143: + ldr w0, [x19, #:lo12:.LANCHOR2] + tbz x0, 12, .L144 + adrp x0, .LANCHOR0+1153 + ldrb w1, [x0, #:lo12:.LANCHOR0+1153] + adrp x0, .LC18 + add x0, x0, :lo12:.LC18 + bl printk +.L144: + ldr w0, [x19, #:lo12:.LANCHOR2] + tbz x0, 12, .L145 + adrp x0, .LANCHOR0+1144 + ldr x0, [x0, #:lo12:.LANCHOR0+1144] + ldrb w1, [x0, 16] adrp x0, .LC19 add x0, x0, :lo12:.LC19 and w1, w1, 1 bl printk -.L136: - ldr w0, [x19,#:lo12:.LANCHOR2] - tbz x0, 12, .L137 +.L145: + ldr w0, [x19, #:lo12:.LANCHOR2] + tbz x0, 12, .L146 adrp x0, .LANCHOR0+1144 - ldr x0, [x0,#:lo12:.LANCHOR0+1144] - ldrh w1, [x0,16] + ldr x0, [x0, #:lo12:.LANCHOR0+1144] + ldrh w1, [x0, 16] adrp x0, .LC20 add x0, x0, :lo12:.LC20 ubfx x1, x1, 1, 1 bl printk -.L137: - ldr w0, [x19,#:lo12:.LANCHOR2] - tbz x0, 12, .L138 +.L146: + ldr w0, [x19, #:lo12:.LANCHOR2] + tbz x0, 12, .L147 adrp x0, .LANCHOR0+1144 - ldr x0, [x0,#:lo12:.LANCHOR0+1144] - ldrh w1, [x0,16] + ldr x0, [x0, #:lo12:.LANCHOR0+1144] + ldrh w1, [x0, 16] adrp x0, .LC21 add x0, x0, :lo12:.LC21 ubfx x1, x1, 2, 1 bl printk -.L138: - ldr w0, [x19,#:lo12:.LANCHOR2] - tbz x0, 12, .L139 +.L147: + ldr w0, [x19, #:lo12:.LANCHOR2] + tbz x0, 12, .L148 adrp x0, .LANCHOR0+1144 - ldr x0, [x0,#:lo12:.LANCHOR0+1144] - ldrh w1, [x0,16] + ldr x0, [x0, #:lo12:.LANCHOR0+1144] + ldrh w1, [x0, 16] adrp x0, .LC22 add x0, x0, :lo12:.LC22 ubfx x1, x1, 3, 1 bl printk -.L139: - ldr w0, [x19,#:lo12:.LANCHOR2] - tbz x0, 12, .L140 +.L148: + ldr w0, [x19, #:lo12:.LANCHOR2] + tbz x0, 12, .L149 adrp x0, .LANCHOR0+1144 - ldr x0, [x0,#:lo12:.LANCHOR0+1144] - ldrh w1, [x0,16] + ldr x0, [x0, #:lo12:.LANCHOR0+1144] + ldrh w1, [x0, 16] adrp x0, .LC23 add x0, x0, :lo12:.LC23 ubfx x1, x1, 4, 1 bl printk -.L140: - ldr w0, [x19,#:lo12:.LANCHOR2] - tbz x0, 12, .L141 +.L149: + ldr w0, [x19, #:lo12:.LANCHOR2] + tbz x0, 12, .L150 adrp x0, .LANCHOR0+1144 - ldr x0, [x0,#:lo12:.LANCHOR0+1144] - ldrh w1, [x0,16] + ldr x0, [x0, #:lo12:.LANCHOR0+1144] + ldrh w1, [x0, 16] adrp x0, .LC24 add x0, x0, :lo12:.LC24 ubfx x1, x1, 5, 1 bl printk -.L141: - ldr w0, [x19,#:lo12:.LANCHOR2] - tbz x0, 12, .L142 +.L150: + ldr w0, [x19, #:lo12:.LANCHOR2] + tbz x0, 12, .L151 adrp x0, .LANCHOR0+1144 - ldr x0, [x0,#:lo12:.LANCHOR0+1144] - ldrh w1, [x0,16] + ldr x0, [x0, #:lo12:.LANCHOR0+1144] + ldrh w1, [x0, 16] adrp x0, .LC25 add x0, x0, :lo12:.LC25 ubfx x1, x1, 6, 1 bl printk -.L142: - ldr w0, [x19,#:lo12:.LANCHOR2] - tbz x0, 12, .L143 +.L151: + ldr w0, [x19, #:lo12:.LANCHOR2] + tbz x0, 12, .L152 adrp x0, .LANCHOR0+1144 - ldr x0, [x0,#:lo12:.LANCHOR0+1144] - ldrh w1, [x0,16] + ldr x0, [x0, #:lo12:.LANCHOR0+1144] + ldrh w1, [x0, 16] adrp x0, .LC26 add x0, x0, :lo12:.LC26 ubfx x1, x1, 7, 1 bl printk -.L143: - ldr w0, [x19,#:lo12:.LANCHOR2] - tbz x0, 12, .L144 +.L152: + ldr w0, [x19, #:lo12:.LANCHOR2] + tbz x0, 12, .L153 adrp x0, .LANCHOR0+1144 - ldr x0, [x0,#:lo12:.LANCHOR0+1144] - ldrb w1, [x0,17] + ldr x0, [x0, #:lo12:.LANCHOR0+1144] + ldrb w1, [x0, 17] adrp x0, .LC27 add x0, x0, :lo12:.LC27 and w1, w1, 1 bl printk -.L144: - ldr w0, [x19,#:lo12:.LANCHOR2] - tbz x0, 12, .L145 +.L153: + ldr w0, [x19, #:lo12:.LANCHOR2] + tbz x0, 12, .L154 adrp x0, .LANCHOR0+1144 - ldr x0, [x0,#:lo12:.LANCHOR0+1144] - ldrh w1, [x0,16] + ldr x0, [x0, #:lo12:.LANCHOR0+1144] + ldrh w1, [x0, 16] adrp x0, .LC28 add x0, x0, :lo12:.LC28 ubfx x1, x1, 9, 1 bl printk -.L145: - ldr w0, [x19,#:lo12:.LANCHOR2] - tbz x0, 12, .L146 +.L154: + ldr w0, [x19, #:lo12:.LANCHOR2] + tbz x0, 12, .L155 adrp x0, .LANCHOR0+1144 - ldr x0, [x0,#:lo12:.LANCHOR0+1144] - ldrh w1, [x0,16] + ldr x0, [x0, #:lo12:.LANCHOR0+1144] + ldrh w1, [x0, 16] adrp x0, .LC29 add x0, x0, :lo12:.LC29 ubfx x1, x1, 10, 1 bl printk -.L146: - ldr w0, [x19,#:lo12:.LANCHOR2] - tbz x0, 12, .L147 - adrp x1, .LANCHOR0 +.L155: + ldr w0, [x19, #:lo12:.LANCHOR2] + tbz x0, 12, .L156 + adrp x0, .LANCHOR0 + add x1, x0, :lo12:.LANCHOR0 + ldrb w2, [x1, 1154] + ldrb w1, [x0, #:lo12:.LANCHOR0] adrp x0, .LC30 - add x2, x1, :lo12:.LANCHOR0 add x0, x0, :lo12:.LC30 - ldrb w1, [x1,#:lo12:.LANCHOR0] - ldrb w2, [x2,1154] bl printk -.L147: - ldr w0, [x19,#:lo12:.LANCHOR2] - tbz x0, 12, .L148 - adrp x2, .LANCHOR0 +.L156: + ldr w0, [x19, #:lo12:.LANCHOR2] + tbz x0, 12, .L157 + adrp x0, .LANCHOR0 + add x0, x0, :lo12:.LANCHOR0 + ldrb w2, [x0, 1171] + ldrb w1, [x0, 1170] adrp x0, .LC31 - add x2, x2, :lo12:.LANCHOR0 add x0, x0, :lo12:.LC31 - add x2, x2, 1160 - ldrb w1, [x2,10] - ldrb w2, [x2,11] bl printk -.L148: - ldr w0, [x19,#:lo12:.LANCHOR2] - tbz x0, 12, .L149 - adrp x2, .LANCHOR0 +.L157: + ldr w0, [x19, #:lo12:.LANCHOR2] + tbz x0, 12, .L158 + adrp x0, .LANCHOR0 + add x0, x0, :lo12:.LANCHOR0 + ldrb w2, [x0, 1169] + ldrb w1, [x0, 1168] adrp x0, .LC32 - add x2, x2, :lo12:.LANCHOR0 add x0, x0, :lo12:.LC32 - add x2, x2, 1160 - ldrb w1, [x2,8] - ldrb w2, [x2,9] bl printk -.L149: - ldr w0, [x19,#:lo12:.LANCHOR2] - tbz x0, 12, .L120 - adrp x1, .LANCHOR0+1192 +.L158: + ldr w0, [x19, #:lo12:.LANCHOR2] + tbz x0, 12, .L129 + adrp x0, .LANCHOR0+1192 + ldrb w1, [x0, #:lo12:.LANCHOR0+1192] adrp x0, .LC33 add x0, x0, :lo12:.LC33 - ldrb w1, [x1,#:lo12:.LANCHOR0+1192] bl printk -.L120: - ldr x19, [sp,16] +.L129: + ldr x19, [sp, 16] ldp x29, x30, [sp], 32 ret .size nand_flash_print_info, .-nand_flash_print_info .align 2 - .global nandc_init - .type nandc_init, %function -nandc_init: - stp x29, x30, [sp, -64]! - add x29, sp, 0 - stp x21, x22, [sp,32] - adrp x21, .LANCHOR2 - mov x22, x0 - stp x19, x20, [sp,16] - str wzr, [x29,56] - ldr w0, [x21,#:lo12:.LANCHOR2] - tbz x0, 12, .L242 - adrp x1, .LANCHOR1 - adrp x0, .LC34 - add x1, x1, :lo12:.LANCHOR1 - add x0, x0, :lo12:.LC34 - add x1, x1, 224 - mov x2, x22 - bl printk -.L242: - adrp x1, .LANCHOR0 - mov w2, 6 - add x0, x1, :lo12:.LANCHOR0 - ldr w3, [x22,352] - mov x20, x1 - strb w2, [x0,1028] - mov w2, 12336 - movk w2, 0x5638, lsl 16 - str x22, [x0,1048] - cmp w3, w2 - bne .L243 - mov w1, 8 - strb w1, [x0,1028] -.L243: - ldr w1, [x22,128] - mov w0, 12336 - movk w0, 0x5639, lsl 16 - cmp w1, w0 - bne .L244 - add x0, x20, :lo12:.LANCHOR0 - mov w1, 9 - strb w1, [x0,1028] -.L244: - add x19, x20, :lo12:.LANCHOR0 - ldrb w0, [x19,1028] - cmp w0, 9 - bne .L245 - mov w0, 1 - strb w0, [x19,1193] - ldr w0, [x29,56] - mov w1, 2 - orr w0, w0, 256 - str w0, [x29,56] - ldr w0, [x29,56] - bfi w0, w1, 18, 3 - str w0, [x29,56] - mov w1, 4161 - ldr w0, [x29,56] - str w0, [x22] - ldr x0, [x19,1048] - str wzr, [x0,520] - str w1, [x0,4] - mov w1, 8321 - ldr x0, [x19,1048] - str w1, [x0,8] - mov w1, 4099 - movk w1, 0x10, lsl 16 - str w1, [x0,80] - mov w1, 38 - str w1, [x0,84] - mov w1, 39 - str w1, [x0,84] - ldr w1, [x21,#:lo12:.LANCHOR2] - tbz x1, 12, .L247 - ldr w1, [x0] - ldr w2, [x0,8] - ldr w3, [x0,80] - ldr w4, [x0,84] - ldr w5, [x0,88] - b .L259 -.L245: - ldr w0, [x29,56] - mov w1, 1 - strb wzr, [x19,1193] - orr w0, w0, 256 - str w0, [x29,56] - ldr w0, [x29,56] - bfi w0, w1, 24, 3 - str w0, [x29,56] - mov w1, 4193 - ldr w0, [x29,56] - str w0, [x22] - ldr x0, [x19,1048] - str wzr, [x0,336] - str w1, [x0,4] - mov w1, 8321 - ldr x0, [x19,1048] - str w1, [x0,344] - mov w1, 4099 - movk w1, 0x10, lsl 16 - str w1, [x0,304] - mov w1, 38 - str w1, [x0,308] - mov w1, 39 - str w1, [x0,308] - mov w0, 2048 - bl ftl_malloc - str x0, [x19,1200] - ldr w0, [x21,#:lo12:.LANCHOR2] - tbz x0, 12, .L247 - ldr x0, [x19,1048] - ldr w1, [x0] - ldr w2, [x0,344] - ldr w3, [x0,304] - ldr w4, [x0,308] - ldr w5, [x0,312] -.L259: - adrp x0, .LC35 - add x0, x0, :lo12:.LC35 - bl printk -.L247: - add x1, x20, :lo12:.LANCHOR0 - mov w0, 1 - strb w0, [x1,1240] - ldr w0, [x21,#:lo12:.LANCHOR2] - strh wzr, [x1,1242] - strb wzr, [x1,1244] - tbz x0, 12, .L241 - adrp x0, .LC36 - ldrb w1, [x1,1028] - add x0, x0, :lo12:.LC36 - bl printk -.L241: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x29, x30, [sp], 64 - ret - .size nandc_init, .-nandc_init - .align 2 .global timer_delay_ns .type timer_delay_ns, %function timer_delay_ns: @@ -1290,22 +1146,21 @@ timer_delay_ns: .global nandc_set_ddr_para .type nandc_set_ddr_para, %function nandc_set_ddr_para: - adrp x1, .LANCHOR0 - uxtb w0, w0 - add x1, x1, :lo12:.LANCHOR0 - ldrb w2, [x1,1028] - ldr x1, [x1,1048] - cmp w2, 9 - lsl w2, w0, 16 + adrp x2, .LANCHOR0 + add x2, x2, :lo12:.LANCHOR0 + and w0, w0, 255 + ldrb w1, [x2, 1028] + ldr x2, [x2, 1056] + cmp w1, 9 + lsl w1, w0, 16 lsl w0, w0, 8 - orr w0, w2, w0 - orr w0, w0, 3 - bne .L262 - str w0, [x1,80] - b .L261 -.L262: - str w0, [x1,304] -.L261: + orr w1, w1, w0 + orr w1, w1, 3 + bne .L254 + str w1, [x2, 80] + ret +.L254: + str w1, [x2, 304] ret .size nandc_set_ddr_para, .-nandc_set_ddr_para .align 2 @@ -1314,163 +1169,143 @@ nandc_set_ddr_para: nandc_get_ddr_para: adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 - ldrb w1, [x0,1028] - ldr x0, [x0,1048] + ldrb w1, [x0, 1028] + ldr x0, [x0, 1056] cmp w1, 9 - bne .L265 - ldr w0, [x0,80] - b .L267 -.L265: - ldr w0, [x0,304] -.L267: + bne .L257 + ldr w0, [x0, 80] +.L259: ubfx x0, x0, 8, 8 ret +.L257: + ldr w0, [x0, 304] + b .L259 .size nandc_get_ddr_para, .-nandc_get_ddr_para .align 2 .global nandc_set_if_mode .type nandc_set_if_mode, %function nandc_set_if_mode: adrp x3, .LANCHOR0 - uxtb w0, w0 add x3, x3, :lo12:.LANCHOR0 + and w0, w0, 255 tst w0, 6 - ldr x2, [x3,1048] + ldr x2, [x3, 1056] ldr w1, [x2] - beq .L269 + beq .L261 orr w1, w1, 24576 - and w0, w0, 4 + tst x0, 4 and w1, w1, -32769 - cmp w0, wzr + ldrb w0, [x3, 1028] orr w1, w1, 196608 - ldrb w0, [x3,1028] + mov w3, 8321 orr w4, w1, 32768 csel w1, w4, w1, ne cmp w0, 9 - mov w0, 8321 - bne .L271 - str w0, [x2,8] mov w0, 4099 movk w0, 0x10, lsl 16 - str w0, [x2,80] + bne .L263 + str w3, [x2, 8] + str w0, [x2, 80] mov w0, 38 - str w0, [x2,84] + str w0, [x2, 84] mov w0, 39 - str w0, [x2,84] - b .L272 -.L271: - str w0, [x2,344] - mov w0, 4099 - movk w0, 0x10, lsl 16 - str w0, [x2,304] - mov w0, 38 - str w0, [x2,308] - mov w0, 39 - str w0, [x2,308] - b .L272 -.L269: - and w1, w1, -8193 -.L272: + str w0, [x2, 84] +.L264: str w1, [x2] ret +.L263: + str w3, [x2, 344] + str w0, [x2, 304] + mov w0, 38 + str w0, [x2, 308] + mov w0, 39 + str w0, [x2, 308] + b .L264 +.L261: + and w1, w1, -8193 + b .L264 .size nandc_set_if_mode, .-nandc_set_if_mode .align 2 .global nandc_cs .type nandc_cs, %function nandc_cs: - adrp x1, .LANCHOR0+1048 + adrp x1, .LANCHOR0+1056 mov w2, 1 lsl w0, w2, w0 - ldr x3, [x1,#:lo12:.LANCHOR0+1048] + ldr x3, [x1, #:lo12:.LANCHOR0+1056] ldr w1, [x3] bfi w1, w0, 0, 8 str w1, [x3] ret .size nandc_cs, .-nandc_cs .align 2 - .global nandc_de_cs - .type nandc_de_cs, %function -nandc_de_cs: - adrp x0, .LANCHOR0+1048 - ldr x1, [x0,#:lo12:.LANCHOR0+1048] - ldr w0, [x1] - and w0, w0, -256 - and w0, w0, -131073 - str w0, [x1] - ret - .size nandc_de_cs, .-nandc_de_cs - .align 2 .global flash_wait_device_ready_raw .type flash_wait_device_ready_raw, %function flash_wait_device_ready_raw: - stp x29, x30, [sp, -112]! + stp x29, x30, [sp, -96]! add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x20, .LANCHOR0 - mov w19, w1 - stp x21, x22, [sp,32] - uxtb w21, w0 - add x0, x20, :lo12:.LANCHOR0 - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] - stp x27, x28, [sp,80] - mov w22, w2 - ldrb w0, [x0,1153] - cmp w0, w21 - bhi .L278 + stp x19, x20, [sp, 16] + and w20, w0, 255 + stp x23, x24, [sp, 48] + mov w24, w2 + adrp x2, .LANCHOR0 + add x0, x2, :lo12:.LANCHOR0 + stp x21, x22, [sp, 32] + mov x19, x2 + stp x25, x26, [sp, 64] + mov w21, w1 + str x27, [sp, 80] + ldrb w0, [x0, 1153] + cmp w0, w20 + bhi .L269 adrp x1, .LANCHOR1 - adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 + add x1, x1, 224 mov w2, 812 - add x1, x1, 240 + adrp x0, .LC0 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L278: - add x0, x20, :lo12:.LANCHOR0 - add x21, x0, w21, sxtw - ldrb w21, [x21,1248] - lsr w23, w19, 8 - lsr w24, w19, 16 - lsr w25, w19, 24 - ldr x26, [x0,1048] - ubfiz x27, x21, 8, 8 - mov w28, 120 - and w19, w19, 255 -.L283: - mov w0, w21 +.L269: + add x2, x19, :lo12:.LANCHOR0 + lsr w23, w21, 8 + add x20, x2, w20, sxtw + lsr w25, w21, 16 + lsr w26, w21, 24 + and w21, w21, 255 + ldr x19, [x2, 1056] + mov w27, 120 + ldrb w22, [x20, 1196] + mov x20, x2 + ubfiz x0, x22, 8, 8 + add x19, x19, x0 +.L275: + mov w0, w22 bl nandc_cs - add x1, x26, x27 - add x0, x20, :lo12:.LANCHOR0 - str w28, [x1,2056] - str w19, [x1,2052] - str w23, [x1,2052] - ldrb w0, [x0,1256] - str w24, [x1,2052] - cbz w0, .L279 - str w25, [x1,2052] -.L279: + str w27, [x19, 2056] + str w21, [x19, 2052] + ldrb w0, [x20, 1204] + str w23, [x19, 2052] + str w25, [x19, 2052] + cbz w0, .L270 + str w26, [x19, 2052] +.L270: mov x0, 600 - str x1, [x29,104] bl __const_udelay - ldr x1, [x29,104] - mov w0, w21 - ldr w1, [x1,2048] - and w1, w1, 255 - str x1, [x29,104] - bl nandc_de_cs - ldr x1, [x29,104] - and w0, w22, w1 - cmp w0, w22 - bne .L283 - cmp w1, 255 - beq .L283 - mov w0, w1 - 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 + ldr w2, [x19, 2048] + and w2, w2, 255 + bl nandc_de_cs.constprop.35 + bics wzr, w24, w2 + bne .L275 + cmp w2, 255 + beq .L275 + mov w0, w2 + ldr x27, [sp, 80] + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] + ldp x29, x30, [sp], 96 ret .size flash_wait_device_ready_raw, .-flash_wait_device_ready_raw .align 2 @@ -1478,77 +1313,89 @@ flash_wait_device_ready_raw: .type flash_wait_device_ready, %function flash_wait_device_ready: adrp x4, .LANCHOR0 - mov w5, 24 add x7, x4, :lo12:.LANCHOR0 - mov w6, 1 stp x29, x30, [sp, -16]! + mov w6, 24 + mov w5, 1 mov w2, w1 add x29, sp, 0 - ldrb w8, [x7,1257] - sub w5, w5, w8 - lsl w3, w6, w5 - lsl w6, w6, w8 - asr w5, w0, w5 + ldrb w8, [x7, 1205] + tst x0, 50331648 + sub w6, w6, w8 + lsl w3, w5, w6 sub w3, w3, #1 - sub w6, w6, #1 + lsl w5, w5, w8 + sub w5, w5, #1 + asr w6, w0, w6 + and w5, w5, w6 and w1, w3, w0 - and w5, w6, w5 - ubfx x0, x0, 24, 2 - uxtb w5, w5 - cbnz w0, .L286 - ldrb w0, [x4,#:lo12:.LANCHOR0] - cbz w0, .L287 - ldrb w0, [x7,1] - cbz w0, .L286 -.L287: + and w5, w5, 255 + bne .L280 + ldrb w0, [x4, #:lo12:.LANCHOR0] + cbz w0, .L281 + ldrb w0, [x7, 1] + cbz w0, .L280 +.L281: add x4, x4, :lo12:.LANCHOR0 - ldrh w3, [x4,2] + ldrh w3, [x4, 2] udiv w0, w1, w3 mul w0, w0, w3 sub w3, w1, w0 - ldrb w1, [x4,1] - cbz w1, .L288 + ldrb w1, [x4, 1] + cbz w1, .L282 add w1, w0, w3, lsl 1 - b .L286 -.L288: - add x4, x4, 4 - ldrh w3, [x4,w3,uxtw 1] - add w1, w3, w0 -.L286: +.L280: mov w0, w5 bl flash_wait_device_ready_raw ldp x29, x30, [sp], 16 ret +.L282: + add x4, x4, 4 + ldrh w3, [x4, w3, uxtw 1] + add w1, w3, w0 + b .L280 .size flash_wait_device_ready, .-flash_wait_device_ready .align 2 + .global nandc_de_cs + .type nandc_de_cs, %function +nandc_de_cs: + adrp x0, .LANCHOR0+1056 + ldr x1, [x0, #:lo12:.LANCHOR0+1056] + ldr w0, [x1] + and w0, w0, -256 + and w0, w0, -131073 + str w0, [x1] + ret + .size nandc_de_cs, .-nandc_de_cs + .align 2 .global nandc_wait_flash_ready_no_delay .type nandc_wait_flash_ready_no_delay, %function nandc_wait_flash_ready_no_delay: stp x29, x30, [sp, -48]! add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] mov w19, 34464 adrp x20, .LANCHOR0 + add x20, x20, :lo12:.LANCHOR0 movk w19, 0x1, lsl 16 -.L297: - add x0, x20, :lo12:.LANCHOR0 - ldr x0, [x0,1048] +.L293: + ldr x0, [x20, 1056] ldr w0, [x0] - str w0, [x29,40] - ldr w0, [x29,40] - tbnz x0, 9, .L298 + str w0, [x29, 40] + ldr w0, [x29, 40] + tbnz x0, 9, .L294 mov x0, 50 bl __const_udelay subs w19, w19, #1 - bne .L297 + bne .L293 mov w0, -1 - b .L296 -.L298: - mov w0, 0 -.L296: - ldp x19, x20, [sp,16] +.L291: + ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 48 ret +.L294: + mov w0, 0 + b .L291 .size nandc_wait_flash_ready_no_delay, .-nandc_wait_flash_ready_no_delay .align 2 .global zftl_flash_enter_slc_mode @@ -1557,74 +1404,71 @@ zftl_flash_enter_slc_mode: stp x29, x30, [sp, -48]! adrp x1, .LANCHOR0 add x29, sp, 0 - stp x19, x20, [sp,16] - uxtb x20, w0 + stp x19, x20, [sp, 16] + and x19, x0, 255 add x0, x1, :lo12:.LANCHOR0 - ldrb w1, [x1,#:lo12:.LANCHOR0] - str x21, [sp,32] - cbz w1, .L300 + ldrb w1, [x1, #:lo12:.LANCHOR0] + str x21, [sp, 32] + cbz w1, .L297 cmp w1, 1 - ldr x19, [x0,1048] - bne .L303 - adrp x0, .LANCHOR2+37 - ldrb w1, [x0,#:lo12:.LANCHOR2+37] - cbz w1, .L300 - sxtw x0, w20 - add x0, x0, 8 - add x20, x19, x0, lsl 8 - str w1, [x20,8] - b .L300 -.L303: - cmp w1, 2 - bne .L305 - add x0, x0, x20 - ldrb w1, [x0,1264] - cbz w1, .L300 - adrp x21, .LANCHOR2 - strb wzr, [x0,1264] - add x21, x21, :lo12:.LANCHOR2 - add x21, x21, 8 - ldrb w0, [x21,29] - cbz w0, .L300 - add x20, x20, 8 - bl nandc_wait_flash_ready_no_delay - ldrb w0, [x21,29] - add x20, x19, x20, lsl 8 - str w0, [x20,8] - b .L300 -.L305: - cmp w1, 3 + ldr x20, [x0, 1056] bne .L300 - add x21, x0, w20, sxtw - ldrb w0, [x21,1264] - cbz w0, .L300 + adrp x0, .LANCHOR2+37 + ldrb w0, [x0, #:lo12:.LANCHOR2+37] + cbz w0, .L297 +.L316: + add x19, x19, 8 + add x19, x20, x19, lsl 8 + str w0, [x19, 8] +.L297: + ldp x19, x20, [sp, 16] + ldr x21, [sp, 32] + ldp x29, x30, [sp], 48 + ret +.L300: + cmp w1, 2 + bne .L302 + add x0, x0, x19 + ldrb w1, [x0, 1208] + cbz w1, .L297 + adrp x21, .LANCHOR2 + add x21, x21, :lo12:.LANCHOR2 + strb wzr, [x0, 1208] + add x21, x21, 8 + ldrb w0, [x21, 29] + cbz w0, .L297 bl nandc_wait_flash_ready_no_delay - strb wzr, [x21,1264] - ubfiz x0, x20, 8, 8 - add x19, x19, x0 + ldrb w0, [x21, 29] + b .L316 +.L302: + cmp w1, 3 + bne .L297 + add x21, x0, w19, sxtw + ldrb w0, [x21, 1208] + cbz w0, .L297 + ubfiz x19, x19, 8, 8 + bl nandc_wait_flash_ready_no_delay + add x19, x20, x19 mov w0, 239 - str w0, [x19,2056] + strb wzr, [x21, 1208] + str w0, [x19, 2056] mov w0, 145 - str w0, [x19,2052] + str w0, [x19, 2052] mov x0, 500 bl __const_udelay - str wzr, [x19,2048] + str wzr, [x19, 2048] mov w0, 1 - str w0, [x19,2048] - str wzr, [x19,2048] + str w0, [x19, 2048] + str wzr, [x19, 2048] mov x0, 750 - str wzr, [x19,2048] + str wzr, [x19, 2048] bl __const_udelay bl nandc_wait_flash_ready_no_delay mov w0, 218 - str w0, [x19,2056] + str w0, [x19, 2056] mov x0, 250 bl __const_udelay -.L300: - ldp x19, x20, [sp,16] - ldr x21, [sp,32] - ldp x29, x30, [sp], 48 - ret + b .L297 .size zftl_flash_enter_slc_mode, .-zftl_flash_enter_slc_mode .align 2 .global zftl_flash_exit_slc_mode @@ -1632,210 +1476,204 @@ zftl_flash_enter_slc_mode: zftl_flash_exit_slc_mode: stp x29, x30, [sp, -48]! add x29, sp, 0 - stp x19, x20, [sp,16] - uxtb x20, w0 + stp x19, x20, [sp, 16] + and x19, x0, 255 adrp x0, .LANCHOR0 - stp x21, x22, [sp,32] + stp x21, x22, [sp, 32] add x21, x0, :lo12:.LANCHOR0 - ldrb w0, [x0,#:lo12:.LANCHOR0] - cbz w0, .L318 + ldrb w0, [x0, #:lo12:.LANCHOR0] + cbz w0, .L317 cmp w0, 1 - ldr x19, [x21,1048] - bne .L321 + ldr x20, [x21, 1056] + bne .L320 adrp x0, .LANCHOR2+38 - ldrb w1, [x0,#:lo12:.LANCHOR2+38] - cbz w1, .L318 - sxtw x0, w20 - add x0, x0, 8 - add x20, x19, x0, lsl 8 - str w1, [x20,8] - b .L318 -.L321: + ldrb w0, [x0, #:lo12:.LANCHOR2+38] + cbz w0, .L317 +.L338: + add x19, x19, 8 + add x19, x20, x19, lsl 8 + str w0, [x19, 8] +.L317: + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x29, x30, [sp], 48 + ret +.L320: cmp w0, 2 - bne .L323 - add x21, x21, x20 - ldrb w0, [x21,1264] - cbnz w0, .L318 + bne .L322 + add x21, x21, x19 + ldrb w0, [x21, 1208] + cbnz w0, .L317 adrp x22, .LANCHOR2 - mov w1, 4 add x22, x22, :lo12:.LANCHOR2 + mov w1, 4 add x22, x22, 8 - ldrb w0, [x22,12] + ldrb w0, [x22, 12] cmp w0, 2 csel w0, w0, w1, eq - strb w0, [x21,1264] - ldrb w0, [x22,30] - cbz w0, .L318 - add x20, x20, 8 + strb w0, [x21, 1208] + ldrb w0, [x22, 30] + cbz w0, .L317 bl nandc_wait_flash_ready_no_delay - ldrb w0, [x22,30] - add x20, x19, x20, lsl 8 - str w0, [x20,8] - b .L318 -.L323: + ldrb w0, [x22, 30] + b .L338 +.L322: cmp w0, 3 - bne .L318 - add x21, x21, w20, sxtw - ldrb w0, [x21,1264] - cbnz w0, .L318 + bne .L317 + add x21, x21, w19, sxtw + ldrb w0, [x21, 1208] + cbnz w0, .L317 adrp x22, .LANCHOR2 - bl nandc_wait_flash_ready_no_delay add x22, x22, :lo12:.LANCHOR2 + bl nandc_wait_flash_ready_no_delay + ubfiz x19, x19, 8, 8 + add x19, x20, x19 mov w1, 4 - ldrb w0, [x22,20] + ldrb w0, [x22, 20] cmp w0, 2 csel w0, w0, w1, eq - strb w0, [x21,1264] - ubfiz x0, x20, 8, 8 - add x19, x19, x0 + strb w0, [x21, 1208] mov w0, 239 - str w0, [x19,2056] + str w0, [x19, 2056] mov w0, 145 - str w0, [x19,2052] + str w0, [x19, 2052] mov x0, 500 bl __const_udelay - ldrb w0, [x22,15] + ldrb w0, [x22, 15] cmp w0, 9 mov w0, 1 - bne .L326 - str w0, [x19,2048] - b .L327 + bne .L325 + str w0, [x19, 2048] .L326: - ldrb w1, [x21,1264] - str w1, [x19,2048] -.L327: - str w0, [x19,2048] + str w0, [x19, 2048] mov x0, 750 - str wzr, [x19,2048] - str wzr, [x19,2048] + str wzr, [x19, 2048] + str wzr, [x19, 2048] bl __const_udelay bl nandc_wait_flash_ready_no_delay mov w0, 223 - str w0, [x19,2056] + str w0, [x19, 2056] mov x0, 250 bl __const_udelay -.L318: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x29, x30, [sp], 48 - ret + b .L317 +.L325: + ldrb w1, [x21, 1208] + str w1, [x19, 2048] + b .L326 .size zftl_flash_exit_slc_mode, .-zftl_flash_exit_slc_mode .align 2 .global flash_start_page_read .type flash_start_page_read, %function flash_start_page_read: - stp x29, x30, [sp, -80]! - mov w2, 1 + stp x29, x30, [sp, -64]! add x29, sp, 0 - stp x21, x22, [sp,32] + stp x21, x22, [sp, 32] + and w21, w0, 255 adrp x22, .LANCHOR0 - uxtb w21, w0 add x0, x22, :lo12:.LANCHOR0 - str x25, [sp,64] - stp x19, x20, [sp,16] - stp x23, x24, [sp,48] - mov w20, 24 + stp x19, x20, [sp, 16] + mov w19, 24 + stp x23, x24, [sp, 48] mov w23, w1 - ldrb w19, [x0,1257] - ldrb w0, [x0,1153] - sub w20, w20, w19 - lsl w19, w2, w19 - lsr w1, w1, w20 - sub w19, w19, #1 - and w19, w1, w19 - uxtb w19, w19 - cmp w0, w19 - bhi .L339 + mov w20, 1 + ldrb w1, [x0, 1205] + ldrb w0, [x0, 1153] + sub w24, w19, w1 + lsl w20, w20, w1 + sub w20, w20, #1 + lsr w1, w23, w24 + and w20, w20, w1 + and w20, w20, 255 + cmp w0, w20 + bhi .L340 adrp x1, .LANCHOR1 - adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 + add x1, x1, 256 mov w2, 1013 - add x1, x1, 272 + adrp x0, .LC0 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L339: - add x24, x22, :lo12:.LANCHOR0 - ldrb w0, [x24,1153] - cmp w0, w19 - bls .L338 - mov w0, 1 - add x19, x24, w19, sxtw - lsl w20, w0, w20 - ldrb w19, [x19,1248] - sub w20, w20, #1 - ldr x25, [x24,1048] - and w20, w20, w23 - mov w0, w19 - ubfx x23, x23, 24, 2 +.L340: + add x5, x22, :lo12:.LANCHOR0 + ldrb w0, [x5, 1153] + cmp w0, w20 + bls .L339 + add x20, x5, w20, sxtw + mov w19, 1 + ubfx x4, x23, 24, 2 + lsl w19, w19, w24 + sub w19, w19, #1 + and w19, w19, w23 + ldrb w23, [x20, 1196] + ldr x20, [x5, 1056] + mov w0, w23 bl nandc_cs - cbnz w23, .L341 - mov w0, w20 + cbnz w4, .L342 + mov w0, w19 bl slc_phy_page_address_calc - mov w20, w0 - adrp x0, .LANCHOR0 - ldrb w0, [x0,#:lo12:.LANCHOR0] - cbz w0, .L342 - mov w0, w19 + mov w19, w0 + ldrb w0, [x22, #:lo12:.LANCHOR0] + cbz w0, .L343 + mov w0, w23 bl zftl_flash_enter_slc_mode - b .L342 -.L341: - ldr x0, [x24,1144] - ldrb w0, [x0,12] - cmp w0, 3 - bne .L343 - ldrb w0, [x24,1268] - cbnz w0, .L343 - ldrb w0, [x24,1269] - cbnz w0, .L343 - sxtw x0, w19 - add x0, x0, 8 - add x0, x25, x0, lsl 8 - str w23, [x0,8] - b .L342 .L343: - mov w0, w19 - bl zftl_flash_exit_slc_mode -.L342: add x0, x22, :lo12:.LANCHOR0 - ldr x0, [x0,1144] - ldrb w1, [x0,7] + ldr x0, [x0, 1144] + ldrb w1, [x0, 7] cmp w1, 1 - bne .L344 - ldrb w0, [x0,12] + bne .L345 + ldrb w0, [x0, 12] cmp w0, 2 - bne .L344 - sxtw x0, w19 + bne .L345 + sxtw x0, w23 mov w1, 38 add x0, x0, 8 - add x0, x25, x0, lsl 8 - str w1, [x0,8] -.L344: - ubfiz x19, x19, 8, 8 - and w0, w20, 255 - add x1, x25, x19 - add x22, x22, :lo12:.LANCHOR0 - str wzr, [x1,2056] - str wzr, [x1,2052] - str wzr, [x1,2052] - str w0, [x1,2052] - lsr w0, w20, 8 - str w0, [x1,2052] - lsr w0, w20, 16 - str w0, [x1,2052] - ldrb w0, [x22,1256] - cbz w0, .L345 - lsr w20, w20, 24 - str w20, [x1,2052] + add x0, x20, x0, lsl 8 + str w1, [x0, 8] .L345: - str w21, [x1,2056] -.L338: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldr x25, [sp,64] - ldp x29, x30, [sp], 80 + ubfiz x0, x23, 8, 8 + and w1, w19, 255 + add x0, x20, x0 + add x22, x22, :lo12:.LANCHOR0 + str wzr, [x0, 2056] + str wzr, [x0, 2052] + str wzr, [x0, 2052] + str w1, [x0, 2052] + lsr w1, w19, 8 + str w1, [x0, 2052] + lsr w1, w19, 16 + str w1, [x0, 2052] + ldrb w1, [x22, 1204] + cbz w1, .L346 + lsr w19, w19, 24 + str w19, [x0, 2052] +.L346: + str w21, [x0, 2056] +.L339: + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x29, x30, [sp], 64 ret +.L342: + ldr x0, [x5, 1144] + ldrb w0, [x0, 12] + cmp w0, 3 + bne .L344 + ldrb w0, [x5, 1212] + cbnz w0, .L344 + ldrb w0, [x5, 1213] + cbnz w0, .L344 + sxtw x0, w23 + add x0, x0, 8 + add x0, x20, x0, lsl 8 + str w4, [x0, 8] + b .L343 +.L344: + mov w0, w23 + bl zftl_flash_exit_slc_mode + b .L343 .size flash_start_page_read, .-flash_start_page_read .align 2 .global nandc_wait_flash_ready @@ -1844,30 +1682,30 @@ nandc_wait_flash_ready: stp x29, x30, [sp, -48]! mov x0, 750 add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] mov w19, 34464 adrp x20, .LANCHOR0 + add x20, x20, :lo12:.LANCHOR0 movk w19, 0x1, lsl 16 bl __const_udelay -.L354: - add x0, x20, :lo12:.LANCHOR0 - ldr x0, [x0,1048] +.L356: + ldr x0, [x20, 1056] ldr w0, [x0] - str w0, [x29,40] - ldr w0, [x29,40] - tbnz x0, 9, .L355 + str w0, [x29, 40] + ldr w0, [x29, 40] + tbnz x0, 9, .L357 mov x0, 50 bl __const_udelay subs w19, w19, #1 - bne .L354 + bne .L356 mov w0, -1 - b .L353 -.L355: - mov w0, 0 -.L353: - ldp x19, x20, [sp,16] +.L354: + ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 48 ret +.L357: + mov w0, 0 + b .L354 .size nandc_wait_flash_ready, .-nandc_wait_flash_ready .align 2 .global sandisk_set_rr_para @@ -1875,92 +1713,92 @@ nandc_wait_flash_ready: sandisk_set_rr_para: stp x29, x30, [sp, -32]! add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] mov x20, x0 mov w0, 239 - uxtb w19, w1 - add w19, w19, 1 - str w0, [x20,8] + and w19, w1, 255 + str w0, [x20, 8] mov w0, 17 - str w0, [x20,4] + str w0, [x20, 4] mov x0, 1000 bl __const_udelay - mov w1, 5 - adrp x2, .LANCHOR1 - add x2, x2, :lo12:.LANCHOR1 - adrp x5, .LANCHOR0 - smull x1, w19, w1 - add x0, x2, 48 - add x2, x2, 96 + add w1, w19, 1 + mov w0, 5 + adrp x2, .LANCHOR0 + add x2, x2, :lo12:.LANCHOR0 + umull x1, w1, w0 + adrp x0, .LANCHOR1 + add x0, x0, :lo12:.LANCHOR1 + add x3, x0, 48 + add x0, x0, 144 + add x3, x3, x1 add x0, x0, x1 - add x1, x2, x1 - mov x2, 0 -.L358: - add x3, x5, :lo12:.LANCHOR0 - ldrb w4, [x3,1137] - cmp w4, w2 - bls .L363 - ldrb w3, [x3,1136] - cmp w3, 67 - bne .L359 - ldrsb w3, [x0,x2] - b .L362 -.L359: - ldrsb w3, [x1,x2] -.L362: - str w3, [x20] - add x2, x2, 1 - b .L358 -.L363: + mov x1, 0 +.L361: + ldrb w4, [x2, 1137] + cmp w4, w1 + bhi .L364 bl nandc_wait_flash_ready - ldp x19, x20, [sp,16] + ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 32 ret +.L364: + ldrb w4, [x2, 1136] + cmp w4, 67 + bne .L362 + ldrsb w4, [x0, x1] +.L366: + add x1, x1, 1 + str w4, [x20] + b .L361 +.L362: + ldrsb w4, [x3, x1] + b .L366 .size sandisk_set_rr_para, .-sandisk_set_rr_para .align 2 .global toshiba_3d_set_tlc_rr_para .type toshiba_3d_set_tlc_rr_para, %function toshiba_3d_set_tlc_rr_para: stp x29, x30, [sp, -48]! - uxtb x2, w1 + and x2, x1, 255 mov x1, 7 add x29, sp, 0 - stp x19, x20, [sp,16] - str x21, [sp,32] + stp x19, x20, [sp, 16] mov x19, x0 + str x21, [sp, 32] mov w21, 213 - str w21, [x0,8] - str wzr, [x0,4] mov w0, -119 - str w0, [x19,4] - adrp x0, .LANCHOR1 madd x1, x2, x1, x1 + str w21, [x19, 8] + str wzr, [x19, 4] + str w0, [x19, 4] + adrp x0, .LANCHOR1 add x0, x0, :lo12:.LANCHOR1 - add x0, x0, 296 + add x0, x0, 280 add x20, x0, x1 - ldrsb w0, [x0,x1] + ldrsb w0, [x0, x1] str w0, [x19] - ldrsb w0, [x20,1] + ldrsb w0, [x20, 1] str w0, [x19] - ldrsb w0, [x20,2] + ldrsb w0, [x20, 2] str w0, [x19] - ldrsb w0, [x20,3] + ldrsb w0, [x20, 3] str w0, [x19] bl nandc_wait_flash_ready - str w21, [x19,8] - str wzr, [x19,4] + str w21, [x19, 8] + str wzr, [x19, 4] mov w0, -118 - str w0, [x19,4] - ldrsb w0, [x20,4] + str w0, [x19, 4] + ldrsb w0, [x20, 4] str w0, [x19] - ldrsb w0, [x20,5] + ldrsb w0, [x20, 5] str w0, [x19] - ldrsb w0, [x20,6] + ldrsb w0, [x20, 6] str w0, [x19] str wzr, [x19] bl nandc_wait_flash_ready - ldr x21, [sp,32] - ldp x19, x20, [sp,16] + ldr x21, [sp, 32] + ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 48 ret .size toshiba_3d_set_tlc_rr_para, .-toshiba_3d_set_tlc_rr_para @@ -1971,14 +1809,14 @@ toshiba_3d_set_slc_rr_para: stp x29, x30, [sp, -16]! mov w2, 213 add x29, sp, 0 - str w2, [x0,8] + str w2, [x0, 8] mov w2, -117 - str wzr, [x0,4] - str w2, [x0,4] + str wzr, [x0, 4] + str w2, [x0, 4] adrp x2, .LANCHOR1 add x2, x2, :lo12:.LANCHOR1 add x1, x2, w1, uxtb - ldrsb w1, [x1,697] + ldrsb w1, [x1, 681] str w1, [x0] str wzr, [x0] str wzr, [x0] @@ -1994,107 +1832,106 @@ toshiba_tlc_set_rr_para: stp x29, x30, [sp, -48]! uxtw x1, w1 add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] mov x19, x0 - str x21, [sp,32] + str x21, [sp, 32] mov w21, 239 adrp x0, .LANCHOR2 - str w21, [x19,8] - cbz w2, .L367 + str w21, [x19, 8] + cbz w2, .L372 mov w2, 18 - str w2, [x19,4] + str w2, [x19, 4] mov x2, 7 add x0, x0, :lo12:.LANCHOR2 add x0, x0, 40 mul x1, x1, x2 add x20, x0, x1 - ldrb w0, [x0,x1] + ldrb w0, [x0, x1] str w0, [x19] - ldrb w0, [x20,1] + ldrb w0, [x20, 1] str w0, [x19] - ldrb w0, [x20,2] + ldrb w0, [x20, 2] str w0, [x19] - ldrb w0, [x20,3] + ldrb w0, [x20, 3] str w0, [x19] bl nandc_wait_flash_ready - str w21, [x19,8] + str w21, [x19, 8] mov w0, 19 - str w0, [x19,4] - ldrb w0, [x20,4] + str w0, [x19, 4] + ldrb w0, [x20, 4] str w0, [x19] - ldrb w0, [x20,5] + ldrb w0, [x20, 5] str w0, [x19] - ldrb w0, [x20,6] + ldrb w0, [x20, 6] str w0, [x19] +.L375: str wzr, [x19] - b .L368 -.L367: - add x0, x0, :lo12:.LANCHOR2 - mov w3, 20 - add x0, x0, 376 - str w3, [x19,4] - ldrb w0, [x0,x1] - str w0, [x19] - str w2, [x19] - str w2, [x19] - str w2, [x19] -.L368: bl nandc_wait_flash_ready - ldr x21, [sp,32] - ldp x19, x20, [sp,16] + ldr x21, [sp, 32] + ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 48 ret +.L372: + add x0, x0, :lo12:.LANCHOR2 + mov w2, 20 + add x0, x0, 376 + str w2, [x19, 4] + ldrb w0, [x0, x1] + str w0, [x19] + str wzr, [x19] + str wzr, [x19] + b .L375 .size toshiba_tlc_set_rr_para, .-toshiba_tlc_set_rr_para .align 2 .global ymtc_3d_set_tlc_rr_para .type ymtc_3d_set_tlc_rr_para, %function ymtc_3d_set_tlc_rr_para: stp x29, x30, [sp, -48]! + and x1, x1, 255 mov x2, 7 - uxtb x1, w1 add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] mov x19, x0 - str x21, [sp,32] - mov w21, 239 - str w21, [x0,8] + str x21, [sp, 32] mov w0, 160 - str w0, [x19,4] - adrp x0, .LANCHOR1 + mov w21, 239 mul x1, x1, x2 + str w21, [x19, 8] + str w0, [x19, 4] + adrp x0, .LANCHOR1 add x0, x0, :lo12:.LANCHOR1 - add x0, x0, 712 + add x0, x0, 696 add x20, x0, x1 - ldrsb w0, [x0,x1] + ldrsb w0, [x0, x1] str w0, [x19] - ldrsb w0, [x20,4] + ldrsb w0, [x20, 4] str w0, [x19] str wzr, [x19] str wzr, [x19] bl nandc_wait_flash_ready - str w21, [x19,8] + str w21, [x19, 8] mov w0, 161 - str w0, [x19,4] - ldrsb w0, [x20,1] + str w0, [x19, 4] + ldrsb w0, [x20, 1] str w0, [x19] - ldrsb w0, [x20,3] + ldrsb w0, [x20, 3] str w0, [x19] - ldrsb w0, [x20,5] + ldrsb w0, [x20, 5] str w0, [x19] str wzr, [x19] bl nandc_wait_flash_ready - str w21, [x19,8] + str w21, [x19, 8] mov w0, 162 - str w0, [x19,4] - ldrsb w0, [x20,2] + str w0, [x19, 4] + ldrsb w0, [x20, 2] str w0, [x19] - ldrsb w0, [x20,6] + ldrsb w0, [x20, 6] str w0, [x19] str wzr, [x19] str wzr, [x19] bl nandc_wait_flash_ready - ldr x21, [sp,32] - ldp x19, x20, [sp,16] + ldr x21, [sp, 32] + ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 48 ret .size ymtc_3d_set_tlc_rr_para, .-ymtc_3d_set_tlc_rr_para @@ -2104,14 +1941,15 @@ ymtc_3d_set_tlc_rr_para: ymtc_3d_set_slc_rr_para: stp x29, x30, [sp, -16]! mov w2, 239 + and x1, x1, 255 add x29, sp, 0 - str w2, [x0,8] + str w2, [x0, 8] mov w2, 163 - str w2, [x0,4] + str w2, [x0, 4] adrp x2, .LANCHOR1 add x2, x2, :lo12:.LANCHOR1 - add x1, x2, w1, uxtb - ldrsb w1, [x1,1072] + add x2, x2, 1056 + ldrsb w1, [x2, x1] str w1, [x0] str wzr, [x0] str wzr, [x0] @@ -2128,163 +1966,162 @@ flash_start_plane_read: mov w3, 24 mov w2, 1 add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] adrp x20, .LANCHOR0 add x4, x20, :lo12:.LANCHOR0 - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] - stp x27, x28, [sp,80] + stp x21, x22, [sp, 32] + stp x23, x24, [sp, 48] ubfx x24, x0, 24, 2 - ldrb w5, [x4,1257] - sub w3, w3, w5 + stp x25, x26, [sp, 64] + stp x27, x28, [sp, 80] + ldrb w19, [x4, 1205] + sub w3, w3, w19 + lsl w19, w2, w19 + sub w19, w19, #1 lsl w21, w2, w3 - lsl w2, w2, w5 - lsr w19, w0, w3 - sub w2, w2, #1 sub w21, w21, #1 - and w19, w19, w2 and w22, w21, w0 - ldrb w0, [x4,1153] - uxtb w19, w19 + lsr w3, w0, w3 + ldrb w0, [x4, 1153] + and w19, w19, w3 + and w19, w19, 255 and w21, w21, w1 cmp w0, w19 - bhi .L372 + bhi .L381 adrp x1, .LANCHOR1 - adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 + add x1, x1, 1072 mov w2, 1148 - add x1, x1, 1088 + adrp x0, .LC0 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L372: - add x26, x20, :lo12:.LANCHOR0 - add x19, x26, w19, sxtw - ldrb w23, [x19,1248] +.L381: + add x4, x20, :lo12:.LANCHOR0 + add x19, x4, w19, sxtw + ldr x25, [x4, 1056] + ldrb w23, [x19, 1196] mov w0, w23 - ldr x25, [x26,1048] bl nandc_cs - cbnz w24, .L373 + cbnz w24, .L382 mov w0, w22 bl slc_phy_page_address_calc mov w22, w0 mov w0, w21 bl slc_phy_page_address_calc mov w21, w0 - adrp x0, .LANCHOR0 - ldrb w0, [x0,#:lo12:.LANCHOR0] - cbz w0, .L374 + ldrb w0, [x20, #:lo12:.LANCHOR0] + cbz w0, .L383 mov w0, w23 bl zftl_flash_enter_slc_mode - b .L374 -.L373: - ldr x0, [x26,1144] - ldrb w0, [x0,12] - cmp w0, 3 - bne .L375 - ldrb w0, [x26,1268] - cbnz w0, .L375 - ldrb w0, [x26,1269] - cbnz w0, .L375 - sxtw x0, w23 - add x0, x0, 8 - add x0, x25, x0, lsl 8 - str w24, [x0,8] - b .L374 -.L375: - mov w0, w23 - bl zftl_flash_exit_slc_mode -.L374: +.L383: add x0, x20, :lo12:.LANCHOR0 - uxtb x19, w23 + and x19, x23, 255 and w3, w22, 255 lsr w2, w22, 8 and w28, w21, 255 lsr w27, w21, 8 - ldrb w1, [x0,1176] + ldrb w1, [x0, 1176] lsr w26, w21, 16 cmp w1, 1 lsr w1, w22, 16 - bne .L376 + bne .L385 add x19, x25, x19, lsl 8 - ldrb w4, [x0,1168] - ldrb w0, [x0,1256] - str w4, [x19,2056] - str wzr, [x19,2052] - str wzr, [x19,2052] - str w3, [x19,2052] - str w2, [x19,2052] - str w1, [x19,2052] - cbz w0, .L377 + ldrb w4, [x0, 1168] + ldrb w0, [x0, 1204] + str w4, [x19, 2056] + str wzr, [x19, 2052] + str wzr, [x19, 2052] + str w3, [x19, 2052] + str w2, [x19, 2052] + str w1, [x19, 2052] + cbz w0, .L386 lsr w22, w22, 24 - str w22, [x19,2052] -.L377: + str w22, [x19, 2052] +.L386: add x22, x20, :lo12:.LANCHOR0 - ldrb w0, [x22,1169] - str w0, [x19,2056] + ldrb w0, [x22, 1169] + str w0, [x19, 2056] bl nandc_wait_flash_ready - cbz w24, .L378 - ldr x0, [x22,1144] - ldrb w0, [x0,12] + ldr x0, [x22, 1144] + ldrb w0, [x0, 12] cmp w0, 3 - bne .L378 - str w24, [x19,2056] -.L378: - str wzr, [x19,2056] + bne .L387 + cbz w24, .L387 + str w24, [x19, 2056] +.L387: + str wzr, [x19, 2056] add x20, x20, :lo12:.LANCHOR0 - str wzr, [x19,2052] - str wzr, [x19,2052] - str w28, [x19,2052] - str w27, [x19,2052] - ldrb w0, [x20,1256] - str w26, [x19,2052] - cbz w0, .L404 + str wzr, [x19, 2052] + str wzr, [x19, 2052] + str w28, [x19, 2052] + ldrb w0, [x20, 1204] + str w27, [x19, 2052] + str w26, [x19, 2052] + cbz w0, .L408 lsr w21, w21, 24 - str w21, [x19,2052] - b .L404 -.L376: - ldr x0, [x0,1144] - ldrb w4, [x0,7] + str w21, [x19, 2052] +.L408: + mov w0, 48 + str w0, [x19, 2056] + 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 +.L382: + ldr x0, [x4, 1144] + ldrb w0, [x0, 12] + cmp w0, 3 + bne .L384 + ldrb w0, [x4, 1212] + cbnz w0, .L384 + ldrb w0, [x4, 1213] + cbnz w0, .L384 + sxtw x0, w23 + add x0, x0, 8 + add x0, x25, x0, lsl 8 + str w24, [x0, 8] + b .L383 +.L384: + mov w0, w23 + bl zftl_flash_exit_slc_mode + b .L383 +.L385: + ldr x0, [x0, 1144] + ldrb w4, [x0, 7] cmp w4, 1 - bne .L381 - ldrb w4, [x0,12] + bne .L390 + ldrb w4, [x0, 12] cmp w4, 2 - bne .L381 + bne .L390 add x23, x23, 8 mov w4, 38 add x23, x25, x23, lsl 8 - str w4, [x23,8] -.L381: + str w4, [x23, 8] +.L390: add x4, x20, :lo12:.LANCHOR0 add x19, x25, x19, lsl 8 - ldrb w4, [x4,1168] - str w4, [x19,2056] - str w3, [x19,2052] - str w2, [x19,2052] - str w1, [x19,2052] - cbz w24, .L382 - ldrb w0, [x0,12] + ldrb w4, [x4, 1168] + str w4, [x19, 2056] + str w3, [x19, 2052] + str w2, [x19, 2052] + str w1, [x19, 2052] + ldrb w0, [x0, 12] cmp w0, 3 - bne .L382 - str w24, [x19,2056] -.L382: + bne .L391 + cbz w24, .L391 + str w24, [x19, 2056] +.L391: add x20, x20, :lo12:.LANCHOR0 - ldrb w0, [x20,1169] - str w0, [x19,2056] - str w28, [x19,2052] - str w27, [x19,2052] - str w26, [x19,2052] -.L404: - mov w0, 48 - str w0, [x19,2056] - 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 + ldrb w0, [x20, 1169] + str w0, [x19, 2056] + str w28, [x19, 2052] + str w27, [x19, 2052] + str w26, [x19, 2052] + b .L408 .size flash_start_plane_read, .-flash_start_plane_read .align 2 .global flash_set_interface_mode @@ -2292,155 +2129,160 @@ flash_start_plane_read: flash_set_interface_mode: stp x29, x30, [sp, -80]! add x29, sp, 0 - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - adrp x22, .LANCHOR0 - adrp x23, .LC38 - adrp x24, .LC37 - str x25, [sp,64] - stp x19, x20, [sp,16] - mov w25, w0 - mov x21, 0 - add x22, x22, :lo12:.LANCHOR0 - add x23, x23, :lo12:.LC38 - add x24, x24, :lo12:.LC37 -.L420: - add x0, x22, x21, lsl 3 - ldr x20, [x22,1048] - adrp x1, .LANCHOR0 - ldrb w19, [x0,1272] - cmp w19, 152 - beq .L406 - cmp w19, 69 - beq .L406 - cmp w19, 155 - beq .L406 - cmp w19, 44 - cset w2, eq - cmp w19, 137 - cset w0, eq - orr w0, w2, w0 - cbz w0, .L407 -.L406: - add x1, x1, :lo12:.LANCHOR0 - cmp w25, 1 - ldrb w1, [x1,1304] - bne .L409 - tbz x1, 0, .L407 - adrp x0, .LANCHOR2 - ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 12, .L410 - mov x0, x24 - bl printk -.L410: - add x1, x20, x21, lsl 8 - mov w0, 239 - cmp w19, 137 - str w0, [x1,2056] - beq .L421 - cmp w19, 44 - bne .L411 -.L421: - mov w0, 1 - b .L442 -.L411: - cmp w19, 155 - mov w0, 1 - bne .L419 -.L442: - str w0, [x1,2052] - mov w0, 5 - b .L440 -.L409: - tbz x1, 2, .L407 - adrp x0, .LANCHOR2 - ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 12, .L415 - mov x0, x23 - bl printk -.L415: - add x1, x20, x21, lsl 8 - mov w0, 239 - cmp w19, 137 - str w0, [x1,2056] - beq .L422 - cmp w19, 44 - cset w0, eq - cbz w0, .L416 + str x25, [sp, 64] + adrp x25, .LANCHOR0 + add x25, x25, :lo12:.LANCHOR0 + stp x21, x22, [sp, 32] + stp x19, x20, [sp, 16] + mov w21, w0 + add x22, x25, 1216 + mov x20, x25 + stp x23, x24, [sp, 48] + mov x24, 0 .L422: - mov w0, 1 - str w0, [x1,2052] - mov w0, 35 - b .L440 -.L416: - cmp w19, 155 - bne .L419 - mov w0, 1 - str w0, [x1,2052] - mov w0, 37 - b .L440 -.L419: - mov w2, 128 - str w2, [x1,2052] -.L440: - str w0, [x1,2048] - str wzr, [x1,2048] - str wzr, [x1,2048] - str wzr, [x1,2048] -.L407: - add x21, x21, 1 - cmp x21, 4 - bne .L420 + lsl x0, x24, 3 + ldr x19, [x25, 1056] + ldrb w23, [x0, x22] + cmp w23, 69 + beq .L410 + add w0, w23, 119 + cmp w23, 44 + and w1, w0, 255 + cset w2, eq + cmp w1, 18 + bhi .L423 + mov x0, 32769 + movk x0, 0x4, lsl 16 + lsr x0, x0, x1 + mvn x0, x0 +.L411: + and w0, w0, 1 + eor w0, w0, 1 + orr w0, w2, w0 + cbz w0, .L412 +.L410: + ldrb w1, [x20, 1248] + cmp w21, 1 + bne .L413 + tbz x1, 0, .L412 + adrp x0, .LANCHOR2 + ldr w0, [x0, #:lo12:.LANCHOR2] + tbz x0, 12, .L414 + adrp x0, .LC34 + add x0, x0, :lo12:.LC34 + bl printk +.L414: + add x0, x19, x24, lsl 8 + mov w1, 239 + cmp w23, 44 + str w1, [x0, 2056] + mov w1, 137 + ccmp w23, w1, 4, ne + mov w1, 1 + bne .L415 +.L446: + str w1, [x0, 2052] + mov w1, 5 +.L445: + str w1, [x0, 2048] +.L420: + str wzr, [x0, 2048] + str wzr, [x0, 2048] + str wzr, [x0, 2048] +.L412: + add x24, x24, 1 + cmp x24, 4 + bne .L422 bl nandc_wait_flash_ready - ldr x25, [sp,64] + ldr x25, [sp, 64] mov w0, 0 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] ldp x29, x30, [sp], 80 ret +.L423: + mov x0, 1 + b .L411 +.L415: + cmp w23, 155 + beq .L446 + mov w2, 128 + str w2, [x0, 2052] + b .L445 +.L413: + tbz x1, 2, .L412 + adrp x0, .LANCHOR2 + ldr w0, [x0, #:lo12:.LANCHOR2] + tbz x0, 12, .L418 + adrp x0, .LC35 + add x0, x0, :lo12:.LC35 + bl printk +.L418: + add x0, x19, x24, lsl 8 + mov w1, 239 + cmp w23, 44 + str w1, [x0, 2056] + mov w1, 137 + ccmp w23, w1, 4, ne + bne .L419 + mov w1, 1 + str w1, [x0, 2052] + mov w1, 35 + b .L445 +.L419: + cmp w23, 155 + bne .L421 + mov w1, 1 + str w1, [x0, 2052] + mov w1, 37 + b .L445 +.L421: + mov w1, 128 + str w1, [x0, 2052] + str wzr, [x0, 2048] + b .L420 .size flash_set_interface_mode, .-flash_set_interface_mode .align 2 .type mt_auto_read_calibration_config, %function mt_auto_read_calibration_config: - stp x29, x30, [sp, -48]! + stp x29, x30, [sp, -32]! add x29, sp, 0 - str x19, [sp,16] - uxtb w19, w0 - ubfiz x19, x19, 8, 8 - str x1, [x29,40] + stp x19, x20, [sp, 16] + mov w20, w1 + and w19, w0, 255 bl nandc_wait_flash_ready - adrp x0, .LANCHOR0+1048 - ldr x0, [x0,#:lo12:.LANCHOR0+1048] - add x19, x0, x19 + adrp x1, .LANCHOR0+1056 + ubfiz x0, x19, 8, 8 + ldr x19, [x1, #:lo12:.LANCHOR0+1056] + add x19, x19, x0 mov w0, 239 - str w0, [x19,2056] + str w0, [x19, 2056] mov w0, 150 - str w0, [x19,2052] + str w0, [x19, 2052] mov x0, 1000 bl __const_udelay - ldr x1, [x29,40] - str w1, [x19,2048] - str wzr, [x19,2048] - str wzr, [x19,2048] - str wzr, [x19,2048] - ldr x19, [sp,16] - ldp x29, x30, [sp], 48 + str w20, [x19, 2048] + str wzr, [x19, 2048] + str wzr, [x19, 2048] + str wzr, [x19, 2048] + ldp x19, x20, [sp, 16] + ldp x29, x30, [sp], 32 ret .size mt_auto_read_calibration_config, .-mt_auto_read_calibration_config .align 2 .global flash_reset .type flash_reset, %function flash_reset: - adrp x1, .LANCHOR0+1048 - uxtb x0, w0 stp x29, x30, [sp, -16]! - add x0, x0, 8 + adrp x1, .LANCHOR0+1056 + ubfiz x0, x0, 8, 8 add x29, sp, 0 - ldr x1, [x1,#:lo12:.LANCHOR0+1048] - add x0, x1, x0, lsl 8 - mov w1, 255 - str w1, [x0,8] + ldr x1, [x1, #:lo12:.LANCHOR0+1056] + add x0, x0, 2048 + add x1, x1, x0 + mov w0, 255 + str w0, [x1, 8] bl nandc_wait_flash_ready ldp x29, x30, [sp], 16 ret @@ -2451,58 +2293,57 @@ flash_reset: flash_read_id: stp x29, x30, [sp, -48]! add x29, sp, 0 - str x21, [sp,32] - uxtb w21, w0 - adrp x0, .LANCHOR0+1048 - stp x19, x20, [sp,16] + str x21, [sp, 32] + and w21, w0, 255 + adrp x0, .LANCHOR0+1056 + stp x19, x20, [sp, 16] mov x19, x1 - ldr x20, [x0,#:lo12:.LANCHOR0+1048] + ldr x20, [x0, #:lo12:.LANCHOR0+1056] mov w0, w21 bl flash_reset mov w0, w21 bl nandc_cs - ubfiz x2, x21, 8, 8 + ubfiz x0, x21, 8, 8 + add x20, x20, x0 mov w0, 144 - add x20, x20, x2 - str w0, [x20,2056] + str w0, [x20, 2056] mov x0, 1000 - str wzr, [x20,2052] + str wzr, [x20, 2052] bl __const_udelay - ldr w0, [x20,2048] + ldr w0, [x20, 2048] strb w0, [x19] - ldr w0, [x20,2048] - strb w0, [x19,1] - ldr w0, [x20,2048] - strb w0, [x19,2] - ldr w0, [x20,2048] - strb w0, [x19,3] - ldr w0, [x20,2048] - strb w0, [x19,4] - ldr w0, [x20,2048] - strb w0, [x19,5] - ldr w0, [x20,2048] - strb w0, [x19,6] - ldr w0, [x20,2048] - strb w0, [x19,7] - mov w0, w21 - bl nandc_de_cs + ldr w0, [x20, 2048] + strb w0, [x19, 1] + ldr w0, [x20, 2048] + strb w0, [x19, 2] + ldr w0, [x20, 2048] + strb w0, [x19, 3] + ldr w0, [x20, 2048] + strb w0, [x19, 4] + ldr w0, [x20, 2048] + strb w0, [x19, 5] + ldr w0, [x20, 2048] + strb w0, [x19, 6] + ldr w0, [x20, 2048] + strb w0, [x19, 7] + bl nandc_de_cs.constprop.35 ldrb w2, [x19] sub w0, w2, #1 - uxtb w0, w0 + and w0, w0, 255 cmp w0, 253 - bhi .L445 - adrp x0, .LC39 - ldrb w3, [x19,1] - ldrb w4, [x19,2] - add x0, x0, :lo12:.LC39 - ldrb w5, [x19,3] + bhi .L451 + ldrb w7, [x19, 5] + adrp x0, .LC36 + ldrb w6, [x19, 4] add w1, w21, 1 - ldrb w6, [x19,4] - ldrb w7, [x19,5] + ldrb w5, [x19, 3] + add x0, x0, :lo12:.LC36 + ldrb w4, [x19, 2] + ldrb w3, [x19, 1] bl printk -.L445: - ldp x19, x20, [sp,16] - ldr x21, [sp,32] +.L451: + ldp x19, x20, [sp, 16] + ldr x21, [sp, 32] ldp x29, x30, [sp], 48 ret .size flash_read_id, .-flash_read_id @@ -2510,192 +2351,190 @@ flash_read_id: .global flash_read_spare .type flash_read_spare, %function flash_read_spare: - stp x29, x30, [sp, -48]! - adrp x4, .LANCHOR0+1048 + stp x29, x30, [sp, -32]! ubfiz x0, x0, 8, 8 add x29, sp, 0 - str x19, [sp,16] - adrp x3, .LANCHOR2+17 - ldr x19, [x4,#:lo12:.LANCHOR0+1048] - str x2, [x29,40] - add x19, x19, x0 - ldrb w3, [x3,#:lo12:.LANCHOR2+17] - and w0, w1, 255 + stp x19, x20, [sp, 16] + mov x20, x2 + adrp x2, .LANCHOR2+17 + ldrb w3, [x2, #:lo12:.LANCHOR2+17] + adrp x2, .LANCHOR0+1056 + ldr x19, [x2, #:lo12:.LANCHOR0+1056] lsl w3, w3, 9 - str wzr, [x19,2056] - str w3, [x19,2052] + add x19, x19, x0 + and w0, w1, 255 + str wzr, [x19, 2056] + str w3, [x19, 2052] lsr w3, w3, 8 - str w3, [x19,2052] - str w0, [x19,2052] + str w3, [x19, 2052] + str w0, [x19, 2052] lsr w0, w1, 8 - str w0, [x19,2052] + str w0, [x19, 2052] lsr w1, w1, 16 - str w1, [x19,2052] + str w1, [x19, 2052] mov w0, 48 - str w0, [x19,2056] + str w0, [x19, 2056] bl nandc_wait_flash_ready - ldr x2, [x29,40] - ldr w0, [x19,2048] - strb w0, [x2] - ldr x19, [sp,16] - ldp x29, x30, [sp], 48 + ldr w0, [x19, 2048] + strb w0, [x20] + ldp x19, x20, [sp, 16] + ldp x29, x30, [sp], 32 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]! + stp x29, x30, [sp, -48]! + and w4, w0, 255 + adrp x0, .LANCHOR0+1056 add x29, sp, 0 - stp x21, x22, [sp,32] - uxtb w21, w0 - adrp x0, .LANCHOR0+1048 - stp x19, x20, [sp,16] - str x23, [sp,48] + stp x19, x20, [sp, 16] mov w20, w1 - ldr x19, [x0,#:lo12:.LANCHOR0+1048] - mov w0, w21 - mov x23, x2 - mov w22, 144 + ldr x19, [x0, #:lo12:.LANCHOR0+1056] + mov w0, w4 + stp x21, x22, [sp, 32] + mov x22, x2 bl nandc_cs - ubfiz x3, x21, 8, 8 + ubfiz x4, x4, 8, 8 + add x19, x19, x4 mov w0, 239 - add x19, x19, x3 - str w0, [x19,2056] + mov w21, 144 + str w0, [x19, 2056] mov x0, 250 - str w22, [x19,2052] + str w21, [x19, 2052] bl __const_udelay mov w0, 1 - str w0, [x19,2048] - str wzr, [x19,2048] - str wzr, [x19,2048] - str wzr, [x19,2048] + 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 + str w0, [x19, 2056] + str w21, [x19, 2052] mov w1, w20 - add x0, x0, :lo12:.LC40 - ldr w2, [x19,2048] - ldr w3, [x19,2048] - ldr w4, [x19,2048] + adrp x0, .LC37 + add x0, x0, :lo12:.LC37 + 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] + str wzr, [x19, 2056] + str wzr, [x19, 2052] and w0, w20, 255 - str wzr, [x19,2052] - str w0, [x19,2052] + str wzr, [x19, 2052] + str w0, [x19, 2052] lsr w0, w20, 8 - str w0, [x19,2052] + str w0, [x19, 2052] lsr w20, w20, 16 - str w20, [x19,2052] + str w20, [x19, 2052] mov w0, 48 - str w0, [x19,2056] + 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 x0, 0 +.L457: + ldr w1, [x19, 2048] + strb w1, [x22, x0] + add x0, x0, 1 + cmp x0, 16384 + bne .L457 mov w0, 239 - str w0, [x19,2056] + str w0, [x19, 2056] mov w0, 144 - str w0, [x19,2052] + str w0, [x19, 2052] mov x0, 250 bl __const_udelay - 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 + str wzr, [x19, 2048] + str wzr, [x19, 2048] + str wzr, [x19, 2048] + str wzr, [x19, 2048] + bl nandc_de_cs.constprop.35 + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x29, x30, [sp], 48 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: - stp x29, x30, [sp, -64]! - adrp x2, .LANCHOR0+1048 - uxtb w0, w0 - add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x20, .LANCHOR2 - ldr x19, [x2,#:lo12:.LANCHOR0+1048] - add x2, x20, :lo12:.LANCHOR2 - str x21, [sp,32] - ldrb w3, [x2,37] - sxtw x2, w0 + stp x29, x30, [sp, -48]! + and x2, x0, 255 + mov x0, x2 add x2, x2, 8 + add x29, sp, 0 + stp x21, x22, [sp, 32] + mov w22, w1 + adrp x1, .LANCHOR0+1056 + stp x19, x20, [sp, 16] + adrp x20, .LANCHOR2 + ldr x19, [x1, #:lo12:.LANCHOR0+1056] + add x1, x20, :lo12:.LANCHOR2 + ldrb w1, [x1, 37] add x2, x19, x2, lsl 8 - cbnz w3, .L466 - mov w3, 162 -.L466: + cbz w1, .L461 +.L476: ubfiz x0, x0, 8, 8 - str w3, [x2,8] + str w1, [x2, 8] add x19, x19, x0 mov w0, 128 - str x1, [x29,56] - str w0, [x19,2056] - and w0, w1, 255 - str wzr, [x19,2052] - str wzr, [x19,2052] - str w0, [x19,2052] - lsr w0, w1, 8 - str w0, [x19,2052] - lsr w0, w1, 16 - str w0, [x19,2052] + str w0, [x19, 2056] + and w0, w22, 255 + str wzr, [x19, 2052] + str wzr, [x19, 2052] + str w0, [x19, 2052] + lsr w0, w22, 8 + str w0, [x19, 2052] + lsr w0, w22, 16 + str w0, [x19, 2052] mov w0, 16 - str w0, [x19,2056] + str w0, [x19, 2056] bl nandc_wait_flash_ready mov w0, 112 - str w0, [x19,2056] + str w0, [x19, 2056] mov x0, 1000 bl __const_udelay - ldr w2, [x19,2048] - ldr x1, [x29,56] + ldr w2, [x19, 2048] cmp w2, 255 - bne .L454 - ldr w2, [x19,2048] -.L454: + bne .L463 + ldr w2, [x19, 2048] +.L463: mov w0, 5 ands w21, w2, w0 - beq .L455 - ldr w0, [x20,#:lo12:.LANCHOR2] - tbz x0, 12, .L455 - adrp x0, .LC41 - add x0, x0, :lo12:.LC41 + beq .L464 + ldr w0, [x20, #:lo12:.LANCHOR2] + tbz x0, 12, .L464 + adrp x0, .LC38 + mov w1, w22 + add x0, x0, :lo12:.LC38 bl printk -.L455: +.L464: add x20, x20, :lo12:.LANCHOR2 - ldrb w0, [x20,38] - cbz w0, .L456 - str w0, [x19,2056] -.L456: + ldrb w0, [x20, 38] + cbz w0, .L460 + str w0, [x19, 2056] +.L460: mov w0, w21 - ldr x21, [sp,32] - ldp x19, x20, [sp,16] - ldp x29, x30, [sp], 64 + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x29, x30, [sp], 48 ret +.L461: + mov w1, 162 + b .L476 .size sandisk_prog_test_bad_block, .-sandisk_prog_test_bad_block .align 2 .global nandc_rdy_status .type nandc_rdy_status, %function nandc_rdy_status: - adrp x0, .LANCHOR0+1048 + adrp x0, .LANCHOR0+1056 sub sp, sp, #16 - ldr x0, [x0,#:lo12:.LANCHOR0+1048] + ldr x0, [x0, #:lo12:.LANCHOR0+1056] ldr w0, [x0] - str w0, [sp,8] - ldr w0, [sp,8] + str w0, [sp, 8] + ldr w0, [sp, 8] add sp, sp, 16 ubfx x0, x0, 9, 1 ret @@ -2705,57 +2544,72 @@ nandc_rdy_status: .type nandc_bch_sel, %function nandc_bch_sel: sub sp, sp, #16 - str wzr, [sp,8] - ldr w1, [sp,8] + str wzr, [sp, 8] + ldr w1, [sp, 8] orr w1, w1, 1 - str w1, [sp,8] + str w1, [sp, 8] adrp x1, .LANCHOR0 add x1, x1, :lo12:.LANCHOR0 - ldrb w2, [x1,1028] - strb w0, [x1,1244] + ldrb w2, [x1, 1028] + strb w0, [x1, 1249] cmp w2, 9 - ldr x2, [x1,1048] - ldr w1, [sp,8] - bne .L469 - str w1, [x2,16] + bne .L480 + ldr x1, [x1, 1056] cmp w0, 70 - mov w1, 0 - beq .L470 + ldr w2, [sp, 8] + str w2, [x1, 16] + beq .L486 cmp w0, 60 - mov w1, 3 - beq .L470 + beq .L487 cmp w0, 40 - mov w1, 2 - csinc w1, w1, wzr, eq -.L470: + cset w0, eq + add w0, w0, 1 +.L481: str wzr, [sp] - ldr w0, [sp] - bfi w0, w1, 25, 3 - str w0, [sp] + ldr w2, [sp] + bfi w2, w0, 25, 3 + str w2, [sp] ldr w0, [sp] orr w0, w0, 1 str w0, [sp] ldr w0, [sp] - str w0, [x2,32] - b .L468 -.L469: - str w1, [x2,8] + str w0, [x1, 32] +.L479: + add sp, sp, 16 + ret +.L486: + mov w0, 0 + b .L481 +.L487: + mov w0, 3 + b .L481 +.L480: + ldr x2, [x1, 1056] mov w3, 16 - str wzr, [sp] + ldr w1, [sp, 8] cmp w0, w3 + str w1, [x2, 8] + str wzr, [sp] ldr w1, [sp] bfi w1, w3, 8, 8 str w1, [sp] ldr w1, [sp] and w1, w1, -262145 str w1, [sp] - beq .L478 + bne .L483 +.L490: + ldr w0, [sp] + and w0, w0, -17 + b .L491 +.L483: cmp w0, 24 - bne .L474 + bne .L485 ldr w0, [sp] orr w0, w0, 16 - b .L479 -.L474: +.L491: + str w0, [sp] + b .L484 +.L485: ldr w1, [sp] cmp w0, 40 orr w1, w1, 262144 @@ -2763,21 +2617,14 @@ nandc_bch_sel: ldr w1, [sp] orr w1, w1, 16 str w1, [sp] - bne .L473 -.L478: - ldr w0, [sp] - and w0, w0, -17 -.L479: - str w0, [sp] -.L473: + beq .L490 +.L484: ldr w0, [sp] orr w0, w0, 1 str w0, [sp] ldr w0, [sp] - str w0, [x2,12] -.L468: - add sp, sp, 16 - ret + str w0, [x2, 12] + b .L479 .size nandc_bch_sel, .-nandc_bch_sel .align 2 .global zftl_flash_resume @@ -2785,89 +2632,90 @@ nandc_bch_sel: zftl_flash_resume: stp x29, x30, [sp, -64]! add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] adrp x20, .LANCHOR0 - str x23, [sp,48] add x0, x20, :lo12:.LANCHOR0 - stp x21, x22, [sp,32] - ldrb w1, [x0,1028] - ldr w2, [x0,1056] + stp x21, x22, [sp, 32] + stp x23, x24, [sp, 48] + ldrb w1, [x0, 1028] + ldr w2, [x0, 1064] cmp w1, 9 - ldr x1, [x0,1048] + ldr x1, [x0, 1056] str w2, [x1] - ldr x1, [x0,1048] - ldr w2, [x0,1060] - str w2, [x1,4] - ldr x1, [x0,1048] - ldr w2, [x0,1064] - bne .L481 - str w2, [x1,16] - ldr w2, [x0,1068] - str w2, [x1,32] - ldr w2, [x0,1072] - str w2, [x1,80] - ldr w2, [x0,1076] - str w2, [x1,84] - ldr w2, [x0,1080] - str w2, [x1,520] - ldr w0, [x0,1084] - str w0, [x1,8] - b .L482 -.L481: - str w2, [x1,8] - ldr w2, [x0,1068] - str w2, [x1,12] - ldr w2, [x0,1072] - str w2, [x1,304] - ldr w2, [x0,1076] - str w2, [x1,308] - ldr w2, [x0,1080] - str w2, [x1,336] - ldr w0, [x0,1084] - str w0, [x1,344] -.L482: + ldr x1, [x0, 1056] + ldr w2, [x0, 1068] + str w2, [x1, 4] + ldr w2, [x0, 1072] + ldr x1, [x0, 1056] + bne .L493 + str w2, [x1, 16] + ldr w2, [x0, 1076] + str w2, [x1, 32] + ldr w2, [x0, 1080] + str w2, [x1, 80] + ldr w2, [x0, 1084] + str w2, [x1, 84] + ldr w2, [x0, 1088] + str w2, [x1, 520] + ldr w0, [x0, 1092] + str w0, [x1, 8] +.L495: + add x0, x20, :lo12:.LANCHOR0 mov x19, 0 - add x21, x20, :lo12:.LANCHOR0 - mov w23, 2 -.L484: - add x0, x21, x19, lsl 3 - ldrb w0, [x0,1272] + add x23, x0, 1216 + add x21, x0, 1208 + mov w24, 2 +.L494: + lsl x0, x19, 3 + ldrb w0, [x0, x23] sub w0, w0, #1 - uxtb w0, w0 + and w0, w0, 255 cmp w0, 253 - bhi .L483 - uxtb w22, w19 + bhi .L496 + and w22, w19, 255 mov w0, w22 bl flash_reset - add x0, x21, 1264 - strb w23, [x19,x0] + strb w24, [x19, x21] mov w0, w22 bl zftl_flash_enter_slc_mode -.L483: +.L496: add x19, x19, 1 cmp x19, 4 - bne .L484 + bne .L494 add x20, x20, :lo12:.LANCHOR0 - ldrb w0, [x20,1192] - cbz w0, .L485 + ldrb w0, [x20, 1192] + cbz w0, .L497 mov w0, 1 bl nandc_set_if_mode mov w0, w19 bl flash_set_interface_mode mov w0, w19 bl nandc_set_if_mode - ldr w0, [x20,1072] + ldr w0, [x20, 1080] lsr w0, w0, 8 bl nandc_set_ddr_para -.L485: +.L497: adrp x0, .LANCHOR2+28 - ldrb w0, [x0,#:lo12:.LANCHOR2+28] + ldrb w0, [x0, #:lo12:.LANCHOR2+28] bl nandc_bch_sel - ldr x23, [sp,48] - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] ldp x29, x30, [sp], 64 ret +.L493: + str w2, [x1, 8] + ldr w2, [x0, 1076] + str w2, [x1, 12] + ldr w2, [x0, 1080] + str w2, [x1, 304] + ldr w2, [x0, 1084] + str w2, [x1, 308] + ldr w2, [x0, 1088] + str w2, [x1, 336] + ldr w0, [x0, 1092] + str w0, [x1, 344] + b .L495 .size zftl_flash_resume, .-zftl_flash_resume .align 2 .global rk_nandc_flash_ready @@ -2886,282 +2734,285 @@ rk_nandc_flash_ready: nandc_iqr_wait_flash_ready: stp x29, x30, [sp, -32]! add x29, sp, 0 - str x19, [sp,16] + str x19, [sp, 16] adrp x19, .LANCHOR0 add x19, x19, :lo12:.LANCHOR0 - ldr x0, [x19,1048] + ldr x0, [x19, 1056] bl rk_nandc_rb_irq_flag_init - ldrb w1, [x19,1028] - ldr x0, [x19,1048] + ldrb w1, [x19, 1028] + ldr x0, [x19, 1056] cmp w1, 9 - bne .L492 - ldr w1, [x0,292] + bne .L506 + ldr w1, [x0, 292] orr w1, w1, 2 - str w1, [x0,292] - ldr w1, [x0,288] + str w1, [x0, 292] + ldr w1, [x0, 288] orr w1, w1, 2 - str w1, [x0,288] - b .L493 -.L492: - ldr w1, [x0,368] - orr w1, w1, 2 - str w1, [x0,368] - ldr w1, [x0,364] - orr w1, w1, 2 - str w1, [x0,364] -.L493: + str w1, [x0, 288] +.L507: ldr w1, [x0] - tbnz x1, 9, .L494 + tbnz x1, 9, .L508 bl wait_for_nand_flash_ready - b .L491 -.L494: - mov w1, 1 - bl nandc_irq_disable -.L491: - ldr x19, [sp,16] +.L505: + ldr x19, [sp, 16] ldp x29, x30, [sp], 32 ret +.L506: + ldr w1, [x0, 368] + orr w1, w1, 2 + str w1, [x0, 368] + ldr w1, [x0, 364] + orr w1, w1, 2 + str w1, [x0, 364] + b .L507 +.L508: + mov w1, 1 + bl nandc_irq_disable + b .L505 .size nandc_iqr_wait_flash_ready, .-nandc_iqr_wait_flash_ready .align 2 .global flash_erase_duplane_block .type flash_erase_duplane_block, %function flash_erase_duplane_block: - stp x29, x30, [sp, -96]! + stp x29, x30, [sp, -80]! add x29, sp, 0 - stp x21, x22, [sp,32] - adrp x21, .LANCHOR0 - str x25, [sp,64] - stp x19, x20, [sp,16] - uxtb w19, w0 - add x0, x21, :lo12:.LANCHOR0 - stp x23, x24, [sp,48] - uxtb w20, w1 - mov w24, w2 - ldrb w0, [x0,1153] - mov w23, w3 + stp x19, x20, [sp, 16] + and w19, w0, 255 + adrp x20, .LANCHOR0 + add x0, x20, :lo12:.LANCHOR0 + stp x21, x22, [sp, 32] + mov w22, w2 + stp x25, x26, [sp, 64] + mov w21, w3 + stp x23, x24, [sp, 48] + and w25, w1, 255 + ldrb w0, [x0, 1153] cmp w0, w19 - bhi .L497 + bhi .L512 adrp x1, .LANCHOR1 - adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 + add x1, x1, 1096 mov w2, 695 - add x1, x1, 1112 + adrp x0, .LC0 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L497: - add x1, x21, :lo12:.LANCHOR0 - mov w0, -1 - ldrb w2, [x1,1153] - cmp w2, w19 - bls .L498 +.L512: + add x0, x20, :lo12:.LANCHOR0 + ldrb w1, [x0, 1153] + cmp w1, w19 + bls .L521 + add x19, x0, w19, sxtw + ldr x26, [x0, 1056] adrp x0, .LANCHOR2 - add x19, x1, w19, sxtw - ldrb w25, [x19,1248] - ldr x19, [x1,1048] - ldr w0, [x0,#:lo12:.LANCHOR2] - mov x22, x25 - add x25, x25, 8 - add x25, x19, x25, lsl 8 - tbz x0, 4, .L499 - adrp x0, .LC42 - mov w1, w22 - add x0, x0, :lo12:.LC42 - mov w2, w24 - mov w3, w23 + ldrb w23, [x19, 1196] + ldr w0, [x0, #:lo12:.LANCHOR2] + and x19, x23, 255 + add x24, x19, 8 + add x24, x26, x24, lsl 8 + tbz x0, 4, .L514 + adrp x0, .LC39 + mov w3, w21 + mov w2, w22 + mov w1, w23 + add x0, x0, :lo12:.LC39 bl printk -.L499: +.L514: bl nandc_wait_flash_ready - mov w0, w22 + mov w0, w23 bl nandc_cs - mov w0, w22 - cbnz w20, .L500 + mov w0, w23 + cbnz w25, .L515 bl zftl_flash_enter_slc_mode - b .L501 -.L500: - bl zftl_flash_exit_slc_mode -.L501: - ubfiz x4, x22, 8, 8 +.L516: + add x19, x26, x19, lsl 8 mov w0, 96 - add x19, x19, x4 - str w0, [x19,2056] - and w0, w24, 255 - str w0, [x19,2052] - lsr w0, w24, 8 - str w0, [x19,2052] - lsr w0, w24, 16 - str w0, [x19,2052] - add x0, x21, :lo12:.LANCHOR0 - ldrb w0, [x0,1256] - cbz w0, .L502 - lsr w0, w24, 24 - str w0, [x19,2052] -.L502: - add x0, x21, :lo12:.LANCHOR0 - mov w20, 0 - ldrb w0, [x0,1305] - cbnz w0, .L503 + str w0, [x19, 2056] + and w0, w22, 255 + str w0, [x19, 2052] + lsr w0, w22, 8 + str w0, [x19, 2052] + lsr w0, w22, 16 + str w0, [x19, 2052] + add x0, x20, :lo12:.LANCHOR0 + ldrb w0, [x0, 1204] + cbz w0, .L517 + lsr w0, w22, 24 + str w0, [x19, 2052] +.L517: + add x0, x20, :lo12:.LANCHOR0 + ldrb w0, [x0, 1250] + cbnz w0, .L522 mov w0, 208 - str w0, [x19,2056] - mov w20, 5 + str w0, [x19, 2056] + mov w23, 5 bl nandc_wait_flash_ready - mov x0, x25 + mov x0, x24 bl flash_read_status - and w20, w0, w20 -.L503: + and w23, w0, w23 +.L518: mov w0, 96 - add x21, x21, :lo12:.LANCHOR0 - str w0, [x19,2056] - and w0, w23, 255 - str w0, [x19,2052] - lsr w0, w23, 8 - str w0, [x19,2052] - lsr w0, w23, 16 - str w0, [x19,2052] - ldrb w0, [x21,1256] - cbz w0, .L504 - lsr w23, w23, 24 - str w23, [x19,2052] -.L504: + add x20, x20, :lo12:.LANCHOR0 + str w0, [x19, 2056] + and w0, w21, 255 + str w0, [x19, 2052] + lsr w0, w21, 8 + str w0, [x19, 2052] + lsr w0, w21, 16 + str w0, [x19, 2052] + ldrb w0, [x20, 1204] + cbz w0, .L519 + lsr w3, w21, 24 + str w3, [x19, 2052] +.L519: mov w0, 208 - str w0, [x19,2056] + str w0, [x19, 2056] mov w19, 5 bl nandc_iqr_wait_flash_ready bl nandc_wait_flash_ready - mov x0, x25 + mov x0, x24 bl flash_read_status mov w2, w0 - mov w0, w22 - str x2, [x29,88] - bl nandc_de_cs - ldr x2, [x29,88] + bl nandc_de_cs.constprop.35 and w19, w2, w19 - orr w19, w19, w20 - cbz w19, .L505 - adrp x0, .LC43 - mov w1, w24 - add x0, x0, :lo12:.LC43 + orr w19, w19, w23 + cbz w19, .L520 + adrp x0, .LC40 + mov w1, w22 + add x0, x0, :lo12:.LC40 bl printk -.L505: +.L520: mov w0, w19 -.L498: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldr x25, [sp,64] - ldp x29, x30, [sp], 96 +.L511: + 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 +.L515: + bl zftl_flash_exit_slc_mode + b .L516 +.L522: + mov w23, 0 + b .L518 +.L521: + mov w0, -1 + b .L511 .size flash_erase_duplane_block, .-flash_erase_duplane_block .align 2 .global flash_erase_block_en .type flash_erase_block_en, %function flash_erase_block_en: - stp x29, x30, [sp, -80]! + stp x29, x30, [sp, -96]! add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x20, .LANCHOR0 - stp x25, x26, [sp,64] - uxtb w25, w1 - add x1, x20, :lo12:.LANCHOR0 - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - uxtb w22, w0 - mov w0, 24 - ldrb w19, [x1,1257] + stp x23, x24, [sp, 48] mov w23, w2 - sub w19, w0, w19 - mov w0, 1 - lsl w19, w0, w19 - ldrb w0, [x1,1153] + stp x21, x22, [sp, 32] + and w22, w0, 255 + adrp x0, .LANCHOR0 + add x2, x0, :lo12:.LANCHOR0 + stp x19, x20, [sp, 16] + mov w19, 24 + stp x25, x26, [sp, 64] + and w25, w1, 255 + str x27, [sp, 80] + mov x24, x0 + ldrb w1, [x2, 1205] + sub w1, w19, w1 + mov w19, 1 + lsl w19, w19, w1 + ldrb w1, [x2, 1153] sub w19, w19, #1 - cmp w0, w22 - and w19, w19, w2 - bhi .L521 + and w19, w19, w23 + cmp w1, w22 + bhi .L537 adrp x1, .LANCHOR1 - adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 + add x1, x1, 1128 mov w2, 757 - add x1, x1, 1144 + adrp x0, .LC0 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L521: - add x1, x20, :lo12:.LANCHOR0 - mov w0, -1 - ldrb w2, [x1,1153] - cmp w2, w22 - bls .L522 - add x0, x1, w22, sxtw - ldrb w24, [x0,1248] +.L537: + add x0, x24, :lo12:.LANCHOR0 + ldrb w1, [x0, 1153] + cmp w1, w22 + bls .L544 + add x1, x0, w22, sxtw + ldr x27, [x0, 1056] adrp x0, .LANCHOR2 - ldr x26, [x1,1048] - mov x21, x24 - add x24, x24, 8 - ldr w0, [x0,#:lo12:.LANCHOR2] - add x24, x26, x24, lsl 8 - tbz x0, 4, .L523 - adrp x0, .LC44 - mov w1, w21 - add x0, x0, :lo12:.LC44 - mov w2, w23 + ldrb w21, [x1, 1196] + ldr w0, [x0, #:lo12:.LANCHOR2] + and x20, x21, 255 + add x26, x20, 8 + add x26, x27, x26, lsl 8 + tbz x0, 4, .L539 + adrp x0, .LC41 mov w3, w25 + mov w2, w23 + mov w1, w21 + add x0, x0, :lo12:.LC41 bl printk -.L523: +.L539: bl nandc_wait_flash_ready mov w0, w21 bl nandc_cs mov w0, w21 - cbnz w25, .L524 + cbnz w25, .L540 bl zftl_flash_enter_slc_mode - b .L525 -.L524: - bl zftl_flash_exit_slc_mode -.L525: - ubfiz x3, x21, 8, 8 - mov w0, 96 - add x3, x26, x3 - str w0, [x3,2056] - and w0, w19, 255 - str w0, [x3,2052] - lsr w0, w19, 8 - str w0, [x3,2052] - lsr w0, w19, 16 - str w0, [x3,2052] - add x0, x20, :lo12:.LANCHOR0 - ldrb w0, [x0,1256] - cbz w0, .L526 +.L541: + add x0, x27, x20, lsl 8 + mov w1, 96 + str w1, [x0, 2056] + and w1, w19, 255 + str w1, [x0, 2052] + lsr w1, w19, 8 + str w1, [x0, 2052] + lsr w1, w19, 16 + str w1, [x0, 2052] + add x1, x24, :lo12:.LANCHOR0 + ldrb w1, [x1, 1204] + cbz w1, .L542 lsr w19, w19, 24 - str w19, [x3,2052] -.L526: - mov w0, 208 - str w0, [x3,2056] + str w19, [x0, 2052] +.L542: + mov w1, 208 + str w1, [x0, 2056] bl nandc_iqr_wait_flash_ready bl nandc_wait_flash_ready - mov x0, x24 + mov x0, x26 bl flash_read_status - mov w19, w0 - mov w0, w21 - bl nandc_de_cs - mov w3, 5 - ands w3, w19, w3 - beq .L527 - add x20, x20, :lo12:.LANCHOR0 - adrp x0, .LC45 - add x0, x0, :lo12:.LC45 + mov w3, w0 + bl nandc_de_cs.constprop.35 + mov w0, 5 + ands w3, w3, w0 + beq .L543 + add x0, x24, :lo12:.LANCHOR0 mov w1, w22 - ldrh w2, [x20,2] + ldrh w2, [x0, 2] + adrp x0, .LC42 + add x0, x0, :lo12:.LC42 udiv w2, w23, w2 bl printk mov w3, -1 -.L527: +.L543: mov w0, w3 -.L522: - 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 +.L536: + 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 +.L540: + bl zftl_flash_exit_slc_mode + b .L541 +.L544: + mov w0, -1 + b .L536 .size flash_erase_block_en, .-flash_erase_block_en .align 2 .global flash_erase_block @@ -3179,52 +3030,54 @@ flash_erase_block: .global flash_erase_all .type flash_erase_all, %function flash_erase_all: - stp x29, x30, [sp, -64]! + stp x29, x30, [sp, -80]! adrp x0, .LANCHOR2 add x0, x0, :lo12:.LANCHOR2 add x29, sp, 0 - stp x19, x20, [sp,16] - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] + stp x19, x20, [sp, 16] + adrp x20, .LANCHOR0 + stp x23, x24, [sp, 48] + add x20, x20, :lo12:.LANCHOR0 + stp x21, x22, [sp, 32] + add x23, x20, 1024 + str x25, [sp, 64] + mov x24, x20 mov w19, 0 - ldrb w1, [x0,21] - ldrh w20, [x0,22] - adrp x0, .LANCHOR0 - add x23, x0, :lo12:.LANCHOR0 - mov x21, x0 - mul w20, w1, w20 - uxth w20, w20 -.L540: - ldrb w0, [x23,1153] + ldrb w1, [x0, 21] + ldrh w21, [x0, 22] + mul w21, w21, w1 + and w21, w21, 65535 +.L558: + ldrb w0, [x20, 1153] cmp w0, w19 - bls .L544 + bhi .L561 + mov w1, 0 + adrp x0, .LC43 + add x0, x0, :lo12:.LC43 + bl printk + 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 +.L561: add x0, x23, w19, sxtw - ldrb w24, [x0,1248] mov w22, 0 -.L541: - cmp w20, w22, uxth - bls .L545 - add x0, x21, :lo12:.LANCHOR0 - ldrh w1, [x0,2] - mov w0, w24 - mul w1, w22, w1 + ldrb w25, [x0, 172] +.L559: + cmp w21, w22, uxth + bhi .L560 + add w19, w19, 1 + and w19, w19, 65535 + b .L558 +.L560: + ldrh w1, [x24, 2] + mov w0, w25 + mul w1, w1, w22 add w22, w22, 1 bl flash_erase_block - b .L541 -.L545: - add w19, w19, 1 - uxth w19, w19 - b .L540 -.L544: - adrp x0, .LC46 - mov w1, 0 - add x0, x0, :lo12:.LC46 - bl printk - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x29, x30, [sp], 64 - ret + b .L559 .size flash_erase_all, .-flash_erase_all .align 2 .global rk_nandc_flash_xfer_completed @@ -3242,265 +3095,265 @@ rk_nandc_flash_xfer_completed: .type nandc_xfer_start, %function nandc_xfer_start: stp x29, x30, [sp, -80]! - uxtb w1, w1 + and w1, w1, 255 add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] adrp x20, .LANCHOR0 - str x21, [sp,32] - add x4, x20, :lo12:.LANCHOR0 - uxtb w21, w0 + str x21, [sp, 32] + and w21, w0, 255 mov x0, x2 + add x2, x20, :lo12:.LANCHOR0 and w6, w21, 1 - add w5, w1, 1 - ldrb w2, [x4,1028] - cmp w2, 9 - bne .L548 - str wzr, [x29,56] - mov w2, 1 - ubfx x5, x5, 1, 6 - ldr w1, [x29,56] + ldrb w4, [x2, 1028] + cmp w4, 9 + add w4, w1, 1 + bne .L566 + str wzr, [x29, 56] + mov w5, 1 + ubfx x4, x4, 1, 6 + ldr w1, [x29, 56] bfi w1, w6, 1, 1 - str w1, [x29,56] - ldr w1, [x29,56] + str w1, [x29, 56] + ldr w1, [x29, 56] orr w1, w1, 8 - str w1, [x29,56] - ldr w1, [x29,56] - bfi w1, w2, 5, 2 - str w1, [x29,56] - ldr w1, [x29,56] + str w1, [x29, 56] + ldr w1, [x29, 56] + bfi w1, w5, 5, 2 + str w1, [x29, 56] + ldr w1, [x29, 56] orr w1, w1, 536870912 - str w1, [x29,56] - ldr w1, [x29,56] + str w1, [x29, 56] + ldr w1, [x29, 56] orr w1, w1, 1024 - str w1, [x29,56] - ldr w1, [x29,56] + str w1, [x29, 56] + ldr w1, [x29, 56] and w1, w1, -17 - str w1, [x29,56] - ldr w1, [x29,56] - bfi w1, w5, 22, 6 - str w1, [x29,56] - ldr w1, [x29,56] + str w1, [x29, 56] + ldr w1, [x29, 56] + bfi w1, w4, 22, 6 + str w1, [x29, 56] + ldr w1, [x29, 56] orr w1, w1, 128 - str w1, [x29,56] - ldrb w1, [x4,1193] - cbz w1, .L549 - ldrb w1, [x4,1240] - cbz w1, .L549 - ldr w1, [x29,56] + str w1, [x29, 56] + ldrb w1, [x2, 1251] + cbz w1, .L567 + ldrb w1, [x2, 1252] + cbz w1, .L567 + ldr w1, [x29, 56] orr w1, w1, 512 - str w1, [x29,56] -.L549: - ldr w1, [x29,56] + str w1, [x29, 56] +.L567: + ldr w1, [x29, 56] add x20, x20, :lo12:.LANCHOR0 mov w2, w21 ubfx x1, x1, 22, 6 + str x3, [x20, 1272] lsl w1, w1, 10 - str x3, [x20,1216] - str x0, [x20,1208] + str x0, [x20, 1264] bl rknand_dma_map_single - str w0, [x20,1224] - ldr w1, [x29,56] + str w0, [x20, 1280] + ldr w1, [x29, 56] mov w2, w21 - ldr x0, [x20,1216] + ldr x0, [x20, 1272] ubfx x1, x1, 22, 6 lsl w1, w1, 2 bl rknand_dma_map_single - str w0, [x20,1228] + str w0, [x20, 1284] mov w1, 1 - str w1, [x20,1232] - ldr x1, [x20,1048] - cmp w21, wzr - ldr w2, [x20,1224] - str w2, [x1,52] + str w1, [x20, 1288] + ldr x1, [x20, 1056] + cmp w21, 0 + ldr w2, [x20, 1280] + str w2, [x1, 52] mov w2, 16 - str w0, [x1,56] - ldr w0, [x1,48] - str w0, [x29,64] - ldr w0, [x29,64] + str w0, [x1, 56] + ldr w0, [x1, 48] + str w0, [x29, 64] + ldr w0, [x29, 64] bfi w0, w2, 9, 5 - str w0, [x29,64] + str w0, [x29, 64] mov w2, 2 - ldr w0, [x29,64] + ldr w0, [x29, 64] orr w0, w0, 448 - str w0, [x29,64] - ldr w0, [x29,64] + str w0, [x29, 64] + ldr w0, [x29, 64] bfi w0, w2, 3, 3 - str w0, [x29,64] + str w0, [x29, 64] cset w2, eq - ldr w0, [x29,64] + ldr w0, [x29, 64] orr w0, w0, 4 - str w0, [x29,64] - ldr w0, [x29,64] + str w0, [x29, 64] + ldr w0, [x29, 64] bfi w0, w2, 1, 1 - str w0, [x29,64] - ldrh w2, [x20,1242] - ldr w0, [x29,64] + str w0, [x29, 64] + ldrh w2, [x20, 1296] + ldr w0, [x29, 64] orr w0, w0, 1 - str w0, [x29,64] - ldr w0, [x29,64] + str w0, [x29, 64] + ldr w0, [x29, 64] bfi w0, w2, 16, 11 - str w0, [x29,64] - ldr w0, [x29,64] - str w0, [x1,48] - ldr w0, [x29,56] - str w0, [x1,16] - ldr w0, [x29,56] + str w0, [x29, 64] + ldr w0, [x29, 64] + str w0, [x1, 48] + ldr w0, [x29, 56] + str w0, [x1, 16] + ldr w0, [x29, 56] orr w0, w0, 4 - str w0, [x29,56] - ldr w0, [x29,56] - str w0, [x1,16] - b .L547 -.L548: - ldr x2, [x4,1048] + str w0, [x29, 56] + ldr w0, [x29, 56] + str w0, [x1, 16] +.L565: + ldp x19, x20, [sp, 16] + ldr x21, [sp, 32] + ldp x29, x30, [sp], 80 + ret +.L566: + ldr x5, [x2, 1056] mov w7, 16 - ubfx x5, x5, 1, 6 - ldr w2, [x2,12] - str w2, [x29,72] - ldr w2, [x29,72] - bfi w2, w7, 8, 8 - str w2, [x29,72] - ldr w2, [x29,72] - and w2, w2, -9 - str w2, [x29,72] - ldr w2, [x29,72] - and w2, w2, -225 - str w2, [x29,72] - str wzr, [x29,56] - ldr w2, [x29,56] - bfi w2, w6, 1, 1 - str w2, [x29,56] + ubfx x4, x4, 1, 6 + ldr w5, [x5, 12] + str w5, [x29, 72] + ldr w5, [x29, 72] + bfi w5, w7, 8, 8 + str w5, [x29, 72] + ldr w5, [x29, 72] + and w5, w5, -9 + str w5, [x29, 72] + ldr w5, [x29, 72] + and w5, w5, -225 + str w5, [x29, 72] + str wzr, [x29, 56] + ldr w5, [x29, 56] + bfi w5, w6, 1, 1 + str w5, [x29, 56] mov w6, 1 - ldr w2, [x29,56] - orr w2, w2, 8 - str w2, [x29,56] - ldr w2, [x29,56] - bfi w2, w6, 5, 2 - str w2, [x29,56] - ldr w2, [x29,56] - orr w2, w2, 536870912 - str w2, [x29,56] - ldr w2, [x29,56] - orr w2, w2, 1024 - str w2, [x29,56] - ldr w2, [x29,56] - and w2, w2, -17 - str w2, [x29,56] - ldr w2, [x29,56] - bfi w2, w5, 22, 6 - str w2, [x29,56] - cbz w21, .L551 - ldrb w2, [x4,1244] - ubfx x1, x1, 1, 7 - mov w5, 128 - cmp w2, 25 - mov w2, 64 - csel w2, w2, w5, cc - add x1, x3, x1, lsl 2 - mov w5, 0 -.L553: - cmp x3, x1 - add w7, w5, w2 - beq .L555 - ldrh w6, [x3,2] - and x5, x5, 4294967292 - ldr x8, [x4,1200] - ldrh w9, [x3],4 - orr w6, w9, w6, lsl 16 - str w6, [x8,x5] - mov w5, w7 - b .L553 -.L551: - ldr x1, [x4,1200] - str w6, [x1] -.L555: + ldr w5, [x29, 56] + orr w5, w5, 8 + str w5, [x29, 56] + ldr w5, [x29, 56] + bfi w5, w6, 5, 2 + str w5, [x29, 56] + ldr w5, [x29, 56] + orr w5, w5, 536870912 + str w5, [x29, 56] + ldr w5, [x29, 56] + orr w5, w5, 1024 + str w5, [x29, 56] + ldr w5, [x29, 56] + and w5, w5, -17 + str w5, [x29, 56] + ldr w5, [x29, 56] + bfi w5, w4, 22, 6 + str w5, [x29, 56] + cbz w21, .L569 + ldrb w4, [x2, 1249] + lsr w1, w1, 1 + mov w6, 64 + mov x5, 0 + cmp w4, 25 + mov w4, 128 + csel w6, w6, w4, cc + mov w4, 0 +.L571: + add w7, w6, w4 + cmp w1, w5 + bgt .L572 +.L573: add x20, x20, :lo12:.LANCHOR0 mov w2, w21 - ldr x1, [x20,1200] - str x1, [x20,1216] - ldr w1, [x29,56] - str x0, [x20,1208] + ldr x1, [x20, 1256] + str x1, [x20, 1272] + ldr w1, [x29, 56] + str x0, [x20, 1264] ubfx x1, x1, 22, 6 lsl w1, w1, 10 bl rknand_dma_map_single - str w0, [x20,1224] - ldr w1, [x29,56] + ldr w1, [x29, 56] mov w2, w21 - ldr x0, [x20,1216] + str w0, [x20, 1280] + ldr x0, [x20, 1272] ubfx x1, x1, 22, 6 lsl w1, w1, 7 bl rknand_dma_map_single - str w0, [x20,1228] - ldr x1, [x20,1048] + str w0, [x20, 1284] mov w0, 1 - str w0, [x20,1232] + str w0, [x20, 1288] + ldr x0, [x20, 1056] mov w2, 16 - ldr w0, [x20,1224] - cmp w21, wzr - str w0, [x1,20] - ldr w0, [x20,1228] - str w0, [x1,24] - str wzr, [x29,64] - ldr w0, [x29,64] - bfi w0, w2, 9, 5 - str w0, [x29,64] + ldr w1, [x20, 1280] + cmp w21, 0 + str w1, [x0, 20] + ldr w1, [x20, 1284] + str w1, [x0, 24] + str wzr, [x29, 64] + ldr w1, [x29, 64] + bfi w1, w2, 9, 5 + str w1, [x29, 64] mov w2, 2 - ldr w0, [x29,64] - orr w0, w0, 448 - str w0, [x29,64] - ldr w0, [x29,64] - bfi w0, w2, 3, 3 - str w0, [x29,64] + ldr w1, [x29, 64] + orr w1, w1, 448 + str w1, [x29, 64] + ldr w1, [x29, 64] + bfi w1, w2, 3, 3 + str w1, [x29, 64] cset w2, eq - ldr w0, [x29,64] - orr w0, w0, 4 - str w0, [x29,64] - ldr w0, [x29,64] - bfi w0, w2, 1, 1 - str w0, [x29,64] - ldr w0, [x29,64] - orr w0, w0, 1 - str w0, [x29,64] - ldr w0, [x29,64] - str w0, [x1,16] - ldr w0, [x29,72] - str w0, [x1,12] - ldr w0, [x29,56] - str w0, [x1,8] - ldr w0, [x29,56] - orr w0, w0, 4 - str w0, [x29,56] - ldr w0, [x29,56] - str w0, [x1,8] -.L547: - ldp x19, x20, [sp,16] - ldr x21, [sp,32] - ldp x29, x30, [sp], 80 - ret + ldr w1, [x29, 64] + orr w1, w1, 4 + str w1, [x29, 64] + ldr w1, [x29, 64] + bfi w1, w2, 1, 1 + str w1, [x29, 64] + ldr w1, [x29, 64] + orr w1, w1, 1 + str w1, [x29, 64] + ldr w1, [x29, 64] + str w1, [x0, 16] + ldr w1, [x29, 72] + str w1, [x0, 12] + ldr w1, [x29, 56] + str w1, [x0, 8] + ldr w1, [x29, 56] + orr w1, w1, 4 + str w1, [x29, 56] + ldr w1, [x29, 56] + str w1, [x0, 8] + b .L565 +.L572: + ldr x8, [x2, 1256] + and x4, x4, 4294967292 + ldr w9, [x3, x5, lsl 2] + add x5, x5, 1 + str w9, [x8, x4] + mov w4, w7 + b .L571 +.L569: + ldr x1, [x2, 1256] + str w6, [x1] + b .L573 .size nandc_xfer_start, .-nandc_xfer_start .align 2 .global nandc_set_seed .type nandc_set_seed, %function nandc_set_seed: adrp x1, .LANCHOR1 - and w0, w0, 127 add x1, x1, :lo12:.LANCHOR1 - add x1, x1, 1168 - ldrh w1, [x1,w0,uxtw 1] + and x0, x0, 127 + add x1, x1, 1152 + ldrh w1, [x1, x0, lsl 1] adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 orr w2, w1, -1073741824 - ldrb w3, [x0,1240] - cmp w3, wzr + ldrb w3, [x0, 1252] + cmp w3, 0 csel w1, w2, w1, ne - ldrb w2, [x0,1028] - ldr x0, [x0,1048] + ldrb w2, [x0, 1028] + ldr x0, [x0, 1056] cmp w2, 9 - bne .L565 - str w1, [x0,520] - b .L563 -.L565: - str w1, [x0,336] -.L563: + bne .L584 + str w1, [x0, 520] + ret +.L584: + str w1, [x0, 336] ret .size nandc_set_seed, .-nandc_set_seed .align 2 @@ -3509,43 +3362,45 @@ nandc_set_seed: zftl_flash_de_init: stp x29, x30, [sp, -32]! add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x19, .LANCHOR0 + stp x19, x20, [sp, 16] bl nandc_wait_flash_ready - add x1, x19, :lo12:.LANCHOR0 - ldrb w0, [x19,#:lo12:.LANCHOR0] - cbz w0, .L570 - ldrb w0, [x1,1154] - cbnz w0, .L570 - ldrb w1, [x1,1028] - cmp w1, 9 - beq .L570 - bl zftl_flash_exit_slc_mode -.L570: + adrp x4, .LANCHOR0 + mov x19, x4 + ldrb w1, [x4, #:lo12:.LANCHOR0] + cbz w1, .L589 + add x0, x4, :lo12:.LANCHOR0 + ldrb w1, [x0, 1154] + cbnz w1, .L589 + ldrb w0, [x0, 1028] + cmp w0, 9 + beq .L589 mov w0, 0 + bl zftl_flash_exit_slc_mode +.L589: add x20, x19, :lo12:.LANCHOR0 + mov w0, 0 bl hynix_reconfig_rr_para - ldrb w0, [x20,1192] - cbz w0, .L571 - ldrb w0, [x20,1304] - tbz x0, 0, .L571 + ldrb w0, [x20, 1192] + cbz w0, .L590 + ldrb w0, [x20, 1248] + tbz x0, 0, .L590 mov w0, 1 bl flash_set_interface_mode mov w0, 1 bl nandc_set_if_mode - strb wzr, [x20,1192] -.L571: + strb wzr, [x20, 1192] +.L590: add x19, x19, :lo12:.LANCHOR0 - ldrb w0, [x19,1240] - cbz w0, .L572 + ldrb w0, [x19, 1252] + cbz w0, .L591 mov w0, 0 - strb wzr, [x19,1240] + strb wzr, [x19, 1252] bl nandc_set_seed mov w0, 1 - strb w0, [x19,1240] -.L572: + strb w0, [x19, 1252] +.L591: mov w0, 0 - ldp x19, x20, [sp,16] + ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 32 ret .size zftl_flash_de_init, .-zftl_flash_de_init @@ -3553,171 +3408,132 @@ zftl_flash_de_init: .global nandc_randomizer_enable .type nandc_randomizer_enable, %function nandc_randomizer_enable: - adrp x1, .LANCHOR0+1240 - strb w0, [x1,#:lo12:.LANCHOR0+1240] + adrp x1, .LANCHOR0+1252 + strb w0, [x1, #:lo12:.LANCHOR0+1252] ret .size nandc_randomizer_enable, .-nandc_randomizer_enable .align 2 .global nandc_get_chip_if .type nandc_get_chip_if, %function nandc_get_chip_if: - adrp x1, .LANCHOR0+1048 - uxtb x0, w0 - add x0, x0, 8 - ldr x1, [x1,#:lo12:.LANCHOR0+1048] - add x0, x1, x0, lsl 8 + adrp x1, .LANCHOR0+1056 + ubfiz x0, x0, 8, 8 + add x0, x0, 2048 + ldr x1, [x1, #:lo12:.LANCHOR0+1056] + add x0, x1, x0 ret .size nandc_get_chip_if, .-nandc_get_chip_if .align 2 - .global zbuf_init - .type zbuf_init, %function -zbuf_init: - stp x29, x30, [sp, -48]! - adrp x0, .LANCHOR0 - add x29, sp, 0 - stp x19, x20, [sp,16] - add x19, x0, :lo12:.LANCHOR0 - mov w20, 0 - stp x21, x22, [sp,32] - add x19, x19, 1312 - mov x22, x0 -.L591: - add x21, x22, :lo12:.LANCHOR0 - uxtb w0, w20 - add w1, w0, 1 - strb w0, [x19,1] - strb w1, [x19] - add w20, w20, 1 - ldrb w0, [x21,3360] - add x19, x19, 64 - strb wzr, [x19,-62] - str xzr, [x19,-48] - lsl w0, w0, 9 - bl ftl_malloc - str x0, [x19,-56] - mov w0, 64 - bl ftl_malloc - str x0, [x19,-40] - cmp w20, 32 - bne .L591 - strb w20, [x21,3362] - mov w0, -1 - strb wzr, [x21,3361] - strb w0, [x21,3296] - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x29, x30, [sp], 48 - ret - .size zbuf_init, .-zbuf_init - .align 2 .global buf_reinit .type buf_reinit, %function buf_reinit: adrp x0, .LANCHOR0 - mov w2, 0 add x1, x0, :lo12:.LANCHOR0 - add x1, x1, 1312 -.L594: - uxtb w3, w2 - add w2, w2, 1 + add x1, x1, 1304 + mov w2, 0 +.L611: + and w3, w2, 255 + strb wzr, [x1, 2] add w4, w3, 1 - strb w3, [x1,1] + strb w3, [x1, 1] strb w4, [x1] + add w2, w2, 1 + str xzr, [x1, 16] cmp w2, 32 - strb wzr, [x1,2] add x1, x1, 64 - str xzr, [x1,-48] - bne .L594 + bne .L611 add x0, x0, :lo12:.LANCHOR0 mov w1, -1 - strb wzr, [x0,3361] - strb w1, [x0,3296] - strb w2, [x0,3362] + strb wzr, [x0, 3352] + strb w1, [x0, 3288] + strb w2, [x0, 3353] ret .size buf_reinit, .-buf_reinit .align 2 .global buf_add_tail .type buf_add_tail, %function buf_add_tail: - stp x29, x30, [sp, -32]! + stp x29, x30, [sp, -48]! add x29, sp, 0 - stp x19, x20, [sp,16] - mov x20, x0 + stp x19, x20, [sp, 16] + mov x19, x0 + str x21, [sp, 32] mov w0, -1 strb w0, [x1] - mov x19, x1 - ldrb w1, [x20] + mov x20, x1 + ldrb w1, [x19] cmp w1, 255 - bne .L602 - ldrb w0, [x19,1] + bne .L619 + ldrb w0, [x20, 1] cmp w0, 255 - bne .L598 + bne .L615 adrp x1, .LANCHOR1 - adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 + add x1, x1, 1408 mov w2, 74 - add x1, x1, 1424 - add x0, x0, :lo12:.LC0 - bl printk - bl dump_stack -.L598: - ldrb w0, [x19,1] - strb w0, [x20] - b .L596 -.L602: - adrp x0, .LANCHOR0 - add x0, x0, :lo12:.LANCHOR0 - add x0, x0, 1312 -.L603: - mov w20, w1 - sbfiz x1, x1, 6, 32 - ldrb w1, [x0,x1] - cmp w1, 255 - bne .L603 - ldrb w0, [x19,1] - cmp w0, 255 - bne .L600 - adrp x1, .LANCHOR1 adrp x0, .LC0 - add x1, x1, :lo12:.LANCHOR1 - mov w2, 81 - add x1, x1, 1424 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L600: - adrp x0, .LANCHOR0 - sbfiz x20, x20, 6, 32 - add x0, x0, :lo12:.LANCHOR0 - ldrb w1, [x19,1] - add x0, x0, 1312 - strb w1, [x0,x20] -.L596: - ldp x19, x20, [sp,16] - ldp x29, x30, [sp], 32 +.L615: + ldrb w0, [x20, 1] + strb w0, [x19] +.L613: + ldp x19, x20, [sp, 16] + ldr x21, [sp, 32] + ldp x29, x30, [sp], 48 ret +.L619: + adrp x0, .LANCHOR0 + add x2, x0, :lo12:.LANCHOR0 + add x2, x2, 1304 + mov x19, x0 +.L620: + sbfiz x0, x1, 6, 32 + mov w21, w1 + ldrb w1, [x2, x0] + cmp w1, 255 + bne .L620 + ldrb w0, [x20, 1] + cmp w0, 255 + bne .L617 + adrp x1, .LANCHOR1 + add x1, x1, :lo12:.LANCHOR1 + add x1, x1, 1408 + mov w2, 81 + adrp x0, .LC0 + add x0, x0, :lo12:.LC0 + bl printk + bl dump_stack +.L617: + add x0, x19, :lo12:.LANCHOR0 + sbfiz x21, x21, 6, 32 + add x0, x0, 1304 + ldrb w1, [x20, 1] + strb w1, [x0, x21] + b .L613 .size buf_add_tail, .-buf_add_tail .align 2 .type queue_read_cmd, %function queue_read_cmd: stp x29, x30, [sp, -32]! add x29, sp, 0 - str x19, [sp,16] + str x19, [sp, 16] mov x19, x0 mov w0, 48 - ldr w1, [x19,40] + ldr w1, [x19, 40] bl flash_start_page_read - strb wzr, [x19,59] + strb wzr, [x19, 59] mov w0, 1 - strb w0, [x19,58] + strb w0, [x19, 58] mov w0, -1 strb w0, [x19] adrp x0, .LANCHOR0 - mov x1, x19 add x0, x0, :lo12:.LANCHOR0 - add x0, x0, 3363 + mov x1, x19 + add x0, x0, 3354 bl buf_add_tail - ldr x19, [sp,16] + ldr x19, [sp, 16] ldp x29, x30, [sp], 32 ret .size queue_read_cmd, .-queue_read_cmd @@ -3727,35 +3543,34 @@ queue_read_cmd: zbuf_free: stp x29, x30, [sp, -32]! add x29, sp, 0 - str x19, [sp,16] + str x19, [sp, 16] adrp x19, .LANCHOR0 - ldrb w1, [x0,2] + ldrb w1, [x0, 2] and w1, w1, 8 - uxtb w1, w1 - strb w1, [x0,2] - cbz w1, .L606 - ldr w1, [x0,36] + strb w1, [x0, 2] + cbz w1, .L625 + ldr w1, [x0, 36] cmn w1, #1 - beq .L606 + beq .L625 mov x1, x0 add x0, x19, :lo12:.LANCHOR0 - add x0, x0, 3361 + add x0, x0, 3352 bl buf_add_tail - b .L607 -.L606: - add x1, x19, :lo12:.LANCHOR0 - ldrb w2, [x1,3361] - strb w2, [x0] - ldrb w0, [x0,1] - strb w0, [x1,3361] -.L607: +.L626: add x19, x19, :lo12:.LANCHOR0 - ldrb w0, [x19,3362] + ldrb w0, [x19, 3353] add w0, w0, 1 - strb w0, [x19,3362] - ldr x19, [sp,16] + strb w0, [x19, 3353] + ldr x19, [sp, 16] ldp x29, x30, [sp], 32 ret +.L625: + add x1, x19, :lo12:.LANCHOR0 + ldrb w2, [x1, 3352] + strb w2, [x0] + ldrb w0, [x0, 1] + strb w0, [x1, 3352] + b .L626 .size zbuf_free, .-zbuf_free .align 2 .global buf_alloc @@ -3764,98 +3579,98 @@ buf_alloc: stp x29, x30, [sp, -48]! adrp x1, .LANCHOR0 add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] add x20, x1, :lo12:.LANCHOR0 - str x21, [sp,32] - uxtb w21, w0 + str x21, [sp, 32] + and w21, w0, 255 mov x19, x1 - ldrb w0, [x20,3362] - cbz w0, .L615 -.L618: + ldrb w0, [x20, 3353] + cbz w0, .L635 +.L638: add x1, x19, :lo12:.LANCHOR0 - add x0, x1, 1312 - ldrb w2, [x1,3361] - add x0, x0, x2, lsl 6 - cbz w21, .L616 - b .L617 -.L615: + add x0, x1, 1304 + ldrb w3, [x1, 3352] + ubfiz x2, x3, 6, 8 + add x0, x0, x2 + cbz w21, .L636 +.L637: + add x1, x19, :lo12:.LANCHOR0 + sbfiz x3, x3, 6, 32 + add x4, x1, 1304 + add x2, x4, x3 + ldrb w5, [x4, x3] + strb w5, [x1, 3352] + ldrb w5, [x1, 3353] + strh wzr, [x2, 50] + sub w5, w5, #1 + strb w5, [x1, 3353] + mov w1, 1 + strb w1, [x2, 2] + mov w1, -1 + strb wzr, [x2, 56] + strb w1, [x4, x3] + mov w1, -1 + strb wzr, [x2, 57] + str xzr, [x2, 16] + str w1, [x2, 36] + b .L634 +.L635: adrp x1, .LANCHOR1 - adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 + add x1, x1, 1424 mov w2, 121 - add x1, x1, 1440 + adrp x0, .LC0 add x0, x0, :lo12:.LC0 bl printk bl dump_stack - ldrb w1, [x20,3362] - cbnz w1, .L618 -.L620: + ldrb w0, [x20, 3353] + cbnz w0, .L638 +.L640: mov x0, 0 - b .L619 -.L616: - ldrb w1, [x1,3362] - cmp w1, 1 - beq .L620 -.L617: - add x1, x19, :lo12:.LANCHOR0 - lsl x2, x2, 6 - add x4, x1, 1312 - add x3, x4, x2 - ldrb w5, [x4,x2] - strb w5, [x1,3361] - ldrb w5, [x1,3362] - strh wzr, [x3,50] - sub w5, w5, #1 - strb w5, [x1,3362] - mov w1, 1 - strb w1, [x3,2] - mov w1, -1 - str xzr, [x3,16] - strb w1, [x4,x2] - mov w1, -1 - strb wzr, [x3,56] - str w1, [x3,36] - strb wzr, [x3,57] -.L619: - ldp x19, x20, [sp,16] - ldr x21, [sp,32] +.L634: + ldp x19, x20, [sp, 16] + ldr x21, [sp, 32] ldp x29, x30, [sp], 48 ret +.L636: + ldrb w1, [x1, 3353] + cmp w1, 1 + bne .L637 + b .L640 .size buf_alloc, .-buf_alloc .align 2 .global buf_remove_buf .type buf_remove_buf, %function buf_remove_buf: - ldrb w4, [x1,1] + ldrb w4, [x1, 1] ldrb w2, [x0] cmp w4, w2 - bne .L627 + bne .L648 ldrb w1, [x1] strb w1, [x0] - b .L631 -.L627: - adrp x0, .LANCHOR0 - add x0, x0, :lo12:.LANCHOR0 - add x0, x0, 1312 -.L629: - cmp w2, 255 - beq .L632 +.L652: + mov w0, 1 + ret +.L649: mov w3, w2 sbfiz x2, x2, 6, 32 - ldrb w2, [x0,x2] - cmp w2, w4 - bne .L629 + ldrb w2, [x0, x2] + cmp w4, w2 + bne .L650 sbfiz x3, x3, 6, 32 ldrb w2, [x1] - strb w2, [x0,x3] + strb w2, [x0, x3] mov w0, -1 strb w0, [x1] -.L631: - mov w0, 1 - b .L626 -.L632: + b .L652 +.L648: + adrp x0, .LANCHOR0 + add x0, x0, :lo12:.LANCHOR0 + add x0, x0, 1304 +.L650: + cmp w2, 255 + bne .L649 mov w0, 0 -.L626: ret .size buf_remove_buf, .-buf_remove_buf .align 2 @@ -3863,38 +3678,39 @@ buf_remove_buf: .type buf_remove_free, %function buf_remove_free: stp x29, x30, [sp, -32]! + adrp x5, .LANCHOR0 add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x19, .LANCHOR0 + stp x19, x20, [sp, 16] mov x20, x0 - add x0, x19, :lo12:.LANCHOR0 - ldrb w0, [x0,3362] - cbnz w0, .L634 + add x0, x5, :lo12:.LANCHOR0 + mov x19, x5 + ldrb w0, [x0, 3353] + cbnz w0, .L654 adrp x1, .LANCHOR1 - adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 + add x1, x1, 1440 mov w2, 172 - add x1, x1, 1456 + adrp x0, .LC0 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L634: +.L654: add x19, x19, :lo12:.LANCHOR0 - ldrb w0, [x19,3362] - cbz w0, .L633 - add x0, x19, 3361 + ldrb w0, [x19, 3353] + cbz w0, .L653 mov x1, x20 + add x0, x19, 3352 bl buf_remove_buf cmp w0, 1 - bne .L633 - ldrb w0, [x19,3362] + bne .L653 + ldrb w0, [x19, 3353] sub w0, w0, #1 - strb w0, [x19,3362] - ldrb w0, [x20,2] + strb w0, [x19, 3353] + ldrb w0, [x20, 2] orr w0, w0, 1 - strb w0, [x20,2] -.L633: - ldp x19, x20, [sp,16] + strb w0, [x20, 2] +.L653: + ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 32 ret .size buf_remove_free, .-buf_remove_free @@ -3903,59 +3719,58 @@ buf_remove_free: .type dump_buf_info, %function dump_buf_info: sub sp, sp, #64 + adrp x0, .LC44 + add x0, x0, :lo12:.LC44 + stp x29, x30, [sp, 16] + add x29, sp, 16 + stp x19, x20, [sp, 32] + adrp x19, .LANCHOR0 + add x19, x19, :lo12:.LANCHOR0 + str x21, [sp, 48] + add x20, x19, 1304 + adrp x21, .LC50 + add x19, x19, 3352 + add x21, x21, :lo12:.LC50 + ldrb w1, [x19, 2] + bl printk + ldrb w1, [x19, 3] + adrp x0, .LC45 + add x0, x0, :lo12:.LC45 + bl printk + ldrb w1, [x19, 4] + adrp x0, .LC46 + add x0, x0, :lo12:.LC46 + bl printk + ldrb w1, [x19, 5] adrp x0, .LC47 add x0, x0, :lo12:.LC47 - stp x29, x30, [sp,16] - add x29, sp, 16 - stp x19, x20, [sp,32] - adrp x19, .LANCHOR0 - str x21, [sp,48] - add x19, x19, :lo12:.LANCHOR0 - adrp x21, .LC53 - add x20, x19, 1312 - add x21, x21, :lo12:.LC53 - add x19, x19, 3360 - ldrb w1, [x19,3] bl printk - ldrb w1, [x19,4] + ldrb w1, [x19] adrp x0, .LC48 add x0, x0, :lo12:.LC48 bl printk - ldrb w1, [x19,5] + ldrb w1, [x19, 1] adrp x0, .LC49 add x0, x0, :lo12:.LC49 bl printk - ldrb w1, [x19,6] - adrp x0, .LC50 - add x0, x0, :lo12:.LC50 - bl printk - ldrb w1, [x19,1] - adrp x0, .LC51 - add x0, x0, :lo12:.LC51 - bl printk - ldrb w1, [x19,2] - adrp x0, .LC52 - add x0, x0, :lo12:.LC52 - bl printk -.L639: - ldr w0, [x20,40] +.L660: + ldr w0, [x20, 40] add x20, x20, 64 - ldrb w1, [x20,-63] - ldrb w2, [x20,-64] - ldrb w3, [x20,-62] - ldrh w4, [x20,-14] - ldrb w5, [x20,-6] + ldrb w5, [x20, -6] + ldrh w4, [x20, -14] + ldrb w3, [x20, -62] + ldrb w2, [x20, -64] + ldrb w1, [x20, -63] str w0, [sp] mov x0, x21 - ldr w6, [x20,-12] - ldr w7, [x20,-28] + ldr w7, [x20, -28] + ldr w6, [x20, -12] bl printk cmp x20, x19 - bne .L639 - sub sp, x29, #16 - ldp x19, x20, [sp,32] - ldr x21, [sp,48] - ldp x29, x30, [sp,16] + bne .L660 + ldp x19, x20, [sp, 32] + ldp x29, x30, [sp, 16] + ldr x21, [sp, 48] add sp, sp, 64 ret .size dump_buf_info, .-dump_buf_info @@ -3963,25 +3778,23 @@ dump_buf_info: .global flash_check_bad_block .type flash_check_bad_block, %function flash_check_bad_block: - adrp x2, .LANCHOR2 - uxtb w0, w0 - add x2, x2, :lo12:.LANCHOR2 - add x2, x2, 8 - ldrb w3, [x2,13] - ldrh w2, [x2,14] - mul w2, w3, w2 - ubfx x3, x1, 5, 27 - uxth w2, w2 + adrp x3, .LANCHOR2 + add x3, x3, :lo12:.LANCHOR2 + and w5, w0, 255 + lsr w4, w1, 5 + ldrb w0, [x3, 21] + ldrh w2, [x3, 22] + mul w2, w2, w0 + mov x0, 912 + and w2, w2, 65535 add w2, w2, 31 asr w2, w2, 5 lsl w2, w2, 2 - mul w2, w0, w2 - adrp x0, .LANCHOR0+1128 - sxtw x2, w2 - ldr x0, [x0,#:lo12:.LANCHOR0+1128] - add x2, x2, 912 - add x2, x0, x2 - ldr w0, [x2,x3,lsl 2] + umaddl x0, w2, w5, x0 + adrp x2, .LANCHOR0+1048 + ldr x2, [x2, #:lo12:.LANCHOR0+1048] + add x0, x0, w4, uxtw 2 + ldr w0, [x2, x0] lsr w0, w0, w1 and w0, w0, 1 ret @@ -3991,40 +3804,38 @@ flash_check_bad_block: .type flash_mask_bad_block, %function flash_mask_bad_block: stp x29, x30, [sp, -48]! - adrp x3, .LANCHOR2 + mov w2, w1 add x29, sp, 0 - add x3, x3, :lo12:.LANCHOR2 - stp x19, x20, [sp,16] - str x21, [sp,32] - uxtb w19, w0 - mov w21, w1 - mov w1, w19 - ldrb w0, [x3,21] - mov w2, w21 - ldrh w20, [x3,22] - mul w20, w0, w20 - adrp x0, .LC54 - add x0, x0, :lo12:.LC54 - uxth w20, w20 - add w20, w20, 31 + str x21, [sp, 32] + and w21, w0, 255 + adrp x0, .LANCHOR2 + add x0, x0, :lo12:.LANCHOR2 + stp x19, x20, [sp, 16] + mov w20, w1 + ldrh w19, [x0, 22] + ldrb w1, [x0, 21] + adrp x0, .LC51 + add x0, x0, :lo12:.LC51 + mul w19, w19, w1 + mov w1, w21 bl printk - asr w20, w20, 5 - adrp x0, .LANCHOR0+1128 - lsl w20, w20, 2 - ubfx x3, x21, 5, 27 - lsl x3, x3, 2 - mul w19, w19, w20 - ldr x0, [x0,#:lo12:.LANCHOR0+1128] - sxtw x19, w19 - add x19, x19, 912 - add x19, x0, x19 - mov w0, 1 - lsl w1, w0, w21 - ldr w0, [x19,x3] - orr w1, w0, w1 - str w1, [x19,x3] - ldp x19, x20, [sp,16] - ldr x21, [sp,32] + and w19, w19, 65535 + lsr w0, w20, 5 + add w1, w19, 31 + mov x19, 912 + asr w1, w1, 5 + mov w2, 1 + lsl w1, w1, 2 + umaddl x1, w1, w21, x19 + add x1, x1, w0, uxtw 2 + adrp x0, .LANCHOR0+1048 + ldr x3, [x0, #:lo12:.LANCHOR0+1048] + lsl w0, w2, w20 + ldr w2, [x3, x1] + orr w2, w2, w0 + str w2, [x3, x1] + ldp x19, x20, [sp, 16] + ldr x21, [sp, 32] ldp x29, x30, [sp], 48 ret .size flash_mask_bad_block, .-flash_mask_bad_block @@ -4034,51 +3845,53 @@ flash_mask_bad_block: str2hex: ldrb w1, [x0] cmp w1, 48 - bne .L644 - ldrb w1, [x0,1] + bne .L667 + ldrb w1, [x0, 1] add x2, x0, 2 and w1, w1, -33 - uxtb w1, w1 + and w1, w1, 255 cmp w1, 88 - csel x0, x0, x2, ne -.L644: - ldrb w1, [x0] + csel x0, x2, x0, eq +.L667: + mov x2, x0 + ldrb w1, [x2], 1 and w1, w1, -33 - uxtb w1, w1 + and w1, w1, 255 cmp w1, 88 mov w1, 0 - csinc x0, x0, x0, ne -.L646: + csel x0, x2, x0, eq +.L669: ldrb w2, [x0] - cbz w2, .L653 - sub w3, w2, #48 - uxtb w3, w3 - cmp w3, 9 - bhi .L647 - add w1, w2, w1, lsl 4 - sub w1, w1, #48 - b .L648 -.L647: - sub w3, w2, #97 - uxtb w3, w3 - cmp w3, 5 - bhi .L649 - add w1, w2, w1, lsl 4 - sub w1, w1, #87 - b .L648 -.L649: - sub w3, w2, #65 - uxtb w3, w3 - cmp w3, 5 - bhi .L653 - add w1, w2, w1, lsl 4 - sub w1, w1, #55 -.L648: - add x0, x0, 1 - b .L646 -.L653: + cbnz w2, .L674 +.L666: mov w0, w1 ret +.L674: + sub w3, w2, #48 + and w3, w3, 255 + cmp w3, 9 + bhi .L670 + add w1, w2, w1, lsl 4 + sub w1, w1, #48 +.L671: + add x0, x0, 1 + b .L669 +.L670: + sub w3, w2, #97 + and w3, w3, 255 + cmp w3, 5 + bhi .L672 + add w1, w2, w1, lsl 4 + sub w1, w1, #87 + b .L671 +.L672: + sub w3, w2, #65 + and w3, w3, 255 + cmp w3, 5 + bhi .L666 + add w1, w2, w1, lsl 4 + sub w1, w1, #55 + b .L671 .size str2hex, .-str2hex .align 2 .global zftl_proc_debug_init @@ -4086,14 +3899,14 @@ str2hex: zftl_proc_debug_init: stp x29, x30, [sp, -16]! adrp x3, .LANCHOR1 - mov x2, 0 - adrp x0, .LC55 add x3, x3, :lo12:.LANCHOR1 + mov x4, 0 add x29, sp, 0 + add x3, x3, 1456 + mov x2, 0 mov w1, 292 - add x3, x3, 1472 - mov x4, x2 - add x0, x0, :lo12:.LC55 + adrp x0, .LC52 + add x0, x0, :lo12:.LC52 bl proc_create_data ldp x29, x30, [sp], 16 ret @@ -4103,311 +3916,307 @@ zftl_proc_debug_init: .type ftl_print_info_to_buf, %function ftl_print_info_to_buf: stp x29, x30, [sp, -48]! - adrp x1, .LC1 - adrp x2, .LC2 + adrp x2, .LC1 + adrp x1, .LC2 + add x2, x2, :lo12:.LC1 add x29, sp, 0 - add x1, x1, :lo12:.LC1 - add x2, x2, :lo12:.LC2 - stp x19, x20, [sp,16] - stp x21, x22, [sp,32] + stp x19, x20, [sp, 16] + add x1, x1, :lo12:.LC2 + stp x21, x22, [sp, 32] mov x20, x0 bl sprintf - adrp x7, .LANCHOR2 - adrp x22, .LANCHOR0 - add x7, x7, :lo12:.LANCHOR2 - adrp x1, .LC56 - add x7, x7, 8 - add x21, x22, :lo12:.LANCHOR0 add x19, x20, w0, sxtw + adrp x0, .LANCHOR2 + add x0, x0, :lo12:.LANCHOR2 + adrp x22, .LANCHOR0 + add x21, x22, :lo12:.LANCHOR0 + adrp x1, .LC53 + add x1, x1, :lo12:.LC53 + ldrb w7, [x0, 14] + ldrb w6, [x0, 13] + ldrb w5, [x0, 12] + ldrb w4, [x0, 11] + ldrb w3, [x0, 10] + ldrb w2, [x0, 9] + mov x0, x19 + bl sprintf + add x19, x19, w0, sxtw + ldr w2, [x21, 1032] + mov x0, x19 + adrp x1, .LC54 + add x1, x1, :lo12:.LC54 + lsr w2, w2, 11 + bl sprintf + ldr w2, [x21, 3360] + add x19, x19, w0, sxtw + mov x0, x19 + adrp x1, .LC55 + add x1, x1, :lo12:.LC55 + lsr w2, w2, 11 + bl sprintf + add x19, x19, w0, sxtw + adrp x1, .LC56 + mov x0, x19 add x1, x1, :lo12:.LC56 - ldrb w5, [x7,4] - mov x0, x19 - ldrb w6, [x7,5] - ldrb w3, [x7,2] - ldrb w4, [x7,3] - ldrb w2, [x7,1] - ldrb w7, [x7,6] - bl sprintf - add x19, x19, w0, sxtw - ldr w2, [x21,1032] - adrp x1, .LC57 - mov x0, x19 - add x1, x1, :lo12:.LC57 - lsr w2, w2, 11 - bl sprintf - add x19, x19, w0, sxtw - ldr w2, [x21,3368] - adrp x1, .LC58 - mov x0, x19 - add x1, x1, :lo12:.LC58 - lsr w2, w2, 11 - bl sprintf - add x19, x19, w0, sxtw - adrp x1, .LC59 - mov x0, x19 - add x1, x1, :lo12:.LC59 - add x19, x19, 10 bl strcpy - ldr w2, [x21,3372] - adrp x1, .LC60 + add x19, x19, 10 + ldr w2, [x21, 3364] mov x0, x19 - add x1, x1, :lo12:.LC60 + adrp x1, .LC57 + add x1, x1, :lo12:.LC57 bl sprintf add x19, x19, w0, sxtw - ldr w2, [x21,1032] - adrp x1, .LC61 + ldr w2, [x21, 1032] mov x0, x19 + adrp x1, .LC58 + add x1, x1, :lo12:.LC58 + bl sprintf + add x19, x19, w0, sxtw + ldr x0, [x21, 1128] + adrp x1, .LC59 + add x1, x1, :lo12:.LC59 + ldr w2, [x0, 524] + mov x0, x19 + bl sprintf + add x19, x19, w0, sxtw + ldr x0, [x21, 1128] + adrp x1, .LC60 + add x1, x1, :lo12:.LC60 + ldr w2, [x0, 528] + mov x0, x19 + bl sprintf + add x19, x19, w0, sxtw + ldrh w2, [x21, 3368] + mov x0, x19 + adrp x1, .LC61 add x1, x1, :lo12:.LC61 bl sprintf add x19, x19, w0, sxtw - ldr x2, [x21,1120] + ldrh w2, [x21, 3370] + mov x0, x19 adrp x1, .LC62 - mov x0, x19 add x1, x1, :lo12:.LC62 - ldr w2, [x2,524] bl sprintf add x19, x19, w0, sxtw - ldr x2, [x21,1120] + ldrh w2, [x21, 3372] + mov x0, x19 adrp x1, .LC63 - mov x0, x19 add x1, x1, :lo12:.LC63 - ldr w2, [x2,528] bl sprintf add x19, x19, w0, sxtw - ldrh w2, [x21,3376] - adrp x1, .LC64 + ldrh w2, [x21, 3374] mov x0, x19 + adrp x1, .LC64 add x1, x1, :lo12:.LC64 bl sprintf add x19, x19, w0, sxtw - ldrh w2, [x21,3378] - adrp x1, .LC65 + ldrh w2, [x21, 3376] mov x0, x19 + adrp x1, .LC65 add x1, x1, :lo12:.LC65 bl sprintf add x19, x19, w0, sxtw - ldrh w2, [x21,3380] - adrp x1, .LC66 + ldrh w2, [x21, 3378] mov x0, x19 + adrp x1, .LC66 add x1, x1, :lo12:.LC66 bl sprintf add x19, x19, w0, sxtw - ldrh w2, [x21,3382] - adrp x1, .LC67 + ldrb w4, [x21, 3380] mov x0, x19 + ldrb w3, [x21, 3381] + adrp x1, .LC67 + ldrb w2, [x21, 3353] add x1, x1, :lo12:.LC67 bl sprintf add x19, x19, w0, sxtw - ldrh w2, [x21,3384] + ldr x0, [x21, 3384] adrp x1, .LC68 - mov x0, x19 add x1, x1, :lo12:.LC68 + ldrh w3, [x0, 146] + ldrh w2, [x0, 148] + mov x0, x19 bl sprintf add x19, x19, w0, sxtw - ldrh w2, [x21,3386] + ldr x0, [x21, 3384] adrp x1, .LC69 - mov x0, x19 add x1, x1, :lo12:.LC69 + ldp w2, w0, [x0, 16] + add w2, w0, w2, lsr 11 + mov x0, x19 bl sprintf add x19, x19, w0, sxtw - ldrb w4, [x21,3389] + ldr x0, [x21, 3384] adrp x1, .LC70 - ldrb w2, [x21,3362] - mov x0, x19 - ldrb w3, [x21,3388] add x1, x1, :lo12:.LC70 - bl sprintf - add x19, x19, w0, sxtw - ldr x3, [x21,3392] - adrp x1, .LC71 + ldp w2, w0, [x0, 24] + add w2, w0, w2, lsr 11 mov x0, x19 - add x1, x1, :lo12:.LC71 - ldrh w2, [x3,148] - ldrh w3, [x3,146] bl sprintf add x19, x19, w0, sxtw - ldr x0, [x21,3392] + ldr x0, [x21, 3384] + adrp x1, .LC71 + add x1, x1, :lo12:.LC71 + ldr w2, [x0, 64] + mov x0, x19 + bl sprintf + add x19, x19, w0, sxtw + ldr x0, [x21, 3384] adrp x1, .LC72 add x1, x1, :lo12:.LC72 - ldr w3, [x0,16] - ldr w2, [x0,20] + ldr w2, [x0, 68] mov x0, x19 - add w2, w2, w3, lsr 11 bl sprintf add x19, x19, w0, sxtw - ldr x0, [x21,3392] + ldr x0, [x21, 1128] adrp x1, .LC73 add x1, x1, :lo12:.LC73 - ldr w3, [x0,24] - ldr w2, [x0,28] + ldr w2, [x0, 12] + mov w0, 10 + udiv w2, w2, w0 mov x0, x19 - add w2, w2, w3, lsr 11 bl sprintf add x19, x19, w0, sxtw - ldr x2, [x21,3392] + ldr x0, [x21, 3384] adrp x1, .LC74 - mov x0, x19 + ldrb w2, [x22, #:lo12:.LANCHOR0] add x1, x1, :lo12:.LC74 - ldr w2, [x2,64] - bl sprintf - add x19, x19, w0, sxtw - ldr x2, [x21,3392] - adrp x1, .LC75 + ldrh w4, [x0, 150] + ldr w3, [x0, 156] mov x0, x19 - add x1, x1, :lo12:.LC75 - ldr w2, [x2,68] bl sprintf add x19, x19, w0, sxtw - ldr x0, [x21,1120] - mov w2, 10 + ldr x0, [x21, 1128] + adrp x1, .LC75 + add x1, x1, :lo12:.LC75 + ldr w2, [x0, 556] + mov x0, x19 + bl sprintf + add x19, x19, w0, sxtw + ldr x0, [x21, 1128] adrp x1, .LC76 add x1, x1, :lo12:.LC76 - ldr w3, [x0,12] + ldr w2, [x0, 552] mov x0, x19 - udiv w2, w3, w2 bl sprintf add x19, x19, w0, sxtw - ldr x4, [x21,3392] + ldr x0, [x21, 3384] adrp x1, .LC77 - ldrb w2, [x22,#:lo12:.LANCHOR0] - mov x0, x19 add x1, x1, :lo12:.LC77 - ldr w3, [x4,156] - ldrh w4, [x4,150] + ldr w2, [x0, 52] + mov x0, x19 bl sprintf add x19, x19, w0, sxtw - ldr x2, [x21,1120] + ldr x0, [x21, 3384] adrp x1, .LC78 - mov x0, x19 add x1, x1, :lo12:.LC78 - ldr w2, [x2,556] + ldr w2, [x0, 60] + mov x0, x19 bl sprintf add x19, x19, w0, sxtw - ldr x2, [x21,1120] + ldr x0, [x21, 3384] adrp x1, .LC79 - mov x0, x19 add x1, x1, :lo12:.LC79 - ldr w2, [x2,552] + ldr w2, [x0, 76] + mov x0, x19 bl sprintf add x19, x19, w0, sxtw - ldr x2, [x21,3392] + ldr x0, [x21, 3384] adrp x1, .LC80 - mov x0, x19 add x1, x1, :lo12:.LC80 - ldr w2, [x2,52] + ldr w2, [x0, 8] + mov x0, x19 bl sprintf add x19, x19, w0, sxtw - ldr x2, [x21,3392] + ldr x0, [x21, 1128] adrp x1, .LC81 - mov x0, x19 add x1, x1, :lo12:.LC81 - ldr w2, [x2,60] + ldrb w4, [x0, 25] + ldrh w3, [x0, 22] + ldrh w2, [x0, 16] + mov x0, x19 bl sprintf add x19, x19, w0, sxtw - ldr x2, [x21,3392] + ldr x0, [x21, 1128] adrp x1, .LC82 - mov x0, x19 add x1, x1, :lo12:.LC82 - ldr w2, [x2,76] + ldrb w4, [x0, 57] + ldrh w3, [x0, 54] + ldrh w2, [x0, 48] + mov x0, x19 bl sprintf add x19, x19, w0, sxtw - ldr x2, [x21,3392] + ldr x0, [x21, 1128] adrp x1, .LC83 - mov x0, x19 add x1, x1, :lo12:.LC83 - ldr w2, [x2,8] + ldrb w4, [x0, 89] + ldrh w3, [x0, 86] + ldrh w2, [x0, 80] + mov x0, x19 bl sprintf add x19, x19, w0, sxtw - ldr x4, [x21,1120] + ldr x0, [x21, 3384] adrp x1, .LC84 - mov x0, x19 add x1, x1, :lo12:.LC84 - ldrh w2, [x4,16] - ldrh w3, [x4,22] - ldrb w4, [x4,25] + ldrh w6, [x0, 96] + ldrh w5, [x0, 92] + ldrh w4, [x0, 88] + ldrh w2, [x0, 74] + ldr w3, [x0, 84] + mov x0, x19 bl sprintf add x19, x19, w0, sxtw - ldr x4, [x21,1120] + ldr x0, [x21, 3384] adrp x1, .LC85 - mov x0, x19 add x1, x1, :lo12:.LC85 - ldrh w2, [x4,48] - ldrh w3, [x4,54] - ldrb w4, [x4,57] + ldrh w6, [x0, 98] + ldrh w5, [x0, 94] + ldrh w4, [x0, 90] + ldr w3, [x0, 80] + ldrh w2, [x0, 72] + mov x0, x19 bl sprintf add x19, x19, w0, sxtw - ldr x4, [x21,1120] + ldrh w2, [x21, 3392] + mov x0, x19 adrp x1, .LC86 - mov x0, x19 add x1, x1, :lo12:.LC86 - ldrh w2, [x4,80] - ldrh w3, [x4,86] - ldrb w4, [x4,89] bl sprintf add x19, x19, w0, sxtw - ldr x6, [x21,3392] + ldr w6, [x21, 3396] + mov x0, x19 + ldrh w5, [x21, 3400] adrp x1, .LC87 - mov x0, x19 + ldrh w4, [x21, 3402] add x1, x1, :lo12:.LC87 - ldrh w2, [x6,74] - ldr w3, [x6,84] - ldrh w4, [x6,88] - ldrh w5, [x6,92] - ldrh w6, [x6,96] + ldrh w3, [x21, 3404] + ldrh w2, [x21, 3406] bl sprintf add x19, x19, w0, sxtw - ldr x6, [x21,3392] + ldr x0, [x21, 1128] adrp x1, .LC88 - mov x0, x19 add x1, x1, :lo12:.LC88 - ldr w3, [x6,80] - ldrh w4, [x6,90] - ldrh w5, [x6,94] - ldrh w2, [x6,72] - ldrh w6, [x6,98] + ldrh w5, [x0, 590] + ldrh w4, [x0, 588] + ldrh w3, [x0, 586] + ldrh w2, [x0, 584] + mov x0, x19 bl sprintf add x19, x19, w0, sxtw - ldrh w2, [x21,3400] - adrp x1, .LC89 + ldr x0, [x21, 1128] + ldr x1, [x21, 3384] + add x5, x0, 512 mov x0, x19 + ldp w2, w3, [x5, 24] + ldp w4, w6, [x5, 32] + ldr w5, [x1, 44] + adrp x1, .LC89 add x1, x1, :lo12:.LC89 bl sprintf - add x19, x19, w0, sxtw - ldr w6, [x21,3412] - adrp x1, .LC90 - ldrh w2, [x21,3402] - mov x0, x19 - ldrh w3, [x21,3404] - add x1, x1, :lo12:.LC90 - ldrh w4, [x21,3406] - ldrh w5, [x21,3408] - bl sprintf - add x19, x19, w0, sxtw - ldr x5, [x21,1120] - adrp x1, .LC91 - mov x0, x19 - add x1, x1, :lo12:.LC91 - ldrh w2, [x5,584] - ldrh w3, [x5,586] - ldrh w4, [x5,588] - ldrh w5, [x5,590] - bl sprintf - add x19, x19, w0, sxtw - ldr x6, [x21,1120] - adrp x1, .LC92 - ldr x5, [x21,3392] - mov x0, x19 - add x1, x1, :lo12:.LC92 - 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, w0, sxtw - ldp x21, x22, [sp,32] sub w0, w0, w20 - ldp x19, x20, [sp,16] + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] ldp x29, x30, [sp], 48 ret .size ftl_print_info_to_buf, .-ftl_print_info_to_buf @@ -4426,21 +4235,21 @@ zftl_proc_ftl_read: .type ftl_gc_write_buf, %function ftl_gc_write_buf: stp x29, x30, [sp, -32]! - mov x1, x0 add x29, sp, 0 - str x19, [sp,16] + str x19, [sp, 16] adrp x19, .LANCHOR0 add x19, x19, :lo12:.LANCHOR0 - ldrb w0, [x0,2] - orr w0, w0, 2 - strb w0, [x1,2] - add x0, x19, 3416 + ldrb w1, [x0, 2] + orr w1, w1, 2 + strb w1, [x0, 2] + mov x1, x0 + add x0, x19, 3408 bl buf_add_tail - ldrb w0, [x19,3388] + ldrb w0, [x19, 3381] add w0, w0, 1 - uxtb w0, w0 - strb w0, [x19,3388] - ldr x19, [sp,16] + and w0, w0, 255 + strb w0, [x19, 3381] + ldr x19, [sp, 16] ldp x29, x30, [sp], 32 ret .size ftl_gc_write_buf, .-ftl_gc_write_buf @@ -4468,590 +4277,586 @@ ftl_scan_all_data: gc_add_sblk: stp x29, x30, [sp, -64]! add x29, sp, 0 - stp x23, x24, [sp,48] - adrp x24, .LANCHOR2 - uxth w23, w1 - stp x21, x22, [sp,32] - uxth w21, w0 - adrp x22, .LANCHOR0 - ldr w0, [x24,#:lo12:.LANCHOR2] - stp x19, x20, [sp,16] - uxth w20, w2 - tbz x0, 8, .L662 - add x7, x22, :lo12:.LANCHOR0 - uxtw x5, w21 - mov w1, w21 - mov w2, w23 - mov w3, w20 - ldr x0, [x7,1096] - ldr x6, [x7,1112] - add x0, x0, x5, lsl 2 - ldrh w5, [x6,x5,lsl 1] - ldrb w4, [x0,2] - adrp x0, .LC93 - ldrh w6, [x7,3480] - add x0, x0, :lo12:.LC93 - ldrh w7, [x7,3406] + stp x21, x22, [sp, 32] + adrp x22, .LANCHOR2 + stp x19, x20, [sp, 16] + and w19, w0, 65535 + ldr w0, [x22, #:lo12:.LANCHOR2] + adrp x21, .LANCHOR0 + stp x23, x24, [sp, 48] + and w24, w1, 65535 + and w23, w2, 65535 + tbz x0, 8, .L688 + add x1, x21, :lo12:.LANCHOR0 + uxtw x0, w19 + ldr x2, [x1, 1104] + ldr x3, [x1, 1120] + ldrh w7, [x1, 3402] + add x2, x2, x0, lsl 2 + ldrh w6, [x1, 3472] + mov w1, w19 + ldrh w5, [x3, x0, lsl 1] + adrp x0, .LC90 + ldrb w4, [x2, 2] + mov w3, w23 + mov w2, w24 + add x0, x0, :lo12:.LC90 ubfx x4, x4, 5, 3 bl printk -.L662: - add x0, x22, :lo12:.LANCHOR0 - ldrh w0, [x0,1088] - cmp w0, w21 - bhi .L663 +.L688: + add x0, x21, :lo12:.LANCHOR0 + ldrh w0, [x0, 1096] + cmp w0, w19 + bhi .L689 adrp x1, .LANCHOR1 - adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 + add x1, x1, 1552 mov w2, 543 - add x1, x1, 1760 - add x0, x0, :lo12:.LC0 - bl printk - bl dump_stack -.L663: - add x5, x22, :lo12:.LANCHOR0 - ldrh w0, [x5,1088] - cmp w0, w21 - bhi .L664 - ldr w0, [x24,#:lo12:.LANCHOR2] - mov w19, 0 - tbz x0, 10, .L665 - adrp x0, .LC94 - mov w1, w21 - mov w2, w23 - mov w3, w20 - add x0, x0, :lo12:.LC94 - bl printk - b .L665 -.L664: - uxtw x0, w21 - ldr x1, [x5,1112] - ldrh w4, [x1,x0,lsl 1] - ldr x1, [x5,1096] - add x0, x1, x0, lsl 2 - ldrb w19, [x0,2] - ands w19, w19, 224 - bne .L666 - cbz w4, .L665 - adrp x1, .LANCHOR1 adrp x0, .LC0 - add x1, x1, :lo12:.LANCHOR1 - mov w2, 553 - add x1, x1, 1760 add x0, x0, :lo12:.LC0 bl printk bl dump_stack - b .L665 -.L666: - ldrh w1, [x5,3424] - add x8, x5, 3424 - mov w19, 0 - cmp w1, w21 - beq .L665 - ldr x7, [x5,1120] - ldrh w1, [x7,48] - cmp w1, w21 - beq .L665 - ldrh w1, [x7,16] - cmp w1, w21 - beq .L665 - ldrh w1, [x7,80] - cmp w1, w21 - beq .L665 - ldrh w5, [x8,56] - mov x6, 0 -.L667: - cmp w5, w6 - bls .L700 - add x6, x6, 1 - add x1, x8, x6, lsl 1 - ldrh w1, [x1,56] - cmp w1, w21 - bne .L667 - mov w19, 0 - b .L665 -.L700: - cbnz w23, .L669 - adrp x6, .LANCHOR3 - mov w19, w23 - add x6, x6, :lo12:.LANCHOR3 - ldrh w9, [x6,1288] - cmp w9, w21 - beq .L665 - mov x8, 0 -.L671: - add x1, x6, 1296 - ldrh w1, [x8,x1] - cmp w21, w1 - bne .L670 - ldr w1, [x24,#:lo12:.LANCHOR2] - mov w19, 0 - tbz x1, 8, .L665 - ldrb w2, [x0,2] - adrp x0, .LC95 - mov w3, w4 - mov w1, w21 - ubfx x2, x2, 5, 3 - mov w4, w21 - mov w5, w9 - add x0, x0, :lo12:.LC95 +.L689: + add x1, x21, :lo12:.LANCHOR0 + ldrh w0, [x1, 1096] + cmp w0, w19 + bhi .L690 + ldr w0, [x22, #:lo12:.LANCHOR2] + mov w20, 0 + tbz x0, 10, .L687 + adrp x0, .LC91 + mov w3, w23 + mov w2, w24 + mov w1, w19 + add x0, x0, :lo12:.LC91 bl printk - b .L665 -.L670: - add x8, x8, 2 - cmp x8, 16 - bne .L671 - sxtw x6, w20 - add x19, x7, x6, lsl 7 - add x19, x19, 136 - b .L673 -.L669: - add x19, x7, 392 -.L673: - ldr w1, [x24,#:lo12:.LANCHOR2] - tbz x1, 8, .L674 - add x6, x22, :lo12:.LANCHOR0 - ldrb w3, [x0,2] - adrp x0, .LC96 - mov w1, w21 - add x0, x0, :lo12:.LC96 - mov w2, w23 - ldrh w6, [x6,3406] - ubfx x3, x3, 5, 3 - bl printk -.L674: - mov x4, x19 - add x0, x19, 128 - mov w1, 65535 -.L677: - ldrh w2, [x4] - cmp w2, w1 - bne .L675 - strh w21, [x4] - add x22, x22, :lo12:.LANCHOR0 - cbz w23, .L676 - ldr x1, [x22,1120] - ldrh w0, [x1,124] - add w0, w0, 1 - strh w0, [x1,124] - b .L699 -.L676: - ldr x0, [x22,1120] - add x20, x0, w20, uxth 1 - ldrh w0, [x20,120] - add w0, w0, 1 - strh w0, [x20,120] -.L699: - mov w19, 1 - b .L665 -.L675: - add x4, x4, 2 - cmp x4, x0 - bne .L677 - b .L699 -.L665: - mov w0, w19 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] +.L687: + mov w0, w20 + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] ldp x29, x30, [sp], 64 ret +.L690: + ldr x2, [x1, 1120] + uxtw x0, w19 + ldrh w3, [x2, x0, lsl 1] + ldr x2, [x1, 1104] + add x0, x2, x0, lsl 2 + ldrb w2, [x0, 2] + tst w2, 224 + bne .L692 + mov w20, 0 + cbz w3, .L687 + adrp x1, .LANCHOR1 + add x1, x1, :lo12:.LANCHOR1 + add x1, x1, 1552 + mov w2, 553 + adrp x0, .LC0 + add x0, x0, :lo12:.LC0 + bl printk + bl dump_stack + b .L687 +.L692: + ldrh w0, [x1, 3416] + cmp w0, w19 + beq .L711 + ldr x0, [x1, 1128] + ldrh w5, [x0, 48] + cmp w5, w19 + beq .L711 + ldrh w5, [x0, 16] + cmp w5, w19 + beq .L711 + ldrh w5, [x0, 80] + cmp w5, w19 + beq .L711 + ldrh w5, [x1, 3472] + add x1, x1, 3474 + mov w4, 0 +.L693: + cmp w4, w5 + bcc .L694 + cbnz w24, .L698 + adrp x1, .LANCHOR3 + add x1, x1, :lo12:.LANCHOR3 + ldrh w6, [x1, 1280] + cmp w19, w6 + beq .L711 + add x1, x1, 1288 + mov x4, 0 +.L697: + ldrh w7, [x4, x1] + cmp w19, w7 + bne .L696 + ldr w0, [x22, #:lo12:.LANCHOR2] + mov w20, 0 + tbz x0, 8, .L687 + mov w5, w6 + mov w4, w19 + ubfx x2, x2, 5, 3 + mov w1, w19 + adrp x0, .LC92 + add x0, x0, :lo12:.LC92 + bl printk + b .L687 +.L694: + ldrh w6, [x1], 2 + cmp w6, w19 + beq .L711 + add w4, w4, 1 + b .L693 +.L696: + add x4, x4, 2 + cmp x4, 16 + bne .L697 + ubfiz x20, x23, 7, 16 + add x20, x20, 136 + add x20, x0, x20 +.L699: + ldr w0, [x22, #:lo12:.LANCHOR2] + tbz x0, 8, .L700 + add x0, x21, :lo12:.LANCHOR0 + mov w4, w3 + mov w1, w19 + ubfx x3, x2, 5, 3 + mov w2, w24 + ldrh w6, [x0, 3402] + adrp x0, .LC93 + add x0, x0, :lo12:.LC93 + bl printk +.L700: + mov x0, x20 + add x1, x20, 128 + mov w2, 65535 +.L703: + ldrh w3, [x0] + cmp w3, w2 + bne .L701 + strh w19, [x0] + add x21, x21, :lo12:.LANCHOR0 + cbz w24, .L702 + ldr x1, [x21, 1128] + ldrh w0, [x1, 124] + add w0, w0, 1 + strh w0, [x1, 124] +.L725: + mov w20, 1 + b .L687 +.L698: + add x20, x0, 392 + b .L699 +.L702: + ldr x0, [x21, 1128] + add x23, x0, w23, uxth 1 + ldrh w0, [x23, 120] + add w0, w0, 1 + strh w0, [x23, 120] + b .L725 +.L701: + add x0, x0, 2 + cmp x1, x0 + bne .L703 + b .L725 +.L711: + mov w20, 0 + b .L687 .size gc_add_sblk, .-gc_add_sblk .align 2 .global gc_mark_bad_ppa .type gc_mark_bad_ppa, %function gc_mark_bad_ppa: stp x29, x30, [sp, -64]! - adrp x4, .LANCHOR3 - mov w3, w0 + adrp x1, .LANCHOR3 + add x1, x1, :lo12:.LANCHOR3 add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] adrp x20, .LANCHOR0 - str x23, [sp,48] - stp x21, x22, [sp,32] + stp x21, x22, [sp, 32] add x21, x20, :lo12:.LANCHOR0 - add x4, x4, :lo12:.LANCHOR3 - mov w1, 24 + str x23, [sp, 48] + mov w19, 24 mov w23, 1 - ldrb w19, [x21,1257] - add x21, x21, 3424 - ldrh w0, [x4,1312] - sub w19, w1, w19 - ldr w1, [x21,2200] - sub w19, w19, w0 - lsr w2, w3, w0 + ldrb w4, [x21, 1205] + add x21, x21, 3416 + ldrh w3, [x1, 1304] + sub w19, w19, w4 + ldrb w1, [x1, 1306] + sub w19, w19, w3 + lsr w2, w0, w3 + mov w3, w0 lsl w19, w23, w19 - ldrb w0, [x4,1314] sub w19, w19, #1 - uxth w22, w2 and w19, w19, w2 + and w22, w2, 65535 mov w2, w22 - udiv w19, w19, w0 - adrp x0, .LC97 - add x0, x0, :lo12:.LC97 + adrp x0, .LC94 + add x0, x0, :lo12:.LC94 + udiv w19, w19, w1 + ldr w1, [x21, 2200] + and w19, w19, 65535 bl printk mov w1, w23 mov w2, 0 - uxth w19, w19 mov w0, w19 bl gc_add_sblk - ldr w0, [x21,2200] + ldr w0, [x21, 2200] mov w1, 0 -.L702: +.L727: cmp w1, w0 - bcs .L705 - add x2, x21, w1, sxtw 1 - ldrh w2, [x2,2204] - cmp w2, w22 - beq .L703 - add w1, w1, 1 - uxth w1, w1 - b .L702 -.L705: + bcc .L729 cmp w0, 5 - bhi .L703 + bhi .L728 add x20, x20, :lo12:.LANCHOR0 add w1, w0, 1 - str w1, [x20,5624] + str w1, [x20, 5616] add x20, x20, w0, uxtw 1 - strh w22, [x20,5628] -.L703: + strh w22, [x20, 5620] +.L728: mov w0, 0 - ldr x23, [sp,48] - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] + ldr x23, [sp, 48] + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] ldp x29, x30, [sp], 64 ret +.L729: + add x2, x21, w1, sxtw 1 + ldrh w2, [x2, 2204] + cmp w2, w22 + beq .L728 + add w1, w1, 1 + and w1, w1, 65535 + b .L727 .size gc_mark_bad_ppa, .-gc_mark_bad_ppa .align 2 .global gc_get_src_ppa_from_index .type gc_get_src_ppa_from_index, %function gc_get_src_ppa_from_index: - adrp x1, .LANCHOR3+1320 + adrp x1, .LANCHOR3+1312 ubfiz x0, x0, 2, 16 - ldr x1, [x1,#:lo12:.LANCHOR3+1320] - ldr w0, [x1,x0] + ldr x1, [x1, #:lo12:.LANCHOR3+1312] + ldr w0, [x1, x0] ret .size gc_get_src_ppa_from_index, .-gc_get_src_ppa_from_index .align 2 .global gc_write_completed .type gc_write_completed, %function gc_write_completed: - stp x29, x30, [sp, -96]! + stp x29, x30, [sp, -80]! add x29, sp, 0 - stp x21, x22, [sp,32] - stp x25, x26, [sp,64] - adrp x21, .LANCHOR1 - adrp x26, .LANCHOR0 - add x26, x26, :lo12:.LANCHOR0 - add x21, x21, :lo12:.LANCHOR1 - stp x19, x20, [sp,16] - stp x23, x24, [sp,48] - stp x27, x28, [sp,80] - add x22, x26, 1312 - add x21, x21, 1776 -.L708: - ldrb w20, [x26,3365] - adrp x19, .LANCHOR0 - cmp w20, 255 - beq .L737 - lsl x1, x20, 6 - add x0, x22, x1 - ldrb w1, [x22,x1] - strb w1, [x26,3365] - ldr w1, [x0,52] - ldrh w23, [x0,48] - cbz w1, .L709 - mov w2, 1 - strh w2, [x26,5618] - ldr w2, [x0,40] - adrp x0, .LC98 - add x0, x0, :lo12:.LC98 - str w2, [x26,5620] - bl printk - adrp x0, .LC0 - mov x1, x21 - mov w2, 956 - add x0, x0, :lo12:.LC0 - bl printk - bl dump_stack -.L709: - adrp x25, .LANCHOR3 - add x1, x25, :lo12:.LANCHOR3 - ldrb w0, [x1,1328] - cmp w0, 3 - bne .L710 - add x0, x19, :lo12:.LANCHOR0 - ldrb w2, [x0,1268] - cbnz w2, .L710 - ldr x0, [x0,1120] - ldrb w1, [x1,1329] - ldrb w0, [x0,89] - cmp w1, w0 - bhi .L723 - cmp w0, 3 - mov w1, 2 - csel w0, w0, w1, cc - b .L712 -.L723: - mov w0, 1 -.L712: - add w24, w0, w0, lsl 1 - b .L713 -.L710: - add x0, x25, :lo12:.LANCHOR3 - mov w24, 1 - ldrb w1, [x0,1330] - cbz w1, .L713 - ldrb w0, [x0,1331] - cmp w0, wzr - mov w0, 2 - csel w24, w24, w0, eq -.L713: - add x0, x25, :lo12:.LANCHOR3 - uxth x1, w23 - ldr x2, [x0,1336] - add x0, x19, :lo12:.LANCHOR0 - add x0, x0, x20, lsl 6 - ldrb w1, [x2,x1] - ldrb w0, [x0,1313] - cmp w1, w0 - beq .L714 - adrp x0, .LC0 - mov x1, x21 - mov w2, 976 - add x0, x0, :lo12:.LC0 - bl printk - bl dump_stack -.L714: - add x0, x19, :lo12:.LANCHOR0 - add x20, x0, x20, lsl 6 - ldrb w1, [x20,1373] - cmp w1, 3 - beq .L715 - add x1, x25, :lo12:.LANCHOR3 - ldrb w2, [x1,1328] - cmp w2, 3 - bne .L715 - ldrb w2, [x1,1344] - cbnz w2, .L715 - ldrb w2, [x0,1268] - cbnz w2, .L715 - ldrb w0, [x0,1269] - cbnz w0, .L715 - ldrb w0, [x1,1330] - cbz w0, .L716 - ldrb w0, [x1,1331] - cbnz w0, .L715 -.L716: - add x25, x25, :lo12:.LANCHOR3 - add x19, x19, :lo12:.LANCHOR0 - mov w1, 0 - add x19, x19, 1312 - ldr x2, [x25,1336] - b .L717 -.L715: - add x19, x19, :lo12:.LANCHOR0 - mov w20, 0 - mov w27, -1 - add x28, x19, 1312 - strh w23, [x19,5532] -.L718: - cmp w24, w20, uxth - bls .L708 - add x0, x25, :lo12:.LANCHOR3 - add w2, w20, w23 - add w20, w20, 1 - ldr x0, [x0,1336] - ldrb w1, [x0,x2] - strb w27, [x0,x2] - sbfiz x1, x1, 6, 32 - add x0, x28, x1 - strb wzr, [x0,61] - bl zbuf_free - ldrb w0, [x19,3431] - sub w0, w0, #1 - strb w0, [x19,3431] - b .L718 -.L717: - cmp w24, w1, uxth - bls .L708 - add w0, w1, w23 - add w1, w1, 1 - ldrb w0, [x2,x0] - add x0, x19, x0, lsl 6 - strb wzr, [x0,61] - b .L717 -.L737: - 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 + stp x21, x22, [sp, 32] + adrp x22, .LANCHOR0 + stp x23, x24, [sp, 48] + add x24, x22, :lo12:.LANCHOR0 + stp x25, x26, [sp, 64] + add x25, x24, 1304 + stp x19, x20, [sp, 16] +.L733: + add x3, x22, :lo12:.LANCHOR0 + ldrb w0, [x3, 3356] + cmp w0, 255 + bne .L746 + 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 +.L746: + sxtw x21, w0 + add x1, x3, 1304 + lsl x4, x21, 6 + add x2, x1, x4 + ldrb w0, [x1, x4] + ldr w1, [x2, 52] + strb w0, [x3, 3356] + ldrh w23, [x2, 48] + cbz w1, .L734 + ldr w2, [x2, 40] + mov w0, 1 + str w2, [x3, 5612] + strh w0, [x3, 5610] + adrp x0, .LC95 + add x0, x0, :lo12:.LC95 + bl printk + adrp x1, .LANCHOR1 + add x1, x1, :lo12:.LANCHOR1 + add x1, x1, 1568 + mov w2, 956 + adrp x0, .LC0 + add x0, x0, :lo12:.LC0 + bl printk + bl dump_stack +.L734: + adrp x20, .LANCHOR3 + add x1, x20, :lo12:.LANCHOR3 + ldrb w0, [x1, 1320] + cmp w0, 3 + bne .L735 + ldrb w0, [x24, 1212] + cbnz w0, .L735 + ldr x0, [x24, 1128] + ldrb w1, [x1, 1321] + ldrb w0, [x0, 89] + mov w19, w0 + cmp w1, w0 + bhi .L747 + cmp w0, 2 + mov w0, 2 + csel w19, w19, w0, ls +.L736: + add w19, w19, w19, lsl 1 +.L737: + add x0, x20, :lo12:.LANCHOR3 + and x1, x23, 65535 + ldr x2, [x0, 1328] + add x0, x25, x21, lsl 6 + ldrb w0, [x0, 1] + ldrb w1, [x2, x1] + cmp w1, w0 + beq .L738 + adrp x1, .LANCHOR1 + add x1, x1, :lo12:.LANCHOR1 + add x1, x1, 1568 + mov w2, 976 + adrp x0, .LC0 + add x0, x0, :lo12:.LC0 + bl printk + bl dump_stack +.L738: + add x0, x25, x21, lsl 6 + ldrb w0, [x0, 61] + cmp w0, 3 + beq .L739 + add x0, x20, :lo12:.LANCHOR3 + ldrb w1, [x0, 1320] + cmp w1, 3 + bne .L739 + ldrb w1, [x0, 1336] + cbnz w1, .L739 + ldrb w1, [x24, 1212] + cbnz w1, .L739 + ldrb w1, [x24, 1213] + cbnz w1, .L739 + ldrb w1, [x0, 1322] + cbz w1, .L740 + ldrb w0, [x0, 1323] + cbnz w0, .L739 +.L740: + add x20, x20, :lo12:.LANCHOR3 + mov w0, 0 + ldr x2, [x20, 1328] +.L741: + cmp w19, w0, uxth + bls .L733 + add w1, w23, w0 + add w0, w0, 1 + ldrb w1, [x2, x1] + add x1, x25, x1, lsl 6 + strb wzr, [x1, 61] + b .L741 +.L747: + mov w19, 1 + b .L736 +.L735: + add x0, x20, :lo12:.LANCHOR3 + ldrb w1, [x0, 1322] + cbz w1, .L748 + ldrb w0, [x0, 1323] + cmp w0, 0 + cset w19, ne + add w19, w19, 1 + b .L737 +.L748: + mov w19, 1 + b .L737 +.L739: + add x20, x20, :lo12:.LANCHOR3 + strh w23, [x24, 5524] + mov w21, 0 + mov w26, -1 +.L742: + cmp w19, w21, uxth + bls .L733 + ldr x2, [x20, 1328] + add w1, w23, w21 + add w21, w21, 1 + ldrb w0, [x2, x1] + strb w26, [x2, x1] + sbfiz x1, x0, 6, 32 + ubfiz x0, x0, 6, 8 + add x1, x25, x1 + add x0, x25, x0 + strb wzr, [x1, 61] + bl zbuf_free + ldrb w0, [x24, 3423] + sub w0, w0, #1 + strb w0, [x24, 3423] + b .L742 .size gc_write_completed, .-gc_write_completed .align 2 .global gc_get_src_blk .type gc_get_src_blk, %function gc_get_src_blk: - adrp x3, .LANCHOR0 - adrp x4, .LANCHOR3 - add x0, x3, :lo12:.LANCHOR0 - ldr x1, [x0,1120] - add x0, x4, :lo12:.LANCHOR3 - ldrh w5, [x1,124] - ldrb w0, [x0,1345] - cbz w5, .L739 + adrp x2, .LANCHOR0 + add x0, x2, :lo12:.LANCHOR0 + ldr x1, [x0, 1128] + ldrh w0, [x1, 124] + cbz w0, .L761 add x1, x1, 392 - mov w2, 1 - b .L740 -.L739: - sxtw x2, w0 - add x0, x1, x2, lsl 1 - ldrh w6, [x0,120] - mov w0, 65535 - cbz w6, .L741 - add x1, x1, x2, lsl 7 - mov w2, w5 - add x1, x1, 136 -.L740: - add x5, x1, 128 - mov w6, 65535 -.L744: + mov w3, 1 +.L762: + add x4, x1, 128 + mov w5, 65535 +.L766: ldrh w0, [x1] - cmp w0, w6 - beq .L742 - mov w5, -1 - strh w5, [x1] - cbz w2, .L743 - add x3, x3, :lo12:.LANCHOR0 - ldr x2, [x3,1120] - ldrh w1, [x2,124] + cmp w0, w5 + beq .L764 + mov w4, -1 + strh w4, [x1] + add x2, x2, :lo12:.LANCHOR0 + cbz w3, .L765 + ldr x2, [x2, 1128] + ldrh w1, [x2, 124] sub w1, w1, #1 - strh w1, [x2,124] - b .L741 -.L743: - add x4, x4, :lo12:.LANCHOR3 - add x3, x3, :lo12:.LANCHOR0 - ldrb w1, [x4,1345] - ldr x2, [x3,1120] + strh w1, [x2, 124] + ret +.L761: + adrp x0, .LANCHOR3+1337 + ldrb w0, [x0, #:lo12:.LANCHOR3+1337] + add x3, x1, w0, sxtw 1 + ldrh w3, [x3, 120] + cbz w3, .L767 + ubfiz x0, x0, 7, 8 + mov w3, 0 + add x0, x0, 136 + add x1, x1, x0 + b .L762 +.L765: + adrp x1, .LANCHOR3+1337 + ldr x2, [x2, 1128] + ldrb w1, [x1, #:lo12:.LANCHOR3+1337] add x1, x2, x1, lsl 1 - ldrh w2, [x1,120] + ldrh w2, [x1, 120] sub w2, w2, #1 - strh w2, [x1,120] - b .L741 -.L742: + strh w2, [x1, 120] + ret +.L764: add x1, x1, 2 - cmp x1, x5 - bne .L744 -.L741: + cmp x1, x4 + bne .L766 + ret +.L767: + mov w0, 65535 ret .size gc_get_src_blk, .-gc_get_src_blk .align 2 .global gc_free_temp_buf .type gc_free_temp_buf, %function gc_free_temp_buf: - stp x29, x30, [sp, -64]! - mov w0, 0 + stp x29, x30, [sp, -48]! add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] adrp x19, .LANCHOR0 - str x21, [sp,32] - add x4, x19, :lo12:.LANCHOR0 - ldrb w1, [x4,3431] - cbz w1, .L749 - ldrb w1, [x4,3362] + add x0, x19, :lo12:.LANCHOR0 + stp x21, x22, [sp, 32] + ldrb w1, [x0, 3423] + cbz w1, .L776 + ldrb w1, [x0, 3353] cmp w1, 1 - bhi .L749 - adrp x20, .LANCHOR3 - ldrh w1, [x4,5532] - add x5, x20, :lo12:.LANCHOR3 - add x4, x4, 1312 - add w2, w1, 24 - ldrh w3, [x5,1346] - ldrb w0, [x5,1329] - mul w0, w3, w0 - ldr x3, [x5,1336] - cmp w0, w2 - csel w2, w0, w2, ls -.L750: - cmp w1, w2 - bcs .L763 - uxtw x21, w1 - ldrb w0, [x3,x21] - cmp w0, 255 - beq .L751 - sbfiz x0, x0, 6, 32 - add x0, x4, x0 - ldrb w5, [x0,61] - cbnz w5, .L751 - str x1, [x29,56] + bhi .L776 + adrp x21, .LANCHOR3 + add x2, x21, :lo12:.LANCHOR3 + ldrh w20, [x0, 5524] + add x0, x0, 1304 + ldrb w4, [x2, 1321] + add w3, w20, 24 + ldrh w1, [x2, 1338] + mul w1, w1, w4 + ldr x4, [x2, 1328] + cmp w1, w3 + csel w1, w1, w3, ls +.L771: + cmp w20, w1 + bcc .L774 +.L776: + mov w0, 0 + b .L769 +.L774: + uxtw x22, w20 + ldrb w2, [x4, x22] + cmp w2, 255 + beq .L772 + sbfiz x3, x2, 6, 32 + add x3, x0, x3 + ldrb w3, [x3, 61] + cbnz w3, .L772 + ubfiz x2, x2, 6, 8 + add x0, x0, x2 bl zbuf_free adrp x0, .LANCHOR2 - ldr x1, [x29,56] - ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 8, .L752 - add x0, x20, :lo12:.LANCHOR3 - ldr x2, [x0,1336] - adrp x0, .LC99 - add x0, x0, :lo12:.LC99 - ldrb w2, [x2,x21] + ldr w0, [x0, #:lo12:.LANCHOR2] + tbz x0, 8, .L773 + add x0, x21, :lo12:.LANCHOR3 + mov w1, w20 + ldr x0, [x0, 1328] + ldrb w2, [x0, x22] + adrp x0, .LC96 + add x0, x0, :lo12:.LC96 bl printk -.L752: - add x20, x20, :lo12:.LANCHOR3 +.L773: + add x21, x21, :lo12:.LANCHOR3 add x19, x19, :lo12:.LANCHOR0 mov w1, -1 - ldr x0, [x20,1336] - strb w1, [x0,x21] - ldrb w0, [x19,3431] + ldr x0, [x21, 1328] + strb w1, [x0, x22] + ldrb w0, [x19, 3423] sub w0, w0, #1 - strb w0, [x19,3431] + strb w0, [x19, 3423] mov w0, 1 - b .L749 -.L751: - add w1, w1, 1 - b .L750 -.L763: - mov w0, 0 -.L749: - ldp x19, x20, [sp,16] - ldr x21, [sp,32] - ldp x29, x30, [sp], 64 +.L769: + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x29, x30, [sp], 48 ret +.L772: + add w20, w20, 1 + b .L771 .size gc_free_temp_buf, .-gc_free_temp_buf .align 2 .global get_ink_scaned_blk .type get_ink_scaned_blk, %function get_ink_scaned_blk: adrp x1, .LANCHOR0 - mov w0, 65535 add x1, x1, :lo12:.LANCHOR0 - add x3, x1, 3424 - ldrh w2, [x1,5536] - cbz w2, .L765 + add x0, x1, 3416 + ldrh w2, [x1, 5528] + cbz w2, .L786 sub w2, w2, #1 - add x0, x3, w2, sxtw 1 - ldrh w0, [x0,2114] - strh w2, [x1,5536] -.L765: + strh w2, [x1, 5528] + add x0, x0, w2, sxtw 1 + ldrh w0, [x0, 2114] + ret +.L786: + mov w0, 65535 ret .size get_ink_scaned_blk, .-get_ink_scaned_blk .align 2 .global print_gc_debug_info .type print_gc_debug_info, %function print_gc_debug_info: - adrp x6, .LANCHOR0 - adrp x0, .LC100 - add x6, x6, :lo12:.LANCHOR0 - add x0, x0, :lo12:.LC100 + adrp x0, .LANCHOR0 + add x0, x0, :lo12:.LANCHOR0 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldrh w1, [x6,3424] - ldrh w2, [x6,3426] - ldrh w3, [x6,5530] - ldrb w4, [x6,3362] - ldrb w5, [x6,3431] - ldrh w6, [x6,3400] + ldrh w6, [x0, 3392] + ldrb w5, [x0, 3423] + ldrb w4, [x0, 3353] + ldrh w3, [x0, 5522] + ldrh w2, [x0, 3418] + ldrh w1, [x0, 3416] + adrp x0, .LC97 + add x0, x0, :lo12:.LC97 bl printk ldp x29, x30, [sp], 16 ret @@ -5061,85 +4866,89 @@ print_gc_debug_info: .type _list_pop_index_node, %function _list_pop_index_node: stp x29, x30, [sp, -32]! - uxth w1, w1 add x29, sp, 0 - stp x19, x20, [sp,16] - mov w19, 65535 + stp x19, x20, [sp, 16] ldr x20, [x0] - cbz x20, .L770 + cbz x20, .L795 adrp x3, .LANCHOR0+1040 + and w1, w1, 65535 mov w4, 65535 mov w5, 6 - ldr x19, [x3,#:lo12:.LANCHOR0+1040] -.L771: - cbnz w1, .L772 -.L774: + ldr x19, [x3, #:lo12:.LANCHOR0+1040] +.L791: + cbnz w1, .L792 +.L794: sub x19, x20, x19 mov x1, -6148914691236517206 asr x19, x19, 1 - madd x19, x1, x19, x19 - uxth w19, w19 + movk x1, 0xaaab, lsl 0 + mul x19, x19, x1 + and w19, w19, 65535 mov w1, w19 bl _list_remove_node mov w0, -1 strh w0, [x20] - strh w0, [x20,2] - b .L770 -.L772: - ldrh w3, [x20] - cmp w3, w4 - beq .L774 - umull x20, w3, w5 - sub w1, w1, #1 - add x20, x19, x20 - uxth w1, w1 - b .L771 -.L770: + strh w0, [x20, 2] mov w0, w19 - ldp x19, x20, [sp,16] +.L789: + ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 32 ret +.L792: + ldrh w3, [x20] + cmp w3, w4 + beq .L794 + sub w1, w1, #1 + umaddl x20, w3, w5, x19 + and w1, w1, 65535 + b .L791 +.L795: + mov w0, 65535 + b .L789 .size _list_pop_index_node, .-_list_pop_index_node .align 2 .global _list_get_gc_head_node .type _list_get_gc_head_node, %function _list_get_gc_head_node: - ldr x2, [x0] - uxth w1, w1 - mov w0, 65535 - cbz x2, .L782 - adrp x0, .LANCHOR0+1040 - mov w4, 65535 - mov w5, 6 - ldr x3, [x0,#:lo12:.LANCHOR0+1040] -.L778: - cbz w1, .L779 - ldrh w0, [x2] - cmp w0, w4 - beq .L782 - umull x0, w0, w5 + ldr x0, [x0] + and w1, w1, 65535 + cbz x0, .L802 + adrp x2, .LANCHOR0+1040 + mov w3, 65535 + mov w4, 6 + ldr x2, [x2, #:lo12:.LANCHOR0+1040] +.L799: + cbz w1, .L800 + ldrh w0, [x0] + cmp w0, w3 + bne .L801 + ret +.L801: sub w1, w1, #1 - add x2, x3, x0 - uxth w1, w1 - b .L778 -.L779: - sub x2, x2, x3 - mov x0, -6148914691236517206 - asr x2, x2, 1 - madd x2, x0, x2, x2 - uxth w0, w2 -.L782: + umaddl x0, w0, w4, x2 + and w1, w1, 65535 + b .L799 +.L802: + mov w0, 65535 + ret +.L800: + sub x0, x0, x2 + mov x1, -6148914691236517206 + asr x0, x0, 1 + movk x1, 0xaaab, lsl 0 + mul x0, x0, x1 + and w0, w0, 65535 ret .size _list_get_gc_head_node, .-_list_get_gc_head_node .align 2 .type zftl_get_gc_node.part.10, %function zftl_get_gc_node.part.10: stp x29, x30, [sp, -16]! - uxth w1, w0 + mov w1, w0 adrp x0, .LANCHOR3 add x0, x0, :lo12:.LANCHOR3 add x29, sp, 0 - add x0, x0, 1352 + add x0, x0, 1344 bl _list_get_gc_head_node ldp x29, x30, [sp], 16 ret @@ -5150,744 +4959,740 @@ zftl_get_gc_node.part.10: gc_search_src_blk: stp x29, x30, [sp, -160]! add x29, sp, 0 - stp x19, x20, [sp,16] + stp x21, x22, [sp, 32] + and w22, w0, 255 + and w0, w1, 255 + stp x19, x20, [sp, 16] + str w0, [x29, 144] adrp x19, .LANCHOR0 - stp x23, x24, [sp,48] - uxtb w23, w0 - uxtb w0, w1 - add x1, x19, :lo12:.LANCHOR0 - str w0, [x29,144] - stp x21, x22, [sp,32] - stp x25, x26, [sp,64] - stp x27, x28, [sp,80] - uxtb w21, w2 - ldr x3, [x1,1120] - add x0, x3, w23, sxtw 1 - ldrh w0, [x0,120] - cbnz w0, .L905 - ldrh w2, [x1,3480] - cmp w2, 1 - bhi .L787 - adrp x1, .LANCHOR3 - add x1, x1, :lo12:.LANCHOR3 - strh w0, [x1,1360] - strh w0, [x1,1362] - strh w0, [x1,1364] -.L787: - cbnz w23, .L909 - adrp x20, .LANCHOR3 - adrp x26, .LC101 - add x20, x20, :lo12:.LANCHOR3 - mov w24, w23 - mov w25, w23 - add w22, w21, 1 - add x27, x20, 1368 - add x26, x26, :lo12:.LC101 -.L788: - cmp w25, w22 - bge .L794 - ldrh w28, [x20,1362] - mov x0, x27 - mov w1, w28 - bl _list_get_gc_head_node - uxth w1, w0 - add w2, w28, 1 - mov w0, 65535 - cmp w1, w0 - mov w4, w1 - uxth w2, w2 - strh w2, [x20,1362] - beq .L790 - adrp x0, .LANCHOR2 - uxtw x28, w1 - ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 8, .L791 add x0, x19, :lo12:.LANCHOR0 - str x4, [x29,136] - ldr x3, [x0,1112] - mov x0, x26 - ldrh w3, [x3,x28,lsl 1] - bl printk - ldr x4, [x29,136] -.L791: - add x0, x19, :lo12:.LANCHOR0 - ldr x1, [x0,1112] - ldrh w0, [x0,3406] - ldrh w1, [x1,x28,lsl 1] - cmp w1, w0 - bcs .L792 - mov w1, 0 - mov w0, w4 - mov w2, w1 - bl gc_add_sblk - cbz w0, .L793 - add w5, w24, 1 - uxth w24, w5 - cmp w24, w21 - bcc .L793 - b .L794 -.L792: + stp x23, x24, [sp, 48] + stp x25, x26, [sp, 64] + and w20, w2, 255 + stp x27, x28, [sp, 80] + ldr x2, [x0, 1128] + add x1, x2, w22, sxtw 1 + ldrh w21, [x1, 120] + cbz w21, .L807 + mov w0, w21 +.L806: + 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 +.L807: + ldrh w1, [x0, 3472] + cmp w1, 1 + bhi .L809 adrp x0, .LANCHOR3 add x0, x0, :lo12:.LANCHOR3 - strh wzr, [x0,1362] - b .L794 -.L790: - strh wzr, [x20,1362] - b .L794 -.L793: - add w25, w25, 1 - uxth w25, w25 - b .L788 -.L794: - ldr x0, [x29,144] - tbz x0, 1, .L796 - add x0, x19, :lo12:.LANCHOR0 - ldrh w0, [x0,3386] - cmp w0, 32 - bls .L796 - adrp x28, .LANCHOR3 - mov w25, 0 - add x28, x28, :lo12:.LANCHOR3 - mov w26, 65535 - add x0, x28, 1376 - uxth w27, w21 - str x0, [x29,136] -.L797: - cmp w25, w22 - adrp x20, .LANCHOR3 - bge .L801 - ldrh w2, [x28,1364] - ldr x0, [x29,136] - mov w1, w2 - str x2, [x29,128] + strh wzr, [x0, 1352] + strh wzr, [x0, 1354] + strh wzr, [x0, 1356] +.L809: + cbnz w22, .L810 + adrp x25, .LANCHOR3 + adrp x27, .LC98 + add x26, x25, :lo12:.LANCHOR3 + add x27, x27, :lo12:.LC98 + add x0, x26, 1360 + mov w23, 0 + mov w24, 0 + str x0, [x29, 136] +.L811: + add w28, w20, 1 + cmp w24, w28 + bge .L816 + ldrh w6, [x26, 1354] + ldr x0, [x29, 136] + mov w1, w6 bl _list_get_gc_head_node - uxth w1, w0 - ldr x2, [x29,128] - cmp w1, w26 - add w2, w2, 1 - strh w2, [x28,1364] - beq .L798 - add x2, x19, :lo12:.LANCHOR0 - ubfiz x1, x1, 1, 16 - ldr x4, [x2,1112] - ldrh w4, [x4,x1] - ldrh w1, [x2,3408] - cmp w4, w1 - bcs .L798 + add w2, w6, 1 + and w2, w2, 65535 + strh w2, [x26, 1354] + and w1, w0, 65535 + mov w0, 65535 + mov w4, w1 + cmp w1, w0 + beq .L812 + adrp x0, .LANCHOR2 + uxtw x6, w1 + ldr w0, [x0, #:lo12:.LANCHOR2] + tbz x0, 8, .L813 + add x0, x19, :lo12:.LANCHOR0 + str x6, [x29, 128] + str w1, [x29, 120] + ldr x0, [x0, 1120] + ldrh w3, [x0, x6, lsl 1] + mov x0, x27 + bl printk + ldr w4, [x29, 120] + ldr x6, [x29, 128] +.L813: + add x0, x19, :lo12:.LANCHOR0 + ldr x1, [x0, 1120] + ldrh w0, [x0, 3402] + ldrh w1, [x1, x6, lsl 1] + cmp w1, w0 + bcs .L814 + mov w2, 0 mov w1, 0 - mov w2, w1 + mov w0, w4 bl gc_add_sblk - cbz w0, .L800 - add w5, w24, 1 - uxth w24, w5 - cmp w24, w27 - bcc .L800 - b .L801 -.L798: - strh wzr, [x28,1364] - b .L801 -.L800: - add w3, w25, 1 - uxth w25, w3 - b .L797 -.L801: - cmp w24, w21 - bcs .L803 - add x20, x20, :lo12:.LANCHOR3 + cbz w0, .L815 + add w5, w23, 1 + and w23, w5, 65535 + cmp w23, w20 + bcc .L815 +.L816: + ldr x0, [x29, 144] + tbz x0, 1, .L818 + add x6, x19, :lo12:.LANCHOR0 + ldrh w0, [x6, 3378] + cmp w0, 32 + bls .L818 + adrp x27, .LANCHOR3 + add x25, x27, :lo12:.LANCHOR3 + add x0, x25, 1368 + mov x26, x6 + str x0, [x29, 136] + mov w24, 0 + and w0, w20, 65535 + str w0, [x29, 128] +.L819: + cmp w28, w24 + ble .L823 + ldrh w7, [x25, 1356] + ldr x0, [x29, 136] + mov w1, w7 + bl _list_get_gc_head_node + add w7, w7, 1 + strh w7, [x25, 1356] + and w1, w0, 65535 + mov w2, 65535 + cmp w1, w2 + beq .L820 + ldr x2, [x26, 1120] + ubfiz x1, x1, 1, 16 + ldrh w2, [x2, x1] + ldrh w1, [x26, 3400] + cmp w2, w1 + bcs .L820 + mov w2, 0 + mov w1, 0 + bl gc_add_sblk + cbz w0, .L822 + add w5, w23, 1 + ldr w0, [x29, 128] + and w23, w5, 65535 + cmp w23, w0 + bcc .L822 +.L823: + cmp w23, w20 + bcs .L825 + add x27, x27, :lo12:.LANCHOR3 add x2, x19, :lo12:.LANCHOR0 - ldrh w0, [x20,1346] - ldrb w4, [x20,1329] - ldrh w1, [x20,1384] - ldrh w3, [x2,3408] + ldrh w0, [x27, 1338] + ldrb w4, [x27, 1321] + ldrh w1, [x27, 1376] + ldrh w3, [x2, 3400] mul w0, w0, w4 sub w0, w0, w1, lsr 2 cmp w3, w0 - bge .L796 + bge .L818 add w1, w3, w1, lsr 3 - strh w1, [x2,3408] - b .L796 -.L803: - add x1, x19, :lo12:.LANCHOR0 - add x20, x20, :lo12:.LANCHOR3 - ldrh w2, [x1,3408] - ldrh w0, [x20,1384] - cmp w2, w0 - bls .L796 - sub w0, w2, w0, lsr 3 - strh w0, [x1,3408] -.L796: - ldr x0, [x29,144] - tbz x0, 0, .L804 - uxth w27, w21 - cmp w24, w27 - bcs .L804 - mov w22, 0 - adrp x25, .LANCHOR3 - mov w26, 65535 -.L809: - add x28, x25, :lo12:.LANCHOR3 - ldrh w20, [x28,1360] - mov w0, w20 - add w20, w20, 1 - bl zftl_get_gc_node.part.10 - strh w20, [x28,1360] - cmp w26, w0, uxth - adrp x20, .LANCHOR3 - beq .L805 - mov w1, 0 - mov w2, w1 - bl gc_add_sblk - cbz w0, .L806 - add w5, w24, 1 - uxth w24, w5 - cmp w24, w27 - bcc .L806 - b .L807 -.L805: - strh wzr, [x28,1360] - b .L808 -.L806: - add w22, w22, 1 - uxth w22, w22 - cmp w22, w27 - bcc .L809 -.L808: - cmp w24, w27 - bcs .L807 - add x19, x19, :lo12:.LANCHOR0 - add x20, x20, :lo12:.LANCHOR3 - ldrh w1, [x19,3406] - ldrh w0, [x20,1384] - cmp w1, w0 - bcs .L804 - add w0, w1, w0, lsr 3 - b .L908 -.L807: - add x20, x20, :lo12:.LANCHOR3 - add x19, x19, :lo12:.LANCHOR0 - ldrh w0, [x20,1384] - ldrh w1, [x19,3406] - cmp w1, w0, lsr 1 - bls .L804 - sub w0, w1, w0, lsr 3 -.L908: - strh w0, [x19,3406] - b .L804 -.L909: - adrp x20, .LANCHOR3 - cmp w21, 1 - add x1, x20, :lo12:.LANCHOR3 - ldrb w0, [x1,1329] - ldrh w22, [x1,1346] - mul w22, w0, w22 - uxth w22, w22 - bne .L810 - cbz w2, .L810 - ldrh w1, [x3,80] - mov w0, 65535 - mov w21, 8 - cmp w1, w0 - beq .L810 - add x0, x19, :lo12:.LANCHOR0 - ldrh w0, [x0,5530] - sub w22, w22, w0 - uxth w22, w22 -.L810: - ldr w0, [x29,144] - add x1, x19, :lo12:.LANCHOR0 - add x3, x20, :lo12:.LANCHOR3 - and w0, w0, 1 - str w0, [x29,136] - ldr x0, [x29,144] - strh wzr, [x1,5616] - strh wzr, [x3,1386] - tbz x0, 0, .L844 - ldrh w3, [x3,1388] - ldrh w0, [x1,3382] - cmp w0, w3, lsr 2 - bhi .L812 - ldrh w1, [x1,3384] - cmp w1, w0 - bcs .L845 -.L812: - cmp w2, 1 - bls .L814 -.L816: - mov w24, 0 - b .L815 -.L814: - add x26, x20, :lo12:.LANCHOR3 - lsr w0, w0, 2 - strh w0, [x26,1360] - mov w0, 0 - bl zftl_get_gc_node.part.10 - uxth w1, w0 - mov w2, 65535 - cmp w1, w2 - beq .L816 - add x2, x19, :lo12:.LANCHOR0 - ubfiz x1, x1, 1, 16 - ldr x3, [x2,1112] - ldrh w2, [x26,1384] - ldrh w1, [x3,x1] - cmp w1, w2, lsr 2 - bcs .L816 - mov w1, 1 - mov w2, w23 - strh w1, [x26,1360] - mov w1, 0 - bl gc_add_sblk - cmp w0, wzr - cset w24, ne -.L815: - mov w28, 64 - mov w25, 0 - mov w26, 65535 - uxth w27, w21 -.L819: - add x2, x20, :lo12:.LANCHOR3 - str x2, [x29,112] - ldrh w1, [x2,1360] - str x1, [x29,120] - mov w0, w1 - bl zftl_get_gc_node.part.10 - uxth w4, w0 - cmp w4, w26 - str x4, [x29,128] - ldr x2, [x29,112] - beq .L817 - ldr x1, [x29,120] - add w1, w1, 1 - strh w1, [x2,1360] - mov w1, 0 - mov w2, w23 - bl gc_add_sblk - ldr x4, [x29,128] - cbz w0, .L818 - add x0, x19, :lo12:.LANCHOR0 - ubfiz x4, x4, 1, 16 - add w5, w24, 1 - ldr x1, [x0,1112] - uxth w24, w5 - ldrh w1, [x1,x4] - add w3, w25, w1 - uxth w25, w3 - cmp w25, w22 - bhi .L813 - cmp w24, w27 - bcs .L813 - ldrh w1, [x0,3384] - ldrh w0, [x0,3382] - cmp w1, w0, lsl 1 - ble .L818 - b .L813 -.L817: - strh wzr, [x2,1360] - b .L813 + strh w1, [x2, 3400] .L818: - sub w28, w28, #1 - uxth w28, w28 - cbnz w28, .L819 - b .L813 -.L844: - ldr w25, [x29,136] - mov x24, x25 -.L811: - ldr x0, [x29,144] - tbz x0, 1, .L823 - cmp w25, w22 - bcs .L823 - add x0, x19, :lo12:.LANCHOR0 - ldrh w0, [x0,3386] - cmp w0, 32 - bls .L823 - add x28, x20, :lo12:.LANCHOR3 - mov w27, 64 - add x0, x28, 1376 - mov w26, 0 - str x0, [x29,128] - uxth w0, w21 - str w0, [x29,120] -.L829: - ldrh w2, [x28,1364] - ldr x0, [x29,128] - mov w1, w2 - str x2, [x29,112] - bl _list_get_gc_head_node - uxth w8, w0 - mov w1, 65535 - cmp w8, w1 - beq .L824 - ldr x2, [x29,112] - cmp w21, 1 - add w2, w2, 1 - strh w2, [x28,1364] - bne .L825 - ldrh w9, [x28,1346] - add x1, x19, :lo12:.LANCHOR0 - ldrb w2, [x28,1329] - mul w2, w2, w9 - ldrh w9, [x28,1384] - sub w2, w2, w9, lsr 3 - strh w2, [x1,3402] -.L825: - add x9, x19, :lo12:.LANCHOR0 - ubfiz x8, x8, 1, 16 - str x9, [x29,112] - str x8, [x29,104] - ldr x1, [x9,1112] - ldrh w2, [x1,x8] - ldrh w1, [x9,3402] - cmp w2, w1 + ldr x0, [x29, 144] + tbz x0, 0, .L826 + and w25, w20, 65535 + cmp w23, w25 bcs .L826 + adrp x24, .LANCHOR3 + add x27, x24, :lo12:.LANCHOR3 + mov w26, 65535 +.L831: + ldrh w6, [x27, 1352] + mov w0, w6 + bl zftl_get_gc_node.part.10 + add w6, w6, 1 + strh w6, [x27, 1352] + cmp w26, w0, uxth + beq .L827 + mov w2, 0 mov w1, 0 - mov w2, w23 bl gc_add_sblk - ldr x9, [x29,112] - ldr x8, [x29,104] - cbz w0, .L827 - ldr x0, [x9,1112] - add w6, w26, 1 - add w5, w24, 1 - uxth w26, w6 - ldrh w0, [x0,x8] - uxth w24, w5 - add w3, w25, w0 - uxth w25, w3 - cmp w25, w22 + cbz w0, .L828 + add w5, w23, 1 + and w23, w5, 65535 + cmp w25, w23 bhi .L828 - ldr w0, [x29,120] - cmp w24, w0 - bcc .L827 - b .L828 -.L826: - add x0, x20, :lo12:.LANCHOR3 - strh wzr, [x0,1364] - b .L828 -.L824: - strh wzr, [x28,1364] - b .L828 -.L827: - sub w7, w27, #1 - uxth w27, w7 - cbnz w27, .L829 -.L828: - cmp w24, w21 - bcc .L830 - cbnz w26, .L831 +.L829: + add x24, x24, :lo12:.LANCHOR3 + add x19, x19, :lo12:.LANCHOR0 + ldrh w0, [x24, 1376] + ldrh w1, [x19, 3402] + cmp w1, w0, lsr 1 + bls .L826 + sub w0, w1, w0, lsr 3 + b .L917 +.L814: + add x25, x25, :lo12:.LANCHOR3 + strh wzr, [x25, 1354] + b .L816 +.L812: + strh wzr, [x26, 1354] + b .L816 +.L815: + add w24, w24, 1 + and w24, w24, 65535 + b .L811 +.L820: + strh wzr, [x25, 1356] + b .L823 +.L822: + add w3, w24, 1 + and w24, w3, 65535 + b .L819 +.L825: add x1, x19, :lo12:.LANCHOR0 - add x0, x20, :lo12:.LANCHOR3 - ldrh w1, [x1,3386] - ldrh w0, [x0,1390] - cmp w1, w0 - bls .L831 + add x27, x27, :lo12:.LANCHOR3 + ldrh w2, [x1, 3400] + ldrh w0, [x27, 1376] + cmp w2, w0 + bls .L818 + sub w0, w2, w0, lsr 3 + strh w0, [x1, 3400] + b .L818 +.L827: + strh wzr, [x27, 1352] .L830: - add x4, x20, :lo12:.LANCHOR3 + cmp w23, w25 + bcs .L829 + add x19, x19, :lo12:.LANCHOR0 + add x24, x24, :lo12:.LANCHOR3 + ldrh w1, [x19, 3402] + ldrh w0, [x24, 1376] + cmp w1, w0 + bcs .L826 + add w0, w1, w0, lsr 3 +.L917: + strh w0, [x19, 3402] +.L826: + adrp x0, .LANCHOR2 + ldr w0, [x0, #:lo12:.LANCHOR2] + tbz x0, 8, .L862 + ldr w2, [x29, 144] + adrp x0, .LC99 + mov w4, w20 + mov w3, w23 + mov w1, w22 + add x0, x0, :lo12:.LC99 + bl printk +.L862: + mov w0, w23 + b .L806 +.L828: + add w21, w21, 1 + and w21, w21, 65535 + cmp w25, w21 + bhi .L831 + b .L830 +.L810: + adrp x24, .LANCHOR3 + add x0, x24, :lo12:.LANCHOR3 + cmp w20, 1 + ldrb w25, [x0, 1321] + ldrh w0, [x0, 1338] + mul w25, w25, w0 + and w25, w25, 65535 + bne .L832 + cbz w1, .L832 + ldrh w2, [x2, 80] + mov w0, 65535 + cmp w2, w0 + beq .L865 + add x0, x19, :lo12:.LANCHOR0 + ldrh w0, [x0, 5522] + sub w25, w25, w0 + and w25, w25, 65535 +.L865: + mov w20, 8 +.L832: + ldr w0, [x29, 144] + add x2, x19, :lo12:.LANCHOR0 + add x3, x24, :lo12:.LANCHOR3 + and w0, w0, 1 + str w0, [x29, 136] + ldr x0, [x29, 144] + strh wzr, [x2, 5608] + strh wzr, [x3, 1378] + tbz x0, 0, .L866 + ldrh w0, [x2, 3374] + ldrh w3, [x3, 1380] + cmp w0, w3, lsr 2 + bhi .L834 + ldrh w2, [x2, 3376] + cmp w2, w0 + bcs .L867 +.L834: + cmp w1, 1 + bls .L836 +.L838: + mov w23, 0 +.L837: + add x27, x24, :lo12:.LANCHOR3 + add x8, x19, :lo12:.LANCHOR0 + and w0, w20, 65535 + mov w28, 0 + mov w26, 64 + str w0, [x29, 128] +.L841: + ldrh w6, [x27, 1352] + str x8, [x29, 112] + mov w0, w6 + bl zftl_get_gc_node.part.10 + and w4, w0, 65535 + str w4, [x29, 120] + mov w1, 65535 + cmp w4, w1 + beq .L839 + add w6, w6, 1 + mov w2, w22 + strh w6, [x27, 1352] + mov w1, 0 + bl gc_add_sblk + ldr x8, [x29, 112] + cbz w0, .L840 + ldr w4, [x29, 120] + add w5, w23, 1 + ldr x0, [x8, 1120] + and w23, w5, 65535 + ubfiz x4, x4, 1, 16 + ldrh w0, [x0, x4] + add w3, w28, w0 + ldr w0, [x29, 128] + and w28, w3, 65535 + cmp w23, w0 + bcs .L835 + cmp w25, w28 + bcc .L835 + ldrh w0, [x8, 3376] + ldrh w1, [x8, 3374] + cmp w0, w1, lsl 1 + ble .L840 +.L835: + add x0, x19, :lo12:.LANCHOR0 + add x2, x24, :lo12:.LANCHOR3 + ldrh w1, [x0, 3376] + ldrh w2, [x2, 1380] + cmp w1, w2, lsr 2 + bhi .L863 + ldrh w0, [x0, 3374] + add w0, w0, 8 + cmp w1, w0 + ble .L833 +.L863: + cmp w25, w28 + bls .L833 + add x27, x24, :lo12:.LANCHOR3 + mov w26, 64 + add x0, x27, 1360 + str x0, [x29, 128] + add x0, x19, :lo12:.LANCHOR0 + str x0, [x29, 120] + and w0, w20, 65535 + str w0, [x29, 112] +.L844: + ldrh w6, [x27, 1354] + ldr x0, [x29, 128] + mov w1, w6 + bl _list_get_gc_head_node + and w7, w0, 65535 + str w7, [x29, 104] + mov w1, 65535 + cmp w7, w1 + beq .L842 + add w6, w6, 1 + mov w2, w22 + strh w6, [x27, 1354] + mov w1, 0 + bl gc_add_sblk + cbz w0, .L843 + ldr x0, [x29, 120] + add w5, w23, 1 + ldr w7, [x29, 104] + and w23, w5, 65535 + ldr x0, [x0, 1120] + ubfiz x7, x7, 1, 16 + ldrh w0, [x0, x7] + add w3, w28, w0 + ldr w0, [x29, 112] + and w28, w3, 65535 + cmp w23, w0 + bcs .L833 + cmp w25, w28 + bcs .L843 +.L833: + ldr x0, [x29, 144] + tbz x0, 1, .L845 + add x7, x19, :lo12:.LANCHOR0 + ldrh w0, [x7, 3378] + cmp w0, 32 + bls .L845 + cmp w28, w25 + bcs .L845 + add x27, x24, :lo12:.LANCHOR3 + mov w26, 64 + add x0, x27, 1368 + str x0, [x29, 128] + and w0, w20, 65535 + str w0, [x29, 120] +.L851: + ldrh w8, [x27, 1356] + ldr x0, [x29, 128] + mov w1, w8 + str x7, [x29, 112] + bl _list_get_gc_head_node + and w4, w0, 65535 + mov w1, 65535 + cmp w4, w1 + beq .L846 + add w8, w8, 1 + strh w8, [x27, 1356] + cmp w20, 1 + ldr x7, [x29, 112] + bne .L847 + ldrb w1, [x27, 1321] + ldrh w2, [x27, 1338] + mul w2, w1, w2 + ldrh w1, [x27, 1376] + sub w1, w2, w1, lsr 3 + strh w1, [x7, 3406] +.L847: + ldr x1, [x7, 1120] + ubfiz x4, x4, 1, 16 + stp x4, x7, [x29, 104] + ldrh w2, [x1, x4] + ldrh w1, [x7, 3406] + cmp w2, w1 + bcs .L848 + mov w2, w22 + mov w1, 0 + bl gc_add_sblk + ldr x7, [x29, 112] + cbz w0, .L849 + ldr x0, [x7, 1120] + add w5, w23, 1 + ldr x4, [x29, 104] + add w21, w21, 1 + and w23, w5, 65535 + and w21, w21, 65535 + ldrh w0, [x0, x4] + add w3, w28, w0 + ldr w0, [x29, 120] + and w28, w3, 65535 + cmp w23, w0 + bcs .L850 + cmp w25, w28 + bcs .L849 +.L850: + cmp w23, w20 + bcc .L852 + cbnz w21, .L853 + add x1, x19, :lo12:.LANCHOR0 + add x0, x24, :lo12:.LANCHOR3 + ldrh w1, [x1, 3378] + ldrh w0, [x0, 1382] + cmp w1, w0 + bls .L853 +.L852: + add x4, x24, :lo12:.LANCHOR3 add x6, x19, :lo12:.LANCHOR0 - ldrh w2, [x4,1384] - ldrh w0, [x4,1346] - ldrb w4, [x4,1329] + ldrh w2, [x4, 1376] + ldrh w0, [x4, 1338] + ldrb w4, [x4, 1321] + ldrh w1, [x6, 3406] lsr w2, w2, 3 - ldrh w1, [x6,3402] mul w0, w0, w4 sub w0, w0, w2 cmp w1, w0 - bge .L823 - add w1, w2, w1 - strh w1, [x6,3402] - b .L823 -.L831: - add x20, x20, :lo12:.LANCHOR3 - add x19, x19, :lo12:.LANCHOR0 - ldrh w0, [x20,1384] - ldrb w1, [x20,1329] - ldrh w2, [x19,3402] - mul w1, w0, w1 - cmp w2, w1 - ble .L804 - sub w0, w2, w0, lsr 3 - strh w0, [x19,3402] - b .L804 -.L823: - ldr w0, [x29,136] - cbz w0, .L804 - uxth w26, w21 - cmp w24, w26 - bcs .L804 - cmp w25, w22 - bcs .L804 - add x4, x20, :lo12:.LANCHOR3 - mov w27, 64 - add x0, x4, 1368 - str x0, [x29,136] -.L837: - ldrh w28, [x4,1362] - ldr x0, [x29,136] - mov w1, w28 - str x4, [x29,128] + bge .L845 + add w1, w1, w2 + strh w1, [x6, 3406] +.L845: + ldr w0, [x29, 136] + cbz w0, .L826 + and w27, w20, 65535 + cmp w23, w27 + bcs .L826 + cmp w28, w25 + bcs .L826 + add x4, x24, :lo12:.LANCHOR3 + add x7, x19, :lo12:.LANCHOR0 + add x0, x4, 1360 + mov w26, 64 + str x0, [x29, 136] +.L861: + ldrh w6, [x4, 1354] + ldr x0, [x29, 136] + mov w1, w6 + stp x7, x4, [x29, 120] bl _list_get_gc_head_node - uxth w1, w0 - mov w2, 65535 - ldr x4, [x29,128] - cmp w1, w2 - beq .L833 - add w28, w28, 1 - strh w28, [x4,1362] - ubfiz x28, x1, 1, 16 - add x1, x19, :lo12:.LANCHOR0 - ldr x2, [x1,1112] - ldrh w7, [x2,x28] - ldrh w2, [x1,3404] - cmp w7, w2 - bcs .L834 - ldrh w2, [x4,1388] - ldrh w1, [x1,3384] + and w21, w0, 65535 + mov w1, 65535 + ldr x4, [x29, 128] + cmp w21, w1 + beq .L855 + ldr x7, [x29, 120] + ubfiz x21, x21, 1, 16 + add w6, w6, 1 + strh w6, [x4, 1354] + ldr x1, [x7, 1120] + ldrh w2, [x1, x21] + ldrh w1, [x7, 3404] + cmp w2, w1 + bcs .L856 + ldrh w2, [x4, 1380] + ldrh w1, [x7, 3376] cmp w1, w2, lsr 1 - bls .L835 -.L834: + bls .L857 +.L856: + stp x7, x4, [x29, 120] + mov w2, w22 mov w1, 0 - mov w2, w23 - str x4, [x29,128] bl gc_add_sblk - ldr x4, [x29,128] - cbz w0, .L836 - add x0, x19, :lo12:.LANCHOR0 - add w5, w24, 1 - uxth w24, w5 - ldr x0, [x0,1112] - ldrh w0, [x0,x28] - add w3, w25, w0 - uxth w25, w3 - cmp w25, w22 - bhi .L835 - cmp w24, w26 - bcc .L836 - b .L835 -.L833: - cmp w28, 64 - bls .L835 - strh wzr, [x4,1362] - b .L835 -.L836: - sub w27, w27, #1 - uxth w27, w27 - cbnz w27, .L837 -.L835: - cmp w24, w26 + ldp x7, x4, [x29, 120] + cbz w0, .L858 + ldr x0, [x7, 1120] + add w5, w23, 1 + and w23, w5, 65535 + cmp w27, w23 + ldrh w0, [x0, x21] + add w3, w28, w0 + and w28, w3, 65535 + bls .L859 + cmp w25, w28 + bcs .L858 +.L860: + add x24, x24, :lo12:.LANCHOR3 add x19, x19, :lo12:.LANCHOR0 - bcs .L838 - add x20, x20, :lo12:.LANCHOR3 - ldrh w1, [x19,3404] - ldrh w0, [x20,1384] + ldrh w0, [x24, 1376] + ldrh w1, [x19, 3404] cmp w1, w0, lsr 1 - bls .L804 + bls .L826 sub w0, w1, w0, lsr 3 - strh w0, [x19,3404] - b .L804 -.L838: - add x20, x20, :lo12:.LANCHOR3 - ldrh w2, [x19,3404] - ldrh w1, [x20,1384] - ldrb w0, [x20,1329] - mul w0, w1, w0 + strh w0, [x19, 3404] + b .L826 +.L836: + add x5, x24, :lo12:.LANCHOR3 + lsr w0, w0, 2 + strh w0, [x5, 1352] + mov w0, 0 + bl zftl_get_gc_node.part.10 + and w1, w0, 65535 + mov w2, 65535 + cmp w1, w2 + beq .L838 + add x2, x19, :lo12:.LANCHOR0 + ubfiz x1, x1, 1, 16 + ldr x3, [x2, 1120] + ldrh w2, [x5, 1376] + ldrh w1, [x3, x1] + cmp w1, w2, lsr 2 + bcs .L838 + mov w1, 1 + mov w2, w22 + strh w1, [x5, 1352] + mov w1, 0 + bl gc_add_sblk + cmp w0, 0 + cset w23, ne + b .L837 +.L839: + strh wzr, [x27, 1352] + b .L835 +.L840: + sub w26, w26, #1 + ands w26, w26, 65535 + bne .L841 + b .L835 +.L842: + cmp w6, 64 + bls .L833 + strh wzr, [x27, 1354] + b .L833 +.L843: + sub w26, w26, #1 + ands w26, w26, 65535 + bne .L844 + b .L833 +.L866: + mov w28, 0 + mov w23, 0 + b .L833 +.L848: + add x0, x24, :lo12:.LANCHOR3 + strh wzr, [x0, 1356] + b .L850 +.L846: + strh wzr, [x27, 1356] + b .L850 +.L849: + sub w26, w26, #1 + ands w26, w26, 65535 + bne .L851 + b .L850 +.L853: + add x24, x24, :lo12:.LANCHOR3 + add x19, x19, :lo12:.LANCHOR0 + ldrh w0, [x24, 1376] + ldrb w1, [x24, 1321] + ldrh w2, [x19, 3406] + mul w1, w1, w0 + cmp w2, w1 + ble .L826 + sub w0, w2, w0, lsr 3 + strh w0, [x19, 3406] + b .L826 +.L855: + cmp w6, 64 + bls .L857 + strh wzr, [x4, 1354] +.L857: + cmp w23, w27 + bcc .L860 +.L859: + add x24, x24, :lo12:.LANCHOR3 + add x19, x19, :lo12:.LANCHOR0 + ldrh w1, [x24, 1376] + ldrb w0, [x24, 1321] + ldrh w2, [x19, 3404] + mul w0, w0, w1 sub w0, w0, #32 cmp w2, w0 - bge .L804 + bge .L826 add w1, w2, w1, lsr 3 - strh w1, [x19,3404] -.L804: - adrp x0, .LANCHOR2 - ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 8, .L839 - adrp x0, .LC102 - ldr w2, [x29,144] - add x0, x0, :lo12:.LC102 - mov w1, w23 - mov w3, w24 - mov w4, w21 - bl printk -.L839: - mov w0, w24 - b .L905 -.L845: - mov w25, 0 - mov w24, w25 -.L813: - add x2, x20, :lo12:.LANCHOR3 - add x0, x19, :lo12:.LANCHOR0 - ldrh w2, [x2,1388] - ldrh w1, [x0,3384] - cmp w1, w2, lsr 2 - bhi .L840 - ldrh w0, [x0,3382] - add w0, w0, 8 - cmp w1, w0 - ble .L811 -.L840: - cmp w25, w22 - bcs .L811 - add x27, x20, :lo12:.LANCHOR3 - mov w26, 64 - add x0, x27, 1368 - uxth w28, w21 - str x0, [x29,128] -.L822: - ldrh w2, [x27,1362] - ldr x0, [x29,128] - mov w1, w2 - str x2, [x29,112] - bl _list_get_gc_head_node - uxth w7, w0 - mov w1, 65535 - str x7, [x29,120] - cmp w7, w1 - ldr x2, [x29,112] - beq .L820 - add w2, w2, 1 - mov w1, 0 - strh w2, [x27,1362] - mov w2, w23 - bl gc_add_sblk - ldr x7, [x29,120] - cbz w0, .L821 - add x0, x19, :lo12:.LANCHOR0 - ubfiz x7, x7, 1, 16 - add w5, w24, 1 - ldr x0, [x0,1112] - uxth w24, w5 - ldrh w0, [x0,x7] - add w3, w25, w0 - uxth w25, w3 - cmp w25, w22 - bhi .L811 - cmp w24, w28 - bcc .L821 - b .L811 -.L820: - cmp w2, 64 - bls .L811 - strh wzr, [x27,1362] - b .L811 -.L821: - sub w4, w26, #1 - uxth w26, w4 - cbnz w26, .L822 - b .L811 -.L905: - 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 + strh w1, [x19, 3404] + b .L826 +.L858: + sub w26, w26, #1 + ands w26, w26, 65535 + bne .L861 + b .L857 +.L867: + mov w28, 0 + mov w23, 0 + b .L835 .size gc_search_src_blk, .-gc_search_src_blk .align 2 .global zftl_get_gc_node .type zftl_get_gc_node, %function zftl_get_gc_node: stp x29, x30, [sp, -16]! - uxth w1, w1 - uxth w2, w0 + and w1, w1, 65535 + and w0, w0, 65535 cmp w1, 5 add x29, sp, 0 - bne .L911 - adrp x0, .LANCHOR3 - add x0, x0, :lo12:.LANCHOR3 - add x0, x0, 1376 - b .L914 -.L911: - cmp w1, 2 - bne .L913 - mov w0, w2 - bl zftl_get_gc_node.part.10 - b .L915 -.L913: + bne .L919 + mov w1, w0 adrp x0, .LANCHOR3 add x0, x0, :lo12:.LANCHOR3 add x0, x0, 1368 -.L914: - mov w1, w2 +.L923: bl _list_get_gc_head_node -.L915: - uxth w0, w0 + b .L924 +.L919: + cmp w1, 2 + bne .L921 + bl zftl_get_gc_node.part.10 +.L924: + and w0, w0, 65535 ldp x29, x30, [sp], 16 ret +.L921: + mov w1, w0 + adrp x0, .LANCHOR3 + add x0, x0, :lo12:.LANCHOR3 + add x0, x0, 1360 + b .L923 .size zftl_get_gc_node, .-zftl_get_gc_node .align 2 .global zftl_insert_free_list .type zftl_insert_free_list, %function zftl_insert_free_list: adrp x2, .LANCHOR0 - uxth w1, w0 add x2, x2, :lo12:.LANCHOR0 - adrp x3, .LANCHOR3 stp x29, x30, [sp, -16]! + and w1, w0, 65535 + adrp x3, .LANCHOR3 + add x3, x3, :lo12:.LANCHOR3 add x29, sp, 0 - ldr x0, [x2,1096] + ldr x0, [x2, 1104] add x0, x0, w1, uxth 2 - ldrb w0, [x0,2] + ldrb w0, [x0, 2] ands w0, w0, 24 - bne .L917 - add x0, x3, :lo12:.LANCHOR3 - add x2, x2, 3376 - add x0, x0, 1392 - b .L920 -.L917: - cmp w0, 16 - add x0, x3, :lo12:.LANCHOR3 - bne .L919 - add x0, x0, 1400 - add x2, x2, 3378 - b .L920 -.L919: - add x0, x0, 1408 - add x2, x2, 3380 -.L920: + bne .L926 + add x2, x2, 3368 + add x0, x3, 1384 +.L930: bl _insert_free_list ldp x29, x30, [sp], 16 ret +.L926: + cmp w0, 16 + bne .L928 + add x2, x2, 3370 + add x0, x3, 1392 + b .L930 +.L928: + add x2, x2, 3372 + add x0, x3, 1400 + b .L930 .size zftl_insert_free_list, .-zftl_insert_free_list .align 2 .global zftl_insert_data_list .type zftl_insert_data_list, %function zftl_insert_data_list: adrp x2, .LANCHOR0 - uxth w1, w0 add x2, x2, :lo12:.LANCHOR0 stp x29, x30, [sp, -16]! + and w1, w0, 65535 add x29, sp, 0 - ldr x0, [x2,1096] + ldr x0, [x2, 1104] add x0, x0, w1, uxth 2 - ldrb w3, [x0,2] + ldrb w3, [x0, 2] and w3, w3, 224 cmp w3, 64 - bne .L922 + bne .L932 adrp x0, .LANCHOR3 - add x2, x2, 3382 add x0, x0, :lo12:.LANCHOR3 - add x0, x0, 1352 - b .L925 -.L922: - cmp w3, 96 - bne .L924 - adrp x0, .LANCHOR3 - add x2, x2, 3384 - add x0, x0, :lo12:.LANCHOR3 - add x0, x0, 1368 - b .L925 -.L924: - cmp w3, 160 - bne .L921 - adrp x0, .LANCHOR3 - add x2, x2, 3386 - add x0, x0, :lo12:.LANCHOR3 - add x0, x0, 1376 -.L925: + add x2, x2, 3374 + add x0, x0, 1344 +.L936: bl _insert_data_list -.L921: +.L931: ldp x29, x30, [sp], 16 ret +.L932: + cmp w3, 96 + bne .L934 + adrp x0, .LANCHOR3 + add x0, x0, :lo12:.LANCHOR3 + add x2, x2, 3376 + add x0, x0, 1360 + b .L936 +.L934: + cmp w3, 160 + bne .L931 + adrp x0, .LANCHOR3 + add x0, x0, :lo12:.LANCHOR3 + add x2, x2, 3378 + add x0, x0, 1368 + b .L936 .size zftl_insert_data_list, .-zftl_insert_data_list .align 2 .global zftl_gc_get_free_sblk @@ -5895,421 +5700,411 @@ zftl_insert_data_list: zftl_gc_get_free_sblk: stp x29, x30, [sp, -64]! add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x20, .LANCHOR0 - str x23, [sp,48] - stp x21, x22, [sp,32] - add x21, x20, :lo12:.LANCHOR0 - uxth w22, w0 - uxth w23, w1 - ldr x0, [x21,1120] - ldrh w19, [x0,588] - cbnz w22, .L927 + stp x21, x22, [sp, 32] + and w22, w0, 65535 + stp x19, x20, [sp, 16] + adrp x19, .LANCHOR0 + add x21, x19, :lo12:.LANCHOR0 + str x23, [sp, 48] + and w23, w1, 65535 + ldr x0, [x21, 1128] + ldrh w20, [x0, 588] mov w0, 65535 - cmp w19, w0 - beq .L927 - adrp x0, .LC103 - mov w1, w19 - add x0, x0, :lo12:.LC103 + cmp w20, w0 + beq .L938 + cbnz w22, .L938 + mov w1, w20 + adrp x0, .LC100 + add x0, x0, :lo12:.LC100 bl printk - ldr x0, [x21,1120] + ldr x0, [x21, 1128] mov w1, -1 - strh w1, [x0,588] - b .L928 -.L927: - add x0, x20, :lo12:.LANCHOR0 - adrp x21, .LANCHOR3 - ldrh w3, [x0,3378] - ldrh w1, [x0,3380] - cmp w3, w1 - bcc .L929 - ldrh w0, [x0,3376] - cmp w0, w3 - bls .L930 - cbz w1, .L930 -.L929: - lsr w1, w1, 2 - cbz w22, .L932 - mov w1, 7 - mul w3, w3, w1 - lsr w1, w3, 3 -.L932: - add x0, x21, :lo12:.LANCHOR3 - add x2, x20, :lo12:.LANCHOR0 - add x0, x0, 1408 - add x2, x2, 3380 - b .L954 -.L930: - mov w1, 0 - lsr w3, w3, 3 - cmp w22, w1 - add x0, x21, :lo12:.LANCHOR3 - add x2, x20, :lo12:.LANCHOR0 - csel w1, w3, w1, ne - add x0, x0, 1400 - add x2, x2, 3378 -.L954: - bl _list_pop_index_node - uxth w19, w0 - mov w0, 65535 - cmp w19, w0 - bne .L935 - add x5, x20, :lo12:.LANCHOR0 - add x21, x21, :lo12:.LANCHOR3 - adrp x0, .LC104 - mov w1, w19 - add x0, x0, :lo12:.LC104 - mov w2, w23 - ldrh w4, [x5,3376] - ldr x3, [x21,1392] - ldrh w5, [x5,3380] - bl printk -.L935: - cbz w22, .L928 - adrp x0, .LANCHOR2 - ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 8, .L928 - add x20, x20, :lo12:.LANCHOR0 - uxtw x6, w19 - lsl x0, x6, 2 - ldr x1, [x20,1096] - ldr x7, [x20,1112] - add x2, x1, x0 - ldr w4, [x1,x0] - ldrh w5, [x1,x0] - adrp x0, .LC105 - ldrb w3, [x2,2] - add x0, x0, :lo12:.LC105 - ldrh w6, [x7,x6,lsl 1] - mov w1, w19 - ubfx x2, x3, 5, 3 - ubfx x4, x4, 11, 8 - ubfx x3, x3, 3, 2 - and w5, w5, 2047 - bl printk -.L928: - mov w0, w19 - ldr x23, [sp,48] - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] + strh w1, [x0, 588] +.L939: + mov w0, w20 + ldr x23, [sp, 48] + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] ldp x29, x30, [sp], 64 ret +.L938: + add x2, x19, :lo12:.LANCHOR0 + adrp x21, .LANCHOR3 + ldrh w0, [x2, 3370] + ldrh w1, [x2, 3372] + cmp w0, w1 + bcc .L940 + ldrh w2, [x2, 3368] + cmp w2, w0 + bls .L941 + cbz w1, .L941 +.L940: + cbnz w22, .L942 + lsr w1, w1, 2 +.L943: + add x2, x19, :lo12:.LANCHOR0 + add x0, x21, :lo12:.LANCHOR3 + add x2, x2, 3372 + add x0, x0, 1400 +.L958: + bl _list_pop_index_node + and w20, w0, 65535 + mov w0, 65535 + cmp w20, w0 + bne .L946 + add x0, x19, :lo12:.LANCHOR0 + add x21, x21, :lo12:.LANCHOR3 + mov w2, w23 + mov w1, w20 + ldrh w5, [x0, 3372] + ldrh w4, [x0, 3368] + adrp x0, .LC101 + ldr x3, [x21, 1384] + add x0, x0, :lo12:.LC101 + bl printk +.L946: + cbz w22, .L939 + adrp x0, .LANCHOR2 + ldr w0, [x0, #:lo12:.LANCHOR2] + tbz x0, 8, .L939 + add x19, x19, :lo12:.LANCHOR0 + uxtw x3, w20 + lsl x0, x3, 2 + ldr x1, [x19, 1104] + ldr x6, [x19, 1120] + add x2, x1, x0 + ldr w4, [x1, x0] + ldrh w6, [x6, x3, lsl 1] + ldrb w2, [x2, 2] + ldrh w5, [x1, x0] + ubfx x4, x4, 11, 8 + mov w1, w20 + adrp x0, .LC102 + ubfx x3, x2, 3, 2 + and w5, w5, 2047 + ubfx x2, x2, 5, 3 + add x0, x0, :lo12:.LC102 + bl printk + b .L939 +.L942: + mov w1, 7 + mul w1, w0, w1 + lsr w1, w1, 3 + b .L943 +.L941: + lsr w1, w0, 3 + cmp w22, 0 + add x2, x19, :lo12:.LANCHOR0 + add x0, x21, :lo12:.LANCHOR3 + csel w1, w1, wzr, ne + add x2, x2, 3370 + add x0, x0, 1392 + b .L958 .size zftl_gc_get_free_sblk, .-zftl_gc_get_free_sblk .align 2 .global zftl_get_free_sblk .type zftl_get_free_sblk, %function zftl_get_free_sblk: - stp x29, x30, [sp, -64]! + stp x29, x30, [sp, -48]! add x29, sp, 0 - stp x21, x22, [sp,32] - uxth w22, w1 - str x23, [sp,48] - stp x19, x20, [sp,16] - cmp w22, 5 - uxth w21, w0 - adrp x20, .LANCHOR0 - bne .L956 - add x2, x20, :lo12:.LANCHOR0 + stp x19, x20, [sp, 16] + adrp x19, .LANCHOR0 + stp x21, x22, [sp, 32] + and w21, w1, 65535 + cmp w21, 5 + bne .L960 + add x2, x19, :lo12:.LANCHOR0 adrp x0, .LANCHOR3 - ldrh w3, [x2,3378] - ldrh w1, [x2,3380] + ldrh w3, [x2, 3370] + ldrh w1, [x2, 3372] cmp w3, w1 - bcc .L957 - ldrh w2, [x2,3376] + bcc .L961 + ldrh w2, [x2, 3368] cmp w2, w3 - bls .L958 - cbz w1, .L958 -.L957: - add x0, x0, :lo12:.LANCHOR3 - add x2, x20, :lo12:.LANCHOR0 - add x0, x0, 1408 - lsr w1, w1, 1 - b .L987 -.L958: - add x0, x0, :lo12:.LANCHOR3 - add x2, x20, :lo12:.LANCHOR0 - add x0, x0, 1400 - mov w1, 0 - add x2, x2, 3378 - b .L986 -.L956: - add x23, x20, :lo12:.LANCHOR0 - cmp w22, 1 - ldr x0, [x23,1120] - ldrh w19, [x0,590] - beq .L960 - mov w0, 65535 - cmp w19, w0 - beq .L960 - adrp x0, .LC106 - mov w1, w19 - add x0, x0, :lo12:.LC106 - bl printk - ldr x0, [x23,1120] - mov w1, -1 - strh w1, [x0,590] - b .L961 -.L960: - add x1, x20, :lo12:.LANCHOR0 - ldrh w0, [x1,3376] - ldrh w2, [x1,3380] - cmp w0, w2 - bcc .L962 - ldrh w1, [x1,3378] - cmp w1, w0 - bls .L963 - cbz w2, .L963 -.L962: - bl get_ink_scaned_blk - uxth w0, w0 - mov w19, w0 - mov w0, 65535 - cmp w19, w0 - bne .L961 - cmp w22, 1 - bne .L964 - add x0, x20, :lo12:.LANCHOR0 - ldrh w21, [x0,3380] - lsr w21, w21, 1 -.L964: - adrp x0, .LANCHOR3 - add x2, x20, :lo12:.LANCHOR0 - add x0, x0, :lo12:.LANCHOR3 - mov w1, w21 - add x0, x0, 1408 -.L987: - add x2, x2, 3380 - b .L986 -.L963: - lsr w0, w0, 1 - cmp w22, 1 - csel w21, w0, w21, eq - adrp x0, .LANCHOR3 - add x2, x20, :lo12:.LANCHOR0 - add x0, x0, :lo12:.LANCHOR3 - add x0, x0, 1392 - mov w1, w21 - add x2, x2, 3376 -.L986: - bl _list_pop_index_node - uxth w0, w0 - mov w19, w0 - mov w0, 65535 - cmp w19, w0 - bne .L961 - add x20, x20, :lo12:.LANCHOR0 - adrp x3, .LANCHOR3+1392 - adrp x0, .LC104 - mov w1, w19 - add x0, x0, :lo12:.LC104 - mov w2, w22 - ldr x3, [x3,#:lo12:.LANCHOR3+1392] - ldrh w4, [x20,3376] - ldrh w5, [x20,3380] - bl printk + bls .L962 + cbz w1, .L962 .L961: - mov w0, w19 - ldr x23, [sp,48] - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x29, x30, [sp], 64 + add x2, x19, :lo12:.LANCHOR0 + add x0, x0, :lo12:.LANCHOR3 + add x2, x2, 3372 + lsr w1, w1, 1 +.L981: + add x0, x0, 1400 + b .L980 +.L962: + add x2, x19, :lo12:.LANCHOR0 + add x0, x0, :lo12:.LANCHOR3 + add x2, x2, 3370 + add x0, x0, 1392 + mov w1, 0 +.L980: + bl _list_pop_index_node + and w20, w0, 65535 + mov w0, 65535 + cmp w20, w0 + bne .L965 + add x19, x19, :lo12:.LANCHOR0 + adrp x0, .LANCHOR3+1384 + mov w2, w21 + mov w1, w20 + ldr x3, [x0, #:lo12:.LANCHOR3+1384] + adrp x0, .LC101 + ldrh w5, [x19, 3372] + add x0, x0, :lo12:.LC101 + ldrh w4, [x19, 3368] + bl printk + b .L965 +.L960: + add x22, x19, :lo12:.LANCHOR0 + and w3, w0, 65535 + ldr x0, [x22, 1128] + ldrh w20, [x0, 590] + mov w0, 65535 + cmp w20, w0 + beq .L964 + cmp w21, 1 + beq .L964 + mov w1, w20 + adrp x0, .LC103 + add x0, x0, :lo12:.LC103 + bl printk + ldr x0, [x22, 1128] + mov w1, -1 + strh w1, [x0, 590] +.L965: + mov w0, w20 + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x29, x30, [sp], 48 ret +.L964: + add x1, x19, :lo12:.LANCHOR0 + ldrh w0, [x1, 3368] + ldrh w2, [x1, 3372] + cmp w0, w2 + bcc .L966 + ldrh w1, [x1, 3370] + cmp w1, w0 + bls .L967 + cbz w2, .L967 +.L966: + bl get_ink_scaned_blk + and w20, w0, 65535 + mov w0, 65535 + cmp w20, w0 + bne .L965 + cmp w21, 1 + bne .L968 + add x0, x19, :lo12:.LANCHOR0 + ldrh w3, [x0, 3372] + lsr w3, w3, 1 +.L968: + add x2, x19, :lo12:.LANCHOR0 + adrp x0, .LANCHOR3 + add x2, x2, 3372 + mov w1, w3 + add x0, x0, :lo12:.LANCHOR3 + b .L981 +.L967: + lsr w0, w0, 1 + cmp w21, 1 + csel w3, w0, w3, eq + add x2, x19, :lo12:.LANCHOR0 + adrp x0, .LANCHOR3 + add x0, x0, :lo12:.LANCHOR3 + add x2, x2, 3368 + mov w1, w3 + add x0, x0, 1384 + b .L980 .size zftl_get_free_sblk, .-zftl_get_free_sblk .align 2 .global zftl_remove_data_node .type zftl_remove_data_node, %function zftl_remove_data_node: adrp x2, .LANCHOR0 - uxth w1, w0 add x2, x2, :lo12:.LANCHOR0 stp x29, x30, [sp, -16]! + and w1, w0, 65535 add x29, sp, 0 - ldr x0, [x2,1096] + ldr x0, [x2, 1104] add x0, x0, w1, uxth 2 - ldrb w3, [x0,2] + ldrb w3, [x0, 2] and w3, w3, 224 cmp w3, 64 - bne .L989 + bne .L983 adrp x0, .LANCHOR3 - add x2, x2, 3382 add x0, x0, :lo12:.LANCHOR3 - add x0, x0, 1352 - b .L992 -.L989: - cmp w3, 96 - bne .L991 - adrp x0, .LANCHOR3 - add x2, x2, 3384 - add x0, x0, :lo12:.LANCHOR3 - add x0, x0, 1368 - b .L992 -.L991: - cmp w3, 160 - bne .L988 - adrp x0, .LANCHOR3 - add x2, x2, 3386 - add x0, x0, :lo12:.LANCHOR3 - add x0, x0, 1376 -.L992: + add x2, x2, 3374 + add x0, x0, 1344 +.L987: bl _list_remove_node -.L988: +.L982: ldp x29, x30, [sp], 16 ret +.L983: + cmp w3, 96 + bne .L985 + adrp x0, .LANCHOR3 + add x0, x0, :lo12:.LANCHOR3 + add x2, x2, 3376 + add x0, x0, 1360 + b .L987 +.L985: + cmp w3, 160 + bne .L982 + adrp x0, .LANCHOR3 + add x0, x0, :lo12:.LANCHOR3 + add x2, x2, 3378 + add x0, x0, 1368 + b .L987 .size zftl_remove_data_node, .-zftl_remove_data_node .align 2 .global zftl_remove_free_node .type zftl_remove_free_node, %function zftl_remove_free_node: adrp x2, .LANCHOR0 - uxth w1, w0 add x2, x2, :lo12:.LANCHOR0 - adrp x3, .LANCHOR3 stp x29, x30, [sp, -16]! + and w1, w0, 65535 + adrp x3, .LANCHOR3 + add x3, x3, :lo12:.LANCHOR3 add x29, sp, 0 - ldr x0, [x2,1096] + ldr x0, [x2, 1104] add x0, x0, w1, uxth 2 - ldrb w0, [x0,2] + ldrb w0, [x0, 2] ands w0, w0, 24 - bne .L994 - add x0, x3, :lo12:.LANCHOR3 - add x2, x2, 3376 - add x0, x0, 1392 - b .L997 -.L994: - cmp w0, 16 - add x0, x3, :lo12:.LANCHOR3 - bne .L996 - add x0, x0, 1400 - add x2, x2, 3378 - b .L997 -.L996: - add x0, x0, 1408 - add x2, x2, 3380 -.L997: + bne .L989 + add x2, x2, 3368 + add x0, x3, 1384 +.L993: bl _list_remove_node ldp x29, x30, [sp], 16 ret +.L989: + cmp w0, 16 + bne .L991 + add x2, x2, 3370 + add x0, x3, 1392 + b .L993 +.L991: + add x2, x2, 3372 + add x0, x3, 1400 + b .L993 .size zftl_remove_free_node, .-zftl_remove_free_node .align 2 .global zftl_list_update_data_list .type zftl_list_update_data_list, %function zftl_list_update_data_list: adrp x2, .LANCHOR0 - uxth w1, w0 add x2, x2, :lo12:.LANCHOR0 stp x29, x30, [sp, -16]! + and w1, w0, 65535 add x29, sp, 0 - ldr x0, [x2,1096] + ldr x0, [x2, 1104] add x0, x0, w1, uxth 2 - ldrb w3, [x0,2] + ldrb w3, [x0, 2] and w3, w3, 224 cmp w3, 64 - bne .L999 + bne .L995 adrp x0, .LANCHOR3 - add x2, x2, 3382 add x0, x0, :lo12:.LANCHOR3 - add x0, x0, 1352 - b .L1002 + add x2, x2, 3374 + add x0, x0, 1344 .L999: - cmp w3, 96 - bne .L1001 - adrp x0, .LANCHOR3 - add x2, x2, 3384 - add x0, x0, :lo12:.LANCHOR3 - add x0, x0, 1368 - b .L1002 -.L1001: - cmp w3, 160 - bne .L998 - adrp x0, .LANCHOR3 - add x2, x2, 3386 - add x0, x0, :lo12:.LANCHOR3 - add x0, x0, 1376 -.L1002: bl _list_update_data_list -.L998: +.L994: ldp x29, x30, [sp], 16 ret +.L995: + cmp w3, 96 + bne .L997 + adrp x0, .LANCHOR3 + add x0, x0, :lo12:.LANCHOR3 + add x2, x2, 3376 + add x0, x0, 1360 + b .L999 +.L997: + cmp w3, 160 + bne .L994 + adrp x0, .LANCHOR3 + add x0, x0, :lo12:.LANCHOR3 + add x2, x2, 3378 + add x0, x0, 1368 + b .L999 .size zftl_list_update_data_list, .-zftl_list_update_data_list .align 2 .global print_list_info .type print_list_info, %function print_list_info: - sub sp, sp, #128 - stp x29, x30, [sp,32] + sub sp, sp, #96 + stp x29, x30, [sp, 32] add x29, sp, 32 - stp x19, x20, [sp,48] + stp x19, x20, [sp, 48] mov x19, x0 - str x27, [sp,112] - stp x21, x22, [sp,64] - stp x23, x24, [sp,80] - stp x25, x26, [sp,96] - adrp x0, .LC107 + stp x21, x22, [sp, 64] + stp x23, x24, [sp, 80] ldrh w2, [x1] - add x0, x0, :lo12:.LC107 - ldr x1, [x19] + ldr x1, [x0] + adrp x0, .LC104 + add x0, x0, :lo12:.LC104 bl printk ldr x19, [x19] - cbz x19, .L1003 - mov x22, -6148914691236517206 - adrp x23, .LC108 + cbz x19, .L1000 + adrp x21, .LANCHOR0 + mov x24, -6148914691236517206 + adrp x23, .LC105 + adrp x22, .LANCHOR3 + add x21, x21, :lo12:.LANCHOR0 + add x23, x23, :lo12:.LC105 + add x22, x22, :lo12:.LANCHOR3 mov w20, 0 - adrp x26, .LANCHOR0 - add x22, x22, 1 - add x23, x23, :lo12:.LC108 - mov w27, 65535 - mov w25, 6 - adrp x24, .LANCHOR3 -.L1006: - add x21, x26, :lo12:.LANCHOR0 - ldrh w3, [x19] - ldrh w4, [x19,2] - ldrh w5, [x19,4] - ldr x2, [x21,1040] - ldr x1, [x21,1096] + movk x24, 0xaaab, lsl 0 +.L1003: + ldr x2, [x21, 1040] + ldr x1, [x21, 1104] sub x2, x19, x2 + ldr x8, [x21, 1120] asr x2, x2, 1 - mul x2, x2, x22 - and x8, x2, 65535 - lsl x0, x8, 2 - uxth w2, w2 - add x6, x1, x0 - ldrb w7, [x6,2] - ldr w6, [x1,x0] - ubfx x6, x6, 11, 8 - str w6, [sp] - ubfx x6, x7, 5, 3 - ubfx x7, x7, 3, 2 - ldrh w0, [x1,x0] + ldrh w5, [x19, 4] + ldrh w4, [x19, 2] + mul x2, x2, x24 + and x7, x2, 65535 + and w2, w2, 65535 + lsl x0, x7, 2 + add x3, x1, x0 + ldrh w7, [x8, x7, lsl 1] + ldrb w6, [x3, 2] + ldrh w3, [x19] + str w7, [sp, 16] + ldrh w7, [x1, x0] + and w7, w7, 2047 + str w7, [sp, 8] + ubfx x7, x6, 3, 2 + ubfx x6, x6, 5, 3 + ldr w0, [x1, x0] mov w1, w20 - and w0, w0, 2047 - str w0, [sp,8] - ldr x0, [x21,1112] - ldrh w0, [x0,x8,lsl 1] - str w0, [sp,16] + ubfx x0, x0, 11, 8 + str w0, [sp] mov x0, x23 bl printk ldrh w19, [x19] - cmp w19, w27 - beq .L1003 - ldr x0, [x21,1040] + mov w0, 65535 + cmp w19, w0 + beq .L1000 + ldr x0, [x21, 1040] + mov w1, 6 add w20, w20, 1 - umull x19, w19, w25 - uxth w20, w20 - add x19, x0, x19 - add x0, x24, :lo12:.LANCHOR3 - ldrh w0, [x0,1416] + and w20, w20, 65535 + umaddl x19, w19, w1, x0 + ldrh w0, [x22, 1408] cmp w0, w20 - bcs .L1006 -.L1003: - sub sp, x29, #32 - ldp x19, x20, [sp,48] - ldp x21, x22, [sp,64] - ldp x23, x24, [sp,80] - ldp x25, x26, [sp,96] - ldr x27, [sp,112] - ldp x29, x30, [sp,32] - add sp, sp, 128 + bcs .L1003 +.L1000: + ldp x19, x20, [sp, 48] + ldp x21, x22, [sp, 64] + ldp x23, x24, [sp, 80] + ldp x29, x30, [sp, 32] + add sp, sp, 96 ret .size print_list_info, .-print_list_info .align 2 @@ -6318,30 +6113,30 @@ print_list_info: dump_all_list_info: stp x29, x30, [sp, -32]! add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x20, .LANCHOR3 - adrp x19, .LANCHOR0 - add x20, x20, :lo12:.LANCHOR3 - add x19, x19, :lo12:.LANCHOR0 - add x0, x20, 1392 - add x1, x19, 3376 + stp x19, x20, [sp, 16] + adrp x20, .LANCHOR0 + adrp x19, .LANCHOR3 + add x20, x20, :lo12:.LANCHOR0 + add x19, x19, :lo12:.LANCHOR3 + add x1, x20, 3368 + add x0, x19, 1384 bl print_list_info - add x0, x20, 1400 - add x1, x19, 3378 + add x1, x20, 3370 + add x0, x19, 1392 bl print_list_info - add x0, x20, 1408 - add x1, x19, 3380 + add x1, x20, 3372 + add x0, x19, 1400 bl print_list_info - add x0, x20, 1352 - add x1, x19, 3382 + add x1, x20, 3374 + add x0, x19, 1344 bl print_list_info - add x0, x20, 1368 - add x1, x19, 3384 + add x1, x20, 3376 + add x0, x19, 1360 bl print_list_info - add x0, x20, 1376 - add x1, x19, 3386 + add x1, x20, 3378 + add x0, x19, 1368 bl print_list_info - ldp x19, x20, [sp,16] + ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 32 ret .size dump_all_list_info, .-dump_all_list_info @@ -6349,155 +6144,145 @@ dump_all_list_info: .global ftl_tmp_into_update .type ftl_tmp_into_update, %function ftl_tmp_into_update: - adrp x0, .LANCHOR0+3392 - ldr x0, [x0,#:lo12:.LANCHOR0+3392] - ldr w2, [x0,16] - cmp w2, 2048 - bls .L1009 - 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] -.L1009: - ldr w2, [x0,24] - cmp w2, 2048 - bls .L1010 - 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] -.L1010: - ldr w2, [x0,32] - cmp w2, 1024 - bls .L1011 - 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] -.L1011: - ldr w2, [x0,40] - cmp w2, 1024 + adrp x0, .LANCHOR0+3384 + ldr x0, [x0, #:lo12:.LANCHOR0+3384] + ldr w1, [x0, 16] + cmp w1, 2048 bls .L1008 - 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] + ldr w2, [x0, 20] + add w2, w2, w1, lsr 11 + and w1, w1, 2047 + stp w1, w2, [x0, 16] .L1008: + ldr w1, [x0, 24] + cmp w1, 2048 + bls .L1009 + ldr w2, [x0, 28] + add w2, w2, w1, lsr 11 + and w1, w1, 2047 + stp w1, w2, [x0, 24] +.L1009: + ldr w1, [x0, 32] + cmp w1, 1024 + bls .L1010 + ldr w2, [x0, 36] + add w2, w2, w1, lsr 10 + and w1, w1, 1023 + stp w1, w2, [x0, 32] +.L1010: + ldr w1, [x0, 40] + cmp w1, 1024 + bls .L1007 + ldr w2, [x0, 44] + add w2, w2, w1, lsr 10 + and w1, w1, 1023 + stp w1, w2, [x0, 40] +.L1007: ret .size ftl_tmp_into_update, .-ftl_tmp_into_update .align 2 .global ftl_get_blk_list_in_sblk .type ftl_get_blk_list_in_sblk, %function ftl_get_blk_list_in_sblk: - adrp x3, .LANCHOR0 - uxth w0, w0 - add x2, x3, :lo12:.LANCHOR0 - mov x9, x3 - adrp x11, .LANCHOR3 - mov w13, 24 - ldr x2, [x2,1096] - add x2, x2, w0, uxth 2 - ldrb w12, [x2,3] - mov w2, 0 - mov w6, w2 -.L1014: - add x8, x11, :lo12:.LANCHOR3 - adrp x4, .LANCHOR3 - ldrb w3, [x8,1329] - cmp w6, w3 - bge .L1020 - asr w3, w12, w6 - tbnz x3, 0, .L1015 - add x3, x9, :lo12:.LANCHOR0 - ldrb w5, [x8,1314] - sbfiz x10, x2, 1, 32 - ldrb w7, [x3,1257] - ldrh w3, [x8,1312] - sdiv w4, w6, w5 - sub w7, w13, w7 - sub w3, w7, w3 - lsl w3, w4, w3 - madd w3, w0, w5, w3 - uxth w4, w3 - strh w4, [x1,x10] - ldrb w3, [x8,1314] - cmp w3, 1 - bls .L1016 - sub w3, w3, #1 - and w3, w6, w3 - add w3, w4, w3 - strh w3, [x1,x10] -.L1016: - add w2, w2, 1 -.L1015: - add w6, w6, 1 - b .L1014 -.L1020: - mov w0, w2 + adrp x5, .LANCHOR0 + add x5, x5, :lo12:.LANCHOR0 + and w9, w0, 65535 + mov w4, 0 + mov w0, 0 + mov w12, 24 + ldr x2, [x5, 1104] + add x2, x2, w9, uxth 2 + ldrb w11, [x2, 3] + adrp x2, .LANCHOR3 + add x7, x2, :lo12:.LANCHOR3 + mov x3, x2 +.L1013: + ldrb w2, [x7, 1321] + cmp w4, w2 + blt .L1016 + mov w4, w0 + add x2, x3, :lo12:.LANCHOR3 mov w5, -1 -.L1018: - add x3, x4, :lo12:.LANCHOR3 - ldrb w3, [x3,1329] - cmp w2, w3 - bge .L1021 - strh w5, [x1,w2,sxtw 1] - add w2, w2, 1 - b .L1018 -.L1021: +.L1017: + ldrb w3, [x2, 1321] + cmp w4, w3 + blt .L1018 ret +.L1016: + asr w2, w11, w4 + tbnz x2, 0, .L1014 + ldrb w2, [x7, 1306] + sbfiz x10, x0, 1, 32 + ldrb w6, [x5, 1205] + ldrh w13, [x7, 1304] + sub w6, w12, w6 + sdiv w8, w4, w2 + sub w6, w6, w13 + lsl w6, w8, w6 + madd w2, w9, w2, w6 + and w2, w2, 65535 + strh w2, [x1, x10] + ldrb w6, [x7, 1306] + cmp w6, 1 + bls .L1015 + sub w6, w6, #1 + and w6, w6, w4 + add w2, w2, w6 + strh w2, [x1, x10] +.L1015: + add w0, w0, 1 +.L1014: + add w4, w4, 1 + b .L1013 +.L1018: + strh w5, [x1, w4, sxtw 1] + add w4, w4, 1 + b .L1017 .size ftl_get_blk_list_in_sblk, .-ftl_get_blk_list_in_sblk .align 2 .global ftl_erase_phy_blk .type ftl_erase_phy_blk, %function ftl_erase_phy_blk: stp x29, x30, [sp, -48]! - uxth w2, w0 - adrp x3, .LANCHOR3 - adrp x0, .LANCHOR0+1257 - add x5, x3, :lo12:.LANCHOR3 + mov w2, 24 + and w0, w0, 65535 add x29, sp, 0 - stp x21, x22, [sp,32] - stp x19, x20, [sp,16] - ldrb w4, [x0,#:lo12:.LANCHOR0+1257] - mov w0, 24 - ldrh w19, [x5,1312] - mov w21, w1 - sub w4, w0, w4 - ldrb w0, [x5,1330] - sub w4, w4, w19 + stp x21, x22, [sp, 32] + mov w22, w1 + adrp x1, .LANCHOR0+1205 + stp x19, x20, [sp, 16] + ldrb w19, [x1, #:lo12:.LANCHOR0+1205] + adrp x1, .LANCHOR3 + add x3, x1, :lo12:.LANCHOR3 + mov x20, x1 + sub w19, w2, w19 + ldrh w2, [x3, 1304] + sub w2, w19, w2 mov w19, 1 - lsl w19, w19, w4 - asr w22, w2, w4 + lsl w19, w19, w2 sub w19, w19, #1 - mov x20, x3 - and w19, w19, w2 + and w19, w19, w0 + asr w21, w0, w2 + ldrb w0, [x3, 1322] sxth w19, w19 - cbz w0, .L1023 - ldrb w0, [x5,1331] - cbnz w0, .L1023 - ldrh w2, [x5,1418] - cmp w1, wzr - mov w0, w22 + cbz w0, .L1020 + ldrb w0, [x3, 1323] + cbnz w0, .L1020 + ldrh w2, [x3, 1410] + cmp w22, 0 cset w1, eq - mul w2, w19, w2 + mov w0, w21 + mul w2, w2, w19 bl flash_erase_block_en -.L1023: - add x3, x20, :lo12:.LANCHOR3 - mov w1, w21 - mov w0, w22 - ldrh w2, [x3,1418] - mul w2, w19, w2 +.L1020: + add x1, x20, :lo12:.LANCHOR3 + mov w0, w21 + ldrh w2, [x1, 1410] + mov w1, w22 + mul w2, w2, w19 bl flash_erase_block_en - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] ldp x29, x30, [sp], 48 ret .size ftl_erase_phy_blk, .-ftl_erase_phy_blk @@ -6505,156 +6290,155 @@ ftl_erase_phy_blk: .global ftl_erase_sblk .type ftl_erase_sblk, %function ftl_erase_sblk: - stp x29, x30, [sp, -160]! + stp x29, x30, [sp, -176]! add x29, sp, 0 - stp x23, x24, [sp,48] - uxth w24, w0 + stp x21, x22, [sp, 32] + mov w22, w1 + stp x25, x26, [sp, 64] + and w25, w0, 65535 adrp x0, .LANCHOR0 - mov w23, w1 add x1, x0, :lo12:.LANCHOR0 - stp x21, x22, [sp,32] - stp x25, x26, [sp,64] - stp x19, x20, [sp,16] - stp x27, x28, [sp,80] - ubfiz x22, x24, 2, 16 - adrp x25, .LANCHOR3 - ldr x1, [x1,1096] + stp x19, x20, [sp, 16] + ubfiz x21, x25, 2, 16 + stp x23, x24, [sp, 48] + adrp x26, .LANCHOR3 + stp x27, x28, [sp, 80] + mov x20, x0 + add x27, x29, 112 + add x24, x26, :lo12:.LANCHOR3 + ldr x1, [x1, 1104] mov w19, 0 - mov x21, x0 - mov x26, x25 - add x1, x1, x22 - ldrb w27, [x1,3] + add x1, x1, x21 + ldrb w28, [x1, 3] +.L1026: + add x0, x26, :lo12:.LANCHOR3 + ldrb w1, [x0, 1412] + cmp w19, w1 + bge .L1037 + ldrb w1, [x0, 1306] + mov w23, 0 + ldrh w3, [x0, 1410] + mov w0, 0 + sub w4, w1, #1 + mul w6, w19, w1 + mul w5, w25, w1 + b .L1038 .L1028: - add x1, x25, :lo12:.LANCHOR3 - ldrb w0, [x1,1420] - cmp w19, w0 - bge .L1039 - ldrb w0, [x1,1314] - mov w20, 0 - ldrh w3, [x1,1418] - mov w1, w20 - sub w4, w0, #1 - mul w6, w19, w0 - mul w5, w24, w0 -.L1040: - cmp w1, w0 - bge .L1053 - add w2, w1, w6 - asr w2, w27, w2 - tbnz x2, 0, .L1029 - and w2, w1, w4 - add x7, x29, 96 - add w2, w5, w2 + add w2, w6, w0 + asr w2, w28, w2 + tbnz x2, 0, .L1027 + and w2, w0, w4 + add w2, w2, w5 mul w2, w2, w3 - str w2, [x7,w20,sxtw 2] - add w20, w20, 1 -.L1029: - add w1, w1, 1 - b .L1040 -.L1053: - cmp w0, 4 - bne .L1052 - mov x28, 0 -.L1031: - cmp w20, w28 - ble .L1034 - add x2, x29, 96 - mov w0, w19 - mov w1, w23 - ldr w2, [x2,x28,lsl 2] - add x28, x28, 1 - bl flash_erase_block_en - b .L1031 -.L1052: - cmp w20, 2 - bne .L1035 - add x0, x26, :lo12:.LANCHOR3 - ldrb w1, [x0,1330] - cbz w1, .L1036 - ldrb w0, [x0,1331] - cbnz w0, .L1036 - cmp w23, wzr - ldr w2, [x29,96] - ldr w3, [x29,100] - mov w0, w19 - cset w1, eq - bl flash_erase_duplane_block -.L1036: - ldr w2, [x29,96] - mov w0, w19 - ldr w3, [x29,100] - mov w1, w23 - bl flash_erase_duplane_block - b .L1034 -.L1035: - cmp w20, 1 - bne .L1034 - add x0, x26, :lo12:.LANCHOR3 - ldrb w1, [x0,1330] - cbz w1, .L1038 - ldrb w0, [x0,1331] - cbnz w0, .L1038 - cmp w23, wzr - ldr w2, [x29,96] - mov w0, w19 - cset w1, eq - bl flash_erase_block_en + str w2, [x27, w23, sxtw 2] + add w23, w23, 1 +.L1027: + add w0, w0, 1 .L1038: - ldr w2, [x29,96] - mov w0, w19 - mov w1, w23 - bl flash_erase_block_en -.L1034: + cmp w0, w1 + blt .L1028 + cmp w1, 4 + bne .L1029 + mov x3, 0 +.L1030: + cmp w23, w3 + bgt .L1031 +.L1032: add w19, w19, 1 - b .L1028 -.L1039: - add x0, x21, :lo12:.LANCHOR0 - cbnz w23, .L1041 - ldr x2, [x0,1096] - ldrh w1, [x2,x22] + b .L1026 +.L1031: + ldr w2, [x27, x3, lsl 2] + mov w1, w22 + str x3, [x29, 104] + mov w0, w19 + bl flash_erase_block_en + ldr x3, [x29, 104] + add x3, x3, 1 + b .L1030 +.L1029: + cmp w23, 2 + bne .L1033 + ldrb w0, [x24, 1322] + cbz w0, .L1034 + ldrb w0, [x24, 1323] + cbnz w0, .L1034 + ldp w2, w3, [x29, 112] + cmp w22, 0 + cset w1, eq + mov w0, w19 + bl flash_erase_duplane_block +.L1034: + ldp w2, w3, [x29, 112] + mov w1, w22 + mov w0, w19 + bl flash_erase_duplane_block + b .L1032 +.L1033: + cmp w23, 1 + bne .L1032 + ldrb w0, [x24, 1322] + cbz w0, .L1036 + ldrb w0, [x24, 1323] + cbnz w0, .L1036 + ldr w2, [x29, 112] + cmp w22, 0 + cset w1, eq + mov w0, w19 + bl flash_erase_block_en +.L1036: + ldr w2, [x29, 112] + mov w1, w22 + mov w0, w19 + bl flash_erase_block_en + b .L1032 +.L1037: + add x0, x20, :lo12:.LANCHOR0 + cbnz w22, .L1039 + ldr x2, [x0, 1104] + ldrh w1, [x2, x21] add w3, w1, 1 bfi w1, w3, 0, 11 - strh w1, [x2,x22] - ldr x1, [x0,3392] - ldr x0, [x0,1096] - ldr w2, [x1,84] - ldrh w3, [x1,96] + strh w1, [x2, x21] + ldr x1, [x0, 3384] + ldr x0, [x0, 1104] + ldr w2, [x1, 84] + ldrh w3, [x1, 96] add w2, w2, 1 - str w2, [x1,84] - ldrh w0, [x0,x22] + str w2, [x1, 84] + ldrh w0, [x0, x21] ubfx x0, x0, 0, 11 - uxth w2, w0 + and w2, w0, 65535 cmp w3, w2 - bge .L1043 - strh w0, [x1,96] - b .L1043 + bge .L1041 + strh w0, [x1, 96] .L1041: - ldr x3, [x0,1096] - ldr w1, [x3,x22] + ldp x19, x20, [sp, 16] + mov w0, 0 + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] + ldp x27, x28, [sp, 80] + ldp x29, x30, [sp], 176 + ret +.L1039: + ldr x3, [x0, 1104] + ldr w1, [x3, x21] ubfx x2, x1, 11, 8 add w2, w2, 1 bfi w1, w2, 11, 8 - str w1, [x3,x22] - ldr x1, [x0,3392] - ldr x0, [x0,1096] - ldr w2, [x1,80] + str w1, [x3, x21] + ldr x1, [x0, 3384] + ldr x0, [x0, 1104] + ldr w2, [x1, 80] add w2, w2, 1 - str w2, [x1,80] - ldrh w2, [x1,98] - ldr w0, [x0,x22] + str w2, [x1, 80] + ldrh w2, [x1, 98] + ldr w0, [x0, x21] ubfx x0, x0, 11, 8 cmp w2, w0, uxtb - bcs .L1043 - strh w0, [x1,98] -.L1043: - 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], 160 - ret + bcs .L1041 + strh w0, [x1, 98] + b .L1041 .size ftl_erase_sblk, .-ftl_erase_sblk .align 2 .global ftl_alloc_sys_blk @@ -6662,53 +6446,55 @@ ftl_erase_sblk: ftl_alloc_sys_blk: stp x29, x30, [sp, -32]! adrp x0, .LANCHOR0 - add x29, sp, 0 add x1, x0, :lo12:.LANCHOR0 - str x19, [sp,16] + add x29, sp, 0 + str x19, [sp, 16] mov x19, x0 - ldr x1, [x1,3392] - ldrh w2, [x1,136] + ldr x1, [x1, 3384] + ldrh w2, [x1, 136] cmp w2, 63 - bls .L1055 - strh wzr, [x1,136] -.L1055: - ldrh w0, [x1,112] - cbnz w0, .L1056 + bls .L1051 + strh wzr, [x1, 136] +.L1051: + ldrh w0, [x1, 112] + cbnz w0, .L1052 adrp x1, .LANCHOR1 - adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 + add x1, x1, 1592 mov w2, 1359 - add x1, x1, 1800 + adrp x0, .LC0 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L1056: +.L1052: add x0, x19, :lo12:.LANCHOR0 mov w4, 65535 - ldr x1, [x0,3392] -.L1060: - ldrh w2, [x1,136] -.L1057: + ldr x1, [x0, 3384] +.L1056: + ldrh w2, [x1, 136] + ubfiz x3, x2, 1, 16 + add x3, x3, 160 + add x3, x1, x3 +.L1053: cmp w2, 63 - bgt .L1063 - sxtw x3, w2 - add x3, x3, 80 - ldrh w0, [x1,x3,lsl 1] + ble .L1055 + strh wzr, [x1, 136] + b .L1056 +.L1055: + ldrh w0, [x3], 2 cmp w0, w4 - bne .L1062 + bne .L1058 add w2, w2, 1 - b .L1057 -.L1063: - strh wzr, [x1,136] - b .L1060 -.L1062: + b .L1053 +.L1058: + add x3, x1, w2, sxtw 1 mov w4, -1 - strh w4, [x1,x3,lsl 1] - strh w2, [x1,136] - ldrh w2, [x1,112] + strh w4, [x3, 160] + strh w2, [x1, 136] + ldrh w2, [x1, 112] sub w2, w2, #1 - strh w2, [x1,112] - ldr x19, [sp,16] + strh w2, [x1, 112] + ldr x19, [sp, 16] ldp x29, x30, [sp], 32 ret .size ftl_alloc_sys_blk, .-ftl_alloc_sys_blk @@ -6717,145 +6503,148 @@ ftl_alloc_sys_blk: .type ftl_free_sys_blk, %function ftl_free_sys_blk: stp x29, x30, [sp, -32]! - adrp x1, .LANCHOR0 add x29, sp, 0 - stp x19, x20, [sp,16] - uxth w20, w0 - add x0, x1, :lo12:.LANCHOR0 - mov x19, x1 - ldr x2, [x0,3392] - ldrh w0, [x2,138] + stp x19, x20, [sp, 16] + and w20, w0, 65535 + adrp x0, .LANCHOR0 + add x1, x0, :lo12:.LANCHOR0 + mov x19, x0 + ldr x1, [x1, 3384] + ldrh w2, [x1, 138] + cmp w2, 63 + bls .L1061 + strh wzr, [x1, 138] +.L1061: + ldrh w0, [x1, 112] cmp w0, 63 - bls .L1065 - strh wzr, [x2,138] -.L1065: - ldrh w0, [x2,112] - cmp w0, 63 - bls .L1066 + bls .L1062 adrp x1, .LANCHOR1 - adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 + add x1, x1, 1616 mov w2, 1386 - add x1, x1, 1824 + adrp x0, .LC0 add x0, x0, :lo12:.LC0 bl printk bl dump_stack +.L1062: + add x0, x19, :lo12:.LANCHOR0 + mov w3, 65535 + ldr x0, [x0, 3384] .L1066: - add x1, x19, :lo12:.LANCHOR0 - mov w0, 65535 - ldr x1, [x1,3392] -.L1070: - ldrh w2, [x1,138] -.L1067: - cmp w2, 63 - bgt .L1072 - sxtw x3, w2 - add x3, x3, 80 - ldrh w4, [x1,x3,lsl 1] - cmp w4, w0 - bne .L1068 - strh w20, [x1,x3,lsl 1] - strh w2, [x1,138] - ldrh w0, [x1,112] - add w0, w0, 1 - strh w0, [x1,112] - ldp x19, x20, [sp,16] + ldrh w1, [x0, 138] + ubfiz x2, x1, 1, 16 + add x2, x2, 160 + add x2, x0, x2 +.L1063: + cmp w1, 63 + ble .L1065 + strh wzr, [x0, 138] + b .L1066 +.L1065: + ldrh w4, [x2], 2 + cmp w4, w3 + bne .L1064 + add x2, x0, w1, sxtw 1 + strh w20, [x2, 160] + strh w1, [x0, 138] + ldrh w1, [x0, 112] + add w1, w1, 1 + strh w1, [x0, 112] + ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 32 ret -.L1068: - add w2, w2, 1 - b .L1067 -.L1072: - strh wzr, [x1,138] - b .L1070 +.L1064: + add w1, w1, 1 + b .L1063 .size ftl_free_sys_blk, .-ftl_free_sys_blk .align 2 .global ftl_info_data_recovery .type ftl_info_data_recovery, %function ftl_info_data_recovery: - stp x29, x30, [sp, -64]! - mov w1, 65535 - add x29, sp, 0 - stp x19, x20, [sp,16] - stp x21, x22, [sp,32] - str x23, [sp,48] ldrh w2, [x0] + mov w1, 65535 cmp w2, w1 - beq .L1073 + beq .L1079 + stp x29, x30, [sp, -64]! + add x29, sp, 0 + stp x19, x20, [sp, 16] adrp x19, .LANCHOR0 - ubfiz x20, x2, 2, 16 + str x23, [sp, 48] add x23, x19, :lo12:.LANCHOR0 - ldr x21, [x23,1096] + stp x21, x22, [sp, 32] + ubfiz x20, x2, 2, 16 + ldr x21, [x23, 1104] add x22, x21, x20 - ldrb w1, [x22,2] + ldrb w1, [x22, 2] tst w1, 224 - bne .L1073 - ldrb w0, [x0,4] + bne .L1069 + ldrb w0, [x0, 4] bfi w1, w0, 5, 3 + strb w1, [x22, 2] mov w0, w2 - strb w1, [x22,2] bl zftl_remove_free_node - ldrb w0, [x22,2] - tbz x0, 3, .L1077 - ldr x1, [x23,3392] - ldrh w0, [x1,116] + ldrb w0, [x22, 2] + ldr x1, [x23, 3384] + tbz x0, 3, .L1073 + ldrh w0, [x1, 116] sub w0, w0, #1 - strh w0, [x1,116] - b .L1078 -.L1077: - tst w0, 24 - ldr x1, [x23,3392] - bne .L1079 - ldrh w0, [x1,114] - sub w0, w0, #1 - strh w0, [x1,114] - b .L1078 -.L1079: - ldrh w0, [x1,118] - sub w0, w0, #1 - strh w0, [x1,118] -.L1078: - ldrb w0, [x22,2] + strh w0, [x1, 116] +.L1074: + ldrb w0, [x22, 2] and w0, w0, 224 cmp w0, 160 - bne .L1080 - ldr w0, [x21,x20] + bne .L1076 + ldr w0, [x21, x20] add x19, x19, :lo12:.LANCHOR0 ubfx x1, x0, 11, 8 add w1, w1, 1 bfi w0, w1, 11, 8 - str w0, [x21,x20] - ldr x1, [x19,3392] - ldrh w0, [x1,120] + str w0, [x21, x20] + ldr x1, [x19, 3384] + ldrh w0, [x1, 120] sub w0, w0, #1 - strh w0, [x1,120] - b .L1073 -.L1080: - ldrh w1, [x21,x20] + strh w0, [x1, 120] +.L1069: + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldr x23, [sp, 48] + ldp x29, x30, [sp], 64 + ret +.L1073: + tst w0, 24 + bne .L1075 + ldrh w0, [x1, 114] + sub w0, w0, #1 + strh w0, [x1, 114] + b .L1074 +.L1075: + ldrh w0, [x1, 118] + sub w0, w0, #1 + strh w0, [x1, 118] + b .L1074 +.L1076: + ldrh w1, [x21, x20] cmp w0, 64 add w2, w1, 1 bfi w1, w2, 0, 11 - strh w1, [x21,x20] - bne .L1081 + strh w1, [x21, x20] + bne .L1077 add x19, x19, :lo12:.LANCHOR0 - ldr x1, [x19,3392] - ldrh w0, [x1,122] + ldr x1, [x19, 3384] + ldrh w0, [x1, 122] sub w0, w0, #1 - strh w0, [x1,122] - b .L1073 -.L1081: + strh w0, [x1, 122] + b .L1069 +.L1077: cmp w0, 96 - bne .L1073 + bne .L1069 add x19, x19, :lo12:.LANCHOR0 - ldr x1, [x19,3392] - ldrh w0, [x1,124] + ldr x1, [x19, 3384] + ldrh w0, [x1, 124] sub w0, w0, #1 - strh w0, [x1,124] -.L1073: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldr x23, [sp,48] - ldp x29, x30, [sp], 64 + strh w0, [x1, 124] + b .L1069 +.L1079: ret .size ftl_info_data_recovery, .-ftl_info_data_recovery .align 2 @@ -6863,83 +6652,83 @@ ftl_info_data_recovery: .type ftl_get_ppa_from_index, %function ftl_get_ppa_from_index: stp x29, x30, [sp, -48]! - adrp x2, .LANCHOR3 - uxth w1, w0 - add x4, x2, :lo12:.LANCHOR3 - adrp x0, .LANCHOR0+1120 + adrp x1, .LANCHOR0+1128 + and w0, w0, 65535 add x29, sp, 0 - stp x19, x20, [sp,16] - str x21, [sp,32] - mov x19, x2 - ldr x3, [x0,#:lo12:.LANCHOR0+1120] - ldrh w0, [x4,1384] - ldrb w4, [x4,1329] - mul w0, w0, w4 - cmp w1, w0 + ldr x2, [x1, #:lo12:.LANCHOR0+1128] + adrp x1, .LANCHOR3 + add x4, x1, :lo12:.LANCHOR3 + stp x19, x20, [sp, 16] + str x21, [sp, 32] + mov x19, x1 + ldrh w3, [x4, 1376] + ldrb w4, [x4, 1321] + mul w3, w3, w4 + cmp w0, w3 bge .L1083 - add x3, x3, 16 - b .L1084 -.L1083: - sub w1, w1, w0 - add x3, x3, 48 - uxth w1, w1 + add x2, x2, 16 .L1084: - ldrb w2, [x3,9] + ldrb w1, [x2, 9] + sdiv w20, w0, w1 + msub w0, w20, w1, w0 + add x0, x2, w0, uxth 1 + ldrh w21, [x0, 16] mov w0, 65535 - sdiv w20, w1, w2 - msub w1, w20, w2, w1 - add x1, x3, w1, uxth 1 - ldrh w21, [x1,16] cmp w21, w0 bne .L1085 adrp x1, .LANCHOR1 - adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 + add x1, x1, 1640 mov w2, 1945 - add x1, x1, 1848 + adrp x0, .LC0 add x0, x0, :lo12:.LC0 bl printk bl dump_stack .L1085: - add x2, x19, :lo12:.LANCHOR3 - ldrh w0, [x2,1418] - madd w0, w21, w0, w20 - ldp x19, x20, [sp,16] - ldr x21, [sp,32] + add x1, x19, :lo12:.LANCHOR3 + ldrh w0, [x1, 1410] + madd w0, w0, w21, w20 + ldr x21, [sp, 32] + ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 48 ret +.L1083: + sub w0, w0, w3 + add x2, x2, 48 + and w0, w0, 65535 + b .L1084 .size ftl_get_ppa_from_index, .-ftl_get_ppa_from_index .align 2 .global lpa_hash_get_ppa .type lpa_hash_get_ppa, %function lpa_hash_get_ppa: adrp x1, .LANCHOR3 - mov w3, 65535 add x1, x1, :lo12:.LANCHOR3 - add x2, x1, w0, uxtb 1 - stp x29, x30, [sp, -16]! - add x29, sp, 0 - ldrh w2, [x2,1424] - ldr x4, [x1,1936] - ldr x5, [x1,1944] -.L1087: - cmp w2, w3 - beq .L1091 - uxtw x1, w2 - ldr w6, [x4,x1,lsl 2] - cmp w6, w0 - bne .L1088 - mov w0, w2 - bl ftl_get_ppa_from_index - b .L1089 + and x3, x0, 255 + add x2, x1, 1416 + ldr x4, [x1, 1928] + ldr x5, [x1, 1936] + ldrh w2, [x2, x3, lsl 1] + mov w3, 65535 .L1088: - ldrh w2, [x5,x1,lsl 1] - b .L1087 -.L1091: + cmp w2, w3 + bne .L1091 mov w0, -1 -.L1089: + ret +.L1091: + uxtw x1, w2 + ldr w6, [x4, x1, lsl 2] + cmp w0, w6 + bne .L1089 + stp x29, x30, [sp, -16]! + mov w0, w2 + add x29, sp, 0 + bl ftl_get_ppa_from_index ldp x29, x30, [sp], 16 ret +.L1089: + ldrh w2, [x5, x1, lsl 1] + b .L1088 .size lpa_hash_get_ppa, .-lpa_hash_get_ppa .align 2 .global ftl_get_new_free_page @@ -6947,97 +6736,95 @@ lpa_hash_get_ppa: ftl_get_new_free_page: stp x29, x30, [sp, -32]! add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] mov x19, x0 ldrh w1, [x0] mov w0, 65535 cmp w1, w0 - bne .L1093 - adrp x1, .LANCHOR1 - adrp x0, .LC0 - add x1, x1, :lo12:.LANCHOR1 - mov w2, 2088 - add x1, x1, 1872 - add x0, x0, :lo12:.LC0 - bl printk - bl dump_stack -.L1093: - adrp x20, .LANCHOR3 - ldrh w1, [x19,2] - add x0, x20, :lo12:.LANCHOR3 - ldrh w0, [x0,1384] - cmp w1, w0 - bne .L1094 - adrp x1, .LANCHOR1 - adrp x0, .LC0 - add x1, x1, :lo12:.LANCHOR1 - mov w2, 2089 - add x1, x1, 1872 - add x0, x0, :lo12:.LC0 - bl printk - bl dump_stack -.L1094: - ldrh w0, [x19,6] - cbnz w0, .L1095 - adrp x1, .LANCHOR1 - adrp x0, .LC0 - add x1, x1, :lo12:.LANCHOR1 - mov w2, 2090 - add x1, x1, 1872 - add x0, x0, :lo12:.LC0 - bl printk - bl dump_stack -.L1095: - ldrb w0, [x19,5] - add x1, x20, :lo12:.LANCHOR3 - add x0, x0, 8 - ldrb w2, [x1,1329] - mov w1, 65535 - ldrh w0, [x19,x0,lsl 1] -.L1096: - cmp w0, w1 - bne .L1100 - ldrb w0, [x19,5] - add w0, w0, 1 - uxtb w0, w0 - strb w0, [x19,5] - cmp w0, w2 bne .L1097 - ldrh w0, [x19,2] - strb wzr, [x19,5] - add w0, w0, 1 - strh w0, [x19,2] + adrp x1, .LANCHOR1 + add x1, x1, :lo12:.LANCHOR1 + add x1, x1, 1664 + mov w2, 2088 + adrp x0, .LC0 + add x0, x0, :lo12:.LC0 + bl printk + bl dump_stack .L1097: - ldrb w0, [x19,5] - add x0, x0, 8 - ldrh w0, [x19,x0,lsl 1] - b .L1096 -.L1100: - add x20, x20, :lo12:.LANCHOR3 - ldrh w2, [x19,2] - ldrh w1, [x20,1418] - ldrb w3, [x20,1329] - mul w0, w0, w1 - ldrh w1, [x19,6] - orr w0, w0, w2 - sub w1, w1, #1 - strh w1, [x19,6] - ldrh w1, [x19,10] - add w1, w1, 1 - strh w1, [x19,10] - ldrb w1, [x19,5] - add w1, w1, 1 - uxtb w1, w1 - strb w1, [x19,5] - cmp w3, w1 - bne .L1099 - add w2, w2, 1 - strb wzr, [x19,5] - strh w2, [x19,2] + adrp x20, .LANCHOR3 + add x0, x20, :lo12:.LANCHOR3 + ldrh w1, [x19, 2] + ldrh w0, [x0, 1376] + cmp w1, w0 + bne .L1098 + adrp x1, .LANCHOR1 + add x1, x1, :lo12:.LANCHOR1 + add x1, x1, 1664 + mov w2, 2089 + adrp x0, .LC0 + add x0, x0, :lo12:.LC0 + bl printk + bl dump_stack +.L1098: + ldrh w0, [x19, 6] + cbnz w0, .L1099 + adrp x1, .LANCHOR1 + add x1, x1, :lo12:.LANCHOR1 + add x1, x1, 1664 + mov w2, 2090 + adrp x0, .LC0 + add x0, x0, :lo12:.LC0 + bl printk + bl dump_stack .L1099: - ldp x19, x20, [sp,16] + ldrb w0, [x19, 5] + mov w2, 65535 + add x0, x0, 8 + ldrh w3, [x19, x0, lsl 1] + add x0, x20, :lo12:.LANCHOR3 + ldrb w4, [x0, 1321] +.L1100: + cmp w3, w2 + ldrb w1, [x19, 5] + beq .L1102 + add x20, x20, :lo12:.LANCHOR3 + add w1, w1, 1 + and w1, w1, 255 + ldrh w2, [x19, 2] + strb w1, [x19, 5] + cmp w4, w1 + ldrh w0, [x20, 1410] + mul w0, w0, w3 + ldrh w3, [x19, 6] + sub w3, w3, #1 + strh w3, [x19, 6] + ldrh w3, [x19, 10] + orr w0, w0, w2 + add w3, w3, 1 + strh w3, [x19, 10] + bne .L1096 + add w2, w2, 1 + strb wzr, [x19, 5] + strh w2, [x19, 2] +.L1096: + ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 32 ret +.L1102: + add w1, w1, 1 + and w1, w1, 255 + strb w1, [x19, 5] + cmp w1, w4 + bne .L1101 + ldrh w0, [x19, 2] + strb wzr, [x19, 5] + add w0, w0, 1 + strh w0, [x19, 2] +.L1101: + ldrb w0, [x19, 5] + add x0, x0, 8 + ldrh w3, [x19, x0, lsl 1] + b .L1100 .size ftl_get_new_free_page, .-ftl_get_new_free_page .align 2 .global ftl_ext_alloc_new_blk @@ -7045,36 +6832,36 @@ ftl_get_new_free_page: ftl_ext_alloc_new_blk: stp x29, x30, [sp, -32]! add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] bl ftl_alloc_sys_blk - uxth w0, w0 - mov w20, w0 + and w0, w0, 65535 mov w1, 65533 + mov w20, w0 sub w0, w0, #1 cmp w1, w0, uxth - bcs .L1102 + bcs .L1106 adrp x1, .LANCHOR1 - adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 + add x1, x1, 1688 mov w2, 2125 - add x1, x1, 1896 + adrp x0, .LC0 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L1102: +.L1106: adrp x19, .LANCHOR0 - mov w1, 0 add x19, x19, :lo12:.LANCHOR0 + mov w1, 0 mov w0, w20 bl ftl_erase_phy_blk - ldr x0, [x19,3392] - ldrh w0, [x0,130] + ldr x0, [x19, 3384] + ldrh w0, [x0, 130] bl ftl_free_sys_blk - ldr x0, [x19,3392] - strh w20, [x0,130] - strh wzr, [x0,140] + ldr x0, [x19, 3384] + strh w20, [x0, 130] + strh wzr, [x0, 140] mov w0, 0 - ldp x19, x20, [sp,16] + ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 32 ret .size ftl_ext_alloc_new_blk, .-ftl_ext_alloc_new_blk @@ -7084,88 +6871,88 @@ ftl_ext_alloc_new_blk: ftl_total_vpn_update: adrp x1, .LANCHOR3 add x3, x1, :lo12:.LANCHOR3 - ldrh w2, [x3,1952] - cbnz w0, .L1104 + ldrh w2, [x3, 1944] cmp w2, 4 - bhi .L1104 + bhi .L1109 + cbnz w0, .L1109 add w2, w2, 1 - strh w2, [x3,1952] - b .L1103 -.L1104: + strh w2, [x3, 1944] + ret +.L1109: add x1, x1, :lo12:.LANCHOR3 adrp x0, .LANCHOR0 + mov x2, 0 + mov w3, 0 mov w9, 65535 - strh wzr, [x1,1952] + strh wzr, [x1, 1944] add x1, x0, :lo12:.LANCHOR0 - ldrh w6, [x1,1088] - ldr x7, [x1,1112] - ldr x8, [x1,1096] - mov x1, 0 - mov w2, w1 - mov w3, w1 -.L1106: - cmp w6, w1, uxth - bls .L1114 - ldrh w4, [x7,x1,lsl 1] + ldrh w6, [x1, 1096] + ldr x8, [x1, 1104] + ldr x7, [x1, 1120] + mov w1, 0 +.L1111: + cmp w6, w2, uxth + bhi .L1114 + add x0, x0, :lo12:.LANCHOR0 + ldr x2, [x0, 1128] + ldr x0, [x0, 3384] + str w3, [x2, 524] + str w1, [x2, 528] + ldrh w0, [x0, 120] + cbz w0, .L1108 + udiv w1, w1, w0 + str w1, [x2, 532] +.L1108: + ret +.L1114: + ldrh w4, [x7, x2, lsl 1] cmp w4, w9 - beq .L1107 - add x5, x8, x1, lsl 2 - ldrb w5, [x5,2] + beq .L1112 + add x5, x8, x2, lsl 2 + ldrb w5, [x5, 2] and w5, w5, 224 cmp w5, 160 - bne .L1108 - add w2, w2, w4 - b .L1107 -.L1108: + bne .L1113 + add w1, w1, w4 +.L1112: + add x2, x2, 1 + b .L1111 +.L1113: add w3, w3, w4 -.L1107: - add x1, x1, 1 - b .L1106 -.L1114: - add x0, x0, :lo12:.LANCHOR0 - ldr x1, [x0,1120] - ldr x0, [x0,3392] - str w3, [x1,524] - str w2, [x1,528] - ldrh w0, [x0,120] - cbz w0, .L1103 - udiv w2, w2, w0 - str w2, [x1,532] -.L1103: - ret + b .L1112 .size ftl_total_vpn_update, .-ftl_total_vpn_update .align 2 .global ftl_debug_info_fill .type ftl_debug_info_fill, %function ftl_debug_info_fill: - adrp x3, .LANCHOR0+3360 - uxtb w0, w0 - stp x29, x30, [sp, -32]! - add x29, sp, 0 - ldrb w3, [x3,#:lo12:.LANCHOR0+3360] - str x19, [sp,16] + adrp x3, .LANCHOR3+1946 + ldrb w3, [x3, #:lo12:.LANCHOR3+1946] cmp w3, 8 - bls .L1116 - cmp w0, 2 - bne .L1117 - cbz x2, .L1117 + bls .L1123 + and w0, w0, 255 + cmp x2, 0 + ccmp w0, 2, 0, ne + bne .L1121 + stp x29, x30, [sp, -32]! + mov x0, x2 + add x29, sp, 0 + str x19, [sp, 16] mov x19, x1 mov w1, 21320 movk w1, 0x4841, lsl 16 - mov x0, x2 str w1, [x19] mov w1, 1024 bl js_hash - str w0, [x19,4] - b .L1116 -.L1117: - str wzr, [x1] - str wzr, [x1,4] -.L1116: + str w0, [x19, 4] mov w0, 0 - ldr x19, [sp,16] + ldr x19, [sp, 16] ldp x29, x30, [sp], 32 ret +.L1121: + stp wzr, wzr, [x1] +.L1123: + mov w0, 0 + ret .size ftl_debug_info_fill, .-ftl_debug_info_fill .align 2 .global ftl_vpn_update @@ -7173,88 +6960,88 @@ ftl_debug_info_fill: ftl_vpn_update: stp x29, x30, [sp, -32]! add x29, sp, 0 - str x19, [sp,16] - uxth w19, w0 + str x19, [sp, 16] + and w19, w0, 65535 mov w0, w19 - ubfiz x19, x19, 1, 16 bl zftl_list_update_data_list adrp x1, .LANCHOR0 add x1, x1, :lo12:.LANCHOR0 - ldr x0, [x1,1112] - ldrh w2, [x0,x19] - mov w0, 0 - cbnz w2, .L1125 + ubfiz x19, x19, 1, 16 + ldr x0, [x1, 1120] + ldrh w0, [x0, x19] + cbnz w0, .L1128 mov w0, 1 - str w0, [x1,3412] -.L1125: - ldr x19, [sp,16] + str w0, [x1, 3396] +.L1126: + ldr x19, [sp, 16] ldp x29, x30, [sp], 32 ret +.L1128: + mov w0, 0 + b .L1126 .size ftl_vpn_update, .-ftl_vpn_update .align 2 .global ftl_vpn_decrement .type ftl_vpn_decrement, %function ftl_vpn_decrement: - stp x29, x30, [sp, -48]! - uxth w1, w0 - mov w0, 65535 + stp x29, x30, [sp, -32]! add x29, sp, 0 - str x19, [sp,16] - cmp w1, w0 - beq .L1128 + stp x19, x20, [sp, 16] + and w20, w0, 65535 + mov w0, 65535 + cmp w20, w0 + beq .L1131 adrp x2, .LANCHOR0 - uxtw x0, w1 add x2, x2, :lo12:.LANCHOR0 - lsl x3, x0, 1 - ldr x4, [x2,1112] - ldrh w19, [x4,x3] - cbnz w19, .L1129 - ldr x2, [x2,1096] - add x0, x2, x0, lsl 2 - mov w2, w19 - ldrb w3, [x0,2] - adrp x0, .LC109 - add x0, x0, :lo12:.LC109 + uxtw x1, w20 + lsl x3, x1, 1 + ldr x4, [x2, 1120] + ldrh w0, [x4, x3] + cbnz w0, .L1132 + ldr x0, [x2, 1104] + mov w2, 0 + add x1, x0, x1, lsl 2 + adrp x0, .LC106 + add x0, x0, :lo12:.LC106 + ldrb w3, [x1, 2] + mov w1, w20 ubfx x3, x3, 5, 3 bl printk - b .L1135 -.L1129: - sub w19, w19, #1 - strh w19, [x4,x3] -.L1128: - adrp x19, .LANCHOR3 - mov w0, 0 - add x19, x19, :lo12:.LANCHOR3 - ldrh w2, [x19,1288] - cmp w2, w1 - beq .L1130 - mov w0, 65535 - cmp w2, w0 - bne .L1131 - strh w1, [x19,1288] -.L1135: +.L1137: mov w0, 0 b .L1130 +.L1132: + sub w0, w0, #1 + strh w0, [x4, x3] .L1131: - mov w0, w2 - str x1, [x29,40] + adrp x19, .LANCHOR3 + add x19, x19, :lo12:.LANCHOR3 + ldrh w0, [x19, 1280] + cmp w20, w0 + beq .L1137 + mov w1, 65535 + cmp w0, w1 + bne .L1134 + strh w20, [x19, 1280] + b .L1137 +.L1134: bl ftl_vpn_update - cmp w0, wzr - ldrh w3, [x19,1954] + cmp w0, 0 + ldrh w2, [x19, 1948] cset w0, ne - ldrh w2, [x19,1288] - add w3, w3, 1 - ldr x1, [x29,40] - strh w1, [x19,1288] - uxth w3, w3 - cmp w3, 7 - csel w3, w3, wzr, ls - strh w3, [x19,1954] - add x3, x19, w3, uxth 1 - strh w2, [x3,1296] + add x1, x19, 1288 + ldrh w3, [x19, 1280] + add w2, w2, 1 + strh w20, [x19, 1280] + and w2, w2, 65535 + cmp w2, 7 + csel w2, w2, wzr, ls + strh w2, [x19, 1948] + and x2, x2, 65535 + strh w3, [x1, x2, lsl 1] .L1130: - ldr x19, [sp,16] - ldp x29, x30, [sp], 48 + ldp x19, x20, [sp, 16] + ldp x29, x30, [sp], 32 ret .size ftl_vpn_decrement, .-ftl_vpn_decrement .align 2 @@ -7262,82 +7049,82 @@ ftl_vpn_decrement: .type lpa_hash_update_ppa, %function lpa_hash_update_ppa: adrp x3, .LANCHOR3 - uxtb w5, w0 add x6, x3, :lo12:.LANCHOR3 - uxth w2, w2 - add x4, x6, 1424 - stp x29, x30, [sp, -16]! - add x29, sp, 0 - ldr x8, [x6,1936] - ldr x12, [x6,1944] + add x5, x6, 1416 + and x4, x0, 255 + and w2, w2, 65535 + ldr x10, [x6, 1928] + ldrh w5, [x5, x4, lsl 1] + ldr x11, [x6, 1936] mov w6, 65535 - ldrh w4, [x4,w5,sxtw 1] - mov w11, w6 -.L1137: - cmp w4, w11 - beq .L1141 - uxtw x9, w4 - uxth x7, w4 - lsl x10, x9, 2 - add x13, x8, x10 - ldr w10, [x8,x10] - cmp w10, w0 - bne .L1138 - mov w4, -1 - str w4, [x13] - mov w4, 65535 - cmp w6, w4 - add x4, x3, :lo12:.LANCHOR3 - bne .L1139 - ldr x6, [x4,1944] - add x4, x4, 1424 - ldrh w6, [x6,x7,lsl 1] - strh w6, [x4,w5,sxtw 1] - b .L1140 -.L1139: - ldr x4, [x4,1944] - ldrh w8, [x4,x7,lsl 1] - strh w8, [x4,w6,uxtw 1] + mov w9, w6 .L1140: - add x4, x3, :lo12:.LANCHOR3 + cmp w5, w9 + beq .L1144 + uxtw x8, w5 + lsl x7, x8, 2 + add x12, x10, x7 + ldr w7, [x10, x7] + cmp w0, w7 + lsl x7, x8, 1 + bne .L1141 + mov w5, -1 + str w5, [x12] + cmp w6, w9 + add x5, x3, :lo12:.LANCHOR3 + bne .L1142 + ldr x6, [x5, 1936] + add x5, x5, 1416 + ldrh w6, [x6, x7] + strh w6, [x5, x4, lsl 1] +.L1143: + add x5, x3, :lo12:.LANCHOR3 mov w6, -1 - ldr x4, [x4,1944] - strh w6, [x4,x7,lsl 1] - b .L1141 -.L1138: - mov w6, w4 - ldrh w4, [x12,x9,lsl 1] - b .L1137 -.L1141: + ldr x5, [x5, 1936] + strh w6, [x5, x8, lsl 1] +.L1144: add x3, x3, :lo12:.LANCHOR3 - uxtw x4, w2 + uxtw x5, w2 cmn w1, #1 - ldr x6, [x3,1936] - str w0, [x6,x4,lsl 2] - add x0, x3, 1424 - ldrh w6, [x0,w5,sxtw 1] - strh w2, [x0,w5,sxtw 1] - ldr x0, [x3,1944] - strh w6, [x0,x4,lsl 1] - beq .L1143 - adrp x2, .LANCHOR0+1257 - ldrh w0, [x3,1312] - lsr w1, w1, w0 - ldrb w4, [x2,#:lo12:.LANCHOR0+1257] - mov w2, 24 - sub w2, w2, w4 - mov w4, 1 - sub w2, w2, w0 - ldrb w0, [x3,1314] - lsl w2, w4, w2 - sub w2, w2, #1 - and w1, w2, w1 + ldr x6, [x3, 1928] + str w0, [x6, x5, lsl 2] + add x0, x3, 1416 + ldrh w6, [x0, x4, lsl 1] + strh w2, [x0, x4, lsl 1] + ldr x0, [x3, 1936] + strh w6, [x0, x5, lsl 1] + beq .L1151 + stp x29, x30, [sp, -16]! + adrp x0, .LANCHOR0+1205 + add x29, sp, 0 + ldrb w2, [x0, #:lo12:.LANCHOR0+1205] + mov w0, 24 + ldrh w4, [x3, 1304] + sub w0, w0, w2 + sub w2, w0, w4 + mov w0, 1 + lsr w1, w1, w4 + lsl w0, w0, w2 + sub w0, w0, #1 + and w1, w0, w1 + ldrb w0, [x3, 1306] udiv w0, w1, w0 bl ftl_vpn_decrement -.L1143: mov w0, -1 ldp x29, x30, [sp], 16 ret +.L1142: + ldr x5, [x5, 1936] + ldrh w7, [x5, x7] + strh w7, [x5, w6, uxtw 1] + b .L1143 +.L1141: + mov w6, w5 + ldrh w5, [x11, x7] + b .L1140 +.L1151: + mov w0, -1 + ret .size lpa_hash_update_ppa, .-lpa_hash_update_ppa .align 2 .global ftl_mask_bad_block @@ -7345,64 +7132,64 @@ lpa_hash_update_ppa: ftl_mask_bad_block: stp x29, x30, [sp, -48]! adrp x6, .LANCHOR0 - mov w4, 1 - add x29, sp, 0 add x1, x6, :lo12:.LANCHOR0 - mov w3, 24 - stp x19, x20, [sp,16] - str x21, [sp,32] - adrp x7, .LANCHOR3 - add x7, x7, :lo12:.LANCHOR3 + adrp x3, .LANCHOR3 + add x29, sp, 0 + stp x19, x20, [sp, 16] + add x3, x3, :lo12:.LANCHOR3 + str x21, [sp, 32] + mov w7, 24 + mov w4, 1 mov x19, x6 - ldrb w1, [x1,1257] - sub w3, w3, w1 + ldrb w1, [x1, 1205] + ldrb w5, [x3, 1306] + ldrh w3, [x3, 1304] + sub w7, w7, w1 lsl w1, w4, w1 - lsr w2, w0, w3 sub w1, w1, #1 + lsr w2, w0, w7 and w1, w1, w2 - ldrb w5, [x7,1314] - uxtb w1, w1 + lsr w0, w0, w3 + sub w3, w7, w3 + and w1, w1, 255 cmp w5, 1 - mul w2, w1, w5 - uxtb w20, w2 - ldrh w2, [x7,1312] - sub w3, w3, w2 - lsr w0, w0, w2 lsl w3, w4, w3 sub w3, w3, #1 and w3, w3, w0 - uxth w4, w3 + and w4, w3, 65535 + mul w2, w1, w5 udiv w3, w3, w5 - uxth w21, w3 - bls .L1148 - sub w5, w5, #1 - and w5, w4, w5 - add w2, w20, w5 - uxtb w20, w2 -.L1148: + and w20, w2, 255 + and w21, w3, 65535 + bls .L1155 + sub w2, w5, #1 + and w2, w2, w4 + add w2, w20, w2 + and w20, w2, 255 +.L1155: adrp x0, .LANCHOR2 - ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 14, .L1149 - adrp x0, .LC110 + ldr w0, [x0, #:lo12:.LANCHOR2] + tbz x0, 14, .L1156 + adrp x0, .LC107 + and w3, w3, 65535 mov w2, w20 - add x0, x0, :lo12:.LC110 - uxth w3, w3 + add x0, x0, :lo12:.LC107 bl printk -.L1149: +.L1156: add x0, x19, :lo12:.LANCHOR0 - ldrh w1, [x0,1088] + ldrh w1, [x0, 1096] cmp w1, w21 - bls .L1147 - ldr x0, [x0,1096] + bls .L1154 + ldr x0, [x0, 1104] mov w2, 1 - add x21, x0, w21, uxth 2 - ldrb w0, [x21,3] lsl w2, w2, w20 - orr w2, w2, w0 - strb w2, [x21,3] -.L1147: - ldp x19, x20, [sp,16] - ldr x21, [sp,32] + add x21, x0, w21, uxth 2 + ldrb w20, [x21, 3] + orr w2, w2, w20 + strb w2, [x21, 3] +.L1154: + ldp x19, x20, [sp, 16] + ldr x21, [sp, 32] ldp x29, x30, [sp], 48 ret .size ftl_mask_bad_block, .-ftl_mask_bad_block @@ -7410,112 +7197,109 @@ ftl_mask_bad_block: .global gc_free_bad_sblk .type gc_free_bad_sblk, %function gc_free_bad_sblk: - stp x29, x30, [sp, -112]! + stp x29, x30, [sp, -96]! add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x20, .LANCHOR0 - stp x23, x24, [sp,48] - uxth w24, w0 - add x0, x20, :lo12:.LANCHOR0 - stp x27, x28, [sp,80] - stp x21, x22, [sp,32] - stp x25, x26, [sp,64] - mov w27, 0 - ldr w0, [x0,5624] - cbz w0, .L1171 - adrp x22, .LANCHOR3 - adrp x21, .LC111 - add x0, x21, :lo12:.LC111 - mov x23, x22 - mov w25, 24 - str x0, [x29,104] -.L1172: - add x2, x22, :lo12:.LANCHOR3 - ldrb w0, [x2,1329] - cmp w0, w27 - bls .L1171 - add x4, x20, :lo12:.LANCHOR0 - ldrb w3, [x2,1314] - ldrh w2, [x2,1312] - cmp w3, 1 - ldrb w19, [x4,1257] - uxth w1, w3 - sdiv w0, w27, w3 - sub w19, w25, w19 - sub w19, w19, w2 - lsl w19, w0, w19 - madd w19, w24, w1, w19 - uxth w19, w19 - bls .L1156 - sub w1, w1, #1 - and w1, w27, w1 - add w19, w19, w1 - uxth w19, w19 -.L1156: - add x21, x20, :lo12:.LANCHOR0 + stp x23, x24, [sp, 48] + adrp x24, .LANCHOR0 + add x24, x24, :lo12:.LANCHOR0 + stp x21, x22, [sp, 32] + and w22, w0, 65535 + stp x19, x20, [sp, 16] + stp x25, x26, [sp, 64] + ldr w0, [x24, 5616] + str x27, [sp, 80] + cbz w0, .L1177 + mov w23, 20041 + add x27, x24, 3416 mov w26, 0 - add x28, x21, 3424 -.L1157: - ldr w0, [x28,2200] - cmp w26, w0 - bcs .L1173 - add x0, x28, w26, sxtw 1 - ldrh w0, [x0,2204] + movk w23, 0x444b, lsl 16 +.L1164: + adrp x21, .LANCHOR3 + add x2, x21, :lo12:.LANCHOR3 + ldrb w0, [x2, 1321] + cmp w0, w26 + bhi .L1174 +.L1177: + mov w0, 0 + ldr x27, [sp, 80] + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] + ldp x29, x30, [sp], 96 + ret +.L1174: + ldrb w3, [x2, 1306] + mov w1, 24 + ldrb w4, [x24, 1205] + ldrh w2, [x2, 1304] + and w0, w3, 65535 + sub w1, w1, w4 + cmp w3, 1 + sdiv w19, w26, w3 + sub w1, w1, w2 + lsl w19, w19, w1 + madd w19, w22, w0, w19 + and w19, w19, 65535 + bls .L1165 + sub w0, w0, #1 + and w0, w0, w26 + add w19, w19, w0 + and w19, w19, 65535 +.L1165: + adrp x25, .LC108 + add x25, x25, :lo12:.LC108 + mov w20, 0 +.L1166: + ldr w0, [x27, 2200] + cmp w20, w0 + bcc .L1173 + add w26, w26, 1 + and w26, w26, 65535 + b .L1164 +.L1173: + add x0, x27, w20, sxtw 1 + ldrh w0, [x0, 2204] cmp w0, w19 - bne .L1158 - ldr x0, [x29,104] + bne .L1167 mov w1, w19 + mov x0, x25 bl printk - add x0, x23, :lo12:.LANCHOR3 - ldrb w1, [x0,1956] - cbnz w1, .L1159 - ldrb w0, [x0,1330] - cbz w0, .L1160 -.L1159: - ldr x0, [x21,3392] - ldr w1, [x0,156] - mov w0, 20041 - movk w0, 0x444b, lsl 16 - cmp w1, w0 - beq .L1161 -.L1160: - add x0, x23, :lo12:.LANCHOR3 - ldrh w0, [x0,1312] + add x0, x21, :lo12:.LANCHOR3 + ldrb w1, [x0, 1950] + cbnz w1, .L1168 + ldrb w0, [x0, 1322] + cbz w0, .L1169 +.L1168: + ldr x0, [x24, 3384] + ldr w0, [x0, 156] + cmp w0, w23 + beq .L1170 +.L1169: + add x0, x21, :lo12:.LANCHOR3 + ldrh w0, [x0, 1304] lsl w0, w19, w0 bl ftl_mask_bad_block -.L1161: - ldr w1, [x28,2200] - mov w0, w26 -.L1162: - cmp w0, w1 - bcs .L1174 - add w2, w0, 1 - add x0, x28, w0, sxtw 1 - add x4, x28, w2, sxtw 1 - ldrh w4, [x4,2204] - strh w4, [x0,2204] - uxth w0, w2 - b .L1162 -.L1174: - sub w1, w1, #1 - str w1, [x28,2200] -.L1158: - add w26, w26, 1 - uxth w26, w26 - b .L1157 -.L1173: - add w27, w27, 1 - uxth w27, w27 - b .L1172 +.L1170: + ldr w1, [x27, 2200] + mov w0, w20 .L1171: - mov w0, 0 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 112 - ret + cmp w0, w1 + bcc .L1172 + sub w1, w1, #1 + str w1, [x27, 2200] +.L1167: + add w20, w20, 1 + and w20, w20, 65535 + b .L1166 +.L1172: + add w2, w0, 1 + add x0, x27, w0, sxtw 1 + add x3, x27, w2, sxtw 1 + ldrh w3, [x3, 2204] + strh w3, [x0, 2204] + and w0, w2, 65535 + b .L1171 .size gc_free_bad_sblk, .-gc_free_bad_sblk .align 2 .global ftl_free_sblk @@ -7523,202 +7307,201 @@ gc_free_bad_sblk: ftl_free_sblk: stp x29, x30, [sp, -64]! add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] adrp x20, .LANCHOR0 - add x4, x20, :lo12:.LANCHOR0 - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - uxth x24, w0 - ldr x5, [x4,1096] + add x3, x20, :lo12:.LANCHOR0 + stp x21, x22, [sp, 32] + stp x23, x24, [sp, 48] + and x24, x0, 65535 lsl x19, x24, 2 mov x22, x24 - add x21, x5, x19 - ldrb w2, [x21,2] - ubfx x23, x2, 5, 3 - tbz x2, 3, .L1176 - ldr x6, [x4,3392] - ldrh w0, [x5,x19] - ldr w3, [x5,x19] - ldrh w7, [x6,74] - and w1, w0, 2047 - ldrh w6, [x6,72] - ubfx x8, x3, 11, 8 - add w7, w1, w7 - ldrh w3, [x4,1104] - add w6, w8, w6 - uxth w0, w7 - uxth w7, w6 - adrp x6, .LANCHOR3 - add x6, x6, :lo12:.LANCHOR3 - udiv w9, w0, w3 - ldrh w10, [x6,1958] - add w9, w7, w9 + ldr x4, [x3, 1104] + add x21, x4, x19 + ldrb w0, [x21, 2] + ubfx x23, x0, 5, 3 + tbz x0, 3, .L1184 + ldr x5, [x3, 3384] + ldr w2, [x4, x19] + ldrh w1, [x4, x19] + ldrh w6, [x5, 74] + and w1, w1, 2047 + ubfx x7, x2, 11, 8 + ldrh w2, [x3, 1112] + add w6, w1, w6 + and w8, w6, 65535 + ldrh w6, [x5, 72] + adrp x5, .LANCHOR3 + add x5, x5, :lo12:.LANCHOR3 + add w6, w7, w6 + udiv w9, w8, w2 + and w6, w6, 65535 + ldrh w10, [x5, 1952] + add w9, w9, w6 cmp w9, w10 - ble .L1177 - ldrh w0, [x4,3378] - ldrh w7, [x4,3386] - add w7, w7, w0 - ldrh w0, [x6,1390] - add w0, w0, 8 - cmp w7, w0 - blt .L1183 - ldrh w0, [x4,3376] - ldrh w7, [x4,3382] - add w7, w7, w0 - ldrh w0, [x4,3384] - add w4, w7, w0 - ldrh w0, [x6,1388] - add w0, w0, 8 - cmp w4, w0 - b .L1197 -.L1177: - madd w7, w7, w3, w0 - ldrh w0, [x6,1960] - cmp w7, w0 - ble .L1179 - ldrh w0, [x4,3376] - ldrh w7, [x4,3382] - add w7, w7, w0 - ldrh w0, [x4,3384] - add w7, w7, w0 - ldrh w0, [x6,1388] - add w9, w0, 8 - cmp w7, w9 - blt .L1195 - ldrh w9, [x4,3386] - ldrh w4, [x4,3378] - add w9, w9, w4 - ldrh w4, [x6,1390] - add w4, w4, 8 - cmp w9, w4 - blt .L1183 - add w0, w0, 24 - cmp w7, w0 -.L1197: - bge .L1183 -.L1195: - and w2, w2, -25 - b .L1194 -.L1183: - mov w0, 2 - bfi w2, w0, 3, 2 -.L1194: - strb w2, [x21,2] -.L1179: - ldrb w0, [x21,2] - ands w0, w0, 24 - bne .L1184 - mul w0, w8, w3 - lsr w3, w8, 3 - add w0, w0, w0, lsl 1 - add w0, w1, w0, lsr 2 - ldrh w1, [x5,x19] - bfi w1, w0, 0, 11 - strh w1, [x5,x19] - ldr w0, [x5,x19] - bfi w0, w3, 11, 8 - str w0, [x5,x19] - b .L1185 -.L1184: - cmp w0, 16 - bne .L1185 - sdiv w3, w1, w3 - ldr w0, [x5,x19] - add w3, w3, w3, lsl 1 - add w3, w8, w3, lsr 2 - bfi w0, w3, 11, 8 - asr w3, w1, 5 - str w0, [x5,x19] - bfi w0, w3, 0, 11 - strh w0, [x5,x19] - b .L1185 -.L1176: - tst w2, 24 - bne .L1185 - ldrh w0, [x4,3380] - cbnz w0, .L1185 - ldrh w0, [x4,3378] - cmp w0, 15 - bhi .L1185 - ldrh w1, [x4,3376] - ldrh w6, [x4,3382] - add w6, w6, w1 - ldrh w1, [x4,3384] - add w6, w6, w1 - adrp x1, .LANCHOR3 - add x1, x1, :lo12:.LANCHOR3 - ldrh w3, [x1,1388] - add w3, w3, 16 - cmp w6, w3 ble .L1185 - ldrh w3, [x4,3386] - ldrh w1, [x1,1390] - add w0, w3, w0 - add w1, w1, 8 - cmp w0, w1 - bge .L1185 - mov w0, 2 - bfi w2, w0, 3, 2 - strb w2, [x21,2] - ldrh w2, [x4,1104] - ldrh w0, [x5,x19] - and w0, w0, 2047 - sdiv w2, w0, w2 - asr w0, w0, 5 - add w3, w2, w2, lsl 1 - ldr w2, [x5,x19] - ubfx x1, x2, 11, 8 - add w3, w1, w3, lsr 2 - bfi w2, w3, 11, 8 - str w2, [x5,x19] - bfi w2, w0, 0, 11 - strh w2, [x5,x19] + ldrh w6, [x3, 3370] + ldrh w8, [x3, 3378] + add w8, w8, w6 + ldrh w6, [x5, 1382] + add w6, w6, 8 + cmp w8, w6 + bge .L1186 +.L1191: + mov w3, 2 + bfi w0, w3, 3, 2 + b .L1203 +.L1186: + ldrh w6, [x3, 3374] + ldrh w8, [x3, 3368] + ldrh w5, [x5, 1380] + ldrh w3, [x3, 3376] + add w6, w6, w8 + add w5, w5, 8 + add w3, w6, w3 + cmp w3, w5 +.L1207: + bge .L1191 + b .L1205 .L1185: + madd w6, w2, w6, w8 + ldrh w8, [x5, 1954] + cmp w6, w8 + ble .L1187 + ldrh w8, [x3, 3368] + ldrh w6, [x3, 3374] + add w6, w6, w8 + ldrh w8, [x3, 3376] + add w6, w6, w8 + ldrh w8, [x5, 1380] + add w9, w8, 8 + cmp w6, w9 + bge .L1189 +.L1205: + and w0, w0, -25 +.L1203: + strb w0, [x21, 2] +.L1187: + ldrb w0, [x21, 2] + ands w0, w0, 24 + bne .L1192 + mul w2, w7, w2 + ldrh w0, [x4, x19] + add w2, w2, w2, lsl 1 + add w1, w1, w2, lsr 2 + lsr w2, w7, 3 + bfi w0, w1, 0, 11 + strh w0, [x4, x19] + ldr w0, [x4, x19] + bfi w0, w2, 11, 8 + str w0, [x4, x19] +.L1193: mov w0, w22 - add w23, w23, 6 - and w23, w23, 7 bl zftl_remove_data_node add x1, x20, :lo12:.LANCHOR0 + add w23, w23, 6 + and w23, w23, 7 cmp w23, 4 - ldr x2, [x1,1096] - add x2, x2, x19 - ldrb w0, [x2,2] + ldr x0, [x1, 1104] + add x19, x0, x19 + ldrb w0, [x19, 2] and w0, w0, 31 - strb w0, [x2,2] - ldr x0, [x1,1112] - strh wzr, [x0,x24,lsl 1] - bhi .L1188 + strb w0, [x19, 2] + ldr x0, [x1, 1120] + strh wzr, [x0, x24, lsl 1] + bhi .L1196 mov w0, w22 bl gc_free_bad_sblk -.L1188: - ldrb w0, [x21,2] - tbz x0, 3, .L1189 +.L1196: + ldrb w0, [x21, 2] + tbz x0, 3, .L1197 add x20, x20, :lo12:.LANCHOR0 - ldr x0, [x20,1120] - ldrh w1, [x0,586] + ldr x0, [x20, 1128] + ldrh w1, [x0, 586] cmp w1, w22 - bne .L1189 + bne .L1197 mov w1, -1 - ldrh w2, [x0,590] - strh w1, [x0,586] + ldrh w2, [x0, 590] + strh w1, [x0, 586] mov w1, 65535 cmp w2, w1 - bne .L1189 - strh w22, [x0,590] - adrp x0, .LC112 + bne .L1197 + strh w22, [x0, 590] mov w1, w22 - add x0, x0, :lo12:.LC112 + adrp x0, .LC109 + add x0, x0, :lo12:.LC109 bl printk - b .L1175 -.L1189: - mov w0, w22 - bl zftl_insert_free_list -.L1175: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] +.L1183: + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] ldp x29, x30, [sp], 64 ret +.L1189: + ldrh w9, [x3, 3378] + ldrh w3, [x3, 3370] + add w9, w9, w3 + ldrh w3, [x5, 1382] + add w3, w3, 8 + cmp w9, w3 + blt .L1191 + add w8, w8, 24 + cmp w6, w8 + b .L1207 +.L1192: + cmp w0, 16 + bne .L1193 + sdiv w2, w1, w2 + ldr w0, [x4, x19] + add w2, w2, w2, lsl 1 + add w2, w7, w2, lsr 2 +.L1204: + bfi w0, w2, 11, 8 + asr w1, w1, 5 + str w0, [x4, x19] + bfi w0, w1, 0, 11 + strh w0, [x4, x19] + b .L1193 +.L1184: + tst w0, 24 + bne .L1193 + ldrh w1, [x3, 3372] + cbnz w1, .L1193 + ldrh w7, [x3, 3370] + cmp w7, 15 + bhi .L1193 + ldrh w2, [x3, 3368] + ldrh w1, [x3, 3374] + add w1, w1, w2 + ldrh w2, [x3, 3376] + add w1, w1, w2 + adrp x2, .LANCHOR3 + add x2, x2, :lo12:.LANCHOR3 + ldrh w6, [x2, 1380] + add w6, w6, 16 + cmp w1, w6 + ble .L1193 + ldrh w5, [x3, 3378] + ldrh w1, [x2, 1382] + add w5, w5, w7 + add w1, w1, 8 + cmp w5, w1 + bge .L1193 + mov w1, 2 + bfi w0, w1, 3, 2 + strb w0, [x21, 2] + ldrh w0, [x3, 1112] + ldrh w1, [x4, x19] + and w1, w1, 2047 + sdiv w0, w1, w0 + add w2, w0, w0, lsl 1 + ldr w0, [x4, x19] + ubfx x3, x0, 11, 8 + add w2, w3, w2, lsr 2 + b .L1204 +.L1197: + mov w0, w22 + bl zftl_insert_free_list + b .L1183 .size ftl_free_sblk, .-ftl_free_sblk .align 2 .global gc_free_src_blk @@ -7726,234 +7509,231 @@ ftl_free_sblk: gc_free_src_blk: stp x29, x30, [sp, -80]! add x29, sp, 0 - stp x23, x24, [sp,48] - stp x21, x22, [sp,32] - adrp x23, .LANCHOR0 - adrp x21, .LANCHOR1 - add x23, x23, :lo12:.LANCHOR0 - add x21, x21, :lo12:.LANCHOR1 - stp x19, x20, [sp,16] - stp x25, x26, [sp,64] + stp x21, x22, [sp, 32] + adrp x22, .LANCHOR0 + stp x23, x24, [sp, 48] + add x24, x22, :lo12:.LANCHOR0 + adrp x23, .LC110 + add x21, x24, 3416 + add x23, x23, :lo12:.LC110 + stp x19, x20, [sp, 16] + stp x25, x26, [sp, 64] mov w20, 0 - add x24, x23, 3424 - add x21, x21, 1920 -.L1199: - ldrh w0, [x24,56] - adrp x25, .LANCHOR0 +.L1209: + ldrh w0, [x21, 56] cmp w0, w20 - bls .L1237 - add x0, x24, w20, sxtw 1 - ldrh w22, [x0,58] - ldr x0, [x23,1112] - lsl x26, x22, 1 - mov x19, x22 - ldrh w2, [x0,x26] - cbz w2, .L1200 - adrp x0, .LC113 - mov w1, w22 - add x0, x0, :lo12:.LC113 + bhi .L1224 + strh wzr, [x21, 56] + 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 +.L1224: + add x0, x21, w20, sxtw 1 + ldrh w25, [x0, 58] + ldr x0, [x24, 1120] + mov x19, x25 + lsl x26, x25, 1 + ldrh w2, [x0, x26] + cbz w2, .L1210 + mov w1, w25 + mov x0, x23 bl printk -.L1200: - add x0, x25, :lo12:.LANCHOR0 - ldr x1, [x0,1112] - strh wzr, [x1,x26] - ldr x1, [x0,1112] - ldrh w1, [x1,x26] - cbnz w1, .L1201 - ldr x0, [x0,1096] - add x22, x0, x22, lsl 2 +.L1210: + add x0, x22, :lo12:.LANCHOR0 + ldr x1, [x0, 1120] + strh wzr, [x1, x26] + ldr x1, [x0, 1120] + ldrh w1, [x1, x26] + cbnz w1, .L1211 + ldr x0, [x0, 1104] + add x25, x0, x25, lsl 2 adrp x0, .LANCHOR2 - ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 8, .L1202 - ldrb w2, [x22,2] - adrp x0, .LC114 - add x0, x0, :lo12:.LC114 + ldr w0, [x0, #:lo12:.LANCHOR2] + tbz x0, 8, .L1212 + ldrb w2, [x25, 2] + adrp x0, .LC111 mov w1, w19 + add x0, x0, :lo12:.LC111 ubfx x2, x2, 5, 3 bl printk -.L1202: - ldrb w0, [x22,2] +.L1212: + ldrb w0, [x25, 2] + and w1, w0, 224 + cmp w1, 224 + beq .L1213 tst w0, 192 - beq .L1215 - and w0, w0, 224 - cmp w0, 224 - bne .L1203 -.L1215: - adrp x0, .LC0 - mov x1, x21 + bne .L1214 +.L1213: + adrp x1, .LANCHOR1 + add x1, x1, :lo12:.LANCHOR1 + add x1, x1, 1712 mov w2, 1363 + adrp x0, .LC0 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L1203: +.L1214: mov w0, w19 - add x25, x25, :lo12:.LANCHOR0 bl ftl_free_sblk - ldr x2, [x25,1120] - ldrh w1, [x2,124] - cbz w1, .L1205 - mov x0, 0 -.L1207: - add x4, x2, x0, lsl 1 - mov w3, w0 - ldrh w4, [x4,392] + add x0, x22, :lo12:.LANCHOR0 + ldr x0, [x0, 1128] + ldrh w2, [x0, 124] + cbz w2, .L1215 + add x3, x0, 392 + mov w1, 0 +.L1217: + ldrh w4, [x3] cmp w4, w19 - bne .L1206 - add x0, x2, w3, sxtw 1 + bne .L1216 + add x1, x0, w1, sxtw 1 mov w3, -1 - strh w3, [x0,392] - sub w1, w1, #1 - strh w1, [x2,124] - b .L1205 -.L1206: - add x0, x0, 1 - cmp x0, 64 - bne .L1207 -.L1205: - ldrh w1, [x2,120] - cbz w1, .L1208 - mov x0, 0 -.L1210: - add x4, x2, x0, lsl 1 - mov w3, w0 - ldrh w4, [x4,136] + sub w2, w2, #1 + strh w3, [x1, 392] + strh w2, [x0, 124] +.L1215: + ldrh w2, [x0, 120] + cbz w2, .L1218 + add x3, x0, 136 + mov w1, 0 +.L1220: + ldrh w4, [x3] cmp w4, w19 - bne .L1209 - add x0, x2, w3, sxtw 1 + bne .L1219 + add x1, x0, w1, sxtw 1 mov w3, -1 - strh w3, [x0,136] - sub w1, w1, #1 - strh w1, [x2,120] - b .L1208 -.L1209: - add x0, x0, 1 - cmp x0, 64 - bne .L1210 -.L1208: - ldrh w1, [x2,122] - cbz w1, .L1211 - mov x0, 0 -.L1213: - add x4, x2, x0, lsl 1 - mov w3, w0 - ldrh w4, [x4,264] + sub w2, w2, #1 + strh w3, [x1, 136] + strh w2, [x0, 120] +.L1218: + ldrh w2, [x0, 122] + cbz w2, .L1221 + add x3, x0, 264 + mov w1, 0 +.L1223: + ldrh w4, [x3] cmp w4, w19 - bne .L1212 - add x0, x2, w3, sxtw 1 + bne .L1222 + add x1, x0, w1, sxtw 1 mov w3, -1 - strh w3, [x0,264] - sub w1, w1, #1 - strh w1, [x2,122] - b .L1211 -.L1212: - add x0, x0, 1 - cmp x0, 64 - bne .L1213 - b .L1211 -.L1201: - mov w0, w19 - mov w1, 1 - mov w2, 0 - bl gc_add_sblk -.L1211: + sub w2, w2, #1 + strh w3, [x1, 264] + strh w2, [x0, 122] +.L1221: add w20, w20, 1 - uxth w20, w20 - b .L1199 -.L1237: - strh wzr, [x24,56] - 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 + and w20, w20, 65535 + b .L1209 +.L1216: + add w1, w1, 1 + add x3, x3, 2 + cmp w1, 64 + bne .L1217 + b .L1215 +.L1219: + add w1, w1, 1 + add x3, x3, 2 + cmp w1, 64 + bne .L1220 + b .L1218 +.L1222: + add w1, w1, 1 + add x3, x3, 2 + cmp w1, 64 + bne .L1223 + b .L1221 +.L1211: + mov w2, 0 + mov w1, 1 + mov w0, w19 + bl gc_add_sblk + b .L1221 .size gc_free_src_blk, .-gc_free_src_blk .align 2 .global print_ftl_debug_info .type print_ftl_debug_info, %function print_ftl_debug_info: sub sp, sp, #64 - stp x29, x30, [sp,32] + stp x29, x30, [sp, 32] add x29, sp, 32 - str x19, [sp,48] + str x19, [sp, 48] adrp x19, .LANCHOR0 add x19, x19, :lo12:.LANCHOR0 - ldr x2, [x19,3392] - ldr x0, [x19,1120] - ldrh w8, [x19,3386] - ldrh w1, [x2,148] - ldrh w2, [x2,146] - str w8, [sp] - ldrh w6, [x19,3382] - ldr w8, [x0,524] - str w8, [sp,8] - ldrh w7, [x19,3384] - ldr w0, [x0,528] - str w0, [sp,16] - ldr w0, [x19,3372] - ldrh w3, [x19,3376] - ldrh w4, [x19,3378] - ldrh w5, [x19,3380] - str w0, [sp,24] + ldr x1, [x19, 3384] + ldr x0, [x19, 1128] + ldr w8, [x19, 3364] + ldrh w7, [x19, 3376] + ldrh w2, [x1, 146] + ldrh w1, [x1, 148] + str w8, [sp, 24] + ldrh w6, [x19, 3374] + ldr w8, [x0, 528] + str w8, [sp, 16] + ldrh w5, [x19, 3372] + ldr w0, [x0, 524] + ldrh w4, [x19, 3370] + ldrh w3, [x19, 3368] + str w0, [sp, 8] + ldrh w0, [x19, 3378] + str w0, [sp] + adrp x0, .LC112 + add x0, x0, :lo12:.LC112 + bl printk + ldr x0, [x19, 3384] + ldrb w3, [x19, 3380] + ldr w4, [x0, 8] + ldr w5, [x0, 64] + ldr w1, [x0, 20] + ldr w2, [x0, 28] + adrp x0, .LC113 + add x0, x0, :lo12:.LC113 + bl printk + ldr x0, [x19, 3384] + ldr w1, [x0, 52] + ldr w2, [x0, 60] + ldr w3, [x0, 16] + adrp x0, .LC114 + add x0, x0, :lo12:.LC114 + lsr w3, w3, 11 + bl printk + ldr x0, [x19, 3384] + ldrh w2, [x0, 98] + ldrh w6, [x0, 72] + ldrh w5, [x0, 96] + ldrh w4, [x0, 92] + ldrh w3, [x0, 88] + ldrh w1, [x0, 74] + str w2, [sp, 16] + ldrh w2, [x0, 94] + str w2, [sp, 8] + ldrh w2, [x0, 90] + str w2, [sp] + ldp w7, w2, [x0, 80] adrp x0, .LC115 add x0, x0, :lo12:.LC115 bl printk - ldr x5, [x19,3392] + ldrh w5, [x19, 3392] adrp x0, .LC116 - ldrb w3, [x19,3389] + ldrh w4, [x19, 3400] add x0, x0, :lo12:.LC116 - ldr w4, [x5,8] - ldr w1, [x5,20] - ldr w2, [x5,28] - ldr w5, [x5,64] + ldrh w3, [x19, 3402] + ldrh w2, [x19, 3404] + ldrh w1, [x19, 3406] bl printk - ldr x2, [x19,3392] + ldr x0, [x19, 1128] + ldr x1, [x19, 3384] + ldrh w4, [x0, 590] + ldrh w6, [x1, 150] + ldrh w3, [x0, 588] + ldrh w2, [x0, 586] + ldr w5, [x1, 156] + ldrh w1, [x0, 584] adrp x0, .LC117 add x0, x0, :lo12:.LC117 - ldr w3, [x2,16] - ldr w1, [x2,52] - ldr w2, [x2,60] - lsr w3, w3, 11 bl printk - ldr x7, [x19,3392] - ldrh w0, [x7,90] - ldrh w6, [x7,72] - ldrh w1, [x7,74] - ldrh w3, [x7,88] - ldrh w4, [x7,92] - ldrh w5, [x7,96] - str w0, [sp] - ldrh w0, [x7,94] - str w0, [sp,8] - ldrh w0, [x7,98] - str w0, [sp,16] - adrp x0, .LC118 - add x0, x0, :lo12:.LC118 - ldr w2, [x7,84] - ldr w7, [x7,80] - bl printk - ldrh w1, [x19,3402] - adrp x0, .LC119 - ldrh w2, [x19,3404] - add x0, x0, :lo12:.LC119 - ldrh w3, [x19,3406] - ldrh w4, [x19,3408] - ldrh w5, [x19,3400] - bl printk - ldr x4, [x19,1120] - adrp x0, .LC120 - ldr x6, [x19,3392] - add x0, x0, :lo12:.LC120 - ldrh w1, [x4,584] - ldrh w2, [x4,586] - ldrh w3, [x4,588] - ldr w5, [x6,156] - ldrh w4, [x4,590] - ldrh w6, [x6,150] - bl printk - sub sp, x29, #32 - ldr x19, [sp,48] - ldp x29, x30, [sp,32] + ldr x19, [sp, 48] + ldp x29, x30, [sp, 32] add sp, sp, 64 ret .size print_ftl_debug_info, .-print_ftl_debug_info @@ -7963,200 +7743,197 @@ print_ftl_debug_info: ftl_write_buf: stp x29, x30, [sp, -48]! add x29, sp, 0 - stp x19, x20, [sp,16] - str x21, [sp,32] - mov x20, x0 - cbnz x0, .L1240 + stp x19, x20, [sp, 16] + str x21, [sp, 32] + cbnz x0, .L1250 adrp x1, .LANCHOR1 - adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - mov w2, 810 - add x1, x1, 1936 + add x1, x1, 1728 + mov w2, 811 + adrp x0, .LC0 add x0, x0, :lo12:.LC0 bl printk bl dump_stack bl print_ftl_debug_info mov w0, -1 +.L1249: + ldp x19, x20, [sp, 16] + ldr x21, [sp, 32] + ldp x29, x30, [sp], 48 + ret +.L1253: + add x19, x19, :lo12:.LANCHOR0 + mov x1, x20 + add x0, x19, 3408 + bl buf_add_tail + ldrb w3, [x20, 56] + ldr x1, [x19, 3384] + ldrb w0, [x19, 3381] + add w0, w0, 1 + ldr w2, [x1, 16] + and w0, w0, 255 + strb w0, [x19, 3381] + add w2, w2, w3 + str w2, [x1, 16] + ldr w2, [x1, 32] + add w2, w2, 1 + str w2, [x1, 32] b .L1249 -.L1240: - adrp x19, .LANCHOR0 - ldrb w1, [x20,56] - add x0, x19, :lo12:.LANCHOR0 - ldrb w0, [x0,3360] - cmp w1, w0 - bls .L1245 +.L1250: + mov x20, x0 + adrp x0, .LANCHOR3 + add x1, x0, :lo12:.LANCHOR3 + mov x21, x0 + ldrb w2, [x20, 56] + ldrb w1, [x1, 1946] + cmp w2, w1 + bls .L1255 adrp x1, .LANCHOR1 - adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - mov w2, 817 - add x1, x1, 1936 + add x1, x1, 1728 + mov w2, 818 + adrp x0, .LC0 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L1245: - ldrb w0, [x20,56] - cbz w0, .L1242 - add x21, x19, :lo12:.LANCHOR0 - ldrb w1, [x21,3360] - cmp w1, w0 - bcs .L1243 -.L1242: - mov x0, x20 +.L1255: + ldrb w1, [x20, 56] + adrp x19, .LANCHOR0 + cbz w1, .L1252 + add x0, x21, :lo12:.LANCHOR3 + ldrb w0, [x0, 1946] + cmp w0, w1 + bcs .L1253 +.L1252: add x19, x19, :lo12:.LANCHOR0 + mov x0, x20 bl zbuf_free - ldrb w0, [x19,3388] + ldrb w0, [x19, 3381] b .L1249 -.L1243: - add x0, x21, 3416 - mov x1, x20 - bl buf_add_tail - ldr x0, [x21,3392] - ldrb w1, [x20,56] - ldrb w2, [x21,3388] - ldr w3, [x0,16] - add w2, w2, 1 - add w1, w3, w1 - str w1, [x0,16] - ldr w1, [x0,32] - uxtb w2, w2 - strb w2, [x21,3388] - add w1, w1, 1 - str w1, [x0,32] - mov w0, w2 -.L1249: - ldp x19, x20, [sp,16] - ldr x21, [sp,32] - ldp x29, x30, [sp], 48 - ret .size ftl_write_buf, .-ftl_write_buf .align 2 .global ftl_write_completed .type ftl_write_completed, %function ftl_write_completed: - stp x29, x30, [sp, -64]! + stp x29, x30, [sp, -80]! add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x19, .LANCHOR0 - add x19, x19, :lo12:.LANCHOR0 - stp x21, x22, [sp,32] - add x21, x19, 1312 - mov x20, x19 - stp x23, x24, [sp,48] - mov x22, x21 - mov w23, 0 -.L1251: - ldrb w2, [x19,3366] - cmp w2, 255 - beq .L1266 - lsl x0, x2, 6 - add x24, x21, x0 - ldrb w0, [x21,x0] - strb w0, [x19,3366] - ldr w0, [x24,52] - cmn w0, #1 - bne .L1252 - adrp x0, .LANCHOR3 - add x1, x0, :lo12:.LANCHOR3 - ldrb w3, [x1,1956] - cbnz w3, .L1253 - ldrb w1, [x1,1330] - cbz w1, .L1254 -.L1253: - ldr x1, [x20,3392] - ldr w3, [x1,156] - mov w1, 20041 - movk w1, 0x444b, lsl 16 - cmp w3, w1 - beq .L1255 -.L1254: - add x0, x0, :lo12:.LANCHOR3 - ldrb w4, [x20,1257] - mov w3, 24 - add x5, x22, x2, lsl 6 - sub w4, w3, w4 - mov w3, 1 - ldrh w1, [x0,1312] - add x5, x5, 32 - ldrb w0, [x0,1314] - sub w4, w4, w1 - lsl w4, w3, w4 - ldr w3, [x5,8] - sub w4, w4, #1 - lsr w1, w3, w1 - mov w3, 65535 - and w1, w4, w1 - udiv w1, w1, w0 - ldr x0, [x20,1120] - ldr w4, [x0,560] - cmp w4, w3 - uxth w23, w1 - and w1, w1, w3 - bne .L1256 - str w1, [x0,560] - ldr w3, [x5,8] - str w3, [x0,564] -.L1256: - add x2, x22, x2, lsl 6 - adrp x0, .LC121 - add x3, x2, 32 - add x0, x0, :lo12:.LC121 - ldr w2, [x2,36] - ldr w3, [x3,8] - bl printk - ldr x0, [x20,1120] - ldr w1, [x0,556] - add w1, w1, 1 - str w1, [x0,556] - ldrh w1, [x0,16] - cmp w1, w23 - bne .L1257 - strh wzr, [x0,22] - b .L1255 -.L1257: - ldrh w1, [x0,48] - cmp w1, w23 - bne .L1255 - strh wzr, [x0,54] -.L1255: - mov x0, x24 - mov w23, 1 - bl ftl_write_buf - b .L1251 -.L1252: - cmp w23, 1 - add x2, x24, 32 - bne .L1260 - ldr w1, [x2,4] - adrp x0, .LC122 - ldr w2, [x2,8] - add x0, x0, :lo12:.LC122 - bl printk - mov x0, x24 - bl ftl_write_buf - b .L1251 -.L1260: - ldr w0, [x2,4] - ldr w1, [x2,12] - ldrh w2, [x24,48] - bl lpa_hash_update_ppa - ldrb w0, [x24,2] - and w23, w0, 4 - uxtb w23, w23 - cbz w23, .L1261 - and w0, w0, -3 - mov w23, 0 - strb w0, [x24,2] - b .L1251 + stp x21, x22, [sp, 32] + adrp x21, .LANCHOR0 + stp x19, x20, [sp, 16] + add x19, x21, :lo12:.LANCHOR0 + stp x23, x24, [sp, 48] + add x22, x19, 1304 + mov w23, 20041 + str x25, [sp, 64] + movk w23, 0x444b, lsl 16 + mov w25, 0 .L1261: - mov x0, x24 - bl zbuf_free - b .L1251 -.L1266: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x29, x30, [sp], 64 + add x1, x21, :lo12:.LANCHOR0 + ldrb w0, [x1, 3357] + cmp w0, 255 + bne .L1272 + 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 +.L1272: + add x2, x1, 1304 + lsl x3, x0, 6 + add x24, x2, x3 + ubfiz x20, x0, 6, 8 + add x20, x2, x20 + ldrb w2, [x2, x3] + strb w2, [x1, 3357] + ldr w1, [x24, 52] + cmn w1, #1 + bne .L1262 + adrp x2, .LANCHOR3 + add x1, x2, :lo12:.LANCHOR3 + ldrb w3, [x1, 1950] + cbnz w3, .L1263 + ldrb w1, [x1, 1322] + cbz w1, .L1264 +.L1263: + ldr x1, [x19, 3384] + ldr w1, [x1, 156] + cmp w1, w23 + beq .L1265 +.L1264: + add x2, x2, :lo12:.LANCHOR3 + ldrb w3, [x19, 1205] + mov w1, 24 + add x4, x22, x0, lsl 6 + sub w1, w1, w3 + ldrh w5, [x2, 1304] + ldrb w2, [x2, 1306] + sub w3, w1, w5 + mov w1, 1 + lsl w1, w1, w3 + ldr w3, [x4, 40] + sub w1, w1, #1 + lsr w3, w3, w5 + and w1, w1, w3 + mov w3, 65535 + udiv w1, w1, w2 + ldr x2, [x19, 1128] + ldr w5, [x2, 560] + and w24, w1, 65535 + and w1, w1, w3 + cmp w5, w3 + bne .L1266 + str w1, [x2, 560] + ldr w3, [x4, 40] + str w3, [x2, 564] +.L1266: + add x0, x22, x0, lsl 6 + ldp w2, w3, [x0, 36] + adrp x0, .LC118 + add x0, x0, :lo12:.LC118 + bl printk + ldr x0, [x19, 1128] + ldr w1, [x0, 556] + add w1, w1, 1 + str w1, [x0, 556] + ldrh w1, [x0, 16] + cmp w1, w24 + bne .L1267 + strh wzr, [x0, 22] +.L1265: + mov x0, x20 + mov w25, 1 + bl ftl_write_buf + b .L1261 +.L1267: + ldrh w1, [x0, 48] + cmp w1, w24 + bne .L1265 + strh wzr, [x0, 54] + b .L1265 +.L1262: + cbz w25, .L1270 + ldp w1, w2, [x24, 36] + adrp x0, .LC119 + add x0, x0, :lo12:.LC119 + bl printk + mov x0, x20 + bl ftl_write_buf + b .L1261 +.L1270: + ldrh w2, [x24, 48] + ldr w0, [x24, 36] + ldr w1, [x24, 44] + bl lpa_hash_update_ppa + ldrb w0, [x24, 2] + tbz x0, 2, .L1271 + and w0, w0, -3 + strb w0, [x24, 2] + b .L1261 +.L1271: + mov x0, x20 + bl zbuf_free + b .L1261 .size ftl_write_completed, .-ftl_write_completed .align 2 .global zftl_add_read_buf @@ -8164,58 +7941,58 @@ ftl_write_completed: zftl_add_read_buf: stp x29, x30, [sp, -32]! add x29, sp, 0 - stp x19, x20, [sp,16] - mov x20, x0 - cbnz x0, .L1268 + stp x19, x20, [sp, 16] + cbnz x0, .L1278 adrp x1, .LANCHOR1 - adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - mov w2, 1150 - add x1, x1, 1952 + add x1, x1, 1744 + mov w2, 1151 + adrp x0, .LC0 add x0, x0, :lo12:.LC0 bl printk bl dump_stack bl print_ftl_debug_info - b .L1267 -.L1268: - ldrb w1, [x0,56] - adrp x0, .LANCHOR0+3360 - ldrb w0, [x0,#:lo12:.LANCHOR0+3360] +.L1277: + ldp x19, x20, [sp, 16] + ldp x29, x30, [sp], 32 + ret +.L1278: + mov x20, x0 + adrp x19, .LANCHOR3 + add x0, x19, :lo12:.LANCHOR3 + ldrb w1, [x20, 56] + ldrb w0, [x0, 1946] cmp w1, w0 - bls .L1271 + bls .L1281 adrp x1, .LANCHOR1 - adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR1 - mov w2, 1157 - add x1, x1, 1952 + add x1, x1, 1744 + mov w2, 1158 + adrp x0, .LC0 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L1271: - adrp x19, .LANCHOR3 - mov x1, x20 +.L1281: add x19, x19, :lo12:.LANCHOR3 - add x0, x19, 1962 + mov x1, x20 + add x0, x19, 1956 bl buf_add_tail - ldrb w0, [x19,1963] + ldrb w0, [x19, 1957] add w0, w0, 1 - strb w0, [x19,1963] -.L1267: - ldp x19, x20, [sp,16] - ldp x29, x30, [sp], 32 - ret + strb w0, [x19, 1957] + b .L1277 .size zftl_add_read_buf, .-zftl_add_read_buf .align 2 .global sblk_init .type sblk_init, %function sblk_init: adrp x0, .LANCHOR0 - mov w1, -1 add x0, x0, :lo12:.LANCHOR0 - strb w1, [x0,3363] - strb w1, [x0,3366] - strb w1, [x0,3364] - strb w1, [x0,3365] + mov w1, -1 + strb w1, [x0, 3354] + strb w1, [x0, 3357] + strb w1, [x0, 3355] + strb w1, [x0, 3356] mov w0, 0 ret .size sblk_init, .-sblk_init @@ -8224,38 +8001,38 @@ sblk_init: .type dump_sblk_queue, %function dump_sblk_queue: stp x29, x30, [sp, -48]! - adrp x0, .LC123 + adrp x0, .LC120 + add x0, x0, :lo12:.LC120 add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] adrp x20, .LANCHOR0 - str x21, [sp,32] add x20, x20, :lo12:.LANCHOR0 - add x0, x0, :lo12:.LC123 - ldrb w1, [x20,3363] + str x21, [sp, 32] + ldrb w1, [x20, 3354] bl printk - ldrb w19, [x20,3363] + ldrb w19, [x20, 3354] cmp w19, 255 - beq .L1273 - add x20, x20, 1312 - sbfiz x19, x19, 6, 32 - adrp x21, .LC124 + beq .L1284 + add x20, x20, 1304 + ubfiz x19, x19, 6, 8 + adrp x21, .LC121 add x19, x20, x19 - add x21, x21, :lo12:.LC124 -.L1275: - ldrb w1, [x19,1] + add x21, x21, :lo12:.LC121 +.L1286: + ldrb w2, [x19, 58] mov x0, x21 - ldrb w2, [x19,58] - ldr w3, [x19,40] + ldrb w1, [x19, 1] + ldr w3, [x19, 40] bl printk ldrb w19, [x19] cmp w19, 255 - beq .L1273 - sbfiz x19, x19, 6, 32 + beq .L1284 + ubfiz x19, x19, 6, 8 add x19, x20, x19 - b .L1275 -.L1273: - ldp x19, x20, [sp,16] - ldr x21, [sp,32] + b .L1286 +.L1284: + ldp x19, x20, [sp, 16] + ldr x21, [sp, 32] ldp x29, x30, [sp], 48 ret .size dump_sblk_queue, .-dump_sblk_queue @@ -8263,87 +8040,88 @@ dump_sblk_queue: .global queue_lun_state .type queue_lun_state, %function queue_lun_state: - adrp x3, .LANCHOR0 - mov w4, w0 - add x3, x3, :lo12:.LANCHOR0 - mov w0, 0 - ldrb w2, [x3,3363] + adrp x5, .LANCHOR0 + add x5, x5, :lo12:.LANCHOR0 + ldrb w2, [x5, 3354] cmp w2, 255 - beq .L1283 - ldrb w5, [x3,1257] - mov w0, 1 - mov w8, 24 - adrp x13, .L1286 - sub w8, w8, w5 - lsl w5, w0, w5 - sub w5, w5, #1 - asr w10, w4, w8 - add x3, x3, 1312 - add x13, x13, :lo12:.L1286 - uxth w7, w5 - adrp x5, .LANCHOR3 - add x5, x5, :lo12:.LANCHOR3 - and w10, w7, w10 - ldrh w11, [x5,1312] - ldrb w12, [x5,1314] - sub w6, w8, w11 - asr w4, w4, w11 - lsl w0, w0, w6 - sub w12, w12, #1 - sub w0, w0, #1 - uxth w12, w12 - uxth w9, w0 - and w4, w4, w12 - and w4, w4, w9 -.L1289: - add x6, x3, x2, lsl 6 - ldr w5, [x6,40] - lsr w0, w5, w8 - and w0, w7, w0 - cmp w0, w10 - bne .L1284 - lsr w5, w5, w11 - ldrb w0, [x6,58] - and w5, w12, w5 - and w5, w9, w5 - cmp w5, w4 - bne .L1285 + beq .L1302 + adrp x6, .LANCHOR3 + add x6, x6, :lo12:.LANCHOR3 + ldrb w3, [x5, 1205] + mov w9, 24 + mov w4, 1 + adrp x12, .L1298 + ldrh w11, [x6, 1304] + sub w9, w9, w3 + ldrb w8, [x6, 1306] + lsl w3, w4, w3 + sub w7, w9, w11 + sub w3, w3, #1 + sub w8, w8, #1 + and w3, w3, 65535 + lsl w4, w4, w7 + and w8, w8, 65535 + sub w4, w4, #1 + asr w6, w0, w11 + and w4, w4, 65535 + and w6, w6, w8 + asr w10, w0, w9 + and w6, w6, w4 + and w10, w10, w3 + add x5, x5, 1304 + add x12, x12, :lo12:.L1298 +.L1301: + add x13, x5, x2, lsl 6 + ldr w7, [x13, 40] + lsr w0, w7, w9 + and w0, w3, w0 + cmp w10, w0 + bne .L1296 + lsr w7, w7, w11 + and w7, w8, w7 + and w7, w4, w7 + ldrb w0, [x13, 58] + cmp w6, w7 + bne .L1297 cmp w1, 1 - beq .L1287 - b .L1283 -.L1285: + bne .L1294 + cmp w0, 7 + ccmp w0, 9, 4, ne + beq .L1296 + ret +.L1297: cmp w1, 3 - bhi .L1284 - ldrb w5, [x13,w1,uxtw] - adr x6, .Lrtx1286 - add x5, x6, w5, sxtb #2 - br x5 -.Lrtx1286: + bhi .L1296 + ldrb w7, [x12,w1,uxtw] + adr x13, .Lrtx1298 + add x7, x13, w7, sxtb #2 + br x7 +.Lrtx1298: .section .rodata .align 0 .align 2 -.L1286: - .byte (.L1283 - .Lrtx1286) / 4 - .byte (.L1287 - .Lrtx1286) / 4 - .byte (.L1288 - .Lrtx1286) / 4 - .byte (.L1283 - .Lrtx1286) / 4 +.L1298: + .byte (.L1294 - .Lrtx1298) / 4 + .byte (.L1299 - .Lrtx1298) / 4 + .byte (.L1300 - .Lrtx1298) / 4 + .byte (.L1294 - .Lrtx1298) / 4 .text -.L1287: - sub w6, w0, #7 - and w6, w6, -3 - uxtb w6, w6 - cbz w6, .L1284 - b .L1283 -.L1288: +.L1299: + cmp w0, 7 + ccmp w0, 9, 4, ne + beq .L1296 + ret +.L1300: cmp w0, 11 - bne .L1283 -.L1284: + bne .L1294 +.L1296: lsl x2, x2, 6 - ldrb w2, [x3,x2] + ldrb w2, [x5, x2] cmp w2, 255 - bne .L1289 + bne .L1301 +.L1302: mov w0, 0 -.L1283: +.L1294: ret .size queue_lun_state, .-queue_lun_state .align 2 @@ -8351,85 +8129,83 @@ queue_lun_state: .type queue_remove_completed_req, %function queue_remove_completed_req: adrp x3, .LANCHOR0 - mov w5, 0 add x0, x3, :lo12:.LANCHOR0 + add x4, x0, 1304 + add x12, x0, 3355 + add x13, x0, 3356 + add x14, x0, 3357 + ldrb w7, [x0, 3354] + mov w5, 0 + ldrb w9, [x0, 3355] mov w11, -1 - add x4, x0, 1312 - add x12, x0, 3364 - add x13, x0, 3365 - add x14, x0, 3366 - ldrb w7, [x0,3363] - ldrb w9, [x0,3364] - ldrb w8, [x0,3365] - ldrb w10, [x0,3366] -.L1299: + ldrb w10, [x0, 3357] + ldrb w8, [x0, 3356] +.L1305: cmp w7, 255 - beq .L1300 + beq .L1306 sbfiz x6, x7, 6, 32 sxtw x1, w7 add x2, x4, x6 - ldrb w2, [x2,58] + ldrb w2, [x2, 58] sub w2, w2, #12 - uxtb w2, w2 + and w2, w2, 255 cmp w2, 1 - bls .L1301 - cbz w5, .L1298 - strb w7, [x0,3363] - b .L1298 -.L1301: + bls .L1307 + cbz w5, .L1304 + strb w7, [x0, 3354] + ret +.L1307: lsl x5, x1, 6 - ldrb w7, [x4,x6] + ldrb w7, [x4, x6] add x2, x4, x5 - strb w11, [x4,x5] - ldrb w5, [x2,59] + strb w11, [x4, x5] + ldrb w5, [x2, 59] cmp w5, 1 - bne .L1304 - ldrh w2, [x2,50] - cbnz w2, .L1312 + bne .L1310 + ldrh w2, [x2, 50] + cbnz w2, .L1318 mov w2, w10 mov x5, x14 - b .L1305 -.L1304: - cbz w5, .L1322 -.L1306: - mov w5, 1 - b .L1299 -.L1322: - ldr w2, [x2,36] - cmn w2, #1 - beq .L1306 - mov w2, w9 - mov x5, x12 - b .L1305 -.L1312: - mov w2, w8 - mov x5, x13 -.L1305: +.L1311: cmp w2, 255 - bne .L1310 + bne .L1316 add x3, x3, :lo12:.LANCHOR0 add x1, x3, x1, lsl 6 - strb w7, [x3,3363] - ldrb w0, [x1,1313] + strb w7, [x3, 3354] + ldrb w0, [x1, 1305] strb w0, [x5] - b .L1298 + ret .L1310: + cbnz w5, .L1312 + ldr w2, [x2, 36] + cmn w2, #1 + beq .L1312 + mov w2, w9 + mov x5, x12 + b .L1311 +.L1318: + mov w2, w8 + mov x5, x13 + b .L1311 +.L1316: mov w5, w2 sbfiz x2, x2, 6, 32 - ldrb w2, [x4,x2] + ldrb w2, [x4, x2] cmp w2, 255 - bne .L1310 + bne .L1316 add x1, x4, x1, lsl 6 sbfiz x5, x5, 6, 32 - ldrb w1, [x1,1] - strb w1, [x4,x5] - b .L1306 -.L1300: - cbz w5, .L1298 + ldrb w1, [x1, 1] + strb w1, [x4, x5] +.L1312: + mov w5, 1 + b .L1305 +.L1306: + cbz w5, .L1304 add x3, x3, :lo12:.LANCHOR0 mov w0, -1 - strb w0, [x3,3363] -.L1298: + strb w0, [x3, 3354] +.L1304: ret .size queue_remove_completed_req, .-queue_remove_completed_req .align 2 @@ -8437,74 +8213,72 @@ queue_remove_completed_req: .type pm_select_ram_region, %function pm_select_ram_region: stp x29, x30, [sp, -32]! - adrp x2, .LANCHOR3 - mov w3, 65535 + adrp x1, .LANCHOR3 + add x0, x1, :lo12:.LANCHOR3 + mov x2, 0 add x29, sp, 0 - str x19, [sp,16] - add x2, x2, :lo12:.LANCHOR3 - mov x19, 0 -.L1325: - add x1, x2, 1968 - lsl x4, x19, 4 - uxth w0, w19 - ldrh w4, [x4,x1] - cmp w4, w3 - beq .L1324 - add x19, x19, 1 - cmp x19, 32 - bne .L1325 - mov x0, 0 - mov w3, 32768 -.L1327: - add x2, x1, x0, lsl 4 - uxth w4, w0 - ldrh w2, [x2,2] - tbnz x2, 15, .L1326 - cmp w2, w3 - bcs .L1326 - mov w3, w2 - mov w19, w4 -.L1326: - add x0, x0, 1 - cmp x0, 32 - bne .L1327 + add x3, x0, 1960 + mov w4, 65535 + str x19, [sp, 16] +.L1330: + lsl x5, x2, 4 + and w19, w2, 65535 + ldrh w5, [x5, x3] + cmp w5, w4 + beq .L1329 + add x2, x2, 1 + cmp x2, 32 + bne .L1330 + add x0, x0, 1962 + mov w19, w2 + mov x3, x0 + mov w5, 32768 + mov w2, 0 +.L1332: + ldrh w4, [x3] + tbnz x4, 15, .L1331 + cmp w4, w5 + bcs .L1331 + mov w5, w4 + mov w19, w2 +.L1331: + add w2, w2, 1 + add x3, x3, 16 + and w2, w2, 65535 + cmp w2, 32 + bne .L1332 cmp w19, 32 - mov w0, w19 - bne .L1324 - adrp x0, .LANCHOR3 + bne .L1329 + add x1, x1, :lo12:.LANCHOR3 mov w2, -1 - add x0, x0, :lo12:.LANCHOR3 + ldrb w3, [x1, 2472] mov w1, 0 - add x0, x0, 1968 - ldrb w3, [x0,512] -.L1329: - ldrh w5, [x0,2] +.L1334: + ldrh w5, [x0] cmp w5, w2 - bcs .L1328 - ldrh w4, [x0] + bcs .L1333 + ldrh w4, [x0, -2] cmp w4, w3 csel w2, w2, w5, eq - cmp w4, w3 csel w19, w19, w1, eq -.L1328: +.L1333: add w1, w1, 1 add x0, x0, 16 - uxth w1, w1 + and w1, w1, 65535 cmp w1, 32 - bne .L1329 + bne .L1334 cmp w19, 32 - bne .L1330 - adrp x0, .LC0 + bne .L1329 adrp x1, .LANCHOR4 add x1, x1, :lo12:.LANCHOR4 mov w2, 377 + adrp x0, .LC0 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L1330: +.L1329: mov w0, w19 -.L1324: - ldr x19, [sp,16] + ldr x19, [sp, 16] ldp x29, x30, [sp], 32 ret .size pm_select_ram_region, .-pm_select_ram_region @@ -8525,401 +8299,381 @@ ftl_memset: flash_lsb_page_tbl_build: stp x29, x30, [sp, -48]! add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] adrp x19, .LANCHOR0 - str x21, [sp,32] add x1, x19, :lo12:.LANCHOR0 - mov w21, 1024 - ldr x2, [x1,1144] - ldrb w2, [x2,12] - sdiv w21, w21, w2 - cbnz w0, .L1338 + str x21, [sp, 32] + mov w20, 1024 + ldr x2, [x1, 1144] + ldrb w2, [x2, 12] + sdiv w20, w20, w2 + cbnz w0, .L1342 + add x1, x1, 4 mov x0, 0 -.L1339: - add x2, x1, 4 - strh w0, [x2,x0,lsl 1] +.L1343: + strh w0, [x1, x0, lsl 1] add x0, x0, 1 cmp x0, 512 - bne .L1339 -.L1345: - adrp x20, .LANCHOR3 - mov w1, 255 - add x20, x20, :lo12:.LANCHOR3 - mov w2, 2048 - add x20, x20, 2484 + bne .L1343 +.L1349: + adrp x21, .LANCHOR3 + add x21, x21, :lo12:.LANCHOR3 + add x21, x21, 2476 add x19, x19, :lo12:.LANCHOR0 - mov x0, x20 + mov w2, 2048 + mov w1, 255 + mov x0, x21 + add x19, x19, 4 bl ftl_memset mov x0, 0 - b .L1340 -.L1338: - cmp w0, 1 - bne .L1341 - mov x0, 0 - mov w4, 3 - mov w5, 2 .L1344: - cmp x0, 3 - uxth w3, w0 - mov w2, w3 - bls .L1342 - ubfiz w2, w3, 1, 15 - and w3, w3, 1 - cmp w3, wzr - csel w3, w4, w5, ne - sub w2, w2, w3 - uxth w2, w2 -.L1342: - add x3, x1, 4 - strh w2, [x3,x0,lsl 1] + ldrh w1, [x19, x0, lsl 1] add x0, x0, 1 - cmp x0, 512 - bne .L1344 - b .L1345 -.L1341: - cmp w0, 2 - bne .L1346 - mov w2, 65535 - mov x0, 0 -.L1348: - add x4, x1, 4 - cmp x0, 1 - uxth w3, w0 - csel w3, w2, w3, hi - add w2, w2, 2 - strh w3, [x4,x0,lsl 1] - add x0, x0, 1 - cmp x0, 512 - uxth w2, w2 - bne .L1348 - b .L1345 -.L1346: - cmp w0, 3 - bne .L1349 - mov x0, 0 - mov w4, 5 - mov w5, 4 -.L1352: - cmp x0, 5 - uxth w3, w0 - mov w2, w3 - bls .L1350 - ubfiz w2, w3, 1, 15 - and w3, w3, 1 - cmp w3, wzr - csel w3, w4, w5, ne - sub w2, w2, w3 - uxth w2, w2 -.L1350: - add x3, x1, 4 - strh w2, [x3,x0,lsl 1] - add x0, x0, 1 - cmp x0, 512 - bne .L1352 - b .L1345 -.L1349: - cmp w0, 4 - bne .L1353 - add x2, x1, 4 - strh w0, [x2,8] - mov w0, 5 - strh wzr, [x1,4] - mov w1, 1 - mov w5, 7 - strh w0, [x2,10] - mov w0, 7 - strh w1, [x2,2] - mov w1, 2 - strh w0, [x2,12] - mov w0, 8 - strh w1, [x2,4] - mov w4, 6 - mov w1, 3 - strh w0, [x2,14] - strh w1, [x2,6] - mov w0, 8 -.L1355: - and w3, w0, 1 - ubfiz w1, w0, 1, 15 - add w0, w0, 1 - cmp w3, wzr - csel w3, w5, w4, ne - add x2, x2, 2 - uxth w0, w0 - sub w1, w1, w3 - cmp w0, 512 - strh w1, [x2,14] - bne .L1355 - b .L1345 -.L1353: - cmp w0, 5 - bne .L1356 - mov x0, 0 -.L1357: - add x2, x1, 4 - strh w0, [x2,x0,lsl 1] - add x0, x0, 1 - cmp x0, 16 - bne .L1357 - mov x0, 0 -.L1358: - add x1, x2, x0 - add w3, w0, 16 - add x0, x0, 2 - cmp x0, 992 - strh w3, [x1,32] - bne .L1358 - b .L1345 -.L1356: - cmp w0, 8 - bne .L1359 - mov x0, 0 -.L1360: - add x2, x1, 4 - strh w0, [x0,x2] - add x0, x0, 2 - cmp x0, 1024 - bne .L1360 - b .L1345 -.L1359: - cmp w0, 9 - bne .L1361 - add x2, x1, 4 - mov w0, 1 - strh wzr, [x1,4] - strh w0, [x2,2] - mov w0, 2 - strh w0, [x2,4] - mov x0, 0 -.L1362: - add x1, x2, x0 - add w3, w0, 3 - add x0, x0, 2 - cmp x0, 1018 - strh w3, [x1,6] - bne .L1362 - b .L1345 -.L1361: - cmp w0, 10 - bne .L1363 - mov x0, 0 -.L1364: - add x2, x1, 4 - strh w0, [x2,x0,lsl 1] - add x0, x0, 1 - cmp x0, 63 - bne .L1364 - mov x0, 0 -.L1365: - add x1, x2, x0 - add w3, w0, 63 - add x0, x0, 2 - cmp x0, 898 - strh w3, [x1,126] - bne .L1365 - b .L1345 -.L1363: - cmp w0, 11 - bne .L1366 - mov x0, 0 - add x2, x19, :lo12:.LANCHOR0 -.L1367: - add x1, x2, 4 - strh w0, [x1,x0,lsl 1] - add x0, x0, 1 - cmp x0, 8 - bne .L1367 - mov w5, 7 - mov w4, 6 -.L1369: - and w3, w0, 1 - ubfiz w2, w0, 1, 15 - add w0, w0, 1 - cmp w3, wzr - csel w3, w5, w4, ne - add x1, x1, 2 - uxth w0, w0 - sub w2, w2, w3 - cmp w0, 512 - strh w2, [x1,14] - bne .L1369 - b .L1345 -.L1366: - cmp w0, 13 - bne .L1345 - mov x0, 0 - add x3, x19, :lo12:.LANCHOR0 -.L1370: - add x1, x3, 4 - add w2, w0, w0, lsl 1 - strh w2, [x1,x0,lsl 1] - add x0, x0, 1 - cmp x0, 512 - bne .L1370 - b .L1345 -.L1340: - cmp w21, w0, uxth - bls .L1393 - add x1, x19, 4 - ldrh w1, [x1,x0,lsl 1] - add x0, x0, 1 - strh w1, [x20,w1,sxtw 1] - b .L1340 -.L1393: - ldp x19, x20, [sp,16] - ldr x21, [sp,32] + cmp w20, w0, uxth + strh w1, [x21, w1, sxtw 1] + bhi .L1344 + ldp x19, x20, [sp, 16] + ldr x21, [sp, 32] ldp x29, x30, [sp], 48 ret +.L1342: + cmp w0, 1 + bne .L1345 + add x1, x1, 4 + mov x2, 0 +.L1348: + and w0, w2, 65535 + cmp x2, 3 + bls .L1346 + ubfiz w3, w0, 1, 15 + and w0, w0, 1 + add w0, w0, 2 + sub w0, w3, w0 + and w0, w0, 65535 +.L1346: + strh w0, [x1, x2, lsl 1] + add x2, x2, 1 + cmp x2, 512 + bne .L1348 + b .L1349 +.L1345: + cmp w0, 2 + bne .L1350 + add x1, x1, 4 + mov w2, 65535 + mov x0, 0 +.L1352: + cmp x0, 2 + and w3, w0, 65535 + csel w3, w3, w2, cc + strh w3, [x1, x0, lsl 1] + add w2, w2, 2 + add x0, x0, 1 + and w2, w2, 65535 + cmp x0, 512 + bne .L1352 + b .L1349 +.L1350: + cmp w0, 3 + bne .L1353 + add x1, x1, 4 + mov x2, 0 +.L1356: + and w0, w2, 65535 + cmp x2, 5 + bls .L1354 + ubfiz w3, w0, 1, 15 + and w0, w0, 1 + add w0, w0, 4 + sub w0, w3, w0 + and w0, w0, 65535 +.L1354: + strh w0, [x1, x2, lsl 1] + add x2, x2, 1 + cmp x2, 512 + bne .L1356 + b .L1349 +.L1353: + cmp w0, 4 + bne .L1357 + mov w3, 1 + strh w0, [x1, 12] + mov w0, 5 + strh w3, [x1, 6] + strh w0, [x1, 14] + mov w3, 2 + mov w0, 7 + strh w3, [x1, 8] + strh w0, [x1, 16] + mov w3, 3 + mov w0, 8 + strh wzr, [x1, 4] + strh w0, [x1, 18] + add x1, x1, 20 + strh w3, [x1, -10] + mov w0, 8 +.L1359: + and w3, w0, 1 + ubfiz w2, w0, 1, 15 + add w3, w3, 6 + add w0, w0, 1 + sub w2, w2, w3 + strh w2, [x1], 2 + and w0, w0, 65535 + cmp w0, 512 + bne .L1359 + b .L1349 +.L1357: + cmp w0, 5 + bne .L1360 + add x2, x1, 4 + mov x0, 0 +.L1361: + strh w0, [x2, x0, lsl 1] + add x0, x0, 1 + cmp x0, 16 + bne .L1361 + add x1, x1, 36 +.L1362: + strh w0, [x1], 2 + add w0, w0, 2 + and w0, w0, 65535 + cmp w0, 1008 + bne .L1362 + b .L1349 +.L1360: + cmp w0, 8 + bne .L1363 + add x1, x1, 4 + mov x0, 0 +.L1364: + strh w0, [x0, x1] + add x0, x0, 2 + cmp x0, 1024 + bne .L1364 + b .L1349 +.L1363: + cmp w0, 9 + bne .L1365 + mov w2, 1 + strh wzr, [x1, 4] + strh w2, [x1, 6] + mov w2, 2 + add x1, x1, 10 + strh w2, [x1, -2] + mov w0, 3 +.L1366: + strh w0, [x1], 2 + add w0, w0, 2 + and w0, w0, 65535 + cmp w0, 1021 + bne .L1366 + b .L1349 +.L1365: + cmp w0, 10 + bne .L1367 + add x2, x1, 4 + mov x0, 0 +.L1368: + strh w0, [x2, x0, lsl 1] + add x0, x0, 1 + cmp x0, 63 + bne .L1368 + add x1, x1, 130 +.L1369: + strh w0, [x1], 2 + add w0, w0, 2 + and w0, w0, 65535 + cmp w0, 961 + bne .L1369 + b .L1349 +.L1367: + cmp w0, 11 + bne .L1370 + add x1, x19, :lo12:.LANCHOR0 + mov x0, 0 + add x2, x1, 4 +.L1371: + strh w0, [x2, x0, lsl 1] + add x0, x0, 1 + cmp x0, 8 + bne .L1371 + add x1, x1, 20 +.L1373: + and w3, w0, 1 + ubfiz w2, w0, 1, 15 + add w3, w3, 6 + add w0, w0, 1 + sub w2, w2, w3 + strh w2, [x1], 2 + and w0, w0, 65535 + cmp w0, 512 + bne .L1373 + b .L1349 +.L1370: + cmp w0, 13 + bne .L1349 + add x2, x19, :lo12:.LANCHOR0 + mov x1, 0 + add x2, x2, 4 + mov w0, 0 +.L1374: + strh w0, [x1, x2] + add w0, w0, 3 + and w0, w0, 65535 + add x1, x1, 2 + cmp w0, 1536 + bne .L1374 + b .L1349 .size flash_lsb_page_tbl_build, .-flash_lsb_page_tbl_build .align 2 .global flash_die_info_init .type flash_die_info_init, %function flash_die_info_init: - stp x29, x30, [sp, -112]! + stp x29, x30, [sp, -96]! add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] adrp x19, .LANCHOR2 - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - ldr w0, [x19,#:lo12:.LANCHOR2] - stp x25, x26, [sp,64] - stp x27, x28, [sp,80] - tbz x0, 12, .L1395 + stp x21, x22, [sp, 32] + ldr w0, [x19, #:lo12:.LANCHOR2] + stp x23, x24, [sp, 48] + stp x25, x26, [sp, 64] + str x27, [sp, 80] + tbz x0, 12, .L1397 adrp x1, .LANCHOR4 - adrp x0, .LC4 add x1, x1, :lo12:.LANCHOR4 - add x0, x0, :lo12:.LC4 + adrp x0, .LC4 add x1, x1, 24 + add x0, x0, :lo12:.LC4 bl printk -.L1395: +.L1397: add x24, x19, :lo12:.LANCHOR2 - adrp x21, .LANCHOR0 - add x20, x21, :lo12:.LANCHOR0 - adrp x22, .LANCHOR5 - add x25, x22, :lo12:.LANCHOR5 + adrp x22, .LANCHOR0 + add x20, x22, :lo12:.LANCHOR0 + adrp x21, .LANCHOR5 + add x23, x21, :lo12:.LANCHOR5 mov w2, 8 - ldrh w0, [x24,34] - mov x23, 0 - ldrb w1, [x24,20] - mov w26, 2 - strh w0, [x20,2] + ldrh w0, [x24, 34] + add x25, x20, 1208 + ldrb w1, [x24, 20] add x27, x24, 9 - ldrh w0, [x24,18] - add x28, x20, 1272 - strb wzr, [x20,1153] + strh w0, [x20, 2] + mov w26, 2 + ldrh w0, [x24, 18] + strb wzr, [x20, 1153] sdiv w0, w0, w1 mov w1, 0 - strh w0, [x25,180] - add x0, x20, 1248 + strh w0, [x23, 172] + add x0, x20, 1196 bl ftl_memset - add x0, x25, 184 - mov w1, 0 + add x0, x23, 176 + mov x23, 0 mov w2, 32 + mov w1, 0 bl ftl_memset -.L1397: - add x0, x20, 1264 - ldrb w2, [x24,8] - add x1, x28, x23, lsl 3 - strb w26, [x23,x0] +.L1399: + ldrb w2, [x24, 8] + add x7, x20, 1024 + strb w26, [x23, x25] + add x1, x20, 1216 + add x1, x1, x23, lsl 3 mov x0, x27 bl flash_mem_cmp8 - cbnz w0, .L1396 - ldrb w1, [x20,1153] - add x2, x25, 184 - str w0, [x2,w1,sxtw 2] - add w0, w1, 1 - strb w0, [x20,1153] - uxtb w0, w23 - add x1, x20, w1, sxtw - strb w0, [x1,1248] + cbnz w0, .L1398 + ldrb w2, [x20, 1153] + add x1, x21, :lo12:.LANCHOR5 + add x1, x1, 176 + add x7, x7, x2 + add w0, w2, 1 + strb w0, [x20, 1153] + and w0, w23, 255 + str wzr, [x1, x2, lsl 2] + strb w0, [x7, 172] bl zftl_flash_enter_slc_mode -.L1396: +.L1398: add x23, x23, 1 cmp x23, 4 - bne .L1397 + bne .L1399 add x0, x19, :lo12:.LANCHOR2 add x1, x0, 8 - ldrb w2, [x1,8] + ldrb w2, [x1, 8] cmp w2, 2 - beq .L1398 -.L1402: + beq .L1400 +.L1404: add x19, x19, :lo12:.LANCHOR2 - add x21, x21, :lo12:.LANCHOR0 - add x22, x22, :lo12:.LANCHOR5 - ldp x23, x24, [sp,48] - ldrb w1, [x19,21] - ldrb w0, [x21,1153] - ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] + add x22, x22, :lo12:.LANCHOR0 + add x21, x21, :lo12:.LANCHOR5 + ldr x27, [sp, 80] + ldp x23, x24, [sp, 48] + ldrb w1, [x19, 21] + ldrb w0, [x22, 1153] + ldp x25, x26, [sp, 64] mul w0, w0, w1 - ldrh w1, [x19,22] - ldp x19, x20, [sp,16] + ldrh w1, [x19, 22] + ldp x19, x20, [sp, 16] mul w0, w0, w1 - strh w0, [x22,216] - ldp x21, x22, [sp,32] - ldp x29, x30, [sp], 112 + strh w0, [x21, 208] + ldp x21, x22, [sp, 32] + ldp x29, x30, [sp], 96 ret -.L1398: - add x23, x21, :lo12:.LANCHOR0 - ldrh w20, [x1,14] - ldrb w26, [x0,8] - mov x24, 0 - and w20, w20, 65280 - ldrb w27, [x1,23] - ldrh w2, [x23,2] - add x25, x0, 9 - add x3, x23, 1272 - add x4, x22, :lo12:.LANCHOR5 - mul w20, w20, w2 - ldrb w2, [x1,13] - mul w20, w20, w2 - lsl w28, w20, 1 -.L1401: - add x1, x3, x24, lsl 3 - mov x0, x25 - mov w2, w26 - str x4, [x29,96] - str x3, [x29,104] +.L1400: + add x8, x22, :lo12:.LANCHOR0 + ldrh w7, [x1, 14] + add x11, x21, :lo12:.LANCHOR5 + ldrb w12, [x0, 8] + and w7, w7, 65280 + ldrb w13, [x1, 23] + ldrh w2, [x8, 2] + add x15, x8, 1216 + add x10, x0, 9 + add x11, x11, 176 + add x18, x8, 1024 + mov x9, 0 + mul w7, w7, w2 + ldrb w2, [x1, 13] + mul w7, w7, w2 + lsl w14, w7, 1 +.L1403: + mov w2, w12 + add x1, x15, x9, lsl 3 + mov x0, x10 bl flash_mem_cmp8 - ldr x3, [x29,104] - ldr x4, [x29,96] - cbnz w0, .L1399 - ldrb w0, [x23,1153] - add x1, x4, 184 - cmp w27, wzr - csel w2, w20, w28, eq - str w2, [x1,w0,sxtw 2] + cbnz w0, .L1401 + ldrb w0, [x8, 1153] + cmp w13, 0 + csel w2, w7, w14, eq add w1, w0, 1 - add x0, x23, w0, sxtw - strb w1, [x23,1153] - strb w24, [x0,1248] -.L1399: - add x24, x24, 1 - cmp x24, 4 - bne .L1401 - b .L1402 + strb w1, [x8, 1153] + str w2, [x11, x0, lsl 2] + add x0, x18, x0 + strb w9, [x0, 172] +.L1401: + add x9, x9, 1 + cmp x9, 4 + bne .L1403 + b .L1404 .size flash_die_info_init, .-flash_die_info_init .align 2 .global lpa_hash_init .type lpa_hash_init, %function lpa_hash_init: stp x29, x30, [sp, -32]! - mov w1, 255 mov w2, 512 + mov w1, 255 add x29, sp, 0 - str x19, [sp,16] + str x19, [sp, 16] adrp x19, .LANCHOR3 add x19, x19, :lo12:.LANCHOR3 - add x0, x19, 1424 + add x0, x19, 1416 bl ftl_memset - ldrh w0, [x19,1384] mov w1, 255 - ldrb w2, [x19,1329] - mul w2, w0, w2 - ldr x0, [x19,1944] + ldrb w0, [x19, 1321] + ldrh w2, [x19, 1376] + mul w2, w2, w0 + ldr x0, [x19, 1936] lsl w2, w2, 2 bl ftl_memset - ldr x19, [sp,16] + ldr x19, [sp, 16] ldp x29, x30, [sp], 32 ret .size lpa_hash_init, .-lpa_hash_init @@ -8927,1346 +8681,1248 @@ lpa_hash_init: .global lpa_rebuild_hash .type lpa_rebuild_hash, %function lpa_rebuild_hash: - adrp x0, .LANCHOR2 stp x29, x30, [sp, -32]! + adrp x0, .LANCHOR2 add x29, sp, 0 - ldr w0, [x0,#:lo12:.LANCHOR2] - str x19, [sp,16] - tbz x0, 12, .L1413 + ldr w0, [x0, #:lo12:.LANCHOR2] + stp x19, x20, [sp, 16] + tbz x0, 12, .L1417 adrp x1, .LANCHOR4 - adrp x0, .LC125 add x1, x1, :lo12:.LANCHOR4 - add x0, x0, :lo12:.LC125 - add x1, x1, 48 - mov w2, 239 + adrp x0, .LC122 mov w3, 0 + mov w2, 239 + add x1, x1, 48 + add x0, x0, :lo12:.LC122 bl printk -.L1413: +.L1417: adrp x19, .LANCHOR3 - mov w1, 255 add x19, x19, :lo12:.LANCHOR3 + add x20, x19, 1416 mov w2, 512 - add x0, x19, 1424 - bl ftl_memset - ldrh w0, [x19,1384] mov w1, 255 - ldrb w2, [x19,1329] - mul w2, w0, w2 - ldr x0, [x19,1944] + mov x0, x20 + bl ftl_memset + ldrb w0, [x19, 1321] + mov w1, 255 + ldrh w2, [x19, 1376] + mul w2, w2, w0 + ldr x0, [x19, 1936] lsl w2, w2, 2 bl ftl_memset - mov w0, 0 -.L1414: - ldrh w1, [x19,1384] - ldrb w2, [x19,1329] - mul w1, w1, w2 - cmp w0, w1, lsl 1 - bge .L1423 - uxtw x2, w0 - ldr x1, [x19,1936] - ldr w1, [x1,x2,lsl 2] - cmn w1, #1 - beq .L1415 - uxtb w1, w1 - add x3, x19, 1424 - ldrh w4, [x3,w1,sxtw 1] - strh w0, [x3,w1,sxtw 1] - ldr x1, [x19,1944] - strh w4, [x1,x2,lsl 1] -.L1415: - add w0, w0, 1 - uxth w0, w0 - b .L1414 -.L1423: - ldr x19, [sp,16] + mov w1, 0 +.L1418: + ldrh w0, [x19, 1376] + ldrb w2, [x19, 1321] + mul w0, w0, w2 + cmp w1, w0, lsl 1 + blt .L1420 + ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 32 ret +.L1420: + ldr x0, [x19, 1928] + uxtw x2, w1 + ldr w0, [x0, x2, lsl 2] + cmn w0, #1 + beq .L1419 + and x0, x0, 255 + ldrh w3, [x20, x0, lsl 1] + strh w1, [x20, x0, lsl 1] + ldr x0, [x19, 1936] + strh w3, [x0, x2, lsl 1] +.L1419: + add w1, w1, 1 + and w1, w1, 65535 + b .L1418 .size lpa_rebuild_hash, .-lpa_rebuild_hash .align 2 .global zftl_read_flash_info .type zftl_read_flash_info, %function zftl_read_flash_info: stp x29, x30, [sp, -32]! - mov w1, 0 mov w2, 11 + mov w1, 0 add x29, sp, 0 - str x19, [sp,16] + str x19, [sp, 16] mov x19, x0 bl ftl_memset adrp x1, .LANCHOR2 adrp x0, .LANCHOR0 - add x0, x0, :lo12:.LANCHOR0 add x1, x1, :lo12:.LANCHOR2 + add x0, x0, :lo12:.LANCHOR0 add x1, x1, 8 - strb wzr, [x19,10] - mov w5, 1 - ldrb w2, [x1,9] - ldrh w3, [x0,2] + strb wzr, [x19, 10] + mov w4, 1 + ldrb w2, [x1, 9] + ldrh w3, [x0, 2] + add x0, x0, 1196 mul w2, w2, w3 - strh w2, [x19,4] - ldrb w2, [x0,1244] - strb w2, [x19,7] - ldr w2, [x0,1032] + strh w2, [x19, 4] + ldrb w2, [x0, 53] + strb w2, [x19, 7] + ldr w2, [x0, -164] str w2, [x19] - ldrb w2, [x1,9] - strb w2, [x19,6] + ldrb w2, [x1, 9] + strb w2, [x19, 6] + ldrb w3, [x0, -43] mov w2, 32 - ldrb w4, [x0,1153] - ldrb w1, [x1,7] - strb w1, [x19,9] - mov x1, 0 - strb w2, [x19,8] -.L1425: - cmp w4, w1, uxtb - bls .L1427 - add x2, x0, 1248 - ldrb w3, [x19,10] - ldrb w2, [x1,x2] - add x1, x1, 1 - lsl w2, w5, w2 - orr w2, w2, w3 - strb w2, [x19,10] - b .L1425 -.L1427: - ldr x19, [sp,16] + ldrb w1, [x1, 7] + strb w2, [x19, 8] + mov x2, 0 + strb w1, [x19, 9] +.L1429: + cmp w3, w2, uxtb + bhi .L1430 + ldr x19, [sp, 16] ldp x29, x30, [sp], 32 ret +.L1430: + ldrb w1, [x2, x0] + add x2, x2, 1 + ldrb w5, [x19, 10] + lsl w1, w4, w1 + orr w1, w1, w5 + strb w1, [x19, 10] + b .L1429 .size zftl_read_flash_info, .-zftl_read_flash_info .align 2 - .global gc_init - .type gc_init, %function -gc_init: - stp x29, x30, [sp, -48]! - mov w1, 0 - mov w2, 2216 - add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x20, .LANCHOR0 - adrp x19, .LANCHOR3 - add x20, x20, :lo12:.LANCHOR0 - add x19, x19, :lo12:.LANCHOR3 - stp x21, x22, [sp,32] - adrp x21, .LANCHOR5 - add x22, x20, 3424 - add x21, x21, :lo12:.LANCHOR5 - mov x0, x22 - strb wzr, [x19,1345] - strh wzr, [x19,1386] - strb wzr, [x21,218] - str wzr, [x21,220] - bl ftl_memset - ldrh w1, [x19,1384] - mov w0, -1 - ldrb w3, [x19,1329] - strh w0, [x20,3424] - lsr w0, w1, 2 - lsr w2, w1, 1 - strh w0, [x20,3460] - strh w0, [x20,3406] - ldrh w0, [x19,1346] - strh w2, [x20,3462] - mul w2, w1, w3 - mul w0, w0, w3 - strh w1, [x20,3408] - mov w1, 4 - uxth w2, w2 - lsl w0, w0, 2 - sub w4, w2, #32 - strh w2, [x20,3402] - strh w4, [x20,3404] - strh w1, [x21,224] - strh wzr, [x19,1360] - strh wzr, [x19,1362] - strh wzr, [x19,1364] - str xzr, [x20,3432] - bl ftl_malloc - ldrb w1, [x19,1329] - str x0, [x21,232] - ldrh w0, [x19,1346] - mul w0, w0, w1 - lsl w0, w0, 2 - bl ftl_malloc - str x0, [x21,240] - ldrh w1, [x19,1346] - ldrb w0, [x19,1329] - mul w0, w1, w0 - bl ftl_malloc - str x0, [x19,1336] - ldrb w1, [x19,1329] - ldrh w0, [x19,1346] - mul w0, w0, w1 - lsl w0, w0, 2 - bl ftl_malloc - str x0, [x19,1320] - ldrb w1, [x19,1329] - ldrh w0, [x19,1346] - mul w0, w0, w1 - lsl w0, w0, 2 - bl ftl_malloc - str x0, [x21,248] - ldrh w0, [x19,1388] - ldp x21, x22, [sp,32] - lsr w0, w0, 2 - strh w0, [x20,3400] - ldp x19, x20, [sp,16] - ldp x29, x30, [sp], 48 - ret - .size gc_init, .-gc_init - .align 2 .global gc_static_wearleveling .type gc_static_wearleveling, %function gc_static_wearleveling: stp x29, x30, [sp, -144]! add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] adrp x19, .LANCHOR0 add x0, x19, :lo12:.LANCHOR0 - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] - stp x27, x28, [sp,80] - ldr x0, [x0,3392] - ldr w1, [x0,32] + stp x21, x22, [sp, 32] + stp x23, x24, [sp, 48] + stp x25, x26, [sp, 64] + stp x27, x28, [sp, 80] + ldr x0, [x0, 3384] + ldr w1, [x0, 32] mov w0, 10240 cmp w1, w0 - bls .L1430 + bls .L1433 bl ftl_tmp_into_update -.L1430: - add x4, x19, :lo12:.LANCHOR0 - ldr x1, [x4,1120] - ldr w2, [x1,568] - ldr w3, [x1,12] - add w0, w2, 32768 - add w0, w0, 3232 - cmp w3, w0 - bcs .L1431 - ldr x0, [x4,3392] - ldr w4, [x1,572] - ldr w5, [x0,36] - add w4, w4, 256 - mov w0, 0 - cmp w5, w4 - bcc .L1524 -.L1431: - add w2, w2, 860160 - add w2, w2, 3840 - cmp w3, w2 - bhi .L1433 - add x0, x19, :lo12:.LANCHOR0 - ldr x2, [x0,3392] - ldr w0, [x1,572] - ldr w2, [x2,36] - add w0, w0, 32 - cmp w2, w0 - bls .L1485 .L1433: - add x0, x19, :lo12:.LANCHOR0 - mov w22, 0 - mov w20, 65535 - adrp x25, .LC126 - str w22, [x29,128] - mov w27, w22 - ldr x0, [x0,3392] - mov w26, w22 - str w22, [x29,136] - mov w24, w22 - str w22, [x29,140] - mov w28, w22 - ldr w2, [x0,36] - mov w21, w20 - str w2, [x1,572] - mov w8, w20 - str w3, [x1,568] - adrp x9, .LANCHOR2 - add x25, x25, :lo12:.LC126 - ldrh w23, [x0,134] -.L1435: - add x4, x19, :lo12:.LANCHOR0 - ldrh w0, [x4,1088] - cmp w0, w23 - bls .L1546 - uxtw x7, w23 - ldr x0, [x4,1096] - lsl x1, x7, 2 - add x6, x0, x1 - ldrb w2, [x6,2] - and w3, w2, 224 - cmp w3, 224 - beq .L1436 - tbz x2, 3, .L1437 - ldrh w3, [x0,x1] - ldr w2, [x0,x1] - and w3, w3, 2047 - ubfx x2, x2, 11, 8 - b .L1438 -.L1437: - tst w2, 24 - bne .L1439 - ldrh w3, [x0,x1] - mov w2, 65535 - and w3, w3, 2047 - b .L1438 -.L1439: - ldr w2, [x0,x1] - mov w3, 65535 - ubfx x2, x2, 11, 8 - b .L1440 -.L1438: - ldr w4, [x29,136] - add w26, w26, 1 - cmp w20, w3 - add w4, w4, w3 - str w4, [x29,136] - uxth w26, w26 - bls .L1483 - add x4, x19, :lo12:.LANCHOR0 - mov w20, w3 - ldr x4, [x4,1120] - strh w23, [x4,586] -.L1483: - cmp w24, w3 - bcs .L1441 - mov w22, w23 - mov w24, w3 -.L1441: - cmp w2, w8 - beq .L1442 -.L1440: - ldr w4, [x29,140] - add w27, w27, 1 - cmp w21, w2 - add w4, w4, w2 - str w4, [x29,140] - uxth w27, w27 - bls .L1443 - add x4, x19, :lo12:.LANCHOR0 - mov w21, w2 - ldr x4, [x4,1120] - strh w23, [x4,584] -.L1443: - cmp w28, w2 - bcs .L1442 - str w23, [x29,128] - mov w28, w2 -.L1442: - cmp w3, 9 - bls .L1487 - cmp w2, 9 + add x3, x19, :lo12:.LANCHOR0 + mov w4, 36000 + ldr x0, [x3, 1128] + ldr w1, [x0, 568] + ldr w2, [x0, 12] + add w4, w1, w4 + cmp w2, w4 + bcs .L1434 + ldr x4, [x3, 3384] + ldr w3, [x0, 572] + add w3, w3, 256 + ldr w4, [x4, 36] + cmp w4, w3 + bcc .L1486 +.L1434: + add w1, w1, 860160 + add w1, w1, 3840 + cmp w2, w1 bhi .L1436 -.L1487: - ldr w2, [x9,#:lo12:.LANCHOR2] - tbz x2, 8, .L1436 - ldrh w2, [x0,x1] - ldr w3, [x0,x1] - add x0, x19, :lo12:.LANCHOR0 - ldrb w5, [x6,2] - mov w1, w23 - ldrb w6, [x6,3] - and w2, w2, 2047 - ldr x10, [x0,1112] - ubfx x4, x5, 3, 2 - mov x0, x25 - ubfx x3, x3, 11, 8 - ubfx x5, x5, 5, 3 - str x9, [x29,112] - ldrh w7, [x10,x7,lsl 1] - str x8, [x29,120] - bl printk - ldr x9, [x29,112] - ldr x8, [x29,120] + add x1, x19, :lo12:.LANCHOR0 + ldr x3, [x1, 3384] + ldr w1, [x0, 572] + add w1, w1, 32 + ldr w3, [x3, 36] + cmp w3, w1 + bls .L1487 .L1436: - add w23, w23, 1 - uxth w23, w23 - b .L1435 -.L1546: - ldr x0, [x4,1120] - mov w1, 255 + add x24, x19, :lo12:.LANCHOR0 + mov w20, 65535 + adrp x8, .LC123 + mov w21, w20 + mov w9, w20 + add x8, x8, :lo12:.LC123 + ldr x1, [x24, 3384] + mov w28, 0 + mov w27, 0 + mov w26, 0 + mov w25, 0 + mov w23, 0 + adrp x10, .LANCHOR2 + stp wzr, wzr, [x29, 128] + ldr w3, [x1, 36] + str w3, [x0, 572] + str w2, [x0, 568] + str wzr, [x29, 136] + ldrh w22, [x1, 134] +.L1438: + ldrh w0, [x24, 1096] + cmp w0, w22 + bhi .L1447 + ldr x0, [x24, 1128] mov w2, 128 - str x4, [x29,120] + mov w1, 255 + adrp x22, .LANCHOR2 add x0, x0, 264 - adrp x23, .LANCHOR2 - strh wzr, [x0,-142] + strh wzr, [x0, -142] bl ftl_memset - ldr x4, [x29,120] - ldr x0, [x4,1120] - ldr x10, [x4,1096] - ldrh w7, [x0,586] - ldr w0, [x23,#:lo12:.LANCHOR2] - lsl x9, x7, 2 - mov x1, x7 + ldr x0, [x24, 1128] + ldr w2, [x22, #:lo12:.LANCHOR2] + ldr x10, [x24, 1104] + ldrh w0, [x0, 586] + mov x1, x0 + lsl x9, x0, 2 add x8, x10, x9 - tbz x0, 10, .L1446 - ldr x11, [x4,1112] - adrp x0, .LC127 - ldrh w2, [x10,x9] - add x0, x0, :lo12:.LC127 - ldr w3, [x10,x9] - ldrb w5, [x8,2] - and w2, w2, 2047 - ldrb w6, [x8,3] + tbz x2, 10, .L1448 + ldr x5, [x24, 1120] + ldrb w6, [x8, 3] + ldrb w4, [x8, 2] + ldr w3, [x10, x9] + ldrh w7, [x5, x0, lsl 1] + adrp x0, .LC124 + ldrh w2, [x10, x9] + ubfx x5, x4, 5, 3 + stp x9, x10, [x29, 104] ubfx x3, x3, 11, 8 - ldrh w7, [x11,x7,lsl 1] - ubfx x4, x5, 3, 2 - ubfx x5, x5, 5, 3 - str x9, [x29,104] - str x10, [x29,112] - str x8, [x29,120] + str x8, [x29, 120] + and w2, w2, 2047 + ubfx x4, x4, 3, 2 + add x0, x0, :lo12:.LC124 bl printk - ldr x9, [x29,104] - ldr x10, [x29,112] - ldr x8, [x29,120] -.L1446: - ldrb w0, [x8,2] - adrp x25, .LANCHOR5 + ldp x9, x10, [x29, 104] + ldr x8, [x29, 120] +.L1448: + ldrb w0, [x8, 2] + adrp x24, .LANCHOR5 and w0, w0, 224 cmp w0, 32 - bne .L1447 - add x0, x19, :lo12:.LANCHOR0 - ldr x0, [x0,3392] - ldrh w0, [x0,688] - cmp w0, 2 - bls .L1447 - add x0, x25, :lo12:.LANCHOR5 - mov w1, 1 - str w1, [x0,256] -.L1447: - ldrb w0, [x8,2] - tbz x0, 3, .L1448 - add x3, x19, :lo12:.LANCHOR0 - add x1, x25, :lo12:.LANCHOR5 - ldr x0, [x3,3392] - ldrh w1, [x1,260] - ldrh w2, [x0,96] - ldrh w0, [x10,x9] - and w0, w0, 2047 - add w0, w0, w1, lsr 2 - cmp w2, w0 - ble .L1448 - ldrb w0, [x8,2] - and w1, w0, 192 - cmp w1, 64 bne .L1449 - ldr x0, [x3,1120] - mov w1, 0 - mov w2, 1 - str x3, [x29,120] - ldrh w0, [x0,586] - bl gc_add_sblk - ldr x3, [x29,120] - mov w0, 1 - strh w0, [x3,5616] - b .L1448 -.L1449: - tst w0, 224 - bne .L1448 - ldr x1, [x3,1120] - mov w0, 65535 - ldrh w2, [x1,590] - cmp w2, w0 - bne .L1448 - ldrh w0, [x1,586] - ldrh w1, [x1,588] - str x3, [x29,120] - cmp w1, w0 - beq .L1448 - bl zftl_remove_free_node - ldr x3, [x29,120] - ldr x0, [x3,1120] - ldrh w1, [x0,586] - strh w1, [x0,590] - mov w1, -1 - strh w1, [x0,586] -.L1448: add x0, x19, :lo12:.LANCHOR0 - ldr w2, [x23,#:lo12:.LANCHOR2] - ldr x1, [x0,1120] - ldr x10, [x0,1096] - ldrh w7, [x1,584] - lsl x9, x7, 2 - mov x1, x7 - add x8, x10, x9 - tbz x2, 10, .L1450 - ldr x11, [x0,1112] - adrp x0, .LC128 - ldrh w2, [x10,x9] - add x0, x0, :lo12:.LC128 - ldr w3, [x10,x9] - ldrb w5, [x8,2] - and w2, w2, 2047 - ldrb w6, [x8,3] - ubfx x3, x3, 11, 8 - ldrh w7, [x11,x7,lsl 1] - ubfx x4, x5, 3, 2 - ubfx x5, x5, 5, 3 - str x9, [x29,104] - str x10, [x29,112] - str x8, [x29,120] - bl printk - ldr x9, [x29,104] - ldr x10, [x29,112] - ldr x8, [x29,120] -.L1450: - ldrb w0, [x8,2] - tbz x0, 3, .L1451 + ldr x0, [x0, 3384] + ldrh w0, [x0, 688] + cmp w0, 2 + bls .L1449 + add x0, x24, :lo12:.LANCHOR5 + mov w1, 1 + str w1, [x0, 212] +.L1449: + ldrb w0, [x8, 2] + tbz x0, 3, .L1450 add x3, x19, :lo12:.LANCHOR0 - add x1, x25, :lo12:.LANCHOR5 - ldr x0, [x3,3392] - ldrh w1, [x1,262] - ldrh w2, [x0,98] - ldr w0, [x10,x9] - ubfx x0, x0, 11, 8 - add w0, w0, w1, lsr 2 + ldrh w1, [x10, x9] + and w1, w1, 2047 + ldr x0, [x3, 3384] + ldrh w2, [x0, 96] + add x0, x24, :lo12:.LANCHOR5 + ldrh w0, [x0, 216] + add w0, w1, w0, lsr 2 cmp w2, w0 - ble .L1451 - ldrb w0, [x8,2] + ble .L1450 + ldrb w0, [x8, 2] and w1, w0, 192 cmp w1, 64 - bne .L1452 - ldr x0, [x3,1120] - mov w1, 0 + bne .L1451 + ldr x0, [x3, 1128] mov w2, 1 - str x3, [x29,120] - ldrh w0, [x0,584] + str x3, [x29, 120] + mov w1, 0 + ldrh w0, [x0, 586] bl gc_add_sblk - ldr x3, [x29,120] + ldr x3, [x29, 120] mov w0, 1 - strh w0, [x3,5616] - b .L1451 -.L1452: - and w0, w0, 248 - cmp w0, 16 - bne .L1451 - ldr x1, [x3,1120] - mov w0, 65535 - ldrh w2, [x1,588] - cmp w2, w0 - bne .L1451 - ldrh w0, [x1,584] - ldrh w1, [x1,590] - str x3, [x29,120] - cmp w1, w0 - beq .L1451 - bl zftl_remove_free_node - ldr x3, [x29,120] - ldr x0, [x3,1120] - ldrh w1, [x0,584] - strh w1, [x0,588] - mov w1, -1 - strh w1, [x0,584] -.L1451: - add x4, x19, :lo12:.LANCHOR0 - ldr w0, [x23,#:lo12:.LANCHOR2] - ldr x1, [x4,1096] - tbz x0, 10, .L1453 - uxtw x7, w22 - ldr x8, [x4,1112] - lsl x0, x7, 2 - add x6, x1, x0 - ldrh w7, [x8,x7,lsl 1] - ldrh w2, [x1,x0] - ldr w3, [x1,x0] - adrp x0, .LC129 - ldrb w5, [x6,2] - add x0, x0, :lo12:.LC129 - ldrb w6, [x6,3] - mov w1, w22 - ubfx x4, x5, 3, 2 - and w2, w2, 2047 - ubfx x3, x3, 11, 8 - ubfx x5, x5, 5, 3 - bl printk -.L1453: - add x4, x19, :lo12:.LANCHOR0 - ldr w0, [x23,#:lo12:.LANCHOR2] - ldr x1, [x4,1096] - tbz x0, 10, .L1454 - ldr w7, [x29,128] - ldr x8, [x4,1112] - lsl x0, x7, 2 - add x6, x1, x0 - ldrh w2, [x1,x0] - ldr w3, [x1,x0] - adrp x0, .LC130 - ldrb w5, [x6,2] - mov x1, x7 - ldrb w6, [x6,3] - add x0, x0, :lo12:.LC130 - ldrh w7, [x8,x7,lsl 1] - ubfx x4, x5, 3, 2 - and w2, w2, 2047 - ubfx x3, x3, 11, 8 - ubfx x5, x5, 5, 3 - bl printk -.L1454: - ldr w1, [x29,136] + strh w0, [x3, 5608] +.L1450: add x0, x19, :lo12:.LANCHOR0 - udiv w3, w1, w26 - ldr w1, [x29,140] - ldr x0, [x0,3392] - strh w24, [x0,96] - strh w28, [x0,98] - strh w20, [x0,92] - strh w21, [x0,94] - udiv w4, w1, w27 - strh w3, [x0,88] - strh w4, [x0,90] - ldr w0, [x23,#:lo12:.LANCHOR2] + ldr w2, [x22, #:lo12:.LANCHOR2] + ldr x1, [x0, 1128] + ldr x10, [x0, 1104] + ldrh w5, [x1, 584] + mov x1, x5 + lsl x9, x5, 2 + add x8, x10, x9 + tbz x2, 10, .L1452 + ldr x0, [x0, 1120] + ldrb w6, [x8, 3] + ldrb w4, [x8, 2] + ldr w3, [x10, x9] + ldrh w7, [x0, x5, lsl 1] + adrp x0, .LC125 + ldrh w2, [x10, x9] + ubfx x5, x4, 5, 3 + stp x9, x10, [x29, 104] + ubfx x3, x3, 11, 8 + str x8, [x29, 120] + and w2, w2, 2047 + ubfx x4, x4, 3, 2 + add x0, x0, :lo12:.LC125 + bl printk + ldp x9, x10, [x29, 104] + ldr x8, [x29, 120] +.L1452: + ldrb w0, [x8, 2] + tbz x0, 3, .L1453 + add x3, x19, :lo12:.LANCHOR0 + ldr w1, [x10, x9] + ldr x0, [x3, 3384] + ubfx x1, x1, 11, 8 + ldrh w2, [x0, 98] + add x0, x24, :lo12:.LANCHOR5 + ldrh w0, [x0, 218] + add w0, w1, w0, lsr 2 + cmp w2, w0 + ble .L1453 + ldrb w0, [x8, 2] + and w1, w0, 192 + cmp w1, 64 + bne .L1454 + ldr x0, [x3, 1128] + mov w2, 1 + str x3, [x29, 120] + mov w1, 0 + ldrh w0, [x0, 584] + bl gc_add_sblk + ldr x3, [x29, 120] + mov w0, 1 + strh w0, [x3, 5608] +.L1453: + ldr w0, [x22, #:lo12:.LANCHOR2] tbz x0, 10, .L1455 - adrp x0, .LC131 - mov w1, w26 - add x0, x0, :lo12:.LC131 - mov w2, w27 - uxth w3, w3 - uxth w4, w4 + add x0, x19, :lo12:.LANCHOR0 + uxtw x6, w28 + lsl x1, x6, 2 + ldr x2, [x0, 1104] + ldr x0, [x0, 1120] + add x5, x2, x1 + ldr w3, [x2, x1] + ldrh w7, [x0, x6, lsl 1] + adrp x0, .LC126 + ldrb w6, [x5, 3] + add x0, x0, :lo12:.LC126 + ldrb w4, [x5, 2] + ubfx x3, x3, 11, 8 + ldrh w2, [x2, x1] + mov w1, w28 + ubfx x5, x4, 5, 3 + and w2, w2, 2047 + ubfx x4, x4, 3, 2 bl printk .L1455: - ldr w0, [x23,#:lo12:.LANCHOR2] + ldr w0, [x22, #:lo12:.LANCHOR2] tbz x0, 10, .L1456 - add x6, x25, :lo12:.LANCHOR5 - adrp x0, .LC132 - add x0, x0, :lo12:.LC132 - mov w1, w20 - mov w2, w21 - mov w3, w24 - ldrh w5, [x6,260] - mov w4, w28 - ldrh w6, [x6,262] + add x0, x19, :lo12:.LANCHOR0 + ldr w6, [x29, 128] + ldr x2, [x0, 1104] + lsl x1, x6, 2 + ldr x0, [x0, 1120] + add x5, x2, x1 + ldr w3, [x2, x1] + ldrh w7, [x0, x6, lsl 1] + adrp x0, .LC127 + ldrh w2, [x2, x1] + add x0, x0, :lo12:.LC127 + ldrb w6, [x5, 3] + ubfx x3, x3, 11, 8 + ldr w1, [x29, 128] + and w2, w2, 2047 + ldrb w4, [x5, 2] + ubfx x5, x4, 5, 3 + ubfx x4, x4, 3, 2 bl printk .L1456: - add x1, x25, :lo12:.LANCHOR5 - sub w0, w28, w21 - str w0, [x29,140] - ldrh w0, [x1,262] - ldr w2, [x29,140] - cmp w2, w0 - bgt .L1457 - ldrh w1, [x1,260] - sub w0, w24, w20 - cmp w0, w1 - ble .L1486 -.L1457: + ldr w1, [x29, 132] add x0, x19, :lo12:.LANCHOR0 - mov w26, 0 - mov w22, w26 - ldr x1, [x0,1120] - ldr x0, [x0,3392] - ldrh w28, [x1,580] - ldrh w27, [x0,134] - sub w0, w24, w20 - str w0, [x29,136] - adrp x0, .LC134 - add x0, x0, :lo12:.LC134 - adrp x24, .LC133 - str x0, [x29,128] - add x0, x24, :lo12:.LC133 - str x0, [x29,120] + ldr x0, [x0, 3384] + udiv w3, w1, w26 + ldr w1, [x29, 136] + strh w25, [x0, 96] + udiv w4, w1, w27 + strh w23, [x0, 98] + strh w20, [x0, 92] + strh w21, [x0, 94] + strh w3, [x0, 88] + strh w4, [x0, 90] + ldr w0, [x22, #:lo12:.LANCHOR2] + tbz x0, 10, .L1457 + adrp x0, .LC128 + and w4, w4, 65535 + and w3, w3, 65535 + mov w2, w27 + mov w1, w26 + add x0, x0, :lo12:.LC128 + bl printk +.L1457: + ldr w0, [x22, #:lo12:.LANCHOR2] + tbz x0, 10, .L1458 + add x0, x24, :lo12:.LANCHOR5 + mov w4, w23 + mov w3, w25 + mov w2, w21 + mov w1, w20 + ldrh w6, [x0, 218] + ldrh w5, [x0, 216] + adrp x0, .LC129 + add x0, x0, :lo12:.LC129 + bl printk +.L1458: + add x1, x24, :lo12:.LANCHOR5 + sub w0, w23, w21 + str w0, [x29, 128] + ldrh w0, [x1, 218] + ldr w2, [x29, 128] + cmp w2, w0 + bgt .L1459 + ldrh w1, [x1, 216] + sub w0, w25, w20 + cmp w0, w1 + ble .L1488 .L1459: - add x1, x19, :lo12:.LANCHOR0 - ldrh w0, [x1,1088] - cmp w27, w0 - bcs .L1468 + add x8, x19, :lo12:.LANCHOR0 + mov w26, 0 + mov x27, x8 + mov w23, 0 + ldr x0, [x8, 1128] + ldrh w28, [x0, 580] + ldr x0, [x8, 3384] + ldrh w0, [x0, 134] + str w0, [x29, 132] + add x0, x8, 3416 + str x0, [x29, 136] + adrp x0, .LC131 + add x0, x0, :lo12:.LC131 + str x0, [x29, 120] +.L1461: + ldrh w0, [x27, 1096] + ldr w1, [x29, 132] + cmp w1, w0 + bcc .L1471 +.L1470: + add x0, x19, :lo12:.LANCHOR0 + ldr x0, [x0, 1128] + str w28, [x0, 580] +.L1460: + cbz w21, .L1473 + add x0, x19, :lo12:.LANCHOR0 + ldr x1, [x0, 3384] + ldrh w1, [x1, 134] +.L1474: + ldrh w2, [x0, 1096] + cmp w2, w1 + bhi .L1476 + ldr x0, [x0, 3384] + ldrh w1, [x0, 72] + add w1, w21, w1 + strh w1, [x0, 72] + ldrh w1, [x0, 98] + cmp w21, w1 + bcs .L1473 + sub w21, w1, w21 + strh w21, [x0, 98] +.L1473: + cbz w20, .L1479 + add x0, x19, :lo12:.LANCHOR0 + ldr x1, [x0, 3384] + ldrh w1, [x1, 134] +.L1480: + ldrh w2, [x0, 1096] + cmp w2, w1 + bhi .L1482 + ldr x0, [x0, 3384] + ldrh w1, [x0, 74] + add w1, w20, w1 + strh w1, [x0, 74] + ldrh w1, [x0, 96] + cmp w20, w1 + bcs .L1479 + sub w20, w1, w20 + strh w20, [x0, 96] +.L1479: + adrp x5, .LANCHOR3 + add x5, x5, :lo12:.LANCHOR3 + mov w1, 0 + add x0, x5, 1368 + bl _list_get_gc_head_node + and w1, w0, 65535 + mov w2, 65535 + cmp w1, w2 + beq .L1437 + add x19, x19, :lo12:.LANCHOR0 + ubfiz x1, x1, 1, 16 + ldrh w2, [x5, 1376] + ldr x3, [x19, 1120] + ldrh w1, [x3, x1] + cmp w1, w2, lsr 1 + bhi .L1437 + add w23, w23, 1 + mov w2, 1 + mov w1, 0 + bl gc_add_sblk +.L1437: + add w0, w23, w26 +.L1432: + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] + ldp x27, x28, [sp, 80] + ldp x29, x30, [sp], 144 + ret +.L1447: + uxtw x7, w22 + ldr x5, [x24, 1104] + lsl x2, x7, 2 + add x6, x5, x2 + ldrb w0, [x6, 2] + and w1, w0, 224 + cmp w1, 224 + beq .L1439 + tbz x0, 3, .L1440 + ldr w0, [x5, x2] + ldrh w1, [x5, x2] + ubfx x0, x0, 11, 8 + and w1, w1, 2047 +.L1441: + ldr w3, [x29, 132] + add w26, w26, 1 + and w26, w26, 65535 + cmp w20, w1 + add w3, w3, w1 + str w3, [x29, 132] + bls .L1485 + ldr x3, [x24, 1128] + mov w20, w1 + strh w22, [x3, 586] +.L1485: + cmp w25, w1 + bcs .L1444 + mov w28, w22 + mov w25, w1 +.L1444: + cmp w0, w9 + bne .L1443 +.L1445: + cmp w0, 9 + ccmp w1, 9, 0, hi + bhi .L1439 + ldr w0, [x10, #:lo12:.LANCHOR2] + tbz x0, 8, .L1439 + ldr x0, [x24, 1120] + mov w1, w22 + ldrb w4, [x6, 2] + ldrb w6, [x6, 3] + ldr w3, [x5, x2] + ldrh w7, [x0, x7, lsl 1] + mov x0, x8 + ldrh w2, [x5, x2] + ubfx x5, x4, 5, 3 + str x10, [x29, 104] + ubfx x4, x4, 3, 2 + str w9, [x29, 112] + ubfx x3, x3, 11, 8 + str x8, [x29, 120] + and w2, w2, 2047 + bl printk + ldr w9, [x29, 112] + ldr x10, [x29, 104] + ldr x8, [x29, 120] +.L1439: + add w22, w22, 1 + and w22, w22, 65535 + b .L1438 +.L1440: + tst w0, 24 + bne .L1442 + ldrh w1, [x5, x2] + mov w0, 65535 + and w1, w1, 2047 + b .L1441 +.L1442: + ldr w0, [x5, x2] + mov w1, 65535 + ubfx x0, x0, 11, 8 +.L1443: + ldr w3, [x29, 136] + add w27, w27, 1 + and w27, w27, 65535 + cmp w21, w0 + add w3, w3, w0 + str w3, [x29, 136] + bls .L1446 + ldr x3, [x24, 1128] + mov w21, w0 + strh w22, [x3, 584] +.L1446: + cmp w23, w0 + bcs .L1445 + mov w23, w0 + str w22, [x29, 128] + b .L1445 +.L1451: + tst w0, 224 + bne .L1450 + ldr x1, [x3, 1128] + mov w0, 65535 + ldrh w2, [x1, 590] + cmp w2, w0 + bne .L1450 + ldrh w0, [x1, 586] + str x3, [x29, 120] + ldrh w1, [x1, 588] + cmp w1, w0 + beq .L1450 + bl zftl_remove_free_node + ldr x3, [x29, 120] + ldr x0, [x3, 1128] + ldrh w1, [x0, 586] + strh w1, [x0, 590] + mov w1, -1 + strh w1, [x0, 586] + b .L1450 +.L1454: + and w0, w0, 248 + cmp w0, 16 + bne .L1453 + ldr x1, [x3, 1128] + mov w0, 65535 + ldrh w2, [x1, 588] + cmp w2, w0 + bne .L1453 + ldrh w0, [x1, 584] + str x3, [x29, 120] + ldrh w1, [x1, 590] + cmp w1, w0 + beq .L1453 + bl zftl_remove_free_node + ldr x3, [x29, 120] + ldr x0, [x3, 1128] + ldrh w1, [x0, 584] + strh w1, [x0, 588] + mov w1, -1 + strh w1, [x0, 584] + b .L1453 +.L1471: add w7, w28, 1 - ldr x4, [x1,1096] - uxth w28, w7 - cmp w28, w0 - csel w28, w28, wzr, cc - uxtw x24, w28 - lsl x3, x24, 2 + ldr x4, [x27, 1104] + and w28, w7, 65535 + cmp w0, w28 + csel w28, w28, wzr, hi + uxtw x9, w28 + lsl x3, x9, 2 add x0, x4, x3 - ldrb w0, [x0,2] + ldrb w0, [x0, 2] + tst w0, 192 + beq .L1463 and w2, w0, 224 cmp w2, 224 - beq .L1461 - tst w0, 192 - beq .L1461 + beq .L1463 ubfx x0, x0, 3, 2 - cmp w2, 160 and w1, w0, 1 - tbnz x0, 0, .L1544 - cmp w0, 2 -.L1544: - add x0, x25, :lo12:.LANCHOR5 - bne .L1464 - ldrh w0, [x0,262] - ldr w2, [x29,140] + tbz x0, 0, .L1464 + cmp w2, 160 +.L1551: + bne .L1466 + add x0, x24, :lo12:.LANCHOR5 + ldr w2, [x29, 128] + ldrh w0, [x0, 218] cmp w2, w0 - ble .L1465 - ldr w0, [x4,x3] + ble .L1467 + ldr w0, [x4, x3] ubfx x0, x0, 11, 8 cmp w0, w21 - bls .L1466 - cbz w1, .L1465 - ldrh w0, [x4,x3] + bls .L1468 + cbz w1, .L1467 + ldrh w0, [x4, x3] and w0, w0, 2047 cmp w0, w20 - bgt .L1465 -.L1466: + bgt .L1467 +.L1468: mov w1, 0 - mov w0, w28 + stp x4, x9, [x29, 96] + str x3, [x29, 112] mov w2, 1 - str x4, [x29,104] - str x3, [x29,112] - add w22, w22, 1 + mov w0, w28 bl gc_add_sblk - add x0, x19, :lo12:.LANCHOR0 - mov w1, 1 - add x9, x0, 3424 - ldr x3, [x29,112] - ldr x4, [x29,104] - strh w1, [x0,5616] - ldr w1, [x23,#:lo12:.LANCHOR2] - tbz x1, 10, .L1465 - ldr x1, [x0,1096] - ldr x10, [x0,1112] - add x1, x1, x3 - ldrh w5, [x4,x3] - ldr w6, [x4,x3] - ldr x0, [x29,120] - ldrb w2, [x1,2] - b .L1545 + ldr x1, [x29, 136] + mov w0, 1 + add w23, w23, 1 + ldr x3, [x29, 112] + ldp x4, x9, [x29, 96] + strh w0, [x1, 2192] + ldr w0, [x22, #:lo12:.LANCHOR2] + tbz x0, 10, .L1467 + ldr x0, [x27, 1104] + ldr w6, [x4, x3] + ldrh w5, [x4, x3] + add x3, x0, x3 + ldr x1, [x27, 1120] + ldr x0, [x29, 136] + ubfx x6, x6, 11, 8 + ldrb w2, [x3, 2] + and w5, w5, 2047 + ldrh w3, [x1, x9, lsl 1] + mov w1, w28 + ldrh w4, [x0, 56] + ubfx x2, x2, 5, 3 + adrp x0, .LC130 + add x0, x0, :lo12:.LC130 +.L1552: + bl printk +.L1467: + cmp w23, 4 + ccmp w26, 4, 2, ls + bhi .L1470 +.L1463: + ldr w0, [x29, 132] + add w0, w0, 1 + and w0, w0, 65535 + str w0, [x29, 132] + b .L1461 .L1464: - ldrh w0, [x0,260] - ldr w2, [x29,136] - cmp w2, w0 - ble .L1465 - ldrh w0, [x4,x3] + cmp w0, 2 + b .L1551 +.L1466: + add x2, x24, :lo12:.LANCHOR5 + sub w0, w25, w20 + ldrh w2, [x2, 216] + cmp w0, w2 + ble .L1467 + ldrh w0, [x4, x3] add w2, w20, 8 and w0, w0, 2047 cmp w0, w2 - ble .L1467 - cbz w1, .L1465 - ldr w0, [x4,x3] + ble .L1469 + cbz w1, .L1467 + ldr w0, [x4, x3] add w1, w21, 4 ubfx x0, x0, 11, 8 cmp w0, w1 - bgt .L1465 -.L1467: + bgt .L1467 +.L1469: mov w1, 0 + stp x4, x9, [x29, 96] + str x3, [x29, 112] + mov w2, 1 mov w0, w28 - mov w2, 1 - str x4, [x29,104] - str x3, [x29,112] + bl gc_add_sblk + ldr x1, [x29, 136] + mov w0, 1 add w26, w26, 1 - bl gc_add_sblk - add x0, x19, :lo12:.LANCHOR0 - mov w1, 1 - add x9, x0, 3424 - ldr x3, [x29,112] - ldr x4, [x29,104] - strh w1, [x0,5616] - ldr w1, [x23,#:lo12:.LANCHOR2] - tbz x1, 10, .L1465 - ldr x1, [x0,1096] - ldr x10, [x0,1112] - add x1, x1, x3 - ldrh w5, [x4,x3] - ldr w6, [x4,x3] - ldr x0, [x29,128] - ldrb w2, [x1,2] -.L1545: - ldrh w3, [x10,x24,lsl 1] - mov w1, w28 - ldrh w4, [x9,56] - ubfx x2, x2, 5, 3 - and w5, w5, 2047 + ldr x3, [x29, 112] + ldp x4, x9, [x29, 96] + strh w0, [x1, 2192] + ldr w0, [x22, #:lo12:.LANCHOR2] + tbz x0, 10, .L1467 + ldr x0, [x27, 1104] + ldr w6, [x4, x3] + ldrh w5, [x4, x3] + add x3, x0, x3 + ldr x1, [x27, 1120] + ldr x0, [x29, 136] ubfx x6, x6, 11, 8 - bl printk -.L1465: - cmp w26, 4 - bhi .L1468 - cmp w22, 4 - bhi .L1468 -.L1461: - add w27, w27, 1 - uxth w27, w27 - b .L1459 -.L1468: - add x0, x19, :lo12:.LANCHOR0 - ldr x0, [x0,1120] - str w28, [x0,580] - b .L1458 + ldrb w2, [x3, 2] + and w5, w5, 2047 + ldrh w3, [x1, x9, lsl 1] + mov w1, w28 + ldrh w4, [x0, 56] + ubfx x2, x2, 5, 3 + ldr x0, [x29, 120] + b .L1552 +.L1488: + mov w26, 0 + mov w23, 0 + b .L1460 +.L1476: + ldr x5, [x0, 1104] + ubfiz x4, x1, 2, 16 + add x6, x5, x4 + ldr w2, [x5, x4] + ubfx x3, x2, 11, 8 + cmp w21, w3 + bhi .L1475 + ldrb w6, [x6, 2] + tst w6, 24 + beq .L1475 + sub w3, w3, w21 + bfi w2, w3, 11, 8 + str w2, [x5, x4] +.L1475: + add w1, w1, 1 + and w1, w1, 65535 + b .L1474 +.L1482: + ldr x5, [x0, 1104] + ubfiz x4, x1, 2, 16 + add x6, x5, x4 + ldrh w2, [x5, x4] + and w3, w2, 2047 + cmp w3, w20 + blt .L1481 + ldrb w6, [x6, 2] + and w6, w6, 24 + cmp w6, 16 + beq .L1481 + sub w3, w3, w20 + bfi w2, w3, 0, 11 + strh w2, [x5, x4] +.L1481: + add w1, w1, 1 + and w1, w1, 65535 + b .L1480 +.L1487: + mov w26, 0 + mov w23, 0 + b .L1437 .L1486: - mov w26, 0 - mov w22, w26 -.L1458: - cbz w21, .L1471 - add x0, x19, :lo12:.LANCHOR0 - ldr x0, [x0,3392] - ldrh w0, [x0,134] -.L1472: - add x1, x19, :lo12:.LANCHOR0 - ldrh w2, [x1,1088] - cmp w2, w0 - bls .L1547 - ubfiz x3, x0, 2, 16 - ldr x4, [x1,1096] - add x5, x4, x3 - ldr w1, [x4,x3] - ubfx x2, x1, 11, 8 - cmp w2, w21 - bcc .L1473 - ldrb w5, [x5,2] - tst w5, 24 - beq .L1473 - sub w2, w2, w21 - bfi w1, w2, 11, 8 - str w1, [x4,x3] -.L1473: - add w0, w0, 1 - uxth w0, w0 - b .L1472 -.L1547: - ldr x0, [x1,3392] - ldrh w1, [x0,72] - add w1, w21, w1 - strh w1, [x0,72] - ldrh w1, [x0,98] - cmp w1, w21 - bls .L1471 - sub w21, w1, w21 - strh w21, [x0,98] -.L1471: - cbz w20, .L1477 - add x0, x19, :lo12:.LANCHOR0 - ldr x0, [x0,3392] - ldrh w0, [x0,134] -.L1478: - add x1, x19, :lo12:.LANCHOR0 - ldrh w2, [x1,1088] - cmp w2, w0 - bls .L1548 - ubfiz x3, x0, 2, 16 - ldr x4, [x1,1096] - add x5, x4, x3 - ldrh w1, [x4,x3] - and w2, w1, 2047 - cmp w2, w20 - blt .L1479 - ldrb w5, [x5,2] - and w5, w5, 24 - cmp w5, 16 - beq .L1479 - sub w2, w2, w20 - bfi w1, w2, 0, 11 - strh w1, [x4,x3] -.L1479: - add w0, w0, 1 - uxth w0, w0 - b .L1478 -.L1548: - ldr x0, [x1,3392] - ldrh w1, [x0,74] - add w1, w20, w1 - strh w1, [x0,74] - ldrh w1, [x0,96] - cmp w1, w20 - bls .L1477 - sub w20, w1, w20 - strh w20, [x0,96] -.L1477: - adrp x20, .LANCHOR3 - mov w1, 0 - add x20, x20, :lo12:.LANCHOR3 - add x0, x20, 1376 - bl _list_get_gc_head_node - uxth w1, w0 - mov w2, 65535 - cmp w1, w2 - beq .L1434 - add x19, x19, :lo12:.LANCHOR0 - ubfiz x1, x1, 1, 16 - ldrh w2, [x20,1384] - ldr x3, [x19,1112] - ldrh w1, [x3,x1] - cmp w1, w2, lsr 1 - bhi .L1434 - mov w1, 0 - mov w2, 1 - add w22, w22, 1 - bl gc_add_sblk - b .L1434 -.L1485: - mov w26, 0 - mov w22, w26 -.L1434: - add w0, w26, w22 -.L1524: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 144 - ret + mov w0, 0 + b .L1432 .size gc_static_wearleveling, .-gc_static_wearleveling .align 2 .global zftl_sblk_list_init .type zftl_sblk_list_init, %function zftl_sblk_list_init: - stp x29, x30, [sp, -112]! - mov w2, 6 + stp x29, x30, [sp, -96]! + mov w0, 6 mov w1, 0 add x29, sp, 0 - stp x23, x24, [sp,48] - adrp x23, .LANCHOR0 - mov w24, 0 - stp x19, x20, [sp,16] - add x19, x23, :lo12:.LANCHOR0 - stp x25, x26, [sp,64] - stp x21, x22, [sp,32] - stp x27, x28, [sp,80] - adrp x21, .LANCHOR3 - adrp x26, .LANCHOR4 - ldrh w3, [x19,1088] - adrp x27, .LC0 - ldr x0, [x19,1040] - add x26, x26, :lo12:.LANCHOR4 - add x27, x27, :lo12:.LC0 - add x26, x26, 72 - mul w2, w3, w2 + stp x19, x20, [sp, 16] + adrp x19, .LANCHOR0 + add x19, x19, :lo12:.LANCHOR0 + stp x23, x24, [sp, 48] + stp x25, x26, [sp, 64] + adrp x25, .LANCHOR4 + stp x21, x22, [sp, 32] + adrp x22, .LANCHOR3 + ldrh w2, [x19, 1096] + add x25, x25, :lo12:.LANCHOR4 + str x27, [sp, 80] + add x26, x19, 3372 + add x25, x25, 72 + mov w23, 0 + mul w2, w2, w0 + ldr x0, [x19, 1040] bl ftl_memset - strh wzr, [x19,3376] - add x0, x21, :lo12:.LANCHOR3 + strh wzr, [x19, 3368] + add x0, x22, :lo12:.LANCHOR3 mov w1, 32 - strh wzr, [x19,3378] - strh wzr, [x19,3380] - strh w1, [x0,1416] - ldrh w25, [x0,1346] - ldrb w1, [x0,1329] - str xzr, [x0,1392] - str xzr, [x0,1400] - mul w25, w1, w25 - str xzr, [x0,1408] - str xzr, [x0,1368] - str xzr, [x0,1352] - str xzr, [x0,1376] - mov w0, 32768 - strh wzr, [x19,3382] - sdiv w25, w0, w25 - strh wzr, [x19,3386] - strh wzr, [x19,3384] - sxth w0, w25 - str w0, [x29,108] - ldr x0, [x19,3392] - ldrsh w19, [x0,134] - strh wzr, [x0,146] -.L1550: - add x2, x23, :lo12:.LANCHOR0 - ldrh w0, [x2,1088] - cmp w19, w0 - bge .L1581 - sxtw x25, w19 - ldr x20, [x2,1096] - ldr w0, [x29,108] - add x20, x20, x25, lsl 2 - ldrb w1, [x20,3] - cbz w1, .L1551 - add x0, x21, :lo12:.LANCHOR3 - mov w1, 0 - ldr x4, [x2,3392] - ldrb w5, [x0,1329] - ldrh w6, [x0,1346] - mov w0, w1 -.L1552: - cmp w1, w5 - bge .L1582 - ldrb w2, [x20,3] - asr w2, w2, w1 - tbnz x2, 0, .L1553 - add w0, w6, w0 - sxth w0, w0 - b .L1554 -.L1553: - ldrh w2, [x4,146] - add w2, w2, 1 - strh w2, [x4,146] + strh wzr, [x19, 3370] + strh wzr, [x19, 3372] + ldrb w24, [x0, 1321] + strh w1, [x0, 1408] + str xzr, [x0, 1344] + str xzr, [x0, 1360] + str xzr, [x0, 1368] + str xzr, [x0, 1384] + str xzr, [x0, 1392] + str xzr, [x0, 1400] + ldrh w0, [x0, 1338] + strh wzr, [x19, 3374] + strh wzr, [x19, 3378] + strh wzr, [x19, 3376] + mul w0, w24, w0 + mov w24, 32768 + sdiv w24, w24, w0 + ldr x0, [x19, 3384] + ldrsh w20, [x0, 134] + sxth w24, w24 + strh wzr, [x0, 146] .L1554: - add w1, w1, 1 - b .L1552 -.L1582: - cbz w0, .L1556 + ldrh w0, [x19, 1096] + cmp w20, w0 + blt .L1571 + ldr x0, [x19, 3384] + ldrh w1, [x19, 3368] + strh w1, [x0, 114] + ldrh w1, [x19, 3370] + strh w1, [x0, 118] + ldrh w1, [x19, 3372] + strh w1, [x0, 116] + ldrh w1, [x19, 3374] + strh w1, [x0, 122] + ldrh w1, [x19, 3378] + strh w1, [x0, 120] + ldrh w1, [x19, 3376] + strh w1, [x0, 124] + 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 +.L1571: + ldr x21, [x19, 1104] + sxtw x27, w20 + add x21, x21, x27, lsl 2 + ldrb w0, [x21, 3] + cbz w0, .L1572 + add x0, x22, :lo12:.LANCHOR3 + ldr x3, [x19, 3384] + mov w1, 0 + ldrb w4, [x0, 1321] + ldrh w5, [x0, 1338] + mov w0, 0 +.L1556: + cmp w1, w4 + blt .L1559 + cbz w0, .L1560 mov w1, 32768 sdiv w0, w1, w0 add w0, w0, 1 sxth w0, w0 - b .L1551 -.L1556: - ldrb w1, [x20,2] +.L1555: + mov w1, 6 + ldr x2, [x19, 1040] + smull x1, w20, w1 + add x2, x2, x1 + strh w0, [x2, 4] + mov w2, -1 + ldr x0, [x19, 1040] + add x3, x0, x1 + strh w2, [x3, 2] + strh w2, [x0, x1] + mov w1, 224 + ldrb w0, [x21, 2] + and w0, w0, 224 + cmp w0, 32 + ccmp w0, w1, 4, ne + beq .L1561 + ldr x1, [x19, 1128] + ldrh w2, [x1, 16] + cmp w20, w2 + beq .L1561 + ldrh w2, [x1, 48] + cmp w20, w2 + beq .L1561 + ldrh w1, [x1, 80] + cmp w20, w1 + beq .L1561 + cmp w0, 64 + bne .L1562 + and w21, w20, 65535 + add x0, x22, :lo12:.LANCHOR3 + add x2, x19, 3374 + mov w1, w21 + add x0, x0, 1344 +.L1583: + bl _insert_data_list + ldr x0, [x19, 1120] + ldrh w0, [x0, x27, lsl 1] + cmp w0, 7 + bhi .L1561 + mov w0, w21 + mov w2, 0 + mov w1, 1 +.L1581: + bl gc_add_sblk +.L1561: + add w20, w20, 1 + sxth w20, w20 + b .L1554 +.L1559: + ldrb w2, [x21, 3] + asr w2, w2, w1 + tbnz x2, 0, .L1557 + add w0, w5, w0 + sxth w0, w0 +.L1558: + add w1, w1, 1 + b .L1556 +.L1557: + ldrh w2, [x3, 146] + add w2, w2, 1 + strh w2, [x3, 146] + b .L1558 +.L1560: + ldrb w1, [x21, 2] mov w2, -1 orr w1, w1, -32 - strb w1, [x20,2] - add x1, x23, :lo12:.LANCHOR0 - ldr x1, [x1,1112] - strh w2, [x1,x25,lsl 1] -.L1551: - add x22, x23, :lo12:.LANCHOR0 - mov w1, 6 - smull x1, w19, w1 - ldr x2, [x22,1040] - add x2, x2, x1 - strh w0, [x2,4] - mov w2, -1 - ldr x0, [x22,1040] - add x4, x0, x1 - strh w2, [x4,2] - strh w2, [x0,x1] - ldrb w0, [x20,2] - and w0, w0, 224 - cmp w0, 224 - beq .L1557 - cmp w0, 32 - cset w28, eq - cbnz w28, .L1557 - ldr x1, [x22,1120] - ldrh w2, [x1,16] - cmp w19, w2 - beq .L1557 - ldrh w2, [x1,48] - cmp w19, w2 - beq .L1557 - ldrh w1, [x1,80] - cmp w19, w1 - beq .L1557 - cmp w0, 64 - bne .L1558 - uxth w20, w19 - add x0, x21, :lo12:.LANCHOR3 - add x0, x0, 1352 - mov w1, w20 - add x2, x22, 3382 - b .L1579 -.L1558: + strb w1, [x21, 2] + ldr x1, [x19, 1120] + strh w2, [x1, x27, lsl 1] + b .L1555 +.L1572: + mov w0, w24 + b .L1555 +.L1562: cmp w0, 96 - bne .L1559 - uxth w20, w19 - add x0, x21, :lo12:.LANCHOR3 - add x0, x0, 1368 - mov w1, w20 - add x2, x22, 3384 - b .L1579 -.L1559: - cmp w0, 160 - bne .L1560 - uxth w20, w19 - add x0, x21, :lo12:.LANCHOR3 - add x0, x0, 1376 - mov w1, w20 - add x2, x22, 3386 -.L1579: - bl _insert_data_list - ldr x0, [x22,1112] - ldrh w0, [x0,x25,lsl 1] - cmp w0, 7 - bhi .L1557 - mov w0, w20 - mov w1, 1 - mov w2, w28 - b .L1577 -.L1560: - cbnz w0, .L1557 - ldr x0, [x22,1112] - ldrh w2, [x0,x25,lsl 1] - cbz w2, .L1561 - cmp w24, 2 - bgt .L1562 - adrp x0, .LC135 - mov w1, w19 - add x0, x0, :lo12:.LC135 - add w24, w24, 1 - bl printk - sxth w24, w24 - ldrb w0, [x20,2] - tbz x0, 4, .L1563 - mov w1, 5 - b .L1573 + bne .L1563 + and w21, w20, 65535 + add x0, x22, :lo12:.LANCHOR3 + add x2, x19, 3376 + mov w1, w21 + add x0, x0, 1360 + b .L1583 .L1563: - mov w1, 2 -.L1573: + cmp w0, 160 + bne .L1564 + and w21, w20, 65535 + add x0, x22, :lo12:.LANCHOR3 + add x2, x19, 3378 + mov w1, w21 + add x0, x0, 1368 + b .L1583 +.L1564: + cbnz w0, .L1561 + ldr x0, [x19, 1120] + ldrh w2, [x0, x27, lsl 1] + cbz w2, .L1565 + cmp w23, 2 + bgt .L1566 + mov w1, w20 + adrp x0, .LC132 + add x0, x0, :lo12:.LC132 + bl printk + ldrb w0, [x21, 2] + add w23, w23, 1 + sxth w23, w23 + tbz x0, 4, .L1567 + mov w1, 5 +.L1577: bfi w0, w1, 5, 3 mov w2, 0 - strb w0, [x20,2] + strb w0, [x21, 2] mov w1, 1 - mov w0, w19 -.L1577: - bl gc_add_sblk - b .L1557 -.L1562: - mov x1, x26 + mov w0, w20 + b .L1581 +.L1567: + mov w1, 2 + b .L1577 +.L1566: + mov x1, x25 mov w2, 656 - mov x0, x27 + adrp x0, .LC0 + add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L1561: - ldrb w0, [x20,2] - ands w0, w0, 24 - bne .L1565 - add x0, x21, :lo12:.LANCHOR3 - add x2, x23, :lo12:.LANCHOR0 - add x0, x0, 1392 - mov w1, w19 - add x2, x2, 3376 - b .L1575 .L1565: - cmp w0, 16 - add x2, x23, :lo12:.LANCHOR0 - add x0, x21, :lo12:.LANCHOR3 - bne .L1566 - add x0, x0, 1400 - mov w1, w19 - add x2, x2, 3378 - b .L1575 -.L1566: - add x0, x0, 1408 - mov w1, w19 - add x2, x2, 3380 -.L1575: + ldrb w0, [x21, 2] + ands w0, w0, 24 + bne .L1569 + add x0, x22, :lo12:.LANCHOR3 + add x2, x19, 3368 + mov w1, w20 + add x0, x0, 1384 +.L1579: bl _insert_free_list -.L1557: - add w19, w19, 1 - sxth w19, w19 - b .L1550 -.L1581: - ldr x0, [x2,3392] - ldrh w1, [x2,3376] - strh w1, [x0,114] - ldrh w1, [x2,3378] - strh w1, [x0,118] - ldrh w1, [x2,3380] - strh w1, [x0,116] - ldrh w1, [x2,3382] - strh w1, [x0,122] - ldrh w1, [x2,3386] - strh w1, [x0,120] - ldrh w1, [x2,3384] - strh w1, [x0,124] - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 112 - ret + b .L1561 +.L1569: + cmp w0, 16 + add x0, x22, :lo12:.LANCHOR3 + bne .L1570 + add x2, x19, 3370 + mov w1, w20 + add x0, x0, 1392 + b .L1579 +.L1570: + mov x2, x26 + mov w1, w20 + add x0, x0, 1400 + b .L1579 .size zftl_sblk_list_init, .-zftl_sblk_list_init .align 2 .global pm_free_sblk .type pm_free_sblk, %function pm_free_sblk: - stp x29, x30, [sp, -384]! + stp x29, x30, [sp, -368]! adrp x0, .LANCHOR5 - add x29, sp, 0 add x1, x0, :lo12:.LANCHOR5 - stp x19, x20, [sp,16] - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] - stp x27, x28, [sp,80] + add x29, sp, 0 + stp x19, x20, [sp, 16] mov x19, x0 - ldrh w1, [x1,264] + stp x21, x22, [sp, 32] + stp x23, x24, [sp, 48] + stp x25, x26, [sp, 64] + stp x27, x28, [sp, 80] + ldrh w1, [x1, 220] cmp w1, 128 - bls .L1584 + bls .L1586 adrp x1, .LANCHOR4 - adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 - mov w2, 94 add x1, x1, 96 + mov w2, 94 + adrp x0, .LC0 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L1584: - adrp x20, .LANCHOR0 - mov x1, 0 - add x0, x20, :lo12:.LANCHOR0 - mov w2, w1 - mov w6, 65535 - ldr x3, [x0,3392] - add x0, x19, :lo12:.LANCHOR5 - ldrh w4, [x3,688] - ldrh w5, [x0,264] -.L1587: - add x7, x3, x1, lsl 1 - uxth w0, w1 - ldrh w7, [x7,416] - cmp w7, w6 - beq .L1585 - add w2, w2, 1 - uxth w2, w2 -.L1585: - cmp w2, w4 - bcs .L1586 - cmp w2, w5 - bcs .L1586 - add x1, x1, 1 - cmp x1, 128 - bne .L1587 - mov w0, w1 .L1586: - add w0, w0, 1 - mov w19, 128 - add x22, x29, 128 + adrp x21, .LANCHOR0 + add x0, x21, :lo12:.LANCHOR0 + add x19, x19, :lo12:.LANCHOR5 mov w1, 0 - uxth w0, w0 - mov w2, 256 - cmp w0, 128 - adrp x23, .LANCHOR3 - csel w19, w0, w19, ls - uxth w0, w19 - str w0, [x29,124] - mov x0, x22 - bl ftl_memset - add x0, x20, :lo12:.LANCHOR0 - add x1, x23, :lo12:.LANCHOR3 - mov x3, 0 - ldrb w2, [x0,1257] - ldr x4, [x0,3392] - mov w0, 24 - ldrh w6, [x1,1312] - sub w2, w0, w2 - mov w0, 1 - ldrb w8, [x1,1314] - sub w2, w2, w6 - ldrh w7, [x4,698] - lsl w2, w0, w2 - sub w2, w2, #1 -.L1588: - cmp w7, w3, uxth - bls .L1616 - add x0, x4, x3, lsl 2 - mov x1, 0 - ldr w0, [x0,704] - lsr w0, w0, w6 - and w0, w0, w2 - udiv w0, w0, w8 - uxth w0, w0 + mov w4, 65535 + ldr x0, [x0, 3384] + ldrh w3, [x19, 220] + mov w19, 0 + add x0, x0, 416 + ldrh w2, [x0, 272] .L1589: - ldr w5, [x29,124] - cmp w5, w1, uxth - bls .L1617 - add x5, x4, x1, lsl 1 - ldrh w5, [x5,416] - cmp w5, w0 - bne .L1590 - ldrh w5, [x22,x1,lsl 1] - add w5, w5, 1 - strh w5, [x22,x1,lsl 1] -.L1590: - add x1, x1, 1 - b .L1589 -.L1617: - add x3, x3, 1 - b .L1588 -.L1616: + ldrh w5, [x0] + cmp w5, w4 + beq .L1587 + add w1, w1, 1 + and w1, w1, 65535 +.L1587: + cmp w1, w2 + bcs .L1588 + cmp w1, w3 + bcs .L1588 + add w19, w19, 1 + add x0, x0, 2 + and w19, w19, 65535 + cmp w19, 128 + bne .L1589 +.L1588: + add w19, w19, 1 + mov w0, 128 + and w19, w19, 65535 + add x22, x29, 112 + cmp w19, 129 + mov w2, 256 + csel w19, w19, w0, ne + mov w1, 0 + mov x0, x22 + adrp x23, .LANCHOR3 + bl ftl_memset + str x23, [x29, 104] + add x0, x21, :lo12:.LANCHOR0 add x1, x23, :lo12:.LANCHOR3 - mov x19, 0 - mov w28, 65535 - adrp x25, .LC136 - adrp x26, .LC137 - mov w24, w19 - ldrb w0, [x1,1329] - mov w27, w28 - ldrh w21, [x1,1384] - add x25, x25, :lo12:.LC136 - add x26, x26, :lo12:.LC137 - mul w21, w0, w21 - uxth w21, w21 -.L1593: - ldr w0, [x29,124] - uxth w6, w19 - cmp w6, w0 - bcs .L1618 - add x0, x20, :lo12:.LANCHOR0 - add x2, x23, :lo12:.LANCHOR3 - mov w8, w19 - ldr x0, [x0,3392] - add x1, x0, w19, sxtw 1 - ldrb w4, [x2,1314] - ldrh w3, [x1,416] - ldrh w1, [x0,692] + mov w2, 24 + ldr x5, [x0, 3384] + ldrb w0, [x0, 1205] + ldrh w8, [x1, 1304] + add x4, x5, 704 + sub w2, w2, w0 + ldrb w9, [x1, 1306] + ldrh w1, [x5, 698] + sub w0, w2, w8 + mov w2, 1 + add x1, x1, 176 + lsl w2, w2, w0 + add x1, x5, x1, lsl 2 + sub w2, w2, #1 +.L1591: + cmp x1, x4 + bne .L1594 + ldr x0, [x29, 104] + adrp x27, .LC133 + adrp x28, .LC134 + add x21, x21, :lo12:.LANCHOR0 + add x0, x0, :lo12:.LANCHOR3 + add x27, x27, :lo12:.LC133 + add x28, x28, :lo12:.LC134 + mov x20, 0 + mov w23, 65535 + mov w26, 0 + ldrb w24, [x0, 1321] + ldrh w0, [x0, 1376] + mul w24, w24, w0 + and w24, w24, 65535 +.L1600: + ldr x0, [x21, 3384] + and w25, w20, 65535 + ldr x2, [x29, 104] + mov w6, w20 + add x1, x0, w20, sxtw 1 + add x2, x2, :lo12:.LANCHOR3 + ldrh w3, [x1, 416] + ldrb w4, [x2, 1306] + ldrh w1, [x0, 692] sdiv w1, w1, w4 cmp w1, w3 - bne .L1594 - ldrb w1, [x2,1329] - ldrh w2, [x2,1384] + bne .L1595 + ldrb w1, [x2, 1321] + ldrh w2, [x2, 1376] mul w1, w1, w2 - strh w1, [x22,x19,lsl 1] -.L1594: - ldrh w2, [x22,x19,lsl 1] - cmp w21, w2 - bls .L1595 - cmp w2, wzr - csel w24, w24, w6, eq - csel w21, w21, w2, eq + strh w1, [x22, x20, lsl 1] .L1595: - cmp w3, w27 - beq .L1597 - ldrh w1, [x0,74] + ldrh w2, [x22, x20, lsl 1] + cmp w2, w24 + bcs .L1596 + cmp w2, 0 + csel w26, w26, w25, eq + csel w24, w24, w2, eq +.L1596: + ldrh w1, [x0, 74] cmp w1, 2 bls .L1597 - add x4, x20, :lo12:.LANCHOR0 + mov w1, 65535 + cmp w3, w1 + beq .L1597 + ldr x4, [x21, 1104] ubfiz x1, x3, 2, 16 - ldrh w0, [x0,92] - ldr x4, [x4,1096] + ldrh w0, [x0, 92] add w0, w0, 4 - ldrh w4, [x4,x1] + ldrh w4, [x4, x1] and w4, w4, 2047 cmp w4, w0 bgt .L1597 - mov w1, w8 - mov x0, x25 - str x6, [x29,104] - str x8, [x29,112] + mov w1, w6 + str w6, [x29, 100] + mov x0, x27 bl printk - ldr x6, [x29,104] - ldr x8, [x29,112] - mov w28, w6 + ldr w6, [x29, 100] + mov w23, w25 .L1597: - ldrh w2, [x22,x19,lsl 1] - cbnz w2, .L1598 - add x0, x20, :lo12:.LANCHOR0 - sxtw x6, w8 - ldr x4, [x0,3392] - add x0, x6, 208 - ldrh w3, [x4,x0,lsl 1] - cmp w3, w27 + ldrh w0, [x22, x20, lsl 1] + cbnz w0, .L1598 + sxtw x25, w6 + ldr x0, [x21, 3384] + add x1, x25, 208 + ldrh w3, [x0, x1, lsl 1] + mov w1, 65535 + cmp w3, w1 beq .L1598 - adrp x0, .LANCHOR2 - ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 12, .L1599 - ldrh w4, [x4,688] - mov x0, x26 - mov w1, w8 - str x6, [x29,112] + adrp x1, .LANCHOR2 + ldr w1, [x1, #:lo12:.LANCHOR2] + tbz x1, 12, .L1599 + ldrh w4, [x0, 688] + mov w2, 0 + mov w1, w6 + mov x0, x28 bl printk - ldr x6, [x29,112] .L1599: - add x1, x20, :lo12:.LANCHOR0 - add x6, x6, 208 - str x1, [x29,104] - str x6, [x29,112] - ldr x0, [x1,3392] - ldrh w0, [x0,x6,lsl 1] + ldr x0, [x21, 3384] + add x25, x25, 208 + ldrh w0, [x0, x25, lsl 1] bl ftl_free_sblk - ldr x1, [x29,104] - ldr x6, [x29,112] - ldr x0, [x1,3392] + ldr x0, [x21, 3384] mov w1, -1 - strh w1, [x0,x6,lsl 1] - ldrh w1, [x0,688] + strh w1, [x0, x25, lsl 1] + ldrh w1, [x0, 688] sub w1, w1, #1 - strh w1, [x0,688] + strh w1, [x0, 688] .L1598: - add x19, x19, 1 - b .L1593 -.L1618: + add x20, x20, 1 + cmp w19, w20, uxth + bhi .L1600 mov w0, 65535 - cmp w28, w0 - csel w0, w24, w28, eq - 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], 384 + cmp w23, w0 + csel w0, w26, w23, eq + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] + ldp x27, x28, [sp, 80] + ldp x29, x30, [sp], 368 ret +.L1594: + ldr w0, [x4] + add x6, x5, 416 + mov x3, 0 + lsr w0, w0, w8 + and w0, w0, w2 + udiv w0, w0, w9 + and w0, w0, 65535 +.L1593: + ldrh w7, [x6] + cmp w7, w0 + bne .L1592 + ldrh w7, [x22, x3, lsl 1] + add w7, w7, 1 + strh w7, [x22, x3, lsl 1] +.L1592: + add x3, x3, 1 + add x6, x6, 2 + cmp w19, w3, uxth + bhi .L1593 + add x4, x4, 4 + b .L1591 .size pm_free_sblk, .-pm_free_sblk .align 2 .global ftl_memcpy @@ -10283,47 +9939,47 @@ ftl_memcpy: .global flash_info_data_init .type flash_info_data_init, %function flash_info_data_init: - adrp x1, .LANCHOR2 stp x29, x30, [sp, -32]! + adrp x1, .LANCHOR2 add x29, sp, 0 - ldr w0, [x1,#:lo12:.LANCHOR2] - stp x19, x20, [sp,16] + ldr w0, [x1, #:lo12:.LANCHOR2] + stp x19, x20, [sp, 16] mov x20, x1 - tbz x0, 12, .L1621 + tbz x0, 12, .L1614 adrp x2, .LANCHOR4 - adrp x0, .LC138 add x2, x2, :lo12:.LANCHOR4 - add x0, x0, :lo12:.LC138 - mov w1, 120 + adrp x0, .LC135 add x2, x2, 112 + mov w1, 120 + add x0, x0, :lo12:.LC135 bl printk -.L1621: +.L1614: adrp x19, .LANCHOR0 - mov w1, 0 add x19, x19, :lo12:.LANCHOR0 mov w2, 2048 - ldr x0, [x19,1128] + mov w1, 0 + ldr x0, [x19, 1048] bl ftl_memset - ldr x1, [x19,1128] - mov w0, 21321 - movk w0, 0x5359, lsl 16 + ldr x0, [x19, 1048] + mov w1, 21321 + movk w1, 0x5359, lsl 16 mov w2, 32 - str w0, [x1] + str w1, [x0] mov w1, 2032 - ldr x0, [x19,1128] + ldr x0, [x19, 1048] add x0, x0, 80 - str w1, [x0,-72] + str w1, [x0, -72] mov w1, 1 - strh w1, [x0,-64] + strh w1, [x0, -64] add x1, x19, 1160 bl ftl_memcpy - ldr x0, [x19,1128] + ldr x0, [x19, 1048] add x1, x20, :lo12:.LANCHOR2 - add x1, x1, 8 mov w2, 32 + add x1, x1, 8 add x0, x0, 48 bl ftl_memcpy - ldp x19, x20, [sp,16] + ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 32 ret .size flash_info_data_init, .-flash_info_data_init @@ -10332,15 +9988,15 @@ flash_info_data_init: .type ftl_memcpy32, %function ftl_memcpy32: mov x3, 0 -.L1626: +.L1620: cmp w2, w3 - bls .L1628 - ldr w4, [x1,x3,lsl 2] - str w4, [x0,x3,lsl 2] - add x3, x3, 1 - b .L1626 -.L1628: + bhi .L1621 ret +.L1621: + ldr w4, [x1, x3, lsl 2] + str w4, [x0, x3, lsl 2] + add x3, x3, 1 + b .L1620 .size ftl_memcpy32, .-ftl_memcpy32 .align 2 .global ftl_memcmp @@ -10357,12 +10013,12 @@ ftl_memcmp: .global timer_get_time .type timer_get_time, %function timer_get_time: - adrp x0, jiffies stp x29, x30, [sp, -16]! + adrp x0, jiffies add x29, sp, 0 - ldr x1, [x0,#:lo12:jiffies] - adrp x0, .LANCHOR5+272 - ldr x0, [x0,#:lo12:.LANCHOR5+272] + ldr x1, [x0, #:lo12:jiffies] + adrp x0, .LANCHOR5+224 + ldr x0, [x0, #:lo12:.LANCHOR5+224] sub x0, x1, x0 bl jiffies_to_msecs ldp x29, x30, [sp], 16 @@ -10372,28 +10028,28 @@ timer_get_time: .global StorageSysDataLoad .type StorageSysDataLoad, %function StorageSysDataLoad: - stp x29, x30, [sp, -48]! + stp x29, x30, [sp, -32]! mov w2, 512 add x29, sp, 0 - stp x19, x20, [sp,16] - mov w20, w0 + stp x19, x20, [sp, 16] mov x19, x1 - mov x0, x1 mov w1, 0 + mov w20, w0 + mov x0, x19 bl ftl_memset bl rknand_device_lock - adrp x0, .LANCHOR5+280 + adrp x0, .LANCHOR5+232 mov x2, x19 mov w1, 1 - ldr x0, [x0,#:lo12:.LANCHOR5+280] - ldr x3, [x0,24] + ldr x0, [x0, #:lo12:.LANCHOR5+232] + ldr x3, [x0, 24] mov w0, w20 blr x3 - str x0, [x29,40] + mov w19, w0 bl rknand_device_unlock - ldr x0, [x29,40] - ldp x19, x20, [sp,16] - ldp x29, x30, [sp], 48 + mov w0, w19 + ldp x19, x20, [sp, 16] + ldp x29, x30, [sp], 32 ret .size StorageSysDataLoad, .-StorageSysDataLoad .align 2 @@ -10402,19 +10058,21 @@ StorageSysDataLoad: StorageSysDataStore: stp x29, x30, [sp, -32]! add x29, sp, 0 - str x0, [x29,16] - str x1, [x29,24] + stp x19, x20, [sp, 16] + mov w19, w0 + mov x20, x1 bl rknand_device_lock - adrp x1, .LANCHOR5+280 - ldr x2, [x29,24] - ldr x0, [x29,16] - ldr x1, [x1,#:lo12:.LANCHOR5+280] - ldr x3, [x1,32] + adrp x0, .LANCHOR5+232 + mov x2, x20 mov w1, 1 + ldr x0, [x0, #:lo12:.LANCHOR5+232] + ldr x3, [x0, 32] + mov w0, w19 blr x3 - str x0, [x29,24] + mov w19, w0 bl rknand_device_unlock - ldr x0, [x29,24] + mov w0, w19 + ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 32 ret .size StorageSysDataStore, .-StorageSysDataStore @@ -10424,20 +10082,24 @@ StorageSysDataStore: FlashBootVendorRead: stp x29, x30, [sp, -48]! add x29, sp, 0 - str x0, [x29,24] - str x1, [x29,32] - str x2, [x29,40] + stp x19, x20, [sp, 16] + mov w19, w0 + mov w20, w1 + str x21, [sp, 32] + mov x21, x2 bl rknand_device_lock - adrp x3, .LANCHOR5+280 - ldr x1, [x29,32] - ldr x2, [x29,40] - ldr x0, [x29,24] - ldr x3, [x3,#:lo12:.LANCHOR5+280] - ldr x3, [x3,8] + adrp x0, .LANCHOR5+232 + mov x2, x21 + mov w1, w20 + ldr x0, [x0, #:lo12:.LANCHOR5+232] + ldr x3, [x0, 8] + mov w0, w19 blr x3 - str x0, [x29,40] + mov w19, w0 bl rknand_device_unlock - ldr x0, [x29,40] + ldr x21, [sp, 32] + mov w0, w19 + ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 48 ret .size FlashBootVendorRead, .-FlashBootVendorRead @@ -10447,20 +10109,24 @@ FlashBootVendorRead: FlashBootVendorWrite: stp x29, x30, [sp, -48]! add x29, sp, 0 - str x0, [x29,24] - str x1, [x29,32] - str x2, [x29,40] + stp x19, x20, [sp, 16] + mov w19, w0 + mov w20, w1 + str x21, [sp, 32] + mov x21, x2 bl rknand_device_lock - adrp x3, .LANCHOR5+280 - ldr x1, [x29,32] - ldr x2, [x29,40] - ldr x0, [x29,24] - ldr x3, [x3,#:lo12:.LANCHOR5+280] - ldr x3, [x3,16] + adrp x0, .LANCHOR5+232 + mov x2, x21 + mov w1, w20 + ldr x0, [x0, #:lo12:.LANCHOR5+232] + ldr x3, [x0, 16] + mov w0, w19 blr x3 - str x0, [x29,40] + mov w19, w0 bl rknand_device_unlock - ldr x0, [x29,40] + ldr x21, [sp, 32] + mov w0, w19 + ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 48 ret .size FlashBootVendorWrite, .-FlashBootVendorWrite @@ -10468,24 +10134,24 @@ FlashBootVendorWrite: .global flash_sram_load_store .type flash_sram_load_store, %function flash_sram_load_store: - adrp x4, .LANCHOR5+288 - mov x6, x0 stp x29, x30, [sp, -16]! - uxtw x1, w1 + adrp x4, .LANCHOR5+240 + uxtw x5, w1 add x29, sp, 0 - ldr x4, [x4,#:lo12:.LANCHOR5+288] + ldr x4, [x4, #:lo12:.LANCHOR5+240] add x4, x4, 4096 - cbnz w2, .L1636 - add x1, x4, x1 - b .L1638 -.L1636: - add x0, x4, x1 - mov x1, x6 -.L1638: + cbnz w2, .L1635 mov w2, w3 + add x1, x4, x5 +.L1638: bl ftl_memcpy ldp x29, x30, [sp], 16 ret +.L1635: + mov x1, x0 + mov w2, w3 + add x0, x4, x5 + b .L1638 .size flash_sram_load_store, .-flash_sram_load_store .align 2 .global FlashCs123Init @@ -10494,18 +10160,320 @@ FlashCs123Init: ret .size FlashCs123Init, .-FlashCs123Init .align 2 + .global ftl_dma32_malloc + .type ftl_dma32_malloc, %function +ftl_dma32_malloc: + stp x29, x30, [sp, -48]! + cmp w0, 8192 + add x29, sp, 0 + stp x19, x20, [sp, 16] + str x21, [sp, 32] + ble .L1641 + bl ftl_malloc +.L1640: + ldp x19, x20, [sp, 16] + ldr x21, [sp, 32] + ldp x29, x30, [sp], 48 + ret +.L1641: + adrp x1, .LANCHOR5 + add x21, x1, :lo12:.LANCHOR5 + add w19, w0, 63 + mov x20, x1 + and w19, w19, -64 + ldr w0, [x21, 248] + cmp w19, w0 + ble .L1643 + mov w0, 16384 + bl ftl_malloc + str x0, [x21, 256] + mov w0, 16384 + str w0, [x21, 248] +.L1643: + add x1, x20, :lo12:.LANCHOR5 + ldr w0, [x1, 248] + sub w0, w0, w19 + str w0, [x1, 248] + ldr x0, [x1, 256] + add x19, x0, w19, sxtw + str x19, [x1, 256] + b .L1640 + .size ftl_dma32_malloc, .-ftl_dma32_malloc + .align 2 + .global nandc_init + .type nandc_init, %function +nandc_init: + stp x29, x30, [sp, -64]! + add x29, sp, 0 + stp x21, x22, [sp, 32] + adrp x21, .LANCHOR2 + mov x22, x0 + stp x19, x20, [sp, 16] + ldr w0, [x21, #:lo12:.LANCHOR2] + str wzr, [x29, 56] + tbz x0, 12, .L1646 + adrp x1, .LANCHOR4 + add x1, x1, :lo12:.LANCHOR4 + adrp x0, .LC136 + mov x2, x22 + add x1, x1, 136 + add x0, x0, :lo12:.LC136 + bl printk +.L1646: + adrp x0, .LANCHOR0 + add x1, x0, :lo12:.LANCHOR0 + ldr w3, [x22, 352] + mov w2, 6 + mov x20, x0 + strb w2, [x1, 1028] + mov w2, 12336 + str x22, [x1, 1056] + movk w2, 0x5638, lsl 16 + cmp w3, w2 + bne .L1647 + mov w0, 8 + strb w0, [x1, 1028] +.L1647: + ldr w1, [x22, 128] + mov w0, 12336 + movk w0, 0x5639, lsl 16 + cmp w1, w0 + bne .L1648 + add x0, x20, :lo12:.LANCHOR0 + mov w1, 9 + strb w1, [x0, 1028] +.L1648: + add x19, x20, :lo12:.LANCHOR0 + ldrb w0, [x19, 1028] + cmp w0, 9 + bne .L1649 + mov w0, 1 + strb w0, [x19, 1251] + ldr w0, [x29, 56] + mov w1, 2 + orr w0, w0, 256 + str w0, [x29, 56] + ldr w0, [x29, 56] + bfi w0, w1, 18, 3 + str w0, [x29, 56] + mov w1, 4161 + ldr w0, [x29, 56] + str w0, [x22] + ldr x0, [x19, 1056] + str wzr, [x0, 520] + str w1, [x0, 4] + mov w1, 8321 + ldr x0, [x19, 1056] + str w1, [x0, 8] + mov w1, 4099 + movk w1, 0x10, lsl 16 + str w1, [x0, 80] + mov w1, 38 + str w1, [x0, 84] + mov w1, 39 + str w1, [x0, 84] + ldr w1, [x21, #:lo12:.LANCHOR2] + tbz x1, 12, .L1651 + ldr w1, [x0] + ldr w2, [x0, 8] + ldr w3, [x0, 80] + ldr w4, [x0, 84] + ldr w5, [x0, 88] +.L1664: + adrp x0, .LC137 + add x0, x0, :lo12:.LC137 + bl printk +.L1651: + add x0, x20, :lo12:.LANCHOR0 + mov w1, 1 + strb w1, [x0, 1252] + ldr w1, [x21, #:lo12:.LANCHOR2] + strh wzr, [x0, 1296] + strb wzr, [x0, 1249] + tbz x1, 12, .L1645 + ldrb w1, [x0, 1028] + adrp x0, .LC138 + add x0, x0, :lo12:.LC138 + bl printk +.L1645: + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x29, x30, [sp], 64 + ret +.L1649: + ldr w0, [x29, 56] + mov w1, 1 + strb wzr, [x19, 1251] + orr w0, w0, 256 + str w0, [x29, 56] + ldr w0, [x29, 56] + bfi w0, w1, 24, 3 + str w0, [x29, 56] + mov w1, 4193 + ldr w0, [x29, 56] + str w0, [x22] + ldr x0, [x19, 1056] + str wzr, [x0, 336] + str w1, [x0, 4] + mov w1, 8321 + ldr x0, [x19, 1056] + str w1, [x0, 344] + mov w1, 4099 + movk w1, 0x10, lsl 16 + str w1, [x0, 304] + mov w1, 38 + str w1, [x0, 308] + mov w1, 39 + str w1, [x0, 308] + mov w0, 2048 + bl ftl_dma32_malloc + str x0, [x19, 1256] + ldr w0, [x21, #:lo12:.LANCHOR2] + tbz x0, 12, .L1651 + ldr x0, [x19, 1056] + ldr w1, [x0] + ldr w2, [x0, 344] + ldr w3, [x0, 304] + ldr w4, [x0, 308] + ldr w5, [x0, 312] + b .L1664 + .size nandc_init, .-nandc_init + .align 2 + .global zbuf_init + .type zbuf_init, %function +zbuf_init: + stp x29, x30, [sp, -48]! + adrp x0, .LANCHOR0 + add x29, sp, 0 + stp x19, x20, [sp, 16] + add x19, x0, :lo12:.LANCHOR0 + stp x21, x22, [sp, 32] + add x19, x19, 1304 + adrp x22, .LANCHOR3 + mov x20, x0 + add x22, x22, :lo12:.LANCHOR3 + mov w21, 0 +.L1666: + and w0, w21, 255 + strb w0, [x19, 1] + add w1, w0, 1 + ldrb w0, [x22, 1946] + strb w1, [x19] + add w21, w21, 1 + strb wzr, [x19, 2] + add x19, x19, 64 + str xzr, [x19, -48] + lsl w0, w0, 9 + bl ftl_dma32_malloc + str x0, [x19, -56] + mov w0, 64 + bl ftl_dma32_malloc + str x0, [x19, -40] + cmp w21, 32 + bne .L1666 + add x0, x20, :lo12:.LANCHOR0 + mov w1, -1 + strb wzr, [x0, 3352] + strb w1, [x0, 3288] + strb w21, [x0, 3353] + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x29, x30, [sp], 48 + ret + .size zbuf_init, .-zbuf_init + .align 2 + .global gc_init + .type gc_init, %function +gc_init: + stp x29, x30, [sp, -48]! + mov w2, 2216 + mov w1, 0 + add x29, sp, 0 + stp x19, x20, [sp, 16] + adrp x19, .LANCHOR3 + stp x21, x22, [sp, 32] + add x19, x19, :lo12:.LANCHOR3 + adrp x21, .LANCHOR5 + add x21, x21, :lo12:.LANCHOR5 + adrp x20, .LANCHOR0 + add x20, x20, :lo12:.LANCHOR0 + add x22, x20, 3416 + strb wzr, [x19, 1337] + strb wzr, [x21, 264] + mov x0, x22 + strh wzr, [x19, 1378] + str wzr, [x21, 268] + bl ftl_memset + ldrh w1, [x19, 1376] + mov w0, -1 + ldrb w3, [x19, 1321] + strh w0, [x20, 3416] + lsr w0, w1, 2 + lsr w2, w1, 1 + strh w0, [x20, 3452] + strh w0, [x20, 3402] + ldrh w0, [x19, 1338] + strh w2, [x20, 3454] + mul w2, w1, w3 + strh w1, [x20, 3400] + mov w1, 4 + and w2, w2, 65535 + strh w1, [x21, 272] + sub w4, w2, #32 + mul w0, w0, w3 + strh w4, [x20, 3404] + strh w2, [x20, 3406] + strh wzr, [x19, 1352] + lsl w0, w0, 2 + strh wzr, [x19, 1354] + strh wzr, [x19, 1356] + str xzr, [x20, 3424] + bl ftl_dma32_malloc + ldrb w1, [x19, 1321] + str x0, [x21, 280] + ldrh w0, [x19, 1338] + mul w0, w0, w1 + lsl w0, w0, 2 + bl ftl_dma32_malloc + ldrh w1, [x19, 1338] + str x0, [x21, 288] + ldrb w0, [x19, 1321] + mul w0, w1, w0 + bl ftl_dma32_malloc + str x0, [x19, 1328] + ldrb w1, [x19, 1321] + ldrh w0, [x19, 1338] + mul w0, w0, w1 + lsl w0, w0, 2 + bl ftl_dma32_malloc + ldrb w1, [x19, 1321] + str x0, [x19, 1312] + ldrh w0, [x19, 1338] + mul w0, w0, w1 + lsl w0, w0, 2 + bl ftl_dma32_malloc + str x0, [x21, 296] + ldrh w0, [x19, 1380] + ldp x21, x22, [sp, 32] + lsr w0, w0, 2 + strh w0, [x20, 3392] + ldp x19, x20, [sp, 16] + ldp x29, x30, [sp], 48 + ret + .size gc_init, .-gc_init + .align 2 .global rk_ftl_de_init .type rk_ftl_de_init, %function rk_ftl_de_init: stp x29, x30, [sp, -16]! - adrp x0, .LC139 mov w1, 0 - add x29, sp, 0 + adrp x0, .LC139 add x0, x0, :lo12:.LC139 + add x29, sp, 0 bl printk - adrp x0, .LANCHOR5+280 - ldr x0, [x0,#:lo12:.LANCHOR5+280] - ldr x0, [x0,80] + adrp x0, .LANCHOR5+232 + ldr x0, [x0, #:lo12:.LANCHOR5+232] + ldr x0, [x0, 80] blr x0 ldp x29, x30, [sp], 16 ret @@ -10514,11 +10482,11 @@ rk_ftl_de_init: .global rk_ftl_cache_write_back .type rk_ftl_cache_write_back, %function rk_ftl_cache_write_back: - adrp x0, .LANCHOR5+280 stp x29, x30, [sp, -16]! + adrp x0, .LANCHOR5+232 add x29, sp, 0 - ldr x0, [x0,#:lo12:.LANCHOR5+280] - ldr x1, [x0,64] + ldr x0, [x0, #:lo12:.LANCHOR5+232] + ldr x1, [x0, 64] mov w0, 0 blr x1 ldp x29, x30, [sp], 16 @@ -10528,11 +10496,11 @@ rk_ftl_cache_write_back: .global rk_nand_suspend .type rk_nand_suspend, %function rk_nand_suspend: - adrp x0, .LANCHOR5+280 stp x29, x30, [sp, -16]! + adrp x0, .LANCHOR5+232 add x29, sp, 0 - ldr x0, [x0,#:lo12:.LANCHOR5+280] - ldr x0, [x0,88] + ldr x0, [x0, #:lo12:.LANCHOR5+232] + ldr x0, [x0, 88] blr x0 ldp x29, x30, [sp], 16 ret @@ -10541,11 +10509,11 @@ rk_nand_suspend: .global rk_nand_resume .type rk_nand_resume, %function rk_nand_resume: - adrp x0, .LANCHOR5+280 stp x29, x30, [sp, -16]! + adrp x0, .LANCHOR5+232 add x29, sp, 0 - ldr x0, [x0,#:lo12:.LANCHOR5+280] - ldr x0, [x0,96] + ldr x0, [x0, #:lo12:.LANCHOR5+232] + ldr x0, [x0, 96] blr x0 ldp x29, x30, [sp], 16 ret @@ -10554,11 +10522,11 @@ rk_nand_resume: .global rk_ftl_get_capacity .type rk_ftl_get_capacity, %function rk_ftl_get_capacity: - adrp x0, .LANCHOR5+280 stp x29, x30, [sp, -16]! + adrp x0, .LANCHOR5+232 add x29, sp, 0 - ldr x0, [x0,#:lo12:.LANCHOR5+280] - ldr x1, [x0,72] + ldr x0, [x0, #:lo12:.LANCHOR5+232] + ldr x1, [x0, 72] mov w0, 0 blr x1 ldp x29, x30, [sp], 16 @@ -10568,11 +10536,11 @@ rk_ftl_get_capacity: .global rk_nandc_get_irq_status .type rk_nandc_get_irq_status, %function rk_nandc_get_irq_status: - adrp x1, .LANCHOR5+280 stp x29, x30, [sp, -16]! + adrp x1, .LANCHOR5+232 add x29, sp, 0 - ldr x1, [x1,#:lo12:.LANCHOR5+280] - ldr x1, [x1,120] + ldr x1, [x1, #:lo12:.LANCHOR5+232] + ldr x1, [x1, 120] blr x1 ldp x29, x30, [sp], 16 ret @@ -10581,11 +10549,11 @@ rk_nandc_get_irq_status: .global rknand_proc_ftlread .type rknand_proc_ftlread, %function rknand_proc_ftlread: - adrp x1, .LANCHOR5+280 stp x29, x30, [sp, -16]! + adrp x1, .LANCHOR5+232 add x29, sp, 0 - ldr x1, [x1,#:lo12:.LANCHOR5+280] - ldr x1, [x1,128] + ldr x1, [x1, #:lo12:.LANCHOR5+232] + ldr x1, [x1, 128] blr x1 ldp x29, x30, [sp], 16 ret @@ -10594,12 +10562,12 @@ rknand_proc_ftlread: .global FtlRead .type FtlRead, %function FtlRead: - adrp x4, .LANCHOR5+280 - uxtb w0, w0 stp x29, x30, [sp, -16]! + adrp x4, .LANCHOR5+232 + and w0, w0, 255 add x29, sp, 0 - ldr x4, [x4,#:lo12:.LANCHOR5+280] - ldr x4, [x4,40] + ldr x4, [x4, #:lo12:.LANCHOR5+232] + ldr x4, [x4, 40] blr x4 ldp x29, x30, [sp], 16 ret @@ -10608,11 +10576,11 @@ FtlRead: .global FtlDiscard .type FtlDiscard, %function FtlDiscard: - adrp x2, .LANCHOR5+280 stp x29, x30, [sp, -16]! + adrp x2, .LANCHOR5+232 add x29, sp, 0 - ldr x2, [x2,#:lo12:.LANCHOR5+280] - ldr x2, [x2,56] + ldr x2, [x2, #:lo12:.LANCHOR5+232] + ldr x2, [x2, 56] blr x2 ldp x29, x30, [sp], 16 ret @@ -10621,11 +10589,11 @@ FtlDiscard: .global rk_ftl_garbage_collect .type rk_ftl_garbage_collect, %function rk_ftl_garbage_collect: - adrp x2, .LANCHOR5+280 stp x29, x30, [sp, -16]! + adrp x2, .LANCHOR5+232 add x29, sp, 0 - ldr x2, [x2,#:lo12:.LANCHOR5+280] - ldr x2, [x2,104] + ldr x2, [x2, #:lo12:.LANCHOR5+232] + ldr x2, [x2, 104] blr x2 ldp x29, x30, [sp], 16 ret @@ -10634,11 +10602,11 @@ rk_ftl_garbage_collect: .global ReadFlashInfo .type ReadFlashInfo, %function ReadFlashInfo: - adrp x1, .LANCHOR5+280 stp x29, x30, [sp, -16]! + adrp x1, .LANCHOR5+232 add x29, sp, 0 - ldr x1, [x1,#:lo12:.LANCHOR5+280] - ldr x1, [x1,112] + ldr x1, [x1, #:lo12:.LANCHOR5+232] + ldr x1, [x1, 112] blr x1 ldp x29, x30, [sp], 16 ret @@ -10647,18 +10615,17 @@ ReadFlashInfo: .global rknand_print_hex .type rknand_print_hex, %function rknand_print_hex: - stp x29, x30, [sp, -16]! mul w6, w2, w3 - mov x7, x0 - mov w4, w2 - adrp x0, .LC140 - mov w2, 0 - add x29, sp, 0 + stp x29, x30, [sp, -16]! mov x5, x1 - add x0, x0, :lo12:.LC140 - mov x1, x7 + mov w4, w2 + add x29, sp, 0 + mov x1, x0 + mov w7, 0 mov w3, 16 - mov w7, w2 + mov w2, 0 + adrp x0, .LC140 + add x0, x0, :lo12:.LC140 bl print_hex_dump ldp x29, x30, [sp], 16 ret @@ -10668,589 +10635,590 @@ 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 - add x29, sp, 0 - stp x19, x20, [sp,16] - 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] + mov w4, -83 mov w1, -82 - cmp w19, 2 - ldr x25, [x0,1128] + add x29, sp, 0 + stp x19, x20, [sp, 16] + adrp x20, .LANCHOR0 + stp x23, x24, [sp, 48] + mov w23, w0 + add x0, x20, :lo12:.LANCHOR0 + stp x25, x26, [sp, 64] + stp x21, x22, [sp, 32] + cmp w23, 2 + stp x27, x28, [sp, 80] + ldr x26, [x0, 1048] + add x0, x26, 112 + str x0, [x29, 136] mov w0, -84 - str x3, [x29,136] - add x26, x25, 128 - add x22, x25, 112 - strb w0, [x25,128] + add x25, x26, 128 + strb w0, [x26, 128] mov w0, -81 - strb w19, [x25,112] - strb w2, [x25,129] - strb w1, [x25,130] - strb w0, [x25,131] - bne .L1653 + strb w23, [x26, 112] + strb w4, [x26, 129] + strb w1, [x26, 130] + strb w0, [x26, 131] + bne .L1696 mov w0, -89 - strb w0, [x22,16] + strb w0, [x26, 128] adrp x0, .LANCHOR2+425 mov w1, -9 - strb w1, [x0,#:lo12:.LANCHOR2+425] - b .L1716 -.L1653: - cmp w19, 3 - bne .L1655 - mov x5, 0 -.L1656: - sub w0, w5, #80 - strb w0, [x26,x5] - add x5, x5, 1 - cmp x5, 8 - bne .L1656 - mov w27, w5 - mov w28, w5 - b .L1654 -.L1655: - cmp w19, 4 - bne .L1657 - 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 .L1654 -.L1657: - cmp w19, 5 - bne .L1658 - mov w0, 56 - strb w0, [x25,128] - mov w0, 57 - strb w0, [x25,129] - mov w0, 58 - mov w27, 8 - strb w0, [x25,130] - mov w0, 59 - strb w0, [x25,131] - b .L1758 -.L1658: - cmp w19, 6 - bne .L1659 - mov w0, 14 - strb w0, [x25,128] - mov w0, 15 - strb w0, [x25,129] - mov w0, 16 - mov w27, 12 - strb w0, [x25,130] - mov w0, 17 - strb w0, [x25,131] - b .L1758 -.L1659: - cmp w19, 7 - bne .L1660 - mov x0, 0 -.L1661: - sub w1, w0, #80 - strb w1, [x26,x0] - add x0, x0, 1 - cmp x0, 8 - bne .L1661 - mov w0, -44 - mov w27, 12 - strb w0, [x25,136] - mov w28, 10 - mov w0, -43 - strb w0, [x25,137] - b .L1654 -.L1660: - cmp w19, 8 - bne .L1716 - 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 .L1654 -.L1716: - mov w27, 7 -.L1758: - mov w28, 4 -.L1654: - sub w0, w19, #1 + strb w1, [x0, #:lo12:.LANCHOR2+425] +.L1761: + mov w28, 7 + b .L1806 +.L1696: + cmp w23, 3 + bne .L1698 + mov x4, 0 +.L1699: + sub w0, w4, #80 + strb w0, [x25, x4] + add x4, x4, 1 + cmp x4, 8 + bne .L1699 + mov w28, w4 + mov w27, w4 +.L1697: + sub w0, w23, #1 cmp w0, 1 - bhi .L1755 - ldr x0, [x29,136] - adrp x24, .LANCHOR2 - add x24, x24, :lo12:.LANCHOR2 - mov w23, 0 - add x19, x0, :lo12:.LANCHOR0 - mov w5, 55 - add x24, x24, 408 -.L1662: - ldrb w0, [x19,1153] - cmp w0, w23 - bls .L1669 - add x0, x19, w23, sxtw - ldrb w0, [x0,1248] - mov x20, 160 - ldr x21, [x19,1048] - ubfiz x1, x0, 8, 8 - mov x25, 0 - madd x20, x0, x20, x22 - add x21, x21, x1 - add x20, x20, 32 -.L1664: - str w5, [x21,2056] - str x5, [x29,136] - ldrb w0, [x26,x25] - str w0, [x21,2052] - mov x0, 1000 - bl __const_udelay - ldr w0, [x21,2048] - strb w0, [x20,x25] - add x25, x25, 1 - ldr x5, [x29,136] - cmp w28, w25, uxtb - bhi .L1664 - mov x0, 0 -.L1665: - add w2, w0, 8 - mov x1, 0 -.L1666: - add x3, x1, x0 - add x1, x1, 4 - add x3, x24, x3 - cmp x1, 24 - ldrb w4, [x3,4] - ldrb w3, [x20,x0] - add w3, w4, w3 - strb w3, [x20,w2,sxtw] - add w2, w2, 8 - bne .L1666 - add x0, x0, 1 - cmp x0, 4 - bne .L1665 - add w23, w23, 1 - strb wzr, [x20,16] - strb wzr, [x20,24] - strb wzr, [x20,32] - uxtb w23, w23 - strb wzr, [x20,40] - strb wzr, [x20,48] - strb wzr, [x20,41] - strb wzr, [x20,49] - b .L1662 -.L1755: - sub w0, w19, #3 - cmp w0, 5 - bhi .L1669 - mul w0, w28, w27 - sub w24, w28, #1 - mov w20, 0 - asr w23, w0, 1 - lsl w0, w0, 4 - str w0, [x29,128] - lsl w0, w23, 1 - uxtb x24, w24 - str w0, [x29,124] - sub w0, w19, #5 - adrp x26, .LANCHOR5 - str w0, [x29,132] - add x0, x24, 1 - str x0, [x29,112] -.L1670: - ldr x0, [x29,136] - add x1, x0, :lo12:.LANCHOR0 - ldrb w0, [x1,1153] - cmp w0, w20 - bhi .L1715 -.L1669: - strb w28, [x22,1] - strb w27, [x22,2] - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] + bhi .L1705 + add x20, x20, :lo12:.LANCHOR0 + adrp x21, .LANCHOR2 + add x21, x21, :lo12:.LANCHOR2 + add x23, x20, 1024 + add x21, x21, 408 + mov w26, 0 +.L1706: + ldrb w0, [x20, 1153] + cmp w0, w26 + bhi .L1712 +.L1713: + ldr x0, [x29, 136] + strb w27, [x0, 1] + strb w28, [x0, 2] + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] + ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 144 ret -.L1715: - add x0, x1, w20, sxtw - ldrb w24, [x0,1248] - str x1, [x29,104] - mov x21, 160 - mov w0, w24 - bl zftl_flash_exit_slc_mode - ldr x1, [x29,104] - sxtw x0, w24 - ubfiz x2, x24, 8, 8 - madd x21, x0, x21, x22 - ldr x0, [x1,1048] - mov w1, 255 - str x1, [x29,104] - add x21, x21, 32 - add x24, x0, x2 - str w1, [x24,2056] - bl nandc_wait_flash_ready - cmp w19, 8 - ldr x1, [x29,104] - bne .L1671 - 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 .L1761 -.L1671: - mov w0, 54 - cmp w19, 4 - str w0, [x24,2056] - bne .L1673 - mov w0, 64 - str w1, [x24,2052] - str w0, [x24,2048] - mov w0, 204 - b .L1759 -.L1673: - ldr w0, [x29,132] - cmp w0, 1 - bhi .L1675 - ldrb w0, [x25,128] - str w0, [x24,2052] - mov w0, 82 - b .L1760 -.L1675: - cmp w19, 7 - bne .L1674 - mov w0, 174 - str w0, [x24,2052] - str wzr, [x24,2048] - mov w0, 176 -.L1759: - str w0, [x24,2052] - mov w0, 77 -.L1760: - str w0, [x24,2048] -.L1674: - mov w0, 22 - str w0, [x24,2056] - mov w0, 23 - str w0, [x24,2056] - mov w0, 4 - str w0, [x24,2056] - mov w0, 25 - str w0, [x24,2056] - str wzr, [x24,2056] - cmp w19, 6 - str wzr, [x24,2052] - str wzr, [x24,2052] - bne .L1676 - mov w0, 31 - str w0, [x24,2052] - b .L1677 -.L1676: - str wzr, [x24,2052] -.L1677: - mov w0, 2 -.L1761: - str w0, [x24,2052] - mov w0, 48 - str wzr, [x24,2052] - str w0, [x24,2056] - bl nandc_wait_flash_ready - ldr w0, [x29,132] - cmp w0, 1 - cset w8, ls - cmp w19, 8 - cset w7, eq - cbnz w8, .L1718 - cbnz w7, .L1718 - cmp w19, 7 - mov w1, 32 - mov w0, 2 - csel w1, w0, w1, ne - b .L1678 -.L1718: - mov w1, 16 -.L1678: - adrp x0, .LANCHOR5 - mov x9, 0 - add x0, x0, :lo12:.LANCHOR5 - ldr x0, [x0,296] -.L1679: - ldr w10, [x24,2048] - strb w10, [x0,x9] - add x9, x9, 1 - cmp w1, w9, uxtb - bhi .L1679 - cbz w7, .L1680 - mov w1, 0 -.L1682: - ldrb w9, [x0] - cmp w9, 50 - beq .L1681 - ldrb w9, [x0,1] - cmp w9, 5 - beq .L1681 - add w1, w1, 1 - add x0, x0, 4 - uxtb w1, w1 - cmp w1, 8 - bne .L1682 - b .L1683 -.L1681: - cmp w1, 7 - bne .L1684 -.L1683: - adrp x0, .LC141 - mov w1, 0 - add x0, x0, :lo12:.LC141 - bl printk -.L1685: - b .L1685 -.L1680: - cmp w19, 7 - bne .L1686 - mov w1, w7 -.L1688: - ldrb w9, [x0] - cmp w9, 12 - beq .L1687 - ldrb w9, [x0,1] - cmp w9, 10 - beq .L1687 - add w1, w1, 1 - add x0, x0, 4 - uxtb w1, w1 - cmp w1, 8 - bne .L1688 - b .L1689 -.L1687: - cmp w1, 7 - bne .L1684 -.L1689: - adrp x0, .LC141 - mov w1, 0 - add x0, x0, :lo12:.LC141 - bl printk -.L1690: - b .L1690 -.L1686: - cmp w19, 6 - bne .L1684 - mov x1, 0 -.L1691: - ldrb w9, [x0,x1] - cmp w9, 12 - beq .L1684 - add x9, x0, x1 - ldrb w9, [x9,8] - cmp w9, 4 - beq .L1684 - add x1, x1, 1 - cmp x1, 8 - bne .L1691 - adrp x0, .LC141 - mov w1, 0 - add x0, x0, :lo12:.LC141 - bl printk -.L1693: - b .L1693 -.L1684: - add x0, x26, :lo12:.LANCHOR5 - ldr x10, [x0,296] +.L1698: + cmp w23, 4 + bne .L1700 + mov w5, -52 + strb w5, [x26, 128] + mov w5, -65 + strb w5, [x26, 129] + mov w5, -86 + strb w5, [x26, 130] + mov w5, -85 + mov w28, 8 + strb w5, [x26, 131] + mov w27, w28 + mov w5, -51 + strb w4, [x26, 133] + strb w5, [x26, 132] + strb w1, [x26, 134] + strb w0, [x26, 135] + b .L1697 +.L1700: + cmp w23, 5 + bne .L1701 + mov w0, 56 + strb w0, [x26, 128] + mov w0, 57 + strb w0, [x26, 129] + mov w0, 58 + mov w28, 8 + strb w0, [x26, 130] + mov w0, 59 + strb w0, [x26, 131] +.L1806: + mov w27, 4 + b .L1697 +.L1701: + cmp w23, 6 + bne .L1702 + mov w0, 14 + strb w0, [x26, 128] + mov w0, 15 + strb w0, [x26, 129] + mov w0, 16 + mov w28, 12 + strb w0, [x26, 130] + mov w0, 17 + strb w0, [x26, 131] + b .L1806 +.L1702: + cmp w23, 7 + bne .L1703 mov x0, 0 -.L1694: - ldr w1, [x29,128] - cmp w1, w0 - ble .L1763 - ldr w1, [x24,2048] - strb w1, [x10,x0] +.L1704: + sub w1, w0, #80 + strb w1, [x25, x0] add x0, x0, 1 - b .L1694 -.L1763: - add x0, x26, :lo12:.LANCHOR5 - mov w11, w23 - mov w9, 8 - ldr x12, [x0,296] -.L1697: + cmp x0, 8 + bne .L1704 + mov w0, -44 + mov w28, 12 + strb w0, [x26, 136] + mov w27, 10 + mov w0, -43 + strb w0, [x26, 137] + b .L1697 +.L1703: + cmp w23, 8 + bne .L1761 + mov w0, 6 + strb w0, [x26, 128] + mov w0, 7 + strb w0, [x26, 129] + mov w0, 9 + strb w23, [x26, 130] + strb w0, [x26, 131] + mov w28, 50 + mov w0, 10 + mov w27, 5 + strb w0, [x26, 132] + b .L1697 +.L1712: + add x0, x23, w26, sxtw + mov x1, 32 + mov w19, 160 + ldr x24, [x20, 1056] + mov x22, 0 + ldrb w0, [x0, 172] + umaddl x19, w19, w0, x1 + ldr x1, [x29, 136] + ubfiz x0, x0, 8, 8 + add x24, x24, x0 + add x19, x1, x19 + mov w1, 55 +.L1707: + str w1, [x24, 2056] + str w1, [x29, 132] + ldrb w0, [x25, x22] + str w0, [x24, 2052] + mov x0, 1000 + bl __const_udelay + ldr w0, [x24, 2048] + strb w0, [x19, x22] + add x22, x22, 1 + cmp w27, w22, uxtb + ldr w1, [x29, 132] + bhi .L1707 + mov x0, 0 +.L1710: + add x1, x0, 4 + add x2, x0, 28 + add w3, w0, 8 + add x1, x21, x1 + add x2, x21, x2 +.L1709: + ldrb w7, [x1], 4 + ldrb w6, [x19, x0] + cmp x2, x1 + add w6, w6, w7 + strb w6, [x19, w3, sxtw] + add w3, w3, 8 + bne .L1709 + add x0, x0, 1 + cmp x0, 4 + bne .L1710 + add w26, w26, 1 + strb wzr, [x19, 16] + strb wzr, [x19, 24] + and w26, w26, 255 + strb wzr, [x19, 32] + strb wzr, [x19, 40] + strb wzr, [x19, 48] + strb wzr, [x19, 41] + strb wzr, [x19, 49] + b .L1706 +.L1705: + sub w0, w23, #3 + cmp w0, 5 + bhi .L1713 + mul w0, w27, w28 + add x20, x20, :lo12:.LANCHOR0 + sub w25, w27, #1 + mov w21, 0 + and x25, x25, 255 + asr w24, w0, 1 + lsl w0, w0, 4 + str w0, [x29, 128] + lsl w0, w24, 1 + str w0, [x29, 132] + add x0, x20, 1024 + str x0, [x29, 120] + add x0, x25, 1 + str x0, [x29, 112] +.L1714: + ldrb w0, [x20, 1153] + cmp w0, w21 + bls .L1713 + ldr x0, [x29, 120] + mov w22, 160 + sub w25, w23, #5 + add x0, x0, w21, sxtw + ldrb w19, [x0, 172] + mov w0, w19 + bl zftl_flash_exit_slc_mode + mov x0, 32 + mov w1, 255 + str w1, [x29, 108] + nop // between mem op and mult-accumulate + umaddl x22, w22, w19, x0 + ldr x0, [x29, 136] + ubfiz x19, x19, 8, 8 + add x22, x0, x22 + ldr x0, [x20, 1056] + add x19, x0, x19 + str w1, [x19, 2056] + bl nandc_wait_flash_ready + cmp w23, 8 + ldr w1, [x29, 108] + bne .L1715 + 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 x22, x26, 144 + 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] +.L1809: + str w0, [x19, 2052] + mov w0, 48 + str wzr, [x19, 2052] + str w0, [x19, 2056] + bl nandc_wait_flash_ready + cmp w25, 1 + ccmp w23, 8, 4, hi + beq .L1762 + cmp w23, 7 + mov w0, 32 + mov w1, 2 + csel w1, w1, w0, ne +.L1722: + adrp x8, .LANCHOR5 + add x0, x8, :lo12:.LANCHOR5 + mov x7, 0 + ldr x0, [x0, 304] +.L1723: + ldr w9, [x19, 2048] + strb w9, [x0, x7] + add x7, x7, 1 + cmp w1, w7, uxtb + bhi .L1723 + cmp w23, 8 + bne .L1724 + mov w1, 0 +.L1726: + ldrb w7, [x0] + cmp w7, 50 + beq .L1725 + ldrb w7, [x0, 1] + cmp w7, 5 + beq .L1725 + add w1, w1, 1 + add x0, x0, 4 + and w1, w1, 255 + cmp w1, 8 + bne .L1726 +.L1727: + adrp x0, .LC141 + mov w1, 0 + add x0, x0, :lo12:.LC141 + bl printk +.L1729: + b .L1729 +.L1715: + mov w0, 54 + str w0, [x19, 2056] + cmp w23, 4 + bne .L1717 + mov w0, 64 + str w1, [x19, 2052] + str w0, [x19, 2048] + mov w0, 204 +.L1807: + str w0, [x19, 2052] + mov w0, 77 + b .L1808 +.L1717: + cmp w25, 1 + bhi .L1719 + ldrb w0, [x26, 128] + str w0, [x19, 2052] + mov w0, 82 +.L1808: + str w0, [x19, 2048] +.L1718: + mov w0, 22 + str w0, [x19, 2056] + mov w0, 23 + str w0, [x19, 2056] + mov w0, 4 + str w0, [x19, 2056] + mov w0, 25 + str w0, [x19, 2056] + str wzr, [x19, 2056] + cmp w23, 6 + str wzr, [x19, 2052] + str wzr, [x19, 2052] + bne .L1720 + mov w0, 31 + str w0, [x19, 2052] +.L1721: + mov w0, 2 + b .L1809 +.L1719: + cmp w23, 7 + bne .L1718 + mov w0, 174 + str w0, [x19, 2052] + str wzr, [x19, 2048] + mov w0, 176 + b .L1807 +.L1720: + str wzr, [x19, 2052] + b .L1721 +.L1762: + mov w1, 16 + b .L1722 +.L1725: + cmp w1, 6 + bhi .L1727 +.L1728: + add x0, x8, :lo12:.LANCHOR5 + ldr x10, [x0, 304] + mov x0, 0 +.L1738: + ldr w1, [x29, 128] + cmp w1, w0 + bgt .L1739 + add x0, x8, :lo12:.LANCHOR5 + mov w9, w24 + mov w7, 8 + ldr x11, [x0, 304] +.L1741: mov w0, 0 -.L1696: - add w1, w0, w11 +.L1740: + add w1, w0, w9 add w0, w0, 1 sbfiz x1, x1, 1, 32 - cmp w0, w23 - ldrh w13, [x12,x1] - mvn w13, w13 - strh w13, [x12,x1] - bne .L1696 - ldr w0, [x29,124] - subs w9, w9, #1 - add w11, w11, w0 - bne .L1697 - mov x9, 0 - mov w17, 1 -.L1698: + cmp w24, w0 + ldrh w12, [x11, x1] + mvn w12, w12 + strh w12, [x11, x1] + bgt .L1740 + ldr w0, [x29, 132] + subs w7, w7, #1 + add w9, w9, w0 + bne .L1741 + mov x7, 0 + mov w15, 1 +.L1747: mov w1, 0 - mov w11, w1 -.L1702: - lsl w13, w17, w11 - mov w15, w9 - mov w0, 16 - mov w14, 0 -.L1700: - 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 .L1700 - cmp w14, 8 - bls .L1701 - orr w1, w1, w13 - uxth w1, w1 -.L1701: - add w11, w11, 1 - cmp w11, 16 - bne .L1702 - strh w1, [x12,x9,lsl 1] - add x9, x9, 1 - cmp w23, w9 - bgt .L1698 - add x1, x26, :lo12:.LANCHOR5 - mov x9, 0 - mov w11, w9 - ldr x1, [x1,296] -.L1705: - ldr w12, [x1,x9] - add x9, x9, 4 - cmp w12, wzr - csinc w11, w11, w11, ne - cmp x9, 32 - bne .L1705 - cmp w11, 7 - ble .L1706 - adrp x0, .LC142 - mov w2, 1 - add x0, x0, :lo12:.LC142 + mov w0, 0 +.L1746: + mov w13, w7 + lsl w14, w15, w0 + mov w9, 16 + mov w12, 0 +.L1744: + ldrh w16, [x11, w13, sxtw 1] + add w13, w13, w24 + bics wzr, w14, w16 + cinc w12, w12, eq + subs w9, w9, #1 + bne .L1744 + cmp w12, 8 + bls .L1745 + orr w1, w1, w14 + and w1, w1, 65535 +.L1745: + add w0, w0, 1 + cmp w0, 16 + bne .L1746 + strh w1, [x11, x7, lsl 1] + add x7, x7, 1 + cmp w24, w7 + bgt .L1747 + add x0, x8, :lo12:.LANCHOR5 + mov w7, 0 + ldr x1, [x0, 304] + mov x0, 0 +.L1750: + ldr w8, [x1, x0] + add x0, x0, 4 + cmp w8, 0 + cinc w7, w7, eq + cmp x0, 32 + bne .L1750 + cmp w7, 7 + ble .L1751 mov w3, 1024 + mov w2, 1 + adrp x0, .LC142 + add x0, x0, :lo12:.LC142 bl rknand_print_hex adrp x0, .LC141 mov w1, 0 add x0, x0, :lo12:.LC141 bl printk -.L1707: - b .L1707 -.L1706: - cmp w19, 6 - mov w9, 4 - beq .L1708 - cmp w19, 7 - mov w9, 10 - beq .L1708 - cmp w7, wzr - mov w9, 5 - mov w1, 8 - csel w9, w1, w9, eq -.L1708: - mov w11, 0 -.L1709: +.L1752: + b .L1752 +.L1724: + cmp w23, 7 + bne .L1730 + mov w1, 0 +.L1732: + ldrb w7, [x0] + cmp w7, 12 + beq .L1731 + ldrb w7, [x0, 1] + cmp w7, 10 + beq .L1731 + add w1, w1, 1 + add x0, x0, 4 + and w1, w1, 255 + cmp w1, 8 + bne .L1732 +.L1733: + adrp x0, .LC141 + mov w1, 0 + add x0, x0, :lo12:.LC141 + bl printk +.L1734: + b .L1734 +.L1731: + cmp w1, 6 + bls .L1728 + b .L1733 +.L1730: + cmp w23, 6 + bne .L1728 mov x1, 0 -.L1710: - add w12, w0, w1 - ldrb w13, [x10,x1] +.L1735: + ldrb w7, [x0, x1] + cmp w7, 12 + beq .L1728 + add x7, x0, x1 + ldrb w7, [x7, 8] + cmp w7, 4 + beq .L1728 add x1, x1, 1 - cmp w28, w1, uxtb - strb w13, [x21,w12,sxtw] - bhi .L1710 - add w11, w11, 1 - ldr x1, [x29,112] - cmp w11, w27 - add w0, w0, w9 - add x10, x10, x1 - blt .L1709 - mov w21, 255 - str w21, [x24,2056] - str x7, [x29,96] - str x8, [x29,104] + cmp x1, 8 + bne .L1735 + adrp x0, .LC141 + mov w1, 0 + add x0, x0, :lo12:.LC141 + bl printk +.L1737: + b .L1737 +.L1739: + ldr w1, [x19, 2048] + strb w1, [x10, x0] + add x0, x0, 1 + b .L1738 +.L1751: + cmp w23, 6 + beq .L1764 + cmp w23, 7 + beq .L1765 + cmp w23, 8 + mov w0, 5 + mov w1, 8 + csel w1, w1, w0, ne +.L1753: + mov w7, 0 +.L1754: + mov x0, 0 +.L1755: + add w8, w9, w0 + ldrb w11, [x10, x0] + add x0, x0, 1 + cmp w27, w0, uxtb + strb w11, [x22, w8, sxtw] + bhi .L1755 + ldr x0, [x29, 112] + add w7, w7, 1 + add w9, w9, w1 + cmp w28, w7 + add x10, x10, x0 + bgt .L1754 + mov w22, 255 + str w22, [x19, 2056] bl nandc_wait_flash_ready - ldr x8, [x29,104] - ldr x7, [x29,96] - cbz w8, .L1712 + cmp w25, 1 + bhi .L1757 mov w0, 54 - str w0, [x24,2056] - ldrb w0, [x25,128] - str w0, [x24,2052] + str w0, [x19, 2056] + ldrb w0, [x26, 128] + str w0, [x19, 2052] + str wzr, [x19, 2048] mov w0, 22 - str wzr, [x24,2048] - str w0, [x24,2056] + str w0, [x19, 2056] mov w0, 48 - 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 .L1762 -.L1712: - mov w0, 190 - cbnz w7, .L1762 - mov w0, 56 -.L1762: - str w0, [x24,2056] - add w20, w20, 1 + str wzr, [x19, 2056] + str wzr, [x19, 2052] + str wzr, [x19, 2052] + str w22, [x19, 2052] + str w22, [x19, 2052] + str w22, [x19, 2052] +.L1810: + str w0, [x19, 2056] + add w21, w21, 1 + and w21, w21, 255 bl nandc_wait_flash_ready - uxtb w20, w20 - b .L1670 + b .L1714 +.L1764: + mov w1, 4 + b .L1753 +.L1765: + mov w1, 10 + b .L1753 +.L1757: + cmp w23, 8 + bne .L1759 + mov w0, 190 + b .L1810 +.L1759: + mov w0, 56 + b .L1810 .size hynix_get_read_retry_default, .-hynix_get_read_retry_default .align 2 .global flash_get_read_retry_tbl .type flash_get_read_retry_tbl, %function flash_get_read_retry_tbl: adrp x0, .LANCHOR2+27 + ldrb w0, [x0, #:lo12:.LANCHOR2+27] + sub w1, w0, #1 + and w1, w1, 255 + cmp w1, 7 + bhi .L1814 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldrb w0, [x0,#:lo12:.LANCHOR2+27] - sub w1, w0, #1 - uxtb w1, w1 - cmp w1, 7 - bhi .L1764 bl hynix_get_read_retry_default -.L1764: ldp x29, x30, [sp], 16 ret +.L1814: + ret .size flash_get_read_retry_tbl, .-flash_get_read_retry_tbl .align 2 .global nandc_xfer_done @@ -11258,487 +11226,477 @@ flash_get_read_retry_tbl: nandc_xfer_done: stp x29, x30, [sp, -80]! add x29, sp, 0 - stp x21, x22, [sp,32] + stp x21, x22, [sp, 32] adrp x21, .LANCHOR5 add x0, x21, :lo12:.LANCHOR5 - stp x19, x20, [sp,16] - stp x23, x24, [sp,48] - adrp x19, .LANCHOR0 - strb wzr, [x0,304] - add x0, x19, :lo12:.LANCHOR0 - ldrb w1, [x0,1028] + stp x19, x20, [sp, 16] + stp x23, x24, [sp, 48] + adrp x20, .LANCHOR0 + strb wzr, [x0, 312] + add x0, x20, :lo12:.LANCHOR0 + ldrb w1, [x0, 1028] cmp w1, 9 - bne .L1767 - ldr x22, [x0,1048] - ldr w0, [x22,16] - str w0, [x29,64] - ldr w20, [x22,48] - ubfx x20, x20, 1, 1 - cbnz w20, .L1788 - adrp x21, .LC145 - adrp x23, .LC146 - add x21, x21, :lo12:.LC145 - add x23, x23, :lo12:.LC146 - b .L1769 -.L1788: - mov w20, 0 -.L1768: - ldr w1, [x22,64] - ldr w0, [x29,64] + bne .L1818 + ldr x22, [x0, 1056] + ldr w1, [x22, 16] + str w1, [x29, 64] + ldr w1, [x22, 48] + tbnz x1, 1, .L1819 + adrp x23, .LC145 + adrp x24, .LC146 + mov x19, x0 + add x23, x23, :lo12:.LC145 + add x24, x24, :lo12:.LC146 + mov w21, 0 +.L1820: + ldr w0, [x29, 64] + tbz x0, 20, .L1830 + add x19, x20, :lo12:.LANCHOR0 + add x19, x19, 1256 + ldr w0, [x19, 32] + cbz w0, .L1828 + ldr w1, [x29, 64] + mov w2, 1 + ldr w0, [x19, 24] + ubfx x1, x1, 22, 6 + lsl w1, w1, 10 + bl rknand_dma_unmap_single + ldr w1, [x29, 64] + mov w2, 1 + ubfx x1, x1, 22, 6 + b .L1865 +.L1819: + mov x19, x0 + mov w23, 0 +.L1821: + ldr w1, [x22, 64] + ldr w0, [x29, 64] ubfx x1, x1, 16, 6 ubfx x0, x0, 22, 6 cmp w1, w0 - bge .L1771 - add x0, x19, :lo12:.LANCHOR0 - ldr x0, [x0,1048] + bge .L1823 + ldr x0, [x19, 1056] ldr w0, [x0] - str w0, [x29,72] - ldr w0, [x29,72] - tbz x0, 13, .L1770 - ldr w0, [x29,72] - tbz x0, 17, .L1770 - ldr w1, [x29,72] + str w0, [x29, 72] + ldr w0, [x29, 72] + tbz x0, 13, .L1822 + ldr w0, [x29, 72] + tbz x0, 17, .L1822 + ldr w1, [x29, 72] adrp x0, .LC143 add x0, x0, :lo12:.LC143 ubfx x1, x1, 17, 1 bl printk - b .L1771 -.L1770: - ldr w0, [x29,64] - add w20, w20, 1 +.L1823: + add x19, x20, :lo12:.LANCHOR0 + add x19, x19, 1256 + ldr w0, [x19, 32] + cbz w0, .L1828 + ldr w1, [x29, 64] + mov w2, 0 + ldr w0, [x19, 24] + ubfx x1, x1, 22, 6 + lsl w1, w1, 10 + bl rknand_dma_unmap_single + ldr w1, [x29, 64] + mov w2, 0 + ubfx x1, x1, 22, 6 +.L1865: + lsl w1, w1, 2 +.L1863: + ldr w0, [x19, 28] + bl rknand_dma_unmap_single +.L1828: + add x20, x20, :lo12:.LANCHOR0 + ldp x21, x22, [sp, 32] + str wzr, [x20, 1288] + ldp x23, x24, [sp, 48] + ldp x19, x20, [sp, 16] + ldp x29, x30, [sp], 80 + ret +.L1822: + ldr w0, [x29, 64] + add w23, w23, 1 ubfx x0, x0, 22, 6 - cmp w20, w0, lsl 12 - bne .L1772 - ldr w2, [x22,64] + cmp w23, w0, lsl 12 + bne .L1824 + ldr w2, [x22, 64] + mov w1, w23 + ldr w3, [x29, 64] adrp x0, .LC144 - ldr w3, [x29,64] - mov w1, w20 + add x21, x21, :lo12:.LANCHOR5 add x0, x0, :lo12:.LC144 ubfx x2, x2, 16, 5 ubfx x3, x3, 22, 6 - add x21, x21, :lo12:.LANCHOR5 bl printk - ldr w1, [x29,72] + ldr w1, [x29, 72] mov w0, 1 - strb w0, [x21,304] - tbnz x1, 13, .L1771 + strb w0, [x21, 312] + tbnz x1, 13, .L1823 mov x0, 35160 movk x0, 0x41, lsl 16 bl __const_udelay - b .L1771 -.L1772: - mov x0, 5 + b .L1823 +.L1824: mov x1, 10 + mov x0, 5 bl usleep_range - b .L1768 -.L1771: - add x20, x19, :lo12:.LANCHOR0 - add x20, x20, 1200 - ldr w0, [x20,32] - cbz w0, .L1776 - ldr w1, [x29,64] - mov w2, 0 - ldr w0, [x20,24] - ubfx x1, x1, 22, 6 - lsl w1, w1, 10 - bl rknand_dma_unmap_single - ldr w1, [x29,64] - ldr w0, [x20,28] - ubfx x1, x1, 22, 6 - lsl w1, w1, 2 - b .L1813 -.L1778: - add x24, x19, :lo12:.LANCHOR0 - add w20, w20, 1 - ldr x0, [x24,1048] - ldr w0, [x0,16] - str w0, [x29,64] - and w0, w20, 16777215 - cbnz w0, .L1777 - ldr w2, [x29,64] - mov w1, w20 - ldr w3, [x22,64] - mov x0, x21 + b .L1821 +.L1830: + ldr x0, [x19, 1056] + add w21, w21, 1 + tst x21, 16777215 + ldr w0, [x0, 16] + str w0, [x29, 64] + bne .L1829 + ldr w2, [x29, 64] + mov w1, w21 + ldr w3, [x22, 64] + mov x0, x23 ubfx x3, x3, 16, 6 bl printk - ldr x1, [x24,1048] - mov x0, x23 - mov w2, 4 + ldr x1, [x19, 1056] mov w3, 64 + mov w2, 4 + mov x0, x24 bl rknand_print_hex -.L1777: - mov x0, 5 +.L1829: mov x1, 10 + mov x0, 5 bl usleep_range -.L1769: - ldr w0, [x29,64] - tbz x0, 20, .L1778 - add x20, x19, :lo12:.LANCHOR0 - add x20, x20, 1200 - ldr w0, [x20,32] - cbz w0, .L1776 - ldr w1, [x29,64] + b .L1820 +.L1818: + ldr x21, [x0, 1056] + mov w22, 0 + mov x19, x0 + ldr w1, [x21, 8] + str w1, [x29, 64] + ldr w1, [x21, 16] + tbnz x1, 1, .L1832 + adrp x23, .LC145 + adrp x24, .LC146 + add x23, x23, :lo12:.LC145 + add x24, x24, :lo12:.LC146 +.L1833: + ldr w0, [x29, 64] + tbz x0, 20, .L1840 + add x19, x20, :lo12:.LANCHOR0 + add x19, x19, 1256 + ldr w0, [x19, 32] + cbz w0, .L1828 + ldr w1, [x29, 64] mov w2, 1 - ldr w0, [x20,24] + ldr w0, [x19, 24] ubfx x1, x1, 22, 6 lsl w1, w1, 10 bl rknand_dma_unmap_single - ldr w1, [x29,64] - ldr w0, [x20,28] + ldr w1, [x29, 64] + mov w2, 1 ubfx x1, x1, 22, 6 - lsl w1, w1, 2 - b .L1812 -.L1767: - ldr x21, [x0,1048] - ldr w0, [x21,8] - str w0, [x29,64] - ldr w20, [x21,16] - ubfx x20, x20, 1, 1 - cbnz w20, .L1789 - adrp x22, .LC145 - adrp x23, .LC146 - add x22, x22, :lo12:.LC145 - add x23, x23, :lo12:.LC146 - b .L1781 -.L1789: - adrp x22, .LC144 - adrp x23, .LC146 - mov w20, 0 - add x22, x22, :lo12:.LC144 - add x23, x23, :lo12:.LC146 -.L1780: - ldr w2, [x21,28] - ldr w1, [x29,64] - ubfx x2, x2, 16, 5 - ubfx x1, x1, 22, 6 - cmp w2, w1 - bge .L1783 - add x0, x19, :lo12:.LANCHOR0 - ldr x0, [x0,1048] + b .L1864 +.L1832: + adrp x23, .LC144 + adrp x24, .LC146 + add x23, x23, :lo12:.LC144 + add x24, x24, :lo12:.LC146 +.L1834: + ldr w1, [x21, 28] + ldr w0, [x29, 64] + ubfx x1, x1, 16, 5 + ubfx x0, x0, 22, 6 + cmp w1, w0 + bge .L1836 + ldr x0, [x19, 1056] ldr w0, [x0] - str w0, [x29,72] - ldr w0, [x29,72] - tbz x0, 13, .L1782 - ldr w0, [x29,72] - tbz x0, 17, .L1782 - ldr w1, [x29,72] + str w0, [x29, 72] + ldr w0, [x29, 72] + tbz x0, 13, .L1835 + ldr w0, [x29, 72] + tbz x0, 17, .L1835 + ldr w1, [x29, 72] adrp x0, .LC147 add x0, x0, :lo12:.LC147 bl printk - b .L1783 -.L1782: - add w20, w20, 1 - and w0, w20, 16777215 - cbnz w0, .L1784 - ldr w2, [x21,28] - mov w1, w20 - ldr w3, [x29,64] - mov x0, x22 +.L1836: + add x19, x20, :lo12:.LANCHOR0 + add x19, x19, 1256 + ldr w0, [x19, 32] + cbz w0, .L1828 + ldr w1, [x29, 64] + mov w2, 0 + ldr w0, [x19, 24] + ubfx x1, x1, 22, 6 + lsl w1, w1, 10 + bl rknand_dma_unmap_single + ldr w1, [x29, 64] + mov w2, 0 + ubfx x1, x1, 22, 6 +.L1864: + lsl w1, w1, 7 + b .L1863 +.L1835: + add w22, w22, 1 + tst x22, 16777215 + bne .L1837 + ldr w2, [x21, 28] + mov w1, w22 + ldr w3, [x29, 64] + mov x0, x23 ubfx x2, x2, 16, 5 ubfx x3, x3, 22, 6 bl printk - add x1, x19, :lo12:.LANCHOR0 - mov x0, x23 - mov w2, 4 + ldr x1, [x19, 1056] mov w3, 64 - ldr x1, [x1,1048] + mov w2, 4 + mov x0, x24 bl rknand_print_hex -.L1784: - mov x0, 5 +.L1837: mov x1, 10 + mov x0, 5 bl usleep_range - b .L1780 -.L1783: - add x20, x19, :lo12:.LANCHOR0 - add x20, x20, 1200 - ldr w0, [x20,32] - cbz w0, .L1776 - ldr w1, [x29,64] - mov w2, 0 - ldr w0, [x20,24] - ubfx x1, x1, 22, 6 - lsl w1, w1, 10 - bl rknand_dma_unmap_single - ldr w1, [x29,64] - ldr w0, [x20,28] - ubfx x1, x1, 22, 6 - lsl w1, w1, 7 -.L1813: - mov w2, 0 - b .L1811 -.L1787: - add x24, x19, :lo12:.LANCHOR0 - add w20, w20, 1 - ldr x0, [x24,1048] - ldr w0, [x0,8] - str w0, [x29,64] - and w0, w20, 16777215 - cbnz w0, .L1786 - ldr w2, [x29,64] - mov w1, w20 - ldr w3, [x21,28] - mov x0, x22 + b .L1834 +.L1840: + ldr x0, [x19, 1056] + add w22, w22, 1 + tst x22, 16777215 + ldr w0, [x0, 8] + str w0, [x29, 64] + bne .L1839 + ldr w2, [x29, 64] + mov w1, w22 + ldr w3, [x21, 28] + mov x0, x23 ubfx x3, x3, 16, 5 bl printk - ldr x1, [x24,1048] - mov x0, x23 - mov w2, 4 + ldr x1, [x19, 1056] mov w3, 64 + mov w2, 4 + mov x0, x24 bl rknand_print_hex -.L1786: - mov x0, 5 +.L1839: mov x1, 10 + mov x0, 5 bl usleep_range -.L1781: - ldr w0, [x29,64] - tbz x0, 20, .L1787 - add x20, x19, :lo12:.LANCHOR0 - add x20, x20, 1200 - ldr w0, [x20,32] - cbz w0, .L1776 - ldr w1, [x29,64] - mov w2, 1 - ldr w0, [x20,24] - ubfx x1, x1, 22, 6 - lsl w1, w1, 10 - bl rknand_dma_unmap_single - ldr w1, [x29,64] - ldr w0, [x20,28] - ubfx x1, x1, 22, 6 - lsl w1, w1, 7 -.L1812: - mov w2, 1 -.L1811: - bl rknand_dma_unmap_single -.L1776: - add x19, x19, :lo12:.LANCHOR0 - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - str wzr, [x19,1232] - ldp x19, x20, [sp,16] - ldp x29, x30, [sp], 80 - ret + b .L1833 .size nandc_xfer_done, .-nandc_xfer_done .align 2 .global nandc_xfer .type nandc_xfer, %function nandc_xfer: - stp x29, x30, [sp, -80]! + stp x29, x30, [sp, -64]! add x29, sp, 0 - stp x21, x22, [sp,32] - stp x19, x20, [sp,16] - uxtb w22, w2 - uxtb w20, w1 - mov x2, x3 - mov w0, w20 - mov w1, w22 + stp x19, x20, [sp, 16] + and w20, w2, 255 + stp x21, x22, [sp, 32] mov x21, x3 + and w19, w1, 255 mov x3, x4 - str x23, [sp,48] - mov x23, x4 + mov x2, x21 + mov w1, w20 + mov w0, w19 + mov x22, x4 bl nandc_xfer_start - mov w0, w20 + mov w0, w19 bl nandc_xfer_done - mov w0, 0 - cbnz w20, .L1844 + cbnz w19, .L1885 adrp x19, .LANCHOR0 - add x1, x19, :lo12:.LANCHOR0 - ldrb w2, [x1,1028] - cmp w2, 9 - bne .L1816 - ldr x5, [x1,1048] - lsr w22, w22, 2 - mov w4, 1 - mov w3, w0 -.L1817: - cmp w3, w22 - bcs .L1853 - uxtw x1, w3 - add x1, x1, 84 - ldr w1, [x5,x1,lsl 2] - str w1, [x29,72] - ldr w1, [x29,72] - ubfx x2, x1, 10, 1 - ldr w1, [x29,72] - ubfx x1, x1, 26, 1 - and w1, w1, w2 - and w4, w4, w1 - ldr w1, [x29,72] - tbnz x1, 2, .L1836 - ldr w1, [x29,72] - tbnz x1, 18, .L1836 - 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 .L1819 - ubfx x1, x1, 3, 7 - b .L1820 -.L1819: - ubfx x1, x1, 19, 7 -.L1820: - cmp w0, w1 - csel w0, w0, w1, cs - b .L1818 -.L1836: - mov w0, -1 -.L1818: - add w3, w3, 1 - b .L1817 -.L1853: - add x22, x19, :lo12:.LANCHOR0 - cmp w4, wzr - ldr x1, [x22,1048] - ldr w20, [x1] + add x0, x19, :lo12:.LANCHOR0 + ldrb w1, [x0, 1028] + cmp w1, 9 + bne .L1868 + lsr w20, w20, 2 + ldr x5, [x0, 1056] + mov w3, 1 + mov w2, 0 + mov w0, 0 +.L1869: + cmp w2, w20 + bcc .L1873 + ldr w20, [x5] + cmp w3, 0 mov w1, 512 csel w0, w0, w1, eq mov w1, 8192 movk w1, 0x2, lsl 16 and w1, w20, w1 cmp w1, 139264 - bne .L1823 - adrp x0, .LC148 + bne .L1875 mov w1, w20 + adrp x0, .LC148 add x0, x0, :lo12:.LC148 - orr w20, w20, 131072 bl printk - ldr x0, [x22,1048] + add x0, x19, :lo12:.LANCHOR0 + orr w20, w20, 131072 + ldr x0, [x0, 1056] str w20, [x0] mov w0, -1 -.L1823: - tbz x20, 13, .L1824 - adrp x1, .LANCHOR5+304 - ldrb w1, [x1,#:lo12:.LANCHOR5+304] - cbz w1, .L1824 - adrp x0, .LC149 - mov w1, w20 - add x0, x0, :lo12:.LC149 +.L1875: + tbz x20, 13, .L1876 + adrp x1, .LANCHOR5+312 + ldrb w1, [x1, #:lo12:.LANCHOR5+312] + cbz w1, .L1876 add x19, x19, :lo12:.LANCHOR0 + mov w1, w20 + adrp x0, .LC149 + add x0, x0, :lo12:.LC149 bl printk - ldr x0, [x19,1048] + ldr x0, [x19, 1056] mov w1, 1 - str w1, [x0,16] - b .L1825 -.L1816: - ldrb w0, [x1,1244] - mov w4, 128 - lsr w5, w22, 1 - mov w2, 1 - cmp w0, 25 - mov w0, 64 - csel w4, w0, w4, cc - mov w3, w20 -.L1827: - cmp w3, w5 - add w6, w20, w4 - bcs .L1854 - ldr x0, [x1,1200] - and x20, x20, 4294967292 - ubfiz x7, x3, 2, 30 - add w3, w3, 1 - ldr w0, [x0,x20] - mov w20, w6 - strb w0, [x23,x7] - lsr w7, w0, 8 - strb w7, [x23,w2,uxtw] - add w7, w2, 1 - lsr w8, w0, 16 - lsr w0, w0, 24 - strb w8, [x23,x7] - add w7, w2, 2 - add w2, w2, 4 - strb w0, [x23,x7] - b .L1827 -.L1854: - add x0, x19, :lo12:.LANCHOR0 - mov w2, 0 - lsr w22, w22, 2 - ldr x6, [x0,1048] - mov w0, w2 -.L1829: - cmp w2, w22 - bcs .L1855 + str w1, [x0, 16] +.L1904: + mov w0, -1 +.L1867: + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x29, x30, [sp], 64 + ret +.L1873: uxtw x1, w2 - add x1, x1, 8 - ldr w1, [x6,x1,lsl 2] - str w1, [x29,72] - ldr w1, [x29,72] - tbnz x1, 2, .L1839 - ldr w1, [x29,72] - tbnz x1, 15, .L1839 - ldr w3, [x29,72] - ubfx x5, x3, 3, 5 - ldr w3, [x29,72] - ldr w1, [x29,72] - ubfx x3, x3, 27, 1 - ubfx x4, x1, 16, 5 - ldr w1, [x29,72] - orr w3, w5, w3, lsl 5 - ubfx x1, x1, 29, 1 - orr w1, w4, w1, lsl 5 - cmp w3, w1 - ldr w1, [x29,72] - bls .L1831 - ubfx x3, x1, 3, 5 - ldr w1, [x29,72] - ubfx x1, x1, 27, 1 - b .L1852 -.L1831: - ubfx x3, x1, 16, 5 - ldr w1, [x29,72] - ubfx x1, x1, 29, 1 -.L1852: - orr w1, w3, w1, lsl 5 + add x1, x1, 84 + ldr w1, [x5, x1, lsl 2] + str w1, [x29, 56] + ldr w1, [x29, 56] + ldr w4, [x29, 56] + ubfx x4, x4, 26, 1 + and w1, w4, w1, lsr 10 + and w3, w3, w1 + ldr w1, [x29, 56] + tbnz x1, 2, .L1887 + ldr w1, [x29, 56] + tbnz x1, 18, .L1887 + ldr w4, [x29, 56] + ldr w1, [x29, 56] + ubfx x4, x4, 3, 7 + ubfx x1, x1, 19, 7 + cmp w4, w1 + ldr w1, [x29, 56] + ble .L1871 + ubfx x1, x1, 3, 7 +.L1872: cmp w0, w1 csel w0, w0, w1, cs - b .L1830 -.L1839: - mov w0, -1 -.L1830: +.L1870: add w2, w2, 1 - b .L1829 -.L1855: - add x19, x19, :lo12:.LANCHOR0 - ldr x1, [x19,1048] - str wzr, [x1,16] - ldr w20, [x1] + b .L1869 +.L1871: + ubfx x1, x1, 19, 7 + b .L1872 +.L1887: + mov w0, -1 + b .L1870 +.L1868: + ldrb w1, [x0, 1249] + lsr w5, w20, 1 + mov w4, 64 + mov w2, 1 + cmp w1, 25 + mov w1, 128 + mov w3, 0 + csel w4, w4, w1, cc + mov w1, 0 +.L1878: + add w6, w4, w1 + cmp w3, w5 + bcc .L1879 + add x0, x19, :lo12:.LANCHOR0 + lsr w20, w20, 2 + mov w3, 0 + ldr x4, [x0, 1056] + mov w0, 0 +.L1880: + cmp w3, w20 + bcc .L1884 + str wzr, [x4, 16] mov w1, 8192 movk w1, 0x2, lsl 16 + ldr w20, [x4] and w1, w20, w1 cmp w1, 139264 - bne .L1824 - adrp x0, .LC150 + bne .L1876 + add x19, x19, :lo12:.LANCHOR0 mov w1, w20 + adrp x0, .LC150 add x0, x0, :lo12:.LC150 - orr w20, w20, 131072 bl printk - ldr x0, [x19,1048] + orr w20, w20, 131072 + ldr x0, [x19, 1056] str w20, [x0] - b .L1825 -.L1824: + b .L1904 +.L1879: + ldr x7, [x0, 1256] + and x1, x1, 4294967292 + ldr w1, [x7, x1] + lsl w7, w3, 2 + add w3, w3, 1 + strb w1, [x22, x7] + lsr w7, w1, 8 + strb w7, [x22, w2, uxtw] + add w7, w2, 1 + lsr w8, w1, 16 + lsr w1, w1, 24 + strb w8, [x22, x7] + add w7, w2, 2 + add w2, w2, 4 + strb w1, [x22, x7] + mov w1, w6 + b .L1878 +.L1884: + uxtw x1, w3 + add x1, x1, 8 + ldr w1, [x4, x1, lsl 2] + str w1, [x29, 56] + ldr w1, [x29, 56] + tbnz x1, 2, .L1890 + ldr w1, [x29, 56] + tbnz x1, 15, .L1890 + ldr w2, [x29, 56] + ubfx x6, x2, 3, 5 + ldr w2, [x29, 56] + ldr w1, [x29, 56] + ubfx x2, x2, 27, 1 + ubfx x5, x1, 16, 5 + ldr w1, [x29, 56] + orr w2, w6, w2, lsl 5 + ubfx x1, x1, 29, 1 + orr w1, w5, w1, lsl 5 + cmp w2, w1 + ldr w1, [x29, 56] + bls .L1882 + ubfx x2, x1, 3, 5 + ldr w1, [x29, 56] + ubfx x1, x1, 27, 1 +.L1903: + orr w1, w2, w1, lsl 5 + cmp w0, w1 + csel w0, w0, w1, cs +.L1881: + add w3, w3, 1 + b .L1880 +.L1882: + ubfx x2, x1, 16, 5 + ldr w1, [x29, 56] + ubfx x1, x1, 29, 1 + b .L1903 +.L1890: + mov w0, -1 + b .L1881 +.L1876: cmn w0, #1 - beq .L1844 - ldr w1, [x23] + beq .L1867 + ldr w1, [x22] cmn w1, #1 - bne .L1844 - ldr w1, [x23,4] + bne .L1867 + ldr w1, [x22, 4] cmn w1, #1 - bne .L1844 + bne .L1867 ldr w1, [x21] cmn w1, #1 mov w1, 512 csel w0, w0, w1, ne - b .L1844 -.L1825: - mov w0, -1 -.L1844: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldr x23, [sp,48] - ldp x29, x30, [sp], 80 - ret + b .L1867 +.L1885: + mov w0, 0 + b .L1867 .size nandc_xfer, .-nandc_xfer .align 2 .global flash_read_page @@ -11746,529 +11704,516 @@ nandc_xfer: flash_read_page: stp x29, x30, [sp, -96]! add x29, sp, 0 - stp x21, x22, [sp,32] + stp x21, x22, [sp, 32] adrp x21, .LANCHOR0 - str x27, [sp,80] + str x27, [sp, 80] add x27, x21, :lo12:.LANCHOR0 - uxtb w22, w0 - stp x19, x20, [sp,16] - mov w0, 24 - ldrb w19, [x27,1257] - stp x23, x24, [sp,48] - sub w19, w0, w19 - mov w0, 1 - lsl w19, w0, w19 + and w22, w0, 255 + stp x19, x20, [sp, 16] + mov w19, 24 + stp x23, x24, [sp, 48] + ldrb w0, [x27, 1205] ubfx x23, x1, 24, 2 - sub w19, w19, #1 - mov x24, x3 - stp x25, x26, [sp,64] - ldr x20, [x27,1048] + stp x25, x26, [sp, 64] + mov w24, w4 + sub w0, w19, w0 + mov w19, 1 mov x25, x2 - mov w26, w4 - and w19, w1, w19 + mov x26, x3 + lsl w19, w19, w0 + sub w19, w19, #1 + and w19, w19, w1 + ldr x20, [x27, 1056] bl nandc_wait_flash_ready mov w0, w22 bl nandc_cs - cbnz w23, .L1857 + cbnz w23, .L1906 mov w0, w22 bl zftl_flash_enter_slc_mode - b .L1858 -.L1857: - ldr x0, [x27,1144] - ldrb w0, [x0,12] - cmp w0, 3 - bne .L1859 - ldrb w0, [x27,1268] - cbnz w0, .L1859 - ldrb w0, [x27,1269] - cbnz w0, .L1859 - sxtw x0, w22 - add x0, x0, 8 - add x0, x20, x0, lsl 8 - str w23, [x0,8] - b .L1858 -.L1859: - mov w0, w22 - bl zftl_flash_exit_slc_mode -.L1858: +.L1907: add x0, x21, :lo12:.LANCHOR0 - ldr x1, [x0,1144] - ldrb w0, [x1,7] + ldr x1, [x0, 1144] + ldrb w0, [x1, 7] cmp w0, 1 - bne .L1860 - ldrb w0, [x1,12] + bne .L1909 + ldrb w0, [x1, 12] cmp w0, 2 - bne .L1860 + bne .L1909 sxtw x0, w22 mov w2, 38 add x0, x0, 8 add x0, x20, x0, lsl 8 - str w2, [x0,8] -.L1860: - ubfiz x5, x22, 8, 8 + str w2, [x0, 8] +.L1909: + ubfiz x0, x22, 8, 8 + add x20, x20, x0 and w0, w19, 255 - add x20, x20, x5 - str wzr, [x20,2056] - str wzr, [x20,2052] - str wzr, [x20,2052] - str w0, [x20,2052] + str wzr, [x20, 2056] + str wzr, [x20, 2052] + str wzr, [x20, 2052] + str w0, [x20, 2052] lsr w0, w19, 8 - str w0, [x20,2052] + str w0, [x20, 2052] lsr w0, w19, 16 - str w0, [x20,2052] + str w0, [x20, 2052] add x0, x21, :lo12:.LANCHOR0 - ldrb w0, [x0,1256] - cbz w0, .L1861 + ldrb w0, [x0, 1204] + cbz w0, .L1910 lsr w0, w19, 24 - str w0, [x20,2052] -.L1861: + str w0, [x20, 2052] +.L1910: mov w0, 48 - str w0, [x20,2056] - cbz w23, .L1862 - ldrb w0, [x1,12] + str w0, [x20, 2056] + ldrb w0, [x1, 12] cmp w0, 3 - bne .L1862 + bne .L1911 + cbz w23, .L1911 add x21, x21, :lo12:.LANCHOR0 - ldrb w0, [x21,1268] - cbnz w0, .L1862 - ldrb w0, [x21,1269] - cbnz w0, .L1862 + ldrb w0, [x21, 1212] + cbnz w0, .L1911 + ldrb w0, [x21, 1213] + cbnz w0, .L1911 add w19, w19, w19, lsl 1 sub w0, w19, #1 add w0, w0, w23 - b .L1873 -.L1862: - mov w0, w19 -.L1873: +.L1920: bl nandc_set_seed bl nandc_wait_flash_ready mov w0, 5 - str w0, [x20,2056] - str wzr, [x20,2052] + str w0, [x20, 2056] + str wzr, [x20, 2052] mov w0, 224 - str wzr, [x20,2052] - mov w2, w26 + str wzr, [x20, 2052] + mov w2, w24 + str w0, [x20, 2056] + mov x4, x26 mov x3, x25 - mov x4, x24 - str w0, [x20,2056] mov w1, 0 mov w0, w22 bl nandc_xfer - mov w19, w0 - mov w0, 0 - bl nandc_de_cs - ldr x27, [sp,80] - mov w0, w19 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] + mov w2, w0 + bl nandc_de_cs.constprop.35 + mov w0, w2 + 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 +.L1906: + ldr x0, [x27, 1144] + ldrb w0, [x0, 12] + cmp w0, 3 + bne .L1908 + ldrb w0, [x27, 1212] + cbnz w0, .L1908 + ldrb w0, [x27, 1213] + cbnz w0, .L1908 + sxtw x0, w22 + add x0, x0, 8 + add x0, x20, x0, lsl 8 + str w23, [x0, 8] + b .L1907 +.L1908: + mov w0, w22 + bl zftl_flash_exit_slc_mode + b .L1907 +.L1911: + mov w0, w19 + b .L1920 .size flash_read_page, .-flash_read_page .align 2 .global micron_read_retrial .type micron_read_retrial, %function micron_read_retrial: - stp x29, x30, [sp, -160]! + stp x29, x30, [sp, -128]! add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x20, .LANCHOR0 - uxtb w19, w0 - add x20, x20, :lo12:.LANCHOR0 - str w4, [x29,152] - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] - stp x27, x28, [sp,80] - mov w22, w1 - mov x23, x2 - ldrb w0, [x20,1244] - mov x24, x3 - uxtb x25, w19 - mov w21, 0 + stp x19, x20, [sp, 16] + adrp x19, .LANCHOR0 + add x19, x19, :lo12:.LANCHOR0 + stp x21, x22, [sp, 32] + stp x23, x24, [sp, 48] + and w20, w0, 255 + stp x25, x26, [sp, 64] + mov w24, w1 + stp x27, x28, [sp, 80] + mov x26, x3 + str x2, [x29, 112] + mov w22, 0 + ldrb w0, [x19, 1249] add w0, w0, w0, lsl 1 - asr w0, w0, 2 - str w0, [x29,156] + asr w1, w0, 2 + stp w4, w1, [x29, 120] bl nandc_wait_flash_ready - ldr x0, [x20,1048] - str x0, [x29,144] - adrp x0, .LC151 - add x0, x0, :lo12:.LC151 - str x0, [x29,128] - lsl x0, x25, 8 - str x0, [x29,120] - adrp x0, .LC152 - add x0, x0, :lo12:.LC152 - str x0, [x29,112] -.L1875: - mov w0, w19 - mov w20, 0 - mov w28, -1 - adrp x26, .LANCHOR5 + ldr x19, [x19, 1056] + ubfiz x0, x20, 8, 8 + add x19, x19, x0 +.L1922: + adrp x23, .LANCHOR5 + add x23, x23, :lo12:.LANCHOR5 + mov x27, x23 + mov w21, 0 + mov w25, -1 + mov w0, w20 bl zftl_flash_enter_slc_mode - mov w0, w19 + mov w0, w20 bl zftl_flash_exit_slc_mode - lsl x0, x25, 8 - str x0, [x29,136] -.L1876: - add x0, x26, :lo12:.LANCHOR5 - ldrb w0, [x0,320] - cmp w20, w0 - bcs .L1880 - ldr x0, [x29,144] - add w27, w20, 1 - ldr x1, [x29,136] - add x1, x0, x1 +.L1923: + ldrb w0, [x23, 328] + cmp w21, w0 + bcc .L1928 +.L1927: mov w0, 239 - str x1, [x29,104] - str w0, [x1,2056] + str w0, [x19, 2056] mov w0, 137 - str w0, [x1,2052] + str w0, [x19, 2052] mov x0, 1000 bl __const_udelay - ldr x1, [x29,104] - mov w0, w19 - ldr w4, [x29,152] - mov x2, x23 - mov x3, x24 - str w27, [x1,2048] - str wzr, [x1,2048] - str wzr, [x1,2048] - str wzr, [x1,2048] - mov w1, w22 + str wzr, [x19, 2048] + str wzr, [x19, 2048] + str wzr, [x19, 2048] + ldr w0, [x29, 124] + str wzr, [x19, 2048] + cmp w25, w0 + bcc .L1929 + cmn w25, #1 + mov w0, 256 + csel w25, w25, w0, eq +.L1929: + cmn w25, #1 + cset w23, eq + cmp w25, 256 + cset w0, eq + orr w0, w23, w0 + cbz w0, .L1930 + mov w4, w25 + mov w3, w21 + mov w2, w24 + mov w1, w20 + adrp x0, .LC152 + add x0, x0, :lo12:.LC152 + bl printk + eor w0, w22, 1 + tst w23, w0 + beq .L1931 + mov w1, 3 + mov w0, w20 + mov w22, 1 + bl mt_auto_read_calibration_config + b .L1922 +.L1928: + mov w0, 239 + str w0, [x19, 2056] + mov w0, 137 + str w0, [x19, 2052] + add w28, w21, 1 + mov x0, 1000 + bl __const_udelay + str w28, [x19, 2048] + str wzr, [x19, 2048] + mov x3, x26 + ldr w4, [x29, 120] + mov w1, w24 + ldr x2, [x29, 112] + mov w0, w20 + str wzr, [x19, 2048] + str wzr, [x19, 2048] bl flash_read_page mov w6, w0 adrp x0, .LANCHOR2 - ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 12, .L1877 - ldr x0, [x29,128] + ldr w0, [x0, #:lo12:.LANCHOR2] + tbz x0, 12, .L1924 mov w4, w6 - mov w1, w20 - mov w2, w22 - mov w3, w28 - str x6, [x29,104] + str w6, [x29, 108] + mov w3, w25 + mov w2, w24 + mov w1, w21 + adrp x0, .LC151 + add x0, x0, :lo12:.LC151 bl printk - ldr x6, [x29,104] -.L1877: + ldr w6, [x29, 108] +.L1924: cmn w6, #1 - beq .L1878 - adrp x0, .LANCHOR5 - cmn w28, #1 - add x0, x0, :lo12:.LANCHOR5 - csel w28, w28, w6, ne - ldr x23, [x0,296] - ldr x24, [x0,312] - ldr w0, [x29,156] + beq .L1925 + ldr x0, [x27, 304] + cmn w25, #1 + str x0, [x29, 112] + csel w25, w25, w6, ne + ldr w0, [x29, 124] + ldr x26, [x27, 320] cmp w6, w0 - bcc .L1888 -.L1878: - mov w20, w27 - b .L1876 -.L1888: - mov w28, w6 -.L1880: - ldr x0, [x29,144] - ldr x1, [x29,120] - add x26, x0, x1 - mov w0, 239 - str w0, [x26,2056] - mov w0, 137 - str w0, [x26,2052] - mov x0, 1000 - bl __const_udelay - str wzr, [x26,2048] - str wzr, [x26,2048] - ldr w0, [x29,156] - str wzr, [x26,2048] - str wzr, [x26,2048] - cmp w28, w0 - bcc .L1882 - cmn w28, #1 - mov w0, 256 - csel w28, w28, w0, eq -.L1882: - cmn w28, #1 - cset w26, eq - cbnz w26, .L1890 - cmp w28, 256 - cset w1, eq - cbz w1, .L1883 -.L1890: - ldr x0, [x29,112] - mov w1, w19 - mov w2, w22 - mov w3, w20 - mov w4, w28 - bl printk - cbz w26, .L1885 - cbnz w21, .L1885 - mov w0, w19 - mov w1, 3 - mov w21, 1 - bl mt_auto_read_calibration_config - b .L1875 -.L1885: - cbz w21, .L1886 - mov w0, w19 + bcc .L1934 +.L1925: + mov w21, w28 + b .L1923 +.L1934: + mov w25, w6 + b .L1927 +.L1931: + cbz w22, .L1932 + mov w0, w20 mov w1, 0 bl mt_auto_read_calibration_config - cmn w28, #1 + cmn w25, #1 mov w0, 256 - csel w28, w28, w0, eq - b .L1886 -.L1883: - cbz w21, .L1886 - mov w0, w19 - mov w28, 256 - bl mt_auto_read_calibration_config -.L1886: + csel w25, w25, w0, eq +.L1932: bl nandc_wait_flash_ready - mov w0, w28 - 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 + mov w0, w25 + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] + ldp x27, x28, [sp, 80] + ldp x29, x30, [sp], 128 ret +.L1930: + cbz w22, .L1932 + mov w1, 0 + mov w0, w20 + mov w25, 256 + bl mt_auto_read_calibration_config + b .L1932 .size micron_read_retrial, .-micron_read_retrial .align 2 .global toshiba_3d_read_retrial .type toshiba_3d_read_retrial, %function toshiba_3d_read_retrial: - stp x29, x30, [sp, -128]! + stp x29, x30, [sp, -144]! add x29, sp, 0 - stp x19, x20, [sp,16] - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] - mov w23, w1 - uxtb w24, w0 - stp x27, x28, [sp,80] + stp x21, x22, [sp, 32] + adrp x22, .LANCHOR0 + stp x23, x24, [sp, 48] + mov w24, w1 + stp x25, x26, [sp, 64] + and w23, w0, 255 + stp x27, x28, [sp, 80] mov x26, x2 + stp x19, x20, [sp, 16] mov x27, x3 - str w4, [x29,124] - adrp x20, .LANCHOR0 + mov w28, w4 bl nandc_wait_flash_ready - ubfx x19, x23, 24, 2 - add x1, x20, :lo12:.LANCHOR0 - sxtw x0, w24 + add x0, x22, :lo12:.LANCHOR0 + and x1, x23, 255 + add x21, x1, 8 + str x1, [x29, 120] mov w2, 46 mov w3, 56 - add x0, x0, 8 - mov w21, 10 - ldr x25, [x1,1048] - lsl x0, x0, 8 - ldrb w1, [x1,1136] - add x22, x25, x0 - cmp w1, 36 - csel w2, w3, w2, ne - str w2, [x29,112] + ldrb w1, [x0, 1136] + ubfx x19, x24, 24, 2 + ldr x25, [x0, 1056] cmp w1, 36 mov w1, 26 - csel w21, w21, w1, ne - cbnz w19, .L1911 - str x0, [x29,112] - adrp x0, .LC153 - add x0, x0, :lo12:.LC153 + csel w2, w3, w2, ne + str w2, [x29, 112] + mov w2, 10 + csel w1, w2, w1, ne + str w1, [x29, 128] + add x21, x25, x21, lsl 8 + cbnz w19, .L1952 + str x0, [x29, 136] + sxtw x0, w23 + add x0, x0, 8 mov w19, -1 - mov w28, 1 - str x0, [x29,104] -.L1918: - add x0, x20, :lo12:.LANCHOR0 - ldrb w0, [x0,1136] + add x0, x25, x0, lsl 8 + mov w20, 1 + str x0, [x29, 112] +.L1959: + ldr x0, [x29, 136] + ldrb w0, [x0, 1136] cmp w0, 36 - mov x0, x22 - bne .L1912 - mov w1, w28 + bne .L1953 + mov w1, w20 + mov x0, x21 mov w2, 0 bl toshiba_tlc_set_rr_para - ldr x0, [x29,112] - mov w1, 93 - add x0, x25, x0 - str w1, [x0,8] - b .L1913 -.L1912: - mov w1, w28 - bl toshiba_3d_set_slc_rr_para -.L1913: - ldr w4, [x29,124] - mov w0, w24 - mov w1, w23 - mov x2, x26 + ldr x1, [x29, 112] + mov w0, 93 + str w0, [x1, 8] +.L1954: + mov w4, w28 mov x3, x27 + mov x2, x26 + mov w1, w24 + mov w0, w23 bl flash_read_page mov w4, w0 adrp x0, .LANCHOR2 - ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 4, .L1914 - ldr x0, [x29,104] + ldr w0, [x0, #:lo12:.LANCHOR2] + tbz x0, 4, .L1955 mov w3, w4 - mov w1, w28 - mov w2, w23 - str x4, [x29,96] + str w4, [x29, 108] + mov w2, w24 + mov w1, w20 + adrp x0, .LC153 + add x0, x0, :lo12:.LC153 bl printk - ldr x4, [x29,96] -.L1914: + ldr w4, [x29, 108] +.L1955: cmn w4, #1 - beq .L1915 + beq .L1956 adrp x0, .LANCHOR5 - cmn w19, #1 add x0, x0, :lo12:.LANCHOR5 + cmn w19, #1 csel w19, w19, w4, ne - ldr x26, [x0,296] - ldr x27, [x0,312] - add x0, x20, :lo12:.LANCHOR0 - ldrb w0, [x0,1244] + ldr x26, [x0, 304] + ldr x27, [x0, 320] + ldr x0, [x29, 136] + ldrb w0, [x0, 1249] add w0, w0, w0, lsl 1 cmp w4, w0, lsr 2 - bcc .L1934 -.L1915: - add w28, w28, 1 - cmp w28, w21 - bne .L1918 - b .L1917 -.L1934: - mov w21, w28 - mov w19, w4 -.L1917: - add x0, x20, :lo12:.LANCHOR0 - ldrb w0, [x0,1136] - cmp w0, 36 - mov x0, x22 - bne .L1919 - mov w1, 0 - mov w2, w1 - b .L1957 -.L1919: - mov w1, 0 - bl toshiba_3d_set_slc_rr_para - b .L1920 -.L1911: - mov x28, x0 - adrp x0, .LC154 - add x0, x0, :lo12:.LC154 - mov w19, -1 - mov w21, 1 - str x0, [x29,104] -.L1927: - add x0, x20, :lo12:.LANCHOR0 - ldrb w0, [x0,1136] - cmp w0, 36 - mov x0, x22 - bne .L1921 - mov w1, w21 - mov w2, 1 - bl toshiba_tlc_set_rr_para - add x0, x25, x28 - mov w1, 93 - b .L1956 -.L1921: - mov w1, w21 - bl toshiba_3d_set_tlc_rr_para - add x0, x25, x28 - mov w1, 38 + bcc .L1974 .L1956: - str w1, [x0,8] - mov x2, x26 - mov w0, w24 - mov w1, w23 - ldr w4, [x29,124] - mov x3, x27 - bl flash_read_page - mov w4, w0 - adrp x0, .LANCHOR2 - ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 4, .L1923 - ldr x0, [x29,104] - mov w3, w4 - mov w1, w21 - mov w2, w23 - str x4, [x29,96] - bl printk - ldr x4, [x29,96] -.L1923: - cmn w4, #1 - beq .L1924 - adrp x0, .LANCHOR5 - cmn w19, #1 - add x0, x0, :lo12:.LANCHOR5 - csel w19, w19, w4, ne - ldr x26, [x0,296] - ldr x27, [x0,312] - add x0, x20, :lo12:.LANCHOR0 - ldrb w0, [x0,1244] - add w0, w0, w0, lsl 1 - cmp w4, w0, lsr 2 - bcc .L1935 -.L1924: - ldr w0, [x29,112] - add w21, w21, 1 - cmp w21, w0 - bne .L1927 - b .L1926 -.L1935: - mov w19, w4 -.L1926: - add x0, x20, :lo12:.LANCHOR0 - ldrb w0, [x0,1136] + ldr w0, [x29, 128] + add w20, w20, 1 + cmp w0, w20 + bne .L1959 +.L1958: + add x0, x22, :lo12:.LANCHOR0 + ldrb w0, [x0, 1136] cmp w0, 36 - mov x0, x22 - bne .L1928 + bne .L1960 + mov w2, 0 +.L1997: mov w1, 0 - mov w2, 1 -.L1957: + mov x0, x21 bl toshiba_tlc_set_rr_para - b .L1920 -.L1928: + b .L1961 +.L1953: + mov w1, w20 + mov x0, x21 + bl toshiba_3d_set_slc_rr_para + b .L1954 +.L1974: + mov w19, w4 + b .L1958 +.L1960: mov w1, 0 - bl toshiba_3d_set_tlc_rr_para -.L1920: - add x0, x20, :lo12:.LANCHOR0 - ldrb w0, [x0,1136] + mov x0, x21 + bl toshiba_3d_set_slc_rr_para +.L1961: + add x0, x22, :lo12:.LANCHOR0 + ldrb w0, [x0, 1136] cmp w0, 36 - bne .L1929 - ubfiz x0, x24, 8, 8 - add x25, x25, x0 + bne .L1970 + ldr x0, [x29, 120] + add x25, x25, x0, lsl 8 mov w0, 85 - str w0, [x25,2056] + str w0, [x25, 2056] mov w0, 255 - str wzr, [x25,2052] - str wzr, [x25,2048] - str w0, [x25,2056] -.L1929: - add x20, x20, :lo12:.LANCHOR0 - ldrb w0, [x20,1244] + str wzr, [x25, 2052] + str wzr, [x25, 2048] + str w0, [x25, 2056] +.L1970: + add x22, x22, :lo12:.LANCHOR0 + ldrb w0, [x22, 1249] add w0, w0, w0, lsl 1 cmp w19, w0, lsr 2 - bcc .L1930 + bcc .L1971 cmn w19, #1 mov w0, 256 csel w19, w19, w0, eq -.L1930: - cmn w19, #1 - beq .L1936 +.L1971: cmp w19, 256 - bne .L1931 -.L1936: + ccmn w19, #1, 4, ne + bne .L1972 adrp x0, .LC155 - mov w1, w24 - add x0, x0, :lo12:.LC155 - mov w2, w23 - mov w3, w21 mov w4, w19 + mov w3, w20 + mov w2, w24 + mov w1, w23 + add x0, x0, :lo12:.LC155 bl printk -.L1931: +.L1972: bl nandc_wait_flash_ready mov w0, w19 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 128 + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] + ldp x27, x28, [sp, 80] + ldp x29, x30, [sp], 144 ret +.L1952: + str x0, [x29, 136] + sxtw x0, w23 + add x0, x0, 8 + mov w19, -1 + add x0, x25, x0, lsl 8 + mov w20, 1 + str x0, [x29, 128] +.L1968: + ldr x0, [x29, 136] + ldrb w0, [x0, 1136] + cmp w0, 36 + bne .L1962 + mov x0, x21 + mov w2, 1 + mov w1, w20 + bl toshiba_tlc_set_rr_para + mov w0, 93 +.L1996: + ldr x1, [x29, 128] + mov w4, w28 + mov x3, x27 + mov x2, x26 + str w0, [x1, 8] + mov w1, w24 + mov w0, w23 + bl flash_read_page + mov w4, w0 + adrp x0, .LANCHOR2 + ldr w0, [x0, #:lo12:.LANCHOR2] + tbz x0, 4, .L1964 + mov w3, w4 + str w4, [x29, 108] + mov w2, w24 + mov w1, w20 + adrp x0, .LC154 + add x0, x0, :lo12:.LC154 + bl printk + ldr w4, [x29, 108] +.L1964: + cmn w4, #1 + beq .L1965 + adrp x0, .LANCHOR5 + add x0, x0, :lo12:.LANCHOR5 + cmn w19, #1 + csel w19, w19, w4, ne + ldr x26, [x0, 304] + ldr x27, [x0, 320] + ldr x0, [x29, 136] + ldrb w0, [x0, 1249] + add w0, w0, w0, lsl 1 + cmp w4, w0, lsr 2 + bcc .L1975 +.L1965: + ldr w0, [x29, 112] + add w20, w20, 1 + cmp w0, w20 + bne .L1968 +.L1967: + add x0, x22, :lo12:.LANCHOR0 + ldrb w0, [x0, 1136] + cmp w0, 36 + bne .L1969 + mov w2, 1 + b .L1997 +.L1962: + mov x0, x21 + mov w1, w20 + bl toshiba_3d_set_tlc_rr_para + mov w0, 38 + b .L1996 +.L1975: + mov w19, w4 + b .L1967 +.L1969: + mov w1, 0 + mov x0, x21 + bl toshiba_3d_set_tlc_rr_para + b .L1961 .size toshiba_3d_read_retrial, .-toshiba_3d_read_retrial .align 2 .global toshiba_read_retrial @@ -12276,623 +12221,614 @@ toshiba_3d_read_retrial: toshiba_read_retrial: stp x29, x30, [sp, -128]! add x29, sp, 0 - stp x21, x22, [sp,32] - stp x25, x26, [sp,64] - uxtb w21, w0 - str w1, [x29,124] - mov x26, x2 - str w4, [x29,120] - stp x19, x20, [sp,16] - stp x23, x24, [sp,48] - stp x27, x28, [sp,80] - mov x27, x3 + stp x19, x20, [sp, 16] + and w19, w0, 255 + stp x27, x28, [sp, 80] + mov x27, x2 + stp w4, w1, [x29, 120] + mov x28, x3 + stp x21, x22, [sp, 32] + adrp x20, .LANCHOR0 + stp x23, x24, [sp, 48] + stp x25, x26, [sp, 64] bl nandc_wait_flash_ready - mov w0, w21 - adrp x19, .LANCHOR0 - mov w25, 0 + mov w0, w19 bl zftl_flash_enter_slc_mode - mov w0, w21 + mov w0, w19 bl zftl_flash_exit_slc_mode - add x1, x19, :lo12:.LANCHOR0 - sxtw x0, w21 + add x1, x20, :lo12:.LANCHOR0 + and x0, x19, 255 add x22, x0, 8 - str x0, [x29,112] - ldrb w0, [x1,1136] - ldr x23, [x1,1048] + str x0, [x29, 112] + ldrb w0, [x1, 1136] + ldr x23, [x1, 1056] sub w0, w0, #67 + and w0, w0, 255 add x22, x23, x22, lsl 8 - uxtb w0, w0 cmp w0, 1 - bls .L1959 - ldrb w0, [x1,1192] - cbz w0, .L1960 + bls .L2016 + ldrb w0, [x1, 1192] + cbz w0, .L2017 + mov w24, 1 mov w0, 1 - mov w25, 1 bl nandc_set_if_mode -.L1960: - ubfiz x0, x21, 8, 8 +.L2000: + and x0, x19, 255 mov w1, 92 - add x0, x23, x0 - str w1, [x0,2056] + add x0, x23, x0, lsl 8 + str w1, [x0, 2056] mov w1, 197 - str w1, [x0,2056] -.L1959: - ldr x0, [x29,112] - mov w20, 1 - mov w24, -1 + str w1, [x0, 2056] +.L1999: + sxtw x0, w19 + mov w21, 1 add x0, x0, 8 - lsl x0, x0, 8 - str x0, [x29,104] - ubfiz x0, x21, 8, 8 - str x0, [x29,96] -.L1961: + mov w25, -1 + add x0, x23, x0, lsl 8 + str x0, [x29, 104] +.L2001: adrp x0, .LANCHOR5 add x0, x0, :lo12:.LANCHOR5 - ldrb w0, [x0,320] + ldrb w0, [x0, 328] add w0, w0, 1 - cmp w20, w0 - bcs .L1992 - add x0, x19, :lo12:.LANCHOR0 - mov w1, w20 - ldrb w0, [x0,1136] - sub w0, w0, #67 - uxtb w0, w0 - cmp w0, 1 - mov x0, x22 - bhi .L1962 - bl sandisk_set_rr_para - b .L1963 -.L1962: - bl toshiba_set_rr_para -.L1963: - add x0, x19, :lo12:.LANCHOR0 - ldrb w0, [x0,1136] - cmp w0, 34 - bne .L1964 - adrp x0, .LANCHOR5 - add x0, x0, :lo12:.LANCHOR5 - ldrb w0, [x0,320] - sub w0, w0, #3 - cmp w20, w0 - bne .L1964 - ldr x0, [x29,104] - mov w1, 179 - add x0, x23, x0 - str w1, [x0,8] -.L1964: - ldr x0, [x29,96] - mov w1, 38 - ldr w4, [x29,120] - mov x2, x26 - add x0, x23, x0 - mov x3, x27 - str w1, [x0,2056] - mov w1, 93 - str w1, [x0,2056] - mov w0, w21 - ldr w1, [x29,124] - bl flash_read_page - cmn w0, #1 - mov w28, w0 - beq .L1967 - cmn w24, #1 - csel w24, w24, w0, ne - adrp x0, .LANCHOR5 - add x0, x0, :lo12:.LANCHOR5 - ldr x26, [x0,296] - ldr x27, [x0,312] - add x0, x19, :lo12:.LANCHOR0 - ldrb w0, [x0,1244] - add w0, w0, w0, lsl 1 - cmp w28, w0, lsr 2 - bcc .L1969 -.L1967: - add w20, w20, 1 - b .L1961 -.L1992: - mov w28, w24 -.L1969: - add x0, x19, :lo12:.LANCHOR0 + cmp w21, w0 + bcc .L2010 + mov w26, w25 +.L2009: + add x0, x20, :lo12:.LANCHOR0 mov w1, 0 - ldrb w0, [x0,1136] + ldrb w0, [x0, 1136] sub w0, w0, #67 - uxtb w0, w0 + and w0, w0, 255 cmp w0, 1 mov x0, x22 - bhi .L1971 + bhi .L2011 bl sandisk_set_rr_para - b .L1972 -.L1971: - bl toshiba_set_rr_para -.L1972: - ldr x0, [x29,112] - add x19, x19, :lo12:.LANCHOR0 - add x0, x0, 8 - add x23, x23, x0, lsl 8 +.L2012: + sxtw x19, w19 + add x20, x20, :lo12:.LANCHOR0 + add x19, x19, 8 mov w0, 255 - str w0, [x23,8] - ldrb w0, [x19,1244] + add x23, x23, x19, lsl 8 + str w0, [x23, 8] + ldrb w0, [x20, 1249] add w0, w0, w0, lsl 1 - cmp w28, w0, lsr 2 - bcc .L1973 - cmn w28, #1 + cmp w26, w0, lsr 2 + bcc .L2013 + cmn w26, #1 mov w0, 256 - csel w28, w28, w0, eq -.L1973: - cmn w28, #1 - beq .L1979 - cmp w28, 256 - bne .L1974 -.L1979: + csel w26, w26, w0, eq +.L2013: + cmp w26, 256 + ccmn w26, #1, 4, ne + bne .L2014 + ldr w2, [x29, 124] adrp x0, .LC155 - ldr w2, [x29,124] + mov w4, w26 + mov w3, w21 + mov w1, w21 add x0, x0, :lo12:.LC155 - mov w1, w20 - mov w3, w20 - mov w4, w28 bl printk -.L1974: +.L2014: bl nandc_wait_flash_ready - cbz w25, .L1976 + cbz w24, .L1998 mov w0, 4 bl nandc_set_if_mode -.L1976: - mov w0, w28 - 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] +.L1998: + 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], 128 ret +.L2017: + mov w24, 0 + b .L2000 +.L2016: + mov w24, 0 + b .L1999 +.L2010: + add x0, x20, :lo12:.LANCHOR0 + mov w1, w21 + ldrb w0, [x0, 1136] + sub w0, w0, #67 + and w0, w0, 255 + cmp w0, 1 + mov x0, x22 + bhi .L2002 + bl sandisk_set_rr_para +.L2003: + add x0, x20, :lo12:.LANCHOR0 + ldrb w0, [x0, 1136] + cmp w0, 34 + bne .L2004 + adrp x0, .LANCHOR5 + add x0, x0, :lo12:.LANCHOR5 + ldrb w0, [x0, 328] + sub w0, w0, #3 + cmp w21, w0 + bne .L2004 + ldr x1, [x29, 104] + mov w0, 179 + str w0, [x1, 8] +.L2004: + ldr x0, [x29, 112] + mov w1, 38 + ldr w4, [x29, 120] + mov x3, x28 + mov x2, x27 + add x0, x23, x0, lsl 8 + str w1, [x0, 2056] + mov w1, 93 + str w1, [x0, 2056] + mov w0, w19 + ldr w1, [x29, 124] + bl flash_read_page + mov w26, w0 + cmn w0, #1 + beq .L2007 + cmn w25, #1 + csel w25, w25, w0, ne + adrp x0, .LANCHOR5 + add x0, x0, :lo12:.LANCHOR5 + ldr x27, [x0, 304] + ldr x28, [x0, 320] + add x0, x20, :lo12:.LANCHOR0 + ldrb w0, [x0, 1249] + add w0, w0, w0, lsl 1 + cmp w26, w0, lsr 2 + bcc .L2009 +.L2007: + add w21, w21, 1 + b .L2001 +.L2002: + bl toshiba_set_rr_para + b .L2003 +.L2011: + bl toshiba_set_rr_para + b .L2012 .size toshiba_read_retrial, .-toshiba_read_retrial .align 2 .global ymtc_3d_read_retrial .type ymtc_3d_read_retrial, %function ymtc_3d_read_retrial: - stp x29, x30, [sp, -96]! + stp x29, x30, [sp, -112]! add x29, sp, 0 - stp x19, x20, [sp,16] - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - uxtb x22, w0 + stp x19, x20, [sp, 16] + mov w19, -1 + stp x21, x22, [sp, 32] + adrp x22, .LANCHOR0 + stp x23, x24, [sp, 48] mov w24, w1 - stp x25, x26, [sp,64] - stp x27, x28, [sp,80] + and w23, w0, 255 + stp x25, x26, [sp, 64] + stp x27, x28, [sp, 80] mov x25, x2 mov x26, x3 mov w27, w4 bl nandc_wait_flash_ready - mov w0, w22 - adrp x21, .LANCHOR0 - mov x23, x22 - mov w19, -1 - bl zftl_flash_enter_slc_mode - mov w20, 1 - mov w0, w22 - add x22, x22, 8 - adrp x28, .LANCHOR5 - bl zftl_flash_exit_slc_mode - add x0, x21, :lo12:.LANCHOR0 - ldr x0, [x0,1048] - add x22, x0, x22, lsl 8 - ubfx x0, x24, 24, 2 - cbnz w0, .L2003 -.L1998: - mov x0, x22 - mov w1, w20 - bl ymtc_3d_set_slc_rr_para + ubfiz x28, x23, 8, 8 mov w0, w23 - mov w1, w24 - mov x2, x25 - mov x3, x26 + bl zftl_flash_enter_slc_mode + mov w0, w23 + bl zftl_flash_exit_slc_mode + add x1, x22, :lo12:.LANCHOR0 + add x0, x28, 2048 + adrp x5, .LANCHOR5 + mov w20, 1 + add x5, x5, :lo12:.LANCHOR5 + mov x21, x1 + ldr x28, [x1, 1056] + tst x24, 50331648 + add x28, x28, x0 + bne .L2040 +.L2035: + str x5, [x29, 104] + mov w1, w20 + mov x0, x28 + bl ymtc_3d_set_slc_rr_para mov w4, w27 + mov x3, x26 + mov x2, x25 + mov w1, w24 + mov w0, w23 bl flash_read_page + ldr x5, [x29, 104] cmn w0, #1 - beq .L1995 - add x1, x28, :lo12:.LANCHOR5 + beq .L2032 + ldrb w1, [x21, 1249] cmn w19, #1 csel w19, w19, w0, ne - ldr x25, [x1,296] - ldr x26, [x1,312] - add x1, x21, :lo12:.LANCHOR0 - ldrb w1, [x1,1244] + ldr x25, [x5, 304] + ldr x26, [x5, 320] add w1, w1, w1, lsl 1 cmp w0, w1, lsr 2 - bcc .L2007 -.L1995: + bcc .L2043 +.L2032: add w20, w20, 1 cmp w20, 10 - bne .L1998 - b .L1997 -.L2007: - mov w19, w0 -.L1997: - mov x0, x22 + bne .L2035 +.L2034: mov w1, 0 + mov x0, x28 bl ymtc_3d_set_slc_rr_para - b .L1999 -.L2023: - add x1, x28, :lo12:.LANCHOR5 - cmn w19, #1 - csel w19, w19, w0, ne - ldr x25, [x1,296] - ldr x26, [x1,312] - add x1, x21, :lo12:.LANCHOR0 - ldrb w1, [x1,1244] - add w1, w1, w1, lsl 1 - cmp w0, w1, lsr 2 - bcc .L2008 -.L2000: - add w20, w20, 1 - cmp w20, 51 - beq .L2002 -.L2003: - mov x0, x22 - mov w1, w20 - bl ymtc_3d_set_tlc_rr_para - mov w0, w23 - mov w1, w24 - mov x2, x25 - mov x3, x26 - mov w4, w27 - bl flash_read_page - cmn w0, #1 - bne .L2023 - b .L2000 -.L2008: - mov w19, w0 -.L2002: - mov x0, x22 - mov w1, 0 - bl ymtc_3d_set_tlc_rr_para -.L1999: - add x21, x21, :lo12:.LANCHOR0 - ldrb w0, [x21,1244] +.L2036: + add x22, x22, :lo12:.LANCHOR0 + ldrb w0, [x22, 1249] add w0, w0, w0, lsl 1 cmp w19, w0, lsr 2 - bcc .L2004 + bcc .L2041 cmn w19, #1 mov w0, 256 csel w19, w19, w0, eq -.L2004: - cmn w19, #1 - beq .L2009 +.L2041: cmp w19, 256 - bne .L2005 -.L2009: + ccmn w19, #1, 4, ne + bne .L2042 adrp x0, .LC156 + mov w4, w19 + mov w3, w20 + mov w2, w24 mov w1, w20 add x0, x0, :lo12:.LC156 - mov w2, w24 - mov w3, w20 - mov w4, w19 bl printk -.L2005: +.L2042: bl nandc_wait_flash_ready mov w0, w19 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 96 + 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 +.L2043: + mov w19, w0 + b .L2034 +.L2040: + str x5, [x29, 104] + mov w1, w20 + mov x0, x28 + bl ymtc_3d_set_tlc_rr_para + mov w4, w27 + mov x3, x26 + mov x2, x25 + mov w1, w24 + mov w0, w23 + bl flash_read_page + ldr x5, [x29, 104] + cmn w0, #1 + beq .L2037 + ldrb w1, [x21, 1249] + cmn w19, #1 + csel w19, w19, w0, ne + ldr x25, [x5, 304] + ldr x26, [x5, 320] + add w1, w1, w1, lsl 1 + cmp w0, w1, lsr 2 + bcc .L2044 +.L2037: + add w20, w20, 1 + cmp w20, 51 + bne .L2040 +.L2039: + mov w1, 0 + mov x0, x28 + bl ymtc_3d_set_tlc_rr_para + b .L2036 +.L2044: + mov w19, w0 + b .L2039 .size ymtc_3d_read_retrial, .-ymtc_3d_read_retrial .align 2 .global samsung_read_retrial .type samsung_read_retrial, %function samsung_read_retrial: - stp x29, x30, [sp, -144]! + stp x29, x30, [sp, -112]! add x29, sp, 0 - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - mov w22, w1 - uxtb w23, w0 - stp x25, x26, [sp,64] - str w4, [x29,140] - mov x25, x2 - mov x26, x3 - adrp x21, .LANCHOR0 - stp x19, x20, [sp,16] - stp x27, x28, [sp,80] + stp x21, x22, [sp, 32] + and w22, w0, 255 + mov w21, w1 + stp x23, x24, [sp, 48] + str w4, [x29, 108] + mov x23, x2 + mov x24, x3 + stp x19, x20, [sp, 16] + stp x25, x26, [sp, 64] + adrp x20, .LANCHOR0 + stp x27, x28, [sp, 80] bl nandc_wait_flash_ready - uxtb x19, w23 - mov w0, w23 + mov w0, w22 bl zftl_flash_enter_slc_mode - mov w0, w23 + mov w0, w22 bl zftl_flash_exit_slc_mode - add x0, x21, :lo12:.LANCHOR0 - adrp x5, .LANCHOR4 - add x5, x5, :lo12:.LANCHOR4 - ldr x24, [x0,1048] - ubfx x0, x22, 24, 2 - cbnz w0, .L2025 - add x0, x5, 161 - add x5, x5, 136 - str x0, [x29,120] - mov w0, 1 - sub w0, w0, w5 - str w0, [x29,112] - lsl x0, x19, 8 - str x0, [x29,128] - add x19, x24, x0 - adrp x0, .LC157 - add x0, x0, :lo12:.LC157 - mov w27, -1 - str x0, [x29,104] -.L2030: - ldr w0, [x29,112] - str x5, [x29,96] - add w20, w0, w5 + add x0, x20, :lo12:.LANCHOR0 + tst x21, 50331648 + and x5, x22, 255 + adrp x7, .LANCHOR4 + ldr x0, [x0, 1056] + bne .L2060 + add x7, x7, :lo12:.LANCHOR4 + adrp x25, .LC157 + add x25, x25, :lo12:.LC157 + add x27, x0, x5, lsl 8 + mov x28, 0 + add x0, x7, 152 + mov w26, -1 + str x0, [x29, 96] +.L2065: mov w0, 239 - str w0, [x19,2056] + str w0, [x27, 2056] mov w0, 141 - str w0, [x19,2052] - ldrsb w0, [x5,1] - str w0, [x19,2048] - str wzr, [x19,2048] - str wzr, [x19,2048] - str wzr, [x19,2048] + str w0, [x27, 2052] + ldr x0, [x29, 96] + add w19, w28, 1 + add x0, x0, x28 + ldrsb w0, [x0, 1] + str w0, [x27, 2048] + str wzr, [x27, 2048] + str wzr, [x27, 2048] + str wzr, [x27, 2048] bl nandc_wait_flash_ready - ldr w4, [x29,140] - mov w0, w23 - mov w1, w22 - mov x2, x25 - mov x3, x26 - bl flash_read_page - mov w28, w0 - adrp x0, .LANCHOR2 - ldr x5, [x29,96] - ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 4, .L2026 - ldr x0, [x29,104] - mov w1, w20 - mov w2, w22 - mov w3, w28 - bl printk - ldr x5, [x29,96] -.L2026: - cmn w28, #1 - beq .L2027 - adrp x0, .LANCHOR5 - cmn w27, #1 - add x0, x0, :lo12:.LANCHOR5 - csel w27, w27, w28, ne - ldr x25, [x0,296] - ldr x26, [x0,312] - add x0, x21, :lo12:.LANCHOR0 - ldrb w0, [x0,1244] - add w0, w0, w0, lsl 1 - cmp w28, w0, lsr 2 - bcc .L2040 -.L2027: - ldr x0, [x29,120] - add x5, x5, 1 - cmp x5, x0 - bne .L2030 - mov w20, 26 - b .L2029 -.L2040: - mov w27, w28 -.L2029: - ldr x0, [x29,128] - add x19, x24, x0 - mov w0, 239 - str w0, [x19,2056] - mov w0, 141 - b .L2062 -.L2025: - lsl x0, x19, 8 - str x0, [x29,128] - add x19, x24, x0 - adrp x0, .LC158 - add x0, x0, :lo12:.LC158 - add x28, x5, 168 - mov w27, -1 - mov w20, 1 - str x0, [x29,120] -.L2036: - mov w0, 239 - str w0, [x19,2056] - mov w0, 137 - str w0, [x19,2052] - ldrb w0, [x28,4] - str w0, [x19,2048] - ldrb w0, [x28,5] - str w0, [x19,2048] - ldrb w0, [x28,6] - str w0, [x19,2048] - ldrb w0, [x28,7] - str w0, [x19,2048] - bl nandc_wait_flash_ready - ldr w4, [x29,140] - mov w0, w23 - mov w1, w22 - mov x2, x25 - mov x3, x26 + ldr w4, [x29, 108] + mov x3, x24 + mov x2, x23 + mov w1, w21 + mov w0, w22 bl flash_read_page mov w4, w0 adrp x0, .LANCHOR2 - ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 4, .L2032 - ldr x0, [x29,120] + ldr w0, [x0, #:lo12:.LANCHOR2] + tbz x0, 4, .L2061 mov w3, w4 - mov w1, w20 - mov w2, w22 - str x4, [x29,112] + str w4, [x29, 104] + mov w2, w21 + mov w1, w19 + mov x0, x25 bl printk - ldr x4, [x29,112] -.L2032: + ldr w4, [x29, 104] +.L2061: cmn w4, #1 - beq .L2033 + beq .L2062 adrp x0, .LANCHOR5 - cmn w27, #1 add x0, x0, :lo12:.LANCHOR5 - csel w27, w27, w4, ne - ldr x25, [x0,296] - ldr x26, [x0,312] - add x0, x21, :lo12:.LANCHOR0 - ldrb w0, [x0,1244] + cmn w26, #1 + csel w26, w26, w4, ne + ldr x23, [x0, 304] + ldr x24, [x0, 320] + add x0, x20, :lo12:.LANCHOR0 + ldrb w0, [x0, 1249] add w0, w0, w0, lsl 1 cmp w4, w0, lsr 2 - bcc .L2041 -.L2033: - add w20, w20, 1 - add x28, x28, 4 - cmp w20, 26 - bne .L2036 - b .L2035 -.L2041: - mov w27, w4 -.L2035: - ldr x0, [x29,128] - add x19, x24, x0 - mov w0, 239 - str w0, [x19,2056] - mov w0, 137 + bcc .L2074 .L2062: - str w0, [x19,2052] - add x21, x21, :lo12:.LANCHOR0 - str wzr, [x19,2048] - str wzr, [x19,2048] - str wzr, [x19,2048] - str wzr, [x19,2048] + add x28, x28, 1 + cmp x28, 25 + bne .L2065 + mov w19, 26 +.L2064: + mov w0, 239 + str w0, [x27, 2056] + mov w0, 141 + str w0, [x27, 2052] + str wzr, [x27, 2048] + str wzr, [x27, 2048] + str wzr, [x27, 2048] + str wzr, [x27, 2048] +.L2096: + add x20, x20, :lo12:.LANCHOR0 bl nandc_wait_flash_ready - ldrb w0, [x21,1244] + ldrb w0, [x20, 1249] add w0, w0, w0, lsl 1 - cmp w27, w0, lsr 2 - bcc .L2037 - cmn w27, #1 + cmp w26, w0, lsr 2 + bcc .L2072 + cmn w26, #1 mov w0, 256 - csel w27, w27, w0, eq -.L2037: - cmn w27, #1 - beq .L2042 - cmp w27, 256 - bne .L2038 -.L2042: + csel w26, w26, w0, eq +.L2072: + cmp w26, 256 + ccmn w26, #1, 4, ne + bne .L2073 adrp x0, .LC159 - mov w1, w20 + mov w4, w26 + mov w3, w19 + mov w2, w21 + mov w1, w19 add x0, x0, :lo12:.LC159 - mov w2, w22 - mov w3, w20 - mov w4, w27 bl printk -.L2038: +.L2073: bl nandc_wait_flash_ready - mov w0, w27 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 144 + 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 +.L2074: + mov w26, w4 + b .L2064 +.L2060: + add x7, x7, :lo12:.LANCHOR4 + adrp x25, .LC158 + add x27, x7, 188 + add x28, x0, x5, lsl 8 + add x25, x25, :lo12:.LC158 + mov w26, -1 + mov w19, 1 +.L2071: + mov w0, 239 + str w0, [x28, 2056] + mov w0, 137 + str w0, [x28, 2052] + ldrb w0, [x27] + str w0, [x28, 2048] + ldrb w0, [x27, 1] + str w0, [x28, 2048] + ldrb w0, [x27, 2] + str w0, [x28, 2048] + ldrb w0, [x27, 3] + str w0, [x28, 2048] + bl nandc_wait_flash_ready + ldr w4, [x29, 108] + mov x3, x24 + mov x2, x23 + mov w1, w21 + mov w0, w22 + bl flash_read_page + mov w4, w0 + adrp x0, .LANCHOR2 + ldr w0, [x0, #:lo12:.LANCHOR2] + tbz x0, 4, .L2067 + mov w3, w4 + str w4, [x29, 96] + mov w2, w21 + mov w1, w19 + mov x0, x25 + bl printk + ldr w4, [x29, 96] +.L2067: + cmn w4, #1 + beq .L2068 + adrp x0, .LANCHOR5 + add x0, x0, :lo12:.LANCHOR5 + cmn w26, #1 + csel w26, w26, w4, ne + ldr x23, [x0, 304] + ldr x24, [x0, 320] + add x0, x20, :lo12:.LANCHOR0 + ldrb w0, [x0, 1249] + add w0, w0, w0, lsl 1 + cmp w4, w0, lsr 2 + bcc .L2075 +.L2068: + add w19, w19, 1 + add x27, x27, 4 + cmp w19, 26 + bne .L2071 +.L2070: + mov w0, 239 + str w0, [x28, 2056] + mov w0, 137 + str w0, [x28, 2052] + str wzr, [x28, 2048] + str wzr, [x28, 2048] + str wzr, [x28, 2048] + str wzr, [x28, 2048] + b .L2096 +.L2075: + mov w26, w4 + b .L2070 .size samsung_read_retrial, .-samsung_read_retrial .align 2 .global hynix_read_retrial .type hynix_read_retrial, %function hynix_read_retrial: stp x29, x30, [sp, -128]! + adrp x5, .LANCHOR0 + add x8, x5, :lo12:.LANCHOR0 add x29, sp, 0 - stp x27, x28, [sp,80] - adrp x28, .LANCHOR0 - stp x21, x22, [sp,32] - uxtb x22, w0 - add x0, x28, :lo12:.LANCHOR0 - stp x25, x26, [sp,64] - stp x19, x20, [sp,16] - stp x23, x24, [sp,48] + stp x21, x22, [sp, 32] + mov w22, w1 + stp x25, x26, [sp, 64] mov x25, x2 - mov w23, w1 - ldr x5, [x0,1128] + stp x19, x20, [sp, 16] mov x26, x3 - str w4, [x29,124] - mov x21, x22 - add x27, x5, 112 + stp x23, x24, [sp, 48] + and x23, x0, 255 + stp x27, x28, [sp, 80] + mov w27, w4 + stp x5, x8, [x29, 112] + mov x21, x23 + ldr x28, [x8, 1048] mov w19, -1 - add x0, x27, x22 - ldrb w24, [x27,2] - ldrb w20, [x0,8] + add x28, x28, 112 + add x0, x28, x23 + ldrb w24, [x28, 2] + ldrb w20, [x0, 8] bl nandc_wait_flash_ready - mov w0, w22 + mov w0, w23 bl zftl_flash_enter_slc_mode - mov w0, w22 + mov w0, w23 bl zftl_flash_exit_slc_mode - mov w6, 0 + ldp x5, x8, [x29, 112] adrp x7, .LANCHOR5 -.L2064: + add x7, x7, :lo12:.LANCHOR5 + mov w6, 0 +.L2098: cmp w6, w24 - bcs .L2068 - add w20, w20, 1 - mov w0, w21 - str x7, [x29,104] - uxtb w20, w20 - str x6, [x29,112] - cmp w20, w24 - csel w20, w20, wzr, cc - mov w1, w20 - bl hynix_set_rr_para - ldr w4, [x29,124] - mov w0, w21 - mov w1, w23 - mov x2, x25 - mov x3, x26 - bl flash_read_page - cmn w0, #1 - ldr x6, [x29,112] - ldr x7, [x29,104] - beq .L2066 - add x1, x7, :lo12:.LANCHOR5 - cmn w19, #1 - csel w19, w19, w0, ne - ldr x25, [x1,296] - ldr x26, [x1,312] - add x1, x28, :lo12:.LANCHOR0 - ldrb w1, [x1,1244] - add w1, w1, w1, lsl 1 - cmp w0, w1, lsr 2 - bcc .L2073 -.L2066: - add w6, w6, 1 - b .L2064 -.L2073: - mov w19, w0 -.L2068: - add x28, x28, :lo12:.LANCHOR0 - add x22, x27, x22 - ldrb w0, [x28,1244] - strb w20, [x22,8] + bcc .L2103 +.L2102: + add x1, x5, :lo12:.LANCHOR0 + add x23, x28, x23 + ldrb w0, [x1, 1249] + strb w20, [x23, 8] add w0, w0, w0, lsl 1 cmp w19, w0, lsr 2 - bcc .L2070 + bcc .L2104 cmn w19, #1 mov w0, 256 csel w19, w19, w0, eq -.L2070: - cmn w19, #1 - beq .L2074 +.L2104: cmp w19, 256 - bne .L2071 -.L2074: + ccmn w19, #1, 4, ne + bne .L2105 adrp x0, .LC160 + mov w4, w19 + mov w3, w6 + mov w2, w22 mov w1, w6 add x0, x0, :lo12:.LC160 - mov w2, w23 - mov w3, w6 - mov w4, w19 bl printk -.L2071: +.L2105: bl nandc_wait_flash_ready mov w0, w19 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] + ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 128 ret +.L2103: + add w20, w20, 1 + stp x8, x7, [x29, 96] + and w20, w20, 255 + str x5, [x29, 112] + cmp w24, w20 + str w6, [x29, 120] + csel w20, w20, wzr, hi + mov w0, w21 + mov w1, w20 + bl hynix_set_rr_para + mov w4, w27 + mov x3, x26 + mov x2, x25 + mov w1, w22 + mov w0, w21 + bl flash_read_page + ldr w6, [x29, 120] + cmn w0, #1 + ldp x8, x7, [x29, 96] + ldr x5, [x29, 112] + beq .L2100 + ldrb w1, [x8, 1249] + cmn w19, #1 + csel w19, w19, w0, ne + ldr x25, [x7, 304] + ldr x26, [x7, 320] + add w1, w1, w1, lsl 1 + cmp w0, w1, lsr 2 + bcc .L2106 +.L2100: + add w6, w6, 1 + b .L2098 +.L2106: + mov w19, w0 + b .L2102 .size hynix_read_retrial, .-hynix_read_retrial .align 2 .global flash_ddr_tuning_read @@ -12900,119 +12836,98 @@ hynix_read_retrial: flash_ddr_tuning_read: stp x29, x30, [sp, -128]! 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] - uxtb w20, w0 + stp x19, x20, [sp, 16] + and w20, w0, 255 + stp x21, x22, [sp, 32] mov w22, w1 + stp x23, x24, [sp, 48] mov x24, x2 - mov x23, x3 - str w4, [x29,120] + stp x25, x26, [sp, 64] + adrp x23, .LANCHOR5 + stp x27, x28, [sp, 80] + mov x25, x3 + str w4, [x29, 120] + add x23, x23, :lo12:.LANCHOR5 bl nandc_get_ddr_para - mov w27, 0 - str w0, [x29,116] + mov w28, 0 + str w0, [x29, 116] + mov w26, 0 adrp x0, .LC161 - str w27, [x29,124] + mov w27, 0 add x0, x0, :lo12:.LC161 - mov w25, w27 - mov w28, w27 mov w19, 1024 - mov w26, 6 mov w21, -1 - str x0, [x29,104] -.L2089: - mov w0, w26 + mov w7, 6 + str wzr, [x29, 124] + str x0, [x29, 104] +.L2122: + mov w0, w7 + str w7, [x29, 112] bl nandc_set_ddr_para - ldr w4, [x29,120] - mov w0, w20 - mov w1, w22 + ldr w4, [x29, 120] + mov x3, x25 mov x2, x24 - mov x3, x23 + mov w1, w22 + mov w0, w20 bl flash_read_page mov w4, w0 adrp x0, .LANCHOR2 - ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 4, .L2084 - ldr x0, [x29,104] + ldr w7, [x29, 112] + ldr w0, [x0, #:lo12:.LANCHOR2] + tbz x0, 4, .L2117 + ldr x0, [x29, 104] mov w3, w4 - mov w1, w26 + mov w1, w7 + str w4, [x29, 100] + str w7, [x29, 112] mov w2, w22 - str x4, [x29,96] bl printk - ldr x4, [x29,96] -.L2084: + ldr w4, [x29, 100] + ldr w7, [x29, 112] +.L2117: add w0, w19, 1 cmp w4, w0 - bhi .L2085 - adrp x0, .LANCHOR5 - add x0, x0, :lo12:.LANCHOR5 - ldr x24, [x0,296] - ldr x23, [x0,312] - adrp x0, .LANCHOR0 - add x0, x0, :lo12:.LANCHOR0 - ldrb w0, [x0,1244] + bhi .L2118 + adrp x0, .LANCHOR0+1249 + ldr x24, [x23, 304] + ldr x25, [x23, 320] + ldrb w0, [x0, #:lo12:.LANCHOR0+1249] cmp w4, w0, lsr 2 - bcs .L2095 - add w28, w28, 1 - cmp w28, 7 - bls .L2095 - sub w27, w26, w28 + bcs .L2128 + add w27, w27, 1 + cmp w27, 7 + bls .L2128 + sub w28, w7, w27 mov w19, w4 mov w21, 0 - b .L2087 -.L2085: - cmp w25, w28 - bcs .L2096 - sub w0, w27, w28 - cmp w28, 7 - str w0, [x29,124] - bhi .L2088 - mov w25, w28 - b .L2096 -.L2095: - mov w27, w26 - mov w19, w4 - mov w21, 0 - b .L2086 -.L2096: - mov w28, 0 -.L2086: - add w26, w26, 2 - cmp w26, 50 - bne .L2089 -.L2087: - ldr w0, [x29,124] - cmp w25, w28 - csel w27, w27, w0, ls -.L2088: - cbz w27, .L2090 - adrp x0, .LANCHOR0+1244 +.L2120: + ldr w0, [x29, 124] + cmp w27, w26 + csel w28, w28, w0, cs +.L2121: + cbz w28, .L2123 + adrp x0, .LANCHOR0+1249 mov w1, 3 - ldrb w0, [x0,#:lo12:.LANCHOR0+1244] + ldrb w0, [x0, #:lo12:.LANCHOR0+1249] udiv w0, w0, w1 - cmp w19, w0 - bcs .L2090 + cmp w0, w19 + bls .L2123 + mov w1, w28 adrp x0, .LC162 - mov w1, w27 add x0, x0, :lo12:.LC162 bl printk - mov w0, w27 - b .L2108 -.L2090: - ldrb w0, [x29,116] -.L2108: + mov w0, w28 +.L2142: bl nandc_set_ddr_para - cbz w21, .L2092 + cbz w21, .L2116 adrp x0, .LANCHOR0 add x27, x0, :lo12:.LANCHOR0 - mov x26, x0 - ldrb w1, [x27,1304] - tbz x1, 0, .L2092 - adrp x0, .LC163 + mov x23, x0 + ldrb w1, [x27, 1248] + tbz x1, 0, .L2116 mov w2, w22 mov w1, w20 + adrp x0, .LC163 add x0, x0, :lo12:.LC163 bl printk mov w0, w20 @@ -13023,51 +12938,74 @@ flash_ddr_tuning_read: bl nandc_set_if_mode add x0, x27, w20, sxtw mov w1, 2 - strb w1, [x0,1264] + strb w1, [x0, 1208] mov w0, w20 bl zftl_flash_enter_slc_mode - ldr w4, [x29,120] - mov w1, w22 + ldr w4, [x29, 120] + mov x3, x25 mov x2, x24 - mov x3, x23 + mov w1, w22 mov w0, w20 bl flash_read_page mov w19, w0 - adrp x0, .LC164 - mov w1, w20 - add x0, x0, :lo12:.LC164 + mov w3, w0 mov w2, w22 - mov w3, w19 + mov w1, w20 + adrp x0, .LC164 + add x0, x0, :lo12:.LC164 bl printk - ldrb w0, [x27,1244] + ldrb w0, [x27, 1249] cmp w19, w0 - bhi .L2097 + bhi .L2130 adrp x1, .LANCHOR5 add x1, x1, :lo12:.LANCHOR5 - ldr w0, [x1,324] + ldr w0, [x1, 332] add w0, w0, 1 - str w0, [x1,324] + str w0, [x1, 332] cmp w0, 100 - bls .L2093 - strb wzr, [x27,1192] - b .L2092 -.L2097: - mov w19, w21 -.L2093: - add x20, x26, :lo12:.LANCHOR0 - ldrb w0, [x20,1304] - bl flash_set_interface_mode - ldrb w0, [x20,1304] - bl nandc_set_if_mode -.L2092: + bls .L2126 + strb wzr, [x27, 1192] +.L2116: 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 x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] + ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 128 ret +.L2118: + cmp w27, w26 + bls .L2129 + sub w0, w28, w27 + str w0, [x29, 124] + cmp w27, 7 + bhi .L2121 + mov w26, w27 +.L2129: + mov w27, 0 + b .L2119 +.L2128: + mov w28, w7 + mov w19, w4 + mov w21, 0 +.L2119: + add w7, w7, 2 + cmp w7, 50 + bne .L2122 + b .L2120 +.L2123: + ldrb w0, [x29, 116] + b .L2142 +.L2130: + mov w19, w21 +.L2126: + add x23, x23, :lo12:.LANCHOR0 + ldrb w0, [x23, 1248] + bl flash_set_interface_mode + ldrb w0, [x23, 1248] + bl nandc_set_if_mode + b .L2116 .size flash_ddr_tuning_read, .-flash_ddr_tuning_read .align 2 .global flash_read_page_en @@ -13075,131 +13013,132 @@ flash_ddr_tuning_read: flash_read_page_en: stp x29, x30, [sp, -80]! add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] adrp x20, .LANCHOR0 - mov w19, w1 - stp x25, x26, [sp,64] - uxtb w25, w0 + stp x25, x26, [sp, 64] + and w25, w0, 255 add x0, x20, :lo12:.LANCHOR0 - stp x23, x24, [sp,48] - stp x21, x22, [sp,32] - mov x24, x2 + stp x23, x24, [sp, 48] + stp x21, x22, [sp, 32] + mov w19, w1 + mov x22, x2 mov x23, x3 - ldrb w0, [x0,1153] - mov w22, w4 + ldrb w0, [x0, 1153] + mov w24, w4 cmp w0, w25 - bhi .L2110 + bhi .L2144 adrp x1, .LANCHOR4 - adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 + add x1, x1, 288 mov w2, 431 - add x1, x1, 272 + adrp x0, .LC0 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L2110: +.L2144: add x0, x20, :lo12:.LANCHOR0 add x1, x0, w25, sxtw - ldrb w21, [x1,1248] - ldrb w4, [x0,1153] + ldrb w4, [x0, 1153] + ldrb w21, [x1, 1196] cmp w25, w4 - bcc .L2111 + bcc .L2145 adrp x0, .LANCHOR2 - ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 6, .L2137 - adrp x0, .LC165 - mov w1, w21 - add x0, x0, :lo12:.LC165 - mov w2, w25 - mov w3, w19 - bl printk -.L2137: + ldr w0, [x0, #:lo12:.LANCHOR2] + tbnz x0, 6, .L2146 +.L2170: mov w0, -1 - b .L2136 -.L2111: - ubfx x1, x19, 24, 2 - cbnz w1, .L2114 - adrp x1, .LANCHOR0 - ldrb w1, [x1,#:lo12:.LANCHOR0] - cbz w1, .L2115 - ldrb w0, [x0,1] - cbz w0, .L2114 -.L2115: - 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, .L2116 - add w19, w0, w19, lsl 1 - b .L2114 -.L2116: - add x1, x1, 4 - ldrh w19, [x1,w19,uxtw 1] - add w19, w19, w0 -.L2114: - mov w0, w21 - mov w1, w19 - mov x2, x24 - mov x3, x23 - mov w4, w22 - bl flash_read_page - cmn w0, #1 - bne .L2136 - add x25, x20, :lo12:.LANCHOR0 - ldrb w26, [x25,1240] - cbnz w26, .L2118 -.L2121: - adrp x0, .LANCHOR5+328 - ldr x5, [x0,#:lo12:.LANCHOR5+328] - cbnz x5, .L2119 - b .L2120 -.L2118: - mov w0, w21 - mov w1, w19 - mov x2, x24 - mov x3, x23 - mov w4, w22 - strb wzr, [x25,1240] - bl flash_read_page - strb w26, [x25,1240] - cmn w0, #1 - beq .L2121 - b .L2136 -.L2119: - mov w0, w21 - mov w1, w19 - mov x2, x24 - mov x3, x23 - mov w4, w22 - blr x5 - cmn w0, #1 - bne .L2136 -.L2120: - add x20, x20, :lo12:.LANCHOR0 - adrp x0, .LC166 - add x0, x0, :lo12:.LC166 - mov w1, 0 - mov w2, w19 - mov w3, -1 - ldrb w4, [x20,1240] - bl printk - ldrb w0, [x20,1192] - cbz w0, .L2137 - mov w0, w21 - mov w1, w19 - mov x2, x24 - mov x3, x23 - mov w4, w22 - bl flash_ddr_tuning_read -.L2136: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] +.L2143: + 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 +.L2146: + mov w3, w19 + mov w2, w25 + mov w1, w21 + adrp x0, .LC165 + add x0, x0, :lo12:.LC165 + bl printk + b .L2170 +.L2145: + tst x19, 50331648 + bne .L2148 + ldrb w1, [x20, #:lo12:.LANCHOR0] + cbz w1, .L2149 + ldrb w0, [x0, 1] + cbz w0, .L2148 +.L2149: + 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, .L2150 + add w19, w0, w19, lsl 1 +.L2148: + mov w4, w24 + mov x3, x23 + mov x2, x22 + mov w1, w19 + mov w0, w21 + bl flash_read_page + cmn w0, #1 + bne .L2143 + add x25, x20, :lo12:.LANCHOR0 + ldrb w26, [x25, 1252] + cbnz w26, .L2151 +.L2154: + adrp x0, .LANCHOR5+336 + ldr x5, [x0, #:lo12:.LANCHOR5+336] + cbnz x5, .L2152 +.L2153: + add x20, x20, :lo12:.LANCHOR0 + mov w3, -1 + mov w2, w19 + mov w1, 0 + adrp x0, .LC166 + add x0, x0, :lo12:.LC166 + ldrb w4, [x20, 1252] + bl printk + ldrb w0, [x20, 1192] + cbz w0, .L2170 + mov w4, w24 + mov x3, x23 + mov x2, x22 + mov w1, w19 + mov w0, w21 + bl flash_ddr_tuning_read + b .L2143 +.L2150: + add x1, x1, 4 + ldrh w19, [x1, w19, uxtw 1] + add w19, w19, w0 + b .L2148 +.L2151: + strb wzr, [x25, 1252] + mov w4, w24 + mov x3, x23 + mov x2, x22 + mov w1, w19 + mov w0, w21 + bl flash_read_page + strb w26, [x25, 1252] + cmn w0, #1 + beq .L2154 + b .L2143 +.L2152: + mov w4, w24 + mov x3, x23 + mov x2, x22 + mov w1, w19 + mov w0, w21 + blr x5 + cmn w0, #1 + bne .L2143 + b .L2153 .size flash_read_page_en, .-flash_read_page_en .align 2 .global flash_get_last_written_page @@ -13207,97 +13146,95 @@ flash_read_page_en: flash_get_last_written_page: stp x29, x30, [sp, -112]! add x29, sp, 0 - stp x23, x24, [sp,48] - uxtb w23, w0 - adrp x0, .LANCHOR5+180 - stp x19, x20, [sp,16] - adrp x20, .LANCHOR2 - mov x24, x2 - ldrh w19, [x0,#:lo12:.LANCHOR5+180] - add x0, x20, :lo12:.LANCHOR2 - stp x21, x22, [sp,32] - stp x25, x26, [sp,64] - stp x27, x28, [sp,80] - uxth w22, w1 + stp x23, x24, [sp, 48] + and w23, w0, 255 + adrp x0, .LANCHOR5+172 + stp x19, x20, [sp, 16] + stp x27, x28, [sp, 80] + adrp x27, .LANCHOR2 + ldrh w19, [x0, #:lo12:.LANCHOR5+172] + add x0, x27, :lo12:.LANCHOR2 + stp x21, x22, [sp, 32] + and w21, w1, 65535 + stp x25, x26, [sp, 64] sub w19, w19, #1 - ldrh w26, [x0,34] - mov w0, w23 sxth w19, w19 - mov x21, x3 + mov x24, x2 + ldrh w26, [x0, 34] + mov x22, x3 mov w25, w4 - mov x27, x20 - mul w26, w22, w26 - add w1, w26, w19 + mov w0, w23 + mul w26, w26, w21 + add w1, w19, w26 bl flash_read_page_en cmp w0, 512 - bne .L2139 + bne .L2172 mov w28, 0 mov w5, 2 -.L2140: +.L2173: cmp w28, w19 - bgt .L2139 - add w0, w28, w19 - mov x2, x24 - mov x3, x21 - mov w4, w25 - sdiv w20, w0, w5 - mov w0, w23 - str x5, [x29,104] - add w1, w26, w20, sxth - bl flash_read_page_en - cmp w0, 512 - ldr x5, [x29,104] - bne .L2141 - sub w19, w20, #1 - sxth w19, w19 - b .L2140 -.L2141: - add w20, w20, 1 - sxth w28, w20 - b .L2140 -.L2139: - ldr w0, [x27,#:lo12:.LANCHOR2] - tbz x0, 12, .L2144 + ble .L2176 +.L2172: + ldr w0, [x27, #:lo12:.LANCHOR2] + tbz x0, 12, .L2177 + ldr w3, [x22] adrp x0, .LC167 - ldr w3, [x21] - add x0, x0, :lo12:.LC167 - mov w1, w22 mov w2, w19 + mov w1, w21 + add x0, x0, :lo12:.LC167 bl printk -.L2144: +.L2177: 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 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 +.L2176: + add w20, w28, w19 + str w5, [x29, 108] + mov w4, w25 + mov x3, x22 + mov x2, x24 + mov w0, w23 + sdiv w20, w20, w5 + add w1, w26, w20, sxth + bl flash_read_page_en + ldr w5, [x29, 108] + cmp w0, 512 + bne .L2174 + sub w19, w20, #1 + sxth w19, w19 + b .L2173 +.L2174: + add w20, w20, 1 + sxth w28, w20 + b .L2173 .size flash_get_last_written_page, .-flash_get_last_written_page .align 2 .global flash_get_last_written_page_ext .type flash_get_last_written_page_ext, %function flash_get_last_written_page_ext: - uxth w6, w0 - adrp x0, .LANCHOR0+1257 stp x29, x30, [sp, -16]! + adrp x4, .LANCHOR0+1205 mov w5, 24 - mov x8, x1 + mov w6, 1 add x29, sp, 0 - ldrb w0, [x0,#:lo12:.LANCHOR0+1257] - mov x7, x2 + ldrb w4, [x4, #:lo12:.LANCHOR0+1205] + and w0, w0, 65535 + sub w5, w5, w4 + adrp x4, .LANCHOR3+1304 + ldrh w4, [x4, #:lo12:.LANCHOR3+1304] + sub w5, w5, w4 mov w4, w3 - mov x2, x8 - sub w5, w5, w0 - adrp x0, .LANCHOR3+1312 - mov x3, x7 - ldrh w0, [x0,#:lo12:.LANCHOR3+1312] - sub w0, w5, w0 - mov w5, 1 - lsl w5, w5, w0 - asr w0, w6, w0 - sub w1, w5, #1 - and w1, w6, w1 + mov x3, x2 + mov x2, x1 + lsl w6, w6, w5 + sub w6, w6, #1 + and w1, w6, w0 + asr w0, w0, w5 bl flash_get_last_written_page ldp x29, x30, [sp], 16 ret @@ -13308,147 +13245,144 @@ flash_get_last_written_page_ext: flash_ddr_para_scan: stp x29, x30, [sp, -64]! add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] adrp x19, .LANCHOR0 - adrp x20, .LANCHOR5 - stp x21, x22, [sp,32] + stp x21, x22, [sp, 32] add x21, x19, :lo12:.LANCHOR0 + stp x23, x24, [sp, 48] + and w23, w0, 255 + mov w24, w1 mov w22, 1 - stp x23, x24, [sp,48] - uxtb w24, w0 - mov w23, w1 - ldrb w0, [x21,1304] + ldrb w0, [x21, 1248] + adrp x20, .LANCHOR5 + strb w22, [x21, 1192] add x20, x20, :lo12:.LANCHOR5 - strb w22, [x21,1192] bl flash_set_interface_mode - ldrb w0, [x21,1304] + ldrb w0, [x21, 1248] bl nandc_set_if_mode - ldr x2, [x20,336] - mov w1, w23 - ldr x3, [x20,344] + ldp x3, x2, [x20, 344] mov w4, 4 - mov w0, w24 + mov w1, w24 + mov w0, w23 bl flash_ddr_tuning_read - ldr x2, [x20,336] - mov w0, w24 - ldr x3, [x20,344] - mov w1, w23 + ldp x3, x2, [x20, 344] mov w4, 4 + mov w1, w24 + mov w0, w23 bl flash_read_page cmn w0, #1 - bne .L2150 - ldrb w0, [x21,1304] - tbz x0, 0, .L2150 + bne .L2185 + ldrb w0, [x21, 1248] + tbz x0, 0, .L2185 mov w0, 1 bl flash_set_interface_mode mov w0, w22 bl nandc_set_if_mode - strb wzr, [x21,1192] - b .L2151 -.L2150: - add x19, x19, :lo12:.LANCHOR0 - mov w0, 1 - strb w0, [x19,1192] -.L2151: + strb wzr, [x21, 1192] +.L2186: mov w0, 0 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] ldp x29, x30, [sp], 64 ret +.L2185: + add x19, x19, :lo12:.LANCHOR0 + mov w0, 1 + strb w0, [x19, 1192] + b .L2186 .size flash_ddr_para_scan, .-flash_ddr_para_scan .align 2 .global flash_prog_page .type flash_prog_page, %function flash_prog_page: - stp x29, x30, [sp, -80]! - mov w5, 1 + stp x29, x30, [sp, -96]! add x29, sp, 0 - stp x25, x26, [sp,64] - adrp x26, .LANCHOR0 - mov x25, x2 - stp x21, x22, [sp,32] - uxtb x22, w0 - add x0, x26, :lo12:.LANCHOR0 - stp x23, x24, [sp,48] - stp x19, x20, [sp,16] - mov w23, w1 - mov w1, 24 - ldrb w19, [x0,1257] - mov x21, x22 - mov x24, x3 - ldr x20, [x0,1048] - sub w19, w1, w19 - add x22, x22, 8 - lsl w19, w5, w19 + stp x21, x22, [sp, 32] + and w21, w0, 255 + str x27, [sp, 80] + adrp x27, .LANCHOR0 + add x0, x27, :lo12:.LANCHOR0 + stp x19, x20, [sp, 16] + stp x23, x24, [sp, 48] + mov w22, w1 + stp x25, x26, [sp, 64] + mov w20, 24 + mov x24, x2 + mov x25, x3 + ldrb w1, [x0, 1205] + and x19, x21, 255 + ldr x26, [x0, 1056] + add x23, x19, 8 + sub w1, w20, w1 + mov w20, 1 + lsl w20, w20, w1 + sub w20, w20, #1 bl nandc_wait_flash_ready + and w20, w20, w22 mov w0, w21 - sub w19, w19, #1 - add x22, x20, x22, lsl 8 - and w19, w19, w23 bl hynix_reconfig_rr_para mov w0, w21 bl nandc_cs - ubfx x0, x23, 24, 2 - cbnz w0, .L2156 + add x23, x26, x23, lsl 8 mov w0, w21 + tst x22, 50331648 + bne .L2192 bl zftl_flash_enter_slc_mode - b .L2157 -.L2156: - mov w0, w21 - bl zftl_flash_exit_slc_mode -.L2157: - ubfiz x0, x21, 8, 8 - add x20, x20, x0 +.L2193: + add x19, x26, x19, lsl 8 mov w0, 128 - str w0, [x20,2056] - and w0, w19, 255 - str wzr, [x20,2052] - str wzr, [x20,2052] - str w0, [x20,2052] - lsr w0, w19, 8 - str w0, [x20,2052] - lsr w0, w19, 16 - str w0, [x20,2052] - add x0, x26, :lo12:.LANCHOR0 - ldrb w0, [x0,1256] - cbz w0, .L2158 - lsr w0, w19, 24 - str w0, [x20,2052] -.L2158: - mov w0, w19 + 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] + add x0, x27, :lo12:.LANCHOR0 + ldrb w0, [x0, 1204] + cbz w0, .L2194 + lsr w0, w20, 24 + str w0, [x19, 2052] +.L2194: + mov w0, w20 bl nandc_set_seed - adrp x2, .LANCHOR2+17 + adrp x0, .LANCHOR2+17 + mov x4, x25 + mov x3, x24 mov w1, 1 - mov x3, x25 - mov x4, x24 + ldrb w2, [x0, #:lo12:.LANCHOR2+17] mov w0, w21 - ldrb w2, [x2,#:lo12:.LANCHOR2+17] bl nandc_xfer mov w0, 16 - str w0, [x20,2056] + str w0, [x19, 2056] bl nandc_iqr_wait_flash_ready bl nandc_wait_flash_ready - mov x0, x22 + mov x0, x23 bl flash_read_status - mov w19, w0 - mov w0, w21 - bl nandc_de_cs - and w2, w19, 4 - tbz x19, 2, .L2159 + mov w3, w0 + bl nandc_de_cs.constprop.35 + and w2, w3, 4 + tbz x3, 2, .L2191 + mov w1, w22 adrp x0, .LC168 - mov w1, w23 add x0, x0, :lo12:.LC168 bl printk mov w2, -1 -.L2159: +.L2191: mov w0, w2 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x29, x30, [sp], 80 + ldr x27, [sp, 80] + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] + ldp x29, x30, [sp], 96 ret +.L2192: + bl zftl_flash_exit_slc_mode + b .L2193 .size flash_prog_page, .-flash_prog_page .align 2 .global flash_test_blk @@ -13457,132 +13391,123 @@ flash_test_blk: stp x29, x30, [sp, -48]! mov w2, 32 add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] adrp x19, .LANCHOR5 - uxth w20, w1 add x19, x19, :lo12:.LANCHOR5 + stp x21, x22, [sp, 32] + and w22, w0, 255 + and w20, w1, 65535 mov w1, 165 - stp x21, x22, [sp,32] - uxtb w22, w0 - ldr x0, [x19,296] + ldr x0, [x19, 304] bl ftl_memset - ldr x0, [x19,312] - mov w1, 90 + ldr x0, [x19, 320] mov w2, 8 + mov w1, 90 bl ftl_memset adrp x0, .LANCHOR0+2 - ldrh w0, [x0,#:lo12:.LANCHOR0+2] - mul w20, w20, w0 + ldrh w0, [x0, #:lo12:.LANCHOR0+2] + mul w20, w0, w20 mov w0, w22 mov w1, w20 bl flash_erase_block cmn w0, #1 - bne .L2167 -.L2169: + bne .L2204 +.L2206: mov w19, -1 - b .L2168 -.L2167: - adrp x21, .LANCHOR2 - ldr x2, [x19,296] - add x21, x21, :lo12:.LANCHOR2 - ldr x3, [x19,312] - mov w0, w22 - mov w1, w20 - add x21, x21, 8 - ldrb w4, [x21,9] - bl flash_prog_page - cmn w0, #1 - beq .L2169 - ldr x2, [x19,296] - mov w0, w22 - ldr x3, [x19,312] - mov w1, w20 - ldrb w4, [x21,9] - bl flash_read_page_en - cmn w0, #1 - beq .L2169 - ldr x0, [x19,296] - ldr w1, [x0] - mov w0, 42405 - bfi w0, w0, 16, 16 - cmp w1, w0 - bne .L2169 - ldr x0, [x19,312] - ldr w1, [x0] - mov w0, 23130 - bfi w0, w0, 16, 16 - cmp w1, w0 - csetm w19, ne -.L2168: +.L2205: mov w1, w20 mov w0, w22 bl flash_erase_block mov w0, w19 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] ldp x29, x30, [sp], 48 ret +.L2204: + adrp x21, .LANCHOR2 + add x21, x21, :lo12:.LANCHOR2 + ldr x2, [x19, 304] + mov w1, w20 + ldr x3, [x19, 320] + mov w0, w22 + ldrb w4, [x21, 17] + add x21, x21, 8 + bl flash_prog_page + cmn w0, #1 + beq .L2206 + ldrb w4, [x21, 9] + mov w1, w20 + ldr x2, [x19, 304] + mov w0, w22 + ldr x3, [x19, 320] + bl flash_read_page_en + cmn w0, #1 + beq .L2206 + ldr x0, [x19, 304] + ldr w1, [x0] + mov w0, 42405 + movk w0, 0xa5a5, lsl 16 + cmp w1, w0 + bne .L2206 + ldr x0, [x19, 320] + ldr w1, [x0] + mov w0, 23130 + movk w0, 0x5a5a, lsl 16 + cmp w1, w0 + csetm w19, ne + b .L2205 .size flash_test_blk, .-flash_test_blk .align 2 .global flash_start_one_pass_page_prog .type flash_start_one_pass_page_prog, %function flash_start_one_pass_page_prog: - stp x29, x30, [sp, -80]! + stp x29, x30, [sp, -32]! + and w9, w0, 255 + and w8, w3, 255 + adrp x7, .LANCHOR0 add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x20, .LANCHOR0 - stp x25, x26, [sp,64] - uxtb w26, w0 - add x0, x20, :lo12:.LANCHOR0 - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - uxtb w25, w3 - uxtb w22, w2 - ldr x19, [x0,1048] - mov w0, w25 - mov w21, w4 - mov x24, x5 - mov x23, x6 + add x0, x7, :lo12:.LANCHOR0 + stp x19, x20, [sp, 16] + and w20, w2, 255 + ldr x19, [x0, 1056] + mov w0, w8 bl nandc_cs - cbz w26, .L2177 - sxtw x1, w25 - add x1, x1, 8 - add x1, x19, x1, lsl 8 - str w26, [x1,8] -.L2177: - ubfiz x1, x25, 8, 8 + cbz w9, .L2215 + sxtw x0, w8 + add x0, x0, 8 + add x0, x19, x0, lsl 8 + str w9, [x0, 8] +.L2215: + ubfiz x0, x8, 8, 8 + add x7, x7, :lo12:.LANCHOR0 + add x19, x19, x0 mov w0, 128 - add x19, x19, x1 - add x20, x20, :lo12:.LANCHOR0 - str w0, [x19,2056] - and w0, w21, 255 - str wzr, [x19,2052] - str wzr, [x19,2052] - str w0, [x19,2052] - lsr w0, w21, 8 - str w0, [x19,2052] - lsr w0, w21, 16 - str w0, [x19,2052] - ldrb w0, [x20,1256] - cbz w0, .L2178 - lsr w0, w21, 24 - str w0, [x19,2052] -.L2178: - mov w0, w21 + str w0, [x19, 2056] + and w0, w4, 255 + str wzr, [x19, 2052] + str wzr, [x19, 2052] + str w0, [x19, 2052] + lsr w0, w4, 8 + str w0, [x19, 2052] + lsr w0, w4, 16 + str w0, [x19, 2052] + ldrb w0, [x7, 1204] + cbz w0, .L2216 + lsr w0, w4, 24 + str w0, [x19, 2052] +.L2216: + mov w0, w4 bl nandc_set_seed - adrp x2, .LANCHOR2+17 - mov x3, x24 - mov x4, x23 - mov w0, w25 + adrp x0, .LANCHOR2+17 + mov x4, x6 + mov x3, x5 mov w1, 1 - ldrb w2, [x2,#:lo12:.LANCHOR2+17] + ldrb w2, [x0, #:lo12:.LANCHOR2+17] + mov w0, w8 bl nandc_xfer - str w22, [x19,2056] - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x29, x30, [sp], 80 + str w20, [x19, 2056] + ldp x19, x20, [sp, 16] + ldp x29, x30, [sp], 32 ret .size flash_start_one_pass_page_prog, .-flash_start_one_pass_page_prog .align 2 @@ -13591,328 +13516,325 @@ flash_start_one_pass_page_prog: flash_dual_page_prog: stp x29, x30, [sp, -96]! add x29, sp, 0 - stp x21, x22, [sp,32] - uxtb x21, w0 + stp x19, x20, [sp, 16] + and w20, w0, 255 adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 - mov w22, w1 - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] - stp x27, x28, [sp,80] - stp x19, x20, [sp,16] + stp x21, x22, [sp, 32] + ubfiz x22, x20, 8, 8 + stp x23, x24, [sp, 48] + mov w19, 24 + stp x25, x26, [sp, 64] + mov x25, x2 + stp x27, x28, [sp, 80] + add x2, x22, 2048 adrp x27, .LANCHOR2 - mov x26, x2 - ldrb w19, [x0,1257] - mov x20, x21 - ldr x2, [x0,1048] - mov w0, 24 - sub w19, w0, w19 - mov w0, 1 - lsl w19, w0, w19 - ldr w0, [x27,#:lo12:.LANCHOR2] - add x21, x21, 8 + mov w21, w1 + ldr x22, [x0, 1056] + mov x26, x3 + ldrb w0, [x0, 1205] + mov x23, x4 + mov x24, x5 + ubfx x28, x21, 24, 2 + sub w0, w19, w0 + mov w19, 1 + add x22, x22, x2 + lsl w19, w19, w0 + ldr w0, [x27, #:lo12:.LANCHOR2] sub w19, w19, #1 - mov x25, x3 - mov x24, x4 - mov x23, x5 - mov w3, w6 - add x21, x2, x21, lsl 8 - and w19, w1, w19 - ubfx x28, x22, 24, 2 - tbz x0, 4, .L2186 + and w19, w19, w1 + tbz x0, 4, .L2225 adrp x0, .LC169 + mov w3, w6 mov w2, w28 add x0, x0, :lo12:.LC169 bl printk -.L2186: +.L2225: bl nandc_wait_flash_ready mov w0, w20 bl nandc_cs mov w0, w20 - cbnz w28, .L2187 + cbnz w28, .L2226 bl zftl_flash_enter_slc_mode - b .L2188 -.L2187: - bl zftl_flash_exit_slc_mode -.L2188: - mov w0, 0 +.L2227: + mov x6, x26 + mov x5, x25 mov w4, w19 - mov w1, w0 - mov w2, 16 mov w3, w20 - mov x5, x26 - mov x6, x25 - bl flash_start_one_pass_page_prog - bl nandc_wait_flash_ready + mov w2, 16 + mov w1, 0 mov w0, 0 - mov w2, 16 - add w4, w19, 1 - mov w1, w0 - mov w3, w20 - mov x5, x24 - mov x6, x23 bl flash_start_one_pass_page_prog bl nandc_wait_flash_ready - mov x0, x21 + mov x6, x24 + mov x5, x23 + add w4, w19, 1 + mov w3, w20 + mov w2, 16 + mov w1, 0 + mov w0, 0 + bl flash_start_one_pass_page_prog + bl nandc_wait_flash_ready + mov x0, x22 bl flash_read_status - mov w19, w0 - mov w0, w20 - bl nandc_de_cs - and w2, w19, 4 - tbz x19, 2, .L2189 - ldr w0, [x27,#:lo12:.LANCHOR2] - tbz x0, 12, .L2190 + mov w3, w0 + bl nandc_de_cs.constprop.35 + and w2, w3, 4 + tbz x3, 2, .L2224 + ldr w0, [x27, #:lo12:.LANCHOR2] + tbz x0, 12, .L2229 adrp x0, .LC168 - mov w1, w22 + mov w1, w21 add x0, x0, :lo12:.LC168 bl printk -.L2190: +.L2229: mov w2, -1 -.L2189: +.L2224: mov w0, w2 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] + ldp 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 +.L2226: + bl zftl_flash_exit_slc_mode + b .L2227 .size flash_dual_page_prog, .-flash_dual_page_prog .align 2 .global ymtc_flash_tlc_page_prog .type ymtc_flash_tlc_page_prog, %function ymtc_flash_tlc_page_prog: stp x29, x30, [sp, -80]! - mov w4, 24 add x29, sp, 0 - stp x21, x22, [sp,32] - uxtb x21, w0 - adrp x0, .LANCHOR0 - add x0, x0, :lo12:.LANCHOR0 - str x25, [sp,64] - stp x23, x24, [sp,48] - stp x19, x20, [sp,16] + str x25, [sp, 64] mov w25, w1 - mov x20, x21 - ldr x1, [x0,1048] - add x21, x21, 8 - ldrb w19, [x0,1257] - mov x23, x2 - mov x22, x3 - add x21, x1, x21, lsl 8 - sub w19, w4, w19 + adrp x1, .LANCHOR0 + add x1, x1, :lo12:.LANCHOR0 + stp x19, x20, [sp, 16] + and w20, w0, 255 + stp x21, x22, [sp, 32] + mov w19, 24 + stp x23, x24, [sp, 48] + ubfiz x24, x20, 8, 8 + add x0, x24, 2048 + mov x22, x2 + ldr x24, [x1, 1056] + mov x23, x3 + mov w21, 1 + add x24, x24, x0 + ldrb w0, [x1, 1205] + sub w19, w19, w0 bl nandc_wait_flash_ready + lsl w19, w21, w19 mov w0, w20 - mov w24, 1 - lsl w19, w24, w19 - bl nandc_cs sub w19, w19, #1 - mov w0, w20 + bl nandc_cs and w19, w19, w25 + mov w0, w20 bl zftl_flash_exit_slc_mode + mov x6, x23 + mov x5, x22 mov w4, w19 - mov w1, w24 - mov w2, 26 mov w3, w20 - mov x5, x23 - mov x6, x22 + mov w1, w21 + mov w2, 26 mov w0, 0 bl flash_start_one_pass_page_prog bl nandc_wait_flash_ready - add w4, w19, w24 - mov w1, w24 - mov w2, 26 + mov x6, x23 + mov x5, x22 + add w4, w19, w21 mov w3, w20 - mov x5, x23 - mov x6, x22 + mov w1, w21 + mov w2, 26 mov w0, 0 bl flash_start_one_pass_page_prog bl nandc_wait_flash_ready - mov w2, 16 + mov x6, x23 + mov x5, x22 add w4, w19, 2 - mov w1, w24 mov w3, w20 - mov x5, x23 - mov x6, x22 + mov w1, w21 + mov w2, 16 mov w0, 0 bl flash_start_one_pass_page_prog bl nandc_iqr_wait_flash_ready bl nandc_wait_flash_ready - mov x0, x21 + mov x0, x24 bl flash_read_status - mov w19, w0 - mov w0, w20 - bl nandc_de_cs - and w2, w19, 4 - tbz x19, 2, .L2198 + mov w3, w0 + bl nandc_de_cs.constprop.35 + and w2, w3, 4 + tbz x3, 2, .L2237 adrp x0, .LANCHOR2 - ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 12, .L2199 + ldr w0, [x0, #:lo12:.LANCHOR2] + tbz x0, 12, .L2239 adrp x0, .LC170 mov w1, w25 add x0, x0, :lo12:.LC170 bl printk -.L2199: +.L2239: mov w2, -1 -.L2198: +.L2237: mov w0, w2 - ldr x25, [sp,64] - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] + ldr x25, [sp, 64] + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] ldp x29, x30, [sp], 80 ret .size ymtc_flash_tlc_page_prog, .-ymtc_flash_tlc_page_prog .section .text.unlikely .align 2 - .type fw_flash_page_prog.constprop.30, %function -fw_flash_page_prog.constprop.30: - stp x29, x30, [sp, -80]! + .type fw_flash_page_prog.constprop.29, %function +fw_flash_page_prog.constprop.29: + stp x29, x30, [sp, -64]! + adrp x4, .LANCHOR0 + add x4, x4, :lo12:.LANCHOR0 add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x19, .LANCHOR0 - str x23, [sp,48] - add x19, x19, :lo12:.LANCHOR0 - str x2, [x29,72] - stp x21, x22, [sp,32] - mov x22, x1 - ldr x1, [x19,1144] - ldrb w21, [x19,1244] - ldrb w20, [x1,9] - udiv w20, w0, w20 - ldrb w0, [x19,1152] + stp x21, x22, [sp, 32] + mov x21, x1 + str x23, [sp, 48] + mov x23, x2 + stp x19, x20, [sp, 16] + ldr x1, [x4, 1144] + ldrb w22, [x4, 1249] + ldrb w19, [x1, 9] + udiv w19, w0, w19 + ldrb w0, [x4, 1152] bl nandc_bch_sel - adrp x4, .LANCHOR2 - ldr x3, [x29,72] - add x4, x4, :lo12:.LANCHOR2 - add x4, x4, 8 - ldrb w0, [x4,7] - cmp w0, 9 - bne .L2204 - ldrb w23, [x19,1154] - cbnz w23, .L2204 - ldrb w0, [x4,12] + adrp x0, .LANCHOR2 + add x0, x0, :lo12:.LANCHOR2 + ldrb w1, [x0, 15] + cmp w1, 9 + bne .L2245 + ldrb w1, [x4, 1154] + cbnz w1, .L2245 + add x0, x0, 8 + ldrb w0, [x0, 12] cmp w0, 3 - bne .L2205 - mov w0, w23 - mov w1, w20 - mov x2, x22 - bl ymtc_flash_tlc_page_prog - b .L2207 -.L2205: - adrp x19, .LANCHOR5 - mov w1, 255 - add x19, x19, :lo12:.LANCHOR5 - mov w2, 16384 - str x3, [x29,72] - ldr x0, [x19,296] - bl ftl_memset - ldr x4, [x19,296] - mov w0, w23 - ldr x3, [x29,72] - mov w1, w20 - mov x2, x22 - mov x5, x4 - mov w6, 4 - bl flash_dual_page_prog - b .L2207 -.L2204: + bne .L2246 + mov x3, x23 + mov x2, x21 + mov w1, w19 mov w0, 0 - mov w1, w20 - mov x2, x22 - mov w4, 4 - bl flash_prog_page -.L2207: - mov w19, w0 - mov w0, w21 + bl ymtc_flash_tlc_page_prog +.L2249: + mov w4, w0 + mov w0, w22 bl nandc_bch_sel - ldr x23, [sp,48] - mov w0, w19 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x29, x30, [sp], 80 + mov w0, w4 + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldr x23, [sp, 48] + ldp x29, x30, [sp], 64 ret - .size fw_flash_page_prog.constprop.30, .-fw_flash_page_prog.constprop.30 +.L2246: + adrp x20, .LANCHOR5 + add x20, x20, :lo12:.LANCHOR5 + mov w2, 16384 + mov w1, 255 + ldr x0, [x20, 304] + bl ftl_memset + ldr x5, [x20, 304] + mov w6, 4 + mov x3, x23 + mov x2, x21 + mov w1, w19 + mov x4, x5 + mov w0, 0 + bl flash_dual_page_prog + b .L2249 +.L2245: + mov w4, 4 + mov x3, x23 + mov x2, x21 + mov w1, w19 + mov w0, 0 + bl flash_prog_page + b .L2249 + .size fw_flash_page_prog.constprop.29, .-fw_flash_page_prog.constprop.29 .text .align 2 .global flash_start_tlc_page_prog .type flash_start_tlc_page_prog, %function flash_start_tlc_page_prog: stp x29, x30, [sp, -80]! - adrp x7, .LANCHOR0 add x29, sp, 0 - stp x25, x26, [sp,64] - uxtb w26, w0 - add x0, x7, :lo12:.LANCHOR0 - stp x19, x20, [sp,16] - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - uxtb w25, w3 - uxtb w21, w1 - ldrb w0, [x0,1153] - uxtb w22, w2 + stp x21, x22, [sp, 32] + and w21, w1, 255 + stp x25, x26, [sp, 64] + and w25, w0, 255 + adrp x0, .LANCHOR0 + add x1, x0, :lo12:.LANCHOR0 + stp x19, x20, [sp, 16] + and w26, w3, 255 + stp x23, x24, [sp, 48] + and w22, w2, 255 mov w20, w4 - mov x24, x5 - cmp w0, w25 - mov x23, x6 - mov x19, x7 - bhi .L2209 + mov x23, x5 + ldrb w1, [x1, 1153] + mov x24, x6 + mov x19, x0 + cmp w1, w26 + bhi .L2251 adrp x1, .LANCHOR4 - adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 + add x1, x1, 312 mov w2, 868 - add x1, x1, 296 + adrp x0, .LC0 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L2209: - add x7, x19, :lo12:.LANCHOR0 - ldrb w0, [x7,1153] - cmp w0, w25 - bls .L2208 - add x25, x7, w25, sxtw - ldrb w25, [x25,1248] - ldr x19, [x7,1048] - mov w0, w25 +.L2251: + add x0, x19, :lo12:.LANCHOR0 + ldrb w1, [x0, 1153] + cmp w1, w26 + bls .L2250 + add x26, x0, w26, sxtw + ldr x19, [x0, 1056] + ldrb w5, [x26, 1196] + mov w0, w5 bl nandc_cs - cbz w26, .L2211 - sxtw x0, w25 + cbz w25, .L2253 + sxtw x0, w5 add x0, x0, 8 add x0, x19, x0, lsl 8 - str w26, [x0,8] -.L2211: - ubfiz x7, x25, 8, 8 + str w25, [x0, 8] +.L2253: + ubfiz x0, x5, 8, 8 + add x19, x19, x0 mov w0, 128 - add x19, x19, x7 - str w21, [x19,2056] - str w0, [x19,2056] + str w21, [x19, 2056] + str w0, [x19, 2056] and w0, w20, 255 - str wzr, [x19,2052] - str wzr, [x19,2052] - str w0, [x19,2052] + str wzr, [x19, 2052] + str wzr, [x19, 2052] + str w0, [x19, 2052] lsr w0, w20, 8 - str w0, [x19,2052] + str w0, [x19, 2052] lsr w0, w20, 16 add w20, w20, w20, lsl 1 - str w0, [x19,2052] + str w0, [x19, 2052] sub w0, w20, #1 add w0, w0, w21 bl nandc_set_seed - adrp x2, .LANCHOR2+17 - mov w0, w25 + adrp x0, .LANCHOR2+17 + mov x4, x24 + mov x3, x23 mov w1, 1 - mov x3, x24 - mov x4, x23 - ldrb w2, [x2,#:lo12:.LANCHOR2+17] + ldrb w2, [x0, #:lo12:.LANCHOR2+17] + mov w0, w5 bl nandc_xfer - str w22, [x19,2056] - mov w0, w25 - bl nandc_de_cs -.L2208: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] + str w22, [x19, 2056] + bl nandc_de_cs.constprop.35 +.L2250: + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] ldp x29, x30, [sp], 80 ret .size flash_start_tlc_page_prog, .-flash_start_tlc_page_prog @@ -13920,281 +13842,276 @@ flash_start_tlc_page_prog: .type queue_tlc_prog_cmd, %function queue_tlc_prog_cmd: stp x29, x30, [sp, -64]! + mov w3, 24 add x29, sp, 0 - stp x19, x20, [sp,16] - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - adrp x23, .LANCHOR0 - mov x20, x0 - ldr x6, [x0] - add x0, x23, :lo12:.LANCHOR0 + stp x19, x20, [sp, 16] + stp x21, x22, [sp, 32] + mov x21, x0 + stp x23, x24, [sp, 48] + adrp x22, .LANCHOR0 mov w24, w1 - mov w1, 24 - mov w21, 1 - ldrb w3, [x0,1257] - ldr w2, [x6,40] - sub w1, w1, w3 - lsl w3, w21, w3 - lsl w22, w21, w1 - sub w19, w3, #1 - sub w22, w22, #1 - ldrb w0, [x0,1269] - and w22, w22, w2 - lsr w2, w2, w1 + mov w23, 1 + ldr x7, [x0] + add x0, x22, :lo12:.LANCHOR0 + ldrb w1, [x0, 1205] + ldr w2, [x7, 40] + sub w3, w3, w1 + ldrb w0, [x0, 1213] + lsl w19, w23, w1 + sub w19, w19, #1 + lsl w20, w23, w3 + sub w20, w20, #1 + and w20, w20, w2 + lsr w2, w2, w3 and w19, w19, w2 - uxtb w19, w19 - cbz w0, .L2216 + and w19, w19, 255 + cbz w0, .L2259 mov w0, w19 bl zftl_flash_exit_slc_mode - ldr x6, [x20] - mov w1, w21 + ldr x0, [x21] + mov w4, w20 mov w3, w19 - mov w4, w22 + mov w1, w23 mov w2, 26 + ldr x5, [x0, 8] + ldr x6, [x0, 24] mov w0, 0 - ldr x5, [x6,8] - ldr x6, [x6,24] bl flash_start_one_pass_page_prog bl nandc_iqr_wait_flash_ready bl nandc_wait_flash_ready - ldr x6, [x20,8] - mov w1, w21 + ldr x0, [x21, 8] + add w4, w20, w23 mov w3, w19 - add w4, w22, w21 + mov w1, w23 mov w2, 26 + ldr x5, [x0, 8] + ldr x6, [x0, 24] mov w0, 0 - ldr x5, [x6,8] - ldr x6, [x6,24] bl flash_start_one_pass_page_prog bl nandc_iqr_wait_flash_ready bl nandc_wait_flash_ready - ldr x6, [x20,16] - mov w0, 0 - mov w1, w21 + ldr x0, [x21, 16] + add w4, w20, 2 + mov w3, w19 mov w2, 16 - mov w3, w19 - add w4, w22, 2 - ldr x5, [x6,8] - ldr x6, [x6,24] + mov w1, w23 + ldr x5, [x0, 8] + ldr x6, [x0, 24] + mov w0, 0 bl flash_start_one_pass_page_prog - b .L2217 -.L2216: - ldr x5, [x6,8] - mov w1, w21 - ldrb w0, [x6,60] - mov w2, 26 - ldr x6, [x6,24] - mov w3, w19 - mov w4, w22 - bl flash_start_tlc_page_prog - bl nandc_iqr_wait_flash_ready - bl nandc_wait_flash_ready - ldr x6, [x20,8] - mov w1, 2 - ldr x0, [x20] - mov w2, 26 - mov w3, w19 - mov w4, w22 - ldr x5, [x6,8] - ldrb w0, [x0,60] - ldr x6, [x6,24] - bl flash_start_tlc_page_prog - bl nandc_iqr_wait_flash_ready - bl nandc_wait_flash_ready - ldr x6, [x20,16] - mov w1, 3 - ldr x0, [x20] - mov w2, 16 - mov w3, w19 - mov w4, w22 - ldr x5, [x6,8] - ldrb w0, [x0,60] - ldr x6, [x6,24] - bl flash_start_tlc_page_prog -.L2217: - cbz w24, .L2215 - ldr x1, [x20] +.L2260: + cbz w24, .L2258 + ldr x1, [x21] mov w0, 4 - strb w0, [x1,58] + strb w0, [x1, 58] mov w0, 1 - strb w0, [x1,59] + strb w0, [x1, 59] mov w0, -1 strb w0, [x1] - add x0, x23, :lo12:.LANCHOR0 - add x0, x0, 3363 + add x0, x22, :lo12:.LANCHOR0 + add x0, x0, 3354 bl buf_add_tail -.L2215: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] +.L2258: + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] ldp x29, x30, [sp], 64 ret +.L2259: + ldr x5, [x7, 8] + mov w4, w20 + ldr x6, [x7, 24] + mov w3, w19 + ldrb w0, [x7, 60] + mov w1, w23 + mov w2, 26 + bl flash_start_tlc_page_prog + bl nandc_iqr_wait_flash_ready + bl nandc_wait_flash_ready + ldp x7, x0, [x21] + mov w4, w20 + mov w3, w19 + mov w2, 26 + mov w1, 2 + ldr x5, [x0, 8] + ldr x6, [x0, 24] + ldrb w0, [x7, 60] + bl flash_start_tlc_page_prog + bl nandc_iqr_wait_flash_ready + bl nandc_wait_flash_ready + ldr x0, [x21, 16] + mov w4, w20 + ldr x7, [x21] + mov w3, w19 + mov w2, 16 + mov w1, 3 + ldr x5, [x0, 8] + ldr x6, [x0, 24] + ldrb w0, [x7, 60] + bl flash_start_tlc_page_prog + b .L2260 .size queue_tlc_prog_cmd, .-queue_tlc_prog_cmd .align 2 .global sblk_3d_tlc_dump_prog .type sblk_3d_tlc_dump_prog, %function sblk_3d_tlc_dump_prog: - stp x29, x30, [sp, -64]! - adrp x2, .LANCHOR0 + stp x29, x30, [sp, -48]! + adrp x1, .LANCHOR0 + add x1, x1, :lo12:.LANCHOR0 mov w3, 24 - add x2, x2, :lo12:.LANCHOR0 add x29, sp, 0 - stp x19, x20, [sp,16] - stp x21, x22, [sp,32] - str x23, [sp,48] + stp x19, x20, [sp, 16] + mov x20, x0 + stp x21, x22, [sp, 32] mov w22, 1 - mov x19, x0 - ldrb w1, [x2,1257] - ldr w0, [x0,40] - sub w3, w3, w1 - lsl w1, w22, w1 + ldr w2, [x0, 40] + ldrb w0, [x1, 1205] + sub w3, w3, w0 + lsl w19, w22, w0 + ldrb w0, [x1, 1213] lsl w21, w22, w3 - sub w20, w1, #1 + sub w19, w19, #1 sub w21, w21, #1 - ldrb w23, [x2,1269] - and w21, w21, w0 - lsr w0, w0, w3 - and w20, w20, w0 - uxtb w20, w20 - cbz w23, .L2223 - mov w0, w20 + and w21, w21, w2 + lsr w2, w2, w3 + and w19, w19, w2 + and w19, w19, 255 + cbz w0, .L2267 + mov w0, w19 bl zftl_flash_exit_slc_mode - ldr x5, [x19,8] - mov w1, w22 - ldr x6, [x19,24] - mov w3, w20 + ldr x5, [x20, 8] mov w4, w21 + ldr x6, [x20, 24] + mov w3, w19 + mov w1, w22 mov w2, 26 mov w0, 0 bl flash_start_one_pass_page_prog bl nandc_iqr_wait_flash_ready bl nandc_wait_flash_ready - ldr x5, [x19,8] - mov w1, w22 - ldr x6, [x19,24] - mov w3, w20 + ldr x5, [x20, 8] add w4, w21, w22 + ldr x6, [x20, 24] + mov w3, w19 + mov w1, w22 mov w2, 26 mov w0, 0 bl flash_start_one_pass_page_prog bl nandc_iqr_wait_flash_ready bl nandc_wait_flash_ready - ldr x5, [x19,8] - mov w0, 0 - ldr x6, [x19,24] - mov w1, w22 - mov w2, 16 - mov w3, w20 + ldr x5, [x20, 8] add w4, w21, 2 - bl flash_start_one_pass_page_prog - b .L2224 -.L2223: - ldr x5, [x19,8] - mov w1, w22 - ldr x6, [x19,24] - mov w2, 26 - mov w3, w20 - mov w4, w21 - mov w0, w23 - bl flash_start_tlc_page_prog - bl nandc_iqr_wait_flash_ready - bl nandc_wait_flash_ready - ldr x5, [x19,8] - mov w1, 2 - ldr x6, [x19,24] - mov w2, 26 - mov w3, w20 - mov w4, w21 - mov w0, w23 - bl flash_start_tlc_page_prog - bl nandc_iqr_wait_flash_ready - bl nandc_wait_flash_ready - ldr x5, [x19,8] - mov w0, w23 - ldr x6, [x19,24] - mov w1, 3 + ldr x6, [x20, 24] + mov w3, w19 mov w2, 16 - mov w3, w20 - mov w4, w21 - bl flash_start_tlc_page_prog -.L2224: + mov w1, w22 + mov w0, 0 + bl flash_start_one_pass_page_prog +.L2268: bl nandc_iqr_wait_flash_ready bl nandc_wait_flash_ready - ldr w0, [x19,40] + ldr w0, [x20, 40] mov w1, 64 bl flash_wait_device_ready - ldr x23, [sp,48] - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x29, x30, [sp], 64 + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x29, x30, [sp], 48 ret +.L2267: + ldr x5, [x20, 8] + mov w4, w21 + ldr x6, [x20, 24] + mov w3, w19 + mov w1, w22 + mov w2, 26 + mov w0, 0 + bl flash_start_tlc_page_prog + bl nandc_iqr_wait_flash_ready + bl nandc_wait_flash_ready + ldr x5, [x20, 8] + mov w4, w21 + ldr x6, [x20, 24] + mov w3, w19 + mov w2, 26 + mov w1, 2 + mov w0, 0 + bl flash_start_tlc_page_prog + bl nandc_iqr_wait_flash_ready + bl nandc_wait_flash_ready + ldr x5, [x20, 8] + mov w4, w21 + ldr x6, [x20, 24] + mov w3, w19 + mov w2, 16 + mov w1, 3 + mov w0, 0 + bl flash_start_tlc_page_prog + b .L2268 .size sblk_3d_tlc_dump_prog, .-sblk_3d_tlc_dump_prog .align 2 .global flash_start_3d_mlc_page_prog .type flash_start_3d_mlc_page_prog, %function flash_start_3d_mlc_page_prog: stp x29, x30, [sp, -64]! - adrp x5, .LANCHOR0 add x29, sp, 0 - stp x21, x22, [sp,32] - uxtb w22, w0 - add x0, x5, :lo12:.LANCHOR0 - stp x19, x20, [sp,16] - uxtb w20, w1 - mov w21, w2 - ldrb w0, [x0,1153] - mov x19, x5 - cmp w0, w20 - bhi .L2226 + stp x19, x20, [sp, 16] + and w20, w1, 255 + stp x21, x22, [sp, 32] + and w21, w0, 255 + adrp x0, .LANCHOR0 + add x1, x0, :lo12:.LANCHOR0 + stp x23, x24, [sp, 48] + mov x22, x3 + mov w24, w2 + mov x23, x4 + ldrb w1, [x1, 1153] + mov x19, x0 + cmp w1, w20 + bhi .L2271 adrp x1, .LANCHOR4 - adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 + add x1, x1, 344 mov w2, 903 - add x1, x1, 328 + adrp x0, .LC0 add x0, x0, :lo12:.LC0 - str x4, [x29,48] - str x3, [x29,56] bl printk bl dump_stack - ldr x4, [x29,48] - ldr x3, [x29,56] -.L2226: - add x5, x19, :lo12:.LANCHOR0 - ldrb w0, [x5,1153] - cmp w0, w20 - bls .L2225 - add x20, x5, w20, sxtw - ldrb w20, [x20,1248] - ldr x19, [x5,1048] - mov w0, w20 - str x4, [x29,48] - str x3, [x29,56] +.L2271: + add x0, x19, :lo12:.LANCHOR0 + ldrb w1, [x0, 1153] + cmp w1, w20 + bls .L2270 + add x20, x0, w20, sxtw + ldr x19, [x0, 1056] + ldrb w5, [x20, 1196] + mov w0, w5 bl nandc_cs - ubfiz x1, x20, 8, 8 + ubfiz x0, x5, 8, 8 + add x19, x19, x0 mov w0, 128 - add x19, x19, x1 - str w0, [x19,2056] - and w0, w21, 255 - str wzr, [x19,2052] - str wzr, [x19,2052] - str w0, [x19,2052] - lsr w0, w21, 8 - str w0, [x19,2052] - lsr w0, w21, 16 - str w0, [x19,2052] - mov w0, w21 + str w0, [x19, 2056] + and w0, w24, 255 + str wzr, [x19, 2052] + str wzr, [x19, 2052] + str w0, [x19, 2052] + lsr w0, w24, 8 + str w0, [x19, 2052] + lsr w0, w24, 16 + str w0, [x19, 2052] + mov w0, w24 bl nandc_set_seed - adrp x2, .LANCHOR2+17 - ldr x3, [x29,56] - ldr x4, [x29,48] - mov w0, w20 + adrp x0, .LANCHOR2+17 + mov x4, x23 + mov x3, x22 mov w1, 1 - ldrb w2, [x2,#:lo12:.LANCHOR2+17] + ldrb w2, [x0, #:lo12:.LANCHOR2+17] + mov w0, w5 bl nandc_xfer - str w22, [x19,2056] -.L2225: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] + str w21, [x19, 2056] +.L2270: + 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 @@ -14203,61 +14120,60 @@ flash_start_3d_mlc_page_prog: .type sblk_mlc_dump_prog, %function sblk_mlc_dump_prog: stp x29, x30, [sp, -48]! - mov w1, 24 + mov w2, 24 add x29, sp, 0 - stp x19, x20, [sp,16] - str x21, [sp,32] + stp x19, x20, [sp, 16] mov x20, x0 - ldr w3, [x0,40] - adrp x0, .LANCHOR0+1257 - ldrb w19, [x0,#:lo12:.LANCHOR0+1257] + str x21, [sp, 32] + ldr w1, [x0, 40] + adrp x0, .LANCHOR0+1205 + ldrb w19, [x0, #:lo12:.LANCHOR0+1205] mov w0, 1 - sub w1, w1, w19 - lsl w21, w0, w1 - lsl w0, w0, w19 + sub w2, w2, w19 + lsl w19, w0, w19 + sub w19, w19, #1 + lsl w21, w0, w2 sub w21, w21, #1 - sub w19, w0, #1 - and w21, w21, w3 - lsr w3, w3, w1 - and w19, w19, w3 - uxtb w19, w19 + and w21, w21, w1 + lsr w1, w1, w2 + and w19, w19, w1 + and w19, w19, 255 mov w0, w19 bl zftl_flash_exit_slc_mode adrp x0, .LANCHOR2 - ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 12, .L2229 - ldr w2, [x20,40] + ldr w0, [x0, #:lo12:.LANCHOR2] + tbz x0, 12, .L2275 + ldr w2, [x20, 40] adrp x0, .LC171 - add x0, x0, :lo12:.LC171 mov w1, w21 + add x0, x0, :lo12:.LC171 add w3, w2, 1 bl printk -.L2229: - ldr x3, [x20,8] - mov w1, w19 - ldr x4, [x20,24] +.L2275: + ldr x3, [x20, 8] 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] + 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] + 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] + mov w2, w0 + bl nandc_de_cs.constprop.35 + mov w0, w2 + ldp x19, x20, [sp, 16] + ldr x21, [sp, 32] ldp x29, x30, [sp], 48 ret .size sblk_mlc_dump_prog, .-sblk_mlc_dump_prog @@ -14266,1165 +14182,1162 @@ sblk_mlc_dump_prog: .type flash_start_page_prog, %function flash_start_page_prog: stp x29, x30, [sp, -96]! - mov w5, 1 add x29, sp, 0 - stp x25, x26, [sp,64] - adrp x25, .LANCHOR0 - stp x21, x22, [sp,32] - uxtb w21, w0 - add x0, x25, :lo12:.LANCHOR0 - stp x23, x24, [sp,48] - stp x19, x20, [sp,16] - stp x27, x28, [sp,80] - mov w19, 24 + stp x21, x22, [sp, 32] + and w21, w0, 255 + stp x25, x26, [sp, 64] + adrp x26, .LANCHOR0 + add x0, x26, :lo12:.LANCHOR0 + stp x19, x20, [sp, 16] + stp x23, x24, [sp, 48] mov w24, w1 - ldrb w20, [x0,1257] - mov x23, x2 - ldrb w0, [x0,1153] - mov x22, x3 - sub w19, w19, w20 - lsl w20, w5, w20 - lsr w1, w1, w19 + str x27, [sp, 80] + mov w19, 24 + mov w20, 1 + mov x22, x2 + ldrb w1, [x0, 1205] + mov x23, x3 + ldrb w0, [x0, 1153] + sub w25, w19, w1 + lsl w20, w20, w1 sub w20, w20, #1 - and w20, w1, w20 - uxtb w20, w20 + lsr w1, w24, w25 + and w20, w20, w1 + and w20, w20, 255 cmp w0, w20 - bhi .L2234 + bhi .L2281 adrp x1, .LANCHOR4 - adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 + add x1, x1, 376 mov w2, 956 - add x1, x1, 360 + adrp x0, .LC0 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L2234: - add x28, x25, :lo12:.LANCHOR0 - ldrb w0, [x28,1153] +.L2281: + add x1, x26, :lo12:.LANCHOR0 + ldrb w0, [x1, 1153] cmp w0, w20 - bls .L2233 - mov w0, 1 - ldr x27, [x28,1048] - lsl w19, w0, w19 + bls .L2280 + add x0, x1, w20, sxtw + mov w19, 1 + lsl w19, w19, w25 sub w19, w19, #1 - add x0, x28, w20, sxtw - and w19, w24, w19 - ldrb w26, [x0,1248] + and w19, w19, w24 + ldr x25, [x1, 1056] + ldrb w27, [x0, 1196] bl nandc_rdy_status - cbnz w0, .L2236 - ldrb w0, [x28,1153] + cbnz w0, .L2283 + ldrb w0, [x1, 1153] cmp w0, 1 - bne .L2237 + bne .L2284 bl nandc_wait_flash_ready - b .L2236 -.L2237: - mov w0, w20 - mov w1, w19 - mov w2, 64 - bl flash_wait_device_ready_raw -.L2236: - mov w0, w26 - ubfx x24, x24, 24, 2 +.L2283: + mov w0, w27 bl hynix_reconfig_rr_para - mov w0, w26 + mov w0, w27 bl nandc_cs - cbnz w24, .L2238 + tst x24, 50331648 + bne .L2285 mov w0, w19 bl slc_phy_page_address_calc mov w19, w0 - ldrb w0, [x25,#:lo12:.LANCHOR0] - cbz w0, .L2239 - mov w0, w26 + ldrb w0, [x26, #:lo12:.LANCHOR0] + cbz w0, .L2286 + mov w0, w27 bl zftl_flash_enter_slc_mode - b .L2239 -.L2238: - mov w0, w26 - bl zftl_flash_exit_slc_mode -.L2239: - ubfiz x1, x26, 8, 8 +.L2286: + ubfiz x20, x27, 8, 8 mov w0, 128 - add x20, x27, x1 - add x25, x25, :lo12:.LANCHOR0 - str w0, [x20,2056] + add x20, x25, x20 + add x26, x26, :lo12:.LANCHOR0 + str w0, [x20, 2056] and w0, w19, 255 - str wzr, [x20,2052] - str wzr, [x20,2052] - str w0, [x20,2052] + str wzr, [x20, 2052] + str wzr, [x20, 2052] + str w0, [x20, 2052] lsr w0, w19, 8 - str w0, [x20,2052] + str w0, [x20, 2052] lsr w0, w19, 16 - str w0, [x20,2052] - ldrb w0, [x25,1256] - cbz w0, .L2240 + str w0, [x20, 2052] + ldrb w0, [x26, 1204] + cbz w0, .L2287 lsr w0, w19, 24 - str w0, [x20,2052] -.L2240: + str w0, [x20, 2052] +.L2287: mov w0, w19 bl nandc_set_seed - adrp x2, .LANCHOR2+17 - mov w0, w26 + adrp x0, .LANCHOR2+17 + mov x4, x23 + mov x3, x22 mov w1, 1 - mov x3, x23 - mov x4, x22 - ldrb w2, [x2,#:lo12:.LANCHOR2+17] + ldrb w2, [x0, #:lo12:.LANCHOR2+17] + mov w0, w27 bl nandc_xfer - str w21, [x20,2056] - mov w0, w26 - bl nandc_de_cs -.L2233: - 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] + str w21, [x20, 2056] + bl nandc_de_cs.constprop.35 +.L2280: + 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 +.L2284: + mov w2, 64 + mov w1, w19 + mov w0, w20 + bl flash_wait_device_ready_raw + b .L2283 +.L2285: + mov w0, w27 + bl zftl_flash_exit_slc_mode + b .L2286 .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] + str x19, [sp, 16] mov x19, x0 + ldr w1, [x0, 40] + ldr x3, [x0, 24] + ldr x2, [x0, 8] mov w0, 16 - ldr x2, [x19,8] - ldr x3, [x19,24] - ldr w1, [x19,40] bl flash_start_page_prog adrp x0, .LANCHOR0 - ldr w4, [x19,40] add x3, x0, :lo12:.LANCHOR0 - ldrb w2, [x3,3363] - cmp w2, 255 - beq .L2248 - ldrb w5, [x3,1257] - mov w1, 1 - mov w7, 24 - add x3, x3, 1312 - lsl w1, w1, w5 - sub w7, w7, w5 - sub w1, w1, #1 - asr w4, w4, w7 - uxth w1, w1 - and w4, w1, w4 -.L2250: - add x5, x3, x2, lsl 6 - ldr w6, [x5,40] - lsr w6, w6, w7 - and w6, w1, w6 - cmp w4, w6 - bne .L2249 - ldrb w6, [x5,58] - add x5, x5, 48 - cmp w6, 7 - bne .L2249 + ldr w4, [x19, 40] + ldrb w1, [x3, 3354] + cmp w1, 255 + beq .L2296 + ldrb w5, [x3, 1205] + mov w2, 1 + mov w6, 24 + add x3, x3, 1304 + sub w6, w6, w5 + lsl w2, w2, w5 + sub w2, w2, #1 + and w2, w2, 65535 + asr w4, w4, w6 + and w4, w4, w2 +.L2298: + add x7, x3, x1, lsl 6 + ldr w5, [x7, 40] + lsr w5, w5, w6 + and w5, w2, w5 + cmp w4, w5 + bne .L2297 + ldrb w5, [x7, 58] + cmp w5, 7 + bne .L2297 mov w1, 3 - strb w1, [x5,10] - b .L2248 -.L2249: - lsl x2, x2, 6 - ldrb w2, [x3,x2] - cmp w2, 255 - bne .L2250 -.L2248: + strb w1, [x7, 58] +.L2296: mov w1, 3 - strb w1, [x19,58] + strb w1, [x19, 58] mov w1, 1 - add x0, x0, :lo12:.LANCHOR0 - strb w1, [x19,59] + strb w1, [x19, 59] mov w1, -1 - add x0, x0, 3363 strb w1, [x19] + add x0, x0, :lo12:.LANCHOR0 mov x1, x19 + add x0, x0, 3354 bl buf_add_tail - ldr x19, [sp,16] + ldr x19, [sp, 16] ldp x29, x30, [sp], 32 ret +.L2297: + lsl x1, x1, 6 + ldrb w1, [x3, x1] + cmp w1, 255 + bne .L2298 + b .L2296 .size queue_prog_cmd, .-queue_prog_cmd .align 2 .global flash_complete_plane_page_read .type flash_complete_plane_page_read, %function flash_complete_plane_page_read: - stp x29, x30, [sp, -80]! + stp x29, x30, [sp, -64]! + mov w4, 24 add x29, sp, 0 - stp x23, x24, [sp,48] - adrp x23, .LANCHOR0 + stp x21, x22, [sp, 32] + adrp x22, .LANCHOR0 + stp x23, x24, [sp, 48] mov w24, w0 - add x0, x23, :lo12:.LANCHOR0 - str x25, [sp,64] - stp x21, x22, [sp,32] - stp x19, x20, [sp,16] - mov x22, x1 - mov w19, 24 - ldrb w20, [x0,1257] - mov w1, 1 + add x0, x22, :lo12:.LANCHOR0 + stp x19, x20, [sp, 16] + mov x20, x1 + mov w19, 1 mov x21, x2 - ldrb w0, [x0,1153] - sub w19, w19, w20 - lsl w20, w1, w20 - lsr w2, w24, w19 - sub w20, w20, #1 - and w20, w2, w20 - uxtb w20, w20 - cmp w0, w20 - bhi .L2256 + ldrb w1, [x0, 1205] + ldrb w0, [x0, 1153] + sub w23, w4, w1 + lsl w19, w19, w1 + sub w19, w19, #1 + lsr w1, w24, w23 + and w19, w19, w1 + and w19, w19, 255 + cmp w0, w19 + bhi .L2305 adrp x1, .LANCHOR4 - adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 + add x1, x1, 400 mov w2, 1070 - add x1, x1, 384 + adrp x0, .LC0 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L2256: - add x3, x23, :lo12:.LANCHOR0 - mov w0, -1 - ldrb w1, [x3,1153] - cmp w1, w20 - bls .L2257 - mov w2, 1 - add x20, x3, w20, sxtw - ldrb w20, [x20,1248] - lsl w19, w2, w19 - add w19, w19, w0 - ubfx x25, x24, 24, 2 - mov w0, w20 - and w19, w19, w24 - ldr x24, [x3,1048] +.L2305: + add x2, x22, :lo12:.LANCHOR0 + ldrb w0, [x2, 1153] + cmp w0, w19 + bls .L2316 + add x19, x2, w19, sxtw + mov w4, 1 + lsl w4, w4, w23 + ldr x7, [x2, 1056] + sub w4, w4, #1 + ldrb w9, [x19, 1196] + and w4, w4, w24 + ubfx x24, x24, 24, 2 + mov w0, w9 bl nandc_cs - cbnz w25, .L2258 - mov w0, w19 + cbnz w24, .L2307 + mov w0, w4 bl slc_phy_page_address_calc - mov w19, w0 -.L2258: - add x7, x23, :lo12:.LANCHOR0 - uxtb x5, w20 - and w6, w19, 255 - lsr w4, w19, 8 - lsr w3, w19, 16 - ldrb w0, [x7,1176] - ldrb w2, [x7,1256] + mov w4, w0 +.L2307: + add x8, x22, :lo12:.LANCHOR0 + and x1, x9, 255 + and w6, w4, 255 + lsr w5, w4, 8 + lsr w3, w4, 16 + ldrb w0, [x8, 1176] + ldrb w2, [x8, 1204] cmp w0, 1 - bne .L2259 - add x5, x24, x5, lsl 8 + bne .L2308 + add x1, x7, x1, lsl 8 mov w0, 6 - b .L2287 -.L2259: - ldr x0, [x7,1144] - add x5, x24, x5, lsl 8 - ldrb w0, [x0,12] - cmp w0, 3 - bne .L2262 - mov w0, 5 -.L2287: - str w0, [x5,2056] - str wzr, [x5,2052] - str wzr, [x5,2052] - str w6, [x5,2052] - str w4, [x5,2052] - str w3, [x5,2052] - cbz w2, .L2283 - lsr w0, w19, 24 - str w0, [x5,2052] - b .L2283 -.L2262: - str wzr, [x5,2056] - str wzr, [x5,2052] - str wzr, [x5,2052] - str w6, [x5,2052] - str w4, [x5,2052] - str w3, [x5,2052] - cbz w2, .L2264 - lsr w0, w19, 24 - str w0, [x5,2052] -.L2264: - mov w0, 5 - str w0, [x5,2056] - str wzr, [x5,2052] - str wzr, [x5,2052] -.L2283: +.L2334: + str w0, [x1, 2056] + str wzr, [x1, 2052] + str wzr, [x1, 2052] + str w6, [x1, 2052] + str w5, [x1, 2052] + str w3, [x1, 2052] + cbz w2, .L2330 + lsr w0, w4, 24 + str w0, [x1, 2052] +.L2330: + add x22, x22, :lo12:.LANCHOR0 mov w0, 224 - str w0, [x5,2056] - cbz w25, .L2265 - add x23, x23, :lo12:.LANCHOR0 - ldr x0, [x23,1144] - ldrb w0, [x0,12] + str w0, [x1, 2056] + ldr x0, [x22, 1144] + ldrb w0, [x0, 12] cmp w0, 3 - bne .L2265 - ldrb w0, [x23,1268] - cbnz w0, .L2265 - ldrb w0, [x23,1269] - cbnz w0, .L2265 - sub w1, w25, #1 - add w0, w19, w19, lsl 1 - add w0, w1, w0 - b .L2284 -.L2265: - mov w0, w19 -.L2284: + bne .L2314 + cbz w24, .L2314 + ldrb w0, [x22, 1212] + cbnz w0, .L2314 + ldrb w0, [x22, 1213] + cbnz w0, .L2314 + add w4, w4, w4, lsl 1 + sub w0, w24, #1 + add w0, w4, w0 +.L2331: bl nandc_set_seed - adrp x2, .LANCHOR2+17 - mov w1, 0 - mov x3, x22 + adrp x0, .LANCHOR2+17 mov x4, x21 - mov w0, w20 - ldrb w2, [x2,#:lo12:.LANCHOR2+17] + mov x3, x20 + mov w1, 0 + ldrb w2, [x0, #:lo12:.LANCHOR2+17] + mov w0, w9 bl nandc_xfer - mov w19, w0 - mov w0, w20 - bl nandc_de_cs - mov w0, w19 -.L2257: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldr x25, [sp,64] - ldp x29, x30, [sp], 80 + mov w2, w0 + bl nandc_de_cs.constprop.35 + mov w0, w2 +.L2304: + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x29, x30, [sp], 64 ret +.L2308: + ldr x0, [x8, 1144] + add x1, x7, x1, lsl 8 + ldrb w0, [x0, 12] + cmp w0, 3 + bne .L2311 + mov w0, 5 + b .L2334 +.L2311: + str wzr, [x1, 2056] + str wzr, [x1, 2052] + str wzr, [x1, 2052] + str w6, [x1, 2052] + str w5, [x1, 2052] + str w3, [x1, 2052] + cbz w2, .L2313 + lsr w0, w4, 24 + str w0, [x1, 2052] +.L2313: + mov w0, 5 + str w0, [x1, 2056] + str wzr, [x1, 2052] + str wzr, [x1, 2052] + b .L2330 +.L2314: + mov w0, w4 + b .L2331 +.L2316: + mov w0, -1 + b .L2304 .size flash_complete_plane_page_read, .-flash_complete_plane_page_read .align 2 .global flash_complete_page_read .type flash_complete_page_read, %function flash_complete_page_read: stp x29, x30, [sp, -112]! - mov w5, 1 add x29, sp, 0 - stp x23, x24, [sp,48] - adrp x24, .LANCHOR0 + stp x23, x24, [sp, 48] mov x23, x2 - stp x21, x22, [sp,32] - mov x22, x1 - add x1, x24, :lo12:.LANCHOR0 - stp x19, x20, [sp,16] - stp x25, x26, [sp,64] - stp x27, x28, [sp,80] + adrp x24, .LANCHOR0 + add x2, x24, :lo12:.LANCHOR0 + stp x21, x22, [sp, 32] mov w21, w0 - mov w0, 24 - ldrb w2, [x1,1257] + stp x19, x20, [sp, 16] + mov w0, 1 + stp x25, x26, [sp, 64] + mov x22, x1 + stp x27, x28, [sp, 80] + mov w1, 24 ubfx x25, x21, 24, 2 - sub w0, w0, w2 - lsl w19, w5, w0 - lsl w5, w5, w2 - lsr w20, w21, w0 - sub w5, w5, #1 - and w20, w20, w5 - ldrb w0, [x1,1153] + ldrb w20, [x2, 1205] + sub w1, w1, w20 + lsl w20, w0, w20 + sub w20, w20, #1 + lsl w19, w0, w1 + ldrb w0, [x2, 1153] + lsr w1, w21, w1 + and w20, w20, w1 sub w19, w19, #1 - uxtb w20, w20 + and w20, w20, 255 and w19, w19, w21 cmp w0, w20 - bhi .L2289 + bhi .L2336 adrp x1, .LANCHOR4 - adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 + add x1, x1, 432 mov w2, 1232 - add x1, x1, 416 + adrp x0, .LC0 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L2289: +.L2336: add x0, x24, :lo12:.LANCHOR0 add x20, x0, w20, sxtw - ldrb w26, [x20,1248] - ldr x27, [x0,1048] + ldr x4, [x0, 1056] + ldrb w26, [x20, 1196] mov w0, w26 bl nandc_cs - cbnz w25, .L2290 + cbnz w25, .L2337 mov w0, w19 bl slc_phy_page_address_calc mov w19, w0 -.L2290: +.L2337: adrp x20, .LANCHOR2 add x0, x20, :lo12:.LANCHOR2 - ldrb w0, [x0,20] + ldrb w0, [x0, 20] cmp w0, 3 - bne .L2291 + bne .L2338 ubfiz x0, x26, 8, 8 - add x1, x27, x0 - mov w0, 5 - str w0, [x1,2056] - and w0, w19, 255 - str wzr, [x1,2052] - str wzr, [x1,2052] - str w0, [x1,2052] - lsr w0, w19, 8 - str w0, [x1,2052] - lsr w0, w19, 16 - str w0, [x1,2052] - mov w0, 224 - str w0, [x1,2056] -.L2291: - cbz w25, .L2292 + mov w1, 5 + add x0, x4, x0 + str w1, [x0, 2056] + and w1, w19, 255 + str wzr, [x0, 2052] + str wzr, [x0, 2052] + str w1, [x0, 2052] + lsr w1, w19, 8 + str w1, [x0, 2052] + lsr w1, w19, 16 + str w1, [x0, 2052] + mov w1, 224 + str w1, [x0, 2056] +.L2338: add x0, x24, :lo12:.LANCHOR0 - ldr x1, [x0,1144] - ldrb w1, [x1,12] + ldr x1, [x0, 1144] + ldrb w1, [x1, 12] cmp w1, 3 - bne .L2292 - ldrb w1, [x0,1268] - cbnz w1, .L2292 - ldrb w0, [x0,1269] - cbnz w0, .L2292 + bne .L2339 + cbz w25, .L2339 + ldrb w1, [x0, 1212] + cbnz w1, .L2339 + ldrb w0, [x0, 1213] + cbnz w0, .L2339 sub w0, w25, #1 add w1, w19, w19, lsl 1 add w0, w0, w1 - b .L2324 -.L2292: - mov w0, w19 -.L2324: +.L2366: add x27, x20, :lo12:.LANCHOR2 bl nandc_set_seed - mov w0, w26 - mov w1, 0 - mov x3, x22 mov x4, x23 - ldrb w2, [x27,17] + mov x3, x22 + mov w1, 0 + mov w0, w26 + ldrb w2, [x27, 17] add x27, x27, 8 bl nandc_xfer cmn w0, #1 - bne .L2294 + bne .L2341 add x28, x24, :lo12:.LANCHOR0 - ldrb w5, [x28,1240] - cbz w5, .L2295 - ldrb w4, [x27,9] - mov w0, w26 - orr w1, w19, w25, lsl 24 - mov x2, x22 + ldrb w5, [x28, 1252] + cbz w5, .L2342 + ldrb w4, [x27, 9] mov x3, x23 - str x5, [x29,104] - strb wzr, [x28,1240] + str w5, [x29, 108] + mov x2, x22 + strb wzr, [x28, 1252] + orr w1, w19, w25, lsl 24 + mov w0, w26 bl flash_read_page - ldr x5, [x29,104] - strb w5, [x28,1240] - cbnz w25, .L2296 -.L2303: - ldrb w2, [x24,#:lo12:.LANCHOR0] + ldr w5, [x29, 108] + strb w5, [x28, 1252] + cbnz w25, .L2343 +.L2348: + ldrb w2, [x24, #:lo12:.LANCHOR0] add x1, x24, :lo12:.LANCHOR0 - cbz w2, .L2296 - ldrb w1, [x1,1244] + cbz w2, .L2343 + ldrb w1, [x1, 1249] add w1, w1, w1, lsl 1 cmp w0, w1, lsr 2 - blt .L2296 + blt .L2343 add x20, x20, :lo12:.LANCHOR2 - ldrb w1, [x20,27] + ldrb w1, [x20, 27] sub w1, w1, #4 - uxtb w1, w1 + and w1, w1, 255 cmp w1, 4 mov w1, 256 csel w0, w0, w1, hi - b .L2311 -.L2296: - cmn w0, #1 - bne .L2311 -.L2304: - adrp x0, .LANCHOR5+328 - ldr x5, [x0,#:lo12:.LANCHOR5+328] - cbnz x5, .L2299 -.L2302: - add x24, x24, :lo12:.LANCHOR0 - adrp x0, .LC172 - add x0, x0, :lo12:.LC172 - mov w1, 0 - mov w2, w21 - mov w3, -1 - ldrb w4, [x24,1240] - bl printk - ldrb w0, [x24,1192] - cbnz w0, .L2300 - mov w0, -1 - b .L2311 -.L2299: - add x4, x20, :lo12:.LANCHOR2 - mov w0, w26 - orr w1, w19, w25, lsl 24 - mov x2, x22 - mov x3, x23 - ldrb w4, [x4,17] - blr x5 - cmn w0, #1 - bne .L2311 - b .L2302 -.L2300: - add x20, x20, :lo12:.LANCHOR2 - mov w0, w26 - orr w1, w19, w25, lsl 24 - mov x2, x22 - mov x3, x23 - ldrb w4, [x20,17] - bl flash_ddr_tuning_read - b .L2311 -.L2294: - cbz w25, .L2303 - b .L2311 -.L2295: - cbz w25, .L2303 - b .L2304 -.L2311: - 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] +.L2335: + 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 +.L2339: + mov w0, w19 + b .L2366 +.L2343: + cmn w0, #1 + bne .L2335 +.L2349: + adrp x0, .LANCHOR5+336 + ldr x5, [x0, #:lo12:.LANCHOR5+336] + cbnz x5, .L2345 +.L2347: + add x24, x24, :lo12:.LANCHOR0 + mov w3, -1 + mov w2, w21 + mov w1, 0 + adrp x0, .LC172 + add x0, x0, :lo12:.LC172 + ldrb w4, [x24, 1252] + bl printk + ldrb w0, [x24, 1192] + cbnz w0, .L2346 + mov w0, -1 + b .L2335 +.L2345: + add x0, x20, :lo12:.LANCHOR2 + mov x3, x23 + mov x2, x22 + orr w1, w19, w25, lsl 24 + ldrb w4, [x0, 17] + mov w0, w26 + blr x5 + cmn w0, #1 + bne .L2335 + b .L2347 +.L2346: + add x20, x20, :lo12:.LANCHOR2 + mov x3, x23 + mov x2, x22 + orr w1, w19, w25, lsl 24 + mov w0, w26 + ldrb w4, [x20, 17] + bl flash_ddr_tuning_read + b .L2335 +.L2342: + cbz w25, .L2348 + b .L2349 +.L2341: + cbnz w25, .L2335 + b .L2348 .size flash_complete_page_read, .-flash_complete_page_read .align 2 .type queue_wait_first_req_completed, %function queue_wait_first_req_completed: stp x29, x30, [sp, -96]! add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] adrp x19, .LANCHOR0 - add x0, x19, :lo12:.LANCHOR0 - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] - stp x27, x28, [sp,80] - ldrb w22, [x0,3363] - cmp w22, 255 - beq .L2413 - add x0, x0, 1312 - mov w20, 0 - add x0, x0, x22, lsl 6 - ldrb w1, [x0,58] - ldr w25, [x0,40] - sub w2, w1, #1 - cmp w2, 10 - bhi .L2327 - adrp x0, .L2329 - add x0, x0, :lo12:.L2329 - ldrh w0, [x0,w2,uxtw #1] - adr x2, .Lrtx2329 - add x0, x2, w0, sxth #2 - br x0 -.Lrtx2329: + add x1, x19, :lo12:.LANCHOR0 + stp x21, x22, [sp, 32] + stp x23, x24, [sp, 48] + stp x25, x26, [sp, 64] + str x27, [sp, 80] + ldrb w0, [x1, 3354] + cmp w0, 255 + bne .L2368 +.L2401: + mov w21, 0 + b .L2367 +.L2368: + add x1, x1, 1304 + sxtw x20, w0 + add x1, x1, x20, lsl 6 + ldrb w2, [x1, 58] + ldr w21, [x1, 40] + sub w3, w2, #1 + cmp w3, 10 + bhi .L2401 + adrp x1, .L2371 + add x1, x1, :lo12:.L2371 + ldrh w1, [x1,w3,uxtw #1] + adr x3, .Lrtx2371 + add x1, x3, w1, sxth #2 + br x1 +.Lrtx2371: .section .rodata .align 0 .align 2 -.L2329: - .2byte (.L2328 - .Lrtx2329) / 4 - .2byte (.L2330 - .Lrtx2329) / 4 - .2byte (.L2331 - .Lrtx2329) / 4 - .2byte (.L2331 - .Lrtx2329) / 4 - .2byte (.L2331 - .Lrtx2329) / 4 - .2byte (.L2331 - .Lrtx2329) / 4 - .2byte (.L2332 - .Lrtx2329) / 4 - .2byte (.L2333 - .Lrtx2329) / 4 - .2byte (.L2334 - .Lrtx2329) / 4 - .2byte (.L2331 - .Lrtx2329) / 4 - .2byte (.L2334 - .Lrtx2329) / 4 +.L2371: + .2byte (.L2370 - .Lrtx2371) / 4 + .2byte (.L2372 - .Lrtx2371) / 4 + .2byte (.L2373 - .Lrtx2371) / 4 + .2byte (.L2373 - .Lrtx2371) / 4 + .2byte (.L2373 - .Lrtx2371) / 4 + .2byte (.L2373 - .Lrtx2371) / 4 + .2byte (.L2374 - .Lrtx2371) / 4 + .2byte (.L2375 - .Lrtx2371) / 4 + .2byte (.L2376 - .Lrtx2371) / 4 + .2byte (.L2373 - .Lrtx2371) / 4 + .2byte (.L2376 - .Lrtx2371) / 4 .text -.L2328: +.L2370: bl nandc_wait_flash_ready - add x3, x19, :lo12:.LANCHOR0 - add x0, x3, 1312 - add x0, x0, x22, lsl 6 - ldr x2, [x0,16] - ldr x1, [x0,8] - cbz x2, .L2335 - ldrb w4, [x0,56] - ldrb w0, [x3,3360] - cmp w4, w0 - csel x1, x1, x2, ne -.L2335: - add x19, x19, :lo12:.LANCHOR0 - mov w0, w25 - add x19, x19, 1312 - add x19, x19, x22, lsl 6 - ldr x2, [x19,24] - bl flash_complete_page_read - str w0, [x19,52] - mov w0, 13 - strb w0, [x19,58] - b .L2414 -.L2330: - bl nandc_wait_flash_ready - add x2, x19, :lo12:.LANCHOR0 - lsl x3, x22, 6 - add x0, x2, 1312 - add x1, x0, x3 - ldrb w20, [x0,x3] - ldr x27, [x1,8] + add x0, x19, :lo12:.LANCHOR0 + add x0, x0, 1304 add x0, x0, x20, lsl 6 - ldr x24, [x0,8] - ldr x0, [x1,16] - cbz x0, .L2336 - ldrb w3, [x1,56] - ldrb w1, [x2,3360] - cmp w3, w1 - csel x27, x27, x0, ne -.L2336: - add x2, x19, :lo12:.LANCHOR0 - add x0, x2, 1312 - add x0, x0, x20, lsl 6 - ldr x1, [x0,16] - cbz x1, .L2337 - ldrb w3, [x0,56] - ldrb w0, [x2,3360] + ldp x1, x2, [x0, 8] + cbz x2, .L2377 + ldrb w3, [x0, 56] + adrp x0, .LANCHOR3+1946 + ldrb w0, [x0, #:lo12:.LANCHOR3+1946] cmp w3, w0 - csel x24, x24, x1, ne -.L2337: - add x21, x19, :lo12:.LANCHOR0 - mov x1, x27 - add x21, x21, 1312 - add x26, x21, x22, lsl 6 - add x21, x21, x20, lsl 6 - add x28, x26, 32 - add x26, x26, 16 - ldr x2, [x26,8] - ldr w0, [x26,24] + csel x1, x1, x2, ne +.L2377: + add x19, x19, :lo12:.LANCHOR0 + mov w0, w21 + add x19, x19, 1304 + add x20, x19, x20, lsl 6 + ldr x2, [x20, 24] + bl flash_complete_page_read + str w0, [x20, 52] + mov w0, 13 + strb w0, [x20, 58] + ldrb w0, [x20, 2] + orr w0, w0, 8 + strb w0, [x20, 2] + b .L2401 +.L2372: + bl nandc_wait_flash_ready + add x0, x19, :lo12:.LANCHOR0 + lsl x2, x20, 6 + add x0, x0, 1304 + add x1, x0, x2 + ldrb w21, [x0, x2] + add x0, x0, x21, lsl 6 + ldr x23, [x0, 8] + ldp x26, x0, [x1, 8] + cbz x0, .L2378 + ldrb w2, [x1, 56] + adrp x1, .LANCHOR3+1946 + ldrb w1, [x1, #:lo12:.LANCHOR3+1946] + cmp w2, w1 + csel x26, x26, x0, ne +.L2378: + add x0, x19, :lo12:.LANCHOR0 + add x0, x0, 1304 + add x0, x0, x21, lsl 6 + ldr x1, [x0, 16] + cbz x1, .L2379 + ldrb w2, [x0, 56] + adrp x0, .LANCHOR3+1946 + ldrb w0, [x0, #:lo12:.LANCHOR3+1946] + cmp w2, w0 + csel x23, x23, x1, ne +.L2379: + add x24, x19, :lo12:.LANCHOR0 + mov x1, x26 + add x24, x24, 1304 + add x27, x24, x20, lsl 6 + add x24, x24, x21, lsl 6 + ldr x2, [x27, 24] + ldr w0, [x27, 40] bl flash_complete_plane_page_read - mov w23, w0 - ldr x2, [x21,24] - mov x1, x24 - ldr w0, [x21,40] + mov w22, w0 + ldr x2, [x24, 24] + mov x1, x23 + ldr w0, [x24, 40] bl flash_complete_plane_page_read mov w25, w0 - cmn w23, #1 - beq .L2338 - ldr w0, [x28,4] + cmn w22, #1 + beq .L2380 + ldr w0, [x27, 36] cmn w0, #1 - beq .L2339 - ldr x1, [x26,8] - ldr w1, [x1,4] + beq .L2381 + ldr x1, [x27, 24] + ldr w1, [x1, 4] cmp w0, w1 - beq .L2339 -.L2338: - add x4, x19, :lo12:.LANCHOR0 - mov w0, 1 - add x21, x4, 1312 - mov w3, 24 - add x21, x21, x22, lsl 6 - ldrb w2, [x4,1257] - add x26, x21, 32 - ldrb w4, [x4,3360] - add x21, x21, 16 - ldr w1, [x21,24] - lsl w0, w0, w2 - sub w3, w3, w2 - sub w0, w0, #1 - lsr w2, w1, w3 - lsl w3, w0, w3 - bic w1, w1, w3 - ldr x3, [x21,8] - and w0, w0, w2 - mov x2, x27 + beq .L2381 +.L2380: + add x0, x19, :lo12:.LANCHOR0 + mov w5, 1 + add x24, x0, 1304 + add x24, x24, x20, lsl 6 + ldrb w2, [x0, 1205] + mov w0, 24 + sub w0, w0, w2 + ldr x3, [x24, 24] + lsl w5, w5, w2 + adrp x2, .LANCHOR3+1946 + sub w5, w5, #1 + ldr w1, [x24, 40] + ldrb w4, [x2, #:lo12:.LANCHOR3+1946] + mov x2, x26 + lsl w6, w5, w0 + lsr w0, w1, w0 + bic w1, w1, w6 + and w0, w0, w5 bl flash_read_page_en - mov w23, w0 - ldr w2, [x26,4] + mov w22, w0 + ldr w2, [x24, 36] cmn w2, #1 - beq .L2340 - ldr x3, [x21,8] - ldr w4, [x3,4] + beq .L2382 + ldr x0, [x24, 24] + ldr w4, [x0, 4] cmp w2, w4 - beq .L2340 - adrp x0, .LANCHOR2 - ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 6, .L2340 + beq .L2382 + adrp x1, .LANCHOR2 + ldr w1, [x1, #:lo12:.LANCHOR2] + tbz x1, 6, .L2382 + ldr w3, [x0] adrp x0, .LC173 - ldr w1, [x26,8] - ldr w3, [x3] + ldr w1, [x24, 40] add x0, x0, :lo12:.LC173 bl printk -.L2340: +.L2382: add x0, x19, :lo12:.LANCHOR0 - add x0, x0, 1312 - add x0, x0, x22, lsl 6 - ldr w1, [x0,36] - cmn w1, #1 - beq .L2339 - ldr x0, [x0,24] - ldr w0, [x0,4] - cmp w1, w0 - beq .L2339 - adrp x1, .LANCHOR4 - adrp x0, .LC0 - add x1, x1, :lo12:.LANCHOR4 - mov w2, 431 - add x1, x1, 448 - add x0, x0, :lo12:.LC0 - bl printk - bl dump_stack -.L2339: - add x3, x19, :lo12:.LANCHOR0 - mov w1, 13 - add x3, x3, 1312 - cmn w25, #1 - add x22, x3, x22, lsl 6 - ldrb w0, [x22,2] - str w23, [x22,52] - orr w0, w0, 8 - strb w1, [x22,58] - strb w0, [x22,2] - beq .L2341 - add x3, x3, x20, lsl 6 - ldr w0, [x3,36] - cmn w0, #1 - beq .L2343 - ldr x1, [x3,24] - ldr w1, [x1,4] - cmp w0, w1 - beq .L2343 -.L2341: - add x4, x19, :lo12:.LANCHOR0 - mov w2, 24 - add x21, x4, 1312 - mov w0, 1 - add x21, x21, x20, lsl 6 - ldrb w3, [x4,1257] - add x22, x21, 32 - ldrb w4, [x4,3360] - add x21, x21, 16 - ldr w1, [x21,24] - sub w2, w2, w3 - lsl w0, w0, w3 - sub w0, w0, #1 - lsr w3, w1, w2 - lsl w2, w0, w2 - and w0, w0, w3 - ldr x3, [x21,8] - bic w1, w1, w2 - mov x2, x24 - bl flash_read_page_en - ldr w2, [x22,4] - cmn w2, #1 - beq .L2345 - ldr x3, [x21,8] - ldr w4, [x3,4] - cmp w2, w4 - beq .L2345 - adrp x0, .LANCHOR2 - ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 6, .L2345 - adrp x0, .LC173 - ldr w1, [x22,8] - ldr w3, [x3] - add x0, x0, :lo12:.LC173 - bl printk -.L2345: - add x0, x19, :lo12:.LANCHOR0 - add x0, x0, 1312 + add x0, x0, 1304 add x0, x0, x20, lsl 6 - ldr w1, [x0,36] + ldr w1, [x0, 36] cmn w1, #1 - beq .L2343 - ldr x0, [x0,24] - ldr w0, [x0,4] + beq .L2381 + ldr x0, [x0, 24] + ldr w0, [x0, 4] cmp w1, w0 - beq .L2343 + beq .L2381 adrp x1, .LANCHOR4 - adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 - mov w2, 450 - add x1, x1, 448 + add x1, x1, 464 + mov w2, 431 + adrp x0, .LC0 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L2343: - add x19, x19, :lo12:.LANCHOR0 +.L2381: + add x0, x19, :lo12:.LANCHOR0 mov w1, 13 - add x19, x19, 1312 - add x19, x19, x20, lsl 6 - str w23, [x19,52] - strb w1, [x19,58] -.L2414: - ldrb w0, [x19,2] + add x0, x0, 1304 + cmn w25, #1 + add x20, x0, x20, lsl 6 + strb w1, [x20, 58] + ldrb w1, [x20, 2] + str w22, [x20, 52] + orr w1, w1, 8 + strb w1, [x20, 2] + beq .L2383 + add x0, x0, x21, lsl 6 + ldr w1, [x0, 36] + cmn w1, #1 + beq .L2385 + ldr x0, [x0, 24] + ldr w0, [x0, 4] + cmp w1, w0 + beq .L2385 +.L2383: + add x0, x19, :lo12:.LANCHOR0 + mov w5, 1 + add x20, x0, 1304 + add x20, x20, x21, lsl 6 + ldrb w2, [x0, 1205] + mov w0, 24 + sub w0, w0, w2 + ldr x3, [x20, 24] + lsl w5, w5, w2 + adrp x2, .LANCHOR3+1946 + sub w5, w5, #1 + ldr w1, [x20, 40] + ldrb w4, [x2, #:lo12:.LANCHOR3+1946] + mov x2, x23 + lsl w6, w5, w0 + lsr w0, w1, w0 + bic w1, w1, w6 + and w0, w0, w5 + bl flash_read_page_en + ldr w2, [x20, 36] + cmn w2, #1 + beq .L2387 + ldr x0, [x20, 24] + ldr w4, [x0, 4] + cmp w2, w4 + beq .L2387 + adrp x1, .LANCHOR2 + ldr w1, [x1, #:lo12:.LANCHOR2] + tbz x1, 6, .L2387 + ldr w3, [x0] + adrp x0, .LC173 + ldr w1, [x20, 40] + add x0, x0, :lo12:.LC173 + bl printk +.L2387: + add x0, x19, :lo12:.LANCHOR0 + add x0, x0, 1304 + add x0, x0, x21, lsl 6 + ldr w1, [x0, 36] + cmn w1, #1 + beq .L2385 + ldr x0, [x0, 24] + ldr w0, [x0, 4] + cmp w1, w0 + beq .L2385 + adrp x1, .LANCHOR4 + add x1, x1, :lo12:.LANCHOR4 + add x1, x1, 464 + mov w2, 450 + adrp x0, .LC0 + add x0, x0, :lo12:.LC0 + bl printk + bl dump_stack +.L2385: + add x19, x19, :lo12:.LANCHOR0 + mov w0, 13 + add x19, x19, 1304 + add x21, x19, x21, lsl 6 + strb w0, [x21, 58] + ldrb w0, [x21, 2] + str w22, [x21, 52] orr w0, w0, 8 - strb w0, [x19,2] - b .L2413 -.L2331: + strb w0, [x21, 2] + b .L2401 +.L2373: bl nandc_iqr_wait_flash_ready - mov w0, w25 + mov w0, w21 mov w1, 64 bl flash_wait_device_ready mov w21, w0 - tbz x21, 6, .L2413 - mov w20, 5 - ands w20, w21, w20 - beq .L2347 + tbz x21, 6, .L2401 + mov w0, 5 + tst w21, w0 + beq .L2389 add x19, x19, :lo12:.LANCHOR0 mov w0, 12 - add x19, x19, 1312 - mov w2, w21 - add x19, x19, x22, lsl 6 + add x19, x19, 1304 mov w4, 12 - mov w20, w21 - strb w0, [x19,58] + add x20, x19, x20, lsl 6 + mov w2, w21 + ldrb w1, [x20, 1] + ldr w3, [x20, 40] + strb w0, [x20, 58] adrp x0, .LC174 - ldrb w1, [x19,1] add x0, x0, :lo12:.LC174 - ldr w3, [x19,40] bl printk +.L2459: mov w0, -1 - str w0, [x19,52] - b .L2327 -.L2347: - add x4, x19, :lo12:.LANCHOR0 + str w0, [x20, 52] + b .L2367 +.L2389: + add x0, x19, :lo12:.LANCHOR0 mov w1, 13 - add x23, x4, 1312 - add x23, x23, x22, lsl 6 - strb w1, [x23,58] - ldr x1, [x4,3392] - str w20, [x23,52] - ldr w2, [x1,156] + add x21, x0, 1304 + add x21, x21, x20, lsl 6 + strb w1, [x21, 58] + ldr x1, [x0, 3384] + str wzr, [x21, 52] + ldr w2, [x1, 156] mov w1, 20041 movk w1, 0x444b, lsl 16 cmp w2, w1 - bne .L2413 - ldrh w0, [x23,50] - cbnz w0, .L2413 - ldrb w3, [x4,1257] - mov w0, 1 - adrp x21, .LANCHOR5 - ldr w1, [x23,40] - lsl w0, w0, w3 - add x21, x21, :lo12:.LANCHOR5 - mov w2, 24 - sub w0, w0, #1 - sub w2, w2, w3 - ldrb w4, [x4,3360] - lsr w3, w1, w2 - lsl w2, w0, w2 - bic w1, w1, w2 - and w0, w0, w3 - ldr x2, [x21,336] - ldr x3, [x21,344] + bne .L2401 + ldrh w1, [x21, 50] + cbnz w1, .L2401 + ldrb w2, [x0, 1205] + mov w5, 1 + adrp x22, .LANCHOR5 + add x22, x22, :lo12:.LANCHOR5 + mov w0, 24 + sub w0, w0, w2 + lsl w5, w5, w2 + adrp x2, .LANCHOR3+1946 + sub w5, w5, #1 + ldr w1, [x21, 40] + ldrb w4, [x2, #:lo12:.LANCHOR3+1946] + ldp x3, x2, [x22, 344] + lsl w6, w5, w0 + lsr w0, w1, w0 + bic w1, w1, w6 + and w0, w0, w5 bl flash_read_page_en cmn w0, #1 - mov w3, w0 - beq .L2348 - ldr x1, [x23,24] - ldr x0, [x21,344] + beq .L2390 + ldr x2, [x21, 24] + ldr x1, [x22, 344] + ldr w2, [x2] ldr w1, [x1] - ldr w0, [x0] - cmp w1, w0 - beq .L2413 -.L2348: - add x4, x19, :lo12:.LANCHOR0 + cmp w2, w1 + beq .L2401 +.L2390: + add x19, x19, :lo12:.LANCHOR0 + mov w3, w0 + add x1, x19, 1304 adrp x0, .LC175 - add x19, x4, 1312 + add x20, x1, x20, lsl 6 add x0, x0, :lo12:.LC175 - add x19, x19, x22, lsl 6 - ldrb w4, [x4,1240] - ldrb w1, [x19,1] - ldr w2, [x19,40] + ldrb w4, [x19, 1252] + ldrb w1, [x20, 1] + ldr w2, [x20, 40] bl printk mov w0, -1 - str w0, [x19,52] - b .L2327 -.L2334: - add x24, x19, :lo12:.LANCHOR0 - cmp w1, 11 - mov w0, 3 + str w0, [x20, 52] + b .L2401 +.L2376: + cmp w2, 11 + mov w1, 3 mov w5, 10 - csel w5, w0, w5, ne + csel w5, w5, w1, eq + add x1, x19, :lo12:.LANCHOR0 mov w4, 24 - ldrb w1, [x24,1257] - mov w0, 1 - add x21, x24, 1312 - sub w4, w4, w1 - lsl w0, w0, w1 - sub w0, w0, #1 - lsr w2, w25, w4 - and w2, w0, w2 - add x3, x21, x22, lsl 6 - uxth w2, w2 -.L2350: - ldrb w1, [x3] + mov w2, 1 + add x22, x1, 1304 + ubfiz x0, x0, 6, 8 + mov x24, x1 + ldrb w3, [x1, 1205] + add x0, x22, x0 + sub w4, w4, w3 + lsl w2, w2, w3 + sub w2, w2, #1 + lsr w3, w21, w4 + and w3, w3, w2 + and w3, w3, 65535 +.L2392: + ldrb w1, [x0] cmp w1, 255 - beq .L2415 + bne .L2399 + mov w21, -1 + b .L2367 +.L2399: sxtw x23, w1 - add x3, x21, x23, lsl 6 - ldrb w1, [x3,58] - cmp w1, w5 - bne .L2350 - ldr w1, [x3,40] + ubfiz x0, x1, 6, 8 + add x1, x22, x23, lsl 6 + add x0, x22, x0 + ldrb w6, [x1, 58] + cmp w6, w5 + bne .L2392 + ldr w1, [x1, 40] lsr w1, w1, w4 - and w1, w0, w1 - cmp w2, w1 - bne .L2350 + and w1, w1, w2 + cmp w3, w1 + bne .L2392 bl nandc_iqr_wait_flash_ready - mov w0, w25 + mov w0, w21 mov w1, 64 bl flash_wait_device_ready - mov w20, w0 - tbz x20, 6, .L2412 - ands w1, w20, 15 - beq .L2354 - add x21, x21, x22, lsl 6 + mov w21, w0 + tbnz x21, 6, .L2394 +.L2458: + mov w21, 0 + b .L2395 +.L2394: + tst x21, 15 + beq .L2396 + add x22, x22, x20, lsl 6 + mov w2, w0 + mov w4, 12 adrp x0, .LC176 add x0, x0, :lo12:.LC176 - mov w2, w20 - mov w4, 12 - ldrb w1, [x21,1] - ldr w3, [x21,40] + ldrb w1, [x22, 1] + ldr w3, [x22, 40] bl printk mov w0, 12 - strb w0, [x21,58] + strb w0, [x22, 58] mov w0, -1 - str w0, [x21,52] - b .L2353 -.L2354: - add x20, x21, x22, lsl 6 - mov w2, 13 - str w1, [x20,52] - ldr x1, [x24,3392] - strb w2, [x20,58] - ldr w2, [x1,156] - mov w1, 20041 - movk w1, 0x444b, lsl 16 - cmp w2, w1 - bne .L2412 - ldrh w0, [x20,50] - cbnz w0, .L2412 - ldrb w3, [x24,1257] - mov w0, 1 - adrp x21, .LANCHOR5 - ldr w1, [x20,40] - lsl w0, w0, w3 - add x21, x21, :lo12:.LANCHOR5 - mov w2, 24 - sub w0, w0, #1 - sub w2, w2, w3 - ldrb w4, [x24,3360] - lsr w3, w1, w2 - lsl w2, w0, w2 - bic w1, w1, w2 - and w0, w0, w3 - ldr x2, [x21,336] - ldr x3, [x21,344] - bl flash_read_page_en - cmn w0, #1 - mov w3, w0 - beq .L2356 - ldr x1, [x20,24] - ldr x0, [x21,344] - ldr w1, [x1] - ldr w0, [x0] - cmp w1, w0 - beq .L2412 -.L2356: - add x4, x19, :lo12:.LANCHOR0 - adrp x0, .LC177 - add x20, x4, 1312 - add x0, x0, :lo12:.LC177 - add x20, x20, x22, lsl 6 - ldrb w4, [x4,1240] - ldrb w1, [x20,1] - ldr w2, [x20,40] - bl printk - mov w0, -1 - str w0, [x20,52] -.L2412: - mov w20, 0 -.L2353: + str w0, [x22, 52] +.L2395: add x1, x19, :lo12:.LANCHOR0 - add x1, x1, 1312 - add x19, x1, x22, lsl 6 + add x1, x1, 1304 + add x20, x1, x20, lsl 6 add x1, x1, x23, lsl 6 - ldrb w0, [x19,58] - strb w0, [x1,58] - ldr w0, [x19,52] - str w0, [x1,52] - b .L2327 -.L2415: - mov w20, -1 - b .L2327 -.L2332: - mov w1, 32 - mov w0, w25 - bl flash_wait_device_ready - tbz x0, 5, .L2413 - ands w20, w0, 15 - add x19, x19, :lo12:.LANCHOR0 - add x19, x19, x22, lsl 6 - beq .L2358 - mov w1, 12 - mov w20, w0 - strb w1, [x19,1370] - mov w1, -1 - str w1, [x19,1364] - b .L2327 -.L2358: - mov w0, 13 - str w20, [x19,1364] - strb w0, [x19,1370] - b .L2327 -.L2333: - mov w1, 64 - mov w0, w25 - bl flash_wait_device_ready - tbz x0, 6, .L2413 - add x19, x19, :lo12:.LANCHOR0 - add x19, x19, x22, lsl 6 - str w0, [x19,1364] - mov w0, 7 - strb w0, [x19,1370] -.L2413: - mov w20, 0 -.L2327: - mov w0, w20 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] + ldrb w0, [x20, 58] + strb w0, [x1, 58] + ldr w0, [x20, 52] + str w0, [x1, 52] +.L2367: + mov w0, w21 + ldr x27, [sp, 80] + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] ldp x29, x30, [sp], 96 ret +.L2396: + add x21, x22, x20, lsl 6 + mov w0, 13 + strb w0, [x21, 58] + ldr x0, [x24, 3384] + str wzr, [x21, 52] + ldr w1, [x0, 156] + mov w0, 20041 + movk w0, 0x444b, lsl 16 + cmp w1, w0 + bne .L2458 + ldrh w0, [x21, 50] + cbnz w0, .L2458 + ldrb w2, [x24, 1205] + mov w5, 1 + adrp x22, .LANCHOR5 + add x22, x22, :lo12:.LANCHOR5 + mov w0, 24 + sub w0, w0, w2 + lsl w5, w5, w2 + adrp x2, .LANCHOR3+1946 + sub w5, w5, #1 + ldr w1, [x21, 40] + ldrb w4, [x2, #:lo12:.LANCHOR3+1946] + ldp x3, x2, [x22, 344] + lsl w6, w5, w0 + lsr w0, w1, w0 + bic w1, w1, w6 + and w0, w0, w5 + bl flash_read_page_en + cmn w0, #1 + beq .L2398 + ldr x2, [x21, 24] + ldr x1, [x22, 344] + ldr w2, [x2] + ldr w1, [x1] + cmp w2, w1 + beq .L2458 +.L2398: + add x1, x19, :lo12:.LANCHOR0 + mov w3, w0 + add x21, x1, 1304 + adrp x0, .LC177 + add x21, x21, x20, lsl 6 + add x0, x0, :lo12:.LC177 + ldrb w4, [x1, 1252] + ldr w2, [x21, 40] + ldrb w1, [x21, 1] + bl printk + mov w0, -1 + str w0, [x21, 52] + b .L2458 +.L2374: + mov w0, w21 + mov w1, 32 + bl flash_wait_device_ready + mov w21, w0 + tbz x21, 5, .L2401 + add x19, x19, :lo12:.LANCHOR0 + tst x21, 15 + add x19, x19, 1304 + add x20, x19, x20, lsl 6 + beq .L2400 + mov w0, 12 + strb w0, [x20, 58] + b .L2459 +.L2400: + mov w0, 13 + str wzr, [x20, 52] + strb w0, [x20, 58] + b .L2401 +.L2375: + mov w1, 64 + mov w0, w21 + bl flash_wait_device_ready + tbz x0, 6, .L2401 + add x19, x19, :lo12:.LANCHOR0 + add x19, x19, 1304 + add x19, x19, x20, lsl 6 + str w0, [x19, 52] + mov w0, 7 + strb w0, [x19, 58] + b .L2401 .size queue_wait_first_req_completed, .-queue_wait_first_req_completed .align 2 .global sblk_prog_page .type sblk_prog_page, %function sblk_prog_page: - stp x29, x30, [sp, -112]! + 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] + stp x19, x20, [sp, 16] mov x19, x0 - uxtb w20, w1 - ldrh w0, [x0,50] - cbz w0, .L2417 + stp x21, x22, [sp, 32] + and w20, w1, 255 + stp x23, x24, [sp, 48] + stp x25, x26, [sp, 64] + stp x27, x28, [sp, 80] + ldrh w0, [x0, 50] + cbz w0, .L2461 adrp x0, .LANCHOR2 - ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 8, .L2417 + ldr w0, [x0, #:lo12:.LANCHOR2] + tbz x0, 8, .L2461 + ldr w1, [x19, 40] adrp x0, .LC178 - ldr w1, [x19,40] - add x0, x0, :lo12:.LC178 mov w2, w20 + add x0, x0, :lo12:.LC178 bl printk -.L2417: - adrp x23, .LANCHOR0 - adrp x25, .LC0 - add x24, x23, :lo12:.LANCHOR0 +.L2461: + adrp x24, .LANCHOR0 + add x25, x24, :lo12:.LANCHOR0 + add x27, x25, 1304 mov w21, 0 - add x27, x24, 1312 - add x25, x25, :lo12:.LC0 -.L2418: - cbz w20, .L2451 + mov w23, 1 +.L2462: + cbnz w20, .L2473 +.L2489: + 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 +.L2473: ldrb w26, [x19] - ldr w22, [x19,40] -.L2419: - mov w0, w22 + ldr w22, [x19, 40] +.L2463: mov w1, 1 + mov w0, w22 bl queue_lun_state - cbz w0, .L2452 + cbnz w0, .L2464 + cmp w20, 1 + beq .L2465 + add x0, x24, :lo12:.LANCHOR0 + ldrb w1, [x0, 1250] + cbz w1, .L2465 + ldrb w1, [x0, 1213] + cbz w1, .L2466 +.L2465: + mov x0, x19 + bl queue_prog_cmd +.L2467: + subs w20, w20, #1 + beq .L2489 + add x19, x24, :lo12:.LANCHOR0 + ubfiz x26, x26, 6, 8 + add x19, x19, 1304 + add x19, x19, x26 + b .L2462 +.L2464: bl queue_wait_first_req_completed bl queue_remove_completed_req - b .L2419 -.L2452: - cmp w20, 1 - beq .L2421 - add x0, x23, :lo12:.LANCHOR0 - ldrb w1, [x0,1305] - cbz w1, .L2421 - ldrb w1, [x0,1269] - cbz w1, .L2422 -.L2421: - mov x0, x19 - bl queue_prog_cmd - b .L2423 -.L2422: - ldrb w1, [x0,1257] - mov w28, 1 - mov w0, 24 - lsl w28, w28, w1 - sub w0, w0, w1 - lsr w0, w22, w0 - sub w28, w28, #1 + b .L2463 +.L2466: + ldrb w0, [x0, 1205] + mov w28, 24 + sub w28, w28, w0 + lsl w0, w23, w0 + sub w0, w0, #1 + lsr w28, w22, w28 and w28, w28, w0 ldrb w0, [x19] + and w28, w28, 65535 cmp w0, 255 - uxth w28, w28 - bne .L2424 + bne .L2468 adrp x1, .LANCHOR4 - mov w2, 697 add x1, x1, :lo12:.LANCHOR4 - mov x0, x25 - add x1, x1, 480 + add x1, x1, 496 + mov w2, 697 + adrp x0, .LC0 + add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L2424: +.L2468: ldrb w0, [x19] - mov w4, 1 - ldrb w1, [x24,1257] + mov w1, 24 add x0, x27, x0, lsl 6 - ldr w2, [x0,40] - mov w0, 24 - sub w0, w0, w1 - lsl w1, w4, w1 - sub w1, w1, #1 - lsr w3, w2, w0 - and w1, w1, w3 - cmp w28, w1, uxth - bne .L2425 - adrp x5, .LANCHOR3 - str x4, [x29,104] - add x5, x5, :lo12:.LANCHOR3 - ldrh w1, [x5,1312] - ldrb w6, [x5,1314] - sub w3, w0, w1 - lsr w5, w22, w1 - lsl w3, w4, w3 - sub w6, w6, #1 - sub w3, w3, #1 - lsl w0, w4, w1 - uxth w7, w6 - lsr w1, w2, w1 - uxth w3, w3 - and w5, w7, w5 - and w1, w7, w1 - and w5, w3, w5 - and w3, w3, w1 + ldr w4, [x0, 40] + ldrb w0, [x25, 1205] + sub w1, w1, w0 + lsl w0, w23, w0 sub w0, w0, #1 - cmp w5, w3 - uxth w0, w0 - beq .L2425 - and w22, w0, w22 + lsr w2, w4, w1 and w0, w0, w2 - cmp w22, w0 - bne .L2425 - cmp w21, w6 - beq .L2425 - ldr w1, [x19,40] + cmp w28, w0, uxth + bne .L2469 + adrp x0, .LANCHOR3 + add x0, x0, :lo12:.LANCHOR3 + ldrh w2, [x0, 1304] + ldrb w3, [x0, 1306] + sub w0, w1, w2 + sub w3, w3, #1 + lsl w1, w23, w2 + lsl w0, w23, w0 + sub w0, w0, #1 + and w0, w0, w3 + sub w1, w1, #1 + and w0, w0, 65535 + lsr w5, w22, w2 + and w1, w1, 65535 + and w5, w0, w5 + lsr w2, w4, w2 + and w0, w0, w2 + and w22, w1, w22 + cmp w5, w0 + and w1, w1, w4 + ccmp w22, w1, 0, ne + bne .L2469 + cmp w21, w3 + beq .L2469 + ldr w1, [x19, 40] mov w0, 17 - ldr x2, [x19,8] + ldr x2, [x19, 8] add w21, w21, 1 - ldr x3, [x19,24] + ldr x3, [x19, 24] bl flash_start_page_prog + strb w23, [x19, 59] mov w0, 9 - ldr x4, [x29,104] - strb w0, [x19,58] + strb w0, [x19, 58] mov w0, -1 - strb w4, [x19,59] - mov x1, x19 strb w0, [x19] - add x0, x24, 3363 + mov x1, x19 + add x0, x25, 3354 bl buf_add_tail - b .L2423 -.L2425: + b .L2467 +.L2469: mov x0, x19 mov w21, 0 bl queue_prog_cmd -.L2423: - subs w20, w20, #1 - beq .L2451 - add x19, x23, :lo12:.LANCHOR0 - sbfiz x26, x26, 6, 32 - add x19, x19, 1312 - add x19, x19, x26 - b .L2418 -.L2451: - mov w0, 0 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 112 - ret + b .L2467 .size sblk_prog_page, .-sblk_prog_page .align 2 .global sblk_wait_write_queue_completed @@ -15432,20 +15345,20 @@ sblk_prog_page: sblk_wait_write_queue_completed: stp x29, x30, [sp, -32]! add x29, sp, 0 - str x19, [sp,16] + str x19, [sp, 16] adrp x19, .LANCHOR0 -.L2454: - add x0, x19, :lo12:.LANCHOR0 - ldrb w0, [x0,3363] + add x19, x19, :lo12:.LANCHOR0 +.L2492: + ldrb w0, [x19, 3354] cmp w0, 255 - beq .L2456 - bl queue_wait_first_req_completed - bl queue_remove_completed_req - b .L2454 -.L2456: - ldr x19, [sp,16] + bne .L2493 + ldr x19, [sp, 16] ldp x29, x30, [sp], 32 ret +.L2493: + bl queue_wait_first_req_completed + bl queue_remove_completed_req + b .L2492 .size sblk_wait_write_queue_completed, .-sblk_wait_write_queue_completed .align 2 .global ftl_flush @@ -15453,29 +15366,29 @@ sblk_wait_write_queue_completed: ftl_flush: stp x29, x30, [sp, -32]! adrp x2, .LANCHOR0 - add x29, sp, 0 add x0, x2, :lo12:.LANCHOR0 - stp x19, x20, [sp,16] + add x29, sp, 0 + stp x19, x20, [sp, 16] mov x19, x2 adrp x20, .LANCHOR5 - ldrb w1, [x0,3389] - cbz w1, .L2458 + ldrb w1, [x0, 3380] + cbz w1, .L2496 add x2, x20, :lo12:.LANCHOR5 - add x0, x0, 1312 - ldrb w2, [x2,352] + add x0, x0, 1304 + ldrb w2, [x2, 360] add x0, x0, x2, lsl 6 bl sblk_prog_page -.L2458: +.L2496: add x2, x19, :lo12:.LANCHOR0 add x20, x20, :lo12:.LANCHOR5 mov w0, -1 - strb wzr, [x2,3389] - strb w0, [x20,352] + strb wzr, [x2, 3380] + strb w0, [x20, 360] bl sblk_wait_write_queue_completed bl ftl_write_completed mov w0, -1 bl ftl_vpn_decrement - ldp x19, x20, [sp,16] + ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 32 ret .size ftl_flush, .-ftl_flush @@ -15483,21 +15396,23 @@ ftl_flush: .global zftl_cache_flush .type zftl_cache_flush, %function zftl_cache_flush: - adrp x0, .LANCHOR0+3389 + adrp x0, .LANCHOR0+3380 + ldrb w0, [x0, #:lo12:.LANCHOR0+3380] + cbz w0, .L2506 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldrb w0, [x0,#:lo12:.LANCHOR0+3389] - cbz w0, .L2462 bl timer_get_time - adrp x1, .LANCHOR5+356 - ldr w1, [x1,#:lo12:.LANCHOR5+356] + adrp x1, .LANCHOR5+364 + ldr w1, [x1, #:lo12:.LANCHOR5+364] add w1, w1, 100 cmp w0, w1 - bls .L2462 + bls .L2501 bl ftl_flush -.L2462: +.L2501: ldp x29, x30, [sp], 16 ret +.L2506: + ret .size zftl_cache_flush, .-zftl_cache_flush .align 2 .global ftl_read_page @@ -15505,20 +15420,24 @@ zftl_cache_flush: ftl_read_page: stp x29, x30, [sp, -64]! add x29, sp, 0 - str x19, [sp,16] - uxtb w19, w0 - str x1, [x29,32] - str x2, [x29,40] - str x3, [x29,48] - str x4, [x29,56] + stp x19, x20, [sp, 16] + and w19, w0, 255 + stp x21, x22, [sp, 32] + mov w20, w1 + mov x21, x2 + mov x22, x3 + str x23, [sp, 48] + mov w23, w4 bl sblk_wait_write_queue_completed - ldr x1, [x29,32] + mov w4, w23 + mov x3, x22 + mov x2, x21 + mov w1, w20 mov w0, w19 - ldr x2, [x29,40] - ldr x3, [x29,48] - ldr x4, [x29,56] bl flash_read_page_en - ldr x19, [sp,16] + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldr x23, [sp, 48] ldp x29, x30, [sp], 64 ret .size ftl_read_page, .-ftl_read_page @@ -15528,32 +15447,33 @@ ftl_read_page: ftl_read_ppa_page: stp x29, x30, [sp, -64]! mov w5, 1 - mov w4, w3 add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] mov w20, w0 - adrp x0, .LANCHOR0+1257 + adrp x0, .LANCHOR0+1205 mov w19, 24 - str x4, [x29,56] - stp x21, x22, [sp,32] - ldrb w0, [x0,#:lo12:.LANCHOR0+1257] - mov x22, x1 - mov x21, x2 + stp x21, x22, [sp, 32] + mov x21, x1 + ldrb w0, [x0, #:lo12:.LANCHOR0+1205] + mov x22, x2 + str x23, [sp, 48] + mov w23, w3 sub w19, w19, w0 lsl w5, w5, w0 sub w5, w5, #1 lsr w19, w20, w19 and w19, w19, w5 + and w19, w19, 255 bl sblk_wait_write_queue_completed - ldr x4, [x29,56] - uxtb w19, w19 + mov w4, w23 + mov x3, x22 + mov x2, x21 mov w1, w20 - mov x2, x22 - mov x3, x21 mov w0, w19 bl flash_read_page_en - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldr x23, [sp, 48] ldp x29, x30, [sp], 64 ret .size ftl_read_ppa_page, .-ftl_read_ppa_page @@ -15563,853 +15483,838 @@ ftl_read_ppa_page: sblk_read_page: stp x29, x30, [sp, -128]! add x29, sp, 0 - stp x25, x26, [sp,64] + stp x21, x22, [sp, 32] + and w21, w1, 255 + stp x25, x26, [sp, 64] adrp x25, .LANCHOR0 - stp x27, x28, [sp,80] - stp x21, x22, [sp,32] add x26, x25, :lo12:.LANCHOR0 - uxtb w21, w1 - adrp x28, .LC0 - add x27, x26, 1312 - stp x19, x20, [sp,16] - stp x23, x24, [sp,48] + stp x19, x20, [sp, 16] + stp x23, x24, [sp, 48] + mov x22, x0 mov x19, x0 - mov x23, x0 mov w20, w21 - add x28, x28, :lo12:.LC0 -.L2469: - cbz w20, .L2492 - ldrb w24, [x19] - ldr w22, [x19,40] -.L2470: - mov w0, w22 - mov w1, 0 - bl queue_lun_state - cbz w0, .L2493 - bl queue_wait_first_req_completed - bl queue_remove_completed_req - b .L2470 -.L2493: - cmp w20, 1 - beq .L2476 - adrp x0, .LANCHOR5+360 - ldrb w0, [x0,#:lo12:.LANCHOR5+360] - cbz w0, .L2476 - add x0, x25, :lo12:.LANCHOR0 - mov w3, 1 - ldrb w1, [x0,1257] - mov w0, 24 - lsl w3, w3, w1 - sub w0, w0, w1 - lsr w0, w22, w0 - sub w3, w3, #1 - and w3, w3, w0 - ldrb w0, [x19] - cmp w0, 255 - uxth w3, w3 - bne .L2475 - adrp x1, .LANCHOR4 - mov w2, 782 - add x1, x1, :lo12:.LANCHOR4 - mov x0, x28 - add x1, x1, 496 - str x3, [x29,120] - bl printk - bl dump_stack - ldr x3, [x29,120] -.L2475: - ldrb w4, [x19] - mov w5, 1 - ldrb w0, [x26,1257] - mov w2, 24 - lsl x4, x4, 6 - add x6, x27, x4 - lsl w5, w5, w0 - sub w0, w2, w0 - sub w5, w5, #1 - ldr w1, [x6,40] - lsr w0, w1, w0 - and w0, w5, w0 - cmp w3, w0, uxth - bne .L2476 - adrp x0, .LANCHOR3+1418 - ldrh w0, [x0,#:lo12:.LANCHOR3+1418] - add w22, w0, w22 - cmp w1, w22 - bne .L2476 - ldr w0, [x19,40] - add x22, x26, 3363 - str x6, [x29,96] - sub w20, w20, #1 - ldrb w24, [x27,x4] - str x4, [x29,104] - bl flash_start_plane_read - mov w3, 2 - mov w2, -1 - strb w3, [x19,58] - mov x0, x22 - strb w2, [x19] - mov x1, x19 - strb wzr, [x19,59] - str x3, [x29,112] - str x2, [x29,120] - bl buf_add_tail - ldr x6, [x29,96] - mov x0, x22 - ldr x4, [x29,104] - ldr x3, [x29,112] - mov x1, x6 - ldr x2, [x29,120] - strb w3, [x6,58] - strb wzr, [x6,59] - strb w2, [x27,x4] - bl buf_add_tail - b .L2474 -.L2476: - mov x0, x19 - bl queue_read_cmd -.L2474: - subs w20, w20, #1 - beq .L2492 - add x19, x25, :lo12:.LANCHOR0 - sbfiz x24, x24, 6, 32 - add x19, x19, 1312 - add x19, x19, x24 - b .L2469 -.L2492: + add x23, x26, 1304 + stp x27, x28, [sp, 80] + adrp x28, .LANCHOR5 +.L2514: + cbnz w20, .L2524 +.L2537: adrp x19, .LANCHOR0 add x19, x19, :lo12:.LANCHOR0 - add x19, x19, 1312 -.L2480: - cbz w21, .L2494 - ldrb w0, [x23,58] - cmp w0, 13 - bne .L2481 - ldrb w0, [x23] - sub w21, w21, #1 - cmp w0, 255 - beq .L2481 - sbfiz x23, x0, 6, 32 - add x23, x19, x23 -.L2481: - bl queue_wait_first_req_completed - bl queue_remove_completed_req - b .L2480 -.L2494: - mov w0, w21 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] + add x19, x19, 1304 +.L2525: + cbnz w21, .L2527 + ldp x19, x20, [sp, 16] + mov w0, 0 + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] + ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 128 ret +.L2524: + ldrb w24, [x19] + ldr w27, [x19, 40] +.L2515: + mov w1, 0 + mov w0, w27 + bl queue_lun_state + cbnz w0, .L2516 + cmp w20, 1 + beq .L2521 + add x0, x28, :lo12:.LANCHOR5 + ldrb w0, [x0, 368] + cbnz w0, .L2518 +.L2521: + mov x0, x19 + bl queue_read_cmd + b .L2519 +.L2516: + bl queue_wait_first_req_completed + bl queue_remove_completed_req + b .L2515 +.L2518: + add x0, x25, :lo12:.LANCHOR0 + mov w3, 24 + ldrb w1, [x0, 1205] + mov w0, 1 + sub w3, w3, w1 + lsl w0, w0, w1 + sub w0, w0, #1 + lsr w3, w27, w3 + and w3, w3, w0 + ldrb w0, [x19] + and w3, w3, 65535 + cmp w0, 255 + bne .L2520 + adrp x1, .LANCHOR4 + add x1, x1, :lo12:.LANCHOR4 + add x1, x1, 512 + mov w2, 782 + str w3, [x29, 124] + adrp x0, .LC0 + add x0, x0, :lo12:.LC0 + bl printk + bl dump_stack + ldr w3, [x29, 124] +.L2520: + ldrb w4, [x19] + mov w0, 24 + ldrb w7, [x26, 1205] + mov w2, 1 + sbfiz x5, x4, 6, 32 + sub w0, w0, w7 + add x6, x23, x5 + lsl w2, w2, w7 + sub w2, w2, #1 + ldr w1, [x6, 40] + lsr w0, w1, w0 + and w0, w0, w2 + cmp w3, w0, uxth + bne .L2521 + adrp x0, .LANCHOR3+1410 + ldrh w0, [x0, #:lo12:.LANCHOR3+1410] + add w27, w0, w27 + cmp w1, w27 + bne .L2521 + ldr w0, [x19, 40] + mov w27, -1 + ldrb w24, [x23, x5] + sub w20, w20, #1 + stp x6, x5, [x29, 104] + str w4, [x29, 120] + bl flash_start_plane_read + strb wzr, [x19, 59] + mov w2, 2 + strb w27, [x19] + strb w2, [x19, 58] + add x0, x26, 3354 + mov x1, x19 + str w2, [x29, 124] + mov x19, x0 + bl buf_add_tail + ldp x6, x5, [x29, 104] + strb wzr, [x6, 59] + ldp w4, w2, [x29, 120] + strb w2, [x6, 58] + strb w27, [x23, x5] + mov x0, x19 + ubfiz x1, x4, 6, 8 + add x1, x23, x1 + bl buf_add_tail +.L2519: + subs w20, w20, #1 + beq .L2537 + add x19, x25, :lo12:.LANCHOR0 + ubfiz x24, x24, 6, 8 + add x19, x19, 1304 + add x19, x19, x24 + b .L2514 +.L2527: + ldrb w0, [x22, 58] + cmp w0, 13 + bne .L2526 + ldrb w0, [x22] + sub w21, w21, #1 + cmp w0, 255 + beq .L2526 + ubfiz x22, x0, 6, 8 + add x22, x19, x22 +.L2526: + bl queue_wait_first_req_completed + bl queue_remove_completed_req + b .L2525 .size sblk_read_page, .-sblk_read_page .align 2 .global gc_check_data_one_wl .type gc_check_data_one_wl, %function gc_check_data_one_wl: - sub sp, sp, #112 - stp x29, x30, [sp,16] + sub sp, sp, #128 + stp x29, x30, [sp, 16] add x29, sp, 16 - stp x19, x20, [sp,32] + stp x19, x20, [sp, 32] adrp x19, .LANCHOR0 add x20, x19, :lo12:.LANCHOR0 - stp x21, x22, [sp,48] - stp x23, x24, [sp,64] - stp x25, x26, [sp,80] - stp x27, x28, [sp,96] - ldr x0, [x20,3432] - ldr x21, [x20,1120] - add x20, x20, 3424 - cbnz x0, .L2496 + stp x21, x22, [sp, 48] + stp x23, x24, [sp, 64] + stp x25, x26, [sp, 80] + stp x27, x28, [sp, 96] + ldr x0, [x20, 3424] + ldr x21, [x20, 1128] + cbnz x0, .L2540 + add x20, x20, 3416 mov w0, 1 bl buf_alloc - str x0, [x20,8] -.L2496: + str x0, [x20, 8] +.L2540: add x0, x19, :lo12:.LANCHOR0 - ldr x20, [x0,3432] - cbnz x20, .L2497 + ldr x22, [x0, 3424] + cbnz x22, .L2541 adrp x1, .LANCHOR4 - adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 + add x1, x1, 528 mov w2, 729 - add x1, x1, 512 + adrp x0, .LC0 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L2497: - mov w24, 0 - add x25, x21, 80 - add x22, x19, :lo12:.LANCHOR0 - adrp x27, .LANCHOR3 - adrp x26, .LANCHOR5 -.L2498: - ldrb w0, [x25,9] - cmp w24, w0 - bge .L2529 - mov w23, 1 - sxtw x28, w24 -.L2509: - add x2, x22, 3424 - ldrh w0, [x2,20] - cmp w23, w0 - bgt .L2530 - add x0, x28, 8 - ldrh w1, [x25,x0,lsl 1] - add x0, x27, :lo12:.LANCHOR3 - ldrh w3, [x0,1418] - ldrb w0, [x0,1328] - cmp w0, 2 - mul w1, w1, w3 - beq .L2499 - ldrb w3, [x22,1268] - cbz w3, .L2500 -.L2499: - ldrh w2, [x22,3440] - sub w2, w2, #1 - add w1, w2, w1 - add w1, w1, w23 - orr w1, w1, w0, lsl 24 - b .L2528 -.L2500: - cmp w0, 3 - bne .L2502 - ldrb w0, [x22,1269] - cbz w0, .L2503 - ldrh w0, [x2,16] - add w0, w0, w0, lsl 1 - sub w0, w0, #1 - add w1, w0, w1 - add w1, w1, w23 - orr w1, w1, 50331648 - b .L2528 -.L2503: - ldrh w0, [x2,16] - add w1, w1, w0 - orr w1, w1, w23, lsl 24 - b .L2528 -.L2502: - ldrh w0, [x2,16] - add w1, w1, w0 -.L2528: - str w1, [x20,40] - mov x0, x20 +.L2541: + add x27, x19, :lo12:.LANCHOR0 + adrp x4, .LANCHOR3 + add x23, x27, 3416 + mov x20, x4 + mov w25, 0 +.L2542: + add x28, x21, 80 + ldrb w0, [x28, 9] + cmp w25, w0 + bge .L2553 + sxtw x26, w25 + mov w24, 1 + add x26, x26, 8 + b .L2554 +.L2552: + add x1, x4, :lo12:.LANCHOR3 + ldrh w0, [x28, x26, lsl 1] + ldrh w2, [x1, 1410] + ldrb w1, [x1, 1320] + cmp w1, 2 + mul w2, w0, w2 + beq .L2543 + ldrb w0, [x27, 1212] + cbz w0, .L2544 +.L2543: + ldrh w0, [x23, 16] + sub w3, w0, #1 + add w0, w24, w2 + add w0, w3, w0 + orr w1, w0, w1, lsl 24 + str w1, [x22, 40] +.L2545: + str x4, [x29, 104] mov w1, 1 + mov x0, x22 bl sblk_read_page - ldr w2, [x20,52] + ldr w2, [x22, 52] + adrp x0, .LANCHOR5 + ldr x4, [x29, 104] cmn w2, #1 - beq .L2504 - add x3, x26, :lo12:.LANCHOR5 - ldrh w0, [x22,3446] - ldr x1, [x20,24] - lsl x0, x0, 2 - ldr x4, [x3,232] - ldr w5, [x4,x0] - ldr w4, [x1,4] - cmp w5, w4 - bne .L2504 - ldr x3, [x3,240] - ldr w3, [x3,x0] - ldr w0, [x1,8] - cmp w3, w0 - beq .L2505 -.L2504: - add x0, x26, :lo12:.LANCHOR5 - ldrh w4, [x22,3446] - lsl x4, x4, 2 - ldr x1, [x0,232] - ldr w3, [x1,x4] + beq .L2548 + add x5, x0, :lo12:.LANCHOR5 + ldrh w1, [x23, 22] + ldr x3, [x22, 24] + ldr x6, [x5, 280] + lsl x1, x1, 2 + ldr w7, [x6, x1] + ldr w6, [x3, 4] + cmp w7, w6 + bne .L2548 + ldr x5, [x5, 288] + ldr w5, [x5, x1] + ldr w1, [x3, 8] + cmp w5, w1 + beq .L2549 +.L2548: + add x0, x0, :lo12:.LANCHOR5 + ldrh w1, [x23, 22] + ldr x3, [x0, 280] + lsl x1, x1, 2 + ldr w3, [x3, x1] cmn w3, #1 - beq .L2505 - adrp x1, .LANCHOR2 - ldr w1, [x1,#:lo12:.LANCHOR2] - tbz x1, 10, .L2506 - ldr x7, [x20,24] - ldr x5, [x0,240] - ldr w0, [x7,12] - str w0, [sp] + beq .L2549 + adrp x4, .LANCHOR2 + ldr w4, [x4, #:lo12:.LANCHOR2] + tbz x4, 10, .L2550 + ldr x4, [x22, 24] + ldr x0, [x0, 288] + ldr w5, [x4, 12] + str w5, [sp] + ldp w5, w6, [x4] + ldr w7, [x4, 8] + ldr w4, [x0, x1] adrp x0, .LC179 + ldr w1, [x22, 40] add x0, x0, :lo12:.LC179 - ldr w4, [x5,x4] - ldr w6, [x7,4] - ldr w5, [x7] - ldr w1, [x20,40] - ldr w7, [x7,8] bl printk -.L2506: +.L2550: add x19, x19, :lo12:.LANCHOR0 - ldrh w1, [x21,80] - mov w21, -1 - ldr x0, [x19,1112] - strh wzr, [x0,x1,lsl 1] - ldr x1, [x19,1120] - ldr w0, [x1,556] + ldrh w1, [x21, 80] + ldr x0, [x19, 1120] + strh wzr, [x0, x1, lsl 1] + ldr x1, [x19, 1128] + ldr w0, [x1, 556] add w0, w0, 1 - str w0, [x1,556] - ldr x0, [x19,3392] - ldr w1, [x0,156] + str w0, [x1, 556] + ldr x0, [x19, 3384] + ldr w1, [x0, 156] mov w0, 20041 movk w0, 0x444b, lsl 16 cmp w1, w0 - bne .L2507 - adrp x0, .LANCHOR3 - add x0, x0, :lo12:.LANCHOR3 - ldrb w1, [x0,1956] - cbnz w1, .L2507 - ldrb w0, [x0,1330] - cbnz w0, .L2507 - ldr w0, [x20,40] + bne .L2557 + add x20, x20, :lo12:.LANCHOR3 + ldrb w0, [x20, 1950] + cbnz w0, .L2557 + ldrb w0, [x20, 1322] + cbnz w0, .L2557 + ldr w0, [x22, 40] bl ftl_mask_bad_block - b .L2507 -.L2505: - ldrh w0, [x22,3446] - add w23, w23, 1 - add w0, w0, 1 - strh w0, [x22,3446] - b .L2509 -.L2530: - add w24, w24, 1 - b .L2498 -.L2529: - add x19, x19, :lo12:.LANCHOR0 - mov w21, 0 - add x19, x19, 3424 - ldrh w0, [x19,16] - add w1, w0, 1 - strh w1, [x19,16] - adrp x1, .LANCHOR3+1330 - ldrb w1, [x1,#:lo12:.LANCHOR3+1330] - cbz w1, .L2507 - add w0, w0, 2 - strh w0, [x19,16] -.L2507: - sub sp, x29, #16 - mov w0, w21 - ldp x19, x20, [sp,32] - ldp x21, x22, [sp,48] - ldp x23, x24, [sp,64] - ldp x25, x26, [sp,80] - ldp x27, x28, [sp,96] - ldp x29, x30, [sp,16] - add sp, sp, 112 +.L2557: + mov w0, -1 +.L2539: + ldp x19, x20, [sp, 32] + ldp x21, x22, [sp, 48] + ldp x23, x24, [sp, 64] + ldp x25, x26, [sp, 80] + ldp x27, x28, [sp, 96] + ldp x29, x30, [sp, 16] + add sp, sp, 128 ret +.L2544: + cmp w1, 3 + ldrh w0, [x23, 16] + bne .L2546 + ldrb w1, [x27, 1213] + cbz w1, .L2547 + add w0, w0, w0, lsl 1 + sub w1, w0, #1 + add w0, w24, w2 + add w0, w1, w0 + orr w0, w0, 50331648 +.L2572: + str w0, [x22, 40] + b .L2545 +.L2547: + add w0, w0, w2 + orr w0, w0, w24, lsl 24 + b .L2572 +.L2546: + add w0, w0, w2 + b .L2572 +.L2549: + ldrh w0, [x23, 22] + add w24, w24, 1 + add w0, w0, 1 + strh w0, [x23, 22] +.L2554: + ldrh w0, [x23, 20] + cmp w24, w0 + ble .L2552 + add w25, w25, 1 + b .L2542 +.L2553: + add x19, x19, :lo12:.LANCHOR0 + add x19, x19, 3416 + ldrh w0, [x19, 16] + add w1, w0, 1 + strh w1, [x19, 16] + adrp x1, .LANCHOR3+1322 + ldrb w1, [x1, #:lo12:.LANCHOR3+1322] + cbz w1, .L2558 + add w0, w0, 2 + strh w0, [x19, 16] +.L2558: +.L2551: + mov w0, 0 + b .L2539 .size gc_check_data_one_wl, .-gc_check_data_one_wl .align 2 .global sblk_tlc_prog_one_page .type sblk_tlc_prog_one_page, %function sblk_tlc_prog_one_page: - stp x29, x30, [sp, -48]! + stp x29, x30, [sp, -32]! add x29, sp, 0 - stp x19, x20, [sp,16] - str x21, [sp,32] - mov x20, x0 + stp x19, x20, [sp, 16] + mov x19, x0 ldr x0, [x0] - ldr w21, [x0,40] -.L2532: - mov w0, w21 + ldr w20, [x0, 40] +.L2574: mov w1, 1 + mov w0, w20 bl queue_lun_state - mov w19, w0 - cbz w0, .L2534 - bl queue_wait_first_req_completed - bl queue_remove_completed_req - b .L2532 -.L2534: - mov x0, x20 + cbnz w0, .L2575 + mov x0, x19 mov w1, 1 bl queue_tlc_prog_cmd - ldr x21, [sp,32] - mov w0, w19 - ldp x19, x20, [sp,16] - ldp x29, x30, [sp], 48 + mov w0, 0 + ldp x19, x20, [sp, 16] + ldp x29, x30, [sp], 32 ret +.L2575: + bl queue_wait_first_req_completed + bl queue_remove_completed_req + b .L2574 .size sblk_tlc_prog_one_page, .-sblk_tlc_prog_one_page .align 2 .global sblk_xlc_prog_pages .type sblk_xlc_prog_pages, %function sblk_xlc_prog_pages: - stp x29, x30, [sp, -96]! + stp x29, x30, [sp, -80]! add x29, sp, 0 - stp x21, x22, [sp,32] - str x27, [sp,80] - mov x21, x0 - stp x19, x20, [sp,16] - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] + stp x19, x20, [sp, 16] + mov x20, x0 + stp x21, x22, [sp, 32] mov x22, x1 - mov w27, w2 + stp x25, x26, [sp, 64] + mov w25, w2 + stp x23, x24, [sp, 48] ldr x0, [x0] - ldr w19, [x0,40] -.L2536: - mov w0, w19 + ldr w19, [x0, 40] +.L2578: mov w1, 1 + mov w0, w19 bl queue_lun_state - mov w24, w0 - cbz w0, .L2547 - bl queue_wait_first_req_completed - bl queue_remove_completed_req - b .L2536 -.L2547: - cmp w27, 2 - bne .L2538 - adrp x25, .LANCHOR0 - add x2, x25, :lo12:.LANCHOR0 - ldrb w0, [x2,1305] - cbz w0, .L2539 - ldrb w0, [x2,1257] - mov w1, 24 - ldr x6, [x21] - mov w20, 1 - sub w1, w1, w0 - ldr x4, [x22] - lsl w23, w20, w1 - lsl w0, w20, w0 - ldr w3, [x6,40] - sub w23, w23, #1 - sub w19, w0, #1 - ldrb w0, [x2,1269] - and w26, w23, w3 - lsr w3, w3, w1 - ldr w4, [x4,40] - and w19, w19, w3 - and w23, w23, w4 - uxtb w19, w19 - cbz w0, .L2540 + cbnz w0, .L2579 + cmp w25, 2 + bne .L2580 + adrp x23, .LANCHOR0 + add x4, x23, :lo12:.LANCHOR0 + ldr x5, [x22] + ldrb w0, [x4, 1250] + cbz w0, .L2581 + ldr x0, [x20] + mov w26, 1 + ldrb w1, [x4, 1205] + mov w3, 24 + ldr w5, [x5, 40] + sub w3, w3, w1 + lsl w19, w26, w1 + ldr w2, [x0, 40] + ldrb w1, [x4, 1213] + lsl w21, w26, w3 + sub w19, w19, #1 + sub w21, w21, #1 + and w24, w2, w21 + lsr w2, w2, w3 + and w19, w19, w2 + and w21, w21, w5 + and w19, w19, 255 + cbz w1, .L2582 mov w0, w19 bl zftl_flash_exit_slc_mode - ldr x6, [x21] - mov w1, w20 + ldr x0, [x20] + mov w4, w24 mov w3, w19 - mov w4, w26 - mov w0, w24 + mov w1, w26 mov w2, 17 - ldr x5, [x6,8] - ldr x6, [x6,24] + ldr x5, [x0, 8] + ldr x6, [x0, 24] + mov w0, 0 bl flash_start_one_pass_page_prog bl nandc_wait_flash_ready - ldr x6, [x22] - mov w1, w20 + ldr x0, [x22] + mov w4, w21 mov w3, w19 - mov w4, w23 - mov w0, w24 + mov w1, w26 mov w2, 26 - ldr x5, [x6,8] - ldr x6, [x6,24] + ldr x5, [x0, 8] + ldr x6, [x0, 24] + mov w0, 0 bl flash_start_one_pass_page_prog bl nandc_wait_flash_ready - ldr x6, [x21,8] - mov w1, w27 + ldr x0, [x20, 8] + add w4, w24, w26 mov w3, w19 - add w4, w26, w20 - mov w0, w24 + mov w1, w25 mov w2, 17 - ldr x5, [x6,8] - ldr x6, [x6,24] + ldr x5, [x0, 8] + ldr x6, [x0, 24] + mov w0, 0 bl flash_start_one_pass_page_prog bl nandc_wait_flash_ready - ldr x6, [x22,8] - mov w1, w27 + ldr x0, [x22, 8] + add w4, w21, w26 mov w3, w19 - add w4, w23, w20 - mov w0, w24 + mov w1, w25 mov w2, 26 - ldr x5, [x6,8] - ldr x6, [x6,24] + ldr x5, [x0, 8] + ldr x6, [x0, 24] + mov w0, 0 bl flash_start_one_pass_page_prog bl nandc_wait_flash_ready - ldr x6, [x21,16] + ldr x0, [x20, 16] + add w4, w24, 2 mov w3, w19 - add w4, w26, 2 - mov w0, w24 - mov w1, 3 mov w2, 17 - ldr x5, [x6,8] - ldr x6, [x6,24] + mov w1, 3 + ldr x5, [x0, 8] + ldr x6, [x0, 24] + mov w0, 0 bl flash_start_one_pass_page_prog bl nandc_wait_flash_ready - ldr x6, [x22,16] - mov w0, w24 - mov w1, 3 + ldr x0, [x22, 16] + add w4, w21, 2 + mov w3, w19 mov w2, 16 - mov w3, w19 - add w4, w23, 2 - ldr x5, [x6,8] - ldr x6, [x6,24] + mov w1, 3 + ldr x5, [x0, 8] + ldr x6, [x0, 24] + mov w0, 0 bl flash_start_one_pass_page_prog - b .L2541 -.L2540: - ldr x5, [x6,8] - mov w1, w20 - ldrb w0, [x6,60] - mov w2, 17 - ldr x6, [x6,24] - mov w3, w19 - mov w4, w26 - bl flash_start_tlc_page_prog - bl nandc_wait_flash_ready - ldr x6, [x22] - mov w1, w20 - ldr x0, [x21] - mov w2, 26 - mov w3, w19 - mov w4, w23 - ldr x5, [x6,8] - ldrb w0, [x0,60] - ldr x6, [x6,24] - bl flash_start_tlc_page_prog - bl nandc_wait_flash_ready - ldr x6, [x21,8] - mov w1, w27 - ldr x0, [x21] - mov w2, 17 - mov w3, w19 - mov w4, w26 - ldr x5, [x6,8] - ldrb w0, [x0,60] - ldr x6, [x6,24] - bl flash_start_tlc_page_prog - bl nandc_wait_flash_ready - ldr x6, [x22,8] - mov w1, w27 - ldr x0, [x21] - mov w2, 26 - mov w3, w19 - mov w4, w23 - ldr x5, [x6,8] - ldrb w0, [x0,60] - ldr x6, [x6,24] - bl flash_start_tlc_page_prog - bl nandc_wait_flash_ready - ldr x6, [x21,16] - mov w1, 3 - ldr x0, [x21] - mov w2, 17 - mov w3, w19 - mov w4, w26 - ldr x5, [x6,8] - ldrb w0, [x0,60] - ldr x6, [x6,24] - bl flash_start_tlc_page_prog - bl nandc_wait_flash_ready - ldr x6, [x22,16] - mov w1, 3 - ldr x0, [x21] - mov w2, 16 - mov w3, w19 - mov w4, w23 - ldr x5, [x6,8] - ldrb w0, [x0,60] - ldr x6, [x6,24] - bl flash_start_tlc_page_prog -.L2541: - ldr x1, [x21] +.L2583: + ldr x1, [x20] mov w0, 5 - strb w0, [x1,58] + strb w0, [x1, 58] mov w0, 1 - strb w0, [x1,59] + strb w0, [x1, 59] mov w0, -1 strb w0, [x1] - add x0, x25, :lo12:.LANCHOR0 - add x0, x0, 3363 + add x0, x23, :lo12:.LANCHOR0 + add x0, x0, 3354 bl buf_add_tail - b .L2542 -.L2539: - ldr x0, [x22] - ldr w19, [x0,40] -.L2543: - mov w0, w19 - mov w1, 1 - bl queue_lun_state - mov w20, w0 - cbz w0, .L2548 - bl queue_wait_first_req_completed - bl queue_remove_completed_req - b .L2543 -.L2548: - mov x0, x21 - mov w1, 1 - bl queue_tlc_prog_cmd - mov x0, x22 - mov w1, w20 - bl queue_tlc_prog_cmd -.L2545: - mov w0, w19 - mov w1, 1 - bl queue_lun_state - cbz w0, .L2542 - bl queue_wait_first_req_completed - bl queue_remove_completed_req - b .L2545 -.L2538: - mov x0, x21 - mov w1, 1 - bl queue_tlc_prog_cmd -.L2542: +.L2584: mov w0, 0 - ldr x27, [sp,80] - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x29, x30, [sp], 96 + 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 +.L2579: + bl queue_wait_first_req_completed + bl queue_remove_completed_req + b .L2578 +.L2582: + ldr x5, [x0, 8] + mov w4, w24 + ldr x6, [x0, 24] + mov w3, w19 + ldrb w0, [x0, 60] + mov w1, w26 + mov w2, 17 + bl flash_start_tlc_page_prog + bl nandc_wait_flash_ready + ldr x7, [x20] + mov w4, w21 + ldr x0, [x22] + mov w3, w19 + mov w1, w26 + mov w2, 26 + ldr x5, [x0, 8] + ldr x6, [x0, 24] + ldrb w0, [x7, 60] + bl flash_start_tlc_page_prog + bl nandc_wait_flash_ready + ldp x7, x0, [x20] + mov w4, w24 + mov w3, w19 + mov w1, w25 + mov w2, 17 + ldr x5, [x0, 8] + ldr x6, [x0, 24] + ldrb w0, [x7, 60] + bl flash_start_tlc_page_prog + bl nandc_wait_flash_ready + ldr x7, [x20] + mov w4, w21 + ldr x0, [x22, 8] + mov w3, w19 + mov w1, w25 + mov w2, 26 + ldr x5, [x0, 8] + ldr x6, [x0, 24] + ldrb w0, [x7, 60] + bl flash_start_tlc_page_prog + bl nandc_wait_flash_ready + ldr x7, [x20] + mov w4, w24 + ldr x0, [x20, 16] + mov w3, w19 + mov w2, 17 + mov w1, 3 + ldr x5, [x0, 8] + ldr x6, [x0, 24] + ldrb w0, [x7, 60] + bl flash_start_tlc_page_prog + bl nandc_wait_flash_ready + ldr x0, [x22, 16] + mov w4, w21 + ldr x7, [x20] + mov w3, w19 + mov w2, 16 + mov w1, 3 + ldr x5, [x0, 8] + ldr x6, [x0, 24] + ldrb w0, [x7, 60] + bl flash_start_tlc_page_prog + b .L2583 +.L2581: + ldr w19, [x5, 40] +.L2585: + mov w1, 1 + mov w0, w19 + bl queue_lun_state + cbnz w0, .L2586 + mov w1, 1 + mov x0, x20 + bl queue_tlc_prog_cmd + mov w1, 0 + mov x0, x22 + bl queue_tlc_prog_cmd +.L2587: + mov w1, 1 + mov w0, w19 + bl queue_lun_state + cbz w0, .L2584 + bl queue_wait_first_req_completed + bl queue_remove_completed_req + b .L2587 +.L2586: + bl queue_wait_first_req_completed + bl queue_remove_completed_req + b .L2585 +.L2580: + mov w1, 1 + mov x0, x20 + bl queue_tlc_prog_cmd + b .L2584 .size sblk_xlc_prog_pages, .-sblk_xlc_prog_pages .align 2 .global sblk_3d_mlc_prog_pages .type sblk_3d_mlc_prog_pages, %function sblk_3d_mlc_prog_pages: - stp x29, x30, [sp, -96]! + stp x29, x30, [sp, -80]! + ubfiz x1, x1, 4, 32 + add x1, x1, 8 add x29, sp, 0 - stp x23, x24, [sp,48] - adrp x23, .LANCHOR0 - str x27, [sp,80] - add x23, x23, :lo12:.LANCHOR0 - mov w24, 1 - stp x25, x26, [sp,64] - stp x19, x20, [sp,16] - stp x21, x22, [sp,32] - mov x20, x0 - mov w22, w1 - mov w25, 24 - mov w26, 4 - add x27, x23, 3363 -.L2550: - cbz w22, .L2554 - ldr x0, [x20] - ldr w19, [x0,40] -.L2551: - mov w0, w19 + stp x21, x22, [sp, 32] + adrp x22, .LANCHOR0 + add x22, x22, :lo12:.LANCHOR0 + stp x25, x26, [sp, 64] + add x21, x0, x1 + add x26, x0, 8 + add x25, x22, 3354 + stp x23, x24, [sp, 48] + stp x19, x20, [sp, 16] + mov w23, 1 + mov w24, 24 +.L2591: + cmp x21, x26 + bne .L2594 + mov w0, 0 + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] + ldp x29, x30, [sp], 80 + ret +.L2594: + ldr x0, [x26, -8] + ldr w19, [x0, 40] +.L2592: mov w1, 1 + mov w0, w19 bl queue_lun_state - cbz w0, .L2555 - bl queue_wait_first_req_completed - bl queue_remove_completed_req - b .L2551 -.L2555: - ldr x0, [x20] - sub w22, w22, #1 - ldr w3, [x0,40] - ldrb w0, [x23,1257] - sub w1, w25, w0 - lsl w0, w24, w0 - lsl w21, w24, w1 - sub w19, w0, #1 - sub w21, w21, #1 - and w21, w21, w3 - lsr w3, w3, w1 - and w19, w19, w3 - uxtb w19, w19 + cbnz w0, .L2593 + ldr x0, [x26, -8] + add x26, x26, 16 + ldrb w1, [x22, 1205] + sub w2, w24, w1 + ldr w0, [x0, 40] + lsl w19, w23, w1 + lsl w20, w23, w2 + sub w19, w19, #1 + sub w20, w20, #1 + and w20, w20, w0 + lsr w0, w0, w2 + and w19, w19, w0 + and w19, w19, 255 mov w0, w19 bl zftl_flash_exit_slc_mode - ldr x4, [x20] + ldr x0, [x26, -24] + mov w2, w20 mov w1, w19 - mov w2, w21 + ldr x3, [x0, 8] + ldr x4, [x0, 24] 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] + ldr x0, [x26, -16] + add w2, w20, 1 mov w1, w19 - add w2, w21, 1 + ldr x3, [x0, 8] + ldr x4, [x0, 24] 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],16 + bl nandc_de_cs.constprop.35 + ldr x1, [x26, -24] + mov w0, 4 + strb w23, [x1, 59] + strb w0, [x1, 58] mov w0, -1 - strb w26, [x1,58] strb w0, [x1] - mov x0, x27 - strb w24, [x1,59] + mov x0, x25 bl buf_add_tail - b .L2550 -.L2554: - mov w0, w22 - ldr x27, [sp,80] - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x29, x30, [sp], 96 - ret + b .L2591 +.L2593: + bl queue_wait_first_req_completed + bl queue_remove_completed_req + b .L2592 .size sblk_3d_mlc_prog_pages, .-sblk_3d_mlc_prog_pages .align 2 .global flash_prog_page_en .type flash_prog_page_en, %function flash_prog_page_en: - stp x29, x30, [sp, -128]! + stp x29, x30, [sp, -112]! add x29, sp, 0 - stp x21, x22, [sp,32] - uxtb w21, w0 - adrp x0, .LANCHOR0 - stp x19, x20, [sp,16] + stp x21, x22, [sp, 32] + and w21, w0, 255 + and w0, w5, 255 + stp x19, x20, [sp, 16] + str w0, [x29, 108] + adrp x19, .LANCHOR0 + add x0, x19, :lo12:.LANCHOR0 + stp x23, x24, [sp, 48] + stp x27, x28, [sp, 80] mov w20, w1 - add x1, x0, :lo12:.LANCHOR0 - stp x23, x24, [sp,48] - stp x27, x28, [sp,80] - stp x25, x26, [sp,64] + stp x25, x26, [sp, 64] mov x23, x2 mov x22, x3 - ldrb w1, [x1,1153] mov w27, w4 - uxtb w28, w5 - ubfx x25, x20, 24, 2 - cmp w1, w21 - mov x24, x0 - bhi .L2557 + ldrb w0, [x0, 1153] + ubfx x24, x20, 24, 2 + cmp w0, w21 + bhi .L2597 adrp x1, .LANCHOR4 - adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 + add x1, x1, 552 mov w2, 642 - add x1, x1, 536 + adrp x0, .LC0 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L2557: - add x1, x24, :lo12:.LANCHOR0 - mov w0, -1 - ldrb w2, [x1,1153] - cmp w2, w21 - bls .L2558 - add x0, x1, w21, sxtw - mov w19, w20 - ldrb w26, [x0,1248] - cbnz w25, .L2559 - adrp x0, .LANCHOR0 - ldrb w0, [x0,#:lo12:.LANCHOR0] - cbz w0, .L2560 - ldrb w0, [x1,1] - cbz w0, .L2559 -.L2560: - add x0, x24, :lo12:.LANCHOR0 - ldrh w19, [x0,2] - ldrb w2, [x0,1] - udiv w1, w20, w19 - mul w19, w1, w19 +.L2597: + add x0, x19, :lo12:.LANCHOR0 + ldrb w1, [x0, 1153] + cmp w1, w21 + bls .L2608 + add x1, x0, w21, sxtw + ldrb w26, [x1, 1196] + cbnz w24, .L2610 + ldrb w1, [x19, #:lo12:.LANCHOR0] + cbz w1, .L2600 + ldrb w0, [x0, 1] + cbz w0, .L2610 +.L2600: + add x0, x19, :lo12:.LANCHOR0 + ldrh w1, [x0, 2] + ldrb w2, [x0, 1] + udiv w19, w20, w1 + mul w19, w19, w1 sub w1, w20, w19 - cbz w2, .L2561 + cbz w2, .L2601 add w19, w19, w1, lsl 1 - b .L2559 -.L2561: - add x0, x0, 4 - ldrh w0, [x0,w1,uxtw 1] - add w19, w0, w19 -.L2559: - adrp x25, .LC180 - adrp x24, .LC181 - adrp x0, .LC182 - add x25, x25, :lo12:.LC180 - add x0, x0, :lo12:.LC182 - add x24, x24, :lo12:.LC181 - str x0, [x29,120] -.L2565: +.L2599: + adrp x24, .LC180 + adrp x28, .LANCHOR5 + add x24, x24, :lo12:.LC180 + add x25, x28, :lo12:.LANCHOR5 +.L2605: adrp x0, .LANCHOR2 - ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 4, .L2562 - mov x0, x25 - mov w1, w26 - mov w2, w20 + ldr w0, [x0, #:lo12:.LANCHOR2] + tbz x0, 4, .L2602 mov w3, w19 + mov w2, w20 + mov w1, w26 + mov x0, x24 bl printk -.L2562: - mov w0, w26 - mov w1, w19 - mov x2, x23 - mov x3, x22 +.L2602: mov w4, w27 + mov x3, x22 + mov x2, x23 + mov w1, w19 + mov w0, w26 bl flash_prog_page mov w5, w0 - cbz w28, .L2563 - adrp x6, .LANCHOR5 + ldr w0, [x29, 108] + cbz w0, .L2603 + add x6, x28, :lo12:.LANCHOR5 mov w4, w27 - add x7, x6, :lo12:.LANCHOR5 - mov w0, w21 mov w1, w20 - str x6, [x29,104] - str x5, [x29,96] - ldr x2, [x7,336] - ldr x3, [x7,344] - str x7, [x29,112] + mov w0, w21 + str x6, [x29, 96] + ldp x3, x2, [x6, 344] + str w5, [x29, 104] bl flash_read_page_en cmp w0, 512 - cset w4, eq - ldr x6, [x29,104] - cbnz w4, .L2564 - cmn w0, #1 - beq .L2564 - ldr x7, [x29,112] + mov w4, w0 + ccmn w0, #1, 4, ne + beq .L2604 + ldr x6, [x29, 96] ldr w1, [x23] - ldr x5, [x29,96] - ldr x0, [x7,336] + ldr w5, [x29, 104] + ldr x0, [x6, 352] ldr w0, [x0] cmp w1, w0 - bne .L2564 - ldr x0, [x7,344] + bne .L2604 + ldr x0, [x6, 344] ldr w1, [x22] ldr w0, [x0] cmp w1, w0 - beq .L2563 -.L2564: - mov w2, 4 - mov x0, x24 - mov w3, w2 + beq .L2603 +.L2604: + str w4, [x29, 96] + mov w3, 4 mov x1, x23 - str x4, [x29,104] - str x6, [x29,112] + mov w2, w3 + adrp x0, .LC181 + add x0, x0, :lo12:.LC181 bl rknand_print_hex - mov w2, 4 - ldr x0, [x29,120] - mov w3, w2 + mov w3, 4 mov x1, x22 + mov w2, w3 + adrp x0, .LC182 + add x0, x0, :lo12:.LC182 bl rknand_print_hex - ldr x6, [x29,112] - mov w2, 4 + ldr x1, [x25, 344] + mov w3, 4 adrp x0, .LC183 - mov w3, w2 - add x6, x6, :lo12:.LANCHOR5 + mov w2, w3 add x0, x0, :lo12:.LC183 - str x6, [x29,112] - ldr x1, [x6,344] bl rknand_print_hex - ldr x6, [x29,112] - mov w2, 4 + ldr x1, [x25, 352] + mov w3, 4 adrp x0, .LC184 - mov w3, w2 + mov w2, w3 add x0, x0, :lo12:.LC184 - ldr x1, [x6,336] bl rknand_print_hex - ldr x4, [x29,104] - cbnz w4, .L2565 -.L2567: - adrp x0, .LC185 + ldr w4, [x29, 96] + cmp w4, 512 + beq .L2605 +.L2607: mov w1, w20 + adrp x0, .LC185 add x0, x0, :lo12:.LC185 bl printk adrp x1, .LANCHOR4 - adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 + add x1, x1, 552 mov w2, 685 - add x1, x1, 536 + adrp x0, .LC0 add x0, x0, :lo12:.LC0 bl printk bl dump_stack +.L2608: mov w0, -1 - b .L2558 -.L2563: - cmn w5, #1 + b .L2596 +.L2601: + add x0, x0, 4 + ldrh w0, [x0, w1, uxtw 1] + add w19, w0, w19 + b .L2599 +.L2610: + mov w19, w20 + b .L2599 +.L2603: mov w0, w5 - beq .L2567 -.L2558: - 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 + cmn w5, #1 + beq .L2607 +.L2596: + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] + ldp x27, x28, [sp, 80] + ldp x29, x30, [sp], 112 ret .size flash_prog_page_en, .-flash_prog_page_en .align 2 @@ -16418,38 +16323,42 @@ flash_prog_page_en: ftl_prog_page: stp x29, x30, [sp, -64]! add x29, sp, 0 - stp x19, x20, [sp,16] - uxtb w19, w0 + stp x19, x20, [sp, 16] + and w19, w0, 255 + stp x21, x22, [sp, 32] mov w20, w1 - str x2, [x29,40] - str x3, [x29,48] - str x4, [x29,56] + mov x21, x2 + mov x22, x3 + str x23, [sp, 48] + mov w23, w4 bl sblk_wait_write_queue_completed - ldr x2, [x29,40] mov w0, w19 - ldr x3, [x29,48] - mov w1, w20 - ldr x4, [x29,56] mov w5, 1 + mov w4, w23 + mov x3, x22 + mov x2, x21 + mov w1, w20 bl flash_prog_page_en - cmn w0, #1 mov w19, w0 - bne .L2586 - adrp x2, .LANCHOR4 - adrp x0, .LC0 - add x1, x2, :lo12:.LANCHOR4 - add x0, x0, :lo12:.LC0 - add x1, x1, 560 + cmn w0, #1 + bne .L2626 + adrp x1, .LANCHOR4 + add x1, x1, :lo12:.LANCHOR4 + add x1, x1, 576 mov w2, 2678 + adrp x0, .LC0 + add x0, x0, :lo12:.LC0 bl printk bl dump_stack adrp x0, .LC185 mov w1, w20 add x0, x0, :lo12:.LC185 bl printk -.L2586: +.L2626: mov w0, w19 - ldp x19, x20, [sp,16] + ldr x23, [sp, 48] + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] ldp x29, x30, [sp], 64 ret .size ftl_prog_page, .-ftl_prog_page @@ -16457,226 +16366,222 @@ ftl_prog_page: .global ftl_info_flush .type ftl_info_flush, %function ftl_info_flush: - stp x29, x30, [sp, -128]! + stp x29, x30, [sp, -112]! mov w1, 0 add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x20, .LANCHOR0 - add x19, x20, :lo12:.LANCHOR0 - str w0, [x29,124] - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] - stp x27, x28, [sp,80] - adrp x21, .LANCHOR5 - ldrb w2, [x19,3360] - add x0, x21, :lo12:.LANCHOR5 - add x0, x0, 384 + stp x21, x22, [sp, 32] + adrp x21, .LANCHOR3 + stp x25, x26, [sp, 64] + mov w26, w0 + add x0, x21, :lo12:.LANCHOR3 + stp x23, x24, [sp, 48] + stp x19, x20, [sp, 16] + adrp x22, .LANCHOR5 + stp x27, x28, [sp, 80] + adrp x23, .LANCHOR0 + ldrb w2, [x0, 1946] + add x0, x22, :lo12:.LANCHOR5 + ldr x0, [x0, 376] lsl w2, w2, 1 bl ftl_memset - ldr x0, [x19,3392] - ldrh w1, [x0,74] + add x0, x23, :lo12:.LANCHOR0 + ldr x0, [x0, 3384] + ldrh w1, [x0, 74] cmp w1, 1 - bls .L2588 - strh wzr, [x0,150] -.L2588: - adrp x23, .LANCHOR4 - adrp x24, .LC186 - add x23, x23, :lo12:.LANCHOR4 + bls .L2630 + strh wzr, [x0, 150] +.L2630: + adrp x24, .LANCHOR4 + add x24, x24, :lo12:.LANCHOR4 + add x19, x22, :lo12:.LANCHOR5 + add x24, x24, 592 mov w25, 0 - add x26, x21, :lo12:.LANCHOR5 - add x24, x24, :lo12:.LC186 - add x23, x23, 576 -.L2599: - add x2, x20, :lo12:.LANCHOR0 - adrp x22, .LANCHOR3 - add x0, x22, :lo12:.LANCHOR3 - add x3, x26, 384 - str x2, [x29,112] - ldr x1, [x2,3392] - ldrh w28, [x0,1418] - str x3, [x29,104] - ldr w0, [x1,4] - ldrb w19, [x26,640] +.L2643: + add x2, x23, :lo12:.LANCHOR0 + add x1, x21, :lo12:.LANCHOR3 + ldrb w20, [x19, 384] + ldrh w27, [x19, 386] + ldr x3, [x2, 3384] + ldrh w28, [x1, 1410] + ldr w0, [x3, 4] add w0, w0, 1 - str w0, [x1,4] - ldr w0, [x29,124] - str w0, [x26,384] - ldr x0, [x2,3392] - ldrb w1, [x2,3360] - ldrh w27, [x26,642] - ldr w0, [x0,4] + str w0, [x3, 4] + ldr x0, [x19, 376] + str w26, [x0] + ldr x3, [x2, 3384] + ldr x0, [x19, 376] + ldrb w1, [x1, 1946] + ldr w3, [x3, 4] + str w3, [x0, 4] lsl w1, w1, 9 - str w0, [x26,388] - ldr x0, [x26,648] + ldr x3, [x19, 376] + ldr x0, [x19, 392] + stp x2, x3, [x29, 96] bl js_hash - ldr x3, [x29,104] - ldr x2, [x29,112] - str w0, [x3,8] + ldp x2, x3, [x29, 96] + str w0, [x3, 8] adrp x0, .LANCHOR2 - ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 12, .L2589 - ldr x3, [x2,3392] - mov x0, x24 - ldrb w1, [x26,640] - ldrh w2, [x26,642] - ldr w3, [x3,4] + ldr w0, [x0, #:lo12:.LANCHOR2] + tbz x0, 12, .L2631 + ldr x0, [x2, 3384] + ldrb w1, [x19, 384] + ldrh w2, [x19, 386] + ldr w3, [x0, 4] + adrp x0, .LC186 + add x0, x0, :lo12:.LC186 bl printk -.L2589: - add x1, x22, :lo12:.LANCHOR3 - ldrh w0, [x26,642] - ldrh w1, [x1,1384] +.L2631: + add x1, x21, :lo12:.LANCHOR3 + ldrh w0, [x19, 386] + ldrh w1, [x1, 1376] cmp w1, w0 - bhi .L2590 - adrp x19, .LC0 - add x19, x19, :lo12:.LC0 -.L2595: - ldrb w1, [x26,641] - add w1, w1, 1 - uxtb w1, w1 - strb w1, [x26,641] - cmp w1, 7 - bls .L2591 - mov x1, 0 -.L2594: - add x0, x20, :lo12:.LANCHOR0 - uxth w25, w1 - ldr x2, [x0,1128] - add w0, w1, 8 - add x0, x2, w0, sxtw - ldrb w2, [x0,32] - add w0, w2, 127 - uxtb w0, w0 - cmp w0, 125 - bhi .L2592 - mov x1, x23 + bhi .L2632 + add x20, x23, :lo12:.LANCHOR0 +.L2639: + ldrb w0, [x19, 385] + add w0, w0, 1 + and w0, w0, 255 + strb w0, [x19, 385] + cmp w0, 7 + bls .L2633 + mov x0, 0 +.L2638: + ldr x2, [x20, 1048] + add w1, w0, 8 + and w25, w0, 65535 + add x1, x2, w1, sxtw + ldrb w2, [x1, 32] + add w1, w2, 127 + and w1, w1, 255 + cmp w1, 125 + bhi .L2634 + mov x1, x24 mov w2, 846 - mov x0, x19 - bl printk - bl dump_stack - b .L2593 -.L2592: - cmp w2, 255 - bne .L2593 - add x1, x1, 1 - cmp x1, 8 - bne .L2594 - mov w25, w1 -.L2593: - strb w25, [x26,641] - mov w25, 1 -.L2591: - add x28, x20, :lo12:.LANCHOR0 - ldrb w1, [x26,641] - ldr x0, [x28,1128] - add x1, x0, x1 - ldrb w1, [x1,40] - strb w1, [x26,640] - cmp w1, 255 - beq .L2595 - add x0, x22, :lo12:.LANCHOR3 - ldrh w19, [x0,1418] - mov w0, 0 - mul w19, w1, w19 - mov w1, w19 - bl flash_erase_block - ldr x2, [x26,648] - mov w1, w19 - ldrb w4, [x28,3360] - mov w0, 0 - add x3, x26, 384 - add w19, w19, 1 - bl ftl_prog_page - mov w0, 1 - strh w0, [x26,642] - b .L2596 -.L2590: - madd w19, w19, w28, w27 - cbnz w0, .L2596 - mov w1, w19 - bl flash_erase_block -.L2596: - add x4, x20, :lo12:.LANCHOR0 - ldr x2, [x26,648] - mov w1, w19 - mov w0, 0 - add x3, x26, 384 - ldrb w4, [x4,3360] - bl ftl_prog_page - cmn w0, #1 - ldrh w1, [x26,642] - add w1, w1, 1 - strh w1, [x26,642] - beq .L2597 - ldrb w0, [x26,656] - cbz w0, .L2598 -.L2597: - strb wzr, [x26,656] - b .L2599 -.L2598: - cbnz w25, .L2600 -.L2608: - add x21, x21, :lo12:.LANCHOR5 - ldrb w0, [x21,640] - cmp w0, 255 - bne .L2602 - adrp x1, .LANCHOR4 adrp x0, .LC0 - add x1, x1, :lo12:.LANCHOR4 - mov w2, 890 - add x1, x1, 576 add x0, x0, :lo12:.LC0 bl printk bl dump_stack - b .L2602 -.L2600: - ldrb w19, [x26,641] - adrp x23, .LANCHOR4 +.L2637: + strb w25, [x19, 385] + mov w25, 1 +.L2633: + ldrb w1, [x19, 385] + ldr x0, [x20, 1048] + add x0, x0, x1 + ldrb w0, [x0, 40] + strb w0, [x19, 384] + cmp w0, 255 + beq .L2639 + add x27, x21, :lo12:.LANCHOR3 + ldrh w20, [x27, 1410] + mul w20, w20, w0 + mov w0, 0 + mov w1, w20 + bl flash_erase_block + ldrb w4, [x27, 1946] + mov w1, w20 + ldr x3, [x19, 376] + mov w0, 0 + ldr x2, [x19, 392] + add w20, w20, 1 + bl ftl_prog_page + mov w0, 1 + strh w0, [x19, 386] +.L2640: + add x0, x21, :lo12:.LANCHOR3 + ldr x3, [x19, 376] + ldr x2, [x19, 392] + mov w1, w20 + ldrb w4, [x0, 1946] + mov w0, 0 + bl ftl_prog_page + cmn w0, #1 + ldrh w1, [x19, 386] + add w1, w1, 1 + strh w1, [x19, 386] + beq .L2641 + ldrb w0, [x19, 400] + cbz w0, .L2642 +.L2641: + strb wzr, [x19, 400] + b .L2643 +.L2634: + cmp w2, 255 + bne .L2637 + add x0, x0, 1 + cmp x0, 8 + bne .L2638 + mov w25, w0 + b .L2637 +.L2632: + madd w20, w20, w28, w27 + cbnz w0, .L2640 + mov w1, w20 + bl flash_erase_block + b .L2640 +.L2642: + cbnz w25, .L2644 +.L2652: + add x22, x22, :lo12:.LANCHOR5 + ldrb w0, [x22, 384] + cmp w0, 255 + bne .L2646 + adrp x1, .LANCHOR4 + add x1, x1, :lo12:.LANCHOR4 + add x1, x1, 592 + mov w2, 890 + adrp x0, .LC0 + add x0, x0, :lo12:.LC0 + bl printk + bl dump_stack +.L2646: + ldp x19, x20, [sp, 16] + mov w0, 0 + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] + ldp x27, x28, [sp, 80] + ldp x29, x30, [sp], 112 + ret +.L2644: + ldrb w19, [x19, 385] + adrp x20, .LANCHOR4 + add x20, x20, :lo12:.LANCHOR4 adrp x24, .LC0 - add x23, x23, :lo12:.LANCHOR4 add w19, w19, 1 + add x20, x20, 592 add x24, x24, :lo12:.LC0 - add x23, x23, 576 -.L2603: +.L2647: cmp w19, 7 - bhi .L2608 - add x0, x20, :lo12:.LANCHOR0 - ldr x1, [x0,1128] + bhi .L2652 + add x0, x23, :lo12:.LANCHOR0 + ldr x1, [x0, 1048] add w0, w19, 8 add x0, x1, w0, sxtw - ldrb w25, [x0,32] + ldrb w25, [x0, 32] add w0, w25, 127 - uxtb w0, w0 + and w0, w0, 255 cmp w0, 125 - bhi .L2604 - mov x1, x23 + bhi .L2648 + mov x1, x20 mov w2, 881 mov x0, x24 bl printk bl dump_stack - b .L2605 -.L2604: - cmp w25, 255 - beq .L2606 -.L2605: - add x0, x22, :lo12:.LANCHOR3 - ldrh w1, [x0,1418] +.L2649: + add x0, x21, :lo12:.LANCHOR3 + ldrh w1, [x0, 1410] mov w0, 0 - mul w1, w25, w1 + mul w1, w1, w25 bl flash_erase_block -.L2606: + b .L2650 +.L2648: + cmp w25, 255 + bne .L2649 +.L2650: add w19, w19, 1 - uxth w19, w19 - b .L2603 -.L2602: - mov w0, 0 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 128 - ret + and w19, w19, 65535 + b .L2647 .size ftl_info_flush, .-ftl_info_flush .align 2 .global ftl_info_blk_init @@ -16686,544 +16591,533 @@ ftl_info_blk_init: mov w0, 1 mov w2, 16384 add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x20, .LANCHOR0 - stp x21, x22, [sp,32] - add x19, x20, :lo12:.LANCHOR0 - adrp x22, .LANCHOR5 - add x21, x22, :lo12:.LANCHOR5 - stp x25, x26, [sp,64] - stp x27, x28, [sp,80] - stp x23, x24, [sp,48] - strb w0, [x21,656] - adrp x25, .LC187 - ldrh w1, [x19,1088] - adrp x27, .LANCHOR3 - strb w0, [x21,658] - add x26, x21, 384 - ldr x0, [x21,648] - adrp x28, .LANCHOR2 - str x0, [x19,1096] - add x25, x25, :lo12:.LC187 + stp x19, x20, [sp, 16] + adrp x19, .LANCHOR0 + stp x21, x22, [sp, 32] + add x22, x19, :lo12:.LANCHOR0 + adrp x21, .LANCHOR5 + add x20, x21, :lo12:.LANCHOR5 + stp x25, x26, [sp, 64] + adrp x26, .LC187 + stp x27, x28, [sp, 80] + add x26, x26, :lo12:.LC187 + stp x23, x24, [sp, 48] + mov w27, 21574 + strb w0, [x20, 400] + movk w27, 0x494c, lsl 16 + strb w0, [x20, 402] + ldrh w1, [x22, 1096] + ldr x0, [x20, 392] + strb wzr, [x20, 401] + str x0, [x22, 1104] add x1, x0, x1, lsl 2 - str x1, [x19,3392] + str x1, [x22, 3384] mov w1, 0 - strb wzr, [x21,657] bl ftl_memset - ldr x0, [x21,664] - mov w1, 0 + ldr x0, [x20, 408] mov w2, 16384 + mov w1, 0 bl ftl_memset - strb wzr, [x21,641] - ldr x0, [x19,1128] - mov w19, 7 - strh wzr, [x21,642] - ldrb w0, [x0,40] - strb w0, [x21,640] -.L2626: - add x6, x20, :lo12:.LANCHOR0 - add w0, w19, 8 - sxth w24, w19 - ldr x1, [x6,1128] + strb wzr, [x20, 385] + ldr x0, [x22, 1048] + adrp x22, .LANCHOR3 + add x22, x22, :lo12:.LANCHOR3 + strh wzr, [x20, 386] + ldrb w0, [x0, 40] + strb w0, [x20, 384] + mov w20, 7 +.L2668: + add x0, x19, :lo12:.LANCHOR0 + sxth w24, w20 + ldr x1, [x0, 1048] + add w0, w20, 8 add x0, x1, w0, sxtw - ldrb w0, [x0,32] + ldrb w0, [x0, 32] cmp w0, 255 - beq .L2622 - add x1, x27, :lo12:.LANCHOR3 - ldrb w4, [x6,3360] - ldr x2, [x21,648] - mov x3, x26 - str x6, [x29,104] - ldrh w23, [x1,1418] - mul w23, w0, w23 - mov w0, 0 - mov w1, w23 - bl ftl_read_page - cmn w0, #1 - mov w5, w0 - ldr x6, [x29,104] - bne .L2623 - ldr x2, [x21,648] - mov w0, 0 - ldrb w4, [x6,3360] - add w1, w23, 1 - mov x3, x26 - bl ftl_read_page - mov w5, w0 -.L2623: - ldr w0, [x28,#:lo12:.LANCHOR2] - tbz x0, 12, .L2624 - add x0, x20, :lo12:.LANCHOR0 - mov w2, w5 - mov w1, w19 - mov w3, 749 - str x5, [x29,104] - ldr x4, [x0,3392] - mov x0, x25 - ldr w4, [x4] - bl printk - ldr x5, [x29,104] -.L2624: - cmn w5, #1 - beq .L2622 - add x0, x20, :lo12:.LANCHOR0 - ldr x0, [x0,3392] - ldr w1, [x0] - mov w0, 21574 - movk w0, 0x494c, lsl 16 - cmp w1, w0 - beq .L2636 -.L2622: - sub w19, w19, #1 - cmn w19, #1 - bne .L2626 + bne .L2667 +.L2672: + sub w20, w20, #1 + cmn w20, #1 + bne .L2668 mov w24, 0 - b .L2625 -.L2636: - mov w19, w24 -.L2625: +.L2669: adrp x23, .LANCHOR2 - ldr w0, [x23,#:lo12:.LANCHOR2] - tbz x0, 12, .L2627 - add x0, x20, :lo12:.LANCHOR0 - mov w1, w19 + ldr w0, [x23, #:lo12:.LANCHOR2] + tbz x0, 12, .L2673 + add x0, x19, :lo12:.LANCHOR0 mov w2, 4800 - ldr x3, [x0,3392] + mov w1, w20 + ldr x0, [x0, 3384] + ldr w3, [x0] adrp x0, .LC188 add x0, x0, :lo12:.LC188 - ldr w3, [x3] bl printk -.L2627: - cmn w19, #1 - bne .L2628 - add x22, x22, :lo12:.LANCHOR5 +.L2673: + cmn w20, #1 + bne .L2674 + add x21, x21, :lo12:.LANCHOR5 + add x19, x19, :lo12:.LANCHOR0 mov w1, 0 - add x20, x20, :lo12:.LANCHOR0 mov w2, 16384 - ldr x0, [x22,648] + ldr x0, [x21, 392] bl ftl_memset - ldr x1, [x20,3392] - mov w0, 21574 - movk w0, 0x494c, lsl 16 - str w0, [x1] - mov w0, 36 - movk w0, 0x6, lsl 16 - ldr x1, [x20,3392] - str w0, [x1,12] - b .L2653 -.L2628: - add x0, x20, :lo12:.LANCHOR0 - add x21, x22, :lo12:.LANCHOR5 - add x19, x21, 384 - mov w4, 4 - mov x3, x19 - adrp x27, .LC189 - ldr x1, [x0,1128] - add w0, w24, 8 - ldr x2, [x21,648] - add x0, x1, w0, sxtw - ldrb w1, [x0,32] + ldr x0, [x19, 3384] + mov w1, 21574 + movk w1, 0x494c, lsl 16 + str w1, [x0] + mov w1, 36 + movk w1, 0x6, lsl 16 + ldr x0, [x19, 3384] + str w1, [x0, 12] + mov w0, w20 +.L2666: + 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 +.L2667: + add x28, x21, :lo12:.LANCHOR5 + ldrh w25, [x22, 1410] + ldrb w4, [x22, 1946] + ldr x3, [x28, 376] + ldr x2, [x28, 392] + mul w25, w25, w0 mov w0, 0 - strb w24, [x21,641] + mov w1, w25 + bl ftl_read_page + mov w23, w0 + cmn w0, #1 + bne .L2670 + ldrb w4, [x22, 1946] + add w1, w25, 1 + ldr x3, [x28, 376] + mov w0, 0 + ldr x2, [x28, 392] + bl ftl_read_page + mov w23, w0 +.L2670: + adrp x0, .LANCHOR2 + ldr w0, [x0, #:lo12:.LANCHOR2] + tbz x0, 12, .L2671 + add x0, x19, :lo12:.LANCHOR0 + mov w3, 749 + mov w2, w23 + mov w1, w20 + ldr x0, [x0, 3384] + ldr w4, [x0] + mov x0, x26 + bl printk +.L2671: + cmn w23, #1 + beq .L2672 + add x0, x19, :lo12:.LANCHOR0 + ldr x0, [x0, 3384] + ldr w0, [x0] + cmp w0, w27 + bne .L2672 + mov w20, w24 + b .L2669 +.L2674: + add x0, x19, :lo12:.LANCHOR0 + add x20, x21, :lo12:.LANCHOR5 + adrp x22, .LANCHOR3 + add x22, x22, :lo12:.LANCHOR3 + mov w4, 4 + mov w28, 21574 + ldr x1, [x0, 1048] + add w0, w24, 8 + ldr x3, [x20, 376] + adrp x27, .LC189 + ldr x2, [x20, 392] add x27, x27, :lo12:.LC189 - strb w1, [x21,640] + add x0, x1, w0, sxtw + strb w24, [x20, 385] + movk w28, 0x494c, lsl 16 + ldrb w1, [x0, 32] + mov w0, 0 + strb w1, [x20, 384] bl flash_get_last_written_page sxth w25, w0 add w0, w0, 1 - ldrb w26, [x21,640] - uxth w24, w0 - adrp x0, .LANCHOR3+1418 - ldrh w0, [x0,#:lo12:.LANCHOR3+1418] - mul w26, w26, w0 - b .L2630 -.L2653: - mov w0, w19 - b .L2629 -.L2635: - add x28, x20, :lo12:.LANCHOR0 - ldr x2, [x21,648] + ldrb w26, [x20, 384] + and w24, w0, 65535 + ldrh w0, [x22, 1410] + madd w26, w26, w0, w25 +.L2676: + tbnz w25, #31, .L2680 + ldrb w4, [x22, 1946] + mov w1, w26 + ldr x3, [x20, 376] mov w0, 0 - add w1, w25, w26 - mov x3, x19 - ldrb w4, [x28,3360] + ldr x2, [x20, 392] bl ftl_read_page cmn w0, #1 - bne .L2654 -.L2631: - sub w25, w25, #1 - sxth w25, w25 -.L2630: - tbz w25, #31, .L2635 - b .L2634 -.L2654: - ldr x0, [x28,3392] - ldr w1, [x0] - mov w0, 21574 - movk w0, 0x494c, lsl 16 - cmp w1, w0 - bne .L2631 - ldr w2, [x19,8] - cbnz w2, .L2632 -.L2634: - add x22, x22, :lo12:.LANCHOR5 - add x20, x20, :lo12:.LANCHOR0 - strh w24, [x22,642] + beq .L2677 + add x0, x19, :lo12:.LANCHOR0 + ldr x0, [x0, 3384] + ldr w0, [x0] + cmp w0, w28 + bne .L2677 + ldr x0, [x20, 376] + ldr w2, [x0, 8] + cbnz w2, .L2678 +.L2680: + add x21, x21, :lo12:.LANCHOR5 + add x19, x19, :lo12:.LANCHOR0 + strh w24, [x21, 386] bl ftl_tmp_into_update - ldr x1, [x20,3392] - ldr w0, [x1,64] + ldr x1, [x19, 3384] + ldr w0, [x1, 64] add w0, w0, 1 - str w0, [x1,64] + str w0, [x1, 64] mov w0, 0 bl ftl_info_flush mov w0, 0 bl ftl_info_flush - ldr w0, [x23,#:lo12:.LANCHOR2] - and w19, w0, 16384 - tbz x0, 14, .L2653 - ldr x1, [x20,3392] - adrp x0, .LC190 - add x0, x0, :lo12:.LC190 - ldr w1, [x1,156] - bl printk + ldr w0, [x23, #:lo12:.LANCHOR2] + tbnz x0, 14, .L2679 +.L2696: mov w0, 0 - b .L2629 -.L2632: - ldrb w1, [x28,3360] - ldr x0, [x21,648] + b .L2666 +.L2678: + ldr x0, [x20, 392] + ldrb w1, [x22, 1946] + str w2, [x29, 108] lsl w1, w1, 9 - str x2, [x29,104] bl js_hash - ldr x2, [x29,104] + ldr w2, [x29, 108] cmp w2, w0 - beq .L2634 - ldr w1, [x19,8] + beq .L2680 + ldr x0, [x20, 376] + ldr w1, [x0, 8] mov x0, x27 bl printk - b .L2631 -.L2629: - 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 +.L2677: + sub w25, w25, #1 + sub w26, w26, #1 + sxth w25, w25 + b .L2676 +.L2679: + ldr x0, [x19, 3384] + ldr w1, [x0, 156] + adrp x0, .LC190 + add x0, x0, :lo12:.LC190 + bl printk + b .L2696 .size ftl_info_blk_init, .-ftl_info_blk_init .align 2 .global ftl_ext_info_flush .type ftl_ext_info_flush, %function ftl_ext_info_flush: - stp x29, x30, [sp, -80]! + stp x29, x30, [sp, -96]! add x29, sp, 0 - stp x21, x22, [sp,32] - stp x19, x20, [sp,16] - stp x23, x24, [sp,48] - str x25, [sp,64] + stp x19, x20, [sp, 16] + adrp x19, .LANCHOR0 + stp x21, x22, [sp, 32] + stp x23, x24, [sp, 48] + stp x25, x26, [sp, 64] + str x27, [sp, 80] bl timer_get_time mov w1, 100 - adrp x21, .LANCHOR0 udiv w0, w0, w1 - add x1, x21, :lo12:.LANCHOR0 - ldr x1, [x1,1120] - ldr w3, [x1,520] + add x1, x19, :lo12:.LANCHOR0 + ldr x1, [x1, 1128] + ldr w3, [x1, 520] cmp w0, w3 - bls .L2656 - ldr w2, [x1,12] + bls .L2698 + ldr w2, [x1, 12] sub w2, w2, w3 add w2, w2, w0 - str w2, [x1,12] - b .L2669 -.L2656: - bcs .L2657 -.L2669: - str w0, [x1,520] -.L2657: - adrp x23, .LANCHOR4 - adrp x22, .LANCHOR5 - add x23, x23, :lo12:.LANCHOR4 - add x22, x22, :lo12:.LANCHOR5 + str w2, [x1, 12] +.L2712: + str w0, [x1, 520] + b .L2699 +.L2698: + bcc .L2712 +.L2699: + adrp x22, .LANCHOR4 + add x22, x22, :lo12:.LANCHOR4 + add x19, x19, :lo12:.LANCHOR0 + add x22, x22, 608 mov w0, 0 - add x23, x23, 592 - add x24, x22, 384 bl ftl_total_vpn_update -.L2661: - add x0, x21, :lo12:.LANCHOR0 - adrp x3, .LANCHOR3 - add x2, x3, :lo12:.LANCHOR3 - mov x19, x3 - ldr x0, [x0,3392] - ldr w1, [x0,56] - add w1, w1, 1 - str w1, [x0,56] - ldrh w1, [x0,140] - ldrh w0, [x2,1384] +.L2700: + adrp x23, .LANCHOR3 +.L2703: + ldr x1, [x19, 3384] + ldr w0, [x1, 56] + add w0, w0, 1 + str w0, [x1, 56] + add x0, x23, :lo12:.LANCHOR3 + ldrh w1, [x1, 140] + ldrh w0, [x0, 1376] cmp w1, w0 - bcc .L2659 + bcc .L2701 bl ftl_ext_alloc_new_blk -.L2659: - add x0, x21, :lo12:.LANCHOR0 - ldr x0, [x0,3392] - ldrh w1, [x0,130] +.L2701: + ldr x0, [x19, 3384] + ldrh w1, [x0, 130] mov w0, 65535 cmp w1, w0 - bne .L2660 - adrp x0, .LC0 - mov x1, x23 + bne .L2702 + mov x1, x22 mov w2, 2211 + adrp x0, .LC0 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L2660: - add x20, x21, :lo12:.LANCHOR0 - add x3, x19, :lo12:.LANCHOR3 +.L2702: + add x25, x23, :lo12:.LANCHOR3 + ldr x1, [x19, 3384] + ldrb w20, [x19, 1205] mov w0, 24 - ldr x4, [x20,3392] - ldrb w1, [x20,1257] - ldrh w19, [x3,1312] - ldrh w2, [x4,130] - sub w1, w0, w1 - sub w1, w1, w19 - mov w19, 1 - asr w25, w2, w1 - lsl w1, w19, w1 - sub w19, w1, #1 - ldrh w0, [x4,140] - and w2, w19, w2 - ldrh w19, [x3,1418] + adrp x24, .LANCHOR5 + add x21, x24, :lo12:.LANCHOR5 + sub w20, w0, w20 + ldrh w0, [x25, 1304] + ldrh w2, [x1, 130] + sub w0, w20, w0 + mov w20, 1 + lsl w20, w20, w0 + sub w20, w20, #1 + asr w26, w2, w0 + and w20, w20, w2 + ldrh w0, [x1, 140] + sxth w20, w20 + ldrh w2, [x25, 1410] mov w1, 0 - sxth w2, w2 - madd w19, w2, w19, w0 - ldrb w2, [x20,3360] - mov x0, x24 + madd w20, w20, w2, w0 + ldr x0, [x21, 376] + ldrb w2, [x25, 1946] lsl w2, w2, 1 bl ftl_memset - str wzr, [x24] - ldr x0, [x20,3392] - ldrb w1, [x20,3360] - ldr w0, [x0,56] + ldr x0, [x21, 376] + str wzr, [x0] + ldr x1, [x19, 3384] + ldr x0, [x21, 376] + ldr w1, [x1, 56] + str w1, [x0, 4] + ldrb w1, [x25, 1946] + ldr x0, [x21, 408] + ldr x27, [x21, 376] lsl w1, w1, 9 - str w0, [x24,4] - ldr x0, [x22,664] bl js_hash - str w0, [x24,8] - ldr x2, [x22,664] - mov w1, w19 - ldrb w4, [x20,3360] - mov w0, w25 - mov x3, x24 + ldr x2, [x21, 408] + mov w1, w20 + ldrb w4, [x25, 1946] + ldr x3, [x21, 376] + str w0, [x27, 8] + mov w0, w26 bl ftl_prog_page - ldr x1, [x20,3392] - ldrh w2, [x1,140] - add w2, w2, 1 - uxth w2, w2 - strh w2, [x1,140] - cmp w2, 1 - beq .L2661 + ldr x2, [x19, 3384] + ldrh w1, [x2, 140] + add w1, w1, 1 + and w1, w1, 65535 + strh w1, [x2, 140] + cmp w1, 1 + beq .L2703 cmn w0, #1 - beq .L2662 - ldrb w0, [x22,658] - cbz w0, .L2663 -.L2662: -.L2658: - adrp x0, .LANCHOR5 - add x0, x0, :lo12:.LANCHOR5 - strb wzr, [x0,658] - b .L2661 -.L2663: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldr x25, [sp,64] - ldp x29, x30, [sp], 80 + beq .L2704 + ldrb w0, [x21, 402] + cbz w0, .L2705 +.L2704: + add x24, x24, :lo12:.LANCHOR5 + strb wzr, [x24, 402] + b .L2700 +.L2705: + mov w0, 0 + ldr x27, [sp, 80] + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] + ldp x29, x30, [sp], 96 ret .size ftl_ext_info_flush, .-ftl_ext_info_flush .align 2 .global ftl_ext_info_init .type ftl_ext_info_init, %function ftl_ext_info_init: - stp x29, x30, [sp, -112]! + stp x29, x30, [sp, -128]! mov w4, 4 add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x19, .LANCHOR0 - adrp x20, .LANCHOR5 - stp x21, x22, [sp,32] - add x22, x19, :lo12:.LANCHOR0 + stp x21, x22, [sp, 32] adrp x21, .LANCHOR3 - stp x25, x26, [sp,64] - stp x23, x24, [sp,48] - stp x27, x28, [sp,80] - add x1, x21, :lo12:.LANCHOR3 - add x3, x20, :lo12:.LANCHOR5 - ldr x0, [x22,3392] - add x3, x3, 384 - ldrb w2, [x22,1257] - strh wzr, [x1,1952] - ldrh w23, [x0,130] + stp x19, x20, [sp, 16] + adrp x19, .LANCHOR0 + add x22, x19, :lo12:.LANCHOR0 + stp x23, x24, [sp, 48] + stp x25, x26, [sp, 64] + add x2, x21, :lo12:.LANCHOR3 + stp x27, x28, [sp, 80] + adrp x25, .LANCHOR5 + ldr x0, [x22, 3384] + ldrb w20, [x22, 1205] + strh wzr, [x2, 1944] + ldrh w1, [x0, 130] mov w0, 24 - ldrh w1, [x1,1312] - sub w0, w0, w2 - ldr x2, [x3,280] - sub w0, w0, w1 - mov w1, 1 - asr w26, w23, w0 - lsl w0, w1, w0 - sub w0, w0, #1 - and w23, w0, w23 - uxtb w28, w26 - mov w1, w23 - mov w0, w28 + sub w0, w0, w20 + ldrh w20, [x2, 1304] + sub w0, w0, w20 + mov w20, 1 + asr w24, w1, w0 + and w27, w24, 255 + lsl w20, w20, w0 + add x0, x25, :lo12:.LANCHOR5 + sub w20, w20, #1 + and w20, w20, w1 + ldr x3, [x0, 376] + mov w1, w20 + ldr x2, [x0, 408] + mov w0, w27 bl flash_get_last_written_page - sxth w25, w0 + sxth w23, w0 adrp x0, .LANCHOR2 - str x0, [x29,104] - mov w24, w25 - ldr w1, [x0,#:lo12:.LANCHOR2] - tbz x1, 12, .L2671 - ldr x5, [x22,3392] + stp x0, x25, [x29, 112] + ldr w1, [x0, #:lo12:.LANCHOR2] + tbz x1, 12, .L2714 + ldr x0, [x22, 3384] adrp x1, .LANCHOR4 - adrp x0, .LC191 add x1, x1, :lo12:.LANCHOR4 - add x0, x0, :lo12:.LC191 - add x1, x1, 616 - ldrh w5, [x5,130] + and w4, w24, 65535 + mov w3, w23 mov w2, 2256 - mov w3, w25 - uxth w4, w26 + add x1, x1, 632 + ldrh w5, [x0, 130] + adrp x0, .LC191 + add x0, x0, :lo12:.LC191 bl printk -.L2671: - add x20, x20, :lo12:.LANCHOR5 - adrp x27, .LC192 - mov w22, w25 - add x26, x20, 384 - add x27, x27, :lo12:.LC192 -.L2672: - tbnz w22, #31, .L2677 - add x0, x21, :lo12:.LANCHOR3 - add x5, x19, :lo12:.LANCHOR0 - ldr x2, [x20,664] - mov x3, x26 - str x5, [x29,96] - ldrh w1, [x0,1418] - mov w0, w28 - ldrb w4, [x5,3360] - madd w1, w23, w1, w22 +.L2714: + adrp x26, .LC192 + and w22, w23, 65535 + add x25, x21, :lo12:.LANCHOR3 + add x26, x26, :lo12:.LC192 + mov w24, 0 +.L2715: + sub w0, w22, w24 + tbnz x0, 15, .L2720 + ldr x0, [x29, 120] + sub w1, w23, w24 + ldrb w4, [x25, 1946] + add x28, x0, :lo12:.LANCHOR5 + ldrh w0, [x25, 1410] + ldr x3, [x28, 376] + madd w1, w0, w20, w1 + ldr x2, [x28, 408] + mov w0, w27 bl flash_read_page_en cmp w0, 512 - beq .L2673 - cmn w0, #1 - beq .L2673 - ldr x5, [x29,96] - ldr x0, [x5,1120] - ldr w1, [x0] - mov w0, 20038 - movk w0, 0x4549, lsl 16 - cmp w1, w0 - bne .L2673 - ldr w2, [x26,8] - cbnz w2, .L2674 -.L2677: + ccmn w0, #1, 4, ne + beq .L2716 + add x0, x19, :lo12:.LANCHOR0 + mov w1, 20038 + movk w1, 0x4549, lsl 16 + ldr x0, [x0, 1128] + ldr w0, [x0] + cmp w0, w1 + bne .L2716 + ldr x0, [x28, 376] + ldr w2, [x0, 8] + cbnz w2, .L2717 +.L2720: bl zftl_sblk_list_init add x0, x19, :lo12:.LANCHOR0 - ldr x0, [x0,3392] - ldrh w1, [x0,140] - cmp w1, w25 - bgt .L2676 - add w24, w24, 1 - strh w24, [x0,140] + ldr x0, [x0, 3384] + ldrh w1, [x0, 140] + cmp w1, w23 + bgt .L2719 + add w22, w22, 1 + strh w22, [x0, 140] bl ftl_ext_info_flush - b .L2676 -.L2674: - ldrb w1, [x5,3360] - ldr x0, [x20,664] - lsl w1, w1, 9 - str x2, [x29,96] - bl js_hash - ldr x2, [x29,96] - cmp w2, w0 - beq .L2677 - ldr w1, [x26,8] - mov x0, x27 - bl printk -.L2673: - sub w22, w22, #1 - sxth w22, w22 - b .L2672 -.L2676: +.L2719: add x19, x19, :lo12:.LANCHOR0 - ldr x20, [x19,1120] + ldr x20, [x19, 1128] bl timer_get_time mov w1, 100 udiv w0, w0, w1 - str w0, [x20,520] - ldr x20, [x19,1120] + str w0, [x20, 520] + ldr x20, [x19, 1128] bl timer_get_time - str w0, [x20,604] - ldr x0, [x19,1120] mov w1, -1 - strh w1, [x0,584] - strh w1, [x0,586] - strh w1, [x0,588] - strh w1, [x0,590] + str w0, [x20, 604] + ldr x0, [x19, 1128] + strh w1, [x0, 584] + strh w1, [x0, 586] + strh w1, [x0, 588] + strh w1, [x0, 590] mov w1, 65535 - str w1, [x0,560] + str w1, [x0, 560] mov w1, -1 - str w1, [x0,564] - ldr x1, [x29,104] - str wzr, [x0,608] - ldr w1, [x1,#:lo12:.LANCHOR2] - tbz x1, 12, .L2679 - ldr w2, [x0,520] - ldr w3, [x0,12] - str x2, [x29,96] - str x3, [x29,104] + str w1, [x0, 564] + ldr x1, [x29, 112] + str wzr, [x0, 608] + ldr w1, [x1, #:lo12:.LANCHOR2] + tbz x1, 12, .L2722 + ldr w20, [x0, 12] + ldr w19, [x0, 520] bl timer_get_time - mov w4, w0 adrp x1, .LANCHOR4 - adrp x0, .LC193 add x1, x1, :lo12:.LANCHOR4 - ldr x2, [x29,96] - ldr x3, [x29,104] + mov w4, w0 + mov w3, w20 + adrp x0, .LC193 + mov w2, w19 + add x1, x1, 632 add x0, x0, :lo12:.LC193 - add x1, x1, 616 bl printk -.L2679: +.L2722: add x21, x21, :lo12:.LANCHOR3 mov w0, -1 - ldp x19, x20, [sp,16] - ldp x23, x24, [sp,48] - strh w0, [x21,1288] + ldp x19, x20, [sp, 16] + strh w0, [x21, 1280] mov w0, 0 - ldp x21, x22, [sp,32] - ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 112 + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] + ldp x27, x28, [sp, 80] + ldp x29, x30, [sp], 128 ret +.L2717: + ldr x0, [x28, 408] + ldrb w1, [x25, 1946] + str w2, [x29, 108] + lsl w1, w1, 9 + bl js_hash + ldr w2, [x29, 108] + cmp w2, w0 + beq .L2720 + ldr x0, [x28, 376] + ldr w1, [x0, 8] + mov x0, x26 + bl printk +.L2716: + add w24, w24, 1 + b .L2715 .size ftl_ext_info_init, .-ftl_ext_info_init .align 2 .global ftl_prog_ppa_page .type ftl_prog_ppa_page, %function ftl_prog_ppa_page: - mov w8, w0 - adrp x0, .LANCHOR0+1257 stp x29, x30, [sp, -16]! - mov w5, 24 - mov x10, x1 - add x29, sp, 0 - ldrb w6, [x0,#:lo12:.LANCHOR0+1257] - mov x9, x2 - mov w4, w3 - mov x2, x10 - sub w7, w5, w6 + adrp x4, .LANCHOR0+1205 mov w5, 1 - lsl w6, w5, w6 - lsl w5, w5, w7 - lsr w0, w8, w7 - sub w6, w6, #1 - sub w1, w5, #1 - and w0, w0, w6 - and w1, w1, w8 - mov x3, x9 + add x29, sp, 0 + ldrb w6, [x4, #:lo12:.LANCHOR0+1205] + mov w4, 24 + sub w4, w4, w6 + lsl w7, w5, w4 + sub w7, w7, #1 + lsl w5, w5, w6 + sub w6, w5, #1 + lsr w5, w0, w4 + mov w4, w3 + mov x3, x2 + mov x2, x1 + and w1, w7, w0 + and w0, w6, w5 bl ftl_prog_page ldp x29, x30, [sp], 16 ret @@ -17232,599 +17126,603 @@ ftl_prog_ppa_page: .global ftl_write_last_log_page .type ftl_write_last_log_page, %function ftl_write_last_log_page: + ldrh w1, [x0, 6] + cmp w1, 1 + bne .L2737 stp x29, x30, [sp, -64]! add x29, sp, 0 - stp x21, x22, [sp,32] - stp x19, x20, [sp,16] - stp x23, x24, [sp,48] - adrp x22, .LANCHOR3 - mov w19, -1 - ldrh w1, [x0,6] - add x22, x22, :lo12:.LANCHOR3 - ldrh w23, [x0,12] - cmp w1, 1 - ldr x21, [x22,1936] - bne .L2694 - mov x20, x0 + stp x19, x20, [sp, 16] + adrp x20, .LANCHOR3 + add x20, x20, :lo12:.LANCHOR3 + stp x21, x22, [sp, 32] + str x23, [sp, 48] + mov x19, x0 + ldr x21, [x20, 1928] + ldrh w23, [x0, 12] bl ftl_get_new_free_page + mov w22, w0 cmn w0, #1 - mov w24, w0 - mov w19, 0 - beq .L2694 - ldrh w0, [x20] - add x23, x21, w23, uxth 2 - adrp x21, .LANCHOR5 - add x21, x21, :lo12:.LANCHOR5 + beq .L2738 + ldrh w0, [x19] + adrp x19, .LANCHOR5 + add x19, x19, :lo12:.LANCHOR5 + add x21, x21, w23, uxth 2 bl ftl_vpn_decrement - add x20, x21, 704 - mov w0, 15555 - ldrh w1, [x22,1384] - movk w0, 0xf55f, lsl 16 - str w0, [x21,704] - ldrb w0, [x22,1329] + ldr x0, [x19, 416] + mov w1, 15555 + movk w1, 0xf55f, lsl 16 + str w1, [x0] + ldrb w0, [x20, 1321] + ldrh w1, [x20, 1376] + ldr x23, [x19, 416] mul w1, w1, w0 - mov x0, x23 + mov x0, x21 lsl w1, w1, 2 bl js_hash - str w0, [x21,708] - add x1, x21, 720 + str w0, [x23, 4] mov x2, 0 mov w0, 2 - str w19, [x21,712] - str w19, [x21,716] - str w19, [x21,720] + ldr x1, [x19, 416] + stp wzr, wzr, [x1, 8] + str wzr, [x1, 16]! bl ftl_debug_info_fill - adrp x3, .LANCHOR0+3360 - mov w0, w24 - mov x1, x23 - mov x2, x20 - ldrb w3, [x3,#:lo12:.LANCHOR0+3360] + ldrb w3, [x20, 1946] + mov x1, x21 + ldr x2, [x19, 416] + mov w0, w22 bl ftl_prog_ppa_page -.L2694: - mov w0, w19 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] +.L2738: + mov w0, 0 + ldr x23, [sp, 48] + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] ldp x29, x30, [sp], 64 ret +.L2737: + mov w0, -1 + ret .size ftl_write_last_log_page, .-ftl_write_last_log_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] + sub sp, sp, #224 + stp x29, x30, [sp, 48] add x29, sp, 48 - stp x21, x22, [sp,80] + stp x19, x20, [sp, 64] + and w20, w0, 65535 + stp x21, x22, [sp, 80] adrp x21, .LANCHOR0 - uxth w22, w0 add x0, x21, :lo12:.LANCHOR0 - stp x19, x20, [sp,64] - stp x23, x24, [sp,96] - stp x25, x26, [sp,112] - stp x27, x28, [sp,128] - ldrh w0, [x0,1088] - cmp w0, w22 - bls .L2698 - adrp x20, .LANCHOR3 - add x0, x20, :lo12:.LANCHOR3 - ldrb w1, [x0,1344] - cbnz w1, .L2700 - ldrb w0, [x0,1330] - cbz w0, .L2698 -.L2700: + stp x23, x24, [sp, 96] + stp x25, x26, [sp, 112] + stp x27, x28, [sp, 128] + ldrh w0, [x0, 1096] + cmp w0, w20 + bls .L2743 + adrp x23, .LANCHOR3 + add x0, x23, :lo12:.LANCHOR3 + ldrb w1, [x0, 1336] + cbnz w1, .L2745 + ldrb w0, [x0, 1322] + cbz w0, .L2743 +.L2745: add x0, x21, :lo12:.LANCHOR0 - ldrb w1, [x0,1268] - cbnz w1, .L2698 - ldr x0, [x0,1096] - ubfiz x19, x22, 2, 16 - mov w24, 1 - add x0, x0, x19 - ldrb w0, [x0,2] + ldrb w1, [x0, 1212] + cbnz w1, .L2743 + ldr x0, [x0, 1104] + ubfiz x14, x20, 2, 16 + add x0, x0, x14 + ldrb w0, [x0, 2] and w0, w0, 224 cmp w0, 160 - bne .L2701 - add x0, x20, :lo12:.LANCHOR3 - ldrb w24, [x0,1328] -.L2701: - add x23, x29, 128 - mov w0, w22 - add x1, x23, 16 - strh w22, [x29,128] - mov w27, 0 - adrp x26, .LC195 + bne .L2767 + add x0, x23, :lo12:.LANCHOR3 + ldrb w26, [x0, 1320] +.L2746: + add x22, x29, 176 + add x24, x23, :lo12:.LANCHOR3 + mov w0, w20 + adrp x27, .LC195 + add x27, x27, :lo12:.LC195 + mov w28, 0 + strh w20, [x22, -32]! + add x1, x22, 16 bl ftl_get_blk_list_in_sblk - uxtb w0, w0 - add x1, x20, :lo12:.LANCHOR3 - strb w0, [x29,137] - strh wzr, [x29,130] - mov w28, w27 - strb wzr, [x29,133] - mov w25, w27 - ldrh w1, [x1,1384] - add x26, x26, :lo12:.LC195 - strh wzr, [x29,138] + ldrh w1, [x24, 1376] + and w0, w0, 255 + strb w0, [x29, 153] + strh wzr, [x29, 146] + strb wzr, [x29, 149] mul w0, w0, w1 - strh w0, [x29,134] + strh wzr, [x29, 154] + strh w0, [x29, 150] add x0, x21, :lo12:.LANCHOR0 - ldr x0, [x0,1096] - add x1, x0, x19 - ldrh w4, [x0,x19] - ldr w5, [x0,x19] + ldr x0, [x0, 1104] + add x1, x0, x14 + ldr w5, [x0, x14] + ldrb w2, [x1, 2] + mov w1, w20 + ldrh w4, [x0, x14] adrp x0, .LC194 - ldrb w3, [x1,2] - and w4, w4, 2047 - mov w1, w22 ubfx x5, x5, 11, 8 - ubfx x2, x3, 5, 3 add x0, x0, :lo12:.LC194 - ubfx x3, x3, 3, 2 + ubfx x3, x2, 3, 2 + and w4, w4, 2047 + ubfx x2, x2, 5, 3 bl printk mov w0, 1 bl buf_alloc mov x19, x0 -.L2702: - add x0, x20, :lo12:.LANCHOR3 - ldrh w0, [x0,1384] + mov x11, x24 + mov w9, 0 + mov w10, 0 +.L2747: + ldrh w0, [x11, 1376] cmp w0, w28 - bls .L2726 - lsl w0, w28, 1 - add w25, w0, w28 - sub w0, w0, #1 - sub w1, w25, #1 - str w0, [x29,120] - str w1, [x29,124] - mov w25, 0 -.L2714: - ldrb w0, [x23,9] - cmp w0, w25 - bls .L2738 - sxtw x0, w25 - mov w27, 1 - str x0, [x29,112] -.L2713: - cmp w27, w24 - bhi .L2739 - ldr x0, [x29,112] - add x0, x0, 8 - ldrh w2, [x23,x0,lsl 1] + bls .L2755 + lsl w24, w28, 1 + mov w10, 0 + sub w0, w24, #1 + add w24, w24, w28 + sub w24, w24, #1 + str w0, [x29, 136] + b .L2758 +.L2767: + mov w26, 1 + b .L2746 +.L2756: + ldrh w12, [x22, x25] mov w0, 65535 - cmp w2, w0 - beq .L2704 - add x1, x20, :lo12:.LANCHOR3 - cmp w24, 3 - ldrh w0, [x1,1418] - mul w0, w2, w0 - bne .L2705 - add x3, x21, :lo12:.LANCHOR0 - ldrb w3, [x3,1269] - cbz w3, .L2706 - ldr w3, [x29,124] - b .L2737 -.L2706: - add w0, w0, w28 - orr w3, w0, w27, lsl 24 - b .L2707 -.L2705: - cmp w24, 2 - add w3, w0, w28 - bne .L2707 - ldr w3, [x29,120] -.L2737: - add w0, w0, w3 - ldrb w3, [x1,1328] - add w0, w0, w27 + cmp w12, w0 + bne .L2748 +.L2754: + add w9, w9, 1 + and w9, w9, 65535 +.L2749: + cmp w26, w9 + bcs .L2756 + add w10, w10, 1 + and w10, w10, 65535 +.L2758: + ldrb w0, [x29, 153] + cmp w0, w10 + bls .L2757 + sxtw x25, w10 + mov w9, 1 + add x25, x25, 8 + lsl x25, x25, 1 + b .L2749 +.L2748: + ldrh w3, [x11, 1410] + cmp w26, 3 + mul w3, w3, w12 + add w0, w3, w9 + bne .L2750 + add x1, x21, :lo12:.LANCHOR0 + ldrb w1, [x1, 1213] + cbz w1, .L2751 + ldrb w3, [x11, 1320] + add w0, w0, w24 +.L2781: orr w3, w0, w3, lsl 24 -.L2707: - str w3, [x19,40] - mov x0, x19 + b .L2752 +.L2751: + add w3, w28, w3 + orr w3, w3, w9, lsl 24 +.L2752: + str w3, [x19, 40] mov w1, 1 - str x2, [x29,96] - str x3, [x29,104] + str x11, [x29, 104] + mov x0, x19 + str w9, [x29, 112] + stp w12, w10, [x29, 124] + str w3, [x29, 132] bl sblk_read_page - ldr w4, [x19,52] - ldr x3, [x29,104] - cmp w4, 512 - ldr x2, [x29,96] - cset w11, eq - cmn w4, #1 - beq .L2727 - cbz w11, .L2704 -.L2727: - ldr x7, [x19,8] - ldr x0, [x19,24] - str x11, [x29,104] - ldr w1, [x7,12] + ldr w13, [x19, 52] + ldr w9, [x29, 112] + cmp w13, 512 + ldr w3, [x29, 132] + ccmn w13, #1, 4, ne + ldr x11, [x29, 104] + ldp w12, w10, [x29, 124] + bne .L2754 + ldr x1, [x19, 24] + mov w4, w13 + ldr x0, [x19, 8] + str x11, [x29, 112] + stp w9, w10, [x29, 124] + ldr w2, [x1, 12] + str w2, [sp, 32] + str w13, [x29, 132] + ldr w2, [x1, 8] + str w2, [sp, 24] + ldr w2, [x1, 4] + str w2, [sp, 16] + mov w2, w28 + ldr w1, [x1] + str w1, [sp, 8] + ldr w1, [x0, 12] str w1, [sp] - ldr w1, [x0] - str w1, [sp,8] - ldr w1, [x0,4] - str w1, [sp,16] - ldr w1, [x0,8] - str w1, [sp,24] - mov w1, w2 - mov w2, w28 - ldr w0, [x0,12] - str w0, [sp,32] - mov x0, x26 - ldr w5, [x7] - ldr w6, [x7,4] - ldr w7, [x7,8] + mov w1, w12 + ldp w5, w6, [x0] + ldr w7, [x0, 8] + mov x0, x27 bl printk - ldr x11, [x29,104] - cbnz w11, .L2726 -.L2704: - add w9, w27, 1 - uxth w27, w9 - b .L2713 -.L2739: - add w10, w25, 1 - uxth w25, w10 - b .L2714 -.L2738: - add w8, w28, 1 - uxth w28, w8 - b .L2702 -.L2726: -.L2711: + ldr w13, [x29, 132] + ldp w9, w10, [x29, 124] + cmp w13, 512 + ldr x11, [x29, 112] + bne .L2754 +.L2755: + add x24, x23, :lo12:.LANCHOR3 + mov w4, w9 + mov w3, w10 + mov w2, w28 + mov w1, w20 adrp x0, .LC196 - mov w3, w25 - mov w4, w27 - mov w2, w28 - mov w1, w22 - add x25, x21, :lo12:.LANCHOR0 add x0, x0, :lo12:.LC196 - adrp x26, .LC197 - mov w24, w28 - add x26, x26, :lo12:.LC197 bl printk - mov w27, 24 - ldrb w2, [x25,3360] + ldr x0, [x19, 8] mov w1, 0 - ldr x0, [x19,8] - mov w28, 1 + ldrb w2, [x24, 1946] + adrp x26, .LC197 + add x26, x26, :lo12:.LC197 lsl w2, w2, 9 bl ftl_memset - ldrb w2, [x25,3360] + ldr x0, [x19, 24] mov w1, 0 - ldr x0, [x19,24] + ldrb w2, [x24, 1946] lsl w2, w2, 1 bl ftl_memset -.L2715: - add x0, x20, :lo12:.LANCHOR3 - ldrh w0, [x0,1384] - cmp w0, w24 - bls .L2721 - lsl w0, w24, 1 +.L2759: + add x24, x23, :lo12:.LANCHOR3 + ldrh w0, [x24, 1376] + cmp w0, w28 + bls .L2765 + add x0, x21, :lo12:.LANCHOR0 + lsl w27, w28, 1 mov w25, 0 - str w0, [x29,124] -.L2722: - ldrb w0, [x23,9] - cmp w0, w25 - bls .L2740 + str x0, [x29, 136] + b .L2766 +.L2750: + cmp w26, 2 + bne .L2753 + ldr w1, [x29, 136] + ldrb w3, [x11, 1320] + add w0, w1, w0 + b .L2781 +.L2753: + add w3, w28, w3 + b .L2752 +.L2757: + add w8, w28, 1 + and w28, w8, 65535 + b .L2747 +.L2764: adrp x0, .LANCHOR2 - ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 12, .L2716 - mov x0, x26 - mov w1, w24 + ldr w0, [x0, #:lo12:.LANCHOR2] + tbz x0, 12, .L2760 mov w2, w25 + mov w1, w28 + mov x0, x26 bl printk -.L2716: - add x1, x20, :lo12:.LANCHOR3 +.L2760: + ldrb w1, [x24, 1336] sxtw x0, w25 - ldrb w5, [x1,1344] - ldrh w2, [x1,1418] - cbz w5, .L2717 + ldrh w2, [x24, 1410] + cbz w1, .L2761 add x0, x0, 8 - ldrh w0, [x23,x0,lsl 1] - mul w2, w0, w2 + ldrh w1, [x22, x0, lsl 1] mov x0, x19 - orr w2, w2, w24 - str w2, [x19,40] + mul w1, w1, w2 + orr w1, w1, w28 + str w1, [x19, 40] bl sblk_3d_tlc_dump_prog - b .L2718 -.L2717: - add x0, x0, 8 - ldrb w1, [x1,1328] - cmp w1, 2 - ldrh w0, [x23,x0,lsl 1] - mul w2, w0, w2 - bne .L2719 - ldr w0, [x29,124] - orr w2, w2, w0 - mov x0, x19 - orr w2, w2, 33554432 - str w2, [x19,40] - bl sblk_mlc_dump_prog - b .L2718 -.L2719: - add x4, x21, :lo12:.LANCHOR0 - orr w2, w2, w24 - str w2, [x19,40] - ldrb w0, [x4,1257] - ldrb w4, [x4,3360] - sub w1, w27, w0 - lsl w0, w28, w0 - sub w0, w0, #1 - lsr w3, w2, w1 - lsl w1, w0, w1 - and w0, w3, w0 - bic w1, w2, w1 - ldr x3, [x19,24] - ldr x2, [x19,8] - bl flash_prog_page_en -.L2718: +.L2762: add w25, w25, 1 - uxth w25, w25 - b .L2722 -.L2740: - add w24, w24, 1 - uxth w24, w24 - b .L2715 -.L2721: + and w25, w25, 65535 +.L2766: + ldrb w0, [x29, 153] + cmp w0, w25 + bhi .L2764 + add w8, w28, 1 + and w28, w8, 65535 + b .L2759 +.L2761: + add x0, x0, 8 + ldrb w1, [x24, 1320] + cmp w1, 2 + ldrh w1, [x22, x0, lsl 1] + mul w1, w1, w2 + bne .L2763 + orr w1, w1, w27 + mov x0, x19 + orr w1, w1, 33554432 + str w1, [x19, 40] + bl sblk_mlc_dump_prog + b .L2762 +.L2763: + ldr x0, [x29, 136] + mov w6, 1 + ldrb w4, [x24, 1946] + orr w1, w1, w28 + ldr x3, [x19, 24] + mov w5, 0 + str w1, [x19, 40] + ldrb w2, [x0, 1205] + mov w0, 24 + sub w0, w0, w2 + lsl w6, w6, w2 + ldr x2, [x19, 8] + sub w6, w6, #1 + lsl w7, w6, w0 + lsr w0, w1, w0 + bic w1, w1, w7 + and w0, w0, w6 + bl flash_prog_page_en + b .L2762 +.L2765: mov x0, x19 bl zbuf_free adrp x0, .LC198 - mov w1, w22 + mov w1, w20 add x0, x0, :lo12:.LC198 bl printk -.L2698: - 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 +.L2743: + ldp x19, x20, [sp, 64] + ldp x21, x22, [sp, 80] + ldp x23, x24, [sp, 96] + ldp x25, x26, [sp, 112] + ldp x27, x28, [sp, 128] + ldp x29, x30, [sp, 48] + add sp, sp, 224 ret .size ftl_dump_write_open_sblk, .-ftl_dump_write_open_sblk .align 2 .global gc_ink_check_sblk .type gc_ink_check_sblk, %function gc_ink_check_sblk: - stp x29, x30, [sp, -96]! + stp x29, x30, [sp, -80]! add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] adrp x19, .LANCHOR0 - str x27, [sp,80] add x0, x19, :lo12:.LANCHOR0 - mov x20, x19 - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] - ldrh w1, [x0,5534] - ldr x21, [x0,5608] + stp x21, x22, [sp, 32] + stp x23, x24, [sp, 48] + stp x25, x26, [sp, 64] + ldrh w1, [x0, 5526] + ldr x21, [x0, 5600] cmp w1, 3 - bhi .L2742 - adrp x0, .L2744 - add x0, x0, :lo12:.L2744 - ldrb w0, [x0,w1,uxtw] - adr x1, .Lrtx2744 - add x0, x1, w0, sxtb #2 + bhi .L2783 + adrp x0, .L2785 + mov x20, x19 + add x0, x0, :lo12:.L2785 + ldrh w0, [x0,w1,uxtw #1] + adr x1, .Lrtx2785 + add x0, x1, w0, sxth #2 br x0 -.Lrtx2744: +.Lrtx2785: .section .rodata .align 0 .align 2 -.L2744: - .byte (.L2743 - .Lrtx2744) / 4 - .byte (.L2745 - .Lrtx2744) / 4 - .byte (.L2746 - .Lrtx2744) / 4 - .byte (.L2747 - .Lrtx2744) / 4 +.L2785: + .2byte (.L2784 - .Lrtx2785) / 4 + .2byte (.L2786 - .Lrtx2785) / 4 + .2byte (.L2787 - .Lrtx2785) / 4 + .2byte (.L2788 - .Lrtx2785) / 4 .text -.L2743: +.L2784: add x19, x19, :lo12:.LANCHOR0 - ldrh w0, [x19,3380] + ldrh w0, [x19, 3372] cmp w0, 7 - bls .L2741 - ldrb w0, [x19,3362] + bls .L2782 + ldrb w0, [x19, 3353] cmp w0, 2 - bls .L2741 + bls .L2782 adrp x20, .LANCHOR3 - mov w1, 0 add x20, x20, :lo12:.LANCHOR3 - mov w22, 65535 - add x20, x20, 1408 - mov x0, x20 + add x23, x20, 1400 + mov w1, 0 + mov x0, x23 bl _list_get_gc_head_node - uxth w0, w0 + and w0, w0, 65535 + mov w22, 65535 cmp w0, w22 - beq .L2741 + beq .L2782 + ldr x1, [x19, 1104] ubfiz x0, x0, 2, 16 - ldr x1, [x19,1096] - ldrh w0, [x1,x0] + ldrh w0, [x1, x0] and w0, w0, 2047 cmp w0, 2 - bgt .L2741 + bgt .L2782 mov w0, 1 - add x21, x19, 3424 bl buf_alloc - str x0, [x19,5608] - cbz x0, .L2741 - mov x0, x20 + str x0, [x19, 5600] + add x21, x19, 3416 + cbz x0, .L2782 + add x2, x19, 3372 mov w1, 0 - add x2, x19, 3380 + mov x0, x23 bl _list_pop_index_node - uxth w20, w0 - cmp w20, w22 - bne .L2751 - ldr x0, [x19,5608] + and w14, w0, 65535 + cmp w14, w22 + bne .L2792 + ldr x0, [x19, 5600] bl zbuf_free - str xzr, [x19,5608] - b .L2741 -.L2751: - mov w0, w20 + str xzr, [x19, 5600] +.L2782: + 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 +.L2792: + mov w0, w14 add x1, x21, 2162 bl ftl_get_blk_list_in_sblk - strb w0, [x21,2155] + strb w0, [x21, 2155] mov w0, 1 - strh w20, [x19,5570] - strh w0, [x19,5534] - ubfiz x20, x20, 2, 16 - ldr x0, [x19,1096] - strh wzr, [x19,5572] - ldrb w2, [x19,3360] - ldrh w0, [x0,x20] - tbz x0, 0, .L2752 - ldr x0, [x19,5608] - mov w1, 85 - ldr x0, [x0,8] - b .L2766 -.L2752: - ldr x0, [x19,5608] - mov w1, 170 - ldr x0, [x0,8] -.L2766: + strh w0, [x19, 5526] + ldr x0, [x19, 1104] + strh w14, [x19, 5562] + ubfiz x14, x14, 2, 16 + strh wzr, [x19, 5564] + ldrb w2, [x20, 1946] + ldrh w0, [x0, x14] + tbz x0, 0, .L2793 + ldr x0, [x19, 5600] lsl w2, w2, 9 + mov w1, 85 +.L2808: + ldr x0, [x0, 8] bl ftl_memset - b .L2741 -.L2745: - add x19, x19, :lo12:.LANCHOR0 + b .L2782 +.L2793: + lsl w2, w2, 9 + mov w1, 170 + ldr x0, [x19, 5600] + b .L2808 +.L2786: + add x20, x19, :lo12:.LANCHOR0 mov w1, 0 - ldrh w0, [x19,5570] + ldrh w0, [x20, 5562] bl ftl_erase_sblk mov w0, 2 - strh w0, [x19,5534] - b .L2741 -.L2746: + strh w0, [x20, 5526] + b .L2782 +.L2787: add x19, x19, :lo12:.LANCHOR0 - mov w23, 0 - add x22, x19, 3424 - mov w20, 65535 adrp x24, .LANCHOR3 - mov w25, 24 + mov w20, 65280 + add x22, x19, 3416 + add x24, x24, :lo12:.LANCHOR3 + mov w23, 0 + movk w20, 0x55aa, lsl 16 bl sblk_wait_write_queue_completed -.L2753: - ldrb w0, [x22,2155] +.L2794: + ldrb w0, [x22, 2155] cmp w0, w23 - bls .L2767 - add x0, x22, w23, sxtw 1 - ldrh w0, [x0,2162] - cmp w0, w20 - beq .L2754 - add x1, x24, :lo12:.LANCHOR3 - mov w5, 0 - ldrh w2, [x1,1418] - ldrh w1, [x22,2148] - madd w2, w0, w2, w1 - ldr x0, [x21,8] - str w2, [x0] - mov w0, 65280 - movk w0, 0x55aa, lsl 16 - ldr x1, [x21,8] - str w0, [x1,4] - ldr x0, [x21,24] - str wzr, [x0] - mov w0, 1 - ldrb w3, [x19,1257] - ldrb w4, [x19,3360] - lsl w0, w0, w3 - sub w1, w25, w3 - sub w0, w0, #1 - lsr w3, w2, w1 - lsl w1, w0, w1 - and w0, w3, w0 - bic w1, w2, w1 - ldr x3, [x21,24] - ldr x2, [x21,8] - bl flash_prog_page_en -.L2754: - add w23, w23, 1 - uxth w23, w23 - b .L2753 -.L2767: - ldrh w0, [x22,2148] - adrp x1, .LANCHOR3+1384 + bhi .L2796 + ldrh w0, [x22, 2148] + adrp x1, .LANCHOR3+1376 add w0, w0, 1 - ldrh w1, [x1,#:lo12:.LANCHOR3+1384] - uxth w0, w0 - strh w0, [x22,2148] + ldrh w1, [x1, #:lo12:.LANCHOR3+1376] + and w0, w0, 65535 + strh w0, [x22, 2148] cmp w1, w0 - bhi .L2741 + bhi .L2782 mov w0, 3 - strh wzr, [x22,2148] - strh w0, [x22,2110] - b .L2741 -.L2747: + strh wzr, [x22, 2148] + strh w0, [x22, 2110] + b .L2782 +.L2796: + add x0, x22, w23, sxtw 1 + mov w1, 65535 + ldrh w0, [x0, 2162] + cmp w0, w1 + beq .L2795 + ldrh w2, [x22, 2148] + mov w6, 1 + ldrh w1, [x24, 1410] + mov w5, 0 + madd w1, w1, w0, w2 + ldr x0, [x21, 8] + str w1, [x0] + ldr x0, [x21, 8] + str w20, [x0, 4] + ldr x0, [x21, 24] + str wzr, [x0] + mov w0, 24 + ldrb w2, [x19, 1205] + ldrb w4, [x24, 1946] + sub w0, w0, w2 + ldr x3, [x21, 24] + lsl w6, w6, w2 + ldr x2, [x21, 8] + sub w6, w6, #1 + lsl w7, w6, w0 + lsr w0, w1, w0 + bic w1, w1, w7 + and w0, w0, w6 + bl flash_prog_page_en +.L2795: + add w23, w23, 1 + and w23, w23, 65535 + b .L2794 +.L2788: add x19, x19, :lo12:.LANCHOR0 - mov w22, 0 - add x19, x19, 3424 - mov w24, 65535 adrp x25, .LANCHOR3 - mov w26, -1 + add x19, x19, 3416 + add x25, x25, :lo12:.LANCHOR3 + mov w22, 0 + mov w26, 65535 bl sblk_wait_write_queue_completed -.L2756: - ldrb w0, [x19,2155] +.L2797: + ldrb w0, [x19, 2155] cmp w0, w22 - bls .L2768 - add x27, x19, w22, sxtw 1 - ldrh w0, [x27,2162] - add x27, x27, 16 - cmp w0, w24 - beq .L2758 - add x1, x25, :lo12:.LANCHOR3 - ldrh w23, [x1,1418] - ldrh w1, [x19,2148] - madd w23, w0, w23, w1 - str w23, [x21,40] - mov x0, x21 - mov w1, 1 - bl sblk_read_page - ldr x0, [x21,8] - ldr w0, [x0] - cmp w0, w23 - beq .L2758 - mov w0, w23 - bl ftl_mask_bad_block - strh w26, [x27,2146] -.L2758: - add w22, w22, 1 - uxth w22, w22 - b .L2756 -.L2768: - ldrh w0, [x19,2148] - adrp x1, .LANCHOR3+1384 + bhi .L2801 + ldrh w0, [x19, 2148] + adrp x1, .LANCHOR3+1376 add w0, w0, 1 - ldrh w1, [x1,#:lo12:.LANCHOR3+1384] - uxth w0, w0 - strh w0, [x19,2148] + ldrh w1, [x1, #:lo12:.LANCHOR3+1376] + and w0, w0, 65535 + strh w0, [x19, 2148] cmp w1, w0 - bhi .L2741 - ldr x0, [x19,2184] - strh wzr, [x19,2110] + bhi .L2782 + ldr x0, [x19, 2184] + strh wzr, [x19, 2110] bl zbuf_free - str xzr, [x19,2184] - ldrh w0, [x19,2112] + str xzr, [x19, 2184] + ldrh w0, [x19, 2112] cmp w0, 15 - bhi .L2761 + bhi .L2802 add w1, w0, 1 - strh w1, [x19,2112] - ldrh w1, [x19,2146] add x0, x19, w0, sxtw 1 - strh w1, [x0,2114] - b .L2762 -.L2761: - ldrh w0, [x19,2146] - bl zftl_insert_free_list -.L2762: + strh w1, [x19, 2112] + ldrh w1, [x19, 2146] + strh w1, [x0, 2114] +.L2803: add x19, x20, :lo12:.LANCHOR0 adrp x0, .LC199 add x0, x0, :lo12:.LC199 - ldrh w1, [x19,5570] - ldrh w2, [x19,5536] + ldrh w2, [x19, 5528] + ldrh w1, [x19, 5562] bl printk - b .L2741 -.L2742: - strh wzr, [x0,5534] -.L2741: - 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 + b .L2782 +.L2801: + add x24, x19, w22, sxtw 1 + add x24, x24, 16 + ldrh w0, [x24, 2146] + cmp w0, w26 + beq .L2799 + ldrh w1, [x19, 2148] + ldrh w23, [x25, 1410] + madd w23, w23, w0, w1 + mov w1, 1 + str w23, [x21, 40] + mov x0, x21 + bl sblk_read_page + ldr x0, [x21, 8] + ldr w0, [x0] + cmp w23, w0 + beq .L2799 + mov w0, w23 + bl ftl_mask_bad_block + mov w0, -1 + strh w0, [x24, 2146] +.L2799: + add w22, w22, 1 + and w22, w22, 65535 + b .L2797 +.L2802: + ldrh w0, [x19, 2146] + bl zftl_insert_free_list + b .L2803 +.L2783: + strh wzr, [x0, 5526] + b .L2782 .size gc_ink_check_sblk, .-gc_ink_check_sblk .align 2 .global ftl_ink_check_sblk @@ -17832,177 +17730,175 @@ gc_ink_check_sblk: ftl_ink_check_sblk: stp x29, x30, [sp, -144]! add x29, sp, 0 - stp x21, x22, [sp,32] + stp x21, x22, [sp, 32] adrp x21, .LANCHOR0 add x22, x21, :lo12:.LANCHOR0 - stp x19, x20, [sp,16] - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] - stp x27, x28, [sp,80] - uxth w20, w0 - ubfiz x24, x20, 2, 16 - ldr x0, [x22,1096] + stp x19, x20, [sp, 16] + stp x25, x26, [sp, 64] + and w20, w0, 65535 + stp x23, x24, [sp, 48] + ubfiz x25, x20, 2, 16 + stp x27, x28, [sp, 80] mov w1, w20 - ldrh w2, [x0,x24] - ldr w3, [x0,x24] + ldr x0, [x22, 1104] + ldr w3, [x0, x25] + ldrh w2, [x0, x25] adrp x0, .LC200 add x0, x0, :lo12:.LC200 - and w2, w2, 2047 ubfx x3, x3, 11, 8 + and w2, w2, 2047 bl printk mov w0, 65535 cmp w20, w0 - beq .L2769 - ldrh w0, [x22,1088] + beq .L2809 + ldrh w0, [x22, 1096] cmp w0, w20 - bls .L2769 + bls .L2809 + add x24, x29, 144 mov w1, 0 mov w0, w20 - add x23, x29, 112 bl ftl_erase_sblk - strh w20, [x29,112] - add x1, x23, 16 mov w0, w20 + strh w20, [x24, -32]! + add x1, x24, 16 bl ftl_get_blk_list_in_sblk - strb w0, [x29,121] + strb w0, [x29, 121] mov w0, 1 bl buf_alloc mov x19, x0 - ldr x0, [x22,1096] - ldrb w2, [x22,3360] - ldrh w0, [x0,x24] + ldr x0, [x22, 1104] + adrp x22, .LANCHOR3 + ldrh w0, [x0, x25] and w0, w0, 2047 cmp w0, 1 - ldr x0, [x19,8] - bgt .L2771 - mov w1, 85 - b .L2786 -.L2771: - mov w1, 170 -.L2786: + add x0, x22, :lo12:.LANCHOR3 + ldrb w2, [x0, 1946] lsl w2, w2, 9 - adrp x26, .LANCHOR3 - mov w22, 0 - mov x27, x26 - bl ftl_memset - mov w28, 65535 - bl sblk_wait_write_queue_completed - mov w6, 24 -.L2773: - add x0, x26, :lo12:.LANCHOR3 - adrp x25, .LANCHOR3 - ldrh w0, [x0,1384] - cmp w0, w22 - bls .L2787 - mov w25, 0 - mov w7, 1 -.L2776: - ldrb w0, [x23,9] - cmp w0, w25 - bls .L2788 - add x0, x23, w25, sxtw 1 - ldrh w0, [x0,16] - cmp w0, w28 - beq .L2774 - add x1, x27, :lo12:.LANCHOR3 - add x4, x21, :lo12:.LANCHOR0 - mov w5, 0 - str x6, [x29,96] - str x7, [x29,104] - ldrh w2, [x1,1418] - madd w2, w0, w2, w22 - ldr x0, [x19,8] - str w2, [x0] - mov w0, 65280 - movk w0, 0x55aa, lsl 16 - ldr x1, [x19,8] - str w0, [x1,4] - ldr x0, [x19,24] - str wzr, [x0] - ldrb w0, [x4,1257] - ldrb w4, [x4,3360] - sub w1, w6, w0 - lsl w0, w7, w0 - sub w0, w0, #1 - lsr w3, w2, w1 - lsl w1, w0, w1 - and w0, w3, w0 - bic w1, w2, w1 - ldr x3, [x19,24] - ldr x2, [x19,8] - bl flash_prog_page_en - ldr x6, [x29,96] - ldr x7, [x29,104] -.L2774: - add w25, w25, 1 - uxth w25, w25 - b .L2776 -.L2788: - add w22, w22, 1 - uxth w22, w22 - b .L2773 -.L2787: - mov w22, 0 - mov w27, -1 -.L2777: - add x0, x25, :lo12:.LANCHOR3 - ldrh w0, [x0,1384] - cmp w0, w22 - bls .L2789 + bgt .L2811 + mov w1, 85 +.L2827: + ldr x0, [x19, 8] + add x27, x22, :lo12:.LANCHOR3 mov w26, 0 -.L2782: - ldrb w0, [x23,9] + bl ftl_memset + bl sblk_wait_write_queue_completed + mov w9, 65280 + mov w8, 65535 + movk w9, 0x55aa, lsl 16 +.L2813: + ldrh w0, [x27, 1376] cmp w0, w26 - bls .L2790 - sxtw x28, w26 - mov w1, 65535 + bls .L2816 + mov w23, 0 + add x7, x21, :lo12:.LANCHOR0 + mov w28, 24 + b .L2817 +.L2811: + mov w1, 170 + b .L2827 +.L2815: + add x0, x24, w23, sxtw 1 + ldrh w0, [x0, 16] + cmp w0, w8 + beq .L2814 + ldrh w1, [x27, 1410] + mov w6, 1 + stp w8, w9, [x29, 96] + mov w5, 0 + str x7, [x29, 104] + madd w1, w1, w0, w26 + ldr x0, [x19, 8] + str w1, [x0] + ldr x0, [x19, 8] + str w9, [x0, 4] + ldr x0, [x19, 24] + str wzr, [x0] + ldrb w2, [x7, 1205] + ldrb w4, [x27, 1946] + sub w0, w28, w2 + ldr x3, [x19, 24] + lsl w6, w6, w2 + ldr x2, [x19, 8] + sub w6, w6, #1 + lsl w10, w6, w0 + lsr w0, w1, w0 + bic w1, w1, w10 + and w0, w0, w6 + bl flash_prog_page_en + ldp w8, w9, [x29, 96] + ldr x7, [x29, 104] +.L2814: + add w23, w23, 1 + and w23, w23, 65535 +.L2817: + ldrb w0, [x29, 121] + cmp w0, w23 + bhi .L2815 + add w26, w26, 1 + and w26, w26, 65535 + b .L2813 +.L2816: + add x22, x22, :lo12:.LANCHOR3 + mov w26, 0 + mov w27, 65535 +.L2818: + ldrh w0, [x22, 1376] + cmp w0, w26 + bls .L2823 + mov w23, 0 + b .L2824 +.L2822: + sxtw x28, w23 add x28, x28, 8 - ldrh w0, [x23,x28,lsl 1] - cmp w0, w1 - beq .L2779 - add x1, x25, :lo12:.LANCHOR3 - ldrh w3, [x1,1418] + lsl x28, x28, 1 + ldrh w0, [x24, x28] + cmp w0, w27 + beq .L2820 + ldrh w3, [x22, 1410] mov w1, 1 - madd w3, w0, w3, w22 - str w3, [x19,40] + madd w3, w3, w0, w26 mov x0, x19 - str x3, [x29,104] + str w3, [x19, 40] + str w3, [x29, 104] bl sblk_read_page - ldr x0, [x19,8] - ldr x3, [x29,104] + ldr x0, [x19, 8] + ldr w3, [x29, 104] ldr w0, [x0] - cmp w0, w3 - beq .L2779 + cmp w3, w0 + beq .L2820 mov w0, w3 bl ftl_mask_bad_block - strh w27, [x23,x28,lsl 1] -.L2779: + mov w0, -1 + strh w0, [x24, x28] +.L2820: + add w23, w23, 1 + and w23, w23, 65535 +.L2824: + ldrb w0, [x29, 121] + cmp w0, w23 + bhi .L2822 add w2, w26, 1 - uxth w26, w2 - b .L2782 -.L2790: - add w22, w22, 1 - uxth w22, w22 - b .L2777 -.L2789: - mov x0, x19 + and w26, w2, 65535 + b .L2818 +.L2823: add x21, x21, :lo12:.LANCHOR0 + mov x0, x19 bl zbuf_free - ldr x0, [x21,1096] mov w1, w20 - ldrh w2, [x0,x24] - ldr w3, [x0,x24] + ldr x0, [x21, 1104] + ldr w3, [x0, x25] + ldrh w2, [x0, x25] adrp x0, .LC201 add x0, x0, :lo12:.LC201 - and w2, w2, 2047 ubfx x3, x3, 11, 8 + and w2, w2, 2047 bl printk -.L2769: - 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] +.L2809: + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] + ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 144 ret .size ftl_ink_check_sblk, .-ftl_ink_check_sblk @@ -18012,185 +17908,182 @@ ftl_ink_check_sblk: ftl_alloc_sblk: stp x29, x30, [sp, -80]! cmp w0, 5 - mov w1, 2 add x29, sp, 0 - stp x21, x22, [sp,32] - uxth w21, w0 + stp x21, x22, [sp, 32] + and w21, w0, 65535 + stp x19, x20, [sp, 16] mov w22, w0 - stp x23, x24, [sp,48] - mov w0, 0 - csel w23, wzr, w1, ne + stp x23, x24, [sp, 48] mov w1, w21 - str x25, [sp,64] - stp x19, x20, [sp,16] + cset w23, eq + mov w0, 0 + str x25, [sp, 64] bl zftl_get_free_sblk - uxth w19, w0 + and w20, w0, 65535 mov w0, 65535 - mov w24, w19 - cmp w19, w0 - beq .L2793 - adrp x1, .LANCHOR0 - ubfiz x25, x19, 2, 16 - add x0, x1, :lo12:.LANCHOR0 - mov x20, x1 - ldr x21, [x0,1096] + cmp w20, w0 + beq .L2830 + adrp x0, .LANCHOR0 + add x1, x0, :lo12:.LANCHOR0 + ubfiz x25, x20, 2, 16 + lsl w23, w23, 1 + mov w24, w20 + mov x19, x0 + ldr x21, [x1, 1104] add x21, x21, x25 - ldrb w0, [x21,2] - tst w0, 224 - beq .L2794 + ldrb w1, [x21, 2] + tst w1, 224 + beq .L2831 adrp x1, .LANCHOR4 - adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 + add x1, x1, 656 mov w2, 1012 - add x1, x1, 640 + adrp x0, .LC0 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L2794: - ldrb w3, [x21,2] - bfi w3, w22, 5, 3 - ubfx x1, x3, 3, 2 - mov w2, w3 +.L2831: + ldrb w0, [x21, 2] + bfi w0, w22, 5, 3 + ubfx x1, x0, 3, 2 orr w1, w23, w1 - bfi w2, w1, 3, 2 - strb w2, [x21,2] - cbnz w23, .L2795 - and w0, w2, 24 - cmp w0, 24 - bne .L2795 - mov w0, 1 - bfi w2, w0, 3, 2 - strb w2, [x21,2] -.L2795: - add x1, x20, :lo12:.LANCHOR0 - ldr x0, [x1,3392] - ldrh w0, [x0,150] - cbz w0, .L2796 - ldr x0, [x1,1096] - ldrh w1, [x0,x25] - and w1, w1, 2047 - orr w1, w23, w1 - cbnz w1, .L2796 + bfi w0, w1, 3, 2 + strb w0, [x21, 2] + and w1, w0, 24 + cmp w1, 24 + bne .L2832 + cbnz w23, .L2832 + mov w1, 1 + bfi w0, w1, 3, 2 + strb w0, [x21, 2] +.L2832: + add x0, x19, :lo12:.LANCHOR0 + ldr x1, [x0, 3384] + ldrh w1, [x1, 150] + cbz w1, .L2833 + ldr x0, [x0, 1104] + ldrh w0, [x0, x25] + tst x0, 2047 + bne .L2833 + cbnz w23, .L2833 mov w0, w24 bl ftl_ink_check_sblk - b .L2796 -.L2793: - adrp x20, .LC202 +.L2833: + mov w0, w20 + ldr x25, [sp, 64] + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x29, x30, [sp], 80 + ret +.L2830: bl print_ftl_debug_info - add x20, x20, :lo12:.LC202 - mov w1, w19 + adrp x19, .LC202 mov w2, w22 - mov x0, x20 + add x19, x19, :lo12:.LC202 + mov w1, w20 + mov x0, x19 bl printk mov w1, w21 mov w0, 0 bl zftl_get_free_sblk - uxth w19, w0 - mov w1, w19 + and w20, w0, 65535 mov w2, w22 - mov x0, x20 + mov w1, w20 + mov x0, x19 bl printk bl dump_all_list_info adrp x1, .LANCHOR4 - adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 + add x1, x1, 656 mov w2, 1031 - add x1, x1, 640 + adrp x0, .LC0 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L2796: - 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 - ret + b .L2833 .size ftl_alloc_sblk, .-ftl_alloc_sblk .align 2 .global ftl_open_sblk_init .type ftl_open_sblk_init, %function ftl_open_sblk_init: - stp x29, x30, [sp, -96]! + stp x29, x30, [sp, -80]! add x29, sp, 0 - stp x19, x20, [sp,16] - stp x21, x22, [sp,32] - adrp x20, .LC203 - adrp x22, .LANCHOR3 - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] - stp x27, x28, [sp,80] + stp x21, x22, [sp, 32] + adrp x21, .LANCHOR0 + stp x23, x24, [sp, 48] + adrp x22, .LC203 + stp x19, x20, [sp, 16] + adrp x24, .LANCHOR3 + stp x25, x26, [sp, 64] mov x19, x0 - mov w21, w1 - mov w23, 65535 - add x24, x0, 16 - mov x25, x22 - add x20, x20, :lo12:.LC203 -.L2812: - mov w0, w21 + mov w23, w1 + add x25, x24, :lo12:.LANCHOR3 + add x21, x21, :lo12:.LANCHOR0 + add x22, x22, :lo12:.LC203 +.L2843: + mov w26, 65535 +.L2844: + mov w0, w23 bl ftl_alloc_sblk - uxth w26, w0 - cmp w26, w23 - beq .L2812 + and w20, w0, 65535 + cmp w20, w26 + beq .L2844 mov w1, 0 - mov w0, w26 + mov w0, w20 bl ftl_erase_sblk - mov x1, x24 - mov w0, w26 + add x1, x19, 16 + mov w0, w20 bl ftl_get_blk_list_in_sblk - strh w26, [x19] - add x2, x22, :lo12:.LANCHOR3 - uxtb w0, w0 - strb w0, [x19,9] - cmp w21, 2 - strh wzr, [x19,2] - mov w3, 0 - ldrh w1, [x2,1384] - strb wzr, [x19,5] - strh wzr, [x19,10] + strh w20, [x19] + add x2, x24, :lo12:.LANCHOR3 + and w0, w0, 255 + strb w0, [x19, 9] + cmp w23, 2 + strh wzr, [x19, 2] + ldrh w1, [x2, 1376] + strb wzr, [x19, 5] + strh wzr, [x19, 10] + strb w23, [x19, 4] mul w0, w1, w0 - strh w0, [x19,6] - strb w21, [x19,4] - beq .L2813 - ldrb w3, [x2,1329] - mul w3, w1, w3 - uxth w3, w3 -.L2813: - add x2, x25, :lo12:.LANCHOR3 - adrp x27, .LANCHOR0 - strh w3, [x19,12] - add x27, x27, :lo12:.LANCHOR0 - ubfiz x28, x26, 1, 16 - ldr x0, [x2,1936] - add x0, x0, w3, uxth 2 - ldrb w2, [x2,1329] - mul w2, w1, w2 + strh w0, [x19, 6] + beq .L2847 + ldrb w0, [x2, 1321] + mul w0, w1, w0 + and w0, w0, 65535 +.L2845: + ldrb w2, [x25, 1321] + ubfiz x26, x20, 1, 16 + ldr x3, [x25, 1928] + strh w0, [x19, 12] + mul w2, w2, w1 + add x0, x3, w0, uxth 2 mov w1, 255 lsl w2, w2, 2 bl ftl_memset - ldr x0, [x27,1112] - ldrh w1, [x19,6] - strh w1, [x0,x28] - ldrb w0, [x19,9] - cbnz w0, .L2810 -.L2811: - mov w1, w26 - mov x0, x20 + ldr x0, [x21, 1120] + ldrh w1, [x19, 6] + strh w1, [x0, x26] + ldrb w0, [x19, 9] + cbnz w0, .L2842 + mov w1, w20 + mov x0, x22 bl printk - ldr x0, [x27,1112] + ldr x0, [x21, 1120] mov w1, -1 - strh w1, [x0,x28] + strh w1, [x0, x26] mov w0, 7 - strb w0, [x19,4] - b .L2812 -.L2810: - 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 + strb w0, [x19, 4] + b .L2843 +.L2847: + mov w0, 0 + b .L2845 +.L2842: + 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 ftl_open_sblk_init, .-ftl_open_sblk_init .align 2 @@ -18199,137 +18092,137 @@ ftl_open_sblk_init: pm_alloc_new_blk: stp x29, x30, [sp, -64]! add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] adrp x19, .LANCHOR0 add x0, x19, :lo12:.LANCHOR0 - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] + stp x21, x22, [sp, 32] + stp x23, x24, [sp, 48] adrp x22, .LANCHOR3 - ldr x2, [x0,3392] - ldrh w1, [x2,690] - add w1, w1, 1 - uxth w0, w1 - add x1, x22, :lo12:.LANCHOR3 - strh w0, [x2,690] - ldrb w1, [x1,1329] - cmp w1, w0 - bls .L2818 - add x0, x2, w0, sxtw 1 - ldrh w1, [x0,672] + add x2, x22, :lo12:.LANCHOR3 + ldr x1, [x0, 3384] + ldrb w2, [x2, 1321] + ldrh w0, [x1, 690] + add w0, w0, 1 + and w0, w0, 65535 + strh w0, [x1, 690] + cmp w2, w0 + bls .L2851 + add x0, x1, w0, sxtw 1 + ldrh w1, [x0, 672] mov w0, 65535 cmp w1, w0 - bne .L2819 -.L2818: + bne .L2852 +.L2851: adrp x23, .LC203 - mov w24, 65535 + add x20, x19, :lo12:.LANCHOR0 add x23, x23, :lo12:.LC203 -.L2820: + mov w24, 65535 +.L2853: mov w0, 1 bl ftl_alloc_sblk - uxth w21, w0 + and w21, w0, 65535 cmp w21, w24 - beq .L2820 + beq .L2853 mov w1, 0 mov w0, w21 - add x20, x19, :lo12:.LANCHOR0 bl ftl_erase_sblk + ldr x1, [x20, 3384] mov w0, w21 - ldr x1, [x20,3392] add x1, x1, 672 bl ftl_get_blk_list_in_sblk - uxth w0, w0 - cbnz w0, .L2821 + tst w0, 65535 + bne .L2854 mov w1, w21 mov x0, x23 bl printk - ldr x1, [x20,1096] - add x21, x1, w21, uxth 2 - ldrb w1, [x21,2] - orr w1, w1, -32 - strb w1, [x21,2] - b .L2820 -.L2821: - ldr x1, [x20,3392] - adrp x0, .LANCHOR5+960 + ldr x0, [x20, 1104] + add x21, x0, w21, uxth 2 + ldrb w0, [x21, 2] + orr w0, w0, -32 + strb w0, [x21, 2] + b .L2853 +.L2854: + ldr x0, [x20, 3384] + adrp x1, .LANCHOR5+424 mov w2, 1 - mov x20, 0 - str w2, [x0,#:lo12:.LANCHOR5+960] - mov w2, 65535 - strh wzr, [x1,690] -.L2823: - add x3, x1, x20, lsl 1 - uxth w0, w20 - ldrh w3, [x3,416] - cmp w3, w2 - beq .L2822 - add x20, x20, 1 - cmp x20, 128 - bne .L2823 + mov w20, 0 + add x0, x0, 416 + str w2, [x1, #:lo12:.LANCHOR5+424] + mov w1, 65535 + strh wzr, [x0, 274] +.L2856: + ldrh w2, [x0] + cmp w2, w1 + beq .L2855 + add w20, w20, 1 + add x0, x0, 2 + and w20, w20, 65535 + cmp w20, 128 + bne .L2856 adrp x1, .LANCHOR4 - adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 + add x1, x1, 672 mov w2, 264 - add x1, x1, 656 + adrp x0, .LC0 add x0, x0, :lo12:.LC0 bl printk bl dump_stack - mov w0, w20 -.L2822: - add x1, x19, :lo12:.LANCHOR0 - ldr x1, [x1,3392] - add x0, x1, w0, sxtw 1 - strh w21, [x0,416] - ldrh w0, [x1,688] - add w0, w0, 1 - strh w0, [x1,688] -.L2819: +.L2855: add x0, x19, :lo12:.LANCHOR0 - ldr x1, [x0,3392] - ldrh w0, [x1,690] + ldr x0, [x0, 3384] + add x20, x0, w20, sxtw 1 + strh w21, [x20, 416] + ldrh w1, [x0, 688] + add w1, w1, 1 + strh w1, [x0, 688] +.L2852: + add x0, x19, :lo12:.LANCHOR0 + ldr x1, [x0, 3384] + ldrh w0, [x1, 690] add x0, x0, 336 - ldrh w20, [x1,x0,lsl 1] + ldrh w20, [x1, x0, lsl 1] mov w0, 65533 sub w1, w20, #1 cmp w0, w1, uxth - bcs .L2825 + bcs .L2858 adrp x1, .LANCHOR4 - adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 + add x1, x1, 672 mov w2, 270 - add x1, x1, 656 + adrp x0, .LC0 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L2825: +.L2858: add x19, x19, :lo12:.LANCHOR0 add x22, x22, :lo12:.LANCHOR3 - mov w0, 24 - ldrb w2, [x19,1257] - ldr x1, [x19,3392] - sub w0, w0, w2 - ldrh w2, [x22,1312] - sub w0, w0, w2 - strh wzr, [x1,696] - asr w4, w20, w0 - strh w20, [x1,692] - strh w4, [x1,694] - adrp x1, .LANCHOR2 - ldr w1, [x1,#:lo12:.LANCHOR2] - tbz x1, 12, .L2829 - mov w2, 1 - mov w1, w20 - lsl w2, w2, w0 - adrp x0, .LC204 - add x0, x0, :lo12:.LC204 - sub w2, w2, #1 + mov w2, 24 + ldrb w1, [x19, 1205] + ldr x0, [x19, 3384] + sub w2, w2, w1 + ldrh w1, [x22, 1304] + sub w2, w2, w1 + strh wzr, [x0, 696] + asr w4, w20, w2 + strh w20, [x0, 692] + strh w4, [x0, 694] + adrp x0, .LANCHOR2 + ldr w0, [x0, #:lo12:.LANCHOR2] + tbz x0, 12, .L2861 + mov w0, 1 + and w4, w4, 65535 + lsl w2, w0, w2 mov w3, w20 - uxth w4, w4 + adrp x0, .LC204 + sub w2, w2, #1 + mov w1, w20 + add x0, x0, :lo12:.LC204 bl printk -.L2829: +.L2861: mov w0, 0 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] ldp x29, x30, [sp], 64 ret .size pm_alloc_new_blk, .-pm_alloc_new_blk @@ -18339,120 +18232,115 @@ pm_alloc_new_blk: pm_write_page: stp x29, x30, [sp, -96]! add x29, sp, 0 - stp x21, x22, [sp,32] - adrp x22, .LANCHOR4 + stp x21, x22, [sp, 32] mov w21, w0 - stp x23, x24, [sp,48] - add x22, x22, :lo12:.LANCHOR4 - adrp x23, .LC0 - stp x25, x26, [sp,64] - stp x19, x20, [sp,16] - stp x27, x28, [sp,80] + stp x23, x24, [sp, 48] mov x24, x1 + stp x25, x26, [sp, 64] adrp x25, .LANCHOR0 - add x23, x23, :lo12:.LC0 - add x22, x22, 680 -.L2835: + adrp x26, .LANCHOR3 + add x22, x25, :lo12:.LANCHOR0 + add x23, x26, :lo12:.LANCHOR3 + stp x19, x20, [sp, 16] + stp x27, x28, [sp, 80] +.L2869: add x0, x25, :lo12:.LANCHOR0 - adrp x19, .LANCHOR0 - ldr x0, [x0,3392] - ldr w1, [x0,48] - ldrh w3, [x0,696] + ldr x0, [x0, 3384] + ldr w1, [x0, 48] + ldrh w2, [x0, 696] add w1, w1, 1 - str w1, [x0,48] - adrp x1, .LANCHOR3 - add x2, x1, :lo12:.LANCHOR3 - mov x20, x1 - ldrh w2, [x2,1384] - cmp w3, w2 - bcs .L2836 - ldrh w1, [x0,692] + str w1, [x0, 48] + add x1, x26, :lo12:.LANCHOR3 + ldrh w1, [x1, 1376] + cmp w2, w1 + bcs .L2870 + ldrh w1, [x0, 692] mov w0, 65535 cmp w1, w0 - bne .L2837 -.L2836: + bne .L2871 +.L2870: bl pm_alloc_new_blk mov w0, 0 bl ftl_info_flush -.L2837: - add x0, x19, :lo12:.LANCHOR0 - ldr x0, [x0,3392] - ldrh w1, [x0,692] +.L2871: + ldr x0, [x22, 3384] + ldrh w1, [x0, 692] mov w0, 65535 cmp w1, w0 - bne .L2838 - mov x1, x22 + bne .L2872 + adrp x1, .LANCHOR4 + add x1, x1, :lo12:.LANCHOR4 + add x1, x1, 696 mov w2, 303 - mov x0, x23 + adrp x0, .LC0 + add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L2838: - add x19, x19, :lo12:.LANCHOR0 - add x0, x20, :lo12:.LANCHOR3 - adrp x20, .LANCHOR5 - add x26, x20, :lo12:.LANCHOR5 - ldr x2, [x19,3392] - ldrh w1, [x0,1418] - ldrh w27, [x2,692] - ldrh w0, [x2,696] +.L2872: + ldr x0, [x22, 3384] + adrp x19, .LANCHOR5 + ldrh w1, [x23, 1410] + add x20, x19, :lo12:.LANCHOR5 mov w2, 64 + ldrh w27, [x0, 692] + ldrh w0, [x0, 696] madd w27, w27, w1, w0 - ldr x0, [x26,968] + ldr x0, [x20, 432] mov w1, 0 bl ftl_memset - ldr x0, [x26,968] + ldr x0, [x20, 432] str w21, [x0] - ldr x1, [x19,3392] - ldr x0, [x26,968] - ldr w1, [x1,48] - str w1, [x0,4] + ldr x1, [x22, 3384] + ldr x0, [x20, 432] + ldr w1, [x1, 48] + str w1, [x0, 4] mov x0, x24 - ldrb w1, [x19,3360] - ldr x28, [x26,968] + ldrb w1, [x23, 1946] + ldr x28, [x20, 432] lsl w1, w1, 9 bl js_hash - str w0, [x28,8] - ldr x0, [x19,3392] + ldrb w4, [x23, 1946] mov x2, x24 - ldr x3, [x26,968] + str w0, [x28, 8] mov w1, w27 - ldrb w4, [x19,3360] - ldrb w0, [x0,694] + ldr x0, [x22, 3384] + ldr x3, [x20, 432] + ldrb w0, [x0, 694] bl ftl_prog_page - ldr x3, [x19,3392] - ldrh w2, [x3,696] - add w2, w2, 1 - uxth w2, w2 - strh w2, [x3,696] - cmp w2, 1 - beq .L2839 - ldrb w1, [x26,976] - cbz w1, .L2840 -.L2839: - add x20, x20, :lo12:.LANCHOR5 - strb wzr, [x20,976] - b .L2835 -.L2840: + ldr x2, [x22, 3384] + ldrh w1, [x2, 696] + add w1, w1, 1 + and w1, w1, 65535 + strh w1, [x2, 696] + cmp w1, 1 + beq .L2873 + ldrb w1, [x20, 440] + cbz w1, .L2874 +.L2873: + add x19, x19, :lo12:.LANCHOR5 + strb wzr, [x19, 440] + b .L2869 +.L2874: cmn w0, #1 - bne .L2842 - adrp x0, .LC205 + bne .L2876 mov w1, w27 + adrp x0, .LC205 add x0, x0, :lo12:.LC205 bl printk - b .L2835 -.L2842: - ldrh w0, [x3,698] + b .L2869 +.L2876: + ldrh w0, [x2, 698] cmp w21, w0 - bcs .L2843 - add x21, x3, w21, uxtw 2 - str w27, [x21,704] -.L2843: + bcs .L2877 + add x21, x2, w21, uxtw 2 + str w27, [x21, 704] +.L2877: 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 x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] + ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 96 ret .size pm_write_page, .-pm_write_page @@ -18460,302 +18348,292 @@ pm_write_page: .global flash_info_flush .type flash_info_flush, %function flash_info_flush: + stp x29, x30, [sp, -80]! adrp x0, .LANCHOR2 - stp x29, x30, [sp, -96]! add x29, sp, 0 - ldr w0, [x0,#:lo12:.LANCHOR2] - 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] - tbz x0, 12, .L2848 + ldr w0, [x0, #:lo12:.LANCHOR2] + stp x19, x20, [sp, 16] + stp x21, x22, [sp, 32] + stp x23, x24, [sp, 48] + stp x25, x26, [sp, 64] + tbz x0, 12, .L2883 adrp x2, .LANCHOR4 - adrp x0, .LC138 add x2, x2, :lo12:.LANCHOR4 - add x0, x0, :lo12:.LC138 + adrp x0, .LC135 + add x2, x2, 712 mov w1, 365 - add x2, x2, 696 + add x0, x0, :lo12:.LC135 bl printk -.L2848: - adrp x22, .LANCHOR5 - adrp x23, .LANCHOR0 - add x0, x22, :lo12:.LANCHOR5 - mov w1, 0 +.L2883: + adrp x19, .LANCHOR5 + add x19, x19, :lo12:.LANCHOR5 + adrp x20, .LANCHOR0 + add x22, x20, :lo12:.LANCHOR0 mov w2, 64 - add x19, x23, :lo12:.LANCHOR0 - adrp x24, .LC207 - adrp x25, .LC208 - ldr x0, [x0,984] - mov w26, 0 - add x24, x24, :lo12:.LC207 - add x25, x25, :lo12:.LC208 + mov w1, 0 + ldr x0, [x19, 448] + adrp x23, .LC207 + mov w25, 21321 + add x23, x23, :lo12:.LC207 + mov w24, 0 + movk w25, 0x5359, lsl 16 bl ftl_memset - ldr x1, [x19,1128] + ldr x1, [x22, 1048] + mov w3, 16 + mov w2, 4 adrp x0, .LC206 add x0, x0, :lo12:.LC206 - mov w2, 4 - mov w3, 16 bl rknand_print_hex - ldr x19, [x19,1128] - add x0, x19, 16 - ldr w1, [x19,8] + ldr x21, [x22, 1048] + add x0, x21, 16 + ldr w1, [x21, 8] bl js_hash - str w0, [x19,12] -.L2849: - add x21, x22, :lo12:.LANCHOR5 - add x27, x23, :lo12:.LANCHOR0 - mov x0, x24 - ldrb w20, [x21,992] - ldrh w19, [x21,994] - mov w1, w20 - ldrh w28, [x27,2] - mov w2, w19 + str w0, [x21, 12] +.L2884: + ldrb w26, [x19, 456] + mov x0, x23 + ldrh w21, [x19, 458] + mov w1, w26 + ldrh w20, [x22, 2] + mov w2, w21 bl printk - ldrh w1, [x21,180] - ldrh w0, [x21,994] - sub w1, w1, #1 - cmp w0, w1 - blt .L2850 - ldr x1, [x27,1128] - strh wzr, [x21,994] - ldr w0, [x1,4] + ldrh w0, [x19, 172] + ldrh w1, [x19, 458] + sub w0, w0, #1 + cmp w1, w0 + blt .L2885 + ldr x1, [x22, 1048] + strh wzr, [x19, 458] + ldr w0, [x1, 4] add w0, w0, 1 - str w0, [x1,4] - ldrb w0, [x21,992] - ldr x19, [x27,1128] - ldrb w1, [x21,993] - strb w0, [x21,993] - mov x0, x19 - strb w1, [x21,992] - ldrh w1, [x19,16] + str w0, [x1, 4] + ldrb w0, [x19, 456] + ldr x21, [x22, 1048] + ldrb w1, [x19, 457] + strb w0, [x19, 457] + mov x0, x21 + strb w1, [x19, 456] + ldrh w1, [x21, 16] add w1, w1, 1 - strh w1, [x0,16]! - ldr w1, [x19,8] + strh w1, [x0, 16]! + ldr w1, [x21, 8] bl js_hash - str w0, [x19,12] - ldrb w1, [x21,992] + ldrb w20, [x19, 456] + str w0, [x21, 12] + ldrh w0, [x22, 2] + mul w20, w20, w0 +.L2894: + mov w1, w20 mov w0, 0 - ldrh w19, [x27,2] - mul w19, w1, w19 - b .L2858 -.L2850: - madd w19, w20, w28, w19 - cbnz w0, .L2851 -.L2858: - mov w1, w19 bl flash_erase_block -.L2851: - add x2, x23, :lo12:.LANCHOR0 - add x20, x22, :lo12:.LANCHOR5 - mov w4, 4 + b .L2886 +.L2889: + mov w24, 1 + b .L2884 +.L2885: + madd w20, w20, w26, w21 + cbz w1, .L2894 +.L2886: + ldr x1, [x22, 1048] mov w5, 1 - ldr x1, [x2,1128] - ldr x0, [x20,984] - ldr w1, [x1,4] + ldr x0, [x19, 448] + mov w4, 4 + ldr w1, [x1, 4] str w1, [x0] - mov w0, 21321 - movk w0, 0x5359, lsl 16 - ldr x1, [x20,984] - str w0, [x1,4] - mov w1, w19 + mov w1, w20 + ldr x0, [x19, 448] + str w25, [x0, 4] mov w0, 0 - ldr x2, [x2,1128] - ldr x3, [x20,984] + ldr x3, [x19, 448] + ldr x2, [x22, 1048] bl flash_prog_page_en cmn w0, #1 - ldrh w1, [x20,994] + ldrh w1, [x19, 458] add w1, w1, 1 - strh w1, [x20,994] - bne .L2852 - mov x0, x25 - mov w1, w19 + strh w1, [x19, 458] + bne .L2887 + mov w1, w20 + adrp x0, .LC208 + add x0, x0, :lo12:.LC208 bl printk - b .L2849 -.L2852: - cbnz w26, .L2859 - mov w26, 1 - b .L2849 -.L2859: + b .L2884 +.L2887: + cbz w24, .L2889 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 x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] + ldp x29, x30, [sp], 80 ret .size flash_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]! + adrp x0, .LANCHOR2 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, .L2861 - add x4, x20, :lo12:.LANCHOR0 + ldr w0, [x0, #:lo12:.LANCHOR2] + stp x21, x22, [sp, 32] + adrp x22, .LANCHOR0 + stp x19, x20, [sp, 16] + stp x23, x24, [sp, 48] + stp x25, x26, [sp, 64] + tbz x0, 12, .L2896 + add x0, x22, :lo12:.LANCHOR0 adrp x2, .LANCHOR4 - adrp x0, .LC209 add x2, x2, :lo12:.LANCHOR4 - add x0, x0, :lo12:.LC209 - mov w1, 50 - ldr x4, [x4,1128] - add x2, x2, 720 mov w3, 2048 + add x2, x2, 736 + mov w1, 50 + ldr x4, [x0, 1048] + adrp x0, .LC209 + add x0, x0, :lo12:.LC209 bl printk -.L2861: +.L2896: + adrp x20, .LANCHOR5 + mov w25, 21321 + add x21, x20, :lo12:.LANCHOR5 + add x19, x22, :lo12:.LANCHOR0 mov w24, 4 - adrp x25, .LANCHOR5 -.L2862: + movk w25, 0x5359, lsl 16 +.L2900: mov w23, 0 -.L2865: - add x19, x20, :lo12:.LANCHOR0 - add x21, x25, :lo12:.LANCHOR5 - mov w0, 0 +.L2899: + ldrh w1, [x19, 2] mov w4, 4 - adrp x22, .LANCHOR5 - ldrh w1, [x19,2] - ldr x2, [x19,1128] - ldr x3, [x21,984] - madd w1, w24, w1, w23 + ldr x2, [x19, 1048] + mov w0, 0 + ldr x3, [x21, 448] + madd w1, w1, w24, w23 bl flash_read_page_en cmn w0, #1 - beq .L2863 - ldr x2, [x19,1128] - mov w0, 21321 - movk w0, 0x5359, lsl 16 - ldr w1, [x2] - cmp w1, w0 - beq .L2864 -.L2863: + beq .L2897 + ldr x2, [x19, 1048] + ldr w0, [x2] + cmp w0, w25 + beq .L2898 +.L2897: add w23, w23, 1 cmp w23, 4 - bne .L2865 + bne .L2899 add w24, w24, 1 cmp w24, 16 - bne .L2862 - b .L2874 -.L2864: - ldrb w1, [x2,36] - mov w4, 4 - ldrh w3, [x19,2] - strb w1, [x21,992] - ldrb w0, [x2,37] - mul w1, w1, w3 - ldr x3, [x21,984] - strb w0, [x21,993] - mov w0, 0 - mov w21, 0 - bl flash_read_page_en - cmn w0, #1 - beq .L2867 - ldr x0, [x19,1128] - mov w1, 21321 - movk w1, 0x5359, lsl 16 - mov w21, 0 - ldr w2, [x0] - cmp w2, w1 - bne .L2867 - ldr w21, [x0,4] -.L2867: - add x19, x22, :lo12:.LANCHOR5 - add x23, x20, :lo12:.LANCHOR0 - mov w0, 0 - mov w4, 4 - ldrb w2, [x19,993] - ldrh w1, [x23,2] - ldr x3, [x19,984] - mul w1, w2, w1 - ldr x2, [x23,1128] - bl flash_read_page_en - cmn w0, #1 - bne .L2891 -.L2868: - add x19, x22, :lo12:.LANCHOR5 - add x21, x20, :lo12:.LANCHOR0 - mov w0, 0 - mov w4, 4 - ldrb w1, [x19,992] - ldr x2, [x21,1128] - ldr x3, [x19,984] - bl flash_get_last_written_page - ldrh w23, [x21,2] - ldrb w1, [x19,992] - uxth w24, w0 - add w0, w24, 1 - mov w21, 0 - strh w0, [x19,994] - mul w23, w1, w23 -.L2869: - sub w19, w24, w21 - sxth w19, w19 - tbz w19, #31, .L2872 - cmn w19, #1 - bne .L2871 - add x20, x20, :lo12:.LANCHOR0 - adrp x0, .LC210 - add x0, x0, :lo12:.LC210 - ldr x1, [x20,1128] - ldr w1, [x1] - bl printk -.L2874: + bne .L2900 +.L2926: mov w0, -1 - b .L2890 -.L2891: - ldr x0, [x23,1128] - mov w1, 21321 - movk w1, 0x5359, lsl 16 - ldr w2, [x0] - cmp w2, w1 - bne .L2868 - ldr w1, [x0,4] - cmp w21, w1 - bcs .L2868 - ldrb w1, [x0,37] - ldrb w0, [x0,36] - strb w1, [x19,992] - strb w0, [x19,993] - b .L2868 -.L2872: - add x25, x20, :lo12:.LANCHOR0 - add x3, x22, :lo12:.LANCHOR5 - mov w0, 0 - add w1, w19, w23 - mov w4, 4 - ldr x2, [x25,1128] - ldr x3, [x3,984] - bl flash_read_page_en - cmn w0, #1 - beq .L2870 - ldr x0, [x25,1128] - ldr w1, [x0] - mov w0, 21321 - movk w0, 0x5359, lsl 16 - cmp w1, w0 - beq .L2871 -.L2870: - add w21, w21, 1 - b .L2869 -.L2871: - cmp w21, 1 - mov w0, 0 - bls .L2890 - bl flash_info_flush - mov w0, 0 -.L2890: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldr x25, [sp,64] +.L2895: + 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 +.L2908: + ldr x0, [x19, 1048] + ldr w1, [x0] + cmp w1, w25 + bne .L2909 + ldr w21, [x0, 4] +.L2902: + add x19, x20, :lo12:.LANCHOR5 + add x23, x22, :lo12:.LANCHOR0 + mov w4, 4 + ldrh w0, [x23, 2] + ldrb w1, [x19, 457] + ldr x3, [x19, 448] + ldr x2, [x23, 1048] + mul w1, w1, w0 + mov w0, 0 + bl flash_read_page_en + cmn w0, #1 + beq .L2903 + ldr x0, [x23, 1048] + mov w1, 21321 + movk w1, 0x5359, lsl 16 + ldr w2, [x0] + cmp w2, w1 + bne .L2903 + ldr w1, [x0, 4] + cmp w21, w1 + bcs .L2903 + ldrb w1, [x0, 37] + ldrb w0, [x0, 36] + strb w1, [x19, 456] + strb w0, [x19, 457] +.L2903: + add x21, x20, :lo12:.LANCHOR5 + add x19, x22, :lo12:.LANCHOR0 + mov w4, 4 + mov w0, 0 + mov w26, 21321 + mov x20, x19 + ldrb w1, [x21, 456] + mov w23, 0 + ldr x2, [x19, 1048] + movk w26, 0x5359, lsl 16 + ldr x3, [x21, 448] + bl flash_get_last_written_page + and w25, w0, 65535 + add w1, w25, 1 + ldrb w24, [x21, 456] + strh w1, [x21, 458] + ldrh w1, [x19, 2] + mul w24, w24, w1 + add w24, w24, w0, sxth +.L2904: + sub w0, w25, w23 + sxth w19, w0 + tbz w19, #31, .L2907 + cmn w19, #1 + bne .L2906 + add x22, x22, :lo12:.LANCHOR0 + ldr x0, [x22, 1048] + ldr w1, [x0] + adrp x0, .LC210 + add x0, x0, :lo12:.LC210 + bl printk + b .L2926 +.L2907: + ldr x2, [x20, 1048] + mov w4, 4 + ldr x3, [x21, 448] + sub w1, w24, w23 + mov w0, 0 + bl flash_read_page_en + cmn w0, #1 + beq .L2905 + ldr x0, [x20, 1048] + ldr w0, [x0] + cmp w0, w26 + beq .L2906 +.L2905: + add w23, w23, 1 + b .L2904 +.L2906: + cmp w23, 1 + bls .L2910 + bl flash_info_flush +.L2910: + mov w0, 0 + b .L2895 +.L2898: + ldrb w1, [x2, 37] + mov w4, 4 + ldrb w0, [x2, 36] + strb w1, [x21, 457] + ldrh w1, [x19, 2] + ldr x3, [x21, 448] + strb w0, [x21, 456] + mul w1, w1, w0 + mov w0, 0 + bl flash_read_page_en + cmn w0, #1 + bne .L2908 +.L2909: + mov w21, 0 + b .L2902 .size flash_info_blk_init, .-flash_info_blk_init .align 2 .global nand_flash_init @@ -18763,1240 +18641,1231 @@ flash_info_blk_init: nand_flash_init: stp x29, x30, [sp, -80]! add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] adrp x20, .LANCHOR2 mov x19, x0 - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - ldr w0, [x20,#:lo12:.LANCHOR2] - str x25, [sp,64] - tbz x0, 12, .L2893 + stp x21, x22, [sp, 32] + ldr w0, [x20, #:lo12:.LANCHOR2] + stp x23, x24, [sp, 48] + str x25, [sp, 64] + tbz x0, 12, .L2928 adrp x2, .LANCHOR4 - adrp x0, .LC138 add x2, x2, :lo12:.LANCHOR4 - add x0, x0, :lo12:.LC138 + adrp x0, .LC135 + add x2, x2, 760 mov w1, 3450 - add x2, x2, 744 + add x0, x0, :lo12:.LC135 bl printk -.L2893: +.L2928: adrp x21, .LANCHOR5 - mov x0, x19 add x23, x21, :lo12:.LANCHOR5 + mov x0, x19 adrp x19, .LANCHOR0 add x22, x19, :lo12:.LANCHOR0 mov w25, 44 - add x24, x22, 1272 - str wzr, [x23,324] + str wzr, [x23, 332] bl nandc_init - mov w0, 1 - add x1, x20, :lo12:.LANCHOR2 - add x1, x1, 8 - strb w0, [x22,1153] - mov w0, 3 - str x1, [x22,1144] - strb w0, [x22,1257] - mov w1, 0 + add x0, x20, :lo12:.LANCHOR2 mov w2, 8 - add x0, x22, 1248 - bl ftl_memset - add x0, x23, 184 + add x0, x0, 8 + str x0, [x22, 1144] + mov w0, 1 + strb w0, [x22, 1153] + mov w0, 3 + strb w0, [x22, 1205] + add x0, x22, 1196 + add x22, x22, 1216 mov w1, 0 - mov w2, 32 - mov w23, 0 + mov x24, x22 bl ftl_memset -.L2899: + add x0, x23, 176 + mov w23, 0 + mov w2, 32 + mov w1, 0 + bl ftl_memset +.L2934: + mov x1, x22 mov w0, w23 - mov x1, x24 bl flash_read_id - cbnz w23, .L2894 - ldrb w0, [x22,1272] - add x1, x22, 1272 - sub w0, w0, #1 - uxtb w0, w0 - cmp w0, 253 - bls .L2895 -.L2897: - mov w22, -2 - b .L2977 -.L2895: - ldrb w0, [x1,1] - cmp w0, 255 - beq .L2897 -.L2894: + cbnz w23, .L2929 ldrb w0, [x24] + sub w0, w0, #1 + and w0, w0, 255 + cmp w0, 253 + bls .L2930 +.L2932: + mov w22, -2 +.L2927: + 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 + ret +.L2930: + ldrb w0, [x24, 1] + cmp w0, 255 + beq .L2932 +.L2929: + ldrb w0, [x22] cmp w0, 181 - bne .L2898 - strb w25, [x24] -.L2898: + bne .L2933 + strb w25, [x22] +.L2933: add w23, w23, 1 - add x24, x24, 8 - uxtb w23, w23 + add x22, x22, 8 + and w23, w23, 255 cmp w23, 4 - bne .L2899 - add x23, x20, :lo12:.LANCHOR2 - add x24, x19, :lo12:.LANCHOR0 - add x23, x23, 440 - mov w22, 0 - add x24, x24, 1272 -.L2902: - ldrb w2, [x23] - add x0, x23, 1 - mov x1, x24 + bne .L2934 + add x7, x20, :lo12:.LANCHOR2 + add x9, x19, :lo12:.LANCHOR0 + add x7, x7, 441 + add x9, x9, 1216 + mov x8, 0 +.L2937: + ldrb w2, [x7, -1] + mov w10, w8 + lsl x24, x8, 5 + mov x1, x9 + mov x0, x7 bl flash_mem_cmp8 - cbnz w0, .L2900 - add x1, x20, :lo12:.LANCHOR2 - ubfiz x22, x22, 5, 32 - add x0, x1, 440 - adds x22, x0, x22 - beq .L2897 - ldrb w3, [x22,22] + cbnz w0, .L2935 + add x2, x20, :lo12:.LANCHOR2 + ubfiz x10, x10, 5, 32 + add x0, x2, 440 + add x1, x2, 2008 + add x24, x0, x24 + add x0, x0, x10 + ldrb w3, [x0, 22] mov x0, 0 - b .L2904 -.L2900: - add w22, w22, 1 - add x23, x23, 32 - cmp w22, 49 - bne .L2902 - b .L2897 -.L2904: - add x4, x1, x0, lsl 5 +.L2936: + lsl x4, x0, 5 mov w2, w0 - ldrb w4, [x4,2008] + ldrb w4, [x4, x1] cmp w4, w3 - beq .L2903 + beq .L2938 add x0, x0, 1 cmp x0, 4 - bne .L2904 + bne .L2936 mov w2, w0 -.L2903: - add x23, x20, :lo12:.LANCHOR2 - add x24, x19, :lo12:.LANCHOR0 - add x1, x23, 2008 - ubfiz x2, x2, 5, 32 - add x1, x1, x2 - add x0, x24, 1160 +.L2938: + add x22, x20, :lo12:.LANCHOR2 + ubfiz x1, x2, 5, 32 + add x0, x22, 2008 + add x23, x19, :lo12:.LANCHOR0 + add x1, x0, x1 mov w2, 32 - add x23, x23, 8 + add x0, x23, 1160 + add x22, x22, 8 bl ftl_memcpy - mov x0, x23 - mov x1, x22 mov w2, 32 + mov x1, x24 + mov x0, x22 bl ftl_memcpy - ldrb w0, [x24,1028] + ldrb w0, [x23, 1028] cmp w0, 8 - bhi .L2905 - ldrb w0, [x23,20] - cmp w0, 60 - bls .L2905 - mov w0, 60 - strb w0, [x23,20] -.L2905: - ldr w0, [x20,#:lo12:.LANCHOR2] - tbz x0, 12, .L2939 - adrp x2, .LANCHOR4 - adrp x0, .LC138 - add x2, x2, :lo12:.LANCHOR4 - add x0, x0, :lo12:.LC138 - mov w1, 3477 - add x2, x2, 744 - bl printk + bhi .L2939 + ldrb w1, [x22, 20] + cmp w1, 60 + bls .L2940 + mov w1, 60 + strb w1, [x22, 20] +.L2940: + cmp w0, 6 + beq .L2932 .L2939: + ldr w0, [x20, #:lo12:.LANCHOR2] + tbz x0, 12, .L2941 + adrp x2, .LANCHOR4 + add x2, x2, :lo12:.LANCHOR4 + adrp x0, .LC135 + add x2, x2, 760 + mov w1, 3480 + add x0, x0, :lo12:.LC135 + bl printk +.L2941: add x0, x19, :lo12:.LANCHOR0 - ldr x1, [x0,1144] - ldrh w1, [x1,10] + ldr x1, [x0, 1144] + ldrh w1, [x1, 10] cmp w1, 1023 - bls .L2906 + bls .L2942 mov w1, 2 - strb w1, [x0,1257] -.L2906: + strb w1, [x0, 1205] +.L2942: add x23, x21, :lo12:.LANCHOR5 - mov w0, 16384 add x22, x19, :lo12:.LANCHOR0 - add x24, x20, :lo12:.LANCHOR2 - bl ftl_malloc - str x0, [x23,336] mov w0, 16384 bl ftl_malloc - str x0, [x23,296] + add x24, x20, :lo12:.LANCHOR2 + str x0, [x23, 352] + mov w0, 16384 + bl ftl_malloc + str x0, [x23, 304] mov w0, 2048 - bl ftl_malloc - str x0, [x22,1128] + bl ftl_dma32_malloc + str x0, [x22, 1048] mov w0, 64 - bl ftl_malloc - str x0, [x23,344] + bl ftl_dma32_malloc + str x0, [x23, 344] mov w0, 64 - bl ftl_malloc - str x0, [x23,312] + bl ftl_dma32_malloc + str x0, [x23, 320] mov w0, 64 - bl ftl_malloc - strb wzr, [x23,996] - str x0, [x23,984] + bl ftl_dma32_malloc + strb wzr, [x23, 460] + str x0, [x23, 448] bl flash_die_info_init - ldrb w0, [x24,26] + ldrb w0, [x24, 26] bl flash_lsb_page_tbl_build - ldrb w0, [x24,28] + ldrb w0, [x24, 28] bl nandc_bch_sel - str xzr, [x23,328] - ldr x3, [x22,1144] + str xzr, [x23, 336] + ldr x3, [x22, 1144] adrp x2, .LANCHOR3 add x2, x2, :lo12:.LANCHOR3 - ldrh w0, [x3,16] + ldrh w0, [x3, 16] ubfx x1, x0, 8, 3 - strb w1, [x22,1304] + strb w1, [x22, 1248] ubfx x1, x0, 3, 1 - strb w1, [x23,360] + strb w1, [x23, 368] ubfx x1, x0, 4, 1 - strb w1, [x22,1305] + strb w1, [x22, 1250] ubfx x1, x0, 12, 1 - strb w1, [x2,1344] + strb w1, [x2, 1336] ubfx x1, x0, 13, 1 - strb w1, [x2,1330] + strb w1, [x2, 1322] ubfx x1, x0, 11, 1 - strb w1, [x22,1268] - ldrb w1, [x3,31] + strb w1, [x22, 1212] + ldrb w1, [x3, 31] ubfx x4, x1, 1, 1 - strb w4, [x2,1956] + strb w4, [x2, 1950] ubfx x4, x1, 2, 1 - strb w4, [x23,997] + strb w4, [x23, 461] ubfx x4, x0, 14, 1 lsr w0, w0, 15 - strb w0, [x2,1331] + strb w0, [x2, 1323] ubfx x2, x1, 3, 1 - strb w2, [x22,1256] + ldrb w0, [x3, 28] ubfx x1, x1, 4, 1 - ldrb w2, [x22,1028] - ldrb w0, [x3,28] - strb w1, [x22,1269] - cmp w2, 9 + strb w2, [x22, 1204] + strb w1, [x22, 1213] mov w1, 60 - strb w4, [x22,1] - strb w0, [x19,#:lo12:.LANCHOR0] - strb w1, [x22,1152] - bne .L2907 + ldrb w2, [x22, 1028] + strb w4, [x22, 1] + strb w0, [x19, #:lo12:.LANCHOR0] + cmp w2, 9 + strb w1, [x22, 1152] + bne .L2943 mov w1, 70 - strb w1, [x22,1152] -.L2907: + strb w1, [x22, 1152] +.L2943: add x1, x19, :lo12:.LANCHOR0 - strb w0, [x1,1154] + strb w0, [x1, 1154] add x0, x20, :lo12:.LANCHOR2 add x0, x0, 8 - ldrb w3, [x0,31] - tbz x3, 0, .L2908 - ldrb w0, [x0,29] - cbz w0, .L2909 + ldrb w3, [x0, 31] + tbz x3, 0, .L2944 + ldrb w0, [x0, 29] + cbz w0, .L2945 mov w0, 2 - b .L2979 -.L2909: - mov w0, 3 -.L2979: - strb w0, [x1,1154] -.L2908: +.L3007: + strb w0, [x1, 1154] +.L2944: cmp w2, 8 - bne .L2910 + bne .L2946 add x0, x19, :lo12:.LANCHOR0 - ldrb w0, [x0,1272] - cmp w0, 137 - beq .L2940 - cmp w0, 44 - bne .L2910 -.L2940: - add x0, x20, :lo12:.LANCHOR2 - ldrb w0, [x0,36] - cmp w0, 3 - bne .L2910 - add x0, x19, :lo12:.LANCHOR0 - strb wzr, [x0,1154] -.L2910: + mov w2, 137 + ldrb w1, [x0, 1216] + cmp w1, 44 + ccmp w1, w2, 4, ne + bne .L2946 + add x1, x20, :lo12:.LANCHOR2 + ldrb w1, [x1, 36] + cmp w1, 3 + bne .L2946 + strb wzr, [x0, 1154] +.L2946: 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,1136] - tbz x1, 6, .L2913 + ldrb w0, [x1, 19] + ldrh w1, [x1, 16] + strb w0, [x2, 1136] + tbz x1, 6, .L2948 sub w1, w0, #17 - cmp w0, 21 - cset w2, eq - uxtb w1, w1 + and w1, w1, 255 cmp w1, 2 - bls .L2941 - cbz w2, .L2914 -.L2941: - add x0, x21, :lo12:.LANCHOR5 - adrp x1, micron_read_retrial - add x1, x1, :lo12:micron_read_retrial - str x1, [x0,328] - mov w1, 15 - cbz w2, .L2980 - mov w1, 4 -.L2980: - strb w1, [x0,320] - b .L2913 -.L2914: - sub w1, w0, #65 - uxtb w1, w1 - cmp w1, 1 - bls .L2942 - cmp w0, 33 - bne .L2918 -.L2942: - add x0, x21, :lo12:.LANCHOR5 - adrp x1, toshiba_read_retrial - add x1, x1, :lo12:toshiba_read_retrial - mov w2, 4 - str x1, [x0,328] - add x1, x19, :lo12:.LANCHOR0 - strb w2, [x1,1137] - b .L2983 -.L2918: - sub w1, w0, #67 - uxtb w1, w1 - cmp w1, 1 - sub w1, w0, #34 - cset w2, ls - uxtb w1, w1 - cmp w1, 1 - bls .L2943 - cbz w2, .L2920 -.L2943: - add x3, x21, :lo12:.LANCHOR5 - adrp x1, toshiba_read_retrial - add x1, x1, :lo12:toshiba_read_retrial - cmp w0, 35 - str x1, [x3,328] - beq .L2922 - cmp w0, 68 - beq .L2922 - mov w0, 7 - strb w0, [x3,320] - b .L2923 -.L2922: - add x0, x21, :lo12:.LANCHOR5 - mov w1, 17 - strb w1, [x0,320] -.L2923: + ccmp w0, 21, 4, hi + bne .L2949 + add x1, x21, :lo12:.LANCHOR5 + adrp x2, micron_read_retrial + add x2, x2, :lo12:micron_read_retrial + cmp w0, 21 + str x2, [x1, 336] + beq .L2950 + mov w0, 15 +.L3009: + strb w0, [x1, 328] +.L2948: + ldr w0, [x20, #:lo12:.LANCHOR2] + tbz x0, 12, .L2959 + adrp x2, .LANCHOR4 + add x2, x2, :lo12:.LANCHOR4 + adrp x0, .LC135 + add x2, x2, 760 + mov w1, 3573 + add x0, x0, :lo12:.LC135 + bl printk +.L2959: add x0, x19, :lo12:.LANCHOR0 + ldrb w1, [x0, 1248] + strb wzr, [x0, 1192] + tbz x1, 0, .L2960 + ldrb w0, [x0, 1216] + cmp w0, 155 + beq .L2961 + mov w0, 4 + bl flash_set_interface_mode + mov w0, 4 + bl nandc_set_if_mode +.L2961: + mov w0, 1 + bl flash_set_interface_mode + mov w0, 1 +.L3012: + bl nandc_set_if_mode + bl flash_info_blk_init + mov w22, w0 + cmn w0, #1 + bne .L2963 + add x19, x19, :lo12:.LANCHOR0 + mov w1, 17 + ldr x0, [x19, 1048] + strb wzr, [x19, 1208] + strb w1, [x0, 32] + mov w0, 0 + bl zftl_flash_exit_slc_mode + b .L2927 +.L2935: + add x8, x8, 1 + add x7, x7, 32 + cmp x8, 49 + bne .L2937 + b .L2932 +.L2945: + mov w0, 3 + b .L3007 +.L2950: + mov w0, 4 + b .L3009 +.L2949: + sub w1, w0, #65 + cmp w0, 33 + and w1, w1, 255 + ccmp w1, 1, 0, ne + bhi .L2952 + add x0, x21, :lo12:.LANCHOR5 + adrp x1, toshiba_read_retrial + add x1, x1, :lo12:toshiba_read_retrial + str x1, [x0, 336] mov w1, 4 - cbnz w2, .L2981 - mov w1, 5 -.L2981: - strb w1, [x0,1137] - b .L2913 -.L2920: - sub w1, w0, #36 - uxtb w1, w1 + strb w1, [x2, 1137] +.L3013: + mov w1, 7 +.L3011: + strb w1, [x0, 328] + b .L2948 +.L2952: + sub w3, w0, #34 + sub w1, w0, #67 + and w3, w3, 255 + and w1, w1, 255 + cmp w3, 1 + ccmp w1, 1, 0, hi + bhi .L2953 + add x2, x21, :lo12:.LANCHOR5 + adrp x3, toshiba_read_retrial + add x3, x3, :lo12:toshiba_read_retrial + cmp w0, 35 + str x3, [x2, 336] + mov w3, 68 + ccmp w0, w3, 4, ne + beq .L2954 + mov w0, 7 +.L3008: + strb w0, [x2, 328] cmp w1, 1 - bhi .L2925 + add x0, x19, :lo12:.LANCHOR0 + bhi .L2956 + mov w1, 4 +.L3010: + strb w1, [x0, 1137] + b .L2948 +.L2954: + mov w0, 17 + b .L3008 +.L2956: + mov w1, 5 + b .L3010 +.L2953: + sub w1, w0, #36 + and w1, w1, 255 + cmp w1, 1 + bhi .L2957 add x0, x21, :lo12:.LANCHOR5 adrp x1, toshiba_3d_read_retrial add x1, x1, :lo12:toshiba_3d_read_retrial - str x1, [x0,328] -.L2983: - mov w1, 7 - b .L2980 -.L2925: + str x1, [x0, 336] + b .L3013 +.L2957: cmp w0, 50 - bne .L2926 + bne .L2958 add x0, x21, :lo12:.LANCHOR5 adrp x1, samsung_read_retrial add x1, x1, :lo12:samsung_read_retrial - str x1, [x0,328] + str x1, [x0, 336] mov w1, 25 - b .L2980 -.L2926: + b .L3011 +.L2958: cmp w0, 81 - bne .L2913 + bne .L2948 add x0, x21, :lo12:.LANCHOR5 adrp x1, ymtc_3d_read_retrial add x1, x1, :lo12:ymtc_3d_read_retrial - str x1, [x0,328] + strb wzr, [x2, 1251] + str x1, [x0, 336] mov w1, 7 - strb w1, [x0,320] - add x0, x19, :lo12:.LANCHOR0 - strb wzr, [x0,1193] -.L2913: - ldr w0, [x20,#:lo12:.LANCHOR2] - tbz x0, 12, .L2927 - adrp x2, .LANCHOR4 - adrp x0, .LC138 - add x2, x2, :lo12:.LANCHOR4 - add x0, x0, :lo12:.LC138 - mov w1, 3570 - add x2, x2, 744 - bl printk -.L2927: - add x0, x19, :lo12:.LANCHOR0 - ldrb w1, [x0,1304] - strb wzr, [x0,1192] - tbz x1, 0, .L2928 - ldrb w0, [x0,1272] - cmp w0, 155 - beq .L2929 + strb w1, [x0, 328] + b .L2948 +.L2960: mov w0, 4 - bl flash_set_interface_mode - mov w0, 4 - bl nandc_set_if_mode -.L2929: - mov w0, 1 - bl flash_set_interface_mode - mov w0, 1 - b .L2982 -.L2928: - mov w0, 4 -.L2982: - bl nandc_set_if_mode - bl flash_info_blk_init - cmn w0, #1 - mov w22, w0 - bne .L2931 - add x19, x19, :lo12:.LANCHOR0 - mov w1, 17 - ldr x0, [x19,1128] - strb wzr, [x19,1264] - strb w1, [x0,32] - mov w0, 0 - bl zftl_flash_exit_slc_mode - b .L2977 -.L2931: + b .L3012 +.L2963: add x0, x20, :lo12:.LANCHOR2 - ldrb w0, [x0,15] + ldrb w0, [x0, 15] cmp w0, 9 - bne .L2932 + bne .L2964 add x0, x19, :lo12:.LANCHOR0 - ldr x1, [x0,1128] - ldrb w1, [x1,20] + ldr x1, [x0, 1048] + ldrb w1, [x1, 20] cmp w1, 1 - beq .L2932 - strb wzr, [x0,1154] -.L2932: + beq .L2964 + strb wzr, [x0, 1154] +.L2964: add x0, x19, :lo12:.LANCHOR0 - ldrb w0, [x0,1136] + ldrb w0, [x0, 1136] sub w0, w0, #1 - uxtb w0, w0 + and w0, w0, 255 cmp w0, 7 - bhi .L2933 + bhi .L2965 add x0, x21, :lo12:.LANCHOR5 adrp x1, hynix_read_retrial add x1, x1, :lo12:hynix_read_retrial - str x1, [x0,328] -.L2933: + str x1, [x0, 336] +.L2965: add x19, x19, :lo12:.LANCHOR0 - ldrb w0, [x19,1304] - tbz x0, 2, .L2935 - ldr x0, [x19,1128] - ldrb w0, [x0,19] - cbz w0, .L2935 + ldrb w0, [x19, 1248] + tbz x0, 2, .L2967 + ldr x0, [x19, 1048] + ldrb w0, [x0, 19] + cbz w0, .L2967 add x21, x21, :lo12:.LANCHOR5 - ldrh w1, [x19,2] + ldrh w0, [x19, 2] + ldrb w1, [x21, 456] + mul w1, w1, w0 mov w0, 0 - ldrb w2, [x21,992] - mul w1, w2, w1 bl flash_ddr_para_scan - ldrb w0, [x19,1192] - cbnz w0, .L2935 - ldr x1, [x19,1128] - strb w0, [x1,19] + ldrb w0, [x19, 1192] + cbnz w0, .L2967 + ldr x0, [x19, 1048] + strb wzr, [x0, 19] bl flash_info_flush -.L2935: - ldr w0, [x20,#:lo12:.LANCHOR2] - tbz x0, 12, .L2937 +.L2967: + ldr w0, [x20, #:lo12:.LANCHOR2] + tbz x0, 12, .L2969 adrp x2, .LANCHOR4 - adrp x0, .LC138 add x2, x2, :lo12:.LANCHOR4 - add x0, x0, :lo12:.LC138 - mov w1, 3673 - add x2, x2, 744 + adrp x0, .LC135 + add x2, x2, 760 + mov w1, 3676 + add x0, x0, :lo12:.LC135 bl printk -.L2937: - mov w22, 0 +.L2969: bl nand_flash_print_info -.L2977: - 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 - ret + mov w22, 0 + b .L2927 .size nand_flash_init, .-nand_flash_init .align 2 .global ftl_sysblk_dump .type ftl_sysblk_dump, %function ftl_sysblk_dump: sub sp, sp, #144 - stp x29, x30, [sp,48] + stp x29, x30, [sp, 48] add x29, sp, 48 - stp x23, x24, [sp,96] - uxth w24, w0 - mov w0, 1 - stp x19, x20, [sp,64] - stp x25, x26, [sp,112] - stp x27, x28, [sp,128] - stp x21, x22, [sp,80] + stp x19, x20, [sp, 64] mov w20, 0 - bl buf_alloc + stp x25, x26, [sp, 112] + adrp x26, .LANCHOR3 + stp x27, x28, [sp, 128] + add x26, x26, :lo12:.LANCHOR3 + stp x21, x22, [sp, 80] adrp x22, .LC195 - ldr x26, [x0,8] + stp x23, x24, [sp, 96] + and w24, w0, 65535 + mov w0, 1 + bl buf_alloc + ldr x27, [x0, 8] mov x25, x0 - mov w19, w20 - adrp x27, .LANCHOR3 - adrp x28, .LANCHOR0 add x22, x22, :lo12:.LC195 -.L2985: - add x2, x27, :lo12:.LANCHOR3 - ldrh w3, [x2,1384] - cmp w3, w19 - bls .L2997 - ldrh w21, [x2,1418] - add x3, x28, :lo12:.LANCHOR0 - ldr x1, [x25,8] - ldr x2, [x25,24] - madd w21, w24, w21, w19 - ldrb w3, [x3,3360] - mov w0, w21 - bl ftl_read_ppa_page - mov w23, w0 - ldr x7, [x25,8] - mov w1, w24 - ldr x2, [x25,24] - mov w3, w21 - mov w4, w23 - ldr w0, [x7,12] - str w0, [sp] - ldr w0, [x2] - str w0, [sp,8] - ldr w0, [x2,4] - str w0, [sp,16] - ldr w0, [x2,8] - str w0, [sp,24] - ldr w0, [x2,12] - mov w2, w19 - str w0, [sp,32] - mov x0, x22 - ldr w5, [x7] - ldr w6, [x7,4] - ldr w7, [x7,8] - bl printk - cmp w23, 512 - beq .L2990 - cmn w23, #1 - bne .L2986 -.L2990: - mov w20, 1 -.L2986: - add w19, w19, 1 - uxth w19, w19 - b .L2985 -.L2997: - adrp x0, .LC211 - add x1, x26, 704 - add x0, x0, :lo12:.LC211 - mov w2, 4 + mov w19, 0 + mov w28, 1 +.L3015: + ldrh w0, [x26, 1376] + cmp w0, w19 + bhi .L3017 + add x1, x27, 704 mov w3, 32 + mov w2, 4 + adrp x0, .LC211 + add x0, x0, :lo12:.LC211 bl rknand_print_hex mov x0, x25 bl zbuf_free - cbz w20, .L2989 + cbz w20, .L3018 adrp x1, .LANCHOR4 - adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 + add x1, x1, 776 mov w2, 1619 - add x1, x1, 760 + adrp x0, .LC0 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L2989: - sub sp, x29, #48 +.L3018: mov w0, w20 - 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] + 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, 144 ret +.L3017: + ldrh w21, [x26, 1410] + ldrb w3, [x26, 1946] + ldr x1, [x25, 8] + ldr x2, [x25, 24] + madd w21, w21, w24, w19 + mov w0, w21 + bl ftl_read_ppa_page + mov w23, w0 + ldr x1, [x25, 24] + mov w4, w0 + ldr x0, [x25, 8] + mov w3, w21 + ldr w2, [x1, 12] + str w2, [sp, 32] + ldr w2, [x1, 8] + str w2, [sp, 24] + ldr w2, [x1, 4] + str w2, [sp, 16] + mov w2, w19 + add w19, w19, 1 + ldr w1, [x1] + and w19, w19, 65535 + str w1, [sp, 8] + ldr w1, [x0, 12] + str w1, [sp] + mov w1, w24 + ldp w5, w6, [x0] + ldr w7, [x0, 8] + mov x0, x22 + bl printk + cmp w23, 512 + ccmn w23, #1, 4, ne + csel w20, w20, w28, ne + b .L3015 .size ftl_sysblk_dump, .-ftl_sysblk_dump .align 2 .global ftl_open_sblk_recovery .type ftl_open_sblk_recovery, %function ftl_open_sblk_recovery: - stp x29, x30, [sp, -368]! + stp x29, x30, [sp, -352]! add x29, sp, 0 - stp x21, x22, [sp,32] - adrp x22, .LANCHOR2 - stp x19, x20, [sp,16] + stp x21, x22, [sp, 32] + adrp x21, .LANCHOR2 + stp x19, x20, [sp, 16] mov x19, x0 - str x1, [x29,136] - ldr w0, [x22,#:lo12:.LANCHOR2] - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] - stp x27, x28, [sp,80] - tbz x0, 12, .L2999 + ldr w0, [x21, #:lo12:.LANCHOR2] + stp x23, x24, [sp, 48] + stp x25, x26, [sp, 64] + stp x27, x28, [sp, 80] + str x1, [x29, 112] + tbz x0, 12, .L3026 + ldrh w1, [x19, 2] adrp x0, .LC212 - ldrh w1, [x19,2] add x0, x0, :lo12:.LC212 bl printk -.L2999: - ldr w0, [x22,#:lo12:.LANCHOR2] - tbz x0, 12, .L3000 +.L3026: + ldr w0, [x21, #:lo12:.LANCHOR2] + tbz x0, 12, .L3027 + ldrb w1, [x19, 5] adrp x0, .LC213 - ldrb w1, [x19,5] add x0, x0, :lo12:.LC213 bl printk -.L3000: - ldr w0, [x22,#:lo12:.LANCHOR2] - tbz x0, 12, .L3001 - adrp x0, .LC214 +.L3027: + ldr w0, [x21, #:lo12:.LANCHOR2] + tbz x0, 12, .L3028 ldrh w1, [x19] + adrp x0, .LC214 add x0, x0, :lo12:.LC214 bl printk -.L3001: - ldr w0, [x22,#:lo12:.LANCHOR2] - tbz x0, 12, .L3002 +.L3028: + ldr w0, [x21, #:lo12:.LANCHOR2] + tbz x0, 12, .L3029 + ldrh w2, [x19, 18] adrp x0, .LC215 - ldrh w1, [x19,16] - ldrh w2, [x19,18] + ldrh w1, [x19, 16] add x0, x0, :lo12:.LC215 bl printk -.L3002: - ldr w0, [x22,#:lo12:.LANCHOR2] - tbz x0, 12, .L3003 +.L3029: + ldr w0, [x21, #:lo12:.LANCHOR2] + tbz x0, 12, .L3030 + ldrb w1, [x19, 9] adrp x0, .LC216 - ldrb w1, [x19,9] add x0, x0, :lo12:.LC216 bl printk -.L3003: - adrp x20, .LANCHOR0 - ldrh w0, [x19,10] - add x21, x20, :lo12:.LANCHOR0 - strh w0, [x19,14] +.L3030: + ldrh w0, [x19, 10] + adrp x24, .LANCHOR0 + strh w0, [x19, 14] + add x0, x24, :lo12:.LANCHOR0 ldrh w1, [x19] - ldrh w0, [x21,1088] + ldrh w0, [x0, 1096] cmp w1, w0 - bcs .L2998 + bcs .L3025 mov w0, 1 bl buf_alloc + adrp x20, .LANCHOR3 mov x27, x0 - ldrb w0, [x21,3360] - add x21, x29, 176 + add x0, x20, :lo12:.LANCHOR3 + add x25, x29, 160 mov w2, 64 - ldr x1, [x27,8] + add x28, x29, 288 + ldr x1, [x27, 8] + ldrb w0, [x0, 1946] sub w0, w0, #2 sbfiz x0, x0, 9, 32 add x0, x1, x0 mov w1, 255 - str x0, [x29,160] - mov x0, x21 + str x0, [x29, 144] + mov x0, x25 bl ftl_memset - mov w1, 255 mov w2, 64 - add x0, x29, 240 - bl ftl_memset - add x0, x29, 304 mov w1, 255 - mov w2, 64 + add x0, x29, 224 bl ftl_memset - ldrb w24, [x19,5] + mov w2, 64 + mov w1, 255 + mov x0, x28 + bl ftl_memset + ldrb w22, [x19, 5] mov w0, 2 - str w0, [x29,168] + ldrh w23, [x19, 2] + str w0, [x29, 152] adrp x0, .LANCHOR5 - ldrh w25, [x19,2] + str wzr, [x29, 120] add x0, x0, :lo12:.LANCHOR5 - str wzr, [x29,144] - add x0, x0, 384 - str x0, [x29,128] - adrp x0, .LC217 - add x0, x0, :lo12:.LC217 - str x0, [x29,120] -.L3005: - adrp x23, .LANCHOR3 - add x0, x23, :lo12:.LANCHOR3 - ldrh w0, [x0,1384] - cmp w0, w25 - bls .L3008 - ldrb w24, [x19,5] -.L3006: - ldrb w0, [x19,9] - cmp w0, w24 - bls .L3145 - add x0, x19, w24, sxtw 1 - ldrh w28, [x0,16] - mov w0, 65535 - cmp w28, w0 - beq .L3007 - add x0, x23, :lo12:.LANCHOR3 - add x3, x20, :lo12:.LANCHOR0 - ldr x1, [x27,8] - ldr x2, [x27,24] - ldrh w26, [x0,1418] - ldrb w3, [x3,3360] - madd w0, w28, w26, w25 - str w0, [x29,152] - bl ftl_read_ppa_page - cmp w0, 512 - mov w26, w0 - beq .L3008 - cmn w0, #1 - beq .L3009 - ldr x0, [x27,24] - ldr w1, [x0] - cmn w1, #1 - bne .L3009 - ldr w0, [x0,4] - cmn w0, #1 - bne .L3009 - ldr x0, [x27,8] - ldr w0, [x0] - cmn w0, #1 - beq .L3008 -.L3009: - adrp x0, .LANCHOR5 - mov w1, 1 - add x0, x0, :lo12:.LANCHOR5 - strb w1, [x0,657] - ldrb w0, [x19,9] - ldrh w1, [x19,10] - madd w0, w25, w0, w24 - cmp w1, w0 - beq .L3010 - adrp x1, .LANCHOR4 - adrp x0, .LC0 - add x1, x1, :lo12:.LANCHOR4 - mov w2, 1694 - add x1, x1, 776 - add x0, x0, :lo12:.LC0 - bl printk - bl dump_stack -.L3010: - ldrh w0, [x19,10] - ldrh w1, [x19,6] - ldrb w2, [x19,9] + str x0, [x29, 104] +.L3032: + add x0, x20, :lo12:.LANCHOR3 + ldrh w0, [x0, 1376] + cmp w0, w23 + bhi .L3049 +.L3035: + add x2, x20, :lo12:.LANCHOR3 + ldrh w0, [x19, 10] + ldrh w1, [x19, 6] + strh w23, [x19, 2] add w1, w1, w0 - add x0, x23, :lo12:.LANCHOR3 - ldrh w0, [x0,1384] + ldrh w2, [x2, 1376] + ldrb w0, [x19, 9] + strb w22, [x19, 5] mul w0, w0, w2 cmp w1, w0 - beq .L3011 + beq .L3050 adrp x1, .LANCHOR4 - adrp x0, .LC0 - add x1, x1, :lo12:.LANCHOR4 - mov w2, 1695 - add x1, x1, 776 - add x0, x0, :lo12:.LC0 - bl printk - bl dump_stack -.L3011: - add x0, x20, :lo12:.LANCHOR0 - str x0, [x29,168] - ldrb w0, [x0,3360] - cmp w0, 8 - bls .L3012 - ldr x0, [x27,24] - mov w1, 15555 - movk w1, 0xf55f, lsl 16 - ldr w2, [x0] - cmp w2, w1 - beq .L3012 - cmn w26, #1 - beq .L3017 - ldr w1, [x0,4] - cmn w1, #1 - beq .L3052 - ldr w2, [x0,16] - mov w1, 21320 - movk w1, 0x4841, lsl 16 - cmp w2, w1 - bne .L3052 - ldr w2, [x0,20] - mov w1, 1024 - ldr x0, [x29,160] - str x2, [x29,144] - bl js_hash - ldr x2, [x29,144] - cmp w2, w0 - beq .L3052 - ldr x0, [x29,160] - mov w1, 1024 - bl js_hash - mov w5, w0 - ldr w3, [x29,152] - mov w1, w28 - ldr x0, [x29,120] - mov w2, w25 - mov w4, w26 - bl printk - ldr x1, [x29,160] - adrp x0, .LC218 - add x0, x0, :lo12:.LC218 - mov w2, 4 - mov w3, 16 - bl rknand_print_hex - ldr x0, [x29,168] - mov w2, 4 - ldr x1, [x27,24] - ldrb w3, [x0,3360] - adrp x0, .LC183 - add x0, x0, :lo12:.LC183 - lsr w3, w3, 1 - bl rknand_print_hex - b .L3017 -.L3012: - cmn w26, #1 - beq .L3017 -.L3052: - ldr x1, [x27,24] - ldr w0, [x1,4] - cmn w0, #1 - beq .L3017 - ldr w2, [x1] - mov w1, 15555 - movk w1, 0xf55f, lsl 16 - cmp w2, w1 - beq .L3017 - bl lpa_hash_get_ppa - ldr x1, [x29,136] - cbz x1, .L3016 - ldr x8, [x27,24] - ldr w1, [x8,8] - cmp w0, w1 - beq .L3016 - cmn w0, #1 - beq .L3016 - add x7, x20, :lo12:.LANCHOR0 - add x4, x23, :lo12:.LANCHOR3 - mov w5, 24 - mov w28, 1 - ldrb w2, [x7,1257] - ldrh w1, [x4,1312] - sub w2, w5, w2 - lsr w3, w0, w1 - sub w1, w2, w1 - lsl w1, w28, w1 - ldrb w2, [x4,1314] - sub w1, w1, #1 - and w1, w3, w1 - udiv w1, w1, w2 - ldr x2, [x29,136] - ldrh w2, [x2] - cmp w2, w1, uxth - bne .L3016 - ldr w8, [x8] - ldrb w3, [x7,3360] - ldr x1, [x27,8] - ldr x2, [x29,128] - str x5, [x29,104] - str x4, [x29,112] - str x8, [x29,144] - str x7, [x29,168] - bl ftl_read_ppa_page - ldr x0, [x29,128] - ldr x8, [x29,144] - ldr x7, [x29,168] - ldr w0, [x0] - ldr x4, [x29,112] - cmp w0, w8 - ldr x5, [x29,104] - bcc .L3016 - ldr x0, [x27,24] - ldr w1, [x0,8] - cmn w1, #1 - beq .L3017 - ldrb w2, [x7,1257] - ldrh w0, [x4,1312] - sub w5, w5, w2 - sub w5, w5, w0 - lsr w1, w1, w0 - lsl w28, w28, w5 - ldrb w0, [x4,1314] - sub w28, w28, #1 - and w1, w28, w1 - udiv w0, w1, w0 - bl ftl_vpn_decrement - b .L3017 -.L3016: - ldr x2, [x27,24] - add x1, x20, :lo12:.LANCHOR0 - ldr w3, [x2,4] - ldr w0, [x1,3372] - cmp w3, w0 - bcs .L3017 - add x4, x23, :lo12:.LANCHOR3 - ldrb w0, [x19,9] - ldrh w3, [x19,10] - ldrh w4, [x4,1384] - mul w0, w0, w4 - sub w0, w0, #1 - cmp w3, w0 - blt .L3146 -.L3017: - ldrh w0, [x19,6] - sub w0, w0, #1 - strh w0, [x19,6] - ldrh w0, [x19,10] - add w0, w0, 1 - strh w0, [x19,10] - mov w0, 4 - str w0, [x29,168] - mov w0, 1 - str w0, [x29,144] -.L3007: - add w24, w24, 1 - uxth w24, w24 - b .L3006 -.L3145: - add w25, w25, 1 - strb wzr, [x19,5] - uxth w25, w25 - b .L3005 -.L3008: - add x2, x23, :lo12:.LANCHOR3 - ldrh w0, [x19,10] - ldrh w1, [x19,6] - strh w25, [x19,2] - add w1, w1, w0 - ldrh w2, [x2,1384] - ldrb w0, [x19,9] - strb w24, [x19,5] - mul w0, w0, w2 - cmp w1, w0 - beq .L3021 - adrp x1, .LANCHOR4 - adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 + add x1, x1, 792 mov w2, 1802 - add x1, x1, 776 + adrp x0, .LC0 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L3021: - add x0, x23, :lo12:.LANCHOR3 - ldrh w3, [x19,10] - ldr x4, [x0,1936] - mov w0, 0 - mov w2, w0 -.L3022: - cmp w2, w3 - bcs .L3147 - ldrh w1, [x19,12] - add w1, w2, w1 - ldr w1, [x4,x1,lsl 2] - cmn w1, #1 - beq .L3023 - add w1, w0, 1 - uxth w0, w1 -.L3023: - add w2, w2, 1 - b .L3022 -.L3147: - add x2, x23, :lo12:.LANCHOR3 - ldrb w1, [x19,9] - sub w0, w0, w3 - ldrh w24, [x2,1384] - madd w0, w1, w24, w0 - uxth w24, w0 - ldr w0, [x22,#:lo12:.LANCHOR2] - tbz x0, 12, .L3025 - add x0, x20, :lo12:.LANCHOR0 - ldrh w1, [x19] - mov w2, w24 - ubfiz x3, x1, 1, 16 - ldr x4, [x0,1112] - adrp x0, .LC219 - add x0, x0, :lo12:.LC219 - ldrh w3, [x4,x3] - bl printk -.L3025: - add x0, x20, :lo12:.LANCHOR0 - ldrh w1, [x19] - ldr x0, [x0,1112] - strh w24, [x0,x1,lsl 1] - ldr w0, [x22,#:lo12:.LANCHOR2] - tbz x0, 14, .L3026 - adrp x0, .LC220 - ldr w1, [x29,176] - ldr w2, [x29,180] - add x0, x0, :lo12:.LC220 - ldr w3, [x29,184] - ldr w4, [x29,188] - bl printk -.L3026: - add x0, x20, :lo12:.LANCHOR0 +.L3050: + add x0, x20, :lo12:.LANCHOR3 + ldrh w3, [x19, 10] mov w1, 0 - adrp x28, .LC222 - mov x24, 0 - mov w26, -1 - ldrb w2, [x0,3360] - ldr x0, [x27,8] + ldr x4, [x0, 1928] + mov w0, 0 +.L3051: + cmp w1, w3 + bcc .L3053 + add x1, x20, :lo12:.LANCHOR3 + ldrb w22, [x19, 9] + ldrh w1, [x1, 1376] + madd w22, w22, w1, w0 + ldr w0, [x21, #:lo12:.LANCHOR2] + sub w22, w22, w3 + and w22, w22, 65535 + tbz x0, 12, .L3054 + add x0, x24, :lo12:.LANCHOR0 + ldrh w1, [x19] + ldr x0, [x0, 1120] + ubfiz x2, x1, 1, 16 + ldrh w3, [x0, x2] + adrp x0, .LC219 + mov w2, w22 + add x0, x0, :lo12:.LC219 + bl printk +.L3054: + add x0, x24, :lo12:.LANCHOR0 + ldrh w1, [x19] + ldr x0, [x0, 1120] + strh w22, [x0, x1, lsl 1] + ldr w0, [x21, #:lo12:.LANCHOR2] + tbz x0, 14, .L3055 + ldp w1, w2, [x29, 160] + adrp x0, .LC220 + ldp w3, w4, [x29, 168] + add x0, x0, :lo12:.LC220 + bl printk +.L3055: + add x0, x20, :lo12:.LANCHOR3 + mov w1, 0 + mov x23, 0 + ldrb w2, [x0, 1946] + ldr x0, [x27, 8] lsl w2, w2, 9 bl ftl_memset adrp x0, .LC221 add x0, x0, :lo12:.LC221 - str x0, [x29,152] - add x0, x28, :lo12:.LC222 - str x0, [x29,136] -.L3027: - add x0, x23, :lo12:.LANCHOR3 - ldr w1, [x29,168] - str w24, [x29,160] - ldrb w0, [x0,1329] - mul w0, w1, w0 - cmp w24, w0 - bcs .L3148 - ldr w0, [x21,x24,lsl 2] - cmn w0, #1 - bne .L3028 -.L3032: - add x1, x20, :lo12:.LANCHOR0 - ldr x0, [x27,24] - mov x2, 0 - mov w25, -1 - ldr x1, [x1,3392] - ldr w1, [x1,8] - str w1, [x0] - ldr x0, [x27,24] - str w26, [x0,4] - ldr x0, [x27,24] - str w26, [x0,8] - ldr x0, [x27,24] - str wzr, [x0,12] - ldr x0, [x27,24] - str wzr, [x0,16] - ldr x0, [x27,8] - str wzr, [x0] - mov w0, 2 - ldr x1, [x27,24] - add x1, x1, 16 - bl ftl_debug_info_fill - b .L3029 -.L3028: - add x3, x20, :lo12:.LANCHOR0 - ldr x1, [x27,8] - ldr x2, [x27,24] - ldrb w3, [x3,3360] - bl ftl_read_ppa_page - mov w25, w0 - ldr x0, [x27,24] - ldr w0, [x0,4] - bl lpa_hash_get_ppa - mov w28, w0 - ldr w0, [x22,#:lo12:.LANCHOR2] - tbz x0, 14, .L3030 - ldr x3, [x27,24] - mov w1, w28 - ldr x0, [x29,152] - ldr w2, [x21,x24,lsl 2] - ldr w3, [x3,4] - bl printk -.L3030: - ldr w0, [x21,x24,lsl 2] - mov w1, 1 - mov x2, 0 - cmp w28, w0 - ldr x0, [x27,24] - csinv w25, w25, wzr, eq - str w28, [x0,8] - ldr x0, [x27,24] - str w1, [x0,12] - ldr x0, [x27,24] - str wzr, [x0,16] - mov w0, 2 - ldr x1, [x27,24] - add x1, x1, 16 - bl ftl_debug_info_fill - cmn w25, #1 - beq .L3032 -.L3029: - ldr w0, [x29,144] - cbz w0, .L3034 -.L3144: - ldrh w0, [x19,6] - cmp w0, 1 - bls .L3034 - mov x0, x19 - bl ftl_get_new_free_page - mov w28, w0 - ldr w0, [x22,#:lo12:.LANCHOR2] - tbz x0, 14, .L3036 - ldr x2, [x27,24] - mov w1, w28 - ldrh w0, [x19,12] - ldrh w3, [x19,10] - ldr w2, [x2,4] - add w3, w3, w0 - ldr x0, [x29,136] - sub w3, w3, #1 - bl printk -.L3036: - add x1, x23, :lo12:.LANCHOR3 - ldrh w0, [x19,6] - ldrb w2, [x1,1329] - ldr w1, [x29,168] - mul w2, w1, w2 - ldr w1, [x29,160] - add w2, w2, 1 - sub w2, w2, w1 - cmp w0, w2 - bls .L3034 - add x3, x20, :lo12:.LANCHOR0 - ldr x1, [x27,8] - ldr x2, [x27,24] - mov w0, w28 - ldrb w3, [x3,3360] - bl ftl_prog_ppa_page - mov w2, w0 - ldrh w0, [x19] - str x2, [x29,128] - bl ftl_vpn_decrement - ldr x2, [x29,128] - cmn w25, #1 - cset w1, ne - cmn w2, #1 - beq .L3037 - cbz w1, .L3034 - add x0, x29, 240 - ldrh w1, [x19,10] - str w28, [x0,x24,lsl 2] - ldrh w0, [x19,12] - add w0, w1, w0 - add x1, x29, 304 - sub w0, w0, #1 - str w0, [x1,x24,lsl 2] - b .L3034 -.L3037: - cbnz w1, .L3144 -.L3034: - add x24, x24, 1 - b .L3027 -.L3148: - adrp x24, .LC223 - adrp x25, .LC222 - mov x26, 0 - add x24, x24, :lo12:.LC223 - add x25, x25, :lo12:.LC222 -.L3041: - add x28, x23, :lo12:.LANCHOR3 - ldr w1, [x29,168] - ldrb w0, [x28,1329] - mul w0, w1, w0 - cmp w0, w26 - bls .L3149 - add x0, x29, 240 - ldr w0, [x0,x26,lsl 2] - cmn w0, #1 - beq .L3043 - add x3, x20, :lo12:.LANCHOR0 - ldr w0, [x21,x26,lsl 2] - ldr x1, [x27,8] - ldr x2, [x27,24] - ldrb w3, [x3,3360] - bl ftl_read_ppa_page - cmp w0, 256 - beq .L3054 - cmn w0, #1 - bne .L3043 -.L3054: - add x3, x20, :lo12:.LANCHOR0 - add x0, x29, 240 - ldr x1, [x27,8] - ldr x2, [x27,24] - ldr w0, [x0,x26,lsl 2] - ldrb w3, [x3,3360] - bl ftl_read_ppa_page - mov w28, w0 - ldr w0, [x22,#:lo12:.LANCHOR2] - tbz x0, 14, .L3046 - ldr x2, [x27,24] - mov x0, x25 - ldr w3, [x21,x26,lsl 2] - mov w1, w28 - ldr w2, [x2,8] - bl printk -.L3046: - cmn w28, #1 - beq .L3043 - ldr x1, [x27,24] - ldr w2, [x21,x26,lsl 2] - ldr w0, [x1,8] - cmp w2, w0 - bne .L3043 - ldr w0, [x22,#:lo12:.LANCHOR2] - tbz x0, 14, .L3047 - add x3, x29, 304 - ldr w1, [x1,4] - mov x0, x24 - ldr w3, [x3,x26,lsl 2] - bl printk -.L3047: - ldr x1, [x27,24] - add x0, x29, 304 - ldr w2, [x0,x26,lsl 2] - ldr w0, [x1,4] - ldr w1, [x1,8] - bl lpa_hash_update_ppa -.L3043: - add x26, x26, 1 - b .L3041 -.L3149: + str x0, [x29, 128] + adrp x0, .LC222 + add x0, x0, :lo12:.LC222 + str x0, [x29, 112] +.L3056: + add x1, x20, :lo12:.LANCHOR3 + ldr w2, [x29, 152] + str w23, [x29, 140] + ldrb w0, [x1, 1321] + mul w0, w0, w2 + cmp w23, w0 + bcc .L3068 + adrp x22, .LC223 + adrp x23, .LC222 + mov x20, x1 + add x22, x22, :lo12:.LC223 + add x23, x23, :lo12:.LC222 + mov x24, 0 +.L3069: + ldrb w0, [x20, 1321] + ldr w1, [x29, 152] + mul w0, w0, w1 + cmp w0, w24 + bhi .L3075 mov x0, x27 bl zbuf_free - ldrh w1, [x28,1384] - ldrh w0, [x19,12] - ldrb w2, [x19,9] - madd w0, w1, w2, w0 + ldrh w1, [x19, 12] + ldrh w0, [x20, 1376] + ldrb w2, [x19, 9] + madd w0, w0, w2, w1 mov x1, -4 add x0, x1, w0, sxtw 2 - ldr x1, [x28,1936] - ldr w0, [x1,x0] + ldr x1, [x20, 1928] + ldr w0, [x1, x0] cmn w0, #1 - beq .L3049 + beq .L3076 adrp x1, .LANCHOR4 - adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 + add x1, x1, 792 mov w2, 1917 - add x1, x1, 776 + adrp x0, .LC0 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L3049: - ldrh w0, [x19,6] +.L3076: + ldrh w0, [x19, 6] cmp w0, 1 - bne .L2998 + bne .L3025 mov x0, x19 bl ftl_write_last_log_page - b .L2998 -.L3146: - ldr x0, [x1,3392] - ldr w2, [x2] - ldr w1, [x0,8] - cmp w2, w1 - bls .L3018 - str w2, [x0,8] -.L3018: - ldr x1, [x27,24] - ldrh w0, [x19,10] - ldrh w2, [x19,12] - add w2, w2, w0 - ldr w0, [x1,4] - ldr w1, [x1,8] - bl lpa_hash_update_ppa - ldr w0, [x21,4] - str w0, [x21] - ldr w0, [x21,8] - str w0, [x21,4] - ldr w0, [x21,12] - str w0, [x21,8] - ldr w0, [x29,152] - str w0, [x21,12] - b .L3017 -.L2998: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 368 +.L3025: + 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], 352 ret +.L3049: + ldrb w22, [x19, 5] +.L3033: + ldrb w0, [x19, 9] + cmp w0, w22 + bhi .L3048 + add w23, w23, 1 + strb wzr, [x19, 5] + and w23, w23, 65535 + b .L3032 +.L3048: + add x0, x19, w22, sxtw 1 + ldrh w0, [x0, 16] + str w0, [x29, 140] + mov w0, 65535 + ldr w1, [x29, 140] + cmp w1, w0 + beq .L3034 + add x0, x20, :lo12:.LANCHOR3 + ldr w2, [x29, 140] + ldrh w1, [x0, 1410] + ldrb w3, [x0, 1946] + madd w1, w1, w2, w23 + ldr x2, [x27, 24] + str w1, [x29, 128] + ldr x1, [x27, 8] + ldr w0, [x29, 128] + bl ftl_read_ppa_page + mov w26, w0 + cmp w0, 512 + beq .L3035 + cmn w0, #1 + beq .L3036 + ldr x0, [x27, 24] + ldr w1, [x0] + cmn w1, #1 + bne .L3036 + ldr w0, [x0, 4] + cmn w0, #1 + bne .L3036 + ldr x0, [x27, 8] + ldr w0, [x0] + cmn w0, #1 + beq .L3035 +.L3036: + adrp x0, .LANCHOR5 + add x0, x0, :lo12:.LANCHOR5 + mov w1, 1 + strb w1, [x0, 401] + ldrb w0, [x19, 9] + ldrh w1, [x19, 10] + madd w0, w0, w23, w22 + cmp w1, w0 + beq .L3037 + adrp x1, .LANCHOR4 + add x1, x1, :lo12:.LANCHOR4 + add x1, x1, 792 + mov w2, 1694 + adrp x0, .LC0 + add x0, x0, :lo12:.LC0 + bl printk + bl dump_stack +.L3037: + ldrh w0, [x19, 10] + ldrh w1, [x19, 6] + ldrb w2, [x19, 9] + add w1, w1, w0 + add x0, x20, :lo12:.LANCHOR3 + ldrh w0, [x0, 1376] + mul w0, w0, w2 + cmp w1, w0 + beq .L3038 + adrp x1, .LANCHOR4 + add x1, x1, :lo12:.LANCHOR4 + add x1, x1, 792 + mov w2, 1695 + adrp x0, .LC0 + add x0, x0, :lo12:.LC0 + bl printk + bl dump_stack +.L3038: + add x0, x20, :lo12:.LANCHOR3 + str x0, [x29, 152] + ldrb w0, [x0, 1946] + cmp w0, 8 + bls .L3039 + ldr x0, [x27, 24] + mov w2, 15555 + movk w2, 0xf55f, lsl 16 + ldr w1, [x0] + cmp w1, w2 + beq .L3039 + cmn w26, #1 + beq .L3041 + ldr w1, [x0, 4] + cmn w1, #1 + bne .L3042 +.L3045: + ldr x1, [x27, 24] + ldr w0, [x1, 4] + cmn w0, #1 + bne .L3043 +.L3041: + ldrh w0, [x19, 6] + sub w0, w0, #1 + strh w0, [x19, 6] + ldrh w0, [x19, 10] + add w0, w0, 1 + strh w0, [x19, 10] + mov w0, 4 + str w0, [x29, 152] + mov w0, 1 + str w0, [x29, 120] +.L3034: + add w22, w22, 1 + and w22, w22, 65535 + b .L3033 +.L3042: + ldr w1, [x0, 16] + mov w2, 21320 + movk w2, 0x4841, lsl 16 + cmp w1, w2 + bne .L3045 + ldr w2, [x0, 20] + mov w1, 1024 + ldr x0, [x29, 144] + str w2, [x29, 152] + bl js_hash + ldr w2, [x29, 152] + cmp w2, w0 + beq .L3045 + ldr x0, [x29, 144] + mov w1, 1024 + bl js_hash + mov w5, w0 + ldr w3, [x29, 128] + mov w4, w26 + ldr w1, [x29, 140] + mov w2, w23 + adrp x0, .LC217 + add x0, x0, :lo12:.LC217 + bl printk + ldr x1, [x29, 144] + mov w3, 16 + mov w2, 4 + adrp x0, .LC218 + add x0, x0, :lo12:.LC218 + bl rknand_print_hex + add x0, x20, :lo12:.LANCHOR3 + ldr x1, [x27, 24] + mov w2, 4 + ldrb w0, [x0, 1946] + lsr w3, w0, 1 + adrp x0, .LC183 + add x0, x0, :lo12:.LC183 + bl rknand_print_hex + b .L3041 +.L3039: + cmn w26, #1 + bne .L3045 + b .L3041 +.L3043: + ldr w1, [x1] + mov w2, 15555 + movk w2, 0xf55f, lsl 16 + cmp w1, w2 + beq .L3041 + bl lpa_hash_get_ppa + ldr x1, [x29, 112] + cbz x1, .L3046 + ldr x3, [x27, 24] + ldr w1, [x3, 8] + cmp w0, w1 + beq .L3046 + cmn w0, #1 + beq .L3046 + add x7, x24, :lo12:.LANCHOR0 + add x4, x20, :lo12:.LANCHOR3 + mov w5, 24 + mov w26, 1 + ldrb w1, [x7, 1205] + ldrh w8, [x4, 1304] + sub w1, w5, w1 + sub w1, w1, w8 + lsr w2, w0, w8 + lsl w1, w26, w1 + sub w1, w1, #1 + and w1, w1, w2 + ldrb w2, [x4, 1306] + udiv w1, w1, w2 + ldr x2, [x29, 112] + ldrh w2, [x2] + cmp w2, w1, uxth + bne .L3046 + ldr x1, [x29, 104] + ldr w8, [x3] + ldrb w3, [x4, 1946] + stp w5, w8, [x29, 136] + ldr x2, [x1, 376] + ldr x1, [x27, 8] + str x7, [x29, 120] + str x4, [x29, 152] + bl ftl_read_ppa_page + ldr x0, [x29, 104] + ldr w8, [x29, 140] + ldr x0, [x0, 376] + ldr w0, [x0] + cmp w8, w0 + bhi .L3046 + ldr x0, [x27, 24] + ldr w3, [x0, 8] + cmn w3, #1 + beq .L3041 + ldr x7, [x29, 120] + ldr x4, [x29, 152] + ldr w5, [x29, 136] + ldrb w2, [x7, 1205] + ldrh w1, [x4, 1304] + sub w5, w5, w2 + sub w5, w5, w1 + lsr w0, w3, w1 + lsl w26, w26, w5 + sub w26, w26, #1 + and w26, w26, w0 + ldrb w0, [x4, 1306] + udiv w0, w26, w0 + bl ftl_vpn_decrement + b .L3041 +.L3053: + ldrh w2, [x19, 12] + add w2, w2, w1 + ldr w2, [x4, x2, lsl 2] + cmn w2, #1 + beq .L3052 + add w22, w0, 1 + and w0, w22, 65535 +.L3052: + add w1, w1, 1 + b .L3051 +.L3068: + ldr w0, [x25, x23, lsl 2] + cmn w0, #1 + bne .L3057 +.L3061: + add x1, x24, :lo12:.LANCHOR0 + ldr x0, [x27, 24] + mov w22, -1 + mov x2, 0 + ldr x1, [x1, 3384] + ldr w1, [x1, 8] + str w1, [x0] + 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, [x27, 24] + str wzr, [x0, 16] + ldr x0, [x27, 8] + str wzr, [x0] + mov w0, 2 + ldr x1, [x27, 24] + add x1, x1, 16 + bl ftl_debug_info_fill +.L3058: + ldr w0, [x29, 120] + cbz w0, .L3063 + ldrh w0, [x19, 6] + cmp w0, 1 + bls .L3063 + add x0, x20, :lo12:.LANCHOR3 + str x0, [x29, 144] +.L3122: + mov x0, x19 + bl ftl_get_new_free_page + mov w26, w0 + ldr w0, [x21, #:lo12:.LANCHOR2] + tbz x0, 14, .L3065 + ldrh w0, [x19, 12] + mov w1, w26 + ldrh w3, [x19, 10] + add w3, w3, w0 + ldr x0, [x27, 24] + sub w3, w3, #1 + ldr w2, [x0, 4] + ldr x0, [x29, 112] + bl printk +.L3065: + ldr x0, [x29, 144] + ldr w2, [x29, 152] + ldrh w1, [x19, 6] + ldrb w0, [x0, 1321] + mul w0, w0, w2 + ldr w2, [x29, 140] + add w0, w0, 1 + sub w0, w0, w2 + cmp w1, w0 + bls .L3063 + ldr x0, [x29, 144] + ldr x1, [x27, 8] + ldr x2, [x27, 24] + ldrb w3, [x0, 1946] + mov w0, w26 + bl ftl_prog_ppa_page + mov w1, w0 + ldrh w0, [x19] + str w1, [x29, 104] + bl ftl_vpn_decrement + ldr w1, [x29, 104] + cmn w22, #1 + ccmn w1, #1, 4, ne + beq .L3066 + add x0, x29, 224 + ldrh w1, [x19, 12] + str w26, [x0, x23, lsl 2] + ldrh w0, [x19, 10] + add w0, w0, w1 + sub w0, w0, #1 + str w0, [x28, x23, lsl 2] +.L3063: + add x23, x23, 1 + b .L3056 +.L3057: + ldrb w3, [x1, 1946] + ldr x2, [x27, 24] + ldr x1, [x27, 8] + bl ftl_read_ppa_page + mov w22, w0 + ldr x0, [x27, 24] + ldr w0, [x0, 4] + bl lpa_hash_get_ppa + mov w26, w0 + ldr w0, [x21, #:lo12:.LANCHOR2] + tbz x0, 14, .L3059 + ldr x0, [x27, 24] + mov w1, w26 + ldr w2, [x25, x23, lsl 2] + ldr w3, [x0, 4] + ldr x0, [x29, 128] + bl printk +.L3059: + ldr w0, [x25, x23, lsl 2] + mov w1, 1 + mov x2, 0 + cmp w26, w0 + ldr x0, [x27, 24] + csinv w22, w22, wzr, eq + str w26, [x0, 8] + ldr x0, [x27, 24] + str w1, [x0, 12] + ldr x0, [x27, 24] + str wzr, [x0, 16] + mov w0, 2 + ldr x1, [x27, 24] + add x1, x1, 16 + bl ftl_debug_info_fill + cmn w22, #1 + bne .L3058 + b .L3061 +.L3066: + ldrh w0, [x19, 6] + cmp w0, 1 + bls .L3063 + cmn w22, #1 + bne .L3122 + b .L3063 +.L3075: + add x0, x29, 224 + ldr w0, [x0, x24, lsl 2] + cmn w0, #1 + beq .L3071 + ldrb w3, [x20, 1946] + ldr w0, [x25, x24, lsl 2] + ldr x1, [x27, 8] + ldr x2, [x27, 24] + bl ftl_read_ppa_page + cmp w0, 256 + ccmn w0, #1, 4, ne + bne .L3071 + add x0, x29, 224 + ldrb w3, [x20, 1946] + ldr x1, [x27, 8] + ldr x2, [x27, 24] + ldr w0, [x0, x24, lsl 2] + bl ftl_read_ppa_page + mov w26, w0 + ldr w0, [x21, #:lo12:.LANCHOR2] + tbz x0, 14, .L3073 + ldr x0, [x27, 24] + mov w1, w26 + ldr w3, [x25, x24, lsl 2] + ldr w2, [x0, 8] + mov x0, x23 + bl printk +.L3073: + cmn w26, #1 + beq .L3071 + ldr x0, [x27, 24] + ldr w2, [x25, x24, lsl 2] + ldr w1, [x0, 8] + cmp w2, w1 + bne .L3071 + ldr w1, [x21, #:lo12:.LANCHOR2] + tbz x1, 14, .L3074 + ldr w1, [x0, 4] + mov x0, x22 + ldr w3, [x28, x24, lsl 2] + bl printk +.L3074: + ldr x0, [x27, 24] + lsl x1, x24, 2 + ldrh w2, [x28, x1] + ldr w1, [x0, 8] + ldr w0, [x0, 4] + bl lpa_hash_update_ppa +.L3071: + add x24, x24, 1 + b .L3069 +.L3046: + ldr x2, [x27, 24] + add x1, x24, :lo12:.LANCHOR0 + ldr w0, [x1, 3364] + ldr w3, [x2, 4] + cmp w3, w0 + bcs .L3041 + add x4, x20, :lo12:.LANCHOR3 + ldrb w0, [x19, 9] + ldrh w3, [x19, 10] + ldrh w4, [x4, 1376] + mul w0, w0, w4 + sub w0, w0, #1 + cmp w3, w0 + bge .L3041 + ldr x0, [x1, 3384] + ldr w2, [x2] + ldr w1, [x0, 8] + cmp w2, w1 + bls .L3047 + str w2, [x0, 8] +.L3047: + ldr x0, [x27, 24] + ldrh w1, [x19, 12] + ldrh w2, [x19, 10] + add w2, w2, w1 + ldr w1, [x0, 8] + ldr w0, [x0, 4] + bl lpa_hash_update_ppa + ldr w0, [x29, 164] + str w0, [x29, 160] + ldr w0, [x29, 168] + str w0, [x29, 164] + ldr w0, [x29, 172] + str w0, [x29, 168] + ldr w0, [x29, 128] + str w0, [x29, 172] + b .L3041 .size ftl_open_sblk_recovery, .-ftl_open_sblk_recovery .align 2 .global dump_ftl_info @@ -20004,103 +19873,100 @@ ftl_open_sblk_recovery: dump_ftl_info: stp x29, x30, [sp, -32]! adrp x0, .LC224 - add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x19, .LANCHOR0 add x0, x0, :lo12:.LC224 + add x29, sp, 0 + stp x19, x20, [sp, 16] + adrp x19, .LANCHOR0 add x19, x19, :lo12:.LANCHOR0 adrp x20, .LANCHOR3 add x20, x20, :lo12:.LANCHOR3 - ldrb w1, [x19,3362] + ldrb w1, [x19, 3353] bl printk - adrp x3, .LANCHOR5 + adrp x0, .LANCHOR5 + add x0, x0, :lo12:.LANCHOR5 + ldrh w3, [x0, 386] + ldrb w2, [x0, 385] + ldrb w1, [x0, 384] adrp x0, .LC225 - add x3, x3, :lo12:.LANCHOR5 add x0, x0, :lo12:.LC225 - ldrb w1, [x3,640] - ldrb w2, [x3,641] - ldrh w3, [x3,642] bl printk - ldr x2, [x19,3392] + ldr x0, [x19, 3384] + ldrh w2, [x0, 140] + ldrh w1, [x0, 130] adrp x0, .LC226 add x0, x0, :lo12:.LC226 - ldrh w1, [x2,130] - ldrh w2, [x2,140] bl printk - ldr x1, [x19,1120] + ldr x1, [x19, 1128] adrp x0, .LC227 add x0, x0, :lo12:.LC227 - add x5, x1, 16 - ldrh w1, [x1,16] - ldrh w2, [x5,2] - ldrb w3, [x5,5] - ldrh w4, [x5,6] - ldrh w5, [x5,10] + ldrh w5, [x1, 26] + ldrh w4, [x1, 22] + ldrb w3, [x1, 21] + ldrh w2, [x1, 18] + ldrh w1, [x1, 16] bl printk - ldr x1, [x19,1120] + ldr x1, [x19, 1128] adrp x0, .LC228 add x0, x0, :lo12:.LC228 - add x5, x1, 48 - ldrh w1, [x1,48] - ldrh w2, [x5,2] - ldrb w3, [x5,5] - ldrh w4, [x5,6] - ldrh w5, [x5,10] + ldrh w5, [x1, 58] + ldrh w4, [x1, 54] + ldrb w3, [x1, 53] + ldrh w2, [x1, 50] + ldrh w1, [x1, 48] bl printk - ldr x1, [x19,1120] + ldr x1, [x19, 1128] adrp x0, .LC229 add x0, x0, :lo12:.LC229 - add x5, x1, 80 - ldrh w1, [x1,80] - ldrh w4, [x5,6] - ldrh w2, [x5,2] - ldrb w3, [x5,5] - ldrh w5, [x5,10] + ldrh w5, [x1, 90] + ldrh w4, [x1, 86] + ldrb w3, [x1, 85] + ldrh w2, [x1, 82] + ldrh w1, [x1, 80] bl printk - ldrh w0, [x20,1384] + ldrb w0, [x20, 1321] mov w2, 4 - ldrb w3, [x20,1329] - ldr x1, [x20,1936] - mul w3, w0, w3 + ldrh w3, [x20, 1376] + ldr x1, [x20, 1928] + mul w3, w3, w0 adrp x0, .LC230 add x0, x0, :lo12:.LC230 lsl w3, w3, 1 bl rknand_print_hex - ldr x1, [x19,1112] - adrp x0, .LC231 - ldrh w3, [x19,1088] - add x0, x0, :lo12:.LC231 + ldrh w3, [x19, 1096] mov w2, 2 + ldr x1, [x19, 1120] + adrp x0, .LC231 + add x0, x0, :lo12:.LC231 bl rknand_print_hex - ldr x3, [x19,3392] + ldr x1, [x19, 3384] + mov w2, 4 adrp x0, .LC211 add x0, x0, :lo12:.LC211 - mov w2, 4 - add x1, x3, 704 - ldrh w3, [x3,698] + add x1, x1, 704 + ldrh w3, [x1, -6] bl rknand_print_hex - ldr x1, [x19,1096] + ldrh w3, [x19, 1096] + mov w2, 4 + ldr x1, [x19, 1104] adrp x0, .LC232 - ldrh w3, [x19,1088] add x0, x0, :lo12:.LC232 - mov w2, 4 bl rknand_print_hex - adrp x0, .LC233 - add x1, x20, 1424 - add x0, x0, :lo12:.LC233 - mov w2, 2 + add x1, x20, 1416 mov w3, 256 - bl rknand_print_hex - ldrh w0, [x20,1384] mov w2, 2 - ldrb w3, [x20,1329] - ldr x1, [x20,1944] - mul w3, w0, w3 + adrp x0, .LC233 + add x0, x0, :lo12:.LC233 + bl rknand_print_hex + ldrb w0, [x20, 1321] + mov w2, 2 + ldrh w3, [x20, 1376] + ldr x1, [x20, 1936] + mul w3, w3, w0 adrp x0, .LC234 add x0, x0, :lo12:.LC234 lsl w3, w3, 1 bl rknand_print_hex - ldp x19, x20, [sp,16] + ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 32 ret .size dump_ftl_info, .-dump_ftl_info @@ -20109,376 +19975,360 @@ dump_ftl_info: .type pm_ppa_update_check, %function pm_ppa_update_check: adrp x3, .LANCHOR0 - adrp x7, .LANCHOR3 add x3, x3, :lo12:.LANCHOR0 - add x7, x7, :lo12:.LANCHOR3 - stp x29, x30, [sp, -16]! + adrp x6, .LANCHOR3 + add x6, x6, :lo12:.LANCHOR3 mov w5, 24 - add x29, sp, 0 - ldrb w6, [x3,1257] - ldrh w4, [x7,1312] - sub w5, w5, w6 - mov w6, 1 - sub w5, w5, w4 - lsr w4, w2, w4 - lsl w5, w6, w5 - ldr x3, [x3,1096] - sub w5, w5, #1 - and w4, w5, w4 - ldrb w5, [x7,1314] + ldrb w4, [x3, 1205] + ldrh w7, [x6, 1304] + sub w4, w5, w4 + ldr x3, [x3, 1104] + sub w5, w4, w7 + mov w4, 1 + lsr w7, w2, w7 + lsl w4, w4, w5 + ldrb w5, [x6, 1306] + sub w4, w4, #1 + and w4, w4, w7 udiv w4, w4, w5 add x4, x3, w4, uxth 2 - ldrb w3, [x4,2] + ldrb w3, [x4, 2] ubfx x3, x3, 5, 3 - cmp w3, 7 - cset w4, eq - cbnz w4, .L3155 - cmp w3, w6 - bne .L3152 -.L3155: + cmp w3, 1 + ccmp w3, 7, 4, ne + bne .L3151 mov w3, w2 mov w2, w1 mov x1, x0 + stp x29, x30, [sp, -16]! adrp x0, .LC235 add x0, x0, :lo12:.LC235 + add x29, sp, 0 bl printk bl dump_ftl_info - mov w4, -1 -.L3152: - mov w0, w4 + mov w0, -1 ldp x29, x30, [sp], 16 ret +.L3151: + mov w0, 0 + ret .size pm_ppa_update_check, .-pm_ppa_update_check .align 2 .type load_l2p_region, %function load_l2p_region: - stp x29, x30, [sp, -96]! + stp x29, x30, [sp, -80]! add x29, sp, 0 - stp x21, x22, [sp,32] - uxth x22, w1 - str x27, [sp,80] - stp x19, x20, [sp,16] - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] - cmp w22, 31 - uxth w21, w0 - bls .L3158 + stp x19, x20, [sp, 16] + and w20, w0, 65535 + stp x21, x22, [sp, 32] + and x21, x1, 65535 + stp x23, x24, [sp, 48] + cmp w21, 31 + stp x25, x26, [sp, 64] + bls .L3157 adrp x1, .LANCHOR4 - adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 + add x1, x1, 816 mov w2, 32 - add x1, x1, 800 + adrp x0, .LC0 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L3158: - adrp x24, .LANCHOR0 - adrp x20, .LANCHOR5 - add x26, x24, :lo12:.LANCHOR0 - ldr x0, [x26,3392] - ldrh w2, [x0,698] - cmp w21, w2 - bls .L3159 +.L3157: + adrp x23, .LANCHOR0 + add x22, x23, :lo12:.LANCHOR0 + adrp x19, .LANCHOR5 + ldr x0, [x22, 3384] + ldrh w2, [x0, 698] + cmp w2, w20 + bcs .L3158 + mov w1, w20 adrp x0, .LC236 - mov w1, w21 + add x19, x19, :lo12:.LANCHOR5 add x0, x0, :lo12:.LC236 - mov x19, 0 - add x20, x20, :lo12:.LANCHOR5 bl printk - ldr x0, [x19,8] + mov x0, 0 mov w1, 255 - ldrh w2, [x20,998] + ldrh w2, [x19, 462] + ldr x0, [x0, 8] bl ftl_memset - ldr x0, [x26,3392] - ldrh w0, [x0,698] - cmp w0, w21 - bcs .L3171 - adrp x1, .LANCHOR4 - adrp x0, .LC0 - add x1, x1, :lo12:.LANCHOR4 - add x0, x0, :lo12:.LC0 - add x1, x1, 800 - mov w2, 37 - b .L3172 + ldr x0, [x22, 3384] + ldrh w0, [x0, 698] + cmp w0, w20 + bcc .L3159 +.L3169: + mov w0, 0 +.L3156: + 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 .L3159: - add x0, x0, w21, sxtw 2 - adrp x25, .LANCHOR3 - ldr w19, [x0,704] - add x0, x25, :lo12:.LANCHOR3 - add x0, x0, 1968 - lsl x1, x22, 4 - add x27, x0, x1 - strh w21, [x0,x1] - strh wzr, [x27,2] - cbnz w19, .L3162 + mov w2, 37 +.L3170: + adrp x1, .LANCHOR4 + add x1, x1, :lo12:.LANCHOR4 + add x1, x1, 816 + adrp x0, .LC0 + add x0, x0, :lo12:.LC0 + bl printk + bl dump_stack + b .L3169 +.L3158: + add x0, x0, w20, sxtw 2 + adrp x22, .LANCHOR3 + lsl x1, x21, 4 + ldr w24, [x0, 704] + add x0, x22, :lo12:.LANCHOR3 + add x2, x0, 1960 + add x26, x2, x1 + strh w20, [x2, x1] + strh wzr, [x26, 2] + cbnz w24, .L3161 + add x19, x19, :lo12:.LANCHOR5 + mov w1, w20 + mov w2, 0 adrp x0, .LC237 - mov w1, w21 - mov w2, w19 - add x20, x20, :lo12:.LANCHOR5 add x0, x0, :lo12:.LC237 bl printk - ldr x0, [x27,8] + ldrh w2, [x19, 462] mov w1, 255 - ldrh w2, [x20,998] + ldr x0, [x26, 8] bl ftl_memset - b .L3171 -.L3162: - add x23, x20, :lo12:.LANCHOR5 - ldrb w3, [x26,3360] - ldr x1, [x27,8] - mov w0, w19 - ldr x2, [x23,968] + b .L3169 +.L3161: + add x25, x19, :lo12:.LANCHOR5 + ldrb w3, [x0, 1946] + ldr x1, [x26, 8] + mov w0, w24 + ldr x2, [x25, 432] bl ftl_read_ppa_page - mov w3, w0 - ldr x0, [x23,968] - ldr w2, [x0] - cmp w2, w21 - bne .L3163 - cmn w3, #1 - beq .L3163 - cmp w3, 512 - beq .L3163 -.L3168: - add x20, x20, :lo12:.LANCHOR5 - ldr x0, [x20,968] + ldr x1, [x25, 432] + ldr w2, [x1] + cmp w2, w20 + bne .L3162 + cmp w0, 512 + ccmn w0, #1, 4, ne + beq .L3162 +.L3166: + add x19, x19, :lo12:.LANCHOR5 + ldr x0, [x19, 432] ldr w0, [x0] - cmp w0, w21 - beq .L3171 - adrp x1, .LANCHOR4 - adrp x0, .LC0 - add x1, x1, :lo12:.LANCHOR4 - add x0, x0, :lo12:.LC0 - add x1, x1, 800 + cmp w20, w0 + beq .L3169 mov w2, 73 - b .L3172 -.L3163: + b .L3170 +.L3162: + add x23, x23, :lo12:.LANCHOR0 + mov w4, w24 + mov w3, w0 + mov w1, w20 adrp x0, .LC238 - mov w4, w19 - add x24, x24, :lo12:.LANCHOR0 - mov w1, w21 add x0, x0, :lo12:.LC238 - add x23, x25, :lo12:.LANCHOR3 - add x23, x23, 1968 - add x26, x20, :lo12:.LANCHOR5 bl printk - add x23, x23, x22, lsl 4 - ldr x3, [x24,3392] + add x22, x22, :lo12:.LANCHOR3 + ldr x1, [x23, 3384] + mov w2, 4 adrp x0, .LC239 add x0, x0, :lo12:.LC239 - mov w2, 4 - add x1, x3, 704 - ldrh w3, [x3,698] + add x1, x1, 704 + add x23, x19, :lo12:.LANCHOR5 + ldrh w3, [x1, -6] bl rknand_print_hex - ldrb w3, [x24,3360] + add x0, x22, 1960 + ldrb w3, [x22, 1946] + add x21, x0, x21, lsl 4 + mov w2, 4 adrp x0, .LC218 - ldr x1, [x23,8] add x0, x0, :lo12:.LC218 - mov w2, 4 lsl w3, w3, 7 + ldr x1, [x21, 8] bl rknand_print_hex - ldr x1, [x26,968] + ldr x1, [x23, 432] + mov w3, 16 + mov w2, 4 adrp x0, .LC240 add x0, x0, :lo12:.LC240 - mov w2, 4 - mov w3, 16 bl rknand_print_hex - ldr x1, [x23,8] - mov w0, w19 - ldr x2, [x26,968] - ldrb w3, [x24,3360] + ldrb w3, [x22, 1946] + mov w0, w24 + ldr x1, [x21, 8] + ldr x2, [x23, 432] bl ftl_read_ppa_page cmp w0, 512 - beq .L3170 - cmn w0, #1 - bne .L3166 -.L3170: - add x25, x25, :lo12:.LANCHOR3 - add x20, x20, :lo12:.LANCHOR5 - add x22, x25, x22, lsl 4 + ccmn w0, #1, 4, ne + bne .L3165 + ldrh w2, [x23, 462] mov w1, 255 - ldrh w2, [x20,998] - ldr x0, [x22,1976] + ldr x0, [x21, 8] bl ftl_memset +.L3167: mov w0, -1 - b .L3161 -.L3166: - ldr x0, [x26,968] - ldr w1, [x0] - mov w0, -1 - cmp w1, w21 - beq .L3168 - b .L3161 -.L3172: - bl printk - bl dump_stack -.L3171: - mov w0, 0 -.L3161: - 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 + b .L3156 +.L3165: + ldr x0, [x23, 432] + ldr w0, [x0] + cmp w20, w0 + beq .L3166 + b .L3167 .size load_l2p_region, .-load_l2p_region .align 2 .global pm_gc .type pm_gc, %function pm_gc: - stp x29, x30, [sp, -80]! + stp x29, x30, [sp, -64]! add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] adrp x19, .LANCHOR0 - adrp x20, .LANCHOR5 add x0, x19, :lo12:.LANCHOR0 + stp x21, x22, [sp, 32] + stp x23, x24, [sp, 48] + adrp x20, .LANCHOR5 add x1, x20, :lo12:.LANCHOR5 - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] - ldr x0, [x0,3392] - ldrh w2, [x0,688] - ldrh w0, [x1,264] + ldr x0, [x0, 3384] + ldrh w2, [x0, 688] + ldrh w0, [x1, 220] sub w0, w0, #1 cmp w2, w0 - bge .L3174 - ldr w0, [x1,256] - cbz w0, .L3175 -.L3174: + bge .L3172 + ldr w0, [x1, 212] + cbz w0, .L3173 +.L3172: bl pm_free_sblk add x1, x19, :lo12:.LANCHOR0 add x3, x20, :lo12:.LANCHOR5 - ldr x2, [x1,3392] - ldrh w1, [x3,264] - ldrh w4, [x2,688] + ldr x2, [x1, 3384] + ldrh w1, [x3, 220] sub w1, w1, #1 + ldrh w4, [x2, 688] cmp w4, w1 - bge .L3176 - ldr w1, [x3,256] - cbz w1, .L3175 -.L3176: + bge .L3174 + ldr w1, [x3, 212] + cbz w1, .L3173 +.L3174: add x20, x20, :lo12:.LANCHOR5 add x0, x2, w0, uxth 1 - ldrh w21, [x0,416] - str wzr, [x20,256] + str wzr, [x20, 212] mov w20, 65535 - cmp w21, w20 - bne .L3178 + ldrh w22, [x0, 416] + cmp w22, w20 + bne .L3176 adrp x1, .LANCHOR4 - adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 + add x1, x1, 832 mov w2, 182 - add x1, x1, 816 + adrp x0, .LC0 add x0, x0, :lo12:.LC0 bl printk bl dump_stack bl pm_free_sblk add x1, x19, :lo12:.LANCHOR0 - ldr x1, [x1,3392] + ldr x1, [x1, 3384] add x0, x1, w0, uxth 1 - ldrh w21, [x0,416] - cmp w21, w20 - beq .L3175 -.L3178: + ldrh w22, [x0, 416] + cmp w22, w20 + beq .L3173 +.L3176: bl pm_select_ram_region - adrp x26, .LANCHOR3 - uxth x20, w0 - add x0, x26, :lo12:.LANCHOR3 - lsl x1, x20, 4 - add x0, x0, 1968 - add x23, x0, x1 - mov x22, x20 - ldrh w0, [x0,x1] + adrp x24, .LANCHOR3 + and x21, x0, 65535 + add x0, x24, :lo12:.LANCHOR3 + lsl x1, x21, 4 + add x0, x0, 1960 + add x20, x0, x1 + mov x23, x21 + ldrh w0, [x0, x1] mov w1, 65535 cmp w0, w1 - beq .L3179 - ldr x1, [x23,8] - cbz x1, .L3179 - ldrsh w2, [x23,2] - tbz w2, #31, .L3179 + beq .L3177 + ldr x1, [x20, 8] + cbz x1, .L3177 + ldrsh w2, [x20, 2] + tbz w2, #31, .L3177 bl pm_write_page - ldrh w0, [x23,2] + ldrh w0, [x20, 2] and w0, w0, 32767 - strh w0, [x23,2] -.L3179: - add x26, x26, :lo12:.LANCHOR3 - mov w25, 0 - add x0, x26, 1968 - mov w23, 24 - mov w24, 1 - add x20, x0, x20, lsl 4 -.L3180: - add x2, x19, :lo12:.LANCHOR0 - ldr x0, [x2,3392] - ldrh w1, [x0,698] - cmp w1, w25 - bls .L3190 - ldrb w2, [x2,1257] - add x0, x0, w25, sxtw 2 - ldrh w1, [x26,1312] - ldr w0, [x0,704] - sub w2, w23, w2 - lsr w0, w0, w1 - sub w1, w2, w1 - lsl w1, w24, w1 - sub w1, w1, #1 - and w1, w0, w1 - ldrb w0, [x26,1314] - udiv w1, w1, w0 - cmp w21, w1, uxth - bne .L3181 - mov w0, w25 - mov w1, w22 - bl load_l2p_region - cbnz w0, .L3182 - ldr x1, [x20,8] - mov w0, w25 - bl pm_write_page -.L3182: - mov w0, -1 - strh w0, [x20] -.L3181: - add w25, w25, 1 - uxth w25, w25 - b .L3180 -.L3190: + strh w0, [x20, 2] +.L3177: + add x24, x24, :lo12:.LANCHOR3 + add x19, x19, :lo12:.LANCHOR0 + add x0, x24, 1960 + mov w20, 0 + add x21, x0, x21, lsl 4 +.L3178: + ldr x2, [x19, 3384] + ldrh w0, [x2, 698] + cmp w0, w20 + bhi .L3181 bl pm_free_sblk -.L3175: +.L3173: mov w0, 0 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x29, x30, [sp], 80 + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x29, x30, [sp], 64 ret +.L3181: + ldrb w1, [x19, 1205] + mov w0, 24 + ldrh w3, [x24, 1304] + add x2, x2, w20, sxtw 2 + sub w0, w0, w1 + sub w1, w0, w3 + mov w0, 1 + lsl w0, w0, w1 + ldr w1, [x2, 704] + sub w0, w0, #1 + lsr w1, w1, w3 + and w0, w0, w1 + ldrb w1, [x24, 1306] + udiv w0, w0, w1 + cmp w22, w0, uxth + bne .L3179 + mov w1, w23 + mov w0, w20 + bl load_l2p_region + cbnz w0, .L3180 + ldr x1, [x21, 8] + mov w0, w20 + bl pm_write_page +.L3180: + mov w0, -1 + strh w0, [x21] +.L3179: + add w20, w20, 1 + and w20, w20, 65535 + b .L3178 .size pm_gc, .-pm_gc .align 2 .global pm_flush_id .type pm_flush_id, %function pm_flush_id: stp x29, x30, [sp, -32]! - adrp x1, .LANCHOR3 + adrp x2, .LANCHOR3 + add x2, x2, :lo12:.LANCHOR3 ubfiz x0, x0, 4, 16 - add x1, x1, :lo12:.LANCHOR3 + add x2, x2, 1960 add x29, sp, 0 - add x1, x1, 1968 - str x19, [sp,16] - add x19, x1, x0 - ldrh w0, [x1,x0] - ldr x1, [x19,8] + str x19, [sp, 16] + add x19, x2, x0 + ldrh w0, [x2, x0] + ldr x1, [x19, 8] bl pm_write_page - ldrh w0, [x19,2] + ldrh w0, [x19, 2] and w0, w0, 32767 - strh w0, [x19,2] + strh w0, [x19, 2] adrp x19, .LANCHOR5 add x19, x19, :lo12:.LANCHOR5 - ldr w0, [x19,960] - cbz w0, .L3192 + ldr w0, [x19, 424] + cbz w0, .L3190 bl pm_gc - str wzr, [x19,960] -.L3192: + str wzr, [x19, 424] +.L3190: mov w0, 0 - ldr x19, [sp,16] + ldr x19, [sp, 16] ldp x29, x30, [sp], 32 ret .size pm_flush_id, .-pm_flush_id @@ -20488,23 +20338,24 @@ pm_flush_id: pm_flush: stp x29, x30, [sp, -32]! add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x20, .LANCHOR3 - mov x19, 0 - add x20, x20, :lo12:.LANCHOR3 - add x20, x20, 1968 -.L3198: - add x1, x20, x19, lsl 4 - uxth w0, w19 - ldrsh w1, [x1,2] - tbz w1, #31, .L3197 - bl pm_flush_id + stp x19, x20, [sp, 16] + adrp x19, .LANCHOR3 + add x19, x19, :lo12:.LANCHOR3 + mov w20, 0 + add x19, x19, 1962 .L3197: - add x19, x19, 1 - cmp x19, 32 - bne .L3198 + ldrsh w0, [x19] + tbz w0, #31, .L3196 + mov w0, w20 + bl pm_flush_id +.L3196: + add w20, w20, 1 + add x19, x19, 16 + and w20, w20, 65535 + cmp w20, 32 + bne .L3197 mov w0, 0 - ldp x19, x20, [sp,16] + ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 32 ret .size pm_flush, .-pm_flush @@ -20540,374 +20391,363 @@ zftl_deinit: pm_init: stp x29, x30, [sp, -128]! add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] adrp x20, .LANCHOR5 add x19, x20, :lo12:.LANCHOR5 - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] - stp x27, x28, [sp,80] - mov w23, w0 + stp x21, x22, [sp, 32] + stp x23, x24, [sp, 48] + mov w24, w0 + stp x25, x26, [sp, 64] mov w0, 1 - strb w0, [x19,976] + stp x27, x28, [sp, 80] + mov w25, -1 + strb w0, [x19, 440] mov w0, 64 - str wzr, [x19,256] - mov w24, -1 - str wzr, [x19,960] - bl ftl_malloc - str x0, [x19,968] + str wzr, [x19, 212] + str wzr, [x19, 424] + bl ftl_dma32_malloc + str x0, [x19, 432] adrp x19, .LANCHOR3 - add x1, x19, :lo12:.LANCHOR3 - adrp x25, .LANCHOR0 - add x21, x1, 1968 - add x22, x1, 2480 -.L3204: - strh w24, [x21] - strh wzr, [x21,2] - cbz w23, .L3203 - add x0, x25, :lo12:.LANCHOR0 - ldrb w0, [x0,3360] + add x0, x19, :lo12:.LANCHOR3 + add x21, x0, 1960 + add x23, x0, 2472 + mov x22, x0 +.L3206: + strh w25, [x21] + strh wzr, [x21, 2] + cbz w24, .L3205 + ldrb w0, [x22, 1946] lsl w0, w0, 9 - bl ftl_malloc - str x0, [x21,8] -.L3203: + bl ftl_dma32_malloc + str x0, [x21, 8] +.L3205: add x21, x21, 16 - cmp x21, x22 - bne .L3204 + cmp x21, x23 + bne .L3206 add x0, x19, :lo12:.LANCHOR3 adrp x21, .LANCHOR0 add x23, x21, :lo12:.LANCHOR0 mov w4, 4 - ldr x26, [x0,1976] + ldr x26, [x0, 1968] add x0, x20, :lo12:.LANCHOR5 - ldr x1, [x23,3392] mov x2, x26 - ldr x22, [x0,968] - ldrb w0, [x1,694] - ldrh w1, [x1,692] + ldr x22, [x0, 432] + ldr x0, [x23, 3384] mov x3, x22 + ldrh w1, [x0, 692] + ldrb w0, [x0, 694] bl flash_get_last_written_page sxth w24, w0 - ldr x1, [x23,3392] + ldr x0, [x23, 3384] mov w25, w24 - ldrh w2, [x1,696] + ldrh w2, [x0, 696] cmp w2, w24 - bgt .L3205 - adrp x0, .LC241 - ldrh w1, [x1,692] - add x0, x0, :lo12:.LC241 + bgt .L3207 + ldrh w1, [x0, 692] mov w3, w24 - adrp x27, .LC242 + adrp x0, .LC241 + add x0, x0, :lo12:.LC241 adrp x28, .LC243 - bl printk add x28, x28, :lo12:.LC243 - ldr x0, [x23,3392] - ldrsh w23, [x0,696] + adrp x27, .LC242 + bl printk + ldr x0, [x23, 3384] + ldrsh w23, [x0, 696] add w0, w24, 1 - str w0, [x29,124] + str w0, [x29, 124] add x0, x27, :lo12:.LC242 - str x0, [x29,112] -.L3206: - ldr w0, [x29,124] - cmp w23, w0 - bge .L3227 - add x27, x21, :lo12:.LANCHOR0 - add x1, x19, :lo12:.LANCHOR3 - mov x2, x26 - mov x3, x22 - ldr x0, [x27,3392] - ldrh w1, [x1,1418] - ldrb w4, [x27,3360] - ldrh w24, [x0,692] - ldrb w0, [x0,694] - madd w24, w24, w1, w23 - mov w1, w24 - bl flash_read_page_en - mov w4, w0 - ldr x3, [x27,3392] - mov w2, w24 - ldr x0, [x29,112] - str x4, [x29,104] - ldr w1, [x3,48] - add w1, w1, 1 - str w1, [x3,48] - ldrh w3, [x3,694] - ldr w1, [x22] - bl printk - ldr x4, [x29,104] - cmp w4, 512 - beq .L3207 - cmn w4, #1 - beq .L3207 - ldr x0, [x27,3392] - ldr w1, [x22] - ldrh w0, [x0,698] - cmp w1, w0 - bcs .L3207 - ldr w2, [x22,8] - cbz w2, .L3208 - ldrb w1, [x27,3360] - mov x0, x26 - str x2, [x29,104] - lsl w1, w1, 9 - bl js_hash - ldr x2, [x29,104] - cmp w2, w0 - beq .L3208 - ldr w1, [x22,8] - mov x0, x28 - bl printk - b .L3207 + str x0, [x29, 112] .L3208: - add x0, x21, :lo12:.LANCHOR0 - ldr x1, [x0,3392] - ldr w0, [x22] - add x0, x0, 176 - str w24, [x1,x0,lsl 2] -.L3207: - add w23, w23, 1 - sxth w23, w23 - b .L3206 -.L3227: + ldr w0, [x29, 124] + cmp w23, w0 + blt .L3211 add x0, x20, :lo12:.LANCHOR5 add x21, x21, :lo12:.LANCHOR0 mov w1, 1 add w25, w25, 1 - strb w1, [x0,657] - ldr x0, [x21,3392] - strh w25, [x0,696] + strb w1, [x0, 401] + ldr x0, [x21, 3384] + strh w25, [x0, 696] bl pm_free_sblk -.L3205: +.L3207: add x19, x19, :lo12:.LANCHOR3 add x20, x20, :lo12:.LANCHOR5 mov w1, 255 - add x19, x19, 1968 - ldr x0, [x19,8] - ldrh w2, [x20,998] + add x19, x19, 1960 + ldrh w2, [x20, 462] + ldr x0, [x19, 8] bl ftl_memset - ldr x1, [x19,8] + ldr x1, [x19, 8] mov w0, -1 bl pm_write_page - ldrb w0, [x20,657] - cbz w0, .L3210 - ldr x1, [x19,8] + ldrb w0, [x20, 401] + cbz w0, .L3212 + ldr x1, [x19, 8] mov w0, -1 bl pm_write_page - ldr x1, [x19,8] + ldr x1, [x19, 8] mov w0, -1 bl pm_write_page - ldr x1, [x19,8] + ldr x1, [x19, 8] mov w0, -1 bl pm_write_page -.L3210: +.L3212: bl pm_free_sblk bl pm_gc 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 x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] + ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 128 ret +.L3211: + add x27, x21, :lo12:.LANCHOR0 + add x5, x19, :lo12:.LANCHOR3 + mov x3, x22 + mov x2, x26 + str x5, [x29, 104] + ldr x0, [x27, 3384] + ldrh w1, [x5, 1410] + ldrb w4, [x5, 1946] + ldrh w24, [x0, 692] + ldrb w0, [x0, 694] + madd w24, w24, w1, w23 + mov w1, w24 + bl flash_read_page_en + mov w4, w0 + ldr x0, [x27, 3384] + str w4, [x29, 120] + mov w2, w24 + ldr w1, [x0, 48] + ldrh w3, [x0, 694] + add w1, w1, 1 + str w1, [x0, 48] + ldr x0, [x29, 112] + ldr w1, [x22] + bl printk + ldr w4, [x29, 120] + cmp w4, 512 + ccmn w4, #1, 4, ne + beq .L3209 + ldr x0, [x27, 3384] + ldr w1, [x22] + ldrh w0, [x0, 698] + cmp w1, w0 + bcs .L3209 + ldr w2, [x22, 8] + ldr x5, [x29, 104] + cbz w2, .L3210 + ldrb w1, [x5, 1946] + mov x0, x26 + str w2, [x29, 120] + lsl w1, w1, 9 + bl js_hash + ldr w2, [x29, 120] + cmp w2, w0 + beq .L3210 + ldr w1, [x22, 8] + mov x0, x28 + bl printk +.L3209: + add w23, w23, 1 + sxth w23, w23 + b .L3208 +.L3210: + add x0, x21, :lo12:.LANCHOR0 + ldr x1, [x0, 3384] + ldr w0, [x22] + add x0, x0, 176 + str w24, [x1, x0, lsl 2] + b .L3209 .size pm_init, .-pm_init .align 2 .global pm_log2phys .type pm_log2phys, %function pm_log2phys: stp x29, x30, [sp, -96]! - mov w3, w0 add x29, sp, 0 - stp x23, x24, [sp,48] - adrp x23, .LANCHOR0 - add x0, x23, :lo12:.LANCHOR0 - stp x25, x26, [sp,64] - stp x21, x22, [sp,32] - stp x19, x20, [sp,16] - mov w25, w2 - mov x22, x1 - ldrb w20, [x0,3360] - ldr w2, [x0,3372] - lsl w24, w20, 7 - lsl w20, w20, 7 - cmp w3, w2 - udiv w24, w3, w24 - uxth w26, w24 - msub w20, w26, w20, w3 - uxth x20, w20 - bcc .L3229 + stp x21, x22, [sp, 32] + adrp x21, .LANCHOR3 + stp x23, x24, [sp, 48] + mov x23, x1 + add x1, x21, :lo12:.LANCHOR3 + stp x25, x26, [sp, 64] + stp x19, x20, [sp, 16] + mov w24, w2 + str x27, [sp, 80] + adrp x22, .LANCHOR0 + add x2, x22, :lo12:.LANCHOR0 + ldrb w20, [x1, 1946] + ldr w2, [x2, 3364] + lsl w25, w20, 7 + ubfiz w20, w20, 7, 9 + cmp w0, w2 + udiv w25, w0, w25 + and w26, w25, 65535 + msub w20, w26, w20, w0 + bcc .L3228 + mov w1, w0 adrp x0, .LC244 - mov w1, w3 add x0, x0, :lo12:.LC244 bl printk mov w0, -1 - cbnz w25, .L3230 - str w0, [x22] - b .L3230 -.L3229: - adrp x21, .LANCHOR3 - mov x19, 0 - add x1, x21, :lo12:.LANCHOR3 - add x1, x1, 1968 -.L3235: - ldr x0, [x1,8] - cbz x0, .L3231 - ldrh w0, [x1] - cmp w0, w26 - bne .L3231 -.L3232: - cbnz w25, .L3233 - add x3, x21, :lo12:.LANCHOR3 - add x23, x23, :lo12:.LANCHOR0 - add x0, x3, x19, lsl 4 - mov w2, 1 - ldr x0, [x0,1976] - ldr w1, [x0,x20,lsl 2] - mov w0, 24 - str w1, [x22] - ldrb w4, [x23,1257] - sub w0, w0, w4 - lsl w2, w2, w4 - lsr w1, w1, w0 - sub w2, w2, #1 - and w0, w1, w2 - ldrb w1, [x3,1420] - cmp w0, w1 - bcc .L3234 - mov w0, -1 - str w0, [x22] - b .L3234 -.L3233: - add x2, x21, :lo12:.LANCHOR3 - ldr w3, [x22] - add x0, x2, 1968 - add x0, x0, x19, lsl 4 - ldr x1, [x0,8] - str w3, [x1,x20,lsl 2] - strb w24, [x2,2480] - ldrh w1, [x0,2] - orr w1, w1, -32768 - strh w1, [x0,2] -.L3234: - add x21, x21, :lo12:.LANCHOR3 - mov w2, 32767 - add x21, x21, 1968 - mov w0, 0 - add x19, x21, x19, lsl 4 - ldrh w1, [x19,2] - and w3, w1, 32767 - cmp w3, w2 - beq .L3230 - add w1, w1, 1 - strh w1, [x19,2] - b .L3230 -.L3231: - add w19, w19, 1 - add x1, x1, 16 - uxth x19, w19 - cmp w19, 32 - bne .L3235 - bl pm_select_ram_region - uxth x19, w0 - add x2, x21, :lo12:.LANCHOR3 - sbfiz x3, x19, 4, 32 - add x2, x2, 1968 - mov w1, w0 - add x4, x2, x3 - ldrh w3, [x2,x3] - mov w2, 65535 - cmp w3, w2 - beq .L3236 - ldrsh w2, [x4,2] - tbz w2, #31, .L3236 - str x1, [x29,88] - bl pm_flush_id - ldr x1, [x29,88] -.L3236: - adrp x0, .LANCHOR5+1000 - strb w19, [x0,#:lo12:.LANCHOR5+1000] - mov w0, w26 - bl load_l2p_region - b .L3232 -.L3230: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] + cbnz w24, .L3227 + str w0, [x23] +.L3227: + 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 +.L3228: + and x20, x20, 65535 + add x0, x1, 1968 + mov x19, 0 +.L3234: + ldr x1, [x0] + cbz x1, .L3230 + ldrh w1, [x0, -8] + cmp w1, w26 + bne .L3230 +.L3231: + cbnz w24, .L3232 + add x3, x21, :lo12:.LANCHOR3 + add x22, x22, :lo12:.LANCHOR0 + add x0, x3, x19, lsl 4 + mov w2, 24 + mov w1, 1 + ldr x0, [x0, 1968] + ldr w0, [x0, x20, lsl 2] + str w0, [x23] + ldrb w4, [x22, 1205] + sub w2, w2, w4 + lsl w1, w1, w4 + sub w1, w1, #1 + lsr w0, w0, w2 + and w0, w0, w1 + ldrb w1, [x3, 1412] + cmp w0, w1 + bcc .L3233 + mov w0, -1 + str w0, [x23] +.L3233: + add x21, x21, :lo12:.LANCHOR3 + add x21, x21, 1960 + add x19, x21, x19, lsl 4 + ldrh w0, [x19, 2] + mvn x1, x0 + tst x1, 32767 + beq .L3237 + add w0, w0, 1 + strh w0, [x19, 2] +.L3237: + mov w0, 0 + b .L3227 +.L3232: + add x2, x21, :lo12:.LANCHOR3 + ldr w3, [x23] + add x0, x2, 1960 + add x0, x0, x19, lsl 4 + ldr x1, [x0, 8] + str w3, [x1, x20, lsl 2] + strb w25, [x2, 2472] + ldrh w1, [x0, 2] + orr w1, w1, -32768 + strh w1, [x0, 2] + b .L3233 +.L3230: + add w19, w19, 1 + add x0, x0, 16 + and x19, x19, 65535 + cmp w19, 32 + bne .L3234 + bl pm_select_ram_region + and x19, x0, 65535 + add x2, x21, :lo12:.LANCHOR3 + sbfiz x1, x19, 4, 32 + add x2, x2, 1960 + mov w27, w0 + add x3, x2, x1 + ldrh w2, [x2, x1] + mov w1, 65535 + cmp w2, w1 + beq .L3235 + ldrsh w1, [x3, 2] + tbz w1, #31, .L3235 + bl pm_flush_id +.L3235: + adrp x0, .LANCHOR5+464 + mov w1, w27 + strb w19, [x0, #:lo12:.LANCHOR5+464] + mov w0, w26 + bl load_l2p_region + b .L3231 .size pm_log2phys, .-pm_log2phys .align 2 .global gc_recovery .type gc_recovery, %function gc_recovery: sub sp, sp, #224 - stp x29, x30, [sp,32] + stp x29, x30, [sp, 32] add x29, sp, 32 - stp x19, x20, [sp,48] - adrp x19, .LANCHOR0 - stp x21, x22, [sp,64] - add x21, x19, :lo12:.LANCHOR0 + stp x21, x22, [sp, 64] adrp x22, .LANCHOR3 - stp x23, x24, [sp,80] - stp x25, x26, [sp,96] - stp x27, x28, [sp,112] + stp x19, x20, [sp, 48] + adrp x19, .LANCHOR0 + add x21, x19, :lo12:.LANCHOR0 + stp x23, x24, [sp, 80] + stp x25, x26, [sp, 96] adrp x23, .LANCHOR5 - add x25, x22, :lo12:.LANCHOR3 - ldr x20, [x21,1120] + stp x27, x28, [sp, 112] add x0, x23, :lo12:.LANCHOR5 - strb wzr, [x25,1345] - add x24, x20, 80 - ldrh w1, [x20,80] - strb wzr, [x0,218] + add x25, x22, :lo12:.LANCHOR3 + ldr x20, [x21, 1128] + strb wzr, [x0, 264] mov w0, 65535 + strb wzr, [x25, 1337] + ldrh w1, [x20, 80] cmp w1, w0 beq .L3244 + add x24, x20, 80 mov w0, -1 - strh w0, [x20,130] + strh w0, [x20, 130] mov w0, 1 bl buf_alloc mov x28, x0 - ldrb w0, [x24,9] - ldrh w1, [x25,1418] + ldrb w0, [x24, 9] + ldrh w1, [x25, 1410] sub w0, w0, #1 + ldrb w2, [x25, 1320] add x0, x24, w0, sxtw 1 - ldrh w0, [x0,16] - mul w0, w0, w1 - ldrb w1, [x25,1328] - str w0, [x29,184] - cmp w1, 2 + cmp w2, 2 + ldrh w0, [x0, 16] + mul w1, w0, w1 + str w1, [x29, 184] beq .L3245 - ldrb w2, [x21,1268] - cbnz w2, .L3245 - ldrb w2, [x21,1269] - cbz w2, .L3246 + ldrb w0, [x21, 1212] + cbnz w0, .L3245 + ldrb w0, [x21, 1213] + cbz w0, .L3246 .L3245: - add x2, x22, :lo12:.LANCHOR3 - ldrh w2, [x2,1346] - sub w2, w2, #1 - add w0, w2, w0 - orr w0, w0, w1, lsl 24 - b .L3332 -.L3246: - cmp w1, 3 - bne .L3247 - ldrh w1, [x25,1384] - sub w1, w1, #1 - add w0, w1, w0 - orr w0, w0, 50331648 -.L3332: - str w0, [x28,40] + add x0, x22, :lo12:.LANCHOR3 + ldrh w0, [x0, 1338] + sub w0, w0, #1 + add w0, w0, w1 + orr w2, w0, w2, lsl 24 + str w2, [x28, 40] .L3247: - mov x0, x28 mov w1, 1 + mov x0, x28 bl sblk_read_page - ldr w0, [x28,52] + ldr w0, [x28, 52] cmp w0, 512 + ccmn w0, #1, 4, ne beq .L3248 - cmn w0, #1 - beq .L3248 - ldr x0, [x28,24] + ldr x0, [x28, 24] ldr w1, [x0] mov w0, 15555 movk w0, 0xf55f, lsl 16 @@ -20916,72 +20756,137 @@ gc_recovery: .L3248: mov x0, x28 bl zbuf_free - ldr x7, [x28,24] - ldr x6, [x28,8] - ldr w0, [x7,4] - str w0, [sp] - ldr w0, [x7,8] - str w0, [sp,8] - ldr w0, [x7,12] - str w0, [sp,16] + ldr x1, [x28, 24] + ldr x0, [x28, 8] + ldr w2, [x1, 12] + str w2, [sp, 16] + ldr w2, [x1, 8] + str w2, [sp, 8] + ldr w2, [x1, 4] + str w2, [sp] + ldp w3, w4, [x0] + ldp w5, w6, [x0, 8] adrp x0, .LC245 + ldr w7, [x1] add x0, x0, :lo12:.LC245 - ldr w3, [x6] - ldr w4, [x6,4] - ldr w5, [x6,8] - ldr w1, [x28,40] - ldr w2, [x28,52] - ldr w6, [x6,12] - ldr w7, [x7] + ldr w1, [x28, 40] + ldr w2, [x28, 52] bl printk - b .L3337 +.L3338: + add x0, x19, :lo12:.LANCHOR0 + ldrh w2, [x20, 80] + mov w21, 0 + ldr x1, [x0, 1120] + strh wzr, [x1, x2, lsl 1] + ldr x0, [x0, 1128] + ldrh w1, [x20, 80] + strh w1, [x0, 130] +.L3250: + add x1, x19, :lo12:.LANCHOR0 + ldrh w0, [x20, 80] + ldr x1, [x1, 1120] + ubfiz x2, x0, 1, 16 + ldrh w1, [x1, x2] + cbnz w1, .L3294 + bl ftl_dump_write_open_sblk +.L3294: + ldrh w1, [x20, 80] + mov w2, w21 + adrp x0, .LC247 + add x0, x0, :lo12:.LC247 + bl printk + mov w0, -1 + strh w0, [x20, 80] + bl pm_flush + bl ftl_ext_info_flush + add x1, x19, :lo12:.LANCHOR0 + mov w2, 65535 + ldr x0, [x1, 1128] + ldrh w0, [x0, 130] + cmp w0, w2 + beq .L3295 + ldrh w1, [x1, 1096] + cmp w1, w0 + bhi .L3296 + adrp x1, .LANCHOR4 + add x1, x1, :lo12:.LANCHOR4 + add x1, x1, 840 + mov w2, 517 + adrp x0, .LC0 + add x0, x0, :lo12:.LC0 + bl printk + bl dump_stack +.L3296: + add x0, x19, :lo12:.LANCHOR0 + ldr x0, [x0, 1128] + ldrh w0, [x0, 130] + bl ftl_free_sblk +.L3295: + add x19, x19, :lo12:.LANCHOR0 + mov w0, -1 + ldr x1, [x19, 3384] + strh w0, [x1, 126] + ldr x1, [x19, 1128] + strh w0, [x1, 130] + mov w0, 0 + bl ftl_info_flush +.L3243: + ldp x19, x20, [sp, 48] + ldp x21, x22, [sp, 64] + ldp x23, x24, [sp, 80] + ldp x25, x26, [sp, 96] + ldp x27, x28, [sp, 112] + ldp x29, x30, [sp, 32] + add sp, sp, 224 + ret +.L3246: + cmp w2, 3 + bne .L3247 + ldrh w0, [x25, 1376] + sub w0, w0, #1 + add w0, w0, w1 + orr w0, w0, 50331648 + str w0, [x28, 40] + b .L3247 .L3249: add x1, x23, :lo12:.LANCHOR5 - ldrb w0, [x1,1001] + ldrb w0, [x1, 465] cmp w0, 2 bne .L3251 add x21, x22, :lo12:.LANCHOR3 - ldrb w0, [x21,1328] + ldrb w0, [x21, 1320] cmp w0, 3 bne .L3251 - ldrh w3, [x1,998] - ldr x4, [x1,232] - ldrh w1, [x21,1346] - and x0, x3, 65532 - ldrb w2, [x21,1329] - add x0, x4, x0 - lsl w1, w1, 2 - mul w2, w1, w2 - ldr x1, [x28,8] - sub w2, w2, w3 - uxth w2, w2 + ldrh w2, [x21, 1338] + ldrb w3, [x21, 1321] + ldrh w0, [x1, 462] + ubfiz w2, w2, 2, 14 + mul w2, w2, w3 + ldr x3, [x1, 280] + ldr x1, [x28, 8] + sub w2, w2, w0 + and x0, x0, 65532 + and w2, w2, 65535 + add x0, x3, x0 bl ftl_memcpy add x0, x19, :lo12:.LANCHOR0 - ldrb w1, [x0,1268] + ldrb w1, [x0, 1212] cbnz w1, .L3252 - ldrb w0, [x0,1269] + ldrb w0, [x0, 1213] cbz w0, .L3253 .L3252: - ldr w0, [x28,40] + ldr w0, [x28, 40] sub w0, w0, #1 - b .L3333 -.L3253: - ldr w0, [x29,184] - ldrh w1, [x21,1384] - sub w0, w0, #1 - add w0, w0, w1 - orr w0, w0, 33554432 -.L3333: - str w0, [x28,40] +.L3332: + str w0, [x28, 40] mov w1, 1 mov x0, x28 bl sblk_read_page - ldr w0, [x28,52] + ldr w0, [x28, 52] cmp w0, 512 + ccmn w0, #1, 4, ne beq .L3255 - cmn w0, #1 - beq .L3255 - ldr x0, [x28,24] + ldr x0, [x28, 24] ldr w1, [x0] mov w0, 15555 movk w0, 0xf55f, lsl 16 @@ -20990,485 +20895,425 @@ gc_recovery: .L3255: mov x0, x28 bl zbuf_free -.L3337: - add x0, x19, :lo12:.LANCHOR0 - ldrh w2, [x20,80] - mov w21, 0 - ldr x1, [x0,1112] - strh wzr, [x1,x2,lsl 1] - ldr x0, [x0,1120] - ldrh w1, [x20,80] - strh w1, [x0,130] - b .L3250 + b .L3338 +.L3253: + ldr w0, [x29, 184] + ldrh w1, [x21, 1376] + sub w0, w0, #1 + add w0, w0, w1 + orr w0, w0, 33554432 + b .L3332 .L3256: - add x2, x23, :lo12:.LANCHOR5 - ldr x1, [x28,8] - ldr x0, [x2,232] - ldrh w2, [x2,998] - b .L3334 -.L3251: - add x2, x22, :lo12:.LANCHOR3 - add x1, x23, :lo12:.LANCHOR5 - ldrh w0, [x2,1346] - ldrb w2, [x2,1329] - mul w2, w0, w2 - ldr x0, [x1,232] - ldr x1, [x28,8] - lsl w2, w2, 2 -.L3334: + add x0, x23, :lo12:.LANCHOR5 + ldrh w2, [x0, 462] +.L3333: + ldr x1, [x28, 8] add x21, x22, :lo12:.LANCHOR3 + ldr x0, [x0, 280] bl ftl_memcpy - ldrh w0, [x21,1346] - ldrb w1, [x21,1329] - mul w1, w0, w1 - add x0, x19, :lo12:.LANCHOR0 - lsl w2, w1, 2 - ldrb w0, [x0,3360] - cmp w0, w1, lsr 6 + ldrb w1, [x21, 1321] + ldrh w0, [x21, 1338] + mul w0, w0, w1 + ldrb w1, [x21, 1946] + lsl w2, w0, 2 + cmp w1, w0, lsr 6 bge .L3258 add x25, x23, :lo12:.LANCHOR5 mov w1, 0 - ldr x0, [x25,240] + ldr x0, [x25, 288] bl ftl_memset - ldrb w26, [x25,1001] + ldrb w26, [x25, 465] cmp w26, 1 - bne .L3298 - ldrh w0, [x21,1346] - ldrb w1, [x21,1329] - ldrh w21, [x25,998] - ldr x2, [x28,8] - mul w1, w0, w1 - ldr x0, [x25,240] - sub w21, w21, w1, lsl 2 - add x1, x2, w1, sxtw 2 + bne .L3299 + ldrb w1, [x21, 1321] + ldrh w0, [x21, 1338] + ldrh w21, [x25, 462] + mul w0, w0, w1 + ldr x1, [x28, 8] + sub w21, w21, w0, lsl 2 + add x1, x1, w0, sxtw 2 + ldr x0, [x25, 288] mov w2, w21 bl ftl_memcpy mov w10, w26 - b .L3259 -.L3258: - add x0, x23, :lo12:.LANCHOR5 - ldr x3, [x28,8] - add x1, x3, w1, sxtw 2 - ldr x0, [x0,240] - bl ftl_memcpy - mov w10, 0 - mov w21, w10 - b .L3259 -.L3298: - mov w10, 1 - mov w21, 0 .L3259: add x0, x22, :lo12:.LANCHOR3 - ldrb w25, [x0,1328] - ldrh w27, [x0,1384] + ldrh w1, [x0, 1376] + ldrb w25, [x0, 1320] + str w1, [x29, 168] cmp w25, 2 bne .L3260 - ldrb w0, [x0,1330] + ldrb w0, [x0, 1322] cbz w0, .L3261 .L3260: add x0, x19, :lo12:.LANCHOR0 - ldrb w0, [x0,1268] + ldrb w0, [x0, 1212] cbz w0, .L3262 .L3261: - mul w27, w27, w25 + ldr w0, [x29, 168] + mul w0, w0, w25 mov w25, 1 + str w0, [x29, 168] .L3262: - adrp x0, .LC246 - mov w26, 0 - add x0, x0, :lo12:.LC246 - str w26, [x29,172] - str x0, [x29,144] + add x14, x22, :lo12:.LANCHOR3 + adrp x26, .LC246 + mov w9, 0 + add x0, x26, :lo12:.LC246 + mov w13, 0 + str x0, [x29, 152] .L3263: - cmp w26, w27 - bcs .L3275 - add w0, w26, w26, lsl 1 - mov w11, 0 + sub w0, w9, #1 + str w0, [x29, 164] + ldr w0, [x29, 168] + cmp w0, w9 + bls .L3276 + add w0, w9, w9, lsl 1 + mov w26, 0 sub w0, w0, #1 - str w0, [x29,168] - sub w0, w26, #1 - str w0, [x29,152] -.L3276: - ldrb w0, [x24,9] - cmp w11, w0 - bge .L3338 - sxtw x0, w11 - mov x12, 0 - str x0, [x29,160] -.L3273: - add w2, w12, 1 - ldr w0, [x29,172] - cmp w2, w25 - add w13, w0, w12 - bhi .L3339 - ldr x0, [x29,160] - add x3, x22, :lo12:.LANCHOR3 - add x0, x0, 8 - ldrh w1, [x24,x0,lsl 1] - ldrh w0, [x3,1418] - mul w0, w1, w0 - ldrb w1, [x3,1328] - str w0, [x29,184] - cmp w1, 2 + str w0, [x29, 172] + b .L3277 +.L3251: + add x0, x22, :lo12:.LANCHOR3 + ldrh w2, [x0, 1338] + ldrb w0, [x0, 1321] + mul w2, w2, w0 + add x0, x23, :lo12:.LANCHOR5 + lsl w2, w2, 2 + b .L3333 +.L3258: + add x3, x23, :lo12:.LANCHOR5 + ldr x1, [x28, 8] + add x1, x1, w0, sxtw 2 + ldr x0, [x3, 288] + bl ftl_memcpy + mov w10, 0 +.L3334: + mov w21, 0 + b .L3259 +.L3299: + mov w10, 1 + b .L3334 +.L3272: + ldrh w1, [x14, 1410] + ldrh w0, [x24, x27, lsl 1] + ldrb w2, [x14, 1320] + cmp w2, 2 + mul w0, w0, w1 + str w0, [x29, 184] + add w1, w11, w0 beq .L3264 add x3, x19, :lo12:.LANCHOR0 - ldrb w4, [x3,1268] + ldrb w4, [x3, 1212] cbz w4, .L3265 .L3264: - ldr w3, [x29,152] - add w0, w3, w0 - add w0, w0, w2 - orr w0, w0, w1, lsl 24 - b .L3335 -.L3265: - cmp w1, 3 - bne .L3267 - ldrb w1, [x3,1269] - cbz w1, .L3268 - ldr w1, [x29,168] - add w0, w0, w1 - add w0, w0, w2 - orr w0, w0, 50331648 - b .L3335 -.L3268: - add w0, w0, w26 - orr w0, w0, w2, lsl 24 - b .L3335 -.L3267: - add w0, w0, w26 + ldr w0, [x29, 164] + add w1, w1, w0 + orr w1, w1, w2, lsl 24 .L3335: - str w0, [x28,40] + str w1, [x28, 40] +.L3266: + str x14, [x29, 120] mov w1, 1 + str w10, [x29, 128] mov x0, x28 - str x13, [x29,112] - str x12, [x29,120] - str x10, [x29,128] - str x11, [x29,136] + str w9, [x29, 136] + str w13, [x29, 144] + str w11, [x29, 160] bl sblk_read_page - ldr x13, [x29,112] - ldr x10, [x29,128] - ldr x11, [x29,136] - sxtw x13, w13 - ldr x12, [x29,120] + ldr w10, [x29, 128] + ldr w13, [x29, 144] + ldr w9, [x29, 136] + ldr w11, [x29, 160] + sxtw x15, w13 + ldr x14, [x29, 120] cbz w10, .L3269 add x0, x23, :lo12:.LANCHOR5 - lsl x1, x13, 2 - ldr x0, [x0,240] - ldr w2, [x0,x1] + lsl x1, x15, 2 + ldr x0, [x0, 288] + ldr w2, [x0, x1] cbnz w2, .L3269 - ldr x2, [x28,24] - ldr w2, [x2,8] - str w2, [x0,x1] + ldr x2, [x28, 24] + ldr w2, [x2, 8] + str w2, [x0, x1] .L3269: - add x0, x23, :lo12:.LANCHOR5 - lsl x13, x13, 2 - ldr x7, [x28,24] - ldr x1, [x0,232] - ldr w6, [x7,4] - ldr w3, [x1,x13] + add x1, x23, :lo12:.LANCHOR5 + lsl x15, x15, 2 + ldr x0, [x1, 280] + ldr w3, [x0, x15] + ldr x0, [x28, 24] + ldr w6, [x0, 4] cmp w3, w6 bne .L3270 - ldr x0, [x0,240] - ldr w1, [x0,x13] - ldr w0, [x7,8] - cmp w1, w0 - beq .L3300 + ldr x1, [x1, 288] + ldr w2, [x1, x15] + ldr w1, [x0, 8] + cmp w2, w1 + beq .L3271 .L3270: - add x14, x23, :lo12:.LANCHOR5 - ldr w0, [x7,12] - str x12, [x29,104] - str x10, [x29,112] - ldr x4, [x14,240] - str w0, [sp] - ldr x0, [x29,144] - ldr w4, [x4,x13] - ldr w5, [x7] - ldr w1, [x28,40] - ldr w2, [x28,52] - ldr w7, [x7,8] - str x11, [x29,120] - str x14, [x29,128] - str x13, [x29,136] + add x18, x23, :lo12:.LANCHOR5 + ldr w2, [x0, 12] + str x14, [x29, 104] + stp w10, w11, [x29, 116] + ldr x1, [x18, 288] + str w2, [sp] + str w9, [x29, 128] + ldr w5, [x0] + ldr w4, [x1, x15] + ldr w7, [x0, 8] + ldr w1, [x28, 40] + ldr w2, [x28, 52] + ldr x0, [x29, 152] + stp x18, x15, [x29, 136] + str w13, [x29, 160] bl printk - ldr x14, [x29,128] - ldr x13, [x29,136] - ldr x11, [x29,120] - ldr x0, [x14,232] - ldr x10, [x29,112] - ldr x12, [x29,104] - ldr w0, [x0,x13] + ldp x18, x15, [x29, 136] + ldp w10, w11, [x29, 116] + ldr x0, [x18, 280] + ldr w9, [x29, 128] + ldr w13, [x29, 160] + ldr x14, [x29, 104] + ldr w0, [x0, x15] cmn w0, #1 - beq .L3300 + beq .L3271 mov x0, x28 bl zbuf_free add x0, x19, :lo12:.LANCHOR0 - ldrh w2, [x20,80] - ldr x1, [x0,1112] - strh wzr, [x1,x2,lsl 1] - ldr x0, [x0,1120] - ldrh w1, [x20,80] - strh w1, [x0,130] + ldrh w2, [x20, 80] + ldr x1, [x0, 1120] + strh wzr, [x1, x2, lsl 1] + ldr x0, [x0, 1128] + ldrh w1, [x20, 80] + strh w1, [x0, 130] b .L3250 -.L3300: - add x12, x12, 1 - b .L3273 -.L3339: - str w13, [x29,172] +.L3265: + cmp w2, 3 + bne .L3267 + ldrb w2, [x3, 1213] + cbz w2, .L3268 + ldr w0, [x29, 172] + add w1, w1, w0 + orr w1, w1, 50331648 + b .L3335 +.L3268: + add w0, w9, w0 + orr w0, w0, w11, lsl 24 +.L3336: + str w0, [x28, 40] + b .L3266 +.L3267: + add w0, w9, w0 + b .L3336 +.L3271: + add w13, w13, 1 add w11, w11, 1 - b .L3276 -.L3338: - add x0, x22, :lo12:.LANCHOR3 - ldrb w0, [x0,1330] - cmp w0, wzr - csinc w26, w26, w26, eq +.L3274: + cmp w25, w11 + bcs .L3272 add w26, w26, 1 +.L3277: + ldrb w0, [x24, 9] + cmp w26, w0 + bge .L3273 + sxtw x27, w26 + mov w11, 1 + add x27, x27, 8 + b .L3274 +.L3273: + ldrb w0, [x14, 1322] + cmp w0, 0 + cinc w9, w9, ne + add w9, w9, 1 b .L3263 -.L3275: +.L3276: mov x0, x28 - mov w21, 0 - mov w28, w21 bl zbuf_free - str w21, [x29,168] add x0, x19, :lo12:.LANCHOR0 add x3, x22, :lo12:.LANCHOR3 - ldrh w2, [x20,80] - ldr x1, [x0,1112] - ldrh w3, [x3,1346] - ldrb w0, [x24,9] + ldrh w2, [x20, 80] + mov w21, 0 + mov w27, 0 + str wzr, [x29, 164] + ldrh w3, [x3, 1338] + ldr x1, [x0, 1120] + ldrb w0, [x24, 9] mul w0, w0, w3 - strh w0, [x1,x2,lsl 1] -.L3277: - cmp w28, w27 - bcs .L3291 - add w0, w28, w28, lsl 1 - str wzr, [x29,172] + strh w0, [x1, x2, lsl 1] +.L3278: + sub w0, w27, #1 + str w0, [x29, 136] + ldr w0, [x29, 168] + cmp w0, w27 + bls .L3292 + add w0, w27, w27, lsl 1 + add x28, x23, :lo12:.LANCHOR5 sub w0, w0, #1 - str w0, [x29,144] - sub w0, w28, #1 - str w0, [x29,128] -.L3292: - ldrb w0, [x24,9] - ldr w1, [x29,172] - cmp w1, w0 - bge .L3288 - ldrsw x0, [x29,172] - mov w26, 1 - str x0, [x29,136] -.L3289: - cmp w26, w25 - bhi .L3340 - add x1, x23, :lo12:.LANCHOR5 - ldr w0, [x29,168] + str wzr, [x29, 172] + str w0, [x29, 160] + b .L3293 +.L3288: + ldr w0, [x29, 164] + ldr x1, [x28, 280] sbfiz x0, x0, 2, 32 - ldr x2, [x1,232] - ldr w5, [x2,x0] + ldr w5, [x1, x0] cmn w5, #1 - beq .L3278 - ldr x1, [x1,240] - str x5, [x29,152] - ldr w0, [x1,x0] - str w0, [x29,160] + beq .L3279 + ldr x1, [x28, 288] + str w5, [x29, 144] + ldr w0, [x1, x0] + str w0, [x29, 152] mov w0, w5 bl lpa_hash_get_ppa - str w0, [x29,188] + str w0, [x29, 188] cmn w0, #1 - ldr x5, [x29,152] - bne .L3279 + ldr w5, [x29, 144] + bne .L3280 mov w0, w5 - add x1, x29, 188 + str w5, [x29, 144] mov w2, 0 + add x1, x29, 188 bl pm_log2phys - ldr x5, [x29,152] -.L3279: - ldr x0, [x29,136] - add x0, x0, 8 - ldrh w1, [x24,x0,lsl 1] - add x0, x22, :lo12:.LANCHOR3 - ldrh w2, [x0,1418] - ldrb w0, [x0,1328] - cmp w0, 2 - mul w1, w1, w2 - beq .L3280 - add x2, x19, :lo12:.LANCHOR0 - ldrb w6, [x2,1268] - cbz w6, .L3281 + ldr w5, [x29, 144] .L3280: - ldr w2, [x29,128] - add w1, w2, w1 - add w1, w1, w26 - orr w1, w1, w0, lsl 24 - b .L3336 -.L3281: - cmp w0, 3 - bne .L3283 - ldrb w2, [x2,1269] - lsl w0, w26, 24 - cbz w2, .L3284 - ldr w2, [x29,144] - add w2, w1, w2 - add w2, w2, w26 - orr w1, w0, w2 - b .L3336 -.L3284: - add w1, w1, w28 - orr w1, w0, w1 - b .L3336 -.L3283: - add w1, w1, w28 -.L3336: + ldr x0, [x29, 128] add x2, x22, :lo12:.LANCHOR3 - ldr w0, [x29,160] - str w1, [x29,184] - mov w3, 24 - ldrh w1, [x2,1312] - lsr w6, w0, w1 + ldrh w1, [x2, 1410] + ldrh w0, [x24, x0, lsl 1] + ldrb w2, [x2, 1320] + cmp w2, 2 + mul w0, w0, w1 + add w1, w26, w0 + beq .L3281 + add x6, x19, :lo12:.LANCHOR0 + ldrb w7, [x6, 1212] + cbz w7, .L3282 +.L3281: + ldr w0, [x29, 136] + add w1, w0, w1 + orr w1, w1, w2, lsl 24 + str w1, [x29, 184] +.L3283: add x0, x19, :lo12:.LANCHOR0 - ldrb w0, [x0,1257] - sub w0, w3, w0 - sub w1, w0, w1 - mov w0, 1 - lsl w1, w0, w1 - ldrb w0, [x2,1314] - sub w1, w1, #1 - and w1, w6, w1 - udiv w1, w1, w0 - uxth w0, w1 - ldr w1, [x29,160] - str w0, [x29,152] - ldr w0, [x29,188] - cmp w0, w1 - bne .L3285 - mov w0, w5 - add x1, x29, 184 + add x6, x22, :lo12:.LANCHOR3 + ldr w3, [x29, 152] + ldrb w2, [x0, 1205] + mov w0, 24 + ldrh w1, [x6, 1304] + sub w0, w0, w2 mov w2, 1 - add w21, w21, 1 + sub w0, w0, w1 + lsr w1, w3, w1 + lsl w0, w2, w0 + sub w0, w0, #1 + and w0, w0, w1 + ldrb w1, [x6, 1306] + udiv w0, w0, w1 + and w0, w0, 65535 + str w0, [x29, 144] + ldr w0, [x29, 188] + cmp w3, w0 + bne .L3286 + add x1, x29, 184 + mov w0, w5 bl pm_log2phys - ldrh w0, [x29,152] + add w21, w21, 1 + ldrh w0, [x29, 144] bl ftl_vpn_decrement - b .L3286 -.L3285: - ldr w1, [x29,184] - cmp w0, w1 - csinc w21, w21, w21, ne -.L3286: - ldr w0, [x29,168] +.L3287: + ldr w0, [x29, 164] add x2, x19, :lo12:.LANCHOR0 add w0, w0, 1 - str w0, [x29,168] - ldr w0, [x29,152] - ldr x1, [x2,1096] + str w0, [x29, 164] + ldr x1, [x2, 1104] + ldr w0, [x29, 144] add x1, x1, x0, lsl 2 - ldrb w1, [x1,2] - ands w1, w1, 224 - bne .L3278 + ldrb w1, [x1, 2] + tst w1, 224 + bne .L3279 + ldr x1, [x2, 1120] lsl x0, x0, 1 - ldr x2, [x2,1112] - ldrh w5, [x2,x0] - cbz w5, .L3278 - strh w1, [x2,x0] -.L3278: + ldrh w2, [x1, x0] + cbz w2, .L3279 + strh wzr, [x1, x0] +.L3279: add w26, w26, 1 - b .L3289 -.L3340: - ldr w0, [x29,172] +.L3290: + cmp w25, w26 + bcs .L3288 + ldr w0, [x29, 172] add w0, w0, 1 - str w0, [x29,172] - b .L3292 -.L3288: - add x0, x22, :lo12:.LANCHOR3 - ldrb w0, [x0,1330] - cmp w0, wzr - csinc w28, w28, w28, eq - add w28, w28, 1 - b .L3277 -.L3291: - add x0, x19, :lo12:.LANCHOR0 - ldrh w1, [x20,80] - ldr x0, [x0,1112] - strh w21, [x0,x1,lsl 1] - ldrh w0, [x20,80] - bl zftl_insert_data_list -.L3250: - add x1, x19, :lo12:.LANCHOR0 - ldrh w0, [x20,80] - ubfiz x2, x0, 1, 16 - ldr x1, [x1,1112] - ldrh w1, [x1,x2] - cbnz w1, .L3293 - bl ftl_dump_write_open_sblk + str w0, [x29, 172] .L3293: - ldrh w1, [x20,80] - adrp x0, .LC247 - mov w2, w21 - add x0, x0, :lo12:.LC247 - bl printk - mov w0, -1 - strh w0, [x20,80] - bl pm_flush - bl ftl_ext_info_flush - add x1, x19, :lo12:.LANCHOR0 - mov w2, 65535 - ldr x0, [x1,1120] - ldrh w0, [x0,130] - cmp w0, w2 - beq .L3294 - ldrh w1, [x1,1088] + ldrb w0, [x24, 9] + ldr w1, [x29, 172] cmp w1, w0 - bhi .L3295 - adrp x1, .LANCHOR4 - adrp x0, .LC0 - add x1, x1, :lo12:.LANCHOR4 - mov w2, 517 - add x1, x1, 824 - add x0, x0, :lo12:.LC0 - bl printk - bl dump_stack -.L3295: + bge .L3289 + ldrsw x0, [x29, 172] + mov w26, 1 + add x0, x0, 8 + str x0, [x29, 128] + b .L3290 +.L3282: + cmp w2, 3 + bne .L3284 + ldrb w6, [x6, 1213] + lsl w2, w26, 24 + cbz w6, .L3285 + ldr w0, [x29, 160] + add w1, w0, w1 + orr w0, w1, w2 +.L3337: + str w0, [x29, 184] + b .L3283 +.L3285: + add w0, w27, w0 + orr w0, w0, w2 + b .L3337 +.L3284: + add w0, w27, w0 + b .L3337 +.L3286: + ldr w1, [x29, 184] + cmp w0, w1 + cinc w21, w21, eq + b .L3287 +.L3289: + add x0, x22, :lo12:.LANCHOR3 + ldrb w0, [x0, 1322] + cmp w0, 0 + cinc w27, w27, ne + add w27, w27, 1 + b .L3278 +.L3292: add x0, x19, :lo12:.LANCHOR0 - ldr x0, [x0,1120] - ldrh w0, [x0,130] - bl ftl_free_sblk -.L3294: - add x19, x19, :lo12:.LANCHOR0 - mov w0, -1 - ldr x1, [x19,3392] - strh w0, [x1,126] - ldr x1, [x19,1120] - strh w0, [x1,130] - mov w0, 0 - bl ftl_info_flush - b .L3243 + ldrh w1, [x20, 80] + ldr x0, [x0, 1120] + strh w21, [x0, x1, lsl 1] + ldrh w0, [x20, 80] + bl zftl_insert_data_list + b .L3250 .L3244: - ldrh w0, [x20,130] + ldrh w0, [x20, 130] cmp w0, w1 beq .L3243 - ldr x1, [x21,3392] - ldrh w1, [x1,126] + ldr x1, [x21, 3384] + ldrh w1, [x1, 126] cmp w1, w0 - bne .L3297 + bne .L3298 bl pm_flush - ldr x0, [x21,1120] - ldrh w0, [x0,130] + ldr x0, [x21, 1128] + ldrh w0, [x0, 130] bl ftl_free_sblk - ldr x0, [x21,3392] + ldr x0, [x21, 3384] mov w1, -1 - strh w1, [x0,126] + strh w1, [x0, 126] mov w0, 0 bl ftl_info_flush -.L3297: +.L3298: add x19, x19, :lo12:.LANCHOR0 mov w1, -1 - ldr x0, [x19,1120] - strh w1, [x0,130] -.L3243: - sub sp, x29, #32 - ldp x19, x20, [sp,48] - ldp x21, x22, [sp,64] - ldp x23, x24, [sp,80] - ldp x25, x26, [sp,96] - ldp x27, x28, [sp,112] - ldp x29, x30, [sp,32] - add sp, sp, 224 - ret + ldr x0, [x19, 1128] + strh w1, [x0, 130] + b .L3243 .size gc_recovery, .-gc_recovery .align 2 .global gc_update_l2p_map_new @@ -21476,348 +21321,346 @@ gc_recovery: gc_update_l2p_map_new: stp x29, x30, [sp, -160]! add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] adrp x19, .LANCHOR0 add x0, x19, :lo12:.LANCHOR0 - stp x23, x24, [sp,48] - stp x21, x22, [sp,32] - stp x25, x26, [sp,64] - stp x27, x28, [sp,80] - adrp x23, .LANCHOR2 - ldr x20, [x0,1120] - adrp x0, .LANCHOR3 - add x1, x0, :lo12:.LANCHOR3 - str x0, [x29,120] - ldrh w25, [x1,1346] - add x1, x20, 80 - str x1, [x29,128] - ldrb w1, [x1,9] - mul w25, w25, w1 - ldr w1, [x23,#:lo12:.LANCHOR2] - tbz x1, 8, .L3342 + stp x21, x22, [sp, 32] + stp x23, x24, [sp, 48] + adrp x22, .LANCHOR3 + stp x25, x26, [sp, 64] + stp x27, x28, [sp, 80] + ldr x20, [x0, 1128] + add x0, x22, :lo12:.LANCHOR3 + ldrh w24, [x0, 1338] + add x0, x20, 80 + str x0, [x29, 112] + ldrb w0, [x0, 9] + mul w24, w24, w0 + adrp x0, .LANCHOR2 + str x0, [x29, 136] + ldr w1, [x0, #:lo12:.LANCHOR2] + tbz x1, 8, .L3340 + ldrh w1, [x20, 80] adrp x0, .LC248 - ldrh w1, [x20,80] add x0, x0, :lo12:.LC248 bl printk -.L3342: +.L3340: add x0, x19, :lo12:.LANCHOR0 - adrp x21, .LANCHOR5 - ldrh w2, [x20,80] - mov w22, 0 - mov w24, w22 - ldr x1, [x0,1112] - add x0, x21, :lo12:.LANCHOR5 - ldrb w0, [x0,1001] - sub w0, w25, w0 - strh w0, [x1,x2,lsl 1] + adrp x1, .LANCHOR5 + ldrh w3, [x20, 80] + mov w23, 0 + mov w21, 0 + str x1, [x29, 120] + ldr x2, [x0, 1120] + add x0, x1, :lo12:.LANCHOR5 + ldrb w0, [x0, 465] + sub w0, w24, w0 + strh w0, [x2, x3, lsl 1] adrp x0, .LC250 add x0, x0, :lo12:.LC250 - str x0, [x29,112] - adrp x0, .LC249 - add x0, x0, :lo12:.LC249 - str x0, [x29,104] -.L3343: - cmp w24, w25 - beq .L3375 - add x0, x21, :lo12:.LANCHOR5 - ldr x0, [x0,232] - ldr w2, [x0,w24,sxtw 2] - cmn w2, #1 - beq .L3344 + str x0, [x29, 104] +.L3341: + cmp w21, w24 + bne .L3350 + ldr x0, [x29, 136] + ldr w0, [x0, #:lo12:.LANCHOR2] + tbz x0, 8, .L3351 add x0, x19, :lo12:.LANCHOR0 - ldrb w0, [x0,3360] - lsl w0, w0, 7 - udiv w0, w2, w0 - and w0, w0, 65535 - str w0, [x29,140] - ldr w0, [x23,#:lo12:.LANCHOR2] - tbz x0, 8, .L3345 - ldr x0, [x29,104] - mov w3, w24 - ldr w1, [x29,140] - bl printk -.L3345: - mov w26, w24 -.L3351: - add x1, x21, :lo12:.LANCHOR5 - sbfiz x27, x26, 2, 32 - ldr x0, [x1,232] - ldr w4, [x0,x27] - cmn w4, #1 - beq .L3346 - add x0, x19, :lo12:.LANCHOR0 - ldr w2, [x29,140] - ldrb w0, [x0,3360] - lsl w0, w0, 7 - udiv w0, w4, w0 - cmp w2, w0, uxth - bne .L3346 - ldr x0, [x1,240] - str x4, [x29,96] - ldr w28, [x0,x27] - mov w0, w4 - bl lpa_hash_get_ppa - str w0, [x29,156] - cmn w0, #1 - ldr x4, [x29,96] - bne .L3347 - mov w0, w4 - add x1, x29, 156 - mov w2, 0 - bl pm_log2phys - ldr x4, [x29,96] -.L3347: - ldr w3, [x29,156] - cmp w3, w28 - bne .L3348 - add x0, x21, :lo12:.LANCHOR5 - add x1, x29, 152 - mov w2, 1 - add w22, w22, 1 - ldr x0, [x0,248] - ldr w0, [x0,x27] - str w0, [x29,152] - mov w0, w4 - bl pm_log2phys - ldr x0, [x29,120] - mov w2, 24 - add x3, x0, :lo12:.LANCHOR3 - add x0, x19, :lo12:.LANCHOR0 - ldrb w0, [x0,1257] - ldrh w1, [x3,1312] - sub w0, w2, w0 - mov w2, 1 - sub w0, w0, w1 - lsr w28, w28, w1 - lsl w0, w2, w0 - sub w0, w0, #1 - and w28, w0, w28 - ldrb w0, [x3,1314] - udiv w0, w28, w0 - b .L3374 -.L3348: - ldr w0, [x23,#:lo12:.LANCHOR2] - tbz x0, 8, .L3350 - ldr x0, [x29,112] - mov w1, w4 - mov w2, w28 - bl printk -.L3350: - ldr x0, [x29,128] - ldrh w0, [x0] -.L3374: - bl ftl_vpn_decrement - add x0, x21, :lo12:.LANCHOR5 - mov w1, -1 - ldr x0, [x0,232] - str w1, [x0,x27] -.L3346: - add w26, w26, 1 - cmp w26, w25 - bne .L3351 -.L3344: - add w24, w24, 1 - b .L3343 -.L3375: - ldr w0, [x23,#:lo12:.LANCHOR2] - tbz x0, 8, .L3353 - add x0, x19, :lo12:.LANCHOR0 - ldrh w3, [x20,80] - ldr x1, [x0,1120] - ldr x2, [x0,1112] + ldrh w2, [x20, 80] + mov w3, w23 + ldr x1, [x0, 1120] + ldr x0, [x0, 1128] + ldrh w2, [x1, x2, lsl 1] + ldrh w1, [x0, 80] adrp x0, .LC251 add x0, x0, :lo12:.LC251 - ldrh w1, [x1,80] - ldrh w2, [x2,x3,lsl 1] - mov w3, w22 bl printk -.L3353: +.L3351: add x0, x19, :lo12:.LANCHOR0 - ldrh w1, [x20,80] - ldr x0, [x0,1112] - ldrh w0, [x0,x1,lsl 1] - cmp w0, w22 - beq .L3354 + ldrh w1, [x20, 80] + ldr x0, [x0, 1120] + ldrh w0, [x0, x1, lsl 1] + cmp w23, w0 + beq .L3352 adrp x1, .LANCHOR4 - adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 + add x1, x1, 856 mov w2, 898 - add x1, x1, 840 + adrp x0, .LC0 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L3354: +.L3352: add x19, x19, :lo12:.LANCHOR0 - ldrh w1, [x20,80] - ldr x0, [x19,1112] - strh w22, [x0,x1,lsl 1] - ldrh w0, [x20,80] + ldrh w1, [x20, 80] + ldr x0, [x19, 1120] + strh w23, [x0, x1, lsl 1] + ldrh w0, [x20, 80] bl zftl_insert_data_list - 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 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 +.L3350: + ldr x0, [x29, 120] + add x0, x0, :lo12:.LANCHOR5 + ldr x0, [x0, 280] + ldr w2, [x0, w21, sxtw 2] + cmn w2, #1 + beq .L3342 + add x0, x22, :lo12:.LANCHOR3 + ldrb w0, [x0, 1946] + lsl w0, w0, 7 + udiv w0, w2, w0 + and w0, w0, 65535 + str w0, [x29, 132] + ldr x0, [x29, 136] + ldr w0, [x0, #:lo12:.LANCHOR2] + tbz x0, 8, .L3343 + ldr w1, [x29, 132] + adrp x0, .LC249 + mov w3, w21 + add x0, x0, :lo12:.LC249 + bl printk +.L3343: + ldr x0, [x29, 120] + mov w25, w21 + add x26, x0, :lo12:.LANCHOR5 +.L3349: + ldr x0, [x26, 280] + sbfiz x27, x25, 2, 32 + ldr w4, [x0, x27] + cmn w4, #1 + beq .L3344 + add x0, x22, :lo12:.LANCHOR3 + ldr w1, [x29, 132] + ldrb w0, [x0, 1946] + lsl w0, w0, 7 + udiv w0, w4, w0 + cmp w1, w0, uxth + bne .L3344 + ldr x0, [x26, 288] + str w4, [x29, 128] + ldr w28, [x0, x27] + mov w0, w4 + bl lpa_hash_get_ppa + str w0, [x29, 156] + cmn w0, #1 + ldr w4, [x29, 128] + bne .L3345 + mov w0, w4 + str w4, [x29, 128] + mov w2, 0 + add x1, x29, 156 + bl pm_log2phys + ldr w4, [x29, 128] +.L3345: + ldr w3, [x29, 156] + cmp w28, w3 + bne .L3346 + ldr x0, [x26, 296] + mov w2, 1 + add x1, x29, 152 + add w23, w23, 1 + ldr w0, [x0, x27] + str w0, [x29, 152] + mov w0, w4 + bl pm_log2phys + add x0, x19, :lo12:.LANCHOR0 + add x3, x22, :lo12:.LANCHOR3 + ldrb w1, [x0, 1205] + mov w0, 24 + ldrh w2, [x3, 1304] + sub w0, w0, w1 + sub w1, w0, w2 + mov w0, 1 + lsr w28, w28, w2 + lsl w0, w0, w1 + sub w0, w0, #1 + and w28, w0, w28 + ldrb w0, [x3, 1306] + udiv w0, w28, w0 +.L3373: + bl ftl_vpn_decrement + ldr x0, [x26, 280] + mov w1, -1 + str w1, [x0, x27] +.L3344: + add w25, w25, 1 + cmp w24, w25 + bne .L3349 +.L3342: + add w21, w21, 1 + b .L3341 +.L3346: + ldr x0, [x29, 136] + ldr w0, [x0, #:lo12:.LANCHOR2] + tbz x0, 8, .L3348 + ldr x0, [x29, 104] + mov w2, w28 + mov w1, w4 + bl printk +.L3348: + ldr x0, [x29, 112] + ldrh w0, [x0] + b .L3373 .size gc_update_l2p_map_new, .-gc_update_l2p_map_new .align 2 .global gc_scan_src_blk_one_page .type gc_scan_src_blk_one_page, %function gc_scan_src_blk_one_page: - stp x29, x30, [sp, -80]! + stp x29, x30, [sp, -96]! mov w3, 0 + mov w4, 0 mov w5, 65535 add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x19, .LANCHOR0 - mov w4, w3 - add x1, x19, :lo12:.LANCHOR0 - add x1, x1, 3424 - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] + stp x19, x20, [sp, 16] + adrp x20, .LANCHOR0 + add x1, x20, :lo12:.LANCHOR0 + stp x21, x22, [sp, 32] + add x1, x1, 3416 + stp x23, x24, [sp, 48] + stp x25, x26, [sp, 64] adrp x21, .LANCHOR3 - ldrb w0, [x1,4] + ldrb w0, [x1, 4] add x2, x1, w0, sxtw 1 - ldrh w22, [x2,40] + ldrh w22, [x2, 40] add x2, x21, :lo12:.LANCHOR3 - ldrb w6, [x2,1329] - ldrh w2, [x1,2] -.L3377: + ldrb w6, [x2, 1321] + ldrh w2, [x1, 2] +.L3375: cmp w22, w5 - bne .L3406 + beq .L3377 + cbz w4, .L3378 + add x1, x20, :lo12:.LANCHOR0 + strh w2, [x1, 3418] +.L3378: + cbz w3, .L3379 + add x1, x20, :lo12:.LANCHOR0 + strb w0, [x1, 3420] +.L3379: + add x20, x20, :lo12:.LANCHOR0 + mov w0, 1 + add x19, x20, 3416 + bl buf_alloc + add x25, x21, :lo12:.LANCHOR3 + mov x23, x0 + mov w24, 1 +.L3380: + ldrb w1, [x19, 6] + cmp w24, w1 + ble .L3390 + mov x0, x23 + bl zbuf_free + ldrb w0, [x19, 4] + add x21, x21, :lo12:.LANCHOR3 add w0, w0, 1 - uxtb w0, w0 + and w0, w0, 255 + ldrb w1, [x21, 1321] + strb w0, [x19, 4] + cmp w1, w0 + bne .L3374 + ldrh w0, [x19, 2] + strb wzr, [x19, 4] + add w0, w0, 1 + strh w0, [x19, 2] +.L3374: + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] + ldp x29, x30, [sp], 96 + ret +.L3377: + add w0, w0, 1 + and w0, w0, 255 cmp w0, w6 - bne .L3378 + bne .L3376 add w2, w2, 1 mov w0, 0 + and w2, w2, 65535 mov w4, 1 - uxth w2, w2 -.L3378: +.L3376: add x3, x1, w0, sxtw 1 - ldrh w22, [x3,40] + ldrh w22, [x3, 40] mov w3, 1 - b .L3377 -.L3406: - cbz w4, .L3380 - add x1, x19, :lo12:.LANCHOR0 - strh w2, [x1,3426] -.L3380: - cbz w3, .L3381 - add x1, x19, :lo12:.LANCHOR0 - strb w0, [x1,3428] -.L3381: - mov w0, 1 - mov w24, 1 - add x19, x19, :lo12:.LANCHOR0 - bl buf_alloc - mov x23, x0 -.L3382: - add x20, x19, 3424 - ldrb w0, [x20,6] - cmp w24, w0 - bgt .L3407 - add x3, x21, :lo12:.LANCHOR3 - cmp w0, 2 - ldrh w1, [x3,1418] - mul w1, w22, w1 - bne .L3383 - ldrh w2, [x20,2] - ldrb w0, [x3,1328] - add w1, w1, w2, lsl 1 - sub w1, w1, #1 - add w1, w1, w24 - b .L3405 -.L3383: - cmp w0, 3 - bne .L3385 - ldrb w0, [x19,1268] - cbnz w0, .L3386 - ldrb w0, [x19,1269] - cbz w0, .L3387 -.L3386: - ldrh w2, [x19,3426] - add x0, x21, :lo12:.LANCHOR3 - add w2, w2, w2, lsl 1 - ldrb w0, [x0,1328] - sub w2, w2, #1 - add w1, w2, w1 - add w1, w1, w24 -.L3405: - orr w1, w1, w0, lsl 24 - b .L3404 -.L3387: - ldrh w0, [x20,2] - add w1, w1, w0 - orr w1, w1, w24, lsl 24 - b .L3404 -.L3385: - ldrh w0, [x20,2] - add w1, w1, w0 -.L3404: - str w1, [x23,40] - mov x0, x23 - mov w1, 1 - bl sblk_read_page - ldr w0, [x23,52] - cmp w0, 512 - beq .L3390 - cmn w0, #1 - beq .L3390 - ldr x0, [x23,24] - ldr w20, [x0,4] - mov w0, w20 - bl lpa_hash_get_ppa - str w0, [x29,76] - cmn w0, #1 - bne .L3391 - ldr w0, [x19,3372] - cmp w20, w0 - bcs .L3391 - mov w0, w20 - add x1, x29, 76 - mov w2, 0 - bl pm_log2phys -.L3391: - ldr w2, [x23,40] - ldr w0, [x29,76] - cmp w2, w0 - bne .L3390 - add x1, x21, :lo12:.LANCHOR3 - ldrh w3, [x19,3448] - ldr x1, [x1,1320] - str w2, [x1,x3,lsl 2] - ldrh w1, [x19,3448] - add w1, w1, 1 - strh w1, [x19,3448] + b .L3375 .L3390: - ldrh w0, [x19,3450] + ldrh w0, [x25, 1410] + cmp w1, 2 + mul w0, w0, w22 + bne .L3381 + ldrh w1, [x19, 2] + lsl w1, w1, 1 +.L3400: + sub w1, w1, #1 + add w0, w24, w0 + add w0, w1, w0 + ldrb w1, [x25, 1320] + orr w0, w0, w1, lsl 24 +.L3399: + str w0, [x23, 40] + mov w1, 1 + mov x0, x23 + bl sblk_read_page + ldr w0, [x23, 52] + cmp w0, 512 + ccmn w0, #1, 4, ne + beq .L3387 + ldr x0, [x23, 24] + ldr w26, [x0, 4] + mov w0, w26 + bl lpa_hash_get_ppa + str w0, [x29, 92] + cmn w0, #1 + bne .L3388 + ldr w0, [x20, 3364] + cmp w26, w0 + bcs .L3388 + mov w2, 0 + add x1, x29, 92 + mov w0, w26 + bl pm_log2phys +.L3388: + ldr w0, [x23, 40] + ldr w1, [x29, 92] + cmp w0, w1 + bne .L3387 + ldrh w2, [x19, 24] + ldr x1, [x25, 1312] + str w0, [x1, x2, lsl 2] + ldrh w0, [x19, 24] + add w0, w0, 1 + strh w0, [x19, 24] +.L3387: + ldrh w0, [x19, 26] add w24, w24, 1 add w0, w0, 1 - strh w0, [x19,3450] - b .L3382 -.L3407: - mov x0, x23 - add x21, x21, :lo12:.LANCHOR3 - bl zbuf_free - ldrb w0, [x20,4] - ldrb w1, [x21,1329] - add w0, w0, 1 - uxtb w0, w0 - strb w0, [x20,4] - cmp w1, w0 - bne .L3376 - ldrh w0, [x20,2] - strb wzr, [x20,4] - add w0, w0, 1 - strh w0, [x20,2] -.L3376: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x29, x30, [sp], 80 - ret + strh w0, [x19, 26] + b .L3380 +.L3381: + cmp w1, 3 + bne .L3383 + ldrb w1, [x20, 1212] + cbnz w1, .L3384 + ldrb w1, [x20, 1213] + cbz w1, .L3385 +.L3384: + ldrh w1, [x19, 2] + add w1, w1, w1, lsl 1 + b .L3400 +.L3385: + ldrh w1, [x19, 2] + add w0, w1, w0 + orr w0, w0, w24, lsl 24 + b .L3399 +.L3383: + ldrh w1, [x19, 2] + add w0, w1, w0 + b .L3399 .size gc_scan_src_blk_one_page, .-gc_scan_src_blk_one_page .align 2 .global gc_scan_src_blk @@ -21825,522 +21668,507 @@ gc_scan_src_blk_one_page: gc_scan_src_blk: stp x29, x30, [sp, -112]! add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] adrp x20, .LANCHOR0 - str x27, [sp,80] add x0, x20, :lo12:.LANCHOR0 - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] - ldrh w1, [x0,3424] + stp x21, x22, [sp, 32] + stp x23, x24, [sp, 48] + stp x25, x26, [sp, 64] + str x27, [sp, 80] + ldrh w1, [x0, 3416] mov w0, 65535 cmp w1, w0 - bne .L3409 + bne .L3402 adrp x1, .LANCHOR4 - adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 + add x1, x1, 880 mov w2, 1505 - add x1, x1, 864 + adrp x0, .LC0 + add x0, x0, :lo12:.LC0 + bl printk + bl dump_stack +.L3402: + add x0, x20, :lo12:.LANCHOR0 + mov w2, 65535 + ldrh w1, [x0, 3416] + cmp w1, w2 + beq .L3432 + adrp x2, .LANCHOR2 + ldr w2, [x2, #:lo12:.LANCHOR2] + tbz x2, 8, .L3404 + ldr x0, [x0, 1120] + ubfiz x2, x1, 1, 16 + ldrh w2, [x0, x2] + adrp x0, .LC252 + add x0, x0, :lo12:.LC252 + bl printk +.L3404: + bl timer_get_time + add x14, x20, :lo12:.LANCHOR0 + add x15, x14, 3416 + add x1, x14, 3456 + ldrh w0, [x14, 3416] + bl ftl_get_blk_list_in_sblk + and w1, w0, 255 + strb w1, [x15, 5] + cbnz w1, .L3405 + mov w0, -1 + strh w0, [x14, 3416] +.L3432: + mov w0, 0 + b .L3401 +.L3405: + ldrh w3, [x14, 3416] + ldr x1, [x14, 1104] + mov x2, x3 + add x1, x1, x3, lsl 2 + ldrb w1, [x1, 2] + and w1, w1, 224 + cmp w1, 32 + beq .L3406 + cmp w1, 224 + beq .L3406 + cbz w1, .L3407 + ldr x1, [x14, 1128] + ldrh w3, [x1, 16] + cmp w3, w2 + beq .L3406 + ldrh w3, [x1, 48] + cmp w3, w2 + beq .L3406 + ldrh w1, [x1, 80] + cmp w1, w2 + bne .L3452 +.L3406: + add x20, x20, :lo12:.LANCHOR0 + mov w0, -1 + strh wzr, [x20, 3440] + strh w0, [x20, 3416] + b .L3432 +.L3407: + ldr x0, [x14, 1120] + ldrh w0, [x0, x3, lsl 1] + cbz w0, .L3409 + adrp x1, .LANCHOR4 + add x1, x1, :lo12:.LANCHOR4 + add x1, x1, 880 + mov w2, 1530 + adrp x0, .LC0 add x0, x0, :lo12:.LC0 bl printk bl dump_stack .L3409: - add x2, x20, :lo12:.LANCHOR0 - mov w3, 65535 - mov w0, 0 - ldrh w1, [x2,3424] - cmp w1, w3 - beq .L3410 - adrp x0, .LANCHOR2 - ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 8, .L3411 - ubfiz x3, x1, 1, 16 - ldr x2, [x2,1112] - adrp x0, .LC252 - add x0, x0, :lo12:.LC252 - ldrh w2, [x2,x3] - bl printk -.L3411: - add x19, x20, :lo12:.LANCHOR0 - bl timer_get_time - add x21, x19, 3424 - add x1, x19, 3464 - ldrh w0, [x19,3424] - bl ftl_get_blk_list_in_sblk - uxtb w1, w0 - strb w1, [x21,5] - cbnz w1, .L3412 - mov w0, -1 - strh w0, [x19,3424] - b .L3464 -.L3412: - ldrh w3, [x19,3424] - ldr x2, [x19,1096] - add x2, x2, x3, lsl 2 - ldrb w2, [x2,2] - tst w2, 192 - and w4, w2, 224 - beq .L3413 - cmp w4, 224 - beq .L3413 - ldr x2, [x19,1120] - ldrh w5, [x2,16] - cmp w5, w3 - beq .L3413 - ldrh w5, [x2,48] - cmp w5, w3 - beq .L3413 - ldrh w2, [x2,80] - cmp w2, w3 - bne .L3414 -.L3413: - cbnz w4, .L3415 add x0, x20, :lo12:.LANCHOR0 - ldr x0, [x0,1112] - ldrh w0, [x0,x3,lsl 1] - cbz w0, .L3416 - adrp x1, .LANCHOR4 - adrp x0, .LC0 - add x1, x1, :lo12:.LANCHOR4 - mov w2, 1530 - add x1, x1, 864 - add x0, x0, :lo12:.LC0 - bl printk - bl dump_stack -.L3416: - add x0, x20, :lo12:.LANCHOR0 - ldrh w1, [x0,3424] - ldr x0, [x0,1112] - strh wzr, [x0,x1,lsl 1] -.L3415: - add x20, x20, :lo12:.LANCHOR0 - mov w0, -1 - strh wzr, [x20,3448] - strh w0, [x20,3424] -.L3464: - mov w0, 0 - b .L3410 -.L3414: + ldrh w1, [x0, 3416] + ldr x0, [x0, 1120] + strh wzr, [x0, x1, lsl 1] + b .L3406 +.L3452: and w0, w0, 255 sub w0, w0, #1 - add x0, x21, w0, sxtw 1 - ldrh w21, [x0,40] + add x0, x15, w0, sxtw 1 + ldrh w22, [x0, 40] mov w0, 65535 - cmp w21, w0 - bne .L3417 + cmp w22, w0 + bne .L3410 adrp x1, .LANCHOR4 - adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 + add x1, x1, 880 mov w2, 1540 - add x1, x1, 864 + adrp x0, .LC0 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L3417: +.L3410: add x3, x20, :lo12:.LANCHOR0 - adrp x22, .LANCHOR3 - add x1, x22, :lo12:.LANCHOR3 - mov w26, 1 - ldrh w2, [x3,3424] - ldr x3, [x3,1096] - ldrh w0, [x1,1384] + adrp x23, .LANCHOR3 + add x1, x23, :lo12:.LANCHOR3 + ldrh w2, [x3, 3416] + ldr x3, [x3, 1104] + ldrh w21, [x1, 1410] + ldrh w0, [x1, 1376] add x2, x3, x2, lsl 2 - ldrh w23, [x1,1418] sub w0, w0, #1 - ldrb w2, [x2,2] - uxth w0, w0 - mul w23, w21, w23 + and w0, w0, 65535 + mul w21, w21, w22 + ldrb w2, [x2, 2] and w2, w2, 224 cmp w2, 160 - bne .L3418 - ldrb w2, [x1,1328] + bne .L3433 + ldrb w2, [x1, 1320] + and w27, w2, 65535 cmp w2, 2 - uxth w26, w2 - orr w23, w23, w2, lsl 24 - bne .L3419 - ldrh w0, [x1,1346] + orr w21, w21, w2, lsl 24 + bne .L3412 + ldrh w0, [x1, 1338] sub w0, w0, #1 - uxth w0, w0 -.L3419: + and w0, w0, 65535 +.L3412: add x1, x20, :lo12:.LANCHOR0 - ldrb w2, [x1,1268] - cbnz w2, .L3420 - ldrb w1, [x1,1269] - cbz w1, .L3418 -.L3420: - add x0, x22, :lo12:.LANCHOR3 - ldrh w0, [x0,1346] + ldrb w2, [x1, 1212] + cbnz w2, .L3413 + ldrb w1, [x1, 1213] + cbz w1, .L3411 +.L3413: + add x0, x23, :lo12:.LANCHOR3 + ldrh w0, [x0, 1338] sub w0, w0, #1 - uxth w0, w0 -.L3418: + and w0, w0, 65535 +.L3411: add x24, x20, :lo12:.LANCHOR0 - orr w23, w0, w23 + orr w21, w0, w21 mov w0, 1 - strb w26, [x24,3430] - strh wzr, [x24,3426] - strb wzr, [x24,3428] - strh wzr, [x24,3450] - strh wzr, [x24,3452] + strb w27, [x24, 3422] + strh wzr, [x24, 3418] + strb wzr, [x24, 3420] + strh wzr, [x24, 3442] + strh wzr, [x24, 3444] bl buf_alloc - mov w1, 1 mov x19, x0 - str w23, [x0,40] + str w21, [x0, 40] + mov w1, 1 bl sblk_read_page - strh wzr, [x24,3448] - ldr w0, [x19,52] + strh wzr, [x24, 3440] + ldr w0, [x19, 52] cmp w0, 512 - beq .L3467 - cmn w0, #1 - beq .L3467 - ldr x0, [x19,24] + ccmn w0, #1, 4, ne + bne .L3414 +.L3457: + mov x0, x19 + bl zbuf_free +.L3455: + mov w0, -1 +.L3401: + 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], 112 + ret +.L3433: + mov w27, 1 + b .L3411 +.L3414: + ldr x0, [x19, 24] mov w1, 15555 movk w1, 0xf55f, lsl 16 ldr w2, [x0] cmp w2, w1 - beq .L3423 - adrp x1, .LANCHOR4 - adrp x0, .LC0 - add x1, x1, :lo12:.LANCHOR4 - add x0, x0, :lo12:.LC0 - add x1, x1, 864 + beq .L3415 mov w2, 1578 - b .L3468 -.L3423: - add x2, x22, :lo12:.LANCHOR3 - cmp w26, 3 - ldrb w1, [x2,1329] - ldrh w25, [x2,1384] - mul w25, w1, w25 - mul w25, w26, w25 - uxth w25, w25 - bne .L3424 +.L3458: + adrp x1, .LANCHOR4 + add x1, x1, :lo12:.LANCHOR4 + add x1, x1, 880 + adrp x0, .LC0 + add x0, x0, :lo12:.LC0 + bl printk + bl dump_stack + b .L3457 +.L3415: + add x1, x23, :lo12:.LANCHOR3 adrp x26, .LANCHOR5 - add x3, x26, :lo12:.LANCHOR5 - ldrb w4, [x3,1001] - cmp w4, 2 - bne .L3424 - ldrh w24, [x2,1346] - ldrh w0, [x3,998] - lsl w24, w24, 2 - mul w24, w1, w24 - ldr x1, [x2,1320] + add x2, x26, :lo12:.LANCHOR5 + ldrb w24, [x1, 1321] + ldrh w25, [x1, 1376] + ldrb w3, [x2, 465] + cmp w3, 2 + mul w25, w24, w25 + mul w25, w27, w25 + and w25, w25, 65535 + bne .L3416 + cmp w27, 3 + bne .L3416 + ldrh w0, [x2, 462] + ldrh w2, [x1, 1338] + ldr x3, [x1, 1312] + ldr x1, [x19, 8] + ubfiz w2, w2, 2, 14 + mul w24, w24, w2 sub w24, w24, w0 and x0, x0, 65532 - add x0, x1, x0 - ldr x1, [x19,8] - uxth w24, w24 + and w24, w24, 65535 + add x0, x3, x0 mov w2, w24 bl ftl_memcpy - ldr x0, [x19,24] - ldr w27, [x0,4] - cbz w27, .L3425 - ldr x0, [x19,8] + ldr x0, [x19, 24] + ldr w27, [x0, 4] + cbz w27, .L3417 + ldr x0, [x19, 8] mov w1, w24 bl js_hash cmp w27, w0 - beq .L3425 + beq .L3417 mov x0, x19 bl zbuf_free - ldr x1, [x19,24] - adrp x0, .LC253 - add x0, x0, :lo12:.LC253 - ldr w2, [x19,40] + ldr x0, [x19, 24] mov w3, w24 - ldr w1, [x1,4] - b .L3466 -.L3425: +.L3456: + ldr w1, [x0, 4] + adrp x0, .LC253 + ldr w2, [x19, 40] + add x0, x0, :lo12:.LC253 + bl printk + b .L3455 +.L3417: add x0, x20, :lo12:.LANCHOR0 - ldrb w1, [x0,1268] - cbnz w1, .L3426 - ldrb w0, [x0,1269] - cbz w0, .L3427 -.L3426: - sub w0, w23, #1 - str w0, [x19,40] - b .L3428 -.L3427: - add x1, x22, :lo12:.LANCHOR3 - ldrh w0, [x1,1384] - ldrh w1, [x1,1418] - sub w0, w0, #1 - mul w21, w21, w1 - uxth w0, w0 - orr w0, w0, 33554432 - orr w21, w0, w21 - str w21, [x19,40] -.L3428: - mov x0, x19 + ldrb w1, [x0, 1212] + cbnz w1, .L3418 + ldrb w0, [x0, 1213] + cbz w0, .L3419 +.L3418: + sub w0, w21, #1 + str w0, [x19, 40] +.L3420: mov w1, 1 + mov x0, x19 bl sblk_read_page - ldr w0, [x19,52] + ldr w0, [x19, 52] cmp w0, 512 - beq .L3467 - cmn w0, #1 - beq .L3467 - ldr x0, [x19,24] + ccmn w0, #1, 4, ne + beq .L3457 + ldr x0, [x19, 24] ldr w1, [x0] mov w0, 15555 movk w0, 0xf55f, lsl 16 cmp w1, w0 - beq .L3431 - adrp x1, .LANCHOR4 - adrp x0, .LC0 - add x1, x1, :lo12:.LANCHOR4 - add x0, x0, :lo12:.LC0 - add x1, x1, 864 + beq .L3422 mov w2, 1619 -.L3468: - bl printk - bl dump_stack -.L3467: - mov x0, x19 - bl zbuf_free - b .L3465 -.L3431: - add x0, x22, :lo12:.LANCHOR3 - add x26, x26, :lo12:.LANCHOR5 - ldr x1, [x19,8] - ldr x0, [x0,1320] - ldrh w2, [x26,998] - b .L3463 -.L3424: - ldr w23, [x0,4] - lsl w21, w25, 2 - ldr x0, [x19,8] - mov w1, w21 - bl js_hash - cmp w23, w0 - beq .L3433 - mov x0, x19 - bl zbuf_free - ldr x1, [x19,24] - adrp x0, .LC253 - ldr w2, [x19,40] - add x0, x0, :lo12:.LC253 - mov w3, w21 - ldr w1, [x1,4] -.L3466: - bl printk -.L3465: - mov w0, -1 - b .L3410 -.L3433: - add x0, x22, :lo12:.LANCHOR3 - ldr x1, [x19,8] - mov w2, w21 - ldr x0, [x0,1320] -.L3463: - bl ftl_memcpy - mov x27, 0 - add x0, x22, :lo12:.LANCHOR3 - add x21, x20, :lo12:.LANCHOR0 - mov w24, 24 - mov w26, 1 - ldr x23, [x0,1320] -.L3434: - cmp w25, w27 - ble .L3469 - ldr w0, [x23,x27,lsl 2] - cmn w0, #1 - beq .L3436 - bl lpa_hash_get_ppa - str w0, [x29,108] - cmn w0, #1 - bne .L3437 - ldr w0, [x23,x27,lsl 2] - add x1, x29, 108 - mov w2, 0 - bl pm_log2phys -.L3437: - add x2, x22, :lo12:.LANCHOR3 - ldrb w0, [x21,1257] - ldr w3, [x29,108] - sub w0, w24, w0 - ldrh w4, [x21,3424] - ldrh w1, [x2,1312] - sub w0, w0, w1 - lsr w1, w3, w1 - lsl w0, w26, w0 + b .L3458 +.L3419: + add x1, x23, :lo12:.LANCHOR3 + ldrh w0, [x1, 1376] + ldrh w1, [x1, 1410] sub w0, w0, #1 - and w0, w0, w1 - ldrb w1, [x2,1314] - udiv w0, w0, w1 - cmp w0, w4 - bne .L3436 - ldrh w4, [x21,3448] - ldr x0, [x2,1320] - str w3, [x0,x4,lsl 2] - ldrh w0, [x21,3448] - add w0, w0, 1 - strh w0, [x21,3448] -.L3436: - bl timer_get_time - add x27, x27, 1 - b .L3434 -.L3469: + and w0, w0, 65535 + orr w0, w0, 33554432 + mul w22, w1, w22 + orr w22, w0, w22 + str w22, [x19, 40] + b .L3420 +.L3422: + add x26, x26, :lo12:.LANCHOR5 + add x0, x23, :lo12:.LANCHOR3 + ldrh w2, [x26, 462] +.L3454: + ldr x0, [x0, 1312] + add x23, x23, :lo12:.LANCHOR3 + ldr x1, [x19, 8] + add x24, x20, :lo12:.LANCHOR0 + add x21, x24, 3416 + mov x27, 0 + mov w26, 24 + bl ftl_memcpy + ldr x22, [x23, 1312] +.L3425: + cmp w25, w27 + bgt .L3430 mov x0, x19 bl zbuf_free add x0, x20, :lo12:.LANCHOR0 - ldrh w1, [x0,3424] - ldr x3, [x0,1112] + ldrh w1, [x0, 3416] + ldr x3, [x0, 1120] ubfiz x2, x1, 1, 16 - ldrh w2, [x3,x2] - ldrh w3, [x0,3448] + ldrh w2, [x3, x2] + ldrh w3, [x0, 3440] cmp w2, w3 - beq .L3440 + beq .L3431 adrp x0, .LC254 add x0, x0, :lo12:.LC254 bl printk -.L3440: +.L3431: add x20, x20, :lo12:.LANCHOR0 - ldrh w2, [x20,3424] - ldr x1, [x20,1112] - ldrh w3, [x20,3448] - strh w3, [x1,x2,lsl 1] - strh wzr, [x20,3452] - ldrh w0, [x20,3448] -.L3410: - 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], 112 - ret + ldrh w2, [x20, 3416] + ldr x1, [x20, 1120] + ldrh w3, [x20, 3440] + strh w3, [x1, x2, lsl 1] + strh wzr, [x20, 3444] + ldrh w0, [x20, 3440] + b .L3401 +.L3416: + ldr w22, [x0, 4] + lsl w21, w25, 2 + ldr x0, [x19, 8] + mov w1, w21 + bl js_hash + cmp w22, w0 + beq .L3424 + mov x0, x19 + bl zbuf_free + mov w3, w21 + ldr x0, [x19, 24] + b .L3456 +.L3424: + add x0, x23, :lo12:.LANCHOR3 + mov w2, w21 + b .L3454 +.L3430: + ldr w0, [x22, x27, lsl 2] + cmn w0, #1 + beq .L3427 + bl lpa_hash_get_ppa + str w0, [x29, 108] + cmn w0, #1 + bne .L3428 + ldr w0, [x22, x27, lsl 2] + mov w2, 0 + add x1, x29, 108 + bl pm_log2phys +.L3428: + ldrb w1, [x24, 1205] + ldrh w2, [x23, 1304] + sub w0, w26, w1 + ldr w3, [x29, 108] + sub w1, w0, w2 + mov w0, 1 + lsl w0, w0, w1 + ldrb w1, [x23, 1306] + sub w0, w0, #1 + lsr w2, w3, w2 + and w0, w0, w2 + udiv w0, w0, w1 + ldrh w1, [x21] + cmp w0, w1 + bne .L3427 + ldrh w1, [x21, 24] + ldr x0, [x23, 1312] + str w3, [x0, x1, lsl 2] + ldrh w0, [x21, 24] + add w0, w0, 1 + strh w0, [x21, 24] +.L3427: + bl timer_get_time + add x27, x27, 1 + b .L3425 .size gc_scan_src_blk, .-gc_scan_src_blk .align 2 .global gc_scan_static_data .type gc_scan_static_data, %function gc_scan_static_data: - stp x29, x30, [sp, -80]! + stp x29, x30, [sp, -64]! + adrp x1, .LANCHOR0 add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x19, .LANCHOR0 - add x3, x19, :lo12:.LANCHOR0 - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - ldr x0, [x3,1120] - ldr w1, [x0,544] - cmn w1, #1 - beq .L3471 + stp x19, x20, [sp, 16] + add x19, x1, :lo12:.LANCHOR0 + stp x21, x22, [sp, 32] + ldr x0, [x19, 1128] + ldr w2, [x0, 544] + cmn w2, #1 + beq .L3460 adrp x20, .LANCHOR4 - adrp x22, .LC0 add x20, x20, :lo12:.LANCHOR4 + add x20, x20, 896 mov w21, 0 - add x22, x22, :lo12:.LC0 - add x20, x20, 880 -.L3472: - add x24, x19, :lo12:.LANCHOR0 - add x1, x29, 76 +.L3468: + ldr x0, [x19, 1128] mov w2, 0 - ldr x0, [x24,1120] - ldr w0, [x0,544] + add x1, x29, 60 + ldr w0, [x0, 544] bl pm_log2phys - ldr w0, [x29,76] + ldr w0, [x29, 60] cmn w0, #1 - beq .L3473 + beq .L3461 mov w0, 1 bl buf_alloc - mov x23, x0 - ldr w1, [x29,76] - str w1, [x0,40] + ldr w1, [x29, 60] + mov x22, x0 + str w1, [x0, 40] mov w1, 1 bl sblk_read_page - ldr w0, [x23,52] + ldr w0, [x22, 52] cmp w0, 256 - bne .L3474 - adrp x4, .LANCHOR3 - ldrb w2, [x24,1257] - add x4, x4, :lo12:.LANCHOR3 - mov w3, 24 - sub w2, w3, w2 + bne .L3462 + adrp x2, .LANCHOR3 + add x2, x2, :lo12:.LANCHOR3 + ldrb w1, [x19, 1205] + mov w0, 24 + ldr w3, [x29, 60] + ldrh w4, [x2, 1304] + sub w0, w0, w1 mov w1, 1 - ldr w3, [x29,76] - ldrh w0, [x4,1312] - sub w2, w2, w0 - lsr w3, w3, w0 - lsl w2, w1, w2 - ldrb w0, [x4,1314] - sub w2, w2, #1 - and w2, w2, w3 - udiv w0, w2, w0 + sub w0, w0, w4 + lsr w3, w3, w4 + lsl w0, w1, w0 + sub w0, w0, #1 + and w0, w0, w3 + ldrb w3, [x2, 1306] mov w2, 0 + udiv w0, w0, w3 bl gc_add_sblk -.L3474: - add x0, x19, :lo12:.LANCHOR0 - ldr x1, [x23,24] - ldr x0, [x0,1120] - ldr w1, [x1,4] - ldr w0, [x0,544] +.L3462: + ldr x0, [x19, 1128] + ldr x1, [x22, 24] + ldr w0, [x0, 544] + ldr w1, [x1, 4] cmp w1, w0 - beq .L3475 + beq .L3463 mov x1, x20 mov w2, 2163 - mov x0, x22 + adrp x0, .LC0 + add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L3475: - mov x0, x23 +.L3463: + mov x0, x22 bl zbuf_free -.L3473: - add x2, x19, :lo12:.LANCHOR0 - ldr x1, [x2,1120] - ldr w2, [x2,3372] - ldr w0, [x1,544] - add w0, w0, 1 - str w0, [x1,544] - cmp w0, w2 - bcc .L3476 - mov w0, -1 - str w0, [x1,544] - ldr w0, [x1,548] - add w0, w0, 1 - str w0, [x1,548] +.L3461: + ldr x0, [x19, 1128] + ldr w2, [x19, 3364] + ldr w1, [x0, 544] + add w1, w1, 1 + str w1, [x0, 544] + cmp w1, w2 + bcc .L3464 + mov w1, -1 + str w1, [x0, 544] + ldr w1, [x0, 548] + add w1, w1, 1 + str w1, [x0, 548] bl ftl_flush bl pm_flush bl ftl_ext_info_flush mov w0, 0 bl ftl_info_flush - b .L3470 -.L3476: - ldr w0, [x29,76] - cmn w0, #1 - bne .L3470 - adrp x1, .LANCHOR5+998 - add w0, w21, 1 - uxth w0, w0 - ldrh w1, [x1,#:lo12:.LANCHOR5+998] - cmp w21, w1, lsr 2 - bcs .L3470 - mov w21, w0 - b .L3472 -.L3471: - ldr w1, [x0,536] - ldr w2, [x0,12] - add w1, w1, 12959744 - add w1, w1, 256 - cmp w2, w1 - bhi .L3481 - ldr x3, [x3,3392] - ldr w1, [x0,540] - ldr w3, [x3,44] - add w1, w1, 4096 - add w1, w1, 904 - cmp w3, w1 - bls .L3470 -.L3481: - add x19, x19, :lo12:.LANCHOR0 - ldr x1, [x19,3392] - ldr w1, [x1,44] - str w1, [x0,540] - str w2, [x0,536] - str wzr, [x0,544] -.L3470: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x29, x30, [sp], 80 +.L3459: + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x29, x30, [sp], 64 ret +.L3464: + ldr w0, [x29, 60] + cmn w0, #1 + bne .L3459 + adrp x1, .LANCHOR5+462 + add w0, w21, 1 + and w0, w0, 65535 + ldrh w1, [x1, #:lo12:.LANCHOR5+462] + cmp w21, w1, lsr 2 + bcs .L3459 + mov w21, w0 + b .L3468 +.L3460: + ldr w2, [x0, 536] + ldr w3, [x0, 12] + add w2, w2, 12959744 + add w2, w2, 256 + cmp w3, w2 + bhi .L3470 + ldr w2, [x0, 540] + mov w4, 5000 + add w2, w2, w4 + ldr x4, [x19, 3384] + ldr w4, [x4, 44] + cmp w4, w2 + bls .L3459 +.L3470: + add x1, x1, :lo12:.LANCHOR0 + ldr x1, [x1, 3384] + ldr w1, [x1, 44] + str w1, [x0, 540] + str w3, [x0, 536] + str wzr, [x0, 544] + b .L3459 .size gc_scan_static_data, .-gc_scan_static_data .align 2 .global gc_block_vpn_scan @@ -22348,1001 +22176,998 @@ gc_scan_static_data: gc_block_vpn_scan: stp x29, x30, [sp, -144]! add x29, sp, 0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] adrp x19, .LANCHOR0 add x20, x19, :lo12:.LANCHOR0 - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] - stp x27, x28, [sp,80] - ldr x1, [x20,1120] - ldrh w0, [x20,1088] - ldr w1, [x1,608] + stp x21, x22, [sp, 32] + stp x23, x24, [sp, 48] + stp x25, x26, [sp, 64] + stp x27, x28, [sp, 80] + ldr x1, [x20, 1128] + ldrh w0, [x20, 1096] + ldr w1, [x1, 608] cmp w1, w0 - bcs .L3486 + bcs .L3476 bl timer_get_time - ldr x21, [x20,1120] - ldr w1, [x21,604] - add w1, w1, 28672 - add w1, w1, 1328 + ldr x21, [x20, 1128] + mov w2, 30000 + ldr w1, [x21, 604] + add w1, w1, w2 cmp w0, w1 - bls .L3486 + bls .L3476 bl timer_get_time - str w0, [x21,604] - ldr x0, [x20,1120] - ldrh w2, [x20,1088] - ldr w1, [x0,600] + str w0, [x21, 604] + ldr x0, [x20, 1128] + ldrh w2, [x20, 1096] + ldr w1, [x0, 600] cmp w1, w2 - bcs .L3490 - ldr x2, [x20,3392] - ldrh w2, [x2,134] + bcs .L3478 + ldr x2, [x20, 3384] + ldrh w2, [x2, 134] cmp w1, w2 - bcs .L3491 -.L3490: + bcs .L3479 +.L3478: add x1, x19, :lo12:.LANCHOR0 - ldr x1, [x1,3392] - ldrh w1, [x1,134] - str w1, [x0,600] -.L3491: - ldr w26, [x0,600] - mov w0, 65535 - uxth w20, w26 - cmp w20, w0 - bne .L3492 - adrp x1, .LANCHOR4 - adrp x0, .LC0 - add x1, x1, :lo12:.LANCHOR4 - mov w2, 2504 - add x1, x1, 904 - add x0, x0, :lo12:.LC0 - bl printk - bl dump_stack -.L3492: - add x21, x19, :lo12:.LANCHOR0 - ldr x0, [x21,1120] - ldr w1, [x0,600] - add w1, w1, 1 - str w1, [x0,600] - ldr w1, [x0,608] - add w1, w1, 1 - str w1, [x0,608] - add x1, x29, 128 - mov w0, w20 - bl ftl_get_blk_list_in_sblk - uxth w1, w0 - cbz w1, .L3486 - uxtw x22, w20 - ldr x24, [x21,1096] - add x24, x24, x22, lsl 2 - ldrb w1, [x24,2] - tst w1, 192 - and w2, w1, 224 - beq .L3493 - cmp w2, 224 - beq .L3493 - ldr x1, [x21,1120] - ldrh w3, [x1,16] - cmp w3, w20 - beq .L3493 - ldrh w3, [x1,48] - cmp w3, w20 - beq .L3493 - ldrh w1, [x1,80] - cmp w1, w20 - bne .L3494 -.L3493: - cbnz w2, .L3486 - add x0, x19, :lo12:.LANCHOR0 - lsl x22, x22, 1 - ldr x0, [x0,1112] - ldrh w0, [x0,x22] - cbz w0, .L3495 - adrp x1, .LANCHOR4 - adrp x0, .LC0 - add x1, x1, :lo12:.LANCHOR4 - mov w2, 2521 - add x1, x1, 904 - add x0, x0, :lo12:.LC0 - bl printk - bl dump_stack -.L3495: - add x19, x19, :lo12:.LANCHOR0 - ldr x0, [x19,1112] - strh wzr, [x0,x22] - b .L3486 -.L3494: - and w0, w0, 65535 - add x1, x29, 144 - sub w0, w0, #1 - add x0, x1, w0, sxtw 1 - ldrh w21, [x0,-16] + ldr x1, [x1, 3384] + ldrh w1, [x1, 134] + str w1, [x0, 600] +.L3479: + ldr w25, [x0, 600] mov w0, 65535 + and w21, w25, 65535 cmp w21, w0 - bne .L3497 + bne .L3480 adrp x1, .LANCHOR4 - adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 - mov w2, 2529 - add x1, x1, 904 + add x1, x1, 920 + mov w2, 2504 + adrp x0, .LC0 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L3497: - adrp x25, .LANCHOR3 - ldrb w3, [x24,2] - add x2, x25, :lo12:.LANCHOR3 - mov w27, 1 - and w3, w3, 224 - cmp w3, 160 - ldrh w0, [x2,1384] - ldrh w1, [x2,1418] +.L3480: + add x14, x19, :lo12:.LANCHOR0 + add x15, x29, 128 + ldr x0, [x14, 1128] + ldr w1, [x0, 600] + add w1, w1, 1 + str w1, [x0, 600] + ldr w1, [x0, 608] + add w1, w1, 1 + str w1, [x0, 608] + mov x1, x15 + mov w0, w21 + bl ftl_get_blk_list_in_sblk + mov w1, w0 + tst w0, 65535 + beq .L3476 + ldr x24, [x14, 1104] + uxtw x23, w21 + mov w2, 224 + add x24, x24, x23, lsl 2 + ldrb w0, [x24, 2] + and w0, w0, 224 + cmp w0, 32 + ccmp w0, w2, 4, ne + beq .L3481 + cbz w0, .L3482 + ldr x0, [x14, 1128] + ldrh w2, [x0, 16] + cmp w2, w21 + beq .L3476 + ldrh w2, [x0, 48] + cmp w2, w21 + beq .L3476 + ldrh w0, [x0, 80] + cmp w0, w21 + bne .L3512 +.L3476: + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] + ldp x27, x28, [sp, 80] + ldp x29, x30, [sp], 144 + ret +.L3481: + cbnz w0, .L3476 +.L3482: + add x0, x19, :lo12:.LANCHOR0 + lsl x23, x23, 1 + ldr x0, [x0, 1120] + ldrh w0, [x0, x23] + cbz w0, .L3484 + adrp x1, .LANCHOR4 + add x1, x1, :lo12:.LANCHOR4 + add x1, x1, 920 + mov w2, 2521 + adrp x0, .LC0 + add x0, x0, :lo12:.LC0 + bl printk + bl dump_stack +.L3484: + add x19, x19, :lo12:.LANCHOR0 + ldr x0, [x19, 1120] + strh wzr, [x0, x23] + b .L3476 +.L3512: + and w1, w1, 65535 + mov w0, 65535 + sub w1, w1, #1 + ldrh w26, [x15, w1, sxtw 1] + cmp w26, w0 + bne .L3486 + adrp x1, .LANCHOR4 + add x1, x1, :lo12:.LANCHOR4 + add x1, x1, 920 + mov w2, 2529 + adrp x0, .LC0 + add x0, x0, :lo12:.LC0 + bl printk + bl dump_stack +.L3486: + adrp x20, .LANCHOR3 + add x2, x20, :lo12:.LANCHOR3 + ldrb w1, [x24, 2] + ldrh w22, [x2, 1410] + and w1, w1, 224 + ldrh w0, [x2, 1376] + cmp w1, 160 sub w0, w0, #1 - mul w1, w21, w1 - uxth w0, w0 - bne .L3498 - ldrb w3, [x2,1328] - cmp w3, 2 - uxth w27, w3 - orr w1, w1, w3, lsl 24 - bne .L3498 - ldrh w0, [x2,1346] - sub w0, w0, #1 - uxth w0, w0 -.L3498: - orr w21, w0, w1 + and w0, w0, 65535 + mul w22, w22, w26 + bne .L3496 + ldrb w1, [x2, 1320] + cmp w1, 2 + orr w22, w22, w1, lsl 24 + beq .L3488 + and w26, w1, 65535 +.L3487: + add x20, x20, :lo12:.LANCHOR3 + orr w22, w0, w22 mov w0, 1 bl buf_alloc - str w21, [x0,40] + str w22, [x0, 40] + mov x27, x0 mov w1, 1 - add x21, x25, :lo12:.LANCHOR3 - mov x23, x0 bl sblk_read_page - ldrh w0, [x21,1346] + ldrb w0, [x20, 1321] mov w1, 255 - ldrb w2, [x21,1329] - mul w2, w0, w2 - ldr x0, [x21,1320] + ldrh w2, [x20, 1338] + mul w2, w2, w0 + ldr x0, [x20, 1312] lsl w2, w2, 2 bl ftl_memset - ldr w0, [x23,52] + ldr w0, [x27, 52] cmp w0, 512 - beq .L3510 - cmn w0, #1 - cset w2, eq - cbz w2, .L3499 -.L3510: - mov w0, w20 - mov w1, 1 + ccmn w0, #1, 4, ne + bne .L3489 +.L3514: mov w2, 0 - b .L3523 -.L3499: - ldr x0, [x23,24] + mov w1, 1 + mov w0, w21 + bl gc_add_sblk + mov x0, x27 + bl zbuf_free + b .L3476 +.L3488: + ldrh w0, [x2, 1338] + mov w26, w1 + sub w0, w0, #1 + and w0, w0, 65535 + b .L3487 +.L3496: + mov w26, 1 + b .L3487 +.L3489: + ldr x0, [x27, 24] ldr w1, [x0] mov w0, 15555 movk w0, 0xf55f, lsl 16 cmp w1, w0 - beq .L3501 - mov w0, w20 - mov w1, 1 -.L3523: - bl gc_add_sblk - mov x0, x23 - bl zbuf_free - b .L3486 -.L3501: - ldrb w0, [x21,1329] + bne .L3514 + ldrh w0, [x20, 1376] mov x28, 0 - ldrh w1, [x21,1384] - mov w21, w28 - mul w0, w0, w1 - mul w27, w27, w0 - uxth w0, w27 - ldr x27, [x23,8] - str w0, [x29,108] - and w0, w26, 65535 - str w0, [x29,104] -.L3502: - ldr w0, [x29,108] - cmp w0, w28 - ble .L3524 - ldr w0, [x27,x28,lsl 2] - cmn w0, #1 - beq .L3503 - bl lpa_hash_get_ppa - str w0, [x29,124] - cmn w0, #1 - bne .L3504 - ldr w0, [x27,x28,lsl 2] - add x1, x29, 124 - mov w2, 0 - bl pm_log2phys -.L3504: + ldrb w1, [x20, 1321] + mov w22, 0 + mul w1, w1, w0 + mul w1, w26, w1 + ldr x26, [x27, 8] + and w0, w1, 65535 + str w0, [x29, 108] + and w0, w25, 65535 + str w0, [x29, 104] add x0, x19, :lo12:.LANCHOR0 - add x2, x25, :lo12:.LANCHOR3 - mov w1, 24 - ldrb w0, [x0,1257] - ldrh w4, [x2,1312] - sub w0, w1, w0 - mov w1, 1 - sub w0, w0, w4 - lsl w0, w1, w0 - ldr w1, [x29,124] - sub w0, w0, #1 - lsr w1, w1, w4 - and w0, w0, w1 - ldrb w1, [x2,1314] - udiv w0, w0, w1 - ldr w1, [x29,104] - cmp w0, w1 - bne .L3503 - add w21, w21, 1 - uxth w21, w21 -.L3503: - add x28, x28, 1 - b .L3502 -.L3524: - mov x0, x23 + str x0, [x29, 96] +.L3491: + ldr w0, [x29, 108] + cmp w0, w28 + bgt .L3494 + mov x0, x27 bl zbuf_free adrp x0, .LANCHOR2 - ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 8, .L3506 + ldr w0, [x0, #:lo12:.LANCHOR2] + tbz x0, 8, .L3495 add x0, x19, :lo12:.LANCHOR0 - ldrb w4, [x24,2] - uxth w1, w26 - mov w3, w21 + ldrb w4, [x24, 2] + mov w3, w22 + and w1, w25, 65535 + ldr x0, [x0, 1120] ubfx x4, x4, 5, 3 - ldr x2, [x0,1112] + ldrh w2, [x0, x23, lsl 1] adrp x0, .LC255 add x0, x0, :lo12:.LC255 - ldrh w2, [x2,x22,lsl 1] bl printk -.L3506: +.L3495: add x19, x19, :lo12:.LANCHOR0 - cmp w21, 31 - ldr x0, [x19,1112] - strh w21, [x0,x22,lsl 1] - bhi .L3486 - mov w0, w20 - mov w1, 1 + cmp w22, 31 + ldr x0, [x19, 1120] + strh w22, [x0, x23, lsl 1] + bhi .L3476 mov w2, 0 + mov w1, 1 + mov w0, w21 bl gc_add_sblk -.L3486: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 144 - ret + b .L3476 +.L3494: + ldr w0, [x26, x28, lsl 2] + cmn w0, #1 + beq .L3492 + bl lpa_hash_get_ppa + str w0, [x29, 124] + cmn w0, #1 + bne .L3493 + ldr w0, [x26, x28, lsl 2] + mov w2, 0 + add x1, x29, 124 + bl pm_log2phys +.L3493: + ldr x0, [x29, 96] + mov w1, 24 + ldrh w2, [x20, 1304] + ldrb w0, [x0, 1205] + sub w0, w1, w0 + sub w1, w0, w2 + mov w0, 1 + lsl w0, w0, w1 + ldr w1, [x29, 124] + sub w0, w0, #1 + lsr w1, w1, w2 + and w0, w0, w1 + ldrb w1, [x20, 1306] + udiv w0, w0, w1 + ldr w1, [x29, 104] + cmp w1, w0 + bne .L3492 + add w22, w22, 1 + and w22, w22, 65535 +.L3492: + add x28, x28, 1 + b .L3491 .size gc_block_vpn_scan, .-gc_block_vpn_scan .align 2 .global ftl_sblk_dump .type ftl_sblk_dump, %function ftl_sblk_dump: - sub sp, sp, #272 - uxth x0, w0 - stp x29, x30, [sp,48] + sub sp, sp, #288 + and x0, x0, 65535 + stp x29, x30, [sp, 48] add x29, sp, 48 - stp x19, x20, [sp,64] - adrp x20, .LANCHOR0 - str x0, [x29,128] - add x19, x20, :lo12:.LANCHOR0 - str x1, [x29,160] - stp x21, x22, [sp,80] - stp x23, x24, [sp,96] - stp x27, x28, [sp,128] - stp x25, x26, [sp,112] - lsl x24, x0, 2 - mov x22, x0 - ldr x0, [x19,1096] - mov x28, x20 - add x1, x0, x24 - ldrh w4, [x0,x24] - ldr w5, [x0,x24] + stp x19, x20, [sp, 64] + mov x20, x0 + stp x21, x22, [sp, 80] + adrp x21, .LANCHOR0 + add x19, x21, :lo12:.LANCHOR0 + stp x23, x24, [sp, 96] + stp x25, x26, [sp, 112] + lsl x23, x0, 2 + stp x27, x28, [sp, 128] + str x0, [x29, 136] + ldr x0, [x19, 1104] + str x1, [x29, 152] + add x1, x0, x23 + ldr w5, [x0, x23] + ldrb w2, [x1, 2] + mov w1, w20 + ldrh w4, [x0, x23] adrp x0, .LC256 - ldrb w3, [x1,2] - add x0, x0, :lo12:.LC256 - mov w1, w22 - and w4, w4, 2047 - ubfx x2, x3, 5, 3 ubfx x5, x5, 11, 8 - ubfx x3, x3, 3, 2 + add x0, x0, :lo12:.LC256 + ubfx x3, x2, 3, 2 + and w4, w4, 2047 + ubfx x2, x2, 5, 3 bl printk - mov w1, 65535 + str x21, [x29, 160] + mov w0, 65535 + cmp w20, w0 + beq .L3537 + ldrh w1, [x19, 1096] mov w0, 0 - cmp w22, w1 - beq .L3526 - ldrh w1, [x19,1088] - cmp w1, w22 - bls .L3526 - ldr x0, [x19,1096] - mov w25, 1 - adrp x27, .LANCHOR3 - add x0, x0, x24 - ldrb w0, [x0,2] + cmp w1, w20 + bls .L3515 + ldr x0, [x19, 1104] + adrp x28, .LANCHOR3 + add x0, x0, x23 + ldrb w0, [x0, 2] and w0, w0, 224 cmp w0, 160 - bne .L3527 - add x0, x27, :lo12:.LANCHOR3 - ldrb w25, [x0,1328] -.L3527: - add x1, x29, 208 - mov w0, w22 - strh w22, [x29,192] - mov w23, 0 + bne .L3539 + add x0, x28, :lo12:.LANCHOR3 + ldrb w24, [x0, 1320] +.L3517: + add x27, x29, 240 + mov w0, w20 + mov w19, 0 + strh w20, [x27, -32]! + add x1, x27, 16 bl ftl_get_blk_list_in_sblk - uxtb w1, w0 - mov w4, w0 - add x0, x27, :lo12:.LANCHOR3 - strb w1, [x29,201] - mov w3, w25 - strh wzr, [x29,194] - uxtb w4, w4 - ldrh w0, [x0,1384] - mov w20, w23 - strb wzr, [x29,197] - strh wzr, [x29,202] - mul w1, w1, w0 - add x0, x28, :lo12:.LANCHOR0 - strh w1, [x29,198] - ldr x1, [x0,1096] + add x2, x28, :lo12:.LANCHOR3 + and w1, w0, 255 + strb w1, [x29, 217] + and w4, w0, 255 + strh wzr, [x29, 210] + mov w3, w24 + ldrh w2, [x2, 1376] adrp x0, .LC257 + strb wzr, [x29, 213] add x0, x0, :lo12:.LC257 - add x1, x1, x24 - ldrb w2, [x1,2] - mov w1, w22 + strh wzr, [x29, 218] + mul w1, w1, w2 + strh w1, [x29, 214] + ldr x1, [x29, 160] + add x1, x1, :lo12:.LANCHOR0 + ldr x1, [x1, 1104] + add x1, x1, x23 + ldrb w2, [x1, 2] + mov w1, w20 ubfx x2, x2, 5, 3 bl printk mov w0, 1 bl buf_alloc - mov x26, x0 + stp wzr, wzr, [x29, 168] + mov x25, x0 + str wzr, [x29, 176] adrp x0, .LC195 - str w23, [x29,168] add x0, x0, :lo12:.LC195 - str x0, [x29,120] - adrp x0, .LANCHOR4 - str w23, [x29,144] - add x0, x0, :lo12:.LANCHOR4 - add x0, x0, 928 - str x0, [x29,112] -.L3528: - add x0, x27, :lo12:.LANCHOR3 - ldrh w0, [x0,1384] - cmp w0, w20 - bls .L3546 - lsl w0, w20, 1 - str wzr, [x29,172] - add w1, w0, w20 + str x0, [x29, 120] +.L3518: + add x0, x28, :lo12:.LANCHOR3 + ldrh w0, [x0, 1376] + cmp w0, w19 + bls .L3535 + lsl w0, w19, 1 + mov w22, 0 + sub w1, w0, #1 + add w0, w0, w19 sub w0, w0, #1 - sub w1, w1, #1 - str w0, [x29,136] - str w1, [x29,140] -.L3547: - ldrb w0, [x29,201] - ldr w1, [x29,172] - cmp w0, w1 - bls .L3544 - mov w21, 1 -.L3545: - cmp w21, w25 - ldr w0, [x29,172] - bhi .L3566 - add x1, x29, 192 - add x0, x1, w0, sxtw 1 - ldrh w3, [x0,16] - mov w0, 65535 - cmp w3, w0 - beq .L3529 - add x0, x27, :lo12:.LANCHOR3 - cmp w25, 3 - ldrh w2, [x0,1418] - mul w2, w3, w2 - bne .L3530 - add x1, x28, :lo12:.LANCHOR0 - ldrb w4, [x1,1268] - cbz w4, .L3531 - ldr w1, [x29,140] - b .L3564 -.L3531: - ldrb w0, [x1,1269] - lsl w19, w21, 24 - cbz w0, .L3533 - ldr w0, [x29,140] - add w2, w2, w0 - add w2, w2, w21 - b .L3565 -.L3533: - add w2, w2, w20 -.L3565: - orr w19, w19, w2 - b .L3532 -.L3530: - cmp w25, 2 - add w19, w2, w20 - bne .L3532 - ldr w1, [x29,136] -.L3564: - ldrb w19, [x0,1328] - add w2, w2, w1 - add w2, w2, w21 - orr w19, w2, w19, lsl 24 + stp w1, w0, [x29, 144] + b .L3536 +.L3539: + mov w24, 1 + b .L3517 .L3532: + ldr x0, [x29, 128] + ldrh w10, [x27, x0] + mov w0, 65535 + cmp w10, w0 + beq .L3519 + add x2, x28, :lo12:.LANCHOR3 + cmp w24, 3 + ldrh w8, [x2, 1410] + mul w1, w8, w10 + add w0, w21, w1 + bne .L3520 + ldr x3, [x29, 160] + add x3, x3, :lo12:.LANCHOR0 + ldrb w4, [x3, 1212] + cbz w4, .L3521 + ldrb w8, [x2, 1320] + ldr w1, [x29, 148] +.L3548: + add w0, w0, w1 + orr w26, w0, w8, lsl 24 + b .L3522 +.L3521: + ldrb w2, [x3, 1213] + lsl w8, w21, 24 + cbz w2, .L3523 + ldr w1, [x29, 148] + add w0, w0, w1 + orr w26, w0, w8 +.L3522: + str w26, [x25, 40] mov w1, 1 - str w19, [x26,40] - mov x0, x26 - str x3, [x29,104] + str w10, [x29, 108] + mov x0, x25 bl sblk_read_page - ldr x7, [x26,8] - mov w2, w20 - ldr x0, [x26,24] - ldr w9, [x26,52] - ldr w1, [x7,12] + ldr x1, [x25, 24] + mov w3, w26 + ldr x0, [x25, 8] + ldr w11, [x25, 52] + ldr w10, [x29, 108] + ldr w2, [x1, 12] + mov w4, w11 + str w2, [sp, 32] + str w11, [x29, 112] + ldr w2, [x1, 8] + str w2, [sp, 24] + ldr w2, [x1, 4] + str w2, [sp, 16] + mov w2, w19 + ldr w1, [x1] + str w1, [sp, 8] + ldr w1, [x0, 12] str w1, [sp] - mov w4, w9 - ldr x3, [x29,104] - ldr w1, [x0] - str w1, [sp,8] - str x9, [x29,104] - ldr w1, [x0,4] - str w1, [sp,16] - ldr w1, [x0,8] - str w1, [sp,24] - mov w1, w3 - mov w3, w19 - ldr w0, [x0,12] - str w0, [sp,32] - ldr x0, [x29,120] - ldr w5, [x7] - ldr w6, [x7,4] - ldr w7, [x7,8] + mov w1, w10 + ldp w5, w6, [x0] + ldr w7, [x0, 8] + ldr x0, [x29, 120] bl printk - ldr x9, [x29,104] - cmp w9, 512 - beq .L3551 - cmn w9, #1 - bne .L3535 -.L3551: - mov w0, 1 - str w0, [x29,168] -.L3535: + ldr w11, [x29, 112] + ldr w0, [x29, 168] + cmp w11, 512 + ccmn w11, #1, 4, ne + csinc w0, w0, wzr, ne + str w0, [x29, 168] mov x0, 35160 movk x0, 0x41, lsl 16 bl __const_udelay - add x0, x28, :lo12:.LANCHOR0 - ldr x0, [x0,1096] - add x0, x0, x24 - ldrb w0, [x0,2] + ldr x0, [x29, 160] + mov w1, 32 + add x0, x0, :lo12:.LANCHOR0 + ldr x0, [x0, 1104] + add x0, x0, x23 + ldrb w0, [x0, 2] and w0, w0, 224 - cmp w0, 32 - beq .L3529 cmp w0, 224 - cset w2, eq - cbnz w2, .L3529 - ldr x0, [x26,24] - str x2, [x29,104] - ldr w0, [x0,4] + ccmp w0, w1, 4, ne + beq .L3519 + ldr x0, [x25, 24] + ldr w0, [x0, 4] bl lpa_hash_get_ppa - str w0, [x29,188] + str w0, [x29, 204] cmn w0, #1 - ldr x2, [x29,104] - bne .L3537 - ldr x0, [x26,24] - add x1, x29, 188 - ldr w0, [x0,4] + bne .L3526 + ldr x0, [x25, 24] + mov w2, 0 + add x1, x29, 204 + ldr w0, [x0, 4] bl pm_log2phys -.L3537: - ldr w0, [x29,188] - cmp w0, w19 - bne .L3538 - ldr x2, [x26,24] - add w23, w23, 1 +.L3526: + ldr w0, [x29, 204] + cmp w26, w0 + bne .L3527 + ldr w0, [x29, 172] + mov w1, w26 + add w0, w0, 1 + str w0, [x29, 172] + ldr x0, [x25, 24] + ldr w3, [x29, 172] + ldr w2, [x0, 4] adrp x0, .LC258 - mov w1, w19 add x0, x0, :lo12:.LC258 - mov w3, w23 - ldr w2, [x2,4] bl printk -.L3538: - ldr x0, [x29,160] - cbz x0, .L3540 - ldr x0, [x29,144] - ubfiz x19, x0, 2, 32 - ldr x0, [x29,160] - ldr w2, [x0,x19] - ldr x0, [x26,24] - ldr w0, [x0,4] +.L3527: + ldr x0, [x29, 152] + cbz x0, .L3529 + ldr x0, [x29, 176] + ubfiz x3, x0, 2, 32 + ldr x0, [x29, 152] + ldr w2, [x0, x3] + ldr x0, [x25, 24] + ldr w0, [x0, 4] cmp w0, w2 - beq .L3541 + beq .L3530 adrp x0, .LANCHOR2 - ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 12, .L3541 + ldr w0, [x0, #:lo12:.LANCHOR2] + tbz x0, 12, .L3530 + ldr w1, [x29, 176] adrp x0, .LC259 - ldr w1, [x29,144] + str x3, [x29, 112] add x0, x0, :lo12:.LC259 bl printk -.L3541: - ldr x0, [x29,160] - ldr x1, [x26,24] - ldr w0, [x0,x19] - ldr w1, [x1,4] + ldr x3, [x29, 112] +.L3530: + ldr x1, [x25, 24] + ldr x0, [x29, 152] + ldr w1, [x1, 4] + ldr w0, [x0, x3] cmp w1, w0 - beq .L3540 + beq .L3529 cmn w0, #1 - beq .L3540 - adrp x0, .LC0 - ldr x1, [x29,112] + beq .L3529 + adrp x1, .LANCHOR4 + add x1, x1, :lo12:.LANCHOR4 + add x1, x1, 944 mov w2, 1575 + adrp x0, .LC0 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L3540: - ldr w0, [x29,144] - add w0, w0, 1 - str w0, [x29,144] .L3529: - add w21, w21, 1 - uxth w21, w21 - b .L3545 -.L3566: + ldr w0, [x29, 176] add w0, w0, 1 - uxth w0, w0 - str w0, [x29,172] - b .L3547 -.L3544: - add w20, w20, 1 - uxth w20, w20 - b .L3528 -.L3546: - mov x0, x26 + str w0, [x29, 176] +.L3519: + add w21, w21, 1 + and w21, w21, 65535 +.L3534: + cmp w24, w21 + bcs .L3532 + add w22, w22, 1 + and w22, w22, 65535 +.L3536: + ldrb w0, [x29, 217] + cmp w0, w22 + bls .L3533 + sxtw x0, w22 + mov w21, 1 + add x0, x0, 8 + lsl x0, x0, 1 + str x0, [x29, 128] + b .L3534 +.L3523: + add w1, w19, w1 + orr w26, w8, w1 + b .L3522 +.L3520: + cmp w24, 2 + bne .L3524 + ldrb w8, [x2, 1320] + ldr w1, [x29, 144] + b .L3548 +.L3524: + add w26, w19, w1 + b .L3522 +.L3533: + add w19, w19, 1 + and w19, w19, 65535 + b .L3518 +.L3535: + mov x0, x25 bl zbuf_free - add x0, x28, :lo12:.LANCHOR0 - ldr x3, [x29,128] - mov w1, w22 - ldr x2, [x0,1112] + ldr x0, [x29, 160] + ldr x1, [x29, 136] + add x0, x0, :lo12:.LANCHOR0 + ldr w3, [x29, 172] + ldr x0, [x0, 1120] + ldrh w2, [x0, x1, lsl 1] + mov w1, w20 adrp x0, .LC260 add x0, x0, :lo12:.LC260 - ldrh w2, [x2,x3,lsl 1] - mov w3, w23 bl printk - ldr w0, [x29,168] -.L3526: - 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, 272 + ldr w0, [x29, 168] +.L3515: + 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, 288 ret +.L3537: + mov w0, 0 + b .L3515 .size ftl_sblk_dump, .-ftl_sblk_dump .align 2 .global zftl_read .type zftl_read, %function zftl_read: - sub sp, sp, #192 - stp x29, x30, [sp,16] + sub sp, sp, #176 + stp x29, x30, [sp, 16] add x29, sp, 16 - stp x19, x20, [sp,32] - mov w19, w0 + stp x19, x20, [sp, 32] + mov w20, w0 adrp x0, .LANCHOR2 - stp x21, x22, [sp,48] - stp x23, x24, [sp,64] - ldr w0, [x0,#:lo12:.LANCHOR2] - mov w20, w1 - stp x25, x26, [sp,80] - stp x27, x28, [sp,96] - mov w23, w2 - mov x22, x3 - tbz x0, 12, .L3568 + stp x23, x24, [sp, 64] + stp x21, x22, [sp, 48] + mov w19, w1 + ldr w0, [x0, #:lo12:.LANCHOR2] + mov w24, w2 + stp x25, x26, [sp, 80] + mov x23, x3 + stp x27, x28, [sp, 96] + tbz x0, 12, .L3550 + mov w3, w2 adrp x0, .LC261 - mov w1, w19 + mov w2, w1 add x0, x0, :lo12:.LC261 - mov w2, w20 - mov w3, w23 + mov w1, w20 bl printk -.L3568: - cbnz w19, .L3569 +.L3550: + cbnz w20, .L3551 adrp x0, .LANCHOR0+1032 - mov w19, 24576 - ldr w1, [x0,#:lo12:.LANCHOR0+1032] - b .L3570 -.L3569: - cmp w19, 3 - mov w3, -1 - bhi .L3571 - lsl w19, w19, 13 - mov w1, 8192 -.L3570: - cmp w20, w1 - bcs .L3603 - cmp w23, w1 - cset w0, hi - cbnz w0, .L3603 - add w2, w20, w23 - mov w3, -1 - cmp w2, w1 - bhi .L3571 - adrp x21, .LANCHOR0 - add w20, w19, w20 - add x2, x21, :lo12:.LANCHOR0 - str w0, [x29,148] - adrp x0, .LC0 - add x0, x0, :lo12:.LC0 - str x0, [x29,136] - ldr x3, [x2,3392] + mov w20, 24576 + ldr w0, [x0, #:lo12:.LANCHOR0+1032] +.L3552: + cmp w0, w19 + ccmp w0, w24, 0, hi + bcc .L3585 + add w1, w19, w24 + cmp w0, w1 + bcc .L3585 + add w20, w20, w19 + adrp x19, .LANCHOR0 + add x0, x19, :lo12:.LANCHOR0 + adrp x21, .LANCHOR3 + ldr x1, [x0, 3384] + ldr w0, [x1, 24] + add w0, w0, w24 + str w0, [x1, 24] + add x0, x21, :lo12:.LANCHOR3 + add w1, w24, w20 + stp w1, wzr, [x29, 136] + sub w1, w1, #1 + ldrb w0, [x0, 1946] + udiv w26, w20, w0 + udiv w0, w1, w0 + mov w22, w26 + sub w25, w0, w26 + str w0, [x29, 132] + add w25, w25, 1 adrp x0, .LANCHOR4 add x0, x0, :lo12:.LANCHOR4 - add x0, x0, 944 - str x0, [x29,128] - ldr w1, [x3,24] - add w1, w1, w23 - str w1, [x3,24] - ldrb w1, [x2,3360] - udiv w2, w20, w1 - str w2, [x29,156] - add w2, w20, w23 - str w2, [x29,152] - sub w2, w2, #1 - udiv w1, w2, w1 - ldr w2, [x29,156] - str w1, [x29,144] - sub w25, w1, w2 - mov x19, x2 - add w25, w25, 1 -.L3572: - cbz w25, .L3645 - ldr w1, [x29,156] - add x0, x21, :lo12:.LANCHOR0 - cmp w19, w1 - ldr w1, [x29,144] - ldrb w0, [x0,3360] - cset w2, eq - cmp w19, w1 - cset w26, eq - uxth w24, w0 - cbnz w26, .L3607 - cbz w2, .L3573 - b .L3644 -.L3607: - cbz w2, .L3575 -.L3644: - udiv w26, w20, w0 - msub w26, w26, w0, w20 - uxth w0, w23 - uxth w26, w26 - sub w24, w24, w26 - uxth w24, w24 - cmp w24, w23 - csel w24, w0, w24, hi - b .L3573 -.L3575: - ldr w1, [x29,152] - mov w26, w2 - msub w24, w0, w19, w1 - uxtb w24, w24 -.L3573: - add x1, x21, :lo12:.LANCHOR0 + add x0, x0, 960 + str x0, [x29, 112] +.L3554: + cbnz w25, .L3582 + bl timer_get_time + adrp x1, .LANCHOR5+468 + str w0, [x1, #:lo12:.LANCHOR5+468] + ldr w0, [x29, 140] +.L3549: + 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 +.L3551: + cmp w20, 3 + bhi .L3585 + lsl w20, w20, 13 + mov w0, 8192 + b .L3552 +.L3582: + add x0, x21, :lo12:.LANCHOR3 + cmp w22, w26 + ldrb w1, [x0, 1946] + ldr w0, [x29, 132] + and w27, w1, 65535 + ccmp w22, w0, 4, ne + bne .L3586 + cmp w22, w26 + bne .L3556 + udiv w3, w20, w1 + and w0, w24, 65535 + msub w1, w3, w1, w20 + and w28, w1, 65535 + sub w27, w27, w28 + and w27, w27, 65535 + cmp w24, w27 + csel w27, w0, w27, cc +.L3555: + add x1, x19, :lo12:.LANCHOR0 mov w0, 0 - add x1, x1, 1312 -.L3578: - ldr w2, [x1,36] - cmp w2, w19 - bne .L3576 - ldrb w2, [x1,2] - tbz x2, 3, .L3576 - add x2, x21, :lo12:.LANCHOR0 - ubfiz x1, x0, 6, 32 - add x0, x2, x1 - ubfiz x26, x26, 9, 16 - lsl w2, w24, 9 - ubfiz x24, x24, 9, 16 - ldr x1, [x0,1320] - mov x0, x22 - add x22, x22, x24 - add x1, x1, x26 + add x1, x1, 1306 +.L3559: + ldr w2, [x1, 34] + cmp w22, w2 + bne .L3557 + ldrb w2, [x1] + tbz x2, 3, .L3557 + add x1, x19, :lo12:.LANCHOR0 + ubfiz x0, x0, 6, 32 + add x0, x1, x0 + lsl w2, w27, 9 + ubfiz x27, x27, 9, 16 + ubfiz x28, x28, 9, 16 + ldr x1, [x0, 1312] + mov x0, x23 + add x23, x23, x27 + add x1, x1, x28 bl ftl_memcpy - b .L3577 -.L3576: +.L3558: + add w22, w22, 1 + sub w25, w25, #1 +.L3565: + add x0, x19, :lo12:.LANCHOR0 + ldrb w0, [x0, 3353] + cmp w0, 2 + bls .L3566 + cbnz w25, .L3554 +.L3566: + add x2, x21, :lo12:.LANCHOR3 + ldrb w1, [x2, 1957] + cbz w1, .L3554 + ldrb w2, [x2, 1956] + add x0, x19, :lo12:.LANCHOR0 + add x0, x0, 1304 + add x0, x0, x2, lsl 6 + bl sblk_read_page + adrp x0, .LC0 + add x0, x0, :lo12:.LC0 + str x0, [x29, 120] +.L3568: + add x0, x21, :lo12:.LANCHOR3 + ldrb w1, [x0, 1957] + cbnz w1, .L3581 + mov w1, -1 + strb wzr, [x0, 1957] + strb w1, [x0, 1956] + b .L3554 +.L3556: + ldr w0, [x29, 136] + msub w27, w1, w22, w0 + and w27, w27, 255 +.L3586: + mov w28, 0 + b .L3555 +.L3557: add w0, w0, 1 add x1, x1, 64 cmp w0, 32 - bne .L3578 - mov w0, w19 + bne .L3559 + mov w0, w22 bl lpa_hash_get_ppa - str w0, [x29,172] + str w0, [x29, 156] cmn w0, #1 - bne .L3579 - mov w0, w19 - add x1, x29, 172 + bne .L3560 mov w2, 0 + add x1, x29, 156 + mov w0, w22 bl pm_log2phys -.L3579: - ldr w0, [x29,172] +.L3560: + ldr w0, [x29, 156] cmn w0, #1 - bne .L3580 - mov w24, 0 -.L3581: - add x0, x21, :lo12:.LANCHOR0 - ldrb w0, [x0,3360] - cmp w24, w0 - bcs .L3577 - madd w0, w19, w0, w24 - cmp w0, w20 - bcc .L3582 - ldr w1, [x29,152] - cmp w0, w1 - bcs .L3582 - mov x0, x22 - mov w1, 0 + bne .L3561 + add x28, x21, :lo12:.LANCHOR3 + mov w27, 0 +.L3562: + ldrb w0, [x28, 1946] + cmp w27, w0 + bcs .L3558 + madd w0, w22, w0, w27 + cmp w20, w0 + bhi .L3563 + ldr w1, [x29, 136] + cmp w1, w0 + bls .L3563 + mov x0, x23 + add x23, x23, 512 mov w2, 512 - add x22, x22, 512 + mov w1, 0 bl ftl_memset -.L3582: - add w24, w24, 1 - b .L3581 -.L3580: +.L3563: + add w27, w27, 1 + b .L3562 +.L3561: mov w0, 0 bl buf_alloc - cbz x0, .L3584 - add x2, x21, :lo12:.LANCHOR0 - ldr x3, [x2,3392] - ldr w2, [x3,40] + cbz x0, .L3565 + add x2, x19, :lo12:.LANCHOR0 + ldr x4, [x2, 3384] + ldr w2, [x4, 40] add w2, w2, 1 - str w2, [x3,40] - ldr w2, [x29,172] - strb w24, [x0,56] - ubfiz x24, x24, 9, 16 - str x22, [x0,16] - add x22, x22, x24 - str w2, [x0,40] - str w2, [x0,44] - str w19, [x0,36] - strb w26, [x0,57] + str w2, [x4, 40] + ldr w2, [x29, 156] + strb w27, [x0, 56] + ubfiz x27, x27, 9, 16 + str x23, [x0, 16] + add x23, x23, x27 + strb w28, [x0, 57] + stp w22, w2, [x0, 36] + str w2, [x0, 44] bl zftl_add_read_buf -.L3577: - add w19, w19, 1 - sub w25, w25, #1 -.L3584: - cbz w25, .L3608 - add x0, x21, :lo12:.LANCHOR0 - ldrb w0, [x0,3362] - cmp w0, 2 - bhi .L3572 -.L3608: - adrp x24, .LANCHOR3 - add x2, x24, :lo12:.LANCHOR3 - ldrb w1, [x2,1963] - cbz w1, .L3572 - ldrb w2, [x2,1962] - add x26, x21, :lo12:.LANCHOR0 - add x0, x26, 1312 - mov x27, x26 - add x0, x0, x2, lsl 6 - bl sblk_read_page -.L3587: - add x0, x24, :lo12:.LANCHOR3 - ldrb w1, [x0,1963] - cbz w1, .L3646 - ldrb w0, [x0,1962] + b .L3558 +.L3581: + ldrb w0, [x0, 1956] cmp w0, 255 - bne .L3588 - ldr x1, [x29,128] - mov w2, 1283 - ldr x0, [x29,136] + bne .L3569 + ldp x1, x0, [x29, 112] + mov w2, 1284 bl printk bl dump_stack -.L3588: - add x0, x24, :lo12:.LANCHOR3 - add x1, x27, 1312 - ldrb w28, [x0,1962] - lsl x2, x28, 6 - add x26, x1, x2 - ldrb w1, [x1,x2] - ldr w6, [x26,52] - strb w1, [x0,1962] - cmn w6, #1 - bne .L3589 - ldr x1, [x27,1120] - str w6, [x29,148] - ldr w0, [x1,552] +.L3569: + add x0, x21, :lo12:.LANCHOR3 + add x4, x19, :lo12:.LANCHOR0 + add x1, x4, 1304 + ldrb w8, [x0, 1956] + ubfiz x27, x8, 6, 8 + add x28, x1, x27 + sxtw x27, w8 + lsl x3, x27, 6 + add x2, x1, x3 + ldrb w1, [x1, x3] + ldr w9, [x2, 52] + strb w1, [x0, 1956] + cmn w9, #1 + bne .L3570 + ldr x1, [x4, 1128] + str w9, [x29, 140] + ldr w0, [x1, 552] add w0, w0, 1 - str w0, [x1,552] - b .L3590 -.L3589: - cmp w6, 256 - bne .L3590 - ldrb w4, [x27,1257] - mov w1, 24 - ldrh w5, [x0,1312] - mov w7, 1 - sub w4, w1, w4 - ldr w3, [x26,40] - sub w4, w4, w5 - ldr w2, [x26,36] - lsl w4, w7, w4 - lsr w5, w3, w5 - sub w4, w4, #1 - str x6, [x29,104] - and w5, w4, w5 - ldrb w4, [x0,1314] - adrp x0, .LC262 - str x7, [x29,112] - add x0, x0, :lo12:.LC262 - udiv w4, w5, w4 - str x4, [x29,120] - uxth w1, w4 - bl printk - ldr x4, [x29,120] - mov w2, 0 - ldr x7, [x29,112] - mov w0, w4 - mov w1, w7 - bl gc_add_sblk - ldr x6, [x29,104] -.L3590: - add x0, x27, 1312 - add x0, x0, x28, lsl 6 - ldr x3, [x0,24] - ldr w0, [x0,36] - ldr w1, [x3,4] + str w0, [x1, 552] +.L3571: + add x0, x19, :lo12:.LANCHOR0 + add x0, x0, 1304 + add x0, x0, x27, lsl 6 + ldr x3, [x0, 24] + ldr w0, [x0, 36] + ldr w1, [x3, 4] cmp w1, w0 - bne .L3609 - cmn w6, #1 - bne .L3591 -.L3609: - add x0, x27, 1312 - ldrb w4, [x27,3360] - add x0, x0, x28, lsl 6 - ldrb w6, [x27,1257] - mov w5, 24 - sub w5, w5, w6 - ldrb w1, [x0,56] - ldr x2, [x0,8] - ldr x7, [x0,16] + bne .L3572 + cmn w9, #1 + bne .L3573 +.L3572: + add x0, x21, :lo12:.LANCHOR3 + add x5, x19, :lo12:.LANCHOR0 + ldrb w4, [x0, 1946] + add x0, x5, 1304 + add x0, x0, x27, lsl 6 + ldrb w6, [x5, 1205] + mov w5, 1 + ldrb w1, [x0, 56] + lsl w5, w5, w6 + ldp x2, x7, [x0, 8] cmp w1, w4 - ldr w1, [x0,40] - mov w0, 1 - lsl w0, w0, w6 + sub w5, w5, #1 + ldr w1, [x0, 40] + mov w0, 24 + sub w0, w0, w6 csel x2, x7, x2, cs - sub w0, w0, #1 - lsr w6, w1, w5 - lsl w5, w0, w5 - and w0, w0, w6 - bic w1, w1, w5 + lsl w6, w5, w0 + lsr w0, w1, w0 + bic w1, w1, w6 + and w0, w0, w5 bl flash_read_page_en - mov w6, w0 -.L3591: - cmn w6, #1 - cset w11, eq - cbnz w11, .L3610 - add x0, x27, 1312 - add x0, x0, x28, lsl 6 - ldr x1, [x0,24] - ldr w0, [x0,36] - ldr w1, [x1,4] + mov w9, w0 +.L3573: + add x0, x19, :lo12:.LANCHOR0 + add x0, x0, 1304 + add x0, x0, x27, lsl 6 + ldr x1, [x0, 24] + ldr w0, [x0, 36] + ldr w1, [x1, 4] cmp w1, w0 - beq .L3631 -.L3610: - ldr x1, [x27,1120] - add x10, x27, 1312 - add x10, x10, x28, lsl 6 - mov w2, w6 - add x10, x10, 32 - str x11, [x29,112] - ldr w0, [x1,552] + bne .L3575 + cmn w9, #1 + bne .L3576 +.L3575: + add x11, x19, :lo12:.LANCHOR0 + str w9, [x29, 128] + add x10, x11, 1304 + add x10, x10, x27, lsl 6 + stp x11, x10, [x29, 96] + ldr x1, [x11, 1128] + ldr w0, [x1, 552] add w0, w0, 1 - str w0, [x1,552] - ldr x7, [x10,-8] - ldrb w1, [x10,-31] - ldr w0, [x7,12] - str w0, [sp] + str w0, [x1, 552] + ldr x0, [x10, 24] + ldrb w1, [x10, 1] + ldr w2, [x0, 12] + str w2, [sp] + mov w2, w9 + ldp w3, w4, [x10, 36] + ldp w5, w6, [x0] + ldr w7, [x0, 8] adrp x0, .LC263 add x0, x0, :lo12:.LC263 - ldr w3, [x10,4] - ldr w4, [x10,8] - ldr w5, [x7] - ldr w6, [x7,4] - ldr w7, [x7,8] - str x10, [x29,120] bl printk - add x3, x24, :lo12:.LANCHOR3 - ldrb w2, [x27,1257] - mov w1, 24 - ldr x10, [x29,120] - sub w2, w1, w2 - mov w1, 1 - ldrh w0, [x3,1312] - sub w2, w2, w0 - lsl w2, w1, w2 - ldr w1, [x10,8] - sub w2, w2, #1 - lsr w0, w1, w0 - ldrb w1, [x3,1314] - and w0, w2, w0 - udiv w0, w0, w1 + ldp x11, x10, [x29, 96] + add x2, x21, :lo12:.LANCHOR3 + mov w0, 24 + ldrb w1, [x11, 1205] + ldrh w3, [x2, 1304] + sub w0, w0, w1 + ldrb w2, [x2, 1306] + sub w1, w0, w3 + mov w0, 1 + lsl w0, w0, w1 + ldr w1, [x10, 40] + sub w0, w0, #1 + lsr w1, w1, w3 + and w0, w0, w1 mov x1, 0 + udiv w0, w0, w2 bl ftl_sblk_dump - ldr x11, [x29,112] - cbnz w11, .L3611 -.L3631: - add x0, x27, 1312 - add x0, x0, x28, lsl 6 - ldr x1, [x0,24] - ldr w0, [x0,36] - ldr w1, [x1,4] + ldr w9, [x29, 128] +.L3576: + add x0, x19, :lo12:.LANCHOR0 + add x0, x0, 1304 + add x0, x0, x27, lsl 6 + ldr x1, [x0, 24] + ldr w0, [x0, 36] + ldr w1, [x1, 4] cmp w1, w0 - beq .L3596 -.L3611: - ldr x1, [x29,128] - mov w2, 1319 - ldr x0, [x29,136] + bne .L3577 + cmn w9, #1 + bne .L3578 +.L3577: + ldp x1, x0, [x29, 112] + mov w2, 1320 bl printk bl dump_stack -.L3596: - add x0, x27, 1312 - ldrb w3, [x27,3360] - add x0, x0, x28, lsl 6 - ldrb w2, [x0,56] - cmp w3, w2 - bls .L3598 - ldrb w3, [x0,57] +.L3578: + add x0, x19, :lo12:.LANCHOR0 + add x0, x0, 1304 + add x8, x0, x27, lsl 6 + add x0, x21, :lo12:.LANCHOR3 + ldrb w2, [x8, 56] + ldrb w0, [x0, 1946] + cmp w0, w2 + bls .L3579 + ldr x0, [x8, 8] lsl w2, w2, 9 - ldr x1, [x0,8] - ldr x0, [x0,16] - add x1, x1, x3, lsl 9 + ldrb w1, [x8, 57] + add x1, x0, x1, lsl 9 + ldr x0, [x8, 16] bl ftl_memcpy - b .L3599 -.L3598: - ldrb w1, [x0,2] - and w1, w1, -9 - strb w1, [x0,2] -.L3599: - mov x1, x26 - add x0, x27, 3364 +.L3580: + mov x1, x28 + add x0, x19, :lo12:.LANCHOR0 + add x0, x0, 3355 bl buf_remove_buf - mov x0, x26 + mov x0, x28 bl zbuf_free - add x1, x24, :lo12:.LANCHOR3 - ldrb w0, [x1,1963] + add x1, x21, :lo12:.LANCHOR3 + ldrb w0, [x1, 1957] sub w0, w0, #1 - strb w0, [x1,1963] - b .L3587 -.L3646: - mov w2, -1 - strb w1, [x0,1963] - strb w2, [x0,1962] - b .L3572 -.L3645: - bl timer_get_time - adrp x1, .LANCHOR5+1004 - ldr w3, [x29,148] - str w0, [x1,#:lo12:.LANCHOR5+1004] + strb w0, [x1, 1957] + b .L3568 +.L3570: + cmp w9, 256 + bne .L3571 + ldrb w5, [x4, 1205] + mov w4, 24 + ldrh w1, [x0, 1304] + sub w4, w4, w5 + ldr w3, [x2, 40] + sub w4, w4, w1 + mov w5, 1 + ldrb w0, [x0, 1306] + lsl w4, w5, w4 + sub w4, w4, #1 + lsr w1, w3, w1 + and w4, w4, w1 + ldr w2, [x2, 36] + str w9, [x29, 96] + udiv w4, w4, w0 + str w5, [x29, 104] + adrp x0, .LC262 + add x0, x0, :lo12:.LC262 + and w1, w4, 65535 + str w4, [x29, 128] + bl printk + ldr w5, [x29, 104] + mov w2, 0 + ldr w4, [x29, 128] + mov w1, w5 + mov w0, w4 + bl gc_add_sblk + ldr w9, [x29, 96] b .L3571 -.L3603: - mov w3, -1 -.L3571: - sub sp, x29, #16 - mov w0, w3 - 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, 192 - ret +.L3579: + ldrb w0, [x8, 2] + and w0, w0, -9 + strb w0, [x8, 2] + b .L3580 +.L3585: + mov w0, -1 + b .L3549 .size zftl_read, .-zftl_read .align 2 .global zftl_vendor_read .type zftl_vendor_read, %function zftl_vendor_read: stp x29, x30, [sp, -16]! - mov w4, w1 mov x3, x2 - add x29, sp, 0 + mov w2, w1 add w1, w0, 512 - mov w2, w4 + add x29, sp, 0 mov w0, 2 bl zftl_read ldp x29, x30, [sp], 16 @@ -23353,12 +23178,10 @@ zftl_vendor_read: .type zftl_sys_read, %function zftl_sys_read: stp x29, x30, [sp, -16]! - mov w5, w0 - mov w4, w1 - add x29, sp, 0 mov x3, x2 - mov w1, w5 - mov w2, w4 + mov w2, w1 + mov w1, w0 + add x29, sp, 0 mov w0, 2 bl zftl_read ldp x29, x30, [sp], 16 @@ -23369,354 +23192,357 @@ zftl_sys_read: zftl_debug_proc_write: sub sp, sp, #224 cmp x2, 79 - mov x0, -22 - stp x29, x30, [sp,32] + stp x29, x30, [sp, 32] add x29, sp, 32 - stp x19, x20, [sp,48] - stp x21, x22, [sp,64] + stp x19, x20, [sp, 48] add x19, x29, 112 - str x19, [x29,104] - stp x23, x24, [sp,80] - stp x25, x26, [sp,96] + stp x21, x22, [sp, 64] + stp x23, x24, [sp, 80] + stp x25, x26, [sp, 96] + stp x27, x28, [sp, 112] + str x19, [x29, 104] + bhi .L3623 mov x21, x2 - bhi .L3650 mov x0, x19 bl rk_copy_from_user - mov x22, x0 - mov x0, -14 - cbnz x22, .L3650 + mov x1, -14 + cbnz x0, .L3605 + mov x1, x19 + strb wzr, [x19, x21] adrp x0, .LC264 - mov x1, x19 add x0, x0, :lo12:.LC264 - strb w22, [x19,x21] bl printk - adrp x0, .LC265 mov x1, x19 + adrp x0, .LC265 add x0, x0, :lo12:.LC265 - mov w2, 1 mov w3, 16 + mov w2, 1 bl rknand_print_hex bl rknand_device_lock + mov x2, 7 adrp x1, .LC266 mov x0, x19 add x1, x1, :lo12:.LC266 - mov x2, 7 bl memcmp - cbnz w0, .L3651 - adrp x23, .LANCHOR0 - adrp x0, .LC267 - add x19, x23, :lo12:.LANCHOR0 - add x0, x0, :lo12:.LC267 - mov w2, 4 + mov w22, w0 + cbnz w0, .L3607 + adrp x19, .LANCHOR0 + add x19, x19, :lo12:.LANCHOR0 adrp x20, .LANCHOR5 - ldr x3, [x19,3392] - add x1, x3, 704 - ldrh w3, [x3,698] + add x20, x20, :lo12:.LANCHOR5 + mov w2, 4 + adrp x0, .LC267 + ldr x1, [x19, 3384] + add x0, x0, :lo12:.LC267 + mov w23, 65535 + add x1, x1, 704 + ldrh w3, [x1, -6] bl rknand_print_hex - add x3, x20, :lo12:.LANCHOR5 - ldr x1, [x19,3392] + ldrh w3, [x20, 220] adrp x0, .LC268 + ldr x1, [x19, 3384] mov w2, 2 add x0, x0, :lo12:.LC268 add x1, x1, 416 - ldrh w3, [x3,264] - mov w19, w22 - mov w22, 65535 bl rknand_print_hex -.L3652: - add x0, x20, :lo12:.LANCHOR5 - ldrh w0, [x0,264] - cmp w19, w0 - bge .L3655 +.L3608: + ldrh w0, [x20, 220] + cmp w22, w0 + blt .L3610 +.L3611: + bl rknand_device_unlock + mov x1, x21 +.L3605: + ldp x19, x20, [sp, 48] + mov x0, x1 + ldp x21, x22, [sp, 64] + ldp x23, x24, [sp, 80] + ldp x25, x26, [sp, 96] + ldp x27, x28, [sp, 112] + ldp x29, x30, [sp, 32] + add sp, sp, 224 + ret +.L3610: mov w0, 300 bl msleep - add x0, x23, :lo12:.LANCHOR0 - ldr x0, [x0,3392] - add x0, x0, w19, sxtw 1 - ldrh w0, [x0,416] - cmp w0, w22 - beq .L3653 + ldr x0, [x19, 3384] + add x0, x0, w22, sxtw 1 + ldrh w0, [x0, 416] + cmp w0, w23 + beq .L3609 mov x1, 0 bl ftl_sblk_dump -.L3653: - add w19, w19, 1 - b .L3652 -.L3651: +.L3609: + add w22, w22, 1 + b .L3608 +.L3607: adrp x1, .LC269 - mov x0, x19 - add x1, x1, :lo12:.LC269 mov x2, 7 + add x1, x1, :lo12:.LC269 + mov x0, x19 bl memcmp - cbnz w0, .L3656 + cbnz w0, .L3612 adrp x22, .LANCHOR0 - adrp x0, .LC267 add x20, x22, :lo12:.LANCHOR0 - add x0, x0, :lo12:.LC267 mov w2, 4 - adrp x26, .LC272 - add x26, x26, :lo12:.LC272 - ldr x3, [x20,3392] - add x1, x3, 704 - ldrh w3, [x3,698] + adrp x0, .LC267 + add x0, x0, :lo12:.LC267 + adrp x25, .LC271 + ldr x1, [x20, 3384] + adrp x24, .LC272 + add x25, x25, :lo12:.LC271 + add x24, x24, :lo12:.LC272 + add x1, x1, 704 + ldrh w3, [x1, -6] bl rknand_print_hex - adrp x3, .LANCHOR5+264 - ldr x1, [x20,3392] - adrp x0, .LC268 + adrp x0, .LANCHOR5+220 + ldr x1, [x20, 3384] mov w2, 2 - add x1, x1, 416 - add x0, x0, :lo12:.LC268 - ldrh w3, [x3,#:lo12:.LANCHOR5+264] add x20, x29, 192 + ldrh w3, [x0, #:lo12:.LANCHOR5+220] + add x1, x1, 416 + adrp x0, .LC268 + add x0, x0, :lo12:.LC268 bl rknand_print_hex mov w0, 50 bl msleep - adrp x0, .LC270 add x1, x19, 7 + adrp x0, .LC270 + str x1, [x20, -88]! add x0, x0, :lo12:.LC270 - str x1, [x20,-88]! - mov x19, x22 - adrp x22, .LC271 bl printk - add x22, x22, :lo12:.LC271 - ldr x0, [x29,104] + ldr x0, [x29, 104] mov x1, x20 - bl rk_simple_strtoull.constprop.34 - mov w24, w0 - adrp x2, .LANCHOR3 - str w0, [x29,100] - add x2, x2, :lo12:.LANCHOR3 - uxth w25, w0 - add x20, x2, 1968 - add x23, x2, 2480 -.L3658: - ldrh w1, [x20] - mov x0, x22 - ldrh w2, [x20,2] + adrp x20, .LANCHOR3 + bl rk_simple_strtoull.constprop.33 + mov w23, w0 + add x1, x20, :lo12:.LANCHOR3 + and w27, w0, 65535 + add x19, x1, 1960 + add x26, x1, 2472 + mov x28, x1 + str w0, [x29, 100] +.L3614: + ldrh w2, [x19, 2] + mov x0, x25 + ldrh w1, [x19] bl printk - ldrh w0, [x20] - cmp w0, w25 - bne .L3657 - add x0, x19, :lo12:.LANCHOR0 - ldr x1, [x20,8] + ldrh w0, [x19] + cmp w0, w27 + bne .L3613 + ldrb w3, [x28, 1946] mov w2, 4 - ldrb w3, [x0,3360] - mov x0, x26 + ldr x1, [x19, 8] + mov x0, x24 lsl w3, w3, 7 bl rknand_print_hex mov w0, 50 bl msleep -.L3657: - add x20, x20, 16 - cmp x20, x23 - bne .L3658 +.L3613: + add x19, x19, 16 + cmp x19, x26 + bne .L3614 + add x22, x22, :lo12:.LANCHOR0 mov w0, 300 - add x19, x19, :lo12:.LANCHOR0 bl msleep + add x20, x20, :lo12:.LANCHOR3 mov w0, 1 bl buf_alloc - mov x20, x0 - ldr x1, [x19,3392] - add x1, x1, w24, uxth 2 - ldr w1, [x1,704] - str w1, [x29,100] - str w1, [x0,40] + ldr x1, [x22, 3384] + mov x19, x0 + add x1, x1, w23, uxth 2 + ldr w1, [x1, 704] + str w1, [x0, 40] + str w1, [x29, 100] mov w1, 1 bl sblk_read_page - ldr x7, [x20,24] - ldr x6, [x20,8] - ldr w1, [x29,100] - ldr w0, [x7,4] - str w0, [sp] - ldr w0, [x7,8] - str w0, [sp,8] - ldr w0, [x7,12] - str w0, [sp,16] + ldr x1, [x19, 24] + ldr x0, [x19, 8] + ldr w2, [x1, 12] + str w2, [sp, 16] + ldr w2, [x1, 8] + str w2, [sp, 8] + ldr w2, [x1, 4] + str w2, [sp] + ldp w3, w4, [x0] + ldp w5, w6, [x0, 8] adrp x0, .LC245 + ldr w7, [x1] add x0, x0, :lo12:.LC245 - ldr w3, [x6] - ldr w4, [x6,4] - ldr w5, [x6,8] - ldr w2, [x20,52] - ldr w6, [x6,12] - ldr w7, [x7] + ldr w2, [x19, 52] + ldr w1, [x29, 100] bl printk - ldrb w3, [x19,3360] + ldrb w3, [x20, 1946] adrp x0, .LC273 - ldr x1, [x20,8] + ldr x1, [x19, 8] add x0, x0, :lo12:.LC273 mov w2, 4 lsl w3, w3, 7 +.L3630: bl rknand_print_hex - mov x0, x20 - b .L3673 -.L3656: + mov x0, x19 + bl zbuf_free + b .L3611 +.L3612: adrp x1, .LC274 - mov x0, x19 - add x1, x1, :lo12:.LC274 mov x2, 7 - bl memcmp - cbnz w0, .L3659 - bl dump_ftl_info - b .L3655 -.L3659: - adrp x1, .LC275 + add x1, x1, :lo12:.LC274 mov x0, x19 - add x1, x1, :lo12:.LC275 - mov x2, 9 bl memcmp - cbnz w0, .L3660 + cbnz w0, .L3615 + bl dump_ftl_info + b .L3611 +.L3615: + adrp x1, .LC275 + mov x2, 9 + add x1, x1, :lo12:.LC275 + mov x0, x19 + bl memcmp + cbnz w0, .L3616 add x1, x29, 192 add x0, x19, 9 - str x0, [x1,-88]! - bl rk_simple_strtoull.constprop.34 - str w0, [x29,100] - adrp x1, .LANCHOR3+1416 - strh w0, [x1,#:lo12:.LANCHOR3+1416] + str x0, [x1, -88]! + bl rk_simple_strtoull.constprop.33 + str w0, [x29, 100] + adrp x1, .LANCHOR3+1408 + strh w0, [x1, #:lo12:.LANCHOR3+1408] bl dump_all_list_info - b .L3655 -.L3660: + b .L3611 +.L3616: adrp x1, .LC276 - mov x0, x19 + mov x2, 8 add x1, x1, :lo12:.LC276 - mov x2, 8 - bl memcmp - cbz w0, .L3655 - adrp x1, .LC277 mov x0, x19 - add x1, x1, :lo12:.LC277 - mov x2, 8 bl memcmp - cbnz w0, .L3662 + cbz w0, .L3611 + adrp x1, .LC277 + mov x2, 8 + add x1, x1, :lo12:.LC277 + mov x0, x19 + bl memcmp + cbnz w0, .L3618 add x20, x29, 192 - adrp x0, .LC270 add x1, x19, 8 + adrp x0, .LC270 add x0, x0, :lo12:.LC270 - str x1, [x20,-88]! + str x1, [x20, -88]! bl printk - ldr x0, [x29,104] + ldr x0, [x29, 104] mov x1, x20 - adrp x20, .LANCHOR0 - add x20, x20, :lo12:.LANCHOR0 - bl rk_simple_strtoull.constprop.34 - str w0, [x29,100] + adrp x20, .LANCHOR3 + add x20, x20, :lo12:.LANCHOR3 + bl rk_simple_strtoull.constprop.33 + str w0, [x29, 100] mov w0, 1 bl buf_alloc + ldr w1, [x29, 100] mov x19, x0 - ldr w1, [x29,100] - str w1, [x0,40] + str w1, [x0, 40] mov w1, 1 bl sblk_read_page - ldr x7, [x19,24] - ldr x6, [x19,8] - ldr w1, [x29,100] - ldr w0, [x7,4] - str w0, [sp] - ldr w0, [x7,8] - str w0, [sp,8] - ldr w0, [x7,12] - str w0, [sp,16] + ldr x1, [x19, 24] + ldr x0, [x19, 8] + ldr w2, [x1, 12] + str w2, [sp, 16] + ldr w2, [x1, 8] + str w2, [sp, 8] + ldr w2, [x1, 4] + str w2, [sp] + ldp w3, w4, [x0] + ldp w5, w6, [x0, 8] adrp x0, .LC245 + ldr w7, [x1] add x0, x0, :lo12:.LC245 - ldr w4, [x6,4] - ldr w5, [x6,8] - ldr w3, [x6] - ldr w7, [x7] - ldr w6, [x6,12] - ldr w2, [x19,52] + ldr w2, [x19, 52] + ldr w1, [x29, 100] bl printk - ldrb w3, [x20,3360] - adrp x0, .LC218 - ldr x1, [x19,8] - add x0, x0, :lo12:.LC218 + ldr x1, [x19, 8] mov w2, 4 + ldrb w3, [x20, 1946] + adrp x0, .LC218 + add x0, x0, :lo12:.LC218 lsl w3, w3, 7 bl rknand_print_hex - ldrb w3, [x20,3360] + ldrb w3, [x20, 1946] adrp x0, .LC240 - ldr x1, [x19,24] - add x0, x0, :lo12:.LC240 mov w2, 4 + add x0, x0, :lo12:.LC240 + ldr x1, [x19, 24] lsl w3, w3, 1 - bl rknand_print_hex - mov x0, x19 -.L3673: - bl zbuf_free - b .L3655 -.L3662: + b .L3630 +.L3618: adrp x1, .LC278 - mov x0, x19 - add x1, x1, :lo12:.LC278 mov x2, 8 - bl memcmp - cbnz w0, .L3663 - add x20, x29, 192 - adrp x0, .LC270 - add x1, x19, 8 - add x0, x0, :lo12:.LC270 - str x1, [x20,-88]! - bl printk - ldr x0, [x29,104] - mov x1, x20 - bl rk_simple_strtoull.constprop.34 - str w0, [x29,100] - mov x1, x22 - bl ftl_sblk_dump - b .L3655 -.L3663: - adrp x1, .LC279 + add x1, x1, :lo12:.LC278 mov x0, x19 - add x1, x1, :lo12:.LC279 - mov x2, 10 bl memcmp - cbnz w0, .L3664 + cbnz w0, .L3619 add x20, x29, 192 + add x1, x19, 8 adrp x0, .LC270 - add x1, x19, 10 add x0, x0, :lo12:.LC270 - str x1, [x20,-88]! + str x1, [x20, -88]! bl printk - ldr x0, [x29,104] + ldr x0, [x29, 104] mov x1, x20 - bl rk_simple_strtoull.constprop.34 - str w0, [x29,100] + bl rk_simple_strtoull.constprop.33 + str w0, [x29, 100] + mov x1, 0 + bl ftl_sblk_dump + b .L3611 +.L3619: + adrp x1, .LC279 + mov x2, 10 + add x1, x1, :lo12:.LC279 + mov x0, x19 + bl memcmp + cbnz w0, .L3620 + add x20, x29, 192 + add x1, x19, 10 + adrp x0, .LC270 + add x0, x0, :lo12:.LC270 + str x1, [x20, -88]! + bl printk + ldr x0, [x29, 104] + mov x1, x20 + bl rk_simple_strtoull.constprop.33 + str w0, [x29, 100] adrp x1, .LANCHOR2 - str w0, [x1,#:lo12:.LANCHOR2] - b .L3655 -.L3664: + str w0, [x1, #:lo12:.LANCHOR2] + b .L3611 +.L3620: adrp x1, .LC280 mov x2, 8 - mov x0, x19 add x1, x1, :lo12:.LC280 + mov x0, x19 bl memcmp - mov w2, w0 - str x2, [x29,88] - cbnz w0, .L3665 + cbnz w0, .L3621 add x1, x19, 8 - adrp x0, .LC270 add x19, x29, 192 + adrp x0, .LC270 add x0, x0, :lo12:.LC270 - str x1, [x19,-88]! + str x1, [x19, -88]! bl printk - ldr x0, [x29,104] + ldr x0, [x29, 104] mov x1, x19 - bl rk_simple_strtoull.constprop.34 + bl rk_simple_strtoull.constprop.33 mov w19, w0 bl lpa_hash_get_ppa - str w0, [x29,100] + str w0, [x29, 100] cmn w0, #1 - ldr x2, [x29,88] - bne .L3666 - mov w0, w19 + bne .L3622 + mov w2, 0 add x1, x29, 100 + mov w0, w19 bl pm_log2phys -.L3666: - adrp x0, .LC281 - ldr w2, [x29,100] +.L3622: + ldr w2, [x29, 100] mov w1, w19 + adrp x0, .LC281 add x0, x0, :lo12:.LC281 bl printk - b .L3655 -.L3665: + b .L3611 +.L3621: adrp x0, .LC282 add x0, x0, :lo12:.LC282 bl printk @@ -23744,157 +23570,146 @@ zftl_debug_proc_write: adrp x0, .LC290 add x0, x0, :lo12:.LC290 bl printk -.L3655: - bl rknand_device_unlock - mov x0, x21 -.L3650: - sub sp, x29, #32 - ldp x19, x20, [sp,48] - ldp x21, x22, [sp,64] - ldp x23, x24, [sp,80] - ldp x25, x26, [sp,96] - ldp x29, x30, [sp,32] - add sp, sp, 224 - ret + b .L3611 +.L3623: + mov x1, -22 + b .L3605 .size zftl_debug_proc_write, .-zftl_debug_proc_write .align 2 .global ftl_update_l2p_map .type ftl_update_l2p_map, %function ftl_update_l2p_map: - stp x29, x30, [sp, -144]! + stp x29, x30, [sp, -128]! add x29, sp, 0 - stp x21, x22, [sp,32] + stp x21, x22, [sp, 32] mov x22, x0 - adrp x0, .LANCHOR3 - add x1, x0, :lo12:.LANCHOR3 - str x0, [x29,120] - stp x19, x20, [sp,16] - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] - stp x27, x28, [sp,80] - ldrb w2, [x22,9] - ldrh w23, [x1,1384] - ldrh w19, [x22,12] - ldr x1, [x1,1936] - mul w23, w23, w2 - add x19, x1, x19, lsl 2 - add x1, x19, w23, sxtw 2 - ldr w1, [x1,-4] - cmn w1, #1 - beq .L3675 + stp x25, x26, [sp, 64] + adrp x26, .LANCHOR3 + add x0, x26, :lo12:.LANCHOR3 + stp x19, x20, [sp, 16] + stp x23, x24, [sp, 48] + stp x27, x28, [sp, 80] + ldrh w23, [x0, 1376] + ldrb w1, [x22, 9] + ldr x0, [x0, 1928] + ldrh w19, [x22, 12] + mul w23, w23, w1 + add x19, x0, x19, lsl 2 + add x0, x19, w23, sxtw 2 + ldr w0, [x0, -4] + cmn w0, #1 + beq .L3632 adrp x1, .LANCHOR4 - adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 + add x1, x1, 976 mov w2, 1998 - add x1, x1, 960 + adrp x0, .LC0 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L3675: - adrp x0, .LC292 - mov x28, 0 - add x0, x0, :lo12:.LC292 - adrp x27, .LC291 - str x0, [x29,112] - adrp x0, .LC293 - add x0, x0, :lo12:.LC293 - mov w21, w28 - str x0, [x29,104] - add x27, x27, :lo12:.LC291 -.L3676: - cmp w28, w23 - mov w24, w28 - bge .L3703 - ldr w2, [x19,x28,lsl 2] - cmn w2, #1 - beq .L3677 - adrp x25, .LANCHOR0 - add x0, x25, :lo12:.LANCHOR0 - ldrb w20, [x0,3360] +.L3632: + adrp x27, .LC292 + mov w21, 0 + add x0, x27, :lo12:.LC292 + mov w25, 0 + str x0, [x29, 104] +.L3633: + cmp w25, w23 + bne .L3639 adrp x0, .LANCHOR2 + adrp x19, .LANCHOR0 + ldr w0, [x0, #:lo12:.LANCHOR2] + tbz x0, 12, .L3640 + add x0, x19, :lo12:.LANCHOR0 + ldrh w1, [x22] + ldr x0, [x0, 1120] + ubfiz x2, x1, 1, 16 + ldrh w3, [x0, x2] + adrp x0, .LC294 + mov w2, w21 + add x0, x0, :lo12:.LC294 + bl printk +.L3640: + add x19, x19, :lo12:.LANCHOR0 + ldrh w1, [x22] + ldr x0, [x19, 1120] + strh w21, [x0, x1, lsl 1] + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] + ldp x27, x28, [sp, 80] + ldp x29, x30, [sp], 128 + ret +.L3639: + ldr w2, [x19] + cmn w2, #1 + beq .L3634 + add x0, x26, :lo12:.LANCHOR3 + ldrb w20, [x0, 1946] + adrp x0, .LANCHOR2 + ldr w0, [x0, #:lo12:.LANCHOR2] lsl w20, w20, 7 - ldr w0, [x0,#:lo12:.LANCHOR2] udiv w20, w2, w20 and w20, w20, 65535 - tbz x0, 12, .L3681 - mov x0, x27 + tbz x0, 12, .L3635 + adrp x0, .LC291 + mov w3, w25 mov w1, w20 - mov w3, w28 + add x0, x0, :lo12:.LC291 bl printk -.L3681: - sbfiz x26, x24, 2, 32 - ldr w0, [x19,x26] +.L3635: + adrp x28, .LC293 + mov x24, x19 + mov w27, w25 + add x28, x28, :lo12:.LC293 +.L3638: + ldr w0, [x24] cmn w0, #1 - beq .L3679 - add x1, x25, :lo12:.LANCHOR0 - ldrb w1, [x1,3360] + beq .L3636 + add x5, x26, :lo12:.LANCHOR3 + ldrb w1, [x5, 1946] lsl w1, w1, 7 udiv w0, w0, w1 cmp w20, w0, uxth - bne .L3679 - ldrb w0, [x22,9] - ldr x2, [x29,120] - add x3, x2, :lo12:.LANCHOR3 - str x3, [x29,96] - sdiv w1, w24, w0 - ldrh w2, [x3,1418] - msub w0, w1, w0, w24 + bne .L3636 + ldrb w0, [x22, 9] + str x5, [x29, 96] + sdiv w1, w27, w0 + msub w0, w1, w0, w27 add x0, x22, w0, sxtw 1 - ldrh w0, [x0,16] - madd w2, w0, w2, w1 - str w2, [x29,140] - ldr x0, [x29,112] - ldr w1, [x19,x26] + ldrh w2, [x0, 16] + ldrh w0, [x5, 1410] + madd w2, w2, w0, w1 + ldr x0, [x29, 104] + str w2, [x29, 124] + ldr w1, [x24] bl pm_ppa_update_check - ldr x3, [x29,96] - cbz w0, .L3680 - ldr x1, [x3,1936] - mov w2, 4 - ldr x0, [x29,104] + ldr x5, [x29, 96] + cbz w0, .L3637 + ldr x1, [x5, 1928] mov w3, w23 + mov w2, 4 + mov x0, x28 bl rknand_print_hex -.L3680: - ldr w0, [x19,x26] - add x1, x29, 140 - mov w2, 1 +.L3637: + ldr w0, [x24] add w21, w21, 1 + mov w2, 1 + add x1, x29, 124 + and w21, w21, 65535 bl pm_log2phys - uxth w21, w21 mov w0, -1 - str w0, [x19,x26] -.L3679: - add w24, w24, 1 - cmp w24, w23 - bne .L3681 -.L3677: - add x28, x28, 1 - b .L3676 -.L3703: - adrp x0, .LANCHOR2 - adrp x19, .LANCHOR0 - ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 12, .L3683 - add x0, x19, :lo12:.LANCHOR0 - ldrh w1, [x22] - mov w2, w21 - ubfiz x3, x1, 1, 16 - ldr x4, [x0,1112] - adrp x0, .LC294 - add x0, x0, :lo12:.LC294 - ldrh w3, [x4,x3] - bl printk -.L3683: - add x19, x19, :lo12:.LANCHOR0 - ldrh w1, [x22] - ldr x0, [x19,1112] - strh w21, [x0,x1,lsl 1] - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 144 - ret + str w0, [x24] +.L3636: + add w27, w27, 1 + add x24, x24, 4 + cmp w23, w27 + bne .L3638 +.L3634: + add w25, w25, 1 + add x19, x19, 4 + b .L3633 .size ftl_update_l2p_map, .-ftl_update_l2p_map .align 2 .global ftl_alloc_new_data_sblk @@ -23902,54 +23717,53 @@ ftl_update_l2p_map: ftl_alloc_new_data_sblk: stp x29, x30, [sp, -48]! add x29, sp, 0 - stp x19, x20, [sp,16] - str x21, [sp,32] + stp x19, x20, [sp, 16] mov x20, x0 + str x21, [sp, 32] ldrh w21, [x0] bl ftl_update_l2p_map bl pm_flush ldrh w0, [x20] mov w1, 65535 cmp w0, w1 - beq .L3705 + beq .L3662 bl zftl_insert_data_list -.L3705: +.L3662: adrp x19, .LANCHOR0 - mov w2, 2 add x19, x19, :lo12:.LANCHOR0 - mov w1, 3 - ldr x0, [x19,1120] + ldr x0, [x19, 1128] add x0, x0, 16 cmp x20, x0 mov x0, x20 - csel w1, w2, w1, eq + cset w1, ne + add w1, w1, 2 bl ftl_open_sblk_init - ldr x0, [x19,1120] - ldr w0, [x0,560] + ldr x0, [x19, 1128] + ldr w0, [x0, 560] cmp w0, w21 - bne .L3707 + bne .L3664 mov w20, 65535 cmp w21, w20 - beq .L3707 - adrp x0, .LC295 + beq .L3664 mov w1, w21 + adrp x0, .LC295 add x0, x0, :lo12:.LC295 bl printk - ldr x0, [x19,1120] - ldr w0, [x0,564] + ldr x0, [x19, 1128] + ldr w0, [x0, 564] bl gc_mark_bad_ppa - ldr x0, [x19,1120] + ldr x0, [x19, 1128] mov w1, -1 - str w20, [x0,560] - str w1, [x0,564] -.L3707: + str w20, [x0, 560] + str w1, [x0, 564] +.L3664: bl ftl_ext_info_flush mov w0, 0 bl ftl_info_flush bl lpa_rebuild_hash - ldr x21, [sp,32] + ldr x21, [sp, 32] mov w0, 0 - ldp x19, x20, [sp,16] + ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 48 ret .size ftl_alloc_new_data_sblk, .-ftl_alloc_new_data_sblk @@ -23957,434 +23771,417 @@ ftl_alloc_new_data_sblk: .global ftl_write_commit .type ftl_write_commit, %function ftl_write_commit: - stp x29, x30, [sp, -176]! + stp x29, x30, [sp, -144]! + adrp x0, .LANCHOR0 add x29, sp, 0 - stp x25, x26, [sp,64] - adrp x26, .LANCHOR0 - add x26, x26, :lo12:.LANCHOR0 - add x0, x26, 1312 - str x0, [x29,128] - adrp x0, .LANCHOR5 - add x0, x0, :lo12:.LANCHOR5 - str x0, [x29,136] - stp x19, x20, [sp,16] - add x0, x0, 352 - str x0, [x29,120] - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - stp x27, x28, [sp,80] -.L3716: - ldrb w0, [x26,3388] - adrp x20, .LANCHOR0 - cbz w0, .L3718 - ldrb w1, [x26,3416] - sub w0, w0, #1 - ldr x2, [x29,128] - str x1, [x29,144] - lsl x1, x1, 6 - add x28, x2, x1 - strb w0, [x26,3388] - ldr w0, [x26,3372] - ldrb w1, [x2,x1] - strb w1, [x26,3416] - ldr w1, [x28,36] + stp x19, x20, [sp, 16] + add x20, x0, :lo12:.LANCHOR0 + stp x27, x28, [sp, 80] + add x28, x20, 1304 + stp x21, x22, [sp, 32] + stp x23, x24, [sp, 48] + stp x25, x26, [sp, 64] +.L3668: + adrp x0, .LANCHOR0 + add x0, x0, :lo12:.LANCHOR0 + ldrb w1, [x0, 3381] + cbz w1, .L3670 + ldrb w3, [x0, 3408] + add x2, x0, 1304 + sub w1, w1, #1 + strb w1, [x0, 3381] + ubfiz x4, x3, 6, 8 + add x4, x2, x4 + stp x3, x4, [x29, 104] + lsl x3, x3, 6 + add x4, x2, x3 + ldrb w2, [x2, x3] + strb w2, [x0, 3408] + ldr w1, [x4, 36] + ldr w0, [x0, 3364] cmp w1, w0 - bcc .L3719 + bcc .L3672 adrp x1, .LANCHOR4 - adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 - mov w2, 606 - add x1, x1, 984 + add x1, x1, 1000 + mov w2, 607 + adrp x0, .LC0 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L3719: - ldr x0, [x29,144] - add x1, x20, :lo12:.LANCHOR0 - add x3, x1, 1312 - add x0, x3, x0, lsl 6 - ldr w2, [x1,3372] - ldr w23, [x0,36] - cmp w23, w2 - bcc .L3720 - mov x0, x28 +.L3672: + ldr x0, [x29, 104] + ldr w1, [x20, 3364] + add x0, x28, x0, lsl 6 + ldr w23, [x0, 36] + cmp w23, w1 + bcc .L3673 + ldr x0, [x29, 112] bl zbuf_free mov w0, -1 - b .L3779 -.L3720: - ldr x25, [x0,8] - ldr x24, [x0,24] - ldrb w22, [x0,57] - ldrb w21, [x0,56] - ldrb w0, [x1,3389] - cbz w0, .L3722 - ldr x0, [x29,136] - ldrb w19, [x0,352] - add x19, x3, x19, lsl 6 -.L3723: - ldrb w4, [x19] - cmp w4, 255 - beq .L3781 - sbfiz x19, x4, 6, 32 - add x19, x3, x19 - b .L3723 -.L3781: - ldr w0, [x19,36] - cmp w0, w23 - bne .L3722 - ldr x0, [x19,8] - ubfiz x1, x22, 9, 8 +.L3667: + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] + ldp x27, x28, [sp, 80] + ldp x29, x30, [sp], 144 + ret +.L3673: + ldrb w22, [x0, 57] + ldrb w21, [x0, 56] + ldr x27, [x0, 8] + ldr x24, [x0, 24] + ldrb w0, [x20, 3380] + cbz w0, .L3675 + adrp x0, .LANCHOR5+360 + ldrb w19, [x0, #:lo12:.LANCHOR5+360] + add x19, x28, x19, lsl 6 +.L3676: + ldrb w0, [x19] + cmp w0, 255 + bne .L3677 + ldr w0, [x19, 36] + cmp w23, w0 + bne .L3675 + ldr x0, [x19, 8] + ubfiz x22, x22, 9, 8 lsl w2, w21, 9 - add x20, x20, :lo12:.LANCHOR0 - add x0, x0, x1 - add x1, x25, x1 + add x1, x27, x22 + add x0, x0, x22 bl ftl_memcpy - ldrb w2, [x20,3360] - mov w0, 2 - ldr x1, [x19,24] - ldr x3, [x19,8] - sub w2, w2, #2 - sbfiz x2, x2, 9, 32 + adrp x0, .LANCHOR3+1946 + ldr x2, [x19, 8] + ldr x1, [x19, 24] + ldrb w0, [x0, #:lo12:.LANCHOR3+1946] add x1, x1, 16 - add x2, x3, x2 + sub w0, w0, #2 + sbfiz x0, x0, 9, 32 + add x2, x2, x0 + mov w0, 2 bl ftl_debug_info_fill - mov x0, x28 + ldr x0, [x29, 112] bl zbuf_free - b .L3716 -.L3722: + b .L3668 +.L3677: + ubfiz x19, x0, 6, 8 + add x19, x28, x19 + b .L3676 +.L3675: mov w0, w23 bl lpa_hash_get_ppa - str w0, [x29,172] + str w0, [x29, 140] cmn w0, #1 - bne .L3726 - mov w0, w23 - add x1, x29, 172 + bne .L3679 mov w2, 0 + add x1, x29, 140 + mov w0, w23 bl pm_log2phys -.L3726: - add x4, x20, :lo12:.LANCHOR0 - ldr w0, [x29,172] - add x3, x4, 1312 - mov w1, 0 - mov x27, 0 - ldr x19, [x4,1120] - add x4, x4, 3360 +.L3679: + ldr x19, [x20, 1128] + add x0, x20, 1306 + ldr w2, [x29, 140] + add x4, x20, 3354 add x19, x19, 16 -.L3728: - ldr w2, [x3,36] - cmp w2, w23 - bne .L3727 - ldrb w6, [x3,2] - tbz x6, 3, .L3727 - ldr x27, [x3,8] - and w6, w6, -9 - ldr w0, [x3,40] - mov w1, 1 - strb w6, [x3,2] -.L3727: - add x3, x3, 64 - cmp x3, x4 - bne .L3728 - cbz w1, .L3729 - str w0, [x29,172] -.L3729: - add x3, x20, :lo12:.LANCHOR0 - str wzr, [x29,152] - ldrb w0, [x3,3360] + mov w3, 0 + mov x26, 0 +.L3681: + ldr w1, [x0, 34] + cmp w23, w1 + bne .L3680 + ldrb w1, [x0] + tbz x1, 3, .L3680 + ldr w2, [x0, 38] + and w1, w1, -9 + ldr x26, [x0, 6] + mov w3, 1 + strb w1, [x0] +.L3680: + add x0, x0, 64 + cmp x0, x4 + bne .L3681 + cbz w3, .L3682 + str w2, [x29, 140] +.L3682: + adrp x25, .LANCHOR3 + add x0, x25, :lo12:.LANCHOR3 + str x25, [x29, 120] + ldrb w0, [x0, 1946] cmp w21, w0 - bcs .L3730 + bcs .L3708 add w21, w22, w21 - cbz x27, .L3731 - cbz w22, .L3732 - mov x0, x25 - mov x1, x27 + cbz x26, .L3684 + cbz w22, .L3685 lsl w2, w22, 9 - str x3, [x29,152] + mov x1, x26 + mov x0, x27 bl ftl_memcpy - ldr x3, [x29,152] - ldr x19, [x3,1120] + ldr x19, [x20, 1128] add x19, x19, 48 -.L3732: - add x0, x20, :lo12:.LANCHOR0 - ldrb w2, [x0,3360] +.L3685: + ldr x0, [x29, 120] + add x0, x0, :lo12:.LANCHOR3 + ldrb w2, [x0, 1946] cmp w21, w2 - bcc .L3733 - ldr x19, [x0,1120] + bcc .L3686 + ldr x19, [x20, 1128] add x19, x19, 16 - b .L3780 -.L3733: - ubfiz x1, x21, 9, 9 +.L3708: + mov w26, 0 + b .L3683 +.L3686: + ubfiz x0, x21, 9, 9 sub w2, w2, w21 - add x0, x25, x1 + add x1, x26, x0 lsl w2, w2, 9 - add x1, x27, x1 + add x0, x27, x0 bl ftl_memcpy -.L3780: - str wzr, [x29,152] - b .L3730 -.L3731: - ldr w0, [x29,172] + b .L3708 +.L3684: + ldr w0, [x29, 140] cmn w0, #1 - beq .L3734 + beq .L3687 mov w0, 1 bl buf_alloc - mov x27, x0 - ldr w1, [x29,172] - str w1, [x0,40] + ldr w1, [x29, 140] + mov x25, x0 + stp w23, w1, [x0, 36] mov w1, 1 - str w23, [x0,36] bl sblk_read_page - ldr x3, [x27,24] - ldr w0, [x3,12] - add w0, w0, 1 - str w0, [x29,152] - ldr w0, [x3,4] - cmp w0, w23 - bne .L3735 - ldr w0, [x27,52] + ldr x3, [x25, 24] + ldr w0, [x3, 4] + ldr w26, [x3, 12] + cmp w23, w0 + add w26, w26, 1 + bne .L3688 + ldr w0, [x25, 52] cmn w0, #1 - bne .L3736 -.L3735: - add x4, x20, :lo12:.LANCHOR0 - mov w0, 1 - ldr w1, [x27,40] - mov w2, 24 - ldrb w6, [x4,1257] - ldrb w4, [x4,3360] - lsl w0, w0, w6 - sub w2, w2, w6 - sub w0, w0, #1 - lsr w6, w1, w2 - lsl w2, w0, w2 + bne .L3689 +.L3688: + ldrb w2, [x20, 1205] + mov w6, 1 + mov w0, 24 + ldr w1, [x25, 40] + sub w0, w0, w2 + lsl w6, w6, w2 + ldr x2, [x29, 120] + sub w6, w6, #1 + add x2, x2, :lo12:.LANCHOR3 + lsl w7, w6, w0 + lsr w0, w1, w0 + bic w1, w1, w7 + ldrb w4, [x2, 1946] and w0, w0, w6 - bic w1, w1, w2 - ldr x2, [x27,8] + ldr x2, [x25, 8] bl flash_read_page_en - str w0, [x27,52] -.L3736: - ldr x0, [x27,24] - ldr w0, [x0,4] - cmp w0, w23 - bne .L3737 - ldr w0, [x27,52] + str w0, [x25, 52] +.L3689: + ldr x0, [x25, 24] + ldr w0, [x0, 4] + cmp w23, w0 + bne .L3690 + ldr w0, [x25, 52] cmn w0, #1 - bne .L3738 -.L3737: - add x0, x20, :lo12:.LANCHOR0 - ldr w2, [x29,172] + bne .L3691 +.L3690: + ldr x1, [x20, 1128] mov w3, w23 - ldr x1, [x0,1120] - ldr w0, [x1,552] + ldr w2, [x29, 140] + ldr w0, [x1, 552] add w0, w0, 1 - str w0, [x1,552] + str w0, [x1, 552] adrp x0, .LC296 - ldrb w1, [x27,1] add x0, x0, :lo12:.LC296 - ldr w4, [x27,52] + ldrb w1, [x25, 1] + ldr w4, [x25, 52] bl printk + ldr x1, [x25, 24] + mov w3, 4 adrp x0, .LC240 - mov w2, 4 - ldr x1, [x27,24] + mov w2, w3 add x0, x0, :lo12:.LC240 - mov w3, w2 bl rknand_print_hex -.L3738: - ldr x0, [x27,24] - ldr w0, [x0,4] - cmp w0, w23 - bne .L3739 - ldr w0, [x27,52] +.L3691: + ldr x0, [x25, 24] + ldr w0, [x0, 4] + cmp w23, w0 + bne .L3692 + ldr w0, [x25, 52] cmn w0, #1 - bne .L3740 -.L3739: + bne .L3693 +.L3692: adrp x1, .LANCHOR4 - adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 - mov w2, 698 - add x1, x1, 984 + add x1, x1, 1000 + mov w2, 699 + adrp x0, .LC0 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L3740: - cbz w22, .L3741 - ldr w0, [x29,172] +.L3693: + cbz w22, .L3694 + ldr w0, [x29, 140] lsl w2, w22, 9 cmn w0, #1 - beq .L3742 - ldr x1, [x27,8] - mov x0, x25 - bl ftl_memcpy - b .L3743 -.L3734: - cbz w22, .L3741 - lsl w2, w22, 9 -.L3742: - mov x0, x25 - mov w1, 0 - bl ftl_memset -.L3743: - add x0, x20, :lo12:.LANCHOR0 - ldr x19, [x0,1120] - add x19, x19, 48 -.L3741: - add x0, x20, :lo12:.LANCHOR0 - ldrb w2, [x0,3360] - cmp w21, w2 - bcc .L3744 - bls .L3745 - ldr x19, [x0,1120] - add x19, x19, 16 - b .L3745 -.L3744: - ldr w0, [x29,172] - sub w2, w2, w21 - lsl w2, w2, 9 - cmn w0, #1 - ubfiz x0, x21, 7, 9 - beq .L3746 - ldr x1, [x27,8] - lsl x21, x0, 2 - add x0, x25, x21 - add x1, x1, x21 - bl ftl_memcpy - b .L3745 -.L3746: - add x0, x25, x0, lsl 2 - mov w1, 0 - bl ftl_memset -.L3745: - cbz x27, .L3730 - ldrb w0, [x27,2] - mov x1, x27 - and w0, w0, -9 - strb w0, [x27,2] - add x0, x20, :lo12:.LANCHOR0 - add x0, x0, 3364 - bl buf_remove_buf + beq .L3695 + ldr x1, [x25, 8] mov x0, x27 + bl ftl_memcpy +.L3696: + ldr x19, [x20, 1128] + add x19, x19, 48 +.L3694: + ldr x0, [x29, 120] + add x0, x0, :lo12:.LANCHOR3 + ldrb w2, [x0, 1946] + cmp w21, w2 + bcc .L3697 + bls .L3698 + ldr x19, [x20, 1128] + add x19, x19, 16 +.L3698: + cbz x25, .L3683 + ldrb w0, [x25, 2] + mov x1, x25 + and w0, w0, -9 + strb w0, [x25, 2] + add x0, x20, 3355 + bl buf_remove_buf + mov x0, x25 bl zbuf_free -.L3730: - ldrh w0, [x19,6] - cbnz w0, .L3747 +.L3683: + ldrh w0, [x19, 6] + cbnz w0, .L3700 bl ftl_flush mov x0, x19 bl ftl_alloc_new_data_sblk -.L3747: +.L3700: mov x0, x19 - add x21, x20, :lo12:.LANCHOR0 bl ftl_get_new_free_page - mov w6, w0 - ldr x0, [x29,144] - add x4, x21, 1312 + mov w3, w0 + ldr x0, [x29, 104] mov x1, x24 - str x6, [x29,104] - lsl x27, x0, 6 - str x4, [x29,112] - add x22, x4, x27 - add x5, x22, 32 - str x5, [x29,144] - ldr w0, [x22,32] - str w0, [x24] - str w23, [x24,4] - ldrb w2, [x21,3360] - ldr w0, [x29,172] - str w0, [x24,8] - sub w2, w2, #2 - ldr w0, [x29,152] - sbfiz x2, x2, 9, 32 - str w0, [x24,12] - add x2, x25, x2 - str wzr, [x1,16]! + str w3, [x29, 100] + lsl x22, x0, 6 + add x21, x28, x22 + ldr w0, [x21, 32] + stp w0, w23, [x24] + str w26, [x24, 12] + ldr w0, [x29, 140] + str w0, [x24, 8] + ldr x0, [x29, 120] + str wzr, [x1, 16]! + add x25, x0, :lo12:.LANCHOR3 mov w0, 2 + ldrb w2, [x25, 1946] + sub w2, w2, #2 + sbfiz x2, x2, 9, 32 + add x2, x27, x2 bl ftl_debug_info_fill - ldr x5, [x29,144] - ldr x4, [x29,112] - ldr w0, [x29,172] - str w0, [x5,12] + ldr w0, [x29, 140] + mov w1, 10 + ldr w3, [x29, 100] + stp w3, w0, [x21, 40] mov w0, -1 - ldrb w1, [x22,2] - strb w0, [x4,x27] - mov w0, 10 - ldr x6, [x29,104] - orr w0, w1, w0 - str w6, [x5,8] - strb w0, [x22,2] - ldrh w1, [x19,10] - ldrh w0, [x19,12] - add w0, w1, w0 - mov x1, x28 + strb w0, [x28, x22] + ldrb w0, [x21, 2] + orr w0, w0, w1 + strb w0, [x21, 2] + ldrh w1, [x19, 12] + ldrh w0, [x19, 10] + add w0, w0, w1 + ldr x1, [x29, 112] sub w0, w0, #1 - strh w0, [x22,48] - ldr x0, [x29,120] + strh w0, [x21, 48] + adrp x21, .LANCHOR5 + add x22, x21, :lo12:.LANCHOR5 + add x0, x22, 360 bl buf_add_tail - ldrb w0, [x21,3389] + ldrb w0, [x20, 3380] add w0, w0, 1 - strb w0, [x21,3389] + strb w0, [x20, 3380] bl timer_get_time - ldr x1, [x29,136] - ldrb w2, [x21,3389] - str w0, [x1,356] + str w0, [x22, 364] + ldrb w2, [x20, 3380] + ldrh w0, [x19, 6] cmp w2, 2 - adrp x0, .LANCHOR5 - bhi .L3748 - ldrh w1, [x19,6] - cmp w1, 1 - bne .L3718 -.L3748: - ldrb w1, [x19,5] - mov w4, 2 - add x6, x20, :lo12:.LANCHOR0 - cmp w1, wzr - ldrh w1, [x19,6] - csinc w4, w4, wzr, ne - add x6, x6, 1312 - cmp w1, 1 - add x1, x0, :lo12:.LANCHOR5 - csel w4, w4, w2, ne - ldrb w5, [x1,352] - mov w1, 0 - mov w3, w5 -.L3752: - cmp w1, w4 - beq .L3782 - ubfiz x3, x3, 6, 8 - add w1, w1, 1 - ldrb w3, [x6,x3] - b .L3752 -.L3782: - add x0, x0, :lo12:.LANCHOR5 - uxtb w1, w1 - sub w2, w2, w1 - ubfiz x5, x5, 6, 8 - strb w3, [x0,352] - add x0, x20, :lo12:.LANCHOR0 - add x0, x0, 1312 - strb w2, [x0,2077] - add x0, x0, x5 - bl sblk_prog_page - ldrh w0, [x19,6] + bhi .L3701 cmp w0, 1 - bne .L3718 + bne .L3671 +.L3701: + ldrb w1, [x19, 5] + cmp w1, 0 + mov w1, 0 + cset w4, ne + cmp w0, 1 + add x0, x21, :lo12:.LANCHOR5 + csinc w4, w2, w4, eq + ldrb w0, [x0, 360] + mov w3, w0 +.L3705: + cmp w1, w4 + bne .L3706 + and w1, w1, 255 + add x21, x21, :lo12:.LANCHOR5 + sub w2, w2, w1 + ubfiz x0, x0, 6, 8 + strb w2, [x20, 3380] + add x0, x28, x0 + strb w3, [x21, 360] + bl sblk_prog_page + ldrh w0, [x19, 6] + cmp w0, 1 + bne .L3671 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 -.L3718: - add x20, x20, :lo12:.LANCHOR0 - ldrb w19, [x20,3388] - cbnz w19, .L3716 +.L3671: + ldrb w0, [x20, 3381] + cbnz w0, .L3668 +.L3670: bl ftl_write_completed - mov w0, w19 -.L3779: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 176 - ret + mov w0, 0 + b .L3667 +.L3697: + ldr w0, [x29, 140] + sub w2, w2, w21 + lsl w2, w2, 9 + cmn w0, #1 + ubfiz x0, x21, 7, 9 + beq .L3699 + ldr x1, [x25, 8] + lsl x0, x0, 2 + add x1, x1, x0 + add x0, x27, x0 + bl ftl_memcpy + b .L3698 +.L3699: + mov w1, 0 + add x0, x27, x0, lsl 2 + bl ftl_memset + b .L3698 +.L3706: + ubfiz x3, x3, 6, 8 + add w1, w1, 1 + ldrb w3, [x28, x3] + b .L3705 +.L3707: + lsl w2, w22, 9 + mov x25, 0 + mov w26, 0 +.L3695: + mov w1, 0 + mov x0, x27 + bl ftl_memset + b .L3696 +.L3687: + cbnz w22, .L3707 + mov w26, 0 + mov x25, 0 + b .L3694 .size ftl_write_commit, .-ftl_write_commit .align 2 .global gc_do_copy_back @@ -24392,2350 +24189,2326 @@ ftl_write_commit: gc_do_copy_back: stp x29, x30, [sp, -240]! add x29, sp, 0 - stp x21, x22, [sp,32] - adrp x21, .LANCHOR3 - add x1, x21, :lo12:.LANCHOR3 - stp x19, x20, [sp,16] - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] - stp x27, x28, [sp,80] - adrp x19, .LANCHOR0 - add x22, x19, :lo12:.LANCHOR0 - ldrb w0, [x1,1345] - ldr x26, [x22,1120] - cbnz w0, .L3784 + stp x21, x22, [sp, 32] + adrp x22, .LANCHOR3 + add x1, x22, :lo12:.LANCHOR3 + stp x19, x20, [sp, 16] + stp x23, x24, [sp, 48] + stp x25, x26, [sp, 64] + stp x27, x28, [sp, 80] + ldrb w0, [x1, 1337] + cbnz w0, .L3734 bl buf_alloc mov x20, x0 - cbz x0, .L3783 - add x21, x22, 3424 - ldrh w22, [x22,3450] - mov w0, w22 - add w22, w22, 1 + cbz x0, .L3733 + adrp x19, .LANCHOR0 + add x2, x19, :lo12:.LANCHOR0 + ldrh w3, [x2, 3442] + mov w0, w3 bl gc_get_src_ppa_from_index - str w0, [x20,40] + add w3, w3, 1 mov w23, w0 + str w23, [x20, 40] + strh w3, [x2, 3442] mov w1, 1 mov x0, x20 - strh w22, [x21,26] bl sblk_read_page - ldr w0, [x20,52] + ldr w0, [x20, 52] cmp w0, 512 - beq .L3869 - cmn w0, #1 - bne .L3786 -.L3869: + ccmn w0, #1, 4, ne + bne .L3736 adrp x1, .LANCHOR4 - adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 + add x1, x1, 1024 mov w2, 1032 - add x1, x1, 1008 + adrp x0, .LC0 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L3786: - ldr x0, [x20,24] - ldr w21, [x0,4] +.L3736: + ldr x0, [x20, 24] + ldr w21, [x0, 4] mov w0, w21 bl lpa_hash_get_ppa - str w0, [x29,192] + str w0, [x29, 192] cmn w0, #1 - bne .L3788 - mov w0, w21 - add x1, x29, 192 + bne .L3737 mov w2, 0 + add x1, x29, 192 + mov w0, w21 bl pm_log2phys -.L3788: - ldr w2, [x29,192] - cmp w2, w23 - bne .L3789 +.L3737: + ldr w24, [x29, 192] + cmp w23, w24 + bne .L3738 add x1, x19, :lo12:.LANCHOR0 - add x0, x1, 1312 - add x1, x1, 3360 -.L3792: - ldr w3, [x0,36] - cmp w3, w21 - bne .L3790 - ldrb w3, [x0,2] - tbz x3, 1, .L3790 + add x0, x1, 1306 + add x1, x1, 3354 +.L3741: + ldr w2, [x0, 34] + cmp w21, w2 + bne .L3739 + ldrb w2, [x0] + tbz x2, 1, .L3739 mov x0, x20 - str x2, [x29,184] bl zbuf_free adrp x0, .LANCHOR2 - ldr x2, [x29,184] - ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 8, .L3783 + ldr w0, [x0, #:lo12:.LANCHOR2] + tbz x0, 8, .L3733 add x19, x19, :lo12:.LANCHOR0 adrp x0, .LC297 + mov w2, w23 mov w1, w21 add x0, x0, :lo12:.LC297 - ldrh w3, [x19,3450] + ldrh w3, [x19, 3442] bl printk - b .L3783 -.L3790: +.L3733: + 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 +.L3739: add x0, x0, 64 - cmp x0, x1 - bne .L3792 - add x22, x19, :lo12:.LANCHOR0 - str w21, [x20,36] - strb wzr, [x20,57] - ldrb w0, [x22,3360] - strb w0, [x20,56] - ldr x0, [x20,24] + cmp x1, x0 + bne .L3741 + add x22, x22, :lo12:.LANCHOR3 + strb wzr, [x20, 57] + str w21, [x20, 36] + ldrb w0, [x22, 1946] + strb w0, [x20, 56] + ldr x0, [x20, 24] ldr w1, [x0] - str w1, [x20,32] - str wzr, [x0,16] + str w1, [x20, 32] + str wzr, [x0, 16] adrp x0, .LANCHOR2 - ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 8, .L3793 + ldr w0, [x0, #:lo12:.LANCHOR2] + tbz x0, 8, .L3742 mov w0, w21 - str x2, [x29,184] bl lpa_hash_get_ppa + add x1, x19, :lo12:.LANCHOR0 mov w3, w0 - ldr x2, [x29,184] + mov w4, w23 adrp x0, .LC298 - ldrh w5, [x22,3450] + mov w2, w24 add x0, x0, :lo12:.LC298 + ldrh w5, [x1, 3442] mov w1, w21 - mov w4, w2 bl printk -.L3793: +.L3742: add x19, x19, :lo12:.LANCHOR0 mov x0, x20 bl ftl_gc_write_buf bl ftl_write_commit - ldr x1, [x19,3392] - ldr w0, [x1,60] + ldr x1, [x19, 3384] + ldr w0, [x1, 60] add w0, w0, 1 - str w0, [x1,60] - ldrh w0, [x19,3452] + str w0, [x1, 60] + ldrh w0, [x19, 3444] add w0, w0, 1 - strh w0, [x19,3452] - b .L3783 -.L3789: + strh w0, [x19, 3444] + b .L3733 +.L3738: adrp x0, .LANCHOR2 - ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 8, .L3795 - mov w0, w21 + ldr w0, [x0, #:lo12:.LANCHOR2] + tbz x0, 8, .L3743 add x19, x19, :lo12:.LANCHOR0 - str x2, [x29,184] + mov w0, w21 bl lpa_hash_get_ppa mov w3, w0 - ldr x2, [x29,184] - adrp x0, .LC298 - ldrh w5, [x19,3450] - add x0, x0, :lo12:.LC298 - mov w1, w21 mov w4, w23 + adrp x0, .LC298 + ldrh w5, [x19, 3442] + mov w2, w24 + mov w1, w21 + add x0, x0, :lo12:.LC298 bl printk -.L3795: +.L3743: mov x0, x20 bl zbuf_free - b .L3783 -.L3784: + b .L3733 +.L3734: + adrp x21, .LANCHOR0 + add x0, x21, :lo12:.LANCHOR0 + ldrb w1, [x1, 1321] + ldr x26, [x0, 1128] add x0, x26, 80 - str x0, [x29,184] - ldrb w1, [x1,1329] - mov w24, 1 - ldrb w0, [x0,9] - uxth w20, w0 - cmp w1, w20 - bhi .L3797 - cmp w20, 2 - mov w24, 2 - csel w24, w20, w24, ls -.L3797: - add x2, x21, :lo12:.LANCHOR3 - ldrb w3, [x2,1328] - cmp w3, 3 - bne .L3798 - add x1, x19, :lo12:.LANCHOR0 - ldrb w4, [x1,1268] - cbz w4, .L3799 - ldrh w22, [x1,5530] - ldrb w1, [x2,1956] - sdiv w0, w22, w0 - uxth w26, w0 - cbz w1, .L3800 - adrp x1, .LANCHOR2 + str x0, [x29, 184] + ldrb w0, [x0, 9] + and w19, w0, 65535 + cmp w1, w19 + bhi .L3798 + cmp w19, 2 mov w23, 2 + csel w23, w19, w23, ls + and w23, w23, 65535 +.L3744: + add x1, x22, :lo12:.LANCHOR3 + ldrb w20, [x1, 1320] + cmp w20, 3 + bne .L3745 + add x3, x21, :lo12:.LANCHOR0 + ldrb w2, [x3, 1212] + ldrh w5, [x3, 5522] + cbz w2, .L3746 + sdiv w0, w5, w0 + ldrb w1, [x1, 1950] + mov w24, w5 + and w26, w0, 65535 + cbz w1, .L3747 + adrp x1, .LANCHOR2 add x1, x1, :lo12:.LANCHOR2 add x1, x1, 2136 - ldrh w0, [x1,w0,sxtw 1] - cmp w0, wzr - csinc w23, w23, wzr, ne - b .L3801 -.L3800: - adrp x0, .LANCHOR5+997 + ldrh w0, [x1, w0, sxtw 1] + cmp w0, 0 + cset w20, ne +.L3865: + add w20, w20, 1 +.L3748: + msub w19, w19, w26, w5 + and w19, w19, 65535 +.L3749: + adrp x8, .LANCHOR5 + adrp x0, .LANCHOR2 + add x8, x8, :lo12:.LANCHOR5 + add x0, x0, :lo12:.LANCHOR2 + add x7, x21, :lo12:.LANCHOR0 + mul w11, w20, w23 + add x10, x22, :lo12:.LANCHOR3 + add x6, x0, 2136 + sxtw x12, w26 + mov x13, x8 + add x7, x7, 3416 + mov w5, 0 +.L3753: + cmp w5, w11 + bge .L3806 + ldr x1, [x29, 184] + add w2, w24, w5 + ldrh w0, [x10, 1338] + ldrb w1, [x1, 9] + mul w0, w0, w1 + ldrb w1, [x8, 465] + sub w0, w0, w1 + cmp w2, w0 + blt .L3754 + ldrb w0, [x10, 1950] + cbz w0, .L3806 + ldrh w0, [x6, x12, lsl 1] + cmp w0, w26 + bcc .L3755 +.L3806: + mov w0, 1 + str w0, [x29, 180] + b .L3751 +.L3798: mov w23, 1 - ldrb w0, [x0,#:lo12:.LANCHOR5+997] - cbz w0, .L3801 + b .L3744 +.L3747: + adrp x0, .LANCHOR5+461 + ldrb w0, [x0, #:lo12:.LANCHOR5+461] + cbz w0, .L3800 sub w0, w26, #62 - mov w23, 2 - uxth w0, w0 + and w0, w0, 65535 cmp w0, 2159 bhi .L3801 - udiv w0, w26, w3 - add w0, w0, w0, lsl 1 - sub w0, w26, w0 - uxth w0, w0 - cmp w0, wzr - csinc w23, w23, wzr, eq + udiv w20, w26, w20 + add w20, w20, w20, lsl 1 + sub w20, w26, w20 + and w20, w20, 65535 + cmp w20, 0 + cset w20, eq + b .L3865 +.L3800: + mov w20, 1 + b .L3748 .L3801: - msub w20, w26, w20, w22 - uxth w20, w20 - b .L3804 -.L3799: - ldrb w2, [x2,1344] - cbz w2, .L3803 - ldrh w22, [x1,5530] - add w20, w0, w0, lsl 1 - mov w23, w3 - sdiv w20, w22, w20 - mul w0, w20, w0 - uxth w26, w20 + mov w20, 2 + b .L3748 +.L3746: + ldrb w1, [x1, 1336] + cbz w1, .L3750 + add w19, w0, w0, lsl 1 + mov w24, w5 + sdiv w19, w5, w19 + mul w0, w0, w19 + and w26, w19, 65535 sub w0, w0, w0, lsl 2 - add w20, w22, w0 - ldrb w0, [x1,1269] - sdiv w20, w20, w3 - uxth w20, w20 - cbz w0, .L3804 + add w19, w0, w5 + ldrb w0, [x3, 1213] + sdiv w19, w19, w20 + and w19, w19, 65535 + cbz w0, .L3749 add w4, w26, w26, lsl 1 - uxth w26, w4 - b .L3804 -.L3803: - ldrh w5, [x1,5530] + and w26, w4, 65535 + b .L3749 +.L3750: + sdiv w2, w5, w0 adrp x1, .LANCHOR2 add x1, x1, :lo12:.LANCHOR2 - mov w23, w3 add x1, x1, 3672 - sdiv w2, w5, w0 - msub w20, w20, w2, w5 - ldrh w25, [x1,w2,sxtw 1] - uxth w20, w20 + msub w19, w19, w2, w5 + ldrh w25, [x1, w2, sxtw 1] + and w19, w19, 65535 + and w1, w25, 7 + str w1, [x29, 180] lsr w26, w25, 3 - and w25, w25, 7 - madd w22, w26, w0, w20 - cmp w25, 1 - add w22, w22, w22, lsl 1 - uxth w22, w22 - bne .L3805 - b .L3804 -.L3798: - ldrb w1, [x2,1330] - cbnz w1, .L3806 - add x1, x19, :lo12:.LANCHOR0 - mov w23, 1 - ldrh w22, [x1,5530] - sdiv w26, w22, w0 - msub w20, w26, w20, w22 - uxth w20, w20 - b .L3804 -.L3806: - add x1, x19, :lo12:.LANCHOR0 - mov w23, 2 - ldrh w22, [x1,5530] - sdiv w26, w22, w0 - msub w20, w26, w20, w22 - uxth w20, w20 -.L3804: - adrp x3, .LANCHOR5 - adrp x2, .LANCHOR2 - mul w7, w23, w24 - mov w28, 0 - mov x8, x3 - add x2, x2, :lo12:.LANCHOR2 - sxtw x5, w26 - add x6, x19, :lo12:.LANCHOR0 - b .L3807 -.L3938: - add x0, x2, 2136 - ldrh w0, [x0,x5,lsl 1] - cmp w0, w26 - bcs .L3867 - tbz x28, 0, .L3867 -.L3808: - add x0, x8, :lo12:.LANCHOR5 - sbfiz x25, x25, 2, 32 - ldr x1, [x0,240] - ldr w0, [x1,x25] - cmn w0, #1 - beq .L3937 -.L3811: - add w28, w28, 1 - uxth w28, w28 -.L3807: - cmp w28, w7 - bge .L3867 - add x1, x21, :lo12:.LANCHOR3 - ldr x4, [x29,184] - add w25, w22, w28 - ldrb w9, [x4,9] - ldrh w0, [x1,1346] - mul w0, w0, w9 - add x9, x3, :lo12:.LANCHOR5 - ldrb w9, [x9,1001] - sub w0, w0, w9 - cmp w25, w0 - blt .L3808 - ldrb w0, [x1,1956] - cbnz w0, .L3938 -.L3867: - mov w25, 1 -.L3805: - mul w0, w23, w24 - str w0, [x29,168] - str wzr, [x29,152] - sub w0, w22, w0, lsl 1 - uxth w0, w0 - str w0, [x29,128] - ldrh w0, [x29,128] - str x0, [x29,120] - adrp x0, .LC0 - add x0, x0, :lo12:.LC0 - str x0, [x29,112] + madd w0, w26, w0, w19 + add w0, w0, w0, lsl 1 + and w24, w0, 65535 + uxtw x0, w1 + cmp w0, 1 + beq .L3749 +.L3751: + mul w0, w20, w23 + str wzr, [x29, 160] + str w0, [x29, 176] + ubfiz w0, w23, 1, 15 + strh w0, [x29, 128] + str w0, [x29, 156] + msub w0, w0, w20, w24 + and w0, w0, 65535 + str w0, [x29, 152] + ldrh w0, [x29, 152] + str x0, [x29, 120] + adrp x0, .LANCHOR5 + add x28, x0, :lo12:.LANCHOR5 adrp x0, .LANCHOR4 add x0, x0, :lo12:.LANCHOR4 - add x0, x0, 1008 - str x0, [x29,104] - b .L3810 -.L3937: - ldrh w27, [x6,3450] - ldrh w0, [x6,3448] - cmp w0, w27 - bls .L3783 - add x0, x21, :lo12:.LANCHOR3 - ldrb w0, [x0,1956] - cbz w0, .L3812 - add x0, x2, 2136 - ldrh w0, [x0,x5,lsl 1] - cmp w0, w26 - bcs .L3812 - tbz x28, 0, .L3812 - ubfiz x0, x0, 2, 16 - ldr w0, [x1,x0] - str w0, [x1,x25] - b .L3811 -.L3812: - mov w0, w27 - str x6, [x29,128] - str x5, [x29,136] - add w27, w27, 1 - str x2, [x29,144] - str x8, [x29,152] - str x3, [x29,160] - str x1, [x29,168] - str x7, [x29,176] - bl gc_get_src_ppa_from_index - ldr x6, [x29,128] - ldr x1, [x29,168] - ldr x5, [x29,136] - strh w27, [x6,3450] - str w0, [x1,x25] - ldr x2, [x29,144] - ldr x8, [x29,152] - ldr x3, [x29,160] - ldr x7, [x29,176] - b .L3811 -.L3838: - ldr w0, [x29,160] - add w2, w22, w0 - sxtw x0, w2 - str x0, [x29,176] - add x0, x21, :lo12:.LANCHOR3 - ldr x1, [x29,176] - ldr x0, [x0,1336] - ldrb w0, [x0,x1] - cmp w0, 255 - beq .L3939 -.L3814: - add x5, x21, :lo12:.LANCHOR3 - ldr x2, [x29,176] - add x3, x29, 192 - add x6, x19, :lo12:.LANCHOR0 - add x1, x6, 1312 - ldr x0, [x5,1336] - ldrb w2, [x0,x2] - ldr w0, [x29,160] - add x1, x1, x2, lsl 6 - str x1, [x3,w0,sxtw 3] - mov w3, 2 - ldrb w0, [x5,1328] - strh w3, [x1,50] - adrp x3, .LANCHOR5 - strb w25, [x1,61] - cmp w0, 3 - bne .L3829 - ldrb w7, [x6,1268] - cbnz w7, .L3940 - ldrb w6, [x6,1269] - add x1, x1, 32 - udiv w0, w27, w0 - ldrh w7, [x5,1418] - cbz w6, .L3833 - add w6, w0, w20 - ldr x4, [x29,184] - add x6, x4, w6, sxtw 1 - ldrh w5, [x6,16] - add w0, w0, w0, lsl 1 - sub w0, w27, w0 - madd w5, w5, w7, w26 - add w0, w5, w0, uxth -.L3936: - str w0, [x1,8] - add x0, x19, :lo12:.LANCHOR0 - add x0, x0, 1312 - add x2, x0, x2, lsl 6 - add x0, x3, :lo12:.LANCHOR5 - ldr x1, [x0,248] - mov w0, 3 - ldrh w5, [x2,48] - udiv w0, w27, w0 - ldr w2, [x2,40] - add w0, w0, w0, lsl 1 - sub w0, w27, w0 - uxth w0, w0 - add w0, w0, 1 - orr w0, w2, w0, lsl 24 - str w0, [x1,x5,lsl 2] -.L3857: - add x1, x21, :lo12:.LANCHOR3 - ldrb w0, [x1,1956] - cbnz w0, .L3941 -.L3837: - ldr w0, [x29,152] - add w0, w0, 1 - str w0, [x29,152] -.L3810: - ldr w0, [x29,152] - ldr w1, [x29,168] + str x0, [x29, 112] +.L3756: + ldr w0, [x29, 160] + ldr w1, [x29, 176] and w0, w0, 65535 - str w0, [x29,160] + str w0, [x29, 164] + ldrh w27, [x29, 160] cmp w0, w1 - ldrh w27, [x29,152] - blt .L3838 - b .L3942 -.L3939: + blt .L3780 + add x1, x22, :lo12:.LANCHOR3 + ldrb w0, [x1, 1320] + cmp w0, 3 + add x0, x29, 192 + bne .L3781 + add x2, x21, :lo12:.LANCHOR0 + ldrb w2, [x2, 1212] + cbz w2, .L3782 + ldr w2, [x29, 176] + mov w1, 0 + sub w2, w2, #1 +.L3783: + cmp w1, w2 + blt .L3784 +.L3870: + ldr x0, [x0, w2, sxtw 3] + mov w1, -1 + strb w1, [x0] + ldrb w1, [x29, 176] + ldr x0, [x29, 192] + bl sblk_prog_page + b .L3785 +.L3745: + ldrb w1, [x1, 1322] + cbnz w1, .L3752 + add x1, x21, :lo12:.LANCHOR0 + mov w20, 1 + ldrh w24, [x1, 5522] + sdiv w26, w24, w0 + msub w19, w19, w26, w24 + and w19, w19, 65535 + b .L3749 +.L3752: + add x1, x21, :lo12:.LANCHOR0 + mov w20, 2 + ldrh w24, [x1, 5522] + sdiv w26, w24, w0 + msub w19, w19, w26, w24 + and w19, w19, 65535 + b .L3749 +.L3755: + tbz x5, 0, .L3806 +.L3754: + ldr x9, [x13, 288] + sbfiz x2, x2, 2, 32 + ldr w0, [x9, x2] + cmn w0, #1 + bne .L3757 + ldrh w3, [x7, 26] + ldrh w0, [x7, 24] + cmp w0, w3 + bls .L3733 + ldrb w0, [x10, 1950] + cbz w0, .L3758 + ldrh w0, [x6, x12, lsl 1] + cmp w0, w26 + bcs .L3758 + tbz x5, 0, .L3758 + ubfiz x0, x0, 2, 16 + ldr w0, [x9, x0] +.L3866: + str w0, [x9, x2] +.L3757: + add w5, w5, 1 + and w5, w5, 65535 + b .L3753 +.L3758: + mov w0, w3 + bl gc_get_src_ppa_from_index + add w3, w3, 1 + strh w3, [x7, 26] + b .L3866 +.L3780: + ldr w0, [x29, 164] + add w1, w24, w0 + sxtw x0, w1 + str x0, [x29, 168] + add x0, x22, :lo12:.LANCHOR3 + sxtw x2, w1 + ldr x0, [x0, 1328] + ldrb w0, [x0, x2] + cmp w0, 255 + bne .L3760 + str w1, [x29, 144] mov w0, 0 - str x2, [x29,144] bl buf_alloc - mov x28, x0 - ldr x2, [x29,144] - cbnz x0, .L3815 + mov x25, x0 + ldr w1, [x29, 144] + cbnz x0, .L3761 + str w1, [x29, 144] bl sblk_wait_write_queue_completed bl ftl_write_completed bl gc_write_completed bl gc_free_temp_buf - mov w0, w28 + mov w0, 0 bl buf_alloc - mov x28, x0 - ldr x2, [x29,144] - cbz x0, .L3783 -.L3815: - add x1, x21, :lo12:.LANCHOR3 - ldr x3, [x29,176] - ldrb w5, [x28,1] - ldr x0, [x1,1336] - strb w5, [x0,x3] - add x0, x19, :lo12:.LANCHOR0 - ldr x3, [x29,184] - strb w25, [x28,61] - ldrb w5, [x0,3431] + ldr w1, [x29, 144] + mov x25, x0 + cbz x0, .L3733 +.L3761: + add x2, x22, :lo12:.LANCHOR3 + ldr x3, [x29, 168] + ldrb w5, [x25, 1] + ldr x0, [x2, 1328] + strb w5, [x0, x3] + add x0, x21, :lo12:.LANCHOR0 + ldr x3, [x29, 184] + ldrb w5, [x0, 3423] add w5, w5, 1 - strb w5, [x0,3431] - add w0, w27, w22 - strh w0, [x28,48] - ldrh w0, [x1,1346] - ldrb w5, [x3,9] + strb w5, [x0, 3423] + add w0, w27, w24 + strh w0, [x25, 48] + ldrb w0, [x29, 180] + strb w0, [x25, 61] + ldrh w0, [x2, 1338] + ldrb w5, [x3, 9] + adrp x3, .LANCHOR5 mul w0, w0, w5 - adrp x5, .LANCHOR5 - str x5, [x29,144] - add x6, x5, :lo12:.LANCHOR5 - ldrb w6, [x6,1001] - sub w0, w0, w6 - cmp w2, w0 - blt .L3816 - ldrb w0, [x1,1956] - cbz w0, .L3817 + add x5, x3, :lo12:.LANCHOR5 + ldrb w5, [x5, 465] + sub w0, w0, w5 + cmp w1, w0 + blt .L3762 + ldrb w0, [x2, 1950] + cbz w0, .L3763 adrp x0, .LANCHOR2 add x0, x0, :lo12:.LANCHOR2 add x0, x0, 2136 - ldrh w0, [x0,w26,sxtw 1] + ldrh w0, [x0, w26, sxtw 1] cmp w0, w26 - bcs .L3817 - tbnz x27, 0, .L3816 -.L3817: - ldr x0, [x29,144] - mov w1, -1 - ldr x3, [x29,176] - add x5, x21, :lo12:.LANCHOR3 - add x6, x0, :lo12:.LANCHOR5 - ldr x0, [x6,232] - str w1, [x0,x3,lsl 2] - ldrb w0, [x6,1001] + bcs .L3763 + tbnz x27, 0, .L3762 +.L3763: + ldr x0, [x28, 280] + mov w2, -1 + ldr x3, [x29, 168] + str w2, [x0, x3, lsl 2] + ldrb w0, [x28, 465] cmp w0, 2 - ldrh w0, [x5,1346] - bne .L3818 - ldr x1, [x29,184] - ldrb w1, [x1,9] - mul w1, w0, w1 - sub w1, w1, #2 - cmp w2, w1 - ldrh w2, [x6,998] - bne .L3819 - ldr x1, [x6,232] - ldr x0, [x28,8] - str x6, [x29,96] + bne .L3764 + ldr x0, [x29, 184] + add x7, x22, :lo12:.LANCHOR3 + ldrh w2, [x28, 462] + ldrh w6, [x7, 1338] + ldrb w0, [x0, 9] + mul w0, w0, w6 + sub w0, w0, #2 + cmp w1, w0 + bne .L3765 + ldr x1, [x28, 280] + ldr x0, [x25, 8] + str x7, [x29, 144] bl ftl_memcpy - add x5, x19, :lo12:.LANCHOR0 - ldr x0, [x28,24] + ldr x7, [x29, 144] mov w1, 0 - str x5, [x29,136] - ldrb w2, [x5,3360] + ldr x0, [x25, 24] + ldrb w2, [x7, 1946] lsl w2, w2, 1 bl ftl_memset - ldr x1, [x28,24] - mov w0, 15555 - ldr x6, [x29,96] - movk w0, 0xf55f, lsl 16 - str w0, [x1] - ldr x2, [x28,24] - ldrh w1, [x6,998] - ldr x0, [x28,8] - str x2, [x29,144] + ldr x0, [x25, 24] + mov w1, 15555 + movk w1, 0xf55f, lsl 16 + str w1, [x0] + ldr x2, [x25, 24] + ldrh w1, [x28, 462] + ldr x0, [x25, 8] + str x2, [x29, 144] bl js_hash - ldr x2, [x29,144] - ldr x5, [x29,136] - str w0, [x2,4] - ldr x1, [x5,1120] - ldr x0, [x28,24] - ldr w1, [x1,132] - str w1, [x0,8] - ldr x0, [x28,24] - str wzr, [x0,12] - b .L3820 -.L3819: - ldrb w5, [x5,1329] - ldr x1, [x6,232] - mul w5, w0, w5 - ldr x0, [x28,8] + ldr x2, [x29, 144] + add x1, x21, :lo12:.LANCHOR0 + str w0, [x2, 4] + ldr x1, [x1, 1128] + ldr x0, [x25, 24] + ldr w1, [x1, 132] + str w1, [x0, 8] + ldr x0, [x25, 24] + str wzr, [x0, 12] +.L3766: + ldr x0, [x25, 24] + str wzr, [x0, 16] +.L3760: + add x5, x22, :lo12:.LANCHOR3 + ldr x1, [x29, 168] + ldrsw x2, [x29, 164] + add x3, x29, 192 + add x7, x21, :lo12:.LANCHOR0 + ldr x0, [x5, 1328] + add x6, x7, 1304 + ldrb w1, [x0, x1] + ubfiz x0, x1, 6, 8 + add x0, x6, x0 + add x6, x6, x1, lsl 6 + str x0, [x3, x2, lsl 3] + ldrb w0, [x29, 180] + strb w0, [x6, 61] + mov w0, 2 + strh w0, [x6, 50] + ldrb w0, [x5, 1320] + cmp w0, 3 + bne .L3771 + ldrb w8, [x7, 1212] + cbz w8, .L3772 + ldrb w0, [x5, 1950] + and w6, w27, 1 + add w7, w6, w26 + cbz w0, .L3773 + adrp x5, .LANCHOR2 + add x5, x5, :lo12:.LANCHOR2 + add x5, x5, 2136 + ldrh w0, [x5, w26, sxtw 1] + cmp w0, w26 + bcs .L3773 + cmp w6, 0 + csel w7, w7, w0, eq +.L3773: + udiv w5, w27, w20 + ldr x0, [x29, 184] + add x6, x21, :lo12:.LANCHOR0 + add x6, x6, x1, lsl 6 + add w5, w5, w19 + add x5, x0, w5, sxtw 1 + ldrh w0, [x5, 16] + add x5, x22, :lo12:.LANCHOR3 + ldrh w5, [x5, 1410] + madd w0, w0, w5, w7 + orr w0, w0, 50331648 + str w0, [x6, 1344] +.L3778: + add x0, x21, :lo12:.LANCHOR0 + add x0, x0, 1304 + add x1, x0, x1, lsl 6 + adrp x0, .LANCHOR5 + add x0, x0, :lo12:.LANCHOR5 + ldr w5, [x1, 40] + ldr x0, [x0, 296] + ldrh w1, [x1, 48] + str w5, [x0, x1, lsl 2] + b .L3797 +.L3765: + ldrb w5, [x7, 1321] + and x1, x2, 65532 + ldr x0, [x28, 280] + str x7, [x29, 144] + add x1, x0, x1 + ldr x0, [x25, 8] + mul w5, w5, w6 lsl w5, w5, 2 sub w5, w5, w2 - and x2, x2, 65532 - add x1, x1, x2 + str w5, [x29, 104] mov w2, w5 - str x5, [x29,96] bl ftl_memcpy - add x6, x19, :lo12:.LANCHOR0 - ldr x0, [x28,24] + ldr x7, [x29, 144] mov w1, 0 - str x6, [x29,136] - ldrb w2, [x6,3360] + ldr x0, [x25, 24] + ldrb w2, [x7, 1946] lsl w2, w2, 1 bl ftl_memset - ldr x1, [x28,24] - mov w0, 15555 - movk w0, 0xf55f, lsl 16 - ldr x5, [x29,96] - str w0, [x1] + ldr x0, [x25, 24] + mov w1, 15555 + movk w1, 0xf55f, lsl 16 + ldr w5, [x29, 104] + str w1, [x0] mov w1, w5 - ldr x2, [x28,24] - ldr x0, [x28,8] - str x2, [x29,144] + ldr x2, [x25, 24] + ldr x0, [x25, 8] + str x2, [x29, 144] bl js_hash - ldr x2, [x29,144] - ldr x6, [x29,136] - str w0, [x2,4] - ldr x1, [x6,1120] - ldr x0, [x28,24] - ldr w1, [x1,132] - str w1, [x0,8] + ldr x2, [x29, 144] + add x1, x21, :lo12:.LANCHOR0 + str w0, [x2, 4] + ldr x1, [x1, 1128] + ldr x0, [x25, 24] + ldr w1, [x1, 132] + str w1, [x0, 8] mov w1, 1 - ldr x0, [x28,24] - str w1, [x0,12] - b .L3820 -.L3818: - ldrb w2, [x5,1329] - ldr x1, [x6,232] - str x5, [x29,96] - mul w2, w0, w2 - ldr x0, [x28,8] + ldr x0, [x25, 24] + str w1, [x0, 12] + b .L3766 +.L3764: + add x5, x22, :lo12:.LANCHOR3 + ldr x1, [x28, 280] + str x5, [x29, 144] + ldrb w0, [x5, 1321] + ldrh w2, [x5, 1338] + mul w2, w2, w0 + ldr x0, [x25, 8] lsl w2, w2, 2 - str x6, [x29,136] bl ftl_memcpy - ldr x5, [x29,96] - ldr x6, [x29,136] - ldrb w1, [x5,1329] - ldrh w0, [x5,1346] + ldr x5, [x29, 144] + ldrb w1, [x5, 1321] + ldrh w0, [x5, 1338] mul w0, w0, w1 - add x1, x19, :lo12:.LANCHOR0 + ldrb w1, [x5, 1946] lsl w2, w0, 2 - ldrb w1, [x1,3360] cmp w1, w0, lsr 6 - bge .L3821 - ldrh w1, [x6,998] + bge .L3767 + ldrh w1, [x28, 462] sub w2, w1, w2 -.L3821: - ldr x1, [x29,144] - ldr x5, [x28,8] +.L3767: + ldr x5, [x25, 8] + ldr x1, [x28, 288] add x0, x5, w0, sxtw 2 - add x1, x1, :lo12:.LANCHOR5 - ldr x1, [x1,240] bl ftl_memcpy - add x5, x19, :lo12:.LANCHOR0 - ldr x0, [x28,24] + add x5, x22, :lo12:.LANCHOR3 + ldr x0, [x25, 24] mov w1, 0 - str x5, [x29,136] - ldrb w2, [x5,3360] + str x5, [x29, 104] + ldrb w2, [x5, 1946] lsl w2, w2, 1 bl ftl_memset - ldr x1, [x28,24] - mov w0, 15555 - movk w0, 0xf55f, lsl 16 - str w0, [x1] - add x1, x21, :lo12:.LANCHOR3 - ldr x2, [x28,24] - ldrh w0, [x1,1346] - ldrb w1, [x1,1329] - str x2, [x29,144] - mul w1, w0, w1 - ldr x0, [x28,8] + ldr x0, [x25, 24] + mov w1, 15555 + ldr x5, [x29, 104] + movk w1, 0xf55f, lsl 16 + str w1, [x0] + ldrb w0, [x5, 1321] + ldrh w1, [x5, 1338] + ldr x2, [x25, 24] + str x2, [x29, 144] + mul w1, w1, w0 + ldr x0, [x25, 8] lsl w1, w1, 2 bl js_hash - ldr x2, [x29,144] - ldr x5, [x29,136] - str w0, [x2,4] - ldr x1, [x5,1120] - ldr x0, [x28,24] - ldr w1, [x1,132] - b .L3932 -.L3816: - ldr x0, [x29,176] + ldr x2, [x29, 144] + add x1, x21, :lo12:.LANCHOR0 + str w0, [x2, 4] + ldr x1, [x1, 1128] + ldr x0, [x25, 24] + ldr w1, [x1, 132] +.L3867: + str w1, [x0, 8] + b .L3766 +.L3762: + ldr x0, [x29, 168] lsl x0, x0, 2 - str x0, [x29,136] - ldr x0, [x29,144] - ldr x1, [x29,136] - add x0, x0, :lo12:.LANCHOR5 - ldr x0, [x0,240] - ldr w0, [x0,x1] + str x0, [x29, 144] + ldr x0, [x28, 288] + ldr x1, [x29, 144] + ldr w0, [x0, x1] mov w1, 1 - str w0, [x28,40] - mov x0, x28 + str w0, [x25, 40] + mov x0, x25 bl sblk_read_page - ldr w0, [x28,52] + ldr w0, [x25, 52] cmp w0, 512 - beq .L3822 - cmn w0, #1 - bne .L3823 -.L3822: - add x1, x19, :lo12:.LANCHOR0 - add x5, x21, :lo12:.LANCHOR3 - ldrb w2, [x1,1257] - mov w1, 24 - ldrh w0, [x5,1312] - sub w2, w1, w2 - mov w1, 1 - sub w2, w2, w0 - lsl w2, w1, w2 - ldr w1, [x28,40] - sub w2, w2, #1 - lsr w0, w1, w0 - ldrb w1, [x5,1314] - and w0, w2, w0 - udiv w0, w0, w1 + ccmn w0, #1, 4, ne + bne .L3769 + add x0, x21, :lo12:.LANCHOR0 + add x2, x22, :lo12:.LANCHOR3 + ldrb w1, [x0, 1205] + mov w0, 24 + ldrh w5, [x2, 1304] + sub w0, w0, w1 + ldrb w2, [x2, 1306] + sub w1, w0, w5 + mov w0, 1 + lsl w0, w0, w1 + ldr w1, [x25, 40] + sub w0, w0, #1 + lsr w1, w1, w5 + and w0, w0, w1 mov x1, 0 + udiv w0, w0, w2 bl ftl_sblk_dump - ldr w0, [x28,52] + ldr w0, [x25, 52] cmp w0, 512 - beq .L3870 - cmn w0, #1 - bne .L3823 -.L3870: - ldr x0, [x28,24] + ccmn w0, #1, 4, ne + bne .L3769 + ldr x0, [x25, 24] mov w1, -1 - str w1, [x0,4] -.L3823: - ldr w0, [x28,52] + str w1, [x0, 4] + ldr w0, [x25, 52] cmp w0, 512 - beq .L3871 - cmn w0, #1 - bne .L3826 -.L3871: - ldr x1, [x29,104] + ccmp w0, w1, 4, ne + bne .L3769 + ldr x0, [x29, 112] mov w2, 1223 - ldr x0, [x29,112] + add x1, x0, 1024 + adrp x0, .LC0 + add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L3826: - ldr x1, [x28,24] - add x0, x19, :lo12:.LANCHOR0 - ldr w2, [x1,4] - ldr w0, [x0,3372] +.L3769: + ldr x1, [x25, 24] + add x0, x21, :lo12:.LANCHOR0 + ldr w0, [x0, 3364] + ldr w2, [x1, 4] cmp w2, w0 - bcc .L3828 + bcc .L3770 mov w0, -1 - str w0, [x1,4] -.L3828: - ldr x0, [x28,24] - ldr x2, [x29,136] - ldr w1, [x0,4] - ldr x0, [x29,144] + str w0, [x1, 4] +.L3770: + ldr x0, [x25, 24] + ldr x2, [x29, 144] + ldr w1, [x0, 4] + ldr x0, [x28, 280] + str w1, [x0, x2] + ldr w1, [x25, 40] + ldr x0, [x25, 24] + b .L3867 +.L3772: + udiv w0, w27, w0 + ldrb w7, [x7, 1213] + ldrh w8, [x5, 1410] + cbz w7, .L3775 + ldr x4, [x29, 184] + add w7, w0, w19 + add w0, w0, w0, lsl 1 + sub w0, w27, w0 + add x7, x4, w7, sxtw 1 + ldrh w5, [x7, 16] + madd w5, w5, w8, w26 + add w0, w5, w0, uxth +.L3871: + str w0, [x6, 40] + adrp x0, .LANCHOR5 add x0, x0, :lo12:.LANCHOR5 - ldr x0, [x0,232] - str w1, [x0,x2] - ldr x0, [x28,24] - ldr w1, [x28,40] -.L3932: - str w1, [x0,8] -.L3820: - ldr x0, [x28,24] - str wzr, [x0,16] - b .L3814 -.L3940: - ldrb w1, [x5,1956] - and w6, w27, 1 - add w0, w26, w6 - cbz w1, .L3831 - adrp x1, .LANCHOR2 - add x1, x1, :lo12:.LANCHOR2 - add x1, x1, 2136 - ldrh w1, [x1,w26,sxtw 1] - cbz w6, .L3831 - cmp w1, w26 - csel w0, w0, w1, cs -.L3831: - add x6, x21, :lo12:.LANCHOR3 - ldr x4, [x29,184] - udiv w1, w27, w23 - add x5, x19, :lo12:.LANCHOR0 - add x5, x5, x2, lsl 6 - add w1, w1, w20 - ldrh w6, [x6,1418] - add x1, x4, w1, sxtw 1 - ldrh w1, [x1,16] - madd w0, w1, w6, w0 - orr w0, w0, 50331648 - str w0, [x5,1352] - b .L3832 -.L3833: - add w0, w0, w20 - ldr x4, [x29,184] - add x0, x4, w0, sxtw 1 - ldrh w5, [x0,16] - madd w0, w5, w7, w26 - b .L3936 -.L3829: - cmp w0, 2 - bne .L3832 - ldrb w6, [x5,1330] - add x1, x1, 32 - ldrh w0, [x5,1418] - cbnz w6, .L3836 - ldr w4, [x29,160] - add w5, w4, w20 - ldr x4, [x29,184] - add x5, x4, w5, sxtw 1 - ldrh w5, [x5,16] - madd w0, w5, w0, w26 - b .L3933 -.L3836: - add w5, w20, w27, lsr 1 - ldr x4, [x29,184] - add x5, x4, w5, sxtw 1 - ldrh w5, [x5,16] - madd w0, w5, w0, w26 - and w5, w27, 1 - add w0, w0, w5 -.L3933: - orr w0, w0, 33554432 - str w0, [x1,8] -.L3832: - add x0, x19, :lo12:.LANCHOR0 - add x0, x0, 1312 - add x2, x0, x2, lsl 6 - add x0, x3, :lo12:.LANCHOR5 - ldrh w1, [x2,48] - ldr x0, [x0,248] - ldr w5, [x2,40] - str w5, [x0,x1,lsl 2] - b .L3857 -.L3941: + add x5, x21, :lo12:.LANCHOR0 + add x5, x5, 1304 + add x1, x5, x1, lsl 6 + ldr x5, [x0, 296] + mov w0, 3 + udiv w0, w27, w0 + ldrh w6, [x1, 48] + ldr w1, [x1, 40] + add w0, w0, w0, lsl 1 + sub w0, w27, w0 + and w0, w0, 65535 + add w0, w0, 1 + orr w0, w1, w0, lsl 24 + str w0, [x5, x6, lsl 2] +.L3797: + add x1, x22, :lo12:.LANCHOR3 + ldrb w0, [x1, 1950] + cbz w0, .L3779 adrp x0, .LANCHOR2 add x0, x0, :lo12:.LANCHOR2 add x0, x0, 2136 - ldrh w0, [x0,w26,sxtw 1] + ldrh w0, [x0, w26, sxtw 1] cmp w0, w26 - bcs .L3837 - tbz x27, 0, .L3837 - ldr x0, [x1,1336] - mov w2, -1 - ldr x4, [x29,176] - add x3, x3, :lo12:.LANCHOR5 - strb w2, [x0,x4] - add x2, x29, 192 - ldr w0, [x29,160] - ldr x0, [x2,w0,sxtw 3] - ldrh w2, [x29,128] - strh w2, [x0,48] - ldrb w2, [x0,1] - ldr x0, [x1,1336] - ldr x1, [x29,120] - strb w2, [x0,x1] + bcs .L3779 + tbz x27, 0, .L3779 + ldr x0, [x1, 1328] + mov w5, -1 + ldr x4, [x29, 168] + strb w5, [x0, x4] + ldr x0, [x3, x2, lsl 3] + ldrh w2, [x29, 152] + strh w2, [x0, 48] + ldrb w2, [x0, 1] + ldr x0, [x1, 1328] + ldr x1, [x29, 120] + strb w2, [x0, x1] + adrp x0, .LANCHOR5 + add x0, x0, :lo12:.LANCHOR5 mov w1, -1 - ldr x0, [x3,240] - str w1, [x0,x4,lsl 2] - b .L3837 -.L3942: - add x1, x21, :lo12:.LANCHOR3 - ldrb w0, [x1,1328] - cmp w0, 3 - add x0, x29, 192 - bne .L3839 - add x2, x19, :lo12:.LANCHOR0 - ldrb w2, [x2,1268] - cbz w2, .L3840 - ldr w1, [x29,168] - sub w2, w1, #1 - mov w1, 0 -.L3841: - cmp w1, w2 - bge .L3935 - ldr x3, [x0,w1,sxtw 3] + ldr x0, [x0, 288] + str w1, [x0, x4, lsl 2] +.L3779: + ldr w0, [x29, 160] + add w0, w0, 1 + str w0, [x29, 160] + b .L3756 +.L3775: + ldr x4, [x29, 184] + add w0, w0, w19 + add x0, x4, w0, sxtw 1 + ldrh w0, [x0, 16] + madd w0, w0, w8, w26 + b .L3871 +.L3771: + cmp w0, 2 + bne .L3778 + ldrb w0, [x5, 1322] + ldrh w7, [x5, 1410] + cbnz w0, .L3777 + ldr w0, [x29, 164] + add w5, w19, w0 + ldr x0, [x29, 184] + add x5, x0, w5, sxtw 1 + ldrh w0, [x5, 16] + madd w0, w0, w7, w26 +.L3868: + orr w0, w0, 33554432 + str w0, [x6, 40] + b .L3778 +.L3777: + ldr x0, [x29, 184] + add w5, w19, w27, lsr 1 + add x5, x0, w5, sxtw 1 + ldrh w0, [x5, 16] + and w5, w27, 1 + madd w0, w0, w7, w26 + add w0, w0, w5 + b .L3868 +.L3784: + ldr x3, [x0, w1, sxtw 3] add w1, w1, 1 - ldr x5, [x0,w1,sxtw 3] - uxth w1, w1 - ldrb w5, [x5,1] + ldr x5, [x0, w1, sxtw 3] + and w1, w1, 65535 + ldrb w5, [x5, 1] strb w5, [x3] - b .L3841 -.L3840: - ldrb w1, [x1,1344] - cbnz w1, .L3934 - cmp w25, 1 + b .L3783 +.L3782: + ldrb w2, [x1, 1336] + ldr x1, [x29, 192] + cbz w2, .L3786 +.L3789: + strb wzr, [x1, 60] + b .L3788 +.L3786: + ldr w2, [x29, 180] + cmp w2, 1 + bne .L3787 mov w2, 9 - beq .L3934 - cmp w25, 2 - bne .L3847 - mov w2, 13 -.L3934: - ldr x1, [x29,192] - strb w2, [x1,60] - b .L3846 -.L3847: - ldr x2, [x29,192] - strb w1, [x2,60] -.L3846: +.L3869: + strb w2, [x1, 60] +.L3788: + mov w2, w23 add x1, x0, 24 - mov w2, w24 bl sblk_xlc_prog_pages - b .L3843 -.L3839: - ldrb w2, [x1,1330] - cbz w2, .L3848 - ldrb w1, [x1,1331] - cbnz w1, .L3849 -.L3848: - ldr w1, [x29,168] - sub w2, w1, #1 - mov w1, 0 - b .L3850 -.L3849: - mov w1, w24 - bl sblk_3d_mlc_prog_pages - b .L3843 -.L3850: - cmp w1, w2 - bge .L3935 - ldr x3, [x0,w1,sxtw 3] - add w1, w1, 1 - ldr x5, [x0,w1,sxtw 3] - uxth w1, w1 - ldrb w5, [x5,1] - strb w5, [x3] - b .L3850 -.L3935: - ldr x0, [x0,w2,sxtw 3] - mov w1, -1 - strb w1, [x0] - ldr x0, [x29,192] - ldrb w1, [x29,168] - bl sblk_prog_page -.L3843: - add x1, x21, :lo12:.LANCHOR3 - ldrb w0, [x1,1344] - cbz w0, .L3852 - add w0, w24, w24, lsl 1 - b .L3853 -.L3852: - ldrb w0, [x1,1330] - cbz w0, .L3854 - lsl w0, w24, 1 - b .L3853 -.L3854: - add x0, x19, :lo12:.LANCHOR0 - ldrb w2, [x0,1268] - mov w0, w24 - cbz w2, .L3853 - ldrb w1, [x1,1956] - ldrh w0, [x29,168] - cbz w1, .L3853 - adrp x1, .LANCHOR2 - add x1, x1, :lo12:.LANCHOR2 - add x1, x1, 2136 - ldrh w1, [x1,w26,sxtw 1] - cmp w1, w26 - csel w0, w0, w24, cs -.L3853: - add x19, x19, :lo12:.LANCHOR0 - add x21, x21, :lo12:.LANCHOR3 - ldr x2, [x19,3392] - ldr w1, [x2,52] - add w1, w1, w0 - str w1, [x2,52] - ldr x2, [x29,184] - ldrh w1, [x19,5530] - add w0, w0, w1 - ldrh w1, [x21,1346] - uxth w0, w0 - strh w0, [x19,5530] - ldrb w2, [x2,9] - mul w1, w1, w2 - cmp w0, w1 - blt .L3855 - ldr x0, [x19,1120] - strh wzr, [x0,86] -.L3855: +.L3785: + add x0, x22, :lo12:.LANCHOR3 + ldrb w1, [x0, 1336] + cbz w1, .L3794 + ldr w0, [x29, 128] + add w23, w23, w0 + and w23, w23, 65535 +.L3795: + add x21, x21, :lo12:.LANCHOR0 + add x22, x22, :lo12:.LANCHOR3 + ldr x1, [x21, 3384] + ldr w0, [x1, 52] + add w0, w0, w23 + str w0, [x1, 52] + ldr x1, [x29, 184] + ldrh w0, [x21, 5522] + add w23, w23, w0 + ldrh w0, [x22, 1338] + and w23, w23, 65535 + strh w23, [x21, 5522] + ldrb w1, [x1, 9] + mul w0, w0, w1 + cmp w23, w0 + blt .L3796 + ldr x0, [x21, 1128] + strh wzr, [x0, 86] +.L3796: bl gc_write_completed -.L3783: - 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 + b .L3733 +.L3787: + ldr w2, [x29, 180] + cmp w2, 2 + bne .L3789 + mov w2, 13 + b .L3869 +.L3781: + ldrb w2, [x1, 1322] + cbz w2, .L3807 + ldrb w1, [x1, 1323] + cbnz w1, .L3791 +.L3790: + ldr w2, [x29, 176] + sub w2, w2, #1 +.L3792: + cmp w1, w2 + bge .L3870 + ldr x3, [x0, w1, sxtw 3] + add w1, w1, 1 + ldr x5, [x0, w1, sxtw 3] + and w1, w1, 65535 + ldrb w5, [x5, 1] + strb w5, [x3] + b .L3792 +.L3807: + mov w1, 0 + b .L3790 +.L3791: + mov w1, w23 + bl sblk_3d_mlc_prog_pages + b .L3785 +.L3794: + ldrb w1, [x0, 1322] + cbnz w1, .L3808 + add x1, x21, :lo12:.LANCHOR0 + ldrb w1, [x1, 1212] + cbz w1, .L3795 + ldrb w0, [x0, 1950] + ldrh w1, [x29, 176] + cbz w0, .L3809 + adrp x0, .LANCHOR2 + add x0, x0, :lo12:.LANCHOR2 + add x0, x0, 2136 + ldrh w0, [x0, w26, sxtw 1] + cmp w0, w26 + csel w23, w23, w1, cc + b .L3795 +.L3808: + ldr w23, [x29, 156] + b .L3795 +.L3809: + mov w23, w1 + b .L3795 .size gc_do_copy_back, .-gc_do_copy_back .align 2 .global zftl_do_gc .type zftl_do_gc, %function zftl_do_gc: sub sp, sp, #128 - stp x29, x30, [sp,16] + stp x29, x30, [sp, 16] add x29, sp, 16 - stp x19, x20, [sp,32] + stp x19, x20, [sp, 32] adrp x19, .LANCHOR0 - adrp x20, .LANCHOR5 - stp x25, x26, [sp,80] - mov w26, w0 + stp x27, x28, [sp, 96] + mov w27, w0 add x0, x19, :lo12:.LANCHOR0 - stp x21, x22, [sp,48] - stp x23, x24, [sp,64] - stp x27, x28, [sp,96] - cmp w26, 1 - ldrh w23, [x0,3380] - ldrh w22, [x0,3376] - ldr x24, [x0,1120] - add w22, w23, w22 - ldrh w25, [x0,3378] - uxth w22, w22 - beq .L3944 -.L3955: + stp x21, x22, [sp, 48] + stp x23, x24, [sp, 64] + cmp w27, 1 + stp x25, x26, [sp, 80] + adrp x20, .LANCHOR5 + ldrh w24, [x0, 3372] + ldrh w22, [x0, 3368] + ldrh w23, [x0, 3370] + add w22, w24, w22 + ldr x25, [x0, 1128] + and w22, w22, 65535 + beq .L3873 +.L3885: add x0, x20, :lo12:.LANCHOR5 - mov w1, 16 - ldrb w2, [x0,218] - cmp w2, 6 - bhi .L4140 - adrp x0, .L3947 - add x0, x0, :lo12:.L3947 - ldrh w0, [x0,w2,uxtw #1] - adr x1, .Lrtx3947 + ldrb w1, [x0, 264] + cmp w1, 6 + bhi .L4000 + adrp x0, .L3876 + add x0, x0, :lo12:.L3876 + ldrh w0, [x0,w1,uxtw #1] + adr x1, .Lrtx3876 add x0, x1, w0, sxth #2 br x0 -.Lrtx3947: +.Lrtx3876: .section .rodata .align 0 .align 2 -.L3947: - .2byte (.L3946 - .Lrtx3947) / 4 - .2byte (.L3948 - .Lrtx3947) / 4 - .2byte (.L3949 - .Lrtx3947) / 4 - .2byte (.L3950 - .Lrtx3947) / 4 - .2byte (.L3951 - .Lrtx3947) / 4 - .2byte (.L4073 - .Lrtx3947) / 4 - .2byte (.L3953 - .Lrtx3947) / 4 +.L3876: + .2byte (.L3875 - .Lrtx3876) / 4 + .2byte (.L3877 - .Lrtx3876) / 4 + .2byte (.L3878 - .Lrtx3876) / 4 + .2byte (.L3879 - .Lrtx3876) / 4 + .2byte (.L3880 - .Lrtx3876) / 4 + .2byte (.L3881 - .Lrtx3876) / 4 + .2byte (.L3882 - .Lrtx3876) / 4 .text -.L3944: +.L3881: + add x21, x19, :lo12:.LANCHOR0 + mov w23, 0 + add x21, x21, 3416 +.L3883: + bl gc_check_data_one_wl + cbz w0, .L3996 + add x19, x19, :lo12:.LANCHOR0 + add x20, x20, :lo12:.LANCHOR5 + ldr x0, [x19, 1128] + strh wzr, [x19, 3472] + ldrh w0, [x0, 80] + bl ftl_free_sblk + ldr x1, [x19, 1128] + mov w0, -1 + ldr x2, [x19, 3384] + strh w0, [x1, 80] + strh w0, [x2, 126] + strh w0, [x1, 130] + ldr x0, [x19, 3424] + bl zbuf_free + strb wzr, [x20, 264] + str xzr, [x19, 3424] + b .L4090 +.L3873: add x0, x20, :lo12:.LANCHOR5 - ldr w21, [x0,1004] - cbnz w21, .L3954 - ldr w0, [x0,1008] - cbz w0, .L3955 -.L3954: - adrp x0, .LANCHOR3+1388 - ldrh w0, [x0,#:lo12:.LANCHOR3+1388] + ldr w21, [x0, 468] + cbnz w21, .L3884 + ldr w0, [x0, 472] + cbz w0, .L3885 +.L3884: + adrp x0, .LANCHOR3+1380 + ldrh w0, [x0, #:lo12:.LANCHOR3+1380] cmp w22, w0, lsr 2 - bls .L3955 + bls .L3885 add x0, x19, :lo12:.LANCHOR0 - ldrh w0, [x0,3400] + ldrh w0, [x0, 3392] cmp w0, w22 - bcs .L3955 + bcs .L3885 add w21, w21, 20 bl timer_get_time cmp w21, w0 - bcs .L3956 + bcs .L3886 add x0, x20, :lo12:.LANCHOR5 - str wzr, [x0,1004] -.L3956: - add x27, x20, :lo12:.LANCHOR5 - ldr w21, [x27,1008] + str wzr, [x0, 468] +.L3886: + add x26, x20, :lo12:.LANCHOR5 + ldr w21, [x26, 472] bl timer_get_time add w21, w21, 20 cmp w21, w0 - bcs .L3957 - str wzr, [x27,1008] -.L3957: + bcs .L3887 + str wzr, [x26, 472] +.L3887: add x0, x19, :lo12:.LANCHOR0 - ldr x0, [x0,1120] - ldrh w0, [x0,124] - cbz w0, .L4180 - b .L3955 -.L3946: + ldr x0, [x0, 1128] + ldrh w0, [x0, 124] + cbnz w0, .L3885 +.L4000: + mov w23, 16 + b .L3872 +.L3875: add x0, x19, :lo12:.LANCHOR0 - add w23, w25, w23 - ldrh w2, [x24,80] - uxth w23, w23 - ldrh w1, [x0,3382] - ldrh w25, [x0,3384] - add w25, w25, w1 + ldrh w2, [x25, 80] + add w24, w24, w23 + and w24, w24, 65535 + ldrh w1, [x0, 3376] + ldrh w26, [x0, 3374] + add w26, w26, w1 mov w1, 65535 + and w26, w26, 65535 cmp w2, w1 - uxth w25, w25 - beq .L3958 - cbnz w26, .L3959 - ldrh w0, [x0,3400] + beq .L3888 + cbnz w27, .L3889 + ldrh w0, [x0, 3392] cmp w22, w0, lsl 1 - bge .L4180 -.L3959: + bge .L4000 +.L3889: adrp x21, .LANCHOR3 - add x26, x21, :lo12:.LANCHOR3 - add x0, x26, 1376 - ldrh w1, [x26,1386] + add x5, x21, :lo12:.LANCHOR3 + add x0, x5, 1368 + ldrh w1, [x5, 1378] add w1, w1, 1 - uxth w1, w1 - strh w1, [x26,1386] + and w1, w1, 65535 + strh w1, [x5, 1378] bl _list_get_gc_head_node - uxth w2, w0 + and w2, w0, 65535 mov w1, 65535 cmp w2, w1 - beq .L3961 + beq .L3891 add x3, x20, :lo12:.LANCHOR5 ubfiz x2, x2, 1, 16 - ldr w1, [x3,220] + ldr w1, [x3, 268] add w1, w1, 1 - str w1, [x3,220] + str w1, [x3, 268] add x3, x19, :lo12:.LANCHOR0 - ldr x4, [x3,1112] - ldrh w2, [x4,x2] - ldrh w4, [x26,1384] + ldr x4, [x3, 1120] + ldrh w2, [x4, x2] + ldrh w4, [x5, 1376] cmp w4, w2 - bcs .L3962 - ldrh w4, [x3,1088] + bcs .L3892 + ldrh w4, [x3, 1096] cmp w1, w4, lsr 4 - bls .L3961 - ldrh w1, [x3,3402] + bls .L3891 + ldrh w1, [x3, 3406] cmp w1, w2 - bls .L3961 -.L3962: - add x2, x21, :lo12:.LANCHOR3 + bls .L3891 +.L3892: + add x1, x21, :lo12:.LANCHOR3 + ldrb w2, [x1, 1337] mov w1, 0 - ldrb w2, [x2,1345] bl gc_add_sblk - cbz w0, .L3963 + cbz w0, .L3893 add x20, x20, :lo12:.LANCHOR5 mov w0, 1 - str wzr, [x20,220] - strb w0, [x20,218] - b .L4180 -.L3961: + str wzr, [x20, 268] + strb w0, [x20, 264] + b .L4000 +.L3891: add x0, x21, :lo12:.LANCHOR3 - strh wzr, [x0,1386] -.L3963: - cmp w23, 15 - mov w26, 2 - bls .L3964 - cbz w25, .L4075 + strh wzr, [x0, 1378] +.L3893: + cmp w24, 15 + bls .L4002 add x1, x19, :lo12:.LANCHOR0 add x0, x21, :lo12:.LANCHOR3 - mov w26, 1 - ldrh w1, [x1,3386] - ldrh w0, [x0,1390] + ldrh w1, [x1, 3378] + ldrh w0, [x0, 1382] cmp w1, w0 - bls .L3964 -.L4075: - mov w26, 2 -.L3964: + bhi .L4002 + cmp w26, 0 + cset w23, eq + add w23, w23, 1 +.L3894: adrp x0, .LANCHOR2 - ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 8, .L3965 + ldr w0, [x0, #:lo12:.LANCHOR2] + tbz x0, 8, .L3895 add x19, x19, :lo12:.LANCHOR0 - add x1, x21, :lo12:.LANCHOR3 + mov w4, w24 mov w3, w22 - mov w4, w23 - ldr x0, [x19,1120] - ldrb w2, [x1,1345] mov w1, 2807 - ldrh w5, [x0,124] - ldrh w6, [x0,120] - ldrh w7, [x0,122] - ldrh w0, [x24,80] + ldr x0, [x19, 1128] + ldrh w7, [x0, 122] + ldrh w6, [x0, 120] + ldrh w5, [x0, 124] + add x0, x21, :lo12:.LANCHOR3 + ldrb w2, [x0, 1337] + ldrh w0, [x25, 80] str w0, [sp] adrp x0, .LC299 add x0, x0, :lo12:.LC299 bl printk -.L3965: +.L3895: add x21, x21, :lo12:.LANCHOR3 - mov w1, w26 mov w2, 1 - ldrb w0, [x21,1345] + mov w1, w23 + ldrb w0, [x21, 1337] bl gc_search_src_blk - cmp w0, wzr - ble .L3966 -.L3967: + cmp w0, 0 + ble .L3896 +.L3897: add x20, x20, :lo12:.LANCHOR5 mov w0, 1 - b .L4182 -.L3966: - ldrb w0, [x21,1345] - mov w1, 3 +.L4092: + strb w0, [x20, 264] + b .L4000 +.L4002: + mov w23, 2 + b .L3894 +.L3896: + ldrb w0, [x21, 1337] mov w2, 1 + mov w1, 3 bl gc_search_src_blk - cmp w0, wzr - bgt .L3967 - b .L4180 -.L3958: - cmp w26, 1 - bne .L3968 - ldr x1, [x0,3392] - ldrh w1, [x1,150] - cbz w1, .L3969 - ldrh w0, [x0,3380] + cmp w0, 0 + bgt .L3897 + b .L4000 +.L3888: + cmp w27, 1 + bne .L3898 + ldr x1, [x0, 3384] + ldrh w1, [x1, 150] + cbz w1, .L3899 + ldrh w0, [x0, 3372] cmp w0, 8 - bls .L3969 + bls .L3899 bl gc_ink_check_sblk -.L3969: +.L3899: bl gc_scan_static_data adrp x21, .LANCHOR3 add x0, x19, :lo12:.LANCHOR0 - ldr x0, [x0,1120] - ldrh w0, [x0,122] - cbz w0, .L3970 -.L3971: + ldr x0, [x0, 1128] + ldrh w0, [x0, 122] + cbz w0, .L3900 +.L3901: add x21, x21, :lo12:.LANCHOR3 mov w0, 1 add x20, x20, :lo12:.LANCHOR5 - strb w0, [x21,1345] -.L4182: - strb w0, [x20,218] - b .L4180 -.L3970: + strb w0, [x21, 1337] + b .L4092 +.L3900: bl gc_static_wearleveling - cbnz w0, .L3971 + mov w23, w0 + cbnz w0, .L3901 bl gc_block_vpn_scan - cbz w23, .L3972 - cmp w22, w25 - bcs .L3973 + cbz w24, .L3902 + cmp w22, w26 + bcs .L3903 add x0, x21, :lo12:.LANCHOR3 - ldrh w0, [x0,1388] + ldrh w0, [x0, 1380] cmp w0, w22 - bhi .L3974 -.L3973: + bhi .L3904 +.L3903: add x1, x21, :lo12:.LANCHOR3 - add w0, w22, w25 - ldrh w2, [x1,1388] + add w0, w22, w26 + ldrh w2, [x1, 1380] cmp w0, w2 - blt .L3974 + blt .L3904 add x0, x19, :lo12:.LANCHOR0 - ldrh w2, [x0,3386] - ldrh w0, [x1,1390] + ldrh w2, [x0, 3378] + ldrh w0, [x1, 1382] cmp w2, w0 - bcc .L3972 -.L3974: - add x24, x21, :lo12:.LANCHOR3 + bcc .L3902 +.L3904: + add x5, x21, :lo12:.LANCHOR3 mov w0, 1 - strb w0, [x24,1345] + strb w0, [x5, 1337] mov w0, 16 bl zftl_get_gc_node.part.10 - uxth w1, w0 + and w1, w0, 65535 mov w2, 65535 cmp w1, w2 - beq .L3975 + beq .L3905 add x2, x19, :lo12:.LANCHOR0 ubfiz x1, x1, 1, 16 - ldr x3, [x2,1112] + ldr x3, [x2, 1120] add x2, x20, :lo12:.LANCHOR5 - ldrh w3, [x3,x1] - ldrh w1, [x2,224] + ldrh w3, [x3, x1] + ldrh w1, [x2, 272] cmp w3, w1 - bcs .L3975 + bcs .L3905 cmp w22, 2 - bls .L3975 - str wzr, [x2,220] + bls .L3905 + str wzr, [x2, 268] mov w1, 1 + strb wzr, [x5, 1337] mov w2, 0 - strb wzr, [x24,1345] bl gc_add_sblk - cbnz w0, .L3967 -.L3975: - add x24, x21, :lo12:.LANCHOR3 + cbnz w0, .L3897 +.L3905: + add x5, x21, :lo12:.LANCHOR3 mov w1, 0 - add x0, x24, 1368 + add x0, x5, 1360 bl _list_get_gc_head_node - uxth w1, w0 + and w1, w0, 65535 mov w2, 65535 cmp w1, w2 - beq .L3976 + beq .L3906 add x2, x19, :lo12:.LANCHOR0 ubfiz x1, x1, 1, 16 - ldr x3, [x2,1112] + ldr x3, [x2, 1120] add x2, x20, :lo12:.LANCHOR5 - ldrh w3, [x3,x1] - ldrh w1, [x2,224] + ldrh w3, [x3, x1] + ldrh w1, [x2, 272] cmp w3, w1 - bcs .L3976 + bcs .L3906 cmp w22, 2 - bls .L3976 - str wzr, [x2,220] + bls .L3906 + str wzr, [x2, 268] mov w1, 1 + strb wzr, [x5, 1337] mov w2, 0 - strb wzr, [x24,1345] bl gc_add_sblk - cbnz w0, .L3967 -.L3976: + cbnz w0, .L3897 +.L3906: add x1, x20, :lo12:.LANCHOR5 add x2, x21, :lo12:.LANCHOR3 - ldrh w0, [x1,224] - ldrh w24, [x2,1384] + ldrh w0, [x1, 272] + ldrh w8, [x2, 1376] add w0, w0, 1 - uxth w0, w0 - strh w0, [x1,224] - cmp w0, w24, lsr 5 - bls .L3977 + and w0, w0, 65535 + strh w0, [x1, 272] + cmp w0, w8, lsr 5 + bls .L3907 mov w0, 4 - strh w0, [x1,224] -.L3977: - add x28, x20, :lo12:.LANCHOR5 - add x2, x19, :lo12:.LANCHOR0 - add x27, x21, :lo12:.LANCHOR3 - ldr w0, [x28,220] - ldrh w1, [x2,1088] + strh w0, [x1, 272] +.L3907: + add x6, x20, :lo12:.LANCHOR5 + add x7, x19, :lo12:.LANCHOR0 + add x5, x21, :lo12:.LANCHOR3 + ldr w0, [x6, 268] + ldrh w1, [x7, 1096] add w0, w0, 1 - strh wzr, [x27,1360] - str w0, [x28,220] - strh wzr, [x27,1362] + strh wzr, [x5, 1352] + strh wzr, [x5, 1354] + strh wzr, [x5, 1356] cmp w0, w1, lsr 5 - strh wzr, [x27,1364] - bls .L3978 - ldrh w0, [x2,3386] - cmp w0, w23 - bls .L3978 + str w0, [x6, 268] + bls .L3908 + ldrh w0, [x7, 3378] + cmp w0, w24 + bls .L3908 mov w1, 0 - add x0, x27, 1376 - str x2, [x29,104] + add x0, x5, 1368 bl _list_get_gc_head_node - uxth w0, w0 + and w0, w0, 65535 mov w1, 65535 cmp w0, w1 - beq .L4174 - ldr x2, [x29,104] + bne .L3909 +.L4082: + mov w23, 16 + b .L3910 +.L3909: + ldr x1, [x7, 1120] ubfiz x0, x0, 1, 16 - ldr x1, [x2,1112] - ldrh w1, [x1,x0] - ldrb w0, [x27,1329] - mul w0, w24, w0 - mov w24, 16 + ldrh w1, [x1, x0] + ldrb w0, [x5, 1321] + mul w0, w0, w8 cmp w1, w0 - bgt .L3984 - str wzr, [x28,220] + bgt .L4082 + ldrb w0, [x5, 1337] + mov w2, 4 mov w1, 2 - ldrb w0, [x27,1345] - b .L4173 -.L3978: + str wzr, [x6, 268] +.L4081: + bl gc_search_src_blk + and w0, w0, 65535 + cbz w0, .L4082 + b .L3897 +.L3908: add x0, x19, :lo12:.LANCHOR0 - add x1, x21, :lo12:.LANCHOR3 - ldrh w3, [x0,3386] - ldrh w2, [x1,1390] - cmp w3, w2 - bcc .L3981 - ldrb w0, [x1,1345] + add x3, x21, :lo12:.LANCHOR3 + ldrh w2, [x0, 3378] + ldrh w1, [x3, 1382] + cmp w2, w1 + bcc .L3913 mov w2, 1 mov w1, 2 - b .L4172 -.L3981: - ldrh w1, [x0,3382] - cbnz w1, .L3982 - ldrh w1, [x0,3384] + ldrb w0, [x3, 1337] + b .L4081 +.L3913: + ldrh w1, [x0, 3374] + cbnz w1, .L3914 + ldrh w1, [x0, 3376] cmp w1, 8 - bls .L3983 -.L3982: + bls .L3915 +.L3914: add x21, x21, :lo12:.LANCHOR3 - mov w1, 1 - ldrb w0, [x21,1345] -.L4173: mov w2, 4 -.L4172: - bl gc_search_src_blk - uxth w0, w0 - cbnz w0, .L3967 - b .L4174 -.L3983: - ldrh w0, [x0,5534] - mov w24, 16 - cmp w0, wzr - csel w24, w24, wzr, ne - b .L3984 -.L3972: - add x21, x21, :lo12:.LANCHOR3 - add x0, x20, :lo12:.LANCHOR5 - ldrh w2, [x21,1384] - ldrh w1, [x0,224] - cmp w1, w2, lsr 5 - bcc .L4174 - mov w1, 4 - strh w1, [x0,224] -.L4174: - mov w24, 16 - b .L3984 -.L3968: - ldrh w1, [x0,3400] - cmp w1, w22 - bcs .L4174 - ldr x0, [x0,1120] - ldrh w0, [x0,124] - cbz w0, .L4180 - b .L4174 -.L3984: + mov w1, 1 + ldrb w0, [x21, 1337] + b .L4081 +.L3915: + ldrh w0, [x0, 5526] + cbnz w0, .L4082 +.L3910: add x0, x19, :lo12:.LANCHOR0 adrp x21, .LANCHOR3 - ldr w1, [x0,3412] - cbz w1, .L3986 - str wzr, [x0,3412] - cmp w22, 15 + ldr w1, [x0, 3396] + cbz w1, .L3916 + str wzr, [x0, 3396] + cmp w24, 0 + ccmp w22, 15, 2, ne add x0, x21, :lo12:.LANCHOR3 - bhi .L4083 - cbnz w23, .L3987 -.L4083: - strb wzr, [x0,1345] - b .L3989 -.L3987: - mov w1, 1 - strb w1, [x0,1345] -.L3989: - add x27, x21, :lo12:.LANCHOR3 + bls .L3917 + strb wzr, [x0, 1337] +.L3918: + add x5, x21, :lo12:.LANCHOR3 mov w1, 0 - add x0, x27, 1376 + add x0, x5, 1368 bl _list_get_gc_head_node - uxth w1, w0 + and w1, w0, 65535 mov w2, 65535 cmp w1, w2 - beq .L3990 + beq .L3919 add x2, x19, :lo12:.LANCHOR0 ubfiz x1, x1, 1, 16 - ldr x3, [x2,1112] - ldrh w1, [x3,x1] + ldr x3, [x2, 1120] + ldrh w1, [x3, x1] cmp w1, 8 - bhi .L3990 + bhi .L3919 mov w1, 1 - str w1, [x2,3412] - ldrb w2, [x27,1345] + str w1, [x2, 3396] + ldrb w2, [x5, 1337] mov w1, 0 bl gc_add_sblk - cbnz w0, .L3967 -.L3990: - add x27, x21, :lo12:.LANCHOR3 + cbnz w0, .L3897 +.L3919: + add x5, x21, :lo12:.LANCHOR3 mov w1, 0 - add x0, x27, 1368 + add x0, x5, 1360 bl _list_get_gc_head_node - uxth w1, w0 + and w1, w0, 65535 mov w2, 65535 cmp w1, w2 - beq .L3991 + beq .L3920 add x2, x19, :lo12:.LANCHOR0 ubfiz x1, x1, 1, 16 - ldr x3, [x2,1112] - ldrh w1, [x3,x1] + ldr x3, [x2, 1120] + ldrh w1, [x3, x1] cmp w1, 4 - bhi .L3991 + bhi .L3920 mov w1, 1 - str w1, [x2,3412] - ldrb w2, [x27,1345] + str w1, [x2, 3396] + ldrb w2, [x5, 1337] mov w1, 0 bl gc_add_sblk - cbnz w0, .L3967 -.L3991: + cbnz w0, .L3897 +.L3920: mov w0, 0 bl zftl_get_gc_node.part.10 - uxth w1, w0 + and w1, w0, 65535 mov w2, 65535 cmp w1, w2 - beq .L3986 + beq .L3916 add x2, x19, :lo12:.LANCHOR0 ubfiz x1, x1, 1, 16 - ldr x3, [x2,1112] - ldrh w1, [x3,x1] + ldr x3, [x2, 1120] + ldrh w1, [x3, x1] cmp w1, 4 - bhi .L3986 + bhi .L3916 mov w1, 1 - str w1, [x2,3412] + str w1, [x2, 3396] add x2, x21, :lo12:.LANCHOR3 - ldrb w2, [x2,1345] + ldrb w2, [x2, 1337] bl gc_add_sblk - cbnz w0, .L3967 -.L3986: + cbnz w0, .L3897 +.L3916: add x28, x19, :lo12:.LANCHOR0 - add x27, x21, :lo12:.LANCHOR3 + add x25, x21, :lo12:.LANCHOR3 mov w1, 1 - ldr x0, [x28,1120] - strb w1, [x27,1345] - ldrh w3, [x0,124] - cbz w3, .L3992 + ldr x0, [x28, 1128] + strb w1, [x25, 1337] + ldrh w0, [x0, 124] + cbz w0, .L3921 add x20, x20, :lo12:.LANCHOR5 - strb wzr, [x27,1345] - strb w1, [x20,218] - b .L3993 -.L3992: - ldrh w0, [x28,3400] + strb wzr, [x25, 1337] + strb w1, [x20, 264] +.L3872: + mov w0, w23 + ldp x19, x20, [sp, 32] + ldp x21, x22, [sp, 48] + ldp x23, x24, [sp, 64] + ldp x25, x26, [sp, 80] + ldp x27, x28, [sp, 96] + ldp x29, x30, [sp, 16] + add sp, sp, 128 + ret +.L3902: + add x21, x21, :lo12:.LANCHOR3 + add x0, x20, :lo12:.LANCHOR5 + ldrh w2, [x21, 1376] + ldrh w1, [x0, 272] + cmp w1, w2, lsr 5 + bcc .L4082 + mov w1, 4 + strh w1, [x0, 272] + b .L4082 +.L3898: + ldrh w1, [x0, 3392] + cmp w1, w22 + bcs .L4082 + ldr x0, [x0, 1128] + ldrh w0, [x0, 124] + cbz w0, .L4000 + b .L4082 +.L3917: + mov w1, 1 + strb w1, [x0, 1337] + b .L3918 +.L3921: + ldrh w0, [x28, 3392] cmp w22, w0 - bcs .L3994 - cbz w23, .L3995 - cmp w23, 16 - bls .L3996 - ldrh w2, [x28,3386] - ldrh w0, [x27,1390] + bcs .L3922 + cbz w24, .L3923 + cmp w24, 16 + bls .L3924 + ldrh w2, [x28, 3378] + ldrh w0, [x25, 1382] cmp w2, w0 - bhi .L3996 - mov w0, w1 + bhi .L3924 mov w2, 4 - str x3, [x29,104] + mov w0, w1 bl gc_search_src_blk - uxth w0, w0 - ldr x3, [x29,104] - cbz w0, .L4179 - mov w1, w3 - add x0, x27, 1376 + tst w0, 65535 + bne .L3925 +.L4089: + mov w2, 4 + mov w1, 3 + ldrb w0, [x25, 1337] + b .L4084 +.L3925: + mov w1, 0 + add x0, x25, 1368 bl _list_get_gc_head_node - uxth w2, w0 + and w2, w0, 65535 mov w1, 65535 cmp w2, w1 - beq .L4070 + beq .L3928 add x3, x20, :lo12:.LANCHOR5 ubfiz x2, x2, 1, 16 - ldr w1, [x3,220] + ldr w1, [x3, 268] add w1, w1, 1 - str w1, [x3,220] - ldr x3, [x28,1112] - ldrh w2, [x3,x2] - ldrh w3, [x27,1384] + str w1, [x3, 268] + ldr x3, [x28, 1120] + ldrh w2, [x3, x2] + ldrh w3, [x25, 1376] cmp w3, w2 - bcs .L4000 - ldrh w3, [x28,1088] + bcs .L3929 + ldrh w3, [x28, 1096] cmp w1, w3, lsr 4 - bls .L4070 - ldrh w1, [x28,3402] + bls .L3928 + ldrh w1, [x28, 3406] cmp w1, w2 - bls .L4070 -.L4000: + bls .L3928 +.L3929: add x21, x21, :lo12:.LANCHOR3 - mov w1, 0 add x19, x19, :lo12:.LANCHOR0 - ldrb w2, [x21,1345] + mov w1, 0 + ldrb w2, [x21, 1337] bl gc_add_sblk mov w0, 1 - str w0, [x19,3412] + str w0, [x19, 3396] add x0, x20, :lo12:.LANCHOR5 - str wzr, [x0,220] - b .L4070 -.L3996: + str wzr, [x0, 268] +.L3928: + add x20, x20, :lo12:.LANCHOR5 mov w0, 1 - mov w1, 2 - mov w2, w0 - bl gc_search_src_blk - uxth w0, w0 - cbnz w0, .L4070 - add x21, x21, :lo12:.LANCHOR3 - ldrb w0, [x21,1345] - b .L4176 -.L3995: - strb w23, [x27,1345] - cmp w22, 16 - mov w0, w23 - bhi .L4176 - mov w2, w1 - bl gc_search_src_blk - uxth w0, w0 - cbnz w0, .L4070 -.L4179: - ldrb w0, [x27,1345] -.L4176: - mov w1, 3 - mov w2, 4 - bl gc_search_src_blk - uxth w0, w0 - b .L3998 -.L3994: - cmp w26, 1 - mov w1, w24 - bne .L4140 - cmp w22, w0, lsl 1 - bge .L4003 - cmp w25, w23, lsr 1 - bcs .L4004 - ldrh w2, [x28,3386] - ldrh w0, [x27,1390] - cmp w2, w0 - bcs .L4004 - ldrh w0, [x27,1388] - lsr w0, w0, 2 - strh w0, [x28,3400] - b .L4140 -.L4004: - mov w0, 8 - bl zftl_get_gc_node.part.10 - uxth w1, w0 - mov w2, 65535 - cmp w1, w2 - beq .L4005 - add x2, x19, :lo12:.LANCHOR0 - ubfiz x1, x1, 1, 16 - ldr x2, [x2,1112] - ldrh w1, [x2,x1] - cmp w1, 3 - bhi .L4005 - cbz w22, .L4005 - add x1, x21, :lo12:.LANCHOR3 - mov w2, 0 - strb wzr, [x1,1345] - mov w1, 1 - bl gc_add_sblk - cbnz w0, .L4070 -.L4005: - add x4, x21, :lo12:.LANCHOR3 - mov w1, 0 - add x0, x4, 1376 - str x4, [x29,104] - bl _list_get_gc_head_node - uxth w26, w0 - mov w1, 65535 - mov w28, w26 - cmp w26, w1 - ldr x4, [x29,104] - bne .L4006 -.L4011: - cmp w23, 1 - bhi .L4007 - b .L4008 -.L4006: - add x27, x20, :lo12:.LANCHOR5 - add x2, x19, :lo12:.LANCHOR0 - uxtw x26, w26 - ldr w1, [x27,220] - ldrh w3, [x2,1088] - add w1, w1, 1 - str w1, [x27,220] - cmp w1, w3, lsr 4 - bls .L4009 - ldr x1, [x2,1112] - str wzr, [x27,220] - ldrh w3, [x1,x26,lsl 1] - ldrh w1, [x2,3402] - cmp w3, w1 - bcs .L4009 - mov w3, 1 - mov w1, 0 + strb w0, [x20, 264] + b .L3872 +.L3924: mov w2, 1 - strb w3, [x4,1345] - str x3, [x29,104] - bl gc_add_sblk - ldr x3, [x29,104] - cbz w0, .L4009 - strb w3, [x27,218] - b .L3993 -.L4009: - add x1, x19, :lo12:.LANCHOR0 - add x3, x21, :lo12:.LANCHOR3 - ldr x0, [x1,1112] - ldrh w2, [x0,x26,lsl 1] - ldrh w0, [x3,1384] - cmp w2, w0, lsr 1 - bhi .L4010 - mov w0, w28 - mov w1, 1 - mov w2, 0 - bl gc_add_sblk - b .L4070 -.L4010: - ldrh w4, [x1,3382] - ldrh w0, [x1,3384] - ldrh w3, [x3,1388] - add w0, w4, w0 - cmp w0, w3, lsl 1 - ble .L4011 - ldrh w0, [x1,3402] - cmp w0, w2 - bcc .L4008 - b .L4011 -.L4007: - add x26, x21, :lo12:.LANCHOR3 - mov w0, 1 - cmp w23, 16 - strb w0, [x26,1345] - bls .L4012 - add x1, x19, :lo12:.LANCHOR0 - ldrh w2, [x1,3386] - ldrh w1, [x26,1390] - cmp w2, w1 - bhi .L4012 - mov w1, w0 - mov w2, 4 - bl gc_search_src_blk - uxth w0, w0 - cbnz w0, .L4013 - ldrb w0, [x26,1345] - b .L4175 -.L4012: - mov w0, 1 mov w1, 2 - mov w2, w0 + mov w0, w2 bl gc_search_src_blk - uxth w0, w0 - cbnz w0, .L4013 - add x0, x21, :lo12:.LANCHOR3 - ldrb w0, [x0,1345] -.L4175: - mov w1, 3 + tst w0, 65535 + bne .L3928 + add x21, x21, :lo12:.LANCHOR3 mov w2, 4 + mov w1, 3 + ldrb w0, [x21, 1337] +.L4084: bl gc_search_src_blk - uxth w0, w0 -.L4013: - add x21, x21, :lo12:.LANCHOR3 - cmp w22, w25, lsr 1 - add x19, x19, :lo12:.LANCHOR0 - ldrh w1, [x21,1388] - bls .L4177 - lsr w1, w1, 2 - b .L4178 -.L4008: - cmp w22, w25 - bcs .L4015 - add x21, x21, :lo12:.LANCHOR3 - mov w0, 4 - add x19, x19, :lo12:.LANCHOR0 - strb wzr, [x21,1345] - bl zftl_get_gc_node.part.10 - mov w1, 65535 - uxth w0, w0 - cmp w0, w1 - beq .L4184 - ubfiz x0, x0, 1, 16 - ldr x1, [x19,1112] - ldrb w2, [x21,1329] - ldrh w1, [x1,x0] - ldrh w0, [x21,1384] - mul w0, w0, w2 - cmp w1, w0, lsr 1 - bgt .L4184 + and w0, w0, 65535 +.L3926: + cbnz w0, .L3928 + b .L3872 +.L3923: + strb wzr, [x25, 1337] + cmp w22, 16 + bls .L3931 + mov w2, 4 mov w1, 3 mov w0, 0 - mov w2, 4 + b .L4084 +.L3931: + mov w2, w1 + mov w0, 0 bl gc_search_src_blk - uxth w0, w0 - ldrh w1, [x21,1388] -.L4177: + tst w0, 65535 + bne .L3928 + b .L4089 +.L3922: + cmp w27, 1 + bne .L3872 + cmp w22, w0, lsl 1 + bge .L3932 + cmp w26, w24, lsr 1 + bcs .L3933 + ldrh w1, [x28, 3378] + ldrh w0, [x25, 1382] + cmp w1, w0 + bcs .L3933 + ldrh w0, [x25, 1380] + lsr w0, w0, 2 + strh w0, [x28, 3392] + b .L3872 +.L3933: + mov w0, 8 + bl zftl_get_gc_node.part.10 + and w1, w0, 65535 + mov w2, 65535 + cmp w1, w2 + beq .L3934 + add x2, x19, :lo12:.LANCHOR0 + ubfiz x1, x1, 1, 16 + ldr x2, [x2, 1120] + ldrh w1, [x2, x1] + cmp w1, 3 + bhi .L3934 + cbz w22, .L3934 + add x1, x21, :lo12:.LANCHOR3 + mov w2, 0 + strb wzr, [x1, 1337] + mov w1, 1 + bl gc_add_sblk + cbnz w0, .L3928 +.L3934: + add x5, x21, :lo12:.LANCHOR3 + mov w1, 0 + add x0, x5, 1368 + bl _list_get_gc_head_node + and w25, w0, 65535 + mov w1, 65535 + mov w28, w25 + cmp w25, w1 + bne .L3935 +.L3940: + cmp w24, 1 + bhi .L3936 +.L3937: + cmp w22, w26 + bcs .L3944 + add x21, x21, :lo12:.LANCHOR3 + mov w0, 4 + add x19, x19, :lo12:.LANCHOR0 + strb wzr, [x21, 1337] + bl zftl_get_gc_node.part.10 + and w0, w0, 65535 + mov w1, 65535 + cmp w0, w1 + beq .L4088 + ldr x1, [x19, 1120] + ubfiz x0, x0, 1, 16 + ldrb w2, [x21, 1321] + ldrh w1, [x1, x0] + ldrh w0, [x21, 1376] + mul w0, w0, w2 + cmp w1, w0, lsr 1 + ble .L3946 +.L4088: + ldrh w0, [x21, 1380] + lsr w0, w0, 2 + strh w0, [x19, 3392] + b .L3872 +.L3935: + add x27, x20, :lo12:.LANCHOR5 + add x2, x19, :lo12:.LANCHOR0 + uxtw x25, w25 + ldr w1, [x27, 268] + ldrh w3, [x2, 1096] + add w1, w1, 1 + str w1, [x27, 268] + cmp w1, w3, lsr 4 + bls .L3938 + ldr x1, [x2, 1120] + str wzr, [x27, 268] + ldrh w3, [x1, x25, lsl 1] + ldrh w1, [x2, 3406] + cmp w3, w1 + bcs .L3938 + mov w3, 1 + mov w2, 1 + strb w3, [x5, 1337] + mov w1, 0 + str w3, [x29, 108] + bl gc_add_sblk + ldr w3, [x29, 108] + cbz w0, .L3938 + strb w3, [x27, 264] + b .L3872 +.L3938: + add x0, x19, :lo12:.LANCHOR0 + add x3, x21, :lo12:.LANCHOR3 + ldr x1, [x0, 1120] + ldrh w2, [x1, x25, lsl 1] + ldrh w1, [x3, 1376] + cmp w2, w1, lsr 1 + bhi .L3939 + mov w2, 0 + mov w1, 1 + mov w0, w28 + bl gc_add_sblk + b .L3928 +.L3939: + ldrh w1, [x0, 3374] + ldrh w4, [x0, 3376] + ldrh w3, [x3, 1380] + add w1, w1, w4 + cmp w1, w3, lsl 1 + ble .L3940 + ldrh w0, [x0, 3406] + cmp w0, w2 + bcc .L3937 + b .L3940 +.L3936: + add x25, x21, :lo12:.LANCHOR3 + mov w1, 1 + cmp w24, 16 + strb w1, [x25, 1337] + bls .L3941 + add x0, x19, :lo12:.LANCHOR0 + ldrh w2, [x0, 3378] + ldrh w0, [x25, 1382] + cmp w2, w0 + bhi .L3941 + mov w2, 4 + mov w0, w1 + bl gc_search_src_blk + ands w0, w0, 65535 + bne .L3942 + ldrb w0, [x25, 1337] + mov w2, 4 + mov w1, 3 +.L4083: + bl gc_search_src_blk + and w0, w0, 65535 +.L3942: + add x21, x21, :lo12:.LANCHOR3 + add x19, x19, :lo12:.LANCHOR0 + cmp w22, w26, lsr 1 + ldrh w1, [x21, 1380] + bls .L4085 + lsr w1, w1, 2 +.L4086: + strh w1, [x19, 3392] + b .L3926 +.L3941: + mov w2, 1 + mov w1, 2 + mov w0, w2 + bl gc_search_src_blk + ands w0, w0, 65535 + bne .L3942 + add x0, x21, :lo12:.LANCHOR3 + mov w2, 4 + mov w1, 3 + ldrb w0, [x0, 1337] + b .L4083 +.L3946: + mov w1, 3 + mov w2, 4 + mov w0, 0 + bl gc_search_src_blk + ldrh w1, [x21, 1380] + and w0, w0, 65535 +.L4085: lsr w1, w1, 1 -.L4178: - strh w1, [x19,3400] - b .L3998 -.L4015: + b .L4086 +.L3944: add x19, x19, :lo12:.LANCHOR0 add x21, x21, :lo12:.LANCHOR3 -.L4184: - ldrh w0, [x21,1388] + b .L4088 +.L3932: + ldrh w0, [x25, 1380] lsr w0, w0, 2 - strh w0, [x19,3400] - b .L3993 -.L4003: - ldrh w0, [x27,1388] - lsr w0, w0, 2 - strh w0, [x28,3400] - ldrh w0, [x28,5534] - cmp w0, wzr - csel w24, w24, wzr, ne - b .L3993 -.L3998: - mov w1, w24 - cbz w0, .L4140 -.L4070: - add x20, x20, :lo12:.LANCHOR5 - mov w0, 1 - strb w0, [x20,218] - b .L3993 -.L3948: - add x21, x19, :lo12:.LANCHOR0 + strh w0, [x28, 3392] + ldrh w0, [x28, 5526] + cmp w0, 0 + csel w23, w23, wzr, ne + b .L3872 +.L3877: + add x6, x19, :lo12:.LANCHOR0 mov w0, 65535 - ldrh w1, [x21,3424] + ldrh w1, [x6, 3416] cmp w1, w0 - bne .L4018 + bne .L3947 bl gc_get_src_blk - strh w0, [x21,3424] -.L4018: + strh w0, [x6, 3416] +.L3947: add x0, x19, :lo12:.LANCHOR0 mov w2, 65535 - ldrh w1, [x0,3424] + ldrh w1, [x0, 3416] cmp w1, w2 - beq .L4019 - ldrh w2, [x0,1088] + beq .L3948 + ldrh w2, [x0, 1096] cmp w2, w1 - bhi .L4019 + bhi .L3948 mov w1, -1 - strh w1, [x0,3424] -.L4019: + strh w1, [x0, 3416] +.L3948: add x0, x19, :lo12:.LANCHOR0 mov w2, 65535 - add x1, x0, 3424 - ldrh w3, [x0,3424] + ldrh w3, [x0, 3416] cmp w3, w2 - beq .L4181 - ldrh w5, [x1,56] + beq .L4091 + ldrh w5, [x0, 3472] uxtw x4, w3 - ldr x2, [x0,1096] + ldr x2, [x0, 1104] add x2, x2, x4, lsl 2 - cbz w5, .L4022 - mov x0, 0 -.L4021: - cmp w5, w0, uxth - bls .L4022 - add x0, x0, 1 - add x6, x1, x0, lsl 1 - ldrh w6, [x6,56] + cbz w5, .L3950 + add x0, x0, 3474 + mov w1, 0 +.L3952: + ldrh w6, [x0], 2 cmp w6, w3 - bne .L4021 -.L4027: + bne .L3951 +.L3956: add x19, x19, :lo12:.LANCHOR0 mov w0, -1 - strh w0, [x19,3424] - b .L4180 -.L4022: - ldrb w0, [x2,2] + strh w0, [x19, 3416] + b .L4000 +.L3951: + add w1, w1, 1 + and w1, w1, 65535 + cmp w5, w1 + bne .L3952 +.L3950: + ldrb w0, [x2, 2] + and w1, w0, 224 + cmp w1, 224 + beq .L3953 tst w0, 192 - beq .L4084 - and w0, w0, 224 - cmp w0, 224 - bne .L4024 -.L4084: + bne .L3954 +.L3953: add x0, x19, :lo12:.LANCHOR0 - ldr x0, [x0,1112] - ldrh w0, [x0,x4,lsl 1] - cbz w0, .L4027 + ldr x0, [x0, 1120] + ldrh w0, [x0, x4, lsl 1] + cbz w0, .L3956 adrp x1, .LANCHOR4 - adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 + add x1, x1, 1040 mov w2, 3306 - add x1, x1, 1024 + adrp x0, .LC0 add x0, x0, :lo12:.LC0 bl printk bl dump_stack - b .L4027 -.L4024: + b .L3956 +.L3954: add x20, x20, :lo12:.LANCHOR5 mov w0, 2 - b .L4182 -.L3949: + b .L4092 +.L3878: bl gc_scan_src_blk cmn w0, #1 - bne .L4028 + bne .L3957 add x20, x20, :lo12:.LANCHOR5 mov w0, 3 - b .L4182 -.L4028: + b .L4092 +.L3957: add x1, x19, :lo12:.LANCHOR0 mov w3, 65535 - ldrh w0, [x1,3424] + ldrh w0, [x1, 3416] cmp w0, w3 - beq .L3967 - ldrh w3, [x1,3448] + beq .L3897 + ldrh w3, [x1, 3440] add x20, x20, :lo12:.LANCHOR5 - cbz w3, .L4029 + cbz w3, .L3958 mov w0, 4 - strh wzr, [x1,3450] - strb w0, [x20,218] - b .L4180 -.L4029: + strh wzr, [x1, 3442] + strb w0, [x20, 264] + b .L4000 +.L3958: + ldr x1, [x1, 1120] ubfiz x0, x0, 1, 16 - ldr x1, [x1,1112] mov w2, 1 - strb w2, [x20,218] - ldrh w0, [x1,x0] - cbz w0, .L4030 + strb w2, [x20, 264] + ldrh w0, [x1, x0] + cbz w0, .L3959 adrp x1, .LANCHOR4 - adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 + add x1, x1, 1040 mov w2, 3336 - add x1, x1, 1024 + adrp x0, .LC0 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L4030: +.L3959: add x20, x19, :lo12:.LANCHOR0 - add x21, x20, 3424 - ldrh w0, [x20,3424] + add x21, x20, 3416 + ldrh w0, [x20, 3416] bl ftl_free_sblk - ldr x0, [x20,1112] - ldrh w1, [x20,3424] - strh wzr, [x0,x1,lsl 1] - ldrh w0, [x21,30] + ldr x0, [x20, 1120] + ldrh w1, [x20, 3416] + strh wzr, [x0, x1, lsl 1] + ldrh w0, [x21, 30] add w0, w0, 1 - uxth w0, w0 + and w0, w0, 65535 cmp w0, 8 - bhi .L4031 - strh w0, [x21,30] - b .L4027 -.L4031: - strh wzr, [x21,30] + bhi .L3960 + strh w0, [x21, 30] + b .L3956 +.L3960: + strh wzr, [x21, 30] bl ftl_flush bl pm_flush bl ftl_ext_info_flush mov w0, 0 bl ftl_info_flush - b .L4027 -.L3950: - add x21, x19, :lo12:.LANCHOR0 - adrp x23, .LANCHOR3 -.L4141: + b .L3956 +.L3879: + add x23, x19, :lo12:.LANCHOR0 + adrp x24, .LANCHOR3 + add x21, x23, 3416 + add x24, x24, :lo12:.LANCHOR3 +.L4053: bl gc_scan_src_blk_one_page - ldrh w2, [x21,3426] - add x0, x21, 3424 - add x1, x23, :lo12:.LANCHOR3 - ldrh w1, [x1,1384] - cmp w2, w1 - bcs .L4033 + ldrh w1, [x21, 2] + ldrh w0, [x24, 1376] + cmp w1, w0 + bcs .L3962 cmp w22, 7 - bls .L4141 - b .L4180 -.L4033: - ldrh w3, [x0,24] - cbz w3, .L4034 + bls .L4053 + b .L4000 +.L3962: + ldrh w3, [x21, 24] + ldrh w1, [x21] + cbz w3, .L3963 add x20, x20, :lo12:.LANCHOR5 - mov w1, 4 - strh wzr, [x0,26] - ldr x2, [x21,1112] - strb w1, [x20,218] - ldrh w1, [x0] + mov w0, 4 + ldr x2, [x23, 1120] + strh wzr, [x21, 26] + strb w0, [x20, 264] ubfiz x0, x1, 1, 16 - ldrh w2, [x2,x0] - cmp w2, w3 - beq .L4035 + ldrh w2, [x2, x0] + cmp w3, w2 + beq .L3964 adrp x0, .LANCHOR2 - ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 10, .L4035 + ldr w0, [x0, #:lo12:.LANCHOR2] + tbz x0, 10, .L3964 adrp x0, .LC300 add x0, x0, :lo12:.LC300 bl printk -.L4035: +.L3964: add x0, x19, :lo12:.LANCHOR0 - ldrh w2, [x0,3424] - ldr x1, [x0,1112] - ldrh w0, [x0,3448] - ldrh w1, [x1,x2,lsl 1] + ldrh w2, [x0, 3416] + ldr x1, [x0, 1120] + ldrh w0, [x0, 3440] + ldrh w1, [x1, x2, lsl 1] cmp w1, w0 - beq .L4036 + beq .L3965 adrp x1, .LANCHOR4 - adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 + add x1, x1, 1040 mov w2, 3379 - add x1, x1, 1024 + adrp x0, .LC0 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L4036: +.L3965: add x19, x19, :lo12:.LANCHOR0 - ldrh w1, [x19,3424] - ldr x0, [x19,1112] - ldrh w2, [x19,3448] - strh w2, [x0,x1,lsl 1] - b .L4180 -.L4034: + ldrh w1, [x19, 3416] + ldr x0, [x19, 1120] + ldrh w2, [x19, 3440] + strh w2, [x0, x1, lsl 1] + b .L4000 +.L3963: add x20, x20, :lo12:.LANCHOR5 - ldrh w1, [x0] mov w0, 1 - ldr x21, [x21,1096] - add x21, x21, w1, uxth 2 - strb w0, [x20,218] + ldr x21, [x23, 1104] + strb w0, [x20, 264] adrp x0, .LANCHOR2 - ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 8, .L4037 - ldrb w2, [x21,2] + add x21, x21, w1, uxth 2 + ldr w0, [x0, #:lo12:.LANCHOR2] + tbz x0, 8, .L3966 + ldrb w2, [x21, 2] adrp x0, .LC301 add x0, x0, :lo12:.LC301 ubfx x2, x2, 5, 3 bl printk -.L4037: - ldrb w0, [x21,2] +.L3966: + ldrb w0, [x21, 2] + and w1, w0, 224 + cmp w1, 224 + beq .L3967 tst w0, 192 - beq .L4085 - and w0, w0, 224 - cmp w0, 224 - bne .L4038 -.L4085: + bne .L3968 +.L3967: adrp x1, .LANCHOR4 - adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 + add x1, x1, 1040 mov w2, 3389 - add x1, x1, 1024 + adrp x0, .LC0 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L4038: +.L3968: add x19, x19, :lo12:.LANCHOR0 - add x20, x19, 3424 - ldrh w0, [x19,3424] + add x20, x19, 3416 + ldrh w0, [x19, 3416] bl ftl_free_sblk mov w0, -1 - strh w0, [x19,3424] - ldrh w0, [x20,30] + strh w0, [x19, 3416] + ldrh w0, [x20, 30] add w0, w0, 1 - uxth w0, w0 + and w0, w0, 65535 cmp w0, 8 - bhi .L4040 - strh w0, [x20,30] - b .L4180 -.L4040: - strh wzr, [x20,30] - b .L4183 -.L3951: - cbnz w26, .L4041 + bhi .L3969 + strh w0, [x20, 30] + b .L4000 +.L3969: + strh wzr, [x20, 30] +.L4090: + bl flt_sys_flush + b .L4000 +.L3880: + cbnz w27, .L3970 add x0, x19, :lo12:.LANCHOR0 - ldrh w0, [x0,3400] + ldrh w0, [x0, 3392] cmp w0, w22 - bcc .L4180 -.L4041: - ldrh w1, [x24,80] + bcc .L4000 +.L3970: + ldrh w1, [x25, 80] mov w0, 65535 cmp w1, w0 - bne .L4042 + bne .L3971 adrp x21, .LANCHOR3 add x0, x21, :lo12:.LANCHOR3 - ldrb w23, [x0,1345] + ldrb w23, [x0, 1337] cmp w23, 1 - bne .L4042 + bne .L3971 bl ftl_flush add x0, x19, :lo12:.LANCHOR0 - ldrh w0, [x0,5616] - cbz w0, .L4043 - mov w0, w23 -.L4043: mov w1, 5 + ldrh w0, [x0, 5608] + cbz w0, .L3972 + mov w0, w23 +.L4087: bl zftl_gc_get_free_sblk - uxth w23, w0 + and w22, w0, 65535 mov w0, 65535 - cmp w23, w0 - beq .L4045 + cmp w22, w0 + beq .L3974 add x0, x19, :lo12:.LANCHOR0 - ldr x22, [x0,1096] - add x22, x22, w23, uxth 2 - ldrb w0, [x22,2] + ldr x23, [x0, 1104] + add x23, x23, w22, uxth 2 + ldrb w0, [x23, 2] tst w0, 224 - beq .L4046 + beq .L3975 adrp x1, .LANCHOR4 - adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 + add x1, x1, 1040 mov w2, 3423 - add x1, x1, 1024 + adrp x0, .LC0 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L4046: - ldrb w0, [x22,2] +.L3975: + ldrb w0, [x23, 2] mov w1, 5 bfi w0, w1, 5, 3 orr w0, w0, 16 - strb w0, [x22,2] -.L4071: - mov w0, w23 + strb w0, [x23, 2] +.L3999: mov w1, 1 - add x21, x21, :lo12:.LANCHOR3 - add x20, x20, :lo12:.LANCHOR5 + mov w0, w22 bl ftl_erase_sblk - add x19, x19, :lo12:.LANCHOR0 + add x21, x21, :lo12:.LANCHOR3 mov w0, 5 - add x1, x24, 96 - strb w0, [x24,84] - mov w0, w23 + strb w0, [x25, 84] + add x1, x25, 96 + mov w0, w22 bl ftl_get_blk_list_in_sblk - uxtb w0, w0 - ldrh w1, [x21,1384] - strb w0, [x24,89] - ldrb w2, [x21,1329] + and w0, w0, 255 + ldrh w1, [x21, 1376] + add x20, x20, :lo12:.LANCHOR5 + strb w0, [x25, 89] + add x19, x19, :lo12:.LANCHOR0 + ldrh w2, [x21, 1338] + strh w22, [x25, 80] mul w0, w0, w1 - strh w0, [x24,86] + strh wzr, [x25, 82] + strh w0, [x25, 86] mov w1, 255 - ldrh w0, [x21,1346] - strh w23, [x24,80] - strh wzr, [x24,82] - mul w2, w0, w2 - ldr x0, [x20,232] - strb wzr, [x24,85] - lsl w2, w2, 2 - strh wzr, [x24,90] - bl ftl_memset - ldrh w0, [x21,1346] - mov w1, 255 - ldrb w2, [x21,1329] - mul w2, w0, w2 - ldr x0, [x20,240] + ldrb w0, [x21, 1321] + strb wzr, [x25, 85] + strh wzr, [x25, 90] + mul w2, w2, w0 + ldr x0, [x20, 280] lsl w2, w2, 2 bl ftl_memset - ldrh w3, [x21,1346] + ldrb w0, [x21, 1321] mov w1, 255 - ldrb w2, [x21,1329] - ldr x0, [x21,1336] - mul w2, w3, w2 + ldrh w2, [x21, 1338] + mul w2, w2, w0 + ldr x0, [x20, 288] + lsl w2, w2, 2 bl ftl_memset - ldr x0, [x19,1120] + ldrb w0, [x21, 1321] + mov w1, 255 + ldrh w2, [x21, 1338] + mul w2, w2, w0 + ldr x0, [x21, 1328] + bl ftl_memset + ldr x0, [x19, 1128] mov w1, -1 - str w23, [x0,132] - strh w1, [x0,128] - strh w1, [x0,130] + str w22, [x0, 132] + strh w1, [x0, 128] + strh w1, [x0, 130] bl pm_flush bl ftl_ext_info_flush - strh wzr, [x19,3480] - ldr x0, [x19,3392] - strh w23, [x0,126] + strh wzr, [x19, 3472] + ldr x0, [x19, 3384] + strh w22, [x0, 126] mov w0, -1 - str w0, [x19,5620] + strh wzr, [x19, 5522] + str w0, [x19, 5612] mov w0, 0 - strh wzr, [x19,5530] - strh wzr, [x19,5532] - strh wzr, [x19,5618] + strh wzr, [x19, 5524] + strh wzr, [x19, 5610] bl ftl_info_flush - b .L4180 -.L4042: - cmp w26, 1 + b .L4000 +.L3972: + mov w0, 0 + b .L4087 +.L3971: + cmp w27, 1 mov w23, 4 csinc w23, w23, wzr, eq + add x26, x19, :lo12:.LANCHOR0 cmp w22, 15 - add w0, w23, 4 - adrp x27, .LANCHOR3 - csel w23, w0, w23, ls - add x25, x19, :lo12:.LANCHOR0 -.L4049: - sub w23, w23, #1 - uxtb w23, w23 - cmp w23, 255 - beq .L4180 - add x26, x27, :lo12:.LANCHOR3 - bl gc_do_copy_back + mov w0, w23 + add w23, w23, 4 adrp x22, .LANCHOR3 - ldrb w0, [x26,1345] - cbnz w0, .L4050 - ldrb w0, [x25,3362] + csel w23, w23, w0, ls + add x24, x22, :lo12:.LANCHOR3 + add x21, x26, 3416 +.L3978: + sub w23, w23, #1 + and w23, w23, 255 + cmp w23, 255 + beq .L4000 + bl gc_do_copy_back + ldrb w0, [x24, 1337] + cbnz w0, .L3979 + ldrb w0, [x26, 3353] cmp w0, 3 - bhi .L4051 + bhi .L3980 bl ftl_write_commit -.L4051: - ldrh w1, [x25,3450] - ldrh w0, [x25,3448] +.L3980: + ldrh w1, [x21, 26] + ldrh w0, [x21, 24] cmp w1, w0 - bcc .L4049 + bcc .L3978 add x20, x20, :lo12:.LANCHOR5 mov w0, 1 - strb w0, [x20,218] + strb w0, [x20, 264] bl ftl_write_commit bl ftl_flush - ldrh w1, [x25,3424] - ldr x0, [x25,1112] - ldrh w0, [x0,x1,lsl 1] - cbz w0, .L4053 + ldrh w1, [x21] + ldr x0, [x26, 1120] + ldrh w0, [x0, x1, lsl 1] + cbz w0, .L3982 adrp x1, .LANCHOR4 - adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 + add x1, x1, 1040 mov w2, 3507 - add x1, x1, 1024 + adrp x0, .LC0 add x0, x0, :lo12:.LC0 bl printk bl dump_stack -.L4053: +.L3982: add x1, x19, :lo12:.LANCHOR0 - ldrh w0, [x1,3424] - ldr x3, [x1,1112] + ldrh w0, [x1, 3416] + ldr x1, [x1, 1120] ubfiz x2, x0, 1, 16 - ldrh w4, [x3,x2] - cbnz w4, .L4054 - strh w4, [x3,x2] - ldrh w0, [x1,3424] + ldrh w1, [x1, x2] + cbnz w1, .L3983 bl ftl_free_sblk - b .L4027 -.L4054: - mov w1, 0 + b .L3956 +.L3983: mov w2, 1 + mov w1, 0 bl gc_add_sblk - b .L4027 -.L4050: - ldrh w0, [x25,5618] - add x21, x25, 3424 - cbz w0, .L4055 - strh wzr, [x21,2194] + b .L3956 +.L3979: + ldrh w0, [x21, 2194] + cbz w0, .L3984 + strh wzr, [x21, 2194] bl sblk_wait_write_queue_completed bl gc_write_completed - ldr w0, [x21,2196] + ldr w0, [x21, 2196] cmn w0, #1 - beq .L4056 - ldrb w1, [x26,1956] - cbnz w1, .L4057 - ldrb w1, [x26,1330] - cbz w1, .L4058 -.L4057: - add x1, x19, :lo12:.LANCHOR0 - ldr x2, [x1,3392] - ldr w3, [x2,156] - mov w2, 20041 - movk w2, 0x444b, lsl 16 - cmp w3, w2 - bne .L4058 + beq .L3985 + ldrb w1, [x24, 1950] + cbnz w1, .L3986 + ldrb w1, [x24, 1322] + cbz w1, .L3987 +.L3986: + add x4, x19, :lo12:.LANCHOR0 + ldr x1, [x4, 3384] + ldr w2, [x1, 156] + mov w1, 20041 + movk w1, 0x444b, lsl 16 + cmp w2, w1 + bne .L3987 add x22, x22, :lo12:.LANCHOR3 - ldrb w3, [x1,1257] - mov w2, 24 - sub w2, w2, w3 - mov w3, 1 - ldrh w4, [x22,1312] - sub w2, w2, w4 - lsr w0, w0, w4 - lsl w2, w3, w2 - sub w2, w2, #1 - and w0, w2, w0 - ldrb w2, [x22,1314] - udiv w0, w0, w2 - ldr x2, [x1,1096] + ldrb w2, [x4, 1205] + mov w1, 24 + sub w1, w1, w2 + ldrh w3, [x22, 1304] + sub w2, w1, w3 + mov w1, 1 + lsr w0, w0, w3 + lsl w1, w1, w2 + sub w1, w1, #1 + and w0, w1, w0 + ldrb w1, [x22, 1306] + ldr x2, [x4, 1104] + udiv w0, w0, w1 lsl x0, x0, 2 add x5, x2, x0 - ldrb w3, [x5,2] - tbz x3, 3, .L4056 - ldrh w4, [x1,3376] - ldrh w6, [x22,1388] - add w4, w4, 8 - cmp w4, w6 - bge .L4056 - and w3, w3, -25 - strb w3, [x5,2] - ldrh w1, [x1,1104] - ldr w3, [x2,x0] - ldrh w4, [x2,x0] + ldrb w1, [x5, 2] + tbz x1, 3, .L3985 + ldrh w3, [x4, 3368] + ldrh w6, [x22, 1380] + add w3, w3, 8 + cmp w3, w6 + bge .L3985 + and w1, w1, -25 + strb w1, [x5, 2] + ldrh w1, [x4, 1112] + ldr w3, [x2, x0] + ldrh w4, [x2, x0] ubfx x3, x3, 11, 8 - ubfx x5, x4, 0, 11 - mul w1, w3, w1 + and w5, w4, 2047 + mul w1, w1, w3 lsr w3, w3, 3 add w1, w1, w1, lsl 1 add w1, w5, w1, lsr 2 bfi w4, w1, 0, 11 - strh w4, [x2,x0] - ldr w1, [x2,x0] + strh w4, [x2, x0] + ldr w1, [x2, x0] bfi w1, w3, 11, 8 - str w1, [x2,x0] - b .L4056 -.L4058: - bl ftl_mask_bad_block -.L4056: + str w1, [x2, x0] +.L3985: add x21, x19, :lo12:.LANCHOR0 - ldr x0, [x21,1120] - str wzr, [x21,5620] - strh wzr, [x21,3480] - ldrh w0, [x0,80] + ldr x0, [x21, 1128] + str wzr, [x21, 5612] + strh wzr, [x21, 3472] + ldrh w0, [x0, 80] bl ftl_free_sblk - ldr x1, [x21,1120] + ldr x1, [x21, 1128] mov w0, -1 - ldr x2, [x21,3392] - strh w0, [x1,80] - strh w0, [x2,126] - strh w0, [x1,130] - ldr x0, [x21,3432] - cbz x0, .L4059 + ldr x2, [x21, 3384] + strh w0, [x1, 80] + strh w0, [x2, 126] + strh w0, [x1, 130] + ldr x0, [x21, 3424] + cbz x0, .L3988 bl zbuf_free -.L4059: +.L3988: add x19, x19, :lo12:.LANCHOR0 add x20, x20, :lo12:.LANCHOR5 - str xzr, [x19,3432] + str xzr, [x19, 3424] bl flt_sys_flush adrp x1, .LANCHOR4 - adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 + add x1, x1, 1040 mov w2, 3567 - add x1, x1, 1024 + strb wzr, [x20, 264] + adrp x0, .LC0 add x0, x0, :lo12:.LC0 - strb wzr, [x20,218] bl printk bl dump_stack - b .L4180 -.L4055: - ldrh w0, [x24,86] + b .L4000 +.L3987: + bl ftl_mask_bad_block + b .L3985 +.L3984: + ldrh w0, [x25, 86] + ldrh w1, [x21, 26] cmp w0, 1 - bls .L4060 - ldrh w1, [x21,26] - ldrh w0, [x21,24] + ldrh w0, [x21, 24] + bls .L3989 cmp w1, w0 - bcc .L4049 + bcc .L3978 add x20, x20, :lo12:.LANCHOR5 mov w0, 1 - strb w0, [x20,218] - ldrh w0, [x21,56] + strb w0, [x20, 264] + ldrh w0, [x21, 56] add w1, w0, 1 + strh w1, [x21, 56] add x0, x21, w0, sxtw 1 - strh w1, [x21,56] ldrh w1, [x21] - strh w1, [x0,58] + strh w1, [x0, 58] mov w0, -1 strh w0, [x21] - b .L4180 -.L4060: + b .L4000 +.L3989: add x20, x20, :lo12:.LANCHOR5 - mov w0, 5 - ldrh w1, [x21,26] - strb w0, [x20,218] - ldrh w0, [x21,24] + mov w2, 5 cmp w1, w0 - bcc .L4061 - ldrh w0, [x21,56] + strb w2, [x20, 264] + bcc .L3990 + ldrh w0, [x21, 56] add w1, w0, 1 + strh w1, [x21, 56] add x0, x21, w0, sxtw 1 - strh w1, [x21,56] ldrh w1, [x21] - strh w1, [x0,58] + strh w1, [x0, 58] mov w0, -1 strh w0, [x21] -.L4061: +.L3990: add x20, x19, :lo12:.LANCHOR0 bl ftl_flush bl sblk_wait_write_queue_completed bl gc_write_completed - ldr x0, [x20,1120] - ldrh w1, [x24,80] - strh w1, [x0,128] + ldr x0, [x20, 1128] + ldrh w1, [x25, 80] + strh w1, [x0, 128] bl pm_flush bl ftl_ext_info_flush - strh wzr, [x20,3440] + strh wzr, [x20, 3432] add x1, x22, :lo12:.LANCHOR3 - ldrb w3, [x20,1268] - ldrh w2, [x1,1384] - strh w2, [x20,3442] - ldrb w2, [x1,1328] - strh w2, [x20,3444] - cbz w3, .L4062 - ldrh w1, [x1,1346] - strh w1, [x20,3442] + ldrb w3, [x20, 1212] + ldrh w2, [x1, 1376] + strh w2, [x20, 3434] + ldrb w2, [x1, 1320] + strh w2, [x20, 3436] + cbz w3, .L3991 + ldrh w1, [x1, 1338] + strh w1, [x20, 3434] mov w1, 1 - strh w1, [x20,3444] -.L4062: + strh w1, [x20, 3436] +.L3991: cmp w2, 2 - bne .L4064 + bne .L3993 add x0, x19, :lo12:.LANCHOR0 add x22, x22, :lo12:.LANCHOR3 - add x0, x0, 3424 - ldrh w1, [x0,18] - lsl w1, w1, 1 - strh w1, [x0,18] - ldrb w1, [x22,1330] - cbnz w1, .L4064 + add x0, x0, 3416 + ldrh w1, [x0, 18] + ubfiz w1, w1, 1, 15 + strh w1, [x0, 18] + ldrb w1, [x22, 1322] + cbnz w1, .L3993 mov w1, 1 - strh w1, [x0,20] -.L4064: + strh w1, [x0, 20] +.L3993: add x19, x19, :lo12:.LANCHOR0 - strh wzr, [x19,3446] - b .L4180 -.L4073: - mov w21, 0 - add x24, x19, :lo12:.LANCHOR0 -.L3952: - bl gc_check_data_one_wl - cbz w0, .L4067 - add x19, x19, :lo12:.LANCHOR0 - add x20, x20, :lo12:.LANCHOR5 - ldr x0, [x19,1120] - strh wzr, [x19,3480] - ldrh w0, [x0,80] - bl ftl_free_sblk - ldr x1, [x19,1120] - mov w0, -1 - ldr x2, [x19,3392] - strh w0, [x1,80] - strh w0, [x2,126] - strh w0, [x1,130] - ldr x0, [x19,3432] - bl zbuf_free - str xzr, [x19,3432] - strb wzr, [x20,218] -.L4183: - bl flt_sys_flush - b .L4180 -.L4067: - ldrh w1, [x24,3440] - ldrh w0, [x24,3442] + strh wzr, [x19, 3438] + b .L4000 +.L3996: + ldrh w1, [x21, 16] + ldrh w0, [x21, 18] cmp w1, w0 - bcc .L4068 + bcc .L3997 add x20, x20, :lo12:.LANCHOR5 mov w0, 6 - strb w0, [x20,218] - ldr x0, [x24,3432] + strb w0, [x20, 264] + ldr x0, [x21, 8] bl zbuf_free - str xzr, [x24,3432] - b .L4180 -.L4068: + str xzr, [x21, 8] + b .L4000 +.L3997: cmp w22, 15 - bls .L3952 - cmp w26, 1 - bne .L4180 - add w21, w21, 1 - uxtb w21, w21 - cmp w21, 4 - bls .L3952 - b .L4180 -.L3953: + bls .L3883 + cmp w27, 1 + bne .L4000 + add w23, w23, 1 + and w23, w23, 255 + cmp w23, 4 + bls .L3883 + b .L4000 +.L3882: bl gc_update_l2p_map_new mov w21, -1 bl gc_free_src_blk add x19, x19, :lo12:.LANCHOR0 bl ftl_flush bl pm_flush - strh w21, [x24,80] + strh w21, [x25, 80] bl ftl_ext_info_flush - ldr x0, [x19,3392] - strh w21, [x0,126] + ldr x0, [x19, 3384] + strh w21, [x0, 126] mov w0, 0 bl ftl_info_flush -.L4181: +.L4091: add x20, x20, :lo12:.LANCHOR5 - strb wzr, [x20,218] -.L4180: - mov w1, 16 - b .L4140 -.L3993: - mov w1, w24 - b .L4140 -.L4045: + strb wzr, [x20, 264] + b .L4000 +.L3974: adrp x1, .LANCHOR4 - adrp x0, .LC0 add x1, x1, :lo12:.LANCHOR4 + add x1, x1, 1040 mov w2, 3430 - add x1, x1, 1024 + adrp x0, .LC0 add x0, x0, :lo12:.LC0 bl printk bl dump_stack - b .L4071 -.L4140: - sub sp, x29, #16 - mov w0, w1 - ldp x19, x20, [sp,32] - ldp x21, x22, [sp,48] - ldp x23, x24, [sp,64] - ldp x25, x26, [sp,80] - ldp x27, x28, [sp,96] - ldp x29, x30, [sp,16] - add sp, sp, 128 - ret + b .L3999 .size zftl_do_gc, .-zftl_do_gc .align 2 .global zftl_init @@ -26743,418 +26516,419 @@ zftl_do_gc: zftl_init: stp x29, x30, [sp, -80]! mov w0, -1 - adrp x1, .LC2 + adrp x1, .LC1 + add x1, x1, :lo12:.LC1 add x29, sp, 0 - stp x19, x20, [sp,16] - stp x21, x22, [sp,32] - adrp x20, .LANCHOR0 + stp x19, x20, [sp, 16] + adrp x19, .LANCHOR0 + stp x21, x22, [sp, 32] + adrp x20, .LANCHOR5 + stp x23, x24, [sp, 48] adrp x21, .LANCHOR3 - adrp x19, .LANCHOR5 - str x25, [sp,64] - stp x23, x24, [sp,48] - add x25, x19, :lo12:.LANCHOR5 + str x25, [sp, 64] add x23, x21, :lo12:.LANCHOR3 - add x24, x20, :lo12:.LANCHOR0 - add x1, x1, :lo12:.LC2 + add x24, x19, :lo12:.LANCHOR0 + add x25, x20, :lo12:.LANCHOR5 adrp x22, .LANCHOR2 - strb w0, [x23,1962] - strb w0, [x24,3416] - strb w0, [x25,352] + strb w0, [x23, 1956] + strb w0, [x24, 3408] + strb w0, [x25, 360] mov w0, -1 - str w0, [x25,1012] - adrp x0, .LC1 - add x0, x0, :lo12:.LC1 - strb wzr, [x24,3388] - strb wzr, [x23,1963] - strb wzr, [x24,3389] + strb wzr, [x24, 3381] + str w0, [x25, 476] + adrp x0, .LC2 + strb wzr, [x23, 1957] + add x0, x0, :lo12:.LC2 + strb wzr, [x24, 3380] bl printk add x1, x22, :lo12:.LANCHOR2 - ldrb w3, [x24,1153] - ldrh w4, [x24,2] - strb w3, [x23,1420] - ldrb w2, [x1,21] - ldrb w9, [x1,20] - ldrh w5, [x1,18] - strb w2, [x23,1314] - mul w2, w2, w3 - ldrb w0, [x1,17] - mov w3, 1 - ldrh w6, [x1,22] + ldrb w2, [x24, 1153] + strb w2, [x23, 1412] + ldrh w4, [x24, 2] + ldrb w9, [x1, 20] + ldrh w5, [x1, 18] + ldrb w3, [x1, 21] + ldrb w0, [x1, 17] + ldrh w6, [x1, 22] mov w1, 0 sdiv w10, w5, w9 - uxtb w2, w2 + strb w3, [x23, 1306] + mul w2, w2, w3 ubfiz w8, w0, 9, 7 - strb w9, [x23,1328] - strb w0, [x24,3360] - strh w5, [x23,1346] - strh w10, [x23,1384] - strb w2, [x23,1329] - strh w6, [x24,1088] - strh w8, [x25,998] - strh w4, [x23,1418] -.L4186: - cmp w3, w4 - bhi .L4266 - add w1, w1, 1 - lsl w3, w3, 1 - uxth w1, w1 - b .L4186 -.L4266: + strb w9, [x23, 1320] + mov w3, 1 + and w2, w2, 255 + strb w0, [x23, 1946] + strh w5, [x23, 1338] + strh w10, [x23, 1376] + strb w2, [x23, 1321] + strh w6, [x24, 1096] + strh w8, [x25, 462] + strh w4, [x23, 1410] +.L4094: + cmp w4, w3 + bcs .L4095 + mul w7, w0, w5 add x3, x21, :lo12:.LANCHOR3 sub w1, w1, #1 - mul w7, w0, w5 mov w4, 0 - strh w1, [x3,1312] + strh w1, [x3, 1304] mov w1, 1 - mul w3, w7, w6 + mul w3, w6, w7 lsr w11, w3, 21 -.L4188: - cmp w1, w11 - bhi .L4267 - add w4, w4, 1 - lsl w1, w1, 1 - uxth w4, w4 - b .L4188 -.L4267: +.L4096: + cmp w11, w1 + bcs .L4097 mov w1, 57344 - mov w11, 1 + add x11, x19, :lo12:.LANCHOR0 movk w1, 0x1c, lsl 16 sub w4, w4, #1 - lsl w4, w11, w4 - add x11, x20, :lo12:.LANCHOR0 - mul w1, w2, w1 mul w3, w3, w2 - str w3, [x11,3368] lsr w6, w6, 4 - mul w1, w1, w4 - str w1, [x11,1032] - add x4, x19, :lo12:.LANCHOR5 - add w3, w1, 24576 - cmp w6, 79 + mul w1, w2, w1 + str w3, [x11, 3360] mul w10, w10, w2 - udiv w0, w3, w0 - str w3, [x4,1016] - str w0, [x11,3372] - sub w11, w8, #1 + cmp w6, 79 mul w7, w7, w2 + lsl w1, w1, w4 + add w3, w1, 24576 + str w1, [x11, 1032] + add x4, x20, :lo12:.LANCHOR5 sub w7, w7, #1 - add w0, w11, w0, lsl 2 + udiv w0, w3, w0 + str w3, [x4, 480] udiv w3, w3, w7 + str w0, [x11, 3364] + sub w11, w8, #1 + add w0, w11, w0, lsl 2 add w3, w3, 8 udiv w0, w0, w8 - strh w0, [x4,1020] + strh w0, [x4, 484] ubfiz w0, w0, 4, 16 sdiv w0, w0, w10 - strh w0, [x4,264] + strh w0, [x4, 220] add x0, x21, :lo12:.LANCHOR3 - strh w3, [x0,1390] - strh w6, [x0,1388] - bhi .L4190 + strh w3, [x0, 1382] + strh w6, [x0, 1380] + bhi .L4098 mov w3, 80 - strh w3, [x0,1388] -.L4190: + strh w3, [x0, 1380] +.L4098: add x0, x21, :lo12:.LANCHOR3 mov w3, 2000 - add x6, x20, :lo12:.LANCHOR0 + add x6, x19, :lo12:.LANCHOR0 mov w4, 256 cmp w9, 2 - strh w3, [x0,1960] + strh w3, [x0, 1954] mov w3, 50 - strh w3, [x0,1958] - add x3, x19, :lo12:.LANCHOR5 - strh w4, [x3,260] + strh w3, [x0, 1952] + add x3, x20, :lo12:.LANCHOR5 + strh w4, [x3, 216] mov w4, 48 - strh w4, [x3,262] + strh w4, [x3, 218] mov w4, 32 - strh w4, [x6,1104] - beq .L4191 - ldrb w7, [x0,1344] - cbz w7, .L4192 -.L4191: + strh w4, [x6, 1112] + beq .L4099 + ldrb w7, [x0, 1336] + cbz w7, .L4100 +.L4099: add x3, x21, :lo12:.LANCHOR3 mov w0, 150 mov w4, 64 mov w6, 12 - strh w0, [x3,1958] - add x0, x19, :lo12:.LANCHOR5 - strh w4, [x0,262] - add x4, x20, :lo12:.LANCHOR0 - strh w6, [x4,1104] - ldrb w6, [x20,#:lo12:.LANCHOR0] - cbnz w6, .L4193 + strh w0, [x3, 1952] + add x0, x20, :lo12:.LANCHOR5 + strh w4, [x0, 218] + add x4, x19, :lo12:.LANCHOR0 + strh w6, [x4, 1112] + ldrb w6, [x19, #:lo12:.LANCHOR0] + cbnz w6, .L4101 mov w6, 4 - strh w6, [x4,1104] + strh w6, [x4, 1112] mov w4, 600 - strh w4, [x3,1960] + strh w4, [x3, 1954] mov w3, 128 - strh w3, [x0,260] -.L4193: - add x0, x20, :lo12:.LANCHOR0 - ldrb w0, [x0,1269] - cbz w0, .L4195 + strh w3, [x0, 216] +.L4101: + add x0, x19, :lo12:.LANCHOR0 + ldrb w0, [x0, 1213] + cbz w0, .L4103 add x0, x21, :lo12:.LANCHOR3 mov w3, 200 - strh w3, [x0,1958] + strh w3, [x0, 1952] mov w3, 2000 - strh w3, [x0,1960] - b .L4195 -.L4192: - ldrb w6, [x6,1268] - cbz w6, .L4195 - mov w6, 1200 - strh w4, [x0,1958] - strh w6, [x0,1960] - strh w4, [x3,262] -.L4195: - add x0, x20, :lo12:.LANCHOR0 - mov w3, 1 + strh w3, [x0, 1954] +.L4103: + add x0, x19, :lo12:.LANCHOR0 mul w2, w5, w2 - str wzr, [x0,3412] - add x0, x19, :lo12:.LANCHOR5 + mov w3, 1 + str wzr, [x0, 3396] + add x0, x20, :lo12:.LANCHOR5 cmp w8, w2, lsl 2 - strb w3, [x0,1001] - bge .L4197 + strb w3, [x0, 465] + bge .L4105 mov w2, 2 - strb w2, [x0,1001] -.L4197: - ldr w0, [x22,#:lo12:.LANCHOR2] - tbz x0, 12, .L4198 + strb w2, [x0, 465] +.L4105: + ldr w0, [x22, #:lo12:.LANCHOR2] + tbz x0, 12, .L4106 adrp x0, .LC302 add x0, x0, :lo12:.LC302 bl printk -.L4198: - ldr w0, [x22,#:lo12:.LANCHOR2] - tbz x0, 12, .L4199 - add x1, x20, :lo12:.LANCHOR0 +.L4106: + ldr w0, [x22, #:lo12:.LANCHOR2] + tbz x0, 12, .L4107 + add x0, x19, :lo12:.LANCHOR0 + ldr w1, [x0, 3360] adrp x0, .LC303 add x0, x0, :lo12:.LC303 - ldr w1, [x1,3368] bl printk -.L4199: - ldr w0, [x22,#:lo12:.LANCHOR2] - tbz x0, 12, .L4200 - add x1, x20, :lo12:.LANCHOR0 +.L4107: + ldr w0, [x22, #:lo12:.LANCHOR2] + tbz x0, 12, .L4108 + add x0, x19, :lo12:.LANCHOR0 + ldr w1, [x0, 3364] adrp x0, .LC304 add x0, x0, :lo12:.LC304 - ldr w1, [x1,3372] bl printk -.L4200: - ldr w0, [x22,#:lo12:.LANCHOR2] - tbz x0, 12, .L4201 - add x1, x19, :lo12:.LANCHOR5 +.L4108: + ldr w0, [x22, #:lo12:.LANCHOR2] + tbz x0, 12, .L4109 + add x0, x20, :lo12:.LANCHOR5 + ldr w1, [x0, 480] adrp x0, .LC305 add x0, x0, :lo12:.LC305 - ldr w1, [x1,1016] bl printk -.L4201: - ldr w0, [x22,#:lo12:.LANCHOR2] - tbz x0, 12, .L4202 - add x1, x19, :lo12:.LANCHOR5 +.L4109: + ldr w0, [x22, #:lo12:.LANCHOR2] + tbz x0, 12, .L4110 + add x0, x20, :lo12:.LANCHOR5 + ldrh w1, [x0, 484] adrp x0, .LC306 add x0, x0, :lo12:.LC306 - ldrh w1, [x1,1020] bl printk -.L4202: - ldr w0, [x22,#:lo12:.LANCHOR2] - tbz x0, 12, .L4203 - add x1, x19, :lo12:.LANCHOR5 +.L4110: + ldr w0, [x22, #:lo12:.LANCHOR2] + tbz x0, 12, .L4111 + add x0, x20, :lo12:.LANCHOR5 + ldrh w1, [x0, 462] adrp x0, .LC307 add x0, x0, :lo12:.LC307 - ldrh w1, [x1,998] bl printk -.L4203: - ldr w0, [x22,#:lo12:.LANCHOR2] - tbz x0, 12, .L4204 - add x1, x19, :lo12:.LANCHOR5 +.L4111: + ldr w0, [x22, #:lo12:.LANCHOR2] + tbz x0, 12, .L4112 + add x0, x20, :lo12:.LANCHOR5 + ldrh w1, [x0, 220] adrp x0, .LC308 add x0, x0, :lo12:.LC308 - ldrh w1, [x1,264] bl printk -.L4204: - ldr w0, [x22,#:lo12:.LANCHOR2] - tbz x0, 12, .L4205 - add x1, x21, :lo12:.LANCHOR3 +.L4112: + ldr w0, [x22, #:lo12:.LANCHOR2] + tbz x0, 12, .L4113 + add x0, x21, :lo12:.LANCHOR3 + ldrh w1, [x0, 1380] adrp x0, .LC309 add x0, x0, :lo12:.LC309 - ldrh w1, [x1,1388] bl printk -.L4205: - ldr w0, [x22,#:lo12:.LANCHOR2] - tbz x0, 12, .L4206 - add x1, x21, :lo12:.LANCHOR3 +.L4113: + ldr w0, [x22, #:lo12:.LANCHOR2] + tbz x0, 12, .L4114 + add x0, x21, :lo12:.LANCHOR3 + ldrh w1, [x0, 1382] adrp x0, .LC310 add x0, x0, :lo12:.LC310 - ldrh w1, [x1,1390] bl printk -.L4206: +.L4114: + add x24, x20, :lo12:.LANCHOR5 bl zbuf_init - add x25, x19, :lo12:.LANCHOR5 mov w0, 16384 - add x24, x20, :lo12:.LANCHOR0 + bl ftl_malloc + add x25, x19, :lo12:.LANCHOR0 add x23, x21, :lo12:.LANCHOR3 - bl ftl_malloc - str x0, [x25,648] + str x0, [x24, 392] mov w0, 16384 bl ftl_malloc - str x0, [x25,664] + str x0, [x24, 408] mov w0, 16384 bl ftl_malloc - str x0, [x25,1024] - ldrh w1, [x24,1088] + str x0, [x24, 488] + mov w0, 256 + bl ftl_dma32_malloc + str x0, [x24, 376] + mov w0, 256 + bl ftl_dma32_malloc + ldrh w1, [x25, 1096] + str x0, [x24, 416] mov w0, 6 mul w0, w1, w0 - bl ftl_malloc - str x0, [x24,1040] - ldrb w1, [x23,1329] - ldrh w0, [x23,1384] + bl ftl_dma32_malloc + str x0, [x25, 1040] + ldrb w1, [x23, 1321] + ldrh w0, [x23, 1376] mul w0, w0, w1 lsl w0, w0, 2 - bl ftl_malloc - str x0, [x23,1944] - ldrb w1, [x23,1329] - ldrh w0, [x23,1384] - ldr x2, [x25,664] - str x2, [x23,1936] + bl ftl_dma32_malloc + ldrb w1, [x23, 1321] + str x0, [x23, 1936] + ldrh w0, [x23, 1376] + ldr x2, [x24, 408] + str x2, [x23, 1928] mul w0, w0, w1 + ldrh w1, [x25, 1096] add x3, x2, w0, sxtw 3 - ldrh w1, [x24,1088] - str x3, [x24,1112] - lsr w1, w1, 1 - add w1, w1, w0, lsl 1 - ldr w0, [x22,#:lo12:.LANCHOR2] + lsl w0, w0, 1 + add w1, w0, w1, lsr 1 + ldr w0, [x22, #:lo12:.LANCHOR2] add x1, x2, w1, sxtw 2 - str x1, [x24,1120] - tbz x0, 12, .L4207 + str x3, [x25, 1120] + str x1, [x25, 1128] + tbz x0, 12, .L4115 adrp x0, .LC311 add x0, x0, :lo12:.LC311 bl printk -.L4207: - add x0, x20, :lo12:.LANCHOR0 +.L4115: + add x0, x19, :lo12:.LANCHOR0 add x21, x21, :lo12:.LANCHOR3 - add x3, x19, :lo12:.LANCHOR5 - ldrh w1, [x0,1088] - ldrh w0, [x21,1384] - ldrb w21, [x21,1329] - ldrh w23, [x3,1020] + ldrh w1, [x0, 1096] + ldrh w0, [x21, 1376] + ldrb w21, [x21, 1321] mul w21, w0, w21 - ldr w0, [x22,#:lo12:.LANCHOR2] - lsl w23, w23, 2 - add w23, w23, w1, lsl 2 + add x0, x20, :lo12:.LANCHOR5 + ldrh w23, [x0, 484] add w21, w1, w21, lsl 2 - add w23, w23, 704 + lsl w1, w1, 2 lsl w21, w21, 1 add w21, w21, 632 - tbz x0, 12, .L4208 - adrp x0, .LC312 - ldrh w3, [x3,998] - add x0, x0, :lo12:.LC312 - mov w1, w21 + add w23, w1, w23, lsl 2 + ldr w1, [x22, #:lo12:.LANCHOR2] + add w23, w23, 704 + tbz x1, 12, .L4116 + ldrh w3, [x0, 462] mov w2, w23 + adrp x0, .LC312 + mov w1, w21 + add x0, x0, :lo12:.LC312 bl printk -.L4208: - add x19, x19, :lo12:.LANCHOR5 - ldrh w0, [x19,998] +.L4116: + add x20, x20, :lo12:.LANCHOR5 + ldrh w0, [x20, 462] cmp w21, w0 - bhi .L4210 + bhi .L4117 cmp w23, w0 - bls .L4209 -.L4210: -.L4211: - b .L4211 -.L4209: + bls .L4118 +.L4117: +.L4171: + b .L4171 +.L4095: + add w1, w1, 1 + lsl w3, w3, 1 + and w1, w1, 65535 + b .L4094 +.L4097: + add w4, w4, 1 + lsl w1, w1, 1 + and w4, w4, 65535 + b .L4096 +.L4100: + ldrb w6, [x6, 1212] + cbz w6, .L4103 + mov w6, 1200 + strh w4, [x0, 1952] + strh w6, [x0, 1954] + strh w4, [x3, 218] + b .L4103 +.L4118: bl sblk_init bl gc_init bl ftl_info_blk_init cmn w0, #1 - beq .L4212 + beq .L4093 + add x21, x19, :lo12:.LANCHOR0 bl ftl_ext_info_init - add x21, x20, :lo12:.LANCHOR0 mov w0, 1 bl pm_init bl lpa_rebuild_hash - ldr x0, [x21,1120] + ldr x0, [x21, 1128] mov x1, 0 add x0, x0, 16 bl ftl_open_sblk_recovery - ldr x1, [x21,1120] - add x0, x1, 48 - add x1, x1, 16 + ldr x0, [x21, 1128] + add x1, x0, 16 + add x0, x0, 48 bl ftl_open_sblk_recovery - ldr x1, [x21,3392] - ldr w0, [x1,8] + ldr x1, [x21, 3384] + ldr w0, [x1, 8] add w0, w0, 16 - str w0, [x1,8] - ldr x0, [x21,1120] + str w0, [x1, 8] + ldr x0, [x21, 1128] add x0, x0, 16 bl ftl_info_data_recovery - ldr x0, [x21,1120] + ldr x0, [x21, 1128] add x0, x0, 48 bl ftl_info_data_recovery - ldr x0, [x21,1120] + ldr x0, [x21, 1128] add x0, x0, 80 bl ftl_info_data_recovery bl gc_recovery bl pm_flush mov w0, 1 bl ftl_total_vpn_update - ldrb w0, [x19,657] - cbz w0, .L4213 - ldr x1, [x21,3392] - ldr w0, [x1,68] + ldrb w0, [x20, 401] + cbz w0, .L4120 + ldr x1, [x21, 3384] + ldr w0, [x1, 68] add w0, w0, 1 - str w0, [x1,68] -.L4213: + str w0, [x1, 68] +.L4120: bl ftl_ext_info_flush mov w0, 0 bl ftl_info_flush bl print_ftl_debug_info - add x1, x20, :lo12:.LANCHOR0 - ldr x0, [x1,1120] - ldrh w0, [x0,124] - cbnz w0, .L4217 - ldrh w2, [x1,3376] - mov w19, 16384 - ldrh w0, [x1,3380] - add w0, w2, w0 + add x1, x19, :lo12:.LANCHOR0 + ldr x0, [x1, 1128] + ldrh w0, [x0, 124] + cbnz w0, .L4127 + ldrh w0, [x1, 3368] + ldrh w1, [x1, 3372] + add w0, w0, w1 cmp w0, 7 - ble .L4214 -.L4216: + ble .L4127 +.L4123: mov w0, 0 - b .L4212 -.L4217: - mov w19, 16384 -.L4214: +.L4093: + 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 +.L4127: + add x19, x19, :lo12:.LANCHOR0 + mov w20, 16384 mov w21, 65535 -.L4249: +.L4124: mov w1, 1 mov w0, 0 bl zftl_do_gc - mov w0, 1 - mov w1, w0 + mov w1, 1 + mov w0, w1 bl zftl_do_gc - add x1, x20, :lo12:.LANCHOR0 - ldr x0, [x1,1120] - ldrh w2, [x0,124] - cbnz w2, .L4215 - ldrh w0, [x0,80] + ldr x0, [x19, 1128] + ldrh w1, [x0, 124] + cbnz w1, .L4122 + ldrh w0, [x0, 80] cmp w0, w21 - bne .L4215 - ldrh w2, [x1,3376] - ldrh w0, [x1,3380] - add w0, w2, w0 + bne .L4122 + ldrh w0, [x19, 3368] + ldrh w1, [x19, 3372] + add w0, w0, w1 cmp w0, 7 - bgt .L4216 -.L4215: - subs w19, w19, #1 - bne .L4249 - b .L4216 -.L4212: - 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 + bgt .L4123 +.L4122: + subs w20, w20, #1 + bne .L4124 + b .L4123 .size zftl_init, .-zftl_init .align 2 .global rk_ftl_init @@ -27163,403 +26937,399 @@ rk_ftl_init: stp x29, x30, [sp, -48]! adrp x0, jiffies add x29, sp, 0 - stp x21, x22, [sp,32] + stp x19, x20, [sp, 16] + stp x21, x22, [sp, 32] adrp x21, .LANCHOR5 - ldr x0, [x0,#:lo12:jiffies] - stp x19, x20, [sp,16] add x19, x21, :lo12:.LANCHOR5 - str x0, [x19,272] + ldr x0, [x0, #:lo12:jiffies] + str x0, [x19, 224] mov w0, 136 - strb wzr, [x19,1032] - bl ftl_malloc - str x0, [x19,280] - cbnz x0, .L4269 -.L4271: - mov w0, -1 - b .L4270 -.L4269: + strb wzr, [x19, 496] + str wzr, [x19, 248] + bl ftl_dma32_malloc + str x0, [x19, 232] + cbnz x0, .L4174 +.L4176: + mov w20, -1 +.L4173: + mov w0, w20 + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x29, x30, [sp], 48 + ret +.L4174: mov w0, 2048 - bl ftl_malloc - str x0, [x19,1040] - add x0, x19, 288 - str xzr, [x19,288] - add x1, x0, 760 - str xzr, [x19,1048] + bl ftl_dma32_malloc + add x1, x19, 512 + stp x0, xzr, [x19, 504] + str xzr, [x19, 240] + add x0, x19, 240 bl rknand_get_reg_addr - ldr x0, [x19,288] - cbz x0, .L4271 + ldr x0, [x19, 240] + cbz x0, .L4176 bl rk_nandc_irq_init - mov w1, 0 - ldr x0, [x19,1040] - mov w2, w1 + ldr x0, [x19, 504] mov w3, 2048 + mov w2, 0 + mov w1, 0 bl flash_sram_load_store bl rknand_flash_cs_init - ldr x0, [x19,280] + ldr x0, [x19, 232] adrp x1, zftl_deinit add x1, x1, :lo12:zftl_deinit - str x1, [x0,80] + str x1, [x0, 80] adrp x1, zftl_cache_flush add x1, x1, :lo12:zftl_cache_flush - str x1, [x0,64] + str x1, [x0, 64] adrp x1, zftl_flash_suspend add x1, x1, :lo12:zftl_flash_suspend - str x1, [x0,88] + str x1, [x0, 88] adrp x1, zftl_flash_resume add x1, x1, :lo12:zftl_flash_resume - str x1, [x0,96] + str x1, [x0, 96] adrp x1, zftl_get_density add x1, x1, :lo12:zftl_get_density - str x1, [x0,72] + str x1, [x0, 72] adrp x1, zftl_read_flash_info add x1, x1, :lo12:zftl_read_flash_info - str x1, [x0,112] + str x1, [x0, 112] adrp x1, zftl_read add x1, x1, :lo12:zftl_read - str x1, [x0,40] + str x1, [x0, 40] adrp x1, zftl_write add x1, x1, :lo12:zftl_write - str x1, [x0,48] + str x1, [x0, 48] adrp x1, zftl_sys_read add x1, x1, :lo12:zftl_sys_read - str x1, [x0,24] + str x1, [x0, 24] adrp x1, zftl_sys_write add x1, x1, :lo12:zftl_sys_write - str x1, [x0,32] + str x1, [x0, 32] adrp x1, zftl_vendor_read add x1, x1, :lo12:zftl_vendor_read - str x1, [x0,8] + str x1, [x0, 8] adrp x1, zftl_vendor_write add x1, x1, :lo12:zftl_vendor_write - str x1, [x0,16] + str x1, [x0, 16] adrp x1, zftl_nandc_get_irq_status add x1, x1, :lo12:zftl_nandc_get_irq_status - str x1, [x0,120] + str x1, [x0, 120] adrp x1, zftl_proc_ftl_read add x1, x1, :lo12:zftl_proc_ftl_read - str x1, [x0,128] + str x1, [x0, 128] adrp x1, zftl_do_gc add x1, x1, :lo12:zftl_do_gc - str x1, [x0,104] + str x1, [x0, 104] adrp x1, zftl_discard add x1, x1, :lo12:zftl_discard - str x1, [x0,56] - ldr x0, [x19,288] + str x1, [x0, 56] + ldr x0, [x19, 240] bl nand_flash_init mov w22, w0 - cbnz w0, .L4272 + cbnz w0, .L4177 bl zftl_init mov w20, w0 bl zftl_proc_debug_init mov w0, 1 - strb w0, [x19,1032] - b .L4273 -.L4272: - ldr x1, [x19,280] - adrp x2, ftl_get_density - add x2, x2, :lo12:ftl_get_density - adrp x0, ftl_deinit - add x0, x0, :lo12:ftl_deinit - str x2, [x1,72] - adrp x2, ftl_read_flash_info - add x2, x2, :lo12:ftl_read_flash_info - str x2, [x1,112] - adrp x2, ftl_read - str x0, [x1,80] - add x2, x2, :lo12:ftl_read - str x2, [x1,40] - adrp x2, ftl_write - adrp x0, ftl_cache_flush - add x2, x2, :lo12:ftl_write - str x2, [x1,48] - adrp x2, ftl_sys_read - add x0, x0, :lo12:ftl_cache_flush - add x2, x2, :lo12:ftl_sys_read - str x2, [x1,24] - adrp x2, ftl_sys_write - str x0, [x1,64] - add x2, x2, :lo12:ftl_sys_write - str x2, [x1,32] - adrp x2, ftl_vendor_read - adrp x0, ftl_flash_suspend - add x2, x2, :lo12:ftl_vendor_read - str x2, [x1,8] - adrp x2, ftl_vendor_write - add x0, x0, :lo12:ftl_flash_suspend - add x2, x2, :lo12:ftl_vendor_write - str x2, [x1,16] - adrp x2, ftl_nandc_get_irq_status - str x0, [x1,88] - add x2, x2, :lo12:ftl_nandc_get_irq_status - str x2, [x1,120] - adrp x2, ftl_proc_ftl_read - adrp x0, ftl_flash_resume - add x2, x2, :lo12:ftl_proc_ftl_read - str x2, [x1,128] - adrp x2, ftl_do_gc - add x0, x0, :lo12:ftl_flash_resume - add x2, x2, :lo12:ftl_do_gc - str x0, [x1,96] - str x2, [x1,104] - adrp x2, ftl_discard - ldr x0, [x19,288] - add x2, x2, :lo12:ftl_discard - str x2, [x1,56] + strb w0, [x19, 496] +.L4178: + mov w1, w20 + adrp x0, .LC313 + add x0, x0, :lo12:.LC313 + bl printk + b .L4173 +.L4177: + ldr x0, [x19, 232] + adrp x1, ftl_deinit + add x1, x1, :lo12:ftl_deinit + str x1, [x0, 80] + adrp x1, ftl_cache_flush + add x1, x1, :lo12:ftl_cache_flush + str x1, [x0, 64] + adrp x1, ftl_flash_suspend + add x1, x1, :lo12:ftl_flash_suspend + str x1, [x0, 88] + adrp x1, ftl_flash_resume + add x1, x1, :lo12:ftl_flash_resume + str x1, [x0, 96] + adrp x1, ftl_get_density + add x1, x1, :lo12:ftl_get_density + str x1, [x0, 72] + adrp x1, ftl_read_flash_info + add x1, x1, :lo12:ftl_read_flash_info + str x1, [x0, 112] + adrp x1, ftl_read + add x1, x1, :lo12:ftl_read + str x1, [x0, 40] + adrp x1, ftl_write + add x1, x1, :lo12:ftl_write + str x1, [x0, 48] + adrp x1, ftl_sys_read + add x1, x1, :lo12:ftl_sys_read + str x1, [x0, 24] + adrp x1, ftl_sys_write + add x1, x1, :lo12:ftl_sys_write + str x1, [x0, 32] + adrp x1, ftl_vendor_read + add x1, x1, :lo12:ftl_vendor_read + str x1, [x0, 8] + adrp x1, ftl_vendor_write + add x1, x1, :lo12:ftl_vendor_write + str x1, [x0, 16] + adrp x1, ftl_nandc_get_irq_status + add x1, x1, :lo12:ftl_nandc_get_irq_status + str x1, [x0, 120] + adrp x1, ftl_proc_ftl_read + add x1, x1, :lo12:ftl_proc_ftl_read + str x1, [x0, 128] + adrp x1, ftl_do_gc + add x1, x1, :lo12:ftl_do_gc + str x1, [x0, 104] + adrp x1, ftl_discard + add x1, x1, :lo12:ftl_discard + str x1, [x0, 56] + ldr x0, [x19, 240] bl FlashInit mov w20, w0 cmn w22, #2 adrp x22, .LANCHOR2 - bne .L4274 + bne .L4179 add x19, x22, :lo12:.LANCHOR2 - adrp x1, gNandParaInfo - add x19, x19, 8 - add x1, x1, :lo12:gNandParaInfo mov w2, 32 + add x19, x19, 8 + adrp x1, gNandParaInfo mov x0, x19 + add x1, x1, :lo12:gNandParaInfo bl ftl_memcpy - ldrb w0, [x19,18] + ldrb w0, [x19, 18] bl flash_lsb_page_tbl_build - ldrh w0, [x19,10] - strh w0, [x19,26] -.L4274: + ldrh w0, [x19, 10] + strh w0, [x19, 26] +.L4179: adrp x0, g_nandc_version_data - ldr w1, [x0,#:lo12: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 .L4275 + bne .L4180 adrp x0, gFlashSlcMode - ldrb w0, [x0,#:lo12:gFlashSlcMode] - cbnz w0, .L4276 -.L4275: + ldrb w0, [x0, #:lo12:gFlashSlcMode] + cbnz w0, .L4181 +.L4180: add x0, x1, :lo12:.LANCHOR0 - strb wzr, [x1,#:lo12:.LANCHOR0] - strb wzr, [x0,1154] -.L4276: + strb wzr, [x1, #:lo12:.LANCHOR0] + strb wzr, [x0, 1154] +.L4181: adrp x2, gNandFlashIDBEccBits add x0, x1, :lo12:.LANCHOR0 add x22, x22, :lo12:.LANCHOR2 add x21, x21, :lo12:.LANCHOR5 - ldrb w2, [x2,#:lo12:gNandFlashIDBEccBits] - strb w2, [x0,1152] + ldrb w2, [x2, #:lo12:gNandFlashIDBEccBits] + strb w2, [x0, 1152] adrp x2, gNandFlashEccBits - ldrh w3, [x22,18] - str xzr, [x21,328] - ldrb w2, [x2,#:lo12:gNandFlashEccBits] - strb w2, [x0,1244] - mov w2, 1 + ldrh w3, [x22, 18] + str xzr, [x21, 336] + ldrb w2, [x2, #:lo12:gNandFlashEccBits] + strb w2, [x0, 1249] mov w0, 0 -.L4277: - cmp w2, w3 - bhi .L4282 - add w0, w0, 1 - lsl w2, w2, 1 - uxth w0, w0 - b .L4277 -.L4282: - adrp x2, .LANCHOR3+1312 + mov w2, 1 +.L4182: + cmp w3, w2 + bcs .L4183 add x1, x1, :lo12:.LANCHOR0 + adrp x2, .LANCHOR3+1304 sub w0, w0, #1 - strb wzr, [x1,1192] - strh w0, [x2,#:lo12:.LANCHOR3+1312] - cbnz w20, .L4273 + strh w0, [x2, #:lo12:.LANCHOR3+1304] + strb wzr, [x1, 1192] + cbnz w20, .L4178 bl FtlInit mov w20, w0 -.L4273: - adrp x0, .LC313 - mov w1, w20 - add x0, x0, :lo12:.LC313 - bl printk - mov w0, w20 -.L4270: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x29, x30, [sp], 48 - ret + b .L4178 +.L4183: + add w0, w0, 1 + lsl w2, w2, 1 + and w0, w0, 65535 + b .L4182 .size rk_ftl_init, .-rk_ftl_init .align 2 .global zftl_write .type zftl_write, %function zftl_write: - stp x29, x30, [sp, -96]! + stp x29, x30, [sp, -112]! add x29, sp, 0 - stp x19, x20, [sp,16] - mov w20, w0 + stp x19, x20, [sp, 16] + mov w19, w0 adrp x0, .LANCHOR2 - stp x21, x22, [sp,32] - stp x25, x26, [sp,64] - ldr w0, [x0,#:lo12:.LANCHOR2] - mov w19, w1 - stp x23, x24, [sp,48] - stp x27, x28, [sp,80] + stp x21, x22, [sp, 32] + stp x25, x26, [sp, 64] + mov w20, w1 + ldr w0, [x0, #:lo12:.LANCHOR2] mov w21, w2 - mov x25, x3 - tbz x0, 12, .L4284 + stp x23, x24, [sp, 48] + mov x26, x3 + stp x27, x28, [sp, 80] + tbz x0, 12, .L4189 + ldr w4, [x26] + mov w3, w2 adrp x0, .LC314 - ldr w4, [x25] + mov w2, w1 add x0, x0, :lo12:.LC314 - mov w1, w20 - mov w2, w19 - mov w3, w21 + mov w1, w19 bl printk -.L4284: - cbnz w20, .L4285 +.L4189: + cbnz w19, .L4190 adrp x0, .LANCHOR0+1032 - mov w20, 24576 - ldr w1, [x0,#:lo12:.LANCHOR0+1032] - b .L4286 -.L4285: - cmp w20, 3 - mov w0, -1 - bhi .L4287 - lsl w20, w20, 13 - mov w1, 8192 -.L4286: - cmp w19, w1 - bcs .L4303 - cmp w21, w1 - bhi .L4303 - add w2, w19, w21 - mov w0, -1 - cmp w2, w1 - bhi .L4287 - add w19, w20, w19 - adrp x20, .LANCHOR0 - add x0, x20, :lo12:.LANCHOR0 - sub w24, w21, #1 - add w24, w24, w19 - add w27, w19, w21 - ldrb w0, [x0,3360] - udiv w26, w19, w0 - mov w23, w26 - udiv w24, w24, w0 - sub w22, w24, w26 - add w22, w22, 1 -.L4288: - cbz w22, .L4314 - add x0, x20, :lo12:.LANCHOR0 - ldrb w1, [x0,3388] - cbz w1, .L4289 - ldrb w0, [x0,3362] - cmp w0, 2 - bhi .L4289 + mov w19, 24576 + ldr w0, [x0, #:lo12:.LANCHOR0+1032] +.L4191: + cmp w0, w20 + ccmp w0, w21, 0, hi + bcc .L4209 + add w1, w20, w21 + cmp w0, w1 + bcc .L4209 + adrp x0, .LANCHOR3 + add x0, x0, :lo12:.LANCHOR3 + add w19, w19, w20 + sub w23, w21, #1 + add w23, w23, w19 + adrp x22, .LANCHOR0 + ldrb w1, [x0, 1946] + add x27, x22, :lo12:.LANCHOR0 + str x0, [x29, 104] + add w0, w19, w21 + str w0, [x29, 100] + udiv w25, w19, w1 + udiv w23, w23, w1 + mov w20, w25 + sub w24, w23, w25 + add w24, w24, 1 +.L4193: + cbnz w24, .L4202 bl ftl_write_commit -.L4289: + mov w1, 1 + mov w0, 0 + bl zftl_do_gc + add x1, x22, :lo12:.LANCHOR0 + ldr x0, [x1, 1128] + ldrh w0, [x0, 124] + cbnz w0, .L4203 + ldrh w0, [x1, 3368] + ldrh w1, [x1, 3372] + add w0, w0, w1 + cmp w0, 11 + bgt .L4204 +.L4203: + mov w1, 1 + mov w0, 0 + bl zftl_do_gc +.L4204: + add x22, x22, :lo12:.LANCHOR0 +.L4205: + ldrh w0, [x22, 3368] + ldrh w1, [x22, 3372] + add w0, w0, w1 + cmp w0, 7 + ble .L4206 + bl timer_get_time + adrp x1, .LANCHOR5+472 + str w0, [x1, #:lo12:.LANCHOR5+472] + mov w0, 0 +.L4188: + 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 +.L4190: + cmp w19, 3 + bhi .L4209 + lsl w19, w19, 13 + mov w0, 8192 + b .L4191 +.L4202: + ldrb w0, [x27, 3381] + cbz w0, .L4194 + ldrb w0, [x27, 3353] + cmp w0, 2 + bhi .L4194 + bl ftl_write_commit +.L4194: mov w0, 0 bl buf_alloc mov x28, x0 - cbnz x0, .L4290 + cbnz x0, .L4195 bl ftl_write_commit - b .L4288 -.L4290: - strb wzr, [x0,57] - add x0, x20, :lo12:.LANCHOR0 - cmp w23, w26 - ldrb w4, [x0,3360] - cset w0, eq - strb w4, [x28,56] - cmp w23, w24 - beq .L4292 - cbz w0, .L4293 - b .L4305 -.L4292: - cbz w0, .L4294 -.L4305: - udiv w0, w19, w4 - msub w0, w0, w4, w19 - uxtb w0, w0 - strb w0, [x28,57] - sub w4, w4, w0 - uxtb w4, w4 - cmp w4, w21 - csel w4, w21, w4, hi - b .L4312 -.L4294: - msub w4, w4, w23, w27 -.L4312: - strb w4, [x28,56] -.L4293: - ldrb w1, [x28,57] - sub w22, w22, #1 - ldr x0, [x28,8] - ldrb w2, [x28,56] - add x0, x0, x1, lsl 9 - mov x1, x25 + b .L4193 +.L4195: + strb wzr, [x0, 57] + cmp w20, w25 + ldr x0, [x29, 104] + ccmp w20, w23, 4, ne + ldrb w0, [x0, 1946] + strb w0, [x28, 56] + bne .L4198 + cmp w20, w25 + bne .L4199 + udiv w1, w19, w0 + msub w1, w1, w0, w19 + and w1, w1, 255 + strb w1, [x28, 57] + sub w0, w0, w1 + and w0, w0, 255 + cmp w21, w0 + csel w0, w21, w0, cc +.L4217: + strb w0, [x28, 56] +.L4198: + ldrb w4, [x28, 57] + mov x1, x26 + ldrb w2, [x28, 56] + sub w24, w24, #1 + ldr x0, [x28, 8] lsl w2, w2, 9 + add x0, x0, x4, lsl 9 bl ftl_memcpy - str w23, [x28,36] - add x0, x20, :lo12:.LANCHOR0 - add w23, w23, 1 - ldr x1, [x0,3392] - ldr w0, [x1,8] + ldr x1, [x27, 3384] + str w20, [x28, 36] + add w20, w20, 1 + ldr w0, [x1, 8] add w2, w0, 1 - str w2, [x1,8] - str w0, [x28,32] + str w2, [x1, 8] + str w0, [x28, 32] mov x0, x28 bl ftl_write_buf - ldrb w0, [x28,56] - add x25, x25, x0, lsl 9 - b .L4288 -.L4314: - bl ftl_write_commit - mov w1, 1 - mov w0, w22 - bl zftl_do_gc - add x1, x20, :lo12:.LANCHOR0 - ldr x0, [x1,1120] - ldrh w0, [x0,124] - cbnz w0, .L4298 - ldrh w2, [x1,3376] - ldrh w0, [x1,3380] - add w0, w2, w0 - cmp w0, 11 - bgt .L4300 -.L4298: - mov w0, 0 - mov w1, 1 -.L4313: - bl zftl_do_gc -.L4300: - add x1, x20, :lo12:.LANCHOR0 - ldrh w2, [x1,3376] - ldrh w0, [x1,3380] - add w0, w2, w0 - cmp w0, 7 - bgt .L4315 + ldrb w0, [x28, 56] + add x26, x26, x0, lsl 9 + b .L4193 +.L4199: + ldr w1, [x29, 100] + msub w0, w0, w20, w1 + b .L4217 +.L4206: mov w1, 1 mov w0, 0 bl zftl_do_gc - mov w0, 1 - mov w1, w0 - b .L4313 -.L4315: - bl timer_get_time - adrp x1, .LANCHOR5+1008 - str w0, [x1,#:lo12:.LANCHOR5+1008] - mov w0, 0 - b .L4287 -.L4303: + mov w1, 1 + mov w0, w1 + bl zftl_do_gc + b .L4205 +.L4209: mov w0, -1 -.L4287: - 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 + b .L4188 .size zftl_write, .-zftl_write .align 2 .global zftl_vendor_write .type zftl_vendor_write, %function zftl_vendor_write: stp x29, x30, [sp, -16]! - mov w4, w1 mov x3, x2 - add x29, sp, 0 + mov w2, w1 add w1, w0, 512 - mov w2, w4 + add x29, sp, 0 mov w0, 2 bl zftl_write ldp x29, x30, [sp], 16 @@ -27570,12 +27340,10 @@ zftl_vendor_write: .type zftl_sys_write, %function zftl_sys_write: stp x29, x30, [sp, -16]! - mov w5, w0 - mov w4, w1 - add x29, sp, 0 mov x3, x2 - mov w1, w5 - mov w2, w4 + mov w2, w1 + mov w1, w0 + add x29, sp, 0 mov w0, 2 bl zftl_write ldp x29, x30, [sp], 16 @@ -27587,248 +27355,244 @@ zftl_sys_write: zftl_discard: stp x29, x30, [sp, -128]! add x29, sp, 0 - stp x21, x22, [sp,32] - adrp x21, .LANCHOR0 - stp x19, x20, [sp,16] + stp x19, x20, [sp, 16] mov w19, w1 + stp x21, x22, [sp, 32] + adrp x21, .LANCHOR0 add x1, x21, :lo12:.LANCHOR0 - stp x23, x24, [sp,48] - stp x25, x26, [sp,64] - stp x27, x28, [sp,80] - ldr w1, [x1,1032] + stp x23, x24, [sp, 48] + stp x25, x26, [sp, 64] + stp x27, x28, [sp, 80] + ldr w1, [x1, 1032] cmp w0, w1 - bcs .L4339 - cmp w19, w1 - cset w5, hi - cbnz w5, .L4339 + ccmp w19, w1, 2, cc + bhi .L4244 add w2, w0, w19 - mov w4, -1 - cmp w2, w1 - bhi .L4319 - adrp x23, .LANCHOR5 - add w22, w0, 24576 - add x0, x23, :lo12:.LANCHOR5 - ldr w1, [x0,1056] + cmp w1, w2 + bcc .L4244 + add w23, w0, 24576 + adrp x24, .LANCHOR5 + add x0, x24, :lo12:.LANCHOR5 + ldr w1, [x0, 520] add w1, w19, w1 - str w1, [x0,1056] + str w1, [x0, 520] adrp x0, .LANCHOR2 - str x0, [x29,104] - ldr w2, [x0,#:lo12:.LANCHOR2] - tbz x2, 12, .L4320 + str x0, [x29, 104] + ldr w2, [x0, #:lo12:.LANCHOR2] + tbz x2, 12, .L4224 adrp x0, .LC315 - mov w2, w22 - add x0, x0, :lo12:.LC315 + mov w4, 0 mov w3, w19 - mov w4, w5 + mov w2, w23 + add x0, x0, :lo12:.LC315 bl printk -.L4320: - add x20, x21, :lo12:.LANCHOR0 - ldr x0, [x20,3392] - ldr w25, [x0,8] - add w1, w25, 1 - str w1, [x0,8] - bl ftl_write_commit - bl ftl_flush - ldrb w24, [x20,3360] - udiv w20, w22, w24 - msub w26, w20, w24, w22 - cbz w26, .L4321 - sub w24, w24, w26 - mov w0, w20 - cmp w24, w19 - csel w24, w24, w19, ls - bl lpa_hash_get_ppa - str w0, [x29,120] - cmn w0, #1 - bne .L4322 - mov w0, w20 - add x1, x29, 120 - mov w2, 0 - bl pm_log2phys -.L4322: - ldr w0, [x29,120] - and w27, w24, 65535 - cmn w0, #1 - beq .L4324 - mov w0, 0 - bl buf_alloc - mov x28, x0 - cbz x0, .L4324 - strb w26, [x0,57] - ubfiz x26, x26, 9, 25 - str w20, [x0,36] - mov w1, 0 - strb w24, [x0,56] - lsl w2, w27, 9 - str w25, [x0,32] - ldr x0, [x0,8] - add x0, x0, x26 - bl ftl_memset - mov x0, x28 - bl ftl_write_buf - bl ftl_write_commit +.L4224: add x0, x21, :lo12:.LANCHOR0 - ldr x1, [x0,3392] - ldr w0, [x1,76] - add w0, w0, 1 - str w0, [x1,76] -.L4324: - add w20, w20, 1 - sub w19, w19, w27 -.L4321: - cbz w19, .L4326 + adrp x25, .LANCHOR3 + ldr x0, [x0, 3384] + ldr w27, [x0, 8] + add w1, w27, 1 + str w1, [x0, 8] + bl ftl_write_commit bl ftl_flush -.L4326: - mov w0, -1 - mov w26, 1 - str w0, [x29,124] - adrp x27, .LANCHOR3 - mov w28, 24 -.L4327: - add x24, x21, :lo12:.LANCHOR0 - ldrb w0, [x24,3360] - cmp w19, w0 - bcc .L4367 + add x0, x25, :lo12:.LANCHOR3 + ldrb w22, [x0, 1946] + udiv w20, w23, w22 + msub w26, w20, w22, w23 + cbz w26, .L4225 + sub w22, w22, w26 mov w0, w20 + cmp w22, w19 + csel w22, w22, w19, ls bl lpa_hash_get_ppa - str w0, [x29,120] + str w0, [x29, 120] cmn w0, #1 - beq .L4328 + bne .L4226 + mov w2, 0 + add x1, x29, 120 + mov w0, w20 + bl pm_log2phys +.L4226: + ldr w0, [x29, 120] + and w28, w22, 65535 + cmn w0, #1 + beq .L4228 mov w0, 0 bl buf_alloc mov x3, x0 - cbz x0, .L4330 - ldrb w2, [x24,3360] + cbz x0, .L4228 + strb w26, [x0, 57] + ubfiz x26, x26, 9, 25 + strb w22, [x0, 56] mov w1, 0 - str w20, [x0,36] - strb w2, [x0,56] - lsl w2, w2, 9 - str w25, [x0,32] - strb wzr, [x0,57] - ldr x0, [x0,8] - str x3, [x29,96] + ldr x0, [x0, 8] + lsl w2, w28, 9 + stp w27, w20, [x3, 32] + str x3, [x29, 96] + add x0, x0, x26 bl ftl_memset - ldr x3, [x29,96] + ldr x3, [x29, 96] mov x0, x3 bl ftl_write_buf bl ftl_write_commit - b .L4366 -.L4328: + add x0, x21, :lo12:.LANCHOR0 + ldr x1, [x0, 3384] + ldr w0, [x1, 76] + add w0, w0, 1 + str w0, [x1, 76] +.L4228: + add w20, w20, 1 + sub w19, w19, w28 +.L4225: + cbz w19, .L4230 + bl ftl_flush +.L4230: + add x22, x25, :lo12:.LANCHOR3 + add x26, x21, :lo12:.LANCHOR0 + mov w0, -1 + mov w28, 1 + str w0, [x29, 124] +.L4231: + ldrb w0, [x22, 1946] + cmp w19, w0 + bcs .L4236 + cbz w19, .L4238 mov w0, w20 - add x1, x29, 120 - mov w2, 0 - bl pm_log2phys - ldr w0, [x29,120] + bl lpa_hash_get_ppa + str w0, [x29, 120] cmn w0, #1 - beq .L4330 + bne .L4239 + mov w2, 0 + add x1, x29, 120 + mov w0, w20 + bl pm_log2phys +.L4239: + ldr w0, [x29, 120] + cmn w0, #1 + beq .L4238 + mov w0, 0 + bl buf_alloc + mov x22, x0 + cbz x0, .L4238 + add x25, x25, :lo12:.LANCHOR3 + strb wzr, [x0, 57] + strb w19, [x0, 56] + stp w27, w20, [x22, 32] + ldrb w0, [x25, 1946] + cmp w19, w0 + bcc .L4241 + adrp x1, .LANCHOR4 + add x1, x1, :lo12:.LANCHOR4 + add x1, x1, 1056 + mov w2, 1496 + adrp x0, .LC0 + add x0, x0, :lo12:.LC0 + bl printk + bl dump_stack +.L4241: + ldr x0, [x22, 8] + lsl w2, w19, 9 + mov w1, 0 + bl ftl_memset + mov x0, x22 + bl ftl_write_buf + bl ftl_write_commit + add x0, x21, :lo12:.LANCHOR0 + ldr x1, [x0, 3384] + ldr w0, [x1, 76] + add w0, w0, 1 + str w0, [x1, 76] +.L4238: + add x0, x24, :lo12:.LANCHOR5 + ldr w1, [x0, 520] + cmp w1, 8192 + bls .L4245 + ldr x0, [x29, 104] + ldr w0, [x0, #:lo12:.LANCHOR2] + tbz x0, 12, .L4242 + adrp x0, .LC315 + mov w4, 0 + mov w3, w19 + mov w2, w23 + add x0, x0, :lo12:.LC315 + bl printk +.L4242: + add x24, x24, :lo12:.LANCHOR5 + add x21, x21, :lo12:.LANCHOR0 + str wzr, [x24, 520] + bl flt_sys_flush + mov w0, 1 + str w0, [x21, 3396] +.L4245: + mov w0, 0 + b .L4222 +.L4236: + mov w0, w20 + bl lpa_hash_get_ppa + str w0, [x29, 120] + cmn w0, #1 + beq .L4232 + mov w0, 0 + bl buf_alloc + mov x3, x0 + cbz x0, .L4234 + ldrb w2, [x22, 1946] + mov w1, 0 + strb w2, [x0, 56] + strb wzr, [x0, 57] + ldr x0, [x0, 8] + lsl w2, w2, 9 + stp w27, w20, [x3, 32] + str x3, [x29, 96] + bl ftl_memset + ldr x3, [x29, 96] + mov x0, x3 + bl ftl_write_buf + bl ftl_write_commit +.L4271: + ldr x1, [x26, 3384] + ldr w0, [x1, 76] + add w0, w0, 1 + str w0, [x1, 76] +.L4234: + ldrb w0, [x22, 1946] + add w20, w20, 1 + sub w19, w19, w0 + b .L4231 +.L4232: + mov w2, 0 + add x1, x29, 120 + mov w0, w20 + bl pm_log2phys + ldr w0, [x29, 120] + cmn w0, #1 + beq .L4234 add x1, x29, 124 mov w2, 1 mov w0, w20 bl pm_log2phys - add x2, x27, :lo12:.LANCHOR3 - ldrb w1, [x24,1257] - ldr w0, [x29,120] - sub w1, w28, w1 - ldrh w3, [x2,1312] - sub w1, w1, w3 - lsr w0, w0, w3 - lsl w1, w26, w1 - sub w1, w1, #1 - and w1, w1, w0 - ldrb w0, [x2,1314] - udiv w0, w1, w0 + ldrb w1, [x26, 1205] + mov w0, 24 + ldrh w2, [x22, 1304] + sub w0, w0, w1 + ldr w1, [x29, 120] + sub w0, w0, w2 + lsr w1, w1, w2 + lsl w0, w28, w0 + sub w0, w0, #1 + and w0, w0, w1 + ldrb w1, [x22, 1306] + udiv w0, w0, w1 bl ftl_vpn_decrement -.L4366: - ldr x1, [x24,3392] - ldr w0, [x1,76] - add w0, w0, 1 - str w0, [x1,76] -.L4330: - add x0, x21, :lo12:.LANCHOR0 - add w20, w20, 1 - ldrb w0, [x0,3360] - sub w19, w19, w0 - b .L4327 -.L4367: - cbz w19, .L4334 - mov w0, w20 - bl lpa_hash_get_ppa - str w0, [x29,120] - cmn w0, #1 - bne .L4335 - mov w0, w20 - add x1, x29, 120 - mov w2, 0 - bl pm_log2phys -.L4335: - ldr w0, [x29,120] - cmn w0, #1 - beq .L4334 - mov w0, 0 - bl buf_alloc - mov x24, x0 - cbz x0, .L4334 - str w20, [x0,36] - strb wzr, [x0,57] - strb w19, [x0,56] - str w25, [x0,32] - add x0, x21, :lo12:.LANCHOR0 - ldrb w0, [x0,3360] - cmp w19, w0 - bcc .L4337 - adrp x1, .LANCHOR4 - adrp x0, .LC0 - add x1, x1, :lo12:.LANCHOR4 - mov w2, 1495 - add x1, x1, 1040 - add x0, x0, :lo12:.LC0 - bl printk - bl dump_stack -.L4337: - ldr x0, [x24,8] - mov w1, 0 - lsl w2, w19, 9 - bl ftl_memset - mov x0, x24 - bl ftl_write_buf - bl ftl_write_commit - add x0, x21, :lo12:.LANCHOR0 - ldr x1, [x0,3392] - ldr w0, [x1,76] - add w0, w0, 1 - str w0, [x1,76] -.L4334: - add x0, x23, :lo12:.LANCHOR5 - mov w4, 0 - ldr w1, [x0,1056] - cmp w1, 8192 - bls .L4319 - ldr x0, [x29,104] - ldr w0, [x0,#:lo12:.LANCHOR2] - tbz x0, 12, .L4338 - adrp x0, .LC315 - mov w2, w22 - add x0, x0, :lo12:.LC315 - mov w3, w19 - bl printk -.L4338: - add x23, x23, :lo12:.LANCHOR5 - add x21, x21, :lo12:.LANCHOR0 - str wzr, [x23,1056] - bl flt_sys_flush - mov w0, 1 - mov w4, 0 - str w0, [x21,3412] - b .L4319 -.L4339: - mov w4, -1 -.L4319: - mov w0, w4 - 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] + b .L4271 +.L4244: + mov w0, -1 +.L4222: + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] + ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 128 ret .size zftl_discard, .-zftl_discard @@ -27837,51 +27601,49 @@ zftl_discard: .type dump_pm_blk, %function dump_pm_blk: stp x29, x30, [sp, -48]! - adrp x0, .LC267 mov w2, 4 - add x29, sp, 0 - stp x21, x22, [sp,32] - adrp x21, .LANCHOR0 + adrp x0, .LC267 add x0, x0, :lo12:.LC267 - stp x19, x20, [sp,16] - add x19, x21, :lo12:.LANCHOR0 - adrp x20, .LANCHOR5 + add x29, sp, 0 + stp x19, x20, [sp, 16] + adrp x19, .LANCHOR0 + add x19, x19, :lo12:.LANCHOR0 + stp x21, x22, [sp, 32] + adrp x21, .LANCHOR5 + add x21, x21, :lo12:.LANCHOR5 + mov w20, 0 mov w22, 65535 - ldr x3, [x19,3392] - add x1, x3, 704 - ldrh w3, [x3,698] + ldr x1, [x19, 3384] + add x1, x1, 704 + ldrh w3, [x1, -6] bl rknand_print_hex - add x3, x20, :lo12:.LANCHOR5 - ldr x1, [x19,3392] + ldrh w3, [x21, 220] adrp x0, .LC268 + ldr x1, [x19, 3384] mov w2, 2 add x0, x0, :lo12:.LC268 add x1, x1, 416 - ldrh w3, [x3,264] - mov w19, 0 bl rknand_print_hex -.L4369: - add x0, x20, :lo12:.LANCHOR5 - ldrh w0, [x0,264] - cmp w0, w19 - bls .L4372 - add x0, x21, :lo12:.LANCHOR0 - ldr x0, [x0,3392] - add x0, x0, w19, sxtw 1 - ldrh w0, [x0,416] - cmp w0, w22 - beq .L4370 - mov x1, 0 - bl ftl_sblk_dump -.L4370: - add w19, w19, 1 - uxth w19, w19 - b .L4369 -.L4372: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] +.L4273: + ldrh w0, [x21, 220] + cmp w0, w20 + bhi .L4275 + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] ldp x29, x30, [sp], 48 ret +.L4275: + ldr x0, [x19, 3384] + add x0, x0, w20, sxtw 1 + ldrh w0, [x0, 416] + cmp w0, w22 + beq .L4274 + mov x1, 0 + bl ftl_sblk_dump +.L4274: + add w20, w20, 1 + and w20, w20, 65535 + b .L4273 .size dump_pm_blk, .-dump_pm_blk .align 2 .global id_block_prog_msb_ff_data @@ -27889,720 +27651,723 @@ dump_pm_blk: id_block_prog_msb_ff_data: stp x29, x30, [sp, -96]! add x29, sp, 0 - stp x21, x22, [sp,32] + stp x21, x22, [sp, 32] adrp x21, .LANCHOR0 - stp x23, x24, [sp,48] - uxtb w23, w0 + stp x23, x24, [sp, 48] + and w24, w0, 255 add x0, x21, :lo12:.LANCHOR0 - stp x19, x20, [sp,16] - stp x25, x26, [sp,64] - stp x27, x28, [sp,80] - uxth w19, w2 - ldr x2, [x0,1144] - ldrb w0, [x0,1154] - ldrb w2, [x2,19] - cbnz w0, .L4373 - sub w0, w2, #5 - uxtb w0, w0 - cmp w0, 2 - bls .L4375 - cmp w2, 68 - beq .L4375 - sub w2, w2, #19 - and w2, w2, -17 - uxtb w2, w2 - cbnz w2, .L4373 -.L4375: + stp x19, x20, [sp, 16] + stp x25, x26, [sp, 64] + and w19, w2, 65535 + str x27, [sp, 80] + ldrb w2, [x0, 1154] + cbnz w2, .L4277 + ldr x0, [x0, 1144] + ldrb w0, [x0, 19] + sub w0, w0, #5 + and w0, w0, 255 + cmp w0, 63 + bhi .L4277 + mov x2, 16391 + movk x2, 0x4000, lsl 16 + movk x2, 0x8000, lsl 48 + lsr x0, x2, x0 + tbz x0, 0, .L4277 adrp x20, .LANCHOR3 - adrp x24, .LC316 add x20, x20, :lo12:.LANCHOR3 + adrp x23, .LC316 mov w25, w1 - add x24, x24, :lo12:.LC316 - add x20, x20, 2484 - mov w27, 65535 -.L4377: - add x28, x21, :lo12:.LANCHOR0 - ldr x0, [x28,1144] - ldrh w0, [x0,10] + add x20, x20, 2476 + add x23, x23, :lo12:.LC316 +.L4279: + add x26, x21, :lo12:.LANCHOR0 + ldr x0, [x26, 1144] + ldrh w0, [x0, 10] cmp w0, w19 - bls .L4373 - add w26, w19, w25 - ldrh w3, [x20,w19,sxtw 1] - mov x0, x24 - mov w1, w19 - mov w2, w26 - bl printk - ldrh w0, [x20,w19,sxtw 1] - cmp w0, w27 - bne .L4373 - adrp x22, .LANCHOR5 - mov w1, 255 - add x22, x22, :lo12:.LANCHOR5 - mov w2, 16384 - add w19, w19, 1 - ldr x0, [x22,296] - uxth w19, w19 - bl ftl_memset - ldr x4, [x28,1144] - mov w0, w23 - ldr x2, [x22,296] - mov w1, w26 - ldrb w4, [x4,9] - mov x3, x2 - bl flash_prog_page - b .L4377 -.L4373: - 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] + bhi .L4280 +.L4277: + 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 +.L4280: + sxtw x22, w19 + add w27, w19, w25 + mov w1, w19 + mov w2, w27 + mov x0, x23 + ldrh w3, [x20, x22, lsl 1] + bl printk + ldrh w1, [x20, x22, lsl 1] + mov w0, 65535 + cmp w1, w0 + bne .L4277 + adrp x22, .LANCHOR5 + add x22, x22, :lo12:.LANCHOR5 + mov w2, 16384 + mov w1, 255 + add w19, w19, 1 + ldr x0, [x22, 304] + and w19, w19, 65535 + bl ftl_memset + ldr x0, [x26, 1144] + mov w1, w27 + ldr x3, [x22, 304] + mov x2, x3 + ldrb w4, [x0, 9] + mov w0, w24 + bl flash_prog_page + b .L4279 .size id_block_prog_msb_ff_data, .-id_block_prog_msb_ff_data .align 2 .global write_idblock .type write_idblock, %function write_idblock: stp x29, x30, [sp, -304]! - add x29, sp, 0 - stp x23, x24, [sp,48] - adrp x23, .LANCHOR0 - add x3, x23, :lo12:.LANCHOR0 - stp x21, x22, [sp,32] - stp x19, x20, [sp,16] - stp x25, x26, [sp,64] - stp x27, x28, [sp,80] - ldr x4, [x3,1144] - ldrb w3, [x3,1154] - str w3, [x29,140] - ldrb w20, [x4,9] - ldrh w24, [x4,10] - adrp x4, .LANCHOR2+34 - ldr w3, [x1] - ldrh w21, [x4,#:lo12:.LANCHOR2+34] - ldrb w4, [x23,#:lo12:.LANCHOR0] - str w4, [x29,156] - ldrh w4, [x29,156] - str w4, [x29,212] - mov w4, 19282 - movk w4, 0x534e, lsl 16 - cmp w3, w4 mov w4, 35899 movk w4, 0xfcdc, lsl 16 - cset w5, ne + add x29, sp, 0 + stp x23, x24, [sp, 48] + adrp x23, .LANCHOR0 + stp x19, x20, [sp, 16] + ldrb w3, [x23, #:lo12:.LANCHOR0] + str w3, [x29, 160] + stp x21, x22, [sp, 32] + stp x25, x26, [sp, 64] + stp x27, x28, [sp, 80] + ldrh w3, [x29, 160] + str w3, [x29, 212] + ldr w3, [x1] cmp w3, w4 - cset w4, ne - tst w5, w4 - beq .L4380 mov w4, 19282 - movk w4, 0x5353, lsl 16 + movk w4, 0x534e, lsl 16 + ccmp w3, w4, 4, ne + beq .L4283 + add w4, w4, 327680 cmp w3, w4 - bne .L4514 -.L4380: + beq .L4283 +.L4401: + mov w0, -1 +.L4282: + 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], 304 + ret +.L4283: cmp w0, 15 - bls .L4514 + bls .L4401 + add x25, x23, :lo12:.LANCHOR0 mov w19, w0 + str x2, [x29, 168] + str x1, [x29, 216] + ldr x0, [x25, 1144] + ldrb w20, [x0, 9] + ldrh w24, [x0, 10] + adrp x0, .LANCHOR2+34 + ldrh w21, [x0, #:lo12:.LANCHOR2+34] + ldrb w0, [x25, 1154] + str w0, [x29, 144] mov w0, 59392 movk w0, 0x3, lsl 16 - str x2, [x29,160] - str x1, [x29,216] bl ftl_malloc mov x22, x0 - cbz x0, .L4514 - adrp x0, .LANCHOR5+1032 - str wzr, [x29,236] - ldrb w0, [x0,#:lo12:.LANCHOR5+1032] - cbz w0, .L4507 - add x0, x23, :lo12:.LANCHOR0 - ldrb w1, [x23,#:lo12:.LANCHOR0] - ldrb w0, [x0,1154] - cbz w1, .L4384 - cmp w0, wzr + cbz x0, .L4401 + adrp x0, .LANCHOR5+496 + ldrb w0, [x0, #:lo12:.LANCHOR5+496] + cbz w0, .L4340 + ldrb w1, [x23, #:lo12:.LANCHOR0] + ldrb w0, [x25, 1154] + cbz w1, .L4287 + cmp w0, 0 cset w0, eq - b .L4510 -.L4384: +.L4398: + str w0, [x29, 236] + b .L4286 +.L4287: cmp w0, 3 - beq .L4438 - ldr w2, [x29,212] + beq .L4341 + ldr w2, [x29, 212] cmp w0, 2 mov w1, 2 - csel w1, w2, w1, ne - cmp w0, 2 mov w0, 3 - str w1, [x29,212] + csel w1, w2, w1, ne csel w0, wzr, w0, ne - b .L4510 -.L4438: - str w0, [x29,212] - mov w0, 2 -.L4510: - str w0, [x29,236] -.L4507: - ldr x0, [x29,216] - mov w1, 19282 - movk w1, 0x534e, lsl 16 - ldr w0, [x0] - cmp w0, w1 + str w1, [x29, 212] + b .L4398 +.L4340: + str wzr, [x29, 236] +.L4286: + add w19, w19, 511 + lsr w19, w19, 9 + cmp w19, 8 + bls .L4343 + cmp w19, 500 + bhi .L4289 +.L4288: + ldr x0, [x29, 216] mov w1, 35899 movk w1, 0xfcdc, lsl 16 - cset w2, ne + ldr w0, [x0] cmp w0, w1 - cset w1, ne - tst w2, w1 - beq .L4386 mov w1, 19282 - movk w1, 0x5353, lsl 16 + movk w1, 0x534e, lsl 16 + ccmp w0, w1, 4, ne + beq .L4290 + add w1, w1, 327680 cmp w0, w1 - beq .L4386 + beq .L4290 +.L4289: mov x0, x22 bl ftl_free -.L4514: - mov w0, -1 - b .L4508 -.L4386: + b .L4401 +.L4341: + str w0, [x29, 212] + mov w0, 2 + b .L4398 +.L4343: + mov w19, 8 + b .L4288 +.L4290: mov w0, 0 - add w19, w19, 511 - mul w24, w20, w24 bl zftl_flash_exit_slc_mode - lsr w19, w19, 9 add x0, x23, :lo12:.LANCHOR0 - cmp w19, 8 - mov w3, 0 + mul w24, w24, w20 + mov w4, 17739 mov w2, 63871 - ldrb w0, [x0,1154] - strb w0, [x23,#:lo12:.LANCHOR0] - mov w0, 8 - csel w19, w19, w0, cs + movk w4, 0x4e52, lsl 16 + ldrb w0, [x0, 1154] + strb w0, [x23, #:lo12:.LANCHOR0] sub w0, w24, #1 add w0, w0, w19 udiv w0, w0, w24 - str w0, [x29,136] - ldr x0, [x29,216] - add x0, x0, 253952 - add x0, x0, 2044 -.L4392: - sub x1, x0, #512 - ldr w1, [x1] - cbnz w1, .L4387 - cbnz w3, .L4388 - mov w1, 17739 - movk w1, 0x4e52, lsl 16 - b .L4511 -.L4388: - ldr x1, [x29,216] - ldr w1, [x1,w3,uxtw 2] -.L4511: - add w3, w3, 1 + str w0, [x29, 132] + ldr x0, [x29, 216] + add x3, x0, 253952 + mov w0, 0 + add x3, x3, 1532 +.L4296: + ldr w1, [x3] + cbnz w1, .L4291 + cbnz w0, .L4292 + str w4, [x3, 512] +.L4293: + add w0, w0, 1 sub w2, w2, #1 - cmp w3, 4095 - str w1, [x0] - csel w3, w3, wzr, cc + cmp w0, 4095 + sub x3, x3, #4 + csel w0, w0, wzr, cc cmp w2, 4096 - sub x0, x0, #4 - bne .L4392 - b .L4391 -.L4387: - adrp x0, .LC317 - add x0, x0, :lo12:.LC317 - bl printk -.L4391: - mul w0, w20, w21 - str w0, [x29,168] - adrp x0, .LC318 - ldr x1, [x29,160] - add x0, x0, :lo12:.LC318 - mov w2, 4 + bne .L4296 +.L4295: + ldr x1, [x29, 168] + mul w0, w21, w20 mov w3, 5 - mov x21, 0 + mov w2, 4 + str w0, [x29, 164] + adrp x0, .LC318 + add x0, x0, :lo12:.LC318 bl rknand_print_hex - adrp x0, .LC319 - mov w1, w19 - add x0, x0, :lo12:.LC319 mov w2, w19 + mov w1, w19 + adrp x0, .LC319 + add x0, x0, :lo12:.LC319 bl printk - str w21, [x29,232] - adrp x0, .LC320 - add x0, x0, :lo12:.LC320 - str x0, [x29,112] + str xzr, [x29, 224] adrp x0, .LANCHOR2 add x0, x0, :lo12:.LANCHOR2 - str x0, [x29,104] -.L4434: - adrp x26, .LANCHOR5 - mov w0, w21 - add x1, x26, :lo12:.LANCHOR5 - ldrb w1, [x1,1032] - cbnz w1, .L4393 - ldr x1, [x29,160] - ldr w2, [x29,168] - ldr w1, [x1,x21,lsl 2] - mul w20, w1, w2 - cbz w21, .L4394 - ldr w2, [x29,136] - cmp w2, 1 - bls .L4394 - sub w0, w21, #1 - ldr x2, [x29,160] - ldr w0, [x2,x0,lsl 2] - add w0, w0, 1 - cmp w1, w0 - bne .L4394 - b .L4395 -.L4393: - adrp x24, .LANCHOR0 - add x25, x24, :lo12:.LANCHOR0 - ldr x1, [x25,1128] - add x1, x1, w21, uxtw - ldrb w20, [x1,32] - mov x1, x24 - cmp w20, 255 - beq .L4395 - ldr w2, [x29,168] - mul w20, w20, w2 - ldr w2, [x29,236] - cbz w2, .L4394 - tbnz x0, 0, .L4444 - cmp w2, 3 - cset w23, eq - cbz w23, .L4396 -.L4444: - add x2, x1, :lo12:.LANCHOR0 - ldrb w0, [x29,212] - strb w0, [x1,#:lo12:.LANCHOR0] - strb w0, [x2,1154] - b .L4394 -.L4396: - mov w0, w23 - bl zftl_flash_exit_slc_mode - strb w23, [x24,#:lo12:.LANCHOR0] - strb w23, [x25,1154] -.L4394: - mov w1, 0 - mov w2, 512 - mov x0, x22 - adrp x24, .LANCHOR0 - bl ftl_memset - add x0, x24, :lo12:.LANCHOR0 - ldr x1, [x0,1144] - ldrb w25, [x1,9] - ldrh w28, [x1,10] - adrp x1, .LANCHOR2 - add x1, x1, :lo12:.LANCHOR2 - mul w28, w25, w28 - ldrh w27, [x1,34] - ldrb w1, [x0,1240] - str w1, [x29,132] - udiv w1, w20, w25 - strb wzr, [x0,1240] - mov w0, 0 - mul w27, w25, w27 - bl flash_erase_block - cmp w19, w28 - mov w1, 1 - bls .L4398 - add w1, w20, w27 - mov w0, 0 - bl flash_erase_block - mov w1, 2 -.L4398: - add x3, x24, :lo12:.LANCHOR0 - ldr x0, [x3,1144] - ldrh w23, [x0,10] - ldrb w0, [x0,12] - lsl w23, w23, 2 - mul w23, w23, w1 - sdiv w0, w23, w0 - str w0, [x29,204] - udiv w0, w20, w27 - msub w0, w0, w27, w20 - str w0, [x29,208] - sub w28, w20, w0 - cmp w20, w28 - bne .L4442 - ldrb w0, [x3,1028] - cmp w0, 9 - bne .L4442 - add x26, x26, :lo12:.LANCHOR5 - mov w1, 0 - mov w2, 1024 - str x3, [x29,224] - ldr x26, [x26,336] - mov x0, x26 - bl ftl_memset - str wzr, [x26,12] - mov w0, 18766 - ldr x3, [x29,224] - movk w0, 0x464e, lsl 16 - str w0, [x26] - mov w0, 12 - str w0, [x26,4] - ldrb w0, [x3,1154] - strb wzr, [x26,16] - cbz w0, .L4400 - ldr x0, [x3,1144] - ldrb w0, [x0,29] - strb w0, [x26,16] -.L4400: - add x24, x24, :lo12:.LANCHOR0 - mov w0, 4 - strb w0, [x26,17] - cmp w25, 8 - ldr x1, [x24,1144] - ldrh w0, [x1,10] - ldrb w1, [x1,12] - strb wzr, [x26,20] - strh wzr, [x26,22] - sdiv w0, w0, w1 - mov w1, 16 - strh w0, [x26,18] - mov w0, 70 - csel w0, w0, w1, hi - mov w1, 12 - strb w0, [x26,21] - add x0, x26, 12 - bl js_hash - str w0, [x26,8] - sub w0, w19, #4 - str w0, [x29,224] - b .L4399 -.L4442: - str w19, [x29,224] - mov x26, 0 -.L4399: - adrp x10, .LANCHOR0 - ldr x24, [x29,216] - mov w23, 0 - add x27, x10, :lo12:.LANCHOR0 -.L4402: - ldr w0, [x29,204] - cmp w23, w0 - bcs .L4515 - ldr w0, [x29,208] - ldrb w2, [x27,1154] - add w8, w23, w0 - add x0, x27, 4 - ubfx x8, x8, 2, 16 - add w1, w8, 1 - ldrh w0, [x0,w1,sxtw 1] - cbz w2, .L4404 - ldrb w3, [x27,1] - lsl w0, w1, 1 - cmp w3, wzr - csel w0, w0, w1, ne -.L4404: - ldrb w1, [x27,1028] - cmp w1, 9 - beq .L4512 - sub w0, w0, #1 - lsl w0, w0, 2 -.L4512: - str w0, [x29,240] - mov w0, 61424 - str w0, [x29,244] - add x0, x27, 4 - ldrh w0, [x0,w8,sxtw 1] - cbnz w2, .L4408 - mov w8, w0 - b .L4409 -.L4408: - ldrb w1, [x27,1] - lsl w0, w8, 1 - cmp w1, wzr - csel w8, w0, w8, ne -.L4409: - mul w0, w8, w25 - cbnz x26, .L4410 - add w26, w0, w28 - ldr w5, [x24] - ldr w6, [x29,240] - mov w1, w26 - ldr x0, [x29,112] - mov w2, w23 - mov w3, w19 - mov x4, x24 - mov w7, 61424 - str x8, [x29,192] - bl printk - mov w0, w26 - mov x1, x24 - add x2, x29, 240 - bl fw_flash_page_prog.constprop.30 - ldrb w0, [x27,1154] - ldr x8, [x29,192] - cbnz w0, .L4411 - udiv w1, w28, w25 - add w2, w8, 1 - bl id_block_prog_msb_ff_data -.L4411: - ldr w0, [x29,224] - add x24, x24, 2048 - add w0, w0, 16 - cmp w23, w0 - bcc .L4412 - ldr w0, [x29,224] - add w1, w0, 20 - ldr x0, [x29,216] - cmp w23, w1 - add x0, x0, 2048 - csel x24, x24, x0, cs - b .L4412 -.L4410: - add w0, w0, w28 - mov x1, x26 - add x2, x29, 240 - bl fw_flash_page_prog.constprop.30 -.L4412: - add w9, w23, 4 - mov x26, 0 - uxth w23, w9 - b .L4402 -.L4515: - ldr x0, [x29,104] - adrp x23, .LANCHOR0 - add x23, x23, :lo12:.LANCHOR0 - mov w25, 0 add x0, x0, 8 - mov x24, x22 - ldrb w1, [x0,9] - mov w26, 4 - str w1, [x29,152] - ldrh w0, [x0,26] - strb wzr, [x23,1240] - str w25, [x29,200] - mul w0, w1, w0 - udiv w1, w20, w0 - msub w0, w1, w0, w20 - str w0, [x29,204] - sub w0, w20, w0 - str w0, [x29,148] - ldr w0, [x29,204] - and w0, w0, 3 - str w0, [x29,192] - ldr w0, [x29,224] - str w0, [x29,172] - adrp x0, .LC321 - add x0, x0, :lo12:.LC321 - str x0, [x29,120] -.L4414: - ldr w0, [x29,172] - adrp x27, .LANCHOR0 - cmp w25, w0 - bcs .L4516 - ldr w0, [x29,192] - add x1, x23, 4 - ldrb w2, [x23,1154] - sub w0, w26, w0 - uxth w0, w0 - str w0, [x29,176] - ldr w0, [x29,204] - add w0, w25, w0 - udiv w0, w0, w26 - and w0, w0, 65535 - ldrh w1, [x1,w0,sxtw 1] - cbnz w2, .L4415 - mov w0, w1 - b .L4416 -.L4415: - ldrb w2, [x23,1] - lsl w1, w0, 1 - cmp w2, wzr - csel w0, w1, w0, ne -.L4416: - ldr w1, [x29,152] - ldr w2, [x29,148] - madd w0, w0, w1, w2 - str w0, [x29,144] - ldrb w0, [x23,1152] - str w0, [x29,208] - ldr w1, [x29,192] - ldr w0, [x29,144] - add w27, w0, w1 - ldr x0, [x23,1144] - ldrb w0, [x0,9] - udiv w27, w27, w0 - ldrb w0, [x23,1244] - str w0, [x29,128] - ldr w0, [x29,208] - bl nandc_bch_sel -.L4417: - mov w0, 0 - mov w1, w27 - mov x2, x24 - add x3, x29, 240 - mov w4, w26 - bl flash_read_page - cmn w0, #1 - mov w28, w0 - bne .L4424 - ldrb w6, [x23,1240] - cbnz w6, .L4419 -.L4422: - adrp x0, .LANCHOR5 - add x0, x0, :lo12:.LANCHOR5 - ldr x6, [x0,328] - cbnz x6, .L4420 - b .L4421 -.L4419: - mov w0, 0 - mov w1, w27 - mov x2, x24 - add x3, x29, 240 - mov w4, w26 - str x6, [x29,96] - strb wzr, [x23,1240] - bl flash_read_page - cmn w0, #1 - ldr x6, [x29,96] - strb w6, [x23,1240] - beq .L4422 - b .L4513 -.L4420: - mov w0, 0 - mov w1, w27 - mov x2, x24 - add x3, x29, 240 - mov w4, w26 - blr x6 - cmn w0, #1 - bne .L4513 -.L4421: - ldrb w0, [x23,1192] - cbz w0, .L4424 - mov w0, 0 - mov w1, w27 - mov x2, x24 - add x3, x29, 240 - mov w4, w26 - bl flash_ddr_tuning_read -.L4513: - mov w28, w0 -.L4424: - cmn w28, #1 - bne .L4425 - ldr w0, [x29,208] - cmp w0, 16 - beq .L4425 - mov w0, 16 - bl nandc_bch_sel - mov w0, 16 - str w0, [x29,208] - b .L4417 -.L4425: - ldr w0, [x29,128] - bl nandc_bch_sel - ldr w0, [x29,200] - cmn w28, #1 - csinv w0, w0, wzr, ne - str w0, [x29,200] - ldr w0, [x29,148] - cmp w25, wzr - cset w1, eq - cmp w0, w20 - cset w0, eq - tst w1, w0 - beq .L4427 - ldr w0, [x29,200] - cbnz w0, .L4427 - ldr w1, [x24] - mov w0, 18766 - movk w0, 0x464e, lsl 16 - cmp w1, w0 - bne .L4427 - ldr w0, [x29,172] - ldr w1, [x29,176] - ldrb w26, [x24,17] - add w0, w0, w1 - str w0, [x29,172] - b .L4428 -.L4427: - ldr x0, [x29,176] - mov w2, w25 - ldr w1, [x29,144] - ubfiz x0, x0, 9, 16 - ldr w3, [x29,240] - add x24, x24, x0 - ldr w4, [x29,244] - ldr x0, [x29,120] - bl printk - str wzr, [x29,192] -.L4428: - ldr w0, [x29,176] - add w25, w0, w25 - uxth w25, w25 - b .L4414 -.L4516: - add x23, x27, :lo12:.LANCHOR0 - ldrb w0, [x29,132] - strb w0, [x23,1240] - ldr w0, [x29,236] - cbz w0, .L4430 - mov w0, 0 - bl zftl_flash_exit_slc_mode - strb wzr, [x27,#:lo12:.LANCHOR0] - strb wzr, [x23,1154] -.L4430: - ldr w0, [x29,224] - mov x1, 0 - lsl w0, w0, 7 -.L4431: - cmp w0, w1 - bls .L4517 - ldr w3, [x22,x1,lsl 2] - add x1, x1, 1 - ldr x2, [x29,216] - add x2, x2, x1, lsl 2 - ldr w2, [x2,-4] - cmp w3, w2 - beq .L4431 - mov x0, x22 - mov w1, 0 - mov w2, 512 - bl ftl_memset - mov w1, w20 - mov w0, 0 - bl flash_erase_block - b .L4395 -.L4517: - ldr w0, [x29,232] + str wzr, [x29, 232] + str x0, [x29, 136] +.L4337: + adrp x27, .LANCHOR5 + add x1, x27, :lo12:.LANCHOR5 + ldr w0, [x29, 224] + ldrb w1, [x1, 496] + cbnz w1, .L4297 + ldr x2, [x29, 224] + cmp w0, 0 + ldr x1, [x29, 168] + ldr w1, [x1, x2, lsl 2] + ldr w2, [x29, 164] + mul w21, w2, w1 + ldr w2, [x29, 132] + ccmp w2, 1, 0, ne + bls .L4298 + ldr x2, [x29, 168] + sub w0, w0, #1 + ldr w0, [x2, x0, lsl 2] add w0, w0, 1 - str w0, [x29,232] - cmp w0, 5 - bhi .L4436 -.L4395: - add x21, x21, 1 - cmp x21, 4 - bne .L4434 -.L4436: + cmp w1, w0 + bne .L4298 +.L4299: + ldr x0, [x29, 224] + add x0, x0, 1 + str x0, [x29, 224] + cmp x0, 4 + bne .L4337 +.L4339: mov w0, 0 bl zftl_flash_exit_slc_mode adrp x0, .LANCHOR0 - ldrb w2, [x29,156] + ldrb w2, [x29, 160] add x1, x0, :lo12:.LANCHOR0 - strb w2, [x0,#:lo12:.LANCHOR0] - ldr w2, [x29,236] - cbz w2, .L4435 - ldrb w2, [x29,140] - strb w2, [x1,1154] -.L4435: + strb w2, [x0, #:lo12:.LANCHOR0] + ldr w2, [x29, 236] + cbz w2, .L4338 + ldrb w2, [x29, 144] + strb w2, [x1, 1154] +.L4338: add x0, x0, :lo12:.LANCHOR0 mov w1, 2 - strb w1, [x0,1264] + strb w1, [x0, 1208] mov w0, 0 bl zftl_flash_enter_slc_mode mov x0, x22 bl ftl_free - ldr w0, [x29,232] - cmp w0, wzr + ldr w0, [x29, 232] + cmp w0, 0 csetm w0, eq -.L4508: - 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], 304 - ret + b .L4282 +.L4292: + ldr x1, [x29, 216] + ldr w1, [x1, w0, uxtw 2] + str w1, [x3, 512] + b .L4293 +.L4291: + adrp x0, .LC317 + add x0, x0, :lo12:.LC317 + bl printk + b .L4295 +.L4297: + adrp x20, .LANCHOR0 + add x23, x20, :lo12:.LANCHOR0 + ldr w2, [x29, 224] + ldr x1, [x23, 1048] + add x1, x1, w2, uxtw + ldrb w21, [x1, 32] + mov x1, x20 + cmp w21, 255 + beq .L4299 + ldr w2, [x29, 164] + mul w21, w21, w2 + ldr w2, [x29, 236] + cbz w2, .L4298 + and w0, w0, -3 + cmp w0, 1 + beq .L4300 + cmp w2, 3 + bne .L4301 +.L4300: + add x2, x1, :lo12:.LANCHOR0 + ldrb w0, [x29, 212] + strb w0, [x1, #:lo12:.LANCHOR0] + strb w0, [x2, 1154] +.L4298: + mov w2, 512 + mov w1, 0 + mov x0, x22 + bl ftl_memset + adrp x20, .LANCHOR0 + add x0, x20, :lo12:.LANCHOR0 + ldr x1, [x0, 1144] + ldrb w24, [x1, 9] + ldrh w23, [x1, 10] + adrp x1, .LANCHOR2 + add x1, x1, :lo12:.LANCHOR2 + ldrh w25, [x1, 34] + mul w23, w23, w24 + ldrb w1, [x0, 1252] + str w1, [x29, 128] + udiv w1, w21, w24 + strb wzr, [x0, 1252] + mov w0, 0 + mul w25, w25, w24 + bl flash_erase_block + cmp w23, w19 + bcs .L4344 + add w1, w21, w25 + mov w0, 0 + bl flash_erase_block + mov w1, 2 +.L4302: + add x28, x20, :lo12:.LANCHOR0 + ldr x0, [x28, 1144] + ldrh w23, [x0, 10] + ldrb w0, [x0, 12] + lsl w23, w23, 2 + mul w23, w23, w1 + sdiv w0, w23, w0 + str w0, [x29, 176] + udiv w0, w21, w25 + msub w0, w0, w25, w21 + str w0, [x29, 208] + sub w26, w21, w0 + cmp w21, w26 + bne .L4346 + ldrb w0, [x28, 1028] + cmp w0, 9 + bne .L4346 + add x27, x27, :lo12:.LANCHOR5 + mov w2, 1024 + mov w1, 0 + ldr x27, [x27, 352] + mov x0, x27 + bl ftl_memset + mov w0, 18766 + movk w0, 0x464e, lsl 16 + str w0, [x27] + mov w0, 12 + str w0, [x27, 4] + ldrb w0, [x28, 1154] + strb wzr, [x27, 16] + str wzr, [x27, 12] + cbz w0, .L4304 + ldr x0, [x28, 1144] + ldrb w0, [x0, 29] + strb w0, [x27, 16] +.L4304: + add x20, x20, :lo12:.LANCHOR0 + mov w0, 4 + strb w0, [x27, 17] + cmp w24, 8 + sub w28, w19, #4 + ldr x1, [x20, 1144] + ldrh w0, [x1, 10] + ldrb w1, [x1, 12] + strb wzr, [x27, 20] + strh wzr, [x27, 22] + sdiv w0, w0, w1 + mov w1, 16 + strh w0, [x27, 18] + mov w0, 70 + csel w0, w0, w1, hi + strb w0, [x27, 21] + mov w1, 12 + add x0, x27, 12 + bl js_hash + str w0, [x27, 8] +.L4303: + ldr x20, [x29, 216] + adrp x0, .LANCHOR0 + add x25, x0, :lo12:.LANCHOR0 + mov w23, 0 + add x0, x25, 4 + str x0, [x29, 200] +.L4306: + ldr w0, [x29, 176] + cmp w0, w23 + bhi .L4317 + ldr x0, [x29, 136] + mov x23, x22 + mov w24, 4 + mov w25, 0 + stp w28, wzr, [x29, 192] + ldrb w0, [x0, 9] + str w0, [x29, 156] + ldr x0, [x29, 136] + ldr w1, [x29, 156] + ldrh w0, [x0, 26] + mul w0, w0, w1 + adrp x1, .LANCHOR0 + add x20, x1, :lo12:.LANCHOR0 + udiv w1, w21, w0 + strb wzr, [x20, 1252] + msub w0, w1, w0, w21 + str w0, [x29, 208] + sub w0, w21, w0 + str w0, [x29, 152] + ldr w0, [x29, 208] + and w0, w0, 3 + str w0, [x29, 200] + add x0, x20, 4 + str x0, [x29, 104] +.L4318: + ldr w0, [x29, 192] + cmp w25, w0 + bcc .L4332 + adrp x0, .LANCHOR0 + add x20, x0, :lo12:.LANCHOR0 + ldrb w0, [x29, 128] + strb w0, [x20, 1252] + ldr w0, [x29, 236] + cbz w0, .L4333 + mov w0, 0 + bl zftl_flash_exit_slc_mode + adrp x0, .LANCHOR0 + strb wzr, [x20, 1154] + strb wzr, [x0, #:lo12:.LANCHOR0] +.L4333: + lsl w0, w28, 7 + mov x1, 0 +.L4334: + cmp w0, w1 + bhi .L4335 + ldr w0, [x29, 232] + add w0, w0, 1 + str w0, [x29, 232] + cmp w0, 5 + bls .L4299 + b .L4339 +.L4301: + mov w0, 0 + bl zftl_flash_exit_slc_mode + strb wzr, [x20, #:lo12:.LANCHOR0] + strb wzr, [x23, 1154] + b .L4298 +.L4344: + mov w1, 1 + b .L4302 +.L4346: + mov w28, w19 + mov x27, 0 + b .L4303 +.L4317: + ldr w0, [x29, 208] + ldrb w2, [x25, 1154] + add w8, w0, w23 + ldr x0, [x29, 200] + ubfx x8, x8, 2, 16 + add w1, w8, 1 + ldrh w0, [x0, w1, sxtw 1] + cbz w2, .L4308 + ldrb w4, [x25, 1] + lsl w0, w1, 1 + cmp w4, 0 + csel w0, w0, w1, ne +.L4308: + ldrb w1, [x25, 1028] + cmp w1, 9 + bne .L4310 +.L4399: + str w0, [x29, 240] + mov w0, 61424 + str w0, [x29, 244] + ldr x0, [x29, 200] + ldrh w0, [x0, w8, sxtw 1] + cbnz w2, .L4312 + mov w8, w0 +.L4313: + mul w0, w24, w8 + cbnz x27, .L4314 + ldr w5, [x20] + mov x4, x20 + ldr w6, [x29, 240] + mov w3, w19 + add w27, w0, w26 + mov w7, 61424 + str w8, [x29, 196] + mov w2, w23 + mov w1, w27 + adrp x0, .LC320 + add x0, x0, :lo12:.LC320 + bl printk + add x2, x29, 240 + mov x1, x20 + mov w0, w27 + bl fw_flash_page_prog.constprop.29 + ldrb w0, [x25, 1154] + ldr w8, [x29, 196] + cbnz w0, .L4315 + udiv w1, w26, w24 + add w2, w8, 1 + bl id_block_prog_msb_ff_data +.L4315: + add w0, w28, 16 + add x20, x20, 2048 + cmp w23, w0 + bcc .L4316 + ldr x0, [x29, 216] + add w1, w28, 20 + cmp w23, w1 + add x0, x0, 2048 + csel x20, x0, x20, cc +.L4316: + add w9, w23, 4 + mov x27, 0 + and w23, w9, 65535 + b .L4306 +.L4310: + sub w0, w0, #1 + lsl w0, w0, 2 + b .L4399 +.L4312: + ldrb w1, [x25, 1] + lsl w0, w8, 1 + cmp w1, 0 + csel w8, w0, w8, ne + b .L4313 +.L4314: + add x2, x29, 240 + mov x1, x27 + add w0, w0, w26 + bl fw_flash_page_prog.constprop.29 + b .L4316 +.L4332: + ldr w0, [x29, 200] + ldr x1, [x29, 104] + sub w0, w24, w0 + ldrb w2, [x20, 1154] + and w0, w0, 65535 + str w0, [x29, 176] + ldr w0, [x29, 208] + add w0, w0, w25 + udiv w0, w0, w24 + and w0, w0, 65535 + ldrh w1, [x1, w0, sxtw 1] + cbnz w2, .L4319 + mov w0, w1 +.L4320: + ldp w2, w1, [x29, 152] + ldrb w27, [x20, 1152] + madd w0, w1, w0, w2 + str w0, [x29, 148] + ldr w0, [x29, 200] + ldr w1, [x29, 148] + add w26, w0, w1 + ldr x0, [x20, 1144] + ldrb w0, [x0, 9] + udiv w26, w26, w0 + ldrb w0, [x20, 1249] + str w0, [x29, 124] + mov w0, w27 + bl nandc_bch_sel + adrp x0, .LANCHOR5 + add x0, x0, :lo12:.LANCHOR5 + str x0, [x29, 112] +.L4321: + mov w4, w24 + add x3, x29, 240 + mov x2, x23 + mov w1, w26 + mov w0, 0 + bl flash_read_page + mov w5, w0 + cmn w0, #1 + bne .L4322 + ldrb w6, [x20, 1252] + cbnz w6, .L4323 +.L4326: + ldr x0, [x29, 112] + ldr x6, [x0, 336] + cbnz x6, .L4324 +.L4325: + ldrb w0, [x20, 1192] + cbz w0, .L4322 + mov w4, w24 + add x3, x29, 240 + mov x2, x23 + mov w1, w26 + mov w0, 0 + bl flash_ddr_tuning_read + b .L4400 +.L4319: + ldrb w2, [x20, 1] + lsl w1, w0, 1 + cmp w2, 0 + csel w0, w1, w0, ne + b .L4320 +.L4323: + str w6, [x29, 100] + mov w4, w24 + str w5, [x29, 120] + add x3, x29, 240 + strb wzr, [x20, 1252] + mov x2, x23 + mov w1, w26 + mov w0, 0 + bl flash_read_page + cmn w0, #1 + ldr w6, [x29, 100] + strb w6, [x20, 1252] + ldr w5, [x29, 120] + beq .L4326 +.L4400: + mov w5, w0 +.L4322: + cmn w5, #1 + cset w4, eq + cmp w27, 16 + cset w0, ne + tst w4, w0 + beq .L4328 + mov w0, 16 + mov w27, 16 + bl nandc_bch_sel + b .L4321 +.L4324: + str w5, [x29, 120] + mov w4, w24 + add x3, x29, 240 + mov x2, x23 + mov w1, w26 + mov w0, 0 + blr x6 + cmn w0, #1 + ldr w5, [x29, 120] + beq .L4325 + b .L4400 +.L4328: + ldr w0, [x29, 124] + bl nandc_bch_sel + cmp w4, 0 + ldr w0, [x29, 196] + csinv w0, w0, wzr, eq + str w0, [x29, 196] + ldr w0, [x29, 152] + cmp w25, 0 + ccmp w21, w0, 0, eq + bne .L4330 + ldr w0, [x29, 196] + cbnz w0, .L4330 + ldr w0, [x23] + mov w1, 18766 + movk w1, 0x464e, lsl 16 + cmp w0, w1 + bne .L4330 + ldr w0, [x29, 192] + ldr w1, [x29, 176] + ldrb w24, [x23, 17] + add w0, w0, w1 + str w0, [x29, 192] +.L4331: + ldr w0, [x29, 176] + add w25, w0, w25 + and w25, w25, 65535 + b .L4318 +.L4330: + ldr x0, [x29, 176] + mov w2, w25 + ldr w1, [x29, 148] + ldp w3, w4, [x29, 240] + ubfiz x0, x0, 9, 16 + add x23, x23, x0 + adrp x0, .LC321 + add x0, x0, :lo12:.LC321 + bl printk + str wzr, [x29, 200] + b .L4331 +.L4335: + ldr x2, [x29, 216] + ldr w3, [x22, x1, lsl 2] + add x1, x1, 1 + add x2, x2, x1, lsl 2 + ldr w2, [x2, -4] + cmp w3, w2 + beq .L4334 + mov w2, 512 + mov w1, 0 + mov x0, x22 + bl ftl_memset + mov w1, w21 + mov w0, 0 + bl flash_erase_block + b .L4299 .size write_idblock, .-write_idblock .align 2 .global write_loader_lba @@ -28611,782 +28376,220 @@ write_loader_lba: stp x29, x30, [sp, -112]! cmp w0, 64 add x29, sp, 0 - stp x19, x20, [sp,16] - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] + stp x19, x20, [sp, 16] mov w19, w0 + stp x21, x22, [sp, 32] + adrp x20, .LANCHOR5 + stp x23, x24, [sp, 48] mov w21, w1 mov x24, x2 - adrp x20, .LANCHOR5 - bne .L4519 + bne .L4403 ldr w0, [x2] + mov w1, 35899 + movk w1, 0xfcdc, lsl 16 + cmp w0, w1 mov w1, 19282 movk w1, 0x534e, lsl 16 - mov w2, 35899 + ccmp w0, w1, 4, ne + beq .L4404 + add w1, w1, 327680 cmp w0, w1 - movk w2, 0xfcdc, lsl 16 - cset w3, eq - cmp w0, w2 - cset w1, eq - orr w1, w3, w1 - cbnz w1, .L4535 - mov w1, 19282 - movk w1, 0x5353, lsl 16 - cmp w0, w1 - bne .L4519 -.L4535: + bne .L4403 +.L4404: add x22, x20, :lo12:.LANCHOR5 mov w0, 1 - strb w0, [x22,1060] + strb w0, [x22, 524] mov w0, 59392 movk w0, 0x3, lsl 16 bl ftl_malloc - str x0, [x22,1064] mov w2, 59392 mov w1, 0 movk w2, 0x3, lsl 16 + str x0, [x22, 528] bl ftl_memset mov w0, 64 - str w0, [x22,1072] -.L4519: + str w0, [x22, 536] +.L4403: add x23, x20, :lo12:.LANCHOR5 - adrp x0, .LC322 ldr w2, [x24] - add x0, x0, :lo12:.LC322 - mov w3, w19 mov w4, w21 - ldr x1, [x23,1064] + mov w3, w19 + adrp x0, .LC322 + add x0, x0, :lo12:.LC322 + ldr x1, [x23, 528] bl printk - ldrb w0, [x23,1060] - cbz w0, .L4518 - ldr x22, [x23,1064] - cbz x22, .L4518 + ldrb w0, [x23, 524] + cbz w0, .L4402 + ldr x22, [x23, 528] + cbz x22, .L4402 sub w0, w19, #64 cmp w0, 499 - bhi .L4522 - mov w3, 564 + bhi .L4406 + mov w2, 564 + sub w2, w2, w19 + cmp w21, w2 ubfiz x0, x0, 9, 25 - sub w3, w3, w19 - add x0, x22, x0 - cmp w3, w21 + csel w2, w21, w2, ls mov x1, x24 - csel w2, w3, w21, ls lsl w2, w2, 9 + add x0, x22, x0 bl ftl_memcpy - b .L4523 -.L4522: - cmp w19, 563 - bhi .L4533 -.L4523: +.L4407: add x23, x20, :lo12:.LANCHOR5 - ldr w0, [x23,1072] - cmp w0, w19 - beq .L4531 + ldr w0, [x23, 536] + cmp w19, w0 + beq .L4416 + strb wzr, [x23, 524] mov x0, x22 - strb wzr, [x23,1060] bl ftl_free - str xzr, [x23,1064] -.L4531: + str xzr, [x23, 528] + b .L4416 +.L4406: + cmp w19, 563 + bls .L4407 + ldr w0, [x23, 536] + mov w1, 500 + sub w0, w0, #64 + cmp w0, 500 + csel w0, w0, w1, ls + adrp x1, .LANCHOR0+1144 + ldr x1, [x1, #:lo12:.LANCHOR0+1144] + ldrb w1, [x1, 9] + cmp w1, 4 + beq .L4408 + mov w1, 2 + str w1, [x29, 72] + mov w1, 3 + str w1, [x29, 76] + mov w1, 4 + str w1, [x29, 80] + mov w1, 5 + str w1, [x29, 84] + mov w1, 6 + str w1, [x29, 88] +.L4409: + add x2, x22, 245760 + mov w1, 61952 + add x2, x2, 2048 +.L4415: + ldr w3, [x2] + cbz w3, .L4413 + add w0, w1, 2048 + lsl w0, w0, 2 +.L4414: + mov x1, x22 + add x22, x20, :lo12:.LANCHOR5 + add x2, x29, 72 + bl write_idblock + ldr x0, [x22, 528] + strb wzr, [x22, 524] + bl ftl_free + str xzr, [x22, 528] +.L4416: add x20, x20, :lo12:.LANCHOR5 add w19, w19, w21 - str w19, [x20,1072] - b .L4518 -.L4533: - ldr w2, [x23,1072] - mov w0, 500 - sub w2, w2, #64 - cmp w2, 500 - csel w2, w2, w0, ls - adrp x0, .LANCHOR0+1144 - ldr x0, [x0,#:lo12:.LANCHOR0+1144] - ldrb w0, [x0,9] - cmp w0, 4 - beq .L4534 - mov w0, 2 - str w0, [x29,72] - mov w0, 3 - str w0, [x29,76] - mov w0, 4 - str w0, [x29,80] - mov w0, 5 - str w0, [x29,84] - mov w0, 6 - str w0, [x29,88] - b .L4525 -.L4534: - mov x3, 0 -.L4524: - cmp w2, 256 - add x0, x29, 72 - bls .L4526 - lsl w1, w3, 1 - str w1, [x0,x3,lsl 2] - b .L4527 -.L4526: - str w3, [x0,x3,lsl 2] -.L4527: - add x3, x3, 1 - cmp x3, 5 - bne .L4524 -.L4525: - add x0, x22, 245760 - mov w3, 61952 - add x0, x0, 2048 -.L4530: - ldr w1, [x0] - cbz w1, .L4528 - add w2, w3, 2048 - lsl w0, w2, 2 - b .L4529 -.L4528: - sub w3, w3, #1 - sub x0, x0, #4 - cmp w3, 4096 - bne .L4530 - lsl w0, w2, 9 -.L4529: - mov x1, x22 - add x2, x29, 72 - add x22, x20, :lo12:.LANCHOR5 - bl write_idblock - ldr x0, [x22,1064] - strb wzr, [x22,1060] - bl ftl_free - str xzr, [x22,1064] - b .L4531 -.L4518: - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] + str w19, [x20, 536] +.L4402: + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] ldp x29, x30, [sp], 112 ret +.L4408: + add x2, x29, 72 + mov x1, 0 +.L4412: + cmp w0, 256 + bls .L4410 + lsl w3, w1, 1 + str w3, [x2, x1, lsl 2] +.L4411: + add x1, x1, 1 + cmp x1, 5 + bne .L4412 + b .L4409 +.L4410: + str w1, [x2, x1, lsl 2] + b .L4411 +.L4413: + sub w1, w1, #1 + sub x2, x2, #4 + cmp w1, 4096 + bne .L4415 + lsl w0, w0, 9 + b .L4414 .size write_loader_lba, .-write_loader_lba .align 2 .global FtlWrite .type FtlWrite, %function FtlWrite: - stp x29, x30, [sp, -64]! + stp x29, x30, [sp, -48]! add x29, sp, 0 - str x21, [sp,32] - uxtb w21, w0 + stp x19, x20, [sp, 16] + and w20, w0, 255 + stp x21, x22, [sp, 32] sub w0, w1, #64 - stp x19, x20, [sp,16] - cmp w0, 1983 mov w19, w1 - mov w20, w2 - bhi .L4548 - cbnz w21, .L4548 - mov w0, w1 - mov w1, w2 + mov w21, w2 + mov x22, x3 + cmp w0, 1983 + bhi .L4428 + cbnz w20, .L4428 mov x2, x3 - str x3, [x29,56] + mov w1, w21 + mov w0, w19 bl write_loader_lba - ldr x3, [x29,56] -.L4548: - adrp x0, .LANCHOR5+280 +.L4428: + adrp x0, .LANCHOR5+232 + mov x3, x22 + mov w2, w21 mov w1, w19 - mov w2, w20 - ldr x0, [x0,#:lo12:.LANCHOR5+280] - ldr x4, [x0,48] - mov w0, w21 + ldr x0, [x0, #:lo12:.LANCHOR5+232] + ldr x4, [x0, 48] + mov w0, w20 blr x4 - ldr x21, [sp,32] - ldp x19, x20, [sp,16] - ldp x29, x30, [sp], 64 + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x29, x30, [sp], 48 ret .size FtlWrite, .-FtlWrite .align 2 .global rknand_sys_storage_ioctl .type rknand_sys_storage_ioctl, %function rknand_sys_storage_ioctl: - sub sp, sp, #528 - mov w0, 27688 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - stp x29, x30, [sp, -32]! - add x29, sp, 0 - stp x19, x20, [sp,16] - mov w19, w1 - mov x20, x2 - beq .L4557 - mov w0, 27688 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - bhi .L4558 - mov w0, 25602 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - beq .L4559 - mov w0, 25602 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - bhi .L4560 mov w0, 25364 movk w0, 0x4004, lsl 16 cmp w1, w0 - beq .L4561 - mov w0, 25601 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - beq .L4562 - b .L4593 -.L4560: - mov w0, 25726 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - beq .L4563 - mov w0, 25727 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - beq .L4564 - mov w0, 25603 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - bne .L4593 - b .L4615 -.L4558: - mov w0, 30224 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - beq .L4566 - mov w0, 30224 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - bhi .L4567 - mov w0, 27698 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - beq .L4557 - mov w0, 27708 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - beq .L4557 - b .L4593 -.L4567: - mov w0, 30226 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - beq .L4566 - mov w0, 30226 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - bcc .L4568 - mov w0, 30227 - movk w0, 0x4004, lsl 16 - cmp w1, w0 - beq .L4568 - b .L4593 -.L4562: + bne .L4434 + stp x29, x30, [sp, -16]! + add x29, sp, 0 + bl rknand_dev_flush + mov x1, 0 adrp x0, .LC323 add x0, x0, :lo12:.LC323 bl printk - add x0, x29, 40 - mov x1, x20 - mov x2, 520 - bl rk_copy_from_user - cbz x0, .L4569 -.L4575: - adrp x0, .LC324 - add x0, x0, :lo12:.LC324 - bl printk - b .L4612 -.L4569: - ldr w1, [x29,40] - mov w0, 21060 - movk w0, 0x4b4d, lsl 16 - cmp w1, w0 - beq .L4570 -.L4572: - mov x19, -1 - b .L4571 -.L4570: - ldr w0, [x29,44] - cmp w0, 512 - bhi .L4572 - adrp x19, .LANCHOR5 - add x0, x29, 40 - add x19, x19, :lo12:.LANCHOR5 - mov x2, 512 - ldr x1, [x19,1080] - bl memcpy - ldr w1, [x19,1088] - mov w0, 5161 - movk w0, 0xc059, lsl 16 - cmp w1, w0 - beq .L4573 - add x0, x29, 104 - mov w1, 0 - mov x2, 128 - str wzr, [x29,48] - str wzr, [x29,52] - bl memset -.L4573: - add x0, x29, 296 - mov w1, 0 - mov x2, 256 - str wzr, [x29,56] - bl memset -.L4607: - mov x0, x20 - add x1, x29, 40 - mov x2, 520 - bl rk_copy_to_user - cbnz x0, .L4612 - b .L4610 -.L4559: - adrp x0, .LC325 - add x0, x0, :lo12:.LC325 - bl printk - add x0, x29, 40 - mov x1, x20 - mov x2, 520 - bl rk_copy_from_user - cbnz x0, .L4575 - ldr w1, [x29,40] - mov w0, 21060 - movk w0, 0x4b4d, lsl 16 - cmp w1, w0 - bne .L4572 - ldr w0, [x29,44] - cmp w0, 512 - bhi .L4572 - adrp x1, .LANCHOR5 - mov w2, 5161 - add x1, x1, :lo12:.LANCHOR5 - movk w2, 0xc059, lsl 16 - mov x0, -2 - ldr w3, [x1,1088] - cmp w3, w2 - bne .L4556 - ldr w2, [x29,52] - mov x0, -3 - sub w3, w2, #1 - cmp w3, 127 - bhi .L4556 - ldr x19, [x1,1080] - add x1, x29, 104 - add x0, x19, 64 - str w2, [x19,12] - ldr w2, [x29,52] - bl memcpy - mov w0, 1 - mov x1, x19 - b .L4611 -.L4564: - adrp x0, .LC326 - add x0, x0, :lo12:.LC326 - bl printk - add x0, x29, 40 - mov x1, x20 - mov x2, 520 - bl rk_copy_from_user - cbnz x0, .L4575 - ldr w1, [x29,40] - mov w0, 17476 - movk w0, 0x4253, lsl 16 - cmp w1, w0 - bne .L4572 - ldr w0, [x29,44] - cmp w0, 512 - bhi .L4572 - adrp x19, .LANCHOR5 - add x0, x19, :lo12:.LANCHOR5 - ldr w0, [x0,1092] - cbnz w0, .L4576 -.L4579: mov x0, 0 - b .L4556 -.L4576: - add x0, x19, :lo12:.LANCHOR5 - mov w2, 22867 - movk w2, 0x4453, lsl 16 - ldr x1, [x0,1096] - ldr w3, [x1] - cmp w3, w2 - beq .L4577 - mov w2, 22867 - movk w2, 0x4453, lsl 16 - str w2, [x1] - mov w2, 504 - ldr x1, [x0,1096] - str w2, [x1,4] - ldr x0, [x0,1096] - str wzr, [x0,8] - str wzr, [x0,12] -.L4577: - add x20, x19, :lo12:.LANCHOR5 - mov w0, 0 - ldr x1, [x20,1096] - str wzr, [x1,16] - bl StorageSysDataStore - ldr x0, [x20,1080] - mov w1, 21060 - movk w1, 0x4b4d, lsl 16 - ldr w2, [x0] - cmp w2, w1 - beq .L4578 - mov w1, 21060 - movk w1, 0x4b4d, lsl 16 - str w1, [x0] - mov w1, 504 - ldr x0, [x20,1080] - str w1, [x0,4] - ldr x0, [x20,1080] - str wzr, [x0,8] -.L4578: - add x19, x19, :lo12:.LANCHOR5 - mov w1, 0 - mov x2, 128 - ldr x20, [x19,1080] - add x0, x20, 64 - str wzr, [x20,12] - bl memset - mov w0, 1 - mov x1, x20 - bl StorageSysDataStore - str wzr, [x19,1092] - str wzr, [x19,1088] - b .L4610 -.L4563: - adrp x0, .LC327 - add x0, x0, :lo12:.LC327 - bl printk - add x0, x29, 40 - mov x1, x20 - mov x2, 520 - bl rk_copy_from_user - cbnz x0, .L4575 - ldr w1, [x29,40] - mov w0, 20037 - movk w0, 0x4253, lsl 16 - cmp w1, w0 - bne .L4572 - ldr w0, [x29,44] - cmp w0, 512 - bhi .L4572 - adrp x19, .LANCHOR5 - add x0, x19, :lo12:.LANCHOR5 - ldr w1, [x0,1092] - cmp w1, 1 - beq .L4579 - ldr x0, [x0,1096] - mov w1, 22867 - movk w1, 0x4453, lsl 16 - ldr w2, [x0] - cmp w2, w1 - beq .L4580 - mov w1, 22867 - mov w2, 504 - movk w1, 0x4453, lsl 16 - str w1, [x0] - add x0, x19, :lo12:.LANCHOR5 - ldr x1, [x0,1096] - str w2, [x1,4] - ldr x0, [x0,1096] - str wzr, [x0,8] - str wzr, [x0,12] -.L4580: - add x20, x19, :lo12:.LANCHOR5 - mov w0, 1 - ldr x1, [x20,1096] - str w0, [x1,16] - mov w0, 0 - bl StorageSysDataStore - ldr x0, [x20,1080] - mov w1, 21060 - movk w1, 0x4b4d, lsl 16 - ldr w2, [x0] - cmp w2, w1 - beq .L4581 - mov w1, 21060 - movk w1, 0x4b4d, lsl 16 - str w1, [x0] - mov w1, 504 - ldr x0, [x20,1080] - str w1, [x0,4] - ldr x0, [x20,1080] - str wzr, [x0,8] -.L4581: - add x19, x19, :lo12:.LANCHOR5 - mov w1, 0 - mov x2, 128 - ldr x20, [x19,1080] - add x0, x20, 64 - str wzr, [x20,12] - bl memset - mov w0, 1 - mov x1, x20 - bl StorageSysDataStore - mov w0, 1 - str w0, [x19,1092] - b .L4610 -.L4615: - adrp x0, .LC328 - add x0, x0, :lo12:.LC328 - bl printk - add x0, x29, 40 - mov x1, x20 - mov x2, 520 - bl rk_copy_from_user - cbnz x0, .L4575 - ldr w1, [x29,40] - mov w0, 20051 - movk w0, 0x4144, lsl 16 - cmp w1, w0 - bne .L4572 - ldr w2, [x29,44] - cmp w2, 512 - bhi .L4572 - adrp x1, .LANCHOR5 - add x0, x29, 48 - add x1, x1, :lo12:.LANCHOR5 - uxtw x2, w2 - add x1, x1, 1104 - b .L4613 -.L4557: - mov w0, 27698 - movk w0, 0x4004, lsl 16 - cmp w19, w0 - bne .L4583 - adrp x0, .LC329 - add x0, x0, :lo12:.LC329 - b .L4609 -.L4583: - mov w0, 27708 - movk w0, 0x4004, lsl 16 - cmp w19, w0 - bne .L4585 - adrp x0, .LC330 - add x0, x0, :lo12:.LC330 - b .L4609 -.L4585: - adrp x0, .LC331 - add x0, x0, :lo12:.LC331 -.L4609: - bl printk - add x0, x29, 40 - mov x1, x20 - mov x2, 520 - bl rk_copy_from_user - cbnz x0, .L4575 - ldr w1, [x29,40] - mov w0, 17227 - movk w0, 0x4c4f, lsl 16 - cmp w1, w0 - bne .L4612 - mov w0, 27708 - movk w0, 0x4004, lsl 16 - cmp w19, w0 - adrp x0, .LANCHOR5 - bne .L4586 - add x0, x0, :lo12:.LANCHOR5 - add x1, x29, 40 - mov x2, 16 - ldr x0, [x0,1080] - ldr w0, [x0,20] - str w0, [x29,44] - strb w0, [x29,48] - mov x0, x20 - bl rk_copy_to_user - cbz x0, .L4556 - b .L4612 -.L4586: - add x20, x0, :lo12:.LANCHOR5 - ldr w1, [x20,1616] - cmp w1, 10 - bhi .L4612 - ldr x1, [x20,1080] - ldr w2, [x29,44] - ldr w3, [x1,24] - cmp w3, w2 - beq .L4587 - cbz w3, .L4587 - adrp x0, .LC332 - mov w1, w2 - add x0, x0, :lo12:.LC332 - bl printk - ldr w0, [x20,1616] - add w0, w0, 1 - str w0, [x20,1616] -.L4612: - mov x0, -14 - b .L4556 -.L4587: - add x0, x0, :lo12:.LANCHOR5 - str wzr, [x0,1616] - mov w0, 27698 - movk w0, 0x4004, lsl 16 - cmp w19, w0 - bne .L4588 - str wzr, [x1,20] - str wzr, [x1,24] - b .L4589 -.L4588: - mov w0, 1 - str w2, [x1,24] - str w0, [x1,20] -.L4589: - mov w0, 1 - mov x19, -2 - bl StorageSysDataStore - cmn w0, #1 - bne .L4610 - b .L4571 -.L4566: - adrp x0, .LC333 - add x0, x0, :lo12:.LC333 - bl printk - add x0, x29, 40 - mov x1, x20 - mov x2, 520 - bl rk_copy_from_user - cbnz x0, .L4575 - ldr w1, [x29,40] - mov w0, 17750 - movk w0, 0x444e, lsl 16 - cmp w1, w0 - bne .L4572 - ldr w2, [x29,44] - cmp w2, 504 - bhi .L4572 - mov w0, 30224 - adrp x1, .LANCHOR5 - movk w0, 0x4004, lsl 16 - uxtw x2, w2 - cmp w19, w0 - add x1, x1, :lo12:.LANCHOR5 - add x0, x29, 48 - bne .L4590 - ldr x1, [x1,1624] - b .L4614 -.L4590: - ldr x1, [x1,1632] -.L4614: - add x1, x1, 8 -.L4613: - bl memcpy - b .L4607 -.L4568: - adrp x0, .LC334 - add x0, x0, :lo12:.LC334 - bl printk - add x0, x29, 40 - mov x1, x20 - mov x2, 520 - bl rk_copy_from_user - cbnz x0, .L4575 - ldr w1, [x29,40] - mov w0, 17750 - movk w0, 0x444e, lsl 16 - cmp w1, w0 - bne .L4572 - ldr w2, [x29,44] - cmp w2, 504 - bhi .L4572 - mov w0, 30225 - add w2, w2, 8 - movk w0, 0x4004, lsl 16 - cmp w19, w0 - adrp x19, .LANCHOR5 - add x19, x19, :lo12:.LANCHOR5 - bne .L4592 - ldr x0, [x19,1624] - add x1, x29, 40 - bl memcpy - mov w0, 2 - ldr x1, [x19,1624] - b .L4611 -.L4592: - ldr x0, [x19,1632] - add x1, x29, 40 - bl memcpy - ldr x1, [x19,1632] - mov w0, 3 -.L4611: - bl StorageSysDataStore - uxtw x19, w0 - b .L4571 -.L4561: - bl rknand_dev_flush -.L4610: - mov x19, 0 -.L4571: - adrp x0, .LC335 - mov x1, x19 - add x0, x0, :lo12:.LC335 - bl printk - mov x0, x19 - b .L4556 -.L4593: + ldp x29, x30, [sp], 16 + ret +.L4434: mov x0, -22 -.L4556: - ldp x19, x20, [sp,16] - ldp x29, x30, [sp], 32 - add sp, sp, 528 ret .size rknand_sys_storage_ioctl, .-rknand_sys_storage_ioctl .align 2 .global rk_ftl_storage_sys_init .type rk_ftl_storage_sys_init, %function rk_ftl_storage_sys_init: - stp x29, x30, [sp, -48]! - mov w0, -1 - mov w2, 512 + stp x29, x30, [sp, -16]! + adrp x0, .LANCHOR5 + add x0, x0, :lo12:.LANCHOR5 + mov w1, -1 add x29, sp, 0 - stp x19, x20, [sp,16] - adrp x20, .LANCHOR5 - str x21, [sp,32] - add x19, x20, :lo12:.LANCHOR5 - ldr x1, [x19,1040] - str w0, [x19,1072] - add x0, x1, 512 - str x0, [x19,1080] - add x0, x1, 1024 - str x1, [x19,1096] - str x0, [x19,1624] - add x1, x1, 1536 - add x0, x19, 1104 - str x1, [x19,1632] - strb wzr, [x19,1060] - str xzr, [x19,1064] - str xzr, [x19,1640] - bl ftl_memcpy - ldr x0, [x19,1096] - str wzr, [x19,1088] - str wzr, [x19,1616] - ldr w1, [x0,16] - ldr w21, [x0,508] - str w1, [x19,1092] - cbz w21, .L4618 - mov w1, 508 - bl js_hash - cmp w21, w0 - beq .L4618 - ldr x0, [x19,1096] - str wzr, [x19,1092] - str wzr, [x0,16] - adrp x0, .LC336 - add x0, x0, :lo12:.LC336 - bl printk -.L4618: - add x0, x20, :lo12:.LANCHOR5 - ldr w1, [x0,1092] - cbz w1, .L4620 - mov w1, 5161 - movk w1, 0xc059, lsl 16 - str w1, [x0,1088] -.L4620: - add x20, x20, :lo12:.LANCHOR5 - mov w0, 2 - ldr x1, [x20,1624] - bl StorageSysDataLoad - ldr x1, [x20,1632] - mov w0, 3 - bl StorageSysDataLoad + str w1, [x0, 536] + strb wzr, [x0, 524] + str xzr, [x0, 528] + str xzr, [x0, 544] bl rknand_sys_storage_init - ldr x21, [sp,32] - ldp x19, x20, [sp,16] - ldp x29, x30, [sp], 48 + ldp x29, x30, [sp], 16 ret .size rk_ftl_storage_sys_init, .-rk_ftl_storage_sys_init .align 2 @@ -29400,375 +28603,375 @@ StorageSysDataDeInit: .global rk_ftl_vendor_storage_init .type rk_ftl_vendor_storage_init, %function rk_ftl_vendor_storage_init: - stp x29, x30, [sp, -64]! - mov w0, 65536 + stp x29, x30, [sp, -80]! add x29, sp, 0 - stp x19, x20, [sp,16] - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - adrp x21, .LANCHOR5 + stp x19, x20, [sp, 16] + adrp x19, .LANCHOR5 + add x20, x19, :lo12:.LANCHOR5 + stp x21, x22, [sp, 32] + stp x23, x24, [sp, 48] + str x25, [sp, 64] + ldr x0, [x20, 552] + cbnz x0, .L4443 + mov w0, 65536 bl ftl_malloc - add x1, x21, :lo12:.LANCHOR5 - mov w19, -12 - str x0, [x1,1648] - cbz x0, .L4626 - mov w23, 0 - adrp x24, .LC337 - mov w19, w23 - mov w22, w23 - add x24, x24, :lo12:.LC337 -.L4630: - add x20, x21, :lo12:.LANCHOR5 - lsl w0, w22, 7 + str x0, [x20, 552] +.L4443: + add x19, x19, :lo12:.LANCHOR5 + ldr x0, [x19, 552] + cbz x0, .L4448 + adrp x23, .LC324 + mov w25, 22084 + add x23, x23, :lo12:.LC324 + mov w24, 0 + mov w22, 0 + mov w21, 0 + movk w25, 0x524b, lsl 16 +.L4446: + ldr x2, [x19, 552] mov w1, 128 - ldr x2, [x20,1648] + lsl w0, w21, 7 bl FlashBootVendorRead - cbnz w0, .L4627 - ldr x3, [x20,1648] - mov x0, x24 - add x2, x3, 61440 - ldr w1, [x3] - ldr w3, [x3,4] - ldr w2, [x2,4092] + cbnz w0, .L4449 + ldr x0, [x19, 552] + add x1, x0, 61440 + ldr w3, [x0, 4] + ldr w2, [x1, 4092] + ldr w1, [x0] + mov x0, x23 bl printk - ldr x20, [x20,1648] - mov w0, 22084 - movk w0, 0x524b, lsl 16 - ldr w1, [x20] - cmp w1, w0 - bne .L4628 - ldr w0, [x20,4] - cmp w19, w0 - bcs .L4628 - add x1, x20, 61440 - ldr w1, [x1,4092] - cmp w1, w0 - csel w23, w23, w22, ne - csel w19, w19, w0, ne -.L4628: - cbnz w22, .L4638 - mov w22, 1 - b .L4630 -.L4638: - cbz w19, .L4631 - lsl w0, w23, 7 - mov w1, 128 - mov x2, x20 - bl FlashBootVendorRead - mov w19, w0 - cbz w0, .L4626 - b .L4627 -.L4631: - mov x0, x20 - mov w1, w19 - mov x2, 65536 - bl memset - str w22, [x20,4] - mov w0, 22084 - movk w0, 0x524b, lsl 16 - str w0, [x20] + ldr x20, [x19, 552] + ldr w0, [x20] + cmp w0, w25 + bne .L4445 add x0, x20, 61440 - str w22, [x0,4092] - mov w0, -1032 - strh w19, [x20,12] - strh w0, [x20,14] - b .L4626 -.L4627: - add x21, x21, :lo12:.LANCHOR5 - mov w19, -1 - ldr x0, [x21,1648] - bl kfree - str xzr, [x21,1648] -.L4626: - mov w0, w19 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x29, x30, [sp], 64 + ldr w1, [x20, 4] + ldr w0, [x0, 4092] + cmp w0, w1 + bne .L4445 + cmp w0, w22 + bls .L4445 + mov w24, w21 + mov w22, w0 +.L4445: + add w21, w21, 1 + cmp w21, 2 + bne .L4446 + cbz w22, .L4447 + mov x2, x20 + mov w1, 128 + lsl w0, w24, 7 + bl FlashBootVendorRead + cmp w0, 0 + csetm w0, ne +.L4442: + 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 +.L4447: + mov w1, 0 + mov x2, 65536 + mov x0, x20 + bl memset + mov w1, 22084 + mov w0, 1 + movk w1, 0x524b, lsl 16 + stp w1, w0, [x20] + add x1, x20, 61440 + str w0, [x1, 4092] + mov w0, -1032 + strh w0, [x20, 14] + mov w0, 0 + b .L4442 +.L4448: + mov w0, -12 + b .L4442 +.L4449: + mov w0, -1 + b .L4442 .size rk_ftl_vendor_storage_init, .-rk_ftl_vendor_storage_init .align 2 .global rk_ftl_vendor_read .type rk_ftl_vendor_read, %function rk_ftl_vendor_read: - adrp x3, .LANCHOR5+1648 - stp x29, x30, [sp, -32]! - add x29, sp, 0 - ldr x5, [x3,#:lo12:.LANCHOR5+1648] - mov w3, -1 - str x19, [sp,16] - cbz x5, .L4640 - ldrh w3, [x5,10] - mov x4, 0 -.L4641: - cmp w4, w3 - mov w6, w4 - bcs .L4645 - add x7, x5, x4, lsl 3 - add x4, x4, 1 - ldrh w7, [x7,16] + adrp x3, .LANCHOR5+552 + ldr x4, [x3, #:lo12:.LANCHOR5+552] + cbz x4, .L4457 + ldrh w6, [x4, 10] + add x5, x4, 16 + mov w3, 0 +.L4454: + cmp w3, w6 + bcc .L4456 +.L4457: + mov w0, -1 + ret +.L4456: + ldrh w7, [x5], 8 cmp w7, w0 - bne .L4641 - add x6, x5, w6, uxtw 3 - ldrh w4, [x6,20] + bne .L4455 + stp x29, x30, [sp, -32]! + add x3, x4, w3, uxtw 3 mov x0, x1 - ldrh w1, [x6,18] - cmp w2, w4 - csel w19, w2, w4, ls + add x29, sp, 0 + str x19, [sp, 16] + ldrh w19, [x3, 20] + ldrh w1, [x3, 18] + cmp w19, w2 + csel w19, w19, w2, ls add x1, x1, 1024 - add x1, x5, x1 uxtw x2, w19 + add x1, x4, x1 bl memcpy - mov w3, w19 - b .L4640 -.L4645: - mov w3, -1 -.L4640: - mov w0, w3 - ldr x19, [sp,16] + mov w0, w19 + ldr x19, [sp, 16] ldp x29, x30, [sp], 32 ret +.L4455: + add w3, w3, 1 + b .L4454 .size rk_ftl_vendor_read, .-rk_ftl_vendor_read .align 2 .global rk_ftl_vendor_write .type rk_ftl_vendor_write, %function rk_ftl_vendor_write: stp x29, x30, [sp, -112]! - mov w6, w0 - adrp x0, .LANCHOR5+1648 + adrp x3, .LANCHOR5+552 add x29, sp, 0 - stp x19, x20, [sp,16] - ldr x19, [x0,#:lo12:.LANCHOR5+1648] - stp x25, x26, [sp,64] - stp x27, x28, [sp,80] - stp x21, x22, [sp,32] - stp x23, x24, [sp,48] - mov w26, w2 + stp x19, x20, [sp, 16] + ldr x19, [x3, #:lo12:.LANCHOR5+552] + stp x21, x22, [sp, 32] + stp x23, x24, [sp, 48] + stp x25, x26, [sp, 64] + stp x27, x28, [sp, 80] + cbz x19, .L4477 + add w4, w2, 63 + ldrh w3, [x19, 10] + ldrh w24, [x19, 8] mov x28, x1 - mov w2, -1 - cbz x19, .L4647 - add w20, w26, 63 - ldrh w3, [x19,10] - ldrh w23, [x19,8] - and w20, w20, -64 - mov x2, 0 -.L4648: - cmp w2, w3 - mov w4, w2 - bcs .L4663 - add x0, x19, x2, lsl 3 - add x2, x2, 1 - ldrh w0, [x0,16] - cmp w0, w6 - bne .L4648 - add x21, x19, w4, uxtw 3 - ldrh w24, [x21,20] + mov w26, w2 + and w22, w4, -64 + add x1, x19, 16 + mov w20, 0 +.L4464: + cmp w20, w3 + bcc .L4472 + ldrh w1, [x19, 14] + cmp w22, w1 + bhi .L4477 + add x3, x19, w3, uxth 3 + strh w0, [x3, 16] + and w0, w22, 65535 + ldrh w2, [x19, 12] + strh w2, [x3, 18] + strh w26, [x3, 20] + add w2, w2, w0 + sub w0, w1, w0 + strh w2, [x19, 12] + strh w0, [x19, 14] + uxtw x2, w26 + mov x1, x28 + ldrh w0, [x3, 18] + add x0, x0, 1024 + add x0, x19, x0 + bl memcpy + ldrh w0, [x19, 10] + add w0, w0, 1 + strh w0, [x19, 10] + b .L4479 +.L4472: + ldrh w6, [x1], 8 + cmp w6, w0 + bne .L4465 + uxtw x23, w20 add x5, x19, 1024 - add w24, w24, 63 - and w24, w24, -64 - cmp w26, w24 - bls .L4649 - ldrh w0, [x19,14] - mov w2, -1 - cmp w0, w20 - bcc .L4647 - ldrh w21, [x21,18] - add w22, w3, w2 -.L4650: - cmp w4, w22 - uxtw x3, w4 - bcs .L4664 - add x3, x19, x3, lsl 3 - add w25, w4, 1 - add x1, x19, w25, uxtw 3 - ldrh w0, [x1,16] - str x6, [x29,96] - strh w0, [x3,16] - str x5, [x29,104] - ldrh w0, [x1,20] - strh w0, [x3,20] - strh w21, [x3,18] + add x21, x19, x23, lsl 3 + ldrh w25, [x21, 20] + add w25, w25, 63 + and w25, w25, -64 + cmp w26, w25 + bls .L4466 + ldrh w0, [x19, 14] + cmp w22, w0 + bhi .L4477 + add x23, x23, 2 + ldrh w21, [x21, 18] + add x23, x19, x23, lsl 3 + sub w3, w3, #1 +.L4467: + cmp w20, w3 + bcc .L4468 + add x20, x19, w20, uxtw 3 + and w21, w21, 65535 + add x0, x5, w21, uxth + uxtw x2, w26 + mov x1, x28 + strh w21, [x20, 18] + strh w6, [x20, 16] + strh w26, [x20, 20] + bl memcpy + ldrh w0, [x19, 14] + and w4, w22, 65535 + add w21, w21, w4 + strh w21, [x19, 12] + sub w0, w0, w4 + add w25, w0, w25 + strh w25, [x19, 14] +.L4479: + ldr w0, [x19, 4] + add x1, x19, 61440 + mov x2, x19 + add w0, w0, 1 + str w0, [x19, 4] + str w0, [x1, 4092] + mov w1, 128 + ldrh w0, [x19, 8] + add w0, w0, 1 + and w0, w0, 65535 + cmp w0, 1 + csel w0, w0, wzr, ls + strh w0, [x19, 8] + lsl w0, w24, 7 + bl FlashBootVendorWrite + mov w0, 0 +.L4462: + 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 +.L4468: + add w20, w20, 1 + stp w3, w6, [x29, 96] + add x0, x19, w20, uxtw 3 + str x5, [x29, 104] + add x23, x23, 8 + ldrh w1, [x0, 16] + strh w1, [x23, -8] + ldrh w1, [x0, 20] + strh w1, [x23, -4] + strh w21, [x23, -6] + ldrh w27, [x0, 20] + ldrh w1, [x0, 18] add x0, x5, w21, uxtw - ldrh w27, [x1,20] - ldrh w1, [x1,18] add w27, w27, 63 and w27, w27, -64 add x1, x5, x1 and x2, x27, 131008 + bl memcpy add w21, w21, w27 - bl memcpy - mov w4, w25 - ldr x6, [x29,96] - ldr x5, [x29,104] - b .L4650 -.L4664: - add x3, x19, x3, lsl 3 - uxth w21, w21 - mov x1, x28 + ldr x5, [x29, 104] + ldp w3, w6, [x29, 96] + b .L4467 +.L4466: + ldrh w0, [x21, 18] uxtw x2, w26 - add x0, x5, w21, uxth - uxth w20, w20 - strh w21, [x3,18] - add w21, w21, w20 - strh w6, [x3,16] - strh w26, [x3,20] - bl memcpy - strh w21, [x19,12] - ldrh w0, [x19,14] - add w24, w24, w0 - sub w24, w24, w20 - strh w24, [x19,14] - b .L4662 -.L4649: - ldrh w0, [x21,18] mov x1, x28 - uxtw x2, w26 add x0, x5, x0 bl memcpy - strh w26, [x21,20] - b .L4662 -.L4663: - ldrh w4, [x19,14] - mov w2, -1 - cmp w4, w20 - bcc .L4647 - add x3, x19, w3, uxth 3 - strh w6, [x3,16] - uxth w20, w20 - mov x1, x28 - ldrh w0, [x19,12] - uxtw x2, w26 - strh w0, [x3,18] - strh w26, [x3,20] - add w0, w20, w0 - sub w20, w4, w20 - strh w0, [x19,12] - strh w20, [x19,14] - ldrh w0, [x3,18] - add x0, x0, 1024 - add x0, x19, x0 - bl memcpy - ldrh w0, [x19,10] - add w0, w0, 1 - strh w0, [x19,10] -.L4662: - ldr w0, [x19,4] - add x1, x19, 61440 - mov x2, x19 - add w0, w0, 1 - str w0, [x19,4] - str w0, [x1,4092] - mov w1, 128 - ldrh w0, [x19,8] - add w0, w0, 1 - uxth w0, w0 - cmp w0, 1 - csel w0, w0, wzr, ls - strh w0, [x19,8] - lsl w0, w23, 7 - bl FlashBootVendorWrite - mov w2, 0 -.L4647: - mov w0, w2 - ldp x19, x20, [sp,16] - ldp x21, x22, [sp,32] - ldp x23, x24, [sp,48] - ldp x25, x26, [sp,64] - ldp x27, x28, [sp,80] - ldp x29, x30, [sp], 112 - ret + strh w26, [x21, 20] + b .L4479 +.L4465: + add w20, w20, 1 + b .L4464 +.L4477: + mov w0, -1 + b .L4462 .size rk_ftl_vendor_write, .-rk_ftl_vendor_write .align 2 .global rk_ftl_vendor_storage_ioctl .type rk_ftl_vendor_storage_ioctl, %function rk_ftl_vendor_storage_ioctl: - stp x29, x30, [sp, -64]! - mov w0, 4096 + stp x29, x30, [sp, -48]! + mov w0, 9216 add x29, sp, 0 - stp x19, x20, [sp,16] - str x21, [sp,32] - mov x20, -1 - str x1, [x29,56] - mov x21, x2 + stp x19, x20, [sp, 16] + mov x20, x2 + str x21, [sp, 32] + mov w21, w1 bl ftl_malloc + cbz x0, .L4488 + mov w1, 30209 mov x19, x0 - cbz x0, .L4666 - mov w2, 30209 - ldr x1, [x29,56] - movk w2, 0x4004, lsl 16 - cmp w1, w2 - beq .L4668 - mov w2, 30210 - movk w2, 0x4004, lsl 16 - cmp w1, w2 - beq .L4669 - b .L4680 -.L4668: - mov x1, x21 + movk w1, 0x4004, lsl 16 + cmp w21, w1 + beq .L4483 + add w1, w1, 1 + cmp w21, w1 + beq .L4484 +.L4494: + mov x20, -14 + b .L4482 +.L4483: mov x2, 8 + mov x1, x20 bl rk_copy_from_user - cbnz x0, .L4680 + cbnz x0, .L4494 ldr w1, [x19] mov w0, 17745 movk w0, 0x5652, lsl 16 cmp w1, w0 - beq .L4671 -.L4672: + beq .L4486 +.L4487: mov x20, -1 - b .L4667 -.L4671: - ldrh w0, [x19,4] - add x1, x19, 8 - ldrh w2, [x19,6] - bl rk_ftl_vendor_read - cmn w0, #1 - beq .L4672 - uxth x2, w0 - strh w0, [x19,6] - mov x1, x19 - mov x0, x21 - add x2, x2, 8 - mov x20, -14 - bl rk_copy_to_user - cmp x0, xzr - csel x20, xzr, x20, eq - b .L4667 -.L4669: - mov x1, x21 - mov x2, 8 - bl rk_copy_from_user - cbnz x0, .L4680 - ldr w1, [x19] - mov w0, 17745 - movk w0, 0x5652, lsl 16 - cmp w1, w0 - bne .L4672 - ldrh w3, [x19,6] - cmp w3, 4087 - bhi .L4672 - add w2, w3, 8 - mov x0, x19 - mov x1, x21 - sxtw x2, w2 - bl rk_copy_from_user - cbnz x0, .L4680 - ldrh w0, [x19,4] - add x1, x19, 8 - ldrh w2, [x19,6] - bl rk_ftl_vendor_write - sxtw x20, w0 - b .L4667 -.L4680: - mov x20, -14 -.L4667: +.L4482: mov x0, x19 bl kfree -.L4666: +.L4480: mov x0, x20 - ldr x21, [sp,32] - ldp x19, x20, [sp,16] - ldp x29, x30, [sp], 64 + ldr x21, [sp, 32] + ldp x19, x20, [sp, 16] + ldp x29, x30, [sp], 48 ret +.L4486: + ldrh w2, [x19, 6] + add x1, x19, 8 + ldrh w0, [x19, 4] + bl rk_ftl_vendor_read + cmn w0, #1 + beq .L4487 + strh w0, [x19, 6] + and x0, x0, 65535 + add x2, x0, 8 + mov x1, x19 + mov x0, x20 + bl rk_copy_to_user + cbnz x0, .L4494 + mov x20, 0 + b .L4482 +.L4484: + mov x2, 8 + mov x1, x20 + bl rk_copy_from_user + cbnz x0, .L4494 + ldr w1, [x19] + mov w0, 17745 + movk w0, 0x5652, lsl 16 + cmp w1, w0 + bne .L4487 + ldrh w2, [x19, 6] + cmp w2, 4087 + bhi .L4487 + add w2, w2, 8 + mov x1, x20 + sxtw x2, w2 + mov x0, x19 + bl rk_copy_from_user + cbnz x0, .L4494 + ldrh w2, [x19, 6] + add x1, x19, 8 + ldrh w0, [x19, 4] + bl rk_ftl_vendor_write + sxtw x20, w0 + b .L4482 +.L4488: + mov x20, -1 + b .L4480 .size rk_ftl_vendor_storage_ioctl, .-rk_ftl_vendor_storage_ioctl .global SecureBootUnlockTryCount .global SecureBootCheckOK @@ -29779,6 +28982,8 @@ rk_ftl_vendor_storage_ioctl: .global gSnSectorData .global gpDrmKeyInfo .global gpBootConfig + .global ftl_dma32_buffer_size + .global ftl_dma32_buffer .global gLoaderBootInfo .global RK29_NANDC1_REG_BASE .global RK29_NANDC_REG_BASE @@ -29948,2239 +29153,9 @@ rk_ftl_vendor_storage_ioctl: .global g_flash_sys_spare_buffer .global g_flash_spare_buffer .global g_flash_page_buffer - .section .rodata - .align 3 -.LANCHOR1 = . + 0 - .type __func__.39624, %object - .size __func__.39624, 18 -__func__.39624: - .string "_list_remove_node" - .zero 6 - .type __func__.39649, %object - .size __func__.39649, 23 -__func__.39649: - .string "_list_update_data_list" - .zero 1 - .type toshiba_A19ref_value, %object - .size toshiba_A19ref_value, 45 -toshiba_A19ref_value: - .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 toshiba_15ref_value, %object - .size toshiba_15ref_value, 95 -toshiba_15ref_value: - .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 toshiba_ref_value, %object - .size toshiba_ref_value, 8 -toshiba_ref_value: - .byte 0 - .byte 4 - .byte 124 - .byte 120 - .byte 116 - .byte 8 - .byte 12 - .byte 112 - .type __func__.20817, %object - .size __func__.20817, 22 -__func__.20817: - .string "nand_flash_print_info" - .zero 2 - .type __func__.20903, %object - .size __func__.20903, 11 -__func__.20903: - .string "nandc_init" - .zero 5 - .type __func__.20290, %object - .size __func__.20290, 28 -__func__.20290: - .string "flash_wait_device_ready_raw" - .zero 4 - .type __func__.20354, %object - .size __func__.20354, 22 -__func__.20354: - .string "flash_start_page_read" - .zero 2 - .type toshiba_3D_tlc_value, %object - .size toshiba_3D_tlc_value, 399 -toshiba_3D_tlc_value: - .byte -119 - .byte -119 - .byte -119 - .byte -119 - .byte -118 - .byte -118 - .byte -118 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 5 - .byte -2 - .byte -1 - .byte 0 - .byte -3 - .byte -2 - .byte 6 - .byte -9 - .byte -12 - .byte -9 - .byte -7 - .byte -13 - .byte -12 - .byte -7 - .byte -6 - .byte -15 - .byte -15 - .byte -2 - .byte -12 - .byte -16 - .byte -6 - .byte -2 - .byte -19 - .byte -19 - .byte -6 - .byte -4 - .byte -12 - .byte -14 - .byte -2 - .byte -11 - .byte -23 - .byte -34 - .byte -4 - .byte -20 - .byte -22 - .byte -2 - .byte -7 - .byte -31 - .byte -30 - .byte -12 - .byte -20 - .byte -18 - .byte 2 - .byte -15 - .byte -19 - .byte -36 - .byte -12 - .byte -28 - .byte -34 - .byte -6 - .byte -15 - .byte -11 - .byte 2 - .byte -12 - .byte -8 - .byte -2 - .byte 2 - .byte -3 - .byte -7 - .byte -10 - .byte -4 - .byte -8 - .byte -6 - .byte -6 - .byte -11 - .byte -27 - .byte -38 - .byte -16 - .byte -12 - .byte -2 - .byte 2 - .byte -7 - .byte -31 - .byte -22 - .byte -4 - .byte -16 - .byte -22 - .byte -7 - .byte -31 - .byte -23 - .byte -22 - .byte -28 - .byte -28 - .byte -26 - .byte 2 - .byte -7 - .byte -11 - .byte -14 - .byte -8 - .byte -12 - .byte -10 - .byte -10 - .byte -27 - .byte -25 - .byte -22 - .byte -20 - .byte -28 - .byte -22 - .byte -7 - .byte -23 - .byte -29 - .byte -34 - .byte -24 - .byte -32 - .byte -22 - .byte -10 - .byte -11 - .byte -29 - .byte -18 - .byte -12 - .byte -24 - .byte -22 - .byte 6 - .byte 1 - .byte -3 - .byte -6 - .byte 0 - .byte -4 - .byte -2 - .byte 10 - .byte -3 - .byte -7 - .byte -6 - .byte 4 - .byte -4 - .byte -2 - .byte -10 - .byte -23 - .byte -39 - .byte -22 - .byte -19 - .byte -24 - .byte -18 - .byte -14 - .byte -23 - .byte -29 - .byte -30 - .byte -15 - .byte -30 - .byte -30 - .byte -7 - .byte -27 - .byte -35 - .byte -26 - .byte -15 - .byte -24 - .byte -26 - .byte 6 - .byte -11 - .byte 5 - .byte -2 - .byte -16 - .byte -16 - .byte -2 - .byte -2 - .byte -15 - .byte -15 - .byte -20 - .byte -8 - .byte -16 - .byte -18 - .byte 6 - .byte 5 - .byte -15 - .byte -2 - .byte -24 - .byte -28 - .byte -22 - .byte 10 - .byte -15 - .byte -3 - .byte -30 - .byte -8 - .byte -24 - .byte -30 - .byte -10 - .byte -27 - .byte -19 - .byte -30 - .byte -12 - .byte -16 - .byte -10 - .byte 14 - .byte -19 - .byte -3 - .byte -30 - .byte 4 - .byte 4 - .byte 6 - .byte 2 - .byte 1 - .byte -3 - .byte -10 - .byte -8 - .byte -4 - .byte -6 - .byte -2 - .byte -15 - .byte -11 - .byte -26 - .byte -8 - .byte -20 - .byte -30 - .byte 6 - .byte -19 - .byte -3 - .byte -46 - .byte 0 - .byte 0 - .byte 2 - .byte 6 - .byte 9 - .byte 5 - .byte 2 - .byte 4 - .byte 8 - .byte 6 - .byte 8 - .byte 9 - .byte 9 - .byte 6 - .byte 8 - .byte 8 - .byte 6 - .byte 10 - .byte 13 - .byte 9 - .byte 6 - .byte 8 - .byte 12 - .byte 10 - .byte 2 - .byte 5 - .byte 1 - .byte -2 - .byte 0 - .byte 0 - .byte 6 - .byte 12 - .byte 1 - .byte 13 - .byte 2 - .byte 12 - .byte 12 - .byte 14 - .byte -12 - .byte -14 - .byte -20 - .byte -18 - .byte -16 - .byte -16 - .byte -14 - .byte -12 - .byte -10 - .byte -21 - .byte -14 - .byte -12 - .byte -12 - .byte -10 - .byte -12 - .byte -18 - .byte -22 - .byte -24 - .byte -18 - .byte -18 - .byte -18 - .byte -12 - .byte -14 - .byte -23 - .byte -20 - .byte -20 - .byte -20 - .byte -20 - .byte -12 - .byte -24 - .byte -24 - .byte -30 - .byte -24 - .byte -28 - .byte -28 - .byte -12 - .byte -26 - .byte -25 - .byte -34 - .byte -24 - .byte -24 - .byte -24 - .byte -12 - .byte -13 - .byte -26 - .byte -20 - .byte -14 - .byte -18 - .byte -18 - .byte -12 - .byte -15 - .byte -27 - .byte -22 - .byte -20 - .byte -24 - .byte -22 - .byte -12 - .byte -21 - .byte -28 - .byte -28 - .byte -24 - .byte -26 - .byte -24 - .byte 20 - .byte 16 - .byte 6 - .byte 10 - .byte 16 - .byte 12 - .byte 12 - .byte 16 - .byte 16 - .byte 8 - .byte 8 - .byte 12 - .byte 12 - .byte 12 - .byte 18 - .byte 18 - .byte 10 - .byte 8 - .byte 14 - .byte 14 - .byte 14 - .byte 16 - .byte 14 - .byte 6 - .byte 6 - .byte 12 - .byte 14 - .byte 8 - .byte 20 - .byte 18 - .byte 8 - .byte 6 - .byte 14 - .byte 14 - .byte 10 - .byte 20 - .byte 20 - .byte 6 - .byte 10 - .byte 10 - .byte 12 - .byte 12 - .byte 10 - .byte 13 - .byte 5 - .byte 2 - .byte 14 - .byte 8 - .byte 6 - .byte 6 - .byte 13 - .byte 9 - .byte 4 - .byte 14 - .byte 10 - .byte 10 - .byte 10 - .byte 13 - .byte 9 - .byte 6 - .byte 8 - .byte 12 - .byte 10 - .byte 2 - .byte 5 - .byte 1 - .byte -2 - .byte 0 - .byte 0 - .byte 6 - .byte 12 - .byte 1 - .byte 13 - .byte 2 - .byte 12 - .byte 12 - .byte 14 - .zero 1 - .type toshiba_3D_slc_value, %object - .size toshiba_3D_slc_value, 11 -toshiba_3D_slc_value: - .byte -117 - .byte 0 - .byte -8 - .byte 8 - .byte -16 - .byte -24 - .byte 24 - .byte -40 - .byte 40 - .byte -56 - .byte 56 - .zero 5 - .type ymtc_3D_tlc_value, %object - .size ymtc_3D_tlc_value, 357 -ymtc_3D_tlc_value: - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte -10 - .byte -10 - .byte -6 - .byte -6 - .byte -2 - .byte 2 - .byte 2 - .byte -6 - .byte -6 - .byte -4 - .byte -4 - .byte -4 - .byte -6 - .byte -8 - .byte 6 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte -2 - .byte -2 - .byte -2 - .byte -4 - .byte -4 - .byte -6 - .byte -6 - .byte -6 - .byte -6 - .byte -6 - .byte -6 - .byte -6 - .byte -6 - .byte -11 - .byte -2 - .byte 2 - .byte 4 - .byte 4 - .byte 6 - .byte 6 - .byte 6 - .byte -6 - .byte -6 - .byte -6 - .byte -6 - .byte -6 - .byte -8 - .byte -14 - .byte -6 - .byte -15 - .byte -11 - .byte 2 - .byte -12 - .byte -8 - .byte -2 - .byte 2 - .byte -3 - .byte -7 - .byte -10 - .byte -4 - .byte -8 - .byte -6 - .byte -18 - .byte -18 - .byte -14 - .byte -14 - .byte -10 - .byte -5 - .byte -5 - .byte -14 - .byte -14 - .byte -12 - .byte -12 - .byte -12 - .byte -13 - .byte -15 - .byte -2 - .byte -8 - .byte -8 - .byte -8 - .byte -8 - .byte -7 - .byte -7 - .byte -10 - .byte -10 - .byte -10 - .byte -12 - .byte -12 - .byte -13 - .byte -13 - .byte -14 - .byte -14 - .byte -14 - .byte -14 - .byte -14 - .byte -13 - .byte -18 - .byte -10 - .byte -6 - .byte -4 - .byte -4 - .byte -2 - .byte -1 - .byte -1 - .byte -14 - .byte -14 - .byte -14 - .byte -14 - .byte -14 - .byte -15 - .byte -21 - .byte -12 - .byte -11 - .byte -7 - .byte -7 - .byte -3 - .byte 1 - .byte 1 - .byte -8 - .byte -7 - .byte -5 - .byte -5 - .byte -5 - .byte -7 - .byte -9 - .byte 4 - .byte -1 - .byte -1 - .byte -1 - .byte -1 - .byte -1 - .byte -1 - .byte -4 - .byte -3 - .byte -3 - .byte -5 - .byte -5 - .byte -7 - .byte -7 - .byte -8 - .byte -7 - .byte -7 - .byte -7 - .byte -7 - .byte -7 - .byte -12 - .byte -4 - .byte 1 - .byte 3 - .byte 3 - .byte 5 - .byte 5 - .byte 5 - .byte -8 - .byte -7 - .byte -7 - .byte -7 - .byte -7 - .byte -9 - .byte -15 - .byte 2 - .byte -7 - .byte -11 - .byte -14 - .byte -8 - .byte -12 - .byte -10 - .byte 6 - .byte 1 - .byte -3 - .byte -6 - .byte 0 - .byte -4 - .byte -2 - .byte 10 - .byte -3 - .byte -7 - .byte -6 - .byte 4 - .byte -4 - .byte -2 - .byte -10 - .byte -23 - .byte -39 - .byte -22 - .byte -19 - .byte -24 - .byte -18 - .byte -7 - .byte -27 - .byte -35 - .byte -26 - .byte -15 - .byte -24 - .byte -26 - .byte 6 - .byte -11 - .byte 5 - .byte -2 - .byte -16 - .byte -16 - .byte -2 - .byte -2 - .byte -15 - .byte -15 - .byte -20 - .byte -8 - .byte -16 - .byte -18 - .byte 2 - .byte 1 - .byte -3 - .byte -10 - .byte -8 - .byte -4 - .byte -6 - .byte -2 - .byte -15 - .byte -11 - .byte -26 - .byte -8 - .byte -20 - .byte -30 - .byte 6 - .byte -19 - .byte -3 - .byte -46 - .byte 0 - .byte 0 - .byte 2 - .byte 6 - .byte 9 - .byte 5 - .byte 2 - .byte 4 - .byte 8 - .byte 6 - .byte 8 - .byte 9 - .byte 9 - .byte 6 - .byte 8 - .byte 8 - .byte 6 - .byte 10 - .byte 13 - .byte 9 - .byte 6 - .byte 8 - .byte 12 - .byte 10 - .byte 2 - .byte 5 - .byte 1 - .byte -2 - .byte 0 - .byte 0 - .byte 6 - .byte 12 - .byte 1 - .byte 13 - .byte 2 - .byte 12 - .byte 12 - .byte 14 - .byte -12 - .byte -14 - .byte -20 - .byte -18 - .byte -16 - .byte -16 - .byte -14 - .byte -12 - .byte -10 - .byte -21 - .byte -14 - .byte -12 - .byte -12 - .byte -10 - .byte -12 - .byte -18 - .byte -22 - .byte -24 - .byte -18 - .byte -18 - .byte -18 - .byte -12 - .byte -14 - .byte -23 - .byte -20 - .byte -20 - .byte -20 - .byte -20 - .byte 16 - .byte 16 - .byte 8 - .byte 8 - .byte 12 - .byte 12 - .byte 12 - .byte 18 - .byte 18 - .byte 10 - .byte 8 - .byte 14 - .byte 14 - .byte 14 - .byte 16 - .byte 14 - .byte 6 - .byte 6 - .byte 12 - .byte 14 - .byte 8 - .byte 10 - .byte 13 - .byte 5 - .byte 2 - .byte 14 - .byte 8 - .byte 6 - .byte 6 - .byte 13 - .byte 9 - .byte 4 - .byte 14 - .byte 10 - .byte 10 - .byte 10 - .byte 13 - .byte 9 - .byte 6 - .byte 8 - .byte 12 - .byte 10 - .byte 2 - .byte 5 - .byte 1 - .byte -2 - .byte 0 - .byte 0 - .byte 6 - .byte 12 - .byte 1 - .byte 13 - .byte 2 - .byte 12 - .byte 12 - .byte 14 - .zero 3 - .type ymtc_3D_slc_value, %object - .size ymtc_3D_slc_value, 10 -ymtc_3D_slc_value: - .byte 0 - .byte -8 - .byte 8 - .byte -16 - .byte -20 - .byte 24 - .byte -26 - .byte 40 - .byte -12 - .byte 56 - .zero 6 - .type __func__.20379, %object - .size __func__.20379, 23 -__func__.20379: - .string "flash_start_plane_read" - .zero 1 - .type __func__.20265, %object - .size __func__.20265, 26 -__func__.20265: - .string "flash_erase_duplane_block" - .zero 6 - .type __func__.20276, %object - .size __func__.20276, 21 -__func__.20276: - .string "flash_erase_block_en" - .zero 3 - .type random_seed, %object - .size random_seed, 256 -random_seed: - .hword 22378 - .hword 1512 - .hword 25245 - .hword 17827 - .hword 25756 - .hword 19440 - .hword 9026 - .hword 10030 - .hword 29528 - .hword 20467 - .hword 29676 - .hword 24432 - .hword 31328 - .hword 6872 - .hword 13426 - .hword 13842 - .hword 8783 - .hword 1108 - .hword 782 - .hword 28837 - .hword 30729 - .hword 9505 - .hword 18676 - .hword 23085 - .hword 18730 - .hword 1085 - .hword 32609 - .hword 14697 - .hword 20858 - .hword 15170 - .hword 30365 - .hword 1607 - .hword 32298 - .hword 4995 - .hword 18905 - .hword 1976 - .hword 9592 - .hword 20204 - .hword 17443 - .hword 13615 - .hword 23330 - .hword 29369 - .hword 13947 - .hword 9398 - .hword 32398 - .hword 8984 - .hword 27600 - .hword 21785 - .hword 6019 - .hword 6311 - .hword 31598 - .hword 30210 - .hword 19327 - .hword 13896 - .hword 11347 - .hword 27545 - .hword 3107 - .hword 26575 - .hword 32270 - .hword 19852 - .hword 20601 - .hword 8349 - .hword 9290 - .hword 29819 - .hword 13579 - .hword 3661 - .hword 28676 - .hword 27331 - .hword 32574 - .hword 8693 - .hword 31253 - .hword 9081 - .hword 5399 - .hword 6842 - .hword 20087 - .hword 5537 - .hword 1274 - .hword 11617 - .hword 9530 - .hword 4866 - .hword 8035 - .hword 23219 - .hword 1178 - .hword 23272 - .hword 7383 - .hword 18944 - .hword 12488 - .hword 12871 - .hword 29340 - .hword 20532 - .hword 11022 - .hword 22514 - .hword 228 - .hword 22363 - .hword 24978 - .hword 14584 - .hword 12138 - .hword 3092 - .hword 17916 - .hword 16863 - .hword 14554 - .hword 31457 - .hword 29474 - .hword 25311 - .hword 24121 - .hword 3684 - .hword 28037 - .hword 22865 - .hword 22839 - .hword 25217 - .hword 13217 - .hword 27186 - .hword 14938 - .hword 11180 - .hword 29754 - .hword 24180 - .hword 15150 - .hword 32455 - .hword 20434 - .hword 23848 - .hword 29983 - .hword 16120 - .hword 14769 - .hword 20041 - .hword 29803 - .hword 28406 - .hword 17598 - .hword 28087 - .type __func__.21082, %object - .size __func__.21082, 13 -__func__.21082: - .string "buf_add_tail" - .zero 3 - .type __func__.21095, %object - .size __func__.21095, 10 -__func__.21095: - .string "buf_alloc" - .zero 6 - .type __func__.21109, %object - .size __func__.21109, 16 -__func__.21109: - .string "buf_remove_free" - .type zftl_debug_proc_fops, %object - .size zftl_debug_proc_fops, 288 -zftl_debug_proc_fops: - .xword 0 - .xword seq_lseek - .xword seq_read - .xword zftl_debug_proc_write - .zero 72 - .xword zftl_debug_proc_open - .zero 8 - .xword single_release - .zero 160 - .type __func__.39157, %object - .size __func__.39157, 12 -__func__.39157: - .string "gc_add_sblk" - .zero 4 - .type __func__.39249, %object - .size __func__.39249, 19 -__func__.39249: - .string "gc_write_completed" - .zero 5 - .type __func__.39855, %object - .size __func__.39855, 18 -__func__.39855: - .string "ftl_alloc_sys_blk" - .zero 6 - .type __func__.39865, %object - .size __func__.39865, 17 -__func__.39865: - .string "ftl_free_sys_blk" - .zero 7 - .type __func__.39986, %object - .size __func__.39986, 23 -__func__.39986: - .string "ftl_get_ppa_from_index" - .zero 1 - .type __func__.40026, %object - .size __func__.40026, 22 -__func__.40026: - .string "ftl_get_new_free_page" - .zero 2 - .type __func__.40037, %object - .size __func__.40037, 22 -__func__.40037: - .string "ftl_ext_alloc_new_blk" - .zero 2 - .type __func__.39306, %object - .size __func__.39306, 16 -__func__.39306: - .string "gc_free_src_blk" - .type __func__.38900, %object - .size __func__.38900, 14 -__func__.38900: - .string "ftl_write_buf" - .zero 2 - .type __func__.38945, %object - .size __func__.38945, 18 -__func__.38945: - .string "zftl_add_read_buf" - .align 3 -.LANCHOR4 = . + 0 - .type __func__.40459, %object - .size __func__.40459, 21 -__func__.40459: - .string "pm_select_ram_region" - .zero 3 - .type __func__.20807, %object - .size __func__.20807, 20 -__func__.20807: - .string "flash_die_info_init" - .zero 4 - .type __func__.38832, %object - .size __func__.38832, 17 -__func__.38832: - .string "lpa_rebuild_hash" - .zero 7 - .type __func__.39724, %object - .size __func__.39724, 20 -__func__.39724: - .string "zftl_sblk_list_init" - .zero 4 - .type __func__.40391, %object - .size __func__.40391, 13 -__func__.40391: - .string "pm_free_sblk" - .zero 3 - .type __func__.21145, %object - .size __func__.21145, 21 -__func__.21145: - .string "flash_info_data_init" - .zero 3 - .type samsung_14nm_slc_rr, %object - .size samsung_14nm_slc_rr, 26 -samsung_14nm_slc_rr: - .byte 0 - .byte 10 - .byte -10 - .byte 20 - .byte -20 - .byte 30 - .byte -30 - .byte 40 - .byte -40 - .byte 50 - .byte -50 - .byte 60 - .byte -60 - .byte -70 - .byte -80 - .byte -90 - .byte -100 - .byte -110 - .byte -120 - .byte -9 - .byte 70 - .byte 80 - .byte 90 - .byte -125 - .byte -115 - .byte 100 - .zero 6 - .type samsung_14nm_mlc_rr, %object - .size samsung_14nm_mlc_rr, 104 -samsung_14nm_mlc_rr: - .byte 0 - .byte 0 - .byte 0 - .byte 0 - .byte -4 - .byte 3 - .byte -4 - .byte -6 - .byte 6 - .byte 0 - .byte 6 - .byte -10 - .byte -10 - .byte 4 - .byte -10 - .byte 16 - .byte 12 - .byte -4 - .byte 12 - .byte 8 - .byte -16 - .byte 10 - .byte -16 - .byte 24 - .byte 18 - .byte -14 - .byte 18 - .byte -4 - .byte -22 - .byte -16 - .byte -22 - .byte -8 - .byte 24 - .byte -9 - .byte 24 - .byte 8 - .byte -28 - .byte -4 - .byte -28 - .byte 16 - .byte 30 - .byte 10 - .byte 30 - .byte 10 - .byte -34 - .byte 6 - .byte -34 - .byte 0 - .byte 36 - .byte -8 - .byte 36 - .byte -8 - .byte -40 - .byte -2 - .byte -40 - .byte -20 - .byte -46 - .byte -4 - .byte -46 - .byte -30 - .byte 3 - .byte 0 - .byte 3 - .byte -3 - .byte -2 - .byte -4 - .byte -2 - .byte -6 - .byte -4 - .byte -4 - .byte -4 - .byte -10 - .byte -6 - .byte -8 - .byte -6 - .byte -14 - .byte -9 - .byte -8 - .byte -9 - .byte -18 - .byte -52 - .byte 22 - .byte -52 - .byte 10 - .byte 42 - .byte 4 - .byte 42 - .byte 4 - .byte 48 - .byte -9 - .byte 48 - .byte 4 - .byte -58 - .byte 12 - .byte -58 - .byte 0 - .byte -64 - .byte -24 - .byte -64 - .byte -6 - .byte 9 - .byte 18 - .byte 9 - .byte 8 - .type __func__.20188, %object - .size __func__.20188, 19 -__func__.20188: - .string "flash_read_page_en" - .zero 5 - .type __func__.20314, %object - .size __func__.20314, 26 -__func__.20314: - .string "flash_start_tlc_page_prog" - .zero 6 - .type __func__.20325, %object - .size __func__.20325, 29 -__func__.20325: - .string "flash_start_3d_mlc_page_prog" - .zero 3 - .type __func__.20343, %object - .size __func__.20343, 22 -__func__.20343: - .string "flash_start_page_prog" - .zero 2 - .type __func__.20367, %object - .size __func__.20367, 31 -__func__.20367: - .string "flash_complete_plane_page_read" - .zero 1 - .type __func__.20392, %object - .size __func__.20392, 25 -__func__.20392: - .string "flash_complete_page_read" - .zero 7 - .type __func__.40224, %object - .size __func__.40224, 31 -__func__.40224: - .string "queue_wait_first_req_completed" - .zero 1 - .type __func__.40278, %object - .size __func__.40278, 15 -__func__.40278: - .string "sblk_prog_page" - .zero 1 - .type __func__.40305, %object - .size __func__.40305, 15 -__func__.40305: - .string "sblk_read_page" - .zero 1 - .type __func__.39204, %object - .size __func__.39204, 21 -__func__.39204: - .string "gc_check_data_one_wl" - .zero 3 - .type __func__.20249, %object - .size __func__.20249, 19 -__func__.20249: - .string "flash_prog_page_en" - .zero 5 - .type __func__.40101, %object - .size __func__.40101, 14 -__func__.40101: - .string "ftl_prog_page" - .zero 2 - .type __func__.39758, %object - .size __func__.39758, 15 -__func__.39758: - .string "ftl_info_flush" - .zero 1 - .type __func__.40063, %object - .size __func__.40063, 19 -__func__.40063: - .string "ftl_ext_info_flush" - .zero 5 - .type __func__.40075, %object - .size __func__.40075, 18 -__func__.40075: - .string "ftl_ext_info_init" - .zero 6 - .type __func__.39813, %object - .size __func__.39813, 15 -__func__.39813: - .string "ftl_alloc_sblk" - .zero 1 - .type __func__.40431, %object - .size __func__.40431, 17 -__func__.40431: - .string "pm_alloc_new_blk" - .zero 7 - .type __func__.40441, %object - .size __func__.40441, 14 -__func__.40441: - .string "pm_write_page" - .zero 2 - .type __func__.21167, %object - .size __func__.21167, 17 -__func__.21167: - .string "flash_info_flush" - .zero 7 - .type __func__.21130, %object - .size __func__.21130, 20 -__func__.21130: - .string "flash_info_blk_init" - .zero 4 - .type __func__.20862, %object - .size __func__.20862, 16 -__func__.20862: - .string "nand_flash_init" - .type __func__.39928, %object - .size __func__.39928, 16 -__func__.39928: - .string "ftl_sysblk_dump" - .type __func__.39953, %object - .size __func__.39953, 23 -__func__.39953: - .string "ftl_open_sblk_recovery" - .zero 1 - .type __func__.40375, %object - .size __func__.40375, 16 -__func__.40375: - .string "load_l2p_region" - .type __func__.40415, %object - .size __func__.40415, 6 -__func__.40415: - .string "pm_gc" - .zero 2 - .type __func__.39147, %object - .size __func__.39147, 12 -__func__.39147: - .string "gc_recovery" - .zero 4 - .type __func__.39236, %object - .size __func__.39236, 22 -__func__.39236: - .string "gc_update_l2p_map_new" - .zero 2 - .type __func__.39350, %object - .size __func__.39350, 16 -__func__.39350: - .string "gc_scan_src_blk" - .type __func__.39411, %object - .size __func__.39411, 20 -__func__.39411: - .string "gc_scan_static_data" - .zero 4 - .type __func__.39474, %object - .size __func__.39474, 18 -__func__.39474: - .string "gc_block_vpn_scan" - .zero 6 - .type __func__.39904, %object - .size __func__.39904, 14 -__func__.39904: - .string "ftl_sblk_dump" - .zero 2 - .type __func__.38978, %object - .size __func__.38978, 10 -__func__.38978: - .string "zftl_read" - .zero 6 - .type __func__.40007, %object - .size __func__.40007, 19 -__func__.40007: - .string "ftl_update_l2p_map" - .zero 5 - .type __func__.38882, %object - .size __func__.38882, 17 -__func__.38882: - .string "ftl_write_commit" - .zero 7 - .type __func__.39279, %object - .size __func__.39279, 16 -__func__.39279: - .string "gc_do_copy_back" - .type __func__.39529, %object - .size __func__.39529, 11 -__func__.39529: - .string "zftl_do_gc" - .zero 5 - .type __func__.39010, %object - .size __func__.39010, 13 -__func__.39010: - .string "_ftl_discard" - .section .rodata.str1.1,"aMS",%progbits,1 -.LC0: - .string "\n!!!!! error @ func:%s - line:%d\n" -.LC1: - .string "%s\n" -.LC2: - .string "FTL version: 6.0.24 20210107" -.LC3: - .string "zftl_debug:0x%x\n" -.LC4: - .string "...%s enter...\n" -.LC5: - .string "No.0 FLASH ID: %x %x %x %x %x %x\n" -.LC6: - .string "DiePerChip: %x\n" -.LC7: - .string "SectPerPage: %x\n" -.LC8: - .string "PagePerBlk: %x\n" -.LC9: - .string "Cell: %x\n" -.LC10: - .string "PlanePerDie: %x\n" -.LC11: - .string "BlkPerPlane: %x\n" -.LC12: - .string "die gap: %x\n" -.LC13: - .string "lsbMode: %x\n" -.LC14: - .string "ReadRetryMode: %x\n" -.LC15: - .string "ecc: %x\n" -.LC16: - .string "idb ecc: %x\n" -.LC17: - .string "OptMode: %x\n" -.LC18: - .string "g_nand_max_die: %x\n" -.LC19: - .string "Cache read enable: %x\n" -.LC20: - .string "Cache random read enable: %x\n" -.LC21: - .string "Cache prog enable: %x\n" -.LC22: - .string "multi read enable: %x\n" -.LC23: - .string "multi prog enable: %x\n" -.LC24: - .string "interleave enable: %x\n" -.LC25: - .string "read retry enable: %x\n" -.LC26: - .string "randomizer enable: %x\n" -.LC27: - .string "SDR enable: %x\n" -.LC28: - .string "ONFI enable: %x\n" -.LC29: - .string "TOGGLE enable: %x\n" -.LC30: - .string "g_flash_slc_mode: %x %x\n" -.LC31: - .string "MultiPlaneProgCmd: %x %x\n" -.LC32: - .string "MultiPlaneReadCmd: %x %x\n" -.LC33: - .string "g_flash_toggle_mode_en: %x\n" -.LC34: - .string "...%s enter... %p\n" -.LC35: - .string "0:%x %x %x %x %x\n" -.LC36: - .string "g_nandc_ver...%d\n" -.LC37: - .string "nand sdr mode %x\n" -.LC38: - .string "nand ddr mode %x\n" -.LC39: - .string "No.%d FLASH ID:%x %x %x %x %x %x\n" -.LC40: - .string "otp:%x %x %x %x\n" -.LC41: - .string "bad block test:%x %x\n" -.LC42: - .string "flash_erase_duplane_block %x %x %x\n" -.LC43: - .string "flash_erase_duplane_block pageadd = %x status = %x\n" -.LC44: - .string "flash_erase_block %x %x %x\n" -.LC45: - .string "flash_erase_block %d block = %x status = %x\n" -.LC46: - .string "erase done: %x\n" -.LC47: - .string "sblk_queue_head = %d\n" -.LC48: - .string "sblk_read_completed_queue_head = %d\n" -.LC49: - .string "sblk_gc_write_completed_queue_head = %d\n" -.LC50: - .string "sblk_write_completed_queue_head = %d\n" -.LC51: - .string "p_free_buf_head = %d\n" -.LC52: - .string "free_buf_count = %d\n" -.LC53: - .string "buf = %d, next=%d, flag=%d gc_write_flag=%d, lun_state=%d, op_status = %d lpa=%x, ppa=%x\n" -.LC54: - .string "flash_mask_bad_block %d %d\n" -.LC55: - .string "zftl_debug" -.LC56: - .string "FLASH ID: %x %x %x %x %x %x\n" -.LC57: - .string "density: %d MB\n" -.LC58: - .string "device density: %d MB\n" -.LC59: - .string "FTL INFO:\n" -.LC60: - .string "max_lpn = 0x%x\n" -.LC61: - .string "density = 0x%x\n" -.LC62: - .string "slc vpn = 0x%x\n" -.LC63: - .string "xlc vpn = 0x%x\n" -.LC64: - .string "free slc blk = 0x%x\n" -.LC65: - .string "free xlc blk = 0x%x\n" -.LC66: - .string "free mix blk = 0x%x\n" -.LC67: - .string "slc data blk = 0x%x\n" -.LC68: - .string "slc cache blk = 0x%x\n" -.LC69: - .string "xlc data blk = 0x%x\n" -.LC70: - .string "free buf = %d, %d, %d\n" -.LC71: - .string "bad blk = %d %d\n" -.LC72: - .string "TBW = %d MB\n" -.LC73: - .string "TBR = %d MB\n" -.LC74: - .string "POC = %d\n" -.LC75: - .string "PLC = %d\n" -.LC76: - .string "sys run time = %d S\n" -.LC77: - .string "slc mode = %x %x %x\n" -.LC78: - .string "prog err = %d\n" -.LC79: - .string "read err = %d\n" -.LC80: - .string "GC XLC page = %d\n" -.LC81: - .string "GC SLC page = %d\n" -.LC82: - .string "discard page = 0x%x\n" -.LC83: - .string "version = %d\n" -.LC84: - .string "acblk = 0x%x %d %d\n" -.LC85: - .string "tmblk = 0x%x %d %d\n" -.LC86: - .string "gcblk = 0x%x %d %d\n" -.LC87: - .string "slc ec = %d, %d, %d, %d, %d\n" -.LC88: - .string "xlc ec = %d, %d, %d, %d, %d\n" -.LC89: - .string "gc free blk th = %d\n" -.LC90: - .string "gc vpn th = %d %d %d %d %d\n" -.LC91: - .string "swl blk = %x %x %x %x\n" -.LC92: - .string "rf info = %x %x %x %x %x\n" -.LC93: - .string "gc_add_sblk = %d, %d, %d, %d, %d, %d, %d\n" -.LC94: - .string "gc_add_sblk = %d, %d, %d\n" -.LC95: - .string "gc_add_sblk = %d, %d, %d,last update:%d, %d\n" -.LC96: - .string "gc_add_sblk = %d, %d, %d, %d, %d, %d\n" -.LC97: - .string "gc_mark_bad_ppa %d %x %x\n" -.LC98: - .string "status: %x, ppa: %x\n" -.LC99: - .string "%d gc_free_temp_buf buf id= %x\n" -.LC100: - .string "gc: b:%x,p:%x,i:%x; free buf=%d %d free slc th: %d\n" -.LC101: - .string "zftl_get_gc_node cache = %x index = %d vpn = %x\n" -.LC102: - .string "gc_search_src_blk mode = %x, src mode = %x, count= %d %d\n" -.LC103: - .string "swl_tlc_free_mini_ec_blk alloc sblk %x\n" -.LC104: - .string "zftl_get_free_sblk %x %d, %p %d %d\n" -.LC105: - .string "zftl_gc_get_free_sblk %x %x %x, %d %d %d\n" -.LC106: - .string "swl_slc_free_mini_ec_blk alloc sblk %x\n" -.LC107: - .string "list count:%p %d\n" -.LC108: - .string "%d: node:%x %x %x %x, %d %d %d %d %d\n" -.LC109: - .string "ftl_vpn_decrement %x = %d, %d\n" -.LC110: - .string "mask bad block:cs %x %x block: %x %x\n" -.LC111: - .string "gc_free_bad_sblk 0x%x\n" -.LC112: - .string "swl_slc_free_mini_ec_blk sblk %x\n" -.LC113: - .string "gc_free_src_blk = %x, vpn = %d\n" -.LC114: - .string "gc_free_src_blk %x, %d\n" -.LC115: - .string "bad blk = %x, %x free blk: s:%x,t:%x,m:%x, data blk:s:%x,%x,t%x vpn: s:%x t:%x, max_vpn: %x\n" -.LC116: - .string "totle w: %d MB,r: %d MB %d dv:0x%X,poc:%d\n" -.LC117: - .string "gc xlc page: %d,gc slc page: %d, tmp w: %d MB\n" -.LC118: - .string "slc ec: %d,%d,%d,%d,%d,tlc ec: %d,%d,%d,%d,%d\n" -.LC119: - .string "gc th: tlc_tlc: %d tlc_slc: %d slc_slc: %d slc_tlc:%d free_th: %d\n" -.LC120: - .string "swl : %x %x %x %x %x %x\n" -.LC121: - .string "ftl prog error =%x, lpa = %x, ppa= %x\n" -.LC122: - .string "ftl re prog: lpa = %x, ppa= %x\n" -.LC123: - .string "dump_sblk_queue: %d\n" -.LC124: - .string "buf id= %d state = %d ppa = %x\n" -.LC125: - .string "%s %d %d\n" -.LC126: - .string "gc_static_wearleveling: min blk: %x,sec=%d,xec = %d ,mode=%d, func=%x, bbt=%x vpn = %d\n" -.LC127: - .string "gc_static_wearleveling: min slc blk: %x,sec=%d,xec = %d ,mode=%d, func=%x, bbt=%x vpn = %d\n" -.LC128: - .string "gc_static_wearleveling: min tlc blk: %x,sec=%d,xec = %d ,mode=%d, func=%x, bbt=%x vpn = %d\n" -.LC129: - .string "gc_static_wearleveling: max slc blk: %x,sec=%d,xec = %d ,mode=%d, func=%x, bbt=%x vpn = %d\n" -.LC130: - .string "gc_static_wearleveling: max xlc blk: %x,sec=%d,xec = %d ,mode=%d, func=%x, bbt=%x vpn = %d\n" -.LC131: - .string "gc_static_wearleveling: slc blk: %x, tlc blk: %d avg slc ec: %d, avg tlc ec: %d \n" -.LC132: - .string "gc_static_wearleveling: min slc ec: %x, min tlc ec: %d max slc ec: %d, max tlc ec: %d; %d %d\n" -.LC133: - .string "swl add tlc gc = %x, %d, %d, %d, %d, %d\n" -.LC134: - .string "swl add slc gc = %x, %d, %d, %d, %d, %d\n" -.LC135: - .string "free blk vpn error: %x %x\n" -.LC136: - .string "GC PM block %x %x %x %d\n" -.LC137: - .string "ftl_free_no_use_map_blk %x %x %x %d\n" -.LC138: - .string "...%d @ %s\n" -.LC139: - .string "rk_ftl_de_init %x\n" -.LC140: - .string "\0013" -.LC141: - .string "otp error! %d" -.LC142: - .string "rr" -.LC143: - .string "flash_abort_clear = %d\n" -.LC144: - .string "%d mtrans_cnt = %d page_num = %d\n" -.LC145: - .string "%d flReg.d32=%x %x\n" -.LC146: - .string "nandc:" -.LC147: - .string "nandc_xfer_done read error %x\n" -.LC148: - .string "dqs data abort %x\n" -.LC149: - .string "dqs data timeout %x\n" -.LC150: - .string "xfer error %x\n" -.LC151: - .string "MT %d row=%x,last status %d,status = %d\n" -.LC152: - .string "MT RR %d row=%x,count %d,status=%d\n" -.LC153: - .string "toshiba SRR %d row=%x, status=%d\n" -.LC154: - .string "toshiba TRR %d row=%x, status=%d\n" -.LC155: - .string "toshiba RR %d row=%x,count %d,status=%d\n" -.LC156: - .string "YMTC RR %d row=%x,count %d,status=%d\n" -.LC157: - .string "samsung SRR %d row=%x, status=%d\n" -.LC158: - .string "samsung TRR %d row=%x, status=%d\n" -.LC159: - .string "samsung RR %d row=%x,count %d,status=%d\n" -.LC160: - .string "hynix RR %d row=%x, count %d, status=%d\n" -.LC161: - .string "%d flash_ddr_tuning_read %x ecc=%d\n" -.LC162: - .string "sync para %d\n" -.LC163: - .string "DDR mode Read error %x %x\n" -.LC164: - .string "SDR mode Read %x %x ecc:%x\n" -.LC165: - .string "flash_read_page_en %x %x %x %x\n" -.LC166: - .string "flash_read_page_en %x %x error_ecc %d %d\n" -.LC167: - .string "flash_get_last_written_page: %x %x %x\n" -.LC168: - .string "flash_prog_page page_addr = %x status = %x\n" -.LC169: - .string "flash_prog_page %x %x %x\n" -.LC170: - .string "ymtc_flash_tlc_page_prog page_addr = %x status = %x\n" -.LC171: - .string "sblk_mlc_dump_prog wl_addr= %x ppa = %x ppa = %x\n" -.LC172: - .string "flash_complete_page_read %x %x error_ecc %d %d\n" -.LC173: - .string "read: %x %x %x %x\n" -.LC174: - .string "0set buf %d,status = %x, ppa = %x lun state = %d\n" -.LC175: - .string "prog end %x %x error_ecc %d %d\n" -.LC176: - .string "1set buf %d,status = %x, ppa = %x lun state = %d\n" -.LC177: - .string "dp prog end %x %x error_ecc %d %d\n" -.LC178: - .string "sblk_prog_page ppa = %x, count = %d\n" -.LC179: - .string "err: ppa = %x, status = %x, %x %x spare: %x %x %x %x\n" -.LC180: - .string "flash_prog_page_en:%x %x %x\n" -.LC181: - .string "w d:" -.LC182: - .string "w s:" -.LC183: - .string "spare" -.LC184: - .string "data" -.LC185: - .string "write error: %x\n" -.LC186: - .string "g_ftl_info_blk blk = %x, page = %x version = %d\n" -.LC187: - .string "%d %x @%d %x\n" -.LC188: - .string "ftl_info_blk_init %d %d %x\n" -.LC189: - .string "ftl info hash %x error\n" -.LC190: - .string "ink flag: %x\n" -.LC191: - .string "%s %d %d %x %x\n" -.LC192: - .string "ext info hash %x error\n" -.LC193: - .string "%s %x %x %x\n" -.LC194: - .string "ftl_sblk_dump_write = %x %d %d %d %d\n" -.LC195: - .string "blk= %x, page=%x, ppa = %x, status = %x, data:%x %x %x %x, spare: %x %x %x %x\n" -.LC196: - .string "ftl_sblk_dump_write2 = %x %d %d %d\n" -.LC197: - .string "ftl_sblk_dump_write = %x %x\n" -.LC198: - .string "ftl_sblk_dump_write done = %x\n" -.LC199: - .string "%x: ink_scaned_blk_num %x\n" -.LC200: - .string "ftl_ink_check_sblk = %x %d %d\n" -.LC201: - .string "ftl_ink_check_sblk = %x %d %d end\n" -.LC202: - .string "alloc sblk %x %d\n" -.LC203: - .string "blk %x is bad block\n" -.LC204: - .string "pm_alloc_new_blk: %x %x %x %x\n" -.LC205: - .string "pm_write_page write error: %x\n" -.LC206: - .string "finfo:" -.LC207: - .string "flash_info_flush id = %x, page = %x\n" -.LC208: - .string "sys_info_flush error:%x\n" -.LC209: - .string "...%d @ %s %d %p\n" -.LC210: - .string "no sys info %x\n" -.LC211: - .string "l2p:" -.LC212: - .string "saved_active_page = %x\n" -.LC213: - .string "saved_active_plane = %x\n" -.LC214: - .string "sblk = %x\n" -.LC215: - .string "phy_blk = %x %x\n" -.LC216: - .string "num_planes = %x\n" -.LC217: - .string "recovery blk=%x, page=%x, ppa = %x, status = %x, hash:%x\n" -.LC218: - .string "data:" -.LC219: - .string "sblk = %x, vpn0 = %d, vpn1 = %d\n" -.LC220: - .string "dump_write_lpa = %x %x %x %x\n" -.LC221: - .string "dump write new ppa = %x, last ppa = %x lpa = %x\n" -.LC222: - .string "dump write = %x %x %x\n" -.LC223: - .string "dump write hash update = %x %x %x\n" -.LC224: - .string "free_buf_count: %d\n" -.LC225: - .string "g_ftl_info_blk blk:0x%x, index:0x%x, page:0x%x\n" -.LC226: - .string "ftl_ext_info_blk blk:0x%x, page:0x%x\n" -.LC227: - .string "ac_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, page_index:0x%x\n" -.LC228: - .string "tmp_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, page_index:0x%x\n" -.LC229: - .string "gc_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, page_index:0x%x\n" -.LC230: - .string "lpa:" -.LC231: - .string "vpn:" -.LC232: - .string "sblk:" -.LC233: - .string "lpa_hash:" -.LC234: - .string "lpa_hash_index:" -.LC235: - .string "%s w error lpn = %x, max ppa = %d\n" -.LC236: - .string "region_id = %d, pm_max_region = %d\n" -.LC237: - .string "load_l2p_region no ppa = %x , %x, all setting 0xff....\n" -.LC238: - .string "load_l2p_region = %x,%x,%x, %x\n" -.LC239: - .string "pm_ppa:" -.LC240: - .string "spare:" -.LC241: - .string "pm_init posr %x %x %x\n" -.LC242: - .string "pm_init recovery %x %x %x\n" -.LC243: - .string "pm_init hash %x error\n" -.LC244: - .string "pm_log2phys lpn = %d, max lpn = %d\n" -.LC245: - .string "ppa = %x, status = %x, data:%x %x %x %x, spare: %x %x %x %x\n" -.LC246: - .string "ppa = %x, status = %x, %x %x spare: %x %x %x %x\n" -.LC247: - .string "gc_recovery: %x vpn = %x\n" -.LC248: - .string "gc_update_l2p_map_new sblk %x\n" -.LC249: - .string "gc_update_l2p_map_new: %x %x %x\n" -.LC250: - .string "lpa: %x %x %x\n" -.LC251: - .string "gc_update_l2p_map_new: %x vpn = %x vpn1 = %x done\n" -.LC252: - .string "gc_scan_src_blk = %x, vpn = %d\n" -.LC253: - .string "js hash error:%x %x %x\n" -.LC254: - .string "gc_scan_src_blk = %x, s vpn0 = %d, c vpn1 = %d\n" -.LC255: - .string "gc_block_vpn_scan = %x, s vpn0 = %d, c vpn1 = %d f:%d\n" -.LC256: - .string "ftl_sblk_dump = %x %d %d %d %d\n" -.LC257: - .string "ftl_sblk_dump = %x %x %x %x\n" -.LC258: - .string "page_addr = %x, lpa=%x vpn = %d\n" -.LC259: - .string "index= %x, lpa=%x\n" -.LC260: - .string "block = %x, vpn=%x check vpn = %x\n" -.LC261: - .string "ftl_read %x %x %x\n" -.LC262: - .string "ftl_read refresh =%x, lpa = %x, ppa= %x\n" -.LC263: - .string "id=%d, status = %x, lpa = %x, ppa = %x spare = %x %x %x %x\n" -.LC264: - .string "zftl debug cmd: %s\n" -.LC265: - .string "cmd:" -.LC266: - .string "dumpl2p" -.LC267: - .string "pm l2p:" -.LC268: - .string "pm blk:" -.LC269: - .string "dumppm:" -.LC270: - .string "p_cmd: %s\n" -.LC271: - .string "pm ram = %x, %x\n" -.LC272: - .string "ram:" -.LC273: - .string "pm:" -.LC274: - .string "dumpsys" -.LC275: - .string "dumplist:" -.LC276: - .string "vpncheck" -.LC277: - .string "dumpppa:" -.LC278: - .string "dumpblk:" -.LC279: - .string "setzdebug:" -.LC280: - .string "lpa2ppa:" -.LC281: - .string "lpa: %x--> ppa: %x\n" -.LC282: - .string "help:\n" -.LC283: - .string "1. echo dumpl2p > /proc/zftl_debug\n" -.LC284: - .string "2. echo dumppm:x > /proc/zftl_debug\n" -.LC285: - .string "3. echo dumpsys > /proc/zftl_debug\n" -.LC286: - .string "4. echo dumpppa:x > /proc/zftl_debug\n" -.LC287: - .string "5. echo vpncheck > /proc/zftl_debug\n" -.LC288: - .string "6. echo setzdebug:x > /proc/zftl_debug\n" -.LC289: - .string "7. echo dumplist:x > /proc/zftl_debug\n" -.LC290: - .string "8. echo lpa2ppa:x> /proc/zftl_debug\n" -.LC291: - .string "ftl_update_l2p_map: %x %x %x\n" -.LC292: - .string "ftl_update_l2p_map" -.LC293: - .string "lpa_tbl:" -.LC294: - .string "sblk %x vpn: %d %d\n" -.LC295: - .string "error gc_add_sblk: %x\n" -.LC296: - .string "%d read error: ppa:%x, lpa:%x, status:%x\n" -.LC297: - .string "gc page in buf: lpa %x ppa = %x pageindex= %x\n" -.LC298: - .string "gc_do_copy_back: lpa %x des_ppa = %x %x gc_ppa= %x page_index= %d\n" -.LC299: - .string "gc %d: %d %d %d %d %d %d %d\n" -.LC300: - .string "GC_STATE_SCAN_ALL_PAGE = %x, vpn0 = %d, vpn1 = %d\n" -.LC301: - .string "gc free %x, %d\n" -.LC302: - .string "_c_user_data_density := %d\n" -.LC303: - .string "_c_totle_phy_density := %d\n" -.LC304: - .string "_c_totle_log_page := %d\n" -.LC305: - .string "_c_totle_data_density := %d\n" -.LC306: - .string "_c_ftl_pm_page_num := %d\n" -.LC307: - .string "_c_ftl_byte_pre_page := %d\n" -.LC308: - .string "_c_max_pm_sblk := %d\n" -.LC309: - .string "_min_slc_super_block := %d\n" -.LC310: - .string "_max_xlc_super_block := %d\n" -.LC311: - .string "gp_ftl_ext_info %p %p %p\n" -.LC312: - .string "flash info size: %d %d %d\n" -.LC313: - .string "ftl_init %x\n" -.LC314: - .string "ftlwrite %x %x %x %x\n" -.LC315: - .string "ftl_discard:(%x, %x, %x, %x)\n" -.LC316: - .string "id_block_prog_msb_ff_data slc page = %d pageadd=%x %x\n" -.LC317: - .string "write_idblock fix data %x %x\n" -.LC318: - .string "idblk:" -.LC319: - .string "write_idblock totle_sec %x %x\n" -.LC320: - .string "prog page: %x %x %x, %p %x %x %x\n" -.LC321: - .string "read page: %x %x %x %x\n" -.LC322: - .string "wl_lba %p %x %x %x\n" -.LC323: - .string "RKNAND_GET_DRM_KEY\n" -.LC324: - .string "rk_copy_from_user error\n" -.LC325: - .string "RKNAND_STORE_DRM_KEY\n" -.LC326: - .string "RKNAND_DIASBLE_SECURE_BOOT\n" -.LC327: - .string "RKNAND_ENASBLE_SECURE_BOOT\n" -.LC328: - .string "RKNAND_GET_SN_SECTOR\n" -.LC329: - .string "RKNAND_LOADER_UNLOCK\n" -.LC330: - .string "RKNAND_LOADER_STATUS\n" -.LC331: - .string "RKNAND_LOADER_LOCK\n" -.LC332: - .string "LockKey not match %d\n" -.LC333: - .string "RKNAND_GET_VENDOR_SECTOR\n" -.LC334: - .string "RKNAND_STORE_VENDOR_SECTOR\n" -.LC335: - .string "return ret = %lx\n" -.LC336: - .string "secureBootEn check error\n" -.LC337: - .string "\0013vendor storage %x,%x,%x\n" .data .align 3 -.LANCHOR2 = . + 0 + .set .LANCHOR2,. + 0 .type zftl_debug, %object .size zftl_debug, 4 zftl_debug: @@ -35225,9 +32200,9 @@ tlc_prog_order: .hword 1019 .bss .align 6 -.LANCHOR0 = . + 0 -.LANCHOR3 = . + 4352 -.LANCHOR5 = . + 8704 + .set .LANCHOR0,. + 0 + .set .LANCHOR3,. + 4352 + .set .LANCHOR5,. + 8704 .type g_flash_slc_mode, %object .size g_flash_slc_mode, 1 g_flash_slc_mode: @@ -35257,6 +32232,10 @@ _c_user_data_density: .type gp_sblk_list_tbl, %object .size gp_sblk_list_tbl, 8 gp_sblk_list_tbl: + .zero 8 + .type gp_flash_info, %object + .size gp_flash_info, 8 +gp_flash_info: .zero 8 .type gp_nandc, %object .size gp_nandc, 8 @@ -35315,10 +32294,6 @@ ftl_sblk_vpn: .type gp_ftl_ext_info, %object .size gp_ftl_ext_info, 8 gp_ftl_ext_info: - .zero 8 - .type gp_flash_info, %object - .size gp_flash_info, 8 -gp_flash_info: .zero 8 .type g_retryMode, %object .size g_retryMode, 1 @@ -35353,28 +32328,6 @@ g_nand_opt_para: .type g_flash_toggle_mode_en, %object .size g_flash_toggle_mode_en, 1 g_flash_toggle_mode_en: - .zero 1 - .type nandc_hw_seed, %object - .size nandc_hw_seed, 1 -nandc_hw_seed: - .zero 1 - .zero 6 - .type g_nandc_v6_master_info, %object - .size g_nandc_v6_master_info, 40 -g_nandc_v6_master_info: - .zero 40 - .type nandc_randomizer_en, %object - .size nandc_randomizer_en, 1 -nandc_randomizer_en: - .zero 1 - .zero 1 - .type fill_spare_size, %object - .size fill_spare_size, 2 -fill_spare_size: - .zero 2 - .type g_nandc_ecc_bits, %object - .size g_nandc_ecc_bits, 1 -g_nandc_ecc_bits: .zero 1 .zero 3 .type g_die_cs_idx, %object @@ -35389,7 +32342,7 @@ g_flash_six_addr: .size _c_ftl_cs_bits, 1 _c_ftl_cs_bits: .zero 1 - .zero 6 + .zero 2 .type g_flash_cur_mode, %object .size g_flash_cur_mode, 4 g_flash_cur_mode: @@ -35410,20 +32363,37 @@ IDByte: .type g_flash_interface_mode, %object .size g_flash_interface_mode, 1 g_flash_interface_mode: + .zero 1 + .type g_nandc_ecc_bits, %object + .size g_nandc_ecc_bits, 1 +g_nandc_ecc_bits: .zero 1 .type g_flash_multi_page_prog_en, %object .size g_flash_multi_page_prog_en, 1 g_flash_multi_page_prog_en: .zero 1 + .type nandc_hw_seed, %object + .size nandc_hw_seed, 1 +nandc_hw_seed: + .zero 1 + .type nandc_randomizer_en, %object + .size nandc_randomizer_en, 1 +nandc_randomizer_en: + .zero 1 + .zero 3 + .type g_nandc_v6_master_info, %object + .size g_nandc_v6_master_info, 40 +g_nandc_v6_master_info: + .zero 40 + .type fill_spare_size, %object + .size fill_spare_size, 2 +fill_spare_size: + .zero 2 .zero 6 .type g_buf, %object .size g_buf, 2048 g_buf: .zero 2048 - .type _c_ftl_sec_per_page, %object - .size _c_ftl_sec_per_page, 1 -_c_ftl_sec_per_page: - .zero 1 .type p_free_buf_head, %object .size p_free_buf_head, 1 p_free_buf_head: @@ -35448,7 +32418,7 @@ sblk_gc_write_completed_queue_head: .size sblk_write_completed_queue_head, 1 sblk_write_completed_queue_head: .zero 1 - .zero 1 + .zero 2 .type _c_totle_phy_density, %object .size _c_totle_phy_density, 4 _c_totle_phy_density: @@ -35481,13 +32451,13 @@ slc_cache_sblk: .size xlc_data_sblk, 2 xlc_data_sblk: .zero 2 - .type write_buf_count, %object - .size write_buf_count, 1 -write_buf_count: - .zero 1 .type write_commit_count, %object .size write_commit_count, 1 write_commit_count: + .zero 1 + .type write_buf_count, %object + .size write_buf_count, 1 +write_buf_count: .zero 1 .zero 2 .type gp_ftl_info, %object @@ -35497,28 +32467,28 @@ gp_ftl_info: .type gc_free_slc_sblk_th, %object .size gc_free_slc_sblk_th, 2 gc_free_slc_sblk_th: - .zero 2 - .type gc_tlc_mode_tlc_vpn_th, %object - .size gc_tlc_mode_tlc_vpn_th, 2 -gc_tlc_mode_tlc_vpn_th: - .zero 2 - .type gc_tlc_mode_slc_vpn_th, %object - .size gc_tlc_mode_slc_vpn_th, 2 -gc_tlc_mode_slc_vpn_th: - .zero 2 - .type gc_slc_mode_vpn_th, %object - .size gc_slc_mode_vpn_th, 2 -gc_slc_mode_vpn_th: - .zero 2 - .type gc_slc_mode_tlc_vpn_th, %object - .size gc_slc_mode_tlc_vpn_th, 2 -gc_slc_mode_tlc_vpn_th: .zero 2 .zero 2 .type _gc_after_discard_en, %object .size _gc_after_discard_en, 4 _gc_after_discard_en: .zero 4 + .type gc_slc_mode_tlc_vpn_th, %object + .size gc_slc_mode_tlc_vpn_th, 2 +gc_slc_mode_tlc_vpn_th: + .zero 2 + .type gc_slc_mode_vpn_th, %object + .size gc_slc_mode_vpn_th, 2 +gc_slc_mode_vpn_th: + .zero 2 + .type gc_tlc_mode_slc_vpn_th, %object + .size gc_tlc_mode_slc_vpn_th, 2 +gc_tlc_mode_slc_vpn_th: + .zero 2 + .type gc_tlc_mode_tlc_vpn_th, %object + .size gc_tlc_mode_tlc_vpn_th, 2 +gc_tlc_mode_tlc_vpn_th: + .zero 2 .type write_buf_head, %object .size write_buf_head, 1 write_buf_head: @@ -35666,6 +32636,11 @@ lpa_hash_index: .size ftl_vpn_update_count, 2 ftl_vpn_update_count: .zero 2 + .type _c_ftl_sec_per_page, %object + .size _c_ftl_sec_per_page, 1 +_c_ftl_sec_per_page: + .zero 1 + .zero 1 .type ftl_sblk_update_list_offset, %object .size ftl_sblk_update_list_offset, 2 ftl_sblk_update_list_offset: @@ -35691,7 +32666,7 @@ read_buf_head: .size read_buf_count, 1 read_buf_count: .zero 1 - .zero 4 + .zero 2 .type pm_ram_info, %object .size pm_ram_info, 512 pm_ram_info: @@ -35718,11 +32693,50 @@ g_die_addr: .size g_totle_phy_block, 2 g_totle_phy_block: .zero 2 + .zero 2 + .type pm_force_gc, %object + .size pm_force_gc, 4 +pm_force_gc: + .zero 4 + .type _c_swl_slc_gc_th, %object + .size _c_swl_slc_gc_th, 2 +_c_swl_slc_gc_th: + .zero 2 + .type _c_swl_xlc_gc_th, %object + .size _c_swl_xlc_gc_th, 2 +_c_swl_xlc_gc_th: + .zero 2 + .type _c_max_pm_sblk, %object + .size _c_max_pm_sblk, 2 +_c_max_pm_sblk: + .zero 2 + .zero 2 + .type power_on_init_jiffies, %object + .size power_on_init_jiffies, 8 +power_on_init_jiffies: + .zero 8 + .type gp_ftl_api, %object + .size gp_ftl_api, 8 +gp_ftl_api: + .zero 8 + .type RK29_NANDC_REG_BASE, %object + .size RK29_NANDC_REG_BASE, 8 +RK29_NANDC_REG_BASE: + .zero 8 + .type ftl_dma32_buffer_size, %object + .size ftl_dma32_buffer_size, 4 +ftl_dma32_buffer_size: + .zero 4 + .zero 4 + .type ftl_dma32_buffer, %object + .size ftl_dma32_buffer, 8 +ftl_dma32_buffer: + .zero 8 .type gc_state, %object .size gc_state, 1 gc_state: .zero 1 - .zero 1 + .zero 3 .type gc_search_count, %object .size gc_search_count, 4 gc_search_count: @@ -35743,35 +32757,6 @@ gc_pre_ppa_tbl: .type gc_des_ppa_tbl, %object .size gc_des_ppa_tbl, 8 gc_des_ppa_tbl: - .zero 8 - .type pm_force_gc, %object - .size pm_force_gc, 4 -pm_force_gc: - .zero 4 - .type _c_swl_slc_gc_th, %object - .size _c_swl_slc_gc_th, 2 -_c_swl_slc_gc_th: - .zero 2 - .type _c_swl_xlc_gc_th, %object - .size _c_swl_xlc_gc_th, 2 -_c_swl_xlc_gc_th: - .zero 2 - .type _c_max_pm_sblk, %object - .size _c_max_pm_sblk, 2 -_c_max_pm_sblk: - .zero 2 - .zero 6 - .type power_on_init_jiffies, %object - .size power_on_init_jiffies, 8 -power_on_init_jiffies: - .zero 8 - .type gp_ftl_api, %object - .size gp_ftl_api, 8 -gp_ftl_api: - .zero 8 - .type RK29_NANDC_REG_BASE, %object - .size RK29_NANDC_REG_BASE, 8 -RK29_NANDC_REG_BASE: .zero 8 .type g_flash_tmp_page_buffer, %object .size g_flash_tmp_page_buffer, 8 @@ -35798,14 +32783,14 @@ flash_ddr_tuning_sdr_read_count: .type flash_read_retry, %object .size flash_read_retry, 8 flash_read_retry: - .zero 8 - .type g_flash_page_buffer, %object - .size g_flash_page_buffer, 8 -g_flash_page_buffer: .zero 8 .type g_flash_spare_buffer, %object .size g_flash_spare_buffer, 8 g_flash_spare_buffer: + .zero 8 + .type g_flash_page_buffer, %object + .size g_flash_page_buffer, 8 +g_flash_page_buffer: .zero 8 .type write_commit_head, %object .size write_commit_head, 1 @@ -35820,11 +32805,11 @@ ftl_flush_jiffies: .size g_flash_multi_page_read_en, 1 g_flash_multi_page_read_en: .zero 1 - .zero 23 + .zero 7 .type ftl_info_spare, %object - .size ftl_info_spare, 256 + .size ftl_info_spare, 8 ftl_info_spare: - .zero 256 + .zero 8 .type g_ftl_info_blk, %object .size g_ftl_info_blk, 4 g_ftl_info_blk: @@ -35851,11 +32836,10 @@ ftl_ext_info_first_write: .size ftl_ext_info_data_buffer, 8 ftl_ext_info_data_buffer: .zero 8 - .zero 32 .type ftl_tmp_spare, %object - .size ftl_tmp_spare, 256 + .size ftl_tmp_spare, 8 ftl_tmp_spare: - .zero 256 + .zero 8 .type pm_gc_enable, %object .size pm_gc_enable, 4 pm_gc_enable: @@ -35955,10 +32939,18 @@ idb_buf: idb_last_lba: .zero 4 .zero 4 - .type gpDrmKeyInfo, %object - .size gpDrmKeyInfo, 8 -gpDrmKeyInfo: + .type g_idb_buffer, %object + .size g_idb_buffer, 8 +g_idb_buffer: .zero 8 + .type g_vendor, %object + .size g_vendor, 8 +g_vendor: + .zero 8 + .type SecureBootUnlockTryCount, %object + .size SecureBootUnlockTryCount, 4 +SecureBootUnlockTryCount: + .zero 4 .type SecureBootCheckOK, %object .size SecureBootCheckOK, 4 SecureBootCheckOK: @@ -35967,34 +32959,26 @@ SecureBootCheckOK: .size SecureBootEn, 4 SecureBootEn: .zero 4 - .type gpBootConfig, %object - .size gpBootConfig, 8 -gpBootConfig: + .zero 4 + .type gpVendor1Info, %object + .size gpVendor1Info, 8 +gpVendor1Info: + .zero 8 + .type gpVendor0Info, %object + .size gpVendor0Info, 8 +gpVendor0Info: .zero 8 .type gSnSectorData, %object .size gSnSectorData, 512 gSnSectorData: .zero 512 - .type SecureBootUnlockTryCount, %object - .size SecureBootUnlockTryCount, 4 -SecureBootUnlockTryCount: - .zero 4 - .zero 4 - .type gpVendor0Info, %object - .size gpVendor0Info, 8 -gpVendor0Info: + .type gpDrmKeyInfo, %object + .size gpDrmKeyInfo, 8 +gpDrmKeyInfo: .zero 8 - .type gpVendor1Info, %object - .size gpVendor1Info, 8 -gpVendor1Info: - .zero 8 - .type g_idb_buffer, %object - .size g_idb_buffer, 8 -g_idb_buffer: - .zero 8 - .type g_vendor, %object - .size g_vendor, 8 -g_vendor: + .type gpBootConfig, %object + .size gpBootConfig, 8 +gpBootConfig: .zero 8 .type ftl_low_format_cur_blk, %object .size ftl_low_format_cur_blk, 2 @@ -36018,3 +33002,2206 @@ nandc_ecc_sts: .size g_slc_mode_enable, 1 g_slc_mode_enable: .zero 1 + .section .rodata + .align 3 + .set .LANCHOR1,. + 0 + .type __func__.46344, %object + .size __func__.46344, 18 +__func__.46344: + .string "_list_remove_node" + .zero 6 + .type __func__.46369, %object + .size __func__.46369, 23 +__func__.46369: + .string "_list_update_data_list" + .zero 1 + .type toshiba_15ref_value, %object + .size toshiba_15ref_value, 95 +toshiba_15ref_value: + .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 toshiba_A19ref_value, %object + .size toshiba_A19ref_value, 45 +toshiba_A19ref_value: + .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 toshiba_ref_value, %object + .size toshiba_ref_value, 8 +toshiba_ref_value: + .byte 0 + .byte 4 + .byte 124 + .byte 120 + .byte 116 + .byte 8 + .byte 12 + .byte 112 + .type __func__.26714, %object + .size __func__.26714, 22 +__func__.26714: + .string "nand_flash_print_info" + .zero 2 + .type __func__.26187, %object + .size __func__.26187, 28 +__func__.26187: + .string "flash_wait_device_ready_raw" + .zero 4 + .type __func__.26251, %object + .size __func__.26251, 22 +__func__.26251: + .string "flash_start_page_read" + .zero 2 + .type toshiba_3D_tlc_value, %object + .size toshiba_3D_tlc_value, 399 +toshiba_3D_tlc_value: + .byte -119 + .byte -119 + .byte -119 + .byte -119 + .byte -118 + .byte -118 + .byte -118 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 5 + .byte -2 + .byte -1 + .byte 0 + .byte -3 + .byte -2 + .byte 6 + .byte -9 + .byte -12 + .byte -9 + .byte -7 + .byte -13 + .byte -12 + .byte -7 + .byte -6 + .byte -15 + .byte -15 + .byte -2 + .byte -12 + .byte -16 + .byte -6 + .byte -2 + .byte -19 + .byte -19 + .byte -6 + .byte -4 + .byte -12 + .byte -14 + .byte -2 + .byte -11 + .byte -23 + .byte -34 + .byte -4 + .byte -20 + .byte -22 + .byte -2 + .byte -7 + .byte -31 + .byte -30 + .byte -12 + .byte -20 + .byte -18 + .byte 2 + .byte -15 + .byte -19 + .byte -36 + .byte -12 + .byte -28 + .byte -34 + .byte -6 + .byte -15 + .byte -11 + .byte 2 + .byte -12 + .byte -8 + .byte -2 + .byte 2 + .byte -3 + .byte -7 + .byte -10 + .byte -4 + .byte -8 + .byte -6 + .byte -6 + .byte -11 + .byte -27 + .byte -38 + .byte -16 + .byte -12 + .byte -2 + .byte 2 + .byte -7 + .byte -31 + .byte -22 + .byte -4 + .byte -16 + .byte -22 + .byte -7 + .byte -31 + .byte -23 + .byte -22 + .byte -28 + .byte -28 + .byte -26 + .byte 2 + .byte -7 + .byte -11 + .byte -14 + .byte -8 + .byte -12 + .byte -10 + .byte -10 + .byte -27 + .byte -25 + .byte -22 + .byte -20 + .byte -28 + .byte -22 + .byte -7 + .byte -23 + .byte -29 + .byte -34 + .byte -24 + .byte -32 + .byte -22 + .byte -10 + .byte -11 + .byte -29 + .byte -18 + .byte -12 + .byte -24 + .byte -22 + .byte 6 + .byte 1 + .byte -3 + .byte -6 + .byte 0 + .byte -4 + .byte -2 + .byte 10 + .byte -3 + .byte -7 + .byte -6 + .byte 4 + .byte -4 + .byte -2 + .byte -10 + .byte -23 + .byte -39 + .byte -22 + .byte -19 + .byte -24 + .byte -18 + .byte -14 + .byte -23 + .byte -29 + .byte -30 + .byte -15 + .byte -30 + .byte -30 + .byte -7 + .byte -27 + .byte -35 + .byte -26 + .byte -15 + .byte -24 + .byte -26 + .byte 6 + .byte -11 + .byte 5 + .byte -2 + .byte -16 + .byte -16 + .byte -2 + .byte -2 + .byte -15 + .byte -15 + .byte -20 + .byte -8 + .byte -16 + .byte -18 + .byte 6 + .byte 5 + .byte -15 + .byte -2 + .byte -24 + .byte -28 + .byte -22 + .byte 10 + .byte -15 + .byte -3 + .byte -30 + .byte -8 + .byte -24 + .byte -30 + .byte -10 + .byte -27 + .byte -19 + .byte -30 + .byte -12 + .byte -16 + .byte -10 + .byte 14 + .byte -19 + .byte -3 + .byte -30 + .byte 4 + .byte 4 + .byte 6 + .byte 2 + .byte 1 + .byte -3 + .byte -10 + .byte -8 + .byte -4 + .byte -6 + .byte -2 + .byte -15 + .byte -11 + .byte -26 + .byte -8 + .byte -20 + .byte -30 + .byte 6 + .byte -19 + .byte -3 + .byte -46 + .byte 0 + .byte 0 + .byte 2 + .byte 6 + .byte 9 + .byte 5 + .byte 2 + .byte 4 + .byte 8 + .byte 6 + .byte 8 + .byte 9 + .byte 9 + .byte 6 + .byte 8 + .byte 8 + .byte 6 + .byte 10 + .byte 13 + .byte 9 + .byte 6 + .byte 8 + .byte 12 + .byte 10 + .byte 2 + .byte 5 + .byte 1 + .byte -2 + .byte 0 + .byte 0 + .byte 6 + .byte 12 + .byte 1 + .byte 13 + .byte 2 + .byte 12 + .byte 12 + .byte 14 + .byte -12 + .byte -14 + .byte -20 + .byte -18 + .byte -16 + .byte -16 + .byte -14 + .byte -12 + .byte -10 + .byte -21 + .byte -14 + .byte -12 + .byte -12 + .byte -10 + .byte -12 + .byte -18 + .byte -22 + .byte -24 + .byte -18 + .byte -18 + .byte -18 + .byte -12 + .byte -14 + .byte -23 + .byte -20 + .byte -20 + .byte -20 + .byte -20 + .byte -12 + .byte -24 + .byte -24 + .byte -30 + .byte -24 + .byte -28 + .byte -28 + .byte -12 + .byte -26 + .byte -25 + .byte -34 + .byte -24 + .byte -24 + .byte -24 + .byte -12 + .byte -13 + .byte -26 + .byte -20 + .byte -14 + .byte -18 + .byte -18 + .byte -12 + .byte -15 + .byte -27 + .byte -22 + .byte -20 + .byte -24 + .byte -22 + .byte -12 + .byte -21 + .byte -28 + .byte -28 + .byte -24 + .byte -26 + .byte -24 + .byte 20 + .byte 16 + .byte 6 + .byte 10 + .byte 16 + .byte 12 + .byte 12 + .byte 16 + .byte 16 + .byte 8 + .byte 8 + .byte 12 + .byte 12 + .byte 12 + .byte 18 + .byte 18 + .byte 10 + .byte 8 + .byte 14 + .byte 14 + .byte 14 + .byte 16 + .byte 14 + .byte 6 + .byte 6 + .byte 12 + .byte 14 + .byte 8 + .byte 20 + .byte 18 + .byte 8 + .byte 6 + .byte 14 + .byte 14 + .byte 10 + .byte 20 + .byte 20 + .byte 6 + .byte 10 + .byte 10 + .byte 12 + .byte 12 + .byte 10 + .byte 13 + .byte 5 + .byte 2 + .byte 14 + .byte 8 + .byte 6 + .byte 6 + .byte 13 + .byte 9 + .byte 4 + .byte 14 + .byte 10 + .byte 10 + .byte 10 + .byte 13 + .byte 9 + .byte 6 + .byte 8 + .byte 12 + .byte 10 + .byte 2 + .byte 5 + .byte 1 + .byte -2 + .byte 0 + .byte 0 + .byte 6 + .byte 12 + .byte 1 + .byte 13 + .byte 2 + .byte 12 + .byte 12 + .byte 14 + .zero 1 + .type toshiba_3D_slc_value, %object + .size toshiba_3D_slc_value, 11 +toshiba_3D_slc_value: + .byte -117 + .byte 0 + .byte -8 + .byte 8 + .byte -16 + .byte -24 + .byte 24 + .byte -40 + .byte 40 + .byte -56 + .byte 56 + .zero 5 + .type ymtc_3D_tlc_value, %object + .size ymtc_3D_tlc_value, 357 +ymtc_3D_tlc_value: + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte -10 + .byte -10 + .byte -6 + .byte -6 + .byte -2 + .byte 2 + .byte 2 + .byte -6 + .byte -6 + .byte -4 + .byte -4 + .byte -4 + .byte -6 + .byte -8 + .byte 6 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte -2 + .byte -2 + .byte -2 + .byte -4 + .byte -4 + .byte -6 + .byte -6 + .byte -6 + .byte -6 + .byte -6 + .byte -6 + .byte -6 + .byte -6 + .byte -11 + .byte -2 + .byte 2 + .byte 4 + .byte 4 + .byte 6 + .byte 6 + .byte 6 + .byte -6 + .byte -6 + .byte -6 + .byte -6 + .byte -6 + .byte -8 + .byte -14 + .byte -6 + .byte -15 + .byte -11 + .byte 2 + .byte -12 + .byte -8 + .byte -2 + .byte 2 + .byte -3 + .byte -7 + .byte -10 + .byte -4 + .byte -8 + .byte -6 + .byte -18 + .byte -18 + .byte -14 + .byte -14 + .byte -10 + .byte -5 + .byte -5 + .byte -14 + .byte -14 + .byte -12 + .byte -12 + .byte -12 + .byte -13 + .byte -15 + .byte -2 + .byte -8 + .byte -8 + .byte -8 + .byte -8 + .byte -7 + .byte -7 + .byte -10 + .byte -10 + .byte -10 + .byte -12 + .byte -12 + .byte -13 + .byte -13 + .byte -14 + .byte -14 + .byte -14 + .byte -14 + .byte -14 + .byte -13 + .byte -18 + .byte -10 + .byte -6 + .byte -4 + .byte -4 + .byte -2 + .byte -1 + .byte -1 + .byte -14 + .byte -14 + .byte -14 + .byte -14 + .byte -14 + .byte -15 + .byte -21 + .byte -12 + .byte -11 + .byte -7 + .byte -7 + .byte -3 + .byte 1 + .byte 1 + .byte -8 + .byte -7 + .byte -5 + .byte -5 + .byte -5 + .byte -7 + .byte -9 + .byte 4 + .byte -1 + .byte -1 + .byte -1 + .byte -1 + .byte -1 + .byte -1 + .byte -4 + .byte -3 + .byte -3 + .byte -5 + .byte -5 + .byte -7 + .byte -7 + .byte -8 + .byte -7 + .byte -7 + .byte -7 + .byte -7 + .byte -7 + .byte -12 + .byte -4 + .byte 1 + .byte 3 + .byte 3 + .byte 5 + .byte 5 + .byte 5 + .byte -8 + .byte -7 + .byte -7 + .byte -7 + .byte -7 + .byte -9 + .byte -15 + .byte 2 + .byte -7 + .byte -11 + .byte -14 + .byte -8 + .byte -12 + .byte -10 + .byte 6 + .byte 1 + .byte -3 + .byte -6 + .byte 0 + .byte -4 + .byte -2 + .byte 10 + .byte -3 + .byte -7 + .byte -6 + .byte 4 + .byte -4 + .byte -2 + .byte -10 + .byte -23 + .byte -39 + .byte -22 + .byte -19 + .byte -24 + .byte -18 + .byte -7 + .byte -27 + .byte -35 + .byte -26 + .byte -15 + .byte -24 + .byte -26 + .byte 6 + .byte -11 + .byte 5 + .byte -2 + .byte -16 + .byte -16 + .byte -2 + .byte -2 + .byte -15 + .byte -15 + .byte -20 + .byte -8 + .byte -16 + .byte -18 + .byte 2 + .byte 1 + .byte -3 + .byte -10 + .byte -8 + .byte -4 + .byte -6 + .byte -2 + .byte -15 + .byte -11 + .byte -26 + .byte -8 + .byte -20 + .byte -30 + .byte 6 + .byte -19 + .byte -3 + .byte -46 + .byte 0 + .byte 0 + .byte 2 + .byte 6 + .byte 9 + .byte 5 + .byte 2 + .byte 4 + .byte 8 + .byte 6 + .byte 8 + .byte 9 + .byte 9 + .byte 6 + .byte 8 + .byte 8 + .byte 6 + .byte 10 + .byte 13 + .byte 9 + .byte 6 + .byte 8 + .byte 12 + .byte 10 + .byte 2 + .byte 5 + .byte 1 + .byte -2 + .byte 0 + .byte 0 + .byte 6 + .byte 12 + .byte 1 + .byte 13 + .byte 2 + .byte 12 + .byte 12 + .byte 14 + .byte -12 + .byte -14 + .byte -20 + .byte -18 + .byte -16 + .byte -16 + .byte -14 + .byte -12 + .byte -10 + .byte -21 + .byte -14 + .byte -12 + .byte -12 + .byte -10 + .byte -12 + .byte -18 + .byte -22 + .byte -24 + .byte -18 + .byte -18 + .byte -18 + .byte -12 + .byte -14 + .byte -23 + .byte -20 + .byte -20 + .byte -20 + .byte -20 + .byte 16 + .byte 16 + .byte 8 + .byte 8 + .byte 12 + .byte 12 + .byte 12 + .byte 18 + .byte 18 + .byte 10 + .byte 8 + .byte 14 + .byte 14 + .byte 14 + .byte 16 + .byte 14 + .byte 6 + .byte 6 + .byte 12 + .byte 14 + .byte 8 + .byte 10 + .byte 13 + .byte 5 + .byte 2 + .byte 14 + .byte 8 + .byte 6 + .byte 6 + .byte 13 + .byte 9 + .byte 4 + .byte 14 + .byte 10 + .byte 10 + .byte 10 + .byte 13 + .byte 9 + .byte 6 + .byte 8 + .byte 12 + .byte 10 + .byte 2 + .byte 5 + .byte 1 + .byte -2 + .byte 0 + .byte 0 + .byte 6 + .byte 12 + .byte 1 + .byte 13 + .byte 2 + .byte 12 + .byte 12 + .byte 14 + .zero 3 + .type ymtc_3D_slc_value, %object + .size ymtc_3D_slc_value, 10 +ymtc_3D_slc_value: + .byte 0 + .byte -8 + .byte 8 + .byte -16 + .byte -20 + .byte 24 + .byte -26 + .byte 40 + .byte -12 + .byte 56 + .zero 6 + .type __func__.26276, %object + .size __func__.26276, 23 +__func__.26276: + .string "flash_start_plane_read" + .zero 1 + .type __func__.26162, %object + .size __func__.26162, 26 +__func__.26162: + .string "flash_erase_duplane_block" + .zero 6 + .type __func__.26173, %object + .size __func__.26173, 21 +__func__.26173: + .string "flash_erase_block_en" + .zero 3 + .type random_seed, %object + .size random_seed, 256 +random_seed: + .hword 22378 + .hword 1512 + .hword 25245 + .hword 17827 + .hword 25756 + .hword 19440 + .hword 9026 + .hword 10030 + .hword 29528 + .hword 20467 + .hword 29676 + .hword 24432 + .hword 31328 + .hword 6872 + .hword 13426 + .hword 13842 + .hword 8783 + .hword 1108 + .hword 782 + .hword 28837 + .hword 30729 + .hword 9505 + .hword 18676 + .hword 23085 + .hword 18730 + .hword 1085 + .hword 32609 + .hword 14697 + .hword 20858 + .hword 15170 + .hword 30365 + .hword 1607 + .hword 32298 + .hword 4995 + .hword 18905 + .hword 1976 + .hword 9592 + .hword 20204 + .hword 17443 + .hword 13615 + .hword 23330 + .hword 29369 + .hword 13947 + .hword 9398 + .hword 32398 + .hword 8984 + .hword 27600 + .hword 21785 + .hword 6019 + .hword 6311 + .hword 31598 + .hword 30210 + .hword 19327 + .hword 13896 + .hword 11347 + .hword 27545 + .hword 3107 + .hword 26575 + .hword 32270 + .hword 19852 + .hword 20601 + .hword 8349 + .hword 9290 + .hword 29819 + .hword 13579 + .hword 3661 + .hword 28676 + .hword 27331 + .hword 32574 + .hword 8693 + .hword 31253 + .hword 9081 + .hword 5399 + .hword 6842 + .hword 20087 + .hword 5537 + .hword 1274 + .hword 11617 + .hword 9530 + .hword 4866 + .hword 8035 + .hword 23219 + .hword 1178 + .hword 23272 + .hword 7383 + .hword 18944 + .hword 12488 + .hword 12871 + .hword 29340 + .hword 20532 + .hword 11022 + .hword 22514 + .hword 228 + .hword 22363 + .hword 24978 + .hword 14584 + .hword 12138 + .hword 3092 + .hword 17916 + .hword 16863 + .hword 14554 + .hword 31457 + .hword 29474 + .hword 25311 + .hword 24121 + .hword 3684 + .hword 28037 + .hword 22865 + .hword 22839 + .hword 25217 + .hword 13217 + .hword 27186 + .hword 14938 + .hword 11180 + .hword 29754 + .hword 24180 + .hword 15150 + .hword 32455 + .hword 20434 + .hword 23848 + .hword 29983 + .hword 16120 + .hword 14769 + .hword 20041 + .hword 29803 + .hword 28406 + .hword 17598 + .hword 28087 + .type __func__.26979, %object + .size __func__.26979, 13 +__func__.26979: + .string "buf_add_tail" + .zero 3 + .type __func__.26992, %object + .size __func__.26992, 10 +__func__.26992: + .string "buf_alloc" + .zero 6 + .type __func__.27006, %object + .size __func__.27006, 16 +__func__.27006: + .string "buf_remove_free" + .type zftl_debug_proc_fops, %object + .size zftl_debug_proc_fops, 96 +zftl_debug_proc_fops: + .zero 8 + .xword zftl_debug_proc_open + .xword seq_read + .zero 8 + .xword zftl_debug_proc_write + .xword seq_lseek + .xword single_release + .zero 40 + .type __func__.45877, %object + .size __func__.45877, 12 +__func__.45877: + .string "gc_add_sblk" + .zero 4 + .type __func__.45969, %object + .size __func__.45969, 19 +__func__.45969: + .string "gc_write_completed" + .zero 5 + .type __func__.46575, %object + .size __func__.46575, 18 +__func__.46575: + .string "ftl_alloc_sys_blk" + .zero 6 + .type __func__.46585, %object + .size __func__.46585, 17 +__func__.46585: + .string "ftl_free_sys_blk" + .zero 7 + .type __func__.46706, %object + .size __func__.46706, 23 +__func__.46706: + .string "ftl_get_ppa_from_index" + .zero 1 + .type __func__.46746, %object + .size __func__.46746, 22 +__func__.46746: + .string "ftl_get_new_free_page" + .zero 2 + .type __func__.46757, %object + .size __func__.46757, 22 +__func__.46757: + .string "ftl_ext_alloc_new_blk" + .zero 2 + .type __func__.46026, %object + .size __func__.46026, 16 +__func__.46026: + .string "gc_free_src_blk" + .type __func__.45620, %object + .size __func__.45620, 14 +__func__.45620: + .string "ftl_write_buf" + .zero 2 + .type __func__.45665, %object + .size __func__.45665, 18 +__func__.45665: + .string "zftl_add_read_buf" + .align 3 + .set .LANCHOR4,. + 0 + .type __func__.47179, %object + .size __func__.47179, 21 +__func__.47179: + .string "pm_select_ram_region" + .zero 3 + .type __func__.26704, %object + .size __func__.26704, 20 +__func__.26704: + .string "flash_die_info_init" + .zero 4 + .type __func__.45552, %object + .size __func__.45552, 17 +__func__.45552: + .string "lpa_rebuild_hash" + .zero 7 + .type __func__.46444, %object + .size __func__.46444, 20 +__func__.46444: + .string "zftl_sblk_list_init" + .zero 4 + .type __func__.47111, %object + .size __func__.47111, 13 +__func__.47111: + .string "pm_free_sblk" + .zero 3 + .type __func__.27042, %object + .size __func__.27042, 21 +__func__.27042: + .string "flash_info_data_init" + .zero 3 + .type __func__.26800, %object + .size __func__.26800, 11 +__func__.26800: + .string "nandc_init" + .zero 5 + .type samsung_14nm_slc_rr, %object + .size samsung_14nm_slc_rr, 26 +samsung_14nm_slc_rr: + .byte 0 + .byte 10 + .byte -10 + .byte 20 + .byte -20 + .byte 30 + .byte -30 + .byte 40 + .byte -40 + .byte 50 + .byte -50 + .byte 60 + .byte -60 + .byte -70 + .byte -80 + .byte -90 + .byte -100 + .byte -110 + .byte -120 + .byte -9 + .byte 70 + .byte 80 + .byte 90 + .byte -125 + .byte -115 + .byte 100 + .zero 6 + .type samsung_14nm_mlc_rr, %object + .size samsung_14nm_mlc_rr, 104 +samsung_14nm_mlc_rr: + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte -4 + .byte 3 + .byte -4 + .byte -6 + .byte 6 + .byte 0 + .byte 6 + .byte -10 + .byte -10 + .byte 4 + .byte -10 + .byte 16 + .byte 12 + .byte -4 + .byte 12 + .byte 8 + .byte -16 + .byte 10 + .byte -16 + .byte 24 + .byte 18 + .byte -14 + .byte 18 + .byte -4 + .byte -22 + .byte -16 + .byte -22 + .byte -8 + .byte 24 + .byte -9 + .byte 24 + .byte 8 + .byte -28 + .byte -4 + .byte -28 + .byte 16 + .byte 30 + .byte 10 + .byte 30 + .byte 10 + .byte -34 + .byte 6 + .byte -34 + .byte 0 + .byte 36 + .byte -8 + .byte 36 + .byte -8 + .byte -40 + .byte -2 + .byte -40 + .byte -20 + .byte -46 + .byte -4 + .byte -46 + .byte -30 + .byte 3 + .byte 0 + .byte 3 + .byte -3 + .byte -2 + .byte -4 + .byte -2 + .byte -6 + .byte -4 + .byte -4 + .byte -4 + .byte -10 + .byte -6 + .byte -8 + .byte -6 + .byte -14 + .byte -9 + .byte -8 + .byte -9 + .byte -18 + .byte -52 + .byte 22 + .byte -52 + .byte 10 + .byte 42 + .byte 4 + .byte 42 + .byte 4 + .byte 48 + .byte -9 + .byte 48 + .byte 4 + .byte -58 + .byte 12 + .byte -58 + .byte 0 + .byte -64 + .byte -24 + .byte -64 + .byte -6 + .byte 9 + .byte 18 + .byte 9 + .byte 8 + .type __func__.26085, %object + .size __func__.26085, 19 +__func__.26085: + .string "flash_read_page_en" + .zero 5 + .type __func__.26211, %object + .size __func__.26211, 26 +__func__.26211: + .string "flash_start_tlc_page_prog" + .zero 6 + .type __func__.26222, %object + .size __func__.26222, 29 +__func__.26222: + .string "flash_start_3d_mlc_page_prog" + .zero 3 + .type __func__.26240, %object + .size __func__.26240, 22 +__func__.26240: + .string "flash_start_page_prog" + .zero 2 + .type __func__.26264, %object + .size __func__.26264, 31 +__func__.26264: + .string "flash_complete_plane_page_read" + .zero 1 + .type __func__.26289, %object + .size __func__.26289, 25 +__func__.26289: + .string "flash_complete_page_read" + .zero 7 + .type __func__.46944, %object + .size __func__.46944, 31 +__func__.46944: + .string "queue_wait_first_req_completed" + .zero 1 + .type __func__.46998, %object + .size __func__.46998, 15 +__func__.46998: + .string "sblk_prog_page" + .zero 1 + .type __func__.47025, %object + .size __func__.47025, 15 +__func__.47025: + .string "sblk_read_page" + .zero 1 + .type __func__.45924, %object + .size __func__.45924, 21 +__func__.45924: + .string "gc_check_data_one_wl" + .zero 3 + .type __func__.26146, %object + .size __func__.26146, 19 +__func__.26146: + .string "flash_prog_page_en" + .zero 5 + .type __func__.46821, %object + .size __func__.46821, 14 +__func__.46821: + .string "ftl_prog_page" + .zero 2 + .type __func__.46478, %object + .size __func__.46478, 15 +__func__.46478: + .string "ftl_info_flush" + .zero 1 + .type __func__.46783, %object + .size __func__.46783, 19 +__func__.46783: + .string "ftl_ext_info_flush" + .zero 5 + .type __func__.46795, %object + .size __func__.46795, 18 +__func__.46795: + .string "ftl_ext_info_init" + .zero 6 + .type __func__.46533, %object + .size __func__.46533, 15 +__func__.46533: + .string "ftl_alloc_sblk" + .zero 1 + .type __func__.47151, %object + .size __func__.47151, 17 +__func__.47151: + .string "pm_alloc_new_blk" + .zero 7 + .type __func__.47161, %object + .size __func__.47161, 14 +__func__.47161: + .string "pm_write_page" + .zero 2 + .type __func__.27064, %object + .size __func__.27064, 17 +__func__.27064: + .string "flash_info_flush" + .zero 7 + .type __func__.27027, %object + .size __func__.27027, 20 +__func__.27027: + .string "flash_info_blk_init" + .zero 4 + .type __func__.26759, %object + .size __func__.26759, 16 +__func__.26759: + .string "nand_flash_init" + .type __func__.46648, %object + .size __func__.46648, 16 +__func__.46648: + .string "ftl_sysblk_dump" + .type __func__.46673, %object + .size __func__.46673, 23 +__func__.46673: + .string "ftl_open_sblk_recovery" + .zero 1 + .type __func__.47095, %object + .size __func__.47095, 16 +__func__.47095: + .string "load_l2p_region" + .type __func__.47135, %object + .size __func__.47135, 6 +__func__.47135: + .string "pm_gc" + .zero 2 + .type __func__.45867, %object + .size __func__.45867, 12 +__func__.45867: + .string "gc_recovery" + .zero 4 + .type __func__.45956, %object + .size __func__.45956, 22 +__func__.45956: + .string "gc_update_l2p_map_new" + .zero 2 + .type __func__.46070, %object + .size __func__.46070, 16 +__func__.46070: + .string "gc_scan_src_blk" + .type __func__.46131, %object + .size __func__.46131, 20 +__func__.46131: + .string "gc_scan_static_data" + .zero 4 + .type __func__.46194, %object + .size __func__.46194, 18 +__func__.46194: + .string "gc_block_vpn_scan" + .zero 6 + .type __func__.46624, %object + .size __func__.46624, 14 +__func__.46624: + .string "ftl_sblk_dump" + .zero 2 + .type __func__.45698, %object + .size __func__.45698, 10 +__func__.45698: + .string "zftl_read" + .zero 6 + .type __func__.46727, %object + .size __func__.46727, 19 +__func__.46727: + .string "ftl_update_l2p_map" + .zero 5 + .type __func__.45602, %object + .size __func__.45602, 17 +__func__.45602: + .string "ftl_write_commit" + .zero 7 + .type __func__.45999, %object + .size __func__.45999, 16 +__func__.45999: + .string "gc_do_copy_back" + .type __func__.46249, %object + .size __func__.46249, 11 +__func__.46249: + .string "zftl_do_gc" + .zero 5 + .type __func__.45730, %object + .size __func__.45730, 13 +__func__.45730: + .string "_ftl_discard" + .section .rodata.str1.1,"aMS",@progbits,1 +.LC0: + .string "\n!!!!! error @ func:%s - line:%d\n" +.LC1: + .string "FTL version: 6.0.24 20210716" +.LC2: + .string "%s\n" +.LC3: + .string "zftl_debug:0x%x\n" +.LC4: + .string "...%s enter...\n" +.LC5: + .string "No.0 FLASH ID: %x %x %x %x %x %x\n" +.LC6: + .string "DiePerChip: %x\n" +.LC7: + .string "SectPerPage: %x\n" +.LC8: + .string "PagePerBlk: %x\n" +.LC9: + .string "Cell: %x\n" +.LC10: + .string "PlanePerDie: %x\n" +.LC11: + .string "BlkPerPlane: %x\n" +.LC12: + .string "die gap: %x\n" +.LC13: + .string "lsbMode: %x\n" +.LC14: + .string "ReadRetryMode: %x\n" +.LC15: + .string "ecc: %x\n" +.LC16: + .string "idb ecc: %x\n" +.LC17: + .string "OptMode: %x\n" +.LC18: + .string "g_nand_max_die: %x\n" +.LC19: + .string "Cache read enable: %x\n" +.LC20: + .string "Cache random read enable: %x\n" +.LC21: + .string "Cache prog enable: %x\n" +.LC22: + .string "multi read enable: %x\n" +.LC23: + .string "multi prog enable: %x\n" +.LC24: + .string "interleave enable: %x\n" +.LC25: + .string "read retry enable: %x\n" +.LC26: + .string "randomizer enable: %x\n" +.LC27: + .string "SDR enable: %x\n" +.LC28: + .string "ONFI enable: %x\n" +.LC29: + .string "TOGGLE enable: %x\n" +.LC30: + .string "g_flash_slc_mode: %x %x\n" +.LC31: + .string "MultiPlaneProgCmd: %x %x\n" +.LC32: + .string "MultiPlaneReadCmd: %x %x\n" +.LC33: + .string "g_flash_toggle_mode_en: %x\n" +.LC34: + .string "nand sdr mode %x\n" +.LC35: + .string "nand ddr mode %x\n" +.LC36: + .string "No.%d FLASH ID:%x %x %x %x %x %x\n" +.LC37: + .string "otp:%x %x %x %x\n" +.LC38: + .string "bad block test:%x %x\n" +.LC39: + .string "flash_erase_duplane_block %x %x %x\n" +.LC40: + .string "flash_erase_duplane_block pageadd = %x status = %x\n" +.LC41: + .string "flash_erase_block %x %x %x\n" +.LC42: + .string "flash_erase_block %d block = %x status = %x\n" +.LC43: + .string "erase done: %x\n" +.LC44: + .string "sblk_queue_head = %d\n" +.LC45: + .string "sblk_read_completed_queue_head = %d\n" +.LC46: + .string "sblk_gc_write_completed_queue_head = %d\n" +.LC47: + .string "sblk_write_completed_queue_head = %d\n" +.LC48: + .string "p_free_buf_head = %d\n" +.LC49: + .string "free_buf_count = %d\n" +.LC50: + .string "buf = %d, next=%d, flag=%d gc_write_flag=%d, lun_state=%d, op_status = %d lpa=%x, ppa=%x\n" +.LC51: + .string "flash_mask_bad_block %d %d\n" +.LC52: + .string "zftl_debug" +.LC53: + .string "FLASH ID: %x %x %x %x %x %x\n" +.LC54: + .string "density: %d MB\n" +.LC55: + .string "device density: %d MB\n" +.LC56: + .string "FTL INFO:\n" +.LC57: + .string "max_lpn = 0x%x\n" +.LC58: + .string "density = 0x%x\n" +.LC59: + .string "slc vpn = 0x%x\n" +.LC60: + .string "xlc vpn = 0x%x\n" +.LC61: + .string "free slc blk = 0x%x\n" +.LC62: + .string "free xlc blk = 0x%x\n" +.LC63: + .string "free mix blk = 0x%x\n" +.LC64: + .string "slc data blk = 0x%x\n" +.LC65: + .string "slc cache blk = 0x%x\n" +.LC66: + .string "xlc data blk = 0x%x\n" +.LC67: + .string "free buf = %d, %d, %d\n" +.LC68: + .string "bad blk = %d %d\n" +.LC69: + .string "TBW = %d MB\n" +.LC70: + .string "TBR = %d MB\n" +.LC71: + .string "POC = %d\n" +.LC72: + .string "PLC = %d\n" +.LC73: + .string "sys run time = %d S\n" +.LC74: + .string "slc mode = %x %x %x\n" +.LC75: + .string "prog err = %d\n" +.LC76: + .string "read err = %d\n" +.LC77: + .string "GC XLC page = %d\n" +.LC78: + .string "GC SLC page = %d\n" +.LC79: + .string "discard page = 0x%x\n" +.LC80: + .string "version = %d\n" +.LC81: + .string "acblk = 0x%x %d %d\n" +.LC82: + .string "tmblk = 0x%x %d %d\n" +.LC83: + .string "gcblk = 0x%x %d %d\n" +.LC84: + .string "slc ec = %d, %d, %d, %d, %d\n" +.LC85: + .string "xlc ec = %d, %d, %d, %d, %d\n" +.LC86: + .string "gc free blk th = %d\n" +.LC87: + .string "gc vpn th = %d %d %d %d %d\n" +.LC88: + .string "swl blk = %x %x %x %x\n" +.LC89: + .string "rf info = %x %x %x %x %x\n" +.LC90: + .string "gc_add_sblk = %d, %d, %d, %d, %d, %d, %d\n" +.LC91: + .string "gc_add_sblk = %d, %d, %d\n" +.LC92: + .string "gc_add_sblk = %d, %d, %d,last update:%d, %d\n" +.LC93: + .string "gc_add_sblk = %d, %d, %d, %d, %d, %d\n" +.LC94: + .string "gc_mark_bad_ppa %d %x %x\n" +.LC95: + .string "status: %x, ppa: %x\n" +.LC96: + .string "%d gc_free_temp_buf buf id= %x\n" +.LC97: + .string "gc: b:%x,p:%x,i:%x; free buf=%d %d free slc th: %d\n" +.LC98: + .string "zftl_get_gc_node cache = %x index = %d vpn = %x\n" +.LC99: + .string "gc_search_src_blk mode = %x, src mode = %x, count= %d %d\n" +.LC100: + .string "swl_tlc_free_mini_ec_blk alloc sblk %x\n" +.LC101: + .string "zftl_get_free_sblk %x %d, %p %d %d\n" +.LC102: + .string "zftl_gc_get_free_sblk %x %x %x, %d %d %d\n" +.LC103: + .string "swl_slc_free_mini_ec_blk alloc sblk %x\n" +.LC104: + .string "list count:%p %d\n" +.LC105: + .string "%d: node:%x %x %x %x, %d %d %d %d %d\n" +.LC106: + .string "ftl_vpn_decrement %x = %d, %d\n" +.LC107: + .string "mask bad block:cs %x %x block: %x %x\n" +.LC108: + .string "gc_free_bad_sblk 0x%x\n" +.LC109: + .string "swl_slc_free_mini_ec_blk sblk %x\n" +.LC110: + .string "gc_free_src_blk = %x, vpn = %d\n" +.LC111: + .string "gc_free_src_blk %x, %d\n" +.LC112: + .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" +.LC113: + .string "totle w: %d MB,r: %d MB %d dv:0x%X,poc:%d\n" +.LC114: + .string "gc xlc page: %d,gc slc page: %d, tmp w: %d MB\n" +.LC115: + .string "slc ec: %d,%d,%d,%d,%d,tlc ec: %d,%d,%d,%d,%d\n" +.LC116: + .string "gc th: tlc_tlc: %d tlc_slc: %d slc_slc: %d slc_tlc:%d free_th: %d\n" +.LC117: + .string "swl : %x %x %x %x %x %x\n" +.LC118: + .string "ftl prog error =%x, lpa = %x, ppa= %x\n" +.LC119: + .string "ftl re prog: lpa = %x, ppa= %x\n" +.LC120: + .string "dump_sblk_queue: %d\n" +.LC121: + .string "buf id= %d state = %d ppa = %x\n" +.LC122: + .string "%s %d %d\n" +.LC123: + .string "gc_static_wearleveling: min blk: %x,sec=%d,xec = %d ,mode=%d, func=%x, bbt=%x vpn = %d\n" +.LC124: + .string "gc_static_wearleveling: min slc blk: %x,sec=%d,xec = %d ,mode=%d, func=%x, bbt=%x vpn = %d\n" +.LC125: + .string "gc_static_wearleveling: min tlc blk: %x,sec=%d,xec = %d ,mode=%d, func=%x, bbt=%x vpn = %d\n" +.LC126: + .string "gc_static_wearleveling: max slc blk: %x,sec=%d,xec = %d ,mode=%d, func=%x, bbt=%x vpn = %d\n" +.LC127: + .string "gc_static_wearleveling: max xlc blk: %x,sec=%d,xec = %d ,mode=%d, func=%x, bbt=%x vpn = %d\n" +.LC128: + .string "gc_static_wearleveling: slc blk: %x, tlc blk: %d avg slc ec: %d, avg tlc ec: %d \n" +.LC129: + .string "gc_static_wearleveling: min slc ec: %x, min tlc ec: %d max slc ec: %d, max tlc ec: %d; %d %d\n" +.LC130: + .string "swl add tlc gc = %x, %d, %d, %d, %d, %d\n" +.LC131: + .string "swl add slc gc = %x, %d, %d, %d, %d, %d\n" +.LC132: + .string "free blk vpn error: %x %x\n" +.LC133: + .string "GC PM block %x %x %x %d\n" +.LC134: + .string "ftl_free_no_use_map_blk %x %x %x %d\n" +.LC135: + .string "...%d @ %s\n" +.LC136: + .string "...%s enter... %p\n" +.LC137: + .string "0:%x %x %x %x %x\n" +.LC138: + .string "g_nandc_ver...%d\n" +.LC139: + .string "rk_ftl_de_init %x\n" +.LC140: + .string "\0013" +.LC141: + .string "otp error! %d" +.LC142: + .string "rr" +.LC143: + .string "flash_abort_clear = %d\n" +.LC144: + .string "%d mtrans_cnt = %d page_num = %d\n" +.LC145: + .string "%d flReg.d32=%x %x\n" +.LC146: + .string "nandc:" +.LC147: + .string "nandc_xfer_done read error %x\n" +.LC148: + .string "dqs data abort %x\n" +.LC149: + .string "dqs data timeout %x\n" +.LC150: + .string "xfer error %x\n" +.LC151: + .string "MT %d row=%x,last status %d,status = %d\n" +.LC152: + .string "MT RR %d row=%x,count %d,status=%d\n" +.LC153: + .string "toshiba SRR %d row=%x, status=%d\n" +.LC154: + .string "toshiba TRR %d row=%x, status=%d\n" +.LC155: + .string "toshiba RR %d row=%x,count %d,status=%d\n" +.LC156: + .string "YMTC RR %d row=%x,count %d,status=%d\n" +.LC157: + .string "samsung SRR %d row=%x, status=%d\n" +.LC158: + .string "samsung TRR %d row=%x, status=%d\n" +.LC159: + .string "samsung RR %d row=%x,count %d,status=%d\n" +.LC160: + .string "hynix RR %d row=%x, count %d, status=%d\n" +.LC161: + .string "%d flash_ddr_tuning_read %x ecc=%d\n" +.LC162: + .string "sync para %d\n" +.LC163: + .string "DDR mode Read error %x %x\n" +.LC164: + .string "SDR mode Read %x %x ecc:%x\n" +.LC165: + .string "flash_read_page_en %x %x %x %x\n" +.LC166: + .string "flash_read_page_en %x %x error_ecc %d %d\n" +.LC167: + .string "flash_get_last_written_page: %x %x %x\n" +.LC168: + .string "flash_prog_page page_addr = %x status = %x\n" +.LC169: + .string "flash_prog_page %x %x %x\n" +.LC170: + .string "ymtc_flash_tlc_page_prog page_addr = %x status = %x\n" +.LC171: + .string "sblk_mlc_dump_prog wl_addr= %x ppa = %x ppa = %x\n" +.LC172: + .string "flash_complete_page_read %x %x error_ecc %d %d\n" +.LC173: + .string "read: %x %x %x %x\n" +.LC174: + .string "0set buf %d,status = %x, ppa = %x lun state = %d\n" +.LC175: + .string "prog end %x %x error_ecc %d %d\n" +.LC176: + .string "1set buf %d,status = %x, ppa = %x lun state = %d\n" +.LC177: + .string "dp prog end %x %x error_ecc %d %d\n" +.LC178: + .string "sblk_prog_page ppa = %x, count = %d\n" +.LC179: + .string "err: ppa = %x, status = %x, %x %x spare: %x %x %x %x\n" +.LC180: + .string "flash_prog_page_en:%x %x %x\n" +.LC181: + .string "w d:" +.LC182: + .string "w s:" +.LC183: + .string "spare" +.LC184: + .string "data" +.LC185: + .string "write error: %x\n" +.LC186: + .string "g_ftl_info_blk blk = %x, page = %x version = %d\n" +.LC187: + .string "%d %x @%d %x\n" +.LC188: + .string "ftl_info_blk_init %d %d %x\n" +.LC189: + .string "ftl info hash %x error\n" +.LC190: + .string "ink flag: %x\n" +.LC191: + .string "%s %d %d %x %x\n" +.LC192: + .string "ext info hash %x error\n" +.LC193: + .string "%s %x %x %x\n" +.LC194: + .string "ftl_sblk_dump_write = %x %d %d %d %d\n" +.LC195: + .string "blk= %x, page=%x, ppa = %x, status = %x, data:%x %x %x %x, spare: %x %x %x %x\n" +.LC196: + .string "ftl_sblk_dump_write2 = %x %d %d %d\n" +.LC197: + .string "ftl_sblk_dump_write = %x %x\n" +.LC198: + .string "ftl_sblk_dump_write done = %x\n" +.LC199: + .string "%x: ink_scaned_blk_num %x\n" +.LC200: + .string "ftl_ink_check_sblk = %x %d %d\n" +.LC201: + .string "ftl_ink_check_sblk = %x %d %d end\n" +.LC202: + .string "alloc sblk %x %d\n" +.LC203: + .string "blk %x is bad block\n" +.LC204: + .string "pm_alloc_new_blk: %x %x %x %x\n" +.LC205: + .string "pm_write_page write error: %x\n" +.LC206: + .string "finfo:" +.LC207: + .string "flash_info_flush id = %x, page = %x\n" +.LC208: + .string "sys_info_flush error:%x\n" +.LC209: + .string "...%d @ %s %d %p\n" +.LC210: + .string "no sys info %x\n" +.LC211: + .string "l2p:" +.LC212: + .string "saved_active_page = %x\n" +.LC213: + .string "saved_active_plane = %x\n" +.LC214: + .string "sblk = %x\n" +.LC215: + .string "phy_blk = %x %x\n" +.LC216: + .string "num_planes = %x\n" +.LC217: + .string "recovery blk=%x, page=%x, ppa = %x, status = %x, hash:%x\n" +.LC218: + .string "data:" +.LC219: + .string "sblk = %x, vpn0 = %d, vpn1 = %d\n" +.LC220: + .string "dump_write_lpa = %x %x %x %x\n" +.LC221: + .string "dump write new ppa = %x, last ppa = %x lpa = %x\n" +.LC222: + .string "dump write = %x %x %x\n" +.LC223: + .string "dump write hash update = %x %x %x\n" +.LC224: + .string "free_buf_count: %d\n" +.LC225: + .string "g_ftl_info_blk blk:0x%x, index:0x%x, page:0x%x\n" +.LC226: + .string "ftl_ext_info_blk blk:0x%x, page:0x%x\n" +.LC227: + .string "ac_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, page_index:0x%x\n" +.LC228: + .string "tmp_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, page_index:0x%x\n" +.LC229: + .string "gc_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, page_index:0x%x\n" +.LC230: + .string "lpa:" +.LC231: + .string "vpn:" +.LC232: + .string "sblk:" +.LC233: + .string "lpa_hash:" +.LC234: + .string "lpa_hash_index:" +.LC235: + .string "%s w error lpn = %x, max ppa = %d\n" +.LC236: + .string "region_id = %d, pm_max_region = %d\n" +.LC237: + .string "load_l2p_region no ppa = %x , %x, all setting 0xff....\n" +.LC238: + .string "load_l2p_region = %x,%x,%x, %x\n" +.LC239: + .string "pm_ppa:" +.LC240: + .string "spare:" +.LC241: + .string "pm_init posr %x %x %x\n" +.LC242: + .string "pm_init recovery %x %x %x\n" +.LC243: + .string "pm_init hash %x error\n" +.LC244: + .string "pm_log2phys lpn = %d, max lpn = %d\n" +.LC245: + .string "ppa = %x, status = %x, data:%x %x %x %x, spare: %x %x %x %x\n" +.LC246: + .string "ppa = %x, status = %x, %x %x spare: %x %x %x %x\n" +.LC247: + .string "gc_recovery: %x vpn = %x\n" +.LC248: + .string "gc_update_l2p_map_new sblk %x\n" +.LC249: + .string "gc_update_l2p_map_new: %x %x %x\n" +.LC250: + .string "lpa: %x %x %x\n" +.LC251: + .string "gc_update_l2p_map_new: %x vpn = %x vpn1 = %x done\n" +.LC252: + .string "gc_scan_src_blk = %x, vpn = %d\n" +.LC253: + .string "js hash error:%x %x %x\n" +.LC254: + .string "gc_scan_src_blk = %x, s vpn0 = %d, c vpn1 = %d\n" +.LC255: + .string "gc_block_vpn_scan = %x, s vpn0 = %d, c vpn1 = %d f:%d\n" +.LC256: + .string "ftl_sblk_dump = %x %d %d %d %d\n" +.LC257: + .string "ftl_sblk_dump = %x %x %x %x\n" +.LC258: + .string "page_addr = %x, lpa=%x vpn = %d\n" +.LC259: + .string "index= %x, lpa=%x\n" +.LC260: + .string "block = %x, vpn=%x check vpn = %x\n" +.LC261: + .string "ftl_read %x %x %x\n" +.LC262: + .string "ftl_read refresh =%x, lpa = %x, ppa= %x\n" +.LC263: + .string "id=%d, status = %x, lpa = %x, ppa = %x spare = %x %x %x %x\n" +.LC264: + .string "zftl debug cmd: %s\n" +.LC265: + .string "cmd:" +.LC266: + .string "dumpl2p" +.LC267: + .string "pm l2p:" +.LC268: + .string "pm blk:" +.LC269: + .string "dumppm:" +.LC270: + .string "p_cmd: %s\n" +.LC271: + .string "pm ram = %x, %x\n" +.LC272: + .string "ram:" +.LC273: + .string "pm:" +.LC274: + .string "dumpsys" +.LC275: + .string "dumplist:" +.LC276: + .string "vpncheck" +.LC277: + .string "dumpppa:" +.LC278: + .string "dumpblk:" +.LC279: + .string "setzdebug:" +.LC280: + .string "lpa2ppa:" +.LC281: + .string "lpa: %x--> ppa: %x\n" +.LC282: + .string "help:\n" +.LC283: + .string "1. echo dumpl2p > /proc/zftl_debug\n" +.LC284: + .string "2. echo dumppm:x > /proc/zftl_debug\n" +.LC285: + .string "3. echo dumpsys > /proc/zftl_debug\n" +.LC286: + .string "4. echo dumpppa:x > /proc/zftl_debug\n" +.LC287: + .string "5. echo vpncheck > /proc/zftl_debug\n" +.LC288: + .string "6. echo setzdebug:x > /proc/zftl_debug\n" +.LC289: + .string "7. echo dumplist:x > /proc/zftl_debug\n" +.LC290: + .string "8. echo lpa2ppa:x> /proc/zftl_debug\n" +.LC291: + .string "ftl_update_l2p_map: %x %x %x\n" +.LC292: + .string "ftl_update_l2p_map" +.LC293: + .string "lpa_tbl:" +.LC294: + .string "sblk %x vpn: %d %d\n" +.LC295: + .string "error gc_add_sblk: %x\n" +.LC296: + .string "%d read error: ppa:%x, lpa:%x, status:%x\n" +.LC297: + .string "gc page in buf: lpa %x ppa = %x pageindex= %x\n" +.LC298: + .string "gc_do_copy_back: lpa %x des_ppa = %x %x gc_ppa= %x page_index= %d\n" +.LC299: + .string "gc %d: %d %d %d %d %d %d %d\n" +.LC300: + .string "GC_STATE_SCAN_ALL_PAGE = %x, vpn0 = %d, vpn1 = %d\n" +.LC301: + .string "gc free %x, %d\n" +.LC302: + .string "_c_user_data_density := %d\n" +.LC303: + .string "_c_totle_phy_density := %d\n" +.LC304: + .string "_c_totle_log_page := %d\n" +.LC305: + .string "_c_totle_data_density := %d\n" +.LC306: + .string "_c_ftl_pm_page_num := %d\n" +.LC307: + .string "_c_ftl_byte_pre_page := %d\n" +.LC308: + .string "_c_max_pm_sblk := %d\n" +.LC309: + .string "_min_slc_super_block := %d\n" +.LC310: + .string "_max_xlc_super_block := %d\n" +.LC311: + .string "gp_ftl_ext_info %p %p %p\n" +.LC312: + .string "flash info size: %d %d %d\n" +.LC313: + .string "ftl_init %x\n" +.LC314: + .string "ftlwrite %x %x %x %x\n" +.LC315: + .string "ftl_discard:(%x, %x, %x, %x)\n" +.LC316: + .string "id_block_prog_msb_ff_data slc page = %d pageadd=%x %x\n" +.LC317: + .string "write_idblock fix data %x %x\n" +.LC318: + .string "idblk:" +.LC319: + .string "write_idblock totle_sec %x %x\n" +.LC320: + .string "prog page: %x %x %x, %p %x %x %x\n" +.LC321: + .string "read page: %x %x %x %x\n" +.LC322: + .string "wl_lba %p %x %x %x\n" +.LC323: + .string "return ret = %lx\n" +.LC324: + .string "\0013vendor storage %x,%x,%x\n"