From 21dbd7a7f57d0de2a8030e178d6c6d1c846cfbc2 Mon Sep 17 00:00:00 2001 From: Jon Lin Date: Fri, 12 Aug 2022 19:50:55 +0800 Subject: [PATCH] drivers: rkflash: Update to SFTL version: 5.0.58 20220814 1.Check the data in second page 2.Fix V7-T: undefined reference to `__stack_chk_guard' .. undefined reference to `__stack_chk_fail' Change-Id: Ie494a6c0898fdc58601c4db925afbc5ba1a7e09e Signed-off-by: Jon Lin --- drivers/rkflash/rk_sftl_arm_v7_thumb.S | 15679 +++++++++++------------ drivers/rkflash/rk_sftl_arm_v8.S | 3208 ++--- drivers/rkflash/rk_sftl_arm_v8_clang.S | 2034 ++- 3 files changed, 11119 insertions(+), 9802 deletions(-) diff --git a/drivers/rkflash/rk_sftl_arm_v7_thumb.S b/drivers/rkflash/rk_sftl_arm_v7_thumb.S index d4429f7f1db4..4d1177156efe 100644 --- a/drivers/rkflash/rk_sftl_arm_v7_thumb.S +++ b/drivers/rkflash/rk_sftl_arm_v7_thumb.S @@ -1,7 +1,7 @@ /* SPDX-License-Identifier: GPL-2.0 */ -/* Copyright (c) 2018 Rockchip Electronics Co. Ltd. - * date: 2020-09-25 +/* Copyright (c) 2018-2022 Rockchip Electronics Co. Ltd. + * date: 2022-08-15 */ .arch armv7-a .eabi_attribute 20, 1 @@ -14,12 +14,12 @@ .eabi_attribute 34, 1 .eabi_attribute 18, 2 .file "rk_sftl.c" + .text .syntax unified .syntax unified .global __aeabi_uidiv .thumb .syntax unified - .text .align 1 .syntax unified .thumb @@ -32,30 +32,30 @@ l2p_addr_tran: @ 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} - mov r8, r1 + mov r7, r1 ldr r3, .L3 - mov r9, r2 - ldr r6, [r0, #4] - ldrh r4, [r3, #8] - ldrh r5, [r3, #10] + mov r8, r2 + ldrh r9, [r3, #8] + ldrh r6, [r3, #10] ldrh r3, [r3, #14] - lsrs r7, r6, #10 - ubfx r6, r6, #0, #10 cmp r3, #4 - uxth r0, r7 itt eq - lsreq r4, r4, #1 - lsleq r5, r5, #1 - uxth r7, r7 - mov r1, r4 + lsleq r4, r6, #1 + lsreq r9, r9, #1 + mov r1, r9 it eq - uxtheq r5, r5 + uxtheq r6, r4 + ldr r4, [r0, #4] + lsrs r5, r4, #10 + ubfx r0, r4, #10, #16 bl __aeabi_uidiv uxth r0, r0 - mls r4, r0, r4, r7 - mla r4, r5, r4, r6 - str r4, [r8] - str r0, [r9] + uxth r5, r5 + ubfx r4, r4, #0, #10 + mls r5, r0, r9, r5 + mla r4, r6, r5, r4 + str r4, [r7] + str r0, [r8] movs r0, #0 pop {r3, r4, r5, r6, r7, r8, r9, pc} .L4: @@ -65,6 +65,65 @@ l2p_addr_tran: .fnend .size l2p_addr_tran, .-l2p_addr_tran .align 1 + .syntax unified + .thumb + .thumb_func + .fpu softvfp + .type _copy_from_user, %function +_copy_from_user: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + push {r3, r4, r5, r6, r7, lr} + .save {r3, r4, r5, r6, r7, lr} + mov r6, r0 + mov r4, r2 + mov r3, sp + bic r3, r3, #8160 + bic r3, r3, #31 + ldr r3, [r3, #8] + .syntax unified +@ 157 "./include/linux/uaccess.h" 1 + .syntax unified +adds r7, r1, r2; sbcscc r7, r7, r3; movcc r3, #0 +@ 0 "" 2 + .thumb + .syntax unified + cbnz r3, .L8 + bl arm_copy_from_user + mov r5, r0 + cbz r0, .L5 +.L6: + subs r4, r4, r5 + mov r2, r5 + adds r0, r6, r4 + movs r1, #0 + bl memset +.L5: + mov r0, r5 + pop {r3, r4, r5, r6, r7, pc} +.L8: + mov r5, r2 + b .L6 + .fnend + .size _copy_from_user, .-_copy_from_user + .section .rodata.str1.1,"aMS",%progbits,1 +.LC0: + .ascii "SFTL version: 5.0.58 20220814\000" +.LC1: + .ascii "\012%s\012\000" +.LC2: + .ascii "act blk: %x %x %x %x %x %x\012\000" +.LC3: + .ascii "buf blk: %x %x %x %x %x %x\012\000" +.LC4: + .ascii "tmp blk: %x %x %x %x %x %x\012\000" +.LC5: + .ascii "gc blk: %x %x %x %x %x %x\012\000" +.LC6: + .ascii "free blk: %x %x %x\012\000" + .text + .align 1 .global ftl_print_sblk_info .syntax unified .thumb @@ -78,69 +137,69 @@ ftl_print_sblk_info: push {r0, r1, r2, r3, r4, lr} .save {r4, lr} .pad #16 - ldr r4, .L6 - ldr r1, .L6+4 - ldr r0, .L6+8 + ldr r4, .L13 + ldr r1, .L13+4 + ldr r0, .L13+8 bl sftl_printk + ldr r0, .L13+12 ldrh r1, [r4, #24] - ldr r0, [r4, #72] - ldrb r3, [r4, #30] @ zero_extendqisi2 + ldr r3, [r4, #72] ldrh r2, [r4, #26] - ldrh r0, [r0, r1, lsl #1] - str r0, [sp, #8] - ldrh r0, [r4, #28] - str r0, [sp, #4] - ldrb r0, [r4, #32] @ zero_extendqisi2 - str r0, [sp] - ldr r0, .L6+12 + ldrh r3, [r3, r1, lsl #1] + str r3, [sp, #8] + ldrh r3, [r4, #28] + str r3, [sp, #4] + ldrb r3, [r4, #32] @ zero_extendqisi2 + str r3, [sp] + ldrb r3, [r4, #30] @ zero_extendqisi2 bl sftl_printk ldrh r1, [r4, #76] - ldr r0, [r4, #72] - ldrb r3, [r4, #82] @ zero_extendqisi2 + ldr r3, [r4, #72] ldrh r2, [r4, #78] - ldrh r0, [r0, r1, lsl #1] - str r0, [sp, #8] - ldrh r0, [r4, #80] - str r0, [sp, #4] - ldrb r0, [r4, #84] @ zero_extendqisi2 - str r0, [sp] - ldr r0, .L6+16 + ldr r0, .L13+16 + ldrh r3, [r3, r1, lsl #1] + str r3, [sp, #8] + ldrh r3, [r4, #80] + str r3, [sp, #4] + ldrb r3, [r4, #84] @ zero_extendqisi2 + str r3, [sp] + ldrb r3, [r4, #82] @ zero_extendqisi2 bl sftl_printk ldrh r1, [r4, #124] - ldr r0, [r4, #72] - ldrb r3, [r4, #130] @ zero_extendqisi2 + ldr r3, [r4, #72] ldrh r2, [r4, #126] - ldrh r0, [r0, r1, lsl #1] - str r0, [sp, #8] - ldrh r0, [r4, #128] - str r0, [sp, #4] - ldrb r0, [r4, #132] @ zero_extendqisi2 - str r0, [sp] - ldr r0, .L6+20 + ldr r0, .L13+20 + ldrh r3, [r3, r1, lsl #1] + str r3, [sp, #8] + ldrh r3, [r4, #128] + str r3, [sp, #4] + ldrb r3, [r4, #132] @ zero_extendqisi2 + str r3, [sp] + ldrb r3, [r4, #130] @ zero_extendqisi2 bl sftl_printk ldrh r1, [r4, #172] - ldr r0, [r4, #72] - ldrb r3, [r4, #178] @ zero_extendqisi2 + ldr r3, [r4, #72] ldrh r2, [r4, #174] - ldrh r0, [r0, r1, lsl #1] - str r0, [sp, #8] - ldrh r0, [r4, #176] - str r0, [sp, #4] - ldrb r0, [r4, #180] @ zero_extendqisi2 - str r0, [sp] - ldr r0, .L6+24 + ldr r0, .L13+24 + ldrh r3, [r3, r1, lsl #1] + str r3, [sp, #8] + ldrh r3, [r4, #176] + str r3, [sp, #4] + ldrb r3, [r4, #180] @ zero_extendqisi2 + str r3, [sp] + ldrb r3, [r4, #178] @ zero_extendqisi2 bl sftl_printk ldrh r3, [r4, #220] ldrh r2, [r4, #222] ldrh r1, [r4, #224] - ldr r0, .L6+28 + ldr r0, .L13+28 add sp, sp, #16 @ sp needed pop {r4, lr} b sftl_printk -.L7: +.L14: .align 2 -.L6: +.L13: .word .LANCHOR0 .word .LC0 .word .LC1 @@ -165,17 +224,17 @@ Ftl_log2: @ link register save eliminated. movs r1, #0 movs r2, #1 -.L9: - cmp r2, r0 +.L16: uxth r3, r1 + cmp r2, r0 add r1, r1, #1 - bls .L10 + bls .L17 subs r0, r3, #1 uxth r0, r0 bx lr -.L10: +.L17: lsls r2, r2, #1 - b .L9 + b .L16 .fnend .size Ftl_log2, .-Ftl_log2 .align 1 @@ -205,7 +264,7 @@ FtlSysBlkNumInit: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L13 + ldr r3, .L20 cmp r0, #24 it cc movcc r0, #24 @@ -215,15 +274,15 @@ FtlSysBlkNumInit: muls r2, r0, r2 subs r0, r1, r0 ldr r1, [r3, #248] - strh r0, [r3, #240] @ movhi - movs r0, #0 str r2, [r3, #236] + strh r0, [r3, #240] @ movhi subs r2, r1, r2 + movs r0, #0 str r2, [r3, #244] bx lr -.L14: +.L21: .align 2 -.L13: +.L20: .word .LANCHOR0 .fnend .size FtlSysBlkNumInit, .-FtlSysBlkNumInit @@ -241,114 +300,111 @@ FtlConstantsInit: @ 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 fp, r0 - ldrh r1, [fp, #14] + mov r7, r0 + ldr r4, .L33 ldrh r2, [r0] - ldr r4, .L26 + ldrh r1, [r7, #14] + ldrh r5, [r0, #2] + ldrh r3, [r7, #6] cmp r1, #4 - ldrh r6, [r0, #2] - ldrh r3, [fp, #6] ldrh r0, [r0, #4] strh r2, [r4, #252] @ movhi - strh r6, [r4, #254] @ movhi + strh r5, [r4, #254] @ movhi strh r0, [r4, #256] @ movhi strh r3, [r4, #242] @ movhi strh r1, [r4, #258] @ movhi - bne .L16 + bne .L23 lsrs r3, r3, #1 strh r3, [r4, #242] @ movhi movs r3, #8 strh r3, [r4, #258] @ movhi -.L17: - ldr r1, .L26+4 +.L24: + ldr r1, .L33+4 movs r3, #0 -.L18: - strb r3, [r3, r1] +.L25: + strb r3, [r1], #1 adds r3, r3, #1 cmp r3, #32 - bne .L18 - ldrh r5, [r4, #242] - movs r3, #5 - ldrh r0, [r4, #256] + bne .L25 + ldrh r6, [r4, #242] cmp r2, #1 - strh r3, [r4, #292] @ movhi - mov r7, #640 + ldrh r0, [r4, #256] mov r3, #0 - it eq - strheq r2, [r4, #292] @ movhi + it ne + movne r2, #5 strh r3, [r4, #294] @ movhi - smulbb r6, r6, r0 - strh r7, [r4, #296] @ movhi - smulbb r0, r0, r5 - uxth r6, r6 + strh r2, [r4, #292] @ movhi + mov r9, #640 + strh r9, [r4, #296] @ movhi + smulbb r5, r5, r0 + smulbb r0, r0, r6 + uxth r5, r5 + strh r5, [r4, #232] @ movhi uxth r0, r0 - strh r6, [r4, #232] @ movhi strh r0, [r4, #298] @ movhi bl Ftl_log2 - ldrh r9, [fp, #12] + ldrh fp, [r7, #12] ldrh r10, [r4, #258] strh r0, [r4, #300] @ movhi - strh r9, [r4, #302] @ movhi - smulbb r3, r6, r9 mov r0, r10 - strh r9, [r4, #304] @ movhi + strh fp, [r4, #302] @ movhi + smulbb r3, r5, fp + strh fp, [r4, #304] @ movhi strh r3, [r4, #306] @ movhi bl Ftl_log2 lsl r3, r10, #9 + mul r1, fp, r10 mov r8, r0 strh r0, [r4, #308] @ movhi - mul r1, r9, r10 uxth r3, r3 - mov r0, #5120 - asr r7, r7, r8 strh r3, [r4, #310] @ movhi - lsrs r3, r3, #8 + asr r9, r9, r8 add r8, r8, #9 + lsrs r3, r3, #8 strh r3, [r4, #312] @ movhi - adds r7, r7, #2 - ldrh r3, [fp, #20] + ldrh r3, [r7, #20] + mov r0, #5120 strh r3, [r4, #314] @ movhi - mul r3, r5, r6 - lsls r5, r5, #6 - asr r5, r5, r8 + mul r3, r6, r5 str r3, [r4, #248] - mul r3, r10, r3 - mul r3, r9, r3 + lsls r6, r6, #6 + add r9, r9, #2 + asr r6, r6, r8 + muls r3, r1, r3 asrs r3, r3, #11 str r3, [r4, #316] bl __aeabi_idiv - uxth r0, r0 - strh r5, [r4, #324] @ movhi - uxth r5, r5 - mov r1, r6 cmp r0, #4 - strh r7, [r4, #322] @ movhi - itet ls - movls r3, #4 - strhhi r0, [r4, #320] @ movhi - strhls r3, [r4, #320] @ movhi + strh r6, [r4, #324] @ movhi + uxth r6, r6 + itet le + movle r3, #4 + strhgt r0, [r4, #320] @ movhi + strhle r3, [r4, #320] @ movhi + mov r1, r5 mul r3, r6, r5 + strh r9, [r4, #322] @ movhi ldrh r0, [r4, #320] - adds r5, r5, #8 str r3, [r4, #328] bl __aeabi_uidiv - uxtah r0, r5, r0 - cmp r6, #1 - it eq - addeq r0, r0, #4 - str r0, [r4, #228] + cmp r5, #1 + uxtah r6, r6, r0 + ite ne + addne r6, r6, #8 + addeq r6, r6, #12 + str r6, [r4, #228] ldrh r0, [r4, #228] bl FtlSysBlkNumInit ldr r3, [r4, #228] + ldr r2, [r4, #244] movs r0, #0 - str r0, [r4, #340] str r3, [r4, #332] - ldr r3, [r4, #244] - lsls r2, r3, #2 ldrh r3, [r4, #302] + str r0, [r4, #340] muls r3, r2, r3 ldrh r2, [r4, #308] adds r2, r2, #9 + lsls r3, r3, #2 lsrs r3, r3, r2 adds r3, r3, #2 strh r3, [r4, #336] @ movhi @@ -361,19 +417,19 @@ FtlConstantsInit: adds r3, r3, #3 str r3, [r4, #328] pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L16: +.L23: cmp r1, #8 - bne .L17 + bne .L24 cmp r0, #1 itttt eq lsreq r3, r3, #1 strheq r3, [r4, #242] @ movhi moveq r3, #2 strheq r3, [r4, #256] @ movhi - b .L17 -.L27: + b .L24 +.L34: .align 2 -.L26: +.L33: .word .LANCHOR0 .word .LANCHOR0+260 .fnend @@ -390,27 +446,28 @@ IsBlkInVendorPart: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L35 - ldrh r3, [r2, #344] - cbz r3, .L34 + ldr r2, .L41 + mov r1, r0 + ldrh r0, [r2, #344] + cbz r0, .L35 ldr r3, [r2, #348] ldrh r2, [r2, #320] add r2, r3, r2, lsl #1 -.L30: +.L37: cmp r3, r2 - bne .L31 -.L34: + bne .L38 movs r0, #0 bx lr -.L31: - ldrh r1, [r3], #2 - cmp r0, r1 - bne .L30 +.L38: + ldrh r0, [r3], #2 + cmp r1, r0 + bne .L37 movs r0, #1 - bx lr -.L36: - .align 2 .L35: + bx lr +.L42: + .align 2 +.L41: .word .LANCHOR0 .fnend .size IsBlkInVendorPart, .-IsBlkInVendorPart @@ -442,16 +499,21 @@ sftl_get_density: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L39 + ldr r3, .L45 ldr r0, [r3, #340] bx lr -.L40: +.L46: .align 2 -.L39: +.L45: .word .LANCHOR0 .fnend .size sftl_get_density, .-sftl_get_density .global __aeabi_uidivmod + .section .rodata.str1.1 +.LC7: + .ascii "phyBlk = 0x%x die = %d block_in_die = 0x%x 0x%8x\012" + .ascii "\000" + .text .align 1 .global FtlBbmMapBadBlock .syntax unified @@ -466,40 +528,40 @@ FtlBbmMapBadBlock: push {r0, r1, r2, r4, r5, r6, r7, lr} .save {r4, r5, r6, r7, lr} .pad #12 - mov r5, r0 - ldr r4, .L42 - ldrh r7, [r4, #298] - mov r1, r7 + mov r6, r0 + ldr r5, .L48 + ldrh r4, [r5, #298] + mov r1, r4 bl __aeabi_uidiv - uxth r6, r0 - mov r1, r7 - mov r0, r5 + uxth r7, r0 + mov r1, r4 + mov r0, r6 bl __aeabi_uidivmod - add r2, r4, r6, lsl #2 + add r3, r5, r7, lsl #2 + ubfx r2, r1, #5, #11 + and r0, r1, #31 + movs r4, #1 + ldr r3, [r3, #380] + lsls r4, r4, r0 + ldr r0, [r3, r2, lsl #2] + orrs r4, r4, r0 + ldr r0, .L48+4 + str r4, [r3, r2, lsl #2] uxth r3, r1 - ldr r2, [r2, #380] - lsrs r1, r3, #5 - and r7, r3, #31 - movs r0, #1 - lsls r0, r0, r7 - ldr r7, [r2, r1, lsl #2] - orrs r0, r0, r7 - str r0, [r2, r1, lsl #2] - mov r2, r6 - str r0, [sp] - mov r1, r5 - ldr r0, .L42+4 + mov r2, r7 + mov r1, r6 + str r4, [sp] bl sftl_printk - ldrh r3, [r4, #358] + ldrh r3, [r5, #358] movs r0, #0 adds r3, r3, #1 - strh r3, [r4, #358] @ movhi + strh r3, [r5, #358] @ movhi add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, pc} -.L43: +.L49: .align 2 -.L42: +.L48: .word .LANCHOR0 .word .LC7 .fnend @@ -517,27 +579,27 @@ FtlBbmIsBadBlock: @ frame_needed = 0, uses_anonymous_args = 0 push {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} - mov r7, r0 - ldr r5, .L45 - ldrh r6, [r5, #298] - mov r1, r6 + mov r6, r0 + ldr r5, .L51 + ldrh r7, [r5, #298] + mov r1, r7 bl __aeabi_uidivmod - mov r0, r7 + mov r0, r6 uxth r4, r1 - mov r1, r6 + mov r1, r7 bl __aeabi_uidiv uxth r0, r0 lsrs r2, r4, #5 - add r5, r5, r0, lsl #2 and r4, r4, #31 + add r5, r5, r0, lsl #2 ldr r3, [r5, #380] ldr r0, [r3, r2, lsl #2] lsrs r0, r0, r4 and r0, r0, #1 pop {r3, r4, r5, r6, r7, pc} -.L46: +.L52: .align 2 -.L45: +.L51: .word .LANCHOR0 .fnend .size FtlBbmIsBadBlock, .-FtlBbmIsBadBlock @@ -567,31 +629,31 @@ FtlBbtCalcTotleCnt: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L55 + ldr r3, .L61 push {r4, r5, r6, lr} .save {r4, r5, r6, lr} movs r5, #0 mov r4, r5 - ldrh r2, [r3, #298] - ldrh r6, [r3, #254] - muls r6, r2, r6 -.L49: + ldrh r6, [r3, #298] + ldrh r3, [r3, #254] + muls r6, r3, r6 +.L55: uxth r0, r5 cmp r0, r6 - blt .L51 + blt .L57 mov r0, r4 pop {r4, r5, r6, pc} -.L51: +.L57: bl FtlBbmIsBadBlock - cbz r0, .L50 + cbz r0, .L56 adds r4, r4, #1 uxth r4, r4 -.L50: - adds r5, r5, #1 - b .L49 .L56: + adds r5, r5, #1 + b .L55 +.L62: .align 2 -.L55: +.L61: .word .LANCHOR0 .fnend .size FtlBbtCalcTotleCnt, .-FtlBbtCalcTotleCnt @@ -608,25 +670,25 @@ V2P_block: @ frame_needed = 0, uses_anonymous_args = 0 push {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} - mov r5, r1 - ldr r4, .L58 - mov r7, r0 - ldrh r6, [r4, #256] - mov r1, r6 + mov r4, r1 + ldr r5, .L64 + mov r6, r0 + ldrh r7, [r5, #256] + mov r1, r7 bl __aeabi_uidiv - ldrh r4, [r4, #298] - smulbb r5, r6, r5 - mov r1, r6 - smulbb r4, r4, r0 - mov r0, r7 + ldrh r5, [r5, #298] + smulbb r4, r7, r4 + mov r1, r7 + smulbb r5, r5, r0 + mov r0, r6 bl __aeabi_uidivmod - adds r0, r5, r1 - add r0, r0, r4 - uxth r0, r0 + add r4, r4, r1 + add r4, r4, r5 + uxth r0, r4 pop {r3, r4, r5, r6, r7, pc} -.L59: +.L65: .align 2 -.L58: +.L64: .word .LANCHOR0 .fnend .size V2P_block, .-V2P_block @@ -641,23 +703,23 @@ P2V_plane: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L61 + ldr r3, .L67 push {r4, r5, r6, lr} .save {r4, r5, r6, lr} - mov r6, r0 - ldrh r5, [r3, #256] + mov r5, r0 + ldrh r6, [r3, #256] ldrh r1, [r3, #298] bl __aeabi_uidiv - mov r1, r5 - smulbb r4, r0, r5 - mov r0, r6 + mov r1, r6 + smulbb r4, r0, r6 + mov r0, r5 bl __aeabi_uidivmod - add r1, r1, r4 - uxth r0, r1 + adds r0, r4, r1 + uxth r0, r0 pop {r4, r5, r6, pc} -.L62: +.L68: .align 2 -.L61: +.L67: .word .LANCHOR0 .fnend .size P2V_plane, .-P2V_plane @@ -674,17 +736,18 @@ P2V_block_in_plane: @ frame_needed = 0, uses_anonymous_args = 0 push {r4, lr} .save {r4, lr} - ldr r4, .L64 + ldr r4, .L70 ldrh r1, [r4, #298] bl __aeabi_uidivmod - uxth r0, r1 + mov r0, r1 ldrh r1, [r4, #256] + uxth r0, r0 bl __aeabi_uidiv uxth r0, r0 pop {r4, pc} -.L65: +.L71: .align 2 -.L64: +.L70: .word .LANCHOR0 .fnend .size P2V_block_in_plane, .-P2V_block_in_plane @@ -701,16 +764,16 @@ ftl_cmp_data_ver: @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. cmp r0, r1 - bls .L67 + bls .L73 subs r0, r0, r1 cmp r0, #-2147483648 ite hi movhi r0, #0 movls r0, #1 bx lr -.L67: - subs r0, r1, r0 - cmp r0, #-2147483648 +.L73: + subs r1, r1, r0 + cmp r1, #-2147483648 ite ls movls r0, #0 movhi r0, #1 @@ -729,14 +792,14 @@ FtlFreeSysBlkQueueEmpty: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L70 + ldr r3, .L76 ldrh r0, [r3, #418] clz r0, r0 lsrs r0, r0, #5 bx lr -.L71: +.L77: .align 2 -.L70: +.L76: .word .LANCHOR0 .fnend .size FtlFreeSysBlkQueueEmpty, .-FtlFreeSysBlkQueueEmpty @@ -752,15 +815,15 @@ FtlFreeSysBlkQueueFull: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L73 + ldr r3, .L79 ldrh r0, [r3, #418] sub r3, r0, #1024 rsbs r0, r3, #0 adcs r0, r0, r3 bx lr -.L74: +.L80: .align 2 -.L73: +.L79: .word .LANCHOR0 .fnend .size FtlFreeSysBlkQueueFull, .-FtlFreeSysBlkQueueFull @@ -775,41 +838,41 @@ FtlFreeSysBLkSort: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L84 + ldr r3, .L90 push {r4, r5, r6, lr} .save {r4, r5, r6, lr} ldrh r2, [r3, #418] - cbz r2, .L75 - ldrh r5, [r3, #2496] + cbz r2, .L81 + ldrh r4, [r3, #2496] movs r0, #0 ldrh r1, [r3, #414] - mov r6, r0 + mov r5, r0 ldrh r2, [r3, #416] - and r5, r5, #31 -.L77: - uxth r4, r0 - adds r0, r0, #1 - cmp r5, r4 - bgt .L78 - cbz r6, .L75 + and r4, r4, #31 +.L84: + uxth r6, r0 + cmp r4, r6 + bhi .L85 + cbz r5, .L81 strh r1, [r3, #414] @ movhi strh r2, [r3, #416] @ movhi -.L75: +.L81: pop {r4, r5, r6, pc} -.L78: - add r4, r3, r1, lsl #1 - adds r1, r1, #1 - ubfx r1, r1, #0, #10 - ldrh r6, [r4, #420] - add r4, r3, r2, lsl #1 - strh r6, [r4, #420] @ movhi - movs r6, #1 - add r2, r2, r6 - ubfx r2, r2, #0, #10 - b .L77 .L85: + add r5, r3, r1, lsl #1 + adds r1, r1, #1 + adds r0, r0, #1 + ubfx r1, r1, #0, #10 + ldrh r6, [r5, #420] + add r5, r3, r2, lsl #1 + adds r2, r2, #1 + strh r6, [r5, #420] @ movhi + ubfx r2, r2, #0, #10 + movs r5, #1 + b .L84 +.L91: .align 2 -.L84: +.L90: .word .LANCHOR0 .fnend .size FtlFreeSysBLkSort, .-FtlFreeSysBLkSort @@ -824,35 +887,36 @@ IsInFreeQueue: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L92 + ldr r1, .L98 push {r4, r5, lr} .save {r4, r5, lr} - ldrh r4, [r3, #418] + ldrh r4, [r1, #418] cmp r4, #1024 - beq .L90 - ldrh r5, [r3, #414] - movs r1, #0 -.L88: - cmp r1, r4 - bcc .L89 -.L90: + beq .L96 + ldrh r5, [r1, #414] + movs r2, #0 +.L94: + cmp r4, r2 + bhi .L95 +.L96: movs r0, #0 - pop {r4, r5, pc} -.L89: - adds r2, r1, r5 - ubfx r2, r2, #0, #10 - add r2, r3, r2, lsl #1 - ldrh r2, [r2, #420] - cmp r2, r0 - beq .L91 - adds r1, r1, #1 - b .L88 -.L91: - movs r0, #1 - pop {r4, r5, pc} -.L93: - .align 2 .L92: + pop {r4, r5, pc} +.L95: + adds r3, r5, r2 + ubfx r3, r3, #0, #10 + add r3, r1, r3, lsl #1 + ldrh r3, [r3, #420] + cmp r3, r0 + beq .L97 + adds r2, r2, #1 + b .L94 +.L97: + movs r0, #1 + b .L92 +.L99: + .align 2 +.L98: .word .LANCHOR0 .fnend .size IsInFreeQueue, .-IsInFreeQueue @@ -867,102 +931,103 @@ insert_data_list: .fnstart @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 + ldr r3, .L115 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 r2, .L109 - ldrh r3, [r2, #240] - mov r1, r2 - cmp r3, r0 - bls .L96 + ldrh r2, [r3, #240] + cmp r2, r0 + bls .L102 movs r5, #6 - ldr lr, [r2, #2516] + ldr ip, [r3, #2516] + movw r2, #65535 muls r5, r0, r5 - movw r3, #65535 - add r4, lr, r5 - strh r3, [r4, #2] @ movhi - strh r3, [lr, r5] @ movhi - ldr r3, [r2, #2520] - cbnz r3, .L97 - str r4, [r2, #2520] -.L96: + add r4, ip, r5 + strh r2, [r4, #2] @ movhi + strh r2, [ip, r5] @ movhi + ldr r1, [r3, #2520] + cbnz r1, .L103 +.L114: + str r4, [r3, #2520] + b .L102 +.L103: + ldrh r2, [r4, #4] + ldr r9, [r3, #72] + ldrh r7, [r9, r0, lsl #1] + cbz r2, .L110 + muls r7, r2, r7 +.L104: + ldr r8, [r3, #2516] + movw fp, #65535 + ldr r6, .L115+4 + sub r2, r1, r8 + asrs r2, r2, #1 + muls r2, r6, r2 + ldrh r6, [r3, #240] + str r6, [sp, #4] + movs r6, #0 + uxth r2, r2 +.L108: + adds r6, r6, #1 + ldr lr, [sp, #4] + uxth r6, r6 + cmp r6, lr + bhi .L102 + cmp r0, r2 + beq .L102 + ldrh r10, [r1, #4] + cmp r10, #0 + beq .L106 + ldrh lr, [r9, r2, lsl #1] + mul lr, r10, lr + cmp lr, r7 + bcs .L106 + ldrh lr, [r1] + cmp lr, fp + bne .L107 + strh r2, [r4, #2] @ movhi + strh r0, [r1] @ movhi + str r4, [r3, #2524] +.L102: movs r0, #0 add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L97: - ldrh r7, [r4, #4] - ldr r9, [r2, #72] - ldrh r2, [r9, r0, lsl #1] - cbz r7, .L104 - muls r2, r7, r2 -.L108: - ldr r8, [r1, #2516] - movw r10, #65535 - str r2, [sp] - sub r2, r3, r8 - asrs r6, r2, #1 - ldr r2, .L109+4 - muls r2, r6, r2 - ldrh r6, [r1, #240] - str r6, [sp, #4] - movs r6, #0 - uxth r2, r2 -.L102: - adds r6, r6, #1 - ldr r7, [sp, #4] - uxth r6, r6 - cmp r6, r7 - bhi .L96 - cmp r0, r2 - beq .L96 - ldrh ip, [r3, #4] - cmp ip, #0 - beq .L100 - ldrh fp, [r9, r2, lsl #1] - ldr r7, [sp] - mul ip, ip, fp - cmp ip, r7 - bcs .L100 - ldrh ip, [r3] - cmp ip, r10 - bne .L101 - strh r2, [r4, #2] @ movhi - strh r0, [r3] @ movhi - str r4, [r1, #2524] - b .L96 -.L104: - mov r2, #-1 - b .L108 -.L101: - movs r3, #6 - mov r2, ip - mla r3, r3, ip, r8 - b .L102 -.L100: - strh r2, [lr, r5] @ movhi - ldrh r2, [r3, #2] - strh r2, [r4, #2] @ movhi - ldr r2, [r1, #2520] - cmp r3, r2 - ittte ne - ldrhne r4, [r3, #2] - movne r2, #6 - ldrne r1, [r1, #2516] - strheq r0, [r3, #2] @ movhi - iteee eq - streq r4, [r1, #2520] - mulne r2, r2, r4 - strhne r0, [r1, r2] @ movhi - strhne r0, [r3, #2] @ movhi - b .L96 .L110: - .align 2 + mov r7, #-1 + b .L104 +.L107: + movs r2, #6 + mla r1, r2, lr, r8 + mov r2, lr + b .L108 +.L106: + strh r2, [ip, r5] @ movhi + ldrh r2, [r1, #2] + strh r2, [r4, #2] @ movhi + ldr r5, [r3, #2520] + cmp r1, r5 + bne .L109 + strh r0, [r1, #2] @ movhi + b .L114 .L109: + movs r4, #6 + ldr r3, [r3, #2516] + muls r2, r4, r2 + strh r0, [r3, r2] @ movhi + strh r0, [r1, #2] @ movhi + b .L102 +.L116: + .align 2 +.L115: .word .LANCHOR0 .word -1431655765 .fnend .size insert_data_list, .-insert_data_list + .section .rodata.str1.1 +.LC8: + .ascii "\012!!!!! error @ func:%s - line:%d\012\000" + .text .align 1 .global INSERT_DATA_LIST .syntax unified @@ -977,24 +1042,24 @@ INSERT_DATA_LIST: push {r3, lr} .save {r3, lr} bl insert_data_list - ldr r2, .L113 + ldr r2, .L119 ldrh r3, [r2, #2528] adds r3, r3, #1 uxth r3, r3 strh r3, [r2, #2528] @ movhi ldrh r2, [r2, #240] cmp r2, r3 - bcs .L111 - movs r2, #214 - ldr r1, .L113+4 - ldr r0, .L113+8 + bcs .L117 pop {r3, lr} + movs r2, #214 + ldr r1, .L119+4 + ldr r0, .L119+8 b sftl_printk -.L111: +.L117: pop {r3, pc} -.L114: +.L120: .align 2 -.L113: +.L119: .word .LANCHOR0 .word .LANCHOR1 .word .LC8 @@ -1013,67 +1078,66 @@ insert_free_list: @ 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} - movw r4, #65535 - cmp r0, r4 - beq .L116 - ldr r2, .L122 - movs r1, #6 - mul r7, r1, r0 - ldr ip, [r2, #2516] - mov r5, r2 - add r6, ip, r7 - strh r4, [r6, #2] @ movhi - strh r4, [ip, r7] @ movhi - ldr r3, [r2, #2532] - cbnz r3, .L117 - str r6, [r2, #2532] -.L116: + movw r5, #65535 + cmp r0, r5 + beq .L122 + ldr r1, .L129 + mov lr, #6 + mul r6, lr, r0 + ldr r7, [r1, #2516] + adds r4, r7, r6 + strh r5, [r4, #2] @ movhi + strh r5, [r7, r6] @ movhi + ldr r3, [r1, #2532] + cbnz r3, .L123 +.L128: + str r4, [r1, #2532] + b .L122 +.L123: + ldr ip, [r1, #2516] + ldr r10, .L129+4 + sub r2, r3, ip + ldr r8, [r1, #2536] + asrs r2, r2, #1 + ldrh r9, [r8, r0, lsl #1] + mul r2, r10, r2 + uxth r2, r2 +.L126: + ldrh r10, [r8, r2, lsl #1] + cmp r10, r9 + bcs .L124 + ldrh r10, [r3] + cmp r10, r5 + bne .L125 + strh r2, [r4, #2] @ movhi + strh r0, [r3] @ movhi +.L122: movs r0, #0 pop {r4, r5, r6, r7, r8, r9, r10, pc} -.L117: - ldr lr, [r2, #2516] - ldr r8, [r2, #2536] - sub r2, r3, lr - asr r10, r2, #1 - ldr r2, .L122+4 - ldrh r9, [r8, r0, lsl #1] - mul r2, r2, r10 - mov r10, r4 - uxth r2, r2 -.L120: - ldrh r4, [r8, r2, lsl #1] - cmp r4, r9 - bcs .L118 - ldrh r4, [r3] - cmp r4, r10 - bne .L119 - strh r2, [r6, #2] @ movhi - strh r0, [r3] @ movhi - b .L116 -.L119: - mla r3, r1, r4, lr - mov r2, r4 - b .L120 -.L118: - ldrh r1, [r3, #2] - strh r1, [r6, #2] @ movhi - strh r2, [ip, r7] @ movhi - ldr r2, [r5, #2532] - cmp r3, r2 - ittte ne - ldrhne r4, [r3, #2] - movne r2, #6 - ldrne r1, [r5, #2516] - strheq r0, [r3, #2] @ movhi - iteee eq - streq r6, [r5, #2532] - mulne r2, r2, r4 - strhne r0, [r1, r2] @ movhi - strhne r0, [r3, #2] @ movhi - b .L116 -.L123: +.L125: + mla r3, lr, r10, ip + mov r2, r10 + b .L126 +.L124: + ldrh r5, [r3, #2] + strh r5, [r4, #2] @ movhi + strh r2, [r7, r6] @ movhi + ldr r2, [r1, #2532] + cmp r2, r3 + bne .L127 + strh r0, [r3, #2] @ movhi + b .L128 +.L127: + ldrh r2, [r3, #2] + movs r4, #6 + ldr r1, [r1, #2516] + muls r2, r4, r2 + strh r0, [r1, r2] @ movhi + strh r0, [r3, #2] @ movhi + b .L122 +.L130: .align 2 -.L122: +.L129: .word .LANCHOR0 .word -1431655765 .fnend @@ -1092,24 +1156,24 @@ INSERT_FREE_LIST: push {r3, lr} .save {r3, lr} bl insert_free_list - ldr r2, .L126 + ldr r2, .L133 ldrh r3, [r2, #224] adds r3, r3, #1 uxth r3, r3 strh r3, [r2, #224] @ movhi ldrh r2, [r2, #240] cmp r2, r3 - bcs .L124 - movs r2, #207 - ldr r1, .L126+4 - ldr r0, .L126+8 + bcs .L131 pop {r3, lr} + movs r2, #207 + ldr r1, .L133+4 + ldr r0, .L133+8 b sftl_printk -.L124: +.L131: pop {r3, pc} -.L127: +.L134: .align 2 -.L126: +.L133: .word .LANCHOR0 .word .LANCHOR1+17 .word .LC8 @@ -1128,70 +1192,73 @@ List_remove_node: @ frame_needed = 0, uses_anonymous_args = 0 push {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} - movs r6, #6 - ldr r4, .L134 - muls r6, r1, r6 + movs r4, #6 + ldr r8, .L146 + muls r4, r1, r4 movw r3, #65535 - mov r8, r0 - ldr r7, [r4, #2516] - adds r5, r7, r6 - ldrh r2, [r5, #2] + mov r5, r0 + ldr r7, [r8, #2516] + adds r6, r7, r4 + ldrh r2, [r6, #2] cmp r2, r3 - bne .L129 + bne .L136 ldr r3, [r0] - cmp r5, r3 - beq .L129 - mov r2, #372 - ldr r1, .L134+4 - ldr r0, .L134+8 - bl sftl_printk -.L129: - ldr r3, [r8] - movw r1, #65535 - cmp r5, r3 - ldrh r3, [r7, r6] - bne .L130 - cmp r3, r1 - ittee ne - ldrne r0, [r4, #2516] - movne r2, #6 - moveq r3, #0 - streq r3, [r8] - ittt ne - mlane r3, r2, r3, r0 - strne r3, [r8] - strhne r1, [r3, #2] @ movhi -.L132: + cmp r6, r3 + bne .L137 +.L140: + ldrh r1, [r7, r4] + movw r2, #65535 + cmp r1, r2 + bne .L144 + movs r3, #0 + str r3, [r5] +.L142: movw r3, #65535 + strh r3, [r7, r4] @ movhi + strh r3, [r6, #2] @ movhi movs r0, #0 - strh r3, [r7, r6] @ movhi - strh r3, [r5, #2] @ movhi pop {r4, r5, r6, r7, r8, pc} -.L130: - cmp r3, r1 - ldrh r1, [r5, #2] - bne .L133 - cmp r1, r3 - beq .L132 - movs r2, #6 - ldr r0, [r4, #2516] - muls r1, r2, r1 - strh r3, [r0, r1] @ movhi - b .L132 -.L133: - ldr r0, [r4, #2516] - movs r2, #6 - mla r3, r2, r3, r0 - strh r1, [r3, #2] @ movhi - ldrh r0, [r5, #2] - ldrh r1, [r7, r6] - ldr r3, [r4, #2516] - muls r2, r0, r2 - strh r1, [r3, r2] @ movhi - b .L132 -.L135: +.L137: + ldr r1, .L146+4 + mov r2, #372 + ldr r0, .L146+8 + bl sftl_printk +.L136: + ldr r3, [r5] + ldrh r2, [r7, r4] + cmp r3, r6 + beq .L140 + movw r1, #65535 + ldrh r3, [r6, #2] + cmp r2, r1 + bne .L143 + cmp r3, r2 + beq .L142 + movs r0, #6 + ldr r1, [r8, #2516] + muls r3, r0, r3 + strh r2, [r1, r3] @ movhi + b .L142 +.L144: + ldr r3, [r8, #2516] + movs r0, #6 + mla r3, r0, r1, r3 + str r3, [r5] + strh r2, [r3, #2] @ movhi + b .L142 +.L143: + ldr r1, [r8, #2516] + movs r0, #6 + mla r2, r0, r2, r1 + strh r3, [r2, #2] @ movhi + muls r3, r0, r3 + ldr r2, [r8, #2516] + ldrh r1, [r7, r4] + strh r1, [r2, r3] @ movhi + b .L142 +.L147: .align 2 -.L134: +.L146: .word .LANCHOR0 .word .LANCHOR1+34 .word .LC8 @@ -1211,36 +1278,37 @@ List_pop_index_node: push {r4, r5, r6, lr} .save {r4, r5, r6, lr} ldr r3, [r0] - cbz r3, .L142 - ldr r2, .L143 + cbz r3, .L153 + ldr r2, .L157 movw r5, #65535 movs r6, #6 - ldr r2, [r2, #2516] -.L138: - cbnz r1, .L139 -.L141: - ldr r4, .L143+4 - subs r3, r3, r2 - asrs r3, r3, #1 + ldr r4, [r2, #2516] +.L150: + cbz r1, .L151 + ldrh r2, [r3] + cmp r2, r5 + bne .L152 +.L151: + subs r4, r3, r4 + ldr r3, .L157+4 + asrs r4, r4, #1 muls r4, r3, r4 uxth r1, r4 bl List_remove_node uxth r0, r4 +.L148: pop {r4, r5, r6, pc} -.L139: - ldrh r4, [r3] - cmp r4, r5 - beq .L141 +.L152: subs r1, r1, #1 - mla r3, r6, r4, r2 + mla r3, r6, r2, r4 uxth r1, r1 - b .L138 -.L142: + b .L150 +.L153: movw r0, #65535 - pop {r4, r5, r6, pc} -.L144: + b .L148 +.L158: .align 2 -.L143: +.L157: .word .LANCHOR0 .word -1431655765 .fnend @@ -1272,37 +1340,38 @@ List_get_gc_head_node: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L152 - push {r4, lr} - .save {r4, lr} + ldr r2, .L166 + push {r4, r5, lr} + .save {r4, r5, lr} ldr r3, [r2, #2520] - cbz r3, .L151 - ldr r1, [r2, #2516] - movs r4, #6 - movw r2, #65535 -.L148: - cbz r0, .L149 + cbz r3, .L165 + ldr r4, [r2, #2516] + movw r1, #65535 + movs r5, #6 +.L162: + cbz r0, .L163 ldrh r3, [r3] - cmp r3, r2 - bne .L150 -.L151: + cmp r3, r1 + bne .L164 +.L165: movw r0, #65535 - pop {r4, pc} -.L150: - subs r0, r0, #1 - mla r3, r4, r3, r1 +.L160: + pop {r4, r5, pc} +.L164: + subs r2, r0, #1 + mla r3, r5, r3, r4 + uxth r0, r2 + b .L162 +.L163: + subs r0, r3, r4 + ldr r3, .L166+4 + asrs r0, r0, #1 + muls r0, r3, r0 uxth r0, r0 - b .L148 -.L149: - ldr r0, .L152+4 - subs r3, r3, r1 - asrs r3, r3, #1 - muls r3, r0, r3 - uxth r0, r3 - pop {r4, pc} -.L153: + b .L160 +.L167: .align 2 -.L152: +.L166: .word .LANCHOR0 .word -1431655765 .fnend @@ -1321,92 +1390,92 @@ List_update_data_list: push {r3, r4, r5, r6, r7, r8, r9, lr} .save {r3, r4, r5, r6, r7, r8, r9, lr} mov r5, r0 - ldr r4, .L165 + ldr r4, .L179 ldrh r3, [r4, #24] cmp r3, r0 - beq .L156 + beq .L170 ldrh r3, [r4, #76] cmp r3, r0 - beq .L156 + beq .L170 ldrh r3, [r4, #124] cmp r3, r0 - beq .L156 - movs r7, #6 + beq .L170 + movs r6, #6 ldr r9, [r4, #2516] - muls r7, r0, r7 ldr r3, [r4, #2520] - add r8, r9, r7 + muls r6, r0, r6 + add r8, r9, r6 cmp r8, r3 - beq .L156 - ldrh r6, [r8, #4] + beq .L170 ldr r3, [r4, #72] - ldrh r3, [r3, r0, lsl #1] - cmp r6, #0 - beq .L163 - muls r6, r3, r6 -.L158: + ldrh r7, [r3, r0, lsl #1] + ldrh r3, [r8, #4] + cmp r3, #0 + beq .L177 + muls r7, r3, r7 +.L172: ldrh r3, [r8, #2] movw r2, #65535 cmp r3, r2 - bne .L159 - ldrh r2, [r9, r7] + bne .L173 + ldrh r2, [r9, r6] cmp r2, r3 - bne .L159 + bne .L173 + ldr r1, .L179+4 movw r2, #463 - ldr r1, .L165+4 - ldr r0, .L165+8 + ldr r0, .L179+8 bl sftl_printk -.L159: +.L173: ldrh r3, [r8, #2] movw r2, #65535 cmp r3, r2 - bne .L160 - ldrh r2, [r9, r7] + bne .L174 + ldrh r2, [r9, r6] cmp r2, r3 - beq .L156 -.L160: + beq .L170 +.L174: movs r2, #6 - muls r2, r3, r2 - ldr r3, .L165+12 - asrs r1, r2, #1 - muls r3, r1, r3 + ldr r1, .L179+12 + muls r3, r2, r3 + asrs r2, r3, #1 + muls r2, r1, r2 ldr r1, [r4, #72] - ldrh r0, [r1, r3, lsl #1] + ldrh r2, [r1, r2, lsl #1] ldr r1, [r4, #2516] - add r2, r2, r1 - ldrh r3, [r2, #4] - cbz r3, .L164 - muls r3, r0, r3 -.L161: - cmp r6, r3 - bcs .L156 + add r3, r3, r1 + ldrh r3, [r3, #4] + cbz r3, .L178 + muls r3, r2, r3 +.L175: + cmp r7, r3 + bcs .L170 + ldr r0, .L179+16 mov r1, r5 - ldr r0, .L165+16 bl List_remove_node ldrh r3, [r4, #2528] - cbnz r3, .L162 + cbnz r3, .L176 + ldr r1, .L179+4 mov r2, #474 - ldr r1, .L165+4 - ldr r0, .L165+8 + ldr r0, .L179+8 bl sftl_printk -.L162: +.L176: ldrh r3, [r4, #2528] mov r0, r5 subs r3, r3, #1 strh r3, [r4, #2528] @ movhi bl INSERT_DATA_LIST -.L156: +.L170: movs r0, #0 pop {r3, r4, r5, r6, r7, r8, r9, pc} -.L163: - mov r6, #-1 - b .L158 -.L164: +.L177: + mov r7, #-1 + b .L172 +.L178: mov r3, #-1 - b .L161 -.L166: + b .L175 +.L180: .align 2 -.L165: +.L179: .word .LANCHOR0 .word .LANCHOR1+51 .word .LC8 @@ -1425,80 +1494,82 @@ select_l2p_ram_region: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 + ldr r0, .L191 + movs r1, #0 push {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} - movs r1, #0 - ldr r5, .L177 - movs r0, #12 - movw r6, #65535 - ldrh r2, [r5, #338] - ldr r3, [r5, #2540] -.L168: + movs r6, #12 + movw r7, #65535 + ldr r3, [r0, #2540] + ldrh r2, [r0, #338] + sub r5, r3, #12 +.L182: uxth r4, r1 - cmp r4, r2 - bcc .L170 + cmp r2, r4 + bhi .L184 mov r4, r2 + add ip, r3, #4 movs r1, #0 mov r7, #-2147483648 - mov ip, #12 -.L171: + mov lr, #12 +.L185: uxth r6, r1 - cmp r6, r2 - bcc .L173 - cmp r4, r2 - bcc .L169 - ldrh r7, [r5, #2544] + cmp r2, r6 + bhi .L187 + cmp r2, r4 + bhi .L183 mov r4, r2 + ldrh r7, [r0, #2544] movs r1, #0 mov r0, #-1 -.L174: +.L188: uxth r5, r1 - cmp r5, r2 - bcc .L176 - cmp r4, r2 - bcc .L169 - movw r2, #789 - ldr r1, .L177+4 - ldr r0, .L177+8 + cmp r2, r5 + bhi .L190 + cmp r2, r4 + bhi .L183 + ldr r1, .L191+4 + mov r2, #796 + ldr r0, .L191+8 bl sftl_printk - b .L169 -.L170: + b .L183 +.L184: adds r1, r1, #1 - mla r7, r0, r1, r3 - ldrh r7, [r7, #-12] - cmp r7, r6 - bne .L168 -.L169: + mul ip, r6, r1 + ldrh ip, [r5, ip] + cmp ip, r7 + bne .L182 +.L183: mov r0, r4 pop {r3, r4, r5, r6, r7, pc} -.L173: - mla r0, ip, r1, r3 - ldr r0, [r0, #4] - cmp r0, #0 - blt .L172 - cmp r7, r0 - itt hi - movhi r7, r0 - movhi r4, r6 -.L172: +.L187: + mul r5, lr, r1 + ldr r5, [ip, r5] + cmp r5, #0 + blt .L186 + cmp r5, r7 + itt cc + movcc r7, r5 + movcc r4, r6 +.L186: adds r1, r1, #1 - b .L171 -.L176: + b .L185 +.L190: ldr r6, [r3, #4] - cmp r0, r6 - bls .L175 + cmp r6, r0 + bcs .L189 ldrh ip, [r3] cmp ip, r7 itt ne movne r0, r6 movne r4, r5 -.L175: +.L189: adds r1, r1, #1 adds r3, r3, #12 - b .L174 -.L178: + b .L188 +.L192: .align 2 -.L177: +.L191: .word .LANCHOR0 .word .LANCHOR1+73 .word .LC8 @@ -1515,18 +1586,18 @@ FtlUpdateVaildLpn: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r1, .L185 + ldr r3, .L199 push {r4, r5, lr} .save {r4, r5, lr} - mov r3, r1 - ldrh r2, [r1, #2546] + ldrh r2, [r3, #2546] cmp r2, #4 - bhi .L180 - cbnz r0, .L180 + bhi .L194 + cbnz r0, .L194 adds r2, r2, #1 - strh r2, [r1, #2546] @ movhi + strh r2, [r3, #2546] @ movhi +.L193: pop {r4, r5, pc} -.L180: +.L194: movs r2, #0 ldrh r1, [r3, #240] strh r2, [r3, #2546] @ movhi @@ -1534,51 +1605,23 @@ FtlUpdateVaildLpn: str r2, [r3, #2548] ldr r2, [r3, #72] add r1, r2, r1, lsl #1 -.L181: +.L195: cmp r2, r1 - bne .L183 - pop {r4, r5, pc} -.L183: + beq .L193 ldrh r4, [r2], #2 cmp r4, r5 ittt ne ldrne r0, [r3, #2548] addne r0, r0, r4 strne r0, [r3, #2548] - b .L181 -.L186: + b .L195 +.L200: .align 2 -.L185: +.L199: .word .LANCHOR0 .fnend .size FtlUpdateVaildLpn, .-FtlUpdateVaildLpn .align 1 - .global ftl_get_blk_mode - .syntax unified - .thumb - .thumb_func - .fpu softvfp - .type ftl_get_blk_mode, %function -ftl_get_blk_mode: - .fnstart - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - @ link register save eliminated. - ldr r3, .L188 - lsrs r2, r0, #5 - and r0, r0, #31 - ldr r3, [r3, #2552] - ldr r3, [r3, r2, lsl #2] - lsr r0, r3, r0 - and r0, r0, #1 - bx lr -.L189: - .align 2 -.L188: - .word .LANCHOR0 - .fnend - .size ftl_get_blk_mode, .-ftl_get_blk_mode - .align 1 .global ftl_sb_update_avl_pages .syntax unified .thumb @@ -1589,52 +1632,52 @@ ftl_sb_update_avl_pages: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - movs r3, #0 push {r4, r5, r6, r7, lr} .save {r4, r5, r6, r7, lr} - strh r3, [r0, #4] @ movhi - add r4, r0, r2, lsl #1 - movw r7, #65535 - ldr r3, .L197 - adds r4, r4, #14 - ldrh r5, [r3, #232] -.L191: - cmp r2, r5 - bcc .L193 - ldrh r3, [r3, #302] - add r4, r0, #16 - movw r6, #65535 - subs r3, r3, #1 - subs r1, r3, r1 + add r4, r2, #8 + ldr r6, .L208 + add r4, r0, r4, lsl #1 movs r3, #0 - uxth r1, r1 -.L194: - uxth r2, r3 + movw r7, #65535 + strh r3, [r0, #4] @ movhi + ldrh r5, [r6, #232] +.L202: cmp r5, r2 - bhi .L196 + bhi .L204 + ldrh r3, [r6, #302] + add r4, r0, #16 + movs r2, #0 + movw r6, #65535 + subs r3, r3, r1 + subs r3, r3, #1 + sxth r3, r3 +.L205: + uxth r1, r2 + cmp r5, r1 + bhi .L207 pop {r4, r5, r6, r7, pc} -.L193: - ldrh r6, [r4, #2]! +.L204: + ldrh r3, [r4], #2 adds r2, r2, #1 + cmp r3, r7 uxth r2, r2 - cmp r6, r7 ittt ne - ldrhne r6, [r0, #4] - addne r6, r6, #1 - strhne r6, [r0, #4] @ movhi - b .L191 -.L196: - ldrh r2, [r4], #2 - adds r3, r3, #1 - cmp r2, r6 + ldrhne r3, [r0, #4] + addne r3, r3, #1 + strhne r3, [r0, #4] @ movhi + b .L202 +.L207: + ldrh r1, [r4], #2 + adds r2, r2, #1 + cmp r1, r6 ittt ne - ldrhne r2, [r0, #4] - addne r2, r2, r1 - strhne r2, [r0, #4] @ movhi - b .L194 -.L198: + ldrhne r1, [r0, #4] + addne r1, r1, r3 + strhne r1, [r0, #4] @ movhi + b .L205 +.L209: .align 2 -.L197: +.L208: .word .LANCHOR0 .fnend .size ftl_sb_update_avl_pages, .-ftl_sb_update_avl_pages @@ -1650,43 +1693,42 @@ FtlSlcSuperblockCheck: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 ldrh r3, [r0, #4] - push {r4, r5, lr} - .save {r4, r5, lr} - cbz r3, .L199 - ldrh r2, [r0] - movw r3, #65535 - cmp r2, r3 - beq .L199 - ldrb r2, [r0, #6] @ zero_extendqisi2 - movs r5, #0 - adds r2, r2, #8 - ldrh r1, [r0, r2, lsl #1] - ldr r2, .L205 - ldrh r4, [r2, #232] - mov r2, r3 -.L202: - cmp r1, r2 - beq .L204 -.L199: - pop {r4, r5, pc} -.L204: + push {r4, lr} + .save {r4, lr} + cbz r3, .L210 + ldrh r3, [r0] + movw r2, #65535 + cmp r3, r2 + beq .L210 + ldrb r3, [r0, #6] @ zero_extendqisi2 + movs r4, #0 + ldr r1, .L216 + adds r3, r3, #8 + ldrh r1, [r1, #232] + ldrh r3, [r0, r3, lsl #1] +.L213: + cmp r3, r2 + beq .L215 +.L210: + pop {r4, pc} +.L215: ldrb r3, [r0, #6] @ zero_extendqisi2 adds r3, r3, #1 uxtb r3, r3 - cmp r3, r4 strb r3, [r0, #6] + cmp r3, r1 itttt eq + strbeq r4, [r0, #6] ldrheq r3, [r0, #2] - strbeq r5, [r0, #6] addeq r3, r3, #1 strheq r3, [r0, #2] @ movhi ldrb r3, [r0, #6] @ zero_extendqisi2 adds r3, r3, #8 - ldrh r1, [r0, r3, lsl #1] - b .L202 -.L206: + ldrh r3, [r0, r3, lsl #1] + b .L213 +.L217: .align 2 -.L205: +.L216: .word .LANCHOR0 .fnend .size FtlSlcSuperblockCheck, .-FtlSlcSuperblockCheck @@ -1704,36 +1746,37 @@ make_superblock: 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, .L213 + ldr r8, .L224 ldrh r2, [r0] - ldrh r3, [r6, #240] + ldrh r3, [r8, #240] cmp r2, r3 - bcc .L208 - movw r2, #2150 - ldr r1, .L213+4 - ldr r0, .L213+8 + bcc .L219 + ldr r1, .L224+4 + movw r2, #2157 + ldr r0, .L224+8 bl sftl_printk -.L208: - ldrh r9, [r6, #232] - add r7, r4, #16 - ldr r10, .L213+12 - movw r8, #65535 - movs r5, #0 - strh r5, [r4, #4] @ movhi - strb r5, [r4, #7] -.L209: - uxth r3, r5 +.L219: + ldrh r6, [r8, #232] + add r5, r4, #16 + ldr r9, .L224+12 + movs r3, #0 + movw r10, #65535 + strh r3, [r4, #4] @ movhi + add r6, r4, r6, lsl #1 + strb r3, [r4, #7] + adds r6, r6, #16 +.L220: ldrh r1, [r4] - cmp r9, r3 - bhi .L211 - ldrh r2, [r6, #302] + cmp r6, r5 + ldrb fp, [r4, #7] @ zero_extendqisi2 + bne .L222 + ldrh r3, [r8, #302] movs r0, #0 - ldrb r3, [r4, #7] @ zero_extendqisi2 - smulbb r3, r3, r2 + smulbb r3, r3, fp strh r3, [r4, #4] @ movhi movs r3, #0 strb r3, [r4, #9] - ldr r3, [r6, #2536] + ldr r3, [r8, #2536] ldrh r2, [r3, r1, lsl #1] movw r3, #10000 cmp r2, r3 @@ -1741,24 +1784,22 @@ make_superblock: movhi r3, #1 strbhi r3, [r4, #9] pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L211: - ldrb r0, [r10, r5] @ zero_extendqisi2 +.L222: + ldrb r0, [r9], #1 @ zero_extendqisi2 bl V2P_block - strh r8, [r7] @ movhi - mov fp, r0 + strh r10, [r5] @ movhi + mov r7, r0 bl FtlBbmIsBadBlock - cbnz r0, .L210 - strh fp, [r7] @ movhi - ldrb r3, [r4, #7] @ zero_extendqisi2 - adds r3, r3, #1 + cbnz r0, .L221 + add r3, fp, #1 + strh r7, [r5] @ movhi strb r3, [r4, #7] -.L210: - adds r5, r5, #1 - adds r7, r7, #2 - b .L209 -.L214: +.L221: + adds r5, r5, #2 + b .L220 +.L225: .align 2 -.L213: +.L224: .word .LANCHOR0 .word .LANCHOR1+95 .word .LC8 @@ -1778,45 +1819,43 @@ update_multiplier_value: @ 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} - movs r5, #0 - ldr r6, .L221 - mov r7, r0 - mov r4, r5 - ldrh r8, [r6, #232] - add r10, r6, #260 - ldrh r9, [r6, #302] -.L216: - uxth r3, r5 - cmp r8, r3 - bhi .L218 - cbz r4, .L220 + movs r6, #0 + ldr r5, .L234 + mov r8, r0 + mov r4, r6 + add r7, r5, #260 + ldrh r9, [r5, #232] + ldrh r10, [r5, #302] +.L227: + uxth r3, r6 + cmp r9, r3 + bhi .L229 + cbz r4, .L230 mov r1, r4 mov r0, #32768 bl __aeabi_idiv -.L219: - ldr r1, [r6, #2516] - movs r3, #6 - mla r1, r3, r7, r1 - strh r0, [r1, #4] @ movhi + uxth r4, r0 +.L230: + ldr r0, [r5, #2516] + movs r2, #6 + mla r0, r2, r8, r0 + strh r4, [r0, #4] @ movhi movs r0, #0 pop {r4, r5, r6, r7, r8, r9, r10, pc} -.L218: - mov r1, r7 - ldrb r0, [r10, r5] @ zero_extendqisi2 +.L229: + mov r1, r8 + ldrb r0, [r7], #1 @ zero_extendqisi2 bl V2P_block bl FtlBbmIsBadBlock - cbnz r0, .L217 - add r4, r4, r9 + cbnz r0, .L228 + add r4, r4, r10 uxth r4, r4 -.L217: - adds r5, r5, #1 - b .L216 -.L220: - mov r0, r4 - b .L219 -.L222: +.L228: + adds r6, r6, #1 + b .L227 +.L235: .align 2 -.L221: +.L234: .word .LANCHOR0 .fnend .size update_multiplier_value, .-update_multiplier_value @@ -1832,22 +1871,22 @@ GetFreeBlockMinEraseCount: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L226 - ldr r0, [r2, #2532] - cbz r0, .L224 - ldr r3, [r2, #2516] - subs r0, r0, r3 - ldr r3, .L226+4 + ldr r3, .L239 + ldr r0, [r3, #2532] + cbz r0, .L237 + ldr r2, [r3, #2516] + ldr r3, [r3, #2536] + subs r0, r0, r2 + ldr r2, .L239+4 asrs r0, r0, #1 - muls r0, r3, r0 - ldr r3, [r2, #2536] + muls r0, r2, r0 uxth r0, r0 ldrh r0, [r3, r0, lsl #1] -.L224: +.L237: bx lr -.L227: +.L240: .align 2 -.L226: +.L239: .word .LANCHOR0 .word -1431655765 .fnend @@ -1863,52 +1902,187 @@ GetFreeBlockMaxEraseCount: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r1, .L236 + ldr r1, .L248 + mov r2, r0 push {r4, r5, r6, r7, lr} .save {r4, r5, r6, r7, lr} - ldr r3, [r1, #2532] - cbz r3, .L234 - ldrh r2, [r1, #224] - movs r6, #6 - ldr r4, [r1, #2516] - movw r7, #65535 - rsb r2, r2, r2, lsl #3 - subs r3, r3, r4 - asrs r3, r3, #1 - asrs r2, r2, #3 - cmp r0, r2 + ldr r0, [r1, #2532] + cbz r0, .L242 + ldrh r3, [r1, #224] + movs r7, #6 + movw ip, #65535 + rsb r3, r3, r3, lsl #3 + asrs r4, r3, #3 + cmp r2, r3, asr #3 it gt - uxthgt r0, r2 - ldr r2, .L236+4 - muls r3, r2, r3 - movs r2, #0 + uxthgt r2, r4 + ldr r4, [r1, #2516] + subs r3, r0, r4 + ldr r0, .L248+4 + asrs r3, r3, #1 + muls r3, r0, r3 + movs r0, #0 uxth r3, r3 -.L231: - uxth r5, r2 - cmp r0, r5 - bls .L233 - mul r5, r6, r3 - adds r2, r2, #1 - ldrh r5, [r4, r5] - cmp r5, r7 - bne .L235 -.L233: - ldr r2, [r1, #2536] - ldrh r0, [r2, r3, lsl #1] +.L244: + uxth r6, r0 + mov r5, r3 + cmp r6, r2 + bcs .L245 + muls r3, r7, r3 + adds r0, r0, #1 + ldrh r3, [r4, r3] + cmp r3, ip + bne .L244 +.L245: + ldr r3, [r1, #2536] + ldrh r0, [r3, r5, lsl #1] +.L242: pop {r4, r5, r6, r7, pc} -.L235: - mov r3, r5 - b .L231 -.L234: - mov r0, r3 - pop {r4, r5, r6, r7, pc} -.L237: +.L249: .align 2 -.L236: +.L248: .word .LANCHOR0 .word -1431655765 .fnend .size GetFreeBlockMaxEraseCount, .-GetFreeBlockMaxEraseCount + .section .rodata.str1.1 +.LC9: + .ascii "FLASH INFO:\012\000" +.LC10: + .ascii "Device Capacity: %d MB\012\000" +.LC11: + .ascii "FTL INFO:\012\000" +.LC12: + .ascii "g_MaxLpn = 0x%x\012\000" +.LC13: + .ascii "g_VaildLpn = 0x%x\012\000" +.LC14: + .ascii "read_page_count = 0x%x\012\000" +.LC15: + .ascii "discard_page_count = 0x%x\012\000" +.LC16: + .ascii "write_page_count = 0x%x\012\000" +.LC17: + .ascii "cache_write_count = 0x%x\012\000" +.LC18: + .ascii "l2p_write_count = 0x%x\012\000" +.LC19: + .ascii "gc_page_count = 0x%x\012\000" +.LC20: + .ascii "totle_write = %d MB\012\000" +.LC21: + .ascii "totle_read = %d MB\012\000" +.LC22: + .ascii "GSV = 0x%x\012\000" +.LC23: + .ascii "GDV = 0x%x\012\000" +.LC24: + .ascii "bad blk num = %d\012\000" +.LC25: + .ascii "free_superblocks = 0x%x\012\000" +.LC26: + .ascii "mlc_EC = 0x%x\012\000" +.LC27: + .ascii "slc_EC = 0x%x\012\000" +.LC28: + .ascii "avg_EC = 0x%x\012\000" +.LC29: + .ascii "sys_EC = 0x%x\012\000" +.LC30: + .ascii "max_EC = 0x%x\012\000" +.LC31: + .ascii "min_EC = 0x%x\012\000" +.LC32: + .ascii "PLT = 0x%x\012\000" +.LC33: + .ascii "POT = 0x%x\012\000" +.LC34: + .ascii "MaxSector = 0x%x\012\000" +.LC35: + .ascii "init_sys_blks_pp = 0x%x\012\000" +.LC36: + .ascii "sys_blks_pp = 0x%x\012\000" +.LC37: + .ascii "free sysblock = 0x%x\012\000" +.LC38: + .ascii "data_blks_pp = 0x%x\012\000" +.LC39: + .ascii "data_op_blks_pp = 0x%x\012\000" +.LC40: + .ascii "max_data_blks = 0x%x\012\000" +.LC41: + .ascii "Sys.id = 0x%x\012\000" +.LC42: + .ascii "Bbt.id = 0x%x\012\000" +.LC43: + .ascii "ACT.page = 0x%x\012\000" +.LC44: + .ascii "ACT.plane = 0x%x\012\000" +.LC45: + .ascii "ACT.id = 0x%x\012\000" +.LC46: + .ascii "ACT.mode = 0x%x\012\000" +.LC47: + .ascii "ACT.a_pages = 0x%x\012\000" +.LC48: + .ascii "ACT VPC = 0x%x\012\000" +.LC49: + .ascii "BUF.page = 0x%x\012\000" +.LC50: + .ascii "BUF.plane = 0x%x\012\000" +.LC51: + .ascii "BUF.id = 0x%x\012\000" +.LC52: + .ascii "BUF.mode = 0x%x\012\000" +.LC53: + .ascii "BUF.a_pages = 0x%x\012\000" +.LC54: + .ascii "BUF VPC = 0x%x\012\000" +.LC55: + .ascii "TMP.page = 0x%x\012\000" +.LC56: + .ascii "TMP.plane = 0x%x\012\000" +.LC57: + .ascii "TMP.id = 0x%x\012\000" +.LC58: + .ascii "TMP.mode = 0x%x\012\000" +.LC59: + .ascii "TMP.a_pages = 0x%x\012\000" +.LC60: + .ascii "GC.page = 0x%x\012\000" +.LC61: + .ascii "GC.plane = 0x%x\012\000" +.LC62: + .ascii "GC.id = 0x%x\012\000" +.LC63: + .ascii "GC.mode = 0x%x\012\000" +.LC64: + .ascii "GC.a_pages = 0x%x\012\000" +.LC65: + .ascii "WR_CHK = %x %x %x\012\000" +.LC66: + .ascii "Read Err Cnt = 0x%x\012\000" +.LC67: + .ascii "Prog Err Cnt = 0x%x\012\000" +.LC68: + .ascii "gc_free_blk_th= 0x%x\012\000" +.LC69: + .ascii "gc_merge_free_blk_th= 0x%x\012\000" +.LC70: + .ascii "gc_skip_write_count= 0x%x\012\000" +.LC71: + .ascii "gc_blk_index= 0x%x\012\000" +.LC72: + .ascii "free min EC= 0x%x\012\000" +.LC73: + .ascii "free max EC= 0x%x\012\000" +.LC74: + .ascii "GC__SB VPC = 0x%x\012\000" +.LC75: + .ascii "%d. [0x%x]=0x%x 0x%x 0x%x\012\000" +.LC76: + .ascii "free %d. [0x%x] 0x%x 0x%x\012\000" + .text .align 1 .global FtlPrintInfo2buf .syntax unified @@ -1922,346 +2096,347 @@ FtlPrintInfo2buf: @ frame_needed = 0, uses_anonymous_args = 0 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - mov r6, r0 - ldr r5, .L250 - add r4, r6, #12 + mov r7, r0 + ldr r6, .L262 + ldr r1, .L262+4 + add r5, r7, #12 .pad #20 sub sp, sp, #20 - ldr r1, .L250+4 bl strcpy - ldr r3, [r5, #316] + ldr r2, .L262+8 + ldr r3, [r6, #316] + mov r0, r5 movs r1, #64 - ldr r2, .L250+8 - mov r0, r4 bl snprintf - add r4, r4, r0 - ldr r1, .L250+12 - mov r0, r4 - adds r4, r4, #10 + add r5, r5, r0 + ldr r1, .L262+12 + mov r0, r5 + adds r5, r5, #10 bl strcpy - ldr r3, [r5, #2556] + ldr r3, [r6, #2552] + mov r0, r5 + ldr r2, .L262+16 movs r1, #64 - ldr r2, .L250+16 - mov r0, r4 bl snprintf - add r4, r4, r0 - ldr r3, [r5, #2548] - ldr r2, .L250+20 + add r5, r5, r0 + ldr r3, [r6, #2548] + mov r0, r5 + ldr r2, .L262+20 movs r1, #64 - mov r0, r4 bl snprintf - add r4, r4, r0 - ldr r3, [r5, #2560] - ldr r2, .L250+24 + add r5, r5, r0 + ldr r3, [r6, #2556] + mov r0, r5 + ldr r2, .L262+24 movs r1, #64 - mov r0, r4 bl snprintf - add r4, r4, r0 - ldr r3, [r5, #2564] - ldr r2, .L250+28 + add r5, r5, r0 + ldr r3, [r6, #2560] + mov r0, r5 + ldr r2, .L262+28 movs r1, #64 - mov r0, r4 bl snprintf - add r4, r4, r0 - ldr r3, [r5, #2568] - ldr r2, .L250+32 + add r5, r5, r0 + ldr r3, [r6, #2564] + mov r0, r5 + ldr r2, .L262+32 movs r1, #64 - mov r0, r4 bl snprintf - add r4, r4, r0 - ldr r3, [r5, #2572] - ldr r2, .L250+36 + add r5, r5, r0 + ldr r3, [r6, #2568] + mov r0, r5 + ldr r2, .L262+36 movs r1, #64 - mov r0, r4 bl snprintf - add r4, r4, r0 - ldr r3, [r5, #2576] - ldr r2, .L250+40 + add r5, r5, r0 + ldr r3, [r6, #2572] + mov r0, r5 + ldr r2, .L262+40 movs r1, #64 - mov r0, r4 bl snprintf - add r4, r4, r0 - ldr r3, [r5, #2580] - ldr r2, .L250+44 + add r5, r5, r0 + ldr r3, [r6, #2576] + mov r0, r5 + ldr r2, .L262+44 movs r1, #64 - mov r0, r4 bl snprintf - ldr r3, [r5, #2584] - add r4, r4, r0 - ldr r2, .L250+48 + ldr r3, [r6, #2580] + add r5, r5, r0 + ldr r2, .L262+48 + mov r0, r5 movs r1, #64 - mov r0, r4 lsrs r3, r3, #11 bl snprintf - ldr r3, [r5, #2588] - add r4, r4, r0 - ldr r2, .L250+52 + ldr r3, [r6, #2584] + add r5, r5, r0 + ldr r2, .L262+52 movs r1, #64 - mov r0, r4 + mov r0, r5 lsrs r3, r3, #11 bl snprintf - add r4, r4, r0 - ldr r3, [r5, #2592] - ldr r2, .L250+56 - movs r1, #64 + adds r4, r5, r0 + ldr r3, [r6, #2588] mov r0, r4 + ldr r2, .L262+56 + movs r1, #64 bl snprintf add r4, r4, r0 - ldr r3, [r5, #2596] - ldr r2, .L250+60 - movs r1, #64 + ldr r3, [r6, #2592] mov r0, r4 + ldr r2, .L262+60 + movs r1, #64 bl snprintf add r4, r4, r0 - ldrh r3, [r5, #358] - ldr r2, .L250+64 - movs r1, #64 + ldrh r3, [r6, #358] mov r0, r4 + ldr r2, .L262+64 + movs r1, #64 bl snprintf add r4, r4, r0 - ldrh r3, [r5, #224] - ldr r2, .L250+68 - movs r1, #64 + ldrh r3, [r6, #224] mov r0, r4 + ldr r2, .L262+68 + movs r1, #64 bl snprintf add r4, r4, r0 - ldr r3, [r5, #2600] - ldr r2, .L250+72 - movs r1, #64 + ldr r3, [r6, #2596] mov r0, r4 + ldr r2, .L262+72 + movs r1, #64 bl snprintf add r4, r4, r0 - ldr r3, [r5, #2604] - ldr r2, .L250+76 - movs r1, #64 + ldr r3, [r6, #2600] mov r0, r4 + ldr r2, .L262+76 + movs r1, #64 bl snprintf add r4, r4, r0 - ldr r3, [r5, #2608] - ldr r2, .L250+80 - movs r1, #64 + ldr r3, [r6, #2604] mov r0, r4 + ldr r2, .L262+80 + movs r1, #64 bl snprintf add r4, r4, r0 - ldr r3, [r5, #2612] - ldr r2, .L250+84 - movs r1, #64 + ldr r3, [r6, #2608] mov r0, r4 + ldr r2, .L262+84 + movs r1, #64 bl snprintf add r4, r4, r0 - ldr r3, [r5, #2616] - ldr r2, .L250+88 - movs r1, #64 + ldr r3, [r6, #2612] mov r0, r4 + ldr r2, .L262+88 + movs r1, #64 bl snprintf add r4, r4, r0 - ldr r3, [r5, #2620] - ldr r2, .L250+92 - movs r1, #64 + ldr r3, [r6, #2616] mov r0, r4 + ldr r2, .L262+92 + movs r1, #64 bl snprintf add r4, r4, r0 - ldrh r3, [r5, #2498] - ldr r2, .L250+96 - movs r1, #64 + ldrh r3, [r6, #2498] mov r0, r4 + ldr r2, .L262+96 + movs r1, #64 bl snprintf add r4, r4, r0 - ldrh r3, [r5, #2496] - ldr r2, .L250+100 - movs r1, #64 + ldrh r3, [r6, #2496] mov r0, r4 + ldr r2, .L262+100 + movs r1, #64 bl snprintf add r4, r4, r0 - ldr r3, [r5, #340] - ldr r2, .L250+104 - movs r1, #64 + ldr r3, [r6, #340] mov r0, r4 + ldr r2, .L262+104 + movs r1, #64 bl snprintf add r4, r4, r0 - ldr r3, [r5, #332] - ldr r2, .L250+108 - movs r1, #64 + ldr r3, [r6, #332] mov r0, r4 + ldr r2, .L262+108 + movs r1, #64 bl snprintf add r4, r4, r0 - ldr r3, [r5, #228] - ldr r2, .L250+112 - movs r1, #64 + ldr r3, [r6, #228] mov r0, r4 + ldr r2, .L262+112 + movs r1, #64 bl snprintf add r4, r4, r0 - ldrh r3, [r5, #418] - ldr r2, .L250+116 - movs r1, #64 + ldrh r3, [r6, #418] mov r0, r4 + ldr r2, .L262+116 + movs r1, #64 bl snprintf add r4, r4, r0 - ldrh r3, [r5, #240] - ldr r2, .L250+120 - movs r1, #64 + ldrh r3, [r6, #240] mov r0, r4 + ldr r2, .L262+120 + movs r1, #64 bl snprintf add r4, r4, r0 - ldrh r3, [r5, #2624] - ldr r2, .L250+124 - movs r1, #64 + ldrh r3, [r6, #2620] mov r0, r4 + ldr r2, .L262+124 + movs r1, #64 bl snprintf add r4, r4, r0 - ldr r3, [r5, #244] - ldr r2, .L250+128 - movs r1, #64 + ldr r3, [r6, #244] mov r0, r4 + ldr r2, .L262+128 + movs r1, #64 bl snprintf add r4, r4, r0 - ldrh r3, [r5, #2628] - ldr r2, .L250+132 - movs r1, #64 + ldrh r3, [r6, #2624] mov r0, r4 + ldr r2, .L262+132 + movs r1, #64 bl snprintf add r4, r4, r0 - ldrh r3, [r5, #352] - ldr r2, .L250+136 - movs r1, #64 + ldrh r3, [r6, #352] mov r0, r4 + ldr r2, .L262+136 + movs r1, #64 bl snprintf add r4, r4, r0 - ldrh r3, [r5, #26] - ldr r2, .L250+140 - movs r1, #64 + ldrh r3, [r6, #26] mov r0, r4 + ldr r2, .L262+140 + movs r1, #64 bl snprintf add r4, r4, r0 - ldrb r3, [r5, #30] @ zero_extendqisi2 - ldr r2, .L250+144 - movs r1, #64 + ldrb r3, [r6, #30] @ zero_extendqisi2 mov r0, r4 + ldr r2, .L262+144 + movs r1, #64 bl snprintf add r4, r4, r0 - ldrh r3, [r5, #24] - ldr r2, .L250+148 - movs r1, #64 + ldrh r3, [r6, #24] mov r0, r4 + ldr r2, .L262+148 + movs r1, #64 bl snprintf add r4, r4, r0 - ldrb r3, [r5, #32] @ zero_extendqisi2 - ldr r2, .L250+152 - movs r1, #64 + ldrb r3, [r6, #32] @ zero_extendqisi2 mov r0, r4 + ldr r2, .L262+152 + movs r1, #64 bl snprintf add r4, r4, r0 - ldrh r3, [r5, #28] - ldr r2, .L250+156 - movs r1, #64 + ldrh r3, [r6, #28] mov r0, r4 + ldr r2, .L262+156 + movs r1, #64 bl snprintf - ldrh r2, [r5, #24] + ldrh r2, [r6, #24] + ldr r3, [r6, #72] add r4, r4, r0 - ldr r3, [r5, #72] - movs r1, #64 mov r0, r4 + movs r1, #64 ldrh r3, [r3, r2, lsl #1] - ldr r2, .L250+160 + ldr r2, .L262+160 bl snprintf add r4, r4, r0 - ldrh r3, [r5, #78] - ldr r2, .L250+164 - movs r1, #64 + ldrh r3, [r6, #78] mov r0, r4 + ldr r2, .L262+164 + movs r1, #64 bl snprintf add r4, r4, r0 - ldrb r3, [r5, #82] @ zero_extendqisi2 - ldr r2, .L250+168 - movs r1, #64 + ldrb r3, [r6, #82] @ zero_extendqisi2 mov r0, r4 + ldr r2, .L262+168 + movs r1, #64 bl snprintf add r4, r4, r0 - ldrh r3, [r5, #76] - ldr r2, .L250+172 - movs r1, #64 + ldrh r3, [r6, #76] mov r0, r4 + ldr r2, .L262+172 + movs r1, #64 bl snprintf add r4, r4, r0 - ldrb r3, [r5, #84] @ zero_extendqisi2 - ldr r2, .L250+176 - movs r1, #64 + ldrb r3, [r6, #84] @ zero_extendqisi2 mov r0, r4 + ldr r2, .L262+176 + movs r1, #64 bl snprintf add r4, r4, r0 - ldrh r3, [r5, #80] - ldr r2, .L250+180 - movs r1, #64 + ldrh r3, [r6, #80] mov r0, r4 + ldr r2, .L262+180 + movs r1, #64 bl snprintf - ldrh r2, [r5, #76] + ldrh r2, [r6, #76] + ldr r3, [r6, #72] add r4, r4, r0 - ldr r3, [r5, #72] - movs r1, #64 mov r0, r4 + movs r1, #64 ldrh r3, [r3, r2, lsl #1] - ldr r2, .L250+184 + ldr r2, .L262+184 bl snprintf add r4, r4, r0 - ldrh r3, [r5, #126] - ldr r2, .L250+188 - movs r1, #64 + ldrh r3, [r6, #126] mov r0, r4 - bl snprintf - add r4, r4, r0 - ldrb r3, [r5, #130] @ zero_extendqisi2 - ldr r2, .L250+192 + ldr r2, .L262+188 movs r1, #64 - mov r0, r4 bl snprintf add r4, r4, r0 - ldrh r3, [r5, #124] - ldr r2, .L250+196 + ldrb r3, [r6, #130] @ zero_extendqisi2 + mov r0, r4 + ldr r2, .L262+192 movs r1, #64 - mov r0, r4 bl snprintf add r4, r4, r0 - ldrb r3, [r5, #132] @ zero_extendqisi2 - ldr r2, .L250+200 + ldrh r3, [r6, #124] + mov r0, r4 + ldr r2, .L262+196 movs r1, #64 - mov r0, r4 bl snprintf add r4, r4, r0 - ldrh r3, [r5, #128] - ldr r2, .L250+204 + ldrb r3, [r6, #132] @ zero_extendqisi2 + mov r0, r4 + ldr r2, .L262+200 movs r1, #64 - mov r0, r4 bl snprintf add r4, r4, r0 - ldrh r3, [r5, #174] - ldr r2, .L250+208 + ldrh r3, [r6, #128] + mov r0, r4 + ldr r2, .L262+204 movs r1, #64 - mov r0, r4 bl snprintf add r4, r4, r0 - ldrb r3, [r5, #178] @ zero_extendqisi2 - ldr r2, .L250+212 + ldrh r3, [r6, #174] + mov r0, r4 + ldr r2, .L262+208 movs r1, #64 - mov r0, r4 bl snprintf add r4, r4, r0 - ldrh r3, [r5, #172] - ldr r2, .L250+216 + ldrb r3, [r6, #178] @ zero_extendqisi2 + mov r0, r4 + ldr r2, .L262+212 movs r1, #64 - mov r0, r4 bl snprintf add r4, r4, r0 - ldrb r3, [r5, #180] @ zero_extendqisi2 - ldr r2, .L250+220 + ldrh r3, [r6, #172] + mov r0, r4 + ldr r2, .L262+216 movs r1, #64 - mov r0, r4 bl snprintf add r4, r4, r0 - ldrh r3, [r5, #176] - b .L251 -.L252: + ldrb r3, [r6, #180] @ zero_extendqisi2 + mov r0, r4 + ldr r2, .L262+220 + movs r1, #64 + bl snprintf + add r4, r4, r0 + ldrh r3, [r6, #176] + mov r0, r4 + b .L263 +.L264: .align 2 -.L250: +.L262: .word .LANCHOR0 .word .LC9 .word .LC10 @@ -2318,166 +2493,164 @@ FtlPrintInfo2buf: .word .LC61 .word .LC62 .word .LC63 -.L251: - ldr r2, .L253 +.L263: + ldr r2, .L265 movs r1, #64 - mov r0, r4 bl snprintf - ldr r3, [r5, #2720] + ldr r3, [r6, #2716] add r4, r4, r0 - ldr r2, .L253+4 - movs r1, #64 - mov r0, r4 str r3, [sp, #4] - ldr r3, [r5, #2728] + ldr r3, [r6, #2724] + mov r0, r4 + ldr r2, .L265+4 + movs r1, #64 str r3, [sp] - ldr r3, [r5, #2724] + ldr r3, [r6, #2720] bl snprintf add r4, r4, r0 - ldr r3, [r5, #2716] - ldr r2, .L253+8 - movs r1, #64 + ldr r3, [r6, #2712] mov r0, r4 - bl snprintf - add r4, r4, r0 - ldr r3, [r5, #2740] - ldr r2, .L253+12 + ldr r2, .L265+8 movs r1, #64 - mov r0, r4 bl snprintf add r4, r4, r0 - ldrh r3, [r5, #3156] - ldr r2, .L253+16 + ldr r3, [r6, #2736] + mov r0, r4 + ldr r2, .L265+12 movs r1, #64 - mov r0, r4 bl snprintf add r4, r4, r0 - ldrh r3, [r5, #3158] - ldr r2, .L253+20 + ldrh r3, [r6, #3152] + mov r0, r4 + ldr r2, .L265+16 movs r1, #64 - mov r0, r4 bl snprintf add r4, r4, r0 - ldr r3, [r5, #3160] - ldr r2, .L253+24 + ldrh r3, [r6, #3154] + mov r0, r4 + ldr r2, .L265+20 movs r1, #64 - mov r0, r4 bl snprintf add r4, r4, r0 - ldrh r3, [r5, #3164] - ldr r2, .L253+28 + ldr r3, [r6, #3156] + mov r0, r4 + ldr r2, .L265+24 movs r1, #64 - mov r0, r4 bl snprintf add r4, r4, r0 + ldrh r3, [r6, #3160] + mov r0, r4 + ldr r2, .L265+28 + movs r1, #64 + bl snprintf + add r4, r4, r0 + movs r1, #64 bl GetFreeBlockMinEraseCount - ldr r2, .L253+32 + ldr r2, .L265+32 mov r3, r0 - movs r1, #64 mov r0, r4 bl snprintf add r4, r4, r0 - ldrh r0, [r5, #224] + ldrh r0, [r6, #224] bl GetFreeBlockMaxEraseCount - ldr r2, .L253+36 + ldr r2, .L265+36 mov r3, r0 movs r1, #64 mov r0, r4 bl snprintf - ldr r3, .L253+40 + ldr r3, .L265+40 add r4, r4, r0 ldr r3, [r3] cmp r3, #1 - beq .L239 -.L244: - subs r0, r4, r6 + beq .L251 +.L256: + subs r0, r4, r7 add sp, sp, #20 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L239: - ldrh r3, [r5, #172] +.L251: + ldrh r3, [r6, #172] movw r2, #65535 cmp r3, r2 - beq .L241 - ldr r2, [r5, #72] + beq .L253 + ldr r2, [r6, #72] mov r0, r4 movs r1, #64 ldrh r3, [r2, r3, lsl #1] - ldr r2, .L253+44 + ldr r2, .L265+44 bl snprintf add r4, r4, r0 -.L241: +.L253: movs r0, #0 - ldr r9, .L253+52 + ldr fp, .L265+48 bl List_get_gc_head_node uxth r0, r0 - movs r7, #0 - movw fp, #65535 - mov r10, #6 -.L243: - cmp r0, fp - beq .L242 - ldr r3, [r5, #2536] - mul r8, r10, r0 - mov r2, r9 + movs r5, #0 + movw r10, #65535 + mov r9, #6 +.L255: + ldr r3, [r6, #2516] + cmp r0, r10 + beq .L254 + ldr r2, [r6, #2536] + mul r8, r9, r0 movs r1, #64 - ldrh r3, [r3, r0, lsl #1] - str r3, [sp, #12] - ldr r3, [r5, #2516] add r3, r3, r8 + ldrh r2, [r2, r0, lsl #1] + str r2, [sp, #12] + mov r2, fp ldrh r3, [r3, #4] str r3, [sp, #8] - ldr r3, [r5, #72] + ldr r3, [r6, #72] ldrh r3, [r3, r0, lsl #1] - stm sp, {r0, r3} - mov r3, r7 + strd r0, r3, [sp] + mov r3, r5 mov r0, r4 - adds r7, r7, #1 + adds r5, r5, #1 bl snprintf - ldr r3, [r5, #2516] - cmp r7, #16 + ldr r3, [r6, #2516] add r4, r4, r0 + cmp r5, #16 ldrh r0, [r3, r8] - bne .L243 -.L242: - ldr r2, [r5, #2516] - movs r7, #0 - ldr r3, [r5, #2532] - movw r9, #65535 - ldr fp, .L253+56 - mov r10, #6 - subs r3, r3, r2 - asrs r2, r3, #1 - ldr r3, .L253+48 - muls r3, r2, r3 - uxth r3, r3 -.L245: - cmp r3, r9 - beq .L244 - ldr r2, [r5, #2536] - mul r8, r10, r3 - mov r0, r4 - movs r1, #64 - ldrh r2, [r2, r3, lsl #1] - str r2, [sp, #8] - ldr r2, [r5, #2516] - add r2, r2, r8 - ldrh r2, [r2, #4] - str r3, [sp] - mov r3, r7 - adds r7, r7, #1 - str r2, [sp, #4] - mov r2, fp - bl snprintf - cmp r7, #4 - add r4, r4, r0 - beq .L244 - ldr r3, [r5, #2516] - ldrh r3, [r3, r8] - b .L245 + bne .L255 .L254: + ldr r3, [r6, #2516] + movs r5, #0 + ldr r1, [r6, #2532] + movw r9, #65535 + ldr fp, .L265+52 + mov r10, #6 + subs r1, r1, r3 + ldr r3, .L265+56 + asrs r1, r1, #1 + muls r1, r3, r1 + uxth r1, r1 +.L257: + cmp r1, r9 + beq .L256 + ldr r3, [r6, #2536] + mul r8, r10, r1 + mov r0, r4 + mov r2, fp + ldrh r3, [r3, r1, lsl #1] + str r3, [sp, #8] + ldr r3, [r6, #2516] + add r3, r3, r8 + ldrh r3, [r3, #4] + strd r1, r3, [sp] + mov r3, r5 + movs r1, #64 + adds r5, r5, #1 + bl snprintf + cmp r5, #4 + add r4, r4, r0 + beq .L256 + ldr r3, [r6, #2516] + ldrh r1, [r3, r8] + b .L257 +.L266: .align 2 -.L253: +.L265: .word .LC64 .word .LC65 .word .LC66 @@ -2490,11 +2663,15 @@ FtlPrintInfo2buf: .word .LC73 .word .LANCHOR2 .word .LC74 - .word -1431655765 .word .LC75 .word .LC76 + .word -1431655765 .fnend .size FtlPrintInfo2buf, .-FtlPrintInfo2buf + .section .rodata.str1.1 +.LC77: + .ascii "%s\012\000" + .text .align 1 .global rknand_proc_ftlread .syntax unified @@ -2506,32 +2683,38 @@ rknand_proc_ftlread: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - cmp r0, #2048 push {r3, r4, r5, lr} .save {r3, r4, r5, lr} + cmp r0, #2048 mov r5, r1 - blt .L257 - ldr r3, .L258 + blt .L269 + ldr r3, .L270 + add r4, r5, #30 + ldr r2, .L270+4 movs r1, #64 - ldr r2, .L258+4 mov r0, r5 bl snprintf - adds r4, r5, r0 mov r0, r4 bl FtlPrintInfo2buf add r0, r0, r4 subs r0, r0, r5 +.L267: pop {r3, r4, r5, pc} -.L257: +.L269: movs r0, #0 - pop {r3, r4, r5, pc} -.L259: + b .L267 +.L271: .align 2 -.L258: +.L270: .word .LC0 .word .LC77 .fnend .size rknand_proc_ftlread, .-rknand_proc_ftlread + .section .rodata.str1.1 +.LC78: + .ascii "swblk %x ,avg = %x max= %x vpc= %x,ec=%x ,max ec=%x" + .ascii "\012\000" + .text .align 1 .global GetSwlReplaceBlock .syntax unified @@ -2545,162 +2728,160 @@ GetSwlReplaceBlock: @ 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} + ldr r4, .L296 .pad #28 sub sp, sp, #28 - ldr r4, .L284 - ldr r2, [r4, #2608] - ldr r3, [r4, #2620] + ldr r2, [r4, #2604] + ldr r3, [r4, #2616] cmp r2, r3 - bcs .L261 + bcs .L273 ldrh r1, [r4, #240] movs r3, #0 ldr r0, [r4, #2536] - str r3, [r4, #2600] -.L262: - cmp r3, r1 - bcc .L263 - ldr r5, [r4, #2600] + str r3, [r4, #2596] +.L274: + ldr r5, [r4, #2596] + cmp r1, r3 + bhi .L275 mov r0, r5 bl __aeabi_uidiv - str r0, [r4, #2608] - ldr r0, [r4, #2604] + str r0, [r4, #2604] + ldr r0, [r4, #2600] ldrh r1, [r4, #292] subs r0, r5, r0 bl __aeabi_uidiv - str r0, [r4, #2600] -.L264: - ldr r6, [r4, #2620] - ldr r7, [r4, #2608] + str r0, [r4, #2596] +.L276: + ldr r6, [r4, #2616] + ldr r8, [r4, #2604] add r3, r6, #256 - cmp r3, r7 - bls .L269 - ldr r2, [r4, #2616] + cmp r3, r8 + bls .L281 + ldr r2, [r4, #2612] add r3, r6, #768 cmp r3, r2 - bls .L269 -.L271: + bls .L281 +.L283: movw r5, #65535 -.L270: +.L282: mov r0, r5 add sp, sp, #28 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L263: +.L275: ldrh r2, [r0, r3, lsl #1] adds r3, r3, #1 - ldr r5, [r4, #2600] - add r2, r2, r5 - str r2, [r4, #2600] - b .L262 -.L261: - ldr r3, [r4, #2616] + add r5, r5, r2 + str r5, [r4, #2596] + b .L274 +.L273: + ldr r3, [r4, #2612] cmp r2, r3 - bls .L264 + bls .L276 adds r3, r3, #1 - str r3, [r4, #2616] + str r3, [r4, #2612] movs r3, #0 -.L266: +.L278: ldrh r2, [r4, #240] - cmp r3, r2 - bcs .L264 + cmp r2, r3 + bls .L276 ldr r1, [r4, #2536] ldrh r2, [r1, r3, lsl #1] adds r2, r2, #1 strh r2, [r1, r3, lsl #1] @ movhi adds r3, r3, #1 - b .L266 -.L269: + b .L278 +.L281: ldrh r0, [r4, #224] add r0, r0, r0, lsl #1 - ubfx r0, r0, #2, #16 + lsrs r0, r0, #2 bl GetFreeBlockMaxEraseCount add r3, r6, #64 - mov r9, r0 + mov r1, r0 cmp r0, r3 - bcc .L271 + bcc .L283 ldr r3, [r4, #2520] cmp r3, #0 - beq .L271 + beq .L283 ldrh r2, [r4, #240] - movw r1, #65535 + movw r7, #65535 ldr lr, [r4, #2516] + mov r10, r7 + ldr r9, [r4, #2536] movs r0, #0 - ldr r8, [r4, #2536] - mov r10, r1 str r2, [sp, #20] + mov r2, r7 mov fp, #6 - mov r2, r1 -.L272: +.L284: ldrh ip, [r3] cmp ip, r10 - bne .L275 + bne .L287 mov r5, r2 -.L274: +.L286: movw r3, #65535 cmp r5, r3 - beq .L271 - ldrh r10, [r8, r5, lsl #1] + beq .L283 + ldrh r10, [r9, r5, lsl #1] lsl fp, r5, #1 cmp r6, r10 - bcs .L276 + bcs .L288 bl GetFreeBlockMinEraseCount cmp r6, r0 it cc - strcc r1, [r4, #2620] -.L276: - cmp r7, r10 - bls .L271 + strcc r7, [r4, #2616] +.L288: + cmp r8, r10 + bls .L283 add r3, r10, #128 - cmp r9, r3 - ble .L271 - add r3, r10, #256 - cmp r7, r3 - bhi .L277 - ldr r3, [r4, #2616] + cmp r1, r3 + ble .L283 + add r2, r10, #256 + ldr r3, [r4, #2612] + cmp r8, r2 + bhi .L289 add r10, r10, #768 cmp r10, r3 - bcs .L271 -.L277: - str r9, [sp, #8] - mov r2, r7 - ldrh r3, [r8, fp] + bcs .L283 +.L289: + str r1, [sp, #8] mov r1, r5 - ldr r0, .L284+4 - str r3, [sp, #4] - ldr r3, [r4, #72] - ldrh r3, [r3, fp] - str r3, [sp] - ldr r3, [r4, #2616] + ldr r0, .L296+4 + ldrh r2, [r9, fp] + str r2, [sp, #4] + ldr r2, [r4, #72] + ldrh r2, [r2, fp] + str r2, [sp] + mov r2, r8 bl sftl_printk movs r3, #1 - str r3, [r4, #3168] - b .L270 -.L275: + str r3, [r4, #3164] + b .L282 +.L287: adds r0, r0, #1 ldr r5, [sp, #20] uxth r0, r0 - cmp r0, r5 - bhi .L271 + cmp r5, r0 + bcc .L283 ldrh r5, [r3, #4] - cbz r5, .L273 - ldr r5, .L284+8 + cbz r5, .L285 sub r3, r3, lr + ldr r5, .L296+8 asrs r3, r3, #1 muls r3, r5, r3 uxth r5, r3 - ldrh r3, [r8, r5, lsl #1] + ldrh r3, [r9, r5, lsl #1] cmp r6, r3 - bcs .L274 - cmp r1, r3 - itt hi - movhi r1, r3 - movhi r2, r5 -.L273: - mla r3, fp, ip, lr - b .L272 + bcs .L286 + cmp r3, r7 + itt cc + movcc r7, r3 + movcc r2, r5 .L285: + mla r3, fp, ip, lr + b .L284 +.L297: .align 2 -.L284: +.L296: .word .LANCHOR0 .word .LC78 .word -1431655765 @@ -2721,18 +2902,18 @@ free_data_superblock: push {r3, lr} .save {r3, lr} cmp r0, r2 - beq .L287 - ldr r2, .L288 + beq .L299 + ldr r2, .L300 movs r1, #0 ldr r2, [r2, #72] strh r1, [r2, r0, lsl #1] @ movhi bl INSERT_FREE_LIST -.L287: +.L299: movs r0, #0 pop {r3, pc} -.L289: +.L301: .align 2 -.L288: +.L300: .word .LANCHOR0 .fnend .size free_data_superblock, .-free_data_superblock @@ -2750,100 +2931,98 @@ get_new_active_ppa: push {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} movw r3, #65535 - ldrh r2, [r0] mov r4, r0 + ldrh r2, [r0] cmp r2, r3 - bne .L291 - movw r2, #2785 - ldr r1, .L305 - ldr r0, .L305+4 + bne .L303 + ldr r1, .L317 + movw r2, #2792 + ldr r0, .L317+4 bl sftl_printk -.L291: - ldr r6, .L305+8 +.L303: + ldr r6, .L317+8 ldrh r2, [r4, #2] ldrh r3, [r6, #302] cmp r2, r3 - bne .L292 - movw r2, #2786 - ldr r1, .L305 - ldr r0, .L305+4 + bne .L304 + ldr r1, .L317 + movw r2, #2793 + ldr r0, .L317+4 bl sftl_printk -.L292: +.L304: ldrh r3, [r4, #4] - cbnz r3, .L293 - movw r2, #2787 - ldr r1, .L305 - ldr r0, .L305+4 + cbnz r3, .L305 + ldr r1, .L317 + movw r2, #2794 + ldr r0, .L317+4 bl sftl_printk -.L293: - ldrb r2, [r4, #6] @ zero_extendqisi2 - movs r3, #0 - ldrh r1, [r6, #232] - movw r5, #65535 - strb r3, [r4, #10] - adds r2, r2, #8 - ldrh r0, [r4, r2, lsl #1] - mov r2, r3 -.L294: - cmp r0, r5 - beq .L296 - ldrh r5, [r4, #2] - ldrh r6, [r6, #302] - cmp r5, r6 - bcs .L300 - ldrh r2, [r4, #4] - orr r5, r5, r0, lsl #10 +.L305: ldrb r3, [r4, #6] @ zero_extendqisi2 - movw r0, #65535 - subs r2, r2, #1 - uxth r2, r2 - strh r2, [r4, #4] @ movhi -.L299: - adds r3, r3, #1 - uxtb r3, r3 - cmp r1, r3 + movs r1, #0 + strb r1, [r4, #10] + movw r7, #65535 + adds r3, r3, #8 + ldrh r0, [r6, #232] + ldrh r5, [r4, r3, lsl #1] +.L306: + ldrh r2, [r4, #2] + cmp r5, r7 + beq .L308 + ldrh r6, [r6, #302] + cmp r6, r2 + bls .L312 + ldrh r3, [r4, #4] + orr r5, r2, r5, lsl #10 + ldrb r2, [r4, #6] @ zero_extendqisi2 + movw r7, #65535 + subs r3, r3, #1 + uxth r3, r3 + strh r3, [r4, #4] @ movhi +.L311: + adds r1, r2, #1 + uxtb r2, r1 + cmp r0, r2 itttt eq - ldrheq r3, [r4, #2] - addeq r3, r3, #1 - strheq r3, [r4, #2] @ movhi - moveq r3, #0 - add r7, r3, #8 - ldrh r7, [r4, r7, lsl #1] - cmp r7, r0 - beq .L299 - strb r3, [r4, #6] - ldrh r3, [r4, #2] - cmp r3, r6 - bne .L290 - cbz r2, .L290 - movw r2, #2810 - ldr r1, .L305 - ldr r0, .L305+4 + ldrheq r2, [r4, #2] + addeq r2, r2, #1 + strheq r2, [r4, #2] @ movhi + moveq r2, #0 + add r1, r2, #8 + ldrh r1, [r4, r1, lsl #1] + cmp r1, r7 + beq .L311 + strb r2, [r4, #6] + ldrh r2, [r4, #2] + cmp r2, r6 + bne .L302 + cbz r3, .L302 + ldr r1, .L317 + movw r2, #2817 + ldr r0, .L317+4 bl sftl_printk -.L290: +.L302: mov r0, r5 pop {r3, r4, r5, r6, r7, pc} -.L296: +.L308: ldrb r3, [r4, #6] @ zero_extendqisi2 adds r3, r3, #1 uxtb r3, r3 - cmp r3, r1 strb r3, [r4, #6] - itttt eq - ldrheq r3, [r4, #2] - strbeq r2, [r4, #6] - addeq r3, r3, #1 - strheq r3, [r4, #2] @ movhi + cmp r3, r0 + ittt eq + strbeq r1, [r4, #6] + addeq r2, r2, #1 + strheq r2, [r4, #2] @ movhi ldrb r3, [r4, #6] @ zero_extendqisi2 adds r3, r3, #8 - ldrh r0, [r4, r3, lsl #1] - b .L294 -.L300: + ldrh r5, [r4, r3, lsl #1] + b .L306 +.L312: movw r5, #65535 - b .L290 -.L306: + b .L302 +.L318: .align 2 -.L305: +.L317: .word .LANCHOR1+111 .word .LC8 .word .LANCHOR0 @@ -2860,90 +3039,88 @@ FtlGcBufInit: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L316 + ldr r3, .L328 + movs r1, #0 + push {r4, r5, r6, r7, r8, lr} + .save {r4, r5, r6, r7, r8, lr} mov ip, #20 - push {r4, r5, r6, r7, r8, r9, lr} - .save {r4, r5, r6, r7, r8, r9, lr} - mov r9, #12 - movs r6, #1 - movs r2, #0 - mov r7, r3 - str r2, [r3, #3172] -.L308: - ldrh r1, [r3, #232] - uxth r0, r2 - adds r4, r2, #1 - cmp r0, r1 - bcc .L311 - ldr r7, .L316 - mov ip, #12 + movs r6, #12 + movs r7, #1 + str r1, [r3, #3168] +.L320: + ldrh r2, [r3, #232] + uxth r0, r1 + cmp r2, r0 + bhi .L323 + ldr r7, .L328 + movs r5, #12 movs r6, #0 -.L312: - ldr r2, [r3, #3192] - cmp r1, r2 - bcc .L315 - pop {r4, r5, r6, r7, r8, r9, pc} -.L311: - uxth r2, r2 - ldr r8, [r3, #3176] - mul lr, r9, r2 - add r1, r8, lr +.L324: + ldr r1, [r3, #3188] + cmp r2, r1 + bcc .L327 + pop {r4, r5, r6, r7, r8, pc} +.L323: + uxth r0, r1 + ldr r5, [r3, #3172] + ldr lr, [r3, #3176] + adds r1, r1, #1 + mul r4, r6, r0 + adds r2, r5, r4 + str r7, [r2, #8] + ldrh r2, [r3, #310] + muls r2, r0, r2 + it mi + addmi r2, r2, #3 + bic r2, r2, #3 + add r2, r2, lr + str r2, [r5, r4] + ldrh r2, [r3, #312] + ldr r5, [r3, #3172] + ldr r8, [r3, #3180] + add lr, r5, r4 + muls r2, r0, r2 + it mi + addmi r2, r2, #3 + bic r2, r2, #3 + add r2, r2, r8 + str r2, [lr, #4] + ldr r2, [r3, #3184] + mla r2, ip, r0, r2 + ldr r0, [r5, r4] + str r0, [r2, #8] + ldr r0, [lr, #4] + str r0, [r2, #12] + b .L320 +.L327: + mul r0, r5, r2 + ldr r4, [r3, #3172] + ldr ip, [r3, #3176] + adds r1, r4, r0 str r6, [r1, #8] ldrh r1, [r3, #310] muls r1, r2, r1 it mi addmi r1, r1, #3 - bic r0, r1, #3 - ldr r1, [r3, #3180] - add r1, r1, r0 - str r1, [r8, lr] - ldr r5, [r7, #3184] - ldr r0, [r3, #3176] + bic r1, r1, #3 + add r1, r1, ip + str r1, [r4, r0] + ldr r4, [r7, #3180] + ldr r1, [r3, #3172] + add r0, r0, r1 ldrh r1, [r3, #312] muls r1, r2, r1 + add r2, r2, #1 it mi addmi r1, r1, #3 + uxth r2, r2 bic r1, r1, #3 - add r8, r0, lr - add r1, r1, r5 - str r1, [r8, #4] - ldr r1, [r3, #3188] - mla r2, ip, r2, r1 - ldr r1, [r0, lr] - str r1, [r2, #8] - ldr r1, [r8, #4] - str r1, [r2, #12] - mov r2, r4 - b .L308 -.L315: - mul r0, ip, r1 - ldr r4, [r3, #3176] - ldr r5, [r3, #3180] - adds r2, r4, r0 - str r6, [r2, #8] - ldrh r2, [r3, #310] - muls r2, r1, r2 - it mi - addmi r2, r2, #3 - bic r2, r2, #3 - add r2, r2, r5 - str r2, [r4, r0] - ldr r2, [r3, #3176] - ldr r4, [r7, #3184] - add r0, r0, r2 - ldrh r2, [r3, #312] - muls r2, r1, r2 - it mi - addmi r2, r2, #3 - bic r2, r2, #3 - adds r1, r1, #1 - add r2, r2, r4 - uxth r1, r1 - str r2, [r0, #4] - b .L312 -.L317: + add r1, r1, r4 + str r1, [r0, #4] + b .L324 +.L329: .align 2 -.L316: +.L328: .word .LANCHOR0 .fnend .size FtlGcBufInit, .-FtlGcBufInit @@ -2958,41 +3135,41 @@ FtlGcBufFree: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L325 + ldr r3, .L337 push {r4, r5, r6, r7, r8, r9, r10, lr} .save {r4, r5, r6, r7, r8, r9, r10, lr} movs r5, #0 - mov r10, #20 - mov lr, #12 mov r8, r5 - ldr ip, [r3, #3192] - ldr r6, [r3, #3176] -.L319: + movs r7, #20 + mov lr, #12 + ldr ip, [r3, #3188] + ldr r6, [r3, #3172] +.L331: uxth r3, r5 cmp r1, r3 - bls .L318 - mla r4, r10, r3, r0 + bls .L330 + mla r4, r7, r3, r0 movs r2, #0 -.L320: +.L332: uxth r3, r2 cmp ip, r3 - bls .L321 + bls .L333 mul r3, lr, r3 - ldr r7, [r4, #8] + ldr r10, [r4, #8] adds r2, r2, #1 add r9, r6, r3 ldr r3, [r6, r3] - cmp r3, r7 - bne .L320 + cmp r3, r10 + bne .L332 str r8, [r9, #8] -.L321: +.L333: adds r5, r5, #1 - b .L319 -.L318: + b .L331 +.L330: pop {r4, r5, r6, r7, r8, r9, r10, pc} -.L326: +.L338: .align 2 -.L325: +.L337: .word .LANCHOR0 .fnend .size FtlGcBufFree, .-FtlGcBufFree @@ -3007,43 +3184,43 @@ FtlGcBufAlloc: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L334 + ldr r3, .L346 mov ip, #12 push {r4, r5, r6, r7, r8, r9, lr} .save {r4, r5, r6, r7, r8, r9, lr} movs r4, #0 mov lr, #1 mov r8, #20 - ldr r5, [r3, #3192] - ldr r6, [r3, #3176] -.L328: + ldr r6, [r3, #3188] + ldr r5, [r3, #3172] +.L340: uxth r2, r4 cmp r1, r2 - bhi .L332 + bhi .L344 pop {r4, r5, r6, r7, r8, r9, pc} -.L332: +.L344: mov r9, #0 -.L329: +.L341: uxth r3, r9 - cmp r5, r3 - bls .L330 - mla r3, ip, r3, r6 + cmp r6, r3 + bls .L342 + mla r3, ip, r3, r5 add r9, r9, #1 ldr r7, [r3, #8] cmp r7, #0 - bne .L329 + bne .L341 mla r2, r8, r2, r0 ldr r7, [r3] str lr, [r3, #8] str r7, [r2, #8] ldr r3, [r3, #4] str r3, [r2, #12] -.L330: +.L342: adds r4, r4, #1 - b .L328 -.L335: + b .L340 +.L347: .align 2 -.L334: +.L346: .word .LANCHOR0 .fnend .size FtlGcBufAlloc, .-FtlGcBufAlloc @@ -3059,24 +3236,24 @@ IsBlkInGcList: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L341 - ldr r3, [r2, #3196] - ldrh r2, [r2, #3200] + ldr r2, .L353 + ldr r3, [r2, #3192] + ldrh r2, [r2, #3196] add r2, r3, r2, lsl #1 -.L337: +.L349: cmp r3, r2 - bne .L339 + bne .L351 movs r0, #0 bx lr -.L339: +.L351: ldrh r1, [r3], #2 cmp r1, r0 - bne .L337 + bne .L349 movs r0, #1 bx lr -.L342: +.L354: .align 2 -.L341: +.L353: .word .LANCHOR0 .fnend .size IsBlkInGcList, .-IsBlkInGcList @@ -3095,48 +3272,51 @@ FtlGcUpdatePage: .save {r3, r4, r5, r6, r7, lr} mov r5, r0 ubfx r0, r0, #10, #16 - mov r6, r1 - mov r7, r2 - movs r4, #0 + mov r6, r2 + mov r7, r1 bl P2V_block_in_plane - ldr r3, .L347 - ldrh r1, [r3, #3200] - ldr r2, [r3, #3196] -.L344: - uxth ip, r4 + ldr r3, .L359 + movs r4, #0 + ldr r2, [r3, #3192] + ldrh ip, [r3, #3196] + sub lr, r2, #2 +.L356: + uxth r1, r4 cmp ip, r1 - bcc .L346 - bne .L345 - strh r0, [r2, ip, lsl #1] @ movhi - ldrh r0, [r3, #3200] - adds r0, r0, #1 - strh r0, [r3, #3200] @ movhi - b .L345 -.L346: + bhi .L358 + itttt eq + strheq r0, [r2, r4, lsl #1] @ movhi + ldrheq r2, [r3, #3196] + addeq r2, r2, #1 + strheq r2, [r3, #3196] @ movhi + b .L357 +.L358: adds r4, r4, #1 - add ip, r2, r4, lsl #1 - ldrh ip, [ip, #-2] - cmp ip, r0 - bne .L344 -.L345: - ldrh r2, [r3, #3208] - movs r0, #12 - muls r0, r2, r0 - ldr r2, [r3, #3204] - adds r1, r2, r0 - str r6, [r1, #4] - str r7, [r1, #8] - str r5, [r2, r0] - ldrh r2, [r3, #3208] + ldrh r1, [lr, r4, lsl #1] + cmp r1, r0 + bne .L356 +.L357: + ldrh r4, [r3, #3204] + movs r2, #12 + muls r4, r2, r4 + ldr r2, [r3, #3200] + adds r1, r2, r4 + strd r7, r6, [r1, #4] + str r5, [r2, r4] + ldrh r2, [r3, #3204] adds r2, r2, #1 - strh r2, [r3, #3208] @ movhi + strh r2, [r3, #3204] @ movhi pop {r3, r4, r5, r6, r7, pc} -.L348: +.L360: .align 2 -.L347: +.L359: .word .LANCHOR0 .fnend .size FtlGcUpdatePage, .-FtlGcUpdatePage + .section .rodata.str1.1 +.LC79: + .ascii "FtlGcRefreshBlock 0x%x\012\000" + .text .align 1 .global FtlGcRefreshBlock .syntax unified @@ -3148,38 +3328,42 @@ FtlGcRefreshBlock: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 + mov r1, r0 push {r4, lr} .save {r4, lr} - mov r1, r0 mov r4, r0 - ldr r0, .L352 + ldr r0, .L364 bl sftl_printk - ldr r3, .L352+4 + ldr r3, .L364+4 ldrh r0, [r3, #222] - cmp r4, r0 - beq .L350 + cmp r0, r4 + beq .L362 ldrh r1, [r3, #220] - cmp r4, r1 - beq .L350 + cmp r1, r4 + beq .L362 movw r2, #65535 cmp r0, r2 - bne .L351 + bne .L363 strh r4, [r3, #222] @ movhi -.L350: +.L362: movs r0, #0 pop {r4, pc} -.L351: +.L363: cmp r1, r2 it eq strheq r4, [r3, #220] @ movhi - b .L350 -.L353: + b .L362 +.L365: .align 2 -.L352: +.L364: .word .LC79 .word .LANCHOR0 .fnend .size FtlGcRefreshBlock, .-FtlGcRefreshBlock + .section .rodata.str1.1 +.LC80: + .ascii "FtlGcMarkBadPhyBlk %d 0x%x\012\000" + .text .align 1 .global FtlGcMarkBadPhyBlk .syntax unified @@ -3194,41 +3378,40 @@ FtlGcMarkBadPhyBlk: push {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r5, r0 - ldr r4, .L358 + ldr r4, .L370 bl P2V_block_in_plane mov r2, r5 mov r6, r0 - ldrh r1, [r4, #3210] - ldr r0, .L358+4 + ldr r0, .L370+4 + ldrh r1, [r4, #3206] bl sftl_printk mov r0, r6 bl FtlGcRefreshBlock - ldrh r3, [r4, #3210] + ldrh r3, [r4, #3206] + addw r1, r4, #3208 movs r2, #0 - addw r0, r4, #3212 -.L355: - uxth r1, r2 - cmp r3, r1 - bhi .L357 +.L367: + uxth r0, r2 + cmp r3, r0 + bhi .L369 cmp r3, #15 itttt ls addls r2, r3, #1 - strhls r2, [r4, #3210] @ movhi + strhls r2, [r4, #3206] @ movhi addls r4, r4, r3, lsl #1 - strhls r5, [r4, #3212] @ movhi - b .L356 -.L357: + strhls r5, [r4, #3208] @ movhi + b .L368 +.L369: + ldrh r0, [r1], #2 adds r2, r2, #1 - add r1, r0, r2, lsl #1 - ldrh r1, [r1, #-2] - cmp r1, r5 - bne .L355 -.L356: + cmp r0, r5 + bne .L367 +.L368: movs r0, #0 pop {r4, r5, r6, pc} -.L359: +.L371: .align 2 -.L358: +.L370: .word .LANCHOR0 .word .LC80 .fnend @@ -3246,32 +3429,32 @@ FtlGcReFreshBadBlk: @ frame_needed = 0, uses_anonymous_args = 0 push {r4, lr} .save {r4, lr} - ldr r4, .L366 - ldrh r3, [r4, #3210] - cbz r3, .L361 + ldr r4, .L378 + ldrh r3, [r4, #3206] + cbz r3, .L373 ldrh r1, [r4, #222] movw r2, #65535 cmp r1, r2 - bne .L361 - ldrh r2, [r4, #3246] + bne .L373 + ldrh r2, [r4, #3242] cmp r2, r3 itt cs movcs r3, #0 - strhcs r3, [r4, #3246] @ movhi - ldrh r3, [r4, #3246] + strhcs r3, [r4, #3242] @ movhi + ldrh r3, [r4, #3242] add r3, r4, r3, lsl #1 - ldrh r0, [r3, #3212] + ldrh r0, [r3, #3208] bl P2V_block_in_plane bl FtlGcRefreshBlock - ldrh r3, [r4, #3246] + ldrh r3, [r4, #3242] adds r3, r3, #1 - strh r3, [r4, #3246] @ movhi -.L361: + strh r3, [r4, #3242] @ movhi +.L373: movs r0, #0 pop {r4, pc} -.L367: +.L379: .align 2 -.L366: +.L378: .word .LANCHOR0 .fnend .size FtlGcReFreshBadBlk, .-FtlGcReFreshBadBlk @@ -3287,12 +3470,8 @@ ftl_malloc: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r1, .L369 + movw r1, #3265 b __kmalloc -.L370: - .align 2 -.L369: - .word 6291649 .fnend .size ftl_malloc, .-ftl_malloc .align 1 @@ -3310,6 +3489,18 @@ ftl_free: b kfree .fnend .size ftl_free, .-ftl_free + .section .rodata.str1.1 +.LC81: + .ascii "%s %p + 0x%x:\000" +.LC82: + .ascii "0x%08x,\000" +.LC83: + .ascii "0x%04x,\000" +.LC84: + .ascii "0x%02x,\000" +.LC85: + .ascii "\012\000" + .text .align 1 .global rknand_print_hex .syntax unified @@ -3319,66 +3510,79 @@ ftl_free: .type rknand_print_hex, %function rknand_print_hex: .fnstart - @ args = 0, pretend = 0, frame = 0 + @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 - push {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} - .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} - movs r6, #0 - ldr fp, .L381+16 - mov r10, r0 - mov r7, r1 + push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr} + .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} + .pad #12 + movs r7, #0 + ldr r10, .L391 + ldr fp, .L391+4 + mov r9, r0 + mov r5, r1 mov r8, r2 - mov r9, r3 - mov r5, r6 - mov r4, r6 -.L373: - cmp r4, r9 - bcc .L379 - ldr r0, .L381 - pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} + mov r6, r7 + mov r4, r7 + str r3, [sp, #4] +.L383: + ldr r3, [sp, #4] + cmp r3, r4 + bhi .L389 + ldr r0, .L391+8 + add sp, sp, #12 + @ sp needed + pop {r4, r5, r6, r7, r8, r9, r10, fp, lr} b sftl_printk -.L379: - cbnz r5, .L374 - mov r3, r6 - mov r2, r7 - mov r1, r10 - ldr r0, .L381+4 +.L389: + cbnz r6, .L384 + ldr r0, .L391+12 + mov r3, r7 + mov r2, r5 + mov r1, r9 bl sftl_printk -.L374: +.L384: cmp r8, #4 - bne .L375 - ldr r1, [r7, r4, lsl #2] - ldr r0, .L381+8 -.L380: - adds r5, r5, #1 + bne .L385 + ldr r1, [r5, r4, lsl #2] + ldr r0, .L391+16 +.L390: + adds r6, r6, #1 bl sftl_printk - cmp r5, #15 - bls .L378 - movs r5, #0 - ldr r0, .L381 + cmp r6, #15 + bls .L388 + movs r6, #0 + ldr r0, .L391+8 bl sftl_printk -.L378: +.L388: adds r4, r4, #1 - add r6, r6, r8 - b .L373 -.L375: + add r7, r7, r8 + b .L383 +.L385: cmp r8, #2 - ittee eq - ldrheq r1, [r7, r4, lsl #1] + itete eq moveq r0, fp - ldrbne r1, [r7, r4] @ zero_extendqisi2 - ldrne r0, .L381+12 - b .L380 -.L382: + movne r0, r10 + ldrheq r1, [r5, r4, lsl #1] + ldrbne r1, [r5, r4] @ zero_extendqisi2 + b .L390 +.L392: .align 2 -.L381: +.L391: + .word .LC84 + .word .LC83 .word .LC85 .word .LC81 .word .LC82 - .word .LC84 - .word .LC83 .fnend .size rknand_print_hex, .-rknand_print_hex + .section .rodata.str1.1 +.LC86: + .ascii "%s: addr: %x is in id block!!!!!!!!!!\012\000" +.LC87: + .ascii "not free: w: d:\000" +.LC88: + .ascii "not free: w: s:\000" + .text .align 1 .global FlashEraseBlocks .syntax unified @@ -3392,106 +3596,105 @@ FlashEraseBlocks: @ frame_needed = 0, uses_anonymous_args = 0 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - mov r8, r2 - ldr r5, .L400 + mov r6, r0 + ldr fp, .L409 .pad #28 sub sp, sp, #28 - mov r4, r0 - mov fp, r0 - ldr r2, .L400+4 - movs r7, #0 - ldrh r9, [r5, #12] - mov r10, #-1 - ldr r3, [r2] - str r2, [sp, #4] + mov r7, r2 + mov r3, sp + movs r4, #0 + bic r9, r3, #8160 + bic r9, r9, #31 + ldrh r10, [fp, #12] + ldr r3, [r9, #24] str r3, [sp, #20] - lsl r3, r9, #3 + lsl r3, r10, #3 str r3, [sp] -.L384: - cmp r7, r8 - beq .L388 + add r3, r2, r2, lsl #2 + str r3, [sp, #4] +.L394: + ldr r3, [sp, #4] + cmp r4, r3 + beq .L397 add r2, sp, #12 add r1, sp, #16 - mov r0, fp + add r0, r6, r4, lsl #2 + mov r5, r6 bl l2p_addr_tran - ldr r6, [sp, #12] - cbnz r6, .L385 + ldr r8, [sp, #12] + cmp r8, #0 + bne .L395 ldr r2, [sp, #16] ldr r3, [sp] cmp r3, r2 - bls .L385 - ldr r5, .L400+8 - ldr r7, .L400+12 - ldr r9, .L400+20 - b .L399 -.L387: + bls .L395 + ldr r6, .L409+4 + ldr r4, .L409+8 +.L396: mov r3, #-1 ldr r2, [sp, #16] - str r3, [r4, #-20] - mov r1, r5 - mov r0, r7 - adds r6, r6, #1 + str r3, [r5] + mov r1, r6 + mov r0, r4 + add r8, r8, #1 bl sftl_printk + ldr r1, [r5, #8] + ldr r0, .L409+12 movs r3, #16 movs r2, #4 - ldr r1, [r4, #-12] - mov r0, r9 + adds r5, r5, #20 bl rknand_print_hex movs r3, #4 - ldr r1, [r4, #-8] + ldr r1, [r5, #-8] mov r2, r3 - ldr r0, .L400+16 + ldr r0, .L409+16 bl rknand_print_hex -.L399: - cmp r6, r8 - add r4, r4, #20 - bne .L387 + cmp r7, r8 + bne .L396 bl dump_stack -.L388: - ldr r3, [sp, #4] - movs r0, #0 +.L397: ldr r2, [sp, #20] - ldr r3, [r3] + ldr r3, [r9, #24] cmp r2, r3 - beq .L395 + beq .L404 bl __stack_chk_fail -.L385: - ldr r2, [r5, #3252] - uxtb r0, r6 +.L395: + ldr r2, [fp, #3248] + uxtb r0, r8 ldr r1, [sp, #16] blx r2 cmp r0, #0 mov r2, r0 it ne - movne r2, r10 - str r2, [fp] - ldrh r2, [r5, #14] + movne r2, #-1 + str r2, [r6, r4, lsl #2] + ldrh r2, [fp, #14] cmp r2, #4 - bne .L392 + bne .L401 ldr r1, [sp, #16] - ldr r2, [r5, #3252] + ldr r2, [fp, #3248] ldrb r0, [sp, #12] @ zero_extendqisi2 - add r1, r1, r9 + add r1, r1, r10 blx r2 - cbz r0, .L392 - str r10, [fp] -.L392: - adds r7, r7, #1 - add fp, fp, #20 - b .L384 -.L395: + cbz r0, .L401 + mov r3, #-1 + str r3, [r6, r4, lsl #2] +.L401: + adds r4, r4, #5 + b .L394 +.L404: + movs r0, #0 add sp, sp, #28 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L401: +.L410: .align 2 -.L400: +.L409: .word .LANCHOR0 - .word __stack_chk_guard .word .LANCHOR1+130 .word .LC86 - .word .LC88 .word .LC87 + .word .LC88 .fnend .size FlashEraseBlocks, .-FlashEraseBlocks .align 1 @@ -3506,21 +3709,21 @@ FtlFreeSysBlkQueueIn: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 subs r3, r0, #1 - movw r2, #65533 - uxth r3, r3 push {r4, r5, r6, lr} .save {r4, r5, r6, lr} + movw r2, #65533 + uxth r3, r3 mov r5, r0 cmp r3, r2 - bhi .L402 - ldr r4, .L411 + bhi .L411 + ldr r4, .L420 ldrh r3, [r4, #418] cmp r3, #1024 - beq .L402 - cbz r1, .L404 + beq .L411 + cbz r1, .L413 bl P2V_block_in_plane mov r6, r0 - ldr r0, [r4, #3272] + ldr r0, [r4, #3268] lsls r3, r5, #10 movs r2, #1 mov r1, r2 @@ -3530,10 +3733,10 @@ FtlFreeSysBlkQueueIn: ldrh r3, [r2, r6, lsl #1] adds r3, r3, #1 strh r3, [r2, r6, lsl #1] @ movhi - ldr r3, [r4, #2612] + ldr r3, [r4, #2608] adds r3, r3, #1 - str r3, [r4, #2612] -.L404: + str r3, [r4, #2608] +.L413: ldrh r3, [r4, #418] adds r3, r3, #1 strh r3, [r4, #418] @ movhi @@ -3541,16 +3744,21 @@ FtlFreeSysBlkQueueIn: add r2, r4, r3, lsl #1 adds r3, r3, #1 ubfx r3, r3, #0, #10 - strh r5, [r2, #420] @ movhi strh r3, [r4, #416] @ movhi -.L402: - pop {r4, r5, r6, pc} -.L412: - .align 2 + strh r5, [r2, #420] @ movhi .L411: + pop {r4, r5, r6, pc} +.L421: + .align 2 +.L420: .word .LANCHOR0 .fnend .size FtlFreeSysBlkQueueIn, .-FtlFreeSysBlkQueueIn + .section .rodata.str1.1 +.LC89: + .ascii "FtlFreeSysBlkQueueOut = %x, free count = %d, error\012" + .ascii "\000" + .text .align 1 .global FtlFreeSysBlkQueueOut .syntax unified @@ -3564,51 +3772,55 @@ FtlFreeSysBlkQueueOut: @ frame_needed = 0, uses_anonymous_args = 0 push {r3, r4, r5, lr} .save {r3, r4, r5, lr} - ldr r4, .L418 + ldr r4, .L427 ldrh r2, [r4, #418] - cbz r2, .L417 + cbz r2, .L426 ldrh r3, [r4, #414] subs r2, r2, #1 - ldr r0, [r4, #3272] + ldr r0, [r4, #3268] strh r2, [r4, #418] @ movhi movs r2, #1 add r1, r4, r3, lsl #1 adds r3, r3, #1 ubfx r3, r3, #0, #10 + strh r3, [r4, #414] @ movhi ldrh r5, [r1, #420] mov r1, r2 - strh r3, [r4, #414] @ movhi lsls r3, r5, #10 str r3, [r0, #4] bl FlashEraseBlocks - ldr r3, [r4, #2612] - adds r3, r3, #1 - str r3, [r4, #2612] -.L414: - subs r3, r5, #1 + ldr r3, [r4, #2608] movw r2, #65533 + adds r3, r3, #1 + str r3, [r4, #2608] + subs r3, r5, #1 uxth r3, r3 cmp r3, r2 - bls .L415 + bls .L424 +.L423: ldrh r2, [r4, #418] mov r1, r5 - ldr r0, .L418+4 + ldr r0, .L427+4 bl sftl_printk -.L416: - b .L416 -.L417: +.L425: + b .L425 +.L426: movw r5, #65535 - b .L414 -.L415: + b .L423 +.L424: mov r0, r5 pop {r3, r4, r5, pc} -.L419: +.L428: .align 2 -.L418: +.L427: .word .LANCHOR0 .word .LC89 .fnend .size FtlFreeSysBlkQueueOut, .-FtlFreeSysBlkQueueOut + .section .rodata.str1.1 +.LC90: + .ascii "FtlFreeSysBlkQueueOut = %x, free count = %d\012\000" + .text .align 1 .global ftl_map_blk_alloc_new_blk .syntax unified @@ -3623,56 +3835,56 @@ ftl_map_blk_alloc_new_blk: push {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} mov r4, r0 - ldrh r1, [r0, #10] movs r3, #0 + ldrh r1, [r0, #10] ldr r2, [r0, #12] -.L421: +.L430: uxth r5, r3 - cmp r5, r1 - bcs .L424 + cmp r1, r5 + bls .L435 mov r7, r2 adds r3, r3, #1 - ldrh r6, [r7] adds r2, r2, #2 + ldrh r6, [r7] cmp r6, #0 - bne .L421 + bne .L430 bl FtlFreeSysBlkQueueOut subs r3, r0, #1 movw r2, #65533 - uxth r3, r3 mov r1, r0 + uxth r3, r3 strh r0, [r7] @ movhi cmp r3, r2 - bls .L422 - ldr r3, .L428 - ldr r0, .L428+4 + bls .L431 + ldr r3, .L437 + ldr r0, .L437+4 ldrh r2, [r3, #418] bl sftl_printk -.L423: - b .L423 -.L422: +.L432: + b .L432 +.L431: ldr r3, [r4, #28] strh r6, [r4, #2] @ movhi - strh r5, [r4] @ movhi adds r3, r3, #1 str r3, [r4, #28] ldrh r3, [r4, #8] + strh r5, [r4] @ movhi adds r3, r3, #1 strh r3, [r4, #8] @ movhi -.L424: ldrh r3, [r4, #10] cmp r3, r5 - bhi .L426 + bhi .L433 +.L435: + ldr r1, .L437+8 movw r2, #578 - ldr r1, .L428+8 - ldr r0, .L428+12 + ldr r0, .L437+12 bl sftl_printk -.L426: +.L433: movs r0, #0 pop {r3, r4, r5, r6, r7, pc} -.L429: +.L438: .align 2 -.L428: +.L437: .word .LANCHOR0 .word .LC90 .word .LANCHOR1+147 @@ -3694,6 +3906,10 @@ ftl_memset: b memset .fnend .size ftl_memset, .-ftl_memset + .section .rodata.str1.1 +.LC91: + .ascii "%s error allocating memory. return -1\012\000" + .text .align 1 .global FtlMemInit .syntax unified @@ -3708,137 +3924,137 @@ FtlMemInit: push {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} movw r3, #65535 - ldr r4, .L532 + ldr r4, .L539 movs r5, #0 movs r7, #12 - movs r6, #20 + mov r8, #80 ldrh r0, [r4, #306] - str r3, [r4, #3280] + str r5, [r4, #2588] + str r5, [r4, #2592] + lsls r0, r0, #1 + str r5, [r4, #2576] + str r5, [r4, #2564] + str r5, [r4, #2560] + str r5, [r4, #2568] + str r5, [r4, #2572] + str r5, [r4, #2556] + str r5, [r4, #2596] + str r5, [r4, #2600] + str r5, [r4, #2608] + str r5, [r4, #2612] + str r5, [r4, #2616] + str r5, [r4, #3272] + str r5, [r4, #3164] + str r3, [r4, #3276] + str r5, [r4, #3280] + str r5, [r4, #3156] + str r5, [r4, #3284] strh r3, [r4, #222] @ movhi strh r3, [r4, #220] @ movhi movs r3, #32 - strh r3, [r4, #3156] @ movhi - lsls r0, r0, #1 + strh r5, [r4, #3160] @ movhi + strh r3, [r4, #3152] @ movhi movs r3, #128 - str r5, [r4, #2592] - strh r3, [r4, #3158] @ movhi - str r5, [r4, #2596] - str r5, [r4, #2580] - str r5, [r4, #2568] - str r5, [r4, #2564] - str r5, [r4, #2572] - str r5, [r4, #2576] - str r5, [r4, #2560] - str r5, [r4, #2600] - str r5, [r4, #2604] - str r5, [r4, #2612] - str r5, [r4, #2616] - str r5, [r4, #2620] - str r5, [r4, #3276] - str r5, [r4, #3168] - str r5, [r4, #3284] - str r5, [r4, #3160] - str r5, [r4, #3288] - strh r5, [r4, #3164] @ movhi - strh r5, [r4, #3210] @ movhi - strh r5, [r4, #3246] @ movhi + strh r5, [r4, #3206] @ movhi + strh r3, [r4, #3154] @ movhi + strh r5, [r4, #3242] @ movhi bl ftl_malloc - str r0, [r4, #3196] + str r0, [r4, #3192] ldrh r0, [r4, #306] muls r0, r7, r0 bl ftl_malloc - ldrh r3, [r4, #232] - str r0, [r4, #3204] - muls r6, r3, r6 - lsl r8, r6, #2 + ldrh r6, [r4, #232] + str r0, [r4, #3200] + mul r8, r8, r6 mov r0, r8 bl ftl_malloc + movs r3, #20 + str r0, [r4, #3288] + muls r6, r3, r6 + mov r0, r6 + bl ftl_malloc str r0, [r4, #3292] - mov r0, r6 - bl ftl_malloc - str r0, [r4, #3296] mov r0, r8 bl ftl_malloc - str r0, [r4, #3300] + str r0, [r4, #3296] mov r0, r6 bl ftl_malloc - str r0, [r4, #3272] + str r0, [r4, #3268] mov r0, r6 bl ftl_malloc ldrh r3, [r4, #232] ldrh r6, [r4, #310] - str r0, [r4, #3188] + str r0, [r4, #3184] lsls r3, r3, #1 mov r0, r6 adds r3, r3, #1 - str r3, [r4, #3192] + str r3, [r4, #3188] + bl ftl_malloc + str r0, [r4, #3300] + mov r0, r6 bl ftl_malloc str r0, [r4, #3304] mov r0, r6 bl ftl_malloc str r0, [r4, #3308] - mov r0, r6 - bl ftl_malloc - str r0, [r4, #3312] - ldr r0, [r4, #3192] + ldr r0, [r4, #3188] muls r0, r6, r0 bl ftl_malloc - str r0, [r4, #3180] - mov r0, r6 - bl ftl_malloc - str r0, [r4, #3316] - mov r0, r6 - bl ftl_malloc - str r0, [r4, #3320] - ldr r0, [r4, #3192] - muls r0, r7, r0 - bl ftl_malloc str r0, [r4, #3176] mov r0, r6 bl ftl_malloc - str r0, [r4, #3324] + str r0, [r4, #3312] mov r0, r6 bl ftl_malloc - str r0, [r4, #3328] + str r0, [r4, #3316] + ldr r0, [r4, #3188] + muls r0, r7, r0 + bl ftl_malloc + str r0, [r4, #3172] + mov r0, r6 + bl ftl_malloc + str r0, [r4, #3320] + mov r0, r6 + bl ftl_malloc + str r0, [r4, #3324] ldrh r0, [r4, #258] lsls r0, r0, #2 bl ftl_malloc - ldrh r3, [r4, #312] - ldrh r6, [r4, #232] - str r0, [r4, #3332] + ldrh r3, [r4, #232] + ldrh r6, [r4, #312] + str r0, [r4, #3328] muls r6, r3, r6 mov r0, r6 bl ftl_malloc - str r0, [r4, #3336] + str r0, [r4, #3332] lsls r0, r6, #2 bl ftl_malloc ldrh r3, [r4, #312] - str r0, [r4, #3340] - ldr r0, [r4, #3192] + str r0, [r4, #3336] + ldr r0, [r4, #3188] muls r0, r3, r0 bl ftl_malloc - str r0, [r4, #3184] + str r0, [r4, #3180] ldrh r0, [r4, #242] lsls r0, r0, #1 uxth r0, r0 - strh r0, [r4, #3344] @ movhi + strh r0, [r4, #3340] @ movhi bl ftl_malloc - ldrh r3, [r4, #3344] - str r0, [r4, #3348] - ldr r0, .L532+4 - addw r3, r3, #547 - lsrs r3, r3, #9 - and r0, r0, r3, lsl #9 - strh r3, [r4, #3344] @ movhi + str r0, [r4, #3344] + ldrh r0, [r4, #3340] + addw r0, r0, #547 + lsrs r3, r0, #9 + and r0, r0, #130560 + strh r3, [r4, #3340] @ movhi bl ftl_malloc ldrh r6, [r4, #242] - str r0, [r4, #3352] + str r0, [r4, #3348] adds r0, r0, #32 str r0, [r4, #2536] lsls r6, r6, #1 mov r0, r6 bl ftl_malloc - str r0, [r4, #3356] + str r0, [r4, #3352] mov r0, r6 bl ftl_malloc ldr r6, [r4, #328] @@ -3846,10 +4062,10 @@ FtlMemInit: lsls r6, r6, #1 mov r0, r6 bl ftl_malloc - str r0, [r4, #3360] + str r0, [r4, #3356] mov r0, r6 bl ftl_malloc - str r0, [r4, #3364] + str r0, [r4, #3360] ldrh r0, [r4, #320] lsls r0, r0, #1 bl ftl_malloc @@ -3857,28 +4073,27 @@ FtlMemInit: ldrh r0, [r4, #320] lsls r0, r0, #1 bl ftl_malloc - str r0, [r4, #3368] + str r0, [r4, #3364] ldrh r0, [r4, #320] lsls r0, r0, #2 bl ftl_malloc - str r0, [r4, #3372] + str r0, [r4, #3368] ldrh r0, [r4, #322] lsls r0, r0, #2 bl ftl_malloc ldrh r2, [r4, #322] mov r1, r5 - str r0, [r4, #3376] - add r5, r4, #380 + str r0, [r4, #3372] lsls r2, r2, #2 bl ftl_memset ldrh r0, [r4, #336] lsls r0, r0, #2 bl ftl_malloc - str r0, [r4, #3380] + str r0, [r4, #3376] ldr r0, [r4, #328] lsls r0, r0, #2 bl ftl_malloc - str r0, [r4, #3384] + str r0, [r4, #3380] ldrh r0, [r4, #338] muls r0, r7, r0 bl ftl_malloc @@ -3888,7 +4103,7 @@ FtlMemInit: muls r0, r3, r0 bl ftl_malloc ldrh r3, [r4, #242] - str r0, [r4, #3388] + str r0, [r4, #3384] movs r0, #6 muls r0, r3, r0 bl ftl_malloc @@ -3897,153 +4112,151 @@ FtlMemInit: ldrh r3, [r4, #254] adds r0, r0, #31 asrs r0, r0, #5 - strh r0, [r4, #3392] @ movhi + strh r0, [r4, #3388] @ movhi muls r0, r3, r0 lsls r0, r0, #2 bl ftl_malloc - ldrh r2, [r4, #3392] - movs r3, #1 - ldrh r6, [r4, #254] + ldrh r2, [r4, #3388] + ldrh r3, [r4, #254] + mov r5, r0 str r0, [r4, #380] + movs r1, #1 + lsls r6, r2, #2 + add r2, r0, r2, lsl #2 + add r0, r4, #384 +.L441: + cmp r3, r1 + bhi .L442 + cmp r3, #0 + ldr r0, .L539+4 + mov r1, #0 + it eq + moveq r3, #1 + rsb r2, r3, #8 + adds r3, r3, #7 lsls r2, r2, #2 - mov r1, r2 -.L432: - cmp r3, r6 - bcc .L433 - ldr r2, .L532+8 - movs r1, #0 - add r3, r2, r3, lsl #2 - adds r2, r2, #56 - adds r3, r3, #24 -.L434: - cmp r2, r3 - bne .L435 - ldr r3, [r4, #3360] - cbnz r3, .L436 -.L438: - ldr r1, .L532+12 - ldr r0, .L532+16 + add r0, r0, r3, lsl #2 + bl memset + ldr r3, [r4, #3356] + cbnz r3, .L443 +.L445: + ldr r0, .L539+8 + ldr r1, .L539+12 bl sftl_printk mov r0, #-1 +.L440: pop {r4, r5, r6, r7, r8, pc} -.L433: - ldr r0, [r4, #380] - adds r3, r3, #1 - add r0, r0, r1 - add r1, r1, r2 - str r0, [r5, #4]! - b .L432 -.L435: - str r1, [r3, #4]! - b .L434 -.L533: +.L442: + str r2, [r0], #4 + adds r1, r1, #1 + add r2, r2, r6 + b .L441 +.L540: .align 2 -.L532: +.L539: .word .LANCHOR0 - .word 33553920 .word .LANCHOR0+352 - .word .LANCHOR1+173 .word .LC91 -.L436: - ldr r3, [r4, #3364] + .word .LANCHOR1+173 +.L443: + ldr r3, [r4, #3360] cmp r3, #0 - beq .L438 + beq .L445 + ldr r3, [r4, #3376] + cmp r3, #0 + beq .L445 ldr r3, [r4, #3380] cmp r3, #0 - beq .L438 - ldr r3, [r4, #3384] - cmp r3, #0 - beq .L438 + beq .L445 ldr r3, [r4, #2540] cmp r3, #0 - beq .L438 - ldr r3, [r4, #3388] + beq .L445 + ldr r3, [r4, #3384] cmp r3, #0 - beq .L438 + beq .L445 ldr r3, [r4, #2516] cmp r3, #0 - beq .L438 - ldr r3, [r4, #380] - cmp r3, #0 - beq .L438 + beq .L445 + cmp r5, #0 + beq .L445 ldr r3, [r4, #72] cmp r3, #0 - beq .L438 - ldr r3, [r4, #3196] + beq .L445 + ldr r3, [r4, #3192] cmp r3, #0 - beq .L438 - ldr r3, [r4, #3204] + beq .L445 + ldr r3, [r4, #3200] cmp r3, #0 - beq .L438 - ldr r3, [r4, #3292] + beq .L445 + ldr r3, [r4, #3288] cmp r3, #0 - beq .L438 - ldr r3, [r4, #3300] - cmp r3, #0 - beq .L438 - ldr r3, [r4, #3272] - cmp r3, #0 - beq .L438 - ldr r3, [r4, #3188] - cmp r3, #0 - beq .L438 + beq .L445 ldr r3, [r4, #3296] cmp r3, #0 - beq .L438 - ldr r3, [r4, #3304] + beq .L445 + ldr r3, [r4, #3268] cmp r3, #0 - beq .L438 - ldr r3, [r4, #3308] - cmp r3, #0 - beq .L438 - ldr r3, [r4, #3312] - cmp r3, #0 - beq .L438 - ldr r3, [r4, #3180] - cmp r3, #0 - beq .L438 - ldr r3, [r4, #3316] - cmp r3, #0 - beq .L438 - ldr r3, [r4, #3320] - cmp r3, #0 - beq .L438 - ldr r3, [r4, #3176] - cmp r3, #0 - beq .L438 - ldr r3, [r4, #3336] - cmp r3, #0 - beq .L438 - ldr r3, [r4, #3340] - cmp r3, #0 - beq .L438 + beq .L445 ldr r3, [r4, #3184] cmp r3, #0 - beq .L438 + beq .L445 + ldr r3, [r4, #3292] + cmp r3, #0 + beq .L445 + ldr r3, [r4, #3300] + cmp r3, #0 + beq .L445 + ldr r3, [r4, #3304] + cmp r3, #0 + beq .L445 + ldr r3, [r4, #3308] + cmp r3, #0 + beq .L445 + ldr r3, [r4, #3176] + cmp r3, #0 + beq .L445 + ldr r3, [r4, #3312] + cmp r3, #0 + beq .L445 + ldr r3, [r4, #3316] + cmp r3, #0 + beq .L445 + ldr r3, [r4, #3172] + cmp r3, #0 + beq .L445 + ldr r3, [r4, #3332] + cmp r3, #0 + beq .L445 + ldr r3, [r4, #3336] + cmp r3, #0 + beq .L445 + ldr r3, [r4, #3180] + cmp r3, #0 + beq .L445 ldr r3, [r4, #2536] cmp r3, #0 - beq .L438 - ldr r3, [r4, #3348] + beq .L445 + ldr r3, [r4, #3344] cmp r3, #0 - beq .L438 + beq .L445 ldr r3, [r4, #348] cmp r3, #0 - beq .L438 - ldr r3, .L534 + beq .L445 + ldr r3, .L541 + ldr r2, [r3, #3364] + cmp r2, #0 + beq .L445 ldr r2, [r3, #3368] cmp r2, #0 - beq .L438 - ldr r2, [r3, #3372] - cmp r2, #0 - beq .L438 - ldr r3, [r3, #3376] + beq .L445 + ldr r3, [r3, #3372] cmp r3, #0 - beq .L438 + beq .L445 movs r0, #0 - pop {r4, r5, r6, r7, r8, pc} -.L535: + b .L440 +.L542: .align 2 -.L534: +.L541: .word .LANCHOR0 .fnend .size FtlMemInit, .-FtlMemInit @@ -4060,46 +4273,46 @@ FtlBbt2Bitmap: @ 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} - mov r5, r0 - ldr r6, .L542 - mov r7, r1 - subs r4, r5, #2 + mov r4, r0 + ldr r7, .L548 + ldr r9, .L548+4 + subs r6, r4, #2 + ldr r10, .L548+8 + addw r4, r4, #1022 + mov r5, r1 movw r8, #65535 - ldr r9, .L542+4 - addw r5, r5, #1022 - ldrh r2, [r6, #3392] + ldrh r2, [r7, #3388] + mov r0, r5 movs r1, #0 - ldr r10, .L542+8 - mov r0, r7 lsls r2, r2, #2 bl ftl_memset -.L539: - ldrh r3, [r4, #2] +.L546: + ldrh r3, [r6, #2]! cmp r3, r8 - beq .L536 - ldrh r2, [r6, #298] + beq .L543 + ldrh r2, [r7, #298] cmp r2, r3 - bhi .L538 - movs r2, #74 + bhi .L545 mov r1, r9 mov r0, r10 + movs r2, #74 bl sftl_printk -.L538: - ldrh r3, [r4, #2]! +.L545: + ldrh r3, [r6] movs r2, #1 - cmp r5, r4 + cmp r4, r6 lsr r1, r3, #5 and r3, r3, #31 lsl r3, r2, r3 - ldr r2, [r7, r1, lsl #2] + ldr r2, [r5, r1, lsl #2] orr r2, r2, r3 - str r2, [r7, r1, lsl #2] - bne .L539 -.L536: - pop {r4, r5, r6, r7, r8, r9, r10, pc} + str r2, [r5, r1, lsl #2] + bne .L546 .L543: + pop {r4, r5, r6, r7, r8, r9, r10, pc} +.L549: .align 2 -.L542: +.L548: .word .LANCHOR0 .word .LANCHOR1+184 .word .LC8 @@ -4117,18 +4330,18 @@ FtlBbtMemInit: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r0, .L545 + ldr r0, .L551 movw r3, #65535 movs r2, #16 movs r1, #255 - strh r3, [r0, #352] @ movhi - movs r3, #0 - strh r3, [r0, #358] @ movhi add r0, r0, #364 + strh r3, [r0, #-12] @ movhi + movs r3, #0 + strh r3, [r0, #-6] @ movhi b ftl_memset -.L546: +.L552: .align 2 -.L545: +.L551: .word .LANCHOR0 .fnend .size FtlBbtMemInit, .-FtlBbtMemInit @@ -4143,7 +4356,7 @@ FtlFreeSysBlkQueueInit: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L548 + ldr r3, .L554 mov r2, #2048 push {r4, lr} .save {r4, lr} @@ -4157,9 +4370,9 @@ FtlFreeSysBlkQueueInit: bl ftl_memset mov r0, r4 pop {r4, pc} -.L549: +.L555: .align 2 -.L548: +.L554: .word .LANCHOR0 .fnend .size FtlFreeSysBlkQueueInit, .-FtlFreeSysBlkQueueInit @@ -4177,95 +4390,84 @@ ftl_free_no_use_map_blk: push {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} movs r1, #0 - ldrh r2, [r0, #10] mov r4, r0 - ldr r5, [r0, #20] + ldrh r2, [r0, #10] + ldrd r5, r6, [r0, #20] ldr r7, [r0, #12] - ldr r6, [r0, #24] lsls r2, r2, #1 mov r0, r5 bl ftl_memset movs r3, #0 -.L551: +.L557: ldrh r1, [r4, #6] uxth r2, r3 cmp r1, r2 - bhi .L555 - ldr r3, .L570 + bhi .L561 + ldr r3, .L574 movs r6, #0 - mov r9, r6 - mov fp, r6 + mov r10, r6 ldrh r2, [r3, #304] ldrh r3, [r4] strh r2, [r5, r3, lsl #1] @ movhi - ldrh r10, [r5] -.L556: - ldrh r3, [r4, #10] - uxth r1, r6 - cmp r3, r1 - bhi .L560 - mov r0, r9 + ldrh fp, [r5] +.L562: + ldrh r2, [r4, #10] + uxth r3, r6 + cmp r2, r3 + bhi .L565 + mov r0, r10 pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L555: +.L561: uxth r2, r3 ldr r1, [r6, r2, lsl #2] movs r2, #0 ubfx r1, r1, #10, #16 -.L552: +.L558: ldrh ip, [r4, #10] uxth r0, r2 cmp ip, r0 - bhi .L554 + bhi .L560 adds r3, r3, #1 - b .L551 -.L554: + b .L557 +.L560: uxth r0, r2 ldrh ip, [r7, r0, lsl #1] cmp ip, r1 - bne .L553 - cbz r1, .L553 + bne .L559 + cbz r1, .L559 ldrh ip, [r5, r0, lsl #1] add ip, ip, #1 strh ip, [r5, r0, lsl #1] @ movhi -.L553: - adds r2, r2, #1 - b .L552 -.L560: - uxth r2, r6 - ldrh r3, [r5, r2, lsl #1] - lsl r8, r2, #1 - cmp r10, r3 - bls .L557 - ldrh r0, [r7, r2, lsl #1] - add r8, r8, r7 - cbnz r0, .L558 .L559: - adds r6, r6, #1 - b .L556 -.L557: - cmp r3, #0 - bne .L559 - ldrh r0, [r7, r2, lsl #1] - add r8, r8, r7 - cmp r0, #0 - beq .L559 -.L561: + adds r2, r2, #1 + b .L558 +.L565: + uxth r8, r6 + ldrh r9, [r5, r8, lsl #1] + cmp r9, fp + bcs .L563 + ldrh r2, [r7, r8, lsl #1] + cmp r2, #0 + itt ne + movne r10, r3 + movne fp, r9 +.L563: + cmp r9, #0 + bne .L564 + ldrh r0, [r7, r8, lsl #1] + cbz r0, .L564 movs r1, #1 bl FtlFreeSysBlkQueueIn - strh fp, [r8] @ movhi + strh r9, [r7, r8, lsl #1] @ movhi ldrh r3, [r4, #8] subs r3, r3, #1 strh r3, [r4, #8] @ movhi - b .L559 -.L558: - mov r9, r1 - mov r10, r3 - cmp r3, #0 - beq .L561 - b .L559 -.L571: +.L564: + adds r6, r6, #1 + b .L562 +.L575: .align 2 -.L570: +.L574: .word .LANCHOR0 .fnend .size ftl_free_no_use_map_blk, .-ftl_free_no_use_map_blk @@ -4283,67 +4485,65 @@ FtlL2PDataInit: push {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} movs r1, #0 - ldr r4, .L575 - movs r6, #12 + ldr r4, .L579 + movw r6, #65535 + movs r7, #12 ldr r2, [r4, #328] - ldr r0, [r4, #3364] + ldr r0, [r4, #3360] lsls r2, r2, #1 bl ftl_memset ldrh r3, [r4, #310] - movs r1, #255 ldrh r2, [r4, #338] - ldr r0, [r4, #3388] + movs r1, #255 + ldr r0, [r4, #3384] muls r2, r3, r2 bl ftl_memset - movs r2, #0 - mov r3, r4 - movw r1, #65535 - mov r7, r2 -.L573: - ldrh r4, [r3, #338] - uxth r0, r2 - adds r5, r2, #1 - cmp r4, r0 - bhi .L574 - ldr r2, [r3, #328] - strh r1, [r3, #3398] @ movhi - strh r1, [r3, #3396] @ movhi - strh r2, [r3, #3406] @ movhi - movw r2, #61634 - strh r2, [r3, #3400] @ movhi - ldrh r2, [r3, #3440] - strh r2, [r3, #3404] @ movhi - ldrh r2, [r3, #336] - strh r2, [r3, #3402] @ movhi - ldr r2, [r3, #3360] - str r2, [r3, #3408] - ldr r2, [r3, #3384] - str r2, [r3, #3412] - ldr r2, [r3, #3364] - str r2, [r3, #3416] - ldr r2, [r3, #3380] - str r2, [r3, #3420] + movs r3, #0 + mov ip, r3 +.L577: + ldrh r1, [r4, #338] + uxth r2, r3 + cmp r1, r2 + bhi .L578 + ldr r3, [r4, #328] + strh r3, [r4, #3402] @ movhi + mov r3, #-1 + str r3, [r4, #3392] + movw r3, #61634 + strh r3, [r4, #3396] @ movhi + ldrh r3, [r4, #3436] + strh r3, [r4, #3400] @ movhi + ldrh r3, [r4, #336] + strh r3, [r4, #3398] @ movhi + ldr r3, [r4, #3356] + str r3, [r4, #3404] + ldr r3, [r4, #3380] + str r3, [r4, #3408] + ldr r3, [r4, #3360] + str r3, [r4, #3412] + ldr r3, [r4, #3376] + str r3, [r4, #3416] pop {r3, r4, r5, r6, r7, pc} -.L574: - uxth r2, r2 - ldr r0, [r3, #2540] - mul r4, r6, r2 - add ip, r0, r4 - str r7, [ip, #4] - strh r1, [r0, r4] @ movhi - ldr r0, [r3, #2540] - add r0, r0, r4 - ldrh r4, [r3, #310] - muls r2, r4, r2 - ldr r4, [r3, #3388] +.L578: + uxth r5, r3 + ldr r2, [r4, #2540] + adds r3, r3, #1 + mul r0, r7, r5 + adds r1, r2, r0 + str ip, [r1, #4] + strh r6, [r2, r0] @ movhi + ldrh r2, [r4, #310] + ldr r1, [r4, #2540] + add r1, r1, r0 + ldr r0, [r4, #3384] + muls r2, r5, r2 bic r2, r2, #3 - add r2, r2, r4 - str r2, [r0, #8] - mov r2, r5 - b .L573 -.L576: + add r2, r2, r0 + str r2, [r1, #8] + b .L577 +.L580: .align 2 -.L575: +.L579: .word .LANCHOR0 .fnend .size FtlL2PDataInit, .-FtlL2PDataInit @@ -4361,17 +4561,17 @@ FtlVariablesInit: push {r3, r4, r5, lr} .save {r3, r4, r5, lr} movs r5, #0 - ldr r4, .L578 - movw r3, #65535 + ldr r4, .L582 mov r1, r5 + movw r3, #65535 ldrh r2, [r4, #320] - strh r3, [r4, #3442] @ movhi - mov r3, #-1 ldr r0, [r4, #348] - str r3, [r4, #3452] + strh r3, [r4, #3438] @ movhi + mov r3, #-1 lsls r2, r2, #1 + str r3, [r4, #3448] + str r5, [r4, #3440] str r5, [r4, #3444] - str r5, [r4, #3448] strh r5, [r4, #344] @ movhi bl ftl_memset ldrh r2, [r4, #242] @@ -4381,24 +4581,24 @@ FtlVariablesInit: bl ftl_memset ldrh r2, [r4, #242] mov r1, r5 - ldr r0, [r4, #3348] + ldr r0, [r4, #3344] lsls r2, r2, #1 bl ftl_memset mov r1, r5 - movs r2, #48 addw r0, r4, #2468 + movs r2, #48 bl ftl_memset - mov r2, #512 mov r1, r5 - addw r0, r4, #2644 + mov r2, #512 + add r0, r4, #2640 bl ftl_memset bl FtlGcBufInit bl FtlL2PDataInit mov r0, r5 pop {r3, r4, r5, pc} -.L579: +.L583: .align 2 -.L578: +.L582: .word .LANCHOR0 .fnend .size FtlVariablesInit, .-FtlVariablesInit @@ -4415,116 +4615,117 @@ SupperBlkListInit: @ 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, #6 + ldr r4, .L595 movs r5, #0 - ldr r4, .L591 - movs r2, #6 - mov r9, r5 - mov r6, r5 - movw fp, #65535 .pad #20 sub sp, sp, #20 - ldrh r3, [r4, #242] - add r10, r4, #260 movs r1, #0 + mov r9, r5 + mov r7, r5 + movw fp, #65535 + ldrh r2, [r4, #242] ldr r0, [r4, #2516] - muls r2, r3, r2 + mul r2, r10, r2 bl ftl_memset str r5, [r4, #2532] str r5, [r4, #2520] str r5, [r4, #2524] strh r5, [r4, #2528] @ movhi strh r5, [r4, #224] @ movhi -.L581: +.L585: ldrh r3, [r4, #240] uxth r8, r5 cmp r8, r3 - bcs .L588 - ldrh r3, [r4, #302] - ldrh r2, [r4, #232] + bcs .L592 + ldrh r3, [r4, #232] str r3, [sp, #4] + ldrh r3, [r4, #302] + str r3, [sp] movs r3, #0 - mov r7, r3 - b .L589 -.L583: - ldrb r0, [r10, r3] @ zero_extendqisi2 + ldr r2, .L595+4 + mov r6, r3 + b .L593 +.L587: + ldrb r0, [r2], #1 @ zero_extendqisi2 mov r1, r8 - str r2, [sp, #12] - str r3, [sp, #8] + str r3, [sp, #12] + str r2, [sp, #8] bl V2P_block bl FtlBbmIsBadBlock - ldr r3, [sp, #8] - ldr r2, [sp, #12] - cbnz r0, .L582 - ldr r1, [sp, #4] - add r7, r7, r1 - uxth r7, r7 -.L582: + ldrd r2, r3, [sp, #8] + cbnz r0, .L586 + ldr r1, [sp] + add r6, r6, r1 + uxth r6, r6 +.L586: adds r3, r3, #1 -.L589: +.L593: + ldr r0, [sp, #4] uxth r1, r3 - cmp r2, r1 - bhi .L583 + cmp r0, r1 + bhi .L587 uxth r3, r5 - cbz r7, .L584 - mov r1, r7 - str r3, [sp, #4] + cbz r6, .L588 + mov r1, r6 mov r0, #32768 + str r3, [sp] bl __aeabi_idiv - ldr r3, [sp, #4] - uxth r7, r0 -.L585: - ldr r1, [r4, #2516] - movs r2, #6 - mla r2, r2, r3, r1 - strh r7, [r2, #4] @ movhi + ldr r3, [sp] + uxth r6, r0 +.L589: + ldr r2, [r4, #2516] + mla r2, r10, r3, r2 + strh r6, [r2, #4] @ movhi ldrh r2, [r4, #24] cmp r2, r8 - beq .L586 + beq .L590 ldrh r2, [r4, #76] cmp r2, r8 - beq .L586 + beq .L590 ldrh r2, [r4, #124] cmp r2, r8 - beq .L586 + beq .L590 ldr r2, [r4, #72] ldrh r3, [r2, r3, lsl #1] - cbnz r3, .L587 + cbnz r3, .L591 add r9, r9, #1 mov r0, r8 uxth r9, r9 bl INSERT_FREE_LIST -.L586: +.L590: adds r5, r5, #1 - b .L581 -.L584: + b .L585 +.L588: ldr r2, [r4, #72] strh fp, [r2, r3, lsl #1] @ movhi - b .L585 -.L587: - adds r6, r6, #1 + b .L589 +.L591: + adds r7, r7, #1 mov r0, r8 - uxth r6, r6 + uxth r7, r7 bl INSERT_DATA_LIST - b .L586 -.L588: - strh r6, [r4, #2528] @ movhi - add r6, r6, r9 - cmp r6, r3 + b .L590 +.L592: + strh r7, [r4, #2528] @ movhi + add r7, r7, r9 + cmp r7, r3 strh r9, [r4, #224] @ movhi - ble .L590 - movw r2, #2212 - ldr r1, .L591+4 - ldr r0, .L591+8 + ble .L594 + ldr r1, .L595+8 + movw r2, #2219 + ldr r0, .L595+12 bl sftl_printk -.L590: +.L594: movs r0, #0 add sp, sp, #20 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L592: +.L596: .align 2 -.L591: +.L595: .word .LANCHOR0 + .word .LANCHOR0+260 .word .LANCHOR1+198 .word .LC8 .fnend @@ -4542,26 +4743,26 @@ FtlGcPageVarInit: @ frame_needed = 0, uses_anonymous_args = 0 push {r4, lr} .save {r4, lr} - movs r3, #0 - ldr r4, .L594 movs r1, #255 + ldr r4, .L598 + movs r3, #0 ldrh r2, [r4, #306] - ldr r0, [r4, #3196] - strh r3, [r4, #3200] @ movhi - strh r3, [r4, #3208] @ movhi + ldr r0, [r4, #3192] + strh r3, [r4, #3196] @ movhi lsls r2, r2, #1 + strh r3, [r4, #3204] @ movhi bl ftl_memset ldrh r3, [r4, #306] movs r2, #12 - ldr r0, [r4, #3204] + ldr r0, [r4, #3200] movs r1, #255 muls r2, r3, r2 bl ftl_memset pop {r4, lr} b FtlGcBufInit -.L595: +.L599: .align 2 -.L594: +.L598: .word .LANCHOR0 .fnend .size FtlGcPageVarInit, .-FtlGcPageVarInit @@ -4579,42 +4780,42 @@ FlashGetBadBlockList: push {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r2, #256 - ldr r5, .L603 + ldr r6, .L606 mov r4, r0 - mov r6, r1 + mov r5, r1 movs r1, #255 bl ftl_memset - ldr r3, [r5, #3248] - mov r1, r6 + mov r1, r5 + ldr r3, [r6, #3244] mov r0, r4 blx r3 uxth r0, r0 cmp r0, #50 - bls .L597 + bls .L601 + mov r0, r4 mov r2, #256 movs r1, #255 - mov r0, r4 bl ftl_memset movs r0, #0 -.L597: - ldrh r3, [r5, #14] +.L601: + ldrh r3, [r6, #14] cmp r3, #4 - bne .L602 - add r1, r4, r0, lsl #1 + bne .L605 mov r3, r4 -.L599: + add r1, r4, r0, lsl #1 +.L603: cmp r3, r1 - bne .L600 -.L602: + bne .L604 +.L605: pop {r4, r5, r6, pc} -.L600: +.L604: ldrh r2, [r3] lsrs r2, r2, #1 strh r2, [r3], #2 @ movhi - b .L599 -.L604: + b .L603 +.L607: .align 2 -.L603: +.L606: .word .LANCHOR0 .fnend .size FlashGetBadBlockList, .-FlashGetBadBlockList @@ -4633,6 +4834,14 @@ ftl_memcpy: b memcpy .fnend .size ftl_memcpy, .-ftl_memcpy + .section .rodata.str1.1 +.LC92: + .ascii "FlashReadPages %x %x error_ecc_bits %d\012\000" +.LC93: + .ascii "data:\000" +.LC94: + .ascii "spare:\000" + .text .align 1 .global FlashReadPages .syntax unified @@ -4646,147 +4855,152 @@ FlashReadPages: @ frame_needed = 0, uses_anonymous_args = 0 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - mov r9, r1 - ldr r5, .L647 mov r4, r0 - mov r8, #0 + ldr r5, .L650 .pad #28 sub sp, sp, #28 - ldr r7, .L647+4 - ldrh r10, [r5, #12] - ldr fp, .L647+24 - ldr r2, [r7] - str r7, [sp, #4] - str r2, [sp, #20] -.L607: - cmp r8, r9 - bne .L621 + ldr r7, .L650+4 + mov r3, sp + ldr r10, .L650+8 + bic r8, r3, #8160 + ldr fp, .L650+12 + bic r8, r8, #31 + str r1, [sp, #4] + mov r9, #0 + ldr r3, [r8, #24] + str r3, [sp, #20] + ldrh r3, [r5, #12] + str r3, [sp] +.L610: ldr r3, [sp, #4] - movs r0, #0 + cmp r9, r3 + bne .L624 ldr r2, [sp, #20] - ldr r3, [r3] + ldr r3, [r8, #24] cmp r2, r3 - beq .L622 + beq .L625 bl __stack_chk_fail -.L621: +.L624: ldr r3, [r4, #8] - cbz r3, .L608 + cbz r3, .L611 ldr r3, [r4, #12] - cbnz r3, .L609 -.L608: + cbnz r3, .L612 +.L611: + mov r1, r7 + mov r0, r10 movs r2, #96 - ldr r1, .L647+8 - ldr r0, .L647+12 bl sftl_printk -.L609: +.L612: add r2, sp, #12 add r1, sp, #16 mov r0, r4 bl l2p_addr_tran ldr r0, [sp, #12] cmp r0, #3 - bls .L610 + bls .L613 mov r3, #-1 str r3, [r4] -.L611: - add r8, r8, #1 +.L614: + add r9, r9, #1 adds r4, r4, #20 - b .L607 -.L610: + b .L610 +.L613: ldr r6, [r4, #8] uxtb r0, r0 - ldr r3, [r4, #12] ldr r1, [sp, #16] - lsls r7, r6, #26 - ldr r7, [r5, #3260] + ldr ip, [r5, #3256] + lsls r3, r6, #26 + ldr r3, [r4, #12] it ne - ldrne r6, [r5, #3324] + ldrne r6, [r5, #3320] mov r2, r6 - blx r7 + blx ip str r0, [r4] ldrh r3, [r5, #14] cmp r3, #4 - bne .L614 - ldr r3, [r4, #12] + bne .L617 + ldr r0, [sp] add r2, r6, #2048 + ldr r3, [r4, #12] ldr r1, [sp, #16] - ldrb r0, [sp, #12] @ zero_extendqisi2 + ldr ip, [r5, #3256] adds r3, r3, #8 - ldr r7, [r5, #3260] - add r1, r1, r10 - blx r7 + add r1, r1, r0 + ldrb r0, [sp, #12] @ zero_extendqisi2 + blx ip adds r1, r0, #1 - beq .L615 + beq .L618 ldr r3, [r4, #12] ldr r2, [r3, #12] adds r2, r2, #1 - bne .L616 + bne .L619 ldr r2, [r3, #8] adds r2, r2, #1 - bne .L616 + bne .L619 ldr r3, [r3] adds r3, r3, #1 - beq .L616 -.L615: + beq .L619 +.L618: mov r3, #-1 str r3, [r4] -.L616: - ldr r3, [r4] - adds r3, r3, #1 - beq .L617 - cmp r0, #256 - it eq - streq r0, [r4] -.L617: +.L620: ldr r3, [r4] adds r2, r3, #1 - beq .L618 + beq .L621 cmp r3, #256 - bne .L614 -.L618: + bne .L617 +.L621: ldr r1, [r4, #4] mov r0, fp ldr r2, [sp, #16] bl sftl_printk ldr r1, [r4, #8] - cbz r1, .L620 + cbz r1, .L623 movs r3, #4 - ldr r0, .L647+16 + ldr r0, .L650+16 mov r2, r3 bl rknand_print_hex -.L620: +.L623: ldr r1, [r4, #12] - cbz r1, .L614 + cbz r1, .L617 movs r3, #4 - ldr r0, .L647+20 + ldr r0, .L650+20 mov r2, r3 bl rknand_print_hex -.L614: - ldr r3, [r5, #3324] - cmp r6, r3 - bne .L611 +.L617: + ldr r3, [r5, #3320] + cmp r3, r6 + bne .L614 ldr r0, [r4, #8] - cmp r6, r0 - beq .L611 + cmp r0, r6 + beq .L614 ldrh r2, [r5, #258] mov r1, r6 lsls r2, r2, #9 bl ftl_memcpy - b .L611 -.L622: + b .L614 +.L619: + ldr r3, [r4] + adds r3, r3, #1 + beq .L620 + cmp r0, #256 + it eq + streq r0, [r4] + b .L620 +.L625: + movs r0, #0 add sp, sp, #28 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L648: +.L651: .align 2 -.L647: +.L650: .word .LANCHOR0 - .word __stack_chk_guard .word .LANCHOR1+216 .word .LC8 + .word .LC92 .word .LC93 .word .LC94 - .word .LC92 .fnend .size FlashReadPages, .-FlashReadPages .align 1 @@ -4803,51 +5017,52 @@ FtlLoadFactoryBbt: push {r4, r5, r6, r7, r8, r9, r10, lr} .save {r4, r5, r6, r7, r8, r9, r10, lr} movs r6, #0 - ldr r4, .L659 + ldr r4, .L662 movw r10, #61664 - ldr r3, [r4, #3304] - add r7, r4, #362 - ldr r8, [r4, #3336] - add r9, r4, #3456 - str r3, [r4, #3464] - str r8, [r4, #3468] -.L650: + add r7, r4, #364 + addw r9, r4, #3452 + ldr r3, [r4, #3300] + ldr r8, [r4, #3332] + str r3, [r4, #3460] + str r8, [r4, #3464] +.L653: ldrh r3, [r4, #254] - cmp r6, r3 - bcc .L655 + cmp r3, r6 + bhi .L658 movs r0, #0 pop {r4, r5, r6, r7, r8, r9, r10, pc} -.L655: +.L658: ldrh r5, [r4, #298] movw r3, #65535 - strh r3, [r7, #2]! @ movhi -.L652: + strh r3, [r7] @ movhi +.L655: ldrh r3, [r4, #298] subs r5, r5, #1 - uxth r5, r5 sub r2, r3, #16 + uxth r5, r5 cmp r5, r2 - ble .L653 + ble .L656 mla r3, r6, r3, r5 movs r2, #1 - mov r1, r2 mov r0, r9 + mov r1, r2 lsls r3, r3, #10 - str r3, [r4, #3460] + str r3, [r4, #3456] bl FlashReadPages - ldr r3, [r4, #3456] + ldr r3, [r4, #3452] adds r3, r3, #1 - beq .L652 + beq .L655 ldrh r3, [r8] cmp r3, r10 - bne .L652 + bne .L655 strh r5, [r7] @ movhi -.L653: +.L656: adds r6, r6, #1 - b .L650 -.L660: + adds r7, r7, #2 + b .L653 +.L663: .align 2 -.L659: +.L662: .word .LANCHOR0 .fnend .size FtlLoadFactoryBbt, .-FtlLoadFactoryBbt @@ -4864,79 +5079,77 @@ FtlGetLastWrittenPage: @ frame_needed = 0, uses_anonymous_args = 0 push {r4, r5, r6, r7, r8, r9, lr} .save {r4, r5, r6, r7, r8, r9, lr} + cmp r1, #1 + mov r2, r1 .pad #92 sub sp, sp, #92 - ldr r6, .L673 - cmp r1, #1 - lsl r8, r0, #10 - mov r2, r1 - mov r7, r1 - ldr r3, [r6] + mov r8, r1 + mov r3, sp + lsl r6, r0, #10 + bic r7, r3, #8160 mov r1, #1 - mov r0, sp + bic r7, r7, #31 + ldr r3, [r7, #24] str r3, [sp, #84] - ldr r3, .L673+4 + ldr r3, .L677 ite eq - ldrheq r5, [r3, #304] - ldrhne r5, [r3, #302] - ldr r3, [r3, #3328] - subs r5, r5, #1 - sxth r5, r5 + ldrheq r4, [r3, #304] + ldrhne r4, [r3, #302] + ldr r3, [r3, #3324] + subs r4, r4, #1 str r3, [sp, #8] add r3, sp, #20 str r3, [sp, #12] - orr r3, r5, r8 - str r3, [sp, #4] - bl FlashReadPages - ldr r3, [sp, #20] - adds r3, r3, #1 - bne .L664 - mov r9, #0 -.L665: - cmp r9, r5 - ble .L668 -.L664: - ldr r2, [sp, #84] - mov r0, r5 - ldr r3, [r6] - cmp r2, r3 - beq .L669 - bl __stack_chk_fail -.L668: - add r3, r9, r5 - mov r2, r7 - add r3, r3, r3, lsr #31 - movs r1, #1 + sxth r4, r4 + orr r0, r4, r0, lsl #10 + str r0, [sp, #4] mov r0, sp - asrs r4, r3, #1 - sxth r3, r4 - orr r3, r3, r8 - str r3, [sp, #4] bl FlashReadPages ldr r3, [sp, #20] adds r3, r3, #1 - bne .L666 - ldr r3, [sp, #24] + bne .L668 + mov r9, #0 + b .L667 +.L671: + add r3, r9, r4 + mov r2, r8 + mov r0, sp + movs r1, #1 + add r3, r3, r3, lsr #31 + sbfx r5, r3, #1, #16 + orr r3, r6, r3, asr #1 + str r3, [sp, #4] + bl FlashReadPages + ldrd r3, r2, [sp, #20] + ands r3, r3, r2 adds r3, r3, #1 - bne .L666 + bne .L669 ldr r3, [sp] adds r3, r3, #1 - beq .L666 - subs r4, r4, #1 - sxth r5, r4 - b .L665 -.L666: - adds r4, r4, #1 - sxth r9, r4 - b .L665 + beq .L669 + subs r4, r5, #1 + sxth r4, r4 +.L667: + cmp r9, r4 + ble .L671 +.L668: + ldr r2, [sp, #84] + ldr r3, [r7, #24] + cmp r2, r3 + beq .L672 + bl __stack_chk_fail .L669: + adds r5, r5, #1 + sxth r9, r5 + b .L667 +.L672: + mov r0, r4 add sp, sp, #92 @ sp needed pop {r4, r5, r6, r7, r8, r9, pc} -.L674: +.L678: .align 2 -.L673: - .word __stack_chk_guard +.L677: .word .LANCHOR0 .fnend .size FtlGetLastWrittenPage, .-FtlGetLastWrittenPage @@ -4954,24 +5167,24 @@ FtlScanSysBlk: push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} movs r5, #0 - ldr r4, .L757 + ldr r4, .L759 mov r1, r5 .pad #20 sub sp, sp, #20 ldr r2, [r4, #328] - ldr r0, [r4, #3384] - strh r5, [r4, #3440] @ movhi - strh r5, [r4, #344] @ movhi + ldr r0, [r4, #3380] + strh r5, [r4, #3436] @ movhi lsls r2, r2, #2 + strh r5, [r4, #344] @ movhi bl ftl_memset ldr r2, [r4, #328] mov r1, r5 - ldr r0, [r4, #3360] + ldr r0, [r4, #3356] lsls r2, r2, #1 bl ftl_memset ldrh r2, [r4, #320] mov r1, r5 - ldr r0, [r4, #3372] + ldr r0, [r4, #3368] lsls r2, r2, #2 bl ftl_memset ldrh r2, [r4, #320] @@ -4979,436 +5192,435 @@ FtlScanSysBlk: ldr r0, [r4, #348] lsls r2, r2, #1 bl ftl_memset + add r0, r4, #2624 movs r2, #16 movs r1, #255 - addw r0, r4, #2628 bl ftl_memset ldrh r8, [r4, #240] -.L676: +.L680: ldrh r3, [r4, #242] cmp r3, r8 - bls .L718 - movs r5, #0 - ldrh fp, [r4, #232] - ldr r9, [r4, #3292] - mov r7, r5 + bls .L720 + ldr r5, .L759+4 + movs r7, #0 + ldrh r6, [r4, #232] + mov fp, #20 + ldrh r1, [r4, #312] + ldr r10, [r4, #3288] + add r6, r6, r5 + ldr r2, [r4, #3176] ldr r3, [r4, #3180] - mov r10, #20 - ldr r2, [r4, #3184] - ldrh r6, [r4, #312] - b .L719 -.L679: - str r3, [sp, #8] + str r1, [sp, #4] + b .L721 +.L683: mov r1, r8 - ldr r3, .L757+4 - str r2, [sp, #12] - ldrb r0, [r3, r5] @ zero_extendqisi2 + ldrb r0, [r5], #1 @ zero_extendqisi2 + strd r2, r3, [sp, #8] bl V2P_block - str r0, [sp, #4] + mov r9, r0 bl FtlBbmIsBadBlock - ldr r3, [sp, #8] - ldr r2, [sp, #12] - cbnz r0, .L677 + ldrd r2, r3, [sp, #8] + cbnz r0, .L721 + mla ip, fp, r7, r10 + lsl r1, r9, #10 + strd r1, r2, [ip, #4] ldr r1, [sp, #4] - mla r0, r10, r7, r9 - lsls r1, r1, #10 - str r3, [r0, #8] - str r1, [r0, #4] - mov r1, r6 muls r1, r7, r1 add r7, r7, #1 it mi addmi r1, r1, #3 uxth r7, r7 bic r1, r1, #3 - add r1, r1, r2 - str r1, [r0, #12] -.L677: - adds r5, r5, #1 + add r1, r1, r3 + str r1, [ip, #12] +.L721: + cmp r6, r5 + bne .L683 + cbnz r7, .L684 .L719: - uxth r1, r5 - cmp fp, r1 - bhi .L679 - cbnz r7, .L680 -.L717: add r8, r8, #1 uxth r8, r8 - b .L676 -.L680: - mov r0, r9 - mov r9, #0 - movs r2, #1 + b .L680 +.L684: mov r1, r7 + mov r0, r10 + movs r2, #1 bl FlashReadPages -.L681: - uxth r3, r9 - cmp r7, r3 - bls .L717 - movs r3, #20 - mul r10, r3, r9 - ldr r3, [r4, #3292] - add r2, r3, r10 - ldr r3, [r3, r10] + movs r3, #0 + str r3, [sp, #4] +.L718: + ldr r3, [sp, #4] + mov r9, #20 + mul r9, r9, r3 + ldr r3, [r4, #3288] + add r2, r3, r9 + ldr r3, [r3, r9] ldr r5, [r2, #4] ldr r6, [r2, #12] adds r3, r3, #1 ubfx r5, r5, #10, #16 - bne .L684 - mov fp, #16 - movw r3, #65535 -.L686: - ldr r0, [r4, #3292] - str r3, [sp, #4] - add r0, r0, r10 - ldr r2, [r0, #4] - adds r2, r2, #1 - str r2, [r0, #4] + bne .L687 + mov r10, #16 + movw fp, #65535 +.L689: + ldr r0, [r4, #3288] movs r2, #1 mov r1, r2 + add r0, r0, r9 + ldr r3, [r0, #4] + adds r3, r3, #1 + str r3, [r0, #4] bl FlashReadPages - ldrh r2, [r6] - ldr r3, [sp, #4] - cmp r2, r3 - bne .L683 - ldr r3, [r4, #3292] - mov r2, #-1 - str r2, [r3, r10] - ldr r3, [r4, #3292] - ldr r3, [r3, r10] - cmp r3, r2 - bne .L684 -.L685: - movs r1, #1 - b .L756 -.L683: - ldr r2, [r4, #3292] - ldr r2, [r2, r10] - adds r2, r2, #1 - bne .L684 - add fp, fp, #-1 - uxth fp, fp - cmp fp, #0 + ldrh r3, [r6] + cmp r3, fp + ldr r3, [r4, #3288] bne .L686 - b .L685 -.L684: - ldr r2, [r4, #2592] + mov r2, #-1 + str r2, [r3, r9] + ldr r3, [r4, #3288] + ldr r3, [r3, r9] + cmp r3, r2 + beq .L688 +.L687: + ldr r2, [r4, #2588] ldr r3, [r6, #4] adds r1, r2, #1 - beq .L687 + beq .L736 cmp r2, r3 - bhi .L688 -.L687: - adds r2, r3, #1 + bhi .L690 +.L736: + adds r0, r3, #1 itt ne addne r2, r3, #1 - strne r2, [r4, #2592] -.L688: + strne r2, [r4, #2588] +.L690: ldrh r2, [r6] + movw r1, #61634 + cmp r2, r1 + beq .L691 + bhi .L692 + movw r1, #61574 + cmp r2, r1 + beq .L693 movw r1, #61604 cmp r2, r1 - beq .L690 - bhi .L691 - movw r3, #61574 - cmp r2, r3 - beq .L692 -.L689: - add r9, r9, #1 - b .L681 -.L691: - movw r3, #61634 - cmp r2, r3 - beq .L693 + beq .L694 +.L695: + ldr r3, [sp, #4] + adds r3, r3, #1 + str r3, [sp, #4] + ldrh r3, [sp, #4] + cmp r7, r3 + bhi .L718 + b .L719 +.L686: + ldr r3, [r3, r9] + adds r3, r3, #1 + bne .L687 + add r10, r10, #-1 + uxth r10, r10 + cmp r10, #0 + bne .L689 +.L688: + movs r1, #1 + b .L757 +.L692: movw r3, #65535 cmp r2, r3 - bne .L689 + bne .L695 movs r1, #0 -.L756: +.L757: mov r0, r5 bl FtlFreeSysBlkQueueIn - b .L689 -.L693: - ldrh r2, [r4, #3440] + b .L695 +.L691: + ldrh r2, [r4, #3436] ldr r3, [r4, #328] cmp r2, r3 - bls .L695 - movw r2, #1225 - ldr r1, .L757+8 - ldr r0, .L757+12 - bl sftl_printk -.L695: - ldr r1, [r4, #328] - ldrh r0, [r4, #3440] - ldr r10, [r4, #3384] - uxth ip, r1 - add r3, ip, #-1 - sub ip, ip, r0 - add ip, ip, #-1 - sxth r3, r3 - sxth ip, ip -.L696: - cmp r3, ip - bgt .L702 - cmp r3, #0 - bge .L734 - b .L689 -.L702: - ldr r2, [r6, #4] - lsl fp, r3, #2 - mov lr, r2 - ldr r2, [r10, r3, lsl #2] - cmp lr, r2 bls .L697 - ldr r2, [r10] - cbnz r2, .L698 + ldr r1, .L759+8 + mov r2, #1232 + ldr r0, .L759+12 + bl sftl_printk +.L697: + ldr r1, [r4, #328] + ldrh r0, [r4, #3436] + ldr r9, [r4, #3380] + uxth r2, r1 + subs r3, r2, #1 + subs r2, r2, r0 + subs r2, r2, #1 + add fp, r9, #4 + sxth r3, r3 + mov ip, r3 + sxth r2, r2 + str r2, [sp, #8] +.L698: + ldr r2, [sp, #8] + cmp r2, r3 + bge .L703 + add r10, ip, #-1 + lsl lr, ip, #2 + str lr, [sp, #12] + ldr lr, [r6, #4] + ldr r2, [fp, r10, lsl #2] + cmp lr, r2 + bls .L699 + ldr r2, [r9] + cbnz r2, .L700 cmp r1, r0 itt ne addne r0, r0, #1 - strhne r0, [r4, #3440] @ movhi -.L698: - uxth ip, r3 - movs r2, #0 -.L699: - uxth r0, r2 - sxth r1, r2 - cmp ip, r0 - bhi .L700 - ldr r2, [r4, #3384] + strhne r0, [r4, #3436] @ movhi +.L700: + uxth lr, r3 + movs r0, #0 +.L701: + uxth r9, r0 + ldr r1, [r4, #3380] + sxth r2, r0 + cmp lr, r9 + bhi .L702 + ldr r0, [sp, #12] + ldr r2, [r6, #4] + str r2, [r1, r0] + ldr r2, [r4, #3356] + strh r5, [r2, ip, lsl #1] @ movhi +.L703: cmp r3, #0 - ldr r1, [r6, #4] - str r1, [r2, fp] - ldr r2, [r4, #3360] - strh r5, [r2, r3, lsl #1] @ movhi - blt .L689 - ldrh r0, [r4, #3440] + blt .L695 + ldrh r1, [r4, #3436] ldr r2, [r4, #328] - subs r2, r2, r0 + subs r2, r2, r1 subs r2, r2, #1 sxth r2, r2 - cmp r3, r2 - bgt .L689 -.L734: - ldr r2, [r4, #3384] - adds r0, r0, #1 + cmp r2, r3 + blt .L695 + ldr r2, [r4, #3380] + adds r1, r1, #1 + strh r1, [r4, #3436] @ movhi ldr r1, [r6, #4] - strh r0, [r4, #3440] @ movhi str r1, [r2, r3, lsl #2] - ldr r2, [r4, #3360] -.L754: + ldr r2, [r4, #3356] +.L756: strh r5, [r2, r3, lsl #1] @ movhi - b .L689 -.L700: - ldr r0, [r4, #3384] + b .L695 +.L702: adds r2, r2, #1 - add lr, r0, r1, lsl #2 - ldr lr, [lr, #4] - str lr, [r0, r1, lsl #2] - ldr r0, [r4, #3360] - add lr, r0, r1, lsl #1 - ldrh lr, [lr, #2] - strh lr, [r0, r1, lsl #1] @ movhi - b .L699 -.L697: + adds r0, r0, #1 + ldr r9, [r1, r2, lsl #2] + add r1, r1, r2, lsl #2 + str r9, [r1, #-4] + ldr r1, [r4, #3356] + ldrh r9, [r1, r2, lsl #1] + add r2, r1, r2, lsl #1 + strh r9, [r2, #-2] @ movhi + b .L701 +.L699: subs r3, r3, #1 + mov ip, r10 sxth r3, r3 - b .L696 -.L758: + b .L698 +.L760: .align 2 -.L757: +.L759: .word .LANCHOR0 .word .LANCHOR0+260 .word .LANCHOR1+231 .word .LC8 -.L692: +.L693: ldrh r2, [r4, #344] ldrh r3, [r4, #320] cmp r2, r3 - bls .L705 - movw r2, #1266 - ldr r1, .L759 - ldr r0, .L759+4 + bls .L707 + ldr r1, .L761 + movw r2, #1273 + ldr r0, .L761+4 bl sftl_printk -.L705: +.L707: ldrh lr, [r4, #320] ldrh r0, [r4, #344] - ldr r10, [r4, #3372] add ip, lr, #-1 + ldr r2, [r4, #3368] sxth r3, ip sub ip, ip, r0 -.L706: +.L708: cmp r3, ip - ble .L711 - ldr r2, [r6, #4] - lsl fp, r3, #2 - ldr r1, [r10, r3, lsl #2] - cmp r2, r1 - bls .L707 - ldr r2, [r10] - cbnz r2, .L708 + ble .L713 + ldr r1, [r6, #4] + lsl r10, r3, #2 + ldr r9, [r2, r3, lsl #2] + cmp r1, r9 + bls .L709 + ldr r2, [r2] + cbnz r2, .L710 cmp lr, r0 itt ne addne r0, r0, #1 strhne r0, [r4, #344] @ movhi -.L708: +.L710: uxth ip, r3 - movs r2, #0 -.L709: - uxth r0, r2 - sxth r1, r2 - cmp ip, r0 - bhi .L710 - ldr r2, [r4, #3372] - ldr r1, [r6, #4] - str r1, [r2, fp] + movs r0, #0 +.L711: + uxth lr, r0 + ldr r1, [r4, #3368] + sxth r2, r0 + cmp ip, lr + bhi .L712 + ldr r2, [r6, #4] + str r2, [r1, r10] ldr r2, [r4, #348] strh r5, [r2, r3, lsl #1] @ movhi -.L711: +.L713: cmp r3, #0 - blt .L689 + blt .L695 ldrh r2, [r4, #320] ldrh r1, [r4, #344] subs r2, r2, #1 subs r2, r2, r1 sxth r2, r2 - cmp r3, r2 - bgt .L689 + cmp r2, r3 + blt .L695 + ldr r2, [r4, #3368] adds r1, r1, #1 - ldr r2, [r4, #3372] strh r1, [r4, #344] @ movhi ldr r1, [r6, #4] str r1, [r2, r3, lsl #2] ldr r2, [r4, #348] - b .L754 -.L710: - ldr r0, [r4, #3372] + b .L756 +.L712: adds r2, r2, #1 - add lr, r0, r1, lsl #2 - ldr lr, [lr, #4] - str lr, [r0, r1, lsl #2] - ldr r0, [r4, #348] - add lr, r0, r1, lsl #1 - ldrh lr, [lr, #2] - strh lr, [r0, r1, lsl #1] @ movhi - b .L709 -.L707: + adds r0, r0, #1 + ldr lr, [r1, r2, lsl #2] + add r1, r1, r2, lsl #2 + str lr, [r1, #-4] + ldr r1, [r4, #348] + ldrh lr, [r1, r2, lsl #1] + add r2, r1, r2, lsl #1 + strh lr, [r2, #-2] @ movhi + b .L711 +.L709: subs r3, r3, #1 sxth r3, r3 - b .L706 -.L690: - ldrh r1, [r4, #2628] + b .L708 +.L694: + ldrh r1, [r4, #2624] movw r2, #65535 cmp r1, r2 - bne .L713 - strh r5, [r4, #2628] @ movhi -.L755: - str r3, [r4, #2636] - b .L689 -.L713: - ldrh r0, [r4, #2632] + bne .L715 + strh r5, [r4, #2624] @ movhi +.L758: + str r3, [r4, #2632] + b .L695 +.L715: + ldrh r0, [r4, #2628] cmp r0, r2 - beq .L714 + beq .L716 movs r1, #1 bl FtlFreeSysBlkQueueIn -.L714: - ldr r2, [r4, #2636] +.L716: + ldr r2, [r4, #2632] ldr r3, [r6, #4] cmp r2, r3 - bcs .L715 - ldrh r3, [r4, #2628] - strh r5, [r4, #2628] @ movhi - strh r3, [r4, #2632] @ movhi + bcs .L717 + ldrh r3, [r4, #2624] + strh r3, [r4, #2628] @ movhi + strh r5, [r4, #2624] @ movhi ldr r3, [r6, #4] - b .L755 -.L715: - strh r5, [r4, #2632] @ movhi - b .L689 -.L718: - ldr r1, [r4, #3360] + b .L758 +.L717: + strh r5, [r4, #2628] @ movhi + b .L695 +.L720: + ldr r1, [r4, #3356] ldrh r3, [r1] - cbz r3, .L720 -.L723: + cbz r3, .L722 +.L725: ldr r1, [r4, #348] ldrh r2, [r1] cmp r2, #0 - beq .L721 -.L722: - ldrh r2, [r4, #3440] + beq .L723 +.L724: + ldrh r2, [r4, #3436] ldr r3, [r4, #328] cmp r2, r3 - bls .L753 - movw r2, #1391 - ldr r1, .L759 - ldr r0, .L759+4 + bls .L754 + ldr r1, .L761 + movw r2, #1398 + ldr r0, .L761+4 bl sftl_printk -.L753: +.L754: movs r0, #0 add sp, sp, #20 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L720: - ldrh r2, [r4, #3440] +.L722: + ldrh r2, [r4, #3436] cmp r2, #0 - beq .L723 + beq .L725 ldr r0, [r4, #328] -.L724: +.L726: sxth r2, r3 cmp r2, r0 - bcs .L723 + bcs .L725 ldrh r5, [r1, r2, lsl #1] adds r3, r3, #1 cmp r5, #0 - beq .L724 + beq .L726 mov r3, r2 movs r5, #0 -.L725: - ldr r1, [r4, #328] - cmp r3, r1 - bcs .L723 - ldr r1, [r4, #3360] + b .L727 +.L728: + ldr r1, [r4, #3356] subs r0, r3, r2 ldrh r6, [r1, r3, lsl #1] strh r6, [r1, r0, lsl #1] @ movhi - ldr r1, [r4, #3384] + ldr r1, [r4, #3380] ldr r6, [r1, r3, lsl #2] str r6, [r1, r0, lsl #2] - ldr r1, [r4, #3360] + ldr r1, [r4, #3356] strh r5, [r1, r3, lsl #1] @ movhi adds r3, r3, #1 sxth r3, r3 +.L727: + ldr r1, [r4, #328] + cmp r3, r1 + bcc .L728 b .L725 -.L721: +.L723: ldrh r3, [r4, #344] cmp r3, #0 - beq .L722 + beq .L724 ldrh r0, [r4, #320] -.L730: +.L732: sxth r3, r2 - cmp r3, r0 mov r5, r3 - bge .L722 + cmp r3, r0 + bge .L724 ldrh r6, [r1, r3, lsl #1] adds r2, r2, #1 cmp r6, #0 - beq .L730 + beq .L732 movs r0, #0 -.L731: +.L733: ldrh r2, [r4, #320] cmp r3, r2 - bge .L722 + bge .L724 ldr r2, [r4, #348] subs r1, r3, r5 ldrh r6, [r2, r3, lsl #1] strh r6, [r2, r1, lsl #1] @ movhi - ldr r2, [r4, #3372] + ldr r2, [r4, #3368] ldr r6, [r2, r3, lsl #2] str r6, [r2, r1, lsl #2] ldr r2, [r4, #348] strh r0, [r2, r3, lsl #1] @ movhi adds r3, r3, #1 sxth r3, r3 - b .L731 -.L760: + b .L733 +.L762: .align 2 -.L759: +.L761: .word .LANCHOR1+231 .word .LC8 .fnend @@ -5424,170 +5636,186 @@ FtlLoadBbt: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - push {r4, r5, r6, r7, r8, lr} - .save {r4, r5, r6, r7, r8, lr} - movw r8, #61649 - ldr r4, .L790 - ldr r3, [r4, #3304] - add r7, r4, #3456 - ldr r6, [r4, #3336] - str r3, [r4, #3464] - str r6, [r4, #3468] + push {r4, r5, r6, r7, r8, r9, r10, lr} + .save {r4, r5, r6, r7, r8, r9, r10, lr} + movw r7, #61649 + ldr r4, .L794 + addw r8, r4, #3452 + ldr r3, [r4, #3300] + ldr r6, [r4, #3332] + str r3, [r4, #3460] + str r6, [r4, #3464] bl FtlBbtMemInit ldrh r5, [r4, #298] subs r5, r5, #1 uxth r5, r5 -.L762: +.L764: ldrh r3, [r4, #298] subs r3, r3, #16 cmp r5, r3 - ble .L765 + ble .L769 + movs r2, #1 + mov r0, r8 + mov r1, r2 lsls r3, r5, #10 - movs r2, #1 - mov r1, r2 - mov r0, r7 - str r3, [r4, #3460] + str r3, [r4, #3456] bl FlashReadPages - ldr r3, [r4, #3456] + ldr r3, [r4, #3452] adds r3, r3, #1 - bne .L763 - ldr r3, [r4, #3460] - movs r2, #1 - mov r1, r2 - mov r0, r7 - adds r3, r3, #1 - str r3, [r4, #3460] - bl FlashReadPages -.L763: - ldr r3, [r4, #3456] - adds r3, r3, #1 - beq .L764 + beq .L765 +.L768: ldrh r3, [r6] - cmp r3, r8 - bne .L764 + cmp r3, r7 + bne .L767 ldr r3, [r6, #4] - strh r5, [r4, #352] @ movhi str r3, [r4, #360] + strh r5, [r4, #352] @ movhi ldrh r3, [r6, #8] strh r3, [r4, #356] @ movhi -.L765: +.L769: ldrh r3, [r4, #352] movw r2, #65535 cmp r3, r2 - beq .L779 + beq .L783 ldrh r3, [r4, #356] cmp r3, r2 - beq .L769 - lsls r3, r3, #10 + beq .L773 movs r2, #1 + ldr r0, .L794+4 mov r1, r2 - ldr r0, .L790+4 - str r3, [r4, #3460] + lsls r3, r3, #10 + str r3, [r4, #3456] bl FlashReadPages - ldr r3, [r4, #3456] + ldr r3, [r4, #3452] adds r3, r3, #1 - beq .L769 + beq .L773 ldrh r2, [r6] movw r3, #61649 cmp r2, r3 - bne .L769 + bne .L773 ldr r3, [r6, #4] ldr r2, [r4, #360] cmp r3, r2 - bls .L769 - ldrh r2, [r4, #356] + bls .L773 str r3, [r4, #360] + ldrh r2, [r4, #356] ldrh r3, [r6, #8] strh r2, [r4, #352] @ movhi strh r3, [r4, #356] @ movhi -.L769: - ldr r7, .L790+4 - movs r1, #1 - ldrh r0, [r4, #352] - movw r8, #61649 - bl FtlGetLastWrittenPage - sxth r5, r0 - adds r0, r0, #1 - strh r0, [r4, #354] @ movhi -.L771: - cmp r5, #0 - bge .L774 - movs r2, #251 - ldr r1, .L790+8 - ldr r0, .L790+12 - bl sftl_printk .L773: - ldrh r3, [r6, #10] + ldrh r0, [r4, #352] + movs r1, #1 + ldr r9, .L794+4 + bl FtlGetLastWrittenPage + sxth r8, r0 + mov r7, r0 + add r3, r8, #1 + movs r5, #0 + strh r3, [r4, #354] @ movhi + movw r10, #61649 +.L775: + subs r3, r7, r5 + lsls r3, r3, #16 + bpl .L778 + ldr r1, .L794+8 + movs r2, #251 + ldr r0, .L794+12 + bl sftl_printk +.L777: ldrh r0, [r6, #12] + ldrh r3, [r6, #10] strh r3, [r4, #358] @ movhi movw r3, #65535 cmp r0, r3 - beq .L776 - ldr r2, [r4, #228] - cmp r0, r2 - beq .L776 - ldrh r3, [r4, #242] - lsrs r3, r3, #2 - cmp r2, r3 - bcs .L776 + beq .L780 + ldr r3, [r4, #228] cmp r0, r3 - bcs .L776 + beq .L780 + ldrh r2, [r4, #242] + lsrs r1, r2, #2 + cmp r3, r2, lsr #2 + bcs .L780 + cmp r0, r1 + bcs .L780 bl FtlSysBlkNumInit -.L776: - ldr r6, .L790+16 +.L780: + ldr r6, .L794+16 movs r5, #0 -.L777: +.L781: ldrh r3, [r4, #254] - cmp r5, r3 - bcc .L778 + cmp r3, r5 + bhi .L782 movs r0, #0 - pop {r4, r5, r6, r7, r8, pc} -.L764: +.L763: + pop {r4, r5, r6, r7, r8, r9, r10, pc} +.L765: + ldr r3, [r4, #3456] + movs r2, #1 + mov r0, r8 + mov r1, r2 + adds r3, r3, #1 + str r3, [r4, #3456] + bl FlashReadPages + ldr r3, [r4, #3452] + adds r3, r3, #1 + bne .L768 +.L767: subs r5, r5, #1 uxth r5, r5 - b .L762 -.L774: - ldrh r3, [r4, #352] - movs r2, #1 - mov r1, r2 - mov r0, r7 - orr r3, r5, r3, lsl #10 - str r3, [r4, #3460] - ldr r3, [r4, #3304] - str r3, [r4, #3464] - bl FlashReadPages - ldr r3, [r4, #3456] - adds r3, r3, #1 - beq .L772 - ldrh r3, [r6] - cmp r3, r8 - beq .L773 -.L772: - subs r5, r5, #1 - sxth r5, r5 - b .L771 + b .L764 .L778: - ldrh r2, [r4, #3392] - ldr r1, [r4, #3464] - ldr r0, [r6, #4]! - lsls r2, r2, #2 - mla r1, r5, r2, r1 + ldrh r2, [r4, #352] + sub r3, r8, r5 + mov r0, r9 + orr r3, r3, r2, lsl #10 + movs r2, #1 + str r3, [r4, #3456] + mov r1, r2 + ldr r3, [r4, #3300] + str r3, [r4, #3460] + bl FlashReadPages + ldr r3, [r4, #3452] + adds r3, r3, #1 + beq .L776 + ldrh r3, [r6] + cmp r3, r10 + beq .L777 +.L776: adds r5, r5, #1 + b .L775 +.L782: + ldrh r2, [r4, #3388] + ldr r3, [r4, #3460] + ldr r0, [r6], #4 + mul r1, r5, r2 + lsls r2, r2, #2 + adds r5, r5, #1 + add r1, r3, r1, lsl #2 bl ftl_memcpy - b .L777 -.L779: + b .L781 +.L783: mov r0, #-1 - pop {r4, r5, r6, r7, r8, pc} -.L791: + b .L763 +.L795: .align 2 -.L790: +.L794: .word .LANCHOR0 - .word .LANCHOR0+3456 + .word .LANCHOR0+3452 .word .LANCHOR1+245 .word .LC8 - .word .LANCHOR0+376 + .word .LANCHOR0+380 .fnend .size FtlLoadBbt, .-FtlLoadBbt + .section .rodata.str1.1 +.LC95: + .ascii "prog read error: = %x\012\000" +.LC96: + .ascii "prog read REFRESH: = %x\012\000" +.LC97: + .ascii "prog read s error: = %x %x %x %x %x\012\000" +.LC98: + .ascii "prog read d error: = %x %x %x %x %x\012\000" + .text .align 1 .global FlashProgPages .syntax unified @@ -5599,222 +5827,235 @@ FlashProgPages: .fnstart @ args = 0, pretend = 0, frame = 48 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L830 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - .pad #52 - sub sp, sp, #52 - ldr r6, .L830+4 - mov fp, r1 + mov r8, r0 + ldr r6, .L835 + .pad #60 + sub sp, sp, #60 mov r4, r0 + mov r3, sp mov r5, r0 - str r2, [sp, #8] - mov r10, #0 - ldr r2, [r3] - mov r8, r6 - str r3, [sp, #12] - str r2, [sp, #44] - ldrh r2, [r6, #12] - str r2, [sp] - lsls r2, r2, #3 - str r2, [sp, #4] -.L793: - cmp r10, fp - bne .L807 - ldr r7, .L830+8 - movs r5, #0 - ldr r8, .L830+32 - ldr r9, .L830+36 -.L808: - cmp r10, r5 - beq .L801 - ldr r2, [r6, #3324] + bic r10, r3, #8160 + mov fp, #0 + bic r10, r10, #31 + str r1, [sp, #12] + str r2, [sp, #20] + ldr r3, [r10, #24] + str r3, [sp, #52] + ldrh r3, [r6, #12] + mov r9, r3 + lsls r3, r3, #3 + str r3, [sp, #16] +.L797: + ldr r3, [sp, #12] + cmp fp, r3 + bne .L810 + movs r0, #20 + ldr r7, .L835+4 + ldr r9, .L835+8 + mla r8, r0, fp, r8 + ldr r5, .L835 +.L811: + cmp r8, r4 + beq .L804 + ldr r2, [r6, #3320] movs r3, #0 + add r0, sp, #32 movs r1, #1 - add r0, sp, #24 str r3, [r2] - ldr r2, [r6, #3332] + ldr r2, [r6, #3328] str r3, [r2] + ldr r2, [sp, #20] ldr r3, [r4, #4] - ldr r2, [sp, #8] - str r3, [sp, #28] - ldr r3, [r6, #3324] - str r3, [sp, #32] - ldr r3, [r6, #3332] str r3, [sp, #36] + ldr r3, [r6, #3320] + str r3, [sp, #40] + ldr r3, [r6, #3328] + str r3, [sp, #44] bl FlashReadPages - ldr fp, [sp, #24] + ldr fp, [sp, #32] cmp fp, #-1 - bne .L809 + bne .L812 ldr r1, [r4, #4] mov r0, r7 bl sftl_printk str fp, [r4] -.L809: - ldr fp, [sp, #24] +.L812: + ldr fp, [sp, #32] cmp fp, #256 - bne .L810 - ldr r1, [r4, #4] - mov r0, r8 - bl sftl_printk - str fp, [r4] -.L810: - ldr r3, [r4, #12] - cbz r3, .L811 - ldr r2, [r3] - ldr r3, [r6, #3332] - ldr r3, [r3] - cmp r2, r3 - beq .L811 + bne .L813 ldr r1, [r4, #4] mov r0, r9 bl sftl_printk - mov r3, #-1 - str r3, [r4] -.L811: - ldr r3, [r4, #8] - cbz r3, .L812 + str fp, [r4] +.L813: + ldr r3, [r4, #12] + cbz r3, .L814 + ldr r1, [r5, #3328] ldr r2, [r3] - ldr r3, [r6, #3324] - ldr r3, [r3] - cmp r2, r3 - beq .L812 + ldr r0, [r1] + cmp r2, r0 + bne .L815 + ldr ip, [r3, #8] + ldr lr, [r1, #8] + cmp ip, lr + beq .L814 +.L815: + ldr r1, [r1, #4] + strd r0, r1, [sp] + ldr r0, .L835+12 + ldr r3, [r3, #4] ldr r1, [r4, #4] - ldr r0, .L830+12 bl sftl_printk mov r3, #-1 str r3, [r4] -.L812: - adds r5, r5, #1 - adds r4, r4, #20 - b .L808 -.L807: - ldr r3, [r5, #8] - cbz r3, .L794 - ldr r3, [r5, #12] - cbnz r3, .L795 -.L794: - movs r2, #148 - ldr r1, .L830+16 - ldr r0, .L830+20 +.L814: + ldr r3, [r4, #8] + cbz r3, .L816 + ldr r1, [r5, #3320] + ldr r2, [r3] + ldr r0, [r1] + cmp r2, r0 + bne .L817 + ldr ip, [r3, #2048] + ldr lr, [r1, #2048] + cmp ip, lr + beq .L816 +.L817: + ldr r1, [r1, #4] + strd r0, r1, [sp] + ldr r0, .L835+16 + ldr r3, [r3, #4] + ldr r1, [r4, #4] bl sftl_printk -.L795: - add r2, sp, #16 - add r1, sp, #20 + mov r3, #-1 + str r3, [r4] +.L816: + adds r4, r4, #20 + b .L811 +.L810: + ldr r3, [r5, #8] + cbz r3, .L798 + ldr r3, [r5, #12] + cbnz r3, .L799 +.L798: + ldr r1, .L835+20 + movs r2, #148 + ldr r0, .L835+24 + bl sftl_printk +.L799: + add r2, sp, #24 + add r1, sp, #28 mov r0, r5 bl l2p_addr_tran - ldr r7, [sp, #16] + ldr r7, [sp, #24] cmp r7, #3 - bls .L796 -.L829: + bls .L800 +.L834: mov r3, #-1 str r3, [r5] - b .L797 -.L796: - cbnz r7, .L798 - ldr r3, [sp, #20] - ldr r2, [sp, #4] - cmp r2, r3 - bls .L798 - ldr r5, .L830+16 - ldr r6, .L830+24 - ldr r8, .L830+40 - b .L828 + b .L801 .L800: + cbnz r7, .L802 + ldr r3, [sp, #28] + ldr r2, [sp, #16] + cmp r2, r3 + bls .L802 + ldr r6, .L835+20 + ldr r5, .L835+28 +.L803: + ldr r2, [r4, #4] mov r3, #-1 - ldr r2, [r4, #-16] - str r3, [r4, #-20] - mov r1, r5 - mov r0, r6 + mov r1, r6 + str r3, [r4] + mov r0, r5 adds r7, r7, #1 bl sftl_printk + ldr r1, [r4, #8] + ldr r0, .L835+32 movs r3, #16 movs r2, #4 - ldr r1, [r4, #-12] - mov r0, r8 + adds r4, r4, #20 bl rknand_print_hex movs r3, #4 ldr r1, [r4, #-8] mov r2, r3 - ldr r0, .L830+28 + ldr r0, .L835+36 bl rknand_print_hex -.L828: - cmp r7, fp - add r4, r4, #20 - bne .L800 - bl dump_stack -.L801: ldr r3, [sp, #12] - movs r0, #0 - ldr r2, [sp, #44] - ldr r3, [r3] + cmp r3, r7 + bne .L803 + bl dump_stack +.L804: + ldr r2, [sp, #52] + ldr r3, [r10, #24] cmp r2, r3 - beq .L814 + beq .L819 bl __stack_chk_fail -.L798: +.L802: ldr r1, [r5, #8] lsls r3, r1, #26 - beq .L815 - ldr r9, [r8, #3324] - cmp r1, r9 - beq .L802 - ldrh r2, [r8, #258] - mov r0, r9 + beq .L820 + ldr r7, [r6, #3320] + cmp r7, r1 + beq .L805 + ldrh r2, [r6, #258] + mov r0, r7 lsls r2, r2, #9 bl ftl_memcpy -.L802: +.L805: ldr r3, [r5, #12] - mov r2, r9 - ldr r1, [sp, #20] - ldrb r0, [sp, #16] @ zero_extendqisi2 - ldr r7, [r8, #3256] - blx r7 - cbnz r0, .L803 + mov r2, r7 + ldr r1, [sp, #28] + ldrb r0, [sp, #24] @ zero_extendqisi2 + ldr ip, [r6, #3252] + blx ip + cbnz r0, .L806 str r0, [r5] -.L804: - ldrh r3, [r8, #14] +.L807: + ldrh r3, [r6, #14] cmp r3, #4 - bne .L797 - ldr r0, [sp] - add r2, r9, #2048 + bne .L801 ldr r3, [r5, #12] - ldr r1, [sp, #20] - ldr r7, [r8, #3256] + add r2, r7, #2048 + ldr r1, [sp, #28] + ldrb r0, [sp, #24] @ zero_extendqisi2 adds r3, r3, #8 - add r1, r1, r0 - ldrb r0, [sp, #16] @ zero_extendqisi2 + ldr r7, [r6, #3252] + add r1, r1, r9 blx r7 cmp r0, #0 - bne .L829 -.L797: - add r10, r10, #1 + bne .L834 +.L801: + add fp, fp, #1 adds r5, r5, #20 - b .L793 -.L815: - mov r9, r1 - b .L802 -.L803: + b .L797 +.L820: + mov r7, r1 + b .L805 +.L806: mov r3, #-1 str r3, [r5] - b .L804 -.L814: - add sp, sp, #52 + b .L807 +.L819: + movs r0, #0 + add sp, sp, #60 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L831: +.L836: .align 2 -.L830: - .word __stack_chk_guard +.L835: .word .LANCHOR0 .word .LC95 + .word .LC96 + .word .LC97 .word .LC98 .word .LANCHOR1+256 .word .LC8 .word .LC86 - .word .LC88 - .word .LC96 - .word .LC97 .word .LC87 + .word .LC88 .fnend .size FlashProgPages, .-FlashProgPages .align 1 @@ -5826,221 +6067,215 @@ FlashProgPages: .type FtlLowFormatEraseBlock, %function FtlLowFormatEraseBlock: .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 #12 mov r10, #0 - ldr r4, .L877 + ldr r4, .L882 + mov r8, r0 mov r7, r1 mov r6, r10 mov r5, r10 mov r9, #20 - .pad #20 - sub sp, sp, #20 - mov fp, r4 - str r0, [sp, #4] - str r0, [r4, #3288] -.L833: + str r0, [r4, #3284] +.L838: ldrh r1, [r4, #232] uxth r3, r10 cmp r1, r3 - bhi .L838 + bhi .L843 cmp r6, #0 - beq .L832 - mov r8, #0 - mov r9, #20 + beq .L837 + mov r9, #0 + mov r10, #20 + ldr r0, [r4, #3268] mov r2, r6 movs r1, #0 - ldr r0, [r4, #3272] bl FlashEraseBlocks -.L841: - uxth r3, r8 - cmp r6, r3 - bhi .L843 - cmp r7, #0 - beq .L860 - ldrh r3, [r4, #304] - mov r10, #1 - str r3, [sp, #8] -.L844: - mov r8, #0 - mov fp, #20 -.L854: - mov r9, #0 - mov r6, r9 -.L845: - ldrh r1, [r4, #232] - uxth r3, r9 - cmp r1, r3 - bhi .L849 - cbz r6, .L832 - mov r9, #0 - movs r3, #1 - mov r2, r10 - mov r1, r6 - ldr r0, [r4, #3272] - bl FlashProgPages -.L851: - uxth r3, r9 - cmp r6, r3 - bhi .L853 - add r8, r8, #1 - ldr r2, [sp, #8] - uxth r3, r8 - cmp r2, r3 - bhi .L854 - mov r8, #0 - mov r9, #20 -.L855: - uxth r3, r8 - cmp r6, r3 - bhi .L857 - ldr r3, [sp, #4] - cmp r3, #63 - bls .L858 - cbz r7, .L832 -.L858: - mov r2, r6 - mov r1, r10 - ldr r0, [r4, #3272] - bl FlashEraseBlocks -.L832: - mov r0, r5 - add sp, sp, #20 - @ sp needed - pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L838: - uxth r3, r10 - ldr r0, [r4, #3272] - movs r2, #0 - mul r1, r9, r3 - add r3, r3, r4 - str r2, [r0, r1] - ldr r1, [sp, #4] - ldrb r0, [r3, #260] @ zero_extendqisi2 - bl V2P_block - mov r8, r0 - cbz r7, .L834 - bl IsBlkInVendorPart - cbnz r0, .L835 -.L834: - mov r0, r8 - bl FtlBbmIsBadBlock - cbnz r0, .L836 - ldr r1, [r4, #3272] - lsl r3, r8, #10 - ldr r0, [fp, #3340] - mla r1, r9, r6, r1 - str r3, [r1, #4] - ldr r3, [r4, #3320] - str r3, [r1, #8] - ldrh r3, [r4, #312] - muls r3, r6, r3 - add r6, r6, #1 - it mi - addmi r3, r3, #3 - uxth r6, r6 - bic r3, r3, #3 - add r3, r3, r0 - str r3, [r1, #12] -.L835: - add r10, r10, #1 - b .L833 -.L836: - adds r5, r5, #1 - uxth r5, r5 - b .L835 -.L843: - mul r3, r9, r8 - ldr r2, [r4, #3272] +.L847: + mul r3, r10, r9 + ldr r2, [r4, #3268] adds r1, r2, r3 ldr r3, [r2, r3] adds r3, r3, #1 - bne .L842 + bne .L846 ldr r0, [r1, #4] adds r5, r5, #1 uxth r5, r5 ubfx r0, r0, #10, #16 bl FtlBbmMapBadBlock -.L842: - add r8, r8, #1 - b .L841 -.L860: - movs r3, #2 - mov r10, r7 - str r3, [sp, #8] - b .L844 -.L849: - uxth r3, r9 - ldr r0, [r4, #3272] - movs r2, #0 - mul r1, fp, r3 - add r3, r3, r4 - str r2, [r0, r1] - ldr r1, [sp, #4] - ldrb r0, [r3, #260] @ zero_extendqisi2 - bl V2P_block - str r0, [sp, #12] - cbz r7, .L846 - bl IsBlkInVendorPart - cbnz r0, .L847 .L846: - ldr r0, [sp, #12] - bl FtlBbmIsBadBlock - cbnz r0, .L847 - ldr r1, [r4, #3272] - ldr r3, [sp, #12] - ldr r2, .L877 - mla r1, fp, r6, r1 - ldr r0, [r2, #3320] - add r3, r8, r3, lsl #10 - str r3, [r1, #4] - ldr r3, [r4, #3316] - str r3, [r1, #8] - ldrh r3, [r4, #312] - muls r3, r6, r3 - add r6, r6, #1 - it mi - addmi r3, r3, #3 - uxth r6, r6 - bic r3, r3, #3 - add r3, r3, r0 - str r3, [r1, #12] -.L847: add r9, r9, #1 - b .L845 -.L853: - mul r3, fp, r9 - ldr r2, [r4, #3272] + uxth r3, r9 + cmp r6, r3 + bhi .L847 + cmp r7, #0 + beq .L862 + ldrh r3, [r4, #304] + mov fp, #1 + str r3, [sp, #4] +.L848: + mov r10, #0 +.L857: + mov r9, #0 + mov r6, r9 +.L849: + ldrh r1, [r4, #232] + uxth r3, r9 + cmp r1, r3 + bhi .L853 + cmp r6, #0 + beq .L837 + mov r9, #0 + ldr r0, [r4, #3268] + mov r2, fp + mov r1, r6 + movs r3, #1 + bl FlashProgPages +.L856: + movs r3, #20 + ldr r2, [r4, #3268] + mul r3, r3, r9 adds r1, r2, r3 ldr r3, [r2, r3] - cbz r3, .L852 + cbz r3, .L855 ldr r0, [r1, #4] adds r5, r5, #1 uxth r5, r5 ubfx r0, r0, #10, #16 bl FtlBbmMapBadBlock -.L852: +.L855: add r9, r9, #1 - b .L851 -.L857: - cbz r7, .L856 - mul r3, r9, r8 - ldr r2, [r4, #3272] + uxth r3, r9 + cmp r6, r3 + bhi .L856 + add r10, r10, #1 + ldr r2, [sp, #4] + uxth r3, r10 + cmp r2, r3 + bhi .L857 + mov r9, #0 + mov r10, #20 +.L859: + cbz r7, .L858 + mul r3, r10, r9 + ldr r2, [r4, #3268] adds r1, r2, r3 ldr r3, [r2, r3] - cbnz r3, .L856 + cbnz r3, .L858 ldr r0, [r1, #4] movs r1, #1 ubfx r0, r0, #10, #16 bl FtlFreeSysBlkQueueIn -.L856: - add r8, r8, #1 - b .L855 -.L878: +.L858: + add r9, r9, #1 + uxth r3, r9 + cmp r6, r3 + bhi .L859 + cmp r8, #63 + bls .L860 + cbz r7, .L837 +.L860: + ldr r0, [r4, #3268] + mov r2, r6 + mov r1, fp + bl FlashEraseBlocks +.L837: + mov r0, r5 + add sp, sp, #12 + @ sp needed + pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} +.L843: + uxth r3, r10 + ldr r0, [r4, #3268] + movs r2, #0 + mul r1, r9, r3 + add r3, r3, r4 + str r2, [r0, r1] + mov r1, r8 + ldrb r0, [r3, #260] @ zero_extendqisi2 + bl V2P_block + mov fp, r0 + cbz r7, .L839 + bl IsBlkInVendorPart + cbnz r0, .L840 +.L839: + mov r0, fp + bl FtlBbmIsBadBlock + cbnz r0, .L841 + ldr r1, [r4, #3268] + lsl r0, fp, #10 + ldr r3, [r4, #3316] + mla r1, r9, r6, r1 + str r3, [r1, #8] + ldrh r3, [r4, #312] + str r0, [r1, #4] + ldr r0, [r4, #3336] + muls r3, r6, r3 + add r6, r6, #1 + it mi + addmi r3, r3, #3 + uxth r6, r6 + bic r3, r3, #3 + add r3, r3, r0 + str r3, [r1, #12] +.L840: + add r10, r10, #1 + b .L838 +.L841: + adds r5, r5, #1 + uxth r5, r5 + b .L840 +.L862: + movs r3, #2 + mov fp, r7 + str r3, [sp, #4] + b .L848 +.L853: + uxth r3, r9 + movs r2, #20 + ldr r0, [r4, #3268] + mul r1, r2, r3 + add r3, r3, r4 + movs r2, #0 + str r2, [r0, r1] + mov r1, r8 + ldrb r0, [r3, #260] @ zero_extendqisi2 + bl V2P_block + str r0, [sp] + cbz r7, .L850 + bl IsBlkInVendorPart + cbnz r0, .L851 +.L850: + ldr r0, [sp] + bl FtlBbmIsBadBlock + cbnz r0, .L851 + ldr r1, [r4, #3268] + movs r3, #20 + ldr r2, .L882 + mla r1, r3, r6, r1 + ldr r3, [sp] + add r0, r10, r3, lsl #10 + ldr r3, [r4, #3312] + str r3, [r1, #8] + ldrh r3, [r4, #312] + str r0, [r1, #4] + ldr r0, [r2, #3316] + muls r3, r6, r3 + add r6, r6, #1 + it mi + addmi r3, r3, #3 + uxth r6, r6 + bic r3, r3, #3 + add r3, r3, r0 + str r3, [r1, #12] +.L851: + add r9, r9, #1 + b .L849 +.L883: .align 2 -.L877: +.L882: .word .LANCHOR0 .fnend .size FtlLowFormatEraseBlock, .-FtlLowFormatEraseBlock @@ -6058,30 +6293,32 @@ FlashTestBlk: push {r4, r5, r6, lr} .save {r4, r5, r6, lr} cmp r0, #11 - ldr r6, .L885 + mov r4, r0 .pad #88 sub sp, sp, #88 - mov r5, r0 - ldr r2, [r6] - str r2, [sp, #84] - bls .L883 - ldr r4, .L885+4 + mov r3, sp + bic r6, r3, #8160 + bic r6, r6, #31 + ldr r3, [r6, #24] + str r3, [sp, #84] + bls .L888 + ldr r5, .L890 add r0, sp, #20 movs r2, #32 movs r1, #165 str r0, [sp, #12] - lsls r5, r5, #10 - ldr r3, [r4, #3328] + lsls r4, r4, #10 + ldr r3, [r5, #3324] str r3, [sp, #8] bl ftl_memset movs r2, #8 movs r1, #90 - ldr r0, [r4, #3328] + ldr r0, [r5, #3324] bl ftl_memset movs r2, #1 mov r0, sp mov r1, r2 - str r5, [sp, #4] + str r4, [sp, #4] bl FlashEraseBlocks movs r3, #1 mov r0, sp @@ -6089,49 +6326,56 @@ FlashTestBlk: mov r1, r3 bl FlashProgPages ldr r3, [sp] - cbnz r3, .L884 - adds r3, r5, #1 + cbnz r3, .L889 + adds r3, r4, #1 mov r0, sp str r3, [sp, #4] movs r3, #1 mov r2, r3 mov r1, r3 bl FlashProgPages - ldr r4, [sp] - adds r4, r4, #0 + ldr r5, [sp] + subs r5, r5, #0 it ne - movne r4, #1 - negs r4, r4 -.L881: + movne r5, #1 + rsbs r5, r5, #0 +.L886: + mov r0, sp movs r2, #1 movs r1, #0 - mov r0, sp - str r5, [sp, #4] + str r4, [sp, #4] bl FlashEraseBlocks -.L879: - ldr r2, [sp, #84] - mov r0, r4 - ldr r3, [r6] - cmp r2, r3 - beq .L882 - bl __stack_chk_fail .L884: - mov r4, #-1 - b .L881 -.L883: - movs r4, #0 - b .L879 -.L882: + ldr r2, [sp, #84] + ldr r3, [r6, #24] + cmp r2, r3 + beq .L887 + bl __stack_chk_fail +.L889: + mov r5, #-1 + b .L886 +.L888: + movs r5, #0 + b .L884 +.L887: + mov r0, r5 add sp, sp, #88 @ sp needed pop {r4, r5, r6, pc} -.L886: +.L891: .align 2 -.L885: - .word __stack_chk_guard +.L890: .word .LANCHOR0 .fnend .size FlashTestBlk, .-FlashTestBlk + .section .rodata.str1.1 +.LC99: + .ascii "FtlBbmTblFlush id=%x,page=%x,previd=%x cnt=%d\012\000" +.LC100: + .ascii "FtlBbmTblFlush error:%x\012\000" +.LC101: + .ascii "FtlBbmTblFlush error = %x error count = %d\012\000" + .text .align 1 .global FtlBbmTblFlush .syntax unified @@ -6147,81 +6391,79 @@ FtlBbmTblFlush: .save {r4, r5, r6, r7, r8, r9, r10, lr} .pad #8 movs r5, #0 - ldr r4, .L899 + ldr r4, .L903 movs r1, #0 - ldr r0, [r4, #3304] - add r6, r4, #376 - ldr r3, [r4, #3336] + add r6, r4, #380 + ldr r0, [r4, #3300] + ldr r3, [r4, #3332] ldrh r2, [r4, #310] - str r0, [r4, #3464] - str r3, [r4, #3468] + str r0, [r4, #3460] + str r3, [r4, #3464] bl ftl_memset -.L888: +.L893: ldrh r3, [r4, #254] - cmp r5, r3 - blt .L889 - ldr r6, [r4, #3468] + cmp r3, r5 + bgt .L894 + ldr r5, [r4, #3464] movs r2, #16 movs r1, #255 - ldr r8, .L899+12 - ldr r9, .L899+16 - movs r5, #0 - mov r0, r6 - mov r7, r5 + ldr r8, .L903+4 + mov r0, r5 + ldr r9, .L903+8 bl ftl_memset movw r3, #61649 - strh r3, [r6] @ movhi + strh r3, [r5] @ movhi + movs r6, #0 + mov r7, r6 ldr r3, [r4, #360] - str r3, [r6, #4] + str r3, [r5, #4] ldrh r3, [r4, #352] - strh r3, [r6, #2] @ movhi - ldrh r3, [r4, #356] - strh r3, [r6, #8] @ movhi - ldrh r3, [r4, #358] - strh r3, [r6, #10] @ movhi + strh r3, [r5, #2] @ movhi + ldr r3, [r4, #356] + str r3, [r5, #8] ldr r3, [r4, #228] - strh r3, [r6, #12] @ movhi - ldr r3, [r4, #2608] - strh r3, [r6, #14] @ movhi -.L890: - ldr r3, [r4, #3304] - mov r10, #0 - ldrh r2, [r4, #354] - ldrh r1, [r4, #352] - str r3, [r4, #3464] - ldr r3, [r4, #3336] - str r10, [r4, #3456] - str r3, [r4, #3468] - orr r3, r2, r1, lsl #10 - ldrh r0, [r6, #10] - str r3, [r4, #3460] - ldrh r3, [r4, #356] - str r0, [sp] + strh r3, [r5, #12] @ movhi + ldr r3, [r4, #2604] + strh r3, [r5, #14] @ movhi +.L895: + ldr r3, [r4, #3300] mov r0, r8 + ldrh r2, [r4, #354] + mov r10, #0 + str r3, [r4, #3460] + ldrh r1, [r4, #352] + ldr r3, [r4, #3332] + str r3, [r4, #3464] + orr r3, r2, r1, lsl #10 + str r3, [r4, #3456] + ldrh r3, [r5, #10] + str r3, [sp] + ldrh r3, [r4, #356] + str r10, [r4, #3452] bl sftl_printk ldrh r3, [r4, #304] ldrh r2, [r4, #354] subs r3, r3, #1 cmp r2, r3 - blt .L891 + blt .L896 ldr r3, [r4, #360] - ldrh r2, [r4, #352] - ldr r0, [r4, #3272] + ldr r0, [r4, #3268] adds r3, r3, #1 - strh r10, [r4, #354] @ movhi str r3, [r4, #360] - str r3, [r6, #4] + str r3, [r5, #4] + ldrh r2, [r4, #352] ldrh r3, [r4, #356] - strh r2, [r6, #8] @ movhi + strh r2, [r5, #8] @ movhi strh r2, [r4, #356] @ movhi movs r2, #1 strh r3, [r4, #352] @ movhi mov r1, r2 lsls r3, r3, #10 - str r3, [r4, #3460] + str r3, [r4, #3456] str r3, [r0, #4] + strh r10, [r4, #354] @ movhi bl FlashEraseBlocks -.L891: +.L896: movs r3, #1 mov r0, r9 mov r2, r3 @@ -6230,53 +6472,50 @@ FtlBbmTblFlush: ldrh r3, [r4, #354] adds r3, r3, #1 strh r3, [r4, #354] @ movhi - ldr r3, [r4, #3456] + ldr r3, [r4, #3452] adds r2, r3, #1 - bne .L892 - adds r5, r5, #1 - ldr r1, [r4, #3460] - uxth r5, r5 - ldr r0, .L899+4 + bne .L897 + adds r6, r6, #1 + ldr r1, [r4, #3456] + ldr r0, .L903+12 + uxth r6, r6 bl sftl_printk - cmp r5, #3 - bls .L890 - mov r2, r5 - ldr r1, [r4, #3460] - ldr r0, .L899+8 + cmp r6, #3 + bls .L895 + ldr r1, [r4, #3456] + mov r2, r6 + ldr r0, .L903+16 bl sftl_printk +.L899: + b .L899 .L894: - b .L894 -.L889: - ldrh r2, [r4, #3392] - ldr r3, [r4, #3464] - ldr r1, [r6, #4]! - mul r0, r2, r5 + ldrh r2, [r4, #3388] + ldr r3, [r4, #3460] + ldr r1, [r6], #4 + mul r0, r5, r2 lsls r2, r2, #2 adds r5, r5, #1 add r0, r3, r0, lsl #2 bl ftl_memcpy - b .L888 -.L895: - movs r7, #1 - b .L890 -.L892: + b .L893 +.L897: adds r7, r7, #1 cmp r7, #1 ble .L895 cmp r3, #256 - beq .L890 + beq .L895 movs r0, #0 add sp, sp, #8 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, pc} -.L900: +.L904: .align 2 -.L899: +.L903: .word .LANCHOR0 + .word .LC99 + .word .LANCHOR0+3452 .word .LC100 .word .LC101 - .word .LC99 - .word .LANCHOR0+3456 .fnend .size FtlBbmTblFlush, .-FtlBbmTblFlush .align 1 @@ -6288,71 +6527,67 @@ FtlBbmTblFlush: .type allocate_data_superblock, %function allocate_data_superblock: .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 #12 mov r5, r0 ldr r4, .L937 - .pad #20 - sub sp, sp, #20 - ldr r9, .L937+20 -.L902: - ldr r3, .L937 - ldr r2, .L937 - ldrh r3, [r3, #224] - ldrh r2, [r2, #2528] - add r3, r3, r2 - ldr r2, .L937 - ldrh r2, [r2, #240] - cmp r3, r2 - ble .L903 - movw r2, #2660 - mov r1, r9 - ldr r0, .L937+4 - bl sftl_printk -.L903: - ldr r3, .L937+8 - cmp r5, r3 - bne .L929 + ldr r9, .L937+4 +.L906: + ldrh r2, [r4, #2528] ldrh r3, [r4, #224] - ldr r1, [r4, #3168] + add r3, r3, r2 + ldrh r2, [r4, #240] + cmp r3, r2 + ble .L907 + ldr r0, .L937+8 + mov r1, r9 + movw r2, #2667 + bl sftl_printk +.L907: + ldr r3, .L937+12 + cmp r5, r3 + bne .L932 + ldrh r3, [r4, #224] + ldr r1, [r4, #3164] mul r2, r1, r3 lsrs r1, r3, #1 - adds r1, r1, #1 + movw r3, #65535 add r1, r1, r2, lsr #2 uxth r1, r1 - cbz r1, .L904 - subs r1, r1, #1 - uxth r1, r1 -.L904: - ldr r0, .L937+12 + cmp r1, r3 + it eq + moveq r1, #0 +.L908: + ldr r0, .L937+16 bl List_pop_index_node ldrh r3, [r4, #224] mov r6, r0 uxth r8, r0 - cbnz r3, .L905 - movw r2, #2669 + cbnz r3, .L909 + ldr r0, .L937+8 mov r1, r9 - ldr r0, .L937+4 + movw r2, #2676 bl sftl_printk -.L905: +.L909: ldrh r3, [r4, #224] subs r3, r3, #1 strh r3, [r4, #224] @ movhi ldrh r3, [r4, #240] cmp r3, r8 - bls .L902 + bls .L906 ldr r3, [r4, #72] uxth r6, r6 ldrh r7, [r3, r6, lsl #1] cmp r7, #0 - bne .L902 - strh r8, [r5] @ movhi + bne .L906 mov r0, r5 + strh r8, [r5] @ movhi bl make_superblock ldrb r3, [r5, #7] @ zero_extendqisi2 - cbnz r3, .L907 + cbnz r3, .L911 ldr r3, [r4, #72] movw r2, #65535 mov r0, r8 @@ -6363,217 +6598,219 @@ allocate_data_superblock: add r3, r3, r2 ldrh r2, [r4, #240] cmp r3, r2 - ble .L902 - movw r2, #2683 + ble .L906 + ldr r0, .L937+8 mov r1, r9 - ldr r0, .L937+4 + movw r2, #2690 bl sftl_printk - b .L902 -.L929: + b .L906 +.L932: movs r1, #0 - b .L904 -.L907: + b .L908 +.L911: ldrh r2, [r4, #2528] ldrh r3, [r4, #224] add r3, r3, r2 ldrh r2, [r4, #240] cmp r3, r2 - ble .L909 - movw r2, #2686 + ble .L913 + ldr r0, .L937+8 mov r1, r9 - ldr r0, .L937+4 - bl sftl_printk -.L909: - ldr r1, [r4, #3272] - mov r10, #20 - ldrh r2, [r4, #232] - add fp, r5, #16 - mov r0, fp - mov ip, #0 - mov r3, r1 - mla r2, r10, r2, r1 - str r2, [sp, #4] -.L910: - ldr r2, [sp, #4] - cmp r2, r3 - bne .L912 - cbnz r7, .L913 - movw r2, #2697 - mov r1, r9 - ldr r0, .L937+4 + movw r2, #2693 bl sftl_printk .L913: + ldr r0, [r4, #3268] + add r10, r5, #16 + ldrh r3, [r4, #232] + mov ip, r10 + str r3, [sp] + mov r2, r0 + movs r3, #0 + mov lr, r3 +.L914: + ldr fp, [sp] + uxth r1, r3 + cmp fp, r1 + bhi .L916 + cbnz r7, .L917 + ldr r0, .L937+8 + mov r1, r9 + mov r2, #2704 + bl sftl_printk +.L917: ldrh r3, [r4, #172] cmp r3, r8 - bne .L914 - movw r2, #2699 + bne .L918 + ldr r0, .L937+8 mov r1, r9 - ldr r0, .L937+4 + movw r2, #2706 bl sftl_printk -.L914: - ldrb r3, [r5, #8] @ zero_extendqisi2 +.L918: + ldrb r1, [r5, #8] @ zero_extendqisi2 ldr r2, [r4, #2536] - cmp r3, #0 - bne .L915 ldrh r3, [r2, r6, lsl #1] + cmp r1, #0 + bne .L919 cmp r3, #0 - beq .L916 + beq .L933 ldrh r1, [r4, #292] add r3, r3, r1 -.L936: + uxth r3, r3 +.L920: strh r3, [r2, r6, lsl #1] @ movhi - ldr r3, [r4, #2600] + ldr r3, [r4, #2596] adds r3, r3, #1 - str r3, [r4, #2600] -.L918: + str r3, [r4, #2596] +.L921: ldr r3, [r4, #2536] - ldr r2, [r4, #2616] + ldr r2, [r4, #2612] ldrh r0, [r4, #292] ldrh r3, [r3, r6, lsl #1] ldrh r1, [r4, #240] cmp r3, r2 - ldr r2, [r4, #2600] + ldr r2, [r4, #2596] it hi - strhi r3, [r4, #2616] - ldr r3, [r4, #2604] + strhi r3, [r4, #2612] + ldr r3, [r4, #2600] mla r0, r2, r0, r3 bl __aeabi_uidiv - ldr r2, [r4, #3352] - ldr r1, [r4, #3272] - str r0, [r4, #2608] + ldr r2, [r4, #3348] + str r0, [r4, #2604] + ldr r0, [r4, #3268] ldr r3, [r2, #16] - ldr r0, .L937+16 + ldr ip, .L937+20 adds r3, r3, #1 str r3, [r2, #16] - movs r2, #20 - mla r2, r2, r7, r1 - adds r3, r1, #4 - adds r2, r2, #24 -.L920: + adds r3, r0, #4 + movs r2, #0 +.L923: + uxth r1, r2 adds r3, r3, #20 - cmp r2, r3 - bne .L921 + cmp r7, r1 + bhi .L924 ldrb r1, [r5, #8] @ zero_extendqisi2 mov r2, r7 - ldr r0, [r4, #3272] - mov r10, #0 bl FlashEraseBlocks - mov r3, r10 + mov fp, #0 + mov r2, fp movs r1, #20 -.L922: - uxth r2, r10 - cmp r7, r2 - bhi .L924 - cmp r3, #0 - ble .L925 +.L925: + uxth r3, fp + cmp r7, r3 + bhi .L927 + cmp r2, #0 + ble .L928 mov r0, r8 bl update_multiplier_value bl FtlBbmTblFlush -.L925: +.L928: ldrb r2, [r5, #7] @ zero_extendqisi2 cmp r2, #0 - bne .L926 + bne .L929 ldr r3, [r4, #72] movw r2, #65535 strh r2, [r3, r6, lsl #1] @ movhi - b .L902 -.L912: - str ip, [r3, #8] - movw lr, #65535 - str ip, [r3, #12] - ldrh r2, [r0], #2 - cmp r2, lr - beq .L911 - mla lr, r10, r7, r1 - adds r7, r7, #1 - lsls r2, r2, #10 - uxth r7, r7 - str r2, [lr, #4] -.L911: - adds r3, r3, #20 - b .L910 + b .L906 .L916: - movs r3, #2 - b .L936 + strd lr, lr, [r2, #8] + movw fp, #65535 + ldrh r1, [ip], #2 + cmp r1, fp + beq .L915 + mov fp, #20 + lsls r1, r1, #10 + mla fp, fp, r7, r0 + adds r7, r7, #1 + uxth r7, r7 + str r1, [fp, #4] .L915: - ldrh r3, [r2, r6, lsl #1] + adds r3, r3, #1 + adds r2, r2, #20 + b .L914 +.L933: + movs r3, #2 + b .L920 +.L919: adds r3, r3, #1 strh r3, [r2, r6, lsl #1] @ movhi - ldr r3, [r4, #2604] + ldr r3, [r4, #2600] adds r3, r3, #1 - str r3, [r4, #2604] - b .L918 -.L921: - ldr r1, [r3, #-20] - ands r1, r1, r0 - str r1, [r3, #-20] - b .L920 + str r3, [r4, #2600] + b .L921 .L924: - mul r2, r1, r10 - ldr r0, [r4, #3272] - add ip, r0, r2 - ldr r2, [r0, r2] - adds r0, r2, #1 - bne .L923 + ldr r1, [r3, #-20] + adds r2, r2, #1 + and r1, r1, ip + str r1, [r3, #-20] + b .L923 +.L927: + mul r3, r1, fp + ldr r0, [r4, #3268] + add ip, r0, r3 + ldr r3, [r0, r3] + adds r0, r3, #1 + bne .L926 ldr r0, [ip, #4] - adds r3, r3, #1 - str r1, [sp, #12] - str r2, [sp, #8] - ubfx r0, r0, #10, #16 + adds r2, r2, #1 str r3, [sp, #4] + str r2, [sp] + ubfx r0, r0, #10, #16 bl FtlBbmMapBadBlock - ldr r2, [sp, #8] - ldr r1, [sp, #12] ldr r3, [sp, #4] - strh r2, [fp] @ movhi - ldrb r2, [r5, #7] @ zero_extendqisi2 - subs r2, r2, #1 - strb r2, [r5, #7] -.L923: - add r10, r10, #1 - add fp, fp, #2 - b .L922 + strh r3, [r10, fp, lsl #1] @ movhi + movs r1, #20 + ldr r2, [sp] + ldrb r3, [r5, #7] @ zero_extendqisi2 + subs r3, r3, #1 + strb r3, [r5, #7] .L926: + add fp, fp, #1 + b .L925 +.L929: ldrh r3, [r4, #302] strh r8, [r5] @ movhi smulbb r3, r3, r2 movs r2, #0 strh r2, [r5, #2] @ movhi strb r2, [r5, #6] - ldr r2, [r4, #2592] + ldr r2, [r4, #2588] uxth r3, r3 - strh r3, [r5, #4] @ movhi str r2, [r5, #12] adds r2, r2, #1 - str r2, [r4, #2592] + str r2, [r4, #2588] ldr r2, [r4, #72] ldrh r1, [r5] + strh r3, [r5, #4] @ movhi strh r3, [r2, r1, lsl #1] @ movhi ldrh r3, [r5, #4] - cbz r3, .L927 + cbz r3, .L930 ldrb r3, [r5, #7] @ zero_extendqisi2 - cbnz r3, .L928 -.L927: - mov r2, #2752 - ldr r1, .L937+20 - ldr r0, .L937+4 + cbnz r3, .L931 +.L930: + ldr r1, .L937+4 + movw r2, #2759 + ldr r0, .L937+8 bl sftl_printk -.L928: +.L931: movs r0, #0 - add sp, sp, #20 + add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} .L938: .align 2 .L937: .word .LANCHOR0 + .word .LANCHOR1+271 .word .LC8 .word .LANCHOR0+124 .word .LANCHOR0+2532 .word -1024 - .word .LANCHOR1+271 .fnend .size allocate_data_superblock, .-allocate_data_superblock + .section .rodata.str1.1 +.LC102: + .ascii "FtlGcFreeBadSuperBlk 0x%x\012\000" + .text .align 1 .global FtlGcFreeBadSuperBlk .syntax unified @@ -6583,70 +6820,85 @@ allocate_data_superblock: .type FtlGcFreeBadSuperBlk, %function FtlGcFreeBadSuperBlk: .fnstart - @ args = 0, pretend = 0, frame = 0 + @ args = 0, pretend = 0, frame = 16 @ 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 r4, .L951 - ldrh r3, [r4, #3210] - cbz r3, .L940 - movs r7, #0 - addw r10, r4, #3212 + 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, .L947 + .pad #20 + sub sp, sp, #20 + ldrh r3, [r4, #3206] + cmp r3, #0 + bne .L946 .L941: - ldrh r2, [r4, #232] - uxth r3, r7 - cmp r2, r3 - bhi .L947 - bl FtlGcReFreshBadBlk -.L940: movs r0, #0 - pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L947: - uxtah r3, r4, r7 - mov r1, r8 - mov fp, #0 + add sp, sp, #20 + @ sp needed + pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} +.L945: + uxtah r3, r4, r8 + mov r1, r9 ldrb r0, [r3, #260] @ zero_extendqisi2 bl V2P_block - mov r9, r0 + mov r5, r0 + movs r3, #0 .L942: - ldrh r3, [r4, #3210] - uxth r5, fp - cmp r3, r5 - bhi .L946 - adds r7, r7, #1 + ldrh r1, [r4, #3206] + uxth r2, r3 + cmp r1, r2 + bhi .L944 + add r8, r8, #1 +.L940: + ldrh r2, [r4, #232] + uxth r3, r8 + cmp r2, r3 + bhi .L945 + bl FtlGcReFreshBadBlk b .L941 -.L946: - uxth r6, fp - add r3, r4, r6, lsl #1 - ldrh r3, [r3, #3212] - cmp r3, r9 +.L944: + uxth r7, r3 + lsls r1, r7, #1 + str r1, [sp, #4] + add r1, r4, r7, lsl #1 + ldrh r1, [r1, #3208] + cmp r1, r5 bne .L943 - mov r1, r9 - ldr r0, .L951+4 + mov r1, r5 + mov r0, fp + strd r2, r3, [sp, #8] bl sftl_printk - mov r0, r9 + mov r0, r5 bl FtlBbmMapBadBlock bl FtlBbmTblFlush - ldrh r1, [r4, #3210] - add r3, r10, r6, lsl #1 -.L944: - cmp r5, r1 - bcc .L945 - subs r1, r1, #1 - strh r1, [r4, #3210] @ movhi + ldrh r6, [r4, #3206] + ldr r2, [sp, #8] + adds r1, r7, #1 + subs r0, r6, r2 + add r1, r10, r1, lsl #1 + uxth r0, r0 + lsls r0, r0, #1 + cmp r2, r6 + ite ls + movls r2, r0 + movhi r2, #0 + ldr r0, [sp, #4] + subs r6, r6, #1 + add r0, r0, r10 + bl memmove + ldr r3, [sp, #12] + strh r6, [r4, #3206] @ movhi .L943: - add fp, fp, #1 + adds r3, r3, #1 b .L942 -.L945: - ldrh r0, [r3, #2]! - adds r5, r5, #1 - uxth r5, r5 - strh r0, [r3, #-2] @ movhi - b .L944 -.L952: +.L946: + ldr fp, .L947+4 + addw r10, r4, #3208 + mov r8, #0 + b .L940 +.L948: .align 2 -.L951: +.L947: .word .LANCHOR0 .word .LC102 .fnend @@ -6665,11 +6917,11 @@ update_vpc_list: push {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r5, r0 - ldr r4, .L965 + ldr r4, .L961 ldr r3, [r4, #72] ldrh r3, [r3, r0, lsl #1] cmp r3, #0 - bne .L954 + bne .L950 ldrh r3, [r4, #222] cmp r3, r0 itt eq @@ -6682,20 +6934,20 @@ update_vpc_list: strheq r3, [r4, #220] @ movhi ldrh r3, [r4, #172] cmp r3, r0 - bne .L957 + bne .L953 movw r3, #65535 strh r3, [r4, #172] @ movhi -.L958: +.L954: + ldr r0, .L961+4 mov r1, r5 - ldr r0, .L965+4 bl List_remove_node ldrh r3, [r4, #2528] - cbnz r3, .L960 - movw r2, #2828 - ldr r1, .L965+8 - ldr r0, .L965+12 + cbnz r3, .L956 + ldr r1, .L961+8 + movw r2, #2835 + ldr r0, .L961+12 bl sftl_printk -.L960: +.L956: ldrh r3, [r4, #2528] mov r0, r5 subs r3, r3, #1 @@ -6708,39 +6960,44 @@ update_vpc_list: add r3, r3, r2 ldrh r2, [r4, #240] cmp r3, r2 - ble .L964 - movw r2, #2831 - ldr r1, .L965+8 - ldr r0, .L965+12 + ble .L960 + ldr r1, .L961+8 + movw r2, #2838 + ldr r0, .L961+12 bl sftl_printk -.L964: +.L960: movs r0, #1 - pop {r3, r4, r5, pc} -.L957: + b .L949 +.L953: ldrh r3, [r4, #24] cmp r3, r0 - beq .L963 + beq .L959 ldrh r3, [r4, #76] cmp r3, r0 - beq .L963 + beq .L959 ldrh r3, [r4, #124] cmp r3, r0 - bne .L958 -.L963: + bne .L954 +.L959: movs r0, #0 +.L949: pop {r3, r4, r5, pc} -.L954: +.L950: bl List_update_data_list - b .L963 -.L966: + b .L959 +.L962: .align 2 -.L965: +.L961: .word .LANCHOR0 .word .LANCHOR0+2520 .word .LANCHOR1+296 .word .LC8 .fnend .size update_vpc_list, .-update_vpc_list + .section .rodata.str1.1 +.LC103: + .ascii "decrement_vpc_count %x = %d\012\000" + .text .align 1 .global decrement_vpc_count .syntax unified @@ -6752,70 +7009,70 @@ decrement_vpc_count: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - movw r3, #65535 push {r4, r5, r6, lr} .save {r4, r5, r6, lr} - cmp r0, r3 + movw r3, #65535 + ldr r6, .L972 mov r4, r0 - ldr r5, .L976 - beq .L968 - ldr r3, [r5, #72] + cmp r0, r3 + beq .L964 + ldr r3, [r6, #72] ldrh r2, [r3, r0, lsl #1] - cbnz r2, .L969 + cbnz r2, .L965 mov r1, r0 - ldr r0, .L976+4 + ldr r0, .L972+4 bl sftl_printk - ldr r3, [r5, #72] - ldrh r6, [r3, r4, lsl #1] - cbz r6, .L970 -.L974: - movs r6, #0 -.L967: - mov r0, r6 - pop {r4, r5, r6, pc} + ldr r3, [r6, #72] + ldrh r5, [r3, r4, lsl #1] + cbz r5, .L966 .L970: - movw r2, #2846 -.L975: - ldr r1, .L976+8 - ldr r0, .L976+12 + movs r5, #0 +.L963: + mov r0, r5 + pop {r4, r5, r6, pc} +.L966: + movw r2, #2853 +.L971: + ldr r1, .L972+8 + ldr r0, .L972+12 bl sftl_printk - b .L967 -.L969: + b .L963 +.L965: subs r2, r2, #1 strh r2, [r3, r0, lsl #1] @ movhi -.L968: - ldrh r0, [r5, #3442] +.L964: + ldrh r0, [r6, #3438] movw r3, #65535 cmp r0, r3 - bne .L972 - strh r4, [r5, #3442] @ movhi - b .L974 -.L972: - cmp r4, r0 - beq .L974 + bne .L968 + strh r4, [r6, #3438] @ movhi + b .L970 +.L968: + cmp r0, r4 + beq .L970 bl update_vpc_list - ldr r2, [r5, #2516] - adds r6, r0, #0 - ldr r3, [r5, #2520] + ldr r2, [r6, #2516] + ldr r3, [r6, #2520] + subs r5, r0, #0 + strh r4, [r6, #3438] @ movhi + sub r3, r3, r2 + ldr r2, .L972+16 it ne - movne r6, #1 - strh r4, [r5, #3442] @ movhi - subs r3, r3, r2 - asrs r2, r3, #1 - ldr r3, .L976+16 + movne r5, #1 + asrs r3, r3, #1 muls r3, r2, r3 - ldr r2, [r5, #72] + ldr r2, [r6, #72] uxth r1, r3 ldrh r2, [r2, r1, lsl #1] cmp r2, #0 - bne .L967 - cmp r4, r1 - beq .L967 - movw r2, #2862 - b .L975 -.L977: + bne .L963 + cmp r1, r4 + beq .L963 + movw r2, #2869 + b .L971 +.L973: .align 2 -.L976: +.L972: .word .LANCHOR0 .word .LC103 .word .LANCHOR1+312 @@ -6836,91 +7093,89 @@ FtlSuperblockPowerLostFix: @ frame_needed = 0, uses_anonymous_args = 0 push {r4, r5, r6, r7, r8, r9, lr} .save {r4, r5, r6, r7, r8, r9, lr} + mvn r2, #2 + ldr r5, .L986 .pad #28 sub sp, sp, #28 - ldr r7, .L992 - mov r8, #0 - movw r2, #61589 + mov r9, #0 + mov r3, sp mov r4, r0 - ldr r5, .L992+4 - ldr r3, [r7] - ldr r6, [r5, #3336] + bic r8, r3, #8160 + bic r8, r8, #31 + ldr r7, [r5, #3332] + str r7, [sp, #12] + ldr r3, [r8, #24] str r3, [sp, #20] mov r3, #-1 str r3, [sp, #16] - ldr r3, [r5, #3304] - str r6, [sp, #12] + ldr r3, [r5, #3300] str r3, [sp, #8] - mvn r3, #2 - str r3, [r6, #8] mvn r3, #1 - str r3, [r6, #12] + strd r2, r3, [r7, #8] + movw r2, #61589 ldrh r3, [r0] - strh r8, [r6] @ movhi - strh r3, [r6, #2] @ movhi - ldr r3, [r5, #3304] + strh r3, [r7, #2] @ movhi + strh r9, [r7] @ movhi + ldr r3, [r5, #3300] str r2, [r3] add r2, r2, #304087040 - ldr r3, [r5, #3304] add r2, r2, #1269760 + ldr r3, [r5, #3300] addw r2, r2, #1507 str r2, [r3, #4] - ldrh r3, [r0, #4] - tst r3, #1 - ite eq - moveq r9, #6 - movne r9, #7 -.L984: + ldrh r6, [r0, #4] + and r6, r6, #1 + adds r6, r6, #6 +.L975: ldrh r3, [r4, #4] - cbnz r3, .L980 -.L981: - ldr r2, [r5, #72] + cbz r6, .L977 + cbnz r3, .L976 +.L977: ldrh r1, [r4] + ldr r2, [r5, #72] ldrh r0, [r4, #4] ldrh r3, [r2, r1, lsl #1] subs r3, r3, r0 strh r3, [r2, r1, lsl #1] @ movhi - ldrh r3, [r5, #302] ldr r2, [sp, #20] + ldrh r3, [r5, #302] strh r3, [r4, #2] @ movhi movs r3, #0 strb r3, [r4, #6] strh r3, [r4, #4] @ movhi - ldr r3, [r7] + ldr r3, [r8, #24] cmp r2, r3 - beq .L985 + beq .L981 bl __stack_chk_fail -.L980: +.L976: mov r0, r4 bl get_new_active_ppa str r0, [sp, #4] adds r0, r0, #1 - beq .L981 - ldr r3, [r5, #2596] + beq .L977 + ldr r3, [r5, #2592] movs r1, #1 + str r3, [r7, #4] mov r0, sp - str r3, [r6, #4] - adds r3, r3, #1 adds r2, r3, #1 + adds r3, r3, #2 it eq - moveq r3, r8 - str r3, [r5, #2596] + moveq r2, r9 movs r3, #0 + str r2, [r5, #2592] mov r2, r3 bl FlashProgPages ldrh r0, [r4] + subs r6, r6, #1 bl decrement_vpc_count - subs r9, r9, #1 - bne .L984 - b .L981 -.L985: + b .L975 +.L981: add sp, sp, #28 @ sp needed pop {r4, r5, r6, r7, r8, r9, pc} -.L993: +.L987: .align 2 -.L992: - .word __stack_chk_guard +.L986: .word .LANCHOR0 .fnend .size FtlSuperblockPowerLostFix, .-FtlSuperblockPowerLostFix @@ -6938,147 +7193,147 @@ FtlMakeBbt: push {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r8, #0 - ldr r9, .L1013+4 + ldr r7, .L1007 bl FtlBbtMemInit - sub r5, r9, #380 - sub r10, r9, #18 - mov r4, r5 + sub r9, r7, #16 + sub r4, r7, #380 + add fp, r7, #3072 bl FtlLoadFactoryBbt -.L995: - ldrh r3, [r5, #254] - cmp r8, r3 - bcc .L1001 +.L989: + ldrh r3, [r4, #254] + cmp r3, r8 + bhi .L995 movs r5, #0 -.L1002: +.L996: ldrh r3, [r4, #314] uxth r0, r5 - adds r5, r5, #1 cmp r3, r0 - bhi .L1003 + bhi .L997 ldrh r5, [r4, #364] movw r6, #65535 subs r5, r5, #1 uxth r5, r5 -.L1004: +.L998: ldrh r3, [r4, #364] subs r3, r3, #48 cmp r5, r3 - ble .L1008 + ble .L1002 mov r0, r5 bl FtlBbmIsBadBlock cmp r0, #1 - beq .L1005 + beq .L999 mov r0, r5 bl FlashTestBlk cmp r0, #0 - beq .L1006 + beq .L1000 mov r0, r5 bl FtlBbmMapBadBlock -.L1005: +.L999: subs r5, r5, #1 uxth r5, r5 - b .L1004 -.L1001: - ldrh r3, [r10, #2]! - movw r2, #65535 - ldr r0, [r5, #3304] - ldr fp, [r5, #3336] - cmp r3, r2 - str r0, [r5, #3464] - str fp, [r5, #3468] - beq .L996 - ldrh r7, [r5, #298] + b .L998 +.L995: + ldrh r5, [r9] + movw r3, #65535 + ldr r0, [r4, #3300] + ldr r10, [r4, #3332] + cmp r5, r3 + str r0, [r4, #3460] + str r10, [r4, #3464] + beq .L990 + ldrh r3, [r4, #298] movs r2, #1 + mov r0, fp mov r1, r2 - ldr r0, .L1013 - mla r7, r8, r7, r3 - lsls r3, r7, #10 - str r3, [r5, #3460] + mla r5, r8, r3, r5 + lsls r3, r5, #10 + str r3, [r4, #3456] bl FlashReadPages - ldrh r2, [r5, #298] - ldr r1, [r5, #3464] - ldr r0, [r9] + ldrh r2, [r4, #298] + ldr r1, [r4, #3460] adds r2, r2, #7 - asrs r2, r2, #3 + ldr r0, [r7] + lsrs r2, r2, #3 bl ftl_memcpy -.L997: - uxth r0, r7 +.L991: + uxth r0, r5 add r8, r8, #1 - add r9, r9, #4 + adds r7, r7, #4 + add r9, r9, #2 bl FtlBbmMapBadBlock - b .L995 -.L996: + b .L989 +.L990: mov r1, r8 bl FlashGetBadBlockList - ldr r1, [r9] - ldr r0, [r5, #3464] + ldr r1, [r7] + ldr r0, [r4, #3460] bl FtlBbt2Bitmap - ldrh r6, [r5, #298] -.L999: + ldrh r6, [r4, #298] +.L993: subs r6, r6, #1 uxth r6, r6 -.L998: +.L992: ldrh r0, [r4, #298] smlabb r0, r0, r8, r6 uxth r0, r0 bl FtlBbmIsBadBlock cmp r0, #1 - beq .L999 + beq .L993 movs r2, #16 movs r1, #0 - strh r6, [r10] @ movhi - ldr r0, [r4, #3336] + ldr r0, [r4, #3332] + strh r6, [r9] @ movhi bl ftl_memset mov r2, #4096 movs r1, #0 - ldr r0, [r4, #3304] + ldr r0, [r4, #3300] bl ftl_memset movw r3, #61664 - strh r3, [fp] @ movhi + strh r3, [r10] @ movhi movs r3, #0 - str r3, [fp, #4] - ldrh r3, [r10] - ldrh r7, [r4, #298] - ldrh r2, [r4, #3392] - strh r3, [fp, #2] @ movhi - ldrh r3, [r10] - ldr r1, [r9] + str r3, [r10, #4] + ldrh r3, [r4, #298] + ldrh r5, [r9] + ldrh r2, [r4, #3388] + strh r5, [r10, #2] @ movhi + ldr r1, [r7] + mla r5, r8, r3, r5 lsls r2, r2, #2 - ldr r0, [r4, #3464] - mla r7, r8, r7, r3 - lsls r3, r7, #10 - str r3, [r4, #3460] + ldr r0, [r4, #3460] + lsls r3, r5, #10 + str r3, [r4, #3456] bl ftl_memcpy movs r2, #1 - ldr r0, .L1013 + mov r0, fp mov r1, r2 bl FlashEraseBlocks movs r3, #1 - ldr r0, .L1013 + mov r0, fp mov r2, r3 mov r1, r3 bl FlashProgPages - ldr r3, [r4, #3456] + ldr r3, [r4, #3452] + uxth r0, r5 adds r3, r3, #1 - bne .L997 - uxth r0, r7 + bne .L991 bl FtlBbmMapBadBlock - b .L998 -.L1003: + b .L992 +.L997: + adds r5, r5, #1 bl FtlBbmMapBadBlock - b .L1002 -.L1006: + b .L996 +.L1000: ldrh r3, [r4, #352] cmp r3, r6 - bne .L1007 + bne .L1001 strh r5, [r4, #352] @ movhi - b .L1005 -.L1007: + b .L999 +.L1001: strh r5, [r4, #356] @ movhi -.L1008: - ldrh r3, [r4, #352] +.L1002: + ldr r0, [r4, #3268] movs r5, #0 - ldr r0, [r4, #3272] + ldrh r3, [r4, #352] movs r1, #1 str r5, [r4, #360] movs r2, #2 @@ -7096,19 +7351,18 @@ FtlMakeBbt: bl FtlBbmTblFlush ldr r3, [r4, #360] ldrh r2, [r4, #356] - strh r5, [r4, #354] @ movhi adds r3, r3, #1 str r3, [r4, #360] ldrh r3, [r4, #352] + strh r5, [r4, #354] @ movhi strh r2, [r4, #352] @ movhi strh r3, [r4, #356] @ movhi bl FtlBbmTblFlush mov r0, r5 pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1014: +.L1008: .align 2 -.L1013: - .word .LANCHOR0+3456 +.L1007: .word .LANCHOR0+380 .fnend .size FtlMakeBbt, .-FtlMakeBbt @@ -7138,138 +7392,34 @@ js_hash: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1019 + mov r3, r0 add r1, r1, r0 + ldr r0, .L1013 push {r4, lr} .save {r4, lr} -.L1017: - cmp r0, r1 - bne .L1018 - mov r0, r3 +.L1011: + cmp r3, r1 + bne .L1012 pop {r4, pc} -.L1018: - lsrs r2, r3, #2 - ldrb r4, [r0], #1 @ zero_extendqisi2 - add r2, r2, r3, lsl #5 +.L1012: + lsrs r2, r0, #2 + ldrb r4, [r3], #1 @ zero_extendqisi2 + add r2, r2, r0, lsl #5 add r2, r2, r4 - eors r3, r3, r2 - b .L1017 -.L1020: + eors r0, r0, r2 + b .L1011 +.L1014: .align 2 -.L1019: +.L1013: .word 1204201446 .fnend .size js_hash, .-js_hash - .align 1 - .global Ftl_write_map_blk_to_last_page - .syntax unified - .thumb - .thumb_func - .fpu softvfp - .type Ftl_write_map_blk_to_last_page, %function -Ftl_write_map_blk_to_last_page: - .fnstart - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - push {r4, r5, r6, r7, r8, lr} - .save {r4, r5, r6, r7, r8, lr} - movw r2, #65535 - ldrh r3, [r0] - mov r4, r0 - ldr r5, [r0, #12] - cmp r3, r2 - bne .L1022 - ldrh r3, [r0, #8] - cbz r3, .L1023 - movw r2, #641 - ldr r1, .L1031 - ldr r0, .L1031+4 - bl sftl_printk -.L1023: - ldrh r3, [r4, #8] - adds r3, r3, #1 - strh r3, [r4, #8] @ movhi - bl FtlFreeSysBlkQueueOut - movs r3, #0 - strh r0, [r5] @ movhi - strh r3, [r4, #2] @ movhi - strh r3, [r4] @ movhi - ldr r3, [r4, #28] - adds r3, r3, #1 - str r3, [r4, #28] -.L1024: - movs r0, #0 - pop {r4, r5, r6, r7, r8, pc} -.L1022: - ldrh r7, [r5, r3, lsl #1] - movs r1, #255 - ldrh r3, [r0, #2] - ldr r5, .L1031+8 - ldr r8, [r0, #24] - orr r3, r3, r7, lsl #10 - ldr r6, [r5, #3336] - str r3, [r5, #3460] - ldr r3, [r5, #3304] - str r6, [r5, #3468] - str r3, [r5, #3464] - ldr r3, [r0, #28] - str r3, [r6, #4] - movw r3, #64245 - strh r3, [r6, #8] @ movhi - ldrh r3, [r0, #4] - strh r7, [r6, #2] @ movhi - strh r3, [r6] @ movhi - ldrh r2, [r5, #304] - ldr r0, [r5, #3304] - lsls r2, r2, #3 - bl ftl_memset - movs r2, #0 - mov r3, r2 -.L1025: - ldrh r0, [r4, #6] - uxth r1, r2 - cmp r0, r1 - bhi .L1027 - ldrh r1, [r5, #310] - ldr r0, [r5, #3464] - bl js_hash - movs r2, #1 - str r0, [r6, #12] - movs r3, #0 - mov r1, r2 - ldr r0, .L1031+12 - bl FlashProgPages - ldrh r3, [r4, #2] - mov r0, r4 - adds r3, r3, #1 - strh r3, [r4, #2] @ movhi - bl ftl_map_blk_gc - b .L1024 -.L1027: - uxth r0, r2 - ldr r1, [r8, r0, lsl #2] - cmp r7, r1, lsr #10 - bne .L1026 - ldr r1, [r5, #3304] - adds r3, r3, #1 - uxth r3, r3 - str r0, [r1, r3, lsl #3] - ldr r1, [r5, #3304] - ldr r0, [r8, r0, lsl #2] - add r1, r1, r3, lsl #3 - str r0, [r1, #4] -.L1026: - adds r2, r2, #1 - b .L1025 -.L1032: - .align 2 -.L1031: - .word .LANCHOR1+332 - .word .LC8 - .word .LANCHOR0 - .word .LANCHOR0+3456 - .fnend - .size Ftl_write_map_blk_to_last_page, .-Ftl_write_map_blk_to_last_page + .section .rodata.str1.1 +.LC104: + .ascii "FtlMapWritePage error = %x \012\000" +.LC105: + .ascii "FtlMapWritePage error = %x error count = %d\012\000" + .text .align 1 .global FtlMapWritePage .syntax unified @@ -7285,137 +7435,154 @@ FtlMapWritePage: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 mov r4, r0 - ldr r7, .L1057 + ldr r5, .L1039 + ldr r10, .L1039+4 mov r8, r1 - movs r6, #0 - ldr r9, .L1057+20 - mov r5, r7 + lsl fp, r1, #2 str r2, [sp, #4] -.L1034: - ldr r3, [r7, #2576] + movs r6, #0 +.L1016: + ldr r3, [r5, #2572] adds r3, r3, #1 - str r3, [r7, #2576] - ldrh r3, [r7, #304] + str r3, [r5, #2572] + ldrh r3, [r5, #304] ldrh r2, [r4, #2] subs r3, r3, #1 cmp r2, r3 - bge .L1035 + bge .L1017 ldrh r2, [r4] movw r3, #65535 cmp r2, r3 - bne .L1036 -.L1035: + bne .L1018 +.L1017: mov r0, r4 bl Ftl_write_map_blk_to_last_page -.L1036: +.L1018: ldrh r2, [r4] ldr r3, [r4, #12] ldrh r3, [r3, r2, lsl #1] - cbnz r3, .L1037 + cbnz r3, .L1019 + ldr r0, .L1039+8 + mov r1, r10 mov r2, #700 - mov r1, r9 - ldr r0, .L1057+4 bl sftl_printk -.L1037: +.L1019: ldrh r2, [r4] ldrh r3, [r4, #10] cmp r2, r3 - bcc .L1038 + bcc .L1020 + ldr r0, .L1039+8 + mov r1, r10 movw r2, #701 - mov r1, r9 - ldr r0, .L1057+4 bl sftl_printk -.L1038: +.L1020: ldrh r2, [r4] movs r1, #0 ldr r3, [r4, #12] - ldr r0, [r5, #3336] - ldrh r10, [r3, r2, lsl #1] + ldr r0, [r5, #3332] + ldrh r9, [r3, r2, lsl #1] ldrh r2, [r4, #2] ldr r3, [sp, #4] - str r0, [r5, #3468] - orr r2, r2, r10, lsl #10 - str r3, [r5, #3464] - str r2, [r5, #3460] + str r3, [r5, #3460] + orr r2, r2, r9, lsl #10 + str r2, [r5, #3456] movs r2, #16 + str r0, [r5, #3464] bl ftl_memset + ldr r7, [r5, #3464] ldr r2, [r4, #28] - ldr fp, [r5, #3468] - str r2, [fp, #4] - strh r8, [fp, #8] @ movhi + str r2, [r7, #4] + strh r8, [r7, #8] @ movhi ldrh r2, [r4, #4] - strh r10, [fp, #2] @ movhi - strh r2, [fp] @ movhi + strh r2, [r7] @ movhi + strh r9, [r7, #2] @ movhi ldrh r1, [r5, #310] - ldr r0, [r5, #3464] + ldr r0, [r5, #3460] bl js_hash movs r3, #1 - str r0, [fp, #12] + str r0, [r7, #12] mov r2, r3 mov r1, r3 - ldr r0, .L1057+8 + ldr r0, .L1039+12 bl FlashProgPages ldrh r3, [r4, #2] adds r3, r3, #1 - uxth r3, r3 strh r3, [r4, #2] @ movhi - ldr r2, [r5, #3456] - adds r1, r2, #1 - bne .L1039 - ldr r1, [r5, #3460] + ldr r3, [r5, #3452] + adds r3, r3, #1 + bne .L1021 + ldr r1, [r5, #3456] adds r6, r6, #1 - ldr r0, .L1057+12 - uxth r6, r6 + ldr r0, .L1039+16 bl sftl_printk ldrh r3, [r4, #2] + uxth r6, r6 cmp r3, #2 ittt ls ldrhls r3, [r5, #304] addls r3, r3, #-1 strhls r3, [r4, #2] @ movhi cmp r6, #3 - bls .L1041 + bls .L1023 + ldr r1, [r5, #3456] mov r2, r6 - ldr r1, [r5, #3460] - ldr r0, .L1057+16 + ldr r0, .L1039+20 bl sftl_printk -.L1042: - b .L1042 -.L1041: +.L1024: + b .L1024 +.L1023: ldr r3, [r4, #32] cmp r3, #0 - beq .L1034 -.L1056: - b .L1056 -.L1039: + beq .L1016 +.L1026: + b .L1026 +.L1021: + ldr r3, [r4, #24] + ldr r2, [r5, #3456] + str r2, [r3, fp] + ldrh r3, [r4, #2] cmp r3, #1 - beq .L1045 - cmp r2, #256 - beq .L1045 - ldr r0, [r4, #36] - cbz r0, .L1046 -.L1045: + beq .L1027 + ldr r3, [r5, #3452] + cmp r3, #256 + beq .L1027 + ldr r2, [r4, #36] + cbz r2, .L1028 +.L1027: movs r3, #0 str r3, [r4, #36] - b .L1034 -.L1046: - ldr r2, [r5, #3460] - ldr r3, [r4, #24] - str r2, [r3, r8, lsl #2] + b .L1016 +.L1028: + adds r3, r3, #1 + bne .L1029 + ldr r1, .L1039+4 + movw r2, #745 + ldr r0, .L1039+8 + bl sftl_printk +.L1029: + movs r0, #0 add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1058: +.L1040: .align 2 -.L1057: +.L1039: .word .LANCHOR0 + .word .LANCHOR1+332 .word .LC8 - .word .LANCHOR0+3456 + .word .LANCHOR0+3452 .word .LC104 .word .LC105 - .word .LANCHOR1+363 .fnend .size FtlMapWritePage, .-FtlMapWritePage + .section .rodata.str1.1 +.LC106: + .ascii "region_id = %x phyAddr = %x\012\000" +.LC107: + .ascii "map_ppn:\000" +.LC108: + .ascii "load_l2p_region refresh = %x phyAddr = %x\012\000" + .text .align 1 .global load_l2p_region .syntax unified @@ -7429,109 +7596,105 @@ load_l2p_region: @ frame_needed = 0, uses_anonymous_args = 0 push {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} - mov r6, r0 - ldr r4, .L1066 - mov r8, r1 + mov r5, r0 + ldr r4, .L1050 + mov r6, r1 ldrh r3, [r4, #336] cmp r3, r0 - bcs .L1060 + bcs .L1042 + ldr r1, .L1050+4 movw r2, #485 - ldr r1, .L1066+4 - ldr r0, .L1066+8 + ldr r0, .L1050+8 bl sftl_printk -.L1060: - ldr r3, [r4, #3380] - movs r5, #12 - ldr r7, [r3, r6, lsl #2] - cbnz r7, .L1061 - mul r5, r5, r8 +.L1042: + ldr r3, [r4, #3376] + movs r1, #12 + muls r6, r1, r6 + ldr r7, [r3, r5, lsl #2] ldr r3, [r4, #2540] - ldrh r2, [r4, #310] - movs r1, #255 - add r3, r3, r5 + add r3, r3, r6 ldr r0, [r3, #8] + cbnz r7, .L1043 + movs r1, #255 + ldrh r2, [r4, #310] bl ftl_memset ldr r3, [r4, #2540] - strh r6, [r3, r5] @ movhi - ldr r3, [r4, #2540] - add r5, r5, r3 - str r7, [r5, #4] -.L1062: + strh r5, [r3, r6] @ movhi + ldr r1, [r4, #2540] + add r6, r6, r1 + str r7, [r6, #4] +.L1044: movs r0, #0 pop {r4, r5, r6, r7, r8, pc} -.L1061: - mul r5, r5, r8 - ldr r3, [r4, #2540] +.L1043: + ldr r3, [r4, #3332] movs r2, #1 - ldr r0, .L1066+12 + str r0, [r4, #3460] mov r1, r2 - str r7, [r4, #3460] - add r3, r3, r5 - ldr r3, [r3, #8] + ldr r0, .L1050+12 str r3, [r4, #3464] - ldr r3, [r4, #3336] - str r3, [r4, #3468] + str r7, [r4, #3456] bl FlashReadPages - ldr r8, [r4, #3468] + ldr r8, [r4, #3464] ldrh r3, [r8, #8] - cmp r3, r6 - beq .L1063 + cmp r3, r5 + beq .L1045 + ldr r0, .L1050+16 mov r2, r7 - mov r1, r6 - ldr r0, .L1066+16 + mov r1, r5 bl sftl_printk movs r3, #4 - ldr r1, [r4, #3468] + ldr r1, [r4, #3464] mov r2, r3 - ldr r0, .L1066+20 + ldr r0, .L1050+20 bl rknand_print_hex ldrh r3, [r4, #336] + ldr r1, [r4, #3376] movs r2, #4 - ldr r1, [r4, #3380] - ldr r0, .L1066+24 + ldr r0, .L1050+24 bl rknand_print_hex -.L1064: +.L1046: ldrh r3, [r8, #8] - cmp r3, r6 - beq .L1065 + cmp r3, r5 + beq .L1048 + ldr r1, .L1050+4 mov r2, #508 - ldr r1, .L1066+4 - ldr r0, .L1066+8 + ldr r0, .L1050+8 bl sftl_printk -.L1065: +.L1048: ldr r3, [r4, #2540] movs r1, #0 - adds r2, r3, r5 + adds r2, r3, r6 str r1, [r2, #4] - strh r6, [r3, r5] @ movhi - b .L1062 -.L1063: - ldr r3, [r4, #3456] + strh r5, [r3, r6] @ movhi + b .L1044 +.L1045: + ldr r3, [r4, #3452] cmp r3, #256 - bne .L1064 + bne .L1048 mov r2, r7 - mov r1, r6 - ldr r0, .L1066+28 + mov r1, r5 + ldr r0, .L1050+28 bl sftl_printk ldr r3, [r4, #2540] - mov r1, r6 - ldr r0, .L1066+32 - add r3, r3, r5 + mov r1, r5 + ldr r0, .L1050+32 + add r3, r3, r6 ldr r2, [r3, #8] bl FtlMapWritePage - b .L1064 -.L1067: + b .L1046 +.L1051: .align 2 -.L1066: +.L1050: .word .LANCHOR0 - .word .LANCHOR1+379 + .word .LANCHOR1+348 .word .LC8 - .word .LANCHOR0+3456 + .word .LANCHOR0+3452 .word .LC106 .word .LC94 .word .LC107 .word .LC108 - .word .LANCHOR0+3396 + .word .LANCHOR0+3392 .fnend .size load_l2p_region, .-load_l2p_region .align 1 @@ -7549,116 +7712,223 @@ ftl_map_blk_gc: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 mov r4, r0 - ldr r6, [r0, #12] + ldr r5, .L1068 + ldr r7, [r0, #12] ldr r10, [r0, #24] bl ftl_free_no_use_map_blk ldrh r3, [r4, #10] ldrh r2, [r4, #8] - ldr r5, .L1084 subs r3, r3, #5 cmp r2, r3 - blt .L1069 + blt .L1053 uxth r0, r0 - ldrh r9, [r6, r0, lsl #1] + ldrh r9, [r7, r0, lsl #1] cmp r9, #0 - beq .L1069 - ldr r3, [r4, #32] - cbnz r3, .L1069 - movs r2, #1 - str r2, [r4, #32] - strh r3, [r6, r0, lsl #1] @ movhi + beq .L1053 + ldr r6, [r4, #32] + cbnz r6, .L1053 + movs r3, #1 + str r3, [r4, #32] + strh r6, [r7, r0, lsl #1] @ movhi ldrh r3, [r4, #8] ldrh r2, [r4, #2] subs r3, r3, #1 strh r3, [r4, #8] @ movhi ldrh r3, [r5, #304] cmp r2, r3 - bcc .L1070 + bcc .L1055 mov r0, r4 bl ftl_map_blk_alloc_new_blk -.L1070: - movs r6, #0 -.L1071: +.L1055: ldrh r2, [r4, #6] uxth fp, r6 cmp r2, fp - bhi .L1078 - movs r1, #1 + bhi .L1062 mov r0, r9 + movs r1, #1 bl FtlFreeSysBlkQueueIn movs r3, #0 str r3, [r4, #32] -.L1069: +.L1053: ldrh r2, [r4, #2] ldrh r3, [r5, #304] cmp r2, r3 - bcc .L1079 + bcc .L1063 mov r0, r4 bl ftl_map_blk_alloc_new_blk -.L1079: +.L1063: movs r0, #0 add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1078: +.L1062: uxth r7, r6 - ldr r2, [r10, r7, lsl #2] add r3, r10, r7, lsl #2 str r3, [sp, #4] - cmp r9, r2, lsr #10 - bne .L1072 - ldr r2, [r5, #3308] - ldr r8, [r5, #3336] - ldr r0, .L1084+4 - str r2, [r5, #3464] - str r8, [r5, #3468] ldr r2, [r10, r7, lsl #2] + cmp r9, r2, lsr #10 + bne .L1056 + ldr r2, [r5, #3304] + ldr r8, [r5, #3332] str r2, [r5, #3460] + str r8, [r5, #3464] + ldr r2, [r10, r7, lsl #2] + str r2, [r5, #3456] movs r2, #1 + ldr r0, .L1068+4 mov r1, r2 bl FlashReadPages ldrh r2, [r8, #8] cmp r2, fp - beq .L1073 + beq .L1057 + ldr r1, .L1068+8 movw r2, #611 - ldr r1, .L1084+8 - ldr r0, .L1084+12 + ldr r0, .L1068+12 bl sftl_printk -.L1073: - ldr r2, [r5, #3456] +.L1057: + ldr r2, [r5, #3452] adds r2, r2, #1 - bne .L1074 -.L1076: + bne .L1058 +.L1060: ldr r2, [sp, #4] movs r3, #0 str r3, [r2] -.L1075: - b .L1075 -.L1074: +.L1059: + b .L1059 +.L1058: ldrh r2, [r8, #8] cmp r2, fp - bne .L1076 + bne .L1060 ldrh r2, [r8] ldrh r3, [r4, #4] cmp r2, r3 - bne .L1076 - ldr r2, [r5, #3464] + bne .L1060 + ldr r2, [r5, #3460] mov r1, r7 mov r0, r4 bl FtlMapWritePage -.L1072: +.L1056: adds r6, r6, #1 - b .L1071 -.L1085: + b .L1055 +.L1069: .align 2 -.L1084: +.L1068: .word .LANCHOR0 - .word .LANCHOR0+3456 - .word .LANCHOR1+395 + .word .LANCHOR0+3452 + .word .LANCHOR1+364 .word .LC8 .fnend .size ftl_map_blk_gc, .-ftl_map_blk_gc .align 1 + .global Ftl_write_map_blk_to_last_page + .syntax unified + .thumb + .thumb_func + .fpu softvfp + .type Ftl_write_map_blk_to_last_page, %function +Ftl_write_map_blk_to_last_page: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + push {r4, r5, r6, r7, r8, lr} + .save {r4, r5, r6, r7, r8, lr} + movw r2, #65535 + mov r4, r0 + ldrh r3, [r0] + ldr r5, [r0, #12] + cmp r3, r2 + bne .L1071 + ldrh r3, [r0, #8] + cbz r3, .L1072 + ldr r1, .L1080 + movw r2, #641 + ldr r0, .L1080+4 + bl sftl_printk +.L1072: + ldrh r3, [r4, #8] + adds r3, r3, #1 + strh r3, [r4, #8] @ movhi + bl FtlFreeSysBlkQueueOut + strh r0, [r5] @ movhi + movs r3, #0 + str r3, [r4] + ldr r3, [r4, #28] + adds r3, r3, #1 + str r3, [r4, #28] +.L1073: + movs r0, #0 + pop {r4, r5, r6, r7, r8, pc} +.L1071: + ldrh r7, [r5, r3, lsl #1] + movs r1, #255 + ldr r5, .L1080+8 + ldrh r3, [r0, #2] + ldr r8, [r0, #24] + ldr r6, [r5, #3332] + orr r3, r3, r7, lsl #10 + str r3, [r5, #3456] + ldr r3, [r5, #3300] + str r3, [r5, #3460] + ldr r3, [r0, #28] + str r6, [r5, #3464] + str r3, [r6, #4] + movw r3, #64245 + strh r3, [r6, #8] @ movhi + ldrh r3, [r0, #4] + strh r3, [r6] @ movhi + strh r7, [r6, #2] @ movhi + ldrh r2, [r5, #304] + ldr r0, [r5, #3300] + lsls r2, r2, #3 + bl ftl_memset + movs r2, #0 + mov r3, r2 +.L1074: + ldrh r0, [r4, #6] + uxth r1, r2 + cmp r0, r1 + bhi .L1076 + ldrh r1, [r5, #310] + ldr r0, [r5, #3460] + bl js_hash + movs r2, #1 + str r0, [r6, #12] + mov r1, r2 + movs r3, #0 + ldr r0, .L1080+12 + bl FlashProgPages + ldrh r3, [r4, #2] + mov r0, r4 + adds r3, r3, #1 + strh r3, [r4, #2] @ movhi + bl ftl_map_blk_gc + b .L1073 +.L1076: + uxth r0, r2 + ldr r1, [r8, r0, lsl #2] + cmp r7, r1, lsr #10 + bne .L1075 + adds r3, r3, #1 + ldr r1, [r5, #3300] + uxth r3, r3 + str r0, [r1, r3, lsl #3] + ldr r1, [r5, #3300] + ldr r0, [r8, r0, lsl #2] + add r1, r1, r3, lsl #3 + str r0, [r1, #4] +.L1075: + adds r2, r2, #1 + b .L1074 +.L1081: + .align 2 +.L1080: + .word .LANCHOR1+379 + .word .LC8 + .word .LANCHOR0 + .word .LANCHOR0+3452 + .fnend + .size Ftl_write_map_blk_to_last_page, .-Ftl_write_map_blk_to_last_page + .align 1 .global flush_l2p_region .syntax unified .thumb @@ -7672,24 +7942,24 @@ flush_l2p_region: push {r3, r4, r5, lr} .save {r3, r4, r5, lr} movs r4, #12 - ldr r5, .L1087 + ldr r5, .L1083 muls r4, r0, r4 + add r0, r5, #3392 ldr r3, [r5, #2540] - addw r0, r5, #3396 adds r2, r3, r4 ldrh r1, [r3, r4] ldr r2, [r2, #8] bl FtlMapWritePage - ldr r3, [r5, #2540] + ldr r0, [r5, #2540] + add r4, r4, r0 movs r0, #0 - add r4, r4, r3 ldr r3, [r4, #4] bic r3, r3, #-2147483648 str r3, [r4, #4] pop {r3, r4, r5, pc} -.L1088: +.L1084: .align 2 -.L1087: +.L1083: .word .LANCHOR0 .fnend .size flush_l2p_region, .-flush_l2p_region @@ -7704,107 +7974,103 @@ log2phys: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - push {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} - .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} - mov r9, r0 - ldr r4, .L1102 - mov r5, r1 + push {r4, r5, r6, r7, r8, r9, r10, lr} + .save {r4, r5, r6, r7, r8, r9, r10, lr} + mov r5, r0 + ldr r9, .L1097 + mov r6, r1 mov r7, r2 - ldr r3, [r4, #2556] - ldrh r10, [r4, #308] - cmp r0, r3 - bcc .L1090 - movw r2, #813 - ldr r1, .L1102+4 - ldr r0, .L1102+8 + ldrh r4, [r9, #308] + adds r3, r4, #7 + movs r4, #1 + lsls r4, r4, r3 + subs r4, r4, #1 + lsr r8, r0, r3 + ands r4, r4, r0 + ldr r3, [r9, #2552] + uxth r8, r8 + uxth r4, r4 + cmp r3, r0 + bhi .L1086 + ldr r1, .L1097+4 + mov r2, #820 + ldr r0, .L1097+8 bl sftl_printk -.L1090: - ldr r3, [r4, #2556] - cmp r9, r3 - bcs .L1091 - add r10, r10, #7 - ldrh r2, [r4, #338] - lsr r6, r9, r10 - ldr r1, [r4, #2540] - movs r3, #0 - uxth r6, r6 - mov fp, #12 -.L1092: - uxth r8, r3 - cmp r8, r2 - bcc .L1097 - bl select_l2p_ram_region - mul fp, fp, r0 - ldr r3, [r4, #2540] - mov r8, r0 - ldrh r1, [r3, fp] - add r2, r3, fp - movw r3, #65535 - cmp r1, r3 - beq .L1098 - ldr r3, [r2, #4] - cmp r3, #0 - bge .L1098 - bl flush_l2p_region -.L1098: - mov r1, r8 - mov r0, r6 - bl load_l2p_region - b .L1094 -.L1091: + ldr r3, [r9, #2552] + cmp r3, r5 + bhi .L1086 mov r0, #-1 - cbnz r7, .L1089 - str r0, [r5] - pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1097: + cbnz r7, .L1085 + str r0, [r6] +.L1085: + pop {r4, r5, r6, r7, r8, r9, r10, pc} +.L1092: adds r3, r3, #1 - mla r0, fp, r3, r1 - ldrh r0, [r0, #-12] - cmp r0, r6 - bne .L1092 -.L1094: - movs r0, #1 - movs r3, #12 - lsl r0, r0, r10 - subs r0, r0, #1 - and r0, r0, r9 - uxth r0, r0 - cbnz r7, .L1095 - ldr r2, [r4, #2540] - mla r3, r3, r8, r2 - ldr r3, [r3, #8] - ldr r3, [r3, r0, lsl #2] - str r3, [r5] -.L1096: - ldr r2, [r4, #2540] - movs r3, #12 - mla r8, r3, r8, r2 - ldr r3, [r8, #4] - adds r2, r3, #1 - beq .L1100 - adds r3, r3, #1 - str r3, [r8, #4] -.L1100: - movs r0, #0 + mul r0, r10, r3 + ldrh r0, [r2, r0] + cmp r0, r8 + bne .L1088 .L1089: - pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} + movs r1, #12 + ldr r3, [r9, #2540] + muls r5, r1, r5 + add r3, r3, r5 + ldr r3, [r3, #8] + cbnz r7, .L1090 + ldr r3, [r3, r4, lsl #2] + str r3, [r6] +.L1091: + ldr r1, [r9, #2540] + add r5, r5, r1 + ldr r3, [r5, #4] + adds r2, r3, #1 + beq .L1095 + adds r3, r3, #1 + str r3, [r5, #4] .L1095: - mul r3, r3, r8 - ldr r2, [r4, #2540] - ldr r1, [r5] - add r2, r2, r3 - ldr r2, [r2, #8] - str r1, [r2, r0, lsl #2] - ldr r2, [r4, #2540] - strh r6, [r4, #2544] @ movhi - add r3, r3, r2 + movs r0, #0 + b .L1085 +.L1090: + ldr r2, [r6] + str r2, [r3, r4, lsl #2] + strh r8, [r9, #2544] @ movhi + ldr r3, [r9, #2540] + add r3, r3, r5 ldr r2, [r3, #4] orr r2, r2, #-2147483648 str r2, [r3, #4] - b .L1096 -.L1103: + b .L1091 +.L1086: + ldr r2, [r9, #2540] + movs r3, #0 + ldrh r1, [r9, #338] + mov r10, #12 + subs r2, r2, #12 +.L1088: + uxth r5, r3 + cmp r1, r5 + bhi .L1092 + bl select_l2p_ram_region + mul r10, r10, r0 + ldr r3, [r9, #2540] + mov r5, r0 + add r2, r3, r10 + ldrh r1, [r3, r10] + movw r3, #65535 + cmp r1, r3 + beq .L1093 + ldr r3, [r2, #4] + cmp r3, #0 + bge .L1093 + bl flush_l2p_region +.L1093: + mov r1, r5 + mov r0, r8 + bl load_l2p_region + b .L1089 +.L1098: .align 2 -.L1102: +.L1097: .word .LANCHOR0 .word .LANCHOR1+410 .word .LC8 @@ -7821,114 +8087,112 @@ FtlWriteDump_data: .fnstart @ args = 0, pretend = 0, frame = 32 @ frame_needed = 0, uses_anonymous_args = 0 - push {r4, r5, r6, r7, r8, r9, r10, fp, lr} - .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - .pad #36 - sub sp, sp, #36 - ldr r4, .L1123 - ldr r7, .L1123+4 + push {r4, r5, r6, r7, r8, r9, r10, lr} + .save {r4, r5, r6, r7, r8, r9, r10, lr} + ldr r4, .L1118 + .pad #32 + sub sp, sp, #32 + mov r3, sp + bic r8, r3, #8160 + bic r8, r8, #31 ldrh r2, [r4, #28] - ldr r3, [r7] + ldr r3, [r8, #24] str r3, [sp, #28] cmp r2, #0 - beq .L1105 + beq .L1100 ldrb r3, [r4, #32] @ zero_extendqisi2 cmp r3, #0 - bne .L1105 - ldrb r1, [r4, #31] @ zero_extendqisi2 - ldrh r3, [r4, #302] + bne .L1100 + ldrb r3, [r4, #31] @ zero_extendqisi2 + ldrh r1, [r4, #302] muls r3, r1, r3 cmp r2, r3 - beq .L1105 - ldrb r8, [r4, #34] @ zero_extendqisi2 - cmp r8, #0 - bne .L1104 - ldr r6, [r4, #2556] - mov r2, r8 + beq .L1100 + ldrb r6, [r4, #34] @ zero_extendqisi2 + cbnz r6, .L1099 + ldr r7, [r4, #2552] + mov r2, r6 add r1, sp, #4 ldrh r9, [r4, #232] - subs r6, r6, #1 - mov r0, r6 + subs r7, r7, #1 + mov r0, r7 bl log2phys + ldr r5, [r4, #3332] ldr r3, [sp, #4] - ldr r5, [r4, #3336] - ldr r0, [r4, #3304] + ldr r0, [r4, #3300] str r3, [sp, #12] adds r3, r3, #1 - str r6, [sp, #24] + str r7, [sp, #24] str r0, [sp, #16] str r5, [sp, #20] - str r8, [r5, #4] - beq .L1107 - mov r2, r8 - movs r1, #1 + str r6, [r5, #4] + beq .L1102 + mov r2, r6 add r0, sp, #8 + movs r1, #1 bl FlashReadPages -.L1108: - ldr r10, .L1123+8 - mov r8, #0 - lsl r9, r9, #2 - mov fp, r8 +.L1103: + lsl r6, r9, #2 + ldr r9, .L1118+4 movw r3, #61589 + mov r10, #0 strh r3, [r5] @ movhi -.L1109: - cmp r9, r8 - bne .L1113 -.L1110: - movs r3, #1 -.L1122: - strb r3, [r4, #34] .L1104: + cbnz r6, .L1108 +.L1105: + movs r3, #1 +.L1117: + strb r3, [r4, #34] +.L1099: ldr r2, [sp, #28] - ldr r3, [r7] + ldr r3, [r8, #24] cmp r2, r3 - beq .L1115 + beq .L1110 bl __stack_chk_fail -.L1107: +.L1102: ldrh r2, [r4, #310] movs r1, #255 bl ftl_memset - b .L1108 -.L1113: + b .L1103 +.L1108: ldrh r3, [r4, #28] cmp r3, #0 - beq .L1110 + beq .L1105 ldr r3, [sp, #12] - mov r0, r10 - str r6, [r5, #8] - add r8, r8, #1 + mov r0, r9 str r3, [r5, #12] + subs r6, r6, #1 ldrh r3, [r4, #24] strh r3, [r5, #2] @ movhi + str r7, [r5, #8] bl get_new_active_ppa - ldr r3, [r4, #2596] - movs r1, #1 + ldr r3, [r4, #2592] str r0, [sp, #12] - add r0, sp, #8 - str r3, [r5, #4] - adds r3, r3, #1 + movs r1, #1 adds r2, r3, #1 + str r3, [r5, #4] + adds r3, r3, #2 + add r0, sp, #8 it eq - moveq r3, fp - str r3, [r4, #2596] + moveq r2, r10 movs r3, #0 + str r2, [r4, #2592] mov r2, r3 bl FlashProgPages ldrh r0, [r4, #24] bl decrement_vpc_count - b .L1109 -.L1105: + b .L1104 +.L1100: movs r3, #0 - b .L1122 -.L1115: - add sp, sp, #36 + b .L1117 +.L1110: + add sp, sp, #32 @ sp needed - pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1124: + pop {r4, r5, r6, r7, r8, r9, r10, pc} +.L1119: .align 2 -.L1123: +.L1118: .word .LANCHOR0 - .word __stack_chk_guard .word .LANCHOR0+24 .fnend .size FtlWriteDump_data, .-FtlWriteDump_data @@ -7946,70 +8210,74 @@ FtlReUsePrevPpa: push {r0, r1, r2, r4, r5, r6, r7, lr} .save {r4, r5, r6, r7, lr} .pad #12 - mov r6, r0 - ldr r5, .L1135 + mov r5, r0 + ldr r6, .L1130 ubfx r0, r1, #10, #16 str r1, [sp, #4] bl P2V_block_in_plane - ldr r2, [r5, #72] - mov r7, r0 - ldrh r3, [r2, r0, lsl #1] - cbnz r3, .L1126 - ldr r4, [r5, #2532] - cbz r4, .L1127 - ldr r1, [r5, #2516] + mov r4, r0 + ldr r3, [r6, #72] + ldrh r2, [r3, r0, lsl #1] + cmp r2, #0 + bne .L1121 + ldr r3, [r6, #2532] + cbz r3, .L1122 + ldr r1, [r6, #2516] mov ip, #6 - ldr r2, .L1135+4 + ldr r0, .L1130+4 movw lr, #65535 - ldrh r0, [r5, #224] - subs r4, r4, r1 - asrs r4, r4, #1 - muls r4, r2, r4 - uxth r4, r4 -.L1128: - uxth r2, r3 - cmp r0, r2 - bls .L1127 - cmp r4, r7 - bne .L1129 + subs r3, r3, r1 + ldrh r7, [r6, #224] + asrs r3, r3, #1 + muls r3, r0, r3 + uxth r3, r3 +.L1123: + uxth r0, r2 + cmp r7, r0 + bls .L1122 + cmp r3, r4 + bne .L1124 + ldr r0, .L1130+8 mov r1, r4 - ldr r0, .L1135+8 bl List_remove_node - ldrh r3, [r5, #224] - cbnz r3, .L1130 - movw r2, #1735 - ldr r1, .L1135+12 - ldr r0, .L1135+16 + ldrh r3, [r6, #224] + cbnz r3, .L1125 + ldr r1, .L1130+12 + movw r2, #1742 + ldr r0, .L1130+16 bl sftl_printk -.L1130: - ldrh r3, [r5, #224] +.L1125: + ldrh r3, [r6, #224] mov r0, r4 subs r3, r3, #1 - strh r3, [r5, #224] @ movhi + strh r3, [r6, #224] @ movhi bl INSERT_DATA_LIST - ldr r2, [r5, #72] - ldrh r3, [r2, r7, lsl #1] -.L1126: + ldr r2, [r6, #72] + ldrh r3, [r2, r4, lsl #1] adds r3, r3, #1 - strh r3, [r2, r7, lsl #1] @ movhi - b .L1127 -.L1129: - mul r4, ip, r4 - adds r3, r3, #1 - ldrh r4, [r1, r4] - cmp r4, lr - bne .L1128 -.L1127: - movs r2, #1 + strh r3, [r2, r4, lsl #1] @ movhi +.L1122: add r1, sp, #4 - mov r0, r6 + mov r0, r5 + movs r2, #1 bl log2phys add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, pc} -.L1136: +.L1124: + mul r3, ip, r3 + adds r2, r2, #1 + ldrh r3, [r1, r3] + cmp r3, lr + bne .L1123 + b .L1122 +.L1121: + adds r2, r2, #1 + strh r2, [r3, r0, lsl #1] @ movhi + b .L1122 +.L1131: .align 2 -.L1135: +.L1130: .word .LANCHOR0 .word -1431655765 .word .LANCHOR0+2532 @@ -8017,6 +8285,12 @@ FtlReUsePrevPpa: .word .LC8 .fnend .size FtlReUsePrevPpa, .-FtlReUsePrevPpa + .section .rodata.str1.1 +.LC109: + .ascii "data prev_ppa = %x error...................\012\000" +.LC110: + .ascii "spuer block %x vpn is 0\012 \000" + .text .align 1 .global FtlRecoverySuperblock .syntax unified @@ -8028,636 +8302,631 @@ FtlRecoverySuperblock: .fnstart @ args = 0, pretend = 0, frame = 48 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1274 - movw r2, #65535 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} + movw r1, #65535 + mov r10, r0 .pad #52 sub sp, sp, #52 - mov r10, r0 - ldr r3, [r3] + mov r3, sp + bic r3, r3, #8160 + bic r3, r3, #31 + ldr r3, [r3, #24] str r3, [sp, #44] ldrh r3, [r0] - cmp r3, r2 - beq .L1139 + cmp r3, r1 + beq .L1134 + ldr r5, .L1264 ldrh r3, [r0, #2] - ldr r4, .L1274+4 str r3, [sp] ldrb r3, [r0, #6] @ zero_extendqisi2 - ldr r1, [sp] - str r3, [sp, #20] - ldrh r3, [r4, #302] - cmp r3, r1 - mov r3, #0 - bne .L1140 - strh r3, [r0, #4] @ movhi -.L1272: - strb r3, [r10, #6] -.L1139: - ldr r3, .L1274 - movs r0, #0 - ldr r2, [sp, #44] - ldr r3, [r3] + ldrh r2, [r5, #302] + str r3, [sp, #24] + ldr r3, [sp] cmp r2, r3 - beq .L1211 + mov r3, #0 + bne .L1135 + strh r3, [r0, #4] @ movhi + strh r2, [r0, #2] @ movhi +.L1262: + strb r3, [r10, #6] +.L1134: + mov r3, sp + ldr r2, [sp, #44] + bic r3, r3, #8160 + bic r3, r3, #31 + ldr r3, [r3, #24] + cmp r2, r3 + beq .L1203 bl __stack_chk_fail -.L1140: +.L1135: ldrh r0, [r0, #16] -.L1141: - cmp r0, r2 +.L1136: uxth r6, r3 + cmp r0, r1 add r3, r3, #1 - beq .L1142 + beq .L1137 movs r1, #1 bl FtlGetLastWrittenPage - adds r7, r0, #1 - mov r5, r0 - beq .L1143 - ldr r3, [r4, #3180] + mov r4, r0 + adds r0, r4, #1 + beq .L1138 + ldr r3, [r5, #3176] movs r2, #0 - ldrh fp, [r4, #232] + ldrh fp, [r5, #232] movw r9, #65535 - ldr r0, [r4, #3292] - mov lr, #20 - str r3, [sp, #4] - ldrh r3, [r4, #310] - ldr r8, [r4, #3184] - ldrh r7, [r4, #312] - mov r4, r2 - str r3, [sp, #8] + mov lr, r3 add r3, r10, #16 + ldr r0, [r5, #3288] mov ip, r3 - str r3, [sp, #16] -.L1144: + ldrh r6, [r5, #310] + ldr r8, [r5, #3180] + ldrh r7, [r5, #312] + mov r5, r2 + str r3, [sp, #20] +.L1139: uxth r3, r2 cmp fp, r3 - bhi .L1150 - ldr r6, .L1274+4 + bhi .L1145 + ldr r6, .L1264 movs r2, #0 - mov r1, r4 - movw r9, #65535 + mov r1, r5 + movs r7, #0 bl FlashReadPages - ldr r3, [r6, #2596] - uxth r2, r5 - ldr r8, [r6, #3292] + movw r9, #65535 + uxth r2, r4 str r2, [sp, #8] + ldr r3, [r6, #2592] add fp, r3, #-1 - movs r3, #0 - mov r7, r8 -.L1151: - uxth r2, r3 - cmp r4, r2 - bhi .L1156 - bne .L1154 - adds r3, r5, #1 - uxth r3, r3 - str r3, [sp, #8] -.L1267: - ldr r0, [r8, #4] + ldr r3, [r6, #3288] + mov r8, r3 +.L1146: + uxth r2, r7 + cmp r5, r2 + bhi .L1151 + bne .L1149 + adds r2, r4, #1 + uxth r2, r2 + str r2, [sp, #8] +.L1256: + ldr r0, [r3, #4] ubfx r0, r0, #10, #16 bl P2V_plane ldrh r3, [r6, #302] ldr r2, [sp, #8] str r0, [sp, #4] cmp r3, r2 - bne .L1158 - ldrh r3, [sp, #8] - strh r3, [r10, #2] @ movhi + bne .L1153 movs r3, #0 + strh r2, [r10, #2] @ movhi strb r3, [r10, #6] strh r3, [r10, #4] @ movhi -.L1158: +.L1153: ldr r3, [sp, #8] ldr r2, [sp] cmp r3, r2 - bne .L1159 + bne .L1154 ldr r3, [sp, #4] - ldr r2, [sp, #20] + ldr r2, [sp, #24] cmp r3, r2 - bne .L1159 + bne .L1154 ldr r1, [sp, #8] mov r2, r3 -.L1273: +.L1263: mov r0, r10 bl ftl_sb_update_avl_pages - b .L1139 -.L1142: - uxth r1, r3 - adds r1, r1, #8 - ldrh r0, [r10, r1, lsl #1] - b .L1141 -.L1143: + b .L1134 +.L1137: + uxth r2, r3 + adds r2, r2, #8 + ldrh r0, [r10, r2, lsl #1] + b .L1136 +.L1138: ldr r3, [sp] - cbz r3, .L1145 - movw r2, #1802 - ldr r1, .L1274+8 - ldr r0, .L1274+12 + cbz r3, .L1140 + ldr r1, .L1264+4 + movw r2, #1809 + ldr r0, .L1264+8 bl sftl_printk -.L1145: - ldr r3, [sp, #20] - cbz r3, .L1146 - cmp r6, r3 - beq .L1146 - movw r2, #1803 - ldr r1, .L1274+8 - ldr r0, .L1274+12 +.L1140: + ldr r3, [sp, #24] + cbz r3, .L1141 + cmp r3, r6 + beq .L1141 + ldr r1, .L1264+4 + movw r2, #1810 + ldr r0, .L1264+8 bl sftl_printk -.L1146: +.L1141: movs r3, #0 strh r3, [r10, #2] @ movhi - b .L1272 -.L1150: + b .L1262 +.L1145: ldrh r3, [ip], #2 cmp r3, r9 - beq .L1147 - mla r1, lr, r4, r0 - orr r3, r5, r3, lsl #10 + beq .L1142 + movs r1, #20 + orr r3, r4, r3, lsl #10 + mla r1, r1, r5, r0 str r3, [r1, #4] - ldr r3, [sp, #8] - muls r3, r4, r3 + mov r3, r6 + muls r3, r5, r3 it mi addmi r3, r3, #3 bic r3, r3, #3 - mov r6, r3 - ldr r3, [sp, #4] - add r6, r6, r3 + add r3, r3, lr + str r3, [r1, #8] mov r3, r7 - muls r3, r4, r3 - add r4, r4, #1 + muls r3, r5, r3 + add r5, r5, #1 it mi addmi r3, r3, #3 - uxth r4, r4 + uxth r5, r5 bic r3, r3, #3 - str r6, [r1, #8] add r3, r3, r8 str r3, [r1, #12] -.L1147: +.L1142: adds r2, r2, #1 - b .L1144 -.L1156: - ldr r2, [r7] - cbnz r2, .L1152 - ldr r2, [r7, #12] + b .L1139 +.L1151: + ldr r2, [r8] + cbnz r2, .L1147 + ldr r2, [r8, #12] str r2, [sp, #4] ldr r2, [r2, #4] - adds r0, r2, #1 - beq .L1153 - ldr r1, [r6, #2596] + adds r1, r2, #1 + beq .L1148 + ldr r1, [r6, #2592] mov r0, r2 bl ftl_cmp_data_ver - cbz r0, .L1153 + cbz r0, .L1148 adds r2, r2, #1 - str r2, [r6, #2596] -.L1153: + str r2, [r6, #2592] +.L1148: ldr r2, [sp, #4] ldr r2, [r2] adds r2, r2, #1 - bne .L1155 -.L1154: - uxth r2, r5 - uxth r3, r3 + bne .L1150 +.L1149: + uxth r2, r4 str r2, [sp, #8] movs r2, #20 - mla r8, r2, r3, r8 - b .L1267 -.L1152: + mla r3, r2, r7, r3 + b .L1256 +.L1147: ldr r9, [sp, #8] -.L1155: - adds r3, r3, #1 - adds r7, r7, #20 - b .L1151 -.L1159: +.L1150: + adds r7, r7, #1 + add r8, r8, #20 + b .L1146 +.L1154: movw r3, #65535 cmp r9, r3 - bne .L1160 + bne .L1155 ldrb r3, [r10, #8] @ zero_extendqisi2 - cmp r3, #0 - bne .L1161 -.L1160: - ldr r3, [r6, #3452] - uxth r7, r5 - uxth r5, r5 + cbnz r3, .L1156 +.L1155: + ldr r3, [r6, #3448] + uxth r2, r4 + uxth r7, r4 movw r8, #65535 adds r3, r3, #1 ldr r3, [sp] it eq - streq fp, [r6, #3452] - ldr r6, .L1274+4 + streq fp, [r6, #3448] adds r3, r3, #7 - cmp r5, r3 - itet gt - subgt r4, r7, #7 - ldrle r4, [sp] - uxthgt r4, r4 -.L1164: + ldr r6, .L1264 + cmp r3, r2 + itet lt + sublt r4, r4, #7 + ldrge r4, [sp] + uxthlt r4, r4 +.L1159: + ldr r0, [r6, #3288] cmp r4, r7 - bhi .L1171 - movs r3, #0 - ldrh lr, [r6, #232] - ldr r0, [r6, #3292] - mov r5, r3 - ldr r1, [sp, #16] - mov ip, #20 - b .L1172 -.L1166: - ldrh r2, [r1], #2 - cmp r2, r8 - beq .L1165 - mla r9, ip, r5, r0 - adds r5, r5, #1 - orr r2, r4, r2, lsl #10 - uxth r5, r5 - str r2, [r9, #4] -.L1165: - adds r3, r3, #1 -.L1172: - uxth r2, r3 - cmp lr, r2 - bhi .L1166 - movs r2, #0 - mov r1, r5 - bl FlashReadPages - ldr r3, [r6, #3292] - movs r2, #20 - mla r5, r2, r5, r3 -.L1167: - cmp r5, r3 - bne .L1170 - adds r4, r4, #1 - uxth r4, r4 - b .L1164 -.L1170: - ldr r2, [r3] - cbnz r2, .L1161 - ldr r2, [r3, #12] - ldrh r1, [r2] - cmp r1, r8 - beq .L1169 - ldr r2, [r2, #4] - adds r1, r2, #1 - it ne - strne r2, [r6, #3452] -.L1169: - adds r3, r3, #20 - b .L1167 -.L1275: - .align 2 -.L1274: - .word __stack_chk_guard - .word .LANCHOR0 - .word .LANCHOR1+435 - .word .LC8 -.L1171: + ldrh ip, [r6, #232] + bls .L1205 mov r3, #-1 - str r3, [r6, #3452] -.L1161: - ldr r8, .L1276+16 + str r3, [r6, #3448] +.L1156: + ldr r4, .L1264 movs r3, #1 ldr r5, [sp] - mov r4, r8 - strh r3, [r8, #3476] @ movhi -.L1173: + strh r3, [r4, #3472] @ movhi +.L1167: ldrh r6, [r4, #232] - movw r9, #65535 - ldr r0, [r4, #3292] - mov ip, #20 - ldr r1, [sp, #16] movs r3, #0 + ldr r0, [r4, #3288] + movw r7, #65535 + ldr r1, [sp, #20] + mov ip, #20 str r3, [sp, #12] -.L1174: +.L1168: uxth r2, r3 cmp r6, r2 - bhi .L1176 - movs r2, #0 + bhi .L1170 ldr r1, [sp, #12] + movs r2, #0 bl FlashReadPages movs r3, #0 -.L1271: - str r3, [sp, #24] +.L1261: + str r3, [sp, #16] ldr r2, [sp, #12] - ldrh r3, [sp, #24] + ldrh r3, [sp, #16] cmp r2, r3 - bhi .L1206 + bhi .L1199 adds r5, r5, #1 ldrh r3, [r4, #302] uxth r5, r5 cmp r3, r5 - bne .L1173 + bne .L1167 ldrh r2, [r4, #232] - movw r0, #65535 movs r3, #0 strh r5, [r10, #2] @ movhi + movw r0, #65535 strh r3, [r10, #4] @ movhi -.L1207: +.L1200: uxth r1, r3 cmp r1, r2 - bcs .L1139 - ldr r1, [sp, #16] + bcs .L1134 + ldr r1, [sp, #20] ldrh r4, [r1], #2 + str r1, [sp, #20] + adds r1, r3, #1 cmp r4, r0 - str r1, [sp, #16] - add r1, r3, #1 - bne .L1272 + bne .L1262 mov r3, r1 - b .L1207 -.L1176: + b .L1200 +.L1161: ldrh r2, [r1], #2 - cmp r2, r9 - beq .L1175 - ldr r7, [sp, #12] + cmp r2, r8 + beq .L1160 + mla r9, lr, r5, r0 + adds r5, r5, #1 + orr r2, r4, r2, lsl #10 + uxth r5, r5 + str r2, [r9, #4] +.L1160: + adds r3, r3, #1 +.L1166: + uxth r2, r3 + cmp r2, ip + bcc .L1161 + mov r1, r5 + movs r2, #0 + bl FlashReadPages + ldr r3, [r6, #3288] + movs r1, #0 +.L1162: + uxth r2, r1 + cmp r5, r2 + bhi .L1165 + adds r4, r4, #1 + uxth r4, r4 + b .L1159 +.L1205: + movs r3, #0 + ldr r1, [sp, #20] + mov r5, r3 + mov lr, #20 + b .L1166 +.L1265: + .align 2 +.L1264: + .word .LANCHOR0 + .word .LANCHOR1+435 + .word .LC8 +.L1165: + ldr r2, [r3] + cmp r2, #0 + bne .L1156 + ldr r2, [r3, #12] + ldrh r0, [r2] + cmp r0, r8 + beq .L1164 + ldr r2, [r2, #4] + adds r0, r2, #1 + it ne + strne r2, [r6, #3448] +.L1164: + adds r1, r1, #1 + adds r3, r3, #20 + b .L1162 +.L1170: + ldrh r2, [r1], #2 + cmp r2, r7 + beq .L1169 + ldr lr, [sp, #12] orr r2, r5, r2, lsl #10 - mla lr, ip, r7, r0 + mla lr, ip, lr, r0 str r2, [lr, #4] - mov r2, r7 + ldr r2, [sp, #12] adds r2, r2, #1 uxth r2, r2 str r2, [sp, #12] -.L1175: +.L1169: adds r3, r3, #1 - b .L1174 -.L1206: - ldr r3, [sp, #24] - movs r7, #20 - muls r7, r3, r7 - ldr r3, [r4, #3292] - str r3, [sp, #28] - add r9, r3, r7 - ldr r6, [r9, #4] - ubfx r0, r6, #10, #16 - str r6, [sp, #40] + b .L1168 +.L1199: + ldr r3, [sp, #16] + movs r6, #20 + ldr r9, [r4, #3288] + muls r6, r3, r6 + ldr r3, [sp] + add r8, r9, r6 + cmp r5, r3 + ldr r7, [r8, #4] + str r7, [sp, #40] + bcc .L1172 + ubfx r0, r7, #10, #16 bl P2V_plane ldr r3, [sp] cmp r5, r3 - bcc .L1178 - ldr r3, [sp, #28] - bne .L1179 - ldr r2, [sp, #20] - cmp r2, r0 - bhi .L1178 -.L1179: - ldr r2, [sp, #8] - cmp r5, r2 - bne .L1180 - ldr r2, [sp, #4] - cmp r2, r0 - beq .L1181 -.L1180: - ldr r3, [r3, r7] + bne .L1173 + ldr r3, [sp, #24] + cmp r3, r0 + bhi .L1172 +.L1173: + ldr r3, [sp, #8] + cmp r5, r3 + bne .L1174 + ldr r3, [sp, #4] + cmp r3, r0 + bne .L1174 + mov r2, r3 + mov r1, r5 + strb r3, [r10, #6] + strh r5, [r10, #2] @ movhi + b .L1263 +.L1174: + ldr r3, [r9, r6] adds r3, r3, #1 - beq .L1182 - ldr r9, [r9, #12] - movw r3, #61589 - ldrh r2, [r9] - cmp r2, r3 - beq .L1183 + beq .L1175 + ldr r8, [r8, #12] + movw r2, #61589 + ldrh r3, [r8] + cmp r3, r2 + beq .L1176 ldrh r0, [r10] -.L1268: +.L1258: bl decrement_vpc_count - b .L1178 -.L1183: - ldr fp, [r9, #4] + b .L1172 +.L1176: + ldr fp, [r8, #4] cmp fp, #-1 - beq .L1184 - ldr r1, [r4, #2596] + beq .L1178 + ldr r1, [r4, #2592] mov r0, fp bl ftl_cmp_data_ver - cbz r0, .L1184 - add r3, fp, #1 - str r3, [r4, #2596] -.L1184: - ldrh r2, [r9] - movw r3, #61589 + cbz r0, .L1178 + add r2, fp, #1 + str r2, [r4, #2592] + ldrh r2, [r8] cmp r2, r3 - beq .L1185 - movw r2, #1954 - ldr r1, .L1276 - ldr r0, .L1276+4 + beq .L1178 + ldr r1, .L1266 + movw r2, #1961 + ldr r0, .L1266+4 bl sftl_printk -.L1185: - ldr r6, [r9, #8] +.L1178: + ldrd r7, r3, [r8, #8] add r1, sp, #36 - ldr r3, [r9, #12] movs r2, #0 - mov r0, r6 str r3, [sp, #32] + mov r0, r7 bl log2phys - ldr r1, [r4, #3452] + ldr r1, [r4, #3448] adds r0, r1, #1 - beq .L1186 + beq .L1180 mov r0, fp bl ftl_cmp_data_ver cmp r0, #0 - beq .L1186 + beq .L1180 ldr r3, [sp, #32] - adds r2, r3, #1 - beq .L1187 - ldr r0, [r4, #3292] + adds r1, r3, #1 + beq .L1181 + ldr r0, [r4, #3288] movs r2, #0 movs r1, #1 - add r0, r0, r7 + add r0, r0, r6 str r3, [r0, #4] - ldr r9, [r0, #12] + ldr r8, [r0, #12] bl FlashReadPages - ldr r2, [r4, #3292] - ldr r1, [r2, r7] - adds r3, r2, r7 - adds r1, r1, #1 - bne .L1188 -.L1189: + ldr r3, [r4, #3288] + add r9, r3, r6 + ldr r2, [r3, r6] + adds r2, r2, #1 + bne .L1182 +.L1183: mov r3, #-1 str r3, [sp, #32] -.L1196: +.L1190: ldr r0, [sp, #32] adds r1, r0, #1 - beq .L1178 -.L1210: + beq .L1172 ubfx r0, r0, #10, #16 bl P2V_block_in_plane ldrh r3, [r4, #240] mov r6, r0 cmp r3, r0 - bhi .L1202 - movw r2, #2059 - ldr r1, .L1276 - ldr r0, .L1276+4 + bhi .L1195 + ldr r1, .L1266 + movw r2, #2066 + ldr r0, .L1266+4 bl sftl_printk -.L1202: - ldr r3, [r8, #72] +.L1195: + ldr r3, [r4, #72] ldrh r3, [r3, r6, lsl #1] cmp r3, #0 - beq .L1203 + beq .L1196 mov r0, r6 - b .L1268 -.L1187: - ldr r3, [sp, #40] - ldr r2, [sp, #36] + b .L1258 +.L1181: + ldrd r2, r3, [sp, #36] cmp r2, r3 - bne .L1178 - movs r2, #1 + bne .L1172 add r1, sp, #32 - mov r0, r6 + mov r0, r7 + movs r2, #1 bl log2phys -.L1178: - ldr r3, [sp, #24] +.L1172: + ldr r3, [sp, #16] adds r3, r3, #1 - b .L1271 -.L1188: - ldr r1, [r9, #8] - cmp r6, r1 - bne .L1189 - ldr r1, [r9, #4] - ldr r0, [r4, #3452] + b .L1261 +.L1182: + ldr r2, [r8, #8] + cmp r2, r7 + bne .L1183 + ldr r1, [r8, #4] + ldr r0, [r4, #3448] str r1, [sp, #28] bl ftl_cmp_data_ver cmp r0, #0 - beq .L1189 - ldr r1, [sp, #36] - ldr r0, [sp, #40] - cmp r1, r0 - bne .L1191 -.L1194: - ldr r1, [sp, #32] - mov r0, r6 + beq .L1183 + ldrd r1, r0, [sp, #32] + ldr ip, [sp, #40] + cmp r0, ip + bne .L1185 + mov r0, r2 +.L1257: bl FtlReUsePrevPpa - b .L1189 -.L1191: - ldr r0, [sp, #32] + b .L1183 +.L1185: cmp r1, r0 - beq .L1189 + beq .L1183 + adds r2, r0, #1 + beq .L1186 + str r0, [r9, #4] + movs r2, #0 + mov r0, r9 + movs r1, #1 + ldr r8, [r9, #12] + bl FlashReadPages +.L1187: + ldr r3, [r4, #3288] + ldr r3, [r3, r6] + adds r3, r3, #1 + beq .L1188 + ldr r3, [r8, #4] + ldr r0, [r4, #3448] + mov r1, r3 + bl ftl_cmp_data_ver + cbz r0, .L1188 + ldr r0, [sp, #28] + mov r1, r3 + bl ftl_cmp_data_ver + cmp r0, #0 + beq .L1183 +.L1188: + ldr r1, [sp, #32] + mov r0, r7 + b .L1257 +.L1186: + str r0, [r3, r6] + b .L1187 +.L1180: + ldrd r2, r3, [sp, #36] + cmp r2, r3 + beq .L1190 + ldr r1, [sp, #32] adds r0, r1, #1 beq .L1192 - str r1, [r3, #4] - movs r2, #0 - movs r1, #1 - mov r0, r3 - ldr r9, [r3, #12] - bl FlashReadPages -.L1193: - ldr r3, [r4, #3292] - ldr r3, [r3, r7] - adds r3, r3, #1 - beq .L1194 - ldr r3, [r9, #4] - ldr r0, [r4, #3452] - mov r1, r3 - bl ftl_cmp_data_ver - cmp r0, #0 - beq .L1194 - mov r1, r3 - ldr r0, [sp, #28] - bl ftl_cmp_data_ver - cmp r0, #0 - beq .L1189 - b .L1194 -.L1192: - str r1, [r2, r7] - b .L1193 -.L1186: - ldr r3, [sp, #40] - ldr r2, [sp, #36] - cmp r2, r3 - beq .L1196 - ldr r1, [sp, #32] - adds r0, r1, #1 - beq .L1198 - ldr r3, [r8, #248] + ldr r3, [r4, #248] cmp r3, r1, lsr #10 - bhi .L1198 - ldr r0, .L1276+8 -.L1270: + bhi .L1192 + ldr r0, .L1266+8 +.L1260: bl sftl_printk - b .L1178 -.L1198: - movs r2, #1 + b .L1172 +.L1192: add r1, sp, #40 - mov r0, r6 + mov r0, r7 + movs r2, #1 bl log2phys - ldr r9, [sp, #36] - cmp r9, #-1 - beq .L1196 + ldr r8, [sp, #36] + cmp r8, #-1 + beq .L1190 ldr r3, [sp, #32] - cmp r9, r3 - beq .L1200 - ubfx r0, r9, #10, #16 + cmp r8, r3 + beq .L1190 + ubfx r0, r8, #10, #16 bl P2V_block_in_plane ldrh r3, [r4, #24] cmp r3, r0 - beq .L1201 + beq .L1194 ldrh r3, [r4, #76] cmp r3, r0 - beq .L1201 + beq .L1194 ldrh r3, [r4, #124] cmp r3, r0 - bne .L1196 -.L1201: - ldr r0, [r8, #3292] + bne .L1190 +.L1194: + ldr r0, [r4, #3288] movs r2, #0 movs r1, #1 - str r9, [r0, #4] - ldr r7, [r0, #12] + str r8, [r0, #4] + ldr r6, [r0, #12] bl FlashReadPages - ldr r3, [r8, #3292] + ldr r3, [r4, #3288] ldr r3, [r3] adds r3, r3, #1 - beq .L1196 - ldr r1, [r7, #4] + beq .L1190 + ldr r1, [r6, #4] mov r0, fp bl ftl_cmp_data_ver cmp r0, #0 - bne .L1196 - movs r2, #1 + bne .L1190 add r1, sp, #36 - mov r0, r6 + mov r0, r7 + movs r2, #1 bl log2phys - b .L1196 -.L1203: + b .L1190 +.L1196: + ldr r0, .L1266+12 mov r1, r6 - ldr r0, .L1276+12 - b .L1270 -.L1182: - ldr r3, [r4, #3480] + b .L1260 +.L1175: + ldr r3, [r4, #3476] cmp r3, #31 itttt ls addls r2, r4, r3, lsl #2 addls r3, r3, #1 - strls r3, [r4, #3480] - strls r6, [r2, #3484] + strls r3, [r4, #3476] + strls r7, [r2, #3480] ldrh r0, [r10] bl decrement_vpc_count - ldr r3, [r4, #3452] + ldr r3, [r4, #3448] adds r2, r3, #1 - bne .L1205 -.L1269: - str fp, [r4, #3452] - b .L1178 -.L1205: - cmp fp, r3 - bcs .L1178 - b .L1269 -.L1181: - ldrb r3, [sp, #4] @ zero_extendqisi2 - mov r1, r5 - strh r5, [r10, #2] @ movhi - ldr r2, [sp, #4] - strb r3, [r10, #6] - b .L1273 -.L1200: - mov r0, r9 - b .L1210 -.L1211: + bne .L1198 +.L1259: + str fp, [r4, #3448] + b .L1172 +.L1198: + cmp r3, fp + bls .L1172 + b .L1259 +.L1203: + movs r0, #0 add sp, sp, #52 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1277: +.L1267: .align 2 -.L1276: +.L1266: .word .LANCHOR1+435 .word .LC8 .word .LC109 .word .LC110 - .word .LANCHOR0 .fnend .size FtlRecoverySuperblock, .-FtlRecoverySuperblock + .section .rodata.str1.1 +.LC111: + .ascii "...%s enter...\012\000" +.LC112: + .ascii "FtlCheckVpc2 %x = %x %x\012\000" +.LC113: + .ascii "free blk vpc error %x = %x %x\012\000" + .text .align 1 .global ftl_check_vpc .syntax unified @@ -8667,142 +8936,148 @@ FtlRecoverySuperblock: .type ftl_check_vpc, %function ftl_check_vpc: .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, .L1303 + .pad #12 movs r4, #0 - ldr r6, .L1303+4 - ldr r3, [r5] - ldr r1, .L1303+8 - ldr r0, .L1303+12 - ldr r7, .L1303+16 - str r3, [sp, #12] + ldr r5, .L1293 + mov r3, sp + ldr r7, .L1293+4 + bic r6, r3, #8160 + ldr r1, .L1293+8 + bic r6, r6, #31 + ldr r0, .L1293+12 + ldr r3, [r6, #24] + str r3, [sp, #4] bl sftl_printk + ldr r0, .L1293+4 mov r2, #8192 movs r1, #0 - ldr r0, .L1303+16 bl ftl_memset - str r5, [sp, #4] - mov r5, r6 -.L1279: - ldr r3, [r6, #2556] - cmp r4, r3 - bcc .L1281 - ldr r8, .L1303+16 +.L1269: + ldr r3, [r5, #2552] + cmp r3, r4 + bhi .L1271 + ldr r9, .L1293+4 movs r4, #0 - ldr r10, .L1303+28 - mov r6, r4 - movw r9, #65535 -.L1282: + ldr fp, .L1293+16 + mov r7, r4 + movw r10, #65535 +.L1272: ldrh r2, [r5, #240] uxth r3, r4 cmp r2, r3 - bhi .L1284 + bhi .L1274 ldr r4, [r5, #2532] - cbz r4, .L1285 - ldr r3, [r5, #2516] - movs r7, #0 + cbz r4, .L1275 + ldr r1, [r5, #2516] + mov r9, #0 ldrh r8, [r5, #224] mov fp, #6 - ldr r9, .L1303+16 - subs r4, r4, r3 - ldr r3, .L1303+20 + subs r4, r4, r1 + ldr r1, .L1293+20 + ldr r10, .L1293+4 asrs r4, r4, #1 - ldr r10, .L1303+32 - muls r4, r3, r4 + ldr r0, .L1293+24 + muls r4, r1, r4 uxth r4, r4 -.L1286: - uxth r3, r7 +.L1276: + uxth r3, r9 cmp r8, r3 - bls .L1285 + bls .L1275 ldr r3, [r5, #72] ldrh r2, [r3, r4, lsl #1] - cbz r2, .L1287 - movs r6, #1 - ldrh r3, [r9, r4, lsl #1] + cbz r2, .L1277 + ldrh r3, [r10, r4, lsl #1] mov r1, r4 - mov r0, r10 bl sftl_printk -.L1287: + ldr r0, .L1293+24 + movs r7, #1 +.L1277: mul r4, fp, r4 ldr r3, [r5, #2516] - adds r7, r7, #1 + add r9, r9, #1 ldrh r4, [r3, r4] movw r3, #65535 cmp r4, r3 - bne .L1286 -.L1285: - cbz r6, .L1278 - movw r2, #2387 - ldr r1, .L1303+8 - ldr r0, .L1303+24 + bne .L1276 +.L1275: + cbz r7, .L1268 + ldr r1, .L1293+8 + movw r2, #2394 + ldr r0, .L1293+28 bl sftl_printk -.L1278: - ldr r3, [sp, #4] - ldr r2, [sp, #12] - ldr r3, [r3] +.L1268: + ldr r2, [sp, #4] + ldr r3, [r6, #24] cmp r2, r3 - beq .L1290 - bl __stack_chk_fail -.L1281: - movs r2, #0 - add r1, sp, #8 - mov r0, r4 - bl log2phys - ldr r0, [sp, #8] - adds r3, r0, #1 beq .L1280 + bl __stack_chk_fail +.L1271: + mov r1, sp + mov r0, r4 + movs r2, #0 + bl log2phys + ldr r0, [sp] + adds r3, r0, #1 + beq .L1270 ubfx r0, r0, #10, #16 bl P2V_block_in_plane ldrh r3, [r7, r0, lsl #1] adds r3, r3, #1 strh r3, [r7, r0, lsl #1] @ movhi -.L1280: +.L1270: adds r4, r4, #1 - b .L1279 -.L1284: + b .L1269 +.L1274: ldr r3, [r5, #72] - uxth r7, r4 - ldrh r2, [r3, r7, lsl #1] - ldrh r3, [r8, r7, lsl #1] + uxth r8, r4 + ldrh r2, [r3, r8, lsl #1] + ldrh r3, [r9, r8, lsl #1] cmp r2, r3 - beq .L1283 - mov r1, r7 - mov r0, r10 + beq .L1273 + mov r1, r8 + mov r0, fp bl sftl_printk ldr r3, [r5, #72] - ldrh r3, [r3, r7, lsl #1] - cmp r3, r9 - beq .L1283 - ldrh r2, [r8, r7, lsl #1] + ldrh r3, [r3, r8, lsl #1] + cmp r3, r10 + beq .L1273 + ldrh r2, [r9, r8, lsl #1] cmp r2, r3 it hi - movhi r6, #1 -.L1283: + movhi r7, #1 +.L1273: adds r4, r4, #1 - b .L1282 -.L1290: - add sp, sp, #20 + b .L1272 +.L1280: + add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1304: +.L1294: .align 2 -.L1303: - .word __stack_chk_guard +.L1293: .word .LANCHOR0 + .word check_vpc_table .word .LANCHOR1+457 .word .LC111 - .word check_vpc_table - .word -1431655765 - .word .LC8 .word .LC112 + .word -1431655765 .word .LC113 + .word .LC8 .fnend .size ftl_check_vpc, .-ftl_check_vpc + .section .rodata.str1.1 +.LC114: + .ascii "ftl_scan_all_data = %x\012\000" +.LC115: + .ascii "scan lpa = %x ppa= %x\012\000" +.LC116: + .ascii "lpa = %x,addr= %x,spare= %x %x %x %x data=%x %x\012" + .ascii "\000" + .text .align 1 .global ftl_scan_all_data .syntax unified @@ -8814,67 +9089,68 @@ ftl_scan_all_data: .fnstart @ args = 0, pretend = 0, frame = 8 @ frame_needed = 0, uses_anonymous_args = 0 - push {r4, r5, r6, r7, r8, r9, lr} - .save {r4, r5, r6, r7, r8, r9, lr} + push {r4, r5, r6, r7, r8, lr} + .save {r4, r5, r6, r7, r8, lr} movs r5, #0 - ldr r6, .L1320 - .pad #36 - sub sp, sp, #36 + ldr r4, .L1310 + .pad #32 + sub sp, sp, #32 + ldr r8, .L1310+4 + mov r3, sp + ldr r0, .L1310+8 + bic r6, r3, #8160 movs r1, #0 - ldr r7, .L1320+4 - ldr r9, .L1320+20 - ldr r3, [r6] - mov r4, r7 - ldr r0, .L1320+8 + bic r6, r6, #31 + ldr r3, [r6, #24] str r3, [sp, #28] bl sftl_printk -.L1306: - ldr r3, [r7, #2556] - cmp r5, r3 - bcc .L1312 +.L1296: + ldr r3, [r4, #2552] + cmp r3, r5 + bhi .L1302 ldr r2, [sp, #28] - ldr r3, [r6] + ldr r3, [r6, #24] cmp r2, r3 - beq .L1313 + beq .L1303 bl __stack_chk_fail -.L1312: - movs r2, #0 +.L1302: add r1, sp, #24 mov r0, r5 + movs r2, #0 bl log2phys ubfx r3, r5, #0, #11 - cbnz r3, .L1307 + cbnz r3, .L1297 ldr r2, [sp, #24] mov r1, r5 - mov r0, r9 + mov r0, r8 bl sftl_printk -.L1307: +.L1297: ldr r3, [sp, #24] adds r2, r3, #1 - beq .L1309 - str r3, [r4, #3460] + beq .L1299 + ldr r7, [r4, #3332] movs r2, #0 - ldr r3, [r4, #3304] + str r3, [r4, #3456] movs r1, #1 - ldr r8, [r4, #3336] - ldr r0, .L1320+12 - str r3, [r4, #3464] - str r5, [r4, #3472] - str r8, [r4, #3468] - str r2, [r4, #3456] + ldr r3, [r4, #3300] + ldr r0, .L1310+12 + str r3, [r4, #3460] + str r5, [r4, #3468] + str r7, [r4, #3464] + str r2, [r4, #3452] bl FlashReadPages - ldr r3, [r4, #3456] + ldr r3, [r4, #3452] cmp r3, #256 - beq .L1310 + beq .L1300 adds r3, r3, #1 - beq .L1310 - ldr r3, [r8, #8] - cmp r5, r3 - beq .L1309 -.L1310: - ldr r2, [r4, #3464] - ldr r3, [r4, #3468] - ldr r0, .L1320+16 + beq .L1300 + ldr r3, [r7, #8] + cmp r3, r5 + beq .L1299 +.L1300: + ldr r2, [r4, #3460] + ldr r3, [r4, #3464] + ldr r0, .L1310+16 ldr r1, [r2, #4] str r1, [sp, #16] mov r1, r5 @@ -8886,27 +9162,30 @@ ftl_scan_all_data: str r2, [sp, #4] ldr r2, [r3, #4] str r2, [sp] + ldr r2, [r4, #3456] ldr r3, [r3] - ldr r2, [r4, #3460] bl sftl_printk -.L1309: +.L1299: adds r5, r5, #1 - b .L1306 -.L1313: - add sp, sp, #36 + b .L1296 +.L1303: + add sp, sp, #32 @ sp needed - pop {r4, r5, r6, r7, r8, r9, pc} -.L1321: + pop {r4, r5, r6, r7, r8, pc} +.L1311: .align 2 -.L1320: - .word __stack_chk_guard +.L1310: .word .LANCHOR0 - .word .LC114 - .word .LANCHOR0+3456 - .word .LC116 .word .LC115 + .word .LC114 + .word .LANCHOR0+3452 + .word .LC116 .fnend .size ftl_scan_all_data, .-ftl_scan_all_data + .section .rodata.str1.1 +.LC117: + .ascii "FtlGcScanTempBlk Error ID %x %x!!!!!!! \012\000" + .text .align 1 .global FtlGcScanTempBlk .syntax unified @@ -8918,136 +9197,140 @@ FtlGcScanTempBlk: .fnstart @ args = 0, pretend = 0, frame = 48 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1360 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} + mov r5, r0 .pad #52 sub sp, sp, #52 - mov r5, r0 + mov r3, sp + bic r3, r3, #8160 + bic r3, r3, #31 str r1, [sp, #4] - ldr r3, [r3] + ldr r3, [r3, #24] str r3, [sp, #44] - ldr r3, .L1360+4 + ldr r3, .L1349 ldrh r6, [r3, #4] movw r3, #65535 cmp r6, r3 - beq .L1350 - cbnz r6, .L1323 -.L1324: - bl FtlGcPageVarInit - b .L1325 -.L1350: - movs r6, #0 -.L1323: - ldr r3, .L1360+8 + beq .L1339 + cbz r6, .L1314 +.L1313: + ldr r3, .L1349+4 ldr r2, [sp, #4] ldrh r3, [r3, #302] cmp r3, r2 - beq .L1324 -.L1325: - mov fp, #0 -.L1343: + bne .L1315 +.L1314: + bl FtlGcPageVarInit +.L1315: + mov r9, #0 +.L1334: ldrh r2, [r5] movs r3, #0 strb r3, [r5, #8] movw r3, #65535 cmp r2, r3 - beq .L1326 - ldr r4, .L1360+8 -.L1346: - ldr r3, [r4, #3292] + beq .L1316 + ldr r4, .L1349+4 +.L1317: + ldr r3, [r4, #3176] movs r2, #0 ldrh ip, [r4, #232] add lr, r5, #16 - ldrh r10, [r4, #310] + ldr r0, [r4, #3288] + mov r8, r3 + ldrh fp, [r4, #310] mov r7, r2 - str r3, [sp] - movw r8, #65535 - ldr r3, [r4, #3180] - ldr r9, [r4, #3184] - str r3, [sp, #8] + ldr r10, [r4, #3180] ldrh r3, [r4, #312] - str r3, [sp, #12] -.L1327: + str r3, [sp, #8] +.L1318: uxth r3, r2 cmp ip, r3 - bhi .L1331 + bhi .L1322 mov r10, #0 - movs r2, #0 mov r1, r7 - ldr r0, [sp] + movs r2, #0 bl FlashReadPages -.L1332: +.L1323: uxth r3, r10 cmp r7, r3 - bhi .L1344 + bhi .L1335 ldr r3, [sp, #4] - add fp, fp, #1 adds r6, r6, #1 + add r9, r9, #1 uxth r6, r6 - cmp r3, fp - bls .L1345 -.L1347: + cmp r3, r9 + bhi .L1336 + ldr r2, .L1349 + movw r1, #65535 + ldrh r3, [r2, #4] + cmp r3, r1 + beq .L1336 + add r3, r3, r9 + strh r3, [r2, #4] @ movhi ldrh r3, [r4, #302] cmp r3, r6 - bhi .L1346 -.L1326: - ldr r3, .L1360+4 - movw r2, #65535 - strh r6, [r5, #2] @ movhi - mov r1, r6 - mov r0, r5 - strh r2, [r3, #4] @ movhi - movs r2, #0 - strb r2, [r5, #6] - bl ftl_sb_update_avl_pages - b .L1348 -.L1331: + bls .L1316 +.L1337: + mov r3, sp + ldr r2, [sp, #44] + bic r3, r3, #8160 + bic r3, r3, #31 + ldr r3, [r3, #24] + cmp r2, r3 + beq .L1338 + bl __stack_chk_fail +.L1339: + movs r6, #0 + b .L1313 +.L1322: ldrh r3, [lr], #2 - cmp r3, r8 - beq .L1328 - ldr r0, [sp] + movw r1, #65535 + cmp r3, r1 + beq .L1319 movs r1, #20 orr r3, r6, r3, lsl #10 mla r1, r1, r7, r0 str r3, [r1, #4] - mov r3, r10 + mov r3, fp muls r3, r7, r3 it mi addmi r3, r3, #3 bic r3, r3, #3 - mov r0, r3 + add r3, r3, r8 + str r3, [r1, #8] ldr r3, [sp, #8] - add r0, r0, r3 - ldr r3, [sp, #12] muls r3, r7, r3 add r7, r7, #1 it mi addmi r3, r3, #3 uxth r7, r7 bic r3, r3, #3 - str r0, [r1, #8] - add r3, r3, r9 + add r3, r3, r10 str r3, [r1, #12] -.L1328: +.L1319: adds r2, r2, #1 - b .L1327 -.L1344: + b .L1318 +.L1335: movs r3, #20 - ldr r2, [r4, #3292] - mul r3, r3, r10 - adds r1, r2, r3 - ldr r8, [r2, r3] - ldr r0, [r1, #4] - ldr r9, [r1, #12] - str r0, [sp] - cmp r8, #0 - bne .L1333 - ldrh r1, [r9] - movw r2, #65535 - cmp r1, r2 - bne .L1334 -.L1358: + ldr r2, [r4, #3288] + mul fp, r3, r10 + add r1, r2, fp + ldr r2, [r2, fp] + ldr r3, [r1, #4] + ldr r8, [r1, #12] + cmp r2, #0 + bne .L1324 + ldrh r0, [r8] + movw r1, #65535 + cmp r0, r1 + beq .L1347 + ldr r0, [r8, #8] + ldr r1, [r4, #2552] + cmp r0, r1 + bls .L1326 +.L1347: ldrh r2, [r5] movs r1, #0 ldr r3, [r4, #72] @@ -9059,94 +9342,86 @@ FtlGcScanTempBlk: strh r3, [r5] @ movhi strh r3, [r4, #172] @ movhi bl FtlGcPageVarInit - b .L1343 -.L1334: - ldr r0, [r9, #8] - ldr r2, [r4, #2556] - str r3, [sp, #8] - cmp r0, r2 - bhi .L1358 - mov r2, r8 + b .L1334 +.L1326: add r1, sp, #20 + strd r2, r3, [sp, #8] bl log2phys - ldr r2, [r9, #12] - ldr r1, [sp, #20] - ldr r3, [sp, #8] - cmp r2, r1 - beq .L1337 -.L1339: - ldr r2, [r9, #8] -.L1359: - ldr r1, [sp] + ldr r1, [r8, #12] + ldr r0, [sp, #20] + ldrd r2, r3, [sp, #8] + cmp r1, r0 + beq .L1328 +.L1330: + ldr r2, [r8, #8] +.L1348: + ldr r0, [r8, #12] + mov r1, r3 add r10, r10, #1 - ldr r0, [r9, #12] bl FtlGcUpdatePage - b .L1332 -.L1337: - str r3, [sp, #8] - adds r3, r2, #1 - beq .L1339 - str r2, [sp, #28] - movs r1, #1 - ldr r2, [r4, #3320] + b .L1323 +.L1328: + adds r0, r1, #1 + beq .L1330 + str r1, [sp, #28] add r0, sp, #24 - str r2, [sp, #32] - ldr r2, [r4, #3340] - str r2, [sp, #36] - mov r2, r8 + ldr r1, [r4, #3316] + str r1, [sp, #32] + ldr r1, [r4, #3336] + str r1, [sp, #36] + movs r1, #1 + str r3, [sp, #12] + str r2, [sp, #8] bl FlashReadPages - ldrh r2, [r4, #258] - ldr r1, [r4, #3292] - ldr r3, [sp, #8] + ldr r0, [r4, #3288] + ldrh r1, [r4, #258] + add fp, fp, r0 ldr r0, [sp, #32] - lsls r2, r2, #7 - add ip, r3, r1 -.L1340: - cmp r8, r2 - beq .L1339 - ldr r1, [ip, #8] - ldr r3, [r0, r8, lsl #2] - ldr r1, [r1, r8, lsl #2] - cmp r1, r3 - beq .L1341 + ldrd r2, r3, [sp, #8] + lsls r1, r1, #7 +.L1331: + cmp r1, r2 + beq .L1330 + ldr ip, [fp, #8] + ldr lr, [ip, r2, lsl #2] + ldr ip, [r0, r2, lsl #2] + cmp lr, ip + beq .L1332 ldr r2, [sp, #28] ldrh r1, [r5] - ldr r0, .L1360+12 + ldr r0, .L1349+8 + ldr r4, .L1349+4 bl sftl_printk - b .L1358 -.L1341: - add r8, r8, #1 - b .L1340 -.L1333: + b .L1347 +.L1332: + adds r2, r2, #1 + b .L1331 +.L1324: mov r2, #-1 - b .L1359 -.L1345: - ldr r2, .L1360+4 - movw r1, #65535 - ldrh r3, [r2, #4] - cmp r3, r1 - beq .L1347 - add r3, r3, fp - strh r3, [r2, #4] @ movhi + b .L1348 +.L1336: ldrh r3, [r4, #302] cmp r3, r6 - bls .L1347 -.L1348: - ldr r3, .L1360 + bhi .L1317 +.L1316: + ldr r3, .L1349 + movw r2, #65535 + mov r1, r6 + mov r0, r5 + strh r6, [r5, #2] @ movhi + strh r2, [r3, #4] @ movhi + movs r2, #0 + strb r2, [r5, #6] + bl ftl_sb_update_avl_pages + b .L1337 +.L1338: mov r0, #-1 - ldr r2, [sp, #44] - ldr r3, [r3] - cmp r2, r3 - beq .L1349 - bl __stack_chk_fail -.L1349: add sp, sp, #52 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1361: +.L1350: .align 2 -.L1360: - .word __stack_chk_guard +.L1349: .word .LANCHOR2 .word .LANCHOR0 .word .LC117 @@ -9165,122 +9440,120 @@ FtlReadRefresh: @ 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, .L1367 .pad #96 sub sp, sp, #96 - ldr r6, .L1379 - ldr r7, .L1379+4 - ldr r10, [r6, #2724] - mov r5, r6 - ldr r3, [r7] + mov r3, sp + bic r6, r3, #8160 + bic r6, r6, #31 + ldr r9, [r4, #2720] + ldr r3, [r6, #24] str r3, [sp, #92] - cmp r10, #0 - beq .L1363 - ldr r2, [r6, #2728] - ldr r3, [r6, #2556] + ldr r3, [r4, #2552] + cmp r9, #0 + beq .L1352 + ldr r2, [r4, #2724] cmp r2, r3 - bcs .L1364 - mov r4, #2048 -.L1369: - ldr r0, [r5, #2728] - ldr r3, [r5, #2556] + bcs .L1353 + mov r5, #2048 +.L1358: + ldr r0, [r4, #2724] + ldr r3, [r4, #2552] cmp r0, r3 - bcc .L1365 -.L1368: + bcc .L1354 +.L1357: mov r0, #-1 -.L1362: +.L1351: ldr r2, [sp, #92] - ldr r3, [r7] + ldr r3, [r6, #24] cmp r2, r3 - beq .L1374 + beq .L1362 bl __stack_chk_fail -.L1365: - movs r2, #0 +.L1354: add r1, sp, #4 - bl log2phys - ldr r2, [sp, #4] - ldr r3, [r5, #2728] - adds r1, r2, #1 - add r3, r3, #1 - str r3, [r5, #2728] - beq .L1367 - str r3, [sp, #24] - add r0, sp, #96 - ldr r3, [r5, #3328] - movs r1, #1 - str r2, [sp, #12] movs r2, #0 - str r2, [r0, #-88]! + bl log2phys + ldr r3, [r4, #2724] + ldr r2, [sp, #4] + adds r3, r3, #1 + str r3, [r4, #2724] + adds r1, r2, #1 + beq .L1356 + str r2, [sp, #12] + add r0, sp, #8 + str r3, [sp, #24] + movs r2, #0 + ldr r3, [r4, #3324] + movs r1, #1 str r3, [sp, #16] add r3, sp, #28 + str r2, [sp, #8] str r3, [sp, #20] bl FlashReadPages ldr r3, [sp, #8] cmp r3, #256 - bne .L1368 + bne .L1357 ldr r0, [sp, #4] ubfx r0, r0, #10, #16 bl P2V_block_in_plane bl FtlGcRefreshBlock - b .L1368 -.L1367: - subs r4, r4, #1 - bne .L1369 - b .L1368 -.L1364: - ldr r3, [r6, #2560] + b .L1357 +.L1356: + subs r5, r5, #1 + bne .L1358 + b .L1357 +.L1353: + ldr r3, [r4, #2556] movs r0, #0 - str r0, [r6, #2724] - str r0, [r6, #2728] - str r3, [r6, #2720] - b .L1362 -.L1363: - ldr r9, [r6, #2560] - movw r4, #10000 - ldr r1, [r6, #2616] - ldr r8, [r6, #2720] - add r3, r9, #1048576 - cmp r1, r4 + str r3, [r4, #2716] + str r0, [r4, #2720] + str r0, [r4, #2724] + b .L1351 +.L1352: + ldr r8, [r4, #2556] + movw r5, #10000 + ldr r1, [r4, #2612] + ldr r10, [r4, #2716] + add r2, r8, #1048576 + cmp r1, r5 ite hi - movhi r4, #31 - movls r4, #63 - cmp r8, r3 - bhi .L1373 - ldr r3, [r6, #2556] - lsrs r1, r1, #10 + movhi r5, #31 + movls r5, #63 + ldrh r7, [r4, #2496] + cmp r10, r2 + bhi .L1361 mov r0, #1000 + lsrs r1, r1, #10 adds r1, r1, #1 muls r0, r3, r0 bl __aeabi_uidiv - add r0, r0, r8 - cmp r9, r0 - bhi .L1373 - ldrh r3, [r6, #2496] - ands r0, r4, r3 - bne .L1376 - ldr r2, [r6, #2744] - cmp r3, r2 - beq .L1362 -.L1373: - ldrh r3, [r5, #2496] - movs r0, #0 - str r0, [r5, #2728] - str r9, [r5, #2720] - str r3, [r5, #2744] + add r0, r0, r10 + cmp r8, r0 + bhi .L1361 + ands r0, r5, r7 + bne .L1364 + ldr r3, [r4, #2740] + cmp r3, r7 + beq .L1351 +.L1361: movs r3, #1 - str r3, [r5, #2724] - b .L1362 -.L1376: - mov r0, r10 - b .L1362 -.L1374: + movs r0, #0 + str r7, [r4, #2740] + str r3, [r4, #2720] + str r0, [r4, #2724] + str r8, [r4, #2716] + b .L1351 +.L1364: + mov r0, r9 + b .L1351 +.L1362: add sp, sp, #96 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, pc} -.L1380: +.L1368: .align 2 -.L1379: +.L1367: .word .LANCHOR0 - .word __stack_chk_guard .fnend .size FtlReadRefresh, .-FtlReadRefresh .align 1 @@ -9297,30 +9570,30 @@ l2p_flush: push {r4, r5, r6, lr} .save {r4, r5, r6, lr} movs r4, #0 - ldr r5, .L1385 + ldr r5, .L1373 movs r6, #12 bl FtlWriteDump_data -.L1382: +.L1370: ldrh r3, [r5, #338] uxth r0, r4 cmp r3, r0 - bhi .L1384 + bhi .L1372 movs r0, #0 pop {r4, r5, r6, pc} -.L1384: - ldr r2, [r5, #2540] - uxth r3, r4 - mla r3, r6, r3, r2 +.L1372: + ldr r3, [r5, #2540] + uxth r2, r4 + mla r3, r6, r2, r3 ldr r3, [r3, #4] cmp r3, #0 - bge .L1383 + bge .L1371 bl flush_l2p_region -.L1383: +.L1371: adds r4, r4, #1 - b .L1382 -.L1386: + b .L1370 +.L1374: .align 2 -.L1385: +.L1373: .word .LANCHOR0 .fnend .size l2p_flush, .-l2p_flush @@ -9335,40 +9608,38 @@ FtlVendorPartWrite: .fnstart @ args = 0, pretend = 0, frame = 104 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1400 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - mov r10, r2 - ldr r4, .L1400+4 + mov fp, r2 + ldr r4, .L1388 .pad #108 sub sp, sp, #108 - mov r6, r1 - adds r1, r0, r1 - ldr r2, [r3] - mov r8, r0 - str r3, [sp, #4] - str r2, [sp, #100] - ldrh r2, [r4, #296] - cmp r1, r2 - bhi .L1396 - ldrh r7, [r4, #308] - mov r9, #0 - lsr r7, r0, r7 - lsl fp, r7, #2 -.L1389: - cbnz r6, .L1394 -.L1387: - ldr r3, [sp, #4] - mov r0, r9 - ldr r2, [sp, #100] - ldr r3, [r3] + adds r2, r0, r1 + mov r3, sp + mov r7, r0 + bic r10, r3, #8160 + mov r5, r1 + bic r10, r10, #31 + ldrh r8, [r4, #308] + ldr r3, [r10, #24] + lsr r8, r0, r8 + str r3, [sp, #100] + ldrh r3, [r4, #296] cmp r2, r3 - beq .L1395 + bhi .L1384 + mov r9, #0 +.L1377: + cbnz r5, .L1382 +.L1375: + ldr r2, [sp, #100] + ldr r3, [r10, #24] + cmp r2, r3 + beq .L1383 bl __stack_chk_fail -.L1394: - ldr r3, [r4, #3376] - mov r0, r8 - ldr r2, [r3, fp] +.L1382: + ldr r3, [r4, #3372] + mov r0, r7 + ldr r2, [r3, r8, lsl #2] ldrh r3, [r4, #258] str r2, [sp, #12] mov r1, r3 @@ -9376,66 +9647,63 @@ FtlVendorPartWrite: bl __aeabi_uidivmod ldr r3, [sp, #8] ldr r2, [sp, #12] - str r1, [sp] - subs r5, r3, r1 - uxth r5, r5 + subs r6, r3, r1 + ldr r0, [r4, #3308] + str r1, [sp, #4] + uxth r6, r6 cmp r6, r5 - it cc - uxthcc r5, r6 - cbz r2, .L1391 - cmp r5, r3 - beq .L1391 - ldr r3, [r4, #3312] - add r0, sp, #16 - str r2, [sp, #20] + it hi + uxthhi r6, r5 + cbz r2, .L1379 + cmp r3, r6 + beq .L1379 + strd r2, r0, [sp, #20] movs r2, #1 + add r0, sp, #16 mov r1, r2 - str r3, [sp, #24] add r3, sp, #36 str r3, [sp, #28] bl FlashReadPages -.L1392: - lsls r3, r5, #9 - ldr r0, [r4, #3312] - mov r1, r10 +.L1380: + lsls r3, r6, #9 + ldr r0, [r4, #3308] mov r2, r3 str r3, [sp, #8] - ldr r3, [sp] - subs r6, r6, r5 - add r8, r8, r5 - add fp, fp, #4 + ldr r3, [sp, #4] + mov r1, fp + subs r5, r5, r6 + add r7, r7, r6 add r0, r0, r3, lsl #9 bl ftl_memcpy - mov r1, r7 - ldr r2, [r4, #3312] - ldr r0, .L1400+8 - adds r7, r7, #1 + mov r1, r8 + ldr r2, [r4, #3308] + add r8, r8, #1 + ldr r0, .L1388+4 bl FtlMapWritePage ldr r3, [sp, #8] adds r0, r0, #1 + add fp, fp, r3 it eq moveq r9, #-1 - add r10, r10, r3 - b .L1389 -.L1391: + b .L1377 +.L1379: ldrh r2, [r4, #310] movs r1, #0 - ldr r0, [r4, #3312] bl ftl_memset - b .L1392 -.L1396: + b .L1380 +.L1384: mov r9, #-1 - b .L1387 -.L1395: + b .L1375 +.L1383: + mov r0, r9 add sp, sp, #108 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1401: +.L1389: .align 2 -.L1400: - .word __stack_chk_guard +.L1388: .word .LANCHOR0 - .word .LANCHOR0+3612 + .word .LANCHOR0+3608 .fnend .size FtlVendorPartWrite, .-FtlVendorPartWrite .align 1 @@ -9450,17 +9718,17 @@ Ftl_save_ext_data: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L1404 - ldr r3, .L1404+4 - ldr r1, [r2, #2644] + ldr r2, .L1392 + ldr r3, .L1392+4 + ldr r1, [r2, #2640] cmp r1, r3 - bne .L1402 - ldr r3, .L1404+8 - addw r2, r2, #2644 - movs r1, #1 - movs r0, #0 + bne .L1390 + ldr r3, .L1392+8 + add r2, r2, #2640 str r3, [r2, #4] + movs r1, #1 ldr r3, [r2, #-60] + movs r0, #0 str r3, [r2, #88] ldr r3, [r2, #-56] str r3, [r2, #92] @@ -9485,14 +9753,14 @@ Ftl_save_ext_data: ldr r3, [r2, #-24] str r3, [r2, #48] b FtlVendorPartWrite -.L1402: +.L1390: bx lr -.L1405: +.L1393: .align 2 -.L1404: +.L1392: .word .LANCHOR0 .word 1179929683 - .word 1342177365 + .word 1342177367 .fnend .size Ftl_save_ext_data, .-Ftl_save_ext_data .align 1 @@ -9506,32 +9774,31 @@ FtlEctTblFlush: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - push {r3, lr} - .save {r3, lr} - ldr r3, .L1411 - ldrh r2, [r3, #3656] + ldr r3, .L1399 + push {r4, lr} + .save {r4, lr} + ldrh r2, [r3, #3652] cmp r2, #31 - itett ls + itt ls addls r2, r2, #1 - movhi r2, #32 - strhls r2, [r3, #3656] @ movhi - movls r2, #1 - cbnz r0, .L1408 - ldr r1, [r3, #3352] - ldr r0, [r1, #20] - ldr r1, [r1, #16] - add r2, r2, r0 - cmp r1, r2 - bcc .L1409 -.L1408: - ldr r2, [r3, #3352] + strhls r2, [r3, #3652] @ movhi + ldr r2, [r3, #3348] + ite ls + movls r1, #1 + movhi r1, #32 + ldr r4, [r2, #16] + cbnz r0, .L1396 + ldr r0, [r2, #20] + add r1, r1, r0 + cmp r1, r4 + bhi .L1397 +.L1396: + ldr r1, .L1399+4 movs r0, #64 - ldr r1, [r2, #16] - str r1, [r2, #20] - ldr r1, .L1411+4 str r1, [r2] - ldrh r1, [r3, #3344] - ldr r2, [r3, #3352] + str r4, [r2, #20] + ldrh r1, [r3, #3340] + ldr r2, [r3, #3348] lsls r3, r1, #9 str r3, [r2, #12] ldr r3, [r2, #8] @@ -9541,12 +9808,12 @@ FtlEctTblFlush: str r3, [r2, #4] bl FtlVendorPartWrite bl Ftl_save_ext_data -.L1409: +.L1397: movs r0, #0 - pop {r3, pc} -.L1412: + pop {r4, pc} +.L1400: .align 2 -.L1411: +.L1399: .word .LANCHOR0 .word 1112818501 .fnend @@ -9567,6 +9834,10 @@ sftl_vendor_write: b FtlVendorPartWrite .fnend .size sftl_vendor_write, .-sftl_vendor_write + .section .rodata.str1.1 +.LC118: + .ascii "FtlVendorPartRead refresh = %x phyAddr = %x\012\000" + .text .align 1 .global FtlVendorPartRead .syntax unified @@ -9578,116 +9849,118 @@ FtlVendorPartRead: .fnstart @ args = 0, pretend = 0, frame = 104 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1425 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - mov r10, r2 - ldr r4, .L1425+4 + mov r9, r2 + ldr r5, .L1413 .pad #108 sub sp, sp, #108 - mov r7, r1 - adds r1, r0, r1 - ldr r2, [r3] + adds r2, r0, r1 + mov r3, sp mov r8, r0 - str r3, [sp, #8] - str r2, [sp, #100] - ldrh r2, [r4, #296] - cmp r1, r2 - bhi .L1424 - ldrh r6, [r4, #308] - mov r9, #0 - lsr r6, r0, r6 - lsl fp, r6, #2 -.L1416: - cbnz r7, .L1422 -.L1414: - ldr r3, [sp, #8] - mov r0, r9 - ldr r2, [sp, #100] - ldr r3, [r3] + bic r3, r3, #8160 + mov r6, r1 + bic r3, r3, #31 + ldrh r7, [r5, #308] + str r3, [sp, #4] + ldr r3, [r3, #24] + lsr r7, r0, r7 + str r3, [sp, #100] + ldrh r3, [r5, #296] cmp r2, r3 - beq .L1423 + bhi .L1412 + mov r10, #0 +.L1404: + cbnz r6, .L1410 +.L1402: + ldr r3, [sp, #4] + ldr r2, [sp, #100] + ldr r3, [r3, #24] + cmp r2, r3 + beq .L1411 bl __stack_chk_fail -.L1422: - ldr r3, [r4, #3376] +.L1410: + ldr r3, [r5, #3372] mov r0, r8 - ldrh r5, [r4, #258] - ldr r3, [r3, fp] - mov r1, r5 + ldrh r4, [r5, #258] + ldr r3, [r3, r7, lsl #2] + mov r1, r4 str r3, [sp, #12] bl __aeabi_uidivmod - subs r5, r5, r1 + subs r4, r4, r1 ldr r3, [sp, #12] - uxth r5, r5 - str r1, [sp, #4] - cmp r7, r5 - it cc - uxthcc r5, r7 - lsls r2, r5, #9 - str r2, [sp, #12] - cbz r3, .L1418 - ldr r2, [r4, #3312] + str r1, [sp, #8] + uxth r4, r4 + cmp r4, r6 + it hi + uxthhi r4, r6 + lsl fp, r4, #9 + cbz r3, .L1406 + ldr r2, [r5, #3308] add r0, sp, #16 - str r3, [sp, #20] - str r3, [sp, #12] str r2, [sp, #24] add r2, sp, #36 str r2, [sp, #28] movs r2, #1 mov r1, r2 + str r3, [sp, #20] + str r3, [sp, #12] bl FlashReadPages ldr r2, [sp, #16] ldr r3, [sp, #12] adds r2, r2, #1 - ldr r2, [r4, #3456] + ldr r2, [r5, #3452] it eq - moveq r9, #-1 + moveq r10, #-1 cmp r2, #256 - bne .L1420 + bne .L1408 + ldr r0, .L1413+4 mov r2, r3 - mov r1, r6 - ldr r0, .L1425+8 + mov r1, r7 bl sftl_printk - ldr r2, [r4, #3312] - mov r1, r6 - ldr r0, .L1425+12 + ldr r2, [r5, #3308] + ldr r0, .L1413+8 + mov r1, r7 bl FtlMapWritePage -.L1420: - ldr r1, [r4, #3312] - lsls r2, r5, #9 - ldr r3, [sp, #4] - mov r0, r10 +.L1408: + ldr r1, [r5, #3308] + mov r2, fp + ldr r3, [sp, #8] + mov r0, r9 add r1, r1, r3, lsl #9 bl ftl_memcpy -.L1421: - adds r6, r6, #1 - subs r7, r7, r5 - add r8, r8, r5 - add r10, r10, r5, lsl #9 - add fp, fp, #4 - b .L1416 -.L1418: - lsls r2, r5, #9 +.L1409: + adds r7, r7, #1 + subs r6, r6, r4 + add r8, r8, r4 + add r9, r9, fp + b .L1404 +.L1406: + mov r2, fp mov r1, r3 - mov r0, r10 + mov r0, r9 bl ftl_memset - b .L1421 -.L1424: - mov r9, #-1 - b .L1414 -.L1423: + b .L1409 +.L1412: + mov r10, #-1 + b .L1402 +.L1411: + mov r0, r10 add sp, sp, #108 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1426: +.L1414: .align 2 -.L1425: - .word __stack_chk_guard +.L1413: .word .LANCHOR0 .word .LC118 - .word .LANCHOR0+3612 + .word .LANCHOR0+3608 .fnend .size FtlVendorPartRead, .-FtlVendorPartRead + .section .rodata.str1.1 +.LC119: + .ascii "no ect\000" + .text .align 1 .global FtlLoadEctTbl .syntax unified @@ -9702,29 +9975,29 @@ FtlLoadEctTbl: push {r4, lr} .save {r4, lr} movs r0, #64 - ldr r4, .L1429 - ldr r2, [r4, #3352] - ldrh r1, [r4, #3344] + ldr r4, .L1417 + ldr r2, [r4, #3348] + ldrh r1, [r4, #3340] bl FtlVendorPartRead - ldr r3, [r4, #3352] + ldr r3, [r4, #3348] ldr r2, [r3] - ldr r3, .L1429+4 + ldr r3, .L1417+4 cmp r2, r3 - beq .L1428 - ldr r1, .L1429+8 - ldr r0, .L1429+12 + beq .L1416 + ldr r1, .L1417+8 + ldr r0, .L1417+12 bl sftl_printk - ldrh r2, [r4, #3344] + ldrh r2, [r4, #3340] + ldr r0, [r4, #3348] movs r1, #0 - ldr r0, [r4, #3352] lsls r2, r2, #9 bl ftl_memset -.L1428: +.L1416: movs r0, #0 pop {r4, pc} -.L1430: +.L1418: .align 2 -.L1429: +.L1417: .word .LANCHOR0 .word 1112818501 .word .LC119 @@ -9745,59 +10018,54 @@ Ftl_load_ext_data: push {r3, r4, r5, lr} .save {r3, r4, r5, lr} movs r1, #1 - ldr r4, .L1434 + ldr r4, .L1421 movs r0, #0 - ldr r5, .L1434+4 - addw r2, r4, #2644 + ldr r5, .L1421+4 + add r2, r4, #2640 bl FtlVendorPartRead - ldr r3, [r4, #2644] + ldr r3, [r4, #2640] cmp r3, r5 - beq .L1432 + beq .L1420 + add r0, r4, #2640 mov r2, #512 movs r1, #0 - addw r0, r4, #2644 bl ftl_memset - str r5, [r4, #2644] -.L1432: - ldr r3, [r4, #2644] - cmp r3, r5 - bne .L1433 + str r5, [r4, #2640] +.L1420: + ldr r3, [r4, #2728] + ldr r2, [r4, #2672] + str r3, [r4, #2580] ldr r3, [r4, #2732] str r3, [r4, #2584] - ldr r3, [r4, #2736] - str r3, [r4, #2588] - ldr r3, [r4, #2652] - str r3, [r4, #2580] - ldr r3, [r4, #2656] - str r3, [r4, #2568] - ldr r3, [r4, #2660] - str r3, [r4, #2560] - ldr r3, [r4, #2664] + str r2, [r4, #2608] + ldr r3, [r4, #2648] + ldr r2, [r4, #2676] str r3, [r4, #2576] - ldr r3, [r4, #2672] - str r3, [r4, #2604] - ldr r3, [r4, #2676] - str r3, [r4, #2612] - ldr r3, [r4, #2680] + str r2, [r4, #2560] + ldr r3, [r4, #2652] + ldr r2, [r4, #2680] str r3, [r4, #2564] - ldr r3, [r4, #2684] + str r2, [r4, #2568] + ldr r3, [r4, #2656] + ldr r2, [r4, #2684] + str r3, [r4, #2556] + str r2, [r4, #2612] + ldr r3, [r4, #2660] + ldr r2, [r4, #2688] str r3, [r4, #2572] - ldr r3, [r4, #2688] - str r3, [r4, #2616] - ldr r3, [r4, #2692] - str r3, [r4, #2620] -.L1433: + str r2, [r4, #2616] + ldr r3, [r4, #2668] ldrh r2, [r4, #292] - ldr r3, [r4, #2604] - ldr r0, [r4, #2600] + ldr r0, [r4, #2596] ldrh r1, [r4, #240] + str r3, [r4, #2600] mla r0, r0, r2, r3 bl __aeabi_uidiv - str r0, [r4, #2608] + str r0, [r4, #2604] pop {r3, r4, r5, pc} -.L1435: +.L1422: .align 2 -.L1434: +.L1421: .word .LANCHOR0 .word 1179929683 .fnend @@ -9831,46 +10099,50 @@ FtlMapBlkWriteDump_data: @ frame_needed = 0, uses_anonymous_args = 0 push {r4, r5, r6, lr} .save {r4, r5, r6, lr} - mov r6, r0 + mov r5, r0 ldr r3, [r0, #36] - cbz r3, .L1437 - ldrh r5, [r0, #6] - movs r3, #0 - ldr r4, .L1441 - ldr r2, [r0, #24] - str r3, [r0, #36] - subs r5, r5, #1 - ldr r0, [r4, #3308] - uxth r5, r5 - ldr r1, [r4, #3336] - str r0, [r4, #3464] - str r1, [r4, #3468] - ldr r2, [r2, r5, lsl #2] - str r2, [r4, #3460] - cbz r2, .L1439 + cbz r3, .L1424 + ldrh r6, [r0, #6] + movs r2, #0 + ldr r4, .L1428 + subs r6, r6, #1 + str r2, [r0, #36] + ldr r3, [r0, #24] + uxth r6, r6 + ldr r0, [r4, #3304] + ldr r2, [r4, #3332] + str r0, [r4, #3460] + str r2, [r4, #3464] + ldr r3, [r3, r6, lsl #2] + str r3, [r4, #3456] + cbz r3, .L1426 movs r2, #1 - add r0, r4, #3456 + addw r0, r4, #3452 mov r1, r2 bl FlashReadPages -.L1440: - ldr r2, [r4, #3464] - mov r1, r5 - mov r0, r6 +.L1427: + ldr r2, [r4, #3460] + mov r1, r6 + mov r0, r5 pop {r4, r5, r6, lr} b FtlMapWritePage -.L1439: +.L1426: ldrh r2, [r4, #310] movs r1, #255 bl ftl_memset - b .L1440 -.L1437: + b .L1427 +.L1424: pop {r4, r5, r6, pc} -.L1442: +.L1429: .align 2 -.L1441: +.L1428: .word .LANCHOR0 .fnend .size FtlMapBlkWriteDump_data, .-FtlMapBlkWriteDump_data + .section .rodata.str1.1 +.LC120: + .ascii "FtlVpcTblFlush error = %x error count = %d\012\000" + .text .align 1 .global FtlVpcTblFlush .syntax unified @@ -9885,42 +10157,41 @@ FtlVpcTblFlush: push {r4, r5, r6, r7, r8, r9, r10, lr} .save {r4, r5, r6, r7, r8, r9, r10, lr} movs r5, #0 - ldr r4, .L1458 + ldr r4, .L1446 movs r1, #255 + ldr r9, .L1446+4 + ldr r10, .L1446+8 + addw r8, r4, #3452 movw r7, #65535 - ldr r9, .L1458+16 - ldr r3, [r4, #3304] - add r8, r4, #3456 - ldr r6, [r4, #3336] - ldr r10, .L1458+20 - str r3, [r4, #3464] - ldrh r3, [r4, #2628] - str r6, [r4, #3468] - str r5, [r6, #12] + ldr r6, [r4, #3332] + ldr r3, [r4, #3300] + str r3, [r4, #3460] + ldrh r3, [r4, #2624] + str r6, [r4, #3464] strh r3, [r6, #2] @ movhi movw r3, #61604 strh r3, [r6] @ movhi - ldr r3, [r4, #2636] - str r5, [r6, #8] - ldrh r2, [r4, #26] + ldr r3, [r4, #2632] str r3, [r6, #4] - ldr r3, .L1458+4 + ldr r3, .L1446+12 str r3, [r4, #2468] - ldr r3, .L1458+8 + ldr r3, .L1446+16 str r3, [r4, #2472] - ldrh r3, [r4, #2634] + ldrh r3, [r4, #2630] + strd r5, r5, [r6, #8] strh r3, [r4, #2476] @ movhi ldrh r3, [r4, #254] strb r3, [r4, #2478] ldrh r3, [r4, #24] + ldrh r2, [r4, #26] strh r3, [r4, #2482] @ movhi ldrb r3, [r4, #30] @ zero_extendqisi2 orr r3, r3, r2, lsl #6 - ldrh r2, [r4, #78] strh r3, [r4, #2484] @ movhi ldrb r3, [r4, #32] @ zero_extendqisi2 strb r3, [r4, #2479] ldrh r3, [r4, #76] + ldrh r2, [r4, #78] strh r3, [r4, #2486] @ movhi ldrb r3, [r4, #82] @ zero_extendqisi2 orr r3, r3, r2, lsl #6 @@ -9928,64 +10199,64 @@ FtlVpcTblFlush: ldrb r3, [r4, #84] @ zero_extendqisi2 strb r3, [r4, #2480] ldrh r3, [r4, #124] - ldrh r2, [r4, #126] - ldr r0, [r4, #3464] strh r3, [r4, #2490] @ movhi + ldrh r2, [r4, #126] ldrb r3, [r4, #130] @ zero_extendqisi2 + ldr r0, [r4, #3460] orr r3, r3, r2, lsl #6 - ldrh r2, [r4, #310] strh r3, [r4, #2492] @ movhi ldrb r3, [r4, #132] @ zero_extendqisi2 strb r3, [r4, #2481] - ldr r3, [r4, #2600] - str r3, [r4, #2500] - ldr r3, [r4, #2592] - str r3, [r4, #2508] ldr r3, [r4, #2596] + str r3, [r4, #2500] + ldr r3, [r4, #2588] + ldrh r2, [r4, #310] + str r3, [r4, #2508] + ldr r3, [r4, #2592] str r3, [r4, #2504] bl ftl_memset - movs r2, #48 addw r1, r4, #2468 - ldr r0, [r4, #3464] + movs r2, #48 + ldr r0, [r4, #3460] bl ftl_memcpy ldrh r2, [r4, #240] - ldr r0, [r4, #3464] + ldr r0, [r4, #3460] ldr r1, [r4, #72] lsls r2, r2, #1 adds r0, r0, #48 bl ftl_memcpy mov r0, r5 bl FtlUpdateVaildLpn -.L1444: - ldr r3, [r4, #3304] - ldrh r1, [r4, #2630] - ldrh r2, [r4, #2628] - str r3, [r4, #3464] - ldr r3, [r4, #3336] - str r3, [r4, #3468] - orr r3, r1, r2, lsl #10 +.L1431: + ldrh r1, [r4, #2626] + ldrh r2, [r4, #2624] + ldr r3, [r4, #3300] str r3, [r4, #3460] + ldr r3, [r4, #3332] + str r3, [r4, #3464] + orr r3, r1, r2, lsl #10 + str r3, [r4, #3456] ldrh r3, [r4, #304] subs r3, r3, #1 cmp r1, r3 - blt .L1445 + blt .L1432 movs r3, #0 - ldrh r7, [r4, #2632] - strh r3, [r4, #2630] @ movhi - strh r2, [r4, #2632] @ movhi + ldrh r7, [r4, #2628] + strh r3, [r4, #2626] @ movhi + strh r2, [r4, #2628] @ movhi bl FtlFreeSysBlkQueueOut - ldr r3, [r4, #2592] - strh r0, [r4, #2628] @ movhi + ldr r3, [r4, #2588] + str r3, [r4, #2632] adds r2, r3, #1 - str r3, [r4, #2636] - str r2, [r4, #2592] + strh r0, [r4, #2624] @ movhi + str r2, [r4, #2588] lsls r2, r0, #10 - str r2, [r4, #3460] + str r2, [r4, #3456] str r3, [r6, #4] strh r0, [r6, #2] @ movhi -.L1445: +.L1432: ldrh r1, [r4, #310] - ldr r0, [r4, #3304] + ldr r0, [r4, #3300] bl js_hash movs r3, #1 str r0, [r6, #12] @@ -9993,59 +10264,59 @@ FtlVpcTblFlush: mov r1, r3 mov r0, r8 bl FlashProgPages - ldrh r3, [r4, #2630] - ldr r2, [r4, #3456] + ldrh r3, [r4, #2626] + ldr r2, [r4, #3452] adds r3, r3, #1 - uxth r3, r3 adds r1, r2, #1 - strh r3, [r4, #2630] @ movhi - bne .L1446 + uxth r3, r3 + strh r3, [r4, #2626] @ movhi + bne .L1433 cmp r3, #1 - bne .L1447 - movw r2, #1138 + bne .L1435 mov r1, r9 mov r0, r10 + movw r2, #1145 bl sftl_printk -.L1447: - ldrh r3, [r4, #2630] - adds r5, r5, #1 - uxth r5, r5 + ldrh r3, [r4, #2626] cmp r3, #1 ittt eq ldrheq r3, [r4, #304] addeq r3, r3, #-1 - strheq r3, [r4, #2630] @ movhi + strheq r3, [r4, #2626] @ movhi +.L1435: + adds r5, r5, #1 + uxth r5, r5 cmp r5, #3 - bls .L1444 + bls .L1431 + ldr r1, [r4, #3456] mov r2, r5 - ldr r1, [r4, #3460] - ldr r0, .L1458+12 + ldr r0, .L1446+20 bl sftl_printk -.L1450: - b .L1450 -.L1446: +.L1438: + b .L1438 +.L1433: cmp r3, #1 - beq .L1444 + beq .L1431 cmp r2, #256 - beq .L1444 + beq .L1431 movw r3, #65535 cmp r7, r3 - beq .L1451 - movs r1, #1 + beq .L1439 mov r0, r7 + movs r1, #1 bl FtlFreeSysBlkQueueIn -.L1451: +.L1439: movs r0, #0 pop {r4, r5, r6, r7, r8, r9, r10, pc} -.L1459: +.L1447: .align 2 -.L1458: +.L1446: .word .LANCHOR0 - .word 1179929683 - .word 1342177365 - .word .LC120 .word .LANCHOR1+471 .word .LC8 + .word 1179929683 + .word 1342177367 + .word .LC120 .fnend .size FtlVpcTblFlush, .-FtlVpcTblFlush .align 1 @@ -10082,17 +10353,17 @@ sftl_deinit: @ frame_needed = 0, uses_anonymous_args = 0 push {r3, lr} .save {r3, lr} - ldr r3, .L1463 + ldr r3, .L1451 ldr r3, [r3] cmp r3, #1 - bne .L1462 + bne .L1450 bl FtlSysFlush -.L1462: +.L1450: movs r0, #0 pop {r3, pc} -.L1464: +.L1452: .align 2 -.L1463: +.L1451: .word .LANCHOR2 .fnend .size sftl_deinit, .-sftl_deinit @@ -10109,104 +10380,109 @@ sftl_discard: @ frame_needed = 0, uses_anonymous_args = 0 push {r4, r5, r6, r7, r8, r9, lr} .save {r4, r5, r6, r7, r8, r9, lr} + mov r6, r0 + ldr r5, .L1471 .pad #20 sub sp, sp, #20 - ldr r7, .L1483 - mov r8, r0 - mov r5, r1 - ldr r4, .L1483+4 - ldr r3, [r7] + mov r4, r1 + mov r3, sp + bic r9, r3, #8160 + bic r9, r9, #31 + ldr r3, [r9, #24] str r3, [sp, #12] - ldr r3, [r4, #340] + ldr r3, [r5, #340] cmp r3, r0 - bls .L1476 + bls .L1464 cmp r3, r1 - bcc .L1476 + bcc .L1464 adds r2, r0, r1 cmp r3, r2 - bcc .L1476 + bcc .L1464 cmp r1, #31 - bhi .L1467 -.L1472: + bhi .L1455 +.L1460: movs r0, #0 -.L1465: +.L1453: ldr r2, [sp, #12] - ldr r3, [r7] + ldr r3, [r9, #24] cmp r2, r3 - beq .L1473 + beq .L1461 bl __stack_chk_fail -.L1467: - ldrh r6, [r4, #258] - mov r1, r6 +.L1455: + ldrh r8, [r5, #258] + mov r1, r8 bl __aeabi_uidiv - smulbb r3, r0, r6 - mov r9, r0 - sub r8, r8, r3 - uxth r3, r8 - cbz r3, .L1468 - subs r6, r6, r3 - add r9, r0, #1 - cmp r6, r5 - it cs - movcs r6, r5 + mov r7, r0 + smulbb r0, r0, r8 + subs r6, r6, r0 uxth r6, r6 - subs r5, r5, r6 -.L1468: + cbz r6, .L1456 + sub r8, r8, r6 + adds r7, r7, #1 + cmp r8, r4 + it cs + movcs r8, r4 + uxth r8, r8 + sub r4, r4, r8 +.L1456: mov r3, #-1 str r3, [sp, #8] -.L1469: - ldrh r3, [r4, #258] - cmp r5, r3 - bcs .L1471 - ldr r3, [r4, #3660] +.L1457: + ldrh r3, [r5, #258] + cmp r3, r4 + bls .L1459 + ldr r3, [r5, #3656] cmp r3, #32 - bls .L1472 - movs r5, #0 - str r5, [r4, #3660] + bls .L1460 + movs r4, #0 + str r4, [r5, #3656] bl l2p_flush bl FtlVpcTblFlush - b .L1472 -.L1471: - movs r2, #0 + b .L1460 +.L1459: add r1, sp, #4 - mov r0, r9 + mov r0, r7 + movs r2, #0 bl log2phys ldr r3, [sp, #4] adds r3, r3, #1 - beq .L1470 - ldr r3, [r4, #3660] - movs r2, #1 + beq .L1458 + ldr r3, [r5, #3656] add r1, sp, #8 - mov r0, r9 + movs r2, #1 + mov r0, r7 adds r3, r3, #1 - str r3, [r4, #3660] - ldr r3, [r4, #2564] + str r3, [r5, #3656] + ldr r3, [r5, #2560] adds r3, r3, #1 - str r3, [r4, #2564] + str r3, [r5, #2560] bl log2phys ldr r0, [sp, #4] ubfx r0, r0, #10, #16 bl P2V_block_in_plane bl decrement_vpc_count -.L1470: - ldrh r3, [r4, #258] - add r9, r9, #1 - subs r5, r5, r3 - b .L1469 -.L1476: +.L1458: + ldrh r3, [r5, #258] + adds r7, r7, #1 + subs r4, r4, r3 + b .L1457 +.L1464: mov r0, #-1 - b .L1465 -.L1473: + b .L1453 +.L1461: add sp, sp, #20 @ sp needed pop {r4, r5, r6, r7, r8, r9, pc} -.L1484: +.L1472: .align 2 -.L1483: - .word __stack_chk_guard +.L1471: .word .LANCHOR0 .fnend .size sftl_discard, .-sftl_discard + .section .rodata.str1.1 +.LC121: + .ascii "FtlCheckVpc %x = %x %x\012\000" + .text .align 1 .global FtlVpcCheckAndModify .syntax unified @@ -10222,123 +10498,121 @@ FtlVpcCheckAndModify: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 movs r5, #0 - ldr r7, .L1500 - ldr r4, .L1500+4 - ldr r3, [r7] - ldr r1, .L1500+8 - ldr r0, .L1500+12 + ldr r4, .L1488 + mov r3, sp + ldr r1, .L1488+4 + bic r7, r3, #8160 + ldr r0, .L1488+8 + bic r7, r7, #31 + ldr r3, [r7, #24] str r3, [sp, #4] bl sftl_printk ldrh r2, [r4, #242] movs r1, #0 - ldr r0, [r4, #3356] + ldr r0, [r4, #3352] lsls r2, r2, #1 bl ftl_memset -.L1486: - ldr r3, [r4, #2556] - cmp r5, r3 - bcc .L1488 - ldr r9, .L1500+20 +.L1474: + ldr r3, [r4, #2552] + cmp r3, r5 + bhi .L1476 + ldr r9, .L1488+12 mov r8, #0 - ldr r10, .L1500+24 - ldr fp, .L1500+8 -.L1489: + ldr r10, .L1488+16 + ldr fp, .L1488+4 +.L1477: ldrh r3, [r4, #240] - uxth r6, r8 - cmp r3, r6 - bhi .L1495 + uxth r5, r8 + cmp r3, r5 + bhi .L1483 bl l2p_flush bl FtlVpcTblFlush ldr r2, [sp, #4] - ldr r3, [r7] + ldr r3, [r7, #24] cmp r2, r3 - beq .L1496 + beq .L1484 bl __stack_chk_fail -.L1488: - movs r2, #0 +.L1476: mov r1, sp mov r0, r5 + movs r2, #0 bl log2phys ldr r0, [sp] adds r3, r0, #1 - beq .L1487 + beq .L1475 ubfx r0, r0, #10, #16 bl P2V_block_in_plane - ldr r2, [r4, #3356] + ldr r2, [r4, #3352] ldrh r3, [r2, r0, lsl #1] adds r3, r3, #1 strh r3, [r2, r0, lsl #1] @ movhi -.L1487: +.L1475: adds r5, r5, #1 - b .L1486 -.L1495: + b .L1474 +.L1483: ldr r3, [r4, #72] - uxth r5, r8 - ldrh r2, [r3, r5, lsl #1] - ldr r3, [r4, #3356] - ldrh r3, [r3, r5, lsl #1] + uxth r6, r8 + ldrh r2, [r3, r6, lsl #1] + ldr r3, [r4, #3352] + ldrh r3, [r3, r6, lsl #1] cmp r2, r3 - beq .L1491 + beq .L1479 movw r1, #65535 cmp r2, r1 - beq .L1491 - mov r1, r5 + beq .L1479 + mov r1, r6 mov r0, r9 bl sftl_printk ldrh r3, [r4, #24] - cmp r3, r6 - beq .L1491 + cmp r3, r5 + beq .L1479 ldrh r3, [r4, #124] - cmp r3, r6 - beq .L1491 + cmp r3, r5 + beq .L1479 ldrh r3, [r4, #76] - cmp r3, r6 - beq .L1491 + cmp r3, r5 + beq .L1479 ldr r3, [r4, #72] - ldrh r2, [r3, r5, lsl #1] - cbnz r2, .L1493 - ldr r2, [r4, #3356] - mov r1, r6 + ldr r2, [r4, #3352] + ldrh r1, [r3, r6, lsl #1] + ldrh r2, [r2, r6, lsl #1] + strh r2, [r3, r6, lsl #1] @ movhi + cbnz r1, .L1481 + mov r1, r5 mov r0, r10 - ldrh r2, [r2, r5, lsl #1] - strh r2, [r3, r5, lsl #1] @ movhi bl List_remove_node ldrh r3, [r4, #224] - cbnz r3, .L1494 - movw r2, #2323 + cbnz r3, .L1482 + ldr r0, .L1488+20 mov r1, fp - ldr r0, .L1500+16 + movw r2, #2330 bl sftl_printk -.L1494: +.L1482: ldrh r3, [r4, #224] - mov r0, r6 + mov r0, r5 subs r3, r3, #1 strh r3, [r4, #224] @ movhi bl INSERT_DATA_LIST -.L1491: +.L1479: add r8, r8, #1 - b .L1489 -.L1493: - ldr r2, [r4, #3356] - mov r0, r6 - ldrh r2, [r2, r5, lsl #1] - strh r2, [r3, r5, lsl #1] @ movhi + b .L1477 +.L1481: + mov r0, r5 bl update_vpc_list - b .L1491 -.L1496: + b .L1479 +.L1484: add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1501: +.L1489: .align 2 -.L1500: - .word __stack_chk_guard +.L1488: .word .LANCHOR0 .word .LANCHOR1+486 .word .LC111 - .word .LC8 .word .LC121 .word .LANCHOR0+2532 + .word .LC8 .fnend .size FtlVpcCheckAndModify, .-FtlVpcCheckAndModify .align 1 @@ -10354,44 +10628,44 @@ allocate_new_data_superblock: @ frame_needed = 0, uses_anonymous_args = 0 push {r4, r5, r6, lr} .save {r4, r5, r6, lr} - mov r6, r0 - ldr r4, .L1512 - ldrh r5, [r0] - ldrh r3, [r4, #240] - cmp r3, r5 - bcs .L1503 - movw r2, #2759 - ldr r1, .L1512+4 - ldr r0, .L1512+8 + mov r5, r0 + ldr r6, .L1500 + ldrh r4, [r0] + ldrh r3, [r6, #240] + cmp r3, r4 + bcs .L1491 + ldr r1, .L1500+4 + movw r2, #2766 + ldr r0, .L1500+8 bl sftl_printk -.L1503: +.L1491: movw r3, #65535 - cmp r5, r3 - beq .L1504 - ldr r3, [r4, #72] - mov r0, r5 - ldrh r3, [r3, r5, lsl #1] - cbz r3, .L1505 + cmp r4, r3 + beq .L1492 + ldr r3, [r6, #72] + mov r0, r4 + ldrh r3, [r3, r4, lsl #1] + cbz r3, .L1493 bl INSERT_DATA_LIST -.L1504: - ldrh r0, [r4, #3442] +.L1492: + ldrh r0, [r6, #3438] movs r3, #1 - strb r3, [r6, #8] + strb r3, [r5, #8] movw r3, #65535 cmp r0, r3 - beq .L1506 - cmp r5, r0 - bne .L1507 - ldr r3, [r4, #72] - ldrh r3, [r3, r0, lsl #1] - cbz r3, .L1508 -.L1507: + beq .L1494 + cmp r0, r4 + bne .L1495 + ldr r3, [r6, #72] + ldrh r3, [r3, r4, lsl #1] + cbz r3, .L1496 +.L1495: bl update_vpc_list -.L1508: +.L1496: movw r3, #65535 - strh r3, [r4, #3442] @ movhi -.L1506: - mov r0, r6 + strh r3, [r6, #3438] @ movhi +.L1494: + mov r0, r5 bl allocate_data_superblock bl l2p_flush movs r0, #0 @@ -10399,17 +10673,23 @@ allocate_new_data_superblock: bl FtlVpcTblFlush movs r0, #0 pop {r4, r5, r6, pc} -.L1505: +.L1493: bl INSERT_FREE_LIST - b .L1504 -.L1513: + b .L1492 +.L1501: .align 2 -.L1512: +.L1500: .word .LANCHOR0 .word .LANCHOR1+507 .word .LC8 .fnend .size allocate_new_data_superblock, .-allocate_new_data_superblock + .section .rodata.str1.1 +.LC122: + .ascii "FtlProgPages error %x = %d\012\000" +.LC123: + .ascii "Ftlwrite decrement_vpc_count %x = %d\012\000" + .text .align 1 .global FtlProgPages .syntax unified @@ -10419,43 +10699,44 @@ allocate_new_data_superblock: .type FtlProgPages, %function FtlProgPages: .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 #12 mov r5, r3 - ldr r6, .L1534 - .pad #20 - sub sp, sp, #20 - movs r7, #0 + ldr fp, .L1522 + mov r3, sp + ldr r10, .L1522+4 + bic r7, r3, #8160 + mov r9, #0 + bic r7, r7, #31 movs r2, #0 - ldr fp, .L1534+20 mov r4, r0 - ldr r3, [r6] - mov r10, r1 - ldr r9, .L1534+4 - str r3, [sp, #12] + mov r8, r1 + ldr r3, [r7, #24] + str r3, [sp, #4] ldrb r3, [r5, #9] @ zero_extendqisi2 bl FlashProgPages -.L1515: - cmp r7, r10 - bne .L1522 - ldr r3, .L1534+4 +.L1503: + cmp r9, r8 + bne .L1510 + ldr r3, .L1522+4 ldrb r2, [r5, #6] @ zero_extendqisi2 ldrh r3, [r3, #232] cmp r2, r3 - bcc .L1514 + bcc .L1502 + ldr r1, .L1522+8 mov r2, #1000 - ldr r1, .L1534+8 - ldr r0, .L1534+12 + ldr r0, .L1522+12 bl sftl_printk -.L1514: - ldr r2, [sp, #12] - ldr r3, [r6] +.L1502: + ldr r2, [sp, #4] + ldr r3, [r7, #24] cmp r2, r3 - beq .L1524 + beq .L1512 bl __stack_chk_fail -.L1517: +.L1505: ldr r1, [r4, #4] mov r0, fp bl sftl_printk @@ -10464,75 +10745,72 @@ FtlProgPages: bl P2V_block_in_plane bl decrement_vpc_count ldrh r3, [r5, #4] - cbnz r3, .L1516 + cbnz r3, .L1504 mov r0, r5 bl allocate_new_data_superblock -.L1516: +.L1504: mov r0, r5 bl get_new_active_ppa - movs r2, #0 str r0, [r4, #4] - str r0, [sp, #8] - movs r1, #1 + str r0, [sp] + movs r2, #0 ldrb r3, [r5, #9] @ zero_extendqisi2 mov r0, r4 + movs r1, #1 bl FlashProgPages -.L1522: +.L1510: ldr r2, [r4] - adds r3, r2, #1 - beq .L1517 + adds r1, r2, #1 + beq .L1505 cmp r2, #256 - beq .L1517 + beq .L1505 ldrb r2, [r5, #6] @ zero_extendqisi2 - ldrh r3, [r9, #232] + ldrh r3, [r10, #232] cmp r2, r3 - bcc .L1518 + bcc .L1506 + ldr r1, .L1522+8 movw r2, #985 - ldr r1, .L1534+8 - ldr r0, .L1534+12 + ldr r0, .L1522+12 bl sftl_printk -.L1518: +.L1506: ldr r3, [r4, #4] - add r1, sp, #16 - movs r2, #1 + mov r1, sp ldr r0, [r4, #16] - str r3, [r1, #-8]! + movs r2, #1 + str r3, [sp] bl log2phys ldr r3, [r4, #12] - ldr r3, [r3, #12] - ubfx r0, r3, #10, #16 - str r3, [sp, #4] + ldr r0, [r3, #12] + adds r3, r0, #1 + beq .L1507 + ubfx r0, r0, #10, #16 bl P2V_block_in_plane - ldr r3, [sp, #4] - mov r8, r0 - adds r3, r3, #1 - beq .L1519 - ldr r3, [r9, #72] + ldr r3, [r10, #72] + mov r6, r0 ldrh r2, [r3, r0, lsl #1] - cbnz r2, .L1520 + cbnz r2, .L1508 mov r1, r0 - ldr r0, .L1534+16 + ldr r0, .L1522+16 bl sftl_printk -.L1520: - mov r0, r8 +.L1508: + mov r0, r6 bl decrement_vpc_count -.L1519: - adds r7, r7, #1 +.L1507: + add r9, r9, #1 adds r4, r4, #20 - b .L1515 -.L1524: - add sp, sp, #20 + b .L1503 +.L1512: + add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1535: +.L1523: .align 2 -.L1534: - .word __stack_chk_guard +.L1522: + .word .LC122 .word .LANCHOR0 .word .LANCHOR1+536 .word .LC8 .word .LC123 - .word .LC122 .fnend .size FtlProgPages, .-FtlProgPages .align 1 @@ -10549,158 +10827,159 @@ FtlGcFreeTempBlock: push {r0, r1, r4, r5, r6, r7, r8, r9, r10, lr} .save {r4, r5, r6, r7, r8, r9, r10, lr} .pad #8 - ldr r6, .L1561 - ldr r4, .L1561+4 - ldr r3, [r6] + ldr r4, .L1549 + mov r3, sp + bic r6, r3, #8160 + bic r6, r6, #31 ldrh r2, [r4, #124] + ldrh r1, [r4, #302] + ldr r3, [r6, #24] str r3, [sp, #4] movw r3, #65535 - ldrh r1, [r4, #302] cmp r2, r3 - bne .L1537 -.L1544: + bne .L1525 +.L1532: ldrh r2, [r4, #124] movs r3, #0 - str r3, [r4, #3448] + str r3, [r4, #3444] movw r3, #65535 cmp r2, r3 - bne .L1558 -.L1538: + bne .L1546 +.L1526: movs r0, #0 -.L1536: +.L1524: ldr r2, [sp, #4] - ldr r3, [r6] - cmp r2, r3 - beq .L1553 - bl __stack_chk_fail -.L1537: - ldr r5, .L1561+8 - cbz r0, .L1540 - ldrh r2, [r5, #4] + ldr r3, [r6, #24] cmp r2, r3 beq .L1541 -.L1542: + bl __stack_chk_fail +.L1525: + ldr r5, .L1549+4 + cbz r0, .L1528 + ldrh r2, [r5, #4] + cmp r2, r3 + beq .L1529 +.L1530: movs r1, #2 -.L1540: - ldr r0, .L1561+12 +.L1528: + ldr r0, .L1549+8 bl FtlGcScanTempBlk ldrh r2, [r5, #4] movw r3, #65535 str r0, [sp] cmp r2, r3 - beq .L1544 + beq .L1532 movs r0, #1 - b .L1536 -.L1541: + b .L1524 +.L1529: movs r3, #0 strh r3, [r5, #4] @ movhi ldrh r3, [r4, #224] cmp r3, #17 - bhi .L1542 - b .L1540 -.L1558: - ldrb r1, [r4, #131] @ zero_extendqisi2 - ldrh r3, [r4, #302] - ldrh r2, [r4, #3208] + bhi .L1530 + b .L1528 +.L1546: + ldrb r3, [r4, #131] @ zero_extendqisi2 + ldrh r1, [r4, #302] + ldrh r2, [r4, #3204] muls r3, r1, r3 cmp r2, r3 - beq .L1545 + beq .L1533 + ldr r1, .L1549+12 movs r2, #164 - ldr r1, .L1561+16 - ldr r0, .L1561+20 + ldr r0, .L1549+16 bl sftl_printk -.L1545: +.L1533: ldrb r3, [r4, #131] @ zero_extendqisi2 movs r5, #0 ldrh r0, [r4, #302] mov r9, #12 - ldr r2, [r4, #72] ldrh r1, [r4, #124] + ldr r2, [r4, #72] smulbb r3, r3, r0 strh r3, [r2, r1, lsl #1] @ movhi - ldr r2, [r4, #2580] - ldrh r3, [r4, #3208] + ldr r2, [r4, #2576] + ldrh r3, [r4, #3204] add r3, r3, r2 - str r3, [r4, #2580] -.L1546: - ldrh r2, [r4, #3208] + str r3, [r4, #2576] +.L1534: + ldrh r2, [r4, #3204] uxth r3, r5 cmp r2, r3 - bhi .L1550 + bhi .L1538 movw r0, #65535 bl decrement_vpc_count ldrh r0, [r4, #124] ldr r3, [r4, #72] ldrh r3, [r3, r0, lsl #1] cmp r3, #0 - beq .L1551 + beq .L1539 bl INSERT_DATA_LIST -.L1552: +.L1540: movw r7, #65535 movs r5, #0 strh r7, [r4, #124] @ movhi - strh r5, [r4, #3208] @ movhi - strh r5, [r4, #3200] @ movhi + strh r5, [r4, #3204] @ movhi + strh r5, [r4, #3196] @ movhi bl l2p_flush bl FtlVpcTblFlush - ldrh r3, [r4, #2624] + ldrh r3, [r4, #2620] ldrh r2, [r4, #224] strh r7, [r4, #172] @ movhi add r3, r3, r3, lsl #1 - cmp r2, r3, asr #2 - ble .L1538 + cmp r2, r3, lsr #2 + ble .L1526 movs r3, #20 - strh r3, [r4, #3156] @ movhi - b .L1538 -.L1550: + strh r3, [r4, #3152] @ movhi + b .L1526 +.L1538: uxth r8, r5 - ldr r10, [r4, #3204] - ldr r3, [r4, #2556] + ldr r10, [r4, #3200] + ldr r3, [r4, #2552] mul r8, r9, r8 add r7, r10, r8 ldr r0, [r7, #8] cmp r0, r3 - bcc .L1547 -.L1559: - ldrh r0, [r4, #124] - b .L1560 + bcc .L1535 .L1547: - movs r2, #0 + ldrh r0, [r4, #124] + b .L1548 +.L1535: mov r1, sp + movs r2, #0 bl log2phys ldr r0, [r10, r8] ldr r3, [sp] cmp r0, r3 - bne .L1549 + bne .L1537 ubfx r0, r0, #10, #16 bl P2V_block_in_plane - movs r2, #1 - mov r8, r0 adds r1, r7, #4 + mov r8, r0 + movs r2, #1 ldr r0, [r7, #8] bl log2phys mov r0, r8 -.L1560: +.L1548: bl decrement_vpc_count - b .L1548 -.L1549: + b .L1536 +.L1537: ldr r2, [r7, #4] cmp r3, r2 - bne .L1559 -.L1548: + bne .L1547 +.L1536: adds r5, r5, #1 - b .L1546 -.L1551: + b .L1534 +.L1539: bl INSERT_FREE_LIST - b .L1552 -.L1553: + b .L1540 +.L1541: add sp, sp, #8 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, pc} -.L1562: +.L1550: .align 2 -.L1561: - .word __stack_chk_guard +.L1549: .word .LANCHOR0 .word .LANCHOR2 .word .LANCHOR0+124 @@ -10721,25 +11000,25 @@ FtlGcPageRecovery: @ frame_needed = 0, uses_anonymous_args = 0 push {r4, lr} .save {r4, lr} - ldr r4, .L1565 - ldrh r1, [r4, #302] + ldr r4, .L1553 add r0, r4, #124 + ldrh r1, [r4, #302] bl FtlGcScanTempBlk ldrh r2, [r4, #126] ldrh r3, [r4, #302] cmp r2, r3 - bcc .L1563 - addw r0, r4, #3396 + bcc .L1551 + add r0, r4, #3392 bl FtlMapBlkWriteDump_data movs r0, #0 bl FtlGcFreeTempBlock movs r3, #0 - str r3, [r4, #3448] -.L1563: + str r3, [r4, #3444] +.L1551: pop {r4, pc} -.L1566: +.L1554: .align 2 -.L1565: +.L1553: .word .LANCHOR0 .fnend .size FtlGcPageRecovery, .-FtlGcPageRecovery @@ -10757,11 +11036,11 @@ FtlPowerLostRecovery: push {r4, r5, r6, lr} .save {r4, r5, r6, lr} movs r5, #0 - ldr r4, .L1568 + ldr r4, .L1556 add r6, r4, #24 - str r5, [r4, #3480] - mov r0, r6 adds r4, r4, #76 + mov r0, r6 + str r5, [r4, #3400] bl FtlRecoverySuperblock mov r0, r6 bl FtlSlcSuperblockCheck @@ -10774,9 +11053,9 @@ FtlPowerLostRecovery: bl decrement_vpc_count mov r0, r5 pop {r4, r5, r6, pc} -.L1569: +.L1557: .align 2 -.L1568: +.L1556: .word .LANCHOR0 .fnend .size FtlPowerLostRecovery, .-FtlPowerLostRecovery @@ -10791,49 +11070,49 @@ Ftl_gc_temp_data_write_back: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - push {r4, r5, r6, lr} - .save {r4, r5, r6, lr} - movs r3, #0 - ldr r4, .L1578 + push {r3, r4, r5, r6, r7, lr} + .save {r3, r4, r5, r6, r7, lr} movs r5, #0 + ldr r4, .L1566 movs r6, #20 + movs r3, #0 mov r2, r3 - ldr r1, [r4, #3172] - ldr r0, [r4, #3296] + ldr r1, [r4, #3168] + ldr r0, [r4, #3292] bl FlashProgPages -.L1571: - ldr r1, [r4, #3172] +.L1559: + ldr r1, [r4, #3168] uxth r3, r5 - cmp r1, r3 - bhi .L1574 - ldr r0, [r4, #3296] + ldr r2, [r4, #3292] + cmp r3, r1 + bcc .L1562 + mov r0, r2 bl FtlGcBufFree ldrh r3, [r4, #128] movs r0, #0 - str r0, [r4, #3172] - cbnz r3, .L1570 + str r0, [r4, #3168] + cbnz r3, .L1558 movs r0, #1 bl FtlGcFreeTempBlock movs r0, #1 -.L1570: - pop {r4, r5, r6, pc} -.L1574: +.L1558: + pop {r3, r4, r5, r6, r7, pc} +.L1562: muls r3, r6, r3 - ldr r2, [r4, #3296] adds r5, r5, #1 adds r1, r2, r3 ldr r2, [r2, r3] - ldr r0, [r1, #12] - ldr r1, [r1, #4] + ldr r7, [r1, #12] adds r3, r2, #1 + ldr r1, [r1, #4] + ldr r0, [r7, #12] it ne - ldrne r2, [r0, #8] - ldr r0, [r0, #12] + ldrne r2, [r7, #8] bl FtlGcUpdatePage - b .L1571 -.L1579: + b .L1559 +.L1567: .align 2 -.L1578: +.L1566: .word .LANCHOR0 .fnend .size Ftl_gc_temp_data_write_back, .-Ftl_gc_temp_data_write_back @@ -10851,36 +11130,40 @@ Ftl_get_new_temp_ppa: push {r3, r4, r5, lr} .save {r3, r4, r5, lr} movw r3, #65535 - ldr r4, .L1583 + ldr r4, .L1571 ldrh r2, [r4, #124] cmp r2, r3 - beq .L1581 + beq .L1569 ldrh r3, [r4, #128] - cbnz r3, .L1582 -.L1581: + cbnz r3, .L1570 +.L1569: movs r0, #0 movs r5, #0 bl FtlGcFreeTempBlock - ldr r0, .L1583+4 + ldr r0, .L1571+4 strb r5, [r4, #132] bl allocate_data_superblock - strh r5, [r4, #3200] @ movhi - strh r5, [r4, #3208] @ movhi + strh r5, [r4, #3196] @ movhi + strh r5, [r4, #3204] @ movhi bl l2p_flush mov r0, r5 bl FtlEctTblFlush bl FtlVpcTblFlush -.L1582: - ldr r0, .L1583+4 +.L1570: pop {r3, r4, r5, lr} + ldr r0, .L1571+4 b get_new_active_ppa -.L1584: +.L1572: .align 2 -.L1583: +.L1571: .word .LANCHOR0 .word .LANCHOR0+124 .fnend .size Ftl_get_new_temp_ppa, .-Ftl_get_new_temp_ppa + .section .rodata.str1.1 +.LC124: + .ascii "SWL %x, FSB = %x vpc= %x,ec=%x th=%x\012\000" + .text .align 1 .global rk_ftl_garbage_collect .syntax unified @@ -10890,292 +11173,277 @@ Ftl_get_new_temp_ppa: .type rk_ftl_garbage_collect, %function rk_ftl_garbage_collect: .fnstart - @ args = 0, pretend = 0, frame = 40 + @ args = 0, pretend = 0, frame = 32 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1717 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 - mov r9, r0 - ldr r3, [r3] - str r3, [sp, #44] - ldr r3, .L1717+4 - ldr r0, [r3, #3276] - mov r4, r3 + ldr r4, .L1687 + .pad #44 + sub sp, sp, #44 + mov r3, sp + bic r3, r3, #8160 + bic r3, r3, #31 + str r0, [sp, #16] + ldr r0, [r4, #3272] + ldr r3, [r3, #24] + str r3, [sp, #36] cmp r0, #0 - bne .L1669 - ldrh r2, [r3, #2528] - cmp r2, #47 - bls .L1585 - ldr r2, .L1717+8 - ldrh r1, [r2, #4] - movw r2, #65535 - cmp r1, r2 - bne .L1587 -.L1590: + bne .L1651 + ldrh r3, [r4, #2528] + cmp r3, #47 + bls .L1573 + ldr r3, .L1687+4 + ldrh r2, [r3, #4] + movw r3, #65535 + cmp r2, r3 + bne .L1575 +.L1578: ldrh r2, [r4, #220] movw r1, #65535 cmp r2, r1 - bne .L1588 -.L1589: + bne .L1576 +.L1577: bl FtlReadRefresh - ldr r3, [r4, #3160] - movw r7, #65535 - ldrh r1, [r4, #172] + ldr r3, [r4, #3156] + ldr r2, [sp, #16] adds r3, r3, #1 - add r3, r3, r9, lsl #7 - cmp r1, r7 - str r3, [r4, #3160] - bne .L1591 + ldrh r6, [r4, #172] + add r3, r3, r2, lsl #7 ldrh r2, [r4, #124] - cmp r2, r1 - bne .L1592 - ldrh r6, [r4, #222] + str r3, [r4, #3156] + ands r6, r6, r2 + ldrh r2, [r4, #222] + ands r6, r6, r2 + movw r2, #65535 cmp r6, r2 - bne .L1593 + bne .L1579 ldrh r2, [r4, #224] cmp r2, #24 ite cc movcc r2, #5120 movcs r2, #1024 cmp r3, r2 - bls .L1593 - movs r5, #0 - str r5, [r4, #3160] - strh r5, [r4, #3664] @ movhi + bls .L1579 + movs r7, #0 + str r7, [r4, #3156] + strh r7, [r4, #3660] @ movhi bl GetSwlReplaceBlock + mov r5, r0 cmp r0, r6 - mov r7, r0 - bne .L1673 + bne .L1581 ldrh r2, [r4, #224] - ldrh r3, [r4, #3158] + ldrh r3, [r4, #3154] cmp r2, r3 - bcs .L1596 + bcs .L1582 movs r0, #64 bl List_get_gc_head_node uxth r3, r0 - cmp r3, r7 - beq .L1598 + cmp r3, r5 + beq .L1584 mov r0, r3 ldr r3, [r4, #72] ldrh r3, [r3, r0, lsl #1] cmp r3, #7 - bhi .L1599 - mov r0, r5 + bhi .L1585 + mov r0, r7 bl List_get_gc_head_node - uxth r5, r0 + uxth r0, r0 movs r3, #128 - strh r3, [r4, #3158] @ movhi - cmp r5, r7 - bne .L1595 -.L1598: - bl FtlGcReFreshBadBlk - cmp r9, #0 - bne .L1601 - movw r3, #65535 - cmp r7, r3 - bne .L1601 -.L1666: - ldrh r3, [r4, #224] - cmp r3, #24 - bhi .L1674 - cmp r3, #16 - ldrh r6, [r4, #302] - bls .L1603 - lsrs r6, r6, #5 -.L1602: - ldrh r2, [r4, #3156] + cmp r0, r5 + strh r3, [r4, #3154] @ movhi + beq .L1584 + mov r5, r0 +.L1581: + ldr r3, [r4, #72] + mov r1, r5 + ldrh r2, [r4, #3152] + ldr r0, .L1687+8 + ldrh r3, [r3, r5, lsl #1] + str r2, [sp, #4] + ldr r2, [r4, #2536] + ldrh r2, [r2, r5, lsl #1] + str r2, [sp] + ldrh r2, [r4, #224] + bl sftl_printk + b .L1584 +.L1575: + ldrh r2, [r4, #124] cmp r2, r3 - bcs .L1606 - ldrh r3, [r4, #124] - movw r2, #65535 - cmp r3, r2 - bne .L1607 - ldrh r2, [r4, #222] - cmp r2, r3 - bne .L1607 - ldrh r0, [r4, #3664] - cbnz r0, .L1608 - ldr r3, [r4, #2556] - ldr r2, [r4, #2548] - add r3, r3, r3, lsl #1 - cmp r2, r3, lsr #2 - bcs .L1609 -.L1608: - ldrh r3, [r4, #2624] - add r3, r3, r3, lsl #1 - asrs r3, r3, #2 -.L1713: - strh r3, [r4, #3156] @ movhi - movs r3, #0 - str r3, [r4, #3168] -.L1585: - ldr r3, .L1717 - ldr r2, [sp, #44] - ldr r3, [r3] - cmp r2, r3 - beq .L1668 - bl __stack_chk_fail -.L1587: - ldrh r3, [r3, #124] - cmp r3, r2 - beq .L1590 + beq .L1578 movs r0, #1 bl FtlGcFreeTempBlock cmp r0, #0 - beq .L1590 + beq .L1578 movs r0, #1 - b .L1585 -.L1588: + b .L1573 +.L1576: ldrh r3, [r4, #222] cmp r3, r1 itt eq strheq r2, [r4, #222] @ movhi strheq r3, [r4, #220] @ movhi - b .L1589 -.L1599: + b .L1577 +.L1585: movs r3, #64 -.L1712: - strh r3, [r4, #3158] @ movhi - b .L1598 -.L1596: - movs r3, #80 - b .L1712 -.L1673: - mov r5, r0 -.L1595: - ldr r3, [r4, #72] - mov r7, r5 - ldrh r1, [r4, #3156] - ldrh r2, [r4, #224] - ldrh r3, [r3, r5, lsl #1] - str r1, [sp, #4] - ldr r1, [r4, #2536] - ldr r0, .L1717+12 - ldrh r1, [r1, r5, lsl #1] - str r1, [sp] - mov r1, r5 - bl sftl_printk - b .L1598 -.L1603: - cmp r3, #12 - bls .L1604 - lsrs r6, r6, #4 - b .L1602 -.L1604: - cmp r3, #8 - bls .L1602 - lsrs r6, r6, #2 - b .L1602 -.L1674: - movs r6, #1 - b .L1602 -.L1609: - movs r3, #18 - b .L1713 -.L1607: - ldrh r3, [r4, #2624] - add r3, r3, r3, lsl #1 - asrs r3, r3, #2 - strh r3, [r4, #3156] @ movhi -.L1606: - ldrh r3, [r4, #3210] - cbz r3, .L1675 - adds r6, r6, #32 - uxth r6, r6 -.L1675: - movw r7, #65535 -.L1612: - ldrh r3, [r4, #172] +.L1683: + strh r3, [r4, #3154] @ movhi +.L1584: + bl FtlGcReFreshBadBlk + ldr r3, [sp, #16] + cmp r3, #0 + bne .L1587 + movw r3, #65535 + cmp r5, r3 + bne .L1587 +.L1649: + ldrh r3, [r4, #224] + cmp r3, #24 + bhi .L1656 + ldrh r6, [r4, #302] + cmp r3, #16 + bls .L1589 + lsrs r6, r6, #5 +.L1588: + ldrh r2, [r4, #3152] + cmp r2, r3 + bcs .L1591 + ldrh r2, [r4, #222] + ldrh r3, [r4, #124] + ands r3, r3, r2 movw r2, #65535 cmp r3, r2 - bne .L1621 - cmp r7, r3 - beq .L1622 - strh r7, [r4, #172] @ movhi -.L1623: - ldrh r0, [r4, #172] - movw r5, #65535 - movs r3, #0 - strb r3, [r4, #180] - cmp r0, r5 - beq .L1621 - bl IsBlkInGcList - cbz r0, .L1626 - strh r5, [r4, #172] @ movhi -.L1626: - ldrh r2, [r4, #172] - movw r3, #65535 - cmp r2, r3 - beq .L1621 - ldr r0, .L1717+16 - bl make_superblock - movs r3, #0 - ldrh r2, [r4, #172] - strh r3, [r4, #174] @ movhi - strb r3, [r4, #178] - strh r3, [r4, #3666] @ movhi - ldr r3, [r4, #72] - ldrh r3, [r3, r2, lsl #1] - strh r3, [r4, #3668] @ movhi -.L1621: - ldrh r3, [r4, #172] - ldrh r2, [r4, #24] - cmp r2, r3 - beq .L1627 - ldrh r2, [r4, #76] - cmp r2, r3 - beq .L1627 - ldrh r2, [r4, #124] - cmp r2, r3 - bne .L1628 -.L1627: - movw r3, #65535 - strh r3, [r4, #172] @ movhi -.L1628: - ldr r5, .L1717+4 - mov r4, r5 -.L1664: - ldrh r10, [r5, #172] - movw r3, #65535 - cmp r10, r3 - bne .L1629 - movs r3, #0 - mov fp, r3 - str r3, [r5, #3168] -.L1630: - ldrh r8, [r4, #3164] - mov r0, r8 - bl List_get_gc_head_node - uxth r2, r0 - cmp r2, r10 - strh r2, [r4, #172] @ movhi - bne .L1631 - movs r3, #0 - movs r0, #8 - strh r3, [r4, #3164] @ movhi - b .L1585 -.L1613: - movs r3, #0 - ldrh r2, [r4, #224] - str r3, [r4, #3168] - ldrh r3, [r4, #3156] - cmp r2, r3 - bls .L1614 - ldrh r3, [r4, #3664] - cbnz r3, .L1615 - ldr r3, [r4, #2556] + bne .L1592 + ldrh r0, [r4, #3660] + cbnz r0, .L1593 + ldr r3, [r4, #2552] ldr r2, [r4, #2548] add r3, r3, r3, lsl #1 cmp r2, r3, lsr #2 - bcs .L1616 -.L1615: - ldrh r3, [r4, #2624] + bcs .L1657 +.L1593: + ldrh r3, [r4, #2620] + add r3, r3, r3, lsl #1 + lsrs r3, r3, #2 +.L1594: + strh r3, [r4, #3152] @ movhi + movs r3, #0 + str r3, [r4, #3164] +.L1573: + mov r3, sp + ldr r2, [sp, #36] + bic r3, r3, #8160 + bic r3, r3, #31 + ldr r3, [r3, #24] + cmp r2, r3 + beq .L1650 + bl __stack_chk_fail +.L1582: + movs r3, #80 + b .L1683 +.L1589: + cmp r3, #12 + bls .L1590 + lsrs r6, r6, #4 + b .L1588 +.L1590: + cmp r3, #8 + bls .L1588 + lsrs r6, r6, #2 + b .L1588 +.L1656: + movs r6, #1 + b .L1588 +.L1657: + movs r3, #18 + b .L1594 +.L1592: + ldrh r3, [r4, #2620] add r3, r3, r3, lsl #1 asrs r3, r3, #2 -.L1714: - strh r3, [r4, #3156] @ movhi + strh r3, [r4, #3152] @ movhi +.L1591: + ldrh r3, [r4, #3206] + cbz r3, .L1658 + adds r6, r6, #32 + uxth r6, r6 +.L1658: + movw r5, #65535 +.L1596: + ldrh r3, [r4, #172] + movw r2, #65535 + cmp r3, r2 + bne .L1604 + cmp r5, r3 + beq .L1605 + strh r5, [r4, #172] @ movhi +.L1606: + ldrh r0, [r4, #172] + movs r3, #0 + movw r8, #65535 + strb r3, [r4, #180] + cmp r0, r8 + beq .L1604 + bl IsBlkInGcList + mov r7, r0 + cmp r0, #0 + beq .L1609 + strh r8, [r4, #172] @ movhi +.L1604: + ldrh r3, [r4, #172] + ldrh r2, [r4, #24] + cmp r2, r3 + beq .L1610 + ldrh r2, [r4, #76] + cmp r2, r3 + beq .L1610 + ldrh r2, [r4, #124] + cmp r2, r3 + bne .L1611 +.L1610: + movw r3, #65535 + strh r3, [r4, #172] @ movhi +.L1611: + ldr r4, .L1687 +.L1647: + ldrh r8, [r4, #172] + movw r3, #65535 + cmp r8, r3 + bne .L1612 + mov r9, #0 + str r9, [r4, #3164] +.L1613: + ldrh r7, [r4, #3160] + mov r0, r7 + bl List_get_gc_head_node + uxth fp, r0 + mov r10, r0 + cmp fp, r8 + strh fp, [r4, #172] @ movhi + bne .L1614 + movs r3, #0 + movs r0, #8 + strh r3, [r4, #3160] @ movhi + b .L1573 +.L1597: + movs r3, #0 + ldrh r2, [r4, #224] + str r3, [r4, #3164] + ldrh r3, [r4, #3152] + cmp r2, r3 + bls .L1598 + ldrh r3, [r4, #3660] + cbnz r3, .L1599 + ldr r3, [r4, #2552] + ldr r2, [r4, #2548] + add r3, r3, r3, lsl #1 + cmp r2, r3, lsr #2 + bcs .L1660 +.L1599: + ldrh r3, [r4, #2620] + add r3, r3, r3, lsl #1 + lsrs r3, r3, #2 +.L1600: + strh r3, [r4, #3152] @ movhi bl FtlReadRefresh movs r0, #0 bl List_get_gc_head_node @@ -11183,443 +11451,424 @@ rk_ftl_garbage_collect: uxth r0, r0 ldrh r3, [r3, r0, lsl #1] cmp r3, #4 - bls .L1614 -.L1716: - ldrh r0, [r4, #3664] - b .L1585 -.L1616: + bls .L1598 +.L1686: + ldrh r0, [r4, #3660] + b .L1573 +.L1660: movs r3, #18 - b .L1714 -.L1614: - ldrh r0, [r4, #3664] + b .L1600 +.L1598: + ldrh r0, [r4, #3660] cmp r0, #0 - bne .L1618 - ldrh r5, [r4, #2624] + bne .L1601 + ldrh r5, [r4, #2620] add r3, r5, r5, lsl #1 asrs r3, r3, #2 - strh r3, [r4, #3156] @ movhi + strh r3, [r4, #3152] @ movhi bl List_get_gc_head_node ldr r3, [r4, #72] uxth r0, r0 - ldrh r1, [r4, #304] + ldrh r1, [r4, #232] ldrh r2, [r3, r0, lsl #1] - ldrh r3, [r4, #232] + ldrh r3, [r4, #304] muls r3, r1, r3 add r3, r3, r3, lsr #31 cmp r2, r3, asr #1 - ble .L1619 - ldrh r3, [r4, #224] - subs r5, r5, #1 - cmp r3, r5 - blt .L1619 + ble .L1602 + ldrh r1, [r4, #224] + subs r3, r5, #1 + cmp r1, r3 + blt .L1602 bl FtlReadRefresh - b .L1716 -.L1718: + b .L1686 +.L1688: .align 2 -.L1717: - .word __stack_chk_guard +.L1687: .word .LANCHOR0 .word .LANCHOR2 .word .LC124 - .word .LANCHOR0+172 -.L1619: +.L1602: cmp r2, #0 - bne .L1618 + bne .L1601 movw r0, #65535 bl decrement_vpc_count ldrh r0, [r4, #224] adds r0, r0, #1 - b .L1585 -.L1622: + b .L1573 +.L1605: ldrh r3, [r4, #222] - cmp r3, r7 - beq .L1623 + cmp r3, r5 + beq .L1606 ldr r2, [r4, #72] ldrh r3, [r2, r3, lsl #1] - cbnz r3, .L1624 - strh r7, [r4, #222] @ movhi -.L1624: + cbnz r3, .L1607 + strh r5, [r4, #222] @ movhi +.L1607: ldrh r3, [r4, #222] strh r3, [r4, #172] @ movhi movw r3, #65535 strh r3, [r4, #222] @ movhi - b .L1623 -.L1631: - str r0, [sp, #16] - mov r0, r2 - str r2, [sp, #12] - add r8, r8, #1 + b .L1606 +.L1614: + mov r0, fp bl IsBlkInGcList - ldr r2, [sp, #12] - ldr r3, [sp, #16] - cbz r0, .L1632 - strh r8, [r4, #3164] @ movhi - b .L1630 -.L1632: - ldrh lr, [r4, #232] - uxth r8, r8 - ldrh r1, [r4, #302] + adds r3, r7, #1 uxth r3, r3 - ldr r0, [r4, #72] - strh r8, [r4, #3164] @ movhi - mul r1, lr, r1 - ldrh ip, [r0, r3, lsl #1] - add lr, r1, r1, lsr #31 - cmp ip, lr, asr #1 - bgt .L1634 - cmp r8, #48 - bls .L1635 - cmp ip, #8 - bls .L1635 - ldrh ip, [r4, #3200] - cmp ip, #35 - bhi .L1635 -.L1634: - strh fp, [r4, #3164] @ movhi -.L1635: - ldrh r3, [r0, r3, lsl #1] - cmp r1, r3 - bgt .L1636 - cmp r7, r10 - bne .L1636 - ldrh r1, [r4, #3164] - cmp r1, #3 - bhi .L1636 + cbz r0, .L1615 +.L1684: + strh r3, [r4, #3160] @ movhi + b .L1613 +.L1615: + ldrh r7, [r4, #232] + uxth r10, r10 + ldrh r2, [r4, #302] + ldr r1, [r4, #72] + strh r3, [r4, #3160] @ movhi + muls r2, r7, r2 + ldrh r0, [r1, r10, lsl #1] + add r7, r2, r2, lsr #31 + cmp r0, r7, asr #1 + bgt .L1617 + cmp r3, #48 + bls .L1618 + cmp r0, #8 + bls .L1618 + ldrh r3, [r4, #3196] + cmp r3, #35 + bhi .L1618 +.L1617: + strh r9, [r4, #3160] @ movhi +.L1618: + ldrh r3, [r1, r10, lsl #1] + cmp r2, r3 + bgt .L1619 + cmp r5, r8 + bne .L1619 + ldrh r2, [r4, #3160] + cmp r2, #3 + bhi .L1619 movs r3, #0 - strh r7, [r4, #172] @ movhi - strh r3, [r4, #3164] @ movhi - b .L1716 -.L1636: - cbnz r3, .L1637 + strh r5, [r4, #172] @ movhi + strh r3, [r4, #3160] @ movhi + b .L1686 +.L1619: + cbnz r3, .L1620 movw r0, #65535 bl decrement_vpc_count - ldrh r3, [r4, #3164] + ldrh r3, [r4, #3160] adds r3, r3, #1 - strh r3, [r4, #3164] @ movhi - b .L1630 -.L1637: + b .L1684 +.L1620: movs r3, #0 strb r3, [r4, #180] ldrh r3, [r4, #24] - cmp r3, r2 - bne .L1638 + cmp r3, fp + bne .L1621 + ldr r1, .L1689 movw r2, #717 - ldr r1, .L1719 - ldr r0, .L1719+4 + ldr r0, .L1689+4 bl sftl_printk -.L1638: +.L1621: ldrh r2, [r4, #172] ldrh r3, [r4, #76] cmp r2, r3 - bne .L1639 + bne .L1622 + ldr r1, .L1689 movw r2, #718 - ldr r1, .L1719 - ldr r0, .L1719+4 + ldr r0, .L1689+4 bl sftl_printk -.L1639: +.L1622: ldrh r2, [r4, #172] ldrh r3, [r4, #124] cmp r2, r3 - bne .L1640 + bne .L1623 + ldr r1, .L1689 movw r2, #719 - ldr r1, .L1719 - ldr r0, .L1719+4 + ldr r0, .L1689+4 bl sftl_printk -.L1640: - ldr r0, .L1719+8 +.L1623: + ldr r0, .L1689+8 bl make_superblock ldrh r1, [r4, #172] - movs r3, #0 ldr r2, [r4, #72] - strh r3, [r4, #3666] @ movhi + movs r3, #0 + strh r3, [r4, #3662] @ movhi ldrh r2, [r2, r1, lsl #1] + strh r2, [r4, #3664] @ movhi strh r3, [r4, #174] @ movhi strb r3, [r4, #178] - strh r2, [r4, #3668] @ movhi -.L1629: +.L1612: movs r3, #1 - str r3, [r4, #3276] - ldrh r3, [r4, #302] - str r3, [sp, #16] - cmp r9, #0 - beq .L1641 - ldr r2, [sp, #16] + str r3, [r4, #3272] + ldr r3, [sp, #16] + ldrh fp, [r4, #302] + cbz r3, .L1624 ldrh r3, [r4, #232] ldrh r1, [r4, #172] - muls r3, r2, r3 ldr r2, [r4, #72] + mul r3, fp, r3 ldrh r2, [r2, r1, lsl #1] subs r3, r3, r2 it mi addmi r3, r3, #3 add r6, r6, r3, asr #2 uxth r6, r6 -.L1641: +.L1624: ldrh r3, [r4, #174] - ldr r1, [sp, #16] adds r2, r3, r6 - cmp r2, r1 + cmp r2, fp itt gt - movgt r2, r1 - subgt r6, r2, r3 - mov r3, #0 - it gt - uxthgt r6, r6 -.L1715: - str r3, [sp, #20] - ldrh r3, [sp, #20] - cmp r6, r3 - bls .L1652 - ldr r3, [sp, #20] - movw r10, #65535 - ldrh r8, [r5, #174] - mov fp, #20 - ldrh ip, [r5, #232] - ldr r0, [r5, #3188] - add r8, r8, r3 - ldr r3, .L1719+12 - str r3, [sp, #24] + subgt r3, fp, r3 + uxthgt r6, r3 movs r3, #0 +.L1685: str r3, [sp, #12] - b .L1653 -.L1646: - ldr r1, [sp, #24] - ldrh r2, [r1, #2]! - cmp r2, r10 - str r1, [sp, #24] - beq .L1645 - ldr r1, [sp, #12] - orr r2, r8, r2, lsl #10 - mla lr, fp, r1, r0 - str r2, [lr, #4] - mov r2, r1 - adds r2, r2, #1 - uxth r2, r2 - str r2, [sp, #12] -.L1645: - adds r3, r3, #1 -.L1653: - uxth r2, r3 - cmp ip, r2 - bhi .L1646 - mov fp, #0 - ldrb r2, [r5, #180] @ zero_extendqisi2 - ldr r1, [sp, #12] - bl FlashReadPages -.L1647: + ldrh r3, [r4, #174] + ldrh r2, [sp, #12] + cmp r6, r2 + bls .L1635 ldr r2, [sp, #12] - uxth r3, fp - cmp r2, r3 - bhi .L1651 - ldr r3, [sp, #20] + movw r9, #65535 + ldrh lr, [r4, #232] + mov r10, #20 + add r3, r3, r2 + ldr r0, [r4, #3184] + movs r2, #0 + ldr ip, .L1689+12 + mov r7, r2 + b .L1636 +.L1629: + ldrh r1, [ip], #2 + cmp r1, r9 + beq .L1628 + mla r8, r10, r7, r0 + adds r7, r7, #1 + orr r1, r3, r1, lsl #10 + uxth r7, r7 + str r1, [r8, #4] +.L1628: + adds r2, r2, #1 +.L1636: + uxth r1, r2 + cmp lr, r1 + bhi .L1629 + mov r10, #0 + ldrb r2, [r4, #180] @ zero_extendqisi2 + mov r1, r7 + bl FlashReadPages +.L1630: + uxth r3, r10 + cmp r7, r3 + bhi .L1634 + ldr r3, [sp, #12] adds r3, r3, #1 - b .L1715 -.L1651: + b .L1685 +.L1634: mov r8, #20 - ldr r3, [r5, #3188] - mul r8, r8, fp + ldr r3, [r4, #3184] + mul r8, r8, r10 add r2, r3, r8 ldr r3, [r3, r8] adds r3, r3, #1 - beq .L1648 - ldr r10, [r2, #12] + beq .L1631 + ldr r9, [r2, #12] movw r3, #61589 - ldrh r2, [r10] + ldrh r2, [r9] cmp r2, r3 - bne .L1648 - ldr r3, [r10, #8] + bne .L1631 + ldr r3, [r9, #8] adds r2, r3, #1 - bne .L1649 + bne .L1632 + ldr r1, .L1689 movw r2, #753 - ldr r1, .L1719 - ldr r0, .L1719+4 - str r3, [sp, #24] + ldr r0, .L1689+4 + str r3, [sp, #20] bl sftl_printk - ldr r3, [sp, #24] -.L1649: - movs r2, #0 + ldr r3, [sp, #20] +.L1632: mov r0, r3 - add r1, sp, #36 + movs r2, #0 + add r1, sp, #28 bl log2phys - ldr r0, [r4, #3188] - ldr r3, [sp, #36] + ldr r0, [r4, #3184] + ldr r3, [sp, #28] add r0, r0, r8 ldr r2, [r0, #4] cmp r2, r3 - bne .L1648 - ldrh r3, [r4, #3666] + bne .L1631 + ldrh r3, [r4, #3662] movs r2, #20 - ldr r1, [r4, #3172] - str r2, [sp, #28] + ldr r1, [r4, #3168] adds r3, r3, #1 - strh r3, [r4, #3666] @ movhi - ldr r3, [r4, #3296] + strh r3, [r4, #3662] @ movhi + ldr r3, [r4, #3292] mla r3, r2, r1, r3 ldr r1, [r0, #16] + str r3, [sp, #20] str r1, [r3, #16] - str r3, [sp, #24] bl Ftl_get_new_temp_ppa - ldr r3, [sp, #24] - ldr r1, [r4, #3296] - ldr r2, [sp, #28] + ldr r3, [sp, #20] + ldr r1, [r4, #3168] + movs r2, #20 str r0, [r3, #4] - ldr r3, [r4, #3172] - mla r3, r2, r3, r1 - ldr r2, [r4, #3188] - add r2, r2, r8 - ldr r1, [r2, #8] - str r1, [r3, #8] + ldr r3, [r4, #3292] + ldr r0, [r4, #3184] + add r0, r0, r8 + mla r3, r2, r1, r3 movs r1, #1 - ldr r2, [r2, #12] + ldr r2, [r0, #8] + str r2, [r3, #8] + ldr r2, [r0, #12] str r2, [r3, #12] - ldr r3, [sp, #36] - str r3, [r10, #12] + ldr r3, [sp, #28] + str r3, [r9, #12] ldrh r3, [r4, #124] - strh r3, [r10, #2] @ movhi - ldr r3, [r4, #2596] - ldr r0, [r4, #3188] - str r3, [r10, #4] - ldr r3, [r4, #3172] + strh r3, [r9, #2] @ movhi + ldr r3, [r4, #2592] + ldr r0, [r4, #3184] + str r3, [r9, #4] + ldr r3, [r4, #3168] add r0, r0, r8 adds r3, r3, #1 - str r3, [r4, #3172] + str r3, [r4, #3168] bl FtlGcBufAlloc ldrb r2, [r4, #131] @ zero_extendqisi2 - ldr r3, [r4, #3172] + ldr r3, [r4, #3168] cmp r2, r3 - beq .L1650 + beq .L1633 ldrh r3, [r4, #128] - cbnz r3, .L1648 -.L1650: + cbnz r3, .L1631 +.L1633: bl Ftl_gc_temp_data_write_back - cbz r0, .L1648 - ldr r3, .L1719+16 + cbz r0, .L1631 + ldr r3, .L1689+16 movs r2, #0 - movw r1, #65535 - str r2, [r3, #3276] - strh r1, [r3, #172] @ movhi - strh r2, [r3, #174] @ movhi - ldrh r0, [r3, #3664] - b .L1585 -.L1648: - add fp, fp, #1 - b .L1647 -.L1652: - ldrh r3, [r5, #174] + ldrh r0, [r3, #3660] + str r2, [r3, #3272] + movw r2, #65535 + str r2, [r3, #172] + b .L1573 +.L1631: + add r10, r10, #1 + b .L1630 +.L1635: add r6, r6, r3 - ldr r3, [sp, #16] uxth r6, r6 - cmp r3, r6 - strh r6, [r5, #174] @ movhi - bhi .L1654 - ldr r3, [r5, #3172] - cbz r3, .L1655 + strh r6, [r4, #174] @ movhi + cmp fp, r6 + bhi .L1637 + ldr r3, [r4, #3168] + cbz r3, .L1638 bl Ftl_gc_temp_data_write_back - cbz r0, .L1655 + cbz r0, .L1638 movs r3, #0 - ldrh r0, [r5, #3664] - str r3, [r5, #3276] - b .L1585 -.L1655: - ldrh r6, [r5, #3666] - cbnz r6, .L1656 - ldrh r2, [r5, #172] - ldr r3, [r5, #72] + str r3, [r4, #3272] + b .L1686 +.L1638: + ldrh r6, [r4, #3662] + cbnz r6, .L1639 + ldrh r2, [r4, #172] + ldr r3, [r4, #72] ldrh r3, [r3, r2, lsl #1] - cbz r3, .L1656 -.L1657: - ldr r3, [r5, #2556] + cbz r3, .L1639 +.L1640: + ldr r3, [r4, #2552] cmp r6, r3 - bcs .L1662 - movs r2, #0 - add r1, sp, #40 - mov r0, r6 - bl log2phys - ldr r0, [sp, #40] - adds r3, r0, #1 - beq .L1658 - ubfx r0, r0, #10, #16 - bl P2V_block_in_plane - ldrh r3, [r5, #172] - cmp r3, r0 - bne .L1658 -.L1662: - ldr r3, [r5, #2556] - cmp r6, r3 - bcc .L1656 - ldrh r2, [r5, #172] + bcc .L1643 +.L1645: + ldrh r2, [r4, #172] movs r1, #0 - ldr r3, [r5, #72] + ldr r3, [r4, #72] strh r1, [r3, r2, lsl #1] @ movhi - ldrh r0, [r5, #172] + ldrh r0, [r4, #172] bl update_vpc_list bl l2p_flush bl FtlVpcTblFlush -.L1656: +.L1639: movw r3, #65535 - strh r3, [r5, #172] @ movhi -.L1654: + strh r3, [r4, #172] @ movhi +.L1637: movs r3, #0 - str r3, [r5, #3276] - ldrh r3, [r5, #224] + str r3, [r4, #3272] + ldrh r3, [r4, #224] cmp r3, #2 - bhi .L1663 - ldrh r6, [r5, #302] - b .L1664 -.L1658: - adds r6, r6, #1 - b .L1657 -.L1663: - ldrh r0, [r5, #3664] - cmp r0, #0 - bne .L1585 - adds r0, r3, #1 - b .L1585 -.L1669: - movs r0, #0 - b .L1585 -.L1591: - cmp r9, #0 - beq .L1666 -.L1601: - ldrh r2, [r4, #124] - movw r3, #65535 - cmp r2, r3 - bne .L1678 -.L1667: - ldrh r3, [r4, #222] - movw r2, #65535 - cmp r3, r2 - bne .L1678 - cmp r7, r3 - bne .L1678 + bhi .L1646 + ldrh r6, [r4, #302] + b .L1647 +.L1643: + add r1, sp, #32 + mov r0, r6 + movs r2, #0 + bl log2phys + ldr r0, [sp, #32] + adds r3, r0, #1 + beq .L1641 + ubfx r0, r0, #10, #16 + bl P2V_block_in_plane ldrh r3, [r4, #172] - cmp r3, r7 - beq .L1613 -.L1618: - movw r7, #65535 -.L1678: + cmp r3, r0 + beq .L1642 +.L1641: + adds r6, r6, #1 + b .L1640 +.L1642: + ldr r3, [r4, #2552] + cmp r6, r3 + bcc .L1639 + b .L1645 +.L1646: + ldrh r0, [r4, #3660] + cmp r0, #0 + bne .L1573 + adds r0, r3, #1 + b .L1573 +.L1651: + movs r0, #0 + b .L1573 +.L1579: + ldr r3, [sp, #16] + cmp r3, #0 + beq .L1649 + movw r5, #65535 +.L1587: + ldrh r3, [r4, #222] + ldrh r6, [r4, #124] + ands r6, r6, r3 + movw r3, #65535 + ands r6, r6, r5 + uxth r6, r6 + cmp r6, r3 + bne .L1659 + ldrh r3, [r4, #172] + cmp r3, r6 + beq .L1597 +.L1601: + mov r5, r6 +.L1659: movs r6, #1 - b .L1612 -.L1593: - cmp r9, #0 - beq .L1666 - movw r7, #65535 - b .L1667 -.L1720: + b .L1596 +.L1609: + ldr r0, .L1689+8 + bl make_superblock + ldrh r2, [r4, #172] + ldr r3, [r4, #72] + strh r7, [r4, #174] @ movhi + strb r7, [r4, #178] + strh r7, [r4, #3662] @ movhi + ldrh r3, [r3, r2, lsl #1] + strh r3, [r4, #3664] @ movhi + b .L1604 +.L1690: .align 2 -.L1719: +.L1689: .word .LANCHOR1+568 .word .LC8 .word .LANCHOR0+172 - .word .LANCHOR0+186 + .word .LANCHOR0+188 .word .LANCHOR0 -.L1592: - cmp r9, #0 - bne .L1618 - b .L1666 -.L1668: - add sp, sp, #52 +.L1650: + add sp, sp, #44 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} .fnend @@ -11637,118 +11886,146 @@ FtlRead: @ frame_needed = 0, uses_anonymous_args = 0 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - mov r10, r3 - ldr r3, .L1757 - cmp r0, #16 + mov r8, r3 + mov r5, r1 .pad #60 sub sp, sp, #60 - mov r6, r1 + cmp r0, #16 + mov r3, sp + bic r3, r3, #8160 + bic r3, r3, #31 str r2, [sp, #4] - ldr r3, [r3] - str r3, [sp, #52] - bne .L1722 - mov r2, r10 - ldr r1, [sp, #4] - add r0, r6, #256 - bl FtlVendorPartRead - mov r5, r0 -.L1721: - ldr r3, .L1757 - mov r0, r5 + ldr r2, [r3, #24] + str r2, [sp, #52] + bne .L1692 ldr r2, [sp, #52] - ldr r3, [r3] + ldr r3, [r3, #24] cmp r2, r3 - beq .L1743 + beq .L1693 +.L1730: bl __stack_chk_fail -.L1722: - ldr r4, .L1757+4 +.L1693: + ldr r1, [sp, #4] + mov r2, r8 + add r0, r5, #256 + add sp, sp, #60 + @ sp needed + pop {r4, r5, r6, r7, r8, r9, r10, fp, lr} + b FtlVendorPartRead +.L1692: + ldr r4, .L1731 ldr r3, [r4, #340] - cmp r1, r3 - bcs .L1746 + cmp r3, r1 + bls .L1718 ldr r2, [sp, #4] - cmp r2, r3 - bhi .L1746 - adds r2, r1, r2 cmp r3, r2 - str r2, [sp, #12] - bcc .L1746 - ldr r3, .L1757+8 - ldr r5, [r3] - adds r7, r5, #1 - beq .L1721 - ldrh r5, [r4, #258] - mov r0, r6 - mov r9, #0 - mov r8, r9 - mov r1, r5 + bcc .L1718 + adds r2, r1, r2 + str r2, [sp, #8] + cmp r3, r2 + bcc .L1718 + ldr r3, .L1731+4 + ldr r6, [r3] + adds r7, r6, #1 + beq .L1691 + ldrh r6, [r4, #258] + mov r0, r5 + mov r10, #0 + mov r7, r10 + mov r1, r6 bl __aeabi_uidiv - ldr r3, [sp, #12] - mov r1, r5 + ldr r3, [sp, #8] + mov r1, r6 str r0, [sp, #16] - mov r5, r9 subs r0, r3, #1 + mov r6, r10 bl __aeabi_uidiv ldr r3, [sp, #16] ldr r2, [sp, #4] - ldr r7, [sp, #16] rsb r3, r3, #1 - str r0, [sp, #20] + ldr r9, [sp, #16] add r3, r3, r0 - str r9, [sp, #28] - str r3, [sp, #8] - ldr r3, [r4, #2588] - str r9, [sp, #24] + str r3, [sp, #12] + ldr r3, [r4, #2584] + str r0, [sp, #20] add r3, r3, r2 - ldr r2, [sp, #8] - str r3, [r4, #2588] - ldr r3, [r4, #2560] + ldr r2, [sp, #12] + str r3, [r4, #2584] + ldr r3, [r4, #2556] + strd r10, r10, [sp, #24] add r3, r3, r2 - str r3, [r4, #2560] -.L1724: - ldr r3, [sp, #8] - cbnz r3, .L1741 - ldr r3, .L1757+4 - ldrh r2, [r3, #3210] - cbnz r2, .L1742 + str r3, [r4, #2556] +.L1695: + ldr r3, [sp, #12] + cbnz r3, .L1713 + ldr r3, .L1731 + ldrh r2, [r3, #3206] + cbnz r2, .L1714 ldrh r3, [r3, #224] cmp r3, #31 - bhi .L1721 -.L1742: + bhi .L1691 +.L1714: movs r1, #1 movs r0, #0 bl rk_ftl_garbage_collect - b .L1721 -.L1741: - movs r2, #0 +.L1691: + mov r3, sp + ldr r2, [sp, #52] + bic r3, r3, #8160 + bic r3, r3, #31 + ldr r3, [r3, #24] + cmp r2, r3 + bne .L1730 + mov r0, r6 + add sp, sp, #60 + @ sp needed + pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} +.L1713: add r1, sp, #48 - mov r0, r7 - bl log2phys - ldr r2, [sp, #48] - adds r0, r2, #1 - bne .L1725 - mov fp, #0 -.L1726: - ldrh r0, [r4, #258] - cmp fp, r0 - bcc .L1728 -.L1729: - ldr r3, [sp, #8] - adds r7, r7, #1 - subs r3, r3, #1 - str r3, [sp, #8] - beq .L1733 - ldrh r3, [r4, #232] - cmp r8, r3, lsl #2 - bne .L1724 -.L1733: - cmp r8, #0 - beq .L1724 + mov r0, r9 + movs r2, #0 + bl log2phys + ldr r3, [sp, #48] + adds r0, r3, #1 + bne .L1728 + mov fp, #0 + b .L1696 +.L1699: + mla r0, r9, r0, fp + cmp r5, r0 + bhi .L1698 + ldr r3, [sp, #8] + cmp r3, r0 + bls .L1698 + subs r0, r0, r5 + mov r2, #512 + movs r1, #0 + add r0, r8, r0, lsl #9 + bl ftl_memset +.L1698: + add fp, fp, #1 +.L1696: + ldrh r0, [r4, #258] + cmp r0, fp + bhi .L1699 +.L1700: + ldr r3, [sp, #12] + add r9, r9, #1 + subs r3, r3, #1 + str r3, [sp, #12] + beq .L1705 + ldrh r3, [r4, #232] + cmp r7, r3, lsl #2 + bne .L1695 +.L1705: + cmp r7, #0 + beq .L1695 + ldr r0, [r4, #3288] + mov r1, r7 movs r2, #0 - mov r1, r8 - ldr r0, [r4, #3292] mov fp, #0 bl FlashReadPages - lsl r3, r9, #9 + lsl r3, r10, #9 str r3, [sp, #40] ldr r3, [sp, #24] lsls r3, r3, #9 @@ -11756,156 +12033,130 @@ FtlRead: ldr r3, [sp, #28] lsls r3, r3, #9 str r3, [sp, #36] -.L1740: +.L1712: movs r3, #20 - ldr r2, [r4, #3292] - mul r3, r3, fp + ldr r2, [r4, #3288] ldr r0, [sp, #16] + mul r3, r3, fp add r2, r2, r3 ldr r1, [r2, #16] - cmp r0, r1 - bne .L1735 + cmp r1, r0 + bne .L1707 ldr r1, [r2, #8] - ldr r2, [r4, #3316] + ldr r2, [r4, #3312] cmp r1, r2 - bne .L1736 + bne .L1708 str r3, [sp, #44] - mov r0, r10 - ldr r3, [sp, #32] - ldr r2, [sp, #36] + mov r0, r8 + ldrd r3, r2, [sp, #32] add r1, r1, r3 -.L1756: +.L1729: bl ftl_memcpy ldr r3, [sp, #44] -.L1736: - ldr ip, [r4, #3292] +.L1708: + ldr ip, [r4, #3288] add r2, ip, r3 - ldr r0, [r2, #12] - ldr r1, [r2, #16] + ldrd r0, r1, [r2, #12] ldr r0, [r0, #8] cmp r1, r0 ittt ne - ldrne r1, [r4, #2716] + ldrne r1, [r4, #2712] addne r1, r1, #1 - strne r1, [r4, #2716] + strne r1, [r4, #2712] ldr r0, [ip, r3] adds r1, r0, #1 itttt eq - ldreq r1, [r4, #2716] - moveq r5, r0 + moveq r6, r0 + ldreq r1, [r4, #2712] addeq r1, r1, #1 - streq r1, [r4, #2716] + streq r1, [r4, #2712] ldr r3, [ip, r3] cmp r3, #256 - bne .L1739 + bne .L1711 ldr r0, [r2, #4] ubfx r0, r0, #10, #16 bl P2V_block_in_plane bl FtlGcRefreshBlock -.L1739: +.L1711: add fp, fp, #1 - cmp r8, fp - bne .L1740 - mov r8, #0 - b .L1724 + cmp r7, fp + bne .L1712 + movs r7, #0 + b .L1695 .L1728: - mla r0, r0, r7, fp - cmp r6, r0 - bhi .L1727 - ldr r3, [sp, #12] - cmp r3, r0 - bls .L1727 - subs r0, r0, r6 - mov r2, #512 - movs r1, #0 - add r0, r10, r0, lsl #9 - bl ftl_memset -.L1727: - add fp, fp, #1 - b .L1726 -.L1725: - ldr r3, [r4, #3292] - movs r1, #20 - ldrh fp, [r4, #258] - mla r3, r1, r8, r3 - str r2, [r3, #4] - ldr r2, [sp, #16] - cmp r7, r2 - bne .L1730 - ldr r2, [r4, #3316] - mov r1, fp - mov r0, r6 - str r3, [sp, #32] - str r2, [r3, #8] + ldr r2, [r4, #3288] + mov fp, #20 + mla fp, fp, r7, r2 + str r3, [fp, #4] + ldr r3, [sp, #16] + cmp r9, r3 + ldrh r3, [r4, #258] + bne .L1701 + ldr r2, [r4, #3312] + mov r1, r3 + str r2, [fp, #8] + mov r0, r5 + str r3, [sp, #28] bl __aeabi_uidivmod - sub r2, fp, r1 + ldr r3, [sp, #28] str r1, [sp, #24] + subs r2, r3, r1 ldr r1, [sp, #4] - mov r3, r2 cmp r2, r1 it cs - movcs r3, r1 - cmp r3, fp - str r3, [sp, #28] - ldr r3, [sp, #32] - bne .L1731 - str r10, [r3, #8] -.L1731: - ldrh r2, [r4, #312] - ldr r1, [r4, #3340] - str r7, [r3, #16] - mul r2, r8, r2 - add r8, r8, #1 - bic r2, r2, #3 - add r2, r2, r1 - str r2, [r3, #12] - b .L1729 -.L1730: - ldr r2, [sp, #20] - cmp r7, r2 - bne .L1732 - ldr r2, [r4, #3320] - ldr r1, [sp, #12] - str r2, [r3, #8] - mul r2, fp, r7 - sub r9, r1, r2 - cmp fp, r9 - bne .L1731 -.L1755: - subs r2, r2, r6 - add r2, r10, r2, lsl #9 - str r2, [r3, #8] - b .L1731 -.L1732: - mul r2, r7, fp - b .L1755 -.L1735: + movcs r2, r1 + str r2, [sp, #28] + cmp r3, r2 + bne .L1702 + str r8, [fp, #8] +.L1702: + ldrh r3, [r4, #312] + ldr r2, [r4, #3336] + muls r3, r7, r3 + adds r7, r7, #1 + bic r3, r3, #3 + add r3, r3, r2 + strd r3, r9, [fp, #12] + b .L1700 +.L1701: + ldr r1, [sp, #20] + mul r2, r3, r9 + cmp r9, r1 + bne .L1703 + ldr r1, [sp, #8] + sub r10, r1, r2 + cmp r10, r3 + beq .L1703 + ldr r3, [r4, #3316] + str r3, [fp, #8] + b .L1702 +.L1703: + subs r2, r2, r5 + add r2, r8, r2, lsl #9 + str r2, [fp, #8] + b .L1702 +.L1707: ldr r0, [sp, #20] - cmp r0, r1 - bne .L1736 + cmp r1, r0 + bne .L1708 ldr r1, [r2, #8] - ldr r2, [r4, #3320] + ldr r2, [r4, #3316] cmp r1, r2 - bne .L1736 - str r3, [sp, #44] + bne .L1708 ldrh r0, [r4, #258] + str r3, [sp, #44] ldr r3, [sp, #20] ldr r2, [sp, #40] muls r0, r3, r0 - subs r0, r0, r6 - add r0, r10, r0, lsl #9 - b .L1756 -.L1746: - mov r5, #-1 - b .L1721 -.L1743: - add sp, sp, #60 - @ sp needed - pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1758: + subs r0, r0, r5 + add r0, r8, r0, lsl #9 + b .L1729 +.L1718: + mov r6, #-1 + b .L1691 +.L1732: .align 2 -.L1757: - .word __stack_chk_guard +.L1731: .word .LANCHOR0 .word .LANCHOR2 .fnend @@ -11929,6 +12180,12 @@ sftl_read: b FtlRead .fnend .size sftl_read, .-sftl_read + .section .rodata.str1.1 +.LC125: + .ascii "FtlWrite: ecc error:%x %x %x\012\000" +.LC126: + .ascii "FtlWrite: lpa error:%x %x\012\000" + .text .align 1 .global FtlWrite .syntax unified @@ -11942,136 +12199,145 @@ FtlWrite: @ 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} + cmp r0, #16 + mov r8, r1 .pad #76 sub sp, sp, #76 - str r3, [sp, #12] - cmp r0, #16 - mov r10, r1 - ldr r3, .L1815 - str r2, [sp, #8] - ldr r3, [r3] - str r3, [sp, #68] - bne .L1761 - ldr r2, [sp, #12] - add r0, r10, #256 - ldr r1, [sp, #8] - bl FtlVendorPartWrite -.L1760: - ldr r3, .L1815 + strd r2, r3, [sp, #4] + mov r3, sp + bic r3, r3, #8160 + bic r3, r3, #31 + ldr r2, [r3, #24] + str r2, [sp, #68] + bne .L1735 ldr r2, [sp, #68] - ldr r3, [r3] + ldr r3, [r3, #24] cmp r2, r3 - beq .L1798 + beq .L1736 +.L1790: bl __stack_chk_fail -.L1761: - ldr r5, .L1815+4 +.L1736: + ldrd r1, r2, [sp, #4] + add r0, r8, #256 + add sp, sp, #76 + @ sp needed + pop {r4, r5, r6, r7, r8, r9, r10, fp, lr} + b FtlVendorPartWrite +.L1735: + ldr r5, .L1791 ldr r3, [r5, #340] - cmp r1, r3 - bcs .L1801 - ldr r2, [sp, #8] - cmp r2, r3 - bhi .L1801 + cmp r3, r1 + bls .L1777 + ldr r2, [sp, #4] + cmp r3, r2 + bcc .L1777 adds r6, r1, r2 cmp r3, r6 - bcc .L1801 - ldr r4, .L1815+8 + bcc .L1777 + ldr r4, .L1791+4 ldr r0, [r4] adds r7, r0, #1 - beq .L1760 + beq .L1734 ldrh r7, [r5, #258] mov r3, #2048 - str r3, [r5, #3672] - mov r0, r10 + mov r0, r8 + str r3, [r5, #3668] mov r1, r7 bl __aeabi_uidiv mov r1, r7 - str r0, [sp, #4] + str r0, [sp] subs r0, r6, #1 bl __aeabi_uidiv - ldr r2, [sp, #4] - str r0, [sp, #20] - subs r3, r0, r2 - ldr r2, [sp, #8] - str r3, [sp, #24] - adds r3, r3, #1 - str r3, [sp] - ldr r3, [r5, #2584] - add r3, r3, r2 ldr r2, [sp] - str r3, [r5, #2584] - ldr r3, [r5, #2568] + str r0, [sp, #24] + subs r3, r0, r2 + ldr r2, [sp, #4] + add fp, r3, #1 + str r3, [sp, #20] + ldr r3, [r5, #2580] add r3, r3, r2 - str r3, [r5, #2568] + str r3, [r5, #2580] + ldr r3, [r5, #2564] + add r3, r3, fp + str r3, [r5, #2564] ldr r3, [r4, #8] - cbz r3, .L1803 + cbz r3, .L1779 ldrh r2, [r5, #28] add r3, r5, #24 adds r5, r5, #76 cmp r2, #0 it ne movne r5, r3 -.L1763: - ldr r7, [sp, #4] - ldr r4, .L1815+4 -.L1764: - ldr r3, [sp] - cbnz r3, .L1793 - mov r0, r3 - ldr r1, [sp, #24] +.L1738: + ldr r7, [sp] + ldr r4, .L1791 +.L1739: + cmp fp, #0 + bne .L1770 + ldr r1, [sp, #20] + mov r0, fp bl rk_ftl_garbage_collect ldrh r3, [r4, #224] cmp r3, #5 - bls .L1794 -.L1796: + bls .L1782 +.L1773: movs r0, #0 - b .L1760 -.L1803: +.L1734: + mov r3, sp + ldr r2, [sp, #68] + bic r3, r3, #8160 + bic r3, r3, #31 + ldr r3, [r3, #24] + cmp r2, r3 + bne .L1790 + add sp, sp, #76 + @ sp needed + pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} +.L1779: adds r5, r5, #24 - b .L1763 -.L1793: + b .L1738 +.L1770: ldrb r2, [r5, #6] @ zero_extendqisi2 ldrh r3, [r4, #232] cmp r2, r3 - bcc .L1765 + bcc .L1740 + ldr r1, .L1791+8 movw r2, #1041 - ldr r1, .L1815+12 - ldr r0, .L1815+16 + ldr r0, .L1791+12 bl sftl_printk -.L1765: - ldrh r2, [r5, #4] - cbnz r2, .L1766 - ldr r3, .L1815+20 - ldr r6, .L1815+8 - cmp r5, r3 - bne .L1767 - ldrh r8, [r4, #80] - cmp r8, #0 - bne .L1768 +.L1740: + ldrh r3, [r5, #4] + cbnz r3, .L1741 + ldr r2, .L1791+16 + ldr r6, .L1791+4 + cmp r5, r2 + bne .L1742 + ldrh r9, [r4, #80] + cmp r9, #0 + bne .L1743 add r0, r5, #52 bl allocate_new_data_superblock - str r8, [r6, #8] -.L1768: - ldr r5, .L1815+20 - ldr r0, .L1815+20 + str r9, [r6, #8] +.L1743: + ldr r0, .L1791+16 bl allocate_new_data_superblock - ldr r2, [r6, #8] - add r3, r5, #52 - cmp r2, #0 - it ne - movne r5, r3 -.L1769: + ldr r3, [r6, #8] + cmp r3, #0 + bne .L1781 +.L1745: + ldr r5, .L1791+16 +.L1744: ldrh r3, [r5, #4] - cbnz r3, .L1766 + cbnz r3, .L1741 mov r0, r5 bl allocate_new_data_superblock -.L1766: - ldrh r2, [r5, #4] - ldr r3, [sp] - cmp r2, r3 +.L1741: + ldrh r3, [r5, #4] + ldrb r2, [r5, #7] @ zero_extendqisi2 + cmp r3, fp it cs - movcs r2, r3 - ldrb r3, [r5, #7] @ zero_extendqisi2 - lsls r3, r3, #2 + movcs r3, fp + lsls r2, r2, #2 cmp r2, r3 it cs movcs r2, r3 @@ -12079,290 +12345,273 @@ FtlWrite: str r2, [sp, #36] ldrb r2, [r5, #6] @ zero_extendqisi2 cmp r2, r3 - bcc .L1770 + bcc .L1746 + ldr r1, .L1791+8 movw r2, #1074 - ldr r1, .L1815+12 - ldr r0, .L1815+16 + ldr r0, .L1791+12 bl sftl_printk -.L1770: - mov fp, #0 -.L1771: +.L1746: + mov r10, #0 +.L1747: ldr r3, [sp, #36] - cmp fp, r3 - bne .L1791 -.L1772: + cmp r3, r10 + bne .L1768 +.L1748: + ldr r0, [r4, #3296] mov r3, r5 + mov r1, r10 movs r2, #0 - mov r1, fp - ldr r0, [r4, #3300] bl FtlProgPages - ldr r3, [sp] - cmp fp, r3 - bls .L1792 + cmp fp, r10 + bcs .L1769 + ldr r1, .L1791+8 mov r2, #1152 - ldr r1, .L1815+12 - ldr r0, .L1815+16 + ldr r0, .L1791+12 bl sftl_printk -.L1792: - ldr r3, [sp] - sub r3, r3, fp - str r3, [sp] - b .L1764 -.L1767: - str r2, [r6, #8] - ldrh r2, [r4, #28] - cbnz r2, .L1806 +.L1769: + sub fp, fp, r10 + b .L1739 +.L1742: + str r3, [r6, #8] + ldrh r3, [r4, #28] + cmp r3, #0 + bne .L1745 mov r0, r5 bl allocate_new_data_superblock - b .L1769 -.L1806: - mov r5, r3 - b .L1766 -.L1791: + b .L1744 +.L1781: + ldr r5, .L1791+20 + b .L1744 +.L1768: ldrh r3, [r5, #4] cmp r3, #0 - beq .L1772 - movs r2, #0 + beq .L1748 add r1, sp, #44 + movs r2, #0 mov r0, r7 - mov r8, #20 bl log2phys mov r0, r5 - mul r8, r8, fp bl get_new_active_ppa + movs r3, #20 + mul r3, r3, r10 + str r3, [sp, #12] + ldr r2, [sp, #12] + ldr r3, [r4, #3296] + add r3, r3, r2 ldrh r2, [r4, #312] - ldr r3, [r4, #3300] - mul r1, r2, fp - add r3, r3, r8 str r0, [r3, #4] - str r7, [r3, #16] + mul r1, r10, r2 bic r1, r1, #3 str r1, [sp, #28] ldr r0, [sp, #28] - ldr r1, [r4, #3340] - add r9, r1, r0 + ldr r1, [r4, #3336] str r1, [sp, #32] - str r9, [r3, #12] + add r9, r1, r0 movs r1, #0 + strd r9, r7, [r3, #12] mov r0, r9 bl ftl_memset + ldr r3, [sp] + ldrh r6, [r4, #258] + cmp r7, r3 + beq .L1749 + ldr r2, [sp, #12] + ldr r3, [r4, #3296] + add r3, r3, r2 + ldr r2, [sp, #24] + cmp r7, r2 + bne .L1787 ldr r3, [sp, #4] - cmp r7, r3 - beq .L1773 - ldr r3, [sp, #20] - cmp r7, r3 - bne .L1811 - ldrh r2, [r4, #258] - ldr r3, [sp, #8] - smulbb r2, r2, r7 - add r6, r10, r3 + add r2, r8, r3 + smulbb r3, r7, r6 + subs r6, r2, r3 movs r3, #0 str r3, [sp, #16] - subs r6, r6, r2 uxth r6, r6 - b .L1776 -.L1773: - ldrh r6, [r4, #258] - mov r0, r10 + b .L1752 +.L1749: mov r1, r6 + mov r0, r8 bl __aeabi_uidivmod - ldr r3, [sp, #8] + ldr r3, [sp, #4] subs r6, r6, r1 str r1, [sp, #16] cmp r6, r3 it cs movcs r6, r3 -.L1776: - ldrh r3, [r4, #258] - cmp r6, r3 - ldr r3, [sp, #4] - bne .L1777 - cmp r7, r3 - ldr r3, [r4, #3300] - itte ne - mulne r6, r6, r7 - ldrne r2, [sp, #12] - ldreq r2, [sp, #12] - add r3, r3, r8 - itett ne - subne r6, r6, r10 - streq r2, [r3, #8] - addne r6, r2, r6, lsl #9 - strne r6, [r3, #8] -.L1779: +.L1752: + ldrh r2, [r4, #258] + ldr r3, [r4, #3296] + ldr r1, [sp, #12] + cmp r2, r6 + ldr r2, [sp] + add r3, r3, r1 + bne .L1753 + cmp r7, r2 + bne .L1787 + ldr r2, [sp, #8] + str r2, [r3, #8] +.L1755: ldrb r2, [r5, #6] @ zero_extendqisi2 ldrh r3, [r4, #232] cmp r2, r3 - bcc .L1788 + bcc .L1765 + ldr r1, .L1791+8 movw r2, #1143 - ldr r1, .L1815+12 - ldr r0, .L1815+16 + ldr r0, .L1791+12 bl sftl_printk -.L1788: - ldr r2, [sp, #32] +.L1765: + ldrd r1, r2, [sp, #28] movw r3, #61589 - ldr r1, [sp, #28] - add fp, fp, #1 + add r10, r10, #1 strh r3, [r2, r1] @ movhi - ldr r3, [r4, #2596] str r7, [r9, #8] adds r7, r7, #1 + ldr r3, [r4, #2592] str r3, [r9, #4] - adds r3, r3, #1 adds r2, r3, #1 - it eq + adds r3, r3, #2 + itee ne + strne r2, [r4, #2592] moveq r3, #0 - str r3, [r4, #2596] + streq r3, [r4, #2592] ldr r3, [sp, #44] str r3, [r9, #12] ldrh r3, [r5] strh r3, [r9, #2] @ movhi - b .L1771 -.L1816: + b .L1747 +.L1753: + cmp r7, r2 + ite eq + ldreq r2, [r4, #3312] + ldrne r2, [r4, #3316] + str r2, [r3, #8] + ldr r2, [sp, #44] + adds r1, r2, #1 + beq .L1758 + str r7, [sp, #64] + add r0, sp, #48 + str r2, [sp, #52] + movs r1, #1 + ldr r2, [r3, #8] + str r2, [sp, #56] + movs r2, #0 + ldr r3, [r3, #12] + str r3, [sp, #60] + bl FlashReadPages + ldr r3, [sp, #48] + adds r2, r3, #1 + bne .L1759 + ldr r2, [r4, #2712] + ldr r0, .L1791+24 + adds r2, r2, #1 + str r2, [r4, #2712] + mov r2, r7 + ldr r1, [r9, #8] + bl sftl_printk +.L1763: + ldr r3, [sp] + lsls r2, r6, #9 + cmp r7, r3 + bne .L1764 + ldr r1, [sp, #12] + ldr r3, [r4, #3296] + add r3, r3, r1 + ldr r1, [sp, #8] + ldr r0, [r3, #8] + ldr r3, [sp, #16] + add r0, r0, r3, lsl #9 +.L1789: + bl ftl_memcpy + b .L1755 +.L1792: .align 2 -.L1815: - .word __stack_chk_guard +.L1791: .word .LANCHOR0 .word .LANCHOR2 .word .LANCHOR1+591 .word .LC8 .word .LANCHOR0+24 -.L1777: - cmp r7, r3 - ldr r3, [r4, #3300] - ite eq - ldreq r2, [r4, #3316] - ldrne r2, [r4, #3320] - add r3, r3, r8 - str r2, [r3, #8] - ldr r3, [sp, #44] - adds r0, r3, #1 - beq .L1782 - str r3, [sp, #52] - movs r1, #1 - ldr r3, [r4, #3300] - add r0, sp, #48 - str r7, [sp, #64] - add r3, r3, r8 - ldr r2, [r3, #8] - ldr r3, [r3, #12] - str r2, [sp, #56] - movs r2, #0 - str r3, [sp, #60] - bl FlashReadPages - ldr r3, [sp, #48] - adds r1, r3, #1 - bne .L1783 - ldr r2, [r4, #2716] - ldr r0, .L1817 - adds r2, r2, #1 - str r2, [r4, #2716] - mov r2, r7 - ldr r1, [r9, #8] - bl sftl_printk -.L1786: - ldr r3, [sp, #4] - lsls r2, r6, #9 - cmp r7, r3 - bne .L1787 - ldr r3, [r4, #3300] - ldr r1, [sp, #12] - add r3, r3, r8 - ldr r0, [r3, #8] - ldr r3, [sp, #16] - add r0, r0, r3, lsl #9 -.L1813: - bl ftl_memcpy - b .L1779 -.L1783: + .word .LANCHOR0+76 + .word .LC125 +.L1759: ldr r3, [r9, #8] - cmp r7, r3 - beq .L1785 - ldr r3, [r4, #2716] + cmp r3, r7 + beq .L1763 + ldr r3, [r4, #2712] mov r2, r7 - ldr r0, .L1817+4 + ldr r0, .L1793 adds r3, r3, #1 - str r3, [r4, #2716] + str r3, [r4, #2712] ldr r1, [r9, #8] bl sftl_printk -.L1785: ldr r3, [r9, #8] - cmp r7, r3 - beq .L1786 + cmp r3, r7 + beq .L1763 + ldr r1, .L1793+4 mov r2, #1128 - ldr r1, .L1817+8 - ldr r0, .L1817+12 + ldr r0, .L1793+8 bl sftl_printk - b .L1786 -.L1782: - ldr r3, [r4, #3300] - movs r1, #0 + b .L1763 +.L1758: ldrh r2, [r4, #310] - add r3, r3, r8 + movs r1, #0 ldr r0, [r3, #8] bl ftl_memset - b .L1786 -.L1787: + b .L1763 +.L1764: ldrh r1, [r4, #258] ldr r0, [sp, #12] - ldr r3, [r4, #3300] + ldr r3, [r4, #3296] muls r1, r7, r1 - add r3, r3, r8 - sub r1, r1, r10 + add r3, r3, r0 + ldr r0, [sp, #8] + sub r1, r1, r8 add r1, r0, r1, lsl #9 ldr r0, [r3, #8] - b .L1813 -.L1811: - ldr r3, [r4, #3300] - ldr r2, [sp, #12] - add r8, r8, r3 - ldrh r3, [r4, #258] - muls r3, r7, r3 - sub r3, r3, r10 - add r3, r2, r3, lsl #9 - str r3, [r8, #8] - b .L1779 -.L1794: + b .L1789 +.L1787: + muls r6, r7, r6 + ldr r2, [sp, #8] + sub r6, r6, r8 + add r6, r2, r6, lsl #9 + str r6, [r3, #8] + b .L1755 +.L1782: mov r5, #256 movw r6, #65535 -.L1797: +.L1771: + ldrh r2, [r4, #222] ldrh r3, [r4, #172] + ands r3, r3, r2 cmp r3, r6 - bne .L1795 - ldrh r3, [r4, #222] - cmp r3, r6 - bne .L1795 + bne .L1772 movs r0, #0 bl List_get_gc_head_node uxth r0, r0 bl FtlGcRefreshBlock -.L1795: +.L1772: movs r1, #1 - movs r3, #128 mov r0, r1 - strh r3, [r4, #3158] @ movhi - strh r3, [r4, #3156] @ movhi + movs r3, #128 + strh r3, [r4, #3154] @ movhi + strh r3, [r4, #3152] @ movhi bl rk_ftl_garbage_collect movs r1, #1 movs r0, #0 bl rk_ftl_garbage_collect ldrh r3, [r4, #224] cmp r3, #2 - bhi .L1796 + bhi .L1773 subs r5, r5, #1 - bne .L1797 - b .L1796 -.L1801: + bne .L1771 + b .L1773 +.L1777: mov r0, #-1 - b .L1760 -.L1798: - add sp, sp, #76 - @ sp needed - pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1818: + b .L1734 +.L1794: .align 2 -.L1817: - .word .LC125 +.L1793: .word .LC126 .word .LANCHOR1+591 .word .LC8 @@ -12385,6 +12634,11 @@ sftl_gc: b rk_ftl_garbage_collect .fnend .size sftl_gc, .-sftl_gc + .section .rodata.str1.1 +.LC127: + .ascii "%s hash error this.id =%x page =%x pre_id =%x hash " + .ascii "=%x hash_r =%x\012\000" + .text .align 1 .global FtlLoadSysInfo .syntax unified @@ -12400,247 +12654,254 @@ FtlLoadSysInfo: .save {r4, r5, r6, r7, r8, r9, r10, lr} .pad #16 movs r1, #0 - ldr r4, .L1850 - ldr r3, [r4, #3304] + ldr r4, .L1824 ldrh r2, [r4, #240] + ldr r3, [r4, #3300] + str r3, [r4, #3460] ldr r0, [r4, #72] - str r3, [r4, #3464] - ldr r3, [r4, #3336] lsls r2, r2, #1 - str r3, [r4, #3468] + ldr r3, [r4, #3332] + str r3, [r4, #3464] bl ftl_memset - ldrh r0, [r4, #2628] + ldrh r0, [r4, #2624] movw r3, #65535 cmp r0, r3 - bne .L1821 -.L1832: + bne .L1797 +.L1809: mov r0, #-1 -.L1820: +.L1796: add sp, sp, #16 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, pc} -.L1821: +.L1797: movs r1, #1 - ldr r8, .L1850+20 + ldr r8, .L1824+4 bl FtlGetLastWrittenPage - ldr r9, .L1850+4 - add r7, r4, #3456 - ldrsh r6, [r4, #2628] + ldr r9, .L1824+8 + ldrsh r6, [r4, #2624] sxth r5, r0 - adds r0, r0, #1 - strh r0, [r4, #2630] @ movhi -.L1823: + addw r7, r4, #3452 + adds r3, r5, #1 + strh r3, [r4, #2626] @ movhi +.L1799: cmp r5, #0 - bge .L1829 - movw r2, #1467 - ldr r1, .L1850+4 - ldr r0, .L1850+8 + bge .L1806 + ldr r1, .L1824+8 + movw r2, #1474 + ldr r0, .L1824+12 bl sftl_printk - b .L1828 -.L1829: + b .L1805 +.L1806: orr r3, r5, r6, lsl #10 movs r2, #1 + str r3, [r4, #3456] mov r1, r2 - str r3, [r4, #3460] + ldr r3, [r4, #3300] mov r0, r7 - ldr r3, [r4, #3304] - str r3, [r4, #3464] + str r3, [r4, #3460] bl FlashReadPages - ldr r3, [r4, #3468] + ldr r3, [r4, #3464] ldr r10, [r3, #12] + ldr r3, [r4, #3452] cmp r10, #0 - beq .L1824 - ldr r3, [r4, #3456] + beq .L1800 adds r3, r3, #1 - beq .L1824 + beq .L1801 ldrh r1, [r4, #310] - ldr r0, [r4, #3464] + ldr r0, [r4, #3460] bl js_hash cmp r10, r0 - beq .L1824 - ldrh r3, [r4, #2632] + beq .L1802 + ldrh r3, [r4, #2628] mov r2, r6 - str r0, [sp, #8] + strd r10, r0, [sp, #4] mov r1, r9 - str r10, [sp, #4] str r3, [sp] mov r3, r5 - ldr r0, .L1850+12 + ldr r0, .L1824+16 bl sftl_printk - cbnz r5, .L1825 - ldrh r3, [r4, #2632] + cbnz r5, .L1803 + ldrh r3, [r4, #2628] cmp r6, r3 - beq .L1825 + beq .L1803 ldrh r5, [r4, #304] sxth r6, r3 -.L1827: +.L1801: subs r5, r5, #1 sxth r5, r5 - b .L1823 -.L1825: + b .L1799 +.L1803: mov r3, #-1 - str r3, [r4, #3456] -.L1824: - ldr r3, [r4, #3456] + str r3, [r4, #3452] + b .L1801 +.L1800: adds r3, r3, #1 - beq .L1827 - ldr r3, [r4, #3304] + beq .L1801 +.L1802: + ldr r3, [r4, #3300] ldr r3, [r3] cmp r3, r8 - bne .L1827 - ldr r3, [r4, #3336] + bne .L1801 + ldr r3, [r4, #3332] ldrh r2, [r3] movw r3, #61604 cmp r2, r3 - bne .L1827 -.L1828: + bne .L1801 +.L1805: ldrh r3, [r4, #240] ldrh r2, [r4, #310] adds r3, r3, #24 cmp r2, r3, lsl #1 - bcs .L1831 - movw r2, #1469 - ldr r1, .L1850+4 - ldr r0, .L1850+8 + bcs .L1808 + ldr r1, .L1824+8 + movw r2, #1476 + ldr r0, .L1824+12 bl sftl_printk -.L1831: +.L1808: + ldr r1, [r4, #3460] movs r2, #48 - ldr r1, [r4, #3464] - ldr r0, .L1850+16 + ldr r0, .L1824+20 bl ftl_memcpy ldrh r2, [r4, #240] - ldr r1, [r4, #3464] + ldr r1, [r4, #3460] ldr r0, [r4, #72] lsls r2, r2, #1 adds r1, r1, #48 bl ftl_memcpy ldr r2, [r4, #2468] - ldr r3, .L1850+20 + ldr r3, .L1824+4 cmp r2, r3 - bne .L1832 + bne .L1809 ldrb r2, [r4, #2478] @ zero_extendqisi2 ldrh r3, [r4, #254] ldrh r5, [r4, #2476] cmp r2, r3 - strh r5, [r4, #2634] @ movhi - bne .L1832 + strh r5, [r4, #2630] @ movhi + bne .L1809 ldrh r3, [r4, #302] ldrh r2, [r4, #258] - ldr r6, [r4, #244] ldrh r0, [r4, #358] + ldr r6, [r4, #244] muls r3, r5, r3 - str r5, [r4, #3676] - ldrh r1, [r4, #232] + add r0, r0, r5 + str r3, [r4, #2552] subs r0, r6, r0 - subs r0, r0, r5 - str r3, [r4, #2556] + ldrh r1, [r4, #232] + str r5, [r4, #3672] muls r3, r2, r3 str r3, [r4, #340] bl __aeabi_uidiv cmp r5, r6 - strh r0, [r4, #2624] @ movhi - bls .L1833 - movw r2, #1491 - ldr r1, .L1850+4 - ldr r0, .L1850+8 + strh r0, [r4, #2620] @ movhi + bls .L1810 + ldr r1, .L1824+8 + movw r2, #1498 + ldr r0, .L1824+12 bl sftl_printk -.L1833: +.L1810: ldrh r3, [r4, #2484] ldrh r1, [r4, #2482] + strh r1, [r4, #24] @ movhi lsrs r2, r3, #6 - and r3, r3, #63 - strb r3, [r4, #30] strh r2, [r4, #26] @ movhi ldrh r2, [r4, #2486] - ldrb r3, [r4, #2479] @ zero_extendqisi2 - strh r1, [r4, #24] @ movhi + and r3, r3, #63 strh r2, [r4, #76] @ movhi ldrh r2, [r4, #2488] - strb r3, [r4, #32] - movw r3, #65535 - strh r3, [r4, #172] @ movhi - movs r3, #0 - strh r3, [r4, #174] @ movhi + strb r3, [r4, #30] + ldrb r3, [r4, #2479] @ zero_extendqisi2 lsrs r0, r2, #6 and r2, r2, #63 strb r2, [r4, #82] ldrb r2, [r4, #2480] @ zero_extendqisi2 - strh r0, [r4, #78] @ movhi - strb r3, [r4, #178] strb r2, [r4, #84] ldrh r2, [r4, #2490] - strb r3, [r4, #180] - str r3, [r4, #2580] strh r2, [r4, #124] @ movhi ldrh r2, [r4, #2492] - str r3, [r4, #2568] - str r3, [r4, #2560] - str r3, [r4, #2576] + strh r0, [r4, #78] @ movhi + strb r3, [r4, #32] + movw r3, #65535 lsrs r0, r2, #6 and r2, r2, #63 strb r2, [r4, #130] ldrb r2, [r4, #2481] @ zero_extendqisi2 - str r3, [r4, #2604] - strh r0, [r4, #126] @ movhi strb r2, [r4, #132] ldr r2, [r4, #2500] - str r2, [r4, #2600] - str r3, [r4, #2616] - ldr r2, [r4, #2592] + str r3, [r4, #172] + movs r3, #0 + str r2, [r4, #2596] + strb r3, [r4, #178] + strb r3, [r4, #180] + str r3, [r4, #2576] + str r3, [r4, #2564] + str r3, [r4, #2556] str r3, [r4, #2572] + str r3, [r4, #2600] + str r3, [r4, #2612] + strh r0, [r4, #126] @ movhi + str r3, [r4, #2568] ldr r3, [r4, #2508] + ldr r2, [r4, #2588] cmp r3, r2 - ldr r2, [r4, #2596] + ldr r2, [r4, #2592] it hi - strhi r3, [r4, #2592] + strhi r3, [r4, #2588] ldr r3, [r4, #2504] cmp r3, r2 it hi - strhi r3, [r4, #2596] + strhi r3, [r4, #2592] movw r3, #65535 cmp r1, r3 - beq .L1836 - ldr r0, .L1850+24 + beq .L1813 + ldr r0, .L1824+24 bl make_superblock -.L1836: +.L1813: ldrh r2, [r4, #76] movw r3, #65535 cmp r2, r3 - beq .L1837 - ldr r0, .L1850+28 + beq .L1814 + ldr r0, .L1824+28 bl make_superblock -.L1837: +.L1814: ldrh r2, [r4, #124] movw r3, #65535 cmp r2, r3 - beq .L1838 - ldr r0, .L1850+32 + beq .L1815 + ldr r0, .L1824+32 bl make_superblock -.L1838: +.L1815: ldrh r2, [r4, #172] movw r3, #65535 cmp r2, r3 - beq .L1839 - ldr r0, .L1850+36 + beq .L1816 + ldr r0, .L1824+36 bl make_superblock -.L1839: +.L1816: movs r0, #0 - b .L1820 -.L1851: + b .L1796 +.L1825: .align 2 -.L1850: +.L1824: .word .LANCHOR0 + .word 1179929683 .word .LANCHOR1+600 .word .LC8 .word .LC127 .word .LANCHOR0+2468 - .word 1179929683 .word .LANCHOR0+24 .word .LANCHOR0+76 .word .LANCHOR0+124 .word .LANCHOR0+172 .fnend .size FtlLoadSysInfo, .-FtlLoadSysInfo + .section .rodata.str1.1 +.LC128: + .ascii "%s last blk_id =%x page =%x hash error hash =%x has" + .ascii "h_r =%x\012\000" +.LC129: + .ascii "%s scan blk_id =%x page =%x hash error hash =%x has" + .ascii "h_r =%x\012\000" + .text .align 1 .global FtlMapTblRecovery .syntax unified @@ -12650,244 +12911,254 @@ FtlLoadSysInfo: .type FtlMapTblRecovery, %function FtlMapTblRecovery: .fnstart - @ args = 0, pretend = 0, frame = 24 + @ args = 0, pretend = 0, frame = 32 @ frame_needed = 0, uses_anonymous_args = 0 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - .pad #36 - sub sp, sp, #36 - ldr r3, [r0, #24] mov r5, r0 + ldr r4, .L1865 + .pad #44 + sub sp, sp, #44 + ldr r3, [r0, #24] movs r1, #0 - ldrh r10, [r0, #6] - str r3, [sp, #8] + addw r9, r4, #3452 + movs r7, #0 + str r3, [sp, #12] + ldr r3, [r0, #12] + str r3, [sp, #24] ldr r3, [r0, #16] - ldr r4, .L1893 - ldr r9, [r0, #12] - lsl r2, r10, #2 + str r3, [sp, #32] + ldrh r3, [r0, #6] str r3, [sp, #16] ldrh r3, [r0, #8] - ldr r0, [sp, #8] - str r3, [sp, #12] - bl ftl_memset - ldr r3, [r4, #3304] - movs r2, #1 - ldr fp, [r4, #3336] - str r2, [r5, #36] - str r3, [r4, #3464] - movw r3, #65535 - str fp, [r4, #3468] - strh r3, [r5] @ movhi - strh r3, [r5, #2] @ movhi - movs r3, #0 - mov r8, r3 - str r3, [r5, #32] - str r3, [r5, #28] -.L1853: - ldr r3, [sp, #12] - sxth r6, r8 - cmp r6, r3 - bge .L1872 - ldr r3, [sp, #12] - lsls r7, r6, #1 - subs r3, r3, #1 - cmp r6, r3 - bne .L1854 - movs r1, #1 - ldrh r0, [r9, r6, lsl #1] - bl FtlGetLastWrittenPage - sxth r3, r0 - adds r0, r0, #1 - strh r8, [r5] @ movhi - add r7, r7, r9 - str r3, [sp, #12] - mov r8, #0 + str r3, [sp, #28] ldr r3, [sp, #16] - strh r0, [r5, #2] @ movhi + ldr r0, [sp, #12] + lsls r2, r3, #2 + bl ftl_memset + ldr r3, [r4, #3300] + ldr fp, [r4, #3332] + str r3, [r4, #3460] + mov r3, #-1 + str fp, [r4, #3464] + strd r7, r7, [r5, #28] + str r3, [r5] + movs r3, #1 + str r3, [r5, #36] +.L1827: + ldr r3, [sp, #28] + sxth r6, r7 + uxth r8, r7 + cmp r6, r3 + bge .L1847 + ldr r3, [sp, #24] + add r3, r3, r6, lsl #1 + str r3, [sp, #20] + ldr r3, [sp, #28] + subs r3, r3, #1 + cmp r3, r6 + bne .L1828 + ldr r3, [sp, #20] + movs r1, #1 + ldr r10, .L1865+4 + ldrh r0, [r3] + bl FtlGetLastWrittenPage + sxth r7, r0 + adds r3, r7, #1 + strh r3, [r5, #2] @ movhi + ldr r3, [sp, #32] + strh r8, [r5] @ movhi + mov r8, #0 ldr r3, [r3, r6, lsl #2] str r3, [r5, #28] -.L1855: - ldr r3, [sp, #12] +.L1829: sxth r9, r8 - adds r2, r3, #1 + adds r2, r7, #1 cmp r9, r2 - blt .L1858 -.L1872: + blt .L1833 +.L1847: mov r0, r5 bl ftl_free_no_use_map_blk ldrh r2, [r5, #2] ldrh r3, [r4, #304] cmp r2, r3 - bne .L1860 + bne .L1835 mov r0, r5 bl ftl_map_blk_alloc_new_blk -.L1860: +.L1835: mov r0, r5 bl ftl_map_blk_gc mov r0, r5 bl ftl_map_blk_gc movs r0, #0 - add sp, sp, #36 + add sp, sp, #44 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1858: - ldrh r2, [r7] - ldr r0, .L1893+4 +.L1833: + ldr r3, [sp, #20] + ldr r0, .L1865+8 + ldrh r2, [r3] orr r2, r9, r2, lsl #10 - str r2, [r4, #3460] + str r2, [r4, #3456] movs r2, #1 mov r1, r2 bl FlashReadPages - ldr r2, [r4, #3468] + ldr r2, [r4, #3464] ldr r2, [r2, #12] - str r2, [sp, #16] - cbz r2, .L1856 - ldr r1, [r4, #3456] + str r2, [sp, #24] + cbz r2, .L1830 + ldr r1, [r4, #3452] adds r1, r1, #1 - beq .L1856 + beq .L1848 ldrh r1, [r4, #310] - ldr r0, [r4, #3464] + ldr r0, [r4, #3460] bl js_hash - ldr r2, [sp, #16] + ldr r2, [sp, #24] cmp r2, r0 - beq .L1856 - str r0, [sp, #4] + beq .L1832 + strd r2, r0, [sp] mov r3, r9 - str r2, [sp] + ldr r0, .L1865+12 mov r2, r6 - ldr r1, .L1893+8 - ldr r0, .L1893+12 + mov r1, r10 bl sftl_printk mov r3, #-1 - str r3, [r4, #3456] -.L1856: - ldr r3, [r4, #3456] + str r3, [r4, #3452] +.L1848: + add r8, r8, #1 + b .L1829 +.L1830: + ldr r3, [r4, #3452] adds r3, r3, #1 - beq .L1857 + beq .L1848 +.L1832: ldrh r3, [fp, #8] - cmp r10, r3 - bls .L1857 + ldr r2, [sp, #16] + cmp r3, r2 + bcs .L1848 ldrh r1, [fp] ldrh r2, [r5, #4] cmp r1, r2 ittt eq - ldreq r2, [r4, #3460] - ldreq r1, [sp, #8] + ldreq r1, [sp, #12] + ldreq r2, [r4, #3456] streq r2, [r1, r3, lsl #2] -.L1857: - add r8, r8, #1 - b .L1855 -.L1854: - ldr r3, [r4, #3304] - ldr r0, .L1893+4 - str r3, [r4, #3464] - add r3, r9, r7 - ldrh r2, [r9, r6, lsl #1] - str r3, [sp, #20] + b .L1848 +.L1828: + ldr r3, [r4, #3300] + mov r0, r9 + str r3, [r4, #3460] + ldr r3, [sp, #24] + ldrh r2, [r3, r6, lsl #1] ldrh r3, [r4, #304] subs r3, r3, #1 orr r3, r3, r2, lsl #10 movs r2, #1 mov r1, r2 - str r3, [r4, #3460] + str r3, [r4, #3456] bl FlashReadPages - ldr r3, [r4, #3456] + ldr r3, [r4, #3452] adds r3, r3, #1 - beq .L1874 + beq .L1851 ldrh r2, [fp] ldrh r3, [r5, #4] cmp r2, r3 - bne .L1874 + bne .L1851 ldrh r2, [fp, #8] movw r3, #64245 cmp r2, r3 - beq .L1862 -.L1874: - movs r7, #0 -.L1863: - ldrh r2, [r4, #304] - sxth r3, r7 - cmp r3, r2 - bge .L1870 - ldr r2, [sp, #20] - ldr r0, .L1893+4 - str r3, [sp, #28] - ldrh r2, [r2] - orr r2, r3, r2, lsl #10 - str r2, [r4, #3460] + beq .L1852 +.L1851: + mov r8, #0 + b .L1843 +.L1839: + ldr r2, [r4, #3300] + lsls r6, r0, #3 + ldr ip, [sp, #16] + ldr r3, [r2, r0, lsl #3] + uxth r0, r3 + cmp ip, r0 + bls .L1838 + add r2, r2, r6 + mov r3, r0 + ldr r0, [sp, #12] + ldr r2, [r2, #4] + str r2, [r0, r3, lsl #2] +.L1838: + adds r1, r1, #1 +.L1837: + ldrh r3, [r4, #304] + sxth r0, r1 + subs r3, r3, #1 + cmp r0, r3 + blt .L1839 +.L1845: + adds r7, r7, #1 + b .L1827 +.L1852: + movs r1, #0 + b .L1837 +.L1844: + ldr r3, [sp, #20] + mov r0, r9 + ldrh r2, [r3] + orr r2, r10, r2, lsl #10 + str r2, [r4, #3456] movs r2, #1 mov r1, r2 bl FlashReadPages - ldr r2, [r4, #3468] + ldr r2, [r4, #3464] ldr r2, [r2, #12] - str r2, [sp, #24] - cbz r2, .L1867 - ldr r1, [r4, #3456] + str r2, [sp, #36] + cbz r2, .L1840 + ldr r1, [r4, #3452] adds r1, r1, #1 - beq .L1867 + beq .L1849 ldrh r1, [r4, #310] - ldr r0, [r4, #3464] + ldr r0, [r4, #3460] bl js_hash - ldr r2, [sp, #24] + ldr r2, [sp, #36] cmp r2, r0 - beq .L1867 - str r0, [sp, #4] - str r2, [sp] + beq .L1842 + strd r2, r0, [sp] + mov r3, r10 + ldr r1, .L1865+4 mov r2, r6 - ldr r3, [sp, #28] - ldr r1, .L1893+8 - ldr r0, .L1893+16 + ldr r0, .L1865+16 bl sftl_printk mov r3, #-1 - str r3, [r4, #3456] -.L1867: - ldr r3, [r4, #3456] + str r3, [r4, #3452] +.L1849: + add r8, r8, #1 +.L1843: + ldrh r2, [r4, #304] + sxth r10, r8 + cmp r10, r2 + blt .L1844 + b .L1845 +.L1840: + ldr r3, [r4, #3452] adds r3, r3, #1 - beq .L1868 + beq .L1849 +.L1842: ldrh r3, [fp, #8] - cmp r10, r3 - bls .L1868 + ldr r2, [sp, #16] + cmp r3, r2 + bcs .L1849 ldrh r1, [fp] ldrh r2, [r5, #4] cmp r1, r2 ittt eq - ldreq r2, [r4, #3460] - ldreq r1, [sp, #8] + ldreq r1, [sp, #12] + ldreq r2, [r4, #3456] streq r2, [r1, r3, lsl #2] -.L1868: - adds r7, r7, #1 - b .L1863 -.L1862: - movs r1, #0 - movs r0, #4 -.L1864: - ldrh r2, [r4, #304] - sxth r3, r1 - subs r2, r2, #1 - cmp r3, r2 - blt .L1866 -.L1870: - add r8, r8, #1 - b .L1853 + b .L1849 .L1866: - ldr r6, [r4, #3304] - ldr r2, [r6, r3, lsl #3] - uxth r7, r2 - cmp r10, r7 - bls .L1865 - add r3, r0, r3, lsl #3 - ldr r3, [r6, r3] - ldr r6, [sp, #8] - str r3, [r6, r7, lsl #2] -.L1865: - adds r1, r1, #1 - b .L1864 -.L1894: .align 2 -.L1893: +.L1865: .word .LANCHOR0 - .word .LANCHOR0+3456 .word .LANCHOR1+615 + .word .LANCHOR0+3452 .word .LC128 .word .LC129 .fnend @@ -12903,19 +13174,19 @@ FtlLoadVonderInfo: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r0, .L1896 + ldr r0, .L1868 push {r3, lr} .save {r3, lr} ldrh r3, [r0, #320] - strh r3, [r0, #3622] @ movhi - movw r3, #61574 - strh r3, [r0, #3616] @ movhi - ldrh r3, [r0, #344] - strh r3, [r0, #3620] @ movhi - ldrh r3, [r0, #322] strh r3, [r0, #3618] @ movhi + movw r3, #61574 + strh r3, [r0, #3612] @ movhi + ldrh r3, [r0, #344] + strh r3, [r0, #3616] @ movhi + ldrh r3, [r0, #322] + strh r3, [r0, #3614] @ movhi ldr r3, [r0, #348] - addw r0, r0, #3612 + addw r0, r0, #3608 str r3, [r0, #12] ldr r3, [r0, #-240] str r3, [r0, #16] @@ -12926,9 +13197,9 @@ FtlLoadVonderInfo: bl FtlMapTblRecovery movs r0, #0 pop {r3, pc} -.L1897: +.L1869: .align 2 -.L1896: +.L1868: .word .LANCHOR0 .fnend .size FtlLoadVonderInfo, .-FtlLoadVonderInfo @@ -12946,14 +13217,14 @@ FtlLoadMapInfo: push {r3, lr} .save {r3, lr} bl FtlL2PDataInit - ldr r0, .L1899 + ldr r0, .L1871 bl FtlMapTblRecovery movs r0, #0 pop {r3, pc} -.L1900: +.L1872: .align 2 -.L1899: - .word .LANCHOR0+3396 +.L1871: + .word .LANCHOR0+3392 .fnend .size FtlLoadMapInfo, .-FtlLoadMapInfo .align 1 @@ -12970,25 +13241,25 @@ FtlSysBlkInit: push {r4, r5, r6, lr} .save {r4, r5, r6, lr} movs r3, #0 - ldr r4, .L1917 + ldr r4, .L1889 ldrh r0, [r4, #236] - strh r3, [r4, #3476] @ movhi + strh r3, [r4, #3472] @ movhi bl FtlFreeSysBlkQueueInit bl FtlScanSysBlk - ldrh r2, [r4, #2628] + ldrh r2, [r4, #2624] movw r3, #65535 cmp r2, r3 - bne .L1902 -.L1904: + bne .L1874 +.L1876: mov r5, #-1 -.L1901: +.L1873: mov r0, r5 pop {r4, r5, r6, pc} -.L1902: +.L1874: bl FtlLoadSysInfo mov r5, r0 cmp r0, #0 - bne .L1904 + bne .L1876 bl FtlLoadMapInfo bl FtlLoadVonderInfo bl Ftl_load_ext_data @@ -12998,27 +13269,28 @@ FtlSysBlkInit: bl FtlPowerLostRecovery movs r0, #1 bl FtlUpdateVaildLpn + ldr r2, [r4, #2540] ldrh r1, [r4, #338] mov r3, r5 - ldr r2, [r4, #2540] + adds r2, r2, #4 movs r0, #12 -.L1905: +.L1877: cmp r3, r1 - bge .L1910 - mla r6, r0, r3, r2 - ldr r6, [r6, #4] + bge .L1882 + mul r6, r0, r3 + ldr r6, [r2, r6] cmp r6, #0 - bge .L1906 -.L1910: + bge .L1878 +.L1882: ldrh r2, [r4, #2496] cmp r3, r1 add r2, r2, #1 strh r2, [r4, #2496] @ movhi - bge .L1916 -.L1907: - ldr r0, .L1917+4 + bge .L1888 +.L1879: + ldr r0, .L1889+4 bl FtlSuperblockPowerLostFix - ldr r0, .L1917+8 + ldr r0, .L1889+8 bl FtlSuperblockPowerLostFix ldrh r1, [r4, #24] ldr r2, [r4, #72] @@ -13026,9 +13298,9 @@ FtlSysBlkInit: ldrh r3, [r2, r1, lsl #1] subs r3, r3, r0 strh r3, [r2, r1, lsl #1] @ movhi - ldrh r3, [r4, #302] - ldr r1, [r4, #72] ldrh r0, [r4, #76] + ldr r1, [r4, #72] + ldrh r3, [r4, #302] strh r3, [r4, #26] @ movhi movs r3, #0 strb r3, [r4, #30] @@ -13047,37 +13319,38 @@ FtlSysBlkInit: bl l2p_flush bl FtlVpcTblFlush bl FtlVpcTblFlush - b .L1911 -.L1906: + b .L1883 +.L1878: adds r3, r3, #1 - b .L1905 -.L1916: - ldrh r3, [r4, #3476] + b .L1877 +.L1888: + ldrh r3, [r4, #3472] cmp r3, #0 - bne .L1907 -.L1911: + bne .L1879 +.L1883: ldrh r0, [r4, #24] movw r3, #65535 cmp r0, r3 - beq .L1912 + beq .L1884 ldrh r3, [r4, #28] - cbnz r3, .L1912 - ldrh r3, [r4, #80] - cbnz r3, .L1912 + ldrh r2, [r4, #80] + orrs r3, r3, r2 + uxth r3, r3 + cbnz r3, .L1884 bl FtlGcRefreshBlock ldrh r0, [r4, #76] bl FtlGcRefreshBlock bl FtlVpcTblFlush - ldr r0, .L1917+4 + ldr r0, .L1889+4 bl allocate_new_data_superblock - ldr r0, .L1917+8 + ldr r0, .L1889+8 bl allocate_new_data_superblock -.L1912: +.L1884: bl FtlVpcCheckAndModify - b .L1901 -.L1918: + b .L1873 +.L1890: .align 2 -.L1917: +.L1889: .word .LANCHOR0 .word .LANCHOR0+24 .word .LANCHOR0+76 @@ -13097,142 +13370,138 @@ ftl_low_format: push {r3, r4, r5, r6, r7, r8, r9, lr} .save {r3, r4, r5, r6, r7, r8, r9, lr} movs r3, #0 - ldr r4, .L1943 + ldr r4, .L1915 ldrh r0, [r4, #236] + str r3, [r4, #2588] str r3, [r4, #2592] - str r3, [r4, #2596] - str r3, [r4, #2608] + str r3, [r4, #2604] bl FtlFreeSysBlkQueueInit bl FtlLoadBbt - cbz r0, .L1920 + cbz r0, .L1892 bl FtlMakeBbt -.L1920: - ldr r0, .L1943+4 +.L1892: + ldr r0, .L1915+4 movs r2, #0 -.L1921: +.L1893: ldrh r1, [r4, #258] uxth r3, r2 adds r2, r2, #1 cmp r3, r1, lsl #7 - blt .L1922 + blt .L1894 ldrh r6, [r4, #240] movs r5, #0 -.L1923: +.L1895: ldrh r3, [r4, #242] cmp r3, r6 - bhi .L1924 + bhi .L1896 ldrh r1, [r4, #232] subs r3, r5, #3 cmp r3, r1, lsl #1 - bge .L1925 -.L1929: + bge .L1897 +.L1901: movs r5, #0 - mov r6, r5 -.L1926: + mov r8, r5 +.L1898: ldrh r3, [r4, #240] uxth r0, r5 - adds r5, r5, #1 cmp r3, r0 - bhi .L1930 - ldrh r3, [r4, #242] + bhi .L1902 ldrh r5, [r4, #232] ldr r9, [r4, #244] - str r3, [r4, #3288] + ldrh r3, [r4, #242] mov r1, r5 mov r0, r9 + str r3, [r4, #3284] bl __aeabi_uidiv ubfx r7, r0, #5, #16 - mov r8, r0 add r3, r7, #36 - str r0, [r4, #2556] - strh r3, [r4, #2624] @ movhi + strh r3, [r4, #2620] @ movhi movs r3, #24 + mov r6, r0 + str r0, [r4, #2552] muls r3, r5, r3 - cmp r6, r3 - ble .L1931 + cmp r8, r3 + ble .L1903 mov r1, r5 - sub r0, r9, r6 + sub r0, r9, r8 bl __aeabi_uidiv - str r0, [r4, #2556] - lsrs r0, r0, #5 - adds r0, r0, #24 - strh r0, [r4, #2624] @ movhi -.L1931: + lsrs r3, r0, #5 + adds r3, r3, #24 + str r0, [r4, #2552] + strh r3, [r4, #2620] @ movhi +.L1903: ldrh r3, [r4, #294] - cbz r3, .L1933 - ldrh r2, [r4, #2624] + cbz r3, .L1905 + ldrh r2, [r4, #2620] add r2, r2, r3, lsr #1 - strh r2, [r4, #2624] @ movhi + strh r2, [r4, #2620] @ movhi mul r2, r5, r3 - cmp r6, r2 + cmp r8, r2 itttt lt + strlt r6, [r4, #2552] addlt r3, r3, #32 - strlt r8, [r4, #2556] addlt r3, r3, r7 - strhlt r3, [r4, #2624] @ movhi -.L1933: - ldrh r2, [r4, #2624] - ldr r3, [r4, #2556] - ldr r6, .L1943+8 - subs r3, r3, r2 - muls r5, r3, r5 + strhlt r3, [r4, #2620] @ movhi +.L1905: + ldrh r1, [r4, #2620] + ldr r3, [r4, #2552] + ldr r6, .L1915+8 + subs r3, r3, r1 + mul r1, r5, r3 ldrh r3, [r4, #302] - str r5, [r4, #3676] - muls r5, r3, r5 + str r1, [r4, #3672] + movw r5, #65535 + muls r1, r3, r1 ldrh r3, [r4, #258] - str r5, [r4, #2556] - muls r5, r3, r5 - str r5, [r4, #340] + str r1, [r4, #2552] + muls r1, r3, r1 + str r1, [r4, #340] bl FtlBbmTblFlush ldrh r2, [r4, #242] movs r1, #0 ldr r0, [r4, #72] lsls r2, r2, #1 bl ftl_memset - movw r2, #65535 movs r3, #0 - mov r5, r2 + str r5, [r4, #172] str r3, [r4, #2548] - strh r3, [r4, #174] @ movhi strb r3, [r4, #178] strb r3, [r4, #180] - strh r3, [r4, #26] @ movhi strb r3, [r4, #30] - strh r3, [r4, #24] @ movhi + str r3, [r4, #24] movs r3, #1 - strh r2, [r4, #172] @ movhi strb r3, [r4, #32] -.L1935: +.L1907: mov r0, r6 bl make_superblock ldrb r3, [r4, #31] @ zero_extendqisi2 ldrh r2, [r4, #24] cmp r3, #0 - bne .L1936 + bne .L1908 ldr r3, [r4, #72] strh r5, [r3, r2, lsl #1] @ movhi ldrh r3, [r4, #24] adds r3, r3, #1 strh r3, [r4, #24] @ movhi - b .L1935 -.L1922: - ldr r5, [r4, #3316] + b .L1907 +.L1894: + ldr r5, [r4, #3312] mvns r1, r3 orr r1, r3, r1, lsl #16 str r1, [r5, r3, lsl #2] - ldr r1, [r4, #3320] + ldr r1, [r4, #3316] str r0, [r1, r3, lsl #2] - b .L1921 -.L1924: + b .L1893 +.L1896: mov r0, r6 movs r1, #1 - bl FtlLowFormatEraseBlock adds r6, r6, #1 + bl FtlLowFormatEraseBlock add r5, r5, r0 - uxth r5, r5 uxth r6, r6 - b .L1923 -.L1925: + uxth r5, r5 + b .L1895 +.L1897: mov r0, r5 bl __aeabi_uidiv ldr r3, [r4, #332] @@ -13242,31 +13511,32 @@ ftl_low_format: ldrh r0, [r4, #236] bl FtlFreeSysBlkQueueInit ldrh r5, [r4, #240] -.L1927: +.L1899: ldrh r3, [r4, #242] cmp r3, r5 - bls .L1929 + bls .L1901 mov r0, r5 + adds r5, r5, #1 movs r1, #1 + uxth r5, r5 + bl FtlLowFormatEraseBlock + b .L1899 +.L1902: + movs r1, #0 adds r5, r5, #1 bl FtlLowFormatEraseBlock - uxth r5, r5 - b .L1927 -.L1930: - movs r1, #0 - bl FtlLowFormatEraseBlock - add r6, r6, r0 - uxth r6, r6 - b .L1926 -.L1936: - ldr r3, [r4, #2592] + add r8, r8, r0 + uxth r8, r8 + b .L1898 +.L1908: + ldr r3, [r4, #2588] movw r5, #65535 - ldrh r1, [r4, #28] - ldr r6, .L1943+12 str r3, [r4, #36] adds r3, r3, #1 - str r3, [r4, #2592] + str r3, [r4, #2588] ldr r3, [r4, #72] + ldrh r1, [r4, #28] + ldr r6, .L1915+12 strh r1, [r3, r2, lsl #1] @ movhi movs r3, #0 strh r3, [r4, #78] @ movhi @@ -13276,51 +13546,51 @@ ftl_low_format: strh r3, [r4, #76] @ movhi movs r3, #1 strb r3, [r4, #84] -.L1937: +.L1909: mov r0, r6 bl make_superblock ldrb r3, [r4, #83] @ zero_extendqisi2 ldrh r2, [r4, #76] - cbnz r3, .L1938 + cbnz r3, .L1910 ldr r3, [r4, #72] strh r5, [r3, r2, lsl #1] @ movhi ldrh r3, [r4, #76] adds r3, r3, #1 strh r3, [r4, #76] @ movhi - b .L1937 -.L1938: - ldr r3, [r4, #2592] + b .L1909 +.L1910: + ldr r3, [r4, #2588] movw r5, #65535 - ldrh r1, [r4, #80] str r3, [r4, #88] adds r3, r3, #1 - str r3, [r4, #2592] + str r3, [r4, #2588] ldr r3, [r4, #72] + ldrh r1, [r4, #80] strh r1, [r3, r2, lsl #1] @ movhi strh r5, [r4, #124] @ movhi bl FtlFreeSysBlkQueueOut movs r3, #0 - strh r0, [r4, #2628] @ movhi + strh r3, [r4, #2626] @ movhi + ldr r3, [r4, #3672] strh r3, [r4, #2630] @ movhi - ldr r3, [r4, #3676] - strh r5, [r4, #2632] @ movhi - strh r3, [r4, #2634] @ movhi - ldr r3, [r4, #2592] - str r3, [r4, #2636] + ldr r3, [r4, #2588] + str r3, [r4, #2632] + strh r0, [r4, #2624] @ movhi adds r3, r3, #1 - str r3, [r4, #2592] + strh r5, [r4, #2628] @ movhi + str r3, [r4, #2588] bl FtlVpcTblFlush bl FtlSysBlkInit - cbnz r0, .L1939 - ldr r3, .L1943+16 + cbnz r0, .L1911 + ldr r3, .L1915+16 movs r2, #1 str r2, [r3] -.L1939: +.L1911: movs r0, #0 pop {r3, r4, r5, r6, r7, r8, r9, pc} -.L1944: +.L1916: .align 2 -.L1943: +.L1915: .word .LANCHOR0 .word 168778952 .word .LANCHOR0+24 @@ -13342,10 +13612,10 @@ sftl_init: push {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r3, #-1 - ldr r4, .L1951 - ldr r5, .L1951+4 - ldr r1, .L1951+8 - ldr r0, .L1951+12 + ldr r5, .L1921 + ldr r4, .L1921+4 + ldr r1, .L1921+8 + ldr r0, .L1921+12 str r3, [r5] bl sftl_printk mov r0, r4 @@ -13355,33 +13625,41 @@ sftl_init: ldrh r0, [r4, #236] bl FtlFreeSysBlkQueueInit bl FtlLoadBbt - cbnz r0, .L1949 + cbnz r0, .L1918 bl FtlSysBlkInit - cbnz r0, .L1949 + cbnz r0, .L1918 movs r3, #1 str r3, [r5] ldrh r3, [r4, #224] cmp r3, #15 - bhi .L1949 + bhi .L1918 movw r4, #8129 -.L1948: +.L1919: movs r1, #1 movs r0, #0 bl rk_ftl_garbage_collect subs r4, r4, #1 - bne .L1948 -.L1949: + bne .L1919 +.L1918: movs r0, #0 pop {r3, r4, r5, pc} -.L1952: +.L1922: .align 2 -.L1951: - .word .LANCHOR0 +.L1921: .word .LANCHOR2 + .word .LANCHOR0 .word .LC0 .word .LC77 .fnend .size sftl_init, .-sftl_init + .section .rodata.str1.1 +.LC130: + .ascii "write_idblock %x %x\012\000" +.LC131: + .ascii "write_idblock fail! %x %x %x %x\012\000" +.LC132: + .ascii "%s idb buffer alloc fail\012\000" + .text .align 1 .global FtlWriteToIDB .syntax unified @@ -13393,123 +13671,111 @@ FtlWriteToIDB: .fnstart @ args = 0, pretend = 0, frame = 104 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L2020 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} add r8, r1, r0 add r9, r8, #-1 .pad #116 sub sp, sp, #116 - cmp r9, #63 + ldr r5, .L1988 + mov r3, sp mov r4, r0 - ldr r3, [r3] + bic r3, r3, #8160 mov r6, r1 + bic r3, r3, #31 mov r7, r2 - ldr r5, .L2020+4 + cmp r9, #63 + ldr r3, [r3, #24] str r3, [sp, #108] - bls .L1954 + bls .L1924 cmp r0, #576 - bcc .L1955 -.L1954: - ldr r3, [r5, #3680] - cbnz r3, .L1956 -.L2019: + bcc .L1925 +.L1924: + ldr r3, [r5, #3676] + cbnz r3, .L1926 +.L1987: movs r4, #0 - b .L1953 -.L1956: - ldr r8, [r5, #3684] - ldr r3, .L2020+8 - ldr r2, [r8] + b .L1923 +.L1926: + ldr r3, [r5, #3680] + str r3, [sp, #12] + ldr r2, [r3] + ldr r3, .L1988+4 cmp r2, r3 - bne .L1958 - ldrh r1, [r5, #10] - add r0, r8, #260096 + bne .L1928 + ldr r3, [sp, #12] movs r2, #0 + ldrh r1, [r5, #10] + add r0, r3, #260096 movw r3, #65023 -.L1962: +.L1932: ldr r4, [r0, #-4]! - cbnz r4, .L1959 - ldr r4, [r8, r2, lsl #2] + cbnz r4, .L1929 + ldr r4, [sp, #12] + subs r3, r3, #1 + ldr r4, [r4, r2, lsl #2] adds r2, r2, #1 cmp r2, #4096 - add r3, r3, #-1 + str r4, [r0, #2048] it hi movhi r2, #0 cmp r3, #4096 - str r4, [r0, #2048] - bne .L1962 - mov fp, #512 - b .L1961 -.L1959: + bne .L1932 + mov r9, #512 + b .L1931 +.L1929: adds r3, r3, #127 - lsr fp, r3, #7 -.L1961: + lsr r9, r3, #7 +.L1931: lsls r1, r1, #2 - add r0, fp, #4 - ldr r4, .L2020+4 + add r0, r9, #4 + ldr r4, .L1988 uxth r1, r1 bl __aeabi_uidiv adds r3, r0, #1 - mov r1, fp mov r2, r3 - ldr r0, .L2020+12 + ldr r0, .L1988+8 + mov r1, r9 str r3, [sp, #16] bl sftl_printk - lsl r3, fp, #7 + lsl r3, r9, #7 str r3, [sp, #32] movs r3, #0 + mov fp, r3 str r3, [sp, #20] - str r3, [sp, #12] -.L1963: +.L1933: ldr r3, [sp, #16] - ldr r2, [sp, #12] - add r3, r3, r2 + add r3, r3, fp + str r3, [sp, #24] cmp r3, #8 - str r3, [sp, #28] - bls .L1985 + bls .L1955 ldr r3, [sp, #20] - cbnz r3, .L1986 -.L1958: - mov fp, #-1 -.L1986: - ldr r5, .L2020+4 - movs r3, #0 - mov r4, fp - ldr r0, [r5, #3684] - str r3, [r5, #3680] - bl kfree - ldr r0, [r5, #3688] - bl kfree -.L1953: - ldr r3, .L2020 - mov r0, r4 - ldr r2, [sp, #108] - ldr r3, [r3] - cmp r2, r3 - beq .L1993 - bl __stack_chk_fail -.L1985: + cmp r3, #0 + bne .L1954 +.L1928: + mov r9, #-1 + b .L1954 +.L1955: + ldr r0, [r4, #3684] mov r2, #512 movs r1, #0 - ldr r0, [r4, #3688] bl memset ldrh r6, [r4, #10] - ldr r3, [sp, #12] - muls r3, r6, r3 - str r3, [sp, #24] + mul r3, r6, fp + str r3, [sp, #28] + ldr r3, [r4, #3260] + cmp r3, #0 + beq .L1964 ldr r3, [r4, #3264] cmp r3, #0 - beq .L1994 - ldr r3, [r4, #3268] - cmp r3, #0 ite eq - moveq r9, #6 - movne r9, #9 -.L1964: - ldr r7, [sp, #24] + moveq r8, #6 + movne r8, #9 +.L1934: + mul r7, r6, fp movs r5, #0 -.L1965: - ldr r3, [r4, #3252] +.L1935: + ldr r3, [r4, #3248] mov r1, r7 movs r0, #0 adds r5, r5, #1 @@ -13517,265 +13783,271 @@ FtlWriteToIDB: ldr r3, [sp, #16] add r7, r7, r6 cmp r3, r5 - bhi .L1965 - cmp r9, #9 - bne .L1996 - ldr r5, [r4, #3688] + bhi .L1935 + cmp r8, #9 + bne .L1966 + ldr r5, [r4, #3684] mov r2, #1024 movs r1, #0 mov r0, r5 bl ftl_memset - ldr r3, .L2020+16 + ldr r3, .L1988+12 movs r1, #12 - movs r2, #4 - str r1, [r5, #4] - strb r2, [r5, #17] - adds r0, r5, r1 - str r3, [r5] + strd r3, r1, [r5] movs r3, #0 - ldrh r2, [r4, #10] str r3, [r5, #12] - strb r3, [r5, #16] - strh r2, [r5, #18] @ movhi - movs r2, #16 - strb r3, [r5, #20] - strb r2, [r5, #21] - strh r3, [r5, #22] @ movhi + mov r3, #1024 + strh r3, [r5, #16] @ movhi + ldrh r3, [r4, #10] + adds r0, r5, r1 + strh r3, [r5, #18] @ movhi + mov r3, #4096 + str r3, [r5, #20] bl js_hash str r0, [r5, #8] -.L1966: +.L1936: ldr r3, [sp, #16] - mov r10, r8 + ldr r10, [sp, #12] muls r3, r6, r3 movs r6, #0 str r3, [sp, #36] -.L1967: +.L1937: ldr r3, [sp, #36] cmp r6, r3 - beq .L1974 - cmp r9, #9 - ite ne - lslne r3, r6, #2 + beq .L1944 + cmp r8, #9 + ite eq addeq r3, r6, #1 + lslne r3, r6, #2 str r3, [sp, #44] movw r3, #61424 str r3, [sp, #48] cmp r6, #0 - bne .L1970 - cmp r9, #9 - bne .L1970 - ldr r3, [r4, #3264] + bne .L1940 + cmp r8, #9 + bne .L1940 + ldr r3, [r4, #3260] movs r0, #70 blx r3 - ldr r7, [r4, #3256] + ldr r7, [r4, #3252] + ldr r1, [sp, #28] add r3, sp, #44 mov r2, r5 - ldr r1, [sp, #24] mov r0, r6 blx r7 - ldr r3, [r4, #3264] + ldr r3, [r4, #3260] mov r7, r0 ldrb r0, [r4, #22] @ zero_extendqisi2 blx r3 adds r7, r7, #1 - bne .L1971 -.L1974: + bne .L1941 +.L1944: ldrb r3, [r4, #14] @ zero_extendqisi2 - ldr r2, [sp, #12] - ldr r7, [r4, #3688] - str r3, [sp, #24] - ldrh r3, [r4, #10] - mul r9, r3, r2 - ldr r2, [r4, #3264] - cmp r2, #0 - bne .L1972 - mov r10, #6 -.L1973: - ldr r2, [sp, #16] - movs r5, #0 - muls r3, r2, r3 - str r3, [sp, #36] -.L1976: - ldr r3, [sp, #36] - cmp r5, r3 - beq .L1980 - cmp r5, #0 - bne .L1977 - cmp r10, #9 - bne .L1977 - ldr r3, [r4, #3264] + ldrh r10, [r4, #10] + str r3, [sp, #28] + ldr r3, [r4, #3260] + ldr r5, [r4, #3684] + mul r7, r10, fp + cmp r3, #0 + bne .L1942 + mov r8, #6 +.L1943: + ldr r3, [sp, #16] + movs r6, #0 + mul r10, r10, r3 +.L1946: + cmp r6, r10 + beq .L1950 + cmp r6, #0 + bne .L1947 + cmp r8, #9 + bne .L1947 + ldr r3, [r4, #3260] movs r0, #70 blx r3 - ldr r3, [r4, #3268] + ldr r3, [r4, #3264] movs r0, #2 blx r3 - mov r2, r7 - mov r1, r9 + mov r2, r5 + ldr ip, [r4, #3256] + mov r1, r7 add r3, sp, #44 - mov r0, r5 - ldr r6, [r4, #3260] - blx r6 - ldr r3, [r4, #3268] - ldr r0, [sp, #24] - blx r3 + mov r0, r6 + blx ip ldr r3, [r4, #3264] + ldr r0, [sp, #28] + blx r3 + ldr r3, [r4, #3260] ldrb r0, [r4, #22] @ zero_extendqisi2 blx r3 - ldr r3, [r7] - ldr r2, .L2020+16 + ldr r3, [r5] + ldr r2, .L1988+12 cmp r3, r2 - beq .L1978 -.L1980: - ldr r0, [r4, #3688] - mov r1, r8 + beq .L1948 +.L1950: + ldr r0, [r4, #3684] movs r5, #0 + ldr r1, [sp, #12] mov ip, r0 -.L1979: +.L1949: mov r6, ip mov r7, r1 - ldr r2, [r6] add ip, ip, #4 - ldr r3, [r7] adds r1, r1, #4 + ldr r2, [r6] + ldr r3, [r7] cmp r2, r3 - beq .L1982 + beq .L1952 mov r2, #512 movs r1, #0 bl memset str r5, [sp] ldr r3, [r7] + mov r1, fp + ldr r0, .L1988+16 ldr r2, [r6] - ldr r1, [sp, #12] - ldr r0, .L2020+20 bl sftl_printk ldrh r1, [r4, #10] + ldr r3, [r4, #3248] movs r0, #0 - ldr r2, [sp, #12] - ldr r3, [r4, #3252] - muls r2, r1, r2 - mov r1, r2 + mul r1, fp, r1 blx r3 -.L1983: - ldr r3, [sp, #28] - str r3, [sp, #12] - b .L1963 -.L1994: - mov r9, #6 - b .L1964 -.L1996: +.L1953: + ldr fp, [sp, #24] + b .L1933 +.L1964: + mov r8, #6 + b .L1934 +.L1966: movs r5, #0 - b .L1966 -.L1970: - ldr r1, [sp, #24] + b .L1936 +.L1940: + ldr r1, [sp, #28] add r3, sp, #44 - ldr r7, [r4, #3256] + ldr r7, [r4, #3252] mov r2, r10 - movs r0, #0 add r1, r1, r6 + movs r0, #0 blx r7 adds r0, r0, #1 - beq .L1974 + beq .L1944 add r10, r10, #2048 -.L1971: +.L1941: adds r6, r6, #1 - b .L1967 -.L1972: - ldr r2, [r4, #3268] - cmp r2, #0 + b .L1937 +.L1942: + ldr r3, [r4, #3264] + cmp r3, #0 ite eq - moveq r10, #6 - movne r10, #9 - b .L1973 -.L1977: + moveq r8, #6 + movne r8, #9 + b .L1943 +.L1947: + ldr ip, [r4, #3256] add r3, sp, #44 - mov r2, r7 - add r1, r9, r5 + mov r2, r5 + adds r1, r7, r6 movs r0, #0 - ldr r6, [r4, #3260] - blx r6 + blx ip adds r0, r0, #1 - beq .L1980 - ldr r2, [sp, #48] + beq .L1950 + ldr r1, [sp, #48] movw r3, #61424 - cmp r2, r3 - bne .L1980 - add r7, r7, #2048 -.L1978: - adds r5, r5, #1 - b .L1976 -.L1982: - ldr r3, [sp, #32] - adds r5, r5, #1 - cmp r5, r3 - bne .L1979 - ldr r3, [sp, #20] - adds r3, r3, #1 - cmp r3, #5 - str r3, [sp, #20] - bls .L1983 - b .L1986 -.L2021: + cmp r1, r3 + bne .L1950 + add r5, r5, #2048 +.L1948: + adds r6, r6, #1 + b .L1946 +.L1989: .align 2 -.L2020: - .word __stack_chk_guard +.L1988: .word .LANCHOR0 .word -52655045 .word .LC130 .word 1179535694 .word .LC131 -.L1955: - cmp r0, #64 - bne .L1987 - mov r0, #262144 - bl ftl_malloc - str r0, [r5, #3684] - mov r0, #262144 - bl ftl_malloc - ldr r3, [r5, #3684] - str r0, [r5, #3688] - cbz r3, .L1988 - cbz r0, .L1988 - movs r2, #1 - movs r1, #0 - str r2, [r5, #3680] - mov r0, r3 - mov r2, #262144 - bl ftl_memset -.L1987: - ldr r3, [r5, #3680] - cmp r3, #0 - beq .L2019 - cmp r4, #63 +.L1952: + ldr r3, [sp, #32] + adds r5, r5, #1 + cmp r5, r3 + bcc .L1949 + ldr r3, [sp, #20] + adds r3, r3, #1 + str r3, [sp, #20] + cmp r3, #5 + bls .L1953 +.L1954: + ldr r5, .L1990 + movs r3, #0 + mov r4, r9 + ldr r0, [r5, #3680] + str r3, [r5, #3676] + bl kfree ldr r0, [r5, #3684] - iteet hi - ldrhi r3, .L2022 - rsbls r1, r4, #64 - subls r6, r6, r1 - movhi r1, r7 - itee ls - addls r1, r7, r1, lsl #9 - addhi r3, r3, r4 + bl kfree +.L1923: + mov r3, sp + ldr r2, [sp, #108] + bic r3, r3, #8160 + bic r3, r3, #31 + ldr r3, [r3, #24] + cmp r2, r3 + beq .L1963 + bl __stack_chk_fail +.L1925: + cmp r0, #64 + bne .L1956 + mov r0, #262144 + bl ftl_malloc + str r0, [r5, #3680] + mov r0, #262144 + bl ftl_malloc + mov r3, r0 + str r0, [r5, #3684] + ldr r0, [r5, #3680] + cbz r0, .L1957 + cbz r3, .L1957 + mov r2, #262144 + movs r1, #0 + movs r3, #1 + str r3, [r5, #3676] + bl ftl_memset +.L1958: + cmp r4, #63 + ldr r0, [r5, #3680] + sub r3, r4, #64 + ittte ls + rsbls r4, r4, #64 + addls r6, r6, r3 + addls r7, r7, r4, lsl #9 addhi r0, r0, r3, lsl #9 cmp r9, #576 + mov r1, r7 itt cs - rsbcs r8, r8, #576 - addcs r6, r6, r8 + subcs r6, r6, r8 + subcs r6, r6, #446 lsls r2, r6, #9 bl ftl_memcpy - b .L2019 -.L1988: - ldr r1, .L2022+4 - ldr r0, .L2022+8 - bl sftl_printk b .L1987 -.L1993: +.L1957: + ldr r1, .L1990+4 + ldr r0, .L1990+8 + bl sftl_printk +.L1956: + ldr r3, [r5, #3676] + cmp r3, #0 + bne .L1958 + b .L1987 +.L1963: + mov r0, r4 add sp, sp, #116 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2023: +.L1991: .align 2 -.L2022: - .word 8388544 +.L1990: + .word .LANCHOR0 .word .LANCHOR1+633 .word .LC132 .fnend @@ -13817,19 +14089,19 @@ rk_sftl_vendor_dev_ops_register: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L2028 - ldr r3, [r2, #3692] - cbnz r3, .L2027 - str r0, [r2, #3692] - mov r0, r3 - str r1, [r2, #3696] + ldr r3, .L1996 + mov r2, r0 + ldr r0, [r3, #3688] + cbnz r0, .L1995 + str r2, [r3, #3688] + str r1, [r3, #3692] bx lr -.L2027: +.L1995: mov r0, #-1 bx lr -.L2029: +.L1997: .align 2 -.L2028: +.L1996: .word .LANCHOR0 .fnend .size rk_sftl_vendor_dev_ops_register, .-rk_sftl_vendor_dev_ops_register @@ -13844,80 +14116,78 @@ rk_sftl_vendor_storage_init: .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} + push {r3, r4, r5, r6, r7, r8, r9, lr} + .save {r3, r4, r5, r6, r7, r8, r9, lr} mov r0, #65536 - ldr r5, .L2038 + ldr r5, .L2006 bl ftl_malloc - str r0, [r5, #3700] + str r0, [r5, #3696] cmp r0, #0 - beq .L2036 - ldr r10, .L2038+4 - mov r9, #0 - mov r7, r9 - mov r8, r9 -.L2034: - ldr r3, [r5, #3692] + beq .L2004 + ldr r9, .L2006+4 + mov r8, #0 + mov r7, r8 + mov r6, r8 +.L2002: + ldr r3, [r5, #3688] + lsls r0, r6, #7 + ldr r2, [r5, #3696] movs r1, #128 - ldr r2, [r5, #3700] - lsl r0, r8, #7 blx r3 - mov r6, r0 - cbnz r0, .L2032 - ldr r4, [r5, #3700] - ldr r3, [r4] - cmp r3, r10 - bne .L2033 - movw r3, #65532 - ldr r2, [r4, #4] - ldr r3, [r4, r3] - cmp r3, r2 - bne .L2033 - cmp r3, r7 + mov r4, r0 + cbnz r0, .L2000 + ldr r3, [r5, #3696] + ldr r2, [r3] + cmp r2, r9 + bne .L2001 + add r2, r3, #61440 + ldr r1, [r3, #4] + ldr r2, [r2, #4092] + cmp r2, r1 + bne .L2001 + cmp r2, r7 itt hi - movhi r9, r8 - movhi r7, r3 -.L2033: - add r8, r8, #1 - cmp r8, #2 - bne .L2034 - cbz r7, .L2035 - ldr r3, [r5, #3692] - mov r2, r4 + movhi r8, r6 + movhi r7, r2 +.L2001: + cbz r6, .L2005 + cbz r7, .L2003 + ldr r4, [r5, #3688] + mov r2, r3 + lsl r0, r8, #7 movs r1, #128 - lsl r0, r9, #7 - blx r3 - mov r6, r0 - cbz r0, .L2030 -.L2032: - ldr r0, [r5, #3700] - mov r6, #-1 + blx r4 + mov r4, r0 + cbz r0, .L1998 +.L2000: + ldr r0, [r5, #3696] + mov r4, #-1 bl kfree movs r3, #0 - str r3, [r5, #3700] - b .L2030 -.L2035: + str r3, [r5, #3696] + b .L1998 +.L2005: + movs r6, #1 + b .L2002 +.L2003: mov r2, #65536 mov r1, r7 - mov r0, r4 + mov r0, r3 bl memset - movs r3, #1 - movw r2, #65532 - str r3, [r4, #4] - str r10, [r4] - str r3, [r4, r2] - movw r3, #64504 - strh r7, [r4, #12] @ movhi - strh r3, [r4, #14] @ movhi -.L2030: - mov r0, r6 - pop {r4, r5, r6, r7, r8, r9, r10, pc} -.L2036: - mvn r6, #11 - b .L2030 -.L2039: + add r2, r0, #61440 + strd r9, r6, [r0] + str r6, [r2, #4092] + movw r2, #64504 + strh r2, [r0, #14] @ movhi +.L1998: + mov r0, r4 + pop {r3, r4, r5, r6, r7, r8, r9, pc} +.L2004: + mvn r4, #11 + b .L1998 +.L2007: .align 2 -.L2038: +.L2006: .word .LANCHOR0 .word 1380668996 .fnend @@ -13935,26 +14205,27 @@ rk_sftl_vendor_read: @ frame_needed = 0, uses_anonymous_args = 0 push {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} - mov r7, r0 - ldr r3, .L2046 + mov r6, r0 + ldr r3, .L2014 mov r0, r1 - ldr r5, [r3, #3700] - cbz r5, .L2045 - ldrh r6, [r5, #10] + ldr r5, [r3, #3696] + cbz r5, .L2013 + ldrh r1, [r5, #10] + add r4, r5, #16 movs r3, #0 -.L2042: - cmp r3, r6 - bcc .L2044 -.L2045: +.L2010: + cmp r1, r3 + bhi .L2012 +.L2013: mov r0, #-1 - pop {r3, r4, r5, r6, r7, pc} -.L2044: - add r1, r5, r3, lsl #3 - ldrh r4, [r1, #16] - cmp r4, r7 - bne .L2043 - ldrh r4, [r1, #20] - ldrh r1, [r1, #18] + b .L2008 +.L2012: + ldrh r7, [r4, r3, lsl #3] + cmp r7, r6 + bne .L2011 + add r3, r5, r3, lsl #3 + ldrh r4, [r3, #20] + ldrh r1, [r3, #18] cmp r4, r2 it cs movcs r4, r2 @@ -13963,13 +14234,14 @@ rk_sftl_vendor_read: add r1, r1, r5 bl memcpy mov r0, r4 +.L2008: pop {r3, r4, r5, r6, r7, pc} -.L2043: +.L2011: adds r3, r3, #1 - b .L2042 -.L2047: + b .L2010 +.L2015: .align 2 -.L2046: +.L2014: .word .LANCHOR0 .fnend .size rk_sftl_vendor_read, .-rk_sftl_vendor_read @@ -13986,51 +14258,52 @@ rk_sftl_vendor_write: @ frame_needed = 0, uses_anonymous_args = 0 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - mov r8, r2 - ldr r2, .L2067 + mov r9, r1 + ldr r5, .L2035 .pad #28 sub sp, sp, #28 - mov r3, r1 - ldr r4, [r2, #3700] - mov r9, r2 + mov r8, r2 + ldr r4, [r5, #3696] + str r0, [sp, #4] cmp r4, #0 - beq .L2063 + beq .L2031 + ldrh r3, [r4, #8] + add r7, r8, #63 ldrh r2, [r4, #10] - add r6, r8, #63 - ldrh r1, [r4, #8] - bic r6, r6, #63 - movs r7, #0 - str r1, [sp, #4] -.L2050: - cmp r7, r2 - bcc .L2058 + bic r7, r7, #63 + str r3, [sp, #8] + add r3, r4, #16 + movs r6, #0 +.L2018: + cmp r6, r2 + bcc .L2026 ldrh r1, [r4, #14] - cmp r6, r1 - bhi .L2063 - add r2, r4, r2, lsl #3 - uxth r6, r6 - strh r0, [r2, #16] @ movhi - ldrh r0, [r4, #12] - strh r8, [r2, #20] @ movhi - strh r0, [r2, #18] @ movhi - add r0, r0, r6 - subs r6, r1, r6 - strh r0, [r4, #12] @ movhi - strh r6, [r4, #14] @ movhi - mov r1, r3 - ldrh r0, [r2, #18] + cmp r1, r7 + bcc .L2031 + add r3, r4, r2, lsl #3 + ldr r2, [sp, #4] + uxth r7, r7 + strh r2, [r3, #16] @ movhi mov r2, r8 + ldrh r0, [r4, #12] + strh r0, [r3, #18] @ movhi + strh r8, [r3, #20] @ movhi + adds r3, r0, r7 add r0, r0, #1024 + subs r7, r1, r7 + strh r3, [r4, #12] @ movhi + mov r1, r9 add r0, r0, r4 + strh r7, [r4, #14] @ movhi bl memcpy ldrh r3, [r4, #10] - movw r2, #65532 + add r2, r4, #61440 adds r3, r3, #1 strh r3, [r4, #10] @ movhi ldr r3, [r4, #4] adds r3, r3, #1 str r3, [r4, #4] - str r3, [r4, r2] + str r3, [r2, #4092] ldrh r3, [r4, #8] adds r3, r3, #1 uxth r3, r3 @@ -14038,56 +14311,56 @@ rk_sftl_vendor_write: it hi movhi r3, #0 strh r3, [r4, #8] @ movhi - ldr r3, [r9, #3696] - b .L2066 -.L2058: - add r5, r4, r7, lsl #3 - ldrh r1, [r5, #16] + ldr r3, [r5, #3692] + b .L2034 +.L2026: + ldrh r1, [r3, r6, lsl #3] + ldr r0, [sp, #4] cmp r1, r0 - str r1, [sp, #8] - bne .L2051 + bne .L2019 + add r5, r4, r6, lsl #3 + add r3, r4, #1024 ldrh r1, [r5, #20] - add fp, r4, #1024 adds r1, r1, #63 bic r1, r1, #63 - cmp r8, r1 str r1, [sp, #12] - bls .L2052 + cmp r8, r1 + bls .L2020 ldrh r1, [r4, #14] - cmp r6, r1 - bhi .L2063 - ldrh r10, [r5, #18] + cmp r1, r7 + bcc .L2031 + ldrh fp, [r5, #18] subs r2, r2, #1 str r2, [sp, #16] -.L2053: +.L2021: ldr r2, [sp, #16] + uxth r10, fp adds r5, r5, #8 - cmp r7, r2 - bcc .L2054 - ldrh r2, [sp, #8] - add r7, r4, r7, lsl #3 - uxth r5, r10 - mov r1, r3 - strh r8, [r7, #20] @ movhi - uxtah r0, fp, r10 - strh r2, [r7, #16] @ movhi + cmp r2, r6 + bhi .L2022 + add r6, r4, r6, lsl #3 + ldr r2, [sp, #4] + uxtah r0, r3, fp + mov r1, r9 + strh r2, [r6, #16] @ movhi mov r2, r8 - strh r5, [r7, #18] @ movhi + strh r10, [r6, #18] @ movhi + strh r8, [r6, #20] @ movhi bl memcpy - uxth r3, r6 - ldrh r6, [r4, #14] - add r5, r5, r3 - subs r6, r6, r3 + uxth r3, r7 + ldrh r7, [r4, #14] + add r10, r10, r3 + strh r10, [r4, #12] @ movhi + subs r7, r7, r3 ldr r3, [sp, #12] - strh r5, [r4, #12] @ movhi - add r6, r6, r3 - strh r6, [r4, #14] @ movhi -.L2055: + add r7, r7, r3 + strh r7, [r4, #14] @ movhi +.L2023: + add r2, r4, #61440 ldr r3, [r4, #4] - movw r2, #65532 adds r3, r3, #1 str r3, [r4, #4] - str r3, [r4, r2] + str r3, [r2, #4092] ldrh r3, [r4, #8] adds r3, r3, #1 uxth r3, r3 @@ -14095,57 +14368,61 @@ rk_sftl_vendor_write: it hi movhi r3, #0 strh r3, [r4, #8] @ movhi - ldr r3, .L2067 - ldr r3, [r3, #3696] -.L2066: - ldr r0, [sp, #4] + ldr r3, .L2035 + ldr r3, [r3, #3692] +.L2034: + ldr r0, [sp, #8] mov r2, r4 movs r1, #128 lsls r0, r0, #7 blx r3 movs r0, #0 -.L2048: +.L2016: add sp, sp, #28 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L2054: - ldrh r9, [r5, #20] - add r0, fp, r10 +.L2022: ldrh r2, [r5, #16] - adds r7, r7, #1 - ldrh r1, [r5, #18] - strh r9, [r5, #12] @ movhi - add r9, r9, #63 - bic r9, r9, #63 + add r0, r3, fp strh r2, [r5, #8] @ movhi + adds r6, r6, #1 + ldrh r2, [r5, #20] + ldrh r1, [r5, #18] + strh r2, [r5, #12] @ movhi + adds r2, r2, #63 strh r10, [r5, #10] @ movhi - mov r2, r9 - add r1, r1, fp + bic r10, r2, #63 + add r1, r1, r3 + mov r2, r10 str r3, [sp, #20] - add r10, r10, r9 + add fp, fp, r10 bl memcpy ldr r3, [sp, #20] - b .L2053 -.L2052: + b .L2021 +.L2020: ldrh r0, [r5, #18] mov r2, r8 - mov r1, r3 - add r0, r0, fp + mov r1, r9 + add r0, r0, r3 bl memcpy strh r8, [r5, #20] @ movhi - b .L2055 -.L2051: - adds r7, r7, #1 - b .L2050 -.L2063: + b .L2023 +.L2019: + adds r6, r6, #1 + b .L2018 +.L2031: mov r0, #-1 - b .L2048 -.L2068: + b .L2016 +.L2036: .align 2 -.L2067: +.L2035: .word .LANCHOR0 .fnend .size rk_sftl_vendor_write, .-rk_sftl_vendor_write + .section .rodata.str1.1 +.LC133: + .ascii "copy_from_user error %d %p %p\012\000" + .text .align 1 .global rk_sftl_vendor_storage_ioctl .syntax unified @@ -14157,168 +14434,118 @@ rk_sftl_vendor_storage_ioctl: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - push {r3, r4, r5, r6, r7, lr} - .save {r3, r4, r5, r6, r7, lr} + push {r4, r5, r6, lr} + .save {r4, r5, r6, lr} mov r0, #4096 mov r6, r1 - mov r5, r2 + mov r4, r2 bl ftl_malloc - mov r4, r0 + mov r5, r0 cmp r0, #0 - beq .L2085 - ldr r3, .L2093 + beq .L2048 + ldr r3, .L2055 cmp r6, r3 - beq .L2072 + beq .L2039 adds r3, r3, #1 cmp r6, r3 - beq .L2073 -.L2091: - mvn r5, #13 - b .L2071 -.L2072: - ldr r6, .L2093+4 + beq .L2040 +.L2053: + mvn r4, #13 +.L2041: + mov r0, r5 + bl kfree +.L2037: + mov r0, r4 + pop {r4, r5, r6, pc} +.L2039: + mov r1, r4 + movs r2, #8 + bl _copy_from_user + cbz r0, .L2042 + mov r2, r4 + mov r1, #256 +.L2054: + ldr r0, .L2055+4 + bl sftl_printk + b .L2053 +.L2042: + ldr r2, [r5] + ldr r3, .L2055+8 + cmp r2, r3 + beq .L2043 +.L2044: + mov r4, #-1 + b .L2041 +.L2043: + ldrh r2, [r5, #6] + add r1, r5, #8 + ldrh r0, [r5, #4] + bl rk_sftl_vendor_read + adds r3, r0, #1 + beq .L2044 mov r3, sp - ands r3, r3, r6 + strh r0, [r5, #6] @ movhi + bic r3, r3, #8160 + uxth r2, r0 + bic r3, r3, #31 + adds r2, r2, #8 ldr r3, [r3, #8] .syntax unified -@ 114 "./include/linux/uaccess.h" 1 - adds r2, r5, #8; sbcccs r2, r2, r3; movcc r3, #0 -@ 0 "" 2 - .thumb +@ 177 "./include/linux/uaccess.h" 1 .syntax unified - movs r2, #8 - cbnz r3, .L2074 - mov r1, r5 - bl arm_copy_from_user - mov r2, r0 - cmp r0, #0 - beq .L2075 -.L2074: - rsb r0, r2, #8 - movs r1, #0 - add r0, r0, r4 - bl memset - mov r2, r5 - mov r1, #256 -.L2092: - ldr r0, .L2093+8 - bl sftl_printk - b .L2091 -.L2076: - mov r3, sp - uxth r2, r0 - ands r6, r6, r3 - strh r0, [r4, #6] @ movhi - adds r2, r2, #8 - ldr r3, [r6, #8] - .syntax unified -@ 132 "./include/linux/uaccess.h" 1 - adds r1, r5, r2; sbcccs r1, r1, r3; movcc r3, #0 +adds r1, r4, r2; sbcscc r1, r1, r3; movcc r3, #0 @ 0 "" 2 .thumb .syntax unified cmp r3, #0 - bne .L2091 + bne .L2053 + mov r0, r4 + mov r1, r5 + bl arm_copy_to_user + mov r4, r0 + cmp r0, #0 + beq .L2041 + b .L2053 +.L2040: + mov r1, r4 + movs r2, #8 + bl _copy_from_user + cbz r0, .L2046 + mov r2, r4 + mov r1, #276 + b .L2054 +.L2046: + ldr r2, [r5] + ldr r3, .L2055+8 + cmp r2, r3 + bne .L2044 + ldrh r2, [r5, #6] + movw r3, #4087 + cmp r2, r3 + bhi .L2044 + adds r2, r2, #8 mov r1, r4 mov r0, r5 - bl arm_copy_to_user - cmp r0, #0 - bne .L2091 -.L2088: - mov r5, r0 - b .L2071 -.L2073: - ldr r7, .L2093+4 - mov r3, sp - ands r3, r3, r7 - ldr r3, [r3, #8] - .syntax unified -@ 114 "./include/linux/uaccess.h" 1 - adds r2, r5, #8; sbcccs r2, r2, r3; movcc r3, #0 -@ 0 "" 2 - .thumb - .syntax unified - movs r2, #8 - cbnz r3, .L2078 - mov r1, r5 - bl arm_copy_from_user - mov r2, r0 - cbz r0, .L2079 -.L2078: - rsb r0, r2, #8 - movs r1, #0 - add r0, r0, r4 - bl memset - mov r2, r5 - mov r1, #276 - b .L2092 -.L2085: - mov r5, #-1 - b .L2069 -.L2075: - ldr r2, [r4] - ldr r3, .L2093+12 - cmp r2, r3 - bne .L2080 - ldrh r2, [r4, #6] - add r1, r4, #8 - ldrh r0, [r4, #4] - bl rk_sftl_vendor_read - adds r3, r0, #1 - bne .L2076 -.L2080: - mov r5, #-1 -.L2071: - mov r0, r4 - bl kfree -.L2069: - mov r0, r5 - pop {r3, r4, r5, r6, r7, pc} -.L2079: - ldr r2, [r4] - ldr r3, .L2093+12 - cmp r2, r3 - bne .L2080 - ldrh r6, [r4, #6] - movw r3, #4087 - cmp r6, r3 - bhi .L2080 - mov r3, sp - adds r6, r6, #8 - ands r7, r7, r3 - ldr r3, [r7, #8] - .syntax unified -@ 114 "./include/linux/uaccess.h" 1 - adds r2, r5, r6; sbcccs r2, r2, r3; movcc r3, #0 -@ 0 "" 2 - .thumb - .syntax unified - mov r2, r6 - cbnz r3, .L2081 - mov r1, r5 - mov r0, r4 - bl arm_copy_from_user - mov r2, r0 - cbz r0, .L2082 -.L2081: - subs r6, r6, r2 - movs r1, #0 - adds r0, r4, r6 - bl memset - mov r2, r5 + uxth r2, r2 + bl _copy_from_user + cbz r0, .L2047 + mov r2, r4 movw r1, #283 - b .L2092 -.L2082: - ldrh r2, [r4, #6] - add r1, r4, #8 - ldrh r0, [r4, #4] + b .L2054 +.L2047: + ldrh r2, [r5, #6] + add r1, r5, #8 + ldrh r0, [r5, #4] bl rk_sftl_vendor_write - b .L2088 -.L2094: + mov r4, r0 + b .L2041 +.L2048: + mov r4, #-1 + b .L2037 +.L2056: .align 2 -.L2093: +.L2055: .word 1074034177 - .word -8192 .word .LC133 .word 1448232273 .fnend @@ -14335,14 +14562,17 @@ rk_sftl_vendor_register: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r0, .L2096 + ldr r0, .L2058 b misc_register -.L2097: +.L2059: .align 2 -.L2096: +.L2058: .word .LANCHOR2+12 .fnend .size rk_sftl_vendor_register, .-rk_sftl_vendor_register + .section .rodata.str1.1 +.LC134: + .ascii "vendor_storage\000" .global g_nand_ops .global g_nand_phy_info .global gc_ink_free_return_value @@ -14422,7 +14652,6 @@ rk_sftl_vendor_register: .global p_map_block_ver_table .global p_map_block_valid_page_count .global p_map_block_table - .global p_blk_mode_table .global p_valid_page_count_check_table .global p_valid_page_count_table .global g_totle_swl_count @@ -14493,164 +14722,164 @@ rk_sftl_vendor_register: .global c_ftl_nand_die_num .global c_ftl_nand_type .section .rodata - .align 3 + .align 2 .set .LANCHOR1,. + 0 - .type __func__.7564, %object - .size __func__.7564, 17 -__func__.7564: + .type __func__.30, %object + .size __func__.30, 17 +__func__.30: .ascii "INSERT_DATA_LIST\000" - .type __func__.7559, %object - .size __func__.7559, 17 -__func__.7559: + .type __func__.31, %object + .size __func__.31, 17 +__func__.31: .ascii "INSERT_FREE_LIST\000" - .type __func__.7595, %object - .size __func__.7595, 17 -__func__.7595: + .type __func__.29, %object + .size __func__.29, 17 +__func__.29: .ascii "List_remove_node\000" - .type __func__.7627, %object - .size __func__.7627, 22 -__func__.7627: + .type __func__.28, %object + .size __func__.28, 22 +__func__.28: .ascii "List_update_data_list\000" - .type __func__.7734, %object - .size __func__.7734, 22 -__func__.7734: + .type __func__.22, %object + .size __func__.22, 22 +__func__.22: .ascii "select_l2p_ram_region\000" - .type __func__.8057, %object - .size __func__.8057, 16 -__func__.8057: + .type __func__.14, %object + .size __func__.14, 16 +__func__.14: .ascii "make_superblock\000" - .type __func__.8233, %object - .size __func__.8233, 19 -__func__.8233: + .type __func__.8, %object + .size __func__.8, 19 +__func__.8: .ascii "get_new_active_ppa\000" - .type __func__.13957, %object - .size __func__.13957, 17 -__func__.13957: + .type __func__.1, %object + .size __func__.1, 17 +__func__.1: .ascii "FlashEraseBlocks\000" - .type __func__.7669, %object - .size __func__.7669, 26 -__func__.7669: + .type __func__.26, %object + .size __func__.26, 26 +__func__.26: .ascii "ftl_map_blk_alloc_new_blk\000" - .type __func__.7174, %object - .size __func__.7174, 11 -__func__.7174: + .type __func__.37, %object + .size __func__.37, 11 +__func__.37: .ascii "FtlMemInit\000" - .type __func__.7401, %object - .size __func__.7401, 14 -__func__.7401: + .type __func__.34, %object + .size __func__.34, 14 +__func__.34: .ascii "FtlBbt2Bitmap\000" - .type __func__.8078, %object - .size __func__.8078, 18 -__func__.8078: + .type __func__.13, %object + .size __func__.13, 18 +__func__.13: .ascii "SupperBlkListInit\000" - .type __func__.13914, %object - .size __func__.13914, 15 -__func__.13914: + .type __func__.3, %object + .size __func__.3, 15 +__func__.3: .ascii "FlashReadPages\000" - .type __func__.7846, %object - .size __func__.7846, 14 -__func__.7846: + .type __func__.19, %object + .size __func__.19, 14 +__func__.19: .ascii "FtlScanSysBlk\000" - .type __func__.7444, %object - .size __func__.7444, 11 -__func__.7444: + .type __func__.32, %object + .size __func__.32, 11 +__func__.32: .ascii "FtlLoadBbt\000" - .type __func__.13933, %object - .size __func__.13933, 15 -__func__.13933: + .type __func__.2, %object + .size __func__.2, 15 +__func__.2: .ascii "FlashProgPages\000" - .type __func__.8205, %object - .size __func__.8205, 25 -__func__.8205: + .type __func__.10, %object + .size __func__.10, 25 +__func__.10: .ascii "allocate_data_superblock\000" - .type __func__.8246, %object - .size __func__.8246, 16 -__func__.8246: + .type __func__.7, %object + .size __func__.7, 16 +__func__.7: .ascii "update_vpc_list\000" - .type __func__.8253, %object - .size __func__.8253, 20 -__func__.8253: + .type __func__.6, %object + .size __func__.6, 20 +__func__.6: .ascii "decrement_vpc_count\000" - .type __func__.7695, %object - .size __func__.7695, 31 -__func__.7695: - .ascii "Ftl_write_map_blk_to_last_page\000" - .type __func__.7709, %object - .size __func__.7709, 16 -__func__.7709: + .type __func__.23, %object + .size __func__.23, 16 +__func__.23: .ascii "FtlMapWritePage\000" - .type __func__.7636, %object - .size __func__.7636, 16 -__func__.7636: + .type __func__.27, %object + .size __func__.27, 16 +__func__.27: .ascii "load_l2p_region\000" - .type __func__.7680, %object - .size __func__.7680, 15 -__func__.7680: + .type __func__.25, %object + .size __func__.25, 15 +__func__.25: .ascii "ftl_map_blk_gc\000" - .type __func__.7751, %object - .size __func__.7751, 9 -__func__.7751: + .type __func__.24, %object + .size __func__.24, 31 +__func__.24: + .ascii "Ftl_write_map_blk_to_last_page\000" + .type __func__.21, %object + .size __func__.21, 9 +__func__.21: .ascii "log2phys\000" - .type __func__.7966, %object - .size __func__.7966, 16 -__func__.7966: + .type __func__.16, %object + .size __func__.16, 16 +__func__.16: .ascii "FtlReUsePrevPpa\000" - .type __func__.8000, %object - .size __func__.8000, 22 -__func__.8000: + .type __func__.15, %object + .size __func__.15, 22 +__func__.15: .ascii "FtlRecoverySuperblock\000" - .type __func__.8120, %object - .size __func__.8120, 14 -__func__.8120: + .type __func__.11, %object + .size __func__.11, 14 +__func__.11: .ascii "ftl_check_vpc\000" - .type __func__.7824, %object - .size __func__.7824, 15 -__func__.7824: + .type __func__.20, %object + .size __func__.20, 15 +__func__.20: .ascii "FtlVpcTblFlush\000" - .type __func__.8103, %object - .size __func__.8103, 21 -__func__.8103: + .type __func__.12, %object + .size __func__.12, 21 +__func__.12: .ascii "FtlVpcCheckAndModify\000" - .type __func__.8226, %object - .size __func__.8226, 29 -__func__.8226: + .type __func__.9, %object + .size __func__.9, 29 +__func__.9: .ascii "allocate_new_data_superblock\000" - .type __func__.7298, %object - .size __func__.7298, 13 -__func__.7298: + .type __func__.36, %object + .size __func__.36, 13 +__func__.36: .ascii "FtlProgPages\000" - .type __func__.8323, %object - .size __func__.8323, 19 -__func__.8323: + .type __func__.5, %object + .size __func__.5, 19 +__func__.5: .ascii "FtlGcFreeTempBlock\000" - .type __func__.8436, %object - .size __func__.8436, 23 -__func__.8436: + .type __func__.4, %object + .size __func__.4, 23 +__func__.4: .ascii "rk_ftl_garbage_collect\000" - .type __func__.7326, %object - .size __func__.7326, 9 -__func__.7326: + .type __func__.35, %object + .size __func__.35, 9 +__func__.35: .ascii "FtlWrite\000" - .type __func__.7898, %object - .size __func__.7898, 15 -__func__.7898: + .type __func__.18, %object + .size __func__.18, 15 +__func__.18: .ascii "FtlLoadSysInfo\000" - .type __func__.7920, %object - .size __func__.7920, 18 -__func__.7920: + .type __func__.17, %object + .size __func__.17, 18 +__func__.17: .ascii "FtlMapTblRecovery\000" - .type __func__.14076, %object - .size __func__.14076, 14 -__func__.14076: + .type __func__.0, %object + .size __func__.0, 14 +__func__.0: .ascii "FtlWriteToIDB\000" .space 1 .type rk_sftl_vendor_storage_fops, %object - .size rk_sftl_vendor_storage_fops, 160 + .size rk_sftl_vendor_storage_fops, 128 rk_sftl_vendor_storage_fops: - .space 36 + .space 40 .word rk_sftl_vendor_storage_ioctl .word rk_sftl_vendor_storage_ioctl - .space 116 + .space 80 .data .align 2 .set .LANCHOR2,. + 0 @@ -14909,10 +15138,6 @@ FtlUpdateVaildLpnCount: .type g_VaildLpn, %object .size g_VaildLpn, 4 g_VaildLpn: - .space 4 - .type p_blk_mode_table, %object - .size p_blk_mode_table, 4 -p_blk_mode_table: .space 4 .type g_MaxLpn, %object .size g_MaxLpn, 4 @@ -15306,281 +15531,5 @@ check_vpc_table: .size gp_last_act_superblock, 4 gp_last_act_superblock: .space 4 - .section .rodata.str1.1,"aMS",%progbits,1 -.LC0: - .ascii "SFTL version: 5.0.55 20200925\000" -.LC1: - .ascii "\012%s\012\000" -.LC2: - .ascii "act blk: %x %x %x %x %x %x\012\000" -.LC3: - .ascii "buf blk: %x %x %x %x %x %x\012\000" -.LC4: - .ascii "tmp blk: %x %x %x %x %x %x\012\000" -.LC5: - .ascii "gc blk: %x %x %x %x %x %x\012\000" -.LC6: - .ascii "free blk: %x %x %x\012\000" -.LC7: - .ascii "phyBlk = 0x%x die = %d block_in_die = 0x%x 0x%8x\012" - .ascii "\000" -.LC8: - .ascii "\012!!!!! error @ func:%s - line:%d\012\000" -.LC9: - .ascii "FLASH INFO:\012\000" -.LC10: - .ascii "Device Capacity: %d MB\012\000" -.LC11: - .ascii "FTL INFO:\012\000" -.LC12: - .ascii "g_MaxLpn = 0x%x\012\000" -.LC13: - .ascii "g_VaildLpn = 0x%x\012\000" -.LC14: - .ascii "read_page_count = 0x%x\012\000" -.LC15: - .ascii "discard_page_count = 0x%x\012\000" -.LC16: - .ascii "write_page_count = 0x%x\012\000" -.LC17: - .ascii "cache_write_count = 0x%x\012\000" -.LC18: - .ascii "l2p_write_count = 0x%x\012\000" -.LC19: - .ascii "gc_page_count = 0x%x\012\000" -.LC20: - .ascii "totle_write = %d MB\012\000" -.LC21: - .ascii "totle_read = %d MB\012\000" -.LC22: - .ascii "GSV = 0x%x\012\000" -.LC23: - .ascii "GDV = 0x%x\012\000" -.LC24: - .ascii "bad blk num = %d\012\000" -.LC25: - .ascii "free_superblocks = 0x%x\012\000" -.LC26: - .ascii "mlc_EC = 0x%x\012\000" -.LC27: - .ascii "slc_EC = 0x%x\012\000" -.LC28: - .ascii "avg_EC = 0x%x\012\000" -.LC29: - .ascii "sys_EC = 0x%x\012\000" -.LC30: - .ascii "max_EC = 0x%x\012\000" -.LC31: - .ascii "min_EC = 0x%x\012\000" -.LC32: - .ascii "PLT = 0x%x\012\000" -.LC33: - .ascii "POT = 0x%x\012\000" -.LC34: - .ascii "MaxSector = 0x%x\012\000" -.LC35: - .ascii "init_sys_blks_pp = 0x%x\012\000" -.LC36: - .ascii "sys_blks_pp = 0x%x\012\000" -.LC37: - .ascii "free sysblock = 0x%x\012\000" -.LC38: - .ascii "data_blks_pp = 0x%x\012\000" -.LC39: - .ascii "data_op_blks_pp = 0x%x\012\000" -.LC40: - .ascii "max_data_blks = 0x%x\012\000" -.LC41: - .ascii "Sys.id = 0x%x\012\000" -.LC42: - .ascii "Bbt.id = 0x%x\012\000" -.LC43: - .ascii "ACT.page = 0x%x\012\000" -.LC44: - .ascii "ACT.plane = 0x%x\012\000" -.LC45: - .ascii "ACT.id = 0x%x\012\000" -.LC46: - .ascii "ACT.mode = 0x%x\012\000" -.LC47: - .ascii "ACT.a_pages = 0x%x\012\000" -.LC48: - .ascii "ACT VPC = 0x%x\012\000" -.LC49: - .ascii "BUF.page = 0x%x\012\000" -.LC50: - .ascii "BUF.plane = 0x%x\012\000" -.LC51: - .ascii "BUF.id = 0x%x\012\000" -.LC52: - .ascii "BUF.mode = 0x%x\012\000" -.LC53: - .ascii "BUF.a_pages = 0x%x\012\000" -.LC54: - .ascii "BUF VPC = 0x%x\012\000" -.LC55: - .ascii "TMP.page = 0x%x\012\000" -.LC56: - .ascii "TMP.plane = 0x%x\012\000" -.LC57: - .ascii "TMP.id = 0x%x\012\000" -.LC58: - .ascii "TMP.mode = 0x%x\012\000" -.LC59: - .ascii "TMP.a_pages = 0x%x\012\000" -.LC60: - .ascii "GC.page = 0x%x\012\000" -.LC61: - .ascii "GC.plane = 0x%x\012\000" -.LC62: - .ascii "GC.id = 0x%x\012\000" -.LC63: - .ascii "GC.mode = 0x%x\012\000" -.LC64: - .ascii "GC.a_pages = 0x%x\012\000" -.LC65: - .ascii "WR_CHK = %x %x %x\012\000" -.LC66: - .ascii "Read Err Cnt = 0x%x\012\000" -.LC67: - .ascii "Prog Err Cnt = 0x%x\012\000" -.LC68: - .ascii "gc_free_blk_th= 0x%x\012\000" -.LC69: - .ascii "gc_merge_free_blk_th= 0x%x\012\000" -.LC70: - .ascii "gc_skip_write_count= 0x%x\012\000" -.LC71: - .ascii "gc_blk_index= 0x%x\012\000" -.LC72: - .ascii "free min EC= 0x%x\012\000" -.LC73: - .ascii "free max EC= 0x%x\012\000" -.LC74: - .ascii "GC__SB VPC = 0x%x\012\000" -.LC75: - .ascii "%d. [0x%x]=0x%x 0x%x 0x%x\012\000" -.LC76: - .ascii "free %d. [0x%x] 0x%x 0x%x\012\000" -.LC77: - .ascii "%s\012\000" -.LC78: - .ascii "swblk %x ,avg = %x max= %x vpc= %x,ec=%x ,max ec=%x" - .ascii "\012\000" -.LC79: - .ascii "FtlGcRefreshBlock 0x%x\012\000" -.LC80: - .ascii "FtlGcMarkBadPhyBlk %d 0x%x\012\000" -.LC81: - .ascii "%s %p + 0x%x:\000" -.LC82: - .ascii "0x%08x,\000" -.LC83: - .ascii "0x%04x,\000" -.LC84: - .ascii "0x%02x,\000" -.LC85: - .ascii "\012\000" -.LC86: - .ascii "%s: addr: %x is in id block!!!!!!!!!!\012\000" -.LC87: - .ascii "not free: w: d:\000" -.LC88: - .ascii "not free: w: s:\000" -.LC89: - .ascii "FtlFreeSysBlkQueueOut = %x, free count = %d, error\012" - .ascii "\000" -.LC90: - .ascii "FtlFreeSysBlkQueueOut = %x, free count = %d\012\000" -.LC91: - .ascii "%s error allocating memory. return -1\012\000" -.LC92: - .ascii "FlashReadPages %x %x error_ecc_bits %d\012\000" -.LC93: - .ascii "data:\000" -.LC94: - .ascii "spare:\000" -.LC95: - .ascii "prog read error: = %x\012\000" -.LC96: - .ascii "prog read REFRESH: = %x\012\000" -.LC97: - .ascii "prog read s error: = %x %x %x\012\000" -.LC98: - .ascii "prog read d error: = %x %x %x\012\000" -.LC99: - .ascii "FtlBbmTblFlush id=%x,page=%x,previd=%x cnt=%d\012\000" -.LC100: - .ascii "FtlBbmTblFlush error:%x\012\000" -.LC101: - .ascii "FtlBbmTblFlush error = %x error count = %d\012\000" -.LC102: - .ascii "FtlGcFreeBadSuperBlk 0x%x\012\000" -.LC103: - .ascii "decrement_vpc_count %x = %d\012\000" -.LC104: - .ascii "FtlMapWritePage error = %x \012\000" -.LC105: - .ascii "FtlMapWritePage error = %x error count = %d\012\000" -.LC106: - .ascii "region_id = %x phyAddr = %x\012\000" -.LC107: - .ascii "map_ppn:\000" -.LC108: - .ascii "load_l2p_region refresh = %x phyAddr = %x\012\000" -.LC109: - .ascii "data prev_ppa = %x error...................\012\000" -.LC110: - .ascii "spuer block %x vpn is 0\012 \000" -.LC111: - .ascii "...%s enter...\012\000" -.LC112: - .ascii "FtlCheckVpc2 %x = %x %x\012\000" -.LC113: - .ascii "free blk vpc error %x = %x %x\012\000" -.LC114: - .ascii "ftl_scan_all_data = %x\012\000" -.LC115: - .ascii "scan lpa = %x ppa= %x\012\000" -.LC116: - .ascii "lpa = %x,addr= %x,spare= %x %x %x %x data=%x %x\012" - .ascii "\000" -.LC117: - .ascii "FtlGcScanTempBlk Error ID %x %x!!!!!!! \012\000" -.LC118: - .ascii "FtlVendorPartRead refresh = %x phyAddr = %x\012\000" -.LC119: - .ascii "no ect\000" -.LC120: - .ascii "FtlVpcTblFlush error = %x error count = %d\012\000" -.LC121: - .ascii "FtlCheckVpc %x = %x %x\012\000" -.LC122: - .ascii "FtlProgPages error %x = %d\012\000" -.LC123: - .ascii "Ftlwrite decrement_vpc_count %x = %d\012\000" -.LC124: - .ascii "SWL %x, FSB = %x vpc= %x,ec=%x th=%x\012\000" -.LC125: - .ascii "FtlWrite: ecc error:%x %x %x\012\000" -.LC126: - .ascii "FtlWrite: lpa error:%x %x\012\000" -.LC127: - .ascii "%s hash error this.id =%x page =%x pre_id =%x hash " - .ascii "=%x hash_r =%x\012\000" -.LC128: - .ascii "%s last blk_id =%x page =%x hash error hash =%x has" - .ascii "h_r =%x\012\000" -.LC129: - .ascii "%s scan blk_id =%x page =%x hash error hash =%x has" - .ascii "h_r =%x\012\000" -.LC130: - .ascii "write_idblock %x %x\012\000" -.LC131: - .ascii "write_idblock fail! %x %x %x %x\012\000" -.LC132: - .ascii "%s idb buffer alloc fail\012\000" -.LC133: - .ascii "copy_from_user error %d %p %p\012\000" -.LC134: - .ascii "vendor_storage\000" + .ident "GCC: (GNU Toolchain for the A-profile Architecture 10.3-2021.07 (arm-10.29)) 10.3.1 20210621" + .section .note.GNU-stack,"",%progbits diff --git a/drivers/rkflash/rk_sftl_arm_v8.S b/drivers/rkflash/rk_sftl_arm_v8.S index 7e2944e55a76..6e550cfe702c 100644 --- a/drivers/rkflash/rk_sftl_arm_v8.S +++ b/drivers/rkflash/rk_sftl_arm_v8.S @@ -1,7 +1,7 @@ /* SPDX-License-Identifier: GPL-2.0 */ /* Copyright (c) 2018-2021 Rockchip Electronics Co. Ltd. - * date: 2021-06-01 + * date: 2022-08-15 */ .arch armv8-a .file "rk_sftl.c" @@ -217,7 +217,7 @@ _copy_from_user: .size _copy_from_user, .-_copy_from_user .section .rodata.str1.1 .LC1: - .string "SFTL version: 5.0.56 20210329" + .string "SFTL version: 5.0.58 20220814" .LC2: .string "\n%s\n" .LC3: @@ -637,7 +637,7 @@ FtlBbmMapBadBlock: ldrh w3, [x19, -58] udiv w2, w1, w3 msub w3, w2, w3, w1 - add x0, x19, x2, uxth 3 + add x0, x19, w2, uxth 3 ubfx x5, x3, 5, 11 lsl w4, w4, w3 ldr x0, [x0, 32] @@ -678,7 +678,7 @@ FtlBbmIsBadBlock: ldrh w1, [x3, 302] udiv w2, w0, w1 msub w1, w2, w1, w0 - add x2, x3, x2, uxth 3 + add x2, x3, w2, uxth 3 ldr x0, [x2, 392] ubfx x3, x1, 5, 11 ldr w0, [x0, x3, lsl 2] @@ -924,13 +924,13 @@ FtlFreeSysBLkSort: hint 29 // autiasp ret .L89: - add x6, x4, x2, sxtw 1 + add x6, x4, w2, sxtw 1 add w3, w3, 1 add w2, w2, 1 and w3, w3, 65535 and w2, w2, 1023 ldrh w7, [x6, 8] - add x6, x4, x1, sxtw 1 + add x6, x4, w1, sxtw 1 add w1, w1, 1 and w1, w1, 1023 strh w7, [x6, 8] @@ -1719,7 +1719,7 @@ ftl_sb_update_avl_pages: hint 29 // autiasp ret .L200: - add x4, x0, x2, sxtw 1 + add x4, x0, w2, sxtw 1 ldrh w4, [x4, 16] cmp w4, w6 beq .L199 @@ -2189,7 +2189,7 @@ FtlPrintInfo2buf: mov x0, x20 mov x1, 64 bl snprintf - add x20, x20, x0, sxtw + add x20, x20, w0, sxtw mov x0, x20 adrp x1, .LC12 add x1, x1, :lo12:.LC12 @@ -2201,56 +2201,56 @@ FtlPrintInfo2buf: adrp x2, .LC13 add x2, x2, :lo12:.LC13 bl snprintf - add x22, x20, x0, sxtw + add x22, x20, w0, sxtw ldr w3, [x19, 2620] mov x0, x22 mov x1, 64 adrp x2, .LC14 add x2, x2, :lo12:.LC14 bl snprintf - add x22, x22, x0, sxtw + add x22, x22, w0, sxtw ldr w3, [x19, 2628] mov x0, x22 mov x1, 64 adrp x2, .LC15 add x2, x2, :lo12:.LC15 bl snprintf - add x22, x22, x0, sxtw + add x22, x22, w0, sxtw ldr w3, [x19, 2632] mov x0, x22 mov x1, 64 adrp x2, .LC16 add x2, x2, :lo12:.LC16 bl snprintf - add x22, x22, x0, sxtw + add x22, x22, w0, sxtw ldr w3, [x19, 2636] mov x0, x22 mov x1, 64 adrp x2, .LC17 add x2, x2, :lo12:.LC17 bl snprintf - add x22, x22, x0, sxtw + add x22, x22, w0, sxtw ldr w3, [x19, 2640] mov x0, x22 mov x1, 64 adrp x2, .LC18 add x2, x2, :lo12:.LC18 bl snprintf - add x22, x22, x0, sxtw + add x22, x22, w0, sxtw ldr w3, [x19, 2644] mov x0, x22 mov x1, 64 adrp x2, .LC19 add x2, x2, :lo12:.LC19 bl snprintf - add x22, x22, x0, sxtw + add x22, x22, w0, sxtw ldr w3, [x19, 2648] mov x0, x22 mov x1, 64 adrp x2, .LC20 add x2, x2, :lo12:.LC20 bl snprintf - add x22, x22, x0, sxtw + add x22, x22, w0, sxtw ldr w3, [x19, 2652] mov x0, x22 mov x1, 64 @@ -2259,7 +2259,7 @@ FtlPrintInfo2buf: lsr w3, w3, 11 bl snprintf ldr w3, [x19, 2656] - add x22, x22, x0, sxtw + add x22, x22, w0, sxtw mov x0, x22 mov x1, 64 adrp x2, .LC22 @@ -2267,188 +2267,188 @@ FtlPrintInfo2buf: lsr w3, w3, 11 bl snprintf ldr w3, [x19, 2660] - add x22, x22, x0, sxtw + add x22, x22, w0, sxtw mov x0, x22 mov x1, 64 adrp x2, .LC23 add x2, x2, :lo12:.LC23 bl snprintf - add x22, x22, x0, sxtw + add x22, x22, w0, sxtw ldr w3, [x19, 2664] mov x0, x22 mov x1, 64 adrp x2, .LC24 add x2, x2, :lo12:.LC24 bl snprintf - add x22, x22, x0, sxtw + add x22, x22, w0, sxtw ldrh w3, [x19, 366] mov x0, x22 mov x1, 64 adrp x2, .LC25 add x2, x2, :lo12:.LC25 bl snprintf - add x22, x22, x0, sxtw + add x22, x22, w0, sxtw ldrh w3, [x19, 228] mov x0, x22 mov x1, 64 adrp x2, .LC26 add x2, x2, :lo12:.LC26 bl snprintf - add x22, x22, x0, sxtw + add x22, x22, w0, sxtw ldr w3, [x19, 2668] mov x0, x22 mov x1, 64 adrp x2, .LC27 add x2, x2, :lo12:.LC27 bl snprintf - add x22, x22, x0, sxtw + add x22, x22, w0, sxtw ldr w3, [x19, 2672] mov x0, x22 mov x1, 64 adrp x2, .LC28 add x2, x2, :lo12:.LC28 bl snprintf - add x22, x22, x0, sxtw + add x22, x22, w0, sxtw ldr w3, [x19, 2676] mov x0, x22 mov x1, 64 adrp x2, .LC29 add x2, x2, :lo12:.LC29 bl snprintf - add x22, x22, x0, sxtw + add x22, x22, w0, sxtw ldr w3, [x19, 2680] mov x0, x22 mov x1, 64 adrp x2, .LC30 add x2, x2, :lo12:.LC30 bl snprintf - add x22, x22, x0, sxtw + add x22, x22, w0, sxtw ldr w3, [x19, 2684] mov x0, x22 mov x1, 64 adrp x2, .LC31 add x2, x2, :lo12:.LC31 bl snprintf - add x22, x22, x0, sxtw + add x22, x22, w0, sxtw ldr w3, [x19, 2688] mov x0, x22 mov x1, 64 adrp x2, .LC32 add x2, x2, :lo12:.LC32 bl snprintf - add x22, x22, x0, sxtw + add x22, x22, w0, sxtw ldrh w3, [x19, 2542] mov x0, x22 mov x1, 64 adrp x2, .LC33 add x2, x2, :lo12:.LC33 bl snprintf - add x22, x22, x0, sxtw + add x22, x22, w0, sxtw ldrh w3, [x19, 2540] mov x0, x22 mov x1, 64 adrp x2, .LC34 add x2, x2, :lo12:.LC34 bl snprintf - add x22, x22, x0, sxtw + add x22, x22, w0, sxtw ldr w3, [x19, 344] mov x0, x22 mov x1, 64 adrp x2, .LC35 add x2, x2, :lo12:.LC35 bl snprintf - add x22, x22, x0, sxtw + add x22, x22, w0, sxtw ldr w3, [x19, 336] mov x0, x22 mov x1, 64 adrp x2, .LC36 add x2, x2, :lo12:.LC36 bl snprintf - add x22, x22, x0, sxtw + add x22, x22, w0, sxtw ldr w3, [x19, 232] mov x0, x22 mov x1, 64 adrp x2, .LC37 add x2, x2, :lo12:.LC37 bl snprintf - add x22, x22, x0, sxtw + add x22, x22, w0, sxtw ldrh w3, [x19, 462] mov x0, x22 mov x1, 64 adrp x2, .LC38 add x2, x2, :lo12:.LC38 bl snprintf - add x22, x22, x0, sxtw + add x22, x22, w0, sxtw ldrh w3, [x19, 244] mov x0, x22 mov x1, 64 adrp x2, .LC39 add x2, x2, :lo12:.LC39 bl snprintf - add x22, x22, x0, sxtw + add x22, x22, w0, sxtw ldrh w3, [x19, 2692] mov x0, x22 mov x1, 64 adrp x2, .LC40 add x2, x2, :lo12:.LC40 bl snprintf - add x22, x22, x0, sxtw + add x22, x22, w0, sxtw ldr w3, [x19, 248] mov x0, x22 mov x1, 64 adrp x2, .LC41 add x2, x2, :lo12:.LC41 bl snprintf - add x22, x22, x0, sxtw + add x22, x22, w0, sxtw ldrh w3, [x19, 2696] mov x0, x22 mov x1, 64 adrp x2, .LC42 add x2, x2, :lo12:.LC42 bl snprintf - add x22, x22, x0, sxtw + add x22, x22, w0, sxtw ldrh w3, [x19, 360] mov x0, x22 mov x1, 64 adrp x2, .LC43 add x2, x2, :lo12:.LC43 bl snprintf - add x22, x22, x0, sxtw + add x22, x22, w0, sxtw ldrh w3, [x19, 26] mov x0, x22 mov x1, 64 adrp x2, .LC44 add x2, x2, :lo12:.LC44 bl snprintf - add x22, x22, x0, sxtw + add x22, x22, w0, sxtw ldrb w3, [x19, 30] mov x0, x22 mov x1, 64 adrp x2, .LC45 add x2, x2, :lo12:.LC45 bl snprintf - add x22, x22, x0, sxtw + add x22, x22, w0, sxtw ldrh w3, [x19, 24] mov x0, x22 mov x1, 64 adrp x2, .LC46 add x2, x2, :lo12:.LC46 bl snprintf - add x22, x22, x0, sxtw + add x22, x22, w0, sxtw ldrb w3, [x19, 32] mov x0, x22 mov x1, 64 adrp x2, .LC47 add x2, x2, :lo12:.LC47 bl snprintf - add x22, x22, x0, sxtw + add x22, x22, w0, sxtw ldrh w3, [x19, 28] mov x0, x22 mov x1, 64 adrp x2, .LC48 add x2, x2, :lo12:.LC48 bl snprintf - add x22, x22, x0, sxtw + add x22, x22, w0, sxtw ldrh w1, [x19, 24] adrp x2, .LC49 ldr x0, [x19, 72] @@ -2457,42 +2457,42 @@ FtlPrintInfo2buf: mov x0, x22 mov x1, 64 bl snprintf - add x22, x22, x0, sxtw + add x22, x22, w0, sxtw ldrh w3, [x19, 82] mov x0, x22 mov x1, 64 adrp x2, .LC50 add x2, x2, :lo12:.LC50 bl snprintf - add x22, x22, x0, sxtw + add x22, x22, w0, sxtw ldrb w3, [x19, 86] mov x0, x22 mov x1, 64 adrp x2, .LC51 add x2, x2, :lo12:.LC51 bl snprintf - add x22, x22, x0, sxtw + add x22, x22, w0, sxtw ldrh w3, [x19, 80] mov x0, x22 mov x1, 64 adrp x2, .LC52 add x2, x2, :lo12:.LC52 bl snprintf - add x22, x22, x0, sxtw + add x22, x22, w0, sxtw ldrb w3, [x19, 88] mov x0, x22 mov x1, 64 adrp x2, .LC53 add x2, x2, :lo12:.LC53 bl snprintf - add x22, x22, x0, sxtw + add x22, x22, w0, sxtw ldrh w3, [x19, 84] mov x0, x22 mov x1, 64 adrp x2, .LC54 add x2, x2, :lo12:.LC54 bl snprintf - add x22, x22, x0, sxtw + add x22, x22, w0, sxtw ldrh w1, [x19, 80] adrp x2, .LC55 ldr x0, [x19, 72] @@ -2501,77 +2501,77 @@ FtlPrintInfo2buf: mov x0, x22 mov x1, 64 bl snprintf - add x22, x22, x0, sxtw + add x22, x22, w0, sxtw ldrh w3, [x19, 130] mov x0, x22 mov x1, 64 adrp x2, .LC56 add x2, x2, :lo12:.LC56 bl snprintf - add x22, x22, x0, sxtw + add x22, x22, w0, sxtw ldrb w3, [x19, 134] mov x0, x22 mov x1, 64 adrp x2, .LC57 add x2, x2, :lo12:.LC57 bl snprintf - add x22, x22, x0, sxtw + add x22, x22, w0, sxtw ldrh w3, [x19, 128] mov x0, x22 mov x1, 64 adrp x2, .LC58 add x2, x2, :lo12:.LC58 bl snprintf - add x22, x22, x0, sxtw + add x22, x22, w0, sxtw ldrb w3, [x19, 136] mov x0, x22 mov x1, 64 adrp x2, .LC59 add x2, x2, :lo12:.LC59 bl snprintf - add x22, x22, x0, sxtw + add x22, x22, w0, sxtw ldrh w3, [x19, 132] mov x0, x22 mov x1, 64 adrp x2, .LC60 add x2, x2, :lo12:.LC60 bl snprintf - add x22, x22, x0, sxtw + add x22, x22, w0, sxtw ldrh w3, [x19, 178] mov x0, x22 mov x1, 64 adrp x2, .LC61 add x2, x2, :lo12:.LC61 bl snprintf - add x22, x22, x0, sxtw + add x22, x22, w0, sxtw ldrb w3, [x19, 182] mov x0, x22 mov x1, 64 adrp x2, .LC62 add x2, x2, :lo12:.LC62 bl snprintf - add x22, x22, x0, sxtw + add x22, x22, w0, sxtw ldrh w3, [x19, 176] mov x0, x22 mov x1, 64 adrp x2, .LC63 add x2, x2, :lo12:.LC63 bl snprintf - add x22, x22, x0, sxtw + add x22, x22, w0, sxtw ldrb w3, [x19, 184] mov x0, x22 mov x1, 64 adrp x2, .LC64 add x2, x2, :lo12:.LC64 bl snprintf - add x22, x22, x0, sxtw + add x22, x22, w0, sxtw ldrh w3, [x19, 180] mov x0, x22 mov x1, 64 adrp x2, .LC65 add x2, x2, :lo12:.LC65 bl snprintf - add x22, x22, x0, sxtw + add x22, x22, w0, sxtw ldr w5, [x19, 2788] mov x0, x22 ldr w4, [x19, 2796] @@ -2580,49 +2580,49 @@ FtlPrintInfo2buf: adrp x2, .LC66 add x2, x2, :lo12:.LC66 bl snprintf - add x22, x22, x0, sxtw + add x22, x22, w0, sxtw ldr w3, [x19, 2784] mov x0, x22 mov x1, 64 adrp x2, .LC67 add x2, x2, :lo12:.LC67 bl snprintf - add x22, x22, x0, sxtw + add x22, x22, w0, sxtw ldr w3, [x19, 2808] mov x1, 64 mov x0, x22 adrp x2, .LC68 add x2, x2, :lo12:.LC68 bl snprintf - add x20, x22, x0, sxtw + add x20, x22, w0, sxtw ldrh w3, [x19, 3224] mov x0, x20 mov x1, 64 adrp x2, .LC69 add x2, x2, :lo12:.LC69 bl snprintf - add x20, x20, x0, sxtw + add x20, x20, w0, sxtw ldrh w3, [x19, 3226] mov x0, x20 mov x1, 64 adrp x2, .LC70 add x2, x2, :lo12:.LC70 bl snprintf - add x20, x20, x0, sxtw + add x20, x20, w0, sxtw ldr w3, [x19, 3228] mov x0, x20 mov x1, 64 adrp x2, .LC71 add x2, x2, :lo12:.LC71 bl snprintf - add x20, x20, x0, sxtw + add x20, x20, w0, sxtw ldrh w3, [x19, 3232] adrp x2, .LC72 add x2, x2, :lo12:.LC72 mov x1, 64 mov x0, x20 bl snprintf - add x20, x20, x0, sxtw + add x20, x20, w0, sxtw bl GetFreeBlockMinEraseCount and w3, w0, 65535 mov x1, 64 @@ -2630,7 +2630,7 @@ FtlPrintInfo2buf: adrp x2, .LC73 add x2, x2, :lo12:.LC73 bl snprintf - add x20, x20, x0, sxtw + add x20, x20, w0, sxtw ldrh w0, [x19, 228] bl GetFreeBlockMaxEraseCount and w3, w0, 65535 @@ -2639,7 +2639,7 @@ FtlPrintInfo2buf: add x2, x2, :lo12:.LC74 mov x1, 64 bl snprintf - add x20, x20, x0, sxtw + add x20, x20, w0, sxtw adrp x0, .LANCHOR2 ldr w0, [x0, #:lo12:.LANCHOR2] cmp w0, 1 @@ -2666,7 +2666,7 @@ FtlPrintInfo2buf: mov x0, x20 mov x1, 64 bl snprintf - add x20, x20, x0, sxtw + add x20, x20, w0, sxtw .L243: mov w0, 0 adrp x23, .LC76 @@ -2694,7 +2694,7 @@ FtlPrintInfo2buf: mov x1, 64 add w22, w22, 1 bl snprintf - add x20, x20, x0, sxtw + add x20, x20, w0, sxtw ldr x0, [x19, 2560] ldrh w4, [x0, x24] cmp w22, 16 @@ -2729,7 +2729,7 @@ FtlPrintInfo2buf: mov x1, 64 mov x0, x20 bl snprintf - add x20, x20, x0, sxtw + add x20, x20, w0, sxtw cmp w22, 4 beq .L246 ldr x0, [x19, 2560] @@ -2769,7 +2769,7 @@ rknand_proc_ftlread: bl snprintf mov x0, x20 bl FtlPrintInfo2buf - add x0, x20, x0, sxtw + add x0, x20, w0, sxtw sub w0, w0, w19 ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 32 @@ -3074,7 +3074,7 @@ get_new_active_ppa: strh w1, [x19, 2] mov w1, 0 .L299: - add x4, x19, x1, sxtw 1 + add x4, x19, w1, sxtw 1 ldrh w4, [x4, 16] cmp w4, w5 beq .L300 @@ -3157,7 +3157,7 @@ FtlGcBufInit: ldrh w1, [x0, 314] mul w1, w1, w2 sdiv w1, w1, w4 - add x1, x6, x1, sxtw 2 + add x1, x6, w1, sxtw 2 str x1, [x5, x3] ldrh w1, [x0, 316] ldr x6, [x0, 3248] @@ -3165,7 +3165,7 @@ FtlGcBufInit: mul w1, w1, w2 add x5, x6, x3 sdiv w1, w1, w4 - add x1, x9, x1, sxtw 2 + add x1, x9, w1, sxtw 2 str x1, [x5, 8] ldr x1, [x0, 3272] ubfiz x9, x2, 5, 16 @@ -3186,7 +3186,7 @@ FtlGcBufInit: ldrh w2, [x0, 314] mul w2, w2, w1 sdiv w2, w2, w5 - add x2, x7, x2, sxtw 2 + add x2, x7, w2, sxtw 2 str x2, [x3, x4] ldrh w2, [x0, 316] ldr x3, [x0, 3248] @@ -3196,7 +3196,7 @@ FtlGcBufInit: add w1, w1, 1 and w1, w1, 65535 sdiv w2, w2, w5 - add x2, x4, x2, sxtw 2 + add x2, x4, w2, sxtw 2 str x2, [x3, 8] b .L310 .size FtlGcBufInit, .-FtlGcBufInit @@ -4286,7 +4286,7 @@ FtlMemInit: ret .L417: add x5, x4, x0, lsl 3 - add x6, x20, x2, uxtw 2 + add x6, x20, w2, uxtw 2 add w2, w2, w3 str x6, [x5, 32] b .L416 @@ -5370,7 +5370,7 @@ FtlScanSysBlk: add w22, w22, 1 and w22, w22, 65535 sdiv w0, w0, w25 - add x0, x2, x0, sxtw 2 + add x0, x2, w0, sxtw 2 str x0, [x1, 16] .L643: add x21, x21, 1 @@ -5934,9 +5934,9 @@ FtlLoadBbt: .LC97: .string "prog read REFRESH: = %x\n" .LC98: - .string "prog read s error: = %x %x %x\n" + .string "prog read s error: = %x %x %x %x %x\n" .LC99: - .string "prog read d error: = %x %x %x\n" + .string "prog read d error: = %x %x %x %x %x\n" .text .align 2 .global FlashProgPages @@ -6016,34 +6016,48 @@ FlashProgPages: bl sftl_printk str w24, [x19] .L772: - ldr x0, [x19, 16] - cbz x0, .L773 - ldr w2, [x0] + ldr x1, [x19, 16] + cbz x1, .L773 ldr x0, [x20, 3504] - ldr w3, [x0] - cmp w2, w3 + ldr w2, [x1] + ldr w4, [x0] + cmp w2, w4 + bne .L774 + ldr w3, [x0, 8] + ldr w5, [x1, 8] + cmp w5, w3 beq .L773 - ldr w1, [x19, 4] +.L774: + ldr w5, [x0, 4] adrp x0, .LC98 + ldr w3, [x1, 4] add x0, x0, :lo12:.LC98 + ldr w1, [x19, 4] bl sftl_printk mov w0, -1 str w0, [x19] .L773: - ldr x0, [x19, 8] - cbz x0, .L774 - ldr w2, [x0] + ldr x1, [x19, 8] + cbz x1, .L775 ldr x0, [x20, 3488] - ldr w3, [x0] - cmp w2, w3 - beq .L774 - ldr w1, [x19, 4] + ldr w2, [x1] + ldr w4, [x0] + cmp w2, w4 + bne .L776 + ldr w3, [x0, 2048] + ldr w5, [x1, 2048] + cmp w5, w3 + beq .L775 +.L776: + ldr w5, [x0, 4] adrp x0, .LC99 + ldr w3, [x1, 4] add x0, x0, :lo12:.LC99 + ldr w1, [x19, 4] bl sftl_printk mov w0, -1 str w0, [x19] -.L774: +.L775: add x19, x19, 32 b .L770 .L769: @@ -6089,7 +6103,7 @@ FlashProgPages: ldr x2, [x0, 1376] subs x1, x1, x2 mov x2, 0 - beq .L776 + beq .L778 bl __stack_chk_fail .L762: ldr w2, [x19, 4] @@ -6115,7 +6129,7 @@ FlashProgPages: .L760: ldr x1, [x21, 8] tst x1, 63 - beq .L777 + beq .L779 ldr x24, [x20, 3488] cmp x24, x1 beq .L764 @@ -6152,10 +6166,10 @@ FlashProgPages: mov w4, -1 str w4, [x21] b .L759 -.L777: +.L779: mov x24, x1 b .L764 -.L776: +.L778: mov w0, 0 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] @@ -6196,95 +6210,95 @@ FtlLowFormatEraseBlock: stp x25, x26, [sp, 64] mov w25, 4 str w22, [x28, 3420] -.L793: +.L795: ldrh w0, [x28, 236] cmp w0, w23 - bhi .L797 - cbz w20, .L792 + bhi .L799 + cbz w20, .L794 ldr x0, [x28, 3400] mov w2, w20 mov w1, 0 mov x23, 0 bl FlashEraseBlocks -.L801: +.L803: ldr x1, [x28, 3400] lsl x0, x23, 5 ldr w0, [x1, x0] add x2, x1, x23, lsl 5 cmn w0, #1 - bne .L800 + bne .L802 ldr w0, [x2, 4] add w19, w19, 1 and w19, w19, 65535 ubfx x0, x0, 10, 16 bl FtlBbmMapBadBlock -.L800: +.L802: add x23, x23, 1 cmp w20, w23, uxth - bhi .L801 - cbz w21, .L814 + bhi .L803 + cbz w21, .L816 ldrh w26, [x28, 308] mov w24, 1 -.L802: +.L804: add x0, x28, 264 mov w23, 0 str x0, [sp, 96] -.L810: +.L812: mov w27, 0 mov w20, 0 -.L803: +.L805: ldrh w0, [x28, 236] cmp w0, w27 - bhi .L806 - cbz w20, .L792 + bhi .L808 + cbz w20, .L794 ldr x0, [x28, 3400] mov w2, w24 mov w1, w20 mov w3, 1 mov x25, 0 bl FlashProgPages -.L809: +.L811: ldr x1, [x28, 3400] lsl x0, x25, 5 ldr w0, [x1, x0] add x2, x1, x25, lsl 5 - cbz w0, .L808 + cbz w0, .L810 ldr w0, [x2, 4] add w19, w19, 1 and w19, w19, 65535 ubfx x0, x0, 10, 16 bl FtlBbmMapBadBlock -.L808: +.L810: add x25, x25, 1 cmp w20, w25, uxth - bhi .L809 + bhi .L811 add w23, w23, 1 cmp w26, w23, uxth - bhi .L810 + bhi .L812 mov x23, 0 -.L812: - cbz w21, .L811 +.L814: + cbz w21, .L813 ldr x1, [x28, 3400] lsl x0, x23, 5 ldr w0, [x1, x0] add x2, x1, x23, lsl 5 - cbnz w0, .L811 + cbnz w0, .L813 ldr w0, [x2, 4] mov w1, 1 ubfx x0, x0, 10, 16 bl FtlFreeSysBlkQueueIn -.L811: +.L813: add x23, x23, 1 cmp w20, w23, uxth - bhi .L812 + bhi .L814 cmp w22, 63 ccmp w21, 0, 0, hi - beq .L792 + beq .L794 ldr x0, [x28, 3400] mov w2, w20 mov w1, w24 bl FlashEraseBlocks -.L792: +.L794: mov w0, w19 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] @@ -6294,7 +6308,7 @@ FtlLowFormatEraseBlock: ldp x29, x30, [sp], 112 hint 29 // autiasp ret -.L797: +.L799: ldr x1, [x28, 3400] ubfiz x0, x23, 5, 16 str wzr, [x1, x0] @@ -6303,13 +6317,13 @@ FtlLowFormatEraseBlock: bl V2P_block and w27, w0, 65535 mov w26, w27 - cbz w21, .L794 + cbz w21, .L796 bl IsBlkInVendorPart - cbnz w0, .L795 -.L794: + cbnz w0, .L797 +.L796: mov w0, w26 bl FtlBbmIsBadBlock - cbnz w0, .L796 + cbnz w0, .L798 ldr x0, [x28, 3400] ubfiz x2, x20, 5, 16 lsl w27, w27, 10 @@ -6325,21 +6339,21 @@ FtlLowFormatEraseBlock: add w20, w20, 1 and w20, w20, 65535 sdiv w0, w0, w25 - add x0, x2, x0, sxtw 2 + add x0, x2, w0, sxtw 2 str x0, [x1, 16] -.L795: +.L797: add w23, w23, 1 and w23, w23, 65535 - b .L793 -.L796: + b .L795 +.L798: add w19, w19, 1 and w19, w19, 65535 - b .L795 -.L814: + b .L797 +.L816: mov w24, 0 mov w26, 2 - b .L802 -.L806: + b .L804 +.L808: ldr x1, [x28, 3400] ubfiz x0, x27, 5, 16 str wzr, [x1, x0] @@ -6349,15 +6363,15 @@ FtlLowFormatEraseBlock: bl V2P_block and w25, w0, 65535 mov w1, w25 - cbz w21, .L804 + cbz w21, .L806 str w25, [sp, 108] bl IsBlkInVendorPart ldr w1, [sp, 108] - cbnz w0, .L805 -.L804: + cbnz w0, .L807 +.L806: mov w0, w1 bl FtlBbmIsBadBlock - cbnz w0, .L805 + cbnz w0, .L807 ldr x0, [x28, 3400] ubfiz x3, x20, 5, 16 add w25, w23, w25, lsl 10 @@ -6374,12 +6388,12 @@ FtlLowFormatEraseBlock: add w20, w20, 1 and w20, w20, 65535 sdiv w0, w0, w2 - add x0, x3, x0, sxtw 2 + add x0, x3, w0, sxtw 2 str x0, [x1, 16] -.L805: +.L807: add w2, w27, 1 and w27, w2, 65535 - b .L803 + b .L805 .size FtlLowFormatEraseBlock, .-FtlLowFormatEraseBlock .align 2 .global FlashTestBlk @@ -6403,7 +6417,7 @@ FlashTestBlk: str x1, [sp, 136] mov x1, 0 cmp w19, 11 - bls .L839 + bls .L841 adrp x20, .LANCHOR0 add x20, x20, :lo12:.LANCHOR0 mov w2, 32 @@ -6429,7 +6443,7 @@ FlashTestBlk: mov w1, w3 bl FlashProgPages ldr w0, [sp, 40] - cbnz w0, .L840 + cbnz w0, .L842 add w0, w19, 1 mov w3, 1 mov w2, w3 @@ -6440,27 +6454,27 @@ FlashTestBlk: ldr w0, [sp, 40] cmp w0, 0 csetm w20, ne -.L837: +.L839: add x0, sp, 40 mov w2, 1 mov w1, 0 str w19, [sp, 44] bl FlashEraseBlocks -.L835: +.L837: mrs x0, sp_el0 ldr x1, [sp, 136] ldr x2, [x0, 1376] subs x1, x1, x2 mov x2, 0 - beq .L838 + beq .L840 bl __stack_chk_fail -.L840: +.L842: mov w20, -1 - b .L837 -.L839: + b .L839 +.L841: mov w20, 0 - b .L835 -.L838: + b .L837 +.L840: mov w0, w20 ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 144 @@ -6505,11 +6519,11 @@ FtlBbmTblFlush: stp x25, x26, [sp, 64] str x0, [x19, 3720] bl ftl_memset -.L843: +.L845: ldrh w0, [x19, 258] add x1, x19, 3712 cmp w0, w20 - bgt .L844 + bgt .L846 ldr x21, [x1, 16] mov w2, 16 mov w1, 255 @@ -6534,7 +6548,7 @@ FtlBbmTblFlush: strh w0, [x21, 12] ldr w0, [x19, 2676] strh w0, [x21, 14] -.L845: +.L847: ldr x0, [x19, 3448] str x0, [x19, 3720] ldr x0, [x19, 3512] @@ -6552,7 +6566,7 @@ FtlBbmTblFlush: ldrh w1, [x20, 2] sub w0, w0, #1 cmp w1, w0 - blt .L846 + blt .L848 ldr w0, [x20, 8] mov w2, 1 strh wzr, [x20, 2] @@ -6571,7 +6585,7 @@ FtlBbmTblFlush: mov w1, w2 ldr x0, [x19, 3400] bl FlashEraseBlocks -.L846: +.L848: add x23, x19, 3712 mov w3, 1 mov x0, x23 @@ -6583,22 +6597,22 @@ FtlBbmTblFlush: strh w0, [x20, 2] ldr w0, [x19, 3712] cmn w0, #1 - bne .L847 + bne .L849 ldr w1, [x19, 3716] add w22, w22, 1 and w22, w22, 65535 mov x0, x26 bl sftl_printk cmp w22, 3 - bls .L845 + bls .L847 ldr w1, [x19, 3716] adrp x0, .LC102 mov w2, w22 add x0, x0, :lo12:.LC102 bl sftl_printk -.L849: - b .L849 -.L844: +.L851: + b .L851 +.L846: ldrh w2, [x19, 3624] add x4, x22, x20, lsl 3 ldr x0, [x1, 8] @@ -6606,15 +6620,15 @@ FtlBbmTblFlush: mul w3, w2, w20 lsl w2, w2, 2 add x20, x20, 1 - add x0, x0, x3, sxtw 2 + add x0, x0, w3, sxtw 2 bl ftl_memcpy - b .L843 -.L847: + b .L845 +.L849: add w24, w24, 1 cmp w24, 1 - ble .L845 + ble .L847 cmp w0, 256 - beq .L845 + beq .L847 mov w0, 0 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] @@ -6650,21 +6664,21 @@ allocate_data_superblock: add x25, x19, 128 stp x21, x22, [sp, 32] stp x27, x28, [sp, 80] -.L855: +.L857: ldrh w1, [x19, 2584] ldrh w0, [x19, 228] add w0, w0, w1 ldrh w1, [x19, 244] cmp w0, w1 - ble .L856 + ble .L858 adrp x0, .LC9 add x1, x23, 271 add x0, x0, :lo12:.LC9 mov w2, 2667 bl sftl_printk -.L856: +.L858: cmp x20, x25 - bne .L881 + bne .L883 ldrh w1, [x19, 228] mov w2, 65535 ldr w0, [x19, 3236] @@ -6674,33 +6688,33 @@ allocate_data_superblock: and w1, w0, 65535 cmp w2, w0, uxth csel w1, w1, wzr, ne -.L857: +.L859: add x0, x19, 2592 bl List_pop_index_node and w22, w0, 65535 ldrh w0, [x19, 228] - cbnz w0, .L858 + cbnz w0, .L860 adrp x0, .LC9 add x1, x23, 271 add x0, x0, :lo12:.LC9 mov w2, 2676 bl sftl_printk -.L858: +.L860: ldrh w0, [x19, 228] sub w0, w0, #1 strh w0, [x19, 228] ldrh w0, [x19, 244] cmp w0, w22 - bls .L855 + bls .L857 ldr x0, [x19, 72] ubfiz x24, x22, 1, 16 ldrh w21, [x0, x24] - cbnz w21, .L855 + cbnz w21, .L857 strh w22, [x20] mov x0, x20 bl make_superblock ldrb w0, [x20, 7] - cbnz w0, .L860 + cbnz w0, .L862 ldr x0, [x19, 72] mov w1, -1 strh w1, [x0, x24] @@ -6711,73 +6725,73 @@ allocate_data_superblock: add w0, w0, w1 ldrh w1, [x19, 244] cmp w0, w1 - ble .L855 + ble .L857 add x1, x23, 271 mov w2, 2690 adrp x0, .LC9 add x0, x0, :lo12:.LC9 bl sftl_printk - b .L855 -.L881: - mov w1, 0 b .L857 -.L860: +.L883: + mov w1, 0 + b .L859 +.L862: ldrh w1, [x19, 2584] ldrh w0, [x19, 228] add w0, w0, w1 ldrh w1, [x19, 244] cmp w0, w1 - ble .L862 + ble .L864 adrp x0, .LC9 add x1, x23, 271 add x0, x0, :lo12:.LC9 mov w2, 2693 bl sftl_printk -.L862: +.L864: ldrh w3, [x19, 236] add x4, x20, 16 mov x0, 0 mov w5, 65535 -.L863: +.L865: cmp w3, w0, uxth - bhi .L865 - cbnz w21, .L866 + bhi .L867 + cbnz w21, .L868 adrp x0, .LC9 add x1, x23, 271 add x0, x0, :lo12:.LC9 mov w2, 2704 bl sftl_printk -.L866: +.L868: ldrh w0, [x19, 176] cmp w0, w22 - bne .L867 + bne .L869 adrp x0, .LC9 add x1, x23, 271 add x0, x0, :lo12:.LC9 mov w2, 2706 bl sftl_printk -.L867: +.L869: ldrb w2, [x20, 8] ldr x0, [x19, 2600] ldrh w1, [x0, x24] - cbnz w2, .L868 - cbz w1, .L882 + cbnz w2, .L870 + cbz w1, .L884 ldrh w2, [x19, 296] add w1, w1, w2 and w1, w1, 65535 -.L869: +.L871: strh w1, [x0, x24] ldr w0, [x19, 2668] add w0, w0, 1 str w0, [x19, 2668] -.L870: +.L872: ldr x0, [x19, 2600] ldr w1, [x19, 2684] ldrh w0, [x0, x24] cmp w0, w1 - bls .L871 + bls .L873 str w0, [x19, 2684] -.L871: +.L873: ldr w1, [x19, 2672] ldrh w0, [x19, 296] ldr w2, [x19, 2668] @@ -6790,71 +6804,71 @@ allocate_data_superblock: add w0, w0, 1 str w0, [x1, 16] mov x1, 0 -.L872: +.L874: ldr x0, [x19, 3400] cmp w21, w1, uxth - bhi .L873 + bhi .L875 ldrb w1, [x20, 8] mov w2, w21 mov x26, 0 mov w27, 0 bl FlashEraseBlocks add x2, x20, 16 -.L874: +.L876: cmp w21, w26, uxth - bhi .L876 + bhi .L878 cmp w27, 0 - ble .L877 + ble .L879 mov w0, w22 bl update_multiplier_value bl FtlBbmTblFlush -.L877: +.L879: ldrb w0, [x20, 7] - cbnz w0, .L878 + cbnz w0, .L880 ldr x0, [x19, 72] mov w1, -1 strh w1, [x0, x24] - b .L855 -.L865: + b .L857 +.L867: ldr x1, [x19, 3400] add x2, x1, x0, lsl 5 stp xzr, xzr, [x2, 8] ldrh w2, [x4, x0, lsl 1] cmp w2, w5 - beq .L864 + beq .L866 ubfiz x6, x21, 5, 16 add w21, w21, 1 add x1, x1, x6 and w21, w21, 65535 lsl w2, w2, 10 str w2, [x1, 4] -.L864: +.L866: add x0, x0, 1 - b .L863 -.L882: + b .L865 +.L884: mov w1, 2 - b .L869 -.L868: + b .L871 +.L870: add w1, w1, 1 strh w1, [x0, x24] ldr w0, [x19, 2672] add w0, w0, 1 str w0, [x19, 2672] - b .L870 -.L873: + b .L872 +.L875: add x0, x0, x1, lsl 5 add x1, x1, 1 ldr w2, [x0, 4] and w2, w2, -1024 str w2, [x0, 4] - b .L872 -.L876: + b .L874 +.L878: ldr x1, [x19, 3400] lsl x0, x26, 5 ldr w28, [x1, x0] add x3, x1, x26, lsl 5 cmn w28, #1 - bne .L875 + bne .L877 ldr w0, [x3, 4] add w27, w27, 1 str x2, [sp, 104] @@ -6865,10 +6879,10 @@ allocate_data_superblock: ldrb w0, [x20, 7] sub w0, w0, #1 strb w0, [x20, 7] -.L875: +.L877: add x26, x26, 1 - b .L874 -.L878: + b .L876 +.L880: ldrh w1, [x19, 306] strh w22, [x20] strh wzr, [x20, 2] @@ -6884,10 +6898,10 @@ allocate_data_superblock: ldrh w2, [x20] strh w0, [x1, x2, lsl 1] ldrh w0, [x20, 4] - cbz w0, .L879 + cbz w0, .L881 ldrb w0, [x20, 7] - cbnz w0, .L880 -.L879: + cbnz w0, .L882 +.L881: adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 adrp x0, .LC9 @@ -6895,7 +6909,7 @@ allocate_data_superblock: add x0, x0, :lo12:.LC9 mov w2, 2759 bl sftl_printk -.L880: +.L882: mov w0, 0 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] @@ -6934,8 +6948,8 @@ FtlGcFreeBadSuperBlk: stp x21, x22, [sp, 32] stp x23, x24, [sp, 48] str x27, [sp, 80] - cbnz w0, .L894 -.L889: + cbnz w0, .L896 +.L891: mov w0, 0 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] @@ -6945,30 +6959,30 @@ FtlGcFreeBadSuperBlk: ldp x29, x30, [sp], 96 hint 29 // autiasp ret -.L893: +.L895: add x0, x19, 264 mov w1, w25 mov w20, 0 ldrb w0, [x0, w21, sxtw] bl V2P_block and w22, w0, 65535 -.L890: +.L892: ldrh w0, [x19, 3312] cmp w0, w20 - bhi .L892 + bhi .L894 add w21, w21, 1 and w21, w21, 65535 -.L888: +.L890: ldrh w0, [x19, 236] cmp w0, w21 - bhi .L893 + bhi .L895 bl FtlGcReFreshBadBlk - b .L889 -.L892: + b .L891 +.L894: ldrh w0, [x24, w20, sxtw 1] add w27, w20, 1 cmp w0, w22 - bne .L891 + bne .L893 mov w1, w22 mov x0, x26 bl sftl_printk @@ -6976,8 +6990,8 @@ FtlGcFreeBadSuperBlk: bl FtlBbmMapBadBlock bl FtlBbmTblFlush ldrh w23, [x19, 3312] - add x1, x24, x27, sxtw 1 - add x0, x24, x20, uxth 1 + add x1, x24, w27, sxtw 1 + add x0, x24, w20, uxth 1 cmp w20, w23 sub w2, w23, w20 sub w23, w23, #1 @@ -6985,15 +6999,15 @@ FtlGcFreeBadSuperBlk: csel x2, x2, xzr, ls bl memmove strh w23, [x19, 3312] -.L891: +.L893: and w20, w27, 65535 - b .L890 -.L894: + b .L892 +.L896: adrp x26, .LC103 add x24, x19, 3314 add x26, x26, :lo12:.LC103 mov w21, 0 - b .L888 + b .L890 .size FtlGcFreeBadSuperBlk, .-FtlGcFreeBadSuperBlk .align 2 .global update_vpc_list @@ -7017,30 +7031,30 @@ update_vpc_list: ubfiz x0, x0, 1, 16 ldr x1, [x19, 72] ldrh w0, [x1, x0] - cbnz w0, .L897 + cbnz w0, .L899 ldrh w0, [x19, 226] cmp w0, w20 - bne .L898 - mov w0, -1 - strh w0, [x19, 226] -.L898: - ldrh w0, [x19, 224] - cmp w0, w20 - bne .L899 - mov w0, -1 - strh w0, [x19, 224] -.L899: - ldrh w0, [x19, 176] - cmp w0, w20 bne .L900 mov w0, -1 - strh w0, [x19, 176] + strh w0, [x19, 226] +.L900: + ldrh w0, [x19, 224] + cmp w0, w20 + bne .L901 + mov w0, -1 + strh w0, [x19, 224] .L901: + ldrh w0, [x19, 176] + cmp w0, w20 + bne .L902 + mov w0, -1 + strh w0, [x19, 176] +.L903: mov w1, w20 add x0, x19, 2568 bl List_remove_node ldrh w0, [x19, 2584] - cbnz w0, .L903 + cbnz w0, .L905 adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 adrp x0, .LC9 @@ -7048,7 +7062,7 @@ update_vpc_list: add x0, x0, :lo12:.LC9 mov w2, 2835 bl sftl_printk -.L903: +.L905: ldrh w0, [x19, 2584] sub w0, w0, #1 strh w0, [x19, 2584] @@ -7061,7 +7075,7 @@ update_vpc_list: add w0, w0, w1 ldrh w1, [x19, 244] cmp w0, w1 - ble .L907 + ble .L909 adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 adrp x0, .LC9 @@ -7069,30 +7083,30 @@ update_vpc_list: add x0, x0, :lo12:.LC9 mov w2, 2838 bl sftl_printk -.L907: +.L909: mov w0, 1 - b .L896 -.L900: + b .L898 +.L902: ldrh w0, [x19, 24] cmp w0, w20 - beq .L906 + beq .L908 ldrh w0, [x19, 80] cmp w0, w20 - beq .L906 + beq .L908 ldrh w0, [x19, 128] cmp w0, w20 - bne .L901 -.L906: + bne .L903 +.L908: mov w0, 0 -.L896: +.L898: ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 32 hint 29 // autiasp ret -.L897: +.L899: mov w0, w20 bl List_update_data_list - b .L906 + b .L908 .size update_vpc_list, .-update_vpc_list .section .rodata.str1.1 .LC104: @@ -7120,11 +7134,11 @@ decrement_vpc_count: str x21, [sp, 32] and w20, w0, 65535 add x19, x19, :lo12:.LANCHOR0 - beq .L910 + beq .L912 ldr x1, [x19, 72] ubfiz x21, x20, 1, 16 ldrh w0, [x1, x21] - cbnz w0, .L911 + cbnz w0, .L913 mov w1, w20 mov w2, 0 adrp x0, .LC104 @@ -7132,17 +7146,17 @@ decrement_vpc_count: bl sftl_printk ldr x0, [x19, 72] ldrh w0, [x0, x21] - cbz w0, .L912 -.L917: + cbz w0, .L914 +.L919: mov w21, 0 -.L909: +.L911: mov w0, w21 ldp x19, x20, [sp, 16] ldr x21, [sp, 32] ldp x29, x30, [sp], 48 hint 29 // autiasp ret -.L912: +.L914: adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 add x1, x1, 312 @@ -7150,20 +7164,20 @@ decrement_vpc_count: adrp x0, .LC9 add x0, x0, :lo12:.LC9 bl sftl_printk - b .L917 -.L911: + b .L919 +.L913: sub w0, w0, #1 strh w0, [x1, x21] -.L910: +.L912: ldrh w0, [x19, 3698] mov w1, 65535 cmp w0, w1 - bne .L914 + bne .L916 strh w20, [x19, 3698] - b .L917 -.L914: + b .L919 +.L916: cmp w0, w20 - beq .L917 + beq .L919 bl update_vpc_list cmp w0, 0 ldr x1, [x19, 2560] @@ -7178,9 +7192,9 @@ decrement_vpc_count: ldr x1, [x19, 72] and x2, x0, 65535 ldrh w1, [x1, x2, lsl 1] - cbnz w1, .L909 + cbnz w1, .L911 cmp w20, w0, uxth - beq .L909 + beq .L911 adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 add x1, x1, 312 @@ -7188,7 +7202,7 @@ decrement_vpc_count: adrp x0, .LC9 add x0, x0, :lo12:.LC9 bl sftl_printk - b .L909 + b .L911 .size decrement_vpc_count, .-decrement_vpc_count .align 2 .global FtlSuperblockPowerLostFix @@ -7236,11 +7250,11 @@ FtlSuperblockPowerLostFix: ldrh w21, [x19, 4] and w21, w21, 1 add w21, w21, 6 -.L919: - ldrh w0, [x19, 4] - cbz w21, .L921 - cbnz w0, .L920 .L921: + ldrh w0, [x19, 4] + cbz w21, .L923 + cbnz w0, .L922 +.L923: ldrh w0, [x19] ldr x2, [x20, 72] lsl x0, x0, 1 @@ -7257,14 +7271,14 @@ FtlSuperblockPowerLostFix: ldr x2, [x0, 1376] subs x1, x1, x2 mov x2, 0 - beq .L925 + beq .L927 bl __stack_chk_fail -.L920: +.L922: mov x0, x19 bl get_new_active_ppa str w0, [sp, 60] cmn w0, #1 - beq .L921 + beq .L923 ldr w0, [x20, 2664] mov w3, 0 str w0, [x22, 4] @@ -7278,8 +7292,8 @@ FtlSuperblockPowerLostFix: bl FlashProgPages ldrh w0, [x19] bl decrement_vpc_count - b .L919 -.L925: + b .L921 +.L927: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x29, x30, [sp], 96 @@ -7316,45 +7330,45 @@ FtlMakeBbt: stp x21, x22, [sp, 32] bl FtlBbtMemInit bl FtlLoadFactoryBbt -.L932: +.L934: ldrh w0, [x19, 258] cmp w0, w23 - bhi .L938 + bhi .L940 mov w20, 0 -.L939: +.L941: ldrh w0, [x19, 318] cmp w0, w20 - bhi .L940 + bhi .L942 ldrh w20, [x19, 372] add x21, x19, 360 mov w22, 65535 sub w20, w20, #1 and w20, w20, 65535 -.L941: +.L943: ldrh w0, [x21, 12] sub w0, w0, #48 cmp w20, w0 - ble .L945 + ble .L947 mov w0, w20 bl FtlBbmIsBadBlock cmp w0, 1 - beq .L942 + beq .L944 mov w0, w20 bl FlashTestBlk - cbz w0, .L943 + cbz w0, .L945 mov w0, w20 bl FtlBbmMapBadBlock -.L942: +.L944: sub w20, w20, #1 and w20, w20, 65535 - b .L941 -.L938: + b .L943 +.L940: ldrh w1, [x25, 12] ldr x0, [x19, 3448] ldr x26, [x19, 3512] stp x0, x26, [x20, 8] cmp w1, w27 - beq .L933 + beq .L935 ldrh w22, [x19, 302] mov w2, 1 madd w22, w22, w23, w1 @@ -7369,29 +7383,29 @@ FtlMakeBbt: ldr x0, [x24, 32] lsr w2, w2, 3 bl ftl_memcpy -.L934: +.L936: mov w0, w22 add w23, w23, 1 add x24, x24, 8 add x25, x25, 2 bl FtlBbmMapBadBlock - b .L932 -.L933: + b .L934 +.L935: mov w1, w23 bl FlashGetBadBlockList ldr x0, [x20, 8] ldr x1, [x24, 32] bl FtlBbt2Bitmap ldrh w21, [x19, 302] -.L936: +.L938: sub w21, w21, #1 and w21, w21, 65535 -.L935: +.L937: ldrh w0, [x19, 302] madd w0, w23, w0, w21 bl FtlBbmIsBadBlock cmp w0, 1 - beq .L936 + beq .L938 ldr x0, [x19, 3512] strh w21, [x25, 12] mov w2, 16 @@ -7426,24 +7440,24 @@ FtlMakeBbt: ldr w1, [x20] and w0, w22, 65535 cmn w1, #1 - bne .L934 + bne .L936 bl FtlBbmMapBadBlock - b .L935 -.L940: + b .L937 +.L942: mov w0, w20 add w20, w20, 1 and w20, w20, 65535 bl FtlBbmMapBadBlock - b .L939 -.L943: + b .L941 +.L945: ldrh w0, [x21] cmp w0, w22 - bne .L944 + bne .L946 strh w20, [x21] - b .L942 -.L944: + b .L944 +.L946: strh w20, [x21, 4] -.L945: +.L947: ldr x1, [x19, 3400] str wzr, [x19, 368] ldrh w0, [x19, 360] @@ -7519,19 +7533,19 @@ js_hash: mov x3, 0 movk w0, 0x47c6, lsl 16 hint 25 // paciasp -.L954: +.L956: cmp w1, w3 - bhi .L955 + bhi .L957 hint 29 // autiasp ret -.L955: +.L957: ldrb w5, [x4, x3] lsr w2, w0, 2 add w2, w2, w0, lsl 5 add x3, x3, 1 add w2, w2, w5 eor w0, w0, w2 - b .L954 + b .L956 .size js_hash, .-js_hash .section .rodata.str1.1 .LC105: @@ -7569,7 +7583,7 @@ FtlMapWritePage: stp x27, x28, [sp, 80] ubfiz x27, x24, 2, 32 mov w22, 0 -.L958: +.L960: ldr w0, [x20, 2644] add w0, w0, 1 str w0, [x20, 2644] @@ -7577,35 +7591,35 @@ FtlMapWritePage: ldrh w1, [x19, 2] sub w0, w0, #1 cmp w1, w0 - bge .L959 + bge .L961 ldrh w1, [x19] mov w0, 65535 cmp w1, w0 - bne .L960 -.L959: + bne .L962 +.L961: mov x0, x19 bl Ftl_write_map_blk_to_last_page -.L960: +.L962: ldrh w1, [x19] ldr x0, [x19, 16] ldrh w0, [x0, x1, lsl 1] - cbnz w0, .L961 + cbnz w0, .L963 adrp x0, .LC9 add x1, x25, 332 add x0, x0, :lo12:.LC9 mov w2, 700 bl sftl_printk -.L961: +.L963: ldrh w1, [x19] ldrh w0, [x19, 10] cmp w1, w0 - bcc .L962 + bcc .L964 adrp x0, .LC9 add x1, x25, 332 add x0, x0, :lo12:.LC9 mov w2, 701 bl sftl_printk -.L962: +.L964: ldrh w1, [x19] mov w2, 16 ldr x0, [x19, 16] @@ -7639,7 +7653,7 @@ FtlMapWritePage: strh w0, [x19, 2] ldp w0, w1, [x21] cmn w0, #1 - bne .L963 + bne .L965 adrp x0, .LC105 add x0, x0, :lo12:.LC105 bl sftl_printk @@ -7647,42 +7661,42 @@ FtlMapWritePage: ldrh w0, [x19, 2] and w22, w22, 65535 cmp w0, 2 - bhi .L964 + bhi .L966 ldrh w0, [x20, 308] sub w0, w0, #1 strh w0, [x19, 2] -.L964: +.L966: cmp w22, 3 - bls .L965 + bls .L967 ldr w1, [x20, 3716] adrp x0, .LC106 mov w2, w22 add x0, x0, :lo12:.LC106 bl sftl_printk -.L966: - b .L966 -.L965: - ldr w0, [x19, 52] - cbz w0, .L958 .L968: b .L968 -.L963: +.L967: + ldr w0, [x19, 52] + cbz w0, .L960 +.L970: + b .L970 +.L965: ldr x0, [x19, 40] str w1, [x0, x27] ldrh w0, [x19, 2] cmp w0, 1 - beq .L969 + beq .L971 ldr w0, [x21] cmp w0, 256 - beq .L969 + beq .L971 ldr w1, [x19, 56] - cbz w1, .L970 -.L969: + cbz w1, .L972 +.L971: str wzr, [x19, 56] - b .L958 -.L970: + b .L960 +.L972: cmn w0, #1 - bne .L971 + bne .L973 adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 adrp x0, .LC9 @@ -7690,7 +7704,7 @@ FtlMapWritePage: add x0, x0, :lo12:.LC9 mov w2, 745 bl sftl_printk -.L971: +.L973: mov w0, 0 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] @@ -7733,7 +7747,7 @@ load_l2p_region: ldrh w1, [x19, 340] stp x23, x24, [sp, 48] cmp w1, w0, uxth - bcs .L983 + bcs .L985 adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 adrp x0, .LC9 @@ -7741,7 +7755,7 @@ load_l2p_region: add x0, x0, :lo12:.LC9 mov w2, 485 bl sftl_printk -.L983: +.L985: ldr x1, [x19, 3600] ubfiz x0, x21, 2, 16 ubfiz x20, x20, 4, 16 @@ -7749,7 +7763,7 @@ load_l2p_region: ldr x0, [x19, 2608] add x0, x0, x20 ldr x0, [x0, 8] - cbnz w23, .L984 + cbnz w23, .L986 ldrh w2, [x19, 314] mov w1, 255 bl ftl_memset @@ -7758,7 +7772,7 @@ load_l2p_region: ldr x0, [x19, 2608] add x20, x0, x20 str wzr, [x20, 4] -.L985: +.L987: mov w0, 0 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] @@ -7766,7 +7780,7 @@ load_l2p_region: ldp x29, x30, [sp], 64 hint 29 // autiasp ret -.L984: +.L986: add x22, x19, 3712 str x0, [x19, 3720] ldr x0, [x19, 3512] @@ -7779,7 +7793,7 @@ load_l2p_region: ldr x24, [x19, 3728] ldrh w0, [x24, 8] cmp w0, w21 - beq .L986 + beq .L988 mov w2, w23 mov w1, w21 adrp x0, .LC107 @@ -7797,10 +7811,10 @@ load_l2p_region: add x0, x0, :lo12:.LC108 mov w2, 4 bl rknand_print_hex -.L987: +.L989: ldrh w0, [x24, 8] cmp w0, w21 - beq .L989 + beq .L991 adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 adrp x0, .LC9 @@ -7808,17 +7822,17 @@ load_l2p_region: add x0, x0, :lo12:.LC9 mov w2, 508 bl sftl_printk -.L989: +.L991: ldr x0, [x19, 2608] add x0, x0, x20 str wzr, [x0, 4] ldr x0, [x19, 2608] strh w21, [x0, x20] - b .L985 -.L986: + b .L987 +.L988: ldr w0, [x19, 3712] cmp w0, 256 - bne .L989 + bne .L991 mov w2, w23 mov w1, w21 adrp x0, .LC109 @@ -7830,7 +7844,7 @@ load_l2p_region: ldr x2, [x0, 8] add x0, x19, 3632 bl FtlMapWritePage - b .L987 + b .L989 .size load_l2p_region, .-load_l2p_region .align 2 .global ftl_map_blk_gc @@ -7862,12 +7876,12 @@ ftl_map_blk_gc: ldrh w2, [x19, 8] sub w1, w1, #5 cmp w2, w1 - blt .L993 + blt .L995 ubfiz x0, x0, 1, 16 ldrh w25, [x21, x0] - cbz w25, .L993 + cbz w25, .L995 ldr w1, [x19, 52] - cbnz w1, .L993 + cbnz w1, .L995 mov w1, 1 str w1, [x19, 52] strh wzr, [x21, x0] @@ -7877,32 +7891,32 @@ ftl_map_blk_gc: strh w0, [x19, 8] ldrh w0, [x20, 308] cmp w1, w0 - bcc .L994 + bcc .L996 mov x0, x19 bl ftl_map_blk_alloc_new_blk -.L994: +.L996: adrp x22, .LANCHOR1 add x22, x22, :lo12:.LANCHOR1 adrp x26, .LC9 add x22, x22, 364 add x26, x26, :lo12:.LC9 mov w21, 0 -.L995: +.L997: ldrh w0, [x19, 6] cmp w0, w21 - bhi .L1002 + bhi .L1004 mov w0, w25 mov w1, 1 bl FtlFreeSysBlkQueueIn str wzr, [x19, 52] -.L993: +.L995: ldrh w1, [x19, 2] ldrh w0, [x20, 308] cmp w1, w0 - bcc .L1003 + bcc .L1005 mov x0, x19 bl ftl_map_blk_alloc_new_blk -.L1003: +.L1005: mov w0, 0 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] @@ -7912,12 +7926,12 @@ ftl_map_blk_gc: ldp x29, x30, [sp], 96 hint 29 // autiasp ret -.L1002: +.L1004: ubfiz x1, x21, 2, 16 add x27, x24, x1 ldr w0, [x24, x1] cmp w25, w0, lsr 10 - bne .L996 + bne .L998 add x0, x20, 3712 ldr x2, [x20, 3456] ldr x23, [x20, 3512] @@ -7929,36 +7943,36 @@ ftl_map_blk_gc: bl FlashReadPages ldrh w0, [x23, 8] cmp w0, w21 - beq .L997 + beq .L999 mov x1, x22 mov x0, x26 mov w2, 611 bl sftl_printk -.L997: +.L999: ldr w1, [x20, 3712] add x0, x20, 3712 cmn w1, #1 - bne .L998 -.L1000: + bne .L1000 +.L1002: str wzr, [x27] -.L999: - b .L999 -.L998: +.L1001: + b .L1001 +.L1000: ldrh w1, [x23, 8] cmp w1, w21 - bne .L1000 + bne .L1002 ldrh w2, [x23] ldrh w1, [x19, 4] cmp w2, w1 - bne .L1000 + bne .L1002 ldr x2, [x0, 8] mov w1, w21 mov x0, x19 bl FtlMapWritePage -.L996: +.L998: add w21, w21, 1 and w21, w21, 65535 - b .L995 + b .L997 .size ftl_map_blk_gc, .-ftl_map_blk_gc .align 2 .global Ftl_write_map_blk_to_last_page @@ -7983,9 +7997,9 @@ Ftl_write_map_blk_to_last_page: ldr x20, [x0, 16] ldrh w0, [x0] cmp w0, w1 - bne .L1010 + bne .L1012 ldrh w0, [x19, 8] - cbz w0, .L1011 + cbz w0, .L1013 adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 adrp x0, .LC9 @@ -7993,7 +8007,7 @@ Ftl_write_map_blk_to_last_page: add x0, x0, :lo12:.LC9 mov w2, 641 bl sftl_printk -.L1011: +.L1013: ldrh w0, [x19, 8] add w0, w0, 1 strh w0, [x19, 8] @@ -8003,7 +8017,7 @@ Ftl_write_map_blk_to_last_page: ldr w0, [x19, 48] add w0, w0, 1 str w0, [x19, 48] -.L1012: +.L1014: mov w0, 0 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] @@ -8011,7 +8025,7 @@ Ftl_write_map_blk_to_last_page: ldp x29, x30, [sp], 64 hint 29 // autiasp ret -.L1010: +.L1012: ubfiz x0, x0, 1, 16 ldrh w1, [x19, 2] ldr x23, [x19, 40] @@ -8038,10 +8052,10 @@ Ftl_write_map_blk_to_last_page: bl ftl_memset mov w2, 0 mov w0, 0 -.L1013: +.L1015: ldrh w1, [x19, 6] cmp w1, w0 - bhi .L1015 + bhi .L1017 ldrh w1, [x20, 314] add x22, x20, 3712 ldr x0, [x20, 3720] @@ -8057,12 +8071,12 @@ Ftl_write_map_blk_to_last_page: strh w0, [x19, 2] mov x0, x19 bl ftl_map_blk_gc - b .L1012 -.L1015: + b .L1014 +.L1017: ubfiz x3, x0, 2, 16 ldr w1, [x23, x3] cmp w22, w1, lsr 10 - bne .L1014 + bne .L1016 add w1, w2, 1 ldr x5, [x20, 3448] ubfiz x4, x1, 3, 16 @@ -8073,10 +8087,10 @@ Ftl_write_map_blk_to_last_page: ldr w4, [x23, x3] ldr x3, [x20, 3448] str w4, [x3, x1] -.L1014: +.L1016: add w0, w0, 1 and w0, w0, 65535 - b .L1013 + b .L1015 .size Ftl_write_map_blk_to_last_page, .-Ftl_write_map_blk_to_last_page .align 2 .global flush_l2p_region @@ -8149,7 +8163,7 @@ log2phys: and w19, w19, w21 and w19, w19, 65535 cmp w0, w21 - bhi .L1023 + bhi .L1025 adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 add x1, x1, 410 @@ -8159,11 +8173,11 @@ log2phys: bl sftl_printk ldr w0, [x20, 2624] cmp w0, w21 - bhi .L1023 + bhi .L1025 mov w0, -1 - cbnz w23, .L1022 + cbnz w23, .L1024 str w0, [x22] -.L1022: +.L1024: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] @@ -8171,33 +8185,33 @@ log2phys: ldp x29, x30, [sp], 80 hint 29 // autiasp ret -.L1029: +.L1031: add x0, x0, 1 lsl x3, x0, 4 ldrh w3, [x1, x3] cmp w3, w24 - bne .L1025 -.L1026: + bne .L1027 +.L1028: ldr x0, [x20, 2608] ubfiz x2, x25, 4, 16 ubfiz x19, x19, 2, 16 add x0, x0, x2 ldr x0, [x0, 8] - cbnz w23, .L1027 + cbnz w23, .L1029 ldr w0, [x0, x19] str w0, [x22] -.L1028: +.L1030: ldr x0, [x20, 2608] add x0, x0, x2 ldr w1, [x0, 4] cmn w1, #1 - beq .L1032 + beq .L1034 add w1, w1, 1 str w1, [x0, 4] -.L1032: +.L1034: mov w0, 0 - b .L1022 -.L1027: + b .L1024 +.L1029: ldr w1, [x22] str w1, [x0, x19] strh w24, [x20, 2616] @@ -8206,16 +8220,16 @@ log2phys: ldr w0, [x1, 4] orr w0, w0, -2147483648 str w0, [x1, 4] - b .L1028 -.L1023: + b .L1030 +.L1025: ldr x1, [x20, 2608] mov x0, 0 ldrh w2, [x20, 342] sub x1, x1, #16 -.L1025: +.L1027: and w25, w0, 65535 cmp w2, w0, uxth - bhi .L1029 + bhi .L1031 bl select_l2p_ram_region and w25, w0, 65535 mov w21, w25 @@ -8225,15 +8239,15 @@ log2phys: ldrh w2, [x2, x1] mov w1, 65535 cmp w2, w1 - beq .L1030 + beq .L1032 ldr w1, [x3, 4] - tbz w1, #31, .L1030 + tbz w1, #31, .L1032 bl flush_l2p_region -.L1030: +.L1032: mov w1, w21 mov w0, w24 bl load_l2p_region - b .L1026 + b .L1028 .size log2phys, .-log2phys .align 2 .global FtlWriteDump_data @@ -8260,16 +8274,16 @@ FtlWriteDump_data: ldr x1, [x0, 1376] str x1, [sp, 104] mov x1, 0 - cbz w2, .L1036 + cbz w2, .L1038 ldrb w1, [x19, 32] - cbnz w1, .L1036 + cbnz w1, .L1038 ldrb w1, [x19, 31] ldrh w3, [x19, 306] mul w1, w1, w3 cmp w2, w1 - beq .L1036 + beq .L1038 ldrb w0, [x19, 34] - cbnz w0, .L1035 + cbnz w0, .L1037 ldr w22, [x19, 2624] add x1, sp, 68 ldrh w21, [x19, 236] @@ -8285,38 +8299,38 @@ FtlWriteDump_data: stp x1, x20, [sp, 80] str wzr, [x20, 4] cmn w0, #1 - beq .L1038 + beq .L1040 add x0, sp, 72 mov w2, 0 mov w1, 1 bl FlashReadPages -.L1039: +.L1041: lsl w21, w21, 2 add x23, x19, 24 mov w0, -3947 strh w0, [x20] -.L1040: - cbnz w21, .L1044 -.L1041: +.L1042: + cbnz w21, .L1046 +.L1043: mov w0, 1 strb w0, [x19, 34] -.L1035: +.L1037: mrs x0, sp_el0 ldr x1, [sp, 104] ldr x2, [x0, 1376] subs x1, x1, x2 mov x2, 0 - beq .L1046 + beq .L1048 bl __stack_chk_fail -.L1038: +.L1040: ldrh w2, [x19, 314] mov w1, 255 ldr x0, [x19, 3448] bl ftl_memset - b .L1039 -.L1044: + b .L1041 +.L1046: ldrh w0, [x23, 4] - cbz w0, .L1041 + cbz w0, .L1043 ldr w0, [sp, 76] sub w21, w21, #1 stp w22, w0, [x20, 8] @@ -8337,11 +8351,11 @@ FtlWriteDump_data: bl FlashProgPages ldrh w0, [x23] bl decrement_vpc_count - b .L1040 -.L1036: + b .L1042 +.L1038: strb wzr, [x19, 34] - b .L1035 -.L1046: + b .L1037 +.L1048: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldr x23, [sp, 48] @@ -8377,9 +8391,9 @@ FtlReUsePrevPpa: ldr x0, [x19, 72] ubfiz x20, x22, 1, 16 ldrh w3, [x0, x20] - cbnz w3, .L1055 + cbnz w3, .L1057 ldr x2, [x19, 2592] - cbz x2, .L1056 + cbz x2, .L1058 ldr x0, [x19, 2560] mov x5, -6148914691236517206 movk x5, 0xaaab, lsl 0 @@ -8390,16 +8404,16 @@ FtlReUsePrevPpa: mul x2, x2, x5 mov w5, 6 and w2, w2, 65535 -.L1057: +.L1059: cmp w3, w1 - beq .L1056 + beq .L1058 cmp w2, w4 - bne .L1058 + bne .L1060 mov w1, w22 add x0, x19, 2592 bl List_remove_node ldrh w0, [x19, 228] - cbnz w0, .L1059 + cbnz w0, .L1061 adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 adrp x0, .LC9 @@ -8407,7 +8421,7 @@ FtlReUsePrevPpa: add x0, x0, :lo12:.LC9 mov w2, 1742 bl sftl_printk -.L1059: +.L1061: ldrh w0, [x19, 228] sub w0, w0, #1 strh w0, [x19, 228] @@ -8417,7 +8431,7 @@ FtlReUsePrevPpa: ldrh w0, [x1, x20] add w0, w0, 1 strh w0, [x1, x20] -.L1056: +.L1058: add x1, sp, 60 mov w0, w21 mov w2, 1 @@ -8427,18 +8441,18 @@ FtlReUsePrevPpa: ldp x29, x30, [sp], 64 hint 29 // autiasp ret -.L1058: +.L1060: umull x2, w2, w5 ldrh w2, [x0, x2] cmp w2, w6 - beq .L1056 + beq .L1058 add w3, w3, 1 and w3, w3, 65535 - b .L1057 -.L1055: + b .L1059 +.L1057: add w3, w3, 1 strh w3, [x0, x20] - b .L1056 + b .L1058 .size FtlReUsePrevPpa, .-FtlReUsePrevPpa .section .rodata.str1.1 .LC110: @@ -8474,7 +8488,7 @@ FtlRecoverySuperblock: ldrh w0, [x20] mov w1, 65535 cmp w0, w1 - beq .L1067 + beq .L1069 adrp x19, .LANCHOR0 add x19, x19, :lo12:.LANCHOR0 ldrb w0, [x20, 6] @@ -8482,30 +8496,30 @@ FtlRecoverySuperblock: str w0, [sp, 152] ldrh w0, [x19, 306] cmp w0, w24 - bne .L1068 + bne .L1070 strh w0, [x20, 2] strh wzr, [x20, 4] -.L1189: +.L1191: strb wzr, [x20, 6] -.L1067: +.L1069: mrs x0, sp_el0 ldr x1, [sp, 184] ldr x2, [x0, 1376] subs x1, x1, x2 mov x2, 0 - beq .L1133 + beq .L1135 bl __stack_chk_fail -.L1068: +.L1070: ldrh w0, [x20, 16] mov w21, 0 -.L1069: +.L1071: cmp w0, w1 - beq .L1070 + beq .L1072 mov w1, 1 bl FtlGetLastWrittenPage mov w26, w0 cmn w0, #1 - beq .L1071 + beq .L1073 ldrh w6, [x19, 236] add x9, x20, 16 ldrh w7, [x19, 314] @@ -8514,10 +8528,10 @@ FtlRecoverySuperblock: mov w22, 0 mov w10, 65535 mov w4, 4 -.L1072: +.L1074: ldr x0, [x19, 3424] cmp w6, w1, uxth - bhi .L1076 + bhi .L1078 mov w2, 0 mov w1, w22 bl FlashReadPages @@ -8528,41 +8542,41 @@ FtlRecoverySuperblock: mov w25, 65535 mov x2, x28 mov w27, 0 -.L1077: +.L1079: cmp w22, w27 - bne .L1082 + bne .L1084 add w23, w26, 1 ldr w0, [x28, 4] and w23, w23, 65535 -.L1184: +.L1186: ubfx x0, x0, 10, 16 bl P2V_plane and w22, w0, 65535 ldrh w0, [x19, 306] cmp w0, w23 - bne .L1084 + bne .L1086 strh w23, [x20, 2] strh wzr, [x20, 4] strb wzr, [x20, 6] -.L1084: +.L1086: ldr w0, [sp, 152] cmp w23, w24 ccmp w22, w0, 0, eq - bne .L1085 -.L1190: + bne .L1087 +.L1192: mov w2, w22 mov w1, w23 mov x0, x20 bl ftl_sb_update_avl_pages - b .L1067 -.L1070: + b .L1069 +.L1072: add w0, w21, 1 and w21, w0, 65535 - add x0, x20, x0, uxth 1 + add x0, x20, w0, uxth 1 ldrh w0, [x0, 16] - b .L1069 -.L1071: - cbz w24, .L1073 + b .L1071 +.L1073: + cbz w24, .L1075 adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 adrp x0, .LC9 @@ -8570,11 +8584,11 @@ FtlRecoverySuperblock: add x0, x0, :lo12:.LC9 mov w2, 1809 bl sftl_printk -.L1073: +.L1075: ldr w0, [sp, 152] cmp w0, 0 ccmp w21, w0, 4, ne - beq .L1074 + beq .L1076 adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 adrp x0, .LC9 @@ -8582,13 +8596,13 @@ FtlRecoverySuperblock: add x0, x0, :lo12:.LC9 mov w2, 1810 bl sftl_printk -.L1074: - strh wzr, [x20, 2] - b .L1189 .L1076: + strh wzr, [x20, 2] + b .L1191 +.L1078: ldrh w3, [x9, x1, lsl 1] cmp w3, w10 - beq .L1075 + beq .L1077 ubfiz x5, x22, 5, 16 orr w3, w26, w3, lsl 10 add x0, x0, x5 @@ -8598,25 +8612,25 @@ FtlRecoverySuperblock: sdiv w0, w0, w4 ldr x3, [x19, 3256] add x2, x2, x5 - add x0, x3, x0, sxtw 2 + add x0, x3, w0, sxtw 2 str x0, [x2, 8] mul w0, w22, w8 add w22, w22, 1 ldr x3, [x19, 3264] and w22, w22, 65535 sdiv w0, w0, w4 - add x0, x3, x0, sxtw 2 + add x0, x3, w0, sxtw 2 str x0, [x2, 16] -.L1075: +.L1077: add x1, x1, 1 - b .L1072 -.L1082: + b .L1074 +.L1084: ldr w0, [x2] - cbnz w0, .L1078 + cbnz w0, .L1080 ldr x3, [x2, 16] ldr w23, [x3, 4] cmn w23, #1 - beq .L1079 + beq .L1081 ldr w1, [x19, 2664] mov w0, w23 stp x3, x2, [sp, 96] @@ -8624,38 +8638,38 @@ FtlRecoverySuperblock: bl ftl_cmp_data_ver ldr w4, [sp, 112] ldp x3, x2, [sp, 96] - cbz w0, .L1079 + cbz w0, .L1081 add w23, w23, 1 str w23, [x19, 2664] -.L1079: +.L1081: ldr w0, [x3] cmn w0, #1 - bne .L1081 + bne .L1083 ubfiz x27, x27, 5, 16 and w23, w26, 65535 add x27, x28, x27 ldr w0, [x27, 4] - b .L1184 -.L1078: + b .L1186 +.L1080: mov w25, w4 -.L1081: +.L1083: add w27, w27, 1 add x2, x2, 32 and w27, w27, 65535 - b .L1077 -.L1085: + b .L1079 +.L1087: mov w0, 65535 cmp w25, w0 - bne .L1086 + bne .L1088 ldrb w0, [x20, 8] - cbnz w0, .L1087 -.L1086: + cbnz w0, .L1089 +.L1088: ldr w0, [x19, 3708] and w27, w26, 65535 cmn w0, #1 - bne .L1088 + bne .L1090 str w21, [x19, 3708] -.L1088: +.L1090: add w0, w24, 7 sub w25, w26, #7 and w25, w25, 65535 @@ -8663,13 +8677,13 @@ FtlRecoverySuperblock: csel w25, w25, w24, lt add x4, x20, 16 mov w28, 65535 -.L1090: +.L1092: ldrh w3, [x19, 236] cmp w25, w27 - bls .L1135 + bls .L1137 mov w0, -1 str w0, [x19, 3708] -.L1087: +.L1089: mov w0, 1 mov w27, w24 strh w0, [x19, 3744] @@ -8677,16 +8691,16 @@ FtlRecoverySuperblock: add x0, x0, :lo12:.LANCHOR1 add x0, x0, 435 str x0, [sp, 120] -.L1098: +.L1100: ldrh w3, [x19, 236] add x4, x20, 16 mov x1, 0 mov w28, 0 mov w5, 65535 -.L1099: +.L1101: ldr x0, [x19, 3424] cmp w3, w1, uxth - bhi .L1101 + bhi .L1103 mov w1, w28 mov w2, 0 bl FlashReadPages @@ -8694,46 +8708,46 @@ FtlRecoverySuperblock: adrp x0, .LC111 add x0, x0, :lo12:.LC111 str x0, [sp, 128] -.L1102: +.L1104: ldrh w0, [sp, 96] cmp w28, w0, uxth - bhi .L1129 + bhi .L1131 ldrh w1, [x19, 306] add w0, w27, 1 and w27, w0, 65535 cmp w1, w0, uxth - bne .L1098 + bne .L1100 ldrh w2, [x19, 236] add x3, x20, 14 mov x0, 0 mov w4, 65535 strh w27, [x20, 2] strh wzr, [x20, 4] -.L1130: +.L1132: cmp w2, w0, uxth - bls .L1067 + bls .L1069 add x1, x0, 1 ldrh w5, [x3, x1, lsl 1] cmp w5, w4 - beq .L1136 + beq .L1138 strb w0, [x20, 6] - b .L1067 -.L1092: + b .L1069 +.L1094: ldrh w2, [x4, x1, lsl 1] cmp w2, w28 - beq .L1091 + beq .L1093 ubfiz x5, x26, 5, 16 add w26, w26, 1 add x0, x0, x5 and w26, w26, 65535 orr w2, w25, w2, lsl 10 str w2, [x0, 4] -.L1091: +.L1093: add x1, x1, 1 -.L1097: +.L1099: ldr x0, [x19, 3424] cmp w3, w1, uxth - bhi .L1092 + bhi .L1094 mov w1, w26 mov w2, 0 str x4, [sp, 96] @@ -8742,44 +8756,44 @@ FtlRecoverySuperblock: mov w1, 32 ldr x4, [sp, 96] umaddl x1, w1, w26, x0 -.L1093: +.L1095: cmp x1, x0 - bne .L1096 + bne .L1098 add w25, w25, 1 and w25, w25, 65535 - b .L1090 -.L1135: + b .L1092 +.L1137: mov x1, 0 mov w26, 0 - b .L1097 -.L1096: + b .L1099 +.L1098: ldr w2, [x0] - cbnz w2, .L1087 + cbnz w2, .L1089 ldr x2, [x0, 16] ldrh w3, [x2] cmp w3, w28 - beq .L1095 + beq .L1097 ldr w2, [x2, 4] cmn w2, #1 - beq .L1095 + beq .L1097 str w2, [x19, 3708] -.L1095: +.L1097: add x0, x0, 32 - b .L1093 -.L1101: + b .L1095 +.L1103: ldrh w2, [x4, x1, lsl 1] cmp w2, w5 - beq .L1100 + beq .L1102 ubfiz x6, x28, 5, 16 add w28, w28, 1 add x0, x0, x6 and w28, w28, 65535 orr w2, w27, w2, lsl 10 str w2, [x0, 4] -.L1100: +.L1102: add x1, x1, 1 - b .L1099 -.L1129: + b .L1101 +.L1131: ldr x0, [sp, 96] ldr x2, [x19, 3424] lsl x26, x0, 5 @@ -8788,56 +8802,56 @@ FtlRecoverySuperblock: ldr w25, [x1, 4] str w25, [sp, 180] cmp w27, w24 - bcc .L1103 + bcc .L1105 ubfx x0, x25, 10, 16 bl P2V_plane ldr w1, [sp, 152] and w0, w0, 65535 cmp w27, w24 ccmp w1, w0, 0, eq - bhi .L1103 + bhi .L1105 cmp w27, w23 ccmp w22, w0, 0, eq ldp x1, x2, [sp, 104] - bne .L1104 + bne .L1106 strh w23, [x20, 2] strb w22, [x20, 6] - b .L1190 -.L1104: + b .L1192 +.L1106: ldr w0, [x2, x26] cmn w0, #1 - beq .L1105 + beq .L1107 ldr x3, [x1, 16] mov w0, 61589 ldrh w25, [x3] cmp w25, w0 - beq .L1106 + beq .L1108 ldrh w0, [x20] -.L1186: +.L1188: bl decrement_vpc_count - b .L1103 -.L1106: + b .L1105 +.L1108: ldr w21, [x3, 4] cmn w21, #1 - beq .L1108 + beq .L1110 ldr w1, [x19, 2664] mov w0, w21 str x3, [sp, 104] bl ftl_cmp_data_ver ldr x3, [sp, 104] - cbz w0, .L1108 + cbz w0, .L1110 add w0, w21, 1 str w0, [x19, 2664] ldrh w0, [x3] cmp w0, w25 - beq .L1108 + beq .L1110 ldr x1, [sp, 120] mov w2, 1961 adrp x0, .LC9 add x0, x0, :lo12:.LC9 bl sftl_printk ldr x3, [sp, 104] -.L1108: +.L1110: add x1, sp, 176 ldp w25, w0, [x3, 8] mov w2, 0 @@ -8847,14 +8861,14 @@ FtlRecoverySuperblock: ldr w1, [x19, 3708] ldr w2, [sp, 172] cmn w1, #1 - beq .L1110 + beq .L1112 mov w0, w21 str w2, [sp, 104] bl ftl_cmp_data_ver ldr w2, [sp, 104] - cbz w0, .L1110 + cbz w0, .L1112 cmn w2, #1 - beq .L1111 + beq .L1113 ldr x0, [x19, 3424] add x0, x0, x26 str w2, [x0, 4] @@ -8869,51 +8883,51 @@ FtlRecoverySuperblock: add x3, x2, x26 ldr w0, [x2, x26] cmn w0, #1 - bne .L1112 -.L1113: + bne .L1114 +.L1115: mov w0, -1 str w0, [sp, 172] -.L1120: +.L1122: ldr w0, [sp, 172] cmn w0, #1 - beq .L1103 + beq .L1105 ubfx x0, x0, 10, 16 bl P2V_block_in_plane and w26, w0, 65535 ldrh w0, [x19, 244] mov w25, w26 cmp w0, w26, uxth - bhi .L1125 + bhi .L1127 ldr x1, [sp, 120] adrp x0, .LC9 mov w2, 2066 add x0, x0, :lo12:.LC9 bl sftl_printk -.L1125: +.L1127: ldr x1, [x19, 72] ubfiz x0, x26, 1, 16 ldrh w0, [x1, x0] - cbz w0, .L1126 + cbz w0, .L1128 mov w0, w25 - b .L1186 -.L1111: + b .L1188 +.L1113: ldp w1, w0, [sp, 176] cmp w1, w0 - bne .L1103 + bne .L1105 add x1, sp, 172 mov w0, w25 mov w2, 1 bl log2phys -.L1103: +.L1105: ldr x0, [sp, 96] add x0, x0, 1 str x0, [sp, 96] - b .L1102 -.L1112: + b .L1104 +.L1114: ldr x0, [sp, 104] ldr w4, [x0, 8] cmp w4, w25 - bne .L1113 + bne .L1115 ldr w0, [x0, 4] str w0, [sp, 112] uxtw x1, w0 @@ -8921,22 +8935,22 @@ FtlRecoverySuperblock: stp x3, x2, [sp, 136] str w4, [sp, 156] bl ftl_cmp_data_ver - cbz w0, .L1113 + cbz w0, .L1115 ldp w1, w0, [sp, 172] ldr w5, [sp, 180] ldr w4, [sp, 156] cmp w0, w5 ldp x3, x2, [sp, 136] - bne .L1115 + bne .L1117 mov w0, w4 -.L1185: +.L1187: bl FtlReUsePrevPpa - b .L1113 -.L1115: + b .L1115 +.L1117: cmp w0, w1 - beq .L1113 + beq .L1115 cmn w0, #1 - beq .L1116 + beq .L1118 str w0, [x3, 4] mov w2, 0 ldr x1, [x3, 16] @@ -8945,69 +8959,69 @@ FtlRecoverySuperblock: mov w1, 1 add x0, x0, x26 bl FlashReadPages -.L1117: +.L1119: adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 ldr x1, [x0, 3424] ldr w1, [x1, x26] cmn w1, #1 - beq .L1118 + beq .L1120 ldr x1, [sp, 104] ldr w0, [x0, 3708] ldr w26, [x1, 4] mov w1, w26 bl ftl_cmp_data_ver - cbz w0, .L1118 + cbz w0, .L1120 ldr w0, [sp, 112] mov w1, w26 bl ftl_cmp_data_ver - cbz w0, .L1113 -.L1118: + cbz w0, .L1115 +.L1120: ldr w1, [sp, 172] mov w0, w25 - b .L1185 -.L1116: + b .L1187 +.L1118: str w0, [x2, x26] - b .L1117 -.L1110: + b .L1119 +.L1112: ldp w1, w0, [sp, 176] cmp w1, w0 - beq .L1120 - cmn w2, #1 beq .L1122 + cmn w2, #1 + beq .L1124 ldr w0, [x19, 252] cmp w0, w2, lsr 10 - bhi .L1122 + bhi .L1124 adrp x0, .LC110 mov w1, w2 add x0, x0, :lo12:.LC110 -.L1188: +.L1190: bl sftl_printk - b .L1103 -.L1122: + b .L1105 +.L1124: add x1, sp, 180 mov w0, w25 mov w2, 1 bl log2phys ldr w26, [sp, 176] cmn w26, #1 - beq .L1120 + beq .L1122 ldr w0, [sp, 172] cmp w26, w0 - beq .L1120 + beq .L1122 ubfx x0, x26, 10, 16 bl P2V_block_in_plane ldrh w2, [x19, 24] and w1, w0, 65535 cmp w2, w0, uxth - beq .L1124 + beq .L1126 ldrh w0, [x19, 80] cmp w0, w1 - beq .L1124 + beq .L1126 ldrh w0, [x19, 128] cmp w0, w1 - bne .L1120 -.L1124: + bne .L1122 +.L1126: ldr x0, [x19, 3424] mov w2, 0 mov w1, 1 @@ -9019,46 +9033,46 @@ FtlRecoverySuperblock: ldr x0, [x19, 3424] ldr w0, [x0] cmn w0, #1 - beq .L1120 + beq .L1122 ldr x3, [sp, 104] mov w0, w21 ldr w1, [x3, 4] bl ftl_cmp_data_ver - cbnz w0, .L1120 + cbnz w0, .L1122 add x1, sp, 176 mov w0, w25 mov w2, 1 bl log2phys - b .L1120 -.L1126: + b .L1122 +.L1128: mov w1, w26 ldr x0, [sp, 128] - b .L1188 -.L1105: + b .L1190 +.L1107: ldr w0, [x19, 3748] cmp w0, 31 - bhi .L1127 + bhi .L1129 add x1, x19, 3752 str w25, [x1, w0, uxtw 2] add w0, w0, 1 str w0, [x19, 3748] -.L1127: +.L1129: ldrh w0, [x20] bl decrement_vpc_count ldr w0, [x19, 3708] cmn w0, #1 - bne .L1128 -.L1187: + bne .L1130 +.L1189: str w21, [x19, 3708] - b .L1103 -.L1128: + b .L1105 +.L1130: cmp w0, w21 - bls .L1103 - b .L1187 -.L1136: + bls .L1105 + b .L1189 +.L1138: mov x0, x1 - b .L1130 -.L1133: + b .L1132 +.L1135: mov w0, 0 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] @@ -9116,22 +9130,22 @@ ftl_check_vpc: mov w2, 8192 mov w1, 0 bl ftl_memset -.L1192: +.L1194: ldr w0, [x20, 2624] cmp w0, w19 - bhi .L1194 + bhi .L1196 adrp x23, .LC113 add x23, x23, :lo12:.LC113 mov w24, 0 mov w19, 0 mov w26, 65535 mov w27, 1 -.L1195: +.L1197: ldrh w0, [x20, 244] cmp w0, w19 - bhi .L1197 + bhi .L1199 ldr x19, [x20, 2592] - cbz x19, .L1198 + cbz x19, .L1200 ldr x1, [x20, 2560] adrp x25, .LC114 ldrh w26, [x20, 228] @@ -9145,83 +9159,83 @@ ftl_check_vpc: mov w28, 65535 mul x19, x19, x1 and w19, w19, 65535 -.L1199: +.L1201: cmp w23, w26 - bne .L1201 -.L1198: - cbz w24, .L1191 + bne .L1203 +.L1200: + cbz w24, .L1193 adrp x0, .LC9 add x1, x22, 457 add x0, x0, :lo12:.LC9 mov w2, 2394 bl sftl_printk -.L1191: +.L1193: mrs x0, sp_el0 ldr x1, [sp, 104] ldr x2, [x0, 1376] subs x1, x1, x2 mov x2, 0 - beq .L1203 + beq .L1205 bl __stack_chk_fail -.L1194: +.L1196: add x1, sp, 100 mov w0, w19 mov w2, 0 bl log2phys ldr w0, [sp, 100] cmn w0, #1 - beq .L1193 + beq .L1195 ubfx x0, x0, 10, 16 bl P2V_block_in_plane and x0, x0, 65535 ldrh w1, [x21, x0, lsl 1] add w1, w1, 1 strh w1, [x21, x0, lsl 1] -.L1193: +.L1195: add w19, w19, 1 - b .L1192 -.L1197: + b .L1194 +.L1199: ldr x0, [x20, 72] ubfiz x25, x19, 1, 16 ldrh w3, [x21, w19, sxtw 1] sxtw x28, w19 ldrh w2, [x0, x25] cmp w2, w3 - beq .L1196 + beq .L1198 mov x0, x23 mov w1, w19 bl sftl_printk ldr x0, [x20, 72] ldrh w0, [x0, x25] cmp w0, w26 - beq .L1196 + beq .L1198 ldrh w1, [x21, x28, lsl 1] cmp w1, w0 csel w24, w24, w27, ls -.L1196: +.L1198: add w19, w19, 1 and w19, w19, 65535 - b .L1195 -.L1201: + b .L1197 +.L1203: ldr x1, [x20, 72] ubfiz x0, x19, 1, 16 ldrh w2, [x1, x0] - cbz w2, .L1200 + cbz w2, .L1202 ldrh w3, [x21, w19, sxtw 1] mov w24, 1 mov w1, w19 mov x0, x25 bl sftl_printk -.L1200: +.L1202: umull x19, w19, w27 ldr x0, [x20, 2560] ldrh w19, [x0, x19] cmp w19, w28 - beq .L1198 + beq .L1200 add w23, w23, 1 and w23, w23, 65535 - b .L1199 -.L1203: + b .L1201 +.L1205: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] @@ -9271,32 +9285,32 @@ ftl_scan_all_data: adrp x0, .LC115 add x0, x0, :lo12:.LC115 bl sftl_printk -.L1218: +.L1220: ldr w0, [x21, 2624] cmp w0, w20 - bhi .L1224 + bhi .L1226 mrs x0, sp_el0 ldr x1, [sp, 88] ldr x2, [x0, 1376] subs x1, x1, x2 mov x2, 0 - beq .L1225 + beq .L1227 bl __stack_chk_fail -.L1224: +.L1226: add x1, sp, 84 mov w0, w20 mov w2, 0 bl log2phys tst x20, 2047 - bne .L1219 + bne .L1221 ldr w2, [sp, 84] mov w1, w20 mov x0, x22 bl sftl_printk -.L1219: +.L1221: ldr w0, [sp, 84] cmn w0, #1 - beq .L1221 + beq .L1223 stp wzr, w0, [x19] mov w2, 0 ldr x0, [x21, 3448] @@ -9310,11 +9324,11 @@ ftl_scan_all_data: ldr w0, [x19] cmp w0, 256 ccmn w0, #1, 4, ne - beq .L1222 + beq .L1224 ldr w0, [x23, 8] cmp w0, w20 - beq .L1221 -.L1222: + beq .L1223 +.L1224: ldp x0, x1, [x19, 8] ldr w2, [x0, 4] str w2, [sp] @@ -9326,10 +9340,10 @@ ftl_scan_all_data: mov w1, w20 ldr w2, [x19, 4] bl sftl_printk -.L1221: +.L1223: add w20, w20, 1 - b .L1218 -.L1225: + b .L1220 +.L1227: ldp x29, x30, [sp, 16] ldp x19, x20, [sp, 32] ldp x21, x22, [sp, 48] @@ -9373,76 +9387,76 @@ FtlGcScanTempBlk: mov x1, 0 mov w0, 65535 cmp w28, w0 - beq .L1251 - cbz w28, .L1229 -.L1228: + beq .L1253 + cbz w28, .L1231 +.L1230: adrp x0, .LANCHOR0+306 ldr w1, [sp, 104] ldrh w0, [x0, #:lo12:.LANCHOR0+306] cmp w0, w1 - bne .L1230 -.L1229: + bne .L1232 +.L1231: bl FtlGcPageVarInit -.L1230: +.L1232: adrp x19, .LANCHOR0 add x19, x19, :lo12:.LANCHOR0 mov w24, 0 mov w26, 65535 -.L1246: +.L1248: ldrh w0, [x20] strb wzr, [x20, 8] cmp w0, w26 - beq .L1231 + beq .L1233 add x0, x20, 16 str x0, [sp, 96] -.L1232: +.L1234: ldrh w7, [x19, 236] mov x1, 0 ldrh w8, [x19, 314] mov w21, 0 ldrh w9, [x19, 316] mov w5, 4 -.L1233: +.L1235: ldr x0, [x19, 3424] cmp w7, w1, uxth - bhi .L1235 + bhi .L1237 mov x23, 0 mov w1, w21 mov w2, 0 bl FlashReadPages -.L1236: +.L1238: cmp w21, w23, uxth - bhi .L1247 + bhi .L1249 ldr w0, [sp, 104] add w3, w28, 1 add w24, w24, 1 and w28, w3, 65535 cmp w0, w24 - bhi .L1248 + bhi .L1250 ldrh w0, [x22, 4] cmp w0, w26 - beq .L1248 + beq .L1250 add w0, w0, w24 strh w0, [x22, 4] ldrh w0, [x19, 306] cmp w0, w28 - bls .L1231 -.L1249: + bls .L1233 +.L1251: mrs x0, sp_el0 ldr x1, [sp, 152] ldr x2, [x0, 1376] subs x1, x1, x2 mov x2, 0 - beq .L1250 + beq .L1252 bl __stack_chk_fail -.L1251: +.L1253: mov w28, 0 - b .L1228 -.L1235: + b .L1230 +.L1237: ldr x2, [sp, 96] ldrh w4, [x2, x1, lsl 1] cmp w4, w26 - beq .L1234 + beq .L1236 ubfiz x6, x21, 5, 16 orr w4, w28, w4, lsl 10 add x0, x0, x6 @@ -9452,34 +9466,34 @@ FtlGcScanTempBlk: sdiv w0, w0, w5 ldr x4, [x19, 3256] add x2, x2, x6 - add x0, x4, x0, sxtw 2 + add x0, x4, w0, sxtw 2 str x0, [x2, 8] mul w0, w21, w9 add w21, w21, 1 ldr x4, [x19, 3264] and w21, w21, 65535 sdiv w0, w0, w5 - add x0, x4, x0, sxtw 2 + add x0, x4, w0, sxtw 2 str x0, [x2, 16] -.L1234: +.L1236: add x1, x1, 1 - b .L1233 -.L1247: + b .L1235 +.L1249: ldr x0, [x19, 3424] lsl x27, x23, 5 add x1, x0, x23, lsl 5 ldr w0, [x0, x27] ldr w5, [x1, 4] ldr x25, [x1, 16] - cbnz w0, .L1237 + cbnz w0, .L1239 ldrh w0, [x25] cmp w0, w26 - beq .L1261 + beq .L1263 ldr w1, [x19, 2624] ldr w0, [x25, 8] cmp w0, w1 - bls .L1239 -.L1261: + bls .L1241 +.L1263: ldrh w1, [x20] mov w28, 0 ldr x0, [x19, 72] @@ -9490,8 +9504,8 @@ FtlGcScanTempBlk: strh w0, [x20] strh w0, [x19, 176] bl FtlGcPageVarInit - b .L1246 -.L1239: + b .L1248 +.L1241: add x1, sp, 116 mov w2, 0 str w5, [sp, 108] @@ -9500,18 +9514,18 @@ FtlGcScanTempBlk: ldr w1, [sp, 116] ldr w5, [sp, 108] cmp w0, w1 - beq .L1241 -.L1243: + beq .L1243 +.L1245: ldr w2, [x25, 8] -.L1262: +.L1264: ldr w0, [x25, 12] mov w1, w5 add x23, x23, 1 bl FtlGcUpdatePage - b .L1236 -.L1241: + b .L1238 +.L1243: cmn w0, #1 - beq .L1243 + beq .L1245 str w0, [sp, 124] mov w2, 0 ldr x0, [x19, 3480] @@ -9530,29 +9544,29 @@ FtlGcScanTempBlk: sub x2, x2, #4 add x27, x0, x27 mov x0, 0 -.L1244: +.L1246: cmp w1, w0 - bls .L1243 + bls .L1245 ldr x6, [x27, 8] ldr w7, [x6, x0, lsl 2] add x0, x0, 1 ldr w6, [x2, x0, lsl 2] cmp w7, w6 - beq .L1244 + beq .L1246 ldrh w1, [x20] adrp x0, .LC118 ldr w2, [sp, 124] add x0, x0, :lo12:.LC118 bl sftl_printk - b .L1261 -.L1237: + b .L1263 +.L1239: mov w2, -1 - b .L1262 -.L1248: + b .L1264 +.L1250: ldrh w0, [x19, 306] cmp w0, w28 - bhi .L1232 -.L1231: + bhi .L1234 +.L1233: strh w28, [x20, 2] mov w0, -1 strb wzr, [x20, 6] @@ -9561,8 +9575,8 @@ FtlGcScanTempBlk: strh w0, [x22, 4] mov x0, x20 bl ftl_sb_update_avl_pages - b .L1249 -.L1250: + b .L1251 +.L1252: mov w0, -1 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] @@ -9599,28 +9613,28 @@ FtlReadRefresh: ldr w0, [x19, 2624] add x1, x19, 2712 ldr w2, [x1, 80] - cbz w2, .L1264 + cbz w2, .L1266 ldr w2, [x1, 84] cmp w2, w0 - bcs .L1265 + bcs .L1267 mov w20, 2048 -.L1270: +.L1272: ldr w1, [x19, 2624] add x21, x19, 2712 ldr w0, [x21, 84] cmp w0, w1 - bcc .L1266 -.L1269: + bcc .L1268 +.L1271: mov w0, -1 -.L1263: +.L1265: mrs x1, sp_el0 ldr x2, [sp, 152] ldr x3, [x1, 1376] subs x2, x2, x3 mov x3, 0 - beq .L1274 + beq .L1276 bl __stack_chk_fail -.L1266: +.L1268: add x1, sp, 52 mov w2, 0 bl log2phys @@ -9629,7 +9643,7 @@ FtlReadRefresh: add w0, w0, 1 str w0, [x21, 84] cmn w1, #1 - beq .L1268 + beq .L1270 str w0, [sp, 80] mov w2, 0 ldr x0, [x19, 3496] @@ -9642,24 +9656,24 @@ FtlReadRefresh: bl FlashReadPages ldr w0, [sp, 56] cmp w0, 256 - bne .L1269 + bne .L1271 ldr w0, [sp, 52] ubfx x0, x0, 10, 16 bl P2V_block_in_plane bl FtlGcRefreshBlock - b .L1269 -.L1268: + b .L1271 +.L1270: subs w20, w20, #1 - bne .L1270 - b .L1269 -.L1265: + bne .L1272 + b .L1271 +.L1267: ldr w0, [x19, 2628] str w0, [x1, 76] str xzr, [x1, 80] -.L1277: +.L1279: mov w0, 0 - b .L1263 -.L1264: + b .L1265 +.L1266: ldr w2, [x19, 2684] mov w3, 10000 mov w5, 31 @@ -9671,7 +9685,7 @@ FtlReadRefresh: ldrh w4, [x19, 2540] add w7, w3, 1048576 cmp w6, w7 - bhi .L1273 + bhi .L1275 mov w7, 1000 lsr w2, w2, 10 add w2, w2, 1 @@ -9679,19 +9693,19 @@ FtlReadRefresh: udiv w0, w0, w2 add w0, w0, w6 cmp w3, w0 - bhi .L1273 + bhi .L1275 tst w5, w4 - bne .L1277 + bne .L1279 ldr w0, [x1, 100] cmp w0, w4 - beq .L1277 -.L1273: + beq .L1279 +.L1275: mov x0, 1 str w3, [x19, 2788] str x0, [x19, 2792] str w4, [x19, 2812] - b .L1277 -.L1274: + b .L1279 +.L1276: ldp x19, x20, [sp, 16] ldr x21, [sp, 32] ldp x29, x30, [sp], 160 @@ -9718,27 +9732,27 @@ l2p_flush: add x20, x20, :lo12:.LANCHOR0 mov w19, 0 bl FtlWriteDump_data -.L1281: +.L1283: ldrh w0, [x20, 342] cmp w0, w19 - bhi .L1283 + bhi .L1285 mov w0, 0 ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 32 hint 29 // autiasp ret -.L1283: +.L1285: ldr x1, [x20, 2608] ubfiz x0, x19, 4, 16 add x0, x1, x0 ldr w0, [x0, 4] - tbz w0, #31, .L1282 + tbz w0, #31, .L1284 mov w0, w19 bl flush_l2p_region -.L1282: +.L1284: add w19, w19, 1 and w19, w19, 65535 - b .L1281 + b .L1283 .size l2p_flush, .-l2p_flush .align 2 .global FtlVendorPartWrite @@ -9773,22 +9787,22 @@ FtlVendorPartWrite: ldrh w0, [x19, 300] add w1, w21, w20 cmp w1, w0 - bhi .L1294 + bhi .L1296 mov x24, x2 add x27, x19, 3880 mov w25, 0 mov w28, -1 +.L1289: + cbnz w20, .L1294 .L1287: - cbnz w20, .L1292 -.L1285: mrs x0, sp_el0 ldr x1, [sp, 216] ldr x2, [x0, 1376] subs x1, x1, x2 mov x2, 0 - beq .L1293 + beq .L1295 bl __stack_chk_fail -.L1292: +.L1294: ldrh w1, [x19, 262] ldr x0, [x19, 3592] udiv w23, w21, w1 @@ -9797,13 +9811,13 @@ FtlVendorPartWrite: sub w0, w1, w23 and w26, w0, 65535 cmp w20, w0, uxth - bcs .L1288 + bcs .L1290 and w26, w20, 65535 -.L1288: +.L1290: ldr x0, [x19, 3464] - cbz w2, .L1289 + cbz w2, .L1291 cmp w1, w26 - beq .L1289 + beq .L1291 str x0, [sp, 128] add x0, sp, 152 str w2, [sp, 124] @@ -9812,7 +9826,7 @@ FtlVendorPartWrite: str x0, [sp, 136] add x0, sp, 120 bl FlashReadPages -.L1290: +.L1292: lsl w4, w26, 9 sbfiz x23, x23, 9, 23 ldr x0, [x19, 3464] @@ -9831,17 +9845,17 @@ FtlVendorPartWrite: ldr w4, [sp, 108] cmn w0, #1 csel w25, w25, w28, ne - add x24, x24, x4, sxtw - b .L1287 -.L1289: + add x24, x24, w4, sxtw + b .L1289 +.L1291: ldrh w2, [x19, 314] mov w1, 0 bl ftl_memset - b .L1290 -.L1294: + b .L1292 +.L1296: mov w25, -1 - b .L1285 -.L1293: + b .L1287 +.L1295: mov w0, w25 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] @@ -9870,11 +9884,11 @@ Ftl_save_ext_data: movk w1, 0x4654, lsl 16 ldr w3, [x0, 2712] cmp w3, w1 - bne .L1302 + bne .L1304 add x2, x0, 2712 hint 25 // paciasp stp x29, x30, [sp, -16]! - mov w1, 86 + mov w1, 87 movk w1, 0x5000, lsl 16 mov x29, sp str w1, [x2, 4] @@ -9907,7 +9921,7 @@ Ftl_save_ext_data: ldp x29, x30, [sp], 16 hint 29 // autiasp ret -.L1302: +.L1304: ret .size Ftl_save_ext_data, .-Ftl_save_ext_data .align 2 @@ -9926,19 +9940,19 @@ FtlEctTblFlush: add x2, x2, :lo12:.LANCHOR0 ldrh w1, [x2, 3944] cmp w1, 31 - bhi .L1309 + bhi .L1311 add w1, w1, 1 mov w3, 1 strh w1, [x2, 3944] -.L1306: +.L1308: ldr x1, [x2, 3544] ldr w4, [x1, 16] - cbnz w0, .L1307 + cbnz w0, .L1309 ldr w0, [x1, 20] add w3, w3, w0 cmp w3, w4 - bhi .L1311 -.L1307: + bhi .L1313 +.L1309: hint 25 // paciasp stp x29, x30, [sp, -16]! mov w0, 17221 @@ -9962,10 +9976,10 @@ FtlEctTblFlush: ldp x29, x30, [sp], 16 hint 29 // autiasp ret -.L1309: - mov w3, 32 - b .L1306 .L1311: + mov w3, 32 + b .L1308 +.L1313: mov w0, 0 ret .size FtlEctTblFlush, .-FtlEctTblFlush @@ -10027,22 +10041,22 @@ FtlVendorPartRead: ldrh w0, [x28, 300] add w1, w20, w19 cmp w1, w0 - bhi .L1325 + bhi .L1327 adrp x26, .LC119 mov x22, x2 add x26, x26, :lo12:.LC119 mov w24, 0 +.L1319: + cbnz w19, .L1325 .L1317: - cbnz w19, .L1323 -.L1315: mrs x0, sp_el0 ldr x1, [sp, 216] ldr x2, [x0, 1376] subs x1, x1, x2 mov x2, 0 - beq .L1324 + beq .L1326 bl __stack_chk_fail -.L1323: +.L1325: ldr x0, [x28, 3592] ldr w4, [x0, w21, uxtw 2] ldrh w0, [x28, 262] @@ -10051,11 +10065,11 @@ FtlVendorPartRead: sub w0, w0, w23 and w25, w0, 65535 cmp w19, w0, uxth - bcs .L1318 + bcs .L1320 and w25, w19, 65535 -.L1318: +.L1320: lsl w27, w25, 9 - cbz w4, .L1319 + cbz w4, .L1321 ldr x0, [x28, 3464] str x0, [sp, 128] add x0, sp, 152 @@ -10072,7 +10086,7 @@ FtlVendorPartRead: ldr w0, [x28, 3712] csinv w24, w24, wzr, ne cmp w0, 256 - bne .L1321 + bne .L1323 mov w2, w4 mov w1, w21 mov x0, x26 @@ -10081,29 +10095,29 @@ FtlVendorPartRead: mov w1, w21 add x0, x28, 3880 bl FtlMapWritePage -.L1321: +.L1323: ldr x1, [x28, 3464] sbfiz x23, x23, 9, 23 mov w2, w27 mov x0, x22 add x1, x1, x23 bl ftl_memcpy -.L1322: +.L1324: add w21, w21, 1 sub w19, w19, w25 add w20, w20, w25 - add x22, x22, x27, sxtw - b .L1317 -.L1319: + add x22, x22, w27, sxtw + b .L1319 +.L1321: mov w2, w27 mov x0, x22 mov w1, 0 bl ftl_memset - b .L1322 -.L1325: + b .L1324 +.L1327: mov w24, -1 - b .L1315 -.L1324: + b .L1317 +.L1326: mov w0, w24 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] @@ -10145,7 +10159,7 @@ FtlLoadEctTbl: mov w0, 17221 movk w0, 0x4254, lsl 16 cmp w1, w0 - beq .L1328 + beq .L1330 adrp x1, .LC120 adrp x0, .LC78 add x1, x1, :lo12:.LC120 @@ -10156,7 +10170,7 @@ FtlLoadEctTbl: ldrh w2, [x19, 3528] lsl w2, w2, 9 bl ftl_memset -.L1328: +.L1330: mov w0, 0 ldr x19, [sp, 16] ldp x29, x30, [sp], 32 @@ -10191,13 +10205,13 @@ Ftl_load_ext_data: ldr w0, [x19, 2712] movk w20, 0x4654, lsl 16 cmp w0, w20 - beq .L1331 + beq .L1333 mov x0, x21 mov w2, 512 mov w1, 0 bl ftl_memset str w20, [x19, 2712] -.L1331: +.L1333: ldr w1, [x19, 2800] str w1, [x19, 2652] ldr w1, [x19, 2804] @@ -10274,7 +10288,7 @@ FtlMapBlkWriteDump_data: mov x19, x0 str x21, [sp, 32] ldr w0, [x0, 56] - cbz w0, .L1335 + cbz w0, .L1337 ldrh w1, [x19, 6] adrp x20, .LANCHOR0 add x20, x20, :lo12:.LANCHOR0 @@ -10289,27 +10303,27 @@ FtlMapBlkWriteDump_data: stp x3, x4, [x0, 8] ldr w1, [x2, x1] str w1, [x0, 4] - cbz w1, .L1337 + cbz w1, .L1339 mov w2, 1 mov w1, w2 bl FlashReadPages -.L1338: +.L1340: ldr x2, [x20, 3720] mov w1, w21 mov x0, x19 bl FtlMapWritePage -.L1335: +.L1337: ldp x19, x20, [sp, 16] ldr x21, [sp, 32] ldp x29, x30, [sp], 48 hint 29 // autiasp ret -.L1337: +.L1339: ldrh w2, [x20, 314] mov x0, x3 mov w1, 255 bl ftl_memset - b .L1338 + b .L1340 .size FtlMapBlkWriteDump_data, .-FtlMapBlkWriteDump_data .section .rodata.str1.1 .LC121: @@ -10356,7 +10370,7 @@ FtlVpcTblFlush: str xzr, [x22, 8] movk x0, 0x4654, lsl 16 ldrb w1, [x19, 30] - movk x0, 0x56, lsl 32 + movk x0, 0x57, lsl 32 movk x0, 0x5000, lsl 48 str x0, [x19, 2512] ldrh w0, [x21, 142] @@ -10409,7 +10423,7 @@ FtlVpcTblFlush: bl ftl_memcpy mov w0, 0 bl FtlUpdateVaildLpn -.L1344: +.L1346: ldrh w1, [x21, 136] ldrh w2, [x21, 138] ldr x0, [x19, 3448] @@ -10421,7 +10435,7 @@ FtlVpcTblFlush: ldrh w0, [x19, 308] sub w0, w0, #1 cmp w2, w0 - blt .L1345 + blt .L1347 ldrh w24, [x21, 140] strh wzr, [x21, 138] strh w1, [x21, 140] @@ -10435,7 +10449,7 @@ FtlVpcTblFlush: strh w0, [x22, 2] str w1, [x22, 4] strh w0, [x21, 136] -.L1345: +.L1347: ldrh w1, [x19, 314] ldr x0, [x19, 3448] bl js_hash @@ -10451,9 +10465,9 @@ FtlVpcTblFlush: and w0, w0, 65535 strh w0, [x21, 138] cmn w1, #1 - bne .L1346 - cmp w0, 1 bne .L1348 + cmp w0, 1 + bne .L1350 mov x1, x23 mov w2, 1145 adrp x0, .LC9 @@ -10461,34 +10475,34 @@ FtlVpcTblFlush: bl sftl_printk ldrh w0, [x21, 138] cmp w0, 1 - bne .L1348 + bne .L1350 ldrh w0, [x19, 308] sub w0, w0, #1 strh w0, [x21, 138] -.L1348: +.L1350: add w20, w20, 1 and w20, w20, 65535 cmp w20, 3 - bls .L1344 + bls .L1346 ldr w1, [x19, 3716] adrp x0, .LC121 mov w2, w20 add x0, x0, :lo12:.LC121 bl sftl_printk -.L1351: - b .L1351 -.L1346: +.L1353: + b .L1353 +.L1348: cmp w0, 1 - beq .L1344 + beq .L1346 cmp w1, 256 - beq .L1344 + beq .L1346 mov w0, 65535 cmp w24, w0 - beq .L1352 + beq .L1354 mov w0, w24 mov w1, 1 bl FtlFreeSysBlkQueueIn -.L1352: +.L1354: mov w0, 0 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] @@ -10537,7 +10551,7 @@ sftl_deinit: adrp x0, .LANCHOR2 ldr w0, [x0, #:lo12:.LANCHOR2] cmp w0, 1 - bne .L1365 + bne .L1367 hint 25 // paciasp stp x29, x30, [sp, -16]! mov x29, sp @@ -10546,7 +10560,7 @@ sftl_deinit: ldp x29, x30, [sp], 16 hint 29 // autiasp ret -.L1365: +.L1367: mov w0, 0 ret .size sftl_deinit, .-sftl_deinit @@ -10576,57 +10590,57 @@ sftl_discard: mov x2, 0 ldr w1, [x19, 344] cmp w1, w0 - bls .L1379 + bls .L1381 cmp w1, w20 - bcc .L1379 + bcc .L1381 add w2, w0, w20 cmp w1, w2 - bcc .L1379 + bcc .L1381 cmp w20, 31 - bhi .L1370 -.L1387: + bhi .L1372 +.L1389: mov w0, 0 -.L1368: +.L1370: mrs x1, sp_el0 ldr x2, [sp, 56] ldr x3, [x1, 1376] subs x2, x2, x3 mov x3, 0 - beq .L1376 + beq .L1378 bl __stack_chk_fail -.L1370: +.L1372: ldrh w1, [x19, 262] udiv w21, w0, w1 msub w0, w1, w21, w0 ands w0, w0, 65535 - beq .L1371 + beq .L1373 sub w0, w1, w0 add w21, w21, 1 cmp w0, w20 csel w0, w0, w20, ls sub w20, w20, w0, uxth -.L1371: +.L1373: mov w0, -1 str w0, [sp, 52] -.L1372: +.L1374: ldrh w0, [x19, 262] cmp w0, w20 - bls .L1374 + bls .L1376 ldr w0, [x19, 3948] cmp w0, 32 - bls .L1387 + bls .L1389 str wzr, [x19, 3948] bl l2p_flush bl FtlVpcTblFlush - b .L1387 -.L1374: + b .L1389 +.L1376: add x1, sp, 48 mov w0, w21 mov w2, 0 bl log2phys ldr w0, [sp, 48] cmn w0, #1 - beq .L1373 + beq .L1375 ldr w0, [x19, 3948] add x1, sp, 52 mov w2, 1 @@ -10641,15 +10655,15 @@ sftl_discard: ubfx x0, x0, 10, 16 bl P2V_block_in_plane bl decrement_vpc_count -.L1373: +.L1375: ldrh w0, [x19, 262] add w21, w21, 1 sub w20, w20, w0 - b .L1372 -.L1379: + b .L1374 +.L1381: mov w0, -1 - b .L1368 -.L1376: + b .L1370 +.L1378: ldp x19, x20, [sp, 16] ldr x21, [sp, 32] ldp x29, x30, [sp], 64 @@ -10697,20 +10711,20 @@ FtlVpcCheckAndModify: ldrh w2, [x19, 246] lsl w2, w2, 1 bl ftl_memset -.L1389: +.L1391: ldr w0, [x19, 2624] cmp w0, w20 - bhi .L1391 + bhi .L1393 adrp x23, .LC122 adrp x24, .LC9 add x23, x23, :lo12:.LC122 add x24, x24, :lo12:.LC9 mov w20, 0 mov w25, 65535 -.L1392: +.L1394: ldrh w0, [x19, 244] cmp w0, w20 - bhi .L1398 + bhi .L1400 bl l2p_flush bl FtlVpcTblFlush mrs x0, sp_el0 @@ -10718,16 +10732,16 @@ FtlVpcCheckAndModify: ldr x2, [x0, 1376] subs x1, x1, x2 mov x2, 0 - beq .L1399 + beq .L1401 bl __stack_chk_fail -.L1391: +.L1393: add x1, sp, 84 mov w0, w20 mov w2, 0 bl log2phys ldr w0, [sp, 84] cmn w0, #1 - beq .L1390 + beq .L1392 ubfx x0, x0, 10, 16 bl P2V_block_in_plane ldr x2, [x19, 3552] @@ -10735,61 +10749,61 @@ FtlVpcCheckAndModify: ldrh w1, [x2, x0] add w1, w1, 1 strh w1, [x2, x0] -.L1390: +.L1392: add w20, w20, 1 - b .L1389 -.L1398: + b .L1391 +.L1400: ldr x0, [x19, 72] ubfiz x21, x20, 1, 16 ldrh w2, [x0, x21] ldr x0, [x19, 3552] ldrh w3, [x0, x21] cmp w2, w3 - beq .L1394 + beq .L1396 cmp w2, w25 - beq .L1394 + beq .L1396 mov x0, x23 mov w1, w20 bl sftl_printk ldrh w0, [x19, 24] cmp w0, w20 - beq .L1394 + beq .L1396 ldrh w0, [x19, 128] cmp w0, w20 - beq .L1394 + beq .L1396 ldrh w0, [x19, 80] cmp w0, w20 - beq .L1394 + beq .L1396 ldr x0, [x19, 72] ldr x1, [x19, 3552] ldrh w2, [x0, x21] ldrh w1, [x1, x21] strh w1, [x0, x21] - cbnz w2, .L1396 + cbnz w2, .L1398 mov w1, w20 add x0, x19, 2592 bl List_remove_node ldrh w0, [x19, 228] - cbnz w0, .L1397 + cbnz w0, .L1399 add x1, x22, 486 mov x0, x24 mov w2, 2330 bl sftl_printk -.L1397: +.L1399: ldrh w0, [x19, 228] sub w0, w0, #1 strh w0, [x19, 228] mov w0, w20 bl INSERT_DATA_LIST -.L1394: +.L1396: add w20, w20, 1 and w20, w20, 65535 - b .L1392 -.L1396: + b .L1394 +.L1398: mov w0, w20 bl update_vpc_list - b .L1394 -.L1399: + b .L1396 +.L1401: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] @@ -10821,7 +10835,7 @@ allocate_new_data_superblock: ldrh w19, [x0] ldrh w0, [x20, 244] cmp w0, w19 - bcs .L1405 + bcs .L1407 adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 adrp x0, .LC9 @@ -10829,35 +10843,35 @@ allocate_new_data_superblock: add x0, x0, :lo12:.LC9 mov w2, 2766 bl sftl_printk -.L1405: +.L1407: mov w0, 65535 cmp w19, w0 - beq .L1406 + beq .L1408 ldr x1, [x20, 72] ubfiz x0, x19, 1, 16 ldrh w0, [x1, x0] - cbz w0, .L1407 + cbz w0, .L1409 mov w0, w19 bl INSERT_DATA_LIST -.L1406: +.L1408: mov w0, 1 strb w0, [x21, 8] ldrh w0, [x20, 3698] mov w1, 65535 cmp w0, w1 - beq .L1408 + beq .L1410 cmp w0, w19 - bne .L1409 + bne .L1411 ldr x1, [x20, 72] ubfiz x19, x19, 1, 16 ldrh w1, [x1, x19] - cbz w1, .L1410 -.L1409: + cbz w1, .L1412 +.L1411: bl update_vpc_list -.L1410: +.L1412: mov w0, -1 strh w0, [x20, 3698] -.L1408: +.L1410: mov x0, x21 bl allocate_data_superblock bl l2p_flush @@ -10870,10 +10884,10 @@ allocate_new_data_superblock: ldp x29, x30, [sp], 48 hint 29 // autiasp ret -.L1407: +.L1409: mov w0, w19 bl INSERT_FREE_LIST - b .L1406 + b .L1408 .size allocate_new_data_superblock, .-allocate_new_data_superblock .section .rodata.str1.1 .LC123: @@ -10915,14 +10929,14 @@ FtlProgPages: bl FlashProgPages mov w1, 32 umaddl x21, w21, w1, x19 -.L1416: +.L1418: cmp x21, x19 - bne .L1423 + bne .L1425 adrp x0, .LANCHOR0+236 ldrb w1, [x20, 6] ldrh w0, [x0, #:lo12:.LANCHOR0+236] cmp w1, w0 - bcc .L1415 + bcc .L1417 adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 adrp x0, .LC9 @@ -10930,15 +10944,15 @@ FtlProgPages: add x0, x0, :lo12:.LC9 mov w2, 1000 bl sftl_printk -.L1415: +.L1417: mrs x0, sp_el0 ldr x1, [sp, 72] ldr x2, [x0, 1376] subs x1, x1, x2 mov x2, 0 - beq .L1425 + beq .L1427 bl __stack_chk_fail -.L1418: +.L1420: ldr w1, [x19, 4] mov x0, x24 bl sftl_printk @@ -10947,10 +10961,10 @@ FtlProgPages: bl P2V_block_in_plane bl decrement_vpc_count ldrh w0, [x20, 4] - cbnz w0, .L1417 + cbnz w0, .L1419 mov x0, x20 bl allocate_new_data_superblock -.L1417: +.L1419: mov x0, x20 bl get_new_active_ppa str w0, [x19, 4] @@ -10960,15 +10974,15 @@ FtlProgPages: ldrb w3, [x20, 9] mov x0, x19 bl FlashProgPages -.L1423: +.L1425: ldr w2, [x19] cmp w2, 256 ccmn w2, #1, 4, ne - beq .L1418 + beq .L1420 ldrb w1, [x20, 6] ldrh w0, [x23, 236] cmp w1, w0 - bcc .L1419 + bcc .L1421 adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 adrp x0, .LC9 @@ -10976,7 +10990,7 @@ FtlProgPages: add x0, x0, :lo12:.LC9 mov w2, 985 bl sftl_printk -.L1419: +.L1421: ldr w0, [x19, 4] add x1, sp, 68 str w0, [sp, 68] @@ -10986,7 +11000,7 @@ FtlProgPages: ldr x0, [x19, 16] ldr w0, [x0, 12] cmn w0, #1 - beq .L1420 + beq .L1422 ubfx x0, x0, 10, 16 bl P2V_block_in_plane and w1, w0, 65535 @@ -10994,18 +11008,18 @@ FtlProgPages: ldr x2, [x23, 72] ubfiz x0, x22, 1, 16 ldrh w0, [x2, x0] - cbnz w0, .L1421 + cbnz w0, .L1423 adrp x0, .LC124 mov w2, 0 add x0, x0, :lo12:.LC124 bl sftl_printk -.L1421: +.L1423: mov w0, w22 bl decrement_vpc_count -.L1420: +.L1422: add x19, x19, 32 - b .L1416 -.L1425: + b .L1418 +.L1427: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] @@ -11041,56 +11055,56 @@ FtlGcFreeTempBlock: ldrh w1, [x19, 306] mov w2, 65535 cmp w3, w2 - bne .L1431 -.L1438: + bne .L1433 +.L1440: ldrh w2, [x19, 128] add x0, x19, 128 str wzr, [x19, 3704] mov w1, 65535 cmp w2, w1 - bne .L1452 -.L1456: + bne .L1454 +.L1458: mov w0, 0 -.L1430: +.L1432: mrs x1, sp_el0 ldr x2, [sp, 72] ldr x3, [x1, 1376] subs x2, x2, x3 mov x3, 0 - beq .L1447 + beq .L1449 bl __stack_chk_fail -.L1431: +.L1433: adrp x20, .LANCHOR2 add x20, x20, :lo12:.LANCHOR2 - cbz w0, .L1434 + cbz w0, .L1436 ldrh w0, [x20, 4] cmp w0, w2 - beq .L1435 -.L1436: + beq .L1437 +.L1438: mov w1, 2 -.L1434: +.L1436: add x0, x19, 128 bl FtlGcScanTempBlk ldrh w1, [x20, 4] str w0, [sp, 68] mov w0, 65535 cmp w1, w0 - beq .L1438 + beq .L1440 mov w0, 1 - b .L1430 -.L1435: + b .L1432 +.L1437: ldrh w0, [x19, 228] strh wzr, [x20, 4] cmp w0, 17 - bhi .L1436 - b .L1434 -.L1452: + bhi .L1438 + b .L1436 +.L1454: ldrb w0, [x0, 7] ldrh w2, [x19, 306] ldrh w1, [x19, 3296] mul w0, w0, w2 cmp w1, w0 - beq .L1439 + beq .L1441 adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 adrp x0, .LC9 @@ -11098,7 +11112,7 @@ FtlGcFreeTempBlock: add x0, x0, :lo12:.LC9 mov w2, 164 bl sftl_printk -.L1439: +.L1441: ldrb w0, [x19, 135] mov w20, 0 ldrh w3, [x19, 306] @@ -11111,19 +11125,19 @@ FtlGcFreeTempBlock: ldrh w0, [x19, 3296] add w0, w0, w1 str w0, [x19, 2648] -.L1440: +.L1442: ldrh w0, [x19, 3296] cmp w0, w20 - bhi .L1444 + bhi .L1446 mov w0, -1 bl decrement_vpc_count ldrh w2, [x19, 128] ldr x1, [x19, 72] ldrh w0, [x19, 128] ldrh w1, [x1, x2, lsl 1] - cbz w1, .L1445 + cbz w1, .L1447 bl INSERT_DATA_LIST -.L1446: +.L1448: mov w20, -1 strh w20, [x19, 128] strh wzr, [x19, 3284] @@ -11135,29 +11149,29 @@ FtlGcFreeTempBlock: ldrh w1, [x19, 228] add w0, w0, w0, lsl 1 cmp w1, w0, lsr 2 - ble .L1456 + ble .L1458 mov w0, 20 strh w0, [x19, 3224] - b .L1456 -.L1444: + b .L1458 +.L1446: ldr x23, [x19, 3304] umull x22, w20, w24 ldr w1, [x19, 2624] add x21, x23, x22 ldr w0, [x21, 8] cmp w0, w1 - bcc .L1441 -.L1454: + bcc .L1443 +.L1456: ldrh w0, [x19, 128] - b .L1455 -.L1441: + b .L1457 +.L1443: add x1, sp, 68 mov w2, 0 bl log2phys ldr w1, [sp, 68] ldr w0, [x23, x22] cmp w0, w1 - bne .L1443 + bne .L1445 ubfx x0, x0, 10, 16 bl P2V_block_in_plane mov w22, w0 @@ -11166,21 +11180,21 @@ FtlGcFreeTempBlock: mov w2, 1 bl log2phys mov w0, w22 -.L1455: +.L1457: bl decrement_vpc_count - b .L1442 -.L1443: + b .L1444 +.L1445: ldr w0, [x21, 4] cmp w1, w0 - bne .L1454 -.L1442: + bne .L1456 +.L1444: add w20, w20, 1 and w20, w20, 65535 - b .L1440 -.L1445: - bl INSERT_FREE_LIST - b .L1446 + b .L1442 .L1447: + bl INSERT_FREE_LIST + b .L1448 +.L1449: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] @@ -11213,13 +11227,13 @@ FtlGcPageRecovery: ldrh w1, [x19, 130] ldrh w0, [x19, 306] cmp w1, w0 - bcc .L1457 + bcc .L1459 add x0, x19, 3632 bl FtlMapBlkWriteDump_data mov w0, 0 bl FtlGcFreeTempBlock str wzr, [x19, 3704] -.L1457: +.L1459: ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 32 hint 29 // autiasp @@ -11287,25 +11301,25 @@ Ftl_gc_temp_data_write_back: ldr w1, [x19, 3240] ldr x0, [x19, 3432] bl FlashProgPages -.L1463: +.L1465: ldr w1, [x19, 3240] ldr x2, [x19, 3432] cmp w20, w1 - bcc .L1466 + bcc .L1468 mov x0, x2 bl FtlGcBufFree ldrh w0, [x19, 132] str wzr, [x19, 3240] - cbnz w0, .L1468 + cbnz w0, .L1470 mov w0, 1 bl FtlGcFreeTempBlock mov w0, 1 -.L1462: +.L1464: ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 32 hint 29 // autiasp ret -.L1466: +.L1468: ubfiz x4, x20, 5, 16 add x1, x2, x4 ldr w2, [x2, x4] @@ -11313,18 +11327,18 @@ Ftl_gc_temp_data_write_back: ldr w1, [x1, 4] ldr w0, [x3, 12] cmn w2, #1 - bne .L1464 -.L1470: + bne .L1466 +.L1472: add w20, w20, 1 bl FtlGcUpdatePage and w20, w20, 65535 - b .L1463 -.L1464: + b .L1465 +.L1466: ldr w2, [x3, 8] - b .L1470 -.L1468: + b .L1472 +.L1470: mov w0, 0 - b .L1462 + b .L1464 .size Ftl_gc_temp_data_write_back, .-Ftl_gc_temp_data_write_back .align 2 .global Ftl_get_new_temp_ppa @@ -11347,10 +11361,10 @@ Ftl_get_new_temp_ppa: add x19, x19, :lo12:.LANCHOR0 ldrh w2, [x19, 128] cmp w2, w1 - beq .L1472 + beq .L1474 ldrh w0, [x19, 132] - cbnz w0, .L1473 -.L1472: + cbnz w0, .L1475 +.L1474: mov w0, 0 bl FtlGcFreeTempBlock add x0, x19, 128 @@ -11362,7 +11376,7 @@ Ftl_get_new_temp_ppa: mov w0, 0 bl FtlEctTblFlush bl FtlVpcTblFlush -.L1473: +.L1475: add x0, x19, 128 bl get_new_active_ppa ldr x19, [sp, 16] @@ -11402,21 +11416,21 @@ rk_ftl_garbage_collect: str x1, [sp, 136] mov x1, 0 ldr w0, [x23, 3408] - cbnz w0, .L1552 + cbnz w0, .L1554 ldrh w0, [x23, 2584] cmp w0, 47 - bls .L1552 + bls .L1554 adrp x0, .LANCHOR2+4 ldrh w1, [x0, #:lo12:.LANCHOR2+4] mov w0, 65535 cmp w1, w0 - bne .L1477 -.L1480: + bne .L1479 +.L1482: ldrh w0, [x23, 224] mov w1, 65535 cmp w0, w1 - bne .L1478 -.L1479: + bne .L1480 +.L1481: bl FtlReadRefresh ldr w1, [sp, 108] ldr w0, [x23, 3228] @@ -11431,43 +11445,43 @@ rk_ftl_garbage_collect: and w1, w1, w2 and w20, w1, 65535 cmp w19, w1, uxth - bne .L1554 + bne .L1556 ldrh w1, [x23, 228] mov w2, 1024 cmp w1, 24 mov w1, 5120 csel w1, w1, w2, cc cmp w0, w1 - bls .L1481 + bls .L1483 str wzr, [x23, 3228] strh wzr, [x23, 3952] bl GetSwlReplaceBlock and w20, w0, 65535 cmp w19, w0, uxth - bne .L1483 + bne .L1485 ldrh w1, [x23, 228] ldrh w0, [x23, 3226] cmp w1, w0 - bcs .L1484 + bcs .L1486 mov w0, 64 bl List_get_gc_head_node and w1, w0, 65535 cmp w20, w0, uxth - beq .L1486 + beq .L1488 ldr x0, [x23, 72] ubfiz x1, x1, 1, 16 ldrh w0, [x0, x1] cmp w0, 7 - bhi .L1487 + bhi .L1489 mov w0, 0 bl List_get_gc_head_node mov w2, 128 strh w2, [x23, 3226] and w1, w0, 65535 cmp w20, w0, uxth - beq .L1486 + beq .L1488 mov w20, w1 -.L1483: +.L1485: ldr x1, [x23, 72] ubfiz x0, x20, 1, 16 ldr x2, [x23, 2600] @@ -11479,197 +11493,197 @@ rk_ftl_garbage_collect: ldrh w2, [x23, 228] add x0, x0, :lo12:.LC125 bl sftl_printk - b .L1486 -.L1477: + b .L1488 +.L1479: ldrh w1, [x23, 128] cmp w1, w0 - beq .L1480 + beq .L1482 mov w0, 1 bl FtlGcFreeTempBlock - cbz w0, .L1480 + cbz w0, .L1482 mov w0, 1 - b .L1475 -.L1478: + b .L1477 +.L1480: ldrh w2, [x23, 226] cmp w2, w1 - bne .L1479 + bne .L1481 strh w0, [x23, 226] mov w0, -1 strh w0, [x23, 224] - b .L1479 -.L1487: + b .L1481 +.L1489: mov w0, 64 -.L1582: +.L1584: strh w0, [x23, 3226] -.L1486: +.L1488: bl FtlGcReFreshBadBlk -.L1481: +.L1483: ldr w1, [sp, 108] mov w0, 65535 cmp w1, 0 ccmp w20, w0, 0, eq - bne .L1489 + bne .L1491 ldrh w0, [x23, 228] cmp w0, 24 - bhi .L1557 + bhi .L1559 ldrh w19, [x23, 306] cmp w0, 16 - bls .L1491 + bls .L1493 lsr w19, w19, 5 -.L1490: +.L1492: ldrh w1, [x23, 3224] cmp w1, w0 - bcs .L1493 + bcs .L1495 ldrh w1, [x23, 226] ldrh w0, [x23, 128] and w0, w0, w1 mov w1, 65535 cmp w1, w0, uxth - bne .L1494 + bne .L1496 ldrh w0, [x23, 3952] - cbnz w0, .L1495 + cbnz w0, .L1497 ldr w1, [x23, 2624] ldr w2, [x23, 2620] add w1, w1, w1, lsl 1 cmp w2, w1, lsr 2 - bcs .L1558 -.L1495: + bcs .L1560 +.L1497: ldrh w1, [x23, 2692] add w1, w1, w1, lsl 1 lsr w1, w1, 2 -.L1496: +.L1498: strh w1, [x23, 3224] str wzr, [x23, 3236] -.L1475: +.L1477: mrs x1, sp_el0 ldr x2, [sp, 136] ldr x3, [x1, 1376] subs x2, x2, x3 mov x3, 0 - beq .L1550 + beq .L1552 bl __stack_chk_fail -.L1484: +.L1486: mov w0, 80 - b .L1582 -.L1554: + b .L1584 +.L1556: mov w20, w19 - b .L1481 -.L1491: + b .L1483 +.L1493: cmp w0, 12 - bls .L1492 + bls .L1494 lsr w19, w19, 4 - b .L1490 -.L1492: - cmp w0, 8 - bls .L1490 - lsr w19, w19, 2 - b .L1490 -.L1557: - mov w19, 1 - b .L1490 -.L1558: - mov w1, 18 - b .L1496 + b .L1492 .L1494: + cmp w0, 8 + bls .L1492 + lsr w19, w19, 2 + b .L1492 +.L1559: + mov w19, 1 + b .L1492 +.L1560: + mov w1, 18 + b .L1498 +.L1496: ldrh w0, [x23, 2692] add w0, w0, w0, lsl 1 asr w0, w0, 2 strh w0, [x23, 3224] -.L1493: +.L1495: ldrh w0, [x23, 3312] - cbz w0, .L1559 + cbz w0, .L1561 add w19, w19, 32 and w19, w19, 65535 -.L1559: +.L1561: mov w20, 65535 -.L1498: +.L1500: ldrh w0, [x23, 176] mov w1, 65535 cmp w0, w1 - bne .L1506 + bne .L1508 cmp w20, w0 - beq .L1507 + beq .L1509 strh w20, [x23, 176] -.L1508: +.L1510: ldrh w0, [x23, 176] add x21, x23, 176 strb wzr, [x21, 8] mov w1, 65535 cmp w0, w1 - beq .L1506 + beq .L1508 bl IsBlkInGcList - cbz w0, .L1511 + cbz w0, .L1513 mov w0, -1 strh w0, [x23, 176] -.L1506: +.L1508: ldrh w0, [x23, 176] ldrh w1, [x23, 24] cmp w1, w0 - beq .L1512 + beq .L1514 ldrh w1, [x23, 80] cmp w1, w0 - beq .L1512 + beq .L1514 ldrh w1, [x23, 128] cmp w1, w0 - bne .L1513 -.L1512: + bne .L1515 +.L1514: mov w0, -1 strh w0, [x23, 176] -.L1513: +.L1515: adrp x21, .LANCHOR1 add x21, x21, :lo12:.LANCHOR1 add x21, x21, 568 -.L1548: +.L1550: ldrh w24, [x23, 176] mov w0, 65535 cmp w24, w0 - bne .L1514 + bne .L1516 mov w25, 2 str wzr, [x23, 3236] -.L1515: +.L1517: ldrh w22, [x23, 3232] mov w0, w22 bl List_get_gc_head_node and w26, w0, 65535 strh w26, [x23, 176] cmp w26, w24 - bne .L1516 + bne .L1518 mov w0, 8 strh wzr, [x23, 3232] - b .L1475 -.L1489: + b .L1477 +.L1491: ldrh w19, [x23, 128] ldrh w1, [x23, 226] and w19, w19, w1 and w19, w20, w19 cmp w19, w0 - bne .L1560 + bne .L1562 ldrh w0, [x23, 176] cmp w0, w19 - beq .L1499 -.L1503: + beq .L1501 +.L1505: mov w20, w19 -.L1560: +.L1562: mov w19, 1 - b .L1498 -.L1499: + b .L1500 +.L1501: ldrh w1, [x23, 228] ldrh w0, [x23, 3224] str wzr, [x23, 3236] cmp w1, w0 - bls .L1500 + bls .L1502 ldrh w0, [x23, 3952] - cbnz w0, .L1501 + cbnz w0, .L1503 ldr w0, [x23, 2624] ldr w1, [x23, 2620] add w0, w0, w0, lsl 1 cmp w1, w0, lsr 2 - bcs .L1561 -.L1501: + bcs .L1563 +.L1503: ldrh w0, [x23, 2692] add w0, w0, w0, lsl 1 lsr w0, w0, 2 -.L1502: +.L1504: strh w0, [x23, 3224] bl FtlReadRefresh mov w0, 0 @@ -11678,16 +11692,16 @@ rk_ftl_garbage_collect: ubfiz x0, x0, 1, 16 ldrh w0, [x1, x0] cmp w0, 4 - bls .L1500 -.L1583: + bls .L1502 +.L1585: ldrh w0, [x23, 3952] - b .L1475 -.L1561: + b .L1477 +.L1563: mov w0, 18 - b .L1502 -.L1500: + b .L1504 +.L1502: ldrh w0, [x23, 3952] - cbnz w0, .L1503 + cbnz w0, .L1505 ldrh w20, [x23, 2692] add w0, w20, w20, lsl 1 asr w0, w0, 2 @@ -11703,43 +11717,43 @@ rk_ftl_garbage_collect: mov w2, 2 sdiv w0, w0, w2 cmp w1, w0 - ble .L1504 + ble .L1506 ldrh w0, [x23, 228] sub w20, w20, #1 cmp w0, w20 - blt .L1504 + blt .L1506 bl FtlReadRefresh - b .L1583 -.L1504: - cbnz w1, .L1503 + b .L1585 +.L1506: + cbnz w1, .L1505 mov w0, -1 bl decrement_vpc_count ldrh w0, [x23, 228] add w0, w0, 1 - b .L1475 -.L1507: + b .L1477 +.L1509: ldrh w0, [x23, 226] cmp w0, w20 - beq .L1508 + beq .L1510 ldr x1, [x23, 72] ubfiz x0, x0, 1, 16 ldrh w0, [x1, x0] - cbnz w0, .L1509 + cbnz w0, .L1511 mov w0, -1 strh w0, [x23, 226] -.L1509: +.L1511: ldrh w0, [x23, 226] strh w0, [x23, 176] mov w0, -1 strh w0, [x23, 226] - b .L1508 -.L1516: + b .L1510 +.L1518: mov w0, w26 bl IsBlkInGcList add w1, w22, 1 and w1, w1, 65535 strh w1, [x23, 3232] - cbnz w0, .L1515 + cbnz w0, .L1517 ldrh w5, [x23, 236] ubfiz x2, x26, 1, 16 ldrh w0, [x23, 306] @@ -11748,68 +11762,68 @@ rk_ftl_garbage_collect: ldrh w4, [x3, x2] sdiv w5, w0, w25 cmp w4, w5 - bgt .L1519 + bgt .L1521 cmp w1, 48 - bls .L1520 + bls .L1522 cmp w4, 8 - bls .L1520 + bls .L1522 ldrh w1, [x23, 3284] cmp w1, 35 - bhi .L1520 -.L1519: + bhi .L1522 +.L1521: strh wzr, [x23, 3232] -.L1520: +.L1522: ldrh w1, [x3, x2] cmp w0, w1 - bgt .L1521 + bgt .L1523 cmp w20, w24 - bne .L1521 + bne .L1523 ldrh w0, [x23, 3232] cmp w0, 3 - bhi .L1521 + bhi .L1523 mov w0, -1 strh w0, [x23, 176] strh wzr, [x23, 3232] - b .L1583 -.L1521: - cbnz w1, .L1522 + b .L1585 +.L1523: + cbnz w1, .L1524 mov w0, -1 bl decrement_vpc_count ldrh w0, [x23, 3232] add w0, w0, 1 strh w0, [x23, 3232] - b .L1515 -.L1522: + b .L1517 +.L1524: ldrh w0, [x23, 24] strb wzr, [x23, 184] cmp w0, w26 - bne .L1523 + bne .L1525 adrp x0, .LC9 mov x1, x21 add x0, x0, :lo12:.LC9 mov w2, 717 bl sftl_printk -.L1523: +.L1525: ldrh w1, [x23, 176] ldrh w0, [x23, 80] cmp w1, w0 - bne .L1524 + bne .L1526 adrp x0, .LC9 mov x1, x21 add x0, x0, :lo12:.LC9 mov w2, 718 bl sftl_printk -.L1524: +.L1526: ldrh w1, [x23, 176] ldrh w0, [x23, 128] cmp w1, w0 - bne .L1525 + bne .L1527 adrp x0, .LC9 mov x1, x21 add x0, x0, :lo12:.LC9 mov w2, 719 bl sftl_printk -.L1525: +.L1527: add x22, x23, 176 mov x0, x22 bl make_superblock @@ -11820,13 +11834,13 @@ rk_ftl_garbage_collect: strh wzr, [x23, 178] strb wzr, [x23, 182] strh w0, [x23, 3956] -.L1514: +.L1516: mov w0, 1 str w0, [x23, 3408] ldrh w0, [x23, 306] str w0, [sp, 104] ldr w0, [sp, 108] - cbz w0, .L1526 + cbz w0, .L1528 ldr w1, [sp, 104] ldrh w0, [x23, 236] ldrh w2, [x23, 176] @@ -11838,46 +11852,46 @@ rk_ftl_garbage_collect: sdiv w0, w0, w1 add w19, w0, w19 and w19, w19, 65535 -.L1526: +.L1528: ldrh w0, [x23, 178] ldr w2, [sp, 104] add w1, w0, w19 cmp w1, w2 - ble .L1527 + ble .L1529 sub w0, w2, w0 and w19, w0, 65535 -.L1527: +.L1529: add x26, x23, 176 mov w27, 0 -.L1528: +.L1530: ldrh w0, [x26, 2] cmp w19, w27, uxth - bls .L1536 + bls .L1538 ldrh w7, [x23, 236] add w1, w0, w27 mov x4, x26 mov w22, 0 mov w2, 0 mov w5, 65535 - b .L1537 -.L1530: + b .L1539 +.L1532: ldrh w3, [x4, 16] cmp w3, w5 - beq .L1529 + beq .L1531 ubfiz x8, x22, 5, 16 add w22, w22, 1 add x0, x0, x8 and w22, w22, 65535 orr w3, w1, w3, lsl 10 str w3, [x0, 4] -.L1529: +.L1531: add w2, w2, 1 add x4, x4, 2 and w2, w2, 65535 -.L1537: +.L1539: ldr x0, [x23, 3272] cmp w2, w7 - bne .L1530 + bne .L1532 ldrb w2, [x26, 8] mov w1, w22 mov x24, 0 @@ -11885,33 +11899,33 @@ rk_ftl_garbage_collect: adrp x0, .LC9 add x0, x0, :lo12:.LC9 str x0, [sp, 112] -.L1531: +.L1533: cmp w22, w24, uxth - bhi .L1535 + bhi .L1537 add w27, w27, 1 - b .L1528 -.L1535: + b .L1530 +.L1537: ldr x0, [x23, 3272] lsl x28, x24, 5 add x1, x0, x24, lsl 5 ldr w0, [x0, x28] cmn w0, #1 - beq .L1532 + beq .L1534 ldr x25, [x1, 16] mov w0, 61589 ldrh w1, [x25] cmp w1, w0 - bne .L1532 + bne .L1534 ldr w4, [x25, 8] cmn w4, #1 - bne .L1533 + bne .L1535 ldr x0, [sp, 112] mov x1, x21 mov w2, 753 str w4, [sp, 120] bl sftl_printk ldr w4, [sp, 120] -.L1533: +.L1535: add x1, sp, 128 mov w2, 0 mov w0, w4 @@ -11921,7 +11935,7 @@ rk_ftl_garbage_collect: add x0, x0, x28 ldr w2, [x0, 4] cmp w2, w1 - bne .L1532 + bne .L1534 ldrh w1, [x23, 3954] ldr x2, [x23, 3432] add w1, w1, 1 @@ -11962,61 +11976,61 @@ rk_ftl_garbage_collect: ldr w0, [x23, 3240] ldrb w1, [x2, 7] cmp w1, w0 - beq .L1534 + beq .L1536 ldrh w0, [x2, 4] - cbnz w0, .L1532 -.L1534: + cbnz w0, .L1534 +.L1536: bl Ftl_gc_temp_data_write_back - cbz w0, .L1532 + cbz w0, .L1534 mov w0, 65535 str w0, [x23, 176] str wzr, [x23, 3408] - b .L1583 -.L1532: + b .L1585 +.L1534: add x24, x24, 1 - b .L1531 -.L1536: + b .L1533 +.L1538: add w19, w19, w0 ldr w0, [sp, 104] and w19, w19, 65535 strh w19, [x26, 2] cmp w0, w19 - bhi .L1538 + bhi .L1540 ldr w0, [x23, 3240] - cbz w0, .L1539 + cbz w0, .L1541 bl Ftl_gc_temp_data_write_back - cbz w0, .L1539 + cbz w0, .L1541 str wzr, [x23, 3408] - b .L1583 -.L1539: + b .L1585 +.L1541: ldrh w0, [x23, 3954] - cbnz w0, .L1540 + cbnz w0, .L1542 ldrh w1, [x23, 176] ldr x0, [x23, 72] ldrh w0, [x0, x1, lsl 1] - cbz w0, .L1540 + cbz w0, .L1542 mov w19, 0 - b .L1541 -.L1544: + b .L1543 +.L1546: add x1, sp, 132 mov w0, w19 mov w2, 0 bl log2phys ldr w0, [sp, 132] cmn w0, #1 - beq .L1542 + beq .L1544 ubfx x0, x0, 10, 16 bl P2V_block_in_plane ldrh w1, [x23, 176] cmp w1, w0, uxth - beq .L1543 -.L1542: + beq .L1545 +.L1544: add w19, w19, 1 -.L1541: +.L1543: ldr w0, [x23, 2624] cmp w19, w0 - bcc .L1544 -.L1546: + bcc .L1546 +.L1548: ldrh w1, [x23, 176] ldr x0, [x23, 72] strh wzr, [x0, x1, lsl 1] @@ -12024,30 +12038,30 @@ rk_ftl_garbage_collect: bl update_vpc_list bl l2p_flush bl FtlVpcTblFlush -.L1540: +.L1542: mov w0, -1 strh w0, [x23, 176] -.L1538: +.L1540: ldrh w0, [x23, 228] str wzr, [x23, 3408] cmp w0, 2 - bhi .L1547 + bhi .L1549 ldrh w19, [x23, 306] - b .L1548 -.L1543: + b .L1550 +.L1545: ldr w0, [x23, 2624] cmp w19, w0 - bcc .L1540 - b .L1546 -.L1547: + bcc .L1542 + b .L1548 +.L1549: ldrh w1, [x23, 3952] cmp w1, 0 csinc w0, w1, w0, ne - b .L1475 -.L1552: + b .L1477 +.L1554: mov w0, 0 - b .L1475 -.L1511: + b .L1477 +.L1513: mov x0, x21 bl make_superblock ldrh w1, [x23, 176] @@ -12057,8 +12071,8 @@ rk_ftl_garbage_collect: strh wzr, [x23, 3954] ldrh w0, [x0, x1, lsl 1] strh w0, [x23, 3956] - b .L1506 -.L1550: + b .L1508 +.L1552: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] @@ -12097,36 +12111,36 @@ FtlRead: str x2, [sp, 152] mov x2, 0 cmp w0, 16 - bne .L1585 + bne .L1587 mov x2, x3 mov w1, w23 add w0, w26, 256 bl FtlVendorPartRead mov w19, w0 -.L1584: +.L1586: mrs x0, sp_el0 ldr x1, [sp, 152] ldr x2, [x0, 1376] subs x1, x1, x2 mov x2, 0 - beq .L1607 + beq .L1609 bl __stack_chk_fail -.L1585: +.L1587: adrp x3, .LANCHOR0 add x28, x3, :lo12:.LANCHOR0 ldr w0, [x28, 344] cmp w0, w26 - bls .L1610 + bls .L1612 cmp w0, w23 - bcc .L1610 + bcc .L1612 add w1, w26, w23 str w1, [sp, 116] cmp w0, w1 - bcc .L1610 + bcc .L1612 adrp x0, .LANCHOR2 ldr w19, [x0, #:lo12:.LANCHOR2] cmn w19, #1 - beq .L1584 + beq .L1586 ldrh w0, [x28, 262] mov w20, 0 mov w19, 0 @@ -12146,56 +12160,56 @@ FtlRead: ldr w0, [x28, 2628] add w0, w0, w24 str w0, [x28, 2628] -.L1587: - cbnz w24, .L1605 +.L1589: + cbnz w24, .L1607 ldrh w0, [x28, 3312] - cbnz w0, .L1606 + cbnz w0, .L1608 ldrh w0, [x28, 228] cmp w0, 31 - bhi .L1584 -.L1606: + bhi .L1586 +.L1608: mov w1, 1 mov w0, 0 bl rk_ftl_garbage_collect - b .L1584 -.L1605: + b .L1586 +.L1607: add x1, sp, 148 mov w0, w22 mov w2, 0 bl log2phys ldr w1, [sp, 148] cmn w1, #1 - bne .L1620 + bne .L1622 mov w27, 0 - b .L1588 -.L1591: + b .L1590 +.L1593: madd w0, w0, w22, w27 cmp w26, w0 - bhi .L1590 + bhi .L1592 ldr w1, [sp, 116] cmp w1, w0 - bls .L1590 + bls .L1592 sub w0, w0, w26 mov w2, 512 mov w1, 0 lsl w0, w0, 9 add x0, x21, x0 bl ftl_memset -.L1590: +.L1592: add w27, w27, 1 -.L1588: +.L1590: ldrh w0, [x28, 262] cmp w0, w27 - bhi .L1591 -.L1592: + bhi .L1593 +.L1594: add w22, w22, 1 subs w24, w24, #1 - beq .L1597 + beq .L1599 ldrh w0, [x28, 236] cmp w20, w0, lsl 2 - bne .L1587 -.L1597: - cbz w20, .L1587 + bne .L1589 +.L1599: + cbz w20, .L1589 ldr x0, [x28, 3424] mov w1, w20 mov w2, 0 @@ -12210,60 +12224,60 @@ FtlRead: ldr w0, [sp, 108] lsl w0, w0, 9 str w0, [sp, 128] -.L1604: +.L1606: ldr x0, [x28, 3424] lsl x6, x27, 5 ldr w2, [sp, 100] add x0, x0, x27, lsl 5 ldr w1, [x0, 24] cmp w1, w2 - bne .L1599 + bne .L1601 ldr x1, [x0, 8] ldr x0, [x28, 3472] cmp x1, x0 - bne .L1600 + bne .L1602 ldr x0, [sp, 120] str x6, [sp, 136] ldr w2, [sp, 128] add x1, x1, x0 mov x0, x21 -.L1623: +.L1625: bl ftl_memcpy ldr x6, [sp, 136] -.L1600: +.L1602: ldr x1, [x28, 3424] add x0, x1, x6 ldr x2, [x0, 16] ldr w7, [x0, 24] ldr w2, [x2, 8] cmp w7, w2 - beq .L1601 + beq .L1603 ldr w2, [x28, 2784] add w2, w2, 1 str w2, [x28, 2784] -.L1601: +.L1603: ldr w7, [x1, x6] cmn w7, #1 - bne .L1602 + bne .L1604 ldr w2, [x28, 2784] mov w19, w7 add w2, w2, 1 str w2, [x28, 2784] -.L1602: +.L1604: ldr w1, [x1, x6] cmp w1, 256 - bne .L1603 + bne .L1605 ldr w0, [x0, 4] ubfx x0, x0, 10, 16 bl P2V_block_in_plane bl FtlGcRefreshBlock -.L1603: +.L1605: add x27, x27, 1 cmp w20, w27 - bhi .L1604 + bhi .L1606 mov w20, 0 - b .L1587 -.L1620: + b .L1589 +.L1622: ldr x0, [x28, 3424] ubfiz x5, x20, 5, 32 add x0, x0, x5 @@ -12271,7 +12285,7 @@ FtlRead: ldr w0, [sp, 100] ldrh w1, [x28, 262] cmp w22, w0 - bne .L1593 + bne .L1595 udiv w6, w26, w1 ldr x0, [x28, 3424] ldr x2, [x28, 3472] @@ -12285,7 +12299,7 @@ FtlRead: cmp w1, w3 csel x1, x2, x21, ne str x1, [x0, 8] -.L1594: +.L1596: ldrh w0, [x28, 316] ldr x1, [x28, 3424] ldr x2, [x28, 3520] @@ -12296,34 +12310,34 @@ FtlRead: add x0, x2, x0 str x0, [x1, 16] str w22, [x1, 24] - b .L1592 -.L1593: + b .L1594 +.L1595: ldr x2, [x28, 3424] mul w0, w22, w1 add x2, x2, x5 cmp w22, w25 - bne .L1595 + bne .L1597 ldr w3, [sp, 116] sub w3, w3, w0 str w3, [sp, 112] cmp w3, w1 - beq .L1595 + beq .L1597 ldr x0, [x28, 3480] -.L1622: +.L1624: str x0, [x2, 8] - b .L1594 -.L1595: + b .L1596 +.L1597: sub w0, w0, w26 lsl w0, w0, 9 add x0, x21, x0 - b .L1622 -.L1599: + b .L1624 +.L1601: cmp w1, w25 - bne .L1600 + bne .L1602 ldr x1, [x0, 8] ldr x0, [x28, 3480] cmp x1, x0 - bne .L1600 + bne .L1602 ldrh w0, [x28, 262] ldr w2, [sp, 132] str x6, [sp, 136] @@ -12331,11 +12345,11 @@ FtlRead: sub w0, w0, w26 lsl w0, w0, 9 add x0, x21, x0 - b .L1623 -.L1610: + b .L1625 +.L1612: mov w19, -1 - b .L1584 -.L1607: + b .L1586 +.L1609: mov w0, w19 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] @@ -12405,36 +12419,36 @@ FtlWrite: str x2, [sp, 216] mov x2, 0 cmp w0, 16 - bne .L1627 + bne .L1629 ldr w1, [sp, 120] mov x2, x3 add w0, w21, 256 bl FtlVendorPartWrite -.L1626: +.L1628: mrs x1, sp_el0 ldr x2, [sp, 216] ldr x3, [x1, 1376] subs x2, x2, x3 mov x3, 0 - beq .L1664 + beq .L1666 bl __stack_chk_fail -.L1627: +.L1629: adrp x4, .LANCHOR0 add x24, x4, :lo12:.LANCHOR0 ldr w0, [x24, 344] cmp w0, w21 - bls .L1667 + bls .L1669 ldr w1, [sp, 120] cmp w0, w1 - bcc .L1667 + bcc .L1669 add w1, w21, w1 str w1, [sp, 124] cmp w0, w1 - bcc .L1667 + bcc .L1669 adrp x0, .LANCHOR2 ldr w0, [x0, #:lo12:.LANCHOR2] cmn w0, #1 - beq .L1626 + beq .L1628 mov w0, 2048 str w0, [x24, 3960] ldrh w0, [x24, 262] @@ -12456,66 +12470,66 @@ FtlWrite: adrp x0, .LANCHOR2 add x0, x0, :lo12:.LANCHOR2 ldr w0, [x0, 8] - cbz w0, .L1629 + cbz w0, .L1631 ldrh w1, [x20, 4] add x0, x24, 80 cmp w1, 0 csel x20, x0, x20, eq -.L1629: +.L1631: adrp x23, .LANCHOR1 add x23, x23, :lo12:.LANCHOR1 adrp x28, .LC9 mov w19, w27 add x23, x23, 591 add x28, x28, :lo12:.LC9 -.L1630: - cbnz w26, .L1660 +.L1632: + cbnz w26, .L1662 ldr w1, [sp, 136] mov w0, 0 bl rk_ftl_garbage_collect ldrh w0, [x24, 228] cmp w0, 5 - bls .L1672 -.L1663: + bls .L1674 +.L1665: mov w0, 0 - b .L1626 -.L1660: + b .L1628 +.L1662: ldrb w1, [x20, 6] ldrh w0, [x24, 236] cmp w1, w0 - bcc .L1631 + bcc .L1633 mov x1, x23 mov x0, x28 mov w2, 1041 bl sftl_printk -.L1631: +.L1633: ldrh w0, [x20, 4] - cbnz w0, .L1632 + cbnz w0, .L1634 add x0, x24, 24 cmp x20, x0 - bne .L1633 + bne .L1635 ldrh w1, [x24, 84] add x0, x24, 80 - cbnz w1, .L1634 + cbnz w1, .L1636 bl allocate_new_data_superblock adrp x0, .LANCHOR2 add x0, x0, :lo12:.LANCHOR2 str wzr, [x0, 8] -.L1634: +.L1636: add x0, x24, 24 bl allocate_new_data_superblock adrp x0, .LANCHOR2 add x0, x0, :lo12:.LANCHOR2 ldr w0, [x0, 8] - cbnz w0, .L1671 -.L1636: + cbnz w0, .L1673 +.L1638: add x20, x24, 24 -.L1635: +.L1637: ldrh w0, [x20, 4] - cbnz w0, .L1632 + cbnz w0, .L1634 mov x0, x20 bl allocate_new_data_superblock -.L1632: +.L1634: ldrh w0, [x20, 4] ldrb w1, [x20, 7] cmp w0, w26 @@ -12527,12 +12541,12 @@ FtlWrite: str w0, [sp, 140] ldrh w0, [x24, 236] cmp w1, w0 - bcc .L1637 + bcc .L1639 mov x1, x23 mov x0, x28 mov w2, 1074 bl sftl_printk -.L1637: +.L1639: ldr w0, [sp, 140] str xzr, [sp, 104] add w0, w0, w19 @@ -12540,42 +12554,42 @@ FtlWrite: adrp x0, .LC127 add x0, x0, :lo12:.LC127 str x0, [sp, 168] -.L1638: +.L1640: ldr w0, [sp, 164] ldr w22, [sp, 104] cmp w19, w0 - bne .L1658 + bne .L1660 ldr w22, [sp, 140] -.L1639: +.L1641: ldr x0, [x24, 3440] mov x3, x20 mov w1, w22 mov w2, 0 bl FtlProgPages cmp w26, w22 - bcs .L1659 + bcs .L1661 mov x1, x23 mov x0, x28 mov w2, 1152 bl sftl_printk -.L1659: +.L1661: sub w26, w26, w22 - b .L1630 -.L1633: + b .L1632 +.L1635: adrp x1, .LANCHOR2 add x1, x1, :lo12:.LANCHOR2 ldrh w0, [x0, 4] str wzr, [x1, 8] - cbnz w0, .L1636 + cbnz w0, .L1638 mov x0, x20 bl allocate_new_data_superblock - b .L1635 -.L1671: + b .L1637 +.L1673: add x20, x24, 80 - b .L1635 -.L1658: + b .L1637 +.L1660: ldrh w0, [x20, 4] - cbz w0, .L1639 + cbz w0, .L1641 add x1, sp, 180 mov w2, 0 mov w0, w19 @@ -12609,9 +12623,9 @@ FtlWrite: cmp w19, w27 ldrh w1, [x24, 262] ccmp w19, w0, 4, ne - bne .L1640 + bne .L1642 cmp w19, w27 - bne .L1641 + bne .L1643 udiv w0, w21, w1 msub w0, w0, w1, w21 str w0, [sp, 128] @@ -12620,13 +12634,13 @@ FtlWrite: cmp w2, w0 csel w0, w2, w0, ls str w0, [sp, 132] -.L1642: +.L1644: ldr x0, [sp, 112] ldr x3, [x24, 3440] add x3, x3, x0 ldr w0, [sp, 132] cmp w1, w0 - bne .L1643 + bne .L1645 mul w0, w1, w19 cmp w19, w27 sub w0, w0, w21 @@ -12634,16 +12648,16 @@ FtlWrite: add x0, x25, x0 csel x0, x25, x0, eq str x0, [x3, 8] -.L1645: +.L1647: ldrb w1, [x20, 6] ldrh w0, [x24, 236] cmp w1, w0 - bcc .L1655 + bcc .L1657 mov x1, x23 mov x0, x28 mov w2, 1143 bl sftl_printk -.L1655: +.L1657: ldp x2, x1, [sp, 144] mov w0, -3947 strh w0, [x1, x2] @@ -12660,22 +12674,22 @@ FtlWrite: ldr x0, [sp, 104] add x0, x0, 1 str x0, [sp, 104] - b .L1638 -.L1641: + b .L1640 +.L1643: ldr w0, [sp, 124] msub w2, w1, w19, w0 and w0, w2, 65535 stp wzr, w0, [sp, 128] - b .L1642 -.L1643: + b .L1644 +.L1645: cmp w19, w27 - bne .L1646 + bne .L1648 ldr x0, [x24, 3472] -.L1678: +.L1680: str x0, [x3, 8] ldr w0, [sp, 180] cmn w0, #1 - beq .L1648 + beq .L1650 str w19, [sp, 208] mov w2, 0 str w0, [sp, 188] @@ -12688,7 +12702,7 @@ FtlWrite: bl FlashReadPages ldr w3, [sp, 184] cmn w3, #1 - bne .L1649 + bne .L1651 ldr w0, [x24, 2784] mov w2, w19 add w0, w0, 1 @@ -12697,11 +12711,11 @@ FtlWrite: add x0, x0, :lo12:.LC126 ldr w1, [x22, 8] bl sftl_printk -.L1653: +.L1655: ldr w0, [sp, 132] cmp w19, w27 lsl w2, w0, 9 - bne .L1654 + bne .L1656 ldr x0, [sp, 112] ldr x1, [x24, 3440] add x1, x1, x0 @@ -12710,16 +12724,16 @@ FtlWrite: lsl w0, w0, 9 mov x1, x25 add x0, x3, x0 -.L1679: +.L1681: bl ftl_memcpy - b .L1645 -.L1646: + b .L1647 +.L1648: ldr x0, [x24, 3480] - b .L1678 -.L1649: + b .L1680 +.L1651: ldr w0, [x22, 8] cmp w0, w19 - beq .L1653 + beq .L1655 ldr w0, [x24, 2784] mov w2, w19 add w0, w0, 1 @@ -12729,19 +12743,19 @@ FtlWrite: bl sftl_printk ldr w0, [x22, 8] cmp w0, w19 - beq .L1653 + beq .L1655 mov x1, x23 mov x0, x28 mov w2, 1128 bl sftl_printk - b .L1653 -.L1648: + b .L1655 +.L1650: ldrh w2, [x24, 314] mov w1, 0 ldr x0, [x3, 8] bl ftl_memset - b .L1653 -.L1654: + b .L1655 +.L1656: ldrh w1, [x24, 262] ldr x3, [sp, 112] ldr x0, [x24, 3440] @@ -12751,8 +12765,8 @@ FtlWrite: lsl w1, w1, 9 add x1, x25, x1 ldr x0, [x0, 8] - b .L1679 -.L1640: + b .L1681 +.L1642: ldr x2, [sp, 112] mul w1, w1, w19 ldr x0, [x24, 3440] @@ -12761,21 +12775,21 @@ FtlWrite: lsl w1, w1, 9 add x1, x25, x1 str x1, [x0, 8] - b .L1645 -.L1672: + b .L1647 +.L1674: mov w19, 256 mov w21, 65535 mov w20, 128 -.L1661: +.L1663: ldrh w0, [x24, 176] ldrh w1, [x24, 226] and w0, w0, w1 cmp w21, w0, uxth - bne .L1662 + bne .L1664 mov w0, 0 bl List_get_gc_head_node bl FtlGcRefreshBlock -.L1662: +.L1664: mov w1, 1 mov w0, w1 strh w20, [x24, 3224] @@ -12786,14 +12800,14 @@ FtlWrite: bl rk_ftl_garbage_collect ldrh w0, [x24, 228] cmp w0, 2 - bhi .L1663 + bhi .L1665 subs w19, w19, #1 - bne .L1661 - b .L1663 -.L1667: + bne .L1663 + b .L1665 +.L1669: mov w0, -1 - b .L1626 -.L1664: + b .L1628 +.L1666: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] @@ -12863,10 +12877,10 @@ FtlLoadSysInfo: ldrh w0, [x19, 2696] mov w1, 65535 cmp w0, w1 - bne .L1683 -.L1695: + bne .L1685 +.L1697: mov w0, -1 -.L1682: +.L1684: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] @@ -12874,7 +12888,7 @@ FtlLoadSysInfo: ldp x29, x30, [sp], 80 hint 29 // autiasp ret -.L1683: +.L1685: add x21, x19, 2560 mov w1, 1 bl FtlGetLastWrittenPage @@ -12887,8 +12901,8 @@ FtlLoadSysInfo: adrp x21, .LANCHOR1 add x21, x21, :lo12:.LANCHOR1 add x21, x21, 600 -.L1685: - tbz w20, #31, .L1692 +.L1687: + tbz w20, #31, .L1694 adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 add x1, x1, 600 @@ -12896,8 +12910,8 @@ FtlLoadSysInfo: adrp x0, .LC9 add x0, x0, :lo12:.LC9 bl sftl_printk - b .L1691 -.L1692: + b .L1693 +.L1694: orr w0, w20, w22, lsl 10 str w0, [x25, 4] ldr x0, [x19, 3448] @@ -12910,14 +12924,14 @@ FtlLoadSysInfo: ldr w23, [x0, 12] ldr w0, [x25] cmn w0, #1 - cbz w23, .L1686 - beq .L1687 + cbz w23, .L1688 + beq .L1689 ldrh w1, [x19, 314] ldr x0, [x25, 8] bl js_hash mov w6, w0 cmp w23, w0 - beq .L1688 + beq .L1690 ldrh w4, [x19, 2700] adrp x0, .LC128 mov w5, w23 @@ -12926,38 +12940,38 @@ FtlLoadSysInfo: mov x1, x21 add x0, x0, :lo12:.LC128 bl sftl_printk - cbnz w20, .L1689 + cbnz w20, .L1691 ldrh w0, [x19, 2700] cmp w22, w0 - beq .L1689 + beq .L1691 ldrh w20, [x19, 308] sxth w22, w0 -.L1687: +.L1689: sub w20, w20, #1 sxth w20, w20 - b .L1685 -.L1689: + b .L1687 +.L1691: mov w0, -1 str w0, [x25] - b .L1687 -.L1686: - beq .L1687 + b .L1689 .L1688: + beq .L1689 +.L1690: ldr x0, [x19, 3448] ldr w0, [x0] cmp w0, w24 - bne .L1687 + bne .L1689 ldr x0, [x19, 3512] ldrh w1, [x0] mov w0, 61604 cmp w1, w0 - bne .L1687 -.L1691: + bne .L1689 +.L1693: ldrh w0, [x19, 244] ldrh w1, [x19, 314] add x0, x0, 24 cmp x1, x0, lsl 1 - bcs .L1694 + bcs .L1696 adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 adrp x0, .LC9 @@ -12965,7 +12979,7 @@ FtlLoadSysInfo: add x0, x0, :lo12:.LC9 mov w2, 1476 bl sftl_printk -.L1694: +.L1696: ldr x1, [x19, 3720] add x21, x19, 2512 mov w2, 48 @@ -12981,13 +12995,13 @@ FtlLoadSysInfo: mov w0, 19539 movk w0, 0x4654, lsl 16 cmp w1, w0 - bne .L1695 + bne .L1697 ldrh w1, [x19, 2520] ldrb w2, [x19, 2522] ldrh w0, [x19, 258] strh w1, [x19, 2702] cmp w2, w0 - bne .L1695 + bne .L1697 ldrh w0, [x19, 306] ldrh w2, [x19, 262] ldrh w3, [x19, 236] @@ -13003,7 +13017,7 @@ FtlLoadSysInfo: udiv w0, w0, w3 strh w0, [x19, 2692] cmp w1, w2 - bls .L1696 + bls .L1698 adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 adrp x0, .LC9 @@ -13011,7 +13025,7 @@ FtlLoadSysInfo: add x0, x0, :lo12:.LC9 mov w2, 1498 bl sftl_printk -.L1696: +.L1698: ldrh w2, [x19, 2528] add x0, x19, 2660 ldr w1, [x19, 2544] @@ -13054,44 +13068,44 @@ FtlLoadSysInfo: ldr w0, [x19, 2552] ldr w1, [x19, 2660] cmp w0, w1 - bls .L1697 + bls .L1699 str w0, [x19, 2660] -.L1697: +.L1699: ldr w0, [x19, 2548] ldr w1, [x19, 2664] cmp w0, w1 - bls .L1698 + bls .L1700 str w0, [x19, 2664] -.L1698: +.L1700: mov w0, 65535 cmp w3, w0 - beq .L1699 + beq .L1701 add x0, x19, 24 bl make_superblock -.L1699: +.L1701: ldrh w2, [x19, 80] add x0, x19, 80 mov w1, 65535 cmp w2, w1 - beq .L1700 - bl make_superblock -.L1700: - ldrh w2, [x19, 128] - add x0, x19, 128 - mov w1, 65535 - cmp w2, w1 - beq .L1701 - bl make_superblock -.L1701: - ldrh w2, [x19, 176] - add x0, x19, 176 - mov w1, 65535 - cmp w2, w1 beq .L1702 bl make_superblock .L1702: + ldrh w2, [x19, 128] + add x0, x19, 128 + mov w1, 65535 + cmp w2, w1 + beq .L1703 + bl make_superblock +.L1703: + ldrh w2, [x19, 176] + add x0, x19, 176 + mov w1, 65535 + cmp w2, w1 + beq .L1704 + bl make_superblock +.L1704: mov w0, 0 - b .L1682 + b .L1684 .size FtlLoadSysInfo, .-FtlLoadSysInfo .section .rodata.str1.1 .LC129: @@ -13148,17 +13162,17 @@ FtlMapTblRecovery: add x0, x0, :lo12:.LANCHOR1 add x0, x0, 615 str x0, [sp, 128] -.L1712: +.L1714: ldr w0, [sp, 112] cmp w20, w0 - bge .L1732 - add x0, x27, x20, sxtw 1 + bge .L1734 + add x0, x27, w20, sxtw 1 str x0, [sp, 104] ldr w0, [sp, 124] sxtw x26, w20 sbfiz x1, x20, 1, 32 cmp w0, w20 - bne .L1713 + bne .L1715 ldr x0, [sp, 104] mov w1, 1 adrp x27, .LC129 @@ -13175,19 +13189,19 @@ FtlMapTblRecovery: mov w28, 0 add x26, x26, 615 str w0, [x19, 48] -.L1714: +.L1716: cmp w28, w25 - blt .L1718 -.L1732: + blt .L1720 +.L1734: mov x0, x19 bl ftl_free_no_use_map_blk ldrh w1, [x19, 2] ldrh w0, [x24, 308] cmp w1, w0 - bne .L1720 + bne .L1722 mov x0, x19 bl ftl_map_blk_alloc_new_blk -.L1720: +.L1722: mov x0, x19 bl ftl_map_blk_gc mov x0, x19 @@ -13201,7 +13215,7 @@ FtlMapTblRecovery: ldp x29, x30, [sp], 144 hint 29 // autiasp ret -.L1718: +.L1720: ldr x0, [sp, 104] add x3, x24, 3712 mov w2, 1 @@ -13218,15 +13232,15 @@ FtlMapTblRecovery: ldr w0, [x24, 3712] str w4, [sp, 112] cmn w0, #1 - cbz w4, .L1715 - beq .L1733 + cbz w4, .L1717 + beq .L1735 ldrh w1, [x24, 314] ldr x0, [x3, 8] bl js_hash ldr w4, [sp, 112] mov w5, w0 cmp w4, w0 - beq .L1717 + beq .L1719 mov x0, x27 mov w3, w28 mov w2, w20 @@ -13234,25 +13248,25 @@ FtlMapTblRecovery: bl sftl_printk mov w0, -1 str w0, [x24, 3712] -.L1733: +.L1735: add w28, w28, 1 sxth w28, w28 - b .L1714 -.L1715: - beq .L1733 + b .L1716 .L1717: + beq .L1735 +.L1719: ldrh w0, [x21, 8] cmp w0, w23 - bcs .L1733 + bcs .L1735 ldrh w2, [x21] ldrh w1, [x19, 4] cmp w2, w1 - bne .L1733 + bne .L1735 ubfiz x0, x0, 2, 16 ldr w1, [x24, 3716] str w1, [x22, x0] - b .L1733 -.L1713: + b .L1735 +.L1715: add x0, x24, 3712 ldr x2, [x24, 3448] str x2, [x0, 8] @@ -13266,47 +13280,47 @@ FtlMapTblRecovery: bl FlashReadPages ldr w0, [x24, 3712] cmn w0, #1 - beq .L1736 + beq .L1738 ldrh w1, [x21] ldrh w0, [x19, 4] cmp w1, w0 - bne .L1736 + bne .L1738 ldrh w1, [x21, 8] mov w0, 64245 cmp w1, w0 - beq .L1737 -.L1736: + beq .L1739 +.L1738: adrp x25, .LC130 mov w26, 0 add x25, x25, :lo12:.LC130 - b .L1728 -.L1724: + b .L1730 +.L1726: ldr x3, [x24, 3448] lsl w1, w0, 1 ldr w4, [x3, w1, sxtw 2] and w2, w4, 65535 cmp w23, w4, uxth - bls .L1723 + bls .L1725 add w1, w1, 1 ldr w3, [x3, w1, sxtw 2] ubfiz x1, x2, 2, 16 str w3, [x22, x1] -.L1723: +.L1725: add w0, w0, 1 sxth w0, w0 -.L1722: +.L1724: ldrh w1, [x24, 308] sub w1, w1, #1 cmp w0, w1 - blt .L1724 -.L1730: + blt .L1726 +.L1732: add w20, w20, 1 sxth w20, w20 - b .L1712 -.L1737: + b .L1714 +.L1739: mov w0, 0 - b .L1722 -.L1729: + b .L1724 +.L1731: ldr x0, [sp, 104] add x5, x24, 3712 mov w2, 1 @@ -13323,15 +13337,15 @@ FtlMapTblRecovery: ldr w0, [x24, 3712] str w4, [sp, 136] cmn w0, #1 - cbz w4, .L1725 - beq .L1734 + cbz w4, .L1727 + beq .L1736 ldrh w1, [x24, 314] ldr x0, [x5, 8] bl js_hash ldr w4, [sp, 136] mov w5, w0 cmp w4, w0 - beq .L1727 + beq .L1729 ldr x1, [sp, 128] mov x0, x25 mov w3, w26 @@ -13339,28 +13353,28 @@ FtlMapTblRecovery: bl sftl_printk mov w0, -1 str w0, [x24, 3712] -.L1734: +.L1736: add w3, w26, 1 sxth w26, w3 -.L1728: +.L1730: ldrh w0, [x24, 308] cmp w26, w0 - blt .L1729 - b .L1730 -.L1725: - beq .L1734 + blt .L1731 + b .L1732 .L1727: + beq .L1736 +.L1729: ldrh w0, [x21, 8] cmp w0, w23 - bcs .L1734 + bcs .L1736 ldrh w2, [x21] ldrh w1, [x19, 4] cmp w2, w1 - bne .L1734 + bne .L1736 ubfiz x0, x0, 2, 16 ldr w1, [x24, 3716] str w1, [x22, x0] - b .L1734 + b .L1736 .size FtlMapTblRecovery, .-FtlMapTblRecovery .align 2 .global FtlLoadVonderInfo @@ -13452,20 +13466,20 @@ FtlSysBlkInit: ldrh w1, [x19, 2696] mov w0, 65535 cmp w1, w0 - bne .L1756 -.L1758: + bne .L1758 +.L1760: mov w20, -1 -.L1755: +.L1757: mov w0, w20 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x29, x30, [sp], 48 hint 29 // autiasp ret -.L1756: +.L1758: bl FtlLoadSysInfo mov w20, w0 - cbnz w0, .L1758 + cbnz w0, .L1760 bl FtlLoadMapInfo bl FtlLoadVonderInfo bl Ftl_load_ext_data @@ -13479,21 +13493,21 @@ FtlSysBlkInit: mov x0, 0 ldrh w2, [x19, 342] add x1, x1, 4 -.L1759: +.L1761: mov w3, w0 cmp w2, w0 - ble .L1763 + ble .L1765 lsl x4, x0, 4 add x0, x0, 1 ldr w4, [x1, x4] - tbz w4, #31, .L1759 -.L1763: + tbz w4, #31, .L1761 +.L1765: ldrh w0, [x19, 2540] add w0, w0, 1 strh w0, [x19, 2540] cmp w3, w2 - bge .L1770 -.L1760: + bge .L1772 +.L1762: add x22, x19, 24 add x21, x19, 80 mov x0, x22 @@ -13528,22 +13542,22 @@ FtlSysBlkInit: bl l2p_flush bl FtlVpcTblFlush bl FtlVpcTblFlush - b .L1764 -.L1770: + b .L1766 +.L1772: ldrh w0, [x19, 3744] - cbnz w0, .L1760 -.L1764: + cbnz w0, .L1762 +.L1766: ldrh w0, [x19, 24] add x22, x19, 24 mov w1, 65535 cmp w0, w1 - beq .L1765 + beq .L1767 ldrh w1, [x19, 28] add x21, x19, 80 ldrh w2, [x19, 84] orr w1, w1, w2 tst w1, 65535 - bne .L1765 + bne .L1767 bl FtlGcRefreshBlock ldrh w0, [x19, 80] bl FtlGcRefreshBlock @@ -13552,9 +13566,9 @@ FtlSysBlkInit: bl allocate_new_data_superblock mov x0, x21 bl allocate_new_data_superblock -.L1765: +.L1767: bl FtlVpcCheckAndModify - b .L1755 + b .L1757 .size FtlSysBlkInit, .-FtlSysBlkInit .align 2 .global ftl_low_format @@ -13581,33 +13595,33 @@ ftl_low_format: str wzr, [x19, 2676] bl FtlFreeSysBlkQueueInit bl FtlLoadBbt - cbz w0, .L1773 + cbz w0, .L1775 bl FtlMakeBbt -.L1773: +.L1775: mov w3, 23752 mov w0, 0 movk w3, 0xa0f, lsl 16 -.L1774: +.L1776: ldrh w1, [x19, 262] cmp w0, w1, lsl 7 - blt .L1775 + blt .L1777 ldrh w21, [x19, 244] mov w20, 0 -.L1776: +.L1778: ldrh w0, [x19, 246] cmp w0, w21 - bhi .L1777 + bhi .L1779 ldrh w0, [x19, 236] sub w1, w20, #3 cmp w1, w0, lsl 1 - bge .L1778 -.L1782: + bge .L1780 +.L1784: mov w20, 0 mov w21, 0 -.L1779: +.L1781: ldrh w0, [x19, 244] cmp w0, w21 - bhi .L1783 + bhi .L1785 ldrh w0, [x19, 246] ldrh w2, [x19, 236] str w0, [x19, 3420] @@ -13620,27 +13634,27 @@ ftl_low_format: mov w1, 24 mul w1, w2, w1 cmp w20, w1 - ble .L1784 + ble .L1786 sub w0, w0, w20 udiv w0, w0, w2 str w0, [x19, 2624] lsr w0, w0, 5 add w0, w0, 24 strh w0, [x19, 2692] -.L1784: +.L1786: ldrh w1, [x19, 298] - cbz w1, .L1786 + cbz w1, .L1788 ldrh w0, [x19, 2692] add w0, w0, w1, lsr 1 strh w0, [x19, 2692] mul w0, w1, w2 cmp w20, w0 - bge .L1786 + bge .L1788 add w1, w1, 32 str w4, [x19, 2624] add w1, w3, w1 strh w1, [x19, 2692] -.L1786: +.L1788: ldrh w1, [x19, 2692] add x21, x19, 24 ldr w0, [x19, 2624] @@ -13669,20 +13683,20 @@ ftl_low_format: strb wzr, [x19, 182] strb wzr, [x19, 184] str wzr, [x19, 2620] -.L1788: +.L1790: mov x0, x21 bl make_superblock ldrb w1, [x21, 7] ldrh w0, [x21] - cbnz w1, .L1789 + cbnz w1, .L1791 ldr x1, [x19, 72] ubfiz x0, x0, 1, 16 strh w20, [x1, x0] ldrh w0, [x21] add w0, w0, 1 strh w0, [x21] - b .L1788 -.L1775: + b .L1790 +.L1777: ldr x4, [x19, 3472] ubfiz x2, x0, 2, 16 mvn w1, w0 @@ -13692,8 +13706,8 @@ ftl_low_format: ldr x1, [x19, 3480] and w0, w0, 65535 str w3, [x1, x2] - b .L1774 -.L1777: + b .L1776 +.L1779: mov w0, w21 mov w1, 1 add w21, w21, 1 @@ -13701,8 +13715,8 @@ ftl_low_format: add w20, w0, w20 and w21, w21, 65535 and w20, w20, 65535 - b .L1776 -.L1778: + b .L1778 +.L1780: udiv w20, w20, w0 ldr w0, [x19, 336] add w0, w20, w0 @@ -13710,17 +13724,17 @@ ftl_low_format: ldrh w0, [x19, 240] bl FtlFreeSysBlkQueueInit ldrh w20, [x19, 244] -.L1780: +.L1782: ldrh w0, [x19, 246] cmp w0, w20 - bls .L1782 + bls .L1784 mov w0, w20 add w20, w20, 1 mov w1, 1 and w20, w20, 65535 bl FtlLowFormatEraseBlock - b .L1780 -.L1783: + b .L1782 +.L1785: mov w0, w21 mov w1, 0 add w21, w21, 1 @@ -13728,8 +13742,8 @@ ftl_low_format: add w20, w0, w20 and w21, w21, 65535 and w20, w20, 65535 - b .L1779 -.L1789: + b .L1781 +.L1791: ldr w1, [x19, 2660] ubfiz x0, x0, 1, 16 str w1, [x21, 12] @@ -13747,20 +13761,20 @@ ftl_low_format: strh w0, [x19, 80] mov w0, 1 strb w0, [x20, 8] -.L1790: +.L1792: mov x0, x20 bl make_superblock ldrb w1, [x20, 7] ldrh w0, [x20] - cbnz w1, .L1791 + cbnz w1, .L1793 ldr x1, [x19, 72] ubfiz x0, x0, 1, 16 strh w21, [x1, x0] ldrh w0, [x20] add w0, w0, 1 strh w0, [x20] - b .L1790 -.L1791: + b .L1792 +.L1793: ldr w1, [x19, 2660] ubfiz x0, x0, 1, 16 str w1, [x20, 12] @@ -13784,11 +13798,11 @@ ftl_low_format: str w0, [x19, 2660] bl FtlVpcTblFlush bl FtlSysBlkInit - cbnz w0, .L1792 + cbnz w0, .L1794 adrp x0, .LANCHOR2 mov w1, 1 str w1, [x0, #:lo12:.LANCHOR2] -.L1792: +.L1794: mov w0, 0 ldp x19, x20, [sp, 16] ldr x21, [sp, 32] @@ -13829,22 +13843,22 @@ sftl_init: ldrh w0, [x19, 240] bl FtlFreeSysBlkQueueInit bl FtlLoadBbt - cbnz w0, .L1798 + cbnz w0, .L1800 bl FtlSysBlkInit - cbnz w0, .L1798 + cbnz w0, .L1800 mov w0, 1 str w0, [x20, #:lo12:.LANCHOR2] ldrh w0, [x19, 228] cmp w0, 15 - bhi .L1798 + bhi .L1800 mov w19, 8129 -.L1799: +.L1801: mov w1, 1 mov w0, 0 bl rk_ftl_garbage_collect subs w19, w19, #1 - bne .L1799 -.L1798: + bne .L1801 +.L1800: mov w0, 0 ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 32 @@ -13890,47 +13904,47 @@ FtlWriteToIDB: ldr x1, [x0, 1376] str x1, [sp, 200] mov x1, 0 - bls .L1803 + bls .L1805 cmp w20, 575 - bls .L1804 -.L1803: - ldr w0, [x25, 3968] - cbnz w0, .L1805 -.L1867: - mov w19, 0 - b .L1802 + bls .L1806 .L1805: + ldr w0, [x25, 3968] + cbnz w0, .L1807 +.L1869: + mov w19, 0 + b .L1804 +.L1807: ldr x22, [x25, 3976] mov w0, 35899 movk w0, 0xfcdc, lsl 16 ldr w1, [x22] cmp w1, w0 - bne .L1807 + bne .L1809 add x1, x22, 258048 ldrh w2, [x25, 10] add x1, x1, 2044 mov w0, 0 mov w19, 65023 -.L1811: +.L1813: ldr w3, [x1] - cbnz w3, .L1808 + cbnz w3, .L1810 ldr w3, [x22, w0, uxtw 2] add w0, w0, 1 str w3, [x1, 2048] cmp w0, 4096 - bls .L1809 + bls .L1811 mov w0, 0 -.L1809: +.L1811: sub w19, w19, #1 sub x1, x1, #4 cmp w19, 4096 - bne .L1811 + bne .L1813 mov w19, 512 - b .L1810 -.L1808: + b .L1812 +.L1810: add w19, w19, 127 lsr w19, w19, 7 -.L1810: +.L1812: ubfiz w0, w2, 2, 14 add w20, w19, 4 mov w1, w19 @@ -13944,16 +13958,16 @@ FtlWriteToIDB: bl sftl_printk lsl w0, w19, 7 str w0, [sp, 100] -.L1812: +.L1814: add w0, w20, w21 str w0, [sp, 104] cmp w0, 8 - bls .L1834 - cbnz w23, .L1833 -.L1807: + bls .L1836 + cbnz w23, .L1835 +.L1809: mov w19, -1 - b .L1833 -.L1834: + b .L1835 +.L1836: ldr x0, [x25, 3984] mov w1, 0 mov x2, 512 @@ -13962,16 +13976,16 @@ FtlWriteToIDB: ldr x1, [x25, 3384] mul w0, w21, w27 str w0, [sp, 96] - cbz x1, .L1843 + cbz x1, .L1845 ldr x0, [x25, 3392] mov w24, 6 cmp x0, 0 mov w0, 9 csel w24, w24, w0, eq -.L1813: +.L1815: mul w28, w21, w27 mov w26, 0 -.L1814: +.L1816: ldr x3, [x25, 3360] mov w1, w28 add w26, w26, 1 @@ -13979,9 +13993,9 @@ FtlWriteToIDB: mov w0, 0 blr x3 cmp w20, w26 - bhi .L1814 + bhi .L1816 cmp w24, 9 - bne .L1845 + bne .L1847 ldr x28, [x25, 3984] mov w2, 1024 mov w1, 0 @@ -14002,15 +14016,15 @@ FtlWriteToIDB: add x0, x28, 12 bl js_hash str w0, [x28, 8] -.L1815: +.L1817: mul w0, w20, w27 mov x27, x22 mov w26, 0 str w0, [sp, 108] -.L1816: +.L1818: ldr w0, [sp, 108] cmp w26, w0 - beq .L1823 + beq .L1825 cmp w24, 9 lsl w0, w26, 2 csinc w0, w0, w26, ne @@ -14019,7 +14033,7 @@ FtlWriteToIDB: str w0, [sp, 140] cmp w26, 0 ccmp w24, 9, 0, eq - bne .L1819 + bne .L1821 ldr x1, [x25, 3384] add x8, x25, 3352 mov w0, 70 @@ -14041,8 +14055,8 @@ FtlWriteToIDB: blr x2 ldr w1, [sp, 112] cmn w1, #1 - bne .L1820 -.L1823: + bne .L1822 +.L1825: ldrb w0, [x25, 14] add x1, x25, 3352 str w0, [sp, 108] @@ -14050,21 +14064,21 @@ FtlWriteToIDB: ldr x3, [x1, 32] ldr x26, [x25, 3984] mul w27, w21, w0 - cbnz x3, .L1821 + cbnz x3, .L1823 mov w1, 6 -.L1866: +.L1868: mul w0, w20, w0 mov w28, 0 str w1, [sp, 96] str w0, [sp, 112] -.L1825: +.L1827: ldr w0, [sp, 112] cmp w28, w0 - beq .L1829 + beq .L1831 ldr w0, [sp, 96] cmp w28, 0 ccmp w0, 9, 0, eq - bne .L1826 + bne .L1828 ldr x1, [x25, 3384] mov w0, 70 blr x1 @@ -14087,17 +14101,17 @@ FtlWriteToIDB: mov w1, 18766 movk w1, 0x464e, lsl 16 cmp w0, w1 - beq .L1827 -.L1829: + beq .L1829 +.L1831: ldr x0, [x25, 3984] mov x24, 0 -.L1828: +.L1830: ldr w2, [x0, x24, lsl 2] add x27, x0, x24, lsl 2 ldr w1, [x22, x24, lsl 2] add x28, x22, x24, lsl 2 cmp w2, w1 - beq .L1831 + beq .L1833 mov x2, 512 mov w1, 0 bl memset @@ -14113,16 +14127,16 @@ FtlWriteToIDB: ldr x2, [x25, 3360] mul w1, w1, w21 blr x2 -.L1832: +.L1834: ldr w21, [sp, 104] - b .L1812 -.L1843: - mov w24, 6 - b .L1813 + b .L1814 .L1845: - mov x28, 0 + mov w24, 6 b .L1815 -.L1819: +.L1847: + mov x28, 0 + b .L1817 +.L1821: ldr x8, [x25, 3368] add x3, sp, 136 ldr w0, [sp, 96] @@ -14131,19 +14145,19 @@ FtlWriteToIDB: mov w0, 0 blr x8 cmn w0, #1 - beq .L1823 + beq .L1825 add x27, x27, 2048 -.L1820: +.L1822: add w26, w26, 1 - b .L1816 -.L1821: + b .L1818 +.L1823: ldr x1, [x1, 40] mov w24, 6 cmp x1, 0 mov w1, 9 csel w1, w24, w1, eq - b .L1866 -.L1826: + b .L1868 +.L1828: ldr x6, [x25, 3376] add x3, sp, 136 mov x2, x26 @@ -14151,41 +14165,41 @@ FtlWriteToIDB: mov w0, 0 blr x6 cmn w0, #1 - beq .L1829 + beq .L1831 ldr w0, [sp, 140] mov w1, 61424 cmp w0, w1 - bne .L1829 + bne .L1831 add x26, x26, 2048 -.L1827: +.L1829: add w28, w28, 1 - b .L1825 -.L1831: + b .L1827 +.L1833: ldr w1, [sp, 100] add x24, x24, 1 cmp w1, w24 - bhi .L1828 + bhi .L1830 add w23, w23, 1 cmp w23, 5 - bls .L1832 -.L1833: + bls .L1834 +.L1835: ldr x0, [x25, 3976] str wzr, [x25, 3968] bl kfree ldr x0, [x25, 3984] bl kfree -.L1802: +.L1804: mrs x0, sp_el0 ldr x1, [sp, 200] ldr x2, [x0, 1376] subs x1, x1, x2 mov x2, 0 - beq .L1842 + beq .L1844 bl __stack_chk_fail -.L1804: +.L1806: mov x21, x2 cmp w20, 64 - bne .L1835 + bne .L1837 mov w0, 262144 bl ftl_malloc str x0, [x25, 3976] @@ -14194,49 +14208,49 @@ FtlWriteToIDB: mov x1, x0 ldr x0, [x25, 3976] str x1, [x25, 3984] - cbz x0, .L1836 - cbz x1, .L1836 + cbz x0, .L1838 + cbz x1, .L1838 mov w1, 1 mov w2, 262144 str w1, [x25, 3968] mov w1, 0 bl ftl_memset -.L1837: +.L1839: sub w1, w20, #64 ldr x0, [x25, 3976] cmp w20, 63 - bhi .L1839 + bhi .L1841 add w19, w19, w1 mov w1, 64 sub w20, w1, w20 ubfiz x20, x20, 9, 25 add x21, x21, x20 -.L1840: +.L1842: cmp w23, 575 - bls .L1841 + bls .L1843 sub w19, w19, w22 add w19, w19, 576 -.L1841: +.L1843: lsl w2, w19, 9 mov x1, x21 bl ftl_memcpy - b .L1867 -.L1836: + b .L1869 +.L1838: adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 adrp x0, .LC133 add x1, x1, 633 add x0, x0, :lo12:.LC133 bl sftl_printk -.L1835: +.L1837: ldr w0, [x25, 3968] - cbnz w0, .L1837 - b .L1867 -.L1839: + cbnz w0, .L1839 + b .L1869 +.L1841: ubfiz x1, x1, 9, 25 add x0, x0, x1 - b .L1840 -.L1842: + b .L1842 +.L1844: mov w0, w19 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] @@ -14295,16 +14309,16 @@ rk_sftl_vendor_dev_ops_register: add x2, x2, :lo12:.LANCHOR0 hint 25 // paciasp ldr x3, [x2, 3992] - cbnz x3, .L1872 + cbnz x3, .L1874 str x0, [x2, 3992] mov w0, 0 str x1, [x2, 4000] -.L1870: +.L1872: hint 29 // autiasp ret -.L1872: +.L1874: mov w0, -1 - b .L1870 + b .L1872 .size rk_sftl_vendor_dev_ops_register, .-rk_sftl_vendor_dev_ops_register .align 2 .global rk_sftl_vendor_storage_init @@ -14329,53 +14343,53 @@ rk_sftl_vendor_storage_init: stp x23, x24, [sp, 48] bl ftl_malloc str x0, [x20, 4008] - cbz x0, .L1880 + cbz x0, .L1882 mov w24, 22084 mov w23, 0 mov w22, 0 mov w21, 0 movk w24, 0x524b, lsl 16 -.L1878: +.L1880: ldr x3, [x20, 3992] lsl w0, w21, 7 ldr x2, [x20, 4008] mov w1, 128 blr x3 mov w19, w0 - cbnz w0, .L1876 + cbnz w0, .L1878 ldr x3, [x20, 4008] ldr w0, [x3] cmp w0, w24 - bne .L1877 + bne .L1879 add x0, x3, 49152 ldr w1, [x3, 4] ldr w0, [x0, 16380] cmp w0, w1 - bne .L1877 + bne .L1879 cmp w0, w22 - bls .L1877 + bls .L1879 mov w23, w21 mov w22, w0 -.L1877: - cbz w21, .L1881 - cbz w22, .L1879 +.L1879: + cbz w21, .L1883 + cbz w22, .L1881 ldr x4, [x20, 3992] mov x2, x3 lsl w0, w23, 7 mov w1, 128 blr x4 mov w19, w0 - cbz w0, .L1874 -.L1876: + cbz w0, .L1876 +.L1878: ldr x0, [x20, 4008] mov w19, -1 bl kfree str xzr, [x20, 4008] - b .L1874 -.L1881: + b .L1876 +.L1883: mov w21, 1 - b .L1878 -.L1879: + b .L1880 +.L1881: mov x0, x3 mov x2, 65536 mov w1, 0 @@ -14389,7 +14403,7 @@ rk_sftl_vendor_storage_init: str w21, [x0, 16380] mov w0, -1032 strh w0, [x3, 14] -.L1874: +.L1876: mov w0, w19 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] @@ -14397,9 +14411,9 @@ rk_sftl_vendor_storage_init: ldp x29, x30, [sp], 64 hint 29 // autiasp ret -.L1880: +.L1882: mov w19, -12 - b .L1874 + b .L1876 .size rk_sftl_vendor_storage_init, .-rk_sftl_vendor_storage_init .align 2 .global rk_sftl_vendor_read @@ -14417,22 +14431,22 @@ rk_sftl_vendor_read: mov x0, x1 adrp x1, .LANCHOR0+4008 ldr x4, [x1, #:lo12:.LANCHOR0+4008] - cbz x4, .L1887 + cbz x4, .L1889 ldrh w1, [x4, 10] add x6, x4, 16 mov x3, 0 -.L1885: - cmp w1, w3 - bhi .L1886 .L1887: + cmp w1, w3 + bhi .L1888 +.L1889: mov w0, -1 ret -.L1886: +.L1888: add x7, x3, 1 lsl x3, x3, 3 ldrh w8, [x6, x3] cmp w8, w5 - bne .L1888 + bne .L1890 hint 25 // paciasp stp x29, x30, [sp, -32]! add x3, x4, x3 @@ -14451,9 +14465,9 @@ rk_sftl_vendor_read: ldp x29, x30, [sp], 32 hint 29 // autiasp ret -.L1888: +.L1890: mov x3, x7 - b .L1885 + b .L1887 .size rk_sftl_vendor_read, .-rk_sftl_vendor_read .align 2 .global rk_sftl_vendor_write @@ -14478,7 +14492,7 @@ rk_sftl_vendor_write: stp x23, x24, [sp, 48] stp x25, x26, [sp, 64] stp x27, x28, [sp, 80] - cbz x19, .L1908 + cbz x19, .L1910 add w21, w2, 63 ldrh w3, [x19, 10] ldrh w23, [x19, 8] @@ -14488,14 +14502,14 @@ rk_sftl_vendor_write: and w21, w21, -64 add x0, x19, 16 mov x20, 0 -.L1895: +.L1897: mov w25, w20 cmp w3, w20 - bhi .L1902 + bhi .L1904 ldrh w1, [x19, 14] cmp w1, w21 - bcc .L1908 - add x3, x19, x3, uxth 3 + bcc .L1910 + add x3, x19, w3, uxth 3 and w21, w21, 65535 strh w7, [x3, 16] ldrh w0, [x19, 12] @@ -14514,32 +14528,32 @@ rk_sftl_vendor_write: ldrh w0, [x19, 10] add w0, w0, 1 strh w0, [x19, 10] - b .L1910 -.L1902: + b .L1912 +.L1904: add x1, x20, 1 lsl x20, x20, 3 ldrh w2, [x0, x20] cmp w2, w7 - bne .L1906 + bne .L1908 add x20, x19, x20 add x5, x19, 1024 ldrh w26, [x20, 20] add w26, w26, 63 and w26, w26, -64 cmp w27, w26 - bls .L1896 + bls .L1898 ldrh w0, [x19, 14] cmp w0, w21 - bcc .L1908 + bcc .L1910 ldrh w6, [x20, 18] sub w24, w3, #1 -.L1897: +.L1899: and w28, w6, 65535 add x20, x20, 8 cmp w24, w25 - bhi .L1898 - add x25, x19, x25, uxtw 3 - add x0, x5, x28, uxth + bhi .L1900 + add x25, x19, w25, uxtw 3 + add x0, x5, w28, uxth uxtw x2, w27 mov x1, x4 and w21, w21, 65535 @@ -14553,7 +14567,7 @@ rk_sftl_vendor_write: sub w21, w0, w21 add w26, w21, w26 strh w26, [x19, 14] -.L1910: +.L1912: ldr w0, [x19, 4] add x1, x19, 49152 ldr x3, [x22, 4000] @@ -14571,7 +14585,7 @@ rk_sftl_vendor_write: lsl w0, w23, 7 blr x3 mov w0, 0 -.L1893: +.L1895: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] @@ -14580,18 +14594,18 @@ rk_sftl_vendor_write: ldp x29, x30, [sp], 128 hint 29 // autiasp ret -.L1898: +.L1900: add w25, w25, 1 str x5, [sp, 104] stp w6, w7, [sp, 112] - add x1, x19, x25, uxtw 3 + add x1, x19, w25, uxtw 3 str x4, [sp, 120] ldrh w0, [x1, 16] strh w0, [x20, 8] ldrh w0, [x1, 20] strh w28, [x20, 10] strh w0, [x20, 12] - add x0, x5, x6, uxtw + add x0, x5, w6, uxtw ldrh w2, [x1, 20] ldrh w1, [x1, 18] add w2, w2, 63 @@ -14603,21 +14617,21 @@ rk_sftl_vendor_write: ldr x5, [sp, 104] add w6, w6, w28 ldr x4, [sp, 120] - b .L1897 -.L1896: + b .L1899 +.L1898: ldrh w0, [x20, 18] uxtw x2, w27 mov x1, x4 add x0, x5, x0 bl memcpy strh w27, [x20, 20] - b .L1910 -.L1906: - mov x20, x1 - b .L1895 + b .L1912 .L1908: + mov x20, x1 + b .L1897 +.L1910: mov w0, -1 - b .L1893 + b .L1895 .size rk_sftl_vendor_write, .-rk_sftl_vendor_write .section .rodata.str1.1 .LC134: @@ -14644,62 +14658,62 @@ rk_sftl_vendor_storage_ioctl: str x21, [sp, 32] mov w21, w1 bl ftl_malloc - cbz x0, .L1922 + cbz x0, .L1924 mov w1, 30209 mov x19, x0 movk w1, 0x4004, lsl 16 cmp w21, w1 - beq .L1913 + beq .L1915 add w1, w1, 1 cmp w21, w1 - beq .L1914 -.L1932: + beq .L1916 +.L1934: mov x20, -14 -.L1915: +.L1917: mov x0, x19 bl kfree -.L1911: +.L1913: mov x0, x20 ldp x19, x20, [sp, 16] ldr x21, [sp, 32] ldp x29, x30, [sp], 48 hint 29 // autiasp ret -.L1913: +.L1915: mov x1, x20 mov x2, 8 bl _copy_from_user - cbz x0, .L1916 + cbz x0, .L1918 mov x2, x20 mov w1, 256 -.L1933: +.L1935: adrp x0, .LC134 add x0, x0, :lo12:.LC134 bl sftl_printk - b .L1932 -.L1916: + b .L1934 +.L1918: ldr w1, [x19] mov w0, 17745 movk w0, 0x5652, lsl 16 cmp w1, w0 - beq .L1917 -.L1918: + beq .L1919 +.L1920: mov x20, -1 - b .L1915 -.L1917: + b .L1917 +.L1919: ldrh w2, [x19, 6] add x1, x19, 8 ldrh w0, [x19, 4] bl rk_sftl_vendor_read cmn w0, #1 - beq .L1918 + beq .L1920 strh w0, [x19, 6] and x0, x0, 65535 add x21, x0, 8 mov x0, x20 mov x1, x21 bl __range_ok - cbz x0, .L1932 + cbz x0, .L1934 bl uaccess_enable_not_uao sbfx x1, x20, 0, 56 #APP @@ -14725,44 +14739,44 @@ rk_sftl_vendor_storage_ioctl: bl __arch_copy_to_user mov x21, x0 bl uaccess_disable_not_uao - cbz x21, .L1915 - b .L1932 -.L1914: + cbz x21, .L1917 + b .L1934 +.L1916: mov x1, x20 mov x2, 8 bl _copy_from_user - cbz x0, .L1920 + cbz x0, .L1922 mov x2, x20 mov w1, 276 - b .L1933 -.L1920: + b .L1935 +.L1922: ldr w1, [x19] mov w0, 17745 movk w0, 0x5652, lsl 16 cmp w1, w0 - bne .L1918 + bne .L1920 ldrh w2, [x19, 6] cmp w2, 4087 - bhi .L1918 + bhi .L1920 add w2, w2, 8 mov x1, x20 and x2, x2, 65535 mov x0, x19 bl _copy_from_user - cbz x0, .L1921 + cbz x0, .L1923 mov x2, x20 mov w1, 283 - b .L1933 -.L1921: + b .L1935 +.L1923: ldrh w2, [x19, 6] add x1, x19, 8 ldrh w0, [x19, 4] bl rk_sftl_vendor_write sxtw x20, w0 - b .L1915 -.L1922: + b .L1917 +.L1924: mov x20, -1 - b .L1911 + b .L1913 .size rk_sftl_vendor_storage_ioctl, .-rk_sftl_vendor_storage_ioctl .align 2 .global rk_sftl_vendor_register diff --git a/drivers/rkflash/rk_sftl_arm_v8_clang.S b/drivers/rkflash/rk_sftl_arm_v8_clang.S index 3cb18a673dd5..335ad0db1f3d 100644 --- a/drivers/rkflash/rk_sftl_arm_v8_clang.S +++ b/drivers/rkflash/rk_sftl_arm_v8_clang.S @@ -1,7 +1,7 @@ /* SPDX-License-Identifier: GPL-2.0 */ /* Copyright (c) 2018-2021 Rockchip Electronics Co. Ltd. - * date: 2022-05-18 + * date: 2022-08-15 */ .text .section .note.gnu.property,"a",@note @@ -2868,7 +2868,7 @@ FlashProgPages: // @FlashProgPages stp x22, x21, [sp, #128] // 16-byte Folded Spill stp x20, x19, [sp, #144] // 16-byte Folded Spill stur x8, [x29, #-8] - cbz w1, .LBB22_39 + cbz w1, .LBB22_41 // %bb.1: adrp x8, g_nand_phy_info+12 ldrh w8, [x8, :lo12:g_nand_phy_info+12] @@ -2932,7 +2932,7 @@ FlashProgPages: // @FlashProgPages // %bb.9: // in Loop: Header=BB22_4 Depth=1 ldr w8, [sp, #12] // 4-byte Folded Reload cmp w24, w8 - b.lo .LBB22_30 + b.lo .LBB22_32 .LBB22_10: // in Loop: Header=BB22_4 Depth=1 ldur x25, [x27, #-8] tst x25, #0x3f @@ -2987,7 +2987,7 @@ FlashProgPages: // @FlashProgPages b .LBB22_3 .LBB22_16: ldr w8, [sp, #4] // 4-byte Folded Reload - cbz w8, .LBB22_39 + cbz w8, .LBB22_41 // %bb.17: adrp x24, .L.str.126 adrp x22, .L.str.129 @@ -2999,12 +2999,19 @@ FlashProgPages: // @FlashProgPages mov w25, #-1 add x20, x20, :lo12:.L.str.128 add x26, x26, :lo12:.L.str.127 - b .LBB22_19 -.LBB22_18: // in Loop: Header=BB22_19 Depth=1 + b .LBB22_20 +.LBB22_18: // in Loop: Header=BB22_20 Depth=1 + ldr w1, [x19, #4] + ldr w3, [x8, #4] + ldr w5, [x9, #4] + mov x0, x22 + bl sftl_printk + str w25, [x19] +.LBB22_19: // in Loop: Header=BB22_20 Depth=1 subs x21, x21, #1 // =1 add x19, x19, #32 // =32 - b.eq .LBB22_39 -.LBB22_19: // =>This Inner Loop Header: Depth=1 + b.eq .LBB22_41 +.LBB22_20: // =>This Inner Loop Header: Depth=1 ldr x8, [x28, :lo12:sftl_nand_check_buf] add x0, sp, #24 // =24 mov w1, #1 @@ -3019,49 +3026,56 @@ FlashProgPages: // @FlashProgPages bl FlashReadPages ldr w27, [sp, #24] cmn w27, #1 // =1 - b.eq .LBB22_22 -// %bb.20: // in Loop: Header=BB22_19 Depth=1 + b.eq .LBB22_23 +// %bb.21: // in Loop: Header=BB22_20 Depth=1 cmp w27, #256 // =256 - b.ne .LBB22_24 -// %bb.21: // in Loop: Header=BB22_19 Depth=1 + b.ne .LBB22_25 +// %bb.22: // in Loop: Header=BB22_20 Depth=1 mov x0, x26 - b .LBB22_23 -.LBB22_22: // in Loop: Header=BB22_19 Depth=1 + b .LBB22_24 +.LBB22_23: // in Loop: Header=BB22_20 Depth=1 mov x0, x24 -.LBB22_23: // in Loop: Header=BB22_19 Depth=1 +.LBB22_24: // in Loop: Header=BB22_20 Depth=1 ldr w1, [x19, #4] bl sftl_printk str w27, [x19] -.LBB22_24: // in Loop: Header=BB22_19 Depth=1 +.LBB22_25: // in Loop: Header=BB22_20 Depth=1 ldr x8, [x19, #16] - cbz x8, .LBB22_27 -// %bb.25: // in Loop: Header=BB22_19 Depth=1 + cbz x8, .LBB22_29 +// %bb.26: // in Loop: Header=BB22_20 Depth=1 ldr x9, [x23, :lo12:sftl_nand_check_spare_buf] ldr w2, [x8] - ldr w3, [x9] - cmp w2, w3 - b.eq .LBB22_27 -// %bb.26: // in Loop: Header=BB22_19 Depth=1 + ldr w4, [x9] + cmp w2, w4 + b.ne .LBB22_28 +// %bb.27: // in Loop: Header=BB22_20 Depth=1 + ldr w10, [x8, #8] + ldr w11, [x9, #8] + cmp w10, w11 + b.eq .LBB22_29 +.LBB22_28: // in Loop: Header=BB22_20 Depth=1 ldr w1, [x19, #4] + ldr w3, [x8, #4] + ldr w5, [x9, #4] mov x0, x20 bl sftl_printk str w25, [x19] -.LBB22_27: // in Loop: Header=BB22_19 Depth=1 +.LBB22_29: // in Loop: Header=BB22_20 Depth=1 ldr x8, [x19, #8] - cbz x8, .LBB22_18 -// %bb.28: // in Loop: Header=BB22_19 Depth=1 + cbz x8, .LBB22_19 +// %bb.30: // in Loop: Header=BB22_20 Depth=1 ldr x9, [x28, :lo12:sftl_nand_check_buf] ldr w2, [x8] - ldr w3, [x9] - cmp w2, w3 - b.eq .LBB22_18 -// %bb.29: // in Loop: Header=BB22_19 Depth=1 - ldr w1, [x19, #4] - mov x0, x22 - bl sftl_printk - str w25, [x19] - b .LBB22_18 -.LBB22_30: + ldr w4, [x9] + cmp w2, w4 + b.ne .LBB22_18 +// %bb.31: // in Loop: Header=BB22_20 Depth=1 + ldr w10, [x8, #2048] + ldr w11, [x9, #2048] + cmp w10, w11 + b.ne .LBB22_18 + b .LBB22_19 +.LBB22_32: adrp x22, .L.str.116 adrp x23, .L.str.124 adrp x24, .L.str.117 @@ -3071,8 +3085,8 @@ FlashProgPages: // @FlashProgPages add x23, x23, :lo12:.L.str.124 add x24, x24, :lo12:.L.str.117 add x25, x25, :lo12:.L.str.120 - b .LBB22_32 -.LBB22_31: // in Loop: Header=BB22_32 Depth=1 + b .LBB22_34 +.LBB22_33: // in Loop: Header=BB22_34 Depth=1 mov x0, x25 bl sftl_printk add x8, x19, x20, lsl #5 @@ -3099,9 +3113,9 @@ FlashProgPages: // @FlashProgPages bl sftl_printk add x20, x20, #1 // =1 cmp x20, x21 - b.eq .LBB22_38 -.LBB22_32: // =>This Loop Header: Depth=1 - // Child Loop BB22_35 Depth 2 + b.eq .LBB22_40 +.LBB22_34: // =>This Loop Header: Depth=1 + // Child Loop BB22_37 Depth 2 add x26, x19, x20, lsl #5 ldr w2, [x26, #4] adrp x0, .L.str.123 @@ -3114,42 +3128,42 @@ FlashProgPages: // @FlashProgPages ldr x28, [x26, #8] mov x27, xzr mov w26, wzr - b .LBB22_35 -.LBB22_33: // in Loop: Header=BB22_35 Depth=2 + b .LBB22_37 +.LBB22_35: // in Loop: Header=BB22_37 Depth=2 ldr w1, [x28, x27] mov x0, x24 bl sftl_printk add w26, w26, #1 // =1 cmp w26, #16 // =16 - b.hs .LBB22_37 -.LBB22_34: // in Loop: Header=BB22_35 Depth=2 + b.hs .LBB22_39 +.LBB22_36: // in Loop: Header=BB22_37 Depth=2 add x27, x27, #4 // =4 cmp x27, #64 // =64 - b.eq .LBB22_31 -.LBB22_35: // Parent Loop BB22_32 Depth=1 + b.eq .LBB22_33 +.LBB22_37: // Parent Loop BB22_34 Depth=1 // => This Inner Loop Header: Depth=2 - cbnz w26, .LBB22_33 -// %bb.36: // in Loop: Header=BB22_35 Depth=2 + cbnz w26, .LBB22_35 +// %bb.38: // in Loop: Header=BB22_37 Depth=2 mov x0, x22 mov x1, x23 mov x2, x28 mov w3, w27 bl sftl_printk - b .LBB22_33 -.LBB22_37: // in Loop: Header=BB22_35 Depth=2 + b .LBB22_35 +.LBB22_39: // in Loop: Header=BB22_37 Depth=2 mov x0, x25 bl sftl_printk mov w26, wzr - b .LBB22_34 -.LBB22_38: + b .LBB22_36 +.LBB22_40: bl dump_stack -.LBB22_39: +.LBB22_41: adrp x9, __stack_chk_guard ldur x8, [x29, #-8] ldr x9, [x9, :lo12:__stack_chk_guard] cmp x9, x8 - b.ne .LBB22_41 -// %bb.40: + b.ne .LBB22_43 +// %bb.42: ldp x20, x19, [sp, #144] // 16-byte Folded Reload ldp x22, x21, [sp, #128] // 16-byte Folded Reload ldp x24, x23, [sp, #112] // 16-byte Folded Reload @@ -3160,7 +3174,7 @@ FlashProgPages: // @FlashProgPages add sp, sp, #160 // =160 hint #29 ret -.LBB22_41: +.LBB22_43: bl __stack_chk_fail .Lfunc_end22: .size FlashProgPages, .Lfunc_end22-FlashProgPages @@ -4734,7 +4748,7 @@ FtlVpcTblFlush: // @FtlVpcTblFlush mov x9, #19539 movk x9, #18004, lsl #16 adrp x20, g_sys_save_data - movk x9, #86, lsl #32 + movk x9, #87, lsl #32 add x20, x20, :lo12:g_sys_save_data movk x9, #20480, lsl #48 adrp x10, c_ftl_nand_die_num @@ -7000,7 +7014,7 @@ FtlEctTblFlush: // @FtlEctTblFlush ldr w10, [x11, :lo12:g_totle_gc_page_count] ldr w11, [x12, :lo12:g_totle_write_page_count] ldr w12, [x13, :lo12:g_totle_read_page_count] - mov w8, #86 + mov w8, #87 movk w8, #20480, lsl #16 adrp x14, g_totle_l2p_write_count adrp x15, g_totle_slc_erase_count @@ -9512,13 +9526,13 @@ FtlWriteToIDB: // @FtlWriteToIDB mov w0, #262144 mov w1, #3265 mov w2, #6 - bl kmalloc_order + bl kmalloc_order_trace adrp x25, idb_buf str x0, [x25, :lo12:idb_buf] mov w0, #262144 mov w1, #3265 mov w2, #6 - bl kmalloc_order + bl kmalloc_order_trace adrp x8, gp_flash_check_buf str x0, [x8, :lo12:gp_flash_check_buf] cbz x0, .LBB56_15 @@ -12870,7 +12884,7 @@ Ftl_save_ext_data: // @Ftl_save_ext_data ldr w10, [x11, :lo12:g_totle_gc_page_count] ldr w11, [x12, :lo12:g_totle_write_page_count] ldr w12, [x13, :lo12:g_totle_read_page_count] - mov w8, #86 + mov w8, #87 movk w8, #20480, lsl #16 adrp x14, g_totle_l2p_write_count adrp x15, g_totle_slc_erase_count @@ -19872,7 +19886,7 @@ rk_sftl_vendor_storage_init: // @rk_sftl_vendor_storage_init stp x22, x21, [sp, #32] // 16-byte Folded Spill stp x20, x19, [sp, #48] // 16-byte Folded Spill mov x29, sp - bl kmalloc_order + bl kmalloc_order_trace adrp x20, g_vendor str x0, [x20, :lo12:g_vendor] cbz x0, .LBB136_4 @@ -20190,232 +20204,126 @@ rk_sftl_vendor_write: // @rk_sftl_vendor_write rk_sftl_vendor_storage_ioctl: // @rk_sftl_vendor_storage_ioctl // %bb.0: hint #25 - stp x29, x30, [sp, #-64]! // 16-byte Folded Spill - adrp x8, kmalloc_caches+320 - ldr x0, [x8, :lo12:kmalloc_caches+320] - stp x22, x21, [sp, #32] // 16-byte Folded Spill + stp x29, x30, [sp, #-48]! // 16-byte Folded Spill + adrp x8, kmalloc_caches+96 + ldr x0, [x8, :lo12:kmalloc_caches+96] + str x21, [sp, #16] // 8-byte Folded Spill + stp x20, x19, [sp, #32] // 16-byte Folded Spill + mov x20, x2 mov w21, w1 mov w1, #3265 - str x23, [sp, #16] // 8-byte Folded Spill - stp x20, x19, [sp, #48] // 16-byte Folded Spill + mov w2, #4096 mov x29, sp - mov x20, x2 - bl kmem_cache_alloc - cbz x0, .LBB139_14 + bl kmem_cache_alloc_trace + cbz x0, .LBB139_5 // %bb.1: mov w8, #30210 movk w8, #16388, lsl #16 mov x19, x0 cmp w21, w8 - b.eq .LBB139_15 + b.eq .LBB139_6 // %bb.2: mov w8, #30209 movk w8, #16388, lsl #16 cmp w21, w8 - b.ne .LBB139_29 + b.ne .LBB139_9 // %bb.3: - //APP - mrs x22, SP_EL0 - //NO_APP - ldrb w10, [x22, #46] - ldr x9, [x22, #8] - lsl x8, x20, #8 - tbnz w10, #5, .LBB139_5 -// %bb.4: - ldr x11, [x22] - mov x10, x20 - tbz w11, #26, .LBB139_6 -.LBB139_5: - and x10, x20, x8, asr #8 -.LBB139_6: - //APP - adds x10, x10, #8 // =8 - csel x9, xzr, x9, hi - csinv x10, x10, xzr, lo - sbcs xzr, x10, x9 - cset x10, ls - - //NO_APP - cbz x10, .LBB139_37 -// %bb.7: - //APP - - - //NO_APP - ldr x9, [x22, #8] - and x23, x20, x8, asr #8 - //APP - bics xzr, x23, x9 - csel x1, x20, xzr, eq - - //NO_APP - //APP - csdb - //NO_APP mov w2, #8 mov x0, x19 - bl __arch_copy_from_user - //APP - - - //NO_APP - cbnz x0, .LBB139_38 -// %bb.8: + mov x1, x20 + bl _copy_from_user + cbz x0, .LBB139_10 +// %bb.4: + adrp x0, .L.str.131 + add x0, x0, :lo12:.L.str.131 + mov w1, #256 + b .LBB139_8 +.LBB139_5: + mov x21, #-1 + b .LBB139_22 +.LBB139_6: + mov w2, #8 + mov x0, x19 + mov x1, x20 + bl _copy_from_user + cbz x0, .LBB139_16 +// %bb.7: + adrp x0, .L.str.131 + add x0, x0, :lo12:.L.str.131 + mov w1, #276 +.LBB139_8: + mov x2, x20 + bl sftl_printk +.LBB139_9: + mov x21, #-14 + b .LBB139_21 +.LBB139_10: ldr w8, [x19] mov w9, #17745 movk w9, #22098, lsl #16 cmp w8, w9 - b.ne .LBB139_28 -// %bb.9: + b.ne .LBB139_20 +// %bb.11: adrp x8, g_vendor ldr x8, [x8, :lo12:g_vendor] - cbz x8, .LBB139_28 -// %bb.10: + cbz x8, .LBB139_20 +// %bb.12: ldrh w9, [x8, #10] - cbz x9, .LBB139_28 -// %bb.11: + cbz x9, .LBB139_20 +// %bb.13: ldrh w12, [x19, #4] ldrh w10, [x19, #6] add x0, x19, #8 // =8 add x11, x8, #20 // =20 -.LBB139_12: // =>This Inner Loop Header: Depth=1 + mov x21, #-1 +.LBB139_14: // =>This Inner Loop Header: Depth=1 ldurh w13, [x11, #-4] cmp w13, w12 - b.eq .LBB139_32 -// %bb.13: // in Loop: Header=BB139_12 Depth=1 - subs x9, x9, #1 // =1 + b.eq .LBB139_23 +// %bb.15: // in Loop: Header=BB139_14 Depth=1 add x11, x11, #8 // =8 - b.ne .LBB139_12 - b .LBB139_28 -.LBB139_14: - mov x21, #-1 - b .LBB139_31 -.LBB139_15: - //APP - mrs x22, SP_EL0 - //NO_APP - ldrb w9, [x22, #46] - ldr x8, [x22, #8] - tbnz w9, #5, .LBB139_17 -// %bb.16: - ldr x10, [x22] - mov x9, x20 - tbz w10, #26, .LBB139_18 -.LBB139_17: - lsl x9, x20, #8 - and x9, x20, x9, asr #8 -.LBB139_18: - //APP - adds x9, x9, #8 // =8 - csel x8, xzr, x8, hi - csinv x9, x9, xzr, lo - sbcs xzr, x9, x8 - cset x9, ls - - //NO_APP - cbz x9, .LBB139_40 -// %bb.19: - lsl x9, x20, #8 - //APP - - - //NO_APP - ldr x8, [x22, #8] - and x23, x20, x9, asr #8 - //APP - bics xzr, x23, x8 - csel x1, x20, xzr, eq - - //NO_APP - //APP - csdb - //NO_APP - mov w2, #8 - mov x0, x19 - bl __arch_copy_from_user - //APP - - - //NO_APP - cbnz x0, .LBB139_41 -// %bb.20: + subs x9, x9, #1 // =1 + b.ne .LBB139_14 + b .LBB139_21 +.LBB139_16: ldr w8, [x19] mov w9, #17745 movk w9, #22098, lsl #16 cmp w8, w9 - b.ne .LBB139_28 -// %bb.21: - ldrh w9, [x19, #6] - cmp x9, #4087 // =4087 - b.hi .LBB139_28 -// %bb.22: - ldrb w10, [x22, #46] - ldr x8, [x22, #8] - add x21, x9, #8 // =8 - tbnz w10, #5, .LBB139_24 -// %bb.23: - ldr x10, [x22] - mov x9, x20 - tbz w10, #26, .LBB139_25 -.LBB139_24: - mov x9, x23 -.LBB139_25: - //APP - adds x9, x9, x21 - csel x8, xzr, x8, hi - csinv x9, x9, xzr, lo - sbcs xzr, x9, x8 - cset x9, ls - - //NO_APP - cbz x9, .LBB139_43 -// %bb.26: - //APP - - - //NO_APP - ldr x8, [x22, #8] - //APP - bics xzr, x23, x8 - csel x1, x20, xzr, eq - - //NO_APP - //APP - csdb - //NO_APP + b.ne .LBB139_20 +// %bb.17: + ldrh w8, [x19, #6] + cmp x8, #4087 // =4087 + b.hi .LBB139_20 +// %bb.18: + add x21, x8, #8 // =8 mov x0, x19 + mov x1, x21 + mov w2, wzr + bl __check_object_size + mov x0, x19 + mov x1, x20 mov x2, x21 - bl __arch_copy_from_user - //APP - - - //NO_APP - cbnz x0, .LBB139_44 -// %bb.27: - ldrh w0, [x19, #4] - ldrh w2, [x19, #6] - add x1, x19, #8 // =8 - bl rk_sftl_vendor_write - // kill: def $w0 killed $w0 def $x0 - sxtw x21, w0 - b .LBB139_30 -.LBB139_28: + bl _copy_from_user + cbz x0, .LBB139_24 +// %bb.19: + adrp x0, .L.str.131 + add x0, x0, :lo12:.L.str.131 + mov w1, #283 + b .LBB139_8 +.LBB139_20: mov x21, #-1 - b .LBB139_30 -.LBB139_29: - mov x21, #-14 -.LBB139_30: +.LBB139_21: mov x0, x19 bl kfree -.LBB139_31: +.LBB139_22: mov x0, x21 - ldp x20, x19, [sp, #48] // 16-byte Folded Reload - ldp x22, x21, [sp, #32] // 16-byte Folded Reload - ldr x23, [sp, #16] // 8-byte Folded Reload - ldp x29, x30, [sp], #64 // 16-byte Folded Reload + ldp x20, x19, [sp, #32] // 16-byte Folded Reload + ldr x21, [sp, #16] // 8-byte Folded Reload + ldp x29, x30, [sp], #48 // 16-byte Folded Reload hint #29 ret -.LBB139_32: +.LBB139_23: ldrh w9, [x11] ldurh w11, [x11, #-2] cmp w9, w10 @@ -20425,96 +20333,27 @@ rk_sftl_vendor_storage_ioctl: // @rk_sftl_vendor_storage_ioctl mov x2, x21 bl memcpy strh w21, [x19, #6] - ldrb w9, [x22, #46] - ldr x8, [x22, #8] - add w2, w21, #8 // =8 - tbnz w9, #5, .LBB139_34 -// %bb.33: - ldr x10, [x22] - mov x9, x20 - tbz w10, #26, .LBB139_35 -.LBB139_34: - mov x9, x23 -.LBB139_35: - mov x21, #-14 - //APP - adds x9, x9, x2 - csel x8, xzr, x8, hi - csinv x9, x9, xzr, lo - sbcs xzr, x9, x8 - cset x9, ls - - //NO_APP - cbz x9, .LBB139_30 -// %bb.36: - //APP - - - //NO_APP - ldr x8, [x22, #8] - //APP - bics xzr, x23, x8 - csel x0, x20, xzr, eq - - //NO_APP - //APP - csdb - //NO_APP + add w21, w21, #8 // =8 + mov w2, #1 + mov x0, x19 + mov x1, x21 + bl __check_object_size + mov x0, x20 mov x1, x19 - bl __arch_copy_to_user - cmp x0, #0 // =0 - //APP - - - //NO_APP - csel x21, xzr, x21, eq - b .LBB139_30 -.LBB139_37: - mov w2, #8 - b .LBB139_39 -.LBB139_38: - mov x2, x0 -.LBB139_39: - sub x8, x19, x2 - add x0, x8, #8 // =8 - mov w1, wzr - bl memset - adrp x0, .L.str.131 - add x0, x0, :lo12:.L.str.131 - mov w1, #256 - b .LBB139_46 -.LBB139_40: - mov w2, #8 - b .LBB139_42 -.LBB139_41: - mov x2, x0 -.LBB139_42: - sub x8, x19, x2 - add x0, x8, #8 // =8 - mov w1, wzr - bl memset - adrp x0, .L.str.131 - add x0, x0, :lo12:.L.str.131 - mov w1, #276 - b .LBB139_46 -.LBB139_43: mov x2, x21 - b .LBB139_45 -.LBB139_44: - mov x2, x0 -.LBB139_45: - sub x8, x21, x2 - add x0, x19, x8 - mov w1, wzr - bl memset - adrp x0, .L.str.131 - add x0, x0, :lo12:.L.str.131 - mov w1, #283 -.LBB139_46: - mov x2, x20 - bl sftl_printk - mov x21, #-14 - b .LBB139_30 + bl _copy_to_user + cmp x0, #0 // =0 + mov x8, #-14 + csel x21, xzr, x8, eq + b .LBB139_21 +.LBB139_24: + ldrh w0, [x19, #4] + ldrh w2, [x19, #6] + add x1, x19, #8 // =8 + bl rk_sftl_vendor_write + // kill: def $w0 killed $w0 def $x0 + sxtw x21, w0 + b .LBB139_21 .Lfunc_end139: .size rk_sftl_vendor_storage_ioctl, .Lfunc_end139-rk_sftl_vendor_storage_ioctl // -- End function @@ -20535,6 +20374,1516 @@ rk_sftl_vendor_register: // @rk_sftl_vendor_register .Lfunc_end140: .size rk_sftl_vendor_register, .Lfunc_end140-rk_sftl_vendor_register // -- End function + .p2align 2 // -- Begin function _copy_from_user + .type _copy_from_user,@function +_copy_from_user: // @_copy_from_user +// %bb.0: + hint #25 + stp x29, x30, [sp, #-48]! // 16-byte Folded Spill + //APP + mrs x8, SP_EL0 + //NO_APP + ldrb w11, [x8, #54] + ldr x10, [x8, #8] + stp x20, x19, [sp, #32] // 16-byte Folded Spill + mov x19, x2 + mov x20, x0 + lsl x9, x1, #8 + str x21, [sp, #16] // 8-byte Folded Spill + mov x29, sp + tbnz w11, #5, .LBB141_2 +// %bb.1: + ldr x12, [x8] + mov x11, x1 + tbz w12, #26, .LBB141_3 +.LBB141_2: + and x11, x1, x9, asr #8 +.LBB141_3: + mov x21, x19 + //APP + adds x11, x11, x19 + csel x10, xzr, x10, hi + csinv x11, x11, xzr, lo + sbcs xzr, x11, x10 + cset x11, ls + + //NO_APP + cbz x11, .LBB141_18 +// %bb.4: + //APP +.Ltmp1: + b .Ltmp0 + .section __jump_table,"aw",@progbits + .p2align 3 +.Ltmp2: + .word .Ltmp1-.Ltmp2 +.Ltmp3: + .word .Ltmp0-.Ltmp3 +.Ltmp4: + .xword (arm64_const_caps_ready+1)-.Ltmp4 + .text + + + //NO_APP +// %bb.5: + //APP +.Ltmp6: + nop + .section __jump_table,"aw",@progbits + .p2align 3 +.Ltmp7: + .word .Ltmp6-.Ltmp7 +.Ltmp8: + .word .Ltmp5-.Ltmp8 +.Ltmp9: + .xword (cpu_hwcap_keys+64)-.Ltmp9 + .text + + + //NO_APP +.LBB141_6: + //APP +.Ltmp10: + mrs x10, DAIF +.Ltmp11: + .section .altinstructions,"a",@progbits +.Ltmp12: + .word .Ltmp10-.Ltmp12 +.Ltmp14: + .word .Ltmp13-.Ltmp14 + .hword 42 + .byte .Ltmp11-.Ltmp10 + .byte .Ltmp15-.Ltmp13 + .text + + .text 1 +.Ltmp13: +.set .L__reg_num_x0, 0 +.set .L__reg_num_x1, 1 +.set .L__reg_num_x2, 2 +.set .L__reg_num_x3, 3 +.set .L__reg_num_x4, 4 +.set .L__reg_num_x5, 5 +.set .L__reg_num_x6, 6 +.set .L__reg_num_x7, 7 +.set .L__reg_num_x8, 8 +.set .L__reg_num_x9, 9 +.set .L__reg_num_x10, 10 +.set .L__reg_num_x11, 11 +.set .L__reg_num_x12, 12 +.set .L__reg_num_x13, 13 +.set .L__reg_num_x14, 14 +.set .L__reg_num_x15, 15 +.set .L__reg_num_x16, 16 +.set .L__reg_num_x17, 17 +.set .L__reg_num_x18, 18 +.set .L__reg_num_x19, 19 +.set .L__reg_num_x20, 20 +.set .L__reg_num_x21, 21 +.set .L__reg_num_x22, 22 +.set .L__reg_num_x23, 23 +.set .L__reg_num_x24, 24 +.set .L__reg_num_x25, 25 +.set .L__reg_num_x26, 26 +.set .L__reg_num_x27, 27 +.set .L__reg_num_x28, 28 +.set .L__reg_num_x29, 29 +.set .L__reg_num_x30, 30 + +.set .L__reg_num_xzr, 31 + + .inst 0xd538460a + + +.Ltmp15: +.Ltmp16: +.org (.Ltmp16-(.Ltmp15-.Ltmp13))+(.Ltmp11-.Ltmp10), 0 +.Ltmp17: +.org (.Ltmp17-(.Ltmp11-.Ltmp10))+(.Ltmp15-.Ltmp13), 0 + .text + + + //NO_APP + //APP +.Ltmp18: + and w11, w10, #0x80 +.Ltmp19: + .section .altinstructions,"a",@progbits +.Ltmp20: + .word .Ltmp18-.Ltmp20 +.Ltmp22: + .word .Ltmp21-.Ltmp22 + .hword 42 + .byte .Ltmp19-.Ltmp18 + .byte .Ltmp23-.Ltmp21 + .text + + .text 1 +.Ltmp21: + eor w11, w10, #0xe0 +.Ltmp23: +.Ltmp24: +.org (.Ltmp24-(.Ltmp23-.Ltmp21))+(.Ltmp19-.Ltmp18), 0 +.Ltmp25: +.org (.Ltmp25-(.Ltmp19-.Ltmp18))+(.Ltmp23-.Ltmp21), 0 + .text + + + //NO_APP + cbnz w11, .LBB141_10 +// %bb.7: + //APP +.Ltmp27: + nop + .section __jump_table,"aw",@progbits + .p2align 3 +.Ltmp28: + .word .Ltmp27-.Ltmp28 +.Ltmp29: + .word .Ltmp26-.Ltmp29 +.Ltmp30: + .xword gic_nonsecure_priorities-.Ltmp30 + .text + + + //NO_APP +// %bb.8: + mov w11, #96 +.LBB141_9: + //APP +.Ltmp31: + msr DAIFSet, #2 // arch_local_irq_disable +.Ltmp32: + .section .altinstructions,"a",@progbits +.Ltmp33: + .word .Ltmp31-.Ltmp33 +.Ltmp35: + .word .Ltmp34-.Ltmp35 + .hword 42 + .byte .Ltmp32-.Ltmp31 + .byte .Ltmp36-.Ltmp34 + .text + + .text 1 +.Ltmp34: +.set .L__reg_num_x0, 0 +.set .L__reg_num_x1, 1 +.set .L__reg_num_x2, 2 +.set .L__reg_num_x3, 3 +.set .L__reg_num_x4, 4 +.set .L__reg_num_x5, 5 +.set .L__reg_num_x6, 6 +.set .L__reg_num_x7, 7 +.set .L__reg_num_x8, 8 +.set .L__reg_num_x9, 9 +.set .L__reg_num_x10, 10 +.set .L__reg_num_x11, 11 +.set .L__reg_num_x12, 12 +.set .L__reg_num_x13, 13 +.set .L__reg_num_x14, 14 +.set .L__reg_num_x15, 15 +.set .L__reg_num_x16, 16 +.set .L__reg_num_x17, 17 +.set .L__reg_num_x18, 18 +.set .L__reg_num_x19, 19 +.set .L__reg_num_x20, 20 +.set .L__reg_num_x21, 21 +.set .L__reg_num_x22, 22 +.set .L__reg_num_x23, 23 +.set .L__reg_num_x24, 24 +.set .L__reg_num_x25, 25 +.set .L__reg_num_x26, 26 +.set .L__reg_num_x27, 27 +.set .L__reg_num_x28, 28 +.set .L__reg_num_x29, 29 +.set .L__reg_num_x30, 30 + +.set .L__reg_num_xzr, 31 + + .inst 0xd518460b + + +.Ltmp36: +.Ltmp37: +.org (.Ltmp37-(.Ltmp36-.Ltmp34))+(.Ltmp32-.Ltmp31), 0 +.Ltmp38: +.org (.Ltmp38-(.Ltmp32-.Ltmp31))+(.Ltmp36-.Ltmp34), 0 + .text + + + //NO_APP +.LBB141_10: + ldr x11, [x8, #16] + //APP + mrs x12, TTBR1_EL1 + //NO_APP + mov x13, x11 + bfxil x13, x12, #0, #48 + //APP + msr TTBR1_EL1, x13 + //NO_APP + //APP + isb + //NO_APP + //APP + msr TTBR0_EL1, x11 + //NO_APP + //APP + isb + //NO_APP + //APP +.Ltmp39: + msr DAIF, x10 +.Ltmp40: + .section .altinstructions,"a",@progbits +.Ltmp41: + .word .Ltmp39-.Ltmp41 +.Ltmp43: + .word .Ltmp42-.Ltmp43 + .hword 42 + .byte .Ltmp40-.Ltmp39 + .byte .Ltmp44-.Ltmp42 + .text + + .text 1 +.Ltmp42: +.set .L__reg_num_x0, 0 +.set .L__reg_num_x1, 1 +.set .L__reg_num_x2, 2 +.set .L__reg_num_x3, 3 +.set .L__reg_num_x4, 4 +.set .L__reg_num_x5, 5 +.set .L__reg_num_x6, 6 +.set .L__reg_num_x7, 7 +.set .L__reg_num_x8, 8 +.set .L__reg_num_x9, 9 +.set .L__reg_num_x10, 10 +.set .L__reg_num_x11, 11 +.set .L__reg_num_x12, 12 +.set .L__reg_num_x13, 13 +.set .L__reg_num_x14, 14 +.set .L__reg_num_x15, 15 +.set .L__reg_num_x16, 16 +.set .L__reg_num_x17, 17 +.set .L__reg_num_x18, 18 +.set .L__reg_num_x19, 19 +.set .L__reg_num_x20, 20 +.set .L__reg_num_x21, 21 +.set .L__reg_num_x22, 22 +.set .L__reg_num_x23, 23 +.set .L__reg_num_x24, 24 +.set .L__reg_num_x25, 25 +.set .L__reg_num_x26, 26 +.set .L__reg_num_x27, 27 +.set .L__reg_num_x28, 28 +.set .L__reg_num_x29, 29 +.set .L__reg_num_x30, 30 + +.set .L__reg_num_xzr, 31 + + .inst 0xd518460a + + +.Ltmp44: +.Ltmp45: +.org (.Ltmp45-(.Ltmp44-.Ltmp42))+(.Ltmp40-.Ltmp39), 0 +.Ltmp46: +.org (.Ltmp46-(.Ltmp40-.Ltmp39))+(.Ltmp44-.Ltmp42), 0 + .text + + + //NO_APP + //APP +.Ltmp48: + nop + .section __jump_table,"aw",@progbits + .p2align 3 +.Ltmp49: + .word .Ltmp48-.Ltmp49 +.Ltmp50: + .word .Ltmp47-.Ltmp50 +.Ltmp51: + .xword gic_pmr_sync-.Ltmp51 + .text + + + //NO_APP +.LBB141_11: + ldr x10, [x8, #8] + and x9, x1, x9, asr #8 + //APP + bics xzr, x9, x10 + csel x8, x1, xzr, eq + + //NO_APP + //APP + csdb + //NO_APP + mov x0, x20 + mov x1, x8 + mov x2, x19 + bl __arch_copy_from_user + mov x21, x0 + //APP +.Ltmp53: + b .Ltmp52 + .section __jump_table,"aw",@progbits + .p2align 3 +.Ltmp54: + .word .Ltmp53-.Ltmp54 +.Ltmp55: + .word .Ltmp52-.Ltmp55 +.Ltmp56: + .xword (arm64_const_caps_ready+1)-.Ltmp56 + .text + + + //NO_APP +// %bb.12: + //APP +.Ltmp58: + nop + .section __jump_table,"aw",@progbits + .p2align 3 +.Ltmp59: + .word .Ltmp58-.Ltmp59 +.Ltmp60: + .word .Ltmp57-.Ltmp60 +.Ltmp61: + .xword (cpu_hwcap_keys+64)-.Ltmp61 + .text + + + //NO_APP +.LBB141_13: + //APP +.Ltmp62: + mrs x8, DAIF +.Ltmp63: + .section .altinstructions,"a",@progbits +.Ltmp64: + .word .Ltmp62-.Ltmp64 +.Ltmp66: + .word .Ltmp65-.Ltmp66 + .hword 42 + .byte .Ltmp63-.Ltmp62 + .byte .Ltmp67-.Ltmp65 + .text + + .text 1 +.Ltmp65: +.set .L__reg_num_x0, 0 +.set .L__reg_num_x1, 1 +.set .L__reg_num_x2, 2 +.set .L__reg_num_x3, 3 +.set .L__reg_num_x4, 4 +.set .L__reg_num_x5, 5 +.set .L__reg_num_x6, 6 +.set .L__reg_num_x7, 7 +.set .L__reg_num_x8, 8 +.set .L__reg_num_x9, 9 +.set .L__reg_num_x10, 10 +.set .L__reg_num_x11, 11 +.set .L__reg_num_x12, 12 +.set .L__reg_num_x13, 13 +.set .L__reg_num_x14, 14 +.set .L__reg_num_x15, 15 +.set .L__reg_num_x16, 16 +.set .L__reg_num_x17, 17 +.set .L__reg_num_x18, 18 +.set .L__reg_num_x19, 19 +.set .L__reg_num_x20, 20 +.set .L__reg_num_x21, 21 +.set .L__reg_num_x22, 22 +.set .L__reg_num_x23, 23 +.set .L__reg_num_x24, 24 +.set .L__reg_num_x25, 25 +.set .L__reg_num_x26, 26 +.set .L__reg_num_x27, 27 +.set .L__reg_num_x28, 28 +.set .L__reg_num_x29, 29 +.set .L__reg_num_x30, 30 + +.set .L__reg_num_xzr, 31 + + .inst 0xd5384608 + + +.Ltmp67: +.Ltmp68: +.org (.Ltmp68-(.Ltmp67-.Ltmp65))+(.Ltmp63-.Ltmp62), 0 +.Ltmp69: +.org (.Ltmp69-(.Ltmp63-.Ltmp62))+(.Ltmp67-.Ltmp65), 0 + .text + + + //NO_APP + //APP +.Ltmp70: + and w9, w8, #0x80 +.Ltmp71: + .section .altinstructions,"a",@progbits +.Ltmp72: + .word .Ltmp70-.Ltmp72 +.Ltmp74: + .word .Ltmp73-.Ltmp74 + .hword 42 + .byte .Ltmp71-.Ltmp70 + .byte .Ltmp75-.Ltmp73 + .text + + .text 1 +.Ltmp73: + eor w9, w8, #0xe0 +.Ltmp75: +.Ltmp76: +.org (.Ltmp76-(.Ltmp75-.Ltmp73))+(.Ltmp71-.Ltmp70), 0 +.Ltmp77: +.org (.Ltmp77-(.Ltmp71-.Ltmp70))+(.Ltmp75-.Ltmp73), 0 + .text + + + //NO_APP + cbnz w9, .LBB141_17 +// %bb.14: + //APP +.Ltmp79: + nop + .section __jump_table,"aw",@progbits + .p2align 3 +.Ltmp80: + .word .Ltmp79-.Ltmp80 +.Ltmp81: + .word .Ltmp78-.Ltmp81 +.Ltmp82: + .xword gic_nonsecure_priorities-.Ltmp82 + .text + + + //NO_APP +// %bb.15: + mov w9, #96 +.LBB141_16: + //APP +.Ltmp83: + msr DAIFSet, #2 // arch_local_irq_disable +.Ltmp84: + .section .altinstructions,"a",@progbits +.Ltmp85: + .word .Ltmp83-.Ltmp85 +.Ltmp87: + .word .Ltmp86-.Ltmp87 + .hword 42 + .byte .Ltmp84-.Ltmp83 + .byte .Ltmp88-.Ltmp86 + .text + + .text 1 +.Ltmp86: +.set .L__reg_num_x0, 0 +.set .L__reg_num_x1, 1 +.set .L__reg_num_x2, 2 +.set .L__reg_num_x3, 3 +.set .L__reg_num_x4, 4 +.set .L__reg_num_x5, 5 +.set .L__reg_num_x6, 6 +.set .L__reg_num_x7, 7 +.set .L__reg_num_x8, 8 +.set .L__reg_num_x9, 9 +.set .L__reg_num_x10, 10 +.set .L__reg_num_x11, 11 +.set .L__reg_num_x12, 12 +.set .L__reg_num_x13, 13 +.set .L__reg_num_x14, 14 +.set .L__reg_num_x15, 15 +.set .L__reg_num_x16, 16 +.set .L__reg_num_x17, 17 +.set .L__reg_num_x18, 18 +.set .L__reg_num_x19, 19 +.set .L__reg_num_x20, 20 +.set .L__reg_num_x21, 21 +.set .L__reg_num_x22, 22 +.set .L__reg_num_x23, 23 +.set .L__reg_num_x24, 24 +.set .L__reg_num_x25, 25 +.set .L__reg_num_x26, 26 +.set .L__reg_num_x27, 27 +.set .L__reg_num_x28, 28 +.set .L__reg_num_x29, 29 +.set .L__reg_num_x30, 30 + +.set .L__reg_num_xzr, 31 + + .inst 0xd5184609 + + +.Ltmp88: +.Ltmp89: +.org (.Ltmp89-(.Ltmp88-.Ltmp86))+(.Ltmp84-.Ltmp83), 0 +.Ltmp90: +.org (.Ltmp90-(.Ltmp84-.Ltmp83))+(.Ltmp88-.Ltmp86), 0 + .text + + + //NO_APP +.LBB141_17: + //APP + mrs x9, TTBR1_EL1 + //NO_APP + and x9, x9, #0xffffffffffff + sub x10, x9, #1, lsl #12 // =4096 + //APP + msr TTBR0_EL1, x10 + //NO_APP + //APP + isb + //NO_APP + //APP + msr TTBR1_EL1, x9 + //NO_APP + //APP + isb + //NO_APP + //APP +.Ltmp91: + msr DAIF, x8 +.Ltmp92: + .section .altinstructions,"a",@progbits +.Ltmp93: + .word .Ltmp91-.Ltmp93 +.Ltmp95: + .word .Ltmp94-.Ltmp95 + .hword 42 + .byte .Ltmp92-.Ltmp91 + .byte .Ltmp96-.Ltmp94 + .text + + .text 1 +.Ltmp94: +.set .L__reg_num_x0, 0 +.set .L__reg_num_x1, 1 +.set .L__reg_num_x2, 2 +.set .L__reg_num_x3, 3 +.set .L__reg_num_x4, 4 +.set .L__reg_num_x5, 5 +.set .L__reg_num_x6, 6 +.set .L__reg_num_x7, 7 +.set .L__reg_num_x8, 8 +.set .L__reg_num_x9, 9 +.set .L__reg_num_x10, 10 +.set .L__reg_num_x11, 11 +.set .L__reg_num_x12, 12 +.set .L__reg_num_x13, 13 +.set .L__reg_num_x14, 14 +.set .L__reg_num_x15, 15 +.set .L__reg_num_x16, 16 +.set .L__reg_num_x17, 17 +.set .L__reg_num_x18, 18 +.set .L__reg_num_x19, 19 +.set .L__reg_num_x20, 20 +.set .L__reg_num_x21, 21 +.set .L__reg_num_x22, 22 +.set .L__reg_num_x23, 23 +.set .L__reg_num_x24, 24 +.set .L__reg_num_x25, 25 +.set .L__reg_num_x26, 26 +.set .L__reg_num_x27, 27 +.set .L__reg_num_x28, 28 +.set .L__reg_num_x29, 29 +.set .L__reg_num_x30, 30 + +.set .L__reg_num_xzr, 31 + + .inst 0xd5184608 + + +.Ltmp96: +.Ltmp97: +.org (.Ltmp97-(.Ltmp96-.Ltmp94))+(.Ltmp92-.Ltmp91), 0 +.Ltmp98: +.org (.Ltmp98-(.Ltmp92-.Ltmp91))+(.Ltmp96-.Ltmp94), 0 + .text + + + //NO_APP + //APP +.Ltmp100: + nop + .section __jump_table,"aw",@progbits + .p2align 3 +.Ltmp101: + .word .Ltmp100-.Ltmp101 +.Ltmp102: + .word .Ltmp99-.Ltmp102 +.Ltmp103: + .xword gic_pmr_sync-.Ltmp103 + .text + + + //NO_APP +.LBB141_18: + cbnz x21, .LBB141_20 +.LBB141_19: + mov x0, x21 + ldp x20, x19, [sp, #32] // 16-byte Folded Reload + ldr x21, [sp, #16] // 8-byte Folded Reload + ldp x29, x30, [sp], #48 // 16-byte Folded Reload + hint #29 + ret +.LBB141_20: + sub x8, x19, x21 + add x0, x20, x8 + mov w1, wzr + mov x2, x21 + bl memset + b .LBB141_19 +.Ltmp0: // Block address taken +.LBB141_21: + hint #36 + adrp x10, cpu_hwcaps + ldr x10, [x10, :lo12:cpu_hwcaps] + tbz w10, #4, .LBB141_6 +.Ltmp5: // Block address taken +.LBB141_22: + hint #36 + //APP +.Ltmp104: + nop +.Ltmp105: + .section .altinstructions,"a",@progbits +.Ltmp106: + .word .Ltmp104-.Ltmp106 +.Ltmp108: + .word .Ltmp107-.Ltmp108 + .hword 10 + .byte .Ltmp105-.Ltmp104 + .byte .Ltmp109-.Ltmp107 + .text + + .text 1 +.Ltmp107: + .inst 0xd500409f + +.Ltmp109: +.Ltmp110: +.org (.Ltmp110-(.Ltmp109-.Ltmp107))+(.Ltmp105-.Ltmp104), 0 +.Ltmp111: +.org (.Ltmp111-(.Ltmp105-.Ltmp104))+(.Ltmp109-.Ltmp107), 0 + .text + + + //NO_APP + b .LBB141_11 +.Ltmp47: // Block address taken +.LBB141_23: + hint #36 + //APP + dsb sy + //NO_APP + b .LBB141_11 +.Ltmp52: // Block address taken +.LBB141_24: + hint #36 + adrp x8, cpu_hwcaps + ldr x8, [x8, :lo12:cpu_hwcaps] + tbz w8, #4, .LBB141_13 +.Ltmp57: // Block address taken +.LBB141_25: + hint #36 + //APP +.Ltmp112: + nop +.Ltmp113: + .section .altinstructions,"a",@progbits +.Ltmp114: + .word .Ltmp112-.Ltmp114 +.Ltmp116: + .word .Ltmp115-.Ltmp116 + .hword 10 + .byte .Ltmp113-.Ltmp112 + .byte .Ltmp117-.Ltmp115 + .text + + .text 1 +.Ltmp115: + .inst 0xd500419f + +.Ltmp117: +.Ltmp118: +.org (.Ltmp118-(.Ltmp117-.Ltmp115))+(.Ltmp113-.Ltmp112), 0 +.Ltmp119: +.org (.Ltmp119-(.Ltmp113-.Ltmp112))+(.Ltmp117-.Ltmp115), 0 + .text + + + //NO_APP + b .LBB141_18 +.Ltmp99: // Block address taken +.LBB141_26: + hint #36 + //APP + dsb sy + //NO_APP + b .LBB141_18 +.Ltmp26: // Block address taken +.LBB141_27: + hint #36 + mov w11, #160 + b .LBB141_9 +.Ltmp78: // Block address taken +.LBB141_28: + hint #36 + mov w9, #160 + b .LBB141_16 +.Lfunc_end141: + .size _copy_from_user, .Lfunc_end141-_copy_from_user + // -- End function + .p2align 2 // -- Begin function _copy_to_user + .type _copy_to_user,@function +_copy_to_user: // @_copy_to_user +// %bb.0: + hint #25 + stp x29, x30, [sp, #-16]! // 16-byte Folded Spill + //APP + mrs x8, SP_EL0 + //NO_APP + ldrb w11, [x8, #54] + ldr x10, [x8, #8] + lsl x9, x0, #8 + mov x29, sp + tbnz w11, #5, .LBB142_2 +// %bb.1: + ldr x12, [x8] + mov x11, x0 + tbz w12, #26, .LBB142_3 +.LBB142_2: + and x11, x0, x9, asr #8 +.LBB142_3: + //APP + adds x11, x11, x2 + csel x10, xzr, x10, hi + csinv x11, x11, xzr, lo + sbcs xzr, x11, x10 + cset x11, ls + + //NO_APP + cbz x11, .LBB142_18 +// %bb.4: + //APP +.Ltmp121: + b .Ltmp120 + .section __jump_table,"aw",@progbits + .p2align 3 +.Ltmp122: + .word .Ltmp121-.Ltmp122 +.Ltmp123: + .word .Ltmp120-.Ltmp123 +.Ltmp124: + .xword (arm64_const_caps_ready+1)-.Ltmp124 + .text + + + //NO_APP +// %bb.5: + //APP +.Ltmp126: + nop + .section __jump_table,"aw",@progbits + .p2align 3 +.Ltmp127: + .word .Ltmp126-.Ltmp127 +.Ltmp128: + .word .Ltmp125-.Ltmp128 +.Ltmp129: + .xword (cpu_hwcap_keys+64)-.Ltmp129 + .text + + + //NO_APP +.LBB142_6: + //APP +.Ltmp130: + mrs x10, DAIF +.Ltmp131: + .section .altinstructions,"a",@progbits +.Ltmp132: + .word .Ltmp130-.Ltmp132 +.Ltmp134: + .word .Ltmp133-.Ltmp134 + .hword 42 + .byte .Ltmp131-.Ltmp130 + .byte .Ltmp135-.Ltmp133 + .text + + .text 1 +.Ltmp133: +.set .L__reg_num_x0, 0 +.set .L__reg_num_x1, 1 +.set .L__reg_num_x2, 2 +.set .L__reg_num_x3, 3 +.set .L__reg_num_x4, 4 +.set .L__reg_num_x5, 5 +.set .L__reg_num_x6, 6 +.set .L__reg_num_x7, 7 +.set .L__reg_num_x8, 8 +.set .L__reg_num_x9, 9 +.set .L__reg_num_x10, 10 +.set .L__reg_num_x11, 11 +.set .L__reg_num_x12, 12 +.set .L__reg_num_x13, 13 +.set .L__reg_num_x14, 14 +.set .L__reg_num_x15, 15 +.set .L__reg_num_x16, 16 +.set .L__reg_num_x17, 17 +.set .L__reg_num_x18, 18 +.set .L__reg_num_x19, 19 +.set .L__reg_num_x20, 20 +.set .L__reg_num_x21, 21 +.set .L__reg_num_x22, 22 +.set .L__reg_num_x23, 23 +.set .L__reg_num_x24, 24 +.set .L__reg_num_x25, 25 +.set .L__reg_num_x26, 26 +.set .L__reg_num_x27, 27 +.set .L__reg_num_x28, 28 +.set .L__reg_num_x29, 29 +.set .L__reg_num_x30, 30 + +.set .L__reg_num_xzr, 31 + + .inst 0xd538460a + + +.Ltmp135: +.Ltmp136: +.org (.Ltmp136-(.Ltmp135-.Ltmp133))+(.Ltmp131-.Ltmp130), 0 +.Ltmp137: +.org (.Ltmp137-(.Ltmp131-.Ltmp130))+(.Ltmp135-.Ltmp133), 0 + .text + + + //NO_APP + //APP +.Ltmp138: + and w11, w10, #0x80 +.Ltmp139: + .section .altinstructions,"a",@progbits +.Ltmp140: + .word .Ltmp138-.Ltmp140 +.Ltmp142: + .word .Ltmp141-.Ltmp142 + .hword 42 + .byte .Ltmp139-.Ltmp138 + .byte .Ltmp143-.Ltmp141 + .text + + .text 1 +.Ltmp141: + eor w11, w10, #0xe0 +.Ltmp143: +.Ltmp144: +.org (.Ltmp144-(.Ltmp143-.Ltmp141))+(.Ltmp139-.Ltmp138), 0 +.Ltmp145: +.org (.Ltmp145-(.Ltmp139-.Ltmp138))+(.Ltmp143-.Ltmp141), 0 + .text + + + //NO_APP + cbnz w11, .LBB142_10 +// %bb.7: + //APP +.Ltmp147: + nop + .section __jump_table,"aw",@progbits + .p2align 3 +.Ltmp148: + .word .Ltmp147-.Ltmp148 +.Ltmp149: + .word .Ltmp146-.Ltmp149 +.Ltmp150: + .xword gic_nonsecure_priorities-.Ltmp150 + .text + + + //NO_APP +// %bb.8: + mov w11, #96 +.LBB142_9: + //APP +.Ltmp151: + msr DAIFSet, #2 // arch_local_irq_disable +.Ltmp152: + .section .altinstructions,"a",@progbits +.Ltmp153: + .word .Ltmp151-.Ltmp153 +.Ltmp155: + .word .Ltmp154-.Ltmp155 + .hword 42 + .byte .Ltmp152-.Ltmp151 + .byte .Ltmp156-.Ltmp154 + .text + + .text 1 +.Ltmp154: +.set .L__reg_num_x0, 0 +.set .L__reg_num_x1, 1 +.set .L__reg_num_x2, 2 +.set .L__reg_num_x3, 3 +.set .L__reg_num_x4, 4 +.set .L__reg_num_x5, 5 +.set .L__reg_num_x6, 6 +.set .L__reg_num_x7, 7 +.set .L__reg_num_x8, 8 +.set .L__reg_num_x9, 9 +.set .L__reg_num_x10, 10 +.set .L__reg_num_x11, 11 +.set .L__reg_num_x12, 12 +.set .L__reg_num_x13, 13 +.set .L__reg_num_x14, 14 +.set .L__reg_num_x15, 15 +.set .L__reg_num_x16, 16 +.set .L__reg_num_x17, 17 +.set .L__reg_num_x18, 18 +.set .L__reg_num_x19, 19 +.set .L__reg_num_x20, 20 +.set .L__reg_num_x21, 21 +.set .L__reg_num_x22, 22 +.set .L__reg_num_x23, 23 +.set .L__reg_num_x24, 24 +.set .L__reg_num_x25, 25 +.set .L__reg_num_x26, 26 +.set .L__reg_num_x27, 27 +.set .L__reg_num_x28, 28 +.set .L__reg_num_x29, 29 +.set .L__reg_num_x30, 30 + +.set .L__reg_num_xzr, 31 + + .inst 0xd518460b + + +.Ltmp156: +.Ltmp157: +.org (.Ltmp157-(.Ltmp156-.Ltmp154))+(.Ltmp152-.Ltmp151), 0 +.Ltmp158: +.org (.Ltmp158-(.Ltmp152-.Ltmp151))+(.Ltmp156-.Ltmp154), 0 + .text + + + //NO_APP +.LBB142_10: + ldr x11, [x8, #16] + //APP + mrs x12, TTBR1_EL1 + //NO_APP + mov x13, x11 + bfxil x13, x12, #0, #48 + //APP + msr TTBR1_EL1, x13 + //NO_APP + //APP + isb + //NO_APP + //APP + msr TTBR0_EL1, x11 + //NO_APP + //APP + isb + //NO_APP + //APP +.Ltmp159: + msr DAIF, x10 +.Ltmp160: + .section .altinstructions,"a",@progbits +.Ltmp161: + .word .Ltmp159-.Ltmp161 +.Ltmp163: + .word .Ltmp162-.Ltmp163 + .hword 42 + .byte .Ltmp160-.Ltmp159 + .byte .Ltmp164-.Ltmp162 + .text + + .text 1 +.Ltmp162: +.set .L__reg_num_x0, 0 +.set .L__reg_num_x1, 1 +.set .L__reg_num_x2, 2 +.set .L__reg_num_x3, 3 +.set .L__reg_num_x4, 4 +.set .L__reg_num_x5, 5 +.set .L__reg_num_x6, 6 +.set .L__reg_num_x7, 7 +.set .L__reg_num_x8, 8 +.set .L__reg_num_x9, 9 +.set .L__reg_num_x10, 10 +.set .L__reg_num_x11, 11 +.set .L__reg_num_x12, 12 +.set .L__reg_num_x13, 13 +.set .L__reg_num_x14, 14 +.set .L__reg_num_x15, 15 +.set .L__reg_num_x16, 16 +.set .L__reg_num_x17, 17 +.set .L__reg_num_x18, 18 +.set .L__reg_num_x19, 19 +.set .L__reg_num_x20, 20 +.set .L__reg_num_x21, 21 +.set .L__reg_num_x22, 22 +.set .L__reg_num_x23, 23 +.set .L__reg_num_x24, 24 +.set .L__reg_num_x25, 25 +.set .L__reg_num_x26, 26 +.set .L__reg_num_x27, 27 +.set .L__reg_num_x28, 28 +.set .L__reg_num_x29, 29 +.set .L__reg_num_x30, 30 + +.set .L__reg_num_xzr, 31 + + .inst 0xd518460a + + +.Ltmp164: +.Ltmp165: +.org (.Ltmp165-(.Ltmp164-.Ltmp162))+(.Ltmp160-.Ltmp159), 0 +.Ltmp166: +.org (.Ltmp166-(.Ltmp160-.Ltmp159))+(.Ltmp164-.Ltmp162), 0 + .text + + + //NO_APP + //APP +.Ltmp168: + nop + .section __jump_table,"aw",@progbits + .p2align 3 +.Ltmp169: + .word .Ltmp168-.Ltmp169 +.Ltmp170: + .word .Ltmp167-.Ltmp170 +.Ltmp171: + .xword gic_pmr_sync-.Ltmp171 + .text + + + //NO_APP +.LBB142_11: + ldr x10, [x8, #8] + and x9, x0, x9, asr #8 + //APP + bics xzr, x9, x10 + csel x8, x0, xzr, eq + + //NO_APP + //APP + csdb + //NO_APP + mov x0, x8 + bl __arch_copy_to_user + mov x2, x0 + //APP +.Ltmp173: + b .Ltmp172 + .section __jump_table,"aw",@progbits + .p2align 3 +.Ltmp174: + .word .Ltmp173-.Ltmp174 +.Ltmp175: + .word .Ltmp172-.Ltmp175 +.Ltmp176: + .xword (arm64_const_caps_ready+1)-.Ltmp176 + .text + + + //NO_APP +// %bb.12: + //APP +.Ltmp178: + nop + .section __jump_table,"aw",@progbits + .p2align 3 +.Ltmp179: + .word .Ltmp178-.Ltmp179 +.Ltmp180: + .word .Ltmp177-.Ltmp180 +.Ltmp181: + .xword (cpu_hwcap_keys+64)-.Ltmp181 + .text + + + //NO_APP +.LBB142_13: + //APP +.Ltmp182: + mrs x8, DAIF +.Ltmp183: + .section .altinstructions,"a",@progbits +.Ltmp184: + .word .Ltmp182-.Ltmp184 +.Ltmp186: + .word .Ltmp185-.Ltmp186 + .hword 42 + .byte .Ltmp183-.Ltmp182 + .byte .Ltmp187-.Ltmp185 + .text + + .text 1 +.Ltmp185: +.set .L__reg_num_x0, 0 +.set .L__reg_num_x1, 1 +.set .L__reg_num_x2, 2 +.set .L__reg_num_x3, 3 +.set .L__reg_num_x4, 4 +.set .L__reg_num_x5, 5 +.set .L__reg_num_x6, 6 +.set .L__reg_num_x7, 7 +.set .L__reg_num_x8, 8 +.set .L__reg_num_x9, 9 +.set .L__reg_num_x10, 10 +.set .L__reg_num_x11, 11 +.set .L__reg_num_x12, 12 +.set .L__reg_num_x13, 13 +.set .L__reg_num_x14, 14 +.set .L__reg_num_x15, 15 +.set .L__reg_num_x16, 16 +.set .L__reg_num_x17, 17 +.set .L__reg_num_x18, 18 +.set .L__reg_num_x19, 19 +.set .L__reg_num_x20, 20 +.set .L__reg_num_x21, 21 +.set .L__reg_num_x22, 22 +.set .L__reg_num_x23, 23 +.set .L__reg_num_x24, 24 +.set .L__reg_num_x25, 25 +.set .L__reg_num_x26, 26 +.set .L__reg_num_x27, 27 +.set .L__reg_num_x28, 28 +.set .L__reg_num_x29, 29 +.set .L__reg_num_x30, 30 + +.set .L__reg_num_xzr, 31 + + .inst 0xd5384608 + + +.Ltmp187: +.Ltmp188: +.org (.Ltmp188-(.Ltmp187-.Ltmp185))+(.Ltmp183-.Ltmp182), 0 +.Ltmp189: +.org (.Ltmp189-(.Ltmp183-.Ltmp182))+(.Ltmp187-.Ltmp185), 0 + .text + + + //NO_APP + //APP +.Ltmp190: + and w9, w8, #0x80 +.Ltmp191: + .section .altinstructions,"a",@progbits +.Ltmp192: + .word .Ltmp190-.Ltmp192 +.Ltmp194: + .word .Ltmp193-.Ltmp194 + .hword 42 + .byte .Ltmp191-.Ltmp190 + .byte .Ltmp195-.Ltmp193 + .text + + .text 1 +.Ltmp193: + eor w9, w8, #0xe0 +.Ltmp195: +.Ltmp196: +.org (.Ltmp196-(.Ltmp195-.Ltmp193))+(.Ltmp191-.Ltmp190), 0 +.Ltmp197: +.org (.Ltmp197-(.Ltmp191-.Ltmp190))+(.Ltmp195-.Ltmp193), 0 + .text + + + //NO_APP + cbnz w9, .LBB142_17 +// %bb.14: + //APP +.Ltmp199: + nop + .section __jump_table,"aw",@progbits + .p2align 3 +.Ltmp200: + .word .Ltmp199-.Ltmp200 +.Ltmp201: + .word .Ltmp198-.Ltmp201 +.Ltmp202: + .xword gic_nonsecure_priorities-.Ltmp202 + .text + + + //NO_APP +// %bb.15: + mov w9, #96 +.LBB142_16: + //APP +.Ltmp203: + msr DAIFSet, #2 // arch_local_irq_disable +.Ltmp204: + .section .altinstructions,"a",@progbits +.Ltmp205: + .word .Ltmp203-.Ltmp205 +.Ltmp207: + .word .Ltmp206-.Ltmp207 + .hword 42 + .byte .Ltmp204-.Ltmp203 + .byte .Ltmp208-.Ltmp206 + .text + + .text 1 +.Ltmp206: +.set .L__reg_num_x0, 0 +.set .L__reg_num_x1, 1 +.set .L__reg_num_x2, 2 +.set .L__reg_num_x3, 3 +.set .L__reg_num_x4, 4 +.set .L__reg_num_x5, 5 +.set .L__reg_num_x6, 6 +.set .L__reg_num_x7, 7 +.set .L__reg_num_x8, 8 +.set .L__reg_num_x9, 9 +.set .L__reg_num_x10, 10 +.set .L__reg_num_x11, 11 +.set .L__reg_num_x12, 12 +.set .L__reg_num_x13, 13 +.set .L__reg_num_x14, 14 +.set .L__reg_num_x15, 15 +.set .L__reg_num_x16, 16 +.set .L__reg_num_x17, 17 +.set .L__reg_num_x18, 18 +.set .L__reg_num_x19, 19 +.set .L__reg_num_x20, 20 +.set .L__reg_num_x21, 21 +.set .L__reg_num_x22, 22 +.set .L__reg_num_x23, 23 +.set .L__reg_num_x24, 24 +.set .L__reg_num_x25, 25 +.set .L__reg_num_x26, 26 +.set .L__reg_num_x27, 27 +.set .L__reg_num_x28, 28 +.set .L__reg_num_x29, 29 +.set .L__reg_num_x30, 30 + +.set .L__reg_num_xzr, 31 + + .inst 0xd5184609 + + +.Ltmp208: +.Ltmp209: +.org (.Ltmp209-(.Ltmp208-.Ltmp206))+(.Ltmp204-.Ltmp203), 0 +.Ltmp210: +.org (.Ltmp210-(.Ltmp204-.Ltmp203))+(.Ltmp208-.Ltmp206), 0 + .text + + + //NO_APP +.LBB142_17: + //APP + mrs x9, TTBR1_EL1 + //NO_APP + and x9, x9, #0xffffffffffff + sub x10, x9, #1, lsl #12 // =4096 + //APP + msr TTBR0_EL1, x10 + //NO_APP + //APP + isb + //NO_APP + //APP + msr TTBR1_EL1, x9 + //NO_APP + //APP + isb + //NO_APP + //APP +.Ltmp211: + msr DAIF, x8 +.Ltmp212: + .section .altinstructions,"a",@progbits +.Ltmp213: + .word .Ltmp211-.Ltmp213 +.Ltmp215: + .word .Ltmp214-.Ltmp215 + .hword 42 + .byte .Ltmp212-.Ltmp211 + .byte .Ltmp216-.Ltmp214 + .text + + .text 1 +.Ltmp214: +.set .L__reg_num_x0, 0 +.set .L__reg_num_x1, 1 +.set .L__reg_num_x2, 2 +.set .L__reg_num_x3, 3 +.set .L__reg_num_x4, 4 +.set .L__reg_num_x5, 5 +.set .L__reg_num_x6, 6 +.set .L__reg_num_x7, 7 +.set .L__reg_num_x8, 8 +.set .L__reg_num_x9, 9 +.set .L__reg_num_x10, 10 +.set .L__reg_num_x11, 11 +.set .L__reg_num_x12, 12 +.set .L__reg_num_x13, 13 +.set .L__reg_num_x14, 14 +.set .L__reg_num_x15, 15 +.set .L__reg_num_x16, 16 +.set .L__reg_num_x17, 17 +.set .L__reg_num_x18, 18 +.set .L__reg_num_x19, 19 +.set .L__reg_num_x20, 20 +.set .L__reg_num_x21, 21 +.set .L__reg_num_x22, 22 +.set .L__reg_num_x23, 23 +.set .L__reg_num_x24, 24 +.set .L__reg_num_x25, 25 +.set .L__reg_num_x26, 26 +.set .L__reg_num_x27, 27 +.set .L__reg_num_x28, 28 +.set .L__reg_num_x29, 29 +.set .L__reg_num_x30, 30 + +.set .L__reg_num_xzr, 31 + + .inst 0xd5184608 + + +.Ltmp216: +.Ltmp217: +.org (.Ltmp217-(.Ltmp216-.Ltmp214))+(.Ltmp212-.Ltmp211), 0 +.Ltmp218: +.org (.Ltmp218-(.Ltmp212-.Ltmp211))+(.Ltmp216-.Ltmp214), 0 + .text + + + //NO_APP + //APP +.Ltmp220: + nop + .section __jump_table,"aw",@progbits + .p2align 3 +.Ltmp221: + .word .Ltmp220-.Ltmp221 +.Ltmp222: + .word .Ltmp219-.Ltmp222 +.Ltmp223: + .xword gic_pmr_sync-.Ltmp223 + .text + + + //NO_APP +.LBB142_18: + mov x0, x2 + ldp x29, x30, [sp], #16 // 16-byte Folded Reload + hint #29 + ret +.Ltmp120: // Block address taken +.LBB142_19: + hint #36 + adrp x10, cpu_hwcaps + ldr x10, [x10, :lo12:cpu_hwcaps] + tbz w10, #4, .LBB142_6 +.Ltmp125: // Block address taken +.LBB142_20: + hint #36 + //APP +.Ltmp224: + nop +.Ltmp225: + .section .altinstructions,"a",@progbits +.Ltmp226: + .word .Ltmp224-.Ltmp226 +.Ltmp228: + .word .Ltmp227-.Ltmp228 + .hword 10 + .byte .Ltmp225-.Ltmp224 + .byte .Ltmp229-.Ltmp227 + .text + + .text 1 +.Ltmp227: + .inst 0xd500409f + +.Ltmp229: +.Ltmp230: +.org (.Ltmp230-(.Ltmp229-.Ltmp227))+(.Ltmp225-.Ltmp224), 0 +.Ltmp231: +.org (.Ltmp231-(.Ltmp225-.Ltmp224))+(.Ltmp229-.Ltmp227), 0 + .text + + + //NO_APP + b .LBB142_11 +.Ltmp167: // Block address taken +.LBB142_21: + hint #36 + //APP + dsb sy + //NO_APP + b .LBB142_11 +.Ltmp172: // Block address taken +.LBB142_22: + hint #36 + adrp x8, cpu_hwcaps + ldr x8, [x8, :lo12:cpu_hwcaps] + tbz w8, #4, .LBB142_13 +.Ltmp177: // Block address taken +.LBB142_23: + hint #36 + //APP +.Ltmp232: + nop +.Ltmp233: + .section .altinstructions,"a",@progbits +.Ltmp234: + .word .Ltmp232-.Ltmp234 +.Ltmp236: + .word .Ltmp235-.Ltmp236 + .hword 10 + .byte .Ltmp233-.Ltmp232 + .byte .Ltmp237-.Ltmp235 + .text + + .text 1 +.Ltmp235: + .inst 0xd500419f + +.Ltmp237: +.Ltmp238: +.org (.Ltmp238-(.Ltmp237-.Ltmp235))+(.Ltmp233-.Ltmp232), 0 +.Ltmp239: +.org (.Ltmp239-(.Ltmp233-.Ltmp232))+(.Ltmp237-.Ltmp235), 0 + .text + + + //NO_APP + b .LBB142_18 +.Ltmp219: // Block address taken +.LBB142_24: + hint #36 + //APP + dsb sy + //NO_APP + b .LBB142_18 +.Ltmp146: // Block address taken +.LBB142_25: + hint #36 + mov w11, #160 + b .LBB142_9 +.Ltmp198: // Block address taken +.LBB142_26: + hint #36 + mov w9, #160 + b .LBB142_16 +.Lfunc_end142: + .size _copy_to_user, .Lfunc_end142-_copy_to_user + // -- End function .type gFtlInitStatus,@object // @gFtlInitStatus .data .globl gFtlInitStatus @@ -20551,7 +21900,7 @@ gFtlInitStatus: .type .L.str.1,@object // @.str.1 .L.str.1: - .asciz "SFTL version: 5.0.56 20210329" + .asciz "SFTL version: 5.0.58 20220814" .size .L.str.1, 30 .type .L.str.2,@object // @.str.2 @@ -22507,13 +23856,13 @@ g_nand_ops: .type .L.str.128,@object // @.str.128 .L.str.128: - .asciz "prog read s error: = %x %x %x\n" - .size .L.str.128, 31 + .asciz "prog read s error: = %x %x %x %x %x\n" + .size .L.str.128, 37 .type .L.str.129,@object // @.str.129 .L.str.129: - .asciz "prog read d error: = %x %x %x\n" - .size .L.str.129, 31 + .asciz "prog read d error: = %x %x %x %x %x\n" + .size .L.str.129, 37 .type .L__func__.FlashEraseBlocks,@object // @__func__.FlashEraseBlocks .L__func__.FlashEraseBlocks: @@ -22647,4 +23996,9 @@ rk_sftl_vendor_storage_fops: .addrsig_sym gL2pMapInfo .addrsig_sym gVendorBlkInfo .addrsig_sym rkflash_vender_storage_dev + .addrsig_sym arm64_const_caps_ready + .addrsig_sym cpu_hwcap_keys + .addrsig_sym cpu_hwcaps + .addrsig_sym gic_nonsecure_priorities + .addrsig_sym gic_pmr_sync .addrsig_sym rk_sftl_vendor_storage_fops