From ea08eeccae9297f7aabd2ef7f0c2517ac4549acc Mon Sep 17 00:00:00 2001
From: hc <hc@nodka.com>
Date: Tue, 20 Feb 2024 01:18:26 +0000
Subject: [PATCH] write in 30M
---
kernel/drivers/rkflash/rk_sftl_arm_v7_thumb.S | 14272 +++++++++++++++++++++++++++++------------------------------
1 files changed, 7,108 insertions(+), 7,164 deletions(-)
diff --git a/kernel/drivers/rkflash/rk_sftl_arm_v7_thumb.S b/kernel/drivers/rkflash/rk_sftl_arm_v7_thumb.S
index 7a31046..4d11771 100644
--- a/kernel/drivers/rkflash/rk_sftl_arm_v7_thumb.S
+++ b/kernel/drivers/rkflash/rk_sftl_arm_v7_thumb.S
@@ -1,6 +1,6 @@
/* SPDX-License-Identifier: GPL-2.0 */
-/* Copyright (c) 2018 Rockchip Electronics Co. Ltd.
+/* Copyright (c) 2018-2022 Rockchip Electronics Co. Ltd.
* date: 2022-08-15
*/
.arch armv7-a
@@ -14,12 +14,12 @@
.eabi_attribute 34, 1
.eabi_attribute 18, 2
.file "rk_sftl.c"
+ .text
.syntax unified
.syntax unified
.global __aeabi_uidiv
.thumb
.syntax unified
- .text
.align 1
.syntax unified
.thumb
@@ -32,30 +32,30 @@
@ frame_needed = 0, uses_anonymous_args = 0
push {r3, r4, r5, r6, r7, r8, r9, lr}
.save {r3, r4, r5, r6, r7, r8, r9, lr}
- mov r8, r1
+ mov r7, r1
ldr r3, .L3
- mov r9, r2
- ldr r6, [r0, #4]
- ldrh r4, [r3, #8]
- ldrh r5, [r3, #10]
+ mov r8, r2
+ ldrh r9, [r3, #8]
+ ldrh r6, [r3, #10]
ldrh r3, [r3, #14]
- lsrs r7, r6, #10
- ubfx r6, r6, #0, #10
cmp r3, #4
- uxth r0, r7
itt eq
- lsreq r4, r4, #1
- lsleq r5, r5, #1
- uxth r7, r7
- mov r1, r4
+ lsleq r4, r6, #1
+ lsreq r9, r9, #1
+ mov r1, r9
it eq
- uxtheq r5, r5
+ uxtheq r6, r4
+ ldr r4, [r0, #4]
+ lsrs r5, r4, #10
+ ubfx r0, r4, #10, #16
bl __aeabi_uidiv
uxth r0, r0
- mls r4, r0, r4, r7
- mla r4, r5, r4, r6
- str r4, [r8]
- str r0, [r9]
+ uxth r5, r5
+ ubfx r4, r4, #0, #10
+ mls r5, r0, r9, r5
+ mla r4, r6, r5, r4
+ str r4, [r7]
+ str r0, [r8]
movs r0, #0
pop {r3, r4, r5, r6, r7, r8, r9, pc}
.L4:
@@ -64,6 +64,65 @@
.word .LANCHOR0
.fnend
.size l2p_addr_tran, .-l2p_addr_tran
+ .align 1
+ .syntax unified
+ .thumb
+ .thumb_func
+ .fpu softvfp
+ .type _copy_from_user, %function
+_copy_from_user:
+ .fnstart
+ @ args = 0, pretend = 0, frame = 0
+ @ frame_needed = 0, uses_anonymous_args = 0
+ push {r3, r4, r5, r6, r7, lr}
+ .save {r3, r4, r5, r6, r7, lr}
+ mov r6, r0
+ mov r4, r2
+ mov r3, sp
+ bic r3, r3, #8160
+ bic r3, r3, #31
+ ldr r3, [r3, #8]
+ .syntax unified
+@ 157 "./include/linux/uaccess.h" 1
+ .syntax unified
+adds r7, r1, r2; sbcscc r7, r7, r3; movcc r3, #0
+@ 0 "" 2
+ .thumb
+ .syntax unified
+ cbnz r3, .L8
+ bl arm_copy_from_user
+ mov r5, r0
+ cbz r0, .L5
+.L6:
+ subs r4, r4, r5
+ mov r2, r5
+ adds r0, r6, r4
+ movs r1, #0
+ bl memset
+.L5:
+ mov r0, r5
+ pop {r3, r4, r5, r6, r7, pc}
+.L8:
+ mov r5, r2
+ b .L6
+ .fnend
+ .size _copy_from_user, .-_copy_from_user
+ .section .rodata.str1.1,"aMS",%progbits,1
+.LC0:
+ .ascii "SFTL version: 5.0.58 20220814\000"
+.LC1:
+ .ascii "\012%s\012\000"
+.LC2:
+ .ascii "act blk: %x %x %x %x %x %x\012\000"
+.LC3:
+ .ascii "buf blk: %x %x %x %x %x %x\012\000"
+.LC4:
+ .ascii "tmp blk: %x %x %x %x %x %x\012\000"
+.LC5:
+ .ascii "gc blk: %x %x %x %x %x %x\012\000"
+.LC6:
+ .ascii "free blk: %x %x %x\012\000"
+ .text
.align 1
.global ftl_print_sblk_info
.syntax unified
@@ -78,69 +137,69 @@
push {r0, r1, r2, r3, r4, lr}
.save {r4, lr}
.pad #16
- ldr r4, .L6
- ldr r1, .L6+4
- ldr r0, .L6+8
+ ldr r4, .L13
+ ldr r1, .L13+4
+ ldr r0, .L13+8
bl sftl_printk
+ ldr r0, .L13+12
ldrh r1, [r4, #24]
- ldr r0, [r4, #72]
- ldrb r3, [r4, #30] @ zero_extendqisi2
+ ldr r3, [r4, #72]
ldrh r2, [r4, #26]
- ldrh r0, [r0, r1, lsl #1]
- str r0, [sp, #8]
- ldrh r0, [r4, #28]
- str r0, [sp, #4]
- ldrb r0, [r4, #32] @ zero_extendqisi2
- str r0, [sp]
- ldr r0, .L6+12
+ ldrh r3, [r3, r1, lsl #1]
+ str r3, [sp, #8]
+ ldrh r3, [r4, #28]
+ str r3, [sp, #4]
+ ldrb r3, [r4, #32] @ zero_extendqisi2
+ str r3, [sp]
+ ldrb r3, [r4, #30] @ zero_extendqisi2
bl sftl_printk
ldrh r1, [r4, #76]
- ldr r0, [r4, #72]
- ldrb r3, [r4, #82] @ zero_extendqisi2
+ ldr r3, [r4, #72]
ldrh r2, [r4, #78]
- ldrh r0, [r0, r1, lsl #1]
- str r0, [sp, #8]
- ldrh r0, [r4, #80]
- str r0, [sp, #4]
- ldrb r0, [r4, #84] @ zero_extendqisi2
- str r0, [sp]
- ldr r0, .L6+16
+ ldr r0, .L13+16
+ ldrh r3, [r3, r1, lsl #1]
+ str r3, [sp, #8]
+ ldrh r3, [r4, #80]
+ str r3, [sp, #4]
+ ldrb r3, [r4, #84] @ zero_extendqisi2
+ str r3, [sp]
+ ldrb r3, [r4, #82] @ zero_extendqisi2
bl sftl_printk
ldrh r1, [r4, #124]
- ldr r0, [r4, #72]
- ldrb r3, [r4, #130] @ zero_extendqisi2
+ ldr r3, [r4, #72]
ldrh r2, [r4, #126]
- ldrh r0, [r0, r1, lsl #1]
- str r0, [sp, #8]
- ldrh r0, [r4, #128]
- str r0, [sp, #4]
- ldrb r0, [r4, #132] @ zero_extendqisi2
- str r0, [sp]
- ldr r0, .L6+20
+ ldr r0, .L13+20
+ ldrh r3, [r3, r1, lsl #1]
+ str r3, [sp, #8]
+ ldrh r3, [r4, #128]
+ str r3, [sp, #4]
+ ldrb r3, [r4, #132] @ zero_extendqisi2
+ str r3, [sp]
+ ldrb r3, [r4, #130] @ zero_extendqisi2
bl sftl_printk
ldrh r1, [r4, #172]
- ldr r0, [r4, #72]
- ldrb r3, [r4, #178] @ zero_extendqisi2
+ ldr r3, [r4, #72]
ldrh r2, [r4, #174]
- ldrh r0, [r0, r1, lsl #1]
- str r0, [sp, #8]
- ldrh r0, [r4, #176]
- str r0, [sp, #4]
- ldrb r0, [r4, #180] @ zero_extendqisi2
- str r0, [sp]
- ldr r0, .L6+24
+ ldr r0, .L13+24
+ ldrh r3, [r3, r1, lsl #1]
+ str r3, [sp, #8]
+ ldrh r3, [r4, #176]
+ str r3, [sp, #4]
+ ldrb r3, [r4, #180] @ zero_extendqisi2
+ str r3, [sp]
+ ldrb r3, [r4, #178] @ zero_extendqisi2
bl sftl_printk
ldrh r3, [r4, #220]
ldrh r2, [r4, #222]
ldrh r1, [r4, #224]
- ldr r0, .L6+28
+ ldr r0, .L13+28
add sp, sp, #16
@ sp needed
pop {r4, lr}
b sftl_printk
-.L7:
+.L14:
.align 2
-.L6:
+.L13:
.word .LANCHOR0
.word .LC0
.word .LC1
@@ -165,17 +224,17 @@
@ link register save eliminated.
movs r1, #0
movs r2, #1
-.L9:
- cmp r2, r0
+.L16:
uxth r3, r1
+ cmp r2, r0
add r1, r1, #1
- bls .L10
+ bls .L17
subs r0, r3, #1
uxth r0, r0
bx lr
-.L10:
+.L17:
lsls r2, r2, #1
- b .L9
+ b .L16
.fnend
.size Ftl_log2, .-Ftl_log2
.align 1
@@ -205,7 +264,7 @@
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L13
+ ldr r3, .L20
cmp r0, #24
it cc
movcc r0, #24
@@ -215,15 +274,15 @@
muls r2, r0, r2
subs r0, r1, r0
ldr r1, [r3, #248]
- strh r0, [r3, #240] @ movhi
- movs r0, #0
str r2, [r3, #236]
+ strh r0, [r3, #240] @ movhi
subs r2, r1, r2
+ movs r0, #0
str r2, [r3, #244]
bx lr
-.L14:
+.L21:
.align 2
-.L13:
+.L20:
.word .LANCHOR0
.fnend
.size FtlSysBlkNumInit, .-FtlSysBlkNumInit
@@ -241,114 +300,111 @@
@ frame_needed = 0, uses_anonymous_args = 0
push {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
- mov fp, r0
- ldrh r1, [fp, #14]
+ mov r7, r0
+ ldr r4, .L33
ldrh r2, [r0]
- ldr r4, .L26
+ ldrh r1, [r7, #14]
+ ldrh r5, [r0, #2]
+ ldrh r3, [r7, #6]
cmp r1, #4
- ldrh r6, [r0, #2]
- ldrh r3, [fp, #6]
ldrh r0, [r0, #4]
strh r2, [r4, #252] @ movhi
- strh r6, [r4, #254] @ movhi
+ strh r5, [r4, #254] @ movhi
strh r0, [r4, #256] @ movhi
strh r3, [r4, #242] @ movhi
strh r1, [r4, #258] @ movhi
- bne .L16
+ bne .L23
lsrs r3, r3, #1
strh r3, [r4, #242] @ movhi
movs r3, #8
strh r3, [r4, #258] @ movhi
-.L17:
- ldr r1, .L26+4
+.L24:
+ ldr r1, .L33+4
movs r3, #0
-.L18:
- strb r3, [r3, r1]
+.L25:
+ strb r3, [r1], #1
adds r3, r3, #1
cmp r3, #32
- bne .L18
- ldrh r5, [r4, #242]
- movs r3, #5
- ldrh r0, [r4, #256]
+ bne .L25
+ ldrh r6, [r4, #242]
cmp r2, #1
- strh r3, [r4, #292] @ movhi
- mov r7, #640
+ ldrh r0, [r4, #256]
mov r3, #0
- it eq
- strheq r2, [r4, #292] @ movhi
+ it ne
+ movne r2, #5
strh r3, [r4, #294] @ movhi
- smulbb r6, r6, r0
- strh r7, [r4, #296] @ movhi
- smulbb r0, r0, r5
- uxth r6, r6
+ strh r2, [r4, #292] @ movhi
+ mov r9, #640
+ strh r9, [r4, #296] @ movhi
+ smulbb r5, r5, r0
+ smulbb r0, r0, r6
+ uxth r5, r5
+ strh r5, [r4, #232] @ movhi
uxth r0, r0
- strh r6, [r4, #232] @ movhi
strh r0, [r4, #298] @ movhi
bl Ftl_log2
- ldrh r9, [fp, #12]
+ ldrh fp, [r7, #12]
ldrh r10, [r4, #258]
strh r0, [r4, #300] @ movhi
- strh r9, [r4, #302] @ movhi
- smulbb r3, r6, r9
mov r0, r10
- strh r9, [r4, #304] @ movhi
+ strh fp, [r4, #302] @ movhi
+ smulbb r3, r5, fp
+ strh fp, [r4, #304] @ movhi
strh r3, [r4, #306] @ movhi
bl Ftl_log2
lsl r3, r10, #9
+ mul r1, fp, r10
mov r8, r0
strh r0, [r4, #308] @ movhi
- mul r1, r9, r10
uxth r3, r3
- mov r0, #5120
- asr r7, r7, r8
strh r3, [r4, #310] @ movhi
- lsrs r3, r3, #8
+ asr r9, r9, r8
add r8, r8, #9
+ lsrs r3, r3, #8
strh r3, [r4, #312] @ movhi
- adds r7, r7, #2
- ldrh r3, [fp, #20]
+ ldrh r3, [r7, #20]
+ mov r0, #5120
strh r3, [r4, #314] @ movhi
- mul r3, r5, r6
- lsls r5, r5, #6
- asr r5, r5, r8
+ mul r3, r6, r5
str r3, [r4, #248]
- mul r3, r10, r3
- mul r3, r9, r3
+ lsls r6, r6, #6
+ add r9, r9, #2
+ asr r6, r6, r8
+ muls r3, r1, r3
asrs r3, r3, #11
str r3, [r4, #316]
bl __aeabi_idiv
- uxth r0, r0
- strh r5, [r4, #324] @ movhi
- uxth r5, r5
- mov r1, r6
cmp r0, #4
- strh r7, [r4, #322] @ movhi
- itet ls
- movls r3, #4
- strhhi r0, [r4, #320] @ movhi
- strhls r3, [r4, #320] @ movhi
+ strh r6, [r4, #324] @ movhi
+ uxth r6, r6
+ itet le
+ movle r3, #4
+ strhgt r0, [r4, #320] @ movhi
+ strhle r3, [r4, #320] @ movhi
+ mov r1, r5
mul r3, r6, r5
+ strh r9, [r4, #322] @ movhi
ldrh r0, [r4, #320]
- adds r5, r5, #8
str r3, [r4, #328]
bl __aeabi_uidiv
- uxtah r0, r5, r0
- cmp r6, #1
- it eq
- addeq r0, r0, #4
- str r0, [r4, #228]
+ cmp r5, #1
+ uxtah r6, r6, r0
+ ite ne
+ addne r6, r6, #8
+ addeq r6, r6, #12
+ str r6, [r4, #228]
ldrh r0, [r4, #228]
bl FtlSysBlkNumInit
ldr r3, [r4, #228]
+ ldr r2, [r4, #244]
movs r0, #0
- str r0, [r4, #340]
str r3, [r4, #332]
- ldr r3, [r4, #244]
- lsls r2, r3, #2
ldrh r3, [r4, #302]
+ str r0, [r4, #340]
muls r3, r2, r3
ldrh r2, [r4, #308]
adds r2, r2, #9
+ lsls r3, r3, #2
lsrs r3, r3, r2
adds r3, r3, #2
strh r3, [r4, #336] @ movhi
@@ -361,19 +417,19 @@
adds r3, r3, #3
str r3, [r4, #328]
pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L16:
+.L23:
cmp r1, #8
- bne .L17
+ bne .L24
cmp r0, #1
itttt eq
lsreq r3, r3, #1
strheq r3, [r4, #242] @ movhi
moveq r3, #2
strheq r3, [r4, #256] @ movhi
- b .L17
-.L27:
+ b .L24
+.L34:
.align 2
-.L26:
+.L33:
.word .LANCHOR0
.word .LANCHOR0+260
.fnend
@@ -390,27 +446,28 @@
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r2, .L35
- ldrh r3, [r2, #344]
- cbz r3, .L34
+ ldr r2, .L41
+ mov r1, r0
+ ldrh r0, [r2, #344]
+ cbz r0, .L35
ldr r3, [r2, #348]
ldrh r2, [r2, #320]
add r2, r3, r2, lsl #1
-.L30:
+.L37:
cmp r3, r2
- bne .L31
-.L34:
+ bne .L38
movs r0, #0
bx lr
-.L31:
- ldrh r1, [r3], #2
- cmp r0, r1
- bne .L30
+.L38:
+ ldrh r0, [r3], #2
+ cmp r1, r0
+ bne .L37
movs r0, #1
- bx lr
-.L36:
- .align 2
.L35:
+ bx lr
+.L42:
+ .align 2
+.L41:
.word .LANCHOR0
.fnend
.size IsBlkInVendorPart, .-IsBlkInVendorPart
@@ -442,16 +499,21 @@
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L39
+ ldr r3, .L45
ldr r0, [r3, #340]
bx lr
-.L40:
+.L46:
.align 2
-.L39:
+.L45:
.word .LANCHOR0
.fnend
.size sftl_get_density, .-sftl_get_density
.global __aeabi_uidivmod
+ .section .rodata.str1.1
+.LC7:
+ .ascii "phyBlk = 0x%x die = %d block_in_die = 0x%x 0x%8x\012"
+ .ascii "\000"
+ .text
.align 1
.global FtlBbmMapBadBlock
.syntax unified
@@ -466,40 +528,40 @@
push {r0, r1, r2, r4, r5, r6, r7, lr}
.save {r4, r5, r6, r7, lr}
.pad #12
- mov r5, r0
- ldr r4, .L42
- ldrh r7, [r4, #298]
- mov r1, r7
+ mov r6, r0
+ ldr r5, .L48
+ ldrh r4, [r5, #298]
+ mov r1, r4
bl __aeabi_uidiv
- uxth r6, r0
- mov r1, r7
- mov r0, r5
+ uxth r7, r0
+ mov r1, r4
+ mov r0, r6
bl __aeabi_uidivmod
- add r2, r4, r6, lsl #2
+ add r3, r5, r7, lsl #2
+ ubfx r2, r1, #5, #11
+ and r0, r1, #31
+ movs r4, #1
+ ldr r3, [r3, #380]
+ lsls r4, r4, r0
+ ldr r0, [r3, r2, lsl #2]
+ orrs r4, r4, r0
+ ldr r0, .L48+4
+ str r4, [r3, r2, lsl #2]
uxth r3, r1
- ldr r2, [r2, #380]
- lsrs r1, r3, #5
- and r7, r3, #31
- movs r0, #1
- lsls r0, r0, r7
- ldr r7, [r2, r1, lsl #2]
- orrs r0, r0, r7
- str r0, [r2, r1, lsl #2]
- mov r2, r6
- str r0, [sp]
- mov r1, r5
- ldr r0, .L42+4
+ mov r2, r7
+ mov r1, r6
+ str r4, [sp]
bl sftl_printk
- ldrh r3, [r4, #358]
+ ldrh r3, [r5, #358]
movs r0, #0
adds r3, r3, #1
- strh r3, [r4, #358] @ movhi
+ strh r3, [r5, #358] @ movhi
add sp, sp, #12
@ sp needed
pop {r4, r5, r6, r7, pc}
-.L43:
+.L49:
.align 2
-.L42:
+.L48:
.word .LANCHOR0
.word .LC7
.fnend
@@ -517,27 +579,27 @@
@ frame_needed = 0, uses_anonymous_args = 0
push {r3, r4, r5, r6, r7, lr}
.save {r3, r4, r5, r6, r7, lr}
- mov r7, r0
- ldr r5, .L45
- ldrh r6, [r5, #298]
- mov r1, r6
+ mov r6, r0
+ ldr r5, .L51
+ ldrh r7, [r5, #298]
+ mov r1, r7
bl __aeabi_uidivmod
- mov r0, r7
+ mov r0, r6
uxth r4, r1
- mov r1, r6
+ mov r1, r7
bl __aeabi_uidiv
uxth r0, r0
lsrs r2, r4, #5
- add r5, r5, r0, lsl #2
and r4, r4, #31
+ add r5, r5, r0, lsl #2
ldr r3, [r5, #380]
ldr r0, [r3, r2, lsl #2]
lsrs r0, r0, r4
and r0, r0, #1
pop {r3, r4, r5, r6, r7, pc}
-.L46:
+.L52:
.align 2
-.L45:
+.L51:
.word .LANCHOR0
.fnend
.size FtlBbmIsBadBlock, .-FtlBbmIsBadBlock
@@ -567,31 +629,31 @@
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L55
+ ldr r3, .L61
push {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
movs r5, #0
mov r4, r5
- ldrh r2, [r3, #298]
- ldrh r6, [r3, #254]
- muls r6, r2, r6
-.L49:
+ ldrh r6, [r3, #298]
+ ldrh r3, [r3, #254]
+ muls r6, r3, r6
+.L55:
uxth r0, r5
cmp r0, r6
- blt .L51
+ blt .L57
mov r0, r4
pop {r4, r5, r6, pc}
-.L51:
+.L57:
bl FtlBbmIsBadBlock
- cbz r0, .L50
+ cbz r0, .L56
adds r4, r4, #1
uxth r4, r4
-.L50:
- adds r5, r5, #1
- b .L49
.L56:
+ adds r5, r5, #1
+ b .L55
+.L62:
.align 2
-.L55:
+.L61:
.word .LANCHOR0
.fnend
.size FtlBbtCalcTotleCnt, .-FtlBbtCalcTotleCnt
@@ -608,25 +670,25 @@
@ frame_needed = 0, uses_anonymous_args = 0
push {r3, r4, r5, r6, r7, lr}
.save {r3, r4, r5, r6, r7, lr}
- mov r5, r1
- ldr r4, .L58
- mov r7, r0
- ldrh r6, [r4, #256]
- mov r1, r6
+ mov r4, r1
+ ldr r5, .L64
+ mov r6, r0
+ ldrh r7, [r5, #256]
+ mov r1, r7
bl __aeabi_uidiv
- ldrh r4, [r4, #298]
- smulbb r5, r6, r5
- mov r1, r6
- smulbb r4, r4, r0
- mov r0, r7
+ ldrh r5, [r5, #298]
+ smulbb r4, r7, r4
+ mov r1, r7
+ smulbb r5, r5, r0
+ mov r0, r6
bl __aeabi_uidivmod
- adds r0, r5, r1
- add r0, r0, r4
- uxth r0, r0
+ add r4, r4, r1
+ add r4, r4, r5
+ uxth r0, r4
pop {r3, r4, r5, r6, r7, pc}
-.L59:
+.L65:
.align 2
-.L58:
+.L64:
.word .LANCHOR0
.fnend
.size V2P_block, .-V2P_block
@@ -641,23 +703,23 @@
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L61
+ ldr r3, .L67
push {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
- mov r6, r0
- ldrh r5, [r3, #256]
+ mov r5, r0
+ ldrh r6, [r3, #256]
ldrh r1, [r3, #298]
bl __aeabi_uidiv
- mov r1, r5
- smulbb r4, r0, r5
- mov r0, r6
+ mov r1, r6
+ smulbb r4, r0, r6
+ mov r0, r5
bl __aeabi_uidivmod
- add r1, r1, r4
- uxth r0, r1
+ adds r0, r4, r1
+ uxth r0, r0
pop {r4, r5, r6, pc}
-.L62:
+.L68:
.align 2
-.L61:
+.L67:
.word .LANCHOR0
.fnend
.size P2V_plane, .-P2V_plane
@@ -674,17 +736,18 @@
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, lr}
.save {r4, lr}
- ldr r4, .L64
+ ldr r4, .L70
ldrh r1, [r4, #298]
bl __aeabi_uidivmod
- uxth r0, r1
+ mov r0, r1
ldrh r1, [r4, #256]
+ uxth r0, r0
bl __aeabi_uidiv
uxth r0, r0
pop {r4, pc}
-.L65:
+.L71:
.align 2
-.L64:
+.L70:
.word .LANCHOR0
.fnend
.size P2V_block_in_plane, .-P2V_block_in_plane
@@ -701,16 +764,16 @@
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
cmp r0, r1
- bls .L67
+ bls .L73
subs r0, r0, r1
cmp r0, #-2147483648
ite hi
movhi r0, #0
movls r0, #1
bx lr
-.L67:
- subs r0, r1, r0
- cmp r0, #-2147483648
+.L73:
+ subs r1, r1, r0
+ cmp r1, #-2147483648
ite ls
movls r0, #0
movhi r0, #1
@@ -729,14 +792,14 @@
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L70
+ ldr r3, .L76
ldrh r0, [r3, #418]
clz r0, r0
lsrs r0, r0, #5
bx lr
-.L71:
+.L77:
.align 2
-.L70:
+.L76:
.word .LANCHOR0
.fnend
.size FtlFreeSysBlkQueueEmpty, .-FtlFreeSysBlkQueueEmpty
@@ -752,15 +815,15 @@
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L73
+ ldr r3, .L79
ldrh r0, [r3, #418]
sub r3, r0, #1024
rsbs r0, r3, #0
adcs r0, r0, r3
bx lr
-.L74:
+.L80:
.align 2
-.L73:
+.L79:
.word .LANCHOR0
.fnend
.size FtlFreeSysBlkQueueFull, .-FtlFreeSysBlkQueueFull
@@ -775,41 +838,41 @@
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L84
+ ldr r3, .L90
push {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
ldrh r2, [r3, #418]
- cbz r2, .L75
- ldrh r5, [r3, #2496]
+ cbz r2, .L81
+ ldrh r4, [r3, #2496]
movs r0, #0
ldrh r1, [r3, #414]
- mov r6, r0
+ mov r5, r0
ldrh r2, [r3, #416]
- and r5, r5, #31
-.L77:
- uxth r4, r0
- adds r0, r0, #1
- cmp r5, r4
- bgt .L78
- cbz r6, .L75
+ and r4, r4, #31
+.L84:
+ uxth r6, r0
+ cmp r4, r6
+ bhi .L85
+ cbz r5, .L81
strh r1, [r3, #414] @ movhi
strh r2, [r3, #416] @ movhi
-.L75:
+.L81:
pop {r4, r5, r6, pc}
-.L78:
- add r4, r3, r1, lsl #1
- adds r1, r1, #1
- ubfx r1, r1, #0, #10
- ldrh r6, [r4, #420]
- add r4, r3, r2, lsl #1
- strh r6, [r4, #420] @ movhi
- movs r6, #1
- add r2, r2, r6
- ubfx r2, r2, #0, #10
- b .L77
.L85:
+ add r5, r3, r1, lsl #1
+ adds r1, r1, #1
+ adds r0, r0, #1
+ ubfx r1, r1, #0, #10
+ ldrh r6, [r5, #420]
+ add r5, r3, r2, lsl #1
+ adds r2, r2, #1
+ strh r6, [r5, #420] @ movhi
+ ubfx r2, r2, #0, #10
+ movs r5, #1
+ b .L84
+.L91:
.align 2
-.L84:
+.L90:
.word .LANCHOR0
.fnend
.size FtlFreeSysBLkSort, .-FtlFreeSysBLkSort
@@ -824,35 +887,36 @@
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L92
+ ldr r1, .L98
push {r4, r5, lr}
.save {r4, r5, lr}
- ldrh r4, [r3, #418]
+ ldrh r4, [r1, #418]
cmp r4, #1024
- beq .L90
- ldrh r5, [r3, #414]
- movs r1, #0
-.L88:
- cmp r1, r4
- bcc .L89
-.L90:
+ beq .L96
+ ldrh r5, [r1, #414]
+ movs r2, #0
+.L94:
+ cmp r4, r2
+ bhi .L95
+.L96:
movs r0, #0
- pop {r4, r5, pc}
-.L89:
- adds r2, r1, r5
- ubfx r2, r2, #0, #10
- add r2, r3, r2, lsl #1
- ldrh r2, [r2, #420]
- cmp r2, r0
- beq .L91
- adds r1, r1, #1
- b .L88
-.L91:
- movs r0, #1
- pop {r4, r5, pc}
-.L93:
- .align 2
.L92:
+ pop {r4, r5, pc}
+.L95:
+ adds r3, r5, r2
+ ubfx r3, r3, #0, #10
+ add r3, r1, r3, lsl #1
+ ldrh r3, [r3, #420]
+ cmp r3, r0
+ beq .L97
+ adds r2, r2, #1
+ b .L94
+.L97:
+ movs r0, #1
+ b .L92
+.L99:
+ .align 2
+.L98:
.word .LANCHOR0
.fnend
.size IsInFreeQueue, .-IsInFreeQueue
@@ -867,102 +931,103 @@
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
+ ldr r3, .L115
push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.pad #12
- ldr r2, .L109
- ldrh r3, [r2, #240]
- mov r1, r2
- cmp r3, r0
- bls .L96
+ ldrh r2, [r3, #240]
+ cmp r2, r0
+ bls .L102
movs r5, #6
- ldr lr, [r2, #2516]
+ ldr ip, [r3, #2516]
+ movw r2, #65535
muls r5, r0, r5
- movw r3, #65535
- add r4, lr, r5
- strh r3, [r4, #2] @ movhi
- strh r3, [lr, r5] @ movhi
- ldr r3, [r2, #2520]
- cbnz r3, .L97
- str r4, [r2, #2520]
-.L96:
+ add r4, ip, r5
+ strh r2, [r4, #2] @ movhi
+ strh r2, [ip, r5] @ movhi
+ ldr r1, [r3, #2520]
+ cbnz r1, .L103
+.L114:
+ str r4, [r3, #2520]
+ b .L102
+.L103:
+ ldrh r2, [r4, #4]
+ ldr r9, [r3, #72]
+ ldrh r7, [r9, r0, lsl #1]
+ cbz r2, .L110
+ muls r7, r2, r7
+.L104:
+ ldr r8, [r3, #2516]
+ movw fp, #65535
+ ldr r6, .L115+4
+ sub r2, r1, r8
+ asrs r2, r2, #1
+ muls r2, r6, r2
+ ldrh r6, [r3, #240]
+ str r6, [sp, #4]
+ movs r6, #0
+ uxth r2, r2
+.L108:
+ adds r6, r6, #1
+ ldr lr, [sp, #4]
+ uxth r6, r6
+ cmp r6, lr
+ bhi .L102
+ cmp r0, r2
+ beq .L102
+ ldrh r10, [r1, #4]
+ cmp r10, #0
+ beq .L106
+ ldrh lr, [r9, r2, lsl #1]
+ mul lr, r10, lr
+ cmp lr, r7
+ bcs .L106
+ ldrh lr, [r1]
+ cmp lr, fp
+ bne .L107
+ strh r2, [r4, #2] @ movhi
+ strh r0, [r1] @ movhi
+ str r4, [r3, #2524]
+.L102:
movs r0, #0
add sp, sp, #12
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L97:
- ldrh r7, [r4, #4]
- ldr r9, [r2, #72]
- ldrh r2, [r9, r0, lsl #1]
- cbz r7, .L104
- muls r2, r7, r2
-.L108:
- ldr r8, [r1, #2516]
- movw r10, #65535
- str r2, [sp]
- sub r2, r3, r8
- asrs r6, r2, #1
- ldr r2, .L109+4
- muls r2, r6, r2
- ldrh r6, [r1, #240]
- str r6, [sp, #4]
- movs r6, #0
- uxth r2, r2
-.L102:
- adds r6, r6, #1
- ldr r7, [sp, #4]
- uxth r6, r6
- cmp r6, r7
- bhi .L96
- cmp r0, r2
- beq .L96
- ldrh ip, [r3, #4]
- cmp ip, #0
- beq .L100
- ldrh fp, [r9, r2, lsl #1]
- ldr r7, [sp]
- mul ip, ip, fp
- cmp ip, r7
- bcs .L100
- ldrh ip, [r3]
- cmp ip, r10
- bne .L101
- strh r2, [r4, #2] @ movhi
- strh r0, [r3] @ movhi
- str r4, [r1, #2524]
- b .L96
-.L104:
- mov r2, #-1
- b .L108
-.L101:
- movs r3, #6
- mov r2, ip
- mla r3, r3, ip, r8
- b .L102
-.L100:
- strh r2, [lr, r5] @ movhi
- ldrh r2, [r3, #2]
- strh r2, [r4, #2] @ movhi
- ldr r2, [r1, #2520]
- cmp r3, r2
- ittte ne
- ldrhne r4, [r3, #2]
- movne r2, #6
- ldrne r1, [r1, #2516]
- strheq r0, [r3, #2] @ movhi
- iteee eq
- streq r4, [r1, #2520]
- mulne r2, r2, r4
- strhne r0, [r1, r2] @ movhi
- strhne r0, [r3, #2] @ movhi
- b .L96
.L110:
- .align 2
+ mov r7, #-1
+ b .L104
+.L107:
+ movs r2, #6
+ mla r1, r2, lr, r8
+ mov r2, lr
+ b .L108
+.L106:
+ strh r2, [ip, r5] @ movhi
+ ldrh r2, [r1, #2]
+ strh r2, [r4, #2] @ movhi
+ ldr r5, [r3, #2520]
+ cmp r1, r5
+ bne .L109
+ strh r0, [r1, #2] @ movhi
+ b .L114
.L109:
+ movs r4, #6
+ ldr r3, [r3, #2516]
+ muls r2, r4, r2
+ strh r0, [r3, r2] @ movhi
+ strh r0, [r1, #2] @ movhi
+ b .L102
+.L116:
+ .align 2
+.L115:
.word .LANCHOR0
.word -1431655765
.fnend
.size insert_data_list, .-insert_data_list
+ .section .rodata.str1.1
+.LC8:
+ .ascii "\012!!!!! error @ func:%s - line:%d\012\000"
+ .text
.align 1
.global INSERT_DATA_LIST
.syntax unified
@@ -977,24 +1042,24 @@
push {r3, lr}
.save {r3, lr}
bl insert_data_list
- ldr r2, .L113
+ ldr r2, .L119
ldrh r3, [r2, #2528]
adds r3, r3, #1
uxth r3, r3
strh r3, [r2, #2528] @ movhi
ldrh r2, [r2, #240]
cmp r2, r3
- bcs .L111
- movs r2, #214
- ldr r1, .L113+4
- ldr r0, .L113+8
+ bcs .L117
pop {r3, lr}
+ movs r2, #214
+ ldr r1, .L119+4
+ ldr r0, .L119+8
b sftl_printk
-.L111:
+.L117:
pop {r3, pc}
-.L114:
+.L120:
.align 2
-.L113:
+.L119:
.word .LANCHOR0
.word .LANCHOR1
.word .LC8
@@ -1013,67 +1078,66 @@
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, lr}
.save {r4, r5, r6, r7, r8, r9, r10, lr}
- movw r4, #65535
- cmp r0, r4
- beq .L116
- ldr r2, .L122
- movs r1, #6
- mul r7, r1, r0
- ldr ip, [r2, #2516]
- mov r5, r2
- add r6, ip, r7
- strh r4, [r6, #2] @ movhi
- strh r4, [ip, r7] @ movhi
- ldr r3, [r2, #2532]
- cbnz r3, .L117
- str r6, [r2, #2532]
-.L116:
+ movw r5, #65535
+ cmp r0, r5
+ beq .L122
+ ldr r1, .L129
+ mov lr, #6
+ mul r6, lr, r0
+ ldr r7, [r1, #2516]
+ adds r4, r7, r6
+ strh r5, [r4, #2] @ movhi
+ strh r5, [r7, r6] @ movhi
+ ldr r3, [r1, #2532]
+ cbnz r3, .L123
+.L128:
+ str r4, [r1, #2532]
+ b .L122
+.L123:
+ ldr ip, [r1, #2516]
+ ldr r10, .L129+4
+ sub r2, r3, ip
+ ldr r8, [r1, #2536]
+ asrs r2, r2, #1
+ ldrh r9, [r8, r0, lsl #1]
+ mul r2, r10, r2
+ uxth r2, r2
+.L126:
+ ldrh r10, [r8, r2, lsl #1]
+ cmp r10, r9
+ bcs .L124
+ ldrh r10, [r3]
+ cmp r10, r5
+ bne .L125
+ strh r2, [r4, #2] @ movhi
+ strh r0, [r3] @ movhi
+.L122:
movs r0, #0
pop {r4, r5, r6, r7, r8, r9, r10, pc}
-.L117:
- ldr lr, [r2, #2516]
- ldr r8, [r2, #2536]
- sub r2, r3, lr
- asr r10, r2, #1
- ldr r2, .L122+4
- ldrh r9, [r8, r0, lsl #1]
- mul r2, r2, r10
- mov r10, r4
- uxth r2, r2
-.L120:
- ldrh r4, [r8, r2, lsl #1]
- cmp r4, r9
- bcs .L118
- ldrh r4, [r3]
- cmp r4, r10
- bne .L119
- strh r2, [r6, #2] @ movhi
- strh r0, [r3] @ movhi
- b .L116
-.L119:
- mla r3, r1, r4, lr
- mov r2, r4
- b .L120
-.L118:
- ldrh r1, [r3, #2]
- strh r1, [r6, #2] @ movhi
- strh r2, [ip, r7] @ movhi
- ldr r2, [r5, #2532]
- cmp r3, r2
- ittte ne
- ldrhne r4, [r3, #2]
- movne r2, #6
- ldrne r1, [r5, #2516]
- strheq r0, [r3, #2] @ movhi
- iteee eq
- streq r6, [r5, #2532]
- mulne r2, r2, r4
- strhne r0, [r1, r2] @ movhi
- strhne r0, [r3, #2] @ movhi
- b .L116
-.L123:
+.L125:
+ mla r3, lr, r10, ip
+ mov r2, r10
+ b .L126
+.L124:
+ ldrh r5, [r3, #2]
+ strh r5, [r4, #2] @ movhi
+ strh r2, [r7, r6] @ movhi
+ ldr r2, [r1, #2532]
+ cmp r2, r3
+ bne .L127
+ strh r0, [r3, #2] @ movhi
+ b .L128
+.L127:
+ ldrh r2, [r3, #2]
+ movs r4, #6
+ ldr r1, [r1, #2516]
+ muls r2, r4, r2
+ strh r0, [r1, r2] @ movhi
+ strh r0, [r3, #2] @ movhi
+ b .L122
+.L130:
.align 2
-.L122:
+.L129:
.word .LANCHOR0
.word -1431655765
.fnend
@@ -1092,24 +1156,24 @@
push {r3, lr}
.save {r3, lr}
bl insert_free_list
- ldr r2, .L126
+ ldr r2, .L133
ldrh r3, [r2, #224]
adds r3, r3, #1
uxth r3, r3
strh r3, [r2, #224] @ movhi
ldrh r2, [r2, #240]
cmp r2, r3
- bcs .L124
- movs r2, #207
- ldr r1, .L126+4
- ldr r0, .L126+8
+ bcs .L131
pop {r3, lr}
+ movs r2, #207
+ ldr r1, .L133+4
+ ldr r0, .L133+8
b sftl_printk
-.L124:
+.L131:
pop {r3, pc}
-.L127:
+.L134:
.align 2
-.L126:
+.L133:
.word .LANCHOR0
.word .LANCHOR1+17
.word .LC8
@@ -1128,70 +1192,73 @@
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, lr}
.save {r4, r5, r6, r7, r8, lr}
- movs r6, #6
- ldr r4, .L134
- muls r6, r1, r6
+ movs r4, #6
+ ldr r8, .L146
+ muls r4, r1, r4
movw r3, #65535
- mov r8, r0
- ldr r7, [r4, #2516]
- adds r5, r7, r6
- ldrh r2, [r5, #2]
+ mov r5, r0
+ ldr r7, [r8, #2516]
+ adds r6, r7, r4
+ ldrh r2, [r6, #2]
cmp r2, r3
- bne .L129
+ bne .L136
ldr r3, [r0]
- cmp r5, r3
- beq .L129
- mov r2, #372
- ldr r1, .L134+4
- ldr r0, .L134+8
- bl sftl_printk
-.L129:
- ldr r3, [r8]
- movw r1, #65535
- cmp r5, r3
- ldrh r3, [r7, r6]
- bne .L130
- cmp r3, r1
- ittee ne
- ldrne r0, [r4, #2516]
- movne r2, #6
- moveq r3, #0
- streq r3, [r8]
- ittt ne
- mlane r3, r2, r3, r0
- strne r3, [r8]
- strhne r1, [r3, #2] @ movhi
-.L132:
+ cmp r6, r3
+ bne .L137
+.L140:
+ ldrh r1, [r7, r4]
+ movw r2, #65535
+ cmp r1, r2
+ bne .L144
+ movs r3, #0
+ str r3, [r5]
+.L142:
movw r3, #65535
+ strh r3, [r7, r4] @ movhi
+ strh r3, [r6, #2] @ movhi
movs r0, #0
- strh r3, [r7, r6] @ movhi
- strh r3, [r5, #2] @ movhi
pop {r4, r5, r6, r7, r8, pc}
-.L130:
- cmp r3, r1
- ldrh r1, [r5, #2]
- bne .L133
- cmp r1, r3
- beq .L132
- movs r2, #6
- ldr r0, [r4, #2516]
- muls r1, r2, r1
- strh r3, [r0, r1] @ movhi
- b .L132
-.L133:
- ldr r0, [r4, #2516]
- movs r2, #6
- mla r3, r2, r3, r0
- strh r1, [r3, #2] @ movhi
- ldrh r0, [r5, #2]
- ldrh r1, [r7, r6]
- ldr r3, [r4, #2516]
- muls r2, r0, r2
- strh r1, [r3, r2] @ movhi
- b .L132
-.L135:
+.L137:
+ ldr r1, .L146+4
+ mov r2, #372
+ ldr r0, .L146+8
+ bl sftl_printk
+.L136:
+ ldr r3, [r5]
+ ldrh r2, [r7, r4]
+ cmp r3, r6
+ beq .L140
+ movw r1, #65535
+ ldrh r3, [r6, #2]
+ cmp r2, r1
+ bne .L143
+ cmp r3, r2
+ beq .L142
+ movs r0, #6
+ ldr r1, [r8, #2516]
+ muls r3, r0, r3
+ strh r2, [r1, r3] @ movhi
+ b .L142
+.L144:
+ ldr r3, [r8, #2516]
+ movs r0, #6
+ mla r3, r0, r1, r3
+ str r3, [r5]
+ strh r2, [r3, #2] @ movhi
+ b .L142
+.L143:
+ ldr r1, [r8, #2516]
+ movs r0, #6
+ mla r2, r0, r2, r1
+ strh r3, [r2, #2] @ movhi
+ muls r3, r0, r3
+ ldr r2, [r8, #2516]
+ ldrh r1, [r7, r4]
+ strh r1, [r2, r3] @ movhi
+ b .L142
+.L147:
.align 2
-.L134:
+.L146:
.word .LANCHOR0
.word .LANCHOR1+34
.word .LC8
@@ -1211,36 +1278,37 @@
push {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
ldr r3, [r0]
- cbz r3, .L142
- ldr r2, .L143
+ cbz r3, .L153
+ ldr r2, .L157
movw r5, #65535
movs r6, #6
- ldr r2, [r2, #2516]
-.L138:
- cbnz r1, .L139
-.L141:
- ldr r4, .L143+4
- subs r3, r3, r2
- asrs r3, r3, #1
+ ldr r4, [r2, #2516]
+.L150:
+ cbz r1, .L151
+ ldrh r2, [r3]
+ cmp r2, r5
+ bne .L152
+.L151:
+ subs r4, r3, r4
+ ldr r3, .L157+4
+ asrs r4, r4, #1
muls r4, r3, r4
uxth r1, r4
bl List_remove_node
uxth r0, r4
+.L148:
pop {r4, r5, r6, pc}
-.L139:
- ldrh r4, [r3]
- cmp r4, r5
- beq .L141
+.L152:
subs r1, r1, #1
- mla r3, r6, r4, r2
+ mla r3, r6, r2, r4
uxth r1, r1
- b .L138
-.L142:
+ b .L150
+.L153:
movw r0, #65535
- pop {r4, r5, r6, pc}
-.L144:
+ b .L148
+.L158:
.align 2
-.L143:
+.L157:
.word .LANCHOR0
.word -1431655765
.fnend
@@ -1272,37 +1340,38 @@
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r2, .L152
- push {r4, lr}
- .save {r4, lr}
+ ldr r2, .L166
+ push {r4, r5, lr}
+ .save {r4, r5, lr}
ldr r3, [r2, #2520]
- cbz r3, .L151
- ldr r1, [r2, #2516]
- movs r4, #6
- movw r2, #65535
-.L148:
- cbz r0, .L149
+ cbz r3, .L165
+ ldr r4, [r2, #2516]
+ movw r1, #65535
+ movs r5, #6
+.L162:
+ cbz r0, .L163
ldrh r3, [r3]
- cmp r3, r2
- bne .L150
-.L151:
+ cmp r3, r1
+ bne .L164
+.L165:
movw r0, #65535
- pop {r4, pc}
-.L150:
- subs r0, r0, #1
- mla r3, r4, r3, r1
+.L160:
+ pop {r4, r5, pc}
+.L164:
+ subs r2, r0, #1
+ mla r3, r5, r3, r4
+ uxth r0, r2
+ b .L162
+.L163:
+ subs r0, r3, r4
+ ldr r3, .L166+4
+ asrs r0, r0, #1
+ muls r0, r3, r0
uxth r0, r0
- b .L148
-.L149:
- ldr r0, .L152+4
- subs r3, r3, r1
- asrs r3, r3, #1
- muls r3, r0, r3
- uxth r0, r3
- pop {r4, pc}
-.L153:
+ b .L160
+.L167:
.align 2
-.L152:
+.L166:
.word .LANCHOR0
.word -1431655765
.fnend
@@ -1321,92 +1390,92 @@
push {r3, r4, r5, r6, r7, r8, r9, lr}
.save {r3, r4, r5, r6, r7, r8, r9, lr}
mov r5, r0
- ldr r4, .L165
+ ldr r4, .L179
ldrh r3, [r4, #24]
cmp r3, r0
- beq .L156
+ beq .L170
ldrh r3, [r4, #76]
cmp r3, r0
- beq .L156
+ beq .L170
ldrh r3, [r4, #124]
cmp r3, r0
- beq .L156
- movs r7, #6
+ beq .L170
+ movs r6, #6
ldr r9, [r4, #2516]
- muls r7, r0, r7
ldr r3, [r4, #2520]
- add r8, r9, r7
+ muls r6, r0, r6
+ add r8, r9, r6
cmp r8, r3
- beq .L156
- ldrh r6, [r8, #4]
+ beq .L170
ldr r3, [r4, #72]
- ldrh r3, [r3, r0, lsl #1]
- cmp r6, #0
- beq .L163
- muls r6, r3, r6
-.L158:
+ ldrh r7, [r3, r0, lsl #1]
+ ldrh r3, [r8, #4]
+ cmp r3, #0
+ beq .L177
+ muls r7, r3, r7
+.L172:
ldrh r3, [r8, #2]
movw r2, #65535
cmp r3, r2
- bne .L159
- ldrh r2, [r9, r7]
+ bne .L173
+ ldrh r2, [r9, r6]
cmp r2, r3
- bne .L159
+ bne .L173
+ ldr r1, .L179+4
movw r2, #463
- ldr r1, .L165+4
- ldr r0, .L165+8
+ ldr r0, .L179+8
bl sftl_printk
-.L159:
+.L173:
ldrh r3, [r8, #2]
movw r2, #65535
cmp r3, r2
- bne .L160
- ldrh r2, [r9, r7]
+ bne .L174
+ ldrh r2, [r9, r6]
cmp r2, r3
- beq .L156
-.L160:
+ beq .L170
+.L174:
movs r2, #6
- muls r2, r3, r2
- ldr r3, .L165+12
- asrs r1, r2, #1
- muls r3, r1, r3
+ ldr r1, .L179+12
+ muls r3, r2, r3
+ asrs r2, r3, #1
+ muls r2, r1, r2
ldr r1, [r4, #72]
- ldrh r0, [r1, r3, lsl #1]
+ ldrh r2, [r1, r2, lsl #1]
ldr r1, [r4, #2516]
- add r2, r2, r1
- ldrh r3, [r2, #4]
- cbz r3, .L164
- muls r3, r0, r3
-.L161:
- cmp r6, r3
- bcs .L156
+ add r3, r3, r1
+ ldrh r3, [r3, #4]
+ cbz r3, .L178
+ muls r3, r2, r3
+.L175:
+ cmp r7, r3
+ bcs .L170
+ ldr r0, .L179+16
mov r1, r5
- ldr r0, .L165+16
bl List_remove_node
ldrh r3, [r4, #2528]
- cbnz r3, .L162
+ cbnz r3, .L176
+ ldr r1, .L179+4
mov r2, #474
- ldr r1, .L165+4
- ldr r0, .L165+8
+ ldr r0, .L179+8
bl sftl_printk
-.L162:
+.L176:
ldrh r3, [r4, #2528]
mov r0, r5
subs r3, r3, #1
strh r3, [r4, #2528] @ movhi
bl INSERT_DATA_LIST
-.L156:
+.L170:
movs r0, #0
pop {r3, r4, r5, r6, r7, r8, r9, pc}
-.L163:
- mov r6, #-1
- b .L158
-.L164:
+.L177:
+ mov r7, #-1
+ b .L172
+.L178:
mov r3, #-1
- b .L161
-.L166:
+ b .L175
+.L180:
.align 2
-.L165:
+.L179:
.word .LANCHOR0
.word .LANCHOR1+51
.word .LC8
@@ -1425,80 +1494,82 @@
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
+ ldr r0, .L191
+ movs r1, #0
push {r3, r4, r5, r6, r7, lr}
.save {r3, r4, r5, r6, r7, lr}
- movs r1, #0
- ldr r5, .L177
- movs r0, #12
- movw r6, #65535
- ldrh r2, [r5, #338]
- ldr r3, [r5, #2540]
-.L168:
+ movs r6, #12
+ movw r7, #65535
+ ldr r3, [r0, #2540]
+ ldrh r2, [r0, #338]
+ sub r5, r3, #12
+.L182:
uxth r4, r1
- cmp r4, r2
- bcc .L170
+ cmp r2, r4
+ bhi .L184
mov r4, r2
+ add ip, r3, #4
movs r1, #0
mov r7, #-2147483648
- mov ip, #12
-.L171:
+ mov lr, #12
+.L185:
uxth r6, r1
- cmp r6, r2
- bcc .L173
- cmp r4, r2
- bcc .L169
- ldrh r7, [r5, #2544]
+ cmp r2, r6
+ bhi .L187
+ cmp r2, r4
+ bhi .L183
mov r4, r2
+ ldrh r7, [r0, #2544]
movs r1, #0
mov r0, #-1
-.L174:
+.L188:
uxth r5, r1
- cmp r5, r2
- bcc .L176
- cmp r4, r2
- bcc .L169
+ cmp r2, r5
+ bhi .L190
+ cmp r2, r4
+ bhi .L183
+ ldr r1, .L191+4
mov r2, #796
- ldr r1, .L177+4
- ldr r0, .L177+8
+ ldr r0, .L191+8
bl sftl_printk
- b .L169
-.L170:
+ b .L183
+.L184:
adds r1, r1, #1
- mla r7, r0, r1, r3
- ldrh r7, [r7, #-12]
- cmp r7, r6
- bne .L168
-.L169:
+ mul ip, r6, r1
+ ldrh ip, [r5, ip]
+ cmp ip, r7
+ bne .L182
+.L183:
mov r0, r4
pop {r3, r4, r5, r6, r7, pc}
-.L173:
- mla r0, ip, r1, r3
- ldr r0, [r0, #4]
- cmp r0, #0
- blt .L172
- cmp r7, r0
- itt hi
- movhi r7, r0
- movhi r4, r6
-.L172:
+.L187:
+ mul r5, lr, r1
+ ldr r5, [ip, r5]
+ cmp r5, #0
+ blt .L186
+ cmp r5, r7
+ itt cc
+ movcc r7, r5
+ movcc r4, r6
+.L186:
adds r1, r1, #1
- b .L171
-.L176:
+ b .L185
+.L190:
ldr r6, [r3, #4]
- cmp r0, r6
- bls .L175
+ cmp r6, r0
+ bcs .L189
ldrh ip, [r3]
cmp ip, r7
itt ne
movne r0, r6
movne r4, r5
-.L175:
+.L189:
adds r1, r1, #1
adds r3, r3, #12
- b .L174
-.L178:
+ b .L188
+.L192:
.align 2
-.L177:
+.L191:
.word .LANCHOR0
.word .LANCHOR1+73
.word .LC8
@@ -1515,18 +1586,18 @@
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r1, .L185
+ ldr r3, .L199
push {r4, r5, lr}
.save {r4, r5, lr}
- mov r3, r1
- ldrh r2, [r1, #2546]
+ ldrh r2, [r3, #2546]
cmp r2, #4
- bhi .L180
- cbnz r0, .L180
+ bhi .L194
+ cbnz r0, .L194
adds r2, r2, #1
- strh r2, [r1, #2546] @ movhi
+ strh r2, [r3, #2546] @ movhi
+.L193:
pop {r4, r5, pc}
-.L180:
+.L194:
movs r2, #0
ldrh r1, [r3, #240]
strh r2, [r3, #2546] @ movhi
@@ -1534,21 +1605,19 @@
str r2, [r3, #2548]
ldr r2, [r3, #72]
add r1, r2, r1, lsl #1
-.L181:
+.L195:
cmp r2, r1
- bne .L183
- pop {r4, r5, pc}
-.L183:
+ beq .L193
ldrh r4, [r2], #2
cmp r4, r5
ittt ne
ldrne r0, [r3, #2548]
addne r0, r0, r4
strne r0, [r3, #2548]
- b .L181
-.L186:
+ b .L195
+.L200:
.align 2
-.L185:
+.L199:
.word .LANCHOR0
.fnend
.size FtlUpdateVaildLpn, .-FtlUpdateVaildLpn
@@ -1563,52 +1632,52 @@
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- movs r3, #0
push {r4, r5, r6, r7, lr}
.save {r4, r5, r6, r7, lr}
- strh r3, [r0, #4] @ movhi
- add r4, r0, r2, lsl #1
- movw r7, #65535
- ldr r3, .L194
- adds r4, r4, #14
- ldrh r5, [r3, #232]
-.L188:
- cmp r2, r5
- bcc .L190
- ldrh r3, [r3, #302]
- add r4, r0, #16
- movw r6, #65535
- subs r3, r3, #1
- subs r1, r3, r1
+ add r4, r2, #8
+ ldr r6, .L208
+ add r4, r0, r4, lsl #1
movs r3, #0
- uxth r1, r1
-.L191:
- uxth r2, r3
+ movw r7, #65535
+ strh r3, [r0, #4] @ movhi
+ ldrh r5, [r6, #232]
+.L202:
cmp r5, r2
- bhi .L193
+ bhi .L204
+ ldrh r3, [r6, #302]
+ add r4, r0, #16
+ movs r2, #0
+ movw r6, #65535
+ subs r3, r3, r1
+ subs r3, r3, #1
+ sxth r3, r3
+.L205:
+ uxth r1, r2
+ cmp r5, r1
+ bhi .L207
pop {r4, r5, r6, r7, pc}
-.L190:
- ldrh r6, [r4, #2]!
+.L204:
+ ldrh r3, [r4], #2
adds r2, r2, #1
+ cmp r3, r7
uxth r2, r2
- cmp r6, r7
ittt ne
- ldrhne r6, [r0, #4]
- addne r6, r6, #1
- strhne r6, [r0, #4] @ movhi
- b .L188
-.L193:
- ldrh r2, [r4], #2
- adds r3, r3, #1
- cmp r2, r6
+ ldrhne r3, [r0, #4]
+ addne r3, r3, #1
+ strhne r3, [r0, #4] @ movhi
+ b .L202
+.L207:
+ ldrh r1, [r4], #2
+ adds r2, r2, #1
+ cmp r1, r6
ittt ne
- ldrhne r2, [r0, #4]
- addne r2, r2, r1
- strhne r2, [r0, #4] @ movhi
- b .L191
-.L195:
+ ldrhne r1, [r0, #4]
+ addne r1, r1, r3
+ strhne r1, [r0, #4] @ movhi
+ b .L205
+.L209:
.align 2
-.L194:
+.L208:
.word .LANCHOR0
.fnend
.size ftl_sb_update_avl_pages, .-ftl_sb_update_avl_pages
@@ -1624,43 +1693,42 @@
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
ldrh r3, [r0, #4]
- push {r4, r5, lr}
- .save {r4, r5, lr}
- cbz r3, .L196
- ldrh r2, [r0]
- movw r3, #65535
- cmp r2, r3
- beq .L196
- ldrb r2, [r0, #6] @ zero_extendqisi2
- movs r5, #0
- adds r2, r2, #8
- ldrh r1, [r0, r2, lsl #1]
- ldr r2, .L202
- ldrh r4, [r2, #232]
- mov r2, r3
-.L199:
- cmp r1, r2
- beq .L201
-.L196:
- pop {r4, r5, pc}
-.L201:
+ push {r4, lr}
+ .save {r4, lr}
+ cbz r3, .L210
+ ldrh r3, [r0]
+ movw r2, #65535
+ cmp r3, r2
+ beq .L210
+ ldrb r3, [r0, #6] @ zero_extendqisi2
+ movs r4, #0
+ ldr r1, .L216
+ adds r3, r3, #8
+ ldrh r1, [r1, #232]
+ ldrh r3, [r0, r3, lsl #1]
+.L213:
+ cmp r3, r2
+ beq .L215
+.L210:
+ pop {r4, pc}
+.L215:
ldrb r3, [r0, #6] @ zero_extendqisi2
adds r3, r3, #1
uxtb r3, r3
- cmp r3, r4
strb r3, [r0, #6]
+ cmp r3, r1
itttt eq
+ strbeq r4, [r0, #6]
ldrheq r3, [r0, #2]
- strbeq r5, [r0, #6]
addeq r3, r3, #1
strheq r3, [r0, #2] @ movhi
ldrb r3, [r0, #6] @ zero_extendqisi2
adds r3, r3, #8
- ldrh r1, [r0, r3, lsl #1]
- b .L199
-.L203:
+ ldrh r3, [r0, r3, lsl #1]
+ b .L213
+.L217:
.align 2
-.L202:
+.L216:
.word .LANCHOR0
.fnend
.size FtlSlcSuperblockCheck, .-FtlSlcSuperblockCheck
@@ -1678,36 +1746,37 @@
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, .L210
+ ldr r8, .L224
ldrh r2, [r0]
- ldrh r3, [r6, #240]
+ ldrh r3, [r8, #240]
cmp r2, r3
- bcc .L205
+ bcc .L219
+ ldr r1, .L224+4
movw r2, #2157
- ldr r1, .L210+4
- ldr r0, .L210+8
+ ldr r0, .L224+8
bl sftl_printk
-.L205:
- ldrh r9, [r6, #232]
- add r7, r4, #16
- ldr r10, .L210+12
- movw r8, #65535
- movs r5, #0
- strh r5, [r4, #4] @ movhi
- strb r5, [r4, #7]
-.L206:
- uxth r3, r5
+.L219:
+ ldrh r6, [r8, #232]
+ add r5, r4, #16
+ ldr r9, .L224+12
+ movs r3, #0
+ movw r10, #65535
+ strh r3, [r4, #4] @ movhi
+ add r6, r4, r6, lsl #1
+ strb r3, [r4, #7]
+ adds r6, r6, #16
+.L220:
ldrh r1, [r4]
- cmp r9, r3
- bhi .L208
- ldrh r2, [r6, #302]
+ cmp r6, r5
+ ldrb fp, [r4, #7] @ zero_extendqisi2
+ bne .L222
+ ldrh r3, [r8, #302]
movs r0, #0
- ldrb r3, [r4, #7] @ zero_extendqisi2
- smulbb r3, r3, r2
+ smulbb r3, r3, fp
strh r3, [r4, #4] @ movhi
movs r3, #0
strb r3, [r4, #9]
- ldr r3, [r6, #2536]
+ ldr r3, [r8, #2536]
ldrh r2, [r3, r1, lsl #1]
movw r3, #10000
cmp r2, r3
@@ -1715,24 +1784,22 @@
movhi r3, #1
strbhi r3, [r4, #9]
pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L208:
- ldrb r0, [r10, r5] @ zero_extendqisi2
+.L222:
+ ldrb r0, [r9], #1 @ zero_extendqisi2
bl V2P_block
- strh r8, [r7] @ movhi
- mov fp, r0
+ strh r10, [r5] @ movhi
+ mov r7, r0
bl FtlBbmIsBadBlock
- cbnz r0, .L207
- strh fp, [r7] @ movhi
- ldrb r3, [r4, #7] @ zero_extendqisi2
- adds r3, r3, #1
+ cbnz r0, .L221
+ add r3, fp, #1
+ strh r7, [r5] @ movhi
strb r3, [r4, #7]
-.L207:
- adds r5, r5, #1
- adds r7, r7, #2
- b .L206
-.L211:
+.L221:
+ adds r5, r5, #2
+ b .L220
+.L225:
.align 2
-.L210:
+.L224:
.word .LANCHOR0
.word .LANCHOR1+95
.word .LC8
@@ -1752,45 +1819,43 @@
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, lr}
.save {r4, r5, r6, r7, r8, r9, r10, lr}
- movs r5, #0
- ldr r6, .L218
- mov r7, r0
- mov r4, r5
- ldrh r8, [r6, #232]
- add r10, r6, #260
- ldrh r9, [r6, #302]
-.L213:
- uxth r3, r5
- cmp r8, r3
- bhi .L215
- cbz r4, .L217
+ movs r6, #0
+ ldr r5, .L234
+ mov r8, r0
+ mov r4, r6
+ add r7, r5, #260
+ ldrh r9, [r5, #232]
+ ldrh r10, [r5, #302]
+.L227:
+ uxth r3, r6
+ cmp r9, r3
+ bhi .L229
+ cbz r4, .L230
mov r1, r4
mov r0, #32768
bl __aeabi_idiv
-.L216:
- ldr r1, [r6, #2516]
- movs r3, #6
- mla r1, r3, r7, r1
- strh r0, [r1, #4] @ movhi
+ uxth r4, r0
+.L230:
+ ldr r0, [r5, #2516]
+ movs r2, #6
+ mla r0, r2, r8, r0
+ strh r4, [r0, #4] @ movhi
movs r0, #0
pop {r4, r5, r6, r7, r8, r9, r10, pc}
-.L215:
- mov r1, r7
- ldrb r0, [r10, r5] @ zero_extendqisi2
+.L229:
+ mov r1, r8
+ ldrb r0, [r7], #1 @ zero_extendqisi2
bl V2P_block
bl FtlBbmIsBadBlock
- cbnz r0, .L214
- add r4, r4, r9
+ cbnz r0, .L228
+ add r4, r4, r10
uxth r4, r4
-.L214:
- adds r5, r5, #1
- b .L213
-.L217:
- mov r0, r4
- b .L216
-.L219:
+.L228:
+ adds r6, r6, #1
+ b .L227
+.L235:
.align 2
-.L218:
+.L234:
.word .LANCHOR0
.fnend
.size update_multiplier_value, .-update_multiplier_value
@@ -1806,22 +1871,22 @@
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r2, .L223
- ldr r0, [r2, #2532]
- cbz r0, .L221
- ldr r3, [r2, #2516]
- subs r0, r0, r3
- ldr r3, .L223+4
+ ldr r3, .L239
+ ldr r0, [r3, #2532]
+ cbz r0, .L237
+ ldr r2, [r3, #2516]
+ ldr r3, [r3, #2536]
+ subs r0, r0, r2
+ ldr r2, .L239+4
asrs r0, r0, #1
- muls r0, r3, r0
- ldr r3, [r2, #2536]
+ muls r0, r2, r0
uxth r0, r0
ldrh r0, [r3, r0, lsl #1]
-.L221:
+.L237:
bx lr
-.L224:
+.L240:
.align 2
-.L223:
+.L239:
.word .LANCHOR0
.word -1431655765
.fnend
@@ -1837,52 +1902,187 @@
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r1, .L233
+ ldr r1, .L248
+ mov r2, r0
push {r4, r5, r6, r7, lr}
.save {r4, r5, r6, r7, lr}
- ldr r3, [r1, #2532]
- cbz r3, .L231
- ldrh r2, [r1, #224]
- movs r6, #6
- ldr r4, [r1, #2516]
- movw r7, #65535
- rsb r2, r2, r2, lsl #3
- subs r3, r3, r4
- asrs r3, r3, #1
- asrs r2, r2, #3
- cmp r0, r2
+ ldr r0, [r1, #2532]
+ cbz r0, .L242
+ ldrh r3, [r1, #224]
+ movs r7, #6
+ movw ip, #65535
+ rsb r3, r3, r3, lsl #3
+ asrs r4, r3, #3
+ cmp r2, r3, asr #3
it gt
- uxthgt r0, r2
- ldr r2, .L233+4
- muls r3, r2, r3
- movs r2, #0
+ uxthgt r2, r4
+ ldr r4, [r1, #2516]
+ subs r3, r0, r4
+ ldr r0, .L248+4
+ asrs r3, r3, #1
+ muls r3, r0, r3
+ movs r0, #0
uxth r3, r3
-.L228:
- uxth r5, r2
- cmp r0, r5
- bls .L230
- mul r5, r6, r3
- adds r2, r2, #1
- ldrh r5, [r4, r5]
- cmp r5, r7
- bne .L232
-.L230:
- ldr r2, [r1, #2536]
- ldrh r0, [r2, r3, lsl #1]
+.L244:
+ uxth r6, r0
+ mov r5, r3
+ cmp r6, r2
+ bcs .L245
+ muls r3, r7, r3
+ adds r0, r0, #1
+ ldrh r3, [r4, r3]
+ cmp r3, ip
+ bne .L244
+.L245:
+ ldr r3, [r1, #2536]
+ ldrh r0, [r3, r5, lsl #1]
+.L242:
pop {r4, r5, r6, r7, pc}
-.L232:
- mov r3, r5
- b .L228
-.L231:
- mov r0, r3
- pop {r4, r5, r6, r7, pc}
-.L234:
+.L249:
.align 2
-.L233:
+.L248:
.word .LANCHOR0
.word -1431655765
.fnend
.size GetFreeBlockMaxEraseCount, .-GetFreeBlockMaxEraseCount
+ .section .rodata.str1.1
+.LC9:
+ .ascii "FLASH INFO:\012\000"
+.LC10:
+ .ascii "Device Capacity: %d MB\012\000"
+.LC11:
+ .ascii "FTL INFO:\012\000"
+.LC12:
+ .ascii "g_MaxLpn = 0x%x\012\000"
+.LC13:
+ .ascii "g_VaildLpn = 0x%x\012\000"
+.LC14:
+ .ascii "read_page_count = 0x%x\012\000"
+.LC15:
+ .ascii "discard_page_count = 0x%x\012\000"
+.LC16:
+ .ascii "write_page_count = 0x%x\012\000"
+.LC17:
+ .ascii "cache_write_count = 0x%x\012\000"
+.LC18:
+ .ascii "l2p_write_count = 0x%x\012\000"
+.LC19:
+ .ascii "gc_page_count = 0x%x\012\000"
+.LC20:
+ .ascii "totle_write = %d MB\012\000"
+.LC21:
+ .ascii "totle_read = %d MB\012\000"
+.LC22:
+ .ascii "GSV = 0x%x\012\000"
+.LC23:
+ .ascii "GDV = 0x%x\012\000"
+.LC24:
+ .ascii "bad blk num = %d\012\000"
+.LC25:
+ .ascii "free_superblocks = 0x%x\012\000"
+.LC26:
+ .ascii "mlc_EC = 0x%x\012\000"
+.LC27:
+ .ascii "slc_EC = 0x%x\012\000"
+.LC28:
+ .ascii "avg_EC = 0x%x\012\000"
+.LC29:
+ .ascii "sys_EC = 0x%x\012\000"
+.LC30:
+ .ascii "max_EC = 0x%x\012\000"
+.LC31:
+ .ascii "min_EC = 0x%x\012\000"
+.LC32:
+ .ascii "PLT = 0x%x\012\000"
+.LC33:
+ .ascii "POT = 0x%x\012\000"
+.LC34:
+ .ascii "MaxSector = 0x%x\012\000"
+.LC35:
+ .ascii "init_sys_blks_pp = 0x%x\012\000"
+.LC36:
+ .ascii "sys_blks_pp = 0x%x\012\000"
+.LC37:
+ .ascii "free sysblock = 0x%x\012\000"
+.LC38:
+ .ascii "data_blks_pp = 0x%x\012\000"
+.LC39:
+ .ascii "data_op_blks_pp = 0x%x\012\000"
+.LC40:
+ .ascii "max_data_blks = 0x%x\012\000"
+.LC41:
+ .ascii "Sys.id = 0x%x\012\000"
+.LC42:
+ .ascii "Bbt.id = 0x%x\012\000"
+.LC43:
+ .ascii "ACT.page = 0x%x\012\000"
+.LC44:
+ .ascii "ACT.plane = 0x%x\012\000"
+.LC45:
+ .ascii "ACT.id = 0x%x\012\000"
+.LC46:
+ .ascii "ACT.mode = 0x%x\012\000"
+.LC47:
+ .ascii "ACT.a_pages = 0x%x\012\000"
+.LC48:
+ .ascii "ACT VPC = 0x%x\012\000"
+.LC49:
+ .ascii "BUF.page = 0x%x\012\000"
+.LC50:
+ .ascii "BUF.plane = 0x%x\012\000"
+.LC51:
+ .ascii "BUF.id = 0x%x\012\000"
+.LC52:
+ .ascii "BUF.mode = 0x%x\012\000"
+.LC53:
+ .ascii "BUF.a_pages = 0x%x\012\000"
+.LC54:
+ .ascii "BUF VPC = 0x%x\012\000"
+.LC55:
+ .ascii "TMP.page = 0x%x\012\000"
+.LC56:
+ .ascii "TMP.plane = 0x%x\012\000"
+.LC57:
+ .ascii "TMP.id = 0x%x\012\000"
+.LC58:
+ .ascii "TMP.mode = 0x%x\012\000"
+.LC59:
+ .ascii "TMP.a_pages = 0x%x\012\000"
+.LC60:
+ .ascii "GC.page = 0x%x\012\000"
+.LC61:
+ .ascii "GC.plane = 0x%x\012\000"
+.LC62:
+ .ascii "GC.id = 0x%x\012\000"
+.LC63:
+ .ascii "GC.mode = 0x%x\012\000"
+.LC64:
+ .ascii "GC.a_pages = 0x%x\012\000"
+.LC65:
+ .ascii "WR_CHK = %x %x %x\012\000"
+.LC66:
+ .ascii "Read Err Cnt = 0x%x\012\000"
+.LC67:
+ .ascii "Prog Err Cnt = 0x%x\012\000"
+.LC68:
+ .ascii "gc_free_blk_th= 0x%x\012\000"
+.LC69:
+ .ascii "gc_merge_free_blk_th= 0x%x\012\000"
+.LC70:
+ .ascii "gc_skip_write_count= 0x%x\012\000"
+.LC71:
+ .ascii "gc_blk_index= 0x%x\012\000"
+.LC72:
+ .ascii "free min EC= 0x%x\012\000"
+.LC73:
+ .ascii "free max EC= 0x%x\012\000"
+.LC74:
+ .ascii "GC__SB VPC = 0x%x\012\000"
+.LC75:
+ .ascii "%d. [0x%x]=0x%x 0x%x 0x%x\012\000"
+.LC76:
+ .ascii "free %d. [0x%x] 0x%x 0x%x\012\000"
+ .text
.align 1
.global FtlPrintInfo2buf
.syntax unified
@@ -1896,346 +2096,347 @@
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
- mov r6, r0
- ldr r5, .L247
- add r4, r6, #12
+ mov r7, r0
+ ldr r6, .L262
+ ldr r1, .L262+4
+ add r5, r7, #12
.pad #20
sub sp, sp, #20
- ldr r1, .L247+4
bl strcpy
- ldr r3, [r5, #316]
+ ldr r2, .L262+8
+ ldr r3, [r6, #316]
+ mov r0, r5
movs r1, #64
- ldr r2, .L247+8
- mov r0, r4
bl snprintf
- add r4, r4, r0
- ldr r1, .L247+12
- mov r0, r4
- adds r4, r4, #10
+ add r5, r5, r0
+ ldr r1, .L262+12
+ mov r0, r5
+ adds r5, r5, #10
bl strcpy
- ldr r3, [r5, #2552]
+ ldr r3, [r6, #2552]
+ mov r0, r5
+ ldr r2, .L262+16
movs r1, #64
- ldr r2, .L247+16
- mov r0, r4
bl snprintf
- add r4, r4, r0
- ldr r3, [r5, #2548]
- ldr r2, .L247+20
+ add r5, r5, r0
+ ldr r3, [r6, #2548]
+ mov r0, r5
+ ldr r2, .L262+20
movs r1, #64
- mov r0, r4
bl snprintf
- add r4, r4, r0
- ldr r3, [r5, #2556]
- ldr r2, .L247+24
+ add r5, r5, r0
+ ldr r3, [r6, #2556]
+ mov r0, r5
+ ldr r2, .L262+24
movs r1, #64
- mov r0, r4
bl snprintf
- add r4, r4, r0
- ldr r3, [r5, #2560]
- ldr r2, .L247+28
+ add r5, r5, r0
+ ldr r3, [r6, #2560]
+ mov r0, r5
+ ldr r2, .L262+28
movs r1, #64
- mov r0, r4
bl snprintf
- add r4, r4, r0
- ldr r3, [r5, #2564]
- ldr r2, .L247+32
+ add r5, r5, r0
+ ldr r3, [r6, #2564]
+ mov r0, r5
+ ldr r2, .L262+32
movs r1, #64
- mov r0, r4
bl snprintf
- add r4, r4, r0
- ldr r3, [r5, #2568]
- ldr r2, .L247+36
+ add r5, r5, r0
+ ldr r3, [r6, #2568]
+ mov r0, r5
+ ldr r2, .L262+36
movs r1, #64
- mov r0, r4
bl snprintf
- add r4, r4, r0
- ldr r3, [r5, #2572]
- ldr r2, .L247+40
+ add r5, r5, r0
+ ldr r3, [r6, #2572]
+ mov r0, r5
+ ldr r2, .L262+40
movs r1, #64
- mov r0, r4
bl snprintf
- add r4, r4, r0
- ldr r3, [r5, #2576]
- ldr r2, .L247+44
+ add r5, r5, r0
+ ldr r3, [r6, #2576]
+ mov r0, r5
+ ldr r2, .L262+44
movs r1, #64
- mov r0, r4
bl snprintf
- ldr r3, [r5, #2580]
- add r4, r4, r0
- ldr r2, .L247+48
+ ldr r3, [r6, #2580]
+ add r5, r5, r0
+ ldr r2, .L262+48
+ mov r0, r5
movs r1, #64
- mov r0, r4
lsrs r3, r3, #11
bl snprintf
- ldr r3, [r5, #2584]
- add r4, r4, r0
- ldr r2, .L247+52
+ ldr r3, [r6, #2584]
+ add r5, r5, r0
+ ldr r2, .L262+52
movs r1, #64
- mov r0, r4
+ mov r0, r5
lsrs r3, r3, #11
bl snprintf
- add r4, r4, r0
- ldr r3, [r5, #2588]
- ldr r2, .L247+56
- movs r1, #64
+ adds r4, r5, r0
+ ldr r3, [r6, #2588]
mov r0, r4
+ ldr r2, .L262+56
+ movs r1, #64
bl snprintf
add r4, r4, r0
- ldr r3, [r5, #2592]
- ldr r2, .L247+60
- movs r1, #64
+ ldr r3, [r6, #2592]
mov r0, r4
+ ldr r2, .L262+60
+ movs r1, #64
bl snprintf
add r4, r4, r0
- ldrh r3, [r5, #358]
- ldr r2, .L247+64
- movs r1, #64
+ ldrh r3, [r6, #358]
mov r0, r4
+ ldr r2, .L262+64
+ movs r1, #64
bl snprintf
add r4, r4, r0
- ldrh r3, [r5, #224]
- ldr r2, .L247+68
- movs r1, #64
+ ldrh r3, [r6, #224]
mov r0, r4
+ ldr r2, .L262+68
+ movs r1, #64
bl snprintf
add r4, r4, r0
- ldr r3, [r5, #2596]
- ldr r2, .L247+72
- movs r1, #64
+ ldr r3, [r6, #2596]
mov r0, r4
+ ldr r2, .L262+72
+ movs r1, #64
bl snprintf
add r4, r4, r0
- ldr r3, [r5, #2600]
- ldr r2, .L247+76
- movs r1, #64
+ ldr r3, [r6, #2600]
mov r0, r4
+ ldr r2, .L262+76
+ movs r1, #64
bl snprintf
add r4, r4, r0
- ldr r3, [r5, #2604]
- ldr r2, .L247+80
- movs r1, #64
+ ldr r3, [r6, #2604]
mov r0, r4
+ ldr r2, .L262+80
+ movs r1, #64
bl snprintf
add r4, r4, r0
- ldr r3, [r5, #2608]
- ldr r2, .L247+84
- movs r1, #64
+ ldr r3, [r6, #2608]
mov r0, r4
+ ldr r2, .L262+84
+ movs r1, #64
bl snprintf
add r4, r4, r0
- ldr r3, [r5, #2612]
- ldr r2, .L247+88
- movs r1, #64
+ ldr r3, [r6, #2612]
mov r0, r4
+ ldr r2, .L262+88
+ movs r1, #64
bl snprintf
add r4, r4, r0
- ldr r3, [r5, #2616]
- ldr r2, .L247+92
- movs r1, #64
+ ldr r3, [r6, #2616]
mov r0, r4
+ ldr r2, .L262+92
+ movs r1, #64
bl snprintf
add r4, r4, r0
- ldrh r3, [r5, #2498]
- ldr r2, .L247+96
- movs r1, #64
+ ldrh r3, [r6, #2498]
mov r0, r4
+ ldr r2, .L262+96
+ movs r1, #64
bl snprintf
add r4, r4, r0
- ldrh r3, [r5, #2496]
- ldr r2, .L247+100
- movs r1, #64
+ ldrh r3, [r6, #2496]
mov r0, r4
+ ldr r2, .L262+100
+ movs r1, #64
bl snprintf
add r4, r4, r0
- ldr r3, [r5, #340]
- ldr r2, .L247+104
- movs r1, #64
+ ldr r3, [r6, #340]
mov r0, r4
+ ldr r2, .L262+104
+ movs r1, #64
bl snprintf
add r4, r4, r0
- ldr r3, [r5, #332]
- ldr r2, .L247+108
- movs r1, #64
+ ldr r3, [r6, #332]
mov r0, r4
+ ldr r2, .L262+108
+ movs r1, #64
bl snprintf
add r4, r4, r0
- ldr r3, [r5, #228]
- ldr r2, .L247+112
- movs r1, #64
+ ldr r3, [r6, #228]
mov r0, r4
+ ldr r2, .L262+112
+ movs r1, #64
bl snprintf
add r4, r4, r0
- ldrh r3, [r5, #418]
- ldr r2, .L247+116
- movs r1, #64
+ ldrh r3, [r6, #418]
mov r0, r4
+ ldr r2, .L262+116
+ movs r1, #64
bl snprintf
add r4, r4, r0
- ldrh r3, [r5, #240]
- ldr r2, .L247+120
- movs r1, #64
+ ldrh r3, [r6, #240]
mov r0, r4
+ ldr r2, .L262+120
+ movs r1, #64
bl snprintf
add r4, r4, r0
- ldrh r3, [r5, #2620]
- ldr r2, .L247+124
- movs r1, #64
+ ldrh r3, [r6, #2620]
mov r0, r4
+ ldr r2, .L262+124
+ movs r1, #64
bl snprintf
add r4, r4, r0
- ldr r3, [r5, #244]
- ldr r2, .L247+128
- movs r1, #64
+ ldr r3, [r6, #244]
mov r0, r4
+ ldr r2, .L262+128
+ movs r1, #64
bl snprintf
add r4, r4, r0
- ldrh r3, [r5, #2624]
- ldr r2, .L247+132
- movs r1, #64
+ ldrh r3, [r6, #2624]
mov r0, r4
+ ldr r2, .L262+132
+ movs r1, #64
bl snprintf
add r4, r4, r0
- ldrh r3, [r5, #352]
- ldr r2, .L247+136
- movs r1, #64
+ ldrh r3, [r6, #352]
mov r0, r4
+ ldr r2, .L262+136
+ movs r1, #64
bl snprintf
add r4, r4, r0
- ldrh r3, [r5, #26]
- ldr r2, .L247+140
- movs r1, #64
+ ldrh r3, [r6, #26]
mov r0, r4
+ ldr r2, .L262+140
+ movs r1, #64
bl snprintf
add r4, r4, r0
- ldrb r3, [r5, #30] @ zero_extendqisi2
- ldr r2, .L247+144
- movs r1, #64
+ ldrb r3, [r6, #30] @ zero_extendqisi2
mov r0, r4
+ ldr r2, .L262+144
+ movs r1, #64
bl snprintf
add r4, r4, r0
- ldrh r3, [r5, #24]
- ldr r2, .L247+148
- movs r1, #64
+ ldrh r3, [r6, #24]
mov r0, r4
+ ldr r2, .L262+148
+ movs r1, #64
bl snprintf
add r4, r4, r0
- ldrb r3, [r5, #32] @ zero_extendqisi2
- ldr r2, .L247+152
- movs r1, #64
+ ldrb r3, [r6, #32] @ zero_extendqisi2
mov r0, r4
+ ldr r2, .L262+152
+ movs r1, #64
bl snprintf
add r4, r4, r0
- ldrh r3, [r5, #28]
- ldr r2, .L247+156
- movs r1, #64
+ ldrh r3, [r6, #28]
mov r0, r4
+ ldr r2, .L262+156
+ movs r1, #64
bl snprintf
- ldrh r2, [r5, #24]
+ ldrh r2, [r6, #24]
+ ldr r3, [r6, #72]
add r4, r4, r0
- ldr r3, [r5, #72]
- movs r1, #64
mov r0, r4
+ movs r1, #64
ldrh r3, [r3, r2, lsl #1]
- ldr r2, .L247+160
+ ldr r2, .L262+160
bl snprintf
add r4, r4, r0
- ldrh r3, [r5, #78]
- ldr r2, .L247+164
- movs r1, #64
+ ldrh r3, [r6, #78]
mov r0, r4
+ ldr r2, .L262+164
+ movs r1, #64
bl snprintf
add r4, r4, r0
- ldrb r3, [r5, #82] @ zero_extendqisi2
- ldr r2, .L247+168
- movs r1, #64
+ ldrb r3, [r6, #82] @ zero_extendqisi2
mov r0, r4
+ ldr r2, .L262+168
+ movs r1, #64
bl snprintf
add r4, r4, r0
- ldrh r3, [r5, #76]
- ldr r2, .L247+172
- movs r1, #64
+ ldrh r3, [r6, #76]
mov r0, r4
+ ldr r2, .L262+172
+ movs r1, #64
bl snprintf
add r4, r4, r0
- ldrb r3, [r5, #84] @ zero_extendqisi2
- ldr r2, .L247+176
- movs r1, #64
+ ldrb r3, [r6, #84] @ zero_extendqisi2
mov r0, r4
+ ldr r2, .L262+176
+ movs r1, #64
bl snprintf
add r4, r4, r0
- ldrh r3, [r5, #80]
- ldr r2, .L247+180
- movs r1, #64
+ ldrh r3, [r6, #80]
mov r0, r4
+ ldr r2, .L262+180
+ movs r1, #64
bl snprintf
- ldrh r2, [r5, #76]
+ ldrh r2, [r6, #76]
+ ldr r3, [r6, #72]
add r4, r4, r0
- ldr r3, [r5, #72]
- movs r1, #64
mov r0, r4
+ movs r1, #64
ldrh r3, [r3, r2, lsl #1]
- ldr r2, .L247+184
+ ldr r2, .L262+184
bl snprintf
add r4, r4, r0
- ldrh r3, [r5, #126]
- ldr r2, .L247+188
- movs r1, #64
+ ldrh r3, [r6, #126]
mov r0, r4
- bl snprintf
- add r4, r4, r0
- ldrb r3, [r5, #130] @ zero_extendqisi2
- ldr r2, .L247+192
+ ldr r2, .L262+188
movs r1, #64
- mov r0, r4
bl snprintf
add r4, r4, r0
- ldrh r3, [r5, #124]
- ldr r2, .L247+196
+ ldrb r3, [r6, #130] @ zero_extendqisi2
+ mov r0, r4
+ ldr r2, .L262+192
movs r1, #64
- mov r0, r4
bl snprintf
add r4, r4, r0
- ldrb r3, [r5, #132] @ zero_extendqisi2
- ldr r2, .L247+200
+ ldrh r3, [r6, #124]
+ mov r0, r4
+ ldr r2, .L262+196
movs r1, #64
- mov r0, r4
bl snprintf
add r4, r4, r0
- ldrh r3, [r5, #128]
- ldr r2, .L247+204
+ ldrb r3, [r6, #132] @ zero_extendqisi2
+ mov r0, r4
+ ldr r2, .L262+200
movs r1, #64
- mov r0, r4
bl snprintf
add r4, r4, r0
- ldrh r3, [r5, #174]
- ldr r2, .L247+208
+ ldrh r3, [r6, #128]
+ mov r0, r4
+ ldr r2, .L262+204
movs r1, #64
- mov r0, r4
bl snprintf
add r4, r4, r0
- ldrb r3, [r5, #178] @ zero_extendqisi2
- ldr r2, .L247+212
+ ldrh r3, [r6, #174]
+ mov r0, r4
+ ldr r2, .L262+208
movs r1, #64
- mov r0, r4
bl snprintf
add r4, r4, r0
- ldrh r3, [r5, #172]
- ldr r2, .L247+216
+ ldrb r3, [r6, #178] @ zero_extendqisi2
+ mov r0, r4
+ ldr r2, .L262+212
movs r1, #64
- mov r0, r4
bl snprintf
add r4, r4, r0
- ldrb r3, [r5, #180] @ zero_extendqisi2
- ldr r2, .L247+220
+ ldrh r3, [r6, #172]
+ mov r0, r4
+ ldr r2, .L262+216
movs r1, #64
- mov r0, r4
bl snprintf
add r4, r4, r0
- ldrh r3, [r5, #176]
- b .L248
-.L249:
+ ldrb r3, [r6, #180] @ zero_extendqisi2
+ mov r0, r4
+ ldr r2, .L262+220
+ movs r1, #64
+ bl snprintf
+ add r4, r4, r0
+ ldrh r3, [r6, #176]
+ mov r0, r4
+ b .L263
+.L264:
.align 2
-.L247:
+.L262:
.word .LANCHOR0
.word .LC9
.word .LC10
@@ -2292,166 +2493,164 @@
.word .LC61
.word .LC62
.word .LC63
-.L248:
- ldr r2, .L250
+.L263:
+ ldr r2, .L265
movs r1, #64
- mov r0, r4
bl snprintf
- ldr r3, [r5, #2716]
+ ldr r3, [r6, #2716]
add r4, r4, r0
- ldr r2, .L250+4
- movs r1, #64
- mov r0, r4
str r3, [sp, #4]
- ldr r3, [r5, #2724]
+ ldr r3, [r6, #2724]
+ mov r0, r4
+ ldr r2, .L265+4
+ movs r1, #64
str r3, [sp]
- ldr r3, [r5, #2720]
+ ldr r3, [r6, #2720]
bl snprintf
add r4, r4, r0
- ldr r3, [r5, #2712]
- ldr r2, .L250+8
- movs r1, #64
+ ldr r3, [r6, #2712]
mov r0, r4
- bl snprintf
- add r4, r4, r0
- ldr r3, [r5, #2736]
- ldr r2, .L250+12
+ ldr r2, .L265+8
movs r1, #64
- mov r0, r4
bl snprintf
add r4, r4, r0
- ldrh r3, [r5, #3152]
- ldr r2, .L250+16
+ ldr r3, [r6, #2736]
+ mov r0, r4
+ ldr r2, .L265+12
movs r1, #64
- mov r0, r4
bl snprintf
add r4, r4, r0
- ldrh r3, [r5, #3154]
- ldr r2, .L250+20
+ ldrh r3, [r6, #3152]
+ mov r0, r4
+ ldr r2, .L265+16
movs r1, #64
- mov r0, r4
bl snprintf
add r4, r4, r0
- ldr r3, [r5, #3156]
- ldr r2, .L250+24
+ ldrh r3, [r6, #3154]
+ mov r0, r4
+ ldr r2, .L265+20
movs r1, #64
- mov r0, r4
bl snprintf
add r4, r4, r0
- ldrh r3, [r5, #3160]
- ldr r2, .L250+28
+ ldr r3, [r6, #3156]
+ mov r0, r4
+ ldr r2, .L265+24
movs r1, #64
- mov r0, r4
bl snprintf
add r4, r4, r0
+ ldrh r3, [r6, #3160]
+ mov r0, r4
+ ldr r2, .L265+28
+ movs r1, #64
+ bl snprintf
+ add r4, r4, r0
+ movs r1, #64
bl GetFreeBlockMinEraseCount
- ldr r2, .L250+32
+ ldr r2, .L265+32
mov r3, r0
- movs r1, #64
mov r0, r4
bl snprintf
add r4, r4, r0
- ldrh r0, [r5, #224]
+ ldrh r0, [r6, #224]
bl GetFreeBlockMaxEraseCount
- ldr r2, .L250+36
+ ldr r2, .L265+36
mov r3, r0
movs r1, #64
mov r0, r4
bl snprintf
- ldr r3, .L250+40
+ ldr r3, .L265+40
add r4, r4, r0
ldr r3, [r3]
cmp r3, #1
- beq .L236
-.L241:
- subs r0, r4, r6
+ beq .L251
+.L256:
+ subs r0, r4, r7
add sp, sp, #20
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L236:
- ldrh r3, [r5, #172]
+.L251:
+ ldrh r3, [r6, #172]
movw r2, #65535
cmp r3, r2
- beq .L238
- ldr r2, [r5, #72]
+ beq .L253
+ ldr r2, [r6, #72]
mov r0, r4
movs r1, #64
ldrh r3, [r2, r3, lsl #1]
- ldr r2, .L250+44
+ ldr r2, .L265+44
bl snprintf
add r4, r4, r0
-.L238:
+.L253:
movs r0, #0
- ldr r9, .L250+52
+ ldr fp, .L265+48
bl List_get_gc_head_node
uxth r0, r0
- movs r7, #0
- movw fp, #65535
- mov r10, #6
-.L240:
- cmp r0, fp
- beq .L239
- ldr r3, [r5, #2536]
- mul r8, r10, r0
- mov r2, r9
+ movs r5, #0
+ movw r10, #65535
+ mov r9, #6
+.L255:
+ ldr r3, [r6, #2516]
+ cmp r0, r10
+ beq .L254
+ ldr r2, [r6, #2536]
+ mul r8, r9, r0
movs r1, #64
- ldrh r3, [r3, r0, lsl #1]
- str r3, [sp, #12]
- ldr r3, [r5, #2516]
add r3, r3, r8
+ ldrh r2, [r2, r0, lsl #1]
+ str r2, [sp, #12]
+ mov r2, fp
ldrh r3, [r3, #4]
str r3, [sp, #8]
- ldr r3, [r5, #72]
+ ldr r3, [r6, #72]
ldrh r3, [r3, r0, lsl #1]
- stm sp, {r0, r3}
- mov r3, r7
+ strd r0, r3, [sp]
+ mov r3, r5
mov r0, r4
- adds r7, r7, #1
+ adds r5, r5, #1
bl snprintf
- ldr r3, [r5, #2516]
- cmp r7, #16
+ ldr r3, [r6, #2516]
add r4, r4, r0
+ cmp r5, #16
ldrh r0, [r3, r8]
- bne .L240
-.L239:
- ldr r2, [r5, #2516]
- movs r7, #0
- ldr r3, [r5, #2532]
+ bne .L255
+.L254:
+ ldr r3, [r6, #2516]
+ movs r5, #0
+ ldr r1, [r6, #2532]
movw r9, #65535
- ldr fp, .L250+56
+ ldr fp, .L265+52
mov r10, #6
- subs r3, r3, r2
- asrs r2, r3, #1
- ldr r3, .L250+48
- muls r3, r2, r3
- uxth r3, r3
-.L242:
- cmp r3, r9
- beq .L241
- ldr r2, [r5, #2536]
- mul r8, r10, r3
+ subs r1, r1, r3
+ ldr r3, .L265+56
+ asrs r1, r1, #1
+ muls r1, r3, r1
+ uxth r1, r1
+.L257:
+ cmp r1, r9
+ beq .L256
+ ldr r3, [r6, #2536]
+ mul r8, r10, r1
mov r0, r4
- movs r1, #64
- ldrh r2, [r2, r3, lsl #1]
- str r2, [sp, #8]
- ldr r2, [r5, #2516]
- add r2, r2, r8
- ldrh r2, [r2, #4]
- str r3, [sp]
- mov r3, r7
- adds r7, r7, #1
- str r2, [sp, #4]
mov r2, fp
+ ldrh r3, [r3, r1, lsl #1]
+ str r3, [sp, #8]
+ ldr r3, [r6, #2516]
+ add r3, r3, r8
+ ldrh r3, [r3, #4]
+ strd r1, r3, [sp]
+ mov r3, r5
+ movs r1, #64
+ adds r5, r5, #1
bl snprintf
- cmp r7, #4
+ cmp r5, #4
add r4, r4, r0
- beq .L241
- ldr r3, [r5, #2516]
- ldrh r3, [r3, r8]
- b .L242
-.L251:
+ beq .L256
+ ldr r3, [r6, #2516]
+ ldrh r1, [r3, r8]
+ b .L257
+.L266:
.align 2
-.L250:
+.L265:
.word .LC64
.word .LC65
.word .LC66
@@ -2464,11 +2663,15 @@
.word .LC73
.word .LANCHOR2
.word .LC74
- .word -1431655765
.word .LC75
.word .LC76
+ .word -1431655765
.fnend
.size FtlPrintInfo2buf, .-FtlPrintInfo2buf
+ .section .rodata.str1.1
+.LC77:
+ .ascii "%s\012\000"
+ .text
.align 1
.global rknand_proc_ftlread
.syntax unified
@@ -2480,32 +2683,38 @@
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- cmp r0, #2048
push {r3, r4, r5, lr}
.save {r3, r4, r5, lr}
+ cmp r0, #2048
mov r5, r1
- blt .L254
- ldr r3, .L255
+ blt .L269
+ ldr r3, .L270
+ add r4, r5, #30
+ ldr r2, .L270+4
movs r1, #64
- ldr r2, .L255+4
mov r0, r5
bl snprintf
- adds r4, r5, r0
mov r0, r4
bl FtlPrintInfo2buf
add r0, r0, r4
subs r0, r0, r5
+.L267:
pop {r3, r4, r5, pc}
-.L254:
+.L269:
movs r0, #0
- pop {r3, r4, r5, pc}
-.L256:
+ b .L267
+.L271:
.align 2
-.L255:
+.L270:
.word .LC0
.word .LC77
.fnend
.size rknand_proc_ftlread, .-rknand_proc_ftlread
+ .section .rodata.str1.1
+.LC78:
+ .ascii "swblk %x ,avg = %x max= %x vpc= %x,ec=%x ,max ec=%x"
+ .ascii "\012\000"
+ .text
.align 1
.global GetSwlReplaceBlock
.syntax unified
@@ -2519,21 +2728,21 @@
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+ ldr r4, .L296
.pad #28
sub sp, sp, #28
- ldr r4, .L281
ldr r2, [r4, #2604]
ldr r3, [r4, #2616]
cmp r2, r3
- bcs .L258
+ bcs .L273
ldrh r1, [r4, #240]
movs r3, #0
ldr r0, [r4, #2536]
str r3, [r4, #2596]
-.L259:
- cmp r3, r1
- bcc .L260
+.L274:
ldr r5, [r4, #2596]
+ cmp r1, r3
+ bhi .L275
mov r0, r5
bl __aeabi_uidiv
str r0, [r4, #2604]
@@ -2542,139 +2751,137 @@
subs r0, r5, r0
bl __aeabi_uidiv
str r0, [r4, #2596]
-.L261:
+.L276:
ldr r6, [r4, #2616]
- ldr r7, [r4, #2604]
+ ldr r8, [r4, #2604]
add r3, r6, #256
- cmp r3, r7
- bls .L266
+ cmp r3, r8
+ bls .L281
ldr r2, [r4, #2612]
add r3, r6, #768
cmp r3, r2
- bls .L266
-.L268:
+ bls .L281
+.L283:
movw r5, #65535
-.L267:
+.L282:
mov r0, r5
add sp, sp, #28
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L260:
+.L275:
ldrh r2, [r0, r3, lsl #1]
adds r3, r3, #1
- ldr r5, [r4, #2596]
- add r2, r2, r5
- str r2, [r4, #2596]
- b .L259
-.L258:
+ add r5, r5, r2
+ str r5, [r4, #2596]
+ b .L274
+.L273:
ldr r3, [r4, #2612]
cmp r2, r3
- bls .L261
+ bls .L276
adds r3, r3, #1
str r3, [r4, #2612]
movs r3, #0
-.L263:
+.L278:
ldrh r2, [r4, #240]
- cmp r3, r2
- bcs .L261
+ cmp r2, r3
+ bls .L276
ldr r1, [r4, #2536]
ldrh r2, [r1, r3, lsl #1]
adds r2, r2, #1
strh r2, [r1, r3, lsl #1] @ movhi
adds r3, r3, #1
- b .L263
-.L266:
+ b .L278
+.L281:
ldrh r0, [r4, #224]
add r0, r0, r0, lsl #1
- ubfx r0, r0, #2, #16
+ lsrs r0, r0, #2
bl GetFreeBlockMaxEraseCount
add r3, r6, #64
- mov r9, r0
+ mov r1, r0
cmp r0, r3
- bcc .L268
+ bcc .L283
ldr r3, [r4, #2520]
cmp r3, #0
- beq .L268
+ beq .L283
ldrh r2, [r4, #240]
- movw r1, #65535
+ movw r7, #65535
ldr lr, [r4, #2516]
+ mov r10, r7
+ ldr r9, [r4, #2536]
movs r0, #0
- ldr r8, [r4, #2536]
- mov r10, r1
str r2, [sp, #20]
+ mov r2, r7
mov fp, #6
- mov r2, r1
-.L269:
+.L284:
ldrh ip, [r3]
cmp ip, r10
- bne .L272
+ bne .L287
mov r5, r2
-.L271:
+.L286:
movw r3, #65535
cmp r5, r3
- beq .L268
- ldrh r10, [r8, r5, lsl #1]
+ beq .L283
+ ldrh r10, [r9, r5, lsl #1]
lsl fp, r5, #1
cmp r6, r10
- bcs .L273
+ bcs .L288
bl GetFreeBlockMinEraseCount
cmp r6, r0
it cc
- strcc r1, [r4, #2616]
-.L273:
- cmp r7, r10
- bls .L268
+ strcc r7, [r4, #2616]
+.L288:
+ cmp r8, r10
+ bls .L283
add r3, r10, #128
- cmp r9, r3
- ble .L268
- add r3, r10, #256
- cmp r7, r3
- bhi .L274
+ cmp r1, r3
+ ble .L283
+ add r2, r10, #256
ldr r3, [r4, #2612]
+ cmp r8, r2
+ bhi .L289
add r10, r10, #768
cmp r10, r3
- bcs .L268
-.L274:
- str r9, [sp, #8]
- mov r2, r7
- ldrh r3, [r8, fp]
+ bcs .L283
+.L289:
+ str r1, [sp, #8]
mov r1, r5
- ldr r0, .L281+4
- str r3, [sp, #4]
- ldr r3, [r4, #72]
- ldrh r3, [r3, fp]
- str r3, [sp]
- ldr r3, [r4, #2612]
+ ldr r0, .L296+4
+ ldrh r2, [r9, fp]
+ str r2, [sp, #4]
+ ldr r2, [r4, #72]
+ ldrh r2, [r2, fp]
+ str r2, [sp]
+ mov r2, r8
bl sftl_printk
movs r3, #1
str r3, [r4, #3164]
- b .L267
-.L272:
+ b .L282
+.L287:
adds r0, r0, #1
ldr r5, [sp, #20]
uxth r0, r0
- cmp r0, r5
- bhi .L268
+ cmp r5, r0
+ bcc .L283
ldrh r5, [r3, #4]
- cbz r5, .L270
- ldr r5, .L281+8
+ cbz r5, .L285
sub r3, r3, lr
+ ldr r5, .L296+8
asrs r3, r3, #1
muls r3, r5, r3
uxth r5, r3
- ldrh r3, [r8, r5, lsl #1]
+ ldrh r3, [r9, r5, lsl #1]
cmp r6, r3
- bcs .L271
- cmp r1, r3
- itt hi
- movhi r1, r3
- movhi r2, r5
-.L270:
+ bcs .L286
+ cmp r3, r7
+ itt cc
+ movcc r7, r3
+ movcc r2, r5
+.L285:
mla r3, fp, ip, lr
- b .L269
-.L282:
+ b .L284
+.L297:
.align 2
-.L281:
+.L296:
.word .LANCHOR0
.word .LC78
.word -1431655765
@@ -2695,18 +2902,18 @@
push {r3, lr}
.save {r3, lr}
cmp r0, r2
- beq .L284
- ldr r2, .L285
+ beq .L299
+ ldr r2, .L300
movs r1, #0
ldr r2, [r2, #72]
strh r1, [r2, r0, lsl #1] @ movhi
bl INSERT_FREE_LIST
-.L284:
+.L299:
movs r0, #0
pop {r3, pc}
-.L286:
+.L301:
.align 2
-.L285:
+.L300:
.word .LANCHOR0
.fnend
.size free_data_superblock, .-free_data_superblock
@@ -2724,100 +2931,98 @@
push {r3, r4, r5, r6, r7, lr}
.save {r3, r4, r5, r6, r7, lr}
movw r3, #65535
- ldrh r2, [r0]
mov r4, r0
+ ldrh r2, [r0]
cmp r2, r3
- bne .L288
+ bne .L303
+ ldr r1, .L317
movw r2, #2792
- ldr r1, .L302
- ldr r0, .L302+4
+ ldr r0, .L317+4
bl sftl_printk
-.L288:
- ldr r6, .L302+8
+.L303:
+ ldr r6, .L317+8
ldrh r2, [r4, #2]
ldrh r3, [r6, #302]
cmp r2, r3
- bne .L289
+ bne .L304
+ ldr r1, .L317
movw r2, #2793
- ldr r1, .L302
- ldr r0, .L302+4
+ ldr r0, .L317+4
bl sftl_printk
-.L289:
+.L304:
ldrh r3, [r4, #4]
- cbnz r3, .L290
+ cbnz r3, .L305
+ ldr r1, .L317
movw r2, #2794
- ldr r1, .L302
- ldr r0, .L302+4
+ ldr r0, .L317+4
bl sftl_printk
-.L290:
- ldrb r2, [r4, #6] @ zero_extendqisi2
- movs r3, #0
- ldrh r1, [r6, #232]
- movw r5, #65535
- strb r3, [r4, #10]
- adds r2, r2, #8
- ldrh r0, [r4, r2, lsl #1]
- mov r2, r3
-.L291:
- cmp r0, r5
- beq .L293
- ldrh r5, [r4, #2]
- ldrh r6, [r6, #302]
- cmp r5, r6
- bcs .L297
- ldrh r2, [r4, #4]
- orr r5, r5, r0, lsl #10
+.L305:
ldrb r3, [r4, #6] @ zero_extendqisi2
- movw r0, #65535
- subs r2, r2, #1
- uxth r2, r2
- strh r2, [r4, #4] @ movhi
-.L296:
- adds r3, r3, #1
- uxtb r3, r3
- cmp r1, r3
+ movs r1, #0
+ strb r1, [r4, #10]
+ movw r7, #65535
+ adds r3, r3, #8
+ ldrh r0, [r6, #232]
+ ldrh r5, [r4, r3, lsl #1]
+.L306:
+ ldrh r2, [r4, #2]
+ cmp r5, r7
+ beq .L308
+ ldrh r6, [r6, #302]
+ cmp r6, r2
+ bls .L312
+ ldrh r3, [r4, #4]
+ orr r5, r2, r5, lsl #10
+ ldrb r2, [r4, #6] @ zero_extendqisi2
+ movw r7, #65535
+ subs r3, r3, #1
+ uxth r3, r3
+ strh r3, [r4, #4] @ movhi
+.L311:
+ adds r1, r2, #1
+ uxtb r2, r1
+ cmp r0, r2
itttt eq
- ldrheq r3, [r4, #2]
- addeq r3, r3, #1
- strheq r3, [r4, #2] @ movhi
- moveq r3, #0
- add r7, r3, #8
- ldrh r7, [r4, r7, lsl #1]
- cmp r7, r0
- beq .L296
- strb r3, [r4, #6]
- ldrh r3, [r4, #2]
- cmp r3, r6
- bne .L287
- cbz r2, .L287
+ ldrheq r2, [r4, #2]
+ addeq r2, r2, #1
+ strheq r2, [r4, #2] @ movhi
+ moveq r2, #0
+ add r1, r2, #8
+ ldrh r1, [r4, r1, lsl #1]
+ cmp r1, r7
+ beq .L311
+ strb r2, [r4, #6]
+ ldrh r2, [r4, #2]
+ cmp r2, r6
+ bne .L302
+ cbz r3, .L302
+ ldr r1, .L317
movw r2, #2817
- ldr r1, .L302
- ldr r0, .L302+4
+ ldr r0, .L317+4
bl sftl_printk
-.L287:
+.L302:
mov r0, r5
pop {r3, r4, r5, r6, r7, pc}
-.L293:
+.L308:
ldrb r3, [r4, #6] @ zero_extendqisi2
adds r3, r3, #1
uxtb r3, r3
- cmp r3, r1
strb r3, [r4, #6]
- itttt eq
- ldrheq r3, [r4, #2]
- strbeq r2, [r4, #6]
- addeq r3, r3, #1
- strheq r3, [r4, #2] @ movhi
+ cmp r3, r0
+ ittt eq
+ strbeq r1, [r4, #6]
+ addeq r2, r2, #1
+ strheq r2, [r4, #2] @ movhi
ldrb r3, [r4, #6] @ zero_extendqisi2
adds r3, r3, #8
- ldrh r0, [r4, r3, lsl #1]
- b .L291
-.L297:
+ ldrh r5, [r4, r3, lsl #1]
+ b .L306
+.L312:
movw r5, #65535
- b .L287
-.L303:
+ b .L302
+.L318:
.align 2
-.L302:
+.L317:
.word .LANCHOR1+111
.word .LC8
.word .LANCHOR0
@@ -2834,90 +3039,88 @@
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L313
+ ldr r3, .L328
+ movs r1, #0
+ push {r4, r5, r6, r7, r8, lr}
+ .save {r4, r5, r6, r7, r8, lr}
mov ip, #20
- push {r4, r5, r6, r7, r8, r9, lr}
- .save {r4, r5, r6, r7, r8, r9, lr}
- mov r9, #12
- movs r6, #1
- movs r2, #0
- mov r7, r3
- str r2, [r3, #3168]
-.L305:
- ldrh r1, [r3, #232]
- uxth r0, r2
- adds r4, r2, #1
- cmp r0, r1
- bcc .L308
- ldr r7, .L313
- mov ip, #12
+ movs r6, #12
+ movs r7, #1
+ str r1, [r3, #3168]
+.L320:
+ ldrh r2, [r3, #232]
+ uxth r0, r1
+ cmp r2, r0
+ bhi .L323
+ ldr r7, .L328
+ movs r5, #12
movs r6, #0
-.L309:
- ldr r2, [r3, #3188]
- cmp r1, r2
- bcc .L312
- pop {r4, r5, r6, r7, r8, r9, pc}
-.L308:
- uxth r2, r2
- ldr r8, [r3, #3172]
- mul lr, r9, r2
- add r1, r8, lr
+.L324:
+ ldr r1, [r3, #3188]
+ cmp r2, r1
+ bcc .L327
+ pop {r4, r5, r6, r7, r8, pc}
+.L323:
+ uxth r0, r1
+ ldr r5, [r3, #3172]
+ ldr lr, [r3, #3176]
+ adds r1, r1, #1
+ mul r4, r6, r0
+ adds r2, r5, r4
+ str r7, [r2, #8]
+ ldrh r2, [r3, #310]
+ muls r2, r0, r2
+ it mi
+ addmi r2, r2, #3
+ bic r2, r2, #3
+ add r2, r2, lr
+ str r2, [r5, r4]
+ ldrh r2, [r3, #312]
+ ldr r5, [r3, #3172]
+ ldr r8, [r3, #3180]
+ add lr, r5, r4
+ muls r2, r0, r2
+ it mi
+ addmi r2, r2, #3
+ bic r2, r2, #3
+ add r2, r2, r8
+ str r2, [lr, #4]
+ ldr r2, [r3, #3184]
+ mla r2, ip, r0, r2
+ ldr r0, [r5, r4]
+ str r0, [r2, #8]
+ ldr r0, [lr, #4]
+ str r0, [r2, #12]
+ b .L320
+.L327:
+ mul r0, r5, r2
+ ldr r4, [r3, #3172]
+ ldr ip, [r3, #3176]
+ adds r1, r4, r0
str r6, [r1, #8]
ldrh r1, [r3, #310]
muls r1, r2, r1
it mi
addmi r1, r1, #3
- bic r0, r1, #3
- ldr r1, [r3, #3176]
- add r1, r1, r0
- str r1, [r8, lr]
- ldr r5, [r7, #3180]
- ldr r0, [r3, #3172]
+ bic r1, r1, #3
+ add r1, r1, ip
+ str r1, [r4, r0]
+ ldr r4, [r7, #3180]
+ ldr r1, [r3, #3172]
+ add r0, r0, r1
ldrh r1, [r3, #312]
muls r1, r2, r1
+ add r2, r2, #1
it mi
addmi r1, r1, #3
+ uxth r2, r2
bic r1, r1, #3
- add r8, r0, lr
- add r1, r1, r5
- str r1, [r8, #4]
- ldr r1, [r3, #3184]
- mla r2, ip, r2, r1
- ldr r1, [r0, lr]
- str r1, [r2, #8]
- ldr r1, [r8, #4]
- str r1, [r2, #12]
- mov r2, r4
- b .L305
-.L312:
- mul r0, ip, r1
- ldr r4, [r3, #3172]
- ldr r5, [r3, #3176]
- adds r2, r4, r0
- str r6, [r2, #8]
- ldrh r2, [r3, #310]
- muls r2, r1, r2
- it mi
- addmi r2, r2, #3
- bic r2, r2, #3
- add r2, r2, r5
- str r2, [r4, r0]
- ldr r2, [r3, #3172]
- ldr r4, [r7, #3180]
- add r0, r0, r2
- ldrh r2, [r3, #312]
- muls r2, r1, r2
- it mi
- addmi r2, r2, #3
- bic r2, r2, #3
- adds r1, r1, #1
- add r2, r2, r4
- uxth r1, r1
- str r2, [r0, #4]
- b .L309
-.L314:
+ add r1, r1, r4
+ str r1, [r0, #4]
+ b .L324
+.L329:
.align 2
-.L313:
+.L328:
.word .LANCHOR0
.fnend
.size FtlGcBufInit, .-FtlGcBufInit
@@ -2932,41 +3135,41 @@
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L322
+ ldr r3, .L337
push {r4, r5, r6, r7, r8, r9, r10, lr}
.save {r4, r5, r6, r7, r8, r9, r10, lr}
movs r5, #0
- mov r10, #20
- mov lr, #12
mov r8, r5
+ movs r7, #20
+ mov lr, #12
ldr ip, [r3, #3188]
ldr r6, [r3, #3172]
-.L316:
+.L331:
uxth r3, r5
cmp r1, r3
- bls .L315
- mla r4, r10, r3, r0
+ bls .L330
+ mla r4, r7, r3, r0
movs r2, #0
-.L317:
+.L332:
uxth r3, r2
cmp ip, r3
- bls .L318
+ bls .L333
mul r3, lr, r3
- ldr r7, [r4, #8]
+ ldr r10, [r4, #8]
adds r2, r2, #1
add r9, r6, r3
ldr r3, [r6, r3]
- cmp r3, r7
- bne .L317
+ cmp r3, r10
+ bne .L332
str r8, [r9, #8]
-.L318:
+.L333:
adds r5, r5, #1
- b .L316
-.L315:
+ b .L331
+.L330:
pop {r4, r5, r6, r7, r8, r9, r10, pc}
-.L323:
+.L338:
.align 2
-.L322:
+.L337:
.word .LANCHOR0
.fnend
.size FtlGcBufFree, .-FtlGcBufFree
@@ -2981,43 +3184,43 @@
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L331
+ ldr r3, .L346
mov ip, #12
push {r4, r5, r6, r7, r8, r9, lr}
.save {r4, r5, r6, r7, r8, r9, lr}
movs r4, #0
mov lr, #1
mov r8, #20
- ldr r5, [r3, #3188]
- ldr r6, [r3, #3172]
-.L325:
+ ldr r6, [r3, #3188]
+ ldr r5, [r3, #3172]
+.L340:
uxth r2, r4
cmp r1, r2
- bhi .L329
+ bhi .L344
pop {r4, r5, r6, r7, r8, r9, pc}
-.L329:
+.L344:
mov r9, #0
-.L326:
+.L341:
uxth r3, r9
- cmp r5, r3
- bls .L327
- mla r3, ip, r3, r6
+ cmp r6, r3
+ bls .L342
+ mla r3, ip, r3, r5
add r9, r9, #1
ldr r7, [r3, #8]
cmp r7, #0
- bne .L326
+ 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]
-.L327:
+.L342:
adds r4, r4, #1
- b .L325
-.L332:
+ b .L340
+.L347:
.align 2
-.L331:
+.L346:
.word .LANCHOR0
.fnend
.size FtlGcBufAlloc, .-FtlGcBufAlloc
@@ -3033,24 +3236,24 @@
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r2, .L338
+ ldr r2, .L353
ldr r3, [r2, #3192]
ldrh r2, [r2, #3196]
add r2, r3, r2, lsl #1
-.L334:
+.L349:
cmp r3, r2
- bne .L336
+ bne .L351
movs r0, #0
bx lr
-.L336:
+.L351:
ldrh r1, [r3], #2
cmp r1, r0
- bne .L334
+ bne .L349
movs r0, #1
bx lr
-.L339:
+.L354:
.align 2
-.L338:
+.L353:
.word .LANCHOR0
.fnend
.size IsBlkInGcList, .-IsBlkInGcList
@@ -3069,48 +3272,51 @@
.save {r3, r4, r5, r6, r7, lr}
mov r5, r0
ubfx r0, r0, #10, #16
- mov r6, r1
- mov r7, r2
- movs r4, #0
+ mov r6, r2
+ mov r7, r1
bl P2V_block_in_plane
- ldr r3, .L344
- ldrh r1, [r3, #3196]
+ ldr r3, .L359
+ movs r4, #0
ldr r2, [r3, #3192]
-.L341:
- uxth ip, r4
+ ldrh ip, [r3, #3196]
+ sub lr, r2, #2
+.L356:
+ uxth r1, r4
cmp ip, r1
- bcc .L343
- bne .L342
- strh r0, [r2, ip, lsl #1] @ movhi
- ldrh r0, [r3, #3196]
- adds r0, r0, #1
- strh r0, [r3, #3196] @ movhi
- b .L342
-.L343:
+ bhi .L358
+ itttt eq
+ strheq r0, [r2, r4, lsl #1] @ movhi
+ ldrheq r2, [r3, #3196]
+ addeq r2, r2, #1
+ strheq r2, [r3, #3196] @ movhi
+ b .L357
+.L358:
adds r4, r4, #1
- add ip, r2, r4, lsl #1
- ldrh ip, [ip, #-2]
- cmp ip, r0
- bne .L341
-.L342:
- ldrh r2, [r3, #3204]
- movs r0, #12
- muls r0, r2, r0
+ ldrh r1, [lr, r4, lsl #1]
+ cmp r1, r0
+ bne .L356
+.L357:
+ ldrh r4, [r3, #3204]
+ movs r2, #12
+ muls r4, r2, r4
ldr r2, [r3, #3200]
- adds r1, r2, r0
- str r6, [r1, #4]
- str r7, [r1, #8]
- str r5, [r2, r0]
+ adds r1, r2, r4
+ strd r7, r6, [r1, #4]
+ str r5, [r2, r4]
ldrh r2, [r3, #3204]
adds r2, r2, #1
strh r2, [r3, #3204] @ movhi
pop {r3, r4, r5, r6, r7, pc}
-.L345:
+.L360:
.align 2
-.L344:
+.L359:
.word .LANCHOR0
.fnend
.size FtlGcUpdatePage, .-FtlGcUpdatePage
+ .section .rodata.str1.1
+.LC79:
+ .ascii "FtlGcRefreshBlock 0x%x\012\000"
+ .text
.align 1
.global FtlGcRefreshBlock
.syntax unified
@@ -3122,38 +3328,42 @@
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
+ mov r1, r0
push {r4, lr}
.save {r4, lr}
- mov r1, r0
mov r4, r0
- ldr r0, .L349
+ ldr r0, .L364
bl sftl_printk
- ldr r3, .L349+4
+ ldr r3, .L364+4
ldrh r0, [r3, #222]
- cmp r4, r0
- beq .L347
+ cmp r0, r4
+ beq .L362
ldrh r1, [r3, #220]
- cmp r4, r1
- beq .L347
+ cmp r1, r4
+ beq .L362
movw r2, #65535
cmp r0, r2
- bne .L348
+ bne .L363
strh r4, [r3, #222] @ movhi
-.L347:
+.L362:
movs r0, #0
pop {r4, pc}
-.L348:
+.L363:
cmp r1, r2
it eq
strheq r4, [r3, #220] @ movhi
- b .L347
-.L350:
+ b .L362
+.L365:
.align 2
-.L349:
+.L364:
.word .LC79
.word .LANCHOR0
.fnend
.size FtlGcRefreshBlock, .-FtlGcRefreshBlock
+ .section .rodata.str1.1
+.LC80:
+ .ascii "FtlGcMarkBadPhyBlk %d 0x%x\012\000"
+ .text
.align 1
.global FtlGcMarkBadPhyBlk
.syntax unified
@@ -3168,41 +3378,40 @@
push {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
mov r5, r0
- ldr r4, .L355
+ ldr r4, .L370
bl P2V_block_in_plane
mov r2, r5
mov r6, r0
+ ldr r0, .L370+4
ldrh r1, [r4, #3206]
- ldr r0, .L355+4
bl sftl_printk
mov r0, r6
bl FtlGcRefreshBlock
ldrh r3, [r4, #3206]
+ addw r1, r4, #3208
movs r2, #0
- addw r0, r4, #3208
-.L352:
- uxth r1, r2
- cmp r3, r1
- bhi .L354
+.L367:
+ uxth r0, r2
+ cmp r3, r0
+ bhi .L369
cmp r3, #15
itttt ls
addls r2, r3, #1
strhls r2, [r4, #3206] @ movhi
addls r4, r4, r3, lsl #1
strhls r5, [r4, #3208] @ movhi
- b .L353
-.L354:
+ b .L368
+.L369:
+ ldrh r0, [r1], #2
adds r2, r2, #1
- add r1, r0, r2, lsl #1
- ldrh r1, [r1, #-2]
- cmp r1, r5
- bne .L352
-.L353:
+ cmp r0, r5
+ bne .L367
+.L368:
movs r0, #0
pop {r4, r5, r6, pc}
-.L356:
+.L371:
.align 2
-.L355:
+.L370:
.word .LANCHOR0
.word .LC80
.fnend
@@ -3220,13 +3429,13 @@
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, lr}
.save {r4, lr}
- ldr r4, .L363
+ ldr r4, .L378
ldrh r3, [r4, #3206]
- cbz r3, .L358
+ cbz r3, .L373
ldrh r1, [r4, #222]
movw r2, #65535
cmp r1, r2
- bne .L358
+ bne .L373
ldrh r2, [r4, #3242]
cmp r2, r3
itt cs
@@ -3240,12 +3449,12 @@
ldrh r3, [r4, #3242]
adds r3, r3, #1
strh r3, [r4, #3242] @ movhi
-.L358:
+.L373:
movs r0, #0
pop {r4, pc}
-.L364:
+.L379:
.align 2
-.L363:
+.L378:
.word .LANCHOR0
.fnend
.size FtlGcReFreshBadBlk, .-FtlGcReFreshBadBlk
@@ -3261,12 +3470,8 @@
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r1, .L366
+ movw r1, #3265
b __kmalloc
-.L367:
- .align 2
-.L366:
- .word 6291649
.fnend
.size ftl_malloc, .-ftl_malloc
.align 1
@@ -3284,6 +3489,18 @@
b kfree
.fnend
.size ftl_free, .-ftl_free
+ .section .rodata.str1.1
+.LC81:
+ .ascii "%s %p + 0x%x:\000"
+.LC82:
+ .ascii "0x%08x,\000"
+.LC83:
+ .ascii "0x%04x,\000"
+.LC84:
+ .ascii "0x%02x,\000"
+.LC85:
+ .ascii "\012\000"
+ .text
.align 1
.global rknand_print_hex
.syntax unified
@@ -3293,66 +3510,79 @@
.type rknand_print_hex, %function
rknand_print_hex:
.fnstart
- @ args = 0, pretend = 0, frame = 0
+ @ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
- push {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
- .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
- movs r6, #0
- ldr fp, .L378+16
- mov r10, r0
- mov r7, r1
+ push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
+ .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+ .pad #12
+ movs r7, #0
+ ldr r10, .L391
+ ldr fp, .L391+4
+ mov r9, r0
+ mov r5, r1
mov r8, r2
- mov r9, r3
- mov r5, r6
- mov r4, r6
-.L370:
- cmp r4, r9
- bcc .L376
- ldr r0, .L378
- pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
+ mov r6, r7
+ mov r4, r7
+ str r3, [sp, #4]
+.L383:
+ ldr r3, [sp, #4]
+ cmp r3, r4
+ bhi .L389
+ ldr r0, .L391+8
+ add sp, sp, #12
+ @ sp needed
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, lr}
b sftl_printk
-.L376:
- cbnz r5, .L371
- mov r3, r6
- mov r2, r7
- mov r1, r10
- ldr r0, .L378+4
+.L389:
+ cbnz r6, .L384
+ ldr r0, .L391+12
+ mov r3, r7
+ mov r2, r5
+ mov r1, r9
bl sftl_printk
-.L371:
+.L384:
cmp r8, #4
- bne .L372
- ldr r1, [r7, r4, lsl #2]
- ldr r0, .L378+8
-.L377:
- adds r5, r5, #1
+ bne .L385
+ ldr r1, [r5, r4, lsl #2]
+ ldr r0, .L391+16
+.L390:
+ adds r6, r6, #1
bl sftl_printk
- cmp r5, #15
- bls .L375
- movs r5, #0
- ldr r0, .L378
+ cmp r6, #15
+ bls .L388
+ movs r6, #0
+ ldr r0, .L391+8
bl sftl_printk
-.L375:
+.L388:
adds r4, r4, #1
- add r6, r6, r8
- b .L370
-.L372:
+ add r7, r7, r8
+ b .L383
+.L385:
cmp r8, #2
- ittee eq
- ldrheq r1, [r7, r4, lsl #1]
+ itete eq
moveq r0, fp
- ldrbne r1, [r7, r4] @ zero_extendqisi2
- ldrne r0, .L378+12
- b .L377
-.L379:
+ movne r0, r10
+ ldrheq r1, [r5, r4, lsl #1]
+ ldrbne r1, [r5, r4] @ zero_extendqisi2
+ b .L390
+.L392:
.align 2
-.L378:
+.L391:
+ .word .LC84
+ .word .LC83
.word .LC85
.word .LC81
.word .LC82
- .word .LC84
- .word .LC83
.fnend
.size rknand_print_hex, .-rknand_print_hex
+ .section .rodata.str1.1
+.LC86:
+ .ascii "%s: addr: %x is in id block!!!!!!!!!!\012\000"
+.LC87:
+ .ascii "not free: w: d:\000"
+.LC88:
+ .ascii "not free: w: s:\000"
+ .text
.align 1
.global FlashEraseBlocks
.syntax unified
@@ -3366,106 +3596,105 @@
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
- mov r8, r2
- ldr r5, .L397
+ mov r6, r0
+ ldr fp, .L409
.pad #28
sub sp, sp, #28
- mov r4, r0
- mov fp, r0
- ldr r2, .L397+4
- movs r7, #0
- ldrh r9, [r5, #12]
- mov r10, #-1
- ldr r3, [r2]
- str r2, [sp, #4]
+ mov r7, r2
+ mov r3, sp
+ movs r4, #0
+ bic r9, r3, #8160
+ bic r9, r9, #31
+ ldrh r10, [fp, #12]
+ ldr r3, [r9, #24]
str r3, [sp, #20]
- lsl r3, r9, #3
+ lsl r3, r10, #3
str r3, [sp]
-.L381:
- cmp r7, r8
- beq .L385
+ add r3, r2, r2, lsl #2
+ str r3, [sp, #4]
+.L394:
+ ldr r3, [sp, #4]
+ cmp r4, r3
+ beq .L397
add r2, sp, #12
add r1, sp, #16
- mov r0, fp
+ add r0, r6, r4, lsl #2
+ mov r5, r6
bl l2p_addr_tran
- ldr r6, [sp, #12]
- cbnz r6, .L382
+ ldr r8, [sp, #12]
+ cmp r8, #0
+ bne .L395
ldr r2, [sp, #16]
ldr r3, [sp]
cmp r3, r2
- bls .L382
- ldr r5, .L397+8
- ldr r7, .L397+12
- ldr r9, .L397+20
- b .L396
-.L384:
+ bls .L395
+ ldr r6, .L409+4
+ ldr r4, .L409+8
+.L396:
mov r3, #-1
ldr r2, [sp, #16]
- str r3, [r4, #-20]
- mov r1, r5
- mov r0, r7
- adds r6, r6, #1
+ str r3, [r5]
+ mov r1, r6
+ mov r0, r4
+ add r8, r8, #1
bl sftl_printk
+ ldr r1, [r5, #8]
+ ldr r0, .L409+12
movs r3, #16
movs r2, #4
- ldr r1, [r4, #-12]
- mov r0, r9
+ adds r5, r5, #20
bl rknand_print_hex
movs r3, #4
- ldr r1, [r4, #-8]
+ ldr r1, [r5, #-8]
mov r2, r3
- ldr r0, .L397+16
+ ldr r0, .L409+16
bl rknand_print_hex
-.L396:
- cmp r6, r8
- add r4, r4, #20
- bne .L384
+ cmp r7, r8
+ bne .L396
bl dump_stack
-.L385:
- ldr r3, [sp, #4]
- movs r0, #0
+.L397:
ldr r2, [sp, #20]
- ldr r3, [r3]
+ ldr r3, [r9, #24]
cmp r2, r3
- beq .L392
+ beq .L404
bl __stack_chk_fail
-.L382:
- ldr r2, [r5, #3248]
- uxtb r0, r6
+.L395:
+ ldr r2, [fp, #3248]
+ uxtb r0, r8
ldr r1, [sp, #16]
blx r2
cmp r0, #0
mov r2, r0
it ne
- movne r2, r10
- str r2, [fp]
- ldrh r2, [r5, #14]
+ movne r2, #-1
+ str r2, [r6, r4, lsl #2]
+ ldrh r2, [fp, #14]
cmp r2, #4
- bne .L389
+ bne .L401
ldr r1, [sp, #16]
- ldr r2, [r5, #3248]
+ ldr r2, [fp, #3248]
ldrb r0, [sp, #12] @ zero_extendqisi2
- add r1, r1, r9
+ add r1, r1, r10
blx r2
- cbz r0, .L389
- str r10, [fp]
-.L389:
- adds r7, r7, #1
- add fp, fp, #20
- b .L381
-.L392:
+ cbz r0, .L401
+ mov r3, #-1
+ str r3, [r6, r4, lsl #2]
+.L401:
+ adds r4, r4, #5
+ b .L394
+.L404:
+ movs r0, #0
add sp, sp, #28
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L398:
+.L410:
.align 2
-.L397:
+.L409:
.word .LANCHOR0
- .word __stack_chk_guard
.word .LANCHOR1+130
.word .LC86
- .word .LC88
.word .LC87
+ .word .LC88
.fnend
.size FlashEraseBlocks, .-FlashEraseBlocks
.align 1
@@ -3480,18 +3709,18 @@
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
subs r3, r0, #1
- movw r2, #65533
- uxth r3, r3
push {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
+ movw r2, #65533
+ uxth r3, r3
mov r5, r0
cmp r3, r2
- bhi .L399
- ldr r4, .L408
+ bhi .L411
+ ldr r4, .L420
ldrh r3, [r4, #418]
cmp r3, #1024
- beq .L399
- cbz r1, .L401
+ beq .L411
+ cbz r1, .L413
bl P2V_block_in_plane
mov r6, r0
ldr r0, [r4, #3268]
@@ -3507,7 +3736,7 @@
ldr r3, [r4, #2608]
adds r3, r3, #1
str r3, [r4, #2608]
-.L401:
+.L413:
ldrh r3, [r4, #418]
adds r3, r3, #1
strh r3, [r4, #418] @ movhi
@@ -3515,16 +3744,21 @@
add r2, r4, r3, lsl #1
adds r3, r3, #1
ubfx r3, r3, #0, #10
- strh r5, [r2, #420] @ movhi
strh r3, [r4, #416] @ movhi
-.L399:
+ strh r5, [r2, #420] @ movhi
+.L411:
pop {r4, r5, r6, pc}
-.L409:
+.L421:
.align 2
-.L408:
+.L420:
.word .LANCHOR0
.fnend
.size FtlFreeSysBlkQueueIn, .-FtlFreeSysBlkQueueIn
+ .section .rodata.str1.1
+.LC89:
+ .ascii "FtlFreeSysBlkQueueOut = %x, free count = %d, error\012"
+ .ascii "\000"
+ .text
.align 1
.global FtlFreeSysBlkQueueOut
.syntax unified
@@ -3538,9 +3772,9 @@
@ frame_needed = 0, uses_anonymous_args = 0
push {r3, r4, r5, lr}
.save {r3, r4, r5, lr}
- ldr r4, .L415
+ ldr r4, .L427
ldrh r2, [r4, #418]
- cbz r2, .L414
+ cbz r2, .L426
ldrh r3, [r4, #414]
subs r2, r2, #1
ldr r0, [r4, #3268]
@@ -3549,40 +3783,44 @@
add r1, r4, r3, lsl #1
adds r3, r3, #1
ubfx r3, r3, #0, #10
+ strh r3, [r4, #414] @ movhi
ldrh r5, [r1, #420]
mov r1, r2
- strh r3, [r4, #414] @ movhi
lsls r3, r5, #10
str r3, [r0, #4]
bl FlashEraseBlocks
ldr r3, [r4, #2608]
+ movw r2, #65533
adds r3, r3, #1
str r3, [r4, #2608]
-.L411:
subs r3, r5, #1
- movw r2, #65533
uxth r3, r3
cmp r3, r2
- bls .L412
+ bls .L424
+.L423:
ldrh r2, [r4, #418]
mov r1, r5
- ldr r0, .L415+4
+ ldr r0, .L427+4
bl sftl_printk
-.L413:
- b .L413
-.L414:
+.L425:
+ b .L425
+.L426:
movw r5, #65535
- b .L411
-.L412:
+ b .L423
+.L424:
mov r0, r5
pop {r3, r4, r5, pc}
-.L416:
+.L428:
.align 2
-.L415:
+.L427:
.word .LANCHOR0
.word .LC89
.fnend
.size FtlFreeSysBlkQueueOut, .-FtlFreeSysBlkQueueOut
+ .section .rodata.str1.1
+.LC90:
+ .ascii "FtlFreeSysBlkQueueOut = %x, free count = %d\012\000"
+ .text
.align 1
.global ftl_map_blk_alloc_new_blk
.syntax unified
@@ -3597,56 +3835,56 @@
push {r3, r4, r5, r6, r7, lr}
.save {r3, r4, r5, r6, r7, lr}
mov r4, r0
- ldrh r1, [r0, #10]
movs r3, #0
+ ldrh r1, [r0, #10]
ldr r2, [r0, #12]
-.L418:
+.L430:
uxth r5, r3
- cmp r5, r1
- bcs .L421
+ cmp r1, r5
+ bls .L435
mov r7, r2
adds r3, r3, #1
- ldrh r6, [r7]
adds r2, r2, #2
+ ldrh r6, [r7]
cmp r6, #0
- bne .L418
+ bne .L430
bl FtlFreeSysBlkQueueOut
subs r3, r0, #1
movw r2, #65533
- uxth r3, r3
mov r1, r0
+ uxth r3, r3
strh r0, [r7] @ movhi
cmp r3, r2
- bls .L419
- ldr r3, .L425
- ldr r0, .L425+4
+ bls .L431
+ ldr r3, .L437
+ ldr r0, .L437+4
ldrh r2, [r3, #418]
bl sftl_printk
-.L420:
- b .L420
-.L419:
+.L432:
+ b .L432
+.L431:
ldr r3, [r4, #28]
strh r6, [r4, #2] @ movhi
- strh r5, [r4] @ movhi
adds r3, r3, #1
str r3, [r4, #28]
ldrh r3, [r4, #8]
+ strh r5, [r4] @ movhi
adds r3, r3, #1
strh r3, [r4, #8] @ movhi
-.L421:
ldrh r3, [r4, #10]
cmp r3, r5
- bhi .L423
+ bhi .L433
+.L435:
+ ldr r1, .L437+8
movw r2, #578
- ldr r1, .L425+8
- ldr r0, .L425+12
+ ldr r0, .L437+12
bl sftl_printk
-.L423:
+.L433:
movs r0, #0
pop {r3, r4, r5, r6, r7, pc}
-.L426:
+.L438:
.align 2
-.L425:
+.L437:
.word .LANCHOR0
.word .LC90
.word .LANCHOR1+147
@@ -3668,6 +3906,10 @@
b memset
.fnend
.size ftl_memset, .-ftl_memset
+ .section .rodata.str1.1
+.LC91:
+ .ascii "%s error allocating memory. return -1\012\000"
+ .text
.align 1
.global FtlMemInit
.syntax unified
@@ -3682,21 +3924,14 @@
push {r4, r5, r6, r7, r8, lr}
.save {r4, r5, r6, r7, r8, lr}
movw r3, #65535
- ldr r4, .L529
+ ldr r4, .L539
movs r5, #0
movs r7, #12
- movs r6, #20
+ mov r8, #80
ldrh r0, [r4, #306]
- str r3, [r4, #3276]
- strh r3, [r4, #222] @ movhi
- strh r3, [r4, #220] @ movhi
- movs r3, #32
- strh r3, [r4, #3152] @ movhi
- lsls r0, r0, #1
- movs r3, #128
str r5, [r4, #2588]
- strh r3, [r4, #3154] @ movhi
str r5, [r4, #2592]
+ lsls r0, r0, #1
str r5, [r4, #2576]
str r5, [r4, #2564]
str r5, [r4, #2560]
@@ -3710,24 +3945,32 @@
str r5, [r4, #2616]
str r5, [r4, #3272]
str r5, [r4, #3164]
+ str r3, [r4, #3276]
str r5, [r4, #3280]
str r5, [r4, #3156]
str r5, [r4, #3284]
+ strh r3, [r4, #222] @ movhi
+ strh r3, [r4, #220] @ movhi
+ movs r3, #32
strh r5, [r4, #3160] @ movhi
+ strh r3, [r4, #3152] @ movhi
+ movs r3, #128
strh r5, [r4, #3206] @ movhi
+ strh r3, [r4, #3154] @ movhi
strh r5, [r4, #3242] @ movhi
bl ftl_malloc
str r0, [r4, #3192]
ldrh r0, [r4, #306]
muls r0, r7, r0
bl ftl_malloc
- ldrh r3, [r4, #232]
+ ldrh r6, [r4, #232]
str r0, [r4, #3200]
- muls r6, r3, r6
- lsl r8, r6, #2
+ mul r8, r8, r6
mov r0, r8
bl ftl_malloc
+ movs r3, #20
str r0, [r4, #3288]
+ muls r6, r3, r6
mov r0, r6
bl ftl_malloc
str r0, [r4, #3292]
@@ -3777,8 +4020,8 @@
ldrh r0, [r4, #258]
lsls r0, r0, #2
bl ftl_malloc
- ldrh r3, [r4, #312]
- ldrh r6, [r4, #232]
+ ldrh r3, [r4, #232]
+ ldrh r6, [r4, #312]
str r0, [r4, #3328]
muls r6, r3, r6
mov r0, r6
@@ -3797,12 +4040,11 @@
uxth r0, r0
strh r0, [r4, #3340] @ movhi
bl ftl_malloc
- ldrh r3, [r4, #3340]
str r0, [r4, #3344]
- ldr r0, .L529+4
- addw r3, r3, #547
- lsrs r3, r3, #9
- and r0, r0, r3, lsl #9
+ ldrh r0, [r4, #3340]
+ addw r0, r0, #547
+ lsrs r3, r0, #9
+ and r0, r0, #130560
strh r3, [r4, #3340] @ movhi
bl ftl_malloc
ldrh r6, [r4, #242]
@@ -3842,7 +4084,6 @@
ldrh r2, [r4, #322]
mov r1, r5
str r0, [r4, #3372]
- add r5, r4, #380
lsls r2, r2, #2
bl ftl_memset
ldrh r0, [r4, #336]
@@ -3876,148 +4117,146 @@
lsls r0, r0, #2
bl ftl_malloc
ldrh r2, [r4, #3388]
- movs r3, #1
- ldrh r6, [r4, #254]
+ ldrh r3, [r4, #254]
+ mov r5, r0
str r0, [r4, #380]
+ movs r1, #1
+ lsls r6, r2, #2
+ add r2, r0, r2, lsl #2
+ add r0, r4, #384
+.L441:
+ cmp r3, r1
+ bhi .L442
+ cmp r3, #0
+ ldr r0, .L539+4
+ mov r1, #0
+ it eq
+ moveq r3, #1
+ rsb r2, r3, #8
+ adds r3, r3, #7
lsls r2, r2, #2
- mov r1, r2
-.L429:
- cmp r3, r6
- bcc .L430
- ldr r2, .L529+8
- movs r1, #0
- add r3, r2, r3, lsl #2
- adds r2, r2, #56
- adds r3, r3, #24
-.L431:
- cmp r2, r3
- bne .L432
+ add r0, r0, r3, lsl #2
+ bl memset
ldr r3, [r4, #3356]
- cbnz r3, .L433
-.L435:
- ldr r1, .L529+12
- ldr r0, .L529+16
+ cbnz r3, .L443
+.L445:
+ ldr r0, .L539+8
+ ldr r1, .L539+12
bl sftl_printk
mov r0, #-1
+.L440:
pop {r4, r5, r6, r7, r8, pc}
-.L430:
- ldr r0, [r4, #380]
- adds r3, r3, #1
- add r0, r0, r1
- add r1, r1, r2
- str r0, [r5, #4]!
- b .L429
-.L432:
- str r1, [r3, #4]!
- b .L431
-.L530:
+.L442:
+ str r2, [r0], #4
+ adds r1, r1, #1
+ add r2, r2, r6
+ b .L441
+.L540:
.align 2
-.L529:
+.L539:
.word .LANCHOR0
- .word 33553920
.word .LANCHOR0+352
- .word .LANCHOR1+173
.word .LC91
-.L433:
+ .word .LANCHOR1+173
+.L443:
ldr r3, [r4, #3360]
cmp r3, #0
- beq .L435
+ beq .L445
ldr r3, [r4, #3376]
cmp r3, #0
- beq .L435
+ beq .L445
ldr r3, [r4, #3380]
cmp r3, #0
- beq .L435
+ beq .L445
ldr r3, [r4, #2540]
cmp r3, #0
- beq .L435
+ beq .L445
ldr r3, [r4, #3384]
cmp r3, #0
- beq .L435
+ beq .L445
ldr r3, [r4, #2516]
cmp r3, #0
- beq .L435
- ldr r3, [r4, #380]
- cmp r3, #0
- beq .L435
+ beq .L445
+ cmp r5, #0
+ beq .L445
ldr r3, [r4, #72]
cmp r3, #0
- beq .L435
+ beq .L445
ldr r3, [r4, #3192]
cmp r3, #0
- beq .L435
+ beq .L445
ldr r3, [r4, #3200]
cmp r3, #0
- beq .L435
+ beq .L445
ldr r3, [r4, #3288]
cmp r3, #0
- beq .L435
+ beq .L445
ldr r3, [r4, #3296]
cmp r3, #0
- beq .L435
+ beq .L445
ldr r3, [r4, #3268]
cmp r3, #0
- beq .L435
+ beq .L445
ldr r3, [r4, #3184]
cmp r3, #0
- beq .L435
+ beq .L445
ldr r3, [r4, #3292]
cmp r3, #0
- beq .L435
+ beq .L445
ldr r3, [r4, #3300]
cmp r3, #0
- beq .L435
+ beq .L445
ldr r3, [r4, #3304]
cmp r3, #0
- beq .L435
+ beq .L445
ldr r3, [r4, #3308]
cmp r3, #0
- beq .L435
+ beq .L445
ldr r3, [r4, #3176]
cmp r3, #0
- beq .L435
+ beq .L445
ldr r3, [r4, #3312]
cmp r3, #0
- beq .L435
+ beq .L445
ldr r3, [r4, #3316]
cmp r3, #0
- beq .L435
+ beq .L445
ldr r3, [r4, #3172]
cmp r3, #0
- beq .L435
+ beq .L445
ldr r3, [r4, #3332]
cmp r3, #0
- beq .L435
+ beq .L445
ldr r3, [r4, #3336]
cmp r3, #0
- beq .L435
+ beq .L445
ldr r3, [r4, #3180]
cmp r3, #0
- beq .L435
+ beq .L445
ldr r3, [r4, #2536]
cmp r3, #0
- beq .L435
+ beq .L445
ldr r3, [r4, #3344]
cmp r3, #0
- beq .L435
+ beq .L445
ldr r3, [r4, #348]
cmp r3, #0
- beq .L435
- ldr r3, .L531
+ beq .L445
+ ldr r3, .L541
ldr r2, [r3, #3364]
cmp r2, #0
- beq .L435
+ beq .L445
ldr r2, [r3, #3368]
cmp r2, #0
- beq .L435
+ beq .L445
ldr r3, [r3, #3372]
cmp r3, #0
- beq .L435
+ beq .L445
movs r0, #0
- pop {r4, r5, r6, r7, r8, pc}
-.L532:
+ b .L440
+.L542:
.align 2
-.L531:
+.L541:
.word .LANCHOR0
.fnend
.size FtlMemInit, .-FtlMemInit
@@ -4034,46 +4273,46 @@
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, lr}
.save {r4, r5, r6, r7, r8, r9, r10, lr}
- mov r5, r0
- ldr r6, .L539
- mov r7, r1
- subs r4, r5, #2
+ mov r4, r0
+ ldr r7, .L548
+ ldr r9, .L548+4
+ subs r6, r4, #2
+ ldr r10, .L548+8
+ addw r4, r4, #1022
+ mov r5, r1
movw r8, #65535
- ldr r9, .L539+4
- addw r5, r5, #1022
- ldrh r2, [r6, #3388]
+ ldrh r2, [r7, #3388]
+ mov r0, r5
movs r1, #0
- ldr r10, .L539+8
- mov r0, r7
lsls r2, r2, #2
bl ftl_memset
-.L536:
- ldrh r3, [r4, #2]
+.L546:
+ ldrh r3, [r6, #2]!
cmp r3, r8
- beq .L533
- ldrh r2, [r6, #298]
+ beq .L543
+ ldrh r2, [r7, #298]
cmp r2, r3
- bhi .L535
- movs r2, #74
+ bhi .L545
mov r1, r9
mov r0, r10
+ movs r2, #74
bl sftl_printk
-.L535:
- ldrh r3, [r4, #2]!
+.L545:
+ ldrh r3, [r6]
movs r2, #1
- cmp r5, r4
+ cmp r4, r6
lsr r1, r3, #5
and r3, r3, #31
lsl r3, r2, r3
- ldr r2, [r7, r1, lsl #2]
+ ldr r2, [r5, r1, lsl #2]
orr r2, r2, r3
- str r2, [r7, r1, lsl #2]
- bne .L536
-.L533:
+ str r2, [r5, r1, lsl #2]
+ bne .L546
+.L543:
pop {r4, r5, r6, r7, r8, r9, r10, pc}
-.L540:
+.L549:
.align 2
-.L539:
+.L548:
.word .LANCHOR0
.word .LANCHOR1+184
.word .LC8
@@ -4091,18 +4330,18 @@
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r0, .L542
+ ldr r0, .L551
movw r3, #65535
movs r2, #16
movs r1, #255
- strh r3, [r0, #352] @ movhi
- movs r3, #0
- strh r3, [r0, #358] @ movhi
add r0, r0, #364
+ strh r3, [r0, #-12] @ movhi
+ movs r3, #0
+ strh r3, [r0, #-6] @ movhi
b ftl_memset
-.L543:
+.L552:
.align 2
-.L542:
+.L551:
.word .LANCHOR0
.fnend
.size FtlBbtMemInit, .-FtlBbtMemInit
@@ -4117,7 +4356,7 @@
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L545
+ ldr r3, .L554
mov r2, #2048
push {r4, lr}
.save {r4, lr}
@@ -4131,9 +4370,9 @@
bl ftl_memset
mov r0, r4
pop {r4, pc}
-.L546:
+.L555:
.align 2
-.L545:
+.L554:
.word .LANCHOR0
.fnend
.size FtlFreeSysBlkQueueInit, .-FtlFreeSysBlkQueueInit
@@ -4151,95 +4390,84 @@
push {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
movs r1, #0
- ldrh r2, [r0, #10]
mov r4, r0
- ldr r5, [r0, #20]
+ ldrh r2, [r0, #10]
+ ldrd r5, r6, [r0, #20]
ldr r7, [r0, #12]
- ldr r6, [r0, #24]
lsls r2, r2, #1
mov r0, r5
bl ftl_memset
movs r3, #0
-.L548:
+.L557:
ldrh r1, [r4, #6]
uxth r2, r3
cmp r1, r2
- bhi .L552
- ldr r3, .L567
+ bhi .L561
+ ldr r3, .L574
movs r6, #0
- mov r9, r6
- mov fp, r6
+ mov r10, r6
ldrh r2, [r3, #304]
ldrh r3, [r4]
strh r2, [r5, r3, lsl #1] @ movhi
- ldrh r10, [r5]
-.L553:
- ldrh r3, [r4, #10]
- uxth r1, r6
- cmp r3, r1
- bhi .L557
- mov r0, r9
+ ldrh fp, [r5]
+.L562:
+ ldrh r2, [r4, #10]
+ uxth r3, r6
+ cmp r2, r3
+ bhi .L565
+ mov r0, r10
pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L552:
+.L561:
uxth r2, r3
ldr r1, [r6, r2, lsl #2]
movs r2, #0
ubfx r1, r1, #10, #16
-.L549:
+.L558:
ldrh ip, [r4, #10]
uxth r0, r2
cmp ip, r0
- bhi .L551
+ bhi .L560
adds r3, r3, #1
- b .L548
-.L551:
+ b .L557
+.L560:
uxth r0, r2
ldrh ip, [r7, r0, lsl #1]
cmp ip, r1
- bne .L550
- cbz r1, .L550
+ bne .L559
+ cbz r1, .L559
ldrh ip, [r5, r0, lsl #1]
add ip, ip, #1
strh ip, [r5, r0, lsl #1] @ movhi
-.L550:
+.L559:
adds r2, r2, #1
- b .L549
-.L557:
- uxth r2, r6
- ldrh r3, [r5, r2, lsl #1]
- lsl r8, r2, #1
- cmp r10, r3
- bls .L554
- ldrh r0, [r7, r2, lsl #1]
- add r8, r8, r7
- cbnz r0, .L555
-.L556:
- adds r6, r6, #1
- b .L553
-.L554:
- cmp r3, #0
- bne .L556
- ldrh r0, [r7, r2, lsl #1]
- add r8, r8, r7
- cmp r0, #0
- beq .L556
-.L558:
+ b .L558
+.L565:
+ uxth r8, r6
+ ldrh r9, [r5, r8, lsl #1]
+ cmp r9, fp
+ bcs .L563
+ ldrh r2, [r7, r8, lsl #1]
+ cmp r2, #0
+ itt ne
+ movne r10, r3
+ movne fp, r9
+.L563:
+ cmp r9, #0
+ bne .L564
+ ldrh r0, [r7, r8, lsl #1]
+ cbz r0, .L564
movs r1, #1
bl FtlFreeSysBlkQueueIn
- strh fp, [r8] @ movhi
+ strh r9, [r7, r8, lsl #1] @ movhi
ldrh r3, [r4, #8]
subs r3, r3, #1
strh r3, [r4, #8] @ movhi
- b .L556
-.L555:
- mov r9, r1
- mov r10, r3
- cmp r3, #0
- beq .L558
- b .L556
-.L568:
+.L564:
+ adds r6, r6, #1
+ b .L562
+.L575:
.align 2
-.L567:
+.L574:
.word .LANCHOR0
.fnend
.size ftl_free_no_use_map_blk, .-ftl_free_no_use_map_blk
@@ -4257,67 +4485,65 @@
push {r3, r4, r5, r6, r7, lr}
.save {r3, r4, r5, r6, r7, lr}
movs r1, #0
- ldr r4, .L572
- movs r6, #12
+ ldr r4, .L579
+ movw r6, #65535
+ movs r7, #12
ldr r2, [r4, #328]
ldr r0, [r4, #3360]
lsls r2, r2, #1
bl ftl_memset
ldrh r3, [r4, #310]
- movs r1, #255
ldrh r2, [r4, #338]
+ movs r1, #255
ldr r0, [r4, #3384]
muls r2, r3, r2
bl ftl_memset
- movs r2, #0
- mov r3, r4
- movw r1, #65535
- mov r7, r2
-.L570:
- ldrh r4, [r3, #338]
- uxth r0, r2
- adds r5, r2, #1
- cmp r4, r0
- bhi .L571
- ldr r2, [r3, #328]
- strh r1, [r3, #3394] @ movhi
- strh r1, [r3, #3392] @ movhi
- strh r2, [r3, #3402] @ movhi
- movw r2, #61634
- strh r2, [r3, #3396] @ movhi
- ldrh r2, [r3, #3436]
- strh r2, [r3, #3400] @ movhi
- ldrh r2, [r3, #336]
- strh r2, [r3, #3398] @ movhi
- ldr r2, [r3, #3356]
- str r2, [r3, #3404]
- ldr r2, [r3, #3380]
- str r2, [r3, #3408]
- ldr r2, [r3, #3360]
- str r2, [r3, #3412]
- ldr r2, [r3, #3376]
- str r2, [r3, #3416]
+ movs r3, #0
+ mov ip, r3
+.L577:
+ ldrh r1, [r4, #338]
+ uxth r2, r3
+ cmp r1, r2
+ bhi .L578
+ ldr r3, [r4, #328]
+ strh r3, [r4, #3402] @ movhi
+ mov r3, #-1
+ str r3, [r4, #3392]
+ movw r3, #61634
+ strh r3, [r4, #3396] @ movhi
+ ldrh r3, [r4, #3436]
+ strh r3, [r4, #3400] @ movhi
+ ldrh r3, [r4, #336]
+ strh r3, [r4, #3398] @ movhi
+ ldr r3, [r4, #3356]
+ str r3, [r4, #3404]
+ ldr r3, [r4, #3380]
+ str r3, [r4, #3408]
+ ldr r3, [r4, #3360]
+ str r3, [r4, #3412]
+ ldr r3, [r4, #3376]
+ str r3, [r4, #3416]
pop {r3, r4, r5, r6, r7, pc}
-.L571:
- uxth r2, r2
- ldr r0, [r3, #2540]
- mul r4, r6, r2
- add ip, r0, r4
- str r7, [ip, #4]
- strh r1, [r0, r4] @ movhi
- ldr r0, [r3, #2540]
- add r0, r0, r4
- ldrh r4, [r3, #310]
- muls r2, r4, r2
- ldr r4, [r3, #3384]
+.L578:
+ uxth r5, r3
+ ldr r2, [r4, #2540]
+ adds r3, r3, #1
+ mul r0, r7, r5
+ adds r1, r2, r0
+ str ip, [r1, #4]
+ strh r6, [r2, r0] @ movhi
+ ldrh r2, [r4, #310]
+ ldr r1, [r4, #2540]
+ add r1, r1, r0
+ ldr r0, [r4, #3384]
+ muls r2, r5, r2
bic r2, r2, #3
- add r2, r2, r4
- str r2, [r0, #8]
- mov r2, r5
- b .L570
-.L573:
+ add r2, r2, r0
+ str r2, [r1, #8]
+ b .L577
+.L580:
.align 2
-.L572:
+.L579:
.word .LANCHOR0
.fnend
.size FtlL2PDataInit, .-FtlL2PDataInit
@@ -4335,15 +4561,15 @@
push {r3, r4, r5, lr}
.save {r3, r4, r5, lr}
movs r5, #0
- ldr r4, .L575
- movw r3, #65535
+ ldr r4, .L582
mov r1, r5
+ movw r3, #65535
ldrh r2, [r4, #320]
+ ldr r0, [r4, #348]
strh r3, [r4, #3438] @ movhi
mov r3, #-1
- ldr r0, [r4, #348]
- str r3, [r4, #3448]
lsls r2, r2, #1
+ str r3, [r4, #3448]
str r5, [r4, #3440]
str r5, [r4, #3444]
strh r5, [r4, #344] @ movhi
@@ -4359,20 +4585,20 @@
lsls r2, r2, #1
bl ftl_memset
mov r1, r5
- movs r2, #48
addw r0, r4, #2468
+ movs r2, #48
bl ftl_memset
- mov r2, #512
mov r1, r5
+ mov r2, #512
add r0, r4, #2640
bl ftl_memset
bl FtlGcBufInit
bl FtlL2PDataInit
mov r0, r5
pop {r3, r4, r5, pc}
-.L576:
+.L583:
.align 2
-.L575:
+.L582:
.word .LANCHOR0
.fnend
.size FtlVariablesInit, .-FtlVariablesInit
@@ -4389,116 +4615,117 @@
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+ mov r10, #6
+ ldr r4, .L595
movs r5, #0
- ldr r4, .L588
- movs r2, #6
- mov r9, r5
- mov r6, r5
- movw fp, #65535
.pad #20
sub sp, sp, #20
- ldrh r3, [r4, #242]
- add r10, r4, #260
movs r1, #0
+ mov r9, r5
+ mov r7, r5
+ movw fp, #65535
+ ldrh r2, [r4, #242]
ldr r0, [r4, #2516]
- muls r2, r3, r2
+ mul r2, r10, r2
bl ftl_memset
str r5, [r4, #2532]
str r5, [r4, #2520]
str r5, [r4, #2524]
strh r5, [r4, #2528] @ movhi
strh r5, [r4, #224] @ movhi
-.L578:
+.L585:
ldrh r3, [r4, #240]
uxth r8, r5
cmp r8, r3
- bcs .L585
- ldrh r3, [r4, #302]
- ldrh r2, [r4, #232]
+ bcs .L592
+ ldrh r3, [r4, #232]
str r3, [sp, #4]
+ ldrh r3, [r4, #302]
+ str r3, [sp]
movs r3, #0
- mov r7, r3
- b .L586
-.L580:
- ldrb r0, [r10, r3] @ zero_extendqisi2
+ ldr r2, .L595+4
+ mov r6, r3
+ b .L593
+.L587:
+ ldrb r0, [r2], #1 @ zero_extendqisi2
mov r1, r8
- str r2, [sp, #12]
- str r3, [sp, #8]
+ str r3, [sp, #12]
+ str r2, [sp, #8]
bl V2P_block
bl FtlBbmIsBadBlock
- ldr r3, [sp, #8]
- ldr r2, [sp, #12]
- cbnz r0, .L579
- ldr r1, [sp, #4]
- add r7, r7, r1
- uxth r7, r7
-.L579:
- adds r3, r3, #1
+ ldrd r2, r3, [sp, #8]
+ cbnz r0, .L586
+ ldr r1, [sp]
+ add r6, r6, r1
+ uxth r6, r6
.L586:
+ adds r3, r3, #1
+.L593:
+ ldr r0, [sp, #4]
uxth r1, r3
- cmp r2, r1
- bhi .L580
+ cmp r0, r1
+ bhi .L587
uxth r3, r5
- cbz r7, .L581
- mov r1, r7
- str r3, [sp, #4]
+ cbz r6, .L588
+ mov r1, r6
mov r0, #32768
+ str r3, [sp]
bl __aeabi_idiv
- ldr r3, [sp, #4]
- uxth r7, r0
-.L582:
- ldr r1, [r4, #2516]
- movs r2, #6
- mla r2, r2, r3, r1
- strh r7, [r2, #4] @ movhi
+ ldr r3, [sp]
+ uxth r6, r0
+.L589:
+ ldr r2, [r4, #2516]
+ mla r2, r10, r3, r2
+ strh r6, [r2, #4] @ movhi
ldrh r2, [r4, #24]
cmp r2, r8
- beq .L583
+ beq .L590
ldrh r2, [r4, #76]
cmp r2, r8
- beq .L583
+ beq .L590
ldrh r2, [r4, #124]
cmp r2, r8
- beq .L583
+ beq .L590
ldr r2, [r4, #72]
ldrh r3, [r2, r3, lsl #1]
- cbnz r3, .L584
+ cbnz r3, .L591
add r9, r9, #1
mov r0, r8
uxth r9, r9
bl INSERT_FREE_LIST
-.L583:
+.L590:
adds r5, r5, #1
- b .L578
-.L581:
+ b .L585
+.L588:
ldr r2, [r4, #72]
strh fp, [r2, r3, lsl #1] @ movhi
- b .L582
-.L584:
- adds r6, r6, #1
+ b .L589
+.L591:
+ adds r7, r7, #1
mov r0, r8
- uxth r6, r6
+ uxth r7, r7
bl INSERT_DATA_LIST
- b .L583
-.L585:
- strh r6, [r4, #2528] @ movhi
- add r6, r6, r9
- cmp r6, r3
+ b .L590
+.L592:
+ strh r7, [r4, #2528] @ movhi
+ add r7, r7, r9
+ cmp r7, r3
strh r9, [r4, #224] @ movhi
- ble .L587
+ ble .L594
+ ldr r1, .L595+8
movw r2, #2219
- ldr r1, .L588+4
- ldr r0, .L588+8
+ ldr r0, .L595+12
bl sftl_printk
-.L587:
+.L594:
movs r0, #0
add sp, sp, #20
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L589:
+.L596:
.align 2
-.L588:
+.L595:
.word .LANCHOR0
+ .word .LANCHOR0+260
.word .LANCHOR1+198
.word .LC8
.fnend
@@ -4516,14 +4743,14 @@
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, lr}
.save {r4, lr}
- movs r3, #0
- ldr r4, .L591
movs r1, #255
+ ldr r4, .L598
+ movs r3, #0
ldrh r2, [r4, #306]
ldr r0, [r4, #3192]
strh r3, [r4, #3196] @ movhi
- strh r3, [r4, #3204] @ movhi
lsls r2, r2, #1
+ strh r3, [r4, #3204] @ movhi
bl ftl_memset
ldrh r3, [r4, #306]
movs r2, #12
@@ -4533,9 +4760,9 @@
bl ftl_memset
pop {r4, lr}
b FtlGcBufInit
-.L592:
+.L599:
.align 2
-.L591:
+.L598:
.word .LANCHOR0
.fnend
.size FtlGcPageVarInit, .-FtlGcPageVarInit
@@ -4553,42 +4780,42 @@
push {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
mov r2, #256
- ldr r5, .L600
+ ldr r6, .L606
mov r4, r0
- mov r6, r1
+ mov r5, r1
movs r1, #255
bl ftl_memset
- ldr r3, [r5, #3244]
- mov r1, r6
+ mov r1, r5
+ ldr r3, [r6, #3244]
mov r0, r4
blx r3
uxth r0, r0
cmp r0, #50
- bls .L594
+ bls .L601
+ mov r0, r4
mov r2, #256
movs r1, #255
- mov r0, r4
bl ftl_memset
movs r0, #0
-.L594:
- ldrh r3, [r5, #14]
+.L601:
+ ldrh r3, [r6, #14]
cmp r3, #4
- bne .L599
- add r1, r4, r0, lsl #1
+ bne .L605
mov r3, r4
-.L596:
+ add r1, r4, r0, lsl #1
+.L603:
cmp r3, r1
- bne .L597
-.L599:
+ bne .L604
+.L605:
pop {r4, r5, r6, pc}
-.L597:
+.L604:
ldrh r2, [r3]
lsrs r2, r2, #1
strh r2, [r3], #2 @ movhi
- b .L596
-.L601:
+ b .L603
+.L607:
.align 2
-.L600:
+.L606:
.word .LANCHOR0
.fnend
.size FlashGetBadBlockList, .-FlashGetBadBlockList
@@ -4607,6 +4834,14 @@
b memcpy
.fnend
.size ftl_memcpy, .-ftl_memcpy
+ .section .rodata.str1.1
+.LC92:
+ .ascii "FlashReadPages %x %x error_ecc_bits %d\012\000"
+.LC93:
+ .ascii "data:\000"
+.LC94:
+ .ascii "spare:\000"
+ .text
.align 1
.global FlashReadPages
.syntax unified
@@ -4620,147 +4855,152 @@
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
- mov r9, r1
- ldr r5, .L644
mov r4, r0
- mov r8, #0
+ ldr r5, .L650
.pad #28
sub sp, sp, #28
- ldr r7, .L644+4
- ldrh r10, [r5, #12]
- ldr fp, .L644+24
- ldr r2, [r7]
- str r7, [sp, #4]
- str r2, [sp, #20]
-.L604:
- cmp r8, r9
- bne .L618
+ ldr r7, .L650+4
+ mov r3, sp
+ ldr r10, .L650+8
+ bic r8, r3, #8160
+ ldr fp, .L650+12
+ bic r8, r8, #31
+ str r1, [sp, #4]
+ mov r9, #0
+ ldr r3, [r8, #24]
+ str r3, [sp, #20]
+ ldrh r3, [r5, #12]
+ str r3, [sp]
+.L610:
ldr r3, [sp, #4]
- movs r0, #0
+ cmp r9, r3
+ bne .L624
ldr r2, [sp, #20]
- ldr r3, [r3]
+ ldr r3, [r8, #24]
cmp r2, r3
- beq .L619
+ beq .L625
bl __stack_chk_fail
-.L618:
+.L624:
ldr r3, [r4, #8]
- cbz r3, .L605
+ cbz r3, .L611
ldr r3, [r4, #12]
- cbnz r3, .L606
-.L605:
+ cbnz r3, .L612
+.L611:
+ mov r1, r7
+ mov r0, r10
movs r2, #96
- ldr r1, .L644+8
- ldr r0, .L644+12
bl sftl_printk
-.L606:
+.L612:
add r2, sp, #12
add r1, sp, #16
mov r0, r4
bl l2p_addr_tran
ldr r0, [sp, #12]
cmp r0, #3
- bls .L607
+ bls .L613
mov r3, #-1
str r3, [r4]
-.L608:
- add r8, r8, #1
+.L614:
+ add r9, r9, #1
adds r4, r4, #20
- b .L604
-.L607:
+ b .L610
+.L613:
ldr r6, [r4, #8]
uxtb r0, r0
- ldr r3, [r4, #12]
ldr r1, [sp, #16]
- lsls r7, r6, #26
- ldr r7, [r5, #3256]
+ ldr ip, [r5, #3256]
+ lsls r3, r6, #26
+ ldr r3, [r4, #12]
it ne
ldrne r6, [r5, #3320]
mov r2, r6
- blx r7
+ blx ip
str r0, [r4]
ldrh r3, [r5, #14]
cmp r3, #4
- bne .L611
- ldr r3, [r4, #12]
+ bne .L617
+ ldr r0, [sp]
add r2, r6, #2048
+ ldr r3, [r4, #12]
ldr r1, [sp, #16]
- ldrb r0, [sp, #12] @ zero_extendqisi2
+ ldr ip, [r5, #3256]
adds r3, r3, #8
- ldr r7, [r5, #3256]
- add r1, r1, r10
- blx r7
+ add r1, r1, r0
+ ldrb r0, [sp, #12] @ zero_extendqisi2
+ blx ip
adds r1, r0, #1
- beq .L612
+ beq .L618
ldr r3, [r4, #12]
ldr r2, [r3, #12]
adds r2, r2, #1
- bne .L613
+ bne .L619
ldr r2, [r3, #8]
adds r2, r2, #1
- bne .L613
+ bne .L619
ldr r3, [r3]
adds r3, r3, #1
- beq .L613
-.L612:
+ beq .L619
+.L618:
mov r3, #-1
str r3, [r4]
-.L613:
- ldr r3, [r4]
- adds r3, r3, #1
- beq .L614
- cmp r0, #256
- it eq
- streq r0, [r4]
-.L614:
+.L620:
ldr r3, [r4]
adds r2, r3, #1
- beq .L615
+ beq .L621
cmp r3, #256
- bne .L611
-.L615:
+ bne .L617
+.L621:
ldr r1, [r4, #4]
mov r0, fp
ldr r2, [sp, #16]
bl sftl_printk
ldr r1, [r4, #8]
+ cbz r1, .L623
+ movs r3, #4
+ ldr r0, .L650+16
+ mov r2, r3
+ bl rknand_print_hex
+.L623:
+ ldr r1, [r4, #12]
cbz r1, .L617
movs r3, #4
- ldr r0, .L644+16
+ ldr r0, .L650+20
mov r2, r3
bl rknand_print_hex
.L617:
- ldr r1, [r4, #12]
- cbz r1, .L611
- movs r3, #4
- ldr r0, .L644+20
- mov r2, r3
- bl rknand_print_hex
-.L611:
ldr r3, [r5, #3320]
- cmp r6, r3
- bne .L608
+ cmp r3, r6
+ bne .L614
ldr r0, [r4, #8]
- cmp r6, r0
- beq .L608
+ cmp r0, r6
+ beq .L614
ldrh r2, [r5, #258]
mov r1, r6
lsls r2, r2, #9
bl ftl_memcpy
- b .L608
+ b .L614
.L619:
+ ldr r3, [r4]
+ adds r3, r3, #1
+ beq .L620
+ cmp r0, #256
+ it eq
+ streq r0, [r4]
+ b .L620
+.L625:
+ movs r0, #0
add sp, sp, #28
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L645:
+.L651:
.align 2
-.L644:
+.L650:
.word .LANCHOR0
- .word __stack_chk_guard
.word .LANCHOR1+216
.word .LC8
+ .word .LC92
.word .LC93
.word .LC94
- .word .LC92
.fnend
.size FlashReadPages, .-FlashReadPages
.align 1
@@ -4777,51 +5017,52 @@
push {r4, r5, r6, r7, r8, r9, r10, lr}
.save {r4, r5, r6, r7, r8, r9, r10, lr}
movs r6, #0
- ldr r4, .L656
+ ldr r4, .L662
movw r10, #61664
- ldr r3, [r4, #3300]
- add r7, r4, #362
- ldr r8, [r4, #3332]
+ add r7, r4, #364
addw r9, r4, #3452
+ ldr r3, [r4, #3300]
+ ldr r8, [r4, #3332]
str r3, [r4, #3460]
str r8, [r4, #3464]
-.L647:
+.L653:
ldrh r3, [r4, #254]
- cmp r6, r3
- bcc .L652
+ cmp r3, r6
+ bhi .L658
movs r0, #0
pop {r4, r5, r6, r7, r8, r9, r10, pc}
-.L652:
+.L658:
ldrh r5, [r4, #298]
movw r3, #65535
- strh r3, [r7, #2]! @ movhi
-.L649:
+ strh r3, [r7] @ movhi
+.L655:
ldrh r3, [r4, #298]
subs r5, r5, #1
- uxth r5, r5
sub r2, r3, #16
+ uxth r5, r5
cmp r5, r2
- ble .L650
+ ble .L656
mla r3, r6, r3, r5
movs r2, #1
- mov r1, r2
mov r0, r9
+ mov r1, r2
lsls r3, r3, #10
str r3, [r4, #3456]
bl FlashReadPages
ldr r3, [r4, #3452]
adds r3, r3, #1
- beq .L649
+ beq .L655
ldrh r3, [r8]
cmp r3, r10
- bne .L649
+ bne .L655
strh r5, [r7] @ movhi
-.L650:
- adds r6, r6, #1
- b .L647
-.L657:
- .align 2
.L656:
+ adds r6, r6, #1
+ adds r7, r7, #2
+ b .L653
+.L663:
+ .align 2
+.L662:
.word .LANCHOR0
.fnend
.size FtlLoadFactoryBbt, .-FtlLoadFactoryBbt
@@ -4838,79 +5079,77 @@
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, lr}
.save {r4, r5, r6, r7, r8, r9, lr}
+ cmp r1, #1
+ mov r2, r1
.pad #92
sub sp, sp, #92
- ldr r6, .L670
- cmp r1, #1
- lsl r8, r0, #10
- mov r2, r1
- mov r7, r1
- ldr r3, [r6]
+ mov r8, r1
+ mov r3, sp
+ lsl r6, r0, #10
+ bic r7, r3, #8160
mov r1, #1
- mov r0, sp
+ bic r7, r7, #31
+ ldr r3, [r7, #24]
str r3, [sp, #84]
- ldr r3, .L670+4
+ ldr r3, .L677
ite eq
- ldrheq r5, [r3, #304]
- ldrhne r5, [r3, #302]
+ ldrheq r4, [r3, #304]
+ ldrhne r4, [r3, #302]
ldr r3, [r3, #3324]
- subs r5, r5, #1
- sxth r5, r5
+ subs r4, r4, #1
str r3, [sp, #8]
add r3, sp, #20
str r3, [sp, #12]
- orr r3, r5, r8
- str r3, [sp, #4]
- bl FlashReadPages
- ldr r3, [sp, #20]
- adds r3, r3, #1
- bne .L661
- mov r9, #0
-.L662:
- cmp r9, r5
- ble .L665
-.L661:
- ldr r2, [sp, #84]
- mov r0, r5
- ldr r3, [r6]
- cmp r2, r3
- beq .L666
- bl __stack_chk_fail
-.L665:
- add r3, r9, r5
- mov r2, r7
- add r3, r3, r3, lsr #31
- movs r1, #1
+ sxth r4, r4
+ orr r0, r4, r0, lsl #10
+ str r0, [sp, #4]
mov r0, sp
- asrs r4, r3, #1
- sxth r3, r4
- orr r3, r3, r8
- str r3, [sp, #4]
bl FlashReadPages
ldr r3, [sp, #20]
adds r3, r3, #1
- bne .L663
- ldr r3, [sp, #24]
+ bne .L668
+ mov r9, #0
+ b .L667
+.L671:
+ add r3, r9, r4
+ mov r2, r8
+ mov r0, sp
+ movs r1, #1
+ add r3, r3, r3, lsr #31
+ sbfx r5, r3, #1, #16
+ orr r3, r6, r3, asr #1
+ str r3, [sp, #4]
+ bl FlashReadPages
+ ldrd r3, r2, [sp, #20]
+ ands r3, r3, r2
adds r3, r3, #1
- bne .L663
+ bne .L669
ldr r3, [sp]
adds r3, r3, #1
- beq .L663
- subs r4, r4, #1
- sxth r5, r4
- b .L662
-.L663:
- adds r4, r4, #1
- sxth r9, r4
- b .L662
-.L666:
+ beq .L669
+ subs r4, r5, #1
+ sxth r4, r4
+.L667:
+ cmp r9, r4
+ ble .L671
+.L668:
+ ldr r2, [sp, #84]
+ ldr r3, [r7, #24]
+ cmp r2, r3
+ beq .L672
+ bl __stack_chk_fail
+.L669:
+ adds r5, r5, #1
+ sxth r9, r5
+ b .L667
+.L672:
+ mov r0, r4
add sp, sp, #92
@ sp needed
pop {r4, r5, r6, r7, r8, r9, pc}
-.L671:
+.L678:
.align 2
-.L670:
- .word __stack_chk_guard
+.L677:
.word .LANCHOR0
.fnend
.size FtlGetLastWrittenPage, .-FtlGetLastWrittenPage
@@ -4928,15 +5167,15 @@
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, .L754
+ ldr r4, .L759
mov r1, r5
.pad #20
sub sp, sp, #20
ldr r2, [r4, #328]
ldr r0, [r4, #3380]
strh r5, [r4, #3436] @ movhi
- strh r5, [r4, #344] @ movhi
lsls r2, r2, #2
+ strh r5, [r4, #344] @ movhi
bl ftl_memset
ldr r2, [r4, #328]
mov r1, r5
@@ -4953,390 +5192,385 @@
ldr r0, [r4, #348]
lsls r2, r2, #1
bl ftl_memset
+ add r0, r4, #2624
movs r2, #16
movs r1, #255
- add r0, r4, #2624
bl ftl_memset
ldrh r8, [r4, #240]
-.L673:
+.L680:
ldrh r3, [r4, #242]
cmp r3, r8
- bls .L715
- movs r5, #0
- ldrh fp, [r4, #232]
- ldr r9, [r4, #3288]
- mov r7, r5
- ldr r3, [r4, #3176]
- mov r10, #20
- ldr r2, [r4, #3180]
- ldrh r6, [r4, #312]
- b .L716
-.L676:
- str r3, [sp, #8]
+ bls .L720
+ ldr r5, .L759+4
+ movs r7, #0
+ ldrh r6, [r4, #232]
+ mov fp, #20
+ ldrh r1, [r4, #312]
+ ldr r10, [r4, #3288]
+ add r6, r6, r5
+ ldr r2, [r4, #3176]
+ ldr r3, [r4, #3180]
+ str r1, [sp, #4]
+ b .L721
+.L683:
mov r1, r8
- ldr r3, .L754+4
- str r2, [sp, #12]
- ldrb r0, [r3, r5] @ zero_extendqisi2
+ ldrb r0, [r5], #1 @ zero_extendqisi2
+ strd r2, r3, [sp, #8]
bl V2P_block
- str r0, [sp, #4]
+ mov r9, r0
bl FtlBbmIsBadBlock
- ldr r3, [sp, #8]
- ldr r2, [sp, #12]
- cbnz r0, .L674
+ ldrd r2, r3, [sp, #8]
+ cbnz r0, .L721
+ mla ip, fp, r7, r10
+ lsl r1, r9, #10
+ strd r1, r2, [ip, #4]
ldr r1, [sp, #4]
- mla r0, r10, r7, r9
- lsls r1, r1, #10
- str r3, [r0, #8]
- str r1, [r0, #4]
- mov r1, r6
muls r1, r7, r1
add r7, r7, #1
it mi
addmi r1, r1, #3
uxth r7, r7
bic r1, r1, #3
- add r1, r1, r2
- str r1, [r0, #12]
-.L674:
- adds r5, r5, #1
-.L716:
- uxth r1, r5
- cmp fp, r1
- bhi .L676
- cbnz r7, .L677
-.L714:
+ add r1, r1, r3
+ str r1, [ip, #12]
+.L721:
+ cmp r6, r5
+ bne .L683
+ cbnz r7, .L684
+.L719:
add r8, r8, #1
uxth r8, r8
- b .L673
-.L677:
- mov r0, r9
- mov r9, #0
- movs r2, #1
+ b .L680
+.L684:
mov r1, r7
+ mov r0, r10
+ movs r2, #1
bl FlashReadPages
-.L678:
- uxth r3, r9
- cmp r7, r3
- bls .L714
- movs r3, #20
- mul r10, r3, r9
+ movs r3, #0
+ str r3, [sp, #4]
+.L718:
+ ldr r3, [sp, #4]
+ mov r9, #20
+ mul r9, r9, r3
ldr r3, [r4, #3288]
- add r2, r3, r10
- ldr r3, [r3, r10]
+ add r2, r3, r9
+ ldr r3, [r3, r9]
ldr r5, [r2, #4]
ldr r6, [r2, #12]
adds r3, r3, #1
ubfx r5, r5, #10, #16
- bne .L681
- mov fp, #16
- movw r3, #65535
-.L683:
+ bne .L687
+ mov r10, #16
+ movw fp, #65535
+.L689:
ldr r0, [r4, #3288]
- str r3, [sp, #4]
- add r0, r0, r10
- ldr r2, [r0, #4]
- adds r2, r2, #1
- str r2, [r0, #4]
movs r2, #1
mov r1, r2
+ add r0, r0, r9
+ ldr r3, [r0, #4]
+ adds r3, r3, #1
+ str r3, [r0, #4]
bl FlashReadPages
- ldrh r2, [r6]
- ldr r3, [sp, #4]
- cmp r2, r3
- bne .L680
+ ldrh r3, [r6]
+ cmp r3, fp
ldr r3, [r4, #3288]
+ bne .L686
mov r2, #-1
- str r2, [r3, r10]
+ str r2, [r3, r9]
ldr r3, [r4, #3288]
- ldr r3, [r3, r10]
+ ldr r3, [r3, r9]
cmp r3, r2
- bne .L681
-.L682:
- movs r1, #1
- b .L753
-.L680:
- ldr r2, [r4, #3288]
- ldr r2, [r2, r10]
- adds r2, r2, #1
- bne .L681
- add fp, fp, #-1
- uxth fp, fp
- cmp fp, #0
- bne .L683
- b .L682
-.L681:
+ beq .L688
+.L687:
ldr r2, [r4, #2588]
ldr r3, [r6, #4]
adds r1, r2, #1
- beq .L684
+ beq .L736
cmp r2, r3
- bhi .L685
-.L684:
- adds r2, r3, #1
+ bhi .L690
+.L736:
+ adds r0, r3, #1
itt ne
addne r2, r3, #1
strne r2, [r4, #2588]
-.L685:
+.L690:
ldrh r2, [r6]
+ movw r1, #61634
+ cmp r2, r1
+ beq .L691
+ bhi .L692
+ movw r1, #61574
+ cmp r2, r1
+ beq .L693
movw r1, #61604
cmp r2, r1
- beq .L687
- bhi .L688
- movw r3, #61574
- cmp r2, r3
- beq .L689
+ beq .L694
+.L695:
+ ldr r3, [sp, #4]
+ adds r3, r3, #1
+ str r3, [sp, #4]
+ ldrh r3, [sp, #4]
+ cmp r7, r3
+ bhi .L718
+ b .L719
.L686:
- add r9, r9, #1
- b .L678
+ ldr r3, [r3, r9]
+ adds r3, r3, #1
+ bne .L687
+ add r10, r10, #-1
+ uxth r10, r10
+ cmp r10, #0
+ bne .L689
.L688:
- movw r3, #61634
- cmp r2, r3
- beq .L690
+ movs r1, #1
+ b .L757
+.L692:
movw r3, #65535
cmp r2, r3
- bne .L686
+ bne .L695
movs r1, #0
-.L753:
+.L757:
mov r0, r5
bl FtlFreeSysBlkQueueIn
- b .L686
-.L690:
+ b .L695
+.L691:
ldrh r2, [r4, #3436]
ldr r3, [r4, #328]
cmp r2, r3
- bls .L692
+ bls .L697
+ ldr r1, .L759+8
mov r2, #1232
- ldr r1, .L754+8
- ldr r0, .L754+12
+ ldr r0, .L759+12
bl sftl_printk
-.L692:
+.L697:
ldr r1, [r4, #328]
ldrh r0, [r4, #3436]
- ldr r10, [r4, #3380]
- uxth ip, r1
- add r3, ip, #-1
- sub ip, ip, r0
- add ip, ip, #-1
+ ldr r9, [r4, #3380]
+ uxth r2, r1
+ subs r3, r2, #1
+ subs r2, r2, r0
+ subs r2, r2, #1
+ add fp, r9, #4
sxth r3, r3
- sxth ip, ip
-.L693:
- cmp r3, ip
- bgt .L699
- cmp r3, #0
- bge .L731
- b .L686
-.L699:
- ldr r2, [r6, #4]
- lsl fp, r3, #2
- mov lr, r2
- ldr r2, [r10, r3, lsl #2]
+ mov ip, r3
+ sxth r2, r2
+ str r2, [sp, #8]
+.L698:
+ ldr r2, [sp, #8]
+ cmp r2, r3
+ bge .L703
+ add r10, ip, #-1
+ lsl lr, ip, #2
+ str lr, [sp, #12]
+ ldr lr, [r6, #4]
+ ldr r2, [fp, r10, lsl #2]
cmp lr, r2
- bls .L694
- ldr r2, [r10]
- cbnz r2, .L695
+ bls .L699
+ ldr r2, [r9]
+ cbnz r2, .L700
cmp r1, r0
itt ne
addne r0, r0, #1
strhne r0, [r4, #3436] @ movhi
-.L695:
- uxth ip, r3
- movs r2, #0
-.L696:
- uxth r0, r2
- sxth r1, r2
- cmp ip, r0
- bhi .L697
- ldr r2, [r4, #3380]
- cmp r3, #0
- ldr r1, [r6, #4]
- str r1, [r2, fp]
+.L700:
+ uxth lr, r3
+ movs r0, #0
+.L701:
+ uxth r9, r0
+ ldr r1, [r4, #3380]
+ sxth r2, r0
+ cmp lr, r9
+ bhi .L702
+ ldr r0, [sp, #12]
+ ldr r2, [r6, #4]
+ str r2, [r1, r0]
ldr r2, [r4, #3356]
- strh r5, [r2, r3, lsl #1] @ movhi
- blt .L686
- ldrh r0, [r4, #3436]
+ strh r5, [r2, ip, lsl #1] @ movhi
+.L703:
+ cmp r3, #0
+ blt .L695
+ ldrh r1, [r4, #3436]
ldr r2, [r4, #328]
- subs r2, r2, r0
+ subs r2, r2, r1
subs r2, r2, #1
sxth r2, r2
- cmp r3, r2
- bgt .L686
-.L731:
+ cmp r2, r3
+ blt .L695
ldr r2, [r4, #3380]
- adds r0, r0, #1
+ adds r1, r1, #1
+ strh r1, [r4, #3436] @ movhi
ldr r1, [r6, #4]
- strh r0, [r4, #3436] @ movhi
str r1, [r2, r3, lsl #2]
ldr r2, [r4, #3356]
-.L751:
+.L756:
strh r5, [r2, r3, lsl #1] @ movhi
- b .L686
-.L697:
- ldr r0, [r4, #3380]
+ b .L695
+.L702:
adds r2, r2, #1
- add lr, r0, r1, lsl #2
- ldr lr, [lr, #4]
- str lr, [r0, r1, lsl #2]
- ldr r0, [r4, #3356]
- add lr, r0, r1, lsl #1
- ldrh lr, [lr, #2]
- strh lr, [r0, r1, lsl #1] @ movhi
- b .L696
-.L694:
+ adds r0, r0, #1
+ ldr r9, [r1, r2, lsl #2]
+ add r1, r1, r2, lsl #2
+ str r9, [r1, #-4]
+ ldr r1, [r4, #3356]
+ ldrh r9, [r1, r2, lsl #1]
+ add r2, r1, r2, lsl #1
+ strh r9, [r2, #-2] @ movhi
+ b .L701
+.L699:
subs r3, r3, #1
+ mov ip, r10
sxth r3, r3
- b .L693
-.L755:
+ b .L698
+.L760:
.align 2
-.L754:
+.L759:
.word .LANCHOR0
.word .LANCHOR0+260
.word .LANCHOR1+231
.word .LC8
-.L689:
+.L693:
ldrh r2, [r4, #344]
ldrh r3, [r4, #320]
cmp r2, r3
- bls .L702
+ bls .L707
+ ldr r1, .L761
movw r2, #1273
- ldr r1, .L756
- ldr r0, .L756+4
+ ldr r0, .L761+4
bl sftl_printk
-.L702:
+.L707:
ldrh lr, [r4, #320]
ldrh r0, [r4, #344]
- ldr r10, [r4, #3368]
add ip, lr, #-1
+ ldr r2, [r4, #3368]
sxth r3, ip
sub ip, ip, r0
-.L703:
+.L708:
cmp r3, ip
- ble .L708
- ldr r2, [r6, #4]
- lsl fp, r3, #2
- ldr r1, [r10, r3, lsl #2]
- cmp r2, r1
- bls .L704
- ldr r2, [r10]
- cbnz r2, .L705
+ ble .L713
+ ldr r1, [r6, #4]
+ lsl r10, r3, #2
+ ldr r9, [r2, r3, lsl #2]
+ cmp r1, r9
+ bls .L709
+ ldr r2, [r2]
+ cbnz r2, .L710
cmp lr, r0
itt ne
addne r0, r0, #1
strhne r0, [r4, #344] @ movhi
-.L705:
+.L710:
uxth ip, r3
- movs r2, #0
-.L706:
- uxth r0, r2
- sxth r1, r2
- cmp ip, r0
- bhi .L707
- ldr r2, [r4, #3368]
- ldr r1, [r6, #4]
- str r1, [r2, fp]
+ movs r0, #0
+.L711:
+ uxth lr, r0
+ ldr r1, [r4, #3368]
+ sxth r2, r0
+ cmp ip, lr
+ bhi .L712
+ ldr r2, [r6, #4]
+ str r2, [r1, r10]
ldr r2, [r4, #348]
strh r5, [r2, r3, lsl #1] @ movhi
-.L708:
+.L713:
cmp r3, #0
- blt .L686
+ blt .L695
ldrh r2, [r4, #320]
ldrh r1, [r4, #344]
subs r2, r2, #1
subs r2, r2, r1
sxth r2, r2
- cmp r3, r2
- bgt .L686
- adds r1, r1, #1
+ cmp r2, r3
+ blt .L695
ldr r2, [r4, #3368]
+ adds r1, r1, #1
strh r1, [r4, #344] @ movhi
ldr r1, [r6, #4]
str r1, [r2, r3, lsl #2]
ldr r2, [r4, #348]
- b .L751
-.L707:
- ldr r0, [r4, #3368]
+ b .L756
+.L712:
adds r2, r2, #1
- add lr, r0, r1, lsl #2
- ldr lr, [lr, #4]
- str lr, [r0, r1, lsl #2]
- ldr r0, [r4, #348]
- add lr, r0, r1, lsl #1
- ldrh lr, [lr, #2]
- strh lr, [r0, r1, lsl #1] @ movhi
- b .L706
-.L704:
+ adds r0, r0, #1
+ ldr lr, [r1, r2, lsl #2]
+ add r1, r1, r2, lsl #2
+ str lr, [r1, #-4]
+ ldr r1, [r4, #348]
+ ldrh lr, [r1, r2, lsl #1]
+ add r2, r1, r2, lsl #1
+ strh lr, [r2, #-2] @ movhi
+ b .L711
+.L709:
subs r3, r3, #1
sxth r3, r3
- b .L703
-.L687:
+ b .L708
+.L694:
ldrh r1, [r4, #2624]
movw r2, #65535
cmp r1, r2
- bne .L710
+ bne .L715
strh r5, [r4, #2624] @ movhi
-.L752:
+.L758:
str r3, [r4, #2632]
- b .L686
-.L710:
+ b .L695
+.L715:
ldrh r0, [r4, #2628]
cmp r0, r2
- beq .L711
+ beq .L716
movs r1, #1
bl FtlFreeSysBlkQueueIn
-.L711:
+.L716:
ldr r2, [r4, #2632]
ldr r3, [r6, #4]
cmp r2, r3
- bcs .L712
+ bcs .L717
ldrh r3, [r4, #2624]
- strh r5, [r4, #2624] @ movhi
strh r3, [r4, #2628] @ movhi
+ strh r5, [r4, #2624] @ movhi
ldr r3, [r6, #4]
- b .L752
-.L712:
+ b .L758
+.L717:
strh r5, [r4, #2628] @ movhi
- b .L686
-.L715:
+ b .L695
+.L720:
ldr r1, [r4, #3356]
ldrh r3, [r1]
- cbz r3, .L717
-.L720:
+ cbz r3, .L722
+.L725:
ldr r1, [r4, #348]
ldrh r2, [r1]
cmp r2, #0
- beq .L718
-.L719:
+ beq .L723
+.L724:
ldrh r2, [r4, #3436]
ldr r3, [r4, #328]
cmp r2, r3
- bls .L750
+ bls .L754
+ ldr r1, .L761
movw r2, #1398
- ldr r1, .L756
- ldr r0, .L756+4
+ ldr r0, .L761+4
bl sftl_printk
-.L750:
+.L754:
movs r0, #0
add sp, sp, #20
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L717:
+.L722:
ldrh r2, [r4, #3436]
cmp r2, #0
- beq .L720
+ beq .L725
ldr r0, [r4, #328]
-.L721:
+.L726:
sxth r2, r3
cmp r2, r0
- bcs .L720
+ bcs .L725
ldrh r5, [r1, r2, lsl #1]
adds r3, r3, #1
cmp r5, #0
- beq .L721
+ beq .L726
mov r3, r2
movs r5, #0
-.L722:
- ldr r1, [r4, #328]
- cmp r3, r1
- bcs .L720
+ b .L727
+.L728:
ldr r1, [r4, #3356]
subs r0, r3, r2
ldrh r6, [r1, r3, lsl #1]
@@ -5348,26 +5582,30 @@
strh r5, [r1, r3, lsl #1] @ movhi
adds r3, r3, #1
sxth r3, r3
- b .L722
-.L718:
+.L727:
+ ldr r1, [r4, #328]
+ cmp r3, r1
+ bcc .L728
+ b .L725
+.L723:
ldrh r3, [r4, #344]
cmp r3, #0
- beq .L719
+ beq .L724
ldrh r0, [r4, #320]
-.L727:
+.L732:
sxth r3, r2
- cmp r3, r0
mov r5, r3
- bge .L719
+ cmp r3, r0
+ bge .L724
ldrh r6, [r1, r3, lsl #1]
adds r2, r2, #1
cmp r6, #0
- beq .L727
+ beq .L732
movs r0, #0
-.L728:
+.L733:
ldrh r2, [r4, #320]
cmp r3, r2
- bge .L719
+ bge .L724
ldr r2, [r4, #348]
subs r1, r3, r5
ldrh r6, [r2, r3, lsl #1]
@@ -5379,10 +5617,10 @@
strh r0, [r2, r3, lsl #1] @ movhi
adds r3, r3, #1
sxth r3, r3
- b .L728
-.L757:
+ b .L733
+.L762:
.align 2
-.L756:
+.L761:
.word .LANCHOR1+231
.word .LC8
.fnend
@@ -5398,12 +5636,12 @@
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- push {r4, r5, r6, r7, r8, lr}
- .save {r4, r5, r6, r7, r8, lr}
- movw r8, #61649
- ldr r4, .L787
+ push {r4, r5, r6, r7, r8, r9, r10, lr}
+ .save {r4, r5, r6, r7, r8, r9, r10, lr}
+ movw r7, #61649
+ ldr r4, .L794
+ addw r8, r4, #3452
ldr r3, [r4, #3300]
- addw r7, r4, #3452
ldr r6, [r4, #3332]
str r3, [r4, #3460]
str r6, [r4, #3464]
@@ -5411,157 +5649,173 @@
ldrh r5, [r4, #298]
subs r5, r5, #1
uxth r5, r5
-.L759:
+.L764:
ldrh r3, [r4, #298]
subs r3, r3, #16
cmp r5, r3
- ble .L762
+ ble .L769
+ movs r2, #1
+ mov r0, r8
+ mov r1, r2
lsls r3, r5, #10
- movs r2, #1
- mov r1, r2
- mov r0, r7
str r3, [r4, #3456]
bl FlashReadPages
ldr r3, [r4, #3452]
adds r3, r3, #1
- bne .L760
- ldr r3, [r4, #3456]
- movs r2, #1
- mov r1, r2
- mov r0, r7
- adds r3, r3, #1
- str r3, [r4, #3456]
- bl FlashReadPages
-.L760:
- ldr r3, [r4, #3452]
- adds r3, r3, #1
- beq .L761
+ beq .L765
+.L768:
ldrh r3, [r6]
- cmp r3, r8
- bne .L761
+ cmp r3, r7
+ bne .L767
ldr r3, [r6, #4]
- strh r5, [r4, #352] @ movhi
str r3, [r4, #360]
+ strh r5, [r4, #352] @ movhi
ldrh r3, [r6, #8]
strh r3, [r4, #356] @ movhi
-.L762:
+.L769:
ldrh r3, [r4, #352]
movw r2, #65535
cmp r3, r2
- beq .L776
+ beq .L783
ldrh r3, [r4, #356]
cmp r3, r2
- beq .L766
- lsls r3, r3, #10
+ beq .L773
movs r2, #1
+ ldr r0, .L794+4
mov r1, r2
- ldr r0, .L787+4
+ lsls r3, r3, #10
str r3, [r4, #3456]
bl FlashReadPages
ldr r3, [r4, #3452]
adds r3, r3, #1
- beq .L766
+ beq .L773
ldrh r2, [r6]
movw r3, #61649
cmp r2, r3
- bne .L766
+ bne .L773
ldr r3, [r6, #4]
ldr r2, [r4, #360]
cmp r3, r2
- bls .L766
- ldrh r2, [r4, #356]
+ bls .L773
str r3, [r4, #360]
+ ldrh r2, [r4, #356]
ldrh r3, [r6, #8]
strh r2, [r4, #352] @ movhi
strh r3, [r4, #356] @ movhi
-.L766:
- ldr r7, .L787+4
- movs r1, #1
+.L773:
ldrh r0, [r4, #352]
- movw r8, #61649
+ movs r1, #1
+ ldr r9, .L794+4
bl FtlGetLastWrittenPage
- sxth r5, r0
- adds r0, r0, #1
- strh r0, [r4, #354] @ movhi
-.L768:
- cmp r5, #0
- bge .L771
+ sxth r8, r0
+ mov r7, r0
+ add r3, r8, #1
+ movs r5, #0
+ strh r3, [r4, #354] @ movhi
+ movw r10, #61649
+.L775:
+ subs r3, r7, r5
+ lsls r3, r3, #16
+ bpl .L778
+ ldr r1, .L794+8
movs r2, #251
- ldr r1, .L787+8
- ldr r0, .L787+12
+ ldr r0, .L794+12
bl sftl_printk
-.L770:
- ldrh r3, [r6, #10]
+.L777:
ldrh r0, [r6, #12]
+ ldrh r3, [r6, #10]
strh r3, [r4, #358] @ movhi
movw r3, #65535
cmp r0, r3
- beq .L773
- ldr r2, [r4, #228]
- cmp r0, r2
- beq .L773
- ldrh r3, [r4, #242]
- lsrs r3, r3, #2
- cmp r2, r3
- bcs .L773
+ beq .L780
+ ldr r3, [r4, #228]
cmp r0, r3
- bcs .L773
+ beq .L780
+ ldrh r2, [r4, #242]
+ lsrs r1, r2, #2
+ cmp r3, r2, lsr #2
+ bcs .L780
+ cmp r0, r1
+ bcs .L780
bl FtlSysBlkNumInit
-.L773:
- ldr r6, .L787+16
+.L780:
+ ldr r6, .L794+16
movs r5, #0
-.L774:
+.L781:
ldrh r3, [r4, #254]
- cmp r5, r3
- bcc .L775
+ cmp r3, r5
+ bhi .L782
movs r0, #0
- pop {r4, r5, r6, r7, r8, pc}
-.L761:
+.L763:
+ pop {r4, r5, r6, r7, r8, r9, r10, pc}
+.L765:
+ ldr r3, [r4, #3456]
+ movs r2, #1
+ mov r0, r8
+ mov r1, r2
+ adds r3, r3, #1
+ str r3, [r4, #3456]
+ bl FlashReadPages
+ ldr r3, [r4, #3452]
+ adds r3, r3, #1
+ bne .L768
+.L767:
subs r5, r5, #1
uxth r5, r5
- b .L759
-.L771:
- ldrh r3, [r4, #352]
+ b .L764
+.L778:
+ ldrh r2, [r4, #352]
+ sub r3, r8, r5
+ mov r0, r9
+ orr r3, r3, r2, lsl #10
movs r2, #1
- mov r1, r2
- mov r0, r7
- orr r3, r5, r3, lsl #10
str r3, [r4, #3456]
+ mov r1, r2
ldr r3, [r4, #3300]
str r3, [r4, #3460]
bl FlashReadPages
ldr r3, [r4, #3452]
adds r3, r3, #1
- beq .L769
+ beq .L776
ldrh r3, [r6]
- cmp r3, r8
- beq .L770
-.L769:
- subs r5, r5, #1
- sxth r5, r5
- b .L768
-.L775:
- ldrh r2, [r4, #3388]
- ldr r1, [r4, #3460]
- ldr r0, [r6, #4]!
- lsls r2, r2, #2
- mla r1, r5, r2, r1
- adds r5, r5, #1
- bl ftl_memcpy
- b .L774
+ cmp r3, r10
+ beq .L777
.L776:
+ adds r5, r5, #1
+ b .L775
+.L782:
+ ldrh r2, [r4, #3388]
+ ldr r3, [r4, #3460]
+ ldr r0, [r6], #4
+ mul r1, r5, r2
+ lsls r2, r2, #2
+ adds r5, r5, #1
+ add r1, r3, r1, lsl #2
+ bl ftl_memcpy
+ b .L781
+.L783:
mov r0, #-1
- pop {r4, r5, r6, r7, r8, pc}
-.L788:
+ b .L763
+.L795:
.align 2
-.L787:
+.L794:
.word .LANCHOR0
.word .LANCHOR0+3452
.word .LANCHOR1+245
.word .LC8
- .word .LANCHOR0+376
+ .word .LANCHOR0+380
.fnend
.size FtlLoadBbt, .-FtlLoadBbt
+ .section .rodata.str1.1
+.LC95:
+ .ascii "prog read error: = %x\012\000"
+.LC96:
+ .ascii "prog read REFRESH: = %x\012\000"
+.LC97:
+ .ascii "prog read s error: = %x %x %x %x %x\012\000"
+.LC98:
+ .ascii "prog read d error: = %x %x %x %x %x\012\000"
+ .text
.align 1
.global FlashProgPages
.syntax unified
@@ -5573,246 +5827,235 @@
.fnstart
@ args = 0, pretend = 0, frame = 48
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L829
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+ mov r8, r0
+ ldr r6, .L835
.pad #60
sub sp, sp, #60
- ldr r6, .L829+4
- mov fp, r1
mov r4, r0
+ mov r3, sp
mov r5, r0
- str r2, [sp, #16]
- mov r10, #0
- ldr r2, [r3]
- mov r8, r6
- str r3, [sp, #20]
- str r6, [sp, #8]
- str r2, [sp, #52]
- ldrh r2, [r6, #12]
- mov r9, r2
- lsls r2, r2, #3
- str r2, [sp, #12]
-.L790:
- cmp r10, fp
- bne .L804
- ldr r7, .L829+8
- movs r5, #0
- ldr r8, .L829+32
- ldr r9, .L829+36
-.L805:
- cmp r10, r5
- beq .L798
- ldr r3, [sp, #8]
- movs r1, #1
- add r0, sp, #32
- ldr r2, [r3, #3320]
+ bic r10, r3, #8160
+ mov fp, #0
+ bic r10, r10, #31
+ str r1, [sp, #12]
+ str r2, [sp, #20]
+ ldr r3, [r10, #24]
+ str r3, [sp, #52]
+ ldrh r3, [r6, #12]
+ mov r9, r3
+ lsls r3, r3, #3
+ str r3, [sp, #16]
+.L797:
+ ldr r3, [sp, #12]
+ cmp fp, r3
+ bne .L810
+ movs r0, #20
+ ldr r7, .L835+4
+ ldr r9, .L835+8
+ mla r8, r0, fp, r8
+ ldr r5, .L835
+.L811:
+ cmp r8, r4
+ beq .L804
+ ldr r2, [r6, #3320]
movs r3, #0
+ add r0, sp, #32
+ movs r1, #1
str r3, [r2]
- ldr r2, [sp, #8]
- ldr r2, [r2, #3328]
+ ldr r2, [r6, #3328]
str r3, [r2]
+ ldr r2, [sp, #20]
ldr r3, [r4, #4]
- ldr r2, [sp, #16]
str r3, [sp, #36]
- ldr r3, [sp, #8]
- ldr r3, [r3, #3320]
+ ldr r3, [r6, #3320]
str r3, [sp, #40]
- ldr r3, [sp, #8]
- ldr r3, [r3, #3328]
+ ldr r3, [r6, #3328]
str r3, [sp, #44]
bl FlashReadPages
ldr fp, [sp, #32]
cmp fp, #-1
- bne .L806
+ bne .L812
ldr r1, [r4, #4]
mov r0, r7
bl sftl_printk
str fp, [r4]
-.L806:
+.L812:
ldr fp, [sp, #32]
cmp fp, #256
- bne .L807
+ bne .L813
ldr r1, [r4, #4]
- mov r0, r8
+ mov r0, r9
bl sftl_printk
str fp, [r4]
-.L807:
+.L813:
ldr r3, [r4, #12]
- cbz r3, .L808
- ldr r1, [sp, #8]
+ cbz r3, .L814
+ ldr r1, [r5, #3328]
ldr r2, [r3]
- ldr r1, [r1, #3328]
ldr r0, [r1]
cmp r2, r0
- bne .L809
- ldr r6, [r3, #8]
- mov ip, r6
- ldr r6, [r1, #8]
- cmp ip, r6
- beq .L808
-.L809:
+ bne .L815
+ ldr ip, [r3, #8]
+ ldr lr, [r1, #8]
+ cmp ip, lr
+ beq .L814
+.L815:
ldr r1, [r1, #4]
- stm sp, {r0, r1}
- mov r0, r9
+ strd r0, r1, [sp]
+ ldr r0, .L835+12
ldr r3, [r3, #4]
ldr r1, [r4, #4]
bl sftl_printk
mov r3, #-1
str r3, [r4]
-.L808:
+.L814:
ldr r3, [r4, #8]
- cbz r3, .L810
- ldr r1, [sp, #8]
+ cbz r3, .L816
+ ldr r1, [r5, #3320]
ldr r2, [r3]
- ldr r1, [r1, #3320]
ldr r0, [r1]
cmp r2, r0
- bne .L811
- ldr r6, [r3, #2048]
- mov ip, r6
- ldr r6, [r1, #2048]
- cmp ip, r6
- beq .L810
-.L811:
+ bne .L817
+ ldr ip, [r3, #2048]
+ ldr lr, [r1, #2048]
+ cmp ip, lr
+ beq .L816
+.L817:
ldr r1, [r1, #4]
- stm sp, {r0, r1}
- ldr r0, .L829+12
+ strd r0, r1, [sp]
+ ldr r0, .L835+16
ldr r3, [r3, #4]
ldr r1, [r4, #4]
bl sftl_printk
mov r3, #-1
str r3, [r4]
-.L810:
- adds r5, r5, #1
+.L816:
adds r4, r4, #20
- b .L805
-.L804:
+ b .L811
+.L810:
ldr r3, [r5, #8]
- cbz r3, .L791
+ cbz r3, .L798
ldr r3, [r5, #12]
- cbnz r3, .L792
-.L791:
+ cbnz r3, .L799
+.L798:
+ ldr r1, .L835+20
movs r2, #148
- ldr r1, .L829+16
- ldr r0, .L829+20
+ ldr r0, .L835+24
bl sftl_printk
-.L792:
+.L799:
add r2, sp, #24
add r1, sp, #28
mov r0, r5
bl l2p_addr_tran
ldr r7, [sp, #24]
cmp r7, #3
- bls .L793
-.L828:
+ bls .L800
+.L834:
mov r3, #-1
str r3, [r5]
- b .L794
-.L793:
- cbnz r7, .L795
+ b .L801
+.L800:
+ cbnz r7, .L802
ldr r3, [sp, #28]
- ldr r2, [sp, #12]
+ ldr r2, [sp, #16]
cmp r2, r3
- bls .L795
- ldr r5, .L829+16
- ldr r6, .L829+24
- ldr r8, .L829+40
- b .L827
-.L797:
+ bls .L802
+ ldr r6, .L835+20
+ ldr r5, .L835+28
+.L803:
+ ldr r2, [r4, #4]
mov r3, #-1
- ldr r2, [r4, #-16]
- str r3, [r4, #-20]
- mov r1, r5
- mov r0, r6
+ mov r1, r6
+ str r3, [r4]
+ mov r0, r5
adds r7, r7, #1
bl sftl_printk
+ ldr r1, [r4, #8]
+ ldr r0, .L835+32
movs r3, #16
movs r2, #4
- ldr r1, [r4, #-12]
- mov r0, r8
+ adds r4, r4, #20
bl rknand_print_hex
movs r3, #4
ldr r1, [r4, #-8]
mov r2, r3
- ldr r0, .L829+28
+ ldr r0, .L835+36
bl rknand_print_hex
-.L827:
- cmp r7, fp
- add r4, r4, #20
- bne .L797
+ ldr r3, [sp, #12]
+ cmp r3, r7
+ bne .L803
bl dump_stack
-.L798:
- ldr r3, [sp, #20]
- movs r0, #0
+.L804:
ldr r2, [sp, #52]
- ldr r3, [r3]
+ ldr r3, [r10, #24]
cmp r2, r3
- beq .L813
+ beq .L819
bl __stack_chk_fail
-.L795:
+.L802:
ldr r1, [r5, #8]
lsls r3, r1, #26
- beq .L814
- ldr r7, [r8, #3320]
- cmp r1, r7
- beq .L799
- ldrh r2, [r8, #258]
+ beq .L820
+ ldr r7, [r6, #3320]
+ cmp r7, r1
+ beq .L805
+ ldrh r2, [r6, #258]
mov r0, r7
lsls r2, r2, #9
bl ftl_memcpy
-.L799:
+.L805:
ldr r3, [r5, #12]
mov r2, r7
ldr r1, [sp, #28]
ldrb r0, [sp, #24] @ zero_extendqisi2
- ldr r6, [r8, #3252]
- blx r6
- cbnz r0, .L800
+ ldr ip, [r6, #3252]
+ blx ip
+ cbnz r0, .L806
str r0, [r5]
-.L801:
- ldrh r3, [r8, #14]
+.L807:
+ ldrh r3, [r6, #14]
cmp r3, #4
- bne .L794
+ bne .L801
ldr r3, [r5, #12]
add r2, r7, #2048
ldr r1, [sp, #28]
ldrb r0, [sp, #24] @ zero_extendqisi2
adds r3, r3, #8
- ldr r6, [r8, #3252]
+ ldr r7, [r6, #3252]
add r1, r1, r9
- blx r6
+ blx r7
cmp r0, #0
- bne .L828
-.L794:
- add r10, r10, #1
+ bne .L834
+.L801:
+ add fp, fp, #1
adds r5, r5, #20
- b .L790
-.L814:
+ b .L797
+.L820:
mov r7, r1
- b .L799
-.L800:
+ b .L805
+.L806:
mov r3, #-1
str r3, [r5]
- b .L801
-.L813:
+ b .L807
+.L819:
+ movs r0, #0
add sp, sp, #60
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L830:
+.L836:
.align 2
-.L829:
- .word __stack_chk_guard
+.L835:
.word .LANCHOR0
.word .LC95
+ .word .LC96
+ .word .LC97
.word .LC98
.word .LANCHOR1+256
.word .LC8
.word .LC86
- .word .LC88
- .word .LC96
- .word .LC97
.word .LC87
+ .word .LC88
.fnend
.size FlashProgPages, .-FlashProgPages
.align 1
@@ -5824,116 +6067,151 @@
.type FtlLowFormatEraseBlock, %function
FtlLowFormatEraseBlock:
.fnstart
- @ args = 0, pretend = 0, frame = 16
+ @ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
- push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+ push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+ .pad #12
mov r10, #0
- ldr r4, .L876
+ ldr r4, .L882
+ mov r8, r0
mov r7, r1
mov r6, r10
mov r5, r10
mov r9, #20
- .pad #20
- sub sp, sp, #20
- mov fp, r4
- str r0, [sp, #4]
str r0, [r4, #3284]
-.L832:
+.L838:
ldrh r1, [r4, #232]
uxth r3, r10
cmp r1, r3
- bhi .L837
+ bhi .L843
cmp r6, #0
- beq .L831
- mov r8, #0
- mov r9, #20
+ beq .L837
+ mov r9, #0
+ mov r10, #20
+ ldr r0, [r4, #3268]
mov r2, r6
movs r1, #0
- ldr r0, [r4, #3268]
bl FlashEraseBlocks
-.L840:
- uxth r3, r8
+.L847:
+ mul r3, r10, r9
+ ldr r2, [r4, #3268]
+ adds r1, r2, r3
+ ldr r3, [r2, r3]
+ adds r3, r3, #1
+ bne .L846
+ ldr r0, [r1, #4]
+ adds r5, r5, #1
+ uxth r5, r5
+ ubfx r0, r0, #10, #16
+ bl FtlBbmMapBadBlock
+.L846:
+ add r9, r9, #1
+ uxth r3, r9
cmp r6, r3
- bhi .L842
+ bhi .L847
cmp r7, #0
- beq .L859
+ beq .L862
ldrh r3, [r4, #304]
- mov r10, #1
- str r3, [sp, #8]
-.L843:
- mov r8, #0
- mov fp, #20
-.L853:
+ mov fp, #1
+ str r3, [sp, #4]
+.L848:
+ mov r10, #0
+.L857:
mov r9, #0
mov r6, r9
-.L844:
+.L849:
ldrh r1, [r4, #232]
uxth r3, r9
cmp r1, r3
- bhi .L848
- cbz r6, .L831
+ bhi .L853
+ cmp r6, #0
+ beq .L837
mov r9, #0
- movs r3, #1
- mov r2, r10
- mov r1, r6
ldr r0, [r4, #3268]
+ mov r2, fp
+ mov r1, r6
+ movs r3, #1
bl FlashProgPages
-.L850:
+.L856:
+ movs r3, #20
+ ldr r2, [r4, #3268]
+ mul r3, r3, r9
+ adds r1, r2, r3
+ ldr r3, [r2, r3]
+ cbz r3, .L855
+ ldr r0, [r1, #4]
+ adds r5, r5, #1
+ uxth r5, r5
+ ubfx r0, r0, #10, #16
+ bl FtlBbmMapBadBlock
+.L855:
+ add r9, r9, #1
uxth r3, r9
cmp r6, r3
- bhi .L852
- add r8, r8, #1
- ldr r2, [sp, #8]
- uxth r3, r8
- cmp r2, r3
- bhi .L853
- mov r8, #0
- mov r9, #20
-.L854:
- uxth r3, r8
- cmp r6, r3
bhi .L856
- ldr r3, [sp, #4]
- cmp r3, #63
- bls .L857
- cbz r7, .L831
-.L857:
- mov r2, r6
- mov r1, r10
+ add r10, r10, #1
+ ldr r2, [sp, #4]
+ uxth r3, r10
+ cmp r2, r3
+ bhi .L857
+ mov r9, #0
+ mov r10, #20
+.L859:
+ cbz r7, .L858
+ mul r3, r10, r9
+ ldr r2, [r4, #3268]
+ adds r1, r2, r3
+ ldr r3, [r2, r3]
+ cbnz r3, .L858
+ ldr r0, [r1, #4]
+ movs r1, #1
+ ubfx r0, r0, #10, #16
+ bl FtlFreeSysBlkQueueIn
+.L858:
+ add r9, r9, #1
+ uxth r3, r9
+ cmp r6, r3
+ bhi .L859
+ cmp r8, #63
+ bls .L860
+ cbz r7, .L837
+.L860:
ldr r0, [r4, #3268]
+ mov r2, r6
+ mov r1, fp
bl FlashEraseBlocks
-.L831:
+.L837:
mov r0, r5
- add sp, sp, #20
+ add sp, sp, #12
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L837:
+.L843:
uxth r3, r10
ldr r0, [r4, #3268]
movs r2, #0
mul r1, r9, r3
add r3, r3, r4
str r2, [r0, r1]
- ldr r1, [sp, #4]
+ mov r1, r8
ldrb r0, [r3, #260] @ zero_extendqisi2
bl V2P_block
- mov r8, r0
- cbz r7, .L833
+ mov fp, r0
+ cbz r7, .L839
bl IsBlkInVendorPart
- cbnz r0, .L834
-.L833:
- mov r0, r8
+ cbnz r0, .L840
+.L839:
+ mov r0, fp
bl FtlBbmIsBadBlock
- cbnz r0, .L835
+ cbnz r0, .L841
ldr r1, [r4, #3268]
- lsl r3, r8, #10
- ldr r0, [fp, #3336]
- mla r1, r9, r6, r1
- str r3, [r1, #4]
+ lsl r0, fp, #10
ldr r3, [r4, #3316]
+ mla r1, r9, r6, r1
str r3, [r1, #8]
ldrh r3, [r4, #312]
+ str r0, [r1, #4]
+ ldr r0, [r4, #3336]
muls r3, r6, r3
add r6, r6, #1
it mi
@@ -5942,61 +6220,48 @@
bic r3, r3, #3
add r3, r3, r0
str r3, [r1, #12]
-.L834:
+.L840:
add r10, r10, #1
- b .L832
-.L835:
- adds r5, r5, #1
- uxth r5, r5
- b .L834
-.L842:
- mul r3, r9, r8
- ldr r2, [r4, #3268]
- adds r1, r2, r3
- ldr r3, [r2, r3]
- adds r3, r3, #1
- bne .L841
- ldr r0, [r1, #4]
- adds r5, r5, #1
- uxth r5, r5
- ubfx r0, r0, #10, #16
- bl FtlBbmMapBadBlock
+ b .L838
.L841:
- add r8, r8, #1
+ adds r5, r5, #1
+ uxth r5, r5
b .L840
-.L859:
+.L862:
movs r3, #2
- mov r10, r7
- str r3, [sp, #8]
- b .L843
-.L848:
+ mov fp, r7
+ str r3, [sp, #4]
+ b .L848
+.L853:
uxth r3, r9
+ movs r2, #20
ldr r0, [r4, #3268]
- movs r2, #0
- mul r1, fp, r3
+ mul r1, r2, r3
add r3, r3, r4
+ movs r2, #0
str r2, [r0, r1]
- ldr r1, [sp, #4]
+ mov r1, r8
ldrb r0, [r3, #260] @ zero_extendqisi2
bl V2P_block
- str r0, [sp, #12]
- cbz r7, .L845
+ str r0, [sp]
+ cbz r7, .L850
bl IsBlkInVendorPart
- cbnz r0, .L846
-.L845:
- ldr r0, [sp, #12]
+ cbnz r0, .L851
+.L850:
+ ldr r0, [sp]
bl FtlBbmIsBadBlock
- cbnz r0, .L846
+ cbnz r0, .L851
ldr r1, [r4, #3268]
- ldr r3, [sp, #12]
- ldr r2, .L876
- mla r1, fp, r6, r1
- ldr r0, [r2, #3316]
- add r3, r8, r3, lsl #10
- str r3, [r1, #4]
+ movs r3, #20
+ ldr r2, .L882
+ mla r1, r3, r6, r1
+ ldr r3, [sp]
+ add r0, r10, r3, lsl #10
ldr r3, [r4, #3312]
str r3, [r1, #8]
ldrh r3, [r4, #312]
+ str r0, [r1, #4]
+ ldr r0, [r2, #3316]
muls r3, r6, r3
add r6, r6, #1
it mi
@@ -6005,40 +6270,12 @@
bic r3, r3, #3
add r3, r3, r0
str r3, [r1, #12]
-.L846:
- add r9, r9, #1
- b .L844
-.L852:
- mul r3, fp, r9
- ldr r2, [r4, #3268]
- adds r1, r2, r3
- ldr r3, [r2, r3]
- cbz r3, .L851
- ldr r0, [r1, #4]
- adds r5, r5, #1
- uxth r5, r5
- ubfx r0, r0, #10, #16
- bl FtlBbmMapBadBlock
.L851:
add r9, r9, #1
- b .L850
-.L856:
- cbz r7, .L855
- mul r3, r9, r8
- ldr r2, [r4, #3268]
- adds r1, r2, r3
- ldr r3, [r2, r3]
- cbnz r3, .L855
- ldr r0, [r1, #4]
- movs r1, #1
- ubfx r0, r0, #10, #16
- bl FtlFreeSysBlkQueueIn
-.L855:
- add r8, r8, #1
- b .L854
-.L877:
+ b .L849
+.L883:
.align 2
-.L876:
+.L882:
.word .LANCHOR0
.fnend
.size FtlLowFormatEraseBlock, .-FtlLowFormatEraseBlock
@@ -6056,30 +6293,32 @@
push {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
cmp r0, #11
- ldr r6, .L884
+ mov r4, r0
.pad #88
sub sp, sp, #88
- mov r5, r0
- ldr r2, [r6]
- str r2, [sp, #84]
- bls .L882
- ldr r4, .L884+4
+ mov r3, sp
+ bic r6, r3, #8160
+ bic r6, r6, #31
+ ldr r3, [r6, #24]
+ str r3, [sp, #84]
+ bls .L888
+ ldr r5, .L890
add r0, sp, #20
movs r2, #32
movs r1, #165
str r0, [sp, #12]
- lsls r5, r5, #10
- ldr r3, [r4, #3324]
+ lsls r4, r4, #10
+ ldr r3, [r5, #3324]
str r3, [sp, #8]
bl ftl_memset
movs r2, #8
movs r1, #90
- ldr r0, [r4, #3324]
+ ldr r0, [r5, #3324]
bl ftl_memset
movs r2, #1
mov r0, sp
mov r1, r2
- str r5, [sp, #4]
+ str r4, [sp, #4]
bl FlashEraseBlocks
movs r3, #1
mov r0, sp
@@ -6087,49 +6326,56 @@
mov r1, r3
bl FlashProgPages
ldr r3, [sp]
- cbnz r3, .L883
- adds r3, r5, #1
+ cbnz r3, .L889
+ adds r3, r4, #1
mov r0, sp
str r3, [sp, #4]
movs r3, #1
mov r2, r3
mov r1, r3
bl FlashProgPages
- ldr r4, [sp]
- adds r4, r4, #0
+ ldr r5, [sp]
+ subs r5, r5, #0
it ne
- movne r4, #1
- negs r4, r4
-.L880:
+ movne r5, #1
+ rsbs r5, r5, #0
+.L886:
+ mov r0, sp
movs r2, #1
movs r1, #0
- mov r0, sp
- str r5, [sp, #4]
+ str r4, [sp, #4]
bl FlashEraseBlocks
-.L878:
+.L884:
ldr r2, [sp, #84]
- mov r0, r4
- ldr r3, [r6]
+ ldr r3, [r6, #24]
cmp r2, r3
- beq .L881
+ beq .L887
bl __stack_chk_fail
-.L883:
- mov r4, #-1
- b .L880
-.L882:
- movs r4, #0
- b .L878
-.L881:
+.L889:
+ mov r5, #-1
+ b .L886
+.L888:
+ movs r5, #0
+ b .L884
+.L887:
+ mov r0, r5
add sp, sp, #88
@ sp needed
pop {r4, r5, r6, pc}
-.L885:
+.L891:
.align 2
-.L884:
- .word __stack_chk_guard
+.L890:
.word .LANCHOR0
.fnend
.size FlashTestBlk, .-FlashTestBlk
+ .section .rodata.str1.1
+.LC99:
+ .ascii "FtlBbmTblFlush id=%x,page=%x,previd=%x cnt=%d\012\000"
+.LC100:
+ .ascii "FtlBbmTblFlush error:%x\012\000"
+.LC101:
+ .ascii "FtlBbmTblFlush error = %x error count = %d\012\000"
+ .text
.align 1
.global FtlBbmTblFlush
.syntax unified
@@ -6145,72 +6391,69 @@
.save {r4, r5, r6, r7, r8, r9, r10, lr}
.pad #8
movs r5, #0
- ldr r4, .L898
+ ldr r4, .L903
movs r1, #0
+ add r6, r4, #380
ldr r0, [r4, #3300]
- add r6, r4, #376
ldr r3, [r4, #3332]
ldrh r2, [r4, #310]
str r0, [r4, #3460]
str r3, [r4, #3464]
bl ftl_memset
-.L887:
+.L893:
ldrh r3, [r4, #254]
- cmp r5, r3
- blt .L888
- ldr r6, [r4, #3464]
+ cmp r3, r5
+ bgt .L894
+ ldr r5, [r4, #3464]
movs r2, #16
movs r1, #255
- ldr r8, .L898+12
- ldr r9, .L898+16
- movs r5, #0
- mov r0, r6
- mov r7, r5
+ ldr r8, .L903+4
+ mov r0, r5
+ ldr r9, .L903+8
bl ftl_memset
movw r3, #61649
- strh r3, [r6] @ movhi
+ strh r3, [r5] @ movhi
+ movs r6, #0
+ mov r7, r6
ldr r3, [r4, #360]
- str r3, [r6, #4]
+ str r3, [r5, #4]
ldrh r3, [r4, #352]
- strh r3, [r6, #2] @ movhi
- ldrh r3, [r4, #356]
- strh r3, [r6, #8] @ movhi
- ldrh r3, [r4, #358]
- strh r3, [r6, #10] @ movhi
+ strh r3, [r5, #2] @ movhi
+ ldr r3, [r4, #356]
+ str r3, [r5, #8]
ldr r3, [r4, #228]
- strh r3, [r6, #12] @ movhi
+ strh r3, [r5, #12] @ movhi
ldr r3, [r4, #2604]
- strh r3, [r6, #14] @ movhi
-.L889:
+ strh r3, [r5, #14] @ movhi
+.L895:
ldr r3, [r4, #3300]
- mov r10, #0
+ mov r0, r8
ldrh r2, [r4, #354]
- ldrh r1, [r4, #352]
+ mov r10, #0
str r3, [r4, #3460]
+ ldrh r1, [r4, #352]
ldr r3, [r4, #3332]
- str r10, [r4, #3452]
str r3, [r4, #3464]
orr r3, r2, r1, lsl #10
- ldrh r0, [r6, #10]
str r3, [r4, #3456]
+ ldrh r3, [r5, #10]
+ str r3, [sp]
ldrh r3, [r4, #356]
- str r0, [sp]
- mov r0, r8
+ str r10, [r4, #3452]
bl sftl_printk
ldrh r3, [r4, #304]
ldrh r2, [r4, #354]
subs r3, r3, #1
cmp r2, r3
- blt .L890
+ blt .L896
ldr r3, [r4, #360]
- ldrh r2, [r4, #352]
ldr r0, [r4, #3268]
adds r3, r3, #1
- strh r10, [r4, #354] @ movhi
str r3, [r4, #360]
- str r3, [r6, #4]
+ str r3, [r5, #4]
+ ldrh r2, [r4, #352]
ldrh r3, [r4, #356]
- strh r2, [r6, #8] @ movhi
+ strh r2, [r5, #8] @ movhi
strh r2, [r4, #356] @ movhi
movs r2, #1
strh r3, [r4, #352] @ movhi
@@ -6218,8 +6461,9 @@
lsls r3, r3, #10
str r3, [r4, #3456]
str r3, [r0, #4]
+ strh r10, [r4, #354] @ movhi
bl FlashEraseBlocks
-.L890:
+.L896:
movs r3, #1
mov r0, r9
mov r2, r3
@@ -6230,51 +6474,48 @@
strh r3, [r4, #354] @ movhi
ldr r3, [r4, #3452]
adds r2, r3, #1
- bne .L891
- adds r5, r5, #1
+ bne .L897
+ adds r6, r6, #1
ldr r1, [r4, #3456]
- uxth r5, r5
- ldr r0, .L898+4
+ ldr r0, .L903+12
+ uxth r6, r6
bl sftl_printk
- cmp r5, #3
- bls .L889
- mov r2, r5
+ cmp r6, #3
+ bls .L895
ldr r1, [r4, #3456]
- ldr r0, .L898+8
+ mov r2, r6
+ ldr r0, .L903+16
bl sftl_printk
-.L893:
- b .L893
-.L888:
+.L899:
+ b .L899
+.L894:
ldrh r2, [r4, #3388]
ldr r3, [r4, #3460]
- ldr r1, [r6, #4]!
- mul r0, r2, r5
+ ldr r1, [r6], #4
+ mul r0, r5, r2
lsls r2, r2, #2
adds r5, r5, #1
add r0, r3, r0, lsl #2
bl ftl_memcpy
- b .L887
-.L894:
- movs r7, #1
- b .L889
-.L891:
+ b .L893
+.L897:
adds r7, r7, #1
cmp r7, #1
- ble .L894
+ ble .L895
cmp r3, #256
- beq .L889
+ beq .L895
movs r0, #0
add sp, sp, #8
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, pc}
-.L899:
+.L904:
.align 2
-.L898:
+.L903:
.word .LANCHOR0
- .word .LC100
- .word .LC101
.word .LC99
.word .LANCHOR0+3452
+ .word .LC100
+ .word .LC101
.fnend
.size FtlBbmTblFlush, .-FtlBbmTblFlush
.align 1
@@ -6286,71 +6527,67 @@
.type allocate_data_superblock, %function
allocate_data_superblock:
.fnstart
- @ args = 0, pretend = 0, frame = 16
+ @ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
- push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+ push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+ .pad #12
mov r5, r0
- ldr r4, .L936
- .pad #20
- sub sp, sp, #20
- ldr r9, .L936+20
-.L901:
- ldr r3, .L936
- ldr r2, .L936
- ldrh r3, [r3, #224]
- ldrh r2, [r2, #2528]
+ ldr r4, .L937
+ ldr r9, .L937+4
+.L906:
+ ldrh r2, [r4, #2528]
+ ldrh r3, [r4, #224]
add r3, r3, r2
- ldr r2, .L936
- ldrh r2, [r2, #240]
+ ldrh r2, [r4, #240]
cmp r3, r2
- ble .L902
- movw r2, #2667
+ ble .L907
+ ldr r0, .L937+8
mov r1, r9
- ldr r0, .L936+4
+ movw r2, #2667
bl sftl_printk
-.L902:
- ldr r3, .L936+8
+.L907:
+ ldr r3, .L937+12
cmp r5, r3
- bne .L928
+ bne .L932
ldrh r3, [r4, #224]
ldr r1, [r4, #3164]
mul r2, r1, r3
lsrs r1, r3, #1
- adds r1, r1, #1
+ movw r3, #65535
add r1, r1, r2, lsr #2
uxth r1, r1
- cbz r1, .L903
- subs r1, r1, #1
- uxth r1, r1
-.L903:
- ldr r0, .L936+12
+ cmp r1, r3
+ it eq
+ moveq r1, #0
+.L908:
+ ldr r0, .L937+16
bl List_pop_index_node
ldrh r3, [r4, #224]
mov r6, r0
uxth r8, r0
- cbnz r3, .L904
- movw r2, #2676
+ cbnz r3, .L909
+ ldr r0, .L937+8
mov r1, r9
- ldr r0, .L936+4
+ movw r2, #2676
bl sftl_printk
-.L904:
+.L909:
ldrh r3, [r4, #224]
subs r3, r3, #1
strh r3, [r4, #224] @ movhi
ldrh r3, [r4, #240]
cmp r3, r8
- bls .L901
+ bls .L906
ldr r3, [r4, #72]
uxth r6, r6
ldrh r7, [r3, r6, lsl #1]
cmp r7, #0
- bne .L901
- strh r8, [r5] @ movhi
+ bne .L906
mov r0, r5
+ strh r8, [r5] @ movhi
bl make_superblock
ldrb r3, [r5, #7] @ zero_extendqisi2
- cbnz r3, .L906
+ cbnz r3, .L911
ldr r3, [r4, #72]
movw r2, #65535
mov r0, r8
@@ -6361,69 +6598,70 @@
add r3, r3, r2
ldrh r2, [r4, #240]
cmp r3, r2
- ble .L901
- movw r2, #2690
+ ble .L906
+ ldr r0, .L937+8
mov r1, r9
- ldr r0, .L936+4
+ movw r2, #2690
bl sftl_printk
- b .L901
-.L928:
+ b .L906
+.L932:
movs r1, #0
- b .L903
-.L906:
+ b .L908
+.L911:
ldrh r2, [r4, #2528]
ldrh r3, [r4, #224]
add r3, r3, r2
ldrh r2, [r4, #240]
cmp r3, r2
- ble .L908
+ ble .L913
+ ldr r0, .L937+8
+ mov r1, r9
movw r2, #2693
- mov r1, r9
- ldr r0, .L936+4
- bl sftl_printk
-.L908:
- ldr r1, [r4, #3268]
- mov r10, #20
- ldrh r2, [r4, #232]
- add fp, r5, #16
- mov r0, fp
- mov ip, #0
- mov r3, r1
- mla r2, r10, r2, r1
- str r2, [sp, #4]
-.L909:
- ldr r2, [sp, #4]
- cmp r2, r3
- bne .L911
- cbnz r7, .L912
- mov r2, #2704
- mov r1, r9
- ldr r0, .L936+4
- bl sftl_printk
-.L912:
- ldrh r3, [r4, #172]
- cmp r3, r8
- bne .L913
- movw r2, #2706
- mov r1, r9
- ldr r0, .L936+4
bl sftl_printk
.L913:
- ldrb r3, [r5, #8] @ zero_extendqisi2
+ ldr r0, [r4, #3268]
+ add r10, r5, #16
+ ldrh r3, [r4, #232]
+ mov ip, r10
+ str r3, [sp]
+ mov r2, r0
+ movs r3, #0
+ mov lr, r3
+.L914:
+ ldr fp, [sp]
+ uxth r1, r3
+ cmp fp, r1
+ bhi .L916
+ cbnz r7, .L917
+ ldr r0, .L937+8
+ mov r1, r9
+ mov r2, #2704
+ bl sftl_printk
+.L917:
+ ldrh r3, [r4, #172]
+ cmp r3, r8
+ bne .L918
+ ldr r0, .L937+8
+ mov r1, r9
+ movw r2, #2706
+ bl sftl_printk
+.L918:
+ ldrb r1, [r5, #8] @ zero_extendqisi2
ldr r2, [r4, #2536]
- cmp r3, #0
- bne .L914
ldrh r3, [r2, r6, lsl #1]
+ cmp r1, #0
+ bne .L919
cmp r3, #0
- beq .L915
+ beq .L933
ldrh r1, [r4, #292]
add r3, r3, r1
-.L935:
+ uxth r3, r3
+.L920:
strh r3, [r2, r6, lsl #1] @ movhi
ldr r3, [r4, #2596]
adds r3, r3, #1
str r3, [r4, #2596]
-.L917:
+.L921:
ldr r3, [r4, #2536]
ldr r2, [r4, #2612]
ldrh r0, [r4, #292]
@@ -6437,101 +6675,98 @@
mla r0, r2, r0, r3
bl __aeabi_uidiv
ldr r2, [r4, #3348]
- ldr r1, [r4, #3268]
str r0, [r4, #2604]
+ ldr r0, [r4, #3268]
ldr r3, [r2, #16]
- ldr r0, .L936+16
+ ldr ip, .L937+20
adds r3, r3, #1
str r3, [r2, #16]
- movs r2, #20
- mla r2, r2, r7, r1
- adds r3, r1, #4
- adds r2, r2, #24
-.L919:
+ adds r3, r0, #4
+ movs r2, #0
+.L923:
+ uxth r1, r2
adds r3, r3, #20
- cmp r2, r3
- bne .L920
+ cmp r7, r1
+ bhi .L924
ldrb r1, [r5, #8] @ zero_extendqisi2
mov r2, r7
- ldr r0, [r4, #3268]
- mov r10, #0
bl FlashEraseBlocks
- mov r3, r10
+ mov fp, #0
+ mov r2, fp
movs r1, #20
-.L921:
- uxth r2, r10
- cmp r7, r2
- bhi .L923
- cmp r3, #0
- ble .L924
+.L925:
+ uxth r3, fp
+ cmp r7, r3
+ bhi .L927
+ cmp r2, #0
+ ble .L928
mov r0, r8
bl update_multiplier_value
bl FtlBbmTblFlush
-.L924:
+.L928:
ldrb r2, [r5, #7] @ zero_extendqisi2
cmp r2, #0
- bne .L925
+ bne .L929
ldr r3, [r4, #72]
movw r2, #65535
strh r2, [r3, r6, lsl #1] @ movhi
- b .L901
-.L911:
- str ip, [r3, #8]
- movw lr, #65535
- str ip, [r3, #12]
- ldrh r2, [r0], #2
- cmp r2, lr
- beq .L910
- mla lr, r10, r7, r1
+ b .L906
+.L916:
+ strd lr, lr, [r2, #8]
+ movw fp, #65535
+ ldrh r1, [ip], #2
+ cmp r1, fp
+ beq .L915
+ mov fp, #20
+ lsls r1, r1, #10
+ mla fp, fp, r7, r0
adds r7, r7, #1
- lsls r2, r2, #10
uxth r7, r7
- str r2, [lr, #4]
-.L910:
- adds r3, r3, #20
- b .L909
+ str r1, [fp, #4]
.L915:
+ adds r3, r3, #1
+ adds r2, r2, #20
+ b .L914
+.L933:
movs r3, #2
- b .L935
-.L914:
- ldrh r3, [r2, r6, lsl #1]
+ b .L920
+.L919:
adds r3, r3, #1
strh r3, [r2, r6, lsl #1] @ movhi
ldr r3, [r4, #2600]
adds r3, r3, #1
str r3, [r4, #2600]
- b .L917
-.L920:
- ldr r1, [r3, #-20]
- ands r1, r1, r0
- str r1, [r3, #-20]
- b .L919
-.L923:
- mul r2, r1, r10
- ldr r0, [r4, #3268]
- add ip, r0, r2
- ldr r2, [r0, r2]
- adds r0, r2, #1
- bne .L922
- ldr r0, [ip, #4]
- adds r3, r3, #1
- str r1, [sp, #12]
- str r2, [sp, #8]
- ubfx r0, r0, #10, #16
- str r3, [sp, #4]
- bl FtlBbmMapBadBlock
- ldr r2, [sp, #8]
- ldr r1, [sp, #12]
- ldr r3, [sp, #4]
- strh r2, [fp] @ movhi
- ldrb r2, [r5, #7] @ zero_extendqisi2
- subs r2, r2, #1
- strb r2, [r5, #7]
-.L922:
- add r10, r10, #1
- add fp, fp, #2
b .L921
-.L925:
+.L924:
+ ldr r1, [r3, #-20]
+ adds r2, r2, #1
+ and r1, r1, ip
+ str r1, [r3, #-20]
+ b .L923
+.L927:
+ mul r3, r1, fp
+ ldr r0, [r4, #3268]
+ add ip, r0, r3
+ ldr r3, [r0, r3]
+ adds r0, r3, #1
+ bne .L926
+ ldr r0, [ip, #4]
+ adds r2, r2, #1
+ str r3, [sp, #4]
+ str r2, [sp]
+ ubfx r0, r0, #10, #16
+ bl FtlBbmMapBadBlock
+ ldr r3, [sp, #4]
+ strh r3, [r10, fp, lsl #1] @ movhi
+ movs r1, #20
+ ldr r2, [sp]
+ ldrb r3, [r5, #7] @ zero_extendqisi2
+ subs r3, r3, #1
+ strb r3, [r5, #7]
+.L926:
+ add fp, fp, #1
+ b .L925
+.L929:
ldrh r3, [r4, #302]
strh r8, [r5] @ movhi
smulbb r3, r3, r2
@@ -6540,38 +6775,42 @@
strb r2, [r5, #6]
ldr r2, [r4, #2588]
uxth r3, r3
- strh r3, [r5, #4] @ movhi
str r2, [r5, #12]
adds r2, r2, #1
str r2, [r4, #2588]
ldr r2, [r4, #72]
ldrh r1, [r5]
+ strh r3, [r5, #4] @ movhi
strh r3, [r2, r1, lsl #1] @ movhi
ldrh r3, [r5, #4]
- cbz r3, .L926
+ cbz r3, .L930
ldrb r3, [r5, #7] @ zero_extendqisi2
- cbnz r3, .L927
-.L926:
+ cbnz r3, .L931
+.L930:
+ ldr r1, .L937+4
movw r2, #2759
- ldr r1, .L936+20
- ldr r0, .L936+4
+ ldr r0, .L937+8
bl sftl_printk
-.L927:
+.L931:
movs r0, #0
- add sp, sp, #20
+ add sp, sp, #12
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L937:
+.L938:
.align 2
-.L936:
+.L937:
.word .LANCHOR0
+ .word .LANCHOR1+271
.word .LC8
.word .LANCHOR0+124
.word .LANCHOR0+2532
.word -1024
- .word .LANCHOR1+271
.fnend
.size allocate_data_superblock, .-allocate_data_superblock
+ .section .rodata.str1.1
+.LC102:
+ .ascii "FtlGcFreeBadSuperBlk 0x%x\012\000"
+ .text
.align 1
.global FtlGcFreeBadSuperBlk
.syntax unified
@@ -6581,70 +6820,85 @@
.type FtlGcFreeBadSuperBlk, %function
FtlGcFreeBadSuperBlk:
.fnstart
- @ args = 0, pretend = 0, frame = 0
+ @ args = 0, pretend = 0, frame = 16
@ frame_needed = 0, uses_anonymous_args = 0
- push {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
- .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
- mov r8, r0
- ldr r4, .L950
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+ .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+ mov r9, r0
+ ldr r4, .L947
+ .pad #20
+ sub sp, sp, #20
ldrh r3, [r4, #3206]
- cbz r3, .L939
- movs r7, #0
- addw r10, r4, #3208
-.L940:
- ldrh r2, [r4, #232]
- uxth r3, r7
- cmp r2, r3
- bhi .L946
- bl FtlGcReFreshBadBlk
-.L939:
+ cmp r3, #0
+ bne .L946
+.L941:
movs r0, #0
- pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L946:
- uxtah r3, r4, r7
- mov r1, r8
- mov fp, #0
+ add sp, sp, #20
+ @ sp needed
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L945:
+ uxtah r3, r4, r8
+ mov r1, r9
ldrb r0, [r3, #260] @ zero_extendqisi2
bl V2P_block
- mov r9, r0
-.L941:
- ldrh r3, [r4, #3206]
- uxth r5, fp
- cmp r3, r5
- bhi .L945
- adds r7, r7, #1
- b .L940
-.L945:
- uxth r6, fp
- add r3, r4, r6, lsl #1
- ldrh r3, [r3, #3208]
- cmp r3, r9
- bne .L942
- mov r1, r9
- ldr r0, .L950+4
- bl sftl_printk
- mov r0, r9
- bl FtlBbmMapBadBlock
- bl FtlBbmTblFlush
- ldrh r1, [r4, #3206]
- add r3, r10, r6, lsl #1
-.L943:
- cmp r5, r1
- bcc .L944
- subs r1, r1, #1
- strh r1, [r4, #3206] @ movhi
+ mov r5, r0
+ movs r3, #0
.L942:
- add fp, fp, #1
+ ldrh r1, [r4, #3206]
+ uxth r2, r3
+ cmp r1, r2
+ bhi .L944
+ add r8, r8, #1
+.L940:
+ ldrh r2, [r4, #232]
+ uxth r3, r8
+ cmp r2, r3
+ bhi .L945
+ bl FtlGcReFreshBadBlk
b .L941
.L944:
- ldrh r0, [r3, #2]!
- adds r5, r5, #1
- uxth r5, r5
- strh r0, [r3, #-2] @ movhi
- b .L943
-.L951:
+ uxth r7, r3
+ lsls r1, r7, #1
+ str r1, [sp, #4]
+ add r1, r4, r7, lsl #1
+ ldrh r1, [r1, #3208]
+ cmp r1, r5
+ bne .L943
+ mov r1, r5
+ mov r0, fp
+ strd r2, r3, [sp, #8]
+ bl sftl_printk
+ mov r0, r5
+ bl FtlBbmMapBadBlock
+ bl FtlBbmTblFlush
+ ldrh r6, [r4, #3206]
+ ldr r2, [sp, #8]
+ adds r1, r7, #1
+ subs r0, r6, r2
+ add r1, r10, r1, lsl #1
+ uxth r0, r0
+ lsls r0, r0, #1
+ cmp r2, r6
+ ite ls
+ movls r2, r0
+ movhi r2, #0
+ ldr r0, [sp, #4]
+ subs r6, r6, #1
+ add r0, r0, r10
+ bl memmove
+ ldr r3, [sp, #12]
+ strh r6, [r4, #3206] @ movhi
+.L943:
+ adds r3, r3, #1
+ b .L942
+.L946:
+ ldr fp, .L947+4
+ addw r10, r4, #3208
+ mov r8, #0
+ b .L940
+.L948:
.align 2
-.L950:
+.L947:
.word .LANCHOR0
.word .LC102
.fnend
@@ -6663,11 +6917,11 @@
push {r3, r4, r5, lr}
.save {r3, r4, r5, lr}
mov r5, r0
- ldr r4, .L964
+ ldr r4, .L961
ldr r3, [r4, #72]
ldrh r3, [r3, r0, lsl #1]
cmp r3, #0
- bne .L953
+ bne .L950
ldrh r3, [r4, #222]
cmp r3, r0
itt eq
@@ -6680,20 +6934,20 @@
strheq r3, [r4, #220] @ movhi
ldrh r3, [r4, #172]
cmp r3, r0
- bne .L956
+ bne .L953
movw r3, #65535
strh r3, [r4, #172] @ movhi
-.L957:
+.L954:
+ ldr r0, .L961+4
mov r1, r5
- ldr r0, .L964+4
bl List_remove_node
ldrh r3, [r4, #2528]
- cbnz r3, .L959
+ cbnz r3, .L956
+ ldr r1, .L961+8
movw r2, #2835
- ldr r1, .L964+8
- ldr r0, .L964+12
+ ldr r0, .L961+12
bl sftl_printk
-.L959:
+.L956:
ldrh r3, [r4, #2528]
mov r0, r5
subs r3, r3, #1
@@ -6706,39 +6960,44 @@
add r3, r3, r2
ldrh r2, [r4, #240]
cmp r3, r2
- ble .L963
+ ble .L960
+ ldr r1, .L961+8
movw r2, #2838
- ldr r1, .L964+8
- ldr r0, .L964+12
+ ldr r0, .L961+12
bl sftl_printk
-.L963:
+.L960:
movs r0, #1
- pop {r3, r4, r5, pc}
-.L956:
+ b .L949
+.L953:
ldrh r3, [r4, #24]
cmp r3, r0
- beq .L962
+ beq .L959
ldrh r3, [r4, #76]
cmp r3, r0
- beq .L962
+ beq .L959
ldrh r3, [r4, #124]
cmp r3, r0
- bne .L957
-.L962:
+ bne .L954
+.L959:
movs r0, #0
+.L949:
pop {r3, r4, r5, pc}
-.L953:
+.L950:
bl List_update_data_list
- b .L962
-.L965:
+ b .L959
+.L962:
.align 2
-.L964:
+.L961:
.word .LANCHOR0
.word .LANCHOR0+2520
.word .LANCHOR1+296
.word .LC8
.fnend
.size update_vpc_list, .-update_vpc_list
+ .section .rodata.str1.1
+.LC103:
+ .ascii "decrement_vpc_count %x = %d\012\000"
+ .text
.align 1
.global decrement_vpc_count
.syntax unified
@@ -6750,70 +7009,70 @@
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- movw r3, #65535
push {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
- cmp r0, r3
+ movw r3, #65535
+ ldr r6, .L972
mov r4, r0
- ldr r5, .L975
- beq .L967
- ldr r3, [r5, #72]
+ cmp r0, r3
+ beq .L964
+ ldr r3, [r6, #72]
ldrh r2, [r3, r0, lsl #1]
- cbnz r2, .L968
+ cbnz r2, .L965
mov r1, r0
- ldr r0, .L975+4
+ ldr r0, .L972+4
bl sftl_printk
- ldr r3, [r5, #72]
- ldrh r6, [r3, r4, lsl #1]
- cbz r6, .L969
-.L973:
- movs r6, #0
-.L966:
- mov r0, r6
+ ldr r3, [r6, #72]
+ ldrh r5, [r3, r4, lsl #1]
+ cbz r5, .L966
+.L970:
+ movs r5, #0
+.L963:
+ mov r0, r5
pop {r4, r5, r6, pc}
-.L969:
+.L966:
movw r2, #2853
-.L974:
- ldr r1, .L975+8
- ldr r0, .L975+12
+.L971:
+ ldr r1, .L972+8
+ ldr r0, .L972+12
bl sftl_printk
- b .L966
-.L968:
+ b .L963
+.L965:
subs r2, r2, #1
strh r2, [r3, r0, lsl #1] @ movhi
-.L967:
- ldrh r0, [r5, #3438]
+.L964:
+ ldrh r0, [r6, #3438]
movw r3, #65535
cmp r0, r3
- bne .L971
- strh r4, [r5, #3438] @ movhi
- b .L973
-.L971:
- cmp r4, r0
- beq .L973
+ bne .L968
+ strh r4, [r6, #3438] @ movhi
+ b .L970
+.L968:
+ cmp r0, r4
+ beq .L970
bl update_vpc_list
- ldr r2, [r5, #2516]
- adds r6, r0, #0
- ldr r3, [r5, #2520]
+ ldr r2, [r6, #2516]
+ ldr r3, [r6, #2520]
+ subs r5, r0, #0
+ strh r4, [r6, #3438] @ movhi
+ sub r3, r3, r2
+ ldr r2, .L972+16
it ne
- movne r6, #1
- strh r4, [r5, #3438] @ movhi
- subs r3, r3, r2
- asrs r2, r3, #1
- ldr r3, .L975+16
+ movne r5, #1
+ asrs r3, r3, #1
muls r3, r2, r3
- ldr r2, [r5, #72]
+ ldr r2, [r6, #72]
uxth r1, r3
ldrh r2, [r2, r1, lsl #1]
cmp r2, #0
- bne .L966
- cmp r4, r1
- beq .L966
+ bne .L963
+ cmp r1, r4
+ beq .L963
movw r2, #2869
- b .L974
-.L976:
+ b .L971
+.L973:
.align 2
-.L975:
+.L972:
.word .LANCHOR0
.word .LC103
.word .LANCHOR1+312
@@ -6834,91 +7093,89 @@
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, lr}
.save {r4, r5, r6, r7, r8, r9, lr}
+ mvn r2, #2
+ ldr r5, .L986
.pad #28
sub sp, sp, #28
- ldr r7, .L991
- mov r8, #0
- movw r2, #61589
+ mov r9, #0
+ mov r3, sp
mov r4, r0
- ldr r5, .L991+4
- ldr r3, [r7]
- ldr r6, [r5, #3332]
+ bic r8, r3, #8160
+ bic r8, r8, #31
+ ldr r7, [r5, #3332]
+ str r7, [sp, #12]
+ ldr r3, [r8, #24]
str r3, [sp, #20]
mov r3, #-1
str r3, [sp, #16]
ldr r3, [r5, #3300]
- str r6, [sp, #12]
str r3, [sp, #8]
- mvn r3, #2
- str r3, [r6, #8]
mvn r3, #1
- str r3, [r6, #12]
+ strd r2, r3, [r7, #8]
+ movw r2, #61589
ldrh r3, [r0]
- strh r8, [r6] @ movhi
- strh r3, [r6, #2] @ movhi
+ strh r3, [r7, #2] @ movhi
+ strh r9, [r7] @ movhi
ldr r3, [r5, #3300]
str r2, [r3]
add r2, r2, #304087040
- ldr r3, [r5, #3300]
add r2, r2, #1269760
+ ldr r3, [r5, #3300]
addw r2, r2, #1507
str r2, [r3, #4]
- ldrh r3, [r0, #4]
- tst r3, #1
- ite eq
- moveq r9, #6
- movne r9, #7
-.L983:
+ ldrh r6, [r0, #4]
+ and r6, r6, #1
+ adds r6, r6, #6
+.L975:
ldrh r3, [r4, #4]
- cbnz r3, .L979
-.L980:
- ldr r2, [r5, #72]
+ cbz r6, .L977
+ cbnz r3, .L976
+.L977:
ldrh r1, [r4]
+ ldr r2, [r5, #72]
ldrh r0, [r4, #4]
ldrh r3, [r2, r1, lsl #1]
subs r3, r3, r0
strh r3, [r2, r1, lsl #1] @ movhi
- ldrh r3, [r5, #302]
ldr r2, [sp, #20]
+ ldrh r3, [r5, #302]
strh r3, [r4, #2] @ movhi
movs r3, #0
strb r3, [r4, #6]
strh r3, [r4, #4] @ movhi
- ldr r3, [r7]
+ ldr r3, [r8, #24]
cmp r2, r3
- beq .L984
+ beq .L981
bl __stack_chk_fail
-.L979:
+.L976:
mov r0, r4
bl get_new_active_ppa
str r0, [sp, #4]
adds r0, r0, #1
- beq .L980
+ beq .L977
ldr r3, [r5, #2592]
movs r1, #1
+ str r3, [r7, #4]
mov r0, sp
- str r3, [r6, #4]
- adds r3, r3, #1
adds r2, r3, #1
+ adds r3, r3, #2
it eq
- moveq r3, r8
- str r3, [r5, #2592]
+ moveq r2, r9
movs r3, #0
+ str r2, [r5, #2592]
mov r2, r3
bl FlashProgPages
ldrh r0, [r4]
+ subs r6, r6, #1
bl decrement_vpc_count
- subs r9, r9, #1
- bne .L983
- b .L980
-.L984:
+ b .L975
+.L981:
add sp, sp, #28
@ sp needed
pop {r4, r5, r6, r7, r8, r9, pc}
-.L992:
+.L987:
.align 2
-.L991:
- .word __stack_chk_guard
+.L986:
.word .LANCHOR0
.fnend
.size FtlSuperblockPowerLostFix, .-FtlSuperblockPowerLostFix
@@ -6936,147 +7193,147 @@
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, .L1012+4
+ ldr r7, .L1007
bl FtlBbtMemInit
- sub r5, r9, #380
- sub r10, r9, #18
- mov r4, r5
+ sub r9, r7, #16
+ sub r4, r7, #380
+ add fp, r7, #3072
bl FtlLoadFactoryBbt
-.L994:
- ldrh r3, [r5, #254]
- cmp r8, r3
- bcc .L1000
+.L989:
+ ldrh r3, [r4, #254]
+ cmp r3, r8
+ bhi .L995
movs r5, #0
-.L1001:
+.L996:
ldrh r3, [r4, #314]
uxth r0, r5
- adds r5, r5, #1
cmp r3, r0
- bhi .L1002
+ bhi .L997
ldrh r5, [r4, #364]
movw r6, #65535
subs r5, r5, #1
uxth r5, r5
-.L1003:
+.L998:
ldrh r3, [r4, #364]
subs r3, r3, #48
cmp r5, r3
- ble .L1007
+ ble .L1002
mov r0, r5
bl FtlBbmIsBadBlock
cmp r0, #1
- beq .L1004
+ beq .L999
mov r0, r5
bl FlashTestBlk
cmp r0, #0
- beq .L1005
+ beq .L1000
mov r0, r5
bl FtlBbmMapBadBlock
-.L1004:
+.L999:
subs r5, r5, #1
uxth r5, r5
- b .L1003
-.L1000:
- ldrh r3, [r10, #2]!
- movw r2, #65535
- ldr r0, [r5, #3300]
- ldr fp, [r5, #3332]
- cmp r3, r2
- str r0, [r5, #3460]
- str fp, [r5, #3464]
- beq .L995
- ldrh r7, [r5, #298]
- movs r2, #1
- mov r1, r2
- ldr r0, .L1012
- mla r7, r8, r7, r3
- lsls r3, r7, #10
- str r3, [r5, #3456]
- bl FlashReadPages
- ldrh r2, [r5, #298]
- ldr r1, [r5, #3460]
- ldr r0, [r9]
- adds r2, r2, #7
- asrs r2, r2, #3
- bl ftl_memcpy
-.L996:
- uxth r0, r7
- add r8, r8, #1
- add r9, r9, #4
- bl FtlBbmMapBadBlock
- b .L994
+ b .L998
.L995:
+ ldrh r5, [r9]
+ movw r3, #65535
+ ldr r0, [r4, #3300]
+ ldr r10, [r4, #3332]
+ cmp r5, r3
+ str r0, [r4, #3460]
+ str r10, [r4, #3464]
+ beq .L990
+ ldrh r3, [r4, #298]
+ movs r2, #1
+ mov r0, fp
+ mov r1, r2
+ mla r5, r8, r3, r5
+ lsls r3, r5, #10
+ str r3, [r4, #3456]
+ bl FlashReadPages
+ ldrh r2, [r4, #298]
+ ldr r1, [r4, #3460]
+ adds r2, r2, #7
+ ldr r0, [r7]
+ lsrs r2, r2, #3
+ bl ftl_memcpy
+.L991:
+ uxth r0, r5
+ add r8, r8, #1
+ adds r7, r7, #4
+ add r9, r9, #2
+ bl FtlBbmMapBadBlock
+ b .L989
+.L990:
mov r1, r8
bl FlashGetBadBlockList
- ldr r1, [r9]
- ldr r0, [r5, #3460]
+ ldr r1, [r7]
+ ldr r0, [r4, #3460]
bl FtlBbt2Bitmap
- ldrh r6, [r5, #298]
-.L998:
+ ldrh r6, [r4, #298]
+.L993:
subs r6, r6, #1
uxth r6, r6
-.L997:
+.L992:
ldrh r0, [r4, #298]
smlabb r0, r0, r8, r6
uxth r0, r0
bl FtlBbmIsBadBlock
cmp r0, #1
- beq .L998
+ beq .L993
movs r2, #16
movs r1, #0
- strh r6, [r10] @ movhi
ldr r0, [r4, #3332]
+ strh r6, [r9] @ movhi
bl ftl_memset
mov r2, #4096
movs r1, #0
ldr r0, [r4, #3300]
bl ftl_memset
movw r3, #61664
- strh r3, [fp] @ movhi
+ strh r3, [r10] @ movhi
movs r3, #0
- str r3, [fp, #4]
- ldrh r3, [r10]
- ldrh r7, [r4, #298]
+ str r3, [r10, #4]
+ ldrh r3, [r4, #298]
+ ldrh r5, [r9]
ldrh r2, [r4, #3388]
- strh r3, [fp, #2] @ movhi
- ldrh r3, [r10]
- ldr r1, [r9]
+ strh r5, [r10, #2] @ movhi
+ ldr r1, [r7]
+ mla r5, r8, r3, r5
lsls r2, r2, #2
ldr r0, [r4, #3460]
- mla r7, r8, r7, r3
- lsls r3, r7, #10
+ lsls r3, r5, #10
str r3, [r4, #3456]
bl ftl_memcpy
movs r2, #1
- ldr r0, .L1012
+ mov r0, fp
mov r1, r2
bl FlashEraseBlocks
movs r3, #1
- ldr r0, .L1012
+ mov r0, fp
mov r2, r3
mov r1, r3
bl FlashProgPages
ldr r3, [r4, #3452]
+ uxth r0, r5
adds r3, r3, #1
- bne .L996
- uxth r0, r7
+ bne .L991
bl FtlBbmMapBadBlock
- b .L997
-.L1002:
+ b .L992
+.L997:
+ adds r5, r5, #1
bl FtlBbmMapBadBlock
- b .L1001
-.L1005:
+ b .L996
+.L1000:
ldrh r3, [r4, #352]
cmp r3, r6
- bne .L1006
+ bne .L1001
strh r5, [r4, #352] @ movhi
- b .L1004
-.L1006:
+ b .L999
+.L1001:
strh r5, [r4, #356] @ movhi
-.L1007:
- ldrh r3, [r4, #352]
- movs r5, #0
+.L1002:
ldr r0, [r4, #3268]
+ movs r5, #0
+ ldrh r3, [r4, #352]
movs r1, #1
str r5, [r4, #360]
movs r2, #2
@@ -7094,19 +7351,18 @@
bl FtlBbmTblFlush
ldr r3, [r4, #360]
ldrh r2, [r4, #356]
- strh r5, [r4, #354] @ movhi
adds r3, r3, #1
str r3, [r4, #360]
ldrh r3, [r4, #352]
+ strh r5, [r4, #354] @ movhi
strh r2, [r4, #352] @ movhi
strh r3, [r4, #356] @ movhi
bl FtlBbmTblFlush
mov r0, r5
pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L1013:
+.L1008:
.align 2
-.L1012:
- .word .LANCHOR0+3452
+.L1007:
.word .LANCHOR0+380
.fnend
.size FtlMakeBbt, .-FtlMakeBbt
@@ -7136,138 +7392,34 @@
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L1018
+ mov r3, r0
add r1, r1, r0
+ ldr r0, .L1013
push {r4, lr}
.save {r4, lr}
-.L1016:
- cmp r0, r1
- bne .L1017
- mov r0, r3
+.L1011:
+ cmp r3, r1
+ bne .L1012
pop {r4, pc}
-.L1017:
- lsrs r2, r3, #2
- ldrb r4, [r0], #1 @ zero_extendqisi2
- add r2, r2, r3, lsl #5
+.L1012:
+ lsrs r2, r0, #2
+ ldrb r4, [r3], #1 @ zero_extendqisi2
+ add r2, r2, r0, lsl #5
add r2, r2, r4
- eors r3, r3, r2
- b .L1016
-.L1019:
+ eors r0, r0, r2
+ b .L1011
+.L1014:
.align 2
-.L1018:
+.L1013:
.word 1204201446
.fnend
.size js_hash, .-js_hash
- .align 1
- .global Ftl_write_map_blk_to_last_page
- .syntax unified
- .thumb
- .thumb_func
- .fpu softvfp
- .type Ftl_write_map_blk_to_last_page, %function
-Ftl_write_map_blk_to_last_page:
- .fnstart
- @ args = 0, pretend = 0, frame = 0
- @ frame_needed = 0, uses_anonymous_args = 0
- push {r4, r5, r6, r7, r8, lr}
- .save {r4, r5, r6, r7, r8, lr}
- movw r2, #65535
- ldrh r3, [r0]
- mov r4, r0
- ldr r5, [r0, #12]
- cmp r3, r2
- bne .L1021
- ldrh r3, [r0, #8]
- cbz r3, .L1022
- movw r2, #641
- ldr r1, .L1030
- ldr r0, .L1030+4
- bl sftl_printk
-.L1022:
- ldrh r3, [r4, #8]
- adds r3, r3, #1
- strh r3, [r4, #8] @ movhi
- bl FtlFreeSysBlkQueueOut
- movs r3, #0
- strh r0, [r5] @ movhi
- strh r3, [r4, #2] @ movhi
- strh r3, [r4] @ movhi
- ldr r3, [r4, #28]
- adds r3, r3, #1
- str r3, [r4, #28]
-.L1023:
- movs r0, #0
- pop {r4, r5, r6, r7, r8, pc}
-.L1021:
- ldrh r7, [r5, r3, lsl #1]
- movs r1, #255
- ldrh r3, [r0, #2]
- ldr r5, .L1030+8
- ldr r8, [r0, #24]
- orr r3, r3, r7, lsl #10
- ldr r6, [r5, #3332]
- str r3, [r5, #3456]
- ldr r3, [r5, #3300]
- str r6, [r5, #3464]
- str r3, [r5, #3460]
- ldr r3, [r0, #28]
- str r3, [r6, #4]
- movw r3, #64245
- strh r3, [r6, #8] @ movhi
- ldrh r3, [r0, #4]
- strh r7, [r6, #2] @ movhi
- strh r3, [r6] @ movhi
- ldrh r2, [r5, #304]
- ldr r0, [r5, #3300]
- lsls r2, r2, #3
- bl ftl_memset
- movs r2, #0
- mov r3, r2
-.L1024:
- ldrh r0, [r4, #6]
- uxth r1, r2
- cmp r0, r1
- bhi .L1026
- ldrh r1, [r5, #310]
- ldr r0, [r5, #3460]
- bl js_hash
- movs r2, #1
- str r0, [r6, #12]
- movs r3, #0
- mov r1, r2
- ldr r0, .L1030+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 .L1023
-.L1026:
- uxth r0, r2
- ldr r1, [r8, r0, lsl #2]
- cmp r7, r1, lsr #10
- bne .L1025
- ldr r1, [r5, #3300]
- adds r3, r3, #1
- uxth r3, r3
- str r0, [r1, r3, lsl #3]
- ldr r1, [r5, #3300]
- ldr r0, [r8, r0, lsl #2]
- add r1, r1, r3, lsl #3
- str r0, [r1, #4]
-.L1025:
- adds r2, r2, #1
- b .L1024
-.L1031:
- .align 2
-.L1030:
- .word .LANCHOR1+332
- .word .LC8
- .word .LANCHOR0
- .word .LANCHOR0+3452
- .fnend
- .size Ftl_write_map_blk_to_last_page, .-Ftl_write_map_blk_to_last_page
+ .section .rodata.str1.1
+.LC104:
+ .ascii "FtlMapWritePage error = %x \012\000"
+.LC105:
+ .ascii "FtlMapWritePage error = %x error count = %d\012\000"
+ .text
.align 1
.global FtlMapWritePage
.syntax unified
@@ -7282,150 +7434,155 @@
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
- lsl r10, r1, #2
- ldr r7, .L1057
mov r4, r0
+ ldr r5, .L1039
+ ldr r10, .L1039+4
mov r8, r1
+ lsl fp, r1, #2
+ str r2, [sp, #4]
movs r6, #0
- ldr r9, .L1057+20
- mov r5, r7
- str r2, [sp]
-.L1033:
- ldr r3, [r7, #2572]
+.L1016:
+ ldr r3, [r5, #2572]
adds r3, r3, #1
- str r3, [r7, #2572]
- ldrh r3, [r7, #304]
+ str r3, [r5, #2572]
+ ldrh r3, [r5, #304]
ldrh r2, [r4, #2]
subs r3, r3, #1
cmp r2, r3
- bge .L1034
+ bge .L1017
ldrh r2, [r4]
movw r3, #65535
cmp r2, r3
- bne .L1035
-.L1034:
+ bne .L1018
+.L1017:
mov r0, r4
bl Ftl_write_map_blk_to_last_page
-.L1035:
+.L1018:
ldrh r2, [r4]
ldr r3, [r4, #12]
ldrh r3, [r3, r2, lsl #1]
- cbnz r3, .L1036
+ cbnz r3, .L1019
+ ldr r0, .L1039+8
+ mov r1, r10
mov r2, #700
- mov r1, r9
- ldr r0, .L1057+4
bl sftl_printk
-.L1036:
+.L1019:
ldrh r2, [r4]
ldrh r3, [r4, #10]
cmp r2, r3
- bcc .L1037
+ bcc .L1020
+ ldr r0, .L1039+8
+ mov r1, r10
movw r2, #701
- mov r1, r9
- ldr r0, .L1057+4
bl sftl_printk
-.L1037:
+.L1020:
ldrh r2, [r4]
movs r1, #0
ldr r3, [r4, #12]
ldr r0, [r5, #3332]
- ldrh fp, [r3, r2, lsl #1]
+ ldrh r9, [r3, r2, lsl #1]
ldrh r2, [r4, #2]
- ldr r3, [sp]
- str r0, [r5, #3464]
- orr r2, r2, fp, lsl #10
+ ldr r3, [sp, #4]
str r3, [r5, #3460]
+ orr r2, r2, r9, lsl #10
str r2, [r5, #3456]
movs r2, #16
+ str r0, [r5, #3464]
bl ftl_memset
- ldr r2, [r5, #3464]
- ldr r1, [r4, #28]
- strh r8, [r2, #8] @ movhi
- str r1, [r2, #4]
- ldrh r1, [r4, #4]
- strh fp, [r2, #2] @ movhi
- str r2, [sp, #4]
- strh r1, [r2] @ movhi
+ ldr r7, [r5, #3464]
+ ldr r2, [r4, #28]
+ str r2, [r7, #4]
+ strh r8, [r7, #8] @ movhi
+ ldrh r2, [r4, #4]
+ strh r2, [r7] @ movhi
+ strh r9, [r7, #2] @ movhi
ldrh r1, [r5, #310]
ldr r0, [r5, #3460]
bl js_hash
- ldr r2, [sp, #4]
movs r3, #1
- mov r1, r3
- str r0, [r2, #12]
+ str r0, [r7, #12]
mov r2, r3
- ldr r0, .L1057+8
+ mov r1, r3
+ ldr r0, .L1039+12
bl FlashProgPages
ldrh r3, [r4, #2]
adds r3, r3, #1
strh r3, [r4, #2] @ movhi
ldr r3, [r5, #3452]
adds r3, r3, #1
- bne .L1038
+ bne .L1021
ldr r1, [r5, #3456]
adds r6, r6, #1
- ldr r0, .L1057+12
- uxth r6, r6
+ ldr r0, .L1039+16
bl sftl_printk
ldrh r3, [r4, #2]
+ uxth r6, r6
cmp r3, #2
ittt ls
ldrhls r3, [r5, #304]
addls r3, r3, #-1
strhls r3, [r4, #2] @ movhi
cmp r6, #3
- bls .L1040
- mov r2, r6
+ bls .L1023
ldr r1, [r5, #3456]
- ldr r0, .L1057+16
+ mov r2, r6
+ ldr r0, .L1039+20
bl sftl_printk
-.L1041:
- b .L1041
-.L1040:
+.L1024:
+ b .L1024
+.L1023:
ldr r3, [r4, #32]
cmp r3, #0
- beq .L1033
-.L1056:
- b .L1056
-.L1038:
+ beq .L1016
+.L1026:
+ b .L1026
+.L1021:
ldr r3, [r4, #24]
ldr r2, [r5, #3456]
- str r2, [r3, r10]
+ str r2, [r3, fp]
ldrh r3, [r4, #2]
cmp r3, #1
- beq .L1044
+ beq .L1027
ldr r3, [r5, #3452]
cmp r3, #256
- beq .L1044
+ beq .L1027
ldr r2, [r4, #36]
- cbz r2, .L1045
-.L1044:
+ cbz r2, .L1028
+.L1027:
movs r3, #0
str r3, [r4, #36]
- b .L1033
-.L1045:
+ b .L1016
+.L1028:
adds r3, r3, #1
- bne .L1046
+ bne .L1029
+ ldr r1, .L1039+4
movw r2, #745
- ldr r1, .L1057+20
- ldr r0, .L1057+4
+ ldr r0, .L1039+8
bl sftl_printk
-.L1046:
+.L1029:
movs r0, #0
add sp, sp, #12
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L1058:
+.L1040:
.align 2
-.L1057:
+.L1039:
.word .LANCHOR0
+ .word .LANCHOR1+332
.word .LC8
.word .LANCHOR0+3452
.word .LC104
.word .LC105
- .word .LANCHOR1+363
.fnend
.size FtlMapWritePage, .-FtlMapWritePage
+ .section .rodata.str1.1
+.LC106:
+ .ascii "region_id = %x phyAddr = %x\012\000"
+.LC107:
+ .ascii "map_ppn:\000"
+.LC108:
+ .ascii "load_l2p_region refresh = %x phyAddr = %x\012\000"
+ .text
.align 1
.global load_l2p_region
.syntax unified
@@ -7439,102 +7596,98 @@
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, lr}
.save {r4, r5, r6, r7, r8, lr}
- mov r6, r0
- ldr r4, .L1066
- mov r8, r1
+ mov r5, r0
+ ldr r4, .L1050
+ mov r6, r1
ldrh r3, [r4, #336]
cmp r3, r0
- bcs .L1060
+ bcs .L1042
+ ldr r1, .L1050+4
movw r2, #485
- ldr r1, .L1066+4
- ldr r0, .L1066+8
+ ldr r0, .L1050+8
bl sftl_printk
-.L1060:
+.L1042:
ldr r3, [r4, #3376]
- movs r5, #12
- ldr r7, [r3, r6, lsl #2]
- cbnz r7, .L1061
- mul r5, r5, r8
+ movs r1, #12
+ muls r6, r1, r6
+ ldr r7, [r3, r5, lsl #2]
ldr r3, [r4, #2540]
- ldrh r2, [r4, #310]
- movs r1, #255
- add r3, r3, r5
+ add r3, r3, r6
ldr r0, [r3, #8]
+ cbnz r7, .L1043
+ movs r1, #255
+ ldrh r2, [r4, #310]
bl ftl_memset
ldr r3, [r4, #2540]
- strh r6, [r3, r5] @ movhi
- ldr r3, [r4, #2540]
- add r5, r5, r3
- str r7, [r5, #4]
-.L1062:
+ strh r5, [r3, r6] @ movhi
+ ldr r1, [r4, #2540]
+ add r6, r6, r1
+ str r7, [r6, #4]
+.L1044:
movs r0, #0
pop {r4, r5, r6, r7, r8, pc}
-.L1061:
- mul r5, r5, r8
- ldr r3, [r4, #2540]
- movs r2, #1
- ldr r0, .L1066+12
- mov r1, r2
- str r7, [r4, #3456]
- add r3, r3, r5
- ldr r3, [r3, #8]
- str r3, [r4, #3460]
+.L1043:
ldr r3, [r4, #3332]
+ movs r2, #1
+ str r0, [r4, #3460]
+ mov r1, r2
+ ldr r0, .L1050+12
str r3, [r4, #3464]
+ str r7, [r4, #3456]
bl FlashReadPages
ldr r8, [r4, #3464]
ldrh r3, [r8, #8]
- cmp r3, r6
- beq .L1063
+ cmp r3, r5
+ beq .L1045
+ ldr r0, .L1050+16
mov r2, r7
- mov r1, r6
- ldr r0, .L1066+16
+ mov r1, r5
bl sftl_printk
movs r3, #4
ldr r1, [r4, #3464]
mov r2, r3
- ldr r0, .L1066+20
+ ldr r0, .L1050+20
bl rknand_print_hex
ldrh r3, [r4, #336]
- movs r2, #4
ldr r1, [r4, #3376]
- ldr r0, .L1066+24
+ movs r2, #4
+ ldr r0, .L1050+24
bl rknand_print_hex
-.L1064:
+.L1046:
ldrh r3, [r8, #8]
- cmp r3, r6
- beq .L1065
+ cmp r3, r5
+ beq .L1048
+ ldr r1, .L1050+4
mov r2, #508
- ldr r1, .L1066+4
- ldr r0, .L1066+8
+ ldr r0, .L1050+8
bl sftl_printk
-.L1065:
+.L1048:
ldr r3, [r4, #2540]
movs r1, #0
- adds r2, r3, r5
+ adds r2, r3, r6
str r1, [r2, #4]
- strh r6, [r3, r5] @ movhi
- b .L1062
-.L1063:
+ strh r5, [r3, r6] @ movhi
+ b .L1044
+.L1045:
ldr r3, [r4, #3452]
cmp r3, #256
- bne .L1064
+ bne .L1048
mov r2, r7
- mov r1, r6
- ldr r0, .L1066+28
+ mov r1, r5
+ ldr r0, .L1050+28
bl sftl_printk
ldr r3, [r4, #2540]
- mov r1, r6
- ldr r0, .L1066+32
- add r3, r3, r5
+ mov r1, r5
+ ldr r0, .L1050+32
+ add r3, r3, r6
ldr r2, [r3, #8]
bl FtlMapWritePage
- b .L1064
-.L1067:
+ b .L1046
+.L1051:
.align 2
-.L1066:
+.L1050:
.word .LANCHOR0
- .word .LANCHOR1+379
+ .word .LANCHOR1+348
.word .LC8
.word .LANCHOR0+3452
.word .LC106
@@ -7559,115 +7712,222 @@
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.pad #12
mov r4, r0
- ldr r6, [r0, #12]
+ ldr r5, .L1068
+ ldr r7, [r0, #12]
ldr r10, [r0, #24]
bl ftl_free_no_use_map_blk
ldrh r3, [r4, #10]
ldrh r2, [r4, #8]
- ldr r5, .L1084
subs r3, r3, #5
cmp r2, r3
- blt .L1069
+ blt .L1053
uxth r0, r0
- ldrh r9, [r6, r0, lsl #1]
+ ldrh r9, [r7, r0, lsl #1]
cmp r9, #0
- beq .L1069
- ldr r3, [r4, #32]
- cbnz r3, .L1069
- movs r2, #1
- str r2, [r4, #32]
- strh r3, [r6, r0, lsl #1] @ movhi
+ beq .L1053
+ ldr r6, [r4, #32]
+ cbnz r6, .L1053
+ movs r3, #1
+ str r3, [r4, #32]
+ strh r6, [r7, r0, lsl #1] @ movhi
ldrh r3, [r4, #8]
ldrh r2, [r4, #2]
subs r3, r3, #1
strh r3, [r4, #8] @ movhi
ldrh r3, [r5, #304]
cmp r2, r3
- bcc .L1070
+ bcc .L1055
mov r0, r4
bl ftl_map_blk_alloc_new_blk
-.L1070:
- movs r6, #0
-.L1071:
+.L1055:
ldrh r2, [r4, #6]
uxth fp, r6
cmp r2, fp
- bhi .L1078
- movs r1, #1
+ bhi .L1062
mov r0, r9
+ movs r1, #1
bl FtlFreeSysBlkQueueIn
movs r3, #0
str r3, [r4, #32]
-.L1069:
+.L1053:
ldrh r2, [r4, #2]
ldrh r3, [r5, #304]
cmp r2, r3
- bcc .L1079
+ bcc .L1063
mov r0, r4
bl ftl_map_blk_alloc_new_blk
-.L1079:
+.L1063:
movs r0, #0
add sp, sp, #12
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L1078:
+.L1062:
uxth r7, r6
- ldr r2, [r10, r7, lsl #2]
add r3, r10, r7, lsl #2
str r3, [sp, #4]
+ ldr r2, [r10, r7, lsl #2]
cmp r9, r2, lsr #10
- bne .L1072
+ bne .L1056
ldr r2, [r5, #3304]
ldr r8, [r5, #3332]
- ldr r0, .L1084+4
str r2, [r5, #3460]
str r8, [r5, #3464]
ldr r2, [r10, r7, lsl #2]
str r2, [r5, #3456]
movs r2, #1
+ ldr r0, .L1068+4
mov r1, r2
bl FlashReadPages
ldrh r2, [r8, #8]
cmp r2, fp
- beq .L1073
+ beq .L1057
+ ldr r1, .L1068+8
movw r2, #611
- ldr r1, .L1084+8
- ldr r0, .L1084+12
+ ldr r0, .L1068+12
bl sftl_printk
-.L1073:
+.L1057:
ldr r2, [r5, #3452]
adds r2, r2, #1
- bne .L1074
-.L1076:
+ bne .L1058
+.L1060:
ldr r2, [sp, #4]
movs r3, #0
str r3, [r2]
-.L1075:
- b .L1075
-.L1074:
+.L1059:
+ b .L1059
+.L1058:
ldrh r2, [r8, #8]
cmp r2, fp
- bne .L1076
+ bne .L1060
ldrh r2, [r8]
ldrh r3, [r4, #4]
cmp r2, r3
- bne .L1076
+ bne .L1060
ldr r2, [r5, #3460]
mov r1, r7
mov r0, r4
bl FtlMapWritePage
-.L1072:
+.L1056:
adds r6, r6, #1
- b .L1071
-.L1085:
+ b .L1055
+.L1069:
.align 2
-.L1084:
+.L1068:
.word .LANCHOR0
.word .LANCHOR0+3452
- .word .LANCHOR1+395
+ .word .LANCHOR1+364
.word .LC8
.fnend
.size ftl_map_blk_gc, .-ftl_map_blk_gc
+ .align 1
+ .global Ftl_write_map_blk_to_last_page
+ .syntax unified
+ .thumb
+ .thumb_func
+ .fpu softvfp
+ .type Ftl_write_map_blk_to_last_page, %function
+Ftl_write_map_blk_to_last_page:
+ .fnstart
+ @ args = 0, pretend = 0, frame = 0
+ @ frame_needed = 0, uses_anonymous_args = 0
+ push {r4, r5, r6, r7, r8, lr}
+ .save {r4, r5, r6, r7, r8, lr}
+ movw r2, #65535
+ mov r4, r0
+ ldrh r3, [r0]
+ ldr r5, [r0, #12]
+ cmp r3, r2
+ bne .L1071
+ ldrh r3, [r0, #8]
+ cbz r3, .L1072
+ ldr r1, .L1080
+ movw r2, #641
+ ldr r0, .L1080+4
+ bl sftl_printk
+.L1072:
+ ldrh r3, [r4, #8]
+ adds r3, r3, #1
+ strh r3, [r4, #8] @ movhi
+ bl FtlFreeSysBlkQueueOut
+ strh r0, [r5] @ movhi
+ movs r3, #0
+ str r3, [r4]
+ ldr r3, [r4, #28]
+ adds r3, r3, #1
+ str r3, [r4, #28]
+.L1073:
+ movs r0, #0
+ pop {r4, r5, r6, r7, r8, pc}
+.L1071:
+ ldrh r7, [r5, r3, lsl #1]
+ movs r1, #255
+ ldr r5, .L1080+8
+ ldrh r3, [r0, #2]
+ ldr r8, [r0, #24]
+ ldr r6, [r5, #3332]
+ orr r3, r3, r7, lsl #10
+ str r3, [r5, #3456]
+ ldr r3, [r5, #3300]
+ str r3, [r5, #3460]
+ ldr r3, [r0, #28]
+ str r6, [r5, #3464]
+ str r3, [r6, #4]
+ movw r3, #64245
+ strh r3, [r6, #8] @ movhi
+ ldrh r3, [r0, #4]
+ strh r3, [r6] @ movhi
+ strh r7, [r6, #2] @ movhi
+ ldrh r2, [r5, #304]
+ ldr r0, [r5, #3300]
+ lsls r2, r2, #3
+ bl ftl_memset
+ movs r2, #0
+ mov r3, r2
+.L1074:
+ ldrh r0, [r4, #6]
+ uxth r1, r2
+ cmp r0, r1
+ bhi .L1076
+ ldrh r1, [r5, #310]
+ ldr r0, [r5, #3460]
+ bl js_hash
+ movs r2, #1
+ str r0, [r6, #12]
+ mov r1, r2
+ movs r3, #0
+ ldr r0, .L1080+12
+ bl FlashProgPages
+ ldrh r3, [r4, #2]
+ mov r0, r4
+ adds r3, r3, #1
+ strh r3, [r4, #2] @ movhi
+ bl ftl_map_blk_gc
+ b .L1073
+.L1076:
+ uxth r0, r2
+ ldr r1, [r8, r0, lsl #2]
+ cmp r7, r1, lsr #10
+ bne .L1075
+ adds r3, r3, #1
+ ldr r1, [r5, #3300]
+ uxth r3, r3
+ str r0, [r1, r3, lsl #3]
+ ldr r1, [r5, #3300]
+ ldr r0, [r8, r0, lsl #2]
+ add r1, r1, r3, lsl #3
+ str r0, [r1, #4]
+.L1075:
+ adds r2, r2, #1
+ b .L1074
+.L1081:
+ .align 2
+.L1080:
+ .word .LANCHOR1+379
+ .word .LC8
+ .word .LANCHOR0
+ .word .LANCHOR0+3452
+ .fnend
+ .size Ftl_write_map_blk_to_last_page, .-Ftl_write_map_blk_to_last_page
.align 1
.global flush_l2p_region
.syntax unified
@@ -7682,24 +7942,24 @@
push {r3, r4, r5, lr}
.save {r3, r4, r5, lr}
movs r4, #12
- ldr r5, .L1087
+ ldr r5, .L1083
muls r4, r0, r4
- ldr r3, [r5, #2540]
add r0, r5, #3392
+ ldr r3, [r5, #2540]
adds r2, r3, r4
ldrh r1, [r3, r4]
ldr r2, [r2, #8]
bl FtlMapWritePage
- ldr r3, [r5, #2540]
+ ldr r0, [r5, #2540]
+ add r4, r4, r0
movs r0, #0
- add r4, r4, r3
ldr r3, [r4, #4]
bic r3, r3, #-2147483648
str r3, [r4, #4]
pop {r3, r4, r5, pc}
-.L1088:
+.L1084:
.align 2
-.L1087:
+.L1083:
.word .LANCHOR0
.fnend
.size flush_l2p_region, .-flush_l2p_region
@@ -7714,107 +7974,103 @@
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- push {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
- .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
- mov r9, r0
- ldr r4, .L1102
- mov r5, r1
+ push {r4, r5, r6, r7, r8, r9, r10, lr}
+ .save {r4, r5, r6, r7, r8, r9, r10, lr}
+ mov r5, r0
+ ldr r9, .L1097
+ mov r6, r1
mov r7, r2
- ldr r3, [r4, #2552]
- ldrh r10, [r4, #308]
- cmp r0, r3
- bcc .L1090
+ ldrh r4, [r9, #308]
+ adds r3, r4, #7
+ movs r4, #1
+ lsls r4, r4, r3
+ subs r4, r4, #1
+ lsr r8, r0, r3
+ ands r4, r4, r0
+ ldr r3, [r9, #2552]
+ uxth r8, r8
+ uxth r4, r4
+ cmp r3, r0
+ bhi .L1086
+ ldr r1, .L1097+4
mov r2, #820
- ldr r1, .L1102+4
- ldr r0, .L1102+8
+ ldr r0, .L1097+8
bl sftl_printk
-.L1090:
- ldr r3, [r4, #2552]
- cmp r9, r3
- bcs .L1091
- add r10, r10, #7
- ldrh r2, [r4, #338]
- lsr r6, r9, r10
- ldr r1, [r4, #2540]
- movs r3, #0
- uxth r6, r6
- mov fp, #12
-.L1092:
- uxth r8, r3
- cmp r8, r2
- bcc .L1097
- bl select_l2p_ram_region
- mul fp, fp, r0
- ldr r3, [r4, #2540]
- mov r8, r0
- ldrh r1, [r3, fp]
- add r2, r3, fp
- movw r3, #65535
- cmp r1, r3
- beq .L1098
- ldr r3, [r2, #4]
- cmp r3, #0
- bge .L1098
- bl flush_l2p_region
-.L1098:
- mov r1, r8
- mov r0, r6
- bl load_l2p_region
- b .L1094
-.L1091:
+ ldr r3, [r9, #2552]
+ cmp r3, r5
+ bhi .L1086
mov r0, #-1
- cbnz r7, .L1089
- str r0, [r5]
- pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L1097:
+ cbnz r7, .L1085
+ str r0, [r6]
+.L1085:
+ pop {r4, r5, r6, r7, r8, r9, r10, pc}
+.L1092:
adds r3, r3, #1
- mla r0, fp, r3, r1
- ldrh r0, [r0, #-12]
- cmp r0, r6
- bne .L1092
-.L1094:
- movs r0, #1
- movs r3, #12
- lsl r0, r0, r10
- subs r0, r0, #1
- and r0, r0, r9
- uxth r0, r0
- cbnz r7, .L1095
- ldr r2, [r4, #2540]
- mla r3, r3, r8, r2
- ldr r3, [r3, #8]
- ldr r3, [r3, r0, lsl #2]
- str r3, [r5]
-.L1096:
- ldr r2, [r4, #2540]
- movs r3, #12
- mla r8, r3, r8, r2
- ldr r3, [r8, #4]
- adds r2, r3, #1
- beq .L1100
- adds r3, r3, #1
- str r3, [r8, #4]
-.L1100:
- movs r0, #0
+ mul r0, r10, r3
+ ldrh r0, [r2, r0]
+ cmp r0, r8
+ bne .L1088
.L1089:
- pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
+ movs r1, #12
+ ldr r3, [r9, #2540]
+ muls r5, r1, r5
+ add r3, r3, r5
+ ldr r3, [r3, #8]
+ cbnz r7, .L1090
+ ldr r3, [r3, r4, lsl #2]
+ str r3, [r6]
+.L1091:
+ ldr r1, [r9, #2540]
+ add r5, r5, r1
+ ldr r3, [r5, #4]
+ adds r2, r3, #1
+ beq .L1095
+ adds r3, r3, #1
+ str r3, [r5, #4]
.L1095:
- mul r3, r3, r8
- ldr r2, [r4, #2540]
- ldr r1, [r5]
- add r2, r2, r3
- ldr r2, [r2, #8]
- str r1, [r2, r0, lsl #2]
- ldr r2, [r4, #2540]
- strh r6, [r4, #2544] @ movhi
- add r3, r3, r2
+ movs r0, #0
+ b .L1085
+.L1090:
+ ldr r2, [r6]
+ str r2, [r3, r4, lsl #2]
+ strh r8, [r9, #2544] @ movhi
+ ldr r3, [r9, #2540]
+ add r3, r3, r5
ldr r2, [r3, #4]
orr r2, r2, #-2147483648
str r2, [r3, #4]
- b .L1096
-.L1103:
+ b .L1091
+.L1086:
+ ldr r2, [r9, #2540]
+ movs r3, #0
+ ldrh r1, [r9, #338]
+ mov r10, #12
+ subs r2, r2, #12
+.L1088:
+ uxth r5, r3
+ cmp r1, r5
+ bhi .L1092
+ bl select_l2p_ram_region
+ mul r10, r10, r0
+ ldr r3, [r9, #2540]
+ mov r5, r0
+ add r2, r3, r10
+ ldrh r1, [r3, r10]
+ movw r3, #65535
+ cmp r1, r3
+ beq .L1093
+ ldr r3, [r2, #4]
+ cmp r3, #0
+ bge .L1093
+ bl flush_l2p_region
+.L1093:
+ mov r1, r5
+ mov r0, r8
+ bl load_l2p_region
+ b .L1089
+.L1098:
.align 2
-.L1102:
+.L1097:
.word .LANCHOR0
.word .LANCHOR1+410
.word .LC8
@@ -7831,114 +8087,112 @@
.fnstart
@ args = 0, pretend = 0, frame = 32
@ frame_needed = 0, uses_anonymous_args = 0
- push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
- .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
- .pad #36
- sub sp, sp, #36
- ldr r4, .L1123
- ldr r7, .L1123+4
+ push {r4, r5, r6, r7, r8, r9, r10, lr}
+ .save {r4, r5, r6, r7, r8, r9, r10, lr}
+ ldr r4, .L1118
+ .pad #32
+ sub sp, sp, #32
+ mov r3, sp
+ bic r8, r3, #8160
+ bic r8, r8, #31
ldrh r2, [r4, #28]
- ldr r3, [r7]
+ ldr r3, [r8, #24]
str r3, [sp, #28]
cmp r2, #0
- beq .L1105
+ beq .L1100
ldrb r3, [r4, #32] @ zero_extendqisi2
cmp r3, #0
- bne .L1105
- ldrb r1, [r4, #31] @ zero_extendqisi2
- ldrh r3, [r4, #302]
+ bne .L1100
+ ldrb r3, [r4, #31] @ zero_extendqisi2
+ ldrh r1, [r4, #302]
muls r3, r1, r3
cmp r2, r3
- beq .L1105
- ldrb r8, [r4, #34] @ zero_extendqisi2
- cmp r8, #0
- bne .L1104
- ldr r6, [r4, #2552]
- mov r2, r8
+ beq .L1100
+ ldrb r6, [r4, #34] @ zero_extendqisi2
+ cbnz r6, .L1099
+ ldr r7, [r4, #2552]
+ mov r2, r6
add r1, sp, #4
ldrh r9, [r4, #232]
- subs r6, r6, #1
- mov r0, r6
+ subs r7, r7, #1
+ mov r0, r7
bl log2phys
- ldr r3, [sp, #4]
ldr r5, [r4, #3332]
+ ldr r3, [sp, #4]
ldr r0, [r4, #3300]
str r3, [sp, #12]
adds r3, r3, #1
- str r6, [sp, #24]
+ str r7, [sp, #24]
str r0, [sp, #16]
str r5, [sp, #20]
- str r8, [r5, #4]
- beq .L1107
- mov r2, r8
- movs r1, #1
+ str r6, [r5, #4]
+ beq .L1102
+ mov r2, r6
add r0, sp, #8
+ movs r1, #1
bl FlashReadPages
-.L1108:
- ldr r10, .L1123+8
- mov r8, #0
- lsl r9, r9, #2
- mov fp, r8
+.L1103:
+ lsl r6, r9, #2
+ ldr r9, .L1118+4
movw r3, #61589
+ mov r10, #0
strh r3, [r5] @ movhi
-.L1109:
- cmp r9, r8
- bne .L1113
-.L1110:
- movs r3, #1
-.L1122:
- strb r3, [r4, #34]
.L1104:
+ cbnz r6, .L1108
+.L1105:
+ movs r3, #1
+.L1117:
+ strb r3, [r4, #34]
+.L1099:
ldr r2, [sp, #28]
- ldr r3, [r7]
+ ldr r3, [r8, #24]
cmp r2, r3
- beq .L1115
+ beq .L1110
bl __stack_chk_fail
-.L1107:
+.L1102:
ldrh r2, [r4, #310]
movs r1, #255
bl ftl_memset
- b .L1108
-.L1113:
+ b .L1103
+.L1108:
ldrh r3, [r4, #28]
cmp r3, #0
- beq .L1110
+ beq .L1105
ldr r3, [sp, #12]
- mov r0, r10
- str r6, [r5, #8]
- add r8, r8, #1
+ mov r0, r9
str r3, [r5, #12]
+ subs r6, r6, #1
ldrh r3, [r4, #24]
strh r3, [r5, #2] @ movhi
+ str r7, [r5, #8]
bl get_new_active_ppa
ldr r3, [r4, #2592]
- movs r1, #1
str r0, [sp, #12]
- add r0, sp, #8
- str r3, [r5, #4]
- adds r3, r3, #1
+ movs r1, #1
adds r2, r3, #1
+ str r3, [r5, #4]
+ adds r3, r3, #2
+ add r0, sp, #8
it eq
- moveq r3, fp
- str r3, [r4, #2592]
+ moveq r2, r10
movs r3, #0
+ str r2, [r4, #2592]
mov r2, r3
bl FlashProgPages
ldrh r0, [r4, #24]
bl decrement_vpc_count
- b .L1109
-.L1105:
+ b .L1104
+.L1100:
movs r3, #0
- b .L1122
-.L1115:
- add sp, sp, #36
+ b .L1117
+.L1110:
+ add sp, sp, #32
@ sp needed
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L1124:
+ pop {r4, r5, r6, r7, r8, r9, r10, pc}
+.L1119:
.align 2
-.L1123:
+.L1118:
.word .LANCHOR0
- .word __stack_chk_guard
.word .LANCHOR0+24
.fnend
.size FtlWriteDump_data, .-FtlWriteDump_data
@@ -7956,70 +8210,74 @@
push {r0, r1, r2, r4, r5, r6, r7, lr}
.save {r4, r5, r6, r7, lr}
.pad #12
- mov r6, r0
- ldr r5, .L1135
+ mov r5, r0
+ ldr r6, .L1130
ubfx r0, r1, #10, #16
str r1, [sp, #4]
bl P2V_block_in_plane
- ldr r2, [r5, #72]
- mov r7, r0
- ldrh r3, [r2, r0, lsl #1]
- cbnz r3, .L1126
- ldr r4, [r5, #2532]
- cbz r4, .L1127
- ldr r1, [r5, #2516]
+ mov r4, r0
+ ldr r3, [r6, #72]
+ ldrh r2, [r3, r0, lsl #1]
+ cmp r2, #0
+ bne .L1121
+ ldr r3, [r6, #2532]
+ cbz r3, .L1122
+ ldr r1, [r6, #2516]
mov ip, #6
- ldr r2, .L1135+4
+ ldr r0, .L1130+4
movw lr, #65535
- ldrh r0, [r5, #224]
- subs r4, r4, r1
- asrs r4, r4, #1
- muls r4, r2, r4
- uxth r4, r4
-.L1128:
- uxth r2, r3
- cmp r0, r2
- bls .L1127
- cmp r4, r7
- bne .L1129
+ subs r3, r3, r1
+ ldrh r7, [r6, #224]
+ asrs r3, r3, #1
+ muls r3, r0, r3
+ uxth r3, r3
+.L1123:
+ uxth r0, r2
+ cmp r7, r0
+ bls .L1122
+ cmp r3, r4
+ bne .L1124
+ ldr r0, .L1130+8
mov r1, r4
- ldr r0, .L1135+8
bl List_remove_node
- ldrh r3, [r5, #224]
- cbnz r3, .L1130
+ ldrh r3, [r6, #224]
+ cbnz r3, .L1125
+ ldr r1, .L1130+12
movw r2, #1742
- ldr r1, .L1135+12
- ldr r0, .L1135+16
+ ldr r0, .L1130+16
bl sftl_printk
-.L1130:
- ldrh r3, [r5, #224]
+.L1125:
+ ldrh r3, [r6, #224]
mov r0, r4
subs r3, r3, #1
- strh r3, [r5, #224] @ movhi
+ strh r3, [r6, #224] @ movhi
bl INSERT_DATA_LIST
- ldr r2, [r5, #72]
- ldrh r3, [r2, r7, lsl #1]
-.L1126:
+ ldr r2, [r6, #72]
+ ldrh r3, [r2, r4, lsl #1]
adds r3, r3, #1
- strh r3, [r2, r7, lsl #1] @ movhi
- b .L1127
-.L1129:
- mul r4, ip, r4
- adds r3, r3, #1
- ldrh r4, [r1, r4]
- cmp r4, lr
- bne .L1128
-.L1127:
- movs r2, #1
+ strh r3, [r2, r4, lsl #1] @ movhi
+.L1122:
add r1, sp, #4
- mov r0, r6
+ mov r0, r5
+ movs r2, #1
bl log2phys
add sp, sp, #12
@ sp needed
pop {r4, r5, r6, r7, pc}
-.L1136:
+.L1124:
+ mul r3, ip, r3
+ adds r2, r2, #1
+ ldrh r3, [r1, r3]
+ cmp r3, lr
+ bne .L1123
+ b .L1122
+.L1121:
+ adds r2, r2, #1
+ strh r2, [r3, r0, lsl #1] @ movhi
+ b .L1122
+.L1131:
.align 2
-.L1135:
+.L1130:
.word .LANCHOR0
.word -1431655765
.word .LANCHOR0+2532
@@ -8027,6 +8285,12 @@
.word .LC8
.fnend
.size FtlReUsePrevPpa, .-FtlReUsePrevPpa
+ .section .rodata.str1.1
+.LC109:
+ .ascii "data prev_ppa = %x error...................\012\000"
+.LC110:
+ .ascii "spuer block %x vpn is 0\012 \000"
+ .text
.align 1
.global FtlRecoverySuperblock
.syntax unified
@@ -8038,636 +8302,631 @@
.fnstart
@ args = 0, pretend = 0, frame = 48
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L1274
- movw r2, #65535
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+ movw r1, #65535
+ mov r10, r0
.pad #52
sub sp, sp, #52
- mov r10, r0
- ldr r3, [r3]
+ mov r3, sp
+ bic r3, r3, #8160
+ bic r3, r3, #31
+ ldr r3, [r3, #24]
str r3, [sp, #44]
ldrh r3, [r0]
- cmp r3, r2
- beq .L1139
+ cmp r3, r1
+ beq .L1134
+ ldr r5, .L1264
ldrh r3, [r0, #2]
- ldr r4, .L1274+4
str r3, [sp]
ldrb r3, [r0, #6] @ zero_extendqisi2
- ldr r1, [sp]
- str r3, [sp, #20]
- ldrh r3, [r4, #302]
- cmp r3, r1
- mov r3, #0
- bne .L1140
- strh r3, [r0, #4] @ movhi
-.L1272:
- strb r3, [r10, #6]
-.L1139:
- ldr r3, .L1274
- movs r0, #0
- ldr r2, [sp, #44]
- ldr r3, [r3]
+ ldrh r2, [r5, #302]
+ str r3, [sp, #24]
+ ldr r3, [sp]
cmp r2, r3
- beq .L1211
+ mov r3, #0
+ bne .L1135
+ strh r3, [r0, #4] @ movhi
+ strh r2, [r0, #2] @ movhi
+.L1262:
+ strb r3, [r10, #6]
+.L1134:
+ mov r3, sp
+ ldr r2, [sp, #44]
+ bic r3, r3, #8160
+ bic r3, r3, #31
+ ldr r3, [r3, #24]
+ cmp r2, r3
+ beq .L1203
bl __stack_chk_fail
-.L1140:
+.L1135:
ldrh r0, [r0, #16]
-.L1141:
- cmp r0, r2
+.L1136:
uxth r6, r3
+ cmp r0, r1
add r3, r3, #1
- beq .L1142
+ beq .L1137
movs r1, #1
bl FtlGetLastWrittenPage
- adds r7, r0, #1
- mov r5, r0
- beq .L1143
- ldr r3, [r4, #3176]
+ mov r4, r0
+ adds r0, r4, #1
+ beq .L1138
+ ldr r3, [r5, #3176]
movs r2, #0
- ldrh fp, [r4, #232]
+ ldrh fp, [r5, #232]
movw r9, #65535
- ldr r0, [r4, #3288]
- mov lr, #20
- str r3, [sp, #4]
- ldrh r3, [r4, #310]
- ldr r8, [r4, #3180]
- ldrh r7, [r4, #312]
- mov r4, r2
- str r3, [sp, #8]
+ mov lr, r3
add r3, r10, #16
+ ldr r0, [r5, #3288]
mov ip, r3
- str r3, [sp, #16]
-.L1144:
+ ldrh r6, [r5, #310]
+ ldr r8, [r5, #3180]
+ ldrh r7, [r5, #312]
+ mov r5, r2
+ str r3, [sp, #20]
+.L1139:
uxth r3, r2
cmp fp, r3
- bhi .L1150
- ldr r6, .L1274+4
+ bhi .L1145
+ ldr r6, .L1264
movs r2, #0
- mov r1, r4
- movw r9, #65535
+ mov r1, r5
+ movs r7, #0
bl FlashReadPages
- ldr r3, [r6, #2592]
- uxth r2, r5
- ldr r8, [r6, #3288]
+ movw r9, #65535
+ uxth r2, r4
str r2, [sp, #8]
+ ldr r3, [r6, #2592]
add fp, r3, #-1
- movs r3, #0
- mov r7, r8
-.L1151:
- uxth r2, r3
- cmp r4, r2
- bhi .L1156
- bne .L1154
- adds r3, r5, #1
- uxth r3, r3
- str r3, [sp, #8]
-.L1267:
- ldr r0, [r8, #4]
+ ldr r3, [r6, #3288]
+ mov r8, r3
+.L1146:
+ uxth r2, r7
+ cmp r5, r2
+ bhi .L1151
+ bne .L1149
+ adds r2, r4, #1
+ uxth r2, r2
+ str r2, [sp, #8]
+.L1256:
+ ldr r0, [r3, #4]
ubfx r0, r0, #10, #16
bl P2V_plane
ldrh r3, [r6, #302]
ldr r2, [sp, #8]
str r0, [sp, #4]
cmp r3, r2
- bne .L1158
- ldrh r3, [sp, #8]
- strh r3, [r10, #2] @ movhi
+ bne .L1153
movs r3, #0
+ strh r2, [r10, #2] @ movhi
strb r3, [r10, #6]
strh r3, [r10, #4] @ movhi
-.L1158:
+.L1153:
ldr r3, [sp, #8]
ldr r2, [sp]
cmp r3, r2
- bne .L1159
+ bne .L1154
ldr r3, [sp, #4]
- ldr r2, [sp, #20]
+ ldr r2, [sp, #24]
cmp r3, r2
- bne .L1159
+ bne .L1154
ldr r1, [sp, #8]
mov r2, r3
-.L1273:
+.L1263:
mov r0, r10
bl ftl_sb_update_avl_pages
- b .L1139
-.L1142:
- uxth r1, r3
- adds r1, r1, #8
- ldrh r0, [r10, r1, lsl #1]
- b .L1141
-.L1143:
+ b .L1134
+.L1137:
+ uxth r2, r3
+ adds r2, r2, #8
+ ldrh r0, [r10, r2, lsl #1]
+ b .L1136
+.L1138:
ldr r3, [sp]
- cbz r3, .L1145
+ cbz r3, .L1140
+ ldr r1, .L1264+4
movw r2, #1809
- ldr r1, .L1274+8
- ldr r0, .L1274+12
+ ldr r0, .L1264+8
bl sftl_printk
-.L1145:
- ldr r3, [sp, #20]
- cbz r3, .L1146
- cmp r6, r3
- beq .L1146
+.L1140:
+ ldr r3, [sp, #24]
+ cbz r3, .L1141
+ cmp r3, r6
+ beq .L1141
+ ldr r1, .L1264+4
movw r2, #1810
- ldr r1, .L1274+8
- ldr r0, .L1274+12
+ ldr r0, .L1264+8
bl sftl_printk
-.L1146:
+.L1141:
movs r3, #0
strh r3, [r10, #2] @ movhi
- b .L1272
-.L1150:
+ b .L1262
+.L1145:
ldrh r3, [ip], #2
cmp r3, r9
- beq .L1147
- mla r1, lr, r4, r0
- orr r3, r5, r3, lsl #10
+ beq .L1142
+ movs r1, #20
+ orr r3, r4, r3, lsl #10
+ mla r1, r1, r5, r0
str r3, [r1, #4]
- ldr r3, [sp, #8]
- muls r3, r4, r3
+ mov r3, r6
+ muls r3, r5, r3
it mi
addmi r3, r3, #3
bic r3, r3, #3
- mov r6, r3
- ldr r3, [sp, #4]
- add r6, r6, r3
+ add r3, r3, lr
+ str r3, [r1, #8]
mov r3, r7
- muls r3, r4, r3
- add r4, r4, #1
+ muls r3, r5, r3
+ add r5, r5, #1
it mi
addmi r3, r3, #3
- uxth r4, r4
+ uxth r5, r5
bic r3, r3, #3
- str r6, [r1, #8]
add r3, r3, r8
str r3, [r1, #12]
-.L1147:
+.L1142:
adds r2, r2, #1
- b .L1144
-.L1156:
- ldr r2, [r7]
- cbnz r2, .L1152
- ldr r2, [r7, #12]
+ b .L1139
+.L1151:
+ ldr r2, [r8]
+ cbnz r2, .L1147
+ ldr r2, [r8, #12]
str r2, [sp, #4]
ldr r2, [r2, #4]
- adds r0, r2, #1
- beq .L1153
+ adds r1, r2, #1
+ beq .L1148
ldr r1, [r6, #2592]
mov r0, r2
bl ftl_cmp_data_ver
- cbz r0, .L1153
+ cbz r0, .L1148
adds r2, r2, #1
str r2, [r6, #2592]
-.L1153:
+.L1148:
ldr r2, [sp, #4]
ldr r2, [r2]
adds r2, r2, #1
- bne .L1155
-.L1154:
- uxth r2, r5
- uxth r3, r3
+ bne .L1150
+.L1149:
+ uxth r2, r4
str r2, [sp, #8]
movs r2, #20
- mla r8, r2, r3, r8
- b .L1267
-.L1152:
+ mla r3, r2, r7, r3
+ b .L1256
+.L1147:
ldr r9, [sp, #8]
-.L1155:
- adds r3, r3, #1
- adds r7, r7, #20
- b .L1151
-.L1159:
+.L1150:
+ adds r7, r7, #1
+ add r8, r8, #20
+ b .L1146
+.L1154:
movw r3, #65535
cmp r9, r3
- bne .L1160
+ bne .L1155
ldrb r3, [r10, #8] @ zero_extendqisi2
- cmp r3, #0
- bne .L1161
-.L1160:
+ cbnz r3, .L1156
+.L1155:
ldr r3, [r6, #3448]
- uxth r7, r5
- uxth r5, r5
+ uxth r2, r4
+ uxth r7, r4
movw r8, #65535
adds r3, r3, #1
ldr r3, [sp]
it eq
streq fp, [r6, #3448]
- ldr r6, .L1274+4
adds r3, r3, #7
- cmp r5, r3
- itet gt
- subgt r4, r7, #7
- ldrle r4, [sp]
- uxthgt r4, r4
-.L1164:
- cmp r4, r7
- bhi .L1171
- movs r3, #0
- ldrh lr, [r6, #232]
+ ldr r6, .L1264
+ cmp r3, r2
+ itet lt
+ sublt r4, r4, #7
+ ldrge r4, [sp]
+ uxthlt r4, r4
+.L1159:
ldr r0, [r6, #3288]
- mov r5, r3
- ldr r1, [sp, #16]
- mov ip, #20
- b .L1172
-.L1166:
- ldrh r2, [r1], #2
- cmp r2, r8
- beq .L1165
- mla r9, ip, r5, r0
- adds r5, r5, #1
- orr r2, r4, r2, lsl #10
- uxth r5, r5
- str r2, [r9, #4]
-.L1165:
- adds r3, r3, #1
-.L1172:
- uxth r2, r3
- cmp lr, r2
- bhi .L1166
- movs r2, #0
- mov r1, r5
- bl FlashReadPages
- ldr r3, [r6, #3288]
- movs r2, #20
- mla r5, r2, r5, r3
-.L1167:
- cmp r5, r3
- bne .L1170
- adds r4, r4, #1
- uxth r4, r4
- b .L1164
-.L1170:
- ldr r2, [r3]
- cbnz r2, .L1161
- ldr r2, [r3, #12]
- ldrh r1, [r2]
- cmp r1, r8
- beq .L1169
- ldr r2, [r2, #4]
- adds r1, r2, #1
- it ne
- strne r2, [r6, #3448]
-.L1169:
- adds r3, r3, #20
- b .L1167
-.L1275:
- .align 2
-.L1274:
- .word __stack_chk_guard
- .word .LANCHOR0
- .word .LANCHOR1+435
- .word .LC8
-.L1171:
+ cmp r4, r7
+ ldrh ip, [r6, #232]
+ bls .L1205
mov r3, #-1
str r3, [r6, #3448]
-.L1161:
- ldr r8, .L1276+16
+.L1156:
+ ldr r4, .L1264
movs r3, #1
ldr r5, [sp]
- mov r4, r8
- strh r3, [r8, #3472] @ movhi
-.L1173:
+ strh r3, [r4, #3472] @ movhi
+.L1167:
ldrh r6, [r4, #232]
- movw r9, #65535
- ldr r0, [r4, #3288]
- mov ip, #20
- ldr r1, [sp, #16]
movs r3, #0
+ ldr r0, [r4, #3288]
+ movw r7, #65535
+ ldr r1, [sp, #20]
+ mov ip, #20
str r3, [sp, #12]
-.L1174:
+.L1168:
uxth r2, r3
cmp r6, r2
- bhi .L1176
- movs r2, #0
+ bhi .L1170
ldr r1, [sp, #12]
+ movs r2, #0
bl FlashReadPages
movs r3, #0
-.L1271:
- str r3, [sp, #24]
+.L1261:
+ str r3, [sp, #16]
ldr r2, [sp, #12]
- ldrh r3, [sp, #24]
+ ldrh r3, [sp, #16]
cmp r2, r3
- bhi .L1206
+ bhi .L1199
adds r5, r5, #1
ldrh r3, [r4, #302]
uxth r5, r5
cmp r3, r5
- bne .L1173
+ bne .L1167
ldrh r2, [r4, #232]
- movw r0, #65535
movs r3, #0
strh r5, [r10, #2] @ movhi
+ movw r0, #65535
strh r3, [r10, #4] @ movhi
-.L1207:
+.L1200:
uxth r1, r3
cmp r1, r2
- bcs .L1139
- ldr r1, [sp, #16]
+ bcs .L1134
+ ldr r1, [sp, #20]
ldrh r4, [r1], #2
+ str r1, [sp, #20]
+ adds r1, r3, #1
cmp r4, r0
- str r1, [sp, #16]
- add r1, r3, #1
- bne .L1272
+ bne .L1262
mov r3, r1
- b .L1207
-.L1176:
+ b .L1200
+.L1161:
ldrh r2, [r1], #2
- cmp r2, r9
- beq .L1175
- ldr r7, [sp, #12]
+ cmp r2, r8
+ beq .L1160
+ mla r9, lr, r5, r0
+ adds r5, r5, #1
+ orr r2, r4, r2, lsl #10
+ uxth r5, r5
+ str r2, [r9, #4]
+.L1160:
+ adds r3, r3, #1
+.L1166:
+ uxth r2, r3
+ cmp r2, ip
+ bcc .L1161
+ mov r1, r5
+ movs r2, #0
+ bl FlashReadPages
+ ldr r3, [r6, #3288]
+ movs r1, #0
+.L1162:
+ uxth r2, r1
+ cmp r5, r2
+ bhi .L1165
+ adds r4, r4, #1
+ uxth r4, r4
+ b .L1159
+.L1205:
+ movs r3, #0
+ ldr r1, [sp, #20]
+ mov r5, r3
+ mov lr, #20
+ b .L1166
+.L1265:
+ .align 2
+.L1264:
+ .word .LANCHOR0
+ .word .LANCHOR1+435
+ .word .LC8
+.L1165:
+ ldr r2, [r3]
+ cmp r2, #0
+ bne .L1156
+ ldr r2, [r3, #12]
+ ldrh r0, [r2]
+ cmp r0, r8
+ beq .L1164
+ ldr r2, [r2, #4]
+ adds r0, r2, #1
+ it ne
+ strne r2, [r6, #3448]
+.L1164:
+ adds r1, r1, #1
+ adds r3, r3, #20
+ b .L1162
+.L1170:
+ ldrh r2, [r1], #2
+ cmp r2, r7
+ beq .L1169
+ ldr lr, [sp, #12]
orr r2, r5, r2, lsl #10
- mla lr, ip, r7, r0
+ mla lr, ip, lr, r0
str r2, [lr, #4]
- mov r2, r7
+ ldr r2, [sp, #12]
adds r2, r2, #1
uxth r2, r2
str r2, [sp, #12]
-.L1175:
+.L1169:
adds r3, r3, #1
- b .L1174
-.L1206:
- ldr r3, [sp, #24]
- movs r7, #20
- muls r7, r3, r7
- ldr r3, [r4, #3288]
- str r3, [sp, #28]
- add r9, r3, r7
- ldr r6, [r9, #4]
- ubfx r0, r6, #10, #16
- str r6, [sp, #40]
+ b .L1168
+.L1199:
+ ldr r3, [sp, #16]
+ movs r6, #20
+ ldr r9, [r4, #3288]
+ muls r6, r3, r6
+ ldr r3, [sp]
+ add r8, r9, r6
+ cmp r5, r3
+ ldr r7, [r8, #4]
+ str r7, [sp, #40]
+ bcc .L1172
+ ubfx r0, r7, #10, #16
bl P2V_plane
ldr r3, [sp]
cmp r5, r3
- bcc .L1178
- ldr r3, [sp, #28]
- bne .L1179
- ldr r2, [sp, #20]
- cmp r2, r0
- bhi .L1178
-.L1179:
- ldr r2, [sp, #8]
- cmp r5, r2
- bne .L1180
- ldr r2, [sp, #4]
- cmp r2, r0
- beq .L1181
-.L1180:
- ldr r3, [r3, r7]
+ bne .L1173
+ ldr r3, [sp, #24]
+ cmp r3, r0
+ bhi .L1172
+.L1173:
+ ldr r3, [sp, #8]
+ cmp r5, r3
+ bne .L1174
+ ldr r3, [sp, #4]
+ cmp r3, r0
+ bne .L1174
+ mov r2, r3
+ mov r1, r5
+ strb r3, [r10, #6]
+ strh r5, [r10, #2] @ movhi
+ b .L1263
+.L1174:
+ ldr r3, [r9, r6]
adds r3, r3, #1
- beq .L1182
- ldr r9, [r9, #12]
- movw r3, #61589
- ldrh r2, [r9]
- cmp r2, r3
- beq .L1183
+ beq .L1175
+ ldr r8, [r8, #12]
+ movw r2, #61589
+ ldrh r3, [r8]
+ cmp r3, r2
+ beq .L1176
ldrh r0, [r10]
-.L1268:
+.L1258:
bl decrement_vpc_count
- b .L1178
-.L1183:
- ldr fp, [r9, #4]
+ b .L1172
+.L1176:
+ ldr fp, [r8, #4]
cmp fp, #-1
- beq .L1184
+ beq .L1178
ldr r1, [r4, #2592]
mov r0, fp
bl ftl_cmp_data_ver
- cbz r0, .L1184
- add r3, fp, #1
- str r3, [r4, #2592]
-.L1184:
- ldrh r2, [r9]
- movw r3, #61589
+ cbz r0, .L1178
+ add r2, fp, #1
+ str r2, [r4, #2592]
+ ldrh r2, [r8]
cmp r2, r3
- beq .L1185
+ beq .L1178
+ ldr r1, .L1266
movw r2, #1961
- ldr r1, .L1276
- ldr r0, .L1276+4
+ ldr r0, .L1266+4
bl sftl_printk
-.L1185:
- ldr r6, [r9, #8]
+.L1178:
+ ldrd r7, r3, [r8, #8]
add r1, sp, #36
- ldr r3, [r9, #12]
movs r2, #0
- mov r0, r6
str r3, [sp, #32]
+ mov r0, r7
bl log2phys
ldr r1, [r4, #3448]
adds r0, r1, #1
- beq .L1186
+ beq .L1180
mov r0, fp
bl ftl_cmp_data_ver
cmp r0, #0
- beq .L1186
+ beq .L1180
ldr r3, [sp, #32]
- adds r2, r3, #1
- beq .L1187
+ adds r1, r3, #1
+ beq .L1181
ldr r0, [r4, #3288]
movs r2, #0
movs r1, #1
- add r0, r0, r7
+ add r0, r0, r6
str r3, [r0, #4]
- ldr r9, [r0, #12]
+ ldr r8, [r0, #12]
bl FlashReadPages
- ldr r2, [r4, #3288]
- ldr r1, [r2, r7]
- adds r3, r2, r7
- adds r1, r1, #1
- bne .L1188
-.L1189:
+ ldr r3, [r4, #3288]
+ add r9, r3, r6
+ ldr r2, [r3, r6]
+ adds r2, r2, #1
+ bne .L1182
+.L1183:
mov r3, #-1
str r3, [sp, #32]
-.L1196:
+.L1190:
ldr r0, [sp, #32]
adds r1, r0, #1
- beq .L1178
-.L1210:
+ beq .L1172
ubfx r0, r0, #10, #16
bl P2V_block_in_plane
ldrh r3, [r4, #240]
mov r6, r0
cmp r3, r0
- bhi .L1202
+ bhi .L1195
+ ldr r1, .L1266
movw r2, #2066
- ldr r1, .L1276
- ldr r0, .L1276+4
+ ldr r0, .L1266+4
bl sftl_printk
-.L1202:
- ldr r3, [r8, #72]
+.L1195:
+ ldr r3, [r4, #72]
ldrh r3, [r3, r6, lsl #1]
cmp r3, #0
- beq .L1203
+ beq .L1196
mov r0, r6
- b .L1268
-.L1187:
- ldr r3, [sp, #40]
- ldr r2, [sp, #36]
+ b .L1258
+.L1181:
+ ldrd r2, r3, [sp, #36]
cmp r2, r3
- bne .L1178
- movs r2, #1
+ bne .L1172
add r1, sp, #32
- mov r0, r6
+ mov r0, r7
+ movs r2, #1
bl log2phys
-.L1178:
- ldr r3, [sp, #24]
+.L1172:
+ ldr r3, [sp, #16]
adds r3, r3, #1
- b .L1271
-.L1188:
- ldr r1, [r9, #8]
- cmp r6, r1
- bne .L1189
- ldr r1, [r9, #4]
+ b .L1261
+.L1182:
+ ldr r2, [r8, #8]
+ cmp r2, r7
+ bne .L1183
+ ldr r1, [r8, #4]
ldr r0, [r4, #3448]
str r1, [sp, #28]
bl ftl_cmp_data_ver
cmp r0, #0
- beq .L1189
- ldr r1, [sp, #36]
- ldr r0, [sp, #40]
- cmp r1, r0
- bne .L1191
-.L1194:
- ldr r1, [sp, #32]
- mov r0, r6
+ beq .L1183
+ ldrd r1, r0, [sp, #32]
+ ldr ip, [sp, #40]
+ cmp r0, ip
+ bne .L1185
+ mov r0, r2
+.L1257:
bl FtlReUsePrevPpa
- b .L1189
-.L1191:
- ldr r0, [sp, #32]
+ b .L1183
+.L1185:
cmp r1, r0
- beq .L1189
- adds r0, r1, #1
- beq .L1192
- str r1, [r3, #4]
+ beq .L1183
+ adds r2, r0, #1
+ beq .L1186
+ str r0, [r9, #4]
movs r2, #0
+ mov r0, r9
movs r1, #1
- mov r0, r3
- ldr r9, [r3, #12]
+ ldr r8, [r9, #12]
bl FlashReadPages
-.L1193:
+.L1187:
ldr r3, [r4, #3288]
- ldr r3, [r3, r7]
+ ldr r3, [r3, r6]
adds r3, r3, #1
- beq .L1194
- ldr r3, [r9, #4]
+ beq .L1188
+ ldr r3, [r8, #4]
ldr r0, [r4, #3448]
mov r1, r3
bl ftl_cmp_data_ver
- cmp r0, #0
- beq .L1194
- mov r1, r3
+ cbz r0, .L1188
ldr r0, [sp, #28]
+ mov r1, r3
bl ftl_cmp_data_ver
cmp r0, #0
- beq .L1189
- b .L1194
-.L1192:
- str r1, [r2, r7]
- b .L1193
+ beq .L1183
+.L1188:
+ ldr r1, [sp, #32]
+ mov r0, r7
+ b .L1257
.L1186:
- ldr r3, [sp, #40]
- ldr r2, [sp, #36]
+ str r0, [r3, r6]
+ b .L1187
+.L1180:
+ ldrd r2, r3, [sp, #36]
cmp r2, r3
- beq .L1196
+ beq .L1190
ldr r1, [sp, #32]
adds r0, r1, #1
- beq .L1198
- ldr r3, [r8, #248]
+ beq .L1192
+ ldr r3, [r4, #248]
cmp r3, r1, lsr #10
- bhi .L1198
- ldr r0, .L1276+8
-.L1270:
+ bhi .L1192
+ ldr r0, .L1266+8
+.L1260:
bl sftl_printk
- b .L1178
-.L1198:
- movs r2, #1
+ b .L1172
+.L1192:
add r1, sp, #40
- mov r0, r6
+ mov r0, r7
+ movs r2, #1
bl log2phys
- ldr r9, [sp, #36]
- cmp r9, #-1
- beq .L1196
+ ldr r8, [sp, #36]
+ cmp r8, #-1
+ beq .L1190
ldr r3, [sp, #32]
- cmp r9, r3
- beq .L1200
- ubfx r0, r9, #10, #16
+ cmp r8, r3
+ beq .L1190
+ ubfx r0, r8, #10, #16
bl P2V_block_in_plane
ldrh r3, [r4, #24]
cmp r3, r0
- beq .L1201
+ beq .L1194
ldrh r3, [r4, #76]
cmp r3, r0
- beq .L1201
+ beq .L1194
ldrh r3, [r4, #124]
cmp r3, r0
- bne .L1196
-.L1201:
- ldr r0, [r8, #3288]
+ bne .L1190
+.L1194:
+ ldr r0, [r4, #3288]
movs r2, #0
movs r1, #1
- str r9, [r0, #4]
- ldr r7, [r0, #12]
+ str r8, [r0, #4]
+ ldr r6, [r0, #12]
bl FlashReadPages
- ldr r3, [r8, #3288]
+ ldr r3, [r4, #3288]
ldr r3, [r3]
adds r3, r3, #1
- beq .L1196
- ldr r1, [r7, #4]
+ beq .L1190
+ ldr r1, [r6, #4]
mov r0, fp
bl ftl_cmp_data_ver
cmp r0, #0
- bne .L1196
- movs r2, #1
+ bne .L1190
add r1, sp, #36
- mov r0, r6
+ mov r0, r7
+ movs r2, #1
bl log2phys
- b .L1196
-.L1203:
+ b .L1190
+.L1196:
+ ldr r0, .L1266+12
mov r1, r6
- ldr r0, .L1276+12
- b .L1270
-.L1182:
+ b .L1260
+.L1175:
ldr r3, [r4, #3476]
cmp r3, #31
itttt ls
addls r2, r4, r3, lsl #2
addls r3, r3, #1
strls r3, [r4, #3476]
- strls r6, [r2, #3480]
+ strls r7, [r2, #3480]
ldrh r0, [r10]
bl decrement_vpc_count
ldr r3, [r4, #3448]
adds r2, r3, #1
- bne .L1205
-.L1269:
+ bne .L1198
+.L1259:
str fp, [r4, #3448]
- b .L1178
-.L1205:
- cmp fp, r3
- bcs .L1178
- b .L1269
-.L1181:
- ldrb r3, [sp, #4] @ zero_extendqisi2
- mov r1, r5
- strh r5, [r10, #2] @ movhi
- ldr r2, [sp, #4]
- strb r3, [r10, #6]
- b .L1273
-.L1200:
- mov r0, r9
- b .L1210
-.L1211:
+ b .L1172
+.L1198:
+ cmp r3, fp
+ bls .L1172
+ b .L1259
+.L1203:
+ movs r0, #0
add sp, sp, #52
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L1277:
+.L1267:
.align 2
-.L1276:
+.L1266:
.word .LANCHOR1+435
.word .LC8
.word .LC109
.word .LC110
- .word .LANCHOR0
.fnend
.size FtlRecoverySuperblock, .-FtlRecoverySuperblock
+ .section .rodata.str1.1
+.LC111:
+ .ascii "...%s enter...\012\000"
+.LC112:
+ .ascii "FtlCheckVpc2 %x = %x %x\012\000"
+.LC113:
+ .ascii "free blk vpc error %x = %x %x\012\000"
+ .text
.align 1
.global ftl_check_vpc
.syntax unified
@@ -8677,142 +8936,148 @@
.type ftl_check_vpc, %function
ftl_check_vpc:
.fnstart
- @ args = 0, pretend = 0, frame = 16
+ @ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
- push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+ push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
- .pad #20
- sub sp, sp, #20
- ldr r5, .L1303
+ .pad #12
movs r4, #0
- ldr r6, .L1303+4
- ldr r3, [r5]
- ldr r1, .L1303+8
- ldr r0, .L1303+12
- ldr r7, .L1303+16
- str r3, [sp, #12]
+ ldr r5, .L1293
+ mov r3, sp
+ ldr r7, .L1293+4
+ bic r6, r3, #8160
+ ldr r1, .L1293+8
+ bic r6, r6, #31
+ ldr r0, .L1293+12
+ ldr r3, [r6, #24]
+ str r3, [sp, #4]
bl sftl_printk
+ ldr r0, .L1293+4
mov r2, #8192
movs r1, #0
- ldr r0, .L1303+16
bl ftl_memset
- str r5, [sp, #4]
- mov r5, r6
-.L1279:
- ldr r3, [r6, #2552]
- cmp r4, r3
- bcc .L1281
- ldr r8, .L1303+16
+.L1269:
+ ldr r3, [r5, #2552]
+ cmp r3, r4
+ bhi .L1271
+ ldr r9, .L1293+4
movs r4, #0
- ldr r10, .L1303+28
- mov r6, r4
- movw r9, #65535
-.L1282:
+ ldr fp, .L1293+16
+ mov r7, r4
+ movw r10, #65535
+.L1272:
ldrh r2, [r5, #240]
uxth r3, r4
cmp r2, r3
- bhi .L1284
+ bhi .L1274
ldr r4, [r5, #2532]
- cbz r4, .L1285
- ldr r3, [r5, #2516]
- movs r7, #0
+ cbz r4, .L1275
+ ldr r1, [r5, #2516]
+ mov r9, #0
ldrh r8, [r5, #224]
mov fp, #6
- ldr r9, .L1303+16
- subs r4, r4, r3
- ldr r3, .L1303+20
+ subs r4, r4, r1
+ ldr r1, .L1293+20
+ ldr r10, .L1293+4
asrs r4, r4, #1
- ldr r10, .L1303+32
- muls r4, r3, r4
+ ldr r0, .L1293+24
+ muls r4, r1, r4
uxth r4, r4
-.L1286:
- uxth r3, r7
+.L1276:
+ uxth r3, r9
cmp r8, r3
- bls .L1285
+ bls .L1275
ldr r3, [r5, #72]
ldrh r2, [r3, r4, lsl #1]
- cbz r2, .L1287
- movs r6, #1
- ldrh r3, [r9, r4, lsl #1]
+ cbz r2, .L1277
+ ldrh r3, [r10, r4, lsl #1]
mov r1, r4
- mov r0, r10
bl sftl_printk
-.L1287:
+ ldr r0, .L1293+24
+ movs r7, #1
+.L1277:
mul r4, fp, r4
ldr r3, [r5, #2516]
- adds r7, r7, #1
+ add r9, r9, #1
ldrh r4, [r3, r4]
movw r3, #65535
cmp r4, r3
- bne .L1286
-.L1285:
- cbz r6, .L1278
+ bne .L1276
+.L1275:
+ cbz r7, .L1268
+ ldr r1, .L1293+8
movw r2, #2394
- ldr r1, .L1303+8
- ldr r0, .L1303+24
+ ldr r0, .L1293+28
bl sftl_printk
-.L1278:
- ldr r3, [sp, #4]
- ldr r2, [sp, #12]
- ldr r3, [r3]
+.L1268:
+ ldr r2, [sp, #4]
+ ldr r3, [r6, #24]
cmp r2, r3
- beq .L1290
- bl __stack_chk_fail
-.L1281:
- movs r2, #0
- add r1, sp, #8
- mov r0, r4
- bl log2phys
- ldr r0, [sp, #8]
- adds r3, r0, #1
beq .L1280
+ bl __stack_chk_fail
+.L1271:
+ mov r1, sp
+ mov r0, r4
+ movs r2, #0
+ bl log2phys
+ ldr r0, [sp]
+ adds r3, r0, #1
+ beq .L1270
ubfx r0, r0, #10, #16
bl P2V_block_in_plane
ldrh r3, [r7, r0, lsl #1]
adds r3, r3, #1
strh r3, [r7, r0, lsl #1] @ movhi
-.L1280:
+.L1270:
adds r4, r4, #1
- b .L1279
-.L1284:
+ b .L1269
+.L1274:
ldr r3, [r5, #72]
- uxth r7, r4
- ldrh r2, [r3, r7, lsl #1]
- ldrh r3, [r8, r7, lsl #1]
+ uxth r8, r4
+ ldrh r2, [r3, r8, lsl #1]
+ ldrh r3, [r9, r8, lsl #1]
cmp r2, r3
- beq .L1283
- mov r1, r7
- mov r0, r10
+ beq .L1273
+ mov r1, r8
+ mov r0, fp
bl sftl_printk
ldr r3, [r5, #72]
- ldrh r3, [r3, r7, lsl #1]
- cmp r3, r9
- beq .L1283
- ldrh r2, [r8, r7, lsl #1]
+ ldrh r3, [r3, r8, lsl #1]
+ cmp r3, r10
+ beq .L1273
+ ldrh r2, [r9, r8, lsl #1]
cmp r2, r3
it hi
- movhi r6, #1
-.L1283:
+ movhi r7, #1
+.L1273:
adds r4, r4, #1
- b .L1282
-.L1290:
- add sp, sp, #20
+ b .L1272
+.L1280:
+ add sp, sp, #12
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L1304:
+.L1294:
.align 2
-.L1303:
- .word __stack_chk_guard
+.L1293:
.word .LANCHOR0
+ .word check_vpc_table
.word .LANCHOR1+457
.word .LC111
- .word check_vpc_table
- .word -1431655765
- .word .LC8
.word .LC112
+ .word -1431655765
.word .LC113
+ .word .LC8
.fnend
.size ftl_check_vpc, .-ftl_check_vpc
+ .section .rodata.str1.1
+.LC114:
+ .ascii "ftl_scan_all_data = %x\012\000"
+.LC115:
+ .ascii "scan lpa = %x ppa= %x\012\000"
+.LC116:
+ .ascii "lpa = %x,addr= %x,spare= %x %x %x %x data=%x %x\012"
+ .ascii "\000"
+ .text
.align 1
.global ftl_scan_all_data
.syntax unified
@@ -8824,67 +9089,68 @@
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
- push {r4, r5, r6, r7, r8, r9, lr}
- .save {r4, r5, r6, r7, r8, r9, lr}
+ push {r4, r5, r6, r7, r8, lr}
+ .save {r4, r5, r6, r7, r8, lr}
movs r5, #0
- ldr r6, .L1320
- .pad #36
- sub sp, sp, #36
+ ldr r4, .L1310
+ .pad #32
+ sub sp, sp, #32
+ ldr r8, .L1310+4
+ mov r3, sp
+ ldr r0, .L1310+8
+ bic r6, r3, #8160
movs r1, #0
- ldr r7, .L1320+4
- ldr r9, .L1320+20
- ldr r3, [r6]
- mov r4, r7
- ldr r0, .L1320+8
+ bic r6, r6, #31
+ ldr r3, [r6, #24]
str r3, [sp, #28]
bl sftl_printk
-.L1306:
- ldr r3, [r7, #2552]
- cmp r5, r3
- bcc .L1312
+.L1296:
+ ldr r3, [r4, #2552]
+ cmp r3, r5
+ bhi .L1302
ldr r2, [sp, #28]
- ldr r3, [r6]
+ ldr r3, [r6, #24]
cmp r2, r3
- beq .L1313
+ beq .L1303
bl __stack_chk_fail
-.L1312:
- movs r2, #0
+.L1302:
add r1, sp, #24
mov r0, r5
+ movs r2, #0
bl log2phys
ubfx r3, r5, #0, #11
- cbnz r3, .L1307
+ cbnz r3, .L1297
ldr r2, [sp, #24]
mov r1, r5
- mov r0, r9
+ mov r0, r8
bl sftl_printk
-.L1307:
+.L1297:
ldr r3, [sp, #24]
adds r2, r3, #1
- beq .L1309
- str r3, [r4, #3456]
+ beq .L1299
+ ldr r7, [r4, #3332]
movs r2, #0
- ldr r3, [r4, #3300]
+ str r3, [r4, #3456]
movs r1, #1
- ldr r8, [r4, #3332]
- ldr r0, .L1320+12
+ ldr r3, [r4, #3300]
+ ldr r0, .L1310+12
str r3, [r4, #3460]
str r5, [r4, #3468]
- str r8, [r4, #3464]
+ str r7, [r4, #3464]
str r2, [r4, #3452]
bl FlashReadPages
ldr r3, [r4, #3452]
cmp r3, #256
- beq .L1310
+ beq .L1300
adds r3, r3, #1
- beq .L1310
- ldr r3, [r8, #8]
- cmp r5, r3
- beq .L1309
-.L1310:
+ beq .L1300
+ ldr r3, [r7, #8]
+ cmp r3, r5
+ beq .L1299
+.L1300:
ldr r2, [r4, #3460]
ldr r3, [r4, #3464]
- ldr r0, .L1320+16
+ ldr r0, .L1310+16
ldr r1, [r2, #4]
str r1, [sp, #16]
mov r1, r5
@@ -8896,27 +9162,30 @@
str r2, [sp, #4]
ldr r2, [r3, #4]
str r2, [sp]
- ldr r3, [r3]
ldr r2, [r4, #3456]
+ ldr r3, [r3]
bl sftl_printk
-.L1309:
+.L1299:
adds r5, r5, #1
- b .L1306
-.L1313:
- add sp, sp, #36
+ b .L1296
+.L1303:
+ add sp, sp, #32
@ sp needed
- pop {r4, r5, r6, r7, r8, r9, pc}
-.L1321:
+ pop {r4, r5, r6, r7, r8, pc}
+.L1311:
.align 2
-.L1320:
- .word __stack_chk_guard
+.L1310:
.word .LANCHOR0
+ .word .LC115
.word .LC114
.word .LANCHOR0+3452
.word .LC116
- .word .LC115
.fnend
.size ftl_scan_all_data, .-ftl_scan_all_data
+ .section .rodata.str1.1
+.LC117:
+ .ascii "FtlGcScanTempBlk Error ID %x %x!!!!!!! \012\000"
+ .text
.align 1
.global FtlGcScanTempBlk
.syntax unified
@@ -8928,136 +9197,140 @@
.fnstart
@ args = 0, pretend = 0, frame = 48
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L1360
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+ mov r5, r0
.pad #52
sub sp, sp, #52
- mov r5, r0
+ mov r3, sp
+ bic r3, r3, #8160
+ bic r3, r3, #31
str r1, [sp, #4]
- ldr r3, [r3]
+ ldr r3, [r3, #24]
str r3, [sp, #44]
- ldr r3, .L1360+4
+ ldr r3, .L1349
ldrh r6, [r3, #4]
movw r3, #65535
cmp r6, r3
- beq .L1350
- cbnz r6, .L1323
-.L1324:
- bl FtlGcPageVarInit
- b .L1325
-.L1350:
- movs r6, #0
-.L1323:
- ldr r3, .L1360+8
+ beq .L1339
+ cbz r6, .L1314
+.L1313:
+ ldr r3, .L1349+4
ldr r2, [sp, #4]
ldrh r3, [r3, #302]
cmp r3, r2
- beq .L1324
-.L1325:
- mov fp, #0
-.L1343:
+ bne .L1315
+.L1314:
+ bl FtlGcPageVarInit
+.L1315:
+ mov r9, #0
+.L1334:
ldrh r2, [r5]
movs r3, #0
strb r3, [r5, #8]
movw r3, #65535
cmp r2, r3
- beq .L1326
- ldr r4, .L1360+8
-.L1346:
- ldr r3, [r4, #3288]
+ beq .L1316
+ ldr r4, .L1349+4
+.L1317:
+ ldr r3, [r4, #3176]
movs r2, #0
ldrh ip, [r4, #232]
add lr, r5, #16
- ldrh r10, [r4, #310]
+ ldr r0, [r4, #3288]
+ mov r8, r3
+ ldrh fp, [r4, #310]
mov r7, r2
- str r3, [sp]
- movw r8, #65535
- ldr r3, [r4, #3176]
- ldr r9, [r4, #3180]
- str r3, [sp, #8]
+ ldr r10, [r4, #3180]
ldrh r3, [r4, #312]
- str r3, [sp, #12]
-.L1327:
+ str r3, [sp, #8]
+.L1318:
uxth r3, r2
cmp ip, r3
- bhi .L1331
+ bhi .L1322
mov r10, #0
- movs r2, #0
mov r1, r7
- ldr r0, [sp]
+ movs r2, #0
bl FlashReadPages
-.L1332:
+.L1323:
uxth r3, r10
cmp r7, r3
- bhi .L1344
+ bhi .L1335
ldr r3, [sp, #4]
- add fp, fp, #1
adds r6, r6, #1
+ add r9, r9, #1
uxth r6, r6
- cmp r3, fp
- bls .L1345
-.L1347:
+ cmp r3, r9
+ bhi .L1336
+ ldr r2, .L1349
+ movw r1, #65535
+ ldrh r3, [r2, #4]
+ cmp r3, r1
+ beq .L1336
+ add r3, r3, r9
+ strh r3, [r2, #4] @ movhi
ldrh r3, [r4, #302]
cmp r3, r6
- bhi .L1346
-.L1326:
- ldr r3, .L1360+4
- movw r2, #65535
- strh r6, [r5, #2] @ movhi
- mov r1, r6
- mov r0, r5
- strh r2, [r3, #4] @ movhi
- movs r2, #0
- strb r2, [r5, #6]
- bl ftl_sb_update_avl_pages
- b .L1348
-.L1331:
+ bls .L1316
+.L1337:
+ mov r3, sp
+ ldr r2, [sp, #44]
+ bic r3, r3, #8160
+ bic r3, r3, #31
+ ldr r3, [r3, #24]
+ cmp r2, r3
+ beq .L1338
+ bl __stack_chk_fail
+.L1339:
+ movs r6, #0
+ b .L1313
+.L1322:
ldrh r3, [lr], #2
- cmp r3, r8
- beq .L1328
- ldr r0, [sp]
+ movw r1, #65535
+ cmp r3, r1
+ beq .L1319
movs r1, #20
orr r3, r6, r3, lsl #10
mla r1, r1, r7, r0
str r3, [r1, #4]
- mov r3, r10
+ mov r3, fp
muls r3, r7, r3
it mi
addmi r3, r3, #3
bic r3, r3, #3
- mov r0, r3
+ add r3, r3, r8
+ str r3, [r1, #8]
ldr r3, [sp, #8]
- add r0, r0, r3
- ldr r3, [sp, #12]
muls r3, r7, r3
add r7, r7, #1
it mi
addmi r3, r3, #3
uxth r7, r7
bic r3, r3, #3
- str r0, [r1, #8]
- add r3, r3, r9
+ add r3, r3, r10
str r3, [r1, #12]
-.L1328:
+.L1319:
adds r2, r2, #1
- b .L1327
-.L1344:
+ b .L1318
+.L1335:
movs r3, #20
ldr r2, [r4, #3288]
- mul r3, r3, r10
- adds r1, r2, r3
- ldr r8, [r2, r3]
- ldr r0, [r1, #4]
- ldr r9, [r1, #12]
- str r0, [sp]
- cmp r8, #0
- bne .L1333
- ldrh r1, [r9]
- movw r2, #65535
- cmp r1, r2
- bne .L1334
-.L1358:
+ mul fp, r3, r10
+ add r1, r2, fp
+ ldr r2, [r2, fp]
+ ldr r3, [r1, #4]
+ ldr r8, [r1, #12]
+ cmp r2, #0
+ bne .L1324
+ ldrh r0, [r8]
+ movw r1, #65535
+ cmp r0, r1
+ beq .L1347
+ ldr r0, [r8, #8]
+ ldr r1, [r4, #2552]
+ cmp r0, r1
+ bls .L1326
+.L1347:
ldrh r2, [r5]
movs r1, #0
ldr r3, [r4, #72]
@@ -9069,94 +9342,86 @@
strh r3, [r5] @ movhi
strh r3, [r4, #172] @ movhi
bl FtlGcPageVarInit
- b .L1343
-.L1334:
- ldr r0, [r9, #8]
- ldr r2, [r4, #2552]
- str r3, [sp, #8]
- cmp r0, r2
- bhi .L1358
- mov r2, r8
+ b .L1334
+.L1326:
add r1, sp, #20
+ strd r2, r3, [sp, #8]
bl log2phys
- ldr r2, [r9, #12]
- ldr r1, [sp, #20]
- ldr r3, [sp, #8]
- cmp r2, r1
- beq .L1337
-.L1339:
- ldr r2, [r9, #8]
-.L1359:
- ldr r1, [sp]
+ ldr r1, [r8, #12]
+ ldr r0, [sp, #20]
+ ldrd r2, r3, [sp, #8]
+ cmp r1, r0
+ beq .L1328
+.L1330:
+ ldr r2, [r8, #8]
+.L1348:
+ ldr r0, [r8, #12]
+ mov r1, r3
add r10, r10, #1
- ldr r0, [r9, #12]
bl FtlGcUpdatePage
- b .L1332
-.L1337:
- str r3, [sp, #8]
- adds r3, r2, #1
- beq .L1339
- str r2, [sp, #28]
- movs r1, #1
- ldr r2, [r4, #3316]
+ b .L1323
+.L1328:
+ adds r0, r1, #1
+ beq .L1330
+ str r1, [sp, #28]
add r0, sp, #24
- str r2, [sp, #32]
- ldr r2, [r4, #3336]
- str r2, [sp, #36]
- mov r2, r8
+ ldr r1, [r4, #3316]
+ str r1, [sp, #32]
+ ldr r1, [r4, #3336]
+ str r1, [sp, #36]
+ movs r1, #1
+ str r3, [sp, #12]
+ str r2, [sp, #8]
bl FlashReadPages
- ldrh r2, [r4, #258]
- ldr r1, [r4, #3288]
- ldr r3, [sp, #8]
+ ldr r0, [r4, #3288]
+ ldrh r1, [r4, #258]
+ add fp, fp, r0
ldr r0, [sp, #32]
- lsls r2, r2, #7
- add ip, r3, r1
-.L1340:
- cmp r8, r2
- beq .L1339
- ldr r1, [ip, #8]
- ldr r3, [r0, r8, lsl #2]
- ldr r1, [r1, r8, lsl #2]
- cmp r1, r3
- beq .L1341
+ ldrd r2, r3, [sp, #8]
+ lsls r1, r1, #7
+.L1331:
+ cmp r1, r2
+ beq .L1330
+ ldr ip, [fp, #8]
+ ldr lr, [ip, r2, lsl #2]
+ ldr ip, [r0, r2, lsl #2]
+ cmp lr, ip
+ beq .L1332
ldr r2, [sp, #28]
ldrh r1, [r5]
- ldr r0, .L1360+12
+ ldr r0, .L1349+8
+ ldr r4, .L1349+4
bl sftl_printk
- b .L1358
-.L1341:
- add r8, r8, #1
- b .L1340
-.L1333:
+ b .L1347
+.L1332:
+ adds r2, r2, #1
+ b .L1331
+.L1324:
mov r2, #-1
- b .L1359
-.L1345:
- ldr r2, .L1360+4
- movw r1, #65535
- ldrh r3, [r2, #4]
- cmp r3, r1
- beq .L1347
- add r3, r3, fp
- strh r3, [r2, #4] @ movhi
+ b .L1348
+.L1336:
ldrh r3, [r4, #302]
cmp r3, r6
- bls .L1347
-.L1348:
- ldr r3, .L1360
+ bhi .L1317
+.L1316:
+ ldr r3, .L1349
+ movw r2, #65535
+ mov r1, r6
+ mov r0, r5
+ strh r6, [r5, #2] @ movhi
+ strh r2, [r3, #4] @ movhi
+ movs r2, #0
+ strb r2, [r5, #6]
+ bl ftl_sb_update_avl_pages
+ b .L1337
+.L1338:
mov r0, #-1
- ldr r2, [sp, #44]
- ldr r3, [r3]
- cmp r2, r3
- beq .L1349
- bl __stack_chk_fail
-.L1349:
add sp, sp, #52
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L1361:
+.L1350:
.align 2
-.L1360:
- .word __stack_chk_guard
+.L1349:
.word .LANCHOR2
.word .LANCHOR0
.word .LC117
@@ -9175,122 +9440,120 @@
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, lr}
.save {r4, r5, r6, r7, r8, r9, r10, lr}
+ ldr r4, .L1367
.pad #96
sub sp, sp, #96
- ldr r6, .L1379
- ldr r7, .L1379+4
- ldr r10, [r6, #2720]
- mov r5, r6
- ldr r3, [r7]
+ mov r3, sp
+ bic r6, r3, #8160
+ bic r6, r6, #31
+ ldr r9, [r4, #2720]
+ ldr r3, [r6, #24]
str r3, [sp, #92]
- cmp r10, #0
- beq .L1363
- ldr r2, [r6, #2724]
- ldr r3, [r6, #2552]
+ ldr r3, [r4, #2552]
+ cmp r9, #0
+ beq .L1352
+ ldr r2, [r4, #2724]
cmp r2, r3
- bcs .L1364
- mov r4, #2048
-.L1369:
- ldr r0, [r5, #2724]
- ldr r3, [r5, #2552]
+ bcs .L1353
+ mov r5, #2048
+.L1358:
+ ldr r0, [r4, #2724]
+ ldr r3, [r4, #2552]
cmp r0, r3
- bcc .L1365
-.L1368:
+ bcc .L1354
+.L1357:
mov r0, #-1
-.L1362:
+.L1351:
ldr r2, [sp, #92]
- ldr r3, [r7]
+ ldr r3, [r6, #24]
cmp r2, r3
- beq .L1374
+ beq .L1362
bl __stack_chk_fail
-.L1365:
- movs r2, #0
+.L1354:
add r1, sp, #4
- bl log2phys
- ldr r2, [sp, #4]
- ldr r3, [r5, #2724]
- adds r1, r2, #1
- add r3, r3, #1
- str r3, [r5, #2724]
- beq .L1367
- str r3, [sp, #24]
- add r0, sp, #96
- ldr r3, [r5, #3324]
- movs r1, #1
- str r2, [sp, #12]
movs r2, #0
- str r2, [r0, #-88]!
+ bl log2phys
+ ldr r3, [r4, #2724]
+ ldr r2, [sp, #4]
+ adds r3, r3, #1
+ str r3, [r4, #2724]
+ adds r1, r2, #1
+ beq .L1356
+ str r2, [sp, #12]
+ add r0, sp, #8
+ str r3, [sp, #24]
+ movs r2, #0
+ ldr r3, [r4, #3324]
+ movs r1, #1
str r3, [sp, #16]
add r3, sp, #28
+ str r2, [sp, #8]
str r3, [sp, #20]
bl FlashReadPages
ldr r3, [sp, #8]
cmp r3, #256
- bne .L1368
+ bne .L1357
ldr r0, [sp, #4]
ubfx r0, r0, #10, #16
bl P2V_block_in_plane
bl FtlGcRefreshBlock
- b .L1368
-.L1367:
- subs r4, r4, #1
- bne .L1369
- b .L1368
-.L1364:
- ldr r3, [r6, #2556]
+ b .L1357
+.L1356:
+ subs r5, r5, #1
+ bne .L1358
+ b .L1357
+.L1353:
+ ldr r3, [r4, #2556]
movs r0, #0
- str r0, [r6, #2720]
- str r0, [r6, #2724]
- str r3, [r6, #2716]
- b .L1362
-.L1363:
- ldr r9, [r6, #2556]
- movw r4, #10000
- ldr r1, [r6, #2612]
- ldr r8, [r6, #2716]
- add r3, r9, #1048576
- cmp r1, r4
+ str r3, [r4, #2716]
+ str r0, [r4, #2720]
+ str r0, [r4, #2724]
+ b .L1351
+.L1352:
+ ldr r8, [r4, #2556]
+ movw r5, #10000
+ ldr r1, [r4, #2612]
+ ldr r10, [r4, #2716]
+ add r2, r8, #1048576
+ cmp r1, r5
ite hi
- movhi r4, #31
- movls r4, #63
- cmp r8, r3
- bhi .L1373
- ldr r3, [r6, #2552]
- lsrs r1, r1, #10
+ movhi r5, #31
+ movls r5, #63
+ ldrh r7, [r4, #2496]
+ cmp r10, r2
+ bhi .L1361
mov r0, #1000
+ lsrs r1, r1, #10
adds r1, r1, #1
muls r0, r3, r0
bl __aeabi_uidiv
- add r0, r0, r8
- cmp r9, r0
- bhi .L1373
- ldrh r3, [r6, #2496]
- ands r0, r4, r3
- bne .L1376
- ldr r2, [r6, #2740]
- cmp r3, r2
- beq .L1362
-.L1373:
- ldrh r3, [r5, #2496]
- movs r0, #0
- str r0, [r5, #2724]
- str r9, [r5, #2716]
- str r3, [r5, #2740]
+ add r0, r0, r10
+ cmp r8, r0
+ bhi .L1361
+ ands r0, r5, r7
+ bne .L1364
+ ldr r3, [r4, #2740]
+ cmp r3, r7
+ beq .L1351
+.L1361:
movs r3, #1
- str r3, [r5, #2720]
- b .L1362
-.L1376:
- mov r0, r10
- b .L1362
-.L1374:
+ movs r0, #0
+ str r7, [r4, #2740]
+ str r3, [r4, #2720]
+ str r0, [r4, #2724]
+ str r8, [r4, #2716]
+ b .L1351
+.L1364:
+ mov r0, r9
+ b .L1351
+.L1362:
add sp, sp, #96
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, pc}
-.L1380:
+.L1368:
.align 2
-.L1379:
+.L1367:
.word .LANCHOR0
- .word __stack_chk_guard
.fnend
.size FtlReadRefresh, .-FtlReadRefresh
.align 1
@@ -9307,30 +9570,30 @@
push {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
movs r4, #0
- ldr r5, .L1385
+ ldr r5, .L1373
movs r6, #12
bl FtlWriteDump_data
-.L1382:
+.L1370:
ldrh r3, [r5, #338]
uxth r0, r4
cmp r3, r0
- bhi .L1384
+ bhi .L1372
movs r0, #0
pop {r4, r5, r6, pc}
-.L1384:
- ldr r2, [r5, #2540]
- uxth r3, r4
- mla r3, r6, r3, r2
+.L1372:
+ ldr r3, [r5, #2540]
+ uxth r2, r4
+ mla r3, r6, r2, r3
ldr r3, [r3, #4]
cmp r3, #0
- bge .L1383
+ bge .L1371
bl flush_l2p_region
-.L1383:
+.L1371:
adds r4, r4, #1
- b .L1382
-.L1386:
+ b .L1370
+.L1374:
.align 2
-.L1385:
+.L1373:
.word .LANCHOR0
.fnend
.size l2p_flush, .-l2p_flush
@@ -9345,40 +9608,38 @@
.fnstart
@ args = 0, pretend = 0, frame = 104
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L1400
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
- mov r10, r2
- ldr r4, .L1400+4
+ mov fp, r2
+ ldr r4, .L1388
.pad #108
sub sp, sp, #108
- mov r6, r1
- adds r1, r0, r1
- ldr r2, [r3]
- mov r8, r0
- str r3, [sp, #4]
- str r2, [sp, #100]
- ldrh r2, [r4, #296]
- cmp r1, r2
- bhi .L1396
- ldrh r7, [r4, #308]
- mov r9, #0
- lsr r7, r0, r7
- lsl fp, r7, #2
-.L1389:
- cbnz r6, .L1394
-.L1387:
- ldr r3, [sp, #4]
- mov r0, r9
- ldr r2, [sp, #100]
- ldr r3, [r3]
+ adds r2, r0, r1
+ mov r3, sp
+ mov r7, r0
+ bic r10, r3, #8160
+ mov r5, r1
+ bic r10, r10, #31
+ ldrh r8, [r4, #308]
+ ldr r3, [r10, #24]
+ lsr r8, r0, r8
+ str r3, [sp, #100]
+ ldrh r3, [r4, #296]
cmp r2, r3
- beq .L1395
+ bhi .L1384
+ mov r9, #0
+.L1377:
+ cbnz r5, .L1382
+.L1375:
+ ldr r2, [sp, #100]
+ ldr r3, [r10, #24]
+ cmp r2, r3
+ beq .L1383
bl __stack_chk_fail
-.L1394:
+.L1382:
ldr r3, [r4, #3372]
- mov r0, r8
- ldr r2, [r3, fp]
+ mov r0, r7
+ ldr r2, [r3, r8, lsl #2]
ldrh r3, [r4, #258]
str r2, [sp, #12]
mov r1, r3
@@ -9386,64 +9647,61 @@
bl __aeabi_uidivmod
ldr r3, [sp, #8]
ldr r2, [sp, #12]
- str r1, [sp]
- subs r5, r3, r1
- uxth r5, r5
+ subs r6, r3, r1
+ ldr r0, [r4, #3308]
+ str r1, [sp, #4]
+ uxth r6, r6
cmp r6, r5
- it cc
- uxthcc r5, r6
- cbz r2, .L1391
- cmp r5, r3
- beq .L1391
- ldr r3, [r4, #3308]
- add r0, sp, #16
- str r2, [sp, #20]
+ it hi
+ uxthhi r6, r5
+ cbz r2, .L1379
+ cmp r3, r6
+ beq .L1379
+ strd r2, r0, [sp, #20]
movs r2, #1
+ add r0, sp, #16
mov r1, r2
- str r3, [sp, #24]
add r3, sp, #36
str r3, [sp, #28]
bl FlashReadPages
-.L1392:
- lsls r3, r5, #9
+.L1380:
+ lsls r3, r6, #9
ldr r0, [r4, #3308]
- mov r1, r10
mov r2, r3
str r3, [sp, #8]
- ldr r3, [sp]
- subs r6, r6, r5
- add r8, r8, r5
- add fp, fp, #4
+ ldr r3, [sp, #4]
+ mov r1, fp
+ subs r5, r5, r6
+ add r7, r7, r6
add r0, r0, r3, lsl #9
bl ftl_memcpy
- mov r1, r7
+ mov r1, r8
ldr r2, [r4, #3308]
- ldr r0, .L1400+8
- adds r7, r7, #1
+ add r8, r8, #1
+ ldr r0, .L1388+4
bl FtlMapWritePage
ldr r3, [sp, #8]
adds r0, r0, #1
+ add fp, fp, r3
it eq
moveq r9, #-1
- add r10, r10, r3
- b .L1389
-.L1391:
+ b .L1377
+.L1379:
ldrh r2, [r4, #310]
movs r1, #0
- ldr r0, [r4, #3308]
bl ftl_memset
- b .L1392
-.L1396:
+ b .L1380
+.L1384:
mov r9, #-1
- b .L1387
-.L1395:
+ b .L1375
+.L1383:
+ mov r0, r9
add sp, sp, #108
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L1401:
+.L1389:
.align 2
-.L1400:
- .word __stack_chk_guard
+.L1388:
.word .LANCHOR0
.word .LANCHOR0+3608
.fnend
@@ -9460,17 +9718,17 @@
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r2, .L1404
- ldr r3, .L1404+4
+ ldr r2, .L1392
+ ldr r3, .L1392+4
ldr r1, [r2, #2640]
cmp r1, r3
- bne .L1402
- ldr r3, .L1404+8
+ bne .L1390
+ ldr r3, .L1392+8
add r2, r2, #2640
- movs r1, #1
- movs r0, #0
str r3, [r2, #4]
+ movs r1, #1
ldr r3, [r2, #-60]
+ movs r0, #0
str r3, [r2, #88]
ldr r3, [r2, #-56]
str r3, [r2, #92]
@@ -9495,11 +9753,11 @@
ldr r3, [r2, #-24]
str r3, [r2, #48]
b FtlVendorPartWrite
-.L1402:
+.L1390:
bx lr
-.L1405:
+.L1393:
.align 2
-.L1404:
+.L1392:
.word .LANCHOR0
.word 1179929683
.word 1342177367
@@ -9516,30 +9774,29 @@
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- push {r3, lr}
- .save {r3, lr}
- ldr r3, .L1411
+ ldr r3, .L1399
+ push {r4, lr}
+ .save {r4, lr}
ldrh r2, [r3, #3652]
cmp r2, #31
- itett ls
+ itt ls
addls r2, r2, #1
- movhi r2, #32
strhls r2, [r3, #3652] @ movhi
- movls r2, #1
- cbnz r0, .L1408
- ldr r1, [r3, #3348]
- ldr r0, [r1, #20]
- ldr r1, [r1, #16]
- add r2, r2, r0
- cmp r1, r2
- bcc .L1409
-.L1408:
ldr r2, [r3, #3348]
+ ite ls
+ movls r1, #1
+ movhi r1, #32
+ ldr r4, [r2, #16]
+ cbnz r0, .L1396
+ ldr r0, [r2, #20]
+ add r1, r1, r0
+ cmp r1, r4
+ bhi .L1397
+.L1396:
+ ldr r1, .L1399+4
movs r0, #64
- ldr r1, [r2, #16]
- str r1, [r2, #20]
- ldr r1, .L1411+4
str r1, [r2]
+ str r4, [r2, #20]
ldrh r1, [r3, #3340]
ldr r2, [r3, #3348]
lsls r3, r1, #9
@@ -9551,12 +9808,12 @@
str r3, [r2, #4]
bl FtlVendorPartWrite
bl Ftl_save_ext_data
-.L1409:
+.L1397:
movs r0, #0
- pop {r3, pc}
-.L1412:
+ pop {r4, pc}
+.L1400:
.align 2
-.L1411:
+.L1399:
.word .LANCHOR0
.word 1112818501
.fnend
@@ -9577,6 +9834,10 @@
b FtlVendorPartWrite
.fnend
.size sftl_vendor_write, .-sftl_vendor_write
+ .section .rodata.str1.1
+.LC118:
+ .ascii "FtlVendorPartRead refresh = %x phyAddr = %x\012\000"
+ .text
.align 1
.global FtlVendorPartRead
.syntax unified
@@ -9588,116 +9849,118 @@
.fnstart
@ args = 0, pretend = 0, frame = 104
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L1425
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
- mov r10, r2
- ldr r4, .L1425+4
+ mov r9, r2
+ ldr r5, .L1413
.pad #108
sub sp, sp, #108
- mov r7, r1
- adds r1, r0, r1
- ldr r2, [r3]
+ adds r2, r0, r1
+ mov r3, sp
mov r8, r0
- str r3, [sp, #8]
- str r2, [sp, #100]
- ldrh r2, [r4, #296]
- cmp r1, r2
- bhi .L1424
- ldrh r6, [r4, #308]
- mov r9, #0
- lsr r6, r0, r6
- lsl fp, r6, #2
-.L1416:
- cbnz r7, .L1422
-.L1414:
- ldr r3, [sp, #8]
- mov r0, r9
- ldr r2, [sp, #100]
- ldr r3, [r3]
+ bic r3, r3, #8160
+ mov r6, r1
+ bic r3, r3, #31
+ ldrh r7, [r5, #308]
+ str r3, [sp, #4]
+ ldr r3, [r3, #24]
+ lsr r7, r0, r7
+ str r3, [sp, #100]
+ ldrh r3, [r5, #296]
cmp r2, r3
- beq .L1423
+ bhi .L1412
+ mov r10, #0
+.L1404:
+ cbnz r6, .L1410
+.L1402:
+ ldr r3, [sp, #4]
+ ldr r2, [sp, #100]
+ ldr r3, [r3, #24]
+ cmp r2, r3
+ beq .L1411
bl __stack_chk_fail
-.L1422:
- ldr r3, [r4, #3372]
+.L1410:
+ ldr r3, [r5, #3372]
mov r0, r8
- ldrh r5, [r4, #258]
- ldr r3, [r3, fp]
- mov r1, r5
+ ldrh r4, [r5, #258]
+ ldr r3, [r3, r7, lsl #2]
+ mov r1, r4
str r3, [sp, #12]
bl __aeabi_uidivmod
- subs r5, r5, r1
+ subs r4, r4, r1
ldr r3, [sp, #12]
- uxth r5, r5
- str r1, [sp, #4]
- cmp r7, r5
- it cc
- uxthcc r5, r7
- lsls r2, r5, #9
- str r2, [sp, #12]
- cbz r3, .L1418
- ldr r2, [r4, #3308]
+ str r1, [sp, #8]
+ uxth r4, r4
+ cmp r4, r6
+ it hi
+ uxthhi r4, r6
+ lsl fp, r4, #9
+ cbz r3, .L1406
+ ldr r2, [r5, #3308]
add r0, sp, #16
- str r3, [sp, #20]
- str r3, [sp, #12]
str r2, [sp, #24]
add r2, sp, #36
str r2, [sp, #28]
movs r2, #1
mov r1, r2
+ str r3, [sp, #20]
+ str r3, [sp, #12]
bl FlashReadPages
ldr r2, [sp, #16]
ldr r3, [sp, #12]
adds r2, r2, #1
- ldr r2, [r4, #3452]
+ ldr r2, [r5, #3452]
it eq
- moveq r9, #-1
+ moveq r10, #-1
cmp r2, #256
- bne .L1420
+ bne .L1408
+ ldr r0, .L1413+4
mov r2, r3
- mov r1, r6
- ldr r0, .L1425+8
+ mov r1, r7
bl sftl_printk
- ldr r2, [r4, #3308]
- mov r1, r6
- ldr r0, .L1425+12
+ ldr r2, [r5, #3308]
+ ldr r0, .L1413+8
+ mov r1, r7
bl FtlMapWritePage
-.L1420:
- ldr r1, [r4, #3308]
- lsls r2, r5, #9
- ldr r3, [sp, #4]
- mov r0, r10
+.L1408:
+ ldr r1, [r5, #3308]
+ mov r2, fp
+ ldr r3, [sp, #8]
+ mov r0, r9
add r1, r1, r3, lsl #9
bl ftl_memcpy
-.L1421:
- adds r6, r6, #1
- subs r7, r7, r5
- add r8, r8, r5
- add r10, r10, r5, lsl #9
- add fp, fp, #4
- b .L1416
-.L1418:
- lsls r2, r5, #9
+.L1409:
+ adds r7, r7, #1
+ subs r6, r6, r4
+ add r8, r8, r4
+ add r9, r9, fp
+ b .L1404
+.L1406:
+ mov r2, fp
mov r1, r3
- mov r0, r10
+ mov r0, r9
bl ftl_memset
- b .L1421
-.L1424:
- mov r9, #-1
- b .L1414
-.L1423:
+ b .L1409
+.L1412:
+ mov r10, #-1
+ b .L1402
+.L1411:
+ mov r0, r10
add sp, sp, #108
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L1426:
+.L1414:
.align 2
-.L1425:
- .word __stack_chk_guard
+.L1413:
.word .LANCHOR0
.word .LC118
.word .LANCHOR0+3608
.fnend
.size FtlVendorPartRead, .-FtlVendorPartRead
+ .section .rodata.str1.1
+.LC119:
+ .ascii "no ect\000"
+ .text
.align 1
.global FtlLoadEctTbl
.syntax unified
@@ -9712,29 +9975,29 @@
push {r4, lr}
.save {r4, lr}
movs r0, #64
- ldr r4, .L1429
+ ldr r4, .L1417
ldr r2, [r4, #3348]
ldrh r1, [r4, #3340]
bl FtlVendorPartRead
ldr r3, [r4, #3348]
ldr r2, [r3]
- ldr r3, .L1429+4
+ ldr r3, .L1417+4
cmp r2, r3
- beq .L1428
- ldr r1, .L1429+8
- ldr r0, .L1429+12
+ beq .L1416
+ ldr r1, .L1417+8
+ ldr r0, .L1417+12
bl sftl_printk
ldrh r2, [r4, #3340]
- movs r1, #0
ldr r0, [r4, #3348]
+ movs r1, #0
lsls r2, r2, #9
bl ftl_memset
-.L1428:
+.L1416:
movs r0, #0
pop {r4, pc}
-.L1430:
+.L1418:
.align 2
-.L1429:
+.L1417:
.word .LANCHOR0
.word 1112818501
.word .LC119
@@ -9755,59 +10018,54 @@
push {r3, r4, r5, lr}
.save {r3, r4, r5, lr}
movs r1, #1
- ldr r4, .L1434
+ ldr r4, .L1421
movs r0, #0
- ldr r5, .L1434+4
+ ldr r5, .L1421+4
add r2, r4, #2640
bl FtlVendorPartRead
ldr r3, [r4, #2640]
cmp r3, r5
- beq .L1432
+ beq .L1420
+ add r0, r4, #2640
mov r2, #512
movs r1, #0
- add r0, r4, #2640
bl ftl_memset
str r5, [r4, #2640]
-.L1432:
- ldr r3, [r4, #2640]
- cmp r3, r5
- bne .L1433
+.L1420:
ldr r3, [r4, #2728]
+ ldr r2, [r4, #2672]
str r3, [r4, #2580]
ldr r3, [r4, #2732]
str r3, [r4, #2584]
+ str r2, [r4, #2608]
ldr r3, [r4, #2648]
+ ldr r2, [r4, #2676]
str r3, [r4, #2576]
+ str r2, [r4, #2560]
ldr r3, [r4, #2652]
+ ldr r2, [r4, #2680]
str r3, [r4, #2564]
+ str r2, [r4, #2568]
ldr r3, [r4, #2656]
+ ldr r2, [r4, #2684]
str r3, [r4, #2556]
+ str r2, [r4, #2612]
ldr r3, [r4, #2660]
+ ldr r2, [r4, #2688]
str r3, [r4, #2572]
+ str r2, [r4, #2616]
ldr r3, [r4, #2668]
- str r3, [r4, #2600]
- ldr r3, [r4, #2672]
- str r3, [r4, #2608]
- ldr r3, [r4, #2676]
- str r3, [r4, #2560]
- ldr r3, [r4, #2680]
- str r3, [r4, #2568]
- ldr r3, [r4, #2684]
- str r3, [r4, #2612]
- ldr r3, [r4, #2688]
- str r3, [r4, #2616]
-.L1433:
ldrh r2, [r4, #292]
- ldr r3, [r4, #2600]
ldr r0, [r4, #2596]
ldrh r1, [r4, #240]
+ str r3, [r4, #2600]
mla r0, r0, r2, r3
bl __aeabi_uidiv
str r0, [r4, #2604]
pop {r3, r4, r5, pc}
-.L1435:
+.L1422:
.align 2
-.L1434:
+.L1421:
.word .LANCHOR0
.word 1179929683
.fnend
@@ -9841,46 +10099,50 @@
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
- mov r6, r0
+ mov r5, r0
ldr r3, [r0, #36]
- cbz r3, .L1437
- ldrh r5, [r0, #6]
- movs r3, #0
- ldr r4, .L1441
- ldr r2, [r0, #24]
- str r3, [r0, #36]
- subs r5, r5, #1
+ cbz r3, .L1424
+ ldrh r6, [r0, #6]
+ movs r2, #0
+ ldr r4, .L1428
+ subs r6, r6, #1
+ str r2, [r0, #36]
+ ldr r3, [r0, #24]
+ uxth r6, r6
ldr r0, [r4, #3304]
- uxth r5, r5
- ldr r1, [r4, #3332]
+ ldr r2, [r4, #3332]
str r0, [r4, #3460]
- str r1, [r4, #3464]
- ldr r2, [r2, r5, lsl #2]
- str r2, [r4, #3456]
- cbz r2, .L1439
+ str r2, [r4, #3464]
+ ldr r3, [r3, r6, lsl #2]
+ str r3, [r4, #3456]
+ cbz r3, .L1426
movs r2, #1
addw r0, r4, #3452
mov r1, r2
bl FlashReadPages
-.L1440:
+.L1427:
ldr r2, [r4, #3460]
- mov r1, r5
- mov r0, r6
+ mov r1, r6
+ mov r0, r5
pop {r4, r5, r6, lr}
b FtlMapWritePage
-.L1439:
+.L1426:
ldrh r2, [r4, #310]
movs r1, #255
bl ftl_memset
- b .L1440
-.L1437:
+ b .L1427
+.L1424:
pop {r4, r5, r6, pc}
-.L1442:
+.L1429:
.align 2
-.L1441:
+.L1428:
.word .LANCHOR0
.fnend
.size FtlMapBlkWriteDump_data, .-FtlMapBlkWriteDump_data
+ .section .rodata.str1.1
+.LC120:
+ .ascii "FtlVpcTblFlush error = %x error count = %d\012\000"
+ .text
.align 1
.global FtlVpcTblFlush
.syntax unified
@@ -9895,42 +10157,41 @@
push {r4, r5, r6, r7, r8, r9, r10, lr}
.save {r4, r5, r6, r7, r8, r9, r10, lr}
movs r5, #0
- ldr r4, .L1458
+ ldr r4, .L1446
movs r1, #255
- movw r7, #65535
- ldr r9, .L1458+16
- ldr r3, [r4, #3300]
+ ldr r9, .L1446+4
+ ldr r10, .L1446+8
addw r8, r4, #3452
+ movw r7, #65535
ldr r6, [r4, #3332]
- ldr r10, .L1458+20
+ ldr r3, [r4, #3300]
str r3, [r4, #3460]
ldrh r3, [r4, #2624]
str r6, [r4, #3464]
- str r5, [r6, #12]
strh r3, [r6, #2] @ movhi
movw r3, #61604
strh r3, [r6] @ movhi
ldr r3, [r4, #2632]
- str r5, [r6, #8]
- ldrh r2, [r4, #26]
str r3, [r6, #4]
- ldr r3, .L1458+4
+ ldr r3, .L1446+12
str r3, [r4, #2468]
- ldr r3, .L1458+8
+ ldr r3, .L1446+16
str r3, [r4, #2472]
ldrh r3, [r4, #2630]
+ strd r5, r5, [r6, #8]
strh r3, [r4, #2476] @ movhi
ldrh r3, [r4, #254]
strb r3, [r4, #2478]
ldrh r3, [r4, #24]
+ ldrh r2, [r4, #26]
strh r3, [r4, #2482] @ movhi
ldrb r3, [r4, #30] @ zero_extendqisi2
orr r3, r3, r2, lsl #6
- ldrh r2, [r4, #78]
strh r3, [r4, #2484] @ movhi
ldrb r3, [r4, #32] @ zero_extendqisi2
strb r3, [r4, #2479]
ldrh r3, [r4, #76]
+ ldrh r2, [r4, #78]
strh r3, [r4, #2486] @ movhi
ldrb r3, [r4, #82] @ zero_extendqisi2
orr r3, r3, r2, lsl #6
@@ -9938,24 +10199,24 @@
ldrb r3, [r4, #84] @ zero_extendqisi2
strb r3, [r4, #2480]
ldrh r3, [r4, #124]
- ldrh r2, [r4, #126]
- ldr r0, [r4, #3460]
strh r3, [r4, #2490] @ movhi
+ ldrh r2, [r4, #126]
ldrb r3, [r4, #130] @ zero_extendqisi2
+ ldr r0, [r4, #3460]
orr r3, r3, r2, lsl #6
- ldrh r2, [r4, #310]
strh r3, [r4, #2492] @ movhi
ldrb r3, [r4, #132] @ zero_extendqisi2
strb r3, [r4, #2481]
ldr r3, [r4, #2596]
str r3, [r4, #2500]
ldr r3, [r4, #2588]
+ ldrh r2, [r4, #310]
str r3, [r4, #2508]
ldr r3, [r4, #2592]
str r3, [r4, #2504]
bl ftl_memset
- movs r2, #48
addw r1, r4, #2468
+ movs r2, #48
ldr r0, [r4, #3460]
bl ftl_memcpy
ldrh r2, [r4, #240]
@@ -9966,10 +10227,10 @@
bl ftl_memcpy
mov r0, r5
bl FtlUpdateVaildLpn
-.L1444:
- ldr r3, [r4, #3300]
+.L1431:
ldrh r1, [r4, #2626]
ldrh r2, [r4, #2624]
+ ldr r3, [r4, #3300]
str r3, [r4, #3460]
ldr r3, [r4, #3332]
str r3, [r4, #3464]
@@ -9978,22 +10239,22 @@
ldrh r3, [r4, #304]
subs r3, r3, #1
cmp r1, r3
- blt .L1445
+ blt .L1432
movs r3, #0
ldrh r7, [r4, #2628]
strh r3, [r4, #2626] @ movhi
strh r2, [r4, #2628] @ movhi
bl FtlFreeSysBlkQueueOut
ldr r3, [r4, #2588]
- strh r0, [r4, #2624] @ movhi
- adds r2, r3, #1
str r3, [r4, #2632]
+ adds r2, r3, #1
+ strh r0, [r4, #2624] @ movhi
str r2, [r4, #2588]
lsls r2, r0, #10
str r2, [r4, #3456]
str r3, [r6, #4]
strh r0, [r6, #2] @ movhi
-.L1445:
+.L1432:
ldrh r1, [r4, #310]
ldr r0, [r4, #3300]
bl js_hash
@@ -10006,56 +10267,56 @@
ldrh r3, [r4, #2626]
ldr r2, [r4, #3452]
adds r3, r3, #1
- uxth r3, r3
adds r1, r2, #1
+ uxth r3, r3
strh r3, [r4, #2626] @ movhi
- bne .L1446
+ bne .L1433
cmp r3, #1
- bne .L1447
- movw r2, #1145
+ bne .L1435
mov r1, r9
mov r0, r10
+ movw r2, #1145
bl sftl_printk
-.L1447:
ldrh r3, [r4, #2626]
- adds r5, r5, #1
- uxth r5, r5
cmp r3, #1
ittt eq
ldrheq r3, [r4, #304]
addeq r3, r3, #-1
strheq r3, [r4, #2626] @ movhi
+.L1435:
+ adds r5, r5, #1
+ uxth r5, r5
cmp r5, #3
- bls .L1444
- mov r2, r5
+ bls .L1431
ldr r1, [r4, #3456]
- ldr r0, .L1458+12
+ mov r2, r5
+ ldr r0, .L1446+20
bl sftl_printk
-.L1450:
- b .L1450
-.L1446:
+.L1438:
+ b .L1438
+.L1433:
cmp r3, #1
- beq .L1444
+ beq .L1431
cmp r2, #256
- beq .L1444
+ beq .L1431
movw r3, #65535
cmp r7, r3
- beq .L1451
- movs r1, #1
+ beq .L1439
mov r0, r7
+ movs r1, #1
bl FtlFreeSysBlkQueueIn
-.L1451:
+.L1439:
movs r0, #0
pop {r4, r5, r6, r7, r8, r9, r10, pc}
-.L1459:
+.L1447:
.align 2
-.L1458:
+.L1446:
.word .LANCHOR0
+ .word .LANCHOR1+471
+ .word .LC8
.word 1179929683
.word 1342177367
.word .LC120
- .word .LANCHOR1+471
- .word .LC8
.fnend
.size FtlVpcTblFlush, .-FtlVpcTblFlush
.align 1
@@ -10092,17 +10353,17 @@
@ frame_needed = 0, uses_anonymous_args = 0
push {r3, lr}
.save {r3, lr}
- ldr r3, .L1463
+ ldr r3, .L1451
ldr r3, [r3]
cmp r3, #1
- bne .L1462
+ bne .L1450
bl FtlSysFlush
-.L1462:
+.L1450:
movs r0, #0
pop {r3, pc}
-.L1464:
+.L1452:
.align 2
-.L1463:
+.L1451:
.word .LANCHOR2
.fnend
.size sftl_deinit, .-sftl_deinit
@@ -10119,104 +10380,109 @@
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, lr}
.save {r4, r5, r6, r7, r8, r9, lr}
+ mov r6, r0
+ ldr r5, .L1471
.pad #20
sub sp, sp, #20
- ldr r7, .L1483
- mov r8, r0
- mov r5, r1
- ldr r4, .L1483+4
- ldr r3, [r7]
+ mov r4, r1
+ mov r3, sp
+ bic r9, r3, #8160
+ bic r9, r9, #31
+ ldr r3, [r9, #24]
str r3, [sp, #12]
- ldr r3, [r4, #340]
+ ldr r3, [r5, #340]
cmp r3, r0
- bls .L1476
+ bls .L1464
cmp r3, r1
- bcc .L1476
+ bcc .L1464
adds r2, r0, r1
cmp r3, r2
- bcc .L1476
+ bcc .L1464
cmp r1, #31
- bhi .L1467
-.L1472:
+ bhi .L1455
+.L1460:
movs r0, #0
-.L1465:
+.L1453:
ldr r2, [sp, #12]
- ldr r3, [r7]
+ ldr r3, [r9, #24]
cmp r2, r3
- beq .L1473
+ beq .L1461
bl __stack_chk_fail
-.L1467:
- ldrh r6, [r4, #258]
- mov r1, r6
+.L1455:
+ ldrh r8, [r5, #258]
+ mov r1, r8
bl __aeabi_uidiv
- smulbb r3, r0, r6
- mov r9, r0
- sub r8, r8, r3
- uxth r3, r8
- cbz r3, .L1468
- subs r6, r6, r3
- add r9, r0, #1
- cmp r6, r5
- it cs
- movcs r6, r5
+ mov r7, r0
+ smulbb r0, r0, r8
+ subs r6, r6, r0
uxth r6, r6
- subs r5, r5, r6
-.L1468:
+ cbz r6, .L1456
+ sub r8, r8, r6
+ adds r7, r7, #1
+ cmp r8, r4
+ it cs
+ movcs r8, r4
+ uxth r8, r8
+ sub r4, r4, r8
+.L1456:
mov r3, #-1
str r3, [sp, #8]
-.L1469:
- ldrh r3, [r4, #258]
- cmp r5, r3
- bcs .L1471
- ldr r3, [r4, #3656]
+.L1457:
+ ldrh r3, [r5, #258]
+ cmp r3, r4
+ bls .L1459
+ ldr r3, [r5, #3656]
cmp r3, #32
- bls .L1472
- movs r5, #0
- str r5, [r4, #3656]
+ bls .L1460
+ movs r4, #0
+ str r4, [r5, #3656]
bl l2p_flush
bl FtlVpcTblFlush
- b .L1472
-.L1471:
- movs r2, #0
+ b .L1460
+.L1459:
add r1, sp, #4
- mov r0, r9
+ mov r0, r7
+ movs r2, #0
bl log2phys
ldr r3, [sp, #4]
adds r3, r3, #1
- beq .L1470
- ldr r3, [r4, #3656]
- movs r2, #1
+ beq .L1458
+ ldr r3, [r5, #3656]
add r1, sp, #8
- mov r0, r9
+ movs r2, #1
+ mov r0, r7
adds r3, r3, #1
- str r3, [r4, #3656]
- ldr r3, [r4, #2560]
+ str r3, [r5, #3656]
+ ldr r3, [r5, #2560]
adds r3, r3, #1
- str r3, [r4, #2560]
+ str r3, [r5, #2560]
bl log2phys
ldr r0, [sp, #4]
ubfx r0, r0, #10, #16
bl P2V_block_in_plane
bl decrement_vpc_count
-.L1470:
- ldrh r3, [r4, #258]
- add r9, r9, #1
- subs r5, r5, r3
- b .L1469
-.L1476:
+.L1458:
+ ldrh r3, [r5, #258]
+ adds r7, r7, #1
+ subs r4, r4, r3
+ b .L1457
+.L1464:
mov r0, #-1
- b .L1465
-.L1473:
+ b .L1453
+.L1461:
add sp, sp, #20
@ sp needed
pop {r4, r5, r6, r7, r8, r9, pc}
-.L1484:
+.L1472:
.align 2
-.L1483:
- .word __stack_chk_guard
+.L1471:
.word .LANCHOR0
.fnend
.size sftl_discard, .-sftl_discard
+ .section .rodata.str1.1
+.LC121:
+ .ascii "FtlCheckVpc %x = %x %x\012\000"
+ .text
.align 1
.global FtlVpcCheckAndModify
.syntax unified
@@ -10232,11 +10498,13 @@
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.pad #12
movs r5, #0
- ldr r7, .L1500
- ldr r4, .L1500+4
- ldr r3, [r7]
- ldr r1, .L1500+8
- ldr r0, .L1500+12
+ ldr r4, .L1488
+ mov r3, sp
+ ldr r1, .L1488+4
+ bic r7, r3, #8160
+ ldr r0, .L1488+8
+ bic r7, r7, #31
+ ldr r3, [r7, #24]
str r3, [sp, #4]
bl sftl_printk
ldrh r2, [r4, #242]
@@ -10244,111 +10512,107 @@
ldr r0, [r4, #3352]
lsls r2, r2, #1
bl ftl_memset
-.L1486:
+.L1474:
ldr r3, [r4, #2552]
- cmp r5, r3
- bcc .L1488
- ldr r9, .L1500+20
+ cmp r3, r5
+ bhi .L1476
+ ldr r9, .L1488+12
mov r8, #0
- ldr r10, .L1500+24
- ldr fp, .L1500+8
-.L1489:
+ ldr r10, .L1488+16
+ ldr fp, .L1488+4
+.L1477:
ldrh r3, [r4, #240]
- uxth r6, r8
- cmp r3, r6
- bhi .L1495
+ uxth r5, r8
+ cmp r3, r5
+ bhi .L1483
bl l2p_flush
bl FtlVpcTblFlush
ldr r2, [sp, #4]
- ldr r3, [r7]
+ ldr r3, [r7, #24]
cmp r2, r3
- beq .L1496
+ beq .L1484
bl __stack_chk_fail
-.L1488:
- movs r2, #0
+.L1476:
mov r1, sp
mov r0, r5
+ movs r2, #0
bl log2phys
ldr r0, [sp]
adds r3, r0, #1
- beq .L1487
+ beq .L1475
ubfx r0, r0, #10, #16
bl P2V_block_in_plane
ldr r2, [r4, #3352]
ldrh r3, [r2, r0, lsl #1]
adds r3, r3, #1
strh r3, [r2, r0, lsl #1] @ movhi
-.L1487:
+.L1475:
adds r5, r5, #1
- b .L1486
-.L1495:
+ b .L1474
+.L1483:
ldr r3, [r4, #72]
- uxth r5, r8
- ldrh r2, [r3, r5, lsl #1]
+ uxth r6, r8
+ ldrh r2, [r3, r6, lsl #1]
ldr r3, [r4, #3352]
- ldrh r3, [r3, r5, lsl #1]
+ ldrh r3, [r3, r6, lsl #1]
cmp r2, r3
- beq .L1491
+ beq .L1479
movw r1, #65535
cmp r2, r1
- beq .L1491
- mov r1, r5
+ beq .L1479
+ mov r1, r6
mov r0, r9
bl sftl_printk
ldrh r3, [r4, #24]
- cmp r3, r6
- beq .L1491
+ cmp r3, r5
+ beq .L1479
ldrh r3, [r4, #124]
- cmp r3, r6
- beq .L1491
+ cmp r3, r5
+ beq .L1479
ldrh r3, [r4, #76]
- cmp r3, r6
- beq .L1491
+ cmp r3, r5
+ beq .L1479
ldr r3, [r4, #72]
- ldrh r2, [r3, r5, lsl #1]
- cbnz r2, .L1493
ldr r2, [r4, #3352]
- mov r1, r6
+ ldrh r1, [r3, r6, lsl #1]
+ ldrh r2, [r2, r6, lsl #1]
+ strh r2, [r3, r6, lsl #1] @ movhi
+ cbnz r1, .L1481
+ mov r1, r5
mov r0, r10
- ldrh r2, [r2, r5, lsl #1]
- strh r2, [r3, r5, lsl #1] @ movhi
bl List_remove_node
ldrh r3, [r4, #224]
- cbnz r3, .L1494
- movw r2, #2330
+ cbnz r3, .L1482
+ ldr r0, .L1488+20
mov r1, fp
- ldr r0, .L1500+16
+ movw r2, #2330
bl sftl_printk
-.L1494:
+.L1482:
ldrh r3, [r4, #224]
- mov r0, r6
+ mov r0, r5
subs r3, r3, #1
strh r3, [r4, #224] @ movhi
bl INSERT_DATA_LIST
-.L1491:
+.L1479:
add r8, r8, #1
- b .L1489
-.L1493:
- ldr r2, [r4, #3352]
- mov r0, r6
- ldrh r2, [r2, r5, lsl #1]
- strh r2, [r3, r5, lsl #1] @ movhi
+ b .L1477
+.L1481:
+ mov r0, r5
bl update_vpc_list
- b .L1491
-.L1496:
+ b .L1479
+.L1484:
add sp, sp, #12
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L1501:
+.L1489:
.align 2
-.L1500:
- .word __stack_chk_guard
+.L1488:
.word .LANCHOR0
.word .LANCHOR1+486
.word .LC111
- .word .LC8
.word .LC121
.word .LANCHOR0+2532
+ .word .LC8
.fnend
.size FtlVpcCheckAndModify, .-FtlVpcCheckAndModify
.align 1
@@ -10364,44 +10628,44 @@
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
- mov r6, r0
- ldr r4, .L1512
- ldrh r5, [r0]
- ldrh r3, [r4, #240]
- cmp r3, r5
- bcs .L1503
+ mov r5, r0
+ ldr r6, .L1500
+ ldrh r4, [r0]
+ ldrh r3, [r6, #240]
+ cmp r3, r4
+ bcs .L1491
+ ldr r1, .L1500+4
movw r2, #2766
- ldr r1, .L1512+4
- ldr r0, .L1512+8
+ ldr r0, .L1500+8
bl sftl_printk
-.L1503:
+.L1491:
movw r3, #65535
- cmp r5, r3
- beq .L1504
- ldr r3, [r4, #72]
- mov r0, r5
- ldrh r3, [r3, r5, lsl #1]
- cbz r3, .L1505
+ cmp r4, r3
+ beq .L1492
+ ldr r3, [r6, #72]
+ mov r0, r4
+ ldrh r3, [r3, r4, lsl #1]
+ cbz r3, .L1493
bl INSERT_DATA_LIST
-.L1504:
- ldrh r0, [r4, #3438]
+.L1492:
+ ldrh r0, [r6, #3438]
movs r3, #1
- strb r3, [r6, #8]
+ strb r3, [r5, #8]
movw r3, #65535
cmp r0, r3
- beq .L1506
- cmp r5, r0
- bne .L1507
- ldr r3, [r4, #72]
- ldrh r3, [r3, r0, lsl #1]
- cbz r3, .L1508
-.L1507:
+ beq .L1494
+ cmp r0, r4
+ bne .L1495
+ ldr r3, [r6, #72]
+ ldrh r3, [r3, r4, lsl #1]
+ cbz r3, .L1496
+.L1495:
bl update_vpc_list
-.L1508:
+.L1496:
movw r3, #65535
- strh r3, [r4, #3438] @ movhi
-.L1506:
- mov r0, r6
+ strh r3, [r6, #3438] @ movhi
+.L1494:
+ mov r0, r5
bl allocate_data_superblock
bl l2p_flush
movs r0, #0
@@ -10409,17 +10673,23 @@
bl FtlVpcTblFlush
movs r0, #0
pop {r4, r5, r6, pc}
-.L1505:
+.L1493:
bl INSERT_FREE_LIST
- b .L1504
-.L1513:
+ b .L1492
+.L1501:
.align 2
-.L1512:
+.L1500:
.word .LANCHOR0
.word .LANCHOR1+507
.word .LC8
.fnend
.size allocate_new_data_superblock, .-allocate_new_data_superblock
+ .section .rodata.str1.1
+.LC122:
+ .ascii "FtlProgPages error %x = %d\012\000"
+.LC123:
+ .ascii "Ftlwrite decrement_vpc_count %x = %d\012\000"
+ .text
.align 1
.global FtlProgPages
.syntax unified
@@ -10429,43 +10699,44 @@
.type FtlProgPages, %function
FtlProgPages:
.fnstart
- @ args = 0, pretend = 0, frame = 16
+ @ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
- push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+ push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+ .pad #12
mov r5, r3
- ldr r6, .L1534
- .pad #20
- sub sp, sp, #20
- movs r7, #0
+ ldr fp, .L1522
+ mov r3, sp
+ ldr r10, .L1522+4
+ bic r7, r3, #8160
+ mov r9, #0
+ bic r7, r7, #31
movs r2, #0
- ldr fp, .L1534+20
mov r4, r0
- ldr r3, [r6]
- mov r10, r1
- ldr r9, .L1534+4
- str r3, [sp, #12]
+ mov r8, r1
+ ldr r3, [r7, #24]
+ str r3, [sp, #4]
ldrb r3, [r5, #9] @ zero_extendqisi2
bl FlashProgPages
-.L1515:
- cmp r7, r10
- bne .L1522
- ldr r3, .L1534+4
+.L1503:
+ cmp r9, r8
+ bne .L1510
+ ldr r3, .L1522+4
ldrb r2, [r5, #6] @ zero_extendqisi2
ldrh r3, [r3, #232]
cmp r2, r3
- bcc .L1514
+ bcc .L1502
+ ldr r1, .L1522+8
mov r2, #1000
- ldr r1, .L1534+8
- ldr r0, .L1534+12
+ ldr r0, .L1522+12
bl sftl_printk
-.L1514:
- ldr r2, [sp, #12]
- ldr r3, [r6]
+.L1502:
+ ldr r2, [sp, #4]
+ ldr r3, [r7, #24]
cmp r2, r3
- beq .L1524
+ beq .L1512
bl __stack_chk_fail
-.L1517:
+.L1505:
ldr r1, [r4, #4]
mov r0, fp
bl sftl_printk
@@ -10474,75 +10745,72 @@
bl P2V_block_in_plane
bl decrement_vpc_count
ldrh r3, [r5, #4]
- cbnz r3, .L1516
+ cbnz r3, .L1504
mov r0, r5
bl allocate_new_data_superblock
-.L1516:
+.L1504:
mov r0, r5
bl get_new_active_ppa
- movs r2, #0
str r0, [r4, #4]
- str r0, [sp, #8]
- movs r1, #1
+ str r0, [sp]
+ movs r2, #0
ldrb r3, [r5, #9] @ zero_extendqisi2
mov r0, r4
+ movs r1, #1
bl FlashProgPages
-.L1522:
+.L1510:
ldr r2, [r4]
- adds r3, r2, #1
- beq .L1517
+ adds r1, r2, #1
+ beq .L1505
cmp r2, #256
- beq .L1517
+ beq .L1505
ldrb r2, [r5, #6] @ zero_extendqisi2
- ldrh r3, [r9, #232]
+ ldrh r3, [r10, #232]
cmp r2, r3
- bcc .L1518
+ bcc .L1506
+ ldr r1, .L1522+8
movw r2, #985
- ldr r1, .L1534+8
- ldr r0, .L1534+12
+ ldr r0, .L1522+12
bl sftl_printk
-.L1518:
+.L1506:
ldr r3, [r4, #4]
- add r1, sp, #16
- movs r2, #1
+ mov r1, sp
ldr r0, [r4, #16]
- str r3, [r1, #-8]!
+ movs r2, #1
+ str r3, [sp]
bl log2phys
ldr r3, [r4, #12]
- ldr r3, [r3, #12]
- ubfx r0, r3, #10, #16
- str r3, [sp, #4]
+ ldr r0, [r3, #12]
+ adds r3, r0, #1
+ beq .L1507
+ ubfx r0, r0, #10, #16
bl P2V_block_in_plane
- ldr r3, [sp, #4]
- mov r8, r0
- adds r3, r3, #1
- beq .L1519
- ldr r3, [r9, #72]
+ ldr r3, [r10, #72]
+ mov r6, r0
ldrh r2, [r3, r0, lsl #1]
- cbnz r2, .L1520
+ cbnz r2, .L1508
mov r1, r0
- ldr r0, .L1534+16
+ ldr r0, .L1522+16
bl sftl_printk
-.L1520:
- mov r0, r8
+.L1508:
+ mov r0, r6
bl decrement_vpc_count
-.L1519:
- adds r7, r7, #1
+.L1507:
+ add r9, r9, #1
adds r4, r4, #20
- b .L1515
-.L1524:
- add sp, sp, #20
+ b .L1503
+.L1512:
+ add sp, sp, #12
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L1535:
+.L1523:
.align 2
-.L1534:
- .word __stack_chk_guard
+.L1522:
+ .word .LC122
.word .LANCHOR0
.word .LANCHOR1+536
.word .LC8
.word .LC123
- .word .LC122
.fnend
.size FtlProgPages, .-FtlProgPages
.align 1
@@ -10559,93 +10827,95 @@
push {r0, r1, r4, r5, r6, r7, r8, r9, r10, lr}
.save {r4, r5, r6, r7, r8, r9, r10, lr}
.pad #8
- ldr r6, .L1561
- ldr r4, .L1561+4
- ldr r3, [r6]
+ ldr r4, .L1549
+ mov r3, sp
+ bic r6, r3, #8160
+ bic r6, r6, #31
ldrh r2, [r4, #124]
+ ldrh r1, [r4, #302]
+ ldr r3, [r6, #24]
str r3, [sp, #4]
movw r3, #65535
- ldrh r1, [r4, #302]
cmp r2, r3
- bne .L1537
-.L1544:
+ bne .L1525
+.L1532:
ldrh r2, [r4, #124]
movs r3, #0
str r3, [r4, #3444]
movw r3, #65535
cmp r2, r3
- bne .L1558
-.L1538:
+ bne .L1546
+.L1526:
movs r0, #0
-.L1536:
+.L1524:
ldr r2, [sp, #4]
- ldr r3, [r6]
- cmp r2, r3
- beq .L1553
- bl __stack_chk_fail
-.L1537:
- ldr r5, .L1561+8
- cbz r0, .L1540
- ldrh r2, [r5, #4]
+ ldr r3, [r6, #24]
cmp r2, r3
beq .L1541
-.L1542:
+ bl __stack_chk_fail
+.L1525:
+ ldr r5, .L1549+4
+ cbz r0, .L1528
+ ldrh r2, [r5, #4]
+ cmp r2, r3
+ beq .L1529
+.L1530:
movs r1, #2
-.L1540:
- ldr r0, .L1561+12
+.L1528:
+ ldr r0, .L1549+8
bl FtlGcScanTempBlk
ldrh r2, [r5, #4]
movw r3, #65535
str r0, [sp]
cmp r2, r3
- beq .L1544
+ beq .L1532
movs r0, #1
- b .L1536
-.L1541:
+ b .L1524
+.L1529:
movs r3, #0
strh r3, [r5, #4] @ movhi
ldrh r3, [r4, #224]
cmp r3, #17
- bhi .L1542
- b .L1540
-.L1558:
- ldrb r1, [r4, #131] @ zero_extendqisi2
- ldrh r3, [r4, #302]
+ bhi .L1530
+ b .L1528
+.L1546:
+ ldrb r3, [r4, #131] @ zero_extendqisi2
+ ldrh r1, [r4, #302]
ldrh r2, [r4, #3204]
muls r3, r1, r3
cmp r2, r3
- beq .L1545
+ beq .L1533
+ ldr r1, .L1549+12
movs r2, #164
- ldr r1, .L1561+16
- ldr r0, .L1561+20
+ ldr r0, .L1549+16
bl sftl_printk
-.L1545:
+.L1533:
ldrb r3, [r4, #131] @ zero_extendqisi2
movs r5, #0
ldrh r0, [r4, #302]
mov r9, #12
- ldr r2, [r4, #72]
ldrh r1, [r4, #124]
+ ldr r2, [r4, #72]
smulbb r3, r3, r0
strh r3, [r2, r1, lsl #1] @ movhi
ldr r2, [r4, #2576]
ldrh r3, [r4, #3204]
add r3, r3, r2
str r3, [r4, #2576]
-.L1546:
+.L1534:
ldrh r2, [r4, #3204]
uxth r3, r5
cmp r2, r3
- bhi .L1550
+ bhi .L1538
movw r0, #65535
bl decrement_vpc_count
ldrh r0, [r4, #124]
ldr r3, [r4, #72]
ldrh r3, [r3, r0, lsl #1]
cmp r3, #0
- beq .L1551
+ beq .L1539
bl INSERT_DATA_LIST
-.L1552:
+.L1540:
movw r7, #65535
movs r5, #0
strh r7, [r4, #124] @ movhi
@@ -10657,12 +10927,12 @@
ldrh r2, [r4, #224]
strh r7, [r4, #172] @ movhi
add r3, r3, r3, lsl #1
- cmp r2, r3, asr #2
- ble .L1538
+ cmp r2, r3, lsr #2
+ ble .L1526
movs r3, #20
strh r3, [r4, #3152] @ movhi
- b .L1538
-.L1550:
+ b .L1526
+.L1538:
uxth r8, r5
ldr r10, [r4, #3200]
ldr r3, [r4, #2552]
@@ -10670,47 +10940,46 @@
add r7, r10, r8
ldr r0, [r7, #8]
cmp r0, r3
- bcc .L1547
-.L1559:
- ldrh r0, [r4, #124]
- b .L1560
+ bcc .L1535
.L1547:
- movs r2, #0
+ ldrh r0, [r4, #124]
+ b .L1548
+.L1535:
mov r1, sp
+ movs r2, #0
bl log2phys
ldr r0, [r10, r8]
ldr r3, [sp]
cmp r0, r3
- bne .L1549
+ bne .L1537
ubfx r0, r0, #10, #16
bl P2V_block_in_plane
- movs r2, #1
- mov r8, r0
adds r1, r7, #4
+ mov r8, r0
+ movs r2, #1
ldr r0, [r7, #8]
bl log2phys
mov r0, r8
-.L1560:
+.L1548:
bl decrement_vpc_count
- b .L1548
-.L1549:
+ b .L1536
+.L1537:
ldr r2, [r7, #4]
cmp r3, r2
- bne .L1559
-.L1548:
+ bne .L1547
+.L1536:
adds r5, r5, #1
- b .L1546
-.L1551:
+ b .L1534
+.L1539:
bl INSERT_FREE_LIST
- b .L1552
-.L1553:
+ b .L1540
+.L1541:
add sp, sp, #8
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, pc}
-.L1562:
+.L1550:
.align 2
-.L1561:
- .word __stack_chk_guard
+.L1549:
.word .LANCHOR0
.word .LANCHOR2
.word .LANCHOR0+124
@@ -10731,25 +11000,25 @@
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, lr}
.save {r4, lr}
- ldr r4, .L1565
- ldrh r1, [r4, #302]
+ ldr r4, .L1553
add r0, r4, #124
+ ldrh r1, [r4, #302]
bl FtlGcScanTempBlk
ldrh r2, [r4, #126]
ldrh r3, [r4, #302]
cmp r2, r3
- bcc .L1563
+ bcc .L1551
add r0, r4, #3392
bl FtlMapBlkWriteDump_data
movs r0, #0
bl FtlGcFreeTempBlock
movs r3, #0
str r3, [r4, #3444]
-.L1563:
+.L1551:
pop {r4, pc}
-.L1566:
+.L1554:
.align 2
-.L1565:
+.L1553:
.word .LANCHOR0
.fnend
.size FtlGcPageRecovery, .-FtlGcPageRecovery
@@ -10767,11 +11036,11 @@
push {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
movs r5, #0
- ldr r4, .L1568
+ ldr r4, .L1556
add r6, r4, #24
- str r5, [r4, #3476]
- mov r0, r6
adds r4, r4, #76
+ mov r0, r6
+ str r5, [r4, #3400]
bl FtlRecoverySuperblock
mov r0, r6
bl FtlSlcSuperblockCheck
@@ -10784,9 +11053,9 @@
bl decrement_vpc_count
mov r0, r5
pop {r4, r5, r6, pc}
-.L1569:
+.L1557:
.align 2
-.L1568:
+.L1556:
.word .LANCHOR0
.fnend
.size FtlPowerLostRecovery, .-FtlPowerLostRecovery
@@ -10801,49 +11070,49 @@
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- push {r4, r5, r6, lr}
- .save {r4, r5, r6, lr}
- movs r3, #0
- ldr r4, .L1578
+ push {r3, r4, r5, r6, r7, lr}
+ .save {r3, r4, r5, r6, r7, lr}
movs r5, #0
+ ldr r4, .L1566
movs r6, #20
+ movs r3, #0
mov r2, r3
ldr r1, [r4, #3168]
ldr r0, [r4, #3292]
bl FlashProgPages
-.L1571:
+.L1559:
ldr r1, [r4, #3168]
uxth r3, r5
- cmp r1, r3
- bhi .L1574
- ldr r0, [r4, #3292]
+ ldr r2, [r4, #3292]
+ cmp r3, r1
+ bcc .L1562
+ mov r0, r2
bl FtlGcBufFree
ldrh r3, [r4, #128]
movs r0, #0
str r0, [r4, #3168]
- cbnz r3, .L1570
+ cbnz r3, .L1558
movs r0, #1
bl FtlGcFreeTempBlock
movs r0, #1
-.L1570:
- pop {r4, r5, r6, pc}
-.L1574:
+.L1558:
+ pop {r3, r4, r5, r6, r7, pc}
+.L1562:
muls r3, r6, r3
- ldr r2, [r4, #3292]
adds r5, r5, #1
adds r1, r2, r3
ldr r2, [r2, r3]
- ldr r0, [r1, #12]
- ldr r1, [r1, #4]
+ ldr r7, [r1, #12]
adds r3, r2, #1
+ ldr r1, [r1, #4]
+ ldr r0, [r7, #12]
it ne
- ldrne r2, [r0, #8]
- ldr r0, [r0, #12]
+ ldrne r2, [r7, #8]
bl FtlGcUpdatePage
- b .L1571
-.L1579:
+ b .L1559
+.L1567:
.align 2
-.L1578:
+.L1566:
.word .LANCHOR0
.fnend
.size Ftl_gc_temp_data_write_back, .-Ftl_gc_temp_data_write_back
@@ -10861,17 +11130,17 @@
push {r3, r4, r5, lr}
.save {r3, r4, r5, lr}
movw r3, #65535
- ldr r4, .L1583
+ ldr r4, .L1571
ldrh r2, [r4, #124]
cmp r2, r3
- beq .L1581
+ beq .L1569
ldrh r3, [r4, #128]
- cbnz r3, .L1582
-.L1581:
+ cbnz r3, .L1570
+.L1569:
movs r0, #0
movs r5, #0
bl FtlGcFreeTempBlock
- ldr r0, .L1583+4
+ ldr r0, .L1571+4
strb r5, [r4, #132]
bl allocate_data_superblock
strh r5, [r4, #3196] @ movhi
@@ -10880,17 +11149,21 @@
mov r0, r5
bl FtlEctTblFlush
bl FtlVpcTblFlush
-.L1582:
- ldr r0, .L1583+4
+.L1570:
pop {r3, r4, r5, lr}
+ ldr r0, .L1571+4
b get_new_active_ppa
-.L1584:
+.L1572:
.align 2
-.L1583:
+.L1571:
.word .LANCHOR0
.word .LANCHOR0+124
.fnend
.size Ftl_get_new_temp_ppa, .-Ftl_get_new_temp_ppa
+ .section .rodata.str1.1
+.LC124:
+ .ascii "SWL %x, FSB = %x vpc= %x,ec=%x th=%x\012\000"
+ .text
.align 1
.global rk_ftl_garbage_collect
.syntax unified
@@ -10900,291 +11173,276 @@
.type rk_ftl_garbage_collect, %function
rk_ftl_garbage_collect:
.fnstart
- @ args = 0, pretend = 0, frame = 40
+ @ args = 0, pretend = 0, frame = 32
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L1717
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
- .pad #52
- sub sp, sp, #52
- mov r9, r0
- ldr r3, [r3]
- str r3, [sp, #44]
- ldr r3, .L1717+4
- ldr r0, [r3, #3272]
- mov r4, r3
+ ldr r4, .L1687
+ .pad #44
+ sub sp, sp, #44
+ mov r3, sp
+ bic r3, r3, #8160
+ bic r3, r3, #31
+ str r0, [sp, #16]
+ ldr r0, [r4, #3272]
+ ldr r3, [r3, #24]
+ str r3, [sp, #36]
cmp r0, #0
- bne .L1669
- ldrh r2, [r3, #2528]
- cmp r2, #47
- bls .L1585
- ldr r2, .L1717+8
- ldrh r1, [r2, #4]
- movw r2, #65535
- cmp r1, r2
- bne .L1587
-.L1590:
+ bne .L1651
+ ldrh r3, [r4, #2528]
+ cmp r3, #47
+ bls .L1573
+ ldr r3, .L1687+4
+ ldrh r2, [r3, #4]
+ movw r3, #65535
+ cmp r2, r3
+ bne .L1575
+.L1578:
ldrh r2, [r4, #220]
movw r1, #65535
cmp r2, r1
- bne .L1588
-.L1589:
+ bne .L1576
+.L1577:
bl FtlReadRefresh
ldr r3, [r4, #3156]
- movw r7, #65535
- ldrh r1, [r4, #172]
+ ldr r2, [sp, #16]
adds r3, r3, #1
- add r3, r3, r9, lsl #7
- cmp r1, r7
- str r3, [r4, #3156]
- bne .L1591
+ ldrh r6, [r4, #172]
+ add r3, r3, r2, lsl #7
ldrh r2, [r4, #124]
- cmp r2, r1
- bne .L1592
- ldrh r6, [r4, #222]
+ str r3, [r4, #3156]
+ ands r6, r6, r2
+ ldrh r2, [r4, #222]
+ ands r6, r6, r2
+ movw r2, #65535
cmp r6, r2
- bne .L1593
+ bne .L1579
ldrh r2, [r4, #224]
cmp r2, #24
ite cc
movcc r2, #5120
movcs r2, #1024
cmp r3, r2
- bls .L1593
- movs r5, #0
- str r5, [r4, #3156]
- strh r5, [r4, #3660] @ movhi
+ bls .L1579
+ movs r7, #0
+ str r7, [r4, #3156]
+ strh r7, [r4, #3660] @ movhi
bl GetSwlReplaceBlock
+ mov r5, r0
cmp r0, r6
- mov r7, r0
- bne .L1673
+ bne .L1581
ldrh r2, [r4, #224]
ldrh r3, [r4, #3154]
cmp r2, r3
- bcs .L1596
+ bcs .L1582
movs r0, #64
bl List_get_gc_head_node
uxth r3, r0
- cmp r3, r7
- beq .L1598
+ cmp r3, r5
+ beq .L1584
mov r0, r3
ldr r3, [r4, #72]
ldrh r3, [r3, r0, lsl #1]
cmp r3, #7
- bhi .L1599
- mov r0, r5
+ bhi .L1585
+ mov r0, r7
bl List_get_gc_head_node
- uxth r5, r0
+ uxth r0, r0
movs r3, #128
+ cmp r0, r5
strh r3, [r4, #3154] @ movhi
- cmp r5, r7
- bne .L1595
-.L1598:
- bl FtlGcReFreshBadBlk
- cmp r9, #0
- bne .L1601
- movw r3, #65535
- cmp r7, r3
- bne .L1601
-.L1666:
- ldrh r3, [r4, #224]
- cmp r3, #24
- bhi .L1674
- cmp r3, #16
- ldrh r6, [r4, #302]
- bls .L1603
- lsrs r6, r6, #5
-.L1602:
+ beq .L1584
+ mov r5, r0
+.L1581:
+ ldr r3, [r4, #72]
+ mov r1, r5
ldrh r2, [r4, #3152]
+ ldr r0, .L1687+8
+ ldrh r3, [r3, r5, lsl #1]
+ str r2, [sp, #4]
+ ldr r2, [r4, #2536]
+ ldrh r2, [r2, r5, lsl #1]
+ str r2, [sp]
+ ldrh r2, [r4, #224]
+ bl sftl_printk
+ b .L1584
+.L1575:
+ ldrh r2, [r4, #124]
cmp r2, r3
- bcs .L1606
- ldrh r3, [r4, #124]
- movw r2, #65535
- cmp r3, r2
- bne .L1607
- ldrh r2, [r4, #222]
- cmp r2, r3
- bne .L1607
- ldrh r0, [r4, #3660]
- cbnz r0, .L1608
- ldr r3, [r4, #2552]
- ldr r2, [r4, #2548]
- add r3, r3, r3, lsl #1
- cmp r2, r3, lsr #2
- bcs .L1609
-.L1608:
- ldrh r3, [r4, #2620]
- add r3, r3, r3, lsl #1
- asrs r3, r3, #2
-.L1713:
- strh r3, [r4, #3152] @ movhi
- movs r3, #0
- str r3, [r4, #3164]
-.L1585:
- ldr r3, .L1717
- ldr r2, [sp, #44]
- ldr r3, [r3]
- cmp r2, r3
- beq .L1668
- bl __stack_chk_fail
-.L1587:
- ldrh r3, [r3, #124]
- cmp r3, r2
- beq .L1590
+ beq .L1578
movs r0, #1
bl FtlGcFreeTempBlock
cmp r0, #0
- beq .L1590
+ beq .L1578
movs r0, #1
- b .L1585
-.L1588:
+ b .L1573
+.L1576:
ldrh r3, [r4, #222]
cmp r3, r1
itt eq
strheq r2, [r4, #222] @ movhi
strheq r3, [r4, #220] @ movhi
- b .L1589
-.L1599:
+ b .L1577
+.L1585:
movs r3, #64
-.L1712:
+.L1683:
strh r3, [r4, #3154] @ movhi
- b .L1598
-.L1596:
+.L1584:
+ bl FtlGcReFreshBadBlk
+ ldr r3, [sp, #16]
+ cmp r3, #0
+ bne .L1587
+ movw r3, #65535
+ cmp r5, r3
+ bne .L1587
+.L1649:
+ ldrh r3, [r4, #224]
+ cmp r3, #24
+ bhi .L1656
+ ldrh r6, [r4, #302]
+ cmp r3, #16
+ bls .L1589
+ lsrs r6, r6, #5
+.L1588:
+ ldrh r2, [r4, #3152]
+ cmp r2, r3
+ bcs .L1591
+ ldrh r2, [r4, #222]
+ ldrh r3, [r4, #124]
+ ands r3, r3, r2
+ movw r2, #65535
+ cmp r3, r2
+ bne .L1592
+ ldrh r0, [r4, #3660]
+ cbnz r0, .L1593
+ ldr r3, [r4, #2552]
+ ldr r2, [r4, #2548]
+ add r3, r3, r3, lsl #1
+ cmp r2, r3, lsr #2
+ bcs .L1657
+.L1593:
+ ldrh r3, [r4, #2620]
+ add r3, r3, r3, lsl #1
+ lsrs r3, r3, #2
+.L1594:
+ strh r3, [r4, #3152] @ movhi
+ movs r3, #0
+ str r3, [r4, #3164]
+.L1573:
+ mov r3, sp
+ ldr r2, [sp, #36]
+ bic r3, r3, #8160
+ bic r3, r3, #31
+ ldr r3, [r3, #24]
+ cmp r2, r3
+ beq .L1650
+ bl __stack_chk_fail
+.L1582:
movs r3, #80
- b .L1712
-.L1673:
- mov r5, r0
-.L1595:
- ldr r3, [r4, #72]
- mov r7, r5
- ldrh r1, [r4, #3152]
- ldrh r2, [r4, #224]
- ldrh r3, [r3, r5, lsl #1]
- str r1, [sp, #4]
- ldr r1, [r4, #2536]
- ldr r0, .L1717+12
- ldrh r1, [r1, r5, lsl #1]
- str r1, [sp]
- mov r1, r5
- bl sftl_printk
- b .L1598
-.L1603:
+ b .L1683
+.L1589:
cmp r3, #12
- bls .L1604
+ bls .L1590
lsrs r6, r6, #4
- b .L1602
-.L1604:
+ b .L1588
+.L1590:
cmp r3, #8
- bls .L1602
+ bls .L1588
lsrs r6, r6, #2
- b .L1602
-.L1674:
+ b .L1588
+.L1656:
movs r6, #1
- b .L1602
-.L1609:
+ b .L1588
+.L1657:
movs r3, #18
- b .L1713
-.L1607:
+ b .L1594
+.L1592:
ldrh r3, [r4, #2620]
add r3, r3, r3, lsl #1
asrs r3, r3, #2
strh r3, [r4, #3152] @ movhi
-.L1606:
+.L1591:
ldrh r3, [r4, #3206]
- cbz r3, .L1675
+ cbz r3, .L1658
adds r6, r6, #32
uxth r6, r6
-.L1675:
- movw r7, #65535
-.L1612:
+.L1658:
+ movw r5, #65535
+.L1596:
ldrh r3, [r4, #172]
movw r2, #65535
cmp r3, r2
- bne .L1621
- cmp r7, r3
- beq .L1622
- strh r7, [r4, #172] @ movhi
-.L1623:
- ldrh r0, [r4, #172]
- movw r5, #65535
- movs r3, #0
- strb r3, [r4, #180]
- cmp r0, r5
- beq .L1621
- bl IsBlkInGcList
- cbz r0, .L1626
+ bne .L1604
+ cmp r5, r3
+ beq .L1605
strh r5, [r4, #172] @ movhi
-.L1626:
- ldrh r2, [r4, #172]
- movw r3, #65535
- cmp r2, r3
- beq .L1621
- ldr r0, .L1717+16
- bl make_superblock
+.L1606:
+ ldrh r0, [r4, #172]
movs r3, #0
- ldrh r2, [r4, #172]
- strh r3, [r4, #174] @ movhi
- strb r3, [r4, #178]
- strh r3, [r4, #3662] @ movhi
- ldr r3, [r4, #72]
- ldrh r3, [r3, r2, lsl #1]
- strh r3, [r4, #3664] @ movhi
-.L1621:
+ movw r8, #65535
+ strb r3, [r4, #180]
+ cmp r0, r8
+ beq .L1604
+ bl IsBlkInGcList
+ mov r7, r0
+ cmp r0, #0
+ beq .L1609
+ strh r8, [r4, #172] @ movhi
+.L1604:
ldrh r3, [r4, #172]
ldrh r2, [r4, #24]
cmp r2, r3
- beq .L1627
+ beq .L1610
ldrh r2, [r4, #76]
cmp r2, r3
- beq .L1627
+ beq .L1610
ldrh r2, [r4, #124]
cmp r2, r3
- bne .L1628
-.L1627:
+ bne .L1611
+.L1610:
movw r3, #65535
strh r3, [r4, #172] @ movhi
-.L1628:
- ldr r5, .L1717+4
- mov r4, r5
-.L1664:
- ldrh r10, [r5, #172]
+.L1611:
+ ldr r4, .L1687
+.L1647:
+ ldrh r8, [r4, #172]
movw r3, #65535
- cmp r10, r3
- bne .L1629
- movs r3, #0
- mov fp, r3
- str r3, [r5, #3164]
-.L1630:
- ldrh r8, [r4, #3160]
- mov r0, r8
+ cmp r8, r3
+ bne .L1612
+ mov r9, #0
+ str r9, [r4, #3164]
+.L1613:
+ ldrh r7, [r4, #3160]
+ mov r0, r7
bl List_get_gc_head_node
- uxth r2, r0
- cmp r2, r10
- strh r2, [r4, #172] @ movhi
- bne .L1631
+ uxth fp, r0
+ mov r10, r0
+ cmp fp, r8
+ strh fp, [r4, #172] @ movhi
+ bne .L1614
movs r3, #0
movs r0, #8
strh r3, [r4, #3160] @ movhi
- b .L1585
-.L1613:
+ b .L1573
+.L1597:
movs r3, #0
ldrh r2, [r4, #224]
str r3, [r4, #3164]
ldrh r3, [r4, #3152]
cmp r2, r3
- bls .L1614
+ bls .L1598
ldrh r3, [r4, #3660]
- cbnz r3, .L1615
+ cbnz r3, .L1599
ldr r3, [r4, #2552]
ldr r2, [r4, #2548]
add r3, r3, r3, lsl #1
cmp r2, r3, lsr #2
- bcs .L1616
-.L1615:
+ bcs .L1660
+.L1599:
ldrh r3, [r4, #2620]
add r3, r3, r3, lsl #1
- asrs r3, r3, #2
-.L1714:
+ lsrs r3, r3, #2
+.L1600:
strh r3, [r4, #3152] @ movhi
bl FtlReadRefresh
movs r0, #0
@@ -11193,17 +11451,17 @@
uxth r0, r0
ldrh r3, [r3, r0, lsl #1]
cmp r3, #4
- bls .L1614
-.L1716:
+ bls .L1598
+.L1686:
ldrh r0, [r4, #3660]
- b .L1585
-.L1616:
+ b .L1573
+.L1660:
movs r3, #18
- b .L1714
-.L1614:
+ b .L1600
+.L1598:
ldrh r0, [r4, #3660]
cmp r0, #0
- bne .L1618
+ bne .L1601
ldrh r5, [r4, #2620]
add r3, r5, r5, lsl #1
asrs r3, r3, #2
@@ -11211,284 +11469,265 @@
bl List_get_gc_head_node
ldr r3, [r4, #72]
uxth r0, r0
- ldrh r1, [r4, #304]
+ ldrh r1, [r4, #232]
ldrh r2, [r3, r0, lsl #1]
- ldrh r3, [r4, #232]
+ ldrh r3, [r4, #304]
muls r3, r1, r3
add r3, r3, r3, lsr #31
cmp r2, r3, asr #1
- ble .L1619
- ldrh r3, [r4, #224]
- subs r5, r5, #1
- cmp r3, r5
- blt .L1619
+ ble .L1602
+ ldrh r1, [r4, #224]
+ subs r3, r5, #1
+ cmp r1, r3
+ blt .L1602
bl FtlReadRefresh
- b .L1716
-.L1718:
+ b .L1686
+.L1688:
.align 2
-.L1717:
- .word __stack_chk_guard
+.L1687:
.word .LANCHOR0
.word .LANCHOR2
.word .LC124
- .word .LANCHOR0+172
-.L1619:
+.L1602:
cmp r2, #0
- bne .L1618
+ bne .L1601
movw r0, #65535
bl decrement_vpc_count
ldrh r0, [r4, #224]
adds r0, r0, #1
- b .L1585
-.L1622:
+ b .L1573
+.L1605:
ldrh r3, [r4, #222]
- cmp r3, r7
- beq .L1623
+ cmp r3, r5
+ beq .L1606
ldr r2, [r4, #72]
ldrh r3, [r2, r3, lsl #1]
- cbnz r3, .L1624
- strh r7, [r4, #222] @ movhi
-.L1624:
+ cbnz r3, .L1607
+ strh r5, [r4, #222] @ movhi
+.L1607:
ldrh r3, [r4, #222]
strh r3, [r4, #172] @ movhi
movw r3, #65535
strh r3, [r4, #222] @ movhi
- b .L1623
-.L1631:
- str r0, [sp, #16]
- mov r0, r2
- str r2, [sp, #12]
- add r8, r8, #1
+ b .L1606
+.L1614:
+ mov r0, fp
bl IsBlkInGcList
- ldr r2, [sp, #12]
- ldr r3, [sp, #16]
- cbz r0, .L1632
- strh r8, [r4, #3160] @ movhi
- b .L1630
-.L1632:
- ldrh lr, [r4, #232]
- uxth r8, r8
- ldrh r1, [r4, #302]
+ adds r3, r7, #1
uxth r3, r3
- ldr r0, [r4, #72]
- strh r8, [r4, #3160] @ movhi
- mul r1, lr, r1
- ldrh ip, [r0, r3, lsl #1]
- add lr, r1, r1, lsr #31
- cmp ip, lr, asr #1
- bgt .L1634
- cmp r8, #48
- bls .L1635
- cmp ip, #8
- bls .L1635
- ldrh ip, [r4, #3196]
- cmp ip, #35
- bhi .L1635
-.L1634:
- strh fp, [r4, #3160] @ movhi
-.L1635:
- ldrh r3, [r0, r3, lsl #1]
- cmp r1, r3
- bgt .L1636
- cmp r7, r10
- bne .L1636
- ldrh r1, [r4, #3160]
- cmp r1, #3
- bhi .L1636
- movs r3, #0
- strh r7, [r4, #172] @ movhi
+ cbz r0, .L1615
+.L1684:
strh r3, [r4, #3160] @ movhi
- b .L1716
-.L1636:
- cbnz r3, .L1637
+ b .L1613
+.L1615:
+ ldrh r7, [r4, #232]
+ uxth r10, r10
+ ldrh r2, [r4, #302]
+ ldr r1, [r4, #72]
+ strh r3, [r4, #3160] @ movhi
+ muls r2, r7, r2
+ ldrh r0, [r1, r10, lsl #1]
+ add r7, r2, r2, lsr #31
+ cmp r0, r7, asr #1
+ bgt .L1617
+ cmp r3, #48
+ bls .L1618
+ cmp r0, #8
+ bls .L1618
+ ldrh r3, [r4, #3196]
+ cmp r3, #35
+ bhi .L1618
+.L1617:
+ strh r9, [r4, #3160] @ movhi
+.L1618:
+ ldrh r3, [r1, r10, lsl #1]
+ cmp r2, r3
+ bgt .L1619
+ cmp r5, r8
+ bne .L1619
+ ldrh r2, [r4, #3160]
+ cmp r2, #3
+ bhi .L1619
+ movs r3, #0
+ strh r5, [r4, #172] @ movhi
+ strh r3, [r4, #3160] @ movhi
+ b .L1686
+.L1619:
+ cbnz r3, .L1620
movw r0, #65535
bl decrement_vpc_count
ldrh r3, [r4, #3160]
adds r3, r3, #1
- strh r3, [r4, #3160] @ movhi
- b .L1630
-.L1637:
+ b .L1684
+.L1620:
movs r3, #0
strb r3, [r4, #180]
ldrh r3, [r4, #24]
- cmp r3, r2
- bne .L1638
+ cmp r3, fp
+ bne .L1621
+ ldr r1, .L1689
movw r2, #717
- ldr r1, .L1719
- ldr r0, .L1719+4
+ ldr r0, .L1689+4
bl sftl_printk
-.L1638:
+.L1621:
ldrh r2, [r4, #172]
ldrh r3, [r4, #76]
cmp r2, r3
- bne .L1639
+ bne .L1622
+ ldr r1, .L1689
movw r2, #718
- ldr r1, .L1719
- ldr r0, .L1719+4
+ ldr r0, .L1689+4
bl sftl_printk
-.L1639:
+.L1622:
ldrh r2, [r4, #172]
ldrh r3, [r4, #124]
cmp r2, r3
- bne .L1640
+ bne .L1623
+ ldr r1, .L1689
movw r2, #719
- ldr r1, .L1719
- ldr r0, .L1719+4
+ ldr r0, .L1689+4
bl sftl_printk
-.L1640:
- ldr r0, .L1719+8
+.L1623:
+ ldr r0, .L1689+8
bl make_superblock
ldrh r1, [r4, #172]
- movs r3, #0
ldr r2, [r4, #72]
+ movs r3, #0
strh r3, [r4, #3662] @ movhi
ldrh r2, [r2, r1, lsl #1]
+ strh r2, [r4, #3664] @ movhi
strh r3, [r4, #174] @ movhi
strb r3, [r4, #178]
- strh r2, [r4, #3664] @ movhi
-.L1629:
+.L1612:
movs r3, #1
str r3, [r4, #3272]
- ldrh r3, [r4, #302]
- str r3, [sp, #16]
- cmp r9, #0
- beq .L1641
- ldr r2, [sp, #16]
+ ldr r3, [sp, #16]
+ ldrh fp, [r4, #302]
+ cbz r3, .L1624
ldrh r3, [r4, #232]
ldrh r1, [r4, #172]
- muls r3, r2, r3
ldr r2, [r4, #72]
+ mul r3, fp, r3
ldrh r2, [r2, r1, lsl #1]
subs r3, r3, r2
it mi
addmi r3, r3, #3
add r6, r6, r3, asr #2
uxth r6, r6
-.L1641:
+.L1624:
ldrh r3, [r4, #174]
- ldr r1, [sp, #16]
adds r2, r3, r6
- cmp r2, r1
+ cmp r2, fp
itt gt
- movgt r2, r1
- subgt r6, r2, r3
- mov r3, #0
- it gt
- uxthgt r6, r6
-.L1715:
- str r3, [sp, #20]
- ldrh r3, [sp, #20]
- cmp r6, r3
- bls .L1652
- ldr r3, [sp, #20]
- movw r10, #65535
- ldrh r8, [r5, #174]
- mov fp, #20
- ldrh ip, [r5, #232]
- ldr r0, [r5, #3184]
- add r8, r8, r3
- ldr r3, .L1719+12
- str r3, [sp, #24]
+ subgt r3, fp, r3
+ uxthgt r6, r3
movs r3, #0
+.L1685:
str r3, [sp, #12]
- b .L1653
-.L1646:
- ldr r1, [sp, #24]
- ldrh r2, [r1, #2]!
- cmp r2, r10
- str r1, [sp, #24]
- beq .L1645
- ldr r1, [sp, #12]
- orr r2, r8, r2, lsl #10
- mla lr, fp, r1, r0
- str r2, [lr, #4]
- mov r2, r1
- adds r2, r2, #1
- uxth r2, r2
- str r2, [sp, #12]
-.L1645:
- adds r3, r3, #1
-.L1653:
- uxth r2, r3
- cmp ip, r2
- bhi .L1646
- mov fp, #0
- ldrb r2, [r5, #180] @ zero_extendqisi2
- ldr r1, [sp, #12]
- bl FlashReadPages
-.L1647:
+ ldrh r3, [r4, #174]
+ ldrh r2, [sp, #12]
+ cmp r6, r2
+ bls .L1635
ldr r2, [sp, #12]
- uxth r3, fp
- cmp r2, r3
- bhi .L1651
- ldr r3, [sp, #20]
+ movw r9, #65535
+ ldrh lr, [r4, #232]
+ mov r10, #20
+ add r3, r3, r2
+ ldr r0, [r4, #3184]
+ movs r2, #0
+ ldr ip, .L1689+12
+ mov r7, r2
+ b .L1636
+.L1629:
+ ldrh r1, [ip], #2
+ cmp r1, r9
+ beq .L1628
+ mla r8, r10, r7, r0
+ adds r7, r7, #1
+ orr r1, r3, r1, lsl #10
+ uxth r7, r7
+ str r1, [r8, #4]
+.L1628:
+ adds r2, r2, #1
+.L1636:
+ uxth r1, r2
+ cmp lr, r1
+ bhi .L1629
+ mov r10, #0
+ ldrb r2, [r4, #180] @ zero_extendqisi2
+ mov r1, r7
+ bl FlashReadPages
+.L1630:
+ uxth r3, r10
+ cmp r7, r3
+ bhi .L1634
+ ldr r3, [sp, #12]
adds r3, r3, #1
- b .L1715
-.L1651:
+ b .L1685
+.L1634:
mov r8, #20
- ldr r3, [r5, #3184]
- mul r8, r8, fp
+ ldr r3, [r4, #3184]
+ mul r8, r8, r10
add r2, r3, r8
ldr r3, [r3, r8]
adds r3, r3, #1
- beq .L1648
- ldr r10, [r2, #12]
+ beq .L1631
+ ldr r9, [r2, #12]
movw r3, #61589
- ldrh r2, [r10]
+ ldrh r2, [r9]
cmp r2, r3
- bne .L1648
- ldr r3, [r10, #8]
+ bne .L1631
+ ldr r3, [r9, #8]
adds r2, r3, #1
- bne .L1649
+ bne .L1632
+ ldr r1, .L1689
movw r2, #753
- ldr r1, .L1719
- ldr r0, .L1719+4
- str r3, [sp, #24]
+ ldr r0, .L1689+4
+ str r3, [sp, #20]
bl sftl_printk
- ldr r3, [sp, #24]
-.L1649:
- movs r2, #0
+ ldr r3, [sp, #20]
+.L1632:
mov r0, r3
- add r1, sp, #36
+ movs r2, #0
+ add r1, sp, #28
bl log2phys
ldr r0, [r4, #3184]
- ldr r3, [sp, #36]
+ ldr r3, [sp, #28]
add r0, r0, r8
ldr r2, [r0, #4]
cmp r2, r3
- bne .L1648
+ bne .L1631
ldrh r3, [r4, #3662]
movs r2, #20
ldr r1, [r4, #3168]
- str r2, [sp, #28]
adds r3, r3, #1
strh r3, [r4, #3662] @ movhi
ldr r3, [r4, #3292]
mla r3, r2, r1, r3
ldr r1, [r0, #16]
+ str r3, [sp, #20]
str r1, [r3, #16]
- str r3, [sp, #24]
bl Ftl_get_new_temp_ppa
- ldr r3, [sp, #24]
- ldr r1, [r4, #3292]
- ldr r2, [sp, #28]
+ ldr r3, [sp, #20]
+ ldr r1, [r4, #3168]
+ movs r2, #20
str r0, [r3, #4]
- ldr r3, [r4, #3168]
- mla r3, r2, r3, r1
- ldr r2, [r4, #3184]
- add r2, r2, r8
- ldr r1, [r2, #8]
- str r1, [r3, #8]
+ ldr r3, [r4, #3292]
+ ldr r0, [r4, #3184]
+ add r0, r0, r8
+ mla r3, r2, r1, r3
movs r1, #1
- ldr r2, [r2, #12]
+ ldr r2, [r0, #8]
+ str r2, [r3, #8]
+ ldr r2, [r0, #12]
str r2, [r3, #12]
- ldr r3, [sp, #36]
- str r3, [r10, #12]
+ ldr r3, [sp, #28]
+ str r3, [r9, #12]
ldrh r3, [r4, #124]
- strh r3, [r10, #2] @ movhi
+ strh r3, [r9, #2] @ movhi
ldr r3, [r4, #2592]
ldr r0, [r4, #3184]
- str r3, [r10, #4]
+ str r3, [r9, #4]
ldr r3, [r4, #3168]
add r0, r0, r8
adds r3, r3, #1
@@ -11497,139 +11736,139 @@
ldrb r2, [r4, #131] @ zero_extendqisi2
ldr r3, [r4, #3168]
cmp r2, r3
- beq .L1650
+ beq .L1633
ldrh r3, [r4, #128]
- cbnz r3, .L1648
-.L1650:
+ cbnz r3, .L1631
+.L1633:
bl Ftl_gc_temp_data_write_back
- cbz r0, .L1648
- ldr r3, .L1719+16
+ cbz r0, .L1631
+ ldr r3, .L1689+16
movs r2, #0
- movw r1, #65535
- str r2, [r3, #3272]
- strh r1, [r3, #172] @ movhi
- strh r2, [r3, #174] @ movhi
ldrh r0, [r3, #3660]
- b .L1585
-.L1648:
- add fp, fp, #1
- b .L1647
-.L1652:
- ldrh r3, [r5, #174]
+ str r2, [r3, #3272]
+ movw r2, #65535
+ str r2, [r3, #172]
+ b .L1573
+.L1631:
+ add r10, r10, #1
+ b .L1630
+.L1635:
add r6, r6, r3
- ldr r3, [sp, #16]
uxth r6, r6
- cmp r3, r6
- strh r6, [r5, #174] @ movhi
- bhi .L1654
- ldr r3, [r5, #3168]
- cbz r3, .L1655
+ strh r6, [r4, #174] @ movhi
+ cmp fp, r6
+ bhi .L1637
+ ldr r3, [r4, #3168]
+ cbz r3, .L1638
bl Ftl_gc_temp_data_write_back
- cbz r0, .L1655
+ cbz r0, .L1638
movs r3, #0
- ldrh r0, [r5, #3660]
- str r3, [r5, #3272]
- b .L1585
-.L1655:
- ldrh r6, [r5, #3662]
- cbnz r6, .L1656
- ldrh r2, [r5, #172]
- ldr r3, [r5, #72]
+ str r3, [r4, #3272]
+ b .L1686
+.L1638:
+ ldrh r6, [r4, #3662]
+ cbnz r6, .L1639
+ ldrh r2, [r4, #172]
+ ldr r3, [r4, #72]
ldrh r3, [r3, r2, lsl #1]
- cbz r3, .L1656
-.L1657:
- ldr r3, [r5, #2552]
+ cbz r3, .L1639
+.L1640:
+ ldr r3, [r4, #2552]
cmp r6, r3
- bcs .L1662
- movs r2, #0
- add r1, sp, #40
- mov r0, r6
- bl log2phys
- ldr r0, [sp, #40]
- adds r3, r0, #1
- beq .L1658
- ubfx r0, r0, #10, #16
- bl P2V_block_in_plane
- ldrh r3, [r5, #172]
- cmp r3, r0
- bne .L1658
-.L1662:
- ldr r3, [r5, #2552]
- cmp r6, r3
- bcc .L1656
- ldrh r2, [r5, #172]
+ bcc .L1643
+.L1645:
+ ldrh r2, [r4, #172]
movs r1, #0
- ldr r3, [r5, #72]
+ ldr r3, [r4, #72]
strh r1, [r3, r2, lsl #1] @ movhi
- ldrh r0, [r5, #172]
+ ldrh r0, [r4, #172]
bl update_vpc_list
bl l2p_flush
bl FtlVpcTblFlush
-.L1656:
+.L1639:
movw r3, #65535
- strh r3, [r5, #172] @ movhi
-.L1654:
+ strh r3, [r4, #172] @ movhi
+.L1637:
movs r3, #0
- str r3, [r5, #3272]
- ldrh r3, [r5, #224]
+ str r3, [r4, #3272]
+ ldrh r3, [r4, #224]
cmp r3, #2
- bhi .L1663
- ldrh r6, [r5, #302]
- b .L1664
-.L1658:
- adds r6, r6, #1
- b .L1657
-.L1663:
- ldrh r0, [r5, #3660]
- cmp r0, #0
- bne .L1585
- adds r0, r3, #1
- b .L1585
-.L1669:
- movs r0, #0
- b .L1585
-.L1591:
- cmp r9, #0
- beq .L1666
-.L1601:
- ldrh r2, [r4, #124]
- movw r3, #65535
- cmp r2, r3
- bne .L1678
-.L1667:
- ldrh r3, [r4, #222]
- movw r2, #65535
- cmp r3, r2
- bne .L1678
- cmp r7, r3
- bne .L1678
+ bhi .L1646
+ ldrh r6, [r4, #302]
+ b .L1647
+.L1643:
+ add r1, sp, #32
+ mov r0, r6
+ movs r2, #0
+ bl log2phys
+ ldr r0, [sp, #32]
+ adds r3, r0, #1
+ beq .L1641
+ ubfx r0, r0, #10, #16
+ bl P2V_block_in_plane
ldrh r3, [r4, #172]
- cmp r3, r7
- beq .L1613
-.L1618:
- movw r7, #65535
-.L1678:
+ cmp r3, r0
+ beq .L1642
+.L1641:
+ adds r6, r6, #1
+ b .L1640
+.L1642:
+ ldr r3, [r4, #2552]
+ cmp r6, r3
+ bcc .L1639
+ b .L1645
+.L1646:
+ ldrh r0, [r4, #3660]
+ cmp r0, #0
+ bne .L1573
+ adds r0, r3, #1
+ b .L1573
+.L1651:
+ movs r0, #0
+ b .L1573
+.L1579:
+ ldr r3, [sp, #16]
+ cmp r3, #0
+ beq .L1649
+ movw r5, #65535
+.L1587:
+ ldrh r3, [r4, #222]
+ ldrh r6, [r4, #124]
+ ands r6, r6, r3
+ movw r3, #65535
+ ands r6, r6, r5
+ uxth r6, r6
+ cmp r6, r3
+ bne .L1659
+ ldrh r3, [r4, #172]
+ cmp r3, r6
+ beq .L1597
+.L1601:
+ mov r5, r6
+.L1659:
movs r6, #1
- b .L1612
-.L1593:
- cmp r9, #0
- beq .L1666
- movw r7, #65535
- b .L1667
-.L1720:
+ b .L1596
+.L1609:
+ ldr r0, .L1689+8
+ bl make_superblock
+ ldrh r2, [r4, #172]
+ ldr r3, [r4, #72]
+ strh r7, [r4, #174] @ movhi
+ strb r7, [r4, #178]
+ strh r7, [r4, #3662] @ movhi
+ ldrh r3, [r3, r2, lsl #1]
+ strh r3, [r4, #3664] @ movhi
+ b .L1604
+.L1690:
.align 2
-.L1719:
+.L1689:
.word .LANCHOR1+568
.word .LC8
.word .LANCHOR0+172
- .word .LANCHOR0+186
+ .word .LANCHOR0+188
.word .LANCHOR0
-.L1592:
- cmp r9, #0
- bne .L1618
- b .L1666
-.L1668:
- add sp, sp, #52
+.L1650:
+ add sp, sp, #44
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
.fnend
@@ -11647,118 +11886,146 @@
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
- mov r10, r3
- ldr r3, .L1757
- cmp r0, #16
+ mov r8, r3
+ mov r5, r1
.pad #60
sub sp, sp, #60
- mov r6, r1
+ cmp r0, #16
+ mov r3, sp
+ bic r3, r3, #8160
+ bic r3, r3, #31
str r2, [sp, #4]
- ldr r3, [r3]
- str r3, [sp, #52]
- bne .L1722
- mov r2, r10
- ldr r1, [sp, #4]
- add r0, r6, #256
- bl FtlVendorPartRead
- mov r5, r0
-.L1721:
- ldr r3, .L1757
- mov r0, r5
+ ldr r2, [r3, #24]
+ str r2, [sp, #52]
+ bne .L1692
ldr r2, [sp, #52]
- ldr r3, [r3]
+ ldr r3, [r3, #24]
cmp r2, r3
- beq .L1743
+ beq .L1693
+.L1730:
bl __stack_chk_fail
-.L1722:
- ldr r4, .L1757+4
+.L1693:
+ ldr r1, [sp, #4]
+ mov r2, r8
+ add r0, r5, #256
+ add sp, sp, #60
+ @ sp needed
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+ b FtlVendorPartRead
+.L1692:
+ ldr r4, .L1731
ldr r3, [r4, #340]
- cmp r1, r3
- bcs .L1746
+ cmp r3, r1
+ bls .L1718
ldr r2, [sp, #4]
- cmp r2, r3
- bhi .L1746
- adds r2, r1, r2
cmp r3, r2
- str r2, [sp, #12]
- bcc .L1746
- ldr r3, .L1757+8
- ldr r5, [r3]
- adds r7, r5, #1
- beq .L1721
- ldrh r5, [r4, #258]
- mov r0, r6
- mov r9, #0
- mov r8, r9
- mov r1, r5
+ bcc .L1718
+ adds r2, r1, r2
+ str r2, [sp, #8]
+ cmp r3, r2
+ bcc .L1718
+ ldr r3, .L1731+4
+ ldr r6, [r3]
+ adds r7, r6, #1
+ beq .L1691
+ ldrh r6, [r4, #258]
+ mov r0, r5
+ mov r10, #0
+ mov r7, r10
+ mov r1, r6
bl __aeabi_uidiv
- ldr r3, [sp, #12]
- mov r1, r5
+ ldr r3, [sp, #8]
+ mov r1, r6
str r0, [sp, #16]
- mov r5, r9
subs r0, r3, #1
+ mov r6, r10
bl __aeabi_uidiv
ldr r3, [sp, #16]
ldr r2, [sp, #4]
- ldr r7, [sp, #16]
rsb r3, r3, #1
- str r0, [sp, #20]
+ ldr r9, [sp, #16]
add r3, r3, r0
- str r9, [sp, #28]
- str r3, [sp, #8]
+ str r3, [sp, #12]
ldr r3, [r4, #2584]
- str r9, [sp, #24]
+ str r0, [sp, #20]
add r3, r3, r2
- ldr r2, [sp, #8]
+ ldr r2, [sp, #12]
str r3, [r4, #2584]
ldr r3, [r4, #2556]
+ strd r10, r10, [sp, #24]
add r3, r3, r2
str r3, [r4, #2556]
-.L1724:
- ldr r3, [sp, #8]
- cbnz r3, .L1741
- ldr r3, .L1757+4
+.L1695:
+ ldr r3, [sp, #12]
+ cbnz r3, .L1713
+ ldr r3, .L1731
ldrh r2, [r3, #3206]
- cbnz r2, .L1742
+ cbnz r2, .L1714
ldrh r3, [r3, #224]
cmp r3, #31
- bhi .L1721
-.L1742:
+ bhi .L1691
+.L1714:
movs r1, #1
movs r0, #0
bl rk_ftl_garbage_collect
- b .L1721
-.L1741:
- movs r2, #0
+.L1691:
+ mov r3, sp
+ ldr r2, [sp, #52]
+ bic r3, r3, #8160
+ bic r3, r3, #31
+ ldr r3, [r3, #24]
+ cmp r2, r3
+ bne .L1730
+ mov r0, r6
+ add sp, sp, #60
+ @ sp needed
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L1713:
add r1, sp, #48
- mov r0, r7
- bl log2phys
- ldr r2, [sp, #48]
- adds r0, r2, #1
- bne .L1725
- mov fp, #0
-.L1726:
- ldrh r0, [r4, #258]
- cmp fp, r0
- bcc .L1728
-.L1729:
- ldr r3, [sp, #8]
- adds r7, r7, #1
- subs r3, r3, #1
- str r3, [sp, #8]
- beq .L1733
- ldrh r3, [r4, #232]
- cmp r8, r3, lsl #2
- bne .L1724
-.L1733:
- cmp r8, #0
- beq .L1724
+ mov r0, r9
movs r2, #0
- mov r1, r8
+ bl log2phys
+ ldr r3, [sp, #48]
+ adds r0, r3, #1
+ bne .L1728
+ mov fp, #0
+ b .L1696
+.L1699:
+ mla r0, r9, r0, fp
+ cmp r5, r0
+ bhi .L1698
+ ldr r3, [sp, #8]
+ cmp r3, r0
+ bls .L1698
+ subs r0, r0, r5
+ mov r2, #512
+ movs r1, #0
+ add r0, r8, r0, lsl #9
+ bl ftl_memset
+.L1698:
+ add fp, fp, #1
+.L1696:
+ ldrh r0, [r4, #258]
+ cmp r0, fp
+ bhi .L1699
+.L1700:
+ ldr r3, [sp, #12]
+ add r9, r9, #1
+ subs r3, r3, #1
+ str r3, [sp, #12]
+ beq .L1705
+ ldrh r3, [r4, #232]
+ cmp r7, r3, lsl #2
+ bne .L1695
+.L1705:
+ cmp r7, #0
+ beq .L1695
ldr r0, [r4, #3288]
+ mov r1, r7
+ movs r2, #0
mov fp, #0
bl FlashReadPages
- lsl r3, r9, #9
+ lsl r3, r10, #9
str r3, [sp, #40]
ldr r3, [sp, #24]
lsls r3, r3, #9
@@ -11766,32 +12033,30 @@
ldr r3, [sp, #28]
lsls r3, r3, #9
str r3, [sp, #36]
-.L1740:
+.L1712:
movs r3, #20
ldr r2, [r4, #3288]
- mul r3, r3, fp
ldr r0, [sp, #16]
+ mul r3, r3, fp
add r2, r2, r3
ldr r1, [r2, #16]
- cmp r0, r1
- bne .L1735
+ cmp r1, r0
+ bne .L1707
ldr r1, [r2, #8]
ldr r2, [r4, #3312]
cmp r1, r2
- bne .L1736
+ bne .L1708
str r3, [sp, #44]
- mov r0, r10
- ldr r3, [sp, #32]
- ldr r2, [sp, #36]
+ mov r0, r8
+ ldrd r3, r2, [sp, #32]
add r1, r1, r3
-.L1756:
+.L1729:
bl ftl_memcpy
ldr r3, [sp, #44]
-.L1736:
+.L1708:
ldr ip, [r4, #3288]
add r2, ip, r3
- ldr r0, [r2, #12]
- ldr r1, [r2, #16]
+ ldrd r0, r1, [r2, #12]
ldr r0, [r0, #8]
cmp r1, r0
ittt ne
@@ -11801,121 +12066,97 @@
ldr r0, [ip, r3]
adds r1, r0, #1
itttt eq
+ moveq r6, r0
ldreq r1, [r4, #2712]
- moveq r5, r0
addeq r1, r1, #1
streq r1, [r4, #2712]
ldr r3, [ip, r3]
cmp r3, #256
- bne .L1739
+ bne .L1711
ldr r0, [r2, #4]
ubfx r0, r0, #10, #16
bl P2V_block_in_plane
bl FtlGcRefreshBlock
-.L1739:
+.L1711:
add fp, fp, #1
- cmp r8, fp
- bne .L1740
- mov r8, #0
- b .L1724
+ cmp r7, fp
+ bne .L1712
+ movs r7, #0
+ b .L1695
.L1728:
- mla r0, r0, r7, fp
- cmp r6, r0
- bhi .L1727
- ldr r3, [sp, #12]
- cmp r3, r0
- bls .L1727
- subs r0, r0, r6
- mov r2, #512
- movs r1, #0
- add r0, r10, r0, lsl #9
- bl ftl_memset
-.L1727:
- add fp, fp, #1
- b .L1726
-.L1725:
- ldr r3, [r4, #3288]
- movs r1, #20
- ldrh fp, [r4, #258]
- mla r3, r1, r8, r3
- str r2, [r3, #4]
- ldr r2, [sp, #16]
- cmp r7, r2
- bne .L1730
+ ldr r2, [r4, #3288]
+ mov fp, #20
+ mla fp, fp, r7, r2
+ str r3, [fp, #4]
+ ldr r3, [sp, #16]
+ cmp r9, r3
+ ldrh r3, [r4, #258]
+ bne .L1701
ldr r2, [r4, #3312]
- mov r1, fp
- mov r0, r6
- str r3, [sp, #32]
- str r2, [r3, #8]
+ mov r1, r3
+ str r2, [fp, #8]
+ mov r0, r5
+ str r3, [sp, #28]
bl __aeabi_uidivmod
- sub r2, fp, r1
+ ldr r3, [sp, #28]
str r1, [sp, #24]
+ subs r2, r3, r1
ldr r1, [sp, #4]
- mov r3, r2
cmp r2, r1
it cs
- movcs r3, r1
- cmp r3, fp
- str r3, [sp, #28]
- ldr r3, [sp, #32]
- bne .L1731
- str r10, [r3, #8]
-.L1731:
- ldrh r2, [r4, #312]
- ldr r1, [r4, #3336]
- str r7, [r3, #16]
- mul r2, r8, r2
- add r8, r8, #1
- bic r2, r2, #3
- add r2, r2, r1
- str r2, [r3, #12]
- b .L1729
-.L1730:
- ldr r2, [sp, #20]
- cmp r7, r2
- bne .L1732
- ldr r2, [r4, #3316]
- ldr r1, [sp, #12]
- str r2, [r3, #8]
- mul r2, fp, r7
- sub r9, r1, r2
- cmp fp, r9
- bne .L1731
-.L1755:
- subs r2, r2, r6
- add r2, r10, r2, lsl #9
- str r2, [r3, #8]
- b .L1731
-.L1732:
- mul r2, r7, fp
- b .L1755
-.L1735:
+ movcs r2, r1
+ str r2, [sp, #28]
+ cmp r3, r2
+ bne .L1702
+ str r8, [fp, #8]
+.L1702:
+ ldrh r3, [r4, #312]
+ ldr r2, [r4, #3336]
+ muls r3, r7, r3
+ adds r7, r7, #1
+ bic r3, r3, #3
+ add r3, r3, r2
+ strd r3, r9, [fp, #12]
+ b .L1700
+.L1701:
+ ldr r1, [sp, #20]
+ mul r2, r3, r9
+ cmp r9, r1
+ bne .L1703
+ ldr r1, [sp, #8]
+ sub r10, r1, r2
+ cmp r10, r3
+ beq .L1703
+ ldr r3, [r4, #3316]
+ str r3, [fp, #8]
+ b .L1702
+.L1703:
+ subs r2, r2, r5
+ add r2, r8, r2, lsl #9
+ str r2, [fp, #8]
+ b .L1702
+.L1707:
ldr r0, [sp, #20]
- cmp r0, r1
- bne .L1736
+ cmp r1, r0
+ bne .L1708
ldr r1, [r2, #8]
ldr r2, [r4, #3316]
cmp r1, r2
- bne .L1736
- str r3, [sp, #44]
+ bne .L1708
ldrh r0, [r4, #258]
+ str r3, [sp, #44]
ldr r3, [sp, #20]
ldr r2, [sp, #40]
muls r0, r3, r0
- subs r0, r0, r6
- add r0, r10, r0, lsl #9
- b .L1756
-.L1746:
- mov r5, #-1
- b .L1721
-.L1743:
- add sp, sp, #60
- @ sp needed
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L1758:
+ subs r0, r0, r5
+ add r0, r8, r0, lsl #9
+ b .L1729
+.L1718:
+ mov r6, #-1
+ b .L1691
+.L1732:
.align 2
-.L1757:
- .word __stack_chk_guard
+.L1731:
.word .LANCHOR0
.word .LANCHOR2
.fnend
@@ -11939,6 +12180,12 @@
b FtlRead
.fnend
.size sftl_read, .-sftl_read
+ .section .rodata.str1.1
+.LC125:
+ .ascii "FtlWrite: ecc error:%x %x %x\012\000"
+.LC126:
+ .ascii "FtlWrite: lpa error:%x %x\012\000"
+ .text
.align 1
.global FtlWrite
.syntax unified
@@ -11952,136 +12199,145 @@
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+ cmp r0, #16
+ mov r8, r1
.pad #76
sub sp, sp, #76
- str r3, [sp, #12]
- cmp r0, #16
- mov r10, r1
- ldr r3, .L1815
- str r2, [sp, #8]
- ldr r3, [r3]
- str r3, [sp, #68]
- bne .L1761
- ldr r2, [sp, #12]
- add r0, r10, #256
- ldr r1, [sp, #8]
- bl FtlVendorPartWrite
-.L1760:
- ldr r3, .L1815
+ strd r2, r3, [sp, #4]
+ mov r3, sp
+ bic r3, r3, #8160
+ bic r3, r3, #31
+ ldr r2, [r3, #24]
+ str r2, [sp, #68]
+ bne .L1735
ldr r2, [sp, #68]
- ldr r3, [r3]
+ ldr r3, [r3, #24]
cmp r2, r3
- beq .L1798
+ beq .L1736
+.L1790:
bl __stack_chk_fail
-.L1761:
- ldr r5, .L1815+4
+.L1736:
+ ldrd r1, r2, [sp, #4]
+ add r0, r8, #256
+ add sp, sp, #76
+ @ sp needed
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+ b FtlVendorPartWrite
+.L1735:
+ ldr r5, .L1791
ldr r3, [r5, #340]
- cmp r1, r3
- bcs .L1801
- ldr r2, [sp, #8]
- cmp r2, r3
- bhi .L1801
+ cmp r3, r1
+ bls .L1777
+ ldr r2, [sp, #4]
+ cmp r3, r2
+ bcc .L1777
adds r6, r1, r2
cmp r3, r6
- bcc .L1801
- ldr r4, .L1815+8
+ bcc .L1777
+ ldr r4, .L1791+4
ldr r0, [r4]
adds r7, r0, #1
- beq .L1760
+ beq .L1734
ldrh r7, [r5, #258]
mov r3, #2048
+ mov r0, r8
str r3, [r5, #3668]
- mov r0, r10
mov r1, r7
bl __aeabi_uidiv
mov r1, r7
- str r0, [sp, #4]
+ str r0, [sp]
subs r0, r6, #1
bl __aeabi_uidiv
- ldr r2, [sp, #4]
- str r0, [sp, #20]
+ ldr r2, [sp]
+ str r0, [sp, #24]
subs r3, r0, r2
- ldr r2, [sp, #8]
- str r3, [sp, #24]
- adds r3, r3, #1
- str r3, [sp]
+ ldr r2, [sp, #4]
+ add fp, r3, #1
+ str r3, [sp, #20]
ldr r3, [r5, #2580]
add r3, r3, r2
- ldr r2, [sp]
str r3, [r5, #2580]
ldr r3, [r5, #2564]
- add r3, r3, r2
+ add r3, r3, fp
str r3, [r5, #2564]
ldr r3, [r4, #8]
- cbz r3, .L1803
+ cbz r3, .L1779
ldrh r2, [r5, #28]
add r3, r5, #24
adds r5, r5, #76
cmp r2, #0
it ne
movne r5, r3
-.L1763:
- ldr r7, [sp, #4]
- ldr r4, .L1815+4
-.L1764:
- ldr r3, [sp]
- cbnz r3, .L1793
- mov r0, r3
- ldr r1, [sp, #24]
+.L1738:
+ ldr r7, [sp]
+ ldr r4, .L1791
+.L1739:
+ cmp fp, #0
+ bne .L1770
+ ldr r1, [sp, #20]
+ mov r0, fp
bl rk_ftl_garbage_collect
ldrh r3, [r4, #224]
cmp r3, #5
- bls .L1794
-.L1796:
+ bls .L1782
+.L1773:
movs r0, #0
- b .L1760
-.L1803:
+.L1734:
+ mov r3, sp
+ ldr r2, [sp, #68]
+ bic r3, r3, #8160
+ bic r3, r3, #31
+ ldr r3, [r3, #24]
+ cmp r2, r3
+ bne .L1790
+ add sp, sp, #76
+ @ sp needed
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L1779:
adds r5, r5, #24
- b .L1763
-.L1793:
+ b .L1738
+.L1770:
ldrb r2, [r5, #6] @ zero_extendqisi2
ldrh r3, [r4, #232]
cmp r2, r3
- bcc .L1765
+ bcc .L1740
+ ldr r1, .L1791+8
movw r2, #1041
- ldr r1, .L1815+12
- ldr r0, .L1815+16
+ ldr r0, .L1791+12
bl sftl_printk
-.L1765:
- ldrh r2, [r5, #4]
- cbnz r2, .L1766
- ldr r3, .L1815+20
- ldr r6, .L1815+8
- cmp r5, r3
- bne .L1767
- ldrh r8, [r4, #80]
- cmp r8, #0
- bne .L1768
+.L1740:
+ ldrh r3, [r5, #4]
+ cbnz r3, .L1741
+ ldr r2, .L1791+16
+ ldr r6, .L1791+4
+ cmp r5, r2
+ bne .L1742
+ ldrh r9, [r4, #80]
+ cmp r9, #0
+ bne .L1743
add r0, r5, #52
bl allocate_new_data_superblock
- str r8, [r6, #8]
-.L1768:
- ldr r5, .L1815+20
- ldr r0, .L1815+20
+ str r9, [r6, #8]
+.L1743:
+ ldr r0, .L1791+16
bl allocate_new_data_superblock
- ldr r2, [r6, #8]
- add r3, r5, #52
- cmp r2, #0
- it ne
- movne r5, r3
-.L1769:
+ ldr r3, [r6, #8]
+ cmp r3, #0
+ bne .L1781
+.L1745:
+ ldr r5, .L1791+16
+.L1744:
ldrh r3, [r5, #4]
- cbnz r3, .L1766
+ cbnz r3, .L1741
mov r0, r5
bl allocate_new_data_superblock
-.L1766:
- ldrh r2, [r5, #4]
- ldr r3, [sp]
- cmp r2, r3
+.L1741:
+ ldrh r3, [r5, #4]
+ ldrb r2, [r5, #7] @ zero_extendqisi2
+ cmp r3, fp
it cs
- movcs r2, r3
- ldrb r3, [r5, #7] @ zero_extendqisi2
- lsls r3, r3, #2
+ movcs r3, fp
+ lsls r2, r2, #2
cmp r2, r3
it cs
movcs r2, r3
@@ -12089,267 +12345,255 @@
str r2, [sp, #36]
ldrb r2, [r5, #6] @ zero_extendqisi2
cmp r2, r3
- bcc .L1770
+ bcc .L1746
+ ldr r1, .L1791+8
movw r2, #1074
- ldr r1, .L1815+12
- ldr r0, .L1815+16
+ ldr r0, .L1791+12
bl sftl_printk
-.L1770:
- mov fp, #0
-.L1771:
+.L1746:
+ mov r10, #0
+.L1747:
ldr r3, [sp, #36]
- cmp fp, r3
- bne .L1791
-.L1772:
- mov r3, r5
- movs r2, #0
- mov r1, fp
+ cmp r3, r10
+ bne .L1768
+.L1748:
ldr r0, [r4, #3296]
+ mov r3, r5
+ mov r1, r10
+ movs r2, #0
bl FtlProgPages
- ldr r3, [sp]
- cmp fp, r3
- bls .L1792
+ cmp fp, r10
+ bcs .L1769
+ ldr r1, .L1791+8
mov r2, #1152
- ldr r1, .L1815+12
- ldr r0, .L1815+16
+ ldr r0, .L1791+12
bl sftl_printk
-.L1792:
- ldr r3, [sp]
- sub r3, r3, fp
- str r3, [sp]
- b .L1764
-.L1767:
- str r2, [r6, #8]
- ldrh r2, [r4, #28]
- cbnz r2, .L1806
+.L1769:
+ sub fp, fp, r10
+ b .L1739
+.L1742:
+ str r3, [r6, #8]
+ ldrh r3, [r4, #28]
+ cmp r3, #0
+ bne .L1745
mov r0, r5
bl allocate_new_data_superblock
- b .L1769
-.L1806:
- mov r5, r3
- b .L1766
-.L1791:
+ b .L1744
+.L1781:
+ ldr r5, .L1791+20
+ b .L1744
+.L1768:
ldrh r3, [r5, #4]
cmp r3, #0
- beq .L1772
- movs r2, #0
+ beq .L1748
add r1, sp, #44
+ movs r2, #0
mov r0, r7
- mov r8, #20
bl log2phys
mov r0, r5
- mul r8, r8, fp
bl get_new_active_ppa
- ldrh r2, [r4, #312]
+ movs r3, #20
+ mul r3, r3, r10
+ str r3, [sp, #12]
+ ldr r2, [sp, #12]
ldr r3, [r4, #3296]
- mul r1, r2, fp
- add r3, r3, r8
+ add r3, r3, r2
+ ldrh r2, [r4, #312]
str r0, [r3, #4]
- str r7, [r3, #16]
+ mul r1, r10, r2
bic r1, r1, #3
str r1, [sp, #28]
ldr r0, [sp, #28]
ldr r1, [r4, #3336]
- add r9, r1, r0
str r1, [sp, #32]
- str r9, [r3, #12]
+ add r9, r1, r0
movs r1, #0
+ strd r9, r7, [r3, #12]
mov r0, r9
bl ftl_memset
+ ldr r3, [sp]
+ ldrh r6, [r4, #258]
+ cmp r7, r3
+ beq .L1749
+ ldr r2, [sp, #12]
+ ldr r3, [r4, #3296]
+ add r3, r3, r2
+ ldr r2, [sp, #24]
+ cmp r7, r2
+ bne .L1787
ldr r3, [sp, #4]
- cmp r7, r3
- beq .L1773
- ldr r3, [sp, #20]
- cmp r7, r3
- bne .L1811
- ldrh r2, [r4, #258]
- ldr r3, [sp, #8]
- smulbb r2, r2, r7
- add r6, r10, r3
+ add r2, r8, r3
+ smulbb r3, r7, r6
+ subs r6, r2, r3
movs r3, #0
str r3, [sp, #16]
- subs r6, r6, r2
uxth r6, r6
- b .L1776
-.L1773:
- ldrh r6, [r4, #258]
- mov r0, r10
+ b .L1752
+.L1749:
mov r1, r6
+ mov r0, r8
bl __aeabi_uidivmod
- ldr r3, [sp, #8]
+ ldr r3, [sp, #4]
subs r6, r6, r1
str r1, [sp, #16]
cmp r6, r3
it cs
movcs r6, r3
-.L1776:
- ldrh r3, [r4, #258]
- cmp r6, r3
- ldr r3, [sp, #4]
- bne .L1777
- cmp r7, r3
+.L1752:
+ ldrh r2, [r4, #258]
ldr r3, [r4, #3296]
- itte ne
- mulne r6, r6, r7
- ldrne r2, [sp, #12]
- ldreq r2, [sp, #12]
- add r3, r3, r8
- itett ne
- subne r6, r6, r10
- streq r2, [r3, #8]
- addne r6, r2, r6, lsl #9
- strne r6, [r3, #8]
-.L1779:
+ ldr r1, [sp, #12]
+ cmp r2, r6
+ ldr r2, [sp]
+ add r3, r3, r1
+ bne .L1753
+ cmp r7, r2
+ bne .L1787
+ ldr r2, [sp, #8]
+ str r2, [r3, #8]
+.L1755:
ldrb r2, [r5, #6] @ zero_extendqisi2
ldrh r3, [r4, #232]
cmp r2, r3
- bcc .L1788
+ bcc .L1765
+ ldr r1, .L1791+8
movw r2, #1143
- ldr r1, .L1815+12
- ldr r0, .L1815+16
+ ldr r0, .L1791+12
bl sftl_printk
-.L1788:
- ldr r2, [sp, #32]
+.L1765:
+ ldrd r1, r2, [sp, #28]
movw r3, #61589
- ldr r1, [sp, #28]
- add fp, fp, #1
+ add r10, r10, #1
strh r3, [r2, r1] @ movhi
- ldr r3, [r4, #2592]
str r7, [r9, #8]
adds r7, r7, #1
+ ldr r3, [r4, #2592]
str r3, [r9, #4]
- adds r3, r3, #1
adds r2, r3, #1
- it eq
+ adds r3, r3, #2
+ itee ne
+ strne r2, [r4, #2592]
moveq r3, #0
- str r3, [r4, #2592]
+ streq r3, [r4, #2592]
ldr r3, [sp, #44]
str r3, [r9, #12]
ldrh r3, [r5]
strh r3, [r9, #2] @ movhi
- b .L1771
-.L1816:
- .align 2
-.L1815:
- .word __stack_chk_guard
- .word .LANCHOR0
- .word .LANCHOR2
- .word .LANCHOR1+591
- .word .LC8
- .word .LANCHOR0+24
-.L1777:
- cmp r7, r3
- ldr r3, [r4, #3296]
+ b .L1747
+.L1753:
+ cmp r7, r2
ite eq
ldreq r2, [r4, #3312]
ldrne r2, [r4, #3316]
- add r3, r3, r8
str r2, [r3, #8]
- ldr r3, [sp, #44]
- adds r0, r3, #1
- beq .L1782
- str r3, [sp, #52]
- movs r1, #1
- ldr r3, [r4, #3296]
- add r0, sp, #48
+ ldr r2, [sp, #44]
+ adds r1, r2, #1
+ beq .L1758
str r7, [sp, #64]
- add r3, r3, r8
+ add r0, sp, #48
+ str r2, [sp, #52]
+ movs r1, #1
ldr r2, [r3, #8]
- ldr r3, [r3, #12]
str r2, [sp, #56]
movs r2, #0
+ ldr r3, [r3, #12]
str r3, [sp, #60]
bl FlashReadPages
ldr r3, [sp, #48]
- adds r1, r3, #1
- bne .L1783
+ adds r2, r3, #1
+ bne .L1759
ldr r2, [r4, #2712]
- ldr r0, .L1817
+ ldr r0, .L1791+24
adds r2, r2, #1
str r2, [r4, #2712]
mov r2, r7
ldr r1, [r9, #8]
bl sftl_printk
-.L1786:
- ldr r3, [sp, #4]
+.L1763:
+ ldr r3, [sp]
lsls r2, r6, #9
cmp r7, r3
- bne .L1787
- ldr r3, [r4, #3296]
+ bne .L1764
ldr r1, [sp, #12]
- add r3, r3, r8
+ ldr r3, [r4, #3296]
+ add r3, r3, r1
+ ldr r1, [sp, #8]
ldr r0, [r3, #8]
ldr r3, [sp, #16]
add r0, r0, r3, lsl #9
-.L1813:
+.L1789:
bl ftl_memcpy
- b .L1779
-.L1783:
+ b .L1755
+.L1792:
+ .align 2
+.L1791:
+ .word .LANCHOR0
+ .word .LANCHOR2
+ .word .LANCHOR1+591
+ .word .LC8
+ .word .LANCHOR0+24
+ .word .LANCHOR0+76
+ .word .LC125
+.L1759:
ldr r3, [r9, #8]
- cmp r7, r3
- beq .L1785
+ cmp r3, r7
+ beq .L1763
ldr r3, [r4, #2712]
mov r2, r7
- ldr r0, .L1817+4
+ ldr r0, .L1793
adds r3, r3, #1
str r3, [r4, #2712]
ldr r1, [r9, #8]
bl sftl_printk
-.L1785:
ldr r3, [r9, #8]
- cmp r7, r3
- beq .L1786
+ cmp r3, r7
+ beq .L1763
+ ldr r1, .L1793+4
mov r2, #1128
- ldr r1, .L1817+8
- ldr r0, .L1817+12
+ ldr r0, .L1793+8
bl sftl_printk
- b .L1786
-.L1782:
- ldr r3, [r4, #3296]
- movs r1, #0
+ b .L1763
+.L1758:
ldrh r2, [r4, #310]
- add r3, r3, r8
+ movs r1, #0
ldr r0, [r3, #8]
bl ftl_memset
- b .L1786
-.L1787:
+ b .L1763
+.L1764:
ldrh r1, [r4, #258]
ldr r0, [sp, #12]
ldr r3, [r4, #3296]
muls r1, r7, r1
- add r3, r3, r8
- sub r1, r1, r10
+ add r3, r3, r0
+ ldr r0, [sp, #8]
+ sub r1, r1, r8
add r1, r0, r1, lsl #9
ldr r0, [r3, #8]
- b .L1813
-.L1811:
- ldr r3, [r4, #3296]
- ldr r2, [sp, #12]
- add r8, r8, r3
- ldrh r3, [r4, #258]
- muls r3, r7, r3
- sub r3, r3, r10
- add r3, r2, r3, lsl #9
- str r3, [r8, #8]
- b .L1779
-.L1794:
+ b .L1789
+.L1787:
+ muls r6, r7, r6
+ ldr r2, [sp, #8]
+ sub r6, r6, r8
+ add r6, r2, r6, lsl #9
+ str r6, [r3, #8]
+ b .L1755
+.L1782:
mov r5, #256
movw r6, #65535
-.L1797:
+.L1771:
+ ldrh r2, [r4, #222]
ldrh r3, [r4, #172]
+ ands r3, r3, r2
cmp r3, r6
- bne .L1795
- ldrh r3, [r4, #222]
- cmp r3, r6
- bne .L1795
+ bne .L1772
movs r0, #0
bl List_get_gc_head_node
uxth r0, r0
bl FtlGcRefreshBlock
-.L1795:
+.L1772:
movs r1, #1
- movs r3, #128
mov r0, r1
+ movs r3, #128
strh r3, [r4, #3154] @ movhi
strh r3, [r4, #3152] @ movhi
bl rk_ftl_garbage_collect
@@ -12358,21 +12602,16 @@
bl rk_ftl_garbage_collect
ldrh r3, [r4, #224]
cmp r3, #2
- bhi .L1796
+ bhi .L1773
subs r5, r5, #1
- bne .L1797
- b .L1796
-.L1801:
+ bne .L1771
+ b .L1773
+.L1777:
mov r0, #-1
- b .L1760
-.L1798:
- add sp, sp, #76
- @ sp needed
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L1818:
+ b .L1734
+.L1794:
.align 2
-.L1817:
- .word .LC125
+.L1793:
.word .LC126
.word .LANCHOR1+591
.word .LC8
@@ -12395,6 +12634,11 @@
b rk_ftl_garbage_collect
.fnend
.size sftl_gc, .-sftl_gc
+ .section .rodata.str1.1
+.LC127:
+ .ascii "%s hash error this.id =%x page =%x pre_id =%x hash "
+ .ascii "=%x hash_r =%x\012\000"
+ .text
.align 1
.global FtlLoadSysInfo
.syntax unified
@@ -12410,113 +12654,113 @@
.save {r4, r5, r6, r7, r8, r9, r10, lr}
.pad #16
movs r1, #0
- ldr r4, .L1850
- ldr r3, [r4, #3300]
+ ldr r4, .L1824
ldrh r2, [r4, #240]
- ldr r0, [r4, #72]
+ ldr r3, [r4, #3300]
str r3, [r4, #3460]
- ldr r3, [r4, #3332]
+ ldr r0, [r4, #72]
lsls r2, r2, #1
+ ldr r3, [r4, #3332]
str r3, [r4, #3464]
bl ftl_memset
ldrh r0, [r4, #2624]
movw r3, #65535
cmp r0, r3
- bne .L1821
-.L1832:
+ bne .L1797
+.L1809:
mov r0, #-1
-.L1820:
+.L1796:
add sp, sp, #16
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, pc}
-.L1821:
+.L1797:
movs r1, #1
- ldr r8, .L1850+20
+ ldr r8, .L1824+4
bl FtlGetLastWrittenPage
- ldr r9, .L1850+4
- addw r7, r4, #3452
+ ldr r9, .L1824+8
ldrsh r6, [r4, #2624]
sxth r5, r0
- adds r0, r0, #1
- strh r0, [r4, #2626] @ movhi
-.L1823:
+ addw r7, r4, #3452
+ adds r3, r5, #1
+ strh r3, [r4, #2626] @ movhi
+.L1799:
cmp r5, #0
- bge .L1829
+ bge .L1806
+ ldr r1, .L1824+8
movw r2, #1474
- ldr r1, .L1850+4
- ldr r0, .L1850+8
+ ldr r0, .L1824+12
bl sftl_printk
- b .L1828
-.L1829:
+ b .L1805
+.L1806:
orr r3, r5, r6, lsl #10
movs r2, #1
- mov r1, r2
str r3, [r4, #3456]
- mov r0, r7
+ mov r1, r2
ldr r3, [r4, #3300]
+ mov r0, r7
str r3, [r4, #3460]
bl FlashReadPages
ldr r3, [r4, #3464]
ldr r10, [r3, #12]
- cmp r10, #0
- beq .L1824
ldr r3, [r4, #3452]
+ cmp r10, #0
+ beq .L1800
adds r3, r3, #1
- beq .L1824
+ beq .L1801
ldrh r1, [r4, #310]
ldr r0, [r4, #3460]
bl js_hash
cmp r10, r0
- beq .L1824
+ beq .L1802
ldrh r3, [r4, #2628]
mov r2, r6
- str r0, [sp, #8]
+ strd r10, r0, [sp, #4]
mov r1, r9
- str r10, [sp, #4]
str r3, [sp]
mov r3, r5
- ldr r0, .L1850+12
+ ldr r0, .L1824+16
bl sftl_printk
- cbnz r5, .L1825
+ cbnz r5, .L1803
ldrh r3, [r4, #2628]
cmp r6, r3
- beq .L1825
+ beq .L1803
ldrh r5, [r4, #304]
sxth r6, r3
-.L1827:
+.L1801:
subs r5, r5, #1
sxth r5, r5
- b .L1823
-.L1825:
+ b .L1799
+.L1803:
mov r3, #-1
str r3, [r4, #3452]
-.L1824:
- ldr r3, [r4, #3452]
+ b .L1801
+.L1800:
adds r3, r3, #1
- beq .L1827
+ beq .L1801
+.L1802:
ldr r3, [r4, #3300]
ldr r3, [r3]
cmp r3, r8
- bne .L1827
+ bne .L1801
ldr r3, [r4, #3332]
ldrh r2, [r3]
movw r3, #61604
cmp r2, r3
- bne .L1827
-.L1828:
+ bne .L1801
+.L1805:
ldrh r3, [r4, #240]
ldrh r2, [r4, #310]
adds r3, r3, #24
cmp r2, r3, lsl #1
- bcs .L1831
+ bcs .L1808
+ ldr r1, .L1824+8
movw r2, #1476
- ldr r1, .L1850+4
- ldr r0, .L1850+8
+ ldr r0, .L1824+12
bl sftl_printk
-.L1831:
- movs r2, #48
+.L1808:
ldr r1, [r4, #3460]
- ldr r0, .L1850+16
+ movs r2, #48
+ ldr r0, .L1824+20
bl ftl_memcpy
ldrh r2, [r4, #240]
ldr r1, [r4, #3460]
@@ -12525,80 +12769,79 @@
adds r1, r1, #48
bl ftl_memcpy
ldr r2, [r4, #2468]
- ldr r3, .L1850+20
+ ldr r3, .L1824+4
cmp r2, r3
- bne .L1832
+ bne .L1809
ldrb r2, [r4, #2478] @ zero_extendqisi2
ldrh r3, [r4, #254]
ldrh r5, [r4, #2476]
cmp r2, r3
strh r5, [r4, #2630] @ movhi
- bne .L1832
+ bne .L1809
ldrh r3, [r4, #302]
ldrh r2, [r4, #258]
- ldr r6, [r4, #244]
ldrh r0, [r4, #358]
+ ldr r6, [r4, #244]
muls r3, r5, r3
- str r5, [r4, #3672]
- ldrh r1, [r4, #232]
- subs r0, r6, r0
- subs r0, r0, r5
+ add r0, r0, r5
str r3, [r4, #2552]
+ subs r0, r6, r0
+ ldrh r1, [r4, #232]
+ str r5, [r4, #3672]
muls r3, r2, r3
str r3, [r4, #340]
bl __aeabi_uidiv
cmp r5, r6
strh r0, [r4, #2620] @ movhi
- bls .L1833
+ bls .L1810
+ ldr r1, .L1824+8
movw r2, #1498
- ldr r1, .L1850+4
- ldr r0, .L1850+8
+ ldr r0, .L1824+12
bl sftl_printk
-.L1833:
+.L1810:
ldrh r3, [r4, #2484]
ldrh r1, [r4, #2482]
+ strh r1, [r4, #24] @ movhi
lsrs r2, r3, #6
- and r3, r3, #63
- strb r3, [r4, #30]
strh r2, [r4, #26] @ movhi
ldrh r2, [r4, #2486]
- ldrb r3, [r4, #2479] @ zero_extendqisi2
- strh r1, [r4, #24] @ movhi
+ and r3, r3, #63
strh r2, [r4, #76] @ movhi
ldrh r2, [r4, #2488]
- strb r3, [r4, #32]
- movw r3, #65535
- strh r3, [r4, #172] @ movhi
- movs r3, #0
- strh r3, [r4, #174] @ movhi
+ strb r3, [r4, #30]
+ ldrb r3, [r4, #2479] @ zero_extendqisi2
lsrs r0, r2, #6
and r2, r2, #63
strb r2, [r4, #82]
ldrb r2, [r4, #2480] @ zero_extendqisi2
- strh r0, [r4, #78] @ movhi
- strb r3, [r4, #178]
strb r2, [r4, #84]
ldrh r2, [r4, #2490]
- strb r3, [r4, #180]
- str r3, [r4, #2576]
strh r2, [r4, #124] @ movhi
ldrh r2, [r4, #2492]
- str r3, [r4, #2564]
- str r3, [r4, #2556]
- str r3, [r4, #2572]
+ strh r0, [r4, #78] @ movhi
+ strb r3, [r4, #32]
+ movw r3, #65535
lsrs r0, r2, #6
and r2, r2, #63
strb r2, [r4, #130]
ldrb r2, [r4, #2481] @ zero_extendqisi2
- str r3, [r4, #2600]
- strh r0, [r4, #126] @ movhi
strb r2, [r4, #132]
ldr r2, [r4, #2500]
+ str r3, [r4, #172]
+ movs r3, #0
str r2, [r4, #2596]
+ strb r3, [r4, #178]
+ strb r3, [r4, #180]
+ str r3, [r4, #2576]
+ str r3, [r4, #2564]
+ str r3, [r4, #2556]
+ str r3, [r4, #2572]
+ str r3, [r4, #2600]
str r3, [r4, #2612]
- ldr r2, [r4, #2588]
+ strh r0, [r4, #126] @ movhi
str r3, [r4, #2568]
ldr r3, [r4, #2508]
+ ldr r2, [r4, #2588]
cmp r3, r2
ldr r2, [r4, #2592]
it hi
@@ -12609,48 +12852,56 @@
strhi r3, [r4, #2592]
movw r3, #65535
cmp r1, r3
- beq .L1836
- ldr r0, .L1850+24
+ beq .L1813
+ ldr r0, .L1824+24
bl make_superblock
-.L1836:
+.L1813:
ldrh r2, [r4, #76]
movw r3, #65535
cmp r2, r3
- beq .L1837
- ldr r0, .L1850+28
+ beq .L1814
+ ldr r0, .L1824+28
bl make_superblock
-.L1837:
+.L1814:
ldrh r2, [r4, #124]
movw r3, #65535
cmp r2, r3
- beq .L1838
- ldr r0, .L1850+32
+ beq .L1815
+ ldr r0, .L1824+32
bl make_superblock
-.L1838:
+.L1815:
ldrh r2, [r4, #172]
movw r3, #65535
cmp r2, r3
- beq .L1839
- ldr r0, .L1850+36
+ beq .L1816
+ ldr r0, .L1824+36
bl make_superblock
-.L1839:
+.L1816:
movs r0, #0
- b .L1820
-.L1851:
+ b .L1796
+.L1825:
.align 2
-.L1850:
+.L1824:
.word .LANCHOR0
+ .word 1179929683
.word .LANCHOR1+600
.word .LC8
.word .LC127
.word .LANCHOR0+2468
- .word 1179929683
.word .LANCHOR0+24
.word .LANCHOR0+76
.word .LANCHOR0+124
.word .LANCHOR0+172
.fnend
.size FtlLoadSysInfo, .-FtlLoadSysInfo
+ .section .rodata.str1.1
+.LC128:
+ .ascii "%s last blk_id =%x page =%x hash error hash =%x has"
+ .ascii "h_r =%x\012\000"
+.LC129:
+ .ascii "%s scan blk_id =%x page =%x hash error hash =%x has"
+ .ascii "h_r =%x\012\000"
+ .text
.align 1
.global FtlMapTblRecovery
.syntax unified
@@ -12660,89 +12911,93 @@
.type FtlMapTblRecovery, %function
FtlMapTblRecovery:
.fnstart
- @ args = 0, pretend = 0, frame = 24
+ @ args = 0, pretend = 0, frame = 32
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
- .pad #36
- sub sp, sp, #36
- ldr r3, [r0, #24]
mov r5, r0
+ ldr r4, .L1865
+ .pad #44
+ sub sp, sp, #44
+ ldr r3, [r0, #24]
movs r1, #0
- ldrh r10, [r0, #6]
- str r3, [sp, #8]
+ addw r9, r4, #3452
+ movs r7, #0
+ str r3, [sp, #12]
+ ldr r3, [r0, #12]
+ str r3, [sp, #24]
ldr r3, [r0, #16]
- ldr r4, .L1893
- ldr r9, [r0, #12]
- lsl r2, r10, #2
+ str r3, [sp, #32]
+ ldrh r3, [r0, #6]
str r3, [sp, #16]
ldrh r3, [r0, #8]
- ldr r0, [sp, #8]
- str r3, [sp, #12]
+ str r3, [sp, #28]
+ ldr r3, [sp, #16]
+ ldr r0, [sp, #12]
+ lsls r2, r3, #2
bl ftl_memset
ldr r3, [r4, #3300]
- movs r2, #1
ldr fp, [r4, #3332]
- str r2, [r5, #36]
str r3, [r4, #3460]
- movw r3, #65535
+ mov r3, #-1
str fp, [r4, #3464]
- strh r3, [r5] @ movhi
- strh r3, [r5, #2] @ movhi
- movs r3, #0
- mov r8, r3
- str r3, [r5, #32]
- str r3, [r5, #28]
-.L1853:
- ldr r3, [sp, #12]
- sxth r6, r8
+ strd r7, r7, [r5, #28]
+ str r3, [r5]
+ movs r3, #1
+ str r3, [r5, #36]
+.L1827:
+ ldr r3, [sp, #28]
+ sxth r6, r7
+ uxth r8, r7
cmp r6, r3
- bge .L1872
- ldr r3, [sp, #12]
- lsls r7, r6, #1
+ bge .L1847
+ ldr r3, [sp, #24]
+ add r3, r3, r6, lsl #1
+ str r3, [sp, #20]
+ ldr r3, [sp, #28]
subs r3, r3, #1
- cmp r6, r3
- bne .L1854
+ cmp r3, r6
+ bne .L1828
+ ldr r3, [sp, #20]
movs r1, #1
- ldrh r0, [r9, r6, lsl #1]
+ ldr r10, .L1865+4
+ ldrh r0, [r3]
bl FtlGetLastWrittenPage
- sxth r3, r0
- adds r0, r0, #1
+ sxth r7, r0
+ adds r3, r7, #1
+ strh r3, [r5, #2] @ movhi
+ ldr r3, [sp, #32]
strh r8, [r5] @ movhi
- add r7, r7, r9
- str r3, [sp, #12]
mov r8, #0
- ldr r3, [sp, #16]
- strh r0, [r5, #2] @ movhi
ldr r3, [r3, r6, lsl #2]
str r3, [r5, #28]
-.L1855:
- ldr r3, [sp, #12]
+.L1829:
sxth r9, r8
- adds r2, r3, #1
+ adds r2, r7, #1
cmp r9, r2
- blt .L1858
-.L1872:
+ blt .L1833
+.L1847:
mov r0, r5
bl ftl_free_no_use_map_blk
ldrh r2, [r5, #2]
ldrh r3, [r4, #304]
cmp r2, r3
- bne .L1860
+ bne .L1835
mov r0, r5
bl ftl_map_blk_alloc_new_blk
-.L1860:
+.L1835:
mov r0, r5
bl ftl_map_blk_gc
mov r0, r5
bl ftl_map_blk_gc
movs r0, #0
- add sp, sp, #36
+ add sp, sp, #44
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L1858:
- ldrh r2, [r7]
- ldr r0, .L1893+4
+.L1833:
+ ldr r3, [sp, #20]
+ ldr r0, .L1865+8
+ ldrh r2, [r3]
orr r2, r9, r2, lsl #10
str r2, [r4, #3456]
movs r2, #1
@@ -12750,50 +13005,51 @@
bl FlashReadPages
ldr r2, [r4, #3464]
ldr r2, [r2, #12]
- str r2, [sp, #16]
- cbz r2, .L1856
+ str r2, [sp, #24]
+ cbz r2, .L1830
ldr r1, [r4, #3452]
adds r1, r1, #1
- beq .L1856
+ beq .L1848
ldrh r1, [r4, #310]
ldr r0, [r4, #3460]
bl js_hash
- ldr r2, [sp, #16]
+ ldr r2, [sp, #24]
cmp r2, r0
- beq .L1856
- str r0, [sp, #4]
+ beq .L1832
+ strd r2, r0, [sp]
mov r3, r9
- str r2, [sp]
+ ldr r0, .L1865+12
mov r2, r6
- ldr r1, .L1893+8
- ldr r0, .L1893+12
+ mov r1, r10
bl sftl_printk
mov r3, #-1
str r3, [r4, #3452]
-.L1856:
+.L1848:
+ add r8, r8, #1
+ b .L1829
+.L1830:
ldr r3, [r4, #3452]
adds r3, r3, #1
- beq .L1857
+ beq .L1848
+.L1832:
ldrh r3, [fp, #8]
- cmp r10, r3
- bls .L1857
+ ldr r2, [sp, #16]
+ cmp r3, r2
+ bcs .L1848
ldrh r1, [fp]
ldrh r2, [r5, #4]
cmp r1, r2
ittt eq
+ ldreq r1, [sp, #12]
ldreq r2, [r4, #3456]
- ldreq r1, [sp, #8]
streq r2, [r1, r3, lsl #2]
-.L1857:
- add r8, r8, #1
- b .L1855
-.L1854:
+ b .L1848
+.L1828:
ldr r3, [r4, #3300]
- ldr r0, .L1893+4
+ mov r0, r9
str r3, [r4, #3460]
- add r3, r9, r7
- ldrh r2, [r9, r6, lsl #1]
- str r3, [sp, #20]
+ ldr r3, [sp, #24]
+ ldrh r2, [r3, r6, lsl #1]
ldrh r3, [r4, #304]
subs r3, r3, #1
orr r3, r3, r2, lsl #10
@@ -12803,101 +13059,106 @@
bl FlashReadPages
ldr r3, [r4, #3452]
adds r3, r3, #1
- beq .L1874
+ beq .L1851
ldrh r2, [fp]
ldrh r3, [r5, #4]
cmp r2, r3
- bne .L1874
+ bne .L1851
ldrh r2, [fp, #8]
movw r3, #64245
cmp r2, r3
- beq .L1862
-.L1874:
- movs r7, #0
-.L1863:
- ldrh r2, [r4, #304]
- sxth r3, r7
- cmp r3, r2
- bge .L1870
- ldr r2, [sp, #20]
- ldr r0, .L1893+4
- str r3, [sp, #28]
- ldrh r2, [r2]
- orr r2, r3, r2, lsl #10
+ beq .L1852
+.L1851:
+ mov r8, #0
+ b .L1843
+.L1839:
+ ldr r2, [r4, #3300]
+ lsls r6, r0, #3
+ ldr ip, [sp, #16]
+ ldr r3, [r2, r0, lsl #3]
+ uxth r0, r3
+ cmp ip, r0
+ bls .L1838
+ add r2, r2, r6
+ mov r3, r0
+ ldr r0, [sp, #12]
+ ldr r2, [r2, #4]
+ str r2, [r0, r3, lsl #2]
+.L1838:
+ adds r1, r1, #1
+.L1837:
+ ldrh r3, [r4, #304]
+ sxth r0, r1
+ subs r3, r3, #1
+ cmp r0, r3
+ blt .L1839
+.L1845:
+ adds r7, r7, #1
+ b .L1827
+.L1852:
+ movs r1, #0
+ b .L1837
+.L1844:
+ ldr r3, [sp, #20]
+ mov r0, r9
+ ldrh r2, [r3]
+ orr r2, r10, r2, lsl #10
str r2, [r4, #3456]
movs r2, #1
mov r1, r2
bl FlashReadPages
ldr r2, [r4, #3464]
ldr r2, [r2, #12]
- str r2, [sp, #24]
- cbz r2, .L1867
+ str r2, [sp, #36]
+ cbz r2, .L1840
ldr r1, [r4, #3452]
adds r1, r1, #1
- beq .L1867
+ beq .L1849
ldrh r1, [r4, #310]
ldr r0, [r4, #3460]
bl js_hash
- ldr r2, [sp, #24]
+ ldr r2, [sp, #36]
cmp r2, r0
- beq .L1867
- str r0, [sp, #4]
- str r2, [sp]
+ beq .L1842
+ strd r2, r0, [sp]
+ mov r3, r10
+ ldr r1, .L1865+4
mov r2, r6
- ldr r3, [sp, #28]
- ldr r1, .L1893+8
- ldr r0, .L1893+16
+ ldr r0, .L1865+16
bl sftl_printk
mov r3, #-1
str r3, [r4, #3452]
-.L1867:
+.L1849:
+ add r8, r8, #1
+.L1843:
+ ldrh r2, [r4, #304]
+ sxth r10, r8
+ cmp r10, r2
+ blt .L1844
+ b .L1845
+.L1840:
ldr r3, [r4, #3452]
adds r3, r3, #1
- beq .L1868
+ beq .L1849
+.L1842:
ldrh r3, [fp, #8]
- cmp r10, r3
- bls .L1868
+ ldr r2, [sp, #16]
+ cmp r3, r2
+ bcs .L1849
ldrh r1, [fp]
ldrh r2, [r5, #4]
cmp r1, r2
ittt eq
+ ldreq r1, [sp, #12]
ldreq r2, [r4, #3456]
- ldreq r1, [sp, #8]
streq r2, [r1, r3, lsl #2]
-.L1868:
- adds r7, r7, #1
- b .L1863
-.L1862:
- movs r1, #0
- movs r0, #4
-.L1864:
- ldrh r2, [r4, #304]
- sxth r3, r1
- subs r2, r2, #1
- cmp r3, r2
- blt .L1866
-.L1870:
- add r8, r8, #1
- b .L1853
+ b .L1849
.L1866:
- ldr r6, [r4, #3300]
- ldr r2, [r6, r3, lsl #3]
- uxth r7, r2
- cmp r10, r7
- bls .L1865
- add r3, r0, r3, lsl #3
- ldr r3, [r6, r3]
- ldr r6, [sp, #8]
- str r3, [r6, r7, lsl #2]
-.L1865:
- adds r1, r1, #1
- b .L1864
-.L1894:
.align 2
-.L1893:
+.L1865:
.word .LANCHOR0
- .word .LANCHOR0+3452
.word .LANCHOR1+615
+ .word .LANCHOR0+3452
.word .LC128
.word .LC129
.fnend
@@ -12913,7 +13174,7 @@
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r0, .L1896
+ ldr r0, .L1868
push {r3, lr}
.save {r3, lr}
ldrh r3, [r0, #320]
@@ -12936,9 +13197,9 @@
bl FtlMapTblRecovery
movs r0, #0
pop {r3, pc}
-.L1897:
+.L1869:
.align 2
-.L1896:
+.L1868:
.word .LANCHOR0
.fnend
.size FtlLoadVonderInfo, .-FtlLoadVonderInfo
@@ -12956,13 +13217,13 @@
push {r3, lr}
.save {r3, lr}
bl FtlL2PDataInit
- ldr r0, .L1899
+ ldr r0, .L1871
bl FtlMapTblRecovery
movs r0, #0
pop {r3, pc}
-.L1900:
+.L1872:
.align 2
-.L1899:
+.L1871:
.word .LANCHOR0+3392
.fnend
.size FtlLoadMapInfo, .-FtlLoadMapInfo
@@ -12980,7 +13241,7 @@
push {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
movs r3, #0
- ldr r4, .L1917
+ ldr r4, .L1889
ldrh r0, [r4, #236]
strh r3, [r4, #3472] @ movhi
bl FtlFreeSysBlkQueueInit
@@ -12988,17 +13249,17 @@
ldrh r2, [r4, #2624]
movw r3, #65535
cmp r2, r3
- bne .L1902
-.L1904:
+ bne .L1874
+.L1876:
mov r5, #-1
-.L1901:
+.L1873:
mov r0, r5
pop {r4, r5, r6, pc}
-.L1902:
+.L1874:
bl FtlLoadSysInfo
mov r5, r0
cmp r0, #0
- bne .L1904
+ bne .L1876
bl FtlLoadMapInfo
bl FtlLoadVonderInfo
bl Ftl_load_ext_data
@@ -13008,27 +13269,28 @@
bl FtlPowerLostRecovery
movs r0, #1
bl FtlUpdateVaildLpn
+ ldr r2, [r4, #2540]
ldrh r1, [r4, #338]
mov r3, r5
- ldr r2, [r4, #2540]
+ adds r2, r2, #4
movs r0, #12
-.L1905:
+.L1877:
cmp r3, r1
- bge .L1910
- mla r6, r0, r3, r2
- ldr r6, [r6, #4]
+ bge .L1882
+ mul r6, r0, r3
+ ldr r6, [r2, r6]
cmp r6, #0
- bge .L1906
-.L1910:
+ bge .L1878
+.L1882:
ldrh r2, [r4, #2496]
cmp r3, r1
add r2, r2, #1
strh r2, [r4, #2496] @ movhi
- bge .L1916
-.L1907:
- ldr r0, .L1917+4
+ bge .L1888
+.L1879:
+ ldr r0, .L1889+4
bl FtlSuperblockPowerLostFix
- ldr r0, .L1917+8
+ ldr r0, .L1889+8
bl FtlSuperblockPowerLostFix
ldrh r1, [r4, #24]
ldr r2, [r4, #72]
@@ -13036,9 +13298,9 @@
ldrh r3, [r2, r1, lsl #1]
subs r3, r3, r0
strh r3, [r2, r1, lsl #1] @ movhi
- ldrh r3, [r4, #302]
- ldr r1, [r4, #72]
ldrh r0, [r4, #76]
+ ldr r1, [r4, #72]
+ ldrh r3, [r4, #302]
strh r3, [r4, #26] @ movhi
movs r3, #0
strb r3, [r4, #30]
@@ -13057,37 +13319,38 @@
bl l2p_flush
bl FtlVpcTblFlush
bl FtlVpcTblFlush
- b .L1911
-.L1906:
+ b .L1883
+.L1878:
adds r3, r3, #1
- b .L1905
-.L1916:
+ b .L1877
+.L1888:
ldrh r3, [r4, #3472]
cmp r3, #0
- bne .L1907
-.L1911:
+ bne .L1879
+.L1883:
ldrh r0, [r4, #24]
movw r3, #65535
cmp r0, r3
- beq .L1912
+ beq .L1884
ldrh r3, [r4, #28]
- cbnz r3, .L1912
- ldrh r3, [r4, #80]
- cbnz r3, .L1912
+ ldrh r2, [r4, #80]
+ orrs r3, r3, r2
+ uxth r3, r3
+ cbnz r3, .L1884
bl FtlGcRefreshBlock
ldrh r0, [r4, #76]
bl FtlGcRefreshBlock
bl FtlVpcTblFlush
- ldr r0, .L1917+4
+ ldr r0, .L1889+4
bl allocate_new_data_superblock
- ldr r0, .L1917+8
+ ldr r0, .L1889+8
bl allocate_new_data_superblock
-.L1912:
+.L1884:
bl FtlVpcCheckAndModify
- b .L1901
-.L1918:
+ b .L1873
+.L1890:
.align 2
-.L1917:
+.L1889:
.word .LANCHOR0
.word .LANCHOR0+24
.word .LANCHOR0+76
@@ -13107,142 +13370,138 @@
push {r3, r4, r5, r6, r7, r8, r9, lr}
.save {r3, r4, r5, r6, r7, r8, r9, lr}
movs r3, #0
- ldr r4, .L1943
+ ldr r4, .L1915
ldrh r0, [r4, #236]
str r3, [r4, #2588]
str r3, [r4, #2592]
str r3, [r4, #2604]
bl FtlFreeSysBlkQueueInit
bl FtlLoadBbt
- cbz r0, .L1920
+ cbz r0, .L1892
bl FtlMakeBbt
-.L1920:
- ldr r0, .L1943+4
+.L1892:
+ ldr r0, .L1915+4
movs r2, #0
-.L1921:
+.L1893:
ldrh r1, [r4, #258]
uxth r3, r2
adds r2, r2, #1
cmp r3, r1, lsl #7
- blt .L1922
+ blt .L1894
ldrh r6, [r4, #240]
movs r5, #0
-.L1923:
+.L1895:
ldrh r3, [r4, #242]
cmp r3, r6
- bhi .L1924
+ bhi .L1896
ldrh r1, [r4, #232]
subs r3, r5, #3
cmp r3, r1, lsl #1
- bge .L1925
-.L1929:
+ bge .L1897
+.L1901:
movs r5, #0
- mov r6, r5
-.L1926:
+ mov r8, r5
+.L1898:
ldrh r3, [r4, #240]
uxth r0, r5
- adds r5, r5, #1
cmp r3, r0
- bhi .L1930
- ldrh r3, [r4, #242]
+ bhi .L1902
ldrh r5, [r4, #232]
ldr r9, [r4, #244]
- str r3, [r4, #3284]
+ ldrh r3, [r4, #242]
mov r1, r5
mov r0, r9
+ str r3, [r4, #3284]
bl __aeabi_uidiv
ubfx r7, r0, #5, #16
- mov r8, r0
add r3, r7, #36
- str r0, [r4, #2552]
strh r3, [r4, #2620] @ movhi
movs r3, #24
- muls r3, r5, r3
- cmp r6, r3
- ble .L1931
- mov r1, r5
- sub r0, r9, r6
- bl __aeabi_uidiv
+ mov r6, r0
str r0, [r4, #2552]
- lsrs r0, r0, #5
- adds r0, r0, #24
- strh r0, [r4, #2620] @ movhi
-.L1931:
+ muls r3, r5, r3
+ cmp r8, r3
+ ble .L1903
+ mov r1, r5
+ sub r0, r9, r8
+ bl __aeabi_uidiv
+ lsrs r3, r0, #5
+ adds r3, r3, #24
+ str r0, [r4, #2552]
+ strh r3, [r4, #2620] @ movhi
+.L1903:
ldrh r3, [r4, #294]
- cbz r3, .L1933
+ cbz r3, .L1905
ldrh r2, [r4, #2620]
add r2, r2, r3, lsr #1
strh r2, [r4, #2620] @ movhi
mul r2, r5, r3
- cmp r6, r2
+ cmp r8, r2
itttt lt
+ strlt r6, [r4, #2552]
addlt r3, r3, #32
- strlt r8, [r4, #2552]
addlt r3, r3, r7
strhlt r3, [r4, #2620] @ movhi
-.L1933:
- ldrh r2, [r4, #2620]
+.L1905:
+ ldrh r1, [r4, #2620]
ldr r3, [r4, #2552]
- ldr r6, .L1943+8
- subs r3, r3, r2
- muls r5, r3, r5
+ ldr r6, .L1915+8
+ subs r3, r3, r1
+ mul r1, r5, r3
ldrh r3, [r4, #302]
- str r5, [r4, #3672]
- muls r5, r3, r5
+ str r1, [r4, #3672]
+ movw r5, #65535
+ muls r1, r3, r1
ldrh r3, [r4, #258]
- str r5, [r4, #2552]
- muls r5, r3, r5
- str r5, [r4, #340]
+ str r1, [r4, #2552]
+ muls r1, r3, r1
+ str r1, [r4, #340]
bl FtlBbmTblFlush
ldrh r2, [r4, #242]
movs r1, #0
ldr r0, [r4, #72]
lsls r2, r2, #1
bl ftl_memset
- movw r2, #65535
movs r3, #0
- mov r5, r2
+ str r5, [r4, #172]
str r3, [r4, #2548]
- strh r3, [r4, #174] @ movhi
strb r3, [r4, #178]
strb r3, [r4, #180]
- strh r3, [r4, #26] @ movhi
strb r3, [r4, #30]
- strh r3, [r4, #24] @ movhi
+ str r3, [r4, #24]
movs r3, #1
- strh r2, [r4, #172] @ movhi
strb r3, [r4, #32]
-.L1935:
+.L1907:
mov r0, r6
bl make_superblock
ldrb r3, [r4, #31] @ zero_extendqisi2
ldrh r2, [r4, #24]
cmp r3, #0
- bne .L1936
+ bne .L1908
ldr r3, [r4, #72]
strh r5, [r3, r2, lsl #1] @ movhi
ldrh r3, [r4, #24]
adds r3, r3, #1
strh r3, [r4, #24] @ movhi
- b .L1935
-.L1922:
+ b .L1907
+.L1894:
ldr r5, [r4, #3312]
mvns r1, r3
orr r1, r3, r1, lsl #16
str r1, [r5, r3, lsl #2]
ldr r1, [r4, #3316]
str r0, [r1, r3, lsl #2]
- b .L1921
-.L1924:
+ b .L1893
+.L1896:
mov r0, r6
movs r1, #1
- bl FtlLowFormatEraseBlock
adds r6, r6, #1
+ bl FtlLowFormatEraseBlock
add r5, r5, r0
- uxth r5, r5
uxth r6, r6
- b .L1923
-.L1925:
+ uxth r5, r5
+ b .L1895
+.L1897:
mov r0, r5
bl __aeabi_uidiv
ldr r3, [r4, #332]
@@ -13252,31 +13511,32 @@
ldrh r0, [r4, #236]
bl FtlFreeSysBlkQueueInit
ldrh r5, [r4, #240]
-.L1927:
+.L1899:
ldrh r3, [r4, #242]
cmp r3, r5
- bls .L1929
+ bls .L1901
mov r0, r5
+ adds r5, r5, #1
movs r1, #1
+ uxth r5, r5
+ bl FtlLowFormatEraseBlock
+ b .L1899
+.L1902:
+ movs r1, #0
adds r5, r5, #1
bl FtlLowFormatEraseBlock
- uxth r5, r5
- b .L1927
-.L1930:
- movs r1, #0
- bl FtlLowFormatEraseBlock
- add r6, r6, r0
- uxth r6, r6
- b .L1926
-.L1936:
+ add r8, r8, r0
+ uxth r8, r8
+ b .L1898
+.L1908:
ldr r3, [r4, #2588]
movw r5, #65535
- ldrh r1, [r4, #28]
- ldr r6, .L1943+12
str r3, [r4, #36]
adds r3, r3, #1
str r3, [r4, #2588]
ldr r3, [r4, #72]
+ ldrh r1, [r4, #28]
+ ldr r6, .L1915+12
strh r1, [r3, r2, lsl #1] @ movhi
movs r3, #0
strh r3, [r4, #78] @ movhi
@@ -13286,51 +13546,51 @@
strh r3, [r4, #76] @ movhi
movs r3, #1
strb r3, [r4, #84]
-.L1937:
+.L1909:
mov r0, r6
bl make_superblock
ldrb r3, [r4, #83] @ zero_extendqisi2
ldrh r2, [r4, #76]
- cbnz r3, .L1938
+ cbnz r3, .L1910
ldr r3, [r4, #72]
strh r5, [r3, r2, lsl #1] @ movhi
ldrh r3, [r4, #76]
adds r3, r3, #1
strh r3, [r4, #76] @ movhi
- b .L1937
-.L1938:
+ b .L1909
+.L1910:
ldr r3, [r4, #2588]
movw r5, #65535
- ldrh r1, [r4, #80]
str r3, [r4, #88]
adds r3, r3, #1
str r3, [r4, #2588]
ldr r3, [r4, #72]
+ ldrh r1, [r4, #80]
strh r1, [r3, r2, lsl #1] @ movhi
strh r5, [r4, #124] @ movhi
bl FtlFreeSysBlkQueueOut
movs r3, #0
- strh r0, [r4, #2624] @ movhi
strh r3, [r4, #2626] @ movhi
ldr r3, [r4, #3672]
- strh r5, [r4, #2628] @ movhi
strh r3, [r4, #2630] @ movhi
ldr r3, [r4, #2588]
str r3, [r4, #2632]
+ strh r0, [r4, #2624] @ movhi
adds r3, r3, #1
+ strh r5, [r4, #2628] @ movhi
str r3, [r4, #2588]
bl FtlVpcTblFlush
bl FtlSysBlkInit
- cbnz r0, .L1939
- ldr r3, .L1943+16
+ cbnz r0, .L1911
+ ldr r3, .L1915+16
movs r2, #1
str r2, [r3]
-.L1939:
+.L1911:
movs r0, #0
pop {r3, r4, r5, r6, r7, r8, r9, pc}
-.L1944:
+.L1916:
.align 2
-.L1943:
+.L1915:
.word .LANCHOR0
.word 168778952
.word .LANCHOR0+24
@@ -13352,10 +13612,10 @@
push {r3, r4, r5, lr}
.save {r3, r4, r5, lr}
mov r3, #-1
- ldr r4, .L1951
- ldr r5, .L1951+4
- ldr r1, .L1951+8
- ldr r0, .L1951+12
+ ldr r5, .L1921
+ ldr r4, .L1921+4
+ ldr r1, .L1921+8
+ ldr r0, .L1921+12
str r3, [r5]
bl sftl_printk
mov r0, r4
@@ -13365,33 +13625,41 @@
ldrh r0, [r4, #236]
bl FtlFreeSysBlkQueueInit
bl FtlLoadBbt
- cbnz r0, .L1949
+ cbnz r0, .L1918
bl FtlSysBlkInit
- cbnz r0, .L1949
+ cbnz r0, .L1918
movs r3, #1
str r3, [r5]
ldrh r3, [r4, #224]
cmp r3, #15
- bhi .L1949
+ bhi .L1918
movw r4, #8129
-.L1948:
+.L1919:
movs r1, #1
movs r0, #0
bl rk_ftl_garbage_collect
subs r4, r4, #1
- bne .L1948
-.L1949:
+ bne .L1919
+.L1918:
movs r0, #0
pop {r3, r4, r5, pc}
-.L1952:
+.L1922:
.align 2
-.L1951:
- .word .LANCHOR0
+.L1921:
.word .LANCHOR2
+ .word .LANCHOR0
.word .LC0
.word .LC77
.fnend
.size sftl_init, .-sftl_init
+ .section .rodata.str1.1
+.LC130:
+ .ascii "write_idblock %x %x\012\000"
+.LC131:
+ .ascii "write_idblock fail! %x %x %x %x\012\000"
+.LC132:
+ .ascii "%s idb buffer alloc fail\012\000"
+ .text
.align 1
.global FtlWriteToIDB
.syntax unified
@@ -13403,122 +13671,110 @@
.fnstart
@ args = 0, pretend = 0, frame = 104
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L2020
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
add r8, r1, r0
add r9, r8, #-1
.pad #116
sub sp, sp, #116
- cmp r9, #63
+ ldr r5, .L1988
+ mov r3, sp
mov r4, r0
- ldr r3, [r3]
+ bic r3, r3, #8160
mov r6, r1
+ bic r3, r3, #31
mov r7, r2
- ldr r5, .L2020+4
+ cmp r9, #63
+ ldr r3, [r3, #24]
str r3, [sp, #108]
- bls .L1954
+ bls .L1924
cmp r0, #576
- bcc .L1955
-.L1954:
+ bcc .L1925
+.L1924:
ldr r3, [r5, #3676]
- cbnz r3, .L1956
-.L2019:
+ cbnz r3, .L1926
+.L1987:
movs r4, #0
- b .L1953
-.L1956:
- ldr r8, [r5, #3680]
- ldr r3, .L2020+8
- ldr r2, [r8]
+ b .L1923
+.L1926:
+ ldr r3, [r5, #3680]
+ str r3, [sp, #12]
+ ldr r2, [r3]
+ ldr r3, .L1988+4
cmp r2, r3
- bne .L1958
- ldrh r1, [r5, #10]
- add r0, r8, #260096
+ bne .L1928
+ ldr r3, [sp, #12]
movs r2, #0
+ ldrh r1, [r5, #10]
+ add r0, r3, #260096
movw r3, #65023
-.L1962:
+.L1932:
ldr r4, [r0, #-4]!
- cbnz r4, .L1959
- ldr r4, [r8, r2, lsl #2]
+ cbnz r4, .L1929
+ ldr r4, [sp, #12]
+ subs r3, r3, #1
+ ldr r4, [r4, r2, lsl #2]
adds r2, r2, #1
cmp r2, #4096
- add r3, r3, #-1
+ str r4, [r0, #2048]
it hi
movhi r2, #0
cmp r3, #4096
- str r4, [r0, #2048]
- bne .L1962
- mov fp, #512
- b .L1961
-.L1959:
+ bne .L1932
+ mov r9, #512
+ b .L1931
+.L1929:
adds r3, r3, #127
- lsr fp, r3, #7
-.L1961:
+ lsr r9, r3, #7
+.L1931:
lsls r1, r1, #2
- add r0, fp, #4
- ldr r4, .L2020+4
+ add r0, r9, #4
+ ldr r4, .L1988
uxth r1, r1
bl __aeabi_uidiv
adds r3, r0, #1
- mov r1, fp
mov r2, r3
- ldr r0, .L2020+12
+ ldr r0, .L1988+8
+ mov r1, r9
str r3, [sp, #16]
bl sftl_printk
- lsl r3, fp, #7
+ lsl r3, r9, #7
str r3, [sp, #32]
movs r3, #0
+ mov fp, r3
str r3, [sp, #20]
- str r3, [sp, #12]
-.L1963:
+.L1933:
ldr r3, [sp, #16]
- ldr r2, [sp, #12]
- add r3, r3, r2
+ add r3, r3, fp
+ str r3, [sp, #24]
cmp r3, #8
- str r3, [sp, #28]
- bls .L1985
+ bls .L1955
ldr r3, [sp, #20]
- cbnz r3, .L1986
-.L1958:
- mov fp, #-1
-.L1986:
- ldr r5, .L2020+4
- movs r3, #0
- mov r4, fp
- ldr r0, [r5, #3680]
- str r3, [r5, #3676]
- bl kfree
- ldr r0, [r5, #3684]
- bl kfree
-.L1953:
- ldr r3, .L2020
- mov r0, r4
- ldr r2, [sp, #108]
- ldr r3, [r3]
- cmp r2, r3
- beq .L1993
- bl __stack_chk_fail
-.L1985:
+ cmp r3, #0
+ bne .L1954
+.L1928:
+ mov r9, #-1
+ b .L1954
+.L1955:
+ ldr r0, [r4, #3684]
mov r2, #512
movs r1, #0
- ldr r0, [r4, #3684]
bl memset
ldrh r6, [r4, #10]
- ldr r3, [sp, #12]
- muls r3, r6, r3
- str r3, [sp, #24]
+ mul r3, r6, fp
+ str r3, [sp, #28]
ldr r3, [r4, #3260]
cmp r3, #0
- beq .L1994
+ beq .L1964
ldr r3, [r4, #3264]
cmp r3, #0
ite eq
- moveq r9, #6
- movne r9, #9
-.L1964:
- ldr r7, [sp, #24]
+ moveq r8, #6
+ movne r8, #9
+.L1934:
+ mul r7, r6, fp
movs r5, #0
-.L1965:
+.L1935:
ldr r3, [r4, #3248]
mov r1, r7
movs r0, #0
@@ -13527,60 +13783,56 @@
ldr r3, [sp, #16]
add r7, r7, r6
cmp r3, r5
- bhi .L1965
- cmp r9, #9
- bne .L1996
+ bhi .L1935
+ cmp r8, #9
+ bne .L1966
ldr r5, [r4, #3684]
mov r2, #1024
movs r1, #0
mov r0, r5
bl ftl_memset
- ldr r3, .L2020+16
+ ldr r3, .L1988+12
movs r1, #12
- movs r2, #4
- str r1, [r5, #4]
- strb r2, [r5, #17]
- adds r0, r5, r1
- str r3, [r5]
+ strd r3, r1, [r5]
movs r3, #0
- ldrh r2, [r4, #10]
str r3, [r5, #12]
- strb r3, [r5, #16]
- strh r2, [r5, #18] @ movhi
- movs r2, #16
- strb r3, [r5, #20]
- strb r2, [r5, #21]
- strh r3, [r5, #22] @ movhi
+ mov r3, #1024
+ strh r3, [r5, #16] @ movhi
+ ldrh r3, [r4, #10]
+ adds r0, r5, r1
+ strh r3, [r5, #18] @ movhi
+ mov r3, #4096
+ str r3, [r5, #20]
bl js_hash
str r0, [r5, #8]
-.L1966:
+.L1936:
ldr r3, [sp, #16]
- mov r10, r8
+ ldr r10, [sp, #12]
muls r3, r6, r3
movs r6, #0
str r3, [sp, #36]
-.L1967:
+.L1937:
ldr r3, [sp, #36]
cmp r6, r3
- beq .L1974
- cmp r9, #9
- ite ne
- lslne r3, r6, #2
+ beq .L1944
+ cmp r8, #9
+ ite eq
addeq r3, r6, #1
+ lslne r3, r6, #2
str r3, [sp, #44]
movw r3, #61424
str r3, [sp, #48]
cmp r6, #0
- bne .L1970
- cmp r9, #9
- bne .L1970
+ bne .L1940
+ cmp r8, #9
+ bne .L1940
ldr r3, [r4, #3260]
movs r0, #70
blx r3
ldr r7, [r4, #3252]
+ ldr r1, [sp, #28]
add r3, sp, #44
mov r2, r5
- ldr r1, [sp, #24]
mov r0, r6
blx r7
ldr r3, [r4, #3260]
@@ -13588,204 +13840,214 @@
ldrb r0, [r4, #22] @ zero_extendqisi2
blx r3
adds r7, r7, #1
- bne .L1971
-.L1974:
+ bne .L1941
+.L1944:
ldrb r3, [r4, #14] @ zero_extendqisi2
- ldr r2, [sp, #12]
- ldr r7, [r4, #3684]
- str r3, [sp, #24]
- ldrh r3, [r4, #10]
- mul r9, r3, r2
- ldr r2, [r4, #3260]
- cmp r2, #0
- bne .L1972
- mov r10, #6
-.L1973:
- ldr r2, [sp, #16]
- movs r5, #0
- muls r3, r2, r3
- str r3, [sp, #36]
-.L1976:
- ldr r3, [sp, #36]
- cmp r5, r3
- beq .L1980
- cmp r5, #0
- bne .L1977
- cmp r10, #9
- bne .L1977
+ ldrh r10, [r4, #10]
+ str r3, [sp, #28]
+ ldr r3, [r4, #3260]
+ ldr r5, [r4, #3684]
+ mul r7, r10, fp
+ cmp r3, #0
+ bne .L1942
+ mov r8, #6
+.L1943:
+ ldr r3, [sp, #16]
+ movs r6, #0
+ mul r10, r10, r3
+.L1946:
+ cmp r6, r10
+ beq .L1950
+ cmp r6, #0
+ bne .L1947
+ cmp r8, #9
+ bne .L1947
ldr r3, [r4, #3260]
movs r0, #70
blx r3
ldr r3, [r4, #3264]
movs r0, #2
blx r3
- mov r2, r7
- mov r1, r9
+ mov r2, r5
+ ldr ip, [r4, #3256]
+ mov r1, r7
add r3, sp, #44
- mov r0, r5
- ldr r6, [r4, #3256]
- blx r6
+ mov r0, r6
+ blx ip
ldr r3, [r4, #3264]
- ldr r0, [sp, #24]
+ ldr r0, [sp, #28]
blx r3
ldr r3, [r4, #3260]
ldrb r0, [r4, #22] @ zero_extendqisi2
blx r3
- ldr r3, [r7]
- ldr r2, .L2020+16
+ ldr r3, [r5]
+ ldr r2, .L1988+12
cmp r3, r2
- beq .L1978
-.L1980:
+ beq .L1948
+.L1950:
ldr r0, [r4, #3684]
- mov r1, r8
movs r5, #0
+ ldr r1, [sp, #12]
mov ip, r0
-.L1979:
+.L1949:
mov r6, ip
mov r7, r1
- ldr r2, [r6]
add ip, ip, #4
- ldr r3, [r7]
adds r1, r1, #4
+ ldr r2, [r6]
+ ldr r3, [r7]
cmp r2, r3
- beq .L1982
+ beq .L1952
mov r2, #512
movs r1, #0
bl memset
str r5, [sp]
ldr r3, [r7]
+ mov r1, fp
+ ldr r0, .L1988+16
ldr r2, [r6]
- ldr r1, [sp, #12]
- ldr r0, .L2020+20
bl sftl_printk
ldrh r1, [r4, #10]
- movs r0, #0
- ldr r2, [sp, #12]
ldr r3, [r4, #3248]
- muls r2, r1, r2
- mov r1, r2
+ movs r0, #0
+ mul r1, fp, r1
blx r3
-.L1983:
- ldr r3, [sp, #28]
- str r3, [sp, #12]
- b .L1963
-.L1994:
- mov r9, #6
- b .L1964
-.L1996:
+.L1953:
+ ldr fp, [sp, #24]
+ b .L1933
+.L1964:
+ mov r8, #6
+ b .L1934
+.L1966:
movs r5, #0
- b .L1966
-.L1970:
- ldr r1, [sp, #24]
+ b .L1936
+.L1940:
+ ldr r1, [sp, #28]
add r3, sp, #44
ldr r7, [r4, #3252]
mov r2, r10
- movs r0, #0
add r1, r1, r6
+ movs r0, #0
blx r7
adds r0, r0, #1
- beq .L1974
+ beq .L1944
add r10, r10, #2048
-.L1971:
+.L1941:
adds r6, r6, #1
- b .L1967
-.L1972:
- ldr r2, [r4, #3264]
- cmp r2, #0
+ b .L1937
+.L1942:
+ ldr r3, [r4, #3264]
+ cmp r3, #0
ite eq
- moveq r10, #6
- movne r10, #9
- b .L1973
-.L1977:
+ moveq r8, #6
+ movne r8, #9
+ b .L1943
+.L1947:
+ ldr ip, [r4, #3256]
add r3, sp, #44
- mov r2, r7
- add r1, r9, r5
+ mov r2, r5
+ adds r1, r7, r6
movs r0, #0
- ldr r6, [r4, #3256]
- blx r6
+ blx ip
adds r0, r0, #1
- beq .L1980
- ldr r2, [sp, #48]
+ beq .L1950
+ ldr r1, [sp, #48]
movw r3, #61424
- cmp r2, r3
- bne .L1980
- add r7, r7, #2048
-.L1978:
- adds r5, r5, #1
- b .L1976
-.L1982:
- ldr r3, [sp, #32]
- adds r5, r5, #1
- cmp r5, r3
- bne .L1979
- ldr r3, [sp, #20]
- adds r3, r3, #1
- cmp r3, #5
- str r3, [sp, #20]
- bls .L1983
- b .L1986
-.L2021:
+ cmp r1, r3
+ bne .L1950
+ add r5, r5, #2048
+.L1948:
+ adds r6, r6, #1
+ b .L1946
+.L1989:
.align 2
-.L2020:
- .word __stack_chk_guard
+.L1988:
.word .LANCHOR0
.word -52655045
.word .LC130
.word 1179535694
.word .LC131
-.L1955:
+.L1952:
+ ldr r3, [sp, #32]
+ adds r5, r5, #1
+ cmp r5, r3
+ bcc .L1949
+ ldr r3, [sp, #20]
+ adds r3, r3, #1
+ str r3, [sp, #20]
+ cmp r3, #5
+ bls .L1953
+.L1954:
+ ldr r5, .L1990
+ movs r3, #0
+ mov r4, r9
+ ldr r0, [r5, #3680]
+ str r3, [r5, #3676]
+ bl kfree
+ ldr r0, [r5, #3684]
+ bl kfree
+.L1923:
+ mov r3, sp
+ ldr r2, [sp, #108]
+ bic r3, r3, #8160
+ bic r3, r3, #31
+ ldr r3, [r3, #24]
+ cmp r2, r3
+ beq .L1963
+ bl __stack_chk_fail
+.L1925:
cmp r0, #64
- bne .L1987
+ bne .L1956
mov r0, #262144
bl ftl_malloc
str r0, [r5, #3680]
mov r0, #262144
bl ftl_malloc
- ldr r3, [r5, #3680]
+ mov r3, r0
str r0, [r5, #3684]
- cbz r3, .L1988
- cbz r0, .L1988
- movs r2, #1
- movs r1, #0
- str r2, [r5, #3676]
- mov r0, r3
+ ldr r0, [r5, #3680]
+ cbz r0, .L1957
+ cbz r3, .L1957
mov r2, #262144
+ movs r1, #0
+ movs r3, #1
+ str r3, [r5, #3676]
bl ftl_memset
-.L1987:
- ldr r3, [r5, #3676]
- cmp r3, #0
- beq .L2019
+.L1958:
cmp r4, #63
ldr r0, [r5, #3680]
- iteet hi
- ldrhi r3, .L2022
- rsbls r1, r4, #64
- subls r6, r6, r1
- movhi r1, r7
- itee ls
- addls r1, r7, r1, lsl #9
- addhi r3, r3, r4
+ sub r3, r4, #64
+ ittte ls
+ rsbls r4, r4, #64
+ addls r6, r6, r3
+ addls r7, r7, r4, lsl #9
addhi r0, r0, r3, lsl #9
cmp r9, #576
+ mov r1, r7
itt cs
subcs r6, r6, r8
subcs r6, r6, #446
lsls r2, r6, #9
bl ftl_memcpy
- b .L2019
-.L1988:
- ldr r1, .L2022+4
- ldr r0, .L2022+8
- bl sftl_printk
b .L1987
-.L1993:
+.L1957:
+ ldr r1, .L1990+4
+ ldr r0, .L1990+8
+ bl sftl_printk
+.L1956:
+ ldr r3, [r5, #3676]
+ cmp r3, #0
+ bne .L1958
+ b .L1987
+.L1963:
+ mov r0, r4
add sp, sp, #116
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L2023:
+.L1991:
.align 2
-.L2022:
- .word 8388544
+.L1990:
+ .word .LANCHOR0
.word .LANCHOR1+633
.word .LC132
.fnend
@@ -13827,19 +14089,19 @@
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r2, .L2028
- ldr r3, [r2, #3688]
- cbnz r3, .L2027
- str r0, [r2, #3688]
- mov r0, r3
- str r1, [r2, #3692]
+ ldr r3, .L1996
+ mov r2, r0
+ ldr r0, [r3, #3688]
+ cbnz r0, .L1995
+ str r2, [r3, #3688]
+ str r1, [r3, #3692]
bx lr
-.L2027:
+.L1995:
mov r0, #-1
bx lr
-.L2029:
+.L1997:
.align 2
-.L2028:
+.L1996:
.word .LANCHOR0
.fnend
.size rk_sftl_vendor_dev_ops_register, .-rk_sftl_vendor_dev_ops_register
@@ -13854,80 +14116,78 @@
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- push {r4, r5, r6, r7, r8, r9, r10, lr}
- .save {r4, r5, r6, r7, r8, r9, r10, lr}
+ push {r3, r4, r5, r6, r7, r8, r9, lr}
+ .save {r3, r4, r5, r6, r7, r8, r9, lr}
mov r0, #65536
- ldr r5, .L2038
+ ldr r5, .L2006
bl ftl_malloc
str r0, [r5, #3696]
cmp r0, #0
- beq .L2036
- ldr r10, .L2038+4
- mov r9, #0
- mov r7, r9
- mov r8, r9
-.L2034:
+ beq .L2004
+ ldr r9, .L2006+4
+ mov r8, #0
+ mov r7, r8
+ mov r6, r8
+.L2002:
ldr r3, [r5, #3688]
- movs r1, #128
+ lsls r0, r6, #7
ldr r2, [r5, #3696]
- lsl r0, r8, #7
- blx r3
- mov r6, r0
- cbnz r0, .L2032
- ldr r4, [r5, #3696]
- ldr r3, [r4]
- cmp r3, r10
- bne .L2033
- movw r3, #65532
- ldr r2, [r4, #4]
- ldr r3, [r4, r3]
- cmp r3, r2
- bne .L2033
- cmp r3, r7
- itt hi
- movhi r9, r8
- movhi r7, r3
-.L2033:
- add r8, r8, #1
- cmp r8, #2
- bne .L2034
- cbz r7, .L2035
- ldr r3, [r5, #3688]
- mov r2, r4
movs r1, #128
- lsl r0, r9, #7
blx r3
- mov r6, r0
- cbz r0, .L2030
-.L2032:
+ mov r4, r0
+ cbnz r0, .L2000
+ ldr r3, [r5, #3696]
+ ldr r2, [r3]
+ cmp r2, r9
+ bne .L2001
+ add r2, r3, #61440
+ ldr r1, [r3, #4]
+ ldr r2, [r2, #4092]
+ cmp r2, r1
+ bne .L2001
+ cmp r2, r7
+ itt hi
+ movhi r8, r6
+ movhi r7, r2
+.L2001:
+ cbz r6, .L2005
+ cbz r7, .L2003
+ ldr r4, [r5, #3688]
+ mov r2, r3
+ lsl r0, r8, #7
+ movs r1, #128
+ blx r4
+ mov r4, r0
+ cbz r0, .L1998
+.L2000:
ldr r0, [r5, #3696]
- mov r6, #-1
+ mov r4, #-1
bl kfree
movs r3, #0
str r3, [r5, #3696]
- b .L2030
-.L2035:
+ b .L1998
+.L2005:
+ movs r6, #1
+ b .L2002
+.L2003:
mov r2, #65536
mov r1, r7
- mov r0, r4
+ mov r0, r3
bl memset
- movs r3, #1
- movw r2, #65532
- str r3, [r4, #4]
- str r10, [r4]
- str r3, [r4, r2]
- movw r3, #64504
- strh r7, [r4, #12] @ movhi
- strh r3, [r4, #14] @ movhi
-.L2030:
- mov r0, r6
- pop {r4, r5, r6, r7, r8, r9, r10, pc}
-.L2036:
- mvn r6, #11
- b .L2030
-.L2039:
+ add r2, r0, #61440
+ strd r9, r6, [r0]
+ str r6, [r2, #4092]
+ movw r2, #64504
+ strh r2, [r0, #14] @ movhi
+.L1998:
+ mov r0, r4
+ pop {r3, r4, r5, r6, r7, r8, r9, pc}
+.L2004:
+ mvn r4, #11
+ b .L1998
+.L2007:
.align 2
-.L2038:
+.L2006:
.word .LANCHOR0
.word 1380668996
.fnend
@@ -13945,26 +14205,27 @@
@ frame_needed = 0, uses_anonymous_args = 0
push {r3, r4, r5, r6, r7, lr}
.save {r3, r4, r5, r6, r7, lr}
- mov r7, r0
- ldr r3, .L2046
+ mov r6, r0
+ ldr r3, .L2014
mov r0, r1
ldr r5, [r3, #3696]
- cbz r5, .L2045
- ldrh r6, [r5, #10]
+ cbz r5, .L2013
+ ldrh r1, [r5, #10]
+ add r4, r5, #16
movs r3, #0
-.L2042:
- cmp r3, r6
- bcc .L2044
-.L2045:
+.L2010:
+ cmp r1, r3
+ bhi .L2012
+.L2013:
mov r0, #-1
- pop {r3, r4, r5, r6, r7, pc}
-.L2044:
- add r1, r5, r3, lsl #3
- ldrh r4, [r1, #16]
- cmp r4, r7
- bne .L2043
- ldrh r4, [r1, #20]
- ldrh r1, [r1, #18]
+ b .L2008
+.L2012:
+ ldrh r7, [r4, r3, lsl #3]
+ cmp r7, r6
+ bne .L2011
+ add r3, r5, r3, lsl #3
+ ldrh r4, [r3, #20]
+ ldrh r1, [r3, #18]
cmp r4, r2
it cs
movcs r4, r2
@@ -13973,13 +14234,14 @@
add r1, r1, r5
bl memcpy
mov r0, r4
+.L2008:
pop {r3, r4, r5, r6, r7, pc}
-.L2043:
+.L2011:
adds r3, r3, #1
- b .L2042
-.L2047:
+ b .L2010
+.L2015:
.align 2
-.L2046:
+.L2014:
.word .LANCHOR0
.fnend
.size rk_sftl_vendor_read, .-rk_sftl_vendor_read
@@ -13996,51 +14258,52 @@
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
- mov r8, r2
- ldr r2, .L2067
+ mov r9, r1
+ ldr r5, .L2035
.pad #28
sub sp, sp, #28
- mov r3, r1
- ldr r4, [r2, #3696]
- mov r9, r2
+ mov r8, r2
+ ldr r4, [r5, #3696]
+ str r0, [sp, #4]
cmp r4, #0
- beq .L2063
+ beq .L2031
+ ldrh r3, [r4, #8]
+ add r7, r8, #63
ldrh r2, [r4, #10]
- add r6, r8, #63
- ldrh r1, [r4, #8]
- bic r6, r6, #63
- movs r7, #0
- str r1, [sp, #4]
-.L2050:
- cmp r7, r2
- bcc .L2058
+ bic r7, r7, #63
+ str r3, [sp, #8]
+ add r3, r4, #16
+ movs r6, #0
+.L2018:
+ cmp r6, r2
+ bcc .L2026
ldrh r1, [r4, #14]
- cmp r6, r1
- bhi .L2063
- add r2, r4, r2, lsl #3
- uxth r6, r6
- strh r0, [r2, #16] @ movhi
- ldrh r0, [r4, #12]
- strh r8, [r2, #20] @ movhi
- strh r0, [r2, #18] @ movhi
- add r0, r0, r6
- subs r6, r1, r6
- strh r0, [r4, #12] @ movhi
- strh r6, [r4, #14] @ movhi
- mov r1, r3
- ldrh r0, [r2, #18]
+ cmp r1, r7
+ bcc .L2031
+ add r3, r4, r2, lsl #3
+ ldr r2, [sp, #4]
+ uxth r7, r7
+ strh r2, [r3, #16] @ movhi
mov r2, r8
+ ldrh r0, [r4, #12]
+ strh r0, [r3, #18] @ movhi
+ strh r8, [r3, #20] @ movhi
+ adds r3, r0, r7
add r0, r0, #1024
+ subs r7, r1, r7
+ strh r3, [r4, #12] @ movhi
+ mov r1, r9
add r0, r0, r4
+ strh r7, [r4, #14] @ movhi
bl memcpy
ldrh r3, [r4, #10]
- movw r2, #65532
+ add r2, r4, #61440
adds r3, r3, #1
strh r3, [r4, #10] @ movhi
ldr r3, [r4, #4]
adds r3, r3, #1
str r3, [r4, #4]
- str r3, [r4, r2]
+ str r3, [r2, #4092]
ldrh r3, [r4, #8]
adds r3, r3, #1
uxth r3, r3
@@ -14048,56 +14311,56 @@
it hi
movhi r3, #0
strh r3, [r4, #8] @ movhi
- ldr r3, [r9, #3692]
- b .L2066
-.L2058:
- add r5, r4, r7, lsl #3
- ldrh r1, [r5, #16]
+ ldr r3, [r5, #3692]
+ b .L2034
+.L2026:
+ ldrh r1, [r3, r6, lsl #3]
+ ldr r0, [sp, #4]
cmp r1, r0
- str r1, [sp, #8]
- bne .L2051
+ bne .L2019
+ add r5, r4, r6, lsl #3
+ add r3, r4, #1024
ldrh r1, [r5, #20]
- add fp, r4, #1024
adds r1, r1, #63
bic r1, r1, #63
- cmp r8, r1
str r1, [sp, #12]
- bls .L2052
+ cmp r8, r1
+ bls .L2020
ldrh r1, [r4, #14]
- cmp r6, r1
- bhi .L2063
- ldrh r10, [r5, #18]
+ cmp r1, r7
+ bcc .L2031
+ ldrh fp, [r5, #18]
subs r2, r2, #1
str r2, [sp, #16]
-.L2053:
+.L2021:
ldr r2, [sp, #16]
+ uxth r10, fp
adds r5, r5, #8
- cmp r7, r2
- bcc .L2054
- ldrh r2, [sp, #8]
- add r7, r4, r7, lsl #3
- uxth r5, r10
- mov r1, r3
- strh r8, [r7, #20] @ movhi
- uxtah r0, fp, r10
- strh r2, [r7, #16] @ movhi
+ cmp r2, r6
+ bhi .L2022
+ add r6, r4, r6, lsl #3
+ ldr r2, [sp, #4]
+ uxtah r0, r3, fp
+ mov r1, r9
+ strh r2, [r6, #16] @ movhi
mov r2, r8
- strh r5, [r7, #18] @ movhi
+ strh r10, [r6, #18] @ movhi
+ strh r8, [r6, #20] @ movhi
bl memcpy
- uxth r3, r6
- ldrh r6, [r4, #14]
- add r5, r5, r3
- subs r6, r6, r3
+ uxth r3, r7
+ ldrh r7, [r4, #14]
+ add r10, r10, r3
+ strh r10, [r4, #12] @ movhi
+ subs r7, r7, r3
ldr r3, [sp, #12]
- strh r5, [r4, #12] @ movhi
- add r6, r6, r3
- strh r6, [r4, #14] @ movhi
-.L2055:
+ add r7, r7, r3
+ strh r7, [r4, #14] @ movhi
+.L2023:
+ add r2, r4, #61440
ldr r3, [r4, #4]
- movw r2, #65532
adds r3, r3, #1
str r3, [r4, #4]
- str r3, [r4, r2]
+ str r3, [r2, #4092]
ldrh r3, [r4, #8]
adds r3, r3, #1
uxth r3, r3
@@ -14105,57 +14368,61 @@
it hi
movhi r3, #0
strh r3, [r4, #8] @ movhi
- ldr r3, .L2067
+ ldr r3, .L2035
ldr r3, [r3, #3692]
-.L2066:
- ldr r0, [sp, #4]
+.L2034:
+ ldr r0, [sp, #8]
mov r2, r4
movs r1, #128
lsls r0, r0, #7
blx r3
movs r0, #0
-.L2048:
+.L2016:
add sp, sp, #28
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L2054:
- ldrh r9, [r5, #20]
- add r0, fp, r10
+.L2022:
ldrh r2, [r5, #16]
- adds r7, r7, #1
- ldrh r1, [r5, #18]
- strh r9, [r5, #12] @ movhi
- add r9, r9, #63
- bic r9, r9, #63
+ add r0, r3, fp
strh r2, [r5, #8] @ movhi
+ adds r6, r6, #1
+ ldrh r2, [r5, #20]
+ ldrh r1, [r5, #18]
+ strh r2, [r5, #12] @ movhi
+ adds r2, r2, #63
strh r10, [r5, #10] @ movhi
- mov r2, r9
- add r1, r1, fp
+ bic r10, r2, #63
+ add r1, r1, r3
+ mov r2, r10
str r3, [sp, #20]
- add r10, r10, r9
+ add fp, fp, r10
bl memcpy
ldr r3, [sp, #20]
- b .L2053
-.L2052:
+ b .L2021
+.L2020:
ldrh r0, [r5, #18]
mov r2, r8
- mov r1, r3
- add r0, r0, fp
+ mov r1, r9
+ add r0, r0, r3
bl memcpy
strh r8, [r5, #20] @ movhi
- b .L2055
-.L2051:
- adds r7, r7, #1
- b .L2050
-.L2063:
+ b .L2023
+.L2019:
+ adds r6, r6, #1
+ b .L2018
+.L2031:
mov r0, #-1
- b .L2048
-.L2068:
+ b .L2016
+.L2036:
.align 2
-.L2067:
+.L2035:
.word .LANCHOR0
.fnend
.size rk_sftl_vendor_write, .-rk_sftl_vendor_write
+ .section .rodata.str1.1
+.LC133:
+ .ascii "copy_from_user error %d %p %p\012\000"
+ .text
.align 1
.global rk_sftl_vendor_storage_ioctl
.syntax unified
@@ -14167,168 +14434,118 @@
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- push {r3, r4, r5, r6, r7, lr}
- .save {r3, r4, r5, r6, r7, lr}
+ push {r4, r5, r6, lr}
+ .save {r4, r5, r6, lr}
mov r0, #4096
mov r6, r1
- mov r5, r2
+ mov r4, r2
bl ftl_malloc
- mov r4, r0
+ mov r5, r0
cmp r0, #0
- beq .L2085
- ldr r3, .L2093
+ beq .L2048
+ ldr r3, .L2055
cmp r6, r3
- beq .L2072
+ beq .L2039
adds r3, r3, #1
cmp r6, r3
- beq .L2073
-.L2091:
- mvn r5, #13
- b .L2071
-.L2072:
- ldr r6, .L2093+4
+ beq .L2040
+.L2053:
+ mvn r4, #13
+.L2041:
+ mov r0, r5
+ bl kfree
+.L2037:
+ mov r0, r4
+ pop {r4, r5, r6, pc}
+.L2039:
+ mov r1, r4
+ movs r2, #8
+ bl _copy_from_user
+ cbz r0, .L2042
+ mov r2, r4
+ mov r1, #256
+.L2054:
+ ldr r0, .L2055+4
+ bl sftl_printk
+ b .L2053
+.L2042:
+ ldr r2, [r5]
+ ldr r3, .L2055+8
+ cmp r2, r3
+ beq .L2043
+.L2044:
+ mov r4, #-1
+ b .L2041
+.L2043:
+ ldrh r2, [r5, #6]
+ add r1, r5, #8
+ ldrh r0, [r5, #4]
+ bl rk_sftl_vendor_read
+ adds r3, r0, #1
+ beq .L2044
mov r3, sp
- ands r3, r3, r6
+ strh r0, [r5, #6] @ movhi
+ bic r3, r3, #8160
+ uxth r2, r0
+ bic r3, r3, #31
+ adds r2, r2, #8
ldr r3, [r3, #8]
.syntax unified
-@ 114 "./include/linux/uaccess.h" 1
- adds r2, r5, #8; sbcccs r2, r2, r3; movcc r3, #0
-@ 0 "" 2
- .thumb
+@ 177 "./include/linux/uaccess.h" 1
.syntax unified
- movs r2, #8
- cbnz r3, .L2074
- mov r1, r5
- bl arm_copy_from_user
- mov r2, r0
- cmp r0, #0
- beq .L2075
-.L2074:
- rsb r0, r2, #8
- movs r1, #0
- add r0, r0, r4
- bl memset
- mov r2, r5
- mov r1, #256
-.L2092:
- ldr r0, .L2093+8
- bl sftl_printk
- b .L2091
-.L2076:
- mov r3, sp
- uxth r2, r0
- ands r6, r6, r3
- strh r0, [r4, #6] @ movhi
- adds r2, r2, #8
- ldr r3, [r6, #8]
- .syntax unified
-@ 132 "./include/linux/uaccess.h" 1
- adds r1, r5, r2; sbcccs r1, r1, r3; movcc r3, #0
+adds r1, r4, r2; sbcscc r1, r1, r3; movcc r3, #0
@ 0 "" 2
.thumb
.syntax unified
cmp r3, #0
- bne .L2091
+ bne .L2053
+ mov r0, r4
+ mov r1, r5
+ bl arm_copy_to_user
+ mov r4, r0
+ cmp r0, #0
+ beq .L2041
+ b .L2053
+.L2040:
+ mov r1, r4
+ movs r2, #8
+ bl _copy_from_user
+ cbz r0, .L2046
+ mov r2, r4
+ mov r1, #276
+ b .L2054
+.L2046:
+ ldr r2, [r5]
+ ldr r3, .L2055+8
+ cmp r2, r3
+ bne .L2044
+ ldrh r2, [r5, #6]
+ movw r3, #4087
+ cmp r2, r3
+ bhi .L2044
+ adds r2, r2, #8
mov r1, r4
mov r0, r5
- bl arm_copy_to_user
- cmp r0, #0
- bne .L2091
-.L2088:
- mov r5, r0
- b .L2071
-.L2073:
- ldr r7, .L2093+4
- mov r3, sp
- ands r3, r3, r7
- ldr r3, [r3, #8]
- .syntax unified
-@ 114 "./include/linux/uaccess.h" 1
- adds r2, r5, #8; sbcccs r2, r2, r3; movcc r3, #0
-@ 0 "" 2
- .thumb
- .syntax unified
- movs r2, #8
- cbnz r3, .L2078
- mov r1, r5
- bl arm_copy_from_user
- mov r2, r0
- cbz r0, .L2079
-.L2078:
- rsb r0, r2, #8
- movs r1, #0
- add r0, r0, r4
- bl memset
- mov r2, r5
- mov r1, #276
- b .L2092
-.L2085:
- mov r5, #-1
- b .L2069
-.L2075:
- ldr r2, [r4]
- ldr r3, .L2093+12
- cmp r2, r3
- bne .L2080
- ldrh r2, [r4, #6]
- add r1, r4, #8
- ldrh r0, [r4, #4]
- bl rk_sftl_vendor_read
- adds r3, r0, #1
- bne .L2076
-.L2080:
- mov r5, #-1
-.L2071:
- mov r0, r4
- bl kfree
-.L2069:
- mov r0, r5
- pop {r3, r4, r5, r6, r7, pc}
-.L2079:
- ldr r2, [r4]
- ldr r3, .L2093+12
- cmp r2, r3
- bne .L2080
- ldrh r6, [r4, #6]
- movw r3, #4087
- cmp r6, r3
- bhi .L2080
- mov r3, sp
- adds r6, r6, #8
- ands r7, r7, r3
- ldr r3, [r7, #8]
- .syntax unified
-@ 114 "./include/linux/uaccess.h" 1
- adds r2, r5, r6; sbcccs r2, r2, r3; movcc r3, #0
-@ 0 "" 2
- .thumb
- .syntax unified
- mov r2, r6
- cbnz r3, .L2081
- mov r1, r5
- mov r0, r4
- bl arm_copy_from_user
- mov r2, r0
- cbz r0, .L2082
-.L2081:
- subs r6, r6, r2
- movs r1, #0
- adds r0, r4, r6
- bl memset
- mov r2, r5
+ uxth r2, r2
+ bl _copy_from_user
+ cbz r0, .L2047
+ mov r2, r4
movw r1, #283
- b .L2092
-.L2082:
- ldrh r2, [r4, #6]
- add r1, r4, #8
- ldrh r0, [r4, #4]
+ b .L2054
+.L2047:
+ ldrh r2, [r5, #6]
+ add r1, r5, #8
+ ldrh r0, [r5, #4]
bl rk_sftl_vendor_write
- b .L2088
-.L2094:
+ mov r4, r0
+ b .L2041
+.L2048:
+ mov r4, #-1
+ b .L2037
+.L2056:
.align 2
-.L2093:
+.L2055:
.word 1074034177
- .word -8192
.word .LC133
.word 1448232273
.fnend
@@ -14345,14 +14562,17 @@
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r0, .L2096
+ ldr r0, .L2058
b misc_register
-.L2097:
+.L2059:
.align 2
-.L2096:
+.L2058:
.word .LANCHOR2+12
.fnend
.size rk_sftl_vendor_register, .-rk_sftl_vendor_register
+ .section .rodata.str1.1
+.LC134:
+ .ascii "vendor_storage\000"
.global g_nand_ops
.global g_nand_phy_info
.global gc_ink_free_return_value
@@ -14502,164 +14722,164 @@
.global c_ftl_nand_die_num
.global c_ftl_nand_type
.section .rodata
- .align 3
+ .align 2
.set .LANCHOR1,. + 0
- .type __func__.7563, %object
- .size __func__.7563, 17
-__func__.7563:
+ .type __func__.30, %object
+ .size __func__.30, 17
+__func__.30:
.ascii "INSERT_DATA_LIST\000"
- .type __func__.7558, %object
- .size __func__.7558, 17
-__func__.7558:
+ .type __func__.31, %object
+ .size __func__.31, 17
+__func__.31:
.ascii "INSERT_FREE_LIST\000"
- .type __func__.7594, %object
- .size __func__.7594, 17
-__func__.7594:
+ .type __func__.29, %object
+ .size __func__.29, 17
+__func__.29:
.ascii "List_remove_node\000"
- .type __func__.7626, %object
- .size __func__.7626, 22
-__func__.7626:
+ .type __func__.28, %object
+ .size __func__.28, 22
+__func__.28:
.ascii "List_update_data_list\000"
- .type __func__.7733, %object
- .size __func__.7733, 22
-__func__.7733:
+ .type __func__.22, %object
+ .size __func__.22, 22
+__func__.22:
.ascii "select_l2p_ram_region\000"
- .type __func__.8053, %object
- .size __func__.8053, 16
-__func__.8053:
+ .type __func__.14, %object
+ .size __func__.14, 16
+__func__.14:
.ascii "make_superblock\000"
- .type __func__.8229, %object
- .size __func__.8229, 19
-__func__.8229:
+ .type __func__.8, %object
+ .size __func__.8, 19
+__func__.8:
.ascii "get_new_active_ppa\000"
- .type __func__.13983, %object
- .size __func__.13983, 17
-__func__.13983:
+ .type __func__.1, %object
+ .size __func__.1, 17
+__func__.1:
.ascii "FlashEraseBlocks\000"
- .type __func__.7668, %object
- .size __func__.7668, 26
-__func__.7668:
+ .type __func__.26, %object
+ .size __func__.26, 26
+__func__.26:
.ascii "ftl_map_blk_alloc_new_blk\000"
- .type __func__.7173, %object
- .size __func__.7173, 11
-__func__.7173:
+ .type __func__.37, %object
+ .size __func__.37, 11
+__func__.37:
.ascii "FtlMemInit\000"
- .type __func__.7400, %object
- .size __func__.7400, 14
-__func__.7400:
+ .type __func__.34, %object
+ .size __func__.34, 14
+__func__.34:
.ascii "FtlBbt2Bitmap\000"
- .type __func__.8074, %object
- .size __func__.8074, 18
-__func__.8074:
+ .type __func__.13, %object
+ .size __func__.13, 18
+__func__.13:
.ascii "SupperBlkListInit\000"
- .type __func__.13940, %object
- .size __func__.13940, 15
-__func__.13940:
+ .type __func__.3, %object
+ .size __func__.3, 15
+__func__.3:
.ascii "FlashReadPages\000"
- .type __func__.7845, %object
- .size __func__.7845, 14
-__func__.7845:
+ .type __func__.19, %object
+ .size __func__.19, 14
+__func__.19:
.ascii "FtlScanSysBlk\000"
- .type __func__.7443, %object
- .size __func__.7443, 11
-__func__.7443:
+ .type __func__.32, %object
+ .size __func__.32, 11
+__func__.32:
.ascii "FtlLoadBbt\000"
- .type __func__.13959, %object
- .size __func__.13959, 15
-__func__.13959:
+ .type __func__.2, %object
+ .size __func__.2, 15
+__func__.2:
.ascii "FlashProgPages\000"
- .type __func__.8201, %object
- .size __func__.8201, 25
-__func__.8201:
+ .type __func__.10, %object
+ .size __func__.10, 25
+__func__.10:
.ascii "allocate_data_superblock\000"
- .type __func__.8242, %object
- .size __func__.8242, 16
-__func__.8242:
+ .type __func__.7, %object
+ .size __func__.7, 16
+__func__.7:
.ascii "update_vpc_list\000"
- .type __func__.8249, %object
- .size __func__.8249, 20
-__func__.8249:
+ .type __func__.6, %object
+ .size __func__.6, 20
+__func__.6:
.ascii "decrement_vpc_count\000"
- .type __func__.7694, %object
- .size __func__.7694, 31
-__func__.7694:
- .ascii "Ftl_write_map_blk_to_last_page\000"
- .type __func__.7708, %object
- .size __func__.7708, 16
-__func__.7708:
+ .type __func__.23, %object
+ .size __func__.23, 16
+__func__.23:
.ascii "FtlMapWritePage\000"
- .type __func__.7635, %object
- .size __func__.7635, 16
-__func__.7635:
+ .type __func__.27, %object
+ .size __func__.27, 16
+__func__.27:
.ascii "load_l2p_region\000"
- .type __func__.7679, %object
- .size __func__.7679, 15
-__func__.7679:
+ .type __func__.25, %object
+ .size __func__.25, 15
+__func__.25:
.ascii "ftl_map_blk_gc\000"
- .type __func__.7750, %object
- .size __func__.7750, 9
-__func__.7750:
+ .type __func__.24, %object
+ .size __func__.24, 31
+__func__.24:
+ .ascii "Ftl_write_map_blk_to_last_page\000"
+ .type __func__.21, %object
+ .size __func__.21, 9
+__func__.21:
.ascii "log2phys\000"
- .type __func__.7962, %object
- .size __func__.7962, 16
-__func__.7962:
+ .type __func__.16, %object
+ .size __func__.16, 16
+__func__.16:
.ascii "FtlReUsePrevPpa\000"
- .type __func__.7996, %object
- .size __func__.7996, 22
-__func__.7996:
+ .type __func__.15, %object
+ .size __func__.15, 22
+__func__.15:
.ascii "FtlRecoverySuperblock\000"
- .type __func__.8116, %object
- .size __func__.8116, 14
-__func__.8116:
+ .type __func__.11, %object
+ .size __func__.11, 14
+__func__.11:
.ascii "ftl_check_vpc\000"
- .type __func__.7823, %object
- .size __func__.7823, 15
-__func__.7823:
+ .type __func__.20, %object
+ .size __func__.20, 15
+__func__.20:
.ascii "FtlVpcTblFlush\000"
- .type __func__.8099, %object
- .size __func__.8099, 21
-__func__.8099:
+ .type __func__.12, %object
+ .size __func__.12, 21
+__func__.12:
.ascii "FtlVpcCheckAndModify\000"
- .type __func__.8222, %object
- .size __func__.8222, 29
-__func__.8222:
+ .type __func__.9, %object
+ .size __func__.9, 29
+__func__.9:
.ascii "allocate_new_data_superblock\000"
- .type __func__.7297, %object
- .size __func__.7297, 13
-__func__.7297:
+ .type __func__.36, %object
+ .size __func__.36, 13
+__func__.36:
.ascii "FtlProgPages\000"
- .type __func__.8319, %object
- .size __func__.8319, 19
-__func__.8319:
+ .type __func__.5, %object
+ .size __func__.5, 19
+__func__.5:
.ascii "FtlGcFreeTempBlock\000"
- .type __func__.8432, %object
- .size __func__.8432, 23
-__func__.8432:
+ .type __func__.4, %object
+ .size __func__.4, 23
+__func__.4:
.ascii "rk_ftl_garbage_collect\000"
- .type __func__.7325, %object
- .size __func__.7325, 9
-__func__.7325:
+ .type __func__.35, %object
+ .size __func__.35, 9
+__func__.35:
.ascii "FtlWrite\000"
- .type __func__.7894, %object
- .size __func__.7894, 15
-__func__.7894:
+ .type __func__.18, %object
+ .size __func__.18, 15
+__func__.18:
.ascii "FtlLoadSysInfo\000"
- .type __func__.7916, %object
- .size __func__.7916, 18
-__func__.7916:
+ .type __func__.17, %object
+ .size __func__.17, 18
+__func__.17:
.ascii "FtlMapTblRecovery\000"
- .type __func__.14102, %object
- .size __func__.14102, 14
-__func__.14102:
+ .type __func__.0, %object
+ .size __func__.0, 14
+__func__.0:
.ascii "FtlWriteToIDB\000"
.space 1
.type rk_sftl_vendor_storage_fops, %object
- .size rk_sftl_vendor_storage_fops, 160
+ .size rk_sftl_vendor_storage_fops, 128
rk_sftl_vendor_storage_fops:
- .space 36
+ .space 40
.word rk_sftl_vendor_storage_ioctl
.word rk_sftl_vendor_storage_ioctl
- .space 116
+ .space 80
.data
.align 2
.set .LANCHOR2,. + 0
@@ -15311,281 +15531,5 @@
.size gp_last_act_superblock, 4
gp_last_act_superblock:
.space 4
- .section .rodata.str1.1,"aMS",%progbits,1
-.LC0:
- .ascii "SFTL version: 5.0.58 20220814\000"
-.LC1:
- .ascii "\012%s\012\000"
-.LC2:
- .ascii "act blk: %x %x %x %x %x %x\012\000"
-.LC3:
- .ascii "buf blk: %x %x %x %x %x %x\012\000"
-.LC4:
- .ascii "tmp blk: %x %x %x %x %x %x\012\000"
-.LC5:
- .ascii "gc blk: %x %x %x %x %x %x\012\000"
-.LC6:
- .ascii "free blk: %x %x %x\012\000"
-.LC7:
- .ascii "phyBlk = 0x%x die = %d block_in_die = 0x%x 0x%8x\012"
- .ascii "\000"
-.LC8:
- .ascii "\012!!!!! error @ func:%s - line:%d\012\000"
-.LC9:
- .ascii "FLASH INFO:\012\000"
-.LC10:
- .ascii "Device Capacity: %d MB\012\000"
-.LC11:
- .ascii "FTL INFO:\012\000"
-.LC12:
- .ascii "g_MaxLpn = 0x%x\012\000"
-.LC13:
- .ascii "g_VaildLpn = 0x%x\012\000"
-.LC14:
- .ascii "read_page_count = 0x%x\012\000"
-.LC15:
- .ascii "discard_page_count = 0x%x\012\000"
-.LC16:
- .ascii "write_page_count = 0x%x\012\000"
-.LC17:
- .ascii "cache_write_count = 0x%x\012\000"
-.LC18:
- .ascii "l2p_write_count = 0x%x\012\000"
-.LC19:
- .ascii "gc_page_count = 0x%x\012\000"
-.LC20:
- .ascii "totle_write = %d MB\012\000"
-.LC21:
- .ascii "totle_read = %d MB\012\000"
-.LC22:
- .ascii "GSV = 0x%x\012\000"
-.LC23:
- .ascii "GDV = 0x%x\012\000"
-.LC24:
- .ascii "bad blk num = %d\012\000"
-.LC25:
- .ascii "free_superblocks = 0x%x\012\000"
-.LC26:
- .ascii "mlc_EC = 0x%x\012\000"
-.LC27:
- .ascii "slc_EC = 0x%x\012\000"
-.LC28:
- .ascii "avg_EC = 0x%x\012\000"
-.LC29:
- .ascii "sys_EC = 0x%x\012\000"
-.LC30:
- .ascii "max_EC = 0x%x\012\000"
-.LC31:
- .ascii "min_EC = 0x%x\012\000"
-.LC32:
- .ascii "PLT = 0x%x\012\000"
-.LC33:
- .ascii "POT = 0x%x\012\000"
-.LC34:
- .ascii "MaxSector = 0x%x\012\000"
-.LC35:
- .ascii "init_sys_blks_pp = 0x%x\012\000"
-.LC36:
- .ascii "sys_blks_pp = 0x%x\012\000"
-.LC37:
- .ascii "free sysblock = 0x%x\012\000"
-.LC38:
- .ascii "data_blks_pp = 0x%x\012\000"
-.LC39:
- .ascii "data_op_blks_pp = 0x%x\012\000"
-.LC40:
- .ascii "max_data_blks = 0x%x\012\000"
-.LC41:
- .ascii "Sys.id = 0x%x\012\000"
-.LC42:
- .ascii "Bbt.id = 0x%x\012\000"
-.LC43:
- .ascii "ACT.page = 0x%x\012\000"
-.LC44:
- .ascii "ACT.plane = 0x%x\012\000"
-.LC45:
- .ascii "ACT.id = 0x%x\012\000"
-.LC46:
- .ascii "ACT.mode = 0x%x\012\000"
-.LC47:
- .ascii "ACT.a_pages = 0x%x\012\000"
-.LC48:
- .ascii "ACT VPC = 0x%x\012\000"
-.LC49:
- .ascii "BUF.page = 0x%x\012\000"
-.LC50:
- .ascii "BUF.plane = 0x%x\012\000"
-.LC51:
- .ascii "BUF.id = 0x%x\012\000"
-.LC52:
- .ascii "BUF.mode = 0x%x\012\000"
-.LC53:
- .ascii "BUF.a_pages = 0x%x\012\000"
-.LC54:
- .ascii "BUF VPC = 0x%x\012\000"
-.LC55:
- .ascii "TMP.page = 0x%x\012\000"
-.LC56:
- .ascii "TMP.plane = 0x%x\012\000"
-.LC57:
- .ascii "TMP.id = 0x%x\012\000"
-.LC58:
- .ascii "TMP.mode = 0x%x\012\000"
-.LC59:
- .ascii "TMP.a_pages = 0x%x\012\000"
-.LC60:
- .ascii "GC.page = 0x%x\012\000"
-.LC61:
- .ascii "GC.plane = 0x%x\012\000"
-.LC62:
- .ascii "GC.id = 0x%x\012\000"
-.LC63:
- .ascii "GC.mode = 0x%x\012\000"
-.LC64:
- .ascii "GC.a_pages = 0x%x\012\000"
-.LC65:
- .ascii "WR_CHK = %x %x %x\012\000"
-.LC66:
- .ascii "Read Err Cnt = 0x%x\012\000"
-.LC67:
- .ascii "Prog Err Cnt = 0x%x\012\000"
-.LC68:
- .ascii "gc_free_blk_th= 0x%x\012\000"
-.LC69:
- .ascii "gc_merge_free_blk_th= 0x%x\012\000"
-.LC70:
- .ascii "gc_skip_write_count= 0x%x\012\000"
-.LC71:
- .ascii "gc_blk_index= 0x%x\012\000"
-.LC72:
- .ascii "free min EC= 0x%x\012\000"
-.LC73:
- .ascii "free max EC= 0x%x\012\000"
-.LC74:
- .ascii "GC__SB VPC = 0x%x\012\000"
-.LC75:
- .ascii "%d. [0x%x]=0x%x 0x%x 0x%x\012\000"
-.LC76:
- .ascii "free %d. [0x%x] 0x%x 0x%x\012\000"
-.LC77:
- .ascii "%s\012\000"
-.LC78:
- .ascii "swblk %x ,avg = %x max= %x vpc= %x,ec=%x ,max ec=%x"
- .ascii "\012\000"
-.LC79:
- .ascii "FtlGcRefreshBlock 0x%x\012\000"
-.LC80:
- .ascii "FtlGcMarkBadPhyBlk %d 0x%x\012\000"
-.LC81:
- .ascii "%s %p + 0x%x:\000"
-.LC82:
- .ascii "0x%08x,\000"
-.LC83:
- .ascii "0x%04x,\000"
-.LC84:
- .ascii "0x%02x,\000"
-.LC85:
- .ascii "\012\000"
-.LC86:
- .ascii "%s: addr: %x is in id block!!!!!!!!!!\012\000"
-.LC87:
- .ascii "not free: w: d:\000"
-.LC88:
- .ascii "not free: w: s:\000"
-.LC89:
- .ascii "FtlFreeSysBlkQueueOut = %x, free count = %d, error\012"
- .ascii "\000"
-.LC90:
- .ascii "FtlFreeSysBlkQueueOut = %x, free count = %d\012\000"
-.LC91:
- .ascii "%s error allocating memory. return -1\012\000"
-.LC92:
- .ascii "FlashReadPages %x %x error_ecc_bits %d\012\000"
-.LC93:
- .ascii "data:\000"
-.LC94:
- .ascii "spare:\000"
-.LC95:
- .ascii "prog read error: = %x\012\000"
-.LC96:
- .ascii "prog read REFRESH: = %x\012\000"
-.LC97:
- .ascii "prog read s error: = %x %x %x %x %x\012\000"
-.LC98:
- .ascii "prog read d error: = %x %x %x %x %x\012\000"
-.LC99:
- .ascii "FtlBbmTblFlush id=%x,page=%x,previd=%x cnt=%d\012\000"
-.LC100:
- .ascii "FtlBbmTblFlush error:%x\012\000"
-.LC101:
- .ascii "FtlBbmTblFlush error = %x error count = %d\012\000"
-.LC102:
- .ascii "FtlGcFreeBadSuperBlk 0x%x\012\000"
-.LC103:
- .ascii "decrement_vpc_count %x = %d\012\000"
-.LC104:
- .ascii "FtlMapWritePage error = %x \012\000"
-.LC105:
- .ascii "FtlMapWritePage error = %x error count = %d\012\000"
-.LC106:
- .ascii "region_id = %x phyAddr = %x\012\000"
-.LC107:
- .ascii "map_ppn:\000"
-.LC108:
- .ascii "load_l2p_region refresh = %x phyAddr = %x\012\000"
-.LC109:
- .ascii "data prev_ppa = %x error...................\012\000"
-.LC110:
- .ascii "spuer block %x vpn is 0\012 \000"
-.LC111:
- .ascii "...%s enter...\012\000"
-.LC112:
- .ascii "FtlCheckVpc2 %x = %x %x\012\000"
-.LC113:
- .ascii "free blk vpc error %x = %x %x\012\000"
-.LC114:
- .ascii "ftl_scan_all_data = %x\012\000"
-.LC115:
- .ascii "scan lpa = %x ppa= %x\012\000"
-.LC116:
- .ascii "lpa = %x,addr= %x,spare= %x %x %x %x data=%x %x\012"
- .ascii "\000"
-.LC117:
- .ascii "FtlGcScanTempBlk Error ID %x %x!!!!!!! \012\000"
-.LC118:
- .ascii "FtlVendorPartRead refresh = %x phyAddr = %x\012\000"
-.LC119:
- .ascii "no ect\000"
-.LC120:
- .ascii "FtlVpcTblFlush error = %x error count = %d\012\000"
-.LC121:
- .ascii "FtlCheckVpc %x = %x %x\012\000"
-.LC122:
- .ascii "FtlProgPages error %x = %d\012\000"
-.LC123:
- .ascii "Ftlwrite decrement_vpc_count %x = %d\012\000"
-.LC124:
- .ascii "SWL %x, FSB = %x vpc= %x,ec=%x th=%x\012\000"
-.LC125:
- .ascii "FtlWrite: ecc error:%x %x %x\012\000"
-.LC126:
- .ascii "FtlWrite: lpa error:%x %x\012\000"
-.LC127:
- .ascii "%s hash error this.id =%x page =%x pre_id =%x hash "
- .ascii "=%x hash_r =%x\012\000"
-.LC128:
- .ascii "%s last blk_id =%x page =%x hash error hash =%x has"
- .ascii "h_r =%x\012\000"
-.LC129:
- .ascii "%s scan blk_id =%x page =%x hash error hash =%x has"
- .ascii "h_r =%x\012\000"
-.LC130:
- .ascii "write_idblock %x %x\012\000"
-.LC131:
- .ascii "write_idblock fail! %x %x %x %x\012\000"
-.LC132:
- .ascii "%s idb buffer alloc fail\012\000"
-.LC133:
- .ascii "copy_from_user error %d %p %p\012\000"
-.LC134:
- .ascii "vendor_storage\000"
+ .ident "GCC: (GNU Toolchain for the A-profile Architecture 10.3-2021.07 (arm-10.29)) 10.3.1 20210621"
+ .section .note.GNU-stack,"",%progbits
--
Gitblit v1.6.2