From a5cf9c0db512c3b025963a53bb2ad30b48a4862f Mon Sep 17 00:00:00 2001 From: Dingqiang Lin Date: Tue, 14 Aug 2018 14:33:22 +0800 Subject: [PATCH] drivers: rkflash: support kernel IDBlock update 1.Write IDBlock to corresponding PBA 2.Update gc and sys code Change-Id: I486325ab430df1135d6449d654a8143d5ef9788e Signed-off-by: Dingqiang Lin --- drivers/rkflash/rk_sftl_arm_v7.S | 9129 +++++++++++++----------- drivers/rkflash/rk_sftl_arm_v7_thumb.S | 9030 ++++++++++++----------- drivers/rkflash/rk_sftl_arm_v8.S | 7219 ++++++++++--------- 3 files changed, 13461 insertions(+), 11917 deletions(-) diff --git a/drivers/rkflash/rk_sftl_arm_v7.S b/drivers/rkflash/rk_sftl_arm_v7.S index 269c66693e1c..eb59ee471ec0 100644 --- a/drivers/rkflash/rk_sftl_arm_v7.S +++ b/drivers/rkflash/rk_sftl_arm_v7.S @@ -2,44 +2,10 @@ /* * Copyright (c) 2018 Rockchip Electronics Co. Ltd. - * date: 2018-08-07 + * date: 2018-08-14 */ .file "rk_sftl.c" - .syntax divided - .macro it, cond - .endm - .macro itt, cond - .endm - .macro ite, cond - .endm - .macro ittt, cond - .endm - .macro itte, cond - .endm - .macro itet, cond - .endm - .macro itee, cond - .endm - .macro itttt, cond - .endm - .macro ittte, cond - .endm - .macro ittet, cond - .endm - .macro ittee, cond - .endm - .macro itett, cond - .endm - .macro itete, cond - .endm - .macro iteet, cond - .endm - .macro iteee, cond - .endm - .global __udivsi3 - .arm - .syntax unified .text .align 2 .syntax unified @@ -352,6 +318,21 @@ IsBlkInVendorPart: .word .LANCHOR0 .size IsBlkInVendorPart, .-IsBlkInVendorPart .align 2 + .global FtlCacheWriteBack + .syntax unified + .arm + .fpu softvfp + .type FtlCacheWriteBack, %function +FtlCacheWriteBack: + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 1, uses_anonymous_args = 0 + mov ip, sp + push {fp, ip, lr, pc} + sub fp, ip, #4 + mov r0, #0 + ldmfd sp, {fp, sp, pc} + .size FtlCacheWriteBack, .-FtlCacheWriteBack + .align 2 .global sftl_get_density .syntax unified .arm @@ -363,12 +344,12 @@ sftl_get_density: mov ip, sp push {fp, ip, lr, pc} sub fp, ip, #4 - ldr r3, .L36 + ldr r3, .L37 ldr r0, [r3, #140] ldmfd sp, {fp, sp, pc} -.L37: +.L38: .align 2 -.L36: +.L37: .word .LANCHOR0 .size sftl_get_density, .-sftl_get_density .global __umodsi3 @@ -386,7 +367,7 @@ FtlBbmMapBadBlock: sub fp, ip, #4 sub sp, sp, #4 uxth r5, r0 - ldr r4, .L39 + ldr r4, .L40 mov r0, r5 ldrh r7, [r4, #98] mov r1, r7 @@ -407,16 +388,16 @@ FtlBbmMapBadBlock: mov r2, r6 str r1, [sp] mov r1, r5 - ldr r0, .L39+4 + ldr r0, .L40+4 bl sftl_printk ldrh r3, [r4, #158] mov r0, #0 add r3, r3, #1 strh r3, [r4, #158] @ movhi ldmib sp, {r4, r5, r6, r7, fp, sp, pc} -.L40: +.L41: .align 2 -.L39: +.L40: .word .LANCHOR0 .word .LC0 .size FtlBbmMapBadBlock, .-FtlBbmMapBadBlock @@ -432,7 +413,7 @@ FtlBbmIsBadBlock: mov ip, sp push {r4, r5, r6, r7, fp, ip, lr, pc} sub fp, ip, #4 - ldr r5, .L42 + ldr r5, .L43 uxth r6, r0 ldrh r7, [r5, #98] mov r0, r6 @@ -451,9 +432,9 @@ FtlBbmIsBadBlock: lsr r0, r0, r4 and r0, r0, #1 ldmfd sp, {r4, r5, r6, r7, fp, sp, pc} -.L43: +.L44: .align 2 -.L42: +.L43: .word .LANCHOR0 .size FtlBbmIsBadBlock, .-FtlBbmIsBadBlock .align 2 @@ -482,7 +463,7 @@ FtlBbtMemInit: mov ip, sp push {fp, ip, lr, pc} sub fp, ip, #4 - ldr r0, .L46 + ldr r0, .L47 mvn r3, #0 mov r2, #16 mov r1, #255 @@ -492,9 +473,9 @@ FtlBbtMemInit: add r0, r0, #164 bl memset ldmfd sp, {fp, sp, pc} -.L47: +.L48: .align 2 -.L46: +.L47: .word .LANCHOR0 .size FtlBbtMemInit, .-FtlBbtMemInit .align 2 @@ -509,28 +490,28 @@ FtlBbtCalcTotleCnt: mov ip, sp push {r4, r5, r6, fp, ip, lr, pc} sub fp, ip, #4 - ldr r3, .L55 + ldr r3, .L56 mov r5, #0 mov r4, r5 ldrh r2, [r3, #98] ldrh r6, [r3, #54] mul r6, r6, r2 -.L49: +.L50: uxth r0, r5 cmp r0, r6 - blt .L51 + blt .L52 mov r0, r4 ldmfd sp, {r4, r5, r6, fp, sp, pc} -.L51: +.L52: bl FtlBbmIsBadBlock cmp r0, #0 add r5, r5, #1 addne r4, r4, #1 uxthne r4, r4 - b .L49 -.L56: + b .L50 +.L57: .align 2 -.L55: +.L56: .word .LANCHOR0 .size FtlBbtCalcTotleCnt, .-FtlBbtCalcTotleCnt .align 2 @@ -545,7 +526,7 @@ V2P_block: mov ip, sp push {r4, r5, r6, r7, fp, ip, lr, pc} sub fp, ip, #4 - ldr r4, .L58 + ldr r4, .L59 uxth r7, r0 uxth r5, r1 ldrh r6, [r4, #56] @@ -562,9 +543,9 @@ V2P_block: add r0, r4, r0 uxth r0, r0 ldmfd sp, {r4, r5, r6, r7, fp, sp, pc} -.L59: +.L60: .align 2 -.L58: +.L59: .word .LANCHOR0 .size V2P_block, .-V2P_block .align 2 @@ -579,7 +560,7 @@ P2V_plane: mov ip, sp push {r4, r5, r6, fp, ip, lr, pc} sub fp, ip, #4 - ldr r3, .L61 + ldr r3, .L62 uxth r5, r0 ldrh r6, [r3, #56] mov r0, r5 @@ -592,9 +573,9 @@ P2V_plane: add r0, r4, r0 uxth r0, r0 ldmfd sp, {r4, r5, r6, fp, sp, pc} -.L62: +.L63: .align 2 -.L61: +.L62: .word .LANCHOR0 .size P2V_plane, .-P2V_plane .align 2 @@ -609,7 +590,7 @@ P2V_block_in_plane: mov ip, sp push {r4, fp, ip, lr, pc} sub fp, ip, #4 - ldr r4, .L64 + ldr r4, .L65 uxth r0, r0 ldrh r1, [r4, #98] bl __umodsi3 @@ -618,9 +599,9 @@ P2V_block_in_plane: bl __udivsi3 uxth r0, r0 ldmfd sp, {r4, fp, sp, pc} -.L65: +.L66: .align 2 -.L64: +.L65: .word .LANCHOR0 .size P2V_block_in_plane, .-P2V_block_in_plane .align 2 @@ -636,13 +617,13 @@ ftl_cmp_data_ver: push {fp, ip, lr, pc} sub fp, ip, #4 cmp r0, r1 - bls .L67 + bls .L68 sub r0, r0, r1 cmp r0, #-2147483648 movhi r0, #0 movls r0, #1 ldmfd sp, {fp, sp, pc} -.L67: +.L68: sub r0, r1, r0 cmp r0, #-2147483648 movls r0, #0 @@ -661,7 +642,7 @@ FtlFreeSysBlkQueueInit: mov ip, sp push {r4, fp, ip, lr, pc} sub fp, ip, #4 - ldr r3, .L70 + ldr r3, .L71 mov r4, #0 mov r1, #2048 strh r0, [r3, #212] @ movhi @@ -672,9 +653,9 @@ FtlFreeSysBlkQueueInit: bl __memzero mov r0, r4 ldmfd sp, {r4, fp, sp, pc} -.L71: +.L72: .align 2 -.L70: +.L71: .word .LANCHOR0 .size FtlFreeSysBlkQueueInit, .-FtlFreeSysBlkQueueInit .align 2 @@ -689,14 +670,14 @@ FtlFreeSysBlkQueueEmpty: mov ip, sp push {fp, ip, lr, pc} sub fp, ip, #4 - ldr r3, .L73 + ldr r3, .L74 ldrh r0, [r3, #218] clz r0, r0 lsr r0, r0, #5 ldmfd sp, {fp, sp, pc} -.L74: +.L75: .align 2 -.L73: +.L74: .word .LANCHOR0 .size FtlFreeSysBlkQueueEmpty, .-FtlFreeSysBlkQueueEmpty .align 2 @@ -711,15 +692,15 @@ FtlFreeSysBlkQueueFull: mov ip, sp push {fp, ip, lr, pc} sub fp, ip, #4 - ldr r3, .L76 + ldr r3, .L77 ldrh r0, [r3, #218] sub r0, r0, #1024 clz r0, r0 lsr r0, r0, #5 ldmfd sp, {fp, sp, pc} -.L77: +.L78: .align 2 -.L76: +.L77: .word .LANCHOR0 .size FtlFreeSysBlkQueueFull, .-FtlFreeSysBlkQueueFull .align 2 @@ -734,27 +715,27 @@ FtlFreeSysBLkSort: mov ip, sp push {r4, fp, ip, lr, pc} sub fp, ip, #4 - ldr r3, .L87 + ldr r3, .L88 ldrh r2, [r3, #218] cmp r2, #0 ldmfdeq sp, {r4, fp, sp, pc} - ldr r2, .L87+4 + ldr r2, .L88+4 mov r4, #0 ldrh r1, [r3, #214] mov lr, r4 ldrh ip, [r2, #28] ldrh r2, [r3, #216] and ip, ip, #31 -.L80: +.L81: uxth r0, r4 add r4, r4, #1 cmp ip, r0 - bgt .L81 + bgt .L82 cmp lr, #0 strhne r1, [r3, #214] @ movhi strhne r2, [r3, #216] @ movhi ldmfd sp, {r4, fp, sp, pc} -.L81: +.L82: add r0, r3, r1, lsl #1 add r1, r1, #1 ubfx r1, r1, #0, #10 @@ -764,10 +745,10 @@ FtlFreeSysBLkSort: mov lr, #1 add r2, r2, lr ubfx r2, r2, #0, #10 - b .L80 -.L88: + b .L81 +.L89: .align 2 -.L87: +.L88: .word .LANCHOR0 .word .LANCHOR0+2268 .size FtlFreeSysBLkSort, .-FtlFreeSysBLkSort @@ -783,37 +764,75 @@ IsInFreeQueue: mov ip, sp push {fp, ip, lr, pc} sub fp, ip, #4 - ldr r3, .L95 + ldr r3, .L96 uxth r0, r0 ldrh ip, [r3, #218] cmp ip, #1024 ldrhne lr, [r3, #214] movne r1, #0 - bne .L91 -.L93: + bne .L92 +.L94: mov r0, #0 ldmfd sp, {fp, sp, pc} -.L92: +.L93: add r2, r1, lr ubfx r2, r2, #0, #10 add r2, r3, r2, lsl #1 ldrh r2, [r2, #220] cmp r2, r0 - beq .L94 + beq .L95 add r1, r1, #1 -.L91: +.L92: cmp r1, ip - bcc .L92 - b .L93 -.L94: + bcc .L93 + b .L94 +.L95: mov r0, #1 ldmfd sp, {fp, sp, pc} -.L96: +.L97: .align 2 -.L95: +.L96: .word .LANCHOR0 .size IsInFreeQueue, .-IsInFreeQueue .align 2 + .global test_node_in_list + .syntax unified + .arm + .fpu softvfp + .type test_node_in_list, %function +test_node_in_list: + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 1, uses_anonymous_args = 0 + mov ip, sp + push {fp, ip, lr, pc} + sub fp, ip, #4 + ldr r3, .L103 + uxth r1, r1 + movw ip, #65535 + ldr r2, [r0] + ldr r0, [r3, #2316] + sub r3, r2, r0 + ubfx r3, r3, #3, #16 +.L100: + cmp r3, r1 + beq .L101 + ldrh r3, [r2] + cmp r3, ip + beq .L102 + add r2, r0, r3, lsl #3 + b .L100 +.L101: + mov r0, #1 + ldmfd sp, {fp, sp, pc} +.L102: + mov r0, #0 + ldmfd sp, {fp, sp, pc} +.L104: + .align 2 +.L103: + .word .LANCHOR0 + .size test_node_in_list, .-test_node_in_list + .align 2 .global insert_data_list .syntax unified .arm @@ -827,11 +846,11 @@ insert_data_list: sub fp, ip, #4 sub sp, sp, #12 uxth r0, r0 - ldr r1, .L113 + ldr r1, .L121 ldrh r3, [r1, #40] mov lr, r1 cmp r3, r0 - bls .L99 + bls .L107 ldr r6, [r1, #2316] lsl r5, r0, #3 mvn ip, #0 @@ -840,11 +859,11 @@ insert_data_list: strh ip, [r6, r5] @ movhi ldr r3, [r1, #2320] cmp r3, #0 - bne .L100 -.L112: + bne .L108 +.L120: str r2, [r1, #2320] - b .L99 -.L100: + b .L107 +.L108: ldr r7, [r1, #2324] lsl r4, r0, #1 ldrh r1, [r2, #4] @@ -862,7 +881,7 @@ insert_data_list: add lr, r8, r4 str lr, [fp, #-52] mov lr, #0 -.L108: +.L116: ldr r4, [fp, #-48] add lr, lr, #1 uxth lr, lr @@ -872,7 +891,7 @@ insert_data_list: cmp r0, r1 orreq r4, r4, #1 cmp r4, #0 - bne .L99 + bne .L107 lsl r9, r1, #1 ldrh r4, [r7, r9] mov ip, r4 @@ -882,51 +901,51 @@ insert_data_list: ldr ip, [fp, #-44] mvneq r4, #0 cmp ip, r4 - bne .L104 + bne .L112 ldr ip, [fp, #-52] ldrh r9, [r8, r9] ldrh r4, [ip] cmp r9, r4 - bcc .L106 -.L105: + bcc .L114 +.L113: strh r1, [r6, r5] @ movhi ldrh r1, [r3, #2] strh r1, [r2, #2] @ movhi - ldr r1, .L113 + ldr r1, .L121 ldr ip, [r1, #2320] cmp r3, ip - bne .L109 + bne .L117 strh r0, [r3, #2] @ movhi - b .L112 -.L104: - bcc .L105 -.L106: + b .L120 +.L112: + bcc .L113 +.L114: ldrh r4, [r3] movw ip, #65535 cmp r4, ip - bne .L107 + bne .L115 strh r1, [r2, #2] @ movhi strh r0, [r3] @ movhi - ldr r3, .L113 + ldr r3, .L121 str r2, [r3, #2332] -.L99: +.L107: mov r0, #0 sub sp, fp, #40 ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc} -.L107: +.L115: add r3, r10, r4, lsl #3 mov r1, r4 - b .L108 -.L109: + b .L116 +.L117: ldrh r2, [r3, #2] ldr r1, [r1, #2316] lsl r2, r2, #3 strh r0, [r1, r2] @ movhi strh r0, [r3, #2] @ movhi - b .L99 -.L114: + b .L107 +.L122: .align 2 -.L113: +.L121: .word .LANCHOR0 .size insert_data_list, .-insert_data_list .align 2 @@ -943,7 +962,7 @@ INSERT_DATA_LIST: sub fp, ip, #4 uxth r0, r0 bl insert_data_list - ldr r2, .L117 + ldr r2, .L125 add r1, r2, #2336 ldrh r2, [r2, #40] ldrh r3, [r1] @@ -953,13 +972,13 @@ INSERT_DATA_LIST: strh r3, [r1] @ movhi ldmfdcs sp, {fp, sp, pc} mov r2, #221 - ldr r1, .L117+4 - ldr r0, .L117+8 + ldr r1, .L125+4 + ldr r0, .L125+8 bl sftl_printk ldmfd sp, {fp, sp, pc} -.L118: +.L126: .align 2 -.L117: +.L125: .word .LANCHOR0 .word .LANCHOR1 .word .LC1 @@ -979,8 +998,8 @@ insert_free_list: uxth r0, r0 movw lr, #65535 cmp r0, lr - beq .L120 - ldr r2, .L126 + beq .L128 + ldr r2, .L134 lsl r5, r0, #3 mvn r3, #0 ldr r6, [r2, #2316] @@ -991,7 +1010,7 @@ insert_free_list: ldr r3, [r2, #2340] cmp r3, #0 streq ip, [r2, #2340] - beq .L120 + beq .L128 ldr r8, [r2, #2328] lsl r2, r0, #1 ldr r7, [r1, #2316] @@ -999,24 +1018,24 @@ insert_free_list: ldrh r9, [r8, r2] sub r2, r3, r7 ubfx r2, r2, #3, #16 -.L124: +.L132: lsl lr, r2, #1 ldrh lr, [r8, lr] cmp lr, r9 - bcs .L122 + bcs .L130 ldrh lr, [r3] cmp lr, r4 - bne .L123 + bne .L131 strh r2, [ip, #2] @ movhi strh r0, [r3] @ movhi -.L120: +.L128: mov r0, #0 ldmfd sp, {r4, r5, r6, r7, r8, r9, fp, sp, pc} -.L123: +.L131: add r3, r7, lr, lsl #3 mov r2, lr - b .L124 -.L122: + b .L132 +.L130: ldrh lr, [r3, #2] strh lr, [ip, #2] @ movhi strh r2, [r6, r5] @ movhi @@ -1029,10 +1048,10 @@ insert_free_list: lslne r2, r2, #3 strhne r0, [r1, r2] @ movhi strhne r0, [r3, #2] @ movhi - b .L120 -.L127: + b .L128 +.L135: .align 2 -.L126: +.L134: .word .LANCHOR0 .size insert_free_list, .-insert_free_list .align 2 @@ -1049,7 +1068,7 @@ INSERT_FREE_LIST: sub fp, ip, #4 uxth r0, r0 bl insert_free_list - ldr r2, .L130 + ldr r2, .L138 movw r1, #2344 ldrh r3, [r2, r1] add r3, r3, #1 @@ -1059,13 +1078,13 @@ INSERT_FREE_LIST: cmp r2, r3 ldmfdcs sp, {fp, sp, pc} mov r2, #214 - ldr r1, .L130+4 - ldr r0, .L130+8 + ldr r1, .L138+4 + ldr r0, .L138+8 bl sftl_printk ldmfd sp, {fp, sp, pc} -.L131: +.L139: .align 2 -.L130: +.L138: .word .LANCHOR0 .word .LANCHOR1+17 .word .LC1 @@ -1082,7 +1101,7 @@ List_remove_node: mov ip, sp push {r4, r5, r6, r7, r8, fp, ip, lr, pc} sub fp, ip, #4 - ldr r4, .L139 + ldr r4, .L147 uxth r1, r1 movw r3, #65535 mov r8, r0 @@ -1091,20 +1110,20 @@ List_remove_node: add r5, r7, r6 ldrh r2, [r5, #2] cmp r2, r3 - bne .L133 + bne .L141 ldr r3, [r0] cmp r5, r3 - beq .L133 - movw r2, #379 - ldr r1, .L139+4 - ldr r0, .L139+8 + beq .L141 + movw r2, #397 + ldr r1, .L147+4 + ldr r0, .L147+8 bl sftl_printk -.L133: +.L141: ldr r3, [r8] ldrh r2, [r7, r6] cmp r5, r3 movw r3, #65535 - bne .L134 + bne .L142 cmp r2, r3 ldrne r3, [r4, #2316] moveq r3, #0 @@ -1113,25 +1132,25 @@ List_remove_node: mvnne r3, #0 strne r2, [r8] strhne r3, [r2, #2] @ movhi -.L136: +.L144: mvn r3, #0 mov r0, #0 strh r3, [r7, r6] @ movhi strh r3, [r5, #2] @ movhi ldmfd sp, {r4, r5, r6, r7, r8, fp, sp, pc} -.L134: +.L142: cmp r2, r3 ldrh r3, [r5, #2] - bne .L137 + bne .L145 cmp r3, r2 ldrne r2, [r4, #2316] lslne r3, r3, #3 mvnne r1, #0 - beq .L136 -.L138: + beq .L144 +.L146: strh r1, [r2, r3] @ movhi - b .L136 -.L137: + b .L144 +.L145: ldr r1, [r4, #2316] add r2, r1, r2, lsl #3 strh r3, [r2, #2] @ movhi @@ -1139,10 +1158,10 @@ List_remove_node: ldrh r1, [r7, r6] ldr r2, [r4, #2316] lsl r3, r3, #3 - b .L138 -.L140: + b .L146 +.L148: .align 2 -.L139: +.L147: .word .LANCHOR0 .word .LANCHOR1+34 .word .LC1 @@ -1163,32 +1182,32 @@ List_pop_index_node: uxth r1, r1 cmp r3, #0 movweq r4, #65535 - beq .L141 - ldr r2, .L148 + beq .L149 + ldr r2, .L156 movw ip, #65535 ldr r4, [r2, #2316] -.L143: +.L151: cmp r1, #0 - bne .L144 -.L146: + bne .L152 +.L154: sub r3, r3, r4 ubfx r4, r3, #3, #16 mov r1, r4 bl List_remove_node -.L141: +.L149: mov r0, r4 ldmfd sp, {r4, fp, sp, pc} -.L144: +.L152: ldrh r2, [r3] cmp r2, ip - beq .L146 + beq .L154 sub r1, r1, #1 add r3, r4, r2, lsl #3 uxth r1, r1 - b .L143 -.L149: + b .L151 +.L157: .align 2 -.L148: +.L156: .word .LANCHOR0 .size List_pop_index_node, .-List_pop_index_node .align 2 @@ -1219,33 +1238,33 @@ List_get_gc_head_node: mov ip, sp push {fp, ip, lr, pc} sub fp, ip, #4 - ldr r1, .L157 + ldr r1, .L165 uxth r2, r0 ldr r3, [r1, #2320] cmp r3, #0 ldrne r1, [r1, #2316] movwne r0, #65535 - bne .L153 + bne .L161 movw r0, #65535 ldmfd sp, {fp, sp, pc} -.L155: +.L163: sub r2, r2, #1 add r3, r1, r3, lsl #3 uxth r2, r2 -.L153: +.L161: cmp r2, #0 - beq .L154 + beq .L162 ldrh r3, [r3] cmp r3, r0 - bne .L155 + bne .L163 ldmfd sp, {fp, sp, pc} -.L154: +.L162: sub r3, r3, r1 ubfx r0, r3, #3, #16 ldmfd sp, {fp, sp, pc} -.L158: +.L166: .align 2 -.L157: +.L165: .word .LANCHOR0 .size List_get_gc_head_node, .-List_get_gc_head_node .align 2 @@ -1260,25 +1279,25 @@ List_update_data_list: mov ip, sp push {r4, r5, r6, r7, r8, fp, ip, lr, pc} sub fp, ip, #4 - ldr r4, .L172 + ldr r4, .L180 movw r3, #2348 uxth r5, r0 ldrh r3, [r4, r3] cmp r3, r5 - beq .L161 + beq .L169 movw r3, #2396 ldrh r3, [r4, r3] cmp r3, r5 - beq .L161 + beq .L169 movw r3, #2444 ldrh r3, [r4, r3] cmp r3, r5 - beq .L161 + beq .L169 ldr r8, [r4, #2316] ldr r3, [r4, #2320] add r7, r8, r5, lsl #3 cmp r7, r3 - beq .L161 + beq .L169 ldr r2, [r4, #2324] lsl r3, r5, #1 ldrh r6, [r7, #4] @@ -1288,15 +1307,15 @@ List_update_data_list: mulne r6, r6, r3 ldr r3, [r8, r5, lsl #3] cmn r3, #1 - bne .L164 - movw r2, #470 - ldr r1, .L172+4 - ldr r0, .L172+8 + bne .L172 + mov r2, #488 + ldr r1, .L180+4 + ldr r0, .L180+8 bl sftl_printk -.L164: +.L172: ldr r3, [r8, r5, lsl #3] cmn r3, #1 - beq .L161 + beq .L169 ldrh r2, [r7, #2] ldr r1, [r4, #2324] lsl r2, r2, #3 @@ -1309,30 +1328,30 @@ List_update_data_list: mulne r3, r3, r0 mvneq r3, #0 cmp r6, r3 - bcs .L161 - ldr r4, .L172+12 + bcs .L169 + ldr r4, .L180+12 mov r1, r5 - ldr r0, .L172+16 + ldr r0, .L180+16 bl List_remove_node ldrh r3, [r4] cmp r3, #0 - bne .L166 - movw r2, #481 - ldr r1, .L172+4 - ldr r0, .L172+8 + bne .L174 + movw r2, #499 + ldr r1, .L180+4 + ldr r0, .L180+8 bl sftl_printk -.L166: +.L174: ldrh r3, [r4] mov r0, r5 sub r3, r3, #1 strh r3, [r4] @ movhi bl INSERT_DATA_LIST -.L161: +.L169: mov r0, #0 ldmfd sp, {r4, r5, r6, r7, r8, fp, sp, pc} -.L173: +.L181: .align 2 -.L172: +.L180: .word .LANCHOR0 .word .LANCHOR1+51 .word .LC1 @@ -1351,52 +1370,52 @@ select_l2p_ram_region: mov ip, sp push {r4, r5, r6, fp, ip, lr, pc} sub fp, ip, #4 - ldr r3, .L184 + ldr r3, .L192 mov r1, #0 mov r0, #12 movw ip, #65535 ldrh r2, [r3, #138] ldr r3, [r3, #2492] -.L175: +.L183: uxth r4, r1 cmp r4, r2 - bcc .L177 + bcc .L185 mov r4, r2 mov r1, #0 mov r0, #-2147483648 mov r5, #12 -.L178: +.L186: uxth lr, r1 cmp lr, r2 - bcc .L180 + bcc .L188 cmp r4, r2 - bcc .L176 - ldr r1, .L184+4 + bcc .L184 + ldr r1, .L192+4 mov r4, r2 mvn r0, #0 ldrh r5, [r1] mov r1, #0 -.L181: +.L189: uxth ip, r1 cmp ip, r2 - bcc .L183 + bcc .L191 cmp r4, r2 - bcc .L176 - mov r2, #784 - ldr r1, .L184+8 - ldr r0, .L184+12 + bcc .L184 + movw r2, #823 + ldr r1, .L192+8 + ldr r0, .L192+12 bl sftl_printk - b .L176 -.L177: + b .L184 +.L185: add r1, r1, #1 mla lr, r0, r1, r3 ldrh lr, [lr, #-12] cmp lr, ip - bne .L175 -.L176: + bne .L183 +.L184: mov r0, r4 ldmfd sp, {r4, r5, r6, fp, sp, pc} -.L180: +.L188: mla ip, r5, r1, r3 add r1, r1, #1 ldr ip, [ip, #4] @@ -1408,22 +1427,22 @@ select_l2p_ram_region: cmp r6, #0 movne r0, ip movne r4, lr - b .L178 -.L183: + b .L186 +.L191: ldr lr, [r3, #4] cmp r0, lr - bls .L182 + bls .L190 ldrh r6, [r3] cmp r6, r5 movne r0, lr movne r4, ip -.L182: +.L190: add r1, r1, #1 add r3, r3, #12 - b .L181 -.L185: + b .L189 +.L193: .align 2 -.L184: +.L192: .word .LANCHOR0 .word .LANCHOR0+2496 .word .LANCHOR1+73 @@ -1441,17 +1460,17 @@ FtlUpdateVaildLpn: mov ip, sp push {fp, ip, lr, pc} sub fp, ip, #4 - ldr ip, .L192 + ldr ip, .L200 movw r1, #2498 ldrh r2, [ip, r1] mov r3, ip cmp r2, #4 cmpls r0, #0 - bne .L187 + bne .L195 add r2, r2, #1 strh r2, [ip, r1] @ movhi ldmfd sp, {fp, sp, pc} -.L187: +.L195: mov r2, #0 movw lr, #65535 strh r2, [ip, r1] @ movhi @@ -1459,20 +1478,20 @@ FtlUpdateVaildLpn: ldrh r1, [ip, #40] ldr r2, [ip, #2324] add r1, r2, r1, lsl #1 -.L188: +.L196: cmp r2, r1 - bne .L190 + bne .L198 ldmfd sp, {fp, sp, pc} -.L190: +.L198: ldrh ip, [r2], #2 cmp ip, lr ldrne r0, [r3, #2500] addne r0, r0, ip strne r0, [r3, #2500] - b .L188 -.L193: + b .L196 +.L201: .align 2 -.L192: +.L200: .word .LANCHOR0 .size FtlUpdateVaildLpn, .-FtlUpdateVaildLpn .align 2 @@ -1489,11 +1508,11 @@ ftl_set_blk_mode: sub fp, ip, #4 cmp r1, #0 uxth r0, r0 - beq .L195 + beq .L203 bl ftl_set_blk_mode.part.6 ldmfd sp, {fp, sp, pc} -.L195: - ldr r3, .L197 +.L203: + ldr r3, .L205 lsr r1, r0, #5 mov ip, #1 and r0, r0, #31 @@ -1502,9 +1521,9 @@ ftl_set_blk_mode: bic r0, r3, ip, lsl r0 str r0, [r2, r1, lsl #2] ldmfd sp, {fp, sp, pc} -.L198: +.L206: .align 2 -.L197: +.L205: .word .LANCHOR0 .size ftl_set_blk_mode, .-ftl_set_blk_mode .align 2 @@ -1519,7 +1538,7 @@ ftl_get_blk_mode: mov ip, sp push {fp, ip, lr, pc} sub fp, ip, #4 - ldr r3, .L200 + ldr r3, .L208 uxth r0, r0 ldr r3, [r3, #24] lsr r2, r0, #5 @@ -1528,9 +1547,9 @@ ftl_get_blk_mode: lsr r0, r3, r0 and r0, r0, #1 ldmfd sp, {fp, sp, pc} -.L201: +.L209: .align 2 -.L200: +.L208: .word .LANCHOR0 .size ftl_get_blk_mode, .-ftl_get_blk_mode .align 2 @@ -1549,14 +1568,14 @@ ftl_sb_update_avl_pages: uxth r2, r2 uxth r5, r1 strh r3, [r0, #4] @ movhi - ldr r3, .L209 + ldr r3, .L217 add ip, r0, r2, lsl #1 movw r1, #65535 add ip, ip, #14 ldrh lr, [r3, #32] -.L203: +.L211: cmp r2, lr - bcc .L205 + bcc .L213 ldrh r1, [r3, #102] add ip, r0, #16 mov r3, #0 @@ -1564,12 +1583,12 @@ ftl_sb_update_avl_pages: sub r1, r1, #1 sub r1, r1, r5 uxth r1, r1 -.L206: +.L214: uxth r2, r3 cmp lr, r2 - bhi .L208 + bhi .L216 ldmfd sp, {r4, r5, fp, sp, pc} -.L205: +.L213: ldrh r4, [ip, #2]! add r2, r2, #1 uxth r2, r2 @@ -1577,18 +1596,18 @@ ftl_sb_update_avl_pages: ldrhne r4, [r0, #4] addne r4, r4, #1 strhne r4, [r0, #4] @ movhi - b .L203 -.L208: + b .L211 +.L216: ldrh r2, [ip], #2 add r3, r3, #1 cmp r2, r4 ldrhne r2, [r0, #4] addne r2, r1, r2 strhne r2, [r0, #4] @ movhi - b .L206 -.L210: + b .L214 +.L218: .align 2 -.L209: +.L217: .word .LANCHOR0 .size ftl_sb_update_avl_pages, .-ftl_sb_update_avl_pages .align 2 @@ -1614,14 +1633,14 @@ FtlSlcSuperblockCheck: mov lr, #0 add r2, r0, r2, lsl #1 ldrh r1, [r2, #16] - ldr r2, .L217 + ldr r2, .L225 ldrh ip, [r2, #32] mov r2, r3 -.L214: +.L222: cmp r1, r2 - beq .L216 + beq .L224 ldmfd sp, {fp, sp, pc} -.L216: +.L224: ldrb r3, [r0, #6] @ zero_extendqisi2 add r3, r3, #1 uxtb r3, r3 @@ -1634,10 +1653,10 @@ FtlSlcSuperblockCheck: ldrb r3, [r0, #6] @ zero_extendqisi2 add r3, r0, r3, lsl #1 ldrh r1, [r3, #16] - b .L214 -.L218: + b .L222 +.L226: .align 2 -.L217: +.L225: .word .LANCHOR0 .size FtlSlcSuperblockCheck, .-FtlSlcSuperblockCheck .align 2 @@ -1654,27 +1673,27 @@ make_superblock: sub fp, ip, #4 sub sp, sp, #4 mov r4, r0 - ldr r6, .L224 + ldr r6, .L232 ldrh r2, [r0] ldrh r3, [r6, #40] cmp r2, r3 - bcc .L220 - movw r2, #2097 - ldr r1, .L224+4 - ldr r0, .L224+8 + bcc .L228 + movw r2, #2146 + ldr r1, .L232+4 + ldr r0, .L232+8 bl sftl_printk -.L220: +.L228: ldrh r9, [r6, #32] add r7, r4, #16 - ldr r10, .L224+12 + ldr r10, .L232+12 mvn r8, #0 mov r5, #0 strh r5, [r4, #4] @ movhi strb r5, [r4, #7] -.L221: +.L229: uxth r3, r5 cmp r9, r3 - bhi .L223 + bhi .L231 ldrb r3, [r4, #7] @ zero_extendqisi2 mov r0, #0 ldrh r2, [r6, #102] @@ -1683,7 +1702,7 @@ make_superblock: mov r3, #1 strb r3, [r4, #9] ldmib sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc} -.L223: +.L231: ldrb r0, [r10, r5] @ zero_extendqisi2 add r7, r7, #2 ldrh r1, [r4] @@ -1698,10 +1717,10 @@ make_superblock: ldrbeq r3, [r4, #7] @ zero_extendqisi2 addeq r3, r3, #1 strbeq r3, [r4, #7] - b .L221 -.L225: + b .L229 +.L233: .align 2 -.L224: +.L232: .word .LANCHOR0 .word .LANCHOR1+95 .word .LC1 @@ -1719,7 +1738,7 @@ update_multiplier_value: mov ip, sp push {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc} sub fp, ip, #4 - ldr r3, .L232 + ldr r3, .L240 mov r5, #0 uxth r6, r0 mov r4, r5 @@ -1727,23 +1746,23 @@ update_multiplier_value: mov r7, r3 ldrh r9, [r3, #102] add r10, r3, #60 -.L227: +.L235: uxth r3, r5 cmp r8, r3 - bhi .L229 + bhi .L237 cmp r4, #0 moveq r0, r4 - beq .L230 + beq .L238 mov r1, r4 mov r0, #32768 bl __divsi3 -.L230: +.L238: ldr r1, [r7, #2316] add r1, r1, r6, lsl #3 strh r0, [r1, #4] @ movhi mov r0, #0 ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc} -.L229: +.L237: mov r1, r6 ldrb r0, [r10, r5] @ zero_extendqisi2 bl V2P_block @@ -1752,10 +1771,10 @@ update_multiplier_value: add r5, r5, #1 addeq r4, r4, r9 uxtheq r4, r4 - b .L227 -.L233: + b .L235 +.L241: .align 2 -.L232: +.L240: .word .LANCHOR0 .size update_multiplier_value, .-update_multiplier_value .align 2 @@ -1770,7 +1789,7 @@ GetFreeBlockMinEraseCount: mov ip, sp push {fp, ip, lr, pc} sub fp, ip, #4 - ldr r3, .L237 + ldr r3, .L245 ldr r0, [r3, #2340] cmp r0, #0 ldrne r2, [r3, #2316] @@ -1780,9 +1799,9 @@ GetFreeBlockMinEraseCount: lslne r0, r0, #1 ldrhne r0, [r3, r0] ldmfd sp, {fp, sp, pc} -.L238: +.L246: .align 2 -.L237: +.L245: .word .LANCHOR0 .size GetFreeBlockMinEraseCount, .-GetFreeBlockMinEraseCount .align 2 @@ -1797,7 +1816,7 @@ GetFreeBlockMaxEraseCount: mov ip, sp push {r4, r5, fp, ip, lr, pc} sub fp, ip, #4 - ldr r2, .L247 + ldr r2, .L255 uxth r4, r0 ldr r0, [r2, #2340] cmp r0, #0 @@ -1813,26 +1832,26 @@ GetFreeBlockMaxEraseCount: uxthgt r4, r3 sub r3, r0, ip ubfx r3, r3, #3, #16 -.L242: +.L250: uxth r0, r1 cmp r4, r0 - bls .L244 + bls .L252 lsl r0, r3, #3 add r1, r1, #1 ldrh lr, [ip, r0] cmp lr, r5 - bne .L246 -.L244: + bne .L254 +.L252: ldr r2, [r2, #2328] lsl r3, r3, #1 ldrh r0, [r2, r3] ldmfd sp, {r4, r5, fp, sp, pc} -.L246: +.L254: mov r3, lr - b .L242 -.L248: + b .L250 +.L256: .align 2 -.L247: +.L255: .word .LANCHOR0 .size GetFreeBlockMaxEraseCount, .-GetFreeBlockMaxEraseCount .align 2 @@ -1849,386 +1868,386 @@ FtlPrintInfo2buf: sub fp, ip, #4 sub sp, sp, #12 mov r7, r0 - ldr r6, .L261 + ldr r6, .L269 add r5, r7, #12 - ldr r1, .L261+4 + ldr r1, .L269+4 movw r9, #2344 bl strcpy ldr r2, [r6, #116] mov r0, r5 - ldr r1, .L261+8 + ldr r1, .L269+8 bl sprintf add r5, r5, r0 - ldr r1, .L261+12 + ldr r1, .L269+12 mov r0, r5 add r5, r5, #10 bl strcpy ldr r2, [r6, #2504] mov r0, r5 - ldr r1, .L261+16 + ldr r1, .L269+16 bl sprintf add r5, r5, r0 ldr r2, [r6, #2500] - ldr r1, .L261+20 + ldr r1, .L269+20 mov r0, r5 bl sprintf add r5, r5, r0 ldr r2, [r6, #2508] - ldr r1, .L261+24 + ldr r1, .L269+24 mov r0, r5 bl sprintf add r5, r5, r0 ldr r2, [r6, #2512] - ldr r1, .L261+28 + ldr r1, .L269+28 mov r0, r5 bl sprintf add r5, r5, r0 ldr r2, [r6, #2516] - ldr r1, .L261+32 + ldr r1, .L269+32 mov r0, r5 bl sprintf add r5, r5, r0 ldr r2, [r6, #2520] - ldr r1, .L261+36 + ldr r1, .L269+36 mov r0, r5 bl sprintf add r5, r5, r0 ldr r2, [r6, #2524] - ldr r1, .L261+40 + ldr r1, .L269+40 mov r0, r5 bl sprintf add r5, r5, r0 ldr r2, [r6, #2528] - ldr r1, .L261+44 + ldr r1, .L269+44 mov r0, r5 bl sprintf ldr r2, [r6, #2532] add r5, r5, r0 - ldr r1, .L261+48 + ldr r1, .L269+48 mov r0, r5 - ldr r4, .L261+52 - ldr r8, .L261+56 + ldr r4, .L269+52 + ldr r8, .L269+56 lsr r2, r2, #11 bl sprintf ldr r2, [r6, #2536] add r5, r5, r0 - ldr r1, .L261+60 + ldr r1, .L269+60 mov r0, r5 lsr r2, r2, #11 bl sprintf add r5, r5, r0 ldr r2, [r6, #2540] - ldr r1, .L261+64 + ldr r1, .L269+64 mov r0, r5 bl sprintf add r5, r5, r0 ldr r2, [r6, #2544] - ldr r1, .L261+68 + ldr r1, .L269+68 mov r0, r5 bl sprintf add r5, r5, r0 ldrh r2, [r6, #158] - ldr r1, .L261+72 + ldr r1, .L269+72 mov r0, r5 bl sprintf add r5, r5, r0 ldrh r2, [r6, r9] - ldr r1, .L261+76 + ldr r1, .L269+76 mov r0, r5 bl sprintf add r5, r5, r0 ldr r2, [r6, #2548] - ldr r1, .L261+80 + ldr r1, .L269+80 mov r0, r5 bl sprintf add r5, r5, r0 ldr r2, [r6, #2552] - ldr r1, .L261+84 + ldr r1, .L269+84 mov r0, r5 bl sprintf add r5, r5, r0 ldr r2, [r6, #2556] - ldr r1, .L261+88 + ldr r1, .L269+88 mov r0, r5 bl sprintf add r5, r5, r0 ldr r2, [r6, #2560] - ldr r1, .L261+92 + ldr r1, .L269+92 mov r0, r5 bl sprintf add r5, r5, r0 ldr r2, [r6, #2564] - ldr r1, .L261+96 + ldr r1, .L269+96 mov r0, r5 bl sprintf add r5, r5, r0 ldr r2, [r6, #2568] - ldr r1, .L261+100 + ldr r1, .L269+100 mov r0, r5 bl sprintf add r5, r5, r0 ldrh r2, [r4, #30] - ldr r1, .L261+104 + ldr r1, .L269+104 mov r0, r5 bl sprintf add r5, r5, r0 ldrh r2, [r4, #28] - ldr r1, .L261+108 + ldr r1, .L269+108 mov r0, r5 bl sprintf add r5, r5, r0 ldr r2, [r6, #140] - ldr r1, .L261+112 + ldr r1, .L269+112 mov r0, r5 bl sprintf add r5, r5, r0 ldr r2, [r6, #132] - ldr r1, .L261+116 + ldr r1, .L269+116 mov r0, r5 bl sprintf add r5, r5, r0 ldr r2, [r6, #28] - ldr r1, .L261+120 + ldr r1, .L269+120 mov r0, r5 bl sprintf add r5, r5, r0 ldrh r2, [r6, #218] - ldr r1, .L261+124 + ldr r1, .L269+124 mov r0, r5 bl sprintf add r5, r5, r0 ldrh r2, [r6, #40] - ldr r1, .L261+128 + ldr r1, .L269+128 mov r0, r5 bl sprintf movw r3, #2572 add r5, r5, r0 ldrh r2, [r6, r3] mov r0, r5 - ldr r1, .L261+132 + ldr r1, .L269+132 movw r4, #2348 bl sprintf add r5, r5, r0 ldr r2, [r6, #44] - ldr r1, .L261+136 + ldr r1, .L269+136 mov r0, r5 bl sprintf add r3, r6, #2576 add r5, r5, r0 ldrh r2, [r3] mov r0, r5 - ldr r1, .L261+140 + ldr r1, .L269+140 bl sprintf add r5, r5, r0 ldrh r2, [r6, #152] - ldr r1, .L261+144 + ldr r1, .L269+144 mov r0, r5 bl sprintf add r5, r5, r0 ldrh r2, [r8, #2] - ldr r1, .L261+148 + ldr r1, .L269+148 mov r0, r5 bl sprintf add r5, r5, r0 ldrb r2, [r6, #2354] @ zero_extendqisi2 - ldr r1, .L261+152 + ldr r1, .L269+152 mov r0, r5 bl sprintf add r5, r5, r0 ldrh r2, [r6, r4] - ldr r1, .L261+156 + ldr r1, .L269+156 mov r0, r5 bl sprintf add r5, r5, r0 ldrb r2, [r6, #2356] @ zero_extendqisi2 - ldr r1, .L261+160 + ldr r1, .L269+160 mov r0, r5 bl sprintf add r5, r5, r0 ldrh r2, [r8, #4] - ldr r1, .L261+164 + ldr r1, .L269+164 mov r0, r5 bl sprintf ldrh r3, [r6, r4] add r5, r5, r0 ldr r2, [r6, #2324] mov r0, r5 - ldr r1, .L261+168 + ldr r1, .L269+168 movw r4, #2396 lsl r3, r3, #1 ldrh r2, [r2, r3] bl sprintf add r5, r5, r0 ldrh r2, [r8, #50] - ldr r1, .L261+172 + ldr r1, .L269+172 mov r0, r5 bl sprintf add r5, r5, r0 ldrb r2, [r6, #2402] @ zero_extendqisi2 - ldr r1, .L261+176 + ldr r1, .L269+176 mov r0, r5 bl sprintf add r5, r5, r0 ldrh r2, [r6, r4] - ldr r1, .L261+180 + ldr r1, .L269+180 mov r0, r5 bl sprintf add r5, r5, r0 ldrb r2, [r6, #2404] @ zero_extendqisi2 - ldr r1, .L261+184 + ldr r1, .L269+184 mov r0, r5 bl sprintf add r5, r5, r0 ldrh r2, [r8, #52] - ldr r1, .L261+188 + ldr r1, .L269+188 mov r0, r5 bl sprintf ldrh r3, [r6, r4] add r5, r5, r0 ldr r2, [r6, #2324] mov r0, r5 - ldr r1, .L261+192 + ldr r1, .L269+192 add r4, r8, #96 lsl r3, r3, #1 ldrh r2, [r2, r3] bl sprintf add r5, r5, r0 ldrh r2, [r8, #98] - ldr r1, .L261+196 + ldr r1, .L269+196 mov r0, r5 bl sprintf add r5, r5, r0 ldrb r2, [r6, #2450] @ zero_extendqisi2 - ldr r1, .L261+200 + ldr r1, .L269+200 mov r0, r5 bl sprintf movw r3, #2444 add r5, r5, r0 ldrh r2, [r6, r3] mov r0, r5 - ldr r1, .L261+204 + ldr r1, .L269+204 bl sprintf add r5, r5, r0 ldrb r2, [r6, #2452] @ zero_extendqisi2 - ldr r1, .L261+208 + ldr r1, .L269+208 mov r0, r5 bl sprintf add r5, r5, r0 ldrh r2, [r8, #100] - ldr r1, .L261+212 + ldr r1, .L269+212 mov r0, r5 bl sprintf add r5, r5, r0 ldrh r2, [r4, #146] - ldr r1, .L261+216 + ldr r1, .L269+216 mov r0, r5 bl sprintf add r5, r5, r0 ldrb r2, [r6, #2594] @ zero_extendqisi2 - ldr r1, .L261+220 + ldr r1, .L269+220 mov r0, r5 bl sprintf movw r8, #2588 add r5, r5, r0 ldrh r2, [r6, r8] mov r0, r5 - ldr r1, .L261+224 + ldr r1, .L269+224 bl sprintf add r5, r5, r0 ldrb r2, [r6, #2596] @ zero_extendqisi2 - ldr r1, .L261+228 + ldr r1, .L269+228 mov r0, r5 bl sprintf add r5, r5, r0 ldrh r2, [r4, #148] - ldr r1, .L261+232 + ldr r1, .L269+232 mov r0, r5 bl sprintf ldr r3, [r6, #2712] add r5, r5, r0 ldr r2, [r6, #2716] mov r0, r5 - ldr r1, .L261+236 + ldr r1, .L269+236 str r3, [sp] ldr r3, [r6, #2720] bl sprintf add r4, r5, r0 ldr r2, [r6, #2708] - ldr r1, .L261+240 + ldr r1, .L269+240 mov r0, r4 bl sprintf add r4, r4, r0 ldr r2, [r6, #2732] - ldr r1, .L261+244 + ldr r1, .L269+244 mov r0, r4 bl sprintf movw r3, #3148 add r4, r4, r0 ldrh r2, [r6, r3] mov r0, r4 - ldr r1, .L261+248 + ldr r1, .L269+248 bl sprintf movw r3, #3150 add r4, r4, r0 ldrh r2, [r6, r3] mov r0, r4 - ldr r1, .L261+252 + ldr r1, .L269+252 bl sprintf add r4, r4, r0 ldr r2, [r6, #3152] - ldr r1, .L261+256 + ldr r1, .L269+256 mov r0, r4 bl sprintf movw r3, #3156 add r4, r4, r0 ldrh r2, [r6, r3] mov r0, r4 - ldr r1, .L261+260 + ldr r1, .L269+260 bl sprintf add r4, r4, r0 bl GetFreeBlockMinEraseCount - ldr r1, .L261+264 + ldr r1, .L269+264 mov r2, r0 mov r0, r4 bl sprintf add r4, r4, r0 ldrh r0, [r6, r9] bl GetFreeBlockMaxEraseCount - ldr r1, .L261+268 + ldr r1, .L269+268 mov r2, r0 mov r0, r4 bl sprintf - ldr r3, .L261+272 + ldr r3, .L269+272 add r4, r4, r0 ldr r3, [r3] cmp r3, #1 - beq .L250 -.L255: + beq .L258 +.L263: sub r0, r4, r7 sub sp, fp, #40 ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc} -.L250: +.L258: ldrh r3, [r6, r8] movw r2, #65535 cmp r3, r2 - beq .L252 + beq .L260 ldr r2, [r6, #2324] lsl r3, r3, #1 mov r0, r4 - ldr r1, .L261+276 + ldr r1, .L269+276 ldrh r2, [r2, r3] bl sprintf add r4, r4, r0 -.L252: +.L260: mov r0, #0 - ldr r9, .L261+280 + ldr r9, .L269+280 bl List_get_gc_head_node uxth r3, r0 mov r5, #0 movw r10, #65535 -.L254: +.L262: cmp r3, r10 - beq .L253 + beq .L261 ldr r2, [r6, #2328] lsl r1, r3, #1 lsl r8, r3, #3 @@ -2250,18 +2269,18 @@ FtlPrintInfo2buf: cmp r5, #16 add r4, r4, r0 ldrh r3, [r3, r8] - bne .L254 -.L253: + bne .L262 +.L261: ldr r3, [r6, #2340] mov r5, #0 ldr r2, [r6, #2316] movw r9, #65535 - ldr r10, .L261+284 + ldr r10, .L269+284 sub r3, r3, r2 ubfx r3, r3, #3, #16 -.L256: +.L264: cmp r3, r9 - beq .L255 + beq .L263 ldr r1, [r6, #2328] lsl r2, r3, #1 lsl r8, r3, #3 @@ -2278,13 +2297,13 @@ FtlPrintInfo2buf: bl sprintf cmp r5, #4 add r4, r4, r0 - beq .L255 + beq .L263 ldr r3, [r6, #2316] ldrh r3, [r3, r8] - b .L256 -.L262: + b .L264 +.L270: .align 2 -.L261: +.L269: .word .LANCHOR0 .word .LC2 .word .LC3 @@ -2370,9 +2389,9 @@ rknand_proc_ftlread: mov ip, sp push {r4, r5, fp, ip, lr, pc} sub fp, ip, #4 - ldr r2, .L264 + ldr r2, .L272 mov r5, r0 - ldr r1, .L264+4 + ldr r1, .L272+4 bl sprintf add r4, r5, r0 mov r0, r4 @@ -2380,9 +2399,9 @@ rknand_proc_ftlread: add r0, r4, r0 sub r0, r0, r5 ldmfd sp, {r4, r5, fp, sp, pc} -.L265: +.L273: .align 2 -.L264: +.L272: .word .LC70 .word .LC71 .size rknand_proc_ftlread, .-rknand_proc_ftlread @@ -2399,19 +2418,19 @@ GetSwlReplaceBlock: push {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc} sub fp, ip, #4 sub sp, sp, #16 - ldr r4, .L290 + ldr r4, .L298 ldr r2, [r4, #2556] ldr r3, [r4, #2568] cmp r2, r3 - bcs .L267 + bcs .L275 ldr r2, [r4, #2328] mov r3, #0 ldrh r1, [r4, #40] str r3, [r4, #2548] sub r2, r2, #2 -.L268: +.L276: cmp r3, r1 - bcc .L269 + bcc .L277 ldr r5, [r4, #2548] mov r0, r5 bl __udivsi3 @@ -2421,48 +2440,48 @@ GetSwlReplaceBlock: sub r0, r5, r0 bl __udivsi3 str r0, [r4, #2548] -.L270: +.L278: ldr r6, [r4, #2568] ldr r7, [r4, #2556] add r3, r6, #256 cmp r3, r7 - bls .L275 + bls .L283 ldr r2, [r4, #2564] add r3, r6, #768 cmp r3, r2 - bls .L275 -.L277: + bls .L283 +.L285: movw r5, #65535 -.L276: +.L284: mov r0, r5 sub sp, fp, #40 ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc} -.L269: +.L277: ldrh r0, [r2, #2]! add r3, r3, #1 ldr ip, [r4, #2548] add r0, r0, ip str r0, [r4, #2548] - b .L268 -.L267: + b .L276 +.L275: ldr r3, [r4, #2564] cmp r2, r3 addhi r3, r3, #1 strhi r3, [r4, #2564] movhi r3, #0 - bls .L270 -.L272: + bls .L278 +.L280: ldrh r2, [r4, #40] cmp r3, r2 - bcs .L270 + bcs .L278 ldr r0, [r4, #2328] lsl r1, r3, #1 add r3, r3, #1 ldrh r2, [r0, r1] add r2, r2, #1 strh r2, [r0, r1] @ movhi - b .L272 -.L275: + b .L280 +.L283: movw r3, #2344 ldrh r0, [r4, r3] add r0, r0, r0, lsl #1 @@ -2471,53 +2490,53 @@ GetSwlReplaceBlock: add r3, r6, #64 mov r9, r0 cmp r0, r3 - bcc .L277 + bcc .L285 ldr r3, [r4, #2320] cmp r3, #0 - beq .L277 + beq .L285 ldrh r10, [r4, #40] movw r1, #65535 ldr lr, [r4, #2316] mov r0, #0 ldr r8, [r4, #2328] mov r2, r1 -.L278: +.L286: ldrh ip, [r3] movw r5, #65535 cmp ip, r5 - bne .L281 + bne .L289 mov r5, r2 -.L280: +.L288: movw r3, #65535 cmp r5, r3 - beq .L277 + beq .L285 lsl r3, r5, #1 ldrh r10, [r8, r3] cmp r6, r10 - bcs .L282 + bcs .L290 str r3, [fp, #-44] bl GetFreeBlockMinEraseCount ldr r3, [fp, #-44] cmp r6, r0 strcc r1, [r4, #2568] -.L282: +.L290: cmp r7, r10 - bls .L277 + bls .L285 add r2, r10, #128 cmp r9, r2 - ble .L277 + ble .L285 add r2, r10, #256 cmp r7, r2 - bhi .L283 + bhi .L291 ldr r2, [r4, #2564] add r10, r10, #768 cmp r10, r2 - bcs .L277 -.L283: + bcs .L285 +.L291: str r9, [sp, #8] mov r1, r5 ldrh r2, [r8, r3] - ldr r0, .L290+4 + ldr r0, .L298+4 str r2, [sp, #4] ldr r2, [r4, #2324] ldrh r3, [r2, r3] @@ -2527,31 +2546,31 @@ GetSwlReplaceBlock: bl sftl_printk mov r3, #1 str r3, [r4, #3160] - b .L276 -.L281: + b .L284 +.L289: add r0, r0, #1 uxth r0, r0 cmp r0, r10 - bhi .L277 + bhi .L285 ldrh r5, [r3, #4] cmp r5, #0 - beq .L279 + beq .L287 sub r3, r3, lr asr r3, r3, #3 uxth r5, r3 lsl r3, r5, #1 ldrh r3, [r8, r3] cmp r6, r3 - bcs .L280 + bcs .L288 cmp r1, r3 movhi r1, r3 movhi r2, r5 -.L279: +.L287: add r3, lr, ip, lsl #3 - b .L278 -.L291: + b .L286 +.L299: .align 2 -.L290: +.L298: .word .LANCHOR0 .word .LC72 .size GetSwlReplaceBlock, .-GetSwlReplaceBlock @@ -2570,19 +2589,19 @@ free_data_superblock: uxth r0, r0 movw r3, #65535 cmp r0, r3 - beq .L293 - ldr r3, .L294 + beq .L301 + ldr r3, .L302 mov r1, #0 ldr r2, [r3, #2324] lsl r3, r0, #1 strh r1, [r2, r3] @ movhi bl INSERT_FREE_LIST -.L293: +.L301: mov r0, #0 ldmfd sp, {fp, sp, pc} -.L295: +.L303: .align 2 -.L294: +.L302: .word .LANCHOR0 .size free_data_superblock, .-free_data_superblock .align 2 @@ -2601,30 +2620,30 @@ get_new_active_ppa: movw r3, #65535 mov r4, r0 cmp r2, r3 - bne .L297 - movw r2, #2707 - ldr r1, .L310 - ldr r0, .L310+4 + bne .L305 + movw r2, #2776 + ldr r1, .L318 + ldr r0, .L318+4 bl sftl_printk -.L297: - ldr r5, .L310+8 +.L305: + ldr r5, .L318+8 ldrh r2, [r4, #2] ldrh r3, [r5, #102] cmp r2, r3 - bne .L298 - movw r2, #2708 - ldr r1, .L310 - ldr r0, .L310+4 + bne .L306 + movw r2, #2777 + ldr r1, .L318 + ldr r0, .L318+4 bl sftl_printk -.L298: +.L306: ldrh r3, [r4, #4] cmp r3, #0 - bne .L299 - movw r2, #2709 - ldr r1, .L310 - ldr r0, .L310+4 + bne .L307 + movw r2, #2778 + ldr r1, .L318 + ldr r0, .L318+4 bl sftl_printk -.L299: +.L307: ldrb r2, [r4, #6] @ zero_extendqisi2 mov r3, #0 ldrh r1, [r5, #32] @@ -2633,10 +2652,10 @@ get_new_active_ppa: add r2, r4, r2, lsl #1 ldrh r0, [r2, #16] mov r2, r3 -.L300: +.L308: cmp r0, ip ldrb r3, [r4, #6] @ zero_extendqisi2 - beq .L302 + beq .L310 ldrh r2, [r4, #4] ldrh r6, [r4, #2] sub r2, r2, #1 @@ -2644,7 +2663,7 @@ get_new_active_ppa: orr r6, r6, r0, lsl #10 movw r0, #65535 strh r2, [r4, #4] @ movhi -.L304: +.L312: add r3, r3, #1 uxtb r3, r3 cmp r1, r3 @@ -2655,7 +2674,7 @@ get_new_active_ppa: add ip, r4, r3, lsl #1 ldrh ip, [ip, #16] cmp ip, r0 - beq .L304 + beq .L312 strb r3, [r4, #6] cmp r2, #0 ldrh r3, [r4, #2] @@ -2665,15 +2684,15 @@ get_new_active_ppa: lsr r3, r3, #5 moveq r3, #0 cmp r3, #0 - beq .L296 - movw r2, #2730 - ldr r1, .L310 - ldr r0, .L310+4 + beq .L304 + movw r2, #2799 + ldr r1, .L318 + ldr r0, .L318+4 bl sftl_printk -.L296: +.L304: mov r0, r6 ldmfd sp, {r4, r5, r6, fp, sp, pc} -.L302: +.L310: add r3, r3, #1 uxtb r3, r3 cmp r3, r1 @@ -2685,10 +2704,10 @@ get_new_active_ppa: ldrb r3, [r4, #6] @ zero_extendqisi2 add r3, r4, r3, lsl #1 ldrh r0, [r3, #16] - b .L300 -.L311: + b .L308 +.L319: .align 2 -.L310: +.L318: .word .LANCHOR1+111 .word .LC1 .word .LANCHOR0 @@ -2705,26 +2724,26 @@ FtlGcBufInit: mov ip, sp push {r4, r5, r6, r7, r8, fp, ip, lr, pc} sub fp, ip, #4 - ldr r3, .L317 + ldr r3, .L325 mov lr, #12 mov r4, #1 mov r5, #20 mov r2, #0 str r2, [r3, #3164] -.L313: +.L321: ldrh r1, [r3, #32] uxth r0, r2 add ip, r2, #1 cmp r0, r1 - bcc .L314 + bcc .L322 mov ip, #12 mov lr, #0 -.L315: +.L323: ldr r2, [r3, #3184] cmp r1, r2 - bcc .L316 + bcc .L324 ldmfd sp, {r4, r5, r6, r7, r8, fp, sp, pc} -.L314: +.L322: uxth r2, r2 ldr r6, [r3, #3168] mul r0, lr, r2 @@ -2757,8 +2776,8 @@ FtlGcBufInit: ldr r1, [r6, #4] str r1, [r2, #12] mov r2, ip - b .L313 -.L316: + b .L321 +.L324: mul r4, ip, r1 ldr r5, [r3, #3168] add r2, r5, r4 @@ -2785,10 +2804,10 @@ FtlGcBufInit: bic r2, r2, #3 add r2, r4, r2 str r2, [r0, #4] - b .L315 -.L318: + b .L323 +.L326: .align 2 -.L317: +.L325: .word .LANCHOR0 .size FtlGcBufInit, .-FtlGcBufInit .align 2 @@ -2803,37 +2822,37 @@ FtlGcBufFree: mov ip, sp push {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc} sub fp, ip, #4 - ldr r3, .L326 + ldr r3, .L334 mov lr, #0 mov r5, #20 mov r7, #12 mov r8, lr ldr r6, [r3, #3184] ldr r4, [r3, #3168] -.L320: +.L328: uxth r3, lr cmp r1, r3 ldmfdls sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc} mla ip, r5, r3, r0 mov r2, #0 -.L321: +.L329: uxth r3, r2 cmp r6, r3 - bls .L322 + bls .L330 mul r3, r7, r3 add r2, r2, #1 ldr r10, [r4, r3] add r9, r4, r3 ldr r3, [ip, #8] cmp r10, r3 - bne .L321 + bne .L329 str r8, [r9, #8] -.L322: +.L330: add lr, lr, #1 - b .L320 -.L327: + b .L328 +.L335: .align 2 -.L326: +.L334: .word .LANCHOR0 .size FtlGcBufFree, .-FtlGcBufFree .align 2 @@ -2848,41 +2867,41 @@ FtlGcBufAlloc: mov ip, sp push {r4, r5, r6, r7, r8, r9, fp, ip, lr, pc} sub fp, ip, #4 - ldr r3, .L335 + ldr r3, .L343 mov ip, #0 mov r6, #12 mov r7, #1 mov r8, #20 ldr r4, [r3, #3184] ldr r5, [r3, #3168] -.L329: +.L337: uxth r2, ip cmp r1, r2 - bhi .L333 + bhi .L341 ldmfd sp, {r4, r5, r6, r7, r8, r9, fp, sp, pc} -.L333: +.L341: mov lr, #0 -.L330: +.L338: uxth r3, lr cmp r4, r3 - bls .L331 + bls .L339 mla r3, r6, r3, r5 add lr, lr, #1 ldr r9, [r3, #8] cmp r9, #0 - bne .L330 + bne .L338 mla r2, r8, r2, r0 ldr lr, [r3] str r7, [r3, #8] str lr, [r2, #8] ldr r3, [r3, #4] str r3, [r2, #12] -.L331: +.L339: add ip, ip, #1 - b .L329 -.L336: + b .L337 +.L344: .align 2 -.L335: +.L343: .word .LANCHOR0 .size FtlGcBufAlloc, .-FtlGcBufAlloc .align 2 @@ -2897,26 +2916,26 @@ IsBlkInGcList: mov ip, sp push {fp, ip, lr, pc} sub fp, ip, #4 - ldr r2, .L342 + ldr r2, .L350 movw r1, #3192 uxth r0, r0 ldr r3, [r2, #3188] ldrh r2, [r2, r1] add r2, r3, r2, lsl #1 -.L338: +.L346: cmp r3, r2 - bne .L340 + bne .L348 mov r0, #0 ldmfd sp, {fp, sp, pc} -.L340: +.L348: ldrh r1, [r3], #2 cmp r1, r0 - bne .L338 + bne .L346 mov r0, #1 ldmfd sp, {fp, sp, pc} -.L343: +.L351: .align 2 -.L342: +.L350: .word .LANCHOR0 .size IsBlkInGcList, .-IsBlkInGcList .align 2 @@ -2936,31 +2955,31 @@ FtlGcUpdatePage: mov r5, r1 mov r6, r2 bl P2V_block_in_plane - ldr ip, .L348 + ldr ip, .L356 movw r3, #3192 ldr r2, [ip, #3188] ldrh lr, [ip, r3] mov r3, #0 sub r1, r2, #2 -.L345: +.L353: uxth r7, r3 cmp r7, lr - bcc .L347 - bne .L346 + bcc .L355 + bne .L354 lsl r3, r7, #1 strh r0, [r2, r3] @ movhi movw r2, #3192 ldrh r3, [ip, r2] add r3, r3, #1 strh r3, [ip, r2] @ movhi - b .L346 -.L347: + b .L354 +.L355: ldrh r7, [r1, #2]! add r3, r3, #1 cmp r7, r0 - bne .L345 -.L346: - ldr r0, .L348+4 + bne .L353 +.L354: + ldr r0, .L356+4 mov r3, #12 ldrh r2, [r0] mul r3, r3, r2 @@ -2972,9 +2991,9 @@ FtlGcUpdatePage: add r3, r3, #1 strh r3, [r0] @ movhi ldmfd sp, {r4, r5, r6, r7, fp, sp, pc} -.L349: +.L357: .align 2 -.L348: +.L356: .word .LANCHOR0 .word .LANCHOR0+3200 .size FtlGcUpdatePage, .-FtlGcUpdatePage @@ -2988,33 +3007,47 @@ FtlGcRefreshBlock: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 1, uses_anonymous_args = 0 mov ip, sp - push {r4, fp, ip, lr, pc} + push {r4, r5, r6, r7, r8, fp, ip, lr, pc} sub fp, ip, #4 uxth r4, r0 - ldr r0, .L353 + movw r7, #3202 mov r1, r4 + ldr r0, .L363 bl sftl_printk - ldr r3, .L353+4 - movw ip, #3202 + ldr r3, .L363+4 + ldrh r8, [r3, r7] + cmp r4, r8 + beq .L359 + movw r5, #3204 + ldrh r6, [r3, r5] + cmp r4, r6 + beq .L359 + movw ip, #3206 ldrh lr, [r3, ip] cmp r4, lr - beq .L351 - movw r2, #3204 - ldrh r0, [r3, r2] + beq .L359 + movw r1, #3208 + ldrh r0, [r3, r1] cmp r4, r0 - beq .L351 - movw r1, #65535 - cmp lr, r1 + beq .L359 + movw r2, #65535 + cmp r8, r2 + strheq r4, [r3, r7] @ movhi + beq .L359 + cmp r6, r2 + strheq r4, [r3, r5] @ movhi + beq .L359 + cmp lr, r2 strheq r4, [r3, ip] @ movhi - beq .L351 - cmp r0, r1 - strheq r4, [r3, r2] @ movhi -.L351: + beq .L359 + cmp r0, r2 + strheq r4, [r3, r1] @ movhi +.L359: mov r0, #0 - ldmfd sp, {r4, fp, sp, pc} -.L354: + ldmfd sp, {r4, r5, r6, r7, r8, fp, sp, pc} +.L364: .align 2 -.L353: +.L363: .word .LC73 .word .LANCHOR0 .size FtlGcRefreshBlock, .-FtlGcRefreshBlock @@ -3030,48 +3063,48 @@ FtlGcMarkBadPhyBlk: mov ip, sp push {r4, r5, r6, r7, fp, ip, lr, pc} sub fp, ip, #4 - ldr r4, .L359 + ldr r4, .L369 uxth r5, r0 - movw r6, #3206 + movw r6, #3210 mov r0, r5 bl P2V_block_in_plane mov r2, r5 mov r7, r0 ldrh r1, [r4, r6] - ldr r0, .L359+4 + ldr r0, .L369+4 bl sftl_printk mov r0, r7 bl FtlGcRefreshBlock ldrh r3, [r4, r6] mov r2, #0 - ldr r0, .L359+8 -.L356: + ldr r0, .L369+8 +.L366: uxth r1, r2 cmp r3, r1 - bhi .L358 + bhi .L368 cmp r3, #15 - movwls r2, #3206 + movwls r2, #3210 addls r1, r3, #1 strhls r1, [r4, r2] @ movhi lslls r3, r3, #1 - ldrls r2, .L359+8 + ldrls r2, .L369+8 strhls r5, [r2, r3] @ movhi - b .L357 -.L358: + b .L367 +.L368: add r2, r2, #1 add r1, r0, r2, lsl #1 ldrh r1, [r1, #-2] cmp r1, r5 - bne .L356 -.L357: + bne .L366 +.L367: mov r0, #0 ldmfd sp, {r4, r5, r6, r7, fp, sp, pc} -.L360: +.L370: .align 2 -.L359: +.L369: .word .LANCHOR0 .word .LC74 - .word .LANCHOR0+3208 + .word .LANCHOR0+3212 .size FtlGcMarkBadPhyBlk, .-FtlGcMarkBadPhyBlk .align 2 .global FtlGcReFreshBadBlk @@ -3085,24 +3118,24 @@ FtlGcReFreshBadBlk: mov ip, sp push {r4, r5, fp, ip, lr, pc} sub fp, ip, #4 - ldr r4, .L367 - movw r3, #3206 + ldr r4, .L377 + movw r3, #3210 ldrh r2, [r4, r3] cmp r2, #0 - beq .L362 + beq .L372 movw r3, #3202 ldrh r1, [r4, r3] movw r3, #65535 cmp r1, r3 - bne .L362 - movw r3, #3242 - movw r5, #3242 + bne .L372 + movw r3, #3246 + movw r5, #3246 ldrh r1, [r4, r3] cmp r1, r2 movcs r2, #0 strhcs r2, [r4, r3] @ movhi ldrh r3, [r4, r5] - ldr r2, .L367+4 + ldr r2, .L377+4 lsl r3, r3, #1 ldrh r0, [r2, r3] bl P2V_block_in_plane @@ -3110,14 +3143,14 @@ FtlGcReFreshBadBlk: ldrh r3, [r4, r5] add r3, r3, #1 strh r3, [r4, r5] @ movhi -.L362: +.L372: mov r0, #0 ldmfd sp, {r4, r5, fp, sp, pc} -.L368: +.L378: .align 2 -.L367: +.L377: .word .LANCHOR0 - .word .LANCHOR0+3208 + .word .LANCHOR0+3212 .size FtlGcReFreshBadBlk, .-FtlGcReFreshBadBlk .align 2 .global ftl_malloc @@ -3131,12 +3164,12 @@ ftl_malloc: mov ip, sp push {fp, ip, lr, pc} sub fp, ip, #4 - ldr r1, .L370 + ldr r1, .L380 bl __kmalloc ldmfd sp, {fp, sp, pc} -.L371: +.L381: .align 2 -.L370: +.L380: .word 37748929 .size ftl_malloc, .-ftl_malloc .align 2 @@ -3173,46 +3206,46 @@ rknand_print_hex: mov r9, r3 mov r5, r6 mov r4, r6 -.L374: +.L384: cmp r4, r9 - bcc .L380 - ldr r0, .L382 + bcc .L390 + ldr r0, .L392 bl sftl_printk ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc} -.L380: +.L390: cmp r5, #0 - bne .L375 + bne .L385 mov r3, r6 mov r2, r7 mov r1, r10 - ldr r0, .L382+4 + ldr r0, .L392+4 bl sftl_printk -.L375: +.L385: cmp r8, #4 ldreq r1, [r7, r4, lsl #2] - ldreq r0, .L382+8 - beq .L381 + ldreq r0, .L392+8 + beq .L391 cmp r8, #2 lsleq r3, r4, #1 - ldreq r0, .L382+12 + ldreq r0, .L392+12 ldrbne r1, [r7, r4] @ zero_extendqisi2 ldrheq r1, [r7, r3] - ldrne r0, .L382+16 -.L381: + ldrne r0, .L392+16 +.L391: add r5, r5, #1 bl sftl_printk cmp r5, #15 - bls .L379 + bls .L389 mov r5, #0 - ldr r0, .L382 + ldr r0, .L392 bl sftl_printk -.L379: +.L389: add r4, r4, #1 add r6, r6, r8 - b .L374 -.L383: + b .L384 +.L393: .align 2 -.L382: +.L392: .word .LC79 .word .LC75 .word .LC76 @@ -3233,37 +3266,37 @@ FlashReadPages: sub fp, ip, #4 sub sp, sp, #8 mov r6, #0 - ldr r5, .L402 + ldr r5, .L412 mov r7, r1 - ldr r9, .L402+4 + ldr r9, .L412+4 mov r4, r0 - ldr r10, .L402+8 + ldr r10, .L412+8 ldrh r8, [r5, #12] -.L385: +.L395: cmp r6, r7 - bne .L392 + bne .L402 mov r0, #0 sub sp, fp, #40 ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc} -.L392: +.L402: ldr r3, [r4, #8] cmp r3, #0 - beq .L386 + beq .L396 ldr r3, [r4, #12] cmp r3, #0 - bne .L387 -.L386: + bne .L397 +.L396: mov r2, #101 mov r1, r9 mov r0, r10 bl sftl_printk -.L387: +.L397: sub r2, fp, #48 sub r1, fp, #44 mov r0, r4 bl l2p_addr_tran ldr r3, [r4, #12] - ldr ip, [r5, #3256] + ldr ip, [r5, #3260] ldr r2, [r4, #8] ldr r1, [fp, #-44] ldrb r0, [fp, #-48] @ zero_extendqisi2 @@ -3271,38 +3304,38 @@ FlashReadPages: str r0, [r4] ldrh r3, [r5, #14] cmp r3, #4 - bne .L389 + bne .L399 ldr r3, [r4, #12] ldr r2, [r4, #8] ldr r1, [fp, #-44] - ldr ip, [r5, #3256] + ldr ip, [r5, #3260] add r3, r3, #8 add r2, r2, #2048 ldrb r0, [fp, #-48] @ zero_extendqisi2 add r1, r8, r1 blx ip cmn r0, #1 - beq .L390 + beq .L400 ldr r3, [r4, #12] ldr r2, [r3, #12] cmn r2, #1 - bne .L389 + bne .L399 ldr r2, [r3, #8] cmn r2, #1 - bne .L389 + bne .L399 ldr r3, [r3] cmn r3, #1 - beq .L389 -.L390: + beq .L399 +.L400: mvn r3, #0 str r3, [r4] -.L389: +.L399: add r6, r6, #1 add r4, r4, #20 - b .L385 -.L403: + b .L395 +.L413: .align 2 -.L402: +.L412: .word .LANCHOR0 .word .LANCHOR1+130 .word .LC1 @@ -3319,54 +3352,53 @@ FtlLoadFactoryBbt: mov ip, sp push {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc} sub fp, ip, #4 - ldr r4, .L414 + ldr r4, .L424 mov r6, #0 mvn r9, #0 - ldr r10, .L414+4 - ldr r3, [r4, #3280] + ldr r3, [r4, #3284] add r7, r4, #162 - ldr r8, [r4, #3284] - str r3, [r4, #3268] - str r8, [r4, #3272] -.L405: + ldr r8, [r4, #3288] + add r10, r4, #3264 + str r3, [r4, #3272] + str r8, [r4, #3276] +.L415: ldrh r3, [r4, #54] cmp r6, r3 - bcc .L410 + bcc .L420 mov r0, #0 ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc} -.L410: +.L420: ldrh r5, [r4, #98] strh r9, [r7, #2]! @ movhi -.L407: +.L417: ldrh r3, [r4, #98] sub r5, r5, #1 uxth r5, r5 sub r2, r3, #16 cmp r5, r2 - ble .L408 + ble .L418 mla r3, r6, r3, r5 mov r2, #1 mov r1, r2 mov r0, r10 lsl r3, r3, #10 - str r3, [r4, #3264] + str r3, [r4, #3268] bl FlashReadPages - ldr r3, [r4, #3260] + ldr r3, [r4, #3264] cmn r3, #1 - beq .L407 + beq .L417 ldrh r2, [r8] movw r3, #61664 cmp r2, r3 - bne .L407 + bne .L417 strh r5, [r7] @ movhi -.L408: +.L418: add r6, r6, #1 - b .L405 -.L415: + b .L415 +.L425: .align 2 -.L414: +.L424: .word .LANCHOR0 - .word .LANCHOR0+3260 .size FtlLoadFactoryBbt, .-FtlLoadFactoryBbt .align 2 .global FtlGetLastWrittenPage @@ -3382,17 +3414,17 @@ FtlGetLastWrittenPage: sub fp, ip, #4 sub sp, sp, #84 cmp r1, #1 - ldr r3, .L424 + ldr r3, .L437 lsl r6, r0, #10 mov r2, r1 mov r7, r1 sub r0, fp, #116 - ldrheq r4, [r3, #104] + ldrheq r5, [r3, #104] mov r1, #1 - ldrhne r4, [r3, #102] - ldr r3, .L424+4 - sub r4, r4, #1 - sxth r5, r4 + ldrhne r5, [r3, #102] + ldr r3, .L437+4 + sub r5, r5, #1 + sxth r5, r5 str r3, [fp, #-108] sub r3, fp, #96 str r3, [fp, #-104] @@ -3402,40 +3434,43 @@ FtlGetLastWrittenPage: ldr r3, [fp, #-96] cmn r3, #1 moveq r8, #0 - beq .L420 -.L419: + beq .L430 +.L429: mov r0, r5 sub sp, fp, #32 ldmfd sp, {r4, r5, r6, r7, r8, fp, sp, pc} -.L423: - add r4, r8, r5 +.L433: + add r3, r8, r5 mov r2, r7 - add r4, r4, r4, lsr #31 + add r3, r3, r3, lsr #31 mov r1, #1 sub r0, fp, #116 - asr r4, r4, #1 + asr r4, r3, #1 sxth r3, r4 orr r3, r3, r6 str r3, [fp, #-112] bl FlashReadPages ldr r3, [fp, #-96] cmn r3, #1 - bne .L421 + bne .L431 ldr r3, [fp, #-92] cmn r3, #1 - subeq r4, r4, #1 - sxtheq r5, r4 - beq .L420 -.L421: + bne .L431 + ldr r3, [fp, #-116] + cmn r3, #1 + subne r4, r4, #1 + sxthne r5, r4 + bne .L430 +.L431: add r4, r4, #1 sxth r8, r4 -.L420: +.L430: cmp r8, r5 - ble .L423 - b .L419 -.L425: + ble .L433 + b .L429 +.L438: .align 2 -.L424: +.L437: .word .LANCHOR0 .word ftl_temp_buf .size FtlGetLastWrittenPage, .-FtlGetLastWrittenPage @@ -3453,7 +3488,7 @@ FlashProgPages: sub fp, ip, #4 sub sp, sp, #32 mov r9, r3 - ldr r6, .L456 + ldr r6, .L469 mov r10, r1 mov r8, r2 mov r4, r0 @@ -3461,34 +3496,34 @@ FlashProgPages: mov r7, #0 ldrh r3, [r6, #12] str r3, [fp, #-72] -.L427: +.L440: cmp r7, r10 - bne .L435 + bne .L448 cmp r9, #0 - bne .L442 -.L455: + bne .L455 +.L468: mov r0, #0 sub sp, fp, #40 ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc} -.L435: +.L448: ldr r3, [r5, #8] cmp r3, #0 - beq .L428 + beq .L441 ldr r3, [r5, #12] cmp r3, #0 - bne .L429 -.L428: + bne .L442 +.L441: mov r2, #131 - ldr r1, .L456+4 - ldr r0, .L456+8 + ldr r1, .L469+4 + ldr r0, .L469+8 bl sftl_printk -.L429: +.L442: sub r2, fp, #68 sub r1, fp, #64 mov r0, r5 bl l2p_addr_tran ldr r3, [r5, #12] - ldr ip, [r6, #3252] + ldr ip, [r6, #3256] ldr r2, [r5, #8] ldr r1, [fp, #-64] ldrb r0, [fp, #-68] @ zero_extendqisi2 @@ -3499,13 +3534,13 @@ FlashProgPages: strne r3, [r5] ldrh r3, [r6, #14] cmp r3, #4 - bne .L433 + bne .L446 ldr r0, [fp, #-72] ldr r3, [r5, #12] ldr r2, [r5, #8] ldr r1, [fp, #-64] add r3, r3, #8 - ldr ip, [r6, #3252] + ldr ip, [r6, #3256] add r2, r2, #2048 add r1, r0, r1 ldrb r0, [fp, #-68] @ zero_extendqisi2 @@ -3513,16 +3548,16 @@ FlashProgPages: cmp r0, #0 mvnne r3, #0 strne r3, [r5] -.L433: +.L446: add r7, r7, #1 add r5, r5, #20 - b .L427 -.L440: + b .L440 +.L453: mov r3, #0 mov r2, r8 str r3, [r9] mov r1, #1 - str r3, [r6, #3288] + str r3, [r6, #3292] sub r0, fp, #60 ldr r3, [r4, #4] str r9, [fp, #-52] @@ -3531,54 +3566,54 @@ FlashProgPages: bl FlashReadPages ldr r3, [fp, #-60] cmn r3, #1 - bne .L437 + bne .L450 ldr r1, [r4, #4] - ldr r0, .L456+12 + ldr r0, .L469+12 str r3, [fp, #-72] bl sftl_printk ldr r3, [fp, #-72] str r3, [r4] -.L437: +.L450: ldr r3, [r4, #12] cmp r3, #0 - beq .L438 + beq .L451 ldr r2, [r3] - ldr r3, [r6, #3288] + ldr r3, [r6, #3292] cmp r2, r3 - beq .L438 + beq .L451 ldr r1, [r4, #4] - ldr r0, .L456+16 + ldr r0, .L469+16 bl sftl_printk mvn r3, #0 str r3, [r4] -.L438: +.L451: ldr r3, [r4, #8] cmp r3, #0 - beq .L439 + beq .L452 ldr r2, [r3] ldr r3, [r9] cmp r2, r3 - beq .L439 + beq .L452 ldr r1, [r4, #4] - ldr r0, .L456+20 + ldr r0, .L469+20 bl sftl_printk mvn r3, #0 str r3, [r4] -.L439: +.L452: add r5, r5, #1 add r4, r4, #20 -.L436: +.L449: cmp r7, r5 - bne .L440 - b .L455 -.L442: + bne .L453 + b .L468 +.L455: mov r5, #0 - ldr r9, .L456+24 - ldr r10, .L456+28 - b .L436 -.L457: + ldr r9, .L469+24 + ldr r10, .L469+28 + b .L449 +.L470: .align 2 -.L456: +.L469: .word .LANCHOR0 .word .LANCHOR1+145 .word .LC1 @@ -3586,7 +3621,7 @@ FlashProgPages: .word .LC81 .word .LC82 .word check_buf - .word .LANCHOR0+3288 + .word .LANCHOR0+3292 .size FlashProgPages, .-FlashProgPages .align 2 .global FlashEraseBlocks @@ -3602,22 +3637,22 @@ FlashEraseBlocks: sub fp, ip, #4 sub sp, sp, #8 mov r6, #0 - ldr r5, .L469 + ldr r5, .L482 mov r7, r2 mov r4, r0 ldrh r8, [r5, #12] -.L459: +.L472: cmp r6, r7 - bne .L465 + bne .L478 mov r0, #0 sub sp, fp, #32 ldmfd sp, {r4, r5, r6, r7, r8, fp, sp, pc} -.L465: +.L478: sub r2, fp, #40 sub r1, fp, #36 mov r0, r4 bl l2p_addr_tran - ldr r3, [r5, #3248] + ldr r3, [r5, #3252] ldr r1, [fp, #-36] ldrb r0, [fp, #-40] @ zero_extendqisi2 blx r3 @@ -3627,22 +3662,22 @@ FlashEraseBlocks: strne r3, [r4] ldrh r3, [r5, #14] cmp r3, #4 - bne .L463 + bne .L476 ldr r1, [fp, #-36] - ldr r3, [r5, #3248] + ldr r3, [r5, #3252] ldrb r0, [fp, #-40] @ zero_extendqisi2 add r1, r8, r1 blx r3 cmp r0, #0 mvnne r3, #0 strne r3, [r4] -.L463: +.L476: add r6, r6, #1 add r4, r4, #20 - b .L459 -.L470: + b .L472 +.L483: .align 2 -.L469: +.L482: .word .LANCHOR0 .size FlashEraseBlocks, .-FlashEraseBlocks .align 2 @@ -3664,16 +3699,16 @@ FtlFreeSysBlkQueueIn: uxth r3, r3 cmp r3, r2 ldmfdhi sp, {r4, r5, r6, fp, sp, pc} - ldr r4, .L480 + ldr r4, .L493 ldrh r3, [r4, #218] cmp r3, #1024 ldmfdeq sp, {r4, r5, r6, fp, sp, pc} cmp r1, #0 - beq .L473 + beq .L486 mov r0, r5 bl P2V_block_in_plane mov r6, r0 - ldr r0, [r4, #3800] + ldr r0, [r4, #3804] lsl r3, r5, #10 mov r2, #1 mov r1, r2 @@ -3687,7 +3722,7 @@ FtlFreeSysBlkQueueIn: ldr r3, [r4, #2560] add r3, r3, #1 str r3, [r4, #2560] -.L473: +.L486: ldrh r3, [r4, #218] add r3, r3, #1 strh r3, [r4, #218] @ movhi @@ -3698,9 +3733,9 @@ FtlFreeSysBlkQueueIn: strh r5, [r2, #220] @ movhi strh r3, [r4, #216] @ movhi ldmfd sp, {r4, r5, r6, fp, sp, pc} -.L481: +.L494: .align 2 -.L480: +.L493: .word .LANCHOR0 .size FtlFreeSysBlkQueueIn, .-FtlFreeSysBlkQueueIn .align 2 @@ -3721,34 +3756,34 @@ FtlLowFormatEraseBlock: uxtb r6, r1 str r3, [fp, #-48] mov r5, r10 - ldr r3, .L524 + ldr r3, .L537 mov r4, r10 ldr r2, [fp, #-48] mov r9, #20 mov r8, r3 - str r2, [r3, #3804] -.L483: + str r2, [r3, #3808] +.L496: ldrh r1, [r8, #32] uxth r2, r10 cmp r1, r2 - bhi .L487 + bhi .L500 cmp r5, #0 - beq .L482 + beq .L495 mov r7, #0 mov r9, #20 mov r2, r5 mov r1, #0 - ldr r0, [r8, #3800] + ldr r0, [r8, #3804] bl FlashEraseBlocks -.L490: +.L503: uxth r2, r7 cmp r5, r2 - bhi .L492 -.L493: + bhi .L505 +.L506: cmp r6, #0 ldrhne r3, [r8, #104] moveq r3, #6 - ldr r8, .L524 + ldr r8, .L537 streq r3, [fp, #-60] moveq r3, #1 strne r3, [fp, #-52] @@ -3761,27 +3796,27 @@ FtlLowFormatEraseBlock: mov r3, #0 streq r6, [fp, #-56] str r3, [fp, #-44] -.L502: +.L515: mov r7, #0 mov r5, r7 -.L494: +.L507: ldrh r1, [r8, #32] uxth r3, r7 cmp r1, r3 - bhi .L497 + bhi .L510 cmp r5, #0 - beq .L482 + beq .L495 ldr r2, [fp, #-56] mov r3, #1 mov r1, r5 - ldr r0, [r8, #3800] + ldr r0, [r8, #3804] bl FlashProgPages mov r9, #0 mov r2, #20 -.L499: +.L512: uxth r3, r9 cmp r5, r3 - bhi .L501 + bhi .L514 ldr r3, [fp, #-44] ldr r2, [fp, #-60] add r7, r3, r2 @@ -3790,13 +3825,13 @@ FtlLowFormatEraseBlock: ldr r2, [fp, #-44] ldr r3, [fp, #-52] cmp r3, r2 - bhi .L502 + bhi .L515 mov r7, #0 mov r9, #20 -.L503: +.L516: uxth r3, r7 cmp r5, r3 - bhi .L505 + bhi .L518 ldr r3, [fp, #-48] adds r6, r6, #0 movne r6, #1 @@ -3804,18 +3839,18 @@ FtlLowFormatEraseBlock: movhi r8, r6 orrls r8, r6, #1 cmp r8, #0 - beq .L482 + beq .L495 mov r2, r5 ldr r1, [fp, #-56] - ldr r0, [r10, #3800] + ldr r0, [r10, #3804] bl FlashEraseBlocks -.L482: +.L495: mov r0, r4 sub sp, fp, #40 ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc} -.L487: +.L500: uxth r2, r10 - ldr r0, [r8, #3800] + ldr r0, [r8, #3804] mov r3, #0 mul r1, r9, r2 add r2, r8, r2 @@ -3825,20 +3860,20 @@ FtlLowFormatEraseBlock: bl V2P_block cmp r6, #0 mov r7, r0 - beq .L484 + beq .L497 bl IsBlkInVendorPart cmp r0, #0 - bne .L485 -.L484: + bne .L498 +.L497: mov r0, r7 bl FtlBbmIsBadBlock cmp r0, #0 addne r4, r4, #1 uxthne r4, r4 - bne .L485 - ldr r1, [r8, #3800] + bne .L498 + ldr r1, [r8, #3804] lsl r7, r7, #10 - ldr r2, [r8, #3808] + ldr r2, [r8, #3812] mla r1, r9, r5, r1 str r2, [r1, #8] ldrh r2, [r8, #112] @@ -3849,32 +3884,32 @@ FtlLowFormatEraseBlock: add r0, r2, #3 cmp r2, #0 movlt r2, r0 - ldr r0, [r8, #3812] + ldr r0, [r8, #3816] bic r2, r2, #3 add r2, r0, r2 str r2, [r1, #12] -.L485: +.L498: add r10, r10, #1 - b .L483 -.L492: + b .L496 +.L505: mul r2, r9, r7 - ldr r1, [r8, #3800] + ldr r1, [r8, #3804] add r0, r1, r2 ldr r2, [r1, r2] cmn r2, #1 - bne .L491 + bne .L504 ldr r0, [r0, #4] add r4, r4, #1 uxth r4, r4 ubfx r0, r0, #10, #16 bl FtlBbmMapBadBlock -.L491: +.L504: add r7, r7, #1 - b .L490 -.L497: + b .L503 +.L510: uxth r3, r7 mov r2, #20 - ldr r0, [r8, #3800] + ldr r0, [r8, #3804] mul r1, r2, r3 mov r2, #0 add r3, r8, r3 @@ -3884,21 +3919,21 @@ FtlLowFormatEraseBlock: bl V2P_block cmp r6, #0 mov r9, r0 - beq .L495 + beq .L508 bl IsBlkInVendorPart cmp r0, #0 - bne .L496 -.L495: + bne .L509 +.L508: mov r0, r9 bl FtlBbmIsBadBlock cmp r0, #0 - bne .L496 - ldr r1, [r8, #3800] + bne .L509 + ldr r1, [r8, #3804] mov r3, #20 mla r1, r3, r5, r1 ldr r3, [fp, #-44] add r9, r3, r9, lsl #10 - ldr r3, [r8, #3816] + ldr r3, [r8, #3820] str r9, [r1, #4] str r3, [r1, #8] ldrh r3, [r8, #112] @@ -3908,20 +3943,20 @@ FtlLowFormatEraseBlock: add r0, r3, #3 cmp r3, #0 movlt r3, r0 - ldr r0, [r8, #3808] + ldr r0, [r8, #3812] bic r3, r3, #3 add r3, r0, r3 str r3, [r1, #12] -.L496: +.L509: add r7, r7, #1 - b .L494 -.L501: + b .L507 +.L514: mul r3, r2, r9 - ldr r1, [r10, #3800] + ldr r1, [r10, #3804] add r0, r1, r3 ldr r3, [r1, r3] cmp r3, #0 - beq .L500 + beq .L513 ldr r0, [r0, #4] add r4, r4, #1 str r2, [fp, #-64] @@ -3929,28 +3964,28 @@ FtlLowFormatEraseBlock: ubfx r0, r0, #10, #16 bl FtlBbmMapBadBlock ldr r2, [fp, #-64] -.L500: +.L513: add r9, r9, #1 - b .L499 -.L505: + b .L512 +.L518: cmp r6, #0 - beq .L504 + beq .L517 mul r3, r9, r7 - ldr r2, [r10, #3800] + ldr r2, [r10, #3804] add r1, r2, r3 ldr r3, [r2, r3] cmp r3, #0 - bne .L504 + bne .L517 ldr r0, [r1, #4] mov r1, #1 ubfx r0, r0, #10, #16 bl FtlFreeSysBlkQueueIn -.L504: +.L517: add r7, r7, #1 - b .L503 -.L525: + b .L516 +.L538: .align 2 -.L524: +.L537: .word .LANCHOR0 .size FtlLowFormatEraseBlock, .-FtlLowFormatEraseBlock .align 2 @@ -3965,12 +4000,12 @@ FtlFreeSysBlkQueueOut: mov ip, sp push {r4, r5, r6, r7, fp, ip, lr, pc} sub fp, ip, #4 - ldr r4, .L533 - ldr r6, .L533+4 -.L527: + ldr r4, .L546 + ldr r6, .L546+4 +.L540: ldrh r1, [r4, #218] cmp r1, #0 - beq .L528 + beq .L541 ldrh r3, [r4, #214] sub r1, r1, #1 strh r1, [r4, #218] @ movhi @@ -3982,7 +4017,7 @@ FtlFreeSysBlkQueueOut: mov r0, r5 bl P2V_block_in_plane mov r7, r0 - ldr r0, [r4, #3800] + ldr r0, [r4, #3804] lsl r3, r5, #10 mov r2, #1 mov r1, r2 @@ -4000,23 +4035,23 @@ FtlFreeSysBlkQueueOut: sub r3, r5, #1 uxth r3, r3 cmp r3, r2 - bhi .L529 + bhi .L542 mov r0, r5 ldmfd sp, {r4, r5, r6, r7, fp, sp, pc} -.L528: - ldr r0, .L533+8 +.L541: + ldr r0, .L546+8 bl sftl_printk -.L531: - b .L531 -.L529: +.L544: + b .L544 +.L542: ldrh r2, [r4, #218] mov r1, r5 mov r0, r6 bl sftl_printk - b .L527 -.L534: + b .L540 +.L547: .align 2 -.L533: +.L546: .word .LANCHOR0 .word .LC84 .word .LC83 @@ -4037,16 +4072,16 @@ ftl_map_blk_alloc_new_blk: mov r4, r0 mov r3, #0 ldr r2, [r0, #12] -.L536: +.L549: uxth r5, r3 cmp r5, r1 - bcs .L539 + bcs .L552 mov r7, r2 add r3, r3, #1 ldrh r6, [r7] add r2, r2, #2 cmp r6, #0 - bne .L536 + bne .L549 bl FtlFreeSysBlkQueueOut sub r3, r0, #1 movw r2, #65533 @@ -4054,14 +4089,14 @@ ftl_map_blk_alloc_new_blk: mov r1, r0 strh r0, [r7] @ movhi cmp r3, r2 - bls .L537 - ldr r3, .L543 - ldr r0, .L543+4 + bls .L550 + ldr r3, .L556 + ldr r0, .L556+4 ldrh r2, [r3, #218] bl sftl_printk -.L538: - b .L538 -.L537: +.L551: + b .L551 +.L550: ldr r3, [r4, #28] strh r6, [r4, #2] @ movhi strh r5, [r4] @ movhi @@ -4070,20 +4105,20 @@ ftl_map_blk_alloc_new_blk: ldrh r3, [r4, #8] add r3, r3, #1 strh r3, [r4, #8] @ movhi -.L539: +.L552: ldrh r3, [r4, #10] cmp r3, r5 - bhi .L541 - movw r2, #581 - ldr r1, .L543+8 - ldr r0, .L543+12 + bhi .L554 + movw r2, #603 + ldr r1, .L556+8 + ldr r0, .L556+12 bl sftl_printk -.L541: +.L554: mov r0, #0 ldmfd sp, {r4, r5, r6, r7, fp, sp, pc} -.L544: +.L557: .align 2 -.L543: +.L556: .word .LANCHOR0 .word .LC85 .word .LANCHOR1+160 @@ -4105,8 +4140,8 @@ FlashTestBlk: uxth r4, r0 cmp r4, #11 movls r4, #0 - bls .L545 - ldr r5, .L548 + bls .L558 + ldr r5, .L561 sub r0, fp, #84 mov r2, #32 mov r1, #165 @@ -4114,7 +4149,7 @@ FlashTestBlk: lsl r4, r4, #10 str r5, [fp, #-96] bl memset - ldr r3, .L548+4 + ldr r3, .L561+4 mov r2, #1 mov r1, r2 sub r0, fp, #104 @@ -4135,13 +4170,13 @@ FlashTestBlk: movne r4, #1 rsb r4, r4, #0 bl FlashEraseBlocks -.L545: +.L558: mov r0, r4 sub sp, fp, #20 ldmfd sp, {r4, r5, fp, sp, pc} -.L549: +.L562: .align 2 -.L548: +.L561: .word ftl_temp_buf .word 1515870810 .size FlashTestBlk, .-FlashTestBlk @@ -4157,42 +4192,42 @@ FlashGetBadBlockList: mov ip, sp push {r4, r5, r6, fp, ip, lr, pc} sub fp, ip, #4 - ldr r5, .L557 + ldr r5, .L570 mov r4, r0 mov r6, r1 mov r2, #256 mov r1, #255 bl memset - ldr r3, [r5, #3244] + ldr r3, [r5, #3248] mov r1, r6 mov r0, r4 blx r3 uxth r0, r0 cmp r0, #50 - bls .L551 + bls .L564 mov r2, #256 mov r1, #255 mov r0, r4 bl memset mov r0, #0 -.L551: +.L564: ldrh r3, [r5, #14] cmp r3, #4 moveq r3, r4 addeq r1, r3, r0, lsl #1 - beq .L553 + beq .L566 ldmfd sp, {r4, r5, r6, fp, sp, pc} -.L554: +.L567: ldrh r2, [r3] lsr r2, r2, #1 strh r2, [r3], #2 @ movhi -.L553: +.L566: cmp r3, r1 - bne .L554 + bne .L567 ldmfd sp, {r4, r5, r6, fp, sp, pc} -.L558: +.L571: .align 2 -.L557: +.L570: .word .LANCHOR0 .size FlashGetBadBlockList, .-FlashGetBadBlockList .align 2 @@ -4209,9 +4244,9 @@ ftl_memset: sub fp, ip, #4 cmp r2, #0 mov r4, r0 - beq .L560 + beq .L573 bl memset -.L560: +.L573: mov r0, r4 ldmfd sp, {r4, fp, sp, pc} .size ftl_memset, .-ftl_memset @@ -4227,12 +4262,12 @@ FtlMemInit: mov ip, sp push {r4, r5, r6, r7, r8, fp, ip, lr, pc} sub fp, ip, #4 - ldr r4, .L665 + ldr r4, .L678 movw r3, #65535 movw r2, #3202 mov r5, #0 mov r6, #12 - str r3, [r4, #3824] + str r3, [r4, #3828] mvn r3, #0 strh r3, [r4, r2] @ movhi movw r2, #3204 @@ -4247,10 +4282,10 @@ FtlMemInit: strh r2, [r4, r3] @ movhi movw r3, #3156 strh r5, [r4, r3] @ movhi - movw r3, #3206 + movw r3, #3210 strh r5, [r4, r3] @ movhi lsl r0, r0, #1 - movw r3, #3242 + movw r3, #3246 str r5, [r4, #2544] strh r5, [r4, r3] @ movhi mov r7, #20 @@ -4265,11 +4300,11 @@ FtlMemInit: str r5, [r4, #2560] str r5, [r4, #2564] str r5, [r4, #2568] - str r5, [r4, #3820] + str r5, [r4, #3824] str r5, [r4, #3160] - str r5, [r4, #3828] + str r5, [r4, #3832] str r5, [r4, #3152] - str r5, [r4, #3804] + str r5, [r4, #3808] bl ftl_malloc str r0, [r4, #3188] ldrh r0, [r4, #106] @@ -4281,16 +4316,16 @@ FtlMemInit: lsl r8, r7, #2 mov r0, r8 bl ftl_malloc - str r0, [r4, #3832] - mov r0, r7 - bl ftl_malloc str r0, [r4, #3836] - mov r0, r8 + mov r0, r7 bl ftl_malloc str r0, [r4, #3840] + mov r0, r8 + bl ftl_malloc + str r0, [r4, #3844] mov r0, r7 bl ftl_malloc - str r0, [r4, #3800] + str r0, [r4, #3804] mov r0, r7 bl ftl_malloc ldrh r3, [r4, #32] @@ -4301,23 +4336,23 @@ FtlMemInit: add r3, r3, #1 str r3, [r4, #3184] bl ftl_malloc - str r0, [r4, #3280] - mov r0, r7 - bl ftl_malloc - str r0, [r4, #3844] + str r0, [r4, #3284] mov r0, r7 bl ftl_malloc str r0, [r4, #3848] + mov r0, r7 + bl ftl_malloc + str r0, [r4, #3852] ldr r0, [r4, #3184] mul r0, r0, r7 bl ftl_malloc str r0, [r4, #3172] mov r0, r7 bl ftl_malloc - str r0, [r4, #3816] + str r0, [r4, #3820] mov r0, r7 bl ftl_malloc - str r0, [r4, #3808] + str r0, [r4, #3812] ldr r0, [r4, #3184] mul r0, r6, r0 bl ftl_malloc @@ -4327,12 +4362,12 @@ FtlMemInit: mul r7, r7, r3 mov r0, r7 bl ftl_malloc - str r0, [r4, #3284] + str r0, [r4, #3288] lsl r0, r7, #2 - movw r7, #3852 + add r7, r4, #3856 bl ftl_malloc ldrh r3, [r4, #112] - str r0, [r4, #3812] + str r0, [r4, #3816] ldr r0, [r4, #3184] mul r0, r0, r3 bl ftl_malloc @@ -4340,25 +4375,25 @@ FtlMemInit: ldrh r0, [r4, #42] lsl r0, r0, #1 uxth r0, r0 - strh r0, [r4, r7] @ movhi + strh r0, [r7] @ movhi bl ftl_malloc - str r0, [r4, #3856] - ldrh r0, [r4, r7] - ldr r3, .L665+4 + str r0, [r4, #3860] + ldrh r0, [r7] + ldr r3, .L678+4 add r0, r0, #544 add r0, r0, #3 lsr r0, r0, #9 - strh r0, [r4, r7] @ movhi + strh r0, [r7] @ movhi and r0, r3, r0, lsl #9 bl ftl_malloc ldrh r7, [r4, #42] - str r0, [r4, #3860] + str r0, [r4, #3864] add r0, r0, #32 str r0, [r4, #2328] lsl r7, r7, #1 mov r0, r7 bl ftl_malloc - str r0, [r4, #3864] + str r0, [r4, #3868] mov r0, r7 bl ftl_malloc ldr r7, [r4, #128] @@ -4366,10 +4401,10 @@ FtlMemInit: lsl r7, r7, #1 mov r0, r7 bl ftl_malloc - str r0, [r4, #3868] + str r0, [r4, #3872] mov r0, r7 bl ftl_malloc - str r0, [r4, #3872] + str r0, [r4, #3876] ldrh r0, [r4, #42] lsr r0, r0, #3 add r0, r0, #4 @@ -4382,28 +4417,28 @@ FtlMemInit: ldrh r0, [r4, #120] lsl r0, r0, #1 bl ftl_malloc - str r0, [r4, #3876] + str r0, [r4, #3880] ldrh r0, [r4, #120] lsl r0, r0, #2 bl ftl_malloc - str r0, [r4, #3880] + str r0, [r4, #3884] ldrh r0, [r4, #122] lsl r0, r0, #2 bl ftl_malloc ldrh r2, [r4, #122] mov r1, r5 - str r0, [r4, #3884] - movw r5, #3900 + str r0, [r4, #3888] + add r5, r4, #3904 lsl r2, r2, #2 bl ftl_memset ldrh r0, [r4, #136] lsl r0, r0, #2 bl ftl_malloc - str r0, [r4, #3888] + str r0, [r4, #3892] ldr r0, [r4, #128] lsl r0, r0, #2 bl ftl_malloc - str r0, [r4, #3892] + str r0, [r4, #3896] ldrh r0, [r4, #138] mul r0, r6, r0 bl ftl_malloc @@ -4412,7 +4447,7 @@ FtlMemInit: ldrh r0, [r4, #110] mul r0, r0, r3 bl ftl_malloc - str r0, [r4, #3896] + str r0, [r4, #3900] ldrh r0, [r4, #42] lsl r0, r0, #3 bl ftl_malloc @@ -4421,147 +4456,147 @@ FtlMemInit: ldrh r3, [r4, #54] add r0, r0, #31 asr r0, r0, #5 - strh r0, [r4, r5] @ movhi + strh r0, [r5] @ movhi mul r0, r0, r3 lsl r0, r0, #2 bl ftl_malloc - ldrh r2, [r4, r5] + ldrh r2, [r5] add ip, r4, #180 ldrh lr, [r4, #54] mov r3, #1 str r0, [r4, #180] lsl r2, r2, #2 mov r1, r2 -.L565: +.L578: cmp r3, lr - bcc .L566 - ldr r2, .L665+8 + bcc .L579 + ldr r2, .L678+8 mov r1, #0 add r3, r2, r3, lsl #2 add r2, r2, #56 add r3, r3, #24 -.L567: +.L580: cmp r2, r3 - bne .L568 - ldr r3, [r4, #3868] + bne .L581 + ldr r3, [r4, #3872] cmp r3, #0 - bne .L569 -.L571: - ldr r1, .L665+12 - ldr r0, .L665+16 + bne .L582 +.L584: + ldr r1, .L678+12 + ldr r0, .L678+16 bl sftl_printk mvn r0, #0 ldmfd sp, {r4, r5, r6, r7, r8, fp, sp, pc} -.L566: +.L579: ldr r0, [r4, #180] add r3, r3, #1 add r0, r0, r1 add r1, r1, r2 str r0, [ip, #4]! - b .L565 -.L568: + b .L578 +.L581: str r1, [r3, #4]! - b .L567 -.L569: - ldr r3, [r4, #3872] + b .L580 +.L582: + ldr r3, [r4, #3876] cmp r3, #0 - beq .L571 - ldr r3, [r4, #3888] - cmp r3, #0 - beq .L571 + beq .L584 ldr r3, [r4, #3892] cmp r3, #0 - beq .L571 - ldr r3, [r4, #2492] - cmp r3, #0 - beq .L571 + beq .L584 ldr r3, [r4, #3896] cmp r3, #0 - beq .L571 + beq .L584 + ldr r3, [r4, #2492] + cmp r3, #0 + beq .L584 + ldr r3, [r4, #3900] + cmp r3, #0 + beq .L584 ldr r3, [r4, #2316] cmp r3, #0 - beq .L571 + beq .L584 ldr r3, [r4, #180] cmp r3, #0 - beq .L571 + beq .L584 ldr r3, [r4, #2324] cmp r3, #0 - beq .L571 + beq .L584 ldr r3, [r4, #3188] cmp r3, #0 - beq .L571 + beq .L584 ldr r3, [r4, #3196] cmp r3, #0 - beq .L571 - ldr r3, [r4, #3832] - cmp r3, #0 - beq .L571 - ldr r3, [r4, #3840] - cmp r3, #0 - beq .L571 - ldr r3, [r4, #3800] - cmp r3, #0 - beq .L571 - ldr r3, [r4, #3180] - cmp r3, #0 - beq .L571 + beq .L584 ldr r3, [r4, #3836] cmp r3, #0 - beq .L571 - ldr r3, [r4, #3280] - cmp r3, #0 - beq .L571 + beq .L584 ldr r3, [r4, #3844] cmp r3, #0 - beq .L571 - ldr r3, [r4, #3848] + beq .L584 + ldr r3, [r4, #3804] cmp r3, #0 - beq .L571 - ldr r3, [r4, #3172] + beq .L584 + ldr r3, [r4, #3180] cmp r3, #0 - beq .L571 - ldr r3, [r4, #3816] + beq .L584 + ldr r3, [r4, #3840] cmp r3, #0 - beq .L571 - ldr r3, [r4, #3808] - cmp r3, #0 - beq .L571 - ldr r3, [r4, #3168] - cmp r3, #0 - beq .L571 + beq .L584 ldr r3, [r4, #3284] cmp r3, #0 - beq .L571 + beq .L584 + ldr r3, [r4, #3848] + cmp r3, #0 + beq .L584 + ldr r3, [r4, #3852] + cmp r3, #0 + beq .L584 + ldr r3, [r4, #3172] + cmp r3, #0 + beq .L584 + ldr r3, [r4, #3820] + cmp r3, #0 + beq .L584 ldr r3, [r4, #3812] cmp r3, #0 - beq .L571 + beq .L584 + ldr r3, [r4, #3168] + cmp r3, #0 + beq .L584 + ldr r3, [r4, #3288] + cmp r3, #0 + beq .L584 + ldr r3, [r4, #3816] + cmp r3, #0 + beq .L584 ldr r3, [r4, #3176] cmp r3, #0 - beq .L571 + beq .L584 ldr r3, [r4, #2328] cmp r3, #0 - beq .L571 - ldr r3, [r4, #3856] + beq .L584 + ldr r3, [r4, #3860] cmp r3, #0 - beq .L571 + beq .L584 ldr r3, [r4, #148] cmp r3, #0 - beq .L571 - ldr r3, .L665 - ldr r2, [r3, #3876] - cmp r2, #0 - beq .L571 + beq .L584 + ldr r3, .L678 ldr r2, [r3, #3880] cmp r2, #0 - beq .L571 - ldr r3, [r3, #3884] + beq .L584 + ldr r2, [r3, #3884] + cmp r2, #0 + beq .L584 + ldr r3, [r3, #3888] cmp r3, #0 - beq .L571 + beq .L584 mov r0, #0 ldmfd sp, {r4, r5, r6, r7, r8, fp, sp, pc} -.L666: +.L679: .align 2 -.L665: +.L678: .word .LANCHOR0 .word 33553920 .word .LANCHOR0+152 @@ -4578,35 +4613,34 @@ FtlBbt2Bitmap: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 1, uses_anonymous_args = 0 mov ip, sp - push {r4, r5, r6, r7, r8, r9, fp, ip, lr, pc} + push {r4, r5, r6, r7, r8, fp, ip, lr, pc} sub fp, ip, #4 - ldr r6, .L673 - movw r3, #3900 + ldr r6, .L686 mov r4, r0 - ldr r8, .L673+4 - sub r5, r4, #2 - ldrh r2, [r6, r3] - add r4, r4, #1020 - ldr r9, .L673+8 mov r7, r1 + ldr r8, .L686+4 + sub r5, r4, #2 + ldrh r2, [r6] + add r4, r4, #1020 add r4, r4, #2 + sub r6, r6, #3904 mov r1, #0 mov r0, r7 lsl r2, r2, #2 bl ftl_memset -.L670: +.L683: ldrh r3, [r5, #2] movw r2, #65535 cmp r3, r2 - ldmfdeq sp, {r4, r5, r6, r7, r8, r9, fp, sp, pc} + ldmfdeq sp, {r4, r5, r6, r7, r8, fp, sp, pc} ldrh r2, [r6, #98] cmp r2, r3 - bhi .L669 + bhi .L682 mov r2, #74 mov r1, r8 - mov r0, r9 + ldr r0, .L686+8 bl sftl_printk -.L669: +.L682: ldrh r3, [r5, #2]! mov r0, #1 cmp r4, r5 @@ -4615,116 +4649,16 @@ FtlBbt2Bitmap: ldr r2, [r7, r1, lsl #2] orr r3, r2, r0, lsl r3 str r3, [r7, r1, lsl #2] - bne .L670 - ldmfd sp, {r4, r5, r6, r7, r8, r9, fp, sp, pc} -.L674: + bne .L683 + ldmfd sp, {r4, r5, r6, r7, r8, fp, sp, pc} +.L687: .align 2 -.L673: - .word .LANCHOR0 +.L686: + .word .LANCHOR0+3904 .word .LANCHOR1+197 .word .LC1 .size FtlBbt2Bitmap, .-FtlBbt2Bitmap .align 2 - .global load_l2p_region - .syntax unified - .arm - .fpu softvfp - .type load_l2p_region, %function -load_l2p_region: - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 1, uses_anonymous_args = 0 - mov ip, sp - push {r4, r5, r6, r7, r8, fp, ip, lr, pc} - sub fp, ip, #4 - ldr r4, .L681 - uxth r6, r0 - uxth r8, r1 - ldrh r3, [r4, #136] - cmp r3, r6 - bcs .L676 - mov r2, #492 - ldr r1, .L681+4 - ldr r0, .L681+8 - bl sftl_printk -.L676: - ldr r3, [r4, #3888] - mov r5, #12 - ldr r7, [r3, r6, lsl #2] - cmp r7, #0 - bne .L677 - mul r5, r5, r8 - ldr r3, [r4, #2492] - ldrh r2, [r4, #110] - mov r1, #255 - add r3, r3, r5 - ldr r0, [r3, #8] - bl ftl_memset - ldr r3, [r4, #2492] - strh r6, [r3, r5] @ movhi - ldr r3, [r4, #2492] - add r5, r3, r5 - str r7, [r5, #4] -.L678: - mov r0, #0 - ldmfd sp, {r4, r5, r6, r7, r8, fp, sp, pc} -.L677: - mul r5, r5, r8 - ldr r3, [r4, #2492] - mov r2, #1 - ldr r0, .L681+12 - mov r1, r2 - str r7, [r4, #3264] - add r3, r3, r5 - ldr r3, [r3, #8] - str r3, [r4, #3268] - ldr r3, [r4, #3284] - str r3, [r4, #3272] - bl FlashReadPages - ldr r8, [r4, #3272] - ldrh r3, [r8, #8] - cmp r3, r6 - beq .L679 - mov r2, r7 - mov r1, r6 - ldr r0, .L681+16 - bl sftl_printk - mov r3, #4 - ldr r1, [r4, #3272] - mov r2, r3 - ldr r0, .L681+20 - bl rknand_print_hex - ldrh r3, [r4, #136] - mov r2, #4 - ldr r1, [r4, #3888] - ldr r0, .L681+24 - bl rknand_print_hex -.L679: - ldrh r3, [r8, #8] - cmp r3, r6 - beq .L680 - movw r2, #513 - ldr r1, .L681+4 - ldr r0, .L681+8 - bl sftl_printk -.L680: - ldr r3, [r4, #2492] - mov r1, #0 - add r2, r3, r5 - str r1, [r2, #4] - strh r6, [r3, r5] @ movhi - b .L678 -.L682: - .align 2 -.L681: - .word .LANCHOR0 - .word .LANCHOR1+211 - .word .LC1 - .word .LANCHOR0+3260 - .word .LC87 - .word .LC88 - .word .LC89 - .size load_l2p_region, .-load_l2p_region - .align 2 .global ftl_free_no_use_map_blk .syntax unified .arm @@ -4747,35 +4681,35 @@ ftl_free_no_use_map_blk: mov r0, r5 bl ftl_memset mov r2, #0 -.L684: +.L689: ldrh r1, [r4, #6] uxth r3, r2 cmp r1, r3 - bhi .L688 + bhi .L693 ldrh r2, [r5] mov r7, #0 - ldr ip, .L697 + ldr ip, .L702 mov r10, r7 -.L689: +.L694: ldrh r1, [r4, #10] uxth r3, r7 cmp r1, r3 - bhi .L693 + bhi .L698 mov r0, r10 sub sp, fp, #40 ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc} -.L688: +.L693: uxth r3, r2 mov r1, #0 ldr r0, [r6, r3, lsl #2] ubfx r0, r0, #10, #16 -.L685: +.L690: ldrh ip, [r4, #10] uxth r3, r1 cmp ip, r3 addls r2, r2, #1 - bls .L684 -.L687: + bls .L689 +.L692: uxth r3, r1 add r1, r1, #1 lsl r3, r3, #1 @@ -4784,28 +4718,28 @@ ftl_free_no_use_map_blk: ldrheq ip, [r5, r3] addeq ip, ip, #1 strheq ip, [r5, r3] @ movhi - b .L685 -.L693: + b .L690 +.L698: ldrh r1, [r4] uxth r6, r7 cmp r1, r3 - bne .L690 + bne .L695 ldrh r0, [r4, #2] ldrh r1, [ip, #104] cmp r0, r1 lslcc r0, r6, #1 strhcc r1, [r5, r0] @ movhi -.L690: +.L695: lsl r6, r6, #1 ldrh r8, [r5, r6] cmp r2, r8 movhi r10, r3 movhi r2, r8 cmp r8, #0 - bne .L692 + bne .L697 ldrh r0, [r9, r6] cmp r0, #0 - beq .L692 + beq .L697 mov r1, #1 str ip, [fp, #-48] str r2, [fp, #-44] @@ -4816,12 +4750,12 @@ ftl_free_no_use_map_blk: ldr r2, [fp, #-44] sub r3, r3, #1 strh r3, [r4, #8] @ movhi -.L692: - add r7, r7, #1 - b .L689 -.L698: - .align 2 .L697: + add r7, r7, #1 + b .L694 +.L703: + .align 2 +.L702: .word .LANCHOR0 .size ftl_free_no_use_map_blk, .-ftl_free_no_use_map_blk .align 2 @@ -4841,15 +4775,15 @@ Ftl_write_map_blk_to_last_page: mov r4, r0 ldr r5, [r0, #12] cmp r3, r2 - bne .L700 + bne .L705 ldrh r3, [r0, #8] cmp r3, #0 - beq .L701 - movw r2, #641 - ldr r1, .L709 - ldr r0, .L709+4 + beq .L706 + movw r2, #677 + ldr r1, .L714 + ldr r0, .L714+4 bl sftl_printk -.L701: +.L706: ldrh r3, [r4, #8] add r3, r3, #1 strh r3, [r4, #8] @ movhi @@ -4861,75 +4795,75 @@ Ftl_write_map_blk_to_last_page: ldr r3, [r4, #28] add r3, r3, #1 str r3, [r4, #28] -.L702: +.L707: mov r0, #0 ldmfd sp, {r4, r5, r6, r7, fp, sp, pc} -.L700: +.L705: lsl r3, r3, #1 ldr r2, [r0, #28] ldr r6, [r0, #24] mov r1, #255 ldrh r7, [r5, r3] ldrh r3, [r0, #2] - ldr r5, .L709+8 + ldr r5, .L714+8 orr r3, r3, r7, lsl #10 - str r3, [r5, #3264] - ldr r3, [r5, #3280] str r3, [r5, #3268] ldr r3, [r5, #3284] str r3, [r5, #3272] + ldr r3, [r5, #3288] + str r3, [r5, #3276] str r2, [r3, #4] - ldr r2, .L709+12 + ldr r2, .L714+12 strh r2, [r3, #8] @ movhi ldrh r2, [r0, #4] strh r7, [r3, #2] @ movhi strh r2, [r3] @ movhi ldrh r2, [r5, #104] - ldr r0, [r5, #3280] + ldr r0, [r5, #3284] lsl r2, r2, #3 bl ftl_memset mov r2, #0 mov r3, r2 -.L703: +.L708: ldrh r0, [r4, #6] uxth r1, r2 cmp r0, r1 - bhi .L705 + bhi .L710 mov r2, #1 mov r3, #0 mov r1, r2 - ldr r0, .L709+16 + ldr r0, .L714+16 bl FlashProgPages ldrh r3, [r4, #2] mov r0, r4 add r3, r3, #1 strh r3, [r4, #2] @ movhi bl ftl_map_blk_gc - b .L702 -.L705: + b .L707 +.L710: uxth r1, r2 ldr r0, [r6, r1, lsl #2] cmp r7, r0, lsr #10 - bne .L704 - ldr r0, [r5, #3280] + bne .L709 + ldr r0, [r5, #3284] add r3, r3, #1 uxth r3, r3 str r1, [r0, r3, lsl #3] ldr r0, [r6, r1, lsl #2] - ldr r1, [r5, #3280] + ldr r1, [r5, #3284] add r1, r1, r3, lsl #3 str r0, [r1, #4] -.L704: - add r2, r2, #1 - b .L703 -.L710: - .align 2 .L709: - .word .LANCHOR1+227 + add r2, r2, #1 + b .L708 +.L715: + .align 2 +.L714: + .word .LANCHOR1+211 .word .LC1 .word .LANCHOR0 .word -1291 - .word .LANCHOR0+3260 + .word .LANCHOR0+3264 .size Ftl_write_map_blk_to_last_page, .-Ftl_write_map_blk_to_last_page .align 2 .global FtlMapWritePage @@ -4943,13 +4877,13 @@ FtlMapWritePage: mov ip, sp push {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc} sub fp, ip, #4 - ldr r7, .L730 + ldr r7, .L736 mov r4, r0 mov r8, r1 mov r9, r2 mov r6, #0 mov r5, r7 -.L712: +.L717: ldr r3, [r7, #2524] add r3, r3, #1 str r3, [r7, #2524] @@ -4957,50 +4891,50 @@ FtlMapWritePage: ldrh r2, [r4, #2] sub r3, r3, #1 cmp r2, r3 - bge .L713 + bge .L718 ldrh r2, [r4] movw r3, #65535 cmp r2, r3 - bne .L714 -.L713: + bne .L719 +.L718: mov r0, r4 bl Ftl_write_map_blk_to_last_page -.L714: +.L719: ldrh r3, [r4] ldr r2, [r4, #12] lsl r3, r3, #1 ldrh r3, [r2, r3] cmp r3, #0 - bne .L715 - movw r2, #699 - ldr r1, .L730+4 - ldr r0, .L730+8 + bne .L720 + movw r2, #735 + ldr r1, .L736+4 + ldr r0, .L736+8 bl sftl_printk -.L715: +.L720: ldrh r2, [r4] ldrh r3, [r4, #10] cmp r2, r3 - bcc .L716 - mov r2, #700 - ldr r1, .L730+4 - ldr r0, .L730+8 + bcc .L721 + mov r2, #736 + ldr r1, .L736+4 + ldr r0, .L736+8 bl sftl_printk -.L716: +.L721: ldrh r3, [r4] mov r1, #16 ldr r2, [r4, #12] - ldr r0, [r5, #3284] + ldr r0, [r5, #3288] lsl r3, r3, #1 ldrh r10, [r2, r3] ldrh r3, [r4, #2] - str r0, [r5, #3272] - str r9, [r5, #3268] + str r0, [r5, #3276] + str r9, [r5, #3272] orr r3, r3, r10, lsl #10 - str r3, [r5, #3264] + str r3, [r5, #3268] bl __memzero - ldr r3, [r5, #3272] + ldr r3, [r5, #3276] ldr r2, [r4, #28] - ldr r0, .L730+12 + ldr r0, .L736+12 strh r8, [r3, #8] @ movhi str r2, [r3, #4] ldrh r2, [r4, #4] @@ -5010,16 +4944,16 @@ FtlMapWritePage: mov r2, r3 mov r1, r3 bl FlashProgPages - ldrh r3, [r4, #2] - add r3, r3, #1 - uxth r3, r3 - strh r3, [r4, #2] @ movhi - ldr r2, [r5, #3260] - cmn r2, #1 - bne .L717 - ldr r1, [r5, #3264] + ldrh r0, [r4, #2] + add r0, r0, #1 + uxth r0, r0 + strh r0, [r4, #2] @ movhi + ldr r3, [r5, #3264] + cmn r3, #1 + bne .L722 + ldr r1, [r5, #3268] add r6, r6, #1 - ldr r0, .L730+16 + ldr r0, .L736+16 uxth r6, r6 bl sftl_printk ldrh r3, [r4, #2] @@ -5028,37 +4962,159 @@ FtlMapWritePage: subls r3, r3, #1 strhls r3, [r4, #2] @ movhi cmp r6, #3 - bls .L719 + bls .L724 mov r2, r6 - ldr r1, [r5, #3264] - ldr r0, .L730+20 + ldr r1, [r5, #3268] + ldr r0, .L736+20 bl sftl_printk -.L720: - b .L720 -.L719: +.L725: + b .L725 +.L724: ldr r3, [r4, #32] cmp r3, #0 - beq .L712 -.L729: - b .L729 -.L717: - cmp r3, #1 - beq .L712 - ldr r2, [r5, #3264] - mov r0, #0 + beq .L717 +.L735: + b .L735 +.L722: + cmp r3, #0 + strhne r10, [r4, #40] @ movhi + cmp r0, #1 + cmpne r3, #256 + moveq r0, #1 + movne r0, #0 + beq .L717 + ldr r2, [r5, #3268] ldr r3, [r4, #24] str r2, [r3, r8, lsl #2] ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc} -.L731: +.L737: .align 2 -.L730: +.L736: + .word .LANCHOR0 + .word .LANCHOR1+242 + .word .LC1 + .word .LANCHOR0+3264 + .word .LC87 + .word .LC88 + .size FtlMapWritePage, .-FtlMapWritePage + .align 2 + .global load_l2p_region + .syntax unified + .arm + .fpu softvfp + .type load_l2p_region, %function +load_l2p_region: + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 1, uses_anonymous_args = 0 + mov ip, sp + push {r4, r5, r6, r7, r8, fp, ip, lr, pc} + sub fp, ip, #4 + ldr r4, .L745 + uxth r6, r0 + uxth r8, r1 + ldrh r3, [r4, #136] + cmp r3, r6 + bcs .L739 + movw r2, #510 + ldr r1, .L745+4 + ldr r0, .L745+8 + bl sftl_printk +.L739: + ldr r3, [r4, #3892] + mov r5, #12 + ldr r7, [r3, r6, lsl #2] + cmp r7, #0 + bne .L740 + mul r5, r5, r8 + ldr r3, [r4, #2492] + ldrh r2, [r4, #110] + mov r1, #255 + add r3, r3, r5 + ldr r0, [r3, #8] + bl ftl_memset + ldr r3, [r4, #2492] + strh r6, [r3, r5] @ movhi + ldr r3, [r4, #2492] + add r5, r3, r5 + str r7, [r5, #4] +.L741: + mov r0, #0 + ldmfd sp, {r4, r5, r6, r7, r8, fp, sp, pc} +.L740: + mul r5, r5, r8 + ldr r3, [r4, #2492] + mov r2, #1 + ldr r0, .L745+12 + mov r1, r2 + str r7, [r4, #3268] + add r3, r3, r5 + ldr r3, [r3, #8] + str r3, [r4, #3272] + ldr r3, [r4, #3288] + str r3, [r4, #3276] + bl FlashReadPages + ldr r3, [r4, #3264] + ldr r8, [r4, #3276] + cmp r3, #256 + bne .L742 + mov r2, r7 + mov r1, r6 + ldr r0, .L745+16 + bl sftl_printk + ldr r0, .L745+20 + lsr r3, r7, #10 + mov r1, r6 + strh r3, [r0, #40] @ movhi + ldr r3, [r4, #2492] + add r3, r3, r5 + ldr r2, [r3, #8] + bl FtlMapWritePage +.L742: + ldrh r3, [r8, #8] + cmp r3, r6 + beq .L743 + mov r2, r7 + mov r1, r6 + ldr r0, .L745+24 + bl sftl_printk + mov r3, #4 + ldr r1, [r4, #3276] + mov r2, r3 + ldr r0, .L745+28 + bl rknand_print_hex + ldrh r3, [r4, #136] + mov r2, #4 + ldr r1, [r4, #3892] + ldr r0, .L745+32 + bl rknand_print_hex +.L743: + ldrh r3, [r8, #8] + cmp r3, r6 + beq .L744 + movw r2, #535 + ldr r1, .L745+4 + ldr r0, .L745+8 + bl sftl_printk +.L744: + ldr r3, [r4, #2492] + mov r1, #0 + add r2, r3, r5 + str r1, [r2, #4] + strh r6, [r3, r5] @ movhi + b .L741 +.L746: + .align 2 +.L745: .word .LANCHOR0 .word .LANCHOR1+258 .word .LC1 - .word .LANCHOR0+3260 + .word .LANCHOR0+3264 + .word .LC89 + .word .LANCHOR0+3908 .word .LC90 .word .LC91 - .size FtlMapWritePage, .-FtlMapWritePage + .word .LC92 + .size load_l2p_region, .-load_l2p_region .align 2 .global ftl_map_blk_gc .syntax unified @@ -5076,20 +5132,39 @@ ftl_map_blk_gc: ldr r6, [r0, #12] ldr r9, [r0, #24] bl ftl_free_no_use_map_blk - ldrh r3, [r4, #10] + ldrh ip, [r4, #10] ldrh r2, [r4, #8] - ldr r5, .L744 - sub r3, r3, #4 + ldrh r1, [r4, #40] + sub r3, ip, #4 + ldr r5, .L770 cmp r2, r3 - blt .L733 + bge .L748 + movw r3, #65535 + cmp r1, r3 + beq .L750 + ldrh r2, [r4, #2] + ldrh r3, [r5, #104] + cmp r2, r3 + bcc .L751 +.L748: + movw r3, #65535 uxth r0, r0 + cmp r1, r3 + beq .L752 + ldrh r2, [r5, #104] + ldrh r3, [r4, #2] + cmp r2, r3 + subls lr, r6, #2 + movls r2, #0 + bls .L753 +.L752: lsl r0, r0, #1 ldrh r8, [r6, r0] cmp r8, #0 - beq .L733 + beq .L750 ldr r3, [r4, #32] cmp r3, #0 - bne .L733 + bne .L750 mov r2, #1 str r2, [r4, #32] strh r3, [r6, r0] @ movhi @@ -5099,78 +5174,112 @@ ftl_map_blk_gc: strh r3, [r4, #8] @ movhi ldrh r3, [r5, #104] cmp r2, r3 - bcc .L734 + bcc .L757 mov r0, r4 bl ftl_map_blk_alloc_new_blk -.L734: - ldr r10, .L744+4 +.L757: mov r6, #0 -.L735: - ldrh r2, [r4, #6] - uxth r3, r6 - cmp r2, r3 - bhi .L739 +.L758: + ldrh r3, [r4, #6] + uxth r10, r6 + cmp r3, r10 + bhi .L765 mov r1, #1 mov r0, r8 bl FtlFreeSysBlkQueueIn mov r3, #0 str r3, [r4, #32] -.L733: +.L750: ldrh r2, [r4, #2] ldrh r3, [r5, #104] cmp r2, r3 - bcc .L740 + bcc .L751 mov r0, r4 bl ftl_map_blk_alloc_new_blk -.L740: +.L751: mov r0, #0 sub sp, fp, #40 ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc} -.L739: +.L755: + ldrh r10, [lr, #2]! + add r8, r2, #1 + cmp r10, r1 + beq .L754 + mov r2, r8 +.L753: + uxth r7, r2 + cmp r7, ip + bcc .L755 + mov r7, r0 +.L754: + uxth r2, r2 + ldr r0, .L770+4 + lsl r2, r2, #1 + ldrh r2, [r6, r2] + bl sftl_printk + mvn r3, #0 + mov r0, r7 + strh r3, [r4, #40] @ movhi + b .L752 +.L765: uxth r7, r6 - ldr r2, [r9, r7, lsl #2] - cmp r8, r2, lsr #10 - bne .L736 - ldr ip, [r5, #3284] - ldr r2, [r5, #3844] - ldr r0, .L744+8 - str ip, [r5, #3272] - str r2, [r5, #3268] + add r3, r9, r7, lsl #2 + str r3, [fp, #-44] + ldr r3, [r9, r7, lsl #2] + cmp r8, r3, lsr #10 + bne .L759 + ldr r3, [r5, #3848] + ldr r0, .L770+8 + str r3, [r5, #3272] + ldr r3, [r5, #3288] + str r3, [r5, #3276] ldr r2, [r9, r7, lsl #2] str r3, [fp, #-48] - str ip, [fp, #-44] - str r2, [r5, #3264] + str r2, [r5, #3268] mov r2, #1 mov r1, r2 bl FlashReadPages - ldr ip, [fp, #-44] ldr r3, [fp, #-48] - ldrh r2, [ip, #8] - cmp r2, r3 - beq .L737 - movw r2, #613 - mov r1, r10 - ldr r0, .L744+12 + ldrh r2, [r3, #8] + cmp r2, r10 + beq .L760 + movw r2, #647 + ldr r1, .L770+12 + ldr r0, .L770+16 bl sftl_printk -.L737: - ldr r3, [r5, #3260] - cmn r3, #1 - moveq r3, #0 - streq r3, [r9, r7, lsl #2] - beq .L736 - ldr r2, [r5, #3268] + ldr r3, [fp, #-48] +.L760: + ldr r2, [r5, #3264] + cmn r2, #1 + bne .L761 +.L763: + ldr r2, [fp, #-44] + mov r3, #0 + str r3, [r2] +.L762: + b .L762 +.L761: + ldrh r2, [r3, #8] + cmp r2, r10 + bne .L763 + ldrh r2, [r3] + ldrh r3, [r4, #4] + cmp r2, r3 + bne .L763 + ldr r2, [r5, #3272] mov r1, r7 mov r0, r4 bl FtlMapWritePage -.L736: +.L759: add r6, r6, #1 - b .L735 -.L745: + b .L758 +.L771: .align 2 -.L744: +.L770: .word .LANCHOR0 + .word .LC93 + .word .LANCHOR0+3264 .word .LANCHOR1+274 - .word .LANCHOR0+3260 .word .LC1 .size ftl_map_blk_gc, .-ftl_map_blk_gc .align 2 @@ -5185,12 +5294,13 @@ flush_l2p_region: mov ip, sp push {r4, r5, fp, ip, lr, pc} sub fp, ip, #4 - ldr r5, .L747 + ldr r5, .L773 uxth r0, r0 mov r4, #12 mul r4, r4, r0 ldr r3, [r5, #2492] add r0, r5, #3904 + add r0, r0, #4 add r2, r3, r4 ldrh r1, [r3, r4] ldr r2, [r2, #8] @@ -5202,9 +5312,9 @@ flush_l2p_region: bic r3, r3, #-2147483648 str r3, [r4, #4] ldmfd sp, {r4, r5, fp, sp, pc} -.L748: +.L774: .align 2 -.L747: +.L773: .word .LANCHOR0 .size flush_l2p_region, .-flush_l2p_region .align 2 @@ -5221,7 +5331,7 @@ log2phys: sub fp, ip, #4 sub sp, sp, #4 mvn r6, #0 - ldr r4, .L763 + ldr r4, .L789 mov r7, r1 mov r10, r2 ldrh r3, [r4, #108] @@ -5232,20 +5342,20 @@ log2phys: uxth r8, r9 uxth r6, r6 cmp r0, r3 - bcc .L750 - mov r2, #808 - ldr r1, .L763+4 - ldr r0, .L763+8 + bcc .L776 + movw r2, #847 + ldr r1, .L789+4 + ldr r0, .L789+8 bl sftl_printk -.L750: +.L776: ldrh r1, [r4, #138] mov r2, #0 ldr r0, [r4, #2492] mov r3, #12 -.L751: +.L777: uxth r5, r2 cmp r5, r1 - bcc .L756 + bcc .L782 str r3, [fp, #-44] bl select_l2p_ram_region ldr r3, [fp, #-44] @@ -5256,32 +5366,32 @@ log2phys: ldrh r2, [r2, r3] movw r3, #65535 cmp r2, r3 - beq .L757 + beq .L783 ldr r3, [r1, #4] cmp r3, #0 - bge .L757 + bge .L783 bl flush_l2p_region -.L757: +.L783: mov r1, r5 uxth r0, r9 bl load_l2p_region - b .L752 -.L756: + b .L778 +.L782: add r2, r2, #1 mla ip, r3, r2, r0 ldrh ip, [ip, #-12] cmp ip, r8 - bne .L751 -.L752: + bne .L777 +.L778: cmp r10, #0 mov r3, #12 - bne .L753 + bne .L779 ldr r2, [r4, #2492] mla r3, r3, r5, r2 ldr r3, [r3, #8] ldr r3, [r3, r6, lsl #2] str r3, [r7] -.L754: +.L780: ldr r2, [r4, #2492] mov r3, #12 mov r0, #0 @@ -5291,7 +5401,7 @@ log2phys: addne r3, r3, #1 strne r3, [r5, #4] ldmib sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc} -.L753: +.L779: mul r3, r3, r5 ldr r2, [r4, #2492] ldr r1, [r7] @@ -5303,12 +5413,12 @@ log2phys: ldr r2, [r3, #4] orr r2, r2, #-2147483648 str r2, [r3, #4] - ldr r3, .L763+12 + ldr r3, .L789+12 strh r8, [r3] @ movhi - b .L754 -.L764: + b .L780 +.L790: .align 2 -.L763: +.L789: .word .LANCHOR0 .word .LANCHOR1+289 .word .LC1 @@ -5328,7 +5438,7 @@ FtlReUsePrevPpa: sub fp, ip, #4 sub sp, sp, #4 mov r6, r0 - ldr r7, .L775 + ldr r7, .L801 ubfx r0, r1, #10, #16 str r1, [fp, #-32] bl P2V_block_in_plane @@ -5336,34 +5446,34 @@ FtlReUsePrevPpa: lsl r5, r0, #1 ldrh r3, [r2, r5] cmp r3, #0 - bne .L766 + bne .L792 ldr r4, [r7, #2340] cmp r4, #0 - beq .L767 + beq .L793 movw r2, #2344 movw lr, #65535 ldrh ip, [r7, r2] ldr r2, [r7, #2316] sub r4, r4, r2 ubfx r4, r4, #3, #16 -.L768: +.L794: uxth r1, r3 cmp ip, r1 - bls .L767 + bls .L793 cmp r4, r0 - bne .L769 + bne .L795 mov r1, r4 - ldr r0, .L775+4 + ldr r0, .L801+4 bl List_remove_node movw r3, #2344 ldrh r3, [r7, r3] cmp r3, #0 - bne .L770 - movw r2, #1688 - ldr r1, .L775+8 - ldr r0, .L775+12 + bne .L796 + movw r2, #1737 + ldr r1, .L801+8 + ldr r0, .L801+12 bl sftl_printk -.L770: +.L796: movw r2, #2344 mov r0, r4 ldrh r3, [r7, r2] @@ -5372,25 +5482,25 @@ FtlReUsePrevPpa: bl INSERT_DATA_LIST ldr r2, [r7, #2324] ldrh r3, [r2, r5] -.L766: +.L792: add r3, r3, #1 strh r3, [r2, r5] @ movhi - b .L767 -.L769: + b .L793 +.L795: lsl r4, r4, #3 add r3, r3, #1 ldrh r4, [r2, r4] cmp r4, lr - bne .L768 -.L767: + bne .L794 +.L793: mov r2, #1 sub r1, fp, #32 mov r0, r6 bl log2phys ldmib sp, {r4, r5, r6, r7, fp, sp, pc} -.L776: +.L802: .align 2 -.L775: +.L801: .word .LANCHOR0 .word .LANCHOR0+2340 .word .LANCHOR1+298 @@ -5410,55 +5520,55 @@ ftl_scan_all_data: sub fp, ip, #4 sub sp, sp, #24 mov r5, #0 - ldr r6, .L785 + ldr r6, .L811 mov r1, #0 - ldr r0, .L785+4 + ldr r0, .L811+4 bl sftl_printk mov r4, r6 -.L778: +.L804: ldr r3, [r6, #2504] cmp r5, r3 - bcc .L784 + bcc .L810 sub sp, fp, #28 ldmfd sp, {r4, r5, r6, r7, fp, sp, pc} -.L784: +.L810: mov r2, #0 sub r1, fp, #32 mov r0, r5 bl log2phys ubfx r3, r5, #0, #11 cmp r3, #0 - bne .L779 + bne .L805 ldr r2, [fp, #-32] mov r1, r5 - ldr r0, .L785+8 + ldr r0, .L811+8 bl sftl_printk -.L779: +.L805: ldr r3, [fp, #-32] cmn r3, #1 - beq .L781 - str r3, [r4, #3264] - mov r2, #0 - ldr r3, [r4, #3280] - mov r1, #1 - ldr r7, [r4, #3284] - ldr r0, .L785+12 + beq .L807 str r3, [r4, #3268] - str r5, [r4, #3276] - str r7, [r4, #3272] - str r2, [r4, #3260] + mov r2, #0 + ldr r3, [r4, #3284] + mov r1, #1 + ldr r7, [r4, #3288] + ldr r0, .L811+12 + str r3, [r4, #3272] + str r5, [r4, #3280] + str r7, [r4, #3276] + str r2, [r4, #3264] bl FlashReadPages - ldr r3, [r4, #3260] + ldr r3, [r4, #3264] cmn r3, #1 cmpne r3, #256 - beq .L782 + beq .L808 ldr r3, [r7, #8] cmp r5, r3 - beq .L781 -.L782: - ldr r2, [r4, #3268] - ldr r3, [r4, #3272] - ldr r0, .L785+16 + beq .L807 +.L808: + ldr r2, [r4, #3272] + ldr r3, [r4, #3276] + ldr r0, .L811+16 ldr r1, [r2, #4] str r1, [sp, #16] mov r1, r5 @@ -5471,19 +5581,19 @@ ftl_scan_all_data: ldr r2, [r3, #4] str r2, [sp] ldr r3, [r3] - ldr r2, [r4, #3264] + ldr r2, [r4, #3268] bl sftl_printk -.L781: +.L807: add r5, r5, #1 - b .L778 -.L786: + b .L804 +.L812: .align 2 -.L785: +.L811: .word .LANCHOR0 - .word .LC92 - .word .LC93 - .word .LANCHOR0+3260 .word .LC94 + .word .LC95 + .word .LANCHOR0+3264 + .word .LC96 .size ftl_scan_all_data, .-ftl_scan_all_data .align 2 .global FtlReadRefresh @@ -5498,21 +5608,21 @@ FtlReadRefresh: push {r4, r5, fp, ip, lr, pc} sub fp, ip, #4 sub sp, sp, #88 - ldr r3, .L800 + ldr r3, .L826 ldr r0, [r3, #2716] mov r4, r3 cmp r0, #0 - beq .L788 + beq .L814 ldr r1, [r3, #2720] ldr r2, [r3, #2504] cmp r1, r2 - bcs .L789 + bcs .L815 mov r5, #2048 -.L794: +.L820: ldr r0, [r4, #2720] ldr r3, [r4, #2504] cmp r0, r3 - bcs .L791 + bcs .L817 mov r2, #0 sub r1, fp, #108 bl log2phys @@ -5521,10 +5631,10 @@ FtlReadRefresh: cmn r2, #1 add r3, r3, #1 str r3, [r4, #2720] - beq .L792 + beq .L818 str r3, [fp, #-88] sub r0, fp, #20 - ldr r3, .L800+4 + ldr r3, .L826+4 mov r1, #1 str r2, [fp, #-100] mov r2, #0 @@ -5535,53 +5645,53 @@ FtlReadRefresh: bl FlashReadPages ldr r3, [fp, #-104] cmp r3, #256 - bne .L791 + bne .L817 ldr r0, [fp, #-108] ubfx r0, r0, #10, #16 bl P2V_block_in_plane bl FtlGcRefreshBlock -.L791: +.L817: mvn r0, #0 -.L787: +.L813: sub sp, fp, #20 ldmfd sp, {r4, r5, fp, sp, pc} -.L792: +.L818: subs r5, r5, #1 - bne .L794 - b .L791 -.L789: + bne .L820 + b .L817 +.L815: ldr r2, [r3, #2508] mov r0, #0 str r0, [r3, #2716] str r0, [r3, #2720] str r2, [r3, #2712] - b .L787 -.L788: + b .L813 +.L814: ldr r1, [r3, #2508] ldr r2, [r3, #2712] add ip, r1, #1048576 cmp r2, ip - bhi .L797 + bhi .L823 ldr r3, [r3, #2564] mov ip, #33554432 lsr r3, r3, #10 add r2, r2, ip, asr r3 cmp r1, r2 - bhi .L797 - ldr r3, .L800+8 + bhi .L823 + ldr r3, .L826+8 ldrb r3, [r3, #28] @ zero_extendqisi2 cmp r3, #0 - bne .L787 -.L797: + bne .L813 +.L823: mov r3, #1 mov r0, #0 str r3, [r4, #2716] str r0, [r4, #2720] str r1, [r4, #2712] - b .L787 -.L801: + b .L813 +.L827: .align 2 -.L800: +.L826: .word .LANCHOR0 .word ftl_temp_buf .word .LANCHOR0+2268 @@ -5600,116 +5710,116 @@ ftl_check_vpc: sub fp, ip, #4 sub sp, sp, #4 mov r4, #0 - ldr r6, .L826 - ldr r1, .L826+4 - ldr r0, .L826+8 + ldr r6, .L852 + ldr r1, .L852+4 + ldr r0, .L852+8 mov r5, r6 bl sftl_printk mov r1, #8192 - ldr r0, .L826+12 + ldr r0, .L852+12 bl __memzero -.L803: +.L829: ldr r3, [r6, #2504] cmp r4, r3 - bcc .L805 - ldr r8, .L826+12 + bcc .L831 + ldr r8, .L852+12 mov r4, #0 - ldr r9, .L826+16 + ldr r9, .L852+16 mov r6, r4 -.L806: +.L832: ldrh r2, [r5, #40] uxth r3, r4 cmp r2, r3 - bhi .L808 + bhi .L834 ldr r4, [r5, #2340] cmp r4, #0 - beq .L809 + beq .L835 movw r3, #2344 - ldr r9, .L826+12 + ldr r9, .L852+12 ldrh r8, [r5, r3] mov r7, #0 ldr r3, [r5, #2316] - ldr r10, .L826+20 + ldr r10, .L852+20 sub r4, r4, r3 ubfx r4, r4, #3, #16 -.L810: +.L836: uxth r3, r7 cmp r8, r3 - bls .L809 + bls .L835 ldr r2, [r5, #2324] lsl r3, r4, #1 ldrh r2, [r2, r3] cmp r2, #0 - beq .L811 + beq .L837 mov r6, #1 ldrh r3, [r9, r3] mov r1, r4 mov r0, r10 bl sftl_printk -.L811: +.L837: ldr r3, [r5, #2316] lsl r4, r4, #3 add r7, r7, #1 ldrh r4, [r3, r4] movw r3, #65535 cmp r4, r3 - bne .L810 -.L809: + bne .L836 +.L835: cmp r6, #0 ldmibeq sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc} - movw r2, #2321 - ldr r1, .L826+4 - ldr r0, .L826+24 + movw r2, #2373 + ldr r1, .L852+4 + ldr r0, .L852+24 bl sftl_printk ldmib sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc} -.L805: +.L831: mov r2, #0 sub r1, fp, #44 mov r0, r4 bl log2phys ldr r0, [fp, #-44] cmn r0, #1 - beq .L804 + beq .L830 ubfx r0, r0, #10, #16 bl P2V_block_in_plane - ldr r2, .L826+12 + ldr r2, .L852+12 lsl r0, r0, #1 ldrh r3, [r2, r0] add r3, r3, #1 strh r3, [r2, r0] @ movhi -.L804: +.L830: add r4, r4, #1 - b .L803 -.L808: + b .L829 +.L834: uxth r1, r4 ldr r3, [r5, #2324] lsl r7, r1, #1 ldrh r2, [r3, r7] ldrh r3, [r8, r7] cmp r2, r3 - beq .L807 + beq .L833 mov r0, r9 bl sftl_printk ldr r3, [r5, #2324] movw r2, #65535 ldrh r3, [r3, r7] cmp r3, r2 - beq .L807 + beq .L833 ldrh r2, [r8, r7] cmp r2, r3 movhi r6, #1 -.L807: +.L833: add r4, r4, #1 - b .L806 -.L827: + b .L832 +.L853: .align 2 -.L826: +.L852: .word .LANCHOR0 .word .LANCHOR1+314 - .word .LC95 - .word check_vpc_table - .word .LC96 .word .LC97 + .word check_vpc_table + .word .LC98 + .word .LC99 .word .LC1 .size ftl_check_vpc, .-ftl_check_vpc .align 2 @@ -5731,39 +5841,38 @@ FtlMapBlkWriteDump_data: mov r3, #0 ldrh r5, [r0, #6] str r3, [r0, #36] - ldr r3, .L835 + ldr r3, .L861 ldr r2, [r0, #24] sub r5, r5, #1 uxth r5, r5 - ldr r0, [r3, #3844] + ldr r0, [r3, #3848] mov r4, r3 - ldr r1, [r3, #3284] - str r0, [r3, #3268] - str r1, [r3, #3272] + ldr r1, [r3, #3288] + str r0, [r3, #3272] + str r1, [r3, #3276] ldr r2, [r2, r5, lsl #2] cmp r2, #0 - str r2, [r3, #3264] - beq .L830 + str r2, [r3, #3268] + beq .L856 mov r2, #1 - ldr r0, .L835+4 + add r0, r3, #3264 mov r1, r2 bl FlashReadPages -.L831: - ldr r2, [r4, #3268] +.L857: + ldr r2, [r4, #3272] mov r1, r5 mov r0, r6 bl FtlMapWritePage ldmfd sp, {r4, r5, r6, fp, sp, pc} -.L830: +.L856: ldrh r2, [r3, #110] mov r1, #255 bl ftl_memset - b .L831 -.L836: + b .L857 +.L862: .align 2 -.L835: +.L861: .word .LANCHOR0 - .word .LANCHOR0+3260 .size FtlMapBlkWriteDump_data, .-FtlMapBlkWriteDump_data .align 2 .global FtlScanSysBlk @@ -5779,24 +5888,24 @@ FtlScanSysBlk: sub fp, ip, #4 sub sp, sp, #24 mov r5, #0 - ldr r4, .L918 - movw r3, #3944 + ldr r4, .L944 mov r1, r5 ldr r2, [r4, #128] + add r3, r4, #3952 + ldr r0, [r4, #3896] mov r6, r4 - ldr r0, [r4, #3892] - strh r5, [r4, r3] @ movhi + strh r5, [r3] @ movhi strh r5, [r4, #144] @ movhi lsl r2, r2, #2 bl ftl_memset ldr r2, [r4, #128] mov r1, r5 - ldr r0, [r4, #3868] + ldr r0, [r4, #3872] lsl r2, r2, #1 bl ftl_memset ldrh r2, [r4, #120] mov r1, r5 - ldr r0, [r4, #3880] + ldr r0, [r4, #3884] lsl r2, r2, #2 bl ftl_memset ldrh r2, [r4, #120] @@ -5811,22 +5920,22 @@ FtlScanSysBlk: str r3, [r4, #2584] ldrh r3, [r4, #40] str r3, [fp, #-44] -.L838: +.L864: ldrh r3, [r6, #42] ldr r2, [fp, #-44] cmp r3, r2 - bls .L879 + bls .L905 ldr r1, [r6, #3176] mov r7, #0 ldrh r2, [r6, #32] mov r10, r7 - ldr r8, [r6, #3832] + ldr r8, [r6, #3836] ldr r3, [r6, #3172] str r1, [fp, #-48] ldrh r9, [r6, #112] - ldr ip, .L918+4 - b .L880 -.L840: + ldr ip, .L944+4 + b .L906 +.L866: ldrb r0, [ip, r7] @ zero_extendqisi2 ldr r1, [fp, #-44] str r3, [fp, #-64] @@ -5839,7 +5948,7 @@ FtlScanSysBlk: ldr ip, [fp, #-56] ldr r2, [fp, #-60] ldr r3, [fp, #-64] - bne .L839 + bne .L865 mov r1, #20 mla r0, r1, r10, r8 ldr r1, [fp, #-52] @@ -5855,35 +5964,35 @@ FtlScanSysBlk: str r1, [r0, #12] add r1, r10, #1 uxth r10, r1 -.L839: +.L865: add r7, r7, #1 -.L880: +.L906: uxth r1, r7 cmp r2, r1 - bhi .L840 + bhi .L866 cmp r10, #0 - bne .L841 -.L878: + bne .L867 +.L904: ldr r3, [fp, #-44] add r3, r3, #1 uxth r3, r3 str r3, [fp, #-44] - b .L838 -.L841: + b .L864 +.L867: mov r2, #1 mov r1, r10 mov r0, r8 bl FlashReadPages mov r3, #0 -.L917: +.L943: str r3, [fp, #-48] ldrh r3, [fp, #-48] cmp r10, r3 - bls .L878 + bls .L904 ldr r3, [fp, #-48] mov r9, #20 mul r9, r9, r3 - ldr r3, [r4, #3832] + ldr r3, [r4, #3836] add r2, r3, r9 ldr r3, [r3, r9] ldr r1, [r2, #4] @@ -5891,10 +6000,10 @@ FtlScanSysBlk: cmn r3, #1 lsr ip, r1, #10 uxth r8, ip - bne .L845 + bne .L871 mov r3, #16 -.L847: - ldr r0, [r4, #3832] +.L873: + ldr r0, [r4, #3836] str ip, [fp, #-56] str r3, [fp, #-52] add r0, r0, r9 @@ -5909,75 +6018,75 @@ FtlScanSysBlk: ldr ip, [fp, #-56] cmp r2, r3 ldr r3, [fp, #-52] - bne .L844 - ldr r3, [r4, #3832] + bne .L870 + ldr r3, [r4, #3836] mvn r2, #0 str r2, [r3, r9] - ldr r3, [r4, #3832] + ldr r3, [r4, #3836] ldr r3, [r3, r9] cmp r3, r2 - bne .L845 -.L846: + bne .L871 +.L872: mov r1, #0 uxth r0, ip bl FtlFreeSysBlkQueueIn - b .L850 -.L844: - ldr r2, [r4, #3832] + b .L876 +.L870: + ldr r2, [r4, #3836] ldr r2, [r2, r9] cmn r2, #1 - bne .L845 + bne .L871 sub r3, r3, #1 uxth r3, r3 cmp r3, #0 - bne .L847 - b .L846 -.L845: + bne .L873 + b .L872 +.L871: ldr r2, [r6, #2540] ldr r3, [r7, #4] cmn r2, #1 - beq .L848 + beq .L874 cmp r2, r3 - bhi .L849 -.L848: + bhi .L875 +.L874: cmn r3, #1 addne r2, r3, #1 strne r2, [r5, #2540] -.L849: +.L875: ldrh r2, [r7] movw r1, #61604 cmp r2, r1 - beq .L851 - bhi .L852 + beq .L877 + bhi .L878 movw r3, #61574 cmp r2, r3 - beq .L853 -.L850: + beq .L879 +.L876: ldr r3, [fp, #-48] add r3, r3, #1 - b .L917 -.L852: + b .L943 +.L878: movw r3, #61634 cmp r2, r3 - beq .L854 + beq .L880 movw r3, #65535 cmp r2, r3 - beq .L846 - b .L850 -.L854: - ldr r9, .L918+8 + beq .L872 + b .L876 +.L880: + ldr r9, .L944+8 ldr r3, [r4, #128] ldrh r2, [r9] cmp r2, r3 - bls .L856 - movw r2, #1211 - ldr r1, .L918+12 - ldr r0, .L918+16 + bls .L882 + movw r2, #1256 + ldr r1, .L944+12 + ldr r0, .L944+16 bl sftl_printk -.L856: +.L882: ldr r0, [r4, #128] ldrh r2, [r9] - ldr ip, [r4, #3892] + ldr ip, [r4, #3896] uxth r1, r0 sub r3, r1, #1 sub r1, r1, r2 @@ -5985,104 +6094,104 @@ FtlScanSysBlk: sxth r3, r3 sxth r1, r1 str r1, [fp, #-52] -.L857: +.L883: ldr r1, [fp, #-52] cmp r3, r1 - bgt .L863 + bgt .L889 cmp r3, #0 - bge .L895 - b .L850 -.L863: + bge .L921 + b .L876 +.L889: lsl lr, r3, #2 ldr r1, [r7, #4] str lr, [fp, #-56] ldr lr, [ip, r3, lsl #2] cmp r1, lr - bls .L858 + bls .L884 ldr r1, [ip] cmp r1, #0 - bne .L859 + bne .L885 cmp r0, r2 addne r2, r2, #1 strhne r2, [r9] @ movhi -.L859: +.L885: uxth ip, r3 mov r1, #0 -.L860: +.L886: uxth r0, r1 sxth r2, r1 cmp ip, r0 - bhi .L861 + bhi .L887 ldr r1, [r7, #4] cmp r3, #0 - ldr r2, [r5, #3892] + ldr r2, [r5, #3896] ldr r0, [fp, #-56] str r1, [r2, r0] lsl r2, r3, #1 - ldr r1, [r5, #3868] + ldr r1, [r5, #3872] strh r8, [r1, r2] @ movhi - blt .L850 - ldr r2, .L918+8 + blt .L876 + ldr r2, .L944+8 ldr r1, [r5, #128] ldrh r2, [r2] sub r1, r1, r2 sub r1, r1, #1 sxth r1, r1 cmp r3, r1 - bgt .L850 -.L895: + bgt .L876 +.L921: add r2, r2, #1 ldr r1, [r7, #4] strh r2, [r9] @ movhi - ldr r2, [r4, #3892] + ldr r2, [r4, #3896] str r1, [r2, r3, lsl #2] lsl r3, r3, #1 - ldr r2, [r4, #3868] -.L915: + ldr r2, [r4, #3872] +.L941: strh r8, [r2, r3] @ movhi - b .L850 -.L861: - ldr r0, [r6, #3892] + b .L876 +.L887: + ldr r0, [r6, #3896] add r1, r1, #1 add lr, r0, r2, lsl #2 ldr lr, [lr, #4] str lr, [r0, r2, lsl #2] lsl r2, r2, #1 - ldr r0, [r6, #3868] + ldr r0, [r6, #3872] add lr, r0, r2 ldrh lr, [lr, #2] strh lr, [r0, r2] @ movhi - b .L860 -.L858: + b .L886 +.L884: sub r3, r3, #1 sxth r3, r3 - b .L857 -.L853: + b .L883 +.L879: ldrh r2, [r4, #144] ldrh r3, [r4, #120] cmp r2, r3 - bls .L866 - movw r2, #1252 - ldr r1, .L918+12 - ldr r0, .L918+16 + bls .L892 + movw r2, #1297 + ldr r1, .L944+12 + ldr r0, .L944+16 bl sftl_printk -.L866: +.L892: ldrh r2, [r4, #120] ldrh r1, [r4, #144] - ldr ip, [r4, #3880] + ldr ip, [r4, #3884] sub r0, r2, #1 sxth r3, r0 sub r0, r0, r1 str r0, [fp, #-52] -.L867: +.L893: ldr r0, [fp, #-52] cmp r3, r0 - ble .L872 + ble .L898 ldr r9, [ip, r3, lsl #2] lsl lr, r3, #2 ldr r0, [r7, #4] cmp r0, r9 - bls .L868 + bls .L894 sub r2, r2, r1 ldr r0, [ip] clz r2, r2 @@ -6094,37 +6203,37 @@ FtlScanSysBlk: addeq r1, r1, #1 strheq r1, [r5, #144] @ movhi mov r1, #0 -.L870: +.L896: uxth r0, r1 sxth r2, r1 cmp ip, r0 - bhi .L871 + bhi .L897 ldr r1, [r7, #4] - ldr r2, [r5, #3880] + ldr r2, [r5, #3884] str r1, [r2, lr] lsl r2, r3, #1 ldr r1, [r5, #148] strh r8, [r1, r2] @ movhi -.L872: +.L898: cmp r3, #0 - blt .L850 + blt .L876 ldrh r2, [r5, #120] ldrh r1, [r5, #144] sub r2, r2, #1 sub r2, r2, r1 sxth r2, r2 cmp r3, r2 - bgt .L850 + bgt .L876 add r1, r1, #1 - ldr r2, [r5, #3880] + ldr r2, [r5, #3884] strh r1, [r5, #144] @ movhi ldr r1, [r7, #4] str r1, [r2, r3, lsl #2] lsl r3, r3, #1 ldr r2, [r5, #148] - b .L915 -.L871: - ldr r0, [r6, #3880] + b .L941 +.L897: + ldr r0, [r6, #3884] add r1, r1, #1 add r9, r0, r2, lsl #2 ldr r9, [r9, #4] @@ -6134,135 +6243,135 @@ FtlScanSysBlk: add r9, r0, r2 ldrh r9, [r9, #2] strh r9, [r0, r2] @ movhi - b .L870 -.L868: + b .L896 +.L894: sub r3, r3, #1 sxth r3, r3 - b .L867 -.L851: - ldr r9, .L918+20 + b .L893 +.L877: + ldr r9, .L944+20 movw r2, #65535 ldrh r1, [r9] cmp r1, r2 strheq r8, [r9] @ movhi - beq .L916 + beq .L942 ldrh r0, [r9, #4] cmp r0, r2 - beq .L875 + beq .L901 mov r1, #1 bl FtlFreeSysBlkQueueIn -.L875: +.L901: ldr r3, [r7, #4] ldr r2, [r4, #2584] cmp r2, r3 strhcs r8, [r9, #4] @ movhi - bcs .L850 + bcs .L876 ldrh r3, [r9] strh r8, [r9] @ movhi strh r3, [r9, #4] @ movhi ldr r3, [r7, #4] -.L916: +.L942: str r3, [r4, #2584] - b .L850 -.L879: - ldr r2, [r6, #3868] + b .L876 +.L905: + ldr r2, [r6, #3872] ldrh r3, [r2] cmp r3, #0 - beq .L881 -.L884: + beq .L907 +.L910: ldr r1, [r4, #148] ldrh r2, [r1] cmp r2, #0 - beq .L882 -.L883: - movw r3, #3944 - ldrh r2, [r4, r3] + beq .L908 +.L909: + ldr r3, .L944+8 + ldrh r2, [r3] ldr r3, [r4, #128] cmp r2, r3 - bls .L914 - movw r2, #1377 - ldr r1, .L918+12 - ldr r0, .L918+16 + bls .L940 + movw r2, #1422 + ldr r1, .L944+12 + ldr r0, .L944+16 bl sftl_printk -.L914: +.L940: mov r0, #0 sub sp, fp, #40 ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc} -.L881: - movw r1, #3944 - ldrh r1, [r6, r1] +.L907: + ldr r1, .L944+8 + ldrh r1, [r1] cmp r1, #0 ldrne r1, [r6, #128] - beq .L884 -.L885: + beq .L910 +.L911: sxth ip, r3 cmp ip, r1 - bcs .L884 + bcs .L910 lsl r0, ip, #1 add r3, r3, #1 ldrh r0, [r2, r0] cmp r0, #0 - beq .L885 + beq .L911 mov r3, ip mov lr, #0 -.L886: +.L912: ldr r2, [r5, #128] cmp r3, r2 - bcs .L884 - ldr r1, [r5, #3868] + bcs .L910 + ldr r1, [r5, #3872] lsl r2, r3, #1 sub r0, r3, ip lsl r6, r0, #1 ldrh r7, [r1, r2] strh r7, [r1, r6] @ movhi - ldr r1, [r5, #3892] + ldr r1, [r5, #3896] ldr r6, [r1, r3, lsl #2] add r3, r3, #1 sxth r3, r3 str r6, [r1, r0, lsl #2] - ldr r1, [r5, #3868] + ldr r1, [r5, #3872] strh lr, [r1, r2] @ movhi - b .L886 -.L882: + b .L912 +.L908: ldrh r3, [r4, #144] cmp r3, #0 ldrhne r0, [r4, #120] - beq .L883 -.L891: + beq .L909 +.L917: sxth r3, r2 cmp r3, r0 mov ip, r3 - bge .L883 + bge .L909 lsl lr, r3, #1 add r2, r2, #1 ldrh lr, [r1, lr] cmp lr, #0 - beq .L891 + beq .L917 mov lr, #0 -.L892: +.L918: ldrh r2, [r5, #120] cmp r3, r2 - bge .L883 + bge .L909 ldr r1, [r5, #148] lsl r2, r3, #1 sub r0, r3, ip lsl r6, r0, #1 ldrh r7, [r1, r2] strh r7, [r1, r6] @ movhi - ldr r1, [r5, #3880] + ldr r1, [r5, #3884] ldr r6, [r1, r3, lsl #2] add r3, r3, #1 sxth r3, r3 str r6, [r1, r0, lsl #2] ldr r1, [r5, #148] strh lr, [r1, r2] @ movhi - b .L892 -.L919: + b .L918 +.L945: .align 2 -.L918: +.L944: .word .LANCHOR0 .word .LANCHOR0+60 - .word .LANCHOR0+3944 + .word .LANCHOR0+3952 .word .LANCHOR1+328 .word .LC1 .word .LANCHOR0+2576 @@ -6283,7 +6392,7 @@ FtlMapTblRecovery: mov r1, #0 ldr r3, [r0, #24] mov r4, r0 - ldr r6, .L947 + ldr r6, .L971 mov r7, #0 ldr r8, [r0, #12] str r3, [fp, #-44] @@ -6298,27 +6407,27 @@ FtlMapTblRecovery: ldr r3, [fp, #-48] lsl r2, r3, #2 bl ftl_memset - ldr r3, [r6, #3280] + ldr r3, [r6, #3284] mvn r2, #0 - ldr r9, [r6, #3284] + ldr r9, [r6, #3288] str r7, [r4, #32] - str r3, [r6, #3268] - str r9, [r6, #3272] + str r3, [r6, #3272] + str r9, [r6, #3276] strh r2, [r4] @ movhi strh r2, [r4, #2] @ movhi mov r2, #1 str r7, [r4, #28] str r2, [r4, #36] -.L921: +.L947: ldr r3, [fp, #-52] sxth r2, r7 cmp r2, r3 - bge .L938 + bge .L965 ldr r3, [fp, #-52] lsl r0, r2, #1 sub r1, r3, #1 cmp r2, r1 - bne .L922 + bne .L948 add r10, r8, r0 mov r1, #1 ldrh r0, [r8, r0] @@ -6329,26 +6438,26 @@ FtlMapTblRecovery: sxth r1, r0 ldr r2, [fp, #-52] add r0, r0, #1 - ldr ip, .L947+4 + ldr ip, .L971+4 strh r7, [r4] @ movhi add r7, r1, #1 strh r0, [r4, #2] @ movhi ldr r2, [r3, r2, lsl #2] str r2, [r4, #28] -.L923: +.L949: sxth r2, r8 cmp r2, r7 - blt .L925 -.L938: + blt .L952 +.L965: mov r0, r4 bl ftl_free_no_use_map_blk ldrh r2, [r4, #2] ldrh r3, [r5, #104] cmp r2, r3 - bne .L927 + bne .L954 mov r0, r4 bl ftl_map_blk_alloc_new_blk -.L927: +.L954: mov r0, r4 bl ftl_map_blk_gc mov r0, r4 @@ -6356,102 +6465,104 @@ FtlMapTblRecovery: mov r0, #0 sub sp, fp, #40 ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc} -.L925: +.L952: ldrh r1, [r10] mov r0, ip str ip, [fp, #-52] orr r2, r2, r1, lsl #10 - str r2, [r6, #3264] + str r2, [r6, #3268] mov r2, #1 mov r1, r2 bl FlashReadPages - ldr r2, [r6, #3260] + ldr r2, [r6, #3264] ldr ip, [fp, #-52] cmn r2, #1 - beq .L924 + ldrheq r2, [r10] + strheq r2, [r4, #40] @ movhi + beq .L951 ldrh r2, [r9, #8] ldr r3, [fp, #-48] cmp r3, r2 - bls .L924 + bls .L951 ldrh r1, [r4, #4] ldrh r0, [r9] cmp r0, r1 - ldreq r1, [r6, #3264] + ldreq r1, [r6, #3268] ldreq r3, [fp, #-44] streq r1, [r3, r2, lsl #2] -.L924: +.L951: add r8, r8, #1 - b .L923 -.L922: - ldr r2, [r5, #3280] + b .L949 +.L948: + ldr r2, [r5, #3284] add r3, r8, r0 str r3, [fp, #-60] - str r2, [r5, #3268] + str r2, [r5, #3272] ldrh r2, [r5, #104] ldrh r1, [r8, r0] - ldr r0, .L947+4 + ldr r0, .L971+4 sub r2, r2, #1 orr r2, r2, r1, lsl #10 - str r2, [r5, #3264] + str r2, [r5, #3268] mov r2, #1 mov r1, r2 bl FlashReadPages - ldr r2, [r5, #3260] + ldr r2, [r5, #3264] cmn r2, #1 - beq .L940 + beq .L967 ldrh r1, [r9] ldrh r2, [r4, #4] cmp r1, r2 - bne .L940 + bne .L967 ldrh r1, [r9, #8] movw r2, #64245 cmp r1, r2 - beq .L929 -.L940: + beq .L956 +.L967: mov r10, #0 -.L930: +.L957: ldrh r1, [r5, #104] sxth r2, r10 cmp r2, r1 - bge .L936 + bge .L963 ldr r3, [fp, #-60] - ldr r0, .L947+4 + ldr r0, .L971+4 ldrh r1, [r3] orr r2, r2, r1, lsl #10 - str r2, [r5, #3264] + str r2, [r5, #3268] mov r2, #1 mov r1, r2 bl FlashReadPages - ldr r2, [r5, #3260] + ldr r2, [r5, #3264] cmn r2, #1 - beq .L934 + beq .L961 ldrh r2, [r9, #8] ldr r3, [fp, #-48] cmp r3, r2 - bls .L934 + bls .L961 ldrh r1, [r4, #4] ldrh r0, [r9] cmp r0, r1 - ldreq r1, [r5, #3264] + ldreq r1, [r5, #3268] ldreq r3, [fp, #-44] streq r1, [r3, r2, lsl #2] -.L934: +.L961: add r10, r10, #1 - b .L930 -.L929: + b .L957 +.L956: mov r0, #0 mov lr, #4 -.L931: +.L958: ldrh r1, [r5, #104] sxth r2, r0 sub r1, r1, #1 cmp r2, r1 - blt .L933 -.L936: + blt .L960 +.L963: add r7, r7, #1 - b .L921 -.L933: - ldr ip, [r5, #3280] + b .L947 +.L960: + ldr ip, [r5, #3284] add r0, r0, #1 ldr r3, [fp, #-48] ldr r1, [ip, r2, lsl #3] @@ -6462,12 +6573,12 @@ FtlMapTblRecovery: movhi r1, r10 ldrhi r2, [ip, r2] strhi r2, [r3, r1, lsl #2] - b .L931 -.L948: + b .L958 +.L972: .align 2 -.L947: +.L971: .word .LANCHOR0 - .word .LANCHOR0+3260 + .word .LANCHOR0+3264 .size FtlMapTblRecovery, .-FtlMapTblRecovery .align 2 .global FtlLoadVonderInfo @@ -6481,31 +6592,33 @@ FtlLoadVonderInfo: mov ip, sp push {fp, ip, lr, pc} sub fp, ip, #4 - ldr r3, .L950 + ldr r3, .L974 ldrh r2, [r3, #120] - add r0, r3, #3936 - add r0, r0, #12 + add r0, r3, #3952 + add r0, r0, #4 strh r2, [r0, #10] @ movhi - ldr r2, .L950+4 + ldr r2, .L974+4 strh r2, [r0, #4] @ movhi ldrh r2, [r3, #144] strh r2, [r0, #8] @ movhi ldrh r2, [r3, #122] strh r2, [r0, #6] @ movhi ldr r2, [r3, #148] - str r2, [r3, #3960] - ldr r2, [r3, #3880] - str r2, [r3, #3964] - ldr r2, [r3, #3876] str r2, [r3, #3968] ldr r2, [r3, #3884] str r2, [r3, #3972] + ldr r2, [r3, #3880] + str r2, [r3, #3976] + ldr r2, [r3, #3888] + str r2, [r3, #3980] + mvn r3, #0 + strh r3, [r0, #40] @ movhi bl FtlMapTblRecovery mov r0, #0 ldmfd sp, {fp, sp, pc} -.L951: +.L975: .align 2 -.L950: +.L974: .word .LANCHOR0 .word -3962 .size FtlLoadVonderInfo, .-FtlLoadVonderInfo @@ -6521,52 +6634,53 @@ FtlL2PDataInit: mov ip, sp push {r4, r5, r6, fp, ip, lr, pc} sub fp, ip, #4 - ldr r4, .L955 + ldr r4, .L979 mov r1, #0 mvn r5, #0 ldr r2, [r4, #128] - ldr r0, [r4, #3872] + ldr r0, [r4, #3876] lsl r2, r2, #1 bl ftl_memset ldrh r3, [r4, #110] mov r1, #255 ldrh r2, [r4, #138] - ldr r0, [r4, #3896] + ldr r0, [r4, #3900] mul r2, r2, r3 bl ftl_memset mov r2, #0 mov r3, r4 mov lr, #12 mov r4, r2 -.L953: +.L977: ldrh r0, [r3, #138] uxth r1, r2 add ip, r2, #1 cmp r0, r1 - bhi .L954 - ldr r2, .L955+4 + bhi .L978 mvn r1, #0 + movw r0, #3908 + ldr r2, .L979+4 + strh r1, [r3, r0] @ movhi + ldr r0, [r3, #128] strh r1, [r2, #2] @ movhi - strh r1, [r2] @ movhi - ldr r1, [r3, #128] - strh r1, [r2, #10] @ movhi - ldr r1, .L955+8 - strh r1, [r2, #4] @ movhi - movw r1, #3944 - ldrh r1, [r3, r1] - strh r1, [r2, #8] @ movhi - ldrh r1, [r3, #136] - strh r1, [r2, #6] @ movhi - ldr r2, [r3, #3868] - str r2, [r3, #3916] - ldr r2, [r3, #3892] - str r2, [r3, #3920] - ldr r2, [r3, #3872] - str r2, [r3, #3924] - ldr r2, [r3, #3888] - str r2, [r3, #3928] + strh r1, [r2, #40] @ movhi + strh r0, [r2, #10] @ movhi + ldr r0, .L979+8 + strh r0, [r2, #4] @ movhi + ldrh r0, [r2, #44] + strh r0, [r2, #8] @ movhi + ldrh r0, [r3, #136] + strh r0, [r2, #6] @ movhi + ldr r0, [r3, #3872] + str r0, [r3, #3920] + ldr r0, [r3, #3896] + str r0, [r3, #3924] + ldr r0, [r3, #3876] + str r0, [r3, #3928] + ldr r0, [r3, #3892] + str r0, [r3, #3932] ldmfd sp, {r4, r5, r6, fp, sp, pc} -.L954: +.L978: uxth r2, r2 ldr r1, [r3, #2492] mul r0, lr, r2 @@ -6577,17 +6691,17 @@ FtlL2PDataInit: add r1, r1, r0 ldrh r0, [r3, #110] mul r2, r2, r0 - ldr r0, [r3, #3896] + ldr r0, [r3, #3900] bic r2, r2, #3 add r2, r0, r2 str r2, [r1, #8] mov r2, ip - b .L953 -.L956: + b .L977 +.L980: .align 2 -.L955: +.L979: .word .LANCHOR0 - .word .LANCHOR0+3904 + .word .LANCHOR0+3908 .word -3902 .size FtlL2PDataInit, .-FtlL2PDataInit .align 2 @@ -6603,14 +6717,14 @@ FtlLoadMapInfo: push {fp, ip, lr, pc} sub fp, ip, #4 bl FtlL2PDataInit - ldr r0, .L958 + ldr r0, .L982 bl FtlMapTblRecovery mov r0, #0 ldmfd sp, {fp, sp, pc} -.L959: +.L983: .align 2 -.L958: - .word .LANCHOR0+3904 +.L982: + .word .LANCHOR0+3908 .size FtlLoadMapInfo, .-FtlLoadMapInfo .align 2 .global FtlVariablesInit @@ -6624,19 +6738,18 @@ FtlVariablesInit: mov ip, sp push {r4, r5, fp, ip, lr, pc} sub fp, ip, #4 - ldr r4, .L961 + ldr r4, .L985 mvn r3, #0 - movw r2, #3992 mov r5, #0 - strh r3, [r4, r2] @ movhi mov r1, r5 - ldrh r2, [r4, #120] + add r2, r4, #4000 ldr r0, [r4, #148] - str r3, [r4, #4004] - str r5, [r4, #3988] + strh r3, [r2] @ movhi + ldrh r2, [r4, #120] + str r3, [r4, #4012] + str r5, [r4, #4004] + str r5, [r4, #4008] lsl r2, r2, #1 - str r5, [r4, #3996] - str r5, [r4, #4000] strh r5, [r4, #144] @ movhi bl ftl_memset ldrh r2, [r4, #42] @@ -6646,7 +6759,7 @@ FtlVariablesInit: bl ftl_memset ldrh r2, [r4, #42] mov r1, r5 - ldr r0, [r4, #3856] + ldr r0, [r4, #3860] lsl r2, r2, #1 bl ftl_memset add r0, r4, #2256 @@ -6661,9 +6774,9 @@ FtlVariablesInit: bl FtlL2PDataInit mov r0, r5 ldmfd sp, {r4, r5, fp, sp, pc} -.L962: +.L986: .align 2 -.L961: +.L985: .word .LANCHOR0 .size FtlVariablesInit, .-FtlVariablesInit .align 2 @@ -6680,10 +6793,10 @@ SupperBlkListInit: sub fp, ip, #4 sub sp, sp, #16 mov r5, #0 - ldr r4, .L974 + ldr r4, .L998 mov r1, #0 mov r8, r5 - mov r7, r5 + mov r6, r5 ldrh r2, [r4, #42] ldr r0, [r4, #2316] lsl r2, r2, #3 @@ -6696,20 +6809,20 @@ SupperBlkListInit: strh r5, [r3] @ movhi strh r5, [r4, r2] @ movhi str r3, [fp, #-48] -.L964: +.L988: ldrh r3, [r4, #40] uxth r10, r5 cmp r10, r3 - bcs .L970 + bcs .L995 ldrh r3, [r4, #102] mov r9, r10 ldrh ip, [r4, #32] str r3, [fp, #-44] mov r3, #0 - mov r6, r3 - b .L971 -.L966: - ldr r2, .L974+4 + mov r7, r3 + b .L996 +.L990: + ldr r2, .L998+4 mov r1, r9 str ip, [fp, #-56] str r3, [fp, #-52] @@ -6721,69 +6834,75 @@ SupperBlkListInit: ldreq r2, [fp, #-44] ldr ip, [fp, #-56] add r3, r3, #1 - addeq r6, r6, r2 - uxtheq r6, r6 -.L971: + addeq r7, r7, r2 + uxtheq r7, r7 +.L996: uxth r1, r3 cmp ip, r1 - bhi .L966 - cmp r6, #0 - moveq r0, r6 - beq .L967 - mov r1, r6 + bhi .L990 + cmp r7, #0 + beq .L991 + mov r1, r7 mov r0, #32768 bl __divsi3 -.L967: + uxth r7, r0 +.L992: ldr r3, [r4, #2316] add r3, r3, r9, lsl #3 - strh r0, [r3, #4] @ movhi - ldr r3, .L974+8 + strh r7, [r3, #4] @ movhi + ldr r3, .L998+8 ldrh r1, [r3] cmp r1, r10 - beq .L968 + beq .L993 ldrh r1, [r3, #48] cmp r1, r10 - beq .L968 + beq .L993 ldrh r3, [r3, #96] cmp r3, r10 - beq .L968 + beq .L993 ldr r2, [r4, #2324] lsl r3, r9, #1 ldrh r3, [r2, r3] cmp r3, #0 - bne .L969 + bne .L994 add r8, r8, #1 mov r0, r9 uxth r8, r8 bl INSERT_FREE_LIST -.L968: +.L993: add r5, r5, #1 - b .L964 -.L969: - add r7, r7, #1 + b .L988 +.L991: + ldr r1, [r4, #2324] + lsl r3, r9, #1 + mvn r0, #0 + strh r0, [r1, r3] @ movhi + b .L992 +.L994: + add r6, r6, #1 mov r0, r9 - uxth r7, r7 + uxth r6, r6 bl INSERT_DATA_LIST - b .L968 -.L970: + b .L993 +.L995: ldr r2, [fp, #-48] - strh r7, [r2] @ movhi - add r7, r7, r8 - cmp r7, r3 + strh r6, [r2] @ movhi + add r6, r6, r8 + cmp r6, r3 movw r2, #2344 strh r8, [r4, r2] @ movhi - ble .L972 - movw r2, #2154 - ldr r1, .L974+12 - ldr r0, .L974+16 + ble .L997 + movw r2, #2206 + ldr r1, .L998+12 + ldr r0, .L998+16 bl sftl_printk -.L972: +.L997: mov r0, #0 sub sp, fp, #40 ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc} -.L975: +.L999: .align 2 -.L974: +.L998: .word .LANCHOR0 .word .LANCHOR0+60 .word .LANCHOR0+2348 @@ -6802,7 +6921,7 @@ FtlGcPageVarInit: mov ip, sp push {r4, fp, ip, lr, pc} sub fp, ip, #4 - ldr r4, .L977 + ldr r4, .L1001 mov r3, #0 movw r2, #3192 mov r1, #255 @@ -6821,9 +6940,9 @@ FtlGcPageVarInit: bl ftl_memset bl FtlGcBufInit ldmfd sp, {r4, fp, sp, pc} -.L978: +.L1002: .align 2 -.L977: +.L1001: .word .LANCHOR0 .size FtlGcPageVarInit, .-FtlGcPageVarInit .align 2 @@ -6840,38 +6959,38 @@ FtlGcScanTempBlk: sub fp, ip, #4 sub sp, sp, #20 mov r6, r0 - ldr r3, .L1002 + ldr r3, .L1026 mov r10, r1 ldrh r4, [r3, #4] movw r3, #65535 cmp r4, r3 - beq .L996 + beq .L1020 cmp r4, #0 - bne .L980 -.L981: + bne .L1004 +.L1005: bl FtlGcPageVarInit - b .L982 -.L996: + b .L1006 +.L1020: mov r4, #0 -.L980: - ldr r3, .L1002+4 +.L1004: + ldr r3, .L1026+4 ldrh r3, [r3, #102] cmp r3, r10 - beq .L981 -.L982: - ldr r5, .L1002+4 + beq .L1005 +.L1006: + ldr r5, .L1026+4 mov r8, #0 -.L990: +.L1014: ldrh r2, [r6] movw r3, #65535 mov r0, #0 strb r0, [r6, #8] cmp r2, r3 - beq .L983 -.L993: + beq .L1007 +.L1017: ldrh r3, [r5, #32] mov r2, #0 - ldr r0, [r5, #3832] + ldr r0, [r5, #3836] add ip, r6, #16 mov r7, r2 movw r9, #65535 @@ -6884,34 +7003,34 @@ FtlGcScanTempBlk: str r3, [fp, #-56] ldrh r3, [r5, #112] str r3, [fp, #-60] -.L984: +.L1008: ldr r1, [fp, #-44] uxth r3, r2 cmp r1, r3 - bhi .L986 + bhi .L1010 mov r9, #0 mov r2, #0 mov r1, r7 bl FlashReadPages -.L987: +.L1011: uxth r3, r9 cmp r7, r3 - bhi .L991 + bhi .L1015 add r8, r8, #1 add r4, r4, #1 cmp r10, r8 uxth r4, r4 - bls .L992 -.L994: + bls .L1016 +.L1018: ldrh r3, [r5, #102] cmp r3, r4 - bhi .L993 + bhi .L1017 mov r0, #0 - b .L983 -.L986: + b .L1007 +.L1010: ldrh r3, [ip], #2 cmp r3, r9 - beq .L985 + beq .L1009 mov r1, #20 orr r3, r4, r3, lsl #10 mla r1, r1, r7, r0 @@ -6936,12 +7055,12 @@ FtlGcScanTempBlk: bic r3, r3, #3 add r3, lr, r3 str r3, [r1, #12] -.L985: +.L1009: add r2, r2, #1 - b .L984 -.L991: + b .L1008 +.L1015: mov r3, #20 - ldr r2, [r5, #3832] + ldr r2, [r5, #3836] mul r3, r3, r9 str r2, [fp, #-52] add ip, r2, r3 @@ -6955,7 +7074,7 @@ FtlGcScanTempBlk: ldr r3, [fp, #-56] ldr r3, [r2, r3] cmp r3, #0 - bne .L988 + bne .L1012 ldr ip, [fp, #-48] movw r2, #65535 add r9, r9, #1 @@ -6963,11 +7082,11 @@ FtlGcScanTempBlk: ldr r3, [ip, #12] ldrh ip, [r3] cmp ip, r2 - bne .L989 + bne .L1013 mov r3, #1 - str r3, [r5, #4000] -.L983: - ldr r3, .L1002 + str r3, [r5, #4008] +.L1007: + ldr r3, .L1026 mvn r2, #0 strb r0, [r6, #6] mov r1, r4 @@ -6976,13 +7095,13 @@ FtlGcScanTempBlk: mov r2, r0 mov r0, r6 bl ftl_sb_update_avl_pages - b .L995 -.L989: + b .L1019 +.L1013: ldr r2, [r3, #8] ldr r0, [r3, #12] bl FtlGcUpdatePage - b .L987 -.L988: + b .L1011 +.L1012: ldrh r3, [r6] mov r4, #0 ldr r2, [r5, #2324] @@ -6993,25 +7112,25 @@ FtlGcScanTempBlk: mvn r3, #0 strh r3, [r6] @ movhi bl FtlGcPageVarInit - b .L990 -.L992: - ldr r2, .L1002 + b .L1014 +.L1016: + ldr r2, .L1026 movw r1, #65535 ldrh r3, [r2, #4] cmp r3, r1 - beq .L994 + beq .L1018 add r3, r3, r8 strh r3, [r2, #4] @ movhi ldrh r3, [r5, #102] cmp r3, r4 - bls .L994 -.L995: + bls .L1018 +.L1019: mvn r0, #0 sub sp, fp, #40 ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc} -.L1003: +.L1027: .align 2 -.L1002: +.L1026: .word .LANCHOR2 .word .LANCHOR0 .size FtlGcScanTempBlk, .-FtlGcScanTempBlk @@ -7044,30 +7163,30 @@ FtlBbmTblFlush: sub fp, ip, #4 sub sp, sp, #4 mov r5, #0 - ldr r4, .L1014 + ldr r4, .L1038 mov r1, #0 - ldr r7, .L1014+4 - ldr r0, [r4, #3280] + ldr r0, [r4, #3284] add r6, r4, #176 - ldr r3, [r4, #3284] + ldr r3, [r4, #3288] + add r7, r4, #3904 ldrh r2, [r4, #110] - str r0, [r4, #3268] - str r3, [r4, #3272] + str r0, [r4, #3272] + str r3, [r4, #3276] bl ftl_memset -.L1006: +.L1030: ldrh r3, [r4, #54] cmp r5, r3 - blt .L1007 - ldr r6, [r4, #3272] + blt .L1031 + ldr r6, [r4, #3276] mov r2, #16 mov r1, #255 - ldr r9, .L1014+8 - ldr r8, .L1014+12 + ldr r9, .L1038+4 + ldr r8, .L1038+8 mov r5, #0 mov r0, r6 mov r7, r5 bl memset - ldr r3, .L1014+16 + ldr r3, .L1038+12 strh r3, [r6] @ movhi ldr r3, [r4, #160] str r3, [r6, #4] @@ -7079,24 +7198,24 @@ FtlBbmTblFlush: strh r3, [r6, #10] @ movhi ldr r3, [r4, #28] strh r3, [r6, #12] @ movhi -.L1008: - ldr r3, [r4, #3280] +.L1032: + ldr r3, [r4, #3284] mov r10, #0 ldrh r1, [r4, #152] ldrh r2, [r4, #154] - str r3, [r4, #3268] - ldr r3, [r4, #3284] - str r10, [r4, #3260] str r3, [r4, #3272] + ldr r3, [r4, #3288] + str r10, [r4, #3264] + str r3, [r4, #3276] orr r3, r2, r1, lsl #10 ldrh r0, [r6, #10] - str r3, [r4, #3264] + str r3, [r4, #3268] ldrh r3, [r4, #156] str r0, [sp] mov r0, r9 bl sftl_printk mov r3, #1 - mov r0, r8 + ldr r0, .L1038+8 mov r2, r3 mov r1, r3 bl FlashProgPages @@ -7104,10 +7223,10 @@ FtlBbmTblFlush: ldrh r2, [r4, #154] sub r3, r3, #1 cmp r2, r3 - blt .L1009 + blt .L1033 ldr r3, [r4, #160] ldrh r2, [r4, #152] - ldr r0, [r4, #3800] + ldr r0, [r4, #3804] add r3, r3, #1 strh r10, [r4, #154] @ movhi str r3, [r4, #160] @@ -7119,7 +7238,7 @@ FtlBbmTblFlush: strh r3, [r4, #152] @ movhi mov r1, r2 lsl r3, r3, #10 - str r3, [r4, #3264] + str r3, [r4, #3268] str r3, [r0, #4] bl FlashEraseBlocks mov r3, #1 @@ -7127,54 +7246,53 @@ FtlBbmTblFlush: mov r2, r3 mov r1, r3 bl FlashProgPages -.L1009: +.L1033: ldrh r3, [r4, #154] add r3, r3, #1 strh r3, [r4, #154] @ movhi - ldr r3, [r4, #3260] + ldr r3, [r4, #3264] cmn r3, #1 - bne .L1010 + bne .L1034 add r5, r5, #1 - ldr r1, [r4, #3264] + ldr r1, [r4, #3268] uxth r5, r5 - ldr r0, .L1014+20 + ldr r0, .L1038+16 bl sftl_printk cmp r5, #3 - bls .L1008 + bls .L1032 mov r2, r5 - ldr r1, [r4, #3264] - ldr r0, .L1014+24 + ldr r1, [r4, #3268] + ldr r0, .L1038+20 bl sftl_printk -.L1012: - b .L1012 -.L1007: +.L1036: + b .L1036 +.L1031: ldrh r2, [r7] - ldr r3, [r4, #3268] + ldr r3, [r4, #3272] ldr r1, [r6, #4]! mul r0, r2, r5 lsl r2, r2, #2 add r5, r5, #1 add r0, r3, r0, lsl #2 bl ftl_memcpy - b .L1006 -.L1013: + b .L1030 +.L1037: mov r7, #1 - b .L1008 -.L1010: + b .L1032 +.L1034: cmp r7, #0 - beq .L1013 + beq .L1037 mov r0, #0 ldmib sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc} -.L1015: +.L1039: .align 2 -.L1014: +.L1038: .word .LANCHOR0 - .word .LANCHOR0+3900 - .word .LC98 - .word .LANCHOR0+3260 - .word -3887 - .word .LC99 .word .LC100 + .word .LANCHOR0+3264 + .word -3887 + .word .LC101 + .word .LC102 .size FtlBbmTblFlush, .-FtlBbmTblFlush .align 2 .global allocate_data_superblock @@ -7190,25 +7308,25 @@ allocate_data_superblock: sub fp, ip, #4 sub sp, sp, #16 mov r5, r0 - ldr r4, .L1051 + ldr r4, .L1075 add r9, r4, #2336 -.L1017: - ldr r7, .L1051+4 +.L1041: + ldr r7, .L1075+4 ldrh r2, [r9] ldrh r3, [r7] add r3, r3, r2 ldrh r2, [r4, #40] cmp r3, r2 - ble .L1018 - movw r2, #2585 - ldr r1, .L1051+8 - ldr r0, .L1051+12 + ble .L1042 + movw r2, #2654 + ldr r1, .L1075+8 + ldr r0, .L1075+12 bl sftl_printk -.L1018: - ldr r3, .L1051+16 +.L1042: + ldr r3, .L1075+16 cmp r5, r3 movne r1, #0 - bne .L1019 + bne .L1043 ldrh r3, [r7] ldr r1, [r4, #3160] mul r2, r1, r3 @@ -7219,19 +7337,19 @@ allocate_data_superblock: cmp r1, #0 subne r1, r1, #1 uxthne r1, r1 -.L1019: - ldr r0, .L1051+20 +.L1043: + ldr r0, .L1075+20 bl List_pop_index_node ldrh r3, [r7] mov r6, r0 uxth r8, r0 cmp r3, #0 - bne .L1020 - movw r2, #2594 - ldr r1, .L1051+8 - ldr r0, .L1051+12 + bne .L1044 + movw r2, #2663 + ldr r1, .L1075+8 + ldr r0, .L1075+12 bl sftl_printk -.L1020: +.L1044: ldrh r3, [r7] mov r0, r5 sub r3, r3, #1 @@ -7240,7 +7358,7 @@ allocate_data_superblock: bl make_superblock ldrb r3, [r5, #7] @ zero_extendqisi2 cmp r3, #0 - bne .L1021 + bne .L1045 uxth r0, r6 ldr r2, [r4, #2324] mvn r1, #0 @@ -7252,25 +7370,25 @@ allocate_data_superblock: add r3, r3, r2 ldrh r2, [r4, #40] cmp r3, r2 - ble .L1017 - movw r2, #2605 - ldr r1, .L1051+8 - ldr r0, .L1051+12 + ble .L1041 + movw r2, #2674 + ldr r1, .L1075+8 + ldr r0, .L1075+12 bl sftl_printk - b .L1017 -.L1021: + b .L1041 +.L1045: ldrh r2, [r9] ldrh r3, [r7] add r3, r3, r2 ldrh r2, [r4, #40] cmp r3, r2 - ble .L1023 - mov r2, #2608 - ldr r1, .L1051+8 - ldr r0, .L1051+12 + ble .L1047 + movw r2, #2677 + ldr r1, .L1075+8 + ldr r0, .L1075+12 bl sftl_printk -.L1023: - ldr r0, [r4, #3800] +.L1047: + ldr r0, [r4, #3804] mov r2, #20 ldrh r1, [r4, #32] mov r7, #0 @@ -7279,30 +7397,30 @@ allocate_data_superblock: mov r3, r0 mla r1, r2, r1, r0 str r1, [fp, #-44] -.L1024: +.L1048: ldr r1, [fp, #-44] cmp r1, r3 - bne .L1026 + bne .L1050 cmp r7, #0 - bne .L1027 - movw r2, #2619 - ldr r1, .L1051+8 - ldr r0, .L1051+12 + bne .L1051 + mov r2, #2688 + ldr r1, .L1075+8 + ldr r0, .L1075+12 bl sftl_printk -.L1027: - ldr r3, .L1051+24 +.L1051: + ldr r3, .L1075+24 ldrh r3, [r3] cmp r3, r8 - bne .L1028 - movw r2, #2621 - ldr r1, .L1051+8 - ldr r0, .L1051+12 + bne .L1052 + movw r2, #2690 + ldr r1, .L1075+8 + ldr r0, .L1075+12 bl sftl_printk -.L1028: +.L1052: ldrb r3, [r5, #8] @ zero_extendqisi2 uxth r6, r6 cmp r3, #0 - bne .L1029 + bne .L1053 ldr r1, [r4, #2328] lsl r2, r6, #1 ldrh r3, [r1, r2] @@ -7317,7 +7435,7 @@ allocate_data_superblock: add r3, r3, #1 str r3, [r4, #2548] bl ftl_set_blk_mode -.L1032: +.L1056: ldr r3, [r4, #2328] lsl r10, r6, #1 ldr r2, [r4, #2564] @@ -7330,48 +7448,46 @@ allocate_data_superblock: ldr r3, [r4, #2552] mla r0, r0, r2, r3 bl __udivsi3 - ldr r2, [r4, #3860] - ldr r1, [r4, #3800] + ldr r2, [r4, #3864] + ldr r1, [r4, #3804] str r0, [r4, #2556] ldr r3, [r2, #16] - ldr r0, .L1051+28 + ldr r0, .L1075+28 add r3, r3, #1 str r3, [r2, #16] mov r2, #20 mla r2, r2, r7, r1 add r3, r1, #4 add r2, r2, #24 -.L1034: +.L1058: add r3, r3, #20 cmp r2, r3 - bne .L1035 + bne .L1059 ldrb r1, [r5, #8] @ zero_extendqisi2 mov r2, r7 - ldr r0, [r4, #3800] + ldr r0, [r4, #3804] bl FlashEraseBlocks mov r3, #0 mov ip, #20 mov r1, r3 -.L1036: +.L1060: uxth r2, r3 cmp r7, r2 - bhi .L1038 + bhi .L1062 cmp r1, #0 - ble .L1039 + ble .L1063 mov r0, r6 bl update_multiplier_value bl FtlBbmTblFlush -.L1039: +.L1063: ldrb r2, [r5, #7] @ zero_extendqisi2 cmp r2, #0 - bne .L1040 + bne .L1064 ldr r3, [r4, #2324] mvn r2, #0 - mov r0, r6 strh r2, [r3, r10] @ movhi - bl INSERT_DATA_LIST - b .L1017 -.L1026: + b .L1041 +.L1050: str lr, [r3, #8] movw r10, #65535 str lr, [r3, #12] @@ -7383,8 +7499,8 @@ allocate_data_superblock: addne r7, r7, #1 uxthne r7, r7 strne r1, [r10, #4] - b .L1024 -.L1029: + b .L1048 +.L1053: ldr r1, [r4, #2328] lsl r3, r6, #1 mov r0, r6 @@ -7395,19 +7511,19 @@ allocate_data_superblock: add r3, r3, #1 str r3, [r4, #2552] bl ftl_set_blk_mode.part.6 - b .L1032 -.L1035: + b .L1056 +.L1059: ldr r1, [r3, #-20] and r1, r1, r0 str r1, [r3, #-20] - b .L1034 -.L1038: + b .L1058 +.L1062: mul r2, ip, r3 - ldr lr, [r4, #3800] + ldr lr, [r4, #3804] add r0, lr, r2 ldr r2, [lr, r2] cmn r2, #1 - bne .L1037 + bne .L1061 ldr r0, [r0, #4] add r1, r1, #1 str ip, [fp, #-56] @@ -7425,10 +7541,10 @@ allocate_data_superblock: ldrb r2, [r5, #7] @ zero_extendqisi2 sub r2, r2, #1 strb r2, [r5, #7] -.L1037: +.L1061: add r3, r3, #1 - b .L1036 -.L1040: + b .L1060 +.L1064: ldrh r3, [r4, #102] strh r8, [r5] @ movhi smulbb r3, r3, r2 @@ -7447,22 +7563,22 @@ allocate_data_superblock: strh r3, [r1, r2] @ movhi ldrh r3, [r5, #4] cmp r3, #0 - beq .L1041 + beq .L1065 ldrb r3, [r5, #7] @ zero_extendqisi2 cmp r3, #0 - bne .L1042 -.L1041: - movw r2, #2674 - ldr r1, .L1051+8 - ldr r0, .L1051+12 + bne .L1066 +.L1065: + movw r2, #2743 + ldr r1, .L1075+8 + ldr r0, .L1075+12 bl sftl_printk -.L1042: +.L1066: mov r0, #0 sub sp, fp, #40 ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc} -.L1052: +.L1076: .align 2 -.L1051: +.L1075: .word .LANCHOR0 .word .LANCHOR0+2344 .word .LANCHOR1+360 @@ -7486,47 +7602,47 @@ FtlGcFreeBadSuperBlk: sub fp, ip, #4 sub sp, sp, #8 uxth r3, r0 - ldr r6, .L1065 + ldr r6, .L1089 str r3, [fp, #-44] - movw r3, #3206 + movw r3, #3210 ldrh r3, [r6, r3] cmp r3, #0 movne r7, #0 - ldrne r10, .L1065+4 - bne .L1055 -.L1054: + ldrne r10, .L1089+4 + bne .L1079 +.L1078: mov r0, #0 sub sp, fp, #40 ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc} -.L1061: +.L1085: uxtah r3, r6, r7 ldr r1, [fp, #-44] mov r8, #0 ldrb r0, [r3, #60] @ zero_extendqisi2 bl V2P_block mov r9, r0 -.L1056: +.L1080: ldrh r3, [r10] uxth r4, r8 cmp r3, r4 - bhi .L1060 + bhi .L1084 add r7, r7, #1 -.L1055: +.L1079: ldrh r2, [r6, #32] uxth r3, r7 cmp r2, r3 - bhi .L1061 + bhi .L1085 bl FtlGcReFreshBadBlk - b .L1054 -.L1060: + b .L1078 +.L1084: uxth r3, r8 - ldr r5, .L1065+8 + ldr r5, .L1089+8 lsl r2, r3, #1 ldrh r2, [r5, r2] cmp r2, r9 - bne .L1057 + bne .L1081 mov r1, r9 - ldr r0, .L1065+12 + ldr r0, .L1089+12 str r3, [fp, #-48] bl sftl_printk mov r0, r9 @@ -7535,27 +7651,27 @@ FtlGcFreeBadSuperBlk: ldr r3, [fp, #-48] ldrh r2, [r10] add r3, r5, r3, lsl #1 -.L1058: +.L1082: cmp r4, r2 - bcc .L1059 + bcc .L1083 sub r2, r2, #1 strh r2, [r10] @ movhi -.L1057: +.L1081: add r8, r8, #1 - b .L1056 -.L1059: + b .L1080 +.L1083: ldrh r1, [r3, #2]! add r4, r4, #1 uxth r4, r4 strh r1, [r3, #-2] @ movhi - b .L1058 -.L1066: + b .L1082 +.L1090: .align 2 -.L1065: +.L1089: .word .LANCHOR0 - .word .LANCHOR0+3206 - .word .LANCHOR0+3208 - .word .LC101 + .word .LANCHOR0+3210 + .word .LANCHOR0+3212 + .word .LC103 .size FtlGcFreeBadSuperBlk, .-FtlGcFreeBadSuperBlk .align 2 .global update_vpc_list @@ -7569,20 +7685,20 @@ update_vpc_list: mov ip, sp push {r4, r5, r6, fp, ip, lr, pc} sub fp, ip, #4 - ldr r3, .L1077 + ldr r3, .L1101 uxth r4, r0 ldr r1, [r3, #2324] lsl r2, r4, #1 mov r6, r3 ldrh r0, [r1, r2] cmp r0, #0 - bne .L1068 + bne .L1092 movw r2, #2588 ldrh r1, [r3, r2] cmp r1, r4 mvneq r3, #0 strheq r3, [r6, r2] @ movhi - beq .L1070 + beq .L1094 movw r2, #2348 ldrh r2, [r3, r2] cmp r2, r4 @@ -7595,19 +7711,19 @@ update_vpc_list: ldrh r3, [r3, r2] cmp r3, r4 ldmfdeq sp, {r4, r5, r6, fp, sp, pc} -.L1070: - ldr r5, .L1077+4 +.L1094: + ldr r5, .L1101+4 mov r1, r4 - ldr r0, .L1077+8 + ldr r0, .L1101+8 bl List_remove_node ldrh r3, [r5] cmp r3, #0 - bne .L1072 - movw r2, #2744 - ldr r1, .L1077+12 - ldr r0, .L1077+16 + bne .L1096 + movw r2, #2813 + ldr r1, .L1101+12 + ldr r0, .L1101+16 bl sftl_printk -.L1072: +.L1096: ldrh r3, [r5] mov r0, r4 sub r3, r3, #1 @@ -7621,22 +7737,22 @@ update_vpc_list: add r3, r3, r2 ldrh r2, [r6, #40] cmp r3, r2 - ble .L1076 - movw r2, #2747 - ldr r1, .L1077+12 - ldr r0, .L1077+16 + ble .L1100 + mov r2, #2816 + ldr r1, .L1101+12 + ldr r0, .L1101+16 bl sftl_printk -.L1076: +.L1100: mov r0, #1 ldmfd sp, {r4, r5, r6, fp, sp, pc} -.L1068: +.L1092: mov r0, r4 bl List_update_data_list mov r0, #0 ldmfd sp, {r4, r5, r6, fp, sp, pc} -.L1078: +.L1102: .align 2 -.L1077: +.L1101: .word .LANCHOR0 .word .LANCHOR0+2336 .word .LANCHOR0+2320 @@ -7655,75 +7771,112 @@ decrement_vpc_count: mov ip, sp push {r4, r5, r6, r7, fp, ip, lr, pc} sub fp, ip, #4 - uxth r6, r0 + uxth r4, r0 movw r3, #65535 - cmp r6, r3 - ldr r4, .L1091 - beq .L1080 - ldr r3, [r4, #2324] - lsl r5, r6, #1 - ldrh r2, [r3, r5] + cmp r4, r3 + ldr r5, .L1118 + beq .L1104 + ldr r3, [r5, #2324] + lsl r6, r4, #1 + ldrh r2, [r3, r6] cmp r2, #0 subne r2, r2, #1 - strhne r2, [r3, r5] @ movhi - bne .L1080 - mov r1, r6 - ldr r0, .L1091+4 + strhne r2, [r3, r6] @ movhi + bne .L1104 + mov r1, r4 + ldr r0, .L1118+4 bl sftl_printk - ldr r3, [r4, #2324] - ldrh r5, [r3, r5] - cmp r5, #0 - beq .L1082 -.L1089: - mov r5, #0 -.L1079: - mov r0, r5 - ldmfd sp, {r4, r5, r6, r7, fp, sp, pc} -.L1082: - movw r2, #2762 -.L1090: - ldr r1, .L1091+8 - ldr r0, .L1091+12 + ldr r3, [r5, #2324] + ldrh r3, [r3, r6] + cmp r3, #0 + bne .L1106 + movw r2, #2831 + ldr r1, .L1118+8 + ldr r0, .L1118+12 bl sftl_printk - b .L1079 -.L1080: - movw r7, #3992 +.L1106: + ldr r3, [r5, #2324] + mov r2, #16 + mov r1, r4 + ldr r0, .L1118+16 + strh r2, [r3, r6] @ movhi + bl test_node_in_list + cmp r0, #0 + beq .L1107 + mov r1, r4 + ldr r0, .L1118+16 + bl List_remove_node + movw r3, #2344 + ldrh r3, [r5, r3] + cmp r3, #0 + bne .L1108 + movw r2, #2835 + ldr r1, .L1118+8 + ldr r0, .L1118+12 + bl sftl_printk +.L1108: + movw r2, #2344 + mov r0, r4 + ldrh r3, [r5, r2] + sub r3, r3, #1 + strh r3, [r5, r2] @ movhi + bl INSERT_DATA_LIST + ldr r3, [r5, #2324] + mov r1, r4 + ldr r0, .L1118+20 + ldrh r2, [r3, r6] + bl sftl_printk +.L1107: + mov r0, r4 + bl FtlGcRefreshBlock +.L1111: + mov r6, #0 + b .L1103 +.L1104: + ldr r7, .L1118+24 movw r3, #65535 - ldrh r0, [r4, r7] + ldrh r0, [r7] cmp r0, r3 - strheq r6, [r4, r7] @ movhi - beq .L1089 -.L1084: - cmp r6, r0 - beq .L1089 + strheq r4, [r7] @ movhi + beq .L1111 + cmp r4, r0 + beq .L1111 bl update_vpc_list - ldr r2, [r4, #2316] - adds r5, r0, #0 - ldr r3, [r4, #2320] - movne r5, #1 - ldr r1, [r4, #2324] - strh r6, [r4, r7] @ movhi + ldr r2, [r5, #2316] + adds r6, r0, #0 + ldr r3, [r5, #2320] + movne r6, #1 + ldr r1, [r5, #2324] + strh r4, [r7] @ movhi sub r3, r3, r2 asr r3, r3, #3 uxth r2, r3 uxth r3, r3 lsl r2, r2, #1 - cmp r3, r6 + cmp r3, r4 ldrh r2, [r1, r2] clz r2, r2 lsr r2, r2, #5 moveq r2, #0 cmp r2, #0 - beq .L1079 - movw r2, #2778 - b .L1090 -.L1092: + beq .L1103 + movw r2, #2856 + ldr r1, .L1118+8 + ldr r0, .L1118+12 + bl sftl_printk +.L1103: + mov r0, r6 + ldmfd sp, {r4, r5, r6, r7, fp, sp, pc} +.L1119: .align 2 -.L1091: +.L1118: .word .LANCHOR0 - .word .LC102 + .word .LC104 .word .LANCHOR1+401 .word .LC1 + .word .LANCHOR0+2340 + .word .LC105 + .word .LANCHOR0+4000 .size decrement_vpc_count, .-decrement_vpc_count .align 2 .global FtlWriteDump_data @@ -7738,22 +7891,22 @@ FtlWriteDump_data: push {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc} sub fp, ip, #4 sub sp, sp, #28 - ldr r6, .L1111 - ldr r4, .L1111+4 + ldr r6, .L1138 + ldr r4, .L1138+4 ldrh r2, [r6, #4] cmp r2, #0 - beq .L1094 + beq .L1121 ldrb r3, [r4, #2356] @ zero_extendqisi2 cmp r3, #0 - bne .L1094 + bne .L1121 ldrb r1, [r4, #2355] @ zero_extendqisi2 ldrh r3, [r4, #102] mul r3, r3, r1 cmp r2, r3 - beq .L1094 + beq .L1121 ldrb r8, [r4, #2358] @ zero_extendqisi2 cmp r8, #0 - bne .L1093 + bne .L1120 ldr r7, [r4, #2504] mov r2, r8 sub r1, fp, #64 @@ -7762,45 +7915,45 @@ FtlWriteDump_data: mov r0, r7 bl log2phys ldr r3, [fp, #-64] - ldr r5, [r4, #3284] - ldr r0, [r4, #3280] + ldr r5, [r4, #3288] + ldr r0, [r4, #3284] cmn r3, #1 str r3, [fp, #-56] str r7, [fp, #-44] str r0, [fp, #-52] str r5, [fp, #-48] str r8, [r5, #4] - beq .L1096 + beq .L1123 mov r2, r8 mov r1, #1 sub r0, fp, #60 bl FlashReadPages -.L1097: - ldr ip, .L1111 +.L1124: + ldr ip, .L1138 mov r8, #0 - ldr r3, .L1111+8 + ldr r3, .L1138+8 lsl r9, r9, #2 mov r10, r8 strh r3, [r5] @ movhi -.L1098: +.L1125: cmp r9, r8 - bne .L1102 -.L1099: + bne .L1129 +.L1126: mov r3, #1 -.L1110: +.L1137: strb r3, [r4, #2358] -.L1093: +.L1120: sub sp, fp, #40 ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc} -.L1096: +.L1123: ldrh r2, [r4, #110] mov r1, #255 bl ftl_memset - b .L1097 -.L1102: + b .L1124 +.L1129: ldrh r3, [r6, #4] cmp r3, #0 - beq .L1099 + beq .L1126 ldr r3, [fp, #-56] mov r0, ip str r7, [r5, #8] @@ -7825,13 +7978,13 @@ FtlWriteDump_data: ldrh r0, [r6] bl decrement_vpc_count ldr ip, [fp, #-68] - b .L1098 -.L1094: + b .L1125 +.L1121: mov r3, #0 - b .L1110 -.L1112: + b .L1137 +.L1139: .align 2 -.L1111: +.L1138: .word .LANCHOR0+2348 .word .LANCHOR0 .word -3947 @@ -7848,31 +8001,31 @@ l2p_flush: mov ip, sp push {r4, r5, r6, fp, ip, lr, pc} sub fp, ip, #4 - ldr r5, .L1117 + ldr r5, .L1144 mov r4, #0 mov r6, #12 bl FtlWriteDump_data -.L1114: +.L1141: ldrh r2, [r5, #138] uxth r3, r4 cmp r2, r3 - bhi .L1116 + bhi .L1143 mov r0, #0 ldmfd sp, {r4, r5, r6, fp, sp, pc} -.L1116: +.L1143: ldr r3, [r5, #2492] uxth r0, r4 mla r3, r6, r0, r3 ldr r3, [r3, #4] cmp r3, #0 - bge .L1115 + bge .L1142 bl flush_l2p_region -.L1115: +.L1142: add r4, r4, #1 - b .L1114 -.L1118: + b .L1141 +.L1145: .align 2 -.L1117: +.L1144: .word .LANCHOR0 .size l2p_flush, .-l2p_flush .align 2 @@ -7890,337 +8043,338 @@ FtlRecoverySuperblock: sub sp, sp, #44 movw r2, #65535 ldrh r3, [r0] - mov r10, r0 + mov r4, r0 cmp r3, r2 - beq .L1240 + beq .L1267 ldrh r3, [r0, #2] - ldr r5, .L1247 + ldr r6, .L1274 str r3, [fp, #-64] ldrb r3, [r0, #6] @ zero_extendqisi2 ldr r1, [fp, #-64] str r3, [fp, #-80] - ldrh r3, [r5, #102] + ldrh r3, [r6, #102] cmp r3, r1 mov r3, #0 strheq r3, [r0, #4] @ movhi ldrhne r0, [r0, #16] - bne .L1123 -.L1245: - strb r3, [r10, #6] -.L1240: + bne .L1150 +.L1272: + strb r3, [r4, #6] +.L1267: mov r0, #0 sub sp, fp, #40 ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc} -.L1124: +.L1151: uxth r1, r3 - add r1, r10, r1, lsl #1 + add r1, r4, r1, lsl #1 ldrh r0, [r1, #16] -.L1123: +.L1150: cmp r0, r2 - uxth r6, r3 + uxth r7, r3 add r3, r3, #1 - beq .L1124 + beq .L1151 mov r1, #1 bl FtlGetLastWrittenPage cmn r0, #1 - mov r4, r0 - beq .L1125 - ldrh r3, [r5, #32] + mov r5, r0 + beq .L1152 + ldrh r3, [r6, #32] mov r2, #0 - ldr r0, [r5, #3832] - movw r7, #65535 - ldr lr, [r5, #3176] - mov r8, #20 + ldr r0, [r6, #3836] + movw r8, #65535 + ldr lr, [r6, #3176] + mov r9, #20 str r3, [fp, #-56] - ldr r3, [r5, #3172] - ldrh r6, [r5, #112] + ldr r3, [r6, #3172] + ldrh r7, [r6, #112] str r3, [fp, #-60] - ldrh r3, [r5, #110] - mov r5, r2 + ldrh r3, [r6, #110] + mov r6, r2 str r3, [fp, #-68] - add r3, r10, #16 + add r3, r4, #16 mov ip, r3 str r3, [fp, #-76] -.L1126: +.L1153: ldr r1, [fp, #-56] uxth r3, r2 cmp r1, r3 - bhi .L1130 - ldr r6, .L1247 + bhi .L1157 + ldr r7, .L1274 mov r2, #0 - mov r1, r5 - movw r8, #65535 + mov r1, r6 bl FlashReadPages - ldr r3, [r6, #2544] - uxth r2, r4 - ldr r9, [r6, #3832] - str r2, [fp, #-60] + ldr r3, [r7, #2544] + movw r2, #65535 + ldr r9, [r7, #3836] + mov r10, r7 + str r2, [fp, #-72] + uxth r2, r5 sub r3, r3, #1 str r3, [fp, #-56] - mov r7, r9 + mov r8, r9 mov r3, #0 -.L1131: + str r2, [fp, #-60] +.L1158: uxth r2, r3 - cmp r5, r2 - bhi .L1136 - addeq r3, r4, #1 + cmp r6, r2 + bhi .L1163 + addeq r3, r5, #1 uxtheq r3, r3 streq r3, [fp, #-60] - bne .L1134 -.L1241: + bne .L1161 +.L1268: ldr r0, [r9, #4] ubfx r0, r0, #10, #16 bl P2V_plane - ldrh r3, [r6, #102] + ldrh r3, [r7, #102] sub r1, fp, #68 ldr r2, [fp, #-60] str r0, [fp, #-68] ldr r0, [fp, #-80] cmp r3, r2 ldrheq r3, [fp, #-60] - strheq r3, [r10, #2] @ movhi + strheq r3, [r4, #2] @ movhi moveq r3, #0 - strbeq r3, [r10, #6] - strheq r3, [r10, #4] @ movhi + strbeq r3, [r4, #6] + strheq r3, [r4, #4] @ movhi ldm r1, {r1, r2, r3} cmp r3, r2 cmpeq r1, r0 moveq r2, r1 moveq r1, r3 - beq .L1246 + beq .L1273 + ldr r2, [fp, #-72] movw r3, #65535 - cmp r8, r3 - bne .L1140 - ldrb r3, [r10, #8] @ zero_extendqisi2 + cmp r2, r3 + bne .L1167 + ldrb r3, [r4, #8] @ zero_extendqisi2 cmp r3, #0 - bne .L1141 -.L1140: - ldr r3, [r6, #4004] - uxth r7, r4 - uxth r4, r4 + bne .L1168 +.L1167: + ldr r3, [r7, #4012] + uxth r8, r5 + uxth r5, r5 cmn r3, #1 ldreq r3, [fp, #-56] - streq r3, [r6, #4004] + streq r3, [r7, #4012] ldr r3, [fp, #-64] - ldr r6, .L1247 + ldr r7, .L1274 add r3, r3, #7 - cmp r4, r3 - subgt r4, r7, #7 - ldrle r4, [fp, #-64] - uxthgt r4, r4 -.L1144: - cmp r4, r7 - bhi .L1151 + cmp r5, r3 + subgt r5, r8, #7 + ldrle r5, [fp, #-64] + uxthgt r5, r5 +.L1171: + cmp r5, r8 + bhi .L1178 mov r3, #0 - ldrh r8, [r6, #32] - ldr r0, [r6, #3832] - mov r5, r3 + ldrh r9, [r7, #32] + ldr r0, [r7, #3836] + mov r6, r3 ldr r1, [fp, #-76] movw lr, #65535 mov ip, #20 - b .L1152 -.L1125: + b .L1179 +.L1152: ldr r3, [fp, #-64] cmp r3, #0 - beq .L1127 - movw r2, #1755 - ldr r1, .L1247+4 - ldr r0, .L1247+8 + beq .L1154 + movw r2, #1804 + ldr r1, .L1274+4 + ldr r0, .L1274+8 bl sftl_printk -.L1127: +.L1154: ldr r3, [fp, #-80] cmp r3, #0 - cmpne r6, r3 - beq .L1128 - movw r2, #1756 - ldr r1, .L1247+4 - ldr r0, .L1247+8 + cmpne r7, r3 + beq .L1155 + movw r2, #1805 + ldr r1, .L1274+4 + ldr r0, .L1274+8 bl sftl_printk -.L1128: +.L1155: mov r3, #0 - strh r3, [r10, #2] @ movhi - b .L1245 -.L1130: + strh r3, [r4, #2] @ movhi + b .L1272 +.L1157: ldrh r3, [ip], #2 - cmp r3, r7 - beq .L1129 - mla r1, r8, r5, r0 - orr r3, r4, r3, lsl #10 + cmp r3, r8 + beq .L1156 + mla r1, r9, r6, r0 + orr r3, r5, r3, lsl #10 str r3, [r1, #4] ldr r3, [fp, #-68] - mul r3, r3, r5 - add r9, r3, #3 + mul r3, r3, r6 + add r10, r3, #3 cmp r3, #0 - movlt r3, r9 - ldr r9, [fp, #-60] + movlt r3, r10 + ldr r10, [fp, #-60] bic r3, r3, #3 - add r3, r9, r3 + add r3, r10, r3 str r3, [r1, #8] - mul r3, r6, r5 - add r5, r5, #1 - uxth r5, r5 - add r9, r3, #3 + mul r3, r7, r6 + add r6, r6, #1 + uxth r6, r6 + add r10, r3, #3 cmp r3, #0 - movlt r3, r9 + movlt r3, r10 bic r3, r3, #3 add r3, lr, r3 str r3, [r1, #12] -.L1129: +.L1156: add r2, r2, #1 - b .L1126 -.L1136: - ldr r2, [r7] + b .L1153 +.L1163: + ldr r2, [r8] cmp r2, #0 - bne .L1132 - ldr ip, [r7, #12] + bne .L1159 + ldr ip, [r8, #12] ldr r2, [ip, #4] cmn r2, #1 - beq .L1133 - ldr r1, .L1247 + beq .L1160 + ldr r1, [r10, #2544] mov r0, r2 str ip, [fp, #-68] - ldr r1, [r1, #2544] bl ftl_cmp_data_ver ldr ip, [fp, #-68] cmp r0, #0 - ldrne r1, .L1247 addne r2, r2, #1 - strne r2, [r1, #2544] -.L1133: + strne r2, [r10, #2544] +.L1160: ldr r2, [ip] cmn r2, #1 - bne .L1135 -.L1134: - uxth r2, r4 + bne .L1162 +.L1161: + uxth r2, r5 uxth r3, r3 str r2, [fp, #-60] mov r2, #20 mla r9, r2, r3, r9 - b .L1241 -.L1132: - ldr r8, [fp, #-60] -.L1135: + b .L1268 +.L1159: + ldr r2, [fp, #-60] + str r2, [fp, #-72] +.L1162: add r3, r3, #1 - add r7, r7, #20 - b .L1131 -.L1146: + add r8, r8, #20 + b .L1158 +.L1173: ldrh r2, [r1], #2 add r3, r3, #1 cmp r2, lr - mlane r9, ip, r5, r0 - addne r5, r5, #1 - orrne r2, r4, r2, lsl #10 - uxthne r5, r5 - strne r2, [r9, #4] -.L1152: + mlane r10, ip, r6, r0 + addne r6, r6, #1 + orrne r2, r5, r2, lsl #10 + uxthne r6, r6 + strne r2, [r10, #4] +.L1179: uxth r2, r3 - cmp r8, r2 - bhi .L1146 - mov r1, r5 + cmp r9, r2 + bhi .L1173 + mov r1, r6 mov r2, #0 bl FlashReadPages - ldr r3, [r6, #3832] + ldr r3, [r7, #3836] mov r2, #20 movw r1, #65535 - mla r5, r2, r5, r3 -.L1147: - cmp r5, r3 - addeq r4, r4, #1 - uxtheq r4, r4 - beq .L1144 -.L1150: + mla r6, r2, r6, r3 +.L1174: + cmp r6, r3 + addeq r5, r5, #1 + uxtheq r5, r5 + beq .L1171 +.L1177: ldr r2, [r3] cmp r2, #0 - bne .L1141 + bne .L1168 ldr r2, [r3, #12] ldrh r0, [r2] cmp r0, r1 - beq .L1149 + beq .L1176 ldr r2, [r2, #4] cmn r2, #1 - strne r2, [r6, #4004] -.L1149: + strne r2, [r7, #4012] +.L1176: add r3, r3, #20 - b .L1147 -.L1151: + b .L1174 +.L1178: mvn r3, #0 - str r3, [r6, #4004] -.L1141: - ldr r1, .L1247 - mov r2, #1 - movw r3, #4008 - ldr r4, .L1247 - add r0, r1, #3904 - strh r2, [r1, r3] @ movhi + str r3, [r7, #4012] +.L1168: + ldr r5, .L1274+12 + mov r3, #1 + mov r0, r5 + sub r5, r5, #4016 + strh r3, [r0], #-108 @ movhi bl FtlMapBlkWriteDump_data - ldr r8, [fp, #-64] -.L1153: - ldrh ip, [r4, #32] + ldr r9, [fp, #-64] +.L1180: + ldrh ip, [r5, #32] mov r3, #0 - ldr r0, [r4, #3832] - mov r9, r3 + ldr r0, [r5, #3836] + mov r10, r3 ldr r1, [fp, #-76] movw lr, #65535 - mov r5, #20 -.L1154: + mov r6, #20 +.L1181: uxth r2, r3 cmp ip, r2 - bhi .L1156 + bhi .L1183 mov r2, #0 - mov r1, r9 + mov r1, r10 bl FlashReadPages mov r3, #0 -.L1244: +.L1271: str r3, [fp, #-72] ldrh r3, [fp, #-72] - cmp r9, r3 - bhi .L1184 - add r8, r8, #1 - ldrh r3, [r4, #102] - uxth r8, r8 - cmp r3, r8 - bne .L1153 - ldrh r2, [r4, #32] + cmp r10, r3 + bhi .L1211 + add r9, r9, #1 + ldrh r3, [r5, #102] + uxth r9, r9 + cmp r3, r9 + bne .L1180 + ldrh r2, [r5, #32] movw r0, #65535 mov r3, #0 - strh r8, [r10, #2] @ movhi - strh r3, [r10, #4] @ movhi -.L1185: + strh r9, [r4, #2] @ movhi + strh r3, [r4, #4] @ movhi +.L1212: uxth r1, r3 cmp r1, r2 - bcs .L1240 + bcs .L1267 ldr r1, [fp, #-76] ldrh ip, [r1], #2 cmp ip, r0 str r1, [fp, #-76] add r1, r3, #1 - bne .L1245 + bne .L1272 mov r3, r1 - b .L1185 -.L1156: + b .L1212 +.L1183: ldrh r2, [r1], #2 add r3, r3, #1 cmp r2, lr - mlane r6, r5, r9, r0 - orrne r2, r8, r2, lsl #10 - addne r9, r9, #1 - uxthne r9, r9 - strne r2, [r6, #4] - b .L1154 -.L1184: + mlane r7, r6, r10, r0 + orrne r2, r9, r2, lsl #10 + addne r10, r10, #1 + uxthne r10, r10 + strne r2, [r7, #4] + b .L1181 +.L1211: ldr r3, [fp, #-72] - mov r6, #20 - ldr r2, [r4, #3832] - mul r6, r6, r3 + mov r7, #20 + ldr r2, [r5, #3836] + mul r7, r7, r3 str r2, [fp, #-84] - add r7, r2, r6 - ldr r5, [r7, #4] - ubfx r0, r5, #10, #16 - str r5, [fp, #-44] + add r8, r2, r7 + ldr r6, [r8, #4] + ubfx r0, r6, #10, #16 + str r6, [fp, #-44] bl P2V_plane ldr r3, [fp, #-64] - cmp r8, r3 - bcc .L1158 + cmp r9, r3 + bcc .L1185 ldr r2, [fp, #-80] moveq r3, #1 movne r3, #0 @@ -8228,260 +8382,260 @@ FtlRecoverySuperblock: movls r3, #0 andhi r3, r3, #1 cmp r3, #0 - bne .L1158 + bne .L1185 ldr r3, [fp, #-60] ldr r2, [fp, #-68] - cmp r8, r3 + cmp r9, r3 cmpeq r2, r0 - beq .L1159 + beq .L1186 ldr r2, [fp, #-84] - ldr r3, [r2, r6] + ldr r3, [r2, r7] cmn r3, #1 - beq .L1160 - ldr r7, [r7, #12] + beq .L1187 + ldr r8, [r8, #12] movw r3, #61589 - ldrh r2, [r7] + ldrh r2, [r8] cmp r2, r3 - beq .L1161 -.L1168: - ldrh r0, [r10] -.L1243: + beq .L1188 +.L1195: + ldrh r0, [r4] +.L1270: bl decrement_vpc_count -.L1158: +.L1185: ldr r3, [fp, #-72] add r3, r3, #1 - b .L1244 -.L1161: - ldr r3, [r7, #4] + b .L1271 +.L1188: + ldr r3, [r8, #4] cmn r3, #1 str r3, [fp, #-56] - beq .L1162 + beq .L1189 mov r0, r3 - ldr r1, [r4, #2544] + ldr r1, [r5, #2544] bl ftl_cmp_data_ver cmp r0, #0 ldrne r3, [fp, #-56] addne r3, r3, #1 - strne r3, [r4, #2544] -.L1162: - ldrh r2, [r7] + strne r3, [r5, #2544] +.L1189: + ldrh r2, [r8] movw r3, #61589 cmp r2, r3 - beq .L1163 - movw r2, #1905 - ldr r1, .L1247+4 - ldr r0, .L1247+8 + beq .L1190 + movw r2, #1954 + ldr r1, .L1274+4 + ldr r0, .L1274+8 bl sftl_printk -.L1163: - ldr r5, [r7, #8] +.L1190: + ldr r6, [r8, #8] sub r1, fp, #48 - ldr r3, [r7, #12] + ldr r3, [r8, #12] mov r2, #0 - mov r0, r5 + mov r0, r6 str r3, [fp, #-52] bl log2phys - ldr r1, [r4, #4004] + ldr r1, [r5, #4012] cmn r1, #1 - beq .L1164 + beq .L1191 ldr r0, [fp, #-56] bl ftl_cmp_data_ver cmp r0, #0 - beq .L1164 + beq .L1191 ldr r2, [fp, #-52] cmn r2, #1 - beq .L1165 - ldr r0, [r4, #3832] + beq .L1192 + ldr r0, [r5, #3836] mov r1, #1 - add r0, r0, r6 + add r0, r0, r7 str r2, [r0, #4] mov r2, #0 - ldr r7, [r0, #12] + ldr r8, [r0, #12] bl FlashReadPages - ldr r2, [r4, #3832] - ldr r1, [r2, r6] - add r3, r2, r6 + ldr r2, [r5, #3836] + ldr r1, [r2, r7] + add r3, r2, r7 cmn r1, #1 - bne .L1166 -.L1167: + bne .L1193 +.L1194: mvn r3, #0 - ldrh r0, [r10] + ldrh r0, [r4] str r3, [fp, #-52] bl decrement_vpc_count -.L1175: - ldr r6, [fp, #-52] - cmn r6, #1 - beq .L1158 -.L1188: - ubfx r0, r6, #10, #16 +.L1202: + ldr r7, [fp, #-52] + cmn r7, #1 + beq .L1185 +.L1215: + ubfx r0, r7, #10, #16 bl P2V_block_in_plane - ldrh r3, [r4, #40] - mov r5, r0 + ldrh r3, [r5, #40] + mov r6, r0 cmp r3, r0 - bhi .L1180 - movw r2, #2006 - ldr r1, .L1247+4 - ldr r0, .L1247+8 + bhi .L1207 + movw r2, #2055 + ldr r1, .L1274+4 + ldr r0, .L1274+8 bl sftl_printk -.L1180: - ldr r3, .L1247 - ldr r2, [r3, #2324] - lsl r3, r5, #1 +.L1207: + ldr r2, [r5, #2324] + lsl r3, r6, #1 ldrh r3, [r2, r3] cmp r3, #0 - beq .L1181 - mov r0, r5 - b .L1243 -.L1165: + beq .L1208 + mov r0, r6 + b .L1270 +.L1192: ldr r3, [fp, #-44] ldr r2, [fp, #-48] cmp r2, r3 - bne .L1168 + bne .L1195 mov r2, #1 sub r1, fp, #52 - mov r0, r5 + mov r0, r6 bl log2phys - b .L1168 -.L1166: - ldr r1, [r7, #8] - cmp r5, r1 - bne .L1167 - ldr r1, [r7, #4] - ldr r0, [r4, #4004] + b .L1195 +.L1193: + ldr r1, [r8, #8] + cmp r6, r1 + bne .L1194 + ldr r1, [r8, #4] + ldr r0, [r5, #4012] str r1, [fp, #-84] bl ftl_cmp_data_ver cmp r0, #0 - beq .L1167 + beq .L1194 ldr r1, [fp, #-48] ldr r0, [fp, #-44] cmp r1, r0 - bne .L1170 -.L1173: + bne .L1197 +.L1200: ldr r1, [fp, #-52] - mov r0, r5 + mov r0, r6 bl FtlReUsePrevPpa - b .L1167 -.L1170: + b .L1194 +.L1197: ldr r0, [fp, #-52] cmp r1, r0 - beq .L1167 + beq .L1194 cmn r1, #1 - streq r1, [r2, r6] - beq .L1172 + streq r1, [r2, r7] + beq .L1199 str r1, [r3, #4] mov r2, #0 mov r1, #1 mov r0, r3 - ldr r7, [r3, #12] + ldr r8, [r3, #12] bl FlashReadPages -.L1172: - ldr r2, [r4, #3832] - ldr r2, [r2, r6] +.L1199: + ldr r2, [r5, #3836] + ldr r2, [r2, r7] cmn r2, #1 - beq .L1173 - ldr r3, [r7, #4] - ldr r0, [r4, #4004] + beq .L1200 + ldr r3, [r8, #4] + ldr r0, [r5, #4012] mov r1, r3 bl ftl_cmp_data_ver cmp r0, #0 - beq .L1173 + beq .L1200 mov r1, r3 ldr r0, [fp, #-84] bl ftl_cmp_data_ver cmp r0, #0 - beq .L1167 - b .L1173 -.L1164: + beq .L1194 + b .L1200 +.L1191: ldr r3, [fp, #-44] ldr r2, [fp, #-48] cmp r2, r3 - beq .L1175 + beq .L1202 mov r2, #1 sub r1, fp, #44 - mov r0, r5 + mov r0, r6 bl log2phys - ldr r6, [fp, #-48] - cmn r6, #1 - beq .L1175 + ldr r7, [fp, #-48] + cmn r7, #1 + beq .L1202 ldr r3, [fp, #-52] - cmp r6, r3 - beq .L1188 - ubfx r0, r6, #10, #16 + cmp r7, r3 + beq .L1215 + ubfx r0, r7, #10, #16 bl P2V_block_in_plane - ldr r3, .L1247+12 + ldr r3, .L1274+16 ldrh r2, [r3] cmp r2, r0 - beq .L1179 + beq .L1206 ldrh r2, [r3, #48] cmp r2, r0 - beq .L1179 + beq .L1206 ldrh r3, [r3, #96] cmp r3, r0 - bne .L1175 -.L1179: - ldr r0, [r4, #3832] + bne .L1202 +.L1206: + ldr r0, [r5, #3836] mov r2, #0 mov r1, #1 - str r6, [r0, #4] - ldr r7, [r0, #12] + str r7, [r0, #4] + ldr r8, [r0, #12] bl FlashReadPages - ldr r3, [r4, #3832] + ldr r3, [r5, #3836] ldr r3, [r3] cmn r3, #1 - beq .L1175 - ldr r1, [r7, #4] + beq .L1202 + ldr r1, [r8, #4] ldr r0, [fp, #-56] bl ftl_cmp_data_ver cmp r0, #0 - bne .L1175 + bne .L1202 mov r2, #1 sub r1, fp, #48 - mov r0, r5 + mov r0, r6 bl log2phys - b .L1175 -.L1181: - mov r1, r5 - ldr r0, .L1247+16 + b .L1202 +.L1208: + mov r1, r6 + ldr r0, .L1274+20 bl sftl_printk - b .L1158 -.L1160: - ldr r3, [r4, #4012] + b .L1185 +.L1187: + ldr r3, [r5, #4020] cmp r3, #31 - addls r2, r4, r3, lsl #2 + addls r2, r5, r3, lsl #2 addls r3, r3, #1 - strls r3, [r4, #4012] - strls r5, [r2, #4016] - ldrh r0, [r10] + strls r3, [r5, #4020] + strls r6, [r2, #4024] + ldrh r0, [r4] bl decrement_vpc_count - ldr r3, [r4, #4004] + ldr r3, [r5, #4012] cmn r3, #1 ldreq r3, [fp, #-56] - beq .L1242 + beq .L1269 ldr r2, [fp, #-56] cmp r2, r3 - bcs .L1158 + bcs .L1185 mov r3, r2 -.L1242: - str r3, [r4, #4004] - b .L1158 -.L1159: +.L1269: + str r3, [r5, #4012] + b .L1185 +.L1186: ldrb r3, [fp, #-68] @ zero_extendqisi2 ldr r2, [fp, #-68] ldr r1, [fp, #-60] - strb r3, [r10, #6] + strb r3, [r4, #6] ldrh r3, [fp, #-60] - strh r3, [r10, #2] @ movhi -.L1246: - mov r0, r10 + strh r3, [r4, #2] @ movhi +.L1273: + mov r0, r4 bl ftl_sb_update_avl_pages - b .L1240 -.L1248: + b .L1267 +.L1275: .align 2 -.L1247: +.L1274: .word .LANCHOR0 .word .LANCHOR1+421 .word .LC1 + .word .LANCHOR0+4016 .word .LANCHOR0+2348 - .word .LC103 + .word .LC106 .size FtlRecoverySuperblock, .-FtlRecoverySuperblock .align 2 .global FtlSuperblockPowerLostFix @@ -8499,13 +8653,13 @@ FtlSuperblockPowerLostFix: mvn r3, #0 str r3, [fp, #-36] mov r7, #0 - ldr r3, .L1260 + ldr r3, .L1287 movw r1, #61589 mov r4, r0 mov r6, #7 - ldr r2, [r3, #3280] + ldr r2, [r3, #3284] mov r8, r3 - ldr r5, [r3, #3284] + ldr r5, [r3, #3288] str r2, [fp, #-44] mvn r2, #2 str r5, [fp, #-40] @@ -8515,18 +8669,18 @@ FtlSuperblockPowerLostFix: ldrh r2, [r0] strh r7, [r5] @ movhi strh r2, [r5, #2] @ movhi - ldr r2, [r3, #3280] + ldr r2, [r3, #3284] str r1, [r2] - ldr r1, .L1260+4 - ldr r2, [r3, #3280] + ldr r1, .L1287+4 + ldr r2, [r3, #3284] str r1, [r2, #4] -.L1250: +.L1277: subs r6, r6, #1 - beq .L1252 + beq .L1279 ldrh r3, [r4, #4] cmp r3, #0 - bne .L1251 -.L1252: + bne .L1278 +.L1279: ldrh r3, [r4] ldr r1, [r8, #2324] ldrh r0, [r4, #4] @@ -8541,12 +8695,12 @@ FtlSuperblockPowerLostFix: strh r3, [r4, #4] @ movhi sub sp, fp, #32 ldmfd sp, {r4, r5, r6, r7, r8, fp, sp, pc} -.L1251: +.L1278: mov r0, r4 bl get_new_active_ppa cmn r0, #1 str r0, [fp, #-48] - beq .L1252 + beq .L1279 ldr r3, [r8, #2544] mov r1, #1 sub r0, fp, #52 @@ -8560,10 +8714,10 @@ FtlSuperblockPowerLostFix: bl FlashProgPages ldrh r0, [r4] bl decrement_vpc_count - b .L1250 -.L1261: + b .L1277 +.L1288: .align 2 -.L1260: +.L1287: .word .LANCHOR0 .word 305419896 .size FtlSuperblockPowerLostFix, .-FtlSuperblockPowerLostFix @@ -8579,71 +8733,71 @@ FtlLoadBbt: mov ip, sp push {r4, r5, r6, r7, fp, ip, lr, pc} sub fp, ip, #4 - ldr r4, .L1294 - ldr r7, .L1294+4 - ldr r3, [r4, #3280] - ldr r6, [r4, #3284] - str r3, [r4, #3268] - str r6, [r4, #3272] + ldr r4, .L1321 + ldr r3, [r4, #3284] + add r7, r4, #3264 + ldr r6, [r4, #3288] + str r3, [r4, #3272] + str r6, [r4, #3276] bl FtlBbtMemInit ldrh r5, [r4, #98] sub r5, r5, #1 uxth r5, r5 -.L1263: +.L1290: ldrh r3, [r4, #98] sub r3, r3, #16 cmp r5, r3 - ble .L1266 + ble .L1293 lsl r3, r5, #10 mov r2, #1 mov r1, r2 mov r0, r7 - str r3, [r4, #3264] + str r3, [r4, #3268] bl FlashReadPages - ldr r3, [r4, #3260] - cmn r3, #1 - bne .L1264 ldr r3, [r4, #3264] + cmn r3, #1 + bne .L1291 + ldr r3, [r4, #3268] mov r2, #1 mov r1, r2 mov r0, r7 add r3, r3, #1 - str r3, [r4, #3264] + str r3, [r4, #3268] bl FlashReadPages -.L1264: - ldr r3, [r4, #3260] +.L1291: + ldr r3, [r4, #3264] cmn r3, #1 - beq .L1265 + beq .L1292 ldrh r2, [r6] movw r3, #61649 cmp r2, r3 - bne .L1265 + bne .L1292 ldr r3, [r6, #4] strh r5, [r4, #152] @ movhi str r3, [r4, #160] ldrh r3, [r6, #8] strh r3, [r4, #156] @ movhi -.L1266: +.L1293: ldrh r3, [r4, #152] movw r2, #65535 cmp r3, r2 - beq .L1280 + beq .L1307 ldrh r3, [r4, #156] cmp r3, r2 - beq .L1270 + beq .L1297 lsl r3, r3, #10 mov r2, #1 mov r1, r2 - ldr r0, .L1294+4 - str r3, [r4, #3264] + ldr r0, .L1321+4 + str r3, [r4, #3268] bl FlashReadPages - ldr r3, [r4, #3260] + ldr r3, [r4, #3264] cmn r3, #1 - beq .L1270 + beq .L1297 ldrh r2, [r6] movw r3, #61649 cmp r2, r3 - bne .L1270 + bne .L1297 ldr r3, [r6, #4] ldr r2, [r4, #160] cmp r3, r2 @@ -8652,93 +8806,92 @@ FtlLoadBbt: ldrhhi r3, [r6, #8] strhhi r2, [r4, #152] @ movhi strhhi r3, [r4, #156] @ movhi -.L1270: - ldr r7, .L1294+4 +.L1297: + ldr r7, .L1321+4 mov r1, #1 ldrh r0, [r4, #152] bl FtlGetLastWrittenPage sxth r5, r0 add r0, r0, #1 strh r0, [r4, #154] @ movhi -.L1272: +.L1299: cmp r5, #0 - bge .L1275 + bge .L1302 mov r2, #254 - ldr r1, .L1294+8 - ldr r0, .L1294+12 + ldr r1, .L1321+8 + ldr r0, .L1321+12 bl sftl_printk -.L1274: +.L1301: ldrh r3, [r6, #10] ldrh r0, [r6, #12] strh r3, [r4, #158] @ movhi movw r3, #65535 cmp r0, r3 - beq .L1277 + beq .L1304 ldr r2, [r4, #28] cmp r0, r2 - beq .L1277 + beq .L1304 ldrh r3, [r4, #42] lsr r3, r3, #2 cmp r0, r3 cmpcc r2, r3 - bcs .L1277 + bcs .L1304 bl FtlSysBlkNumInit -.L1277: - ldr r6, .L1294+16 +.L1304: + ldr r6, .L1321+16 mov r5, #0 - ldr r7, .L1294+20 -.L1278: + add r7, r6, #3728 +.L1305: ldrh r3, [r4, #54] cmp r5, r3 - bcc .L1279 + bcc .L1306 mov r0, #0 ldmfd sp, {r4, r5, r6, r7, fp, sp, pc} -.L1265: +.L1292: sub r5, r5, #1 uxth r5, r5 - b .L1263 -.L1275: + b .L1290 +.L1302: ldrh r3, [r4, #152] mov r2, #1 mov r1, r2 mov r0, r7 orr r3, r5, r3, lsl #10 - str r3, [r4, #3264] - ldr r3, [r4, #3280] str r3, [r4, #3268] + ldr r3, [r4, #3284] + str r3, [r4, #3272] bl FlashReadPages - ldr r3, [r4, #3260] + ldr r3, [r4, #3264] cmn r3, #1 - beq .L1273 + beq .L1300 ldrh r2, [r6] movw r3, #61649 cmp r2, r3 - beq .L1274 -.L1273: + beq .L1301 +.L1300: sub r5, r5, #1 sxth r5, r5 - b .L1272 -.L1279: + b .L1299 +.L1306: ldrh r2, [r7] - ldr r1, [r4, #3268] + ldr r1, [r4, #3272] ldr r0, [r6, #4]! lsl r2, r2, #2 mla r1, r5, r2, r1 add r5, r5, #1 bl ftl_memcpy - b .L1278 -.L1280: + b .L1305 +.L1307: mvn r0, #0 ldmfd sp, {r4, r5, r6, r7, fp, sp, pc} -.L1295: +.L1322: .align 2 -.L1294: +.L1321: .word .LANCHOR0 - .word .LANCHOR0+3260 + .word .LANCHOR0+3264 .word .LANCHOR1+443 .word .LC1 .word .LANCHOR0+176 - .word .LANCHOR0+3900 .size FtlLoadBbt, .-FtlLoadBbt .align 2 .global FtlMakeBbt @@ -8754,102 +8907,102 @@ FtlMakeBbt: sub fp, ip, #4 sub sp, sp, #4 mov r7, #0 - ldr r8, .L1315 + ldr r8, .L1342 bl FtlBbtMemInit bl FtlLoadFactoryBbt sub r5, r8, #180 sub r9, r8, #18 mov r4, r5 -.L1297: +.L1324: ldrh r3, [r5, #54] cmp r7, r3 - bcc .L1303 + bcc .L1330 mov r0, #0 -.L1304: +.L1331: ldrh r2, [r4, #114] uxth r3, r0 add r5, r0, #1 cmp r2, r3 - bhi .L1305 + bhi .L1332 ldrh r5, [r4, #164] movw r6, #65535 sub r5, r5, #1 uxth r5, r5 -.L1306: +.L1333: ldrh r3, [r4, #164] sub r3, r3, #48 cmp r5, r3 - ble .L1310 + ble .L1337 mov r0, r5 bl FtlBbmIsBadBlock cmp r0, #1 - beq .L1307 + beq .L1334 mov r0, r5 bl FlashTestBlk cmp r0, #0 - beq .L1308 + beq .L1335 mov r0, r5 bl FtlBbmMapBadBlock -.L1307: +.L1334: sub r5, r5, #1 uxth r5, r5 - b .L1306 -.L1303: + b .L1333 +.L1330: ldrh r3, [r9, #2]! movw r2, #65535 - ldr r0, [r5, #3280] - ldr r10, [r5, #3284] + ldr r0, [r5, #3284] + ldr r10, [r5, #3288] cmp r3, r2 - str r0, [r5, #3268] - str r10, [r5, #3272] - beq .L1298 + str r0, [r5, #3272] + str r10, [r5, #3276] + beq .L1325 ldrh ip, [r5, #98] mov r2, #1 mov r1, r2 - ldr r0, .L1315+4 + ldr r0, .L1342+4 mla ip, r7, ip, r3 lsl r3, ip, #10 str ip, [fp, #-44] - str r3, [r5, #3264] + str r3, [r5, #3268] bl FlashReadPages ldrh r2, [r5, #98] - ldr r1, [r5, #3268] + ldr r1, [r5, #3272] ldr r0, [r8] add r2, r2, #7 asr r2, r2, #3 bl ftl_memcpy ldr ip, [fp, #-44] -.L1299: +.L1326: uxth r0, ip add r7, r7, #1 add r8, r8, #4 bl FtlBbmMapBadBlock - b .L1297 -.L1298: + b .L1324 +.L1325: mov r1, r7 bl FlashGetBadBlockList ldr r1, [r8] - ldr r0, [r5, #3268] + ldr r0, [r5, #3272] bl FtlBbt2Bitmap ldrh r6, [r5, #98] -.L1301: +.L1328: sub r6, r6, #1 uxth r6, r6 -.L1300: +.L1327: ldrh r0, [r4, #98] smlabb r0, r0, r7, r6 uxth r0, r0 bl FtlBbmIsBadBlock cmp r0, #1 - beq .L1301 + beq .L1328 mov r1, #16 - ldr r0, [r4, #3284] + ldr r0, [r4, #3288] strh r6, [r9] @ movhi bl __memzero mov r1, #4096 - ldr r0, [r4, #3280] + ldr r0, [r4, #3284] bl __memzero - ldr r3, .L1315+8 + ldr r3, .L1342+8 strh r3, [r10] @ movhi mov r3, #0 str r3, [r10, #4] @@ -8858,47 +9011,47 @@ FtlMakeBbt: strh r3, [r10, #2] @ movhi ldrh r3, [r9] ldr r1, [r8] - ldr r0, [r4, #3268] + ldr r0, [r4, #3272] mla ip, r7, ip, r3 lsl r3, ip, #10 str ip, [fp, #-44] - str r3, [r4, #3264] - ldr r3, .L1315+12 + str r3, [r4, #3268] + ldr r3, .L1342+12 ldrh r2, [r3] lsl r2, r2, #2 bl ftl_memcpy mov r2, #1 - ldr r0, .L1315+4 + ldr r0, .L1342+4 mov r1, r2 bl FlashEraseBlocks mov r3, #1 - ldr r0, .L1315+4 + ldr r0, .L1342+4 mov r2, r3 mov r1, r3 bl FlashProgPages - ldr r3, [r4, #3260] + ldr r3, [r4, #3264] ldr ip, [fp, #-44] cmn r3, #1 - bne .L1299 + bne .L1326 uxth r0, ip bl FtlBbmMapBadBlock - b .L1300 -.L1305: + b .L1327 +.L1332: uxth r0, r0 bl FtlBbmMapBadBlock mov r0, r5 - b .L1304 -.L1308: + b .L1331 +.L1335: ldrh r3, [r4, #152] cmp r3, r6 strheq r5, [r4, #152] @ movhi - beq .L1307 -.L1309: + beq .L1334 +.L1336: strh r5, [r4, #156] @ movhi -.L1310: +.L1337: ldrh r3, [r4, #152] mov r5, #0 - ldr r0, [r4, #3800] + ldr r0, [r4, #3804] mov r1, #1 str r5, [r4, #160] mov r2, #2 @@ -8925,13 +9078,13 @@ FtlMakeBbt: bl FtlBbmTblFlush mov r0, r5 ldmib sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc} -.L1316: +.L1343: .align 2 -.L1315: +.L1342: .word .LANCHOR0+180 - .word .LANCHOR0+3260 + .word .LANCHOR0+3264 .word -3872 - .word .LANCHOR0+3900 + .word .LANCHOR0+3904 .size FtlMakeBbt, .-FtlMakeBbt .align 2 .global FtlVendorPartWrite @@ -8947,27 +9100,27 @@ FtlVendorPartWrite: sub fp, ip, #4 sub sp, sp, #100 mov r7, r0 - ldr r4, .L1326 + ldr r4, .L1353 mov r5, r1 str r2, [fp, #-128] add r2, r0, r1 ldrh r3, [r4, #96] cmp r2, r3 mvnhi r8, #0 - bhi .L1317 + bhi .L1344 ldrh r6, [r4, #108] mov r8, #0 lsr r6, r0, r6 lsl r10, r6, #2 -.L1319: +.L1346: cmp r5, #0 - bne .L1324 -.L1317: + bne .L1351 +.L1344: mov r0, r8 sub sp, fp, #40 ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc} -.L1324: - ldr r3, [r4, #3884] +.L1351: + ldr r3, [r4, #3888] mov r0, r7 ldrh r2, [r4, #58] ldr ip, [r3, r10] @@ -8986,8 +9139,8 @@ FtlVendorPartWrite: cmpne r9, r2 movne r1, #1 moveq r1, #0 - beq .L1321 - ldr r2, [r4, #3848] + beq .L1348 + ldr r2, [r4, #3852] sub r0, fp, #124 str ip, [fp, #-120] str r2, [fp, #-116] @@ -8996,10 +9149,10 @@ FtlVendorPartWrite: mov r2, #1 mov r1, r2 bl FlashReadPages -.L1322: +.L1349: ldr r3, [fp, #-132] lsl ip, r9, #9 - ldr r0, [r4, #3848] + ldr r0, [r4, #3852] sub r5, r5, r9 mov r2, ip ldr r1, [fp, #-128] @@ -9009,8 +9162,8 @@ FtlVendorPartWrite: add r0, r0, r3, lsl #9 bl ftl_memcpy mov r1, r6 - ldr r2, [r4, #3848] - ldr r0, .L1326+4 + ldr r2, [r4, #3852] + ldr r0, .L1353+4 add r6, r6, #1 bl FtlMapWritePage ldr r3, [fp, #-128] @@ -9019,17 +9172,17 @@ FtlVendorPartWrite: mvneq r8, #0 add r3, r3, ip str r3, [fp, #-128] - b .L1319 -.L1321: + b .L1346 +.L1348: ldrh r2, [r4, #110] - ldr r0, [r4, #3848] + ldr r0, [r4, #3852] bl ftl_memset - b .L1322 -.L1327: + b .L1349 +.L1354: .align 2 -.L1326: +.L1353: .word .LANCHOR0 - .word .LANCHOR0+3948 + .word .LANCHOR0+3956 .size FtlVendorPartWrite, .-FtlVendorPartWrite .align 2 .global Ftl_save_ext_data @@ -9043,12 +9196,12 @@ Ftl_save_ext_data: mov ip, sp push {fp, ip, lr, pc} sub fp, ip, #4 - ldr r3, .L1330 - ldr r2, .L1330+4 + ldr r3, .L1357 + ldr r2, .L1357+4 ldr r1, [r3, #2636] cmp r1, r2 ldmfdne sp, {fp, sp, pc} - ldr r2, .L1330+8 + ldr r2, .L1357+8 mov r1, #1 mov r0, #0 str r2, [r3, #2640] @@ -9076,15 +9229,15 @@ Ftl_save_ext_data: str r2, [r3, #2680] ldr r2, [r3, #2568] str r2, [r3, #2684] - ldr r2, .L1330+12 + ldr r2, .L1357+12 bl FtlVendorPartWrite ldmfd sp, {fp, sp, pc} -.L1331: +.L1358: .align 2 -.L1330: +.L1357: .word .LANCHOR0 .word 1179929683 - .word 1342177348 + .word 1342177349 .word .LANCHOR0+2636 .size Ftl_save_ext_data, .-Ftl_save_ext_data .align 2 @@ -9099,32 +9252,32 @@ FtlEctTblFlush: mov ip, sp push {fp, ip, lr, pc} sub fp, ip, #4 - ldr r2, .L1337 - ldrh r3, [r2, #-8] + ldr r2, .L1364 + ldrh r3, [r2] cmp r3, #31 addls r3, r3, #1 - movhi r2, #32 - strhls r3, [r2, #-8] @ movhi - movls r2, #1 + movhi r3, #32 + strhls r3, [r2] @ movhi + movls r3, #1 cmp r0, #0 - ldr r3, .L1337+4 - bne .L1334 - ldr r1, [r3, #3860] + ldr r2, .L1364+4 + bne .L1361 + ldr r1, [r2, #3864] ldr r0, [r1, #20] ldr r1, [r1, #16] - add r2, r2, r0 - cmp r1, r2 - bcc .L1335 -.L1334: - ldr r2, [r3, #3860] + add r3, r3, r0 + cmp r1, r3 + bcc .L1362 +.L1361: + ldr r3, [r2, #3864] mov r0, #64 - ldr r1, [r2, #16] - str r1, [r2, #20] - ldr r1, .L1337+8 - str r1, [r2] - movw r1, #3852 - ldrh r1, [r3, r1] - ldr r2, [r3, #3860] + ldr r1, [r3, #16] + str r1, [r3, #20] + ldr r1, .L1364+8 + str r1, [r3] + ldr r3, .L1364+12 + ldr r2, [r2, #3864] + ldrh r1, [r3] lsl r3, r1, #9 str r3, [r2, #12] ldr r3, [r2, #8] @@ -9134,15 +9287,16 @@ FtlEctTblFlush: str r3, [r2, #4] bl FtlVendorPartWrite bl Ftl_save_ext_data -.L1335: +.L1362: mov r0, #0 ldmfd sp, {fp, sp, pc} -.L1338: +.L1365: .align 2 -.L1337: +.L1364: .word .LANCHOR3-4032 .word .LANCHOR0 .word 1112818501 + .word .LANCHOR0+3856 .size FtlEctTblFlush, .-FtlEctTblFlush .align 2 .global FtlVendorPartRead @@ -9151,85 +9305,106 @@ FtlEctTblFlush: .fpu softvfp .type FtlVendorPartRead, %function FtlVendorPartRead: - @ args = 0, pretend = 0, frame = 92 + @ args = 0, pretend = 0, frame = 96 @ frame_needed = 1, uses_anonymous_args = 0 mov ip, sp push {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc} sub fp, ip, #4 - sub sp, sp, #92 + sub sp, sp, #96 mov r9, r2 - ldr r5, .L1348 - mov r7, r1 + ldr r3, .L1376 + mov r6, r1 add r1, r0, r1 - mov r10, r0 - ldrh r2, [r5, #96] + mov r7, r0 + ldrh r2, [r3, #96] + mov r10, r3 cmp r1, r2 mvnhi r8, #0 - bhi .L1339 - ldrh r6, [r5, #108] + bhi .L1366 + ldrh r5, [r3, #108] mov r8, #0 - lsr r6, r0, r6 - lsl r6, r6, #2 -.L1341: - cmp r7, #0 - bne .L1346 -.L1339: + lsr r5, r0, r5 + lsl r3, r5, #2 + str r3, [fp, #-128] +.L1368: + cmp r6, #0 + bne .L1374 +.L1366: mov r0, r8 sub sp, fp, #40 ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc} -.L1346: - ldr r2, [r5, #3884] - mov r0, r10 - ldrh r4, [r5, #58] - ldr ip, [r2, r6] +.L1374: + ldr r3, [fp, #-128] + mov r0, r7 + ldr r2, [r10, #3888] + ldrh r4, [r10, #58] + ldr ip, [r2, r3] mov r1, r4 - str ip, [fp, #-128] + str ip, [fp, #-136] bl __umodsi3 sub r4, r4, r0 - ldr ip, [fp, #-128] + ldr ip, [fp, #-136] uxth r4, r4 str r0, [fp, #-132] - cmp r7, r4 - uxthcc r4, r7 + cmp r6, r4 + uxthcc r4, r6 cmp ip, #0 lsl r3, r4, #9 - str r3, [fp, #-128] - beq .L1343 - ldr r2, [r5, #3848] - sub r3, fp, #104 + str r3, [fp, #-136] + beq .L1370 + ldr r2, [r10, #3852] sub r0, fp, #124 - str r3, [fp, #-112] str ip, [fp, #-120] + str ip, [fp, #-136] str r2, [fp, #-116] + sub r2, fp, #104 + str r2, [fp, #-112] mov r2, #1 mov r1, r2 bl FlashReadPages - ldr r1, [r5, #3848] - mov r0, r9 - ldr r3, [fp, #-132] ldr r2, [fp, #-124] - add r1, r1, r3, lsl #9 + ldr ip, [fp, #-136] cmn r2, #1 - lsl r2, r4, #9 + ldr r2, [r10, #3264] mvneq r8, #0 + cmp r2, #256 + bne .L1372 + mov r2, ip + mov r1, r5 + ldr r0, .L1376+4 + bl sftl_printk + ldr r2, [r10, #3852] + mov r1, r5 + ldr r0, .L1376+8 + bl FtlMapWritePage +.L1372: + ldr r1, [r10, #3852] + lsl r2, r4, #9 + ldr r3, [fp, #-132] + mov r0, r9 + add r1, r1, r3, lsl #9 bl ftl_memcpy -.L1345: +.L1373: ldr r3, [fp, #-128] - sub r7, r7, r4 - add r10, r10, r4 - add r6, r6, #4 - add r9, r9, r3 - b .L1341 -.L1343: + add r5, r5, #1 + sub r6, r6, r4 + add r7, r7, r4 + add r9, r9, r4, lsl #9 + add r3, r3, #4 + str r3, [fp, #-128] + b .L1368 +.L1370: lsl r2, r4, #9 mov r1, ip mov r0, r9 bl ftl_memset - b .L1345 -.L1349: + b .L1373 +.L1377: .align 2 -.L1348: +.L1376: .word .LANCHOR0 + .word .LC107 + .word .LANCHOR0+3956 .size FtlVendorPartRead, .-FtlVendorPartRead .align 2 .global FtlLoadEctTbl @@ -9243,34 +9418,34 @@ FtlLoadEctTbl: mov ip, sp push {r4, r5, fp, ip, lr, pc} sub fp, ip, #4 - ldr r4, .L1352 - movw r5, #3852 + ldr r4, .L1380 mov r0, #64 - ldr r2, [r4, #3860] - ldrh r1, [r4, r5] + add r5, r4, #3856 + ldr r2, [r4, #3864] + ldrh r1, [r5] bl FtlVendorPartRead - ldr r3, [r4, #3860] + ldr r3, [r4, #3864] ldr r2, [r3] - ldr r3, .L1352+4 + ldr r3, .L1380+4 cmp r2, r3 - beq .L1351 - ldr r1, .L1352+8 - ldr r0, .L1352+12 + beq .L1379 + ldr r1, .L1380+8 + ldr r0, .L1380+12 bl sftl_printk - ldrh r2, [r4, r5] + ldrh r2, [r5] mov r1, #0 - ldr r0, [r4, #3860] + ldr r0, [r4, #3864] lsl r2, r2, #9 bl ftl_memset -.L1351: +.L1379: mov r0, #0 ldmfd sp, {r4, r5, fp, sp, pc} -.L1353: +.L1381: .align 2 -.L1352: +.L1380: .word .LANCHOR0 .word 1112818501 - .word .LC104 + .word .LC108 .word .LC71 .size FtlLoadEctTbl, .-FtlLoadEctTbl .align 2 @@ -9285,23 +9460,23 @@ Ftl_load_ext_data: mov ip, sp push {r4, r5, fp, ip, lr, pc} sub fp, ip, #4 - ldr r4, .L1357 + ldr r4, .L1385 mov r1, #1 mov r0, #0 - ldr r2, .L1357+4 + ldr r2, .L1385+4 bl FtlVendorPartRead - ldr r5, .L1357+8 + ldr r5, .L1385+8 ldr r3, [r4, #2636] cmp r3, r5 - beq .L1355 + beq .L1383 mov r1, #512 - ldr r0, .L1357+4 + ldr r0, .L1385+4 bl __memzero str r5, [r4, #2636] -.L1355: +.L1383: ldr r3, [r4, #2636] cmp r3, r5 - bne .L1356 + bne .L1384 ldr r3, [r4, #2724] str r3, [r4, #2532] ldr r3, [r4, #2728] @@ -9326,7 +9501,7 @@ Ftl_load_ext_data: str r3, [r4, #2564] ldr r3, [r4, #2684] str r3, [r4, #2568] -.L1356: +.L1384: ldrh r2, [r4, #92] ldr r3, [r4, #2552] ldr r0, [r4, #2548] @@ -9335,9 +9510,9 @@ Ftl_load_ext_data: bl __udivsi3 str r0, [r4, #2556] ldmfd sp, {r4, r5, fp, sp, pc} -.L1358: +.L1386: .align 2 -.L1357: +.L1385: .word .LANCHOR0 .word .LANCHOR0+2636 .word 1179929683 @@ -9354,60 +9529,60 @@ FtlVpcTblFlush: mov ip, sp push {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc} sub fp, ip, #4 - ldr r4, .L1371 + ldr r4, .L1396 mov r6, #0 mov r1, #255 - ldr r10, .L1371+4 - ldr r3, [r4, #3280] + ldr r10, .L1396+4 + ldr r3, [r4, #3284] add r5, r4, #2576 - ldr r7, [r4, #3284] - sub r8, r5, #308 - add r9, r5, #684 - str r3, [r4, #3268] + ldr r8, [r4, #3288] + sub r7, r5, #308 + add r9, r4, #3264 + str r3, [r4, #3272] ldrh r3, [r5] - str r7, [r4, #3272] - str r6, [r7, #12] - strh r3, [r7, #2] @ movhi - ldr r3, .L1371+8 - strh r3, [r7] @ movhi + str r8, [r4, #3276] + str r6, [r8, #12] + strh r3, [r8, #2] @ movhi + ldr r3, .L1396+8 + strh r3, [r8] @ movhi ldr r3, [r4, #2584] - str r6, [r7, #8] + str r6, [r8, #8] ldrh r2, [r5, #-226] - str r3, [r7, #4] - ldr r3, .L1371+12 + str r3, [r8, #4] + ldr r3, .L1396+12 str r3, [r4, #2268] - ldr r3, .L1371+16 + ldr r3, .L1396+16 str r3, [r4, #2272] ldrh r3, [r5, #6] - strh r3, [r8, #8] @ movhi + strh r3, [r7, #8] @ movhi ldrh r3, [r4, #54] strb r3, [r4, #2278] movw r3, #2348 ldrh r3, [r4, r3] - strh r3, [r8, #14] @ movhi + strh r3, [r7, #14] @ movhi ldrb r3, [r4, #2354] @ zero_extendqisi2 orr r3, r3, r2, lsl #6 ldrh r2, [r5, #-178] - strh r3, [r8, #16] @ movhi + strh r3, [r7, #16] @ movhi ldrb r3, [r4, #2356] @ zero_extendqisi2 strb r3, [r4, #2279] movw r3, #2396 ldrh r3, [r4, r3] - strh r3, [r8, #18] @ movhi + strh r3, [r7, #18] @ movhi ldrb r3, [r4, #2402] @ zero_extendqisi2 orr r3, r3, r2, lsl #6 - strh r3, [r8, #20] @ movhi + strh r3, [r7, #20] @ movhi ldrb r3, [r4, #2404] @ zero_extendqisi2 strb r3, [r4, #2280] movw r3, #2444 ldrh r3, [r4, r3] - strh r3, [r8, #22] @ movhi + strh r3, [r7, #22] @ movhi ldrh r2, [r5, #-130] ldrb r3, [r4, #2450] @ zero_extendqisi2 - ldr r0, [r4, #3268] + ldr r0, [r4, #3272] orr r3, r3, r2, lsl #6 ldrh r2, [r4, #110] - strh r3, [r8, #24] @ movhi + strh r3, [r7, #24] @ movhi ldrb r3, [r4, #2452] @ zero_extendqisi2 strb r3, [r4, #2281] ldr r3, [r4, #2548] @@ -9416,20 +9591,26 @@ FtlVpcTblFlush: str r3, [r4, #2308] ldr r3, [r4, #2544] str r3, [r4, #2304] + movw r3, #3202 + ldrh r3, [r4, r3] + strh r3, [r7, #44] @ movhi + movw r3, #3204 + ldrh r3, [r4, r3] + strh r3, [r7, #46] @ movhi bl ftl_memset - mov r1, r8 + mov r1, r7 mov r2, #48 - ldr r0, [r4, #3268] - movw r8, #65535 + ldr r0, [r4, #3272] + movw r7, #65535 bl ftl_memcpy ldrh r2, [r4, #40] - ldr r0, [r4, #3268] + ldr r0, [r4, #3272] ldr r1, [r4, #2324] lsl r2, r2, #1 add r0, r0, #48 bl ftl_memcpy ldrh r0, [r4, #40] - ldr r3, [r4, #3268] + ldr r3, [r4, #3272] ldr r1, [r4, #24] lsr r2, r0, #3 add r0, r0, #24 @@ -9440,16 +9621,16 @@ FtlVpcTblFlush: bl ftl_memcpy mov r0, r6 bl FtlUpdateVaildLpn -.L1360: - ldr r3, [r4, #3280] +.L1388: + ldr r3, [r4, #3284] mov r0, r9 ldrh r2, [r5] - str r3, [r4, #3268] - ldr r3, [r4, #3284] str r3, [r4, #3272] + ldr r3, [r4, #3288] + str r3, [r4, #3276] ldrh r3, [r5, #2] orr r3, r3, r2, lsl #10 - str r3, [r4, #3264] + str r3, [r4, #3268] mov r3, #1 mov r2, r3 mov r1, r3 @@ -9458,9 +9639,9 @@ FtlVpcTblFlush: ldrh r2, [r5, #2] sub r3, r3, #1 cmp r2, r3 - blt .L1361 + blt .L1389 ldrh r3, [r5] - ldrh r8, [r5, #4] + ldrh r7, [r5, #4] strh r3, [r5, #4] @ movhi mov r3, #0 strh r3, [r5, #2] @ movhi @@ -9471,29 +9652,29 @@ FtlVpcTblFlush: str r3, [r4, #2584] str r2, [r4, #2540] lsl r2, r0, #10 - str r2, [r4, #3264] - str r3, [r7, #4] + str r2, [r4, #3268] + str r3, [r8, #4] mov r3, #1 - strh r0, [r7, #2] @ movhi + strh r0, [r8, #2] @ movhi mov r2, r3 mov r1, r3 mov r0, r9 bl FlashProgPages -.L1361: +.L1389: ldrh r3, [r5, #2] - ldr r2, [r4, #3260] + ldr r2, [r4, #3264] add r3, r3, #1 uxth r3, r3 cmn r2, #1 strh r3, [r5, #2] @ movhi - bne .L1362 + bne .L1390 cmp r3, #1 - bne .L1363 - movw r2, #1124 + bne .L1391 + movw r2, #1169 mov r1, r10 - ldr r0, .L1371+20 + ldr r0, .L1396+20 bl sftl_printk -.L1363: +.L1391: ldrh r3, [r5, #2] add r6, r6, #1 uxth r6, r6 @@ -9502,370 +9683,38 @@ FtlVpcTblFlush: subeq r3, r3, #1 strheq r3, [r5, #2] @ movhi cmp r6, #3 - bls .L1360 + bls .L1388 mov r2, r6 - ldr r1, [r4, #3264] - ldr r0, .L1371+24 + ldr r1, [r4, #3268] + ldr r0, .L1396+24 bl sftl_printk -.L1366: - b .L1366 -.L1362: - cmp r3, #1 - beq .L1360 +.L1394: + b .L1394 +.L1390: + cmp r2, #256 + cmpne r3, #1 + beq .L1388 movw r3, #65535 - cmp r8, r3 - beq .L1367 + cmp r7, r3 + beq .L1395 mov r1, #1 - mov r0, r8 + mov r0, r7 bl FtlFreeSysBlkQueueIn -.L1367: +.L1395: mov r0, #0 ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc} -.L1372: +.L1397: .align 2 -.L1371: +.L1396: .word .LANCHOR0 .word .LANCHOR1+454 .word -3932 .word 1179929683 - .word 1342177348 + .word 1342177349 .word .LC1 - .word .LC105 + .word .LC109 .size FtlVpcTblFlush, .-FtlVpcTblFlush .align 2 - .global FtlVpcCheckAndModify - .syntax unified - .arm - .fpu softvfp - .type FtlVpcCheckAndModify, %function -FtlVpcCheckAndModify: - @ args = 0, pretend = 0, frame = 4 - @ frame_needed = 1, uses_anonymous_args = 0 - mov ip, sp - push {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc} - sub fp, ip, #4 - sub sp, sp, #4 - mov r5, #0 - ldr r4, .L1385 - ldr r1, .L1385+4 - ldr r0, .L1385+8 - bl sftl_printk - ldrh r2, [r4, #42] - mov r1, #0 - ldr r0, [r4, #3864] - lsl r2, r2, #1 - bl ftl_memset -.L1374: - ldr r3, [r4, #2504] - cmp r5, r3 - bcc .L1376 - ldr r9, .L1385+12 - mov r6, #0 - ldr r10, .L1385+16 -.L1377: - ldrh r3, [r4, #40] - uxth r5, r6 - cmp r3, r5 - bhi .L1381 - ldmib sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc} -.L1376: - mov r2, #0 - sub r1, fp, #44 - mov r0, r5 - bl log2phys - ldr r0, [fp, #-44] - cmn r0, #1 - beq .L1375 - ubfx r0, r0, #10, #16 - bl P2V_block_in_plane - ldr r2, [r4, #3864] - lsl r0, r0, #1 - ldrh r3, [r2, r0] - add r3, r3, #1 - strh r3, [r2, r0] @ movhi -.L1375: - add r5, r5, #1 - b .L1374 -.L1381: - uxth r8, r6 - ldr r3, [r4, #2324] - movw r1, #65535 - lsl r7, r8, #1 - ldrh r2, [r3, r7] - ldr r3, [r4, #3864] - ldrh r3, [r3, r7] - cmp r2, r1 - cmpne r2, r3 - beq .L1379 - mov r1, r8 - mov r0, r9 - bl sftl_printk - ldrh r3, [r10] - cmp r3, r5 - beq .L1379 - ldr r3, .L1385+20 - ldrh r2, [r3] - cmp r2, r5 - beq .L1379 - ldrh r3, [r3, #-48] - cmp r3, r5 - beq .L1379 - ldr r3, [r4, #3864] - mov r0, r8 - ldrh r2, [r3, r7] - ldr r3, [r4, #2324] - strh r2, [r3, r7] @ movhi - bl update_vpc_list - bl l2p_flush - bl FtlVpcTblFlush -.L1379: - add r6, r6, #1 - b .L1377 -.L1386: - .align 2 -.L1385: - .word .LANCHOR0 - .word .LANCHOR1+469 - .word .LC95 - .word .LC106 - .word .LANCHOR0+2348 - .word .LANCHOR0+2444 - .size FtlVpcCheckAndModify, .-FtlVpcCheckAndModify - .align 2 - .global allocate_new_data_superblock - .syntax unified - .arm - .fpu softvfp - .type allocate_new_data_superblock, %function -allocate_new_data_superblock: - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 1, uses_anonymous_args = 0 - mov ip, sp - push {r4, r5, r6, fp, ip, lr, pc} - sub fp, ip, #4 - ldr r4, .L1397 - mov r6, r0 - ldrh r5, [r0] - ldrh r3, [r4, #40] - cmp r3, r5 - bcs .L1388 - movw r2, #2681 - ldr r1, .L1397+4 - ldr r0, .L1397+8 - bl sftl_printk -.L1388: - movw r3, #65535 - cmp r5, r3 - beq .L1389 - ldr r2, [r4, #2324] - lsl r3, r5, #1 - mov r0, r5 - ldrh r3, [r2, r3] - cmp r3, #0 - beq .L1390 - bl INSERT_DATA_LIST -.L1389: - mov r3, #1 - strb r3, [r6, #8] - movw r3, #3992 - ldrh r0, [r4, r3] - movw r3, #65535 - cmp r0, r3 - beq .L1391 - cmp r5, r0 - bne .L1392 - ldr r2, [r4, #2324] - lsl r3, r0, #1 - ldrh r3, [r2, r3] - cmp r3, #0 - beq .L1393 -.L1392: - bl update_vpc_list -.L1393: - mvn r2, #0 - movw r3, #3992 - strh r2, [r4, r3] @ movhi -.L1391: - mov r0, r6 - bl allocate_data_superblock - bl l2p_flush - mov r0, #0 - bl FtlEctTblFlush - bl FtlVpcTblFlush - mov r0, #0 - ldmfd sp, {r4, r5, r6, fp, sp, pc} -.L1390: - bl INSERT_FREE_LIST - b .L1389 -.L1398: - .align 2 -.L1397: - .word .LANCHOR0 - .word .LANCHOR1+490 - .word .LC1 - .size allocate_new_data_superblock, .-allocate_new_data_superblock - .align 2 - .global FtlProgPages - .syntax unified - .arm - .fpu softvfp - .type FtlProgPages, %function -FtlProgPages: - @ args = 0, pretend = 0, frame = 8 - @ frame_needed = 1, uses_anonymous_args = 0 - mov ip, sp - push {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc} - sub fp, ip, #4 - sub sp, sp, #8 - mov r7, #0 - ldr r6, .L1413 - mov r4, r3 - ldr r10, .L1413+4 - mov r2, #0 - ldrb r3, [r3, #9] @ zero_extendqisi2 - mov r5, r0 - mov r9, r1 - bl FlashProgPages -.L1400: - cmp r7, r9 - beq .L1407 - mov r8, #0 - b .L1408 -.L1403: - ldr r0, [r5, #4] - ubfx r0, r0, #10, #16 - bl P2V_block_in_plane - ldrh r3, [r4] - cmp r3, r0 - bne .L1401 - ldr r1, [r6, #2324] - lsl r3, r3, #1 - ldrh r0, [r4, #4] - ldrh r2, [r1, r3] - sub r2, r2, r0 - strh r2, [r1, r3] @ movhi - ldrh r3, [r6, #102] - strb r8, [r4, #6] - strh r8, [r4, #4] @ movhi - strh r3, [r4, #2] @ movhi -.L1401: - ldrh r3, [r4, #4] - cmp r3, #0 - bne .L1402 - mov r0, r4 - bl allocate_new_data_superblock -.L1402: - ldr r3, [r6, #2732] - add r3, r3, #1 - str r3, [r6, #2732] - ldr r0, [r5, #4] - ubfx r0, r0, #10, #16 - bl FtlGcMarkBadPhyBlk - mov r0, r4 - bl get_new_active_ppa - mov r2, #0 - str r0, [r5, #4] - str r0, [fp, #-44] - mov r1, #1 - ldrb r3, [r4, #9] @ zero_extendqisi2 - mov r0, r5 - bl FlashProgPages -.L1408: - ldr r3, [r5] - cmn r3, #1 - beq .L1403 - ldrb r2, [r4, #6] @ zero_extendqisi2 - ldrh r3, [r6, #32] - cmp r2, r3 - bcc .L1404 - movw r2, #933 - mov r1, r10 - ldr r0, .L1413+8 - bl sftl_printk -.L1404: - ldr r3, [r5, #4] - sub r1, fp, #40 - mov r2, #1 - ldr r0, [r5, #16] - str r3, [r1, #-4]! - bl log2phys - ldr r3, [r5, #12] - ldr r3, [r3, #12] - ubfx r0, r3, #10, #16 - str r3, [fp, #-48] - bl P2V_block_in_plane - ldr r3, [fp, #-48] - mov r8, r0 - cmn r3, #1 - beq .L1405 - ldr r2, [r6, #2324] - lsl r3, r0, #1 - ldrh r2, [r2, r3] - cmp r2, #0 - bne .L1406 - mov r1, r0 - ldr r0, .L1413+12 - bl sftl_printk -.L1406: - mov r0, r8 - bl decrement_vpc_count -.L1405: - add r7, r7, #1 - add r5, r5, #20 - b .L1400 -.L1407: - ldrb r2, [r4, #6] @ zero_extendqisi2 - ldrh r3, [r6, #32] - cmp r2, r3 - bcc .L1399 - mov r2, #948 - ldr r1, .L1413+4 - ldr r0, .L1413+8 - bl sftl_printk -.L1399: - sub sp, fp, #40 - ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc} -.L1414: - .align 2 -.L1413: - .word .LANCHOR0 - .word .LANCHOR1+519 - .word .LC1 - .word .LC107 - .size FtlProgPages, .-FtlProgPages - .align 2 - .global FtlCacheWriteBack - .syntax unified - .arm - .fpu softvfp - .type FtlCacheWriteBack, %function -FtlCacheWriteBack: - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 1, uses_anonymous_args = 0 - mov ip, sp - push {r4, fp, ip, lr, pc} - sub fp, ip, #4 - ldr r4, .L1420 - ldr r0, [r4, #3988] - cmp r0, #0 - beq .L1416 - ldr r3, .L1420+4 - mov r2, #0 - mov r1, #1 - ldr r3, [r3, #-4036] - bl FtlProgPages - mov r3, #0 - str r3, [r4, #3988] -.L1416: - mov r0, #0 - ldmfd sp, {r4, fp, sp, pc} -.L1421: - .align 2 -.L1420: - .word .LANCHOR0 - .word .LANCHOR3 - .size FtlCacheWriteBack, .-FtlCacheWriteBack - .align 2 .global FtlSysFlush .syntax unified .arm @@ -9877,7 +9726,6 @@ FtlSysFlush: mov ip, sp push {fp, ip, lr, pc} sub fp, ip, #4 - bl FtlCacheWriteBack bl l2p_flush mov r0, #1 bl FtlEctTblFlush @@ -9897,17 +9745,17 @@ sftl_deinit: mov ip, sp push {fp, ip, lr, pc} sub fp, ip, #4 - ldr r3, .L1425 + ldr r3, .L1401 ldr r3, [r3] cmp r3, #1 - bne .L1424 + bne .L1400 bl FtlSysFlush -.L1424: +.L1400: mov r0, #0 ldmfd sp, {fp, sp, pc} -.L1426: +.L1402: .align 2 -.L1425: +.L1401: .word .LANCHOR2 .size sftl_deinit, .-sftl_deinit .align 2 @@ -9924,69 +9772,67 @@ FtlDiscard: sub fp, ip, #4 sub sp, sp, #8 add r2, r0, r1 - ldr r6, .L1442 - mov r7, r0 + ldr r6, .L1418 + mov r8, r0 mov r5, r1 ldr r3, [r6, #140] cmp r2, r3 mvnhi r0, #0 - bhi .L1427 + bhi .L1403 cmp r1, #31 - bhi .L1429 -.L1434: + bhi .L1405 +.L1410: mov r0, #0 -.L1427: +.L1403: sub sp, fp, #32 ldmfd sp, {r4, r5, r6, r7, r8, fp, sp, pc} -.L1429: - bl FtlCacheWriteBack +.L1405: ldrh r4, [r6, #58] - mov r0, r7 mov r1, r4 bl __udivsi3 smulbb r3, r0, r4 - mov r8, r0 - sub r7, r7, r3 - uxth r7, r7 - cmp r7, #0 - beq .L1430 - sub r4, r4, r7 - add r8, r0, #1 + mov r7, r0 + sub r8, r8, r3 + uxth r8, r8 + cmp r8, #0 + beq .L1406 + sub r4, r4, r8 + add r7, r0, #1 cmp r4, r5 movcs r4, r5 uxth r4, r4 sub r5, r5, r4 -.L1430: - ldr r4, .L1442+4 +.L1406: + ldr r4, .L1418+4 mvn r3, #0 str r3, [fp, #-36] -.L1431: +.L1407: ldrh r3, [r6, #58] cmp r5, r3 - bcs .L1433 - ldr r3, .L1442+4 - ldr r2, [r3, #-4032] + bcs .L1409 + ldr r3, .L1418+4 + ldr r2, [r3, #-4028] cmp r2, #32 - bls .L1434 + bls .L1410 mov r4, #0 - str r4, [r3, #-4032] + str r4, [r3, #-4028] bl l2p_flush bl FtlVpcTblFlush - b .L1434 -.L1433: + b .L1410 +.L1409: mov r2, #0 sub r1, fp, #40 - mov r0, r8 + mov r0, r7 bl log2phys ldr r3, [fp, #-40] cmn r3, #1 - beq .L1432 - ldr r3, [r4, #-4032] + beq .L1408 + ldr r3, [r4, #-4028] mov r2, #1 sub r1, fp, #36 - mov r0, r8 + mov r0, r7 add r3, r3, #1 - str r3, [r4, #-4032] + str r3, [r4, #-4028] ldr r3, [r6, #2512] add r3, r3, #1 str r3, [r6, #2512] @@ -9995,18 +9841,320 @@ FtlDiscard: ubfx r0, r0, #10, #16 bl P2V_block_in_plane bl decrement_vpc_count -.L1432: +.L1408: ldrh r3, [r6, #58] - add r8, r8, #1 + add r7, r7, #1 sub r5, r5, r3 - b .L1431 -.L1443: + b .L1407 +.L1419: .align 2 -.L1442: +.L1418: .word .LANCHOR0 .word .LANCHOR3 .size FtlDiscard, .-FtlDiscard .align 2 + .global FtlVpcCheckAndModify + .syntax unified + .arm + .fpu softvfp + .type FtlVpcCheckAndModify, %function +FtlVpcCheckAndModify: + @ args = 0, pretend = 0, frame = 4 + @ frame_needed = 1, uses_anonymous_args = 0 + mov ip, sp + push {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc} + sub fp, ip, #4 + sub sp, sp, #4 + mov r5, #0 + ldr r4, .L1432 + ldr r1, .L1432+4 + ldr r0, .L1432+8 + bl sftl_printk + ldrh r2, [r4, #42] + mov r1, #0 + ldr r0, [r4, #3868] + lsl r2, r2, #1 + bl ftl_memset +.L1421: + ldr r3, [r4, #2504] + cmp r5, r3 + bcc .L1423 + ldr r9, .L1432+12 + mov r6, #0 + ldr r10, .L1432+16 +.L1424: + ldrh r3, [r4, #40] + uxth r5, r6 + cmp r3, r5 + bhi .L1428 + ldmib sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc} +.L1423: + mov r2, #0 + sub r1, fp, #44 + mov r0, r5 + bl log2phys + ldr r0, [fp, #-44] + cmn r0, #1 + beq .L1422 + ubfx r0, r0, #10, #16 + bl P2V_block_in_plane + ldr r2, [r4, #3868] + lsl r0, r0, #1 + ldrh r3, [r2, r0] + add r3, r3, #1 + strh r3, [r2, r0] @ movhi +.L1422: + add r5, r5, #1 + b .L1421 +.L1428: + uxth r8, r6 + ldr r3, [r4, #2324] + movw r1, #65535 + lsl r7, r8, #1 + ldrh r2, [r3, r7] + ldr r3, [r4, #3868] + ldrh r3, [r3, r7] + cmp r2, r1 + cmpne r2, r3 + beq .L1426 + mov r1, r8 + mov r0, r9 + bl sftl_printk + ldrh r3, [r10] + cmp r3, r5 + beq .L1426 + ldr r3, .L1432+20 + ldrh r2, [r3] + cmp r2, r5 + beq .L1426 + ldrh r3, [r3, #-48] + cmp r3, r5 + beq .L1426 + ldr r3, [r4, #3868] + mov r0, r8 + ldrh r2, [r3, r7] + ldr r3, [r4, #2324] + strh r2, [r3, r7] @ movhi + bl update_vpc_list + bl l2p_flush + bl FtlVpcTblFlush +.L1426: + add r6, r6, #1 + b .L1424 +.L1433: + .align 2 +.L1432: + .word .LANCHOR0 + .word .LANCHOR1+469 + .word .LC97 + .word .LC110 + .word .LANCHOR0+2348 + .word .LANCHOR0+2444 + .size FtlVpcCheckAndModify, .-FtlVpcCheckAndModify + .align 2 + .global allocate_new_data_superblock + .syntax unified + .arm + .fpu softvfp + .type allocate_new_data_superblock, %function +allocate_new_data_superblock: + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 1, uses_anonymous_args = 0 + mov ip, sp + push {r4, r5, r6, r7, fp, ip, lr, pc} + sub fp, ip, #4 + ldr r5, .L1444 + mov r7, r0 + ldrh r4, [r0] + ldrh r3, [r5, #40] + cmp r3, r4 + bcs .L1435 + movw r2, #2750 + ldr r1, .L1444+4 + ldr r0, .L1444+8 + bl sftl_printk +.L1435: + movw r3, #65535 + cmp r4, r3 + beq .L1436 + ldr r2, [r5, #2324] + lsl r3, r4, #1 + mov r0, r4 + ldrh r3, [r2, r3] + cmp r3, #0 + beq .L1437 + bl INSERT_DATA_LIST +.L1436: + mov r3, #1 + movw r2, #65535 + strb r3, [r7, #8] + ldr r3, .L1444+12 + ldrh r0, [r3] + mov r6, r3 + cmp r0, r2 + beq .L1438 + cmp r4, r0 + bne .L1439 + ldr r2, [r5, #2324] + lsl r3, r0, #1 + ldrh r3, [r2, r3] + cmp r3, #0 + beq .L1440 +.L1439: + bl update_vpc_list +.L1440: + mvn r3, #0 + strh r3, [r6] @ movhi +.L1438: + mov r0, r7 + bl allocate_data_superblock + bl l2p_flush + mov r0, #0 + bl FtlEctTblFlush + bl FtlVpcTblFlush + mov r0, #0 + ldmfd sp, {r4, r5, r6, r7, fp, sp, pc} +.L1437: + bl INSERT_FREE_LIST + b .L1436 +.L1445: + .align 2 +.L1444: + .word .LANCHOR0 + .word .LANCHOR1+490 + .word .LC1 + .word .LANCHOR0+4000 + .size allocate_new_data_superblock, .-allocate_new_data_superblock + .align 2 + .global FtlProgPages + .syntax unified + .arm + .fpu softvfp + .type FtlProgPages, %function +FtlProgPages: + @ args = 0, pretend = 0, frame = 8 + @ frame_needed = 1, uses_anonymous_args = 0 + mov ip, sp + push {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc} + sub fp, ip, #4 + sub sp, sp, #8 + mov r7, #0 + ldr r6, .L1460 + mov r4, r3 + ldr r10, .L1460+4 + mov r2, #0 + ldrb r3, [r3, #9] @ zero_extendqisi2 + mov r5, r0 + mov r9, r1 + bl FlashProgPages +.L1447: + cmp r7, r9 + beq .L1454 + mov r8, #0 + b .L1455 +.L1450: + ldr r0, [r5, #4] + ubfx r0, r0, #10, #16 + bl P2V_block_in_plane + ldrh r3, [r4] + cmp r3, r0 + bne .L1448 + ldr r1, [r6, #2324] + lsl r3, r3, #1 + ldrh r0, [r4, #4] + ldrh r2, [r1, r3] + sub r2, r2, r0 + strh r2, [r1, r3] @ movhi + ldrh r3, [r6, #102] + strb r8, [r4, #6] + strh r8, [r4, #4] @ movhi + strh r3, [r4, #2] @ movhi +.L1448: + ldrh r3, [r4, #4] + cmp r3, #0 + bne .L1449 + mov r0, r4 + bl allocate_new_data_superblock +.L1449: + ldr r3, [r6, #2732] + add r3, r3, #1 + str r3, [r6, #2732] + ldr r0, [r5, #4] + ubfx r0, r0, #10, #16 + bl FtlGcMarkBadPhyBlk + mov r0, r4 + bl get_new_active_ppa + mov r2, #0 + str r0, [r5, #4] + str r0, [fp, #-44] + mov r1, #1 + ldrb r3, [r4, #9] @ zero_extendqisi2 + mov r0, r5 + bl FlashProgPages +.L1455: + ldr r3, [r5] + cmn r3, #1 + beq .L1450 + ldrb r2, [r4, #6] @ zero_extendqisi2 + ldrh r3, [r6, #32] + cmp r2, r3 + bcc .L1451 + mov r2, #936 + mov r1, r10 + ldr r0, .L1460+8 + bl sftl_printk +.L1451: + ldr r3, [r5, #4] + sub r1, fp, #40 + mov r2, #1 + ldr r0, [r5, #16] + str r3, [r1, #-4]! + bl log2phys + ldr r3, [r5, #12] + ldr r3, [r3, #12] + ubfx r0, r3, #10, #16 + str r3, [fp, #-48] + bl P2V_block_in_plane + ldr r3, [fp, #-48] + mov r8, r0 + cmn r3, #1 + beq .L1452 + ldr r2, [r6, #2324] + lsl r3, r0, #1 + ldrh r2, [r2, r3] + cmp r2, #0 + bne .L1453 + mov r1, r0 + ldr r0, .L1460+12 + bl sftl_printk +.L1453: + mov r0, r8 + bl decrement_vpc_count +.L1452: + add r7, r7, #1 + add r5, r5, #20 + b .L1447 +.L1454: + ldrb r2, [r4, #6] @ zero_extendqisi2 + ldrh r3, [r6, #32] + cmp r2, r3 + bcc .L1446 + movw r2, #951 + ldr r1, .L1460+4 + ldr r0, .L1460+8 + bl sftl_printk +.L1446: + sub sp, fp, #40 + ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc} +.L1461: + .align 2 +.L1460: + .word .LANCHOR0 + .word .LANCHOR1+519 + .word .LC1 + .word .LC111 + .size FtlProgPages, .-FtlProgPages + .align 2 .global FtlGcFreeTempBlock .syntax unified .arm @@ -10020,51 +10168,51 @@ FtlGcFreeTempBlock: sub fp, ip, #4 sub sp, sp, #4 movw r3, #2444 - ldr r4, .L1470 + ldr r4, .L1488 movw r2, #65535 ldrh r5, [r4, r3] ldrh r1, [r4, #102] cmp r5, r2 - bne .L1445 -.L1455: + bne .L1463 +.L1473: mov r3, #0 - str r3, [r4, #4000] + str r3, [r4, #4008] movw r3, #2444 ldrh r2, [r4, r3] movw r3, #65535 cmp r2, r3 - bne .L1468 -.L1446: + bne .L1486 +.L1464: mov r0, #0 ldmib sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc} -.L1445: +.L1463: cmp r0, #0 - beq .L1448 - ldr r3, .L1470+4 + beq .L1466 + ldr r3, .L1488+4 ldrh r0, [r3, #4] cmp r0, r2 - beq .L1449 -.L1450: + beq .L1467 +.L1468: mov r1, #2 -.L1448: - ldr r0, .L1470+8 +.L1466: + ldr r0, .L1488+8 bl FtlGcScanTempBlk cmn r0, #1 str r0, [fp, #-44] - beq .L1451 + beq .L1469 ldr r2, [r4, #2328] lsl r5, r5, #1 ldrh r3, [r2, r5] cmp r3, #4 - bls .L1452 + bls .L1470 sub r3, r3, #5 mov r0, #1 strh r3, [r2, r5] @ movhi bl FtlEctTblFlush -.L1452: - ldr r3, [r4, #4000] +.L1470: + ldr r3, [r4, #4008] cmp r3, #0 - bne .L1453 + bne .L1471 ldr r3, [r4, #2732] ldr r0, [fp, #-44] add r3, r3, #1 @@ -10072,48 +10220,47 @@ FtlGcFreeTempBlock: str r3, [r4, #2732] bl FtlBbmMapBadBlock bl FtlBbmTblFlush -.L1453: +.L1471: mov r3, #0 - str r3, [r4, #4000] -.L1464: + str r3, [r4, #4008] +.L1482: mov r0, #1 ldmib sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc} -.L1449: +.L1467: mov r2, #0 strh r2, [r3, #4] @ movhi movw r3, #2344 ldrh r3, [r4, r3] cmp r3, #17 - bhi .L1450 - b .L1448 -.L1451: - ldr r3, .L1470+4 + bhi .L1468 + b .L1466 +.L1469: + ldr r3, .L1488+4 ldrh r2, [r3, #4] movw r3, #65535 cmp r2, r3 - bne .L1464 - b .L1455 -.L1468: - bl FtlCacheWriteBack + bne .L1482 + b .L1473 +.L1486: ldrb r1, [r4, #2451] @ zero_extendqisi2 ldrh r3, [r4, #102] - ldr r6, .L1470+12 + ldr r6, .L1488+12 mul r3, r3, r1 ldrh r2, [r6] cmp r2, r3 - beq .L1456 + beq .L1474 mov r2, #162 - ldr r1, .L1470+16 - ldr r0, .L1470+20 + ldr r1, .L1488+16 + ldr r0, .L1488+20 bl sftl_printk -.L1456: +.L1474: ldrb r2, [r4, #2451] @ zero_extendqisi2 movw r3, #2444 ldrh r0, [r4, #102] mov r5, #0 ldrh r3, [r4, r3] ldr r1, [r4, #2324] - ldr r10, .L1470+20 + ldr r10, .L1488+20 smulbb r2, r2, r0 lsl r3, r3, #1 strh r2, [r1, r3] @ movhi @@ -10121,11 +10268,11 @@ FtlGcFreeTempBlock: ldrh r3, [r6] add r3, r3, r2 str r3, [r4, #2528] -.L1457: +.L1475: ldrh r2, [r6] uxth r3, r5 cmp r2, r3 - bhi .L1461 + bhi .L1479 movw r0, #65535 bl decrement_vpc_count movw r3, #2444 @@ -10135,9 +10282,9 @@ FtlGcFreeTempBlock: lsl r2, r0, #1 ldrh r2, [r1, r2] cmp r2, #0 - beq .L1462 + beq .L1480 bl INSERT_DATA_LIST -.L1463: +.L1481: mvn r7, #0 movw r3, #3192 strh r7, [r4, r5] @ movhi @@ -10157,8 +10304,8 @@ FtlGcFreeTempBlock: strhgt r7, [r4, r3] @ movhi movwgt r3, #3148 strhgt r2, [r4, r3] @ movhi - b .L1446 -.L1461: + b .L1464 +.L1479: uxth r3, r5 mov r7, #12 ldr r8, [r4, #3196] @@ -10167,12 +10314,12 @@ FtlGcFreeTempBlock: add r9, r8, r7 ldr r1, [r9, #8] cmp r1, r2 - bcc .L1458 + bcc .L1476 mov r2, #168 - ldr r1, .L1470+16 + ldr r1, .L1488+16 mov r0, r10 bl sftl_printk -.L1458: +.L1476: mov r2, #0 sub r1, fp, #44 ldr r0, [r9, #8] @@ -10180,7 +10327,7 @@ FtlGcFreeTempBlock: ldr r2, [fp, #-44] ldr r0, [r8, r7] cmp r0, r2 - bne .L1459 + bne .L1477 ubfx r0, r0, #10, #16 bl P2V_block_in_plane mov r2, #1 @@ -10189,24 +10336,24 @@ FtlGcFreeTempBlock: ldr r0, [r9, #8] bl log2phys mov r0, r7 -.L1469: +.L1487: bl decrement_vpc_count -.L1460: +.L1478: add r5, r5, #1 - b .L1457 -.L1459: + b .L1475 +.L1477: ldr r3, [r9, #4] cmp r2, r3 - beq .L1460 - ldr r3, .L1470+8 + beq .L1478 + ldr r3, .L1488+8 ldrh r0, [r3] - b .L1469 -.L1462: + b .L1487 +.L1480: bl INSERT_FREE_LIST - b .L1463 -.L1471: + b .L1481 +.L1489: .align 2 -.L1470: +.L1488: .word .LANCHOR0 .word .LANCHOR2 .word .LANCHOR0+2444 @@ -10226,8 +10373,8 @@ FtlGcPageRecovery: mov ip, sp push {r4, r5, fp, ip, lr, pc} sub fp, ip, #4 - ldr r4, .L1474 - ldr r5, .L1474+4 + ldr r4, .L1492 + ldr r5, .L1492+4 ldrh r1, [r4, #102] mov r0, r5 bl FtlGcScanTempBlk @@ -10235,18 +10382,19 @@ FtlGcPageRecovery: ldrh r3, [r4, #102] cmp r2, r3 ldmfdcc sp, {r4, r5, fp, sp, pc} - add r0, r4, #3904 + ldr r0, .L1492+8 bl FtlMapBlkWriteDump_data mov r0, #0 bl FtlGcFreeTempBlock mov r3, #0 - str r3, [r4, #4000] + str r3, [r4, #4008] ldmfd sp, {r4, r5, fp, sp, pc} -.L1475: +.L1493: .align 2 -.L1474: +.L1492: .word .LANCHOR0 .word .LANCHOR0+2444 + .word .LANCHOR0+3908 .size FtlGcPageRecovery, .-FtlGcPageRecovery .align 2 .global FtlPowerLostRecovery @@ -10260,10 +10408,10 @@ FtlPowerLostRecovery: mov ip, sp push {r4, r5, r6, fp, ip, lr, pc} sub fp, ip, #4 - ldr r4, .L1477 + ldr r4, .L1495 mov r6, #0 add r5, r4, #2336 - str r6, [r4, #4012] + str r6, [r4, #4020] add r5, r5, #12 add r4, r4, #2384 mov r0, r5 @@ -10280,9 +10428,9 @@ FtlPowerLostRecovery: bl decrement_vpc_count mov r0, r6 ldmfd sp, {r4, r5, r6, fp, sp, pc} -.L1478: +.L1496: .align 2 -.L1477: +.L1495: .word .LANCHOR0 .size FtlPowerLostRecovery, .-FtlPowerLostRecovery .align 2 @@ -10297,22 +10445,22 @@ Ftl_gc_temp_data_write_back: mov ip, sp push {r4, r5, r6, fp, ip, lr, pc} sub fp, ip, #4 - ldr r4, .L1486 + ldr r4, .L1504 mov r3, #0 mov r5, #0 mov r6, #20 mov r2, r3 ldr r1, [r4, #3164] - ldr r0, [r4, #3836] + ldr r0, [r4, #3840] bl FlashProgPages -.L1480: +.L1498: ldr r1, [r4, #3164] uxth r3, r5 cmp r1, r3 - bhi .L1483 - ldr r0, [r4, #3836] + bhi .L1501 + ldr r0, [r4, #3840] bl FtlGcBufFree - ldr r3, .L1486+4 + ldr r3, .L1504+4 mov r0, #0 str r0, [r4, #3164] ldrh r3, [r3, #4] @@ -10320,15 +10468,15 @@ Ftl_gc_temp_data_write_back: ldmfdne sp, {r4, r5, r6, fp, sp, pc} mov r0, #1 bl FtlGcFreeTempBlock - b .L1485 -.L1483: + b .L1503 +.L1501: mul r3, r6, r3 - ldr r2, [r4, #3836] + ldr r2, [r4, #3840] add r5, r5, #1 ldr r0, [r2, r3] add r1, r2, r3 cmn r0, #1 - bne .L1481 + bne .L1499 movw r1, #2444 ldr ip, [r4, #2324] ldrh r2, [r4, r1] @@ -10339,26 +10487,26 @@ Ftl_gc_temp_data_write_back: strh r0, [r4, r1] @ movhi add r2, r2, #1 str r2, [r4, #2732] - ldr r2, [r4, #3836] + ldr r2, [r4, #3840] add r3, r2, r3 ldr r0, [r3, #4] ubfx r0, r0, #10, #16 bl FtlBbmMapBadBlock bl FtlBbmTblFlush bl FtlGcPageVarInit -.L1485: +.L1503: mov r0, #1 ldmfd sp, {r4, r5, r6, fp, sp, pc} -.L1481: +.L1499: ldr r3, [r1, #12] ldr r1, [r1, #4] ldr r2, [r3, #8] ldr r0, [r3, #12] bl FtlGcUpdatePage - b .L1480 -.L1487: + b .L1498 +.L1505: .align 2 -.L1486: +.L1504: .word .LANCHOR0 .word .LANCHOR0+2444 .size Ftl_gc_temp_data_write_back, .-Ftl_gc_temp_data_write_back @@ -10374,39 +10522,38 @@ Ftl_get_new_temp_ppa: mov ip, sp push {r4, r5, fp, ip, lr, pc} sub fp, ip, #4 - ldr r4, .L1491 + ldr r4, .L1509 movw r3, #2444 ldrh r2, [r4, r3] movw r3, #65535 cmp r2, r3 - beq .L1489 - ldr r3, .L1491+4 + beq .L1507 + ldr r3, .L1509+4 ldrh r3, [r3, #4] cmp r3, #0 - bne .L1490 -.L1489: - bl FtlCacheWriteBack + bne .L1508 +.L1507: mov r0, #0 mov r5, #0 bl FtlGcFreeTempBlock - ldr r0, .L1491+4 + ldr r0, .L1509+4 strb r5, [r4, #2452] bl allocate_data_superblock movw r3, #3192 strh r5, [r4, r3] @ movhi - ldr r3, .L1491+8 + ldr r3, .L1509+8 strh r5, [r3] @ movhi bl l2p_flush mov r0, r5 bl FtlEctTblFlush bl FtlVpcTblFlush -.L1490: - ldr r0, .L1491+4 +.L1508: + ldr r0, .L1509+4 bl get_new_active_ppa ldmfd sp, {r4, r5, fp, sp, pc} -.L1492: +.L1510: .align 2 -.L1491: +.L1509: .word .LANCHOR0 .word .LANCHOR0+2444 .word .LANCHOR0+3200 @@ -10425,28 +10572,28 @@ rk_ftl_garbage_collect: sub fp, ip, #4 sub sp, sp, #36 mov r6, r0 - ldr r3, .L1606 - ldr r0, [r3, #3820] + ldr r3, .L1623 + ldr r0, [r3, #3824] mov r5, r3 cmp r0, #0 movne r0, #0 - bne .L1493 + bne .L1511 add r2, r3, #2336 ldrh r2, [r2] cmp r2, #47 - bls .L1493 - ldr r2, .L1606+4 + bls .L1511 + ldr r2, .L1623+4 ldrh r1, [r2, #4] movw r2, #65535 cmp r1, r2 - bne .L1495 -.L1498: - movw r3, #3204 - movw r0, #65535 - ldrh r1, [r5, r3] - cmp r1, r0 - bne .L1496 -.L1497: + bne .L1513 +.L1516: + movw ip, #3204 + movw r2, #65535 + ldrh r7, [r5, ip] + cmp r7, r2 + bne .L1514 +.L1515: ldr r3, [r5, #3152] movw r2, #2588 ldrh r2, [r5, r2] @@ -10455,16 +10602,16 @@ rk_ftl_garbage_collect: add r3, r3, r6, lsl #7 cmp r2, r4 str r3, [r5, #3152] - bne .L1499 + bne .L1517 movw r1, #2444 ldrh r4, [r5, r1] cmp r4, r2 movne r4, r2 - bne .L1499 + bne .L1517 movw r2, #3202 ldrh r7, [r5, r2] cmp r7, r4 - bne .L1499 + bne .L1517 movw r10, #2344 ldrh r2, [r5, r10] cmp r2, #24 @@ -10472,42 +10619,42 @@ rk_ftl_garbage_collect: movcs r2, #1024 cmp r3, r2 movls r4, r7 - bls .L1499 - ldr r3, .L1606+8 + bls .L1517 + ldr r3, .L1623+8 mov r9, #0 str r9, [r5, #3152] - strh r9, [r3, #-12] @ movhi + strh r9, [r3, #-8] @ movhi bl GetSwlReplaceBlock cmp r0, r7 mov r4, r0 movne r7, r0 - bne .L1501 + bne .L1519 movw r8, #3150 ldrh r2, [r5, r10] ldrh r3, [r5, r8] cmp r2, r3 - bcs .L1502 + bcs .L1520 mov r0, #64 bl List_get_gc_head_node uxth r3, r0 cmp r3, r4 - beq .L1504 + beq .L1522 mov r0, r3 ldr r3, [r5, #2324] lsl r0, r0, #1 ldrh r3, [r3, r0] cmp r3, #7 - bhi .L1505 + bhi .L1523 mov r0, r9 bl List_get_gc_head_node uxth r7, r0 mov r3, #128 strh r3, [r5, r8] @ movhi cmp r7, r4 - bne .L1501 -.L1504: + bne .L1519 +.L1522: bl FtlGcReFreshBadBlk -.L1499: +.L1517: movw r2, #65535 sub r3, r4, r2 clz r3, r3 @@ -10516,86 +10663,96 @@ rk_ftl_garbage_collect: movne r6, #0 andeq r6, r3, #1 cmp r6, #0 - beq .L1507 + beq .L1525 movw r3, #2344 ldrh r3, [r5, r3] cmp r3, #24 movhi r6, #1 - bhi .L1508 + bhi .L1526 ldrh r6, [r5, #102] cmp r3, #16 lsrhi r6, r6, #5 - bhi .L1508 + bhi .L1526 cmp r3, #12 lsrhi r6, r6, #4 - bhi .L1508 + bhi .L1526 cmp r3, #8 lsrhi r6, r6, #2 -.L1508: +.L1526: movw r2, #3148 ldrh r1, [r5, r2] cmp r1, r3 - bcs .L1512 + bcs .L1530 movw r3, #2444 movw r1, #65535 ldrh r3, [r5, r3] cmp r3, r1 - bne .L1513 + bne .L1531 movw r1, #3202 ldrh r1, [r5, r1] cmp r1, r3 - bne .L1513 - ldr r3, .L1606+8 - ldrh r0, [r3, #-12] + bne .L1531 + ldr r3, .L1623+8 + ldrh r0, [r3, #-8] cmp r0, #0 - bne .L1514 + bne .L1532 ldr r3, [r5, #2504] ldr r1, [r5, #2500] add r3, r3, r3, lsl #1 cmp r1, r3, lsr #2 movcs r3, #18 - bcs .L1599 -.L1514: + bcs .L1616 +.L1532: movw r3, #2572 movw r2, #3148 ldrh r3, [r5, r3] add r3, r3, r3, lsl #1 asr r3, r3, #2 -.L1599: +.L1616: strh r3, [r5, r2] @ movhi mov r3, #0 str r3, [r5, #3160] -.L1493: +.L1511: sub sp, fp, #40 ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc} -.L1495: +.L1513: movw r1, #2444 ldrh r3, [r3, r1] cmp r3, r2 - beq .L1498 + beq .L1516 mov r0, #1 bl FtlGcFreeTempBlock cmp r0, #0 - beq .L1498 + beq .L1516 mov r0, #1 - b .L1493 -.L1496: - movw r2, #3202 - ldrh ip, [r5, r2] - cmp ip, r0 - strheq r1, [r5, r2] @ movhi - mvneq r2, #0 - strheq r2, [r5, r3] @ movhi - b .L1497 -.L1505: + b .L1511 +.L1514: + movw r4, #3202 + ldrh r3, [r5, r4] + cmp r3, r2 + bne .L1515 + movw r1, #3206 + ldrh lr, [r5, r1] + cmp lr, r3 + beq .L1515 + movw r2, #3208 + ldrh r0, [r5, r2] + cmp r0, r3 + mvnne r3, #0 + strhne r7, [r5, r4] @ movhi + strhne lr, [r5, ip] @ movhi + strhne r0, [r5, r1] @ movhi + strhne r3, [r5, r2] @ movhi + b .L1515 +.L1523: mov r3, #64 -.L1598: +.L1615: strh r3, [r5, r8] @ movhi - b .L1504 -.L1502: + b .L1522 +.L1520: mov r3, #80 - b .L1598 -.L1501: + b .L1615 +.L1519: movw r0, #3148 ldr r3, [r5, #2324] ldrh r0, [r5, r0] @@ -10607,38 +10764,38 @@ rk_ftl_garbage_collect: str r0, [sp, #4] ldr r0, [r5, #2328] ldrh r1, [r0, r1] - ldr r0, .L1606+12 + ldr r0, .L1623+12 str r1, [sp] mov r1, r7 bl sftl_printk - b .L1504 -.L1513: + b .L1522 +.L1531: movw r3, #2572 movw r2, #3148 ldrh r3, [r5, r3] add r3, r3, r3, lsl #1 asr r3, r3, #2 strh r3, [r5, r2] @ movhi -.L1512: - movw r3, #3206 +.L1530: + movw r3, #3210 movw r4, #65535 ldrh r3, [r5, r3] cmp r3, #0 addne r6, r6, #32 uxthne r6, r6 -.L1518: +.L1536: movw r3, #2588 ldrh r2, [r5, r3] movw r1, #65535 cmp r2, r1 - bne .L1527 + bne .L1545 cmp r4, r2 strhne r4, [r5, r3] @ movhi - bne .L1529 + bne .L1547 movw r2, #3202 ldrh r3, [r5, r2] cmp r3, r4 - beq .L1529 + beq .L1547 ldr r1, [r5, #2324] lsl r3, r3, #1 ldrh r3, [r1, r3] @@ -10651,113 +10808,113 @@ rk_ftl_garbage_collect: strh r1, [r5, r2] @ movhi mvn r2, #0 strh r2, [r5, r3] @ movhi -.L1529: +.L1547: movw r7, #2588 mov r3, #0 ldrh r0, [r5, r7] strb r3, [r5, #2596] movw r3, #65535 cmp r0, r3 - beq .L1527 + beq .L1545 bl IsBlkInGcList cmp r0, #0 - ldr r8, .L1606+16 + ldr r8, .L1623+16 mvnne r3, #0 strhne r3, [r5, r7] @ movhi movw r7, #2588 ldrh r2, [r5, r7] movw r3, #65535 cmp r2, r3 - beq .L1527 + beq .L1545 mov r0, r8 bl make_superblock - ldr r2, .L1606+8 + ldr r2, .L1623+8 mov r3, #0 strh r3, [r8, #2] @ movhi strb r3, [r5, #2594] - strh r3, [r2, #-10] @ movhi + strh r3, [r2, #-6] @ movhi ldrh r3, [r5, r7] ldr r1, [r5, #2324] lsl r3, r3, #1 ldrh r3, [r1, r3] - strh r3, [r2, #-8] @ movhi -.L1527: + strh r3, [r2, #-4] @ movhi +.L1545: movw r3, #2588 movw r2, #2348 ldrh r3, [r5, r3] ldrh r2, [r5, r2] cmp r2, r3 - beq .L1533 + beq .L1551 movw r2, #2396 ldrh r2, [r5, r2] cmp r2, r3 - ldrne r7, .L1606 + ldrne r7, .L1623 movne r5, r7 - bne .L1534 -.L1533: + bne .L1552 +.L1551: mvn r2, #0 movw r3, #2588 -.L1604: +.L1621: strh r2, [r5, r3] @ movhi - ldr r3, .L1606+8 -.L1605: - ldrh r0, [r3, #-12] - b .L1493 -.L1507: + ldr r3, .L1623+8 +.L1622: + ldrh r0, [r3, #-8] + b .L1511 +.L1525: movw r1, #2444 ldrh r7, [r5, r1] cmp r7, r2 - bne .L1576 + bne .L1593 movw r2, #3202 ldrh r2, [r5, r2] cmp r2, r7 movne r3, #0 andeq r3, r3, #1 cmp r3, #0 - beq .L1576 + beq .L1593 movw r3, #2588 ldrh r3, [r5, r3] cmp r3, r7 - beq .L1519 -.L1524: + beq .L1537 +.L1542: mov r4, r7 -.L1576: +.L1593: mov r6, #1 - b .L1518 -.L1519: + b .L1536 +.L1537: movw r3, #2344 movw r2, #3148 ldrh r8, [r5, r3] ldrh r3, [r5, r2] str r6, [r5, #3160] - ldr r4, .L1606+8 + ldr r4, .L1623+8 cmp r3, r8 - bcs .L1520 - ldrh r3, [r4, #-12] + bcs .L1538 + ldrh r3, [r4, #-8] cmp r3, #0 - bne .L1521 + bne .L1539 ldr r3, [r5, #2504] ldr r1, [r5, #2500] add r3, r3, r3, lsl #1 cmp r1, r3, lsr #2 movcs r3, #18 - bcs .L1600 -.L1521: + bcs .L1617 +.L1539: movw r3, #2572 movw r2, #3148 ldrh r3, [r5, r3] add r3, r3, r3, lsl #1 asr r3, r3, #2 -.L1600: +.L1617: strh r3, [r5, r2] @ movhi -.L1603: +.L1620: bl FtlReadRefresh - ldrh r0, [r4, #-12] - b .L1493 -.L1520: - ldrh r0, [r4, #-12] + ldrh r0, [r4, #-8] + b .L1511 +.L1538: + ldrh r0, [r4, #-8] cmp r0, #0 - bne .L1524 + bne .L1542 movw r3, #2572 ldrh r6, [r5, r3] add r3, r6, r6, lsl #1 @@ -10773,20 +10930,20 @@ rk_ftl_garbage_collect: mul r3, r3, r1 add r3, r3, r3, lsr #31 cmp r2, r3, asr #1 - ble .L1525 + ble .L1543 sub r6, r6, #1 cmp r8, r6 - bge .L1603 -.L1525: + bge .L1620 +.L1543: cmp r2, #0 - bne .L1524 + bne .L1542 movw r0, #65535 bl decrement_vpc_count movw r3, #2344 ldrh r0, [r5, r3] add r0, r0, #1 - b .L1493 -.L1537: + b .L1511 +.L1555: uxth r2, r0 str r1, [fp, #-52] add r10, r10, #1 @@ -10797,7 +10954,7 @@ rk_ftl_garbage_collect: ldr r2, [fp, #-48] ldr r1, [fp, #-52] strhne r10, [r9] @ movhi - bne .L1536 + bne .L1554 ldrh lr, [r5, #32] uxth r10, r10 ldrh r3, [r5, #102] @@ -10808,78 +10965,78 @@ rk_ftl_garbage_collect: ldrh ip, [r0, r2] add lr, r3, r3, lsr #31 cmp ip, lr, asr #1 - bgt .L1540 + bgt .L1558 cmp ip, #8 cmphi r10, #48 - bls .L1541 - ldr ip, .L1606+20 + bls .L1559 + ldr ip, .L1623+20 ldrh ip, [ip] cmp ip, #35 - bhi .L1541 -.L1540: - ldr lr, .L1606+24 + bhi .L1559 +.L1558: + ldr lr, .L1623+24 mov ip, #0 strh ip, [lr] @ movhi -.L1541: +.L1559: ldrh ip, [r0, r2] movw r0, #65535 cmp r3, ip cmple r4, r0 moveq r3, #1 movne r3, #0 - bne .L1542 + bne .L1560 mvn r2, #0 movw r3, #2588 strh r2, [r5, r3] @ movhi mov r2, #0 movw r3, #3156 - b .L1604 -.L1542: + b .L1621 +.L1560: cmp ip, #0 - bne .L1543 + bne .L1561 bl decrement_vpc_count - ldr r3, .L1606+24 - ldr r2, .L1606+24 + ldr r3, .L1623+24 + ldr r2, .L1623+24 ldrh r3, [r3] add r3, r3, #1 strh r3, [r2] @ movhi - b .L1536 -.L1543: + b .L1554 +.L1561: strb r3, [r5, #2596] - ldr r3, .L1606+28 + ldr r3, .L1623+28 ldrh r3, [r3] cmp r3, r1 - bne .L1544 - movw r2, #658 - ldr r1, .L1606+32 - ldr r0, .L1606+36 + bne .L1562 + movw r2, #665 + ldr r1, .L1623+32 + ldr r0, .L1623+36 bl sftl_printk -.L1544: - ldr r3, .L1606+40 +.L1562: + ldr r3, .L1623+40 ldrh r2, [r8] ldrh r3, [r3] cmp r2, r3 - bne .L1545 - movw r2, #659 - ldr r1, .L1606+32 - ldr r0, .L1606+36 + bne .L1563 + movw r2, #666 + ldr r1, .L1623+32 + ldr r0, .L1623+36 bl sftl_printk -.L1545: - ldr r3, .L1606+44 +.L1563: + ldr r3, .L1623+44 ldrh r2, [r8] ldrh r3, [r3] cmp r2, r3 - bne .L1546 - mov r2, #660 - ldr r1, .L1606+32 - ldr r0, .L1606+36 + bne .L1564 + movw r2, #667 + ldr r1, .L1623+32 + ldr r0, .L1623+36 bl sftl_printk -.L1546: - ldr r0, .L1606+16 +.L1564: + ldr r0, .L1623+16 bl make_superblock ldrh r2, [r8] mov r3, #0 - ldr r1, .L1606+48 + ldr r1, .L1623+48 ldr r0, [r5, #2324] lsl r2, r2, #1 strh r3, [r1] @ movhi @@ -10887,10 +11044,10 @@ rk_ftl_garbage_collect: strh r3, [r8, #2] @ movhi strb r3, [r5, #2594] strh r2, [r1, #2] @ movhi -.L1535: +.L1553: bl FtlReadRefresh mov r3, #1 - str r3, [r5, #3820] + str r3, [r5, #3824] ldrh r3, [r5, #102] str r3, [fp, #-56] ldrh r3, [r8, #2] @@ -10901,48 +11058,48 @@ rk_ftl_garbage_collect: subgt r6, r2, r3 mov r3, #0 uxthgt r6, r6 -.L1602: +.L1619: str r3, [fp, #-52] ldrh r3, [fp, #-52] - ldr r8, .L1606+16 + ldr r8, .L1623+16 cmp r6, r3 - bls .L1556 + bls .L1574 ldrh r9, [r8, #2] - mov r2, #0 + add r1, r8, #14 ldr r3, [fp, #-52] movw r10, #65535 ldrh ip, [r7, #32] ldr r0, [r7, #3180] add r9, r9, r3 - add r3, r8, #14 - mov r8, r2 - b .L1557 -.L1550: - ldrh r1, [r3, #2]! - add r2, r2, #1 - cmp r1, r10 + mov r3, #0 + mov r8, r3 + b .L1575 +.L1568: + ldrh r2, [r1, #2]! + add r3, r3, #1 + cmp r2, r10 movne lr, #20 - orrne r1, r9, r1, lsl #10 + orrne r2, r9, r2, lsl #10 mlane lr, lr, r8, r0 addne r8, r8, #1 uxthne r8, r8 - strne r1, [lr, #4] -.L1557: - uxth r1, r2 - cmp ip, r1 - bhi .L1550 + strne r2, [lr, #4] +.L1575: + uxth r2, r3 + cmp ip, r2 + bhi .L1568 ldrb r2, [r7, #2596] @ zero_extendqisi2 mov r1, r8 bl FlashReadPages mov r3, #0 -.L1601: +.L1618: str r3, [fp, #-48] ldrh r3, [fp, #-48] cmp r3, r8 ldrcs r3, [fp, #-52] addcs r3, r3, #1 - bcs .L1602 -.L1555: + bcs .L1619 +.L1573: ldr r3, [fp, #-48] mov r9, #20 mul r9, r9, r3 @@ -10950,22 +11107,22 @@ rk_ftl_garbage_collect: add r2, r3, r9 ldr r3, [r3, r9] cmn r3, #1 - beq .L1552 + beq .L1570 ldr r10, [r2, #12] movw r3, #61589 ldrh r2, [r10] cmp r2, r3 - bne .L1552 + bne .L1570 ldr r3, [r10, #8] cmn r3, #1 - bne .L1553 - mov r2, #696 - ldr r1, .L1606+32 - ldr r0, .L1606+36 + bne .L1571 + movw r2, #703 + ldr r1, .L1623+32 + ldr r0, .L1623+36 str r3, [fp, #-60] bl sftl_printk ldr r3, [fp, #-60] -.L1553: +.L1571: mov r2, #0 mov r0, r3 sub r1, fp, #44 @@ -10975,16 +11132,16 @@ rk_ftl_garbage_collect: add r0, r0, r9 ldr r2, [r0, #4] cmp r2, r3 - bne .L1552 - ldr r3, .L1606+48 + bne .L1570 + ldr r3, .L1623+48 mov r1, #20 ldr lr, [r5, #3164] ldr r0, [r0, #16] ldrh r2, [r3] str r1, [fp, #-64] add r2, r2, #1 - strh r2, [r3], #10 @ movhi - ldr r2, [r5, #3836] + strh r2, [r3], #6 @ movhi + ldr r2, [r5, #3840] str r3, [fp, #-68] mla r2, r1, lr, r2 str r0, [r2, #16] @@ -10994,7 +11151,7 @@ rk_ftl_garbage_collect: ldr r1, [fp, #-64] str r0, [r2, #4] ldr r0, [r5, #3164] - ldr r2, [r5, #3836] + ldr r2, [r5, #3840] mla r1, r1, r0, r2 ldr r2, [r5, #3180] add r2, r2, r9 @@ -11004,7 +11161,7 @@ rk_ftl_garbage_collect: str r2, [r1, #12] ldr r2, [fp, #-44] str r2, [r10, #12] - ldr r2, .L1606+44 + ldr r2, .L1623+44 ldrh r1, [r2] str r2, [fp, #-60] strh r1, [r10, #2] @ movhi @@ -11021,109 +11178,114 @@ rk_ftl_garbage_collect: ldr r1, [r5, #3164] ldr r3, [fp, #-68] cmp r0, r1 - beq .L1554 + beq .L1572 ldr r2, [fp, #-60] ldrh r2, [r2, #4] cmp r2, #0 - bne .L1552 -.L1554: + bne .L1570 +.L1572: str r3, [fp, #-60] bl Ftl_gc_temp_data_write_back cmp r0, #0 ldr r3, [fp, #-60] - ldrne r2, .L1606 + ldrne r2, .L1623 movne r1, #0 - strne r1, [r2, #3820] - bne .L1605 -.L1552: + strne r1, [r2, #3824] + bne .L1622 +.L1570: ldr r3, [fp, #-48] add r3, r3, #1 - b .L1601 -.L1556: + b .L1618 +.L1574: ldrh r3, [r8, #2] add r6, r6, r3 ldr r3, [fp, #-56] uxth r6, r6 cmp r3, r6 strh r6, [r8, #2] @ movhi - ldr r6, .L1606+8 - bls .L1558 - ldrh r2, [r6, #-10] - ldrh r3, [r6, #-8] - cmp r2, r3 - bne .L1559 -.L1558: + bhi .L1576 ldr r3, [r7, #3164] + ldr r9, .L1623+8 cmp r3, #0 - beq .L1560 + beq .L1577 bl Ftl_gc_temp_data_write_back cmp r0, #0 movne r3, #0 - ldrhne r0, [r6, #-12] - strne r3, [r7, #3820] - bne .L1493 -.L1560: - ldrh r1, [r6, #-10] - cmp r1, #0 - bne .L1561 + ldrhne r0, [r9, #-8] + strne r3, [r7, #3824] + bne .L1511 +.L1577: + ldrh r6, [r9, #-6] + cmp r6, #0 + bne .L1578 + ldrh r1, [r8] + ldr r2, [r7, #2324] + lsl r3, r1, #1 + ldrh r3, [r2, r3] + cmp r3, #0 + beq .L1578 + ldrh r0, [r9, #-4] + ldrh r2, [r8, #2] + str r3, [sp] + mov r3, r6 + str r0, [sp, #4] + ldr r0, .L1623+52 + bl sftl_printk ldrh r3, [r8] ldr r2, [r7, #2324] lsl r3, r3, #1 - ldrh r0, [r2, r3] - cmp r0, #0 - beq .L1561 - strh r1, [r2, r3] @ movhi + strh r6, [r2, r3] @ movhi ldrh r0, [r8] bl update_vpc_list - bl FtlCacheWriteBack bl l2p_flush bl FtlVpcTblFlush -.L1561: +.L1578: mvn r3, #0 strh r3, [r8] @ movhi -.L1559: - ldr r3, .L1606+52 +.L1576: + ldr r3, .L1623+56 ldrh r3, [r3] cmp r3, #2 - bhi .L1562 + bhi .L1579 ldrh r6, [r7, #102] -.L1534: - ldr r8, .L1606+16 +.L1552: + ldr r8, .L1623+16 movw r3, #65535 ldrh r2, [r8] cmp r2, r3 - bne .L1535 + bne .L1553 add r9, r8, #568 mov r3, #0 str r3, [r7, #3160] -.L1536: +.L1554: ldrh r10, [r9] mov r0, r10 bl List_get_gc_head_node - ldr r3, .L1606+16 + ldr r3, .L1623+16 uxth r1, r0 strh r1, [r3] @ movhi movw r3, #65535 cmp r1, r3 - bne .L1537 + bne .L1555 mov r3, #0 mov r0, #8 strh r3, [r9] @ movhi - b .L1493 -.L1562: - ldrh r0, [r6, #-12] + b .L1511 +.L1579: mov r2, #0 - str r2, [r7, #3820] - cmp r0, r2 + str r2, [r7, #3824] + ldr r2, .L1623+8 + ldrh r0, [r2, #-8] + cmp r0, #0 addeq r0, r3, #1 - b .L1493 -.L1607: + b .L1511 +.L1624: .align 2 -.L1606: +.L1623: .word .LANCHOR0 .word .LANCHOR2 .word .LANCHOR3-4016 - .word .LC108 + .word .LC112 .word .LANCHOR0+2588 .word .LANCHOR0+3192 .word .LANCHOR0+3156 @@ -11132,7 +11294,8 @@ rk_ftl_garbage_collect: .word .LC1 .word .LANCHOR0+2396 .word .LANCHOR0+2444 - .word .LANCHOR3-4026 + .word .LANCHOR3-4022 + .word .LC113 .word .LANCHOR0+2344 .size rk_ftl_garbage_collect, .-rk_ftl_garbage_collect .align 2 @@ -11164,252 +11327,283 @@ FtlRead: mov ip, sp push {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc} sub fp, ip, #4 - sub sp, sp, #52 + sub sp, sp, #72 uxtb r0, r0 - mov r6, r1 - str r2, [fp, #-68] + mov r7, r1 + str r2, [fp, #-72] cmp r0, #16 mov r9, r3 - bne .L1610 + bne .L1627 mov r2, r3 - ldr r1, [fp, #-68] - add r0, r6, #256 + ldr r1, [fp, #-72] + add r0, r7, #256 bl FtlVendorPartRead str r0, [fp, #-48] -.L1609: +.L1626: ldr r0, [fp, #-48] sub sp, fp, #40 ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc} -.L1610: - ldr r3, [fp, #-68] - ldr r10, .L1643 +.L1627: + ldr r3, [fp, #-72] + ldr r4, .L1661 add r3, r1, r3 str r3, [fp, #-56] ldr r2, [fp, #-56] - ldr r3, [r10, #140] + ldr r3, [r4, #140] cmp r2, r3 - mvnhi r3, #0 - strhi r3, [fp, #-48] - bhi .L1609 - ldr r3, .L1643+4 - ldr r7, [r3] - cmn r7, #1 - streq r7, [fp, #-48] - beq .L1609 - bl FtlCacheWriteBack - ldrh r4, [r10, #58] - mov r0, r6 + bhi .L1648 + ldr r3, .L1661+4 + ldr r3, [r3] + cmn r3, #1 + beq .L1649 + ldrh r5, [r4, #58] + mov r0, r7 mov r8, #0 - mov r7, r10 - mov r5, r8 - mov r1, r4 + mov r6, r8 + mov r1, r5 bl __udivsi3 ldr r3, [fp, #-56] - mov r1, r4 + mov r1, r5 str r0, [fp, #-60] sub r0, r3, #1 bl __udivsi3 ldr r3, [fp, #-60] - ldr r4, [fp, #-60] + ldr r5, [fp, #-60] str r0, [fp, #-64] rsb r3, r3, #1 - str r8, [fp, #-76] + str r8, [fp, #-80] add r3, r3, r0 - str r8, [fp, #-72] + str r8, [fp, #-76] str r3, [fp, #-52] ldr r2, [fp, #-52] - ldr r3, [r10, #2508] + ldr r3, [r4, #2508] str r8, [fp, #-48] add r3, r3, r2 - str r3, [r10, #2508] -.L1612: + str r3, [r4, #2508] +.L1629: ldr r3, [fp, #-52] cmp r3, #0 - bne .L1628 - ldr r3, .L1643 - movw r2, #3206 + bne .L1646 + ldr r3, .L1661 + movw r2, #3210 ldrh r2, [r3, r2] cmp r2, #0 - bne .L1629 + bne .L1647 movw r2, #2344 ldrh r3, [r3, r2] cmp r3, #31 - bhi .L1609 -.L1629: + bhi .L1626 +.L1647: mov r1, #1 mov r0, #0 bl rk_ftl_garbage_collect - b .L1609 -.L1628: - sub r1, fp, #44 + b .L1626 +.L1646: mov r2, #0 - mov r0, r4 + sub r1, fp, #44 + mov r0, r5 bl log2phys - ldr r1, [fp, #-44] - cmn r1, #1 + ldr r2, [fp, #-44] + cmn r2, #1 moveq r10, #0 - beq .L1614 - ldr r2, [r7, #3832] - mov r0, #20 - ldr r3, [fp, #-60] - ldrh r10, [r7, #58] - mla r2, r0, r5, r2 - cmp r4, r3 - str r1, [r2, #4] - bne .L1618 - ldr r1, [r7, #3816] - mov r0, r6 - str r2, [fp, #-80] - str r1, [r2, #8] + beq .L1631 + ldr r3, [r4, #3836] + mov r1, #20 + ldrh r10, [r4, #58] + mla r3, r1, r6, r3 + str r2, [r3, #4] + ldr r2, [fp, #-60] + cmp r5, r2 + bne .L1635 + ldr r2, [r4, #3820] mov r1, r10 + mov r0, r7 + str r3, [fp, #-68] + str r2, [r3, #8] bl __umodsi3 - ldr r3, [fp, #-68] - sub r1, r10, r0 - ldr r2, [fp, #-80] - str r0, [fp, #-72] - cmp r3, r1 - movcs r3, r1 + ldr r3, [fp, #-72] + sub r2, r10, r0 + str r0, [fp, #-76] + cmp r3, r2 + movcs r3, r2 cmp r3, r10 - str r3, [fp, #-76] - streq r9, [r2, #8] -.L1619: - ldrh r1, [r7, #112] - ldr r0, [r7, #3812] - str r4, [r2, #16] - mul r1, r5, r1 - add r5, r5, #1 - bic r1, r1, #3 - add r1, r0, r1 - str r1, [r2, #12] - b .L1617 -.L1616: - mla r0, r0, r4, r10 - ldr r2, [fp, #-56] - cmp r2, r0 - movhi r2, #1 - movls r2, #0 - cmp r6, r0 - movhi r2, #0 - cmp r2, #0 - beq .L1615 - sub r0, r0, r6 + str r3, [fp, #-80] + ldr r3, [fp, #-68] + streq r9, [r3, #8] +.L1636: + ldrh r2, [r4, #112] + ldr r1, [r4, #3816] + str r5, [r3, #16] + mul r2, r6, r2 + add r6, r6, #1 + bic r2, r2, #3 + add r2, r1, r2 + str r2, [r3, #12] + b .L1634 +.L1633: + mla r0, r0, r5, r10 + ldr r3, [fp, #-56] + cmp r3, r0 + movhi r3, #1 + movls r3, #0 + cmp r7, r0 + movhi r3, #0 + cmp r3, #0 + beq .L1632 + sub r0, r0, r7 mov r1, #512 add r0, r9, r0, lsl #9 bl __memzero -.L1615: +.L1632: add r10, r10, #1 -.L1614: - ldrh r0, [r7, #58] +.L1631: + ldrh r0, [r4, #58] cmp r10, r0 - bcc .L1616 -.L1617: + bcc .L1633 +.L1634: ldr r3, [fp, #-52] - add r4, r4, #1 + add r5, r5, #1 subs r3, r3, #1 str r3, [fp, #-52] - beq .L1621 - ldrh r2, [r7, #32] - cmp r5, r2, lsl #2 - bne .L1612 -.L1621: - cmp r5, #0 - beq .L1612 + beq .L1638 + ldrh r3, [r4, #32] + cmp r6, r3, lsl #2 + bne .L1629 +.L1638: + cmp r6, #0 + beq .L1629 mov r2, #0 - mov r1, r5 - ldr r0, [r7, #3832] - mov r10, #0 + mov r1, r6 + ldr r0, [r4, #3836] bl FlashReadPages lsl r3, r8, #9 - str r3, [fp, #-88] - ldr r3, [fp, #-72] - lsl r3, r3, #9 - str r3, [fp, #-80] + str r3, [fp, #-92] ldr r3, [fp, #-76] lsl r3, r3, #9 str r3, [fp, #-84] -.L1627: - mov r3, #20 - ldr r2, [r7, #3832] - mul ip, r3, r10 - ldr r3, [fp, #-60] - add r2, r2, ip - ldr r1, [r2, #16] - cmp r3, r1 - bne .L1623 - ldr r1, [r2, #8] - ldr r2, [r7, #3816] - cmp r1, r2 - bne .L1624 ldr r3, [fp, #-80] + lsl r3, r3, #9 + str r3, [fp, #-88] + mov r3, #0 + str r3, [fp, #-68] +.L1645: + ldr r3, [fp, #-68] + mov ip, #20 + ldr r1, [fp, #-60] + mul r10, ip, r3 + ldr r3, [r4, #3836] + add r3, r3, r10 + ldr r2, [r3, #16] + cmp r1, r2 + bne .L1640 + ldr r1, [r3, #8] + ldr r3, [r4, #3820] + cmp r1, r3 + bne .L1641 + ldr r3, [fp, #-84] mov r0, r9 - ldr r2, [fp, #-84] - str ip, [fp, #-92] + ldr r2, [fp, #-88] add r1, r1, r3 -.L1642: +.L1660: bl ftl_memcpy - ldr ip, [fp, #-92] -.L1624: - ldr r2, [r7, #3832] - ldr r0, [r2, ip] - add lr, r2, ip - cmn r0, #1 - ldreq r1, [r7, #2708] - streq r0, [fp, #-48] - addeq r1, r1, #1 - streq r1, [r7, #2708] - ldr r2, [r2, ip] - cmp r2, #256 - bne .L1626 - ldr r0, [lr, #4] +.L1641: + ldr r1, [r4, #3836] + add r1, r1, r10 + ldr r3, [r1, #12] + ldr r2, [r1, #16] + ldr r3, [r3, #8] + cmp r2, r3 + beq .L1642 + ldr r3, [r4, #2708] + add r3, r3, #1 + str r3, [r4, #2708] + ldr r2, [r1, #8] + ldr r3, [r1, #12] + ldr r0, [r2, #4] + str r0, [sp, #16] + ldr r2, [r2] + ldr r0, .L1661+8 + str r2, [sp, #12] + ldr r2, [r3, #12] + str r2, [sp, #8] + ldr r2, [r3, #8] + str r2, [sp, #4] + ldr r2, [r3, #4] + str r2, [sp] + ldr r2, [r1, #4] + ldr r3, [r3] + ldr r1, [r1, #16] + bl sftl_printk +.L1642: + ldr r3, [r4, #3836] + ldr r1, [r3, r10] + add r0, r3, r10 + cmn r1, #1 + ldreq r2, [r4, #2708] + streq r1, [fp, #-48] + addeq r2, r2, #1 + streq r2, [r4, #2708] + ldr r3, [r3, r10] + cmp r3, #256 + bne .L1644 + ldr r0, [r0, #4] ubfx r0, r0, #10, #16 bl P2V_block_in_plane bl FtlGcRefreshBlock -.L1626: - add r10, r10, #1 - cmp r5, r10 - bne .L1627 - mov r5, #0 - b .L1612 -.L1618: - ldr r3, [fp, #-64] - cmp r4, r3 - bne .L1620 - ldr r1, [r7, #3808] - ldr r3, [fp, #-56] - str r1, [r2, #8] - mul r1, r10, r4 - sub r8, r3, r1 - cmp r10, r8 - subeq r1, r1, r6 - addeq r1, r9, r1, lsl #9 - streq r1, [r2, #8] - b .L1619 -.L1620: - mul r10, r4, r10 - sub r10, r10, r6 - add r10, r9, r10, lsl #9 - str r10, [r2, #8] - b .L1619 -.L1623: - ldr r3, [fp, #-64] - cmp r3, r1 - bne .L1624 - ldr r1, [r2, #8] - ldr r2, [r7, #3808] - cmp r1, r2 - bne .L1624 - ldrh r0, [r7, #58] - str ip, [fp, #-92] - ldr r2, [fp, #-88] - mul r0, r3, r0 - sub r0, r0, r6 - add r0, r9, r0, lsl #9 - b .L1642 .L1644: + ldr r3, [fp, #-68] + add r3, r3, #1 + cmp r6, r3 + str r3, [fp, #-68] + bne .L1645 + mov r6, #0 + b .L1629 +.L1635: + ldr r2, [fp, #-64] + cmp r5, r2 + bne .L1637 + ldr r2, [r4, #3812] + ldr r1, [fp, #-56] + str r2, [r3, #8] + mul r2, r10, r5 + sub r8, r1, r2 + cmp r10, r8 + subeq r2, r2, r7 + addeq r2, r9, r2, lsl #9 + streq r2, [r3, #8] + b .L1636 +.L1637: + mul r10, r5, r10 + sub r10, r10, r7 + add r10, r9, r10, lsl #9 + str r10, [r3, #8] + b .L1636 +.L1640: + ldr r1, [fp, #-64] + cmp r1, r2 + bne .L1641 + ldr r1, [r3, #8] + ldr r3, [r4, #3812] + cmp r1, r3 + bne .L1641 + ldrh r0, [r4, #58] + ldr r3, [fp, #-64] + ldr r2, [fp, #-92] + mul r0, r3, r0 + sub r0, r0, r7 + add r0, r9, r0, lsl #9 + b .L1660 +.L1648: + mvn r3, #0 +.L1649: + str r3, [fp, #-48] + b .L1626 +.L1662: .align 2 -.L1643: +.L1661: .word .LANCHOR0 .word .LANCHOR2 + .word .LC96 .size FtlRead, .-FtlRead .align 2 .global sftl_read @@ -11456,178 +11650,375 @@ sftl_vendor_read: .fpu softvfp .type FtlWrite, %function FtlWrite: - @ args = 0, pretend = 0, frame = 64 + @ args = 0, pretend = 0, frame = 68 @ frame_needed = 1, uses_anonymous_args = 0 mov ip, sp push {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc} sub fp, ip, #4 - sub sp, sp, #64 + sub sp, sp, #68 uxtb r0, r0 - mov r8, r1 - str r2, [fp, #-76] + mov r9, r1 + str r2, [fp, #-84] cmp r0, #16 str r3, [fp, #-80] - bne .L1648 + bne .L1666 mov r2, r3 - ldr r1, [fp, #-76] - add r0, r8, #256 + ldr r1, [fp, #-84] + add r0, r9, #256 bl FtlVendorPartWrite -.L1647: +.L1665: sub sp, fp, #40 ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc} -.L1648: - ldr r3, [fp, #-76] - ldr r9, .L1712 +.L1666: + ldr r3, [fp, #-84] + ldr r4, .L1716 add r6, r1, r3 - ldr r3, [r9, #140] + ldr r3, [r4, #140] cmp r6, r3 mvnhi r0, #0 - bhi .L1647 - ldr r5, .L1712+4 + bhi .L1665 + ldr r5, .L1716+4 ldr r0, [r5] cmn r0, #1 - beq .L1647 - ldr r3, .L1712+8 + beq .L1665 + ldr r3, .L1716+8 mov r2, #2048 - ldrh r4, [r9, #58] - mov r0, r8 - str r2, [r3, #-4020] - mov r1, r4 + ldrh r7, [r4, #58] + mov r0, r9 + str r2, [r3, #-4016] + mov r1, r7 bl __udivsi3 - mov r1, r4 - str r0, [fp, #-68] + mov r1, r7 + str r0, [fp, #-76] sub r0, r6, #1 bl __udivsi3 - ldr r2, [fp, #-68] - ldr r10, [r9, #3988] - str r0, [fp, #-88] - sub r6, r0, r2 - add r3, r6, #1 - add r2, r6, #1 + ldr r2, [fp, #-76] + str r0, [fp, #-92] + sub r3, r0, r2 + str r3, [fp, #-96] + add r3, r3, #1 str r3, [fp, #-72] - cmp r10, #0 - ldr r3, [r9, #2516] + ldr r2, [fp, #-72] + ldr r3, [r4, #2516] add r3, r3, r2 - str r3, [r9, #2516] - beq .L1650 - ldr r3, [r10, #16] - ldr r2, [fp, #-68] - cmp r2, r3 - beq .L1651 - bl FtlCacheWriteBack -.L1650: + str r3, [r4, #2516] ldr r3, [r5, #8] - ldr r4, .L1712+12 + ldr r4, .L1716+12 cmp r3, #0 - beq .L1653 + beq .L1668 ldrh r3, [r4, #4] add r0, r4, #48 cmp r3, #0 moveq r4, r0 -.L1653: - ldr r5, [fp, #-68] - ldr r7, .L1712 -.L1654: +.L1668: + ldr r5, [fp, #-76] + ldr r10, .L1716 +.L1669: ldr r3, [fp, #-72] cmp r3, #0 - beq .L1688 + bne .L1697 + mov r0, r3 + ldr r1, [fp, #-96] + bl rk_ftl_garbage_collect + movw r3, #2344 + ldrh r3, [r10, r3] + cmp r3, #15 + bls .L1698 +.L1700: + mov r0, #0 + b .L1665 +.L1697: ldrb r2, [r4, #6] @ zero_extendqisi2 - ldrh r3, [r7, #32] + ldrh r3, [r10, #32] cmp r2, r3 - bcc .L1655 - mov r2, #1012 - ldr r1, .L1712+16 - ldr r0, .L1712+20 + bcc .L1670 + movw r2, #991 + ldr r1, .L1716+16 + ldr r0, .L1716+20 bl sftl_printk -.L1655: - ldrh r9, [r4, #4] - cmp r9, #0 - bne .L1656 - bl FtlCacheWriteBack - ldr r3, .L1712+12 - ldr r6, .L1712+4 +.L1670: + ldrh r2, [r4, #4] + cmp r2, #0 + bne .L1671 + ldr r3, .L1716+12 + ldr r6, .L1716+4 cmp r4, r3 - bne .L1657 + bne .L1672 add r0, r4, #48 - ldrh r9, [r0, #4] - cmp r9, #0 - bne .L1658 + ldrh r7, [r0, #4] + cmp r7, #0 + bne .L1673 bl allocate_new_data_superblock - str r9, [r6, #8] -.L1658: - ldr r0, .L1712+12 + str r7, [r6, #8] +.L1673: + ldr r0, .L1716+12 bl allocate_new_data_superblock - ldr r4, .L1712+12 + ldr r4, .L1716+12 ldr r3, [r6, #8] add r0, r4, #48 cmp r3, #0 movne r4, r0 -.L1659: +.L1674: ldrh r3, [r4, #4] cmp r3, #0 - bne .L1656 + bne .L1671 mov r0, r4 bl allocate_new_data_superblock -.L1656: +.L1671: + ldrb r2, [r4, #7] @ zero_extendqisi2 ldrh r3, [r4, #4] + ldr r1, [fp, #-72] + lsl r2, r2, #2 + cmp r3, r1 + movcs r3, r1 + cmp r2, r3 + movcc r3, r2 + ldrb r2, [r4, #6] @ zero_extendqisi2 + str r3, [fp, #-108] + ldrh r3, [r10, #32] + cmp r2, r3 + bcc .L1675 + mov r2, #1024 + ldr r1, .L1716+16 + ldr r0, .L1716+20 + bl sftl_printk +.L1675: + mov r3, #0 +.L1715: + str r3, [fp, #-68] + ldr r3, [fp, #-68] + ldr r2, [fp, #-108] + cmp r3, r2 + bne .L1695 +.L1677: + mov r3, r4 + mov r2, #0 + ldr r1, [fp, #-68] + ldr r0, [r10, #3844] + bl FtlProgPages + ldr r3, [fp, #-68] ldr r2, [fp, #-72] cmp r3, r2 - movcs r3, r2 - ldrb r2, [r4, #7] @ zero_extendqisi2 - lsl r2, r2, #2 - cmp r3, r2 - movcs r3, r2 - ldrb r2, [r4, #6] @ zero_extendqisi2 - str r3, [fp, #-104] - ldrh r3, [r7, #32] - cmp r2, r3 - bcc .L1660 - movw r2, #1045 - ldr r1, .L1712+16 - ldr r0, .L1712+20 + bls .L1696 + movw r2, #1101 + ldr r1, .L1716+16 + ldr r0, .L1716+20 bl sftl_printk -.L1660: - mov r9, #0 -.L1661: - ldr r3, [fp, #-104] - cmp r9, r3 - bne .L1682 -.L1662: - ldr r3, [r7, #3988] - cmp r3, #0 - beq .L1683 +.L1696: ldr r3, [fp, #-72] - subs r9, r9, #1 - sub r3, r3, #1 - str r3, [fp, #-72] - bne .L1683 -.L1688: - ldr r3, [fp, #-88] - mov r0, #0 ldr r2, [fp, #-68] - sub r1, r3, r2 - bl rk_ftl_garbage_collect - ldr r2, .L1712 - movw r3, #2344 - ldrh r3, [r2, r3] - cmp r3, #15 - bhi .L1685 - ldr r4, .L1712+24 - ldr r5, .L1712+28 -.L1708: + sub r3, r3, r2 + str r3, [fp, #-72] + b .L1669 +.L1672: + str r2, [r6, #8] + ldrh r2, [r3, #4] + cmp r2, #0 + movne r4, r3 + bne .L1671 + mov r0, r4 + bl allocate_new_data_superblock + b .L1674 +.L1695: + ldrh r3, [r4, #4] + cmp r3, #0 + beq .L1677 + mov r2, #0 + sub r1, fp, #64 + mov r0, r5 + mov r7, #20 + bl log2phys + mov r0, r4 + bl get_new_active_ppa + ldrh r2, [r10, #112] + ldr r1, [fp, #-68] + ldr r3, [fp, #-68] + mul r1, r2, r1 + mul r7, r7, r3 + ldr r3, [r10, #3844] + bic r1, r1, #3 + str r1, [fp, #-100] + add r3, r3, r7 + ldr r1, [r10, #3816] + str r0, [r3, #4] + ldr r0, [fp, #-100] + str r1, [fp, #-104] + str r5, [r3, #16] + add r8, r1, r0 + mov r1, #0 + str r8, [r3, #12] + mov r0, r8 + bl ftl_memset + ldr r3, [fp, #-76] + ldr r2, [fp, #-92] + ldrh r6, [r10, #58] + cmp r5, r2 + cmpne r5, r3 + bne .L1678 + cmp r5, r3 + bne .L1679 + mov r1, r6 + mov r0, r9 + bl __umodsi3 + ldr r3, [fp, #-84] + sub r6, r6, r0 + str r0, [fp, #-88] + cmp r6, r3 + movcs r6, r3 +.L1680: + ldrh r3, [r10, #58] + cmp r6, r3 + ldr r3, [fp, #-76] + bne .L1681 + cmp r5, r3 + ldr r3, [r10, #3844] + add r7, r3, r7 + ldreq r3, [fp, #-80] + streq r3, [r7, #8] + beq .L1683 +.L1712: + mul r6, r5, r6 + ldr r3, [fp, #-80] + sub r6, r6, r9 + add r6, r3, r6, lsl #9 + str r6, [r7, #8] + b .L1683 +.L1679: + ldr r3, [fp, #-84] + add r2, r9, r3 + smulbb r3, r6, r5 + sub r6, r2, r3 + mov r3, #0 + uxth r6, r6 + str r3, [fp, #-88] + b .L1680 +.L1681: + cmp r5, r3 + ldr r3, [r10, #3844] + ldreq r2, [r10, #3820] + ldrne r2, [r10, #3812] + add r3, r3, r7 + str r2, [r3, #8] + ldr r3, [fp, #-64] + cmn r3, #1 + beq .L1686 + str r3, [fp, #-56] + mov r1, #1 + ldr r3, [r10, #3844] + sub r0, fp, #60 + str r5, [fp, #-44] + add r3, r3, r7 + ldr r2, [r3, #8] + ldr r3, [r3, #12] + str r2, [fp, #-52] + mov r2, #0 + str r3, [fp, #-48] + bl FlashReadPages + ldr r3, [fp, #-60] + cmn r3, #1 + ldreq r3, [r10, #2708] + addeq r3, r3, #1 + streq r3, [r10, #2708] + beq .L1690 + ldr r3, [r8, #8] + cmp r5, r3 + beq .L1689 + ldr r3, [r10, #2708] + mov r2, r5 + ldr r0, .L1716+24 + add r3, r3, #1 + str r3, [r10, #2708] + ldr r1, [r8, #8] + bl sftl_printk +.L1689: + ldr r3, [r8, #8] + cmp r5, r3 + beq .L1690 + movw r2, #1077 + ldr r1, .L1716+16 + ldr r0, .L1716+20 + bl sftl_printk +.L1690: + ldr r3, [fp, #-76] + lsl r2, r6, #9 + cmp r5, r3 + bne .L1691 + ldr r3, [r10, #3844] + ldr r1, [fp, #-80] + add r7, r3, r7 + ldr r3, [fp, #-88] + ldr r0, [r7, #8] + add r0, r0, r3, lsl #9 +.L1713: + bl ftl_memcpy +.L1683: + ldrb r2, [r4, #6] @ zero_extendqisi2 + ldrh r3, [r10, #32] + cmp r2, r3 + bcc .L1692 + movw r2, #1092 + ldr r1, .L1716+16 + ldr r0, .L1716+20 + bl sftl_printk +.L1692: + ldr r3, .L1716+28 + ldr r2, [fp, #-104] + ldr r1, [fp, #-100] + strh r3, [r2, r1] @ movhi + ldr r3, [r10, #2544] + str r5, [r8, #8] + add r5, r5, #1 + str r3, [r8, #4] + add r3, r3, #1 + cmn r3, #1 + moveq r3, #0 + str r3, [r10, #2544] + ldr r3, [fp, #-64] + str r3, [r8, #12] + ldrh r3, [r4] + strh r3, [r8, #2] @ movhi + ldr r3, [fp, #-68] + add r3, r3, #1 + b .L1715 +.L1686: + ldr r3, [r10, #3844] + mov r1, #0 + ldrh r2, [r10, #110] + add r3, r3, r7 + ldr r0, [r3, #8] + bl ftl_memset + b .L1690 +.L1691: + ldrh r1, [r10, #58] + ldr r3, [r10, #3844] + mul r1, r5, r1 + add r7, r3, r7 + ldr r3, [fp, #-80] + ldr r0, [r7, #8] + sub r1, r1, r9 + add r1, r3, r1, lsl #9 + b .L1713 +.L1678: + ldr r3, [r10, #3844] + add r7, r3, r7 + b .L1712 +.L1698: + ldr r4, .L1716+32 + ldr r5, .L1716+36 +.L1710: ldrh r3, [r4] movw r2, #65535 cmp r3, r2 - bne .L1689 + bne .L1699 ldrh r2, [r5] cmp r2, r3 - bne .L1689 + bne .L1699 mov r0, #0 bl List_get_gc_head_node uxth r0, r0 bl FtlGcRefreshBlock -.L1689: - ldr r3, .L1712+32 +.L1699: + ldr r3, .L1716+40 mov r1, #1 mov r2, #128 mov r0, r1 @@ -11637,293 +12028,28 @@ FtlWrite: mov r1, #1 mov r0, #0 bl rk_ftl_garbage_collect - ldr r3, .L1712+36 + ldr r3, .L1716+44 ldrh r3, [r3] cmp r3, #8 - bls .L1708 - b .L1685 -.L1651: - ldr r3, [r9, #2520] - mov r1, r4 - mov r0, r8 - add r3, r3, #1 - str r3, [r9, #2520] - bl __umodsi3 - ldr r3, [fp, #-76] - sub r4, r4, r0 - ldr r1, [fp, #-80] - cmp r3, r4 - movcc r4, r3 - ldr r3, [r10, #8] - lsl r9, r4, #9 - mov r2, r9 - add r0, r3, r0, lsl #9 - bl ftl_memcpy - cmp r6, #0 - bne .L1652 -.L1685: - mov r0, #0 - b .L1647 -.L1652: - ldr r3, [fp, #-76] - add r8, r8, r4 - sub r3, r3, r4 - str r3, [fp, #-76] - ldr r3, [fp, #-80] - add r3, r3, r9 - str r3, [fp, #-80] - ldr r3, [fp, #-68] - add r3, r3, #1 - str r3, [fp, #-68] - bl FtlCacheWriteBack - str r6, [fp, #-72] - b .L1650 -.L1657: - ldrh r2, [r3, #4] - str r9, [r6, #8] - cmp r2, #0 - movne r4, r3 - bne .L1656 - mov r0, r4 - bl allocate_new_data_superblock - b .L1659 -.L1682: - ldrh r3, [r4, #4] - cmp r3, #0 - beq .L1662 - mov r2, #0 - sub r1, fp, #64 - mov r0, r5 - mov r6, #20 - bl log2phys - mov r0, r4 - mul r6, r6, r9 - bl get_new_active_ppa - ldrh r2, [r7, #112] - ldr r3, [r7, #3840] - mul r1, r2, r9 - add r3, r3, r6 - str r0, [r3, #4] - str r5, [r3, #16] - bic r1, r1, #3 - str r1, [fp, #-96] - ldr r0, [fp, #-96] - ldr r1, [r7, #3812] - add r10, r1, r0 - str r1, [fp, #-100] - str r10, [r3, #12] - mov r1, #0 - mov r0, r10 - bl ftl_memset - ldr r3, [fp, #-68] - ldr r2, [fp, #-88] - cmp r5, r2 - cmpne r5, r3 - ldrh r3, [r7, #58] - bne .L1663 - ldr r2, [fp, #-68] - cmp r5, r2 - bne .L1664 - mov r1, r3 - mov r0, r8 - str r3, [fp, #-84] - bl __umodsi3 - ldr r3, [fp, #-84] - ldr r2, [fp, #-76] - str r0, [fp, #-92] - sub r3, r3, r0 - cmp r3, r2 - movcs r3, r2 - str r3, [fp, #-84] -.L1665: - ldrh r3, [r7, #58] - ldr r2, [fp, #-84] - cmp r2, r3 - ldr r3, [fp, #-68] - bne .L1666 - cmp r5, r3 - ldr r3, [r7, #3840] - add r6, r3, r6 - ldreq r3, [fp, #-80] - beq .L1710 - ldr r3, [fp, #-84] - mul r2, r3, r5 - ldr r3, [fp, #-80] - sub r2, r2, r8 - add r2, r3, r2, lsl #9 - str r2, [r6, #8] -.L1668: - ldrb r2, [r4, #6] @ zero_extendqisi2 - ldrh r3, [r7, #32] - cmp r2, r3 - bcc .L1679 - movw r2, #1119 - ldr r1, .L1712+16 - ldr r0, .L1712+20 - bl sftl_printk -.L1679: - ldr r3, .L1712+40 - add r9, r9, #1 - ldr r2, [fp, #-100] - ldr r1, [fp, #-96] - strh r3, [r2, r1] @ movhi - ldr r3, [r7, #2544] - str r5, [r10, #8] - add r5, r5, #1 - str r3, [r10, #4] - add r3, r3, #1 - cmn r3, #1 - moveq r3, #0 - str r3, [r7, #2544] - ldr r3, [fp, #-64] - str r3, [r10, #12] - ldrh r3, [r4] - strh r3, [r10, #2] @ movhi - b .L1661 -.L1664: - ldr r2, [fp, #-76] - smulbb r3, r3, r5 - add r2, r8, r2 - sub r2, r2, r3 - uxth r3, r2 - str r3, [fp, #-84] - mov r3, #0 - str r3, [fp, #-92] - b .L1665 -.L1666: - cmp r5, r3 - ldr r3, [r7, #3840] - ldreq r2, [r7, #3816] - ldrne r2, [r7, #3808] - add r3, r3, r6 - str r2, [r3, #8] - ldr r3, [fp, #-64] - cmn r3, #1 - beq .L1671 - str r3, [fp, #-56] - mov r1, #1 - ldr r3, [r7, #3840] - sub r0, fp, #60 - str r5, [fp, #-44] - add r3, r3, r6 - ldr r2, [r3, #8] - ldr r3, [r3, #12] - str r2, [fp, #-52] - mov r2, #0 - str r3, [fp, #-48] - bl FlashReadPages - ldr r3, [fp, #-60] - cmn r3, #1 - ldreq r3, [r7, #2708] - addeq r3, r3, #1 - streq r3, [r7, #2708] - beq .L1675 - ldr r3, [r10, #8] - cmp r5, r3 - beq .L1674 - ldr r3, [r7, #2708] - mov r2, r5 - ldr r0, .L1712+44 - add r3, r3, #1 - str r3, [r7, #2708] - ldr r1, [r10, #8] - bl sftl_printk -.L1674: - ldr r3, [r10, #8] - cmp r5, r3 - beq .L1675 - movw r2, #1098 - ldr r1, .L1712+16 - ldr r0, .L1712+20 - bl sftl_printk -.L1675: - ldr r3, [fp, #-68] - cmp r5, r3 - ldr r3, [fp, #-84] - lsl r2, r3, #9 - bne .L1676 - ldr r3, [r7, #3840] - ldr r1, [fp, #-80] - add r3, r3, r6 - ldr r0, [r3, #8] - ldr r3, [fp, #-92] - add r0, r0, r3, lsl #9 - bl ftl_memcpy - ldr r3, [fp, #-88] - cmp r5, r3 - bne .L1668 -.L1677: - ldrh r3, [r4, #4] - cmp r3, #0 - ldrne r3, [r7, #3840] - addne r6, r3, r6 - ldrne r3, .L1712+8 - strne r6, [r7, #3988] - strne r4, [r3, #-4036] - b .L1668 -.L1671: - ldr r3, [r7, #3840] - mov r1, #0 - ldrh r2, [r7, #110] - add r3, r3, r6 - ldr r0, [r3, #8] - bl ftl_memset - b .L1675 -.L1676: - ldrh r1, [r7, #58] - ldr r0, [fp, #-80] - ldr r3, [r7, #3840] - mul r1, r5, r1 - add r3, r3, r6 - sub r1, r1, r8 - add r1, r0, r1, lsl #9 - ldr r0, [r3, #8] - bl ftl_memcpy - b .L1677 -.L1663: - ldr r2, [r7, #3840] - mul r3, r5, r3 - add r6, r2, r6 - ldr r2, [fp, #-80] - sub r3, r3, r8 - add r3, r2, r3, lsl #9 -.L1710: - str r3, [r6, #8] - b .L1668 -.L1683: - mov r3, r4 - mov r2, #0 - mov r1, r9 - ldr r0, [r7, #3840] - bl FtlProgPages - ldr r3, [fp, #-72] - cmp r3, r9 - bcs .L1686 - movw r2, #1134 - ldr r1, .L1712+16 - ldr r0, .L1712+20 - bl sftl_printk -.L1686: - ldr r3, [fp, #-72] - sub r3, r3, r9 - str r3, [fp, #-72] - b .L1654 -.L1713: + bls .L1710 + b .L1700 +.L1717: .align 2 -.L1712: +.L1716: .word .LANCHOR0 .word .LANCHOR2 .word .LANCHOR3 .word .LANCHOR0+2348 .word .LANCHOR1+574 .word .LC1 + .word .LC114 + .word -3947 .word .LANCHOR0+2588 .word .LANCHOR0+3202 .word .LANCHOR0+3150 .word .LANCHOR0+2344 - .word -3947 - .word .LC109 .size FtlWrite, .-FtlWrite + .global __modsi3 .align 2 .global sftl_write .syntax unified @@ -11931,17 +12057,292 @@ FtlWrite: .fpu softvfp .type sftl_write, %function sftl_write: - @ args = 0, pretend = 0, frame = 0 + @ args = 0, pretend = 0, frame = 116 @ frame_needed = 1, uses_anonymous_args = 0 mov ip, sp - push {fp, ip, lr, pc} + push {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc} sub fp, ip, #4 - mov r3, r2 - mov r2, r1 + sub sp, sp, #120 + add ip, r0, r1 + sub lr, ip, #1 + mov r3, r1 + cmp lr, #63 + mov r10, r0 + movhi r3, #0 + movls r3, #1 + cmp r0, #576 + orrhi r3, r3, #1 + str r1, [fp, #-112] + cmp r3, #0 + str r2, [fp, #-132] + ldr r4, .L1749 + beq .L1719 + ldr r3, [r4, #-4012] + cmp r3, #0 + beq .L1720 + ldr r2, .L1749+4 + mov r0, #512 + ldrh r3, [r2, #14] + str r3, [fp, #-116] + ldrh r3, [r2, #10] + ldrb r1, [fp, #-116] @ zero_extendqisi2 + smulbb r3, r3, r1 + uxth r3, r3 + mov r1, r3 + str r3, [fp, #-120] + bl __udivsi3 + ldr r2, .L1749+8 + mov r3, #0 + ldr r1, .L1749+12 + str r0, [fp, #-108] + sub ip, r2, #262144 +.L1724: + ldr r0, [r2, #-4] + cmp r0, #0 + beq .L1721 +.L1725: + ldr r3, [fp, #-108] + mov r4, #0 + ldr r2, [fp, #-120] + ldr r9, .L1749+16 + ldr r5, .L1749+4 + str r4, [fp, #-124] + mul r3, r3, r2 + str r3, [fp, #-144] + ldr r3, [fp, #-108] + str r3, [fp, #-128] +.L1722: + mov r1, #512 + mov r0, r9 + bl __memzero + ldrh r8, [r5, #14] + mov r0, r4 + ldrh r6, [r5, #10] + mov r1, r8 + uxtb r7, r8 + uxth r3, r7 + str r3, [fp, #-136] + ldrh r3, [fp, #-136] + smulbb r6, r6, r3 + bl __udivsi3 + uxth r6, r6 + mov r1, r0 + ldr r3, [r5, #3252] + mov r0, #0 + blx r3 + cmp r6, #512 + bcs .L1726 + mov r1, r8 + add r0, r6, r4 + bl __udivsi3 + ldr r3, [r5, #3252] mov r1, r0 mov r0, #0 + blx r3 +.L1726: + mov r1, r6 + mov r0, r4 + bl __umodsi3 + mov r6, #0 + mov r8, r0 + sub r3, r4, r0 + str r3, [fp, #-140] +.L1727: + cmp r6, #512 + bcc .L1728 + ldrb r7, [r5, #14] @ zero_extendqisi2 + mov r0, r4 + ldrh r1, [r5, #10] + mov r6, #0 + uxth r3, r7 + str r3, [fp, #-136] + ldrh r3, [fp, #-136] + smulbb r1, r1, r3 + uxth r1, r1 + bl __umodsi3 + mov r1, r7 + mov ip, r0 + sub r3, r4, r0 + uxth r0, r0 + str r3, [fp, #-140] + str ip, [fp, #-148] + bl __modsi3 + ldr ip, [fp, #-148] + uxth r3, r0 +.L1729: + cmp r6, #512 + bcs .L1733 + ldr r2, [fp, #-136] + add r0, ip, r6 + mov r1, r7 + str ip, [fp, #-148] + str r3, [fp, #-156] + sub r8, r2, r3 + add r2, r9, r6, lsl #9 + uxth r8, r8 + str r2, [fp, #-152] + bl __udivsi3 + ldr r2, [fp, #-140] + uxth r0, r0 + ldr r3, [fp, #-156] + mov r1, r7 + add r3, r3, r2 + mla r0, r7, r0, r3 + bl __udivsi3 + ldr ip, [r5, #3260] + mov r1, r0 + sub r3, fp, #104 + ldr r2, [fp, #-152] + mov r0, #0 + blx ip + cmn r0, #1 + ldr ip, [fp, #-148] + bne .L1730 +.L1733: + ldr r3, .L1749+20 + mov r6, #0 +.L1731: + mov r7, r3 + ldr r1, [r9, r6, lsl #2] + ldr r2, [r7] + add r3, r3, #4 + cmp r1, r2 + beq .L1734 + mov r1, #512 + mov r0, r9 + bl __memzero + ldr r2, [r9, r6, lsl #2] + mov r1, r4 + str r6, [sp] + ldr r0, .L1749+24 + ldr r3, [r7] + bl sftl_printk + ldr r1, [fp, #-116] + mov r0, r4 + bl __udivsi3 + ldr r3, [r5, #3252] + mov r1, r0 + mov r0, #0 + blx r3 + ldr r3, [fp, #-108] + cmp r3, #1 + bls .L1735 + ldr r3, [fp, #-120] + ldr r1, [fp, #-116] + add r0, r3, r4 + bl __udivsi3 + ldr r3, [r5, #3252] + mov r1, r0 + mov r0, #0 + blx r3 +.L1735: + ldr r2, [fp, #-128] + ldr r3, [fp, #-108] + add r3, r3, r2 + ldr r2, [fp, #-144] + add r4, r4, r2 + ldr r2, [fp, #-128] + cmp r2, #15 + bls .L1741 +.L1740: + ldr r3, .L1749 + mov r2, #0 + str r2, [r3, #-4012] +.L1720: + ldr r3, [fp, #-132] + mov r1, r10 + ldr r2, [fp, #-112] + mov r0, #0 bl FtlWrite - ldmfd sp, {fp, sp, pc} + sub sp, fp, #40 + ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc} +.L1721: + ldr r0, [ip, r3, lsl #2] + add r3, r3, #1 + cmp r3, #4096 + movhi r3, #0 + str r0, [r2, #-4]! + cmp r1, r2 + bne .L1724 + b .L1725 +.L1741: + str r3, [fp, #-128] + b .L1722 +.L1728: + mov r1, r7 + add r0, r8, r6 + bl __udivsi3 + uxth ip, r0 + mov r1, r7 + ldr r0, [fp, #-140] + mul r3, r7, ip + str ip, [fp, #-152] + str r3, [fp, #-104] + movw r3, #61424 + str r3, [fp, #-100] + ldr r3, .L1749+20 + add r2, r3, r6, lsl #9 + str r2, [fp, #-148] + bl __udivsi3 + ldr ip, [fp, #-152] + sub r3, fp, #104 + ldr r2, [fp, #-148] + add r1, r0, ip + mov r0, #0 + ldr ip, [r5, #3256] + blx ip + ldr r3, [fp, #-136] + add r6, r3, r6 + uxth r6, r6 + b .L1727 +.L1730: + add r6, r8, r6 + mov r3, #0 + uxth r6, r6 + b .L1729 +.L1734: + add r6, r6, #1 + cmp r6, #65536 + bne .L1731 + ldr r3, [fp, #-124] + add r3, r3, #1 + cmp r3, #5 + str r3, [fp, #-124] + bls .L1735 + b .L1740 +.L1719: + cmp r0, #63 + ldr r0, .L1749+20 + ldrls r3, [fp, #-112] + rsbls r1, r10, #64 + ldrhi r3, .L1749+28 + ldrhi r2, [fp, #-112] + subls r2, r3, r1 + ldrls r3, [fp, #-132] + addhi r3, r10, r3 + ldrhi r1, [fp, #-132] + addhi r0, r0, r3, lsl #9 + addls r1, r3, r1, lsl #9 + cmp lr, #576 + subhi r2, r2, ip + subhi r2, r2, #444 + mov r3, #1 + subhi r2, r2, #3 + str r3, [r4, #-4012] + lsl r2, r2, #9 + bl memcpy + b .L1720 +.L1750: + .align 2 +.L1749: + .word .LANCHOR3 + .word .LANCHOR0 + .word idb_buf+262144 + .word idb_buf+16388 + .word gp_flash_check_buf + .word idb_buf + .word .LC115 + .word 8388544 .size sftl_write, .-sftl_write .align 2 .global sftl_vendor_write @@ -11974,63 +12375,63 @@ FtlLoadSysInfo: mov ip, sp push {r4, r5, r6, r7, r8, fp, ip, lr, pc} sub fp, ip, #4 - ldr r4, .L1737 + ldr r4, .L1773 mov r1, #0 - ldr r3, [r4, #3280] + ldr r3, [r4, #3284] add r6, r4, #2576 ldrh r2, [r4, #40] ldr r0, [r4, #2324] - str r3, [r4, #3268] - ldr r3, [r4, #3284] - lsl r2, r2, #1 str r3, [r4, #3272] + ldr r3, [r4, #3288] + lsl r2, r2, #1 + str r3, [r4, #3276] bl ftl_memset ldrh r0, [r6] movw r3, #65535 cmp r0, r3 - bne .L1717 -.L1725: + bne .L1753 +.L1761: mvn r0, #0 ldmfd sp, {r4, r5, r6, r7, r8, fp, sp, pc} -.L1717: - ldr r7, .L1737+4 +.L1753: + ldr r8, .L1773+4 mov r1, #1 - ldr r8, .L1737+8 + add r7, r4, #3264 bl FtlGetLastWrittenPage sxth r5, r0 add r0, r0, #1 strh r0, [r6, #2] @ movhi -.L1719: +.L1755: cmp r5, #0 - bge .L1722 - movw r2, #1437 - ldr r1, .L1737+12 - ldr r0, .L1737+16 + bge .L1758 + movw r2, #1482 + ldr r1, .L1773+8 + ldr r0, .L1773+12 bl sftl_printk -.L1721: +.L1757: ldrh r3, [r4, #40] ldrh r2, [r4, #110] add r3, r3, #24 cmp r2, r3, lsl #1 - bcs .L1724 - movw r2, #1439 - ldr r1, .L1737+12 - ldr r0, .L1737+16 + bcs .L1760 + movw r2, #1484 + ldr r1, .L1773+8 + ldr r0, .L1773+12 bl sftl_printk -.L1724: - ldr r5, .L1737+20 +.L1760: + ldr r5, .L1773+16 mov r2, #48 - ldr r1, [r4, #3268] + ldr r1, [r4, #3272] mov r0, r5 bl ftl_memcpy ldrh r2, [r4, #40] - ldr r1, [r4, #3268] + ldr r1, [r4, #3272] ldr r0, [r4, #2324] lsl r2, r2, #1 add r1, r1, #48 bl ftl_memcpy ldrh r1, [r4, #40] - ldr r3, [r4, #3268] + ldr r3, [r4, #3272] ldr r0, [r4, #24] lsr r2, r1, #3 add r1, r1, #24 @@ -12040,19 +12441,19 @@ FtlLoadSysInfo: add r1, r3, r1 bl ftl_memcpy ldr r2, [r4, #2268] - ldr r3, .L1737+8 + ldr r3, .L1773+4 cmp r2, r3 - bne .L1725 + bne .L1761 ldrb r2, [r4, #2278] @ zero_extendqisi2 ldrh r3, [r4, #54] ldrh r7, [r5, #8] cmp r2, r3 strh r7, [r6, #6] @ movhi - bne .L1725 - ldr r3, .L1737+24 + bne .L1761 + ldr r3, .L1773+20 ldrh r2, [r4, #58] ldr r6, [r4, #44] - str r7, [r3, #-4016] + str r7, [r3, #-4008] ldrh r3, [r4, #102] ldrh r0, [r4, #158] ldrh r1, [r4, #32] @@ -12066,15 +12467,15 @@ FtlLoadSysInfo: cmp r7, r6 movw r3, #2572 strh r0, [r4, r3] @ movhi - bls .L1726 - movw r2, #1461 - ldr r1, .L1737+12 - ldr r0, .L1737+16 + bls .L1762 + movw r2, #1506 + ldr r1, .L1773+8 + ldr r0, .L1773+12 bl sftl_printk -.L1726: +.L1762: ldrh r0, [r5, #14] movw r3, #2348 - ldr r1, .L1737+28 + ldr r1, .L1773+24 mvn ip, #0 strh r0, [r4, r3] @ movhi ldrh r3, [r5, #16] @@ -12129,67 +12530,66 @@ FtlLoadSysInfo: strhi r3, [r4, #2544] movw r3, #65535 cmp r0, r3 - beq .L1729 - ldr r0, .L1737+28 + beq .L1765 + ldr r0, .L1773+24 bl make_superblock -.L1729: +.L1765: movw r3, #2396 ldrh r2, [r4, r3] movw r3, #65535 cmp r2, r3 - beq .L1730 - ldr r0, .L1737+32 + beq .L1766 + ldr r0, .L1773+28 bl make_superblock -.L1730: +.L1766: movw r3, #2444 ldrh r2, [r4, r3] movw r3, #65535 cmp r2, r3 - beq .L1731 - ldr r0, .L1737+36 + beq .L1767 + ldr r0, .L1773+32 bl make_superblock -.L1731: +.L1767: movw r3, #2588 ldrh r2, [r4, r3] movw r3, #65535 cmp r2, r3 - beq .L1732 - ldr r0, .L1737+40 + beq .L1768 + ldr r0, .L1773+36 bl make_superblock -.L1732: +.L1768: mov r0, #0 ldmfd sp, {r4, r5, r6, r7, r8, fp, sp, pc} -.L1722: +.L1758: ldrh r3, [r6] mov r2, #1 mov r1, r2 mov r0, r7 orr r3, r5, r3, lsl #10 - str r3, [r4, #3264] - ldr r3, [r4, #3280] str r3, [r4, #3268] + ldr r3, [r4, #3284] + str r3, [r4, #3272] bl FlashReadPages - ldr r3, [r4, #3260] + ldr r3, [r4, #3264] cmn r3, #1 - beq .L1720 - ldr r3, [r4, #3280] + beq .L1756 + ldr r3, [r4, #3284] ldr r3, [r3] cmp r3, r8 - bne .L1720 - ldr r3, [r4, #3284] + bne .L1756 + ldr r3, [r4, #3288] ldrh r2, [r3] movw r3, #61604 cmp r2, r3 - beq .L1721 -.L1720: + beq .L1757 +.L1756: sub r5, r5, #1 sxth r5, r5 - b .L1719 -.L1738: + b .L1755 +.L1774: .align 2 -.L1737: +.L1773: .word .LANCHOR0 - .word .LANCHOR0+3260 .word 1179929683 .word .LANCHOR1+583 .word .LC1 @@ -12212,27 +12612,27 @@ FtlSysBlkInit: mov ip, sp push {r4, r5, r6, r7, r8, fp, ip, lr, pc} sub fp, ip, #4 - ldr r4, .L1755 - mov r2, #0 - movw r3, #4008 + ldr r4, .L1799 + mov r3, #0 + add r6, r4, #4016 ldrh r0, [r4, #36] - strh r2, [r4, r3] @ movhi + strh r3, [r6] @ movhi bl FtlFreeSysBlkQueueInit bl FtlScanSysBlk add r3, r4, #2576 ldrh r2, [r3] movw r3, #65535 cmp r2, r3 - bne .L1740 -.L1742: + bne .L1776 +.L1778: mvn r8, #0 -.L1739: +.L1775: mov r0, r8 ldmfd sp, {r4, r5, r6, r7, r8, fp, sp, pc} -.L1740: +.L1776: bl FtlLoadSysInfo subs r8, r0, #0 - bne .L1742 + bne .L1778 bl FtlLoadMapInfo bl FtlLoadVonderInfo bl Ftl_load_ext_data @@ -12246,27 +12646,22 @@ FtlSysBlkInit: mov r3, r8 ldr r2, [r4, #2492] mov r0, #12 -.L1743: +.L1779: cmp r3, r1 - bge .L1748 + bge .L1784 mla ip, r0, r3, r2 ldr ip, [ip, #4] cmp ip, #0 - bge .L1744 -.L1748: - ldr r5, .L1755+4 + bge .L1780 +.L1784: + ldr r5, .L1799+4 cmp r3, r1 ldrh r2, [r5, #28] add r7, r5, #80 add r2, r2, #1 strh r2, [r5, #28] @ movhi - bge .L1754 -.L1745: - ldr r6, .L1755+8 - ldr r0, .L1755+12 - bl FtlSuperblockPowerLostFix - mov r0, r6 - bl FtlSuperblockPowerLostFix + bge .L1798 +.L1781: movw r3, #2348 ldr r1, [r4, #2324] ldrh r3, [r4, r3] @@ -12278,23 +12673,24 @@ FtlSysBlkInit: movw r2, #2396 ldrh r2, [r4, r2] ldrh r3, [r4, #102] - ldr r0, [r4, #2324] - ldrh ip, [r6, #4] + ldr r1, .L1799+8 + ldr ip, [r4, #2324] lsl r2, r2, #1 strh r3, [r7, #2] @ movhi mov r3, #0 + ldrh lr, [r1, #4] strb r3, [r4, #2354] strh r3, [r7, #4] @ movhi - ldrh r1, [r0, r2] - sub r1, r1, ip - strh r1, [r0, r2] @ movhi + ldrh r0, [ip, r2] + sub r0, r0, lr + strh r0, [ip, r2] @ movhi ldrh r2, [r4, #102] - ldr r0, .L1755+16 + ldr r0, .L1799+12 + strh r3, [r1, #4] @ movhi + strh r2, [r1, #2] @ movhi strb r3, [r4, #2402] - strh r2, [r6, #2] @ movhi - strh r3, [r6, #4] @ movhi bl FtlMapBlkWriteDump_data - add r0, r6, #1552 + ldr r0, .L1799+16 bl FtlMapBlkWriteDump_data ldrh r3, [r5, #30] add r3, r3, #1 @@ -12302,50 +12698,103 @@ FtlSysBlkInit: bl l2p_flush bl FtlVpcTblFlush bl FtlVpcTblFlush - b .L1749 -.L1744: + b .L1785 +.L1780: add r3, r3, #1 - b .L1743 -.L1754: - movw r3, #4008 - ldrh r3, [r4, r3] + b .L1779 +.L1798: + ldrh r3, [r6] cmp r3, #0 - bne .L1745 -.L1749: + bne .L1781 +.L1785: + ldrh r6, [r5, #44] + movw r2, #65533 + sub r3, r6, #1 + uxth r3, r3 + cmp r3, r2 + bhi .L1787 + movw r3, #3202 + mov r1, r6 + ldr r0, .L1799+20 + strh r6, [r4, r3] @ movhi + bl test_node_in_list + cmp r0, #0 + bne .L1788 + ldrh r3, [r4, #40] + cmp r3, r6 + bls .L1788 + ldr r3, [r4, #2324] + lsl r6, r6, #1 + ldrh r3, [r3, r6] + cmp r3, #0 + bne .L1787 +.L1788: + mvn r2, #0 + movw r3, #3202 + strh r2, [r4, r3] @ movhi +.L1787: + ldrh r6, [r5, #46] + movw r2, #65533 + sub r3, r6, #1 + uxth r3, r3 + cmp r3, r2 + bhi .L1791 + movw r3, #3204 + mov r1, r6 + ldr r0, .L1799+20 + strh r6, [r4, r3] @ movhi + bl test_node_in_list + cmp r0, #0 + bne .L1792 + ldrh r3, [r4, #40] + cmp r3, r6 + bls .L1792 + ldr r3, [r4, #2324] + lsl r6, r6, #1 + ldrh r3, [r3, r6] + cmp r3, #0 + bne .L1791 +.L1792: + mvn r2, #0 + movw r3, #3204 + strh r2, [r4, r3] @ movhi +.L1791: movw r3, #2348 ldrh r0, [r4, r3] movw r3, #65535 cmp r0, r3 - beq .L1750 + beq .L1794 ldrh r3, [r7, #4] cmp r3, #0 - bne .L1750 - ldr r6, .L1755+8 + bne .L1794 + ldr r6, .L1799+8 ldrh r3, [r6, #4] cmp r3, #0 - bne .L1750 + bne .L1794 bl FtlGcRefreshBlock movw r3, #2396 ldrh r0, [r4, r3] bl FtlGcRefreshBlock + bl FtlVpcTblFlush sub r0, r6, #48 bl allocate_new_data_superblock mov r0, r6 bl allocate_new_data_superblock -.L1750: +.L1794: ldrh r3, [r5, #28] tst r3, #31 - bne .L1739 + bne .L1775 bl FtlVpcCheckAndModify - b .L1739 -.L1756: + b .L1775 +.L1800: .align 2 -.L1755: +.L1799: .word .LANCHOR0 .word .LANCHOR0+2268 .word .LANCHOR0+2396 - .word .LANCHOR0+2348 - .word .LANCHOR0+3904 + .word .LANCHOR0+3908 + .word .LANCHOR0+3956 + .word .LANCHOR0+2340 .size FtlSysBlkInit, .-FtlSysBlkInit .align 2 .global ftl_low_format @@ -12359,7 +12808,7 @@ ftl_low_format: mov ip, sp push {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc} sub fp, ip, #4 - ldr r4, .L1781 + ldr r4, .L1825 mov r3, #0 ldrh r0, [r4, #36] str r3, [r4, #2540] @@ -12367,41 +12816,41 @@ ftl_low_format: bl FtlFreeSysBlkQueueInit bl FtlLoadBbt cmp r0, #0 - beq .L1758 + beq .L1802 bl FtlMakeBbt -.L1758: - ldr r0, .L1781+4 +.L1802: + ldr r0, .L1825+4 mov r2, #0 -.L1759: +.L1803: ldrh r1, [r4, #58] uxth r3, r2 add r2, r2, #1 cmp r3, r1, lsl #7 - blt .L1760 + blt .L1804 ldrh r6, [r4, #40] mov r5, #0 -.L1761: +.L1805: ldrh r3, [r4, #42] cmp r3, r6 - bhi .L1762 + bhi .L1806 ldrh r1, [r4, #32] sub r3, r5, #3 cmp r3, r1, lsl #1 - bge .L1763 -.L1767: + bge .L1807 +.L1811: mov r0, #0 mov r6, r0 -.L1764: +.L1808: ldrh r2, [r4, #40] uxth r3, r0 add r5, r0, #1 cmp r2, r3 - bhi .L1768 + bhi .L1812 ldrh r3, [r4, #42] movw r9, #2572 ldrh r5, [r4, #32] ldr r10, [r4, #44] - str r3, [r4, #3804] + str r3, [r4, #3808] mov r1, r5 mov r0, r10 bl __udivsi3 @@ -12413,7 +12862,7 @@ ftl_low_format: mov r3, #24 mul r3, r3, r5 cmp r6, r3 - ble .L1769 + ble .L1813 mov r1, r5 sub r0, r10, r6 bl __udivsi3 @@ -12421,10 +12870,10 @@ ftl_low_format: lsr r0, r0, #5 add r0, r0, #24 strh r0, [r4, r9] @ movhi -.L1769: +.L1813: ldrh r3, [r4, #94] cmp r3, #0 - beq .L1771 + beq .L1815 movw r2, #2572 ldrh r1, [r4, r2] add r1, r1, r3, lsr #1 @@ -12435,16 +12884,16 @@ ftl_low_format: strlt r8, [r4, #2504] addlt r3, r7, r3 strhlt r3, [r4, r2] @ movhi -.L1771: +.L1815: movw r3, #2572 - ldr r6, .L1781+8 + ldr r6, .L1825+8 ldrh r2, [r4, r3] mvn r7, #0 ldr r3, [r4, #2504] sub r3, r3, r2 mul r5, r5, r3 ldrh r3, [r4, #102] - str r5, [r6, #-4016] + str r5, [r6, #-4008] mul r5, r5, r3 ldrh r3, [r4, #58] str r5, [r4, #2504] @@ -12454,7 +12903,7 @@ ftl_low_format: ldrh r2, [r4, #42] mov r1, #0 ldr r0, [r4, #2324] - ldr r5, .L1781+12 + ldr r5, .L1825+12 lsl r2, r2, #1 sub r5, r5, #240 bl ftl_memset @@ -12477,29 +12926,29 @@ ftl_low_format: ldr r0, [r4, #24] strb r3, [r4, #2356] bl ftl_memset -.L1773: +.L1817: mov r0, r8 bl make_superblock ldrb r3, [r4, #2355] @ zero_extendqisi2 cmp r3, #0 ldrh r3, [r5] - bne .L1774 + bne .L1818 ldr r2, [r4, #2324] lsl r3, r3, #1 strh r7, [r2, r3] @ movhi ldrh r3, [r5] add r3, r3, #1 strh r3, [r5] @ movhi - b .L1773 -.L1760: - ldr ip, [r4, #3816] + b .L1817 +.L1804: + ldr ip, [r4, #3820] mvn r1, r3 orr r1, r3, r1, lsl #16 str r1, [ip, r3, lsl #2] - ldr r1, [r4, #3808] + ldr r1, [r4, #3812] str r0, [r1, r3, lsl #2] - b .L1759 -.L1762: + b .L1803 +.L1806: mov r0, r6 mov r1, #1 bl FtlLowFormatEraseBlock @@ -12507,8 +12956,8 @@ ftl_low_format: add r5, r5, r0 uxth r5, r5 uxth r6, r6 - b .L1761 -.L1763: + b .L1805 +.L1807: mov r0, r5 bl __udivsi3 ldr r3, [r4, #132] @@ -12518,25 +12967,25 @@ ftl_low_format: ldrh r0, [r4, #36] bl FtlFreeSysBlkQueueInit ldrh r5, [r4, #40] -.L1765: +.L1809: ldrh r3, [r4, #42] cmp r3, r5 - bls .L1767 + bls .L1811 mov r0, r5 mov r1, #1 add r5, r5, #1 bl FtlLowFormatEraseBlock uxth r5, r5 - b .L1765 -.L1768: + b .L1809 +.L1812: mov r1, #0 uxth r0, r0 bl FtlLowFormatEraseBlock add r6, r6, r0 mov r0, r5 uxth r6, r6 - b .L1764 -.L1774: + b .L1808 +.L1818: ldr r2, [r4, #2540] lsl r3, r3, #1 ldrh r1, [r5, #4] @@ -12547,7 +12996,7 @@ ftl_low_format: ldr r2, [r4, #2324] strh r1, [r2, r3] @ movhi mov r3, #0 - ldr r2, .L1781+16 + ldr r2, .L1825+16 movw r1, #2396 strb r3, [r4, #2402] strh r3, [r2, #2] @ movhi @@ -12558,21 +13007,21 @@ ftl_low_format: strh r3, [r4, r1] @ movhi mov r3, #1 strb r3, [r4, #2404] -.L1775: +.L1819: mov r0, r8 bl make_superblock ldrb r3, [r4, #2403] @ zero_extendqisi2 cmp r3, #0 ldrh r3, [r5] - bne .L1776 + bne .L1820 ldr r2, [r4, #2324] lsl r3, r3, #1 strh r7, [r2, r3] @ movhi ldrh r3, [r5] add r3, r3, #1 strh r3, [r5] @ movhi - b .L1775 -.L1776: + b .L1819 +.L1820: ldr r2, [r4, #2540] lsl r3, r3, #1 ldrh r1, [r5, #4] @@ -12585,10 +13034,10 @@ ftl_low_format: movw r3, #2444 strh r5, [r4, r3] @ movhi bl FtlFreeSysBlkQueueOut - ldr r3, .L1781+20 + ldr r3, .L1825+20 mov r2, #0 strh r2, [r3, #2] @ movhi - ldr r2, [r6, #-4016] + ldr r2, [r6, #-4008] strh r5, [r3, #4] @ movhi strh r0, [r3] @ movhi strh r2, [r3, #6] @ movhi @@ -12600,13 +13049,13 @@ ftl_low_format: bl FtlSysBlkInit cmp r0, #0 mov r0, #0 - ldreq r3, .L1781+24 + ldreq r3, .L1825+24 moveq r2, #1 streq r2, [r3] ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc} -.L1782: +.L1826: .align 2 -.L1781: +.L1825: .word .LANCHOR0 .word 168778952 .word .LANCHOR3 @@ -12627,11 +13076,11 @@ sftl_init: mov ip, sp push {r4, r5, fp, ip, lr, pc} sub fp, ip, #4 - ldr r4, .L1789 + ldr r4, .L1833 mvn r3, #0 - ldr r5, .L1789+4 - ldr r1, .L1789+8 - ldr r0, .L1789+12 + ldr r5, .L1833+4 + ldr r1, .L1833+8 + ldr r0, .L1833+12 str r3, [r5] bl sftl_printk mov r0, r4 @@ -12642,29 +13091,29 @@ sftl_init: bl FtlFreeSysBlkQueueInit bl FtlLoadBbt cmp r0, #0 - bne .L1787 + bne .L1831 bl FtlSysBlkInit cmp r0, #0 - bne .L1787 + bne .L1831 mov r3, #1 str r3, [r5] movw r3, #2344 ldrh r3, [r4, r3] cmp r3, #15 - bhi .L1787 + bhi .L1831 movw r4, #8129 -.L1786: +.L1830: mov r1, #1 mov r0, #0 bl rk_ftl_garbage_collect subs r4, r4, #1 - bne .L1786 -.L1787: + bne .L1830 +.L1831: mov r0, #0 ldmfd sp, {r4, r5, fp, sp, pc} -.L1790: +.L1834: .align 2 -.L1789: +.L1833: .word .LANCHOR0 .word .LANCHOR2 .word .LC70 @@ -12697,17 +13146,17 @@ rk_sftl_vendor_dev_ops_register: mov ip, sp push {fp, ip, lr, pc} sub fp, ip, #4 - ldr r2, .L1795 - ldr r3, [r2, #-4012] + ldr r2, .L1839 + ldr r3, [r2, #-4004] cmp r3, #0 - streq r0, [r2, #-4012] + streq r0, [r2, #-4004] moveq r0, r3 - streq r1, [r2, #-4008] + streq r1, [r2, #-4000] mvnne r0, #0 ldmfd sp, {fp, sp, pc} -.L1796: +.L1840: .align 2 -.L1795: +.L1839: .word .LANCHOR3 .size rk_sftl_vendor_dev_ops_register, .-rk_sftl_vendor_dev_ops_register .align 2 @@ -12723,28 +13172,28 @@ rk_sftl_vendor_storage_init: push {r4, r5, r6, r7, r8, r9, fp, ip, lr, pc} sub fp, ip, #4 mov r0, #65536 - ldr r4, .L1806 + ldr r4, .L1850 bl ftl_malloc cmp r0, #0 - str r0, [r4, #-4004] + str r0, [r4, #-3996] mvneq r9, #11 - beq .L1797 - ldr r8, .L1806+4 + beq .L1841 + ldr r8, .L1850+4 mov r6, #0 mov r5, r6 mov r7, r6 -.L1801: - ldr r3, [r4, #-4012] +.L1845: + ldr r3, [r4, #-4004] mov r1, #128 - ldr r2, [r4, #-4004] + ldr r2, [r4, #-3996] lsl r0, r7, #7 blx r3 subs r9, r0, #0 - bne .L1799 - ldr r2, [r4, #-4004] + bne .L1843 + ldr r2, [r4, #-3996] ldr r3, [r2] cmp r3, r8 - bne .L1800 + bne .L1844 add r1, r2, #61440 ldr r3, [r2, #4] ldr r1, [r1, #4092] @@ -12756,44 +13205,44 @@ rk_sftl_vendor_storage_init: cmp r1, #0 movne r6, r7 movne r5, r3 -.L1800: +.L1844: add r7, r7, #1 cmp r7, #2 - bne .L1801 + bne .L1845 cmp r5, #0 - beq .L1802 - ldr r3, [r4, #-4012] + beq .L1846 + ldr r3, [r4, #-4004] mov r1, #128 lsl r0, r6, #7 blx r3 subs r9, r0, #0 - beq .L1797 -.L1799: - ldr r0, [r4, #-4004] + beq .L1841 +.L1843: + ldr r0, [r4, #-3996] mvn r9, #0 bl kfree mov r3, #0 - str r3, [r4, #-4004] - b .L1797 -.L1802: + str r3, [r4, #-3996] + b .L1841 +.L1846: mov r1, #65536 mov r0, r2 bl __memzero - ldr r3, [r4, #-4004] + ldr r3, [r4, #-3996] mov r2, #1 add r1, r3, #61440 str r2, [r3, #4] str r8, [r3] str r2, [r1, #4092] - ldr r2, .L1806+8 + ldr r2, .L1850+8 strh r5, [r3, #12] @ movhi strh r2, [r3, #14] @ movhi -.L1797: +.L1841: mov r0, r9 ldmfd sp, {r4, r5, r6, r7, r8, r9, fp, sp, pc} -.L1807: +.L1851: .align 2 -.L1806: +.L1850: .word .LANCHOR3 .word 1380668996 .word -1032 @@ -12810,26 +13259,26 @@ rk_sftl_vendor_read: mov ip, sp push {r4, r5, fp, ip, lr, pc} sub fp, ip, #4 - ldr r3, .L1814 + ldr r3, .L1858 mov r4, r0 mov r0, r1 - ldr ip, [r3, #-4004] + ldr ip, [r3, #-3996] cmp ip, #0 ldrhne lr, [ip, #10] movne r3, #0 - bne .L1810 -.L1813: + bne .L1854 +.L1857: mvn r0, #0 ldmfd sp, {r4, r5, fp, sp, pc} -.L1811: +.L1855: add r3, r3, #1 -.L1810: +.L1854: cmp r3, lr - bcs .L1813 + bcs .L1857 add r1, ip, r3, lsl #3 ldrh r5, [r1, #16] cmp r5, r4 - bne .L1811 + bne .L1855 ldrh r4, [r1, #20] ldrh r1, [r1, #18] cmp r4, r2 @@ -12840,9 +13289,9 @@ rk_sftl_vendor_read: bl memcpy mov r0, r4 ldmfd sp, {r4, r5, fp, sp, pc} -.L1815: +.L1859: .align 2 -.L1814: +.L1858: .word .LANCHOR3 .size rk_sftl_vendor_read, .-rk_sftl_vendor_read .align 2 @@ -12859,23 +13308,23 @@ rk_sftl_vendor_write: sub fp, ip, #4 sub sp, sp, #24 mov ip, r1 - ldr r8, .L1835 + ldr r8, .L1879 mov r9, r2 - ldr r4, [r8, #-4004] + ldr r4, [r8, #-3996] cmp r4, #0 - beq .L1831 + beq .L1875 ldrh r2, [r4, #10] add r7, r9, #63 ldrh r3, [r4, #8] bic r7, r7, #63 mov r5, #0 str r3, [fp, #-44] -.L1818: +.L1862: cmp r5, r2 - bcc .L1826 + bcc .L1870 ldrh r1, [r4, #14] cmp r7, r1 - bhi .L1831 + bhi .L1875 add r3, r4, r2, lsl #3 uxth r7, r7 strh r0, [r3, #16] @ movhi @@ -12906,32 +13355,32 @@ rk_sftl_vendor_write: cmp r3, #1 movhi r3, #0 strh r3, [r4, #8] @ movhi - ldr r3, [r8, #-4008] - b .L1834 -.L1826: + ldr r3, [r8, #-4000] + b .L1878 +.L1870: add r6, r4, r5, lsl #3 ldrh r3, [r6, #16] cmp r3, r0 str r3, [fp, #-48] - bne .L1819 + bne .L1863 ldrh r1, [r6, #20] add r3, r4, #1024 add r1, r1, #63 bic r1, r1, #63 cmp r9, r1 str r1, [fp, #-52] - bls .L1820 + bls .L1864 ldrh r1, [r4, #14] cmp r7, r1 - bhi .L1831 + bhi .L1875 ldrh r8, [r6, #18] sub r2, r2, #1 str r2, [fp, #-56] -.L1821: +.L1865: ldr r2, [fp, #-56] add r6, r6, #8 cmp r5, r2 - bcc .L1822 + bcc .L1866 ldrh r2, [fp, #-48] add r5, r4, r5, lsl #3 uxth r8, r8 @@ -12950,7 +13399,7 @@ rk_sftl_vendor_write: strh r8, [r4, #12] @ movhi add r7, r7, r3 strh r7, [r4, #14] @ movhi -.L1823: +.L1867: ldr r3, [r4, #4] add r2, r4, #61440 add r3, r3, #1 @@ -12962,19 +13411,19 @@ rk_sftl_vendor_write: cmp r3, #1 movhi r3, #0 strh r3, [r4, #8] @ movhi - ldr r3, .L1835 - ldr r3, [r3, #-4008] -.L1834: + ldr r3, .L1879 + ldr r3, [r3, #-4000] +.L1878: ldr r0, [fp, #-44] mov r2, r4 mov r1, #128 lsl r0, r0, #7 blx r3 mov r0, #0 -.L1816: +.L1860: sub sp, fp, #40 ldmfd sp, {r4, r5, r6, r7, r8, r9, r10, fp, sp, pc} -.L1822: +.L1866: ldrh r10, [r6, #20] add r0, r3, r8 ldrh r2, [r6, #16] @@ -12993,8 +13442,8 @@ rk_sftl_vendor_write: bl memcpy ldr ip, [fp, #-64] ldr r3, [fp, #-60] - b .L1821 -.L1820: + b .L1865 +.L1864: add r5, r4, r5, lsl #3 mov r2, r9 mov r1, ip @@ -13002,16 +13451,16 @@ rk_sftl_vendor_write: add r0, r3, r0 bl memcpy strh r9, [r6, #20] @ movhi - b .L1823 -.L1819: + b .L1867 +.L1863: add r5, r5, #1 - b .L1818 -.L1831: + b .L1862 +.L1875: mvn r0, #0 - b .L1816 -.L1836: + b .L1860 +.L1880: .align 2 -.L1835: +.L1879: .word .LANCHOR3 .size rk_sftl_vendor_write, .-rk_sftl_vendor_write .align 2 @@ -13024,7 +13473,7 @@ rk_sftl_vendor_storage_ioctl: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 1, uses_anonymous_args = 0 mov ip, sp - push {r4, r5, r6, fp, ip, lr, pc} + push {r4, r5, r6, r7, fp, ip, lr, pc} sub fp, ip, #4 mov r0, #4096 mov r5, r2 @@ -13032,53 +13481,79 @@ rk_sftl_vendor_storage_ioctl: bl ftl_malloc subs r4, r0, #0 mvneq r5, #0 - beq .L1837 - ldr r3, .L1862 + beq .L1881 + ldr r3, .L1907 cmp r6, r3 - beq .L1840 + beq .L1884 add r3, r3, #1 cmp r6, r3 - beq .L1841 -.L1857: + beq .L1885 +.L1906: mvn r5, #13 - b .L1839 -.L1840: - ldr r6, .L1862+4 + b .L1883 +.L1884: + ldr r6, .L1907+4 mov r3, sp - and r3, r3, r6 - ldr r3, [r3, #72] + and r2, r3, r6 + ldr r3, [r2, #72] .syntax divided @ 552 "./arch/arm/include/asm/uaccess.h" 1 - adds r2, r5, #8; sbcccs r2, r2, r3; movcc r3, #0 + adds r1, r5, #8; sbcccs r1, r1, r3; movcc r3, #0 @ 0 "" 2 .arm .syntax unified cmp r3, #0 - bne .L1847 + bne .L1891 + .syntax divided +@ 91 "./arch/arm/include/asm/domain.h" 1 + mrc p15, 0, r7, c3, c0 @ get domain +@ 0 "" 2 + .arm + .syntax unified + bic r3, r7, #12 + orr r3, r3, #4 + .syntax divided +@ 101 "./arch/arm/include/asm/domain.h" 1 + mcr p15, 0, r3, c3, c0 @ set domain +@ 0 "" 2 +@ 104 "./arch/arm/include/asm/domain.h" 1 + isb +@ 0 "" 2 + .arm + .syntax unified mov r2, #8 mov r1, r5 bl arm_copy_from_user + .syntax divided +@ 101 "./arch/arm/include/asm/domain.h" 1 + mcr p15, 0, r7, c3, c0 @ set domain +@ 0 "" 2 +@ 104 "./arch/arm/include/asm/domain.h" 1 + isb +@ 0 "" 2 + .arm + .syntax unified cmp r0, #0 - bne .L1857 + bne .L1906 ldr r2, [r4] - ldr r3, .L1862+8 + ldr r3, .L1907+8 cmp r2, r3 - beq .L1845 -.L1846: + beq .L1889 +.L1890: mvn r5, #0 -.L1839: +.L1883: mov r0, r4 bl kfree -.L1837: +.L1881: mov r0, r5 - ldmfd sp, {r4, r5, r6, fp, sp, pc} -.L1845: + ldmfd sp, {r4, r5, r6, r7, fp, sp, pc} +.L1889: ldrh r2, [r4, #6] add r1, r4, #8 ldrh r0, [r4, #4] bl rk_sftl_vendor_read cmn r0, #1 - beq .L1846 + beq .L1890 mov r3, sp uxth r2, r0 and r6, r6, r3 @@ -13092,39 +13567,93 @@ rk_sftl_vendor_storage_ioctl: .arm .syntax unified cmp r3, #0 - bne .L1857 - mov r0, r5 + bne .L1906 + .syntax divided +@ 91 "./arch/arm/include/asm/domain.h" 1 + mrc p15, 0, r6, c3, c0 @ get domain +@ 0 "" 2 + .arm + .syntax unified + bic r3, r6, #12 + orr r3, r3, #4 + .syntax divided +@ 101 "./arch/arm/include/asm/domain.h" 1 + mcr p15, 0, r3, c3, c0 @ set domain +@ 0 "" 2 +@ 104 "./arch/arm/include/asm/domain.h" 1 + isb +@ 0 "" 2 + .arm + .syntax unified mov r1, r4 + mov r0, r5 bl arm_copy_to_user - subs r5, r0, #0 - beq .L1839 - b .L1857 -.L1841: - ldr r6, .L1862+4 + .syntax divided +@ 101 "./arch/arm/include/asm/domain.h" 1 + mcr p15, 0, r6, c3, c0 @ set domain +@ 0 "" 2 +@ 104 "./arch/arm/include/asm/domain.h" 1 + isb +@ 0 "" 2 + .arm + .syntax unified + cmp r0, #0 + bne .L1906 +.L1897: + mov r5, r0 + b .L1883 +.L1885: + ldr r6, .L1907+4 mov r3, sp - and r3, r3, r6 - ldr r3, [r3, #72] + and r2, r3, r6 + ldr r3, [r2, #72] .syntax divided @ 552 "./arch/arm/include/asm/uaccess.h" 1 - adds r2, r5, #8; sbcccs r2, r2, r3; movcc r3, #0 + adds r1, r5, #8; sbcccs r1, r1, r3; movcc r3, #0 @ 0 "" 2 .arm .syntax unified cmp r3, #0 - bne .L1847 + bne .L1891 + .syntax divided +@ 91 "./arch/arm/include/asm/domain.h" 1 + mrc p15, 0, r7, c3, c0 @ get domain +@ 0 "" 2 + .arm + .syntax unified + bic r3, r7, #12 + orr r3, r3, #4 + .syntax divided +@ 101 "./arch/arm/include/asm/domain.h" 1 + mcr p15, 0, r3, c3, c0 @ set domain +@ 0 "" 2 +@ 104 "./arch/arm/include/asm/domain.h" 1 + isb +@ 0 "" 2 + .arm + .syntax unified mov r2, #8 mov r1, r5 bl arm_copy_from_user + .syntax divided +@ 101 "./arch/arm/include/asm/domain.h" 1 + mcr p15, 0, r7, c3, c0 @ set domain +@ 0 "" 2 +@ 104 "./arch/arm/include/asm/domain.h" 1 + isb +@ 0 "" 2 + .arm + .syntax unified cmp r0, #0 - bne .L1857 + bne .L1906 ldr r2, [r4] - ldr r3, .L1862+8 + ldr r3, .L1907+8 cmp r2, r3 - bne .L1846 + bne .L1890 ldrh r2, [r4, #6] movw r3, #4087 cmp r2, r3 - bhi .L1846 + bhi .L1890 mov r3, sp add r2, r2, #8 and r6, r6, r3 @@ -13138,26 +13667,51 @@ rk_sftl_vendor_storage_ioctl: cmp r3, #0 movne r1, r2 movne r0, r4 - bne .L1861 + bne .L1905 + .syntax divided +@ 91 "./arch/arm/include/asm/domain.h" 1 + mrc p15, 0, r6, c3, c0 @ get domain +@ 0 "" 2 + .arm + .syntax unified + bic r3, r6, #12 + orr r3, r3, #4 + .syntax divided +@ 101 "./arch/arm/include/asm/domain.h" 1 + mcr p15, 0, r3, c3, c0 @ set domain +@ 0 "" 2 +@ 104 "./arch/arm/include/asm/domain.h" 1 + isb +@ 0 "" 2 + .arm + .syntax unified mov r1, r5 mov r0, r4 bl arm_copy_from_user + .syntax divided +@ 101 "./arch/arm/include/asm/domain.h" 1 + mcr p15, 0, r6, c3, c0 @ set domain +@ 0 "" 2 +@ 104 "./arch/arm/include/asm/domain.h" 1 + isb +@ 0 "" 2 + .arm + .syntax unified cmp r0, #0 - bne .L1857 + bne .L1906 ldrh r2, [r4, #6] add r1, r4, #8 ldrh r0, [r4, #4] bl rk_sftl_vendor_write - mov r5, r0 - b .L1839 -.L1847: + b .L1897 +.L1891: mov r1, #8 -.L1861: +.L1905: bl __memzero - b .L1857 -.L1863: + b .L1906 +.L1908: .align 2 -.L1862: +.L1907: .word 1074034177 .word -8192 .word 1448232273 @@ -13174,12 +13728,12 @@ rk_sftl_vendor_register: mov ip, sp push {fp, ip, lr, pc} sub fp, ip, #4 - ldr r0, .L1865 + ldr r0, .L1910 bl misc_register ldmfd sp, {fp, sp, pc} -.L1866: +.L1911: .align 2 -.L1865: +.L1910: .word .LANCHOR2+12 .size rk_sftl_vendor_register, .-rk_sftl_vendor_register .global ftl_temp_buf @@ -13225,6 +13779,8 @@ rk_sftl_vendor_register: .global g_gc_bad_block_temp_tbl .global g_gc_bad_block_gc_index .global g_gc_bad_block_temp_num + .global g_gc_next_blk_3 + .global g_gc_next_blk_2 .global g_gc_next_blk_1 .global g_gc_next_blk .global g_gc_cur_blk_max_valid_pages @@ -13280,7 +13836,6 @@ rk_sftl_vendor_register: .global p_sys_data_buf_1 .global p_sys_data_buf .global p_plane_order_table - .global g_req_cache .global req_gc_dst .global req_gc .global req_erase @@ -13333,141 +13888,141 @@ rk_sftl_vendor_register: .section .rodata .align 2 .set .LANCHOR1,. + 0 - .type __func__.3929, %object - .size __func__.3929, 17 -__func__.3929: + .type __func__.3953, %object + .size __func__.3953, 17 +__func__.3953: .ascii "INSERT_DATA_LIST\000" - .type __func__.3924, %object - .size __func__.3924, 17 -__func__.3924: + .type __func__.3948, %object + .size __func__.3948, 17 +__func__.3948: .ascii "INSERT_FREE_LIST\000" - .type __func__.3960, %object - .size __func__.3960, 17 -__func__.3960: + .type __func__.3991, %object + .size __func__.3991, 17 +__func__.3991: .ascii "List_remove_node\000" - .type __func__.3992, %object - .size __func__.3992, 22 -__func__.3992: + .type __func__.4023, %object + .size __func__.4023, 22 +__func__.4023: .ascii "List_update_data_list\000" - .type __func__.4098, %object - .size __func__.4098, 22 -__func__.4098: + .type __func__.4134, %object + .size __func__.4134, 22 +__func__.4134: .ascii "select_l2p_ram_region\000" - .type __func__.4421, %object - .size __func__.4421, 16 -__func__.4421: + .type __func__.4457, %object + .size __func__.4457, 16 +__func__.4457: .ascii "make_superblock\000" - .type __func__.4596, %object - .size __func__.4596, 19 -__func__.4596: + .type __func__.4632, %object + .size __func__.4632, 19 +__func__.4632: .ascii "get_new_active_ppa\000" - .type __func__.14933, %object - .size __func__.14933, 15 -__func__.14933: + .type __func__.14402, %object + .size __func__.14402, 15 +__func__.14402: .ascii "FlashReadPages\000" - .type __func__.14950, %object - .size __func__.14950, 15 -__func__.14950: + .type __func__.14419, %object + .size __func__.14419, 15 +__func__.14419: .ascii "FlashProgPages\000" - .type __func__.4034, %object - .size __func__.4034, 26 -__func__.4034: + .type __func__.4065, %object + .size __func__.4065, 26 +__func__.4065: .ascii "ftl_map_blk_alloc_new_blk\000" - .type __func__.3538, %object - .size __func__.3538, 11 -__func__.3538: + .type __func__.3484, %object + .size __func__.3484, 11 +__func__.3484: .ascii "FtlMemInit\000" - .type __func__.3764, %object - .size __func__.3764, 14 -__func__.3764: + .type __func__.3788, %object + .size __func__.3788, 14 +__func__.3788: .ascii "FtlBbt2Bitmap\000" - .type __func__.4001, %object - .size __func__.4001, 16 -__func__.4001: - .ascii "load_l2p_region\000" - .type __func__.4059, %object - .size __func__.4059, 31 -__func__.4059: + .type __func__.4095, %object + .size __func__.4095, 31 +__func__.4095: .ascii "Ftl_write_map_blk_to_last_page\000" - .type __func__.4073, %object - .size __func__.4073, 16 -__func__.4073: + .type __func__.4109, %object + .size __func__.4109, 16 +__func__.4109: .ascii "FtlMapWritePage\000" - .type __func__.4045, %object - .size __func__.4045, 15 -__func__.4045: + .type __func__.4032, %object + .size __func__.4032, 16 +__func__.4032: + .ascii "load_l2p_region\000" + .type __func__.4080, %object + .size __func__.4080, 15 +__func__.4080: .ascii "ftl_map_blk_gc\000" - .type __func__.4115, %object - .size __func__.4115, 9 -__func__.4115: + .type __func__.4151, %object + .size __func__.4151, 9 +__func__.4151: .ascii "log2phys\000" - .type __func__.4330, %object - .size __func__.4330, 16 -__func__.4330: + .type __func__.4366, %object + .size __func__.4366, 16 +__func__.4366: .ascii "FtlReUsePrevPpa\000" - .type __func__.4483, %object - .size __func__.4483, 14 -__func__.4483: + .type __func__.4519, %object + .size __func__.4519, 14 +__func__.4519: .ascii "ftl_check_vpc\000" - .type __func__.4210, %object - .size __func__.4210, 14 -__func__.4210: + .type __func__.4246, %object + .size __func__.4246, 14 +__func__.4246: .ascii "FtlScanSysBlk\000" - .type __func__.4442, %object - .size __func__.4442, 18 -__func__.4442: + .type __func__.4478, %object + .size __func__.4478, 18 +__func__.4478: .ascii "SupperBlkListInit\000" - .type __func__.4568, %object - .size __func__.4568, 25 -__func__.4568: + .type __func__.4604, %object + .size __func__.4604, 25 +__func__.4604: .ascii "allocate_data_superblock\000" - .type __func__.4609, %object - .size __func__.4609, 16 -__func__.4609: + .type __func__.4645, %object + .size __func__.4645, 16 +__func__.4645: .ascii "update_vpc_list\000" - .type __func__.4616, %object - .size __func__.4616, 20 -__func__.4616: + .type __func__.4652, %object + .size __func__.4652, 20 +__func__.4652: .ascii "decrement_vpc_count\000" - .type __func__.4364, %object - .size __func__.4364, 22 -__func__.4364: + .type __func__.4400, %object + .size __func__.4400, 22 +__func__.4400: .ascii "FtlRecoverySuperblock\000" - .type __func__.3807, %object - .size __func__.3807, 11 -__func__.3807: + .type __func__.3831, %object + .size __func__.3831, 11 +__func__.3831: .ascii "FtlLoadBbt\000" - .type __func__.4188, %object - .size __func__.4188, 15 -__func__.4188: + .type __func__.4224, %object + .size __func__.4224, 15 +__func__.4224: .ascii "FtlVpcTblFlush\000" - .type __func__.4467, %object - .size __func__.4467, 21 -__func__.4467: + .type __func__.4503, %object + .size __func__.4503, 21 +__func__.4503: .ascii "FtlVpcCheckAndModify\000" - .type __func__.4589, %object - .size __func__.4589, 29 -__func__.4589: + .type __func__.4625, %object + .size __func__.4625, 29 +__func__.4625: .ascii "allocate_new_data_superblock\000" - .type __func__.3662, %object - .size __func__.3662, 13 -__func__.3662: + .type __func__.3608, %object + .size __func__.3608, 13 +__func__.3608: .ascii "FtlProgPages\000" - .type __func__.4686, %object - .size __func__.4686, 19 -__func__.4686: + .type __func__.4723, %object + .size __func__.4723, 19 +__func__.4723: .ascii "FtlGcFreeTempBlock\000" - .type __func__.4792, %object - .size __func__.4792, 23 -__func__.4792: + .type __func__.4829, %object + .size __func__.4829, 23 +__func__.4829: .ascii "rk_ftl_garbage_collect\000" - .type __func__.3690, %object - .size __func__.3690, 9 -__func__.3690: + .type __func__.3636, %object + .size __func__.3636, 9 +__func__.3636: .ascii "FtlWrite\000" - .type __func__.4267, %object - .size __func__.4267, 15 -__func__.4267: + .type __func__.4303, %object + .size __func__.4303, 15 +__func__.4303: .ascii "FtlLoadSysInfo\000" .space 2 .type rk_sftl_vendor_storage_fops, %object @@ -13497,7 +14052,7 @@ power_up_flag: .size rkflash_vender_storage_dev, 40 rkflash_vender_storage_dev: .word 255 - .word .LC110 + .word .LC116 .word rk_sftl_vendor_storage_fops .space 28 .bss @@ -13883,6 +14438,14 @@ g_gc_next_blk: .type g_gc_next_blk_1, %object .size g_gc_next_blk_1, 2 g_gc_next_blk_1: + .space 2 + .type g_gc_next_blk_2, %object + .size g_gc_next_blk_2, 2 +g_gc_next_blk_2: + .space 2 + .type g_gc_next_blk_3, %object + .size g_gc_next_blk_3, 2 +g_gc_next_blk_3: .space 2 .type g_gc_bad_block_temp_num, %object .size g_gc_bad_block_temp_num, 2 @@ -14023,22 +14586,18 @@ c_ftl_nand_bbm_buf_size: .space 2 .space 2 .type gL2pMapInfo, %object - .size gL2pMapInfo, 40 + .size gL2pMapInfo, 44 gL2pMapInfo: - .space 40 + .space 44 .type g_totle_map_block, %object .size g_totle_map_block, 2 g_totle_map_block: .space 2 .space 2 .type gVendorBlkInfo, %object - .size gVendorBlkInfo, 40 + .size gVendorBlkInfo, 44 gVendorBlkInfo: - .space 40 - .type g_req_cache, %object - .size g_req_cache, 4 -g_req_cache: - .space 4 + .space 44 .type g_tmp_data_superblock_id, %object .size g_tmp_data_superblock_id, 2 g_tmp_data_superblock_id: @@ -14074,10 +14633,6 @@ g_recovery_ppa_tbl: g_ect_tbl_power_up_flush: .space 2 .space 2 - .type gp_last_act_superblock, %object - .size gp_last_act_superblock, 4 -gp_last_act_superblock: - .space 4 .type gc_discard_updated, %object .size gc_discard_updated, 4 gc_discard_updated: @@ -14098,6 +14653,10 @@ g_gc_cur_blk_max_valid_pages: .type g_ftl_nand_free_count, %object .size g_ftl_nand_free_count, 4 g_ftl_nand_free_count: + .space 4 + .type idb_need_write_back, %object + .size idb_need_write_back, 4 +idb_need_write_back: .space 4 .type g_MaxLbn, %object .size g_MaxLbn, 4 @@ -14127,6 +14686,18 @@ check_buf: .size check_vpc_table, 16384 check_vpc_table: .space 16384 + .type gp_flash_check_buf, %object + .size gp_flash_check_buf, 262144 +gp_flash_check_buf: + .space 262144 + .type idb_buf, %object + .size idb_buf, 262144 +idb_buf: + .space 262144 + .type gp_last_act_superblock, %object + .size gp_last_act_superblock, 4 +gp_last_act_superblock: + .space 4 .section .rodata.str1.1,"aMS",%progbits,1 .LC0: .ascii "phyBlk = 0x%x die = %d block_in_die = 0x%x 0x%8x\012" @@ -14270,7 +14841,7 @@ check_vpc_table: .LC69: .ascii "free %d. [0x%x] 0x%x 0x%x\012\000" .LC70: - .ascii "SFTL version: 5.0.44 20180713\000" + .ascii "SFTL version: 5.0.45 20180810\000" .LC71: .ascii "%s\012\000" .LC72: @@ -14306,51 +14877,63 @@ check_vpc_table: .LC86: .ascii "%s error allocating memory. return -1\012\000" .LC87: - .ascii "region_id = %x phyAddr = %x\012\000" -.LC88: - .ascii "spare:\000" -.LC89: - .ascii "map_ppn:\000" -.LC90: .ascii "FtlMapWritePage error = %x \012\000" -.LC91: +.LC88: .ascii "FtlMapWritePage error = %x error count = %d\012\000" +.LC89: + .ascii "load_l2p_region refresh = %x phyAddr = %x\012\000" +.LC90: + .ascii "region_id = %x phyAddr = %x\012\000" +.LC91: + .ascii "spare:\000" .LC92: - .ascii "ftl_scan_all_data = %x\012\000" + .ascii "map_ppn:\000" .LC93: - .ascii "scan lpa = %x ppa= %x\012\000" + .ascii "ftl_map_blk_gc blk info: %x %x %x\012\000" .LC94: + .ascii "ftl_scan_all_data = %x\012\000" +.LC95: + .ascii "scan lpa = %x ppa= %x\012\000" +.LC96: .ascii "lba = %x,addr= %x,spare= %x %x %x %x data=%x %x\012" .ascii "\000" -.LC95: - .ascii "...%s enter...\012\000" -.LC96: - .ascii "FtlCheckVpc2 %x = %x %x\012\000" .LC97: - .ascii "free blk vpc error %x = %x %x\012\000" + .ascii "...%s enter...\012\000" .LC98: - .ascii "FtlBbmTblFlush id=%x,page=%x,previd=%x cnt=%d\012\000" + .ascii "FtlCheckVpc2 %x = %x %x\012\000" .LC99: - .ascii "FtlBbmTblFlush error:%x\012\000" + .ascii "free blk vpc error %x = %x %x\012\000" .LC100: - .ascii "FtlBbmTblFlush error = %x error count = %d\012\000" + .ascii "FtlBbmTblFlush id=%x,page=%x,previd=%x cnt=%d\012\000" .LC101: - .ascii "FtlGcFreeBadSuperBlk 0x%x\012\000" + .ascii "FtlBbmTblFlush error:%x\012\000" .LC102: - .ascii "decrement_vpc_count %x = %d\012\000" + .ascii "FtlBbmTblFlush error = %x error count = %d\012\000" .LC103: - .ascii "spuer block %x vpn is 0\012 \000" + .ascii "FtlGcFreeBadSuperBlk 0x%x\012\000" .LC104: - .ascii "no ect\000" + .ascii "decrement_vpc_count %x = %d\012\000" .LC105: - .ascii "FtlVpcTblFlush error = %x error count = %d\012\000" + .ascii "decrement_vpc_count %x = %d in free list\012\000" .LC106: - .ascii "FtlCheckVpc %x = %x %x\012\000" + .ascii "spuer block %x vpn is 0\012 \000" .LC107: - .ascii "Ftlwrite decrement_vpc_count %x = %d\012\000" + .ascii "FtlVendorPartRead refresh = %x phyAddr = %x\012\000" .LC108: - .ascii "SWL %x, FSB = %x vpc= %x,ec=%x th=%x\012\000" + .ascii "no ect\000" .LC109: - .ascii "FtlWrite: lpa error:%x %x\012\000" + .ascii "FtlVpcTblFlush error = %x error count = %d\012\000" .LC110: + .ascii "FtlCheckVpc %x = %x %x\012\000" +.LC111: + .ascii "Ftlwrite decrement_vpc_count %x = %d\012\000" +.LC112: + .ascii "SWL %x, FSB = %x vpc= %x,ec=%x th=%x\012\000" +.LC113: + .ascii "g_gc_superblock_free %x %x %x %x %x\012\000" +.LC114: + .ascii "FtlWrite: lpa error:%x %x\012\000" +.LC115: + .ascii "write_idblock fail! %x %x %x %x\012\000" +.LC116: .ascii "vendor_storage\000" diff --git a/drivers/rkflash/rk_sftl_arm_v7_thumb.S b/drivers/rkflash/rk_sftl_arm_v7_thumb.S index cfc34a4080f7..f11da2ac7145 100644 --- a/drivers/rkflash/rk_sftl_arm_v7_thumb.S +++ b/drivers/rkflash/rk_sftl_arm_v7_thumb.S @@ -2,7 +2,7 @@ /* * Copyright (c) 2018 Rockchip Electronics Co. Ltd. - * date: 2018-08-07 + * date: 2018-08-14 */ .arch armv7-a .eabi_attribute 20, 1 @@ -15,41 +15,7 @@ .eabi_attribute 34, 1 .eabi_attribute 18, 4 .file "rk_sftl.c" - .syntax unified - .macro it, cond - .endm - .macro itt, cond - .endm - .macro ite, cond - .endm - .macro ittt, cond - .endm - .macro itte, cond - .endm - .macro itet, cond - .endm - .macro itee, cond - .endm - .macro itttt, cond - .endm - .macro ittte, cond - .endm - .macro ittet, cond - .endm - .macro ittee, cond - .endm - .macro itett, cond - .endm - .macro itete, cond - .endm - .macro iteet, cond - .endm - .macro iteee, cond - .endm - .global __aeabi_uidiv - .thumb - .syntax unified .text .align 1 .syntax unified @@ -373,6 +339,22 @@ IsBlkInVendorPart: .fnend .size IsBlkInVendorPart, .-IsBlkInVendorPart .align 1 + .global FtlCacheWriteBack + .syntax unified + .thumb + .thumb_func + .fpu softvfp + .type FtlCacheWriteBack, %function +FtlCacheWriteBack: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + @ link register save eliminated. + movs r0, #0 + bx lr + .fnend + .size FtlCacheWriteBack, .-FtlCacheWriteBack + .align 1 .global sftl_get_density .syntax unified .thumb @@ -384,12 +366,12 @@ sftl_get_density: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L37 + ldr r3, .L38 ldr r0, [r3, #140] bx lr -.L38: +.L39: .align 2 -.L37: +.L38: .word .LANCHOR0 .fnend .size sftl_get_density, .-sftl_get_density @@ -409,7 +391,7 @@ FtlBbmMapBadBlock: .save {r4, r5, r6, r7, lr} .pad #12 mov r5, r0 - ldr r4, .L40 + ldr r4, .L41 ldrh r7, [r4, #98] mov r1, r7 bl __aeabi_uidiv @@ -430,7 +412,7 @@ FtlBbmMapBadBlock: mov r2, r6 str r0, [sp] mov r1, r5 - ldr r0, .L40+4 + ldr r0, .L41+4 bl sftl_printk ldrh r3, [r4, #158] movs r0, #0 @@ -439,9 +421,9 @@ FtlBbmMapBadBlock: add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, pc} -.L41: +.L42: .align 2 -.L40: +.L41: .word .LANCHOR0 .word .LC0 .fnend @@ -460,7 +442,7 @@ FtlBbmIsBadBlock: push {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} mov r7, r0 - ldr r5, .L43 + ldr r5, .L44 ldrh r6, [r5, #98] mov r1, r6 bl __aeabi_uidivmod @@ -477,9 +459,9 @@ FtlBbmIsBadBlock: lsrs r0, r0, r4 and r0, r0, #1 pop {r3, r4, r5, r6, r7, pc} -.L44: +.L45: .align 2 -.L43: +.L44: .word .LANCHOR0 .fnend .size FtlBbmIsBadBlock, .-FtlBbmIsBadBlock @@ -510,7 +492,7 @@ FtlBbtMemInit: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r0, .L47 + ldr r0, .L48 movw r3, #65535 movs r2, #16 movs r1, #255 @@ -519,9 +501,9 @@ FtlBbtMemInit: strh r3, [r0, #158] @ movhi adds r0, r0, #164 b memset -.L48: +.L49: .align 2 -.L47: +.L48: .word .LANCHOR0 .fnend .size FtlBbtMemInit, .-FtlBbtMemInit @@ -536,7 +518,7 @@ FtlBbtCalcTotleCnt: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L56 + ldr r3, .L57 push {r4, r5, r6, lr} .save {r4, r5, r6, lr} movs r5, #0 @@ -544,23 +526,23 @@ FtlBbtCalcTotleCnt: ldrh r2, [r3, #98] ldrh r6, [r3, #54] muls r6, r2, r6 -.L50: +.L51: uxth r0, r5 cmp r0, r6 - blt .L52 + blt .L53 mov r0, r4 pop {r4, r5, r6, pc} -.L52: +.L53: bl FtlBbmIsBadBlock - cbz r0, .L51 + cbz r0, .L52 adds r4, r4, #1 uxth r4, r4 -.L51: +.L52: adds r5, r5, #1 - b .L50 -.L57: + b .L51 +.L58: .align 2 -.L56: +.L57: .word .LANCHOR0 .fnend .size FtlBbtCalcTotleCnt, .-FtlBbtCalcTotleCnt @@ -578,7 +560,7 @@ V2P_block: push {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} mov r5, r1 - ldr r4, .L59 + ldr r4, .L60 mov r7, r0 ldrh r6, [r4, #56] mov r1, r6 @@ -593,9 +575,9 @@ V2P_block: add r0, r0, r4 uxth r0, r0 pop {r3, r4, r5, r6, r7, pc} -.L60: +.L61: .align 2 -.L59: +.L60: .word .LANCHOR0 .fnend .size V2P_block, .-V2P_block @@ -610,7 +592,7 @@ P2V_plane: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L62 + ldr r3, .L63 push {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r6, r0 @@ -624,9 +606,9 @@ P2V_plane: add r1, r1, r4 uxth r0, r1 pop {r4, r5, r6, pc} -.L63: +.L64: .align 2 -.L62: +.L63: .word .LANCHOR0 .fnend .size P2V_plane, .-P2V_plane @@ -643,7 +625,7 @@ P2V_block_in_plane: @ frame_needed = 0, uses_anonymous_args = 0 push {r4, lr} .save {r4, lr} - ldr r4, .L65 + ldr r4, .L66 ldrh r1, [r4, #98] bl __aeabi_uidivmod uxth r0, r1 @@ -651,9 +633,9 @@ P2V_block_in_plane: bl __aeabi_uidiv uxth r0, r0 pop {r4, pc} -.L66: +.L67: .align 2 -.L65: +.L66: .word .LANCHOR0 .fnend .size P2V_block_in_plane, .-P2V_block_in_plane @@ -670,14 +652,14 @@ ftl_cmp_data_ver: @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. cmp r0, r1 - bls .L68 + bls .L69 subs r0, r0, r1 cmp r0, #-2147483648 ite hi movhi r0, #0 movls r0, #1 bx lr -.L68: +.L69: subs r0, r1, r0 cmp r0, #-2147483648 ite ls @@ -697,7 +679,7 @@ FtlFreeSysBlkQueueInit: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L71 + ldr r3, .L72 mov r1, #2048 push {r4, lr} .save {r4, lr} @@ -710,9 +692,9 @@ FtlFreeSysBlkQueueInit: bl __memzero mov r0, r4 pop {r4, pc} -.L72: +.L73: .align 2 -.L71: +.L72: .word .LANCHOR0 .fnend .size FtlFreeSysBlkQueueInit, .-FtlFreeSysBlkQueueInit @@ -728,14 +710,14 @@ FtlFreeSysBlkQueueEmpty: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L74 + ldr r3, .L75 ldrh r0, [r3, #218] clz r0, r0 lsrs r0, r0, #5 bx lr -.L75: +.L76: .align 2 -.L74: +.L75: .word .LANCHOR0 .fnend .size FtlFreeSysBlkQueueEmpty, .-FtlFreeSysBlkQueueEmpty @@ -751,15 +733,15 @@ FtlFreeSysBlkQueueFull: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L77 + ldr r3, .L78 ldrh r0, [r3, #218] sub r3, r0, #1024 rsbs r0, r3, #0 adcs r0, r0, r3 bx lr -.L78: +.L79: .align 2 -.L77: +.L78: .word .LANCHOR0 .fnend .size FtlFreeSysBlkQueueFull, .-FtlFreeSysBlkQueueFull @@ -774,28 +756,28 @@ FtlFreeSysBLkSort: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L88 + ldr r3, .L89 push {r4, r5, r6, lr} .save {r4, r5, r6, lr} ldrh r2, [r3, #218] - cbz r2, .L79 + cbz r2, .L80 ldrh r5, [r3, #2296] movs r0, #0 ldrh r1, [r3, #214] mov r6, r0 ldrh r2, [r3, #216] and r5, r5, #31 -.L81: +.L82: uxth r4, r0 adds r0, r0, #1 cmp r5, r4 - bgt .L82 - cbz r6, .L79 + bgt .L83 + cbz r6, .L80 strh r1, [r3, #214] @ movhi strh r2, [r3, #216] @ movhi -.L79: +.L80: pop {r4, r5, r6, pc} -.L82: +.L83: add r4, r3, r1, lsl #1 adds r1, r1, #1 ubfx r1, r1, #0, #10 @@ -805,10 +787,10 @@ FtlFreeSysBLkSort: movs r6, #1 add r2, r2, r6 ubfx r2, r2, #0, #10 - b .L81 -.L89: + b .L82 +.L90: .align 2 -.L88: +.L89: .word .LANCHOR0 .fnend .size FtlFreeSysBLkSort, .-FtlFreeSysBLkSort @@ -823,39 +805,83 @@ IsInFreeQueue: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L96 + ldr r3, .L97 push {r4, r5, lr} .save {r4, r5, lr} ldrh r4, [r3, #218] cmp r4, #1024 - beq .L94 + beq .L95 ldrh r5, [r3, #214] movs r1, #0 -.L92: +.L93: cmp r1, r4 - bcc .L93 -.L94: + bcc .L94 +.L95: movs r0, #0 pop {r4, r5, pc} -.L93: +.L94: adds r2, r1, r5 ubfx r2, r2, #0, #10 add r2, r3, r2, lsl #1 ldrh r2, [r2, #220] cmp r2, r0 - beq .L95 + beq .L96 adds r1, r1, #1 - b .L92 -.L95: + b .L93 +.L96: movs r0, #1 pop {r4, r5, pc} -.L97: +.L98: .align 2 -.L96: +.L97: .word .LANCHOR0 .fnend .size IsInFreeQueue, .-IsInFreeQueue .align 1 + .global test_node_in_list + .syntax unified + .thumb + .thumb_func + .fpu softvfp + .type test_node_in_list, %function +test_node_in_list: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + ldr r3, .L104 + push {r4, r5, lr} + .save {r4, r5, lr} + movw r5, #65535 + ldr r2, [r0] + ldr r4, [r3, #2316] + subs r3, r2, r4 + asrs r0, r3, #1 + ldr r3, .L104+4 + muls r3, r0, r3 + movs r0, #6 + uxth r3, r3 +.L101: + cmp r3, r1 + beq .L102 + ldrh r3, [r2] + cmp r3, r5 + beq .L103 + mla r2, r0, r3, r4 + b .L101 +.L102: + movs r0, #1 + pop {r4, r5, pc} +.L103: + movs r0, #0 + pop {r4, r5, pc} +.L105: + .align 2 +.L104: + .word .LANCHOR0 + .word -1431655765 + .fnend + .size test_node_in_list, .-test_node_in_list + .align 1 .global insert_data_list .syntax unified .thumb @@ -869,11 +895,11 @@ insert_data_list: push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 - ldr r2, .L113 + ldr r2, .L121 ldrh r3, [r2, #40] mov r5, r2 cmp r3, r0 - bls .L100 + bls .L108 movs r4, #6 ldr ip, [r2, #2316] muls r4, r0, r4 @@ -882,27 +908,27 @@ insert_data_list: strh r3, [r1, #2] @ movhi strh r3, [ip, r4] @ movhi ldr r3, [r2, #2320] - cbnz r3, .L101 + cbnz r3, .L109 str r1, [r2, #2320] -.L100: +.L108: movs r0, #0 add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L101: +.L109: ldrh r6, [r1, #4] lsl r10, r0, #1 ldr r8, [r2, #2324] ldrh r2, [r8, r0, lsl #1] cmp r6, #0 - beq .L111 + beq .L119 muls r6, r2, r6 -.L102: +.L110: ldr lr, [r5, #2316] ldrh r7, [r5, #40] sub r2, r3, lr asr r9, r2, #1 - ldr r2, .L113+4 + ldr r2, .L121+4 str r7, [sp] mul r2, r2, r9 ldr r9, [r5, #2328] @@ -910,30 +936,30 @@ insert_data_list: uxth r2, r2 str r5, [sp, #4] movs r5, #0 -.L109: +.L117: adds r5, r5, #1 ldr r7, [sp] uxth r5, r5 cmp r5, r7 - bhi .L100 + bhi .L108 cmp r0, r2 - beq .L100 + beq .L108 ldrh r7, [r3, #4] lsl r10, r2, #1 ldrh fp, [r8, r2, lsl #1] - cbz r7, .L112 + cbz r7, .L120 mul r7, r7, fp -.L104: +.L112: cmp r6, r7 - bne .L105 + bne .L113 ldr r7, [sp, #4] ldrh r10, [r9, r10] ldrh r7, [r7] cmp r10, r7 - bcc .L107 -.L106: + bcc .L115 +.L114: strh r2, [ip, r4] @ movhi - ldr r4, .L113 + ldr r4, .L121 ldrh r2, [r3, #2] strh r2, [r1, #2] @ movhi ldr r2, [r4, #2320] @@ -948,33 +974,33 @@ insert_data_list: mulne r2, r2, r5 strhne r0, [r1, r2] @ movhi strhne r0, [r3, #2] @ movhi - b .L100 -.L111: + b .L108 +.L119: mov r6, #-1 - b .L102 -.L112: + b .L110 +.L120: mov r7, #-1 - b .L104 -.L105: - bcc .L106 -.L107: + b .L112 +.L113: + bcc .L114 +.L115: ldrh r7, [r3] movw r10, #65535 cmp r7, r10 - bne .L108 + bne .L116 strh r2, [r1, #2] @ movhi strh r0, [r3] @ movhi - ldr r3, .L113 + ldr r3, .L121 str r1, [r3, #2332] - b .L100 -.L108: + b .L108 +.L116: movs r3, #6 mov r2, r7 mla r3, r3, r7, lr - b .L109 -.L114: + b .L117 +.L122: .align 2 -.L113: +.L121: .word .LANCHOR0 .word -1431655765 .fnend @@ -993,24 +1019,24 @@ INSERT_DATA_LIST: push {r3, lr} .save {r3, lr} bl insert_data_list - ldr r2, .L117 + ldr r2, .L125 ldrh r3, [r2, #2336] adds r3, r3, #1 uxth r3, r3 strh r3, [r2, #2336] @ movhi ldrh r2, [r2, #40] cmp r2, r3 - bcs .L115 + bcs .L123 movs r2, #221 - ldr r1, .L117+4 - ldr r0, .L117+8 + ldr r1, .L125+4 + ldr r0, .L125+8 pop {r3, lr} b sftl_printk -.L115: +.L123: pop {r3, pc} -.L118: +.L126: .align 2 -.L117: +.L125: .word .LANCHOR0 .word .LANCHOR1 .word .LC1 @@ -1031,8 +1057,8 @@ insert_free_list: .save {r4, r5, r6, r7, r8, r9, r10, lr} movw r4, #65535 cmp r0, r4 - beq .L120 - ldr r2, .L126 + beq .L128 + ldr r2, .L134 movs r1, #6 mul r7, r1, r0 ldr ip, [r2, #2316] @@ -1041,36 +1067,36 @@ insert_free_list: strh r4, [r6, #2] @ movhi strh r4, [ip, r7] @ movhi ldr r3, [r2, #2340] - cbnz r3, .L121 + cbnz r3, .L129 str r6, [r2, #2340] -.L120: +.L128: movs r0, #0 pop {r4, r5, r6, r7, r8, r9, r10, pc} -.L121: +.L129: ldr lr, [r2, #2316] ldr r8, [r2, #2328] sub r2, r3, lr asr r10, r2, #1 - ldr r2, .L126+4 + ldr r2, .L134+4 ldrh r9, [r8, r0, lsl #1] mul r2, r2, r10 mov r10, r4 uxth r2, r2 -.L124: +.L132: ldrh r4, [r8, r2, lsl #1] cmp r4, r9 - bcs .L122 + bcs .L130 ldrh r4, [r3] cmp r4, r10 - bne .L123 + bne .L131 strh r2, [r6, #2] @ movhi strh r0, [r3] @ movhi - b .L120 -.L123: + b .L128 +.L131: mla r3, r1, r4, lr mov r2, r4 - b .L124 -.L122: + b .L132 +.L130: ldrh r1, [r3, #2] strh r1, [r6, #2] @ movhi strh r2, [ip, r7] @ movhi @@ -1086,10 +1112,10 @@ insert_free_list: mulne r2, r2, r4 strhne r0, [r1, r2] @ movhi strhne r0, [r3, #2] @ movhi - b .L120 -.L127: + b .L128 +.L135: .align 2 -.L126: +.L134: .word .LANCHOR0 .word -1431655765 .fnend @@ -1108,24 +1134,24 @@ INSERT_FREE_LIST: push {r3, lr} .save {r3, lr} bl insert_free_list - ldr r2, .L130 + ldr r2, .L138 ldrh r3, [r2, #2344] adds r3, r3, #1 uxth r3, r3 strh r3, [r2, #2344] @ movhi ldrh r2, [r2, #40] cmp r2, r3 - bcs .L128 + bcs .L136 movs r2, #214 - ldr r1, .L130+4 - ldr r0, .L130+8 + ldr r1, .L138+4 + ldr r0, .L138+8 pop {r3, lr} b sftl_printk -.L128: +.L136: pop {r3, pc} -.L131: +.L139: .align 2 -.L130: +.L138: .word .LANCHOR0 .word .LANCHOR1+17 .word .LC1 @@ -1145,7 +1171,7 @@ List_remove_node: push {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} movs r6, #6 - ldr r4, .L138 + ldr r4, .L146 muls r6, r1, r6 movw r3, #65535 mov r8, r0 @@ -1153,20 +1179,20 @@ List_remove_node: adds r5, r7, r6 ldrh r2, [r5, #2] cmp r2, r3 - bne .L133 + bne .L141 ldr r3, [r0] cmp r5, r3 - beq .L133 - movw r2, #379 - ldr r1, .L138+4 - ldr r0, .L138+8 + beq .L141 + movw r2, #397 + ldr r1, .L146+4 + ldr r0, .L146+8 bl sftl_printk -.L133: +.L141: ldr r3, [r8] movw r1, #65535 cmp r5, r3 ldrh r3, [r7, r6] - bne .L134 + bne .L142 cmp r3, r1 ittee ne ldrne r0, [r4, #2316] @@ -1177,24 +1203,24 @@ List_remove_node: mlane r3, r2, r3, r0 strne r3, [r8] strhne r1, [r3, #2] @ movhi -.L136: +.L144: movw r3, #65535 movs r0, #0 strh r3, [r7, r6] @ movhi strh r3, [r5, #2] @ movhi pop {r4, r5, r6, r7, r8, pc} -.L134: +.L142: cmp r3, r1 ldrh r1, [r5, #2] - bne .L137 + bne .L145 cmp r1, r3 - beq .L136 + beq .L144 movs r2, #6 ldr r0, [r4, #2316] muls r1, r2, r1 strh r3, [r0, r1] @ movhi - b .L136 -.L137: + b .L144 +.L145: ldr r0, [r4, #2316] movs r2, #6 mla r3, r2, r3, r0 @@ -1204,10 +1230,10 @@ List_remove_node: ldr r3, [r4, #2316] muls r2, r0, r2 strh r1, [r3, r2] @ movhi - b .L136 -.L139: + b .L144 +.L147: .align 2 -.L138: +.L146: .word .LANCHOR0 .word .LANCHOR1+34 .word .LC1 @@ -1227,15 +1253,15 @@ List_pop_index_node: push {r4, r5, r6, lr} .save {r4, r5, r6, lr} ldr r3, [r0] - cbz r3, .L146 - ldr r2, .L147 + cbz r3, .L154 + ldr r2, .L155 movw r5, #65535 movs r6, #6 ldr r2, [r2, #2316] -.L142: - cbnz r1, .L143 -.L145: - ldr r4, .L147+4 +.L150: + cbnz r1, .L151 +.L153: + ldr r4, .L155+4 subs r3, r3, r2 asrs r3, r3, #1 muls r4, r3, r4 @@ -1243,20 +1269,20 @@ List_pop_index_node: bl List_remove_node uxth r0, r4 pop {r4, r5, r6, pc} -.L143: +.L151: ldrh r4, [r3] cmp r4, r5 - beq .L145 + beq .L153 subs r1, r1, #1 mla r3, r6, r4, r2 uxth r1, r1 - b .L142 -.L146: + b .L150 +.L154: movw r0, #65535 pop {r4, r5, r6, pc} -.L148: +.L156: .align 2 -.L147: +.L155: .word .LANCHOR0 .word -1431655765 .fnend @@ -1288,37 +1314,37 @@ List_get_gc_head_node: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L156 + ldr r2, .L164 push {r4, lr} .save {r4, lr} ldr r3, [r2, #2320] - cbz r3, .L155 + cbz r3, .L163 ldr r1, [r2, #2316] movs r4, #6 movw r2, #65535 -.L152: - cbz r0, .L153 +.L160: + cbz r0, .L161 ldrh r3, [r3] cmp r3, r2 - bne .L154 -.L155: + bne .L162 +.L163: movw r0, #65535 pop {r4, pc} -.L154: +.L162: subs r0, r0, #1 mla r3, r4, r3, r1 uxth r0, r0 - b .L152 -.L153: - ldr r0, .L156+4 + b .L160 +.L161: + ldr r0, .L164+4 subs r3, r3, r1 asrs r3, r3, #1 muls r3, r0, r3 uxth r0, r3 pop {r4, pc} -.L157: +.L165: .align 2 -.L156: +.L164: .word .LANCHOR0 .word -1431655765 .fnend @@ -1337,53 +1363,53 @@ 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, .L169 + ldr r4, .L177 ldrh r3, [r4, #2348] cmp r3, r0 - beq .L160 + beq .L168 ldrh r3, [r4, #2396] cmp r3, r0 - beq .L160 + beq .L168 ldrh r3, [r4, #2444] cmp r3, r0 - beq .L160 + beq .L168 movs r7, #6 ldr r9, [r4, #2316] muls r7, r0, r7 ldr r3, [r4, #2320] add r8, r9, r7 cmp r8, r3 - beq .L160 + beq .L168 ldrh r6, [r8, #4] ldr r3, [r4, #2324] ldrh r3, [r3, r0, lsl #1] cmp r6, #0 - beq .L167 + beq .L175 muls r6, r3, r6 -.L162: +.L170: ldrh r3, [r8, #2] movw r2, #65535 cmp r3, r2 - bne .L163 + bne .L171 ldrh r2, [r9, r7] cmp r2, r3 - bne .L163 - mov r2, #470 - ldr r1, .L169+4 - ldr r0, .L169+8 + bne .L171 + mov r2, #488 + ldr r1, .L177+4 + ldr r0, .L177+8 bl sftl_printk -.L163: +.L171: ldrh r3, [r8, #2] movw r2, #65535 cmp r3, r2 - bne .L164 + bne .L172 ldrh r2, [r9, r7] cmp r2, r3 - beq .L160 -.L164: + beq .L168 +.L172: movs r2, #6 muls r2, r3, r2 - ldr r3, .L169+12 + ldr r3, .L177+12 asrs r1, r2, #1 muls r3, r1, r3 ldr r1, [r4, #2324] @@ -1391,38 +1417,38 @@ List_update_data_list: ldr r1, [r4, #2316] add r2, r2, r1 ldrh r3, [r2, #4] - cbz r3, .L168 + cbz r3, .L176 muls r3, r0, r3 -.L165: +.L173: cmp r6, r3 - bcs .L160 + bcs .L168 mov r1, r5 - ldr r0, .L169+16 + ldr r0, .L177+16 bl List_remove_node ldrh r3, [r4, #2336] - cbnz r3, .L166 - movw r2, #481 - ldr r1, .L169+4 - ldr r0, .L169+8 + cbnz r3, .L174 + movw r2, #499 + ldr r1, .L177+4 + ldr r0, .L177+8 bl sftl_printk -.L166: +.L174: ldrh r3, [r4, #2336] mov r0, r5 subs r3, r3, #1 strh r3, [r4, #2336] @ movhi bl INSERT_DATA_LIST -.L160: +.L168: movs r0, #0 pop {r3, r4, r5, r6, r7, r8, r9, pc} -.L167: +.L175: mov r6, #-1 - b .L162 -.L168: + b .L170 +.L176: mov r3, #-1 - b .L165 -.L170: + b .L173 +.L178: .align 2 -.L169: +.L177: .word .LANCHOR0 .word .LANCHOR1+51 .word .LC1 @@ -1444,77 +1470,77 @@ select_l2p_ram_region: push {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} movs r1, #0 - ldr r5, .L181 + ldr r5, .L189 movs r0, #12 movw r6, #65535 ldrh r2, [r5, #138] ldr r3, [r5, #2492] -.L172: +.L180: uxth r4, r1 cmp r4, r2 - bcc .L174 + bcc .L182 mov r4, r2 movs r1, #0 mov r7, #-2147483648 mov ip, #12 -.L175: +.L183: uxth r6, r1 cmp r6, r2 - bcc .L177 + bcc .L185 cmp r4, r2 - bcc .L173 + bcc .L181 ldrh r7, [r5, #2496] mov r4, r2 movs r1, #0 mov r0, #-1 -.L178: +.L186: uxth r5, r1 cmp r5, r2 - bcc .L180 + bcc .L188 cmp r4, r2 - bcc .L173 - mov r2, #784 - ldr r1, .L181+4 - ldr r0, .L181+8 + bcc .L181 + movw r2, #823 + ldr r1, .L189+4 + ldr r0, .L189+8 bl sftl_printk - b .L173 -.L174: + b .L181 +.L182: adds r1, r1, #1 mla r7, r0, r1, r3 ldrh r7, [r7, #-12] cmp r7, r6 - bne .L172 -.L173: + bne .L180 +.L181: mov r0, r4 pop {r3, r4, r5, r6, r7, pc} -.L177: +.L185: mla r0, ip, r1, r3 ldr r0, [r0, #4] cmp r0, #0 - blt .L176 + blt .L184 cmp r7, r0 itt hi movhi r7, r0 movhi r4, r6 -.L176: +.L184: adds r1, r1, #1 - b .L175 -.L180: + b .L183 +.L188: ldr r6, [r3, #4] cmp r0, r6 - bls .L179 + bls .L187 ldrh ip, [r3] cmp ip, r7 itt ne movne r0, r6 movne r4, r5 -.L179: +.L187: adds r1, r1, #1 adds r3, r3, #12 - b .L178 -.L182: + b .L186 +.L190: .align 2 -.L181: +.L189: .word .LANCHOR0 .word .LANCHOR1+73 .word .LC1 @@ -1531,18 +1557,18 @@ FtlUpdateVaildLpn: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r1, .L189 + ldr r1, .L197 push {r4, r5, lr} .save {r4, r5, lr} mov r3, r1 ldrh r2, [r1, #2498] cmp r2, #4 - bhi .L184 - cbnz r0, .L184 + bhi .L192 + cbnz r0, .L192 adds r2, r2, #1 strh r2, [r1, #2498] @ movhi pop {r4, r5, pc} -.L184: +.L192: movs r2, #0 ldrh r1, [r3, #40] strh r2, [r3, #2498] @ movhi @@ -1550,21 +1576,21 @@ FtlUpdateVaildLpn: str r2, [r3, #2500] ldr r2, [r3, #2324] add r1, r2, r1, lsl #1 -.L185: +.L193: cmp r2, r1 - bne .L187 + bne .L195 pop {r4, r5, pc} -.L187: +.L195: ldrh r4, [r2], #2 cmp r4, r5 ittt ne ldrne r0, [r3, #2500] addne r0, r0, r4 strne r0, [r3, #2500] - b .L185 -.L190: + b .L193 +.L198: .align 2 -.L189: +.L197: .word .LANCHOR0 .fnend .size FtlUpdateVaildLpn, .-FtlUpdateVaildLpn @@ -1581,10 +1607,10 @@ ftl_set_blk_mode: @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. mov r3, r0 - cbz r1, .L192 + cbz r1, .L200 b ftl_set_blk_mode.part.6 -.L192: - ldr r2, .L193 +.L200: + ldr r2, .L201 lsrs r0, r0, #5 and r3, r3, #31 ldr r1, [r2, #24] @@ -1594,9 +1620,9 @@ ftl_set_blk_mode: bic r2, r2, r3 str r2, [r1, r0, lsl #2] bx lr -.L194: +.L202: .align 2 -.L193: +.L201: .word .LANCHOR0 .fnend .size ftl_set_blk_mode, .-ftl_set_blk_mode @@ -1612,7 +1638,7 @@ ftl_get_blk_mode: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r3, .L196 + ldr r3, .L204 lsrs r2, r0, #5 and r0, r0, #31 ldr r3, [r3, #24] @@ -1620,9 +1646,9 @@ ftl_get_blk_mode: lsr r0, r3, r0 and r0, r0, #1 bx lr -.L197: +.L205: .align 2 -.L196: +.L204: .word .LANCHOR0 .fnend .size ftl_get_blk_mode, .-ftl_get_blk_mode @@ -1643,12 +1669,12 @@ ftl_sb_update_avl_pages: strh r3, [r0, #4] @ movhi add r4, r0, r2, lsl #1 movw r7, #65535 - ldr r3, .L205 + ldr r3, .L213 adds r4, r4, #14 ldrh r5, [r3, #32] -.L199: +.L207: cmp r2, r5 - bcc .L201 + bcc .L209 ldrh r3, [r3, #102] add r4, r0, #16 movw r6, #65535 @@ -1656,12 +1682,12 @@ ftl_sb_update_avl_pages: subs r1, r3, r1 movs r3, #0 uxth r1, r1 -.L202: +.L210: uxth r2, r3 cmp r5, r2 - bhi .L204 + bhi .L212 pop {r4, r5, r6, r7, pc} -.L201: +.L209: ldrh r6, [r4, #2]! adds r2, r2, #1 uxth r2, r2 @@ -1670,8 +1696,8 @@ ftl_sb_update_avl_pages: ldrhne r6, [r0, #4] addne r6, r6, #1 strhne r6, [r0, #4] @ movhi - b .L199 -.L204: + b .L207 +.L212: ldrh r2, [r4], #2 adds r3, r3, #1 cmp r2, r6 @@ -1679,10 +1705,10 @@ ftl_sb_update_avl_pages: ldrhne r2, [r0, #4] addne r2, r2, r1 strhne r2, [r0, #4] @ movhi - b .L202 -.L206: + b .L210 +.L214: .align 2 -.L205: +.L213: .word .LANCHOR0 .fnend .size ftl_sb_update_avl_pages, .-ftl_sb_update_avl_pages @@ -1700,24 +1726,24 @@ FtlSlcSuperblockCheck: ldrh r3, [r0, #4] push {r4, r5, lr} .save {r4, r5, lr} - cbz r3, .L207 + cbz r3, .L215 ldrh r2, [r0] movw r3, #65535 cmp r2, r3 - beq .L207 + beq .L215 ldrb r2, [r0, #6] @ zero_extendqisi2 movs r5, #0 adds r2, r2, #8 ldrh r1, [r0, r2, lsl #1] - ldr r2, .L213 + ldr r2, .L221 ldrh r4, [r2, #32] mov r2, r3 -.L210: +.L218: cmp r1, r2 - beq .L212 -.L207: + beq .L220 +.L215: pop {r4, r5, pc} -.L212: +.L220: ldrb r3, [r0, #6] @ zero_extendqisi2 adds r3, r3, #1 uxtb r3, r3 @@ -1731,10 +1757,10 @@ FtlSlcSuperblockCheck: ldrb r3, [r0, #6] @ zero_extendqisi2 adds r3, r3, #8 ldrh r1, [r0, r3, lsl #1] - b .L210 -.L214: + b .L218 +.L222: .align 2 -.L213: +.L221: .word .LANCHOR0 .fnend .size FtlSlcSuperblockCheck, .-FtlSlcSuperblockCheck @@ -1752,27 +1778,27 @@ 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, .L220 + ldr r6, .L228 ldrh r2, [r0] ldrh r3, [r6, #40] cmp r2, r3 - bcc .L216 - movw r2, #2097 - ldr r1, .L220+4 - ldr r0, .L220+8 + bcc .L224 + movw r2, #2146 + ldr r1, .L228+4 + ldr r0, .L228+8 bl sftl_printk -.L216: +.L224: ldrh r9, [r6, #32] add r7, r4, #16 - ldr r10, .L220+12 + ldr r10, .L228+12 movw r8, #65535 movs r5, #0 strh r5, [r4, #4] @ movhi strb r5, [r4, #7] -.L217: +.L225: uxth r3, r5 cmp r9, r3 - bhi .L219 + bhi .L227 ldrb r3, [r4, #7] @ zero_extendqisi2 movs r0, #0 ldrh r2, [r6, #102] @@ -1781,25 +1807,25 @@ make_superblock: movs r3, #1 strb r3, [r4, #9] pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L219: +.L227: ldrh r1, [r4] ldrb r0, [r10, r5] @ zero_extendqisi2 bl V2P_block strh r8, [r7] @ movhi mov fp, r0 bl FtlBbmIsBadBlock - cbnz r0, .L218 + cbnz r0, .L226 strh fp, [r7] @ movhi ldrb r3, [r4, #7] @ zero_extendqisi2 adds r3, r3, #1 strb r3, [r4, #7] -.L218: +.L226: adds r5, r5, #1 adds r7, r7, #2 - b .L217 -.L221: + b .L225 +.L229: .align 2 -.L220: +.L228: .word .LANCHOR0 .word .LANCHOR1+95 .word .LC1 @@ -1820,44 +1846,44 @@ update_multiplier_value: push {r4, r5, r6, r7, r8, r9, r10, lr} .save {r4, r5, r6, r7, r8, r9, r10, lr} movs r5, #0 - ldr r6, .L228 + ldr r6, .L236 mov r7, r0 mov r4, r5 ldrh r8, [r6, #32] add r10, r6, #60 ldrh r9, [r6, #102] -.L223: +.L231: uxth r3, r5 cmp r8, r3 - bhi .L225 - cbz r4, .L227 + bhi .L233 + cbz r4, .L235 mov r1, r4 mov r0, #32768 bl __aeabi_idiv -.L226: +.L234: ldr r1, [r6, #2316] movs r3, #6 mla r1, r3, r7, r1 strh r0, [r1, #4] @ movhi movs r0, #0 pop {r4, r5, r6, r7, r8, r9, r10, pc} -.L225: +.L233: mov r1, r7 ldrb r0, [r10, r5] @ zero_extendqisi2 bl V2P_block bl FtlBbmIsBadBlock - cbnz r0, .L224 + cbnz r0, .L232 add r4, r4, r9 uxth r4, r4 -.L224: +.L232: adds r5, r5, #1 - b .L223 -.L227: + b .L231 +.L235: mov r0, r4 - b .L226 -.L229: + b .L234 +.L237: .align 2 -.L228: +.L236: .word .LANCHOR0 .fnend .size update_multiplier_value, .-update_multiplier_value @@ -1873,22 +1899,22 @@ GetFreeBlockMinEraseCount: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L233 + ldr r2, .L241 ldr r0, [r2, #2340] - cbz r0, .L231 + cbz r0, .L239 ldr r3, [r2, #2316] subs r0, r0, r3 - ldr r3, .L233+4 + ldr r3, .L241+4 asrs r0, r0, #1 muls r0, r3, r0 ldr r3, [r2, #2328] uxth r0, r0 ldrh r0, [r3, r0, lsl #1] -.L231: +.L239: bx lr -.L234: +.L242: .align 2 -.L233: +.L241: .word .LANCHOR0 .word -1431655765 .fnend @@ -1904,11 +1930,11 @@ GetFreeBlockMaxEraseCount: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r1, .L243 + ldr r1, .L251 push {r4, r5, r6, r7, lr} .save {r4, r5, r6, r7, lr} ldr r3, [r1, #2340] - cbz r3, .L241 + cbz r3, .L249 ldrh r2, [r1, #2344] movs r6, #6 ldr r4, [r1, #2316] @@ -1920,32 +1946,32 @@ GetFreeBlockMaxEraseCount: cmp r0, r2 it gt uxthgt r0, r2 - ldr r2, .L243+4 + ldr r2, .L251+4 muls r3, r2, r3 movs r2, #0 uxth r3, r3 -.L238: +.L246: uxth r5, r2 cmp r0, r5 - bls .L240 + bls .L248 mul r5, r6, r3 adds r2, r2, #1 ldrh r5, [r4, r5] cmp r5, r7 - bne .L242 -.L240: + bne .L250 +.L248: ldr r2, [r1, #2328] ldrh r0, [r2, r3, lsl #1] pop {r4, r5, r6, r7, pc} -.L242: +.L250: mov r3, r5 - b .L238 -.L241: + b .L246 +.L249: mov r0, r3 pop {r4, r5, r6, r7, pc} -.L244: +.L252: .align 2 -.L243: +.L251: .word .LANCHOR0 .word -1431655765 .fnend @@ -1964,325 +1990,325 @@ FtlPrintInfo2buf: push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r7, r0 - ldr r6, .L257 + ldr r6, .L265 add r5, r7, #12 .pad #20 sub sp, sp, #20 - ldr r1, .L257+4 + ldr r1, .L265+4 bl strcpy ldr r2, [r6, #116] mov r0, r5 - ldr r1, .L257+8 + ldr r1, .L265+8 bl sprintf add r5, r5, r0 - ldr r1, .L257+12 + ldr r1, .L265+12 mov r0, r5 adds r5, r5, #10 bl strcpy ldr r2, [r6, #2504] mov r0, r5 - ldr r1, .L257+16 + ldr r1, .L265+16 bl sprintf add r5, r5, r0 ldr r2, [r6, #2500] - ldr r1, .L257+20 + ldr r1, .L265+20 mov r0, r5 bl sprintf add r5, r5, r0 ldr r2, [r6, #2508] - ldr r1, .L257+24 + ldr r1, .L265+24 mov r0, r5 bl sprintf add r5, r5, r0 ldr r2, [r6, #2512] - ldr r1, .L257+28 + ldr r1, .L265+28 mov r0, r5 bl sprintf add r5, r5, r0 ldr r2, [r6, #2516] - ldr r1, .L257+32 + ldr r1, .L265+32 mov r0, r5 bl sprintf add r5, r5, r0 ldr r2, [r6, #2520] - ldr r1, .L257+36 + ldr r1, .L265+36 mov r0, r5 bl sprintf add r5, r5, r0 ldr r2, [r6, #2524] - ldr r1, .L257+40 + ldr r1, .L265+40 mov r0, r5 bl sprintf add r5, r5, r0 ldr r2, [r6, #2528] - ldr r1, .L257+44 + ldr r1, .L265+44 mov r0, r5 bl sprintf ldr r2, [r6, #2532] add r5, r5, r0 - ldr r1, .L257+48 + ldr r1, .L265+48 mov r0, r5 lsrs r2, r2, #11 bl sprintf ldr r2, [r6, #2536] add r5, r5, r0 - ldr r1, .L257+52 + ldr r1, .L265+52 mov r0, r5 lsrs r2, r2, #11 bl sprintf add r5, r5, r0 ldr r2, [r6, #2540] - ldr r1, .L257+56 + ldr r1, .L265+56 mov r0, r5 bl sprintf add r5, r5, r0 ldr r2, [r6, #2544] - ldr r1, .L257+60 + ldr r1, .L265+60 mov r0, r5 bl sprintf add r5, r5, r0 ldrh r2, [r6, #158] - ldr r1, .L257+64 + ldr r1, .L265+64 mov r0, r5 bl sprintf add r5, r5, r0 ldrh r2, [r6, #2344] - ldr r1, .L257+68 + ldr r1, .L265+68 mov r0, r5 bl sprintf add r5, r5, r0 ldr r2, [r6, #2548] - ldr r1, .L257+72 + ldr r1, .L265+72 mov r0, r5 bl sprintf add r5, r5, r0 ldr r2, [r6, #2552] - ldr r1, .L257+76 + ldr r1, .L265+76 mov r0, r5 bl sprintf add r5, r5, r0 ldr r2, [r6, #2556] - ldr r1, .L257+80 + ldr r1, .L265+80 mov r0, r5 bl sprintf add r5, r5, r0 ldr r2, [r6, #2560] - ldr r1, .L257+84 + ldr r1, .L265+84 mov r0, r5 bl sprintf add r5, r5, r0 ldr r2, [r6, #2564] - ldr r1, .L257+88 + ldr r1, .L265+88 mov r0, r5 bl sprintf add r5, r5, r0 ldr r2, [r6, #2568] - ldr r1, .L257+92 + ldr r1, .L265+92 mov r0, r5 bl sprintf add r5, r5, r0 ldrh r2, [r6, #2298] - ldr r1, .L257+96 + ldr r1, .L265+96 mov r0, r5 bl sprintf add r5, r5, r0 ldrh r2, [r6, #2296] - ldr r1, .L257+100 + ldr r1, .L265+100 mov r0, r5 bl sprintf add r5, r5, r0 ldr r2, [r6, #140] - ldr r1, .L257+104 + ldr r1, .L265+104 mov r0, r5 bl sprintf add r5, r5, r0 ldr r2, [r6, #132] - ldr r1, .L257+108 + ldr r1, .L265+108 mov r0, r5 bl sprintf add r5, r5, r0 ldr r2, [r6, #28] - ldr r1, .L257+112 + ldr r1, .L265+112 mov r0, r5 bl sprintf add r5, r5, r0 ldrh r2, [r6, #218] - ldr r1, .L257+116 + ldr r1, .L265+116 mov r0, r5 bl sprintf add r5, r5, r0 ldrh r2, [r6, #40] - ldr r1, .L257+120 + ldr r1, .L265+120 mov r0, r5 bl sprintf add r5, r5, r0 ldrh r2, [r6, #2572] - ldr r1, .L257+124 + ldr r1, .L265+124 mov r0, r5 bl sprintf add r5, r5, r0 ldr r2, [r6, #44] - ldr r1, .L257+128 + ldr r1, .L265+128 mov r0, r5 bl sprintf add r5, r5, r0 ldrh r2, [r6, #2576] - ldr r1, .L257+132 + ldr r1, .L265+132 mov r0, r5 bl sprintf add r5, r5, r0 ldrh r2, [r6, #152] - ldr r1, .L257+136 + ldr r1, .L265+136 mov r0, r5 bl sprintf add r5, r5, r0 ldrh r2, [r6, #2350] - ldr r1, .L257+140 + ldr r1, .L265+140 mov r0, r5 bl sprintf add r5, r5, r0 ldrb r2, [r6, #2354] @ zero_extendqisi2 - ldr r1, .L257+144 + ldr r1, .L265+144 mov r0, r5 bl sprintf add r5, r5, r0 ldrh r2, [r6, #2348] - ldr r1, .L257+148 + ldr r1, .L265+148 mov r0, r5 bl sprintf add r5, r5, r0 ldrb r2, [r6, #2356] @ zero_extendqisi2 - ldr r1, .L257+152 + ldr r1, .L265+152 mov r0, r5 bl sprintf add r5, r5, r0 ldrh r2, [r6, #2352] - ldr r1, .L257+156 + ldr r1, .L265+156 mov r0, r5 bl sprintf ldr r3, [r6, #2324] add r5, r5, r0 ldrh r2, [r6, #2348] mov r0, r5 - ldr r1, .L257+160 + ldr r1, .L265+160 ldrh r2, [r3, r2, lsl #1] bl sprintf add r5, r5, r0 ldrh r2, [r6, #2398] - ldr r1, .L257+164 + ldr r1, .L265+164 mov r0, r5 bl sprintf add r5, r5, r0 ldrb r2, [r6, #2402] @ zero_extendqisi2 - ldr r1, .L257+168 + ldr r1, .L265+168 mov r0, r5 bl sprintf add r5, r5, r0 ldrh r2, [r6, #2396] - ldr r1, .L257+172 + ldr r1, .L265+172 mov r0, r5 bl sprintf add r5, r5, r0 ldrb r2, [r6, #2404] @ zero_extendqisi2 - ldr r1, .L257+176 + ldr r1, .L265+176 mov r0, r5 bl sprintf add r5, r5, r0 ldrh r2, [r6, #2400] - ldr r1, .L257+180 + ldr r1, .L265+180 mov r0, r5 bl sprintf ldr r3, [r6, #2324] add r5, r5, r0 ldrh r2, [r6, #2396] mov r0, r5 - ldr r1, .L257+184 + ldr r1, .L265+184 ldrh r2, [r3, r2, lsl #1] bl sprintf add r5, r5, r0 ldrh r2, [r6, #2446] - ldr r1, .L257+188 + ldr r1, .L265+188 mov r0, r5 bl sprintf add r5, r5, r0 ldrb r2, [r6, #2450] @ zero_extendqisi2 - ldr r1, .L257+192 + ldr r1, .L265+192 mov r0, r5 bl sprintf add r5, r5, r0 ldrh r2, [r6, #2444] - ldr r1, .L257+196 + ldr r1, .L265+196 mov r0, r5 bl sprintf add r5, r5, r0 ldrb r2, [r6, #2452] @ zero_extendqisi2 - ldr r1, .L257+200 + ldr r1, .L265+200 mov r0, r5 bl sprintf add r5, r5, r0 ldrh r2, [r6, #2448] - ldr r1, .L257+204 + ldr r1, .L265+204 mov r0, r5 bl sprintf add r5, r5, r0 ldrh r2, [r6, #2590] - ldr r1, .L257+208 + ldr r1, .L265+208 mov r0, r5 bl sprintf add r5, r5, r0 ldrb r2, [r6, #2594] @ zero_extendqisi2 - ldr r1, .L257+212 + ldr r1, .L265+212 mov r0, r5 bl sprintf add r5, r5, r0 ldrh r2, [r6, #2588] - ldr r1, .L257+216 + ldr r1, .L265+216 mov r0, r5 bl sprintf add r5, r5, r0 ldrb r2, [r6, #2596] @ zero_extendqisi2 - ldr r1, .L257+220 + ldr r1, .L265+220 mov r0, r5 bl sprintf add r5, r5, r0 ldrh r2, [r6, #2592] - ldr r1, .L257+224 + ldr r1, .L265+224 mov r0, r5 bl sprintf ldr r3, [r6, #2712] add r5, r5, r0 ldr r2, [r6, #2716] mov r0, r5 - ldr r1, .L257+228 + ldr r1, .L265+228 str r3, [sp] ldr r3, [r6, #2720] bl sprintf adds r4, r5, r0 ldr r2, [r6, #2708] - ldr r1, .L257+232 + ldr r1, .L265+232 mov r0, r4 bl sprintf add r4, r4, r0 ldr r2, [r6, #2732] - ldr r1, .L257+236 + ldr r1, .L265+236 mov r0, r4 bl sprintf add r4, r4, r0 ldrh r2, [r6, #3148] - ldr r1, .L257+240 + ldr r1, .L265+240 mov r0, r4 bl sprintf add r4, r4, r0 ldrh r2, [r6, #3150] - ldr r1, .L257+244 + ldr r1, .L265+244 mov r0, r4 bl sprintf add r4, r4, r0 ldr r2, [r6, #3152] - b .L258 -.L259: + b .L266 +.L267: .align 2 -.L257: +.L265: .word .LANCHOR0 .word .LC2 .word .LC3 @@ -2345,60 +2371,60 @@ FtlPrintInfo2buf: .word .LC60 .word .LC61 .word .LC62 -.L258: - ldr r1, .L260 +.L266: + ldr r1, .L268 mov r0, r4 bl sprintf add r4, r4, r0 ldrh r2, [r6, #3156] - ldr r1, .L260+4 + ldr r1, .L268+4 mov r0, r4 bl sprintf add r4, r4, r0 bl GetFreeBlockMinEraseCount - ldr r1, .L260+8 + ldr r1, .L268+8 mov r2, r0 mov r0, r4 bl sprintf add r4, r4, r0 ldrh r0, [r6, #2344] bl GetFreeBlockMaxEraseCount - ldr r1, .L260+12 + ldr r1, .L268+12 mov r2, r0 mov r0, r4 bl sprintf - ldr r3, .L260+16 + ldr r3, .L268+16 add r4, r4, r0 ldr r3, [r3] cmp r3, #1 - beq .L246 -.L251: + beq .L254 +.L259: subs r0, r4, r7 add sp, sp, #20 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L246: +.L254: ldrh r3, [r6, #2588] movw r2, #65535 cmp r3, r2 - beq .L248 + beq .L256 ldr r2, [r6, #2324] mov r0, r4 - ldr r1, .L260+20 + ldr r1, .L268+20 ldrh r2, [r2, r3, lsl #1] bl sprintf add r4, r4, r0 -.L248: +.L256: movs r0, #0 - ldr r9, .L260+28 + ldr r9, .L268+28 bl List_get_gc_head_node uxth r3, r0 movs r5, #0 movw fp, #65535 mov r10, #6 -.L250: +.L258: cmp r3, fp - beq .L249 + beq .L257 ldr r2, [r6, #2328] mul r8, r10, r3 mov r0, r4 @@ -2419,22 +2445,22 @@ FtlPrintInfo2buf: cmp r5, #16 add r4, r4, r0 ldrh r3, [r3, r8] - bne .L250 -.L249: + bne .L258 +.L257: ldr r2, [r6, #2316] movs r5, #0 ldr r3, [r6, #2340] movw r9, #65535 - ldr fp, .L260+32 + ldr fp, .L268+32 mov r10, #6 subs r3, r3, r2 asrs r2, r3, #1 - ldr r3, .L260+24 + ldr r3, .L268+24 muls r3, r2, r3 uxth r3, r3 -.L252: +.L260: cmp r3, r9 - beq .L251 + beq .L259 ldr r2, [r6, #2328] mul r8, r10, r3 mov r0, r4 @@ -2450,13 +2476,13 @@ FtlPrintInfo2buf: bl sprintf cmp r5, #4 add r4, r4, r0 - beq .L251 + beq .L259 ldr r3, [r6, #2316] ldrh r3, [r3, r8] - b .L252 -.L261: + b .L260 +.L269: .align 2 -.L260: +.L268: .word .LC63 .word .LC64 .word .LC65 @@ -2482,8 +2508,8 @@ rknand_proc_ftlread: push {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r5, r0 - ldr r2, .L263 - ldr r1, .L263+4 + ldr r2, .L271 + ldr r1, .L271+4 bl sprintf adds r4, r5, r0 mov r0, r4 @@ -2491,9 +2517,9 @@ rknand_proc_ftlread: add r0, r0, r4 subs r0, r0, r5 pop {r3, r4, r5, pc} -.L264: +.L272: .align 2 -.L263: +.L271: .word .LC70 .word .LC71 .fnend @@ -2513,18 +2539,18 @@ GetSwlReplaceBlock: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #28 sub sp, sp, #28 - ldr r4, .L289 + ldr r4, .L297 ldr r2, [r4, #2556] ldr r3, [r4, #2568] cmp r2, r3 - bcs .L266 + bcs .L274 ldrh r1, [r4, #40] movs r3, #0 ldr r0, [r4, #2328] str r3, [r4, #2548] -.L267: +.L275: cmp r3, r1 - bcc .L268 + bcc .L276 ldr r5, [r4, #2548] mov r0, r5 bl __aeabi_uidiv @@ -2534,48 +2560,48 @@ GetSwlReplaceBlock: subs r0, r5, r0 bl __aeabi_uidiv str r0, [r4, #2548] -.L269: +.L277: ldr r6, [r4, #2568] ldr r7, [r4, #2556] add r3, r6, #256 cmp r3, r7 - bls .L274 + bls .L282 ldr r2, [r4, #2564] add r3, r6, #768 cmp r3, r2 - bls .L274 -.L276: + bls .L282 +.L284: movw r5, #65535 -.L275: +.L283: mov r0, r5 add sp, sp, #28 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L268: +.L276: ldrh r2, [r0, r3, lsl #1] adds r3, r3, #1 ldr r5, [r4, #2548] add r2, r2, r5 str r2, [r4, #2548] - b .L267 -.L266: + b .L275 +.L274: ldr r3, [r4, #2564] cmp r2, r3 - bls .L269 + bls .L277 adds r3, r3, #1 str r3, [r4, #2564] movs r3, #0 -.L271: +.L279: ldrh r2, [r4, #40] cmp r3, r2 - bcs .L269 + bcs .L277 ldr r1, [r4, #2328] ldrh r2, [r1, r3, lsl #1] adds r2, r2, #1 strh r2, [r1, r3, lsl #1] @ movhi adds r3, r3, #1 - b .L271 -.L274: + b .L279 +.L282: ldrh r0, [r4, #2344] add r0, r0, r0, lsl #1 ubfx r0, r0, #2, #16 @@ -2583,10 +2609,10 @@ GetSwlReplaceBlock: add r3, r6, #64 mov r9, r0 cmp r0, r3 - bcc .L276 + bcc .L284 ldr r3, [r4, #2320] cmp r3, #0 - beq .L276 + beq .L284 ldrh r2, [r4, #40] movw r1, #65535 ldr lr, [r4, #2316] @@ -2596,42 +2622,42 @@ GetSwlReplaceBlock: str r2, [sp, #20] mov fp, #6 mov r2, r1 -.L277: +.L285: ldrh ip, [r3] cmp ip, r10 - bne .L280 + bne .L288 mov r5, r2 -.L279: +.L287: movw r3, #65535 cmp r5, r3 - beq .L276 + beq .L284 ldrh r10, [r8, r5, lsl #1] lsl fp, r5, #1 cmp r6, r10 - bcs .L281 + bcs .L289 bl GetFreeBlockMinEraseCount cmp r6, r0 it cc strcc r1, [r4, #2568] -.L281: +.L289: cmp r7, r10 - bls .L276 + bls .L284 add r3, r10, #128 cmp r9, r3 - ble .L276 + ble .L284 add r3, r10, #256 cmp r7, r3 - bhi .L282 + bhi .L290 ldr r3, [r4, #2564] add r10, r10, #768 cmp r10, r3 - bcs .L276 -.L282: + bcs .L284 +.L290: str r9, [sp, #8] mov r2, r7 ldrh r3, [r8, fp] mov r1, r5 - ldr r0, .L289+4 + ldr r0, .L297+4 str r3, [sp, #4] ldr r3, [r4, #2324] ldrh r3, [r3, fp] @@ -2640,33 +2666,33 @@ GetSwlReplaceBlock: bl sftl_printk movs r3, #1 str r3, [r4, #3160] - b .L275 -.L280: + b .L283 +.L288: adds r0, r0, #1 ldr r5, [sp, #20] uxth r0, r0 cmp r0, r5 - bhi .L276 + bhi .L284 ldrh r5, [r3, #4] - cbz r5, .L278 - ldr r5, .L289+8 + cbz r5, .L286 + ldr r5, .L297+8 sub r3, r3, lr asrs r3, r3, #1 muls r3, r5, r3 uxth r5, r3 ldrh r3, [r8, r5, lsl #1] cmp r6, r3 - bcs .L279 + bcs .L287 cmp r1, r3 itt hi movhi r1, r3 movhi r2, r5 -.L278: +.L286: mla r3, fp, ip, lr - b .L277 -.L290: + b .L285 +.L298: .align 2 -.L289: +.L297: .word .LANCHOR0 .word .LC72 .word -1431655765 @@ -2687,18 +2713,18 @@ free_data_superblock: push {r3, lr} .save {r3, lr} cmp r0, r2 - beq .L292 - ldr r2, .L293 + beq .L300 + ldr r2, .L301 movs r1, #0 ldr r2, [r2, #2324] strh r1, [r2, r0, lsl #1] @ movhi bl INSERT_FREE_LIST -.L292: +.L300: movs r0, #0 pop {r3, pc} -.L294: +.L302: .align 2 -.L293: +.L301: .word .LANCHOR0 .fnend .size free_data_superblock, .-free_data_superblock @@ -2719,29 +2745,29 @@ get_new_active_ppa: ldrh r2, [r0] mov r4, r0 cmp r2, r3 - bne .L296 - movw r2, #2707 - ldr r1, .L309 - ldr r0, .L309+4 + bne .L304 + movw r2, #2776 + ldr r1, .L317 + ldr r0, .L317+4 bl sftl_printk -.L296: - ldr r5, .L309+8 +.L304: + ldr r5, .L317+8 ldrh r2, [r4, #2] ldrh r3, [r5, #102] cmp r2, r3 - bne .L297 - movw r2, #2708 - ldr r1, .L309 - ldr r0, .L309+4 + bne .L305 + movw r2, #2777 + ldr r1, .L317 + ldr r0, .L317+4 bl sftl_printk -.L297: +.L305: ldrh r3, [r4, #4] - cbnz r3, .L298 - movw r2, #2709 - ldr r1, .L309 - ldr r0, .L309+4 + cbnz r3, .L306 + movw r2, #2778 + ldr r1, .L317 + ldr r0, .L317+4 bl sftl_printk -.L298: +.L306: ldrb r2, [r4, #6] @ zero_extendqisi2 movs r3, #0 ldrh r1, [r5, #32] @@ -2750,10 +2776,10 @@ get_new_active_ppa: adds r2, r2, #8 ldrh r0, [r4, r2, lsl #1] mov r2, r3 -.L299: +.L307: cmp r0, r6 ldrb r3, [r4, #6] @ zero_extendqisi2 - beq .L301 + beq .L309 ldrh r2, [r4, #4] ldrh r6, [r4, #2] subs r2, r2, #1 @@ -2761,7 +2787,7 @@ get_new_active_ppa: orr r6, r6, r0, lsl #10 movw r0, #65535 strh r2, [r4, #4] @ movhi -.L303: +.L311: adds r3, r3, #1 uxtb r3, r3 cmp r1, r3 @@ -2773,21 +2799,21 @@ get_new_active_ppa: add r7, r3, #8 ldrh r7, [r4, r7, lsl #1] cmp r7, r0 - beq .L303 + beq .L311 strb r3, [r4, #6] ldrh r1, [r4, #2] ldrh r3, [r5, #102] cmp r1, r3 - bne .L295 - cbz r2, .L295 - movw r2, #2730 - ldr r1, .L309 - ldr r0, .L309+4 + bne .L303 + cbz r2, .L303 + movw r2, #2799 + ldr r1, .L317 + ldr r0, .L317+4 bl sftl_printk -.L295: +.L303: mov r0, r6 pop {r3, r4, r5, r6, r7, pc} -.L301: +.L309: adds r3, r3, #1 uxtb r3, r3 cmp r3, r1 @@ -2800,10 +2826,10 @@ get_new_active_ppa: ldrb r3, [r4, #6] @ zero_extendqisi2 adds r3, r3, #8 ldrh r0, [r4, r3, lsl #1] - b .L299 -.L310: + b .L307 +.L318: .align 2 -.L309: +.L317: .word .LANCHOR1+111 .word .LC1 .word .LANCHOR0 @@ -2820,7 +2846,7 @@ FtlGcBufInit: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L320 + ldr r3, .L328 mov ip, #20 push {r4, r5, r6, r7, r8, r9, lr} .save {r4, r5, r6, r7, r8, r9, lr} @@ -2829,21 +2855,21 @@ FtlGcBufInit: movs r2, #0 mov r7, r3 str r2, [r3, #3164] -.L312: +.L320: ldrh r1, [r3, #32] uxth r0, r2 adds r4, r2, #1 cmp r0, r1 - bcc .L315 - ldr r7, .L320 + bcc .L323 + ldr r7, .L328 mov ip, #12 movs r6, #0 -.L316: +.L324: ldr r2, [r3, #3184] cmp r1, r2 - bcc .L319 + bcc .L327 pop {r4, r5, r6, r7, r8, r9, pc} -.L315: +.L323: uxth r2, r2 ldr r8, [r3, #3168] mul lr, r9, r2 @@ -2874,8 +2900,8 @@ FtlGcBufInit: ldr r1, [r8, #4] str r1, [r2, #12] mov r2, r4 - b .L312 -.L319: + b .L320 +.L327: mul r0, ip, r1 ldr r4, [r3, #3168] ldr r5, [r3, #3172] @@ -2900,10 +2926,10 @@ FtlGcBufInit: add r2, r2, r4 uxth r1, r1 str r2, [r0, #4] - b .L316 -.L321: + b .L324 +.L329: .align 2 -.L320: +.L328: .word .LANCHOR0 .fnend .size FtlGcBufInit, .-FtlGcBufInit @@ -2918,7 +2944,7 @@ FtlGcBufFree: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L329 + ldr r3, .L337 push {r4, r5, r6, r7, r8, r9, r10, lr} .save {r4, r5, r6, r7, r8, r9, r10, lr} movs r5, #0 @@ -2927,32 +2953,32 @@ FtlGcBufFree: mov r8, r5 ldr ip, [r3, #3184] ldr r6, [r3, #3168] -.L323: +.L331: uxth r3, r5 cmp r1, r3 - bls .L322 + bls .L330 mla r4, r10, r3, r0 movs r2, #0 -.L324: +.L332: uxth r3, r2 cmp ip, r3 - bls .L325 + bls .L333 mul r3, lr, r3 ldr r7, [r4, #8] adds r2, r2, #1 add r9, r6, r3 ldr r3, [r6, r3] cmp r3, r7 - bne .L324 + bne .L332 str r8, [r9, #8] -.L325: +.L333: adds r5, r5, #1 - b .L323 -.L322: - pop {r4, r5, r6, r7, r8, r9, r10, pc} + b .L331 .L330: + pop {r4, r5, r6, r7, r8, r9, r10, pc} +.L338: .align 2 -.L329: +.L337: .word .LANCHOR0 .fnend .size FtlGcBufFree, .-FtlGcBufFree @@ -2967,7 +2993,7 @@ FtlGcBufAlloc: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L338 + ldr r3, .L346 mov ip, #12 push {r4, r5, r6, r7, r8, r9, lr} .save {r4, r5, r6, r7, r8, r9, lr} @@ -2976,34 +3002,34 @@ FtlGcBufAlloc: mov r8, #20 ldr r5, [r3, #3184] ldr r6, [r3, #3168] -.L332: +.L340: uxth r2, r4 cmp r1, r2 - bhi .L336 + bhi .L344 pop {r4, r5, r6, r7, r8, r9, pc} -.L336: +.L344: mov r9, #0 -.L333: +.L341: uxth r3, r9 cmp r5, r3 - bls .L334 + bls .L342 mla r3, ip, r3, r6 add r9, r9, #1 ldr r7, [r3, #8] cmp r7, #0 - bne .L333 + 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] -.L334: +.L342: adds r4, r4, #1 - b .L332 -.L339: + b .L340 +.L347: .align 2 -.L338: +.L346: .word .LANCHOR0 .fnend .size FtlGcBufAlloc, .-FtlGcBufAlloc @@ -3019,24 +3045,24 @@ IsBlkInGcList: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L345 + ldr r2, .L353 ldr r3, [r2, #3188] ldrh r2, [r2, #3192] add r2, r3, r2, lsl #1 -.L341: +.L349: cmp r3, r2 - bne .L343 + bne .L351 movs r0, #0 bx lr -.L343: +.L351: ldrh r1, [r3], #2 cmp r1, r0 - bne .L341 + bne .L349 movs r0, #1 bx lr -.L346: +.L354: .align 2 -.L345: +.L353: .word .LANCHOR0 .fnend .size IsBlkInGcList, .-IsBlkInGcList @@ -3059,26 +3085,26 @@ FtlGcUpdatePage: mov r7, r2 movs r4, #0 bl P2V_block_in_plane - ldr r3, .L351 + ldr r3, .L359 ldrh r1, [r3, #3192] ldr r2, [r3, #3188] -.L348: +.L356: uxth ip, r4 cmp ip, r1 - bcc .L350 - bne .L349 + bcc .L358 + bne .L357 strh r0, [r2, ip, lsl #1] @ movhi ldrh r0, [r3, #3192] adds r0, r0, #1 strh r0, [r3, #3192] @ movhi - b .L349 -.L350: + b .L357 +.L358: adds r4, r4, #1 add ip, r2, r4, lsl #1 ldrh ip, [ip, #-2] cmp ip, r0 - bne .L348 -.L349: + bne .L356 +.L357: ldrh r2, [r3, #3200] movs r0, #12 muls r0, r2, r0 @@ -3091,9 +3117,9 @@ FtlGcUpdatePage: adds r2, r2, #1 strh r2, [r3, #3200] @ movhi pop {r3, r4, r5, r6, r7, pc} -.L352: +.L360: .align 2 -.L351: +.L359: .word .LANCHOR0 .fnend .size FtlGcUpdatePage, .-FtlGcUpdatePage @@ -3108,34 +3134,50 @@ FtlGcRefreshBlock: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - push {r4, lr} - .save {r4, lr} + push {r4, r5, r6, lr} + .save {r4, r5, r6, lr} mov r1, r0 mov r4, r0 - ldr r0, .L356 + ldr r0, .L366 bl sftl_printk - ldr r3, .L356+4 - ldrh r0, [r3, #3202] + ldr r3, .L366+4 + ldrh r6, [r3, #3202] + cmp r4, r6 + beq .L362 + ldrh r5, [r3, #3204] + cmp r4, r5 + beq .L362 + ldrh r0, [r3, #3206] cmp r4, r0 - beq .L354 - ldrh r1, [r3, #3204] + beq .L362 + ldrh r1, [r3, #3208] cmp r4, r1 - beq .L354 + beq .L362 movw r2, #65535 - cmp r0, r2 - bne .L355 + cmp r6, r2 + bne .L363 strh r4, [r3, #3202] @ movhi -.L354: +.L362: movs r0, #0 - pop {r4, pc} -.L355: + pop {r4, r5, r6, pc} +.L363: + cmp r5, r2 + bne .L364 + strh r4, [r3, #3204] @ movhi + b .L362 +.L364: + cmp r0, r2 + bne .L365 + strh r4, [r3, #3206] @ movhi + b .L362 +.L365: cmp r1, r2 it eq - strheq r4, [r3, #3204] @ movhi - b .L354 -.L357: + strheq r4, [r3, #3208] @ movhi + b .L362 +.L367: .align 2 -.L356: +.L366: .word .LC73 .word .LANCHOR0 .fnend @@ -3154,41 +3196,41 @@ FtlGcMarkBadPhyBlk: push {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r5, r0 - ldr r4, .L362 + ldr r4, .L372 bl P2V_block_in_plane mov r2, r5 mov r6, r0 - ldrh r1, [r4, #3206] - ldr r0, .L362+4 + ldrh r1, [r4, #3210] + ldr r0, .L372+4 bl sftl_printk mov r0, r6 bl FtlGcRefreshBlock - ldrh r3, [r4, #3206] + ldrh r3, [r4, #3210] movs r2, #0 - addw r0, r4, #3208 -.L359: + addw r0, r4, #3212 +.L369: uxth r1, r2 cmp r3, r1 - bhi .L361 + bhi .L371 cmp r3, #15 itttt ls addls r2, r3, #1 - strhls r2, [r4, #3206] @ movhi + strhls r2, [r4, #3210] @ movhi addls r4, r4, r3, lsl #1 - strhls r5, [r4, #3208] @ movhi - b .L360 -.L361: + strhls r5, [r4, #3212] @ movhi + b .L370 +.L371: adds r2, r2, #1 add r1, r0, r2, lsl #1 ldrh r1, [r1, #-2] cmp r1, r5 - bne .L359 -.L360: + bne .L369 +.L370: movs r0, #0 pop {r4, r5, r6, pc} -.L363: +.L373: .align 2 -.L362: +.L372: .word .LANCHOR0 .word .LC74 .fnend @@ -3206,32 +3248,32 @@ FtlGcReFreshBadBlk: @ frame_needed = 0, uses_anonymous_args = 0 push {r4, lr} .save {r4, lr} - ldr r4, .L370 - ldrh r3, [r4, #3206] - cbz r3, .L365 + ldr r4, .L380 + ldrh r3, [r4, #3210] + cbz r3, .L375 ldrh r1, [r4, #3202] movw r2, #65535 cmp r1, r2 - bne .L365 - ldrh r2, [r4, #3242] + bne .L375 + ldrh r2, [r4, #3246] cmp r2, r3 itt cs movcs r3, #0 - strhcs r3, [r4, #3242] @ movhi - ldrh r3, [r4, #3242] + strhcs r3, [r4, #3246] @ movhi + ldrh r3, [r4, #3246] add r3, r4, r3, lsl #1 - ldrh r0, [r3, #3208] + ldrh r0, [r3, #3212] bl P2V_block_in_plane bl FtlGcRefreshBlock - ldrh r3, [r4, #3242] + ldrh r3, [r4, #3246] adds r3, r3, #1 - strh r3, [r4, #3242] @ movhi -.L365: + strh r3, [r4, #3246] @ movhi +.L375: movs r0, #0 pop {r4, pc} -.L371: +.L381: .align 2 -.L370: +.L380: .word .LANCHOR0 .fnend .size FtlGcReFreshBadBlk, .-FtlGcReFreshBadBlk @@ -3247,11 +3289,11 @@ ftl_malloc: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r1, .L373 + ldr r1, .L383 b __kmalloc -.L374: +.L384: .align 2 -.L373: +.L383: .word 37748929 .fnend .size ftl_malloc, .-ftl_malloc @@ -3284,54 +3326,54 @@ rknand_print_hex: 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, .L385+16 + ldr fp, .L395+16 mov r10, r0 mov r7, r1 mov r8, r2 mov r9, r3 mov r5, r6 mov r4, r6 -.L377: +.L387: cmp r4, r9 - bcc .L383 - ldr r0, .L385 + bcc .L393 + ldr r0, .L395 pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr} b sftl_printk -.L383: - cbnz r5, .L378 +.L393: + cbnz r5, .L388 mov r3, r6 mov r2, r7 mov r1, r10 - ldr r0, .L385+4 + ldr r0, .L395+4 bl sftl_printk -.L378: +.L388: cmp r8, #4 - bne .L379 + bne .L389 ldr r1, [r7, r4, lsl #2] - ldr r0, .L385+8 -.L384: + ldr r0, .L395+8 +.L394: adds r5, r5, #1 bl sftl_printk cmp r5, #15 - bls .L382 + bls .L392 movs r5, #0 - ldr r0, .L385 + ldr r0, .L395 bl sftl_printk -.L382: +.L392: adds r4, r4, #1 add r6, r6, r8 - b .L377 -.L379: + b .L387 +.L389: cmp r8, #2 ittee eq ldrheq r1, [r7, r4, lsl #1] moveq r0, fp ldrbne r1, [r7, r4] @ zero_extendqisi2 - ldrne r0, .L385+12 - b .L384 -.L386: + ldrne r0, .L395+12 + b .L394 +.L396: .align 2 -.L385: +.L395: .word .LC79 .word .LC75 .word .LC76 @@ -3354,30 +3396,30 @@ FlashReadPages: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 mov r8, r1 - ldr r5, .L405 + ldr r5, .L415 mov r4, r0 movs r6, #0 - ldr r10, .L405+4 + ldr r10, .L415+4 ldrh r9, [r5, #12] - ldr fp, .L405+8 -.L388: + ldr fp, .L415+8 +.L398: cmp r6, r8 - bne .L395 + bne .L405 movs r0, #0 add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L395: +.L405: ldr r3, [r4, #8] - cbz r3, .L389 + cbz r3, .L399 ldr r3, [r4, #12] - cbnz r3, .L390 -.L389: + cbnz r3, .L400 +.L399: movs r2, #101 mov r1, r10 mov r0, fp bl sftl_printk -.L390: +.L400: mov r2, sp add r1, sp, #4 mov r0, r4 @@ -3386,43 +3428,43 @@ FlashReadPages: ldr r2, [r4, #8] ldr r1, [sp, #4] ldrb r0, [sp] @ zero_extendqisi2 - ldr r7, [r5, #3256] + ldr r7, [r5, #3260] blx r7 str r0, [r4] ldrh r3, [r5, #14] cmp r3, #4 - bne .L392 + bne .L402 ldr r3, [r4, #12] ldr r2, [r4, #8] ldr r1, [sp, #4] adds r3, r3, #8 ldrb r0, [sp] @ zero_extendqisi2 add r2, r2, #2048 - ldr r7, [r5, #3256] + ldr r7, [r5, #3260] add r1, r1, r9 blx r7 adds r0, r0, #1 - beq .L393 + beq .L403 ldr r3, [r4, #12] ldr r2, [r3, #12] adds r2, r2, #1 - bne .L392 + bne .L402 ldr r2, [r3, #8] adds r2, r2, #1 - bne .L392 + bne .L402 ldr r3, [r3] adds r3, r3, #1 - beq .L392 -.L393: + beq .L402 +.L403: mov r3, #-1 str r3, [r4] -.L392: +.L402: adds r6, r6, #1 adds r4, r4, #20 - b .L388 -.L406: + b .L398 +.L416: .align 2 -.L405: +.L415: .word .LANCHOR0 .word .LANCHOR1+130 .word .LC1 @@ -3442,51 +3484,51 @@ FtlLoadFactoryBbt: push {r4, r5, r6, r7, r8, r9, r10, lr} .save {r4, r5, r6, r7, r8, r9, r10, lr} movs r6, #0 - ldr r4, .L417 + ldr r4, .L427 movw r10, #61664 - ldr r3, [r4, #3280] + ldr r3, [r4, #3284] add r7, r4, #162 - ldr r8, [r4, #3284] - addw r9, r4, #3260 - str r3, [r4, #3268] - str r8, [r4, #3272] -.L408: + ldr r8, [r4, #3288] + add r9, r4, #3264 + str r3, [r4, #3272] + str r8, [r4, #3276] +.L418: ldrh r3, [r4, #54] cmp r6, r3 - bcc .L413 + bcc .L423 movs r0, #0 pop {r4, r5, r6, r7, r8, r9, r10, pc} -.L413: +.L423: ldrh r5, [r4, #98] movw r3, #65535 strh r3, [r7, #2]! @ movhi -.L410: +.L420: ldrh r3, [r4, #98] subs r5, r5, #1 uxth r5, r5 sub r2, r3, #16 cmp r5, r2 - ble .L411 + ble .L421 mla r3, r6, r3, r5 movs r2, #1 mov r1, r2 mov r0, r9 lsls r3, r3, #10 - str r3, [r4, #3264] + str r3, [r4, #3268] bl FlashReadPages - ldr r3, [r4, #3260] + ldr r3, [r4, #3264] adds r3, r3, #1 - beq .L410 + beq .L420 ldrh r3, [r8] cmp r3, r10 - bne .L410 + bne .L420 strh r5, [r7] @ movhi -.L411: +.L421: adds r6, r6, #1 - b .L408 -.L418: + b .L418 +.L428: .align 2 -.L417: +.L427: .word .LANCHOR0 .fnend .size FtlLoadFactoryBbt, .-FtlLoadFactoryBbt @@ -3501,69 +3543,72 @@ FtlGetLastWrittenPage: .fnstart @ args = 0, pretend = 0, frame = 88 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L427 + ldr r3, .L440 cmp r1, #1 push {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} - lsl r7, r0, #10 + lsl r6, r0, #10 .pad #88 sub sp, sp, #88 mov r2, r1 - mov r6, r1 + mov r7, r1 it eq - ldrheq r4, [r3, #104] + ldrheq r5, [r3, #104] mov r1, #1 it ne - ldrhne r4, [r3, #102] + ldrhne r5, [r3, #102] add r0, sp, #4 - ldr r3, .L427+4 - subs r4, r4, #1 - sxth r5, r4 + ldr r3, .L440+4 + subs r5, r5, #1 + sxth r5, r5 str r3, [sp, #12] add r3, sp, #24 str r3, [sp, #16] - orr r3, r5, r7 + orr r3, r5, r6 str r3, [sp, #8] bl FlashReadPages ldr r3, [sp, #24] adds r3, r3, #1 - bne .L422 + bne .L432 mov r8, #0 -.L423: +.L433: cmp r8, r5 - ble .L426 -.L422: + ble .L436 +.L432: mov r0, r5 add sp, sp, #88 @ sp needed pop {r4, r5, r6, r7, r8, pc} -.L426: - add r4, r8, r5 - mov r2, r6 - add r4, r4, r4, lsr #31 +.L436: + add r3, r8, r5 + mov r2, r7 + add r3, r3, r3, lsr #31 movs r1, #1 add r0, sp, #4 - asrs r4, r4, #1 + asrs r4, r3, #1 sxth r3, r4 - orrs r3, r3, r7 + orrs r3, r3, r6 str r3, [sp, #8] bl FlashReadPages ldr r3, [sp, #24] adds r3, r3, #1 - bne .L424 + bne .L434 ldr r3, [sp, #28] adds r3, r3, #1 - bne .L424 + bne .L434 + ldr r3, [sp, #4] + adds r3, r3, #1 + beq .L434 subs r4, r4, #1 sxth r5, r4 - b .L423 -.L424: + b .L433 +.L434: adds r4, r4, #1 sxth r8, r4 - b .L423 -.L428: + b .L433 +.L441: .align 2 -.L427: +.L440: .word .LANCHOR0 .word ftl_temp_buf .fnend @@ -3582,7 +3627,7 @@ FlashProgPages: push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov fp, r1 - ldr r6, .L459 + ldr r6, .L472 mov r9, r2 mov r4, r0 mov r5, r0 @@ -3591,28 +3636,28 @@ FlashProgPages: sub sp, sp, #44 ldrh r10, [r6, #12] str r3, [sp, #4] -.L430: +.L443: cmp r8, fp - bne .L438 + bne .L451 ldr r3, [sp, #4] cmp r3, #0 - bne .L445 -.L458: + bne .L458 +.L471: movs r0, #0 add sp, sp, #44 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L438: +.L451: ldr r3, [r5, #8] - cbz r3, .L431 + cbz r3, .L444 ldr r3, [r5, #12] - cbnz r3, .L432 -.L431: + cbnz r3, .L445 +.L444: movs r2, #131 - ldr r1, .L459+4 - ldr r0, .L459+8 + ldr r1, .L472+4 + ldr r0, .L472+8 bl sftl_printk -.L432: +.L445: add r2, sp, #12 add r1, sp, #16 mov r0, r5 @@ -3621,40 +3666,40 @@ FlashProgPages: ldr r2, [r5, #8] ldr r1, [sp, #16] ldrb r0, [sp, #12] @ zero_extendqisi2 - ldr r7, [r6, #3252] + ldr r7, [r6, #3256] blx r7 - cbnz r0, .L433 + cbnz r0, .L446 str r0, [r5] -.L434: +.L447: ldrh r3, [r6, #14] cmp r3, #4 - bne .L436 + bne .L449 ldr r3, [r5, #12] ldr r2, [r5, #8] ldr r1, [sp, #16] adds r3, r3, #8 ldrb r0, [sp, #12] @ zero_extendqisi2 add r2, r2, #2048 - ldr r7, [r6, #3252] + ldr r7, [r6, #3256] add r1, r1, r10 blx r7 - cbz r0, .L436 + cbz r0, .L449 mov r3, #-1 str r3, [r5] -.L436: +.L449: add r8, r8, #1 adds r5, r5, #20 - b .L430 -.L433: + b .L443 +.L446: mov r3, #-1 str r3, [r5] - b .L434 -.L443: + b .L447 +.L456: movs r3, #0 mov r2, r9 str r3, [r7] movs r1, #1 - str r3, [r6, #3288] + str r3, [r6, #3292] add r0, sp, #20 ldr r3, [r4, #4] str r7, [sp, #28] @@ -3663,60 +3708,60 @@ FlashProgPages: bl FlashReadPages ldr r3, [sp, #20] adds r2, r3, #1 - bne .L440 + bne .L453 ldr r1, [r4, #4] mov r0, fp str r3, [sp, #4] bl sftl_printk ldr r3, [sp, #4] str r3, [r4] -.L440: +.L453: ldr r3, [r4, #12] - cbz r3, .L441 + cbz r3, .L454 ldr r2, [r3] - ldr r3, [r6, #3288] + ldr r3, [r6, #3292] cmp r2, r3 - beq .L441 + beq .L454 ldr r1, [r4, #4] - ldr r0, .L459+12 + ldr r0, .L472+12 bl sftl_printk mov r3, #-1 str r3, [r4] -.L441: +.L454: ldr r3, [r4, #8] - cbz r3, .L442 + cbz r3, .L455 ldr r2, [r3] ldr r3, [r7] cmp r2, r3 - beq .L442 + beq .L455 ldr r1, [r4, #4] - ldr r0, .L459+16 + ldr r0, .L472+16 bl sftl_printk mov r3, #-1 str r3, [r4] -.L442: +.L455: adds r5, r5, #1 adds r4, r4, #20 -.L439: +.L452: cmp r8, r5 - bne .L443 - b .L458 -.L445: + bne .L456 + b .L471 +.L458: movs r5, #0 - ldr r7, .L459+20 - ldr r10, .L459+24 - ldr fp, .L459+28 - b .L439 -.L460: + ldr r7, .L472+20 + ldr r10, .L472+24 + ldr fp, .L472+28 + b .L452 +.L473: .align 2 -.L459: +.L472: .word .LANCHOR0 .word .LANCHOR1+145 .word .LC1 .word .LC81 .word .LC82 .word check_buf - .word .LANCHOR0+3288 + .word .LANCHOR0+3292 .word .LC80 .fnend .size FlashProgPages, .-FlashProgPages @@ -3735,24 +3780,24 @@ FlashEraseBlocks: .save {r4, r5, r6, r7, r8, r9, lr} .pad #12 mov r7, r2 - ldr r4, .L472 + ldr r4, .L485 mov r5, r0 movs r6, #0 mov r9, #-1 ldrh r8, [r4, #12] -.L462: +.L475: cmp r6, r7 - bne .L468 + bne .L481 movs r0, #0 add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, r8, r9, pc} -.L468: +.L481: mov r2, sp add r1, sp, #4 mov r0, r5 bl l2p_addr_tran - ldr r3, [r4, #3248] + ldr r3, [r4, #3252] ldr r1, [sp, #4] ldrb r0, [sp] @ zero_extendqisi2 blx r3 @@ -3763,21 +3808,21 @@ FlashEraseBlocks: str r3, [r5] ldrh r3, [r4, #14] cmp r3, #4 - bne .L466 + bne .L479 ldr r1, [sp, #4] - ldr r3, [r4, #3248] + ldr r3, [r4, #3252] ldrb r0, [sp] @ zero_extendqisi2 add r1, r1, r8 blx r3 - cbz r0, .L466 + cbz r0, .L479 str r9, [r5] -.L466: +.L479: adds r6, r6, #1 adds r5, r5, #20 - b .L462 -.L473: + b .L475 +.L486: .align 2 -.L472: +.L485: .word .LANCHOR0 .fnend .size FlashEraseBlocks, .-FlashEraseBlocks @@ -3799,15 +3844,15 @@ FtlFreeSysBlkQueueIn: .save {r4, r5, r6, lr} mov r5, r0 cmp r3, r2 - bhi .L474 - ldr r4, .L483 + bhi .L487 + ldr r4, .L496 ldrh r3, [r4, #218] cmp r3, #1024 - beq .L474 - cbz r1, .L476 + beq .L487 + cbz r1, .L489 bl P2V_block_in_plane mov r6, r0 - ldr r0, [r4, #3800] + ldr r0, [r4, #3804] lsls r3, r5, #10 movs r2, #1 mov r1, r2 @@ -3820,7 +3865,7 @@ FtlFreeSysBlkQueueIn: ldr r3, [r4, #2560] adds r3, r3, #1 str r3, [r4, #2560] -.L476: +.L489: ldrh r3, [r4, #218] adds r3, r3, #1 strh r3, [r4, #218] @ movhi @@ -3830,11 +3875,11 @@ FtlFreeSysBlkQueueIn: ubfx r3, r3, #0, #10 strh r5, [r2, #220] @ movhi strh r3, [r4, #216] @ movhi -.L474: +.L487: pop {r4, r5, r6, pc} -.L484: +.L497: .align 2 -.L483: +.L496: .word .LANCHOR0 .fnend .size FtlFreeSysBlkQueueIn, .-FtlFreeSysBlkQueueIn @@ -3852,7 +3897,7 @@ FtlLowFormatEraseBlock: push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r10, #0 - ldr r4, .L530 + ldr r4, .L543 mov r7, r1 mov r6, r10 mov r5, r10 @@ -3861,82 +3906,82 @@ FtlLowFormatEraseBlock: sub sp, sp, #20 mov fp, r4 str r0, [sp] - str r0, [r4, #3804] -.L486: + str r0, [r4, #3808] +.L499: ldrh r1, [r4, #32] uxth r3, r10 cmp r1, r3 - bhi .L491 + bhi .L504 cmp r6, #0 - beq .L485 + beq .L498 mov r8, #0 mov r9, #20 mov r2, r6 movs r1, #0 - ldr r0, [r4, #3800] + ldr r0, [r4, #3804] bl FlashEraseBlocks -.L494: +.L507: uxth r3, r8 cmp r6, r3 - bhi .L496 + bhi .L509 cmp r7, #0 - beq .L513 + beq .L526 ldrh r3, [r4, #104] mov r10, #1 str r3, [sp, #4] lsrs r3, r3, #2 str r3, [sp, #8] -.L497: +.L510: mov r8, #0 mov fp, #20 -.L507: +.L520: mov r9, #0 mov r6, r9 -.L498: +.L511: ldrh r1, [r4, #32] uxth r3, r9 cmp r1, r3 - bhi .L502 - cbz r6, .L485 + bhi .L515 + cbz r6, .L498 mov r9, #0 movs r3, #1 mov r2, r10 mov r1, r6 - ldr r0, [r4, #3800] + ldr r0, [r4, #3804] bl FlashProgPages -.L504: +.L517: uxth r3, r9 cmp r6, r3 - bhi .L506 + bhi .L519 ldr r3, [sp, #8] add r8, r8, r3 ldr r3, [sp, #4] uxth r8, r8 cmp r3, r8 - bhi .L507 + bhi .L520 mov r8, #0 mov r9, #20 -.L508: +.L521: uxth r3, r8 cmp r6, r3 - bhi .L510 + bhi .L523 ldr r3, [sp] cmp r3, #63 - bls .L511 - cbz r7, .L485 -.L511: + bls .L524 + cbz r7, .L498 +.L524: mov r2, r6 mov r1, r10 - ldr r0, [r4, #3800] + ldr r0, [r4, #3804] bl FlashEraseBlocks -.L485: +.L498: mov r0, r5 add sp, sp, #20 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L491: +.L504: uxth r3, r10 - ldr r0, [r4, #3800] + ldr r0, [r4, #3804] movs r2, #0 mul r1, r9, r3 add r3, r3, r4 @@ -3945,19 +3990,19 @@ FtlLowFormatEraseBlock: ldrb r0, [r3, #60] @ zero_extendqisi2 bl V2P_block mov r8, r0 - cbz r7, .L487 + cbz r7, .L500 bl IsBlkInVendorPart - cbnz r0, .L488 -.L487: + cbnz r0, .L501 +.L500: mov r0, r8 bl FtlBbmIsBadBlock - cbnz r0, .L489 - ldr r1, [r4, #3800] + cbnz r0, .L502 + ldr r1, [r4, #3804] lsl r3, r8, #10 - ldr r0, [fp, #3812] + ldr r0, [fp, #3816] mla r1, r9, r6, r1 str r3, [r1, #4] - ldr r3, [r4, #3808] + ldr r3, [r4, #3812] str r3, [r1, #8] ldrh r3, [r4, #112] muls r3, r6, r3 @@ -3968,38 +4013,38 @@ FtlLowFormatEraseBlock: bic r3, r3, #3 add r3, r3, r0 str r3, [r1, #12] -.L488: +.L501: add r10, r10, #1 - b .L486 -.L489: + b .L499 +.L502: adds r5, r5, #1 uxth r5, r5 - b .L488 -.L496: + b .L501 +.L509: mul r3, r9, r8 - ldr r2, [r4, #3800] + ldr r2, [r4, #3804] adds r1, r2, r3 ldr r3, [r2, r3] adds r3, r3, #1 - bne .L495 + bne .L508 ldr r0, [r1, #4] adds r5, r5, #1 uxth r5, r5 ubfx r0, r0, #10, #16 bl FtlBbmMapBadBlock -.L495: +.L508: add r8, r8, #1 - b .L494 -.L513: + b .L507 +.L526: movs r3, #6 mov r10, r7 str r3, [sp, #8] movs r3, #1 str r3, [sp, #4] - b .L497 -.L502: + b .L510 +.L515: uxth r3, r9 - ldr r0, [r4, #3800] + ldr r0, [r4, #3804] movs r2, #0 mul r1, fp, r3 add r3, r3, r4 @@ -4008,21 +4053,21 @@ FtlLowFormatEraseBlock: ldrb r0, [r3, #60] @ zero_extendqisi2 bl V2P_block str r0, [sp, #12] - cbz r7, .L499 + cbz r7, .L512 bl IsBlkInVendorPart - cbnz r0, .L500 -.L499: + cbnz r0, .L513 +.L512: ldr r0, [sp, #12] bl FtlBbmIsBadBlock - cbnz r0, .L500 - ldr r1, [r4, #3800] + cbnz r0, .L513 + ldr r1, [r4, #3804] ldr r3, [sp, #12] - ldr r2, .L530 + ldr r2, .L543 mla r1, fp, r6, r1 - ldr r0, [r2, #3808] + ldr r0, [r2, #3812] add r3, r8, r3, lsl #10 str r3, [r1, #4] - ldr r3, [r4, #3816] + ldr r3, [r4, #3820] str r3, [r1, #8] ldrh r3, [r4, #112] muls r3, r6, r3 @@ -4033,40 +4078,40 @@ FtlLowFormatEraseBlock: bic r3, r3, #3 add r3, r3, r0 str r3, [r1, #12] -.L500: +.L513: add r9, r9, #1 - b .L498 -.L506: + b .L511 +.L519: mul r3, fp, r9 - ldr r2, [r4, #3800] + ldr r2, [r4, #3804] adds r1, r2, r3 ldr r3, [r2, r3] - cbz r3, .L505 + cbz r3, .L518 ldr r0, [r1, #4] adds r5, r5, #1 uxth r5, r5 ubfx r0, r0, #10, #16 bl FtlBbmMapBadBlock -.L505: +.L518: add r9, r9, #1 - b .L504 -.L510: - cbz r7, .L509 + b .L517 +.L523: + cbz r7, .L522 mul r3, r9, r8 - ldr r2, [r4, #3800] + ldr r2, [r4, #3804] adds r1, r2, r3 ldr r3, [r2, r3] - cbnz r3, .L509 + cbnz r3, .L522 ldr r0, [r1, #4] movs r1, #1 ubfx r0, r0, #10, #16 bl FtlFreeSysBlkQueueIn -.L509: +.L522: add r8, r8, #1 - b .L508 -.L531: + b .L521 +.L544: .align 2 -.L530: +.L543: .word .LANCHOR0 .fnend .size FtlLowFormatEraseBlock, .-FtlLowFormatEraseBlock @@ -4083,11 +4128,11 @@ FtlFreeSysBlkQueueOut: @ frame_needed = 0, uses_anonymous_args = 0 push {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} - ldr r4, .L539 - ldr r6, .L539+4 -.L533: + ldr r4, .L552 + ldr r6, .L552+4 +.L546: ldrh r1, [r4, #218] - cbz r1, .L534 + cbz r1, .L547 ldrh r3, [r4, #214] subs r1, r1, #1 strh r1, [r4, #218] @ movhi @@ -4099,7 +4144,7 @@ FtlFreeSysBlkQueueOut: mov r0, r5 bl P2V_block_in_plane mov r7, r0 - ldr r0, [r4, #3800] + ldr r0, [r4, #3804] lsls r3, r5, #10 movs r2, #1 mov r1, r2 @@ -4116,23 +4161,23 @@ FtlFreeSysBlkQueueOut: subs r3, r5, #1 uxth r3, r3 cmp r3, r2 - bhi .L535 + bhi .L548 mov r0, r5 pop {r3, r4, r5, r6, r7, pc} -.L534: - ldr r0, .L539+8 +.L547: + ldr r0, .L552+8 bl sftl_printk -.L537: - b .L537 -.L535: +.L550: + b .L550 +.L548: ldrh r2, [r4, #218] mov r1, r5 mov r0, r6 bl sftl_printk - b .L533 -.L540: + b .L546 +.L553: .align 2 -.L539: +.L552: .word .LANCHOR0 .word .LC84 .word .LC83 @@ -4155,16 +4200,16 @@ ftl_map_blk_alloc_new_blk: ldrh r1, [r0, #10] movs r3, #0 ldr r2, [r0, #12] -.L542: +.L555: uxth r5, r3 cmp r5, r1 - bcs .L545 + bcs .L558 mov r7, r2 adds r3, r3, #1 ldrh r6, [r7] adds r2, r2, #2 cmp r6, #0 - bne .L542 + bne .L555 bl FtlFreeSysBlkQueueOut subs r3, r0, #1 movw r2, #65533 @@ -4172,14 +4217,14 @@ ftl_map_blk_alloc_new_blk: mov r1, r0 strh r0, [r7] @ movhi cmp r3, r2 - bls .L543 - ldr r3, .L549 - ldr r0, .L549+4 + bls .L556 + ldr r3, .L562 + ldr r0, .L562+4 ldrh r2, [r3, #218] bl sftl_printk -.L544: - b .L544 -.L543: +.L557: + b .L557 +.L556: ldr r3, [r4, #28] strh r6, [r4, #2] @ movhi strh r5, [r4] @ movhi @@ -4188,20 +4233,20 @@ ftl_map_blk_alloc_new_blk: ldrh r3, [r4, #8] adds r3, r3, #1 strh r3, [r4, #8] @ movhi -.L545: +.L558: ldrh r3, [r4, #10] cmp r3, r5 - bhi .L547 - movw r2, #581 - ldr r1, .L549+8 - ldr r0, .L549+12 + bhi .L560 + movw r2, #603 + ldr r1, .L562+8 + ldr r0, .L562+12 bl sftl_printk -.L547: +.L560: movs r0, #0 pop {r3, r4, r5, r6, r7, pc} -.L550: +.L563: .align 2 -.L549: +.L562: .word .LANCHOR0 .word .LC85 .word .LANCHOR1+160 @@ -4225,8 +4270,8 @@ FlashTestBlk: mov r4, r0 .pad #92 sub sp, sp, #92 - bls .L553 - ldr r5, .L554 + bls .L566 + ldr r5, .L567 add r0, sp, #24 movs r2, #32 movs r1, #165 @@ -4256,17 +4301,17 @@ FlashTestBlk: movne r4, #1 negs r4, r4 bl FlashEraseBlocks -.L551: +.L564: mov r0, r4 add sp, sp, #92 @ sp needed pop {r4, r5, pc} -.L553: +.L566: movs r4, #0 - b .L551 -.L555: + b .L564 +.L568: .align 2 -.L554: +.L567: .word ftl_temp_buf .fnend .size FlashTestBlk, .-FlashTestBlk @@ -4284,42 +4329,42 @@ FlashGetBadBlockList: push {r4, r5, r6, lr} .save {r4, r5, r6, lr} mov r2, #256 - ldr r5, .L563 + ldr r5, .L576 mov r4, r0 mov r6, r1 movs r1, #255 bl memset - ldr r3, [r5, #3244] + ldr r3, [r5, #3248] mov r1, r6 mov r0, r4 blx r3 uxth r0, r0 cmp r0, #50 - bls .L557 + bls .L570 mov r2, #256 movs r1, #255 mov r0, r4 bl memset movs r0, #0 -.L557: +.L570: ldrh r3, [r5, #14] cmp r3, #4 - bne .L562 + bne .L575 add r1, r4, r0, lsl #1 mov r3, r4 -.L559: +.L572: cmp r3, r1 - bne .L560 -.L562: + bne .L573 +.L575: pop {r4, r5, r6, pc} -.L560: +.L573: ldrh r2, [r3] lsrs r2, r2, #1 strh r2, [r3], #2 @ movhi - b .L559 -.L564: + b .L572 +.L577: .align 2 -.L563: +.L576: .word .LANCHOR0 .fnend .size FlashGetBadBlockList, .-FlashGetBadBlockList @@ -4337,9 +4382,9 @@ ftl_memset: push {r4, lr} .save {r4, lr} mov r4, r0 - cbz r2, .L566 + cbz r2, .L579 bl memset -.L566: +.L579: mov r0, r4 pop {r4, pc} .fnend @@ -4358,12 +4403,12 @@ FtlMemInit: push {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} movw r3, #65535 - ldr r4, .L671 + ldr r4, .L684 movs r5, #0 movs r6, #12 movs r7, #20 ldrh r0, [r4, #106] - str r3, [r4, #3824] + str r3, [r4, #3828] strh r3, [r4, #3202] @ movhi strh r3, [r4, #3204] @ movhi movs r3, #32 @@ -4384,14 +4429,14 @@ FtlMemInit: str r5, [r4, #2560] str r5, [r4, #2564] str r5, [r4, #2568] - str r5, [r4, #3820] + str r5, [r4, #3824] str r5, [r4, #3160] - str r5, [r4, #3828] + str r5, [r4, #3832] str r5, [r4, #3152] - str r5, [r4, #3804] + str r5, [r4, #3808] strh r5, [r4, #3156] @ movhi - strh r5, [r4, #3206] @ movhi - strh r5, [r4, #3242] @ movhi + strh r5, [r4, #3210] @ movhi + strh r5, [r4, #3246] @ movhi bl ftl_malloc str r0, [r4, #3188] ldrh r0, [r4, #106] @@ -4403,16 +4448,16 @@ FtlMemInit: lsl r8, r7, #2 mov r0, r8 bl ftl_malloc - str r0, [r4, #3832] - mov r0, r7 - bl ftl_malloc str r0, [r4, #3836] - mov r0, r8 + mov r0, r7 bl ftl_malloc str r0, [r4, #3840] + mov r0, r8 + bl ftl_malloc + str r0, [r4, #3844] mov r0, r7 bl ftl_malloc - str r0, [r4, #3800] + str r0, [r4, #3804] mov r0, r7 bl ftl_malloc ldrh r3, [r4, #32] @@ -4423,23 +4468,23 @@ FtlMemInit: adds r3, r3, #1 str r3, [r4, #3184] bl ftl_malloc - str r0, [r4, #3280] - mov r0, r7 - bl ftl_malloc - str r0, [r4, #3844] + str r0, [r4, #3284] mov r0, r7 bl ftl_malloc str r0, [r4, #3848] + mov r0, r7 + bl ftl_malloc + str r0, [r4, #3852] ldr r0, [r4, #3184] muls r0, r7, r0 bl ftl_malloc str r0, [r4, #3172] mov r0, r7 bl ftl_malloc - str r0, [r4, #3816] + str r0, [r4, #3820] mov r0, r7 bl ftl_malloc - str r0, [r4, #3808] + str r0, [r4, #3812] ldr r0, [r4, #3184] muls r0, r6, r0 bl ftl_malloc @@ -4449,11 +4494,11 @@ FtlMemInit: muls r7, r3, r7 mov r0, r7 bl ftl_malloc - str r0, [r4, #3284] + str r0, [r4, #3288] lsls r0, r7, #2 bl ftl_malloc ldrh r3, [r4, #112] - str r0, [r4, #3812] + str r0, [r4, #3816] ldr r0, [r4, #3184] muls r0, r3, r0 bl ftl_malloc @@ -4461,24 +4506,24 @@ FtlMemInit: ldrh r0, [r4, #42] lsls r0, r0, #1 uxth r0, r0 - strh r0, [r4, #3852] @ movhi + strh r0, [r4, #3856] @ movhi bl ftl_malloc - ldrh r3, [r4, #3852] - str r0, [r4, #3856] - ldr r0, .L671+4 + ldrh r3, [r4, #3856] + str r0, [r4, #3860] + ldr r0, .L684+4 addw r3, r3, #547 lsrs r3, r3, #9 and r0, r0, r3, lsl #9 - strh r3, [r4, #3852] @ movhi + strh r3, [r4, #3856] @ movhi bl ftl_malloc ldrh r7, [r4, #42] - str r0, [r4, #3860] + str r0, [r4, #3864] adds r0, r0, #32 str r0, [r4, #2328] lsls r7, r7, #1 mov r0, r7 bl ftl_malloc - str r0, [r4, #3864] + str r0, [r4, #3868] mov r0, r7 bl ftl_malloc ldr r7, [r4, #128] @@ -4486,10 +4531,10 @@ FtlMemInit: lsls r7, r7, #1 mov r0, r7 bl ftl_malloc - str r0, [r4, #3868] + str r0, [r4, #3872] mov r0, r7 bl ftl_malloc - str r0, [r4, #3872] + str r0, [r4, #3876] ldrh r0, [r4, #42] lsrs r0, r0, #3 adds r0, r0, #4 @@ -4502,28 +4547,28 @@ FtlMemInit: ldrh r0, [r4, #120] lsls r0, r0, #1 bl ftl_malloc - str r0, [r4, #3876] + str r0, [r4, #3880] ldrh r0, [r4, #120] lsls r0, r0, #2 bl ftl_malloc - str r0, [r4, #3880] + str r0, [r4, #3884] ldrh r0, [r4, #122] lsls r0, r0, #2 bl ftl_malloc ldrh r2, [r4, #122] mov r1, r5 - str r0, [r4, #3884] + str r0, [r4, #3888] add r5, r4, #180 lsls r2, r2, #2 bl ftl_memset ldrh r0, [r4, #136] lsls r0, r0, #2 bl ftl_malloc - str r0, [r4, #3888] + str r0, [r4, #3892] ldr r0, [r4, #128] lsls r0, r0, #2 bl ftl_malloc - str r0, [r4, #3892] + str r0, [r4, #3896] ldrh r0, [r4, #138] muls r0, r6, r0 bl ftl_malloc @@ -4533,7 +4578,7 @@ FtlMemInit: muls r0, r3, r0 bl ftl_malloc ldrh r3, [r4, #42] - str r0, [r4, #3896] + str r0, [r4, #3900] movs r0, #6 muls r0, r3, r0 bl ftl_malloc @@ -4542,153 +4587,153 @@ FtlMemInit: ldrh r3, [r4, #54] adds r0, r0, #31 asrs r0, r0, #5 - strh r0, [r4, #3900] @ movhi + strh r0, [r4, #3904] @ movhi muls r0, r3, r0 lsls r0, r0, #2 bl ftl_malloc - ldrh r2, [r4, #3900] + ldrh r2, [r4, #3904] movs r3, #1 ldrh r6, [r4, #54] str r0, [r4, #180] lsls r2, r2, #2 mov r1, r2 -.L571: +.L584: cmp r3, r6 - bcc .L572 - ldr r2, .L671+8 + bcc .L585 + ldr r2, .L684+8 movs r1, #0 add r3, r2, r3, lsl #2 adds r2, r2, #56 adds r3, r3, #24 -.L573: +.L586: cmp r2, r3 - bne .L574 - ldr r3, [r4, #3868] - cbnz r3, .L575 -.L577: - ldr r1, .L671+12 - ldr r0, .L671+16 + bne .L587 + ldr r3, [r4, #3872] + cbnz r3, .L588 +.L590: + ldr r1, .L684+12 + ldr r0, .L684+16 bl sftl_printk mov r0, #-1 pop {r4, r5, r6, r7, r8, pc} -.L572: +.L585: ldr r0, [r4, #180] adds r3, r3, #1 add r0, r0, r1 add r1, r1, r2 str r0, [r5, #4]! - b .L571 -.L574: + b .L584 +.L587: str r1, [r3, #4]! - b .L573 -.L672: + b .L586 +.L685: .align 2 -.L671: +.L684: .word .LANCHOR0 .word 33553920 .word .LANCHOR0+152 .word .LANCHOR1+186 .word .LC86 -.L575: - ldr r3, [r4, #3872] +.L588: + ldr r3, [r4, #3876] cmp r3, #0 - beq .L577 - ldr r3, [r4, #3888] - cmp r3, #0 - beq .L577 + beq .L590 ldr r3, [r4, #3892] cmp r3, #0 - beq .L577 - ldr r3, [r4, #2492] - cmp r3, #0 - beq .L577 + beq .L590 ldr r3, [r4, #3896] cmp r3, #0 - beq .L577 + beq .L590 + ldr r3, [r4, #2492] + cmp r3, #0 + beq .L590 + ldr r3, [r4, #3900] + cmp r3, #0 + beq .L590 ldr r3, [r4, #2316] cmp r3, #0 - beq .L577 + beq .L590 ldr r3, [r4, #180] cmp r3, #0 - beq .L577 + beq .L590 ldr r3, [r4, #2324] cmp r3, #0 - beq .L577 + beq .L590 ldr r3, [r4, #3188] cmp r3, #0 - beq .L577 + beq .L590 ldr r3, [r4, #3196] cmp r3, #0 - beq .L577 - ldr r3, [r4, #3832] - cmp r3, #0 - beq .L577 - ldr r3, [r4, #3840] - cmp r3, #0 - beq .L577 - ldr r3, [r4, #3800] - cmp r3, #0 - beq .L577 - ldr r3, [r4, #3180] - cmp r3, #0 - beq .L577 + beq .L590 ldr r3, [r4, #3836] cmp r3, #0 - beq .L577 - ldr r3, [r4, #3280] - cmp r3, #0 - beq .L577 + beq .L590 ldr r3, [r4, #3844] cmp r3, #0 - beq .L577 - ldr r3, [r4, #3848] + beq .L590 + ldr r3, [r4, #3804] cmp r3, #0 - beq .L577 - ldr r3, [r4, #3172] + beq .L590 + ldr r3, [r4, #3180] cmp r3, #0 - beq .L577 - ldr r3, [r4, #3816] + beq .L590 + ldr r3, [r4, #3840] cmp r3, #0 - beq .L577 - ldr r3, [r4, #3808] - cmp r3, #0 - beq .L577 - ldr r3, [r4, #3168] - cmp r3, #0 - beq .L577 + beq .L590 ldr r3, [r4, #3284] cmp r3, #0 - beq .L577 + beq .L590 + ldr r3, [r4, #3848] + cmp r3, #0 + beq .L590 + ldr r3, [r4, #3852] + cmp r3, #0 + beq .L590 + ldr r3, [r4, #3172] + cmp r3, #0 + beq .L590 + ldr r3, [r4, #3820] + cmp r3, #0 + beq .L590 ldr r3, [r4, #3812] cmp r3, #0 - beq .L577 + beq .L590 + ldr r3, [r4, #3168] + cmp r3, #0 + beq .L590 + ldr r3, [r4, #3288] + cmp r3, #0 + beq .L590 + ldr r3, [r4, #3816] + cmp r3, #0 + beq .L590 ldr r3, [r4, #3176] cmp r3, #0 - beq .L577 + beq .L590 ldr r3, [r4, #2328] cmp r3, #0 - beq .L577 - ldr r3, [r4, #3856] + beq .L590 + ldr r3, [r4, #3860] cmp r3, #0 - beq .L577 + beq .L590 ldr r3, [r4, #148] cmp r3, #0 - beq .L577 - ldr r3, .L673 - ldr r2, [r3, #3876] - cmp r2, #0 - beq .L577 + beq .L590 + ldr r3, .L686 ldr r2, [r3, #3880] cmp r2, #0 - beq .L577 - ldr r3, [r3, #3884] + beq .L590 + ldr r2, [r3, #3884] + cmp r2, #0 + beq .L590 + ldr r3, [r3, #3888] cmp r3, #0 - beq .L577 + beq .L590 movs r0, #0 pop {r4, r5, r6, r7, r8, pc} -.L674: +.L687: .align 2 -.L673: +.L686: .word .LANCHOR0 .fnend .size FtlMemInit, .-FtlMemInit @@ -4706,30 +4751,30 @@ FtlBbt2Bitmap: push {r4, r5, r6, r7, r8, r9, r10, lr} .save {r4, r5, r6, r7, r8, r9, r10, lr} mov r5, r0 - ldr r6, .L681 + ldr r6, .L694 mov r7, r1 subs r4, r5, #2 movw r8, #65535 - ldr r9, .L681+4 + ldr r9, .L694+4 addw r5, r5, #1022 - ldrh r2, [r6, #3900] + ldrh r2, [r6, #3904] movs r1, #0 - ldr r10, .L681+8 + ldr r10, .L694+8 mov r0, r7 lsls r2, r2, #2 bl ftl_memset -.L678: +.L691: ldrh r3, [r4, #2] cmp r3, r8 - beq .L675 + beq .L688 ldrh r2, [r6, #98] cmp r2, r3 - bhi .L677 + bhi .L690 movs r2, #74 mov r1, r9 mov r0, r10 bl sftl_printk -.L677: +.L690: ldrh r3, [r4, #2]! movs r2, #1 cmp r5, r4 @@ -4739,119 +4784,18 @@ FtlBbt2Bitmap: ldr r2, [r7, r1, lsl #2] orr r2, r2, r3 str r2, [r7, r1, lsl #2] - bne .L678 -.L675: + bne .L691 +.L688: pop {r4, r5, r6, r7, r8, r9, r10, pc} -.L682: +.L695: .align 2 -.L681: +.L694: .word .LANCHOR0 .word .LANCHOR1+197 .word .LC1 .fnend .size FtlBbt2Bitmap, .-FtlBbt2Bitmap .align 1 - .global load_l2p_region - .syntax unified - .thumb - .thumb_func - .fpu softvfp - .type load_l2p_region, %function -load_l2p_region: - .fnstart - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - push {r4, r5, r6, r7, r8, lr} - .save {r4, r5, r6, r7, r8, lr} - mov r6, r0 - ldr r4, .L689 - mov r8, r1 - ldrh r3, [r4, #136] - cmp r3, r0 - bcs .L684 - mov r2, #492 - ldr r1, .L689+4 - ldr r0, .L689+8 - bl sftl_printk -.L684: - ldr r3, [r4, #3888] - movs r5, #12 - ldr r7, [r3, r6, lsl #2] - cbnz r7, .L685 - mul r5, r5, r8 - ldr r3, [r4, #2492] - ldrh r2, [r4, #110] - movs r1, #255 - add r3, r3, r5 - ldr r0, [r3, #8] - bl ftl_memset - ldr r3, [r4, #2492] - strh r6, [r3, r5] @ movhi - ldr r3, [r4, #2492] - add r5, r5, r3 - str r7, [r5, #4] -.L686: - movs r0, #0 - pop {r4, r5, r6, r7, r8, pc} -.L685: - mul r5, r5, r8 - ldr r3, [r4, #2492] - movs r2, #1 - ldr r0, .L689+12 - mov r1, r2 - str r7, [r4, #3264] - add r3, r3, r5 - ldr r3, [r3, #8] - str r3, [r4, #3268] - ldr r3, [r4, #3284] - str r3, [r4, #3272] - bl FlashReadPages - ldr r8, [r4, #3272] - ldrh r3, [r8, #8] - cmp r3, r6 - beq .L687 - mov r2, r7 - mov r1, r6 - ldr r0, .L689+16 - bl sftl_printk - movs r3, #4 - ldr r1, [r4, #3272] - mov r2, r3 - ldr r0, .L689+20 - bl rknand_print_hex - ldrh r3, [r4, #136] - movs r2, #4 - ldr r1, [r4, #3888] - ldr r0, .L689+24 - bl rknand_print_hex -.L687: - ldrh r3, [r8, #8] - cmp r3, r6 - beq .L688 - movw r2, #513 - ldr r1, .L689+4 - ldr r0, .L689+8 - bl sftl_printk -.L688: - ldr r3, [r4, #2492] - movs r1, #0 - adds r2, r3, r5 - str r1, [r2, #4] - strh r6, [r3, r5] @ movhi - b .L686 -.L690: - .align 2 -.L689: - .word .LANCHOR0 - .word .LANCHOR1+211 - .word .LC1 - .word .LANCHOR0+3260 - .word .LC87 - .word .LC88 - .word .LC89 - .fnend - .size load_l2p_region, .-load_l2p_region - .align 1 .global ftl_free_no_use_map_blk .syntax unified .thumb @@ -4875,37 +4819,37 @@ ftl_free_no_use_map_blk: mov r0, r5 bl ftl_memset movs r3, #0 -.L692: +.L697: ldrh r1, [r4, #6] uxth r2, r3 cmp r1, r2 - bhi .L696 + bhi .L701 ldrh fp, [r5] movs r6, #0 - ldr r2, .L705 + ldr r2, .L710 mov r10, r6 -.L697: +.L702: ldrh r1, [r4, #10] uxth r3, r6 cmp r1, r3 - bhi .L701 + bhi .L706 mov r0, r10 add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L696: +.L701: uxth r2, r3 ldr r1, [r6, r2, lsl #2] movs r2, #0 ubfx r1, r1, #10, #16 -.L693: +.L698: ldrh r7, [r4, #10] uxth r0, r2 cmp r7, r0 - bhi .L695 + bhi .L700 adds r3, r3, #1 - b .L692 -.L695: + b .L697 +.L700: uxth r0, r2 adds r2, r2, #1 ldrh r7, [r9, r0, lsl #1] @@ -4914,27 +4858,27 @@ ftl_free_no_use_map_blk: ldrheq r7, [r5, r0, lsl #1] addeq r7, r7, #1 strheq r7, [r5, r0, lsl #1] @ movhi - b .L693 -.L701: + b .L698 +.L706: ldrh r1, [r4] uxth r7, r6 cmp r1, r3 - bne .L698 + bne .L703 ldrh r1, [r2, #104] ldrh r0, [r4, #2] cmp r0, r1 it cc strhcc r1, [r5, r7, lsl #1] @ movhi -.L698: +.L703: ldrh r8, [r5, r7, lsl #1] cmp fp, r8 itt hi movhi r10, r3 movhi fp, r8 cmp r8, #0 - bne .L700 + bne .L705 ldrh r0, [r9, r7, lsl #1] - cbz r0, .L700 + cbz r0, .L705 movs r1, #1 str r2, [sp, #4] bl FtlFreeSysBlkQueueIn @@ -4943,12 +4887,12 @@ ftl_free_no_use_map_blk: ldrh r3, [r4, #8] subs r3, r3, #1 strh r3, [r4, #8] @ movhi -.L700: - adds r6, r6, #1 - b .L697 -.L706: - .align 2 .L705: + adds r6, r6, #1 + b .L702 +.L711: + .align 2 +.L710: .word .LANCHOR0 .fnend .size ftl_free_no_use_map_blk, .-ftl_free_no_use_map_blk @@ -4970,14 +4914,14 @@ Ftl_write_map_blk_to_last_page: mov r4, r0 ldr r5, [r0, #12] cmp r3, r2 - bne .L708 + bne .L713 ldrh r3, [r0, #8] - cbz r3, .L709 - movw r2, #641 - ldr r1, .L717 - ldr r0, .L717+4 + cbz r3, .L714 + movw r2, #677 + ldr r1, .L722 + ldr r0, .L722+4 bl sftl_printk -.L709: +.L714: ldrh r3, [r4, #8] adds r3, r3, #1 strh r3, [r4, #8] @ movhi @@ -4989,22 +4933,22 @@ Ftl_write_map_blk_to_last_page: ldr r3, [r4, #28] adds r3, r3, #1 str r3, [r4, #28] -.L710: +.L715: movs r0, #0 pop {r3, r4, r5, r6, r7, pc} -.L708: +.L713: ldrh r6, [r5, r3, lsl #1] movs r1, #255 ldrh r3, [r0, #2] - ldr r5, .L717+8 + ldr r5, .L722+8 ldr r2, [r0, #28] ldr r7, [r0, #24] orr r3, r3, r6, lsl #10 - str r3, [r5, #3264] - ldr r3, [r5, #3280] str r3, [r5, #3268] ldr r3, [r5, #3284] str r3, [r5, #3272] + ldr r3, [r5, #3288] + str r3, [r5, #3276] str r2, [r3, #4] movw r2, #64245 strh r2, [r3, #8] @ movhi @@ -5012,50 +4956,50 @@ Ftl_write_map_blk_to_last_page: strh r6, [r3, #2] @ movhi strh r2, [r3] @ movhi ldrh r2, [r5, #104] - ldr r0, [r5, #3280] + ldr r0, [r5, #3284] lsls r2, r2, #3 bl ftl_memset movs r2, #0 mov r3, r2 -.L711: +.L716: ldrh r0, [r4, #6] uxth r1, r2 cmp r0, r1 - bhi .L713 + bhi .L718 movs r2, #1 movs r3, #0 mov r1, r2 - ldr r0, .L717+12 + ldr r0, .L722+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 .L710 -.L713: + b .L715 +.L718: uxth r1, r2 ldr r0, [r7, r1, lsl #2] cmp r6, r0, lsr #10 - bne .L712 - ldr r0, [r5, #3280] + bne .L717 + ldr r0, [r5, #3284] adds r3, r3, #1 uxth r3, r3 str r1, [r0, r3, lsl #3] ldr r0, [r7, r1, lsl #2] - ldr r1, [r5, #3280] + ldr r1, [r5, #3284] add r1, r1, r3, lsl #3 str r0, [r1, #4] -.L712: - adds r2, r2, #1 - b .L711 -.L718: - .align 2 .L717: - .word .LANCHOR1+227 + adds r2, r2, #1 + b .L716 +.L723: + .align 2 +.L722: + .word .LANCHOR1+211 .word .LC1 .word .LANCHOR0 - .word .LANCHOR0+3260 + .word .LANCHOR0+3264 .fnend .size Ftl_write_map_blk_to_last_page, .-Ftl_write_map_blk_to_last_page .align 1 @@ -5072,13 +5016,13 @@ FtlMapWritePage: 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 r7, .L738 - mov r8, r1 - mov r10, r2 + ldr r7, .L753 + mov r9, r1 + mov fp, r2 movs r6, #0 - ldr r9, .L738+20 + ldr r10, .L753+20 mov r5, r7 -.L720: +.L725: ldr r3, [r7, #2524] adds r3, r3, #1 str r3, [r7, #2524] @@ -5086,51 +5030,51 @@ FtlMapWritePage: ldrh r2, [r4, #2] subs r3, r3, #1 cmp r2, r3 - bge .L721 + bge .L726 ldrh r2, [r4] movw r3, #65535 cmp r2, r3 - bne .L722 -.L721: + bne .L727 +.L726: mov r0, r4 bl Ftl_write_map_blk_to_last_page -.L722: +.L727: ldrh r2, [r4] ldr r3, [r4, #12] ldrh r3, [r3, r2, lsl #1] - cbnz r3, .L723 - movw r2, #699 - mov r1, r9 - ldr r0, .L738+4 + cbnz r3, .L728 + movw r2, #735 + mov r1, r10 + ldr r0, .L753+4 bl sftl_printk -.L723: +.L728: ldrh r2, [r4] ldrh r3, [r4, #10] cmp r2, r3 - bcc .L724 - mov r2, #700 - mov r1, r9 - ldr r0, .L738+4 + bcc .L729 + mov r2, #736 + mov r1, r10 + ldr r0, .L753+4 bl sftl_printk -.L724: +.L729: ldrh r2, [r4] movs r1, #16 ldr r3, [r4, #12] - ldr r0, [r5, #3284] - ldrh fp, [r3, r2, lsl #1] + ldr r0, [r5, #3288] + ldrh r8, [r3, r2, lsl #1] ldrh r3, [r4, #2] - str r0, [r5, #3272] - str r10, [r5, #3268] - orr r3, r3, fp, lsl #10 - str r3, [r5, #3264] + str r0, [r5, #3276] + str fp, [r5, #3272] + orr r3, r3, r8, lsl #10 + str r3, [r5, #3268] bl __memzero - ldr r3, [r5, #3272] + ldr r3, [r5, #3276] ldr r2, [r4, #28] - ldr r0, .L738+8 - strh r8, [r3, #8] @ movhi + ldr r0, .L753+8 + strh r9, [r3, #8] @ movhi str r2, [r3, #4] ldrh r2, [r4, #4] - strh fp, [r3, #2] @ movhi + strh r8, [r3, #2] @ movhi strh r2, [r3] @ movhi movs r3, #1 mov r2, r3 @@ -5140,12 +5084,12 @@ FtlMapWritePage: adds r3, r3, #1 uxth r3, r3 strh r3, [r4, #2] @ movhi - ldr r2, [r5, #3260] - adds r2, r2, #1 - bne .L725 - ldr r1, [r5, #3264] + ldr r2, [r5, #3264] + adds r1, r2, #1 + bne .L730 + ldr r1, [r5, #3268] adds r6, r6, #1 - ldr r0, .L738+12 + ldr r0, .L753+12 uxth r6, r6 bl sftl_printk ldrh r3, [r4, #2] @@ -5155,39 +5099,166 @@ FtlMapWritePage: addls r3, r3, #-1 strhls r3, [r4, #2] @ movhi cmp r6, #3 - bls .L727 + bls .L732 mov r2, r6 - ldr r1, [r5, #3264] - ldr r0, .L738+16 + ldr r1, [r5, #3268] + ldr r0, .L753+16 bl sftl_printk -.L728: - b .L728 -.L727: +.L733: + b .L733 +.L732: ldr r3, [r4, #32] cmp r3, #0 - beq .L720 -.L737: - b .L737 -.L725: + beq .L725 +.L750: + b .L750 +.L730: + cbz r2, .L736 cmp r3, #1 - beq .L720 - ldr r2, [r5, #3264] + strh r8, [r4, #40] @ movhi + beq .L725 + cmp r2, #256 +.L752: + beq .L725 + ldr r2, [r5, #3268] movs r0, #0 ldr r3, [r4, #24] - str r2, [r3, r8, lsl #2] + str r2, [r3, r9, lsl #2] pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L739: +.L736: + cmp r3, #1 + b .L752 +.L754: .align 2 -.L738: +.L753: .word .LANCHOR0 .word .LC1 - .word .LANCHOR0+3260 - .word .LC90 - .word .LC91 - .word .LANCHOR1+258 + .word .LANCHOR0+3264 + .word .LC87 + .word .LC88 + .word .LANCHOR1+242 .fnend .size FtlMapWritePage, .-FtlMapWritePage .align 1 + .global load_l2p_region + .syntax unified + .thumb + .thumb_func + .fpu softvfp + .type load_l2p_region, %function +load_l2p_region: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + push {r4, r5, r6, r7, r8, lr} + .save {r4, r5, r6, r7, r8, lr} + mov r6, r0 + ldr r4, .L762 + mov r8, r1 + ldrh r3, [r4, #136] + cmp r3, r0 + bcs .L756 + mov r2, #510 + ldr r1, .L762+4 + ldr r0, .L762+8 + bl sftl_printk +.L756: + ldr r3, [r4, #3892] + movs r5, #12 + ldr r7, [r3, r6, lsl #2] + cbnz r7, .L757 + mul r5, r5, r8 + ldr r3, [r4, #2492] + ldrh r2, [r4, #110] + movs r1, #255 + add r3, r3, r5 + ldr r0, [r3, #8] + bl ftl_memset + ldr r3, [r4, #2492] + strh r6, [r3, r5] @ movhi + ldr r3, [r4, #2492] + add r5, r5, r3 + str r7, [r5, #4] +.L758: + movs r0, #0 + pop {r4, r5, r6, r7, r8, pc} +.L757: + mul r5, r5, r8 + ldr r3, [r4, #2492] + movs r2, #1 + ldr r0, .L762+12 + mov r1, r2 + str r7, [r4, #3268] + add r3, r3, r5 + ldr r3, [r3, #8] + str r3, [r4, #3272] + ldr r3, [r4, #3288] + str r3, [r4, #3276] + bl FlashReadPages + ldr r3, [r4, #3264] + ldr r8, [r4, #3276] + cmp r3, #256 + bne .L759 + mov r2, r7 + mov r1, r6 + ldr r0, .L762+16 + bl sftl_printk + lsrs r3, r7, #10 + mov r1, r6 + ldr r0, .L762+20 + strh r3, [r4, #3948] @ movhi + ldr r3, [r4, #2492] + add r3, r3, r5 + ldr r2, [r3, #8] + bl FtlMapWritePage +.L759: + ldrh r3, [r8, #8] + cmp r3, r6 + beq .L760 + mov r2, r7 + mov r1, r6 + ldr r0, .L762+24 + bl sftl_printk + movs r3, #4 + ldr r1, [r4, #3276] + mov r2, r3 + ldr r0, .L762+28 + bl rknand_print_hex + ldrh r3, [r4, #136] + movs r2, #4 + ldr r1, [r4, #3892] + ldr r0, .L762+32 + bl rknand_print_hex +.L760: + ldrh r3, [r8, #8] + cmp r3, r6 + beq .L761 + movw r2, #535 + ldr r1, .L762+4 + ldr r0, .L762+8 + bl sftl_printk +.L761: + ldr r3, [r4, #2492] + movs r1, #0 + adds r2, r3, r5 + str r1, [r2, #4] + strh r6, [r3, r5] @ movhi + b .L758 +.L763: + .align 2 +.L762: + .word .LANCHOR0 + .word .LANCHOR1+258 + .word .LC1 + .word .LANCHOR0+3264 + .word .LC89 + .word .LANCHOR0+3908 + .word .LC90 + .word .LC91 + .word .LC92 + .fnend + .size load_l2p_region, .-load_l2p_region + .align 1 .global ftl_map_blk_gc .syntax unified .thumb @@ -5203,101 +5274,152 @@ ftl_map_blk_gc: .pad #12 mov r4, r0 ldr r6, [r0, #12] - ldr r9, [r0, #24] + ldr r10, [r0, #24] bl ftl_free_no_use_map_blk - ldrh r3, [r4, #10] + ldrh ip, [r4, #10] ldrh r2, [r4, #8] - ldr r5, .L752 - subs r3, r3, #4 + ldrh r1, [r4, #40] + sub r3, ip, #4 + ldr r5, .L788 cmp r2, r3 - blt .L741 + bge .L765 + movw r3, #65535 + cmp r1, r3 + beq .L767 + ldrh r2, [r4, #2] + ldrh r3, [r5, #104] + cmp r2, r3 + bcc .L768 +.L765: + movw r3, #65535 uxth r0, r0 - ldrh r8, [r6, r0, lsl #1] - cmp r8, #0 - beq .L741 + cmp r1, r3 + beq .L769 + ldrh r3, [r4, #2] + ldrh r2, [r5, #104] + cmp r2, r3 + bls .L770 +.L769: + ldrh r9, [r6, r0, lsl #1] + lsls r2, r0, #1 + cmp r9, #0 + beq .L767 ldr r3, [r4, #32] - cbnz r3, .L741 - movs r2, #1 - str r2, [r4, #32] - strh r3, [r6, r0, lsl #1] @ movhi + cbnz r3, .L767 + movs r1, #1 + str r1, [r4, #32] + strh r3, [r6, r2] @ movhi ldrh r3, [r4, #8] ldrh r2, [r4, #2] subs r3, r3, #1 strh r3, [r4, #8] @ movhi ldrh r3, [r5, #104] cmp r2, r3 - bcc .L742 + bcc .L775 mov r0, r4 bl ftl_map_blk_alloc_new_blk -.L742: - ldr fp, .L752+12 +.L775: movs r6, #0 -.L743: - ldrh r3, [r4, #6] - uxth r10, r6 - cmp r3, r10 - bhi .L747 +.L776: + ldrh r2, [r4, #6] + uxth fp, r6 + cmp r2, fp + bhi .L783 movs r1, #1 - mov r0, r8 + mov r0, r9 bl FtlFreeSysBlkQueueIn movs r3, #0 str r3, [r4, #32] -.L741: +.L767: ldrh r2, [r4, #2] ldrh r3, [r5, #104] cmp r2, r3 - bcc .L748 + bcc .L768 mov r0, r4 bl ftl_map_blk_alloc_new_blk -.L748: +.L768: movs r0, #0 add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L747: +.L773: + ldrh r8, [r6, r2, lsl #1] + add lr, r2, #1 + cmp r8, r1 + beq .L771 + mov r2, lr +.L772: + uxth r7, r2 + cmp r7, ip + bcc .L773 + mov r7, r0 +.L771: + uxth r2, r2 + ldr r0, .L788+4 + ldrh r2, [r6, r2, lsl #1] + bl sftl_printk + movw r3, #65535 + mov r0, r7 + strh r3, [r4, #40] @ movhi + b .L769 +.L770: + movs r2, #0 + b .L772 +.L783: uxth r7, r6 - ldr r3, [r9, r7, lsl #2] - cmp r8, r3, lsr #10 - bne .L744 - ldr r3, [r5, #3844] - ldr r0, .L752+4 - str r3, [r5, #3268] - ldr r3, [r5, #3284] - str r3, [r5, #3272] - ldr r2, [r9, r7, lsl #2] + ldr r2, [r10, r7, lsl #2] + add r3, r10, r7, lsl #2 str r3, [sp, #4] - str r2, [r5, #3264] + cmp r9, r2, lsr #10 + bne .L777 + ldr r2, [r5, #3848] + ldr r8, [r5, #3288] + ldr r0, .L788+8 + str r2, [r5, #3272] + str r8, [r5, #3276] + ldr r2, [r10, r7, lsl #2] + str r2, [r5, #3268] movs r2, #1 mov r1, r2 bl FlashReadPages - ldr r3, [sp, #4] - ldrh r3, [r3, #8] - cmp r3, r10 - beq .L745 - movw r2, #613 - ldr r1, .L752+8 - mov r0, fp + ldrh r2, [r8, #8] + cmp r2, fp + beq .L778 + movw r2, #647 + ldr r1, .L788+12 + ldr r0, .L788+16 bl sftl_printk -.L745: - ldr r3, [r5, #3260] - adds r3, r3, #1 - bne .L746 +.L778: + ldr r2, [r5, #3264] + adds r2, r2, #1 + bne .L779 +.L781: + ldr r2, [sp, #4] movs r3, #0 - str r3, [r9, r7, lsl #2] -.L744: - adds r6, r6, #1 - b .L743 -.L746: - ldr r2, [r5, #3268] + str r3, [r2] +.L780: + b .L780 +.L779: + ldrh r2, [r8, #8] + cmp r2, fp + bne .L781 + ldrh r2, [r8] + ldrh r3, [r4, #4] + cmp r2, r3 + bne .L781 + ldr r2, [r5, #3272] mov r1, r7 mov r0, r4 bl FtlMapWritePage - b .L744 -.L753: +.L777: + adds r6, r6, #1 + b .L776 +.L789: .align 2 -.L752: +.L788: .word .LANCHOR0 - .word .LANCHOR0+3260 + .word .LC93 + .word .LANCHOR0+3264 .word .LANCHOR1+274 .word .LC1 .fnend @@ -5316,10 +5438,10 @@ flush_l2p_region: push {r3, r4, r5, lr} .save {r3, r4, r5, lr} movs r4, #12 - ldr r5, .L755 + ldr r5, .L791 muls r4, r0, r4 ldr r3, [r5, #2492] - add r0, r5, #3904 + addw r0, r5, #3908 adds r2, r3, r4 ldrh r1, [r3, r4] ldr r2, [r2, #8] @@ -5331,9 +5453,9 @@ flush_l2p_region: bic r3, r3, #-2147483648 str r3, [r4, #4] pop {r3, r4, r5, pc} -.L756: +.L792: .align 2 -.L755: +.L791: .word .LANCHOR0 .fnend .size flush_l2p_region, .-flush_l2p_region @@ -5351,7 +5473,7 @@ log2phys: push {r4, r5, r6, r7, r8, r9, r10, lr} .save {r4, r5, r6, r7, r8, r9, r10, lr} mov r7, r1 - ldr r4, .L771 + ldr r4, .L807 mov r9, r2 ldrh r5, [r4, #108] adds r3, r5, #7 @@ -5364,20 +5486,20 @@ log2phys: ands r5, r5, r0 cmp r0, r3 uxth r5, r5 - bcc .L758 - mov r2, #808 - ldr r1, .L771+4 - ldr r0, .L771+8 + bcc .L794 + movw r2, #847 + ldr r1, .L807+4 + ldr r0, .L807+8 bl sftl_printk -.L758: +.L794: ldrh r2, [r4, #138] movs r3, #0 ldr r1, [r4, #2492] mov r10, #12 -.L759: +.L795: uxth r6, r3 cmp r6, r2 - bcc .L764 + bcc .L800 bl select_l2p_ram_region mul r10, r10, r0 ldr r3, [r4, #2492] @@ -5386,44 +5508,44 @@ log2phys: add r2, r3, r10 movw r3, #65535 cmp r1, r3 - beq .L765 + beq .L801 ldr r3, [r2, #4] cmp r3, #0 - bge .L765 + bge .L801 bl flush_l2p_region -.L765: +.L801: mov r1, r6 mov r0, r8 bl load_l2p_region - b .L760 -.L764: + b .L796 +.L800: adds r3, r3, #1 mla r0, r10, r3, r1 ldrh r0, [r0, #-12] cmp r0, r8 - bne .L759 -.L760: + bne .L795 +.L796: movs r3, #12 cmp r9, #0 - bne .L761 + bne .L797 ldr r2, [r4, #2492] mla r3, r3, r6, r2 ldr r3, [r3, #8] ldr r3, [r3, r5, lsl #2] str r3, [r7] -.L762: +.L798: ldr r2, [r4, #2492] movs r3, #12 mla r6, r3, r6, r2 ldr r3, [r6, #4] adds r2, r3, #1 - beq .L768 + beq .L804 adds r3, r3, #1 str r3, [r6, #4] -.L768: +.L804: movs r0, #0 pop {r4, r5, r6, r7, r8, r9, r10, pc} -.L761: +.L797: muls r3, r6, r3 ldr r2, [r4, #2492] ldr r1, [r7] @@ -5436,10 +5558,10 @@ log2phys: ldr r2, [r3, #4] orr r2, r2, #-2147483648 str r2, [r3, #4] - b .L762 -.L772: + b .L798 +.L808: .align 2 -.L771: +.L807: .word .LANCHOR0 .word .LANCHOR1+289 .word .LC1 @@ -5460,41 +5582,41 @@ FtlReUsePrevPpa: .save {r4, r5, r6, r7, lr} .pad #12 mov r6, r0 - ldr r5, .L783 + ldr r5, .L819 ubfx r0, r1, #10, #16 str r1, [sp, #4] bl P2V_block_in_plane ldr r2, [r5, #2324] mov r7, r0 ldrh r3, [r2, r0, lsl #1] - cbnz r3, .L774 + cbnz r3, .L810 ldr r4, [r5, #2340] - cbz r4, .L775 + cbz r4, .L811 ldr r1, [r5, #2316] mov ip, #6 - ldr r2, .L783+4 + ldr r2, .L819+4 movw lr, #65535 ldrh r0, [r5, #2344] subs r4, r4, r1 asrs r4, r4, #1 muls r4, r2, r4 uxth r4, r4 -.L776: +.L812: uxth r2, r3 cmp r0, r2 - bls .L775 + bls .L811 cmp r4, r7 - bne .L777 + bne .L813 mov r1, r4 - ldr r0, .L783+8 + ldr r0, .L819+8 bl List_remove_node ldrh r3, [r5, #2344] - cbnz r3, .L778 - mov r2, #1688 - ldr r1, .L783+12 - ldr r0, .L783+16 + cbnz r3, .L814 + movw r2, #1737 + ldr r1, .L819+12 + ldr r0, .L819+16 bl sftl_printk -.L778: +.L814: ldrh r3, [r5, #2344] mov r0, r4 subs r3, r3, #1 @@ -5502,17 +5624,17 @@ FtlReUsePrevPpa: bl INSERT_DATA_LIST ldr r2, [r5, #2324] ldrh r3, [r2, r7, lsl #1] -.L774: +.L810: adds r3, r3, #1 strh r3, [r2, r7, lsl #1] @ movhi - b .L775 -.L777: + b .L811 +.L813: mul r4, ip, r4 adds r3, r3, #1 ldrh r4, [r1, r4] cmp r4, lr - bne .L776 -.L775: + bne .L812 +.L811: movs r2, #1 add r1, sp, #4 mov r0, r6 @@ -5520,9 +5642,9 @@ FtlReUsePrevPpa: add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, pc} -.L784: +.L820: .align 2 -.L783: +.L819: .word .LANCHOR0 .word -1431655765 .word .LANCHOR0+2340 @@ -5544,59 +5666,59 @@ ftl_scan_all_data: push {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} movs r5, #0 - ldr r6, .L799 + ldr r6, .L835 .pad #32 sub sp, sp, #32 movs r1, #0 - ldr r8, .L799+16 + ldr r8, .L835+16 mov r4, r6 - ldr r0, .L799+4 + ldr r0, .L835+4 bl sftl_printk -.L786: +.L822: ldr r3, [r6, #2504] cmp r5, r3 - bcc .L792 + bcc .L828 add sp, sp, #32 @ sp needed pop {r4, r5, r6, r7, r8, pc} -.L792: +.L828: movs r2, #0 add r1, sp, #28 mov r0, r5 bl log2phys ubfx r3, r5, #0, #11 - cbnz r3, .L787 + cbnz r3, .L823 ldr r2, [sp, #28] mov r1, r5 mov r0, r8 bl sftl_printk -.L787: +.L823: ldr r3, [sp, #28] adds r2, r3, #1 - beq .L789 - str r3, [r4, #3264] - movs r2, #0 - ldr r3, [r4, #3280] - movs r1, #1 - ldr r7, [r4, #3284] - ldr r0, .L799+8 + beq .L825 str r3, [r4, #3268] - str r5, [r4, #3276] - str r7, [r4, #3272] - str r2, [r4, #3260] + movs r2, #0 + ldr r3, [r4, #3284] + movs r1, #1 + ldr r7, [r4, #3288] + ldr r0, .L835+8 + str r3, [r4, #3272] + str r5, [r4, #3280] + str r7, [r4, #3276] + str r2, [r4, #3264] bl FlashReadPages - ldr r3, [r4, #3260] + ldr r3, [r4, #3264] cmp r3, #256 - beq .L790 + beq .L826 adds r3, r3, #1 - beq .L790 + beq .L826 ldr r3, [r7, #8] cmp r5, r3 - beq .L789 -.L790: - ldr r2, [r4, #3268] - ldr r3, [r4, #3272] - ldr r0, .L799+12 + beq .L825 +.L826: + ldr r2, [r4, #3272] + ldr r3, [r4, #3276] + ldr r0, .L835+12 ldr r1, [r2, #4] str r1, [sp, #16] mov r1, r5 @@ -5609,19 +5731,19 @@ ftl_scan_all_data: ldr r2, [r3, #4] str r2, [sp] ldr r3, [r3] - ldr r2, [r4, #3264] + ldr r2, [r4, #3268] bl sftl_printk -.L789: +.L825: adds r5, r5, #1 - b .L786 -.L800: + b .L822 +.L836: .align 2 -.L799: +.L835: .word .LANCHOR0 - .word .LC92 - .word .LANCHOR0+3260 .word .LC94 - .word .LC93 + .word .LANCHOR0+3264 + .word .LC96 + .word .LC95 .fnend .size ftl_scan_all_data, .-ftl_scan_all_data .align 1 @@ -5635,7 +5757,7 @@ FtlReadRefresh: .fnstart @ args = 0, pretend = 0, frame = 88 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L814 + ldr r3, .L850 push {r4, r5, r6, lr} .save {r4, r5, r6, lr} .pad #88 @@ -5643,17 +5765,17 @@ FtlReadRefresh: mov r4, r3 ldr r0, [r3, #2716] cmp r0, #0 - beq .L802 + beq .L838 ldr r1, [r3, #2720] ldr r2, [r3, #2504] cmp r1, r2 - bcs .L803 + bcs .L839 mov r5, #2048 -.L808: +.L844: ldr r0, [r4, #2720] ldr r3, [r4, #2504] cmp r0, r3 - bcs .L805 + bcs .L841 movs r2, #0 mov r1, sp bl log2phys @@ -5662,10 +5784,10 @@ FtlReadRefresh: adds r1, r2, #1 add r3, r3, #1 str r3, [r4, #2720] - beq .L806 + beq .L842 str r3, [sp, #20] add r0, sp, #88 - ldr r3, .L814+4 + ldr r3, .L850+4 movs r1, #1 str r2, [sp, #8] movs r2, #0 @@ -5676,54 +5798,54 @@ FtlReadRefresh: bl FlashReadPages ldr r3, [sp, #4] cmp r3, #256 - bne .L805 + bne .L841 ldr r0, [sp] ubfx r0, r0, #10, #16 bl P2V_block_in_plane bl FtlGcRefreshBlock -.L805: +.L841: mov r0, #-1 -.L801: +.L837: add sp, sp, #88 @ sp needed pop {r4, r5, r6, pc} -.L806: +.L842: subs r5, r5, #1 - bne .L808 - b .L805 -.L803: + bne .L844 + b .L841 +.L839: ldr r2, [r3, #2508] movs r0, #0 str r0, [r3, #2716] str r0, [r3, #2720] str r2, [r3, #2712] - b .L801 -.L802: + b .L837 +.L838: ldr r1, [r3, #2508] ldr r6, [r3, #2712] add r2, r1, #1048576 cmp r6, r2 - bhi .L811 + bhi .L847 ldr r2, [r3, #2564] lsrs r5, r2, #10 mov r2, #33554432 asrs r2, r2, r5 add r2, r2, r6 cmp r1, r2 - bhi .L811 + bhi .L847 ldrb r3, [r3, #2296] @ zero_extendqisi2 cmp r3, #0 - bne .L801 -.L811: + bne .L837 +.L847: movs r3, #1 movs r0, #0 str r3, [r4, #2716] str r0, [r4, #2720] str r1, [r4, #2712] - b .L801 -.L815: + b .L837 +.L851: .align 2 -.L814: +.L850: .word .LANCHOR0 .word ftl_temp_buf .fnend @@ -5743,120 +5865,120 @@ ftl_check_vpc: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 movs r4, #0 - ldr r6, .L840 - ldr r7, .L840+4 - ldr r1, .L840+8 + ldr r6, .L876 + ldr r7, .L876+4 + ldr r1, .L876+8 mov r5, r6 - ldr r0, .L840+12 + ldr r0, .L876+12 bl sftl_printk mov r1, #8192 - ldr r0, .L840+4 + ldr r0, .L876+4 bl __memzero -.L817: +.L853: ldr r3, [r6, #2504] cmp r4, r3 - bcc .L819 - ldr r8, .L840+4 + bcc .L855 + ldr r8, .L876+4 movs r4, #0 - ldr r10, .L840+24 + ldr r10, .L876+24 mov r7, r4 movw r9, #65535 -.L820: +.L856: ldrh r2, [r5, #40] uxth r3, r4 cmp r2, r3 - bhi .L822 + bhi .L858 ldr r4, [r5, #2340] - cbz r4, .L823 + cbz r4, .L859 ldr r3, [r5, #2316] movs r6, #0 ldrh r8, [r5, #2344] mov fp, #6 - ldr r9, .L840+4 + ldr r9, .L876+4 subs r4, r4, r3 - ldr r3, .L840+16 + ldr r3, .L876+16 asrs r4, r4, #1 - ldr r10, .L840+28 + ldr r10, .L876+28 muls r4, r3, r4 uxth r4, r4 -.L824: +.L860: uxth r3, r6 cmp r8, r3 - bls .L823 + bls .L859 ldr r3, [r5, #2324] ldrh r2, [r3, r4, lsl #1] - cbz r2, .L825 + cbz r2, .L861 movs r7, #1 ldrh r3, [r9, r4, lsl #1] mov r1, r4 mov r0, r10 bl sftl_printk -.L825: +.L861: mul r4, fp, r4 ldr r3, [r5, #2316] adds r6, r6, #1 ldrh r4, [r3, r4] movw r3, #65535 cmp r4, r3 - bne .L824 -.L823: - cbz r7, .L816 - movw r2, #2321 - ldr r1, .L840+8 - ldr r0, .L840+20 + bne .L860 +.L859: + cbz r7, .L852 + movw r2, #2373 + ldr r1, .L876+8 + ldr r0, .L876+20 bl sftl_printk -.L816: +.L852: add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L819: +.L855: movs r2, #0 add r1, sp, #4 mov r0, r4 bl log2phys ldr r0, [sp, #4] adds r3, r0, #1 - beq .L818 + beq .L854 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 -.L818: +.L854: adds r4, r4, #1 - b .L817 -.L822: + b .L853 +.L858: ldr r3, [r5, #2324] uxth r6, r4 ldrh r2, [r3, r6, lsl #1] ldrh r3, [r8, r6, lsl #1] cmp r2, r3 - beq .L821 + beq .L857 mov r1, r6 mov r0, r10 bl sftl_printk ldr r3, [r5, #2324] ldrh r3, [r3, r6, lsl #1] cmp r3, r9 - beq .L821 + beq .L857 ldrh r2, [r8, r6, lsl #1] cmp r2, r3 it hi movhi r7, #1 -.L821: +.L857: adds r4, r4, #1 - b .L820 -.L841: + b .L856 +.L877: .align 2 -.L840: +.L876: .word .LANCHOR0 .word check_vpc_table .word .LANCHOR1+314 - .word .LC95 + .word .LC97 .word -1431655765 .word .LC1 - .word .LC96 - .word .LC97 + .word .LC98 + .word .LC99 .fnend .size ftl_check_vpc, .-ftl_check_vpc .align 1 @@ -5874,41 +5996,41 @@ FtlMapBlkWriteDump_data: .save {r4, r5, r6, lr} mov r6, r0 ldr r3, [r0, #36] - cbz r3, .L842 + cbz r3, .L878 ldrh r5, [r0, #6] movs r3, #0 - ldr r4, .L846 + ldr r4, .L882 ldr r2, [r0, #24] str r3, [r0, #36] subs r5, r5, #1 - ldr r0, [r4, #3844] + ldr r0, [r4, #3848] uxth r5, r5 - ldr r1, [r4, #3284] - str r0, [r4, #3268] - str r1, [r4, #3272] + ldr r1, [r4, #3288] + str r0, [r4, #3272] + str r1, [r4, #3276] ldr r2, [r2, r5, lsl #2] - str r2, [r4, #3264] - cbz r2, .L844 + str r2, [r4, #3268] + cbz r2, .L880 movs r2, #1 - addw r0, r4, #3260 + add r0, r4, #3264 mov r1, r2 bl FlashReadPages -.L845: - ldr r2, [r4, #3268] +.L881: + ldr r2, [r4, #3272] mov r1, r5 mov r0, r6 pop {r4, r5, r6, lr} b FtlMapWritePage -.L844: +.L880: ldrh r2, [r4, #110] movs r1, #255 bl ftl_memset - b .L845 -.L842: + b .L881 +.L878: pop {r4, r5, r6, pc} -.L847: +.L883: .align 2 -.L846: +.L882: .word .LANCHOR0 .fnend .size FtlMapBlkWriteDump_data, .-FtlMapBlkWriteDump_data @@ -5926,24 +6048,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, .L929 + ldr r4, .L965 mov r1, r5 .pad #20 sub sp, sp, #20 ldr r2, [r4, #128] - ldr r0, [r4, #3892] - strh r5, [r4, #3944] @ movhi + ldr r0, [r4, #3896] + strh r5, [r4, #3952] @ movhi strh r5, [r4, #144] @ movhi lsls r2, r2, #2 bl ftl_memset ldr r2, [r4, #128] mov r1, r5 - ldr r0, [r4, #3868] + ldr r0, [r4, #3872] lsls r2, r2, #1 bl ftl_memset ldrh r2, [r4, #120] mov r1, r5 - ldr r0, [r4, #3880] + ldr r0, [r4, #3884] lsls r2, r2, #2 bl ftl_memset ldrh r2, [r4, #120] @@ -5956,23 +6078,23 @@ FtlScanSysBlk: str r3, [r4, #2576] str r3, [r4, #2580] str r3, [r4, #2584] -.L849: +.L885: ldrh r3, [r4, #42] cmp r3, r8 - bls .L891 + bls .L927 movs r5, #0 ldrh fp, [r4, #32] - ldr r9, [r4, #3832] + ldr r9, [r4, #3836] mov r7, r5 ldr r3, [r4, #3172] mov r10, #20 ldr r2, [r4, #3176] ldrh r6, [r4, #112] - b .L892 -.L852: + b .L928 +.L888: str r3, [sp, #8] mov r1, r8 - ldr r3, .L929+4 + ldr r3, .L965+4 str r2, [sp, #12] ldrb r0, [r3, r5] @ zero_extendqisi2 bl V2P_block @@ -5980,7 +6102,7 @@ FtlScanSysBlk: bl FtlBbmIsBadBlock ldr r3, [sp, #8] ldr r2, [sp, #12] - cbnz r0, .L850 + cbnz r0, .L886 ldr r1, [sp, #4] mla r0, r10, r7, r9 lsls r1, r1, #10 @@ -5995,41 +6117,41 @@ FtlScanSysBlk: bic r1, r1, #3 add r1, r1, r2 str r1, [r0, #12] -.L850: +.L886: adds r5, r5, #1 -.L892: +.L928: uxth r1, r5 cmp fp, r1 - bhi .L852 - cbnz r7, .L853 -.L890: + bhi .L888 + cbnz r7, .L889 +.L926: add r8, r8, #1 uxth r8, r8 - b .L849 -.L853: + b .L885 +.L889: mov r0, r9 mov r9, #0 movs r2, #1 mov r1, r7 bl FlashReadPages -.L854: +.L890: uxth r3, r9 cmp r7, r3 - bls .L890 + bls .L926 movs r3, #20 mul r10, r3, r9 - ldr r3, [r4, #3832] + ldr r3, [r4, #3836] add r2, r3, r10 ldr r3, [r3, r10] ldr r5, [r2, #4] ldr r6, [r2, #12] adds r3, r3, #1 ubfx r5, r5, #10, #16 - bne .L857 + bne .L893 mov fp, #16 movw r3, #65535 -.L859: - ldr r0, [r4, #3832] +.L895: + ldr r0, [r4, #3836] str r3, [sp, #4] add r0, r0, r10 ldr r2, [r0, #4] @@ -6041,215 +6163,215 @@ FtlScanSysBlk: ldrh r2, [r6] ldr r3, [sp, #4] cmp r2, r3 - bne .L856 - ldr r3, [r4, #3832] + bne .L892 + ldr r3, [r4, #3836] mov r2, #-1 str r2, [r3, r10] - ldr r3, [r4, #3832] + ldr r3, [r4, #3836] ldr r3, [r3, r10] cmp r3, r2 - bne .L857 -.L858: + bne .L893 +.L894: movs r1, #0 mov r0, r5 bl FtlFreeSysBlkQueueIn - b .L862 -.L856: - ldr r2, [r4, #3832] + b .L898 +.L892: + ldr r2, [r4, #3836] ldr r2, [r2, r10] adds r2, r2, #1 - bne .L857 + bne .L893 add fp, fp, #-1 uxth fp, fp cmp fp, #0 - bne .L859 - b .L858 -.L857: + bne .L895 + b .L894 +.L893: ldr r2, [r4, #2540] ldr r3, [r6, #4] adds r1, r2, #1 - beq .L860 + beq .L896 cmp r2, r3 - bhi .L861 -.L860: + bhi .L897 +.L896: adds r2, r3, #1 itt ne addne r2, r3, #1 strne r2, [r4, #2540] -.L861: +.L897: ldrh r2, [r6] movw r1, #61604 cmp r2, r1 - beq .L863 - bhi .L864 + beq .L899 + bhi .L900 movw r3, #61574 cmp r2, r3 - beq .L865 -.L862: + beq .L901 +.L898: add r9, r9, #1 - b .L854 -.L864: + b .L890 +.L900: movw r3, #61634 cmp r2, r3 - beq .L866 + beq .L902 movw r3, #65535 cmp r2, r3 - beq .L858 - b .L862 -.L866: - ldrh r2, [r4, #3944] + beq .L894 + b .L898 +.L902: + ldrh r2, [r4, #3952] ldr r3, [r4, #128] cmp r2, r3 - bls .L868 - movw r2, #1211 - ldr r1, .L929+8 - ldr r0, .L929+12 + bls .L904 + mov r2, #1256 + ldr r1, .L965+8 + ldr r0, .L965+12 bl sftl_printk -.L868: +.L904: ldr r1, [r4, #128] - ldrh r0, [r4, #3944] - ldr r10, [r4, #3892] + ldrh r0, [r4, #3952] + ldr r10, [r4, #3896] uxth ip, r1 add r3, ip, #-1 sub ip, ip, r0 add ip, ip, #-1 sxth r3, r3 sxth ip, ip -.L869: +.L905: cmp r3, ip - bgt .L875 + bgt .L911 cmp r3, #0 - bge .L907 - b .L862 -.L875: + bge .L943 + b .L898 +.L911: ldr r2, [r6, #4] lsl fp, r3, #2 mov lr, r2 ldr r2, [r10, r3, lsl #2] cmp lr, r2 - bls .L870 + bls .L906 ldr r2, [r10] - cbnz r2, .L871 + cbnz r2, .L907 cmp r1, r0 itt ne addne r0, r0, #1 - strhne r0, [r4, #3944] @ movhi -.L871: + strhne r0, [r4, #3952] @ movhi +.L907: uxth ip, r3 movs r2, #0 -.L872: +.L908: uxth r0, r2 sxth r1, r2 cmp ip, r0 - bhi .L873 - ldr r2, [r4, #3892] + bhi .L909 + ldr r2, [r4, #3896] cmp r3, #0 ldr r1, [r6, #4] str r1, [r2, fp] - ldr r2, [r4, #3868] + ldr r2, [r4, #3872] strh r5, [r2, r3, lsl #1] @ movhi - blt .L862 - ldrh r0, [r4, #3944] + blt .L898 + ldrh r0, [r4, #3952] ldr r2, [r4, #128] subs r2, r2, r0 subs r2, r2, #1 sxth r2, r2 cmp r3, r2 - bgt .L862 -.L907: - ldr r2, [r4, #3892] + bgt .L898 +.L943: + ldr r2, [r4, #3896] adds r0, r0, #1 ldr r1, [r6, #4] - strh r0, [r4, #3944] @ movhi + strh r0, [r4, #3952] @ movhi str r1, [r2, r3, lsl #2] - ldr r2, [r4, #3868] -.L927: + ldr r2, [r4, #3872] +.L963: strh r5, [r2, r3, lsl #1] @ movhi - b .L862 -.L873: - ldr r0, [r4, #3892] + b .L898 +.L909: + ldr r0, [r4, #3896] adds r2, r2, #1 add lr, r0, r1, lsl #2 ldr lr, [lr, #4] str lr, [r0, r1, lsl #2] - ldr r0, [r4, #3868] + ldr r0, [r4, #3872] add lr, r0, r1, lsl #1 ldrh lr, [lr, #2] strh lr, [r0, r1, lsl #1] @ movhi - b .L872 -.L870: + b .L908 +.L906: subs r3, r3, #1 sxth r3, r3 - b .L869 -.L930: + b .L905 +.L966: .align 2 -.L929: +.L965: .word .LANCHOR0 .word .LANCHOR0+60 .word .LANCHOR1+328 .word .LC1 -.L865: +.L901: ldrh r2, [r4, #144] ldrh r3, [r4, #120] cmp r2, r3 - bls .L878 - movw r2, #1252 - ldr r1, .L931 - ldr r0, .L931+4 + bls .L914 + movw r2, #1297 + ldr r1, .L967 + ldr r0, .L967+4 bl sftl_printk -.L878: +.L914: ldrh lr, [r4, #120] ldrh r0, [r4, #144] - ldr r10, [r4, #3880] + ldr r10, [r4, #3884] add ip, lr, #-1 sxth r3, ip sub ip, ip, r0 -.L879: +.L915: cmp r3, ip - ble .L884 + ble .L920 ldr r2, [r6, #4] lsl fp, r3, #2 ldr r1, [r10, r3, lsl #2] cmp r2, r1 - bls .L880 + bls .L916 ldr r2, [r10] - cbnz r2, .L881 + cbnz r2, .L917 cmp lr, r0 itt ne addne r0, r0, #1 strhne r0, [r4, #144] @ movhi -.L881: +.L917: uxth ip, r3 movs r2, #0 -.L882: +.L918: uxth r0, r2 sxth r1, r2 cmp ip, r0 - bhi .L883 - ldr r2, [r4, #3880] + bhi .L919 + ldr r2, [r4, #3884] ldr r1, [r6, #4] str r1, [r2, fp] ldr r2, [r4, #148] strh r5, [r2, r3, lsl #1] @ movhi -.L884: +.L920: cmp r3, #0 - blt .L862 + blt .L898 ldrh r2, [r4, #120] ldrh r1, [r4, #144] subs r2, r2, #1 subs r2, r2, r1 sxth r2, r2 cmp r3, r2 - bgt .L862 + bgt .L898 adds r1, r1, #1 - ldr r2, [r4, #3880] + ldr r2, [r4, #3884] strh r1, [r4, #144] @ movhi ldr r1, [r6, #4] str r1, [r2, r3, lsl #2] ldr r2, [r4, #148] - b .L927 -.L883: - ldr r0, [r4, #3880] + b .L963 +.L919: + ldr r0, [r4, #3884] adds r2, r2, #1 add lr, r0, r1, lsl #2 ldr lr, [lr, #4] @@ -6258,127 +6380,127 @@ FtlScanSysBlk: add lr, r0, r1, lsl #1 ldrh lr, [lr, #2] strh lr, [r0, r1, lsl #1] @ movhi - b .L882 -.L880: + b .L918 +.L916: subs r3, r3, #1 sxth r3, r3 - b .L879 -.L863: + b .L915 +.L899: ldrh r1, [r4, #2576] movw r2, #65535 cmp r1, r2 - bne .L886 + bne .L922 strh r5, [r4, #2576] @ movhi -.L928: +.L964: str r3, [r4, #2584] - b .L862 -.L886: + b .L898 +.L922: ldrh r0, [r4, #2580] cmp r0, r2 - beq .L887 + beq .L923 movs r1, #1 bl FtlFreeSysBlkQueueIn -.L887: +.L923: ldr r2, [r4, #2584] ldr r3, [r6, #4] cmp r2, r3 - bcs .L888 + bcs .L924 ldrh r3, [r4, #2576] strh r5, [r4, #2576] @ movhi strh r3, [r4, #2580] @ movhi ldr r3, [r6, #4] - b .L928 -.L888: + b .L964 +.L924: strh r5, [r4, #2580] @ movhi - b .L862 -.L891: - ldr r1, [r4, #3868] + b .L898 +.L927: + ldr r1, [r4, #3872] ldrh r3, [r1] - cbz r3, .L893 -.L896: + cbz r3, .L929 +.L932: ldr r1, [r4, #148] ldrh r2, [r1] cmp r2, #0 - beq .L894 -.L895: - ldrh r2, [r4, #3944] + beq .L930 +.L931: + ldrh r2, [r4, #3952] ldr r3, [r4, #128] cmp r2, r3 - bls .L926 - movw r2, #1377 - ldr r1, .L931 - ldr r0, .L931+4 + bls .L962 + movw r2, #1422 + ldr r1, .L967 + ldr r0, .L967+4 bl sftl_printk -.L926: +.L962: movs r0, #0 add sp, sp, #20 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L893: - ldrh r2, [r4, #3944] +.L929: + ldrh r2, [r4, #3952] cmp r2, #0 - beq .L896 + beq .L932 ldr r0, [r4, #128] -.L897: +.L933: sxth r2, r3 cmp r2, r0 - bcs .L896 + bcs .L932 ldrh r5, [r1, r2, lsl #1] adds r3, r3, #1 cmp r5, #0 - beq .L897 + beq .L933 mov r3, r2 movs r5, #0 -.L898: +.L934: ldr r1, [r4, #128] cmp r3, r1 - bcs .L896 - ldr r1, [r4, #3868] + bcs .L932 + ldr r1, [r4, #3872] subs r0, r3, r2 ldrh r6, [r1, r3, lsl #1] strh r6, [r1, r0, lsl #1] @ movhi - ldr r1, [r4, #3892] + ldr r1, [r4, #3896] ldr r6, [r1, r3, lsl #2] str r6, [r1, r0, lsl #2] - ldr r1, [r4, #3868] + ldr r1, [r4, #3872] strh r5, [r1, r3, lsl #1] @ movhi adds r3, r3, #1 sxth r3, r3 - b .L898 -.L894: + b .L934 +.L930: ldrh r3, [r4, #144] cmp r3, #0 - beq .L895 + beq .L931 ldrh r0, [r4, #120] -.L903: +.L939: sxth r3, r2 cmp r3, r0 mov r5, r3 - bge .L895 + bge .L931 ldrh r6, [r1, r3, lsl #1] adds r2, r2, #1 cmp r6, #0 - beq .L903 + beq .L939 movs r0, #0 -.L904: +.L940: ldrh r2, [r4, #120] cmp r3, r2 - bge .L895 + bge .L931 ldr r2, [r4, #148] subs r1, r3, r5 ldrh r6, [r2, r3, lsl #1] strh r6, [r2, r1, lsl #1] @ movhi - ldr r2, [r4, #3880] + ldr r2, [r4, #3884] ldr r6, [r2, r3, lsl #2] str r6, [r2, r1, lsl #2] ldr r2, [r4, #148] strh r0, [r2, r3, lsl #1] @ movhi adds r3, r3, #1 sxth r3, r3 - b .L904 -.L932: + b .L940 +.L968: .align 2 -.L931: +.L967: .word .LANCHOR1+328 .word .LC1 .fnend @@ -6404,7 +6526,7 @@ FtlMapTblRecovery: ldrh r10, [r0, #6] str r3, [sp, #4] ldr r3, [r0, #16] - ldr r5, .L960 + ldr r5, .L994 ldr r9, [r0, #12] lsl r2, r10, #2 str r3, [sp, #12] @@ -6412,13 +6534,13 @@ FtlMapTblRecovery: ldr r0, [sp, #4] str r3, [sp, #8] bl ftl_memset - ldr r3, [r5, #3280] + ldr r3, [r5, #3284] movs r2, #1 - ldr r6, [r5, #3284] + ldr r6, [r5, #3288] str r2, [r4, #36] - str r3, [r5, #3268] + str r3, [r5, #3272] movw r3, #65535 - str r6, [r5, #3272] + str r6, [r5, #3276] strh r3, [r4] @ movhi strh r3, [r4, #2] @ movhi movs r3, #0 @@ -6428,14 +6550,14 @@ FtlMapTblRecovery: ldr r3, [sp, #8] add fp, r3, #-1 mov r3, r5 -.L934: +.L970: ldr r1, [sp, #8] sxth r2, r8 cmp r2, r1 - bge .L951 + bge .L988 cmp r2, fp lsl r7, r2, #1 - bne .L935 + bne .L971 ldrh r0, [r9, fp, lsl #1] movs r1, #1 bl FtlGetLastWrittenPage @@ -6443,27 +6565,27 @@ FtlMapTblRecovery: add r7, r7, r9 strh r8, [r4] @ movhi sxth r9, r0 - ldr r8, .L960+4 + ldr r8, .L994+4 adds r0, r0, #1 strh r0, [r4, #2] @ movhi add r9, r9, #1 ldr r3, [r3, fp, lsl #2] mov fp, #0 str r3, [r4, #28] -.L936: +.L972: sxth r2, fp cmp r2, r9 - blt .L938 -.L951: + blt .L975 +.L988: mov r0, r4 bl ftl_free_no_use_map_blk ldrh r2, [r4, #2] ldrh r3, [r5, #104] cmp r2, r3 - bne .L940 + bne .L977 mov r0, r4 bl ftl_map_blk_alloc_new_blk -.L940: +.L977: mov r0, r4 bl ftl_map_blk_gc mov r0, r4 @@ -6472,120 +6594,124 @@ FtlMapTblRecovery: add sp, sp, #28 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L938: +.L975: ldrh r1, [r7] mov r0, r8 orr r2, r2, r1, lsl #10 - str r2, [r5, #3264] + str r2, [r5, #3268] movs r2, #1 mov r1, r2 bl FlashReadPages - ldr r2, [r5, #3260] + ldr r2, [r5, #3264] adds r2, r2, #1 - beq .L937 + beq .L973 ldrh r2, [r6, #8] cmp r10, r2 - bls .L937 - ldrh r1, [r4, #4] + bls .L974 ldrh r0, [r6] + ldrh r1, [r4, #4] cmp r0, r1 - ittt eq - ldreq r1, [r5, #3264] - ldreq r3, [sp, #4] - streq r1, [r3, r2, lsl #2] -.L937: + bne .L974 + ldr r1, [r5, #3268] + ldr r3, [sp, #4] + str r1, [r3, r2, lsl #2] +.L974: add fp, fp, #1 - b .L936 -.L935: - ldr r1, [r5, #3280] + b .L972 +.L973: + ldrh r2, [r7] + strh r2, [r4, #40] @ movhi + b .L974 +.L971: + ldr r1, [r5, #3284] str r3, [sp, #20] add r3, r9, r7 - ldr r0, .L960+4 - str r1, [r5, #3268] + ldr r0, .L994+4 + str r1, [r5, #3272] ldrh r1, [r9, r2, lsl #1] ldrh r2, [r5, #104] str r3, [sp, #16] subs r2, r2, #1 orr r2, r2, r1, lsl #10 - str r2, [r5, #3264] + str r2, [r5, #3268] movs r2, #1 mov r1, r2 bl FlashReadPages - ldr r2, [r5, #3260] + ldr r2, [r5, #3264] ldr r3, [sp, #20] adds r2, r2, #1 - beq .L953 + beq .L990 ldrh r1, [r6] ldrh r2, [r4, #4] cmp r1, r2 - bne .L953 + bne .L990 ldrh r1, [r6, #8] movw r2, #64245 cmp r1, r2 - beq .L942 -.L953: + beq .L979 +.L990: movs r7, #0 -.L943: +.L980: ldrh r1, [r3, #104] sxth r2, r7 cmp r2, r1 - bge .L949 + bge .L986 ldr r1, [sp, #16] - ldr r0, .L960+4 + ldr r0, .L994+4 str r3, [sp, #20] ldrh r1, [r1] orr r2, r2, r1, lsl #10 - str r2, [r3, #3264] + str r2, [r3, #3268] movs r2, #1 mov r1, r2 bl FlashReadPages ldr r3, [sp, #20] - ldr r2, [r3, #3260] + ldr r2, [r3, #3264] adds r2, r2, #1 - beq .L947 + beq .L984 ldrh r2, [r6, #8] cmp r10, r2 - bls .L947 + bls .L984 ldrh r0, [r6] ldrh r1, [r4, #4] cmp r0, r1 ittt eq - ldreq r1, [r3, #3264] + ldreq r1, [r3, #3268] ldreq r0, [sp, #4] streq r1, [r0, r2, lsl #2] -.L947: +.L984: adds r7, r7, #1 - b .L943 -.L942: + b .L980 +.L979: movs r0, #0 mov ip, #4 -.L944: +.L981: ldrh r1, [r5, #104] sxth r2, r0 subs r1, r1, #1 cmp r2, r1 - blt .L946 -.L949: + blt .L983 +.L986: add r8, r8, #1 - b .L934 -.L946: - ldr r7, [r5, #3280] + b .L970 +.L983: + ldr r7, [r5, #3284] ldr r1, [r7, r2, lsl #3] uxth lr, r1 cmp r10, lr - bls .L945 + bls .L982 add r2, ip, r2, lsl #3 ldr r2, [r7, r2] ldr r7, [sp, #4] str r2, [r7, lr, lsl #2] -.L945: +.L982: adds r0, r0, #1 - b .L944 -.L961: + b .L981 +.L995: .align 2 -.L960: +.L994: .word .LANCHOR0 - .word .LANCHOR0+3260 + .word .LANCHOR0+3264 .fnend .size FtlMapTblRecovery, .-FtlMapTblRecovery .align 1 @@ -6599,32 +6725,34 @@ FtlLoadVonderInfo: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r0, .L963 + ldr r0, .L997 push {r3, lr} .save {r3, lr} ldrh r3, [r0, #120] - strh r3, [r0, #3958] @ movhi + strh r3, [r0, #3966] @ movhi movw r3, #61574 - strh r3, [r0, #3952] @ movhi + strh r3, [r0, #3960] @ movhi ldrh r3, [r0, #144] - strh r3, [r0, #3956] @ movhi + strh r3, [r0, #3964] @ movhi ldrh r3, [r0, #122] - strh r3, [r0, #3954] @ movhi + strh r3, [r0, #3962] @ movhi ldr r3, [r0, #148] - addw r0, r0, #3948 + addw r0, r0, #3956 str r3, [r0, #12] - ldr r3, [r0, #-68] - str r3, [r0, #16] ldr r3, [r0, #-72] + str r3, [r0, #16] + ldr r3, [r0, #-76] str r3, [r0, #20] - ldr r3, [r0, #-64] + ldr r3, [r0, #-68] str r3, [r0, #24] + movw r3, #65535 + strh r3, [r0, #40] @ movhi bl FtlMapTblRecovery movs r0, #0 pop {r3, pc} -.L964: +.L998: .align 2 -.L963: +.L997: .word .LANCHOR0 .fnend .size FtlLoadVonderInfo, .-FtlLoadVonderInfo @@ -6642,48 +6770,49 @@ FtlL2PDataInit: push {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} movs r1, #0 - ldr r4, .L968 + ldr r4, .L1002 movs r6, #12 ldr r2, [r4, #128] - ldr r0, [r4, #3872] + ldr r0, [r4, #3876] lsls r2, r2, #1 bl ftl_memset ldrh r3, [r4, #110] movs r1, #255 ldrh r2, [r4, #138] - ldr r0, [r4, #3896] + ldr r0, [r4, #3900] muls r2, r3, r2 bl ftl_memset movs r2, #0 mov r3, r4 movw r1, #65535 mov r7, r2 -.L966: +.L1000: ldrh r4, [r3, #138] uxth r0, r2 adds r5, r2, #1 cmp r4, r0 - bhi .L967 + bhi .L1001 ldr r2, [r3, #128] - strh r1, [r3, #3906] @ movhi - strh r1, [r3, #3904] @ movhi - strh r2, [r3, #3914] @ movhi + strh r1, [r3, #3910] @ movhi + strh r1, [r3, #3908] @ movhi + strh r2, [r3, #3918] @ movhi movw r2, #61634 - strh r2, [r3, #3908] @ movhi - ldrh r2, [r3, #3944] strh r2, [r3, #3912] @ movhi + ldrh r2, [r3, #3952] + strh r1, [r3, #3948] @ movhi + strh r2, [r3, #3916] @ movhi ldrh r2, [r3, #136] - strh r2, [r3, #3910] @ movhi - ldr r2, [r3, #3868] - str r2, [r3, #3916] - ldr r2, [r3, #3892] - str r2, [r3, #3920] + strh r2, [r3, #3914] @ movhi ldr r2, [r3, #3872] + str r2, [r3, #3920] + ldr r2, [r3, #3896] str r2, [r3, #3924] - ldr r2, [r3, #3888] + ldr r2, [r3, #3876] str r2, [r3, #3928] + ldr r2, [r3, #3892] + str r2, [r3, #3932] pop {r3, r4, r5, r6, r7, pc} -.L967: +.L1001: uxth r2, r2 ldr r0, [r3, #2492] mul r4, r6, r2 @@ -6694,15 +6823,15 @@ FtlL2PDataInit: add r0, r0, r4 ldrh r4, [r3, #110] muls r2, r4, r2 - ldr r4, [r3, #3896] + ldr r4, [r3, #3900] bic r2, r2, #3 add r2, r2, r4 str r2, [r0, #8] mov r2, r5 - b .L966 -.L969: + b .L1000 +.L1003: .align 2 -.L968: +.L1002: .word .LANCHOR0 .fnend .size FtlL2PDataInit, .-FtlL2PDataInit @@ -6720,14 +6849,14 @@ FtlLoadMapInfo: push {r3, lr} .save {r3, lr} bl FtlL2PDataInit - ldr r0, .L971 + ldr r0, .L1005 bl FtlMapTblRecovery movs r0, #0 pop {r3, pc} -.L972: +.L1006: .align 2 -.L971: - .word .LANCHOR0+3904 +.L1005: + .word .LANCHOR0+3908 .fnend .size FtlLoadMapInfo, .-FtlLoadMapInfo .align 1 @@ -6744,18 +6873,17 @@ FtlVariablesInit: push {r3, r4, r5, lr} .save {r3, r4, r5, lr} movs r5, #0 - ldr r4, .L974 + ldr r4, .L1008 movw r3, #65535 mov r1, r5 ldrh r2, [r4, #120] - strh r3, [r4, #3992] @ movhi + strh r3, [r4, #4000] @ movhi mov r3, #-1 ldr r0, [r4, #148] - str r3, [r4, #4004] + str r3, [r4, #4012] lsls r2, r2, #1 - str r5, [r4, #3988] - str r5, [r4, #3996] - str r5, [r4, #4000] + str r5, [r4, #4004] + str r5, [r4, #4008] strh r5, [r4, #144] @ movhi bl ftl_memset ldrh r2, [r4, #42] @@ -6765,7 +6893,7 @@ FtlVariablesInit: bl ftl_memset ldrh r2, [r4, #42] mov r1, r5 - ldr r0, [r4, #3856] + ldr r0, [r4, #3860] lsls r2, r2, #1 bl ftl_memset addw r0, r4, #2268 @@ -6778,9 +6906,9 @@ FtlVariablesInit: bl FtlL2PDataInit mov r0, r5 pop {r3, r4, r5, pc} -.L975: +.L1009: .align 2 -.L974: +.L1008: .word .LANCHOR0 .fnend .size FtlVariablesInit, .-FtlVariablesInit @@ -6793,109 +6921,119 @@ FtlVariablesInit: .type SupperBlkListInit, %function SupperBlkListInit: .fnstart - @ args = 0, pretend = 0, frame = 8 + @ args = 0, pretend = 0, frame = 16 @ frame_needed = 0, uses_anonymous_args = 0 - push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr} + push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - .pad #12 - movs r6, #0 - ldr r4, .L987 + movs r5, #0 + ldr r4, .L1021 movs r2, #6 - mov r9, r6 - mov r7, r6 - movs r1, #0 + mov r9, r5 + mov r6, r5 + movw fp, #65535 + .pad #20 + sub sp, sp, #20 ldrh r3, [r4, #42] - add fp, r4, #60 + add r10, r4, #60 + movs r1, #0 ldr r0, [r4, #2316] muls r2, r3, r2 bl ftl_memset - str r6, [r4, #2340] - str r6, [r4, #2320] - str r6, [r4, #2332] - strh r6, [r4, #2336] @ movhi - strh r6, [r4, #2344] @ movhi -.L977: + str r5, [r4, #2340] + str r5, [r4, #2320] + str r5, [r4, #2332] + strh r5, [r4, #2336] @ movhi + strh r5, [r4, #2344] @ movhi +.L1011: ldrh r3, [r4, #40] - uxth r8, r6 + uxth r8, r5 cmp r8, r3 - bcs .L983 - mov r10, #0 - ldrh r2, [r4, #32] + bcs .L1018 ldrh r3, [r4, #102] - mov r5, r10 - b .L984 -.L979: + ldrh r2, [r4, #32] + str r3, [sp, #4] + movs r3, #0 + mov r7, r3 + b .L1019 +.L1013: + ldrb r0, [r10, r3] @ zero_extendqisi2 mov r1, r8 - ldrb r0, [fp, r10] @ zero_extendqisi2 - stm sp, {r2, r3} + str r2, [sp, #12] + str r3, [sp, #8] bl V2P_block bl FtlBbmIsBadBlock - ldm sp, {r2, r3} - cbnz r0, .L978 - add r5, r5, r3 - uxth r5, r5 -.L978: - add r10, r10, #1 -.L984: - uxth r1, r10 + ldr r3, [sp, #8] + ldr r2, [sp, #12] + cbnz r0, .L1012 + ldr r1, [sp, #4] + add r7, r7, r1 + uxth r7, r7 +.L1012: + adds r3, r3, #1 +.L1019: + uxth r1, r3 cmp r2, r1 - bhi .L979 - cbz r5, .L986 - mov r1, r5 + bhi .L1013 + uxth r3, r5 + cbz r7, .L1014 + mov r1, r7 + str r3, [sp, #4] mov r0, #32768 bl __aeabi_idiv -.L980: - ldr r2, [r4, #2316] - uxth r1, r6 - movs r3, #6 - mla r3, r3, r1, r2 - strh r0, [r3, #4] @ movhi - ldrh r3, [r4, #2348] - cmp r3, r8 - beq .L981 - ldrh r3, [r4, #2396] - cmp r3, r8 - beq .L981 - ldrh r3, [r4, #2444] - cmp r3, r8 - beq .L981 - ldr r3, [r4, #2324] - ldrh r3, [r3, r1, lsl #1] - cbnz r3, .L982 + ldr r3, [sp, #4] + uxth r7, r0 +.L1015: + ldr r1, [r4, #2316] + movs r2, #6 + mla r2, r2, r3, r1 + strh r7, [r2, #4] @ movhi + ldrh r2, [r4, #2348] + cmp r2, r8 + beq .L1016 + ldrh r2, [r4, #2396] + cmp r2, r8 + beq .L1016 + ldrh r2, [r4, #2444] + cmp r2, r8 + beq .L1016 + ldr r2, [r4, #2324] + ldrh r3, [r2, r3, lsl #1] + cbnz r3, .L1017 add r9, r9, #1 mov r0, r8 uxth r9, r9 bl INSERT_FREE_LIST -.L981: +.L1016: + adds r5, r5, #1 + b .L1011 +.L1014: + ldr r2, [r4, #2324] + strh fp, [r2, r3, lsl #1] @ movhi + b .L1015 +.L1017: adds r6, r6, #1 - b .L977 -.L986: - mov r0, r5 - b .L980 -.L982: - adds r7, r7, #1 mov r0, r8 - uxth r7, r7 + uxth r6, r6 bl INSERT_DATA_LIST - b .L981 -.L983: - strh r7, [r4, #2336] @ movhi - add r7, r7, r9 - cmp r7, r3 + b .L1016 +.L1018: + strh r6, [r4, #2336] @ movhi + add r6, r6, r9 + cmp r6, r3 strh r9, [r4, #2344] @ movhi - ble .L985 - movw r2, #2154 - ldr r1, .L987+4 - ldr r0, .L987+8 + ble .L1020 + movw r2, #2206 + ldr r1, .L1021+4 + ldr r0, .L1021+8 bl sftl_printk -.L985: +.L1020: movs r0, #0 - add sp, sp, #12 + add sp, sp, #20 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L988: +.L1022: .align 2 -.L987: +.L1021: .word .LANCHOR0 .word .LANCHOR1+342 .word .LC1 @@ -6915,7 +7053,7 @@ FtlGcPageVarInit: push {r4, lr} .save {r4, lr} movs r3, #0 - ldr r4, .L990 + ldr r4, .L1024 movs r1, #255 ldrh r2, [r4, #106] ldr r0, [r4, #3188] @@ -6931,9 +7069,9 @@ FtlGcPageVarInit: bl ftl_memset pop {r4, lr} b FtlGcBufInit -.L991: +.L1025: .align 2 -.L990: +.L1024: .word .LANCHOR0 .fnend .size FtlGcPageVarInit, .-FtlGcPageVarInit @@ -6948,7 +7086,7 @@ FtlGcScanTempBlk: .fnstart @ args = 0, pretend = 0, frame = 24 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1017 + ldr r3, .L1051 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #28 @@ -6958,31 +7096,31 @@ FtlGcScanTempBlk: ldrh r4, [r3, #4] movw r3, #65535 cmp r4, r3 - beq .L1011 - cbnz r4, .L993 -.L994: + beq .L1045 + cbnz r4, .L1027 +.L1028: bl FtlGcPageVarInit - b .L995 -.L1011: + b .L1029 +.L1045: movs r4, #0 -.L993: - ldr r3, .L1017+4 +.L1027: + ldr r3, .L1051+4 ldr r2, [sp, #8] ldrh r3, [r3, #102] cmp r3, r2 - beq .L994 -.L995: + beq .L1028 +.L1029: mov fp, #0 movw r8, #65535 -.L1005: +.L1039: ldrh r3, [r7] movs r0, #0 strb r0, [r7, #8] cmp r3, r8 - beq .L996 - ldr r5, .L1017+4 -.L1008: - ldr r3, [r5, #3832] + beq .L1030 + ldr r5, .L1051+4 +.L1042: + ldr r3, [r5, #3836] movs r2, #0 ldrh ip, [r5, #32] add lr, r7, #16 @@ -6996,35 +7134,35 @@ FtlGcScanTempBlk: str r3, [sp, #16] ldrh r3, [r5, #112] str r3, [sp, #20] -.L997: +.L1031: uxth r3, r2 cmp ip, r3 - bhi .L1001 + bhi .L1035 mov r9, #0 movs r2, #0 mov r1, r6 ldr r0, [sp, #4] bl FlashReadPages -.L1002: +.L1036: uxth r3, r9 cmp r6, r3 - bhi .L1006 + bhi .L1040 ldr r3, [sp, #8] add fp, fp, #1 adds r4, r4, #1 uxth r4, r4 cmp r3, fp - bls .L1007 -.L1009: + bls .L1041 +.L1043: ldrh r3, [r5, #102] cmp r3, r4 - bhi .L1008 + bhi .L1042 movs r0, #0 - b .L996 -.L1001: + b .L1030 +.L1035: ldrh r3, [lr], #2 cmp r3, r8 - beq .L998 + beq .L1032 ldr r1, [sp, #4] orr r3, r4, r3, lsl #10 mla r1, r9, r6, r1 @@ -7047,12 +7185,12 @@ FtlGcScanTempBlk: str r0, [r1, #8] add r3, r3, r10 str r3, [r1, #12] -.L998: +.L1032: adds r2, r2, #1 - b .L997 -.L1006: + b .L1031 +.L1040: movs r3, #20 - ldr r2, [r5, #3832] + ldr r2, [r5, #3836] mul r10, r3, r9 str r2, [sp, #16] add r3, r2, r10 @@ -7063,18 +7201,18 @@ FtlGcScanTempBlk: bl P2V_plane ldr r2, [sp, #16] ldr r2, [r2, r10] - cbnz r2, .L1003 + cbnz r2, .L1037 ldr r3, [sp, #12] add r9, r9, #1 ldr r1, [sp, #4] ldr r3, [r3, #12] ldrh r2, [r3] cmp r2, r8 - bne .L1004 + bne .L1038 movs r3, #1 - str r3, [r5, #4000] -.L996: - ldr r3, .L1017 + str r3, [r5, #4008] +.L1030: + ldr r3, .L1051 movw r2, #65535 strb r0, [r7, #6] mov r1, r4 @@ -7083,13 +7221,13 @@ FtlGcScanTempBlk: mov r2, r0 mov r0, r7 bl ftl_sb_update_avl_pages - b .L1010 -.L1004: + b .L1044 +.L1038: ldr r2, [r3, #8] ldr r0, [r3, #12] bl FtlGcUpdatePage - b .L1002 -.L1003: + b .L1036 +.L1037: ldrh r2, [r7] movs r4, #0 ldr r3, [r5, #2324] @@ -7098,25 +7236,25 @@ FtlGcScanTempBlk: bl INSERT_FREE_LIST strh r8, [r7] @ movhi bl FtlGcPageVarInit - b .L1005 -.L1007: - ldr r2, .L1017 + b .L1039 +.L1041: + ldr r2, .L1051 ldrh r3, [r2, #4] cmp r3, r8 - beq .L1009 + beq .L1043 add r3, r3, fp strh r3, [r2, #4] @ movhi ldrh r3, [r5, #102] cmp r3, r4 - bls .L1009 -.L1010: + bls .L1043 +.L1044: mov r0, #-1 add sp, sp, #28 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1018: +.L1052: .align 2 -.L1017: +.L1051: .word .LANCHOR2 .word .LANCHOR0 .fnend @@ -7151,27 +7289,27 @@ FtlBbmTblFlush: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 movs r5, #0 - ldr r4, .L1029 + ldr r4, .L1063 movs r1, #0 - ldr r0, [r4, #3280] + ldr r0, [r4, #3284] add r6, r4, #176 - ldr r3, [r4, #3284] + ldr r3, [r4, #3288] ldrh r2, [r4, #110] - str r0, [r4, #3268] - str r3, [r4, #3272] + str r0, [r4, #3272] + str r3, [r4, #3276] bl ftl_memset -.L1021: +.L1055: ldrh r3, [r4, #54] cmp r5, r3 - blt .L1022 - ldr r6, [r4, #3272] + blt .L1056 + ldr r6, [r4, #3276] movs r2, #16 movs r1, #255 - ldr r9, .L1029+12 - ldr r8, .L1029+4 + ldr r9, .L1063+12 + ldr r8, .L1063+4 movs r5, #0 mov r0, r6 - ldr r10, .L1029+16 + ldr r10, .L1063+16 bl memset movw r3, #61649 mov r7, r5 @@ -7186,24 +7324,24 @@ FtlBbmTblFlush: strh r3, [r6, #10] @ movhi ldr r3, [r4, #28] strh r3, [r6, #12] @ movhi -.L1023: - ldr r3, [r4, #3280] +.L1057: + ldr r3, [r4, #3284] mov fp, #0 ldrh r1, [r4, #152] ldrh r2, [r4, #154] - str r3, [r4, #3268] - ldr r3, [r4, #3284] - str fp, [r4, #3260] str r3, [r4, #3272] + ldr r3, [r4, #3288] + str fp, [r4, #3264] + str r3, [r4, #3276] orr r3, r2, r1, lsl #10 ldrh r0, [r6, #10] - str r3, [r4, #3264] + str r3, [r4, #3268] ldrh r3, [r4, #156] str r0, [sp] mov r0, r9 bl sftl_printk movs r3, #1 - ldr r0, .L1029+4 + ldr r0, .L1063+4 mov r2, r3 mov r1, r3 bl FlashProgPages @@ -7211,10 +7349,10 @@ FtlBbmTblFlush: ldrh r2, [r4, #154] subs r3, r3, #1 cmp r2, r3 - blt .L1024 + blt .L1058 ldr r3, [r4, #160] ldrh r2, [r4, #152] - ldr r0, [r4, #3800] + ldr r0, [r4, #3804] adds r3, r3, #1 strh fp, [r4, #154] @ movhi str r3, [r4, #160] @@ -7226,7 +7364,7 @@ FtlBbmTblFlush: strh r3, [r4, #152] @ movhi mov r1, r2 lsls r3, r3, #10 - str r3, [r4, #3264] + str r3, [r4, #3268] str r3, [r0, #4] bl FlashEraseBlocks movs r3, #1 @@ -7234,54 +7372,54 @@ FtlBbmTblFlush: mov r2, r3 mov r1, r3 bl FlashProgPages -.L1024: +.L1058: ldrh r3, [r4, #154] adds r3, r3, #1 strh r3, [r4, #154] @ movhi - ldr r3, [r4, #3260] + ldr r3, [r4, #3264] adds r3, r3, #1 - bne .L1025 + bne .L1059 adds r5, r5, #1 - ldr r1, [r4, #3264] + ldr r1, [r4, #3268] uxth r5, r5 mov r0, r10 bl sftl_printk cmp r5, #3 - bls .L1023 + bls .L1057 mov r2, r5 - ldr r1, [r4, #3264] - ldr r0, .L1029+8 + ldr r1, [r4, #3268] + ldr r0, .L1063+8 bl sftl_printk -.L1027: - b .L1027 -.L1022: - ldrh r2, [r4, #3900] - ldr r3, [r4, #3268] +.L1061: + b .L1061 +.L1056: + ldrh r2, [r4, #3904] + ldr r3, [r4, #3272] ldr r1, [r6, #4]! mul r0, r2, r5 lsls r2, r2, #2 adds r5, r5, #1 add r0, r3, r0, lsl #2 bl ftl_memcpy - b .L1021 -.L1028: + b .L1055 +.L1062: movs r7, #1 - b .L1023 -.L1025: + b .L1057 +.L1059: cmp r7, #0 - beq .L1028 + beq .L1062 movs r0, #0 add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1030: +.L1064: .align 2 -.L1029: +.L1063: .word .LANCHOR0 - .word .LANCHOR0+3260 + .word .LANCHOR0+3264 + .word .LC102 .word .LC100 - .word .LC98 - .word .LC99 + .word .LC101 .fnend .size FtlBbmTblFlush, .-FtlBbmTblFlush .align 1 @@ -7298,28 +7436,28 @@ allocate_data_superblock: push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r5, r0 - ldr r4, .L1066 + ldr r4, .L1100 .pad #20 sub sp, sp, #20 - ldr r9, .L1066+20 -.L1032: - ldr r3, .L1066 - ldr r2, .L1066 + ldr r9, .L1100+20 +.L1066: + ldr r3, .L1100 + ldr r2, .L1100 ldrh r3, [r3, #2344] ldrh r2, [r2, #2336] add r3, r3, r2 - ldr r2, .L1066 + ldr r2, .L1100 ldrh r2, [r2, #40] cmp r3, r2 - ble .L1033 - movw r2, #2585 + ble .L1067 + movw r2, #2654 mov r1, r9 - ldr r0, .L1066+4 + ldr r0, .L1100+4 bl sftl_printk -.L1033: - ldr r3, .L1066+8 +.L1067: + ldr r3, .L1100+8 cmp r5, r3 - bne .L1058 + bne .L1092 ldrh r3, [r4, #2344] ldr r1, [r4, #3160] mul r2, r1, r3 @@ -7327,21 +7465,21 @@ allocate_data_superblock: adds r1, r1, #1 add r1, r1, r2, lsr #2 uxth r1, r1 - cbz r1, .L1034 + cbz r1, .L1068 subs r1, r1, #1 uxth r1, r1 -.L1034: - ldr r0, .L1066+12 +.L1068: + ldr r0, .L1100+12 bl List_pop_index_node ldrh r3, [r4, #2344] mov r6, r0 uxth r8, r0 - cbnz r3, .L1035 - movw r2, #2594 + cbnz r3, .L1069 + movw r2, #2663 mov r1, r9 - ldr r0, .L1066+4 + ldr r0, .L1100+4 bl sftl_printk -.L1035: +.L1069: ldrh r3, [r4, #2344] mov r0, r5 subs r3, r3, #1 @@ -7349,7 +7487,7 @@ allocate_data_superblock: strh r8, [r5] @ movhi bl make_superblock ldrb r3, [r5, #7] @ zero_extendqisi2 - cbnz r3, .L1036 + cbnz r3, .L1070 ldr r3, [r4, #2324] uxth r6, r6 movw r2, #65535 @@ -7361,28 +7499,28 @@ allocate_data_superblock: add r3, r3, r2 ldrh r2, [r4, #40] cmp r3, r2 - ble .L1032 - movw r2, #2605 + ble .L1066 + movw r2, #2674 mov r1, r9 - ldr r0, .L1066+4 + ldr r0, .L1100+4 bl sftl_printk - b .L1032 -.L1058: + b .L1066 +.L1092: movs r1, #0 - b .L1034 -.L1036: + b .L1068 +.L1070: ldrh r2, [r4, #2336] ldrh r3, [r4, #2344] add r3, r3, r2 ldrh r2, [r4, #40] cmp r3, r2 - ble .L1038 - mov r2, #2608 + ble .L1072 + movw r2, #2677 mov r1, r9 - ldr r0, .L1066+4 + ldr r0, .L1100+4 bl sftl_printk -.L1038: - ldr r1, [r4, #3800] +.L1072: + ldr r1, [r4, #3804] mov r10, #20 ldrh r2, [r4, #32] add fp, r5, #16 @@ -7392,35 +7530,35 @@ allocate_data_superblock: mov ip, r7 mla r2, r10, r2, r1 str r2, [sp, #4] -.L1039: +.L1073: ldr r2, [sp, #4] cmp r2, r3 - bne .L1041 - cbnz r7, .L1042 - movw r2, #2619 + bne .L1075 + cbnz r7, .L1076 + mov r2, #2688 mov r1, r9 - ldr r0, .L1066+4 + ldr r0, .L1100+4 bl sftl_printk -.L1042: +.L1076: ldrh r3, [r4, #2588] cmp r3, r8 - bne .L1043 - movw r2, #2621 + bne .L1077 + movw r2, #2690 mov r1, r9 - ldr r0, .L1066+4 + ldr r0, .L1100+4 bl sftl_printk -.L1043: +.L1077: ldrb r3, [r5, #8] @ zero_extendqisi2 uxth r6, r6 ldr r2, [r4, #2328] cmp r3, #0 - bne .L1044 + bne .L1078 ldrh r3, [r2, r6, lsl #1] cmp r3, #0 - beq .L1045 + beq .L1079 ldrh r1, [r4, #92] add r3, r3, r1 -.L1065: +.L1099: strh r3, [r2, r6, lsl #1] @ movhi movs r1, #0 ldr r3, [r4, #2548] @@ -7428,7 +7566,7 @@ allocate_data_superblock: adds r3, r3, #1 str r3, [r4, #2548] bl ftl_set_blk_mode -.L1047: +.L1081: ldr r3, [r4, #2328] ldr r2, [r4, #2564] ldrh r0, [r4, #92] @@ -7441,66 +7579,64 @@ allocate_data_superblock: ldr r3, [r4, #2552] mla r0, r2, r0, r3 bl __aeabi_uidiv - ldr r2, [r4, #3860] - ldr r1, [r4, #3800] + ldr r2, [r4, #3864] + ldr r1, [r4, #3804] str r0, [r4, #2556] ldr r3, [r2, #16] - ldr r0, .L1066+16 + ldr r0, .L1100+16 adds r3, r3, #1 str r3, [r2, #16] movs r2, #20 mla r2, r2, r7, r1 adds r3, r1, #4 adds r2, r2, #24 -.L1049: +.L1083: adds r3, r3, #20 cmp r2, r3 - bne .L1050 + bne .L1084 ldrb r1, [r5, #8] @ zero_extendqisi2 mov r2, r7 - ldr r0, [r4, #3800] + ldr r0, [r4, #3804] mov r10, #0 bl FlashEraseBlocks mov r3, r10 movs r1, #20 -.L1051: +.L1085: uxth r2, r10 cmp r7, r2 - bhi .L1053 + bhi .L1087 cmp r3, #0 - ble .L1054 + ble .L1088 mov r0, r8 bl update_multiplier_value bl FtlBbmTblFlush -.L1054: +.L1088: ldrb r2, [r5, #7] @ zero_extendqisi2 cmp r2, #0 - bne .L1055 + bne .L1089 ldr r3, [r4, #2324] movw r2, #65535 - mov r0, r8 strh r2, [r3, r6, lsl #1] @ movhi - bl INSERT_DATA_LIST - b .L1032 -.L1041: + b .L1066 +.L1075: str ip, [r3, #8] movw lr, #65535 str ip, [r3, #12] ldrh r2, [r0], #2 cmp r2, lr - beq .L1040 + beq .L1074 mla lr, r10, r7, r1 adds r7, r7, #1 lsls r2, r2, #10 uxth r7, r7 str r2, [lr, #4] -.L1040: +.L1074: adds r3, r3, #20 - b .L1039 -.L1045: + b .L1073 +.L1079: movs r3, #2 - b .L1065 -.L1044: + b .L1099 +.L1078: ldrh r3, [r2, r6, lsl #1] mov r0, r8 adds r3, r3, #1 @@ -7509,19 +7645,19 @@ allocate_data_superblock: adds r3, r3, #1 str r3, [r4, #2552] bl ftl_set_blk_mode.part.6 - b .L1047 -.L1050: + b .L1081 +.L1084: ldr r1, [r3, #-20] ands r1, r1, r0 str r1, [r3, #-20] - b .L1049 -.L1053: + b .L1083 +.L1087: mul r2, r1, r10 - ldr r0, [r4, #3800] + ldr r0, [r4, #3804] add ip, r0, r2 ldr r2, [r0, r2] adds r0, r2, #1 - bne .L1052 + bne .L1086 ldr r0, [ip, #4] adds r3, r3, #1 str r1, [sp, #12] @@ -7536,11 +7672,11 @@ allocate_data_superblock: ldrb r2, [r5, #7] @ zero_extendqisi2 subs r2, r2, #1 strb r2, [r5, #7] -.L1052: +.L1086: add r10, r10, #1 add fp, fp, #2 - b .L1051 -.L1055: + b .L1085 +.L1089: ldrh r3, [r4, #102] strh r8, [r5] @ movhi smulbb r3, r3, r2 @@ -7557,22 +7693,22 @@ allocate_data_superblock: ldrh r1, [r5] strh r3, [r2, r1, lsl #1] @ movhi ldrh r3, [r5, #4] - cbz r3, .L1056 + cbz r3, .L1090 ldrb r3, [r5, #7] @ zero_extendqisi2 - cbnz r3, .L1057 -.L1056: - movw r2, #2674 - ldr r1, .L1066+20 - ldr r0, .L1066+4 + cbnz r3, .L1091 +.L1090: + movw r2, #2743 + ldr r1, .L1100+20 + ldr r0, .L1100+4 bl sftl_printk -.L1057: +.L1091: movs r0, #0 add sp, sp, #20 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1067: +.L1101: .align 2 -.L1066: +.L1100: .word .LANCHOR0 .word .LC1 .word .LANCHOR0+2444 @@ -7595,67 +7731,67 @@ FtlGcFreeBadSuperBlk: 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, .L1080 - ldrh r3, [r4, #3206] - cbz r3, .L1069 + ldr r4, .L1114 + ldrh r3, [r4, #3210] + cbz r3, .L1103 movs r7, #0 - addw r10, r4, #3208 -.L1070: + addw r10, r4, #3212 +.L1104: ldrh r2, [r4, #32] uxth r3, r7 cmp r2, r3 - bhi .L1076 + bhi .L1110 bl FtlGcReFreshBadBlk -.L1069: +.L1103: movs r0, #0 pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1076: +.L1110: uxtah r3, r4, r7 mov r1, r8 mov fp, #0 ldrb r0, [r3, #60] @ zero_extendqisi2 bl V2P_block mov r9, r0 -.L1071: - ldrh r3, [r4, #3206] +.L1105: + ldrh r3, [r4, #3210] uxth r5, fp cmp r3, r5 - bhi .L1075 + bhi .L1109 adds r7, r7, #1 - b .L1070 -.L1075: + b .L1104 +.L1109: uxth r6, fp add r3, r4, r6, lsl #1 - ldrh r3, [r3, #3208] + ldrh r3, [r3, #3212] cmp r3, r9 - bne .L1072 + bne .L1106 mov r1, r9 - ldr r0, .L1080+4 + ldr r0, .L1114+4 bl sftl_printk mov r0, r9 bl FtlBbmMapBadBlock bl FtlBbmTblFlush - ldrh r1, [r4, #3206] + ldrh r1, [r4, #3210] add r3, r10, r6, lsl #1 -.L1073: +.L1107: cmp r5, r1 - bcc .L1074 + bcc .L1108 subs r1, r1, #1 - strh r1, [r4, #3206] @ movhi -.L1072: + strh r1, [r4, #3210] @ movhi +.L1106: add fp, fp, #1 - b .L1071 -.L1074: + b .L1105 +.L1108: ldrh r0, [r3, #2]! adds r5, r5, #1 uxth r5, r5 strh r0, [r3, #-2] @ movhi - b .L1073 -.L1081: + b .L1107 +.L1115: .align 2 -.L1080: +.L1114: .word .LANCHOR0 - .word .LC101 + .word .LC103 .fnend .size FtlGcFreeBadSuperBlk, .-FtlGcFreeBadSuperBlk .align 1 @@ -7669,7 +7805,7 @@ update_vpc_list: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L1092 + ldr r2, .L1126 push {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r5, r0 @@ -7677,23 +7813,23 @@ update_vpc_list: ldr r3, [r2, #2324] ldrh r3, [r3, r0, lsl #1] cmp r3, #0 - bne .L1083 + bne .L1117 ldrh r1, [r2, #2588] cmp r1, r0 - bne .L1084 + bne .L1118 movw r3, #65535 strh r3, [r2, #2588] @ movhi -.L1085: +.L1119: mov r1, r5 - ldr r0, .L1092+4 + ldr r0, .L1126+4 bl List_remove_node ldrh r3, [r4, #2336] - cbnz r3, .L1087 - movw r2, #2744 - ldr r1, .L1092+8 - ldr r0, .L1092+12 + cbnz r3, .L1121 + movw r2, #2813 + ldr r1, .L1126+8 + ldr r0, .L1126+12 bl sftl_printk -.L1087: +.L1121: ldrh r3, [r4, #2336] mov r0, r5 subs r3, r3, #1 @@ -7706,34 +7842,34 @@ update_vpc_list: add r3, r3, r2 ldrh r2, [r4, #40] cmp r3, r2 - ble .L1091 - movw r2, #2747 - ldr r1, .L1092+8 - ldr r0, .L1092+12 + ble .L1125 + mov r2, #2816 + ldr r1, .L1126+8 + ldr r0, .L1126+12 bl sftl_printk -.L1091: +.L1125: movs r3, #1 - b .L1082 -.L1084: + b .L1116 +.L1118: ldrh r1, [r2, #2348] cmp r1, r0 - beq .L1082 + beq .L1116 ldrh r1, [r2, #2396] cmp r1, r0 - beq .L1082 + beq .L1116 ldrh r2, [r2, #2444] cmp r2, r0 - bne .L1085 -.L1082: + bne .L1119 +.L1116: mov r0, r3 pop {r3, r4, r5, pc} -.L1083: +.L1117: bl List_update_data_list movs r3, #0 - b .L1082 -.L1093: + b .L1116 +.L1127: .align 2 -.L1092: +.L1126: .word .LANCHOR0 .word .LANCHOR0+2320 .word .LANCHOR1+385 @@ -7756,69 +7892,102 @@ decrement_vpc_count: .save {r4, r5, r6, lr} cmp r0, r3 mov r4, r0 - ldr r5, .L1103 - beq .L1095 + ldr r5, .L1140 + beq .L1129 ldr r3, [r5, #2324] ldrh r2, [r3, r0, lsl #1] - cbnz r2, .L1096 + cmp r2, #0 + bne .L1130 mov r1, r0 - ldr r0, .L1103+4 + ldr r0, .L1140+4 bl sftl_printk ldr r3, [r5, #2324] - ldrh r6, [r3, r4, lsl #1] - cbz r6, .L1097 -.L1101: - movs r6, #0 -.L1094: - mov r0, r6 - pop {r4, r5, r6, pc} -.L1097: - movw r2, #2762 -.L1102: - ldr r1, .L1103+8 - ldr r0, .L1103+12 + ldrh r3, [r3, r4, lsl #1] + cbnz r3, .L1131 + movw r2, #2831 + ldr r1, .L1140+8 + ldr r0, .L1140+12 bl sftl_printk - b .L1094 -.L1096: +.L1131: + ldr r3, [r5, #2324] + movs r2, #16 + mov r1, r4 + ldr r0, .L1140+16 + strh r2, [r3, r4, lsl #1] @ movhi + bl test_node_in_list + cbz r0, .L1132 + mov r1, r4 + ldr r0, .L1140+16 + bl List_remove_node + ldrh r3, [r5, #2344] + cbnz r3, .L1133 + movw r2, #2835 + ldr r1, .L1140+8 + ldr r0, .L1140+12 + bl sftl_printk +.L1133: + ldrh r3, [r5, #2344] + mov r0, r4 + subs r3, r3, #1 + strh r3, [r5, #2344] @ movhi + bl INSERT_DATA_LIST + ldr r3, [r5, #2324] + mov r1, r4 + ldr r0, .L1140+20 + ldrh r2, [r3, r4, lsl #1] + bl sftl_printk +.L1132: + mov r0, r4 + bl FtlGcRefreshBlock +.L1136: + movs r6, #0 + b .L1128 +.L1130: subs r2, r2, #1 strh r2, [r3, r0, lsl #1] @ movhi -.L1095: - ldrh r0, [r5, #3992] +.L1129: + ldrh r0, [r5, #4000] movw r3, #65535 cmp r0, r3 - bne .L1099 - strh r4, [r5, #3992] @ movhi - b .L1101 -.L1099: + bne .L1135 + strh r4, [r5, #4000] @ movhi + b .L1136 +.L1135: cmp r4, r0 - beq .L1101 + beq .L1136 bl update_vpc_list ldr r2, [r5, #2316] adds r6, r0, #0 ldr r3, [r5, #2320] it ne movne r6, #1 - strh r4, [r5, #3992] @ movhi + strh r4, [r5, #4000] @ movhi subs r3, r3, r2 asrs r2, r3, #1 - ldr r3, .L1103+16 + ldr r3, .L1140+24 muls r3, r2, r3 ldr r2, [r5, #2324] uxth r1, r3 ldrh r2, [r2, r1, lsl #1] - cmp r2, #0 - bne .L1094 + cbnz r2, .L1128 cmp r4, r1 - beq .L1094 - movw r2, #2778 - b .L1102 -.L1104: + beq .L1128 + movw r2, #2856 + ldr r1, .L1140+8 + ldr r0, .L1140+12 + bl sftl_printk +.L1128: + mov r0, r6 + pop {r4, r5, r6, pc} +.L1141: .align 2 -.L1103: +.L1140: .word .LANCHOR0 - .word .LC102 + .word .LC104 .word .LANCHOR1+401 .word .LC1 + .word .LANCHOR0+2340 + .word .LC105 .word -1431655765 .fnend .size decrement_vpc_count, .-decrement_vpc_count @@ -7837,20 +8006,20 @@ FtlWriteDump_data: .save {r4, r5, r6, r7, r8, r9, r10, lr} .pad #24 sub sp, sp, #24 - ldr r4, .L1123 + ldr r4, .L1160 ldrh r2, [r4, #2352] cmp r2, #0 - beq .L1106 + beq .L1143 ldrb r3, [r4, #2356] @ zero_extendqisi2 cmp r3, #0 - bne .L1106 + bne .L1143 ldrb r1, [r4, #2355] @ zero_extendqisi2 ldrh r3, [r4, #102] muls r3, r1, r3 cmp r2, r3 - beq .L1106 + beq .L1143 ldrb r7, [r4, #2358] @ zero_extendqisi2 - cbnz r7, .L1105 + cbnz r7, .L1142 ldr r6, [r4, #2504] mov r2, r7 mov r1, sp @@ -7859,46 +8028,46 @@ FtlWriteDump_data: mov r0, r6 bl log2phys ldr r3, [sp] - ldr r5, [r4, #3284] - ldr r0, [r4, #3280] + ldr r5, [r4, #3288] + ldr r0, [r4, #3284] str r3, [sp, #8] adds r3, r3, #1 str r6, [sp, #20] str r0, [sp, #12] str r5, [sp, #16] str r7, [r5, #4] - beq .L1108 + beq .L1145 mov r2, r7 movs r1, #1 add r0, sp, #4 bl FlashReadPages -.L1109: - ldr r9, .L1123+4 +.L1146: + ldr r9, .L1160+4 movs r7, #0 lsl r8, r8, #2 mov r10, r7 movw r3, #61589 strh r3, [r5] @ movhi -.L1110: +.L1147: cmp r8, r7 - bne .L1114 -.L1111: + bne .L1151 +.L1148: movs r3, #1 -.L1122: +.L1159: strb r3, [r4, #2358] -.L1105: +.L1142: add sp, sp, #24 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, pc} -.L1108: +.L1145: ldrh r2, [r4, #110] movs r1, #255 bl ftl_memset - b .L1109 -.L1114: + b .L1146 +.L1151: ldrh r3, [r4, #2352] cmp r3, #0 - beq .L1111 + beq .L1148 ldr r3, [sp, #8] mov r0, r9 str r6, [r5, #8] @@ -7922,13 +8091,13 @@ FtlWriteDump_data: bl FlashProgPages ldrh r0, [r4, #2348] bl decrement_vpc_count - b .L1110 -.L1106: + b .L1147 +.L1143: movs r3, #0 - b .L1122 -.L1124: + b .L1159 +.L1161: .align 2 -.L1123: +.L1160: .word .LANCHOR0 .word .LANCHOR0+2348 .fnend @@ -7947,30 +8116,30 @@ l2p_flush: push {r4, r5, r6, lr} .save {r4, r5, r6, lr} movs r4, #0 - ldr r5, .L1129 + ldr r5, .L1166 movs r6, #12 bl FtlWriteDump_data -.L1126: +.L1163: ldrh r3, [r5, #138] uxth r0, r4 cmp r3, r0 - bhi .L1128 + bhi .L1165 movs r0, #0 pop {r4, r5, r6, pc} -.L1128: +.L1165: ldr r2, [r5, #2492] uxth r3, r4 mla r3, r6, r3, r2 ldr r3, [r3, #4] cmp r3, #0 - bge .L1127 + bge .L1164 bl flush_l2p_region -.L1127: +.L1164: adds r4, r4, #1 - b .L1126 -.L1130: + b .L1163 +.L1167: .align 2 -.L1129: +.L1166: .word .LANCHOR0 .fnend .size l2p_flush, .-l2p_flush @@ -7993,9 +8162,9 @@ FtlRecoverySuperblock: sub sp, sp, #52 mov fp, r0 cmp r3, r2 - beq .L1256 + beq .L1293 ldrh r3, [r0, #2] - ldr r4, .L1263 + ldr r4, .L1300 str r3, [sp, #8] ldrb r3, [r0, #6] @ zero_extendqisi2 ldr r1, [sp, #8] @@ -8003,32 +8172,32 @@ FtlRecoverySuperblock: ldrh r3, [r4, #102] cmp r3, r1 mov r3, #0 - bne .L1134 + bne .L1171 strh r3, [r0, #4] @ movhi -.L1261: +.L1298: strb r3, [fp, #6] -.L1256: +.L1293: movs r0, #0 add sp, sp, #52 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1134: +.L1171: ldrh r0, [r0, #16] -.L1135: +.L1172: cmp r0, r2 uxth r5, r3 add r3, r3, #1 - beq .L1136 + beq .L1173 movs r1, #1 bl FtlGetLastWrittenPage adds r7, r0, #1 mov r6, r0 - beq .L1137 + beq .L1174 ldr r3, [r4, #3172] movs r2, #0 ldrh lr, [r4, #32] movw r9, #65535 - ldr r0, [r4, #3832] + ldr r0, [r4, #3836] mov r10, #20 str r3, [sp, #4] ldrh r3, [r4, #110] @@ -8039,32 +8208,32 @@ FtlRecoverySuperblock: add r3, fp, #16 mov ip, r3 str r3, [sp, #20] -.L1138: +.L1175: uxth r3, r2 cmp lr, r3 - bhi .L1144 - ldr r5, .L1263 + bhi .L1181 + ldr r5, .L1300 movs r2, #0 mov r1, r4 movw r9, #65535 bl FlashReadPages ldr r3, [r5, #2544] uxth r2, r6 - ldr r8, [r5, #3832] + ldr r8, [r5, #3836] str r2, [sp, #12] subs r3, r3, #1 str r3, [sp, #4] mov r7, r8 movs r3, #0 -.L1145: +.L1182: uxth r2, r3 cmp r4, r2 - bhi .L1150 - bne .L1148 + bhi .L1187 + bne .L1185 adds r3, r6, #1 uxth r3, r3 str r3, [sp, #16] -.L1257: +.L1294: ldr r0, [r8, #4] ubfx r0, r0, #10, #16 bl P2V_plane @@ -8072,56 +8241,56 @@ FtlRecoverySuperblock: ldr r2, [sp, #16] str r0, [sp, #12] cmp r3, r2 - bne .L1152 + bne .L1189 ldrh r3, [sp, #16] strh r3, [fp, #2] @ movhi movs r3, #0 strb r3, [fp, #6] strh r3, [fp, #4] @ movhi -.L1152: +.L1189: ldr r3, [sp, #16] ldr r2, [sp, #8] cmp r3, r2 - bne .L1153 + bne .L1190 ldr r3, [sp, #12] ldr r2, [sp, #24] cmp r3, r2 - bne .L1153 + bne .L1190 ldr r1, [sp, #16] mov r2, r3 -.L1262: +.L1299: mov r0, fp bl ftl_sb_update_avl_pages - b .L1256 -.L1136: + b .L1293 +.L1173: uxth r1, r3 adds r1, r1, #8 ldrh r0, [fp, r1, lsl #1] - b .L1135 -.L1137: + b .L1172 +.L1174: ldr r3, [sp, #8] - cbz r3, .L1139 - movw r2, #1755 - ldr r1, .L1263+4 - ldr r0, .L1263+8 + cbz r3, .L1176 + movw r2, #1804 + ldr r1, .L1300+4 + ldr r0, .L1300+8 bl sftl_printk -.L1139: +.L1176: ldr r3, [sp, #24] - cbz r3, .L1140 + cbz r3, .L1177 cmp r5, r3 - beq .L1140 - movw r2, #1756 - ldr r1, .L1263+4 - ldr r0, .L1263+8 + beq .L1177 + movw r2, #1805 + ldr r1, .L1300+4 + ldr r0, .L1300+8 bl sftl_printk -.L1140: +.L1177: movs r3, #0 strh r3, [fp, #2] @ movhi - b .L1261 -.L1144: + b .L1298 +.L1181: ldrh r3, [ip], #2 cmp r3, r9 - beq .L1141 + beq .L1178 mla r1, r10, r4, r0 orr r3, r6, r3, lsl #10 str r3, [r1, #4] @@ -8143,56 +8312,56 @@ FtlRecoverySuperblock: str r5, [r1, #8] add r3, r3, r8 str r3, [r1, #12] -.L1141: +.L1178: adds r2, r2, #1 - b .L1138 -.L1150: + b .L1175 +.L1187: ldr r2, [r7] - cbnz r2, .L1146 + cbnz r2, .L1183 ldr r10, [r7, #12] ldr r2, [r10, #4] adds r0, r2, #1 - beq .L1147 + beq .L1184 ldr r1, [r5, #2544] mov r0, r2 bl ftl_cmp_data_ver - cbz r0, .L1147 + cbz r0, .L1184 adds r2, r2, #1 str r2, [r5, #2544] -.L1147: +.L1184: ldr r2, [r10] adds r2, r2, #1 - bne .L1149 -.L1148: + bne .L1186 +.L1185: uxth r2, r6 uxth r3, r3 str r2, [sp, #16] movs r2, #20 mla r8, r2, r3, r8 - b .L1257 -.L1146: + b .L1294 +.L1183: ldr r9, [sp, #12] -.L1149: +.L1186: adds r3, r3, #1 adds r7, r7, #20 - b .L1145 -.L1153: + b .L1182 +.L1190: movw r3, #65535 cmp r9, r3 - bne .L1154 + bne .L1191 ldrb r3, [fp, #8] @ zero_extendqisi2 cmp r3, #0 - bne .L1155 -.L1154: - ldr r3, [r5, #4004] + bne .L1192 +.L1191: + ldr r3, [r5, #4012] uxth r8, r6 uxth r6, r6 - ldr r7, .L1263 + ldr r7, .L1300 movw r9, #65535 adds r3, r3, #1 itt eq ldreq r3, [sp, #4] - streq r3, [r5, #4004] + streq r3, [r5, #4012] ldr r3, [sp, #8] adds r3, r3, #7 cmp r6, r3 @@ -8200,133 +8369,133 @@ FtlRecoverySuperblock: subgt r4, r8, #7 ldrle r4, [sp, #8] uxthgt r4, r4 -.L1158: +.L1195: cmp r4, r8 - bhi .L1165 + bhi .L1202 movs r3, #0 ldrh lr, [r7, #32] - ldr r0, [r7, #3832] + ldr r0, [r7, #3836] mov r6, r3 ldr r1, [sp, #20] mov ip, #20 - b .L1166 -.L1160: + b .L1203 +.L1197: ldrh r2, [r1], #2 cmp r2, r9 - beq .L1159 + beq .L1196 mla r10, ip, r6, r0 adds r6, r6, #1 orr r2, r4, r2, lsl #10 uxth r6, r6 str r2, [r10, #4] -.L1159: +.L1196: adds r3, r3, #1 -.L1166: +.L1203: uxth r2, r3 cmp r2, lr - bcc .L1160 + bcc .L1197 movs r2, #0 mov r1, r6 bl FlashReadPages - ldr r3, [r7, #3832] + ldr r3, [r7, #3836] movs r2, #20 mla r6, r2, r6, r3 -.L1161: +.L1198: cmp r6, r3 - bne .L1164 + bne .L1201 adds r4, r4, #1 uxth r4, r4 - b .L1158 -.L1164: + b .L1195 +.L1201: ldr r2, [r3] - cbnz r2, .L1155 + cbnz r2, .L1192 ldr r2, [r3, #12] ldrh r1, [r2] cmp r1, r9 - beq .L1163 + beq .L1200 ldr r2, [r2, #4] adds r1, r2, #1 it ne - strne r2, [r7, #4004] -.L1163: + strne r2, [r7, #4012] +.L1200: adds r3, r3, #20 - b .L1161 -.L1165: + b .L1198 +.L1202: mov r3, #-1 - str r3, [r7, #4004] -.L1155: + str r3, [r7, #4012] +.L1192: movs r3, #1 - ldr r0, .L1263+12 - strh r3, [r5, #4008] @ movhi - ldr r4, .L1263 + ldr r0, .L1300+12 + strh r3, [r5, #4016] @ movhi + ldr r4, .L1300 bl FtlMapBlkWriteDump_data ldr r5, [sp, #8] -.L1167: +.L1204: ldrh r6, [r4, #32] movs r3, #0 - ldr r0, [r4, #3832] + ldr r0, [r4, #3836] mov r10, r3 ldr r1, [sp, #20] movw r7, #65535 mov ip, #20 -.L1168: +.L1205: uxth r2, r3 cmp r6, r2 - bhi .L1170 + bhi .L1207 movs r2, #0 mov r1, r10 bl FlashReadPages movs r3, #0 -.L1260: +.L1297: str r3, [sp, #28] ldrh r3, [sp, #28] cmp r10, r3 - bhi .L1200 + bhi .L1237 adds r5, r5, #1 ldrh r3, [r4, #102] uxth r5, r5 cmp r3, r5 - bne .L1167 + bne .L1204 ldrh r2, [r4, #32] movw r0, #65535 movs r3, #0 strh r5, [fp, #2] @ movhi strh r3, [fp, #4] @ movhi -.L1201: +.L1238: uxth r1, r3 cmp r1, r2 - bcs .L1256 + bcs .L1293 ldr r1, [sp, #20] ldrh r4, [r1], #2 cmp r4, r0 str r1, [sp, #20] add r1, r3, #1 - bne .L1261 + bne .L1298 mov r3, r1 - b .L1201 -.L1170: + b .L1238 +.L1207: ldrh r2, [r1], #2 cmp r2, r7 - beq .L1169 + beq .L1206 mla lr, ip, r10, r0 add r10, r10, #1 orr r2, r5, r2, lsl #10 uxth r10, r10 str r2, [lr, #4] -.L1169: +.L1206: adds r3, r3, #1 - b .L1168 -.L1264: + b .L1205 +.L1301: .align 2 -.L1263: +.L1300: .word .LANCHOR0 .word .LANCHOR1+421 .word .LC1 - .word .LANCHOR0+3904 -.L1200: + .word .LANCHOR0+3908 +.L1237: ldr r3, [sp, #28] movs r7, #20 - ldr r9, [r4, #3832] + ldr r9, [r4, #3836] muls r7, r3, r7 add r8, r9, r7 ldr r6, [r8, #4] @@ -8335,57 +8504,57 @@ FtlRecoverySuperblock: bl P2V_plane ldr r3, [sp, #8] cmp r5, r3 - bcc .L1172 - bne .L1173 + bcc .L1209 + bne .L1210 ldr r3, [sp, #24] cmp r3, r0 - bhi .L1172 -.L1173: + bhi .L1209 +.L1210: ldr r3, [sp, #16] cmp r5, r3 - bne .L1174 + bne .L1211 ldr r3, [sp, #12] cmp r3, r0 - beq .L1175 -.L1174: + beq .L1212 +.L1211: ldr r3, [r9, r7] adds r3, r3, #1 - beq .L1176 + beq .L1213 ldr r8, [r8, #12] movw r3, #61589 ldrh r2, [r8] cmp r2, r3 - beq .L1177 -.L1184: + beq .L1214 +.L1221: ldrh r0, [fp] -.L1259: +.L1296: bl decrement_vpc_count -.L1172: +.L1209: ldr r3, [sp, #28] adds r3, r3, #1 - b .L1260 -.L1177: + b .L1297 +.L1214: ldr r3, [r8, #4] adds r6, r3, #1 str r3, [sp, #4] - beq .L1178 + beq .L1215 ldr r1, [r4, #2544] mov r0, r3 bl ftl_cmp_data_ver - cbz r0, .L1178 + cbz r0, .L1215 ldr r3, [sp, #4] adds r3, r3, #1 str r3, [r4, #2544] -.L1178: +.L1215: ldrh r2, [r8] movw r3, #61589 cmp r2, r3 - beq .L1179 - movw r2, #1905 - ldr r1, .L1265 - ldr r0, .L1265+4 + beq .L1216 + movw r2, #1954 + ldr r1, .L1302 + ldr r0, .L1302+4 bl sftl_printk -.L1179: +.L1216: ldr r6, [r8, #8] add r1, sp, #40 ldr r3, [r8, #12] @@ -8393,207 +8562,207 @@ FtlRecoverySuperblock: mov r0, r6 str r3, [sp, #36] bl log2phys - ldr r1, [r4, #4004] + ldr r1, [r4, #4012] adds r0, r1, #1 - beq .L1180 + beq .L1217 ldr r0, [sp, #4] bl ftl_cmp_data_ver cmp r0, #0 - beq .L1180 + beq .L1217 ldr r3, [sp, #36] adds r2, r3, #1 - beq .L1181 - ldr r0, [r4, #3832] + beq .L1218 + ldr r0, [r4, #3836] movs r2, #0 movs r1, #1 add r0, r0, r7 str r3, [r0, #4] ldr r8, [r0, #12] bl FlashReadPages - ldr r2, [r4, #3832] + ldr r2, [r4, #3836] ldr r1, [r2, r7] adds r3, r2, r7 adds r1, r1, #1 - bne .L1182 -.L1183: + bne .L1219 +.L1220: mov r3, #-1 ldrh r0, [fp] str r3, [sp, #36] bl decrement_vpc_count -.L1191: +.L1228: ldr r0, [sp, #36] adds r1, r0, #1 - beq .L1172 -.L1204: + beq .L1209 +.L1241: ubfx r0, r0, #10, #16 bl P2V_block_in_plane ldrh r3, [r4, #40] mov r6, r0 cmp r3, r0 - bhi .L1196 - movw r2, #2006 - ldr r1, .L1265 - ldr r0, .L1265+4 + bhi .L1233 + movw r2, #2055 + ldr r1, .L1302 + ldr r0, .L1302+4 bl sftl_printk -.L1196: +.L1233: ldr r3, [r4, #2324] ldrh r3, [r3, r6, lsl #1] cmp r3, #0 - beq .L1197 + beq .L1234 mov r0, r6 - b .L1259 -.L1181: + b .L1296 +.L1218: ldr r3, [sp, #44] ldr r2, [sp, #40] cmp r2, r3 - bne .L1184 + bne .L1221 movs r2, #1 add r1, sp, #36 mov r0, r6 bl log2phys - b .L1184 -.L1182: + b .L1221 +.L1219: ldr r1, [r8, #8] cmp r6, r1 - bne .L1183 + bne .L1220 ldr r9, [r8, #4] - ldr r0, [r4, #4004] + ldr r0, [r4, #4012] mov r1, r9 bl ftl_cmp_data_ver cmp r0, #0 - beq .L1183 + beq .L1220 ldr r1, [sp, #40] ldr r0, [sp, #44] cmp r1, r0 - bne .L1186 -.L1189: + bne .L1223 +.L1226: ldr r1, [sp, #36] mov r0, r6 bl FtlReUsePrevPpa - b .L1183 -.L1186: + b .L1220 +.L1223: ldr r0, [sp, #36] cmp r1, r0 - beq .L1183 + beq .L1220 adds r0, r1, #1 - beq .L1187 + beq .L1224 str r1, [r3, #4] movs r2, #0 movs r1, #1 mov r0, r3 ldr r8, [r3, #12] bl FlashReadPages -.L1188: - ldr r3, [r4, #3832] +.L1225: + ldr r3, [r4, #3836] ldr r3, [r3, r7] adds r3, r3, #1 - beq .L1189 + beq .L1226 ldr r3, [r8, #4] - ldr r0, [r4, #4004] + ldr r0, [r4, #4012] mov r1, r3 bl ftl_cmp_data_ver cmp r0, #0 - beq .L1189 + beq .L1226 mov r1, r3 mov r0, r9 bl ftl_cmp_data_ver cmp r0, #0 - beq .L1183 - b .L1189 -.L1187: + beq .L1220 + b .L1226 +.L1224: str r1, [r2, r7] - b .L1188 -.L1180: + b .L1225 +.L1217: ldr r3, [sp, #44] ldr r2, [sp, #40] cmp r2, r3 - beq .L1191 + beq .L1228 movs r2, #1 add r1, sp, #44 mov r0, r6 bl log2phys ldr r8, [sp, #40] cmp r8, #-1 - beq .L1191 + beq .L1228 ldr r3, [sp, #36] cmp r8, r3 - beq .L1194 + beq .L1231 ubfx r0, r8, #10, #16 bl P2V_block_in_plane ldrh r3, [r4, #2348] cmp r3, r0 - beq .L1195 + beq .L1232 ldrh r3, [r4, #2396] cmp r3, r0 - beq .L1195 + beq .L1232 ldrh r3, [r4, #2444] cmp r3, r0 - bne .L1191 -.L1195: - ldr r0, [r4, #3832] + bne .L1228 +.L1232: + ldr r0, [r4, #3836] movs r2, #0 movs r1, #1 str r8, [r0, #4] ldr r7, [r0, #12] bl FlashReadPages - ldr r3, [r4, #3832] + ldr r3, [r4, #3836] ldr r3, [r3] adds r3, r3, #1 - beq .L1191 + beq .L1228 ldr r1, [r7, #4] ldr r0, [sp, #4] bl ftl_cmp_data_ver cmp r0, #0 - bne .L1191 + bne .L1228 movs r2, #1 add r1, sp, #40 mov r0, r6 bl log2phys - b .L1191 -.L1197: + b .L1228 +.L1234: mov r1, r6 - ldr r0, .L1265+8 + ldr r0, .L1302+8 bl sftl_printk - b .L1172 -.L1176: - ldr r3, [r4, #4012] + b .L1209 +.L1213: + ldr r3, [r4, #4020] cmp r3, #31 itttt ls addls r2, r4, r3, lsl #2 addls r3, r3, #1 - strls r3, [r4, #4012] - strls r6, [r2, #4016] + strls r3, [r4, #4020] + strls r6, [r2, #4024] ldrh r0, [fp] bl decrement_vpc_count - ldr r3, [r4, #4004] + ldr r3, [r4, #4012] adds r2, r3, #1 - bne .L1199 + bne .L1236 ldr r3, [sp, #4] -.L1258: - str r3, [r4, #4004] - b .L1172 -.L1199: +.L1295: + str r3, [r4, #4012] + b .L1209 +.L1236: ldr r2, [sp, #4] cmp r2, r3 - bcs .L1172 + bcs .L1209 mov r3, r2 - b .L1258 -.L1175: + b .L1295 +.L1212: ldrb r3, [sp, #12] @ zero_extendqisi2 mov r1, r5 strh r5, [fp, #2] @ movhi ldr r2, [sp, #12] strb r3, [fp, #6] - b .L1262 -.L1194: + b .L1299 +.L1231: mov r0, r8 - b .L1204 -.L1266: + b .L1241 +.L1303: .align 2 -.L1265: +.L1302: .word .LANCHOR1+421 .word .LC1 - .word .LC103 + .word .LC106 .fnend .size FtlRecoverySuperblock, .-FtlRecoverySuperblock .align 1 @@ -8611,15 +8780,15 @@ FtlSuperblockPowerLostFix: .save {r4, r5, r6, r7, r8, lr} .pad #24 sub sp, sp, #24 - ldr r4, .L1278 + ldr r4, .L1315 mov r3, #-1 mov r8, #0 movw r1, #61589 str r3, [sp, #20] mov r5, r0 - ldr r2, [r4, #3280] + ldr r2, [r4, #3284] movs r7, #7 - ldr r6, [r4, #3284] + ldr r6, [r4, #3288] str r2, [sp, #12] mvn r2, #2 str r6, [sp, #16] @@ -8629,19 +8798,19 @@ FtlSuperblockPowerLostFix: ldrh r2, [r0] strh r8, [r6] @ movhi strh r2, [r6, #2] @ movhi - ldr r2, [r4, #3280] + ldr r2, [r4, #3284] str r1, [r2] add r1, r1, #304087040 - ldr r2, [r4, #3280] + ldr r2, [r4, #3284] add r1, r1, #1269760 addw r1, r1, #1507 str r1, [r2, #4] -.L1268: +.L1305: subs r7, r7, #1 - beq .L1270 + beq .L1307 ldrh r3, [r5, #4] - cbnz r3, .L1269 -.L1270: + cbnz r3, .L1306 +.L1307: ldr r2, [r4, #2324] ldrh r1, [r5] ldrh r0, [r5, #4] @@ -8656,12 +8825,12 @@ FtlSuperblockPowerLostFix: add sp, sp, #24 @ sp needed pop {r4, r5, r6, r7, r8, pc} -.L1269: +.L1306: mov r0, r5 bl get_new_active_ppa str r0, [sp, #8] adds r0, r0, #1 - beq .L1270 + beq .L1307 ldr r3, [r4, #2544] movs r1, #1 add r0, sp, #4 @@ -8676,10 +8845,10 @@ FtlSuperblockPowerLostFix: bl FlashProgPages ldrh r0, [r5] bl decrement_vpc_count - b .L1268 -.L1279: + b .L1305 +.L1316: .align 2 -.L1278: +.L1315: .word .LANCHOR0 .fnend .size FtlSuperblockPowerLostFix, .-FtlSuperblockPowerLostFix @@ -8697,81 +8866,81 @@ FtlLoadBbt: push {r4, r5, r6, r7, r8, lr} .save {r4, r5, r6, r7, r8, lr} movw r8, #61649 - ldr r4, .L1309 - ldr r3, [r4, #3280] - addw r7, r4, #3260 - ldr r6, [r4, #3284] - str r3, [r4, #3268] - str r6, [r4, #3272] + ldr r4, .L1346 + ldr r3, [r4, #3284] + add r7, r4, #3264 + ldr r6, [r4, #3288] + str r3, [r4, #3272] + str r6, [r4, #3276] bl FtlBbtMemInit ldrh r5, [r4, #98] subs r5, r5, #1 uxth r5, r5 -.L1281: +.L1318: ldrh r3, [r4, #98] subs r3, r3, #16 cmp r5, r3 - ble .L1284 + ble .L1321 lsls r3, r5, #10 movs r2, #1 mov r1, r2 mov r0, r7 - str r3, [r4, #3264] + str r3, [r4, #3268] bl FlashReadPages - ldr r3, [r4, #3260] - adds r3, r3, #1 - bne .L1282 ldr r3, [r4, #3264] + adds r3, r3, #1 + bne .L1319 + ldr r3, [r4, #3268] movs r2, #1 mov r1, r2 mov r0, r7 adds r3, r3, #1 - str r3, [r4, #3264] + str r3, [r4, #3268] bl FlashReadPages -.L1282: - ldr r3, [r4, #3260] +.L1319: + ldr r3, [r4, #3264] adds r3, r3, #1 - beq .L1283 + beq .L1320 ldrh r3, [r6] cmp r3, r8 - bne .L1283 + bne .L1320 ldr r3, [r6, #4] strh r5, [r4, #152] @ movhi str r3, [r4, #160] ldrh r3, [r6, #8] strh r3, [r4, #156] @ movhi -.L1284: +.L1321: ldrh r3, [r4, #152] movw r2, #65535 cmp r3, r2 - beq .L1298 + beq .L1335 ldrh r3, [r4, #156] cmp r3, r2 - beq .L1288 + beq .L1325 lsls r3, r3, #10 movs r2, #1 mov r1, r2 - ldr r0, .L1309+4 - str r3, [r4, #3264] + ldr r0, .L1346+4 + str r3, [r4, #3268] bl FlashReadPages - ldr r3, [r4, #3260] + ldr r3, [r4, #3264] adds r3, r3, #1 - beq .L1288 + beq .L1325 ldrh r2, [r6] movw r3, #61649 cmp r2, r3 - bne .L1288 + bne .L1325 ldr r3, [r6, #4] ldr r2, [r4, #160] cmp r3, r2 - bls .L1288 + bls .L1325 ldrh r2, [r4, #156] str r3, [r4, #160] ldrh r3, [r6, #8] strh r2, [r4, #152] @ movhi strh r3, [r4, #156] @ movhi -.L1288: - ldr r7, .L1309+4 +.L1325: + ldr r7, .L1346+4 movs r1, #1 ldrh r0, [r4, #152] movw r8, #61649 @@ -8779,80 +8948,80 @@ FtlLoadBbt: sxth r5, r0 adds r0, r0, #1 strh r0, [r4, #154] @ movhi -.L1290: +.L1327: cmp r5, #0 - bge .L1293 + bge .L1330 movs r2, #254 - ldr r1, .L1309+8 - ldr r0, .L1309+12 + ldr r1, .L1346+8 + ldr r0, .L1346+12 bl sftl_printk -.L1292: +.L1329: ldrh r3, [r6, #10] ldrh r0, [r6, #12] strh r3, [r4, #158] @ movhi movw r3, #65535 cmp r0, r3 - beq .L1295 + beq .L1332 ldr r2, [r4, #28] cmp r0, r2 - beq .L1295 + beq .L1332 ldrh r3, [r4, #42] lsrs r3, r3, #2 cmp r2, r3 - bcs .L1295 + bcs .L1332 cmp r0, r3 - bcs .L1295 + bcs .L1332 bl FtlSysBlkNumInit -.L1295: - ldr r6, .L1309+16 +.L1332: + ldr r6, .L1346+16 movs r5, #0 -.L1296: +.L1333: ldrh r3, [r4, #54] cmp r5, r3 - bcc .L1297 + bcc .L1334 movs r0, #0 pop {r4, r5, r6, r7, r8, pc} -.L1283: +.L1320: subs r5, r5, #1 uxth r5, r5 - b .L1281 -.L1293: + b .L1318 +.L1330: ldrh r3, [r4, #152] movs r2, #1 mov r1, r2 mov r0, r7 orr r3, r5, r3, lsl #10 - str r3, [r4, #3264] - ldr r3, [r4, #3280] str r3, [r4, #3268] + ldr r3, [r4, #3284] + str r3, [r4, #3272] bl FlashReadPages - ldr r3, [r4, #3260] + ldr r3, [r4, #3264] adds r3, r3, #1 - beq .L1291 + beq .L1328 ldrh r3, [r6] cmp r3, r8 - beq .L1292 -.L1291: + beq .L1329 +.L1328: subs r5, r5, #1 sxth r5, r5 - b .L1290 -.L1297: - ldrh r2, [r4, #3900] - ldr r1, [r4, #3268] + b .L1327 +.L1334: + ldrh r2, [r4, #3904] + ldr r1, [r4, #3272] ldr r0, [r6, #4]! lsls r2, r2, #2 mla r1, r5, r2, r1 adds r5, r5, #1 bl ftl_memcpy - b .L1296 -.L1298: + b .L1333 +.L1335: mov r0, #-1 pop {r4, r5, r6, r7, r8, pc} -.L1310: +.L1347: .align 2 -.L1309: +.L1346: .word .LANCHOR0 - .word .LANCHOR0+3260 + .word .LANCHOR0+3264 .word .LANCHOR1+443 .word .LC1 .word .LANCHOR0+176 @@ -8872,98 +9041,98 @@ 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, .L1330+4 + ldr r9, .L1367+4 bl FtlBbtMemInit sub r5, r9, #180 sub r10, r9, #18 mov r4, r5 bl FtlLoadFactoryBbt -.L1312: +.L1349: ldrh r3, [r5, #54] cmp r8, r3 - bcc .L1318 + bcc .L1355 movs r5, #0 -.L1319: +.L1356: ldrh r3, [r4, #114] uxth r0, r5 adds r5, r5, #1 cmp r3, r0 - bhi .L1320 + bhi .L1357 ldrh r5, [r4, #164] movw r6, #65535 subs r5, r5, #1 uxth r5, r5 -.L1321: +.L1358: ldrh r3, [r4, #164] subs r3, r3, #48 cmp r5, r3 - ble .L1325 + ble .L1362 mov r0, r5 bl FtlBbmIsBadBlock cmp r0, #1 - beq .L1322 + beq .L1359 mov r0, r5 bl FlashTestBlk cmp r0, #0 - beq .L1323 + beq .L1360 mov r0, r5 bl FtlBbmMapBadBlock -.L1322: +.L1359: subs r5, r5, #1 uxth r5, r5 - b .L1321 -.L1318: + b .L1358 +.L1355: ldrh r3, [r10, #2]! movw r2, #65535 - ldr r0, [r5, #3280] - ldr fp, [r5, #3284] + ldr r0, [r5, #3284] + ldr fp, [r5, #3288] cmp r3, r2 - str r0, [r5, #3268] - str fp, [r5, #3272] - beq .L1313 + str r0, [r5, #3272] + str fp, [r5, #3276] + beq .L1350 ldrh r7, [r5, #98] movs r2, #1 mov r1, r2 - ldr r0, .L1330 + ldr r0, .L1367 mla r7, r8, r7, r3 lsls r3, r7, #10 - str r3, [r5, #3264] + str r3, [r5, #3268] bl FlashReadPages ldrh r2, [r5, #98] - ldr r1, [r5, #3268] + ldr r1, [r5, #3272] ldr r0, [r9] adds r2, r2, #7 asrs r2, r2, #3 bl ftl_memcpy -.L1314: +.L1351: uxth r0, r7 add r8, r8, #1 add r9, r9, #4 bl FtlBbmMapBadBlock - b .L1312 -.L1313: + b .L1349 +.L1350: mov r1, r8 bl FlashGetBadBlockList ldr r1, [r9] - ldr r0, [r5, #3268] + ldr r0, [r5, #3272] bl FtlBbt2Bitmap ldrh r6, [r5, #98] -.L1316: +.L1353: subs r6, r6, #1 uxth r6, r6 -.L1315: +.L1352: ldrh r0, [r4, #98] smlabb r0, r0, r8, r6 uxth r0, r0 bl FtlBbmIsBadBlock cmp r0, #1 - beq .L1316 + beq .L1353 movs r1, #16 - ldr r0, [r4, #3284] + ldr r0, [r4, #3288] strh r6, [r10] @ movhi bl __memzero mov r1, #4096 - ldr r0, [r4, #3280] + ldr r0, [r4, #3284] bl __memzero movw r3, #61664 strh r3, [fp] @ movhi @@ -8971,46 +9140,46 @@ FtlMakeBbt: str r3, [fp, #4] ldrh r3, [r10] ldrh r7, [r4, #98] - ldrh r2, [r4, #3900] + ldrh r2, [r4, #3904] strh r3, [fp, #2] @ movhi ldrh r3, [r10] ldr r1, [r9] lsls r2, r2, #2 - ldr r0, [r4, #3268] + ldr r0, [r4, #3272] mla r7, r8, r7, r3 lsls r3, r7, #10 - str r3, [r4, #3264] + str r3, [r4, #3268] bl ftl_memcpy movs r2, #1 - ldr r0, .L1330 + ldr r0, .L1367 mov r1, r2 bl FlashEraseBlocks movs r3, #1 - ldr r0, .L1330 + ldr r0, .L1367 mov r2, r3 mov r1, r3 bl FlashProgPages - ldr r3, [r4, #3260] + ldr r3, [r4, #3264] adds r3, r3, #1 - bne .L1314 + bne .L1351 uxth r0, r7 bl FtlBbmMapBadBlock - b .L1315 -.L1320: + b .L1352 +.L1357: bl FtlBbmMapBadBlock - b .L1319 -.L1323: + b .L1356 +.L1360: ldrh r3, [r4, #152] cmp r3, r6 - bne .L1324 + bne .L1361 strh r5, [r4, #152] @ movhi - b .L1322 -.L1324: + b .L1359 +.L1361: strh r5, [r4, #156] @ movhi -.L1325: +.L1362: ldrh r3, [r4, #152] movs r5, #0 - ldr r0, [r4, #3800] + ldr r0, [r4, #3804] movs r1, #1 str r5, [r4, #160] movs r2, #2 @@ -9037,10 +9206,10 @@ FtlMakeBbt: bl FtlBbmTblFlush mov r0, r5 pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1331: +.L1368: .align 2 -.L1330: - .word .LANCHOR0+3260 +.L1367: + .word .LANCHOR0+3264 .word .LANCHOR0+180 .fnend .size FtlMakeBbt, .-FtlMakeBbt @@ -9058,7 +9227,7 @@ FtlVendorPartWrite: 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, .L1344 + ldr r4, .L1381 adds r2, r0, r1 .pad #108 sub sp, sp, #108 @@ -9066,20 +9235,20 @@ FtlVendorPartWrite: mov r6, r1 ldrh r3, [r4, #96] cmp r2, r3 - bhi .L1340 + bhi .L1377 ldrh r7, [r4, #108] mov r9, #0 lsr r7, r0, r7 lsl fp, r7, #2 -.L1334: - cbnz r6, .L1339 -.L1332: +.L1371: + cbnz r6, .L1376 +.L1369: mov r0, r9 add sp, sp, #108 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1339: - ldr r3, [r4, #3884] +.L1376: + ldr r3, [r4, #3888] mov r0, r8 ldr r2, [r3, fp] ldrh r3, [r4, #58] @@ -9095,10 +9264,10 @@ FtlVendorPartWrite: cmp r6, r5 it cc uxthcc r5, r6 - cbz r2, .L1336 + cbz r2, .L1373 cmp r5, r3 - beq .L1336 - ldr r3, [r4, #3848] + beq .L1373 + ldr r3, [r4, #3852] add r0, sp, #20 str r2, [sp, #24] movs r2, #1 @@ -9107,9 +9276,9 @@ FtlVendorPartWrite: add r3, sp, #40 str r3, [sp, #32] bl FlashReadPages -.L1337: +.L1374: lsls r3, r5, #9 - ldr r0, [r4, #3848] + ldr r0, [r4, #3852] mov r1, r10 mov r2, r3 str r3, [sp, #8] @@ -9120,8 +9289,8 @@ FtlVendorPartWrite: add r0, r0, r3, lsl #9 bl ftl_memcpy mov r1, r7 - ldr r2, [r4, #3848] - ldr r0, .L1344+4 + ldr r2, [r4, #3852] + ldr r0, .L1381+4 adds r7, r7, #1 bl FtlMapWritePage ldr r3, [sp, #8] @@ -9129,21 +9298,21 @@ FtlVendorPartWrite: it eq moveq r9, #-1 add r10, r10, r3 - b .L1334 -.L1336: + b .L1371 +.L1373: ldrh r2, [r4, #110] movs r1, #0 - ldr r0, [r4, #3848] + ldr r0, [r4, #3852] bl ftl_memset - b .L1337 -.L1340: + b .L1374 +.L1377: mov r9, #-1 - b .L1332 -.L1345: + b .L1369 +.L1382: .align 2 -.L1344: +.L1381: .word .LANCHOR0 - .word .LANCHOR0+3948 + .word .LANCHOR0+3956 .fnend .size FtlVendorPartWrite, .-FtlVendorPartWrite .align 1 @@ -9158,12 +9327,12 @@ Ftl_save_ext_data: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r2, .L1348 - ldr r3, .L1348+4 + ldr r2, .L1385 + ldr r3, .L1385+4 ldr r1, [r2, #2636] cmp r1, r3 - bne .L1346 - ldr r3, .L1348+8 + bne .L1383 + ldr r3, .L1385+8 addw r2, r2, #2636 movs r1, #1 movs r0, #0 @@ -9193,14 +9362,14 @@ Ftl_save_ext_data: ldr r3, [r2, #-68] str r3, [r2, #48] b FtlVendorPartWrite -.L1346: +.L1383: bx lr -.L1349: +.L1386: .align 2 -.L1348: +.L1385: .word .LANCHOR0 .word 1179929683 - .word 1342177348 + .word 1342177349 .fnend .size Ftl_save_ext_data, .-Ftl_save_ext_data .align 1 @@ -9214,33 +9383,33 @@ FtlEctTblFlush: .fnstart @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r2, .L1355 + ldr r2, .L1392 push {r3, lr} .save {r3, lr} - ldrh r3, [r2, #-200] + ldrh r3, [r2, #-192] cmp r3, #31 itett ls addls r3, r3, #1 movhi r2, #32 - strhls r3, [r2, #-200] @ movhi + strhls r3, [r2, #-192] @ movhi movls r2, #1 - ldr r3, .L1355+4 - cbnz r0, .L1352 - ldr r1, [r3, #3860] + ldr r3, .L1392+4 + cbnz r0, .L1389 + ldr r1, [r3, #3864] ldr r0, [r1, #20] ldr r1, [r1, #16] add r2, r2, r0 cmp r1, r2 - bcc .L1353 -.L1352: - ldr r2, [r3, #3860] + bcc .L1390 +.L1389: + ldr r2, [r3, #3864] movs r0, #64 ldr r1, [r2, #16] str r1, [r2, #20] - ldr r1, .L1355+8 + ldr r1, .L1392+8 str r1, [r2] - ldrh r1, [r3, #3852] - ldr r2, [r3, #3860] + ldrh r1, [r3, #3856] + ldr r2, [r3, #3864] lsls r3, r1, #9 str r3, [r2, #12] ldr r3, [r2, #8] @@ -9250,12 +9419,12 @@ FtlEctTblFlush: str r3, [r2, #4] bl FtlVendorPartWrite bl Ftl_save_ext_data -.L1353: +.L1390: movs r0, #0 pop {r3, pc} -.L1356: +.L1393: .align 2 -.L1355: +.L1392: .word .LANCHOR3 .word .LANCHOR0 .word 1112818501 @@ -9286,86 +9455,105 @@ sftl_vendor_write: .type FtlVendorPartRead, %function FtlVendorPartRead: .fnstart - @ args = 0, pretend = 0, frame = 96 + @ args = 0, pretend = 0, frame = 104 @ 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, r2 - ldr r5, .L1367 + ldr r4, .L1405 adds r2, r0, r1 - .pad #100 - sub sp, sp, #100 + .pad #108 + sub sp, sp, #108 mov r8, r0 mov r7, r1 - ldrh r3, [r5, #96] + ldrh r3, [r4, #96] cmp r2, r3 - bhi .L1366 - ldrh r6, [r5, #108] + bhi .L1404 + ldrh r6, [r4, #108] mov r9, #0 lsr r6, r0, r6 - lsls r6, r6, #2 -.L1360: - cbnz r7, .L1365 -.L1358: + lsl fp, r6, #2 +.L1397: + cbnz r7, .L1403 +.L1395: mov r0, r9 - add sp, sp, #100 + add sp, sp, #108 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1365: - ldr r3, [r5, #3884] +.L1403: + ldr r3, [r4, #3888] mov r0, r8 - ldrh r4, [r5, #58] - ldr r3, [r3, r6] - mov r1, r4 - str r3, [sp, #4] + ldrh r5, [r4, #58] + ldr r3, [r3, fp] + mov r1, r5 + str r3, [sp, #8] bl __aeabi_uidivmod - subs r4, r4, r1 - ldr r3, [sp, #4] - uxth r4, r4 - str r1, [sp] - cmp r7, r4 + subs r5, r5, r1 + ldr r3, [sp, #8] + uxth r5, r5 + str r1, [sp, #4] + cmp r7, r5 it cc - uxthcc r4, r7 - lsl fp, r4, #9 - cbz r3, .L1362 - str r3, [sp, #16] - movs r2, #1 - ldr r3, [r5, #3848] - mov r1, r2 - add r0, sp, #12 - str r3, [sp, #20] - add r3, sp, #32 + uxthcc r5, r7 + lsls r2, r5, #9 + str r2, [sp, #8] + cbz r3, .L1399 + ldr r2, [r4, #3852] + add r0, sp, #20 str r3, [sp, #24] + str r3, [sp, #12] + str r2, [sp, #28] + add r2, sp, #40 + str r2, [sp, #32] + movs r2, #1 + mov r1, r2 bl FlashReadPages + ldr r2, [sp, #20] ldr r3, [sp, #12] - mov r2, fp - ldr r1, [r5, #3848] - mov r0, r10 - adds r3, r3, #1 - ldr r3, [sp] + adds r2, r2, #1 + ldr r2, [r4, #3264] it eq moveq r9, #-1 + cmp r2, #256 + bne .L1401 + mov r2, r3 + mov r1, r6 + ldr r0, .L1405+4 + bl sftl_printk + ldr r2, [r4, #3852] + mov r1, r6 + ldr r0, .L1405+8 + bl FtlMapWritePage +.L1401: + ldr r1, [r4, #3852] + lsls r2, r5, #9 + ldr r3, [sp, #4] + mov r0, r10 add r1, r1, r3, lsl #9 bl ftl_memcpy -.L1364: - subs r7, r7, r4 - add r8, r8, r4 - add r10, r10, fp - adds r6, r6, #4 - b .L1360 -.L1362: - mov r2, fp +.L1402: + ldr r3, [sp, #8] + adds r6, r6, #1 + subs r7, r7, r5 + add r8, r8, r5 + add fp, fp, #4 + add r10, r10, r3 + b .L1397 +.L1399: + lsls r2, r5, #9 mov r1, r3 mov r0, r10 bl ftl_memset - b .L1364 -.L1366: + b .L1402 +.L1404: mov r9, #-1 - b .L1358 -.L1368: + b .L1395 +.L1406: .align 2 -.L1367: +.L1405: .word .LANCHOR0 + .word .LC107 + .word .LANCHOR0+3956 .fnend .size FtlVendorPartRead, .-FtlVendorPartRead .align 1 @@ -9382,32 +9570,32 @@ FtlLoadEctTbl: push {r4, lr} .save {r4, lr} movs r0, #64 - ldr r4, .L1371 - ldr r2, [r4, #3860] - ldrh r1, [r4, #3852] + ldr r4, .L1409 + ldr r2, [r4, #3864] + ldrh r1, [r4, #3856] bl FtlVendorPartRead - ldr r3, [r4, #3860] + ldr r3, [r4, #3864] ldr r2, [r3] - ldr r3, .L1371+4 + ldr r3, .L1409+4 cmp r2, r3 - beq .L1370 - ldr r1, .L1371+8 - ldr r0, .L1371+12 + beq .L1408 + ldr r1, .L1409+8 + ldr r0, .L1409+12 bl sftl_printk - ldrh r2, [r4, #3852] + ldrh r2, [r4, #3856] movs r1, #0 - ldr r0, [r4, #3860] + ldr r0, [r4, #3864] lsls r2, r2, #9 bl ftl_memset -.L1370: +.L1408: movs r0, #0 pop {r4, pc} -.L1372: +.L1410: .align 2 -.L1371: +.L1409: .word .LANCHOR0 .word 1112818501 - .word .LC104 + .word .LC108 .word .LC71 .fnend .size FtlLoadEctTbl, .-FtlLoadEctTbl @@ -9425,22 +9613,22 @@ Ftl_load_ext_data: push {r3, r4, r5, lr} .save {r3, r4, r5, lr} movs r1, #1 - ldr r4, .L1376 + ldr r4, .L1414 movs r0, #0 - ldr r5, .L1376+4 + ldr r5, .L1414+4 addw r2, r4, #2636 bl FtlVendorPartRead ldr r3, [r4, #2636] cmp r3, r5 - beq .L1374 + beq .L1412 mov r1, #512 addw r0, r4, #2636 bl __memzero str r5, [r4, #2636] -.L1374: +.L1412: ldr r3, [r4, #2636] cmp r3, r5 - bne .L1375 + bne .L1413 ldr r3, [r4, #2724] str r3, [r4, #2532] ldr r3, [r4, #2728] @@ -9465,7 +9653,7 @@ Ftl_load_ext_data: str r3, [r4, #2564] ldr r3, [r4, #2684] str r3, [r4, #2568] -.L1375: +.L1413: ldrh r2, [r4, #92] ldr r3, [r4, #2552] ldr r0, [r4, #2548] @@ -9474,9 +9662,9 @@ Ftl_load_ext_data: bl __aeabi_uidiv str r0, [r4, #2556] pop {r3, r4, r5, pc} -.L1377: +.L1415: .align 2 -.L1376: +.L1414: .word .LANCHOR0 .word 1179929683 .fnend @@ -9511,17 +9699,17 @@ FtlVpcTblFlush: push {r4, r5, r6, r7, r8, r9, r10, lr} .save {r4, r5, r6, r7, r8, r9, r10, lr} movs r5, #0 - ldr r4, .L1391 + ldr r4, .L1432 movs r1, #255 movw r7, #65535 - ldr r9, .L1391+16 - ldr r3, [r4, #3280] - addw r8, r4, #3260 - ldr r6, [r4, #3284] - ldr r10, .L1391+20 - str r3, [r4, #3268] + ldr r9, .L1432+16 + ldr r3, [r4, #3284] + add r8, r4, #3264 + ldr r6, [r4, #3288] + ldr r10, .L1432+20 + str r3, [r4, #3272] ldrh r3, [r4, #2576] - str r6, [r4, #3272] + str r6, [r4, #3276] str r5, [r6, #12] strh r3, [r6, #2] @ movhi movw r3, #61604 @@ -9530,9 +9718,9 @@ FtlVpcTblFlush: str r5, [r6, #8] ldrh r2, [r4, #2350] str r3, [r6, #4] - ldr r3, .L1391+4 + ldr r3, .L1432+4 str r3, [r4, #2268] - ldr r3, .L1391+8 + ldr r3, .L1432+8 str r3, [r4, #2272] ldrh r3, [r4, #2582] strh r3, [r4, #2276] @ movhi @@ -9555,7 +9743,7 @@ FtlVpcTblFlush: strb r3, [r4, #2280] ldrh r3, [r4, #2444] ldrh r2, [r4, #2446] - ldr r0, [r4, #3268] + ldr r0, [r4, #3272] strh r3, [r4, #2290] @ movhi ldrb r3, [r4, #2450] @ zero_extendqisi2 orr r3, r3, r2, lsl #6 @@ -9569,19 +9757,23 @@ FtlVpcTblFlush: str r3, [r4, #2308] ldr r3, [r4, #2544] str r3, [r4, #2304] + ldrh r3, [r4, #3202] + strh r3, [r4, #2312] @ movhi + ldrh r3, [r4, #3204] + strh r3, [r4, #2314] @ movhi bl ftl_memset movs r2, #48 addw r1, r4, #2268 - ldr r0, [r4, #3268] + ldr r0, [r4, #3272] bl ftl_memcpy ldrh r2, [r4, #40] - ldr r0, [r4, #3268] + ldr r0, [r4, #3272] ldr r1, [r4, #2324] lsls r2, r2, #1 adds r0, r0, #48 bl ftl_memcpy ldrh r0, [r4, #40] - ldr r3, [r4, #3268] + ldr r3, [r4, #3272] ldr r1, [r4, #24] lsrs r2, r0, #3 adds r0, r0, #24 @@ -9592,16 +9784,16 @@ FtlVpcTblFlush: bl ftl_memcpy mov r0, r5 bl FtlUpdateVaildLpn -.L1380: - ldr r3, [r4, #3280] +.L1418: + ldr r3, [r4, #3284] mov r0, r8 ldrh r2, [r4, #2576] - str r3, [r4, #3268] - ldr r3, [r4, #3284] str r3, [r4, #3272] + ldr r3, [r4, #3288] + str r3, [r4, #3276] ldrh r3, [r4, #2578] orr r3, r3, r2, lsl #10 - str r3, [r4, #3264] + str r3, [r4, #3268] movs r3, #1 mov r2, r3 mov r1, r3 @@ -9610,7 +9802,7 @@ FtlVpcTblFlush: ldrh r2, [r4, #2578] subs r3, r3, #1 cmp r2, r3 - blt .L1381 + blt .L1419 ldrh r3, [r4, #2576] ldrh r7, [r4, #2580] strh r3, [r4, #2580] @ movhi @@ -9623,7 +9815,7 @@ FtlVpcTblFlush: str r3, [r4, #2584] str r2, [r4, #2540] lsls r2, r0, #10 - str r2, [r4, #3264] + str r2, [r4, #3268] str r3, [r6, #4] movs r3, #1 strh r0, [r6, #2] @ movhi @@ -9631,21 +9823,21 @@ FtlVpcTblFlush: mov r1, r3 mov r0, r8 bl FlashProgPages -.L1381: +.L1419: ldrh r3, [r4, #2578] - ldr r2, [r4, #3260] + ldr r2, [r4, #3264] adds r3, r3, #1 uxth r3, r3 - adds r2, r2, #1 + adds r1, r2, #1 strh r3, [r4, #2578] @ movhi - bne .L1382 + bne .L1420 cmp r3, #1 - bne .L1383 - movw r2, #1124 + bne .L1421 + movw r2, #1169 mov r1, r9 mov r0, r10 bl sftl_printk -.L1383: +.L1421: ldrh r3, [r4, #2578] adds r5, r5, #1 uxth r5, r5 @@ -9655,367 +9847,39 @@ FtlVpcTblFlush: addeq r3, r3, #-1 strheq r3, [r4, #2578] @ movhi cmp r5, #3 - bls .L1380 + bls .L1418 mov r2, r5 - ldr r1, [r4, #3264] - ldr r0, .L1391+12 + ldr r1, [r4, #3268] + ldr r0, .L1432+12 bl sftl_printk -.L1386: - b .L1386 -.L1382: +.L1424: + b .L1424 +.L1420: cmp r3, #1 - beq .L1380 + beq .L1418 + cmp r2, #256 + beq .L1418 movw r3, #65535 cmp r7, r3 - beq .L1387 + beq .L1425 movs r1, #1 mov r0, r7 bl FtlFreeSysBlkQueueIn -.L1387: +.L1425: movs r0, #0 pop {r4, r5, r6, r7, r8, r9, r10, pc} -.L1392: +.L1433: .align 2 -.L1391: +.L1432: .word .LANCHOR0 .word 1179929683 - .word 1342177348 - .word .LC105 + .word 1342177349 + .word .LC109 .word .LANCHOR1+454 .word .LC1 .fnend .size FtlVpcTblFlush, .-FtlVpcTblFlush .align 1 - .global FtlVpcCheckAndModify - .syntax unified - .thumb - .thumb_func - .fpu softvfp - .type FtlVpcCheckAndModify, %function -FtlVpcCheckAndModify: - .fnstart - @ args = 0, pretend = 0, frame = 8 - @ frame_needed = 0, uses_anonymous_args = 0 - push {r0, r1, r2, r4, r5, r6, r7, r8, r9, lr} - .save {r4, r5, r6, r7, r8, r9, lr} - .pad #12 - movs r5, #0 - ldr r4, .L1405 - ldr r1, .L1405+4 - ldr r0, .L1405+8 - bl sftl_printk - ldrh r2, [r4, #42] - movs r1, #0 - ldr r0, [r4, #3864] - lsls r2, r2, #1 - bl ftl_memset -.L1394: - ldr r3, [r4, #2504] - cmp r5, r3 - bcc .L1396 - ldr r9, .L1405+12 - movs r7, #0 - movw r8, #65535 -.L1397: - ldrh r3, [r4, #40] - uxth r5, r7 - cmp r3, r5 - bhi .L1401 - add sp, sp, #12 - @ sp needed - pop {r4, r5, r6, r7, r8, r9, pc} -.L1396: - movs r2, #0 - add r1, sp, #4 - mov r0, r5 - bl log2phys - ldr r0, [sp, #4] - adds r3, r0, #1 - beq .L1395 - ubfx r0, r0, #10, #16 - bl P2V_block_in_plane - ldr r2, [r4, #3864] - ldrh r3, [r2, r0, lsl #1] - adds r3, r3, #1 - strh r3, [r2, r0, lsl #1] @ movhi -.L1395: - adds r5, r5, #1 - b .L1394 -.L1401: - ldr r3, [r4, #2324] - uxth r6, r7 - ldrh r2, [r3, r6, lsl #1] - ldr r3, [r4, #3864] - ldrh r3, [r3, r6, lsl #1] - cmp r2, r3 - beq .L1399 - cmp r2, r8 - beq .L1399 - mov r1, r6 - mov r0, r9 - bl sftl_printk - ldrh r3, [r4, #2348] - cmp r3, r5 - beq .L1399 - ldrh r3, [r4, #2444] - cmp r3, r5 - beq .L1399 - ldrh r3, [r4, #2396] - cmp r3, r5 - beq .L1399 - ldr r3, [r4, #3864] - mov r0, r5 - ldrh r2, [r3, r6, lsl #1] - ldr r3, [r4, #2324] - strh r2, [r3, r6, lsl #1] @ movhi - bl update_vpc_list - bl l2p_flush - bl FtlVpcTblFlush -.L1399: - adds r7, r7, #1 - b .L1397 -.L1406: - .align 2 -.L1405: - .word .LANCHOR0 - .word .LANCHOR1+469 - .word .LC95 - .word .LC106 - .fnend - .size FtlVpcCheckAndModify, .-FtlVpcCheckAndModify - .align 1 - .global allocate_new_data_superblock - .syntax unified - .thumb - .thumb_func - .fpu softvfp - .type allocate_new_data_superblock, %function -allocate_new_data_superblock: - .fnstart - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - push {r4, r5, r6, lr} - .save {r4, r5, r6, lr} - mov r6, r0 - ldr r4, .L1417 - ldrh r5, [r0] - ldrh r3, [r4, #40] - cmp r3, r5 - bcs .L1408 - movw r2, #2681 - ldr r1, .L1417+4 - ldr r0, .L1417+8 - bl sftl_printk -.L1408: - movw r3, #65535 - cmp r5, r3 - beq .L1409 - ldr r3, [r4, #2324] - mov r0, r5 - ldrh r3, [r3, r5, lsl #1] - cbz r3, .L1410 - bl INSERT_DATA_LIST -.L1409: - ldrh r0, [r4, #3992] - movs r3, #1 - strb r3, [r6, #8] - movw r3, #65535 - cmp r0, r3 - beq .L1411 - cmp r5, r0 - bne .L1412 - ldr r3, [r4, #2324] - ldrh r3, [r3, r0, lsl #1] - cbz r3, .L1413 -.L1412: - bl update_vpc_list -.L1413: - movw r3, #65535 - strh r3, [r4, #3992] @ movhi -.L1411: - mov r0, r6 - bl allocate_data_superblock - bl l2p_flush - movs r0, #0 - bl FtlEctTblFlush - bl FtlVpcTblFlush - movs r0, #0 - pop {r4, r5, r6, pc} -.L1410: - bl INSERT_FREE_LIST - b .L1409 -.L1418: - .align 2 -.L1417: - .word .LANCHOR0 - .word .LANCHOR1+490 - .word .LC1 - .fnend - .size allocate_new_data_superblock, .-allocate_new_data_superblock - .align 1 - .global FtlProgPages - .syntax unified - .thumb - .thumb_func - .fpu softvfp - .type FtlProgPages, %function -FtlProgPages: - .fnstart - @ args = 0, pretend = 0, frame = 16 - @ frame_needed = 0, uses_anonymous_args = 0 - push {r4, r5, r6, r7, r8, r9, r10, fp, lr} - .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - movs r7, #0 - ldr r6, .L1433 - .pad #20 - sub sp, sp, #20 - mov r4, r3 - movs r2, #0 - ldr r10, .L1433+8 - mov r5, r0 - ldr fp, .L1433+12 - mov r9, r1 - ldrb r3, [r3, #9] @ zero_extendqisi2 - bl FlashProgPages -.L1420: - cmp r7, r9 - beq .L1427 - mov r8, #0 - b .L1428 -.L1423: - ldr r0, [r5, #4] - ubfx r0, r0, #10, #16 - bl P2V_block_in_plane - ldrh r3, [r4] - cmp r3, r0 - bne .L1421 - ldr r1, [r6, #2324] - ldrh r0, [r4, #4] - ldrh r2, [r1, r3, lsl #1] - subs r2, r2, r0 - strh r2, [r1, r3, lsl #1] @ movhi - ldrh r3, [r6, #102] - strb r8, [r4, #6] - strh r8, [r4, #4] @ movhi - strh r3, [r4, #2] @ movhi -.L1421: - ldrh r3, [r4, #4] - cbnz r3, .L1422 - mov r0, r4 - bl allocate_new_data_superblock -.L1422: - ldr r3, [r6, #2732] - adds r3, r3, #1 - str r3, [r6, #2732] - ldr r0, [r5, #4] - ubfx r0, r0, #10, #16 - bl FtlGcMarkBadPhyBlk - mov r0, r4 - bl get_new_active_ppa - movs r2, #0 - str r0, [r5, #4] - str r0, [sp, #12] - movs r1, #1 - ldrb r3, [r4, #9] @ zero_extendqisi2 - mov r0, r5 - bl FlashProgPages -.L1428: - ldr r3, [r5] - adds r3, r3, #1 - beq .L1423 - ldrb r2, [r4, #6] @ zero_extendqisi2 - ldrh r3, [r6, #32] - cmp r2, r3 - bcc .L1424 - movw r2, #933 - mov r1, r10 - mov r0, fp - bl sftl_printk -.L1424: - ldr r3, [r5, #4] - add r1, sp, #16 - movs r2, #1 - ldr r0, [r5, #16] - str r3, [r1, #-4]! - bl log2phys - ldr r3, [r5, #12] - ldr r3, [r3, #12] - ubfx r0, r3, #10, #16 - str r3, [sp, #4] - bl P2V_block_in_plane - ldr r3, [sp, #4] - mov r8, r0 - adds r3, r3, #1 - beq .L1425 - ldr r3, [r6, #2324] - ldrh r2, [r3, r0, lsl #1] - cbnz r2, .L1426 - mov r1, r0 - ldr r0, .L1433+4 - bl sftl_printk -.L1426: - mov r0, r8 - bl decrement_vpc_count -.L1425: - adds r7, r7, #1 - adds r5, r5, #20 - b .L1420 -.L1427: - ldrb r2, [r4, #6] @ zero_extendqisi2 - ldrh r3, [r6, #32] - cmp r2, r3 - bcc .L1419 - mov r2, #948 - ldr r1, .L1433+8 - ldr r0, .L1433+12 - bl sftl_printk -.L1419: - add sp, sp, #20 - @ sp needed - pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1434: - .align 2 -.L1433: - .word .LANCHOR0 - .word .LC107 - .word .LANCHOR1+519 - .word .LC1 - .fnend - .size FtlProgPages, .-FtlProgPages - .align 1 - .global FtlCacheWriteBack - .syntax unified - .thumb - .thumb_func - .fpu softvfp - .type FtlCacheWriteBack, %function -FtlCacheWriteBack: - .fnstart - @ args = 0, pretend = 0, frame = 0 - @ frame_needed = 0, uses_anonymous_args = 0 - push {r4, lr} - .save {r4, lr} - ldr r4, .L1440 - ldr r0, [r4, #3988] - cbz r0, .L1436 - ldr r3, .L1440+4 - movs r2, #0 - movs r1, #1 - ldr r3, [r3, #-196] - bl FtlProgPages - movs r3, #0 - str r3, [r4, #3988] -.L1436: - movs r0, #0 - pop {r4, pc} -.L1441: - .align 2 -.L1440: - .word .LANCHOR0 - .word .LANCHOR3 - .fnend - .size FtlCacheWriteBack, .-FtlCacheWriteBack - .align 1 .global FtlSysFlush .syntax unified .thumb @@ -10028,7 +9892,6 @@ FtlSysFlush: @ frame_needed = 0, uses_anonymous_args = 0 push {r3, lr} .save {r3, lr} - bl FtlCacheWriteBack bl l2p_flush movs r0, #1 bl FtlEctTblFlush @@ -10050,17 +9913,17 @@ sftl_deinit: @ frame_needed = 0, uses_anonymous_args = 0 push {r3, lr} .save {r3, lr} - ldr r3, .L1445 + ldr r3, .L1437 ldr r3, [r3] cmp r3, #1 - bne .L1444 + bne .L1436 bl FtlSysFlush -.L1444: +.L1436: movs r0, #0 pop {r3, pc} -.L1446: +.L1438: .align 2 -.L1445: +.L1437: .word .LANCHOR2 .fnend .size sftl_deinit, .-sftl_deinit @@ -10079,69 +9942,67 @@ FtlDiscard: .save {r4, r5, r6, r7, r8, lr} .pad #8 adds r2, r0, r1 - ldr r6, .L1462 - mov r7, r0 + ldr r6, .L1454 + mov r8, r0 mov r5, r1 ldr r3, [r6, #140] cmp r2, r3 - bhi .L1455 + bhi .L1447 cmp r1, #31 - bhi .L1449 -.L1454: + bhi .L1441 +.L1446: movs r0, #0 -.L1447: +.L1439: add sp, sp, #8 @ sp needed pop {r4, r5, r6, r7, r8, pc} -.L1449: - bl FtlCacheWriteBack +.L1441: ldrh r4, [r6, #58] - mov r0, r7 mov r1, r4 bl __aeabi_uidiv smulbb r3, r0, r4 - mov r8, r0 - subs r7, r7, r3 - uxth r7, r7 - cbz r7, .L1450 - subs r4, r4, r7 - add r8, r0, #1 + mov r7, r0 + sub r8, r8, r3 + uxth r3, r8 + cbz r3, .L1442 + subs r4, r4, r3 + adds r7, r7, #1 cmp r4, r5 it cs movcs r4, r5 uxth r4, r4 subs r5, r5, r4 -.L1450: - ldr r4, .L1462+4 +.L1442: + ldr r4, .L1454+4 mov r3, #-1 str r3, [sp, #4] -.L1451: +.L1443: ldrh r3, [r6, #58] cmp r5, r3 - bcs .L1453 - ldr r3, .L1462+4 - ldr r2, [r3, #-192] + bcs .L1445 + ldr r3, .L1454+4 + ldr r2, [r3, #-188] cmp r2, #32 - bls .L1454 + bls .L1446 movs r4, #0 - str r4, [r3, #-192] + str r4, [r3, #-188] bl l2p_flush bl FtlVpcTblFlush - b .L1454 -.L1453: + b .L1446 +.L1445: movs r2, #0 mov r1, sp - mov r0, r8 + mov r0, r7 bl log2phys ldr r3, [sp] adds r3, r3, #1 - beq .L1452 - ldr r3, [r4, #-192] + beq .L1444 + ldr r3, [r4, #-188] movs r2, #1 add r1, sp, #4 - mov r0, r8 + mov r0, r7 adds r3, r3, #1 - str r3, [r4, #-192] + str r3, [r4, #-188] ldr r3, [r6, #2512] adds r3, r3, #1 str r3, [r6, #2512] @@ -10150,22 +10011,319 @@ FtlDiscard: ubfx r0, r0, #10, #16 bl P2V_block_in_plane bl decrement_vpc_count -.L1452: +.L1444: ldrh r3, [r6, #58] - add r8, r8, #1 + adds r7, r7, #1 subs r5, r5, r3 - b .L1451 -.L1455: + b .L1443 +.L1447: mov r0, #-1 - b .L1447 -.L1463: + b .L1439 +.L1455: .align 2 -.L1462: +.L1454: .word .LANCHOR0 .word .LANCHOR3 .fnend .size FtlDiscard, .-FtlDiscard .align 1 + .global FtlVpcCheckAndModify + .syntax unified + .thumb + .thumb_func + .fpu softvfp + .type FtlVpcCheckAndModify, %function +FtlVpcCheckAndModify: + .fnstart + @ args = 0, pretend = 0, frame = 8 + @ frame_needed = 0, uses_anonymous_args = 0 + push {r0, r1, r2, r4, r5, r6, r7, r8, r9, lr} + .save {r4, r5, r6, r7, r8, r9, lr} + .pad #12 + movs r5, #0 + ldr r4, .L1468 + ldr r1, .L1468+4 + ldr r0, .L1468+8 + bl sftl_printk + ldrh r2, [r4, #42] + movs r1, #0 + ldr r0, [r4, #3868] + lsls r2, r2, #1 + bl ftl_memset +.L1457: + ldr r3, [r4, #2504] + cmp r5, r3 + bcc .L1459 + ldr r9, .L1468+12 + movs r7, #0 + movw r8, #65535 +.L1460: + ldrh r3, [r4, #40] + uxth r5, r7 + cmp r3, r5 + bhi .L1464 + add sp, sp, #12 + @ sp needed + pop {r4, r5, r6, r7, r8, r9, pc} +.L1459: + movs r2, #0 + add r1, sp, #4 + mov r0, r5 + bl log2phys + ldr r0, [sp, #4] + adds r3, r0, #1 + beq .L1458 + ubfx r0, r0, #10, #16 + bl P2V_block_in_plane + ldr r2, [r4, #3868] + ldrh r3, [r2, r0, lsl #1] + adds r3, r3, #1 + strh r3, [r2, r0, lsl #1] @ movhi +.L1458: + adds r5, r5, #1 + b .L1457 +.L1464: + ldr r3, [r4, #2324] + uxth r6, r7 + ldrh r2, [r3, r6, lsl #1] + ldr r3, [r4, #3868] + ldrh r3, [r3, r6, lsl #1] + cmp r2, r3 + beq .L1462 + cmp r2, r8 + beq .L1462 + mov r1, r6 + mov r0, r9 + bl sftl_printk + ldrh r3, [r4, #2348] + cmp r3, r5 + beq .L1462 + ldrh r3, [r4, #2444] + cmp r3, r5 + beq .L1462 + ldrh r3, [r4, #2396] + cmp r3, r5 + beq .L1462 + ldr r3, [r4, #3868] + mov r0, r5 + ldrh r2, [r3, r6, lsl #1] + ldr r3, [r4, #2324] + strh r2, [r3, r6, lsl #1] @ movhi + bl update_vpc_list + bl l2p_flush + bl FtlVpcTblFlush +.L1462: + adds r7, r7, #1 + b .L1460 +.L1469: + .align 2 +.L1468: + .word .LANCHOR0 + .word .LANCHOR1+469 + .word .LC97 + .word .LC110 + .fnend + .size FtlVpcCheckAndModify, .-FtlVpcCheckAndModify + .align 1 + .global allocate_new_data_superblock + .syntax unified + .thumb + .thumb_func + .fpu softvfp + .type allocate_new_data_superblock, %function +allocate_new_data_superblock: + .fnstart + @ args = 0, pretend = 0, frame = 0 + @ frame_needed = 0, uses_anonymous_args = 0 + push {r4, r5, r6, lr} + .save {r4, r5, r6, lr} + mov r6, r0 + ldr r4, .L1480 + ldrh r5, [r0] + ldrh r3, [r4, #40] + cmp r3, r5 + bcs .L1471 + movw r2, #2750 + ldr r1, .L1480+4 + ldr r0, .L1480+8 + bl sftl_printk +.L1471: + movw r3, #65535 + cmp r5, r3 + beq .L1472 + ldr r3, [r4, #2324] + mov r0, r5 + ldrh r3, [r3, r5, lsl #1] + cbz r3, .L1473 + bl INSERT_DATA_LIST +.L1472: + ldrh r0, [r4, #4000] + movs r3, #1 + strb r3, [r6, #8] + movw r3, #65535 + cmp r0, r3 + beq .L1474 + cmp r5, r0 + bne .L1475 + ldr r3, [r4, #2324] + ldrh r3, [r3, r0, lsl #1] + cbz r3, .L1476 +.L1475: + bl update_vpc_list +.L1476: + movw r3, #65535 + strh r3, [r4, #4000] @ movhi +.L1474: + mov r0, r6 + bl allocate_data_superblock + bl l2p_flush + movs r0, #0 + bl FtlEctTblFlush + bl FtlVpcTblFlush + movs r0, #0 + pop {r4, r5, r6, pc} +.L1473: + bl INSERT_FREE_LIST + b .L1472 +.L1481: + .align 2 +.L1480: + .word .LANCHOR0 + .word .LANCHOR1+490 + .word .LC1 + .fnend + .size allocate_new_data_superblock, .-allocate_new_data_superblock + .align 1 + .global FtlProgPages + .syntax unified + .thumb + .thumb_func + .fpu softvfp + .type FtlProgPages, %function +FtlProgPages: + .fnstart + @ args = 0, pretend = 0, frame = 16 + @ frame_needed = 0, uses_anonymous_args = 0 + push {r4, r5, r6, r7, r8, r9, r10, fp, lr} + .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} + movs r7, #0 + ldr r6, .L1496 + .pad #20 + sub sp, sp, #20 + mov r4, r3 + movs r2, #0 + ldr r10, .L1496+8 + mov r5, r0 + ldr fp, .L1496+12 + mov r9, r1 + ldrb r3, [r3, #9] @ zero_extendqisi2 + bl FlashProgPages +.L1483: + cmp r7, r9 + beq .L1490 + mov r8, #0 + b .L1491 +.L1486: + ldr r0, [r5, #4] + ubfx r0, r0, #10, #16 + bl P2V_block_in_plane + ldrh r3, [r4] + cmp r3, r0 + bne .L1484 + ldr r1, [r6, #2324] + ldrh r0, [r4, #4] + ldrh r2, [r1, r3, lsl #1] + subs r2, r2, r0 + strh r2, [r1, r3, lsl #1] @ movhi + ldrh r3, [r6, #102] + strb r8, [r4, #6] + strh r8, [r4, #4] @ movhi + strh r3, [r4, #2] @ movhi +.L1484: + ldrh r3, [r4, #4] + cbnz r3, .L1485 + mov r0, r4 + bl allocate_new_data_superblock +.L1485: + ldr r3, [r6, #2732] + adds r3, r3, #1 + str r3, [r6, #2732] + ldr r0, [r5, #4] + ubfx r0, r0, #10, #16 + bl FtlGcMarkBadPhyBlk + mov r0, r4 + bl get_new_active_ppa + movs r2, #0 + str r0, [r5, #4] + str r0, [sp, #12] + movs r1, #1 + ldrb r3, [r4, #9] @ zero_extendqisi2 + mov r0, r5 + bl FlashProgPages +.L1491: + ldr r3, [r5] + adds r3, r3, #1 + beq .L1486 + ldrb r2, [r4, #6] @ zero_extendqisi2 + ldrh r3, [r6, #32] + cmp r2, r3 + bcc .L1487 + mov r2, #936 + mov r1, r10 + mov r0, fp + bl sftl_printk +.L1487: + ldr r3, [r5, #4] + add r1, sp, #16 + movs r2, #1 + ldr r0, [r5, #16] + str r3, [r1, #-4]! + bl log2phys + ldr r3, [r5, #12] + ldr r3, [r3, #12] + ubfx r0, r3, #10, #16 + str r3, [sp, #4] + bl P2V_block_in_plane + ldr r3, [sp, #4] + mov r8, r0 + adds r3, r3, #1 + beq .L1488 + ldr r3, [r6, #2324] + ldrh r2, [r3, r0, lsl #1] + cbnz r2, .L1489 + mov r1, r0 + ldr r0, .L1496+4 + bl sftl_printk +.L1489: + mov r0, r8 + bl decrement_vpc_count +.L1488: + adds r7, r7, #1 + adds r5, r5, #20 + b .L1483 +.L1490: + ldrb r2, [r4, #6] @ zero_extendqisi2 + ldrh r3, [r6, #32] + cmp r2, r3 + bcc .L1482 + movw r2, #951 + ldr r1, .L1496+8 + ldr r0, .L1496+12 + bl sftl_printk +.L1482: + add sp, sp, #20 + @ sp needed + pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} +.L1497: + .align 2 +.L1496: + .word .LANCHOR0 + .word .LC111 + .word .LANCHOR1+519 + .word .LC1 + .fnend + .size FtlProgPages, .-FtlProgPages + .align 1 .global FtlGcFreeTempBlock .syntax unified .thumb @@ -10180,49 +10338,49 @@ FtlGcFreeTempBlock: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #12 movw r2, #65535 - ldr r4, .L1490 + ldr r4, .L1524 ldrh r5, [r4, #2444] ldrh r1, [r4, #102] cmp r5, r2 - bne .L1465 -.L1475: + bne .L1499 +.L1509: ldrh r2, [r4, #2444] movs r3, #0 - str r3, [r4, #4000] + str r3, [r4, #4008] movw r3, #65535 cmp r2, r3 - bne .L1488 -.L1466: + bne .L1522 +.L1500: movs r0, #0 -.L1464: +.L1498: add sp, sp, #12 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1465: - cbz r0, .L1468 - ldr r3, .L1490+4 +.L1499: + cbz r0, .L1502 + ldr r3, .L1524+4 ldrh r0, [r3, #4] cmp r0, r2 - beq .L1469 -.L1470: + beq .L1503 +.L1504: movs r1, #2 -.L1468: - ldr r0, .L1490+8 +.L1502: + ldr r0, .L1524+8 bl FtlGcScanTempBlk str r0, [sp, #4] adds r0, r0, #1 - beq .L1471 + beq .L1505 ldr r2, [r4, #2328] ldrh r3, [r2, r5, lsl #1] cmp r3, #4 - bls .L1472 + bls .L1506 subs r3, r3, #5 movs r0, #1 strh r3, [r2, r5, lsl #1] @ movhi bl FtlEctTblFlush -.L1472: - ldr r3, [r4, #4000] - cbnz r3, .L1473 +.L1506: + ldr r3, [r4, #4008] + cbnz r3, .L1507 ldr r3, [r4, #2732] ldr r0, [sp, #4] adds r3, r3, #1 @@ -10230,67 +10388,66 @@ FtlGcFreeTempBlock: str r3, [r4, #2732] bl FtlBbmMapBadBlock bl FtlBbmTblFlush -.L1473: +.L1507: movs r3, #0 - str r3, [r4, #4000] -.L1484: + str r3, [r4, #4008] +.L1518: movs r0, #1 - b .L1464 -.L1469: + b .L1498 +.L1503: movs r2, #0 strh r2, [r3, #4] @ movhi ldrh r3, [r4, #2344] cmp r3, #17 - bhi .L1470 - b .L1468 -.L1471: - ldr r3, .L1490+4 + bhi .L1504 + b .L1502 +.L1505: + ldr r3, .L1524+4 ldrh r2, [r3, #4] movw r3, #65535 cmp r2, r3 - bne .L1484 - b .L1475 -.L1488: - bl FtlCacheWriteBack + bne .L1518 + b .L1509 +.L1522: ldrb r1, [r4, #2451] @ zero_extendqisi2 ldrh r3, [r4, #102] ldrh r2, [r4, #3200] muls r3, r1, r3 cmp r2, r3 - beq .L1476 + beq .L1510 movs r2, #162 - ldr r1, .L1490+12 - ldr r0, .L1490+16 + ldr r1, .L1524+12 + ldr r0, .L1524+16 bl sftl_printk -.L1476: +.L1510: ldrb r3, [r4, #2451] @ zero_extendqisi2 movs r6, #0 ldrh r0, [r4, #102] mov r9, #12 ldr r2, [r4, #2324] ldrh r1, [r4, #2444] - ldr r10, .L1490+12 + ldr r10, .L1524+12 smulbb r3, r3, r0 - ldr fp, .L1490+16 + ldr fp, .L1524+16 strh r3, [r2, r1, lsl #1] @ movhi ldr r2, [r4, #2528] ldrh r3, [r4, #3200] add r3, r3, r2 str r3, [r4, #2528] -.L1477: +.L1511: ldrh r2, [r4, #3200] uxth r3, r6 cmp r2, r3 - bhi .L1481 + bhi .L1515 movw r0, #65535 bl decrement_vpc_count ldrh r0, [r4, #2444] ldr r3, [r4, #2324] ldrh r3, [r3, r0, lsl #1] cmp r3, #0 - beq .L1482 + beq .L1516 bl INSERT_DATA_LIST -.L1483: +.L1517: movs r5, #0 movw r6, #65535 strh r6, [r4, #2444] @ movhi @@ -10302,12 +10459,12 @@ FtlGcFreeTempBlock: ldrh r2, [r4, #2344] add r3, r3, r3, lsl #1 cmp r2, r3, asr #2 - ble .L1466 + ble .L1500 movs r3, #20 strh r6, [r4, #2588] @ movhi strh r3, [r4, #3148] @ movhi - b .L1466 -.L1481: + b .L1500 +.L1515: uxth r7, r6 ldr r8, [r4, #3196] ldr r3, [r4, #2504] @@ -10315,12 +10472,12 @@ FtlGcFreeTempBlock: add r5, r8, r7 ldr r2, [r5, #8] cmp r2, r3 - bcc .L1478 + bcc .L1512 movs r2, #168 mov r1, r10 mov r0, fp bl sftl_printk -.L1478: +.L1512: movs r2, #0 add r1, sp, #4 ldr r0, [r5, #8] @@ -10328,7 +10485,7 @@ FtlGcFreeTempBlock: ldr r0, [r8, r7] ldr r3, [sp, #4] cmp r0, r3 - bne .L1479 + bne .L1513 ubfx r0, r0, #10, #16 bl P2V_block_in_plane movs r2, #1 @@ -10337,23 +10494,23 @@ FtlGcFreeTempBlock: ldr r0, [r5, #8] bl log2phys mov r0, r7 -.L1489: +.L1523: bl decrement_vpc_count -.L1480: +.L1514: adds r6, r6, #1 - b .L1477 -.L1479: + b .L1511 +.L1513: ldr r2, [r5, #4] cmp r3, r2 - beq .L1480 + beq .L1514 ldrh r0, [r4, #2444] - b .L1489 -.L1482: + b .L1523 +.L1516: bl INSERT_FREE_LIST - b .L1483 -.L1491: + b .L1517 +.L1525: .align 2 -.L1490: +.L1524: .word .LANCHOR0 .word .LANCHOR2 .word .LANCHOR0+2444 @@ -10374,25 +10531,25 @@ FtlGcPageRecovery: @ frame_needed = 0, uses_anonymous_args = 0 push {r4, lr} .save {r4, lr} - ldr r4, .L1494 + ldr r4, .L1528 ldrh r1, [r4, #102] addw r0, r4, #2444 bl FtlGcScanTempBlk ldrh r2, [r4, #2446] ldrh r3, [r4, #102] cmp r2, r3 - bcc .L1492 - add r0, r4, #3904 + bcc .L1526 + addw r0, r4, #3908 bl FtlMapBlkWriteDump_data movs r0, #0 bl FtlGcFreeTempBlock movs r3, #0 - str r3, [r4, #4000] -.L1492: + str r3, [r4, #4008] +.L1526: pop {r4, pc} -.L1495: +.L1529: .align 2 -.L1494: +.L1528: .word .LANCHOR0 .fnend .size FtlGcPageRecovery, .-FtlGcPageRecovery @@ -10410,9 +10567,9 @@ FtlPowerLostRecovery: push {r4, r5, r6, lr} .save {r4, r5, r6, lr} movs r5, #0 - ldr r4, .L1497 + ldr r4, .L1531 addw r6, r4, #2348 - str r5, [r4, #4012] + str r5, [r4, #4020] mov r0, r6 addw r4, r4, #2396 bl FtlRecoverySuperblock @@ -10427,9 +10584,9 @@ FtlPowerLostRecovery: bl decrement_vpc_count mov r0, r5 pop {r4, r5, r6, pc} -.L1498: +.L1532: .align 2 -.L1497: +.L1531: .word .LANCHOR0 .fnend .size FtlPowerLostRecovery, .-FtlPowerLostRecovery @@ -10447,35 +10604,35 @@ Ftl_gc_temp_data_write_back: push {r4, r5, r6, lr} .save {r4, r5, r6, lr} movs r3, #0 - ldr r4, .L1506 + ldr r4, .L1540 movs r5, #0 movs r6, #20 mov r2, r3 ldr r1, [r4, #3164] - ldr r0, [r4, #3836] + ldr r0, [r4, #3840] bl FlashProgPages -.L1500: +.L1534: ldr r1, [r4, #3164] uxth r3, r5 cmp r1, r3 - bhi .L1503 - ldr r0, [r4, #3836] + bhi .L1537 + ldr r0, [r4, #3840] bl FtlGcBufFree ldrh r3, [r4, #2448] movs r0, #0 str r0, [r4, #3164] - cbnz r3, .L1499 + cbnz r3, .L1533 movs r0, #1 bl FtlGcFreeTempBlock - b .L1505 -.L1503: + b .L1539 +.L1537: muls r3, r6, r3 - ldr r2, [r4, #3836] + ldr r2, [r4, #3840] adds r5, r5, #1 adds r1, r2, r3 ldr r2, [r2, r3] adds r0, r2, #1 - bne .L1501 + bne .L1535 ldrh r0, [r4, #2444] movs r5, #0 ldr r1, [r4, #2324] @@ -10484,27 +10641,27 @@ Ftl_gc_temp_data_write_back: ldr r2, [r4, #2732] adds r2, r2, #1 str r2, [r4, #2732] - ldr r2, [r4, #3836] + ldr r2, [r4, #3840] add r3, r3, r2 ldr r0, [r3, #4] ubfx r0, r0, #10, #16 bl FtlBbmMapBadBlock bl FtlBbmTblFlush bl FtlGcPageVarInit -.L1505: +.L1539: movs r0, #1 -.L1499: +.L1533: pop {r4, r5, r6, pc} -.L1501: +.L1535: ldr r3, [r1, #12] ldr r1, [r1, #4] ldr r2, [r3, #8] ldr r0, [r3, #12] bl FtlGcUpdatePage - b .L1500 -.L1507: + b .L1534 +.L1541: .align 2 -.L1506: +.L1540: .word .LANCHOR0 .fnend .size Ftl_gc_temp_data_write_back, .-Ftl_gc_temp_data_write_back @@ -10522,18 +10679,17 @@ Ftl_get_new_temp_ppa: push {r3, r4, r5, lr} .save {r3, r4, r5, lr} movw r3, #65535 - ldr r4, .L1511 + ldr r4, .L1545 ldrh r2, [r4, #2444] cmp r2, r3 - beq .L1509 + beq .L1543 ldrh r3, [r4, #2448] - cbnz r3, .L1510 -.L1509: - bl FtlCacheWriteBack + cbnz r3, .L1544 +.L1543: movs r0, #0 movs r5, #0 bl FtlGcFreeTempBlock - ldr r0, .L1511+4 + ldr r0, .L1545+4 strb r5, [r4, #2452] bl allocate_data_superblock strh r5, [r4, #3192] @ movhi @@ -10542,13 +10698,13 @@ Ftl_get_new_temp_ppa: mov r0, r5 bl FtlEctTblFlush bl FtlVpcTblFlush -.L1510: - ldr r0, .L1511+4 +.L1544: + ldr r0, .L1545+4 pop {r3, r4, r5, lr} b get_new_active_ppa -.L1512: +.L1546: .align 2 -.L1511: +.L1545: .word .LANCHOR0 .word .LANCHOR0+2444 .fnend @@ -10564,30 +10720,30 @@ rk_ftl_garbage_collect: .fnstart @ args = 0, pretend = 0, frame = 24 @ frame_needed = 0, uses_anonymous_args = 0 - ldr r3, .L1632 + ldr r3, .L1665 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} mov r7, r0 .pad #36 sub sp, sp, #36 mov r4, r3 - ldr r0, [r3, #3820] + ldr r0, [r3, #3824] cmp r0, #0 - bne .L1588 + bne .L1621 ldrh r2, [r3, #2336] cmp r2, #47 - bls .L1513 - ldr r2, .L1632+4 + bls .L1547 + ldr r2, .L1665+4 ldrh r1, [r2, #4] movw r2, #65535 cmp r1, r2 - bne .L1515 -.L1518: - ldrh r2, [r4, #3204] - movw r1, #65535 - cmp r2, r1 - bne .L1516 -.L1517: + bne .L1549 +.L1552: + ldrh r0, [r4, #3204] + movw r2, #65535 + cmp r0, r2 + bne .L1550 +.L1551: ldr r3, [r4, #3152] movw r5, #65535 ldrh r1, [r4, #2588] @@ -10595,123 +10751,131 @@ rk_ftl_garbage_collect: add r3, r3, r7, lsl #7 cmp r1, r5 str r3, [r4, #3152] - bne .L1519 + bne .L1553 ldrh r2, [r4, #2444] cmp r2, r1 - bne .L1520 + bne .L1554 ldrh r8, [r4, #3202] cmp r8, r2 - bne .L1521 + bne .L1555 ldrh r2, [r4, #2344] cmp r2, #24 ite cc movcc r2, #5120 movcs r2, #1024 cmp r3, r2 - bls .L1521 - ldr r3, .L1632+8 + bls .L1555 + ldr r3, .L1665+8 movs r6, #0 str r6, [r4, #3152] - strh r6, [r3, #-188] @ movhi + strh r6, [r3, #-184] @ movhi bl GetSwlReplaceBlock cmp r0, r8 mov r5, r0 - bne .L1592 + bne .L1625 ldrh r2, [r4, #2344] ldrh r3, [r4, #3150] cmp r2, r3 - bcs .L1524 + bcs .L1558 movs r0, #64 bl List_get_gc_head_node uxth r3, r0 cmp r3, r5 - beq .L1526 + beq .L1560 mov r0, r3 ldr r3, [r4, #2324] ldrh r3, [r3, r0, lsl #1] cmp r3, #7 - bhi .L1527 + bhi .L1561 mov r0, r6 bl List_get_gc_head_node uxth r6, r0 movs r3, #128 strh r3, [r4, #3150] @ movhi cmp r6, r5 - bne .L1523 -.L1526: + bne .L1557 +.L1560: bl FtlGcReFreshBadBlk cmp r7, #0 - bne .L1529 + bne .L1563 movw r3, #65535 cmp r5, r3 - bne .L1529 -.L1586: + bne .L1563 +.L1619: ldrh r3, [r4, #2344] cmp r3, #24 - bhi .L1593 + bhi .L1626 cmp r3, #16 ldrh r6, [r4, #102] - bls .L1531 + bls .L1565 lsrs r6, r6, #5 -.L1530: +.L1564: ldrh r2, [r4, #3148] cmp r2, r3 - bcs .L1534 + bcs .L1568 ldrh r3, [r4, #2444] movw r2, #65535 cmp r3, r2 - bne .L1535 + bne .L1569 ldrh r2, [r4, #3202] cmp r2, r3 - bne .L1535 - ldr r3, .L1632+8 - ldrh r0, [r3, #-188] - cbnz r0, .L1536 + bne .L1569 + ldr r3, .L1665+8 + ldrh r0, [r3, #-184] + cbnz r0, .L1570 ldr r3, [r4, #2504] ldr r2, [r4, #2500] add r3, r3, r3, lsl #1 cmp r2, r3, lsr #2 - bcs .L1537 -.L1536: + bcs .L1571 +.L1570: ldrh r3, [r4, #2572] add r3, r3, r3, lsl #1 asrs r3, r3, #2 -.L1626: +.L1659: strh r3, [r4, #3148] @ movhi movs r3, #0 str r3, [r4, #3160] -.L1513: +.L1547: add sp, sp, #36 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1515: +.L1549: ldrh r3, [r3, #2444] cmp r3, r2 - beq .L1518 + beq .L1552 movs r0, #1 bl FtlGcFreeTempBlock cmp r0, #0 - beq .L1518 + beq .L1552 movs r0, #1 - b .L1513 -.L1516: + b .L1547 +.L1550: ldrh r3, [r4, #3202] - cmp r3, r1 - itt eq - strheq r2, [r4, #3202] @ movhi - strheq r3, [r4, #3204] @ movhi - b .L1517 -.L1527: + cmp r3, r2 + bne .L1551 + ldrh r1, [r4, #3206] + cmp r1, r3 + beq .L1551 + ldrh r2, [r4, #3208] + cmp r2, r3 + itttt ne + strhne r0, [r4, #3202] @ movhi + strhne r1, [r4, #3204] @ movhi + strhne r2, [r4, #3206] @ movhi + strhne r3, [r4, #3208] @ movhi + b .L1551 +.L1561: movs r3, #64 -.L1625: +.L1658: strh r3, [r4, #3150] @ movhi - b .L1526 -.L1524: + b .L1560 +.L1558: movs r3, #80 - b .L1625 -.L1592: + b .L1658 +.L1625: mov r6, r0 -.L1523: +.L1557: ldr r3, [r4, #2324] mov r5, r6 ldrh r1, [r4, #3148] @@ -10719,135 +10883,135 @@ rk_ftl_garbage_collect: ldrh r3, [r3, r6, lsl #1] str r1, [sp, #4] ldr r1, [r4, #2328] - ldr r0, .L1632+12 + ldr r0, .L1665+12 ldrh r1, [r1, r6, lsl #1] str r1, [sp] mov r1, r6 bl sftl_printk - b .L1526 -.L1531: + b .L1560 +.L1565: cmp r3, #12 - bls .L1532 + bls .L1566 lsrs r6, r6, #4 - b .L1530 -.L1532: + b .L1564 +.L1566: cmp r3, #8 - bls .L1530 + bls .L1564 lsrs r6, r6, #2 - b .L1530 -.L1593: + b .L1564 +.L1626: movs r6, #1 - b .L1530 -.L1537: + b .L1564 +.L1571: movs r3, #18 - b .L1626 -.L1535: + b .L1659 +.L1569: ldrh r3, [r4, #2572] add r3, r3, r3, lsl #1 asrs r3, r3, #2 strh r3, [r4, #3148] @ movhi -.L1534: - ldrh r3, [r4, #3206] - cbz r3, .L1594 +.L1568: + ldrh r3, [r4, #3210] + cbz r3, .L1627 adds r6, r6, #32 uxth r6, r6 -.L1594: +.L1627: movw r5, #65535 -.L1540: +.L1574: ldrh r3, [r4, #2588] movw r2, #65535 cmp r3, r2 - bne .L1549 + bne .L1583 cmp r5, r3 - beq .L1550 + beq .L1584 strh r5, [r4, #2588] @ movhi -.L1551: +.L1585: ldrh r0, [r4, #2588] movw r7, #65535 movs r3, #0 strb r3, [r4, #2596] cmp r0, r7 - beq .L1549 + beq .L1583 bl IsBlkInGcList - cbz r0, .L1554 + cbz r0, .L1588 strh r7, [r4, #2588] @ movhi -.L1554: +.L1588: ldrh r2, [r4, #2588] movw r3, #65535 cmp r2, r3 - beq .L1549 - ldr r0, .L1632+16 + beq .L1583 + ldr r0, .L1665+16 bl make_superblock - ldr r2, .L1632+8 + ldr r2, .L1665+8 movs r3, #0 strh r3, [r4, #2590] @ movhi strb r3, [r4, #2594] - strh r3, [r2, #-186] @ movhi + strh r3, [r2, #-182] @ movhi ldrh r1, [r4, #2588] ldr r3, [r4, #2324] ldrh r3, [r3, r1, lsl #1] - strh r3, [r2, #-184] @ movhi -.L1549: + strh r3, [r2, #-180] @ movhi +.L1583: ldrh r3, [r4, #2588] ldrh r2, [r4, #2348] cmp r2, r3 - beq .L1555 + beq .L1589 ldrh r2, [r4, #2396] cmp r2, r3 - beq .L1555 - ldr r7, .L1632+8 -.L1556: + beq .L1589 + ldr r7, .L1665+8 +.L1590: ldrh r9, [r4, #2588] movw r3, #65535 cmp r9, r3 - bne .L1557 + bne .L1591 movs r3, #0 mov r10, r3 str r3, [r4, #3160] -.L1558: +.L1592: ldrh r8, [r4, #3156] mov r0, r8 bl List_get_gc_head_node uxth fp, r0 cmp fp, r9 strh fp, [r4, #2588] @ movhi - bne .L1559 + bne .L1593 movs r3, #0 movs r0, #8 strh r3, [r4, #3156] @ movhi - b .L1513 -.L1541: + b .L1547 +.L1575: movs r3, #0 ldrh r7, [r4, #2344] str r3, [r4, #3160] ldrh r3, [r4, #3148] - ldr r5, .L1632+8 + ldr r5, .L1665+8 cmp r3, r7 - bcs .L1542 - ldrh r3, [r5, #-188] - cbnz r3, .L1543 + bcs .L1576 + ldrh r3, [r5, #-184] + cbnz r3, .L1577 ldr r3, [r4, #2504] ldr r2, [r4, #2500] add r3, r3, r3, lsl #1 cmp r2, r3, lsr #2 - bcs .L1544 -.L1543: + bcs .L1578 +.L1577: ldrh r3, [r4, #2572] add r3, r3, r3, lsl #1 asrs r3, r3, #2 -.L1627: +.L1660: strh r3, [r4, #3148] @ movhi -.L1629: +.L1662: bl FtlReadRefresh - ldrh r0, [r5, #-188] - b .L1513 -.L1544: + ldrh r0, [r5, #-184] + b .L1547 +.L1578: movs r3, #18 - b .L1627 -.L1542: - ldrh r0, [r5, #-188] + b .L1660 +.L1576: + ldrh r0, [r5, #-184] cmp r0, #0 - bne .L1546 + bne .L1580 ldrh r6, [r4, #2572] add r3, r6, r6, lsl #1 asrs r3, r3, #2 @@ -10861,57 +11025,57 @@ rk_ftl_garbage_collect: muls r3, r1, r3 add r3, r3, r3, lsr #31 cmp r2, r3, asr #1 - ble .L1547 + ble .L1581 subs r6, r6, #1 cmp r7, r6 - bge .L1629 -.L1547: + bge .L1662 +.L1581: cmp r2, #0 - bne .L1546 + bne .L1580 movw r0, #65535 bl decrement_vpc_count ldrh r0, [r4, #2344] adds r0, r0, #1 - b .L1513 -.L1550: + b .L1547 +.L1666: + .align 2 +.L1665: + .word .LANCHOR0 + .word .LANCHOR2 + .word .LANCHOR3 + .word .LC112 + .word .LANCHOR0+2588 +.L1584: ldrh r3, [r4, #3202] cmp r3, r5 - beq .L1551 + beq .L1585 ldr r2, [r4, #2324] ldrh r3, [r2, r3, lsl #1] - cbnz r3, .L1552 + cbnz r3, .L1586 strh r5, [r4, #3202] @ movhi -.L1552: +.L1586: ldrh r3, [r4, #3202] strh r3, [r4, #2588] @ movhi movw r3, #65535 strh r3, [r4, #3202] @ movhi - b .L1551 -.L1633: - .align 2 -.L1632: - .word .LANCHOR0 - .word .LANCHOR2 - .word .LANCHOR3 - .word .LC108 - .word .LANCHOR0+2588 -.L1555: + b .L1585 +.L1589: movw r3, #65535 strh r3, [r4, #2588] @ movhi -.L1630: - ldr r3, .L1634 - ldrh r0, [r3, #-188] - b .L1513 -.L1559: +.L1663: + ldr r3, .L1667 + ldrh r0, [r3, #-184] + b .L1547 +.L1593: str r0, [sp, #8] mov r0, fp bl IsBlkInGcList add r8, r8, #1 ldr r3, [sp, #8] - cbz r0, .L1560 + cbz r0, .L1594 strh r8, [r4, #3156] @ movhi - b .L1558 -.L1560: + b .L1592 +.L1594: uxth r0, r3 ldrh ip, [r4, #32] ldrh r3, [r4, #102] @@ -10922,77 +11086,77 @@ rk_ftl_garbage_collect: ldrh r1, [r2, r0, lsl #1] add ip, r3, r3, lsr #31 cmp r1, ip, asr #1 - bgt .L1562 + bgt .L1596 cmp r8, #48 - bls .L1563 + bls .L1597 cmp r1, #8 - bls .L1563 + bls .L1597 ldrh r1, [r4, #3192] cmp r1, #35 - bhi .L1563 -.L1562: + bhi .L1597 +.L1596: strh r10, [r4, #3156] @ movhi -.L1563: +.L1597: ldrh r2, [r2, r0, lsl #1] cmp r3, r2 - bgt .L1564 + bgt .L1598 cmp r5, r9 - bne .L1564 + bne .L1598 movs r3, #0 strh r5, [r4, #2588] @ movhi strh r3, [r4, #3156] @ movhi - b .L1630 -.L1564: - cbnz r2, .L1565 + b .L1663 +.L1598: + cbnz r2, .L1599 movw r0, #65535 bl decrement_vpc_count ldrh r3, [r4, #3156] adds r3, r3, #1 strh r3, [r4, #3156] @ movhi - b .L1558 -.L1565: + b .L1592 +.L1599: movs r3, #0 strb r3, [r4, #2596] ldrh r3, [r4, #2348] cmp r3, fp - bne .L1566 - movw r2, #658 - ldr r1, .L1634+4 - ldr r0, .L1634+8 + bne .L1600 + movw r2, #665 + ldr r1, .L1667+4 + ldr r0, .L1667+8 bl sftl_printk -.L1566: +.L1600: ldrh r2, [r4, #2588] ldrh r3, [r4, #2396] cmp r2, r3 - bne .L1567 - movw r2, #659 - ldr r1, .L1634+4 - ldr r0, .L1634+8 + bne .L1601 + movw r2, #666 + ldr r1, .L1667+4 + ldr r0, .L1667+8 bl sftl_printk -.L1567: +.L1601: ldrh r2, [r4, #2588] ldrh r3, [r4, #2444] cmp r2, r3 - bne .L1568 - mov r2, #660 - ldr r1, .L1634+4 - ldr r0, .L1634+8 + bne .L1602 + movw r2, #667 + ldr r1, .L1667+4 + ldr r0, .L1667+8 bl sftl_printk -.L1568: - ldr r0, .L1634+12 +.L1602: + ldr r0, .L1667+12 bl make_superblock ldrh r1, [r4, #2588] movs r3, #0 ldr r2, [r4, #2324] - strh r3, [r7, #-186] @ movhi + strh r3, [r7, #-182] @ movhi ldrh r2, [r2, r1, lsl #1] strh r3, [r4, #2590] @ movhi strb r3, [r4, #2594] - strh r2, [r7, #-184] @ movhi -.L1557: + strh r2, [r7, #-180] @ movhi +.L1591: bl FtlReadRefresh movs r3, #1 - str r3, [r4, #3820] + str r3, [r4, #3824] ldrh r3, [r4, #102] str r3, [sp, #12] ldrh r3, [r4, #2590] @@ -11005,11 +11169,11 @@ rk_ftl_garbage_collect: mov r3, #0 it gt uxthgt r6, r6 -.L1628: +.L1661: str r3, [sp, #8] ldrh r3, [sp, #8] cmp r6, r3 - bls .L1578 + bls .L1612 ldr r3, [sp, #8] movw r10, #65535 ldrh r1, [r4, #2590] @@ -11018,58 +11182,58 @@ rk_ftl_garbage_collect: ldr r0, [r4, #3180] add r1, r1, r3 movs r3, #0 - ldr ip, .L1634+16 + ldr ip, .L1667+20 mov r8, r3 - b .L1579 -.L1572: + b .L1613 +.L1606: ldrh r2, [ip, #2]! cmp r2, r10 - beq .L1571 + beq .L1605 mla r9, fp, r8, r0 add r8, r8, #1 orr r2, r1, r2, lsl #10 uxth r8, r8 str r2, [r9, #4] -.L1571: +.L1605: adds r3, r3, #1 -.L1579: +.L1613: uxth r2, r3 cmp lr, r2 - bhi .L1572 + bhi .L1606 mov fp, #0 ldrb r2, [r4, #2596] @ zero_extendqisi2 mov r1, r8 bl FlashReadPages -.L1573: +.L1607: uxth r3, fp cmp r8, r3 - bhi .L1577 + bhi .L1611 ldr r3, [sp, #8] adds r3, r3, #1 - b .L1628 -.L1577: + b .L1661 +.L1611: mov r9, #20 ldr r3, [r4, #3180] mul r9, r9, fp add r2, r3, r9 ldr r3, [r3, r9] adds r3, r3, #1 - beq .L1574 + beq .L1608 ldr r10, [r2, #12] movw r3, #61589 ldrh r2, [r10] cmp r2, r3 - bne .L1574 + bne .L1608 ldr r3, [r10, #8] adds r2, r3, #1 - bne .L1575 - mov r2, #696 - ldr r1, .L1634+4 - ldr r0, .L1634+8 + bne .L1609 + movw r2, #703 + ldr r1, .L1667+4 + ldr r0, .L1667+8 str r3, [sp, #16] bl sftl_printk ldr r3, [sp, #16] -.L1575: +.L1609: movs r2, #0 mov r0, r3 add r1, sp, #28 @@ -11079,21 +11243,21 @@ rk_ftl_garbage_collect: add r0, r0, r9 ldr r2, [r0, #4] cmp r2, r3 - bne .L1574 - ldrh r3, [r7, #-186] + bne .L1608 + ldrh r3, [r7, #-182] movs r2, #20 ldr r1, [r4, #3164] str r2, [sp, #20] adds r3, r3, #1 - strh r3, [r7, #-186] @ movhi - ldr r3, [r4, #3836] + strh r3, [r7, #-182] @ movhi + ldr r3, [r4, #3840] mla r3, r2, r1, r3 ldr r1, [r0, #16] str r1, [r3, #16] str r3, [sp, #16] bl Ftl_get_new_temp_ppa ldr r3, [sp, #16] - ldr r1, [r4, #3836] + ldr r1, [r4, #3840] ldr r2, [sp, #20] str r0, [r3, #4] ldr r3, [r4, #3164] @@ -11120,111 +11284,116 @@ rk_ftl_garbage_collect: ldrb r2, [r4, #2451] @ zero_extendqisi2 ldr r3, [r4, #3164] cmp r2, r3 - beq .L1576 + beq .L1610 ldrh r3, [r4, #2448] - cbnz r3, .L1574 -.L1576: + cbnz r3, .L1608 +.L1610: bl Ftl_gc_temp_data_write_back - cbz r0, .L1574 -.L1631: + cbz r0, .L1608 +.L1664: movs r3, #0 - ldrh r0, [r7, #-188] - str r3, [r4, #3820] - b .L1513 -.L1574: + ldrh r0, [r7, #-184] + str r3, [r4, #3824] + b .L1547 +.L1608: add fp, fp, #1 - b .L1573 -.L1578: + b .L1607 +.L1612: ldrh r3, [r4, #2590] add r6, r6, r3 ldr r3, [sp, #12] uxth r6, r6 cmp r3, r6 strh r6, [r4, #2590] @ movhi - bls .L1580 - ldrh r2, [r7, #-186] - ldrh r3, [r7, #-184] - cmp r2, r3 - bne .L1581 -.L1580: + bhi .L1614 ldr r3, [r4, #3164] - cbz r3, .L1582 + cbz r3, .L1615 bl Ftl_gc_temp_data_write_back cmp r0, #0 - bne .L1631 -.L1582: - ldrh r1, [r7, #-186] - cbnz r1, .L1583 + bne .L1664 +.L1615: + ldrh r6, [r7, #-182] + cbnz r6, .L1616 + ldrh r1, [r4, #2588] + ldr r3, [r4, #2324] + ldrh r3, [r3, r1, lsl #1] + cbz r3, .L1616 + ldrh r0, [r7, #-180] + ldrh r2, [r4, #2590] + str r3, [sp] + mov r3, r6 + str r0, [sp, #4] + ldr r0, .L1667+16 + bl sftl_printk ldrh r2, [r4, #2588] ldr r3, [r4, #2324] - ldrh r0, [r3, r2, lsl #1] - cbz r0, .L1583 - strh r1, [r3, r2, lsl #1] @ movhi + strh r6, [r3, r2, lsl #1] @ movhi ldrh r0, [r4, #2588] bl update_vpc_list - bl FtlCacheWriteBack bl l2p_flush bl FtlVpcTblFlush -.L1583: +.L1616: movw r3, #65535 strh r3, [r4, #2588] @ movhi -.L1581: +.L1614: ldrh r3, [r4, #2344] cmp r3, #2 - bhi .L1584 + bhi .L1617 ldrh r6, [r4, #102] - b .L1556 -.L1584: - ldrh r0, [r7, #-188] + b .L1590 +.L1617: movs r2, #0 - str r2, [r4, #3820] + str r2, [r4, #3824] + ldr r2, .L1667 + ldrh r0, [r2, #-184] cmp r0, #0 - bne .L1513 + bne .L1547 adds r0, r3, #1 - b .L1513 -.L1588: + b .L1547 +.L1621: movs r0, #0 - b .L1513 -.L1635: + b .L1547 +.L1668: .align 2 -.L1634: +.L1667: .word .LANCHOR3 .word .LANCHOR1+551 .word .LC1 .word .LANCHOR0+2588 + .word .LC113 .word .LANCHOR0+2602 -.L1519: +.L1553: cmp r7, #0 - beq .L1586 -.L1529: + beq .L1619 +.L1563: ldrh r2, [r4, #2444] movw r3, #65535 cmp r2, r3 - bne .L1597 -.L1587: + bne .L1630 +.L1620: ldrh r3, [r4, #3202] movw r2, #65535 cmp r3, r2 - bne .L1597 + bne .L1630 cmp r5, r3 - bne .L1597 + bne .L1630 ldrh r3, [r4, #2588] cmp r3, r5 - beq .L1541 -.L1546: + beq .L1575 +.L1580: movw r5, #65535 -.L1597: +.L1630: movs r6, #1 - b .L1540 -.L1521: + b .L1574 +.L1554: cmp r7, #0 - beq .L1586 + bne .L1580 + b .L1619 +.L1555: + cmp r7, #0 + beq .L1619 movw r5, #65535 - b .L1587 -.L1520: - cmp r7, #0 - bne .L1546 - b .L1586 + b .L1620 .fnend .size rk_ftl_garbage_collect, .-rk_ftl_garbage_collect .align 1 @@ -11258,253 +11427,274 @@ FtlRead: cmp r0, #16 push {r4, r5, r6, r7, r8, r9, r10, fp, lr} .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} - .pad #60 - sub sp, sp, #60 + .pad #84 + sub sp, sp, #84 mov r7, r1 - mov r10, r3 - str r2, [sp, #28] - bne .L1638 + mov r9, r3 + str r2, [sp, #56] + bne .L1671 mov r2, r3 - ldr r1, [sp, #28] + ldr r1, [sp, #56] add r0, r7, #256 bl FtlVendorPartRead - mov r8, r0 -.L1637: - mov r0, r8 - add sp, sp, #60 + str r0, [sp, #28] +.L1670: + ldr r0, [sp, #28] + add sp, sp, #84 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1638: - ldr r3, [sp, #28] - ldr r4, .L1669 +.L1671: + ldr r3, [sp, #56] + ldr r4, .L1703 adds r3, r1, r3 - str r3, [sp, #8] - ldr r2, [sp, #8] + str r3, [sp, #36] + ldr r2, [sp, #36] ldr r3, [r4, #140] cmp r2, r3 - bhi .L1658 - ldr r3, .L1669+4 + bhi .L1692 + ldr r3, .L1703+4 ldr r3, [r3] - adds r5, r3, #1 - beq .L1659 - bl FtlCacheWriteBack + adds r0, r3, #1 + beq .L1693 ldrh r5, [r4, #58] mov r0, r7 - mov r9, #0 - mov r6, r9 - mov r8, r9 + mov r8, #0 + mov r6, r8 mov r1, r5 bl __aeabi_uidiv - ldr r3, [sp, #8] + ldr r3, [sp, #36] mov r1, r5 - str r0, [sp, #12] + str r0, [sp, #40] subs r0, r3, #1 bl __aeabi_uidiv - ldr r3, [sp, #12] - ldr r5, [sp, #12] - str r0, [sp, #16] + ldr r3, [sp, #40] + ldr r5, [sp, #40] + str r0, [sp, #44] rsb r3, r3, #1 - str r9, [sp, #24] + str r8, [sp, #52] add r3, r3, r0 - str r9, [sp, #20] - str r3, [sp, #4] - ldr r2, [sp, #4] + str r8, [sp, #48] + str r3, [sp, #32] + ldr r2, [sp, #32] ldr r3, [r4, #2508] + str r8, [sp, #28] add r3, r3, r2 str r3, [r4, #2508] -.L1640: - ldr r3, [sp, #4] - cbnz r3, .L1656 - ldr r3, .L1669 - ldrh r2, [r3, #3206] - cbnz r2, .L1657 +.L1673: + ldr r3, [sp, #32] + cbnz r3, .L1690 + ldr r3, .L1703 + ldrh r2, [r3, #3210] + cbnz r2, .L1691 ldrh r3, [r3, #2344] cmp r3, #31 - bhi .L1637 -.L1657: + bhi .L1670 +.L1691: movs r1, #1 movs r0, #0 bl rk_ftl_garbage_collect - b .L1637 -.L1656: + b .L1670 +.L1690: + add r1, sp, #76 movs r2, #0 - add r1, sp, #52 mov r0, r5 bl log2phys - ldr r2, [sp, #52] - adds r0, r2, #1 - bne .L1641 - mov fp, #0 -.L1642: + ldr r3, [sp, #76] + adds r1, r3, #1 + bne .L1674 + mov r10, #0 +.L1675: ldrh r0, [r4, #58] - cmp fp, r0 - bcc .L1644 -.L1645: - ldr r3, [sp, #4] + cmp r10, r0 + bcc .L1677 +.L1678: + ldr r3, [sp, #32] adds r5, r5, #1 subs r3, r3, #1 - str r3, [sp, #4] - beq .L1649 + str r3, [sp, #32] + beq .L1682 ldrh r3, [r4, #32] cmp r6, r3, lsl #2 - bne .L1640 -.L1649: + bne .L1673 +.L1682: cmp r6, #0 - beq .L1640 + beq .L1673 movs r2, #0 mov r1, r6 - ldr r0, [r4, #3832] + ldr r0, [r4, #3836] mov fp, #0 bl FlashReadPages - lsl r3, r9, #9 - str r3, [sp, #40] - ldr r3, [sp, #20] + lsl r3, r8, #9 + str r3, [sp, #68] + ldr r3, [sp, #48] lsls r3, r3, #9 - str r3, [sp, #32] - ldr r3, [sp, #24] + str r3, [sp, #60] + ldr r3, [sp, #52] lsls r3, r3, #9 - str r3, [sp, #36] -.L1655: + str r3, [sp, #64] +.L1689: movs r3, #20 - ldr r2, [r4, #3832] - mul r3, r3, fp - ldr r0, [sp, #12] - add r2, r2, r3 - ldr r1, [r2, #16] - cmp r0, r1 - bne .L1651 - ldr r1, [r2, #8] - ldr r2, [r4, #3816] + ldr r1, [sp, #40] + mul r10, r3, fp + ldr r3, [r4, #3836] + add r3, r3, r10 + ldr r2, [r3, #16] cmp r1, r2 - bne .L1652 - str r3, [sp, #44] - mov r0, r10 - ldr r3, [sp, #32] - ldr r2, [sp, #36] + bne .L1684 + ldr r1, [r3, #8] + ldr r3, [r4, #3820] + cmp r1, r3 + bne .L1685 + ldr r3, [sp, #60] + mov r0, r9 + ldr r2, [sp, #64] add r1, r1, r3 -.L1668: +.L1702: bl ftl_memcpy - ldr r3, [sp, #44] -.L1652: - ldr r2, [r4, #3832] - ldr r0, [r2, r3] - add ip, r2, r3 - adds r1, r0, #1 +.L1685: + ldr r1, [r4, #3836] + add r1, r1, r10 + ldr r3, [r1, #12] + ldr r2, [r1, #16] + ldr r3, [r3, #8] + cmp r2, r3 + beq .L1686 + ldr r3, [r4, #2708] + adds r3, r3, #1 + str r3, [r4, #2708] + ldr r2, [r1, #8] + ldr r3, [r1, #12] + ldr r0, [r2, #4] + str r0, [sp, #16] + ldr r2, [r2] + ldr r0, .L1703+8 + str r2, [sp, #12] + ldr r2, [r3, #12] + str r2, [sp, #8] + ldr r2, [r3, #8] + str r2, [sp, #4] + ldr r2, [r3, #4] + str r2, [sp] + ldr r2, [r1, #4] + ldr r3, [r3] + ldr r1, [r1, #16] + bl sftl_printk +.L1686: + ldr r3, [r4, #3836] + ldr r1, [r3, r10] + add r0, r3, r10 + adds r2, r1, #1 itttt eq - ldreq r1, [r4, #2708] - moveq r8, r0 - addeq r1, r1, #1 - streq r1, [r4, #2708] - ldr r3, [r2, r3] + ldreq r2, [r4, #2708] + streq r1, [sp, #28] + addeq r2, r2, #1 + streq r2, [r4, #2708] + ldr r3, [r3, r10] cmp r3, #256 - bne .L1654 - ldr r0, [ip, #4] + bne .L1688 + ldr r0, [r0, #4] ubfx r0, r0, #10, #16 bl P2V_block_in_plane bl FtlGcRefreshBlock -.L1654: +.L1688: add fp, fp, #1 cmp r6, fp - bne .L1655 + bne .L1689 movs r6, #0 - b .L1640 -.L1644: - mla r0, r0, r5, fp + b .L1673 +.L1677: + mla r0, r0, r5, r10 cmp r7, r0 - bhi .L1643 - ldr r3, [sp, #8] + bhi .L1676 + ldr r3, [sp, #36] cmp r3, r0 - bls .L1643 + bls .L1676 subs r0, r0, r7 mov r1, #512 - add r0, r10, r0, lsl #9 + add r0, r9, r0, lsl #9 bl __memzero -.L1643: - add fp, fp, #1 - b .L1642 -.L1641: - ldr r3, [r4, #3832] - movs r1, #20 - ldrh fp, [r4, #58] - mla r3, r1, r6, r3 - str r2, [r3, #4] - ldr r2, [sp, #12] - cmp r5, r2 - bne .L1646 - ldr r2, [r4, #3816] - mov r1, fp +.L1676: + add r10, r10, #1 + b .L1675 +.L1674: + ldr r2, [r4, #3836] + mov fp, #20 + ldrh r10, [r4, #58] + mla fp, fp, r6, r2 + str r3, [fp, #4] + ldr r3, [sp, #40] + cmp r5, r3 + bne .L1679 + ldr r3, [r4, #3820] + mov r1, r10 mov r0, r7 - str r3, [sp, #32] - str r2, [r3, #8] + str r3, [fp, #8] bl __aeabi_uidivmod - sub r2, fp, r1 - str r1, [sp, #20] - ldr r1, [sp, #28] - mov r3, r2 - cmp r2, r1 + ldr r2, [sp, #56] + sub r3, r10, r1 + str r1, [sp, #48] + cmp r3, r2 it cs - movcs r3, r1 - cmp r3, fp - str r3, [sp, #24] - ldr r3, [sp, #32] - bne .L1647 - str r10, [r3, #8] -.L1647: - ldrh r2, [r4, #112] - ldr r1, [r4, #3812] - str r5, [r3, #16] - muls r2, r6, r2 + movcs r3, r2 + cmp r3, r10 + str r3, [sp, #52] + bne .L1680 + str r9, [fp, #8] +.L1680: + ldrh r3, [r4, #112] + ldr r2, [r4, #3816] + str r5, [fp, #16] + muls r3, r6, r3 adds r6, r6, #1 - bic r2, r2, #3 - add r2, r2, r1 - str r2, [r3, #12] - b .L1645 -.L1646: - ldr r2, [sp, #16] - cmp r5, r2 - bne .L1648 - ldr r2, [r4, #3808] - ldr r1, [sp, #8] - str r2, [r3, #8] - mul r2, fp, r5 - sub r9, r1, r2 - cmp fp, r9 - bne .L1647 -.L1667: - subs r2, r2, r7 - add r2, r10, r2, lsl #9 - str r2, [r3, #8] - b .L1647 -.L1648: - mul r2, r5, fp - b .L1667 -.L1651: - ldr r0, [sp, #16] - cmp r0, r1 - bne .L1652 - ldr r1, [r2, #8] - ldr r2, [r4, #3808] + bic r3, r3, #3 + add r3, r3, r2 + str r3, [fp, #12] + b .L1678 +.L1679: + ldr r3, [sp, #44] + cmp r5, r3 + bne .L1681 + ldr r3, [r4, #3812] + ldr r2, [sp, #36] + str r3, [fp, #8] + mul r3, r10, r5 + sub r8, r2, r3 + cmp r10, r8 + bne .L1680 +.L1701: + subs r3, r3, r7 + add r3, r9, r3, lsl #9 + str r3, [fp, #8] + b .L1680 +.L1681: + mul r3, r5, r10 + b .L1701 +.L1684: + ldr r1, [sp, #44] cmp r1, r2 - bne .L1652 - str r3, [sp, #44] + bne .L1685 + ldr r1, [r3, #8] + ldr r3, [r4, #3812] + cmp r1, r3 + bne .L1685 ldrh r0, [r4, #58] - ldr r3, [sp, #16] - ldr r2, [sp, #40] + ldr r3, [sp, #44] + ldr r2, [sp, #68] muls r0, r3, r0 subs r0, r0, r7 - add r0, r10, r0, lsl #9 - b .L1668 -.L1658: - mov r8, #-1 - b .L1637 -.L1659: - mov r8, r3 - b .L1637 -.L1670: + add r0, r9, r0, lsl #9 + b .L1702 +.L1692: + mov r3, #-1 +.L1693: + str r3, [sp, #28] + b .L1670 +.L1704: .align 2 -.L1669: +.L1703: .word .LANCHOR0 .word .LANCHOR2 + .word .LC96 .fnend .size FtlRead, .-FtlRead .align 1 @@ -11542,113 +11732,116 @@ FtlWrite: .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} .pad #68 sub sp, sp, #68 - mov r8, r1 + mov r10, r1 str r2, [sp, #12] - str r3, [sp, #4] - bne .L1673 + str r3, [sp, #8] + bne .L1707 mov r2, r3 ldr r1, [sp, #12] - add r0, r8, #256 + add r0, r10, #256 bl FtlVendorPartWrite -.L1672: +.L1706: add sp, sp, #68 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1673: +.L1707: ldr r3, [sp, #12] - ldr r4, .L1739 - adds r7, r1, r3 - ldr r3, [r4, #140] - cmp r7, r3 - bhi .L1715 - ldr r6, .L1739+4 - ldr r0, [r6] - adds r5, r0, #1 - beq .L1672 - ldr r3, .L1739+8 + ldr r5, .L1757 + adds r6, r1, r3 + ldr r3, [r5, #140] + cmp r6, r3 + bhi .L1743 + ldr r4, .L1757+4 + ldr r0, [r4] + adds r7, r0, #1 + beq .L1706 + ldr r3, .L1757+8 mov r2, #2048 - ldrh r5, [r4, #58] - mov r0, r8 - str r2, [r3, #-180] - mov r1, r5 + ldrh r7, [r5, #58] + mov r0, r10 + str r2, [r3, #-176] + mov r1, r7 bl __aeabi_uidiv - mov r1, r5 - mov r10, r0 - subs r0, r7, #1 + mov r1, r7 + str r0, [sp, #4] + subs r0, r6, #1 bl __aeabi_uidiv - sub r7, r0, r10 - ldr fp, [r4, #3988] - adds r3, r7, #1 - adds r2, r7, #1 - str r3, [sp, #8] - ldr r3, [r4, #2516] + ldr r2, [sp, #4] str r0, [sp, #20] + subs r3, r0, r2 + str r3, [sp, #24] + adds r3, r3, #1 + str r3, [sp] + ldr r2, [sp] + ldr r3, [r5, #2516] add r3, r3, r2 - str r3, [r4, #2516] - cmp fp, #0 - beq .L1675 - ldr r3, [fp, #16] - cmp r10, r3 - beq .L1676 - bl FtlCacheWriteBack -.L1675: - ldr r3, [r6, #8] - cmp r3, #0 - beq .L1717 - ldr r5, .L1739+12 - ldrh r2, [r4, #2352] - add r3, r5, #48 + str r3, [r5, #2516] + ldr r3, [r4, #8] + cbz r3, .L1745 + ldrh r2, [r5, #2352] + addw r3, r5, #2348 + addw r5, r5, #2396 cmp r2, #0 - it eq - moveq r5, r3 -.L1678: - ldr r4, .L1739 - mov r6, r10 -.L1679: - ldr r3, [sp, #8] - cmp r3, #0 - beq .L1713 + it ne + movne r5, r3 +.L1709: + ldr r7, [sp, #4] + ldr r4, .L1757 +.L1710: + ldr r3, [sp] + cbnz r3, .L1739 + mov r0, r3 + ldr r1, [sp, #24] + bl rk_ftl_garbage_collect + ldrh r3, [r4, #2344] + cmp r3, #15 + bls .L1740 +.L1742: + movs r0, #0 + b .L1706 +.L1745: + addw r5, r5, #2348 + b .L1709 +.L1739: ldrb r2, [r5, #6] @ zero_extendqisi2 ldrh r3, [r4, #32] cmp r2, r3 - bcc .L1680 - mov r2, #1012 - ldr r1, .L1739+16 - ldr r0, .L1739+20 + bcc .L1711 + movw r2, #991 + ldr r1, .L1757+12 + ldr r0, .L1757+16 bl sftl_printk -.L1680: - ldrh r9, [r5, #4] - cmp r9, #0 - bne .L1681 - bl FtlCacheWriteBack - ldr r3, .L1739+12 - ldr r7, .L1739+4 +.L1711: + ldrh r2, [r5, #4] + cbnz r2, .L1712 + ldr r3, .L1757+20 + ldr r6, .L1757+4 cmp r5, r3 - bne .L1682 - ldrh r9, [r4, #2400] - cmp r9, #0 - bne .L1683 + bne .L1713 + ldrh r8, [r4, #2400] + cmp r8, #0 + bne .L1714 add r0, r5, #48 bl allocate_new_data_superblock - str r9, [r7, #8] -.L1683: - ldr r5, .L1739+12 - ldr r0, .L1739+12 + str r8, [r6, #8] +.L1714: + ldr r5, .L1757+20 + ldr r0, .L1757+20 bl allocate_new_data_superblock - ldr r2, [r7, #8] + ldr r2, [r6, #8] add r3, r5, #48 cmp r2, #0 it ne movne r5, r3 -.L1684: +.L1715: ldrh r3, [r5, #4] - cbnz r3, .L1681 + cbnz r3, .L1712 mov r0, r5 bl allocate_new_data_superblock -.L1681: +.L1712: ldrb r2, [r5, #7] @ zero_extendqisi2 ldrh r3, [r5, #4] - ldr r1, [sp, #8] + ldr r1, [sp] lsls r2, r2, #2 cmp r3, r1 it cs @@ -11660,48 +11853,259 @@ FtlWrite: str r2, [sp, #36] ldrb r2, [r5, #6] @ zero_extendqisi2 cmp r2, r3 - bcc .L1685 - movw r2, #1045 - ldr r1, .L1739+16 - ldr r0, .L1739+20 + bcc .L1716 + mov r2, #1024 + ldr r1, .L1757+12 + ldr r0, .L1757+16 bl sftl_printk -.L1685: - mov r9, #0 -.L1686: +.L1716: + mov fp, #0 +.L1717: ldr r3, [sp, #36] - cmp r9, r3 - bne .L1707 -.L1687: - ldr r3, [r4, #3988] - cmp r3, #0 - beq .L1708 - ldr r3, [sp, #8] - subs r9, r9, #1 - add r3, r3, #-1 - str r3, [sp, #8] - bne .L1708 + cmp fp, r3 + bne .L1737 +.L1718: + mov r3, r5 + movs r2, #0 + mov r1, fp + ldr r0, [r4, #3844] + bl FtlProgPages + ldr r3, [sp] + cmp fp, r3 + bls .L1738 + movw r2, #1101 + ldr r1, .L1757+12 + ldr r0, .L1757+16 + bl sftl_printk +.L1738: + ldr r3, [sp] + sub r3, r3, fp + str r3, [sp] + b .L1710 .L1713: + str r2, [r6, #8] + ldrh r2, [r4, #2352] + cbnz r2, .L1748 + mov r0, r5 + bl allocate_new_data_superblock + b .L1715 +.L1748: + mov r5, r3 + b .L1712 +.L1737: + ldrh r3, [r5, #4] + cmp r3, #0 + beq .L1718 + movs r2, #0 + add r1, sp, #40 + mov r0, r7 + mov r8, #20 + bl log2phys + mov r0, r5 + mul r8, r8, fp + bl get_new_active_ppa + ldrh r2, [r4, #112] + ldr r3, [r4, #3844] + mul r1, r2, fp + add r3, r3, r8 + str r0, [r3, #4] + str r7, [r3, #16] + bic r1, r1, #3 + str r1, [sp, #28] + ldr r0, [sp, #28] + ldr r1, [r4, #3816] + add r9, r1, r0 + str r1, [sp, #32] + str r9, [r3, #12] + movs r1, #0 + mov r0, r9 + bl ftl_memset + ldr r3, [sp, #4] + cmp r7, r3 + beq .L1719 ldr r3, [sp, #20] - movs r0, #0 - ldr r4, .L1739 - sub r1, r3, r10 - bl rk_ftl_garbage_collect - ldrh r3, [r4, #2344] - cmp r3, #15 - bhi .L1710 - movw r5, #65535 + cmp r7, r3 + bne .L1752 + ldrh r2, [r4, #58] + ldr r3, [sp, #12] + smulbb r2, r2, r7 + add r6, r10, r3 + movs r3, #0 + str r3, [sp, #16] + subs r6, r6, r2 + uxth r6, r6 + b .L1722 +.L1719: + ldrh r6, [r4, #58] + mov r0, r10 + mov r1, r6 + bl __aeabi_uidivmod + ldr r3, [sp, #12] + subs r6, r6, r1 + str r1, [sp, #16] + cmp r6, r3 + it cs + movcs r6, r3 +.L1722: + ldrh r3, [r4, #58] + cmp r6, r3 + ldr r3, [sp, #4] + bne .L1723 + cmp r7, r3 + ldr r3, [r4, #3844] + itte ne + mulne r6, r6, r7 + ldrne r2, [sp, #8] + ldreq r2, [sp, #8] + add r3, r3, r8 + itett ne + subne r6, r6, r10 + streq r2, [r3, #8] + addne r6, r2, r6, lsl #9 + strne r6, [r3, #8] +.L1725: + ldrb r2, [r5, #6] @ zero_extendqisi2 + ldrh r3, [r4, #32] + cmp r2, r3 + bcc .L1734 + movw r2, #1092 + ldr r1, .L1757+12 + ldr r0, .L1757+16 + bl sftl_printk .L1734: + ldr r2, [sp, #32] + movw r3, #61589 + ldr r1, [sp, #28] + add fp, fp, #1 + strh r3, [r2, r1] @ movhi + ldr r3, [r4, #2544] + str r7, [r9, #8] + adds r7, r7, #1 + str r3, [r9, #4] + adds r3, r3, #1 + adds r2, r3, #1 + it eq + moveq r3, #0 + str r3, [r4, #2544] + ldr r3, [sp, #40] + str r3, [r9, #12] + ldrh r3, [r5] + strh r3, [r9, #2] @ movhi + b .L1717 +.L1723: + cmp r7, r3 + ldr r3, [r4, #3844] + ite eq + ldreq r2, [r4, #3820] + ldrne r2, [r4, #3812] + add r3, r3, r8 + str r2, [r3, #8] + ldr r3, [sp, #40] + adds r1, r3, #1 + beq .L1728 + str r3, [sp, #48] + movs r1, #1 + ldr r3, [r4, #3844] + add r0, sp, #44 + str r7, [sp, #60] + add r3, r3, r8 + ldr r2, [r3, #8] + ldr r3, [r3, #12] + str r2, [sp, #52] + movs r2, #0 + str r3, [sp, #56] + bl FlashReadPages + ldr r3, [sp, #44] + adds r3, r3, #1 + bne .L1729 + ldr r3, [r4, #2708] + adds r3, r3, #1 + str r3, [r4, #2708] +.L1732: + ldr r3, [sp, #4] + lsls r2, r6, #9 + cmp r7, r3 + bne .L1733 + ldr r3, [r4, #3844] + ldr r1, [sp, #8] + add r3, r3, r8 + ldr r0, [r3, #8] + ldr r3, [sp, #16] + add r0, r0, r3, lsl #9 +.L1755: + bl ftl_memcpy + b .L1725 +.L1758: + .align 2 +.L1757: + .word .LANCHOR0 + .word .LANCHOR2 + .word .LANCHOR3 + .word .LANCHOR1+574 + .word .LC1 + .word .LANCHOR0+2348 +.L1729: + ldr r3, [r9, #8] + cmp r7, r3 + beq .L1731 + ldr r3, [r4, #2708] + mov r2, r7 + ldr r0, .L1759 + adds r3, r3, #1 + str r3, [r4, #2708] + ldr r1, [r9, #8] + bl sftl_printk +.L1731: + ldr r3, [r9, #8] + cmp r7, r3 + beq .L1732 + movw r2, #1077 + ldr r1, .L1759+4 + ldr r0, .L1759+8 + bl sftl_printk + b .L1732 +.L1728: + ldr r3, [r4, #3844] + movs r1, #0 + ldrh r2, [r4, #110] + add r3, r3, r8 + ldr r0, [r3, #8] + bl ftl_memset + b .L1732 +.L1733: + ldrh r1, [r4, #58] + ldr r0, [sp, #8] + ldr r3, [r4, #3844] + muls r1, r7, r1 + add r3, r3, r8 + sub r1, r1, r10 + add r1, r0, r1, lsl #9 + ldr r0, [r3, #8] + b .L1755 +.L1752: + ldr r3, [r4, #3844] + ldr r2, [sp, #8] + add r8, r8, r3 + ldrh r3, [r4, #58] + muls r3, r7, r3 + sub r3, r3, r10 + add r3, r2, r3, lsl #9 + str r3, [r8, #8] + b .L1725 +.L1740: + movw r5, #65535 +.L1753: ldrh r3, [r4, #2588] cmp r3, r5 - bne .L1714 + bne .L1741 ldrh r3, [r4, #3202] cmp r3, r5 - bne .L1714 + bne .L1741 movs r0, #0 bl List_get_gc_head_node uxth r0, r0 bl FtlGcRefreshBlock -.L1714: +.L1741: movs r1, #1 movs r3, #128 mov r0, r1 @@ -11713,302 +12117,20 @@ FtlWrite: bl rk_ftl_garbage_collect ldrh r3, [r4, #2344] cmp r3, #8 - bls .L1734 - b .L1710 -.L1676: - ldr r3, [r4, #2520] - mov r1, r5 - mov r0, r8 - adds r3, r3, #1 - str r3, [r4, #2520] - bl __aeabi_uidivmod - ldr r2, [sp, #12] - subs r5, r5, r1 - ldr r0, [fp, #8] - mov r3, r1 - ldr r1, [sp, #4] - cmp r5, r2 - it cs - movcs r5, r2 - lsl r9, r5, #9 - add r0, r0, r3, lsl #9 - mov r2, r9 - bl ftl_memcpy - cbnz r7, .L1677 -.L1710: - movs r0, #0 - b .L1672 -.L1677: - ldr r3, [sp, #12] - add r8, r8, r5 - add r10, r10, #1 - subs r3, r3, r5 - str r3, [sp, #12] - ldr r3, [sp, #4] - add r3, r3, r9 - str r3, [sp, #4] - bl FtlCacheWriteBack - str r7, [sp, #8] - b .L1675 -.L1717: - ldr r5, .L1739+12 - b .L1678 -.L1682: - ldrh r2, [r4, #2352] - str r9, [r7, #8] - cbnz r2, .L1720 - mov r0, r5 - bl allocate_new_data_superblock - b .L1684 -.L1720: - mov r5, r3 - b .L1681 -.L1707: - ldrh r3, [r5, #4] - cmp r3, #0 - beq .L1687 - movs r2, #0 - add r1, sp, #40 - mov r0, r6 - movs r7, #20 - bl log2phys - mov r0, r5 - mul r7, r7, r9 - bl get_new_active_ppa - ldrh r2, [r4, #112] - ldr r3, [r4, #3840] - mul r1, r2, r9 - add r3, r3, r7 - str r0, [r3, #4] - str r6, [r3, #16] - bic r1, r1, #3 - str r1, [sp, #28] - ldr r0, [sp, #28] - ldr r1, [r4, #3812] - add fp, r1, r0 - str r1, [sp, #32] - str fp, [r3, #12] - movs r1, #0 - mov r0, fp - bl ftl_memset - cmp r6, r10 - beq .L1688 - ldr r3, [sp, #20] - cmp r6, r3 - bne .L1733 - ldr r3, [sp, #12] - add r2, r8, r3 - ldrh r3, [r4, #58] - smulbb r3, r3, r6 - subs r2, r2, r3 - uxth r3, r2 - str r3, [sp, #16] - movs r3, #0 - str r3, [sp, #24] - b .L1691 -.L1688: - ldrh r2, [r4, #58] - mov r0, r8 - mov r1, r2 - str r2, [sp, #16] - bl __aeabi_uidivmod - ldr r2, [sp, #16] - str r1, [sp, #24] - subs r2, r2, r1 - ldr r1, [sp, #12] - mov r3, r2 - cmp r2, r1 - it cs - movcs r3, r1 - str r3, [sp, #16] -.L1691: - ldrh r3, [r4, #58] - ldr r2, [sp, #16] - cmp r2, r3 - ldr r3, [r4, #3840] - bne .L1692 - cmp r6, r10 - add r7, r7, r3 - bne .L1693 - ldr r3, [sp, #4] -.L1737: - str r3, [r7, #8] - b .L1694 -.L1693: - ldr r2, [sp, #16] - ldr r3, [sp, #4] - muls r2, r6, r2 - sub r2, r2, r8 - add r2, r3, r2, lsl #9 - str r2, [r7, #8] -.L1694: - ldrb r2, [r5, #6] @ zero_extendqisi2 - ldrh r3, [r4, #32] - cmp r2, r3 - bcc .L1704 - movw r2, #1119 - ldr r1, .L1739+16 - ldr r0, .L1739+20 - bl sftl_printk -.L1704: - ldr r2, [sp, #32] - movw r3, #61589 - ldr r1, [sp, #28] - add r9, r9, #1 - strh r3, [r2, r1] @ movhi - ldr r3, [r4, #2544] - str r6, [fp, #8] - adds r6, r6, #1 - str r3, [fp, #4] - adds r3, r3, #1 - adds r2, r3, #1 - it eq - moveq r3, #0 - str r3, [r4, #2544] - ldr r3, [sp, #40] - str r3, [fp, #12] - ldrh r3, [r5] - strh r3, [fp, #2] @ movhi - b .L1686 -.L1740: - .align 2 -.L1739: - .word .LANCHOR0 - .word .LANCHOR2 - .word .LANCHOR3 - .word .LANCHOR0+2348 - .word .LANCHOR1+574 - .word .LC1 -.L1692: - cmp r6, r10 - add r3, r3, r7 - ite eq - ldreq r2, [r4, #3816] - ldrne r2, [r4, #3808] - str r2, [r3, #8] - ldr r3, [sp, #40] - adds r1, r3, #1 - beq .L1697 - str r3, [sp, #48] - movs r1, #1 - ldr r3, [r4, #3840] - add r0, sp, #44 - str r6, [sp, #60] - add r3, r3, r7 - ldr r2, [r3, #8] - ldr r3, [r3, #12] - str r2, [sp, #52] - movs r2, #0 - str r3, [sp, #56] - bl FlashReadPages - ldr r3, [sp, #44] - adds r3, r3, #1 - bne .L1698 - ldr r3, [r4, #2708] - adds r3, r3, #1 - str r3, [r4, #2708] -.L1701: - ldr r3, [sp, #16] - cmp r6, r10 - lsl r2, r3, #9 - bne .L1702 - ldr r3, [r4, #3840] - ldr r1, [sp, #4] - add r3, r3, r7 - ldr r0, [r3, #8] - ldr r3, [sp, #24] - add r0, r0, r3, lsl #9 -.L1736: - bl ftl_memcpy - ldr r3, [sp, #20] - cmp r6, r3 - bne .L1694 - ldrh r3, [r5, #4] - cmp r3, #0 - beq .L1694 - ldr r3, [r4, #3840] - add r7, r7, r3 - ldr r3, .L1741 - str r7, [r4, #3988] - str r5, [r3, #-196] - b .L1694 -.L1698: - ldr r3, [fp, #8] - cmp r6, r3 - beq .L1700 - ldr r3, [r4, #2708] - mov r2, r6 - ldr r0, .L1741+4 - adds r3, r3, #1 - str r3, [r4, #2708] - ldr r1, [fp, #8] - bl sftl_printk -.L1700: - ldr r3, [fp, #8] - cmp r6, r3 - beq .L1701 - movw r2, #1098 - ldr r1, .L1741+8 - ldr r0, .L1741+12 - bl sftl_printk - b .L1701 -.L1697: - ldr r3, [r4, #3840] - movs r1, #0 - ldrh r2, [r4, #110] - add r3, r3, r7 - ldr r0, [r3, #8] - bl ftl_memset - b .L1701 -.L1702: - ldrh r1, [r4, #58] - ldr r0, [sp, #4] - ldr r3, [r4, #3840] - muls r1, r6, r1 - add r3, r3, r7 - sub r1, r1, r8 - add r1, r0, r1, lsl #9 - ldr r0, [r3, #8] - b .L1736 -.L1733: - ldr r3, [r4, #3840] - ldr r2, [sp, #4] - add r7, r7, r3 - ldrh r3, [r4, #58] - muls r3, r6, r3 - sub r3, r3, r8 - add r3, r2, r3, lsl #9 - b .L1737 -.L1708: - mov r3, r5 - movs r2, #0 - mov r1, r9 - ldr r0, [r4, #3840] - bl FtlProgPages - ldr r3, [sp, #8] - cmp r3, r9 - bcs .L1711 - movw r2, #1134 - ldr r1, .L1741+8 - ldr r0, .L1741+12 - bl sftl_printk -.L1711: - ldr r3, [sp, #8] - sub r3, r3, r9 - str r3, [sp, #8] - b .L1679 -.L1715: + bls .L1753 + b .L1742 +.L1743: mov r0, #-1 - b .L1672 -.L1742: + b .L1706 +.L1760: .align 2 -.L1741: - .word .LANCHOR3 - .word .LC109 +.L1759: + .word .LC114 .word .LANCHOR1+574 .word .LC1 .fnend .size FtlWrite, .-FtlWrite + .global __aeabi_idivmod .align 1 .global sftl_write .syntax unified @@ -12018,14 +12140,290 @@ FtlWrite: .type sftl_write, %function sftl_write: .fnstart - @ args = 0, pretend = 0, frame = 0 + @ args = 0, pretend = 0, frame = 112 @ frame_needed = 0, uses_anonymous_args = 0 - @ link register save eliminated. - mov r3, r2 - mov r2, r1 + push {r4, r5, r6, r7, r8, r9, r10, fp, lr} + .save {r4, r5, r6, r7, r8, r9, r10, fp, lr} + adds r4, r0, r1 + subs r5, r4, #1 + .pad #124 + sub sp, sp, #124 + cmp r5, #63 + mov fp, r0 + str r1, [sp, #16] + str r2, [sp, #36] + ldr r6, .L1793 + bls .L1762 + cmp r0, #576 + bls .L1763 +.L1762: + ldr r3, [r6, #-172] + cmp r3, #0 + beq .L1764 + ldr r2, .L1793+4 + mov r0, #512 + ldrh r3, [r2, #14] + str r3, [sp, #20] + ldrh r3, [r2, #10] + ldrb r1, [sp, #20] @ zero_extendqisi2 + smulbb r3, r3, r1 + uxth r3, r3 + mov r1, r3 + str r3, [sp, #24] + bl __aeabi_uidiv + ldr r2, .L1793+8 + movs r3, #0 + ldr r1, .L1793+12 + str r0, [sp, #12] + sub r4, r2, #262144 +.L1768: + ldr r0, [r2, #-4] + cmp r0, #0 + beq .L1765 +.L1769: + ldr r3, [sp, #12] + movs r4, #0 + ldr r2, [sp, #24] + ldr r5, .L1793+4 + str r4, [sp, #28] + muls r3, r2, r3 + str r3, [sp, #48] + ldr r3, [sp, #12] + str r3, [sp, #32] +.L1766: + mov r1, #512 + ldr r0, .L1793+16 + bl __memzero + ldrh r7, [r5, #14] + mov r0, r4 + ldrh r6, [r5, #10] + mov r1, r7 + uxtb r8, r7 + uxth r3, r8 + str r3, [sp, #40] + ldrh r3, [sp, #40] + smulbb r6, r6, r3 + bl __aeabi_uidiv + uxth r6, r6 + mov r1, r0 + ldr r3, [r5, #3252] + movs r0, #0 + blx r3 + cmp r6, #512 + bcs .L1770 + mov r1, r7 + adds r0, r6, r4 + bl __aeabi_uidiv + ldr r3, [r5, #3252] mov r1, r0 movs r0, #0 - b FtlWrite + blx r3 +.L1770: + mov r1, r6 + mov r0, r4 + bl __aeabi_uidivmod + movs r6, #0 + mov r9, r1 + subs r3, r4, r1 + str r3, [sp, #44] +.L1771: + cmp r6, #512 + bcc .L1772 + ldrb r8, [r5, #14] @ zero_extendqisi2 + mov r0, r4 + ldrh r1, [r5, #10] + movs r6, #0 + uxth r3, r8 + str r3, [sp, #40] + ldrh r3, [sp, #40] + smulbb r1, r1, r3 + uxth r1, r1 + bl __aeabi_uidivmod + mov r10, r1 + subs r3, r4, r1 + uxth r0, r10 + mov r1, r8 + str r3, [sp, #44] + bl __aeabi_idivmod + uxth r7, r1 +.L1773: + cmp r6, #512 + bcs .L1777 + ldr r3, [sp, #40] + mov r1, r8 + add r0, r10, r6 + sub r9, r3, r7 + ldr r3, .L1793+16 + uxth r9, r9 + add r2, r3, r6, lsl #9 + str r2, [sp, #52] + bl __aeabi_uidiv + ldr r3, [sp, #44] + uxth r0, r0 + mov r1, r8 + add r7, r7, r3 + mla r0, r8, r0, r7 + bl __aeabi_uidiv + ldr r7, [r5, #3260] + mov r1, r0 + add r3, sp, #56 + ldr r2, [sp, #52] + movs r0, #0 + blx r7 + adds r0, r0, #1 + bne .L1774 +.L1777: + ldr r1, .L1793+20 + movs r6, #0 +.L1775: + ldr r3, .L1793+16 + mov r7, r1 + adds r1, r1, #4 + ldr r2, [r3, r6, lsl #2] + ldr r3, [r7] + cmp r2, r3 + beq .L1778 + mov r1, #512 + ldr r0, .L1793+16 + bl __memzero + ldr r2, .L1793+16 + mov r1, r4 + str r6, [sp] + ldr r3, [r7] + ldr r2, [r2, r6, lsl #2] + ldr r0, .L1793+24 + bl sftl_printk + mov r0, r4 + ldr r1, [sp, #20] + bl __aeabi_uidiv + ldr r3, [r5, #3252] + mov r1, r0 + movs r0, #0 + blx r3 + ldr r3, [sp, #12] + cmp r3, #1 + bls .L1779 + ldr r3, [sp, #24] + ldr r1, [sp, #20] + adds r0, r3, r4 + bl __aeabi_uidiv + ldr r3, [r5, #3252] + mov r1, r0 + movs r0, #0 + blx r3 +.L1779: + ldr r2, [sp, #32] + ldr r3, [sp, #12] + add r3, r3, r2 + ldr r2, [sp, #48] + add r4, r4, r2 + ldr r2, [sp, #32] + cmp r2, #15 + bls .L1785 +.L1784: + ldr r3, .L1793 + movs r2, #0 + str r2, [r3, #-172] +.L1764: + ldr r3, [sp, #36] + mov r1, fp + ldr r2, [sp, #16] + movs r0, #0 + bl FtlWrite + add sp, sp, #124 + @ sp needed + pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} +.L1765: + ldr r0, [r4, r3, lsl #2] + adds r3, r3, #1 + cmp r3, #4096 + it hi + movhi r3, #0 + str r0, [r2, #-4]! + cmp r1, r2 + bne .L1768 + b .L1769 +.L1785: + str r3, [sp, #32] + b .L1766 +.L1772: + mov r1, r8 + add r0, r9, r6 + bl __aeabi_uidiv + uxth r10, r0 + mov r1, r8 + ldr r0, [sp, #44] + mul r3, r8, r10 + str r3, [sp, #56] + movw r3, #61424 + str r3, [sp, #60] + ldr r3, .L1793+20 + add r2, r3, r6, lsl #9 + str r2, [sp, #52] + bl __aeabi_uidiv + ldr r7, [r5, #3256] + add r3, sp, #56 + add r1, r0, r10 + ldr r2, [sp, #52] + movs r0, #0 + blx r7 + ldr r3, [sp, #40] + add r6, r6, r3 + uxth r6, r6 + b .L1771 +.L1774: + add r6, r6, r9 + movs r7, #0 + uxth r6, r6 + b .L1773 +.L1778: + adds r6, r6, #1 + cmp r6, #65536 + bne .L1775 + ldr r3, [sp, #28] + adds r3, r3, #1 + cmp r3, #5 + str r3, [sp, #28] + bls .L1779 + b .L1784 +.L1763: + cmp r0, #63 + ldr r0, .L1793+20 + bhi .L1781 + ldr r3, [sp, #16] + rsb r1, fp, #64 + subs r2, r3, r1 + ldr r3, [sp, #36] + add r1, r3, r1, lsl #9 +.L1782: + movs r3, #1 + cmp r5, #576 + str r3, [r6, #-172] + ittt hi + subhi r2, r2, r4 + mvnhi r3, #446 + addhi r2, r2, r3 + lsls r2, r2, #9 + bl memcpy + b .L1764 +.L1781: + ldr r3, .L1793+28 + ldr r1, [sp, #36] + ldr r2, [sp, #16] + add r3, r3, fp + add r0, r0, r3, lsl #9 + b .L1782 +.L1794: + .align 2 +.L1793: + .word .LANCHOR3 + .word .LANCHOR0 + .word idb_buf+262144 + .word idb_buf+16388 + .word gp_flash_check_buf + .word idb_buf + .word .LC115 + .word 8388544 .fnend .size sftl_write, .-sftl_write .align 1 @@ -12042,60 +12440,60 @@ FtlLoadSysInfo: push {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} movs r1, #0 - ldr r4, .L1765 - ldr r3, [r4, #3280] + ldr r4, .L1816 + ldr r3, [r4, #3284] ldrh r2, [r4, #40] ldr r0, [r4, #2324] - str r3, [r4, #3268] - ldr r3, [r4, #3284] - lsls r2, r2, #1 str r3, [r4, #3272] + ldr r3, [r4, #3288] + lsls r2, r2, #1 + str r3, [r4, #3276] bl ftl_memset ldrh r0, [r4, #2576] movw r3, #65535 cmp r0, r3 - bne .L1745 -.L1753: + bne .L1796 +.L1804: mov r0, #-1 pop {r3, r4, r5, r6, r7, pc} -.L1745: - ldr r7, .L1765+4 +.L1796: + ldr r7, .L1816+4 movs r1, #1 - addw r6, r4, #3260 + add r6, r4, #3264 bl FtlGetLastWrittenPage sxth r5, r0 adds r0, r0, #1 strh r0, [r4, #2578] @ movhi -.L1747: +.L1798: cmp r5, #0 - bge .L1750 - movw r2, #1437 - ldr r1, .L1765+8 - ldr r0, .L1765+12 + bge .L1801 + movw r2, #1482 + ldr r1, .L1816+8 + ldr r0, .L1816+12 bl sftl_printk -.L1749: +.L1800: ldrh r3, [r4, #40] ldrh r2, [r4, #110] adds r3, r3, #24 cmp r2, r3, lsl #1 - bcs .L1752 - movw r2, #1439 - ldr r1, .L1765+8 - ldr r0, .L1765+12 + bcs .L1803 + movw r2, #1484 + ldr r1, .L1816+8 + ldr r0, .L1816+12 bl sftl_printk -.L1752: +.L1803: movs r2, #48 - ldr r1, [r4, #3268] - ldr r0, .L1765+16 + ldr r1, [r4, #3272] + ldr r0, .L1816+16 bl ftl_memcpy ldrh r2, [r4, #40] - ldr r1, [r4, #3268] + ldr r1, [r4, #3272] ldr r0, [r4, #2324] lsls r2, r2, #1 adds r1, r1, #48 bl ftl_memcpy ldrh r1, [r4, #40] - ldr r3, [r4, #3268] + ldr r3, [r4, #3272] ldr r0, [r4, #24] lsrs r2, r1, #3 adds r1, r1, #24 @@ -12105,19 +12503,19 @@ FtlLoadSysInfo: add r1, r1, r3 bl ftl_memcpy ldr r2, [r4, #2268] - ldr r3, .L1765+4 + ldr r3, .L1816+4 cmp r2, r3 - bne .L1753 + bne .L1804 ldrb r2, [r4, #2278] @ zero_extendqisi2 ldrh r3, [r4, #54] ldrh r5, [r4, #2276] cmp r2, r3 strh r5, [r4, #2582] @ movhi - bne .L1753 - ldr r3, .L1765+20 + bne .L1804 + ldr r3, .L1816+20 ldrh r2, [r4, #58] ldr r6, [r4, #44] - str r5, [r3, #-176] + str r5, [r3, #-168] ldrh r3, [r4, #102] ldrh r0, [r4, #158] ldrh r1, [r4, #32] @@ -12130,12 +12528,12 @@ FtlLoadSysInfo: bl __aeabi_uidiv cmp r5, r6 strh r0, [r4, #2572] @ movhi - bls .L1754 - movw r2, #1461 - ldr r1, .L1765+8 - ldr r0, .L1765+12 + bls .L1805 + movw r2, #1506 + ldr r1, .L1816+8 + ldr r0, .L1816+12 bl sftl_printk -.L1754: +.L1805: ldrh r3, [r4, #2284] ldrh r1, [r4, #2282] lsrs r2, r3, #6 @@ -12190,62 +12588,62 @@ FtlLoadSysInfo: strhi r3, [r4, #2544] movw r3, #65535 cmp r1, r3 - beq .L1757 - ldr r0, .L1765+24 + beq .L1808 + ldr r0, .L1816+24 bl make_superblock -.L1757: +.L1808: ldrh r2, [r4, #2396] movw r3, #65535 cmp r2, r3 - beq .L1758 - ldr r0, .L1765+28 + beq .L1809 + ldr r0, .L1816+28 bl make_superblock -.L1758: +.L1809: ldrh r2, [r4, #2444] movw r3, #65535 cmp r2, r3 - beq .L1759 - ldr r0, .L1765+32 + beq .L1810 + ldr r0, .L1816+32 bl make_superblock -.L1759: +.L1810: ldrh r2, [r4, #2588] movw r3, #65535 cmp r2, r3 - beq .L1760 - ldr r0, .L1765+36 + beq .L1811 + ldr r0, .L1816+36 bl make_superblock -.L1760: +.L1811: movs r0, #0 pop {r3, r4, r5, r6, r7, pc} -.L1750: +.L1801: ldrh r3, [r4, #2576] movs r2, #1 mov r1, r2 mov r0, r6 orr r3, r5, r3, lsl #10 - str r3, [r4, #3264] - ldr r3, [r4, #3280] str r3, [r4, #3268] + ldr r3, [r4, #3284] + str r3, [r4, #3272] bl FlashReadPages - ldr r3, [r4, #3260] + ldr r3, [r4, #3264] adds r3, r3, #1 - beq .L1748 - ldr r3, [r4, #3280] + beq .L1799 + ldr r3, [r4, #3284] ldr r3, [r3] cmp r3, r7 - bne .L1748 - ldr r3, [r4, #3284] + bne .L1799 + ldr r3, [r4, #3288] ldrh r2, [r3] movw r3, #61604 cmp r2, r3 - beq .L1749 -.L1748: + beq .L1800 +.L1799: subs r5, r5, #1 sxth r5, r5 - b .L1747 -.L1766: + b .L1798 +.L1817: .align 2 -.L1765: +.L1816: .word .LANCHOR0 .word 1179929683 .word .LANCHOR1+583 @@ -12272,25 +12670,25 @@ FtlSysBlkInit: push {r4, r5, r6, lr} .save {r4, r5, r6, lr} movs r3, #0 - ldr r4, .L1783 + ldr r4, .L1842 ldrh r0, [r4, #36] - strh r3, [r4, #4008] @ movhi + strh r3, [r4, #4016] @ movhi bl FtlFreeSysBlkQueueInit bl FtlScanSysBlk ldrh r2, [r4, #2576] movw r3, #65535 cmp r2, r3 - bne .L1768 -.L1770: - mov r5, #-1 -.L1767: - mov r0, r5 + bne .L1819 +.L1821: + mov r6, #-1 +.L1818: + mov r0, r6 pop {r4, r5, r6, pc} -.L1768: +.L1819: bl FtlLoadSysInfo - mov r5, r0 + mov r6, r0 cmp r0, #0 - bne .L1770 + bne .L1821 bl FtlLoadMapInfo bl FtlLoadVonderInfo bl Ftl_load_ext_data @@ -12301,27 +12699,23 @@ FtlSysBlkInit: movs r0, #1 bl FtlUpdateVaildLpn ldrh r1, [r4, #138] - mov r3, r5 + mov r3, r6 ldr r2, [r4, #2492] movs r0, #12 -.L1771: +.L1822: cmp r3, r1 - bge .L1776 - mla r6, r0, r3, r2 - ldr r6, [r6, #4] - cmp r6, #0 - bge .L1772 -.L1776: + bge .L1827 + mla r5, r0, r3, r2 + ldr r5, [r5, #4] + cmp r5, #0 + bge .L1823 +.L1827: ldrh r2, [r4, #2296] cmp r3, r1 add r2, r2, #1 strh r2, [r4, #2296] @ movhi - bge .L1782 -.L1773: - ldr r0, .L1783+4 - bl FtlSuperblockPowerLostFix - ldr r0, .L1783+8 - bl FtlSuperblockPowerLostFix + bge .L1841 +.L1824: ldrh r1, [r4, #2348] ldr r2, [r4, #2324] ldrh r0, [r4, #2352] @@ -12335,17 +12729,17 @@ FtlSysBlkInit: movs r3, #0 strb r3, [r4, #2354] strh r3, [r4, #2352] @ movhi - ldrh r6, [r4, #2400] + ldrh r5, [r4, #2400] ldrh r2, [r1, r0, lsl #1] - subs r2, r2, r6 + subs r2, r2, r5 strh r2, [r1, r0, lsl #1] @ movhi ldrh r2, [r4, #102] - ldr r0, .L1783+12 + ldr r0, .L1842+4 strb r3, [r4, #2402] strh r2, [r4, #2398] @ movhi strh r3, [r4, #2400] @ movhi bl FtlMapBlkWriteDump_data - ldr r0, .L1783+16 + ldr r0, .L1842+8 bl FtlMapBlkWriteDump_data ldrh r3, [r4, #2298] adds r3, r3, #1 @@ -12353,44 +12747,88 @@ FtlSysBlkInit: bl l2p_flush bl FtlVpcTblFlush bl FtlVpcTblFlush - b .L1777 -.L1772: + b .L1828 +.L1823: adds r3, r3, #1 - b .L1771 -.L1782: - ldrh r3, [r4, #4008] + b .L1822 +.L1841: + ldrh r3, [r4, #4016] cmp r3, #0 - bne .L1773 -.L1777: + bne .L1824 +.L1828: + ldrh r5, [r4, #2312] + movw r2, #65533 + subs r3, r5, #1 + uxth r3, r3 + cmp r3, r2 + bhi .L1830 + mov r1, r5 + ldr r0, .L1842+12 + strh r5, [r4, #3202] @ movhi + bl test_node_in_list + cbnz r0, .L1831 + ldrh r3, [r4, #40] + cmp r3, r5 + bls .L1831 + ldr r3, [r4, #2324] + ldrh r3, [r3, r5, lsl #1] + cbnz r3, .L1830 +.L1831: + movw r3, #65535 + strh r3, [r4, #3202] @ movhi +.L1830: + ldrh r5, [r4, #2314] + movw r2, #65533 + subs r3, r5, #1 + uxth r3, r3 + cmp r3, r2 + bhi .L1834 + mov r1, r5 + ldr r0, .L1842+12 + strh r5, [r4, #3204] @ movhi + bl test_node_in_list + cbnz r0, .L1835 + ldrh r3, [r4, #40] + cmp r3, r5 + bls .L1835 + ldr r3, [r4, #2324] + ldrh r3, [r3, r5, lsl #1] + cbnz r3, .L1834 +.L1835: + movw r3, #65535 + strh r3, [r4, #3204] @ movhi +.L1834: ldrh r0, [r4, #2348] movw r3, #65535 cmp r0, r3 - beq .L1778 + beq .L1837 ldrh r3, [r4, #2352] - cbnz r3, .L1778 + cbnz r3, .L1837 ldrh r3, [r4, #2400] - cbnz r3, .L1778 + cbnz r3, .L1837 bl FtlGcRefreshBlock ldrh r0, [r4, #2396] bl FtlGcRefreshBlock - ldr r0, .L1783+4 + bl FtlVpcTblFlush + ldr r0, .L1842+16 bl allocate_new_data_superblock - ldr r0, .L1783+8 + ldr r0, .L1842+20 bl allocate_new_data_superblock -.L1778: +.L1837: ldrh r3, [r4, #2296] lsls r3, r3, #27 - bne .L1767 + bne .L1818 bl FtlVpcCheckAndModify - b .L1767 -.L1784: + b .L1818 +.L1843: .align 2 -.L1783: +.L1842: .word .LANCHOR0 + .word .LANCHOR0+3908 + .word .LANCHOR0+3956 + .word .LANCHOR0+2340 .word .LANCHOR0+2348 .word .LANCHOR0+2396 - .word .LANCHOR0+3904 - .word .LANCHOR0+3948 .fnend .size FtlSysBlkInit, .-FtlSysBlkInit .align 1 @@ -12407,46 +12845,46 @@ 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, .L1809 + ldr r4, .L1868 ldrh r0, [r4, #36] str r3, [r4, #2540] str r3, [r4, #2544] bl FtlFreeSysBlkQueueInit bl FtlLoadBbt - cbz r0, .L1786 + cbz r0, .L1845 bl FtlMakeBbt -.L1786: - ldr r0, .L1809+4 +.L1845: + ldr r0, .L1868+4 movs r2, #0 -.L1787: +.L1846: ldrh r1, [r4, #58] uxth r3, r2 adds r2, r2, #1 cmp r3, r1, lsl #7 - blt .L1788 + blt .L1847 ldrh r6, [r4, #40] movs r5, #0 -.L1789: +.L1848: ldrh r3, [r4, #42] cmp r3, r6 - bhi .L1790 + bhi .L1849 ldrh r1, [r4, #32] subs r3, r5, #3 cmp r3, r1, lsl #1 - bge .L1791 -.L1795: + bge .L1850 +.L1854: movs r5, #0 mov r6, r5 -.L1792: +.L1851: ldrh r3, [r4, #40] uxth r0, r5 adds r5, r5, #1 cmp r3, r0 - bhi .L1796 + bhi .L1855 ldrh r3, [r4, #42] ldrh r5, [r4, #32] ldr r9, [r4, #44] - str r3, [r4, #3804] + str r3, [r4, #3808] mov r1, r5 mov r0, r9 bl __aeabi_uidiv @@ -12458,7 +12896,7 @@ ftl_low_format: movs r3, #24 muls r3, r5, r3 cmp r6, r3 - ble .L1797 + ble .L1856 mov r1, r5 sub r0, r9, r6 bl __aeabi_uidiv @@ -12466,9 +12904,9 @@ ftl_low_format: lsrs r0, r0, #5 adds r0, r0, #24 strh r0, [r4, #2572] @ movhi -.L1797: +.L1856: ldrh r3, [r4, #94] - cbz r3, .L1799 + cbz r3, .L1858 ldrh r2, [r4, #2572] add r2, r2, r3, lsr #1 strh r2, [r4, #2572] @ movhi @@ -12479,15 +12917,15 @@ ftl_low_format: strlt r8, [r4, #2504] addlt r3, r3, r7 strhlt r3, [r4, #2572] @ movhi -.L1799: +.L1858: ldrh r2, [r4, #2572] movw r6, #65535 ldr r3, [r4, #2504] - ldr r7, .L1809+8 + ldr r7, .L1868+8 subs r3, r3, r2 muls r5, r3, r5 ldrh r3, [r4, #102] - str r5, [r7, #-176] + str r5, [r7, #-168] muls r5, r3, r5 ldrh r3, [r4, #58] str r5, [r4, #2504] @@ -12498,7 +12936,7 @@ ftl_low_format: ldrh r2, [r4, #42] movs r1, #0 ldr r0, [r4, #2324] - ldr r7, .L1809+12 + ldr r7, .L1868+12 lsls r2, r2, #1 bl ftl_memset ldrh r2, [r4, #40] @@ -12517,28 +12955,28 @@ ftl_low_format: strh r6, [r4, #2588] @ movhi strb r3, [r4, #2356] bl ftl_memset -.L1801: +.L1860: mov r0, r7 bl make_superblock ldrb r3, [r4, #2355] @ zero_extendqisi2 ldrh r2, [r4, #2348] cmp r3, #0 - bne .L1802 + bne .L1861 ldr r3, [r4, #2324] strh r6, [r3, r2, lsl #1] @ movhi ldrh r3, [r4, #2348] adds r3, r3, #1 strh r3, [r4, #2348] @ movhi - b .L1801 -.L1788: - ldr r5, [r4, #3816] + b .L1860 +.L1847: + ldr r5, [r4, #3820] mvns r1, r3 orr r1, r3, r1, lsl #16 str r1, [r5, r3, lsl #2] - ldr r1, [r4, #3808] + ldr r1, [r4, #3812] str r0, [r1, r3, lsl #2] - b .L1787 -.L1790: + b .L1846 +.L1849: mov r0, r6 movs r1, #1 bl FtlLowFormatEraseBlock @@ -12546,8 +12984,8 @@ ftl_low_format: add r5, r5, r0 uxth r5, r5 uxth r6, r6 - b .L1789 -.L1791: + b .L1848 +.L1850: mov r0, r5 bl __aeabi_uidiv ldr r3, [r4, #132] @@ -12557,27 +12995,27 @@ ftl_low_format: ldrh r0, [r4, #36] bl FtlFreeSysBlkQueueInit ldrh r5, [r4, #40] -.L1793: +.L1852: ldrh r3, [r4, #42] cmp r3, r5 - bls .L1795 + bls .L1854 mov r0, r5 movs r1, #1 adds r5, r5, #1 bl FtlLowFormatEraseBlock uxth r5, r5 - b .L1793 -.L1796: + b .L1852 +.L1855: movs r1, #0 bl FtlLowFormatEraseBlock add r6, r6, r0 uxth r6, r6 - b .L1792 -.L1802: + b .L1851 +.L1861: ldr r3, [r4, #2540] movw r6, #65535 ldrh r1, [r4, #2352] - ldr r7, .L1809+16 + ldr r7, .L1868+16 str r3, [r4, #2360] adds r3, r3, #1 str r3, [r4, #2540] @@ -12591,19 +13029,19 @@ ftl_low_format: strh r3, [r4, #2396] @ movhi movs r3, #1 strb r3, [r4, #2404] -.L1803: +.L1862: mov r0, r7 bl make_superblock ldrb r3, [r4, #2403] @ zero_extendqisi2 ldrh r2, [r4, #2396] - cbnz r3, .L1804 + cbnz r3, .L1863 ldr r3, [r4, #2324] strh r6, [r3, r2, lsl #1] @ movhi ldrh r3, [r4, #2396] adds r3, r3, #1 strh r3, [r4, #2396] @ movhi - b .L1803 -.L1804: + b .L1862 +.L1863: ldr r3, [r4, #2540] movw r6, #65535 ldrh r1, [r4, #2400] @@ -12617,7 +13055,7 @@ ftl_low_format: movs r3, #0 strh r0, [r4, #2576] @ movhi strh r3, [r4, #2578] @ movhi - ldr r3, [r5, #-176] + ldr r3, [r5, #-168] strh r6, [r4, #2580] @ movhi strh r3, [r4, #2582] @ movhi ldr r3, [r4, #2540] @@ -12626,16 +13064,16 @@ ftl_low_format: str r3, [r4, #2540] bl FtlVpcTblFlush bl FtlSysBlkInit - cbnz r0, .L1805 - ldr r3, .L1809+20 + cbnz r0, .L1864 + ldr r3, .L1868+20 movs r2, #1 str r2, [r3] -.L1805: +.L1864: movs r0, #0 pop {r3, r4, r5, r6, r7, r8, r9, pc} -.L1810: +.L1869: .align 2 -.L1809: +.L1868: .word .LANCHOR0 .word 168778952 .word .LANCHOR3 @@ -12658,10 +13096,10 @@ sftl_init: push {r3, r4, r5, lr} .save {r3, r4, r5, lr} mov r3, #-1 - ldr r4, .L1817 - ldr r5, .L1817+4 - ldr r1, .L1817+8 - ldr r0, .L1817+12 + ldr r4, .L1876 + ldr r5, .L1876+4 + ldr r1, .L1876+8 + ldr r0, .L1876+12 str r3, [r5] bl sftl_printk mov r0, r4 @@ -12671,27 +13109,27 @@ sftl_init: ldrh r0, [r4, #36] bl FtlFreeSysBlkQueueInit bl FtlLoadBbt - cbnz r0, .L1815 + cbnz r0, .L1874 bl FtlSysBlkInit - cbnz r0, .L1815 + cbnz r0, .L1874 movs r3, #1 str r3, [r5] ldrh r3, [r4, #2344] cmp r3, #15 - bhi .L1815 + bhi .L1874 movw r4, #8129 -.L1814: +.L1873: movs r1, #1 movs r0, #0 bl rk_ftl_garbage_collect subs r4, r4, #1 - bne .L1814 -.L1815: + bne .L1873 +.L1874: movs r0, #0 pop {r3, r4, r5, pc} -.L1818: +.L1877: .align 2 -.L1817: +.L1876: .word .LANCHOR0 .word .LANCHOR2 .word .LC70 @@ -12725,19 +13163,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, .L1823 - ldr r3, [r2, #-172] - cbnz r3, .L1822 - str r0, [r2, #-172] + ldr r2, .L1882 + ldr r3, [r2, #-164] + cbnz r3, .L1881 + str r0, [r2, #-164] mov r0, r3 - str r1, [r2, #-168] + str r1, [r2, #-160] bx lr -.L1822: +.L1881: mov r0, #-1 bx lr -.L1824: +.L1883: .align 2 -.L1823: +.L1882: .word .LANCHOR3 .fnend .size rk_sftl_vendor_dev_ops_register, .-rk_sftl_vendor_dev_ops_register @@ -12755,59 +13193,59 @@ rk_sftl_vendor_storage_init: push {r3, r4, r5, r6, r7, r8, r9, lr} .save {r3, r4, r5, r6, r7, r8, r9, lr} mov r0, #65536 - ldr r4, .L1833 + ldr r4, .L1892 bl ftl_malloc - str r0, [r4, #-164] + str r0, [r4, #-156] cmp r0, #0 - beq .L1831 - ldr r8, .L1833+4 + beq .L1890 + ldr r8, .L1892+4 mov r9, #0 mov r7, r9 mov r6, r9 -.L1829: - ldr r3, [r4, #-172] +.L1888: + ldr r3, [r4, #-164] movs r1, #128 - ldr r2, [r4, #-164] + ldr r2, [r4, #-156] lsls r0, r6, #7 blx r3 mov r5, r0 - cbnz r0, .L1827 - ldr r2, [r4, #-164] + cbnz r0, .L1886 + ldr r2, [r4, #-156] ldr r3, [r2] cmp r3, r8 - bne .L1828 + bne .L1887 movw r3, #65532 ldr r1, [r2, r3] ldr r3, [r2, #4] cmp r1, r3 - bne .L1828 + bne .L1887 cmp r1, r7 itt hi movhi r9, r6 movhi r7, r1 -.L1828: +.L1887: adds r6, r6, #1 cmp r6, #2 - bne .L1829 - cbz r7, .L1830 - ldr r3, [r4, #-172] + bne .L1888 + cbz r7, .L1889 + ldr r3, [r4, #-164] movs r1, #128 lsl r0, r9, #7 blx r3 mov r5, r0 - cbz r0, .L1825 -.L1827: - ldr r0, [r4, #-164] + cbz r0, .L1884 +.L1886: + ldr r0, [r4, #-156] mov r5, #-1 bl kfree movs r3, #0 - str r3, [r4, #-164] - b .L1825 -.L1830: + str r3, [r4, #-156] + b .L1884 +.L1889: mov r1, #65536 mov r0, r2 bl __memzero - ldr r3, [r4, #-164] + ldr r3, [r4, #-156] movs r2, #1 movw r1, #65532 str r2, [r3, #4] @@ -12816,15 +13254,15 @@ rk_sftl_vendor_storage_init: movw r2, #64504 strh r7, [r3, #12] @ movhi strh r2, [r3, #14] @ movhi -.L1825: +.L1884: mov r0, r5 pop {r3, r4, r5, r6, r7, r8, r9, pc} -.L1831: +.L1890: mvn r5, #11 - b .L1825 -.L1834: + b .L1884 +.L1893: .align 2 -.L1833: +.L1892: .word .LANCHOR3 .word 1380668996 .fnend @@ -12843,23 +13281,23 @@ rk_sftl_vendor_read: push {r3, r4, r5, r6, r7, lr} .save {r3, r4, r5, r6, r7, lr} mov r7, r0 - ldr r3, .L1841 + ldr r3, .L1900 mov r0, r1 - ldr r5, [r3, #-164] - cbz r5, .L1840 + ldr r5, [r3, #-156] + cbz r5, .L1899 ldrh r6, [r5, #10] movs r3, #0 -.L1837: +.L1896: cmp r3, r6 - bcc .L1839 -.L1840: + bcc .L1898 +.L1899: mov r0, #-1 pop {r3, r4, r5, r6, r7, pc} -.L1839: +.L1898: add r1, r5, r3, lsl #3 ldrh r4, [r1, #16] cmp r4, r7 - bne .L1838 + bne .L1897 ldrh r4, [r1, #20] ldrh r1, [r1, #18] cmp r4, r2 @@ -12871,12 +13309,12 @@ rk_sftl_vendor_read: bl memcpy mov r0, r4 pop {r3, r4, r5, r6, r7, pc} -.L1838: +.L1897: adds r3, r3, #1 - b .L1837 -.L1842: + b .L1896 +.L1901: .align 2 -.L1841: +.L1900: .word .LANCHOR3 .fnend .size rk_sftl_vendor_read, .-rk_sftl_vendor_read @@ -12894,26 +13332,26 @@ rk_sftl_vendor_write: 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, .L1862 + ldr r2, .L1921 .pad #28 sub sp, sp, #28 mov r3, r1 - ldr r4, [r2, #-164] + ldr r4, [r2, #-156] mov r9, r2 cmp r4, #0 - beq .L1858 + beq .L1917 ldrh r2, [r4, #10] add r6, r8, #63 ldrh r1, [r4, #8] bic r6, r6, #63 movs r7, #0 str r1, [sp, #4] -.L1845: +.L1904: cmp r7, r2 - bcc .L1853 + bcc .L1912 ldrh r1, [r4, #14] cmp r6, r1 - bhi .L1858 + bhi .L1917 add r2, r4, r2, lsl #3 uxth r6, r6 strh r0, [r2, #16] @ movhi @@ -12945,32 +13383,32 @@ rk_sftl_vendor_write: it hi movhi r3, #0 strh r3, [r4, #8] @ movhi - ldr r3, [r9, #-168] - b .L1861 -.L1853: + ldr r3, [r9, #-160] + b .L1920 +.L1912: add r5, r4, r7, lsl #3 ldrh r1, [r5, #16] cmp r1, r0 str r1, [sp, #8] - bne .L1846 + bne .L1905 ldrh r1, [r5, #20] add fp, r4, #1024 adds r1, r1, #63 bic r1, r1, #63 cmp r8, r1 str r1, [sp, #12] - bls .L1847 + bls .L1906 ldrh r1, [r4, #14] cmp r6, r1 - bhi .L1858 + bhi .L1917 ldrh r10, [r5, #18] subs r2, r2, #1 str r2, [sp, #16] -.L1848: +.L1907: ldr r2, [sp, #16] adds r5, r5, #8 cmp r7, r2 - bcc .L1849 + bcc .L1908 ldrh r2, [sp, #8] add r7, r4, r7, lsl #3 uxth r5, r10 @@ -12989,7 +13427,7 @@ rk_sftl_vendor_write: strh r5, [r4, #12] @ movhi add r6, r6, r3 strh r6, [r4, #14] @ movhi -.L1850: +.L1909: ldr r3, [r4, #4] movw r2, #65532 adds r3, r3, #1 @@ -13002,20 +13440,20 @@ rk_sftl_vendor_write: it hi movhi r3, #0 strh r3, [r4, #8] @ movhi - ldr r3, .L1862 - ldr r3, [r3, #-168] -.L1861: + ldr r3, .L1921 + ldr r3, [r3, #-160] +.L1920: ldr r0, [sp, #4] mov r2, r4 movs r1, #128 lsls r0, r0, #7 blx r3 movs r0, #0 -.L1843: +.L1902: add sp, sp, #28 @ sp needed pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} -.L1849: +.L1908: ldrh r9, [r5, #20] add r0, fp, r10 ldrh r2, [r5, #16] @@ -13032,24 +13470,24 @@ rk_sftl_vendor_write: add r10, r10, r9 bl memcpy ldr r3, [sp, #20] - b .L1848 -.L1847: + b .L1907 +.L1906: ldrh r0, [r5, #18] mov r2, r8 mov r1, r3 add r0, r0, fp bl memcpy strh r8, [r5, #20] @ movhi - b .L1850 -.L1846: + b .L1909 +.L1905: adds r7, r7, #1 - b .L1845 -.L1858: + b .L1904 +.L1917: mov r0, #-1 - b .L1843 -.L1863: + b .L1902 +.L1922: .align 2 -.L1862: +.L1921: .word .LANCHOR3 .fnend .size rk_sftl_vendor_write, .-rk_sftl_vendor_write @@ -13072,18 +13510,18 @@ rk_sftl_vendor_storage_ioctl: bl ftl_malloc mov r4, r0 cmp r0, #0 - beq .L1878 - ldr r3, .L1890 + beq .L1937 + ldr r3, .L1949 cmp r6, r3 - beq .L1867 + beq .L1926 adds r3, r3, #1 cmp r6, r3 - beq .L1868 -.L1889: + beq .L1927 +.L1948: mvn r5, #13 - b .L1866 -.L1867: - ldr r6, .L1890+4 + b .L1925 +.L1926: + ldr r6, .L1949+4 mov r3, sp ands r3, r3, r6 ldr r3, [r3, #72] @@ -13094,31 +13532,31 @@ rk_sftl_vendor_storage_ioctl: .thumb .syntax unified cmp r3, #0 - bne .L1874 + bne .L1933 movs r2, #8 mov r1, r5 bl arm_copy_from_user cmp r0, #0 - bne .L1889 + bne .L1948 ldr r2, [r4] - ldr r3, .L1890+8 + ldr r3, .L1949+8 cmp r2, r3 - beq .L1872 -.L1873: + beq .L1931 +.L1932: mov r5, #-1 -.L1866: +.L1925: mov r0, r4 bl kfree -.L1864: +.L1923: mov r0, r5 pop {r4, r5, r6, pc} -.L1872: +.L1931: ldrh r2, [r4, #6] add r1, r4, #8 ldrh r0, [r4, #4] bl rk_sftl_vendor_read adds r3, r0, #1 - beq .L1873 + beq .L1932 mov r3, sp uxth r2, r0 ands r6, r6, r3 @@ -13132,17 +13570,17 @@ rk_sftl_vendor_storage_ioctl: .thumb .syntax unified cmp r3, #0 - bne .L1889 + bne .L1948 mov r1, r4 mov r0, r5 bl arm_copy_to_user cmp r0, #0 - bne .L1889 -.L1880: + bne .L1948 +.L1939: mov r5, r0 - b .L1866 -.L1868: - ldr r6, .L1890+4 + b .L1925 +.L1927: + ldr r6, .L1949+4 mov r3, sp ands r3, r3, r6 ldr r3, [r3, #72] @@ -13152,20 +13590,20 @@ rk_sftl_vendor_storage_ioctl: @ 0 "" 2 .thumb .syntax unified - cbnz r3, .L1874 + cbnz r3, .L1933 movs r2, #8 mov r1, r5 bl arm_copy_from_user cmp r0, #0 - bne .L1889 + bne .L1948 ldr r2, [r4] - ldr r3, .L1890+8 + ldr r3, .L1949+8 cmp r2, r3 - bne .L1873 + bne .L1932 ldrh r2, [r4, #6] movw r3, #4087 cmp r2, r3 - bhi .L1873 + bhi .L1932 mov r3, sp adds r2, r2, #8 ands r6, r6, r3 @@ -13176,32 +13614,32 @@ rk_sftl_vendor_storage_ioctl: @ 0 "" 2 .thumb .syntax unified - cbnz r3, .L1876 + cbnz r3, .L1935 mov r1, r5 mov r0, r4 bl arm_copy_from_user cmp r0, #0 - bne .L1889 + bne .L1948 ldrh r2, [r4, #6] add r1, r4, #8 ldrh r0, [r4, #4] bl rk_sftl_vendor_write - b .L1880 -.L1874: + b .L1939 +.L1933: movs r1, #8 -.L1888: +.L1947: bl __memzero - b .L1889 -.L1876: + b .L1948 +.L1935: mov r1, r2 mov r0, r4 - b .L1888 -.L1878: + b .L1947 +.L1937: mov r5, #-1 - b .L1864 -.L1891: + b .L1923 +.L1950: .align 2 -.L1890: +.L1949: .word 1074034177 .word -8192 .word 1448232273 @@ -13219,11 +13657,11 @@ rk_sftl_vendor_register: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. - ldr r0, .L1893 + ldr r0, .L1952 b misc_register -.L1894: +.L1953: .align 2 -.L1893: +.L1952: .word .LANCHOR2+12 .fnend .size rk_sftl_vendor_register, .-rk_sftl_vendor_register @@ -13270,6 +13708,8 @@ rk_sftl_vendor_register: .global g_gc_bad_block_temp_tbl .global g_gc_bad_block_gc_index .global g_gc_bad_block_temp_num + .global g_gc_next_blk_3 + .global g_gc_next_blk_2 .global g_gc_next_blk_1 .global g_gc_next_blk .global g_gc_cur_blk_max_valid_pages @@ -13325,7 +13765,6 @@ rk_sftl_vendor_register: .global p_sys_data_buf_1 .global p_sys_data_buf .global p_plane_order_table - .global g_req_cache .global req_gc_dst .global req_gc .global req_erase @@ -13378,141 +13817,141 @@ rk_sftl_vendor_register: .section .rodata .align 2 .set .LANCHOR1,. + 0 - .type __func__.6668, %object - .size __func__.6668, 17 -__func__.6668: + .type __func__.6748, %object + .size __func__.6748, 17 +__func__.6748: .ascii "INSERT_DATA_LIST\000" - .type __func__.6663, %object - .size __func__.6663, 17 -__func__.6663: + .type __func__.6743, %object + .size __func__.6743, 17 +__func__.6743: .ascii "INSERT_FREE_LIST\000" - .type __func__.6699, %object - .size __func__.6699, 17 -__func__.6699: + .type __func__.6786, %object + .size __func__.6786, 17 +__func__.6786: .ascii "List_remove_node\000" - .type __func__.6731, %object - .size __func__.6731, 22 -__func__.6731: + .type __func__.6818, %object + .size __func__.6818, 22 +__func__.6818: .ascii "List_update_data_list\000" - .type __func__.6837, %object - .size __func__.6837, 22 -__func__.6837: + .type __func__.6929, %object + .size __func__.6929, 22 +__func__.6929: .ascii "select_l2p_ram_region\000" - .type __func__.7160, %object - .size __func__.7160, 16 -__func__.7160: + .type __func__.7252, %object + .size __func__.7252, 16 +__func__.7252: .ascii "make_superblock\000" - .type __func__.7335, %object - .size __func__.7335, 19 -__func__.7335: + .type __func__.7427, %object + .size __func__.7427, 19 +__func__.7427: .ascii "get_new_active_ppa\000" - .type __func__.17672, %object - .size __func__.17672, 15 -__func__.17672: + .type __func__.17765, %object + .size __func__.17765, 15 +__func__.17765: .ascii "FlashReadPages\000" - .type __func__.17689, %object - .size __func__.17689, 15 -__func__.17689: + .type __func__.17782, %object + .size __func__.17782, 15 +__func__.17782: .ascii "FlashProgPages\000" - .type __func__.6773, %object - .size __func__.6773, 26 -__func__.6773: + .type __func__.6860, %object + .size __func__.6860, 26 +__func__.6860: .ascii "ftl_map_blk_alloc_new_blk\000" - .type __func__.6277, %object - .size __func__.6277, 11 -__func__.6277: + .type __func__.6279, %object + .size __func__.6279, 11 +__func__.6279: .ascii "FtlMemInit\000" - .type __func__.6503, %object - .size __func__.6503, 14 -__func__.6503: + .type __func__.6583, %object + .size __func__.6583, 14 +__func__.6583: .ascii "FtlBbt2Bitmap\000" - .type __func__.6740, %object - .size __func__.6740, 16 -__func__.6740: - .ascii "load_l2p_region\000" - .type __func__.6798, %object - .size __func__.6798, 31 -__func__.6798: + .type __func__.6890, %object + .size __func__.6890, 31 +__func__.6890: .ascii "Ftl_write_map_blk_to_last_page\000" - .type __func__.6812, %object - .size __func__.6812, 16 -__func__.6812: + .type __func__.6904, %object + .size __func__.6904, 16 +__func__.6904: .ascii "FtlMapWritePage\000" - .type __func__.6784, %object - .size __func__.6784, 15 -__func__.6784: + .type __func__.6827, %object + .size __func__.6827, 16 +__func__.6827: + .ascii "load_l2p_region\000" + .type __func__.6875, %object + .size __func__.6875, 15 +__func__.6875: .ascii "ftl_map_blk_gc\000" - .type __func__.6854, %object - .size __func__.6854, 9 -__func__.6854: + .type __func__.6946, %object + .size __func__.6946, 9 +__func__.6946: .ascii "log2phys\000" - .type __func__.7069, %object - .size __func__.7069, 16 -__func__.7069: + .type __func__.7161, %object + .size __func__.7161, 16 +__func__.7161: .ascii "FtlReUsePrevPpa\000" - .type __func__.7222, %object - .size __func__.7222, 14 -__func__.7222: + .type __func__.7314, %object + .size __func__.7314, 14 +__func__.7314: .ascii "ftl_check_vpc\000" - .type __func__.6949, %object - .size __func__.6949, 14 -__func__.6949: + .type __func__.7041, %object + .size __func__.7041, 14 +__func__.7041: .ascii "FtlScanSysBlk\000" - .type __func__.7181, %object - .size __func__.7181, 18 -__func__.7181: + .type __func__.7273, %object + .size __func__.7273, 18 +__func__.7273: .ascii "SupperBlkListInit\000" - .type __func__.7307, %object - .size __func__.7307, 25 -__func__.7307: + .type __func__.7399, %object + .size __func__.7399, 25 +__func__.7399: .ascii "allocate_data_superblock\000" - .type __func__.7348, %object - .size __func__.7348, 16 -__func__.7348: + .type __func__.7440, %object + .size __func__.7440, 16 +__func__.7440: .ascii "update_vpc_list\000" - .type __func__.7355, %object - .size __func__.7355, 20 -__func__.7355: + .type __func__.7447, %object + .size __func__.7447, 20 +__func__.7447: .ascii "decrement_vpc_count\000" - .type __func__.7103, %object - .size __func__.7103, 22 -__func__.7103: + .type __func__.7195, %object + .size __func__.7195, 22 +__func__.7195: .ascii "FtlRecoverySuperblock\000" - .type __func__.6546, %object - .size __func__.6546, 11 -__func__.6546: + .type __func__.6626, %object + .size __func__.6626, 11 +__func__.6626: .ascii "FtlLoadBbt\000" - .type __func__.6927, %object - .size __func__.6927, 15 -__func__.6927: + .type __func__.7019, %object + .size __func__.7019, 15 +__func__.7019: .ascii "FtlVpcTblFlush\000" - .type __func__.7206, %object - .size __func__.7206, 21 -__func__.7206: + .type __func__.7298, %object + .size __func__.7298, 21 +__func__.7298: .ascii "FtlVpcCheckAndModify\000" - .type __func__.7328, %object - .size __func__.7328, 29 -__func__.7328: + .type __func__.7420, %object + .size __func__.7420, 29 +__func__.7420: .ascii "allocate_new_data_superblock\000" - .type __func__.6401, %object - .size __func__.6401, 13 -__func__.6401: + .type __func__.6403, %object + .size __func__.6403, 13 +__func__.6403: .ascii "FtlProgPages\000" - .type __func__.7425, %object - .size __func__.7425, 19 -__func__.7425: + .type __func__.7518, %object + .size __func__.7518, 19 +__func__.7518: .ascii "FtlGcFreeTempBlock\000" - .type __func__.7531, %object - .size __func__.7531, 23 -__func__.7531: + .type __func__.7624, %object + .size __func__.7624, 23 +__func__.7624: .ascii "rk_ftl_garbage_collect\000" - .type __func__.6429, %object - .size __func__.6429, 9 -__func__.6429: + .type __func__.6431, %object + .size __func__.6431, 9 +__func__.6431: .ascii "FtlWrite\000" - .type __func__.7006, %object - .size __func__.7006, 15 -__func__.7006: + .type __func__.7098, %object + .size __func__.7098, 15 +__func__.7098: .ascii "FtlLoadSysInfo\000" .space 2 .type rk_sftl_vendor_storage_fops, %object @@ -13542,7 +13981,7 @@ power_up_flag: .size rkflash_vender_storage_dev, 40 rkflash_vender_storage_dev: .word 255 - .word .LC110 + .word .LC116 .word rk_sftl_vendor_storage_fops .space 28 .bss @@ -13928,6 +14367,14 @@ g_gc_next_blk: .type g_gc_next_blk_1, %object .size g_gc_next_blk_1, 2 g_gc_next_blk_1: + .space 2 + .type g_gc_next_blk_2, %object + .size g_gc_next_blk_2, 2 +g_gc_next_blk_2: + .space 2 + .type g_gc_next_blk_3, %object + .size g_gc_next_blk_3, 2 +g_gc_next_blk_3: .space 2 .type g_gc_bad_block_temp_num, %object .size g_gc_bad_block_temp_num, 2 @@ -14068,22 +14515,18 @@ c_ftl_nand_bbm_buf_size: .space 2 .space 2 .type gL2pMapInfo, %object - .size gL2pMapInfo, 40 + .size gL2pMapInfo, 44 gL2pMapInfo: - .space 40 + .space 44 .type g_totle_map_block, %object .size g_totle_map_block, 2 g_totle_map_block: .space 2 .space 2 .type gVendorBlkInfo, %object - .size gVendorBlkInfo, 40 + .size gVendorBlkInfo, 44 gVendorBlkInfo: - .space 40 - .type g_req_cache, %object - .size g_req_cache, 4 -g_req_cache: - .space 4 + .space 44 .type g_tmp_data_superblock_id, %object .size g_tmp_data_superblock_id, 2 g_tmp_data_superblock_id: @@ -14119,10 +14562,6 @@ g_recovery_ppa_tbl: g_ect_tbl_power_up_flush: .space 2 .space 2 - .type gp_last_act_superblock, %object - .size gp_last_act_superblock, 4 -gp_last_act_superblock: - .space 4 .type gc_discard_updated, %object .size gc_discard_updated, 4 gc_discard_updated: @@ -14143,6 +14582,10 @@ g_gc_cur_blk_max_valid_pages: .type g_ftl_nand_free_count, %object .size g_ftl_nand_free_count, 4 g_ftl_nand_free_count: + .space 4 + .type idb_need_write_back, %object + .size idb_need_write_back, 4 +idb_need_write_back: .space 4 .type g_MaxLbn, %object .size g_MaxLbn, 4 @@ -14172,6 +14615,18 @@ check_buf: .size check_vpc_table, 16384 check_vpc_table: .space 16384 + .type gp_flash_check_buf, %object + .size gp_flash_check_buf, 262144 +gp_flash_check_buf: + .space 262144 + .type idb_buf, %object + .size idb_buf, 262144 +idb_buf: + .space 262144 + .type gp_last_act_superblock, %object + .size gp_last_act_superblock, 4 +gp_last_act_superblock: + .space 4 .section .rodata.str1.1,"aMS",%progbits,1 .LC0: .ascii "phyBlk = 0x%x die = %d block_in_die = 0x%x 0x%8x\012" @@ -14315,7 +14770,7 @@ check_vpc_table: .LC69: .ascii "free %d. [0x%x] 0x%x 0x%x\012\000" .LC70: - .ascii "SFTL version: 5.0.44 20180713\000" + .ascii "SFTL version: 5.0.45 20180810\000" .LC71: .ascii "%s\012\000" .LC72: @@ -14351,52 +14806,63 @@ check_vpc_table: .LC86: .ascii "%s error allocating memory. return -1\012\000" .LC87: - .ascii "region_id = %x phyAddr = %x\012\000" -.LC88: - .ascii "spare:\000" -.LC89: - .ascii "map_ppn:\000" -.LC90: .ascii "FtlMapWritePage error = %x \012\000" -.LC91: +.LC88: .ascii "FtlMapWritePage error = %x error count = %d\012\000" +.LC89: + .ascii "load_l2p_region refresh = %x phyAddr = %x\012\000" +.LC90: + .ascii "region_id = %x phyAddr = %x\012\000" +.LC91: + .ascii "spare:\000" .LC92: - .ascii "ftl_scan_all_data = %x\012\000" + .ascii "map_ppn:\000" .LC93: - .ascii "scan lpa = %x ppa= %x\012\000" + .ascii "ftl_map_blk_gc blk info: %x %x %x\012\000" .LC94: + .ascii "ftl_scan_all_data = %x\012\000" +.LC95: + .ascii "scan lpa = %x ppa= %x\012\000" +.LC96: .ascii "lba = %x,addr= %x,spare= %x %x %x %x data=%x %x\012" .ascii "\000" -.LC95: - .ascii "...%s enter...\012\000" -.LC96: - .ascii "FtlCheckVpc2 %x = %x %x\012\000" .LC97: - .ascii "free blk vpc error %x = %x %x\012\000" + .ascii "...%s enter...\012\000" .LC98: - .ascii "FtlBbmTblFlush id=%x,page=%x,previd=%x cnt=%d\012\000" + .ascii "FtlCheckVpc2 %x = %x %x\012\000" .LC99: - .ascii "FtlBbmTblFlush error:%x\012\000" + .ascii "free blk vpc error %x = %x %x\012\000" .LC100: - .ascii "FtlBbmTblFlush error = %x error count = %d\012\000" + .ascii "FtlBbmTblFlush id=%x,page=%x,previd=%x cnt=%d\012\000" .LC101: - .ascii "FtlGcFreeBadSuperBlk 0x%x\012\000" + .ascii "FtlBbmTblFlush error:%x\012\000" .LC102: - .ascii "decrement_vpc_count %x = %d\012\000" + .ascii "FtlBbmTblFlush error = %x error count = %d\012\000" .LC103: - .ascii "spuer block %x vpn is 0\012 \000" + .ascii "FtlGcFreeBadSuperBlk 0x%x\012\000" .LC104: - .ascii "no ect\000" + .ascii "decrement_vpc_count %x = %d\012\000" .LC105: - .ascii "FtlVpcTblFlush error = %x error count = %d\012\000" + .ascii "decrement_vpc_count %x = %d in free list\012\000" .LC106: - .ascii "FtlCheckVpc %x = %x %x\012\000" + .ascii "spuer block %x vpn is 0\012 \000" .LC107: - .ascii "Ftlwrite decrement_vpc_count %x = %d\012\000" + .ascii "FtlVendorPartRead refresh = %x phyAddr = %x\012\000" .LC108: - .ascii "SWL %x, FSB = %x vpc= %x,ec=%x th=%x\012\000" + .ascii "no ect\000" .LC109: - .ascii "FtlWrite: lpa error:%x %x\012\000" + .ascii "FtlVpcTblFlush error = %x error count = %d\012\000" .LC110: + .ascii "FtlCheckVpc %x = %x %x\012\000" +.LC111: + .ascii "Ftlwrite decrement_vpc_count %x = %d\012\000" +.LC112: + .ascii "SWL %x, FSB = %x vpc= %x,ec=%x th=%x\012\000" +.LC113: + .ascii "g_gc_superblock_free %x %x %x %x %x\012\000" +.LC114: + .ascii "FtlWrite: lpa error:%x %x\012\000" +.LC115: + .ascii "write_idblock fail! %x %x %x %x\012\000" +.LC116: .ascii "vendor_storage\000" - diff --git a/drivers/rkflash/rk_sftl_arm_v8.S b/drivers/rkflash/rk_sftl_arm_v8.S index e8896074a6c0..2267cc9400a7 100644 --- a/drivers/rkflash/rk_sftl_arm_v8.S +++ b/drivers/rkflash/rk_sftl_arm_v8.S @@ -2,7 +2,7 @@ /* * Copyright (c) 2018 Rockchip Electronics Co. Ltd. - * date: 2018-08-07 + * date: 2018-08-14 */ .arch armv8-a .file "rk_sftl.c" @@ -271,6 +271,13 @@ IsBlkInVendorPart: ret .size IsBlkInVendorPart, .-IsBlkInVendorPart .align 2 + .global FtlCacheWriteBack + .type FtlCacheWriteBack, %function +FtlCacheWriteBack: + mov w0, 0 + ret + .size FtlCacheWriteBack, .-FtlCacheWriteBack + .align 2 .global sftl_get_density .type sftl_get_density, %function sftl_get_density: @@ -351,23 +358,23 @@ FtlBbtCalcTotleCnt: ldrh w0, [x0, 58] mul w6, w6, w0 cmp w4, w6 - blt .L42 + blt .L43 mov w0, w5 ret -.L42: +.L43: stp x29, x30, [sp, -16]! add x29, sp, 0 -.L35: +.L36: mov w0, w4 bl FtlBbmIsBadBlock - cbz w0, .L34 + cbz w0, .L35 add w5, w5, 1 and w5, w5, 65535 -.L34: +.L35: add w4, w4, 1 and w4, w4, 65535 cmp w4, w6 - blt .L35 + blt .L36 mov w0, w5 ldp x29, x30, [sp], 16 ret @@ -424,12 +431,12 @@ P2V_block_in_plane: ftl_cmp_data_ver: cmp w0, w1 mov w2, -2147483648 - bls .L47 + bls .L48 sub w1, w0, w1 cmp w1, w2 cset w0, ls ret -.L47: +.L48: sub w1, w1, w0 cmp w1, w2 cset w0, hi @@ -463,23 +470,23 @@ FtlFreeSysBLkSort: add x2, x0, :lo12:.LANCHOR0 add x1, x2, 256 ldrh w3, [x1, 6] - cbz w3, .L51 + cbz w3, .L52 ldrh w5, [x2, 2340] mov w6, 0 ldrh w3, [x1, 2] mov w4, 0 ldrh w2, [x1, 4] and w5, w5, 31 -.L53: +.L54: cmp w5, w4 - bgt .L54 - cbz w6, .L51 + bgt .L55 + cbz w6, .L52 add x0, x0, :lo12:.LANCHOR0 strh w3, [x0, 258] strh w2, [x0, 260] -.L51: +.L52: ret -.L54: +.L55: add x6, x1, x3, sxtw 1 add w4, w4, 1 add w3, w3, 1 @@ -491,7 +498,7 @@ FtlFreeSysBLkSort: mov w6, 1 add w2, w2, w6 and w2, w2, 1023 - b .L53 + b .L54 .size FtlFreeSysBLkSort, .-FtlFreeSysBLkSort .align 2 .global IsInFreeQueue @@ -503,29 +510,60 @@ IsInFreeQueue: and w0, w0, 65535 ldrh w4, [x1, 6] cmp w4, 1024 - beq .L64 + beq .L65 ldrh w5, [x1, 2] mov w3, 0 -.L62: +.L63: cmp w3, w4 - bcc .L63 -.L64: + bcc .L64 +.L65: mov w0, 0 ret -.L63: +.L64: add w2, w3, w5 ubfiz x2, x2, 1, 10 add x2, x1, x2 ldrh w2, [x2, 8] cmp w2, w0 - beq .L65 + beq .L66 add w3, w3, 1 - b .L62 -.L65: + b .L63 +.L66: mov w0, 1 ret .size IsInFreeQueue, .-IsInFreeQueue .align 2 + .global test_node_in_list + .type test_node_in_list, %function +test_node_in_list: + ldr x2, [x0] + adrp x0, .LANCHOR0+2360 + mov x4, -6148914691236517206 + and w1, w1, 65535 + ldr x3, [x0, #:lo12:.LANCHOR0+2360] + movk x4, 0xaaab, lsl 0 + mov w5, 65535 + sub x0, x2, x3 + asr x0, x0, 1 + mul x0, x0, x4 + mov w4, 6 + and w0, w0, 65535 +.L69: + cmp w0, w1 + beq .L70 + ldrh w0, [x2] + cmp w0, w5 + beq .L71 + umaddl x2, w0, w4, x3 + b .L69 +.L70: + mov w0, 1 + ret +.L71: + mov w0, 0 + ret + .size test_node_in_list, .-test_node_in_list + .align 2 .global insert_data_list .type insert_data_list, %function insert_data_list: @@ -534,7 +572,7 @@ insert_data_list: and w0, w0, 65535 ldrh w1, [x3, 44] cmp w1, w0 - bls .L82 + bls .L88 mov w7, 6 ldr x12, [x3, 2360] mov w1, -1 @@ -543,12 +581,12 @@ insert_data_list: strh w1, [x5, 2] strh w1, [x12, x11] ldr x1, [x3, 2368] - cbnz x1, .L69 + cbnz x1, .L75 str x5, [x3, 2368] -.L82: +.L88: mov w0, 0 ret -.L69: +.L75: stp x29, x30, [sp, -16]! ubfiz x8, x0, 1, 16 mov x4, x2 @@ -573,13 +611,13 @@ insert_data_list: add x9, x15, x8 mov w8, w7 and w2, w2, 65535 -.L77: +.L83: add w3, w3, 1 and w3, w3, 65535 cmp w3, w18 - bhi .L68 + bhi .L74 cmp w0, w2 - beq .L68 + beq .L74 ubfiz x16, x2, 1, 16 ldrh w17, [x1, 4] cmp w17, 0 @@ -587,48 +625,48 @@ insert_data_list: mul w7, w7, w17 csel w7, w7, w10, ne cmp w6, w7 - bne .L73 + bne .L79 ldrh w16, [x15, x16] ldrh w7, [x9] cmp w16, w7 - bcc .L75 -.L74: + bcc .L81 +.L80: strh w2, [x12, x11] ldrh w2, [x1, 2] strh w2, [x5, 2] add x2, x4, :lo12:.LANCHOR0 ldr x3, [x2, 2368] cmp x1, x3 - bne .L78 + bne .L84 strh w0, [x1, 2] str x5, [x2, 2368] - b .L68 -.L73: - bcc .L74 -.L75: + b .L74 +.L79: + bcc .L80 +.L81: ldrh w7, [x1] cmp w7, w30 - bne .L76 + bne .L82 strh w2, [x5, 2] add x2, x4, :lo12:.LANCHOR0 strh w0, [x1] str x5, [x2, 2392] -.L68: +.L74: mov w0, 0 ldp x29, x30, [sp], 16 ret -.L76: +.L82: umaddl x1, w7, w8, x13 mov w2, w7 - b .L77 -.L78: + b .L83 +.L84: ldrh w3, [x1, 2] mov w4, 6 ldr x2, [x2, 2360] umull x3, w3, w4 strh w0, [x2, x3] strh w0, [x1, 2] - b .L68 + b .L74 .size insert_data_list, .-insert_data_list .align 2 .global INSERT_DATA_LIST @@ -645,14 +683,14 @@ INSERT_DATA_LIST: strh w0, [x1, 2400] ldrh w1, [x1, 44] cmp w1, w0 - bcs .L84 + bcs .L90 adrp x1, .LANCHOR1 adrp x0, .LC1 mov w2, 221 add x1, x1, :lo12:.LANCHOR1 add x0, x0, :lo12:.LC1 bl sftl_printk -.L84: +.L90: ldp x29, x30, [sp], 16 ret .size INSERT_DATA_LIST, .-INSERT_DATA_LIST @@ -663,7 +701,7 @@ insert_free_list: and w0, w0, 65535 mov w7, 65535 cmp w0, w7 - beq .L88 + beq .L94 adrp x2, .LANCHOR0 add x5, x2, :lo12:.LANCHOR0 mov w6, 6 @@ -675,12 +713,12 @@ insert_free_list: strh w1, [x4, 2] strh w1, [x9, x8] ldr x1, [x5, 2408] - cbnz x1, .L89 + cbnz x1, .L95 str x4, [x5, 2408] -.L88: +.L94: mov w0, 0 ret -.L89: +.L95: ldr x11, [x5, 2384] ubfiz x2, x0, 1, 16 ldr x10, [x5, 2360] @@ -691,40 +729,40 @@ insert_free_list: asr x2, x2, 1 mul x2, x2, x5 and w2, w2, 65535 -.L92: +.L98: ubfiz x5, x2, 1, 16 ldrh w5, [x11, x5] cmp w5, w12 - bcs .L90 + bcs .L96 ldrh w5, [x1] cmp w5, w7 - bne .L91 + bne .L97 strh w2, [x4, 2] strh w0, [x1] - b .L88 -.L91: + b .L94 +.L97: umaddl x1, w5, w6, x10 mov w2, w5 - b .L92 -.L90: + b .L98 +.L96: ldrh w5, [x1, 2] strh w5, [x4, 2] strh w2, [x9, x8] add x2, x3, :lo12:.LANCHOR0 ldr x3, [x2, 2408] cmp x1, x3 - bne .L93 + bne .L99 strh w0, [x1, 2] str x4, [x2, 2408] - b .L88 -.L93: + b .L94 +.L99: ldrh w3, [x1, 2] mov w4, 6 ldr x2, [x2, 2360] umull x3, w3, w4 strh w0, [x2, x3] strh w0, [x1, 2] - b .L88 + b .L94 .size insert_free_list, .-insert_free_list .align 2 .global INSERT_FREE_LIST @@ -741,7 +779,7 @@ INSERT_FREE_LIST: strh w0, [x1, 2416] ldrh w1, [x1, 44] cmp w1, w0 - bcs .L94 + bcs .L100 adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 adrp x0, .LC1 @@ -749,7 +787,7 @@ INSERT_FREE_LIST: add x1, x1, 24 add x0, x0, :lo12:.LC1 bl sftl_printk -.L94: +.L100: ldp x29, x30, [sp], 16 ret .size INSERT_FREE_LIST, .-INSERT_FREE_LIST @@ -773,27 +811,27 @@ List_remove_node: add x20, x22, x21 ldrh w1, [x20, 2] cmp w1, w0 - bne .L98 + bne .L104 ldr x0, [x23] cmp x20, x0 - beq .L98 + beq .L104 adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 adrp x0, .LC1 - mov w2, 379 + mov w2, 397 add x1, x1, 48 add x0, x0, :lo12:.LC1 bl sftl_printk -.L98: +.L104: ldr x0, [x23] mov w1, 65535 cmp x20, x0 ldrh w0, [x22, x21] - bne .L99 + bne .L105 cmp w0, w1 - bne .L100 + bne .L106 str xzr, [x23] -.L101: +.L107: mov w0, -1 strh w0, [x22, x21] strh w0, [x20, 2] @@ -803,7 +841,7 @@ List_remove_node: ldr x23, [sp, 48] ldp x29, x30, [sp], 64 ret -.L100: +.L106: add x19, x19, :lo12:.LANCHOR0 mov w2, 6 ldr x1, [x19, 2360] @@ -811,21 +849,21 @@ List_remove_node: mov w1, -1 str x0, [x23] strh w1, [x0, 2] - b .L101 -.L99: + b .L107 +.L105: cmp w0, w1 ldrh w1, [x20, 2] - bne .L102 + bne .L108 cmp w1, w0 - beq .L101 + beq .L107 add x19, x19, :lo12:.LANCHOR0 mov w0, 6 mov w2, -1 umull x1, w1, w0 ldr x0, [x19, 2360] strh w2, [x0, x1] - b .L101 -.L102: + b .L107 +.L108: add x19, x19, :lo12:.LANCHOR0 mov w2, 6 ldr x3, [x19, 2360] @@ -836,14 +874,14 @@ List_remove_node: ldrh w3, [x22, x21] umull x0, w0, w2 strh w3, [x1, x0] - b .L101 + b .L107 .size List_remove_node, .-List_remove_node .align 2 .global List_pop_index_node .type List_pop_index_node, %function List_pop_index_node: ldr x2, [x0] - cbz x2, .L110 + cbz x2, .L116 stp x29, x30, [sp, -32]! adrp x3, .LANCHOR0+2360 and w1, w1, 65535 @@ -852,9 +890,9 @@ List_pop_index_node: str x19, [sp, 16] mov w5, 6 ldr x19, [x3, #:lo12:.LANCHOR0+2360] -.L106: - cbnz w1, .L107 -.L109: +.L112: + cbnz w1, .L113 +.L115: sub x19, x2, x19 mov x2, -6148914691236517206 asr x19, x19, 1 @@ -867,15 +905,15 @@ List_pop_index_node: ldr x19, [sp, 16] ldp x29, x30, [sp], 32 ret -.L107: +.L113: ldrh w3, [x2] cmp w3, w4 - beq .L109 + beq .L115 sub w1, w1, #1 umaddl x2, w3, w5, x19 and w1, w1, 65535 - b .L106 -.L110: + b .L112 +.L116: mov w0, 65535 ret .size List_pop_index_node, .-List_pop_index_node @@ -898,25 +936,25 @@ List_get_gc_head_node: adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 ldr x1, [x0, 2368] - cbz x1, .L122 + cbz x1, .L128 ldr x3, [x0, 2360] mov w4, 6 mov w0, 65535 -.L119: - cbz w2, .L120 +.L125: + cbz w2, .L126 ldrh w1, [x1] cmp w1, w0 - bne .L121 + bne .L127 ret -.L121: +.L127: sub w2, w2, #1 umaddl x1, w1, w4, x3 and w2, w2, 65535 - b .L119 -.L122: + b .L125 +.L128: mov w0, 65535 ret -.L120: +.L126: sub x0, x1, x3 mov x1, -6148914691236517206 asr x0, x0, 1 @@ -939,20 +977,20 @@ List_update_data_list: stp x23, x24, [sp, 48] ldrh w1, [x0, 2424] cmp w1, w20 - beq .L125 + beq .L131 ldrh w1, [x0, 2472] cmp w1, w20 - beq .L125 + beq .L131 ldrh w1, [x0, 2520] cmp w1, w20 - beq .L125 + beq .L131 mov w22, 6 ldr x24, [x0, 2360] ldr x1, [x0, 2368] umull x22, w20, w22 add x23, x24, x22 cmp x23, x1 - beq .L125 + beq .L131 ldr x2, [x0, 2376] ubfiz x1, x20, 1, 16 ldrh w0, [x23, 4] @@ -963,26 +1001,26 @@ List_update_data_list: ldrh w0, [x23, 2] csinv w21, w21, wzr, ne cmp w0, w1 - bne .L128 + bne .L134 ldrh w1, [x24, x22] cmp w1, w0 - bne .L128 + bne .L134 adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 adrp x0, .LC1 - mov w2, 470 + mov w2, 488 add x1, x1, 72 add x0, x0, :lo12:.LC1 bl sftl_printk -.L128: +.L134: ldrh w0, [x23, 2] mov w1, 65535 cmp w0, w1 - bne .L129 + bne .L135 ldrh w1, [x24, x22] cmp w1, w0 - beq .L125 -.L129: + beq .L131 +.L135: mov w1, 6 add x22, x19, :lo12:.LANCHOR0 mov x2, -6148914691236517206 @@ -999,27 +1037,27 @@ List_update_data_list: mul w0, w1, w2 csinv w0, w0, wzr, ne cmp w21, w0 - bcs .L125 + bcs .L131 mov w1, w20 add x0, x22, 2368 bl List_remove_node ldrh w0, [x22, 2400] - cbnz w0, .L131 + cbnz w0, .L137 adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 adrp x0, .LC1 - mov w2, 481 + mov w2, 499 add x1, x1, 72 add x0, x0, :lo12:.LC1 bl sftl_printk -.L131: +.L137: add x19, x19, :lo12:.LANCHOR0 ldrh w0, [x19, 2400] sub w0, w0, #1 strh w0, [x19, 2400] mov w0, w20 bl INSERT_DATA_LIST -.L125: +.L131: mov w0, 0 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] @@ -1040,73 +1078,73 @@ select_l2p_ram_region: mov w4, 65535 ldrh w2, [x0, 142] ldr x0, [x0, 2568] -.L136: +.L142: and w19, w3, 65535 cmp w19, w2 - bcc .L138 + bcc .L144 add x4, x0, 4 mov w19, w2 mov w6, -2147483648 mov w3, 0 -.L139: +.L145: cmp w3, w2 - bne .L141 + bne .L147 cmp w19, w2 - bcc .L137 + bcc .L143 add x1, x1, :lo12:.LANCHOR0 mov w19, w2 mov w3, -1 ldrh w4, [x1, 2576] mov w1, 0 -.L142: +.L148: cmp w1, w2 - bne .L144 + bne .L150 cmp w19, w1 - bcc .L137 + bcc .L143 adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 - mov w2, 784 + mov w2, 823 add x1, x1, 96 adrp x0, .LC1 add x0, x0, :lo12:.LC1 bl sftl_printk - b .L137 -.L138: + b .L143 +.L144: add x3, x3, 1 add x5, x0, x3, lsl 4 ldrh w5, [x5, -16] cmp w5, w4 - bne .L136 -.L137: + bne .L142 +.L143: mov w0, w19 ldr x19, [sp, 16] ldp x29, x30, [sp], 32 ret -.L141: +.L147: ldr w5, [x4] - tbnz w5, #31, .L140 + tbnz w5, #31, .L146 cmp w6, w5 - bls .L140 + bls .L146 mov w6, w5 mov w19, w3 -.L140: +.L146: add w3, w3, 1 add x4, x4, 16 and w3, w3, 65535 - b .L139 -.L144: + b .L145 +.L150: ldr w6, [x0, 4] cmp w3, w6 - bls .L143 + bls .L149 ldrh w5, [x0] cmp w5, w4 csel w3, w3, w6, eq csel w19, w19, w1, eq -.L143: +.L149: add w1, w1, 1 add x0, x0, 16 and w1, w1, 65535 - b .L142 + b .L148 .size select_l2p_ram_region, .-select_l2p_ram_region .align 2 .global FtlUpdateVaildLpn @@ -1116,12 +1154,12 @@ FtlUpdateVaildLpn: add x3, x1, :lo12:.LANCHOR0 ldrh w2, [x3, 2578] cmp w2, 4 - bhi .L147 - cbnz w0, .L147 + bhi .L153 + cbnz w0, .L153 add w2, w2, 1 strh w2, [x3, 2578] ret -.L147: +.L153: add x0, x1, :lo12:.LANCHOR0 mov w6, 65535 mov x1, 0 @@ -1129,33 +1167,33 @@ FtlUpdateVaildLpn: ldr x5, [x0, 2376] strh wzr, [x0, 2578] str wzr, [x0, 2580] -.L148: +.L154: cmp w4, w1, uxth - bhi .L150 + bhi .L156 ret -.L150: +.L156: ldrh w3, [x5, x1, lsl 1] cmp w3, w6 - beq .L149 + beq .L155 ldr w2, [x0, 2580] add w2, w2, w3 str w2, [x0, 2580] -.L149: +.L155: add x1, x1, 1 - b .L148 + b .L154 .size FtlUpdateVaildLpn, .-FtlUpdateVaildLpn .align 2 .global ftl_set_blk_mode .type ftl_set_blk_mode, %function ftl_set_blk_mode: and w0, w0, 65535 - cbz w1, .L153 + cbz w1, .L159 stp x29, x30, [sp, -16]! add x29, sp, 0 bl ftl_set_blk_mode.part.7 ldp x29, x30, [sp], 16 ret -.L153: +.L159: adrp x1, .LANCHOR0+24 ubfx x2, x0, 5, 11 lsl x2, x2, 2 @@ -1191,9 +1229,9 @@ ftl_sb_update_avl_pages: strh wzr, [x0, 4] ldrh w3, [x1, 36] mov w1, 65535 -.L161: +.L167: cmp w3, w2, uxth - bhi .L163 + bhi .L169 add x4, x4, :lo12:.LANCHOR0 ubfiz x3, x3, 1, 16 add x3, x3, 16 @@ -1204,69 +1242,69 @@ ftl_sb_update_avl_pages: sub w1, w1, #1 and w1, w1, 65535 sub w1, w1, w6 -.L164: +.L170: cmp x2, x3 - bne .L166 + bne .L172 ret -.L163: +.L169: add x5, x0, x2, sxtw 1 ldrh w5, [x5, 16] cmp w5, w1 - beq .L162 + beq .L168 ldrh w5, [x0, 4] add w5, w5, 1 strh w5, [x0, 4] -.L162: +.L168: add w2, w2, 1 - b .L161 -.L166: + b .L167 +.L172: ldrh w4, [x2] cmp w4, w5 - beq .L165 + beq .L171 ldrh w4, [x0, 4] add w4, w1, w4 strh w4, [x0, 4] -.L165: +.L171: add x2, x2, 2 - b .L164 + b .L170 .size ftl_sb_update_avl_pages, .-ftl_sb_update_avl_pages .align 2 .global FtlSlcSuperblockCheck .type FtlSlcSuperblockCheck, %function FtlSlcSuperblockCheck: ldrh w1, [x0, 4] - cbz w1, .L167 + cbz w1, .L173 ldrh w2, [x0] mov w1, 65535 cmp w2, w1 - beq .L167 + beq .L173 ldrb w2, [x0, 6] add x2, x2, 8 ldrh w3, [x0, x2, lsl 1] adrp x2, .LANCHOR0+36 ldrh w4, [x2, #:lo12:.LANCHOR0+36] mov w2, w1 -.L170: +.L176: cmp w3, w2 - beq .L172 -.L167: + beq .L178 +.L173: ret -.L172: +.L178: ldrb w1, [x0, 6] add w1, w1, 1 and w1, w1, 255 strb w1, [x0, 6] cmp w1, w4 - bne .L171 + bne .L177 ldrh w1, [x0, 2] strb wzr, [x0, 6] add w1, w1, 1 strh w1, [x0, 2] -.L171: +.L177: ldrb w1, [x0, 6] add x1, x1, 8 ldrh w3, [x0, x1, lsl 1] - b .L170 + b .L176 .size FtlSlcSuperblockCheck, .-FtlSlcSuperblockCheck .align 2 .global make_superblock @@ -1281,15 +1319,15 @@ make_superblock: ldrh w1, [x19] ldrh w0, [x0, 44] cmp w1, w0 - bcc .L174 + bcc .L180 adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 adrp x0, .LC1 - mov w2, 2097 + mov w2, 2146 add x1, x1, 120 add x0, x0, :lo12:.LC1 bl sftl_printk -.L174: +.L180: add x0, x20, :lo12:.LANCHOR0 add x6, x19, 16 add x7, x0, 64 @@ -1298,9 +1336,9 @@ make_superblock: mov x5, 0 ldrh w8, [x0, 36] mov w9, -1 -.L175: +.L181: cmp w8, w5, uxth - bhi .L177 + bhi .L183 add x20, x20, :lo12:.LANCHOR0 ldrb w0, [x19, 7] ldrh w1, [x20, 106] @@ -1312,22 +1350,22 @@ make_superblock: ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 32 ret -.L177: +.L183: ldrh w1, [x19] ldrb w0, [x7, x5] bl V2P_block mov w4, w0 strh w9, [x6] bl FtlBbmIsBadBlock - cbnz w0, .L176 + cbnz w0, .L182 strh w4, [x6] ldrb w0, [x19, 7] add w0, w0, 1 strb w0, [x19, 7] -.L176: +.L182: add x5, x5, 1 add x6, x6, 2 - b .L175 + b .L181 .size make_superblock, .-make_superblock .align 2 .global update_multiplier_value @@ -1343,11 +1381,11 @@ update_multiplier_value: ldrh w10, [x1, 36] ldrh w11, [x1, 106] cmp w10, w9, uxth - bhi .L191 - cbz w6, .L189 + bhi .L197 + cbz w6, .L195 mov w0, 32768 sdiv w6, w0, w6 -.L190: +.L196: add x0, x5, :lo12:.LANCHOR0 mov w1, 6 ldr x0, [x0, 2360] @@ -1355,31 +1393,31 @@ update_multiplier_value: mov w0, 0 strh w6, [x8, 4] ret -.L184: +.L190: mov w6, 0 - b .L183 -.L189: + b .L189 +.L195: mov w6, 0 - b .L190 -.L191: + b .L196 +.L197: stp x29, x30, [sp, -16]! add x29, sp, 0 -.L182: +.L188: ldrb w0, [x7, x9] mov w1, w8 bl V2P_block bl FtlBbmIsBadBlock - cbnz w0, .L181 + cbnz w0, .L187 add w6, w6, w11 and w6, w6, 65535 -.L181: +.L187: add x9, x9, 1 cmp w10, w9, uxth - bhi .L182 - cbz w6, .L184 + bhi .L188 + cbz w6, .L190 mov w0, 32768 sdiv w6, w0, w6 -.L183: +.L189: add x0, x5, :lo12:.LANCHOR0 mov w1, 6 ldr x0, [x0, 2360] @@ -1396,7 +1434,7 @@ GetFreeBlockMinEraseCount: adrp x1, .LANCHOR0 add x1, x1, :lo12:.LANCHOR0 ldr x0, [x1, 2408] - cbz x0, .L194 + cbz x0, .L200 ldr x2, [x1, 2360] ldr x1, [x1, 2384] sub x0, x0, x2 @@ -1407,7 +1445,7 @@ GetFreeBlockMinEraseCount: and x0, x0, 65535 ldrh w0, [x1, x0, lsl 1] ret -.L194: +.L200: mov w0, 0 ret .size GetFreeBlockMinEraseCount, .-GetFreeBlockMinEraseCount @@ -1419,7 +1457,7 @@ GetFreeBlockMaxEraseCount: add x4, x2, :lo12:.LANCHOR0 and w0, w0, 65535 ldr x1, [x4, 2408] - cbz x1, .L202 + cbz x1, .L208 ldrh w3, [x4, 2416] mov w5, 7 ldr x4, [x4, 2360] @@ -1436,25 +1474,25 @@ GetFreeBlockMaxEraseCount: mul x1, x1, x3 mov w3, 0 and w1, w1, 65535 -.L198: +.L204: cmp w0, w3 - beq .L201 + beq .L207 umull x5, w1, w6 ldrh w5, [x4, x5] cmp w5, w7 - bne .L199 -.L201: + bne .L205 +.L207: add x2, x2, :lo12:.LANCHOR0 ubfiz x1, x1, 1, 16 ldr x0, [x2, 2384] ldrh w0, [x0, x1] ret -.L199: +.L205: add w3, w3, 1 mov w1, w5 and w3, w3, 65535 - b .L198 -.L202: + b .L204 +.L208: mov w0, 0 ret .size GetFreeBlockMaxEraseCount, .-GetFreeBlockMaxEraseCount @@ -1873,8 +1911,8 @@ FtlPrintInfo2buf: adrp x0, .LANCHOR2 ldr w0, [x0, #:lo12:.LANCHOR2] cmp w0, 1 - beq .L204 -.L209: + beq .L210 +.L215: sub w0, w19, w22 ldr x27, [sp, 80] ldp x19, x20, [sp, 16] @@ -1883,11 +1921,11 @@ FtlPrintInfo2buf: ldp x25, x26, [sp, 64] ldp x29, x30, [sp], 96 ret -.L204: +.L210: ldrh w0, [x21, 2672] mov w1, 65535 cmp w0, w1 - beq .L206 + beq .L212 ldr x1, [x21, 2376] ubfiz x0, x0, 1, 16 ldrh w2, [x1, x0] @@ -1896,7 +1934,7 @@ FtlPrintInfo2buf: add x1, x1, :lo12:.LC67 bl sprintf add x19, x19, x0, sxtw -.L206: +.L212: mov w0, 0 adrp x24, .LC68 bl List_get_gc_head_node @@ -1906,9 +1944,9 @@ FtlPrintInfo2buf: mov w20, 0 mov w27, 65535 mov w26, 6 -.L208: +.L214: cmp w3, w27 - beq .L207 + beq .L213 umull x25, w3, w26 ldr x0, [x21, 2360] ldr x2, [x21, 2376] @@ -1927,8 +1965,8 @@ FtlPrintInfo2buf: ldr x0, [x21, 2360] cmp w20, 16 ldrh w3, [x0, x25] - bne .L208 -.L207: + bne .L214 +.L213: add x23, x23, :lo12:.LANCHOR0 adrp x21, .LC69 add x21, x21, :lo12:.LC69 @@ -1943,9 +1981,9 @@ FtlPrintInfo2buf: movk x0, 0xaaab, lsl 0 mul x3, x3, x0 and w3, w3, 65535 -.L210: +.L216: cmp w3, w25 - beq .L209 + beq .L215 umull x24, w3, w26 ldr x0, [x23, 2360] ldr x2, [x23, 2384] @@ -1960,10 +1998,10 @@ FtlPrintInfo2buf: bl sprintf add x19, x19, x0, sxtw cmp w20, 4 - beq .L209 + beq .L215 ldr x0, [x23, 2360] ldrh w3, [x0, x24] - b .L210 + b .L216 .size FtlPrintInfo2buf, .-FtlPrintInfo2buf .align 2 .global rknand_proc_ftlread @@ -1999,14 +2037,14 @@ GetSwlReplaceBlock: ldr w2, [x0, 2636] ldr w1, [x0, 2648] cmp w2, w1 - bcs .L219 + bcs .L225 ldrh w2, [x0, 44] mov x1, 0 ldr x4, [x0, 2384] str wzr, [x0, 2628] -.L220: +.L226: cmp w2, w1 - bhi .L221 + bhi .L227 add x1, x8, :lo12:.LANCHOR0 ldr w0, [x1, 2628] udiv w2, w0, w2 @@ -2016,50 +2054,50 @@ GetSwlReplaceBlock: ldrh w2, [x1, 96] udiv w0, w0, w2 str w0, [x1, 2628] -.L222: +.L228: add x1, x8, :lo12:.LANCHOR0 ldr w9, [x1, 2648] ldr w11, [x1, 2636] add w0, w9, 256 cmp w0, w11 - bls .L227 + bls .L233 ldr w1, [x1, 2644] add w0, w9, 768 cmp w0, w1 - bls .L227 -.L229: + bls .L233 +.L235: mov w20, 65535 -.L228: +.L234: mov w0, w20 ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 32 ret -.L221: +.L227: ldrh w3, [x4, x1, lsl 1] add x1, x1, 1 ldr w5, [x0, 2628] add w3, w3, w5 str w3, [x0, 2628] - b .L220 -.L219: + b .L226 +.L225: ldr w1, [x0, 2644] cmp w2, w1 - bls .L222 + bls .L228 add w1, w1, 1 str w1, [x0, 2644] mov w1, 0 -.L224: +.L230: ldrh w2, [x0, 44] cmp w1, w2 - bcs .L222 + bcs .L228 ldr x4, [x0, 2384] ubfiz x3, x1, 1, 32 add w1, w1, 1 ldrh w2, [x4, x3] add w2, w2, 1 strh w2, [x4, x3] - b .L224 -.L227: + b .L230 +.L233: add x10, x8, :lo12:.LANCHOR0 ldrh w0, [x10, 2416] add w0, w0, w0, lsl 1 @@ -2068,9 +2106,9 @@ GetSwlReplaceBlock: and w6, w0, 65535 add w0, w9, 64 cmp w6, w0 - bcc .L229 + bcc .L235 ldr x0, [x10, 2368] - cbz x0, .L229 + cbz x0, .L235 mov w4, 65535 ldrh w12, [x10, 44] mov x13, -6148914691236517206 @@ -2081,39 +2119,39 @@ GetSwlReplaceBlock: mov w1, 0 movk x13, 0xaaab, lsl 0 mov w14, 6 -.L230: +.L236: ldrh w3, [x0] cmp w3, w10 - bne .L233 + bne .L239 mov w20, w2 -.L232: +.L238: mov w0, 65535 cmp w20, w0 - beq .L229 + beq .L235 ubfiz x7, x20, 1, 32 ldrh w3, [x5, x7] cmp w9, w3 - bcs .L234 + bcs .L240 bl GetFreeBlockMinEraseCount cmp w9, w0, uxth - bcs .L234 + bcs .L240 add x0, x8, :lo12:.LANCHOR0 str w4, [x0, 2648] -.L234: +.L240: cmp w11, w3 - bls .L229 + bls .L235 add w0, w3, 128 cmp w6, w0 - ble .L229 + ble .L235 add w0, w3, 256 cmp w11, w0 - bhi .L235 + bhi .L241 add x0, x8, :lo12:.LANCHOR0 add w3, w3, 768 ldr w0, [x0, 2644] cmp w3, w0 - bcs .L229 -.L235: + bcs .L235 +.L241: add x19, x8, :lo12:.LANCHOR0 ldrh w5, [x5, x7] mov w2, w11 @@ -2126,14 +2164,14 @@ GetSwlReplaceBlock: bl sftl_printk mov w0, 1 str w0, [x19, 3244] - b .L228 -.L233: + b .L234 +.L239: add w1, w1, 1 and w1, w1, 65535 cmp w1, w12 - bhi .L229 + bhi .L235 ldrh w15, [x0, 4] - cbz w15, .L231 + cbz w15, .L237 sub x0, x0, x7 asr x0, x0, 1 mul x0, x0, x13 @@ -2141,14 +2179,14 @@ GetSwlReplaceBlock: and x0, x0, 65535 ldrh w0, [x5, x0, lsl 1] cmp w9, w0 - bcs .L232 + bcs .L238 cmp w4, w0 - bls .L231 + bls .L237 mov w4, w0 mov w2, w20 -.L231: +.L237: umaddl x0, w3, w14, x7 - b .L230 + b .L236 .size GetSwlReplaceBlock, .-GetSwlReplaceBlock .align 2 .global free_data_superblock @@ -2157,7 +2195,7 @@ free_data_superblock: and w0, w0, 65535 mov w1, 65535 cmp w0, w1 - beq .L246 + beq .L252 stp x29, x30, [sp, -16]! adrp x2, .LANCHOR0+2376 ubfiz x1, x0, 1, 16 @@ -2168,7 +2206,7 @@ free_data_superblock: mov w0, 0 ldp x29, x30, [sp], 16 ret -.L246: +.L252: mov w0, 0 ret .size free_data_superblock, .-free_data_superblock @@ -2184,39 +2222,39 @@ get_new_active_ppa: ldrh w1, [x0] mov w0, 65535 cmp w1, w0 - bne .L250 + bne .L256 adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 adrp x0, .LC1 - mov w2, 2707 + mov w2, 2776 add x1, x1, 136 add x0, x0, :lo12:.LC1 bl sftl_printk -.L250: +.L256: adrp x20, .LANCHOR0 add x0, x20, :lo12:.LANCHOR0 ldrh w1, [x19, 2] ldrh w0, [x0, 106] cmp w1, w0 - bne .L251 + bne .L257 adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 adrp x0, .LC1 - mov w2, 2708 + mov w2, 2777 add x1, x1, 136 add x0, x0, :lo12:.LC1 bl sftl_printk -.L251: +.L257: ldrh w0, [x19, 4] - cbnz w0, .L252 + cbnz w0, .L258 adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 adrp x0, .LC1 - mov w2, 2709 + mov w2, 2778 add x1, x1, 136 add x0, x0, :lo12:.LC1 bl sftl_printk -.L252: +.L258: ldrb w0, [x19, 6] add x1, x20, :lo12:.LANCHOR0 strb wzr, [x19, 10] @@ -2224,9 +2262,9 @@ get_new_active_ppa: ldrh w2, [x1, 36] mov w1, 65535 ldrh w0, [x19, x0, lsl 1] -.L253: +.L259: cmp w0, w1 - beq .L255 + beq .L261 ldrh w21, [x19, 2] mov w3, 65535 ldrh w1, [x19, 4] @@ -2235,56 +2273,56 @@ get_new_active_ppa: sub w1, w1, #1 and w1, w1, 65535 strh w1, [x19, 4] -.L257: +.L263: add w0, w0, 1 and w0, w0, 255 cmp w2, w0 - bne .L256 + bne .L262 ldrh w0, [x19, 2] add w0, w0, 1 strh w0, [x19, 2] mov w0, 0 -.L256: +.L262: add x4, x19, x0, sxtw 1 ldrh w4, [x4, 16] cmp w4, w3 - beq .L257 + beq .L263 add x20, x20, :lo12:.LANCHOR0 strb w0, [x19, 6] ldrh w2, [x19, 2] ldrh w0, [x20, 106] cmp w2, w0 - bne .L249 - cbz w1, .L249 + bne .L255 + cbz w1, .L255 adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 adrp x0, .LC1 - mov w2, 2730 + mov w2, 2799 add x1, x1, 136 add x0, x0, :lo12:.LC1 bl sftl_printk -.L249: +.L255: mov w0, w21 ldr x21, [sp, 32] ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 48 ret -.L255: +.L261: ldrb w0, [x19, 6] add w0, w0, 1 and w0, w0, 255 strb w0, [x19, 6] cmp w0, w2 - bne .L254 + bne .L260 ldrh w0, [x19, 2] strb wzr, [x19, 6] add w0, w0, 1 strh w0, [x19, 2] -.L254: +.L260: ldrb w0, [x19, 6] add x0, x0, 8 ldrh w0, [x19, x0, lsl 1] - b .L253 + b .L259 .size get_new_active_ppa, .-get_new_active_ppa .align 2 .global FtlGcBufInit @@ -2297,19 +2335,19 @@ FtlGcBufInit: mov w9, 1 mov w5, 4 str wzr, [x1, 3248] -.L265: +.L271: ldrh w2, [x1, 36] cmp w3, w2 - bcc .L266 + bcc .L272 add x0, x0, :lo12:.LANCHOR0 mov w6, 24 mov w5, 4 -.L267: +.L273: ldr w1, [x0, 3288] cmp w2, w1 - bcc .L268 + bcc .L274 ret -.L266: +.L272: umull x4, w3, w8 ldr x6, [x1, 3256] ldr x7, [x1, 3264] @@ -2337,8 +2375,8 @@ FtlGcBufInit: str x4, [x2, 8] ldr x4, [x6, 8] str x4, [x2, 16] - b .L265 -.L268: + b .L271 +.L274: umull x4, w2, w6 ldr x3, [x0, 3256] ldr x7, [x0, 3264] @@ -2359,7 +2397,7 @@ FtlGcBufInit: sdiv w1, w1, w5 add x1, x4, x1, sxtw 2 str x1, [x3, 8] - b .L267 + b .L273 .size FtlGcBufInit, .-FtlGcBufInit .align 2 .global FtlGcBufFree @@ -2371,31 +2409,31 @@ FtlGcBufFree: mov w8, 24 ldr w7, [x2, 3288] ldr x5, [x2, 3256] -.L270: +.L276: cmp w3, w1 - bcs .L269 + bcs .L275 ubfiz x4, x3, 5, 16 mov w2, 0 add x4, x0, x4 - b .L275 -.L271: + b .L281 +.L277: add w2, w2, 1 and w2, w2, 65535 -.L275: +.L281: cmp w2, w7 - bcs .L272 + bcs .L278 umull x6, w2, w8 add x9, x5, x6 ldr x10, [x5, x6] ldr x6, [x4, 8] cmp x10, x6 - bne .L271 + bne .L277 str wzr, [x9, 16] -.L272: +.L278: add w3, w3, 1 and w3, w3, 65535 - b .L270 -.L269: + b .L276 +.L275: ret .size FtlGcBufFree, .-FtlGcBufFree .align 2 @@ -2409,20 +2447,20 @@ FtlGcBufAlloc: mov w8, 1 ldr w5, [x2, 3288] ldr x6, [x2, 3256] -.L277: +.L283: cmp w3, w1 - bcs .L276 + bcs .L282 mov w2, 0 - b .L282 -.L278: + b .L288 +.L284: add w2, w2, 1 and w2, w2, 65535 -.L282: +.L288: cmp w2, w5 - bcs .L279 + bcs .L285 umaddl x4, w2, w7, x6 ldr w9, [x4, 16] - cbnz w9, .L278 + cbnz w9, .L284 ubfiz x2, x3, 5, 16 ldr x9, [x4] add x2, x0, x2 @@ -2430,11 +2468,11 @@ FtlGcBufAlloc: str x9, [x2, 8] ldr x4, [x4, 8] str x4, [x2, 16] -.L279: +.L285: add w3, w3, 1 and w3, w3, 65535 - b .L277 -.L276: + b .L283 +.L282: ret .size FtlGcBufAlloc, .-FtlGcBufAlloc .align 2 @@ -2447,17 +2485,17 @@ IsBlkInGcList: ldrh w2, [x1, 3292] ldr x3, [x1, 3296] mov x1, 0 -.L284: +.L290: cmp w2, w1, uxth - bhi .L286 + bhi .L292 mov w0, 0 ret -.L286: +.L292: add x1, x1, 1 add x4, x3, x1, lsl 1 ldrh w4, [x4, -2] cmp w4, w0 - bne .L284 + bne .L290 mov w0, 1 ret .size IsBlkInGcList, .-IsBlkInGcList @@ -2478,25 +2516,25 @@ FtlGcUpdatePage: ldrh w1, [x4, 3292] ldr x6, [x4, 3296] mov x4, 0 -.L289: +.L295: and w2, w4, 65535 cmp w2, w1 - bcc .L291 - bne .L290 + bcc .L297 + bne .L296 and x4, x4, 65535 strh w0, [x6, x4, lsl 1] add x4, x3, :lo12:.LANCHOR0 ldrh w0, [x4, 3292] add w0, w0, 1 strh w0, [x4, 3292] - b .L290 -.L291: + b .L296 +.L297: add x4, x4, 1 add x2, x6, x4, lsl 1 ldrh w2, [x2, -2] cmp w2, w9 - bne .L289 -.L290: + bne .L295 +.L296: add x0, x3, :lo12:.LANCHOR0 mov w1, 12 ldrh w3, [x0, 3304] @@ -2528,26 +2566,42 @@ FtlGcRefreshBlock: bl sftl_printk adrp x0, .LANCHOR0 add x0, x0, :lo12:.LANCHOR0 - ldrh w3, [x0, 3320] + ldrh w5, [x0, 3320] + cmp w19, w5 + beq .L300 + ldrh w4, [x0, 3322] + cmp w19, w4 + beq .L300 + ldrh w3, [x0, 3324] cmp w19, w3 - beq .L294 - ldrh w2, [x0, 3322] + beq .L300 + ldrh w2, [x0, 3326] cmp w19, w2 - beq .L294 + beq .L300 mov w1, 65535 - cmp w3, w1 - bne .L295 + cmp w5, w1 + bne .L301 strh w19, [x0, 3320] -.L294: +.L300: mov w0, 0 ldr x19, [sp, 16] ldp x29, x30, [sp], 32 ret -.L295: - cmp w2, w1 - bne .L294 +.L301: + cmp w4, w1 + bne .L302 strh w19, [x0, 3322] - b .L294 + b .L300 +.L302: + cmp w3, w1 + bne .L303 + strh w19, [x0, 3324] + b .L300 +.L303: + cmp w2, w1 + bne .L300 + strh w19, [x0, 3326] + b .L300 .size FtlGcRefreshBlock, .-FtlGcRefreshBlock .align 2 .global FtlGcMarkBadPhyBlk @@ -2560,10 +2614,10 @@ FtlGcMarkBadPhyBlk: add x20, x19, :lo12:.LANCHOR0 stp x21, x22, [sp, 32] and w21, w0, 65535 - add x20, x20, 3328 + add x20, x20, 3336 mov w0, w21 bl P2V_block_in_plane - ldrh w1, [x20, -4] + ldrh w1, [x20, -8] mov w2, w21 mov w22, w0 adrp x0, .LC74 @@ -2571,26 +2625,26 @@ FtlGcMarkBadPhyBlk: bl sftl_printk mov w0, w22 bl FtlGcRefreshBlock - ldrh w0, [x20, -4] + ldrh w0, [x20, -8] mov x1, 0 -.L298: +.L306: cmp w0, w1, uxth - bhi .L300 + bhi .L308 cmp w0, 15 - bhi .L299 + bhi .L307 add x19, x19, :lo12:.LANCHOR0 add w1, w0, 1 - add x19, x19, 3328 - strh w1, [x19, -4] + add x19, x19, 3336 + strh w1, [x19, -8] strh w21, [x19, w0, sxtw 1] - b .L299 -.L300: + b .L307 +.L308: add x1, x1, 1 add x2, x20, x1, lsl 1 ldrh w2, [x2, -2] cmp w2, w21 - bne .L298 -.L299: + bne .L306 +.L307: mov w0, 0 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] @@ -2606,27 +2660,27 @@ FtlGcReFreshBadBlk: str x19, [sp, 16] adrp x19, .LANCHOR0 add x0, x19, :lo12:.LANCHOR0 - ldrh w1, [x0, 3324] - cbz w1, .L303 + ldrh w1, [x0, 3328] + cbz w1, .L311 ldrh w3, [x0, 3320] mov w2, 65535 cmp w3, w2 - bne .L303 - ldrh w2, [x0, 3362] + bne .L311 + ldrh w2, [x0, 3370] cmp w2, w1 - bcc .L304 - strh wzr, [x0, 3362] -.L304: + bcc .L312 + strh wzr, [x0, 3370] +.L312: add x19, x19, :lo12:.LANCHOR0 - add x0, x19, 3328 - ldrh w1, [x19, 3362] + add x0, x19, 3336 + ldrh w1, [x19, 3370] ldrh w0, [x0, x1, lsl 1] bl P2V_block_in_plane bl FtlGcRefreshBlock - ldrh w0, [x19, 3362] + ldrh w0, [x19, 3370] add w0, w0, 1 - strh w0, [x19, 3362] -.L303: + strh w0, [x19, 3370] +.L311: mov w0, 0 ldr x19, [sp, 16] ldp x29, x30, [sp], 32 @@ -2678,9 +2732,9 @@ rknand_print_hex: mov x19, 0 mov w20, 0 adrp x28, .LC77 -.L314: +.L322: cmp w26, w19 - bhi .L320 + bhi .L328 adrp x0, .LC79 add x0, x0, :lo12:.LC79 bl sftl_printk @@ -2691,42 +2745,42 @@ rknand_print_hex: ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 96 ret -.L320: - cbnz w20, .L315 +.L328: + cbnz w20, .L323 mov w3, w22 mov x2, x21 mov x1, x27 mov x0, x24 bl sftl_printk -.L315: +.L323: cmp w23, 4 - bne .L316 + bne .L324 ldr w1, [x21, x19, lsl 2] adrp x0, .LC76 add x0, x0, :lo12:.LC76 -.L322: +.L330: bl sftl_printk add w20, w20, 1 cmp w20, 15 - bls .L319 + bls .L327 mov w20, 0 adrp x0, .LC79 add x0, x0, :lo12:.LC79 bl sftl_printk -.L319: +.L327: add x19, x19, 1 add w22, w22, w23 - b .L314 -.L316: + b .L322 +.L324: cmp w23, 2 - bne .L318 + bne .L326 ldrh w1, [x21, x19, lsl 1] add x0, x28, :lo12:.LC77 - b .L322 -.L318: + b .L330 +.L326: ldrb w1, [x21, x19] mov x0, x25 - b .L322 + b .L330 .size rknand_print_hex, .-rknand_print_hex .align 2 .global FlashReadPages @@ -2749,9 +2803,9 @@ FlashReadPages: add x23, x0, x1 add x20, x20, 160 add x21, x21, :lo12:.LC1 -.L324: +.L332: cmp x19, x23 - bne .L331 + bne .L339 ldp x19, x20, [sp, 16] mov w0, 0 ldp x21, x22, [sp, 32] @@ -2759,17 +2813,17 @@ FlashReadPages: ldp x25, x26, [sp, 64] ldp x29, x30, [sp], 96 ret -.L331: +.L339: ldr x0, [x19, 8] - cbz x0, .L325 + cbz x0, .L333 ldr x0, [x19, 16] - cbnz x0, .L326 -.L325: + cbnz x0, .L334 +.L333: mov w2, 101 mov x1, x20 mov x0, x21 bl sftl_printk -.L326: +.L334: ldr w0, [x19, 4] add x26, x22, :lo12:.LANCHOR0 add x2, x29, 88 @@ -2778,14 +2832,14 @@ FlashReadPages: ldrb w0, [x29, 88] ldr w1, [x29, 92] ldp x2, x3, [x19, 8] - ldr x4, [x26, 3392] + ldr x4, [x26, 3400] blr x4 str w0, [x19] ldrh w0, [x26, 14] cmp w0, 4 - bne .L328 + bne .L336 ldrb w0, [x29, 88] - ldr x4, [x26, 3392] + ldr x4, [x26, 3400] ldp x2, x3, [x19, 8] ldr w1, [x29, 92] add x3, x3, 8 @@ -2793,23 +2847,23 @@ FlashReadPages: add w1, w25, w1 blr x4 cmn w0, #1 - beq .L329 + beq .L337 ldr x0, [x19, 16] ldr w1, [x0, 12] cmn w1, #1 - bne .L328 + bne .L336 ldr w1, [x0, 8] cmn w1, #1 - bne .L328 + bne .L336 ldr w0, [x0] cmn w0, #1 - beq .L328 -.L329: + beq .L336 +.L337: mov w0, -1 str w0, [x19] -.L328: +.L336: add x19, x19, 32 - b .L324 + b .L332 .size FlashReadPages, .-FlashReadPages .align 2 .global FtlLoadFactoryBbt @@ -2826,16 +2880,16 @@ FtlLoadFactoryBbt: stp x19, x20, [sp, 16] mov x19, x0 stp x23, x24, [sp, 48] - add x23, x0, 3400 + add x23, x0, 3408 mov x25, x23 mov w26, 61664 - ldr x1, [x0, 3432] - ldr x24, [x0, 3440] + ldr x1, [x0, 3440] + ldr x24, [x0, 3448] stp x1, x24, [x23, 8] -.L343: +.L351: ldrh w0, [x19, 58] cmp w21, w0 - bcc .L348 + bcc .L356 mov w0, 0 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] @@ -2843,17 +2897,17 @@ FtlLoadFactoryBbt: ldp x25, x26, [sp, 64] ldp x29, x30, [sp], 80 ret -.L348: +.L356: ldrh w20, [x19, 102] mov w0, -1 strh w0, [x22] -.L345: +.L353: ldrh w0, [x19, 102] sub w20, w20, #1 and w20, w20, 65535 sub w1, w0, #16 cmp w20, w1 - ble .L346 + ble .L354 madd w0, w0, w21, w20 mov w2, 1 mov w1, w2 @@ -2863,15 +2917,15 @@ FtlLoadFactoryBbt: bl FlashReadPages ldr w0, [x25] cmn w0, #1 - beq .L345 + beq .L353 ldrh w0, [x24] cmp w0, w26 - bne .L345 + bne .L353 strh w20, [x22] -.L346: +.L354: add w21, w21, 1 add x22, x22, 2 - b .L343 + b .L351 .size FtlLoadFactoryBbt, .-FtlLoadFactoryBbt .align 2 .global FtlGetLastWrittenPage @@ -2886,9 +2940,9 @@ FtlGetLastWrittenPage: adrp x1, .LANCHOR0 stp x21, x22, [sp, 32] add x1, x1, :lo12:.LANCHOR0 - bne .L354 + bne .L362 ldrh w19, [x1, 108] -.L355: +.L363: sub w19, w19, #1 adrp x1, ftl_temp_buf sxth w19, w19 @@ -2905,23 +2959,23 @@ FtlGetLastWrittenPage: bl FlashReadPages ldr w0, [x29, 96] cmn w0, #1 - bne .L356 + bne .L364 mov w22, 0 mov w24, 2 -.L357: +.L365: cmp w22, w19 - ble .L360 -.L356: + ble .L368 +.L364: mov w0, w19 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldp x29, x30, [sp], 160 ret -.L354: +.L362: ldrh w19, [x1, 106] - b .L355 -.L360: + b .L363 +.L368: add w20, w22, w19 mov w2, w23 mov w1, 1 @@ -2933,17 +2987,20 @@ FtlGetLastWrittenPage: bl FlashReadPages ldr w0, [x29, 96] cmn w0, #1 - bne .L358 + bne .L366 ldr w0, [x29, 100] cmn w0, #1 - bne .L358 + bne .L366 + ldr w0, [x29, 64] + cmn w0, #1 + beq .L366 sub w19, w20, #1 sxth w19, w19 - b .L357 -.L358: + b .L365 +.L366: add w20, w20, 1 sxth w22, w20 - b .L357 + b .L365 .size FtlGetLastWrittenPage, .-FtlGetLastWrittenPage .align 2 .global FlashProgPages @@ -2970,11 +3027,11 @@ FlashProgPages: mov x19, x0 add x22, x22, 176 add x23, x23, :lo12:.LC1 -.L363: +.L374: cmp x19, x24 - bne .L371 - cbnz w26, .L372 -.L390: + bne .L382 + cbnz w26, .L383 +.L401: ldp x19, x20, [sp, 16] mov w0, 0 ldp x21, x22, [sp, 32] @@ -2983,17 +3040,17 @@ FlashProgPages: ldr x27, [sp, 80] ldp x29, x30, [sp], 144 ret -.L371: +.L382: ldr x0, [x19, 8] - cbz x0, .L364 + cbz x0, .L375 ldr x0, [x19, 16] - cbnz x0, .L365 -.L364: + cbnz x0, .L376 +.L375: mov w2, 131 mov x1, x22 mov x0, x23 bl sftl_printk -.L365: +.L376: ldr w0, [x19, 4] add x2, x29, 104 add x1, x29, 108 @@ -3001,17 +3058,17 @@ FlashProgPages: add x0, x21, :lo12:.LANCHOR0 ldr w1, [x29, 108] ldp x2, x3, [x19, 8] - ldr x4, [x0, 3384] + ldr x4, [x0, 3392] ldrb w0, [x29, 104] blr x4 - cbnz w0, .L366 + cbnz w0, .L377 str wzr, [x19] -.L367: +.L378: add x0, x21, :lo12:.LANCHOR0 ldrh w1, [x0, 14] cmp w1, 4 - bne .L369 - ldr x4, [x0, 3384] + bne .L380 + ldr x4, [x0, 3392] ldrb w0, [x29, 104] ldp x2, x3, [x19, 8] ldr w1, [x29, 108] @@ -3019,17 +3076,17 @@ FlashProgPages: add x2, x2, 2048 add w1, w27, w1 blr x4 - cbz w0, .L369 + cbz w0, .L380 mov w0, -1 str w0, [x19] -.L369: +.L380: add x19, x19, 32 - b .L363 -.L366: + b .L374 +.L377: mov w0, -1 str w0, [x19] - b .L367 -.L376: + b .L378 +.L387: str wzr, [x21] mov w2, w25 str wzr, [x23] @@ -3041,50 +3098,50 @@ FlashProgPages: bl FlashReadPages ldr w24, [x29, 112] cmn w24, #1 - bne .L373 + bne .L384 ldr w1, [x20, 4] adrp x0, .LC80 add x0, x0, :lo12:.LC80 bl sftl_printk str w24, [x20] -.L373: +.L384: ldr x0, [x20, 16] - cbz x0, .L374 + cbz x0, .L385 ldr w2, [x0] ldr w3, [x21] cmp w2, w3 - beq .L374 + beq .L385 ldr w1, [x20, 4] adrp x0, .LC81 add x0, x0, :lo12:.LC81 bl sftl_printk mov w0, -1 str w0, [x20] -.L374: +.L385: ldr x0, [x20, 8] - cbz x0, .L375 + cbz x0, .L386 ldr w3, [x22, #:lo12:check_buf] ldr w2, [x0] cmp w2, w3 - beq .L375 + beq .L386 ldr w1, [x20, 4] adrp x0, .LC82 add x0, x0, :lo12:.LC82 bl sftl_printk mov w0, -1 str w0, [x20] -.L375: +.L386: add x20, x20, 32 -.L391: +.L402: cmp x20, x19 - bne .L376 - b .L390 -.L372: + bne .L387 + b .L401 +.L383: add x21, x21, :lo12:.LANCHOR0 adrp x22, check_buf - add x21, x21, 3448 + add x21, x21, 3456 add x23, x22, :lo12:check_buf - b .L391 + b .L402 .size FlashProgPages, .-FlashProgPages .align 2 .global FlashEraseBlocks @@ -3103,40 +3160,40 @@ FlashEraseBlocks: add x22, x0, x2 mov w21, -1 ldrh w23, [x19, 12] -.L394: +.L405: cmp x20, x22 - bne .L400 + bne .L411 ldp x19, x20, [sp, 16] mov w0, 0 ldp x21, x22, [sp, 32] ldr x23, [sp, 48] ldp x29, x30, [sp], 80 ret -.L400: +.L411: ldr w0, [x20] add x2, x29, 72 add x1, x29, 76 bl l2p_addr_tran.isra.0 ldrb w0, [x29, 72] ldr w1, [x29, 76] - ldr x2, [x19, 3376] + ldr x2, [x19, 3384] blr x2 cmp w0, 0 csel w0, w21, wzr, ne str w0, [x20, -4] ldrh w0, [x19, 14] cmp w0, 4 - bne .L398 + bne .L409 ldrb w0, [x29, 72] - ldr x2, [x19, 3376] + ldr x2, [x19, 3384] ldr w1, [x29, 76] add w1, w23, w1 blr x2 - cbz w0, .L398 + cbz w0, .L409 str w21, [x20, -4] -.L398: +.L409: add x20, x20, 32 - b .L394 + b .L405 .size FlashEraseBlocks, .-FlashEraseBlocks .align 2 .global FtlFreeSysBlkQueueIn @@ -3150,24 +3207,24 @@ FtlFreeSysBlkQueueIn: sub w2, w21, #1 mov w0, 65533 cmp w0, w2, uxth - bcc .L405 + bcc .L416 adrp x0, .LANCHOR0 add x20, x0, :lo12:.LANCHOR0 mov x19, x0 ldrh w2, [x20, 262] cmp w2, 1024 - beq .L405 + beq .L416 and w1, w1, 65535 - cbz w1, .L407 + cbz w1, .L418 mov w0, w21 bl P2V_block_in_plane and w22, w0, 65535 - ldr x0, [x20, 3960] + ldr x0, [x20, 3968] lsl w1, w21, 10 mov w2, 1 str w1, [x0, 4] mov w1, w2 - ldr x0, [x20, 3960] + ldr x0, [x20, 3968] bl FlashEraseBlocks ldr x2, [x20, 2384] ubfiz x0, x22, 1, 16 @@ -3177,7 +3234,7 @@ FtlFreeSysBlkQueueIn: ldr w0, [x20, 2640] add w0, w0, 1 str w0, [x20, 2640] -.L407: +.L418: add x0, x19, :lo12:.LANCHOR0 add x0, x0, 256 ldrh w1, [x0, 6] @@ -3189,7 +3246,7 @@ FtlFreeSysBlkQueueIn: and w1, w1, 1023 strh w1, [x0, 4] strh w21, [x2, 8] -.L405: +.L416: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x29, x30, [sp], 48 @@ -3215,65 +3272,65 @@ FtlLowFormatEraseBlock: and w24, w0, 65535 mov w21, 0 mov w19, 0 - str w24, [x5, 3968] -.L416: + str w24, [x5, 3976] +.L427: ldrh w0, [x5, 36] cmp w0, w10 - bhi .L420 - cbz w21, .L415 - ldr x0, [x5, 3960] + bhi .L431 + cbz w21, .L426 + ldr x0, [x5, 3968] mov w2, w21 mov w1, 0 ubfiz x21, x21, 5, 16 mov x22, 0 add x25, x20, :lo12:.LANCHOR0 bl FlashEraseBlocks -.L424: - ldr x0, [x25, 3960] +.L435: + ldr x0, [x25, 3968] add x1, x0, x22 ldr w0, [x0, x22] cmn w0, #1 - bne .L423 + bne .L434 ldr w0, [x1, 4] add w19, w19, 1 and w19, w19, 65535 lsr w0, w0, 10 bl FtlBbmMapBadBlock -.L423: +.L434: add x22, x22, 32 cmp x22, x21 - bne .L424 - cbz w23, .L437 + bne .L435 + cbz w23, .L448 add x0, x20, :lo12:.LANCHOR0 mov w25, 1 ldrh w26, [x0, 108] lsr w0, w26, 2 str w0, [x29, 124] -.L425: +.L436: add x27, x20, :lo12:.LANCHOR0 mov w22, 0 add x0, x27, 64 str x0, [x29, 112] -.L433: +.L444: mov w5, 0 mov w21, 0 -.L426: +.L437: ldrh w0, [x27, 36] cmp w0, w5 - bhi .L429 - cbz w21, .L415 - ldr x0, [x27, 3960] + bhi .L440 + cbz w21, .L426 + ldr x0, [x27, 3968] mov w1, w21 mov w3, 1 mov w2, w25 mov x28, 0 bl FlashProgPages ubfiz x1, x21, 5, 16 -.L432: - ldr x0, [x27, 3960] +.L443: + ldr x0, [x27, 3968] add x3, x0, x28 ldr w0, [x0, x28] - cbz w0, .L431 + cbz w0, .L442 ldr w0, [x3, 4] add w19, w19, 1 str x1, [x29, 104] @@ -3281,40 +3338,40 @@ FtlLowFormatEraseBlock: lsr w0, w0, 10 bl FtlBbmMapBadBlock ldr x1, [x29, 104] -.L431: +.L442: add x28, x28, 32 cmp x1, x28 - bne .L432 + bne .L443 ldr w0, [x29, 124] add w22, w22, w0 and w22, w22, 65535 cmp w26, w22 - bhi .L433 + bhi .L444 add x26, x20, :lo12:.LANCHOR0 mov x22, 0 -.L435: - cbz w23, .L434 - ldr x0, [x26, 3960] +.L446: + cbz w23, .L445 + ldr x0, [x26, 3968] add x1, x0, x22 ldr w0, [x0, x22] - cbnz w0, .L434 + cbnz w0, .L445 ldr w0, [x1, 4] mov w1, 1 lsr w0, w0, 10 bl FtlFreeSysBlkQueueIn -.L434: +.L445: add x22, x22, 32 cmp x22, x28 - bne .L435 + bne .L446 cmp w24, 63 ccmp w23, 0, 0, hi - beq .L415 + beq .L426 add x20, x20, :lo12:.LANCHOR0 mov w2, w21 mov w1, w25 - ldr x0, [x20, 3960] + ldr x0, [x20, 3968] bl FlashEraseBlocks -.L415: +.L426: mov w0, w19 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] @@ -3323,8 +3380,8 @@ FtlLowFormatEraseBlock: ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 128 ret -.L420: - ldr x1, [x5, 3960] +.L431: + ldr x1, [x5, 3968] ubfiz x0, x10, 5, 16 str wzr, [x1, x0] mov w1, w24 @@ -3332,22 +3389,22 @@ FtlLowFormatEraseBlock: bl V2P_block and w6, w0, 65535 mov w7, w6 - cbz w23, .L417 + cbz w23, .L428 bl IsBlkInVendorPart - cbnz w0, .L418 -.L417: + cbnz w0, .L429 +.L428: mov w0, w7 bl FtlBbmIsBadBlock - cbnz w0, .L419 - ldr x0, [x5, 3960] + cbnz w0, .L430 + ldr x0, [x5, 3968] ubfiz x2, x21, 5, 16 lsl w6, w6, 10 add x0, x0, x2 str w6, [x0, 4] - ldr x1, [x5, 3960] - ldr x0, [x5, 3976] + ldr x1, [x5, 3968] + ldr x0, [x5, 3984] add x1, x1, x2 - ldr x2, [x5, 3984] + ldr x2, [x5, 3992] str x0, [x1, 8] ldrh w0, [x5, 116] mul w0, w0, w21 @@ -3356,22 +3413,22 @@ FtlLowFormatEraseBlock: sdiv w0, w0, w9 add x0, x2, x0, sxtw 2 str x0, [x1, 16] -.L418: +.L429: add w10, w10, 1 and w10, w10, 65535 - b .L416 -.L419: + b .L427 +.L430: add w19, w19, 1 and w19, w19, 65535 - b .L418 -.L437: + b .L429 +.L448: mov w0, 6 mov w25, 0 mov w26, 1 str w0, [x29, 124] - b .L425 -.L429: - ldr x1, [x27, 3960] + b .L436 +.L440: + ldr x1, [x27, 3968] ubfiz x0, x5, 5, 16 str wzr, [x1, x0] mov w1, w24 @@ -3380,20 +3437,20 @@ FtlLowFormatEraseBlock: bl V2P_block and w6, w0, 65535 mov w7, w6 - cbz w23, .L427 + cbz w23, .L438 bl IsBlkInVendorPart - cbnz w0, .L428 -.L427: + cbnz w0, .L439 +.L438: mov w0, w7 bl FtlBbmIsBadBlock - cbnz w0, .L428 - ldr x0, [x27, 3960] + cbnz w0, .L439 + ldr x0, [x27, 3968] ubfiz x2, x21, 5, 16 add w6, w22, w6, lsl 10 add x0, x0, x2 str w6, [x0, 4] - ldr x1, [x27, 3960] - ldr x0, [x27, 3992] + ldr x1, [x27, 3968] + ldr x0, [x27, 4000] add x1, x1, x2 mov w2, 4 str x0, [x1, 8] @@ -3402,13 +3459,13 @@ FtlLowFormatEraseBlock: add w21, w21, 1 and w21, w21, 65535 sdiv w0, w0, w2 - ldr x2, [x27, 3976] + ldr x2, [x27, 3984] add x0, x2, x0, sxtw 2 str x0, [x1, 16] -.L428: +.L439: add w5, w5, 1 and w5, w5, 65535 - b .L426 + b .L437 .size FtlLowFormatEraseBlock, .-FtlLowFormatEraseBlock .align 2 .global FtlFreeSysBlkQueueOut @@ -3424,9 +3481,9 @@ FtlFreeSysBlkQueueOut: adrp x23, .LC84 add x23, x23, :lo12:.LC84 stp x21, x22, [sp, 32] -.L459: +.L470: ldrh w1, [x20, 6] - cbz w1, .L460 + cbz w1, .L471 ldrh w0, [x20, 2] sub w1, w1, #1 strh w1, [x20, 6] @@ -3438,12 +3495,12 @@ FtlFreeSysBlkQueueOut: mov w0, w21 bl P2V_block_in_plane and w22, w0, 65535 - ldr x0, [x19, 3960] + ldr x0, [x19, 3968] lsl w1, w21, 10 mov w2, 1 str w1, [x0, 4] mov w1, w2 - ldr x0, [x19, 3960] + ldr x0, [x19, 3968] bl FlashEraseBlocks ldr x2, [x19, 2384] ubfiz x0, x22, 1, 16 @@ -3456,26 +3513,26 @@ FtlFreeSysBlkQueueOut: str w0, [x19, 2640] mov w0, 65533 cmp w0, w1, uxth - bcc .L461 + bcc .L472 mov w0, w21 ldr x23, [sp, 48] ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x29, x30, [sp], 64 ret -.L460: +.L471: adrp x0, .LC83 mov w1, 0 add x0, x0, :lo12:.LC83 bl sftl_printk -.L463: - b .L463 -.L461: +.L474: + b .L474 +.L472: ldrh w2, [x20, 6] mov w1, w21 mov x0, x23 bl sftl_printk - b .L459 + b .L470 .size FtlFreeSysBlkQueueOut, .-FtlFreeSysBlkQueueOut .align 2 .global ftl_map_blk_alloc_new_blk @@ -3489,27 +3546,27 @@ ftl_map_blk_alloc_new_blk: mov w20, 0 ldrh w1, [x0, 10] ldr x0, [x0, 16] -.L467: +.L478: cmp w20, w1 - beq .L471 + beq .L482 mov x21, x0 ldrh w2, [x0], 2 - cbnz w2, .L468 + cbnz w2, .L479 bl FtlFreeSysBlkQueueOut and w1, w0, 65535 strh w0, [x21] sub w2, w1, #1 mov w0, 65533 cmp w0, w2, uxth - bcs .L469 + bcs .L480 adrp x0, .LANCHOR0+262 ldrh w2, [x0, #:lo12:.LANCHOR0+262] adrp x0, .LC85 add x0, x0, :lo12:.LC85 bl sftl_printk -.L470: - b .L470 -.L469: +.L481: + b .L481 +.L480: ldr w0, [x19, 48] strh wzr, [x19, 2] add w0, w0, 1 @@ -3518,27 +3575,27 @@ ftl_map_blk_alloc_new_blk: strh w20, [x19] add w0, w0, 1 strh w0, [x19, 8] -.L471: +.L482: ldrh w0, [x19, 10] cmp w0, w20 - bhi .L473 + bhi .L484 adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 adrp x0, .LC1 - mov w2, 581 + mov w2, 603 add x1, x1, 192 add x0, x0, :lo12:.LC1 bl sftl_printk -.L473: +.L484: mov w0, 0 ldr x21, [sp, 32] ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 48 ret -.L468: +.L479: add w20, w20, 1 and w20, w20, 65535 - b .L467 + b .L478 .size ftl_map_blk_alloc_new_blk, .-ftl_map_blk_alloc_new_blk .align 2 .global ftl_memset @@ -3555,7 +3612,7 @@ ftl_memset: .global FtlMemInit .type FtlMemInit, %function FtlMemInit: - stp x29, x30, [sp, -48]! + stp x29, x30, [sp, -64]! mov w0, 65535 add x29, sp, 0 stp x19, x20, [sp, 16] @@ -3565,31 +3622,32 @@ FtlMemInit: add x1, x19, 2560 add x2, x19, 2560 strh wzr, [x19, 3240] - strh wzr, [x19, 3324] stp wzr, wzr, [x1, 28] stp wzr, wzr, [x1, 36] str wzr, [x19, 2604] str wzr, [x19, 2608] stp wzr, wzr, [x2, 60] stp wzr, wzr, [x2, 68] - str w0, [x19, 4004] + str w0, [x19, 4012] mov w0, -1 strh w0, [x19, 3320] strh w0, [x19, 3322] mov w0, 32 - str wzr, [x19, 2640] + str x23, [sp, 48] strh w0, [x19, 3232] mov w0, 128 - str wzr, [x19, 2644] + str wzr, [x19, 2640] strh w0, [x19, 3234] + str wzr, [x19, 2644] str wzr, [x19, 2648] str wzr, [x19, 3236] str wzr, [x19, 3244] - str wzr, [x19, 3968] - str wzr, [x19, 4000] + str wzr, [x19, 3976] str wzr, [x19, 4008] - strh wzr, [x19, 3362] + str wzr, [x19, 4016] + strh wzr, [x19, 3328] ldrh w0, [x19, 110] + strh wzr, [x19, 3370] lsl w0, w0, 1 bl ftl_malloc ldrh w1, [x19, 110] @@ -3603,16 +3661,16 @@ FtlMemInit: lsl w21, w21, 7 mov w0, w21 bl ftl_malloc - str x0, [x19, 4016] - mov w0, w22 - bl ftl_malloc str x0, [x19, 4024] - mov w0, w21 + mov w0, w22 bl ftl_malloc str x0, [x19, 4032] + mov w0, w21 + bl ftl_malloc + str x0, [x19, 4040] mov w0, w22 bl ftl_malloc - str x0, [x19, 3960] + str x0, [x19, 3968] mov w0, w22 bl ftl_malloc str x0, [x19, 3280] @@ -3623,23 +3681,23 @@ FtlMemInit: str w0, [x19, 3288] mov w0, w21 bl ftl_malloc - str x0, [x19, 3432] - mov w0, w21 - bl ftl_malloc - str x0, [x19, 4040] + str x0, [x19, 3440] mov w0, w21 bl ftl_malloc str x0, [x19, 4048] + mov w0, w21 + bl ftl_malloc + str x0, [x19, 4056] ldr w0, [x19, 3288] mul w0, w21, w0 bl ftl_malloc str x0, [x19, 3264] mov w0, w21 bl ftl_malloc - str x0, [x19, 3992] + str x0, [x19, 4000] mov w0, w21 bl ftl_malloc - str x0, [x19, 3976] + str x0, [x19, 3984] ldr w1, [x19, 3288] mov w0, 24 mul w0, w1, w0 @@ -3650,10 +3708,10 @@ FtlMemInit: mul w21, w21, w0 mov w0, w21 bl ftl_malloc - str x0, [x19, 3440] + str x0, [x19, 3448] lsl w0, w21, 2 bl ftl_malloc - str x0, [x19, 3984] + str x0, [x19, 3992] ldrh w1, [x19, 116] ldr w0, [x19, 3288] mul w0, w1, w0 @@ -3661,37 +3719,37 @@ FtlMemInit: str x0, [x19, 3272] ldrh w0, [x19, 46] ubfiz w0, w0, 1, 15 - strh w0, [x19, 4056] + strh w0, [x19, 4064] and w0, w0, 65534 bl ftl_malloc - str x0, [x19, 4064] - ldrh w0, [x19, 4056] + str x0, [x19, 4072] + ldrh w0, [x19, 4064] add x0, x0, 547 lsr x0, x0, 9 - strh w0, [x19, 4056] + strh w0, [x19, 4064] lsl w0, w0, 9 bl ftl_malloc ldrh w21, [x19, 46] - str x0, [x19, 4072] + str x0, [x19, 4080] add x0, x0, 32 str x0, [x19, 2384] lsl w21, w21, 1 mov w0, w21 bl ftl_malloc - str x0, [x19, 4080] - mov w0, w21 - bl ftl_malloc - ldr w21, [x19, 132] - str x0, [x19, 2376] - lsl w21, w21, 1 - mov w0, w21 - bl ftl_malloc str x0, [x19, 4088] mov w0, w21 + bl ftl_malloc + ldr w23, [x19, 132] adrp x21, .LANCHOR3 add x22, x21, :lo12:.LANCHOR3 + str x0, [x19, 2376] + lsl w23, w23, 1 + mov w0, w23 bl ftl_malloc str x0, [x22, -256] + mov w0, w23 + bl ftl_malloc + str x0, [x22, -248] ldrh w0, [x19, 46] lsr w0, w0, 3 add w0, w0, 4 @@ -3704,27 +3762,27 @@ FtlMemInit: ldrh w0, [x19, 124] lsl w0, w0, 1 bl ftl_malloc - str x0, [x22, -248] + str x0, [x22, -240] ldrh w0, [x19, 124] lsl w0, w0, 2 bl ftl_malloc - str x0, [x22, -240] + str x0, [x22, -232] ldrh w0, [x19, 126] lsl w0, w0, 2 bl ftl_malloc ldrh w2, [x19, 126] mov w1, 0 - str x0, [x22, -232] + str x0, [x22, -224] lsl w2, w2, 2 bl ftl_memset ldrh w0, [x19, 140] lsl w0, w0, 2 bl ftl_malloc - str x0, [x22, -224] + str x0, [x22, -216] ldr w0, [x19, 132] lsl w0, w0, 2 bl ftl_malloc - str x0, [x22, -216] + str x0, [x22, -208] ldrh w0, [x19, 142] lsl w0, w0, 4 bl ftl_malloc @@ -3733,7 +3791,7 @@ FtlMemInit: ldrh w0, [x19, 114] mul w0, w1, w0 bl ftl_malloc - str x0, [x22, -208] + str x0, [x22, -200] ldrh w1, [x19, 46] mov w0, 6 mul w0, w1, w0 @@ -3743,34 +3801,34 @@ FtlMemInit: ldrh w1, [x19, 58] add w0, w0, 31 asr w0, w0, 5 - strh w0, [x22, -200] + strh w0, [x22, -192] mul w0, w1, w0 lsl w0, w0, 2 bl ftl_malloc - ldrh w4, [x22, -200] + ldrh w4, [x22, -192] add x5, x19, 200 ldrh w6, [x19, 58] mov x1, 1 str x0, [x19, 192] mov w2, w4 mov x0, x20 -.L478: +.L489: cmp w1, w6 - bcc .L479 + bcc .L490 mov w2, 8 add x4, x0, :lo12:.LANCHOR0 sub w2, w2, w1 add x4, x4, 160 add x2, x2, 1 mov x3, 0 -.L480: +.L491: add x3, x3, 1 cmp x3, x2 - bne .L481 - add x2, x0, :lo12:.LANCHOR0 - ldr x1, [x2, 4088] - cbnz x1, .L482 -.L484: + bne .L492 + add x1, x21, :lo12:.LANCHOR3 + ldr x2, [x1, -256] + cbnz x2, .L493 +.L495: adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 add x1, x1, 224 @@ -3778,93 +3836,94 @@ FtlMemInit: add x0, x0, :lo12:.LC86 bl sftl_printk mov w0, -1 -.L477: +.L488: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] - ldp x29, x30, [sp], 48 + ldr x23, [sp, 48] + ldp x29, x30, [sp], 64 ret -.L479: +.L490: ldr x3, [x19, 192] add w1, w1, 1 add x3, x3, x2, uxtw 2 add w2, w2, w4 str x3, [x5], 8 - b .L478 -.L481: + b .L489 +.L492: add x5, x1, x3 add x5, x4, x5, lsl 3 str xzr, [x5, 24] - b .L480 -.L482: - add x1, x21, :lo12:.LANCHOR3 - ldr x3, [x1, -256] - cbz x3, .L484 - ldr x3, [x1, -224] - cbz x3, .L484 - ldr x3, [x1, -216] - cbz x3, .L484 + b .L491 +.L493: + ldr x2, [x1, -248] + cbz x2, .L495 + ldr x2, [x1, -216] + cbz x2, .L495 + ldr x2, [x1, -208] + cbz x2, .L495 + add x2, x0, :lo12:.LANCHOR0 ldr x3, [x2, 2568] - cbz x3, .L484 - ldr x1, [x1, -208] - cbz x1, .L484 + cbz x3, .L495 + ldr x1, [x1, -200] + cbz x1, .L495 ldr x1, [x2, 2360] - cbz x1, .L484 + cbz x1, .L495 ldr x1, [x2, 192] - cbz x1, .L484 + cbz x1, .L495 ldr x1, [x2, 2376] - cbz x1, .L484 - add x1, x0, :lo12:.LANCHOR0 - ldr x2, [x1, 3296] - cbz x2, .L484 + cbz x1, .L495 + mov x1, x2 + ldr x2, [x2, 3296] + cbz x2, .L495 ldr x2, [x1, 3312] - cbz x2, .L484 - ldr x2, [x1, 4016] - cbz x2, .L484 - ldr x2, [x1, 4032] - cbz x2, .L484 - ldr x2, [x1, 3960] - cbz x2, .L484 - ldr x2, [x1, 3280] - cbz x2, .L484 + cbz x2, .L495 ldr x2, [x1, 4024] - cbz x2, .L484 - ldr x2, [x1, 3432] - cbz x2, .L484 + cbz x2, .L495 ldr x2, [x1, 4040] - cbz x2, .L484 - ldr x1, [x1, 4048] - cbz x1, .L484 + cbz x2, .L495 + ldr x2, [x1, 3968] + cbz x2, .L495 + ldr x2, [x1, 3280] + cbz x2, .L495 + ldr x2, [x1, 4032] + cbz x2, .L495 + ldr x2, [x1, 3440] + cbz x2, .L495 + ldr x2, [x1, 4048] + cbz x2, .L495 + ldr x1, [x1, 4056] + cbz x1, .L495 add x0, x0, :lo12:.LANCHOR0 ldr x1, [x0, 3264] - cbz x1, .L484 - ldr x1, [x0, 3992] - cbz x1, .L484 - ldr x1, [x0, 3976] - cbz x1, .L484 - ldr x1, [x0, 3256] - cbz x1, .L484 - ldr x1, [x0, 3440] - cbz x1, .L484 + cbz x1, .L495 + ldr x1, [x0, 4000] + cbz x1, .L495 ldr x1, [x0, 3984] - cbz x1, .L484 + cbz x1, .L495 + ldr x1, [x0, 3256] + cbz x1, .L495 + ldr x1, [x0, 3448] + cbz x1, .L495 + ldr x1, [x0, 3992] + cbz x1, .L495 ldr x1, [x0, 3272] - cbz x1, .L484 + cbz x1, .L495 ldr x1, [x0, 2384] - cbz x1, .L484 - ldr x1, [x0, 4064] - cbz x1, .L484 + cbz x1, .L495 + ldr x1, [x0, 4072] + cbz x1, .L495 ldr x0, [x0, 152] - cbz x0, .L484 + cbz x0, .L495 adrp x0, .LANCHOR3 add x0, x0, :lo12:.LANCHOR3 - ldr x1, [x0, -248] - cbz x1, .L484 ldr x1, [x0, -240] - cbz x1, .L484 - ldr x0, [x0, -232] - cbz x0, .L484 + cbz x1, .L495 + ldr x1, [x0, -232] + cbz x1, .L495 + ldr x0, [x0, -224] + cbz x0, .L495 mov w0, 0 - b .L477 + b .L488 .size FtlMemInit, .-FtlMemInit .align 2 .global FtlBbt2Bitmap @@ -3874,11 +3933,11 @@ FtlBbt2Bitmap: add x29, sp, 0 stp x21, x22, [sp, 32] mov x22, x0 - adrp x0, .LANCHOR3-200 + adrp x0, .LANCHOR3-192 stp x19, x20, [sp, 16] adrp x20, .LANCHOR1 add x20, x20, :lo12:.LANCHOR1 - ldrh w2, [x0, #:lo12:.LANCHOR3-200] + ldrh w2, [x0, #:lo12:.LANCHOR3-192] add x20, x20, 240 str x23, [sp, 48] adrp x23, .LANCHOR0 @@ -3889,20 +3948,20 @@ FtlBbt2Bitmap: mov w1, 0 mov x0, x21 bl ftl_memset -.L582: +.L593: ldrh w0, [x22, x19] mov w1, 65535 cmp w0, w1 - beq .L579 + beq .L590 ldrh w1, [x23, 102] cmp w1, w0 - bhi .L581 + bhi .L592 adrp x0, .LC1 mov w2, 74 mov x1, x20 add x0, x0, :lo12:.LC1 bl sftl_printk -.L581: +.L592: ldrh w2, [x22, x19] mov w1, 1 add x19, x19, 2 @@ -3913,8 +3972,8 @@ FtlBbt2Bitmap: ldr w1, [x21, x0] orr w1, w1, w2 str w1, [x21, x0] - bne .L582 -.L579: + bne .L593 +.L590: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldr x23, [sp, 48] @@ -3960,115 +4019,6 @@ FtlFreeSysBlkQueueInit: ret .size FtlFreeSysBlkQueueInit, .-FtlFreeSysBlkQueueInit .align 2 - .global load_l2p_region - .type load_l2p_region, %function -load_l2p_region: - stp x29, x30, [sp, -80]! - add x29, sp, 0 - stp x19, x20, [sp, 16] - and w20, w0, 65535 - and x19, x1, 65535 - adrp x0, .LANCHOR0 - add x1, x0, :lo12:.LANCHOR0 - stp x23, x24, [sp, 48] - stp x21, x22, [sp, 32] - mov x24, x0 - stp x25, x26, [sp, 64] - ldrh w1, [x1, 140] - cmp w1, w20 - bcs .L591 - adrp x1, .LANCHOR1 - add x1, x1, :lo12:.LANCHOR1 - adrp x0, .LC1 - mov w2, 492 - add x1, x1, 256 - add x0, x0, :lo12:.LC1 - bl sftl_printk -.L591: - adrp x22, .LANCHOR3 - add x22, x22, :lo12:.LANCHOR3 - ubfiz x0, x20, 2, 16 - ldr x1, [x22, -224] - ldr w25, [x1, x0] - cbnz w25, .L592 - add x24, x24, :lo12:.LANCHOR0 - lsl x19, x19, 4 - mov w1, 255 - ldr x0, [x24, 2568] - ldrh w2, [x24, 114] - add x0, x0, x19 - ldr x0, [x0, 8] - bl ftl_memset - ldr x0, [x24, 2568] - strh w20, [x0, x19] - ldr x0, [x24, 2568] - add x19, x0, x19 - str wzr, [x19, 4] -.L593: - mov w0, 0 - ldp x19, x20, [sp, 16] - ldp x21, x22, [sp, 32] - ldp x23, x24, [sp, 48] - ldp x25, x26, [sp, 64] - ldp x29, x30, [sp], 80 - ret -.L592: - add x23, x24, :lo12:.LANCHOR0 - lsl x19, x19, 4 - add x21, x23, 3400 - mov w2, 1 - mov w1, w2 - ldr x0, [x23, 2568] - str w25, [x23, 3404] - add x0, x0, x19 - ldr x0, [x0, 8] - str x0, [x23, 3408] - ldr x0, [x23, 3440] - str x0, [x23, 3416] - mov x0, x21 - bl FlashReadPages - ldr x26, [x23, 3416] - ldrh w0, [x26, 8] - cmp w0, w20 - beq .L594 - mov w2, w25 - mov w1, w20 - adrp x0, .LC87 - add x0, x0, :lo12:.LC87 - bl sftl_printk - ldr x1, [x23, 3416] - mov w3, 4 - adrp x0, .LC88 - mov w2, w3 - add x0, x0, :lo12:.LC88 - bl rknand_print_hex - ldrh w3, [x23, 140] - adrp x0, .LC89 - ldr x1, [x22, -224] - mov w2, 4 - add x0, x0, :lo12:.LC89 - bl rknand_print_hex -.L594: - ldrh w0, [x26, 8] - cmp w0, w20 - beq .L595 - adrp x1, .LANCHOR1 - add x1, x1, :lo12:.LANCHOR1 - adrp x0, .LC1 - mov w2, 513 - add x1, x1, 256 - add x0, x0, :lo12:.LC1 - bl sftl_printk -.L595: - add x0, x24, :lo12:.LANCHOR0 - ldr x1, [x0, 2568] - add x1, x1, x19 - str wzr, [x1, 4] - ldr x0, [x0, 2568] - strh w20, [x0, x19] - b .L593 - .size load_l2p_region, .-load_l2p_region - .align 2 .global ftl_free_no_use_map_blk .type ftl_free_no_use_map_blk, %function ftl_free_no_use_map_blk: @@ -4087,19 +4037,19 @@ ftl_free_no_use_map_blk: mov x0, x21 bl ftl_memset mov w0, 0 -.L598: +.L602: ldrh w1, [x19, 6] cmp w1, w0 - bhi .L602 + bhi .L606 ldrh w26, [x21] adrp x24, .LANCHOR0 add x24, x24, :lo12:.LANCHOR0 mov w25, 0 mov w20, 0 -.L603: +.L607: ldrh w0, [x19, 10] cmp w0, w20 - bhi .L607 + bhi .L611 mov w0, w25 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] @@ -4107,61 +4057,61 @@ ftl_free_no_use_map_blk: ldp x25, x26, [sp, 64] ldp x29, x30, [sp], 80 ret -.L602: +.L606: ubfiz x1, x0, 2, 16 ldr w2, [x20, x1] mov w1, 0 ubfx x2, x2, 10, 16 -.L599: +.L603: ldrh w3, [x19, 10] cmp w3, w1 - bhi .L601 + bhi .L605 add w0, w0, 1 and w0, w0, 65535 - b .L598 -.L601: + b .L602 +.L605: ubfiz x3, x1, 1, 16 ldrh w4, [x23, x3] cmp w4, w2 - bne .L600 + bne .L604 ldrh w4, [x21, x3] add w4, w4, 1 strh w4, [x21, x3] -.L600: +.L604: add w1, w1, 1 and w1, w1, 65535 - b .L599 -.L607: + b .L603 +.L611: ldrh w0, [x19] uxtw x22, w20 cmp w0, w20 - bne .L604 + bne .L608 ldrh w0, [x24, 108] ldrh w1, [x19, 2] cmp w1, w0 - bcs .L604 + bcs .L608 strh w0, [x21, x22, lsl 1] -.L604: +.L608: lsl x22, x22, 1 ldrh w0, [x21, x22] cmp w26, w0 - bls .L605 + bls .L609 mov w25, w20 mov w26, w0 -.L605: - cbnz w0, .L606 +.L609: + cbnz w0, .L610 ldrh w0, [x23, x22] - cbz w0, .L606 + cbz w0, .L610 mov w1, 1 bl FtlFreeSysBlkQueueIn strh wzr, [x23, x22] ldrh w0, [x19, 8] sub w0, w0, #1 strh w0, [x19, 8] -.L606: +.L610: add w20, w20, 1 and w20, w20, 65535 - b .L603 + b .L607 .size ftl_free_no_use_map_blk, .-ftl_free_no_use_map_blk .align 2 .global Ftl_write_map_blk_to_last_page @@ -4177,17 +4127,17 @@ Ftl_write_map_blk_to_last_page: ldr x20, [x0, 16] ldrh w0, [x0] cmp w0, w1 - bne .L613 + bne .L617 ldrh w0, [x19, 8] - cbz w0, .L614 + cbz w0, .L618 adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 adrp x0, .LC1 - mov w2, 641 - add x1, x1, 272 + mov w2, 677 + add x1, x1, 256 add x0, x0, :lo12:.LC1 bl sftl_printk -.L614: +.L618: ldrh w0, [x19, 8] add w0, w0, 1 strh w0, [x19, 8] @@ -4198,14 +4148,14 @@ Ftl_write_map_blk_to_last_page: strh wzr, [x19] add w0, w0, 1 str w0, [x19, 48] -.L615: +.L619: mov w0, 0 ldr x23, [sp, 48] ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x29, x30, [sp], 64 ret -.L613: +.L617: ubfiz x0, x0, 1, 16 adrp x21, .LANCHOR0 ldr w1, [x19, 48] @@ -4214,11 +4164,11 @@ Ftl_write_map_blk_to_last_page: add x20, x21, :lo12:.LANCHOR0 ldrh w0, [x19, 2] orr w0, w0, w22, lsl 10 - str w0, [x20, 3404] - ldr x0, [x20, 3432] - str x0, [x20, 3408] + str w0, [x20, 3412] ldr x0, [x20, 3440] str x0, [x20, 3416] + ldr x0, [x20, 3448] + str x0, [x20, 3424] str w1, [x0, 4] mov w1, -1291 strh w1, [x0, 8] @@ -4227,45 +4177,45 @@ Ftl_write_map_blk_to_last_page: strh w22, [x0, 2] mov w1, 255 ldrh w2, [x20, 108] - ldr x0, [x20, 3432] + ldr x0, [x20, 3440] lsl w2, w2, 3 bl ftl_memset mov w0, 0 mov w1, 0 -.L616: +.L620: ldrh w2, [x19, 6] cmp w2, w1 - bhi .L618 + bhi .L622 add x0, x21, :lo12:.LANCHOR0 mov w2, 1 mov w3, 0 mov w1, w2 - add x0, x0, 3400 + add x0, x0, 3408 bl FlashProgPages ldrh w0, [x19, 2] add w0, w0, 1 strh w0, [x19, 2] mov x0, x19 bl ftl_map_blk_gc - b .L615 -.L618: + b .L619 +.L622: ubfiz x2, x1, 2, 16 ldr w3, [x23, x2] cmp w22, w3, lsr 10 - bne .L617 + bne .L621 add w0, w0, 1 - ldr x4, [x20, 3432] + ldr x4, [x20, 3440] and w0, w0, 65535 ubfiz x3, x0, 3, 16 str w1, [x4, x3] ldr w4, [x23, x2] - ldr x2, [x20, 3432] + ldr x2, [x20, 3440] add x2, x2, x3 str w4, [x2, 4] -.L617: +.L621: add w1, w1, 1 and w1, w1, 65535 - b .L616 + b .L620 .size Ftl_write_map_blk_to_last_page, .-Ftl_write_map_blk_to_last_page .align 2 .global FtlMapWritePage @@ -4274,22 +4224,22 @@ FtlMapWritePage: stp x29, x30, [sp, -96]! add x29, sp, 0 stp x23, x24, [sp, 48] - adrp x23, .LANCHOR0 - add x24, x23, :lo12:.LANCHOR0 + adrp x24, .LANCHOR0 + stp x25, x26, [sp, 64] + add x25, x24, :lo12:.LANCHOR0 stp x19, x20, [sp, 16] + adrp x23, .LANCHOR1 stp x21, x22, [sp, 32] mov x19, x0 - stp x25, x26, [sp, 64] - adrp x22, .LANCHOR1 stp x27, x28, [sp, 80] mov w26, w1 mov x27, x2 - mov x25, x23 - add x22, x22, :lo12:.LANCHOR1 - add x20, x24, 3400 - mov w21, 0 -.L624: - add x0, x23, :lo12:.LANCHOR0 + mov x21, x24 + add x23, x23, :lo12:.LANCHOR1 + add x20, x25, 3408 + mov w22, 0 +.L628: + add x0, x24, :lo12:.LANCHOR0 ldr w1, [x0, 2604] add w1, w1, 1 str w1, [x0, 2604] @@ -4297,35 +4247,35 @@ FtlMapWritePage: ldrh w1, [x19, 2] sub w0, w0, #1 cmp w1, w0 - bge .L625 + bge .L629 ldrh w1, [x19] mov w0, 65535 cmp w1, w0 - bne .L626 -.L625: + bne .L630 +.L629: mov x0, x19 bl Ftl_write_map_blk_to_last_page -.L626: +.L630: ldrh w1, [x19] ldr x0, [x19, 16] ldrh w0, [x0, x1, lsl 1] - cbnz w0, .L627 + cbnz w0, .L631 adrp x0, .LC1 - mov w2, 699 - add x1, x22, 304 + mov w2, 735 + add x1, x23, 288 add x0, x0, :lo12:.LC1 bl sftl_printk -.L627: +.L631: ldrh w1, [x19] ldrh w0, [x19, 10] cmp w1, w0 - bcc .L628 + bcc .L632 adrp x0, .LC1 - mov w2, 700 - add x1, x22, 304 + mov w2, 736 + add x1, x23, 288 add x0, x0, :lo12:.LC1 bl sftl_printk -.L628: +.L632: ldrh w1, [x19] mov w2, 16 ldr x0, [x19, 16] @@ -4335,7 +4285,7 @@ FtlMapWritePage: str x27, [x20, 8] orr w0, w0, w28, lsl 10 str w0, [x20, 4] - ldr x0, [x24, 3440] + ldr x0, [x25, 3448] str x0, [x20, 16] bl ftl_memset ldr x0, [x20, 16] @@ -4356,40 +4306,46 @@ FtlMapWritePage: strh w0, [x19, 2] ldr w1, [x20] cmn w1, #1 - bne .L629 + bne .L633 ldr w1, [x20, 4] - adrp x0, .LC90 - add x0, x0, :lo12:.LC90 - add w21, w21, 1 - and w21, w21, 65535 + adrp x0, .LC87 + add x0, x0, :lo12:.LC87 + add w22, w22, 1 + and w22, w22, 65535 bl sftl_printk ldrh w0, [x19, 2] cmp w0, 2 - bhi .L630 - ldrh w0, [x24, 108] + bhi .L634 + ldrh w0, [x25, 108] sub w0, w0, #1 strh w0, [x19, 2] -.L630: - cmp w21, 3 - bls .L631 - add x25, x25, :lo12:.LANCHOR0 - adrp x0, .LC91 - mov w2, w21 - add x0, x0, :lo12:.LC91 - ldr w1, [x25, 3404] +.L634: + cmp w22, 3 + bls .L635 + add x21, x21, :lo12:.LANCHOR0 + adrp x0, .LC88 + mov w2, w22 + add x0, x0, :lo12:.LC88 + ldr w1, [x21, 3412] bl sftl_printk -.L632: - b .L632 -.L631: +.L636: + b .L636 +.L635: ldr w0, [x19, 52] - cbz w0, .L624 -.L641: - b .L641 -.L629: + cbz w0, .L628 +.L653: + b .L653 +.L633: + cbz w1, .L639 + strh w28, [x19, 60] cmp w0, 1 - beq .L624 + beq .L628 + cmp w1, 256 +.L656: + beq .L628 ldr x0, [x19, 40] - ldr w1, [x20, 4] + add x21, x21, :lo12:.LANCHOR0 + ldr w1, [x21, 3412] str w1, [x0, w26, uxtw 2] mov w0, 0 ldp x19, x20, [sp, 16] @@ -4399,8 +4355,138 @@ FtlMapWritePage: ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 96 ret +.L639: + cmp w0, 1 + b .L656 .size FtlMapWritePage, .-FtlMapWritePage .align 2 + .global load_l2p_region + .type load_l2p_region, %function +load_l2p_region: + stp x29, x30, [sp, -80]! + add x29, sp, 0 + stp x19, x20, [sp, 16] + adrp x19, .LANCHOR0 + stp x21, x22, [sp, 32] + and w21, w0, 65535 + add x0, x19, :lo12:.LANCHOR0 + stp x23, x24, [sp, 48] + stp x25, x26, [sp, 64] + and x20, x1, 65535 + ldrh w0, [x0, 140] + cmp w0, w21 + bcs .L658 + adrp x1, .LANCHOR1 + add x1, x1, :lo12:.LANCHOR1 + adrp x0, .LC1 + mov w2, 510 + add x1, x1, 304 + add x0, x0, :lo12:.LC1 + bl sftl_printk +.L658: + adrp x22, .LANCHOR3 + add x26, x22, :lo12:.LANCHOR3 + ubfiz x0, x21, 2, 16 + ldr x1, [x26, -216] + ldr w23, [x1, x0] + cbnz w23, .L659 + add x19, x19, :lo12:.LANCHOR0 + lsl x20, x20, 4 + mov w1, 255 + ldr x0, [x19, 2568] + ldrh w2, [x19, 114] + add x0, x0, x20 + ldr x0, [x0, 8] + bl ftl_memset + ldr x0, [x19, 2568] + strh w21, [x0, x20] + ldr x0, [x19, 2568] + add x20, x0, x20 + str wzr, [x20, 4] +.L660: + mov w0, 0 + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] + ldp x29, x30, [sp], 80 + ret +.L659: + add x24, x19, :lo12:.LANCHOR0 + lsl x20, x20, 4 + add x25, x24, 3408 + mov w2, 1 + mov w1, w2 + ldr x0, [x24, 2568] + str w23, [x24, 3412] + add x0, x0, x20 + ldr x0, [x0, 8] + str x0, [x24, 3416] + ldr x0, [x24, 3448] + str x0, [x24, 3424] + mov x0, x25 + bl FlashReadPages + ldr x25, [x24, 3424] + ldr w0, [x24, 3408] + cmp w0, 256 + bne .L661 + mov w2, w23 + mov w1, w21 + adrp x0, .LC89 + add x0, x0, :lo12:.LC89 + bl sftl_printk + lsr w0, w23, 10 + strh w0, [x26, -124] + ldr x0, [x24, 2568] + mov w1, w21 + add x0, x0, x20 + ldr x2, [x0, 8] + sub x0, x26, #184 + bl FtlMapWritePage +.L661: + ldrh w0, [x25, 8] + cmp w0, w21 + beq .L662 + mov w2, w23 + add x23, x19, :lo12:.LANCHOR0 + mov w1, w21 + adrp x0, .LC90 + add x0, x0, :lo12:.LC90 + bl sftl_printk + ldr x1, [x23, 3424] + add x22, x22, :lo12:.LANCHOR3 + mov w3, 4 + adrp x0, .LC91 + mov w2, w3 + add x0, x0, :lo12:.LC91 + bl rknand_print_hex + ldrh w3, [x23, 140] + adrp x0, .LC92 + ldr x1, [x22, -216] + mov w2, 4 + add x0, x0, :lo12:.LC92 + bl rknand_print_hex +.L662: + ldrh w0, [x25, 8] + cmp w0, w21 + beq .L663 + adrp x1, .LANCHOR1 + add x1, x1, :lo12:.LANCHOR1 + adrp x0, .LC1 + mov w2, 535 + add x1, x1, 304 + add x0, x0, :lo12:.LC1 + bl sftl_printk +.L663: + add x19, x19, :lo12:.LANCHOR0 + ldr x0, [x19, 2568] + add x0, x0, x20 + str wzr, [x0, 4] + ldr x0, [x19, 2568] + strh w21, [x0, x20] + b .L660 + .size load_l2p_region, .-load_l2p_region + .align 2 .global ftl_map_blk_gc .type ftl_map_blk_gc, %function ftl_map_blk_gc: @@ -4409,23 +4495,43 @@ ftl_map_blk_gc: stp x19, x20, [sp, 16] mov x19, x0 stp x21, x22, [sp, 32] - adrp x22, .LANCHOR0 + adrp x21, .LANCHOR0 stp x23, x24, [sp, 48] stp x25, x26, [sp, 64] stp x27, x28, [sp, 80] ldr x20, [x0, 16] - ldr x25, [x0, 40] + ldr x22, [x0, 40] bl ftl_free_no_use_map_blk - ldrh w1, [x19, 10] + ldrh w4, [x19, 10] ldrh w2, [x19, 8] - sub w1, w1, #4 + sub w1, w4, #4 cmp w2, w1 - blt .L644 - ubfiz x0, x0, 1, 16 - ldrh w24, [x20, x0] - cbz w24, .L644 + ldrh w1, [x19, 60] + bge .L666 + mov w2, 65535 + cmp w1, w2 + beq .L668 + add x2, x21, :lo12:.LANCHOR0 + ldrh w3, [x19, 2] + ldrh w2, [x2, 108] + cmp w3, w2 + bcc .L669 +.L666: + mov w2, 65535 + and w0, w0, 65535 + cmp w1, w2 + beq .L670 + add x2, x21, :lo12:.LANCHOR0 + ldrh w3, [x19, 2] + ldrh w2, [x2, 108] + cmp w2, w3 + bls .L671 +.L670: + ubfiz x0, x0, 1, 32 + ldrh w26, [x20, x0] + cbz w26, .L668 ldr w1, [x19, 52] - cbnz w1, .L644 + cbnz w1, .L668 mov w1, 1 str w1, [x19, 52] strh wzr, [x20, x0] @@ -4433,36 +4539,36 @@ ftl_map_blk_gc: ldrh w1, [x19, 2] sub w0, w0, #1 strh w0, [x19, 8] - add x0, x22, :lo12:.LANCHOR0 + add x0, x21, :lo12:.LANCHOR0 ldrh w0, [x0, 108] cmp w1, w0 - bcc .L645 + bcc .L676 mov x0, x19 bl ftl_map_blk_alloc_new_blk -.L645: - add x26, x22, :lo12:.LANCHOR0 - adrp x23, .LANCHOR1 - add x23, x23, :lo12:.LANCHOR1 - add x21, x26, 3400 - add x23, x23, 320 +.L676: + add x27, x21, :lo12:.LANCHOR0 + adrp x24, .LANCHOR1 + add x24, x24, :lo12:.LANCHOR1 + add x23, x27, 3408 + add x24, x24, 320 mov w20, 0 -.L646: +.L677: ldrh w0, [x19, 6] cmp w0, w20 - bhi .L650 + bhi .L684 mov w1, 1 - mov w0, w24 + mov w0, w26 bl FtlFreeSysBlkQueueIn str wzr, [x19, 52] -.L644: - add x22, x22, :lo12:.LANCHOR0 +.L668: + add x21, x21, :lo12:.LANCHOR0 ldrh w1, [x19, 2] - ldrh w0, [x22, 108] + ldrh w0, [x21, 108] cmp w1, w0 - bcc .L651 + bcc .L669 mov x0, x19 bl ftl_map_blk_alloc_new_blk -.L651: +.L669: mov w0, 0 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] @@ -4471,43 +4577,77 @@ ftl_map_blk_gc: ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 96 ret -.L650: - ubfiz x27, x20, 2, 16 - ldr w0, [x25, x27] - cmp w24, w0, lsr 10 - bne .L647 - ldr x28, [x26, 3440] +.L674: + ldrh w6, [x20, x2, lsl 1] + add x5, x2, 1 + cmp w6, w1 + beq .L672 + mov x2, x5 +.L673: + and w23, w2, 65535 + cmp w23, w4 + bcc .L674 + mov w23, w0 +.L672: + and x2, x2, 65535 + adrp x0, .LC93 + add x0, x0, :lo12:.LC93 + ldrh w2, [x20, x2, lsl 1] + bl sftl_printk + mov w0, -1 + strh w0, [x19, 60] + mov w0, w23 + b .L670 +.L671: + mov x2, 0 + b .L673 +.L684: + ubfiz x0, x20, 2, 16 + add x28, x22, x0 + ldr w1, [x22, x0] + cmp w26, w1, lsr 10 + bne .L678 + ldr x25, [x27, 3448] mov w2, 1 - ldr x0, [x26, 4040] + ldr x1, [x27, 4048] + stp x1, x25, [x23, 8] mov w1, w2 - stp x0, x28, [x21, 8] - ldr w0, [x25, x27] - str w0, [x21, 4] - mov x0, x21 + ldr w0, [x22, x0] + str w0, [x23, 4] + mov x0, x23 bl FlashReadPages - ldrh w0, [x28, 8] + ldrh w0, [x25, 8] cmp w0, w20 - beq .L648 + beq .L679 adrp x0, .LC1 - mov w2, 613 - mov x1, x23 + mov w2, 647 + mov x1, x24 add x0, x0, :lo12:.LC1 bl sftl_printk -.L648: - ldr w0, [x21] +.L679: + ldr w0, [x23] cmn w0, #1 - bne .L649 - str wzr, [x25, x27] -.L647: - add w20, w20, 1 - and w20, w20, 65535 - b .L646 -.L649: - ldr x2, [x21, 8] + bne .L680 +.L682: + str wzr, [x28] +.L681: + b .L681 +.L680: + ldrh w0, [x25, 8] + cmp w0, w20 + bne .L682 + ldrh w1, [x25] + ldrh w0, [x19, 4] + cmp w1, w0 + bne .L682 + ldr x2, [x23, 8] mov w1, w20 mov x0, x19 bl FtlMapWritePage - b .L647 +.L678: + add w20, w20, 1 + and w20, w20, 65535 + b .L677 .size ftl_map_blk_gc, .-ftl_map_blk_gc .align 2 .global flush_l2p_region @@ -4525,7 +4665,7 @@ flush_l2p_region: ldrh w1, [x0, x20] adrp x0, .LANCHOR3 add x0, x0, :lo12:.LANCHOR3 - sub x0, x0, #192 + sub x0, x0, #184 bl FtlMapWritePage ldr x0, [x19, 2568] add x0, x0, x20 @@ -4562,23 +4702,23 @@ log2phys: and w19, w19, w0 cmp w0, w1 and x19, x19, 65535 - bcc .L659 + bcc .L693 adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 adrp x0, .LC1 - mov w2, 808 + mov w2, 847 add x1, x1, 336 add x0, x0, :lo12:.LC1 bl sftl_printk -.L659: +.L693: add x0, x24, :lo12:.LANCHOR0 ldrh w1, [x0, 142] ldr x2, [x0, 2568] mov x0, 0 -.L660: +.L694: and x20, x0, 65535 cmp w20, w1 - bcc .L665 + bcc .L699 bl select_l2p_ram_region and x20, x0, 65535 add x2, x24, :lo12:.LANCHOR0 @@ -4589,39 +4729,39 @@ log2phys: ldrh w2, [x2, x1] mov w1, 65535 cmp w2, w1 - beq .L666 + beq .L700 ldr w1, [x3, 4] - tbz w1, #31, .L666 + tbz w1, #31, .L700 bl flush_l2p_region -.L666: +.L700: mov w1, w25 mov w0, w21 bl load_l2p_region - b .L661 -.L665: + b .L695 +.L699: add x0, x0, 1 add x3, x2, x0, lsl 4 ldrh w3, [x3, -16] cmp w3, w21 - bne .L660 -.L661: - cbnz w23, .L662 + bne .L694 +.L695: + cbnz w23, .L696 add x0, x24, :lo12:.LANCHOR0 ldr x0, [x0, 2568] add x0, x0, x20, lsl 4 ldr x0, [x0, 8] ldr w0, [x0, x19, lsl 2] str w0, [x22] -.L663: +.L697: add x24, x24, :lo12:.LANCHOR0 ldr x0, [x24, 2568] add x20, x0, x20, lsl 4 ldr w0, [x20, 4] cmn w0, #1 - beq .L668 + beq .L702 add w0, w0, 1 str w0, [x20, 4] -.L668: +.L702: mov w0, 0 ldr x25, [sp, 64] ldp x19, x20, [sp, 16] @@ -4629,7 +4769,7 @@ log2phys: ldp x23, x24, [sp, 48] ldp x29, x30, [sp], 80 ret -.L662: +.L696: add x2, x24, :lo12:.LANCHOR0 lsl x0, x20, 4 mov x1, x0 @@ -4644,7 +4784,7 @@ log2phys: ldr w1, [x0, 4] orr w1, w1, -2147483648 str w1, [x0, 4] - b .L663 + b .L697 .size log2phys, .-log2phys .align 2 .global FtlReUsePrevPpa @@ -4665,9 +4805,9 @@ FtlReUsePrevPpa: ubfiz x20, x0, 1, 16 ldr x3, [x2, 2376] ldrh w1, [x3, x20] - cbnz w1, .L674 + cbnz w1, .L708 ldr x19, [x2, 2408] - cbz x19, .L675 + cbz x19, .L709 ldrh w3, [x2, 2416] mov x4, -6148914691236517206 ldr x2, [x2, 2360] @@ -4678,25 +4818,25 @@ FtlReUsePrevPpa: mul x19, x19, x4 mov w4, 6 and w19, w19, 65535 -.L676: +.L710: cmp w1, w3 - beq .L675 + beq .L709 cmp w19, w0 - bne .L677 + bne .L711 add x23, x22, :lo12:.LANCHOR0 mov w1, w19 add x0, x23, 2408 bl List_remove_node ldrh w0, [x23, 2416] - cbnz w0, .L678 + cbnz w0, .L712 adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 adrp x0, .LC1 - mov w2, 1688 + mov w2, 1737 add x1, x1, 352 add x0, x0, :lo12:.LC1 bl sftl_printk -.L678: +.L712: add x22, x22, :lo12:.LANCHOR0 ldrh w0, [x22, 2416] sub w0, w0, #1 @@ -4707,7 +4847,7 @@ FtlReUsePrevPpa: ldrh w0, [x1, x20] add w0, w0, 1 strh w0, [x1, x20] -.L675: +.L709: add x1, x29, 76 mov w2, 1 mov w0, w21 @@ -4717,27 +4857,27 @@ FtlReUsePrevPpa: ldr x23, [sp, 48] ldp x29, x30, [sp], 80 ret -.L677: +.L711: umull x19, w19, w4 ldrh w19, [x2, x19] cmp w19, w5 - beq .L675 + beq .L709 add w1, w1, 1 and w1, w1, 65535 - b .L676 -.L674: + b .L710 +.L708: add w1, w1, 1 strh w1, [x3, x20] - b .L675 + b .L709 .size FtlReUsePrevPpa, .-FtlReUsePrevPpa .align 2 .global ftl_scan_all_data .type ftl_scan_all_data, %function ftl_scan_all_data: sub sp, sp, #96 - adrp x0, .LC92 + adrp x0, .LC94 mov w1, 0 - add x0, x0, :lo12:.LC92 + add x0, x0, :lo12:.LC94 stp x29, x30, [sp, 16] add x29, sp, 16 stp x21, x22, [sp, 48] @@ -4746,40 +4886,40 @@ ftl_scan_all_data: stp x19, x20, [sp, 32] str x23, [sp, 64] mov w20, 0 - add x19, x21, 3400 + add x19, x21, 3408 bl sftl_printk -.L685: +.L719: add x0, x22, :lo12:.LANCHOR0 ldr w0, [x0, 2584] cmp w20, w0 - bcc .L691 + bcc .L725 ldp x19, x20, [sp, 32] ldp x21, x22, [sp, 48] ldp x29, x30, [sp, 16] ldr x23, [sp, 64] add sp, sp, 96 ret -.L691: +.L725: mov w2, 0 add x1, x29, 76 mov w0, w20 bl log2phys tst x20, 2047 - bne .L686 + bne .L720 ldr w2, [x29, 76] - adrp x0, .LC93 + adrp x0, .LC95 mov w1, w20 - add x0, x0, :lo12:.LC93 + add x0, x0, :lo12:.LC95 bl sftl_printk -.L686: +.L720: ldr w0, [x29, 76] cmn w0, #1 - beq .L688 - ldr x23, [x21, 3440] + beq .L722 + ldr x23, [x21, 3448] mov w2, 0 stp wzr, w0, [x19] mov w1, 1 - ldr x0, [x21, 3432] + ldr x0, [x21, 3440] str x0, [x19, 8] mov x0, x19 str x23, [x19, 16] @@ -4788,25 +4928,25 @@ ftl_scan_all_data: ldr w0, [x19] cmp w0, 256 ccmn w0, #1, 4, ne - beq .L689 + beq .L723 ldr w0, [x23, 8] cmp w20, w0 - beq .L688 -.L689: + beq .L722 +.L723: ldp x1, x0, [x19, 8] ldr w2, [x1, 4] str w2, [sp] ldp w3, w4, [x0] ldp w5, w6, [x0, 8] - adrp x0, .LC94 + adrp x0, .LC96 ldr w7, [x1] - add x0, x0, :lo12:.LC94 + add x0, x0, :lo12:.LC96 ldr w2, [x19, 4] mov w1, w20 bl sftl_printk -.L688: +.L722: add w20, w20, 1 - b .L685 + b .L719 .size ftl_scan_all_data, .-ftl_scan_all_data .align 2 .global FtlReadRefresh @@ -4816,22 +4956,22 @@ FtlReadRefresh: add x1, x0, :lo12:.LANCHOR0 add x2, x1, 2720 ldr w3, [x2, 80] - cbz w3, .L694 + cbz w3, .L728 ldr w0, [x1, 2584] ldr w3, [x2, 84] cmp w3, w0 - bcs .L695 + bcs .L729 stp x29, x30, [sp, -160]! add x29, sp, 0 stp x19, x20, [sp, 16] mov x19, x1 mov w20, 2048 str x21, [sp, 32] -.L700: +.L734: ldr w1, [x19, 2584] ldr w0, [x19, 2804] cmp w0, w1 - bcs .L697 + bcs .L731 add x1, x29, 60 mov w2, 0 bl log2phys @@ -4840,7 +4980,7 @@ FtlReadRefresh: add w0, w0, 1 str w0, [x19, 2804] cmn w1, #1 - beq .L698 + beq .L732 str w0, [x29, 88] adrp x0, ftl_temp_buf add x0, x0, :lo12:ftl_temp_buf @@ -4855,57 +4995,57 @@ FtlReadRefresh: bl FlashReadPages ldr w0, [x29, 64] cmp w0, 256 - bne .L697 + bne .L731 ldr w0, [x29, 60] lsr w0, w0, 10 bl P2V_block_in_plane bl FtlGcRefreshBlock -.L697: +.L731: ldp x19, x20, [sp, 16] mov w0, -1 ldr x21, [sp, 32] ldp x29, x30, [sp], 160 ret -.L698: +.L732: subs w20, w20, #1 - bne .L700 - b .L697 -.L695: + bne .L734 + b .L731 +.L729: ldr w0, [x1, 2588] stp w0, wzr, [x2, 76] str wzr, [x2, 84] -.L704: +.L738: mov w0, 0 ret -.L694: +.L728: ldr w3, [x1, 2588] ldr w5, [x2, 76] add w2, w3, 1048576 cmp w5, w2 - bhi .L703 + bhi .L737 ldr w2, [x1, 2644] lsr w4, w2, 10 mov w2, 33554432 asr w2, w2, w4 add w2, w2, w5 cmp w3, w2 - bhi .L703 + bhi .L737 ldrb w1, [x1, 2340] - cbnz w1, .L704 -.L703: + cbnz w1, .L738 +.L737: add x0, x0, :lo12:.LANCHOR0 mov w1, 1 str w3, [x0, 2796] str w1, [x0, 2800] str wzr, [x0, 2804] - b .L704 + b .L738 .size FtlReadRefresh, .-FtlReadRefresh .align 2 .global FtlMapBlkWriteDump_data .type FtlMapBlkWriteDump_data, %function FtlMapBlkWriteDump_data: ldr w1, [x0, 56] - cbz w1, .L718 + cbz w1, .L752 stp x29, x30, [sp, -48]! adrp x1, .LANCHOR0 add x2, x1, :lo12:.LANCHOR0 @@ -4913,12 +5053,12 @@ FtlMapBlkWriteDump_data: stp x19, x20, [sp, 16] mov x19, x0 str x21, [sp, 32] - add x0, x2, 3400 + add x0, x2, 3408 mov x21, x1 ldrh w20, [x19, 6] - ldr x4, [x2, 3440] + ldr x4, [x2, 3448] sub w20, w20, #1 - ldr x3, [x2, 4040] + ldr x3, [x2, 4048] and w20, w20, 65535 ldr x5, [x19, 40] stp x3, x4, [x0, 8] @@ -4926,27 +5066,27 @@ FtlMapBlkWriteDump_data: str wzr, [x19, 56] ldr w4, [x5, x4] str w4, [x0, 4] - cbz w4, .L712 + cbz w4, .L746 mov w2, 1 mov w1, w2 bl FlashReadPages -.L713: +.L747: add x1, x21, :lo12:.LANCHOR0 mov x0, x19 - ldr x2, [x1, 3408] + ldr x2, [x1, 3416] mov w1, w20 bl FtlMapWritePage ldr x21, [sp, 32] ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 48 ret -.L712: +.L746: ldrh w2, [x2, 114] mov w1, 255 mov x0, x3 bl ftl_memset - b .L713 -.L718: + b .L747 +.L752: ret .size FtlMapBlkWriteDump_data, .-FtlMapBlkWriteDump_data .align 2 @@ -4966,20 +5106,20 @@ FtlScanSysBlk: add x19, x22, :lo12:.LANCHOR0 stp x27, x28, [sp, 80] adrp x25, .LANCHOR1 - strh wzr, [x21, -128] + strh wzr, [x21, -120] add x25, x25, :lo12:.LANCHOR1 - ldr x0, [x21, -216] + ldr x0, [x21, -208] add x25, x25, 368 ldr w2, [x19, 132] strh wzr, [x19, 148] lsl w2, w2, 2 bl ftl_memset - ldr x0, [x19, 4088] + ldr x0, [x21, -256] mov w1, 0 ldr w2, [x19, 132] lsl w2, w2, 1 bl ftl_memset - ldr x0, [x21, -240] + ldr x0, [x21, -232] mov w1, 0 ldrh w2, [x19, 124] lsl w2, w2, 2 @@ -4994,30 +5134,30 @@ FtlScanSysBlk: add x0, x19, 2656 bl ftl_memset ldrh w24, [x19, 44] -.L722: +.L756: ldrh w0, [x19, 46] cmp w0, w24 - bls .L762 + bls .L796 ldrh w9, [x19, 36] mov x5, 0 ldrh w8, [x19, 116] mov w21, 0 add x7, x19, 64 mov w6, 4 - b .L763 -.L724: + b .L797 +.L758: ldrb w0, [x7, x5] mov w1, w24 bl V2P_block and w4, w0, 65535 bl FtlBbmIsBadBlock - cbnz w0, .L723 - ldr x0, [x19, 4016] + cbnz w0, .L757 + ldr x0, [x19, 4024] ubfiz x2, x21, 5, 16 lsl w4, w4, 10 add x0, x0, x2 str w4, [x0, 4] - ldr x1, [x19, 4016] + ldr x1, [x19, 4024] ldr x0, [x19, 3264] add x1, x1, x2 ldr x2, [x19, 3272] @@ -5028,37 +5168,37 @@ FtlScanSysBlk: sdiv w0, w0, w6 add x0, x2, x0, sxtw 2 str x0, [x1, 16] -.L723: +.L757: add x5, x5, 1 -.L763: +.L797: cmp w9, w5, uxth - bhi .L724 - cbnz w21, .L725 -.L761: + bhi .L758 + cbnz w21, .L759 +.L795: add w24, w24, 1 and w24, w24, 65535 - b .L722 -.L725: - ldr x0, [x19, 4016] + b .L756 +.L759: + ldr x0, [x19, 4024] mov w1, w21 mov w2, 1 ubfiz x21, x21, 5, 16 mov x23, 0 add x28, x19, 2656 bl FlashReadPages -.L760: - ldr x0, [x19, 4016] +.L794: + ldr x0, [x19, 4024] add x1, x0, x23 ldr w0, [x0, x23] ldr w26, [x1, 4] cmn w0, #1 ldr x27, [x1, 16] ubfx x26, x26, 10, 16 - bne .L728 + bne .L762 mov w3, 16 mov w4, 65535 -.L730: - ldr x0, [x19, 4016] +.L764: + ldr x0, [x19, 4024] mov w2, 1 stp w4, w3, [x29, 104] add x0, x0, x23 @@ -5066,220 +5206,220 @@ FtlScanSysBlk: add w1, w1, 1 str w1, [x0, 4] mov w1, w2 - ldr x0, [x19, 4016] + ldr x0, [x19, 4024] add x0, x0, x23 bl FlashReadPages ldp w4, w3, [x29, 104] ldrh w0, [x27] cmp w0, w4 - ldr x0, [x19, 4016] - bne .L727 + ldr x0, [x19, 4024] + bne .L761 mov w1, -1 str w1, [x0, x23] - ldr x0, [x19, 4016] + ldr x0, [x19, 4024] ldr w0, [x0, x23] cmp w0, w1 - bne .L728 -.L729: + bne .L762 +.L763: mov w1, 0 mov w0, w26 bl FtlFreeSysBlkQueueIn - b .L733 -.L727: + b .L767 +.L761: ldr w0, [x0, x23] cmn w0, #1 - bne .L728 + bne .L762 sub w3, w3, #1 ands w3, w3, 65535 - bne .L730 - b .L729 -.L728: + bne .L764 + b .L763 +.L762: ldr w1, [x19, 2620] ldr w0, [x27, 4] cmn w1, #1 - beq .L731 + beq .L765 cmp w1, w0 - bhi .L732 -.L731: + bhi .L766 +.L765: cmn w0, #1 - beq .L732 + beq .L766 add w1, w0, 1 str w1, [x19, 2620] -.L732: +.L766: ldrh w1, [x27] mov w2, 61604 cmp w1, w2 - beq .L734 - bhi .L735 + beq .L768 + bhi .L769 mov w0, 61574 cmp w1, w0 - beq .L736 -.L733: + beq .L770 +.L767: add x23, x23, 32 cmp x21, x23 - bne .L760 - b .L761 -.L735: + bne .L794 + b .L795 +.L769: mov w0, 61634 cmp w1, w0 - beq .L737 + beq .L771 mov w0, 65535 cmp w1, w0 - beq .L729 - b .L733 -.L737: + beq .L763 + b .L767 +.L771: add x0, x20, :lo12:.LANCHOR3 - ldrh w1, [x0, -128] + ldrh w1, [x0, -120] ldr w0, [x19, 132] cmp w1, w0 - bls .L739 + bls .L773 adrp x0, .LC1 - mov w2, 1211 + mov w2, 1256 mov x1, x25 add x0, x0, :lo12:.LC1 bl sftl_printk -.L739: +.L773: add x4, x20, :lo12:.LANCHOR3 ldr w3, [x19, 132] and w2, w3, 65535 - ldrh w1, [x4, -128] + ldrh w1, [x4, -120] sub w0, w2, #1 - ldr x4, [x4, -216] + ldr x4, [x4, -208] sxth x0, w0 sub w2, w2, w1 sub w2, w2, #1 sxth w2, w2 -.L740: +.L774: cmp w0, w2 - bgt .L746 - tbz w0, #31, .L780 - b .L733 -.L746: + bgt .L780 + tbz w0, #31, .L814 + b .L767 +.L780: sxtw x5, w0 ldr w8, [x27, 4] lsl x6, x5, 2 ldr w7, [x4, x6] cmp w8, w7 - bls .L741 + bls .L775 ldr w2, [x4] - cbnz w2, .L742 + cbnz w2, .L776 cmp w3, w1 - beq .L742 + beq .L776 add x2, x20, :lo12:.LANCHOR3 add w1, w1, 1 - strh w1, [x2, -128] -.L742: - add x7, x20, :lo12:.LANCHOR3 + strh w1, [x2, -120] +.L776: + add x3, x20, :lo12:.LANCHOR3 mov w1, 0 -.L743: +.L777: cmp w1, w0 - bne .L744 + bne .L778 add x1, x20, :lo12:.LANCHOR3 ldr w3, [x27, 4] - ldr x2, [x1, -216] + ldr x2, [x1, -208] str w3, [x2, x6] - ldr x2, [x19, 4088] + ldr x2, [x1, -256] strh w26, [x2, x5, lsl 1] - tbnz w0, #31, .L733 - ldrh w1, [x1, -128] + tbnz w0, #31, .L767 + ldrh w1, [x1, -120] ldr w2, [x19, 132] sub w2, w2, w1 sub w2, w2, #1 cmp w0, w2, sxth - bgt .L733 -.L780: + bgt .L767 +.L814: add x2, x20, :lo12:.LANCHOR3 add w1, w1, 1 ldr w3, [x27, 4] - strh w1, [x2, -128] - ldr x1, [x2, -216] + strh w1, [x2, -120] + ldr x1, [x2, -208] str w3, [x1, x0, lsl 2] - ldr x1, [x19, 4088] -.L798: + ldr x1, [x2, -256] +.L832: strh w26, [x1, x0, lsl 1] - b .L733 -.L744: - ldr x4, [x7, -216] + b .L767 +.L778: + ldr x7, [x3, -208] sxtw x2, w1 - lsl x3, x2, 2 + lsl x4, x2, 2 lsl x2, x2, 1 - add x8, x4, x3 + add x8, x7, x4 add w1, w1, 1 sxth w1, w1 ldr w8, [x8, 4] - str w8, [x4, x3] - ldr x3, [x19, 4088] - add x4, x3, x2 - ldrh w4, [x4, 2] - strh w4, [x3, x2] - b .L743 -.L741: + str w8, [x7, x4] + ldr x4, [x3, -256] + add x7, x4, x2 + ldrh w7, [x7, 2] + strh w7, [x4, x2] + b .L777 +.L775: sub w0, w0, #1 sxth x0, w0 - b .L740 -.L736: + b .L774 +.L770: ldrh w1, [x19, 148] ldrh w0, [x19, 124] cmp w1, w0 - bls .L749 + bls .L783 adrp x0, .LC1 - mov w2, 1252 + mov w2, 1297 mov x1, x25 add x0, x0, :lo12:.LC1 bl sftl_printk -.L749: +.L783: add x4, x20, :lo12:.LANCHOR3 ldrh w3, [x19, 124] ldrh w1, [x19, 148] sub w2, w3, #1 - ldr x4, [x4, -240] + ldr x4, [x4, -232] sxth x0, w2 sub w2, w2, w1 -.L750: +.L784: cmp w0, w2 - ble .L755 + ble .L789 sxtw x5, w0 ldr w8, [x27, 4] lsl x6, x5, 2 ldr w7, [x4, x6] cmp w8, w7 - bls .L751 + bls .L785 ldr w2, [x4] - cbnz w2, .L752 + cbnz w2, .L786 cmp w3, w1 - beq .L752 + beq .L786 add w1, w1, 1 strh w1, [x19, 148] -.L752: +.L786: add x7, x20, :lo12:.LANCHOR3 mov w1, 0 -.L753: +.L787: cmp w1, w0 - bne .L754 + bne .L788 add x1, x20, :lo12:.LANCHOR3 ldr w2, [x27, 4] - ldr x1, [x1, -240] + ldr x1, [x1, -232] str w2, [x1, x6] ldr x1, [x19, 152] strh w26, [x1, x5, lsl 1] -.L755: - tbnz w0, #31, .L733 +.L789: + tbnz w0, #31, .L767 ldrh w1, [x19, 124] ldrh w2, [x19, 148] sub w1, w1, #1 sub w1, w1, w2 cmp w0, w1, sxth - bgt .L733 + bgt .L767 add x1, x20, :lo12:.LANCHOR3 add w2, w2, 1 strh w2, [x19, 148] ldr w2, [x27, 4] - ldr x1, [x1, -240] + ldr x1, [x1, -232] str w2, [x1, x0, lsl 2] ldr x1, [x19, 152] - b .L798 -.L754: - ldr x4, [x7, -240] + b .L832 +.L788: + ldr x4, [x7, -232] sxtw x2, w1 lsl x3, x2, 2 lsl x2, x2, 1 @@ -5292,63 +5432,64 @@ FtlScanSysBlk: add x4, x3, x2 ldrh w4, [x4, 2] strh w4, [x3, x2] - b .L753 -.L751: + b .L787 +.L785: sub w0, w0, #1 sxth x0, w0 - b .L750 -.L734: + b .L784 +.L768: ldrh w2, [x28] mov w1, 65535 cmp w2, w1 - bne .L757 + bne .L791 strh w26, [x28] -.L799: +.L833: str w0, [x28, 8] - b .L733 -.L757: + b .L767 +.L791: ldrh w0, [x28, 4] cmp w0, w1 - beq .L758 + beq .L792 mov w1, 1 bl FtlFreeSysBlkQueueIn -.L758: +.L792: ldr w0, [x27, 4] ldr w1, [x28, 8] cmp w1, w0 - bcs .L759 + bcs .L793 ldrh w0, [x28] strh w0, [x28, 4] strh w26, [x28] ldr w0, [x27, 4] - b .L799 -.L759: + b .L833 +.L793: strh w26, [x28, 4] - b .L733 -.L762: - ldr x1, [x19, 4088] - ldrh w0, [x1] - cbz w0, .L764 -.L767: + b .L767 +.L796: + add x0, x20, :lo12:.LANCHOR3 + ldr x1, [x0, -256] + ldrh w2, [x1] + cbz w2, .L798 +.L801: add x0, x22, :lo12:.LANCHOR0 ldr x1, [x0, 152] ldrh w2, [x1] - cbz w2, .L765 -.L766: + cbz w2, .L799 +.L800: add x20, x20, :lo12:.LANCHOR3 add x22, x22, :lo12:.LANCHOR0 - ldrh w1, [x20, -128] + ldrh w1, [x20, -120] ldr w0, [x22, 132] cmp w1, w0 - bls .L796 + bls .L830 adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 adrp x0, .LC1 - mov w2, 1377 + mov w2, 1422 add x1, x1, 368 add x0, x0, :lo12:.LC1 bl sftl_printk -.L796: +.L830: ldp x19, x20, [sp, 16] mov w0, 0 ldp x21, x22, [sp, 32] @@ -5357,25 +5498,24 @@ FtlScanSysBlk: ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 112 ret -.L764: - add x0, x20, :lo12:.LANCHOR3 - ldrh w0, [x0, -128] - cbz w0, .L767 +.L798: + ldrh w0, [x0, -120] + cbz w0, .L801 ldr w2, [x19, 132] mov w0, 0 -.L768: +.L802: cmp w0, w2 - bcs .L767 + bcs .L801 ldrh w3, [x1, w0, sxtw 1] - cbz w3, .L769 + cbz w3, .L803 mov w1, w0 - add x3, x22, :lo12:.LANCHOR0 - add x7, x20, :lo12:.LANCHOR3 -.L770: - ldr w2, [x3, 132] + add x7, x22, :lo12:.LANCHOR0 + add x3, x20, :lo12:.LANCHOR3 +.L804: + ldr w2, [x7, 132] cmp w1, w2 - bcs .L767 - ldr x5, [x3, 4088] + bcs .L801 + ldr x5, [x3, -256] sxtw x6, w1 lsl x4, x6, 1 sub w2, w1, w0 @@ -5384,33 +5524,33 @@ FtlScanSysBlk: sxth w1, w1 ldrh w8, [x5, x4] strh w8, [x5, x2, lsl 1] - ldr x5, [x7, -216] + ldr x5, [x3, -208] ldr w6, [x5, x6, lsl 2] str w6, [x5, x2, lsl 2] - ldr x2, [x3, 4088] + ldr x2, [x3, -256] strh wzr, [x2, x4] - b .L770 -.L769: + b .L804 +.L803: add w0, w0, 1 sxth w0, w0 - b .L768 -.L765: + b .L802 +.L799: ldrh w2, [x0, 148] - cbz w2, .L766 + cbz w2, .L800 ldrh w2, [x0, 124] mov w0, 0 -.L775: +.L809: mov w6, w0 cmp w0, w2 - bge .L766 + bge .L800 ldrh w3, [x1, w0, sxtw 1] - cbz w3, .L776 + cbz w3, .L810 add x2, x22, :lo12:.LANCHOR0 add x7, x20, :lo12:.LANCHOR3 -.L777: +.L811: ldrh w1, [x2, 124] cmp w0, w1 - bge .L766 + bge .L800 ldr x4, [x2, 152] sxtw x5, w0 lsl x3, x5, 1 @@ -5420,16 +5560,16 @@ FtlScanSysBlk: sxth w0, w0 ldrh w8, [x4, x3] strh w8, [x4, x1, lsl 1] - ldr x4, [x7, -240] + ldr x4, [x7, -232] ldr w5, [x4, x5, lsl 2] str w5, [x4, x1, lsl 2] ldr x1, [x2, 152] strh wzr, [x1, x3] - b .L777 -.L776: + b .L811 +.L810: add w0, w0, 1 sxth w0, w0 - b .L775 + b .L809 .size FtlScanSysBlk, .-FtlScanSysBlk .align 2 .global FtlMapTblRecovery @@ -5457,10 +5597,10 @@ FtlMapTblRecovery: bl ftl_memset stp wzr, wzr, [x19, 48] add x3, x21, :lo12:.LANCHOR0 - add x20, x3, 3400 + add x20, x3, 3408 mov x25, x3 - ldr x0, [x3, 3432] - ldr x22, [x3, 3440] + ldr x0, [x3, 3440] + ldr x22, [x3, 3448] stp x0, x22, [x20, 8] mov w0, -1 strh w0, [x19] @@ -5470,19 +5610,19 @@ FtlMapTblRecovery: ldr w0, [x29, 116] sub w0, w0, #1 str w0, [x29, 112] -.L801: +.L835: ldr w0, [x29, 116] cmp w27, w0 - bge .L818 + bge .L853 ldr w0, [x29, 112] sxtw x28, w27 cmp w27, w0 - bne .L802 + bne .L836 lsl x0, x28, 1 mov w1, 1 add x20, x23, x0 add x25, x21, :lo12:.LANCHOR0 - add x25, x25, 3400 + add x25, x25, 3408 ldrh w0, [x23, x0] mov w23, 0 bl FtlGetLastWrittenPage @@ -5493,20 +5633,20 @@ FtlMapTblRecovery: ldr w0, [x26, x28, lsl 2] add w26, w1, 1 str w0, [x19, 48] -.L803: +.L837: cmp w23, w26 - blt .L805 -.L818: + blt .L840 +.L853: add x21, x21, :lo12:.LANCHOR0 mov x0, x19 bl ftl_free_no_use_map_blk ldrh w1, [x19, 2] ldrh w0, [x21, 108] cmp w1, w0 - bne .L807 + bne .L842 mov x0, x19 bl ftl_map_blk_alloc_new_blk -.L807: +.L842: mov x0, x19 bl ftl_map_blk_gc mov x0, x19 @@ -5519,7 +5659,7 @@ FtlMapTblRecovery: ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 128 ret -.L805: +.L840: ldrh w0, [x20] mov w2, 1 mov w1, w2 @@ -5529,24 +5669,28 @@ FtlMapTblRecovery: bl FlashReadPages ldr w0, [x25] cmn w0, #1 - beq .L804 + beq .L838 ldrh w0, [x22, 8] cmp w24, w0 - bls .L804 + bls .L839 ldrh w2, [x22] ldrh w1, [x19, 4] cmp w2, w1 - bne .L804 + bne .L839 ldr x2, [x29, 120] ubfiz x0, x0, 2, 16 ldr w1, [x25, 4] str w1, [x2, x0] -.L804: +.L839: add w23, w23, 1 sxth w23, w23 - b .L803 -.L802: - ldr x0, [x25, 3432] + b .L837 +.L838: + ldrh w0, [x20] + strh w0, [x19, 60] + b .L839 +.L836: + ldr x0, [x25, 3440] mov w2, 1 str x0, [x20, 8] lsl x0, x28, 1 @@ -5561,21 +5705,21 @@ FtlMapTblRecovery: bl FlashReadPages ldr w0, [x20] cmn w0, #1 - beq .L820 + beq .L855 ldrh w1, [x22] ldrh w0, [x19, 4] cmp w1, w0 - bne .L820 + bne .L855 ldrh w1, [x22, 8] mov w0, 64245 cmp w1, w0 - beq .L809 -.L820: + beq .L844 +.L855: mov w5, 0 -.L810: +.L845: ldrh w0, [x25, 108] cmp w5, w0 - bge .L816 + bge .L851 ldrh w0, [x28] mov w2, 1 str w5, [x29, 108] @@ -5587,48 +5731,48 @@ FtlMapTblRecovery: ldr w0, [x20] ldr w5, [x29, 108] cmn w0, #1 - beq .L814 + beq .L849 ldrh w0, [x22, 8] cmp w24, w0 - bls .L814 + bls .L849 ldrh w2, [x22] ldrh w1, [x19, 4] cmp w2, w1 - bne .L814 + bne .L849 ldr x2, [x29, 120] ubfiz x0, x0, 2, 16 ldr w1, [x20, 4] str w1, [x2, x0] -.L814: +.L849: add w5, w5, 1 sxth w5, w5 - b .L810 -.L809: + b .L845 +.L844: mov w0, 0 -.L811: +.L846: ldrh w1, [x25, 108] sub w1, w1, #1 cmp w0, w1 - blt .L813 -.L816: + blt .L848 +.L851: add w4, w27, 1 sxth w27, w4 - b .L801 -.L813: - ldr x2, [x25, 3432] + b .L835 +.L848: + ldr x2, [x25, 3440] sbfiz x5, x0, 3, 32 ldrh w1, [x2, x5] cmp w24, w1 - bls .L812 + bls .L847 add x2, x2, x5 ldr x3, [x29, 120] ubfiz x1, x1, 2, 16 ldr w2, [x2, 4] str w2, [x3, x1] -.L812: +.L847: add w0, w0, 1 sxth w0, w0 - b .L811 + b .L846 .size FtlMapTblRecovery, .-FtlMapTblRecovery .align 2 .global FtlLoadVonderInfo @@ -5641,7 +5785,7 @@ FtlLoadVonderInfo: add x0, x0, :lo12:.LANCHOR3 add x29, sp, 0 ldrh w2, [x1, 124] - sub x0, x0, #120 + sub x0, x0, #112 strh w2, [x0, 10] mov w2, -3962 strh w2, [x0, 4] @@ -5655,8 +5799,10 @@ FtlLoadVonderInfo: ldr x1, [x0, -128] str x1, [x0, 32] ldr x1, [x0, -112] - strh w2, [x0, 6] str x1, [x0, 40] + mov w1, -1 + strh w2, [x0, 6] + strh w1, [x0, 60] bl FtlMapTblRecovery mov w0, 0 ldp x29, x30, [sp], 16 @@ -5675,7 +5821,7 @@ FtlL2PDataInit: add x21, x19, :lo12:.LANCHOR3 add x20, x1, :lo12:.LANCHOR0 mov w1, 0 - ldr x0, [x21, -256] + ldr x0, [x21, -248] ldr w2, [x20, 132] lsl w2, w2, 1 bl ftl_memset @@ -5683,40 +5829,41 @@ FtlL2PDataInit: mov w1, 255 ldrh w2, [x20, 114] mul w2, w2, w0 - ldr x0, [x21, -208] + ldr x0, [x21, -200] bl ftl_memset mov x1, x20 mov w0, 0 mov w5, -1 -.L831: +.L863: ldrh w2, [x1, 142] cmp w2, w0 - bhi .L832 + bhi .L864 add x0, x19, :lo12:.LANCHOR3 + ldr w3, [x1, 132] + ldrh w1, [x1, 140] mov w2, -1 - strh w2, [x0, -190] - strh w2, [x0, -192] - ldr w2, [x1, 132] - strh w2, [x0, -182] - mov w2, -3902 - strh w2, [x0, -188] - ldrh w2, [x0, -128] - strh w2, [x0, -184] - ldrh w2, [x1, 140] - ldr x1, [x1, 4088] - str x1, [x0, -176] - ldr x1, [x0, -216] - str x1, [x0, -168] + strh w1, [x0, -178] ldr x1, [x0, -256] + str x1, [x0, -168] + ldr x1, [x0, -208] + strh w3, [x0, -174] + mov w3, -3902 str x1, [x0, -160] - ldr x1, [x0, -224] - strh w2, [x0, -186] + ldr x1, [x0, -248] + strh w3, [x0, -180] str x1, [x0, -152] + ldrh w3, [x0, -120] + ldr x1, [x0, -216] + strh w2, [x0, -182] + strh w2, [x0, -184] + strh w2, [x0, -124] + strh w3, [x0, -176] + str x1, [x0, -144] ldp x19, x20, [sp, 16] ldr x21, [sp, 32] ldp x29, x30, [sp], 48 ret -.L832: +.L864: ldr x3, [x1, 2568] ubfiz x2, x0, 4, 16 add x3, x3, x2 @@ -5724,7 +5871,7 @@ FtlL2PDataInit: ldr x3, [x1, 2568] strh w5, [x3, x2] ldr x3, [x1, 2568] - ldr x4, [x21, -208] + ldr x4, [x21, -200] add x3, x3, x2 ldrh w2, [x1, 114] mul w2, w2, w0 @@ -5734,7 +5881,7 @@ FtlL2PDataInit: and x2, x2, -4 add x2, x4, x2 str x2, [x3, 8] - b .L831 + b .L863 .size FtlL2PDataInit, .-FtlL2PDataInit .align 2 .global FtlLoadMapInfo @@ -5745,7 +5892,7 @@ FtlLoadMapInfo: bl FtlL2PDataInit adrp x0, .LANCHOR3 add x0, x0, :lo12:.LANCHOR3 - sub x0, x0, #192 + sub x0, x0, #184 bl FtlMapTblRecovery mov w0, 0 ldp x29, x30, [sp], 16 @@ -5764,9 +5911,8 @@ FtlVariablesInit: adrp x19, .LANCHOR0 add x19, x19, :lo12:.LANCHOR0 strh w1, [x0, -48] - str xzr, [x0, -56] - mov w1, -1 stp wzr, wzr, [x0, -44] + mov w1, -1 str w1, [x0, -36] mov w1, 0 ldr x0, [x19, 152] @@ -5779,7 +5925,7 @@ FtlVariablesInit: ldrh w2, [x19, 46] lsl w2, w2, 1 bl ftl_memset - ldr x0, [x19, 4064] + ldr x0, [x19, 4072] mov w1, 0 ldrh w2, [x19, 46] lsl w2, w2, 1 @@ -5825,80 +5971,83 @@ SupperBlkListInit: str xzr, [x19, 2368] str xzr, [x19, 2392] str xzr, [x19, 2408] -.L839: +.L871: ldrh w0, [x19, 44] cmp w20, w0 - bcs .L845 + bcs .L878 ldrh w8, [x19, 36] mov x6, 0 ldrh w7, [x19, 106] mov w5, 0 - b .L846 -.L841: + b .L879 +.L873: ldrb w0, [x23, x6] mov w1, w20 bl V2P_block bl FtlBbmIsBadBlock - cbnz w0, .L840 + cbnz w0, .L872 add w5, w5, w7 and w5, w5, 65535 -.L840: +.L872: add x6, x6, 1 -.L846: +.L879: cmp w8, w6, uxth - bhi .L841 - cbz w5, .L848 + bhi .L873 + cbz w5, .L874 mov w0, 32768 sdiv w5, w0, w5 -.L842: +.L875: ldr x1, [x19, 2360] mov w0, 6 umaddl x0, w20, w0, x1 strh w5, [x0, 4] ldrh w0, [x19, 2424] cmp w0, w20 - beq .L843 + beq .L876 ldrh w0, [x19, 2472] cmp w0, w20 - beq .L843 + beq .L876 ldrh w0, [x19, 2520] cmp w0, w20 - beq .L843 + beq .L876 ldr x1, [x19, 2376] ubfiz x0, x20, 1, 16 ldrh w0, [x1, x0] - cbnz w0, .L844 + cbnz w0, .L877 add w22, w22, 1 mov w0, w20 and w22, w22, 65535 bl INSERT_FREE_LIST -.L843: +.L876: add w20, w20, 1 and w20, w20, 65535 - b .L839 -.L848: - mov w5, 0 - b .L842 -.L844: + b .L871 +.L874: + ldr x1, [x19, 2376] + ubfiz x0, x20, 1, 16 + mov w2, -1 + strh w2, [x1, x0] + b .L875 +.L877: add w21, w21, 1 mov w0, w20 and w21, w21, 65535 bl INSERT_DATA_LIST - b .L843 -.L845: + b .L876 +.L878: strh w21, [x19, 2400] add w21, w21, w22 strh w22, [x19, 2416] cmp w21, w0 - ble .L847 + ble .L880 adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 adrp x0, .LC1 - mov w2, 2154 + mov w2, 2206 add x1, x1, 384 add x0, x0, :lo12:.LC1 bl sftl_printk -.L847: +.L880: mov w0, 0 ldr x23, [sp, 48] ldp x19, x20, [sp, 16] @@ -5911,8 +6060,8 @@ SupperBlkListInit: .type ftl_check_vpc, %function ftl_check_vpc: stp x29, x30, [sp, -128]! - adrp x0, .LC95 - add x0, x0, :lo12:.LC95 + adrp x0, .LC97 + add x0, x0, :lo12:.LC97 add x29, sp, 0 stp x19, x20, [sp, 16] adrp x20, .LANCHOR0 @@ -5932,49 +6081,49 @@ ftl_check_vpc: mov w1, 0 mov x0, x19 bl ftl_memset -.L851: +.L883: ldr w0, [x24, 2584] cmp w23, w0 - bcc .L853 - adrp x25, .LC96 + bcc .L885 + adrp x25, .LC98 add x23, x20, :lo12:.LANCHOR0 add x26, x22, :lo12:check_vpc_table - add x25, x25, :lo12:.LC96 + add x25, x25, :lo12:.LC98 mov w24, 0 mov w19, 0 mov w4, 65535 -.L854: +.L886: ldrh w0, [x23, 44] cmp w0, w19 - bhi .L856 + bhi .L888 ldr x19, [x23, 2408] - cbz x19, .L857 + cbz x19, .L889 ldr x0, [x23, 2360] - adrp x25, .LC97 + adrp x25, .LC99 add x20, x20, :lo12:.LANCHOR0 add x22, x22, :lo12:check_vpc_table sub x19, x19, x0 mov x0, -6148914691236517206 asr x19, x19, 1 movk x0, 0xaaab, lsl 0 - add x25, x25, :lo12:.LC97 + add x25, x25, :lo12:.LC99 ldrh w26, [x23, 2416] mov w27, 6 mov w23, 0 mul x19, x19, x0 and w19, w19, 65535 -.L858: +.L890: cmp w23, w26 - bne .L860 -.L857: - cbz w24, .L850 + bne .L892 +.L889: + cbz w24, .L882 add x1, x21, :lo12:.LANCHOR1 adrp x0, .LC1 - mov w2, 2321 + mov w2, 2373 add x1, x1, 408 add x0, x0, :lo12:.LC1 bl sftl_printk -.L850: +.L882: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] @@ -5982,31 +6131,31 @@ ftl_check_vpc: ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 128 ret -.L853: +.L885: mov w2, 0 add x1, x29, 124 mov w0, w23 bl log2phys ldr w0, [x29, 124] cmn w0, #1 - beq .L852 + beq .L884 lsr w0, w0, 10 bl P2V_block_in_plane and x0, x0, 65535 ldrh w1, [x19, x0, lsl 1] add w1, w1, 1 strh w1, [x19, x0, lsl 1] -.L852: +.L884: add w23, w23, 1 - b .L851 -.L856: + b .L883 +.L888: ldr x0, [x23, 2376] ubfiz x28, x19, 1, 16 sxtw x27, w19 ldrh w2, [x0, x28] ldrh w3, [x26, x27, lsl 1] cmp w2, w3 - beq .L855 + beq .L887 mov x0, x25 str w4, [x29, 108] mov w1, w19 @@ -6015,34 +6164,34 @@ ftl_check_vpc: ldr w4, [x29, 108] ldrh w0, [x0, x28] cmp w0, w4 - beq .L855 + beq .L887 ldrh w1, [x26, x27, lsl 1] cmp w1, w0 csinc w24, w24, wzr, ls -.L855: +.L887: add w19, w19, 1 and w19, w19, 65535 - b .L854 -.L860: + b .L886 +.L892: ldr x1, [x20, 2376] ubfiz x0, x19, 1, 16 ldrh w2, [x1, x0] - cbz w2, .L859 + cbz w2, .L891 ldrh w3, [x22, w19, sxtw 1] mov w24, 1 mov w1, w19 mov x0, x25 bl sftl_printk -.L859: +.L891: ldr x0, [x20, 2360] umull x19, w19, w27 ldrh w19, [x0, x19] mov w0, 65535 cmp w19, w0 - beq .L857 + beq .L889 add w23, w23, 1 and w23, w23, 65535 - b .L858 + b .L890 .size ftl_check_vpc, .-ftl_check_vpc .align 2 .global FtlGcPageVarInit @@ -6088,29 +6237,29 @@ FtlGcScanTempBlk: ldrh w19, [x0, 4] mov w0, 65535 cmp w19, w0 - beq .L894 - cbnz w19, .L878 -.L879: + beq .L926 + cbnz w19, .L910 +.L911: bl FtlGcPageVarInit - b .L880 -.L894: + b .L912 +.L926: mov w19, 0 -.L878: +.L910: adrp x0, .LANCHOR0+106 ldrh w0, [x0, #:lo12:.LANCHOR0+106] cmp w0, w25 - beq .L879 -.L880: + beq .L911 +.L912: adrp x26, .LANCHOR0 add x22, x26, :lo12:.LANCHOR0 mov w24, 0 -.L888: +.L920: ldrh w1, [x21] mov w0, 65535 strb wzr, [x21, 8] cmp w1, w0 - beq .L895 -.L891: + beq .L927 +.L923: add x0, x26, :lo12:.LANCHOR0 add x2, x21, 16 mov w20, 0 @@ -6121,42 +6270,42 @@ FtlGcScanTempBlk: ldrh w0, [x0, 36] add x0, x0, 8 add x0, x21, x0, lsl 1 -.L882: +.L914: cmp x0, x2 - bne .L884 - ldr x0, [x22, 4016] + bne .L916 + ldr x0, [x22, 4024] mov w1, w20 mov w2, 0 ubfiz x20, x20, 5, 16 bl FlashReadPages mov x10, 0 mov w11, 65535 -.L885: +.L917: cmp x10, x20 - bne .L889 + bne .L921 add w19, w19, 1 add w24, w24, 1 and w19, w19, 65535 cmp w25, w24 - bls .L890 -.L892: + bls .L922 +.L924: ldrh w0, [x22, 106] cmp w0, w19 - bhi .L891 -.L895: + bhi .L923 +.L927: mov w2, 0 - b .L881 -.L884: + b .L913 +.L916: ldrh w1, [x2] cmp w1, w9 - beq .L883 - ldr x4, [x22, 4016] + beq .L915 + ldr x4, [x22, 4024] ubfiz x6, x20, 5, 16 orr w1, w19, w1, lsl 10 add x4, x4, x6 str w1, [x4, 4] mul w1, w20, w7 - ldr x3, [x22, 4016] + ldr x3, [x22, 4024] ldr x4, [x22, 3264] sdiv w1, w1, w5 add x3, x3, x6 @@ -6169,27 +6318,27 @@ FtlGcScanTempBlk: sdiv w1, w1, w5 add x1, x4, x1, sxtw 2 str x1, [x3, 16] -.L883: +.L915: add x2, x2, 2 - b .L882 -.L889: - ldr x6, [x22, 4016] + b .L914 +.L921: + ldr x6, [x22, 4024] add x5, x6, x10 ldr w4, [x5, 4] lsr w0, w4, 10 bl P2V_plane and w2, w0, 65535 ldr w0, [x6, x10] - cbnz w0, .L886 + cbnz w0, .L918 ldr x0, [x5, 16] add x10, x10, 32 ldrh w1, [x0] cmp w1, w11 - bne .L887 + bne .L919 adrp x0, .LANCHOR3-40 mov w1, 1 str w1, [x0, #:lo12:.LANCHOR3-40] -.L881: +.L913: add x23, x23, :lo12:.LANCHOR2 strh w19, [x21, 2] strb w2, [x21, 6] @@ -6198,13 +6347,13 @@ FtlGcScanTempBlk: strh w0, [x23, 4] mov x0, x21 bl ftl_sb_update_avl_pages - b .L893 -.L887: + b .L925 +.L919: ldp w2, w0, [x0, 8] mov w1, w4 bl FtlGcUpdatePage - b .L885 -.L886: + b .L917 +.L918: ldr x0, [x22, 2376] mov w19, 0 ldrh w1, [x21] @@ -6214,19 +6363,19 @@ FtlGcScanTempBlk: mov w0, -1 strh w0, [x21] bl FtlGcPageVarInit - b .L888 -.L890: + b .L920 +.L922: add x1, x23, :lo12:.LANCHOR2 mov w2, 65535 ldrh w0, [x1, 4] cmp w0, w2 - beq .L892 + beq .L924 add w0, w0, w24 strh w0, [x1, 4] ldrh w0, [x22, 106] cmp w0, w19 - bls .L892 -.L893: + bls .L924 +.L925: mov w0, -1 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] @@ -6244,7 +6393,7 @@ FlashTestBlk: stp x19, x20, [sp, 16] and w19, w0, 65535 cmp w19, 11 - bls .L903 + bls .L935 add x0, x29, 64 mov w2, 32 mov w1, 165 @@ -6274,14 +6423,14 @@ FlashTestBlk: add x0, x29, 32 csetm w19, ne bl FlashEraseBlocks -.L901: +.L933: mov w0, w19 ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 128 ret -.L903: +.L935: mov w19, 0 - b .L901 + b .L933 .size FlashTestBlk, .-FlashTestBlk .align 2 .global FlashGetBadBlockList @@ -6299,37 +6448,37 @@ FlashGetBadBlockList: adrp x19, .LANCHOR0 add x0, x19, :lo12:.LANCHOR0 mov w1, w21 - ldr x2, [x0, 3368] + ldr x2, [x0, 3376] mov x0, x20 blr x2 and w0, w0, 65535 cmp w0, 50 - bls .L906 + bls .L938 mov w2, 256 mov w1, 255 mov x0, x20 bl ftl_memset mov w0, 0 -.L906: +.L938: add x19, x19, :lo12:.LANCHOR0 ldrh w1, [x19, 14] cmp w1, 4 - bne .L910 + bne .L942 mov x1, 0 -.L908: +.L940: cmp w0, w1, uxth - bhi .L909 -.L910: + bhi .L941 +.L942: ldp x19, x20, [sp, 16] ldr x21, [sp, 32] ldp x29, x30, [sp], 48 ret -.L909: +.L941: ldrh w2, [x20, x1, lsl 1] lsr w2, w2, 1 strh w2, [x20, x1, lsl 1] add x1, x1, 1 - b .L908 + b .L940 .size FlashGetBadBlockList, .-FlashGetBadBlockList .align 2 .global ftl_memcpy @@ -6358,29 +6507,29 @@ FtlBbmTblFlush: adrp x22, .LANCHOR3 mov w21, 0 add x22, x22, :lo12:.LANCHOR3 - ldr x2, [x19, 3440] + ldr x2, [x19, 3448] add x23, x19, 192 - ldr x0, [x19, 3432] - str x2, [x19, 3416] + ldr x0, [x19, 3440] + str x2, [x19, 3424] ldrh w2, [x19, 114] - str x0, [x19, 3408] + str x0, [x19, 3416] bl ftl_memset -.L915: +.L947: ldrh w0, [x19, 58] - add x20, x19, 3400 + add x20, x19, 3408 cmp w21, w0 - blt .L916 + blt .L948 ldr x24, [x20, 16] mov w1, 255 mov w2, 16 - adrp x22, .LC98 + adrp x22, .LC100 mov x0, x24 bl ftl_memset mov w0, -3887 add x1, x19, 160 strh w0, [x24] add x25, x25, :lo12:.LANCHOR0 - add x22, x22, :lo12:.LC98 + add x22, x22, :lo12:.LC100 mov w21, 0 ldr w0, [x19, 168] mov w23, 0 @@ -6394,10 +6543,10 @@ FtlBbmTblFlush: ldr w0, [x19, 32] mov x19, x1 strh w0, [x24, 12] -.L917: - ldr x0, [x25, 3432] - str x0, [x20, 8] +.L949: ldr x0, [x25, 3440] + str x0, [x20, 8] + ldr x0, [x25, 3448] str x0, [x20, 16] ldrh w1, [x19] ldrh w2, [x19, 2] @@ -6417,7 +6566,7 @@ FtlBbmTblFlush: ldrh w1, [x19, 2] sub w0, w0, #1 cmp w1, w0 - blt .L918 + blt .L950 ldr w0, [x19, 8] mov w2, 1 ldrh w1, [x19] @@ -6427,44 +6576,44 @@ FtlBbmTblFlush: strh w1, [x24, 8] ldrh w0, [x19, 4] strh w1, [x19, 4] - ldr x1, [x25, 3960] + ldr x1, [x25, 3968] strh w0, [x19] lsl w0, w0, 10 str w0, [x20, 4] strh wzr, [x19, 2] str w0, [x1, 4] mov w1, w2 - ldr x0, [x25, 3960] + ldr x0, [x25, 3968] bl FlashEraseBlocks mov w3, 1 mov x0, x20 mov w2, w3 mov w1, w3 bl FlashProgPages -.L918: +.L950: ldrh w0, [x19, 2] add w0, w0, 1 strh w0, [x19, 2] ldr w0, [x20] cmn w0, #1 - bne .L919 + bne .L951 ldr w1, [x20, 4] add w21, w21, 1 - adrp x0, .LC99 + adrp x0, .LC101 and w21, w21, 65535 - add x0, x0, :lo12:.LC99 + add x0, x0, :lo12:.LC101 bl sftl_printk cmp w21, 3 - bls .L917 + bls .L949 ldr w1, [x20, 4] - adrp x0, .LC100 + adrp x0, .LC102 mov w2, w21 - add x0, x0, :lo12:.LC100 + add x0, x0, :lo12:.LC102 bl sftl_printk -.L921: - b .L921 -.L916: - ldrh w2, [x22, -200] +.L953: + b .L953 +.L948: + ldrh w2, [x22, -192] ldr x1, [x23], 8 ldr x0, [x20, 8] mul w3, w21, w2 @@ -6472,12 +6621,12 @@ FtlBbmTblFlush: add w21, w21, 1 add x0, x0, x3, sxtw 2 bl ftl_memcpy - b .L915 -.L922: + b .L947 +.L954: mov w23, 1 - b .L917 -.L919: - cbz w23, .L922 + b .L949 +.L951: + cbz w23, .L954 mov w0, 0 ldr x25, [sp, 64] ldp x19, x20, [sp, 16] @@ -6502,23 +6651,23 @@ allocate_data_superblock: add x23, x22, 2520 stp x25, x26, [sp, 64] stp x27, x28, [sp, 80] -.L925: +.L957: ldrh w1, [x22, 2400] ldrh w0, [x22, 2416] add w0, w0, w1 ldrh w1, [x22, 44] cmp w0, w1 - ble .L926 + ble .L958 adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 adrp x0, .LC1 - mov w2, 2585 + mov w2, 2654 add x1, x1, 424 add x0, x0, :lo12:.LC1 bl sftl_printk -.L926: +.L958: cmp x20, x23 - bne .L951 + bne .L983 ldrh w0, [x19, 2416] ldr w1, [x19, 3244] mul w1, w0, w1 @@ -6526,23 +6675,23 @@ allocate_data_superblock: add w0, w0, 1 add w1, w0, w1, lsr 2 ands w1, w1, 65535 - beq .L927 + beq .L959 sub w1, w1, #1 and w1, w1, 65535 -.L927: +.L959: add x0, x19, 2408 bl List_pop_index_node and w24, w0, 65535 ldrh w0, [x19, 2416] - cbnz w0, .L928 + cbnz w0, .L960 adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 adrp x0, .LC1 - mov w2, 2594 + mov w2, 2663 add x1, x1, 424 add x0, x0, :lo12:.LC1 bl sftl_printk -.L928: +.L960: ldrh w0, [x19, 2416] sub w0, w0, #1 strh w0, [x19, 2416] @@ -6550,7 +6699,7 @@ allocate_data_superblock: mov x0, x20 bl make_superblock ldrb w0, [x20, 7] - cbnz w0, .L929 + cbnz w0, .L961 ldr x1, [x19, 2376] ubfiz x0, x24, 1, 16 mov w2, -1 @@ -6562,72 +6711,72 @@ allocate_data_superblock: add w0, w0, w1 ldrh w1, [x19, 44] cmp w0, w1 - ble .L925 + ble .L957 adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 - mov w2, 2605 + mov w2, 2674 add x1, x1, 424 adrp x0, .LC1 add x0, x0, :lo12:.LC1 bl sftl_printk - b .L925 -.L951: + b .L957 +.L983: mov w1, 0 - b .L927 -.L929: + b .L959 +.L961: ldrh w1, [x19, 2400] ldrh w0, [x19, 2416] add w0, w0, w1 ldrh w1, [x19, 44] cmp w0, w1 - ble .L931 + ble .L963 adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 adrp x0, .LC1 - mov w2, 2608 + mov w2, 2677 add x1, x1, 424 add x0, x0, :lo12:.LC1 bl sftl_printk -.L931: +.L963: add x27, x20, 16 ldrh w4, [x19, 36] mov x3, x27 mov x0, 0 mov w25, 0 mov w5, 65535 -.L932: +.L964: cmp w4, w0, uxth - bhi .L934 - cbnz w25, .L935 + bhi .L966 + cbnz w25, .L967 adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 adrp x0, .LC1 - mov w2, 2619 + mov w2, 2688 add x1, x1, 424 add x0, x0, :lo12:.LC1 bl sftl_printk -.L935: +.L967: ldrh w0, [x19, 2672] cmp w0, w24 - bne .L936 + bne .L968 adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 adrp x0, .LC1 - mov w2, 2621 + mov w2, 2690 add x1, x1, 424 add x0, x0, :lo12:.LC1 bl sftl_printk -.L936: +.L968: ldrb w0, [x20, 8] uxtw x26, w24 - cbnz w0, .L937 + cbnz w0, .L969 ldr x2, [x19, 2384] lsl x1, x26, 1 ldrh w0, [x2, x1] - cbz w0, .L938 + cbz w0, .L970 ldrh w3, [x19, 96] add w0, w0, w3 -.L959: +.L991: strh w0, [x2, x1] mov w1, 0 ldr w0, [x19, 2628] @@ -6635,15 +6784,15 @@ allocate_data_superblock: str w0, [x19, 2628] mov w0, w24 bl ftl_set_blk_mode -.L940: +.L972: ldr x0, [x19, 2384] lsl x26, x26, 1 ldr w1, [x19, 2644] ldrh w0, [x0, x26] cmp w0, w1 - bls .L941 + bls .L973 str w0, [x19, 2644] -.L941: +.L973: ldr w1, [x19, 2632] ubfiz x3, x25, 5, 16 ldrh w0, [x19, 96] @@ -6651,59 +6800,57 @@ allocate_data_superblock: madd w0, w0, w2, w1 ldrh w1, [x19, 44] udiv w0, w0, w1 - ldr x1, [x19, 4072] + ldr x1, [x19, 4080] str w0, [x19, 2636] ldr w0, [x1, 16] add w0, w0, 1 str w0, [x1, 16] mov x0, 0 -.L942: +.L974: cmp x3, x0 - bne .L943 + bne .L975 ldrb w1, [x20, 8] mov w2, w25 - ldr x0, [x19, 3960] + ldr x0, [x19, 3968] mov x28, 0 bl FlashEraseBlocks mov w1, 0 -.L944: +.L976: cmp w25, w28, uxth - bhi .L946 + bhi .L978 cmp w1, 0 - ble .L947 + ble .L979 mov w0, w24 bl update_multiplier_value bl FtlBbmTblFlush -.L947: +.L979: ldrb w0, [x20, 7] - cbnz w0, .L948 + cbnz w0, .L980 ldr x0, [x19, 2376] mov w1, -1 strh w1, [x0, x26] - mov w0, w24 - bl INSERT_DATA_LIST - b .L925 -.L934: - ldr x1, [x19, 3960] + b .L957 +.L966: + ldr x1, [x19, 3968] add x2, x1, x0, lsl 5 stp xzr, xzr, [x2, 8] ldrh w2, [x3] cmp w2, w5 - beq .L933 + beq .L965 ubfiz x6, x25, 5, 16 add w25, w25, 1 add x1, x1, x6 and w25, w25, 65535 lsl w2, w2, 10 str w2, [x1, 4] -.L933: +.L965: add x0, x0, 1 add x3, x3, 2 - b .L932 -.L938: + b .L964 +.L970: mov w0, 2 - b .L959 -.L937: + b .L991 +.L969: ldr x2, [x19, 2384] lsl x0, x26, 1 ldrh w1, [x2, x0] @@ -6714,22 +6861,22 @@ allocate_data_superblock: str w0, [x19, 2632] mov w0, w24 bl ftl_set_blk_mode.part.7 - b .L940 -.L943: - ldr x1, [x19, 3960] + b .L972 +.L975: + ldr x1, [x19, 3968] add x1, x1, x0 add x0, x0, 32 ldr w2, [x1, 4] and w2, w2, -1024 str w2, [x1, 4] - b .L942 -.L946: - ldr x2, [x19, 3960] + b .L974 +.L978: + ldr x2, [x19, 3968] lsl x0, x28, 5 add x3, x2, x0 ldr w2, [x2, x0] cmn w2, #1 - bne .L945 + bne .L977 add w1, w1, 1 ldr w0, [x3, 4] stp w2, w1, [x29, 104] @@ -6740,11 +6887,11 @@ allocate_data_superblock: ldrb w0, [x20, 7] sub w0, w0, #1 strb w0, [x20, 7] -.L945: +.L977: add x28, x28, 1 add x27, x27, 2 - b .L944 -.L948: + b .L976 +.L980: add x21, x21, :lo12:.LANCHOR0 strh wzr, [x20, 2] strb wzr, [x20, 6] @@ -6761,18 +6908,18 @@ allocate_data_superblock: ldrh w2, [x20] strh w0, [x1, x2, lsl 1] ldrh w0, [x20, 4] - cbz w0, .L949 + cbz w0, .L981 ldrb w0, [x20, 7] - cbnz w0, .L950 -.L949: + cbnz w0, .L982 +.L981: adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 adrp x0, .LC1 - mov w2, 2674 + mov w2, 2743 add x1, x1, 424 add x0, x0, :lo12:.LC1 bl sftl_printk -.L950: +.L982: ldp x19, x20, [sp, 16] mov w0, 0 ldp x21, x22, [sp, 32] @@ -6795,18 +6942,18 @@ FtlGcFreeBadSuperBlk: and w22, w0, 65535 stp x23, x24, [sp, 48] stp x25, x26, [sp, 64] - ldrh w0, [x19, 3324] + ldrh w0, [x19, 3328] str x27, [sp, 80] - cbz w0, .L961 + cbz w0, .L993 add x23, x19, 64 - add x24, x19, 3328 + add x24, x19, 3336 mov w21, 0 -.L962: +.L994: ldrh w0, [x19, 36] cmp w0, w21 - bhi .L968 + bhi .L1000 bl FtlGcReFreshBadBlk -.L961: +.L993: mov w0, 0 ldr x27, [sp, 80] ldp x19, x20, [sp, 16] @@ -6815,50 +6962,50 @@ FtlGcFreeBadSuperBlk: ldp x25, x26, [sp, 64] ldp x29, x30, [sp], 96 ret -.L968: +.L1000: ldrb w0, [x23, w21, sxtw] mov w1, w22 - adrp x26, .LC101 - add x26, x26, :lo12:.LC101 + adrp x26, .LC103 + add x26, x26, :lo12:.LC103 mov w20, 0 bl V2P_block and w25, w0, 65535 -.L963: - ldrh w0, [x19, 3324] +.L995: + ldrh w0, [x19, 3328] cmp w0, w20 - bhi .L967 + bhi .L999 add w21, w21, 1 and w21, w21, 65535 - b .L962 -.L967: + b .L994 +.L999: ldrh w0, [x24, w20, sxtw 1] add w27, w20, 1 cmp w0, w25 - bne .L964 + bne .L996 mov w1, w25 mov x0, x26 bl sftl_printk mov w0, w25 bl FtlBbmMapBadBlock bl FtlBbmTblFlush - ldrh w0, [x19, 3324] + ldrh w0, [x19, 3328] mov w1, w27 -.L965: +.L997: cmp w20, w0 - bcc .L966 + bcc .L998 sub w0, w0, #1 - strh w0, [x19, 3324] -.L964: + strh w0, [x19, 3328] +.L996: and w20, w27, 65535 - b .L963 -.L966: + b .L995 +.L998: sub w2, w1, #1 ldrh w3, [x24, w1, sxtw 1] add w20, w20, 1 add w1, w1, 1 and w20, w20, 65535 strh w3, [x24, w2, sxtw 1] - b .L965 + b .L997 .size FtlGcFreeBadSuperBlk, .-FtlGcFreeBadSuperBlk .align 2 .global update_vpc_list @@ -6874,27 +7021,27 @@ update_vpc_list: ubfiz x1, x19, 1, 16 ldr x2, [x0, 2376] ldrh w1, [x2, x1] - cbnz w1, .L974 + cbnz w1, .L1006 ldrh w1, [x0, 2672] cmp w1, w19 - bne .L975 + bne .L1007 mov w1, -1 strh w1, [x0, 2672] -.L976: +.L1008: add x21, x20, :lo12:.LANCHOR0 mov w1, w19 add x0, x21, 2368 bl List_remove_node ldrh w0, [x21, 2400] - cbnz w0, .L978 + cbnz w0, .L1010 adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 adrp x0, .LC1 - mov w2, 2744 + mov w2, 2813 add x1, x1, 456 add x0, x0, :lo12:.LC1 bl sftl_printk -.L978: +.L1010: add x20, x20, :lo12:.LANCHOR0 ldrh w0, [x20, 2400] sub w0, w0, #1 @@ -6908,38 +7055,38 @@ update_vpc_list: add w0, w0, w1 ldrh w1, [x20, 44] cmp w0, w1 - ble .L982 + ble .L1014 adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 adrp x0, .LC1 - mov w2, 2747 + mov w2, 2816 add x1, x1, 456 add x0, x0, :lo12:.LC1 bl sftl_printk -.L982: +.L1014: mov w0, 1 - b .L973 -.L975: + b .L1005 +.L1007: ldrh w1, [x0, 2424] cmp w1, w19 - beq .L981 + beq .L1013 ldrh w1, [x0, 2472] cmp w1, w19 - beq .L981 + beq .L1013 ldrh w0, [x0, 2520] cmp w0, w19 - bne .L976 -.L981: + bne .L1008 +.L1013: mov w0, 0 -.L973: +.L1005: ldp x19, x20, [sp, 16] ldr x21, [sp, 32] ldp x29, x30, [sp], 48 ret -.L974: +.L1006: mov w0, w19 bl List_update_data_list - b .L981 + b .L1013 .size update_vpc_list, .-update_vpc_list .align 2 .global decrement_vpc_count @@ -6949,56 +7096,87 @@ decrement_vpc_count: add x29, sp, 0 stp x19, x20, [sp, 16] and w19, w0, 65535 - str x21, [sp, 32] + stp x21, x22, [sp, 32] mov w0, 65535 cmp w19, w0 - beq .L985 + beq .L1017 adrp x20, .LANCHOR0 - add x20, x20, :lo12:.LANCHOR0 + add x22, x20, :lo12:.LANCHOR0 ubfiz x21, x19, 1, 16 - ldr x1, [x20, 2376] + ldr x1, [x22, 2376] ldrh w0, [x1, x21] - cbnz w0, .L986 + cbnz w0, .L1018 mov w2, 0 mov w1, w19 - adrp x0, .LC102 - add x0, x0, :lo12:.LC102 + adrp x0, .LC104 + add x0, x0, :lo12:.LC104 bl sftl_printk - ldr x0, [x20, 2376] + ldr x0, [x22, 2376] ldrh w0, [x0, x21] - cbz w0, .L987 -.L992: - mov w21, 0 -.L984: - mov w0, w21 - ldr x21, [sp, 32] - ldp x19, x20, [sp, 16] - ldp x29, x30, [sp], 48 - ret -.L987: + cbnz w0, .L1019 adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 - mov w2, 2762 - add x1, x1, 472 adrp x0, .LC1 + mov w2, 2831 + add x1, x1, 472 add x0, x0, :lo12:.LC1 bl sftl_printk - b .L992 -.L986: +.L1019: + add x22, x20, :lo12:.LANCHOR0 + mov w1, 16 + add x6, x22, 2408 + ldr x0, [x22, 2376] + strh w1, [x0, x21] + mov w1, w19 + mov x0, x6 + bl test_node_in_list + cbz w0, .L1020 + mov w1, w19 + mov x0, x6 + bl List_remove_node + ldrh w0, [x22, 2416] + cbnz w0, .L1021 + adrp x1, .LANCHOR1 + add x1, x1, :lo12:.LANCHOR1 + adrp x0, .LC1 + mov w2, 2835 + add x1, x1, 472 + add x0, x0, :lo12:.LC1 + bl sftl_printk +.L1021: + add x20, x20, :lo12:.LANCHOR0 + ldrh w0, [x20, 2416] + sub w0, w0, #1 + strh w0, [x20, 2416] + mov w0, w19 + bl INSERT_DATA_LIST + ldr x0, [x20, 2376] + mov w1, w19 + ldrh w2, [x0, x21] + adrp x0, .LC105 + add x0, x0, :lo12:.LC105 + bl sftl_printk +.L1020: + mov w0, w19 + bl FtlGcRefreshBlock +.L1024: + mov w21, 0 + b .L1016 +.L1018: sub w0, w0, #1 strh w0, [x1, x21] -.L985: +.L1017: adrp x20, .LANCHOR3 add x20, x20, :lo12:.LANCHOR3 mov w1, 65535 ldrh w0, [x20, -48] cmp w0, w1 - bne .L989 + bne .L1023 strh w19, [x20, -48] - b .L992 -.L989: + b .L1024 +.L1023: cmp w19, w0 - beq .L992 + beq .L1024 bl update_vpc_list cmp w0, 0 adrp x1, .LANCHOR0 @@ -7015,17 +7193,22 @@ decrement_vpc_count: mul x0, x0, x2 and x2, x0, 65535 ldrh w1, [x1, x2, lsl 1] - cbnz w1, .L984 + cbnz w1, .L1016 cmp w19, w0, uxth - beq .L984 + beq .L1016 adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 - mov w2, 2778 - add x1, x1, 472 adrp x0, .LC1 + mov w2, 2856 + add x1, x1, 472 add x0, x0, :lo12:.LC1 bl sftl_printk - b .L984 +.L1016: + mov w0, w21 + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x29, x30, [sp], 48 + ret .size decrement_vpc_count, .-decrement_vpc_count .align 2 .global FtlWriteDump_data @@ -7040,16 +7223,16 @@ FtlWriteDump_data: stp x23, x24, [sp, 48] str x25, [sp, 64] ldrh w2, [x20, 2428] - cbz w2, .L994 + cbz w2, .L1030 ldrb w1, [x20, 2432] - cbnz w1, .L994 + cbnz w1, .L1030 ldrb w1, [x20, 2431] ldrh w3, [x20, 106] mul w1, w1, w3 cmp w2, w1 - beq .L994 + beq .L1030 ldrb w0, [x20, 2434] - cbnz w0, .L993 + cbnz w0, .L1029 ldr w22, [x20, 2584] add x1, x29, 92 ldrh w24, [x20, 36] @@ -7057,49 +7240,49 @@ FtlWriteDump_data: sub w22, w22, #1 mov w0, w22 bl log2phys - ldr x21, [x20, 3440] + ldr x21, [x20, 3448] ldr w0, [x29, 92] - ldr x1, [x20, 3432] + ldr x1, [x20, 3440] str w0, [x29, 100] cmn w0, #1 stp x1, x21, [x29, 104] str w22, [x29, 120] str wzr, [x21, 4] - beq .L996 + beq .L1032 mov w2, 0 mov w1, 1 add x0, x29, 96 bl FlashReadPages -.L997: +.L1033: add x25, x19, :lo12:.LANCHOR0 lsl w24, w24, 2 add x20, x25, 2424 mov w0, -3947 mov w23, 0 strh w0, [x21] -.L998: +.L1034: cmp w24, w23 - bne .L1002 -.L999: + bne .L1038 +.L1035: add x19, x19, :lo12:.LANCHOR0 mov w0, 1 strb w0, [x19, 2434] -.L993: +.L1029: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldr x25, [sp, 64] ldp x29, x30, [sp], 128 ret -.L996: +.L1032: ldrh w2, [x20, 114] mov w1, 255 - ldr x0, [x20, 3432] + ldr x0, [x20, 3440] bl ftl_memset - b .L997 -.L1002: + b .L1033 +.L1038: ldrh w0, [x20, 4] - cbz w0, .L999 + cbz w0, .L1035 ldr w0, [x29, 100] add w23, w23, 1 stp w22, w0, [x21, 8] @@ -7121,11 +7304,11 @@ FtlWriteDump_data: bl FlashProgPages ldrh w0, [x20] bl decrement_vpc_count - b .L998 -.L994: + b .L1034 +.L1030: add x19, x19, :lo12:.LANCHOR0 strb wzr, [x19, 2434] - b .L993 + b .L1029 .size FtlWriteDump_data, .-FtlWriteDump_data .align 2 .global l2p_flush @@ -7138,26 +7321,26 @@ l2p_flush: add x20, x20, :lo12:.LANCHOR0 mov w19, 0 bl FtlWriteDump_data -.L1012: +.L1048: ldrh w0, [x20, 142] cmp w0, w19 - bhi .L1014 + bhi .L1050 mov w0, 0 ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 32 ret -.L1014: +.L1050: ldr x1, [x20, 2568] ubfiz x0, x19, 4, 16 add x0, x1, x0 ldr w0, [x0, 4] - tbz w0, #31, .L1013 + tbz w0, #31, .L1049 mov w0, w19 bl flush_l2p_region -.L1013: +.L1049: add w19, w19, 1 and w19, w19, 65535 - b .L1012 + b .L1048 .size l2p_flush, .-l2p_flush .align 2 .global FtlRecoverySuperblock @@ -7174,7 +7357,7 @@ FtlRecoverySuperblock: stp x27, x28, [sp, 80] ldrh w0, [x0] cmp w0, w1 - beq .L1134 + beq .L1170 ldrb w0, [x19, 6] adrp x20, .LANCHOR0 str w0, [x29, 156] @@ -7182,11 +7365,11 @@ FtlRecoverySuperblock: ldrh w27, [x19, 2] ldrh w0, [x0, 106] cmp w0, w27 - bne .L1019 + bne .L1055 strh wzr, [x19, 4] -.L1140: +.L1176: strb wzr, [x19, 6] -.L1134: +.L1170: ldp x19, x20, [sp, 16] mov w0, 0 ldp x21, x22, [sp, 32] @@ -7195,17 +7378,17 @@ FtlRecoverySuperblock: ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 176 ret -.L1019: +.L1055: ldrh w0, [x19, 16] mov w21, 0 -.L1020: +.L1056: cmp w0, w1 - beq .L1021 + beq .L1057 mov w1, 1 bl FtlGetLastWrittenPage mov w24, w0 cmn w0, #1 - beq .L1022 + beq .L1058 add x0, x20, :lo12:.LANCHOR0 add x1, x19, 16 str x1, [x29, 144] @@ -7218,90 +7401,90 @@ FtlRecoverySuperblock: add x1, x1, 8 ldrh w9, [x0, 116] add x1, x19, x1, lsl 1 -.L1023: +.L1059: cmp x5, x1 - bne .L1027 + bne .L1063 add x23, x20, :lo12:.LANCHOR0 mov w2, 0 mov w1, w21 - ldr x0, [x23, 4016] + ldr x0, [x23, 4024] bl FlashReadPages ldr w22, [x23, 2624] - ldr x4, [x23, 4016] + ldr x4, [x23, 4024] and w9, w24, 65535 sub w22, w22, #1 mov w7, 65535 mov x6, x4 mov w3, 0 -.L1028: +.L1064: cmp w21, w3 - bne .L1033 + bne .L1069 add w23, w24, 1 ldr w0, [x4, 4] and w23, w23, 65535 -.L1136: +.L1172: lsr w0, w0, 10 bl P2V_plane and w28, w0, 65535 add x0, x20, :lo12:.LANCHOR0 ldrh w0, [x0, 106] cmp w0, w23 - bne .L1035 + bne .L1071 strh w23, [x19, 2] strb wzr, [x19, 6] strh wzr, [x19, 4] -.L1035: +.L1071: ldr w0, [x29, 156] cmp w23, w27 ccmp w28, w0, 0, eq - bne .L1036 -.L1141: + bne .L1072 +.L1177: mov w2, w28 mov w1, w23 mov x0, x19 bl ftl_sb_update_avl_pages - b .L1134 -.L1021: + b .L1170 +.L1057: add w21, w21, 1 and w21, w21, 65535 add x0, x19, x21, sxtw 1 ldrh w0, [x0, 16] - b .L1020 -.L1022: - cbz w27, .L1024 + b .L1056 +.L1058: + cbz w27, .L1060 adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 adrp x0, .LC1 - mov w2, 1755 + mov w2, 1804 add x1, x1, 496 add x0, x0, :lo12:.LC1 bl sftl_printk -.L1024: +.L1060: ldr w0, [x29, 156] cmp w0, 0 ccmp w21, w0, 4, ne - beq .L1025 + beq .L1061 adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 adrp x0, .LC1 - mov w2, 1756 + mov w2, 1805 add x1, x1, 496 add x0, x0, :lo12:.LC1 bl sftl_printk -.L1025: +.L1061: strh wzr, [x19, 2] - b .L1140 -.L1027: + b .L1176 +.L1063: ldrh w2, [x5] cmp w2, w10 - beq .L1026 - ldr x4, [x0, 4016] + beq .L1062 + ldr x4, [x0, 4024] ubfiz x7, x21, 5, 16 orr w2, w24, w2, lsl 10 add x4, x4, x7 str w2, [x4, 4] mul w2, w21, w8 - ldr x3, [x0, 4016] + ldr x3, [x0, 4024] ldr x4, [x0, 3264] sdiv w2, w2, w6 add x3, x3, x7 @@ -7314,90 +7497,90 @@ FtlRecoverySuperblock: sdiv w2, w2, w6 add x2, x4, x2, sxtw 2 str x2, [x3, 16] -.L1026: +.L1062: add x5, x5, 2 - b .L1023 -.L1033: + b .L1059 +.L1069: ldr w0, [x6] - cbnz w0, .L1029 + cbnz w0, .L1065 ldr x8, [x6, 16] ldr w5, [x8, 4] cmn w5, #1 - beq .L1030 + beq .L1066 ldr w1, [x23, 2624] mov w0, w5 bl ftl_cmp_data_ver - cbz w0, .L1030 + cbz w0, .L1066 add w5, w5, 1 str w5, [x23, 2624] -.L1030: +.L1066: ldr w0, [x8] cmn w0, #1 - bne .L1032 + bne .L1068 ubfiz x3, x3, 5, 16 and w23, w24, 65535 add x3, x4, x3 ldr w0, [x3, 4] - b .L1136 -.L1029: + b .L1172 +.L1065: mov w7, w9 -.L1032: +.L1068: add w3, w3, 1 add x6, x6, 32 and w3, w3, 65535 - b .L1028 -.L1036: + b .L1064 +.L1072: mov w0, 65535 adrp x21, .LANCHOR3 cmp w7, w0 - bne .L1037 + bne .L1073 ldrb w0, [x19, 8] - cbnz w0, .L1038 -.L1037: + cbnz w0, .L1074 +.L1073: add x0, x21, :lo12:.LANCHOR3 and w3, w24, 65535 ldr w1, [x0, -36] cmn w1, #1 - bne .L1039 + bne .L1075 str w22, [x0, -36] -.L1039: +.L1075: add w0, w27, 7 cmp w0, w24, uxth - bge .L1087 + bge .L1123 sub w25, w3, #7 and w25, w25, 65535 -.L1040: +.L1076: add x26, x20, :lo12:.LANCHOR0 mov w4, 65535 -.L1041: +.L1077: cmp w25, w3 - bhi .L1048 + bhi .L1084 ldrh w0, [x26, 36] mov w24, 0 ldr x1, [x29, 144] add x0, x0, 8 add x0, x19, x0, lsl 1 - b .L1049 -.L1087: + b .L1085 +.L1123: mov w25, w27 - b .L1040 -.L1043: + b .L1076 +.L1079: ldrh w2, [x1] cmp w2, w4 - beq .L1042 - ldr x5, [x26, 4016] + beq .L1078 + ldr x5, [x26, 4024] ubfiz x6, x24, 5, 16 add w24, w24, 1 orr w2, w25, w2, lsl 10 add x5, x5, x6 and w24, w24, 65535 str w2, [x5, 4] -.L1042: +.L1078: add x1, x1, 2 -.L1049: +.L1085: cmp x0, x1 - bne .L1043 - ldr x0, [x26, 4016] + bne .L1079 + ldr x0, [x26, 4024] mov w1, w24 mov w2, 0 str w4, [x29, 128] @@ -7405,57 +7588,57 @@ FtlRecoverySuperblock: ubfiz x24, x24, 5, 16 add x24, x24, 16 bl FlashReadPages - ldr x1, [x26, 4016] + ldr x1, [x26, 4024] add x2, x21, :lo12:.LANCHOR3 ldr w4, [x29, 128] ldr w3, [x29, 136] add x0, x1, 16 add x24, x1, x24 -.L1044: +.L1080: cmp x24, x0 - bne .L1047 + bne .L1083 add w25, w25, 1 and w25, w25, 65535 - b .L1041 -.L1047: + b .L1077 +.L1083: ldr w1, [x0, -16] - cbnz w1, .L1038 + cbnz w1, .L1074 ldr x1, [x0] ldrh w5, [x1] cmp w5, w4 - beq .L1046 + beq .L1082 ldr w1, [x1, 4] cmn w1, #1 - beq .L1046 + beq .L1082 str w1, [x2, -36] -.L1046: +.L1082: add x0, x0, 32 - b .L1044 -.L1048: + b .L1080 +.L1084: add x0, x21, :lo12:.LANCHOR3 mov w1, -1 str w1, [x0, -36] -.L1038: +.L1074: add x21, x21, :lo12:.LANCHOR3 mov w0, 1 mov w25, w27 add x20, x20, :lo12:.LANCHOR0 strh w0, [x21, -32] - sub x0, x21, #192 + sub x0, x21, #184 bl FtlMapBlkWriteDump_data sub x0, x21, #24 str x0, [x29, 112] -.L1050: +.L1086: ldrh w0, [x20, 36] mov w24, 0 ldr x1, [x29, 144] mov w4, 65535 add x0, x0, 8 add x0, x19, x0, lsl 1 -.L1051: +.L1087: cmp x0, x1 - bne .L1053 - ldr x0, [x20, 4016] + bne .L1089 + ldr x0, [x20, 4024] mov w1, w24 mov w2, 0 bl FlashReadPages @@ -7466,46 +7649,46 @@ FtlRecoverySuperblock: add x0, x0, 496 mov x24, 0 str x0, [x29, 128] -.L1054: +.L1090: ldr x0, [x29, 120] cmp x0, x24 - bne .L1081 + bne .L1117 add w25, w25, 1 ldrh w0, [x20, 106] and w25, w25, 65535 cmp w0, w25 - bne .L1050 + bne .L1086 ldrh w1, [x20, 36] mov w0, 0 strh w25, [x19, 2] mov w2, 65535 strh wzr, [x19, 4] -.L1082: +.L1118: cmp w0, w1 - beq .L1134 + beq .L1170 ldr x4, [x29, 144] ldrh w3, [x4], 2 str x4, [x29, 144] cmp w3, w2 - beq .L1083 + beq .L1119 strb w0, [x19, 6] - b .L1134 -.L1053: + b .L1170 +.L1089: ldrh w2, [x1] cmp w2, w4 - beq .L1052 - ldr x3, [x20, 4016] + beq .L1088 + ldr x3, [x20, 4024] ubfiz x5, x24, 5, 16 add w24, w24, 1 orr w2, w25, w2, lsl 10 add x3, x3, x5 and w24, w24, 65535 str w2, [x3, 4] -.L1052: +.L1088: add x1, x1, 2 - b .L1051 -.L1081: - ldr x4, [x20, 4016] + b .L1087 +.L1117: + ldr x4, [x20, 4024] add x4, x4, x24 ldr w5, [x4, 4] str w5, [x29, 172] @@ -7513,53 +7696,53 @@ FtlRecoverySuperblock: bl P2V_plane and w0, w0, 65535 cmp w25, w27 - bcc .L1055 + bcc .L1091 ldr w1, [x29, 156] ccmp w1, w0, 0, eq - bhi .L1055 + bhi .L1091 cmp w25, w23 ccmp w28, w0, 0, eq - beq .L1056 + beq .L1092 ldr w0, [x4] cmn w0, #1 - beq .L1057 + beq .L1093 ldr x3, [x4, 16] mov w0, 61589 ldrh w1, [x3] cmp w1, w0 - beq .L1058 -.L1065: + beq .L1094 +.L1101: ldrh w0, [x19] -.L1139: +.L1175: bl decrement_vpc_count -.L1055: +.L1091: add x24, x24, 32 - b .L1054 -.L1058: + b .L1090 +.L1094: ldr w22, [x3, 4] cmn w22, #1 - beq .L1059 + beq .L1095 ldr w1, [x20, 2624] mov w0, w22 str x3, [x29, 136] bl ftl_cmp_data_ver ldr x3, [x29, 136] - cbz w0, .L1059 + cbz w0, .L1095 add w0, w22, 1 str w0, [x20, 2624] -.L1059: +.L1095: ldrh w1, [x3] mov w0, 61589 cmp w1, w0 - beq .L1060 + beq .L1096 ldr x1, [x29, 128] - mov w2, 1905 + mov w2, 1954 str x3, [x29, 136] adrp x0, .LC1 add x0, x0, :lo12:.LC1 bl sftl_printk ldr x3, [x29, 136] -.L1060: +.L1096: ldp w26, w0, [x3, 8] add x1, x29, 168 str w0, [x29, 164] @@ -7568,208 +7751,208 @@ FtlRecoverySuperblock: bl log2phys ldr w1, [x21, -36] cmn w1, #1 - beq .L1061 + beq .L1097 mov w0, w22 bl ftl_cmp_data_ver - cbz w0, .L1061 + cbz w0, .L1097 ldr w1, [x29, 164] cmn w1, #1 - beq .L1062 - ldr x0, [x20, 4016] + beq .L1098 + ldr x0, [x20, 4024] mov w2, 0 add x0, x0, x24 ldr x4, [x0, 16] str w1, [x0, 4] mov w1, 1 str x4, [x29, 136] - ldr x0, [x20, 4016] + ldr x0, [x20, 4024] add x0, x0, x24 bl FlashReadPages - ldr x0, [x20, 4016] + ldr x0, [x20, 4024] ldr x4, [x29, 136] add x3, x0, x24 ldr w0, [x0, x24] cmn w0, #1 - bne .L1063 -.L1064: + bne .L1099 +.L1100: mov w0, -1 str w0, [x29, 164] ldrh w0, [x19] bl decrement_vpc_count -.L1072: +.L1108: ldr w4, [x29, 164] cmn w4, #1 - beq .L1055 -.L1086: + beq .L1091 +.L1122: lsr w0, w4, 10 bl P2V_block_in_plane and w26, w0, 65535 ldrh w0, [x20, 44] mov w3, w26 cmp w0, w26 - bhi .L1077 + bhi .L1113 ldr x1, [x29, 128] - mov w2, 2006 + mov w2, 2055 adrp x0, .LC1 str w26, [x29, 136] add x0, x0, :lo12:.LC1 bl sftl_printk ldr w3, [x29, 136] -.L1077: +.L1113: ldr x1, [x20, 2376] ubfiz x0, x26, 1, 16 ldrh w0, [x1, x0] - cbz w0, .L1078 + cbz w0, .L1114 mov w0, w3 - b .L1139 -.L1062: + b .L1175 +.L1098: ldp w1, w0, [x29, 168] cmp w1, w0 - bne .L1065 + bne .L1101 mov w2, 1 add x1, x29, 164 mov w0, w26 bl log2phys - b .L1065 -.L1063: + b .L1101 +.L1099: ldr w0, [x4, 8] cmp w26, w0 - bne .L1064 + bne .L1100 ldr w0, [x4, 4] str w0, [x29, 136] str x4, [x29, 104] uxtw x1, w0 ldr w0, [x21, -36] bl ftl_cmp_data_ver - cbz w0, .L1064 + cbz w0, .L1100 ldp w0, w1, [x29, 168] ldr x4, [x29, 104] cmp w0, w1 ldr w1, [x29, 164] - bne .L1067 -.L1137: + bne .L1103 +.L1173: mov w0, w26 bl FtlReUsePrevPpa - b .L1064 -.L1067: + b .L1100 +.L1103: cmp w0, w1 - beq .L1064 + beq .L1100 cmn w0, #1 - beq .L1068 + beq .L1104 ldr x4, [x3, 16] mov w2, 0 str w0, [x3, 4] mov w1, 1 str x4, [x29, 104] - ldr x0, [x20, 4016] + ldr x0, [x20, 4024] add x0, x0, x24 bl FlashReadPages ldr x4, [x29, 104] -.L1069: - adrp x0, .LANCHOR0+4016 - ldr x0, [x0, #:lo12:.LANCHOR0+4016] +.L1105: + adrp x0, .LANCHOR0+4024 + ldr x0, [x0, #:lo12:.LANCHOR0+4024] ldr w0, [x0, x24] cmn w0, #1 - beq .L1070 + beq .L1106 ldr w3, [x4, 4] ldr w0, [x21, -36] mov w1, w3 bl ftl_cmp_data_ver - cbz w0, .L1070 + cbz w0, .L1106 ldr w0, [x29, 136] mov w1, w3 bl ftl_cmp_data_ver - cbz w0, .L1064 -.L1070: + cbz w0, .L1100 +.L1106: ldr w1, [x29, 164] - b .L1137 -.L1068: + b .L1173 +.L1104: str w0, [x3] - b .L1069 -.L1061: + b .L1105 +.L1097: ldp w1, w0, [x29, 168] cmp w1, w0 - beq .L1072 + beq .L1108 mov w2, 1 add x1, x29, 172 mov w0, w26 bl log2phys ldr w4, [x29, 168] cmn w4, #1 - beq .L1072 + beq .L1108 ldr w0, [x29, 164] cmp w4, w0 - beq .L1086 + beq .L1122 lsr w0, w4, 10 bl P2V_block_in_plane ldrh w1, [x20, 2424] and w0, w0, 65535 cmp w1, w0 - beq .L1076 + beq .L1112 ldrh w1, [x20, 2472] cmp w1, w0 - beq .L1076 + beq .L1112 ldrh w1, [x20, 2520] cmp w1, w0 - bne .L1072 -.L1076: - ldr x0, [x20, 4016] + bne .L1108 +.L1112: + ldr x0, [x20, 4024] mov w2, 0 mov w1, 1 str w4, [x0, 4] ldr x3, [x0, 16] - ldr x0, [x20, 4016] + ldr x0, [x20, 4024] str x3, [x29, 136] bl FlashReadPages - ldr x0, [x20, 4016] + ldr x0, [x20, 4024] ldr w0, [x0] cmn w0, #1 - beq .L1072 + beq .L1108 ldr x3, [x29, 136] mov w0, w22 ldr w1, [x3, 4] bl ftl_cmp_data_ver - cbnz w0, .L1072 + cbnz w0, .L1108 mov w2, 1 add x1, x29, 168 mov w0, w26 bl log2phys - b .L1072 -.L1078: + b .L1108 +.L1114: mov w1, w26 - adrp x0, .LC103 - add x0, x0, :lo12:.LC103 + adrp x0, .LC106 + add x0, x0, :lo12:.LC106 bl sftl_printk - b .L1055 -.L1057: + b .L1091 +.L1093: ldr w0, [x21, -28] cmp w0, 31 - bhi .L1079 + bhi .L1115 ldr x1, [x29, 112] str w5, [x1, w0, uxtw 2] add w0, w0, 1 str w0, [x21, -28] -.L1079: +.L1115: ldrh w0, [x19] bl decrement_vpc_count ldr w0, [x21, -36] cmn w0, #1 - bne .L1080 -.L1138: + bne .L1116 +.L1174: str w22, [x21, -36] - b .L1055 -.L1080: + b .L1091 +.L1116: cmp w22, w0 - bcs .L1055 - b .L1138 -.L1083: + bcs .L1091 + b .L1174 +.L1119: add w0, w0, 1 and w0, w0, 65535 - b .L1082 -.L1056: + b .L1118 +.L1092: strb w28, [x19, 6] strh w23, [x19, 2] - b .L1141 + b .L1177 .size FtlRecoverySuperblock, .-FtlRecoverySuperblock .align 2 .global FtlSuperblockPowerLostFix @@ -7789,8 +7972,8 @@ FtlSuperblockPowerLostFix: mov x20, x0 mov x23, x2 mov w22, 7 - ldr x21, [x0, 3440] - ldr x1, [x0, 3432] + ldr x21, [x0, 3448] + ldr x1, [x0, 3440] stp x1, x21, [x29, 72] mov w1, -3 str w1, [x21, 8] @@ -7799,18 +7982,18 @@ FtlSuperblockPowerLostFix: ldrh w1, [x19] strh w1, [x21, 2] strh wzr, [x21] - ldr x1, [x0, 3432] + ldr x1, [x0, 3440] str w3, [x1] mov w3, 22136 movk w3, 0x1234, lsl 16 - ldr x1, [x0, 3432] + ldr x1, [x0, 3440] str w3, [x1, 4] -.L1143: +.L1179: subs w22, w22, #1 - beq .L1145 + beq .L1181 ldrh w0, [x19, 4] - cbnz w0, .L1144 -.L1145: + cbnz w0, .L1180 +.L1181: add x2, x23, :lo12:.LANCHOR0 ldrh w0, [x19] ldrh w4, [x19, 4] @@ -7828,12 +8011,12 @@ FtlSuperblockPowerLostFix: ldr x23, [sp, 48] ldp x29, x30, [sp], 96 ret -.L1144: +.L1180: mov x0, x19 bl get_new_active_ppa str w0, [x29, 68] cmn w0, #1 - beq .L1145 + beq .L1181 ldr w0, [x20, 2624] mov w3, 0 str w0, [x21, 4] @@ -7847,7 +8030,7 @@ FtlSuperblockPowerLostFix: bl FlashProgPages ldrh w0, [x19] bl decrement_vpc_count - b .L1143 + b .L1179 .size FtlSuperblockPowerLostFix, .-FtlSuperblockPowerLostFix .align 2 .global FtlLoadBbt @@ -7860,20 +8043,20 @@ FtlLoadBbt: stp x23, x24, [sp, 48] add x23, x19, :lo12:.LANCHOR0 stp x21, x22, [sp, 32] - add x21, x23, 3400 + add x21, x23, 3408 mov w24, 61649 - ldr x0, [x23, 3432] - ldr x22, [x23, 3440] + ldr x0, [x23, 3440] + ldr x22, [x23, 3448] stp x0, x22, [x21, 8] bl FtlBbtMemInit ldrh w20, [x23, 102] sub w20, w20, #1 and w20, w20, 65535 -.L1155: +.L1191: ldrh w0, [x23, 102] sub w0, w0, #16 cmp w20, w0 - ble .L1158 + ble .L1194 lsl w0, w20, 10 mov w2, 1 str w0, [x21, 4] @@ -7882,7 +8065,7 @@ FtlLoadBbt: bl FlashReadPages ldr w0, [x21] cmn w0, #1 - bne .L1156 + bne .L1192 ldr w0, [x21, 4] mov w2, 1 mov w1, w2 @@ -7890,61 +8073,61 @@ FtlLoadBbt: str w0, [x21, 4] mov x0, x21 bl FlashReadPages -.L1156: +.L1192: ldr w0, [x21] cmn w0, #1 - beq .L1157 + beq .L1193 ldrh w0, [x22] cmp w0, w24 - bne .L1157 + bne .L1193 ldr w1, [x22, 4] str w1, [x23, 168] strh w20, [x23, 160] ldrh w1, [x22, 8] strh w1, [x23, 164] -.L1158: +.L1194: add x21, x19, :lo12:.LANCHOR0 mov w0, 65535 ldrh w1, [x21, 160] cmp w1, w0 - beq .L1172 + beq .L1208 ldrh w1, [x21, 164] cmp w1, w0 - beq .L1162 - add x0, x21, 3400 + beq .L1198 + add x0, x21, 3408 lsl w1, w1, 10 mov w2, 1 str w1, [x0, 4] mov w1, w2 bl FlashReadPages - ldr w0, [x21, 3400] + ldr w0, [x21, 3408] cmn w0, #1 - beq .L1162 + beq .L1198 ldrh w1, [x22] mov w0, 61649 cmp w1, w0 - bne .L1162 + bne .L1198 ldr w1, [x21, 168] ldr w0, [x22, 4] cmp w0, w1 - bls .L1162 + bls .L1198 str w0, [x21, 168] ldrh w1, [x21, 164] ldrh w0, [x22, 8] strh w1, [x21, 160] strh w0, [x21, 164] -.L1162: +.L1198: add x20, x19, :lo12:.LANCHOR0 mov w1, 1 - add x23, x20, 3400 + add x23, x20, 3408 mov w24, 61649 ldrh w0, [x20, 160] bl FtlGetLastWrittenPage sxth w21, w0 add w0, w0, 1 strh w0, [x20, 162] -.L1164: - tbz w21, #31, .L1167 +.L1200: + tbz w21, #31, .L1203 adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 adrp x0, .LC1 @@ -7952,78 +8135,78 @@ FtlLoadBbt: add x1, x1, 520 add x0, x0, :lo12:.LC1 bl sftl_printk -.L1166: +.L1202: add x1, x19, :lo12:.LANCHOR0 ldrh w0, [x22, 10] mov w2, 65535 strh w0, [x1, 166] ldrh w0, [x22, 12] cmp w0, w2 - beq .L1169 + beq .L1205 ldr w2, [x1, 32] cmp w0, w2 - beq .L1169 + beq .L1205 ldrh w1, [x1, 46] lsr w1, w1, 2 cmp w2, w1 - bcs .L1169 + bcs .L1205 cmp w0, w1 - bcs .L1169 + bcs .L1205 bl FtlSysBlkNumInit -.L1169: +.L1205: add x19, x19, :lo12:.LANCHOR0 adrp x21, .LANCHOR3 add x22, x19, 192 add x21, x21, :lo12:.LANCHOR3 mov w20, 0 -.L1170: +.L1206: ldrh w0, [x19, 58] cmp w20, w0 - bcc .L1171 + bcc .L1207 mov w0, 0 -.L1154: +.L1190: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldp x29, x30, [sp], 64 ret -.L1157: +.L1193: sub w20, w20, #1 and w20, w20, 65535 - b .L1155 -.L1167: + b .L1191 +.L1203: ldrh w0, [x20, 160] mov w2, 1 mov w1, w2 orr w0, w21, w0, lsl 10 str w0, [x23, 4] - ldr x0, [x20, 3432] + ldr x0, [x20, 3440] str x0, [x23, 8] mov x0, x23 bl FlashReadPages ldr w0, [x23] cmn w0, #1 - beq .L1165 + beq .L1201 ldrh w0, [x22] cmp w0, w24 - beq .L1166 -.L1165: + beq .L1202 +.L1201: sub w21, w21, #1 sxth w21, w21 - b .L1164 -.L1171: - ldrh w2, [x21, -200] - ldr x0, [x19, 3408] + b .L1200 +.L1207: + ldrh w2, [x21, -192] + ldr x0, [x19, 3416] mul w1, w2, w20 lsl w2, w2, 2 add w20, w20, 1 add x1, x0, x1, lsl 2 ldr x0, [x22], 8 bl ftl_memcpy - b .L1170 -.L1172: + b .L1206 +.L1208: mov w0, -1 - b .L1154 + b .L1190 .size FtlLoadBbt, .-FtlLoadBbt .align 2 .global FtlMakeBbt @@ -8047,48 +8230,48 @@ FtlMakeBbt: add x26, x0, 192 add x25, x0, 172 mov x19, x0 - add x20, x0, 3400 -.L1185: + add x20, x0, 3408 +.L1221: ldrh w0, [x19, 58] cmp w24, w0 - bcc .L1191 + bcc .L1227 add x20, x21, :lo12:.LANCHOR0 mov w19, 0 -.L1192: +.L1228: ldrh w0, [x20, 118] cmp w0, w19 - bhi .L1193 + bhi .L1229 add x20, x20, 160 ldrh w19, [x20, 12] mov w22, 65535 sub w19, w19, #1 and w19, w19, 65535 -.L1194: +.L1230: ldrh w0, [x20, 12] sub w0, w0, #48 cmp w19, w0 - ble .L1198 + ble .L1234 mov w0, w19 bl FtlBbmIsBadBlock cmp w0, 1 - beq .L1195 + beq .L1231 mov w0, w19 bl FlashTestBlk - cbz w0, .L1196 + cbz w0, .L1232 mov w0, w19 bl FtlBbmMapBadBlock -.L1195: +.L1231: sub w19, w19, #1 and w19, w19, 65535 - b .L1194 -.L1191: - ldr x0, [x19, 3432] + b .L1230 +.L1227: + ldr x0, [x19, 3440] mov w2, 65535 - ldr x27, [x19, 3440] + ldr x27, [x19, 3448] ldrh w1, [x25] stp x0, x27, [x20, 8] cmp w1, w2 - beq .L1186 + beq .L1222 ldrh w23, [x19, 102] mov w2, 1 madd w23, w23, w24, w1 @@ -8103,35 +8286,35 @@ FtlMakeBbt: add w2, w2, 7 lsr w2, w2, 3 bl ftl_memcpy -.L1187: +.L1223: mov w0, w23 add w24, w24, 1 bl FtlBbmMapBadBlock add x26, x26, 8 add x25, x25, 2 - b .L1185 -.L1186: + b .L1221 +.L1222: mov w1, w24 bl FlashGetBadBlockList ldr x0, [x20, 8] ldr x1, [x26] bl FtlBbt2Bitmap ldrh w22, [x19, 102] -.L1189: +.L1225: sub w22, w22, #1 and w22, w22, 65535 -.L1188: +.L1224: ldrh w0, [x19, 102] madd w0, w24, w0, w22 bl FtlBbmIsBadBlock cmp w0, 1 - beq .L1189 - ldr x0, [x19, 3440] + beq .L1225 + ldr x0, [x19, 3448] mov w2, 16 strh w22, [x25] mov w1, 0 bl ftl_memset - ldr x0, [x19, 3432] + ldr x0, [x19, 3440] mov w2, 4096 mov w1, 0 bl ftl_memset @@ -8143,7 +8326,7 @@ FtlMakeBbt: ldrh w23, [x19, 102] ldrh w0, [x25] ldr x1, [x26] - ldrh w2, [x28, -200] + ldrh w2, [x28, -192] madd w23, w23, w24, w0 lsl w2, w2, 2 lsl w0, w23, 10 @@ -8161,34 +8344,34 @@ FtlMakeBbt: bl FlashProgPages ldr w0, [x20] cmn w0, #1 - bne .L1187 + bne .L1223 mov w0, w23 bl FtlBbmMapBadBlock - b .L1188 -.L1193: + b .L1224 +.L1229: mov w0, w19 add w19, w19, 1 bl FtlBbmMapBadBlock and w19, w19, 65535 - b .L1192 -.L1196: + b .L1228 +.L1232: ldrh w0, [x20] cmp w0, w22 - bne .L1197 + bne .L1233 strh w19, [x20] - b .L1195 -.L1197: + b .L1231 +.L1233: strh w19, [x20, 4] -.L1198: +.L1234: add x21, x21, :lo12:.LANCHOR0 mov w2, 2 - ldr x1, [x21, 3960] + ldr x1, [x21, 3968] ldrh w0, [x21, 160] str wzr, [x21, 168] strh wzr, [x21, 162] lsl w0, w0, 10 str w0, [x1, 4] - ldr x0, [x21, 3960] + ldr x0, [x21, 3968] ldrh w1, [x21, 164] lsl w1, w1, 10 str w1, [x0, 36] @@ -8236,16 +8419,16 @@ FtlVendorPartWrite: stp x25, x26, [sp, 64] ldrh w1, [x0, 100] cmp w2, w1 - bhi .L1212 + bhi .L1248 ldrh w21, [x0, 112] adrp x26, .LANCHOR3 add x25, x26, :lo12:.LANCHOR3 mov w23, 0 - sub x25, x25, #120 + sub x25, x25, #112 lsr w21, w27, w21 -.L1206: - cbnz w28, .L1211 -.L1204: +.L1242: + cbnz w28, .L1247 +.L1240: mov w0, w23 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] @@ -8254,11 +8437,11 @@ FtlVendorPartWrite: ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 208 ret -.L1211: +.L1247: add x2, x22, :lo12:.LANCHOR0 add x0, x26, :lo12:.LANCHOR3 ldrh w1, [x2, 62] - ldr x0, [x0, -232] + ldr x0, [x0, -224] udiv w20, w27, w1 ldr w4, [x0, w21, uxtw 2] and w0, w28, 65535 @@ -8267,10 +8450,10 @@ FtlVendorPartWrite: and w19, w19, 65535 cmp w28, w19 csel w19, w0, w19, cc - cbz w4, .L1208 + cbz w4, .L1244 cmp w19, w1 - beq .L1208 - ldr x0, [x2, 4048] + beq .L1244 + ldr x0, [x2, 4056] mov w2, 1 str x0, [x29, 120] add x0, x29, 144 @@ -8279,14 +8462,14 @@ FtlVendorPartWrite: str w4, [x29, 116] add x0, x29, 112 bl FlashReadPages -.L1209: +.L1245: add x5, x22, :lo12:.LANCHOR0 lsl w4, w19, 9 lsl w20, w20, 9 mov w2, w4 asr w20, w20, 2 mov x1, x24 - ldr x0, [x5, 4048] + ldr x0, [x5, 4056] sub w28, w28, w19 str w4, [x29, 108] add w27, w27, w19 @@ -8297,23 +8480,23 @@ FtlVendorPartWrite: mov w1, w21 mov x0, x25 add w21, w21, 1 - ldr x2, [x5, 4048] + ldr x2, [x5, 4056] bl FtlMapWritePage cmn w0, #1 ldr w4, [x29, 108] csinv w23, w23, wzr, ne add x24, x24, x4, sxtw - b .L1206 -.L1208: + b .L1242 +.L1244: add x0, x22, :lo12:.LANCHOR0 mov w1, 0 ldrh w2, [x0, 114] - ldr x0, [x0, 4048] + ldr x0, [x0, 4056] bl ftl_memset - b .L1209 -.L1212: + b .L1245 +.L1248: mov w23, -1 - b .L1204 + b .L1240 .size FtlVendorPartWrite, .-FtlVendorPartWrite .align 2 .global Ftl_save_ext_data @@ -8325,10 +8508,10 @@ Ftl_save_ext_data: movk w1, 0x4654, lsl 16 ldr w3, [x0, 2720] cmp w3, w1 - bne .L1220 + bne .L1256 stp x29, x30, [sp, -16]! add x2, x0, 2720 - mov w1, 68 + mov w1, 69 add x29, sp, 0 movk w1, 0x5000, lsl 16 str w1, [x2, 4] @@ -8360,7 +8543,7 @@ Ftl_save_ext_data: bl FtlVendorPartWrite ldp x29, x30, [sp], 16 ret -.L1220: +.L1256: ret .size Ftl_save_ext_data, .-Ftl_save_ext_data .align 2 @@ -8371,49 +8554,49 @@ FtlEctTblFlush: add x1, x1, :lo12:.LANCHOR3 ldrh w2, [x1, 104] cmp w2, 31 - bhi .L1227 + bhi .L1263 add w2, w2, 1 strh w2, [x1, 104] mov w2, 1 -.L1224: +.L1260: adrp x1, .LANCHOR0 - cbnz w0, .L1225 + cbnz w0, .L1261 add x0, x1, :lo12:.LANCHOR0 - ldr x0, [x0, 4072] + ldr x0, [x0, 4080] ldr w3, [x0, 20] ldr w0, [x0, 16] add w2, w2, w3 cmp w0, w2 - bcc .L1229 -.L1225: + bcc .L1265 +.L1261: add x0, x1, :lo12:.LANCHOR0 stp x29, x30, [sp, -16]! add x29, sp, 0 - ldr x1, [x0, 4072] + ldr x1, [x0, 4080] ldr w2, [x1, 16] str w2, [x1, 20] mov w2, 17221 movk w2, 0x4254, lsl 16 str w2, [x1] - ldr x2, [x0, 4072] - ldrh w1, [x0, 4056] + ldr x2, [x0, 4080] + ldrh w1, [x0, 4064] lsl w3, w1, 9 str wzr, [x2, 4] str w3, [x2, 12] ldr w3, [x2, 8] add w3, w3, 1 str w3, [x2, 8] - ldr x2, [x0, 4072] + ldr x2, [x0, 4080] mov w0, 64 bl FtlVendorPartWrite bl Ftl_save_ext_data mov w0, 0 ldp x29, x30, [sp], 16 ret -.L1227: +.L1263: mov w2, 32 - b .L1224 -.L1229: + b .L1260 +.L1265: mov w0, 0 ret .size FtlEctTblFlush, .-FtlEctTblFlush @@ -8432,85 +8615,106 @@ sftl_vendor_write: .global FtlVendorPartRead .type FtlVendorPartRead, %function FtlVendorPartRead: - stp x29, x30, [sp, -192]! + stp x29, x30, [sp, -208]! add x29, sp, 0 - stp x19, x20, [sp, 16] - adrp x20, .LANCHOR0 - add x20, x20, :lo12:.LANCHOR0 - stp x27, x28, [sp, 80] - stp x21, x22, [sp, 32] - mov w28, w0 - mov w27, w1 stp x23, x24, [sp, 48] - add w1, w0, w1 + mov w23, w0 stp x25, x26, [sp, 64] - ldrh w0, [x20, 100] - cmp w1, w0 - bhi .L1241 - ldrh w3, [x20, 112] - adrp x24, .LANCHOR3 - mov x23, x2 - add x24, x24, :lo12:.LANCHOR3 - mov w22, 0 - lsr w25, w28, w3 -.L1235: - cbnz w27, .L1240 -.L1233: - mov w0, w22 + adrp x24, .LANCHOR0 + mov x26, x2 + add w2, w0, w1 + add x0, x24, :lo12:.LANCHOR0 + stp x21, x22, [sp, 32] + stp x19, x20, [sp, 16] + mov w22, w1 + stp x27, x28, [sp, 80] + ldrh w1, [x0, 100] + cmp w2, w1 + bhi .L1278 + ldrh w21, [x0, 112] + adrp x0, .LANCHOR3 + add x0, x0, :lo12:.LANCHOR3 + mov w25, 0 + sub x0, x0, #112 + str x0, [x29, 104] + lsr w21, w23, w21 +.L1271: + cbnz w22, .L1277 +.L1269: + mov w0, w25 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldp x25, x26, [sp, 64] ldp x27, x28, [sp, 80] - ldp x29, x30, [sp], 192 + ldp x29, x30, [sp], 208 ret -.L1240: - ldrh w19, [x20, 62] - ldr x0, [x24, -232] - udiv w21, w28, w19 - ldr w1, [x0, w25, uxtw 2] - and w0, w27, 65535 - msub w21, w21, w19, w28 - sub w19, w19, w21 +.L1277: + add x28, x24, :lo12:.LANCHOR0 + adrp x0, .LANCHOR3 + add x0, x0, :lo12:.LANCHOR3 + ldrh w19, [x28, 62] + ldr x0, [x0, -224] + udiv w20, w23, w19 + ldr w4, [x0, w21, uxtw 2] + and w0, w22, 65535 + msub w20, w20, w19, w23 + sub w19, w19, w20 and w19, w19, 65535 - cmp w27, w19 + cmp w22, w19 csel w19, w0, w19, cc - lsl w26, w19, 9 - cbz w1, .L1237 - ldr x0, [x20, 4048] + lsl w27, w19, 9 + cbz w4, .L1273 + ldr x0, [x28, 4056] mov w2, 1 - str x0, [x29, 104] - add x0, x29, 128 - str w1, [x29, 100] + str x0, [x29, 120] + add x0, x29, 144 + str w4, [x29, 100] mov w1, w2 - str x0, [x29, 112] - add x0, x29, 96 + str w4, [x29, 116] + str x0, [x29, 128] + add x0, x29, 112 bl FlashReadPages - lsl w21, w21, 9 - ldr w0, [x29, 96] - asr w21, w21, 2 - ldr x1, [x20, 4048] - mov w2, w26 + ldr w0, [x29, 112] + ldr w4, [x29, 100] cmn w0, #1 - mov x0, x23 - csinv w22, w22, wzr, ne - add x1, x1, x21, sxtw 2 + ldr w0, [x28, 3408] + csinv w25, w25, wzr, ne + cmp w0, 256 + bne .L1275 + mov w2, w4 + mov w1, w21 + adrp x0, .LC107 + add x0, x0, :lo12:.LC107 + bl sftl_printk + ldr x2, [x28, 4056] + mov w1, w21 + ldr x0, [x29, 104] + bl FtlMapWritePage +.L1275: + add x0, x24, :lo12:.LANCHOR0 + lsl w20, w20, 9 + asr w20, w20, 2 + mov w2, w27 + ldr x1, [x0, 4056] + mov x0, x26 + add x1, x1, x20, sxtw 2 bl ftl_memcpy -.L1239: - add w25, w25, 1 - sub w27, w27, w19 - add w28, w28, w19 - add x23, x23, x26, sxtw - b .L1235 -.L1237: - mov w2, w26 +.L1276: + add w21, w21, 1 + sub w22, w22, w19 + add w23, w23, w19 + add x26, x26, x27, sxtw + b .L1271 +.L1273: + mov w2, w27 mov w1, 0 - mov x0, x23 + mov x0, x26 bl ftl_memset - b .L1239 -.L1241: - mov w22, -1 - b .L1233 + b .L1276 +.L1278: + mov w25, -1 + b .L1269 .size FtlVendorPartRead, .-FtlVendorPartRead .align 2 .global FtlLoadEctTbl @@ -8522,26 +8726,26 @@ FtlLoadEctTbl: str x19, [sp, 16] adrp x19, .LANCHOR0 add x19, x19, :lo12:.LANCHOR0 - ldrh w1, [x19, 4056] - ldr x2, [x19, 4072] + ldrh w1, [x19, 4064] + ldr x2, [x19, 4080] bl FtlVendorPartRead - ldr x0, [x19, 4072] + ldr x0, [x19, 4080] ldr w1, [x0] mov w0, 17221 movk w0, 0x4254, lsl 16 cmp w1, w0 - beq .L1244 - adrp x1, .LC104 + beq .L1281 + adrp x1, .LC108 adrp x0, .LC71 - add x1, x1, :lo12:.LC104 + add x1, x1, :lo12:.LC108 add x0, x0, :lo12:.LC71 bl sftl_printk - ldr x0, [x19, 4072] + ldr x0, [x19, 4080] mov w1, 0 - ldrh w2, [x19, 4056] + ldrh w2, [x19, 4064] lsl w2, w2, 9 bl ftl_memset -.L1244: +.L1281: mov w0, 0 ldr x19, [sp, 16] ldp x29, x30, [sp], 32 @@ -8566,19 +8770,19 @@ Ftl_load_ext_data: ldr w0, [x20, 2720] movk w21, 0x4654, lsl 16 cmp w0, w21 - beq .L1247 + beq .L1284 mov w2, 512 mov w1, 0 mov x0, x22 bl ftl_memset str w21, [x20, 2720] -.L1247: +.L1284: add x0, x19, :lo12:.LANCHOR0 mov w2, 19539 movk w2, 0x4654, lsl 16 ldr w3, [x0, 2720] cmp w3, w2 - bne .L1248 + bne .L1285 ldr w2, [x0, 2808] str w2, [x0, 2612] ldr w2, [x0, 2812] @@ -8603,7 +8807,7 @@ Ftl_load_ext_data: ldr w2, [x0, 2764] str w1, [x0, 2648] str w2, [x0, 2644] -.L1248: +.L1285: add x0, x19, :lo12:.LANCHOR0 ldr w2, [x0, 2632] ldrh w1, [x0, 96] @@ -8641,14 +8845,14 @@ FtlVpcTblFlush: stp x21, x22, [sp, 32] stp x25, x26, [sp, 64] add x20, x19, 2312 - add x25, x19, 3400 + add x25, x19, 3408 mov w22, 0 - ldr x21, [x19, 3440] + ldr x21, [x19, 3448] mov w24, 65535 - ldr x0, [x19, 3432] + ldr x0, [x19, 3440] ldrh w1, [x19, 2656] - str x0, [x19, 3408] - str x21, [x19, 3416] + str x0, [x19, 3416] + str x21, [x19, 3424] strh w1, [x21, 2] mov w1, -3932 strh w1, [x21] @@ -8658,48 +8862,52 @@ FtlVpcTblFlush: mov w1, 19539 movk w1, 0x4654, lsl 16 str w1, [x19, 2312] - mov w1, 68 + mov w1, 69 ldrb w2, [x19, 2430] movk w1, 0x5000, lsl 16 - str w1, [x19, 2316] + str w1, [x20, 4] ldrh w1, [x19, 2424] - strh w1, [x19, 2326] + strh w1, [x20, 14] ldrh w1, [x19, 2426] ldrh w0, [x19, 2662] - strh w0, [x19, 2320] + strh w0, [x20, 8] ldrh w0, [x19, 58] orr w1, w2, w1, lsl 6 - strb w0, [x19, 2322] - strh w1, [x19, 2328] + strb w0, [x20, 10] + strh w1, [x20, 16] ldrh w1, [x19, 2472] - ldrb w2, [x19, 2478] - strh w1, [x19, 2330] - ldrh w1, [x19, 2474] ldrb w0, [x19, 2432] - strb w0, [x19, 2323] - orr w1, w2, w1, lsl 6 + strh w1, [x20, 18] + ldrb w2, [x19, 2478] + ldrh w1, [x19, 2474] + strb w0, [x20, 11] ldrb w0, [x19, 2480] - strh w1, [x19, 2332] - strb w0, [x19, 2324] - ldrh w1, [x19, 2520] - ldrb w0, [x19, 2528] - ldrb w2, [x19, 2526] - strh w1, [x19, 2334] - strb w0, [x19, 2325] - ldrh w1, [x19, 2522] - ldr w0, [x19, 2628] - str w0, [x19, 2344] - ldr w0, [x19, 2620] + strb w0, [x20, 12] orr w1, w2, w1, lsl 6 - str w0, [x19, 2352] + ldrb w0, [x19, 2528] + strb w0, [x20, 13] + ldr w0, [x19, 2628] + strh w1, [x20, 20] + str w0, [x20, 32] + ldrh w1, [x19, 2520] + ldr w0, [x19, 2620] + strh w1, [x20, 22] + ldrb w2, [x19, 2526] + str w0, [x20, 40] + ldrh w1, [x19, 2522] ldr w0, [x19, 2624] + str w0, [x20, 36] + ldrh w0, [x19, 3320] + orr w1, w2, w1, lsl 6 + strh w0, [x20, 44] + ldrh w0, [x19, 3322] + strh w0, [x20, 46] ldrh w2, [x19, 114] - str w0, [x19, 2348] - ldr x0, [x19, 3408] - strh w1, [x19, 2336] + ldr x0, [x19, 3416] + strh w1, [x20, 24] mov w1, 255 bl ftl_memset - ldr x0, [x19, 3408] + ldr x0, [x19, 3416] mov x1, x20 mov w2, 48 mov x20, x25 @@ -8709,12 +8917,12 @@ FtlVpcTblFlush: bl ftl_memcpy ldr x1, [x19, 2376] ldrh w2, [x19, 44] - ldr x0, [x19, 3408] + ldr x0, [x19, 3416] lsl w2, w2, 1 add x0, x0, 48 bl ftl_memcpy ldrh w0, [x19, 44] - ldr x3, [x19, 3408] + ldr x3, [x19, 3416] ldr x1, [x19, 24] lsr w2, w0, 3 ubfiz x0, x0, 1, 16 @@ -8725,12 +8933,12 @@ FtlVpcTblFlush: bl ftl_memcpy mov w0, 0 bl FtlUpdateVaildLpn -.L1253: - ldr x0, [x19, 3432] +.L1290: + ldr x0, [x19, 3440] mov w3, 1 str x0, [x20, 8] mov w2, w3 - ldr x0, [x19, 3440] + ldr x0, [x19, 3448] ldrh w1, [x19, 2658] str x0, [x20, 16] ldrh w0, [x19, 2656] @@ -8743,7 +8951,7 @@ FtlVpcTblFlush: ldrh w1, [x19, 2658] sub w0, w0, #1 cmp w1, w0 - blt .L1254 + blt .L1291 ldrh w0, [x19, 2656] ldrh w24, [x19, 2660] strh wzr, [x19, 2658] @@ -8763,51 +8971,53 @@ FtlVpcTblFlush: mov x0, x20 mov w1, w3 bl FlashProgPages -.L1254: +.L1291: ldrh w0, [x19, 2658] ldr w1, [x20] add w0, w0, 1 and w0, w0, 65535 strh w0, [x19, 2658] cmn w1, #1 - bne .L1255 + bne .L1292 cmp w0, 1 - bne .L1256 + bne .L1293 adrp x0, .LC1 - mov w2, 1124 + mov w2, 1169 mov x1, x25 add x0, x0, :lo12:.LC1 bl sftl_printk -.L1256: +.L1293: ldrh w0, [x19, 2658] cmp w0, 1 - bne .L1257 + bne .L1294 ldrh w0, [x19, 108] sub w0, w0, #1 strh w0, [x19, 2658] -.L1257: +.L1294: add w22, w22, 1 and w22, w22, 65535 cmp w22, 3 - bls .L1253 + bls .L1290 add x23, x23, :lo12:.LANCHOR0 - adrp x0, .LC105 + adrp x0, .LC109 mov w2, w22 - add x0, x0, :lo12:.LC105 - ldr w1, [x23, 3404] + add x0, x0, :lo12:.LC109 + ldr w1, [x23, 3412] bl sftl_printk -.L1259: - b .L1259 -.L1255: +.L1296: + b .L1296 +.L1292: cmp w0, 1 - beq .L1253 + beq .L1290 + cmp w1, 256 + beq .L1290 mov w0, 65535 cmp w24, w0 - beq .L1260 + beq .L1297 mov w1, 1 mov w0, w24 bl FtlFreeSysBlkQueueIn -.L1260: +.L1297: mov w0, 0 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] @@ -8817,87 +9027,204 @@ FtlVpcTblFlush: ret .size FtlVpcTblFlush, .-FtlVpcTblFlush .align 2 + .global FtlSysFlush + .type FtlSysFlush, %function +FtlSysFlush: + stp x29, x30, [sp, -16]! + add x29, sp, 0 + bl l2p_flush + mov w0, 1 + bl FtlEctTblFlush + bl FtlVpcTblFlush + mov w0, 0 + ldp x29, x30, [sp], 16 + ret + .size FtlSysFlush, .-FtlSysFlush + .align 2 + .global sftl_deinit + .type sftl_deinit, %function +sftl_deinit: + adrp x0, .LANCHOR2 + ldr w0, [x0, #:lo12:.LANCHOR2] + cmp w0, 1 + bne .L1310 + stp x29, x30, [sp, -16]! + add x29, sp, 0 + bl FtlSysFlush + mov w0, 0 + ldp x29, x30, [sp], 16 + ret +.L1310: + mov w0, 0 + ret + .size sftl_deinit, .-sftl_deinit + .align 2 + .global FtlDiscard + .type FtlDiscard, %function +FtlDiscard: + stp x29, x30, [sp, -64]! + add w3, w0, w1 + add x29, sp, 0 + stp x19, x20, [sp, 16] + mov w19, w1 + adrp x20, .LANCHOR0 + add x1, x20, :lo12:.LANCHOR0 + stp x21, x22, [sp, 32] + ldr w2, [x1, 144] + cmp w3, w2 + bhi .L1321 + cmp w19, 31 + bhi .L1315 +.L1329: + mov w0, 0 +.L1313: + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x29, x30, [sp], 64 + ret +.L1315: + ldrh w1, [x1, 62] + udiv w21, w0, w1 + msub w0, w1, w21, w0 + ands w0, w0, 65535 + beq .L1316 + sub w1, w1, w0 + add w21, w21, 1 + cmp w1, w19 + csel w1, w1, w19, ls + sub w19, w19, w1, uxth +.L1316: + adrp x22, .LANCHOR3 + add x20, x20, :lo12:.LANCHOR0 + add x22, x22, :lo12:.LANCHOR3 + mov w0, -1 + str w0, [x29, 60] +.L1317: + ldrh w0, [x20, 62] + cmp w19, w0 + bcs .L1319 + adrp x0, .LANCHOR3 + add x0, x0, :lo12:.LANCHOR3 + ldr w1, [x0, 108] + cmp w1, 32 + bls .L1329 + str wzr, [x0, 108] + bl l2p_flush + bl FtlVpcTblFlush + b .L1329 +.L1319: + mov w2, 0 + add x1, x29, 56 + mov w0, w21 + bl log2phys + ldr w0, [x29, 56] + cmn w0, #1 + beq .L1318 + ldr w0, [x22, 108] + mov w2, 1 + add x1, x29, 60 + add w0, w0, 1 + str w0, [x22, 108] + ldr w0, [x20, 2592] + add w0, w0, 1 + str w0, [x20, 2592] + mov w0, w21 + bl log2phys + ldr w0, [x29, 56] + lsr w0, w0, 10 + bl P2V_block_in_plane + bl decrement_vpc_count +.L1318: + ldrh w0, [x20, 62] + add w21, w21, 1 + sub w19, w19, w0 + b .L1317 +.L1321: + mov w0, -1 + b .L1313 + .size FtlDiscard, .-FtlDiscard + .align 2 .global FtlVpcCheckAndModify .type FtlVpcCheckAndModify, %function FtlVpcCheckAndModify: stp x29, x30, [sp, -80]! adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 - adrp x0, .LC95 + adrp x0, .LC97 add x29, sp, 0 stp x19, x20, [sp, 16] adrp x20, .LANCHOR0 add x19, x20, :lo12:.LANCHOR0 stp x21, x22, [sp, 32] add x1, x1, 552 - add x0, x0, :lo12:.LC95 + add x0, x0, :lo12:.LC97 str x23, [sp, 48] bl sftl_printk - ldr x0, [x19, 4080] + ldr x0, [x19, 4088] mov w21, 0 ldrh w2, [x19, 46] mov w1, 0 lsl w2, w2, 1 bl ftl_memset -.L1266: +.L1331: ldr w0, [x19, 2584] cmp w21, w0 - bcc .L1268 - adrp x22, .LC106 + bcc .L1333 + adrp x22, .LC110 add x20, x20, :lo12:.LANCHOR0 - add x22, x22, :lo12:.LC106 + add x22, x22, :lo12:.LC110 mov w19, 0 mov w23, 65535 -.L1269: +.L1334: ldrh w0, [x20, 44] cmp w0, w19 - bhi .L1273 + bhi .L1338 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldr x23, [sp, 48] ldp x29, x30, [sp], 80 ret -.L1268: +.L1333: mov w2, 0 add x1, x29, 76 mov w0, w21 bl log2phys ldr w0, [x29, 76] cmn w0, #1 - beq .L1267 + beq .L1332 lsr w0, w0, 10 bl P2V_block_in_plane - ldr x2, [x19, 4080] + ldr x2, [x19, 4088] ubfiz x0, x0, 1, 16 ldrh w1, [x2, x0] add w1, w1, 1 strh w1, [x2, x0] -.L1267: +.L1332: add w21, w21, 1 - b .L1266 -.L1273: + b .L1331 +.L1338: ldr x0, [x20, 2376] ubfiz x21, x19, 1, 16 ldrh w2, [x0, x21] - ldr x0, [x20, 4080] + ldr x0, [x20, 4088] ldrh w3, [x0, x21] cmp w2, w3 - beq .L1271 + beq .L1336 cmp w2, w23 - beq .L1271 + beq .L1336 mov x0, x22 mov w1, w19 bl sftl_printk ldrh w0, [x20, 2424] cmp w0, w19 - beq .L1271 + beq .L1336 ldrh w0, [x20, 2520] cmp w0, w19 - beq .L1271 + beq .L1336 ldrh w0, [x20, 2472] cmp w0, w19 - beq .L1271 - ldr x0, [x20, 4080] + beq .L1336 + ldr x0, [x20, 4088] ldrh w1, [x0, x21] ldr x0, [x20, 2376] strh w1, [x0, x21] @@ -8905,10 +9232,10 @@ FtlVpcCheckAndModify: bl update_vpc_list bl l2p_flush bl FtlVpcTblFlush -.L1271: +.L1336: add w19, w19, 1 and w19, w19, 65535 - b .L1269 + b .L1334 .size FtlVpcCheckAndModify, .-FtlVpcCheckAndModify .align 2 .global allocate_new_data_superblock @@ -8924,26 +9251,26 @@ allocate_new_data_superblock: add x0, x19, :lo12:.LANCHOR0 ldrh w0, [x0, 44] cmp w0, w21 - bcs .L1279 + bcs .L1344 adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 adrp x0, .LC1 - mov w2, 2681 + mov w2, 2750 add x1, x1, 576 add x0, x0, :lo12:.LC1 bl sftl_printk -.L1279: +.L1344: mov w0, 65535 cmp w21, w0 - beq .L1280 + beq .L1345 add x1, x19, :lo12:.LANCHOR0 ubfiz x0, x21, 1, 16 ldr x1, [x1, 2376] ldrh w0, [x1, x0] - cbz w0, .L1281 + cbz w0, .L1346 mov w0, w21 bl INSERT_DATA_LIST -.L1280: +.L1345: mov w0, 1 adrp x1, .LANCHOR3 strb w0, [x22, 8] @@ -8952,21 +9279,21 @@ allocate_new_data_superblock: mov x20, x1 ldrh w0, [x0, -48] cmp w0, w2 - beq .L1282 + beq .L1347 cmp w21, w0 - bne .L1283 + bne .L1348 add x19, x19, :lo12:.LANCHOR0 ubfiz x1, x0, 1, 16 ldr x2, [x19, 2376] ldrh w1, [x2, x1] - cbz w1, .L1284 -.L1283: + cbz w1, .L1349 +.L1348: bl update_vpc_list -.L1284: +.L1349: add x1, x20, :lo12:.LANCHOR3 mov w0, -1 strh w0, [x1, -48] -.L1282: +.L1347: mov x0, x22 bl allocate_data_superblock bl l2p_flush @@ -8978,10 +9305,10 @@ allocate_new_data_superblock: ldp x21, x22, [sp, 32] ldp x29, x30, [sp], 48 ret -.L1281: +.L1346: mov w0, w21 bl INSERT_FREE_LIST - b .L1280 + b .L1345 .size allocate_new_data_superblock, .-allocate_new_data_superblock .align 2 .global FtlProgPages @@ -9006,18 +9333,18 @@ FtlProgPages: add x25, x25, :lo12:.LANCHOR1 add x20, x0, 4 bl FlashProgPages -.L1290: +.L1355: cmp x20, x24 - beq .L1297 + beq .L1362 sub x23, x20, #4 - b .L1298 -.L1293: + b .L1363 +.L1358: ldr w0, [x20] lsr w0, w0, 10 bl P2V_block_in_plane ldrh w1, [x19] cmp w1, w0, uxth - bne .L1291 + bne .L1356 ldr x2, [x21, 2376] ubfiz x1, x1, 1, 16 ldrh w3, [x19, 4] @@ -9028,12 +9355,12 @@ FtlProgPages: ldrh w0, [x21, 106] strh w0, [x19, 2] strh wzr, [x19, 4] -.L1291: +.L1356: ldrh w0, [x19, 4] - cbnz w0, .L1292 + cbnz w0, .L1357 mov x0, x19 bl allocate_new_data_superblock -.L1292: +.L1357: ldr w0, [x21, 2816] add w0, w0, 1 str w0, [x21, 2816] @@ -9049,20 +9376,20 @@ FtlProgPages: ldrb w3, [x19, 9] mov x0, x23 bl FlashProgPages -.L1298: +.L1363: ldr w0, [x20, -4] cmn w0, #1 - beq .L1293 + beq .L1358 ldrb w1, [x19, 6] ldrh w0, [x21, 36] cmp w1, w0 - bcc .L1294 + bcc .L1359 adrp x0, .LC1 - mov w2, 933 + mov w2, 936 add x1, x25, 608 add x0, x0, :lo12:.LC1 bl sftl_printk -.L1294: +.L1359: add x1, x29, 96 ldr w0, [x23, 4] mov w2, 1 @@ -9076,35 +9403,35 @@ FtlProgPages: and w1, w0, 65535 mov w23, w1 cmn w4, #1 - beq .L1295 + beq .L1360 ldr x2, [x21, 2376] ubfiz x0, x1, 1, 16 ldrh w0, [x2, x0] - cbnz w0, .L1296 - adrp x0, .LC107 + cbnz w0, .L1361 + adrp x0, .LC111 mov w2, 0 - add x0, x0, :lo12:.LC107 + add x0, x0, :lo12:.LC111 bl sftl_printk -.L1296: +.L1361: mov w0, w23 bl decrement_vpc_count -.L1295: +.L1360: add x20, x20, 32 - b .L1290 -.L1297: + b .L1355 +.L1362: add x22, x22, :lo12:.LANCHOR0 ldrb w1, [x19, 6] ldrh w0, [x22, 36] cmp w1, w0 - bcc .L1289 + bcc .L1354 adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 adrp x0, .LC1 - mov w2, 948 + mov w2, 951 add x1, x1, 608 add x0, x0, :lo12:.LC1 bl sftl_printk -.L1289: +.L1354: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] @@ -9113,148 +9440,6 @@ FtlProgPages: ret .size FtlProgPages, .-FtlProgPages .align 2 - .global FtlCacheWriteBack - .type FtlCacheWriteBack, %function -FtlCacheWriteBack: - stp x29, x30, [sp, -32]! - add x29, sp, 0 - str x19, [sp, 16] - adrp x19, .LANCHOR3 - add x19, x19, :lo12:.LANCHOR3 - ldr x0, [x19, -56] - cbz x0, .L1305 - ldr x3, [x19, 112] - mov w2, 0 - mov w1, 1 - bl FtlProgPages - str xzr, [x19, -56] -.L1305: - mov w0, 0 - ldr x19, [sp, 16] - ldp x29, x30, [sp], 32 - ret - .size FtlCacheWriteBack, .-FtlCacheWriteBack - .align 2 - .global FtlSysFlush - .type FtlSysFlush, %function -FtlSysFlush: - stp x29, x30, [sp, -16]! - add x29, sp, 0 - bl FtlCacheWriteBack - bl l2p_flush - mov w0, 1 - bl FtlEctTblFlush - bl FtlVpcTblFlush - mov w0, 0 - ldp x29, x30, [sp], 16 - ret - .size FtlSysFlush, .-FtlSysFlush - .align 2 - .global sftl_deinit - .type sftl_deinit, %function -sftl_deinit: - adrp x0, .LANCHOR2 - ldr w0, [x0, #:lo12:.LANCHOR2] - cmp w0, 1 - bne .L1315 - stp x29, x30, [sp, -16]! - add x29, sp, 0 - bl FtlSysFlush - mov w0, 0 - ldp x29, x30, [sp], 16 - ret -.L1315: - mov w0, 0 - ret - .size sftl_deinit, .-sftl_deinit - .align 2 - .global FtlDiscard - .type FtlDiscard, %function -FtlDiscard: - stp x29, x30, [sp, -64]! - add x29, sp, 0 - stp x19, x20, [sp, 16] - adrp x20, .LANCHOR0 - stp x21, x22, [sp, 32] - add x22, x20, :lo12:.LANCHOR0 - mov w21, w0 - mov w19, w1 - add w1, w0, w1 - ldr w0, [x22, 144] - cmp w1, w0 - bhi .L1326 - cmp w19, 31 - bhi .L1320 -.L1334: - mov w0, 0 -.L1318: - ldp x19, x20, [sp, 16] - ldp x21, x22, [sp, 32] - ldp x29, x30, [sp], 64 - ret -.L1320: - bl FtlCacheWriteBack - ldrh w1, [x22, 62] - udiv w22, w21, w1 - msub w21, w1, w22, w21 - ands w21, w21, 65535 - beq .L1321 - sub w1, w1, w21 - add w22, w22, 1 - cmp w1, w19 - csel w1, w1, w19, ls - sub w19, w19, w1, uxth -.L1321: - adrp x21, .LANCHOR3 - add x20, x20, :lo12:.LANCHOR0 - add x21, x21, :lo12:.LANCHOR3 - mov w0, -1 - str w0, [x29, 60] -.L1322: - ldrh w0, [x20, 62] - cmp w19, w0 - bcs .L1324 - adrp x0, .LANCHOR3 - add x0, x0, :lo12:.LANCHOR3 - ldr w1, [x0, 120] - cmp w1, 32 - bls .L1334 - str wzr, [x0, 120] - bl l2p_flush - bl FtlVpcTblFlush - b .L1334 -.L1324: - mov w2, 0 - add x1, x29, 56 - mov w0, w22 - bl log2phys - ldr w0, [x29, 56] - cmn w0, #1 - beq .L1323 - ldr w0, [x21, 120] - mov w2, 1 - add x1, x29, 60 - add w0, w0, 1 - str w0, [x21, 120] - ldr w0, [x20, 2592] - add w0, w0, 1 - str w0, [x20, 2592] - mov w0, w22 - bl log2phys - ldr w0, [x29, 56] - lsr w0, w0, 10 - bl P2V_block_in_plane - bl decrement_vpc_count -.L1323: - ldrh w0, [x20, 62] - add w22, w22, 1 - sub w19, w19, w0 - b .L1322 -.L1326: - mov w0, -1 - b .L1318 - .size FtlDiscard, .-FtlDiscard - .align 2 .global FtlGcFreeTempBlock .type FtlGcFreeTempBlock, %function FtlGcFreeTempBlock: @@ -9270,56 +9455,56 @@ FtlGcFreeTempBlock: ldrh w20, [x2, 2520] ldrh w1, [x2, 106] cmp w20, w3 - bne .L1336 -.L1346: - add x20, x19, :lo12:.LANCHOR0 + bne .L1370 +.L1380: adrp x0, .LANCHOR3-40 - add x21, x20, 2520 + mov w2, 65535 str wzr, [x0, #:lo12:.LANCHOR3-40] - mov w0, 65535 - ldrh w1, [x20, 2520] - cmp w1, w0 - bne .L1359 -.L1362: + add x0, x19, :lo12:.LANCHOR0 + add x1, x0, 2520 + ldrh w3, [x0, 2520] + cmp w3, w2 + bne .L1393 +.L1396: mov w0, 0 -.L1335: +.L1369: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldp x25, x26, [sp, 64] ldp x29, x30, [sp], 96 ret -.L1336: - cbz w0, .L1339 +.L1370: + cbz w0, .L1373 adrp x0, .LANCHOR2 add x0, x0, :lo12:.LANCHOR2 ldrh w4, [x0, 4] cmp w4, w3 - beq .L1340 -.L1341: + beq .L1374 +.L1375: mov w1, 2 -.L1339: +.L1373: add x21, x19, :lo12:.LANCHOR0 add x0, x21, 2520 bl FtlGcScanTempBlk str w0, [x29, 92] cmn w0, #1 - beq .L1342 + beq .L1376 ldr x1, [x21, 2384] ubfiz x20, x20, 1, 16 ldrh w0, [x1, x20] cmp w0, 4 - bls .L1343 + bls .L1377 sub w0, w0, #5 strh w0, [x1, x20] mov w0, 1 bl FtlEctTblFlush -.L1343: +.L1377: adrp x0, .LANCHOR3 add x1, x0, :lo12:.LANCHOR3 mov x20, x0 ldr w1, [x1, -40] - cbnz w1, .L1344 + cbnz w1, .L1378 add x19, x19, :lo12:.LANCHOR0 ldr w0, [x19, 2816] add w0, w0, 1 @@ -9328,33 +9513,32 @@ FtlGcFreeTempBlock: lsr w0, w0, 10 bl FtlBbmMapBadBlock bl FtlBbmTblFlush -.L1344: +.L1378: add x0, x20, :lo12:.LANCHOR3 str wzr, [x0, -40] -.L1355: +.L1389: mov w0, 1 - b .L1335 -.L1340: + b .L1369 +.L1374: strh wzr, [x0, 4] ldrh w0, [x2, 2416] cmp w0, 17 - bhi .L1341 - b .L1339 -.L1342: + bhi .L1375 + b .L1373 +.L1376: adrp x0, .LANCHOR2+4 ldrh w1, [x0, #:lo12:.LANCHOR2+4] mov w0, 65535 cmp w1, w0 - bne .L1355 - b .L1346 -.L1359: - bl FtlCacheWriteBack - ldrb w0, [x21, 7] - ldrh w2, [x20, 106] - ldrh w1, [x20, 3304] - mul w0, w0, w2 - cmp w1, w0 - beq .L1347 + bne .L1389 + b .L1380 +.L1393: + ldrh w2, [x0, 3304] + ldrb w1, [x1, 7] + ldrh w0, [x0, 106] + mul w0, w1, w0 + cmp w2, w0 + beq .L1381 adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 adrp x0, .LC1 @@ -9362,7 +9546,7 @@ FtlGcFreeTempBlock: add x1, x1, 624 add x0, x0, :lo12:.LC1 bl sftl_printk -.L1347: +.L1381: add x0, x19, :lo12:.LANCHOR0 adrp x22, .LANCHOR1 add x22, x22, :lo12:.LANCHOR1 @@ -9380,20 +9564,20 @@ FtlGcFreeTempBlock: ldrh w1, [x0, 3304] add w1, w1, w2 str w1, [x0, 2608] -.L1348: +.L1382: add x21, x19, :lo12:.LANCHOR0 ldrh w0, [x21, 3304] cmp w0, w20 - bhi .L1352 + bhi .L1386 mov w0, -1 bl decrement_vpc_count ldrh w0, [x21, 2520] ldr x2, [x21, 2376] ubfiz x1, x0, 1, 16 ldrh w1, [x2, x1] - cbz w1, .L1353 + cbz w1, .L1387 bl INSERT_DATA_LIST -.L1354: +.L1388: add x19, x19, :lo12:.LANCHOR0 mov w20, -1 strh wzr, [x19, 3304] @@ -9405,12 +9589,12 @@ FtlGcFreeTempBlock: ldrh w1, [x19, 2416] add w0, w0, w0, lsl 1 cmp w1, w0, lsr 2 - ble .L1362 + ble .L1396 mov w0, 20 strh w20, [x19, 2672] strh w0, [x19, 3232] - b .L1362 -.L1352: + b .L1396 +.L1386: mov w24, 12 ldr x26, [x21, 3312] ldr w0, [x21, 2584] @@ -9418,12 +9602,12 @@ FtlGcFreeTempBlock: add x23, x26, x24 ldr w1, [x23, 8] cmp w1, w0 - bcc .L1349 + bcc .L1383 mov w2, 168 mov x1, x22 mov x0, x25 bl sftl_printk -.L1349: +.L1383: ldr w0, [x23, 8] add x1, x29, 92 mov w2, 0 @@ -9431,7 +9615,7 @@ FtlGcFreeTempBlock: ldr w0, [x26, x24] ldr w1, [x29, 92] cmp w0, w1 - bne .L1350 + bne .L1384 lsr w0, w0, 10 bl P2V_block_in_plane mov w21, w0 @@ -9440,22 +9624,22 @@ FtlGcFreeTempBlock: add x1, x23, 4 bl log2phys mov w0, w21 -.L1361: +.L1395: bl decrement_vpc_count -.L1351: +.L1385: add w20, w20, 1 and w20, w20, 65535 - b .L1348 -.L1350: + b .L1382 +.L1384: ldr w0, [x23, 4] cmp w1, w0 - beq .L1351 + beq .L1385 add x0, x19, :lo12:.LANCHOR0 ldrh w0, [x0, 2520] - b .L1361 -.L1353: + b .L1395 +.L1387: bl INSERT_FREE_LIST - b .L1354 + b .L1388 .size FtlGcFreeTempBlock, .-FtlGcFreeTempBlock .align 2 .global FtlGcPageRecovery @@ -9473,15 +9657,15 @@ FtlGcPageRecovery: ldrh w1, [x19, 2522] ldrh w0, [x19, 106] cmp w1, w0 - bcc .L1363 + bcc .L1397 adrp x19, .LANCHOR3 add x19, x19, :lo12:.LANCHOR3 - sub x0, x19, #192 + sub x0, x19, #184 bl FtlMapBlkWriteDump_data mov w0, 0 bl FtlGcFreeTempBlock str wzr, [x19, -40] -.L1363: +.L1397: ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 32 ret @@ -9527,28 +9711,28 @@ Ftl_gc_temp_data_write_back: str x19, [sp, 16] add x19, x11, :lo12:.LANCHOR0 ldr w1, [x19, 3248] - ldr x0, [x19, 4024] + ldr x0, [x19, 4032] bl FlashProgPages mov w10, 0 -.L1369: +.L1403: ldr w1, [x19, 3248] cmp w10, w1 - bcc .L1372 - ldr x0, [x19, 4024] + bcc .L1406 + ldr x0, [x19, 4032] bl FtlGcBufFree str wzr, [x19, 3248] ldrh w0, [x19, 2524] - cbnz w0, .L1373 + cbnz w0, .L1407 mov w0, 1 bl FtlGcFreeTempBlock - b .L1375 -.L1372: - ldr x0, [x19, 4024] + b .L1409 +.L1406: + ldr x0, [x19, 4032] ubfiz x1, x10, 5, 16 add x3, x0, x1 ldr w0, [x0, x1] cmn w0, #1 - bne .L1370 + bne .L1404 ldrh w3, [x19, 2520] ldr x2, [x19, 2376] strh wzr, [x2, x3, lsl 1] @@ -9556,30 +9740,30 @@ Ftl_gc_temp_data_write_back: ldr w0, [x19, 2816] add w0, w0, 1 str w0, [x19, 2816] - ldr x0, [x19, 4024] + ldr x0, [x19, 4032] add x0, x0, x1 ldr w0, [x0, 4] lsr w0, w0, 10 bl FtlBbmMapBadBlock bl FtlBbmTblFlush bl FtlGcPageVarInit -.L1375: +.L1409: mov w0, 1 -.L1368: +.L1402: ldr x19, [sp, 16] ldp x29, x30, [sp], 32 ret -.L1370: +.L1404: ldr x0, [x3, 16] ldr w1, [x3, 4] ldp w2, w0, [x0, 8] bl FtlGcUpdatePage add w10, w10, 1 and w10, w10, 65535 - b .L1369 -.L1373: + b .L1403 +.L1407: mov w0, 0 - b .L1368 + b .L1402 .size Ftl_gc_temp_data_write_back, .-Ftl_gc_temp_data_write_back .align 2 .global Ftl_get_new_temp_ppa @@ -9594,11 +9778,10 @@ Ftl_get_new_temp_ppa: ldrh w2, [x0, 2520] mov w0, 65535 cmp w2, w0 - beq .L1377 + beq .L1411 ldrh w0, [x1, 4] - cbnz w0, .L1378 -.L1377: - bl FtlCacheWriteBack + cbnz w0, .L1412 +.L1411: add x20, x19, :lo12:.LANCHOR0 mov w0, 0 bl FtlGcFreeTempBlock @@ -9611,7 +9794,7 @@ Ftl_get_new_temp_ppa: mov w0, 0 bl FtlEctTblFlush bl FtlVpcTblFlush -.L1378: +.L1412: add x0, x19, :lo12:.LANCHOR0 add x0, x0, 2520 bl get_new_active_ppa @@ -9632,24 +9815,24 @@ rk_ftl_garbage_collect: stp x23, x24, [sp, 48] stp x25, x26, [sp, 64] stp x27, x28, [sp, 80] - ldr w2, [x1, 4000] - cbnz w2, .L1452 + ldr w2, [x1, 4008] + cbnz w2, .L1485 ldrh w2, [x1, 2400] cmp w2, 47 - bls .L1452 + bls .L1485 mov w23, w0 adrp x0, .LANCHOR2+4 ldrh w2, [x0, #:lo12:.LANCHOR2+4] mov w0, 65535 cmp w2, w0 - bne .L1382 -.L1385: - add x0, x19, :lo12:.LANCHOR0 + bne .L1416 +.L1419: + add x1, x19, :lo12:.LANCHOR0 mov w2, 65535 - ldrh w1, [x0, 3322] - cmp w1, w2 - bne .L1383 -.L1384: + ldrh w4, [x1, 3322] + cmp w4, w2 + bne .L1417 +.L1418: add x21, x19, :lo12:.LANCHOR0 mov w20, 65535 ldr w1, [x21, 3236] @@ -9658,93 +9841,93 @@ rk_ftl_garbage_collect: add w1, w1, w23, lsl 7 str w1, [x21, 3236] cmp w0, w20 - bne .L1386 + bne .L1420 ldrh w20, [x21, 2520] cmp w20, w0 - bne .L1455 + bne .L1488 ldrh w22, [x21, 3320] cmp w22, w20 - bne .L1386 + bne .L1420 ldrh w0, [x21, 2416] mov w2, 1024 cmp w0, 24 mov w0, 5120 csel w0, w0, w2, cc cmp w1, w0 - bls .L1458 - adrp x0, .LANCHOR3+124 + bls .L1491 + adrp x0, .LANCHOR3+112 str wzr, [x21, 3236] - strh wzr, [x0, #:lo12:.LANCHOR3+124] + strh wzr, [x0, #:lo12:.LANCHOR3+112] bl GetSwlReplaceBlock and w20, w0, 65535 cmp w20, w22 - bne .L1459 + bne .L1492 ldrh w1, [x21, 2416] ldrh w0, [x21, 3234] cmp w1, w0 - bcs .L1389 + bcs .L1423 mov w0, 64 bl List_get_gc_head_node and w0, w0, 65535 cmp w0, w20 - beq .L1391 + beq .L1425 ldr x1, [x21, 2376] ubfiz x0, x0, 1, 16 ldrh w0, [x1, x0] cmp w0, 7 - bhi .L1392 + bhi .L1426 mov w0, 0 bl List_get_gc_head_node and w22, w0, 65535 mov w0, 128 strh w0, [x21, 3234] cmp w22, w20 - bne .L1388 -.L1391: + bne .L1422 +.L1425: bl FtlGcReFreshBadBlk -.L1386: +.L1420: cmp w23, 0 mov w0, 65535 ccmp w20, w0, 0, eq - bne .L1394 + bne .L1428 add x1, x19, :lo12:.LANCHOR0 ldrh w0, [x1, 2416] cmp w0, 24 - bhi .L1460 + bhi .L1493 cmp w0, 16 ldrh w21, [x1, 106] - bls .L1396 + bls .L1430 lsr w21, w21, 5 -.L1395: +.L1429: add x1, x19, :lo12:.LANCHOR0 ldrh w2, [x1, 3232] cmp w2, w0 - bcs .L1399 + bcs .L1433 ldrh w0, [x1, 2520] mov w2, 65535 cmp w0, w2 - bne .L1400 + bne .L1434 ldrh w2, [x1, 3320] cmp w2, w0 - bne .L1400 - adrp x0, .LANCHOR3+124 - ldrh w0, [x0, #:lo12:.LANCHOR3+124] - cbnz w0, .L1401 + bne .L1434 + adrp x0, .LANCHOR3+112 + ldrh w0, [x0, #:lo12:.LANCHOR3+112] + cbnz w0, .L1435 ldr w2, [x1, 2584] ldr w3, [x1, 2580] add w2, w2, w2, lsl 1 cmp w3, w2, lsr 2 - bcs .L1402 -.L1401: + bcs .L1436 +.L1435: add x2, x19, :lo12:.LANCHOR0 ldrh w1, [x2, 2652] add w1, w1, w1, lsl 1 asr w1, w1, 2 strh w1, [x2, 3232] -.L1403: +.L1437: add x19, x19, :lo12:.LANCHOR0 str wzr, [x19, 3244] -.L1380: +.L1414: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] @@ -9752,34 +9935,42 @@ rk_ftl_garbage_collect: ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 128 ret -.L1382: +.L1416: ldrh w1, [x1, 2520] cmp w1, w0 - beq .L1385 + beq .L1419 mov w0, 1 bl FtlGcFreeTempBlock - cbz w0, .L1385 + cbz w0, .L1419 mov w0, 1 - b .L1380 -.L1383: - ldrh w3, [x0, 3320] - cmp w3, w2 - bne .L1384 - strh w1, [x0, 3320] - mov w1, -1 - strh w1, [x0, 3322] - b .L1384 -.L1392: + b .L1414 +.L1417: + ldrh w0, [x1, 3320] + cmp w0, w2 + bne .L1418 + ldrh w3, [x1, 3324] + cmp w3, w0 + beq .L1418 + ldrh w2, [x1, 3326] + cmp w2, w0 + beq .L1418 + mov w0, -1 + strh w4, [x1, 3320] + strh w3, [x1, 3322] + strh w2, [x1, 3324] + strh w0, [x1, 3326] + b .L1418 +.L1426: mov w0, 64 -.L1484: +.L1517: strh w0, [x21, 3234] - b .L1391 -.L1389: + b .L1425 +.L1423: mov w0, 80 - b .L1484 -.L1459: + b .L1517 +.L1492: mov w22, w20 -.L1388: +.L1422: add x0, x19, :lo12:.LANCHOR0 ubfiz x1, x22, 1, 32 mov w20, w22 @@ -9790,75 +9981,75 @@ rk_ftl_garbage_collect: ldrh w3, [x2, x1] mov w1, w22 ldrh w2, [x0, 2416] - adrp x0, .LC108 - add x0, x0, :lo12:.LC108 + adrp x0, .LC112 + add x0, x0, :lo12:.LC112 bl sftl_printk - b .L1391 -.L1455: + b .L1425 +.L1488: mov w20, w0 - b .L1386 -.L1458: + b .L1420 +.L1491: mov w20, w22 - b .L1386 -.L1396: + b .L1420 +.L1430: cmp w0, 12 - bls .L1397 + bls .L1431 lsr w21, w21, 4 - b .L1395 -.L1397: + b .L1429 +.L1431: mov w1, w21 cmp w0, 9 lsr w21, w21, 2 csel w21, w21, w1, cs - b .L1395 -.L1460: + b .L1429 +.L1493: mov w21, 1 - b .L1395 -.L1402: + b .L1429 +.L1436: mov w2, 18 strh w2, [x1, 3232] - b .L1403 -.L1400: + b .L1437 +.L1434: add x1, x19, :lo12:.LANCHOR0 ldrh w0, [x1, 2652] add w0, w0, w0, lsl 1 asr w0, w0, 2 strh w0, [x1, 3232] -.L1399: +.L1433: add x0, x19, :lo12:.LANCHOR0 - ldrh w0, [x0, 3324] - cbz w0, .L1461 + ldrh w0, [x0, 3328] + cbz w0, .L1494 add w21, w21, 32 and w21, w21, 65535 -.L1461: +.L1494: mov w20, 65535 -.L1405: +.L1439: add x0, x19, :lo12:.LANCHOR0 mov w2, 65535 ldrh w1, [x0, 2672] cmp w1, w2 - bne .L1414 + bne .L1448 cmp w20, w1 - beq .L1415 + beq .L1449 strh w20, [x0, 2672] -.L1416: +.L1450: add x5, x19, :lo12:.LANCHOR0 mov w1, 65535 ldrh w0, [x5, 2672] strb wzr, [x5, 2680] cmp w0, w1 - beq .L1414 + beq .L1448 bl IsBlkInGcList - cbz w0, .L1419 + cbz w0, .L1453 mov w0, -1 strh w0, [x5, 2672] -.L1419: +.L1453: add x22, x19, :lo12:.LANCHOR0 mov w0, 65535 add x23, x22, 2672 ldrh w1, [x22, 2672] cmp w1, w0 - beq .L1414 + beq .L1448 mov x0, x23 bl make_superblock adrp x0, .LANCHOR3 @@ -9867,90 +10058,90 @@ rk_ftl_garbage_collect: ldr x1, [x22, 2376] strh wzr, [x22, 2674] strb wzr, [x22, 2678] - strh wzr, [x0, 126] + strh wzr, [x0, 114] ldrh w1, [x1, x2, lsl 1] - strh w1, [x0, 128] -.L1414: + strh w1, [x0, 116] +.L1448: add x0, x19, :lo12:.LANCHOR0 ldrh w1, [x0, 2672] ldrh w2, [x0, 2424] cmp w2, w1 - beq .L1420 + beq .L1454 ldrh w0, [x0, 2472] cmp w0, w1 - beq .L1420 + beq .L1454 adrp x24, .LANCHOR1 add x24, x24, :lo12:.LANCHOR1 add x24, x24, 648 -.L1421: +.L1455: add x22, x19, :lo12:.LANCHOR0 mov w0, 65535 ldrh w23, [x22, 2672] cmp w23, w0 - bne .L1422 + bne .L1456 mov w25, 2 str wzr, [x22, 3244] -.L1423: +.L1457: ldrh w5, [x22, 3240] mov w0, w5 bl List_get_gc_head_node and w6, w0, 65535 strh w6, [x22, 2672] cmp w6, w23 - bne .L1424 + bne .L1458 strh wzr, [x22, 3240] mov w0, 8 - b .L1380 -.L1394: + b .L1414 +.L1428: add x5, x19, :lo12:.LANCHOR0 ldrh w1, [x5, 2520] cmp w1, w0 - bne .L1464 + bne .L1497 ldrh w0, [x5, 3320] cmp w0, w1 - bne .L1464 + bne .L1497 cmp w20, w0 - bne .L1464 + bne .L1497 ldrh w0, [x5, 2672] cmp w0, w20 - beq .L1406 -.L1464: + beq .L1440 +.L1497: mov w21, 1 - b .L1405 -.L1406: + b .L1439 +.L1440: ldrh w7, [x5, 2416] adrp x21, .LANCHOR3 ldrh w0, [x5, 3232] str wzr, [x5, 3244] cmp w0, w7 - bcs .L1407 + bcs .L1441 add x0, x21, :lo12:.LANCHOR3 - ldrh w0, [x0, 124] - cbnz w0, .L1408 + ldrh w0, [x0, 112] + cbnz w0, .L1442 ldr w0, [x5, 2584] ldr w1, [x5, 2580] add w0, w0, w0, lsl 1 cmp w1, w0, lsr 2 - bcs .L1409 -.L1408: + bcs .L1443 +.L1442: add x19, x19, :lo12:.LANCHOR0 ldrh w0, [x19, 2652] add w0, w0, w0, lsl 1 asr w0, w0, 2 strh w0, [x19, 3232] -.L1410: +.L1444: bl FtlReadRefresh -.L1485: +.L1518: add x21, x21, :lo12:.LANCHOR3 - b .L1486 -.L1409: + b .L1519 +.L1443: mov w0, 18 strh w0, [x5, 3232] - b .L1410 -.L1407: + b .L1444 +.L1441: add x21, x21, :lo12:.LANCHOR3 - ldrh w0, [x21, 124] - cbnz w0, .L1464 + ldrh w0, [x21, 112] + cbnz w0, .L1497 ldrh w6, [x5, 2652] add w0, w6, w6, lsl 1 asr w0, w0, 2 @@ -9966,55 +10157,55 @@ rk_ftl_garbage_collect: mov w2, 2 sdiv w0, w0, w2 cmp w1, w0 - ble .L1412 + ble .L1446 sub w6, w6, #1 cmp w7, w6 - blt .L1412 + blt .L1446 bl FtlReadRefresh -.L1486: - ldrh w0, [x21, 124] - b .L1380 -.L1412: - cbnz w1, .L1464 +.L1519: + ldrh w0, [x21, 112] + b .L1414 +.L1446: + cbnz w1, .L1497 add x19, x19, :lo12:.LANCHOR0 mov w0, -1 bl decrement_vpc_count ldrh w0, [x19, 2416] add w0, w0, 1 - b .L1380 -.L1415: + b .L1414 +.L1449: ldrh w1, [x0, 3320] cmp w1, w20 - beq .L1416 + beq .L1450 ldr x2, [x0, 2376] ubfiz x1, x1, 1, 16 ldrh w1, [x2, x1] - cbnz w1, .L1417 + cbnz w1, .L1451 mov w1, -1 strh w1, [x0, 3320] -.L1417: +.L1451: add x0, x19, :lo12:.LANCHOR0 ldrh w1, [x0, 3320] strh w1, [x0, 2672] mov w1, -1 strh w1, [x0, 3320] - b .L1416 -.L1420: + b .L1450 +.L1454: add x19, x19, :lo12:.LANCHOR0 mov w0, -1 strh w0, [x19, 2672] -.L1487: - adrp x0, .LANCHOR3+124 - ldrh w0, [x0, #:lo12:.LANCHOR3+124] - b .L1380 -.L1424: +.L1520: + adrp x0, .LANCHOR3+112 + ldrh w0, [x0, #:lo12:.LANCHOR3+112] + b .L1414 +.L1458: mov w0, w6 bl IsBlkInGcList add w5, w5, 1 - cbz w0, .L1425 + cbz w0, .L1459 strh w5, [x22, 3240] - b .L1423 -.L1425: + b .L1457 +.L1459: ldrh w4, [x22, 36] ubfiz x1, x6, 1, 16 ldrh w0, [x22, 106] @@ -10025,69 +10216,69 @@ rk_ftl_garbage_collect: ldrh w3, [x2, x1] sdiv w4, w0, w25 cmp w3, w4 - bgt .L1427 + bgt .L1461 cmp w5, 48 - bls .L1428 + bls .L1462 cmp w3, 8 - bls .L1428 + bls .L1462 ldrh w3, [x22, 3292] cmp w3, 35 - bhi .L1428 -.L1427: + bhi .L1462 +.L1461: strh wzr, [x22, 3240] -.L1428: +.L1462: ldrh w1, [x2, x1] cmp w0, w1 - bgt .L1429 + bgt .L1463 cmp w20, w23 - bne .L1429 + bne .L1463 add x19, x19, :lo12:.LANCHOR0 mov w0, -1 strh wzr, [x19, 3240] strh w0, [x19, 2672] - b .L1487 -.L1429: - cbnz w1, .L1430 + b .L1520 +.L1463: + cbnz w1, .L1464 mov w0, -1 bl decrement_vpc_count ldrh w0, [x22, 3240] add w0, w0, 1 strh w0, [x22, 3240] - b .L1423 -.L1430: + b .L1457 +.L1464: add x0, x19, :lo12:.LANCHOR0 strb wzr, [x0, 2680] ldrh w0, [x0, 2424] cmp w0, w6 - bne .L1431 + bne .L1465 adrp x0, .LC1 - mov w2, 658 + mov w2, 665 mov x1, x24 add x0, x0, :lo12:.LC1 bl sftl_printk -.L1431: +.L1465: add x0, x19, :lo12:.LANCHOR0 ldrh w1, [x0, 2672] ldrh w0, [x0, 2472] cmp w1, w0 - bne .L1432 + bne .L1466 adrp x0, .LC1 - mov w2, 659 + mov w2, 666 mov x1, x24 add x0, x0, :lo12:.LC1 bl sftl_printk -.L1432: +.L1466: add x0, x19, :lo12:.LANCHOR0 ldrh w1, [x0, 2672] ldrh w0, [x0, 2520] cmp w1, w0 - bne .L1433 + bne .L1467 adrp x0, .LC1 - mov w2, 660 + mov w2, 667 mov x1, x24 add x0, x0, :lo12:.LC1 bl sftl_printk -.L1433: +.L1467: add x23, x19, :lo12:.LANCHOR0 add x22, x23, 2672 mov x0, x22 @@ -10096,28 +10287,28 @@ rk_ftl_garbage_collect: add x0, x0, :lo12:.LANCHOR3 ldrh w2, [x23, 2672] ldr x1, [x23, 2376] - strh wzr, [x0, 126] + strh wzr, [x0, 114] ldrh w1, [x1, x2, lsl 1] - strh w1, [x0, 128] + strh w1, [x0, 116] strh wzr, [x23, 2674] strb wzr, [x23, 2678] -.L1422: +.L1456: bl FtlReadRefresh add x0, x19, :lo12:.LANCHOR0 mov w1, 1 ldrh w26, [x0, 106] - str w1, [x0, 4000] + str w1, [x0, 4008] ldrh w0, [x0, 2674] add w1, w0, w21 cmp w1, w26 - ble .L1434 + ble .L1468 sub w21, w26, w0 and w21, w21, 65535 -.L1434: +.L1468: mov w25, 0 -.L1435: +.L1469: cmp w21, w25, uxth - bls .L1443 + bls .L1477 add x0, x19, :lo12:.LANCHOR0 mov w23, 0 add x3, x0, 2688 @@ -10126,11 +10317,11 @@ rk_ftl_garbage_collect: ldrh w4, [x0, 2674] ldrh w7, [x0, 36] add w4, w4, w25 - b .L1444 -.L1437: + b .L1478 +.L1471: ldrh w2, [x3] cmp w2, w6 - beq .L1436 + beq .L1470 ldr x5, [x0, 3280] ubfiz x8, x23, 5, 16 add w23, w23, 1 @@ -10138,13 +10329,13 @@ rk_ftl_garbage_collect: add x5, x5, x8 and w23, w23, 65535 str w2, [x5, 4] -.L1436: +.L1470: add w1, w1, 1 add x3, x3, 2 and w1, w1, 65535 -.L1444: +.L1478: cmp w1, w7 - bne .L1437 + bne .L1471 add x22, x19, :lo12:.LANCHOR0 mov w1, w23 mov x27, 0 @@ -10153,32 +10344,32 @@ rk_ftl_garbage_collect: bl FlashReadPages ubfiz x0, x23, 5, 16 str x0, [x29, 104] -.L1438: +.L1472: ldr x0, [x29, 104] cmp x27, x0 - bne .L1442 + bne .L1476 add w25, w25, 1 - b .L1435 -.L1442: + b .L1469 +.L1476: ldr x0, [x22, 3280] add x1, x0, x27 ldr w0, [x0, x27] cmn w0, #1 - beq .L1439 + beq .L1473 ldr x23, [x1, 16] mov w0, 61589 ldrh w1, [x23] cmp w1, w0 - bne .L1439 + bne .L1473 ldr w28, [x23, 8] cmn w28, #1 - bne .L1440 + bne .L1474 adrp x0, .LC1 - mov w2, 696 + mov w2, 703 mov x1, x24 add x0, x0, :lo12:.LC1 bl sftl_printk -.L1440: +.L1474: mov w2, 0 add x1, x29, 124 mov w0, w28 @@ -10188,14 +10379,14 @@ rk_ftl_garbage_collect: add x0, x0, x27 ldr w2, [x0, 4] cmp w2, w1 - bne .L1439 + bne .L1473 adrp x28, .LANCHOR3 add x2, x28, :lo12:.LANCHOR3 ldr w0, [x0, 24] - ldrh w1, [x2, 126] + ldrh w1, [x2, 114] add w1, w1, 1 - strh w1, [x2, 126] - ldr x2, [x22, 4024] + strh w1, [x2, 114] + ldr x2, [x22, 4032] ldr w1, [x22, 3248] add x1, x2, x1, lsl 5 str x1, [x29, 96] @@ -10204,7 +10395,7 @@ rk_ftl_garbage_collect: ldr x1, [x29, 96] str w0, [x1, 4] ldr w0, [x22, 3248] - ldr x1, [x22, 4024] + ldr x1, [x22, 4032] add x0, x1, x0, lsl 5 ldr x1, [x22, 3280] add x1, x1, x27 @@ -10228,79 +10419,79 @@ rk_ftl_garbage_collect: ldrb w1, [x22, 2527] ldr w0, [x22, 3248] cmp w1, w0 - beq .L1441 + beq .L1475 ldrh w0, [x22, 2524] - cbnz w0, .L1439 -.L1441: + cbnz w0, .L1473 +.L1475: bl Ftl_gc_temp_data_write_back - cbz w0, .L1439 + cbz w0, .L1473 add x19, x19, :lo12:.LANCHOR0 add x28, x28, :lo12:.LANCHOR3 - str wzr, [x19, 4000] - ldrh w0, [x28, 124] - b .L1380 -.L1439: + str wzr, [x19, 4008] + ldrh w0, [x28, 112] + b .L1414 +.L1473: add x27, x27, 32 - b .L1438 -.L1443: - add x1, x19, :lo12:.LANCHOR0 - ldrh w0, [x1, 2674] + b .L1472 +.L1477: + add x22, x19, :lo12:.LANCHOR0 + ldrh w0, [x22, 2674] add w21, w21, w0 and w21, w21, 65535 - strh w21, [x1, 2674] + strh w21, [x22, 2674] cmp w26, w21 - adrp x21, .LANCHOR3 - bls .L1445 - add x0, x21, :lo12:.LANCHOR3 - ldrh w1, [x0, 126] - ldrh w0, [x0, 128] - cmp w1, w0 - bne .L1446 -.L1445: - add x22, x19, :lo12:.LANCHOR0 + bhi .L1479 ldr w0, [x22, 3248] - cbz w0, .L1447 + adrp x21, .LANCHOR3 + cbz w0, .L1480 bl Ftl_gc_temp_data_write_back - cbz w0, .L1447 - str wzr, [x22, 4000] - b .L1485 -.L1447: - add x0, x21, :lo12:.LANCHOR3 - ldrh w0, [x0, 126] - cbnz w0, .L1448 - add x1, x19, :lo12:.LANCHOR0 - ldrh w0, [x1, 2672] - ldr x2, [x1, 2376] - lsl x0, x0, 1 - ldrh w3, [x2, x0] - cbz w3, .L1448 - strh wzr, [x2, x0] - ldrh w0, [x1, 2672] + cbz w0, .L1480 + str wzr, [x22, 4008] + b .L1518 +.L1480: + add x21, x21, :lo12:.LANCHOR3 + ldrh w0, [x21, 114] + cbnz w0, .L1481 + add x22, x19, :lo12:.LANCHOR0 + ldrh w1, [x22, 2672] + ldr x3, [x22, 2376] + ubfiz x2, x1, 1, 16 + ldrh w4, [x3, x2] + cbz w4, .L1481 + ldrh w5, [x21, 116] + mov w3, 0 + ldrh w2, [x22, 2674] + adrp x0, .LC113 + add x0, x0, :lo12:.LC113 + bl sftl_printk + ldrh w1, [x22, 2672] + ldr x0, [x22, 2376] + strh wzr, [x0, x1, lsl 1] + ldrh w0, [x22, 2672] bl update_vpc_list - bl FtlCacheWriteBack bl l2p_flush bl FtlVpcTblFlush -.L1448: +.L1481: add x0, x19, :lo12:.LANCHOR0 mov w1, -1 strh w1, [x0, 2672] -.L1446: +.L1479: add x1, x19, :lo12:.LANCHOR0 ldrh w0, [x1, 2416] cmp w0, 2 - bhi .L1449 + bhi .L1482 ldrh w21, [x1, 106] - b .L1421 -.L1449: - add x21, x21, :lo12:.LANCHOR3 - str wzr, [x1, 4000] - ldrh w1, [x21, 124] + b .L1455 +.L1482: + str wzr, [x1, 4008] + adrp x1, .LANCHOR3+112 + ldrh w1, [x1, #:lo12:.LANCHOR3+112] cmp w1, 0 csinc w0, w1, w0, ne - b .L1380 -.L1452: + b .L1414 +.L1485: mov w0, 0 - b .L1380 + b .L1414 .size rk_ftl_garbage_collect, .-rk_ftl_garbage_collect .align 2 .global sftl_gc @@ -10318,199 +10509,224 @@ sftl_gc: .global FtlRead .type FtlRead, %function FtlRead: - stp x29, x30, [sp, -160]! + sub sp, sp, #192 and w0, w0, 255 cmp w0, 16 - add x29, sp, 0 - stp x19, x20, [sp, 16] + stp x29, x30, [sp, 16] + add x29, sp, 16 + stp x19, x20, [sp, 32] mov w19, w1 - stp x23, x24, [sp, 48] + stp x23, x24, [sp, 64] mov x23, x3 - stp x27, x28, [sp, 80] + stp x27, x28, [sp, 96] mov w27, w2 - stp x21, x22, [sp, 32] - stp x25, x26, [sp, 64] - bne .L1491 + stp x21, x22, [sp, 48] + stp x25, x26, [sp, 80] + bne .L1524 mov x2, x3 mov w1, w27 add w0, w19, 256 bl FtlVendorPartRead mov w21, w0 -.L1490: +.L1523: mov w0, w21 - ldp x19, x20, [sp, 16] - ldp x21, x22, [sp, 32] - ldp x23, x24, [sp, 48] - ldp x25, x26, [sp, 64] - ldp x27, x28, [sp, 80] - ldp x29, x30, [sp], 160 + ldp x19, x20, [sp, 32] + ldp x21, x22, [sp, 48] + ldp x23, x24, [sp, 64] + ldp x25, x26, [sp, 80] + ldp x27, x28, [sp, 96] + ldp x29, x30, [sp, 16] + add sp, sp, 192 ret -.L1491: +.L1524: add w0, w1, w2 - str w0, [x29, 128] + str w0, [x29, 144] adrp x0, .LANCHOR0 - add x25, x0, :lo12:.LANCHOR0 + add x8, x0, :lo12:.LANCHOR0 add w2, w1, w2 - str x0, [x29, 96] - ldr w1, [x25, 144] + str x0, [x29, 112] + ldr w1, [x8, 144] cmp w2, w1 - bhi .L1511 + bhi .L1545 adrp x0, .LANCHOR2 ldr w21, [x0, #:lo12:.LANCHOR2] cmn w21, #1 - beq .L1490 - bl FtlCacheWriteBack + beq .L1523 + ldrh w0, [x8, 62] + sub w24, w2, #1 + mov x25, x8 mov w28, 0 - ldrh w0, [x25, 62] - add w1, w19, w27 - sub w24, w1, #1 mov w21, 0 - stp wzr, wzr, [x29, 132] - str wzr, [x29, 140] + stp wzr, wzr, [x29, 148] + str wzr, [x29, 156] udiv w26, w19, w0 udiv w24, w24, w0 - ldr w0, [x25, 2588] + ldr w0, [x8, 2588] mov w20, w26 sub w22, w24, w26 add w22, w22, 1 add w0, w0, w22 - str w0, [x25, 2588] -.L1493: - cbnz w22, .L1509 - ldr x0, [x29, 96] + str w0, [x8, 2588] + adrp x0, .LC96 + add x0, x0, :lo12:.LC96 + str x0, [x29, 104] +.L1526: + cbnz w22, .L1543 + ldr x0, [x29, 112] add x0, x0, :lo12:.LANCHOR0 - ldrh w1, [x0, 3324] - cbnz w1, .L1510 + ldrh w1, [x0, 3328] + cbnz w1, .L1544 ldrh w0, [x0, 2416] cmp w0, 31 - bhi .L1490 -.L1510: + bhi .L1523 +.L1544: mov w1, 1 mov w0, 0 bl rk_ftl_garbage_collect - b .L1490 -.L1509: - add x1, x29, 156 + b .L1523 +.L1543: + add x1, x29, 172 mov w2, 0 mov w0, w20 bl log2phys - ldr w1, [x29, 156] + ldr w1, [x29, 172] cmn w1, #1 - bne .L1494 - mov w5, 0 -.L1495: + bne .L1527 + mov w4, 0 +.L1528: ldrh w0, [x25, 62] - cmp w5, w0 - bcc .L1497 -.L1498: + cmp w4, w0 + bcc .L1530 +.L1531: add w20, w20, 1 subs w22, w22, #1 - beq .L1502 + beq .L1535 ldrh w0, [x25, 36] cmp w28, w0, lsl 2 - bne .L1493 -.L1502: - cbz w28, .L1493 - ldr x0, [x25, 4016] + bne .L1526 +.L1535: + cbz w28, .L1526 + ldr x0, [x25, 4024] mov w1, w28 mov w2, 0 bl FlashReadPages - ldr w0, [x29, 132] + ldr w0, [x29, 148] lsl w0, w0, 9 - str w0, [x29, 112] - ldr w0, [x29, 140] + str w0, [x29, 128] + ldr w0, [x29, 156] lsl w0, w0, 9 - str x0, [x29, 120] - ldr w0, [x29, 136] + str x0, [x29, 136] + ldr w0, [x29, 152] lsl w0, w0, 9 - str w0, [x29, 116] + str w0, [x29, 132] ubfiz x0, x28, 5, 32 mov x28, 0 - str x0, [x29, 104] -.L1508: - ldr x0, [x25, 4016] + str x0, [x29, 120] +.L1542: + ldr x0, [x25, 4024] add x0, x0, x28 ldr w1, [x0, 24] cmp w26, w1 - bne .L1504 + bne .L1537 ldr x1, [x0, 8] - ldr x0, [x25, 3992] + ldr x0, [x25, 4000] cmp x1, x0 - bne .L1505 - ldr x0, [x29, 120] - ldr w2, [x29, 116] + bne .L1538 + ldr x0, [x29, 136] + ldr w2, [x29, 132] add x1, x1, x0 mov x0, x23 -.L1521: +.L1555: bl ftl_memcpy -.L1505: - ldr x0, [x25, 4016] +.L1538: + ldr x0, [x25, 4024] + add x0, x0, x28 + ldr x1, [x0, 16] + ldr w2, [x0, 24] + ldr w1, [x1, 8] + cmp w2, w1 + beq .L1539 + ldr w1, [x25, 2792] + add w1, w1, 1 + str w1, [x25, 2792] + ldp x2, x1, [x0, 8] + ldr w3, [x2, 4] + str w3, [sp] + ldp w3, w4, [x1] + ldp w5, w6, [x1, 8] + ldr w7, [x2] + ldr w1, [x0, 24] + ldr w2, [x0, 4] + ldr x0, [x29, 104] + bl sftl_printk +.L1539: + ldr x0, [x25, 4024] add x1, x0, x28 ldr w2, [x0, x28] cmn w2, #1 - bne .L1506 + bne .L1540 ldr w0, [x25, 2792] mov w21, w2 add w0, w0, 1 str w0, [x25, 2792] -.L1506: +.L1540: ldr w0, [x1] cmp w0, 256 - bne .L1507 + bne .L1541 ldr w0, [x1, 4] lsr w0, w0, 10 bl P2V_block_in_plane bl FtlGcRefreshBlock -.L1507: - ldr x0, [x29, 104] +.L1541: + ldr x0, [x29, 120] add x28, x28, 32 cmp x0, x28 - bne .L1508 + bne .L1542 mov w28, 0 - b .L1493 -.L1497: - madd w0, w20, w0, w5 + b .L1526 +.L1530: + madd w0, w20, w0, w4 cmp w19, w0 - bhi .L1496 - ldr w1, [x29, 128] + bhi .L1529 + ldr w1, [x29, 144] cmp w1, w0 - bls .L1496 + bls .L1529 sub w0, w0, w19 - str w5, [x29, 120] + str w4, [x29, 136] lsl w0, w0, 9 mov w2, 512 mov w1, 0 add x0, x23, x0 bl ftl_memset - ldr w5, [x29, 120] -.L1496: - add w5, w5, 1 - b .L1495 -.L1494: - ldr x0, [x25, 4016] + ldr w4, [x29, 136] +.L1529: + add w4, w4, 1 + b .L1528 +.L1527: + ldr x0, [x25, 4024] ubfiz x2, x28, 5, 32 cmp w20, w26 add x0, x0, x2 str w1, [x0, 4] ldrh w0, [x25, 62] - bne .L1499 - ldr x1, [x25, 4016] - ldr x5, [x25, 3992] + bne .L1532 + ldr x1, [x25, 4024] + ldr x4, [x25, 4000] add x1, x1, x2 - str x5, [x1, 8] - udiv w5, w19, w0 - msub w3, w5, w0, w19 - str w3, [x29, 140] - sub w5, w0, w3 - cmp w27, w5 - csel w3, w27, w5, ls - str w3, [x29, 136] + str x4, [x1, 8] + udiv w4, w19, w0 + msub w3, w4, w0, w19 + str w3, [x29, 156] + sub w4, w0, w3 + cmp w27, w4 + csel w3, w27, w4, ls + str w3, [x29, 152] cmp w3, w0 - bne .L1500 + bne .L1533 str x23, [x1, 8] -.L1500: - ldr x0, [x25, 4016] - ldr x1, [x25, 3984] +.L1533: + ldr x0, [x25, 4024] + ldr x1, [x25, 3992] add x2, x0, x2 ldrh w0, [x25, 116] str w20, [x2, 24] @@ -10519,51 +10735,51 @@ FtlRead: and x0, x0, 4294967292 add x0, x1, x0 str x0, [x2, 16] - b .L1498 -.L1499: + b .L1531 +.L1532: cmp w20, w24 - bne .L1501 - ldr x5, [x25, 4016] - ldr x1, [x25, 3976] - add x5, x5, x2 - ldr w3, [x29, 128] - str x1, [x5, 8] + bne .L1534 + ldr x4, [x25, 4024] + ldr x1, [x25, 3984] + add x4, x4, x2 + ldr w3, [x29, 144] + str x1, [x4, 8] mul w1, w20, w0 sub w3, w3, w1 - str w3, [x29, 132] + str w3, [x29, 148] cmp w0, w3 - bne .L1500 + bne .L1533 sub w1, w1, w19 lsl w1, w1, 9 add x1, x23, x1 - str x1, [x5, 8] - b .L1500 -.L1501: - ldr x1, [x25, 4016] + str x1, [x4, 8] + b .L1533 +.L1534: + ldr x1, [x25, 4024] mul w0, w0, w20 add x1, x1, x2 sub w0, w0, w19 lsl w0, w0, 9 add x0, x23, x0 str x0, [x1, 8] - b .L1500 -.L1504: + b .L1533 +.L1537: cmp w24, w1 - bne .L1505 + bne .L1538 ldr x1, [x0, 8] - ldr x0, [x25, 3976] + ldr x0, [x25, 3984] cmp x1, x0 - bne .L1505 + bne .L1538 ldrh w0, [x25, 62] - ldr w2, [x29, 112] + ldr w2, [x29, 128] mul w0, w0, w24 sub w0, w0, w19 lsl w0, w0, 9 add x0, x23, x0 - b .L1521 -.L1511: + b .L1555 +.L1545: mov w21, -1 - b .L1490 + b .L1523 .size FtlRead, .-FtlRead .align 2 .global sftl_read @@ -10588,19 +10804,19 @@ FtlWrite: cmp w0, 16 add x29, sp, 0 stp x23, x24, [sp, 48] - mov w23, w1 - stp x25, x26, [sp, 64] - mov w26, w2 + mov w24, w1 stp x27, x28, [sp, 80] mov x27, x3 stp x19, x20, [sp, 16] stp x21, x22, [sp, 32] - bne .L1525 + stp x25, x26, [sp, 64] + str w2, [x29, 156] + bne .L1559 + add w0, w1, 256 + ldr w1, [x29, 156] mov x2, x3 - mov w1, w26 - add w0, w23, 256 bl FtlVendorPartWrite -.L1524: +.L1558: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] @@ -10608,457 +10824,668 @@ FtlWrite: ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 224 ret -.L1525: - add w3, w1, w2 - adrp x20, .LANCHOR0 - add x2, x20, :lo12:.LANCHOR0 - ldr w0, [x2, 144] - cmp w3, w0 - bhi .L1567 - adrp x1, .LANCHOR2 - str x1, [x29, 136] - ldr w0, [x1, #:lo12:.LANCHOR2] - cmn w0, #1 - beq .L1524 - ldrh w1, [x2, 62] - adrp x4, .LANCHOR3 - sub w3, w3, #1 - add x5, x4, :lo12:.LANCHOR3 - mov w0, 2048 - str x4, [x29, 104] - udiv w22, w23, w1 - str w0, [x5, 132] - udiv w0, w3, w1 - ldr x3, [x5, -56] - sub w24, w0, w22 +.L1559: + ldr w0, [x29, 156] + adrp x19, .LANCHOR0 + add x1, x19, :lo12:.LANCHOR0 + add w0, w24, w0 str w0, [x29, 148] - ldr w0, [x2, 2596] - add w25, w24, 1 + ldr w0, [x1, 144] + ldr w2, [x29, 148] + cmp w2, w0 + bhi .L1594 + adrp x2, .LANCHOR2 + str x2, [x29, 136] + add x3, x2, :lo12:.LANCHOR2 + ldr w0, [x2, #:lo12:.LANCHOR2] + cmn w0, #1 + beq .L1558 + adrp x0, .LANCHOR3+120 + mov w2, 2048 + add x20, x1, 2424 + str w2, [x0, #:lo12:.LANCHOR3+120] + ldr w2, [x29, 148] + ldrh w0, [x1, 62] + sub w2, w2, #1 + udiv w26, w24, w0 + udiv w0, w2, w0 + str w0, [x29, 144] + sub w0, w0, w26 + add w25, w0, 1 + str w0, [x29, 132] + ldr w0, [x1, 2596] add w0, w0, w25 - str w0, [x2, 2596] - cbz x3, .L1527 - ldr w0, [x3, 24] - cmp w22, w0 - beq .L1528 - bl FtlCacheWriteBack -.L1527: - ldr x0, [x29, 136] - add x19, x20, :lo12:.LANCHOR0 - add x0, x0, :lo12:.LANCHOR2 - ldr w0, [x0, 8] - cbz w0, .L1569 - ldrh w1, [x19, 2428] - add x0, x19, 2424 - add x19, x19, 2472 - cmp w1, 0 - csel x19, x19, x0, eq -.L1530: - adrp x0, .LANCHOR1 - mov w21, w22 - add x0, x0, :lo12:.LANCHOR1 - add x0, x0, 672 - str x0, [x29, 160] -.L1531: - cbz w25, .L1565 - add x0, x20, :lo12:.LANCHOR0 - ldrb w1, [x19, 6] + str w0, [x1, 2596] + ldr w0, [x3, 8] + cbz w0, .L1561 + ldrh w0, [x20, 4] + add x1, x1, 2472 + cmp w0, 0 + csel x20, x1, x20, eq +.L1561: + adrp x22, .LANCHOR1 + add x22, x22, :lo12:.LANCHOR1 + mov w21, w26 + add x22, x22, 672 +.L1562: + cbnz w25, .L1590 + ldr w1, [x29, 132] + add x19, x19, :lo12:.LANCHOR0 + mov w0, 0 + bl rk_ftl_garbage_collect + ldrh w0, [x19, 2416] + cmp w0, 15 + bls .L1591 +.L1593: + mov w0, 0 + b .L1558 +.L1590: + add x0, x19, :lo12:.LANCHOR0 + ldrb w1, [x20, 6] ldrh w0, [x0, 36] cmp w1, w0 - bcc .L1532 - ldr x1, [x29, 160] + bcc .L1563 adrp x0, .LC1 - mov w2, 1012 + mov w2, 991 + mov x1, x22 add x0, x0, :lo12:.LC1 bl sftl_printk -.L1532: - ldrh w0, [x19, 4] - cbnz w0, .L1533 - bl FtlCacheWriteBack - add x0, x20, :lo12:.LANCHOR0 +.L1563: + ldrh w0, [x20, 4] + cbnz w0, .L1564 + add x0, x19, :lo12:.LANCHOR0 add x1, x0, 2424 - cmp x19, x1 - bne .L1534 + cmp x20, x1 + bne .L1565 add x0, x0, 2472 ldrh w1, [x0, 4] - cbnz w1, .L1535 + cbnz w1, .L1566 bl allocate_new_data_superblock ldr x0, [x29, 136] add x0, x0, :lo12:.LANCHOR2 str wzr, [x0, 8] -.L1535: - add x19, x20, :lo12:.LANCHOR0 - add x24, x19, 2424 - add x19, x19, 2472 - mov x0, x24 +.L1566: + add x20, x19, :lo12:.LANCHOR0 + add x23, x20, 2424 + add x20, x20, 2472 + mov x0, x23 bl allocate_new_data_superblock ldr x0, [x29, 136] add x0, x0, :lo12:.LANCHOR2 ldr w0, [x0, 8] cmp w0, 0 - csel x19, x19, x24, ne -.L1536: - ldrh w0, [x19, 4] - cbnz w0, .L1533 - mov x0, x19 + csel x20, x20, x23, ne +.L1567: + ldrh w0, [x20, 4] + cbnz w0, .L1564 + mov x0, x20 bl allocate_new_data_superblock -.L1533: - ldrh w0, [x19, 4] - ldrb w1, [x19, 7] +.L1564: + ldrh w0, [x20, 4] + ldrb w1, [x20, 7] cmp w0, w25 csel w0, w0, w25, ls lsl w1, w1, 2 - cmp w0, w1 - csel w0, w0, w1, ls - str w0, [x29, 132] - add x0, x20, :lo12:.LANCHOR0 - ldrb w1, [x19, 6] + cmp w1, w0 + csel w0, w1, w0, ls + str w0, [x29, 128] + add x0, x19, :lo12:.LANCHOR0 + ldrb w1, [x20, 6] ldrh w0, [x0, 36] cmp w1, w0 - bcc .L1537 - ldr x1, [x29, 160] + bcc .L1568 adrp x0, .LC1 - mov w2, 1045 + mov w2, 1024 + mov x1, x22 add x0, x0, :lo12:.LC1 bl sftl_printk -.L1537: +.L1568: str xzr, [x29, 168] -.L1538: - ldr w1, [x29, 132] - ldr w28, [x29, 168] - cmp w28, w1 - bcc .L1559 - mov x28, x1 -.L1539: - ldr x0, [x29, 104] - add x0, x0, :lo12:.LANCHOR3 - ldr x0, [x0, -56] - cbz x0, .L1560 - sub w25, w25, #1 - subs w28, w28, #1 - bne .L1560 -.L1565: - ldr w0, [x29, 148] - add x20, x20, :lo12:.LANCHOR0 - sub w1, w0, w22 - mov w0, 0 - bl rk_ftl_garbage_collect - ldrh w0, [x20, 2416] - cmp w0, 15 - bhi .L1562 - mov w21, 65535 - mov w19, 128 -.L1585: - ldrh w0, [x20, 2672] - cmp w0, w21 - bne .L1566 - ldrh w0, [x20, 3320] - cmp w0, w21 - bne .L1566 - mov w0, 0 - bl List_get_gc_head_node - bl FtlGcRefreshBlock -.L1566: - mov w1, 1 - strh w19, [x20, 3234] - mov w0, w1 - strh w19, [x20, 3232] - bl rk_ftl_garbage_collect - mov w1, 1 - mov w0, 0 - bl rk_ftl_garbage_collect - ldrh w0, [x20, 2416] - cmp w0, 8 - bls .L1585 - b .L1562 -.L1528: - ldr w0, [x2, 2600] - ldr x3, [x3, 8] - add w0, w0, 1 - str w0, [x2, 2600] - msub w0, w22, w1, w23 - sub w1, w1, w0 - cmp w26, w1 - lsl w0, w0, 9 - csel w19, w26, w1, ls - add x0, x3, x0 - lsl w21, w19, 9 - mov x1, x27 - mov w2, w21 - bl ftl_memcpy - cbnz w24, .L1529 -.L1562: - mov w0, 0 - b .L1524 -.L1529: - sub w26, w26, w19 - add w23, w23, w19 - add x27, x27, x21 - add w22, w22, 1 - bl FtlCacheWriteBack - mov w25, w24 - b .L1527 .L1569: - add x19, x19, 2424 - b .L1530 -.L1534: + ldr w1, [x29, 128] + ldr w23, [x29, 168] + cmp w23, w1 + bcc .L1588 + mov x23, x1 +.L1570: + add x0, x19, :lo12:.LANCHOR0 + mov x3, x20 + mov w2, 0 + mov w1, w23 + ldr x0, [x0, 4040] + bl FtlProgPages + cmp w25, w23 + bcs .L1589 + adrp x0, .LC1 + mov w2, 1101 + mov x1, x22 + add x0, x0, :lo12:.LC1 + bl sftl_printk +.L1589: + sub w25, w25, w23 + b .L1562 +.L1565: ldr x0, [x29, 136] add x0, x0, :lo12:.LANCHOR2 str wzr, [x0, 8] ldrh w0, [x1, 4] - cbnz w0, .L1572 - mov x0, x19 + cbnz w0, .L1599 + mov x0, x20 bl allocate_new_data_superblock - b .L1536 -.L1572: - mov x19, x1 - b .L1533 -.L1559: - ldrh w0, [x19, 4] - cbz w0, .L1539 + b .L1567 +.L1599: + mov x20, x1 + b .L1564 +.L1588: + ldrh w0, [x20, 4] + cbz w0, .L1570 add x1, x29, 188 mov w2, 0 mov w0, w21 bl log2phys - mov x0, x19 + mov x0, x20 bl get_new_active_ppa - add x3, x20, :lo12:.LANCHOR0 + add x4, x19, :lo12:.LANCHOR0 ldr x1, [x29, 168] - str x3, [x29, 152] - lsl x24, x1, 5 - ldr x1, [x3, 4032] - ldrh w2, [x3, 116] - add x1, x1, x24 + str x4, [x29, 160] + lsl x28, x1, 5 + ldr x1, [x4, 4040] + ldrh w2, [x4, 116] + add x1, x1, x28 str w0, [x1, 4] - mul w28, w28, w2 - ldr x0, [x3, 4032] - and x1, x28, 4294967292 + mul w23, w23, w2 + ldr x0, [x4, 4040] + and x1, x23, 4294967292 str x1, [x29, 120] - add x0, x0, x24 - ldr x1, [x3, 3984] + add x0, x0, x28 + ldr x1, [x4, 3992] ldr x3, [x29, 120] str x1, [x29, 112] - add x28, x1, x3 + add x23, x1, x3 str w21, [x0, 24] - str x28, [x0, 16] + str x23, [x0, 16] mov w1, 0 - mov x0, x28 + mov x0, x23 bl ftl_memset - ldr w0, [x29, 148] - cmp w21, w22 - ldr x3, [x29, 152] + ldr w0, [x29, 144] + cmp w21, w26 + ldr x4, [x29, 160] ccmp w21, w0, 4, ne - bne .L1540 - cmp w21, w22 - bne .L1541 - ldrh w2, [x3, 62] - udiv w0, w23, w2 - msub w0, w0, w2, w23 - str w0, [x29, 144] - sub w2, w2, w0 - cmp w2, w26 - csel w0, w2, w26, ls + bne .L1571 + cmp w21, w26 + bne .L1572 + ldrh w2, [x4, 62] + udiv w0, w24, w2 + msub w0, w0, w2, w24 str w0, [x29, 152] -.L1542: - add x0, x20, :lo12:.LANCHOR0 - ldr w2, [x29, 152] + sub w2, w2, w0 + ldr w0, [x29, 156] + cmp w2, w0 + csel w0, w2, w0, ls + str w0, [x29, 160] +.L1573: + add x0, x19, :lo12:.LANCHOR0 + ldr w2, [x29, 160] ldrh w1, [x0, 62] cmp w2, w1 - bne .L1543 - ldr x0, [x0, 4032] - cmp w21, w22 - add x24, x0, x24 - bne .L1544 - str x27, [x24, 8] -.L1545: - add x0, x20, :lo12:.LANCHOR0 - ldrb w1, [x19, 6] + bne .L1574 + ldr x0, [x0, 4040] + cmp w21, w26 + add x3, x0, x28 + bne .L1575 + str x27, [x3, 8] +.L1576: + add x0, x19, :lo12:.LANCHOR0 + ldrb w1, [x20, 6] ldrh w0, [x0, 36] cmp w1, w0 - bcc .L1556 - ldr x1, [x29, 160] + bcc .L1585 adrp x0, .LC1 - mov w2, 1119 + mov w2, 1092 + mov x1, x22 add x0, x0, :lo12:.LC1 bl sftl_printk -.L1556: +.L1585: ldp x1, x2, [x29, 112] mov w0, -3947 strh w0, [x1, x2] - add x1, x20, :lo12:.LANCHOR0 + add x1, x19, :lo12:.LANCHOR0 ldr w0, [x1, 2624] - stp w0, w21, [x28, 4] + stp w0, w21, [x23, 4] add w21, w21, 1 add w0, w0, 1 cmn w0, #1 csel w0, w0, wzr, ne str w0, [x1, 2624] ldr w0, [x29, 188] - str w0, [x28, 12] - ldrh w0, [x19] - strh w0, [x28, 2] + str w0, [x23, 12] + ldrh w0, [x20] + strh w0, [x23, 2] ldr x0, [x29, 168] add x0, x0, 1 str x0, [x29, 168] - b .L1538 -.L1541: - ldrh w0, [x3, 62] - add w2, w23, w26 - str wzr, [x29, 144] - msub w2, w21, w0, w2 + b .L1569 +.L1572: + ldr w0, [x29, 148] + ldrh w2, [x4, 62] + str wzr, [x29, 152] + msub w2, w21, w2, w0 and w0, w2, 65535 - str w0, [x29, 152] - b .L1542 -.L1544: - ldr w0, [x29, 152] -.L1588: + str w0, [x29, 160] + b .L1573 +.L1575: + ldr w0, [x29, 160] +.L1606: mul w0, w0, w21 - sub w0, w0, w23 + sub w0, w0, w24 lsl w0, w0, 9 add x0, x27, x0 - str x0, [x24, 8] - b .L1545 -.L1543: - ldr x1, [x0, 4032] - cmp w21, w22 - add x1, x1, x24 - bne .L1546 - ldr x0, [x0, 3992] -.L1587: + str x0, [x3, 8] + b .L1576 +.L1574: + ldr x1, [x0, 4040] + cmp w21, w26 + add x1, x1, x28 + bne .L1577 + ldr x0, [x0, 4000] +.L1605: str x0, [x1, 8] ldr w0, [x29, 188] cmn w0, #1 - beq .L1548 - add x3, x20, :lo12:.LANCHOR0 + beq .L1579 + add x4, x19, :lo12:.LANCHOR0 str w0, [x29, 196] str w21, [x29, 216] mov w2, 0 - str x3, [x29, 96] - ldr x0, [x3, 4032] - add x0, x0, x24 + str x4, [x29, 104] + ldr x0, [x4, 4040] + add x0, x0, x28 ldp x1, x0, [x0, 8] stp x1, x0, [x29, 200] mov w1, 1 add x0, x29, 192 bl FlashReadPages ldr w0, [x29, 192] - ldr x3, [x29, 96] + ldr x4, [x29, 104] cmn w0, #1 - bne .L1549 - ldr w0, [x3, 2792] + bne .L1580 + ldr w0, [x4, 2792] add w0, w0, 1 - str w0, [x3, 2792] -.L1552: - ldr w0, [x29, 152] - cmp w21, w22 + str w0, [x4, 2792] +.L1583: + ldr w0, [x29, 160] + cmp w21, w26 lsl w2, w0, 9 - add x0, x20, :lo12:.LANCHOR0 - bne .L1553 - ldr x1, [x0, 4032] - ldr w0, [x29, 144] - add x1, x1, x24 - lsl w0, w0, 9 - ldr x3, [x1, 8] + add x0, x19, :lo12:.LANCHOR0 + bne .L1584 + ldr x0, [x0, 4040] mov x1, x27 + add x3, x0, x28 + ldr w0, [x29, 152] + ldr x3, [x3, 8] + lsl w0, w0, 9 add x0, x3, x0 +.L1607: bl ftl_memcpy - ldr w0, [x29, 148] + b .L1576 +.L1577: + ldr x0, [x0, 3984] + b .L1605 +.L1580: + ldr w0, [x23, 8] cmp w21, w0 - bne .L1545 -.L1554: - ldrh w0, [x19, 4] - cbz w0, .L1545 - ldr x0, [x29, 104] - add x1, x0, :lo12:.LANCHOR3 - add x0, x20, :lo12:.LANCHOR0 - ldr x0, [x0, 4032] - str x19, [x1, 112] - add x24, x0, x24 - str x24, [x1, -56] - b .L1545 -.L1546: - ldr x0, [x0, 3976] - b .L1587 -.L1549: - ldr w0, [x28, 8] - cmp w21, w0 - beq .L1551 - ldr w0, [x3, 2792] + beq .L1582 + ldr w0, [x4, 2792] mov w2, w21 add w0, w0, 1 - str w0, [x3, 2792] - adrp x0, .LC109 - add x0, x0, :lo12:.LC109 - ldr w1, [x28, 8] + str w0, [x4, 2792] + adrp x0, .LC114 + add x0, x0, :lo12:.LC114 + ldr w1, [x23, 8] bl sftl_printk -.L1551: - ldr w0, [x28, 8] +.L1582: + ldr w0, [x23, 8] cmp w21, w0 - beq .L1552 - ldr x1, [x29, 160] - mov w2, 1098 + beq .L1583 + mov w2, 1077 + mov x1, x22 adrp x0, .LC1 add x0, x0, :lo12:.LC1 bl sftl_printk - b .L1552 -.L1548: - add x1, x20, :lo12:.LANCHOR0 - ldr x0, [x1, 4032] + b .L1583 +.L1579: + add x1, x19, :lo12:.LANCHOR0 + ldr x0, [x1, 4040] ldrh w2, [x1, 114] mov w1, 0 - add x0, x0, x24 + add x0, x0, x28 ldr x0, [x0, 8] bl ftl_memset - b .L1552 -.L1553: + b .L1583 +.L1584: ldrh w1, [x0, 62] - ldr x0, [x0, 4032] - add x0, x0, x24 + ldr x0, [x0, 4040] + add x3, x0, x28 mul w1, w1, w21 - ldr x0, [x0, 8] - sub w1, w1, w23 + sub w1, w1, w24 + ldr x0, [x3, 8] lsl w1, w1, 9 add x1, x27, x1 - bl ftl_memcpy - b .L1554 -.L1540: - ldr x0, [x3, 4032] - add x24, x0, x24 - ldrh w0, [x3, 62] - b .L1588 -.L1560: - add x0, x20, :lo12:.LANCHOR0 - mov x3, x19 - mov w2, 0 - mov w1, w28 - ldr x0, [x0, 4032] - bl FtlProgPages - cmp w25, w28 - bcs .L1563 - ldr x1, [x29, 160] - adrp x0, .LC1 - mov w2, 1134 - add x0, x0, :lo12:.LC1 - bl sftl_printk -.L1563: - sub w25, w25, w28 - b .L1531 -.L1567: + b .L1607 +.L1571: + ldr x0, [x4, 4040] + add x3, x0, x28 + ldrh w0, [x4, 62] + b .L1606 +.L1591: + mov w21, 65535 + mov w20, 128 +.L1603: + ldrh w0, [x19, 2672] + cmp w0, w21 + bne .L1592 + ldrh w0, [x19, 3320] + cmp w0, w21 + bne .L1592 + mov w0, 0 + bl List_get_gc_head_node + bl FtlGcRefreshBlock +.L1592: + mov w1, 1 + strh w20, [x19, 3234] + mov w0, w1 + strh w20, [x19, 3232] + bl rk_ftl_garbage_collect + mov w1, 1 + mov w0, 0 + bl rk_ftl_garbage_collect + ldrh w0, [x19, 2416] + cmp w0, 8 + bls .L1603 + b .L1593 +.L1594: mov w0, -1 - b .L1524 + b .L1558 .size FtlWrite, .-FtlWrite .align 2 .global sftl_write .type sftl_write, %function sftl_write: - stp x29, x30, [sp, -16]! - mov x3, x2 - mov w2, w1 - mov w1, w0 + stp x29, x30, [sp, -224]! + add w4, w0, w1 + sub w5, w4, #1 add x29, sp, 0 + stp x21, x22, [sp, 32] + cmp w5, 63 + stp x23, x24, [sp, 48] + mov w22, w0 + stp x25, x26, [sp, 64] + mov w24, w1 + stp x19, x20, [sp, 16] + mov x25, x2 + stp x27, x28, [sp, 80] + bls .L1609 + cmp w0, 576 + bls .L1610 +.L1609: + adrp x0, .LANCHOR3 + add x0, x0, :lo12:.LANCHOR3 + ldr w0, [x0, 124] + cbz w0, .L1611 + adrp x20, .LANCHOR0 + add x0, x20, :lo12:.LANCHOR0 + mov w23, 512 + adrp x1, idb_buf + mov x5, -49148 + add x3, x1, :lo12:idb_buf + ldrh w26, [x0, 14] + mov x2, 0 + ldrh w0, [x0, 10] + mov x8, 262140 + and w21, w26, 255 + mov w6, 4097 + movk x5, 0xfffc, lsl 16 + mul w21, w21, w0 + mov w0, 0 + and w21, w21, 65535 + udiv w23, w23, w21 +.L1615: + add x4, x2, x8 + ldr w7, [x4, x3] + cbz w7, .L1612 +.L1616: + mul w0, w21, w23 + add x20, x20, :lo12:.LANCHOR0 + stp w0, wzr, [x29, 152] + mov w19, 0 + add x0, x1, :lo12:idb_buf + mov w27, 0 + str x0, [x29, 136] +.L1613: + adrp x5, gp_flash_check_buf + mov x2, 512 + add x0, x5, :lo12:gp_flash_check_buf + str x5, [x29, 104] + mov w1, 0 + bl memset + ldrh w3, [x20, 14] + add x4, x20, 3376 + ldrh w2, [x20, 10] + mov w0, 0 + and w28, w3, 255 + ldr x6, [x20, 3384] + str x4, [x29, 112] + udiv w1, w19, w3 + stp w3, w28, [x29, 124] + mul w2, w28, w2 + and w2, w2, 65535 + str w2, [x29, 144] + blr x6 + ldp x5, x4, [x29, 104] + ldr w2, [x29, 144] + str x5, [x29, 144] + ldr w3, [x29, 124] + cmp w2, 511 + bhi .L1617 + add w1, w2, w19 + ldr x4, [x4, 8] + str w2, [x29, 124] + mov w0, 0 + udiv w1, w1, w3 + blr x4 + ldr w2, [x29, 124] +.L1617: + udiv w5, w19, w2 + mov w4, 0 + mov w7, 61424 + msub w5, w5, w2, w19 + sub w6, w19, w5 +.L1618: + cmp w4, 511 + bls .L1619 + ldrh w4, [x20, 14] + mov w5, 0 + ldrh w0, [x20, 10] + and w28, w4, 255 + mov w4, w28 + mul w0, w28, w0 + and w0, w0, 65535 + udiv w6, w19, w0 + msub w6, w6, w0, w19 + and w1, w6, 65535 + sub w7, w19, w6 + sdiv w0, w1, w28 + msub w0, w0, w28, w1 + ldr x1, [x29, 144] + and w0, w0, 65535 + add x9, x1, :lo12:gp_flash_check_buf +.L1620: + cmp w5, 511 + bhi .L1624 + add w1, w6, w5 + sub w8, w4, w0 + add w0, w0, w7 + ldr x10, [x20, 3400] + and w8, w8, 65535 + ubfiz x2, x5, 9, 16 + udiv w1, w1, w28 + add x2, x9, x2 + stp w4, w5, [x29, 100] + add x3, x29, 160 + str w6, [x29, 112] + stp w8, w7, [x29, 120] + and w1, w1, 65535 + str x9, [x29, 128] + madd w1, w1, w28, w0 + mov w0, 0 + udiv w1, w1, w28 + blr x10 + cmn w0, #1 + ldp w4, w5, [x29, 100] + ldr w6, [x29, 112] + ldp w8, w7, [x29, 120] + ldr x9, [x29, 128] + bne .L1621 +.L1624: + ldr x0, [x29, 144] + mov x28, 0 + add x5, x0, :lo12:gp_flash_check_buf +.L1622: + ldr x1, [x29, 136] + lsl x0, x28, 2 + ldr w3, [x0, x1] + ldr w0, [x0, x5] + cmp w0, w3 + beq .L1625 + mov x2, 512 + mov w1, 0 + mov x0, x5 + stp w28, w3, [x29, 124] + str x5, [x29, 144] + bl memset + ldp w6, w3, [x29, 124] + mov w4, w28 + ldr x5, [x29, 144] + mov w1, w19 + adrp x0, .LC115 + add x0, x0, :lo12:.LC115 + ldr w2, [x5, w6, uxtw 2] + bl sftl_printk + udiv w1, w19, w26 + ldr x2, [x20, 3384] + mov w0, 0 + blr x2 + cmp w23, 1 + bls .L1626 + add w1, w21, w19 + ldr x2, [x20, 3384] + mov w0, 0 + udiv w1, w1, w26 + blr x2 +.L1626: + ldr w0, [x29, 152] + add w27, w27, w23 + cmp w27, 15 + add w19, w19, w0 + bls .L1613 +.L1631: + adrp x0, .LANCHOR3 + add x0, x0, :lo12:.LANCHOR3 + str wzr, [x0, 124] +.L1611: + mov x3, x25 + mov w2, w24 + mov w1, w22 mov w0, 0 bl FtlWrite - ldp x29, x30, [sp], 16 + ldp x19, x20, [sp, 16] + ldp x21, x22, [sp, 32] + ldp x23, x24, [sp, 48] + ldp x25, x26, [sp, 64] + ldp x27, x28, [sp, 80] + ldp x29, x30, [sp], 224 ret +.L1612: + ldr w7, [x3, w0, uxtw 2] + add w0, w0, 1 + str w7, [x4, x3] + cmp w0, w6 + sub x2, x2, #4 + csel w0, w0, wzr, cc + cmp x2, x5 + bne .L1615 + b .L1616 +.L1619: + add w0, w5, w4 + ubfiz x2, x4, 9, 16 + str w4, [x29, 112] + add x3, x29, 160 + ldr x4, [x29, 136] + udiv w0, w0, w28 + ldr x8, [x20, 3392] + str w7, [x29, 104] + add x2, x4, x2 + stp w5, w6, [x29, 120] + and w0, w0, 65535 + mul w1, w0, w28 + stp w1, w7, [x29, 160] + udiv w1, w6, w28 + add w1, w1, w0 + mov w0, 0 + blr x8 + ldr w4, [x29, 112] + ldr w0, [x29, 128] + ldr w7, [x29, 104] + add w4, w0, w4 + ldp w5, w6, [x29, 120] + and w4, w4, 65535 + b .L1618 +.L1621: + add w5, w8, w5 + mov w0, 0 + and w5, w5, 65535 + b .L1620 +.L1625: + add x28, x28, 1 + cmp x28, 65536 + bne .L1622 + ldr w0, [x29, 156] + add w0, w0, 1 + str w0, [x29, 156] + cmp w0, 5 + bls .L1626 + b .L1631 +.L1610: + cmp w0, 63 + adrp x3, idb_buf + bhi .L1628 + mov w1, 64 + sub w1, w1, w0 + sub w2, w24, w1 + ubfiz x1, x1, 9, 25 + add x1, x25, x1 + add x0, x3, :lo12:idb_buf +.L1629: + adrp x3, .LANCHOR3 + add x3, x3, :lo12:.LANCHOR3 + mov w6, 1 + cmp w5, 576 + str w6, [x3, 124] + bls .L1630 + sub w2, w2, w4 + sub w2, w2, #447 +.L1630: + lsl w2, w2, 9 + bl memcpy + b .L1611 +.L1628: + lsl w0, w0, 7 + add x3, x3, :lo12:idb_buf + sub w0, w0, #8192 + mov x1, x2 + add x0, x3, x0, lsl 2 + mov w2, w24 + b .L1629 .size sftl_write, .-sftl_write .align 2 .global FtlLoadSysInfo @@ -11071,11 +11498,11 @@ FtlLoadSysInfo: adrp x20, .LANCHOR0 add x19, x20, :lo12:.LANCHOR0 stp x21, x22, [sp, 32] - add x21, x19, 3400 + add x21, x19, 3408 stp x23, x24, [sp, 48] - ldr x0, [x19, 3432] - str x0, [x21, 8] ldr x0, [x19, 3440] + str x0, [x21, 8] + ldr x0, [x19, 3448] str x0, [x21, 16] ldr x0, [x19, 2376] ldrh w2, [x19, 44] @@ -11084,16 +11511,16 @@ FtlLoadSysInfo: ldrh w0, [x19, 2656] mov w1, 65535 cmp w0, w1 - bne .L1592 -.L1600: + bne .L1642 +.L1650: mov w0, -1 -.L1591: +.L1641: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] ldp x29, x30, [sp], 64 ret -.L1592: +.L1642: add x23, x19, 2656 mov w1, 1 bl FtlGetLastWrittenPage @@ -11103,44 +11530,44 @@ FtlLoadSysInfo: strh w0, [x23, 2] mov w23, 19539 movk w23, 0x4654, lsl 16 -.L1594: - tbz w22, #31, .L1597 +.L1644: + tbz w22, #31, .L1647 adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 adrp x0, .LC1 - mov w2, 1437 + mov w2, 1482 add x1, x1, 688 add x0, x0, :lo12:.LC1 bl sftl_printk -.L1596: +.L1646: add x1, x20, :lo12:.LANCHOR0 ldrh w0, [x1, 44] ldrh w1, [x1, 114] add x0, x0, 24 cmp x1, x0, lsl 1 - bcs .L1599 + bcs .L1649 adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 adrp x0, .LC1 - mov w2, 1439 + mov w2, 1484 add x1, x1, 688 add x0, x0, :lo12:.LC1 bl sftl_printk -.L1599: +.L1649: add x19, x20, :lo12:.LANCHOR0 mov w2, 48 add x21, x19, 2312 mov x0, x21 - ldr x1, [x19, 3408] + ldr x1, [x19, 3416] bl ftl_memcpy ldr x0, [x19, 2376] ldrh w2, [x19, 44] - ldr x1, [x19, 3408] + ldr x1, [x19, 3416] lsl w2, w2, 1 add x1, x1, 48 bl ftl_memcpy ldrh w1, [x19, 44] - ldr x0, [x19, 3408] + ldr x0, [x19, 3416] lsr w2, w1, 3 ubfiz x1, x1, 1, 16 add x1, x1, 48 @@ -11153,17 +11580,17 @@ FtlLoadSysInfo: mov w0, 19539 movk w0, 0x4654, lsl 16 cmp w1, w0 - bne .L1600 + bne .L1650 ldrh w1, [x19, 2320] ldrb w2, [x19, 2322] ldrh w0, [x19, 58] strh w1, [x19, 2662] cmp w2, w0 - bne .L1600 - adrp x0, .LANCHOR3+136 + bne .L1650 + adrp x0, .LANCHOR3+128 ldrh w2, [x19, 62] ldrh w3, [x19, 36] - str w1, [x0, #:lo12:.LANCHOR3+136] + str w1, [x0, #:lo12:.LANCHOR3+128] ldrh w0, [x19, 106] mul w0, w0, w1 str w0, [x19, 2584] @@ -11176,15 +11603,15 @@ FtlLoadSysInfo: sub w0, w0, w1 udiv w0, w0, w3 strh w0, [x19, 2652] - bls .L1601 + bls .L1651 adrp x1, .LANCHOR1 add x1, x1, :lo12:.LANCHOR1 adrp x0, .LC1 - mov w2, 1461 + mov w2, 1506 add x1, x1, 688 add x0, x0, :lo12:.LC1 bl sftl_printk -.L1601: +.L1651: add x0, x20, :lo12:.LANCHOR0 mov w3, -1 ldrh w2, [x0, 2328] @@ -11230,74 +11657,74 @@ FtlLoadSysInfo: ldr w2, [x0, 2620] str wzr, [x0, 2600] cmp w1, w2 - bls .L1602 + bls .L1652 str w1, [x0, 2620] -.L1602: +.L1652: add x0, x20, :lo12:.LANCHOR0 ldr w1, [x0, 2348] ldr w2, [x0, 2624] cmp w1, w2 - bls .L1603 + bls .L1653 str w1, [x0, 2624] -.L1603: +.L1653: mov w0, 65535 cmp w4, w0 - beq .L1604 + beq .L1654 add x0, x20, :lo12:.LANCHOR0 add x0, x0, 2424 bl make_superblock -.L1604: +.L1654: add x1, x20, :lo12:.LANCHOR0 add x0, x1, 2472 ldrh w2, [x1, 2472] mov w1, 65535 cmp w2, w1 - beq .L1605 + beq .L1655 bl make_superblock -.L1605: +.L1655: add x1, x20, :lo12:.LANCHOR0 add x0, x1, 2520 ldrh w2, [x1, 2520] mov w1, 65535 cmp w2, w1 - beq .L1606 + beq .L1656 bl make_superblock -.L1606: +.L1656: add x20, x20, :lo12:.LANCHOR0 mov w1, 65535 add x0, x20, 2672 ldrh w2, [x20, 2672] cmp w2, w1 - beq .L1607 + beq .L1657 bl make_superblock -.L1607: +.L1657: mov w0, 0 - b .L1591 -.L1597: + b .L1641 +.L1647: ldrh w0, [x19, 2656] mov w2, 1 mov w1, w2 orr w0, w22, w0, lsl 10 str w0, [x21, 4] - ldr x0, [x19, 3432] + ldr x0, [x19, 3440] str x0, [x21, 8] mov x0, x21 bl FlashReadPages ldr w0, [x21] cmn w0, #1 - beq .L1595 - ldr x0, [x19, 3432] + beq .L1645 + ldr x0, [x19, 3440] ldr w0, [x0] cmp w0, w23 - bne .L1595 - ldr x0, [x19, 3440] + bne .L1645 + ldr x0, [x19, 3448] ldrh w0, [x0] cmp w0, w24 - beq .L1596 -.L1595: + beq .L1646 +.L1645: sub w22, w22, #1 sxth w22, w22 - b .L1594 + b .L1644 .size FtlLoadSysInfo, .-FtlLoadSysInfo .align 2 .global FtlSysBlkInit @@ -11306,33 +11733,33 @@ FtlSysBlkInit: stp x29, x30, [sp, -64]! add x29, sp, 0 stp x19, x20, [sp, 16] - adrp x20, .LANCHOR0 + adrp x19, .LANCHOR0 stp x21, x22, [sp, 32] - add x19, x20, :lo12:.LANCHOR0 + add x20, x19, :lo12:.LANCHOR0 adrp x21, .LANCHOR3 add x0, x21, :lo12:.LANCHOR3 - stp x23, x24, [sp, 48] + str x23, [sp, 48] strh wzr, [x0, -32] - ldrh w0, [x19, 40] + ldrh w0, [x20, 40] bl FtlFreeSysBlkQueueInit bl FtlScanSysBlk - ldrh w1, [x19, 2656] + ldrh w1, [x20, 2656] mov w0, 65535 cmp w1, w0 - bne .L1614 -.L1616: - mov w24, -1 -.L1613: - mov w0, w24 + bne .L1664 +.L1666: + mov w22, -1 +.L1663: + mov w0, w22 + ldr x23, [sp, 48] ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] - ldp x23, x24, [sp, 48] ldp x29, x30, [sp], 64 ret -.L1614: +.L1664: bl FtlLoadSysInfo - mov w24, w0 - cbnz w0, .L1616 + mov w22, w0 + cbnz w0, .L1666 bl FtlLoadMapInfo bl FtlLoadVonderInfo bl Ftl_load_ext_data @@ -11342,97 +11769,138 @@ FtlSysBlkInit: bl FtlPowerLostRecovery mov w0, 1 bl FtlUpdateVaildLpn - ldr x1, [x19, 2568] + ldr x1, [x20, 2568] mov w0, 0 - ldrh w3, [x19, 142] + ldrh w3, [x20, 142] add x1, x1, 4 -.L1617: +.L1667: cmp w0, w3 - bge .L1622 + bge .L1672 ldr w2, [x1], 16 - tbz w2, #31, .L1618 -.L1622: - add x1, x20, :lo12:.LANCHOR0 + tbz w2, #31, .L1668 +.L1672: + add x1, x19, :lo12:.LANCHOR0 cmp w0, w3 ldrh w2, [x1, 2340] add w2, w2, 1 strh w2, [x1, 2340] - bge .L1628 -.L1619: - add x19, x20, :lo12:.LANCHOR0 + bge .L1686 +.L1669: + add x20, x19, :lo12:.LANCHOR0 add x21, x21, :lo12:.LANCHOR3 - add x23, x19, 2424 - add x22, x19, 2472 - mov x0, x23 - bl FtlSuperblockPowerLostFix - mov x0, x22 - bl FtlSuperblockPowerLostFix - ldrh w0, [x19, 2424] - ldr x2, [x19, 2376] - ldrh w3, [x19, 2428] - lsl x0, x0, 1 - ldrh w1, [x2, x0] - sub w1, w1, w3 - strh w1, [x2, x0] - strb wzr, [x19, 2430] - ldrh w0, [x19, 106] - strh w0, [x19, 2426] - ldrh w0, [x19, 2472] - ldr x2, [x19, 2376] - strh wzr, [x19, 2428] - lsl x0, x0, 1 - ldrh w3, [x19, 2476] - ldrh w1, [x2, x0] - sub w1, w1, w3 - strh w1, [x2, x0] - strb wzr, [x19, 2478] - ldrh w0, [x19, 106] - strh w0, [x19, 2474] - sub x0, x21, #192 - strh wzr, [x19, 2476] + sub x0, x21, #184 + ldrh w1, [x20, 2424] + ldr x3, [x20, 2376] + ldrh w4, [x20, 2428] + lsl x1, x1, 1 + ldrh w2, [x3, x1] + sub w2, w2, w4 + strh w2, [x3, x1] + strb wzr, [x20, 2430] + ldrh w1, [x20, 106] + strh w1, [x20, 2426] + ldrh w1, [x20, 2472] + ldr x3, [x20, 2376] + strh wzr, [x20, 2428] + lsl x1, x1, 1 + ldrh w4, [x20, 2476] + ldrh w2, [x3, x1] + sub w2, w2, w4 + strh w2, [x3, x1] + strb wzr, [x20, 2478] + ldrh w1, [x20, 106] + strh w1, [x20, 2474] + strh wzr, [x20, 2476] bl FtlMapBlkWriteDump_data - sub x0, x21, #120 + sub x0, x21, #112 bl FtlMapBlkWriteDump_data - ldrh w0, [x19, 2342] + ldrh w0, [x20, 2342] add w0, w0, 1 - strh w0, [x19, 2342] + strh w0, [x20, 2342] bl l2p_flush bl FtlVpcTblFlush bl FtlVpcTblFlush - b .L1623 -.L1618: + b .L1673 +.L1668: add w0, w0, 1 - b .L1617 -.L1628: + b .L1667 +.L1686: add x0, x21, :lo12:.LANCHOR3 ldrh w0, [x0, -32] - cbnz w0, .L1619 -.L1623: - add x19, x20, :lo12:.LANCHOR0 + cbnz w0, .L1669 +.L1673: + add x7, x19, :lo12:.LANCHOR0 + mov w0, 65533 + ldrh w6, [x7, 2356] + sub w1, w6, #1 + cmp w0, w1, uxth + bcc .L1675 + strh w6, [x7, 3320] + mov w1, w6 + add x0, x7, 2408 + bl test_node_in_list + cbnz w0, .L1676 + ldrh w0, [x7, 44] + cmp w0, w6 + bls .L1676 + ldr x0, [x7, 2376] + ubfiz x6, x6, 1, 16 + ldrh w0, [x0, x6] + cbnz w0, .L1675 +.L1676: + add x0, x19, :lo12:.LANCHOR0 + mov w1, -1 + strh w1, [x0, 3320] +.L1675: + add x7, x19, :lo12:.LANCHOR0 + mov w0, 65533 + ldrh w6, [x7, 2358] + sub w1, w6, #1 + cmp w0, w1, uxth + bcc .L1679 + strh w6, [x7, 3322] + mov w1, w6 + add x0, x7, 2408 + bl test_node_in_list + cbnz w0, .L1680 + ldrh w0, [x7, 44] + cmp w0, w6 + bls .L1680 + ldr x0, [x7, 2376] + ubfiz x6, x6, 1, 16 + ldrh w0, [x0, x6] + cbnz w0, .L1679 +.L1680: + add x0, x19, :lo12:.LANCHOR0 + mov w1, -1 + strh w1, [x0, 3322] +.L1679: + add x20, x19, :lo12:.LANCHOR0 mov w1, 65535 - add x22, x19, 2424 - ldrh w0, [x19, 2424] + add x23, x20, 2424 + ldrh w0, [x20, 2424] cmp w0, w1 - beq .L1624 - ldrh w1, [x19, 2428] - cbnz w1, .L1624 - ldrh w1, [x19, 2476] - add x21, x19, 2472 - cbnz w1, .L1624 + beq .L1682 + ldrh w1, [x20, 2428] + cbnz w1, .L1682 + ldrh w1, [x20, 2476] + add x21, x20, 2472 + cbnz w1, .L1682 bl FtlGcRefreshBlock - ldrh w0, [x19, 2472] + ldrh w0, [x20, 2472] bl FtlGcRefreshBlock - mov x0, x22 + bl FtlVpcTblFlush + mov x0, x23 bl allocate_new_data_superblock mov x0, x21 bl allocate_new_data_superblock -.L1624: - add x20, x20, :lo12:.LANCHOR0 - ldrh w0, [x20, 2340] +.L1682: + add x19, x19, :lo12:.LANCHOR0 + ldrh w0, [x19, 2340] tst x0, 31 - bne .L1613 + bne .L1663 bl FtlVpcCheckAndModify - b .L1613 + b .L1663 .size FtlSysBlkInit, .-FtlSysBlkInit .align 2 .global ftl_low_format @@ -11450,40 +11918,40 @@ ftl_low_format: ldrh w0, [x0, 40] bl FtlFreeSysBlkQueueInit bl FtlLoadBbt - cbz w0, .L1631 + cbz w0, .L1689 bl FtlMakeBbt -.L1631: +.L1689: mov w4, 23752 add x1, x20, :lo12:.LANCHOR0 mov w0, 0 movk w4, 0xa0f, lsl 16 -.L1632: +.L1690: ldrh w2, [x1, 62] cmp w0, w2, lsl 7 - blt .L1633 + blt .L1691 ldrh w21, [x1, 44] add x22, x20, :lo12:.LANCHOR0 mov w19, 0 -.L1634: +.L1692: ldrh w0, [x22, 46] cmp w0, w21 - bhi .L1635 + bhi .L1693 ldrh w0, [x22, 36] sub w1, w19, #3 cmp w1, w0, lsl 1 - bge .L1636 -.L1640: + bge .L1694 +.L1698: add x19, x20, :lo12:.LANCHOR0 mov w21, 0 mov w22, 0 -.L1637: +.L1695: ldrh w0, [x19, 44] cmp w0, w22 - bhi .L1641 + bhi .L1699 ldrh w2, [x19, 36] ldr w1, [x19, 48] ldrh w0, [x19, 46] - str w0, [x19, 3968] + str w0, [x19, 3976] udiv w4, w1, w2 ubfx x3, x4, 5, 16 str w4, [x19, 2584] @@ -11492,28 +11960,28 @@ ftl_low_format: mov w0, 24 mul w0, w2, w0 cmp w21, w0 - ble .L1642 + ble .L1700 sub w1, w1, w21 udiv w1, w1, w2 str w1, [x19, 2584] lsr w1, w1, 5 add w1, w1, 24 strh w1, [x19, 2652] -.L1642: +.L1700: add x0, x20, :lo12:.LANCHOR0 ldrh w1, [x0, 98] - cbz w1, .L1644 + cbz w1, .L1702 ldrh w5, [x0, 2652] add w5, w5, w1, lsr 1 strh w5, [x0, 2652] mul w5, w1, w2 cmp w21, w5 - bge .L1644 + bge .L1702 add w1, w1, 32 str w4, [x0, 2584] add w1, w3, w1 strh w1, [x0, 2652] -.L1644: +.L1702: add x19, x20, :lo12:.LANCHOR0 adrp x22, .LANCHOR3 add x21, x19, 2424 @@ -11523,7 +11991,7 @@ ftl_low_format: sub w0, w0, w1 add x1, x22, :lo12:.LANCHOR3 mul w0, w0, w2 - str w0, [x1, 136] + str w0, [x1, 128] ldrh w1, [x19, 106] mul w0, w1, w0 ldrh w1, [x19, 62] @@ -11551,31 +12019,31 @@ ftl_low_format: strh wzr, [x19, 2424] str wzr, [x19, 2580] bl ftl_memset -.L1646: +.L1704: mov x0, x21 bl make_superblock ldrb w1, [x21, 7] ldrh w0, [x21] - cbnz w1, .L1647 + cbnz w1, .L1705 ldr x1, [x19, 2376] ubfiz x0, x0, 1, 16 strh w23, [x1, x0] ldrh w0, [x21] add w0, w0, 1 strh w0, [x21] - b .L1646 -.L1633: - ldr x5, [x1, 3992] + b .L1704 +.L1691: + ldr x5, [x1, 4000] ubfiz x3, x0, 2, 16 mvn w2, w0 orr w2, w0, w2, lsl 16 add w0, w0, 1 and w0, w0, 65535 str w2, [x5, x3] - ldr x2, [x1, 3976] + ldr x2, [x1, 3984] str w4, [x2, x3] - b .L1632 -.L1635: + b .L1690 +.L1693: mov w0, w21 mov w1, 1 add w21, w21, 1 @@ -11583,8 +12051,8 @@ ftl_low_format: add w19, w19, w0 and w21, w21, 65535 and w19, w19, 65535 - b .L1634 -.L1636: + b .L1692 +.L1694: udiv w0, w19, w0 ldr w19, [x22, 136] add x21, x20, :lo12:.LANCHOR0 @@ -11593,17 +12061,17 @@ ftl_low_format: ldrh w0, [x22, 40] bl FtlFreeSysBlkQueueInit ldrh w19, [x22, 44] -.L1638: +.L1696: ldrh w0, [x21, 46] cmp w0, w19 - bls .L1640 + bls .L1698 mov w0, w19 add w19, w19, 1 mov w1, 1 and w19, w19, 65535 bl FtlLowFormatEraseBlock - b .L1638 -.L1641: + b .L1696 +.L1699: mov w0, w22 mov w1, 0 add w22, w22, 1 @@ -11611,8 +12079,8 @@ ftl_low_format: add w21, w21, w0 and w22, w22, 65535 and w21, w21, 65535 - b .L1637 -.L1647: + b .L1695 +.L1705: ldr w1, [x19, 2620] ubfiz x0, x0, 1, 16 str w1, [x21, 12] @@ -11632,20 +12100,20 @@ ftl_low_format: strb w1, [x19, 2480] add x19, x20, :lo12:.LANCHOR0 mov x20, x0 -.L1648: +.L1706: mov x0, x20 bl make_superblock ldrb w1, [x20, 7] ldrh w0, [x20] - cbnz w1, .L1649 + cbnz w1, .L1707 ldr x1, [x19, 2376] ubfiz x0, x0, 1, 16 strh w21, [x1, x0] ldrh w0, [x20] add w0, w0, 1 strh w0, [x20] - b .L1648 -.L1649: + b .L1706 +.L1707: ldr w1, [x19, 2620] ubfiz x0, x0, 1, 16 str w1, [x20, 12] @@ -11659,7 +12127,7 @@ ftl_low_format: strh w20, [x19, 2520] bl FtlFreeSysBlkQueueOut strh w0, [x19, 2656] - ldr w0, [x22, 136] + ldr w0, [x22, 128] strh w0, [x19, 2662] ldr w0, [x19, 2620] str w0, [x19, 2664] @@ -11669,11 +12137,11 @@ ftl_low_format: str w0, [x19, 2620] bl FtlVpcTblFlush bl FtlSysBlkInit - cbnz w0, .L1650 + cbnz w0, .L1708 adrp x0, .LANCHOR2 mov w1, 1 str w1, [x0, #:lo12:.LANCHOR2] -.L1650: +.L1708: mov w0, 0 ldr x23, [sp, 48] ldp x19, x20, [sp, 16] @@ -11705,22 +12173,22 @@ sftl_init: ldrh w0, [x19, 40] bl FtlFreeSysBlkQueueInit bl FtlLoadBbt - cbnz w0, .L1659 + cbnz w0, .L1717 bl FtlSysBlkInit - cbnz w0, .L1659 + cbnz w0, .L1717 mov w0, 1 str w0, [x20, #:lo12:.LANCHOR2] ldrh w0, [x19, 2416] cmp w0, 15 - bhi .L1659 + bhi .L1717 mov w19, 8129 -.L1658: +.L1716: mov w1, 1 mov w0, 0 bl rk_ftl_garbage_collect subs w19, w19, #1 - bne .L1658 -.L1659: + bne .L1716 +.L1717: mov w0, 0 ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 32 @@ -11743,12 +12211,12 @@ ftl_memcmp: rk_sftl_vendor_dev_ops_register: adrp x2, .LANCHOR3 add x2, x2, :lo12:.LANCHOR3 - ldr x3, [x2, 144] - cbnz x3, .L1666 - stp x0, x1, [x2, 144] + ldr x3, [x2, 136] + cbnz x3, .L1724 + stp x0, x1, [x2, 136] mov w0, 0 ret -.L1666: +.L1724: mov w0, -1 ret .size rk_sftl_vendor_dev_ops_register, .-rk_sftl_vendor_dev_ops_register @@ -11766,55 +12234,55 @@ rk_sftl_vendor_storage_init: stp x23, x24, [sp, 48] stp x25, x26, [sp, 64] bl ftl_malloc - str x0, [x22, 160] - cbz x0, .L1673 + str x0, [x22, 152] + cbz x0, .L1731 mov w26, 22084 mov w25, 0 mov w24, 0 mov w23, 0 movk w26, 0x524b, lsl 16 -.L1671: - ldr x3, [x22, 144] +.L1729: + ldr x3, [x22, 136] mov w1, 128 - ldr x2, [x22, 160] + ldr x2, [x22, 152] lsl w0, w23, 7 blr x3 mov w21, w0 - cbnz w0, .L1669 - ldr x19, [x22, 160] + cbnz w0, .L1727 + ldr x19, [x22, 152] ldr w0, [x19] cmp w0, w26 - bne .L1670 + bne .L1728 add x0, x19, 61440 ldr w1, [x19, 4] ldr w0, [x0, 4092] cmp w0, w1 - bne .L1670 + bne .L1728 cmp w0, w24 - bls .L1670 + bls .L1728 mov w25, w23 mov w24, w0 -.L1670: +.L1728: add w23, w23, 1 cmp w23, 2 - bne .L1671 - cbz w24, .L1672 + bne .L1729 + cbz w24, .L1730 add x0, x20, :lo12:.LANCHOR3 mov x2, x19 mov w1, 128 - ldr x3, [x0, 144] + ldr x3, [x0, 136] lsl w0, w25, 7 blr x3 mov w21, w0 - cbz w0, .L1667 -.L1669: + cbz w0, .L1725 +.L1727: add x20, x20, :lo12:.LANCHOR3 mov w21, -1 - ldr x0, [x20, 160] + ldr x0, [x20, 152] bl kfree - str xzr, [x20, 160] - b .L1667 -.L1672: + str xzr, [x20, 152] + b .L1725 +.L1730: mov w1, 0 mov x2, 65536 mov x0, x19 @@ -11827,7 +12295,7 @@ rk_sftl_vendor_storage_init: str w0, [x1, 4092] mov w0, -1032 strh w0, [x19, 14] -.L1667: +.L1725: mov w0, w21 ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] @@ -11835,30 +12303,30 @@ rk_sftl_vendor_storage_init: ldp x25, x26, [sp, 64] ldp x29, x30, [sp], 80 ret -.L1673: +.L1731: mov w21, -12 - b .L1667 + b .L1725 .size rk_sftl_vendor_storage_init, .-rk_sftl_vendor_storage_init .align 2 .global rk_sftl_vendor_read .type rk_sftl_vendor_read, %function rk_sftl_vendor_read: - adrp x3, .LANCHOR3+160 - ldr x4, [x3, #:lo12:.LANCHOR3+160] - cbz x4, .L1681 + adrp x3, .LANCHOR3+152 + ldr x4, [x3, #:lo12:.LANCHOR3+152] + cbz x4, .L1739 ldrh w6, [x4, 10] add x5, x4, 16 mov w3, 0 -.L1678: +.L1736: cmp w3, w6 - bcc .L1680 -.L1681: + bcc .L1738 +.L1739: mov w0, -1 ret -.L1680: +.L1738: ldrh w7, [x5], 8 cmp w7, w0 - bne .L1679 + bne .L1737 stp x29, x30, [sp, -32]! add x3, x4, x3, uxtw 3 mov x0, x1 @@ -11876,9 +12344,9 @@ rk_sftl_vendor_read: ldr x19, [sp, 16] ldp x29, x30, [sp], 32 ret -.L1679: +.L1737: add w3, w3, 1 - b .L1678 + b .L1736 .size rk_sftl_vendor_read, .-rk_sftl_vendor_read .align 2 .global rk_sftl_vendor_write @@ -11893,8 +12361,8 @@ rk_sftl_vendor_write: stp x21, x22, [sp, 32] stp x25, x26, [sp, 64] stp x27, x28, [sp, 80] - ldr x19, [x3, 160] - cbz x19, .L1701 + ldr x19, [x3, 152] + cbz x19, .L1759 add w21, w2, 63 ldrh w3, [x19, 10] ldrh w24, [x19, 8] @@ -11903,12 +12371,12 @@ rk_sftl_vendor_write: and w21, w21, -64 add x1, x19, 16 mov w20, 0 -.L1688: +.L1746: cmp w20, w3 - bcc .L1696 + bcc .L1754 ldrh w1, [x19, 14] cmp w21, w1 - bhi .L1701 + bhi .L1759 add x3, x19, x3, uxth 3 and w21, w21, 65535 uxtw x2, w28 @@ -11928,11 +12396,11 @@ rk_sftl_vendor_write: ldrh w0, [x19, 10] add w0, w0, 1 strh w0, [x19, 10] - b .L1703 -.L1696: + b .L1761 +.L1754: ldrh w6, [x1], 8 cmp w6, w0 - bne .L1689 + bne .L1747 uxtw x27, w20 add x5, x19, 1024 add x22, x19, x27, lsl 3 @@ -11940,17 +12408,17 @@ rk_sftl_vendor_write: add w25, w25, 63 and w25, w25, -64 cmp w28, w25 - bls .L1690 + bls .L1748 ldrh w0, [x19, 14] cmp w21, w0 - bhi .L1701 + bhi .L1759 add x27, x27, 2 ldrh w22, [x22, 18] add x27, x19, x27, lsl 3 sub w26, w3, #1 -.L1691: +.L1749: cmp w20, w26 - bcc .L1692 + bcc .L1750 add x20, x19, x20, uxtw 3 and w22, w22, 65535 add x0, x5, x22, uxth @@ -11967,7 +12435,7 @@ rk_sftl_vendor_write: sub w21, w0, w21 add w25, w21, w25 strh w25, [x19, 14] -.L1703: +.L1761: ldr w0, [x19, 4] add x1, x19, 61440 add x23, x23, :lo12:.LANCHOR3 @@ -11976,7 +12444,7 @@ rk_sftl_vendor_write: str w0, [x19, 4] str w0, [x1, 4092] mov w1, 128 - ldr x3, [x23, 152] + ldr x3, [x23, 144] ldrh w0, [x19, 8] add w0, w0, 1 and w0, w0, 65535 @@ -11986,7 +12454,7 @@ rk_sftl_vendor_write: lsl w0, w24, 7 blr x3 mov w0, 0 -.L1686: +.L1744: ldp x19, x20, [sp, 16] ldp x21, x22, [sp, 32] ldp x23, x24, [sp, 48] @@ -11994,7 +12462,7 @@ rk_sftl_vendor_write: ldp x27, x28, [sp, 80] ldp x29, x30, [sp], 128 ret -.L1692: +.L1750: add w20, w20, 1 str x4, [x29, 104] add x0, x19, x20, uxtw 3 @@ -12018,21 +12486,21 @@ rk_sftl_vendor_write: ldr x4, [x29, 104] add w22, w22, w3 ldr x5, [x29, 120] - b .L1691 -.L1690: + b .L1749 +.L1748: ldrh w0, [x22, 18] uxtw x2, w28 mov x1, x4 add x0, x5, x0 bl memcpy strh w28, [x22, 20] - b .L1703 -.L1689: + b .L1761 +.L1747: add w20, w20, 1 - b .L1688 -.L1701: + b .L1746 +.L1759: mov w0, -1 - b .L1686 + b .L1744 .size rk_sftl_vendor_write, .-rk_sftl_vendor_write .align 2 .global rk_sftl_vendor_storage_ioctl @@ -12046,19 +12514,19 @@ rk_sftl_vendor_storage_ioctl: str x21, [sp, 32] mov w21, w1 bl ftl_malloc - cbz x0, .L1718 + cbz x0, .L1776 mov w1, 30209 mov x19, x0 movk w1, 0x4004, lsl 16 cmp w21, w1 - beq .L1707 + beq .L1765 add w1, w1, 1 cmp w21, w1 - beq .L1708 -.L1728: + beq .L1766 +.L1786: mov x20, -14 - b .L1706 -.L1707: + b .L1764 +.L1765: #APP // 21 "./arch/arm64/include/asm/current.h" 1 mrs x21, sp_el0 @@ -12071,34 +12539,34 @@ rk_sftl_vendor_storage_ioctl: adds x1, x1, 8; ccmp x1, x2, #2, cc; cset x3, ls // 0 "" 2 #NO_APP - cbz x3, .L1714 + cbz x3, .L1772 mov x2, 8 mov x1, x20 bl __arch_copy_from_user - cbnz x0, .L1728 + cbnz x0, .L1786 ldr w1, [x19] mov w0, 17745 movk w0, 0x5652, lsl 16 cmp w1, w0 - beq .L1712 -.L1713: + beq .L1770 +.L1771: mov x20, -1 -.L1706: +.L1764: mov x0, x19 bl kfree -.L1704: +.L1762: mov x0, x20 ldr x21, [sp, 32] ldp x19, x20, [sp, 16] ldp x29, x30, [sp], 48 ret -.L1712: +.L1770: ldrh w2, [x19, 6] add x1, x19, 8 ldrh w0, [x19, 4] bl rk_sftl_vendor_read cmn w0, #1 - beq .L1713 + beq .L1771 strh w0, [x19, 6] and x2, x0, 65535 add x2, x2, 8 @@ -12109,14 +12577,14 @@ rk_sftl_vendor_storage_ioctl: adds x0, x0, x2; ccmp x0, x1, #2, cc; cset x3, ls // 0 "" 2 #NO_APP - cbz x3, .L1728 + cbz x3, .L1786 mov x0, x20 mov x1, x19 mov x20, 0 bl __arch_copy_to_user - cbz x0, .L1706 - b .L1728 -.L1708: + cbz x0, .L1764 + b .L1786 +.L1766: #APP // 21 "./arch/arm64/include/asm/current.h" 1 mrs x21, sp_el0 @@ -12129,19 +12597,19 @@ rk_sftl_vendor_storage_ioctl: adds x1, x1, 8; ccmp x1, x2, #2, cc; cset x3, ls // 0 "" 2 #NO_APP - cbz x3, .L1714 + cbz x3, .L1772 mov x2, 8 mov x1, x20 bl __arch_copy_from_user - cbnz x0, .L1728 + cbnz x0, .L1786 ldr w1, [x19] mov w0, 17745 movk w0, 0x5652, lsl 16 cmp w1, w0 - bne .L1713 + bne .L1771 ldrh w2, [x19, 6] cmp w2, 4087 - bhi .L1713 + bhi .L1771 add w2, w2, 8 mov x0, x20 sxtw x2, w2 @@ -12151,28 +12619,28 @@ rk_sftl_vendor_storage_ioctl: adds x0, x0, x2; ccmp x0, x1, #2, cc; cset x3, ls // 0 "" 2 #NO_APP - cbz x3, .L1716 + cbz x3, .L1774 mov x1, x20 mov x0, x19 bl __arch_copy_from_user - cbnz x0, .L1728 + cbnz x0, .L1786 ldrh w2, [x19, 6] add x1, x19, 8 ldrh w0, [x19, 4] bl rk_sftl_vendor_write sxtw x20, w0 - b .L1706 -.L1714: + b .L1764 +.L1772: str xzr, [x19] - b .L1728 -.L1716: + b .L1786 +.L1774: mov w1, 0 mov x0, x19 bl memset - b .L1728 -.L1718: + b .L1786 +.L1776: mov x20, -1 - b .L1704 + b .L1762 .size rk_sftl_vendor_storage_ioctl, .-rk_sftl_vendor_storage_ioctl .align 2 .global rk_sftl_vendor_register @@ -12230,6 +12698,8 @@ rk_sftl_vendor_register: .global g_gc_bad_block_temp_tbl .global g_gc_bad_block_gc_index .global g_gc_bad_block_temp_num + .global g_gc_next_blk_3 + .global g_gc_next_blk_2 .global g_gc_next_blk_1 .global g_gc_next_blk .global g_gc_cur_blk_max_valid_pages @@ -12285,7 +12755,6 @@ rk_sftl_vendor_register: .global p_sys_data_buf_1 .global p_sys_data_buf .global p_plane_order_table - .global g_req_cache .global req_gc_dst .global req_gc .global req_erase @@ -12338,169 +12807,169 @@ rk_sftl_vendor_register: .section .rodata .align 3 .set .LANCHOR1,. + 0 - .type __func__.3769, %object - .size __func__.3769, 17 -__func__.3769: + .type __func__.3843, %object + .size __func__.3843, 17 +__func__.3843: .string "INSERT_DATA_LIST" .zero 7 - .type __func__.3764, %object - .size __func__.3764, 17 -__func__.3764: + .type __func__.3838, %object + .size __func__.3838, 17 +__func__.3838: .string "INSERT_FREE_LIST" .zero 7 - .type __func__.3800, %object - .size __func__.3800, 17 -__func__.3800: + .type __func__.3881, %object + .size __func__.3881, 17 +__func__.3881: .string "List_remove_node" .zero 7 - .type __func__.3832, %object - .size __func__.3832, 22 -__func__.3832: + .type __func__.3913, %object + .size __func__.3913, 22 +__func__.3913: .string "List_update_data_list" .zero 2 - .type __func__.3938, %object - .size __func__.3938, 22 -__func__.3938: + .type __func__.4024, %object + .size __func__.4024, 22 +__func__.4024: .string "select_l2p_ram_region" .zero 2 - .type __func__.4261, %object - .size __func__.4261, 16 -__func__.4261: + .type __func__.4347, %object + .size __func__.4347, 16 +__func__.4347: .string "make_superblock" - .type __func__.4436, %object - .size __func__.4436, 19 -__func__.4436: + .type __func__.4522, %object + .size __func__.4522, 19 +__func__.4522: .string "get_new_active_ppa" .zero 5 - .type __func__.16018, %object - .size __func__.16018, 15 -__func__.16018: + .type __func__.16105, %object + .size __func__.16105, 15 +__func__.16105: .string "FlashReadPages" .zero 1 - .type __func__.16035, %object - .size __func__.16035, 15 -__func__.16035: + .type __func__.16122, %object + .size __func__.16122, 15 +__func__.16122: .string "FlashProgPages" .zero 1 - .type __func__.3874, %object - .size __func__.3874, 26 -__func__.3874: + .type __func__.3955, %object + .size __func__.3955, 26 +__func__.3955: .string "ftl_map_blk_alloc_new_blk" .zero 6 - .type __func__.3378, %object - .size __func__.3378, 11 -__func__.3378: + .type __func__.3380, %object + .size __func__.3380, 11 +__func__.3380: .string "FtlMemInit" .zero 5 - .type __func__.3604, %object - .size __func__.3604, 14 -__func__.3604: + .type __func__.3678, %object + .size __func__.3678, 14 +__func__.3678: .string "FtlBbt2Bitmap" .zero 2 - .type __func__.3841, %object - .size __func__.3841, 16 -__func__.3841: - .string "load_l2p_region" - .type __func__.3899, %object - .size __func__.3899, 31 -__func__.3899: + .type __func__.3985, %object + .size __func__.3985, 31 +__func__.3985: .string "Ftl_write_map_blk_to_last_page" .zero 1 - .type __func__.3913, %object - .size __func__.3913, 16 -__func__.3913: + .type __func__.3999, %object + .size __func__.3999, 16 +__func__.3999: .string "FtlMapWritePage" - .type __func__.3885, %object - .size __func__.3885, 15 -__func__.3885: + .type __func__.3922, %object + .size __func__.3922, 16 +__func__.3922: + .string "load_l2p_region" + .type __func__.3970, %object + .size __func__.3970, 15 +__func__.3970: .string "ftl_map_blk_gc" .zero 1 - .type __func__.3955, %object - .size __func__.3955, 9 -__func__.3955: + .type __func__.4041, %object + .size __func__.4041, 9 +__func__.4041: .string "log2phys" .zero 7 - .type __func__.4170, %object - .size __func__.4170, 16 -__func__.4170: + .type __func__.4256, %object + .size __func__.4256, 16 +__func__.4256: .string "FtlReUsePrevPpa" - .type __func__.4050, %object - .size __func__.4050, 14 -__func__.4050: + .type __func__.4136, %object + .size __func__.4136, 14 +__func__.4136: .string "FtlScanSysBlk" .zero 2 - .type __func__.4282, %object - .size __func__.4282, 18 -__func__.4282: + .type __func__.4368, %object + .size __func__.4368, 18 +__func__.4368: .string "SupperBlkListInit" .zero 6 - .type __func__.4323, %object - .size __func__.4323, 14 -__func__.4323: + .type __func__.4409, %object + .size __func__.4409, 14 +__func__.4409: .string "ftl_check_vpc" .zero 2 - .type __func__.4408, %object - .size __func__.4408, 25 -__func__.4408: + .type __func__.4494, %object + .size __func__.4494, 25 +__func__.4494: .string "allocate_data_superblock" .zero 7 - .type __func__.4449, %object - .size __func__.4449, 16 -__func__.4449: + .type __func__.4535, %object + .size __func__.4535, 16 +__func__.4535: .string "update_vpc_list" - .type __func__.4456, %object - .size __func__.4456, 20 -__func__.4456: + .type __func__.4542, %object + .size __func__.4542, 20 +__func__.4542: .string "decrement_vpc_count" .zero 4 - .type __func__.4204, %object - .size __func__.4204, 22 -__func__.4204: + .type __func__.4290, %object + .size __func__.4290, 22 +__func__.4290: .string "FtlRecoverySuperblock" .zero 2 - .type __func__.3647, %object - .size __func__.3647, 11 -__func__.3647: + .type __func__.3721, %object + .size __func__.3721, 11 +__func__.3721: .string "FtlLoadBbt" .zero 5 - .type __func__.4028, %object - .size __func__.4028, 15 -__func__.4028: + .type __func__.4114, %object + .size __func__.4114, 15 +__func__.4114: .string "FtlVpcTblFlush" .zero 1 - .type __func__.4307, %object - .size __func__.4307, 21 -__func__.4307: + .type __func__.4393, %object + .size __func__.4393, 21 +__func__.4393: .string "FtlVpcCheckAndModify" .zero 3 - .type __func__.4429, %object - .size __func__.4429, 29 -__func__.4429: + .type __func__.4515, %object + .size __func__.4515, 29 +__func__.4515: .string "allocate_new_data_superblock" .zero 3 - .type __func__.3502, %object - .size __func__.3502, 13 -__func__.3502: + .type __func__.3504, %object + .size __func__.3504, 13 +__func__.3504: .string "FtlProgPages" .zero 3 - .type __func__.4526, %object - .size __func__.4526, 19 -__func__.4526: + .type __func__.4613, %object + .size __func__.4613, 19 +__func__.4613: .string "FtlGcFreeTempBlock" .zero 5 - .type __func__.4632, %object - .size __func__.4632, 23 -__func__.4632: + .type __func__.4719, %object + .size __func__.4719, 23 +__func__.4719: .string "rk_ftl_garbage_collect" .zero 1 - .type __func__.3530, %object - .size __func__.3530, 9 -__func__.3530: + .type __func__.3532, %object + .size __func__.3532, 9 +__func__.3532: .string "FtlWrite" .zero 7 - .type __func__.4107, %object - .size __func__.4107, 15 -__func__.4107: + .type __func__.4193, %object + .size __func__.4193, 15 +__func__.4193: .string "FtlLoadSysInfo" .zero 1 .type rk_sftl_vendor_storage_fops, %object @@ -12532,7 +13001,7 @@ power_up_flag: rkflash_vender_storage_dev: .word 255 .zero 4 - .xword .LC110 + .xword .LC116 .xword rk_sftl_vendor_storage_fops .zero 56 .bss @@ -12921,12 +13390,20 @@ g_gc_next_blk: .type g_gc_next_blk_1, %object .size g_gc_next_blk_1, 2 g_gc_next_blk_1: + .zero 2 + .type g_gc_next_blk_2, %object + .size g_gc_next_blk_2, 2 +g_gc_next_blk_2: + .zero 2 + .type g_gc_next_blk_3, %object + .size g_gc_next_blk_3, 2 +g_gc_next_blk_3: .zero 2 .type g_gc_bad_block_temp_num, %object .size g_gc_bad_block_temp_num, 2 g_gc_bad_block_temp_num: .zero 2 - .zero 2 + .zero 6 .type g_gc_bad_block_temp_tbl, %object .size g_gc_bad_block_temp_tbl, 34 g_gc_bad_block_temp_tbl: @@ -13077,10 +13554,6 @@ g_totle_map_block: .size gVendorBlkInfo, 64 gVendorBlkInfo: .zero 64 - .type g_req_cache, %object - .size g_req_cache, 8 -g_req_cache: - .zero 8 .type g_tmp_data_superblock_id, %object .size g_tmp_data_superblock_id, 2 g_tmp_data_superblock_id: @@ -13115,11 +13588,7 @@ g_recovery_ppa_tbl: .size g_ect_tbl_power_up_flush, 2 g_ect_tbl_power_up_flush: .zero 2 - .zero 6 - .type gp_last_act_superblock, %object - .size gp_last_act_superblock, 8 -gp_last_act_superblock: - .zero 8 + .zero 2 .type gc_discard_updated, %object .size gc_discard_updated, 4 gc_discard_updated: @@ -13140,6 +13609,10 @@ g_gc_cur_blk_max_valid_pages: .type g_ftl_nand_free_count, %object .size g_ftl_nand_free_count, 4 g_ftl_nand_free_count: + .zero 4 + .type idb_need_write_back, %object + .size idb_need_write_back, 4 +idb_need_write_back: .zero 4 .type g_MaxLbn, %object .size g_MaxLbn, 4 @@ -13170,6 +13643,18 @@ check_buf: .size check_vpc_table, 16384 check_vpc_table: .zero 16384 + .type gp_flash_check_buf, %object + .size gp_flash_check_buf, 262144 +gp_flash_check_buf: + .zero 262144 + .type idb_buf, %object + .size idb_buf, 262144 +idb_buf: + .zero 262144 + .type gp_last_act_superblock, %object + .size gp_last_act_superblock, 8 +gp_last_act_superblock: + .zero 8 .section .rodata.str1.1,"aMS",@progbits,1 .LC0: .string "phyBlk = 0x%x die = %d block_in_die = 0x%x 0x%8x\n" @@ -13312,7 +13797,7 @@ check_vpc_table: .LC69: .string "free %d. [0x%x] 0x%x 0x%x\n" .LC70: - .string "SFTL version: 5.0.44 20180713" + .string "SFTL version: 5.0.45 20180810" .LC71: .string "%s\n" .LC72: @@ -13346,52 +13831,62 @@ check_vpc_table: .LC86: .string "%s error allocating memory. return -1\n" .LC87: - .string "region_id = %x phyAddr = %x\n" -.LC88: - .string "spare:" -.LC89: - .string "map_ppn:" -.LC90: .string "FtlMapWritePage error = %x \n" -.LC91: +.LC88: .string "FtlMapWritePage error = %x error count = %d\n" +.LC89: + .string "load_l2p_region refresh = %x phyAddr = %x\n" +.LC90: + .string "region_id = %x phyAddr = %x\n" +.LC91: + .string "spare:" .LC92: - .string "ftl_scan_all_data = %x\n" + .string "map_ppn:" .LC93: - .string "scan lpa = %x ppa= %x\n" + .string "ftl_map_blk_gc blk info: %x %x %x\n" .LC94: - .string "lba = %x,addr= %x,spare= %x %x %x %x data=%x %x\n" + .string "ftl_scan_all_data = %x\n" .LC95: - .string "...%s enter...\n" + .string "scan lpa = %x ppa= %x\n" .LC96: - .string "FtlCheckVpc2 %x = %x %x\n" + .string "lba = %x,addr= %x,spare= %x %x %x %x data=%x %x\n" .LC97: - .string "free blk vpc error %x = %x %x\n" + .string "...%s enter...\n" .LC98: - .string "FtlBbmTblFlush id=%x,page=%x,previd=%x cnt=%d\n" + .string "FtlCheckVpc2 %x = %x %x\n" .LC99: - .string "FtlBbmTblFlush error:%x\n" + .string "free blk vpc error %x = %x %x\n" .LC100: - .string "FtlBbmTblFlush error = %x error count = %d\n" + .string "FtlBbmTblFlush id=%x,page=%x,previd=%x cnt=%d\n" .LC101: - .string "FtlGcFreeBadSuperBlk 0x%x\n" + .string "FtlBbmTblFlush error:%x\n" .LC102: - .string "decrement_vpc_count %x = %d\n" + .string "FtlBbmTblFlush error = %x error count = %d\n" .LC103: - .string "spuer block %x vpn is 0\n " + .string "FtlGcFreeBadSuperBlk 0x%x\n" .LC104: - .string "no ect" + .string "decrement_vpc_count %x = %d\n" .LC105: - .string "FtlVpcTblFlush error = %x error count = %d\n" + .string "decrement_vpc_count %x = %d in free list\n" .LC106: - .string "FtlCheckVpc %x = %x %x\n" + .string "spuer block %x vpn is 0\n " .LC107: - .string "Ftlwrite decrement_vpc_count %x = %d\n" + .string "FtlVendorPartRead refresh = %x phyAddr = %x\n" .LC108: - .string "SWL %x, FSB = %x vpc= %x,ec=%x th=%x\n" + .string "no ect" .LC109: - .string "FtlWrite: lpa error:%x %x\n" + .string "FtlVpcTblFlush error = %x error count = %d\n" .LC110: + .string "FtlCheckVpc %x = %x %x\n" +.LC111: + .string "Ftlwrite decrement_vpc_count %x = %d\n" +.LC112: + .string "SWL %x, FSB = %x vpc= %x,ec=%x th=%x\n" +.LC113: + .string "g_gc_superblock_free %x %x %x %x %x\n" +.LC114: + .string "FtlWrite: lpa error:%x %x\n" +.LC115: + .string "write_idblock fail! %x %x %x %x\n" +.LC116: .string "vendor_storage" - .ident "GCC: (Linaro GCC 6.3-2017.05) 6.3.1 20170404" - .section .note.GNU-stack,"",@progbits