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/rk_nand/rk_ftl_arm_v7_thumb.S | 33029 ++++++++++++++++++++++++++++++-----------------------------
1 files changed, 16,663 insertions(+), 16,366 deletions(-)
diff --git a/kernel/drivers/rk_nand/rk_ftl_arm_v7_thumb.S b/kernel/drivers/rk_nand/rk_ftl_arm_v7_thumb.S
index af0eb25..4cf752e 100644
--- a/kernel/drivers/rk_nand/rk_ftl_arm_v7_thumb.S
+++ b/kernel/drivers/rk_nand/rk_ftl_arm_v7_thumb.S
@@ -5,11 +5,10 @@
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- * date: 2020-09-23
+ * date: 2021-07-26
*/
.syntax unified
.arch armv7-a
- .fpu softvfp
.eabi_attribute 20, 1
.eabi_attribute 21, 1
.eabi_attribute 23, 3
@@ -18,148 +17,250 @@
.eabi_attribute 26, 2
.eabi_attribute 30, 4
.eabi_attribute 34, 1
- .eabi_attribute 18, 2
- .thumb
- .file "rk_ftl_arm_v7.S"
-#APP
- .syntax unified
+ .file "rk_ftl_arm_v7.c"
.thumb
.text
.align 1
- .global FlashMemCmp8
.thumb
.thumb_func
+ .fpu softvfp
+ .type ndelay, %function
+ndelay:
+ .fnstart
+ @ args = 0, pretend = 0, frame = 0
+ @ frame_needed = 0, uses_anonymous_args = 0
+ @ link register save eliminated.
+ ldr r3, .L2
+ addw r0, r0, #999
+ umull r0, r1, r0, r3
+ ldr r3, .L2+4
+ ldr r3, [r3, #8]
+ lsrs r0, r1, #6
+ bx r3 @ indirect register sibling call
+.L3:
+ .align 2
+.L2:
+ .word 274877907
+ .word arm_delay_ops
+ .fnend
+ .size ndelay, .-ndelay
+ .align 1
+ .syntax unified
+ .thumb
+ .thumb_func
+ .fpu softvfp
+ .type flash_read_ecc, %function
+flash_read_ecc:
+ .fnstart
+ @ args = 0, pretend = 0, frame = 0
+ @ frame_needed = 0, uses_anonymous_args = 0
+ ldr r3, .L5
+ push {r4, lr}
+ .save {r4, lr}
+ ldr r4, [r3, r0, lsl #3]
+ add r3, r3, r0, lsl #3
+ movs r0, #80
+ ldrb r3, [r3, #4] @ zero_extendqisi2
+ add r4, r4, r3, lsl #8
+ movs r3, #122
+ str r3, [r4, #2056]
+ bl ndelay
+ ldr r3, [r4, #2048]
+ ldr r0, [r4, #2048]
+ and r3, r3, #15
+ and r0, r0, #15
+ cmp r0, r3
+ it cc
+ movcc r0, r3
+ ldr r3, [r4, #2048]
+ and r3, r3, #15
+ cmp r3, r0
+ it cc
+ movcc r3, r0
+ ldr r0, [r4, #2048]
+ and r0, r0, #15
+ cmp r0, r3
+ it cc
+ movcc r0, r3
+ pop {r4, pc}
+.L6:
+ .align 2
+.L5:
+ .word .LANCHOR0
+ .fnend
+ .size flash_read_ecc, .-flash_read_ecc
+ .align 1
+ .syntax unified
+ .thumb
+ .thumb_func
+ .fpu softvfp
+ .type ftl_set_blk_mode.part.9, %function
+ftl_set_blk_mode.part.9:
+ .fnstart
+ @ args = 0, pretend = 0, frame = 0
+ @ frame_needed = 0, uses_anonymous_args = 0
+ @ link register save eliminated.
+ ldr r3, .L8
+ lsrs r1, r0, #5
+ and r0, r0, #31
+ ldr r2, [r3, #32]
+ movs r3, #1
+ lsl r0, r3, r0
+ ldr r3, [r2, r1, lsl #2]
+ orrs r3, r3, r0
+ str r3, [r2, r1, lsl #2]
+ bx lr
+.L9:
+ .align 2
+.L8:
+ .word .LANCHOR0
+ .fnend
+ .size ftl_set_blk_mode.part.9, .-ftl_set_blk_mode.part.9
+ .align 1
+ .global FlashMemCmp8
+ .syntax unified
+ .thumb
+ .thumb_func
+ .fpu softvfp
.type FlashMemCmp8, %function
FlashMemCmp8:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L10
+ ldr r3, .L18
push {r4, r5, lr}
.save {r4, r5, lr}
- ldrb r3, [r3] @ zero_extendqisi2
- cbz r3, .L4
+ ldrb r3, [r3, #36] @ zero_extendqisi2
+ cbz r3, .L13
ldrb r4, [r0, #1] @ zero_extendqisi2
ldrb r3, [r1, #1] @ zero_extendqisi2
cmp r4, r3
- beq .L8
+ beq .L17
movs r3, #0
-.L4:
+.L13:
cmp r3, r2
- beq .L8
+ bne .L15
+.L17:
+ movs r0, #0
+ pop {r4, r5, pc}
+.L15:
ldrb r5, [r0, r3] @ zero_extendqisi2
ldrb r4, [r1, r3] @ zero_extendqisi2
adds r3, r3, #1
cmp r5, r4
- beq .L4
+ beq .L13
mov r0, r3
pop {r4, r5, pc}
-.L8:
- movs r0, #0
- pop {r4, r5, pc}
-.L11:
+.L19:
.align 2
-.L10:
+.L18:
.word .LANCHOR0
.fnend
.size FlashMemCmp8, .-FlashMemCmp8
.align 1
.global FlashRsvdBlkChk
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FlashRsvdBlkChk, %function
FlashRsvdBlkChk:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- @ link register save eliminated.
- ldr r3, .L15
- ldrb r2, [r3, #1] @ zero_extendqisi2
- ldr r3, [r3, #4]
- muls r3, r2, r3
- cmp r1, r3
- bcs .L14
+ ldr r2, .L23
+ push {r4, lr}
+ .save {r4, lr}
+ ldrb r4, [r2, #37] @ zero_extendqisi2
+ ldr r3, [r2, #40]
+ muls r3, r4, r3
+ cmp r3, r1
+ bls .L22
adds r0, r0, #0
it ne
movne r0, #1
- bx lr
-.L14:
+ pop {r4, pc}
+.L22:
movs r0, #1
- bx lr
-.L16:
+ pop {r4, pc}
+.L24:
.align 2
-.L15:
+.L23:
.word .LANCHOR0
.fnend
.size FlashRsvdBlkChk, .-FlashRsvdBlkChk
.align 1
.global FlashGetRandomizer
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FlashGetRandomizer, %function
FlashGetRandomizer:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L25
+ ldr r3, .L33
and r2, r1, #127
push {r4, lr}
.save {r4, lr}
ldrh r4, [r3, r2, lsl #1]
- ldr r3, .L25+4
- ldrb r3, [r3, #8] @ zero_extendqisi2
- cbz r3, .L18
+ ldr r3, .L33+4
+ ldrb r3, [r3, #44] @ zero_extendqisi2
+ cbz r3, .L25
bl FlashRsvdBlkChk
- cbz r0, .L18
+ cbz r0, .L25
orr r4, r4, #-1073741824
-.L18:
+.L25:
mov r0, r4
pop {r4, pc}
-.L26:
+.L34:
.align 2
-.L25:
+.L33:
.word .LANCHOR1
.word .LANCHOR0
.fnend
.size FlashGetRandomizer, .-FlashGetRandomizer
.align 1
.global FlashSetRandomizer
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FlashSetRandomizer, %function
FlashSetRandomizer:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L35
- and r2, r1, #127
push {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
+ and r2, r1, #127
+ ldr r3, .L43
mov r6, r0
+ ldr r4, .L43+4
ldrh r5, [r3, r2, lsl #1]
- ldr r3, .L35+4
- ldrb r2, [r3, #8] @ zero_extendqisi2
- mov r4, r3
- cbz r2, .L28
+ ldrb r2, [r4, #44] @ zero_extendqisi2
+ cbz r2, .L36
bl FlashRsvdBlkChk
- cbz r0, .L28
+ cbz r0, .L36
orr r5, r5, #-1073741824
-.L28:
- add r4, r4, r6, lsl #3
- ldr r3, [r4, #12]
+.L36:
+ ldr r3, [r4, r6, lsl #3]
str r5, [r3, #336]
pop {r4, r5, r6, pc}
-.L36:
+.L44:
.align 2
-.L35:
+.L43:
.word .LANCHOR1
.word .LANCHOR0
.fnend
.size FlashSetRandomizer, .-FlashSetRandomizer
.align 1
.global FlashBlockAlignInit
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FlashBlockAlignInit, %function
FlashBlockAlignInit:
.fnstart
@@ -167,57 +268,60 @@
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
cmp r0, #512
- ldr r3, .L43
- bls .L38
+ ldr r3, .L51
+ bls .L46
mov r2, #1024
- b .L42
-.L38:
+.L50:
+ str r2, [r3, #40]
+ bx lr
+.L46:
cmp r0, #256
- bls .L40
+ bls .L48
mov r2, #512
- b .L42
-.L40:
+ b .L50
+.L48:
cmp r0, #128
- bhi .L41
- str r0, [r3, #4]
+ bhi .L49
+ str r0, [r3, #40]
bx lr
-.L41:
+.L49:
mov r2, #256
-.L42:
- str r2, [r3, #4]
- bx lr
-.L44:
+ b .L50
+.L52:
.align 2
-.L43:
+.L51:
.word .LANCHOR0
.fnend
.size FlashBlockAlignInit, .-FlashBlockAlignInit
.align 1
.global FlashReadCmd
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FlashReadCmd, %function
FlashReadCmd:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r2, .L47
- push {r4, r5, lr}
- .save {r4, r5, lr}
- add r3, r2, r0, lsl #3
- ldr r2, [r2, #44]
- ldr r4, [r3, #12]
- ldrb r3, [r3, #16] @ zero_extendqisi2
- ldrb r2, [r2, #7] @ zero_extendqisi2
- lsls r3, r3, #8
- cmp r2, #1
- it eq
- addeq r2, r4, r3
- add r3, r3, r4
+ @ link register save eliminated.
+ push {r4, r5}
+ .save {r4, r5}
+ ldr r4, .L55
+ ldr r3, [r4, r0, lsl #3]
+ add r2, r4, r0, lsl #3
+ ldr r4, [r4, #48]
+ ldrb r2, [r2, #4] @ zero_extendqisi2
+ ldrb r4, [r4, #7] @ zero_extendqisi2
+ lsls r2, r2, #8
+ cmp r4, #1
itt eq
moveq r5, #38
- streq r5, [r2, #2056]
- movs r2, #0
+ addeq r4, r3, r2
+ add r3, r3, r2
+ mov r2, #0
+ it eq
+ streq r5, [r4, #2056]
str r2, [r3, #2056]
str r2, [r3, #2052]
str r2, [r3, #2052]
@@ -229,37 +333,40 @@
str r2, [r3, #2052]
movs r2, #48
str r2, [r3, #2056]
- pop {r4, r5, lr}
+ pop {r4, r5}
b FlashSetRandomizer
-.L48:
+.L56:
.align 2
-.L47:
+.L55:
.word .LANCHOR0
.fnend
.size FlashReadCmd, .-FlashReadCmd
.align 1
.global FlashReadDpDataOutCmd
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FlashReadDpDataOutCmd, %function
FlashReadDpDataOutCmd:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- push {r4, r5, r6, lr}
- .save {r4, r5, r6, lr}
+ @ link register save eliminated.
+ push {r4, r5, r6}
+ .save {r4, r5, r6}
uxtb r6, r1
- ldr r4, .L53
+ ldr r4, .L61
lsrs r5, r1, #8
- add r3, r4, r0, lsl #3
- ldrb r4, [r4, #64] @ zero_extendqisi2
- ldr r2, [r3, #12]
- ldrb r3, [r3, #16] @ zero_extendqisi2
+ ldr r3, [r4, r0, lsl #3]
+ add r2, r4, r0, lsl #3
+ ldrb r4, [r4, #68] @ zero_extendqisi2
+ ldrb r2, [r2, #4] @ zero_extendqisi2
cmp r4, #1
lsr r4, r1, #16
- lsl r3, r3, #8
+ lsl r2, r2, #8
add r3, r3, r2
- bne .L50
+ bne .L58
movs r2, #6
str r2, [r3, #2056]
movs r2, #0
@@ -268,8 +375,12 @@
str r6, [r3, #2052]
str r5, [r3, #2052]
str r4, [r3, #2052]
- b .L52
-.L50:
+.L60:
+ movs r2, #224
+ str r2, [r3, #2056]
+ pop {r4, r5, r6}
+ b FlashSetRandomizer
+.L58:
movs r2, #0
str r2, [r3, #2056]
str r2, [r3, #2052]
@@ -281,33 +392,32 @@
str r4, [r3, #2056]
str r2, [r3, #2052]
str r2, [r3, #2052]
-.L52:
- movs r2, #224
- str r2, [r3, #2056]
- pop {r4, r5, r6, lr}
- b FlashSetRandomizer
-.L54:
+ b .L60
+.L62:
.align 2
-.L53:
+.L61:
.word .LANCHOR0
.fnend
.size FlashReadDpDataOutCmd, .-FlashReadDpDataOutCmd
.align 1
.global FlashProgFirstCmd
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FlashProgFirstCmd, %function
FlashProgFirstCmd:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- push {r4, lr}
- .save {r4, lr}
+ @ link register save eliminated.
+ push {r4, r5}
+ .save {r4, r5}
lsrs r2, r1, #16
- ldr r4, .L56
+ ldr r4, .L64
+ ldr r3, [r4, r0, lsl #3]
add r4, r4, r0, lsl #3
- ldr r3, [r4, #12]
- ldrb r4, [r4, #16] @ zero_extendqisi2
+ ldrb r4, [r4, #4] @ zero_extendqisi2
add r3, r3, r4, lsl #8
movs r4, #128
str r4, [r3, #2056]
@@ -319,18 +429,20 @@
lsrs r4, r1, #8
str r4, [r3, #2052]
str r2, [r3, #2052]
- pop {r4, lr}
+ pop {r4, r5}
b FlashSetRandomizer
-.L57:
+.L65:
.align 2
-.L56:
+.L64:
.word .LANCHOR0
.fnend
.size FlashProgFirstCmd, .-FlashProgFirstCmd
.align 1
.global FlashEraseCmd
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FlashEraseCmd, %function
FlashEraseCmd:
.fnstart
@@ -338,25 +450,25 @@
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, lr}
.save {r4, r5, lr}
- ldr r5, .L63
- add r0, r5, r0, lsl #3
- ldrb r3, [r0, #16] @ zero_extendqisi2
- ldr r4, [r0, #12]
- lsls r3, r3, #8
- cbz r2, .L59
- adds r2, r4, r3
- movs r0, #96
- str r0, [r2, #2056]
- uxtb r0, r1
- str r0, [r2, #2052]
- lsrs r0, r1, #8
- str r0, [r2, #2052]
- lsrs r0, r1, #16
- str r0, [r2, #2052]
- ldr r2, [r5, #4]
+ ldr r4, .L71
+ ldr r3, [r4, r0, lsl #3]
+ add r0, r4, r0, lsl #3
+ ldrb r0, [r0, #4] @ zero_extendqisi2
+ lsls r0, r0, #8
+ cbz r2, .L67
+ adds r2, r3, r0
+ movs r5, #96
+ str r5, [r2, #2056]
+ uxtb r5, r1
+ str r5, [r2, #2052]
+ lsrs r5, r1, #8
+ str r5, [r2, #2052]
+ lsrs r5, r1, #16
+ str r5, [r2, #2052]
+ ldr r2, [r4, #40]
add r1, r1, r2
-.L59:
- add r3, r3, r4
+.L67:
+ add r3, r3, r0
movs r2, #96
str r2, [r3, #2056]
uxtb r2, r1
@@ -364,34 +476,37 @@
lsrs r2, r1, #8
lsrs r1, r1, #16
str r2, [r3, #2052]
- str r1, [r3, #2052]
movs r2, #208
+ str r1, [r3, #2052]
str r2, [r3, #2056]
pop {r4, r5, pc}
-.L64:
+.L72:
.align 2
-.L63:
+.L71:
.word .LANCHOR0
.fnend
.size FlashEraseCmd, .-FlashEraseCmd
.align 1
.global FlashProgDpSecondCmd
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FlashProgDpSecondCmd, %function
FlashProgDpSecondCmd:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- push {r4, r5, lr}
- .save {r4, r5, lr}
+ @ link register save eliminated.
+ push {r4, r5, r6}
+ .save {r4, r5, r6}
lsrs r2, r1, #16
- ldr r4, .L66
- add r5, r4, r0, lsl #3
- ldrb r4, [r4, #59] @ zero_extendqisi2
- ldr r3, [r5, #12]
- ldrb r5, [r5, #16] @ zero_extendqisi2
- add r3, r3, r5, lsl #8
+ ldr r5, .L74
+ ldr r3, [r5, r0, lsl #3]
+ add r4, r5, r0, lsl #3
+ ldrb r6, [r4, #4] @ zero_extendqisi2
+ ldrb r4, [r5, #63] @ zero_extendqisi2
+ add r3, r3, r6, lsl #8
str r4, [r3, #2056]
movs r4, #0
str r4, [r3, #2052]
@@ -401,18 +516,20 @@
lsrs r4, r1, #8
str r4, [r3, #2052]
str r2, [r3, #2052]
- pop {r4, r5, lr}
+ pop {r4, r5, r6}
b FlashSetRandomizer
-.L67:
+.L75:
.align 2
-.L66:
+.L74:
.word .LANCHOR0
.fnend
.size FlashProgDpSecondCmd, .-FlashProgDpSecondCmd
.align 1
.global FlashProgSecondCmd
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FlashProgSecondCmd, %function
FlashProgSecondCmd:
.fnstart
@@ -420,85 +537,123 @@
@ frame_needed = 0, uses_anonymous_args = 0
push {r3, r4, r5, lr}
.save {r3, r4, r5, lr}
- ldr r3, .L69
- add r0, r3, r0, lsl #3
- ldr r3, .L69+4
- ldr r4, [r0, #12]
- ldrb r5, [r0, #16] @ zero_extendqisi2
- ldr r3, [r3, #4]
- ldr r0, .L69+8
- blx r3
+ ldr r3, .L77
+ ldr r4, [r3, r0, lsl #3]
+ add r3, r3, r0, lsl #3
+ ldr r0, .L77+4
+ ldrb r5, [r3, #4] @ zero_extendqisi2
+ ldr r3, .L77+8
add r4, r4, r5, lsl #8
+ ldr r3, [r3, #4]
+ blx r3
movs r3, #16
str r3, [r4, #2056]
pop {r3, r4, r5, pc}
-.L70:
+.L78:
.align 2
-.L69:
+.L77:
.word .LANCHOR0
+ .word 64424500
.word arm_delay_ops
- .word 214748300
.fnend
.size FlashProgSecondCmd, .-FlashProgSecondCmd
.align 1
.global FlashProgDpFirstCmd
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FlashProgDpFirstCmd, %function
FlashProgDpFirstCmd:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r2, .L72
+ ldr r2, .L80
+ ldr r3, [r2, r0, lsl #3]
add r0, r2, r0, lsl #3
- ldrb r2, [r2, #58] @ zero_extendqisi2
- ldrb r1, [r0, #16] @ zero_extendqisi2
- ldr r3, [r0, #12]
+ ldrb r2, [r2, #62] @ zero_extendqisi2
+ ldrb r1, [r0, #4] @ zero_extendqisi2
add r3, r3, r1, lsl #8
str r2, [r3, #2056]
bx lr
-.L73:
+.L81:
.align 2
-.L72:
+.L80:
.word .LANCHOR0
.fnend
.size FlashProgDpFirstCmd, .-FlashProgDpFirstCmd
.align 1
- .global js_hash
+ .global FlashReadStatus
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
+ .type FlashReadStatus, %function
+FlashReadStatus:
+ .fnstart
+ @ args = 0, pretend = 0, frame = 0
+ @ frame_needed = 0, uses_anonymous_args = 0
+ push {r3, r4, r5, lr}
+ .save {r3, r4, r5, lr}
+ movs r2, #112
+ ldr r3, .L83
+ ldr r5, [r3, r0, lsl #3]
+ add r3, r3, r0, lsl #3
+ movs r0, #80
+ ldrb r4, [r3, #4] @ zero_extendqisi2
+ add r3, r5, r4, lsl #8
+ adds r4, r4, #8
+ lsls r4, r4, #8
+ str r2, [r3, #2056]
+ bl ndelay
+ ldr r0, [r5, r4]
+ pop {r3, r4, r5, pc}
+.L84:
+ .align 2
+.L83:
+ .word .LANCHOR0
+ .fnend
+ .size FlashReadStatus, .-FlashReadStatus
+ .align 1
+ .global js_hash
+ .syntax unified
+ .thumb
+ .thumb_func
+ .fpu softvfp
.type js_hash, %function
js_hash:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L78
+ ldr r3, .L88
add r1, r1, r0
push {r4, lr}
.save {r4, lr}
-.L75:
+.L86:
cmp r0, r1
- beq .L77
- lsls r2, r3, #5
- ldrb r4, [r0], #1 @ zero_extendqisi2
- add r2, r2, r3, lsr #2
- add r2, r2, r4
- eors r3, r3, r2
- b .L75
-.L77:
+ bne .L87
mov r0, r3
pop {r4, pc}
-.L79:
+.L87:
+ lsrs r2, r3, #2
+ ldrb r4, [r0], #1 @ zero_extendqisi2
+ add r2, r2, r3, lsl #5
+ add r2, r2, r4
+ eors r3, r3, r2
+ b .L86
+.L89:
.align 2
-.L78:
+.L88:
.word 1204201446
.fnend
.size js_hash, .-js_hash
.align 1
.global FlashLoadIdbInfo
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FlashLoadIdbInfo, %function
FlashLoadIdbInfo:
.fnstart
@@ -511,8 +666,10 @@
.size FlashLoadIdbInfo, .-FlashLoadIdbInfo
.align 1
.global FlashPrintInfo
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FlashPrintInfo, %function
FlashPrintInfo:
.fnstart
@@ -523,45 +680,156 @@
.fnend
.size FlashPrintInfo, .-FlashPrintInfo
.align 1
- .global ftl_flash_suspend
+ .global ToshibaSetRRPara
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
+ .type ToshibaSetRRPara, %function
+ToshibaSetRRPara:
+ .fnstart
+ @ args = 0, pretend = 0, frame = 0
+ @ frame_needed = 0, uses_anonymous_args = 0
+ push {r4, r5, r6, r7, r8, r9, r10, lr}
+ .save {r4, r5, r6, r7, r8, r9, r10, lr}
+ add r8, r1, r1, lsl #2
+ ldr r9, .L100+8
+ mov r5, r0
+ mov r6, r1
+ movs r4, #0
+ ldr r7, .L100
+ add r10, r9, #256
+.L93:
+ ldrb r3, [r7, #85] @ zero_extendqisi2
+ cmp r4, r3
+ bcc .L97
+ pop {r4, r5, r6, r7, r8, r9, r10, pc}
+.L97:
+ movs r3, #85
+ movs r0, #200
+ str r3, [r5, #8]
+ ldrsb r3, [r4, r10]
+ str r3, [r5, #4]
+ bl ndelay
+ ldrb r3, [r7, #84] @ zero_extendqisi2
+ cmp r3, #34
+ bne .L94
+ add r3, r4, r8
+ add r3, r3, r10
+.L99:
+ ldrsb r3, [r3, #5]
+.L98:
+ str r3, [r5]
+ adds r4, r4, #1
+ b .L93
+.L94:
+ cmp r3, #35
+ bne .L96
+ ldr r2, .L100+4
+ add r3, r4, r8
+ add r3, r3, r2
+ b .L99
+.L96:
+ add r3, r9, r6
+ ldrsb r3, [r3, #396]
+ b .L98
+.L101:
+ .align 2
+.L100:
+ .word .LANCHOR0
+ .word .LANCHOR1+301
+ .word .LANCHOR1
+ .fnend
+ .size ToshibaSetRRPara, .-ToshibaSetRRPara
+ .align 1
+ .global SamsungSetRRPara
+ .syntax unified
+ .thumb
+ .thumb_func
+ .fpu softvfp
+ .type SamsungSetRRPara, %function
+SamsungSetRRPara:
+ .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}
+ movs r4, #0
+ ldr r7, .L105
+ mov r6, r0
+ mov r9, #161
+ mov r10, r4
+ ldr r8, .L105+4
+ add r1, r7, r1, lsl #2
+ adds r5, r1, #3
+.L103:
+ ldrb r3, [r8, #85] @ zero_extendqisi2
+ cmp r4, r3
+ bcc .L104
+ pop {r4, r5, r6, r7, r8, r9, r10, pc}
+.L104:
+ str r9, [r6, #8]
+ mov r0, #300
+ str r10, [r6]
+ ldrsb r3, [r7, r4]
+ adds r4, r4, #1
+ str r3, [r6]
+ ldrsb r3, [r5, #1]!
+ str r3, [r6]
+ bl ndelay
+ b .L103
+.L106:
+ .align 2
+.L105:
+ .word .LANCHOR1+404
+ .word .LANCHOR0
+ .fnend
+ .size SamsungSetRRPara, .-SamsungSetRRPara
+ .align 1
+ .global ftl_flash_suspend
+ .syntax unified
+ .thumb
+ .thumb_func
+ .fpu softvfp
.type ftl_flash_suspend, %function
ftl_flash_suspend:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L83
- ldr r2, [r3, #80]
+ ldr r3, .L108
+ ldr r2, [r3, #88]
ldr r1, [r2]
- str r1, [r3, #84]
- ldr r1, [r2, #4]
- str r1, [r3, #88]
- ldr r1, [r2, #8]
str r1, [r3, #92]
- ldr r1, [r2, #12]
+ ldr r1, [r2, #4]
str r1, [r3, #96]
- ldr r1, [r2, #304]
+ ldr r1, [r2, #8]
str r1, [r3, #100]
- ldr r1, [r2, #308]
+ ldr r1, [r2, #12]
str r1, [r3, #104]
+ ldr r1, [r2, #304]
+ str r1, [r3, #108]
+ ldr r1, [r2, #308]
+ str r1, [r3, #112]
ldr r1, [r2, #336]
ldr r2, [r2, #344]
- str r1, [r3, #108]
- str r2, [r3, #112]
+ str r1, [r3, #116]
+ str r2, [r3, #120]
bx lr
-.L84:
+.L109:
.align 2
-.L83:
+.L108:
.word .LANCHOR0
.fnend
.size ftl_flash_suspend, .-ftl_flash_suspend
.global __aeabi_uidiv
+ .global __aeabi_uidivmod
.align 1
.global LogAddr2PhyAddr
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type LogAddr2PhyAddr, %function
LogAddr2PhyAddr:
.fnstart
@@ -570,117 +838,221 @@
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 r7, r0
- ldr r0, .L90
- mov r8, r3
- ldr r4, [r7, #4]
- mov r10, r1
mov r9, r2
- ldrh r3, [r0, #130]
- bic r4, r4, #-2147483648
- ldrh r5, [r0, #128]
- mov r6, r0
- ldrh fp, [r0, #4]
- smulbb r5, r5, r3
- ldrb r3, [r0] @ zero_extendqisi2
- cmp r3, #1
- ubfx r3, r4, #10, #16
- it eq
- lsleq fp, fp, #1
- str r3, [sp, #4]
- mov r0, r3
- uxth r5, r5
- it eq
- uxtheq fp, fp
- mov r1, r5
- bl __aeabi_uidiv
- cmp r10, #1
- ubfx r1, r4, #0, #10
- uxth r0, r0
- ldr r3, [sp, #4]
- smulbb r5, r0, r5
- sub r3, r3, r5
+ ldr r4, .L115
+ mov fp, r3
+ mov r10, r1
+ mov r7, r0
+ ldr r5, [r0, #4]
+ ldrh r2, [r4, #136]
+ ldrh r3, [r4, #138]
+ ldrh r6, [r4, #40]
+ smulbb r3, r3, r2
+ ldrb r2, [r4, #36] @ zero_extendqisi2
uxth r3, r3
- bne .L87
- ldrb r2, [r6, #144] @ zero_extendqisi2
- cbnz r2, .L87
- ldr r2, .L90
- add r1, r2, r1, lsl #1
- ldrh r1, [r1, #148]
-.L87:
- add r6, r6, r0, lsl #2
- ldr r2, [r6, #1172]
- mla fp, fp, r3, r2
+ cmp r2, #1
+ it eq
+ lsleq r6, r6, #1
+ ubfx r2, r5, #10, #16
+ mov r1, r3
+ str r3, [sp, #4]
+ mov r0, r2
+ it eq
+ uxtheq r6, r6
+ str r2, [sp]
+ bl __aeabi_uidiv
+ ldr r3, [sp, #4]
+ uxth r8, r0
+ ldr r2, [sp]
+ mov r1, r3
+ mov r0, r2
+ bl __aeabi_uidivmod
+ cmp r10, #1
+ uxth r1, r1
+ ubfx r0, r5, #0, #10
+ bne .L112
+ ldrb r3, [r4, #152] @ zero_extendqisi2
+ cbnz r3, .L112
+ add r0, r4, r0, lsl #1
+ ldrh r0, [r0, #156]
+.L112:
+ add r4, r4, r8, lsl #2
+ ldr r3, [r4, #1180]
+ mla r6, r6, r1, r3
ldrb r3, [sp, #48] @ zero_extendqisi2
cmp r3, #1
- add r1, r1, fp
- str r1, [r9]
- str r0, [r8]
- bls .L89
+ add r0, r0, r6
+ str r0, [r9]
+ str r8, [fp]
+ bls .L114
ldr r0, [r7, #4]
ldr r3, [r7, #40]
add r0, r0, #1024
subs r3, r0, r3
rsbs r0, r3, #0
adcs r0, r0, r3
- b .L88
-.L89:
- movs r0, #0
-.L88:
+.L113:
add sp, sp, #12
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L91:
+.L114:
+ movs r0, #0
+ b .L113
+.L116:
.align 2
-.L90:
+.L115:
.word .LANCHOR0
.fnend
.size LogAddr2PhyAddr, .-LogAddr2PhyAddr
.align 1
- .global FlashScheduleEnSet
+ .global FlashReadStatusEN
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
+ .type FlashReadStatusEN, %function
+FlashReadStatusEN:
+ .fnstart
+ @ args = 0, pretend = 0, frame = 0
+ @ frame_needed = 0, uses_anonymous_args = 0
+ ldr r3, .L129
+ push {r4, r5, r6, lr}
+ .save {r4, r5, r6, lr}
+ ldr r5, [r3, r0, lsl #3]
+ add r0, r3, r0, lsl #3
+ ldrb r4, [r0, #4] @ zero_extendqisi2
+ ldr r0, [r3, #48]
+ ldrb r0, [r0, #8] @ zero_extendqisi2
+ cmp r0, #2
+ mov r0, r3
+ lsl r3, r4, #8
+ add r4, r4, #8
+ bne .L118
+ cbnz r2, .L119
+ ldrb r2, [r0, #65] @ zero_extendqisi2
+.L128:
+ add r3, r3, r5
+ str r2, [r3, #2056]
+ ldrb r0, [r0, #67] @ zero_extendqisi2
+ cbz r0, .L123
+ add r6, r5, r4, lsl #8
+ movs r2, #0
+.L122:
+ cmp r2, r0
+ bcc .L124
+.L123:
+ lsls r4, r4, #8
+ movs r0, #80
+ bl ndelay
+ ldr r0, [r5, r4]
+ uxtb r0, r0
+ pop {r4, r5, r6, pc}
+.L119:
+ ldrb r2, [r0, #66] @ zero_extendqisi2
+ b .L128
+.L124:
+ lsls r3, r2, #3
+ adds r2, r2, #1
+ lsr r3, r1, r3
+ uxtb r3, r3
+ str r3, [r6, #4]
+ b .L122
+.L118:
+ add r3, r3, r5
+ movs r2, #112
+ str r2, [r3, #2056]
+ b .L123
+.L130:
+ .align 2
+.L129:
+ .word .LANCHOR0
+ .fnend
+ .size FlashReadStatusEN, .-FlashReadStatusEN
+ .align 1
+ .global FlashWaitReadyEN
+ .syntax unified
+ .thumb
+ .thumb_func
+ .fpu softvfp
+ .type FlashWaitReadyEN, %function
+FlashWaitReadyEN:
+ .fnstart
+ @ args = 0, pretend = 0, frame = 0
+ @ frame_needed = 0, uses_anonymous_args = 0
+ push {r4, r5, r6, lr}
+ .save {r4, r5, r6, lr}
+ mov r4, r0
+ mov r5, r1
+ mov r6, r2
+.L132:
+ mov r2, r6
+ mov r1, r5
+ mov r0, r4
+ bl FlashReadStatusEN
+ cmp r0, #255
+ mov r3, r0
+ beq .L132
+ lsls r3, r3, #25
+ bmi .L131
+ movs r1, #3
+ movs r0, #1
+ bl usleep_range
+ b .L132
+.L131:
+ pop {r4, r5, r6, pc}
+ .fnend
+ .size FlashWaitReadyEN, .-FlashWaitReadyEN
+ .align 1
+ .global FlashScheduleEnSet
+ .syntax unified
+ .thumb
+ .thumb_func
+ .fpu softvfp
.type FlashScheduleEnSet, %function
FlashScheduleEnSet:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L93
- ldr r2, [r3, #1204]
- str r0, [r3, #1204]
+ ldr r3, .L138
+ ldr r2, [r3, #1212]
+ str r0, [r3, #1212]
mov r0, r2
bx lr
-.L94:
+.L139:
.align 2
-.L93:
+.L138:
.word .LANCHOR0
.fnend
.size FlashScheduleEnSet, .-FlashScheduleEnSet
.align 1
.global FlashGetPageSize
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FlashGetPageSize, %function
FlashGetPageSize:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L96
- ldr r3, [r3, #44]
+ ldr r3, .L141
+ ldr r3, [r3, #48]
ldrb r0, [r3, #9] @ zero_extendqisi2
bx lr
-.L97:
+.L142:
.align 2
-.L96:
+.L141:
.word .LANCHOR0
.fnend
.size FlashGetPageSize, .-FlashGetPageSize
.align 1
.global NandcReadDontCaseBusyEn
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type NandcReadDontCaseBusyEn, %function
NandcReadDontCaseBusyEn:
.fnstart
@@ -692,355 +1064,210 @@
.size NandcReadDontCaseBusyEn, .-NandcReadDontCaseBusyEn
.align 1
.global NandcGetChipIf
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type NandcGetChipIf, %function
NandcGetChipIf:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L100
- add r0, r3, r0, lsl #3
- ldrb r2, [r0, #16] @ zero_extendqisi2
- ldr r0, [r0, #12]
- adds r2, r2, #8
- add r0, r0, r2, lsl #8
+ ldr r2, .L145
+ add r3, r2, r0, lsl #3
+ ldr r0, [r2, r0, lsl #3]
+ ldrb r3, [r3, #4] @ zero_extendqisi2
+ adds r3, r3, #8
+ add r0, r0, r3, lsl #8
bx lr
-.L101:
+.L146:
.align 2
-.L100:
+.L145:
.word .LANCHOR0
.fnend
.size NandcGetChipIf, .-NandcGetChipIf
.align 1
.global NandcSetDdrPara
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type NandcSetDdrPara, %function
NandcSetDdrPara:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L103
- ldr r2, [r3, #80]
+ ldr r3, .L148
+ ldr r2, [r3, #88]
lsls r3, r0, #8
orr r0, r3, r0, lsl #16
- orr r3, r0, #1
- str r3, [r2, #304]
+ orr r0, r0, #1
+ str r0, [r2, #304]
bx lr
-.L104:
+.L149:
.align 2
-.L103:
+.L148:
.word .LANCHOR0
.fnend
.size NandcSetDdrPara, .-NandcSetDdrPara
.align 1
.global NandcSetDdrDiv
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type NandcSetDdrDiv, %function
NandcSetDdrDiv:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L106
+ ldr r3, .L151
orr r0, r0, #16640
- ldr r3, [r3, #80]
+ ldr r3, [r3, #88]
str r0, [r3, #344]
bx lr
-.L107:
+.L152:
.align 2
-.L106:
+.L151:
.word .LANCHOR0
.fnend
.size NandcSetDdrDiv, .-NandcSetDdrDiv
.align 1
.global NandcSetDdrMode
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type NandcSetDdrMode, %function
NandcSetDdrMode:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L111
- ldr r2, [r3, #80]
+ ldr r3, .L156
+ ldr r2, [r3, #88]
ldr r3, [r2]
- cbnz r0, .L109
+ cbnz r0, .L154
bfi r3, r0, #13, #1
- b .L110
-.L109:
- orr r3, r3, #253952
-.L110:
+.L155:
str r3, [r2]
bx lr
-.L112:
+.L154:
+ orr r3, r3, #253952
+ b .L155
+.L157:
.align 2
-.L111:
+.L156:
.word .LANCHOR0
.fnend
.size NandcSetDdrMode, .-NandcSetDdrMode
.align 1
.global NandcSetMode
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type NandcSetMode, %function
NandcSetMode:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L120
+ ldr r3, .L165
ands r1, r0, #6
- ldr r2, [r3, #80]
+ ldr r2, [r3, #88]
ldr r3, [r2]
- beq .L114
- orr r3, r3, #24576
+ beq .L159
lsls r1, r0, #29
- bfc r3, #15, #1
+ orr r3, r3, #24576
movw r1, #8322
- orr r3, r3, #196608
+ bfc r3, #15, #1
str r1, [r2, #344]
add r1, r1, #1040384
+ addw r1, r1, #3969
+ orr r3, r3, #196608
+ str r1, [r2, #304]
it mi
orrmi r3, r3, #32768
- addw r1, r1, #3969
- str r1, [r2, #304]
movs r1, #38
str r1, [r2, #308]
movs r1, #39
str r1, [r2, #308]
- b .L116
-.L114:
- bfi r3, r1, #13, #1
-.L116:
+.L161:
str r3, [r2]
movs r0, #0
bx lr
-.L121:
+.L159:
+ bfi r3, r1, #13, #1
+ b .L161
+.L166:
.align 2
-.L120:
+.L165:
.word .LANCHOR0
.fnend
.size NandcSetMode, .-NandcSetMode
.align 1
.global NandcFlashCs
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type NandcFlashCs, %function
NandcFlashCs:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r2, .L123
- add r0, r2, r0, lsl #3
+ ldr r3, .L168
movs r2, #1
- ldr r1, [r0, #12]
- ldrb r0, [r0, #16] @ zero_extendqisi2
+ ldr r1, [r3, r0, lsl #3]
+ add r0, r3, r0, lsl #3
+ ldrb r0, [r0, #4] @ zero_extendqisi2
ldr r3, [r1]
lsls r2, r2, r0
bfi r3, r2, #0, #8
str r3, [r1]
bx lr
-.L124:
+.L169:
.align 2
-.L123:
+.L168:
.word .LANCHOR0
.fnend
.size NandcFlashCs, .-NandcFlashCs
.align 1
.global NandcFlashDeCs
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type NandcFlashDeCs, %function
NandcFlashDeCs:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L126
- add r0, r3, r0, lsl #3
- ldr r2, [r0, #12]
+ ldr r3, .L171
+ ldr r2, [r3, r0, lsl #3]
ldr r3, [r2]
bfc r3, #0, #8
bfc r3, #17, #1
str r3, [r2]
bx lr
-.L127:
+.L172:
.align 2
-.L126:
+.L171:
.word .LANCHOR0
.fnend
.size NandcFlashDeCs, .-NandcFlashDeCs
.align 1
- .global NandcDelayns
- .thumb
- .thumb_func
- .type NandcDelayns, %function
-NandcDelayns:
- .fnstart
- @ args = 0, pretend = 0, frame = 0
- @ frame_needed = 0, uses_anonymous_args = 0
- push {r3, lr}
- .save {r3, lr}
- addw r0, r0, #999
- ldr r3, .L129
- umull r0, r1, r0, r3
- ldr r3, .L129+4
- ldr r3, [r3, #8]
- lsrs r0, r1, #6
- blx r3
- movs r0, #0
- pop {r3, pc}
-.L130:
- .align 2
-.L129:
- .word 274877907
- .word arm_delay_ops
- .fnend
- .size NandcDelayns, .-NandcDelayns
- .align 1
- .global FlashReadStatus
- .thumb
- .thumb_func
- .type FlashReadStatus, %function
-FlashReadStatus:
- .fnstart
- @ args = 0, pretend = 0, frame = 0
- @ frame_needed = 0, uses_anonymous_args = 0
- push {r3, r4, r5, lr}
- .save {r3, r4, r5, lr}
- movs r2, #112
- ldr r3, .L132
- add r0, r3, r0, lsl #3
- ldrb r4, [r0, #16] @ zero_extendqisi2
- ldr r5, [r0, #12]
- movs r0, #80
- add r3, r5, r4, lsl #8
- adds r4, r4, #8
- str r2, [r3, #2056]
- lsls r4, r4, #8
- bl NandcDelayns
- ldr r0, [r5, r4]
- pop {r3, r4, r5, pc}
-.L133:
- .align 2
-.L132:
- .word .LANCHOR0
- .fnend
- .size FlashReadStatus, .-FlashReadStatus
- .align 1
- .global ToshibaSetRRPara
- .thumb
- .thumb_func
- .type ToshibaSetRRPara, %function
-ToshibaSetRRPara:
- .fnstart
- @ args = 0, pretend = 0, frame = 0
- @ frame_needed = 0, uses_anonymous_args = 0
- push {r4, r5, r6, r7, r8, r9, r10, lr}
- .save {r4, r5, r6, r7, r8, r9, r10, lr}
- add r8, r1, r1, lsl #2
- ldr r9, .L143+8
- movs r4, #0
- ldr r7, .L143
- mov r5, r0
- add r10, r9, #256
- mov r6, r1
-.L135:
- ldrb r3, [r7, #1209] @ zero_extendqisi2
- cmp r4, r3
- bcs .L142
- movs r3, #85
- str r3, [r5, #8]
- ldrsb r3, [r4, r10]
- movs r0, #200
- str r3, [r5, #4]
- bl NandcDelayns
- ldrb r3, [r7, #1208] @ zero_extendqisi2
- cmp r3, #34
- bne .L136
- add r3, r4, r8
- add r3, r3, r10
- b .L141
-.L136:
- cmp r3, #35
- bne .L138
- ldr r2, .L143+4
- add r3, r4, r8
- add r3, r3, r2
-.L141:
- ldrsb r3, [r3, #5]
- b .L140
-.L138:
- add r3, r9, r6
- ldrsb r3, [r3, #400]
-.L140:
- str r3, [r5]
- adds r4, r4, #1
- b .L135
-.L142:
- pop {r4, r5, r6, r7, r8, r9, r10, pc}
-.L144:
- .align 2
-.L143:
- .word .LANCHOR0
- .word .LANCHOR1+304
- .word .LANCHOR1
- .fnend
- .size ToshibaSetRRPara, .-ToshibaSetRRPara
- .align 1
- .global SamsungSetRRPara
- .thumb
- .thumb_func
- .type SamsungSetRRPara, %function
-SamsungSetRRPara:
- .fnstart
- @ args = 0, pretend = 0, frame = 0
- @ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L149
- push {r4, r5, r6, r7, r8, r9, r10, lr}
- .save {r4, r5, r6, r7, r8, r9, r10, lr}
- add r1, r3, r1, lsl #2
- movs r4, #0
- ldr r8, .L149+4
- adds r5, r1, #3
- mov r9, #161
- mov r6, r0
- mov r7, r3
- mov r10, r4
-.L146:
- ldrb r3, [r8, #1209] @ zero_extendqisi2
- cmp r4, r3
- bcs .L148
- str r9, [r6, #8]
- mov r0, #300
- str r10, [r6]
- ldrsb r3, [r7, r4]
- adds r4, r4, #1
- str r3, [r6]
- ldrsb r3, [r5, #1]!
- str r3, [r6]
- bl NandcDelayns
- b .L146
-.L148:
- pop {r4, r5, r6, r7, r8, r9, r10, pc}
-.L150:
- .align 2
-.L149:
- .word .LANCHOR1+408
- .word .LANCHOR0
- .fnend
- .size SamsungSetRRPara, .-SamsungSetRRPara
- .align 1
.global HynixSetRRPara
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type HynixSetRRPara, %function
HynixSetRRPara:
.fnstart
@@ -1050,407 +1277,303 @@
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.pad #12
mov r7, r3
- ldr r5, .L159
+ ldr r5, .L181
mov r6, r0
- mov r9, r1
- mov fp, r2
- ldr r3, [r5, #44]
- ldrb r4, [r3, #19] @ zero_extendqisi2
- lsls r3, r0, #3
- cmp r4, #6
- bne .L152
- add r4, r5, r0, lsl #6
- addw r4, r4, #1230
- add r4, r4, r7, lsl #2
- b .L153
-.L152:
- cmp r4, #7
- bne .L154
- mov r10, #160
- add r4, r7, r7, lsl #2
- mla r10, r10, r0, r5
- addw r10, r10, #1238
- add r4, r10, r4, lsl #1
- b .L153
-.L154:
- cmp r4, #8
- iteet ne
- addne r4, r7, r3
- addweq r4, r5, #1238
- addeq r2, r7, r7, lsl #2
- addne r4, r5, r4, lsl #3
- ite eq
- addeq r4, r4, r2
- addwne r4, r4, #1230
-.L153:
- add r3, r3, r5
+ mov r8, r1
+ mov r9, r2
+ ldr r3, [r5, #48]
+ ldrb r3, [r3, #19] @ zero_extendqisi2
+ cmp r3, #6
+ bne .L174
+ movs r3, #20
+ add r4, r5, #1216
+ add r3, r3, r0, lsl #6
+ add r3, r3, r7, lsl #2
+.L180:
+ add r4, r4, r3
+ b .L175
+.L174:
+ cmp r3, #7
+ bne .L176
+ movs r3, #160
+ movs r4, #28
+ smlabb r4, r3, r0, r4
+ movs r3, #10
+ add r2, r5, #1216
+ smlabb r3, r3, r7, r4
+ adds r4, r2, r3
+.L175:
+ add r3, r5, r6, lsl #3
+ ldr r10, [r5, r6, lsl #3]
mov r0, r6
- add r9, r9, #-1
- subs r4, r4, #1
- ldrb r8, [r3, #16] @ zero_extendqisi2
- add r9, r9, fp
- ldr r10, [r3, #12]
+ ldrb fp, [r3, #4] @ zero_extendqisi2
+ add r8, r8, #-1
bl NandcFlashCs
- add r1, fp, #-1
- movs r2, #54
- lsl r8, r8, #8
- add r3, r10, r8
- mov fp, r3
- str r2, [r3, #2056]
-.L156:
- cmp r1, r9
- beq .L158
- ldrb r3, [r1, #1]! @ zero_extendqisi2
- movs r0, #200
- str r3, [fp, #2052]
- str r1, [sp, #4]
- bl NandcDelayns
- ldrsb r3, [r4, #1]!
- str r3, [fp, #2048]
- ldr r1, [sp, #4]
- b .L156
-.L158:
- add r8, r8, r10
+ movs r3, #54
+ add r8, r8, r9
+ subs r4, r4, #1
+ lsl fp, fp, #8
+ add r0, r10, fp
+ str r3, [r0, #2056]
+ add r3, r9, #-1
+ mov r9, r0
+.L178:
+ cmp r3, r8
+ bne .L179
movs r3, #22
+ add r10, r10, fp
+ str r3, [r10, #2056]
mov r0, r6
add r5, r5, r6
- str r3, [r8, #2056]
bl NandcFlashDeCs
- strb r7, [r5, #2064]
+ strb r7, [r5, #2068]
add sp, sp, #12
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L160:
+.L176:
+ cmp r3, #8
+ bne .L177
+ addw r4, r5, #1244
+ add r3, r7, r7, lsl #2
+ b .L180
+.L177:
+ adds r4, r7, #2
+ add r4, r4, r0, lsl #3
+ add r4, r5, r4, lsl #3
+ addw r4, r4, #1220
+ b .L175
+.L179:
+ ldrb r2, [r3, #1]! @ zero_extendqisi2
+ movs r0, #200
+ str r2, [r9, #2052]
+ str r3, [sp, #4]
+ bl ndelay
+ ldrsb r2, [r4, #1]!
+ ldr r3, [sp, #4]
+ str r2, [r9, #2048]
+ b .L178
+.L182:
.align 2
-.L159:
+.L181:
.word .LANCHOR0
.fnend
.size HynixSetRRPara, .-HynixSetRRPara
.align 1
.global FlashSetReadRetryDefault
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FlashSetReadRetryDefault, %function
FlashSetReadRetryDefault:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- push {r3, r4, r5, lr}
- .save {r3, r4, r5, lr}
- ldr r3, .L167
- ldr r2, [r3, #44]
- ldrb r2, [r2, #19] @ zero_extendqisi2
- subs r2, r2, #1
- cmp r2, #7
- bhi .L161
+ push {r4, r5, r6, lr}
+ .save {r4, r5, r6, lr}
+ ldr r5, .L189
+ ldr r3, [r5, #48]
+ ldrb r3, [r3, #19] @ zero_extendqisi2
+ subs r3, r3, #1
+ cmp r3, #7
+ bhi .L183
movs r4, #0
- mov r5, r3
-.L162:
- ldr r2, .L167+4
+ addw r6, r5, #2072
+.L186:
+ ldrb r3, [r6, r4, lsl #3] @ zero_extendqisi2
uxtb r0, r4
- ldrb r3, [r2, r4, lsl #3] @ zero_extendqisi2
cmp r3, #173
- bne .L163
- ldrb r1, [r5, #1211] @ zero_extendqisi2
- subw r2, r2, #854
+ bne .L185
movs r3, #0
+ ldr r2, .L189+4
+ ldrb r1, [r5, #1217] @ zero_extendqisi2
bl HynixSetRRPara
-.L163:
+.L185:
adds r4, r4, #1
cmp r4, #4
- bne .L162
-.L161:
- pop {r3, r4, r5, pc}
-.L168:
+ bne .L186
+.L183:
+ pop {r4, r5, r6, pc}
+.L190:
.align 2
-.L167:
+.L189:
.word .LANCHOR0
- .word .LANCHOR0+2068
+ .word .LANCHOR0+1220
.fnend
.size FlashSetReadRetryDefault, .-FlashSetReadRetryDefault
.align 1
- .global FlashReadStatusEN
- .thumb
- .thumb_func
- .type FlashReadStatusEN, %function
-FlashReadStatusEN:
- .fnstart
- @ args = 0, pretend = 0, frame = 0
- @ frame_needed = 0, uses_anonymous_args = 0
- push {r4, r5, r6, lr}
- .save {r4, r5, r6, lr}
- ldr r5, .L179
- add r0, r5, r0, lsl #3
- ldr r3, [r5, #44]
- ldrb r4, [r0, #16] @ zero_extendqisi2
- ldr r6, [r0, #12]
- ldrb r3, [r3, #8] @ zero_extendqisi2
- cmp r3, #2
- lsl r3, r4, #8
- add r4, r4, #8
- bne .L170
- cbnz r2, .L171
- ldrb r2, [r5, #61] @ zero_extendqisi2
- b .L178
-.L171:
- ldrb r2, [r5, #62] @ zero_extendqisi2
-.L178:
- add r3, r3, r6
- str r2, [r3, #2056]
- ldrb r0, [r5, #63] @ zero_extendqisi2
- cbz r0, .L174
- movs r3, #0
- add r5, r6, r4, lsl #8
-.L173:
- cmp r3, r0
- bcs .L174
- lsls r2, r3, #3
- adds r3, r3, #1
- lsr r2, r1, r2
- uxtb r2, r2
- str r2, [r5, #4]
- b .L173
-.L170:
- add r3, r3, r6
- movs r2, #112
- str r2, [r3, #2056]
-.L174:
- movs r0, #80
- lsls r4, r4, #8
- bl NandcDelayns
- ldr r0, [r6, r4]
- uxtb r0, r0
- pop {r4, r5, r6, pc}
-.L180:
- .align 2
-.L179:
- .word .LANCHOR0
- .fnend
- .size FlashReadStatusEN, .-FlashReadStatusEN
- .align 1
- .global FlashWaitReadyEN
- .thumb
- .thumb_func
- .type FlashWaitReadyEN, %function
-FlashWaitReadyEN:
- .fnstart
- @ args = 0, pretend = 0, frame = 0
- @ frame_needed = 0, uses_anonymous_args = 0
- push {r4, r5, r6, lr}
- .save {r4, r5, r6, lr}
- mov r4, r0
- mov r5, r1
- mov r6, r2
-.L182:
- mov r0, r4
- mov r1, r5
- mov r2, r6
- bl FlashReadStatusEN
- cmp r0, #255
- mov r3, r0
- beq .L182
- lsls r3, r3, #25
- bmi .L183
- movs r0, #1
- movs r1, #3
- bl usleep_range
- b .L182
-.L183:
- pop {r4, r5, r6, pc}
- .fnend
- .size FlashWaitReadyEN, .-FlashWaitReadyEN
- .align 1
.global FlashWaitCmdDone
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FlashWaitCmdDone, %function
FlashWaitCmdDone:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ 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, r0
- ldr r5, .L194
+ push {r3, r4, r5, r6, r7, lr}
+ .save {r3, r4, r5, r6, r7, lr}
+ mov r7, r0
+ ldr r5, .L198
add r4, r5, r0, lsl #4
- ldr r3, [r4, #2108]
- ldrb r6, [r4, #2100] @ zero_extendqisi2
- cbz r3, .L189
- add r5, r5, r8, lsl #2
+ ldr r3, [r4, #2112]
+ cbz r3, .L193
+ ldrb r6, [r4, #2104] @ zero_extendqisi2
+ add r5, r5, r7, lsl #2
mov r0, r6
bl NandcFlashCs
- ldr r1, [r4, #2104]
- ldr r2, [r5, #1172]
+ ldr r2, [r5, #1180]
mov r0, r6
+ ldr r1, [r4, #2108]
adds r2, r2, #0
it ne
movne r2, #1
bl FlashWaitReadyEN
- mov r5, r0
+ mov r1, r0
mov r0, r6
bl NandcFlashDeCs
- ldr r2, [r4, #2108]
- sbfx r3, r5, #0, #1
- str r3, [r2]
- movs r2, #0
- ldr r1, [r4, #2112]
- str r2, [r4, #2108]
- cbz r1, .L189
- str r3, [r1]
- str r2, [r4, #2112]
-.L189:
+ ldr r3, [r4, #2112]
+ sbfx r1, r1, #0, #1
+ str r1, [r3]
+ movs r3, #0
+ ldr r2, [r4, #2116]
+ str r3, [r4, #2112]
+ cbz r2, .L193
+ str r1, [r2]
+ str r3, [r4, #2116]
+.L193:
movs r0, #0
- pop {r3, r4, r5, r6, r7, r8, r9, pc}
-.L195:
+ pop {r3, r4, r5, r6, r7, pc}
+.L199:
.align 2
-.L194:
+.L198:
.word .LANCHOR0
.fnend
.size FlashWaitCmdDone, .-FlashWaitCmdDone
.align 1
+ .global NandcDelayns
+ .syntax unified
.thumb
.thumb_func
- .type flash_read_ecc, %function
-flash_read_ecc:
+ .fpu softvfp
+ .type NandcDelayns, %function
+NandcDelayns:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r2, .L197
- push {r4, lr}
- .save {r4, lr}
- add r0, r2, r0, lsl #3
- ldrb r4, [r0, #16] @ zero_extendqisi2
- ldr r3, [r0, #12]
- movs r0, #80
- add r4, r3, r4, lsl #8
- movs r3, #122
- str r3, [r4, #2056]
- bl NandcDelayns
- ldr r3, [r4, #2048]
- ldr r0, [r4, #2048]
- and r3, r3, #15
- and r0, r0, #15
- cmp r0, r3
- it cc
- movcc r0, r3
- ldr r3, [r4, #2048]
- and r3, r3, #15
- cmp r0, r3
- it cc
- movcc r0, r3
- ldr r3, [r4, #2048]
- and r3, r3, #15
- cmp r0, r3
- it cc
- movcc r0, r3
- pop {r4, pc}
-.L198:
- .align 2
-.L197:
- .word .LANCHOR0
+ push {r3, lr}
+ .save {r3, lr}
+ bl ndelay
+ movs r0, #0
+ pop {r3, pc}
.fnend
- .size flash_read_ecc, .-flash_read_ecc
+ .size NandcDelayns, .-NandcDelayns
.align 1
.global NandcWaitFlashReadyNoDelay
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type NandcWaitFlashReadyNoDelay, %function
NandcWaitFlashReadyNoDelay:
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L204
+ ldr r3, .L206
push {r0, r1, r2, r4, r5, lr}
.save {r4, r5, lr}
.pad #12
- add r0, r3, r0, lsl #3
- ldr r4, .L204+4
- ldr r5, [r0, #12]
-.L201:
+ ldr r4, .L206+4
+ ldr r5, [r3, r0, lsl #3]
+.L203:
ldr r3, [r5]
str r3, [sp, #4]
ldr r3, [sp, #4]
lsls r3, r3, #22
- bmi .L202
+ bmi .L204
movs r0, #10
- bl NandcDelayns
+ bl ndelay
subs r4, r4, #1
- bne .L201
+ bne .L203
mov r0, #-1
- b .L200
-.L202:
- movs r0, #0
-.L200:
+.L201:
add sp, sp, #12
@ sp needed
pop {r4, r5, pc}
-.L205:
- .align 2
.L204:
+ movs r0, #0
+ b .L201
+.L207:
+ .align 2
+.L206:
.word .LANCHOR0
.word 100000
.fnend
.size NandcWaitFlashReadyNoDelay, .-NandcWaitFlashReadyNoDelay
.align 1
.global NandcWaitFlashReady
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type NandcWaitFlashReady, %function
NandcWaitFlashReady:
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L211
push {r0, r1, r2, r4, r5, lr}
.save {r4, r5, lr}
.pad #12
- add r0, r3, r0, lsl #3
- ldr r4, .L211+4
- ldr r5, [r0, #12]
+ ldr r3, .L213
+ ldr r4, .L213+4
+ ldr r5, [r3, r0, lsl #3]
movs r0, #130
- bl NandcDelayns
-.L208:
+ bl ndelay
+.L210:
ldr r3, [r5]
str r3, [sp, #4]
ldr r3, [sp, #4]
lsls r3, r3, #22
- bmi .L209
- movs r0, #1
+ bmi .L211
movs r1, #2
+ movs r0, #1
bl usleep_range
subs r4, r4, #1
- bne .L208
+ bne .L210
mov r0, #-1
- b .L207
-.L209:
- movs r0, #0
-.L207:
+.L208:
add sp, sp, #12
@ sp needed
pop {r4, r5, pc}
-.L212:
- .align 2
.L211:
+ movs r0, #0
+ b .L208
+.L214:
+ .align 2
+.L213:
.word .LANCHOR0
.word 100000
.fnend
.size NandcWaitFlashReady, .-NandcWaitFlashReady
.align 1
.global FlashReset
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FlashReset, %function
FlashReset:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L214
+ ldr r3, .L216
push {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
- add r3, r3, r0, lsl #3
mov r4, r0
- ldrb r6, [r3, #16] @ zero_extendqisi2
- ldr r5, [r3, #12]
+ ldr r5, [r3, r0, lsl #3]
+ add r3, r3, r0, lsl #3
+ ldrb r6, [r3, #4] @ zero_extendqisi2
bl NandcFlashCs
movs r3, #255
mov r0, r4
@@ -1460,16 +1583,18 @@
mov r0, r4
pop {r4, r5, r6, lr}
b NandcFlashDeCs
-.L215:
+.L217:
.align 2
-.L214:
+.L216:
.word .LANCHOR0
.fnend
.size FlashReset, .-FlashReset
.align 1
.global flash_enter_slc_mode
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type flash_enter_slc_mode, %function
flash_enter_slc_mode:
.fnstart
@@ -1477,25 +1602,25 @@
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, lr}
.save {r4, r5, r6, r7, r8, lr}
- mov r7, r0
- ldr r6, .L222
- ldrb r3, [r6, #144] @ zero_extendqisi2
- cbz r3, .L216
- add r4, r6, r7, lsl #3
+ mov r6, r0
+ ldr r5, .L224
+ ldrb r3, [r5, #152] @ zero_extendqisi2
+ cbz r3, .L218
bl NandcFlashCs
- ldrb r3, [r4, #2068] @ zero_extendqisi2
- ldrb r5, [r4, #16] @ zero_extendqisi2
+ add r3, r5, r6, lsl #3
+ ldr r7, [r5, r6, lsl #3]
+ ldrb r8, [r3, #4] @ zero_extendqisi2
+ ldrb r3, [r3, #2072] @ zero_extendqisi2
cmp r3, #44
- ldr r8, [r4, #12]
- lsl r5, r5, #8
- bne .L218
- add r4, r8, r5
+ lsl r8, r8, #8
+ bne .L220
+ add r4, r7, r8
movs r3, #239
- movs r0, #50
str r3, [r4, #2056]
movs r3, #145
str r3, [r4, #2052]
- bl NandcDelayns
+ movs r0, #50
+ bl ndelay
movs r3, #0
movs r2, #1
str r3, [r4, #2048]
@@ -1503,29 +1628,31 @@
str r2, [r4, #2048]
str r3, [r4, #2048]
str r3, [r4, #2048]
- bl NandcDelayns
-.L218:
- add r5, r5, r8
- mov r0, r7
+ bl ndelay
+.L220:
+ mov r0, r6
+ add r7, r7, r8
bl NandcWaitFlashReadyNoDelay
movs r3, #218
- mov r0, r7
- str r3, [r5, #2056]
+ mov r0, r6
+ str r3, [r7, #2056]
bl NandcWaitFlashReady
movs r3, #2
- strb r3, [r6, #2228]
-.L216:
+ strb r3, [r5, #2232]
+.L218:
pop {r4, r5, r6, r7, r8, pc}
-.L223:
+.L225:
.align 2
-.L222:
+.L224:
.word .LANCHOR0
.fnend
.size flash_enter_slc_mode, .-flash_enter_slc_mode
.align 1
.global flash_exit_slc_mode
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type flash_exit_slc_mode, %function
flash_exit_slc_mode:
.fnstart
@@ -1533,25 +1660,25 @@
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, lr}
.save {r4, r5, r6, r7, r8, lr}
- mov r7, r0
- ldr r6, .L230
- ldrb r3, [r6, #144] @ zero_extendqisi2
- cbz r3, .L224
- add r4, r6, r7, lsl #3
+ mov r6, r0
+ ldr r5, .L232
+ ldrb r3, [r5, #152] @ zero_extendqisi2
+ cbz r3, .L226
bl NandcFlashCs
- ldrb r3, [r4, #2068] @ zero_extendqisi2
- ldrb r5, [r4, #16] @ zero_extendqisi2
+ add r3, r5, r6, lsl #3
+ ldr r7, [r5, r6, lsl #3]
+ ldrb r8, [r3, #4] @ zero_extendqisi2
+ ldrb r3, [r3, #2072] @ zero_extendqisi2
cmp r3, #44
- ldr r8, [r4, #12]
- lsl r5, r5, #8
- bne .L226
- add r4, r8, r5
+ lsl r8, r8, #8
+ bne .L228
+ add r4, r7, r8
movs r3, #239
- movs r0, #50
str r3, [r4, #2056]
movs r3, #145
str r3, [r4, #2052]
- bl NandcDelayns
+ movs r0, #50
+ bl ndelay
movs r3, #2
movs r0, #100
str r3, [r4, #2048]
@@ -1560,29 +1687,31 @@
movs r3, #0
str r3, [r4, #2048]
str r3, [r4, #2048]
- bl NandcDelayns
-.L226:
- add r5, r5, r8
- mov r0, r7
+ bl ndelay
+.L228:
+ mov r0, r6
+ add r7, r7, r8
bl NandcWaitFlashReadyNoDelay
movs r3, #223
- mov r0, r7
- str r3, [r5, #2056]
+ mov r0, r6
+ str r3, [r7, #2056]
bl NandcWaitFlashReady
movs r3, #0
- strb r3, [r6, #2228]
-.L224:
+ strb r3, [r5, #2232]
+.L226:
pop {r4, r5, r6, r7, r8, pc}
-.L231:
+.L233:
.align 2
-.L230:
+.L232:
.word .LANCHOR0
.fnend
.size flash_exit_slc_mode, .-flash_exit_slc_mode
.align 1
.global FlashEraseBlock
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FlashEraseBlock, %function
FlashEraseBlock:
.fnstart
@@ -1605,140 +1734,139 @@
mov r1, r5
mov r0, r4
bl FlashReadStatus
- mov r5, r0
+ mov r1, r0
mov r0, r4
bl NandcFlashDeCs
- and r0, r5, #1
+ and r0, r1, #1
pop {r4, r5, r6, pc}
.fnend
.size FlashEraseBlock, .-FlashEraseBlock
.align 1
.global FlashSetInterfaceMode
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FlashSetInterfaceMode, %function
FlashSetInterfaceMode:
.fnstart
- @ args = 0, pretend = 0, frame = 16
+ @ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
- push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+ push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
- .pad #20
- sub sp, sp, #20
- ldr r5, .L261
- movs r4, #0
- movs r7, #239
- mov lr, #128
- mov ip, #1
- mov r8, #35
- ldrb r3, [r5, #2229] @ zero_extendqisi2
+ .pad #12
+ movs r5, #0
+ ldr r6, .L263
+ mov ip, #128
+ mov lr, #1
mov r9, #32
mov r10, #5
- and r2, r3, #1
- str r2, [sp, #12]
+ ldrb r3, [r6, #2233] @ zero_extendqisi2
+ addw r8, r6, #2072
and r2, r3, #4
- uxtb r3, r2
- mov r2, r4
- str r3, [sp, #8]
- add r3, r5, #12
- str r3, [sp, #4]
-.L243:
- ldr r1, .L261+4
- ldr r3, [sp, #4]
- ldrb r1, [r4, r1] @ zero_extendqisi2
- ldr r6, [r4, r3]
- add r3, r3, r4
- cmp r1, #152
- ldr r3, [r3, #4]
- beq .L234
- cmp r1, #69
- beq .L234
- cmp r1, #173
- beq .L234
- cmp r1, #44
- bne .L235
-.L234:
- cmp r0, #1
- uxtb r3, r3
- bne .L236
- ldr r5, [sp, #12]
- cbz r5, .L235
- lsls r3, r3, #8
- cmp r1, #173
- add fp, r6, r3
- str r7, [fp, #2056]
+ and r3, r3, #1
+ str r2, [sp, #4]
+ mov r2, r5
+ str r3, [sp]
+.L245:
+ ldrb r4, [r5, r8] @ zero_extendqisi2
+ cmp r4, #152
+ beq .L236
+ cmp r4, #69
+ beq .L236
+ cmp r4, #173
+ beq .L236
+ cmp r4, #44
bne .L237
+.L236:
+ cmp r0, #1
+ add r3, r6, r5
+ ldr r1, [r6, r5]
+ ldrb r3, [r3, #4] @ zero_extendqisi2
+ bne .L238
+ ldr r7, [sp]
+ cbz r7, .L237
+ lsls r3, r3, #8
+ cmp r4, #173
+ mov r7, #239
+ add fp, r1, r3
+ str r7, [fp, #2056]
+ bne .L239
str r0, [fp, #2052]
- b .L260
-.L237:
- cmp r1, #44
+.L262:
+ str r2, [fp, #2048]
+ b .L243
+.L239:
+ cmp r4, #44
itete eq
streq r0, [fp, #2052]
- strne lr, [fp, #2052]
+ strne ip, [fp, #2052]
streq r10, [fp, #2048]
strne r0, [fp, #2048]
- b .L241
-.L236:
- ldr r5, [sp, #8]
- cbz r5, .L235
- lsls r3, r3, #8
- cmp r1, #173
- add fp, r6, r3
- str r7, [fp, #2056]
- bne .L240
- str ip, [fp, #2052]
- str r9, [fp, #2048]
- b .L241
-.L240:
- cmp r1, #44
- bne .L242
- str ip, [fp, #2052]
- str r8, [fp, #2048]
- b .L241
-.L242:
- str lr, [fp, #2052]
-.L260:
- str r2, [fp, #2048]
-.L241:
- add r3, r3, r6
+.L243:
+ add r3, r3, r1
str r2, [r3, #2048]
str r2, [r3, #2048]
str r2, [r3, #2048]
-.L235:
- adds r4, r4, #8
- cmp r4, #32
- bne .L243
+.L237:
+ adds r5, r5, #8
+ cmp r5, #32
+ bne .L245
movs r0, #0
bl NandcWaitFlashReady
movs r0, #0
- add sp, sp, #20
+ add sp, sp, #12
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L262:
+.L238:
+ ldr r7, [sp, #4]
+ cmp r7, #0
+ beq .L237
+ lsls r3, r3, #8
+ cmp r4, #173
+ mov r7, #239
+ add fp, r1, r3
+ str r7, [fp, #2056]
+ bne .L242
+ str lr, [fp, #2052]
+ str r9, [fp, #2048]
+ b .L243
+.L242:
+ cmp r4, #44
+ bne .L244
+ movs r4, #35
+ str lr, [fp, #2052]
+ str r4, [fp, #2048]
+ b .L243
+.L244:
+ str ip, [fp, #2052]
+ b .L262
+.L264:
.align 2
-.L261:
+.L263:
.word .LANCHOR0
- .word .LANCHOR0+2068
.fnend
.size FlashSetInterfaceMode, .-FlashSetInterfaceMode
.align 1
.global FlashReadSpare
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FlashReadSpare, %function
FlashReadSpare:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- push {r4, r5, r6, lr}
- .save {r4, r5, r6, lr}
- mov r6, r2
- ldr r5, .L264
- ldr r3, .L264+4
+ push {r3, r4, r5, r6, r7, lr}
+ .save {r3, r4, r5, r6, r7, lr}
+ mov r7, r2
+ ldr r5, .L266
+ ldr r3, .L266+4
+ ldr r4, [r5, r0, lsl #3]
add r5, r5, r0, lsl #3
- ldrb r3, [r3, #481] @ zero_extendqisi2
- ldrb r2, [r5, #16] @ zero_extendqisi2
- ldr r4, [r5, #12]
+ ldrb r3, [r3, #477] @ zero_extendqisi2
+ ldrb r2, [r5, #4] @ zero_extendqisi2
lsls r3, r3, #9
add r4, r4, r2, lsl #8
movs r2, #0
@@ -1756,31 +1884,33 @@
str r3, [r4, #2056]
bl NandcWaitFlashReady
ldr r3, [r4, #2048]
- strb r3, [r6]
- pop {r4, r5, r6, pc}
-.L265:
+ strb r3, [r7]
+ pop {r3, r4, r5, r6, r7, pc}
+.L267:
.align 2
-.L264:
+.L266:
.word .LANCHOR0
.word .LANCHOR1
.fnend
.size FlashReadSpare, .-FlashReadSpare
.align 1
.global SandiskProgTestBadBlock
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type SandiskProgTestBadBlock, %function
SandiskProgTestBadBlock:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r2, .L267
+ ldr r3, .L269
push {r4, lr}
.save {r4, lr}
- add r2, r2, r0, lsl #3
- ldrb r4, [r2, #16] @ zero_extendqisi2
- ldr r3, [r2, #12]
- add r4, r3, r4, lsl #8
+ ldr r4, [r3, r0, lsl #3]
+ add r3, r3, r0, lsl #3
+ ldrb r3, [r3, #4] @ zero_extendqisi2
+ add r4, r4, r3, lsl #8
movs r3, #162
str r3, [r4, #2056]
movs r3, #128
@@ -1793,169 +1923,183 @@
lsrs r3, r1, #8
lsrs r1, r1, #16
str r3, [r4, #2052]
- str r1, [r4, #2052]
movs r3, #16
+ str r1, [r4, #2052]
str r3, [r4, #2056]
bl NandcWaitFlashReady
movs r3, #112
movs r0, #80
str r3, [r4, #2056]
- bl NandcDelayns
+ bl ndelay
ldr r0, [r4, #2048]
and r0, r0, #1
pop {r4, pc}
-.L268:
+.L270:
.align 2
-.L267:
+.L269:
.word .LANCHOR0
.fnend
.size SandiskProgTestBadBlock, .-SandiskProgTestBadBlock
.align 1
.global SandiskSetRRPara
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type SandiskSetRRPara, %function
SandiskSetRRPara:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
+ movs r3, #239
push {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
- movs r3, #239
- mov r5, r0
str r3, [r0, #8]
movs r3, #17
+ mov r5, r0
+ mov r4, r1
str r3, [r0, #4]
movs r0, #200
- mov r4, r1
- bl NandcDelayns
- ldr r0, .L276
- ldr r1, .L276+4
+ bl ndelay
+ ldr r0, .L277
add r4, r4, r4, lsl #2
+ ldr r1, .L277+4
movs r2, #0
- sub r6, r0, #48
-.L270:
- ldrb r3, [r1, #1209] @ zero_extendqisi2
+ sub r6, r0, #45
+.L272:
+ ldrb r3, [r1, #85] @ zero_extendqisi2
cmp r2, r3
- bcs .L275
- ldrb r3, [r1, #1208] @ zero_extendqisi2
+ bcc .L275
+ movs r0, #0
+ pop {r4, r5, r6, lr}
+ b NandcWaitFlashReady
+.L275:
+ ldrb r3, [r1, #84] @ zero_extendqisi2
cmp r3, #67
add r3, r2, r4
ite eq
addeq r3, r3, r6
addne r3, r3, r0
- adds r2, r2, #1
ldrsb r3, [r3, #5]
+ adds r2, r2, #1
str r3, [r5]
- b .L270
-.L275:
- movs r0, #0
- pop {r4, r5, r6, lr}
- b NandcWaitFlashReady
-.L277:
+ b .L272
+.L278:
.align 2
-.L276:
- .word .LANCHOR1+304
+.L277:
+ .word .LANCHOR1+301
.word .LANCHOR0
.fnend
.size SandiskSetRRPara, .-SandiskSetRRPara
.align 1
.global micron_auto_read_calibration_config
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type micron_auto_read_calibration_config, %function
micron_auto_read_calibration_config:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- push {r3, r4, r5, lr}
- .save {r3, r4, r5, lr}
- mov r4, r0
- mov r5, r1
+ push {r4, r5, r6, lr}
+ .save {r4, r5, r6, lr}
+ mov r5, r0
+ mov r6, r1
bl NandcWaitFlashReady
- ldr r3, .L279
+ ldr r0, .L280
+ ldr r4, [r0, r5, lsl #3]
+ add r0, r0, r5, lsl #3
+ ldrb r3, [r0, #4] @ zero_extendqisi2
movs r0, #200
- add r2, r3, r4, lsl #3
- ldrb r4, [r2, #16] @ zero_extendqisi2
- ldr r3, [r2, #12]
- add r4, r3, r4, lsl #8
+ add r4, r4, r3, lsl #8
movs r3, #239
str r3, [r4, #2056]
movs r3, #150
str r3, [r4, #2052]
- bl NandcDelayns
- str r5, [r4, #2048]
+ bl ndelay
movs r3, #0
+ str r6, [r4, #2048]
str r3, [r4, #2048]
str r3, [r4, #2048]
str r3, [r4, #2048]
- pop {r3, r4, r5, pc}
-.L280:
+ pop {r4, r5, r6, pc}
+.L281:
.align 2
-.L279:
+.L280:
.word .LANCHOR0
.fnend
.size micron_auto_read_calibration_config, .-micron_auto_read_calibration_config
.align 1
.global FlashEraseSLc2KBlocks
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FlashEraseSLc2KBlocks, %function
FlashEraseSLc2KBlocks:
.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 {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, lr}
+ .save {r4, r5, r6, r7, r8, r9, r10, lr}
+ .pad #16
movs r5, #0
- ldr r8, .L292+4
- .pad #20
- sub sp, sp, #20
+ ldr r8, .L292
mov r6, r0
mov r9, r1
mov r7, r5
-.L282:
+ ldr r10, .L292+4
+.L283:
cmp r7, r9
- beq .L291
- rsb r3, r7, r9
+ bne .L288
+ movs r0, #0
+ add sp, sp, #16
+ @ sp needed
+ pop {r4, r5, r6, r7, r8, r9, r10, pc}
+.L288:
+ sub r3, r9, r7
add r2, sp, #8
- adds r0, r6, r5
- movs r1, #0
uxtb r3, r3
+ movs r1, #0
+ adds r0, r6, r5
str r3, [sp]
add r3, sp, #12
bl LogAddr2PhyAddr
- ldrb r2, [r8, #2230] @ zero_extendqisi2
+ ldrb r2, [r8, #2234] @ zero_extendqisi2
ldr r3, [sp, #12]
- cmp r3, r2
- bcc .L283
+ cmp r2, r3
+ bhi .L284
mov r3, #-1
str r3, [r6, r5]
- b .L284
-.L283:
+.L285:
+ adds r7, r7, #1
+ adds r5, r5, #36
+ b .L283
+.L284:
add r2, r8, r3
add r3, r8, r3, lsl #4
- ldrb r4, [r2, #2232] @ zero_extendqisi2
- strb r4, [r3, #2100]
+ ldrb r4, [r2, #2236] @ zero_extendqisi2
+ strb r4, [r3, #2104]
mov r0, r4
bl NandcWaitFlashReady
mov r0, r4
bl NandcFlashCs
movs r2, #0
- mov r0, r4
ldr r1, [sp, #8]
+ mov r0, r4
bl FlashEraseCmd
mov r0, r4
bl NandcWaitFlashReady
mov r0, r4
ldr r1, [sp, #8]
bl FlashReadStatus
- movs r2, #0
- ldr r3, [sp, #8]
sbfx r0, r0, #0, #1
+ ldr r1, [sp, #8]
str r0, [r6, r5]
+ movs r2, #0
+ ldr r3, [r8, #40]
mov r0, r4
- ldr r1, [r8, #4]
add r1, r1, r3
bl FlashEraseCmd
mov r0, r4
@@ -1969,191 +2113,181 @@
strmi r3, [r6, r5]
ldr r3, [r6, r5]
adds r3, r3, #1
- bne .L286
- ldr r0, .L292
+ bne .L287
ldr r1, [sp, #8]
+ mov r0, r10
bl printk
-.L286:
+.L287:
mov r0, r4
bl NandcFlashDeCs
-.L284:
- adds r7, r7, #1
- adds r5, r5, #36
- b .L282
-.L291:
- movs r0, #0
- add sp, sp, #20
- @ sp needed
- pop {r4, r5, r6, r7, r8, r9, pc}
+ b .L285
.L293:
.align 2
.L292:
- .word .LC1
.word .LANCHOR0
+ .word .LC1
.fnend
.size FlashEraseSLc2KBlocks, .-FlashEraseSLc2KBlocks
.align 1
.global FlashEraseBlocks
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FlashEraseBlocks, %function
FlashEraseBlocks:
.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}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
mov r9, r0
- ldr r4, .L328
- .pad #28
- sub sp, sp, #28
+ ldr r4, .L325
+ .pad #20
+ sub sp, sp, #20
mov r10, r1
mov r8, r2
- ldrb r5, [r4] @ zero_extendqisi2
- cbz r5, .L312
+ ldrb r5, [r4, #36] @ zero_extendqisi2
+ cbz r5, .L296
mov r1, r2
bl FlashEraseSLc2KBlocks
- b .L296
-.L312:
- mov fp, r4
-.L295:
- cmp r5, r8
- bcs .L326
+.L294:
+ add sp, sp, #20
+ @ sp needed
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L305:
movs r3, #36
- movs r1, #0
- add r2, sp, #16
+ add r2, sp, #8
mul r6, r3, r5
- add r3, r9, r6
- str r3, [sp, #12]
- rsb r3, r5, r8
- ldr r0, [sp, #12]
+ sub r3, r8, r5
uxtb r3, r3
+ movs r1, #0
str r3, [sp]
- add r3, sp, #20
+ add r3, sp, #12
+ add fp, r9, r6
+ mov r0, fp
bl LogAddr2PhyAddr
- ldrb r3, [r4, #2230] @ zero_extendqisi2
+ ldrb r3, [r4, #2234] @ zero_extendqisi2
mov r7, r0
- ldr r0, [sp, #20]
- cmp r0, r3
- bcc .L297
+ ldr r0, [sp, #12]
+ cmp r3, r0
+ bhi .L298
mov r3, #-1
str r3, [r9, r6]
- b .L298
-.L297:
- ldrb r3, [fp, #2240] @ zero_extendqisi2
+.L299:
+ adds r5, r5, #1
+.L296:
+ cmp r5, r8
+ bcc .L305
+ ldr r6, .L325+4
+ movs r5, #0
+.L306:
+ ldrb r3, [r4, #2234] @ zero_extendqisi2
+ cmp r5, r3
+ bcc .L308
+ ldr r3, [r4, #2248]
+ cmp r3, #0
+ bne .L309
+.L310:
+ movs r0, #0
+ b .L294
+.L298:
+ ldrb r3, [r4, #2244] @ zero_extendqisi2
cmp r3, #0
add r3, r4, r0, lsl #4
it eq
moveq r7, #0
- ldr r3, [r3, #2108]
- cbz r3, .L300
+ ldr r3, [r3, #2112]
+ cbz r3, .L301
uxtb r0, r0
bl FlashWaitCmdDone
-.L300:
- ldr r1, [sp, #20]
- ldr r3, [sp, #12]
- lsls r2, r1, #4
- add lr, r4, r2
- str r3, [lr, #2108]
- movs r3, #0
- str r3, [lr, #2112]
- ldr r3, [sp, #16]
- str r3, [lr, #2104]
- cbz r7, .L301
- add r3, r6, #36
- add r3, r3, r9
- str r3, [lr, #2112]
.L301:
- add r1, r1, r4
+ ldr r2, [sp, #12]
+ movs r0, #0
+ lsls r3, r2, #4
+ adds r1, r4, r3
+ str r0, [r1, #2116]
+ ldr r0, [sp, #8]
+ str fp, [r1, #2112]
+ str r0, [r1, #2108]
+ cbz r7, .L302
+ adds r6, r6, #36
+ add r6, r6, r9
+ str r6, [r1, #2116]
+.L302:
add r2, r2, r4
- ldrb r6, [r1, #2232] @ zero_extendqisi2
+ add r3, r3, r4
+ ldrb r6, [r2, #2236] @ zero_extendqisi2
mov r0, r6
- strb r6, [r2, #2100]
+ strb r6, [r3, #2104]
bl NandcFlashCs
cmp r10, #1
mov r0, r6
- bne .L302
- ldrb r3, [fp, #144] @ zero_extendqisi2
- cbz r3, .L302
+ bne .L303
+ ldrb r3, [r4, #152] @ zero_extendqisi2
+ cbz r3, .L303
bl flash_enter_slc_mode
- b .L303
-.L302:
- bl flash_exit_slc_mode
-.L303:
- ldr r3, [sp, #20]
+.L304:
+ ldr r3, [sp, #12]
mov r0, r6
- ldr r1, [sp, #16]
+ ldr r1, [sp, #8]
add r5, r5, r7
add r3, r4, r3, lsl #2
- ldr r2, [r3, #1172]
+ ldr r2, [r3, #1180]
adds r2, r2, #0
it ne
movne r2, #1
bl FlashWaitReadyEN
- mov r0, r6
mov r2, r7
- ldr r1, [sp, #16]
+ ldr r1, [sp, #8]
+ mov r0, r6
bl FlashEraseCmd
mov r0, r6
bl NandcFlashDeCs
-.L298:
- adds r5, r5, #1
- b .L295
-.L326:
- ldr r6, .L328
- movs r5, #0
- addw r7, r6, #2100
-.L305:
- ldrb r2, [r4, #2230] @ zero_extendqisi2
- ldr r3, .L328
- cmp r5, r2
- bcs .L327
+ b .L299
+.L303:
+ bl flash_exit_slc_mode
+ b .L304
+.L308:
uxtb r0, r5
bl FlashWaitCmdDone
cmp r10, #1
- bne .L306
- ldrb r3, [r6, #144] @ zero_extendqisi2
- cbz r3, .L306
+ bne .L307
+ ldrb r3, [r4, #152] @ zero_extendqisi2
+ cbz r3, .L307
lsls r3, r5, #4
- ldrb r0, [r7, r3] @ zero_extendqisi2
+ ldrb r0, [r6, r3] @ zero_extendqisi2
bl flash_exit_slc_mode
-.L306:
+.L307:
adds r5, r5, #1
- b .L305
-.L327:
- ldr r2, [r3, #2244]
- cbnz r2, .L308
-.L310:
- movs r0, #0
- b .L296
-.L308:
- ldrb r3, [r3, #2068] @ zero_extendqisi2
+ b .L306
+.L309:
+ ldrb r3, [r4, #2072] @ zero_extendqisi2
cmp r3, #69
bne .L310
movs r3, #0
movs r2, #36
mov r1, r3
-.L309:
+.L311:
cmp r3, r8
beq .L310
mul r0, r2, r3
adds r3, r3, #1
str r1, [r9, r0]
- b .L309
-.L296:
- add sp, sp, #28
- @ sp needed
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L329:
+ b .L311
+.L326:
.align 2
-.L328:
+.L325:
.word .LANCHOR0
+ .word .LANCHOR0+2104
.fnend
.size FlashEraseBlocks, .-FlashEraseBlocks
.align 1
.global FlashReadDpCmd
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FlashReadDpCmd, %function
FlashReadDpCmd:
.fnstart
@@ -2161,65 +2295,68 @@
@ 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 r7, r0
- ldr r0, .L335
- mov r6, r1
+ mov r6, r0
+ ldr r0, .L332
+ mov r7, r1
uxtb r9, r2
lsr r8, r2, #8
- add r3, r0, r7, lsl #3
lsrs r5, r2, #16
- ldrb r1, [r0, #64] @ zero_extendqisi2
- uxtb ip, r6
- ldr r4, [r3, #12]
- lsr lr, r6, #8
- ldrb r3, [r3, #16] @ zero_extendqisi2
- cmp r1, #1
- ldr r2, [r0, #44]
- lsr r1, r6, #16
- lsl r3, r3, #8
+ uxtb lr, r7
+ ldr r2, [r0, #48]
+ lsr ip, r7, #8
+ add r1, r0, r6, lsl #3
+ ldr r3, [r0, r6, lsl #3]
+ ldrb r4, [r1, #4] @ zero_extendqisi2
+ ldrb r1, [r0, #68] @ zero_extendqisi2
ldrb r2, [r2, #7] @ zero_extendqisi2
- bne .L331
+ cmp r1, #1
+ lsl r4, r4, #8
+ lsr r1, r7, #16
+ bne .L328
cmp r2, #1
itt eq
- addeq r2, r4, r3
+ addeq r2, r3, r4
moveq r10, #38
add r4, r4, r3
it eq
streq r10, [r2, #2056]
+ ldrb r3, [r0, #61] @ zero_extendqisi2
mov r10, #0
- ldrb r3, [r0, #57] @ zero_extendqisi2
- ldrb r2, [r0, #56] @ zero_extendqisi2
- mov r0, r7
+ ldrb r2, [r0, #60] @ zero_extendqisi2
+ mov r0, r6
str r2, [r4, #2056]
str r10, [r4, #2052]
str r10, [r4, #2052]
- str ip, [r4, #2052]
str lr, [r4, #2052]
+ str ip, [r4, #2052]
str r1, [r4, #2052]
str r3, [r4, #2056]
bl NandcWaitFlashReady
- str r10, [r4, #2056]
movs r3, #48
+ str r10, [r4, #2056]
str r10, [r4, #2052]
str r10, [r4, #2052]
str r9, [r4, #2052]
str r8, [r4, #2052]
str r5, [r4, #2052]
str r3, [r4, #2056]
- b .L333
-.L331:
+.L330:
+ mov r1, r7
+ mov r0, r6
+ pop {r4, r5, r6, r7, r8, r9, r10, lr}
+ b FlashSetRandomizer
+.L328:
cmp r2, #1
- itt eq
- addeq r2, r4, r3
+ ittt eq
+ addeq r2, r3, r4
moveq r10, #38
- add r3, r3, r4
- it eq
streq r10, [r2, #2056]
- ldrb r2, [r0, #56] @ zero_extendqisi2
+ add r3, r3, r4
+ ldrb r2, [r0, #60] @ zero_extendqisi2
str r2, [r3, #2056]
- ldrb r2, [r0, #57] @ zero_extendqisi2
- str ip, [r3, #2052]
+ ldrb r2, [r0, #61] @ zero_extendqisi2
str lr, [r3, #2052]
+ str ip, [r3, #2052]
str r1, [r3, #2052]
str r2, [r3, #2056]
movs r2, #48
@@ -2227,89 +2364,89 @@
str r8, [r3, #2052]
str r5, [r3, #2052]
str r2, [r3, #2056]
+ b .L330
.L333:
- mov r0, r7
- mov r1, r6
- pop {r4, r5, r6, r7, r8, r9, r10, lr}
- b FlashSetRandomizer
-.L336:
.align 2
-.L335:
+.L332:
.word .LANCHOR0
.fnend
.size FlashReadDpCmd, .-FlashReadDpCmd
.align 1
.global ftl_flash_de_init
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type ftl_flash_de_init, %function
ftl_flash_de_init:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- push {r3, r4, r5, lr}
- .save {r3, r4, r5, lr}
+ push {r4, lr}
+ .save {r4, lr}
movs r0, #0
- ldr r4, .L347
+ ldr r4, .L344
bl NandcWaitFlashReady
bl FlashSetReadRetryDefault
- ldr r0, [r4, #2248]
- cbz r0, .L338
+ ldr r0, [r4, #2252]
+ cbz r0, .L335
movs r0, #0
bl flash_enter_slc_mode
- b .L339
-.L338:
- bl flash_exit_slc_mode
-.L339:
- ldrb r3, [r4, #2252] @ zero_extendqisi2
- ldr r5, .L347
- cbz r3, .L340
- ldrb r3, [r5, #2229] @ zero_extendqisi2
+.L336:
+ ldrb r3, [r4, #2256] @ zero_extendqisi2
+ cbz r3, .L337
+ ldrb r3, [r4, #2233] @ zero_extendqisi2
lsls r3, r3, #31
- bpl .L340
+ bpl .L337
movs r0, #1
bl FlashSetInterfaceMode
movs r0, #1
bl NandcSetMode
movs r3, #0
- strb r3, [r5, #2252]
-.L340:
- ldr r3, [r4, #12]
+ strb r3, [r4, #2256]
+.L337:
+ ldr r3, [r4]
movs r0, #0
str r0, [r3, #336]
- pop {r3, r4, r5, pc}
-.L348:
+ pop {r4, pc}
+.L335:
+ bl flash_exit_slc_mode
+ b .L336
+.L345:
.align 2
-.L347:
+.L344:
.word .LANCHOR0
.fnend
.size ftl_flash_de_init, .-ftl_flash_de_init
.align 1
.global NandcRandmzSel
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type NandcRandmzSel, %function
NandcRandmzSel:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L350
- add r0, r3, r0, lsl #3
- ldr r3, [r0, #12]
+ ldr r3, .L347
+ ldr r3, [r3, r0, lsl #3]
str r1, [r3, #336]
bx lr
-.L351:
+.L348:
.align 2
-.L350:
+.L347:
.word .LANCHOR0
.fnend
.size NandcRandmzSel, .-NandcRandmzSel
.global __aeabi_idiv
.align 1
.global NandcTimeCfg
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type NandcTimeCfg, %function
NandcTimeCfg:
.fnstart
@@ -2320,53 +2457,55 @@
mov r4, r0
movs r0, #0
bl rknand_get_clk_rate
- ldr r1, .L362
+ ldr r1, .L359
bl __aeabi_idiv
- ldr r3, .L362+4
- ldr r3, [r3, #80]
+ ldr r3, .L359+4
cmp r0, #250
- ble .L353
+ ldr r3, [r3, #88]
+ ble .L350
movw r2, #8354
- b .L360
-.L353:
- cmp r0, #220
- bgt .L361
- cmp r0, #185
- ble .L356
- movw r2, #4226
- b .L360
-.L356:
- cmp r0, #160
- ble .L357
- movw r2, #4194
- b .L360
.L357:
- cmp r4, #35
- bhi .L358
- movw r2, #4193
- b .L360
-.L358:
- cmp r4, #99
- bls .L359
-.L361:
- movw r2, #8322
- b .L360
-.L359:
- movw r2, #4225
-.L360:
str r2, [r3, #4]
pop {r4, pc}
-.L363:
+.L350:
+ cmp r0, #220
+ ble .L352
+.L358:
+ movw r2, #8322
+ b .L357
+.L352:
+ cmp r0, #185
+ ble .L353
+ movw r2, #4226
+ b .L357
+.L353:
+ cmp r0, #160
+ ble .L354
+ movw r2, #4194
+ b .L357
+.L354:
+ cmp r4, #35
+ bhi .L355
+ movw r2, #4193
+ b .L357
+.L355:
+ cmp r4, #99
+ bhi .L358
+ movw r2, #4225
+ b .L357
+.L360:
.align 2
-.L362:
+.L359:
.word 1000000
.word .LANCHOR0
.fnend
.size NandcTimeCfg, .-NandcTimeCfg
.align 1
.global FlashTimingCfg
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FlashTimingCfg, %function
FlashTimingCfg:
.fnstart
@@ -2376,33 +2515,35 @@
sub r3, r0, #4192
subs r3, r3, #1
cmp r3, #1
- bls .L365
+ bls .L362
sub r3, r0, #4224
subs r3, r3, #1
cmp r3, #1
- bls .L365
+ bls .L362
movw r3, #8322
cmp r0, r3
- bne .L366
-.L365:
- ldr r3, .L367
- ldr r3, [r3, #80]
+ bne .L363
+.L362:
+ ldr r3, .L364
+ ldr r3, [r3, #88]
str r0, [r3, #4]
-.L366:
- ldr r3, .L367+4
- ldrb r0, [r3, #493] @ zero_extendqisi2
+.L363:
+ ldr r3, .L364+4
+ ldrb r0, [r3, #489] @ zero_extendqisi2
b NandcTimeCfg
-.L368:
+.L365:
.align 2
-.L367:
+.L364:
.word .LANCHOR0
.word .LANCHOR1
.fnend
.size FlashTimingCfg, .-FlashTimingCfg
.align 1
.global NandcInit
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type NandcInit, %function
NandcInit:
.fnstart
@@ -2410,68 +2551,69 @@
@ frame_needed = 0, uses_anonymous_args = 0
push {r3, r4, r5, lr}
.save {r3, r4, r5, lr}
- movs r1, #0
- ldr r3, .L371
movs r2, #1
+ ldr r3, .L368
+ movs r1, #0
movs r5, #0
- str r1, [r3, #16]
- str r0, [r3, #12]
- str r2, [r3, #24]
+ str r2, [r3, #12]
movs r2, #2
- str r0, [r3, #20]
- str r2, [r3, #32]
+ str r2, [r3, #20]
movs r2, #3
- str r0, [r3, #28]
- str r0, [r3, #36]
- str r0, [r3, #80]
- str r2, [r3, #40]
+ stm r3, {r0, r1}
+ str r0, [r3, #8]
+ str r0, [r3, #16]
+ str r0, [r3, #24]
+ str r0, [r3, #88]
+ str r2, [r3, #28]
ldr r2, [r0]
and r2, r2, #253952
ubfx r4, r2, #13, #1
bfi r2, r1, #13, #1
ldr r1, [r0, #352]
orr r2, r2, #256
- str r4, [r3, #2256]
+ str r4, [r3, #2260]
movw r4, #2049
ubfx r1, r1, #16, #4
- str r1, [r3, #2260]
+ str r1, [r3, #2264]
ldr r1, [r0, #352]
cmp r1, r4
+ str r1, [r3, #2268]
mov r4, r3
- str r1, [r3, #2264]
itt eq
moveq r3, #8
- streq r3, [r4, #2260]
+ streq r3, [r4, #2264]
str r2, [r0]
movs r0, #40
- ldr r3, [r4, #80]
+ ldr r3, [r4, #88]
str r5, [r3, #336]
bl NandcTimeCfg
- ldr r3, [r4, #80]
+ ldr r3, [r4, #88]
movw r2, #8322
mov r0, #36864
str r2, [r3, #344]
- ldr r2, .L371+4
+ ldr r2, .L368+4
str r2, [r3, #304]
bl ftl_malloc
- str r5, [r4, #2296]
- str r5, [r4, #2304]
- str r0, [r4, #2268]
str r0, [r4, #2272]
- add r0, r0, #32768
str r0, [r4, #2276]
+ add r0, r0, #32768
+ str r0, [r4, #2280]
+ str r5, [r4, #2300]
+ str r5, [r4, #2308]
pop {r3, r4, r5, pc}
-.L372:
+.L369:
.align 2
-.L371:
+.L368:
.word .LANCHOR0
.word 1579009
.fnend
.size NandcInit, .-NandcInit
.align 1
.global NandcGetTimeCfg
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type NandcGetTimeCfg, %function
NandcGetTimeCfg:
.fnstart
@@ -2479,163 +2621,171 @@
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, lr}
.save {r4, r5, lr}
- ldr r4, .L374
- ldr r5, [r4, #80]
+ ldr r4, .L371
+ ldr r5, [r4, #88]
ldr r5, [r5, #4]
str r5, [r0]
- ldr r0, [r4, #80]
+ ldr r0, [r4, #88]
ldr r0, [r0]
str r0, [r1]
- ldr r1, [r4, #80]
+ ldr r1, [r4, #88]
ldr r1, [r1, #304]
str r1, [r2]
- ldr r1, [r4, #80]
+ ldr r1, [r4, #88]
ldr r2, [r1, #308]
ldr r1, [r1, #344]
uxtb r2, r2
orr r2, r2, r1, lsl #16
str r2, [r3]
pop {r4, r5, pc}
-.L375:
+.L372:
.align 2
-.L374:
+.L371:
.word .LANCHOR0
.fnend
.size NandcGetTimeCfg, .-NandcGetTimeCfg
.align 1
.global NandcBchSel
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type NandcBchSel, %function
NandcBchSel:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- @ link register save eliminated.
- ldr r3, .L384
- movs r1, #1
- ldr r2, [r3, #80]
- str r0, [r3, #2308]
- movs r3, #0
- str r1, [r2, #8]
- movs r1, #16
- cmp r0, r1
- bfi r3, r1, #8, #8
- bfc r3, #18, #1
- bne .L377
-.L380:
- bfc r3, #4, #1
- b .L378
+ ldr r3, .L381
+ movs r1, #0
+ push {r4, lr}
+ .save {r4, lr}
+ movs r4, #1
+ ldr r2, [r3, #88]
+ str r0, [r3, #2312]
+ mov r3, r1
+ str r4, [r2, #8]
+ movs r4, #16
+ cmp r0, r4
+ bfi r3, r4, #8, #8
+ bfi r3, r1, #18, #1
+ bne .L374
.L377:
+ bfc r3, #4, #1
+.L375:
+ orr r3, r3, #1
+ str r3, [r2, #12]
+ pop {r4, pc}
+.L374:
cmp r0, #24
- bne .L379
+ bne .L376
orr r3, r3, #16
- b .L378
-.L379:
+ b .L375
+.L376:
cmp r0, #40
orr r3, r3, #262144
orr r3, r3, #16
- beq .L380
-.L378:
- orr r3, r3, #1
- str r3, [r2, #12]
- bx lr
-.L385:
+ bne .L375
+ b .L377
+.L382:
.align 2
-.L384:
+.L381:
.word .LANCHOR0
.fnend
.size NandcBchSel, .-NandcBchSel
.align 1
.global FlashBchSel
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FlashBchSel, %function
FlashBchSel:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L387
- strb r0, [r3, #2312]
+ ldr r3, .L384
+ strb r0, [r3, #2316]
b NandcBchSel
-.L388:
+.L385:
.align 2
-.L387:
+.L384:
.word .LANCHOR0
.fnend
.size FlashBchSel, .-FlashBchSel
.align 1
.global ftl_flash_resume
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type ftl_flash_resume, %function
ftl_flash_resume:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L397
push {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
movs r5, #0
- ldr r2, [r3, #80]
- addw r6, r3, #2068
- ldr r1, [r3, #84]
- mov r4, r3
+ ldr r4, .L394
+ ldr r2, [r4, #88]
+ addw r6, r4, #2072
+ ldr r1, [r4, #92]
str r1, [r2]
- ldr r1, [r3, #88]
- ldr r2, [r3, #80]
+ ldr r1, [r4, #96]
+ ldr r2, [r4, #88]
str r1, [r2, #4]
- ldr r1, [r3, #92]
+ ldr r1, [r4, #100]
str r1, [r2, #8]
- ldr r1, [r3, #96]
+ ldr r1, [r4, #104]
str r1, [r2, #12]
- ldr r1, [r3, #100]
+ ldr r1, [r4, #108]
str r1, [r2, #304]
- ldr r1, [r3, #104]
+ ldr r1, [r4, #112]
str r1, [r2, #308]
- ldr r1, [r3, #108]
+ ldr r1, [r4, #116]
str r1, [r2, #336]
- ldr r1, [r3, #112]
+ ldr r1, [r4, #120]
str r1, [r2, #344]
-.L391:
+.L388:
ldrb r3, [r6, r5, lsl #3] @ zero_extendqisi2
subs r3, r3, #1
uxtb r3, r3
cmp r3, #253
- bhi .L390
+ bhi .L387
uxtb r0, r5
bl FlashReset
-.L390:
+.L387:
adds r5, r5, #1
cmp r5, #4
- bne .L391
- ldrb r3, [r4, #2252] @ zero_extendqisi2
- ldr r5, .L397
- cbz r3, .L392
+ bne .L388
+ ldrb r3, [r4, #2256] @ zero_extendqisi2
+ cbz r3, .L389
movs r0, #1
bl NandcSetMode
- ldrb r0, [r5, #2229] @ zero_extendqisi2
+ ldrb r0, [r4, #2233] @ zero_extendqisi2
bl FlashSetInterfaceMode
- ldrb r0, [r5, #2229] @ zero_extendqisi2
+ ldrb r0, [r4, #2233] @ zero_extendqisi2
bl NandcSetMode
- ldrb r0, [r5, #101] @ zero_extendqisi2
+ ldrb r0, [r4, #109] @ zero_extendqisi2
bl NandcSetDdrPara
-.L392:
- ldr r3, [r4, #44]
+.L389:
+ ldr r3, [r4, #48]
pop {r4, r5, r6, lr}
ldrb r0, [r3, #20] @ zero_extendqisi2
b FlashBchSel
-.L398:
+.L395:
.align 2
-.L397:
+.L394:
.word .LANCHOR0
.fnend
.size ftl_flash_resume, .-ftl_flash_resume
.align 1
.global ftl_nandc_get_irq_status
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type ftl_nandc_get_irq_status, %function
ftl_nandc_get_irq_status:
.fnstart
@@ -2648,8 +2798,10 @@
.size ftl_nandc_get_irq_status, .-ftl_nandc_get_irq_status
.align 1
.global rk_nandc_flash_ready
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type rk_nandc_flash_ready, %function
rk_nandc_flash_ready:
.fnstart
@@ -2667,8 +2819,10 @@
.size rk_nandc_flash_ready, .-rk_nandc_flash_ready
.align 1
.global NandcIqrWaitFlashReady
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type NandcIqrWaitFlashReady, %function
NandcIqrWaitFlashReady:
.fnstart
@@ -2680,8 +2834,10 @@
.size NandcIqrWaitFlashReady, .-NandcIqrWaitFlashReady
.align 1
.global rk_nandc_flash_xfer_completed
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type rk_nandc_flash_xfer_completed, %function
rk_nandc_flash_xfer_completed:
.fnstart
@@ -2699,8 +2855,10 @@
.size rk_nandc_flash_xfer_completed, .-rk_nandc_flash_xfer_completed
.align 1
.global NandcSendDumpDataStart
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type NandcSendDumpDataStart, %function
NandcSendDumpDataStart:
.fnstart
@@ -2710,10 +2868,10 @@
ldr r2, [r0, #16]
.pad #8
sub sp, sp, #8
- ldr r3, .L404
+ ldr r3, .L401
str r2, [sp, #4]
ldr r2, [sp, #4]
- bic r2, r2, #4
+ bfc r2, #2, #1
str r2, [sp, #4]
ldr r2, [sp, #4]
str r2, [r0, #16]
@@ -2723,16 +2881,18 @@
add sp, sp, #8
@ sp needed
bx lr
-.L405:
+.L402:
.align 2
-.L404:
+.L401:
.word 538969130
.fnend
.size NandcSendDumpDataStart, .-NandcSendDumpDataStart
.align 1
.global NandcSendDumpDataDone
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type NandcSendDumpDataDone, %function
NandcSendDumpDataDone:
.fnstart
@@ -2741,12 +2901,12 @@
@ link register save eliminated.
.pad #8
sub sp, sp, #8
-.L407:
+.L404:
ldr r3, [r0, #8]
str r3, [sp, #4]
ldr r3, [sp, #4]
lsls r3, r3, #11
- bpl .L407
+ bpl .L404
add sp, sp, #8
@ sp needed
bx lr
@@ -2754,8 +2914,10 @@
.size NandcSendDumpDataDone, .-NandcSendDumpDataDone
.align 1
.global NandcXferStart
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type NandcXferStart, %function
NandcXferStart:
.fnstart
@@ -2767,158 +2929,162 @@
sub sp, sp, #20
mov r6, r1
ldr r1, [sp, #60]
+ str r2, [sp, #4]
ldr fp, [sp, #56]
- cbnz r1, .L424
+ cmp r1, #0
+ bne .L421
adds r1, fp, #0
it ne
movne r1, #1
- b .L411
-.L424:
- movs r1, #1
-.L411:
- ldr r5, .L429
- mov lr, #16
- movs r4, #0
- add r0, r5, r0, lsl #3
- ldr r7, [r0, #12]
- ldrb r0, [r0, #16] @ zero_extendqisi2
+.L408:
+ ldr r4, .L426
+ mov ip, #16
+ movs r5, #0
+ ldr r7, [r4, r0, lsl #3]
+ add r0, r4, r0, lsl #3
ldr r8, [r7, #12]
- bfi r8, lr, #8, #8
- bfi r8, r4, #3, #1
- bfi r4, r6, #1, #1
+ ldrb r0, [r0, #4] @ zero_extendqisi2
+ bfi r8, ip, #8, #8
+ bfi r8, r5, #3, #1
+ bfi r5, r6, #1, #1
bfi r8, r0, #5, #3
- orr r4, r4, #8
+ orr r5, r5, #8
movs r0, #1
- bfi r4, r0, #5, #2
+ bfi r5, r0, #5, #2
lsrs r3, r3, r0
- orr r4, r4, #536870912
- orr r4, r4, #1024
- bfi r4, r3, #4, #1
- ldr r3, [r5, #2260]
+ orr r5, r5, #536870912
+ orr r5, r5, #1024
+ bfi r5, r3, #4, #1
+ ldr r3, [r4, #2264]
cmp r3, #3
- bls .L412
+ bls .L409
ldr r3, [r7, #16]
str r3, [sp, #12]
ldr r3, [sp, #12]
- bic r3, r3, #4
+ bfc r3, #2, #1
str r3, [sp, #12]
cmp r1, #0
- beq .L413
- cbnz r6, .L414
-.L422:
+ beq .L410
+ cmp r6, #0
+ bne .L411
+.L419:
+ ldr r2, [sp, #4]
adds r2, r2, #1
asrs r2, r2, #1
- bfi r4, r2, #22, #6
+ bfi r5, r2, #22, #6
cmp fp, #0
- beq .L415
+ beq .L412
mov r0, fp
- b .L416
-.L414:
- ldr r3, [r5, #2308]
- mov r9, r5
- ldr lr, [sp, #60]
- cmp r3, #25
- ite cc
- movcc r3, #64
- movcs r3, #128
- str r3, [sp]
- lsrs r3, r2, #1
- str r3, [sp, #4]
- movs r3, #0
- mov r0, r3
-.L418:
- ldr r1, [sp, #4]
- cmp r0, r1
- bcs .L422
- ldr r1, [sp, #60]
- lsr r10, r3, #2
- cbz r1, .L419
- ldrh r1, [lr, #2]
- ldrh ip, [lr], #4
- orr ip, ip, r1, lsl #16
- ldr r1, [r9, #2276]
- str ip, [r1, r10, lsl #2]
- b .L420
-.L419:
- ldr r1, [r9, #2276]
- mov ip, r1
- mov r1, #-1
- str r1, [ip, r10, lsl #2]
-.L420:
- ldr r1, [sp]
- adds r0, r0, #1
- add r3, r3, r1
- b .L418
-.L415:
- ldr r0, [r5, #2272]
-.L416:
- ldr r3, [r5, #2276]
- ubfx r9, r4, #22, #5
+.L413:
+ ldr r3, [r4, #2280]
+ ubfx r9, r5, #22, #5
mov r2, r6
- str r0, [r5, #2280]
lsl r1, r9, #10
- str r3, [r5, #2284]
+ str r0, [r4, #2284]
+ str r3, [r4, #2288]
bl rknand_dma_map_single
mov r2, r6
+ str r0, [r4, #2292]
lsl r1, r9, #7
+ ldr r0, [r4, #2288]
clz r6, r6
- lsrs r6, r6, #5
- str r0, [r5, #2288]
- ldr r0, [r5, #2284]
bl rknand_dma_map_single
movs r3, #1
- str r3, [r5, #2296]
+ str r0, [r4, #2296]
+ str r3, [r4, #2300]
+ movs r2, #16
+ ldr r3, [r4, #2292]
tst fp, #3
- ldr r3, [r5, #2288]
- str r0, [r5, #2292]
+ lsr r6, r6, #5
str r3, [r7, #20]
- ldr r3, [r5, #2292]
+ ldr r3, [r4, #2296]
str r3, [r7, #24]
mov r3, #0
str r3, [sp, #12]
ldr r3, [sp, #12]
- bic r3, r3, #15872
- orr r3, r3, #8192
+ bfi r3, r2, #9, #5
+ it eq
+ moveq r2, #2
str r3, [sp, #12]
ldr r3, [sp, #12]
orr r3, r3, #448
str r3, [sp, #12]
- itttt eq
+ ittt eq
ldreq r3, [sp, #12]
- biceq r3, r3, #56
- orreq r3, r3, #16
+ bfieq r3, r2, #3, #3
streq r3, [sp, #12]
ldr r3, [sp, #12]
orr r3, r3, #4
str r3, [sp, #12]
ldr r3, [sp, #12]
- bic r3, r3, #2
- orr r6, r3, r6, lsl #1
- str r6, [sp, #12]
+ bfi r3, r6, #1, #1
+ str r3, [sp, #12]
ldr r3, [sp, #12]
orr r3, r3, #1
str r3, [sp, #12]
-.L413:
+.L410:
ldr r3, [sp, #12]
str r3, [r7, #16]
-.L412:
+.L409:
str r8, [r7, #12]
- str r4, [r7, #8]
- orr r4, r4, #4
- str r4, [r7, #8]
+ str r5, [r7, #8]
+ orr r5, r5, #4
+ str r5, [r7, #8]
add sp, sp, #20
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L430:
+.L421:
+ movs r1, #1
+ b .L408
+.L411:
+ ldr r3, [r4, #2312]
+ cmp r3, #25
+ ldr r3, [sp, #4]
+ ite cc
+ movcc r10, #64
+ movcs r10, #128
+ lsr r9, r3, #1
+ ldr r3, [sp, #60]
+ str r3, [sp]
+ movs r3, #0
+ mov r0, r3
+.L415:
+ cmp r0, r9
+ bcs .L419
+ ldr r1, [sp, #60]
+ bic lr, r3, #3
+ cbz r1, .L416
+ ldr r2, [sp]
+ ldr r1, [r2], #4 @ unaligned
+ str r2, [sp]
+ mov r2, r1
+ ldr r1, [r4, #2280]
+ mov ip, r1
+ str r2, [ip, lr]
+.L417:
+ adds r0, r0, #1
+ add r3, r3, r10
+ b .L415
+.L416:
+ ldr r1, [r4, #2280]
+ mov r2, #-1
+ str r2, [r1, lr]
+ b .L417
+.L412:
+ ldr r0, [r4, #2276]
+ b .L413
+.L427:
.align 2
-.L429:
+.L426:
.word .LANCHOR0
.fnend
.size NandcXferStart, .-NandcXferStart
.align 1
.global Ftl_log2
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type Ftl_log2, %function
Ftl_log2:
.fnstart
@@ -2927,23 +3093,25 @@
@ link register save eliminated.
movs r1, #0
movs r2, #1
-.L432:
+.L429:
cmp r2, r0
uxth r3, r1
add r1, r1, #1
- bhi .L434
- lsls r2, r2, #1
- b .L432
-.L434:
+ bls .L430
subs r0, r3, #1
uxth r0, r0
bx lr
+.L430:
+ lsls r2, r2, #1
+ b .L429
.fnend
.size Ftl_log2, .-Ftl_log2
.align 1
.global FtlPrintInfo
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FtlPrintInfo, %function
FtlPrintInfo:
.fnstart
@@ -2955,40 +3123,44 @@
.size FtlPrintInfo, .-FtlPrintInfo
.align 1
.global FtlSysBlkNumInit
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FtlSysBlkNumInit, %function
FtlSysBlkNumInit:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L438
- cmp r0, #23
- it ls
- movls r0, #24
- ldrh r2, [r3, #2320]
- ldrh r1, [r3, #2330]
- str r0, [r3, #2316]
+ ldr r3, .L433
+ cmp r0, #24
+ it cc
+ movcc r0, #24
+ ldrh r2, [r3, #2324]
+ ldrh r1, [r3, #2334]
+ str r0, [r3, #2320]
muls r2, r0, r2
subs r0, r1, r0
- ldr r1, [r3, #2336]
- strh r0, [r3, #2328] @ movhi
+ ldr r1, [r3, #2340]
+ strh r0, [r3, #2332] @ movhi
movs r0, #0
- str r2, [r3, #2324]
+ str r2, [r3, #2328]
subs r2, r1, r2
- str r2, [r3, #2332]
+ str r2, [r3, #2336]
bx lr
-.L439:
+.L434:
.align 2
-.L438:
+.L433:
.word .LANCHOR0
.fnend
.size FtlSysBlkNumInit, .-FtlSysBlkNumInit
.align 1
.global FtlConstantsInit
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FtlConstantsInit, %function
FtlConstantsInit:
.fnstart
@@ -3000,388 +3172,392 @@
sub sp, sp, #20
ldrh r1, [r0, #14]
mov r5, r0
- ldr r4, .L468
- ldrh lr, [r0, #8]
+ ldr r4, .L462
str r1, [sp]
ldrh r1, [sp]
+ ldrh ip, [r0, #8]
ldrh r2, [r0, #10]
ldrh r3, [r0, #12]
- addw r0, r4, #2348
- strh r1, [r4, #2330] @ movhi
+ addw r0, r4, #2350
+ strh r1, [r4, #2334] @ movhi
movs r1, #0
- strh lr, [r4, #2340] @ movhi
- strh r2, [r4, #2342] @ movhi
- strh r3, [r4, #2344] @ movhi
-.L441:
+ strh ip, [r4, #2344] @ movhi
+ strh r2, [r4, #2346] @ movhi
+ strh r3, [r4, #2348] @ movhi
+.L436:
strb r1, [r1, r0]
adds r1, r1, #1
cmp r1, #32
- bne .L441
+ bne .L436
ldrh r0, [r5, #14]
ldrh r1, [r5, #20]
cmp r1, r0, lsr #8
- bcs .L442
+ bcs .L437
uxtb r10, r3
- ldr r9, .L468+4
+ ldr r9, .L462+4
lsl r1, r10, #1
uxtb r1, r1
- str r1, [sp, #8]
+ str r1, [sp, #4]
subs r1, r2, #1
muls r1, r3, r1
- str r1, [sp, #4]
+ str r1, [sp, #12]
movs r1, #0
-.L443:
+.L438:
cmp r1, r3
- bcs .L445
- ldr r6, [sp, #4]
- rsb ip, r3, r1
+ bcs .L440
+ ldr r6, [sp, #12]
+ sub lr, r1, r3
uxtb r0, r1
- add ip, ip, r9
+ add lr, lr, r9
adds r6, r1, r6
add r6, r9, r6
- str r6, [sp, #12]
+ str r6, [sp, #8]
movs r6, #0
mov r8, r6
-.L446:
- cmp r8, r2
- add r6, r6, r3
- bcs .L467
- ldr r7, [sp, #12]
- add fp, r0, r10
- strb r0, [ip, r6]
+ b .L441
+.L439:
+ ldr r7, [sp, #8]
+ add fp, r10, r0
+ strb r0, [lr, r6]
add r8, r8, #1
strb fp, [r7, r6]
- ldr r7, [sp, #8]
+ ldr r7, [sp, #4]
add r0, r0, r7
uxtb r0, r0
- b .L446
-.L467:
+.L441:
+ cmp r8, r2
+ add r6, r6, r3
+ bcc .L439
adds r1, r1, #1
- b .L443
-.L445:
+ b .L438
+.L440:
lsls r2, r2, #1
- strh r2, [r4, #2342] @ movhi
+ strh r2, [r4, #2346] @ movhi
ldr r2, [sp]
lsrs r7, r2, #1
- strh r7, [r4, #2330] @ movhi
-.L442:
- cmp lr, #1
- mov r2, #5
- strh r2, [r4, #2380] @ movhi
- mov r2, #0
+ strh r7, [r4, #2334] @ movhi
+.L437:
+ movs r2, #5
+ ldrb r9, [r4, #36] @ zero_extendqisi2
strh r2, [r4, #2382] @ movhi
- it eq
- ldreq r2, .L468
- ldrb r9, [r4] @ zero_extendqisi2
- it eq
- strheq lr, [r2, #2380] @ movhi
- mov r2, #4352
+ movs r2, #0
strh r2, [r4, #2384] @ movhi
+ cmp ip, #1
+ mov r2, #4352
+ it eq
+ strheq ip, [r4, #2382] @ movhi
+ strh r2, [r4, #2386] @ movhi
cmp r9, #0
- beq .L448
- ldr r2, .L468
- mov r1, #384
- strh r1, [r2, #2384] @ movhi
-.L448:
- ldrh r7, [r4, #2342]
- ldrh r6, [r4, #2330]
+ beq .L443
+ mov r2, #384
+ strh r2, [r4, #2386] @ movhi
+.L443:
+ ldrh r7, [r4, #2346]
+ ldrh r6, [r4, #2334]
ldrh r8, [r5, #16]
- smulbb r7, r7, r3
ldrh fp, [r5, #20]
- smulbb r3, r6, r3
+ smulbb r7, r7, r3
ldrh r1, [r5, #18]
+ smulbb r3, r3, r6
+ strh r8, [r4, #2390] @ movhi
mov r0, fp
- strh r8, [r4, #2388] @ movhi
- strh fp, [r4, #2394] @ movhi
+ strh fp, [r4, #2396] @ movhi
uxth r7, r7
- strh r1, [r4, #2390] @ movhi
- str r1, [sp]
- strh r3, [r4, #2386] @ movhi
+ strh r1, [r4, #2392] @ movhi
+ strh r3, [r4, #2388] @ movhi
smulbb r3, r7, r8
- strh r7, [r4, #2320] @ movhi
- strh r3, [r4, #2392] @ movhi
+ str r1, [sp]
+ strh r7, [r4, #2324] @ movhi
+ strh r3, [r4, #2394] @ movhi
bl Ftl_log2
lsl r3, fp, #9
cmp r6, #1024
+ strh r0, [r4, #2398] @ movhi
+ mov r10, r0
uxth r3, r3
- strh r3, [r4, #2398] @ movhi
- it hi
- ldrhi r2, .L468
- lsr r3, r3, #8
+ ldr r1, [sp]
+ ldrh r0, [r4, #2386]
strh r3, [r4, #2400] @ movhi
- ldrh r3, [r5, #26]
+ lsr r3, r3, #8
strh r3, [r4, #2402] @ movhi
+ mul r1, fp, r1
+ ldrh r3, [r5, #26]
+ lsl r0, r0, #3
+ strh r3, [r4, #2404] @ movhi
mul r3, r6, r7
- str r3, [r4, #2336]
+ str r3, [r4, #2340]
itt hi
uxtbhi r3, r6
- strhhi r3, [r2, #2382] @ movhi
- mov r10, r0
- ldrh r5, [r4, #2382]
- ldr r1, [sp]
- subs r5, r6, r5
- strh r0, [r4, #2396] @ movhi
- ldrh r0, [r4, #2384]
- muls r5, r7, r5
- ldr r3, .L468
- lsls r0, r0, #3
- mul r1, r1, fp
- str r3, [sp]
- mul r5, fp, r5
- mul r5, r8, r5
- asrs r5, r5, #11
- str r5, [r4, #2404]
+ strhhi r3, [r4, #2384] @ movhi
+ ldrh r3, [r4, #2384]
+ subs r3, r6, r3
+ muls r3, r7, r3
+ mul r3, fp, r3
+ mul r8, r8, r3
+ asr r3, r8, #11
+ str r3, [r4, #2408]
bl __aeabi_idiv
- ldr r3, [sp]
uxth r0, r0
cmp r0, #4
itet ls
- movls r2, #4
- strhhi r0, [r3, #2408] @ movhi
- strhls r2, [r3, #2408] @ movhi
+ movls r3, #4
+ strhhi r0, [r4, #2412] @ movhi
+ strhls r3, [r4, #2412] @ movhi
cmp r9, #0
- beq .L452
+ beq .L447
mov r3, #640
- strh r3, [r4, #2384] @ movhi
-.L452:
- ldrh r3, [r4, #2384]
+ strh r3, [r4, #2386] @ movhi
+.L447:
+ ldrh r3, [r4, #2386]
lsls r6, r6, #6
mov r1, r7
- ldr r5, .L468
+ ldrh r0, [r4, #2412]
asr r3, r3, r10
add r10, r10, #9
asr r6, r6, r10
adds r3, r3, #2
- strh r3, [r4, #2410] @ movhi
- uxth r0, r6
- strh r6, [r4, #2412] @ movhi
- add r6, r0, #8
- mul r3, r7, r0
- ldrh r0, [r4, #2408]
- str r3, [r4, #2416]
+ strh r6, [r4, #2416] @ movhi
+ uxth r6, r6
+ strh r3, [r4, #2414] @ movhi
+ mul r3, r6, r7
+ adds r6, r6, #8
+ str r3, [r4, #2420]
bl __aeabi_uidiv
- cmp r7, #1
uxtah r0, r6, r0
- ldr r6, .L468
+ cmp r7, #1
it eq
addeq r0, r0, #4
- str r0, [r5, #2316]
- ldrh r0, [r4, #2316]
+ str r0, [r4, #2320]
+ ldrh r0, [r4, #2320]
bl FtlSysBlkNumInit
- ldr r3, [r4, #2316]
- ldr r5, [r4, #2332]
+ ldr r5, [r4, #2336]
mov r0, #2048
- ldrh r7, [r4, #2394]
- str r3, [r4, #2420]
- ldrh r3, [r4, #2388]
- lsls r5, r5, #2
- mov r1, r7
+ ldr r3, [r4, #2320]
+ ldrh r6, [r4, #2396]
+ str r3, [r4, #2424]
+ lsls r3, r5, #2
+ ldrh r5, [r4, #2390]
+ mov r1, r6
muls r5, r3, r5
- ldrh r3, [r4, #2396]
+ ldrh r3, [r4, #2398]
adds r3, r3, #9
lsrs r5, r5, r3
adds r5, r5, #2
uxth r5, r5
- strh r5, [r4, #2424] @ movhi
+ strh r5, [r4, #2428] @ movhi
bl __aeabi_idiv
- ldrh r2, [r4, #2408]
+ ldrh r2, [r4, #2412]
movs r3, #0
- str r3, [r4, #2428]
+ str r3, [r4, #2432]
+ strh r0, [r4, #2430] @ movhi
adds r3, r2, #3
- strh r3, [r4, #2408] @ movhi
- ldr r3, [r4, #2416]
+ ldrb r0, [r4, #152] @ zero_extendqisi2
+ strh r3, [r4, #2412] @ movhi
+ ldr r3, [r4, #2420]
adds r1, r3, #3
- str r1, [r4, #2416]
- strh r0, [r4, #2426] @ movhi
- ldrb r0, [r4, #144] @ zero_extendqisi2
- cbz r0, .L455
- adds r2, r2, #4
+ str r1, [r4, #2420]
+ cbz r0, .L450
adds r3, r3, #5
- strh r2, [r6, #2408] @ movhi
- b .L466
-.L455:
- cmp r1, #7
- bhi .L456
- movs r3, #8
-.L466:
- str r3, [r6, #2416]
-.L456:
- ldrh r2, [r4, #2328]
+ adds r2, r2, #4
+ strh r2, [r4, #2412] @ movhi
+.L461:
+ str r3, [r4, #2420]
+.L451:
+ ldrh r2, [r4, #2332]
movs r3, #0
- strh r3, [r4, #2432] @ movhi
+ strh r3, [r4, #2436] @ movhi
movs r0, #0
lsrs r3, r2, #3
add r3, r3, r2, lsl #1
adds r3, r3, #52
add r5, r3, r5, lsl #2
- cmp r5, r7, lsl #9
- ittt cc
- movcc r2, #1
- ldrcc r3, .L468
- strhcc r2, [r3, #2432] @ movhi
+ cmp r5, r6, lsl #9
+ itt cc
+ movcc r3, #1
+ strhcc r3, [r4, #2436] @ movhi
add sp, sp, #20
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L469:
+.L450:
+ cmp r1, #7
+ bhi .L451
+ movs r3, #8
+ b .L461
+.L463:
.align 2
-.L468:
+.L462:
.word .LANCHOR0
- .word .LANCHOR0+2348
+ .word .LANCHOR0+2350
.fnend
.size FtlConstantsInit, .-FtlConstantsInit
.align 1
.global IsBlkInVendorPart
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type IsBlkInVendorPart, %function
IsBlkInVendorPart:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r2, .L477
- ldrh r3, [r2, #2434]
- cbz r3, .L476
- ldr r3, [r2, #2436]
- ldrh r2, [r2, #2408]
+ ldr r2, .L471
+ ldrh r3, [r2, #2438]
+ cbz r3, .L470
+ ldr r3, [r2, #2440]
+ ldrh r2, [r2, #2412]
add r2, r3, r2, lsl #1
-.L472:
+.L466:
cmp r3, r2
- beq .L476
- ldrh r1, [r3], #2
- cmp r1, r0
- bne .L472
- movs r0, #1
- bx lr
-.L476:
+ bne .L467
+.L470:
movs r0, #0
bx lr
-.L478:
+.L467:
+ ldrh r1, [r3], #2
+ cmp r0, r1
+ bne .L466
+ movs r0, #1
+ bx lr
+.L472:
.align 2
-.L477:
+.L471:
.word .LANCHOR0
.fnend
.size IsBlkInVendorPart, .-IsBlkInVendorPart
.align 1
.global FtlCacheMetchLpa
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FtlCacheMetchLpa, %function
FtlCacheMetchLpa:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r2, .L487
+ ldr r2, .L481
push {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
- ldr r3, [r2, #2440]
- cbz r3, .L486
- ldr r5, [r2, #2444]
+ ldr r3, [r2, #2444]
+ cbz r3, .L480
+ ldr r5, [r2, #2448]
movs r6, #36
movs r2, #0
-.L482:
+.L476:
mla r4, r6, r2, r5
ldr r4, [r4, #16]
cmp r4, r0
- bcc .L481
+ bcc .L475
cmp r4, r1
- bls .L484
-.L481:
+ bls .L478
+.L475:
adds r2, r2, #1
- cmp r2, r3
- bne .L482
-.L486:
+ cmp r3, r2
+ bne .L476
+.L480:
movs r0, #0
pop {r4, r5, r6, pc}
-.L484:
+.L478:
movs r0, #1
pop {r4, r5, r6, pc}
-.L488:
+.L482:
.align 2
-.L487:
+.L481:
.word .LANCHOR0
.fnend
.size FtlCacheMetchLpa, .-FtlCacheMetchLpa
.align 1
.global FtlGetCap
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FtlGetCap, %function
FtlGetCap:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L490
- ldr r0, [r3, #2428]
+ ldr r3, .L484
+ ldr r0, [r3, #2432]
bx lr
-.L491:
+.L485:
.align 2
-.L490:
+.L484:
.word .LANCHOR0
.fnend
.size FtlGetCap, .-FtlGetCap
.align 1
.global FtlGetCapacity
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FtlGetCapacity, %function
FtlGetCapacity:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L493
- ldr r0, [r3, #2428]
+ ldr r3, .L487
+ ldr r0, [r3, #2432]
bx lr
-.L494:
+.L488:
.align 2
-.L493:
+.L487:
.word .LANCHOR0
.fnend
.size FtlGetCapacity, .-FtlGetCapacity
.align 1
.global ftl_get_density
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type ftl_get_density, %function
ftl_get_density:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L496
- ldr r0, [r3, #2428]
+ ldr r3, .L490
+ ldr r0, [r3, #2432]
bx lr
-.L497:
+.L491:
.align 2
-.L496:
+.L490:
.word .LANCHOR0
.fnend
.size ftl_get_density, .-ftl_get_density
.align 1
.global FtlGetLpn
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FtlGetLpn, %function
FtlGetLpn:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L499
- ldr r0, [r3, #2448]
+ ldr r3, .L493
+ ldr r0, [r3, #2452]
bx lr
-.L500:
+.L494:
.align 2
-.L499:
+.L493:
.word .LANCHOR0
.fnend
.size FtlGetLpn, .-FtlGetLpn
.align 1
.global FtlBbmMapBadBlock
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FtlBbmMapBadBlock, %function
FtlBbmMapBadBlock:
.fnstart
@@ -3390,47 +3566,50 @@
push {r0, r1, r2, r4, r5, r6, r7, lr}
.save {r4, r5, r6, r7, lr}
.pad #12
- mov r6, r0
- ldr r5, .L502
- ldrh r4, [r5, #2386]
- mov r1, r4
+ mov r5, r0
+ ldr r4, .L496
+ ldrh r7, [r4, #2388]
+ mov r1, r7
bl __aeabi_uidiv
- uxth r2, r0
- smulbb r3, r2, r4
- add r1, r5, r2, lsl #2
- ldr r4, [r1, #2480]
- movs r1, #1
- subs r3, r6, r3
- uxth r3, r3
- and r0, r3, #31
- lsrs r7, r3, #5
- lsls r1, r1, r0
- ldr r0, [r4, r7, lsl #2]
- orrs r1, r1, r0
- ldr r0, .L502+4
- str r1, [r4, r7, lsl #2]
- str r1, [sp]
- mov r1, r6
+ uxth r6, r0
+ mov r1, r7
+ mov r0, r5
+ bl __aeabi_uidivmod
+ add r2, r4, r6, lsl #2
+ uxth r3, r1
+ ldr r2, [r2, #2484]
+ 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, .L496+4
bl printk
- ldrh r3, [r5, #2458]
+ ldrh r3, [r4, #2462]
movs r0, #0
adds r3, r3, #1
- strh r3, [r5, #2458] @ movhi
+ strh r3, [r4, #2462] @ movhi
add sp, sp, #12
@ sp needed
pop {r4, r5, r6, r7, pc}
-.L503:
+.L497:
.align 2
-.L502:
+.L496:
.word .LANCHOR0
.word .LC2
.fnend
.size FtlBbmMapBadBlock, .-FtlBbmMapBadBlock
- .global __aeabi_uidivmod
.align 1
.global FtlBbmIsBadBlock
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FtlBbmIsBadBlock, %function
FtlBbmIsBadBlock:
.fnstart
@@ -3439,33 +3618,35 @@
push {r3, r4, r5, r6, r7, lr}
.save {r3, r4, r5, r6, r7, lr}
mov r7, r0
- ldr r5, .L505
- ldrh r6, [r5, #2386]
+ ldr r5, .L499
+ ldrh r6, [r5, #2388]
mov r1, r6
bl __aeabi_uidivmod
mov r0, r7
uxth r4, r1
mov r1, r6
bl __aeabi_uidiv
- lsrs r2, r4, #5
- and r4, r4, #31
uxth r0, r0
+ lsrs r2, r4, #5
add r5, r5, r0, lsl #2
- ldr r3, [r5, #2480]
+ and r4, r4, #31
+ ldr r3, [r5, #2484]
ldr r0, [r3, r2, lsl #2]
lsrs r0, r0, r4
and r0, r0, #1
pop {r3, r4, r5, r6, r7, pc}
-.L506:
+.L500:
.align 2
-.L505:
+.L499:
.word .LANCHOR0
.fnend
.size FtlBbmIsBadBlock, .-FtlBbmIsBadBlock
.align 1
.global FtlBbtInfoPrint
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FtlBbtInfoPrint, %function
FtlBbtInfoPrint:
.fnstart
@@ -3477,45 +3658,49 @@
.size FtlBbtInfoPrint, .-FtlBbtInfoPrint
.align 1
.global FtlBbtCalcTotleCnt
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FtlBbtCalcTotleCnt, %function
FtlBbtCalcTotleCnt:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
+ ldr r3, .L509
push {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
movs r5, #0
- ldr r4, .L516
- ldrh r6, [r4, #2386]
- ldrh r3, [r4, #2342]
mov r4, r5
- muls r6, r3, r6
-.L509:
+ ldrh r2, [r3, #2388]
+ ldrh r6, [r3, #2346]
+ muls r6, r2, r6
+.L503:
uxth r0, r5
cmp r0, r6
- bge .L515
- bl FtlBbmIsBadBlock
- cbz r0, .L510
- adds r4, r4, #1
- uxth r4, r4
-.L510:
- adds r5, r5, #1
- b .L509
-.L515:
+ blt .L505
mov r0, r4
pop {r4, r5, r6, pc}
-.L517:
+.L505:
+ bl FtlBbmIsBadBlock
+ cbz r0, .L504
+ adds r4, r4, #1
+ uxth r4, r4
+.L504:
+ adds r5, r5, #1
+ b .L503
+.L510:
.align 2
-.L516:
+.L509:
.word .LANCHOR0
.fnend
.size FtlBbtCalcTotleCnt, .-FtlBbtCalcTotleCnt
.align 1
.global V2P_block
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type V2P_block, %function
V2P_block:
.fnstart
@@ -3523,41 +3708,45 @@
@ frame_needed = 0, uses_anonymous_args = 0
push {r3, r4, r5, r6, r7, lr}
.save {r3, r4, r5, r6, r7, lr}
- mov r4, r1
- ldr r6, .L519
+ mov r5, r1
+ ldr r4, .L512
mov r7, r0
- ldrh r5, [r6, #2344]
- mov r1, r5
- bl __aeabi_uidivmod
- mov r0, r7
- smlabb r4, r4, r5, r1
- mov r1, r5
+ ldrh r6, [r4, #2348]
+ mov r1, r6
bl __aeabi_uidiv
- ldrh r3, [r6, #2386]
- smlabb r0, r3, r0, r4
+ ldrh r4, [r4, #2388]
+ smulbb r5, r6, r5
+ mov r1, r6
+ smulbb r4, r4, r0
+ mov r0, r7
+ bl __aeabi_uidivmod
+ adds r0, r5, r1
+ add r0, r0, r4
uxth r0, r0
pop {r3, r4, r5, r6, r7, pc}
-.L520:
+.L513:
.align 2
-.L519:
+.L512:
.word .LANCHOR0
.fnend
.size V2P_block, .-V2P_block
.align 1
.global P2V_plane
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type P2V_plane, %function
P2V_plane:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L522
+ ldr r3, .L515
push {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
mov r6, r0
- ldrh r1, [r3, #2386]
- ldrh r5, [r3, #2344]
+ ldrh r5, [r3, #2348]
+ ldrh r1, [r3, #2388]
bl __aeabi_uidiv
mov r1, r5
smulbb r4, r0, r5
@@ -3566,16 +3755,18 @@
add r1, r1, r4
uxth r0, r1
pop {r4, r5, r6, pc}
-.L523:
+.L516:
.align 2
-.L522:
+.L515:
.word .LANCHOR0
.fnend
.size P2V_plane, .-P2V_plane
.align 1
.global P2V_block_in_plane
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type P2V_block_in_plane, %function
P2V_block_in_plane:
.fnstart
@@ -3583,24 +3774,26 @@
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, lr}
.save {r4, lr}
- ldr r4, .L525
- ldrh r1, [r4, #2386]
+ ldr r4, .L518
+ ldrh r1, [r4, #2388]
bl __aeabi_uidivmod
uxth r0, r1
- ldrh r1, [r4, #2344]
+ ldrh r1, [r4, #2348]
bl __aeabi_uidiv
uxth r0, r0
pop {r4, pc}
-.L526:
+.L519:
.align 2
-.L525:
+.L518:
.word .LANCHOR0
.fnend
.size P2V_block_in_plane, .-P2V_block_in_plane
.align 1
.global ftl_cmp_data_ver
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type ftl_cmp_data_ver, %function
ftl_cmp_data_ver:
.fnstart
@@ -3608,14 +3801,14 @@
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
cmp r0, r1
- bls .L528
+ bls .L521
subs r0, r0, r1
cmp r0, #-2147483648
ite hi
movhi r0, #0
movls r0, #1
bx lr
-.L528:
+.L521:
subs r0, r1, r0
cmp r0, #-2147483648
ite ls
@@ -3626,51 +3819,57 @@
.size ftl_cmp_data_ver, .-ftl_cmp_data_ver
.align 1
.global FtlFreeSysBlkQueueEmpty
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FtlFreeSysBlkQueueEmpty, %function
FtlFreeSysBlkQueueEmpty:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L531
- ldrh r0, [r3, #2518]
+ ldr r3, .L524
+ ldrh r0, [r3, #2522]
clz r0, r0
lsrs r0, r0, #5
bx lr
-.L532:
+.L525:
.align 2
-.L531:
+.L524:
.word .LANCHOR0
.fnend
.size FtlFreeSysBlkQueueEmpty, .-FtlFreeSysBlkQueueEmpty
.align 1
.global FtlFreeSysBlkQueueFull
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FtlFreeSysBlkQueueFull, %function
FtlFreeSysBlkQueueFull:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L534
- ldrh r0, [r3, #2518]
+ ldr r3, .L527
+ ldrh r0, [r3, #2522]
sub r3, r0, #1024
rsbs r0, r3, #0
adcs r0, r0, r3
bx lr
-.L535:
+.L528:
.align 2
-.L534:
+.L527:
.word .LANCHOR0
.fnend
.size FtlFreeSysBlkQueueFull, .-FtlFreeSysBlkQueueFull
.align 1
.global FtlFreeSysBlkQueueIn
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FtlFreeSysBlkQueueIn, %function
FtlFreeSysBlkQueueIn:
.fnstart
@@ -3679,229 +3878,236 @@
push {r3, r4, r5, r6, r7, lr}
.save {r3, r4, r5, r6, r7, lr}
subs r3, r0, #1
+ uxth r3, r3
movw r2, #65533
mov r6, r0
- uxth r3, r3
cmp r3, r2
- bhi .L536
- ldr r4, .L545
- ldrh r3, [r4, #2518]
+ bhi .L529
+ ldr r4, .L538
+ ldrh r3, [r4, #2522]
cmp r3, #1024
- beq .L536
- cbz r1, .L538
- ldr r5, .L545+4
- ldr r3, [r5, #224]
- cbnz r3, .L538
+ beq .L529
+ cbz r1, .L531
+ ldr r5, .L538+4
+ ldr r3, [r5, #228]
+ cbnz r3, .L531
bl P2V_block_in_plane
- movs r1, #1
- lsls r3, r6, #10
- mov r2, r1
mov r7, r0
- ldr r0, [r5, #228]
+ ldr r0, [r5, #232]
+ lsls r3, r6, #10
+ movs r2, #1
+ mov r1, r2
str r3, [r0, #4]
bl FlashEraseBlocks
- ldr r2, [r5, #232]
+ ldr r2, [r5, #236]
ldrh r3, [r2, r7, lsl #1]
adds r3, r3, #1
strh r3, [r2, r7, lsl #1] @ movhi
- ldr r3, [r5, #236]
+ ldr r3, [r5, #240]
adds r3, r3, #1
- str r3, [r5, #236]
-.L538:
- ldrh r3, [r4, #2518]
+ str r3, [r5, #240]
+.L531:
+ ldrh r3, [r4, #2522]
adds r3, r3, #1
- strh r3, [r4, #2518] @ movhi
- ldrh r3, [r4, #2516]
+ strh r3, [r4, #2522] @ movhi
+ ldrh r3, [r4, #2520]
add r2, r4, r3, lsl #1
adds r3, r3, #1
ubfx r3, r3, #0, #10
- strh r3, [r4, #2516] @ movhi
- strh r6, [r2, #2520] @ movhi
-.L536:
+ strh r6, [r2, #2524] @ movhi
+ strh r3, [r4, #2520] @ movhi
+.L529:
pop {r3, r4, r5, r6, r7, pc}
-.L546:
+.L539:
.align 2
-.L545:
+.L538:
.word .LANCHOR0
.word .LANCHOR2
.fnend
.size FtlFreeSysBlkQueueIn, .-FtlFreeSysBlkQueueIn
.align 1
.global FtlFreeSysBLkSort
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FtlFreeSysBLkSort, %function
FtlFreeSysBLkSort:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L558
+ ldr r3, .L549
push {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
- ldrh r4, [r3, #268]
- ldr r3, .L558+4
- ldrh r2, [r3, #2518]
- cbz r2, .L547
+ ldrh r2, [r3, #2522]
+ cbz r2, .L540
+ ldr r2, .L549+4
movs r0, #0
- ldrh r1, [r3, #2514]
- ldrh r2, [r3, #2516]
- and r4, r4, #31
+ ldrh r1, [r3, #2518]
mov r6, r0
-.L549:
- uxth r5, r0
+ ldrh r5, [r2, #272]
+ ldrh r2, [r3, #2520]
+ and r5, r5, #31
+.L542:
+ uxth r4, r0
adds r0, r0, #1
cmp r5, r4
- bge .L557
- add r5, r3, r1, lsl #1
+ bgt .L543
+ cbz r6, .L540
+ strh r1, [r3, #2518] @ movhi
+ strh r2, [r3, #2520] @ movhi
+.L540:
+ pop {r4, r5, r6, pc}
+.L543:
+ add r4, r3, r1, lsl #1
adds r1, r1, #1
ubfx r1, r1, #0, #10
- ldrh r6, [r5, #2520]
- add r5, r3, r2, lsl #1
- strh r6, [r5, #2520] @ movhi
+ ldrh r6, [r4, #2524]
+ add r4, r3, r2, lsl #1
+ strh r6, [r4, #2524] @ movhi
movs r6, #1
add r2, r2, r6
ubfx r2, r2, #0, #10
- b .L549
-.L557:
- cbz r6, .L547
- strh r1, [r3, #2514] @ movhi
- strh r2, [r3, #2516] @ movhi
-.L547:
- pop {r4, r5, r6, pc}
-.L559:
+ b .L542
+.L550:
.align 2
-.L558:
- .word .LANCHOR2
+.L549:
.word .LANCHOR0
+ .word .LANCHOR2
.fnend
.size FtlFreeSysBLkSort, .-FtlFreeSysBLkSort
.align 1
.global FtlFreeSysBlkQueueOut
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FtlFreeSysBlkQueueOut, %function
FtlFreeSysBlkQueueOut:
.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}
- ldr r4, .L570
- ldr r6, .L570+4
+ push {r3, r4, r5, r6, r7, r8, r9, lr}
+ .save {r3, r4, r5, r6, r7, r8, r9, lr}
+ ldr r4, .L561
+ ldr r5, .L561+4
mov r7, r4
-.L561:
- ldrh r1, [r4, #2518]
- cbz r1, .L562
- ldrh r3, [r4, #2514]
+.L552:
+ ldrh r1, [r4, #2522]
+ cmp r1, #0
+ beq .L553
+ ldrh r3, [r4, #2518]
subs r1, r1, #1
- ldr r10, [r6, #224]
- strh r1, [r4, #2518] @ movhi
+ ldr r9, [r5, #228]
+ strh r1, [r4, #2522] @ movhi
add r2, r4, r3, lsl #1
adds r3, r3, #1
ubfx r3, r3, #0, #10
- ldr r8, .L570+4
- ldrh r5, [r2, #2520]
- strh r3, [r4, #2514] @ movhi
- cmp r10, #0
- bne .L563
- mov r0, r5
+ ldrh r6, [r2, #2524]
+ strh r3, [r4, #2518] @ movhi
+ cmp r9, #0
+ bne .L554
+ mov r0, r6
bl P2V_block_in_plane
- lsls r3, r5, #10
- mov r9, r0
- ldr r0, [r6, #228]
+ mov r8, r0
+ ldr r0, [r5, #232]
+ lsls r3, r6, #10
str r3, [r0, #4]
- ldrb r3, [r4, #144] @ zero_extendqisi2
- cbz r3, .L564
- mov r1, r10
+ ldrb r3, [r4, #152] @ zero_extendqisi2
+ cbz r3, .L555
movs r2, #1
+ mov r1, r9
bl FlashEraseBlocks
-.L564:
- movs r1, #1
- ldr r0, [r8, #228]
- mov r2, r1
+.L555:
+ movs r2, #1
+ ldr r0, [r5, #232]
+ mov r1, r2
bl FlashEraseBlocks
- ldr r2, [r8, #232]
- ldrh r3, [r2, r9, lsl #1]
+ ldr r2, [r5, #236]
+ ldrh r3, [r2, r8, lsl #1]
adds r3, r3, #1
- strh r3, [r2, r9, lsl #1] @ movhi
- ldr r3, [r8, #236]
+ strh r3, [r2, r8, lsl #1] @ movhi
+ ldr r3, [r5, #240]
adds r3, r3, #1
- str r3, [r8, #236]
- b .L563
-.L562:
- ldr r0, .L570+8
- bl printk
-.L565:
- b .L565
-.L563:
- subs r3, r5, #1
+ str r3, [r5, #240]
+.L554:
+ subs r3, r6, #1
movw r2, #65533
uxth r3, r3
cmp r3, r2
- bls .L566
- mov r1, r5
- ldrh r2, [r7, #2518]
- ldr r0, .L570+12
+ bls .L557
+ ldrh r2, [r7, #2522]
+ mov r1, r6
+ ldr r0, .L561+8
bl printk
- b .L561
-.L566:
- mov r0, r5
- pop {r4, r5, r6, r7, r8, r9, r10, pc}
-.L571:
+ b .L552
+.L553:
+ ldr r0, .L561+12
+ bl printk
+.L556:
+ b .L556
+.L557:
+ mov r0, r6
+ pop {r3, r4, r5, r6, r7, r8, r9, pc}
+.L562:
.align 2
-.L570:
+.L561:
.word .LANCHOR0
.word .LANCHOR2
- .word .LC3
.word .LC4
+ .word .LC3
.fnend
.size FtlFreeSysBlkQueueOut, .-FtlFreeSysBlkQueueOut
.align 1
.global test_node_in_list
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type test_node_in_list, %function
test_node_in_list:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L577
+ ldr r3, .L568
push {r4, r5, lr}
.save {r4, r5, lr}
movw r5, #65535
- ldr r4, [r3, #288]
ldr r2, [r0]
- ldr r3, .L577+4
- subs r0, r2, r4
- asrs r0, r0, #1
+ ldr r4, [r3, #292]
+ subs r3, r2, r4
+ asrs r0, r3, #1
+ ldr r3, .L568+4
muls r3, r0, r3
movs r0, #6
uxth r3, r3
-.L574:
- cmp r1, r3
- beq .L575
+.L565:
+ cmp r3, r1
+ beq .L566
ldrh r3, [r2]
cmp r3, r5
- beq .L576
+ beq .L567
mla r2, r0, r3, r4
- b .L574
-.L575:
+ b .L565
+.L566:
movs r0, #1
pop {r4, r5, pc}
-.L576:
+.L567:
movs r0, #0
pop {r4, r5, pc}
-.L578:
+.L569:
.align 2
-.L577:
+.L568:
.word .LANCHOR2
.word -1431655765
.fnend
.size test_node_in_list, .-test_node_in_list
.align 1
.global insert_data_list
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type insert_data_list, %function
insert_data_list:
.fnstart
@@ -3910,113 +4116,113 @@
push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.pad #12
- ldr r5, .L595
- ldrh r3, [r5, #2328]
+ ldr r5, .L585
+ ldrh r3, [r5, #2332]
cmp r3, r0
- bls .L581
+ bls .L572
+ ldr r2, .L585+4
movs r4, #6
- ldr r2, .L595+4
- movw r3, #65535
muls r4, r0, r4
- ldr lr, [r2, #288]
+ movw r3, #65535
+ ldr ip, [r2, #292]
mov r7, r2
- add r1, lr, r4
+ add r1, ip, r4
strh r3, [r1, #2] @ movhi
- strh r3, [lr, r4] @ movhi
- ldr r3, [r2, #292]
- cmp r3, #0
- beq .L594
- ldr r8, [r2, #296]
- lsl fp, r0, #1
- ldrh r2, [r1, #4]
- ldrh r6, [r8, r0, lsl #1]
- cbz r2, .L592
- muls r6, r2, r6
- b .L583
-.L592:
- mov r6, #-1
-.L583:
- ldr ip, [r7, #288]
- ldr r2, .L595+8
- rsb r9, ip, r3
- ldrh r5, [r5, #2328]
- asr r9, r9, #1
- str r5, [sp]
- mul r2, r2, r9
- ldr r9, [r7, #232]
- add r5, r9, fp
- str r5, [sp, #4]
- movs r5, #0
- uxth r2, r2
-.L590:
- adds r5, r5, #1
- ldr r7, [sp]
- uxth r5, r5
- cmp r5, r7
- bhi .L581
- cmp r0, r2
- beq .L581
- ldrh r7, [r3, #4]
- lsl r10, r2, #1
- ldrh fp, [r8, r2, lsl #1]
- cbz r7, .L593
- mul r7, r7, fp
- b .L585
-.L593:
- mov r7, #-1
-.L585:
- cmp r7, r6
- bne .L586
- ldr r7, [sp, #4]
- ldrh r10, [r9, r10]
- ldrh r7, [r7]
- cmp r10, r7
- bcc .L588
- b .L587
-.L586:
- bhi .L587
-.L588:
- ldrh r7, [r3]
- movw r10, #65535
- cmp r7, r10
- bne .L589
- strh r2, [r1, #2] @ movhi
- strh r0, [r3] @ movhi
- ldr r3, .L595+4
- str r1, [r3, #300]
- b .L581
-.L589:
- movs r3, #6
- mov r2, r7
- mla r3, r3, r7, ip
- b .L590
-.L587:
- strh r2, [lr, r4] @ movhi
- ldrh r2, [r3, #2]
- strh r2, [r1, #2] @ movhi
- ldr r2, .L595+4
- ldr r4, [r2, #292]
- cmp r3, r4
- bne .L591
- strh r0, [r3, #2] @ movhi
-.L594:
- str r1, [r2, #292]
- b .L581
-.L591:
- ldrh r4, [r3, #2]
- ldr r1, [r2, #288]
- movs r2, #6
- muls r2, r4, r2
- strh r0, [r1, r2] @ movhi
- strh r0, [r3, #2] @ movhi
-.L581:
+ strh r3, [ip, r4] @ movhi
+ ldr r3, [r2, #296]
+ cbnz r3, .L573
+ str r1, [r2, #296]
+.L572:
movs r0, #0
add sp, sp, #12
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L596:
+.L573:
+ ldrh r6, [r1, #4]
+ lsl r10, r0, #1
+ ldr r8, [r2, #300]
+ ldrh r2, [r8, r0, lsl #1]
+ cmp r6, #0
+ beq .L583
+ muls r6, r2, r6
+.L574:
+ ldr lr, [r7, #292]
+ ldrh r5, [r5, #2332]
+ sub r2, r3, lr
+ asr r9, r2, #1
+ ldr r2, .L585+8
+ str r5, [sp]
+ mul r2, r2, r9
+ ldr r9, [r7, #236]
+ add r5, r9, r10
+ uxth r2, r2
+ str r5, [sp, #4]
+ movs r5, #0
+.L581:
+ adds r5, r5, #1
+ ldr r7, [sp]
+ uxth r5, r5
+ cmp r5, r7
+ bhi .L572
+ cmp r0, r2
+ beq .L572
+ ldrh r7, [r3, #4]
+ lsl r10, r2, #1
+ ldrh fp, [r8, r2, lsl #1]
+ cbz r7, .L584
+ mul r7, r7, fp
+.L576:
+ cmp r6, r7
+ bne .L577
+ ldr r7, [sp, #4]
+ ldrh r10, [r9, r10]
+ ldrh r7, [r7]
+ cmp r10, r7
+ bcc .L579
+.L578:
+ strh r2, [ip, r4] @ movhi
+ ldr r4, .L585+4
+ ldrh r2, [r3, #2]
+ strh r2, [r1, #2] @ movhi
+ ldr r2, [r4, #296]
+ cmp r3, r2
+ ittte ne
+ ldrhne r5, [r3, #2]
+ movne r2, #6
+ ldrne r1, [r4, #292]
+ strheq r0, [r3, #2] @ movhi
+ iteee eq
+ streq r1, [r4, #296]
+ mulne r2, r2, r5
+ strhne r0, [r1, r2] @ movhi
+ strhne r0, [r3, #2] @ movhi
+ b .L572
+.L583:
+ mov r6, #-1
+ b .L574
+.L584:
+ mov r7, #-1
+ b .L576
+.L577:
+ bcc .L578
+.L579:
+ ldrh r7, [r3]
+ movw r10, #65535
+ cmp r7, r10
+ bne .L580
+ strh r2, [r1, #2] @ movhi
+ strh r0, [r3] @ movhi
+ ldr r3, .L585+4
+ str r1, [r3, #304]
+ b .L572
+.L580:
+ movs r3, #6
+ mov r2, r7
+ mla r3, r3, r7, lr
+ b .L581
+.L586:
.align 2
-.L595:
+.L585:
.word .LANCHOR0
.word .LANCHOR2
.word -1431655765
@@ -4024,8 +4230,10 @@
.size insert_data_list, .-insert_data_list
.align 1
.global INSERT_DATA_LIST
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type INSERT_DATA_LIST, %function
INSERT_DATA_LIST:
.fnstart
@@ -4034,21 +4242,23 @@
push {r3, lr}
.save {r3, lr}
bl insert_data_list
- ldr r2, .L598
- ldrh r3, [r2, #304]
+ ldr r2, .L588
+ ldrh r3, [r2, #308]
adds r3, r3, #1
- strh r3, [r2, #304] @ movhi
+ strh r3, [r2, #308] @ movhi
pop {r3, pc}
-.L599:
+.L589:
.align 2
-.L598:
+.L588:
.word .LANCHOR2
.fnend
.size INSERT_DATA_LIST, .-INSERT_DATA_LIST
.align 1
.global insert_free_list
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type insert_free_list, %function
insert_free_list:
.fnstart
@@ -4056,74 +4266,77 @@
@ 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 r5, #65535
- cmp r0, r5
- beq .L601
+ movw r4, #65535
+ cmp r0, r4
+ beq .L591
+ ldr r2, .L597
movs r1, #6
- ldr r2, .L608
- mul lr, r1, r0
- ldr ip, [r2, #288]
- mov r7, r2
- add r6, ip, lr
- strh r5, [r6, #2] @ movhi
- strh r5, [ip, lr] @ movhi
- ldr r3, [r2, #308]
- cbz r3, .L607
- ldr r8, [r2, #288]
- ldr r9, [r2, #232]
- rsb r4, r8, r3
- ldr r2, .L608+4
- asrs r4, r4, #1
- ldrh r10, [r9, r0, lsl #1]
- muls r4, r2, r4
- uxth r2, r4
-.L605:
- ldrh r4, [r9, r2, lsl #1]
- cmp r4, r10
- bcs .L603
- ldrh r4, [r3]
- cmp r4, r5
- bne .L604
- strh r2, [r6, #2] @ movhi
- strh r0, [r3] @ movhi
- b .L601
-.L604:
- mla r3, r1, r4, r8
- mov r2, r4
- b .L605
-.L603:
- ldrh r1, [r3, #2]
- strh r1, [r6, #2] @ movhi
- strh r2, [ip, lr] @ movhi
- ldr r1, [r7, #308]
- ldr r2, .L608
- cmp r3, r1
- bne .L606
- strh r0, [r3, #2] @ movhi
-.L607:
- str r6, [r2, #308]
- b .L601
-.L606:
- ldrh r4, [r3, #2]
- ldr r1, [r2, #288]
- movs r2, #6
- muls r2, r4, r2
- strh r0, [r1, r2] @ movhi
- strh r0, [r3, #2] @ movhi
-.L601:
+ mul r7, r1, r0
+ ldr ip, [r2, #292]
+ mov r5, r2
+ add r6, ip, r7
+ strh r4, [r6, #2] @ movhi
+ strh r4, [ip, r7] @ movhi
+ ldr r3, [r2, #312]
+ cbnz r3, .L592
+ str r6, [r2, #312]
+.L591:
movs r0, #0
pop {r4, r5, r6, r7, r8, r9, r10, pc}
-.L609:
+.L592:
+ ldr lr, [r2, #292]
+ ldr r8, [r2, #236]
+ sub r2, r3, lr
+ asr r10, r2, #1
+ ldr r2, .L597+4
+ ldrh r9, [r8, r0, lsl #1]
+ mul r2, r2, r10
+ mov r10, r4
+ uxth r2, r2
+.L595:
+ ldrh r4, [r8, r2, lsl #1]
+ cmp r4, r9
+ bcs .L593
+ ldrh r4, [r3]
+ cmp r4, r10
+ bne .L594
+ strh r2, [r6, #2] @ movhi
+ strh r0, [r3] @ movhi
+ b .L591
+.L594:
+ mla r3, r1, r4, lr
+ mov r2, r4
+ b .L595
+.L593:
+ ldrh r1, [r3, #2]
+ strh r1, [r6, #2] @ movhi
+ strh r2, [ip, r7] @ movhi
+ ldr r2, [r5, #312]
+ cmp r3, r2
+ ittte ne
+ ldrhne r4, [r3, #2]
+ movne r2, #6
+ ldrne r1, [r5, #292]
+ strheq r0, [r3, #2] @ movhi
+ iteee eq
+ streq r6, [r5, #312]
+ mulne r2, r2, r4
+ strhne r0, [r1, r2] @ movhi
+ strhne r0, [r3, #2] @ movhi
+ b .L591
+.L598:
.align 2
-.L608:
+.L597:
.word .LANCHOR2
.word -1431655765
.fnend
.size insert_free_list, .-insert_free_list
.align 1
.global INSERT_FREE_LIST
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type INSERT_FREE_LIST, %function
INSERT_FREE_LIST:
.fnstart
@@ -4132,21 +4345,23 @@
push {r3, lr}
.save {r3, lr}
bl insert_free_list
- ldr r2, .L611
- ldrh r3, [r2, #312]
+ ldr r2, .L600
+ ldrh r3, [r2, #316]
adds r3, r3, #1
- strh r3, [r2, #312] @ movhi
+ strh r3, [r2, #316] @ movhi
pop {r3, pc}
-.L612:
+.L601:
.align 2
-.L611:
+.L600:
.word .LANCHOR2
.fnend
.size INSERT_FREE_LIST, .-INSERT_FREE_LIST
.align 1
.global List_remove_node
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type List_remove_node, %function
List_remove_node:
.fnstart
@@ -4155,57 +4370,59 @@
push {r4, r5, r6, r7, lr}
.save {r4, r5, r6, r7, lr}
movs r4, #6
- ldr r7, .L618
- movw r6, #65535
+ ldr r7, .L607
muls r1, r4, r1
+ movw r6, #65535
ldr r3, [r0]
- ldr r2, [r7, #288]
+ ldr r2, [r7, #292]
adds r5, r2, r1
cmp r5, r3
ldrh r3, [r2, r1]
- bne .L614
+ bne .L603
cmp r3, r6
- ittee eq
+ iteet ne
+ mlane r3, r4, r3, r2
moveq r3, #0
streq r3, [r0]
- mlane r3, r4, r3, r2
strne r3, [r0]
it ne
strhne r6, [r3, #2] @ movhi
- b .L616
-.L614:
- cmp r3, r6
- ldrh r0, [r5, #2]
- bne .L617
- cmp r0, r3
- beq .L616
- muls r0, r4, r0
- strh r3, [r2, r0] @ movhi
- b .L616
-.L617:
- mla r3, r4, r3, r2
- strh r0, [r3, #2] @ movhi
- ldrh r6, [r5, #2]
- ldrh r0, [r2, r1]
- ldr r3, [r7, #288]
- muls r4, r6, r4
- strh r0, [r3, r4] @ movhi
-.L616:
+.L605:
movw r3, #65535
movs r0, #0
strh r3, [r2, r1] @ movhi
strh r3, [r5, #2] @ movhi
pop {r4, r5, r6, r7, pc}
-.L619:
+.L603:
+ cmp r3, r6
+ ldrh r0, [r5, #2]
+ bne .L606
+ cmp r0, r3
+ beq .L605
+ muls r4, r0, r4
+ strh r3, [r2, r4] @ movhi
+ b .L605
+.L606:
+ mla r3, r4, r3, r2
+ strh r0, [r3, #2] @ movhi
+ ldrh r3, [r5, #2]
+ ldrh r6, [r2, r1]
+ ldr r0, [r7, #292]
+ muls r3, r4, r3
+ strh r6, [r0, r3] @ movhi
+ b .L605
+.L608:
.align 2
-.L618:
+.L607:
.word .LANCHOR2
.fnend
.size List_remove_node, .-List_remove_node
.align 1
.global List_pop_index_node
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type List_pop_index_node, %function
List_pop_index_node:
.fnstart
@@ -4214,88 +4431,92 @@
push {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
ldr r3, [r0]
- cbz r3, .L626
- ldr r2, .L627
- movs r6, #6
+ cbz r3, .L615
+ ldr r2, .L616
movw r5, #65535
- ldr r4, [r2, #288]
-.L622:
- cbnz r1, .L623
-.L625:
- subs r4, r3, r4
- ldr r3, .L627+4
- asrs r4, r4, #1
+ movs r6, #6
+ ldr r2, [r2, #292]
+.L611:
+ cbnz r1, .L612
+.L614:
+ ldr r4, .L616+4
+ subs r3, r3, r2
+ asrs r3, r3, #1
muls r4, r3, r4
- uxth r4, r4
- mov r1, r4
+ uxth r1, r4
bl List_remove_node
- mov r0, r4
+ uxth r0, r4
pop {r4, r5, r6, pc}
-.L623:
- ldrh r2, [r3]
- cmp r2, r5
- beq .L625
+.L612:
+ ldrh r4, [r3]
+ cmp r4, r5
+ beq .L614
subs r1, r1, #1
- mla r3, r6, r2, r4
+ mla r3, r6, r4, r2
uxth r1, r1
- b .L622
-.L626:
+ b .L611
+.L615:
movw r0, #65535
pop {r4, r5, r6, pc}
-.L628:
+.L617:
.align 2
-.L627:
+.L616:
.word .LANCHOR2
.word -1431655765
.fnend
.size List_pop_index_node, .-List_pop_index_node
.align 1
.global List_get_gc_head_node
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type List_get_gc_head_node, %function
List_get_gc_head_node:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r2, .L636
+ ldr r2, .L624
push {r4, lr}
.save {r4, lr}
- ldr r3, [r2, #292]
- cbz r3, .L634
+ ldr r3, [r2, #296]
+ cbz r3, .L623
+ ldr r1, [r2, #292]
movs r4, #6
- ldr r1, [r2, #288]
movw r2, #65535
-.L631:
- cbz r0, .L632
+.L620:
+ cbz r0, .L621
ldrh r3, [r3]
cmp r3, r2
- beq .L634
+ bne .L622
+.L623:
+ movw r0, #65535
+ pop {r4, pc}
+.L622:
subs r0, r0, #1
mla r3, r4, r3, r1
uxth r0, r0
- b .L631
-.L634:
- movw r0, #65535
- pop {r4, pc}
-.L632:
+ b .L620
+.L621:
+ ldr r0, .L624+4
subs r3, r3, r1
- ldr r0, .L636+4
asrs r3, r3, #1
- muls r0, r3, r0
- uxth r0, r0
+ muls r3, r0, r3
+ uxth r0, r3
pop {r4, pc}
-.L637:
+.L625:
.align 2
-.L636:
+.L624:
.word .LANCHOR2
.word -1431655765
.fnend
.size List_get_gc_head_node, .-List_get_gc_head_node
.align 1
.global List_update_data_list
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type List_update_data_list, %function
List_update_data_list:
.fnstart
@@ -4304,79 +4525,81 @@
push {r3, r4, r5, r6, r7, lr}
.save {r3, r4, r5, r6, r7, lr}
mov r5, r0
- ldr r4, .L645
- ldrh r3, [r4, #316]
+ ldr r4, .L633
+ ldrh r3, [r4, #320]
cmp r3, r0
- beq .L639
- ldrh r3, [r4, #364]
+ beq .L627
+ ldrh r3, [r4, #368]
cmp r3, r0
- beq .L639
- ldrh r3, [r4, #412]
+ beq .L627
+ ldrh r3, [r4, #416]
cmp r3, r0
- beq .L639
+ beq .L627
movs r3, #6
- ldr r1, [r4, #288]
- ldr r2, [r4, #292]
+ ldr r1, [r4, #292]
muls r3, r0, r3
+ ldr r2, [r4, #296]
adds r0, r1, r3
cmp r0, r2
- beq .L639
- ldr r6, [r4, #296]
+ beq .L627
ldrh r2, [r0, #4]
- ldrh r7, [r6, r5, lsl #1]
- cbz r2, .L643
- muls r2, r7, r2
- b .L640
-.L643:
- mov r2, #-1
-.L640:
- ldrh r0, [r0, #2]
- movw r7, #65535
- cmp r0, r7
- bne .L641
+ ldr r7, [r4, #300]
+ ldrh r6, [r7, r5, lsl #1]
+ cbz r2, .L631
+ muls r2, r6, r2
+.L628:
+ ldrh r6, [r0, #2]
+ movw r0, #65535
+ cmp r6, r0
+ bne .L629
ldrh r3, [r1, r3]
- cmp r3, r0
- beq .L639
-.L641:
- movs r3, #6
- muls r3, r0, r3
- ldr r0, .L645+4
- asrs r7, r3, #1
- add r3, r3, r1
- muls r0, r7, r0
- ldrh r3, [r3, #4]
- ldrh r0, [r6, r0, lsl #1]
- cbz r3, .L644
- muls r3, r0, r3
- b .L642
-.L644:
- mov r3, #-1
-.L642:
+ cmp r3, r6
+ beq .L627
+.L629:
+ movs r0, #6
+ ldr r3, .L633+4
+ muls r0, r6, r0
+ asrs r6, r0, #1
+ add r1, r1, r0
+ muls r3, r6, r3
+ ldrh r6, [r7, r3, lsl #1]
+ ldrh r3, [r1, #4]
+ cbz r3, .L632
+ muls r3, r6, r3
+.L630:
cmp r2, r3
- bcs .L639
- ldr r0, .L645+8
+ bcs .L627
mov r1, r5
+ ldr r0, .L633+8
bl List_remove_node
- ldrh r3, [r4, #304]
+ ldrh r3, [r4, #308]
mov r0, r5
subs r3, r3, #1
- strh r3, [r4, #304] @ movhi
+ strh r3, [r4, #308] @ movhi
bl INSERT_DATA_LIST
-.L639:
+.L627:
movs r0, #0
pop {r3, r4, r5, r6, r7, pc}
-.L646:
+.L631:
+ mov r2, #-1
+ b .L628
+.L632:
+ mov r3, #-1
+ b .L630
+.L634:
.align 2
-.L645:
+.L633:
.word .LANCHOR2
.word -1431655765
- .word .LANCHOR2+292
+ .word .LANCHOR2+296
.fnend
.size List_update_data_list, .-List_update_data_list
.align 1
.global ftl_map_blk_alloc_new_blk
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type ftl_map_blk_alloc_new_blk, %function
ftl_map_blk_alloc_new_blk:
.fnstart
@@ -4384,57 +4607,59 @@
@ frame_needed = 0, uses_anonymous_args = 0
push {r3, r4, r5, r6, r7, lr}
.save {r3, r4, r5, r6, r7, lr}
- movs r3, #0
- ldrh r1, [r0, #10]
mov r4, r0
+ ldrh r1, [r0, #10]
+ movs r3, #0
ldr r2, [r0, #12]
-.L648:
+.L636:
uxth r5, r3
cmp r5, r1
- bcs .L651
+ bcs .L639
mov r7, r2
adds r3, r3, #1
ldrh r6, [r7]
adds r2, r2, #2
cmp r6, #0
- bne .L648
+ bne .L636
bl FtlFreeSysBlkQueueOut
- movw r2, #65533
subs r3, r0, #1
+ movw r2, #65533
+ uxth r3, r3
mov r1, r0
strh r0, [r7] @ movhi
- uxth r3, r3
cmp r3, r2
- bls .L649
- ldr r3, .L654
- ldr r0, .L654+4
- ldrh r2, [r3, #2518]
+ bls .L637
+ ldr r3, .L642
+ ldr r0, .L642+4
+ ldrh r2, [r3, #2522]
bl printk
-.L650:
- b .L650
-.L649:
+.L638:
+ b .L638
+.L637:
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
-.L651:
+.L639:
movs r0, #0
pop {r3, r4, r5, r6, r7, pc}
-.L655:
+.L643:
.align 2
-.L654:
+.L642:
.word .LANCHOR0
.word .LC5
.fnend
.size ftl_map_blk_alloc_new_blk, .-ftl_map_blk_alloc_new_blk
.align 1
.global select_l2p_ram_region
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type select_l2p_ram_region, %function
select_l2p_ram_region:
.fnstart
@@ -4443,244 +4668,247 @@
push {r4, r5, r6, r7, lr}
.save {r4, r5, r6, r7, lr}
movs r1, #0
- ldr r3, .L670
+ ldr r3, .L654
movs r4, #12
- ldr r7, .L670+4
movw r5, #65535
- ldrh r2, [r3, #2426]
- ldr r3, [r7, #460]
-.L657:
+ ldr r7, .L654+4
+ ldrh r2, [r3, #2430]
+ ldr r3, [r7, #464]
+.L645:
uxth r0, r1
cmp r0, r2
- bcs .L668
+ bcc .L647
+ mov r0, r2
+ movs r1, #0
+ mov r6, #-2147483648
+ mov ip, #12
+.L648:
+ uxth r5, r1
+ cmp r5, r2
+ bcc .L650
+ cmp r0, r2
+ bcc .L646
+ ldrh r7, [r7, #468]
+ mov r0, r2
+ movs r1, #0
+ mov r4, #-1
+.L651:
+ uxth r5, r1
+ cmp r5, r2
+ bcs .L646
+ ldr r6, [r3, #4]
+ cmp r4, r6
+ bls .L652
+ ldrh ip, [r3]
+ cmp ip, r7
+ itt ne
+ movne r4, r6
+ movne r0, r5
+.L652:
+ adds r1, r1, #1
+ adds r3, r3, #12
+ b .L651
+.L647:
adds r1, r1, #1
mla r6, r4, r1, r3
ldrh r6, [r6, #-12]
cmp r6, r5
- bne .L657
- b .L658
-.L668:
- movs r1, #0
- mov r6, #-2147483648
- mov lr, #12
- mov r0, r2
-.L660:
- uxth r5, r1
- cmp r5, r2
- bcs .L669
- mla r4, lr, r1, r3
+ bne .L645
+.L646:
+ pop {r4, r5, r6, r7, pc}
+.L650:
+ mla r4, ip, r1, r3
ldr r4, [r4, #4]
cmp r4, #0
- blt .L661
- cmp r4, r6
- itt cc
- movcc r6, r4
- movcc r0, r5
-.L661:
- adds r1, r1, #1
- b .L660
-.L669:
- cmp r0, r2
- bcc .L658
- ldrh r7, [r7, #464]
- movs r1, #0
- mov r4, #-1
- mov r0, r2
-.L663:
- uxth r5, r1
- cmp r5, r2
- bcs .L658
- ldr r6, [r3, #4]
+ blt .L649
cmp r6, r4
- bcs .L664
- ldrh lr, [r3]
- cmp lr, r7
- itt ne
- movne r4, r6
- movne r0, r5
-.L664:
+ itt hi
+ movhi r6, r4
+ movhi r0, r5
+.L649:
adds r1, r1, #1
- adds r3, r3, #12
- b .L663
-.L658:
- pop {r4, r5, r6, r7, pc}
-.L671:
+ b .L648
+.L655:
.align 2
-.L670:
+.L654:
.word .LANCHOR0
.word .LANCHOR2
.fnend
.size select_l2p_ram_region, .-select_l2p_ram_region
.align 1
.global FtlUpdateVaildLpn
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FtlUpdateVaildLpn, %function
FtlUpdateVaildLpn:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r1, .L679
+ ldr r1, .L662
push {r4, r5, lr}
.save {r4, r5, lr}
- ldrh r2, [r1, #466]
mov r3, r1
+ ldrh r2, [r1, #470]
cmp r2, #4
- bhi .L673
- cbnz r0, .L673
+ bhi .L657
+ cbnz r0, .L657
adds r2, r2, #1
- strh r2, [r1, #466] @ movhi
+ strh r2, [r1, #470] @ movhi
pop {r4, r5, pc}
-.L673:
- ldr r1, .L679+4
+.L657:
+ ldr r1, .L662+4
movs r2, #0
- strh r2, [r3, #466] @ movhi
+ strh r2, [r3, #470] @ movhi
movw r5, #65535
- str r2, [r3, #468]
- ldrh r1, [r1, #2328]
- ldr r2, [r3, #296]
+ str r2, [r3, #472]
+ ldrh r1, [r1, #2332]
+ ldr r2, [r3, #300]
add r1, r2, r1, lsl #1
-.L674:
+.L658:
cmp r2, r1
- beq .L678
+ bne .L660
+ pop {r4, r5, pc}
+.L660:
ldrh r4, [r2], #2
cmp r4, r5
ittt ne
- ldrne r0, [r3, #468]
+ ldrne r0, [r3, #472]
addne r0, r0, r4
- strne r0, [r3, #468]
- b .L674
-.L678:
- pop {r4, r5, pc}
-.L680:
+ strne r0, [r3, #472]
+ b .L658
+.L663:
.align 2
-.L679:
+.L662:
.word .LANCHOR2
.word .LANCHOR0
.fnend
.size FtlUpdateVaildLpn, .-FtlUpdateVaildLpn
.align 1
.global ftl_set_blk_mode
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type ftl_set_blk_mode, %function
ftl_set_blk_mode:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- lsrs r3, r0, #5
- ldr r2, .L684
- and r0, r0, #31
- uxth r3, r3
- cbz r1, .L682
- ldr r1, [r2, #472]
+ mov r3, r0
+ cbz r1, .L665
+ b ftl_set_blk_mode.part.9
+.L665:
+ ldr r2, .L666
+ lsrs r0, r0, #5
+ and r3, r3, #31
+ ldr r1, [r2, #32]
movs r2, #1
- lsls r2, r2, r0
- ldr r0, [r1, r3, lsl #2]
- orrs r2, r2, r0
- str r2, [r1, r3, lsl #2]
+ lsl r3, r2, r3
+ ldr r2, [r1, r0, lsl #2]
+ bic r2, r2, r3
+ str r2, [r1, r0, lsl #2]
bx lr
-.L682:
- ldr r1, [r2, #472]
- movs r2, #1
- lsls r2, r2, r0
- ldr r0, [r1, r3, lsl #2]
- bic r0, r0, r2
- str r0, [r1, r3, lsl #2]
- bx lr
-.L685:
+.L667:
.align 2
-.L684:
- .word .LANCHOR2
+.L666:
+ .word .LANCHOR0
.fnend
.size ftl_set_blk_mode, .-ftl_set_blk_mode
.align 1
.global ftl_get_blk_mode
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type ftl_get_blk_mode, %function
ftl_get_blk_mode:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L687
- lsrs r1, r0, #5
- ldr r2, [r3, #472]
- and r3, r0, #31
- ldr r0, [r2, r1, lsl #2]
- lsrs r0, r0, r3
+ ldr r3, .L669
+ lsrs r2, r0, #5
+ and r0, r0, #31
+ ldr r3, [r3, #32]
+ ldr r3, [r3, r2, lsl #2]
+ lsr r0, r3, r0
and r0, r0, #1
bx lr
-.L688:
+.L670:
.align 2
-.L687:
- .word .LANCHOR2
+.L669:
+ .word .LANCHOR0
.fnend
.size ftl_get_blk_mode, .-ftl_get_blk_mode
.align 1
.global ftl_sb_update_avl_pages
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type ftl_sb_update_avl_pages, %function
ftl_sb_update_avl_pages:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
movs r3, #0
- strh r3, [r0, #4] @ movhi
- ldr r3, .L698
push {r4, r5, r6, r7, lr}
.save {r4, r5, r6, r7, lr}
- adds r4, r2, #7
- ldrh r5, [r3, #2320]
+ strh r3, [r0, #4] @ movhi
+ add r4, r0, r2, lsl #1
movw r7, #65535
- add r4, r0, r4, lsl #1
-.L690:
+ ldr r3, .L678
+ adds r4, r4, #14
+ ldrh r5, [r3, #2324]
+.L672:
cmp r2, r5
- bcs .L696
+ bcc .L674
+ ldrh r3, [r3, #2390]
+ add r4, r0, #16
+ movw r6, #65535
+ subs r3, r3, #1
+ subs r1, r3, r1
+ movs r3, #0
+ uxth r1, r1
+.L675:
+ uxth r2, r3
+ cmp r5, r2
+ bhi .L677
+ pop {r4, r5, r6, r7, pc}
+.L674:
ldrh r6, [r4, #2]!
adds r2, r2, #1
- cmp r6, r7
uxth r2, r2
+ cmp r6, r7
ittt ne
ldrhne r6, [r0, #4]
addne r6, r6, #1
strhne r6, [r0, #4] @ movhi
- b .L690
-.L696:
- ldrh r6, [r3, #2388]
- add r4, r0, #14
- movs r2, #0
- movw r7, #65535
-.L693:
- uxth r3, r2
- cmp r3, r5
- bcs .L697
- ldrh r3, [r4, #2]!
- adds r2, r2, #1
- cmp r3, r7
- itttt ne
- ldrhne r3, [r0, #4]
- addne r3, r3, r6
- addne r3, r3, #-1
- subne r3, r3, r1
- it ne
- strhne r3, [r0, #4] @ movhi
- b .L693
-.L697:
- pop {r4, r5, r6, r7, pc}
-.L699:
+ b .L672
+.L677:
+ ldrh r2, [r4], #2
+ adds r3, r3, #1
+ cmp r2, r6
+ ittt ne
+ ldrhne r2, [r0, #4]
+ addne r2, r2, r1
+ strhne r2, [r0, #4] @ movhi
+ b .L675
+.L679:
.align 2
-.L698:
+.L678:
.word .LANCHOR0
.fnend
.size ftl_sb_update_avl_pages, .-ftl_sb_update_avl_pages
.align 1
.global make_superblock
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type make_superblock, %function
make_superblock:
.fnstart
@@ -4688,71 +4916,72 @@
@ 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 r3, #0
- ldr r6, .L713
- add r7, r0, #16
mov r4, r0
- mov r5, r3
- addw r10, r6, #2348
+ ldr r6, .L692
+ add r7, r0, #16
movw r9, #65535
- ldrh r8, [r6, #2320]
- strh r3, [r0, #4] @ movhi
- strb r3, [r0, #7]
-.L701:
+ movs r5, #0
+ strh r5, [r0, #4] @ movhi
+ ldrh r8, [r6, #2324]
+ addw r10, r6, #2350
+ strb r5, [r0, #7]
+.L681:
uxth r3, r5
- cmp r3, r8
- bcs .L712
- ldrb r0, [r10, r5] @ zero_extendqisi2
- ldrh r1, [r4]
- bl V2P_block
- strh r9, [r7] @ movhi
- mov fp, r0
- bl FtlBbmIsBadBlock
- cbnz r0, .L702
- strh fp, [r7] @ movhi
+ cmp r8, r3
+ bhi .L683
ldrb r3, [r4, #7] @ zero_extendqisi2
- adds r3, r3, #1
- strb r3, [r4, #7]
-.L702:
- adds r5, r5, #1
- adds r7, r7, #2
- b .L701
-.L712:
- ldrb r2, [r4, #7] @ zero_extendqisi2
- ldrh r3, [r6, #2388]
- smulbb r3, r2, r3
+ ldrh r2, [r6, #2390]
+ smulbb r3, r3, r2
strh r3, [r4, #4] @ movhi
movs r3, #0
strb r3, [r4, #9]
- ldr r3, [r6, #2244]
- cbz r3, .L704
- ldr r3, .L713+4
+ ldr r3, [r6, #2248]
+ cbz r3, .L684
+ ldr r3, .L692+4
ldrh r2, [r4]
- ldr r3, [r3, #232]
+ ldr r3, [r3, #236]
ldrh r3, [r3, r2, lsl #1]
cmp r3, #79
itt ls
movls r3, #1
strbls r3, [r4, #9]
-.L704:
- ldrb r3, [r6] @ zero_extendqisi2
- cbz r3, .L705
+.L684:
+ ldrb r3, [r6, #36] @ zero_extendqisi2
+ cbz r3, .L685
movs r3, #1
strb r3, [r4, #9]
-.L705:
+.L685:
movs r0, #0
pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L714:
+.L683:
+ ldrh r1, [r4]
+ ldrb r0, [r10, r5] @ zero_extendqisi2
+ bl V2P_block
+ strh r9, [r7] @ movhi
+ mov fp, r0
+ bl FtlBbmIsBadBlock
+ cbnz r0, .L682
+ strh fp, [r7] @ movhi
+ ldrb r3, [r4, #7] @ zero_extendqisi2
+ adds r3, r3, #1
+ strb r3, [r4, #7]
+.L682:
+ adds r5, r5, #1
+ adds r7, r7, #2
+ b .L681
+.L693:
.align 2
-.L713:
+.L692:
.word .LANCHOR0
.word .LANCHOR2
.fnend
.size make_superblock, .-make_superblock
.align 1
.global update_multiplier_value
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type update_multiplier_value, %function
update_multiplier_value:
.fnstart
@@ -4761,470 +4990,514 @@
push {r3, r4, r5, r6, r7, r8, r9, lr}
.save {r3, r4, r5, r6, r7, r8, r9, lr}
movs r5, #0
- ldr r3, .L724
+ ldr r6, .L700
mov r7, r0
mov r4, r5
- addw r6, r3, #2348
- ldrh r8, [r3, #2320]
- ldrh r9, [r3, #2388]
-.L716:
+ ldrh r8, [r6, #2324]
+ addw r6, r6, #2350
+ ldrh r9, [r6, #40]
+.L695:
uxth r3, r5
- cmp r3, r8
- bcs .L723
+ cmp r8, r3
+ bhi .L697
+ cbz r4, .L699
+ mov r1, r4
+ mov r0, #32768
+ bl __aeabi_idiv
+.L698:
+ ldr r3, .L700+4
+ movs r2, #6
+ ldr r3, [r3, #292]
+ mla r7, r2, r7, r3
+ strh r0, [r7, #4] @ movhi
+ movs r0, #0
+ pop {r3, r4, r5, r6, r7, r8, r9, pc}
+.L697:
mov r1, r7
ldrb r0, [r6, r5] @ zero_extendqisi2
bl V2P_block
bl FtlBbmIsBadBlock
- cbnz r0, .L717
+ cbnz r0, .L696
add r4, r4, r9
uxth r4, r4
-.L717:
+.L696:
adds r5, r5, #1
- b .L716
-.L723:
- cbz r4, .L719
- mov r1, r4
- mov r0, #32768
- bl __aeabi_idiv
- uxth r4, r0
-.L719:
- ldr r3, .L724+4
- movs r2, #6
- movs r0, #0
- ldr r3, [r3, #288]
- mla r7, r2, r7, r3
- strh r4, [r7, #4] @ movhi
- pop {r3, r4, r5, r6, r7, r8, r9, pc}
-.L725:
+ b .L695
+.L699:
+ mov r0, r4
+ b .L698
+.L701:
.align 2
-.L724:
+.L700:
.word .LANCHOR0
.word .LANCHOR2
.fnend
.size update_multiplier_value, .-update_multiplier_value
.align 1
.global GetFreeBlockMinEraseCount
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type GetFreeBlockMinEraseCount, %function
GetFreeBlockMinEraseCount:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r2, .L729
- ldr r0, [r2, #308]
- cbz r0, .L727
- ldr r3, [r2, #288]
+ ldr r2, .L705
+ ldr r0, [r2, #312]
+ cbz r0, .L703
+ ldr r3, [r2, #292]
subs r0, r0, r3
- ldr r3, .L729+4
+ ldr r3, .L705+4
asrs r0, r0, #1
muls r0, r3, r0
- ldr r3, [r2, #232]
+ ldr r3, [r2, #236]
uxth r0, r0
ldrh r0, [r3, r0, lsl #1]
-.L727:
+.L703:
bx lr
-.L730:
+.L706:
.align 2
-.L729:
+.L705:
.word .LANCHOR2
.word -1431655765
.fnend
.size GetFreeBlockMinEraseCount, .-GetFreeBlockMinEraseCount
.align 1
.global GetFreeBlockMaxEraseCount
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type GetFreeBlockMaxEraseCount, %function
GetFreeBlockMaxEraseCount:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r1, .L739
+ ldr r1, .L715
push {r4, r5, r6, r7, lr}
.save {r4, r5, r6, r7, lr}
- ldr r3, [r1, #308]
- cbz r3, .L737
- ldrh r2, [r1, #312]
+ ldr r3, [r1, #312]
+ cbz r3, .L713
+ ldrh r2, [r1, #316]
movs r6, #6
- ldr r4, [r1, #288]
+ ldr r4, [r1, #292]
movw r7, #65535
rsb r2, r2, r2, lsl #3
subs r3, r3, r4
- asrs r2, r2, #3
asrs r3, r3, #1
+ asrs r2, r2, #3
cmp r0, r2
it gt
uxthgt r0, r2
- ldr r2, .L739+4
+ ldr r2, .L715+4
muls r3, r2, r3
movs r2, #0
uxth r3, r3
-.L734:
+.L710:
uxth r5, r2
- cmp r5, r0
- bcs .L736
+ cmp r0, r5
+ bls .L712
mul r5, r6, r3
adds r2, r2, #1
ldrh r5, [r4, r5]
cmp r5, r7
- bne .L738
-.L736:
- ldr r2, [r1, #232]
+ bne .L714
+.L712:
+ ldr r2, [r1, #236]
ldrh r0, [r2, r3, lsl #1]
pop {r4, r5, r6, r7, pc}
-.L738:
+.L714:
mov r3, r5
- b .L734
-.L737:
+ b .L710
+.L713:
mov r0, r3
pop {r4, r5, r6, r7, pc}
-.L740:
+.L716:
.align 2
-.L739:
+.L715:
.word .LANCHOR2
.word -1431655765
.fnend
.size GetFreeBlockMaxEraseCount, .-GetFreeBlockMaxEraseCount
.align 1
.global FtlPrintInfo2buf
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FtlPrintInfo2buf, %function
FtlPrintInfo2buf:
.fnstart
@ args = 0, pretend = 0, frame = 16
@ 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 r6, r0
- ldr r8, .L751+240
- add r4, r6, #12
- ldr r1, .L751
- .pad #32
- sub sp, sp, #32
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+ .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+ mov r7, r0
+ ldr r4, .L729
+ add r5, r7, #12
+ .pad #36
+ sub sp, sp, #36
+ ldr r1, .L729+4
bl strcpy
- mov r0, r4
- ldr r1, .L751+4
- ldr r2, [r8, #116]
+ ldr r2, [r4, #124]
+ mov r0, r5
+ ldr r1, .L729+8
bl sprintf
- ldr r1, .L751+8
- ldr r2, [r8, #2404]
- add r4, r4, r0
- mov r0, r4
+ add r5, r5, r0
+ ldr r2, [r4, #2408]
+ mov r0, r5
+ ldr r1, .L729+12
bl sprintf
- ldr r3, .L751+12
- ldr r3, [r3, #504]
+ ldr r3, .L729+16
+ add r5, r5, r0
+ ldr r3, [r3, #500]
cmp r3, #1
- add r4, r4, r0
- bne .L747
- add r0, sp, #16
- add r1, sp, #20
- add r2, sp, #24
- add r3, sp, #28
- bl NandcGetTimeCfg
- mov r0, r4
- ldr r1, .L751+16
- ldr r7, .L751+20
- ldr r3, [sp, #24]
- ldr r2, [sp, #16]
- str r3, [sp]
- ldr r3, [sp, #28]
- str r3, [sp, #4]
- ldr r3, [sp, #20]
- bl sprintf
- ldr r1, .L751+24
- add r4, r4, r0
- add r5, r4, #10
- mov r0, r4
- bl strcpy
- mov r0, r5
- ldr r1, .L751+28
- ldr r2, [r8, #2448]
- bl sprintf
- ldr r1, .L751+32
- ldr r2, [r7, #468]
- add r5, r5, r0
- mov r0, r5
- bl sprintf
- ldr r1, .L751+36
- ldr r2, [r7, #476]
- add r5, r5, r0
- mov r0, r5
- bl sprintf
- ldr r1, .L751+40
- ldr r2, [r7, #480]
- add r5, r5, r0
- mov r0, r5
- bl sprintf
- ldr r1, .L751+44
- ldr r2, [r7, #484]
- add r5, r5, r0
- mov r0, r5
- bl sprintf
- ldr r1, .L751+48
- ldr r2, [r7, #488]
- add r5, r5, r0
- mov r0, r5
- bl sprintf
- ldr r1, .L751+52
- ldr r2, [r7, #492]
- add r5, r5, r0
- mov r0, r5
- bl sprintf
- ldr r1, .L751+56
- ldr r2, [r7, #496]
- add r5, r5, r0
- mov r0, r5
- bl sprintf
- ldr r2, [r7, #500]
- ldr r1, .L751+60
- lsrs r2, r2, #11
- add r5, r5, r0
- mov r0, r5
- bl sprintf
- ldr r2, [r7, #504]
- ldr r1, .L751+64
- lsrs r2, r2, #11
- add r5, r5, r0
- mov r0, r5
- bl sprintf
- ldr r1, .L751+68
- ldr r2, [r7, #508]
- add r5, r5, r0
- mov r0, r5
- bl sprintf
- ldr r1, .L751+72
- ldr r2, [r7, #512]
- add r5, r5, r0
- mov r0, r5
- bl sprintf
- add r5, r5, r0
- bl FtlBbtCalcTotleCnt
- ldr r1, .L751+76
- ldrh r2, [r8, #2458]
- mov r3, r0
- mov r0, r5
- bl sprintf
- ldr r1, .L751+80
- ldrh r2, [r7, #312]
- add r5, r5, r0
- mov r0, r5
- bl sprintf
- ldr r1, .L751+84
- ldr r2, [r7, #516]
- add r5, r5, r0
- mov r0, r5
- bl sprintf
- ldr r1, .L751+88
- ldr r2, [r7, #520]
- add r5, r5, r0
- mov r0, r5
- bl sprintf
- ldr r1, .L751+92
- ldr r2, [r7, #524]
- add r5, r5, r0
- mov r0, r5
- bl sprintf
- ldr r1, .L751+96
- ldr r2, [r7, #236]
- add r5, r5, r0
- mov r0, r5
- bl sprintf
- ldr r1, .L751+100
- ldr r2, [r7, #528]
- add r5, r5, r0
- mov r0, r5
- bl sprintf
- ldr r1, .L751+104
- ldr r2, [r7, #532]
- add r5, r5, r0
- mov r0, r5
- bl sprintf
- ldr r1, .L751+108
- ldrh r2, [r7, #270]
- add r5, r5, r0
- mov r0, r5
- bl sprintf
- ldr r1, .L751+112
- ldrh r2, [r7, #268]
- add r5, r5, r0
- mov r0, r5
- bl sprintf
- ldr r1, .L751+116
- ldr r2, [r8, #2428]
- add r5, r5, r0
- mov r0, r5
- bl sprintf
- ldr r1, .L751+120
- ldr r2, [r8, #2420]
- add r5, r5, r0
- mov r0, r5
- bl sprintf
- ldr r1, .L751+124
- ldr r2, [r8, #2316]
- add r5, r5, r0
- mov r0, r5
- bl sprintf
- ldr r1, .L751+128
- ldrh r2, [r8, #2518]
- add r5, r5, r0
- mov r0, r5
- bl sprintf
- ldr r1, .L751+132
- ldrh r2, [r8, #2328]
- add r5, r5, r0
- mov r0, r5
- bl sprintf
- ldr r1, .L751+136
- ldrh r2, [r7, #536]
- add r5, r5, r0
- mov r0, r5
- bl sprintf
- ldr r1, .L751+140
- ldr r2, [r8, #2332]
- add r5, r5, r0
- mov r0, r5
- bl sprintf
- ldr r1, .L751+144
- ldrh r2, [r7, #540]
- add r5, r5, r0
- mov r0, r5
- bl sprintf
- ldr r1, .L751+148
- ldrh r2, [r8, #2452]
- add r5, r5, r0
- mov r0, r5
- bl sprintf
- ldr r1, .L751+152
- ldrh r2, [r7, #318]
- add r5, r5, r0
- mov r0, r5
- bl sprintf
- ldr r1, .L751+156
- ldrb r2, [r7, #322] @ zero_extendqisi2
- add r5, r5, r0
- mov r0, r5
- bl sprintf
- ldr r1, .L751+160
- ldrh r2, [r7, #316]
- add r5, r5, r0
- mov r0, r5
- bl sprintf
- ldr r1, .L751+164
- ldrb r2, [r7, #324] @ zero_extendqisi2
- add r5, r5, r0
- mov r0, r5
- bl sprintf
- ldr r1, .L751+168
- ldrh r2, [r7, #320]
- add r5, r5, r0
- mov r0, r5
- bl sprintf
- ldr r3, [r7, #296]
- ldrh r2, [r7, #316]
- ldr r1, .L751+172
- ldrh r2, [r3, r2, lsl #1]
- add r5, r5, r0
- mov r0, r5
- bl sprintf
- ldr r1, .L751+176
- ldrh r2, [r7, #366]
- add r5, r5, r0
- mov r0, r5
- bl sprintf
- ldr r1, .L751+180
- ldrb r2, [r7, #370] @ zero_extendqisi2
- add r5, r5, r0
- mov r0, r5
- bl sprintf
- ldr r1, .L751+184
- ldrh r2, [r7, #364]
- add r5, r5, r0
- mov r0, r5
- bl sprintf
- ldr r1, .L751+188
- ldrb r2, [r7, #372] @ zero_extendqisi2
- add r5, r5, r0
- mov r0, r5
- bl sprintf
- ldr r1, .L751+192
- ldrh r2, [r7, #368]
- add r5, r5, r0
- mov r0, r5
- bl sprintf
- ldr r3, [r7, #296]
- ldrh r2, [r7, #364]
- ldr r1, .L751+196
- ldrh r2, [r3, r2, lsl #1]
- add r5, r5, r0
- mov r0, r5
- bl sprintf
- ldr r1, .L751+200
- ldrh r2, [r7, #414]
- add r5, r5, r0
- mov r0, r5
- bl sprintf
- ldr r1, .L751+204
- ldrb r2, [r7, #418] @ zero_extendqisi2
- add r5, r5, r0
- mov r0, r5
- bl sprintf
- ldr r1, .L751+208
- ldrh r2, [r7, #412]
- add r5, r5, r0
- mov r0, r5
- bl sprintf
- ldr r1, .L751+212
- ldrb r2, [r7, #420] @ zero_extendqisi2
- add r5, r5, r0
- mov r0, r5
- bl sprintf
- ldr r1, .L751+216
- ldrh r2, [r7, #416]
- add r5, r5, r0
- mov r0, r5
- bl sprintf
- ldr r1, .L751+220
- ldrh r2, [r7, #558]
- add r5, r5, r0
- mov r0, r5
- bl sprintf
- ldr r1, .L751+224
- ldrb r2, [r7, #562] @ zero_extendqisi2
- add r5, r5, r0
- mov r0, r5
- bl sprintf
- ldr r1, .L751+228
- ldrh r2, [r7, #556]
- add r5, r5, r0
- mov r0, r5
- bl sprintf
- ldr r1, .L751+232
- ldrb r2, [r7, #564] @ zero_extendqisi2
- add r5, r5, r0
- mov r0, r5
- bl sprintf
- ldr r1, .L751+236
- ldrh r2, [r7, #560]
- add r5, r5, r0
- mov r0, r5
- bl sprintf
- ldr r1, [r7, #692]
- ldr r3, [r8, #2244]
- ldr r2, [r7, #604]
- b .L752
-.L753:
+ beq .L718
+ subs r0, r5, r7
+.L717:
+ add sp, sp, #36
+ @ sp needed
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L730:
.align 2
-.L751:
+.L729:
+ .word .LANCHOR0
.word .LC6
.word .LC7
.word .LC8
.word .LANCHOR1
+.L718:
+ add r3, sp, #28
+ add r2, sp, #24
+ add r1, sp, #20
+ add r0, sp, #16
+ bl NandcGetTimeCfg
+ ldr r3, [sp, #28]
+ mov r0, r5
+ ldr r2, [sp, #16]
+ ldr r1, .L731
+ str r3, [sp, #4]
+ ldr r3, [sp, #24]
+ str r3, [sp]
+ ldr r3, [sp, #20]
+ bl sprintf
+ adds r6, r5, r0
+ ldr r1, .L731+4
+ ldr r5, .L731+8
+ mov r0, r6
+ adds r6, r6, #10
+ bl strcpy
+ ldr r2, [r4, #2452]
+ mov r0, r6
+ ldr r1, .L731+12
+ bl sprintf
+ add r6, r6, r0
+ ldr r2, [r5, #472]
+ ldr r1, .L731+16
+ mov r0, r6
+ bl sprintf
+ add r6, r6, r0
+ ldr r2, [r5, #476]
+ ldr r1, .L731+20
+ mov r0, r6
+ bl sprintf
+ add r6, r6, r0
+ ldr r2, [r5, #480]
+ ldr r1, .L731+24
+ mov r0, r6
+ bl sprintf
+ add r6, r6, r0
+ ldr r2, [r5, #484]
+ ldr r1, .L731+28
+ mov r0, r6
+ bl sprintf
+ add r6, r6, r0
+ ldr r2, [r5, #488]
+ ldr r1, .L731+32
+ mov r0, r6
+ bl sprintf
+ add r6, r6, r0
+ ldr r2, [r5, #492]
+ ldr r1, .L731+36
+ mov r0, r6
+ bl sprintf
+ add r6, r6, r0
+ ldr r2, [r5, #496]
+ ldr r1, .L731+40
+ mov r0, r6
+ bl sprintf
+ ldr r2, [r5, #500]
+ add r6, r6, r0
+ ldr r1, .L731+44
+ mov r0, r6
+ lsrs r2, r2, #11
+ bl sprintf
+ ldr r2, [r5, #504]
+ add r6, r6, r0
+ ldr r1, .L731+48
+ mov r0, r6
+ lsrs r2, r2, #11
+ bl sprintf
+ add r6, r6, r0
+ ldr r2, [r5, #508]
+ ldr r1, .L731+52
+ mov r0, r6
+ bl sprintf
+ add r6, r6, r0
+ ldr r2, [r5, #512]
+ ldr r1, .L731+56
+ mov r0, r6
+ bl sprintf
+ add r6, r6, r0
+ bl FtlBbtCalcTotleCnt
+ ldrh r2, [r4, #2462]
+ mov r3, r0
+ ldr r1, .L731+60
+ mov r0, r6
+ bl sprintf
+ add r6, r6, r0
+ ldrh r2, [r5, #316]
+ ldr r1, .L731+64
+ mov r0, r6
+ bl sprintf
+ add r6, r6, r0
+ ldr r2, [r5, #516]
+ ldr r1, .L731+68
+ mov r0, r6
+ bl sprintf
+ add r6, r6, r0
+ ldr r2, [r5, #520]
+ ldr r1, .L731+72
+ mov r0, r6
+ bl sprintf
+ add r6, r6, r0
+ ldr r2, [r5, #524]
+ ldr r1, .L731+76
+ mov r0, r6
+ bl sprintf
+ add r6, r6, r0
+ ldr r2, [r5, #240]
+ ldr r1, .L731+80
+ mov r0, r6
+ bl sprintf
+ add r6, r6, r0
+ ldr r2, [r5, #528]
+ ldr r1, .L731+84
+ mov r0, r6
+ bl sprintf
+ add r6, r6, r0
+ ldr r2, [r5, #532]
+ ldr r1, .L731+88
+ mov r0, r6
+ bl sprintf
+ add r6, r6, r0
+ ldrh r2, [r5, #274]
+ ldr r1, .L731+92
+ mov r0, r6
+ bl sprintf
+ add r6, r6, r0
+ ldrh r2, [r5, #272]
+ ldr r1, .L731+96
+ mov r0, r6
+ bl sprintf
+ add r6, r6, r0
+ ldr r2, [r4, #2432]
+ ldr r1, .L731+100
+ mov r0, r6
+ bl sprintf
+ add r6, r6, r0
+ ldr r2, [r4, #2424]
+ ldr r1, .L731+104
+ mov r0, r6
+ bl sprintf
+ add r6, r6, r0
+ ldr r2, [r4, #2320]
+ ldr r1, .L731+108
+ mov r0, r6
+ bl sprintf
+ add r6, r6, r0
+ ldrh r2, [r4, #2522]
+ ldr r1, .L731+112
+ mov r0, r6
+ bl sprintf
+ add r6, r6, r0
+ ldrh r2, [r4, #2332]
+ ldr r1, .L731+116
+ mov r0, r6
+ bl sprintf
+ add r6, r6, r0
+ ldrh r2, [r5, #536]
+ ldr r1, .L731+120
+ mov r0, r6
+ bl sprintf
+ add r6, r6, r0
+ ldr r2, [r4, #2336]
+ ldr r1, .L731+124
+ mov r0, r6
+ bl sprintf
+ add r6, r6, r0
+ ldrh r2, [r5, #540]
+ ldr r1, .L731+128
+ mov r0, r6
+ bl sprintf
+ add r6, r6, r0
+ ldrh r2, [r4, #2456]
+ ldr r1, .L731+132
+ mov r0, r6
+ bl sprintf
+ add r6, r6, r0
+ ldrh r2, [r5, #322]
+ ldr r1, .L731+136
+ mov r0, r6
+ bl sprintf
+ add r6, r6, r0
+ ldrb r2, [r5, #326] @ zero_extendqisi2
+ ldr r1, .L731+140
+ mov r0, r6
+ bl sprintf
+ add r6, r6, r0
+ ldrh r2, [r5, #320]
+ ldr r1, .L731+144
+ mov r0, r6
+ bl sprintf
+ add r6, r6, r0
+ ldrb r2, [r5, #328] @ zero_extendqisi2
+ ldr r1, .L731+148
+ mov r0, r6
+ bl sprintf
+ add r6, r6, r0
+ ldrh r2, [r5, #324]
+ ldr r1, .L731+152
+ mov r0, r6
+ bl sprintf
+ ldr r3, [r5, #300]
+ add r6, r6, r0
+ ldrh r2, [r5, #320]
+ mov r0, r6
+ ldr r1, .L731+156
+ ldrh r2, [r3, r2, lsl #1]
+ bl sprintf
+ add r6, r6, r0
+ ldrh r2, [r5, #370]
+ ldr r1, .L731+160
+ mov r0, r6
+ bl sprintf
+ add r6, r6, r0
+ ldrb r2, [r5, #374] @ zero_extendqisi2
+ ldr r1, .L731+164
+ mov r0, r6
+ bl sprintf
+ add r6, r6, r0
+ ldrh r2, [r5, #368]
+ ldr r1, .L731+168
+ mov r0, r6
+ bl sprintf
+ add r6, r6, r0
+ ldrb r2, [r5, #376] @ zero_extendqisi2
+ ldr r1, .L731+172
+ mov r0, r6
+ bl sprintf
+ add r6, r6, r0
+ ldrh r2, [r5, #372]
+ ldr r1, .L731+176
+ mov r0, r6
+ bl sprintf
+ ldr r3, [r5, #300]
+ add r6, r6, r0
+ ldrh r2, [r5, #368]
+ mov r0, r6
+ ldr r1, .L731+180
+ ldrh r2, [r3, r2, lsl #1]
+ bl sprintf
+ add r6, r6, r0
+ ldrh r2, [r5, #418]
+ ldr r1, .L731+184
+ mov r0, r6
+ bl sprintf
+ add r6, r6, r0
+ ldrb r2, [r5, #422] @ zero_extendqisi2
+ ldr r1, .L731+188
+ mov r0, r6
+ bl sprintf
+ add r6, r6, r0
+ ldrh r2, [r5, #416]
+ ldr r1, .L731+192
+ mov r0, r6
+ bl sprintf
+ add r6, r6, r0
+ ldrb r2, [r5, #424] @ zero_extendqisi2
+ ldr r1, .L731+196
+ mov r0, r6
+ bl sprintf
+ add r6, r6, r0
+ ldrh r2, [r5, #420]
+ ldr r1, .L731+200
+ mov r0, r6
+ bl sprintf
+ add r6, r6, r0
+ ldrh r2, [r5, #558]
+ ldr r1, .L731+204
+ mov r0, r6
+ bl sprintf
+ add r6, r6, r0
+ ldrb r2, [r5, #562] @ zero_extendqisi2
+ ldr r1, .L731+208
+ mov r0, r6
+ bl sprintf
+ add r6, r6, r0
+ ldrh r2, [r5, #556]
+ ldr r1, .L731+212
+ mov r0, r6
+ bl sprintf
+ add r6, r6, r0
+ ldrb r2, [r5, #564] @ zero_extendqisi2
+ ldr r1, .L731+216
+ mov r0, r6
+ bl sprintf
+ add r6, r6, r0
+ ldrh r2, [r5, #560]
+ ldr r1, .L731+220
+ mov r0, r6
+ bl sprintf
+ ldr r3, [r5, #680]
+ add r6, r6, r0
+ ldr r1, [r5, #1116]
+ mov r0, r6
+ ldr r2, [r4, #2248]
+ str r3, [sp, #4]
+ ldr r3, [r5, #688]
+ orr r2, r2, r1, lsl #8
+ ldr r1, .L731+224
+ str r3, [sp]
+ ldr r3, [r5, #684]
+ bl sprintf
+ adds r4, r6, r0
+ ldr r2, [r5, #676]
+ ldr r1, .L731+228
+ mov r0, r4
+ bl sprintf
+ add r4, r4, r0
+ ldr r2, [r5, #700]
+ ldr r1, .L731+232
+ mov r0, r4
+ bl sprintf
+ add r4, r4, r0
+ ldrh r2, [r5, #1120]
+ ldr r1, .L731+236
+ mov r0, r4
+ bl sprintf
+ add r4, r4, r0
+ ldrh r2, [r5, #1122]
+ b .L732
+.L733:
+ .align 2
+.L731:
.word .LC9
- .word .LANCHOR2
.word .LC10
+ .word .LANCHOR2
.word .LC11
.word .LC12
.word .LC13
@@ -5278,161 +5551,137 @@
.word .LC61
.word .LC62
.word .LC63
- .word .LANCHOR0
-.L752:
- orr r2, r3, r2, lsl #8
- str r1, [sp]
- add r5, r5, r0
- ldr r1, [r7, #684]
- mov r0, r5
- str r1, [sp, #4]
- ldr r3, [r7, #688]
- ldr r1, .L754
- bl sprintf
- ldr r1, .L754+4
- ldr r2, [r7, #680]
- add r5, r5, r0
- mov r0, r5
- bl sprintf
- ldr r1, .L754+8
- ldr r2, [r7, #704]
- adds r4, r5, r0
- mov r0, r4
- bl sprintf
- ldr r1, .L754+12
- ldrh r2, [r7, #1120]
- add r4, r4, r0
- mov r0, r4
- bl sprintf
- ldr r1, .L754+16
- ldrh r2, [r7, #1122]
- add r4, r4, r0
- mov r0, r4
- bl sprintf
- ldr r1, .L754+20
- ldr r2, [r7, #1124]
- add r4, r4, r0
- mov r0, r4
- bl sprintf
- ldr r1, .L754+24
- ldrh r2, [r7, #1128]
- add r4, r4, r0
- mov r0, r4
- bl sprintf
- add r4, r4, r0
- bl GetFreeBlockMinEraseCount
- ldr r1, .L754+28
- mov r2, r0
- mov r0, r4
- bl sprintf
- add r4, r4, r0
- ldrh r0, [r7, #312]
- bl GetFreeBlockMaxEraseCount
- ldr r1, .L754+32
- mov r2, r0
- mov r0, r4
- bl sprintf
- ldrh r3, [r7, #556]
- movw r2, #65535
- cmp r3, r2
- add r4, r4, r0
- beq .L744
- ldr r2, [r7, #296]
- mov r0, r4
- ldr r1, .L754+36
- ldrh r2, [r2, r3, lsl #1]
- bl sprintf
- add r4, r4, r0
-.L744:
- movs r0, #0
- movs r5, #0
- bl List_get_gc_head_node
- mov r9, #6
- movw r10, #65535
- uxth r3, r0
-.L746:
- cmp r3, r10
- beq .L745
- ldr r2, [r7, #296]
- mov r0, r4
- mul r8, r9, r3
- ldr r1, .L754+40
- ldrh r2, [r2, r3, lsl #1]
- str r2, [sp]
- ldr r2, [r7, #288]
- add r2, r2, r8
- ldrh r2, [r2, #4]
- str r2, [sp, #4]
- ldr r2, [r7, #232]
- ldrh r2, [r2, r3, lsl #1]
- str r2, [sp, #8]
- mov r2, r5
- bl sprintf
- adds r5, r5, #1
- ldr r3, [r7, #288]
- cmp r5, #16
- ldrh r3, [r3, r8]
- add r4, r4, r0
- bne .L746
-.L745:
- ldr r2, [r7, #288]
- movs r5, #0
- ldr r3, [r7, #308]
- mov r9, #6
- movw r10, #65535
- subs r3, r3, r2
- ldr r2, .L754+44
- asrs r3, r3, #1
- muls r3, r2, r3
- uxth r3, r3
-.L748:
- cmp r3, r10
- beq .L747
- mul r8, r9, r3
- ldr r2, [r7, #288]
- mov r0, r4
- ldr r1, .L754+48
- add r2, r2, r8
- ldrh r2, [r2, #4]
- str r2, [sp]
- ldr r2, [r7, #232]
- ldrh r2, [r2, r3, lsl #1]
- str r2, [sp, #4]
- mov r2, r5
- bl sprintf
- adds r5, r5, #1
- ldr r3, [r7, #288]
- cmp r5, #4
- ldrh r3, [r3, r8]
- add r4, r4, r0
- bne .L748
-.L747:
- subs r0, r4, r6
- add sp, sp, #32
- @ sp needed
- pop {r4, r5, r6, r7, r8, r9, r10, pc}
-.L755:
- .align 2
-.L754:
.word .LC64
.word .LC65
.word .LC66
.word .LC67
+.L732:
+ ldr r1, .L734
+ mov r0, r4
+ bl sprintf
+ add r4, r4, r0
+ ldr r2, [r5, #1124]
+ ldr r1, .L734+4
+ mov r0, r4
+ bl sprintf
+ add r4, r4, r0
+ ldrh r2, [r5, #1128]
+ ldr r1, .L734+8
+ mov r0, r4
+ bl sprintf
+ add r4, r4, r0
+ bl GetFreeBlockMinEraseCount
+ ldr r1, .L734+12
+ mov r2, r0
+ mov r0, r4
+ bl sprintf
+ add r4, r4, r0
+ ldrh r0, [r5, #316]
+ bl GetFreeBlockMaxEraseCount
+ ldr r1, .L734+16
+ mov r2, r0
+ mov r0, r4
+ bl sprintf
+ ldrh r3, [r5, #556]
+ movw r2, #65535
+ add r4, r4, r0
+ cmp r3, r2
+ beq .L720
+ ldr r2, [r5, #300]
+ mov r0, r4
+ ldr r1, .L734+20
+ ldrh r2, [r2, r3, lsl #1]
+ bl sprintf
+ add r4, r4, r0
+.L720:
+ movs r0, #0
+ ldr r9, .L734+28
+ bl List_get_gc_head_node
+ uxth r3, r0
+ movs r6, #0
+ movw fp, #65535
+ mov r10, #6
+.L722:
+ cmp r3, fp
+ beq .L721
+ ldr r2, [r5, #236]
+ mul r8, r10, r3
+ mov r0, r4
+ mov r1, r9
+ ldrh r2, [r2, r3, lsl #1]
+ str r2, [sp, #8]
+ ldr r2, [r5, #292]
+ add r2, r2, r8
+ ldrh r2, [r2, #4]
+ str r2, [sp, #4]
+ ldr r2, [r5, #300]
+ ldrh r2, [r2, r3, lsl #1]
+ str r2, [sp]
+ mov r2, r6
+ bl sprintf
+ adds r6, r6, #1
+ ldr r3, [r5, #292]
+ cmp r6, #16
+ add r4, r4, r0
+ ldrh r3, [r3, r8]
+ bne .L722
+.L721:
+ ldr r2, [r5, #292]
+ movs r6, #0
+ ldr r3, [r5, #312]
+ movw r9, #65535
+ ldr fp, .L734+32
+ mov r10, #6
+ subs r3, r3, r2
+ asrs r2, r3, #1
+ ldr r3, .L734+24
+ muls r3, r2, r3
+ uxth r3, r3
+.L724:
+ cmp r3, r9
+ beq .L723
+ ldr r2, [r5, #236]
+ mul r8, r10, r3
+ mov r0, r4
+ mov r1, fp
+ ldrh r2, [r2, r3, lsl #1]
+ str r2, [sp, #4]
+ ldr r2, [r5, #292]
+ add r2, r2, r8
+ ldrh r2, [r2, #4]
+ str r2, [sp]
+ mov r2, r6
+ adds r6, r6, #1
+ bl sprintf
+ cmp r6, #4
+ add r4, r4, r0
+ beq .L723
+ ldr r3, [r5, #292]
+ ldrh r3, [r3, r8]
+ b .L724
+.L723:
+ subs r0, r4, r7
+ b .L717
+.L735:
+ .align 2
+.L734:
.word .LC68
.word .LC69
.word .LC70
.word .LC71
.word .LC72
.word .LC73
- .word .LC74
.word -1431655765
+ .word .LC74
.word .LC75
.fnend
.size FtlPrintInfo2buf, .-FtlPrintInfo2buf
.align 1
.global ftl_proc_ftl_read
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type ftl_proc_ftl_read, %function
ftl_proc_ftl_read:
.fnstart
@@ -5441,8 +5690,8 @@
push {r3, r4, r5, lr}
.save {r3, r4, r5, lr}
mov r5, r0
- ldr r1, .L757
- ldr r2, .L757+4
+ ldr r2, .L737
+ ldr r1, .L737+4
bl sprintf
adds r4, r5, r0
mov r0, r4
@@ -5450,17 +5699,19 @@
add r0, r0, r4
subs r0, r0, r5
pop {r3, r4, r5, pc}
-.L758:
+.L738:
.align 2
-.L757:
+.L737:
.word .LC76
.word .LC77
.fnend
.size ftl_proc_ftl_read, .-ftl_proc_ftl_read
.align 1
.global GetSwlReplaceBlock
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type GetSwlReplaceBlock, %function
GetSwlReplaceBlock:
.fnstart
@@ -5470,500 +5721,505 @@
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.pad #28
sub sp, sp, #28
- ldr r4, .L787
+ ldr r4, .L765
ldr r2, [r4, #524]
ldr r3, [r4, #532]
cmp r2, r3
- bcs .L760
- ldr r2, .L787+4
+ bcs .L740
+ ldr r5, .L765+4
movs r3, #0
- ldr r0, [r4, #232]
+ ldr r0, [r4, #236]
str r3, [r4, #516]
- ldrh r1, [r2, #2328]
- mov r5, r2
-.L761:
+ ldrh r1, [r5, #2332]
+.L741:
cmp r3, r1
- bcs .L786
- ldrh r6, [r0, r3, lsl #1]
- adds r3, r3, #1
- ldr r2, [r4, #516]
- add r2, r2, r6
- str r2, [r4, #516]
- b .L761
-.L786:
+ bcc .L742
ldr r6, [r4, #516]
mov r0, r6
bl __aeabi_uidiv
- ldrh r1, [r5, #2380]
str r0, [r4, #524]
ldr r0, [r4, #520]
+ ldrh r1, [r5, #2382]
subs r0, r6, r0
bl __aeabi_uidiv
str r0, [r4, #516]
- b .L763
-.L760:
+.L743:
+ ldr r6, [r4, #532]
+ ldr r7, [r4, #524]
+ add r3, r6, #256
+ cmp r3, r7
+ bls .L748
+ ldr r2, [r4, #528]
+ add r3, r6, #768
+ cmp r3, r2
+ bls .L748
+ ldr r3, .L765+4
+ ldr r3, [r3, #2248]
+ cbnz r3, .L749
+.L751:
+ movw r5, #65535
+.L750:
+ mov r0, r5
+ add sp, sp, #28
+ @ sp needed
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L742:
+ ldrh r2, [r0, r3, lsl #1]
+ adds r3, r3, #1
+ ldr r6, [r4, #516]
+ add r2, r2, r6
+ str r2, [r4, #516]
+ b .L741
+.L740:
ldr r3, [r4, #528]
cmp r2, r3
- bls .L763
- ldr r0, .L787+4
+ bls .L743
+ ldr r0, .L765+4
adds r3, r3, #1
str r3, [r4, #528]
movs r3, #0
-.L765:
- ldrh r2, [r0, #2328]
+.L745:
+ ldrh r2, [r0, #2332]
cmp r3, r2
- bcs .L763
- ldr r1, [r4, #232]
+ bcs .L743
+ ldr r1, [r4, #236]
ldrh r2, [r1, r3, lsl #1]
adds r2, r2, #1
strh r2, [r1, r3, lsl #1] @ movhi
adds r3, r3, #1
- b .L765
-.L763:
- ldr r6, [r4, #532]
- ldr r8, [r4, #524]
- add r3, r6, #256
- cmp r3, r8
- bls .L768
- ldr r2, .L787
- add r3, r6, #768
- ldr r2, [r2, #528]
- cmp r3, r2
- bls .L768
- ldr r3, .L787+4
- ldr r3, [r3, #2244]
- cbnz r3, .L769
-.L771:
- movw r0, #65535
- b .L770
-.L769:
+ b .L745
+.L749:
cmp r6, #40
- bhi .L771
-.L768:
- ldrh r0, [r4, #312]
+ bhi .L751
+.L748:
+ ldrh r0, [r4, #316]
add r0, r0, r0, lsl #1
ubfx r0, r0, #2, #16
bl GetFreeBlockMaxEraseCount
add r3, r6, #64
- cmp r0, r3
mov r9, r0
- bcs .L772
+ cmp r0, r3
+ bcs .L752
cmp r6, #40
- bhi .L771
-.L772:
- ldr r3, [r4, #292]
- ldr r2, .L787
+ bhi .L751
+.L752:
+ ldr r3, [r4, #296]
cmp r3, #0
- beq .L771
- ldr r1, .L787+4
- movw r7, #65535
- ldr r0, [r2, #288]
- mov ip, #6
- ldr r10, [r2, #232]
- mov r5, r7
- ldrh r1, [r1, #2328]
- mov lr, r7
- str r1, [sp, #20]
- movs r1, #0
-.L773:
- ldrh r2, [r3]
- cmp r2, lr
- str r2, [sp, #16]
- beq .L775
- adds r1, r1, #1
- ldr r2, [sp, #20]
- uxth r1, r1
- cmp r1, r2
- bhi .L771
- ldrh fp, [r3, #4]
- cmp fp, #0
- beq .L774
- subs r3, r3, r0
- ldr r2, .L787+8
- asrs r3, r3, #1
- muls r3, r2, r3
- uxth r3, r3
- ldrh fp, [r10, r3, lsl #1]
- cmp fp, r6
- bls .L779
- cmp fp, r7
- itt cc
- movcc r7, fp
- movcc r5, r3
-.L774:
- ldr r3, [sp, #16]
- mla r3, ip, r3, r0
- b .L773
-.L779:
- mov r5, r3
-.L775:
+ beq .L751
+ ldr r2, .L765+4
+ movw r1, #65535
+ ldr lr, [r4, #292]
+ movs r0, #0
+ ldr r8, [r4, #236]
+ mov r10, r1
+ ldrh r2, [r2, #2332]
+ mov fp, #6
+ str r2, [sp, #20]
+ mov r2, r1
+.L753:
+ ldrh ip, [r3]
+ cmp ip, r10
+ bne .L756
+ mov r5, r2
+.L755:
movw r3, #65535
cmp r5, r3
- beq .L771
- ldrh fp, [r10, r5, lsl #1]
- lsls r3, r5, #1
- cmp fp, r6
- bls .L777
- str r3, [sp, #16]
+ beq .L751
+ ldrh r10, [r8, r5, lsl #1]
+ lsl fp, r5, #1
+ cmp r6, r10
+ bcs .L757
bl GetFreeBlockMinEraseCount
- ldr r3, [sp, #16]
- cmp r0, r6
- it hi
- strhi r7, [r4, #532]
-.L777:
- cmp fp, r8
- bcs .L771
- add r2, fp, #128
- cmp r9, r2
- ble .L771
- add r2, fp, #256
- cmp r2, r8
- bcc .L778
- ldr r2, [r4, #528]
- add fp, fp, #768
- cmp fp, r2
- bcs .L771
-.L778:
- ldr r2, [r4, #296]
- mov r1, r5
- ldr r0, .L787+12
- ldrh r2, [r2, r3]
- str r2, [sp]
- mov r2, r8
- ldrh r3, [r10, r3]
+ cmp r6, r0
+ it cc
+ strcc r1, [r4, #532]
+.L757:
+ cmp r7, r10
+ bls .L751
+ add r3, r10, #128
+ cmp r9, r3
+ ble .L751
+ add r3, r10, #256
+ cmp r7, r3
+ bhi .L758
+ ldr r3, [r4, #528]
+ add r10, r10, #768
+ cmp r10, r3
+ bcs .L751
+.L758:
str r9, [sp, #8]
+ mov r2, r7
+ ldrh r3, [r8, fp]
+ mov r1, r5
+ ldr r0, .L765+8
str r3, [sp, #4]
+ ldr r3, [r4, #300]
+ ldrh r3, [r3, fp]
+ str r3, [sp]
ldr r3, [r4, #528]
bl printk
- mov r0, r5
movs r3, #1
str r3, [r4, #1132]
-.L770:
- add sp, sp, #28
- @ sp needed
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L788:
+ b .L750
+.L756:
+ adds r0, r0, #1
+ ldr r5, [sp, #20]
+ uxth r0, r0
+ cmp r0, r5
+ bhi .L751
+ ldrh r5, [r3, #4]
+ cbz r5, .L754
+ ldr r5, .L765+12
+ sub r3, r3, lr
+ asrs r3, r3, #1
+ muls r3, r5, r3
+ uxth r5, r3
+ ldrh r3, [r8, r5, lsl #1]
+ cmp r6, r3
+ bcs .L755
+ cmp r1, r3
+ itt hi
+ movhi r1, r3
+ movhi r2, r5
+.L754:
+ mla r3, fp, ip, lr
+ b .L753
+.L766:
.align 2
-.L787:
+.L765:
.word .LANCHOR2
.word .LANCHOR0
- .word -1431655765
.word .LC78
+ .word -1431655765
.fnend
.size GetSwlReplaceBlock, .-GetSwlReplaceBlock
.align 1
.global free_data_superblock
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type free_data_superblock, %function
free_data_superblock:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
movw r2, #65535
- cmp r0, r2
push {r3, lr}
.save {r3, lr}
- beq .L790
- ldr r2, .L791
+ cmp r0, r2
+ beq .L768
+ ldr r2, .L769
movs r1, #0
- ldr r2, [r2, #296]
+ ldr r2, [r2, #300]
strh r1, [r2, r0, lsl #1] @ movhi
bl INSERT_FREE_LIST
-.L790:
+.L768:
movs r0, #0
pop {r3, pc}
-.L792:
+.L770:
.align 2
-.L791:
+.L769:
.word .LANCHOR2
.fnend
.size free_data_superblock, .-free_data_superblock
.align 1
.global FtlGcBufInit
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FtlGcBufInit, %function
FtlGcBufInit:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r2, .L804
- mov ip, #36
- ldr r0, .L804+4
+ ldr r2, .L780
+ mov ip, #1
+ ldr r0, .L780+4
movs r3, #0
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
movs r7, #12
- mov lr, #1
- mov r6, r0
- mov r4, r2
+ mov r5, r2
+ mov lr, #36
+ mov r1, r0
str r3, [r2, #1136]
-.L794:
- ldrh r1, [r0, #2320]
- adds r5, r3, #1
- uxth r3, r3
- ldr r8, .L804+4
- cmp r3, r1
- bcs .L802
- mul r8, r7, r3
- ldr r9, [r2, #1140]
- add r1, r9, r8
- str lr, [r1, #8]
- ldrh r1, [r0, #2398]
- muls r1, r3, r1
- it mi
- addmi r1, r1, #3
- bic r10, r1, #3
- ldr r1, [r4, #1144]
- add r1, r1, r10
- str r1, [r9, r8]
- ldr r10, [r2, #1140]
- ldrh r1, [r6, #2400]
- muls r1, r3, r1
- it mi
- addmi r1, r1, #3
- add r9, r10, r8
- bic fp, r1, #3
- ldr r1, [r4, #1148]
- add r1, r1, fp
- str r1, [r9, #4]
- ldr r1, [r2, #1152]
- mla r3, ip, r3, r1
- ldr r1, [r10, r8]
- str r1, [r3, #8]
- ldr r1, [r9, #4]
- str r1, [r3, #12]
- mov r3, r5
- b .L794
-.L802:
- ldr r0, .L804
+.L772:
+ ldrh r4, [r0, #2324]
+ uxth r8, r3
+ adds r6, r3, #1
+ cmp r8, r4
+ bcc .L775
+ ldr r7, .L780
mov lr, #12
- movs r5, #0
-.L798:
+ movs r6, #0
+.L776:
ldr r3, [r2, #1156]
- cmp r1, r3
- bcs .L803
- mul r7, lr, r1
- ldr r6, [r0, #1140]
- ldr r4, [r0, #1144]
- adds r3, r6, r7
- str r5, [r3, #8]
- ldrh r3, [r8, #2398]
- muls r3, r1, r3
- it mi
- addmi r3, r3, #3
- bic r3, r3, #3
- add r3, r3, r4
- str r3, [r6, r7]
- ldr r3, [r2, #1140]
- ldr r6, [r0, #1148]
- add r7, r7, r3
- ldrh r3, [r8, #2400]
- muls r3, r1, r3
- add r1, r1, #1
- it mi
- addmi r3, r3, #3
- bic r3, r3, #3
- uxth r1, r1
- add r3, r3, r6
- str r3, [r7, #4]
- b .L798
-.L803:
+ cmp r4, r3
+ bcc .L779
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L805:
+.L775:
+ uxth r3, r3
+ ldr r9, [r2, #1140]
+ mul r8, r7, r3
+ add r4, r9, r8
+ str ip, [r4, #8]
+ ldrh r4, [r0, #2400]
+ muls r4, r3, r4
+ it mi
+ addmi r4, r4, #3
+ bic r10, r4, #3
+ ldr r4, [r5, #1144]
+ add r4, r4, r10
+ str r4, [r9, r8]
+ ldrh r4, [r1, #2402]
+ muls r4, r3, r4
+ it mi
+ addmi r4, r4, #3
+ ldr r10, [r2, #1140]
+ bic fp, r4, #3
+ ldr r4, [r5, #1148]
+ add r9, r10, r8
+ add r4, r4, fp
+ str r4, [r9, #4]
+ ldr r4, [r2, #1152]
+ mla r3, lr, r3, r4
+ ldr r4, [r10, r8]
+ str r4, [r3, #8]
+ ldr r4, [r9, #4]
+ str r4, [r3, #12]
+ mov r3, r6
+ b .L772
+.L779:
+ mul ip, lr, r4
+ ldr r0, [r2, #1140]
+ ldr r5, [r2, #1144]
+ add r3, r0, ip
+ str r6, [r3, #8]
+ ldrh r3, [r1, #2400]
+ muls r3, r4, r3
+ it mi
+ addmi r3, r3, #3
+ bic r3, r3, #3
+ add r3, r3, r5
+ str r3, [r0, ip]
+ ldr r3, [r2, #1140]
+ ldr r0, [r7, #1148]
+ add ip, ip, r3
+ ldrh r3, [r1, #2402]
+ muls r3, r4, r3
+ it mi
+ addmi r3, r3, #3
+ bic r3, r3, #3
+ adds r4, r4, #1
+ add r3, r3, r0
+ uxth r4, r4
+ str r3, [ip, #4]
+ b .L776
+.L781:
.align 2
-.L804:
+.L780:
.word .LANCHOR2
.word .LANCHOR0
.fnend
.size FtlGcBufInit, .-FtlGcBufInit
.align 1
.global FtlGcBufFree
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FtlGcBufFree, %function
FtlGcBufFree:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L813
+ ldr r3, .L789
push {r4, r5, r6, r7, r8, r9, r10, lr}
.save {r4, r5, r6, r7, r8, r9, r10, lr}
movs r5, #0
- ldr lr, [r3, #1156]
mov r10, #36
+ mov lr, #12
+ mov r8, r5
+ ldr ip, [r3, #1156]
ldr r6, [r3, #1140]
- mov r8, #12
- mov ip, r5
-.L807:
- uxth r4, r5
- cmp r4, r1
- bcs .L806
- mla r4, r10, r4, r0
+.L783:
+ uxth r3, r5
+ cmp r1, r3
+ bls .L782
+ mla r4, r10, r3, r0
movs r2, #0
-.L808:
+.L784:
uxth r3, r2
- cmp r3, lr
- bcs .L809
- mul r3, r8, r3
+ cmp ip, r3
+ bls .L785
+ mul r3, lr, r3
ldr r7, [r4, #8]
adds r2, r2, #1
add r9, r6, r3
ldr r3, [r6, r3]
cmp r3, r7
- bne .L808
- str ip, [r9, #8]
-.L809:
+ bne .L784
+ str r8, [r9, #8]
+.L785:
adds r5, r5, #1
- b .L807
-.L806:
+ b .L783
+.L782:
pop {r4, r5, r6, r7, r8, r9, r10, pc}
-.L814:
+.L790:
.align 2
-.L813:
+.L789:
.word .LANCHOR2
.fnend
.size FtlGcBufFree, .-FtlGcBufFree
.align 1
.global FtlGcBufAlloc
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FtlGcBufAlloc, %function
FtlGcBufAlloc:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L823
- mov ip, #1
+ ldr r3, .L798
+ mov ip, #12
push {r4, r5, r6, r7, r8, r9, lr}
.save {r4, r5, r6, r7, r8, r9, lr}
movs r4, #0
- ldr r5, [r3, #1156]
- mov lr, #12
- ldr r6, [r3, #1140]
+ mov lr, #1
mov r8, #36
-.L816:
+ ldr r5, [r3, #1156]
+ ldr r6, [r3, #1140]
+.L792:
uxth r2, r4
- cmp r2, r1
- bcs .L822
+ cmp r1, r2
+ bhi .L796
+ pop {r4, r5, r6, r7, r8, r9, pc}
+.L796:
mov r9, #0
-.L817:
+.L793:
uxth r3, r9
- cmp r3, r5
- bcs .L818
- mla r3, lr, r3, r6
+ cmp r5, r3
+ bls .L794
+ mla r3, ip, r3, r6
add r9, r9, #1
ldr r7, [r3, #8]
cmp r7, #0
- bne .L817
+ bne .L793
mla r2, r8, r2, r0
ldr r7, [r3]
- str ip, [r3, #8]
+ str lr, [r3, #8]
str r7, [r2, #8]
ldr r3, [r3, #4]
str r3, [r2, #12]
-.L818:
+.L794:
adds r4, r4, #1
- b .L816
-.L822:
- pop {r4, r5, r6, r7, r8, r9, pc}
-.L824:
+ b .L792
+.L799:
.align 2
-.L823:
+.L798:
.word .LANCHOR2
.fnend
.size FtlGcBufAlloc, .-FtlGcBufAlloc
.align 1
.global IsBlkInGcList
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type IsBlkInGcList, %function
IsBlkInGcList:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r2, .L831
+ ldr r2, .L805
ldr r3, [r2, #1160]
ldrh r2, [r2, #1164]
add r2, r3, r2, lsl #1
-.L826:
+.L801:
cmp r3, r2
- beq .L830
- ldrh r1, [r3], #2
- cmp r1, r0
- bne .L826
- movs r0, #1
- bx lr
-.L830:
+ bne .L803
movs r0, #0
bx lr
-.L832:
+.L803:
+ ldrh r1, [r3], #2
+ cmp r1, r0
+ bne .L801
+ movs r0, #1
+ bx lr
+.L806:
.align 2
-.L831:
+.L805:
.word .LANCHOR2
.fnend
.size IsBlkInGcList, .-IsBlkInGcList
.align 1
.global FtlGcUpdatePage
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FtlGcUpdatePage, %function
FtlGcUpdatePage:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- push {r4, r5, r6, r7, r8, lr}
- .save {r4, r5, r6, r7, r8, lr}
- mov r6, r0
+ push {r3, r4, r5, r6, r7, lr}
+ .save {r3, r4, r5, r6, r7, lr}
+ mov r5, r0
ubfx r0, r0, #10, #16
- mov r7, r1
- mov r8, r2
- bl P2V_block_in_plane
- ldr r3, .L840
+ mov r6, r1
+ mov r7, r2
movs r4, #0
+ bl P2V_block_in_plane
+ ldr r3, .L811
ldrh r1, [r3, #1164]
ldr r2, [r3, #1160]
-.L834:
- uxth r5, r4
- cmp r5, r1
- bcs .L838
- adds r4, r4, #1
- add lr, r2, r4, lsl #1
- ldrh lr, [lr, #-2]
- cmp lr, r0
- bne .L834
-.L838:
- cmp r5, r1
- bne .L836
- strh r0, [r2, r5, lsl #1] @ movhi
+.L808:
+ uxth ip, r4
+ cmp ip, r1
+ bcc .L810
+ bne .L809
+ strh r0, [r2, ip, lsl #1] @ movhi
ldrh r0, [r3, #1164]
adds r0, r0, #1
strh r0, [r3, #1164] @ movhi
-.L836:
+ b .L809
+.L810:
+ adds r4, r4, #1
+ add ip, r2, r4, lsl #1
+ ldrh ip, [ip, #-2]
+ cmp ip, r0
+ bne .L808
+.L809:
ldrh r2, [r3, #1172]
movs r0, #12
muls r0, r2, r0
ldr r2, [r3, #1168]
adds r1, r2, r0
- str r7, [r1, #4]
- str r8, [r1, #8]
- str r6, [r2, r0]
+ str r6, [r1, #4]
+ str r7, [r1, #8]
+ str r5, [r2, r0]
ldrh r2, [r3, #1172]
adds r2, r2, #1
strh r2, [r3, #1172] @ movhi
- pop {r4, r5, r6, r7, r8, pc}
-.L841:
+ pop {r3, r4, r5, r6, r7, pc}
+.L812:
.align 2
-.L840:
+.L811:
.word .LANCHOR2
.fnend
.size FtlGcUpdatePage, .-FtlGcUpdatePage
.align 1
.global FtlGcRefreshOpenBlock
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FtlGcRefreshOpenBlock, %function
FtlGcRefreshOpenBlock:
.fnstart
@@ -5972,59 +6228,61 @@
push {r3, r4, r5, lr}
.save {r3, r4, r5, lr}
mov r5, r0
- ldr r4, .L849
+ ldr r4, .L820
ldrh r3, [r4, #1174]
cmp r3, r0
- beq .L844
+ beq .L815
ldrh r3, [r4, #1176]
cmp r3, r0
- beq .L844
+ beq .L815
ldrh r3, [r4, #1178]
cmp r3, r0
- beq .L844
+ beq .L815
ldrh r3, [r4, #1180]
cmp r3, r0
- beq .L844
- ldr r0, .L849+4
- mov r1, r5
+ beq .L815
+ mov r1, r0
+ ldr r0, .L820+4
bl printk
ldrh r2, [r4, #1174]
movw r3, #65535
cmp r2, r3
- bne .L846
+ bne .L817
strh r5, [r4, #1174] @ movhi
- b .L844
-.L846:
+.L815:
+ movs r0, #0
+ pop {r3, r4, r5, pc}
+.L817:
ldrh r2, [r4, #1176]
cmp r2, r3
- bne .L847
+ bne .L818
strh r5, [r4, #1176] @ movhi
- b .L844
-.L847:
+ b .L815
+.L818:
ldrh r2, [r4, #1178]
cmp r2, r3
- bne .L848
+ bne .L819
strh r5, [r4, #1178] @ movhi
- b .L844
-.L848:
+ b .L815
+.L819:
ldrh r2, [r4, #1180]
cmp r2, r3
it eq
strheq r5, [r4, #1180] @ movhi
-.L844:
- movs r0, #0
- pop {r3, r4, r5, pc}
-.L850:
+ b .L815
+.L821:
.align 2
-.L849:
+.L820:
.word .LANCHOR2
.word .LC79
.fnend
.size FtlGcRefreshOpenBlock, .-FtlGcRefreshOpenBlock
.align 1
.global FtlGcRefreshBlock
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FtlGcRefreshBlock, %function
FtlGcRefreshBlock:
.fnstart
@@ -6033,62 +6291,64 @@
push {r3, r4, r5, lr}
.save {r3, r4, r5, lr}
mov r5, r0
- ldr r4, .L861
+ ldr r4, .L832
ldrh r3, [r4, #1174]
cmp r3, r0
- beq .L859
+ beq .L830
ldrh r3, [r4, #1176]
cmp r3, r0
- beq .L859
+ beq .L830
ldrh r3, [r4, #1178]
cmp r3, r0
- beq .L859
+ beq .L830
ldrh r3, [r4, #1180]
cmp r3, r0
- beq .L859
- ldr r0, .L861+4
- mov r1, r5
+ beq .L830
+ mov r1, r0
+ ldr r0, .L832+4
bl printk
ldrh r2, [r4, #1174]
movw r3, #65535
cmp r2, r3
- bne .L853
+ bne .L824
strh r5, [r4, #1174] @ movhi
- b .L859
-.L853:
- ldrh r2, [r4, #1176]
- cmp r2, r3
- bne .L854
- strh r5, [r4, #1176] @ movhi
- b .L859
-.L854:
- ldrh r2, [r4, #1178]
- cmp r2, r3
- bne .L855
- strh r5, [r4, #1178] @ movhi
- b .L859
-.L855:
- ldrh r2, [r4, #1180]
- cmp r2, r3
- bne .L860
- strh r5, [r4, #1180] @ movhi
-.L859:
+.L830:
movs r0, #0
pop {r3, r4, r5, pc}
-.L860:
+.L824:
+ ldrh r2, [r4, #1176]
+ cmp r2, r3
+ bne .L825
+ strh r5, [r4, #1176] @ movhi
+ b .L830
+.L825:
+ ldrh r2, [r4, #1178]
+ cmp r2, r3
+ bne .L826
+ strh r5, [r4, #1178] @ movhi
+ b .L830
+.L826:
+ ldrh r2, [r4, #1180]
+ cmp r2, r3
+ bne .L831
+ strh r5, [r4, #1180] @ movhi
+ b .L830
+.L831:
mov r0, #-1
pop {r3, r4, r5, pc}
-.L862:
+.L833:
.align 2
-.L861:
+.L832:
.word .LANCHOR2
.word .LC79
.fnend
.size FtlGcRefreshBlock, .-FtlGcRefreshBlock
.align 1
.global FtlGcMarkBadPhyBlk
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FtlGcMarkBadPhyBlk, %function
FtlGcMarkBadPhyBlk:
.fnstart
@@ -6097,52 +6357,52 @@
push {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
mov r5, r0
+ ldr r4, .L842
bl P2V_block_in_plane
- ldr r4, .L872
mov r2, r5
- ldrh r1, [r4, #1182]
mov r6, r0
- ldr r0, .L872+4
+ ldrh r1, [r4, #1182]
+ ldr r0, .L842+4
bl printk
mov r0, r6
bl FtlGcRefreshBlock
- ldr r3, .L872+8
- ldr r2, [r3, #2244]
+ ldr r3, .L842+8
+ ldr r2, [r3, #2248]
mov r3, r4
- cbz r2, .L864
- ldr r1, [r4, #232]
+ cbz r2, .L835
+ ldr r1, [r4, #236]
ldrh r2, [r1, r6, lsl #1]
cmp r2, #39
itt hi
subhi r2, r2, #40
strhhi r2, [r1, r6, lsl #1] @ movhi
-.L864:
+.L835:
ldrh r2, [r3, #1182]
movs r1, #0
- ldr r4, .L872+12
-.L865:
+ ldr r4, .L842+12
+.L836:
uxth r0, r1
- cmp r0, r2
- bcs .L871
- adds r1, r1, #1
- add r0, r4, r1, lsl #1
- ldrh r0, [r0, #-2]
- cmp r0, r5
- bne .L865
- b .L866
-.L871:
+ cmp r2, r0
+ bhi .L838
cmp r2, #15
itttt ls
addls r1, r2, #1
strhls r1, [r3, #1182] @ movhi
addls r3, r3, r2, lsl #1
strhls r5, [r3, #1184] @ movhi
-.L866:
+ b .L837
+.L838:
+ adds r1, r1, #1
+ add r0, r4, r1, lsl #1
+ ldrh r0, [r0, #-2]
+ cmp r0, r5
+ bne .L836
+.L837:
movs r0, #0
pop {r4, r5, r6, pc}
-.L873:
+.L843:
.align 2
-.L872:
+.L842:
.word .LANCHOR2
.word .LC80
.word .LANCHOR0
@@ -6151,8 +6411,10 @@
.size FtlGcMarkBadPhyBlk, .-FtlGcMarkBadPhyBlk
.align 1
.global FtlGcReFreshBadBlk
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FtlGcReFreshBadBlk, %function
FtlGcReFreshBadBlk:
.fnstart
@@ -6160,13 +6422,13 @@
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, lr}
.save {r4, lr}
- ldr r4, .L880
+ ldr r4, .L850
ldrh r3, [r4, #1182]
- cbz r3, .L875
+ cbz r3, .L845
ldrh r1, [r4, #1174]
movw r2, #65535
cmp r1, r2
- bne .L875
+ bne .L845
ldrh r2, [r4, #1218]
cmp r2, r3
itt cs
@@ -6180,19 +6442,21 @@
ldrh r3, [r4, #1218]
adds r3, r3, #1
strh r3, [r4, #1218] @ movhi
-.L875:
+.L845:
movs r0, #0
pop {r4, pc}
-.L881:
+.L851:
.align 2
-.L880:
+.L850:
.word .LANCHOR2
.fnend
.size FtlGcReFreshBadBlk, .-FtlGcReFreshBadBlk
.align 1
.global ftl_memset
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type ftl_memset, %function
ftl_memset:
.fnstart
@@ -6204,386 +6468,381 @@
.size ftl_memset, .-ftl_memset
.align 1
.global BuildFlashLsbPageTable
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type BuildFlashLsbPageTable, %function
BuildFlashLsbPageTable:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- push {r4, r5, r6, lr}
- .save {r4, r5, r6, lr}
+ push {r3, r4, r5, lr}
+ .save {r3, r4, r5, lr}
mov r4, r1
- cbnz r0, .L884
- ldr r3, .L926
-.L885:
+ cbnz r0, .L854
+ ldr r3, .L909
+.L855:
strh r0, [r3, r0, lsl #1] @ movhi
adds r0, r0, #1
cmp r0, #512
- bne .L885
-.L889:
+ bne .L855
+.L861:
movs r1, #255
- ldr r0, .L926+4
mov r2, #2048
+ ldr r0, .L909+4
uxth r4, r4
bl ftl_memset
+ ldr r1, .L909
movs r3, #0
- ldr r1, .L926
- ldr r0, .L926+8
- b .L886
-.L884:
+ ldr r0, .L909+8
+.L856:
+ uxth r2, r3
+ cmp r4, r2
+ bhi .L889
+ pop {r3, r4, r5, pc}
+.L854:
cmp r0, #1
- bne .L887
- ldr r5, .L926
+ bne .L857
+ ldr r1, .L909
movs r3, #0
-.L888:
+.L860:
+ cmp r3, #3
uxth r2, r3
- cmp r2, #3
- ite ls
- movls r0, #0
- movhi r0, #1
- bics r1, r0, r3
+ bls .L858
+ tst r2, #1
ite ne
- movne r1, #2
- moveq r1, #3
- rsb r1, r1, r2, lsl #1
- cmp r0, #0
- it ne
- movne r2, r1
- strh r2, [r5, r3, lsl #1] @ movhi
+ movne r0, #3
+ moveq r0, #2
+ rsb r2, r0, r2, lsl #1
+ uxth r2, r2
+.L858:
+ strh r2, [r1, r3, lsl #1] @ movhi
adds r3, r3, #1
cmp r3, #512
- bne .L888
- b .L889
-.L887:
+ bne .L860
+ b .L861
+.L857:
cmp r0, #2
- bne .L890
- ldr r0, .L926
- movs r3, #0
-.L891:
- uxth r2, r3
- lsls r1, r2, #1
- subs r1, r1, #1
+ bne .L862
+ ldr r1, .L909
+ movs r2, #0
+.L864:
+ uxth r3, r2
cmp r2, #1
- it hi
- movhi r2, r1
- strh r2, [r0, r3, lsl #1] @ movhi
- adds r3, r3, #1
- cmp r3, #512
- bne .L891
- b .L889
-.L890:
+ ittt hi
+ lslhi r3, r3, #1
+ addhi r3, r3, #-1
+ uxthhi r3, r3
+ strh r3, [r1, r2, lsl #1] @ movhi
+ adds r2, r2, #1
+ cmp r2, #512
+ bne .L864
+ b .L861
+.L862:
cmp r0, #3
- bne .L892
- ldr r5, .L926
+ bne .L865
+ ldr r1, .L909
movs r3, #0
-.L893:
+.L868:
+ cmp r3, #5
uxth r2, r3
- cmp r2, #5
- ite ls
- movls r0, #0
- movhi r0, #1
- bics r1, r0, r3
+ bls .L866
+ tst r2, #1
ite ne
- movne r1, #4
- moveq r1, #5
- rsb r1, r1, r2, lsl #1
- cmp r0, #0
- it ne
- movne r2, r1
- strh r2, [r5, r3, lsl #1] @ movhi
+ movne r0, #5
+ moveq r0, #4
+ rsb r2, r0, r2, lsl #1
+ uxth r2, r2
+.L866:
+ strh r2, [r1, r3, lsl #1] @ movhi
adds r3, r3, #1
cmp r3, #512
- bne .L893
- b .L889
-.L892:
+ bne .L868
+ b .L861
+.L865:
cmp r0, #4
mov r3, #0
- bne .L894
- ldr r2, .L926+12
- strh r3, [r2, #148] @ movhi
+ bne .L869
+ ldr r2, .L909+12
+ strh r3, [r2, #156] @ movhi
movs r3, #1
- strh r0, [r2, #156] @ movhi
- strh r3, [r2, #150] @ movhi
- movs r3, #2
- strh r3, [r2, #152] @ movhi
- movs r3, #3
- strh r3, [r2, #154] @ movhi
- movs r3, #5
strh r3, [r2, #158] @ movhi
- movs r3, #7
+ movs r3, #2
strh r3, [r2, #160] @ movhi
+ movs r3, #3
+ strh r3, [r2, #162] @ movhi
+ movs r3, #5
+ strh r3, [r2, #166] @ movhi
+ movs r3, #7
+ strh r3, [r2, #168] @ movhi
movs r3, #8
- strh r3, [r2, #162]! @ movhi
-.L895:
+ strh r0, [r2, #164] @ movhi
+ strh r3, [r2, #170]! @ movhi
+.L871:
tst r3, #1
ite ne
movne r1, #7
moveq r1, #6
rsb r1, r1, r3, lsl #1
adds r3, r3, #1
- strh r1, [r2, #2]! @ movhi
uxth r3, r3
+ strh r1, [r2, #2]! @ movhi
cmp r3, #512
- bne .L895
- b .L889
-.L894:
+ bne .L871
+ b .L861
+.L869:
cmp r0, #5
- bne .L896
- ldr r2, .L926
-.L897:
- strh r3, [r2, r3, lsl #1] @ movhi
+ bne .L872
+ ldr r2, .L909+12
+ add r1, r2, #156
+.L873:
+ strh r3, [r1, r3, lsl #1] @ movhi
adds r3, r3, #1
cmp r3, #16
- bne .L897
- ldr r2, .L926+16
-.L898:
+ bne .L873
+ adds r2, r2, #186
+.L874:
strh r3, [r2, #2]! @ movhi
adds r3, r3, #2
uxth r3, r3
cmp r3, #1008
- bne .L898
- b .L889
-.L896:
+ bne .L874
+ b .L861
+.L872:
cmp r0, #6
- bne .L899
- ldr r5, .L926
-.L900:
- uxth r2, r3
- cmp r2, #5
- ite ls
- movls r0, #0
- movhi r0, #1
- add r1, r2, r2, lsl #1
- bics r6, r0, r3
+ bne .L875
+ ldr r0, .L909
+ mov r1, r3
+.L878:
+ cmp r1, #5
+ uxth r2, r1
+ bls .L876
+ tst r2, #1
ite ne
- movne r6, #10
- moveq r6, #12
- subs r1, r1, r6
- cmp r0, #0
- it ne
- movne r2, r1
- strh r2, [r5, r3, lsl #1] @ movhi
- adds r3, r3, #1
- cmp r3, #512
- bne .L900
- b .L889
-.L899:
- cmp r0, #9
- bne .L901
- ldr r2, .L926+12
- movw r1, #1021
- strh r3, [r2, #148] @ movhi
- movs r3, #1
- strh r3, [r2, #150] @ movhi
- movs r3, #2
- strh r3, [r2, #152]! @ movhi
- movs r3, #3
-.L902:
- strh r3, [r2, #2]! @ movhi
- adds r3, r3, #2
+ movne r2, #12
+ moveq r2, #10
+ subs r2, r3, r2
+ uxth r2, r2
+.L876:
+ strh r2, [r0, r1, lsl #1] @ movhi
+ adds r1, r1, #1
+ cmp r1, #512
+ add r3, r3, #3
uxth r3, r3
- cmp r3, r1
- bne .L902
- b .L889
-.L901:
+ bne .L878
+ b .L861
+.L875:
+ cmp r0, #9
+ bne .L879
+ ldr r2, .L909+12
+ movw r1, #1021
+ strh r3, [r2, #156] @ movhi
+ movs r3, #1
+ strh r3, [r2, #158] @ movhi
+ mov r3, r2
+ movs r2, #2
+ strh r2, [r3, #160]! @ movhi
+ movs r2, #3
+.L880:
+ strh r2, [r3, #2]! @ movhi
+ adds r2, r2, #2
+ uxth r2, r2
+ cmp r2, r1
+ bne .L880
+ b .L861
+.L879:
cmp r0, #10
- bne .L903
- ldr r2, .L926
-.L904:
- strh r3, [r2, r3, lsl #1] @ movhi
+ bne .L881
+ ldr r2, .L909+12
+ add r1, r2, #156
+.L882:
+ strh r3, [r1, r3, lsl #1] @ movhi
adds r3, r3, #1
cmp r3, #63
- bne .L904
- ldr r2, .L926+20
+ bne .L882
+ add r2, r2, #280
movw r1, #961
-.L905:
+.L883:
strh r3, [r2, #2]! @ movhi
adds r3, r3, #2
uxth r3, r3
cmp r3, r1
- bne .L905
- b .L889
-.L903:
+ bne .L883
+ b .L861
+.L881:
cmp r0, #11
- bne .L906
- ldr r2, .L926
+ bne .L884
+ ldr r2, .L909+12
movs r3, #0
-.L907:
- strh r3, [r2, r3, lsl #1] @ movhi
+ add r1, r2, #156
+.L885:
+ strh r3, [r1, r3, lsl #1] @ movhi
adds r3, r3, #1
cmp r3, #8
- bne .L907
- ldr r1, .L926+24
-.L908:
+ bne .L885
+ adds r2, r2, #170
+.L887:
tst r3, #1
ite ne
- movne r2, #7
- moveq r2, #6
- rsb r2, r2, r3, lsl #1
+ movne r1, #7
+ moveq r1, #6
+ rsb r1, r1, r3, lsl #1
adds r3, r3, #1
- strh r2, [r1, #2]! @ movhi
uxth r3, r3
+ strh r1, [r2, #2]! @ movhi
cmp r3, #512
- bne .L908
- b .L889
-.L906:
+ bne .L887
+ b .L861
+.L884:
cmp r0, #12
- bne .L889
- ldr r3, .L926+12
+ bne .L861
+ ldr r3, .L909+12
movs r2, #0
- strh r2, [r3, #148] @ movhi
+ strh r2, [r3, #156] @ movhi
movs r2, #1
- strh r2, [r3, #150] @ movhi
+ strh r2, [r3, #158] @ movhi
movs r2, #2
- strh r2, [r3, #152] @ movhi
+ strh r2, [r3, #160] @ movhi
movs r2, #3
- strh r2, [r3, #154]! @ movhi
+ strh r2, [r3, #162]! @ movhi
movs r2, #4
-.L909:
+.L888:
subs r1, r2, #1
add r1, r1, r2, lsr #1
adds r2, r2, #1
- strh r1, [r3, #2]! @ movhi
uxth r2, r2
+ strh r1, [r3, #2]! @ movhi
cmp r2, #512
- bne .L909
- b .L889
-.L886:
- uxth r2, r3
- cmp r2, r4
- bcs .L925
+ bne .L888
+ b .L861
+.L889:
ldrh r2, [r1, r3, lsl #1]
adds r3, r3, #1
add r5, r0, r2, lsl #1
strh r2, [r5, #1220] @ movhi
- b .L886
-.L925:
- pop {r4, r5, r6, pc}
-.L927:
+ b .L856
+.L910:
.align 2
-.L926:
- .word .LANCHOR0+148
+.L909:
+ .word .LANCHOR0+156
.word .LANCHOR2+1220
.word .LANCHOR2
.word .LANCHOR0
- .word .LANCHOR0+178
- .word .LANCHOR0+272
- .word .LANCHOR0+162
.fnend
.size BuildFlashLsbPageTable, .-BuildFlashLsbPageTable
.align 1
.global FlashDieInfoInit
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FlashDieInfoInit, %function
FlashDieInfoInit:
.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}
+ ldr r3, .L925
+ push {r4, r5, r6, r7, r8, r9, r10, lr}
+ .save {r4, r5, r6, r7, r8, r9, r10, lr}
movs r7, #0
- ldr r3, .L942
- ldr r4, .L942+4
- ldr r6, .L942+8
- ldrh r0, [r3, #482]
- addw fp, r4, #2068
- strb r7, [r4, #2230]
- mov r9, r4
+ ldr r4, .L925+4
+ ldr r6, .L925+8
+ ldrh r0, [r3, #478]
+ addw r10, r4, #2072
+ strb r7, [r4, #2234]
+ mov r9, r10
strb r7, [r6, #3268]
bl FlashBlockAlignInit
- mov r1, r7
movs r2, #8
- addw r0, r4, #2232
- bl ftl_memset
mov r1, r7
+ addw r0, r4, #2236
+ bl ftl_memset
movs r2, #32
- addw r0, r4, #1172
- bl ftl_memset
- addw r0, r4, #2100
mov r1, r7
- movs r2, #128
+ addw r0, r4, #1180
bl ftl_memset
- ldr r5, [r4, #44]
+ movs r2, #128
+ mov r1, r7
+ addw r0, r4, #2104
+ bl ftl_memset
+ ldr r5, [r4, #48]
add r8, r5, #1
-.L930:
- mov r0, r8
- add r1, fp, r7, lsl #3
+.L913:
ldrb r2, [r5] @ zero_extendqisi2
+ add r1, r10, r7, lsl #3
+ mov r0, r8
bl FlashMemCmp8
- ldr r10, .L942+12
- cbnz r0, .L929
- ldrb r3, [r9, #2230] @ zero_extendqisi2
- add r2, r9, r3, lsl #2
- str r0, [r2, #1172]
+ cbnz r0, .L912
+ ldrb r3, [r4, #2234] @ zero_extendqisi2
+ add r2, r4, r3, lsl #2
+ str r0, [r2, #1180]
adds r2, r3, #1
- add r3, r3, r9
- strb r2, [r9, #2230]
- strb r7, [r3, #2232]
-.L929:
+ add r3, r3, r4
+ strb r2, [r4, #2234]
+ strb r7, [r3, #2236]
+.L912:
adds r7, r7, #1
cmp r7, #4
- bne .L930
- ldrb r3, [r4, #2230] @ zero_extendqisi2
- ldr r2, .L942+4
+ bne .L913
+ ldrb r3, [r4, #2234] @ zero_extendqisi2
strb r3, [r6, #3268]
ldrb r3, [r5, #8] @ zero_extendqisi2
cmp r3, #2
- beq .L931
-.L935:
- ldrb r3, [r5, #13] @ zero_extendqisi2
- ldrb r2, [r4, #2230] @ zero_extendqisi2
- smulbb r2, r2, r3
- ldrh r3, [r5, #14]
- smulbb r3, r2, r3
+ beq .L914
+.L918:
+ ldrh r2, [r5, #14]
+ ldrb r3, [r4, #2234] @ zero_extendqisi2
+ smulbb r3, r3, r2
+ ldrb r2, [r5, #13] @ zero_extendqisi2
+ smulbb r3, r3, r2
strh r3, [r6, #3270] @ movhi
- pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L931:
- ldr r9, [r2, #4]
+ pop {r4, r5, r6, r7, r8, r9, r10, pc}
+.L914:
+ ldr r10, [r4, #40]
movs r7, #0
- mov fp, r2
-.L934:
- mov r0, r8
- add r1, r10, r7, lsl #3
+.L917:
ldrb r2, [r5] @ zero_extendqisi2
+ add r1, r9, r7, lsl #3
+ mov r0, r8
bl FlashMemCmp8
- cbnz r0, .L932
- ldrb r0, [r5, #13] @ zero_extendqisi2
+ cbnz r0, .L915
ldrh r3, [r5, #14]
- ldrb r2, [fp, #2230] @ zero_extendqisi2
- mul r0, r9, r0
- and r3, r3, #65280
- add r1, fp, r2, lsl #2
- muls r3, r0, r3
- str r3, [r1, #1172]
+ ldrb r2, [r4, #2234] @ zero_extendqisi2
+ and r1, r3, #65280
+ ldrb r3, [r5, #13] @ zero_extendqisi2
+ mul r3, r10, r3
+ muls r3, r1, r3
+ add r1, r4, r2, lsl #2
+ str r3, [r1, #1180]
ldrb r0, [r5, #23] @ zero_extendqisi2
- cbz r0, .L933
+ cbz r0, .L916
lsls r3, r3, #1
- str r3, [r1, #1172]
-.L933:
+ str r3, [r1, #1180]
+.L916:
adds r3, r2, #1
add r2, r2, r4
- strb r3, [r4, #2230]
- strb r7, [r2, #2232]
-.L932:
+ strb r3, [r4, #2234]
+ strb r7, [r2, #2236]
+.L915:
adds r7, r7, #1
cmp r7, #4
- bne .L934
- b .L935
-.L943:
+ bne .L917
+ b .L918
+.L926:
.align 2
-.L942:
+.L925:
.word .LANCHOR1
.word .LANCHOR0
.word .LANCHOR2
- .word .LANCHOR0+2068
.fnend
.size FlashDieInfoInit, .-FlashDieInfoInit
.align 1
.global ftl_read_flash_info
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type ftl_read_flash_info, %function
ftl_read_flash_info:
.fnstart
@@ -6591,23 +6850,23 @@
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
- movs r1, #0
movs r2, #11
+ movs r1, #0
mov r4, r0
- bl ftl_memset
- ldr r3, .L948
movs r5, #1
- ldr r2, [r3, #44]
- ldrb r1, [r2, #9] @ zero_extendqisi2
- ldr r2, [r3, #4]
- smulbb r2, r1, r2
+ bl ftl_memset
+ ldr r3, .L930
+ ldr r2, [r3, #48]
+ ldr r1, [r3, #40]
+ ldrb r2, [r2, #9] @ zero_extendqisi2
+ smulbb r2, r2, r1
strh r2, [r4, #4] @ unaligned
- ldrb r2, [r3, #2312] @ zero_extendqisi2
+ ldrb r2, [r3, #2316] @ zero_extendqisi2
strb r2, [r4, #7]
- ldr r2, [r3, #2428]
+ ldr r2, [r3, #2432]
str r2, [r4] @ unaligned
- ldr r2, [r3, #44]
- addw r3, r3, #2232
+ ldr r2, [r3, #48]
+ addw r3, r3, #2236
ldrb r0, [r3, #-2] @ zero_extendqisi2
ldrb r1, [r2, #9] @ zero_extendqisi2
strb r1, [r4, #6]
@@ -6617,29 +6876,31 @@
strb r2, [r4, #9]
movs r2, #0
strb r2, [r4, #10]
-.L945:
+.L928:
uxtb r1, r2
- cmp r1, r0
- bcs .L947
+ cmp r0, r1
+ bhi .L929
+ pop {r4, r5, r6, pc}
+.L929:
ldrb r1, [r2, r3] @ zero_extendqisi2
adds r2, r2, #1
- lsl r6, r5, r1
- ldrb r1, [r4, #10] @ zero_extendqisi2
+ ldrb r6, [r4, #10] @ zero_extendqisi2
+ lsl r1, r5, r1
orrs r1, r1, r6
strb r1, [r4, #10]
- b .L945
-.L947:
- pop {r4, r5, r6, pc}
-.L949:
+ b .L928
+.L931:
.align 2
-.L948:
+.L930:
.word .LANCHOR0
.fnend
.size ftl_read_flash_info, .-ftl_read_flash_info
.align 1
.global FtlMemInit
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FtlMemInit, %function
FtlMemInit:
.fnstart
@@ -6647,16 +6908,25 @@
@ 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 r0, #1024
- ldr r4, .L1054
- movs r6, #0
- ldr r5, .L1054+4
movw r3, #65535
+ ldr r4, .L1034
+ movs r6, #0
+ mov r0, #1024
movs r7, #12
+ ldr r5, .L1034+4
mov r8, #36
+ str r3, [r4, #3284]
+ strh r3, [r4, #1174] @ movhi
+ strh r3, [r4, #1176] @ movhi
+ strh r3, [r4, #1178] @ movhi
+ strh r3, [r4, #1180] @ movhi
+ movs r3, #32
+ strh r3, [r4, #1120] @ movhi
+ movs r3, #128
+ strh r3, [r4, #1122] @ movhi
strh r6, [r4, #3272] @ movhi
str r6, [r4, #3276]
- str r6, [r4, #604]
+ str r6, [r4, #1116]
str r6, [r4, #508]
str r6, [r4, #512]
str r6, [r4, #496]
@@ -6667,47 +6937,38 @@
str r6, [r4, #476]
str r6, [r4, #516]
str r6, [r4, #520]
- str r6, [r4, #236]
+ str r6, [r4, #240]
str r6, [r4, #528]
str r6, [r4, #532]
str r6, [r4, #3280]
str r6, [r4, #1132]
- str r3, [r4, #3284]
str r6, [r4, #3288]
str r6, [r4, #1124]
str r6, [r4, #3292]
- strh r3, [r4, #1174] @ movhi
- strh r3, [r4, #1176] @ movhi
- strh r3, [r4, #1178] @ movhi
- strh r3, [r4, #1180] @ movhi
- movs r3, #32
strh r6, [r4, #1128] @ movhi
- strh r3, [r4, #1120] @ movhi
- movs r3, #128
strh r6, [r4, #1182] @ movhi
- strh r3, [r4, #1122] @ movhi
strh r6, [r4, #3296] @ movhi
strh r6, [r4, #1218] @ movhi
- ldrh r1, [r5, #2394]
+ ldrh r1, [r5, #2396]
bl __aeabi_idiv
- ldrh r3, [r5, #2320]
- str r6, [r5, #2440]
+ ldrh r3, [r5, #2324]
+ str r0, [r4, #3300]
+ str r6, [r5, #2444]
lsls r3, r3, #2
cmp r0, r3
- str r0, [r4, #3300]
- ldrh r0, [r5, #2392]
+ ldrh r0, [r5, #2394]
it hi
strhi r3, [r4, #3300]
lsls r0, r0, #1
bl ftl_malloc
str r0, [r4, #1160]
- ldrh r0, [r5, #2392]
+ ldrh r0, [r5, #2394]
muls r0, r7, r0
bl ftl_malloc
- ldrh r6, [r5, #2320]
+ ldrh r6, [r5, #2324]
+ str r0, [r4, #1168]
mul r6, r8, r6
lsl r9, r6, #3
- str r0, [r4, #1168]
mov r0, r9
bl ftl_malloc
str r0, [r4, #3304]
@@ -6719,20 +6980,20 @@
str r0, [r4, #3312]
mov r0, r6
bl ftl_malloc
- str r0, [r4, #228]
+ str r0, [r4, #232]
mov r0, r6
bl ftl_malloc
str r0, [r4, #1152]
ldr r0, [r4, #3300]
mul r0, r8, r0
bl ftl_malloc
- ldrh r6, [r5, #2398]
- ldrh r3, [r5, #2320]
+ ldrh r3, [r5, #2324]
+ ldrh r6, [r5, #2400]
+ str r0, [r5, #2448]
lsls r3, r3, #1
+ mov r0, r6
adds r3, r3, #1
str r3, [r4, #1156]
- str r0, [r5, #2444]
- mov r0, r6
bl ftl_malloc
str r0, [r4, #3316]
mov r0, r6
@@ -6758,272 +7019,274 @@
ldr r0, [r4, #1156]
muls r0, r7, r0
bl ftl_malloc
- ldrh r3, [r5, #2320]
- ldrh r6, [r5, #2400]
- muls r6, r3, r6
+ ldrh r3, [r5, #2402]
+ ldrh r6, [r5, #2324]
str r0, [r4, #1140]
+ muls r6, r3, r6
mov r0, r6
bl ftl_malloc
str r0, [r4, #3340]
lsls r0, r6, #3
bl ftl_malloc
- ldrh r3, [r5, #2400]
+ ldrh r3, [r5, #2402]
str r0, [r4, #3344]
ldr r0, [r4, #1156]
muls r0, r3, r0
bl ftl_malloc
- ldrh r3, [r5, #2400]
+ ldrh r3, [r5, #2402]
str r0, [r4, #1148]
ldr r0, [r4, #3300]
muls r0, r3, r0
bl ftl_malloc
str r0, [r4, #3348]
- ldrh r0, [r5, #2330]
+ ldrh r0, [r5, #2334]
lsls r0, r0, #1
uxth r0, r0
strh r0, [r4, #3352] @ movhi
bl ftl_malloc
+ ldrh r3, [r4, #3352]
str r0, [r4, #3356]
- ldrh r0, [r4, #3352]
- addw r0, r0, #547
- lsrs r0, r0, #9
- strh r0, [r4, #3352] @ movhi
- lsls r0, r0, #9
+ ldr r0, .L1034+8
+ addw r3, r3, #547
+ lsrs r3, r3, #9
+ and r0, r0, r3, lsl #9
+ strh r3, [r4, #3352] @ movhi
bl ftl_malloc
- ldrh r6, [r5, #2330]
- lsls r6, r6, #1
+ ldrh r6, [r5, #2334]
str r0, [r4, #3360]
adds r0, r0, #32
- str r0, [r4, #232]
+ str r0, [r4, #236]
+ lsls r6, r6, #1
mov r0, r6
bl ftl_malloc
str r0, [r4, #3364]
mov r0, r6
bl ftl_malloc
- ldr r6, [r5, #2416]
+ ldr r6, [r5, #2420]
+ str r0, [r4, #300]
lsls r6, r6, #1
- str r0, [r4, #296]
mov r0, r6
bl ftl_malloc
str r0, [r4, #3368]
mov r0, r6
bl ftl_malloc
str r0, [r4, #3372]
- ldrh r0, [r5, #2330]
+ ldrh r0, [r5, #2334]
lsrs r0, r0, #3
adds r0, r0, #4
bl ftl_malloc
- str r0, [r4, #472]
- ldrh r0, [r5, #2408]
+ str r0, [r5, #32]
+ ldrh r0, [r5, #2412]
lsls r0, r0, #1
bl ftl_malloc
- str r0, [r5, #2436]
- ldrh r0, [r5, #2408]
+ str r0, [r5, #2440]
+ ldrh r0, [r5, #2412]
lsls r0, r0, #1
bl ftl_malloc
str r0, [r4, #3376]
- ldrh r0, [r5, #2408]
+ ldrh r0, [r5, #2412]
lsls r0, r0, #2
bl ftl_malloc
str r0, [r4, #3380]
- ldrh r0, [r5, #2410]
+ ldrh r0, [r5, #2414]
lsls r0, r0, #2
bl ftl_malloc
- ldrh r2, [r5, #2410]
+ ldrh r2, [r5, #2414]
movs r1, #0
- lsls r2, r2, #2
str r0, [r4, #3384]
+ lsls r2, r2, #2
bl ftl_memset
- ldrh r6, [r5, #2424]
+ ldrh r6, [r5, #2428]
lsls r6, r6, #2
mov r0, r6
bl ftl_malloc
str r0, [r4, #3388]
mov r0, r6
bl ftl_malloc
- ldr r6, .L1054+8
str r0, [r4, #3392]
- ldr r0, [r5, #2416]
+ ldr r0, [r5, #2420]
+ ldr r6, .L1034+12
lsls r0, r0, #2
bl ftl_malloc
str r0, [r4, #3396]
- ldrh r0, [r5, #2426]
+ ldrh r0, [r5, #2430]
muls r0, r7, r0
bl ftl_malloc
- ldrh r3, [r5, #2426]
- str r0, [r4, #460]
- ldrh r0, [r5, #2398]
+ ldrh r3, [r5, #2430]
+ str r0, [r4, #464]
+ ldrh r0, [r5, #2400]
muls r0, r3, r0
bl ftl_malloc
- ldrh r3, [r5, #2330]
+ ldrh r3, [r5, #2334]
str r0, [r4, #3400]
movs r0, #6
muls r0, r3, r0
bl ftl_malloc
- ldrh r3, [r5, #2386]
- adds r3, r3, #31
- asrs r3, r3, #5
- strh r3, [r4, #3404] @ movhi
- str r0, [r4, #288]
- ldrh r0, [r5, #2342]
+ str r0, [r4, #292]
+ ldrh r0, [r5, #2388]
+ ldrh r3, [r5, #2346]
+ adds r0, r0, #31
+ asrs r0, r0, #5
+ strh r0, [r4, #3404] @ movhi
muls r0, r3, r0
lsls r0, r0, #2
bl ftl_malloc
ldrh r2, [r4, #3404]
- ldrh r7, [r5, #2342]
movs r3, #1
+ ldrh r7, [r5, #2346]
+ str r0, [r5, #2484]
lsls r2, r2, #2
mov r1, r2
- str r0, [r5, #2480]
-.L952:
+.L934:
cmp r3, r7
- bcs .L1052
- ldr r0, [r5, #2480]
+ bcc .L935
+ ldr r2, .L1034+16
+ movs r1, #0
+ add r3, r2, r3, lsl #2
+ adds r2, r2, #56
+ adds r3, r3, #24
+.L936:
+ cmp r2, r3
+ bne .L937
+ ldr r3, [r4, #3368]
+ cbnz r3, .L938
+.L940:
+ ldr r1, .L1034+20
+ ldr r0, .L1034+24
+ bl printk
+ mov r0, #-1
+ pop {r3, r4, r5, r6, r7, r8, r9, pc}
+.L935:
+ ldr r0, [r5, #2484]
adds r3, r3, #1
add r0, r0, r1
add r1, r1, r2
str r0, [r6, #4]!
- b .L952
-.L1052:
- ldr r2, .L1054+12
- movs r1, #0
-.L954:
- cmp r3, #8
- beq .L1053
- add r0, r2, r3, lsl #2
- adds r3, r3, #1
- str r1, [r0, #28]
- b .L954
-.L1053:
- ldr r2, [r4, #3368]
- ldr r3, .L1054
- cbnz r2, .L956
-.L958:
- ldr r1, .L1054+16
- ldr r0, .L1054+20
- bl printk
- mov r0, #-1
- pop {r3, r4, r5, r6, r7, r8, r9, pc}
-.L1055:
+ b .L934
+.L937:
+ str r1, [r3, #4]!
+ b .L936
+.L1035:
.align 2
-.L1054:
+.L1034:
.word .LANCHOR2
.word .LANCHOR0
- .word .LANCHOR0+2480
- .word .LANCHOR0+2452
+ .word 33553920
+ .word .LANCHOR0+2484
+ .word .LANCHOR0+2456
.word .LANCHOR3
.word .LC81
-.L956:
- ldr r2, [r3, #3372]
- cmp r2, #0
- beq .L958
- ldr r2, [r3, #3388]
- cmp r2, #0
- beq .L958
- ldr r2, [r3, #3396]
- cmp r2, #0
- beq .L958
- ldr r2, [r3, #460]
- cmp r2, #0
- beq .L958
- ldr r2, [r3, #3400]
- cmp r2, #0
- beq .L958
- ldr r2, [r3, #288]
- cmp r2, #0
- beq .L958
- ldr r2, [r5, #2480]
- cmp r2, #0
- beq .L958
- ldr r3, [r3, #296]
+.L938:
+ ldr r3, [r4, #3372]
cmp r3, #0
- beq .L958
- ldr r2, [r4, #1160]
- ldr r3, .L1056
- cmp r2, #0
- beq .L958
- ldr r2, [r3, #1168]
- cmp r2, #0
- beq .L958
- ldr r2, [r3, #3304]
- cmp r2, #0
- beq .L958
- ldr r2, [r3, #3312]
- cmp r2, #0
- beq .L958
- ldr r2, [r3, #228]
- cmp r2, #0
- beq .L958
- ldr r2, [r3, #1152]
- cmp r2, #0
- beq .L958
- ldr r2, [r3, #3308]
- cmp r2, #0
- beq .L958
- ldr r2, [r3, #3316]
- cmp r2, #0
- beq .L958
- ldr r2, [r3, #3320]
- cmp r2, #0
- beq .L958
- ldr r3, [r3, #3324]
+ beq .L940
+ ldr r3, [r4, #3388]
cmp r3, #0
- beq .L958
- ldr r2, [r4, #1144]
- ldr r3, .L1056
- cmp r2, #0
- beq .L958
- ldr r2, [r3, #3332]
- cmp r2, #0
- beq .L958
- ldr r2, [r3, #3336]
- cmp r2, #0
- beq .L958
- ldr r2, [r3, #1140]
- cmp r2, #0
- beq .L958
- ldr r2, [r3, #3340]
- cmp r2, #0
- beq .L958
- ldr r2, [r3, #3344]
- cmp r2, #0
- beq .L958
- ldr r2, [r3, #1148]
- cmp r2, #0
- beq .L958
- ldr r2, [r3, #232]
- cmp r2, #0
- beq .L958
- ldr r3, [r3, #3356]
+ beq .L940
+ ldr r3, [r4, #3396]
cmp r3, #0
- beq .L958
- ldr r3, .L1056+4
- ldr r3, [r3, #2436]
+ beq .L940
+ ldr r3, [r4, #464]
cmp r3, #0
- beq .L958
- ldr r3, .L1056
+ beq .L940
+ ldr r3, [r4, #3400]
+ cmp r3, #0
+ beq .L940
+ ldr r3, [r4, #292]
+ cmp r3, #0
+ beq .L940
+ ldr r3, [r5, #2484]
+ cmp r3, #0
+ beq .L940
+ ldr r3, [r4, #300]
+ cmp r3, #0
+ beq .L940
+ ldr r3, [r4, #1160]
+ cmp r3, #0
+ beq .L940
+ ldr r3, [r4, #1168]
+ cmp r3, #0
+ beq .L940
+ ldr r3, [r4, #3304]
+ cmp r3, #0
+ beq .L940
+ ldr r3, [r4, #3312]
+ cmp r3, #0
+ beq .L940
+ ldr r3, [r4, #232]
+ cmp r3, #0
+ beq .L940
+ ldr r3, [r4, #1152]
+ cmp r3, #0
+ beq .L940
+ ldr r3, [r4, #3308]
+ cmp r3, #0
+ beq .L940
+ ldr r3, [r4, #3316]
+ cmp r3, #0
+ beq .L940
+ ldr r3, [r4, #3320]
+ cmp r3, #0
+ beq .L940
+ ldr r3, [r4, #3324]
+ cmp r3, #0
+ beq .L940
+ ldr r3, [r4, #1144]
+ cmp r3, #0
+ beq .L940
+ ldr r3, [r4, #3332]
+ cmp r3, #0
+ beq .L940
+ ldr r3, [r4, #3336]
+ cmp r3, #0
+ beq .L940
+ ldr r3, [r4, #1140]
+ cmp r3, #0
+ beq .L940
+ ldr r3, [r4, #3340]
+ cmp r3, #0
+ beq .L940
+ ldr r3, [r4, #3344]
+ cmp r3, #0
+ beq .L940
+ ldr r3, [r4, #1148]
+ cmp r3, #0
+ beq .L940
+ ldr r3, [r4, #236]
+ cmp r3, #0
+ beq .L940
+ ldr r3, [r4, #3356]
+ cmp r3, #0
+ beq .L940
+ ldr r3, .L1036
+ ldr r3, [r3, #2440]
+ cmp r3, #0
+ beq .L940
+ ldr r3, .L1036+4
ldr r2, [r3, #3376]
cmp r2, #0
- beq .L958
+ beq .L940
ldr r2, [r3, #3380]
cmp r2, #0
- beq .L958
+ beq .L940
ldr r3, [r3, #3384]
cmp r3, #0
- beq .L958
+ beq .L940
movs r0, #0
pop {r3, r4, r5, r6, r7, r8, r9, pc}
-.L1057:
+.L1037:
.align 2
-.L1056:
- .word .LANCHOR2
+.L1036:
.word .LANCHOR0
+ .word .LANCHOR2
.fnend
.size FtlMemInit, .-FtlMemInit
.align 1
.global FtlBbt2Bitmap
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FtlBbt2Bitmap, %function
FtlBbt2Bitmap:
.fnstart
@@ -7031,101 +7294,107 @@
@ frame_needed = 0, uses_anonymous_args = 0
push {r3, r4, r5, r6, r7, lr}
.save {r3, r4, r5, r6, r7, lr}
- mov r4, r0
- ldr r3, .L1063
- mov r0, r1
mov r5, r1
+ ldr r3, .L1043
+ mov r4, r0
movs r1, #0
+ mov r0, r5
movs r7, #1
ldrh r2, [r3, #3404]
lsls r2, r2, #2
bl ftl_memset
- ldr r1, .L1063+4
+ ldr r0, .L1043+4
subs r2, r4, #2
+ movw ip, #65535
addw r4, r4, #1022
- movw lr, #65535
-.L1060:
+.L1040:
ldrh r3, [r2, #2]!
- cmp r3, lr
- beq .L1058
- lsrs r0, r3, #5
+ cmp r3, ip
+ beq .L1038
+ lsrs r6, r3, #5
and r3, r3, #31
lsl r3, r7, r3
cmp r2, r4
- ldr r6, [r5, r0, lsl #2]
- orr r3, r3, r6
- str r3, [r5, r0, lsl #2]
- ldrh r3, [r1, #2458]
+ ldr r1, [r5, r6, lsl #2]
+ orr r3, r3, r1
+ str r3, [r5, r6, lsl #2]
+ ldrh r3, [r0, #2462]
add r3, r3, #1
- strh r3, [r1, #2458] @ movhi
- bne .L1060
-.L1058:
+ strh r3, [r0, #2462] @ movhi
+ bne .L1040
+.L1038:
pop {r3, r4, r5, r6, r7, pc}
-.L1064:
+.L1044:
.align 2
-.L1063:
+.L1043:
.word .LANCHOR2
.word .LANCHOR0
.fnend
.size FtlBbt2Bitmap, .-FtlBbt2Bitmap
.align 1
.global FtlBbtMemInit
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FtlBbtMemInit, %function
FtlBbtMemInit:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r0, .L1066
+ ldr r0, .L1046
movw r3, #65535
- movs r1, #255
movs r2, #16
- add r0, r0, #2464
- strh r3, [r0, #-12] @ movhi
+ movs r1, #255
+ strh r3, [r0, #2456] @ movhi
movs r3, #0
- strh r3, [r0, #-6] @ movhi
+ strh r3, [r0, #2462] @ movhi
+ addw r0, r0, #2468
b ftl_memset
-.L1067:
+.L1047:
.align 2
-.L1066:
+.L1046:
.word .LANCHOR0
.fnend
.size FtlBbtMemInit, .-FtlBbtMemInit
.align 1
.global FtlFreeSysBlkQueueInit
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FtlFreeSysBlkQueueInit, %function
FtlFreeSysBlkQueueInit:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L1069
+ ldr r3, .L1049
mov r2, #2048
push {r4, lr}
.save {r4, lr}
movs r4, #0
- strh r0, [r3, #2512] @ movhi
- addw r0, r3, #2520
mov r1, r4
- strh r4, [r3, #2514] @ movhi
- strh r4, [r3, #2516] @ movhi
+ strh r0, [r3, #2516] @ movhi
+ addw r0, r3, #2524
strh r4, [r3, #2518] @ movhi
+ strh r4, [r3, #2520] @ movhi
+ strh r4, [r3, #2522] @ movhi
bl ftl_memset
mov r0, r4
pop {r4, pc}
-.L1070:
+.L1050:
.align 2
-.L1069:
+.L1049:
.word .LANCHOR0
.fnend
.size FtlFreeSysBlkQueueInit, .-FtlFreeSysBlkQueueInit
.align 1
.global ftl_free_no_use_map_blk
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type ftl_free_no_use_map_blk, %function
ftl_free_no_use_map_blk:
.fnstart
@@ -7136,159 +7405,142 @@
movs r1, #0
ldrh r2, [r0, #10]
mov r4, r0
- ldr r6, [r0, #20]
+ ldr r5, [r0, #20]
ldr r7, [r0, #12]
- ldr r5, [r0, #24]
+ ldr r6, [r0, #24]
lsls r2, r2, #1
- mov r0, r6
+ mov r0, r5
bl ftl_memset
- movs r1, #0
-.L1072:
- ldrh r2, [r4, #6]
- uxth r3, r1
- cmp r2, r3
- bls .L1091
- ldr r2, [r5, r3, lsl #2]
- movs r0, #0
- ubfx r2, r2, #10, #16
-.L1073:
- ldrh lr, [r4, #10]
- uxth r3, r0
- cmp lr, r3
- bls .L1092
- ldrh lr, [r7, r3, lsl #1]
- cmp lr, r2
- bne .L1074
- cbz r2, .L1074
- ldrh lr, [r6, r3, lsl #1]
- add lr, lr, #1
- strh lr, [r6, r3, lsl #1] @ movhi
-.L1074:
- adds r0, r0, #1
- b .L1073
-.L1092:
- adds r1, r1, #1
- b .L1072
-.L1091:
- ldr r3, .L1095
- mov r8, #0
- mov r10, r8
- ldrh r2, [r3, #2390]
+ movs r3, #0
+.L1052:
+ ldrh r1, [r4, #6]
+ uxth r2, r3
+ cmp r1, r2
+ bhi .L1056
+ ldr r3, .L1071
+ movs r6, #0
+ mov r9, r6
+ mov fp, r6
+ ldrh r2, [r3, #2392]
ldrh r3, [r4]
- strh r2, [r6, r3, lsl #1] @ movhi
- mov r2, r8
- ldrh r9, [r6]
-.L1077:
+ strh r2, [r5, r3, lsl #1] @ movhi
+ ldrh r10, [r5]
+.L1057:
ldrh r3, [r4, #10]
- uxth r5, r8
- cmp r3, r5
- bls .L1093
- ldrh r3, [r6, r5, lsl #1]
- lsls r1, r5, #1
- cmp r9, r3
- bls .L1078
- ldrh r0, [r7, r5, lsl #1]
- add fp, r7, r1
- cbnz r0, .L1079
- b .L1080
-.L1078:
- cbnz r3, .L1080
- ldrh r0, [r7, r1]
- add fp, r7, r1
- cbz r0, .L1080
- mov r5, r2
- b .L1082
-.L1079:
- cbnz r3, .L1094
- mov r9, r3
-.L1082:
+ uxth r1, r6
+ cmp r3, r1
+ bhi .L1061
+ mov r0, r9
+ pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L1056:
+ uxth r2, r3
+ ldr r1, [r6, r2, lsl #2]
+ movs r2, #0
+ ubfx r1, r1, #10, #16
+.L1053:
+ ldrh ip, [r4, #10]
+ uxth r0, r2
+ cmp ip, r0
+ bhi .L1055
+ adds r3, r3, #1
+ b .L1052
+.L1055:
+ uxth r0, r2
+ ldrh ip, [r7, r0, lsl #1]
+ cmp ip, r1
+ bne .L1054
+ cbz r1, .L1054
+ ldrh ip, [r5, r0, lsl #1]
+ add ip, ip, #1
+ strh ip, [r5, r0, lsl #1] @ movhi
+.L1054:
+ adds r2, r2, #1
+ b .L1053
+.L1061:
+ uxth r2, r6
+ ldrh r3, [r5, r2, lsl #1]
+ lsl r8, r2, #1
+ cmp r10, r3
+ bls .L1058
+ ldrh r0, [r7, r2, lsl #1]
+ add r8, r8, r7
+ cbnz r0, .L1059
+.L1060:
+ adds r6, r6, #1
+ b .L1057
+.L1058:
+ cmp r3, #0
+ bne .L1060
+ ldrh r0, [r7, r2, lsl #1]
+ add r8, r8, r7
+ cmp r0, #0
+ beq .L1060
+.L1062:
movs r1, #1
bl FtlFreeSysBlkQueueIn
- strh r10, [fp] @ movhi
+ strh fp, [r8] @ movhi
ldrh r3, [r4, #8]
- mov r2, r5
subs r3, r3, #1
strh r3, [r4, #8] @ movhi
-.L1080:
- add r8, r8, #1
- b .L1077
-.L1094:
- mov r2, r5
- mov r9, r3
- b .L1080
-.L1093:
- mov r0, r2
- pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L1096:
+ b .L1060
+.L1059:
+ mov r9, r1
+ mov r10, r3
+ cmp r3, #0
+ beq .L1062
+ b .L1060
+.L1072:
.align 2
-.L1095:
+.L1071:
.word .LANCHOR0
.fnend
.size ftl_free_no_use_map_blk, .-ftl_free_no_use_map_blk
.align 1
.global FtlL2PDataInit
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FtlL2PDataInit, %function
FtlL2PDataInit:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ 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}
+ push {r3, r4, r5, r6, r7, lr}
+ .save {r3, r4, r5, r6, r7, lr}
movs r1, #0
- ldr r4, .L1101
- movs r7, #0
- ldr r5, .L1101+4
- mov r6, r7
- ldr r2, [r4, #2416]
- mov r9, r4
+ ldr r4, .L1076
+ movs r7, #12
+ ldr r5, .L1076+4
+ ldr r2, [r4, #2420]
ldr r0, [r5, #3372]
lsls r2, r2, #1
bl ftl_memset
- ldrh r3, [r4, #2398]
- ldrh r2, [r4, #2426]
+ ldrh r3, [r4, #2400]
movs r1, #255
+ ldrh r2, [r4, #2430]
ldr r0, [r5, #3400]
muls r2, r3, r2
bl ftl_memset
+ movs r2, #0
mov r3, r5
- movs r5, #12
- mov r2, r4
- movw lr, #65535
-.L1098:
- ldrh ip, [r2, #2426]
- adds r0, r7, #1
- uxth r7, r7
- ldr r1, .L1101
- cmp ip, r7
- bls .L1100
- mul r1, r5, r7
- ldr ip, [r3, #460]
- add r8, ip, r1
- str r6, [r8, #4]
- strh lr, [ip, r1] @ movhi
- ldr r4, [r3, #460]
- add ip, r4, r1
- ldrh r1, [r9, #2398]
- muls r1, r7, r1
- ldr r7, [r3, #3400]
- bic r1, r1, #3
- add r1, r1, r7
- mov r7, r0
- str r1, [ip, #8]
- b .L1098
-.L1100:
- movw r2, #65535
- strh r2, [r3, #3410] @ movhi
- strh r2, [r3, #3408] @ movhi
- ldr r2, [r1, #2416]
+ movw r1, #65535
+ mov ip, r2
+.L1074:
+ ldrh r5, [r4, #2430]
+ uxth r0, r2
+ adds r6, r2, #1
+ cmp r5, r0
+ bhi .L1075
+ ldr r2, [r4, #2420]
+ strh r1, [r3, #3410] @ movhi
+ strh r1, [r3, #3408] @ movhi
strh r2, [r3, #3418] @ movhi
movw r2, #61634
strh r2, [r3, #3412] @ movhi
ldrh r2, [r3, #3452]
strh r2, [r3, #3416] @ movhi
- ldrh r2, [r1, #2424]
+ ldrh r2, [r4, #2428]
strh r2, [r3, #3414] @ movhi
ldr r2, [r3, #3368]
str r2, [r3, #3420]
@@ -7298,18 +7550,37 @@
str r2, [r3, #3428]
ldr r2, [r3, #3388]
str r2, [r3, #3432]
- pop {r3, r4, r5, r6, r7, r8, r9, pc}
-.L1102:
+ pop {r3, r4, r5, r6, r7, pc}
+.L1075:
+ uxth r2, r2
+ ldr r0, [r3, #464]
+ mul r5, r7, r2
+ add lr, r0, r5
+ str ip, [lr, #4]
+ strh r1, [r0, r5] @ movhi
+ ldr r0, [r3, #464]
+ add r0, r0, r5
+ ldrh r5, [r4, #2400]
+ muls r2, r5, r2
+ ldr r5, [r3, #3400]
+ bic r2, r2, #3
+ add r2, r2, r5
+ str r2, [r0, #8]
+ mov r2, r6
+ b .L1074
+.L1077:
.align 2
-.L1101:
+.L1076:
.word .LANCHOR0
.word .LANCHOR2
.fnend
.size FtlL2PDataInit, .-FtlL2PDataInit
.align 1
.global FtlVariablesInit
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FtlVariablesInit, %function
FtlVariablesInit:
.fnstart
@@ -7317,56 +7588,58 @@
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
- movs r4, #0
- ldr r6, .L1104
movw r3, #65535
- ldr r5, .L1104+4
+ ldr r6, .L1079
+ movs r4, #0
mov r1, r4
- ldrh r2, [r6, #2408]
- ldr r0, [r6, #2436]
+ ldr r5, .L1079+4
+ ldrh r2, [r6, #2412]
+ ldr r0, [r6, #2440]
strh r3, [r5, #3460] @ movhi
mov r3, #-1
- lsls r2, r2, #1
str r3, [r5, #3472]
+ lsls r2, r2, #1
str r4, [r5, #3456]
str r4, [r5, #3464]
str r4, [r5, #3468]
- str r4, [r6, #2244]
- strh r4, [r6, #2434] @ movhi
+ str r4, [r6, #2248]
+ strh r4, [r6, #2438] @ movhi
bl ftl_memset
- ldrh r2, [r6, #2330]
+ ldrh r2, [r6, #2334]
mov r1, r4
- ldr r0, [r5, #232]
+ ldr r0, [r5, #236]
lsls r2, r2, #1
bl ftl_memset
- ldrh r2, [r6, #2330]
+ ldrh r2, [r6, #2334]
mov r1, r4
ldr r0, [r5, #3356]
lsls r2, r2, #1
bl ftl_memset
mov r1, r4
- add r0, r5, #240
movs r2, #48
+ add r0, r5, #244
bl ftl_memset
- mov r1, r4
mov r2, #512
- add r0, r5, #608
+ mov r1, r4
+ add r0, r5, #604
bl ftl_memset
bl FtlGcBufInit
bl FtlL2PDataInit
mov r0, r4
pop {r4, r5, r6, pc}
-.L1105:
+.L1080:
.align 2
-.L1104:
+.L1079:
.word .LANCHOR0
.word .LANCHOR2
.fnend
.size FtlVariablesInit, .-FtlVariablesInit
.align 1
.global SupperBlkListInit
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type SupperBlkListInit, %function
SupperBlkListInit:
.fnstart
@@ -7374,119 +7647,121 @@
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
- movs r2, #6
- ldr r6, .L1117
movs r5, #0
- ldr r4, .L1117+4
+ ldr r6, .L1091
+ movs r2, #6
+ mov r9, r5
+ mov r10, r5
+ ldr r4, .L1091+4
+ movw fp, #65535
+ ldrh r3, [r6, #2334]
+ mov r8, r6
.pad #20
sub sp, sp, #20
movs r1, #0
- mov r9, r5
- ldrh r3, [r6, #2330]
- mov r10, r5
- ldr r0, [r4, #288]
- mov r8, r6
+ ldr r0, [r4, #292]
muls r2, r3, r2
bl ftl_memset
- str r5, [r4, #308]
- str r5, [r4, #292]
- str r5, [r4, #300]
- strh r5, [r4, #304] @ movhi
- strh r5, [r4, #312] @ movhi
+ str r5, [r4, #312]
+ str r5, [r4, #296]
+ str r5, [r4, #304]
+ strh r5, [r4, #308] @ movhi
+ strh r5, [r4, #316] @ movhi
strh r5, [r4, #3272] @ movhi
-.L1107:
- uxth fp, r5
- ldrh r2, [r8, #2328]
- sxth r7, fp
- cmp r7, r2
- bge .L1114
- ldr r3, .L1117
- movs r2, #0
- mov r6, r2
- ldrh ip, [r3, #2320]
- ldrh r3, [r3, #2388]
- str r3, [sp, #4]
-.L1115:
- sxth r1, r2
- cmp r1, ip
- bge .L1116
- add r1, r1, r8
- str r2, [sp, #12]
- str ip, [sp, #8]
- ldrb r0, [r1, #2348] @ zero_extendqisi2
- mov r1, fp
+.L1082:
+ ldrh r3, [r8, #2332]
+ sxth r7, r5
+ cmp r7, r3
+ bge .L1089
+ ldrh r3, [r8, #2390]
+ uxth r1, r5
+ ldrh r2, [r8, #2324]
+ str r1, [sp, #4]
+ str r3, [sp]
+ movs r3, #0
+ mov r6, r3
+ b .L1090
+.L1084:
+ add r0, r8, r1
+ ldr r1, [sp, #4]
+ ldrb r0, [r0, #2350] @ zero_extendqisi2
+ str r3, [sp, #12]
+ str r2, [sp, #8]
bl V2P_block
bl FtlBbmIsBadBlock
- ldr ip, [sp, #8]
- ldr r2, [sp, #12]
- cbnz r0, .L1108
- ldr r3, [sp, #4]
- add r6, r6, r3
- uxth r6, r6
-.L1108:
- adds r2, r2, #1
- b .L1115
-.L1116:
- cbz r6, .L1110
- sxth r1, r6
+ ldr r2, [sp, #8]
+ ldr r3, [sp, #12]
+ cbnz r0, .L1083
+ ldr r1, [sp]
+ add r6, r6, r1
+ sxth r6, r6
+.L1083:
+ adds r3, r3, #1
+.L1090:
+ sxth r1, r3
+ cmp r1, r2
+ blt .L1084
+ lsls r2, r7, #1
+ cbz r6, .L1085
+ mov r1, r6
+ str r2, [sp]
mov r0, #32768
bl __aeabi_idiv
- uxth r6, r0
- b .L1111
-.L1110:
- ldr r1, [r4, #296]
- sxth r2, fp
- movw r0, #65535
- strh r0, [r1, r2, lsl #1] @ movhi
-.L1111:
- add r0, r7, r7, lsl #1
- ldr r1, [r4, #288]
- ldr r2, .L1117+4
- add r1, r1, r0, lsl #1
- strh r6, [r1, #4] @ movhi
- ldrh r1, [r4, #316]
- cmp r7, r1
- beq .L1112
- ldrh r1, [r2, #364]
- cmp r7, r1
- beq .L1112
- ldrh r1, [r2, #412]
- cmp r7, r1
- beq .L1112
- ldr r2, [r2, #296]
- ldrh r2, [r2, r7, lsl #1]
- cbnz r2, .L1113
+ ldr r2, [sp]
+ sxth r6, r0
+.L1086:
+ ldr r3, [r4, #292]
+ add r2, r2, r7
+ add r3, r3, r2, lsl #1
+ strh r6, [r3, #4] @ movhi
+ ldrh r3, [r4, #320]
+ cmp r7, r3
+ beq .L1087
+ ldrh r3, [r4, #368]
+ cmp r7, r3
+ beq .L1087
+ ldrh r3, [r4, #416]
+ cmp r7, r3
+ beq .L1087
+ ldr r3, [r4, #300]
+ uxth r0, r5
+ ldrh r3, [r3, r7, lsl #1]
+ cbnz r3, .L1088
add r9, r9, #1
- mov r0, fp
uxth r9, r9
bl INSERT_FREE_LIST
- b .L1112
-.L1113:
+.L1087:
+ adds r5, r5, #1
+ b .L1082
+.L1085:
+ ldr r3, [r4, #300]
+ strh fp, [r3, r7, lsl #1] @ movhi
+ b .L1086
+.L1088:
add r10, r10, #1
- mov r0, fp
uxth r10, r10
bl INSERT_DATA_LIST
-.L1112:
- adds r5, r5, #1
- b .L1107
-.L1114:
+ b .L1087
+.L1089:
movs r0, #0
- strh r10, [r4, #304] @ movhi
- strh r9, [r4, #312] @ movhi
+ strh r10, [r4, #308] @ movhi
+ strh r9, [r4, #316] @ movhi
add sp, sp, #20
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L1118:
+.L1092:
.align 2
-.L1117:
+.L1091:
.word .LANCHOR0
.word .LANCHOR2
.fnend
.size SupperBlkListInit, .-SupperBlkListInit
.align 1
.global FtlGcPageVarInit
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FtlGcPageVarInit, %function
FtlGcPageVarInit:
.fnstart
@@ -7495,16 +7770,16 @@
push {r3, r4, r5, lr}
.save {r3, r4, r5, lr}
movs r1, #255
- ldr r5, .L1120
+ ldr r5, .L1094
movs r3, #0
- ldr r4, .L1120+4
- ldrh r2, [r5, #2392]
+ ldr r4, .L1094+4
+ ldrh r2, [r5, #2394]
ldr r0, [r4, #1160]
strh r3, [r4, #1164] @ movhi
lsls r2, r2, #1
strh r3, [r4, #1172] @ movhi
bl ftl_memset
- ldrh r3, [r5, #2392]
+ ldrh r3, [r5, #2394]
movs r2, #12
ldr r0, [r4, #1168]
movs r1, #255
@@ -7512,17 +7787,19 @@
bl ftl_memset
pop {r3, r4, r5, lr}
b FtlGcBufInit
-.L1121:
+.L1095:
.align 2
-.L1120:
+.L1094:
.word .LANCHOR0
.word .LANCHOR2
.fnend
.size FtlGcPageVarInit, .-FtlGcPageVarInit
.align 1
.global ftl_memcpy
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type ftl_memcpy, %function
ftl_memcpy:
.fnstart
@@ -7534,8 +7811,10 @@
.size ftl_memcpy, .-ftl_memcpy
.align 1
.global FlashReadIdbData
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FlashReadIdbData, %function
FlashReadIdbData:
.fnstart
@@ -7544,94 +7823,93 @@
push {r3, lr}
.save {r3, lr}
mov r2, #2048
- ldr r1, .L1124
+ ldr r1, .L1098
bl ftl_memcpy
movs r0, #0
pop {r3, pc}
-.L1125:
+.L1099:
.align 2
-.L1124:
+.L1098:
.word .LANCHOR2+3476
.fnend
.size FlashReadIdbData, .-FlashReadIdbData
.align 1
.global FlashLoadPhyInfoInRam
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FlashLoadPhyInfoInRam, %function
FlashLoadPhyInfoInRam:
.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, r7, r8, lr}
+ .save {r4, r5, r6, r7, r8, lr}
movs r4, #0
- ldr r5, .L1138
-.L1130:
- mov r0, r5
- ldr r1, .L1138+4
- ldrb r2, [r5, #-1] @ zero_extendqisi2
- bl FlashMemCmp8
- mov r6, r0
- cbnz r0, .L1127
- ldr r5, .L1138+8
- lsls r4, r4, #5
- add r2, r5, #508
- adds r7, r2, r4
- beq .L1133
- add r4, r4, r5
- mov r3, r0
- addw r1, r5, #3260
- ldrb r2, [r4, #530] @ zero_extendqisi2
- b .L1132
-.L1127:
- adds r4, r4, #1
- adds r5, r5, #32
- cmp r4, #86
- bne .L1130
- b .L1133
-.L1137:
- adds r3, r3, #1
- cmp r3, #4
- beq .L1131
-.L1132:
- lsls r0, r3, #5
- ldrb r0, [r0, r1] @ zero_extendqisi2
- cmp r0, r2
- bne .L1137
-.L1131:
- ldr r1, .L1138+12
- movs r2, #32
- ldr r0, .L1138+16
- add r1, r1, r3, lsl #5
- bl ftl_memcpy
- mov r1, r7
- movs r2, #32
- ldr r0, .L1138+20
- bl ftl_memcpy
- ldrh r0, [r5, #482]
- bl FlashBlockAlignInit
- b .L1128
-.L1133:
- mov r6, #-1
-.L1128:
+ ldr r6, .L1108
+ ldr r8, .L1108+16
+.L1103:
+ ldrb r2, [r6, #-1] @ zero_extendqisi2
+ mov r1, r8
mov r0, r6
- pop {r3, r4, r5, r6, r7, pc}
-.L1139:
+ lsls r7, r4, #5
+ bl FlashMemCmp8
+ mov r5, r0
+ cbnz r0, .L1101
+ ldr r4, .L1108+4
+ mov r1, r0
+ add r6, r4, #504
+ addw r3, r4, #3256
+ add r6, r6, r7
+ add r7, r7, r4
+ ldrb r2, [r7, #526] @ zero_extendqisi2
+ mov r0, r3
+.L1102:
+ lsls r7, r1, #5
+ ldrb r7, [r7, r3] @ zero_extendqisi2
+ cmp r7, r2
+ beq .L1105
+ adds r1, r1, #1
+ cmp r1, #4
+ bne .L1102
+.L1105:
+ add r1, r0, r1, lsl #5
+ movs r2, #32
+ ldr r0, .L1108+8
+ bl ftl_memcpy
+ movs r2, #32
+ mov r1, r6
+ ldr r0, .L1108+12
+ bl ftl_memcpy
+ ldrh r0, [r4, #478]
+ bl FlashBlockAlignInit
+ b .L1100
+.L1101:
+ adds r4, r4, #1
+ adds r6, r6, #32
+ cmp r4, #86
+ bne .L1103
+ mov r5, #-1
+.L1100:
+ mov r0, r5
+ pop {r4, r5, r6, r7, r8, pc}
+.L1109:
.align 2
-.L1138:
- .word .LANCHOR1+509
- .word .LANCHOR0+2068
+.L1108:
+ .word .LANCHOR1+505
.word .LANCHOR1
- .word .LANCHOR1+3260
- .word .LANCHOR0+48
- .word .LANCHOR1+472
+ .word .LANCHOR0+52
+ .word .LANCHOR1+468
+ .word .LANCHOR0+2072
.fnend
.size FlashLoadPhyInfoInRam, .-FlashLoadPhyInfoInRam
.align 1
.global NandcCopy1KB
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type NandcCopy1KB, %function
NandcCopy1KB:
.fnstart
@@ -7642,57 +7920,51 @@
.save {r4, r5, r6, lr}
mov r4, r2
add r2, r0, #4096
- ldr r6, [sp, #16]
add r5, r0, #512
- add r2, r2, r4, lsl #9
- bne .L1141
- cbz r3, .L1142
- mov r0, r2
- mov r1, r3
+ add r0, r2, r4, lsl #9
+ ldr r6, [sp, #16]
+ bne .L1111
+ cbz r3, .L1112
mov r2, #1024
+ mov r1, r3
bl ftl_memcpy
-.L1142:
- cbz r6, .L1140
- ldrb r3, [r6, #2] @ zero_extendqisi2
+.L1112:
+ cbz r6, .L1110
lsrs r4, r4, #1
- ldrb r2, [r6, #1] @ zero_extendqisi2
+ ldr r3, [r6] @ unaligned
add r4, r4, r4, lsl #1
- lsls r3, r3, #16
- orr r2, r3, r2, lsl #8
- ldrb r3, [r6] @ zero_extendqisi2
lsls r4, r4, #2
- orrs r3, r3, r2
- ldrb r2, [r6, #3] @ zero_extendqisi2
- orr r3, r3, r2, lsl #24
str r3, [r5, r4, lsl #2]
pop {r4, r5, r6, pc}
-.L1141:
- cbz r3, .L1145
- mov r1, r2
- mov r0, r3
+.L1111:
+ cbz r3, .L1115
+ mov r1, r0
mov r2, #1024
+ mov r0, r3
bl ftl_memcpy
-.L1145:
- cbz r6, .L1140
+.L1115:
+ cbz r6, .L1110
lsrs r4, r4, #1
add r4, r4, r4, lsl #1
lsls r4, r4, #2
ldr r3, [r5, r4, lsl #2]
- lsrs r2, r3, #8
strb r3, [r6]
+ lsrs r2, r3, #8
strb r2, [r6, #1]
lsrs r2, r3, #16
lsrs r3, r3, #24
strb r2, [r6, #2]
strb r3, [r6, #3]
-.L1140:
+.L1110:
pop {r4, r5, r6, pc}
.fnend
.size NandcCopy1KB, .-NandcCopy1KB
.align 1
.global ftl_memcpy32
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type ftl_memcpy32, %function
ftl_memcpy32:
.fnstart
@@ -7701,21 +7973,23 @@
movs r3, #0
push {r4, lr}
.save {r4, lr}
-.L1157:
+.L1127:
cmp r3, r2
- beq .L1159
+ bne .L1128
+ pop {r4, pc}
+.L1128:
ldr r4, [r1, r3, lsl #2]
str r4, [r0, r3, lsl #2]
adds r3, r3, #1
- b .L1157
-.L1159:
- pop {r4, pc}
+ b .L1127
.fnend
.size ftl_memcpy32, .-ftl_memcpy32
.align 1
.global ftl_memcmp
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type ftl_memcmp, %function
ftl_memcmp:
.fnstart
@@ -7727,56 +8001,66 @@
.size ftl_memcmp, .-ftl_memcmp
.align 1
.global timer_get_time
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type timer_get_time, %function
timer_get_time:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L1162
+ ldr r3, .L1131
ldr r0, [r3]
b jiffies_to_msecs
-.L1163:
+.L1132:
.align 2
-.L1162:
+.L1131:
.word jiffies
.fnend
.size timer_get_time, .-timer_get_time
.align 1
.global FlashSramLoadStore
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FlashSramLoadStore, %function
FlashSramLoadStore:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- push {r4, r5, lr}
- .save {r4, r5, lr}
- mov r5, r0
- ldr r4, .L1167
+ @ link register save eliminated.
+ push {r4, r5}
+ .save {r4, r5}
+ ldr r4, .L1136
ldr r4, [r4, #1180]
add r4, r4, #4096
- add r1, r1, r4
- cbz r2, .L1166
- mov r0, r1
- mov r1, r5
-.L1166:
+ add r4, r4, r1
+ cbnz r2, .L1134
mov r2, r3
- pop {r4, r5, lr}
+ mov r1, r4
+.L1135:
+ pop {r4, r5}
b ftl_memcpy
-.L1168:
+.L1134:
+ mov r1, r0
+ mov r2, r3
+ mov r0, r4
+ b .L1135
+.L1137:
.align 2
-.L1167:
+.L1136:
.word .LANCHOR4
.fnend
.size FlashSramLoadStore, .-FlashSramLoadStore
.align 1
.global FlashCs123Init
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FlashCs123Init, %function
FlashCs123Init:
.fnstart
@@ -7787,9 +8071,55 @@
.fnend
.size FlashCs123Init, .-FlashCs123Init
.align 1
- .global rk_nand_suspend
+ .global ftl_dma32_malloc
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
+ .type ftl_dma32_malloc, %function
+ftl_dma32_malloc:
+ .fnstart
+ @ args = 0, pretend = 0, frame = 0
+ @ frame_needed = 0, uses_anonymous_args = 0
+ cmp r0, #8192
+ push {r3, r4, r5, lr}
+ .save {r3, r4, r5, lr}
+ mov r4, r0
+ ble .L1140
+ pop {r3, r4, r5, lr}
+ b ftl_malloc
+.L1140:
+ ldr r5, .L1142
+ adds r4, r4, #63
+ bic r4, r4, #63
+ ldr r3, [r5, #1184]
+ cmp r4, r3
+ ble .L1141
+ mov r0, #16384
+ bl ftl_malloc
+ mov r3, #16384
+ str r0, [r5, #1188]
+ str r3, [r5, #1184]
+.L1141:
+ ldr r3, [r5, #1184]
+ ldr r0, [r5, #1188]
+ subs r3, r3, r4
+ add r4, r4, r0
+ str r3, [r5, #1184]
+ str r4, [r5, #1188]
+ pop {r3, r4, r5, pc}
+.L1143:
+ .align 2
+.L1142:
+ .word .LANCHOR4
+ .fnend
+ .size ftl_dma32_malloc, .-ftl_dma32_malloc
+ .align 1
+ .global rk_nand_suspend
+ .syntax unified
+ .thumb
+ .thumb_func
+ .fpu softvfp
.type rk_nand_suspend, %function
rk_nand_suspend:
.fnstart
@@ -7801,8 +8131,10 @@
.size rk_nand_suspend, .-rk_nand_suspend
.align 1
.global rk_nand_resume
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type rk_nand_resume, %function
rk_nand_resume:
.fnstart
@@ -7814,27 +8146,31 @@
.size rk_nand_resume, .-rk_nand_resume
.align 1
.global rk_ftl_get_capacity
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type rk_ftl_get_capacity, %function
rk_ftl_get_capacity:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L1173
- ldr r0, [r3, #2428]
+ ldr r3, .L1147
+ ldr r0, [r3, #2432]
bx lr
-.L1174:
+.L1148:
.align 2
-.L1173:
+.L1147:
.word .LANCHOR0
.fnend
.size rk_ftl_get_capacity, .-rk_ftl_get_capacity
.align 1
.global rk_nandc_get_irq_status
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type rk_nandc_get_irq_status, %function
rk_nandc_get_irq_status:
.fnstart
@@ -7847,8 +8183,10 @@
.size rk_nandc_get_irq_status, .-rk_nandc_get_irq_status
.align 1
.global rknand_proc_ftlread
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type rknand_proc_ftlread, %function
rknand_proc_ftlread:
.fnstart
@@ -7860,8 +8198,10 @@
.size rknand_proc_ftlread, .-rknand_proc_ftlread
.align 1
.global ReadFlashInfo
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type ReadFlashInfo, %function
ReadFlashInfo:
.fnstart
@@ -7873,269 +8213,280 @@
.size ReadFlashInfo, .-ReadFlashInfo
.align 1
.global rknand_print_hex
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type rknand_print_hex, %function
rknand_print_hex:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ 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}
+ push {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
+ .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
movs r5, #0
- mov r9, r0
+ ldr r7, .L1161
+ mov r10, r0
mov r6, r1
- mov r7, r2
- mov r8, r3
+ mov r8, r2
+ ldr fp, .L1161+4
+ mov r9, r3
mov r4, r5
-.L1179:
- cmp r4, r8
- beq .L1187
- cbnz r5, .L1180
- ldr r0, .L1188
- mov r1, r9
- mov r2, r6
+.L1153:
+ cmp r4, r9
+ bne .L1159
+ ldr r1, .L1161+4
+ ldr r0, .L1161+8
+ pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
+ b printk
+.L1159:
+ cbnz r5, .L1154
mov r3, r4
+ mov r2, r6
+ mov r1, r10
+ ldr r0, .L1161+12
bl printk
-.L1180:
- cmp r7, #4
- ldr r0, .L1188+4
- bne .L1181
+.L1154:
+ cmp r8, #4
+ bne .L1155
ldr r1, [r6, r4, lsl #2]
- b .L1186
-.L1181:
- cmp r7, #2
- ite eq
- ldrsheq r1, [r6, r4, lsl #1]
- ldrbne r1, [r6, r4] @ zero_extendqisi2
-.L1186:
+.L1160:
+ mov r0, r7
adds r5, r5, #1
bl printk
cmp r5, #15
- bls .L1184
- ldr r0, .L1188+8
+ bls .L1158
movs r5, #0
- ldr r1, .L1188+12
+ mov r1, fp
+ ldr r0, .L1161+8
bl printk
-.L1184:
+.L1158:
adds r4, r4, #1
- b .L1179
-.L1187:
- ldr r0, .L1188+8
- ldr r1, .L1188+12
- pop {r3, r4, r5, r6, r7, r8, r9, lr}
- b printk
-.L1189:
+ b .L1153
+.L1155:
+ cmp r8, #2
+ ite eq
+ ldrsheq r1, [r6, r4, lsl #1]
+ ldrbne r1, [r6, r4] @ zero_extendqisi2
+ b .L1160
+.L1162:
.align 2
-.L1188:
- .word .LC82
+.L1161:
.word .LC83
- .word .LC76
.word .LC84
+ .word .LC77
+ .word .LC82
.fnend
.size rknand_print_hex, .-rknand_print_hex
.align 1
.global HynixGetReadRetryDefault
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type HynixGetReadRetryDefault, %function
HynixGetReadRetryDefault:
.fnstart
- @ args = 0, pretend = 0, frame = 40
+ @ args = 0, pretend = 0, frame = 56
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+ movs r3, #172
+ ldr r7, .L1279
cmp r0, #2
- ldr r7, .L1299
- mov r3, #172
mov r1, #173
mov r2, #174
- .pad #44
- sub sp, sp, #44
+ .pad #60
+ sub sp, sp, #60
mov r4, r0
- strb r3, [r7, #1214]
+ strb r3, [r7, #1220]
mov r3, #175
- strb r0, [r7, #1210]
- strb r1, [r7, #1215]
- strb r2, [r7, #1216]
- strb r3, [r7, #1217]
- bne .L1191
- movs r3, #167
- strb r3, [r7, #1214]
- ldr r3, .L1299+4
- movs r2, #247
- movs r5, #7
- strb r2, [r3, #3405]
- b .L1252
-.L1191:
- cmp r0, #3
- bne .L1193
- movs r3, #176
- strb r3, [r7, #1214]
- movs r3, #177
- strb r3, [r7, #1215]
- movs r3, #178
- strb r3, [r7, #1216]
- movs r3, #179
- strb r3, [r7, #1217]
- movs r3, #180
- strb r3, [r7, #1218]
- movs r3, #181
- strb r3, [r7, #1219]
- movs r3, #182
- strb r3, [r7, #1220]
- movs r3, #183
- b .L1293
-.L1193:
- cmp r0, #4
- bne .L1194
- movs r0, #204
- strb r1, [r7, #1219]
- strb r0, [r7, #1214]
- movs r0, #191
- strb r2, [r7, #1220]
- strb r0, [r7, #1215]
- movs r0, #170
strb r0, [r7, #1216]
- movs r0, #171
- strb r0, [r7, #1217]
- movs r0, #205
- strb r0, [r7, #1218]
-.L1293:
- movs r5, #8
- strb r3, [r7, #1221]
- mov r6, r5
- b .L1192
-.L1194:
- cmp r0, #5
- bne .L1195
- movs r3, #56
- movs r5, #8
- strb r3, [r7, #1214]
- movs r3, #57
- strb r3, [r7, #1215]
- movs r3, #58
- strb r3, [r7, #1216]
- movs r3, #59
- strb r3, [r7, #1217]
- b .L1252
-.L1195:
- cmp r0, #6
- bne .L1196
- movs r3, #14
- movs r5, #12
- strb r3, [r7, #1214]
- movs r3, #15
- strb r3, [r7, #1215]
- movs r3, #16
- strb r3, [r7, #1216]
- movs r3, #17
- strb r3, [r7, #1217]
- b .L1252
-.L1196:
- cmp r0, #7
- bne .L1197
- movs r3, #176
- movs r5, #12
- strb r3, [r7, #1214]
- movs r6, #10
- movs r3, #177
- strb r3, [r7, #1215]
- movs r3, #178
- strb r3, [r7, #1216]
- movs r3, #179
- strb r3, [r7, #1217]
- movs r3, #180
- strb r3, [r7, #1218]
- movs r3, #181
- strb r3, [r7, #1219]
- movs r3, #182
- strb r3, [r7, #1220]
- movs r3, #183
- strb r3, [r7, #1221]
- movs r3, #212
- strb r3, [r7, #1222]
- movs r3, #213
+ strb r1, [r7, #1221]
+ strb r2, [r7, #1222]
strb r3, [r7, #1223]
- b .L1192
-.L1197:
- cmp r0, #8
- mov r5, #7
- bne .L1252
- movs r3, #6
- strb r5, [r7, #1215]
- strb r3, [r7, #1214]
- movs r5, #50
- movs r3, #9
- strb r0, [r7, #1216]
- strb r3, [r7, #1217]
- movs r6, #5
- movs r3, #10
- strb r3, [r7, #1218]
- b .L1192
-.L1252:
+ bne .L1164
+ movs r3, #167
+ movs r5, #7
+ strb r3, [r7, #1220]
+ movs r2, #247
+ ldr r3, .L1279+4
+ strb r2, [r3, #3401]
+.L1229:
movs r6, #4
-.L1192:
+ b .L1165
+.L1164:
+ cmp r0, #3
+ bne .L1166
+ movs r3, #176
+ strb r3, [r7, #1220]
+ movs r3, #177
+ strb r3, [r7, #1221]
+ movs r3, #178
+ strb r3, [r7, #1222]
+ movs r3, #179
+ strb r3, [r7, #1223]
+ movs r3, #180
+ strb r3, [r7, #1224]
+ movs r3, #181
+ strb r3, [r7, #1225]
+ movs r3, #182
+ strb r3, [r7, #1226]
+ movs r3, #183
+.L1274:
+ movs r5, #8
+ strb r3, [r7, #1227]
+ mov r6, r5
+.L1165:
subs r3, r4, #1
cmp r3, #1
- bhi .L1290
- ldr r1, .L1299+8
+ bhi .L1171
+ ldr fp, .L1279+12
mov r10, #0
-.L1198:
- ldrb r3, [r7, #2230] @ zero_extendqisi2
- uxtb r8, r10
- ldr r2, .L1299
- cmp r3, r8
- bls .L1205
- add r8, r8, r2
- addw fp, r2, #1213
- ldrb r3, [r8, #2232] @ zero_extendqisi2
- add r4, r2, r3, lsl #6
- add r3, r2, r3, lsl #3
- addw r4, r4, #1230
- movs r2, #55
- ldrb r8, [r3, #16] @ zero_extendqisi2
- ldr r0, [r3, #12]
- mov r9, r4
- mov r3, r4
- add r8, r0, r8, lsl #8
- addw ip, r8, #2056
-.L1200:
- str r2, [ip]
- ldrb r0, [fp, #1]! @ zero_extendqisi2
- str r1, [sp, #16]
- str r3, [sp, #12]
- str r0, [r8, #2052]
- movs r0, #80
+ ldr r2, .L1279+8
+.L1172:
+ ldrb r1, [r7, #2234] @ zero_extendqisi2
+ uxtb r3, r10
+ cmp r1, r3
+ bhi .L1178
+.L1179:
+ ldr r3, .L1279
+ strb r6, [r3, #1217]
+ strb r5, [r3, #1218]
+ add sp, sp, #60
+ @ sp needed
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L1166:
+ cmp r0, #4
+ bne .L1167
+ movs r0, #204
+ strb r1, [r7, #1225]
+ strb r0, [r7, #1220]
+ movs r0, #191
+ strb r0, [r7, #1221]
+ movs r0, #170
+ strb r0, [r7, #1222]
+ movs r0, #171
+ strb r0, [r7, #1223]
+ movs r0, #205
+ strb r0, [r7, #1224]
+ strb r2, [r7, #1226]
+ b .L1274
+.L1167:
+ cmp r0, #5
+ bne .L1168
+ movs r3, #56
+ movs r5, #8
+ strb r3, [r7, #1220]
+ movs r3, #57
+ strb r3, [r7, #1221]
+ movs r3, #58
+ strb r3, [r7, #1222]
+ movs r3, #59
+ strb r3, [r7, #1223]
+ b .L1229
+.L1168:
+ cmp r0, #6
+ bne .L1169
+ movs r3, #14
+ movs r5, #12
+ strb r3, [r7, #1220]
+ movs r3, #15
+ strb r3, [r7, #1221]
+ movs r3, #16
+ strb r3, [r7, #1222]
+ movs r3, #17
+ strb r3, [r7, #1223]
+ b .L1229
+.L1169:
+ cmp r0, #7
+ bne .L1170
+ movs r3, #176
+ movs r5, #12
+ strb r3, [r7, #1220]
+ movs r3, #177
+ strb r3, [r7, #1221]
+ movs r3, #178
+ strb r3, [r7, #1222]
+ movs r3, #179
+ strb r3, [r7, #1223]
+ movs r3, #180
+ strb r3, [r7, #1224]
+ movs r3, #181
+ strb r3, [r7, #1225]
+ movs r3, #182
+ strb r3, [r7, #1226]
+ movs r3, #183
+ strb r3, [r7, #1227]
+ movs r3, #212
+ strb r3, [r7, #1228]
+ movs r3, #213
+ strb r3, [r7, #1229]
+ movs r6, #10
+ b .L1165
+.L1170:
+ cmp r0, #8
+ mov r5, #7
+ bne .L1229
+ movs r3, #6
+ strb r5, [r7, #1221]
+ strb r3, [r7, #1220]
+ movs r3, #9
+ strb r3, [r7, #1223]
+ movs r3, #10
+ strb r0, [r7, #1222]
+ movs r5, #50
+ strb r3, [r7, #1224]
+ movs r6, #5
+ b .L1165
+.L1178:
+ add r3, r3, r7
+ mov r8, #0
+ ldrb r3, [r3, #2236] @ zero_extendqisi2
+ ldr r1, [r7, r3, lsl #3]
+ add r4, fp, r3, lsl #6
+ add r3, r7, r3, lsl #3
+ ldrb r9, [r3, #4] @ zero_extendqisi2
+ adds r4, r4, #20
+ add r9, r1, r9, lsl #8
+ movs r1, #55
+ addw r3, r9, #2056
+.L1173:
+ add r0, fp, r8
+ str r1, [r3]
+ ldrb r0, [r0, #4] @ zero_extendqisi2
str r2, [sp, #8]
- str ip, [sp, #4]
- bl NandcDelayns
- ldr r0, [r8, #2048]
- ldr r3, [sp, #12]
- ldr ip, [sp, #4]
+ str r1, [sp, #4]
+ str r0, [r9, #2052]
+ movs r0, #80
+ str r3, [sp]
+ bl ndelay
+ ldr r0, [r9, #2048]
+ ldr r3, [sp]
+ ldr r1, [sp, #4]
+ strb r0, [r4, r8]
+ add r8, r8, #1
+ uxtb r0, r8
ldr r2, [sp, #8]
- strb r0, [r3], #1
- subs r0, r3, r4
- ldr r1, [sp, #16]
- uxtb r0, r0
- cmp r0, r6
- bcc .L1200
- movs r2, #0
-.L1201:
+ cmp r6, r0
+ bhi .L1173
+ mov r0, r4
+ movs r1, #0
+.L1176:
movs r3, #1
- add lr, r1, r2
-.L1202:
+ add lr, r2, r1
+.L1175:
ldrb ip, [lr, r3, lsl #2] @ zero_extendqisi2
- ldrb r0, [r9] @ zero_extendqisi2
- add r0, r0, ip
- strb r0, [r9, r3, lsl #3]
+ ldrb r8, [r0] @ zero_extendqisi2
+ add ip, ip, r8
+ strb ip, [r0, r3, lsl #3]
adds r3, r3, #1
cmp r3, #7
- bne .L1202
- adds r2, r2, #1
- add r9, r9, #1
- cmp r2, #4
- bne .L1201
+ bne .L1175
+ adds r1, r1, #1
+ adds r0, r0, #1
+ cmp r1, #4
+ bne .L1176
movs r3, #0
add r10, r10, #1
strb r3, [r4, #16]
@@ -8145,105 +8496,90 @@
strb r3, [r4, #48]
strb r3, [r4, #41]
strb r3, [r4, #49]
- b .L1198
-.L1290:
+ b .L1172
+.L1171:
subs r3, r4, #3
cmp r3, #5
- bhi .L1205
- smulbb r2, r6, r5
- lsls r3, r2, #4
- asrs r2, r2, #1
- str r3, [sp, #36]
+ bhi .L1179
+ smulbb r3, r6, r5
+ ldr r8, .L1279
+ asrs r2, r3, #1
+ lsls r3, r3, #4
+ str r3, [sp, #48]
+ lsls r3, r2, #2
+ str r2, [sp, #8]
+ str r3, [sp, #44]
lsls r3, r2, #1
- str r3, [sp, #8]
+ str r3, [sp, #28]
movs r3, #0
-.L1297:
- str r3, [sp, #20]
- ldrb r3, [sp, #20] @ zero_extendqisi2
- str r3, [sp, #16]
- ldr r3, .L1299
- ldr r2, [sp, #16]
- ldrb r3, [r3, #2230] @ zero_extendqisi2
+ str r3, [sp, #24]
+.L1180:
+ ldrb r3, [sp, #24] @ zero_extendqisi2
+ str r3, [sp, #12]
+ ldr r2, [sp, #12]
+ ldrb r3, [r8, #2234] @ zero_extendqisi2
cmp r3, r2
- bhi .L1250
-.L1205:
- ldr r3, .L1299
- strb r6, [r3, #1211]
- strb r5, [r3, #1212]
- add sp, sp, #44
- @ sp needed
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L1250:
- ldr r2, [sp, #16]
- ldr r3, .L1299
- add r3, r3, r2
- ldrb fp, [r3, #2232] @ zero_extendqisi2
- ldr r3, .L1299
- add r3, r3, fp, lsl #3
- mov r0, fp
- ldr r10, [r3, #12]
- ldrb r3, [r3, #16] @ zero_extendqisi2
- lsls r7, r3, #8
- str r3, [sp, #4]
- add r8, r10, r7
+ bls .L1179
+ ldr r3, [sp, #12]
+ add r3, r8, r3
+ ldrb r10, [r3, #2236] @ zero_extendqisi2
+ ldr fp, [r8, r10, lsl #3]
+ mov r0, r10
+ add r3, r8, r10, lsl #3
+ ldrb r9, [r3, #4] @ zero_extendqisi2
movs r3, #255
- str r3, [r8, #2056]
+ add r7, fp, r9, lsl #8
+ str r3, [r7, #2056]
bl NandcWaitFlashReady
cmp r4, #7
- bne .L1207
- ldr r2, .L1299+12
- movs r3, #160
- mla ip, r3, fp, r2
- add r3, ip, #28
- b .L1294
-.L1207:
- cmp r4, #8
- beq .L1209
- ldr r2, .L1299+12
- add ip, r2, fp, lsl #6
- add r3, ip, #20
-.L1294:
- add r7, r7, r10
+ bne .L1181
+ ldr r3, .L1279+12
+ movs r0, #160
+ mla r0, r0, r10, r3
+ add r3, r0, #28
+.L1275:
+ str r3, [sp, #16]
cmp r4, #4
- str r3, [sp, #24]
- mov r3, #54
- str r3, [r7, #2056]
- bne .L1210
- movs r3, #255
- str r3, [r7, #2052]
- movs r3, #64
- str r3, [r7, #2048]
- movs r3, #204
- b .L1295
-.L1210:
- subs r3, r4, #5
- cmp r3, #1
- bhi .L1212
- ldr r3, .L1299
- ldrb r2, [r3, #1214] @ zero_extendqisi2
- ldr r3, [sp, #4]
- add r3, r10, r3, lsl #8
+ add r3, fp, r9, lsl #8
+ mov r2, #54
+ str r2, [r3, #2056]
+ bne .L1184
+ movs r2, #255
+ str r2, [r3, #2052]
+ movs r2, #64
+ str r2, [r3, #2048]
+ movs r2, #204
+.L1276:
+ str r2, [r3, #2052]
+ movs r2, #77
+ b .L1277
+.L1181:
+ cmp r4, #8
+ beq .L1183
+ ldr r0, .L1279+12
+ add r0, r0, r10, lsl #6
+ add r3, r0, #20
+ b .L1275
+.L1280:
+ .align 2
+.L1279:
+ .word .LANCHOR0
+ .word .LANCHOR1
+ .word .LANCHOR1+3384
+ .word .LANCHOR0+1216
+.L1184:
+ subs r2, r4, #5
+ cmp r2, #1
+ bhi .L1186
+ ldrb r2, [r8, #1220] @ zero_extendqisi2
str r2, [r3, #2052]
movs r2, #82
+.L1277:
str r2, [r3, #2048]
- b .L1211
-.L1212:
- cmp r4, #7
- bne .L1211
- movs r3, #174
- str r3, [r7, #2052]
- movs r3, #0
- str r3, [r7, #2048]
- movs r3, #176
-.L1295:
- str r3, [r7, #2052]
- movs r3, #77
- str r3, [r7, #2048]
-.L1211:
- ldr r3, [sp, #4]
+.L1185:
+ add r3, fp, r9, lsl #8
+ movs r2, #22
cmp r4, #6
- mov r2, #22
- add r3, r10, r3, lsl #8
str r2, [r3, #2056]
mov r2, #23
str r2, [r3, #2056]
@@ -8262,314 +8598,334 @@
str r2, [r3, #2052]
movs r2, #0
str r2, [r3, #2052]
-.L1251:
- ldr r3, [sp, #4]
+.L1228:
+ add r3, fp, r9, lsl #8
movs r2, #48
- mov r0, fp
- add r3, r10, r3, lsl #8
+ mov r0, r10
str r2, [r3, #2056]
bl NandcWaitFlashReady
subs r3, r4, #5
cmp r3, #1
- str r3, [sp, #28]
- bls .L1255
+ str r3, [sp, #32]
+ bls .L1231
cmp r4, #8
- beq .L1255
+ beq .L1231
cmp r4, #7
- ite ne
- movne r2, #2
+ ite eq
moveq r2, #32
- b .L1215
-.L1300:
- .align 2
-.L1299:
- .word .LANCHOR0
- .word .LANCHOR1
- .word .LANCHOR1+3388
- .word .LANCHOR0+1210
-.L1255:
- movs r2, #16
-.L1215:
- ldr r3, .L1301
- ldr r1, [sp, #4]
- ldr r3, [r3, #1184]
- add r0, r10, r1, lsl #8
- mov r7, r3
-.L1216:
- ldr r1, [r0, #2048]
- strb r1, [r7], #1
- subs r1, r7, r3
- uxtb r1, r1
- cmp r1, r2
- bcc .L1216
+ movne r2, #2
+.L1189:
+ ldr r3, .L1281
+ subs r2, r2, #1
+ add r7, fp, r9, lsl #8
+ ldr r3, [r3, #1192]
+ str r7, [sp, #4]
+ subs r1, r3, #1
+ uxtab r2, r3, r2
+ mov r0, r1
+.L1190:
+ ldr r7, [sp, #4]
+ ldr r7, [r7, #2048]
+ strb r7, [r0, #1]!
+ cmp r0, r2
+ bne .L1190
cmp r4, #8
- bne .L1217
+ bne .L1191
movs r2, #0
-.L1219:
- ldrb r7, [r3, r2, lsl #2] @ zero_extendqisi2
+.L1193:
+ ldrb r0, [r3, r2, lsl #2] @ zero_extendqisi2
uxtb r1, r2
- cmp r7, #50
- beq .L1218
- add r7, r3, r2, lsl #2
- ldrb r7, [r7, #1] @ zero_extendqisi2
- cmp r7, #5
- beq .L1218
+ cmp r0, #50
+ beq .L1192
+ add r0, r3, r2, lsl #2
+ ldrb r0, [r0, #1] @ zero_extendqisi2
+ cmp r0, #5
+ beq .L1192
adds r2, r2, #1
cmp r2, #8
- bne .L1219
- b .L1220
-.L1218:
- cmp r1, #7
- bne .L1221
-.L1220:
- ldr r0, .L1301+4
+ bne .L1193
+.L1194:
movs r1, #0
+ ldr r0, .L1281+4
bl printk
-.L1222:
- b .L1222
-.L1217:
+.L1196:
+ b .L1196
+.L1186:
cmp r4, #7
- bne .L1223
+ bne .L1185
+ movs r2, #174
+ str r2, [r3, #2052]
movs r2, #0
-.L1225:
- ldrb r7, [r3, r2, lsl #2] @ zero_extendqisi2
- uxtb r1, r2
- cmp r7, #12
- beq .L1224
- add r7, r3, r2, lsl #2
- ldrb r7, [r7, #1] @ zero_extendqisi2
- cmp r7, #10
- beq .L1224
- adds r2, r2, #1
- cmp r2, #8
- bne .L1225
- b .L1226
-.L1224:
- cmp r1, #7
- bne .L1221
-.L1226:
- ldr r0, .L1301+4
- movs r1, #0
- bl printk
-.L1227:
- b .L1227
-.L1223:
- cmp r4, #6
- bne .L1221
- subs r2, r3, #1
- adds r3, r3, #7
-.L1228:
- ldrb r1, [r2, #1]! @ zero_extendqisi2
- cmp r1, #12
- beq .L1221
- ldrb r1, [r2, #8] @ zero_extendqisi2
- cmp r1, #4
- beq .L1221
- cmp r2, r3
- bne .L1228
- ldr r0, .L1301+4
- movs r1, #0
- bl printk
-.L1230:
- b .L1230
-.L1221:
- ldr r1, .L1301
- ldr r7, [sp, #36]
- ldr r2, [r1, #1184]
- adds r7, r2, r7
- mov r3, r2
+ str r2, [r3, #2048]
+ movs r2, #176
+ b .L1276
.L1231:
- cmp r3, r7
- beq .L1298
- ldr lr, [r0, #2048]
- strb lr, [r3], #1
- b .L1231
-.L1298:
- ldr r3, [r1, #1184]
- movs r0, #8
- ldr r1, [sp, #8]
- adds r1, r3, r1
- str r1, [sp, #32]
-.L1234:
- ldr r7, [sp, #8]
- add lr, r1, r7
-.L1233:
- ldrh r7, [r1]
- mvns r7, r7
- strh r7, [r1], #2 @ movhi
- cmp r1, lr
- bne .L1233
- ldr r7, [sp, #8]
- subs r0, r0, #1
- add r1, r1, r7
- bne .L1234
- str r3, [sp, #12]
-.L1235:
+ movs r2, #16
+ b .L1189
+.L1192:
+ cmp r1, #6
+ bhi .L1194
+.L1195:
+ ldr r3, .L1281
+ ldr r3, [r3, #1192]
+ str r3, [sp]
+.L1205:
+ ldr r2, [sp]
+ ldr r0, [sp, #48]
+ subs r1, r3, r2
+ cmp r1, r0
+ blt .L1206
+ ldr r3, .L1281
+ ldr r1, [r3, #1192]
+ ldr r3, [sp, #28]
+ adds r0, r1, r3
+ movs r3, #8
+.L1208:
+ mov ip, r0
+ movs r7, #0
+.L1207:
+ ldr r2, [sp, #8]
+ adds r7, r7, #1
+ ldrh lr, [ip]
+ cmp r2, r7
+ mvn lr, lr
+ strh lr, [ip], #2 @ movhi
+ bgt .L1207
+ ldr r2, [sp, #44]
+ subs r3, r3, #1
+ add r0, r0, r2
+ bne .L1208
+ str r3, [sp, #20]
+.L1214:
movs r7, #0
mov r0, r7
-.L1238:
- movs r3, #1
+.L1213:
+ movs r2, #1
+ mov ip, r1
+ lsls r2, r2, r0
mov lr, #0
- mov r8, #16
- lsl r1, r3, r0
- mov ip, lr
-.L1236:
- ldr r3, [sp, #12]
- ldrh r9, [r3, lr]
- ldr r3, [sp, #8]
- and r9, r9, r1
- cmp r9, r1
+ str r2, [sp, #36]
+ movs r2, #16
+ str r2, [sp, #40]
+.L1211:
+ ldrh r2, [ip]
+ str r2, [sp, #52]
+ ldr r2, [sp, #36]
+ mov r3, r2
+ ldr r2, [sp, #52]
+ bics r3, r3, r2
+ ldr r2, [sp, #28]
it eq
- addeq ip, ip, #1
- subs r8, r8, #1
- add lr, lr, r3
- bne .L1236
- cmp ip, #8
+ addeq lr, lr, #1
+ add ip, ip, r2
+ ldr r2, [sp, #40]
+ subs r2, r2, #1
+ str r2, [sp, #40]
+ bne .L1211
+ cmp lr, #8
add r0, r0, #1
- itt hi
- orrhi r7, r7, r1
+ ittt hi
+ ldrhi r2, [sp, #36]
+ orrhi r7, r7, r2
uxthhi r7, r7
cmp r0, #16
- bne .L1238
- ldr r3, [sp, #12]
- strh r7, [r3], #2 @ movhi
- str r3, [sp, #12]
- ldr r1, [sp, #12]
- ldr r3, [sp, #32]
- cmp r1, r3
- bne .L1235
- ldr r3, .L1301
- ldr r1, [r3, #1184]
+ bne .L1213
+ ldr r3, [sp, #20]
+ ldr r2, [sp, #8]
+ strh r7, [r1], #2 @ movhi
+ adds r3, r3, #1
+ cmp r2, r3
+ str r3, [sp, #20]
+ bgt .L1214
+ ldr r3, .L1281
+ ldr r1, [r3, #1192]
movs r3, #0
subs r0, r1, #4
add r7, r1, #28
-.L1240:
- ldr lr, [r0, #4]!
- cmp lr, #0
- it eq
- addeq r3, r3, #1
- cmp r0, r7
- bne .L1240
+.L1217:
+ ldr ip, [r0, #4]!
+ cmp ip, #0
+ bne .L1216
+ adds r3, r3, #1
+.L1216:
+ cmp r7, r0
+ bne .L1217
cmp r3, #7
- ble .L1241
- ldr r0, .L1301+8
- movs r2, #1
+ ble .L1218
+ ldr r0, .L1281+8
mov r3, #1024
+ movs r2, #1
bl rknand_print_hex
- ldr r0, .L1301+4
movs r1, #0
+ ldr r0, .L1281+4
bl printk
-.L1242:
- b .L1242
-.L1241:
- cmp r4, #6
- beq .L1257
+.L1219:
+ b .L1219
+.L1191:
cmp r4, #7
- beq .L1258
+ bne .L1197
+ movs r2, #0
+.L1199:
+ ldrb r0, [r3, r2, lsl #2] @ zero_extendqisi2
+ uxtb r1, r2
+ cmp r0, #12
+ beq .L1198
+ add r0, r3, r2, lsl #2
+ ldrb r0, [r0, #1] @ zero_extendqisi2
+ cmp r0, #10
+ beq .L1198
+ adds r2, r2, #1
+ cmp r2, #8
+ bne .L1199
+.L1200:
+ movs r1, #0
+ ldr r0, .L1281+4
+ bl printk
+.L1201:
+ b .L1201
+.L1198:
+ cmp r1, #6
+ bls .L1195
+ b .L1200
+.L1197:
+ cmp r4, #6
+ bne .L1195
+ adds r3, r3, #7
+.L1202:
+ ldrb r2, [r1, #1]! @ zero_extendqisi2
+ cmp r2, #12
+ beq .L1195
+ ldrb r2, [r1, #8] @ zero_extendqisi2
+ cmp r2, #4
+ beq .L1195
+ cmp r1, r3
+ bne .L1202
+ movs r1, #0
+ ldr r0, .L1281+4
+ bl printk
+.L1204:
+ b .L1204
+.L1206:
+ ldr r1, [sp, #4]
+ ldr r1, [r1, #2048]
+ strb r1, [r3], #1
+ b .L1205
+.L1218:
+ cmp r4, #6
+ beq .L1233
+ cmp r4, #7
+ beq .L1234
cmp r4, #8
- ite ne
- movne r0, #8
- moveq r0, #5
- b .L1243
-.L1257:
- movs r0, #4
- b .L1243
-.L1258:
- movs r0, #10
-.L1243:
- add r9, r6, #-1
- ldr r1, [sp, #24]
- movs r7, #0
- uxtb r9, r9
- add r9, r9, #1
-.L1244:
- mov ip, r1
- mov r3, r2
-.L1245:
- ldrb lr, [r3], #1 @ zero_extendqisi2
- strb lr, [ip], #1
- rsb lr, r2, r3
- uxtb lr, lr
- cmp lr, r6
- bcc .L1245
- adds r7, r7, #1
- add r2, r2, r9
- cmp r7, r5
- add r1, r1, r0
- blt .L1244
- ldr r3, [sp, #4]
- mov r0, fp
- add r7, r10, r3, lsl #8
- movs r3, #255
- str r3, [r7, #2056]
- bl NandcWaitFlashReady
- ldr r3, [sp, #28]
- cmp r3, #1
- bhi .L1247
- movs r3, #54
- str r3, [r7, #2056]
- ldr r3, .L1301+12
- mov r1, #-1
+ ite eq
+ moveq r7, #5
+ movne r7, #8
+.L1220:
+ subs r3, r6, #1
ldr r0, [sp, #16]
- ldrb r3, [r3, #1214] @ zero_extendqisi2
- str r3, [r7, #2052]
+ uxtb r3, r3
+ mov ip, #0
+ adds r3, r3, #1
+ mov r2, r3
+.L1221:
+ ldr r1, [sp]
+ str r0, [sp, #16]
+.L1222:
+ ldr r3, [sp, #16]
+ ldrb lr, [r1], #1 @ zero_extendqisi2
+ strb lr, [r3], #1
+ str r3, [sp, #16]
+ ldr r3, [sp]
+ sub lr, r1, r3
+ uxtb lr, lr
+ cmp r6, lr
+ bhi .L1222
+ ldr r1, [sp]
+ add ip, ip, #1
+ cmp r5, ip
+ add r0, r0, r7
+ add r1, r1, r2
+ str r1, [sp]
+ bgt .L1221
+ add r9, fp, r9, lsl #8
+ movs r3, #255
+ mov r0, r10
+ str r3, [r9, #2056]
+ bl NandcWaitFlashReady
+ ldr r3, [sp, #32]
+ cmp r3, #1
+ bhi .L1224
+ movs r3, #54
+ ldr r2, [sp, #4]
+ str r3, [r9, #2056]
+ mov r1, #-1
+ ldrb r3, [r8, #1220] @ zero_extendqisi2
+ ldr r0, [sp, #12]
+ str r3, [r2, #2052]
movs r3, #0
- str r3, [r7, #2048]
+ str r3, [r2, #2048]
movs r3, #22
- str r3, [r7, #2056]
+ str r3, [r9, #2056]
bl FlashReadCmd
- b .L1248
-.L1247:
+.L1225:
+ mov r0, r10
+ bl NandcWaitFlashReady
+ ldr r3, [sp, #24]
+ adds r3, r3, #1
+ str r3, [sp, #24]
+ b .L1180
+.L1233:
+ movs r7, #4
+ b .L1220
+.L1234:
+ movs r7, #10
+ b .L1220
+.L1224:
cmp r4, #8
ite eq
moveq r3, #190
movne r3, #56
- str r3, [r7, #2056]
-.L1248:
- mov r0, fp
- bl NandcWaitFlashReady
- ldr r3, [sp, #20]
- adds r3, r3, #1
- b .L1297
-.L1209:
+ str r3, [r9, #2056]
+ b .L1225
+.L1183:
movs r3, #120
movs r2, #23
- str r3, [r8, #2056]
- movs r1, #25
+ str r3, [r7, #2056]
movs r3, #0
- str r3, [r8, #2052]
- str r3, [r8, #2052]
- str r3, [r8, #2052]
- str r2, [r8, #2056]
+ str r3, [r7, #2052]
+ movs r1, #25
+ str r3, [r7, #2052]
+ str r3, [r7, #2052]
+ str r2, [r7, #2056]
movs r2, #4
- str r2, [r8, #2056]
- str r1, [r8, #2056]
+ str r2, [r7, #2056]
+ str r1, [r7, #2056]
movs r1, #218
- str r1, [r8, #2056]
+ str r1, [r7, #2056]
movs r1, #21
- str r3, [r8, #2056]
- str r3, [r8, #2052]
- str r3, [r8, #2052]
- str r1, [r8, #2052]
- str r2, [r8, #2052]
- str r3, [r8, #2052]
- ldr r3, .L1301+16
- str r3, [sp, #24]
- b .L1251
-.L1302:
+ str r3, [r7, #2056]
+ str r3, [r7, #2052]
+ str r3, [r7, #2052]
+ str r1, [r7, #2052]
+ str r2, [r7, #2052]
+ str r3, [r7, #2052]
+ ldr r3, .L1281+12
+ str r3, [sp, #16]
+ b .L1228
+.L1282:
.align 2
-.L1301:
+.L1281:
.word .LANCHOR4
.word .LC85
.word .LC86
- .word .LANCHOR0
- .word .LANCHOR0+1238
+ .word .LANCHOR0+1244
.fnend
.size HynixGetReadRetryDefault, .-HynixGetReadRetryDefault
.align 1
.global FlashGetReadRetryDefault
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FlashGetReadRetryDefault, %function
FlashGetReadRetryDefault:
.fnstart
@@ -8578,245 +8934,248 @@
@ link register save eliminated.
mov r3, r0
cmp r0, #0
- beq .L1303
+ beq .L1283
subs r2, r0, #1
cmp r2, #7
- bhi .L1305
+ bhi .L1285
b HynixGetReadRetryDefault
-.L1305:
+.L1285:
cmp r0, #49
- bne .L1306
- ldr r0, .L1326
+ bne .L1286
+ ldr r0, .L1306
movs r2, #64
- ldr r1, .L1326+4
- addw r0, r0, #1214
- strb r3, [r0, #-4]
+ ldr r1, .L1306+4
+ strb r3, [r0, #1216]
movs r3, #4
- strb r3, [r0, #-3]
+ strb r3, [r0, #1217]
movs r3, #15
- strb r3, [r0, #-2]
- b .L1324
-.L1306:
+ strb r3, [r0, #1218]
+.L1304:
+ addw r0, r0, #1220
+ b ftl_memcpy
+.L1286:
cmp r0, #33
- beq .L1307
+ beq .L1287
sub r2, r0, #65
cmp r2, #1
- bhi .L1308
-.L1307:
- ldr r0, .L1326
- strb r3, [r0, #1210]
+ bhi .L1288
+.L1287:
+ ldr r0, .L1306
+ strb r3, [r0, #1216]
movs r3, #4
- b .L1325
-.L1308:
- cmp r0, #34
- beq .L1309
- cmp r0, #67
- bne .L1310
-.L1309:
- ldr r0, .L1326
- strb r3, [r0, #1210]
- movs r3, #5
-.L1325:
- strb r3, [r0, #1211]
- movs r2, #45
+.L1305:
+ strb r3, [r0, #1217]
movs r3, #7
- addw r0, r0, #1214
- strb r3, [r0, #-2]
- ldr r1, .L1326+8
- b .L1324
-.L1310:
- cmp r0, #35
- beq .L1311
- cmp r0, #68
- bne .L1303
-.L1311:
- ldr r0, .L1326
- movs r2, #95
- ldr r1, .L1326+12
- addw r0, r0, #1214
- strb r3, [r0, #-4]
+ strb r3, [r0, #1218]
+ movs r2, #45
+ ldr r1, .L1306+8
+ b .L1304
+.L1288:
+ cmp r0, #34
+ beq .L1289
+ cmp r0, #67
+ bne .L1290
+.L1289:
+ ldr r0, .L1306
+ strb r3, [r0, #1216]
movs r3, #5
- strb r3, [r0, #-3]
+ b .L1305
+.L1290:
+ cmp r0, #35
+ beq .L1291
+ cmp r0, #68
+ bne .L1283
+.L1291:
+ ldr r0, .L1306
+ movs r2, #95
+ ldr r1, .L1306+12
+ strb r3, [r0, #1216]
+ movs r3, #5
+ strb r3, [r0, #1217]
movs r3, #17
- strb r3, [r0, #-2]
-.L1324:
- b ftl_memcpy
-.L1303:
+ strb r3, [r0, #1218]
+ b .L1304
+.L1283:
bx lr
-.L1327:
+.L1307:
.align 2
-.L1326:
+.L1306:
.word .LANCHOR0
- .word .LANCHOR1+408
+ .word .LANCHOR1+404
.word .LANCHOR1+256
- .word .LANCHOR1+304
+ .word .LANCHOR1+301
.fnend
.size FlashGetReadRetryDefault, .-FlashGetReadRetryDefault
.align 1
.global NandcXferComp
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type NandcXferComp, %function
NandcXferComp:
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
- push {r0, r1, r4, r5, r6, lr}
- .save {r4, r5, r6, lr}
+ push {r0, r1, r4, r5, r6, r7, r8, lr}
+ .save {r4, r5, r6, r7, r8, lr}
.pad #8
- ldr r5, .L1367
- add r0, r5, r0, lsl #3
- ldr r3, [r5, #2260]
- ldr r4, [r0, #12]
+ ldr r5, .L1347
+ ldr r3, [r5, #2264]
+ ldr r4, [r5, r0, lsl #3]
cmp r3, #3
- bls .L1359
+ bls .L1339
ldr r3, [r4, #16]
lsls r6, r3, #29
- bpl .L1359
+ bpl .L1339
ldr r6, [r4, #16]
ldr r3, [r4, #8]
ubfx r6, r6, #1, #1
str r3, [sp]
cmp r6, #0
- beq .L1341
+ beq .L1310
+ ldr r7, .L1347+4
movs r6, #0
-.L1331:
+ ldr r8, .L1347+12
+.L1311:
ldr r2, [r4, #28]
ldr r3, [sp]
ubfx r2, r2, #16, #5
ubfx r3, r3, #22, #6
cmp r2, r3
- bge .L1339
- ldr r3, [r5, #2260]
+ bge .L1319
+ ldr r3, [r5, #2264]
cmp r3, #5
- bhi .L1332
-.L1335:
+ bhi .L1312
+.L1315:
adds r6, r6, #1
- bic r3, r6, #-16777216
- cmp r3, #0
- bne .L1334
+ bics r3, r6, #-16777216
+ bne .L1314
ldr r2, [r4, #28]
mov r1, r6
ldr r3, [sp]
+ mov r0, r7
ubfx r2, r2, #16, #5
- ldr r0, .L1367+4
ubfx r3, r3, #22, #6
bl printk
- ldr r0, .L1367+8
- mov r1, r4
- movs r2, #4
mov r3, #512
+ movs r2, #4
+ mov r1, r4
+ mov r0, r8
bl rknand_print_hex
- b .L1334
-.L1332:
+.L1314:
+ movs r1, #5
+ movs r0, #1
+ bl usleep_range
+ b .L1311
+.L1312:
ldr r3, [r4]
str r3, [sp, #4]
ldr r3, [sp, #4]
lsls r0, r3, #18
- bpl .L1335
+ bpl .L1315
ldr r3, [sp, #4]
lsls r1, r3, #14
- bpl .L1335
-.L1339:
- ldr r3, [r5, #2296]
- ldr r4, .L1367
- cmp r3, #0
- beq .L1340
+ bpl .L1315
+.L1319:
+ ldr r3, [r5, #2300]
+ cbz r3, .L1320
ldr r1, [sp]
movs r2, #0
- ldr r0, [r4, #2288]
+ ldr r0, [r5, #2292]
ubfx r1, r1, #22, #5
lsls r1, r1, #10
bl rknand_dma_unmap_single
- ldr r0, [r4, #2292]
- movs r2, #0
ldr r1, [sp]
+ movs r2, #0
+ ldr r0, [r5, #2296]
ubfx r1, r1, #22, #5
lsls r1, r1, #7
bl rknand_dma_unmap_single
- b .L1340
-.L1334:
- movs r0, #1
- movs r1, #5
- bl usleep_range
- b .L1331
-.L1343:
+.L1320:
+ movs r3, #0
+ str r3, [r5, #2300]
+.L1308:
+ add sp, sp, #8
+ @ sp needed
+ pop {r4, r5, r6, r7, r8, pc}
+.L1310:
+ ldr r7, .L1347+8
+ ldr r8, .L1347+12
+.L1321:
+ ldr r3, [sp]
+ lsls r2, r3, #11
+ bpl .L1323
+ ldr r3, [r5, #2308]
+ cbz r3, .L1324
+ mov r0, r4
+ bl NandcSendDumpDataStart
+.L1324:
+ ldr r3, [r5, #2300]
+ cbz r3, .L1325
+ ldr r1, [sp]
+ movs r2, #1
+ ldr r0, [r5, #2292]
+ ubfx r1, r1, #22, #5
+ lsls r1, r1, #10
+ bl rknand_dma_unmap_single
+ ldr r1, [sp]
+ movs r2, #1
+ ldr r0, [r5, #2296]
+ ubfx r1, r1, #22, #5
+ lsls r1, r1, #7
+ bl rknand_dma_unmap_single
+.L1325:
+ ldr r3, [r5, #2308]
+ cmp r3, #0
+ beq .L1320
+ mov r0, r4
+ bl NandcSendDumpDataDone
+ b .L1320
+.L1323:
ldr r3, [r4, #8]
adds r6, r6, #1
str r3, [sp]
- bic r3, r6, #-16777216
- cbnz r3, .L1342
+ bics r3, r6, #-16777216
+ bne .L1322
ldr r2, [sp]
mov r1, r6
ldr r3, [r4, #28]
- ldr r0, .L1367+12
+ mov r0, r7
ubfx r3, r3, #16, #5
bl printk
- ldr r0, .L1367+8
- mov r1, r4
- movs r2, #4
mov r3, #512
+ movs r2, #4
+ mov r1, r4
+ mov r0, r8
bl rknand_print_hex
-.L1342:
- movs r0, #1
+.L1322:
movs r1, #5
+ movs r0, #1
bl usleep_range
-.L1341:
- ldr r3, [sp]
- lsls r2, r3, #11
- bpl .L1343
- ldr r3, [r5, #2304]
- cbz r3, .L1344
- mov r0, r4
- bl NandcSendDumpDataStart
-.L1344:
- ldr r3, [r5, #2296]
- ldr r6, .L1367
- cbz r3, .L1345
- ldr r1, [sp]
- movs r2, #1
- ldr r0, [r6, #2288]
- ubfx r1, r1, #22, #5
- lsls r1, r1, #10
- bl rknand_dma_unmap_single
- ldr r0, [r6, #2292]
- movs r2, #1
- ldr r1, [sp]
- ubfx r1, r1, #22, #5
- lsls r1, r1, #7
- bl rknand_dma_unmap_single
-.L1345:
- ldr r3, [r5, #2304]
- cbz r3, .L1340
- mov r0, r4
- bl NandcSendDumpDataDone
-.L1340:
- movs r3, #0
- str r3, [r5, #2296]
- b .L1328
-.L1359:
+ b .L1321
+.L1339:
ldr r3, [r4, #8]
str r3, [sp]
ldr r3, [sp]
lsls r3, r3, #11
- bpl .L1359
-.L1328:
- add sp, sp, #8
- @ sp needed
- pop {r4, r5, r6, pc}
-.L1368:
+ bpl .L1339
+ b .L1308
+.L1348:
.align 2
-.L1367:
+.L1347:
.word .LANCHOR0
.word .LC87
- .word .LC88
.word .LC89
+ .word .LC88
.fnend
.size NandcXferComp, .-NandcXferComp
.align 1
.global NandcXferData
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type NandcXferData, %function
NandcXferData:
.fnstart
@@ -8824,293 +9183,288 @@
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
- mov r10, r3
- ldr r6, .L1413
- tst r10, #63
+ mov r8, r3
+ ldr r3, .L1385
+ tst r8, #63
.pad #92
sub sp, sp, #92
- mov r9, r0
- add r3, r6, r0, lsl #3
+ mov r7, r0
mov r5, r1
- mov r7, r2
- ldr r8, [r3, #12]
- bne .L1370
- ldr r3, [sp, #128]
- cbnz r3, .L1371
- add r0, sp, #24
- movs r1, #255
+ mov r10, r2
+ ldr fp, [sp, #128]
+ mov r9, r3
+ ldr r6, [r3, r0, lsl #3]
+ bne .L1350
+ cmp fp, #0
+ bne .L1351
movs r2, #64
+ movs r1, #255
+ add r0, sp, #24
bl ftl_memset
- add r3, sp, #24
- str r3, [sp, #128]
-.L1371:
- ldr r3, [sp, #128]
- mov r0, r9
+ add fp, sp, #24
+.L1351:
mov r1, r5
- str r10, [sp]
- mov r2, r7
- str r3, [sp, #4]
+ mov r0, r7
+ stm sp, {r8, fp}
movs r3, #0
+ mov r2, r10
bl NandcXferStart
- mov r0, r9
mov r1, r5
+ mov r0, r7
bl NandcXferComp
cmp r5, #0
- bne .L1397
- ldr r3, [r6, #2308]
- lsrs r4, r7, #1
+ bne .L1375
+ ldr r3, [r9, #2312]
+ lsr r0, r10, #1
mov r2, r5
- mov r1, r5
cmp r3, #25
- ldr r3, [sp, #128]
+ mov r3, r5
ite cc
- movcc lr, #64
- movcs lr, #128
-.L1374:
- cmp r1, r4
- add r3, r3, #4
- add ip, r2, lr
- bcs .L1411
- ldr r0, [r6, #2276]
- lsrs r2, r2, #2
- adds r1, r1, #1
- ldr r2, [r0, r2, lsl #2]
- lsrs r0, r2, #8
- strb r2, [r3, #-4]
- strb r0, [r3, #-3]
- lsrs r0, r2, #16
- lsrs r2, r2, #24
- strb r0, [r3, #-2]
- strb r2, [r3, #-1]
- mov r2, ip
- b .L1374
-.L1411:
+ movcc r4, #64
+ movcs r4, #128
+.L1354:
+ cmp r2, r0
+ add fp, fp, #4
+ add r7, r4, r3
+ bcc .L1355
movs r2, #0
- ldr r0, [r6, #2308]
- ldr r1, [r6, #2260]
- lsrs r7, r7, #2
- mov fp, r2
-.L1376:
- cmp r2, r7
- bcs .L1372
- cmp r0, #0
- beq .L1372
- add r3, r2, #8
- ldr r3, [r8, r3, lsl #2]
- str r3, [sp, #20]
- ldr r3, [sp, #20]
- lsls r4, r3, #29
- bmi .L1400
- ldr r4, [sp, #20]
- ubfx r4, r4, #15, #1
- cmp r4, #0
- bne .L1400
- cmp r1, #5
- bls .L1378
- ldr r4, [sp, #20]
- ldr r3, [sp, #20]
- ubfx r4, r4, #3, #5
- ubfx ip, r3, #27, #1
- ldr r3, [sp, #20]
- ldr lr, [sp, #20]
- ubfx r3, r3, #16, #5
- orr r4, r4, ip, lsl #5
- ubfx lr, lr, #29, #1
- orr r3, r3, lr, lsl #5
- cmp r4, r3
- ldr r3, [sp, #20]
- ittee hi
- ldrhi r4, [sp, #20]
- ubfxhi r3, r3, #3, #5
- ldrls r4, [sp, #20]
- ubfxls r3, r3, #16, #5
- ite hi
- ubfxhi r4, r4, #27, #1
- ubfxls r4, r4, #29, #1
- b .L1410
-.L1378:
- cmp r1, #3
- bls .L1380
- ldr r4, [sp, #20]
- ldr r3, [sp, #20]
- ubfx r4, r4, #3, #5
- ubfx ip, r3, #28, #1
- ldr r3, [sp, #20]
- ldr lr, [sp, #20]
- ubfx r3, r3, #16, #5
- orr r4, r4, ip, lsl #5
- ubfx lr, lr, #30, #1
- orr r3, r3, lr, lsl #5
- cmp r4, r3
- ldr r3, [sp, #20]
- ittee hi
- ldrhi r4, [sp, #20]
- ubfxhi r3, r3, #3, #5
- ldrls r4, [sp, #20]
- ubfxls r3, r3, #16, #5
- ite hi
- ubfxhi r4, r4, #28, #1
- ubfxls r4, r4, #30, #1
-.L1410:
- orr r4, r3, r4, lsl #5
-.L1380:
- cmp fp, r4
- it cc
- movcc fp, r4
- b .L1377
-.L1400:
- mov fp, #-1
-.L1377:
- adds r2, r2, #1
- b .L1376
-.L1397:
- mov fp, #0
-.L1372:
+ lsr r0, r10, #2
+ ldr r1, [r9, #2312]
+ ldr r4, [r9, #2264]
+ mov r9, r2
+.L1356:
+ cmp r2, r0
+ bcs .L1352
+ cbnz r1, .L1362
+.L1352:
movs r3, #0
- str r3, [r8, #16]
- b .L1383
-.L1370:
- cmp r1, #1
- mov r4, #0
- bne .L1409
- mov fp, r4
-.L1384:
- cmp r4, r7
- bcs .L1412
- and ip, r4, #3
- cmp r10, #0
- beq .L1403
- add r3, r10, r4, lsl #9
- b .L1386
-.L1403:
- mov r3, r10
-.L1386:
- ldr r2, [sp, #128]
- mov r0, r8
- ldr r1, [sp, #128]
- cmp r2, #0
- str ip, [sp, #8]
- ite ne
- movne r2, #2
- moveq r2, #0
- mla r2, r4, r2, r1
- movs r1, #1
- adds r4, r4, #2
- str r2, [sp]
- mov r2, ip
- bl NandcCopy1KB
- mov r0, r9
- movs r1, #1
- movs r2, #2
- ldr ip, [sp, #8]
- str fp, [sp]
- str fp, [sp, #4]
- mov r3, ip
- bl NandcXferStart
- mov r0, r9
- movs r1, #1
- bl NandcXferComp
- b .L1384
-.L1412:
- mov fp, #0
- b .L1383
-.L1409:
- str r4, [sp]
- mov r1, r4
- str r4, [sp, #4]
- movs r2, #2
- mov r3, r4
- mov fp, r4
- bl NandcXferStart
- str r10, [sp, #8]
-.L1389:
- cmp r4, r7
- bcs .L1383
- mov r0, r9
- mov r1, r5
- bl NandcXferComp
- ldr r3, [r8, #32]
- add ip, r4, #2
- cmp ip, r7
- str r3, [sp, #20]
- bcs .L1390
- movs r3, #0
- mov r0, r9
- str r3, [sp]
- movs r2, #2
- str r3, [sp, #4]
- mov r1, r3
- and r3, ip, #3
- str ip, [sp, #12]
- bl NandcXferStart
- ldr ip, [sp, #12]
-.L1390:
- ldr r3, [sp, #20]
- lsls r3, r3, #29
- bmi .L1405
- ldr r2, [sp, #20]
- ldr r3, [sp, #20]
- ubfx r2, r2, #3, #5
- ubfx r3, r3, #27, #1
- orr r3, r2, r3, lsl #5
- cmp fp, r3
- it cc
- movcc fp, r3
- b .L1391
-.L1405:
- mov fp, #-1
-.L1391:
- ldr r1, [sp, #128]
- cmp r10, #0
- ldr r3, [sp, #8]
- it eq
- moveq r3, #0
- ldr r0, [sp, #128]
- cmp r1, #0
- ite ne
- movne r1, #2
- moveq r1, #0
- sub r2, ip, #2
- str ip, [sp, #12]
- mla r4, r4, r1, r0
- and r2, r2, #3
- mov r0, r8
- movs r1, #0
- str r4, [sp]
- bl NandcCopy1KB
- ldr ip, [sp, #12]
- ldr r3, [sp, #8]
- mov r4, ip
- add r3, r3, #1024
- str r3, [sp, #8]
- b .L1389
-.L1383:
- ldr r3, [r6, #2260]
+ str r3, [r6, #16]
+.L1363:
+ ldr r3, .L1385
+ ldr r3, [r3, #2264]
cmp r3, #5
- bls .L1395
- cbnz r5, .L1395
- ldr r3, [r8]
+ bls .L1349
+ cbnz r5, .L1349
+ ldr r3, [r6]
and r2, r3, #139264
cmp r2, #139264
ittt eq
- moveq fp, #-1
+ moveq r9, #-1
orreq r3, r3, #131072
- streq r3, [r8]
-.L1395:
- mov r0, fp
+ streq r3, [r6]
+.L1349:
+ mov r0, r9
add sp, sp, #92
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L1414:
+.L1355:
+ ldr r1, [r9, #2280]
+ bic r3, r3, #3
+ adds r2, r2, #1
+ ldr r3, [r1, r3]
+ strb r3, [fp, #-4]
+ lsrs r1, r3, #8
+ strb r1, [fp, #-3]
+ lsrs r1, r3, #16
+ lsrs r3, r3, #24
+ strb r1, [fp, #-2]
+ strb r3, [fp, #-1]
+ mov r3, r7
+ b .L1354
+.L1362:
+ add r3, r2, #8
+ ldr r3, [r6, r3, lsl #2]
+ str r3, [sp, #20]
+ ldr r3, [sp, #20]
+ lsls r7, r3, #29
+ bmi .L1378
+ ldr r3, [sp, #20]
+ ubfx r3, r3, #15, #1
+ cmp r3, #0
+ bne .L1378
+ cmp r4, #5
+ bls .L1358
+ ldr r7, [sp, #20]
+ ldr r3, [sp, #20]
+ ubfx r7, r7, #3, #5
+ ubfx lr, r3, #27, #1
+ ldr r3, [sp, #20]
+ ldr ip, [sp, #20]
+ orr r7, r7, lr, lsl #5
+ ubfx r3, r3, #16, #5
+ ubfx ip, ip, #29, #1
+ orr r3, r3, ip, lsl #5
+ cmp r7, r3
+ ldr r3, [sp, #20]
+ itete hi
+ ldrhi r7, [sp, #20]
+ ldrls r7, [sp, #20]
+ ubfxhi r3, r3, #3, #5
+ ubfxls r3, r3, #16, #5
+ ite hi
+ ubfxhi r7, r7, #27, #1
+ ubfxls r7, r7, #29, #1
+.L1384:
+ orr r3, r3, r7, lsl #5
+.L1360:
+ cmp r9, r3
+ it cc
+ movcc r9, r3
+.L1357:
+ adds r2, r2, #1
+ b .L1356
+.L1358:
+ cmp r4, #3
+ bls .L1360
+ ldr r7, [sp, #20]
+ ldr r3, [sp, #20]
+ ubfx r7, r7, #3, #5
+ ubfx lr, r3, #28, #1
+ ldr r3, [sp, #20]
+ ldr ip, [sp, #20]
+ orr r7, r7, lr, lsl #5
+ ubfx r3, r3, #16, #5
+ ubfx ip, ip, #30, #1
+ orr r3, r3, ip, lsl #5
+ cmp r7, r3
+ ldr r3, [sp, #20]
+ itete hi
+ ldrhi r7, [sp, #20]
+ ldrls r7, [sp, #20]
+ ubfxhi r3, r3, #3, #5
+ ubfxls r3, r3, #16, #5
+ ite hi
+ ubfxhi r7, r7, #28, #1
+ ubfxls r7, r7, #30, #1
+ b .L1384
+.L1378:
+ mov r9, #-1
+ b .L1357
+.L1375:
+ mov r9, #0
+ b .L1352
+.L1350:
+ cmp r1, #1
+ bne .L1364
+ cmp fp, #0
+ mov r4, fp
+ mov r9, #0
+ ite ne
+ movne r3, #4
+ moveq r3, #0
+ str r3, [sp, #8]
+.L1365:
+ cmp r9, r10
+ bcc .L1367
+ mov r9, #0
+ b .L1363
+.L1367:
+ and fp, r9, #3
+ cmp r8, #0
+ beq .L1380
+ add r3, r8, r9, lsl #9
+.L1366:
+ str r4, [sp]
+ mov r2, fp
+ movs r1, #1
+ mov r0, r6
+ bl NandcCopy1KB
+ movs r3, #0
+ movs r2, #2
+ str r3, [sp, #4]
+ movs r1, #1
+ str r3, [sp]
+ mov r0, r7
+ mov r3, fp
+ add r9, r9, #2
+ bl NandcXferStart
+ movs r1, #1
+ mov r0, r7
+ bl NandcXferComp
+ ldr r3, [sp, #8]
+ add r4, r4, r3
+ b .L1365
+.L1380:
+ mov r3, r8
+ b .L1366
+.L1364:
+ movs r4, #0
+ movs r2, #2
+ mov r3, r4
+ str r4, [sp, #4]
+ str r4, [sp]
+ mov r1, r4
+ bl NandcXferStart
+ mov r9, r4
+ cmp fp, r4
+ ite ne
+ movne r3, #4
+ moveq r3, r4
+ str r3, [sp, #12]
+ str r8, [sp, #8]
+.L1368:
+ cmp r4, r10
+ bcs .L1363
+ mov r1, r5
+ mov r0, r7
+ bl NandcXferComp
+ adds r4, r4, #2
+ ldr r3, [r6, #32]
+ cmp r10, r4
+ str r3, [sp, #20]
+ bls .L1369
+ movs r3, #0
+ movs r2, #2
+ str r3, [sp, #4]
+ movs r1, #0
+ str r3, [sp]
+ mov r0, r7
+ and r3, r4, #3
+ bl NandcXferStart
+.L1369:
+ ldr r3, [sp, #20]
+ lsls r3, r3, #29
+ bmi .L1381
+ ldr r3, [sp, #20]
+ ldr r2, [sp, #20]
+ ubfx r3, r3, #3, #5
+ ubfx r2, r2, #27, #1
+ orr r3, r3, r2, lsl #5
+ cmp r9, r3
+ it cc
+ movcc r9, r3
+.L1370:
+ cmp r8, #0
+ sub r2, r4, #2
+ ldr r3, [sp, #8]
+ and r2, r2, #3
+ str fp, [sp]
+ it eq
+ moveq r3, #0
+ movs r1, #0
+ mov r0, r6
+ bl NandcCopy1KB
+ ldr r3, [sp, #8]
+ add r3, r3, #1024
+ str r3, [sp, #8]
+ ldr r3, [sp, #12]
+ add fp, fp, r3
+ b .L1368
+.L1381:
+ mov r9, #-1
+ b .L1370
+.L1386:
.align 2
-.L1413:
+.L1385:
.word .LANCHOR0
.fnend
.size NandcXferData, .-NandcXferData
.align 1
.global FlashReadRawPage
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FlashReadRawPage, %function
FlashReadRawPage:
.fnstart
@@ -9120,20 +9474,20 @@
.save {r4, r5, r6, r7, r8, lr}
.pad #8
mov r8, r3
- ldr r3, .L1417
+ ldr r3, .L1389
mov r6, r1
mov r7, r2
mov r4, r0
- ldrb r5, [r3, #481] @ zero_extendqisi2
- cbnz r0, .L1416
- ldr r2, .L1417+4
- ldrb r3, [r2, #1] @ zero_extendqisi2
- ldr r2, [r2, #4]
- muls r2, r3, r2
- cmp r1, r2
- it cc
- movcc r5, #4
-.L1416:
+ ldrb r5, [r3, #477] @ zero_extendqisi2
+ cbnz r0, .L1388
+ ldr r1, .L1389+4
+ ldrb r3, [r1, #37] @ zero_extendqisi2
+ ldr r0, [r1, #40]
+ muls r0, r3, r0
+ cmp r0, r6
+ it hi
+ movhi r5, #4
+.L1388:
mov r0, r4
bl NandcWaitFlashReady
mov r0, r4
@@ -9143,30 +9497,32 @@
bl FlashReadCmd
mov r0, r4
bl NandcWaitFlashReady
- mov r2, r5
- movs r1, #0
mov r3, r7
- mov r0, r4
+ mov r2, r5
str r8, [sp]
+ movs r1, #0
+ mov r0, r4
bl NandcXferData
- mov r5, r0
+ mov r1, r0
mov r0, r4
bl NandcFlashDeCs
- mov r0, r5
+ mov r0, r1
add sp, sp, #8
@ sp needed
pop {r4, r5, r6, r7, r8, pc}
-.L1418:
+.L1390:
.align 2
-.L1417:
+.L1389:
.word .LANCHOR1
.word .LANCHOR0
.fnend
.size FlashReadRawPage, .-FlashReadRawPage
.align 1
.global FlashDdrTunningRead
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FlashDdrTunningRead, %function
FlashDdrTunningRead:
.fnstart
@@ -9175,156 +9531,149 @@
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
mov r7, r3
- ldr r4, .L1445
+ ldr r4, .L1416
.pad #20
sub sp, sp, #20
- mov r10, r0
mov fp, r2
- str r1, [sp]
- ldr r3, [r4, #80]
+ stm sp, {r0, r1}
+ ldr r3, [r4, #88]
ldr r3, [r3, #304]
- str r3, [sp, #8]
- ldr r3, [r4, #2260]
+ str r3, [sp, #12]
+ ldr r3, [r4, #2264]
cmp r3, #8
ldr r3, [sp, #56]
ite cc
- movcc r9, #6
- movcs r9, #12
+ movcc r10, #6
+ movcs r10, #12
cmp r3, #0
- beq .L1433
+ beq .L1405
movs r0, #1
bl FlashSetInterfaceMode
movs r0, #1
bl NandcSetMode
- mov r0, r10
+ ldr r0, [sp]
bl FlashReset
mov r3, r7
mov r2, fp
- mov r0, r10
- ldr r1, [sp]
+ ldm sp, {r0, r1}
bl FlashReadRawPage
- mov r6, r0
- ldrb r0, [r4, #2229] @ zero_extendqisi2
+ mov r5, r0
+ ldrb r0, [r4, #2233] @ zero_extendqisi2
bl FlashSetInterfaceMode
- ldrb r0, [r4, #2229] @ zero_extendqisi2
+ ldrb r0, [r4, #2233] @ zero_extendqisi2
bl NandcSetMode
- adds r3, r6, #1
- bne .L1422
-.L1431:
- mov r6, #-1
- b .L1423
-.L1422:
- mov r2, r6
- ldr r0, .L1445+4
- ldr r1, [sp]
- bl printk
- cmp r6, #9
- itt ls
- addls r4, r4, r10, lsl #3
- ldrls r3, [r4, #12]
- ldr r4, .L1445+8
- itttt ls
- ldrls r2, [r3, #3840]
- ldrls r2, [r3]
- orrls r2, r2, #131072
- strls r2, [r3]
- ldr r3, [r4, #1188]
- adds r3, r3, #1
- str r3, [r4, #1188]
- cmp r3, #2048
- bcc .L1423
- movs r7, #0
- str r7, [r4, #1188]
- mov fp, r7
- b .L1421
-.L1433:
- mov r6, #1024
-.L1421:
- movs r4, #0
- mov r8, #-1
- str r4, [sp, #4]
- mov ip, r4
- mov r5, r4
-.L1429:
- uxtb r0, r9
- str ip, [sp, #12]
- bl NandcSetDdrPara
- mov r3, r7
- mov r0, r10
- mov r2, fp
- ldr r1, [sp]
- bl FlashReadRawPage
- adds r3, r6, #1
- cmp r0, r3
- ldr ip, [sp, #12]
- bhi .L1425
- cmp r0, #2
- bhi .L1435
- adds r5, r5, #1
- cmp r5, #9
- bls .L1435
- rsb r4, r5, r9
- mov r6, r0
- mov r8, #0
- b .L1427
-.L1425:
- ldr r3, [sp, #4]
- cmp r3, r5
- bcs .L1436
- cmp r5, #7
- rsb ip, r5, r4
- bhi .L1437
- str r5, [sp, #4]
- b .L1436
-.L1435:
- mov r8, #0
- mov r4, r9
- mov r6, r0
- mov r7, r8
- mov fp, r8
- b .L1426
-.L1436:
- movs r5, #0
-.L1426:
- add r9, r9, #2
- cmp r9, #69
- bls .L1429
-.L1427:
- ldr r3, [sp, #4]
- cmp r3, r5
- it cs
- movcs r4, ip
- b .L1428
-.L1437:
- mov r4, ip
-.L1428:
- cbz r4, .L1430
- ldr r0, .L1445+12
- mov r1, r4
- bl printk
- uxtb r0, r4
- bl NandcSetDdrPara
-.L1430:
- cmp r8, #0
- beq .L1423
- ldr r0, .L1445+16
- mov r1, r10
- ldr r2, [sp]
- bl printk
- ldr r3, [sp, #56]
- cmp r3, #0
- beq .L1431
- ldr r3, [sp, #8]
- ubfx r0, r3, #8, #8
- bl NandcSetDdrPara
-.L1423:
- mov r0, r6
+ adds r3, r5, #1
+ bne .L1394
+.L1403:
+ mov r5, #-1
+.L1391:
+ mov r0, r5
add sp, sp, #20
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L1446:
+.L1394:
+ mov r2, r5
+ ldr r1, [sp, #4]
+ ldr r0, .L1416+4
+ bl printk
+ cmp r5, #9
+ bhi .L1396
+ ldr r3, [sp]
+ ldr r3, [r4, r3, lsl #3]
+ ldr r2, [r3, #3840]
+ ldr r2, [r3]
+ orr r2, r2, #131072
+ str r2, [r3]
+.L1396:
+ ldr r2, .L1416+8
+ ldr r3, [r2, #1196]
+ adds r3, r3, #1
+ cmp r3, #2048
+ str r3, [r2, #1196]
+ bcc .L1391
+ movs r7, #0
+ mov fp, r7
+ str r7, [r2, #1196]
+.L1393:
+ mov r9, #0
+ mov r8, #-1
+ mov r6, r9
+ mov r4, r9
+ str r9, [sp, #8]
+.L1401:
+ uxtb r0, r10
+ bl NandcSetDdrPara
+ mov r3, r7
+ mov r2, fp
+ ldm sp, {r0, r1}
+ bl FlashReadRawPage
+ adds r3, r5, #1
+ cmp r0, r3
+ bhi .L1397
+ cmp r0, #2
+ bhi .L1407
+ adds r4, r4, #1
+ cmp r4, #9
+ bls .L1407
+ mov r3, r6
+ mov r5, r0
+ sub r6, r10, r4
+ mov r8, #0
+.L1399:
+ ldr r2, [sp, #8]
+ cmp r4, r2
+ it ls
+ movls r6, r3
+.L1400:
+ cbz r6, .L1402
+ mov r1, r6
+ ldr r0, .L1416+12
+ bl printk
+ uxtb r0, r6
+ bl NandcSetDdrPara
+.L1402:
+ cmp r8, #0
+ beq .L1391
+ ldm sp, {r1, r2}
+ ldr r0, .L1416+16
+ bl printk
+ ldr r3, [sp, #56]
+ cmp r3, #0
+ beq .L1403
+ ldr r3, [sp, #12]
+ ubfx r0, r3, #8, #8
+ bl NandcSetDdrPara
+ b .L1391
+.L1405:
+ mov r5, #1024
+ b .L1393
+.L1397:
+ ldr r3, [sp, #8]
+ cmp r4, r3
+ bls .L1408
+ cmp r4, #7
+ sub r6, r9, r4
+ bhi .L1400
+ str r4, [sp, #8]
+.L1408:
+ movs r4, #0
+ b .L1398
+.L1407:
+ mov r8, #0
+ mov r9, r10
+ mov r5, r0
+ mov r7, r8
+ mov fp, r8
+.L1398:
+ add r10, r10, #2
+ cmp r10, #69
+ bls .L1401
+ mov r3, r6
+ mov r6, r9
+ b .L1399
+.L1417:
.align 2
-.L1445:
+.L1416:
.word .LANCHOR0
.word .LC90
.word .LANCHOR4
@@ -9334,8 +9683,10 @@
.size FlashDdrTunningRead, .-FlashDdrTunningRead
.align 1
.global FlashReadPage
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FlashReadPage, %function
FlashReadPage:
.fnstart
@@ -9344,98 +9695,95 @@
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 r8, r2
+ mov r7, r2
mov r5, r0
mov r6, r1
- mov r7, r3
+ mov r8, r3
bl FlashReadRawPage
adds r2, r0, #1
mov r4, r0
- bne .L1448
- ldr r9, .L1467+4
- ldrb fp, [r9, #8] @ zero_extendqisi2
+ bne .L1419
+ ldr r9, .L1437+4
+ ldrb fp, [r9, #44] @ zero_extendqisi2
mov r10, r9
cmp fp, #0
- bne .L1449
-.L1451:
- ldrb r3, [r10, #2252] @ zero_extendqisi2
- ldr r9, .L1467+4
- cbz r3, .L1448
- b .L1466
-.L1449:
- movs r3, #0
- mov r0, r5
- strb r3, [r9, #8]
+ bne .L1420
+.L1422:
+ ldrb r3, [r10, #2256] @ zero_extendqisi2
+ cbz r3, .L1419
+ ldr r3, [r10, #88]
mov r1, r6
- mov r3, r7
- mov r2, r8
- bl FlashReadRawPage
- strb fp, [r9, #8]
- adds r3, r0, #1
- beq .L1451
- mov r4, r0
- b .L1448
-.L1466:
- ldr r3, [r9, #80]
- mov r1, r6
+ mov r2, r7
mov r0, r5
- mov r2, r8
- ldr r10, [r3, #304]
+ ldr r9, [r3, #304]
movs r3, #1
str r3, [sp]
- mov r3, r7
+ mov r3, r8
bl FlashDdrTunningRead
adds r1, r0, #1
mov r4, r0
- beq .L1452
- ldrb r3, [r9, #2312] @ zero_extendqisi2
+ beq .L1423
+ ldrb r3, [r10, #2316] @ zero_extendqisi2
cmp r0, r3, lsr #1
- bls .L1448
-.L1452:
- ubfx r0, r10, #8, #8
+ bls .L1419
+.L1423:
+ ubfx r0, r9, #8, #8
bl NandcSetDdrPara
-.L1448:
- ldr r9, .L1467+8
- ldr ip, [r9, #1192]
- cmp ip, #0
- beq .L1453
- adds r2, r4, #1
- bne .L1453
+ b .L1419
+.L1420:
+ movs r3, #0
+ mov r2, r7
+ strb r3, [r9, #44]
mov r1, r6
- mov r2, r8
- mov r3, r7
+ mov r3, r8
mov r0, r5
- blx ip
- mov r3, r6
- mov r2, r5
+ bl FlashReadRawPage
+ adds r3, r0, #1
+ strb fp, [r9, #44]
+ beq .L1422
mov r4, r0
- ldr r0, .L1467
- mov r1, r4
+.L1419:
+ ldr r9, .L1437+8
+ ldr r10, [r9, #1200]
+ cmp r10, #0
+ beq .L1418
+ adds r2, r4, #1
+ bne .L1418
+ mov r3, r8
+ mov r2, r7
+ mov r1, r6
+ mov r0, r5
+ blx r10
+ mov r3, r6
+ mov r4, r0
+ mov r1, r0
+ mov r2, r5
+ ldr r0, .L1437
bl printk
adds r3, r4, #1
- bne .L1453
- ldr r3, .L1467+4
- ldrb r3, [r3, #144] @ zero_extendqisi2
- cbz r3, .L1453
+ bne .L1418
+ ldr r3, .L1437+4
+ ldrb r3, [r3, #152] @ zero_extendqisi2
+ cbz r3, .L1418
mov r0, r5
bl flash_enter_slc_mode
- ldr r4, [r9, #1192]
- mov r0, r5
+ ldr r4, [r9, #1200]
+ mov r3, r8
+ mov r2, r7
mov r1, r6
- mov r2, r8
- mov r3, r7
+ mov r0, r5
blx r4
mov r4, r0
mov r0, r5
bl flash_exit_slc_mode
-.L1453:
+.L1418:
mov r0, r4
add sp, sp, #12
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L1468:
+.L1438:
.align 2
-.L1467:
+.L1437:
.word .LC93
.word .LANCHOR0
.word .LANCHOR4
@@ -9443,8 +9791,10 @@
.size FlashReadPage, .-FlashReadPage
.align 1
.global FlashDdrParaScan
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FlashDdrParaScan, %function
FlashDdrParaScan:
.fnstart
@@ -9453,60 +9803,60 @@
push {r0, r1, r4, r5, r6, r7, r8, lr}
.save {r4, r5, r6, r7, r8, lr}
.pad #8
- mov r7, r0
- ldr r4, .L1479
- mov r6, r1
+ mov r6, r0
+ ldr r4, .L1450
movs r5, #0
- ldrb r0, [r4, #2229] @ zero_extendqisi2
+ mov r7, r1
+ ldrb r0, [r4, #2233] @ zero_extendqisi2
bl FlashSetInterfaceMode
- ldrb r0, [r4, #2229] @ zero_extendqisi2
+ ldrb r0, [r4, #2233] @ zero_extendqisi2
bl NandcSetMode
- mov r1, r6
- mov r2, r5
mov r3, r5
- mov r0, r7
- str r5, [sp]
- bl FlashDdrTunningRead
- mov r1, r6
mov r2, r5
+ mov r1, r7
+ str r5, [sp]
+ mov r0, r6
+ bl FlashDdrTunningRead
mov r3, r5
mov r8, r0
- mov r0, r7
+ mov r2, r5
+ mov r1, r7
+ mov r0, r6
bl FlashReadRawPage
adds r0, r0, #1
- beq .L1470
+ beq .L1440
cmp r8, #-1
- bne .L1471
-.L1470:
- ldrb r3, [r4, #2229] @ zero_extendqisi2
+ bne .L1441
+.L1440:
+ ldrb r3, [r4, #2233] @ zero_extendqisi2
lsls r3, r3, #31
- bpl .L1471
+ bpl .L1441
movs r0, #1
bl FlashSetInterfaceMode
movs r0, #1
bl NandcSetMode
- ldr r3, .L1479
- movs r2, #0
- strb r2, [r3, #2252]
- b .L1472
-.L1471:
- movs r3, #1
- strb r3, [r4, #2252]
-.L1472:
+ movs r3, #0
+.L1449:
movs r0, #0
+ strb r3, [r4, #2256]
add sp, sp, #8
@ sp needed
pop {r4, r5, r6, r7, r8, pc}
-.L1480:
+.L1441:
+ movs r3, #1
+ b .L1449
+.L1451:
.align 2
-.L1479:
+.L1450:
.word .LANCHOR0
.fnend
.size FlashDdrParaScan, .-FlashDdrParaScan
.align 1
.global FlashLoadPhyInfo
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FlashLoadPhyInfo, %function
FlashLoadPhyInfo:
.fnstart
@@ -9514,136 +9864,141 @@
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+ movs r3, #60
.pad #20
sub sp, sp, #20
- ldr r3, .L1496
- movs r4, #0
- ldr r7, .L1496+4
- mov r9, #4
- ldr r5, .L1496+8
- mov r8, #-1
- ldr r0, [r3] @ unaligned
- ldr r3, [r7, #4]
- str r4, [r5, #1200]
- mov r6, r5
- str r0, [sp, #12] @ unaligned
- mov r0, r4
+ ldr r6, .L1466
+ movs r5, #0
+ mov r8, #4
+ strb r3, [sp, #12]
+ movs r3, #40
+ strb r3, [sp, #13]
+ movs r3, #24
+ strb r3, [sp, #14]
+ movs r3, #16
+ ldr r4, .L1466+4
+ mov r7, #-1
+ strb r3, [sp, #15]
+ mov r0, r5
+ ldr r3, [r6, #40]
+ ldr r10, .L1466+24
+ str r5, [r4, #1208]
str r3, [sp, #4]
- ldr r3, [r5, #1184]
- str r3, [r5, #1196]
+ ldr r3, [r4, #1192]
+ str r3, [r4, #1204]
bl flash_enter_slc_mode
-.L1482:
- add fp, r4, #1
- mov r10, #0
-.L1484:
+.L1453:
+ add fp, r5, #1
+ mov r9, #0
+.L1455:
add r3, sp, #12
- ldrb r0, [r3, r10] @ zero_extendqisi2
+ ldrb r0, [r3, r9] @ zero_extendqisi2
bl FlashBchSel
- movs r0, #0
- mov r1, r4
- ldr r2, [r5, #1184]
- mov r3, r0
+ movs r3, #0
+ ldr r2, [r4, #1192]
+ mov r1, r5
+ mov r0, r3
bl FlashReadRawPage
adds r0, r0, #1
- bne .L1483
- movs r0, #0
+ bne .L1454
+ movs r3, #0
+ ldr r2, [r4, #1192]
mov r1, fp
- ldr r2, [r6, #1184]
- mov r3, r0
+ mov r0, r3
bl FlashReadRawPage
adds r0, r0, #1
- bne .L1483
- add r10, r10, #1
- cmp r10, #4
- beq .L1485
- b .L1484
-.L1486:
- add r0, fp, #12
+ bne .L1454
+ add r9, r9, #1
+ cmp r9, #4
+ bne .L1455
+.L1456:
+ ldr r3, [sp, #4]
+ subs r8, r8, #1
+ add r5, r5, r3
+ bne .L1453
+ mov r0, r8
+ b .L1465
+.L1457:
movw r1, #2036
+ add r0, r9, #12
bl js_hash
- ldr r3, [fp, #8]
+ ldr r3, [r9, #8]
cmp r3, r0
- bne .L1492
- ldr r8, .L1496+24
- add r1, fp, #160
+ bne .L1463
movs r2, #32
- add r0, r8, #472
+ add r1, r9, #160
+ ldr r0, .L1466+8
bl ftl_memcpy
- ldr r1, [r6, #1196]
+ ldr r1, [r4, #1204]
movs r2, #32
- ldr r0, .L1496+12
+ ldr r0, .L1466+12
adds r1, r1, #192
bl ftl_memcpy
- ldr r1, [r6, #1196]
+ ldr r1, [r4, #1204]
mov r2, #852
- ldr r0, .L1496+16
+ ldr r0, .L1466+16
adds r1, r1, #224
bl ftl_memcpy
- ldrh r0, [r8, #482]
+ ldrh r0, [r10, #478]
bl FlashBlockAlignInit
- ldr r8, [r6, #1196]
- str r4, [r6, #1200]
- mov r0, r4
- ldr r1, [r7, #4]
- ldr r3, [r8, #1076]
- strb r3, [r7, #2252]
+ ldr r7, [r4, #1204]
+ mov r0, r5
+ str r5, [r4, #1208]
+ ldr r1, [r6, #40]
+ ldr r3, [r7, #1076]
+ strb r3, [r6, #2256]
bl __aeabi_uidiv
adds r0, r0, #1
cmp r0, #1
- itee hi
- strhi r0, [r6, #1204]
+ itet ls
movls r3, #2
- strls r3, [r6, #1204]
- ldrh r3, [r8, #14]
- mov r8, #0
- strb r3, [r5, #1208]
-.L1485:
- ldr r3, [sp, #4]
- subs r9, r9, #1
- add r4, r4, r3
- bne .L1482
- mov r0, r9
-.L1495:
+ strhi r0, [r4, #1212]
+ strls r3, [r4, #1212]
+ ldrh r3, [r7, #14]
+ movs r7, #0
+ strb r3, [r4, #1216]
+ b .L1456
+.L1463:
+ mov r7, #-1
+ b .L1456
+.L1454:
+ ldr r9, [r4, #1204]
+ ldr r2, .L1466+20
+ ldr r3, [r9]
+ cmp r3, r2
+ bne .L1456
+ cmp r7, #0
+ bne .L1457
+ ldr r1, [r6, #40]
+ mov r0, r5
+ bl __aeabi_uidiv
+ adds r0, r0, #1
+ str r0, [r4, #1212]
+ mov r0, r7
+.L1465:
bl flash_exit_slc_mode
- mov r0, r8
+ mov r0, r7
add sp, sp, #20
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L1483:
- ldr fp, [r5, #1196]
- ldr r2, .L1496+20
- ldr r3, [fp]
- cmp r3, r2
- bne .L1485
- cmp r8, #0
- bne .L1486
- mov r0, r4
- ldr r1, [r7, #4]
- bl __aeabi_uidiv
- ldr r3, .L1496+8
- adds r0, r0, #1
- str r0, [r3, #1204]
- mov r0, r8
- b .L1495
-.L1492:
- mov r8, #-1
- b .L1485
-.L1497:
+.L1467:
.align 2
-.L1496:
- .word .LANCHOR3+11
+.L1466:
.word .LANCHOR0
.word .LANCHOR4
- .word .LANCHOR0+48
- .word .LANCHOR0+1210
+ .word .LANCHOR1+468
+ .word .LANCHOR0+52
+ .word .LANCHOR0+1216
.word 1312902724
.word .LANCHOR1
.fnend
.size FlashLoadPhyInfo, .-FlashLoadPhyInfo
.align 1
.global ToshibaReadRetrial
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type ToshibaReadRetrial, %function
ToshibaReadRetrial:
.fnstart
@@ -9651,171 +10006,167 @@
@ 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, r0
+ ldr r4, .L1495
.pad #28
sub sp, sp, #28
- mov r9, r0
mov fp, r3
+ str r1, [sp, #12]
str r2, [sp, #8]
- str r1, [sp, #16]
bl NandcWaitFlashReady
- ldr r4, .L1526
- add r3, r4, r9, lsl #3
- ldrb r2, [r3, #16] @ zero_extendqisi2
- ldr r7, [r3, #12]
- ldrb r3, [r4, #1208] @ zero_extendqisi2
- add r6, r2, #8
+ add r3, r4, r8, lsl #3
+ ldr r6, [r4, r8, lsl #3]
+ ldrb r1, [r3, #4] @ zero_extendqisi2
+ ldrb r3, [r4, #84] @ zero_extendqisi2
+ add r7, r1, #8
subs r3, r3, #67
- add r6, r7, r6, lsl #8
+ add r7, r6, r7, lsl #8
cmp r3, #1
- lsl r3, r2, #8
- str r3, [sp, #12]
- bls .L1515
- ldrb r5, [r4, #2252] @ zero_extendqisi2
- cbz r5, .L1516
+ lsl r3, r1, #8
+ str r3, [sp, #16]
+ bls .L1485
+ ldrb r5, [r4, #2256] @ zero_extendqisi2
+ cbz r5, .L1470
+ movs r5, #1
movs r0, #0
- str r2, [sp, #20]
bl NandcSetDdrMode
- movs r3, #1
- ldr r2, [sp, #20]
+.L1470:
+ lsls r3, r1, #8
+ movs r2, #92
+ adds r3, r6, r3
+ str r2, [r3, #2056]
+ movs r2, #197
+ str r2, [r3, #2056]
+.L1469:
+ mov r3, #-1
+ mov r9, #1
str r3, [sp, #4]
- b .L1500
-.L1516:
- str r5, [sp, #4]
-.L1500:
- ldr r3, [sp, #12]
- movs r1, #92
- adds r3, r7, r3
- str r1, [r3, #2056]
- movs r1, #197
- str r1, [r3, #2056]
- b .L1499
-.L1515:
- movs r3, #0
- str r3, [sp, #4]
-.L1499:
- mov r8, #1
- mov r10, #-1
- lsls r3, r2, #8
+ lsls r3, r1, #8
str r3, [sp, #20]
-.L1501:
- ldr r3, .L1526+4
- ldrb r3, [r3, #1209] @ zero_extendqisi2
+.L1471:
+ ldr r3, .L1495+4
+ ldrb r3, [r3, #1217] @ zero_extendqisi2
adds r3, r3, #1
- cmp r8, r3
- bcs .L1525
- ldrb r3, [r4, #1208] @ zero_extendqisi2
- mov r0, r6
- uxtb r1, r8
- subs r3, r3, #67
- cmp r3, #1
- bhi .L1502
- bl SandiskSetRRPara
- b .L1503
-.L1502:
- bl ToshibaSetRRPara
-.L1503:
- ldrb r3, [r4, #1208] @ zero_extendqisi2
- cmp r3, #34
- bne .L1504
- ldr r3, .L1526+4
- ldrb r3, [r3, #1209] @ zero_extendqisi2
- subs r3, r3, #3
- cmp r8, r3
- itttt eq
- moveq r2, #179
- ldreq r3, [sp, #20]
- addeq r3, r7, r3
- streq r2, [r3, #2056]
-.L1504:
- ldr r3, [sp, #12]
- movs r2, #38
- adds r3, r7, r3
- str r2, [r3, #2056]
- movs r2, #93
- str r2, [r3, #2056]
- ldr r3, [sp, #4]
- cbz r3, .L1505
- movs r0, #4
- bl NandcSetDdrMode
- mov r0, r9
- mov r3, fp
- ldr r1, [sp, #16]
- ldr r2, [sp, #8]
- bl FlashReadRawPage
- mov r5, r0
- movs r0, #0
- bl NandcSetDdrMode
- b .L1506
-.L1505:
- mov r0, r9
- ldr r1, [sp, #16]
- ldr r2, [sp, #8]
- mov r3, fp
- bl FlashReadRawPage
- mov r5, r0
-.L1506:
- adds r2, r5, #1
- beq .L1507
- ldrb r2, [r4, #2312] @ zero_extendqisi2
- cmp r10, #-1
- it eq
- moveq r10, r5
- add r2, r2, r2, lsl #1
- cmp r5, r2, asr #2
- bcc .L1509
- mov fp, #0
- str fp, [sp, #8]
-.L1507:
- add r8, r8, #1
- b .L1501
-.L1525:
- mov r5, r10
-.L1509:
- ldrb r2, [r4, #1208] @ zero_extendqisi2
- mov r0, r6
+ cmp r9, r3
+ bcc .L1480
+ ldr r10, [sp, #4]
+.L1479:
+ ldrb r2, [r4, #84] @ zero_extendqisi2
movs r1, #0
+ mov r0, r7
subs r2, r2, #67
cmp r2, #1
- bhi .L1511
+ bhi .L1481
bl SandiskSetRRPara
- b .L1512
-.L1511:
- bl ToshibaSetRRPara
-.L1512:
- ldr r3, [sp, #12]
+.L1482:
+ ldr r3, [sp, #16]
movs r2, #255
- add r7, r7, r3
- str r2, [r7, #2056]
- ldrb r2, [r4, #2312] @ zero_extendqisi2
+ add r6, r6, r3
+ str r2, [r6, #2056]
+ ldrb r2, [r4, #2316] @ zero_extendqisi2
add r2, r2, r2, lsl #1
- cmp r5, r2, asr #2
- bcc .L1513
- adds r3, r5, #1
+ cmp r10, r2, asr #2
+ bcc .L1483
+ cmp r10, #-1
it ne
- movne r5, #256
-.L1513:
- mov r0, r9
+ movne r10, #256
+.L1483:
+ mov r0, r8
bl NandcWaitFlashReady
- ldr r3, [sp, #4]
- cbz r3, .L1514
+ cbz r5, .L1468
movs r0, #4
bl NandcSetDdrMode
-.L1514:
- mov r0, r5
+.L1468:
+ mov r0, r10
add sp, sp, #28
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L1527:
+.L1485:
+ movs r5, #0
+ b .L1469
+.L1480:
+ ldrb r3, [r4, #84] @ zero_extendqisi2
+ mov r0, r7
+ uxtb r1, r9
+ subs r3, r3, #67
+ cmp r3, #1
+ bhi .L1472
+ bl SandiskSetRRPara
+.L1473:
+ ldrb r3, [r4, #84] @ zero_extendqisi2
+ cmp r3, #34
+ bne .L1474
+ ldr r3, .L1495+4
+ ldrb r3, [r3, #1217] @ zero_extendqisi2
+ subs r3, r3, #3
+ cmp r9, r3
+ itttt eq
+ ldreq r3, [sp, #20]
+ moveq r2, #179
+ addeq r3, r6, r3
+ streq r2, [r3, #2056]
+.L1474:
+ ldr r3, [sp, #16]
+ movs r2, #38
+ adds r3, r6, r3
+ str r2, [r3, #2056]
+ movs r2, #93
+ str r2, [r3, #2056]
+ cbz r5, .L1475
+ movs r0, #4
+ bl NandcSetDdrMode
+ mov r3, fp
+ ldr r2, [sp, #8]
+ ldr r1, [sp, #12]
+ mov r0, r8
+ bl FlashReadRawPage
+ mov r10, r0
+ movs r0, #0
+ bl NandcSetDdrMode
+.L1476:
+ cmp r10, #-1
+ beq .L1477
+ ldrb r2, [r4, #2316] @ zero_extendqisi2
+ ldr r3, [sp, #4]
+ add r2, r2, r2, lsl #1
+ cmp r3, #-1
+ it eq
+ moveq r3, r10
+ str r3, [sp, #4]
+ cmp r10, r2, asr #2
+ bcc .L1479
+ mov fp, #0
+ str fp, [sp, #8]
+.L1477:
+ add r9, r9, #1
+ b .L1471
+.L1472:
+ bl ToshibaSetRRPara
+ b .L1473
+.L1475:
+ mov r3, fp
+ ldr r2, [sp, #8]
+ ldr r1, [sp, #12]
+ mov r0, r8
+ bl FlashReadRawPage
+ mov r10, r0
+ b .L1476
+.L1481:
+ bl ToshibaSetRRPara
+ b .L1482
+.L1496:
.align 2
-.L1526:
+.L1495:
.word .LANCHOR0
.word .LANCHOR4
.fnend
.size ToshibaReadRetrial, .-ToshibaReadRetrial
.align 1
.global SamsungReadRetrial
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type SamsungReadRetrial, %function
SamsungReadRetrial:
.fnstart
@@ -9824,73 +10175,77 @@
push {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
mov r8, r0
- ldr r5, .L1541
- mov r9, r2
- mov r7, r3
+ ldr r5, .L1510
+ mov r9, r3
mov fp, r1
+ mov r10, r2
bl NandcWaitFlashReady
- add r2, r5, r8, lsl #3
- mov r10, #1
+ movs r7, #1
mov r4, #-1
- ldrb r3, [r2, #16] @ zero_extendqisi2
- ldr r6, [r2, #12]
- adds r3, r3, #8
+ add r3, r5, r8, lsl #3
+ ldrb r6, [r3, #4] @ zero_extendqisi2
+ add r3, r6, #8
+ ldr r6, [r5, r8, lsl #3]
add r6, r6, r3, lsl #8
-.L1529:
- ldr r3, .L1541+4
- ldrb r3, [r3, #1209] @ zero_extendqisi2
+.L1498:
+ ldr r3, .L1510+4
+ ldrb r3, [r3, #1217] @ zero_extendqisi2
adds r3, r3, #1
- cmp r10, r3
- bcs .L1532
+ cmp r7, r3
+ bcc .L1502
+.L1501:
+ movs r1, #0
mov r0, r6
- uxtb r1, r10
bl SamsungSetRRPara
- mov r2, r9
- mov r0, r8
+ ldrb r3, [r5, #2316] @ zero_extendqisi2
+ add r3, r3, r3, lsl #1
+ cmp r4, r3, asr #2
+ bcc .L1497
+ adds r3, r4, #1
+ it ne
+ movne r4, #256
+.L1497:
+ mov r0, r4
+ pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L1502:
+ uxtb r1, r7
+ mov r0, r6
+ bl SamsungSetRRPara
+ mov r2, r10
+ mov r3, r9
mov r1, fp
- mov r3, r7
+ mov r0, r8
bl FlashReadRawPage
adds r2, r0, #1
- beq .L1530
- ldrb r3, [r5, #2312] @ zero_extendqisi2
+ beq .L1499
+ ldrb r3, [r5, #2316] @ zero_extendqisi2
cmp r4, #-1
it eq
moveq r4, r0
add r3, r3, r3, lsl #1
cmp r0, r3, asr #2
- bcc .L1535
- movs r7, #0
- mov r9, r7
-.L1530:
- add r10, r10, #1
- b .L1529
-.L1535:
+ bcc .L1505
+ mov r9, #0
+ mov r10, r9
+.L1499:
+ adds r7, r7, #1
+ b .L1498
+.L1505:
mov r4, r0
-.L1532:
- mov r0, r6
- movs r1, #0
- bl SamsungSetRRPara
- ldrb r3, [r5, #2312] @ zero_extendqisi2
- add r3, r3, r3, lsl #1
- cmp r4, r3, asr #2
- bcc .L1534
- adds r3, r4, #1
- it ne
- movne r4, #256
-.L1534:
- mov r0, r4
- pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L1542:
+ b .L1501
+.L1511:
.align 2
-.L1541:
+.L1510:
.word .LANCHOR0
.word .LANCHOR4
.fnend
.size SamsungReadRetrial, .-SamsungReadRetrial
.align 1
.global MicronReadRetrial
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type MicronReadRetrial, %function
MicronReadRetrial:
.fnstart
@@ -9898,156 +10253,162 @@
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
- mov r8, r3
- ldr r3, .L1567
+ mov r7, r3
+ ldr r3, .L1536
+ mov r10, r2
.pad #36
sub sp, sp, #36
- mov r6, r0
- mov fp, r2
- str r1, [sp, #20]
- ldrb r5, [r3, #2312] @ zero_extendqisi2
- ldrb r3, [r3, #144] @ zero_extendqisi2
- cbnz r3, .L1544
- add r5, r5, r5, lsl #1
- ubfx r5, r5, #2, #8
- b .L1545
-.L1544:
- ldr r2, .L1567+4
- smull r2, r3, r5, r2
- uxtb r5, r3
-.L1545:
- ldr r3, .L1567
- mov r10, #0
- add r3, r3, r6, lsl #3
- str r3, [sp, #24]
-.L1555:
- mov r0, r6
+ mov r5, r0
+ str r1, [sp, #24]
+ ldrb r2, [r3, #2316] @ zero_extendqisi2
+ ldrb r3, [r3, #152] @ zero_extendqisi2
+ cmp r3, #0
+ bne .L1513
+ add r2, r2, r2, lsl #1
+ asr fp, r2, #2
+.L1514:
+ movs r3, #0
+ str r3, [sp, #8]
+ ldr r3, .L1536
+ add r3, r3, r5, lsl #3
+ str r3, [sp, #28]
+.L1524:
+ mov r0, r5
mov r9, #0
bl NandcWaitFlashReady
+ ldr r3, .L1536
mov r4, #-1
- ldr r3, [sp, #24]
- ldr r3, [r3, #12]
- str r3, [sp, #12]
- ldr r3, [sp, #24]
- ldrb r3, [r3, #16] @ zero_extendqisi2
+ ldr r3, [r3, r5, lsl #3]
str r3, [sp, #16]
- ldr r2, [sp, #16]
- ldr r3, [sp, #12]
- add r7, r3, r2, lsl #8
-.L1546:
- ldr r3, .L1567+8
- ldrb r3, [r3, #1209] @ zero_extendqisi2
+ ldr r3, [sp, #28]
+ ldrb r3, [r3, #4] @ zero_extendqisi2
+ str r3, [sp, #20]
+ ldr r2, [sp, #20]
+ ldr r3, [sp, #16]
+ add r6, r3, r2, lsl #8
+.L1515:
+ ldr r3, .L1536+4
+ ldrb r3, [r3, #1217] @ zero_extendqisi2
cmp r9, r3
- bcs .L1549
+ bcc .L1519
+.L1518:
+ ldr r3, [sp, #16]
+ movs r0, #200
+ ldr r2, [sp, #20]
+ movs r6, #0
+ add r8, r3, r2, lsl #8
+ movs r3, #239
+ str r3, [r8, #2056]
+ movs r3, #137
+ str r3, [r8, #2052]
+ bl ndelay
+ cmp r4, fp
+ str r6, [r8, #2048]
+ str r6, [r8, #2048]
+ str r6, [r8, #2048]
+ str r6, [r8, #2048]
+ bcc .L1520
+ adds r1, r4, #1
+ mov r3, r9
+ it ne
+ movne r4, #256
+ ldr r2, [sp, #24]
+ str r4, [sp]
+ mov r1, r9
+ ldr r0, .L1536+8
+ bl printk
+ ldr r3, [sp, #8]
+ cmp r3, #0
+ bne .L1522
+ ldr r3, .L1536
+ ldrb r3, [r3, #152] @ zero_extendqisi2
+ cmp r3, #0
+ beq .L1512
+ adds r2, r4, #1
+ bne .L1512
+ movs r1, #3
+ mov r0, r5
+ bl micron_auto_read_calibration_config
+ movs r3, #1
+ str r3, [sp, #8]
+ b .L1524
+.L1513:
+ ldr r3, .L1536+12
+ smull r2, r3, r2, r3
+ mov fp, r3
+ b .L1514
+.L1519:
movs r3, #239
movs r0, #200
- str r3, [r7, #2056]
+ str r3, [r6, #2056]
movs r3, #137
- str r3, [r7, #2052]
- bl NandcDelayns
- mov ip, #0
+ str r3, [r6, #2052]
+ mov r8, #0
+ bl ndelay
add r3, r9, #1
- mov r0, r6
- str r3, [r7, #2048]
- mov r2, fp
- str ip, [r7, #2048]
- str ip, [r7, #2048]
- str ip, [r7, #2048]
- str r3, [sp, #8]
- mov r3, r8
- ldr r1, [sp, #20]
- str ip, [sp, #28]
+ mov r2, r10
+ str r3, [r6, #2048]
+ mov r0, r5
+ str r8, [r6, #2048]
+ str r3, [sp, #12]
+ mov r3, r7
+ str r8, [r6, #2048]
+ ldr r1, [sp, #24]
+ str r8, [r6, #2048]
bl FlashReadRawPage
adds r3, r0, #1
- beq .L1547
+ beq .L1516
cmp r4, #-1
it eq
moveq r4, r0
- cmp r0, r5
- ldr ip, [sp, #28]
- bcc .L1557
- mov r8, ip
- mov fp, ip
-.L1547:
- ldr r9, [sp, #8]
- b .L1546
-.L1557:
+ cmp r0, fp
+ bcc .L1526
+ mov r7, r8
+ mov r10, r8
+.L1516:
+ ldr r9, [sp, #12]
+ b .L1515
+.L1526:
mov r4, r0
- mov r8, ip
- mov fp, ip
-.L1549:
- ldr r2, [sp, #16]
- movs r0, #200
- ldr r3, [sp, #12]
- movs r7, #0
- add r3, r3, r2, lsl #8
- movs r2, #239
- str r3, [sp, #8]
- str r2, [r3, #2056]
- movs r2, #137
- str r2, [r3, #2052]
- bl NandcDelayns
- cmp r4, r5
- ldr r3, [sp, #8]
- str r7, [r3, #2048]
- str r7, [r3, #2048]
- str r7, [r3, #2048]
- str r7, [r3, #2048]
- bcc .L1551
- adds r1, r4, #1
- ldr r0, .L1567+12
- it ne
- movne r4, #256
- mov r1, r9
- str r4, [sp]
- mov r3, r9
- ldr r2, [sp, #20]
- bl printk
- cmp r10, #0
- bne .L1553
- ldr r3, .L1567
- ldrb r3, [r3, #144] @ zero_extendqisi2
- cbz r3, .L1562
- adds r2, r4, #1
- bne .L1562
- mov r0, r6
- movs r1, #3
- bl micron_auto_read_calibration_config
- mov r10, #1
- b .L1555
-.L1553:
- mov r0, r6
- mov r1, r7
+ mov r7, r8
+ mov r10, r8
+ b .L1518
+.L1522:
+ mov r1, r6
+ mov r0, r5
bl micron_auto_read_calibration_config
adds r3, r4, #1
it ne
movne r4, #256
- b .L1562
-.L1551:
- cmp r10, #0
- beq .L1562
- mov r0, r6
- mov r1, r7
- bl micron_auto_read_calibration_config
- mov r4, #256
-.L1562:
+.L1512:
mov r0, r4
add sp, sp, #36
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L1568:
+.L1520:
+ ldr r3, [sp, #8]
+ cmp r3, #0
+ beq .L1512
+ mov r1, r6
+ mov r0, r5
+ bl micron_auto_read_calibration_config
+ mov r4, #256
+ b .L1512
+.L1537:
.align 2
-.L1567:
+.L1536:
.word .LANCHOR0
- .word 1431655766
.word .LANCHOR4
.word .LC94
+ .word 1431655766
.fnend
.size MicronReadRetrial, .-MicronReadRetrial
.align 1
.global HynixReadRetrial
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type HynixReadRetrial, %function
HynixReadRetrial:
.fnstart
@@ -10056,267 +10417,267 @@
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 r8, r3
- ldr r5, .L1586
- mov r10, r2
- mov r7, r0
- mov fp, r1
- adds r2, r5, r0
+ mov r9, r3
+ ldr r5, .L1555
+ mov r8, #0
mov r6, #-1
- ldr r3, [r5, #44]
- ldrb r4, [r2, #1222] @ zero_extendqisi2
- ldrb r9, [r5, #1212] @ zero_extendqisi2
+ mov fp, r2
+ mov r7, r0
+ str r1, [sp, #4]
+ ldr r3, [r5, #48]
+ adds r2, r5, r0
+ ldrb r4, [r2, #1228] @ zero_extendqisi2
+ ldrb r10, [r5, #1218] @ zero_extendqisi2
ldrb r3, [r3, #19] @ zero_extendqisi2
subs r3, r3, #7
cmp r3, #1
it ls
- ldrbls r4, [r2, #1230] @ zero_extendqisi2
+ ldrbls r4, [r2, #1236] @ zero_extendqisi2
bl NandcWaitFlashReady
- mov ip, #0
-.L1571:
- cmp ip, r9
- bcs .L1575
+.L1540:
+ cmp r8, r10
+ bcc .L1545
+.L1544:
+ ldr r3, [r5, #48]
+ add r7, r7, r5
+ ldrb r3, [r3, #19] @ zero_extendqisi2
+ subs r3, r3, #7
+ cmp r3, #1
+ ldrb r3, [r5, #2316] @ zero_extendqisi2
+ ite ls
+ strbls r4, [r7, #1236]
+ strbhi r4, [r7, #1228]
+ add r3, r3, r3, lsl #1
+ cmp r6, r3, asr #2
+ bcc .L1538
+ adds r3, r6, #1
+ it ne
+ movne r6, #256
+.L1538:
+ mov r0, r6
+ add sp, sp, #12
+ @ sp needed
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L1545:
adds r4, r4, #1
- mov r0, r7
- ldrb r1, [r5, #1211] @ zero_extendqisi2
+ ldr r2, .L1555+4
uxtb r4, r4
- ldr r2, .L1586+4
- cmp r4, r9
- it cs
- movcs r4, #0
- str ip, [sp, #4]
+ ldrb r1, [r5, #1217] @ zero_extendqisi2
+ mov r0, r7
+ cmp r10, r4
+ it ls
+ movls r4, #0
mov r3, r4
bl HynixSetRRPara
- mov r2, r10
+ mov r2, fp
+ mov r3, r9
+ ldr r1, [sp, #4]
mov r0, r7
- mov r1, fp
- mov r3, r8
bl FlashReadRawPage
adds r2, r0, #1
- ldr ip, [sp, #4]
- beq .L1573
- ldrb r3, [r5, #2312] @ zero_extendqisi2
+ beq .L1542
+ ldrb r3, [r5, #2316] @ zero_extendqisi2
cmp r6, #-1
it eq
moveq r6, r0
add r3, r3, r3, lsl #1
cmp r0, r3, asr #2
- bcc .L1580
- mov r8, #0
- mov r10, r8
-.L1573:
- add ip, ip, #1
- b .L1571
-.L1580:
+ bcc .L1549
+ mov r9, #0
+ mov fp, r9
+.L1542:
+ add r8, r8, #1
+ b .L1540
+.L1549:
mov r6, r0
-.L1575:
- ldr r3, [r5, #44]
- add r7, r7, r5
- ldrb r3, [r3, #19] @ zero_extendqisi2
- subs r3, r3, #7
- cmp r3, #1
- ldrb r3, [r5, #2312] @ zero_extendqisi2
- ite ls
- strbls r4, [r7, #1230]
- strbhi r4, [r7, #1222]
- add r3, r3, r3, lsl #1
- cmp r6, r3, asr #2
- bcc .L1579
- adds r3, r6, #1
- it ne
- movne r6, #256
-.L1579:
- mov r0, r6
- add sp, sp, #12
- @ sp needed
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L1587:
+ b .L1544
+.L1556:
.align 2
-.L1586:
+.L1555:
.word .LANCHOR0
- .word .LANCHOR0+1214
+ .word .LANCHOR0+1220
.fnend
.size HynixReadRetrial, .-HynixReadRetrial
.align 1
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type samsung_read_retrial, %function
samsung_read_retrial:
.fnstart
- @ args = 0, pretend = 0, frame = 24
+ @ args = 0, pretend = 0, frame = 16
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
- .pad #36
- sub sp, sp, #36
- mov r9, r0
- mov r10, r2
- mov r7, r3
- str r1, [sp, #16]
+ .pad #28
+ sub sp, sp, #28
+ mov r10, r0
+ mov fp, r2
+ mov r9, r3
+ str r1, [sp, #12]
bl NandcWaitFlashReady
- ldr r3, .L1614
- add r2, r3, r9, lsl #3
- ldr r4, [r2, #12]
- ldrb r2, [r2, #16] @ zero_extendqisi2
- str r2, [sp, #12]
- ldrb r2, [r3, #2228] @ zero_extendqisi2
+ ldr r3, .L1582
+ ldr r2, [r3, r10, lsl #3]
str r3, [sp, #20]
+ str r2, [sp, #8]
+ add r2, r3, r10, lsl #3
+ ldrb r6, [r2, #4] @ zero_extendqisi2
+ ldrb r2, [r3, #2232] @ zero_extendqisi2
cmp r2, #0
- bne .L1589
- ldr r3, [sp, #12]
- mov r5, #-1
- movs r6, #1
- lsl fp, r3, #8
- add r8, r4, fp
- addw r3, r8, #2056
- str r3, [sp, #24]
-.L1593:
- ldr r3, [sp, #24]
- mov ip, #0
- ldr r1, [sp, #16]
- mov r0, r9
- str ip, [sp, #28]
+ bne .L1558
+ ldr r3, [sp, #8]
+ lsl r8, r6, #8
+ mov r4, #-1
+ movs r7, #1
+ add r5, r3, r8
+ addw r3, r5, #2056
+ str r3, [sp, #16]
+.L1562:
+ ldr r3, [sp, #16]
+ movs r6, #0
+ ldr r1, [sp, #12]
+ mov r0, r10
mov r2, r3
movs r3, #239
str r3, [r2]
movs r3, #141
- str r3, [r8, #2052]
- mov r2, r10
- ldr r3, .L1614+4
- ldrsb r3, [r6, r3]
- str r3, [r8, #2048]
- mov r3, r7
- str ip, [r8, #2048]
- str ip, [r8, #2048]
- str ip, [r8, #2048]
+ str r3, [r5, #2052]
+ mov r2, fp
+ ldr r3, .L1582+4
+ ldrsb r3, [r7, r3]
+ str r3, [r5, #2048]
+ mov r3, r9
+ str r6, [r5, #2048]
+ str r6, [r5, #2048]
+ str r6, [r5, #2048]
bl FlashReadRawPage
adds r1, r0, #1
- beq .L1590
+ beq .L1559
ldr r3, [sp, #20]
- cmp r5, #-1
+ cmp r4, #-1
it eq
- moveq r5, r0
- ldrb r3, [r3, #2312] @ zero_extendqisi2
+ moveq r4, r0
+ ldrb r3, [r3, #2316] @ zero_extendqisi2
add r3, r3, r3, lsl #1
cmp r0, r3, asr #2
- bcc .L1601
- ldr ip, [sp, #28]
- mov r7, ip
- mov r10, ip
-.L1590:
- adds r6, r6, #1
- cmp r6, #26
- bne .L1593
- b .L1592
-.L1601:
- mov r5, r0
-.L1592:
- add fp, fp, r4
+ bcc .L1570
+ mov r9, r6
+ mov fp, r6
+.L1559:
+ adds r7, r7, #1
+ cmp r7, #26
+ bne .L1562
+.L1561:
+ ldr r3, [sp, #8]
+ add r3, r3, r8
+ mov r8, r3
movs r3, #239
- str r3, [fp, #2056]
- ldr r3, [sp, #12]
- add r4, r4, r3, lsl #8
+ str r3, [r8, #2056]
movs r3, #141
- b .L1613
-.L1589:
- ldr r3, [sp, #12]
- mov r5, #-1
- ldr r8, .L1614+12
- movs r6, #1
- lsl ip, r3, #8
- add fp, r4, ip
- addw r3, fp, #2056
- str r3, [sp, #24]
-.L1598:
- ldr r3, [sp, #24]
- mov r0, r9
- ldr r1, [sp, #16]
- str ip, [sp, #28]
+.L1581:
+ str r3, [r5, #2052]
+ movs r3, #0
+ str r3, [r5, #2048]
+ str r3, [r5, #2048]
+ str r3, [r5, #2048]
+ str r3, [r5, #2048]
+ ldr r3, .L1582
+ ldrb r3, [r3, #2316] @ zero_extendqisi2
+ add r3, r3, r3, lsl #1
+ cmp r4, r3, asr #2
+ bcc .L1568
+ adds r3, r4, #1
+ ldr r2, [sp, #12]
+ it ne
+ movne r4, #256
+ mov r3, r7
+ str r4, [sp]
+ mov r1, r7
+ ldr r0, .L1582+8
+ bl printk
+.L1568:
+ mov r0, r10
+ bl NandcWaitFlashReady
+ mov r0, r4
+ add sp, sp, #28
+ @ sp needed
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L1570:
+ mov r4, r0
+ b .L1561
+.L1558:
+ ldr r3, [sp, #8]
+ lsls r6, r6, #8
+ ldr r8, .L1582+12
+ mov r4, #-1
+ movs r7, #1
+ adds r5, r3, r6
+ addw r3, r5, #2056
+ str r3, [sp, #16]
+.L1567:
+ ldr r3, [sp, #16]
+ mov r0, r10
+ ldr r1, [sp, #12]
mov r2, r3
movs r3, #239
str r3, [r2]
movs r3, #137
- str r3, [fp, #2052]
- mov r2, r10
+ str r3, [r5, #2052]
+ mov r2, fp
ldrb r3, [r8, #4] @ zero_extendqisi2
- str r3, [fp, #2048]
+ str r3, [r5, #2048]
ldrb r3, [r8, #5] @ zero_extendqisi2
- str r3, [fp, #2048]
+ str r3, [r5, #2048]
ldrb r3, [r8, #6] @ zero_extendqisi2
- str r3, [fp, #2048]
+ str r3, [r5, #2048]
ldrb r3, [r8, #7] @ zero_extendqisi2
- str r3, [fp, #2048]
- mov r3, r7
+ str r3, [r5, #2048]
+ mov r3, r9
bl FlashReadRawPage
adds r2, r0, #1
- ldr ip, [sp, #28]
- beq .L1595
- ldr r3, [sp, #20]
- cmp r5, #-1
+ beq .L1564
+ ldr r3, .L1582
+ cmp r4, #-1
it eq
- moveq r5, r0
- ldrb r3, [r3, #2312] @ zero_extendqisi2
+ moveq r4, r0
+ ldrb r3, [r3, #2316] @ zero_extendqisi2
add r3, r3, r3, lsl #1
cmp r0, r3, asr #2
- bcc .L1602
- movs r7, #0
- mov r10, r7
-.L1595:
- adds r6, r6, #1
+ bcc .L1571
+ mov r9, #0
+ mov fp, r9
+.L1564:
+ adds r7, r7, #1
add r8, r8, #4
- cmp r6, #26
- bne .L1598
- b .L1597
-.L1602:
- mov r5, r0
-.L1597:
- add ip, ip, r4
+ cmp r7, #26
+ bne .L1567
+.L1566:
+ ldr r3, [sp, #8]
+ add r3, r3, r6
+ mov r6, r3
movs r3, #239
- str r3, [ip, #2056]
- ldr r3, [sp, #12]
- add r4, r4, r3, lsl #8
+ str r3, [r6, #2056]
movs r3, #137
-.L1613:
- str r3, [r4, #2052]
- movs r3, #0
- str r3, [r4, #2048]
- str r3, [r4, #2048]
- str r3, [r4, #2048]
- str r3, [r4, #2048]
- ldr r3, [sp, #20]
- ldrb r3, [r3, #2312] @ zero_extendqisi2
- add r3, r3, r3, lsl #1
- cmp r5, r3, asr #2
- bcc .L1599
- adds r3, r5, #1
- ldr r0, .L1614+8
- it ne
- movne r5, #256
- mov r1, r6
- str r5, [sp]
- mov r3, r6
- ldr r2, [sp, #16]
- bl printk
-.L1599:
- mov r0, r9
- bl NandcWaitFlashReady
- mov r0, r5
- add sp, sp, #36
- @ sp needed
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L1615:
+ b .L1581
+.L1571:
+ mov r4, r0
+ b .L1566
+.L1583:
.align 2
-.L1614:
+.L1582:
.word .LANCHOR0
- .word .LANCHOR3+16
+ .word .LANCHOR3+11
.word .LC95
- .word .LANCHOR3+44
+ .word .LANCHOR3+37
.fnend
.size samsung_read_retrial, .-samsung_read_retrial
.align 1
.global FlashProgPage
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FlashProgPage, %function
FlashProgPage:
.fnstart
@@ -10326,35 +10687,35 @@
.save {r4, r5, r6, r7, r8, lr}
.pad #8
mov r8, r3
- ldr r3, .L1619
+ ldr r3, .L1587
mov r5, r1
mov r7, r2
mov r4, r0
- ldrb r6, [r3, #481] @ zero_extendqisi2
- cbnz r0, .L1617
- ldr r2, .L1619+4
- ldrb r3, [r2, #1] @ zero_extendqisi2
- ldr r1, [r2, #4]
- muls r1, r3, r1
- cmp r5, r1
- bcs .L1617
- ldrb r3, [r2] @ zero_extendqisi2
+ ldrb r6, [r3, #477] @ zero_extendqisi2
+ cbnz r0, .L1585
+ ldr r1, .L1587+4
+ ldrb r3, [r1, #37] @ zero_extendqisi2
+ ldr r0, [r1, #40]
+ muls r0, r3, r0
+ cmp r0, r5
+ bls .L1585
+ ldrb r3, [r1, #36] @ zero_extendqisi2
cmp r3, #0
it ne
movne r6, #4
-.L1617:
+.L1585:
mov r0, r4
bl NandcWaitFlashReady
mov r0, r4
bl NandcFlashCs
- mov r0, r4
mov r1, r5
- bl FlashProgFirstCmd
- mov r2, r6
- mov r3, r7
mov r0, r4
- movs r1, #1
+ bl FlashProgFirstCmd
+ mov r3, r7
+ mov r2, r6
str r8, [sp]
+ movs r1, #1
+ mov r0, r4
bl NandcXferData
mov r1, r5
mov r0, r4
@@ -10364,281 +10725,285 @@
mov r1, r5
mov r0, r4
bl FlashReadStatus
- mov r5, r0
+ mov r1, r0
mov r0, r4
bl NandcFlashDeCs
- and r0, r5, #1
+ and r0, r1, #1
add sp, sp, #8
@ sp needed
pop {r4, r5, r6, r7, r8, pc}
-.L1620:
+.L1588:
.align 2
-.L1619:
+.L1587:
.word .LANCHOR1
.word .LANCHOR0
.fnend
.size FlashProgPage, .-FlashProgPage
.align 1
.global FlashSavePhyInfo
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FlashSavePhyInfo, %function
FlashSavePhyInfo:
.fnstart
- @ args = 0, pretend = 0, frame = 8
+ @ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
- .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
- .pad #12
- ldr r4, .L1634
- ldr r5, .L1634+4
- ldr r8, .L1634+12
- ldr r3, [r4, #1184]
- mov fp, r4
- ldrb r0, [r4, #1210] @ zero_extendqisi2
- mov r10, r5
- str r3, [r4, #1196]
+ push {r4, r5, r6, r7, r8, r9, r10, lr}
+ .save {r4, r5, r6, r7, r8, r9, r10, lr}
+ ldr r4, .L1602
+ ldr r5, .L1602+4
+ ldr r3, [r4, #1192]
+ ldrb r0, [r4, #1218] @ zero_extendqisi2
+ ldr r8, .L1602+12
+ str r3, [r4, #1204]
bl FlashBchSel
- movs r1, #0
mov r2, #2048
- ldr r0, [r4, #1184]
+ movs r1, #0
+ ldr r0, [r4, #1192]
bl ftl_memset
- ldr r3, [r4, #1196]
- addw r1, r5, #2068
+ ldr r3, [r4, #1204]
movs r2, #32
+ addw r1, r5, #2072
str r8, [r3]
- ldr r0, [r4, #1196]
- ldrb r3, [r5, #2230] @ zero_extendqisi2
+ ldr r0, [r4, #1204]
+ ldrb r3, [r5, #2234] @ zero_extendqisi2
adds r0, r0, #16
strh r3, [r0, #-4] @ movhi
- ldrb r3, [r5, #1] @ zero_extendqisi2
+ ldrb r3, [r5, #37] @ zero_extendqisi2
strh r3, [r0, #-2] @ movhi
- ldrb r3, [r5, #2252] @ zero_extendqisi2
+ ldrb r3, [r5, #2256] @ zero_extendqisi2
str r3, [r0, #1060]
bl ftl_memcpy
- ldr r0, [r4, #1196]
- addw r1, r5, #2232
+ ldr r0, [r4, #1204]
movs r2, #8
+ addw r1, r5, #2236
adds r0, r0, #80
bl ftl_memcpy
- ldr r0, [r4, #1196]
- addw r1, r5, #1172
+ ldr r0, [r4, #1204]
movs r2, #32
+ addw r1, r5, #1180
adds r0, r0, #96
bl ftl_memcpy
- ldr r0, [r4, #1196]
- ldr r1, .L1634+8
+ ldr r0, [r4, #1204]
movs r2, #32
+ ldr r1, .L1602+8
adds r0, r0, #160
bl ftl_memcpy
- ldr r0, [r4, #1196]
- add r1, r5, #48
+ ldr r0, [r4, #1204]
movs r2, #32
+ add r1, r5, #52
adds r0, r0, #192
bl ftl_memcpy
- ldr r0, [r4, #1196]
+ ldr r0, [r4, #1204]
mov r2, #852
- addw r1, r5, #1210
+ add r1, r5, #1216
adds r0, r0, #224
bl ftl_memcpy
- ldr r6, [r4, #1196]
+ ldr r6, [r4, #1204]
movw r1, #2036
add r0, r6, #12
bl js_hash
mov r3, #1592
- str r3, [r6, #4]
- ldr r3, [r4, #1212]
- str r3, [r4, #1196]
str r0, [r6, #8]
- movs r0, #0
- bl flash_enter_slc_mode
+ str r3, [r6, #4]
movs r6, #0
+ ldr r3, [r4, #1220]
mov r7, r6
-.L1627:
- ldr r1, [r5, #4]
movs r0, #0
- mov r2, r0
+ str r3, [r4, #1204]
+ bl flash_enter_slc_mode
+.L1595:
+ ldr r1, [r5, #40]
+ movs r2, #0
+ mov r0, r2
muls r1, r7, r1
bl FlashEraseBlock
- ldrb r9, [r5, #144] @ zero_extendqisi2
+ ldrb r9, [r5, #152] @ zero_extendqisi2
cmp r9, #0
- beq .L1622
+ beq .L1590
mov r9, #0
-.L1623:
- ldr r1, [r5, #4]
- movs r0, #0
- ldr r2, [r4, #1184]
- mov r3, r0
+.L1591:
+ ldr r1, [r5, #40]
+ movs r3, #0
+ ldr r2, [r4, #1192]
+ mov r0, r3
mla r1, r1, r7, r9
add r9, r9, #1
bl FlashProgPage
cmp r9, #10
- bne .L1623
- b .L1624
-.L1622:
- ldr r1, [r10, #4]
- mov r3, r9
- ldr r2, [r4, #1184]
- mov r0, r9
- muls r1, r7, r1
- bl FlashProgPage
- ldr r1, [r10, #4]
- mov r0, r9
- ldr r2, [r4, #1184]
- mov r3, r9
- muls r1, r7, r1
- adds r1, r1, #1
- bl FlashProgPage
-.L1624:
- ldr r1, [r5, #4]
- movs r0, #0
- ldr r2, [r4, #1212]
- mov r3, r0
+ bne .L1591
+.L1592:
+ ldr r1, [r5, #40]
+ movs r3, #0
+ ldr r2, [r4, #1220]
+ mov r0, r3
+ add r10, r7, #1
muls r1, r7, r1
bl FlashReadRawPage
- adds r2, r7, #1
adds r0, r0, #1
- beq .L1625
- ldr r9, [fp, #1196]
+ beq .L1593
+ ldr r9, [r4, #1204]
ldr r3, [r9]
cmp r3, r8
- bne .L1625
- add r0, r9, #12
+ bne .L1593
movw r1, #2036
- str r2, [sp, #4]
+ add r0, r9, #12
bl js_hash
ldr r3, [r9, #8]
cmp r3, r0
- ldr r2, [sp, #4]
- bne .L1625
- ldr r3, [r10, #4]
+ bne .L1593
+ ldr r3, [r5, #40]
cmp r6, #1
- str r2, [fp, #1204]
- mul r3, r3, r7
- str r3, [fp, #1200]
- beq .L1628
+ str r10, [r4, #1212]
+ mul r7, r7, r3
+ str r7, [r4, #1208]
+ beq .L1596
movs r6, #1
-.L1625:
- cmp r2, #4
- mov r7, r2
- bne .L1627
- b .L1626
-.L1628:
- movs r6, #2
-.L1626:
+.L1593:
+ mov r7, r10
+ cmp r7, #4
+ bne .L1595
+.L1594:
movs r0, #0
bl flash_exit_slc_mode
clz r0, r6
lsrs r0, r0, #5
negs r0, r0
- add sp, sp, #12
- @ sp needed
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L1635:
+ pop {r4, r5, r6, r7, r8, r9, r10, pc}
+.L1590:
+ ldr r1, [r5, #40]
+ mov r3, r9
+ ldr r2, [r4, #1192]
+ mov r0, r9
+ muls r1, r7, r1
+ bl FlashProgPage
+ ldr r1, [r5, #40]
+ mov r3, r9
+ ldr r2, [r4, #1192]
+ mov r0, r9
+ muls r1, r7, r1
+ adds r1, r1, #1
+ bl FlashProgPage
+ b .L1592
+.L1596:
+ movs r6, #2
+ b .L1594
+.L1603:
.align 2
-.L1634:
+.L1602:
.word .LANCHOR4
.word .LANCHOR0
- .word .LANCHOR1+472
+ .word .LANCHOR1+468
.word 1312902724
.fnend
.size FlashSavePhyInfo, .-FlashSavePhyInfo
.align 1
.global FlashReadIdbDataRaw
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FlashReadIdbDataRaw, %function
FlashReadIdbDataRaw:
.fnstart
- @ args = 0, pretend = 0, frame = 8
+ @ args = 0, pretend = 0, frame = 16
@ frame_needed = 0, uses_anonymous_args = 0
- push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
- .pad #12
- mov r9, r0
- ldr r3, .L1655
- ldr r4, .L1655+4
- ldr r0, [r3] @ unaligned
- ldr r3, [r4, #2248]
- ldrb r10, [r4, #2312] @ zero_extendqisi2
- str r0, [sp, #4] @ unaligned
- cbz r3, .L1637
+ movs r3, #60
+ .pad #20
+ sub sp, sp, #20
+ ldr r4, .L1622
+ mov r10, r0
+ strb r3, [sp, #12]
+ movs r3, #40
+ strb r3, [sp, #13]
+ movs r3, #24
+ strb r3, [sp, #14]
+ movs r3, #16
+ strb r3, [sp, #15]
+ ldrb r3, [r4, #2316] @ zero_extendqisi2
+ str r3, [sp, #4]
+ ldr r3, [r4, #2252]
+ cbz r3, .L1605
movs r0, #0
bl flash_enter_slc_mode
-.L1637:
- mov r0, r9
- movs r1, #0
- mov r2, #2048
+.L1605:
+ ldr r6, .L1622+4
mov r8, #-1
- bl ftl_memset
movs r5, #2
-.L1638:
- ldrb r3, [r4, #1] @ zero_extendqisi2
- cmp r5, r3
- bcs .L1642
- movs r7, #0
-.L1640:
- add r3, sp, #4
- ldr r6, .L1655+8
- ldrb fp, [r7, r3] @ zero_extendqisi2
- mov r0, fp
- bl FlashBchSel
- ldr r1, [r4, #4]
- movs r0, #0
- ldr r2, [r6, #1184]
- muls r1, r5, r1
- mov r3, r0
- bl FlashReadRawPage
- adds r0, r0, #1
- bne .L1639
- adds r7, r7, #1
- cmp r7, #4
- bne .L1640
- b .L1641
-.L1639:
- ldr r3, [r6, #1184]
- ldr r2, .L1655+12
- ldr r3, [r3]
- cmp r3, r2
- bne .L1641
- mov r1, fp
- ldr r0, .L1655+16
- bl printk
mov r2, #2048
- mov r0, r9
- ldr r1, [r6, #1184]
- bl ftl_memcpy
- ldr r3, [r6, #1184]
- ldr r2, .L1655+4
- ldr r3, [r3, #512]
- strb r3, [r2, #1]
- ldr r3, [r6, #1204]
- cmp r3, r5
- bls .L1645
- str r5, [r6, #1204]
- bl FlashSavePhyInfo
- mov r8, #0
-.L1641:
- adds r5, r5, #1
- b .L1638
-.L1645:
- mov r8, #0
-.L1642:
+ movs r1, #0
mov r0, r10
+ bl ftl_memset
+.L1606:
+ ldrb r3, [r4, #37] @ zero_extendqisi2
+ cmp r5, r3
+ bcc .L1611
+.L1610:
+ ldr r0, [sp, #4]
bl FlashBchSel
- ldr r3, [r4, #2248]
- cbz r3, .L1649
+ ldr r3, [r4, #2252]
+ cbz r3, .L1604
movs r0, #0
bl flash_exit_slc_mode
-.L1649:
+.L1604:
mov r0, r8
- add sp, sp, #12
+ add sp, sp, #20
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L1656:
+.L1611:
+ movs r7, #0
+ add fp, sp, #12
+.L1608:
+ ldrb r9, [r7, fp] @ zero_extendqisi2
+ mov r0, r9
+ bl FlashBchSel
+ ldr r1, [r4, #40]
+ movs r3, #0
+ ldr r2, [r6, #1192]
+ mov r0, r3
+ muls r1, r5, r1
+ bl FlashReadRawPage
+ adds r0, r0, #1
+ bne .L1607
+ adds r7, r7, #1
+ cmp r7, #4
+ bne .L1608
+.L1609:
+ adds r5, r5, #1
+ b .L1606
+.L1614:
+ mov r8, #0
+ b .L1610
+.L1607:
+ ldr r3, [r6, #1192]
+ ldr r2, .L1622+8
+ ldr r3, [r3]
+ cmp r3, r2
+ bne .L1609
+ mov r1, r9
+ ldr r0, .L1622+12
+ bl printk
+ mov r2, #2048
+ ldr r1, [r6, #1192]
+ mov r0, r10
+ bl ftl_memcpy
+ ldr r3, [r6, #1192]
+ ldr r3, [r3, #512]
+ strb r3, [r4, #37]
+ ldr r3, [r6, #1212]
+ cmp r5, r3
+ bcs .L1614
+ str r5, [r6, #1212]
+ mov r8, #0
+ bl FlashSavePhyInfo
+ b .L1609
+.L1623:
.align 2
-.L1655:
- .word .LANCHOR3+11
+.L1622:
.word .LANCHOR0
.word .LANCHOR4
.word -52655045
@@ -10647,619 +11012,603 @@
.size FlashReadIdbDataRaw, .-FlashReadIdbDataRaw
.align 1
.global FlashInit
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FlashInit, %function
FlashInit:
.fnstart
- @ args = 0, pretend = 0, frame = 0
+ @ args = 0, pretend = 0, frame = 8
@ 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 r5, r0
- .pad #20
- sub sp, sp, #20
+ mov r7, r0
+ ldr r5, .L1740
+ .pad #28
+ sub sp, sp, #28
+ mov r0, #32768
+ movs r6, #0
+ bl ftl_malloc
+ str r0, [r5, #1192]
mov r0, #32768
bl ftl_malloc
- ldr r4, .L1780
- ldr r6, .L1780+4
- movs r7, #0
- add r9, r6, #12
- mov r8, r4
- str r0, [r4, #1184]
- mov r0, #32768
- bl ftl_malloc
- str r0, [r4, #1212]
+ str r0, [r5, #1220]
mov r0, #4096
- bl ftl_malloc
- str r0, [r4, #1216]
+ ldr r4, .L1740+4
+ mov r8, r6
+ bl ftl_dma32_malloc
+ str r0, [r5, #1224]
mov r0, #32768
bl ftl_malloc
- str r0, [r4, #1220]
+ ldr fp, .L1740+40
+ str r0, [r5, #1228]
mov r0, #4096
- bl ftl_malloc
+ bl ftl_dma32_malloc
movs r3, #50
- str r7, [r4, #1204]
- strb r3, [r4, #1208]
- strb r3, [r6, #1]
+ str r0, [r5, #1232]
+ strb r3, [r4, #37]
+ mov r0, r7
+ strb r3, [r5, #1216]
+ addw r7, r4, #2072
movs r3, #128
- str r7, [r4, #1188]
- str r3, [r6, #4]
+ str r6, [r5, #1212]
+ str r3, [r4, #40]
movs r3, #60
- strb r7, [r4, #1228]
- strb r3, [r4, #1210]
- strb r7, [r6, #2252]
- strb r7, [r6]
- str r0, [r4, #1224]
- mov r0, r5
+ strb r6, [r4, #2256]
+ str r6, [r5, #1196]
+ strb r6, [r4, #36]
+ strb r6, [r5, #1236]
+ strb r3, [r5, #1218]
bl NandcInit
- addw r5, r6, #2068
- mov r4, r6
-.L1663:
- add r3, r9, r7, lsl #3
- uxtb fp, r7
- ldr r6, [r9, r7, lsl #3]
- ldrb r10, [r3, #4] @ zero_extendqisi2
- mov r0, fp
+.L1630:
+ ldr r3, [r4, r6, lsl #3]
+ uxtb r9, r6
+ add r2, r4, r6, lsl #3
+ mov r0, r9
+ ldrb r10, [r2, #4] @ zero_extendqisi2
+ str r3, [sp, #20]
bl FlashReset
- mov r0, fp
+ mov r0, r9
bl NandcFlashCs
- movs r3, #144
- add r6, r6, r10, lsl #8
+ ldr r3, [sp, #20]
movs r0, #200
- mov r10, #0
- str r3, [r6, #2056]
- str r10, [r6, #2052]
- bl NandcDelayns
- ldr r2, [r6, #2048]
+ add r10, r3, r10, lsl #8
+ movs r3, #144
+ str r3, [r10, #2056]
+ str r8, [r10, #2052]
+ bl ndelay
+ ldr r2, [r10, #2048]
uxtb r2, r2
- strb r2, [r5]
- ldr r1, [r6, #2048]
+ strb r2, [r7]
cmp r2, #44
- strb r1, [r5, #1]
- ldr r1, [r6, #2048]
- strb r1, [r5, #2]
- ldr r1, [r6, #2048]
- strb r1, [r5, #3]
- ldr r1, [r6, #2048]
- strb r1, [r5, #4]
- ldr r1, [r6, #2048]
- strb r1, [r5, #5]
- bne .L1658
+ ldr r1, [r10, #2048]
+ strb r1, [r7, #1]
+ ldr r1, [r10, #2048]
+ strb r1, [r7, #2]
+ ldr r1, [r10, #2048]
+ strb r1, [r7, #3]
+ ldr r1, [r10, #2048]
+ strb r1, [r7, #4]
+ ldr r1, [r10, #2048]
+ strb r1, [r7, #5]
+ bne .L1625
movs r2, #239
movs r0, #200
- str r2, [r6, #2056]
+ str r2, [r10, #2056]
movs r2, #1
- str r2, [r6, #2052]
- bl NandcDelayns
+ str r2, [r10, #2052]
+ bl ndelay
movs r2, #4
- str r2, [r6, #2048]
- str r10, [r6, #2048]
- str r10, [r6, #2048]
- str r10, [r6, #2048]
-.L1658:
- mov r0, fp
+ str r2, [r10, #2048]
+ str r8, [r10, #2048]
+ str r8, [r10, #2048]
+ str r8, [r10, #2048]
+.L1625:
+ mov r0, r9
bl NandcFlashDeCs
- ldrb r2, [r5] @ zero_extendqisi2
+ ldrb r2, [r7] @ zero_extendqisi2
subs r3, r2, #1
uxtb r3, r3
cmp r3, #253
- bhi .L1659
- ldrb r1, [r5, #2] @ zero_extendqisi2
- ldrb r3, [r5, #1] @ zero_extendqisi2
- ldr r0, .L1780+8
- str r1, [sp]
- ldrb r1, [r5, #3] @ zero_extendqisi2
- str r1, [sp, #4]
- ldrb r1, [r5, #4] @ zero_extendqisi2
- str r1, [sp, #8]
- ldrb r1, [r5, #5] @ zero_extendqisi2
+ bhi .L1626
+ ldrb r1, [r7, #5] @ zero_extendqisi2
+ mov r0, fp
+ ldrb r3, [r7, #1] @ zero_extendqisi2
str r1, [sp, #12]
- adds r1, r7, #1
+ ldrb r1, [r7, #4] @ zero_extendqisi2
+ str r1, [sp, #8]
+ ldrb r1, [r7, #3] @ zero_extendqisi2
+ str r1, [sp, #4]
+ ldrb r1, [r7, #2] @ zero_extendqisi2
+ str r1, [sp]
+ adds r1, r6, #1
bl printk
-.L1659:
- cbnz r7, .L1660
- ldrb r3, [r4, #2068] @ zero_extendqisi2
+.L1626:
+ cbnz r6, .L1627
+ ldrb r3, [r4, #2072] @ zero_extendqisi2
subs r3, r3, #1
uxtb r3, r3
cmp r3, #253
- bhi .L1716
- ldr r3, .L1780+4
- ldrb r3, [r3, #2069] @ zero_extendqisi2
+ bhi .L1681
+ ldrb r3, [r4, #2073] @ zero_extendqisi2
cmp r3, #255
- beq .L1716
-.L1660:
- ldrb r3, [r5] @ zero_extendqisi2
- adds r7, r7, #1
- adds r5, r5, #8
+ beq .L1681
+.L1627:
+ ldrb r3, [r7] @ zero_extendqisi2
+ adds r6, r6, #1
+ adds r7, r7, #8
cmp r3, #181
itt eq
moveq r3, #44
- strbeq r3, [r5, #-8]
- cmp r7, #4
- bne .L1663
- ldrb r3, [r4, #2068] @ zero_extendqisi2
+ strbeq r3, [r7, #-8]
+ cmp r6, #4
+ bne .L1630
+ ldrb r3, [r4, #2072] @ zero_extendqisi2
cmp r3, #173
- beq .L1664
- ldr r3, .L1780+4
- ldr r0, [r3, #2256]
+ beq .L1631
+ ldr r0, [r4, #2260]
bl NandcSetDdrMode
-.L1664:
- ldr r6, .L1780+4
- movs r1, #0
+.L1631:
mov r2, #852
- ldr r5, .L1780+12
- addw r0, r6, #1210
+ movs r1, #0
+ ldr r0, .L1740+8
bl ftl_memset
- ldr r0, .L1780+16
- add r3, r0, #472
- str r3, [r4, #44]
- movs r3, #0
- strb r3, [r4, #8]
- ldr r3, [r4, #2264]
- cmp r3, r5
- bne .L1665
- ldrb r2, [r0, #491] @ zero_extendqisi2
+ ldr r6, .L1740+12
+ ldr r3, .L1740+16
+ ldr r1, [r4, #2268]
+ add r2, r3, #468
+ cmp r1, r6
+ str r2, [r4, #48]
+ mov r2, #0
+ strb r2, [r4, #44]
+ bne .L1632
+ ldrb r2, [r3, #487] @ zero_extendqisi2
cmp r2, #50
itt ne
movne r2, #1
- strne r2, [r6, #2248]
-.L1665:
- ldrb r6, [r4, #2069] @ zero_extendqisi2
- cmp r6, #161
- beq .L1666
- cmp r6, #241
- beq .L1666
- cmp r6, #218
- beq .L1666
- and r2, r6, #253
- cmp r2, #209
- beq .L1666
- cmp r6, #220
- bne .L1667
- ldr r2, .L1780+4
- ldrb r2, [r2, #2071] @ zero_extendqisi2
- cmp r2, #149
- bne .L1667
-.L1666:
+ strne r2, [r4, #2252]
+.L1632:
+ ldrb r2, [r4, #2073] @ zero_extendqisi2
+ cmp r2, #161
+ beq .L1633
+ cmp r2, #241
+ beq .L1633
+ cmp r2, #218
+ beq .L1633
+ and r0, r2, #253
+ cmp r0, #209
+ beq .L1633
+ cmp r2, #220
+ bne .L1634
+ ldrb r0, [r4, #2075] @ zero_extendqisi2
+ cmp r0, #149
+ bne .L1634
+.L1633:
movs r7, #16
- strb r7, [r4, #1]
- strb r7, [r8, #1210]
- movs r1, #1
- ldrb r7, [r4, #2068] @ zero_extendqisi2
- strb r1, [r4]
+ movs r0, #1
+ strb r7, [r4, #37]
+ strb r7, [r5, #1218]
+ ldrb r7, [r4, #2072] @ zero_extendqisi2
+ strb r0, [r4, #36]
+ strb r2, [r3, #3414]
cmp r7, #152
- ldr r2, .L1780
- strb r7, [r0, #3417]
- strb r6, [r0, #3418]
- bne .L1669
- ldr r7, .L1780+4
- ldrsb r7, [r7, #2072]
+ strb r7, [r3, #3413]
+ bne .L1636
+ ldrsb r7, [r4, #2076]
cmp r7, #0
- blt .L1670
- movs r1, #24
- strb r1, [r2, #1210]
-.L1669:
- cmp r3, r5
- beq .L1672
- movw r2, #2049
- cmp r3, r2
- bne .L1673
-.L1672:
- movs r3, #16
- strb r3, [r8, #1210]
-.L1673:
- cmp r6, #218
- bne .L1674
- mov r3, #2048
- b .L1775
-.L1674:
- cmp r6, #220
- bne .L1676
- mov r3, #4096
-.L1775:
- strh r3, [r0, #3430] @ movhi
- strb r6, [r0, #3418]
- b .L1675
-.L1676:
- cmp r6, #211
- itttt eq
- moveq r3, #4096
- strheq r3, [r0, #3430] @ movhi
- moveq r3, #2
- strbeq r3, [r0, #3429]
-.L1675:
- ldr r1, .L1780+20
+ blt .L1637
+ movs r0, #24
+ strb r0, [r5, #1218]
+.L1636:
+ cmp r1, r6
+ beq .L1639
+ movw r0, #2049
+ cmp r1, r0
+ bne .L1640
+.L1639:
+ movs r1, #16
+ strb r1, [r5, #1218]
+.L1640:
+ cmp r2, #218
+ bne .L1641
+ mov r1, #2048
+.L1734:
+ strh r1, [r3, #3426] @ movhi
+ strb r2, [r3, #3414]
+.L1642:
movs r2, #32
- ldr r0, .L1780+24
+ ldr r1, .L1740+20
+ ldr r0, .L1740+24
bl ftl_memcpy
- ldr r0, .L1780+28
+ ldr r1, .L1740+28
movs r2, #32
- add r1, r0, #2944
+ sub r0, r1, #2944
bl ftl_memcpy
-.L1667:
- ldrb r3, [r4] @ zero_extendqisi2
- ldr r6, .L1780+4
+.L1634:
+ ldrb r3, [r4, #36] @ zero_extendqisi2
cmp r3, #0
- bne .L1677
+ bne .L1645
bl FlashLoadPhyInfoInRam
- cbnz r0, .L1679
- ldr r3, [r6, #44]
+ cbnz r0, .L1647
+ ldr r3, [r4, #48]
ldrh r3, [r3, #16]
lsrs r3, r3, #8
lsls r7, r3, #31
and r0, r3, #7
- strb r0, [r6, #2229]
- bmi .L1679
+ strb r0, [r4, #2233]
+ bmi .L1647
movs r3, #1
- strb r3, [r6, #2252]
+ strb r3, [r4, #2256]
bl FlashSetInterfaceMode
- ldrb r0, [r6, #2229] @ zero_extendqisi2
+ ldrb r0, [r4, #2233] @ zero_extendqisi2
bl NandcSetMode
-.L1679:
- ldr r3, [r4, #44]
- ldr r6, .L1780+4
+.L1647:
+ ldr r3, [r4, #48]
ldrb r3, [r3, #26] @ zero_extendqisi2
- strb r3, [r4, #144]
+ strb r3, [r4, #152]
bl FlashLoadPhyInfo
cmp r0, #0
- beq .L1677
- ldr r3, [r6, #2256]
- cbz r3, .L1682
+ beq .L1645
+ ldr r3, [r4, #2260]
+ cmp r3, #0
+ beq .L1650
movs r0, #1
bl FlashSetInterfaceMode
movs r0, #1
- b .L1776
-.L1781:
- .align 2
-.L1780:
- .word .LANCHOR4
- .word .LANCHOR0
- .word .LC97
- .word 1446522928
- .word .LANCHOR1
- .word .LANCHOR1+3292
- .word .LANCHOR0+48
- .word .LANCHOR1+472
-.L1682:
- ldrb r0, [r6, #2229] @ zero_extendqisi2
- bl FlashSetInterfaceMode
- ldrb r0, [r6, #2229] @ zero_extendqisi2
-.L1776:
+.L1735:
bl NandcSetMode
bl FlashLoadPhyInfo
cmp r0, #0
- beq .L1677
+ beq .L1645
movs r0, #1
- ldr r6, .L1782
bl FlashSetInterfaceMode
movs r0, #1
bl NandcSetMode
- ldr r3, [r4, #44]
- ldr r0, .L1782+4
+ ldr r3, [r4, #48]
+ ldr r0, .L1740+32
ldrh r1, [r3, #14]
bl printk
bl FlashLoadPhyInfoInRam
adds r1, r0, #1
- beq .L1736
+ beq .L1624
bl FlashDieInfoInit
- ldr r3, [r6, #44]
+ ldr r3, [r4, #48]
ldrb r0, [r3, #19] @ zero_extendqisi2
bl FlashGetReadRetryDefault
- ldr r2, .L1782+8
- ldr r3, [r6, #44]
- ldrh r2, [r2, #3270]
+ ldr r3, [r4, #48]
+ ldr r2, .L1740+36
ldrb r1, [r3, #9] @ zero_extendqisi2
+ ldrh r2, [r2, #3270]
addw r2, r2, #4095
cmp r1, r2, asr #12
- blt .L1684
+ blt .L1652
ldrh r2, [r3, #14]
adds r2, r2, #255
cmp r1, r2, asr #8
- bge .L1685
-.L1684:
+ bge .L1653
+ b .L1741
+.L1742:
+ .align 2
+.L1740:
+ .word .LANCHOR4
+ .word .LANCHOR0
+ .word .LANCHOR0+1216
+ .word 1446522928
+ .word .LANCHOR1
+ .word .LANCHOR1+3288
+ .word .LANCHOR0+52
+ .word .LANCHOR1+3412
+ .word .LC98
+ .word .LANCHOR2
+ .word .LC97
+.L1741:
+.L1652:
ldrh r2, [r3, #14]
bic r2, r2, #255
strh r2, [r3, #14] @ movhi
-.L1685:
- ldrb r3, [r4, #2229] @ zero_extendqisi2
+.L1653:
+ ldrb r3, [r4, #2233] @ zero_extendqisi2
tst r3, #6
- beq .L1686
+ beq .L1654
bl FlashSavePhyInfo
movs r0, #0
bl flash_enter_slc_mode
+ ldr r1, [r5, #1208]
movs r0, #0
- ldr r1, [r8, #1200]
bl FlashDdrParaScan
movs r0, #0
bl flash_exit_slc_mode
-.L1686:
+.L1654:
bl FlashSavePhyInfo
-.L1677:
- ldr r2, [r4, #44]
- mov r9, #0
- str r9, [r8, #1192]
- ldr r7, .L1782
- ldrb r3, [r2, #26] @ zero_extendqisi2
- ldrh r0, [r2, #10]
- ldrb r10, [r2, #18] @ zero_extendqisi2
- strb r3, [r4, #144]
- ldrh r3, [r2, #16]
- ldr r6, .L1782+12
- ubfx r1, r3, #7, #1
- strb r1, [r4, #8]
- ubfx r1, r3, #3, #1
- strb r1, [r8, #1229]
- ubfx r1, r3, #4, #1
+.L1645:
+ ldr r7, [r4, #48]
+ mov r8, #0
+ str r8, [r5, #1200]
+ ldrb r3, [r7, #26] @ zero_extendqisi2
+ ldrb r1, [r7, #12] @ zero_extendqisi2
+ ldrh r0, [r7, #10]
+ strb r3, [r4, #152]
+ ldrh r3, [r7, #16]
+ ubfx r2, r3, #7, #1
+ strb r2, [r4, #44]
+ ubfx r2, r3, #3, #1
+ strb r2, [r5, #1237]
+ ubfx r2, r3, #4, #1
ubfx r3, r3, #8, #3
- strb r1, [r4, #2240]
- strb r3, [r4, #2229]
- ldrb r1, [r2, #12] @ zero_extendqisi2
+ strb r2, [r4, #2244]
+ strb r3, [r4, #2233]
bl __aeabi_idiv
mov r1, r0
- mov r0, r10
+ ldrb r0, [r7, #18] @ zero_extendqisi2
bl BuildFlashLsbPageTable
bl FlashDieInfoInit
- ldr r3, [r4, #44]
+ ldr r3, [r4, #48]
ldrh r2, [r3, #16]
lsls r2, r2, #25
- bpl .L1688
+ bpl .L1656
ldrb r0, [r3, #19] @ zero_extendqisi2
- ldrb r3, [r7, #1211] @ zero_extendqisi2
- strb r0, [r7, #1208]
- strb r3, [r7, #1209]
- ldrb r3, [r7, #1212] @ zero_extendqisi2
- strb r3, [r6, #1209]
+ ldrb r3, [r4, #1217] @ zero_extendqisi2
+ strb r0, [r4, #84]
+ strb r3, [r4, #85]
+ ldrb r3, [r4, #1218] @ zero_extendqisi2
+ strb r3, [r5, #1217]
subs r3, r0, #1
cmp r3, #7
- bhi .L1689
- ldr r3, .L1782+16
- str r3, [r6, #1192]
+ bhi .L1657
+ ldr r3, .L1743
+ str r3, [r5, #1200]
subs r3, r0, #5
cmp r3, #1
- bls .L1690
+ bls .L1658
cmp r0, #8
- bne .L1691
-.L1690:
+ bne .L1659
+.L1658:
+ movs r3, #1
+ str r3, [r4, #2308]
+.L1659:
cmp r0, #7
- mov r3, #1
- str r3, [r4, #2304]
- beq .L1717
+ ldr r3, .L1743+4
+ beq .L1660
+ sub r2, r3, #8
cmp r0, #8
- b .L1779
-.L1717:
- ldr r3, .L1782+20
-.L1693:
+ it ne
+ movne r3, r2
+.L1660:
subs r1, r3, #1
movs r2, #0
adds r3, r3, #31
-.L1694:
- ldrsb r6, [r1, #1]!
- cmp r6, #0
- it eq
- addeq r2, r2, #1
- cmp r1, r3
- bne .L1694
+.L1662:
+ ldrsb r7, [r1, #1]!
+ cbnz r7, .L1661
+ adds r2, r2, #1
+.L1661:
+ cmp r3, r1
+ bne .L1662
cmp r2, #27
- bls .L1688
+ bls .L1656
bl FlashGetReadRetryDefault
bl FlashSavePhyInfo
- b .L1688
-.L1689:
- sub r3, r0, #17
- cmp r3, #2
- bhi .L1696
- ldr r3, .L1782+24
- cmp r0, #19
- str r3, [r6, #1192]
- ite ne
- movne r3, #7
- moveq r3, #15
- strb r3, [r6, #1209]
- b .L1688
-.L1696:
- cmp r0, #33
- beq .L1698
- sub r3, r0, #65
- cmp r3, #1
- bhi .L1699
-.L1698:
- ldr r3, .L1782+28
- str r3, [r8, #1192]
- movs r3, #4
- strb r3, [r4, #1209]
- movs r3, #7
- strb r3, [r8, #1209]
- b .L1688
-.L1699:
- sub r3, r0, #67
- uxtb r3, r3
- cmp r3, #1
- bls .L1700
- sub r2, r0, #34
- cmp r2, #1
- bhi .L1701
-.L1700:
- ldr r2, .L1782+28
- cmp r0, #35
- str r2, [r8, #1192]
- beq .L1702
- cmp r0, #68
- beq .L1702
- ldr r2, .L1782+12
- movs r1, #7
- strb r1, [r2, #1209]
- b .L1703
-.L1702:
- movs r2, #17
- strb r2, [r8, #1209]
-.L1703:
- cmp r3, #1
- ite ls
- movls r3, #4
- movhi r3, #5
- strb r3, [r4, #1209]
- b .L1688
-.L1701:
- cmp r0, #49
- bne .L1705
- ldr r3, .L1782+32
- str r3, [r6, #1192]
- b .L1688
-.L1705:
- cmp r0, #50
- ittt eq
- streq r9, [r7, #2248]
- ldreq r3, .L1782+36
- streq r3, [r6, #1192]
-.L1688:
- ldr r2, [r4, #2264]
- ldr r3, .L1782
- cmp r2, r5
- bne .L1706
- ldrb r1, [r3, #144] @ zero_extendqisi2
- cbz r1, .L1706
- ldr r3, [r3, #44]
+.L1656:
+ ldr r3, [r4, #2268]
+ cmp r3, r6
+ bne .L1674
+ ldrb r2, [r4, #152] @ zero_extendqisi2
+ cbz r2, .L1674
+ ldr r2, [r4, #48]
movs r1, #0
- strb r1, [r3, #18]
-.L1706:
- ldrb r1, [r4, #2068] @ zero_extendqisi2
- ldr r3, .L1782
- cmp r1, #44
- bne .L1707
- ldrb r1, [r3, #2252] @ zero_extendqisi2
- cbz r1, .L1707
- cmp r2, r5
- bne .L1708
- ldrb r3, [r3, #144] @ zero_extendqisi2
- cbnz r3, .L1707
-.L1708:
- movs r0, #1
+ strb r1, [r2, #18]
+.L1674:
+ ldrb r2, [r4, #2072] @ zero_extendqisi2
+ cmp r2, #44
+ bne .L1675
+ ldrb r2, [r4, #2256] @ zero_extendqisi2
+ cbz r2, .L1675
+ cmp r3, r6
+ bne .L1676
+ ldrb r3, [r4, #152] @ zero_extendqisi2
+ cbnz r3, .L1675
+.L1676:
movs r3, #0
- strb r3, [r4, #2252]
+ movs r0, #1
+ strb r3, [r4, #2256]
bl FlashSetInterfaceMode
movs r0, #1
bl NandcSetMode
-.L1707:
- ldrb r3, [r4, #2229] @ zero_extendqisi2
+.L1675:
+ ldrb r3, [r4, #2233] @ zero_extendqisi2
tst r3, #6
- beq .L1709
- ldr r2, .L1782
- ldrb r2, [r2, #2252] @ zero_extendqisi2
- cbnz r2, .L1710
+ beq .L1677
+ ldrb r2, [r4, #2256] @ zero_extendqisi2
+ cbnz r2, .L1678
lsls r3, r3, #31
- bmi .L1709
-.L1710:
+ bmi .L1677
+.L1678:
movs r0, #0
bl flash_enter_slc_mode
+ ldr r1, [r5, #1208]
movs r0, #0
- ldr r1, [r8, #1200]
bl FlashDdrParaScan
movs r0, #0
bl flash_exit_slc_mode
-.L1709:
- ldr r3, [r4, #44]
- movs r7, #16
- ldr r6, .L1782
+.L1677:
+ ldr r3, [r4, #48]
+ movs r6, #16
ldrb r0, [r3, #20] @ zero_extendqisi2
bl FlashBchSel
- ldr r0, .L1782+40
+ ldr r0, .L1743+8
bl FlashReadIdbDataRaw
- ldr r0, .L1782+44
- strb r7, [r4, #1]
+ ldr r0, .L1743+12
+ strb r6, [r4, #37]
bl FlashTimingCfg
- ldr r5, [r4, #44]
- ldrb r2, [r4, #2069] @ zero_extendqisi2
+ ldr r5, [r4, #48]
+ ldrb r2, [r4, #2073] @ zero_extendqisi2
ldrb r3, [r5, #12] @ zero_extendqisi2
- ldrh r8, [r5, #14]
- strh r3, [r4, #124] @ movhi
- ldrb r3, [r5, #7] @ zero_extendqisi2
- str r3, [r4, #120]
- lsl r3, r2, r7
- orr r2, r3, r2, lsl #8
- ldrb r3, [r4, #2068] @ zero_extendqisi2
- orrs r3, r3, r2
- ldrb r2, [r4, #2071] @ zero_extendqisi2
- orr r3, r3, r2, lsl #24
- str r3, [r4, #116]
- ldrb r3, [r4, #2230] @ zero_extendqisi2
- strh r3, [r4, #126] @ movhi
- ldrb r3, [r5, #13] @ zero_extendqisi2
- strh r8, [r4, #130] @ movhi
- strh r3, [r4, #128] @ movhi
- ldrh r3, [r5, #10]
+ ldrh r7, [r5, #14]
strh r3, [r4, #132] @ movhi
+ ldrb r3, [r5, #7] @ zero_extendqisi2
+ str r3, [r4, #128]
+ lsl r3, r2, r6
+ orr r3, r3, r2, lsl #8
+ ldrb r2, [r4, #2072] @ zero_extendqisi2
+ orrs r3, r3, r2
+ ldrb r2, [r4, #2075] @ zero_extendqisi2
+ orr r3, r3, r2, lsl #24
+ str r3, [r4, #124]
+ ldrb r3, [r4, #2234] @ zero_extendqisi2
+ strh r3, [r4, #134] @ movhi
+ ldrb r3, [r5, #13] @ zero_extendqisi2
+ strh r7, [r4, #138] @ movhi
+ strh r3, [r4, #136] @ movhi
+ ldrh r3, [r5, #10]
+ strh r3, [r4, #140] @ movhi
ldrb r1, [r5, #12] @ zero_extendqisi2
ldrh r0, [r5, #10]
bl __aeabi_idiv
- strh r0, [r4, #134] @ movhi
+ strh r0, [r4, #142] @ movhi
ldrb r2, [r5, #9] @ zero_extendqisi2
- strh r2, [r4, #136] @ movhi
- ldrb r1, [r5, #9] @ zero_extendqisi2
- ldrh r3, [r5, #10]
- smulbb r3, r1, r3
+ strh r2, [r4, #144] @ movhi
+ ldrh r1, [r5, #10]
+ ldrb r3, [r5, #9] @ zero_extendqisi2
+ smulbb r3, r3, r1
mov r1, #512
- strh r1, [r4, #140] @ movhi
- ldrb r1, [r4, #1] @ zero_extendqisi2
- strh r1, [r4, #142] @ movhi
+ strh r1, [r4, #148] @ movhi
+ ldrb r1, [r4, #37] @ zero_extendqisi2
uxth r3, r3
- ldrb r1, [r4] @ zero_extendqisi2
- strh r3, [r4, #138] @ movhi
+ strh r1, [r4, #150] @ movhi
+ ldrb r1, [r4, #36] @ zero_extendqisi2
+ strh r3, [r4, #146] @ movhi
cmp r1, #1
- bne .L1712
+ bne .L1679
lsls r3, r3, #1
- lsr r1, r8, #1
+ lsrs r1, r7, #1
lsls r2, r2, #1
- strh r3, [r6, #138] @ movhi
- strb r7, [r6, #1]
+ strb r6, [r4, #37]
+ strh r3, [r4, #146] @ movhi
movs r3, #8
- strh r1, [r6, #130] @ movhi
- strh r2, [r6, #136] @ movhi
- strh r3, [r6, #142] @ movhi
-.L1712:
+ strh r1, [r4, #138] @ movhi
+ strh r2, [r4, #144] @ movhi
+ strh r3, [r4, #150] @ movhi
+.L1679:
ldrb r0, [r5, #20] @ zero_extendqisi2
bl FlashBchSel
bl ftl_flash_suspend
movs r0, #0
- b .L1736
-.L1716:
- mvn r0, #1
- b .L1736
-.L1691:
- cmp r0, #7
-.L1779:
- beq .L1717
- ldr r3, .L1782+48
- b .L1693
-.L1670:
- strb r1, [r2, #1228]
- b .L1669
-.L1736:
- add sp, sp, #20
+.L1624:
+ add sp, sp, #28
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L1783:
+.L1641:
+ cmp r2, #220
+ bne .L1643
+ mov r1, #4096
+ b .L1734
+.L1643:
+ cmp r2, #211
+ itttt eq
+ moveq r2, #4096
+ strheq r2, [r3, #3426] @ movhi
+ moveq r2, #2
+ strbeq r2, [r3, #3425]
+ b .L1642
+.L1650:
+ ldrb r0, [r4, #2233] @ zero_extendqisi2
+ bl FlashSetInterfaceMode
+ ldrb r0, [r4, #2233] @ zero_extendqisi2
+ b .L1735
+.L1657:
+ sub r3, r0, #17
+ cmp r3, #2
+ bhi .L1664
+ ldr r3, .L1743+16
+ cmp r0, #19
+ str r3, [r5, #1200]
+ beq .L1665
+.L1739:
+ movs r3, #7
+ b .L1737
+.L1665:
+ movs r3, #15
+.L1737:
+ strb r3, [r5, #1217]
+ b .L1656
+.L1664:
+ cmp r0, #33
+ beq .L1666
+ sub r3, r0, #65
+ cmp r3, #1
+ bhi .L1667
+.L1666:
+ ldr r3, .L1743+20
+ str r3, [r5, #1200]
+ movs r3, #4
+ strb r3, [r4, #85]
+ b .L1739
+.L1667:
+ sub r3, r0, #67
+ uxtb r3, r3
+ cmp r3, #1
+ bls .L1668
+ sub r2, r0, #34
+ cmp r2, #1
+ bhi .L1669
+.L1668:
+ ldr r2, .L1743+20
+ cmp r0, #35
+ str r2, [r5, #1200]
+ beq .L1670
+ cmp r0, #68
+ beq .L1670
+ movs r2, #7
+.L1736:
+ cmp r3, #1
+ strb r2, [r5, #1217]
+ ite ls
+ movls r3, #4
+ movhi r3, #5
+ strb r3, [r4, #85]
+ b .L1656
+.L1670:
+ movs r2, #17
+ b .L1736
+.L1669:
+ cmp r0, #49
+ bne .L1673
+ ldr r3, .L1743+24
+ str r3, [r5, #1200]
+ b .L1656
+.L1673:
+ cmp r0, #50
+ ittt eq
+ ldreq r3, .L1743+28
+ streq r8, [r4, #2252]
+ streq r3, [r5, #1200]
+ b .L1656
+.L1681:
+ mvn r0, #1
+ b .L1624
+.L1637:
+ strb r0, [r5, #1236]
+ b .L1636
+.L1744:
.align 2
-.L1782:
- .word .LANCHOR0
- .word .LC98
- .word .LANCHOR2
- .word .LANCHOR4
+.L1743:
.word HynixReadRetrial
- .word .LANCHOR0+1238
+ .word .LANCHOR0+1244
+ .word .LANCHOR2+3476
+ .word 150000
.word MicronReadRetrial
.word ToshibaReadRetrial
.word SamsungReadRetrial
.word samsung_read_retrial
- .word .LANCHOR2+3476
- .word 150000
- .word .LANCHOR0+1230
.fnend
.size FlashInit, .-FlashInit
.align 1
.global FlashPageProgMsbFFData
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FlashPageProgMsbFFData, %function
FlashPageProgMsbFFData:
.fnstart
@@ -11267,749 +11616,742 @@
@ 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 r6, r0
+ ldr r5, .L1765
+ mov r7, r1
mov r4, r2
- ldr r2, .L1805
- mov r8, r1
- mov r7, r0
- ldr r3, [r2, #44]
- mov r5, r2
- ldrb r1, [r2, #144] @ zero_extendqisi2
- ldrb r3, [r3, #19] @ zero_extendqisi2
- cbz r1, .L1785
- ldr r2, [r2, #2248]
- cbnz r2, .L1784
-.L1785:
- subs r2, r3, #5
- cmp r2, #2
- bls .L1786
- cmp r3, #50
- beq .L1786
- cmp r3, #68
- beq .L1786
- cmp r3, #35
- beq .L1786
- cmp r3, #19
- bne .L1784
-.L1786:
- ldr r9, .L1805+8
+ ldrb r3, [r5, #152] @ zero_extendqisi2
+ cbz r3, .L1746
+ ldr r3, [r5, #2252]
+ cbnz r3, .L1745
+.L1746:
+ ldr r3, [r5, #48]
+ ldrb r2, [r3, #19] @ zero_extendqisi2
+ subs r3, r2, #5
+ uxtb r3, r3
+ cmp r3, #30
+ bhi .L1747
+ ldr r1, .L1765+4
+ lsr r3, r1, r3
+ lsls r3, r3, #31
+ bmi .L1748
+.L1752:
+ cmp r2, #68
+ bne .L1745
+.L1748:
+ ldr r9, .L1765+8
movw r10, #65535
- ldr r6, .L1805+4
-.L1788:
- ldr r3, [r5, #44]
+ ldr r8, .L1765+12
+.L1750:
+ ldr r3, [r5, #48]
ldrh r3, [r3, #10]
cmp r3, r4
- bls .L1784
+ bhi .L1751
+ pop {r4, r5, r6, r7, r8, r9, r10, pc}
+.L1751:
add r3, r9, r4, lsl #1
ldrh r3, [r3, #1220]
cmp r3, r10
- bne .L1784
- movs r1, #255
+ bne .L1745
mov r2, #32768
- ldr r0, [r6, #1212]
+ movs r1, #255
+ ldr r0, [r8, #1220]
bl ftl_memset
- ldr r2, [r6, #1212]
- add r1, r4, r8
+ ldr r3, [r8, #1220]
+ adds r1, r4, r7
+ mov r0, r6
adds r4, r4, #1
- mov r0, r7
- mov r3, r2
uxth r4, r4
+ mov r2, r3
bl FlashProgPage
- b .L1788
-.L1784:
+ b .L1750
+.L1747:
+ cmp r2, #50
+ bne .L1752
+ b .L1748
+.L1745:
pop {r4, r5, r6, r7, r8, r9, r10, pc}
-.L1806:
+.L1766:
.align 2
-.L1805:
+.L1765:
.word .LANCHOR0
- .word .LANCHOR4
+ .word 1073758215
.word .LANCHOR2
+ .word .LANCHOR4
.fnend
.size FlashPageProgMsbFFData, .-FlashPageProgMsbFFData
.align 1
.global FlashReadSlc2KPages
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FlashReadSlc2KPages, %function
FlashReadSlc2KPages:
.fnstart
- @ args = 0, pretend = 0, frame = 24
+ @ args = 0, pretend = 0, frame = 16
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L1857
+ ldr r3, .L1824
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
- movs r7, #0
- ldrb r3, [r3, #481] @ zero_extendqisi2
- .pad #36
- sub sp, sp, #36
mov r4, r0
- str r1, [sp, #16]
- str r2, [sp, #20]
- str r3, [sp, #12]
-.L1808:
- ldr r3, [sp, #16]
- cmp r7, r3
- beq .L1856
- ldr r3, [sp, #16]
- add r2, sp, #28
+ ldr r7, .L1824+4
+ mov r8, #0
+ .pad #28
+ sub sp, sp, #28
+ ldrb fp, [r3, #477] @ zero_extendqisi2
+ str r1, [sp, #8]
+ str r2, [sp, #12]
+.L1768:
+ ldr r3, [sp, #8]
+ cmp r8, r3
+ bne .L1792
+ movs r0, #0
+ add sp, sp, #28
+ @ sp needed
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L1792:
+ ldr r3, [sp, #8]
+ add r2, sp, #20
+ ldr r1, [sp, #12]
mov r0, r4
- ldr r1, [sp, #20]
- subs r3, r3, r7
- ldr r8, .L1857+20
+ sub r3, r3, r8
uxtb r3, r3
str r3, [sp]
- add r3, sp, #24
- mov fp, r8
+ add r3, sp, #16
bl LogAddr2PhyAddr
- ldrb r2, [r8, #2230] @ zero_extendqisi2
- ldr r3, [sp, #24]
- cmp r3, r2
- bcc .L1809
+ ldrb r2, [r7, #2234] @ zero_extendqisi2
+ ldr r3, [sp, #16]
+ cmp r2, r3
+ bhi .L1769
mov r3, #-1
str r3, [r4]
- b .L1810
-.L1809:
- add r3, r3, r8
+.L1770:
+ add r8, r8, #1
+ adds r4, r4, #36
+ b .L1768
+.L1769:
+ add r3, r3, r7
mov r9, #0
- ldrb r6, [r3, #2232] @ zero_extendqisi2
- mov r0, r6
+ ldrb r5, [r3, #2236] @ zero_extendqisi2
+ mov r0, r5
bl NandcWaitFlashReady
- mov r0, r6
+ mov r0, r5
bl NandcFlashCs
-.L1811:
- ldr r1, [sp, #28]
- mov r0, r6
+.L1771:
+ ldr r1, [sp, #20]
+ mov r0, r5
bl FlashReadCmd
- mov r0, r6
+ mov r0, r5
bl NandcWaitFlashReady
ldr r3, [r4, #12]
- mov r0, r6
+ mov r2, fp
movs r1, #0
+ mov r0, r5
str r3, [sp]
- ldr r2, [sp, #12]
ldr r3, [r4, #8]
bl NandcXferData
- ldr r3, .L1857+4
- ldrb r3, [r3, #1228] @ zero_extendqisi2
- mov r5, r0
- cbnz r3, .L1812
-.L1815:
- adds r3, r5, #1
- beq .L1813
- b .L1814
-.L1812:
- mov r0, r6
- bl flash_read_ecc
- cmp r0, #5
- bls .L1815
- mov r5, #256
- b .L1814
-.L1813:
- cmp r9, #10
- beq .L1834
- add r9, r9, #1
- b .L1811
-.L1814:
+ ldr r3, .L1824+8
+ mov r6, r0
+ ldrb r3, [r3, #1236] @ zero_extendqisi2
+ cmp r3, #0
+ bne .L1772
+.L1775:
+ adds r0, r6, #1
+ beq .L1773
+.L1774:
cmp r9, #0
- it ne
- movne r5, #256
- b .L1816
-.L1834:
- mov r5, #256
-.L1816:
+ beq .L1777
+.L1776:
+ mov r6, #256
+.L1777:
mov r9, #0
-.L1817:
- ldr r3, [sp, #28]
- mov r0, r6
- ldr r1, [fp, #4]
+.L1778:
+ ldr r3, [r7, #40]
+ mov r0, r5
+ ldr r1, [sp, #20]
add r1, r1, r3
bl FlashReadCmd
- mov r0, r6
+ mov r0, r5
bl NandcWaitFlashReady
ldr r3, [r4, #8]
- cbz r3, .L1818
+ cbz r3, .L1779
add r3, r3, #2048
-.L1818:
+.L1779:
ldr r2, [r4, #12]
- cbz r2, .L1819
+ cbz r2, .L1780
adds r2, r2, #8
-.L1819:
+.L1780:
str r2, [sp]
- mov r0, r6
- ldr r2, [sp, #12]
movs r1, #0
+ mov r2, fp
+ mov r0, r5
bl NandcXferData
- ldr r3, .L1857+4
- ldrb r2, [r3, #1228] @ zero_extendqisi2
+ ldr r3, .L1824+8
mov r10, r0
- cbnz r2, .L1820
-.L1823:
+ ldrb r2, [r3, #1236] @ zero_extendqisi2
+ cmp r2, #0
+ bne .L1781
+.L1784:
cmp r10, #-1
- beq .L1821
- b .L1822
-.L1820:
- mov r0, r6
- bl flash_read_ecc
- cmp r0, #5
- bls .L1823
- mov r10, #256
- b .L1822
-.L1821:
- cmp r9, #10
- beq .L1838
- add r9, r9, #1
- b .L1817
-.L1822:
+ beq .L1782
+.L1783:
cmp r9, #0
- it ne
- movne r10, #256
- b .L1824
-.L1838:
+ beq .L1786
+.L1785:
mov r10, #256
-.L1824:
- mov r0, r6
+.L1786:
+ mov r0, r5
bl NandcFlashDeCs
- ldrb r3, [r8, #2312] @ zero_extendqisi2
- cmp r5, r10
- add r3, r3, r3, lsl #1
+ ldrb r3, [r7, #2316] @ zero_extendqisi2
+ cmp r6, r10
it cc
- movcc r5, r10
- cmp r5, r3, asr #2
- bls .L1825
- adds r0, r5, #1
- it ne
- movne r5, #256
- str r5, [r4]
- b .L1827
-.L1825:
+ movcc r6, r10
+ add r3, r3, r3, lsl #1
+ cmp r6, r3, asr #2
+ bhi .L1787
movs r3, #0
+.L1823:
str r3, [r4]
-.L1827:
ldr r3, [r4, #12]
- cbz r3, .L1828
+ cbz r3, .L1788
ldr r2, [r3, #12]
adds r2, r2, #1
- bne .L1828
+ bne .L1788
ldr r2, [r3, #8]
adds r1, r2, #1
- bne .L1828
+ bne .L1788
ldr r3, [r3]
adds r3, r3, #1
it ne
strne r2, [r4]
-.L1828:
+.L1788:
ldr r3, [r4]
adds r2, r3, #1
- bne .L1810
+ bne .L1770
ldr r1, [r4, #4]
- ldr r0, .L1857+8
- ldrb r2, [r8, #2312] @ zero_extendqisi2
+ ldrb r2, [r7, #2316] @ zero_extendqisi2
+ ldr r0, .L1824+12
bl printk
ldr r1, [r4, #8]
- cbz r1, .L1830
- ldr r0, .L1857+12
- movs r2, #4
+ cbz r1, .L1790
movs r3, #8
- bl rknand_print_hex
-.L1830:
- ldr r1, [r4, #12]
- cbz r1, .L1810
movs r2, #4
- ldr r0, .L1857+16
- mov r3, r2
+ ldr r0, .L1824+16
bl rknand_print_hex
-.L1810:
- adds r7, r7, #1
- adds r4, r4, #36
- b .L1808
-.L1856:
- movs r0, #0
- add sp, sp, #36
- @ sp needed
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L1858:
+.L1790:
+ ldr r1, [r4, #12]
+ cmp r1, #0
+ beq .L1770
+ movs r3, #4
+ ldr r0, .L1824+20
+ mov r2, r3
+ bl rknand_print_hex
+ b .L1770
+.L1772:
+ mov r0, r5
+ bl flash_read_ecc
+ cmp r0, #5
+ bls .L1775
+ mov r6, #256
+ b .L1774
+.L1773:
+ cmp r9, #10
+ beq .L1776
+ add r9, r9, #1
+ b .L1771
+.L1781:
+ mov r0, r5
+ bl flash_read_ecc
+ cmp r0, #5
+ bls .L1784
+ mov r10, #256
+ b .L1783
+.L1782:
+ cmp r9, #10
+ beq .L1785
+ add r9, r9, #1
+ b .L1778
+.L1787:
+ mov r3, #256
+ b .L1823
+.L1825:
.align 2
-.L1857:
+.L1824:
.word .LANCHOR1
+ .word .LANCHOR0
.word .LANCHOR4
.word .LC99
.word .LC100
.word .LC101
- .word .LANCHOR0
.fnend
.size FlashReadSlc2KPages, .-FlashReadSlc2KPages
.align 1
.global FlashReadPages
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FlashReadPages, %function
FlashReadPages:
.fnstart
@ args = 0, pretend = 0, frame = 40
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L1958
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.pad #52
sub sp, sp, #52
- ldrb r3, [r3, #481] @ zero_extendqisi2
- mov r10, r0
- ldr r5, .L1958+4
- str r1, [sp, #28]
- str r3, [sp, #24]
- ldrb r3, [r5, #8] @ zero_extendqisi2
- str r2, [sp, #16]
- str r3, [sp, #32]
- ldrb r3, [r5] @ zero_extendqisi2
- cbz r3, .L1902
- bl FlashReadSlc2KPages
- b .L1953
-.L1902:
+ ldr r4, .L1917
+ mov r9, r0
+ str r1, [sp, #32]
+ ldrb r3, [r4, #36] @ zero_extendqisi2
+ str r2, [sp, #20]
+ cbnz r3, .L1827
+ ldr r2, .L1917+4
mov r8, r3
+ ldr r10, .L1917+12
str r3, [sp, #12]
-.L1860:
+ ldrb r2, [r2, #477] @ zero_extendqisi2
+ str r2, [sp, #28]
+ ldrb r2, [r4, #44] @ zero_extendqisi2
+ str r2, [sp, #36]
+.L1828:
ldr r3, [sp, #12]
- ldr r2, [sp, #28]
+ ldr r2, [sp, #32]
cmp r3, r2
- bcs .L1955
- ldr r3, [sp, #12]
- mov r9, #36
+ bcc .L1866
+ movs r0, #0
+ b .L1826
+.L1827:
+ bl FlashReadSlc2KPages
+.L1826:
+ add sp, sp, #52
+ @ sp needed
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L1866:
ldr r2, [sp, #12]
- ldr r1, [sp, #16]
- mul r9, r9, r3
- ldr r3, [sp, #28]
+ movs r3, #36
+ ldr r1, [sp, #20]
+ muls r3, r2, r3
+ add r7, r9, r3
+ str r3, [sp, #16]
+ ldr r3, [r7, #4]
+ mov r0, r7
+ str r3, [sp, #24]
+ ldr r3, [sp, #32]
subs r3, r3, r2
add r2, sp, #44
- add r7, r10, r9
uxtb r3, r3
- ldr fp, [r7, #4]
- mov r0, r7
str r3, [sp]
add r3, sp, #40
bl LogAddr2PhyAddr
- ldrb r2, [r5, #2230] @ zero_extendqisi2
- ldr r3, [sp, #40]
+ ldrb r2, [r4, #2234] @ zero_extendqisi2
mov r6, r0
- cmp r3, r2
- bcc .L1862
+ ldr r3, [sp, #40]
+ cmp r2, r3
+ bhi .L1830
+ ldr r2, [sp, #16]
mov r3, #-1
- str r3, [r10, r9]
- b .L1863
-.L1862:
- add r3, r3, r5
- ldrb r4, [r3, #2232] @ zero_extendqisi2
- ldr r3, .L1958+8
- mov r0, r4
- ldrb r3, [r3, #1229] @ zero_extendqisi2
+ str r3, [r9, r2]
+.L1831:
+ ldr r3, [sp, #12]
+ adds r3, r3, #1
+ str r3, [sp, #12]
+ b .L1828
+.L1830:
+ add r3, r3, r4
+ ldrb r5, [r3, #2236] @ zero_extendqisi2
+ ldrb r3, [r10, #1237] @ zero_extendqisi2
+ mov r0, r5
cmp r3, #0
it eq
moveq r6, #0
bl NandcWaitFlashReady
- ldr r3, .L1958+4
- ldr r3, [r3, #44]
+ ldr r3, [r4, #48]
ldrb r2, [r3, #19] @ zero_extendqisi2
subs r3, r2, #1
cmp r3, #7
- bhi .L1865
+ bhi .L1833
subs r2, r2, #7
- adds r1, r5, r4
+ adds r1, r4, r5
cmp r2, #1
- ldr r2, .L1958+4
- ldrb r3, [r1, #1222] @ zero_extendqisi2
- add r2, r2, r4
+ add r2, r4, r5
+ ldrb r3, [r1, #1228] @ zero_extendqisi2
+ ldrb r2, [r2, #2068] @ zero_extendqisi2
it ls
- ldrbls r3, [r1, #1230] @ zero_extendqisi2
- ldrb r2, [r2, #2064] @ zero_extendqisi2
+ ldrbls r3, [r1, #1236] @ zero_extendqisi2
cmp r2, r3
- beq .L1865
- mov r0, r4
- ldrb r1, [r5, #1211] @ zero_extendqisi2
- ldr r2, .L1958+12
+ beq .L1833
+ ldr r2, .L1917+8
+ mov r0, r5
+ ldrb r1, [r4, #1217] @ zero_extendqisi2
bl HynixSetRRPara
-.L1865:
- mov r0, r4
- and r3, fp, #-2147483648
- str r3, [sp, #20]
+.L1833:
+ mov r0, r5
bl NandcFlashCs
- ldr r3, [sp, #16]
- cmp r3, #1
- beq .L1867
ldr r3, [sp, #20]
- cbz r3, .L1868
-.L1867:
- ldr r3, .L1958+4
- ldrb r3, [r3, #144] @ zero_extendqisi2
- cbz r3, .L1868
- mov r0, r4
+ cmp r3, #1
+ beq .L1835
+ ldr r3, [sp, #24]
+ cmp r3, #0
+ bge .L1836
+.L1835:
+ ldrb r3, [r4, #152] @ zero_extendqisi2
+ cbz r3, .L1836
+ mov r0, r5
bl flash_enter_slc_mode
-.L1870:
- mov fp, #0
- b .L1869
-.L1868:
- mov r0, r4
- bl flash_exit_slc_mode
- b .L1870
-.L1956:
- cmp r4, #255
- beq .L1903
-.L1871:
- cbz r6, .L1873
- ldr r2, [r5, #4]
- mov r0, r4
+.L1843:
+ ldr r1, [sp, #44]
+ adds r0, r1, #1
+ bne .L1838
+ cmp r5, #255
+ beq .L1868
+.L1838:
+ cbz r6, .L1840
+ ldr r2, [r4, #40]
+ mov r0, r5
add r2, r2, r1
bl FlashReadDpCmd
-.L1874:
- mov r0, r4
+.L1841:
+ mov r0, r5
bl NandcWaitFlashReady
- cbz r6, .L1872
- mov r0, r4
+ cbz r6, .L1839
ldr r1, [sp, #44]
+ mov r0, r5
bl FlashReadDpDataOutCmd
-.L1872:
+.L1839:
ldr r3, [r7, #12]
- mov r0, r4
movs r1, #0
- ldr r2, [sp, #24]
+ ldr r2, [sp, #28]
+ mov r0, r5
str r3, [sp]
ldr r3, [r7, #8]
bl NandcXferData
- ldrb r3, [r5, #8] @ zero_extendqisi2
- mov ip, r0
- cbz r3, .L1905
+ ldrb r3, [r4, #44] @ zero_extendqisi2
+ mov fp, r0
+ cbz r3, .L1842
cmp r0, #-1
- bne .L1905
+ bne .L1842
+ mov r3, #0
movs r6, #0
- strb fp, [r5, #8]
-.L1869:
- ldr r1, [sp, #44]
- adds r0, r1, #1
- bne .L1871
- b .L1956
-.L1873:
- mov r0, r4
+ strb r3, [r4, #44]
+ b .L1843
+.L1836:
+ mov r0, r5
+ bl flash_exit_slc_mode
+ b .L1843
+.L1840:
+ mov r0, r5
bl FlashReadCmd
- b .L1874
-.L1903:
+ b .L1841
+.L1868:
movs r6, #0
- b .L1872
-.L1905:
- mov fp, ip
- cbz r6, .L1876
- ldr r3, .L1958+4
- mov r0, r4
- str ip, [sp, #36]
- ldr r1, [r3, #4]
- ldr r3, [sp, #44]
+ b .L1839
+.L1842:
+ cbz r6, .L1844
+ ldr r3, [r4, #40]
+ mov r0, r5
+ ldr r1, [sp, #44]
add r1, r1, r3
bl FlashReadDpDataOutCmd
- add r3, r9, #36
- add r3, r3, r10
- mov r0, r4
+ ldr r3, [sp, #16]
movs r1, #0
+ mov r0, r5
+ adds r3, r3, #36
+ add r3, r3, r9
ldr r2, [r3, #12]
str r2, [sp]
- ldr r2, [sp, #24]
+ ldr r2, [sp, #28]
ldr r3, [r3, #8]
bl NandcXferData
cmp r0, #-1
- ldr ip, [sp, #36]
+ mov r8, r0
it eq
moveq r6, #0
- mov r8, r0
-.L1876:
- mov r0, r4
- str ip, [sp, #36]
+.L1844:
+ mov r0, r5
bl NandcFlashDeCs
- ldr ip, [sp, #36]
- ldrb r3, [sp, #32] @ zero_extendqisi2
- cmp ip, #-1
- strb r3, [r5, #8]
- bne .L1883
- ldrb r3, [r5, #2252] @ zero_extendqisi2
- cbnz r3, .L1878
-.L1882:
- ldr r3, .L1958+8
- ldr r6, [r3, #1192]
- cbnz r6, .L1879
- b .L1957
-.L1878:
- ldr r3, [r5, #80]
- mov r0, r4
+ ldrb r3, [sp, #36] @ zero_extendqisi2
+ cmp fp, #-1
+ strb r3, [r4, #44]
+ bne .L1845
+ ldrb r3, [r4, #2256] @ zero_extendqisi2
+ cbnz r3, .L1846
+.L1850:
+ ldr r6, [r10, #1200]
+ cmp r6, #0
+ bne .L1847
+ ldr r3, [r7, #12]
+ mov r0, r5
+ ldr r2, [r7, #8]
+ ldr r1, [sp, #44]
+ bl FlashReadRawPage
+ b .L1916
+.L1846:
+ ldr r3, [r4, #88]
+ mov r0, r5
ldr r1, [sp, #44]
ldr r6, [r3, #304]
movs r3, #1
str r3, [sp]
- ldr r2, [r7, #8]
ldr r3, [r7, #12]
+ ldr r2, [r7, #8]
bl FlashDdrTunningRead
cmp r0, #-1
mov fp, r0
- beq .L1881
- ldrb r3, [r5, #2312] @ zero_extendqisi2
+ beq .L1849
+ ldrb r3, [r4, #2316] @ zero_extendqisi2
cmp r0, r3, lsr #1
- bls .L1907
-.L1881:
+ bls .L1869
+.L1849:
ubfx r0, r6, #8, #8
bl NandcSetDdrPara
cmp fp, #-1
- beq .L1882
- b .L1907
-.L1879:
- mov r0, r4
- ldr r1, [sp, #44]
- ldr r2, [r7, #8]
+ beq .L1850
+.L1869:
+ movs r6, #0
+.L1845:
+ ldrb r3, [r4, #2316] @ zero_extendqisi2
+ add r3, r3, r3, lsl #1
+ cmp fp, r3, asr #2
+ bls .L1858
+ ldr r3, [r10, #1200]
+ cmp r3, #0
+ bne .L1858
+ mov fp, #256
+ b .L1853
+.L1918:
+ .align 2
+.L1917:
+ .word .LANCHOR0
+ .word .LANCHOR1
+ .word .LANCHOR0+1220
+ .word .LANCHOR4
+.L1847:
ldr r3, [r7, #12]
+ mov r0, r5
+ ldr r2, [r7, #8]
+ ldr r1, [sp, #44]
blx r6
cmp r0, #-1
mov fp, r0
- bne .L1884
- ldr r3, [r5, #44]
+ bne .L1851
+ ldr r3, [r4, #48]
ldrb r3, [r3, #19] @ zero_extendqisi2
subs r3, r3, #1
cmp r3, #7
- bhi .L1885
- mov r0, r4
- ldrb r1, [r5, #1211] @ zero_extendqisi2
- ldr r2, .L1958+12
+ bhi .L1852
movs r3, #0
+ ldr r2, .L1919
+ ldrb r1, [r4, #1217] @ zero_extendqisi2
+ mov r0, r5
bl HynixSetRRPara
-.L1885:
- ldr r1, [sp, #44]
- mov r0, r4
- ldr r2, [r7, #8]
+.L1852:
ldr r3, [r7, #12]
+ mov r0, r5
+ ldr r2, [r7, #8]
+ ldr r1, [sp, #44]
bl FlashReadRawPage
- ldr r1, [r7, #4]
- ldrb r2, [r5, #2312] @ zero_extendqisi2
+ ldrb r2, [r4, #2316] @ zero_extendqisi2
mov fp, r0
- ldr r0, .L1958+16
- mov r3, fp
+ mov r3, r0
+ ldr r1, [r7, #4]
+ ldr r0, .L1919+4
bl printk
cmp fp, #-1
- bne .L1884
- ldrb r6, [r5, #144] @ zero_extendqisi2
- cbz r6, .L1886
- ldr r3, [sp, #16]
- mov r0, r4
- cmp r3, #1
- beq .L1887
+ bne .L1851
+ ldrb r6, [r4, #152] @ zero_extendqisi2
+ cbz r6, .L1853
ldr r3, [sp, #20]
- cbz r3, .L1888
-.L1887:
+ mov r0, r5
+ cmp r3, #1
+ beq .L1854
+ ldr r3, [sp, #24]
+ cmp r3, #0
+ bge .L1855
+.L1854:
bl flash_enter_slc_mode
- b .L1889
-.L1888:
- bl flash_exit_slc_mode
-.L1889:
- ldr r3, .L1958+8
- mov r0, r4
- ldr r1, [sp, #44]
- ldr r2, [r7, #8]
- ldr r6, [r3, #1192]
+.L1856:
+ ldr r6, [r10, #1200]
+ mov r0, r5
ldr r3, [r7, #12]
+ ldr r2, [r7, #8]
+ ldr r1, [sp, #44]
blx r6
- movs r6, #0
+.L1916:
+ cmp r0, #-1
mov fp, r0
- b .L1890
-.L1957:
- mov r0, r4
- ldr r1, [sp, #44]
- ldr r2, [r7, #8]
- ldr r3, [r7, #12]
- bl FlashReadRawPage
- mov fp, r0
- b .L1890
-.L1907:
- movs r6, #0
-.L1883:
- ldrb r3, [r5, #2312] @ zero_extendqisi2
- add r3, r3, r3, lsl #1
- cmp fp, r3, asr #2
- bls .L1892
- ldr r3, .L1958+8
- ldr r3, [r3, #1192]
- cbz r3, .L1909
-.L1890:
- cmp fp, #-1
- beq .L1886
- b .L1892
-.L1909:
- mov fp, #256
-.L1886:
- str fp, [r10, r9]
- b .L1893
-.L1959:
- .align 2
-.L1958:
- .word .LANCHOR1
- .word .LANCHOR0
- .word .LANCHOR4
- .word .LANCHOR0+1214
- .word .LC102
-.L1884:
- movs r6, #0
-.L1892:
- cmp fp, #256
- beq .L1886
- movs r3, #0
- str r3, [r10, r9]
-.L1893:
- ldr r3, [r10, r9]
+ mov r6, #0
+ bne .L1858
+.L1853:
+ ldr r3, [sp, #16]
+ str fp, [r9, r3]
+.L1859:
+ ldr r3, [sp, #16]
+ ldr r3, [r9, r3]
adds r2, r3, #1
- bne .L1895
+ bne .L1861
ldr r1, [r7, #4]
- ldr r0, .L1960
- ldrb r2, [r5, #2312] @ zero_extendqisi2
+ ldrb r2, [r4, #2316] @ zero_extendqisi2
+ ldr r0, .L1919+8
bl printk
ldr r1, [r7, #12]
- cbz r1, .L1895
- movs r2, #4
- ldr r0, .L1960+4
- mov r3, r2
+ cbz r1, .L1861
+ movs r3, #4
+ ldr r0, .L1919+12
+ mov r2, r3
bl rknand_print_hex
-.L1895:
- cbz r6, .L1897
- ldrb r3, [r5, #2312] @ zero_extendqisi2
+.L1861:
+ cbz r6, .L1863
+ ldrb r3, [r4, #2316] @ zero_extendqisi2
add r3, r3, r3, lsl #1
cmp r8, r3, asr #2
- bls .L1898
- ldr r3, .L1960+8
- ldr r3, [r3, #1192]
+ bls .L1864
+ ldr r3, [r10, #1200]
cmp r3, #0
it eq
moveq r8, #256
-.L1898:
- add r9, r9, #36
+.L1864:
+ ldr r3, [sp, #16]
cmp r8, #-1
- str r8, [r10, r9]
- beq .L1897
+ add r3, r3, #36
+ str r8, [r9, r3]
+ beq .L1863
cmp r8, #256
itt ne
- movne r3, #0
- strne r3, [r10, r9]
-.L1897:
+ movne r2, #0
+ strne r2, [r9, r3]
+.L1863:
ldr r3, [sp, #12]
add r3, r3, r6
str r3, [sp, #12]
- ldr r3, [sp, #16]
- cmp r3, #1
- beq .L1899
ldr r3, [sp, #20]
- cbz r3, .L1863
-.L1899:
- ldrb r3, [r5, #144] @ zero_extendqisi2
- cbz r3, .L1863
- mov r0, r4
+ cmp r3, #1
+ beq .L1865
+ ldr r3, [sp, #24]
+ cmp r3, #0
+ bge .L1831
+.L1865:
+ ldrb r3, [r4, #152] @ zero_extendqisi2
+ cmp r3, #0
+ beq .L1831
+ mov r0, r5
bl flash_exit_slc_mode
-.L1863:
- ldr r3, [sp, #12]
- adds r3, r3, #1
- str r3, [sp, #12]
- b .L1860
-.L1955:
- movs r0, #0
-.L1953:
- add sp, sp, #52
- @ sp needed
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L1961:
+ b .L1831
+.L1855:
+ bl flash_exit_slc_mode
+ b .L1856
+.L1851:
+ movs r6, #0
+.L1858:
+ cmp fp, #256
+ beq .L1853
+ ldr r2, [sp, #16]
+ movs r3, #0
+ str r3, [r9, r2]
+ b .L1859
+.L1920:
.align 2
-.L1960:
+.L1919:
+ .word .LANCHOR0+1220
+ .word .LC102
.word .LC99
.word .LC101
- .word .LANCHOR4
.fnend
.size FlashReadPages, .-FlashReadPages
.align 1
.global FlashLoadFactorBbt
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FlashLoadFactorBbt, %function
FlashLoadFactorBbt:
.fnstart
- @ args = 0, pretend = 0, frame = 48
+ @ args = 0, pretend = 0, frame = 56
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
- movs r1, #0
- ldr r7, .L1974
- .pad #52
- sub sp, sp, #52
- ldr r4, .L1974+4
movs r2, #16
- movs r5, #0
+ ldr r7, .L1932
+ .pad #60
+ sub sp, sp, #60
+ movs r1, #0
mov fp, #-1
- ldrh r3, [r7, #130]
- add r0, r4, #1232
- ldrh r6, [r7, #128]
+ ldr r4, .L1932+4
+ movs r5, #0
+ ldrh r3, [r7, #136]
mov r10, r5
+ ldrh r6, [r7, #138]
mov r8, r7
+ addw r0, r4, #1238
mov r9, r4
smulbb r6, r6, r3
bl ftl_memset
- ldr r3, [r4, #1216]
+ ldr r3, [r4, #1224]
uxth r6, r6
- str r5, [sp, #20]
- str r3, [sp, #24]
-.L1963:
- ldrb r3, [r8, #2230] @ zero_extendqisi2
+ str r5, [sp, #28]
+ str r3, [sp, #32]
+ add r3, r6, fp
+ uxth r3, r3
+ str r3, [sp, #8]
+.L1922:
+ ldrb r3, [r8, #2234] @ zero_extendqisi2
uxtb r7, r5
cmp r3, r7
- bls .L1973
- mul ip, r6, r7
- subs r4, r6, #1
- sub r3, r6, #12
- uxth r4, r4
-.L1964:
- cmp r4, r3
- ble .L1966
- add r2, ip, r4
- movs r1, #1
- add r0, sp, #12
- str r3, [sp, #4]
+ bhi .L1928
+ mov r0, fp
+ add sp, sp, #60
+ @ sp needed
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L1928:
+ ldr r4, [sp, #8]
+ mul r3, r7, r6
+ sub r2, r6, #12
+ str r2, [sp, #4]
+.L1923:
+ ldr r2, [sp, #4]
+ cmp r4, r2
+ ble .L1925
+ adds r2, r4, r3
+ add r0, sp, #20
lsls r2, r2, #10
- str r2, [sp, #16]
- mov r2, r1
- str ip, [sp]
+ str r3, [sp, #12]
+ str r2, [sp, #24]
+ movs r2, #1
+ mov r1, r2
bl FlashReadPages
- ldr r2, [sp, #12]
- ldr ip, [sp]
+ ldr r2, [sp, #20]
+ ldr r3, [sp, #12]
adds r2, r2, #1
- ldr r3, [sp, #4]
- beq .L1965
- ldr r2, [r9, #1216]
+ beq .L1924
+ ldr r2, [r9, #1224]
ldrh r1, [r2]
movw r2, #61664
cmp r1, r2
- bne .L1965
- mov r1, r7
- ldr r0, .L1974+8
- mov r2, r4
+ bne .L1924
add r10, r10, #1
- bl printk
- ldr r3, .L1974+4
+ mov r1, r7
uxth r10, r10
- add r7, r3, r7, lsl #1
- strh r4, [r7, #1232] @ movhi
- b .L1966
-.L1965:
- subs r4, r4, #1
- uxth r4, r4
- b .L1964
-.L1966:
- ldrb r3, [r8, #2230] @ zero_extendqisi2
+ add r7, r9, r7, lsl #1
+ ldr r0, .L1932+8
+ mov r2, r4
+ bl printk
+ strh r4, [r7, #1238] @ movhi
+.L1925:
+ ldrb r3, [r8, #2234] @ zero_extendqisi2
adds r5, r5, #1
cmp r3, r10
it eq
moveq fp, #0
- b .L1963
-.L1973:
- mov r0, fp
- add sp, sp, #52
- @ sp needed
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L1975:
+ b .L1922
+.L1924:
+ subs r4, r4, #1
+ uxth r4, r4
+ b .L1923
+.L1933:
.align 2
-.L1974:
+.L1932:
.word .LANCHOR0
.word .LANCHOR4
.word .LC103
@@ -12017,1320 +12359,1276 @@
.size FlashLoadFactorBbt, .-FlashLoadFactorBbt
.align 1
.global FlashProgSlc2KPages
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FlashProgSlc2KPages, %function
FlashProgSlc2KPages:
.fnstart
- @ args = 0, pretend = 0, frame = 56
+ @ args = 0, pretend = 0, frame = 48
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L2005
+ ldr r3, .L1961
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
- movs r6, #0
- ldr r8, .L2005+24
- .pad #68
- sub sp, sp, #68
- ldrb r3, [r3, #481] @ zero_extendqisi2
- mov r7, r1
+ mov r10, r1
+ ldr r8, .L1961+20
+ .pad #60
+ sub sp, sp, #60
mov r9, r2
mov r4, r0
- mov r10, r0
- mov fp, r8
- str r3, [sp, #12]
-.L1977:
- cmp r6, r7
- beq .L2003
- subs r3, r7, r6
- add r2, sp, #20
- mov r0, r10
- mov r1, r9
+ ldrb fp, [r3, #477] @ zero_extendqisi2
+ mov r6, r0
+ movs r7, #0
+.L1935:
+ cmp r7, r10
+ bne .L1941
+ ldr r8, .L1961+24
+ mov r10, #0
+ ldr fp, .L1961+28
+.L1942:
+ cmp r7, r10
+ bne .L1949
+ movs r0, #0
+ add sp, sp, #60
+ @ sp needed
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L1941:
+ sub r3, r10, r7
+ add r2, sp, #12
uxtb r3, r3
+ mov r1, r9
+ mov r0, r6
str r3, [sp]
- add r3, sp, #24
+ add r3, sp, #16
bl LogAddr2PhyAddr
- ldrb r2, [r8, #2230] @ zero_extendqisi2
- ldr r3, [sp, #24]
- cmp r3, r2
- bcc .L1978
+ ldrb r2, [r8, #2234] @ zero_extendqisi2
+ ldr r3, [sp, #16]
+ cmp r2, r3
+ bhi .L1936
mov r3, #-1
- str r3, [r10]
- b .L1979
-.L1978:
+ str r3, [r6]
+.L1937:
+ adds r7, r7, #1
+ adds r6, r6, #36
+ b .L1935
+.L1936:
add r3, r3, r8
- ldrb r5, [r3, #2232] @ zero_extendqisi2
+ ldrb r5, [r3, #2236] @ zero_extendqisi2
mov r0, r5
bl NandcWaitFlashReady
mov r0, r5
bl NandcFlashCs
mov r0, r5
- ldr r1, [sp, #20]
+ ldr r1, [sp, #12]
bl FlashProgFirstCmd
- ldr r3, [r10, #12]
+ ldr r3, [r6, #12]
+ mov r2, fp
movs r1, #1
mov r0, r5
- ldr r2, [sp, #12]
str r3, [sp]
- ldr r3, [r10, #8]
+ ldr r3, [r6, #8]
bl NandcXferData
mov r0, r5
- ldr r1, [sp, #20]
+ ldr r1, [sp, #12]
bl FlashProgSecondCmd
mov r0, r5
bl NandcWaitFlashReady
mov r0, r5
- ldr r1, [sp, #20]
+ ldr r1, [sp, #12]
bl FlashReadStatus
- ldr r3, [sp, #20]
sbfx r0, r0, #0, #1
- str r0, [r10]
+ ldr r1, [sp, #12]
+ str r0, [r6]
mov r0, r5
- ldr r1, [r8, #4]
+ ldr r3, [r8, #40]
add r1, r1, r3
bl FlashProgFirstCmd
- ldr r3, [r10, #8]
- cbz r3, .L1980
+ ldr r3, [r6, #8]
+ cbz r3, .L1938
add r3, r3, #2048
-.L1980:
- ldr r2, [r10, #12]
- cbz r2, .L1981
+.L1938:
+ ldr r2, [r6, #12]
+ cbz r2, .L1939
adds r2, r2, #8
-.L1981:
+.L1939:
str r2, [sp]
movs r1, #1
- ldr r2, [sp, #12]
+ mov r2, fp
mov r0, r5
bl NandcXferData
- ldr r1, [fp, #4]
+ ldr r3, [r8, #40]
mov r0, r5
- ldr r3, [sp, #20]
+ ldr r1, [sp, #12]
add r1, r1, r3
bl FlashProgSecondCmd
mov r0, r5
bl NandcWaitFlashReady
mov r0, r5
- ldr r1, [sp, #20]
+ ldr r1, [sp, #12]
bl FlashReadStatus
lsls r2, r0, #31
mov r0, r5
itt mi
movmi r3, #-1
- strmi r3, [r10]
+ strmi r3, [r6]
bl NandcFlashDeCs
-.L1979:
- adds r6, r6, #1
- add r10, r10, #36
- b .L1977
-.L2003:
- ldr r8, .L2005+28
- mov r10, #0
- mov fp, r8
-.L1984:
- cmp r10, r7
- beq .L2004
+ b .L1937
+.L1949:
ldr r3, [r4]
adds r3, r3, #1
- bne .L1985
+ bne .L1943
ldr r1, [r4, #4]
- ldr r0, .L2005+4
+ ldr r0, .L1961+4
bl printk
- b .L1986
-.L1985:
- rsb r3, r10, r7
- mov r1, r9
- add r2, sp, #20
- mov r0, r4
- uxtb r3, r3
- str r3, [sp]
- add r3, sp, #24
- mov r6, r4
- bl LogAddr2PhyAddr
- ldr r2, [r8, #1220]
- movs r3, #0
- str r3, [r2]
- ldr r2, [r8, #1224]
- str r3, [r2]
- ldmia r6!, {r0, r1, r2, r3}
- add r5, sp, #28
- stmia r5!, {r0, r1, r2, r3}
- ldmia r6!, {r0, r1, r2, r3}
- stmia r5!, {r0, r1, r2, r3}
- add r0, sp, #28
- ldr r3, [r6]
- movs r1, #1
- mov r2, r9
- str r3, [r5]
- ldr r3, [r8, #1220]
- str r3, [sp, #36]
- ldr r3, [r8, #1224]
- str r3, [sp, #40]
- bl FlashReadPages
- ldr r5, [sp, #28]
- adds r3, r5, #1
- bne .L1987
- ldr r0, .L2005+8
- ldr r1, [r4, #4]
- bl printk
- str r5, [r4]
-.L1987:
- ldr r5, [sp, #28]
- cmp r5, #256
- bne .L1988
- ldr r0, .L2005+12
- ldr r1, [r4, #4]
- bl printk
- str r5, [r4]
-.L1988:
- ldr r3, [r4, #12]
- cbz r3, .L1989
- ldr r2, [r3]
- ldr r3, [fp, #1224]
- ldr r3, [r3]
- cmp r2, r3
- beq .L1989
- ldr r0, .L2005+16
- ldr r1, [r4, #4]
- bl printk
- mov r3, #-1
- str r3, [r4]
-.L1989:
- ldr r3, [r4, #8]
- cbz r3, .L1986
- ldr r2, [r3]
- ldr r3, [fp, #1220]
- ldr r3, [r3]
- cmp r2, r3
- beq .L1986
- ldr r0, .L2005+20
- ldr r1, [r4, #4]
- bl printk
- mov r3, #-1
- str r3, [r4]
-.L1986:
+.L1944:
add r10, r10, #1
adds r4, r4, #36
- b .L1984
-.L2004:
- movs r0, #0
- add sp, sp, #68
- @ sp needed
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L2006:
+ b .L1942
+.L1943:
+ sub r3, r7, r10
+ add r2, sp, #12
+ uxtb r3, r3
+ mov r1, r9
+ mov r0, r4
+ str r3, [sp]
+ add r3, sp, #16
+ bl LogAddr2PhyAddr
+ ldr r2, [r8, #1228]
+ movs r3, #0
+ mov r6, r4
+ add r5, sp, #20
+ str r3, [r2]
+ ldr r2, [r8, #1232]
+ str r3, [r2]
+ ldmia r6!, {r0, r1, r2, r3}
+ stmia r5!, {r0, r1, r2, r3}
+ ldmia r6!, {r0, r1, r2, r3}
+ stmia r5!, {r0, r1, r2, r3}
+ mov r2, r9
+ ldr r3, [r6]
+ movs r1, #1
+ add r0, sp, #20
+ str r3, [r5]
+ ldr r3, [r8, #1228]
+ str r3, [sp, #28]
+ ldr r3, [r8, #1232]
+ str r3, [sp, #32]
+ bl FlashReadPages
+ ldr r5, [sp, #20]
+ adds r3, r5, #1
+ bne .L1945
+ ldr r1, [r4, #4]
+ ldr r0, .L1961+8
+ bl printk
+ str r5, [r4]
+.L1945:
+ ldr r5, [sp, #20]
+ cmp r5, #256
+ bne .L1946
+ ldr r1, [r4, #4]
+ ldr r0, .L1961+12
+ bl printk
+ str r5, [r4]
+.L1946:
+ ldr r3, [r4, #12]
+ cbz r3, .L1947
+ ldr r2, [r3]
+ ldr r3, [r8, #1232]
+ ldr r3, [r3]
+ cmp r2, r3
+ beq .L1947
+ ldr r1, [r4, #4]
+ ldr r0, .L1961+16
+ bl printk
+ mov r3, #-1
+ str r3, [r4]
+.L1947:
+ ldr r3, [r4, #8]
+ cmp r3, #0
+ beq .L1944
+ ldr r2, [r3]
+ ldr r3, [r8, #1228]
+ ldr r3, [r3]
+ cmp r2, r3
+ beq .L1944
+ ldr r1, [r4, #4]
+ mov r0, fp
+ bl printk
+ mov r3, #-1
+ str r3, [r4]
+ b .L1944
+.L1962:
.align 2
-.L2005:
+.L1961:
.word .LANCHOR1
.word .LC104
.word .LC105
.word .LC106
.word .LC107
- .word .LC108
.word .LANCHOR0
.word .LANCHOR4
+ .word .LC108
.fnend
.size FlashProgSlc2KPages, .-FlashProgSlc2KPages
.align 1
.global FtlLoadFactoryBbt
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FtlLoadFactoryBbt, %function
FtlLoadFactoryBbt:
.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}
+ 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 r6, #0
- ldr r3, .L2018
- ldr r7, .L2018+4
- ldr r5, .L2018+8
+ ldr r3, .L1973
+ ldr r7, .L1973+4
+ ldr r5, .L1973+8
ldr r2, [r3, #3316]
- subw r8, r7, #2462
ldr r9, [r3, #3340]
+ subw r8, r7, #2466
mov r10, r8
- str r2, [r5, #1256]
- str r9, [r5, #1260]
-.L2008:
- ldrh r3, [r8, #2342]
+ add fp, r5, #1256
+ str r2, [r5, #1264]
+ str r9, [r5, #1268]
+.L1964:
+ ldrh r3, [r8, #2346]
cmp r6, r3
- bcs .L2017
- ldrh r4, [r8, #2386]
- movw fp, #61664
+ bcc .L1969
+ movs r0, #0
+ add sp, sp, #12
+ @ sp needed
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L1969:
+ ldrh r4, [r8, #2388]
movw r3, #65535
strh r3, [r7, #2]! @ movhi
+ movw r3, #61664
subs r4, r4, #1
uxth r4, r4
-.L2009:
- ldrh r3, [r10, #2386]
- sub r2, r3, #16
- cmp r4, r2
- ble .L2011
- mla r3, r3, r6, r4
- movs r1, #1
- ldr r0, .L2018+12
- mov r2, r1
- lsls r3, r3, #10
- str r3, [r5, #1252]
+.L1965:
+ ldrh r2, [r10, #2388]
+ sub r1, r2, #16
+ cmp r4, r1
+ ble .L1967
+ mla r2, r6, r2, r4
+ str r3, [sp, #4]
+ mov r0, fp
+ lsls r2, r2, #10
+ str r2, [r5, #1260]
+ movs r2, #1
+ mov r1, r2
bl FlashReadPages
- ldr r3, [r5, #1248]
- adds r3, r3, #1
- beq .L2010
- ldrh r3, [r9]
- cmp r3, fp
- bne .L2010
+ ldr r2, [r5, #1256]
+ ldr r3, [sp, #4]
+ adds r2, r2, #1
+ beq .L1966
+ ldrh r2, [r9]
+ cmp r2, r3
+ bne .L1966
strh r4, [r7] @ movhi
- b .L2011
-.L2010:
+.L1967:
+ adds r6, r6, #1
+ b .L1964
+.L1966:
subs r4, r4, #1
uxth r4, r4
- b .L2009
-.L2011:
- adds r6, r6, #1
- b .L2008
-.L2017:
- movs r0, #0
- pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L2019:
+ b .L1965
+.L1974:
.align 2
-.L2018:
+.L1973:
.word .LANCHOR2
- .word .LANCHOR0+2462
+ .word .LANCHOR0+2466
.word .LANCHOR4
- .word .LANCHOR4+1248
.fnend
.size FtlLoadFactoryBbt, .-FtlLoadFactoryBbt
.align 1
.global FtlGetLastWrittenPage
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FtlGetLastWrittenPage, %function
FtlGetLastWrittenPage:
.fnstart
@ args = 0, pretend = 0, frame = 104
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L2031
+ ldr r3, .L1986
cmp r1, #1
push {r4, r5, r6, r7, r8, lr}
.save {r4, r5, r6, r7, r8, lr}
+ lsl r8, r0, #10
.pad #104
sub sp, sp, #104
+ mov r2, r1
+ mov r7, r1
it eq
- ldrheq r4, [r3, #2390]
- mov r8, r1
+ ldrheq r5, [r3, #2392]
+ mov r6, #0
it ne
- ldrhne r4, [r3, #2388]
- lsls r6, r0, #10
+ ldrhne r5, [r3, #2390]
add r3, sp, #40
- add r0, sp, #4
- subs r5, r4, #1
str r3, [sp, #16]
movs r1, #1
- mov r2, r8
- uxth r5, r5
- movs r7, #0
- str r7, [sp, #12]
- sxth r3, r5
- orrs r3, r3, r6
- str r3, [sp, #8]
- bl FlashReadPages
- ldr r3, [sp, #40]
- adds r3, r3, #1
- bne .L2023
-.L2024:
- sxth r3, r7
- sxth r4, r5
- cmp r3, r4
- bgt .L2023
- add r4, r4, r3
add r0, sp, #4
- movs r1, #1
- mov r2, r8
- add r4, r4, r4, lsr #31
- asrs r4, r4, #1
- sxth r3, r4
- orrs r3, r3, r6
+ str r6, [sp, #12]
+ subs r5, r5, #1
+ sxth r5, r5
+ orr r3, r5, r8
str r3, [sp, #8]
bl FlashReadPages
ldr r3, [sp, #40]
adds r3, r3, #1
- bne .L2025
- ldr r3, [sp, #44]
- adds r3, r3, #1
- bne .L2025
- ldr r3, [sp, #4]
- adds r3, r3, #1
- beq .L2025
- subs r4, r4, #1
- uxth r5, r4
- b .L2024
-.L2025:
- adds r3, r4, #1
- uxth r7, r3
- b .L2024
-.L2023:
- sxth r0, r5
+ bne .L1978
+.L1979:
+ cmp r6, r5
+ ble .L1982
+.L1978:
+ mov r0, r5
add sp, sp, #104
@ sp needed
pop {r4, r5, r6, r7, r8, pc}
-.L2032:
+.L1982:
+ adds r3, r6, r5
+ mov r2, r7
+ add r3, r3, r3, lsr #31
+ movs r1, #1
+ add r0, sp, #4
+ asrs r4, r3, #1
+ sxth r3, r4
+ orr r3, r3, r8
+ str r3, [sp, #8]
+ bl FlashReadPages
+ ldr r3, [sp, #40]
+ adds r3, r3, #1
+ bne .L1980
+ ldr r3, [sp, #44]
+ adds r3, r3, #1
+ bne .L1980
+ ldr r3, [sp, #4]
+ adds r3, r3, #1
+ beq .L1980
+ subs r4, r4, #1
+ sxth r5, r4
+ b .L1979
+.L1980:
+ adds r4, r4, #1
+ sxth r6, r4
+ b .L1979
+.L1987:
.align 2
-.L2031:
+.L1986:
.word .LANCHOR0
.fnend
.size FtlGetLastWrittenPage, .-FtlGetLastWrittenPage
.align 1
.global FtlLoadBbt
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FtlLoadBbt, %function
FtlLoadBbt:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- push {r3, r4, r5, r6, r7, r8, r9, lr}
- .save {r3, r4, r5, r6, r7, r8, r9, lr}
- ldr r8, .L2062+16
- ldr r4, .L2062
- ldr r5, .L2062+4
+ push {r4, r5, r6, r7, r8, r9, r10, lr}
+ .save {r4, r5, r6, r7, r8, r9, r10, lr}
+ movw r10, #61649
+ ldr r8, .L2016+16
+ ldr r5, .L2016
ldr r3, [r8, #3316]
ldr r7, [r8, #3340]
- mov r9, r4
- str r3, [r4, #1256]
- str r7, [r4, #1260]
+ ldr r4, .L2016+4
+ add r9, r5, #1256
+ str r3, [r5, #1264]
+ str r7, [r5, #1268]
bl FtlBbtMemInit
- ldrh r6, [r5, #2386]
+ ldrh r6, [r4, #2388]
subs r6, r6, #1
uxth r6, r6
-.L2034:
- ldrh r3, [r5, #2386]
+.L1989:
+ ldrh r3, [r4, #2388]
subs r3, r3, #48
cmp r6, r3
- ble .L2037
- movs r1, #1
- ldr r0, .L2062+8
+ ble .L1992
lsls r3, r6, #10
- str r3, [r4, #1252]
- mov r2, r1
+ movs r2, #1
+ mov r1, r2
+ mov r0, r9
+ str r3, [r5, #1260]
bl FlashReadPages
- ldr r3, [r4, #1248]
+ ldr r3, [r5, #1256]
adds r3, r3, #1
- bne .L2035
- movs r1, #1
- ldr r3, [r9, #1252]
- ldr r0, .L2062+8
- mov r2, r1
+ bne .L1990
+ ldr r3, [r5, #1260]
+ movs r2, #1
+ mov r1, r2
+ mov r0, r9
adds r3, r3, #1
- str r3, [r9, #1252]
+ str r3, [r5, #1260]
bl FlashReadPages
-.L2035:
- ldr r3, [r4, #1248]
+.L1990:
+ ldr r3, [r5, #1256]
adds r3, r3, #1
- beq .L2036
- ldrh r2, [r7]
- movw r3, #61649
- cmp r2, r3
- bne .L2036
- ldr r3, [r7, #4]
- strh r6, [r5, #2452] @ movhi
- str r3, [r5, #2460]
- ldrh r3, [r7, #8]
- strh r3, [r5, #2456] @ movhi
- b .L2037
-.L2036:
- subs r6, r6, #1
- uxth r6, r6
- b .L2034
-.L2037:
- ldrh r3, [r5, #2452]
- movw r2, #65535
- ldr r6, .L2062+4
- cmp r3, r2
- beq .L2051
- ldrh r3, [r6, #2456]
- cmp r3, r2
- beq .L2041
- movs r1, #1
- ldr r0, .L2062+8
- lsls r3, r3, #10
- str r3, [r4, #1252]
- mov r2, r1
- bl FlashReadPages
- ldr r3, [r4, #1248]
- adds r3, r3, #1
- beq .L2041
- ldrh r2, [r7]
- movw r3, #61649
- cmp r2, r3
- bne .L2041
- ldr r3, [r7, #4]
- ldr r2, [r6, #2460]
- cmp r3, r2
- itttt hi
- strhi r3, [r6, #2460]
- ldrhhi r2, [r6, #2456]
- ldrhhi r3, [r7, #8]
- strhhi r2, [r6, #2452] @ movhi
- it hi
- strhhi r3, [r6, #2456] @ movhi
-.L2041:
- ldrh r0, [r5, #2452]
- movs r1, #1
- bl FtlGetLastWrittenPage
- movw r9, #61649
- uxth r6, r0
- adds r0, r0, #1
- strh r0, [r5, #2454] @ movhi
-.L2043:
- sxth r3, r6
- cmp r3, #0
- blt .L2048
- ldrh r2, [r5, #2452]
- movs r1, #1
- ldr r0, .L2062+8
- orr r3, r3, r2, lsl #10
- str r3, [r4, #1252]
- ldr r3, [r8, #3316]
- mov r2, r1
- str r3, [r4, #1256]
- bl FlashReadPages
- ldr r3, [r4, #1248]
- adds r3, r3, #1
- beq .L2044
+ beq .L1991
ldrh r3, [r7]
- cmp r3, r9
- bne .L2044
-.L2048:
- ldrh r2, [r7, #10]
- ldrh r0, [r7, #12]
- ldr r3, .L2062+4
- strh r2, [r5, #2458] @ movhi
+ cmp r3, r10
+ bne .L1991
+ ldr r3, [r7, #4]
+ strh r6, [r4, #2456] @ movhi
+ str r3, [r4, #2464]
+ ldrh r3, [r7, #8]
+ strh r3, [r4, #2460] @ movhi
+.L1992:
+ ldrh r3, [r4, #2456]
movw r2, #65535
- cmp r0, r2
- bne .L2045
- b .L2046
-.L2044:
+ cmp r3, r2
+ beq .L2006
+ ldrh r3, [r4, #2460]
+ cmp r3, r2
+ beq .L1996
+ lsls r3, r3, #10
+ movs r2, #1
+ mov r1, r2
+ ldr r0, .L2016+8
+ str r3, [r5, #1260]
+ bl FlashReadPages
+ ldr r3, [r5, #1256]
+ adds r3, r3, #1
+ beq .L1996
+ ldrh r2, [r7]
+ movw r3, #61649
+ cmp r2, r3
+ bne .L1996
+ ldr r3, [r7, #4]
+ ldr r2, [r4, #2464]
+ cmp r3, r2
+ bls .L1996
+ ldrh r2, [r4, #2460]
+ str r3, [r4, #2464]
+ ldrh r3, [r7, #8]
+ strh r2, [r4, #2456] @ movhi
+ strh r3, [r4, #2460] @ movhi
+.L1996:
+ ldr r9, .L2016+8
+ movs r1, #1
+ ldrh r0, [r4, #2456]
+ movw r10, #61649
+ bl FtlGetLastWrittenPage
+ sxth r6, r0
+ adds r0, r0, #1
+ strh r0, [r4, #2458] @ movhi
+.L1998:
+ cmp r6, #0
+ blt .L2003
+ ldrh r3, [r4, #2456]
+ movs r2, #1
+ mov r1, r2
+ mov r0, r9
+ orr r3, r6, r3, lsl #10
+ str r3, [r5, #1260]
+ ldr r3, [r8, #3316]
+ str r3, [r5, #1264]
+ bl FlashReadPages
+ ldr r3, [r5, #1256]
+ adds r3, r3, #1
+ beq .L1999
+ ldrh r3, [r7]
+ cmp r3, r10
+ bne .L1999
+.L2003:
+ ldrh r3, [r7, #10]
+ ldrh r0, [r7, #12]
+ strh r3, [r4, #2462] @ movhi
+ movw r3, #65535
+ cmp r0, r3
+ bne .L2000
+.L2001:
+ ldr r7, .L2016+12
+ movs r6, #0
+.L2004:
+ ldrh r3, [r4, #2346]
+ cmp r6, r3
+ bcc .L2005
+ movs r0, #0
+ pop {r4, r5, r6, r7, r8, r9, r10, pc}
+.L1991:
subs r6, r6, #1
uxth r6, r6
- b .L2043
-.L2045:
- ldr r2, [r3, #2316]
+ b .L1989
+.L1999:
+ subs r6, r6, #1
+ sxth r6, r6
+ b .L1998
+.L2000:
+ ldr r2, [r4, #2320]
cmp r0, r2
- beq .L2046
- ldrh r3, [r3, #2330]
+ beq .L2001
+ ldrh r3, [r4, #2334]
lsrs r3, r3, #2
cmp r2, r3
- bcs .L2046
+ bcs .L2001
cmp r0, r3
- bcs .L2046
+ bcs .L2001
bl FtlSysBlkNumInit
-.L2046:
- ldr r7, .L2062+12
- movs r6, #0
-.L2049:
- ldrh r3, [r5, #2342]
- cmp r6, r3
- bcs .L2061
+ b .L2001
+.L2005:
ldrh r2, [r8, #3404]
- ldr r1, [r4, #1256]
+ ldr r1, [r5, #1264]
ldr r0, [r7, #4]!
lsls r2, r2, #2
mla r1, r6, r2, r1
- bl ftl_memcpy
adds r6, r6, #1
- b .L2049
-.L2061:
- movs r0, #0
- pop {r3, r4, r5, r6, r7, r8, r9, pc}
-.L2051:
+ bl ftl_memcpy
+ b .L2004
+.L2006:
mov r0, #-1
- pop {r3, r4, r5, r6, r7, r8, r9, pc}
-.L2063:
+ pop {r4, r5, r6, r7, r8, r9, r10, pc}
+.L2017:
.align 2
-.L2062:
+.L2016:
.word .LANCHOR4
.word .LANCHOR0
- .word .LANCHOR4+1248
- .word .LANCHOR0+2476
+ .word .LANCHOR4+1256
+ .word .LANCHOR0+2480
.word .LANCHOR2
.fnend
.size FtlLoadBbt, .-FtlLoadBbt
.align 1
.global FtlScanSysBlk
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FtlScanSysBlk, %function
FtlScanSysBlk:
.fnstart
- @ args = 0, pretend = 0, frame = 32
+ @ args = 0, pretend = 0, frame = 24
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
movs r6, #0
- ldr r5, .L2149
- .pad #36
- sub sp, sp, #36
- ldr r4, .L2149+4
+ ldr r5, .L2098
mov r1, r6
- ldr r2, [r5, #2416]
+ .pad #28
+ sub sp, sp, #28
+ ldr r4, .L2098+4
+ ldr r2, [r5, #2420]
+ mov fp, r5
+ strh r6, [r5, #2438] @ movhi
ldr r0, [r4, #3396]
- mov r9, r4
- strh r6, [r5, #2434] @ movhi
- lsls r2, r2, #2
strh r6, [r4, #3452] @ movhi
+ lsls r2, r2, #2
bl ftl_memset
- ldr r2, [r5, #2416]
+ ldr r2, [r5, #2420]
mov r1, r6
ldr r0, [r4, #3368]
lsls r2, r2, #1
bl ftl_memset
- ldrh r2, [r5, #2408]
+ ldrh r2, [r5, #2412]
mov r1, r6
ldr r0, [r4, #3380]
lsls r2, r2, #2
bl ftl_memset
- ldrh r2, [r5, #2408]
- ldr r0, [r5, #2436]
+ ldrh r2, [r5, #2412]
mov r1, r6
+ ldr r0, [r5, #2440]
+ mov r6, r5
lsls r2, r2, #1
bl ftl_memset
- add r0, r4, #540
- movs r1, #255
movs r2, #16
+ movs r1, #255
+ add r0, r4, #540
bl ftl_memset
- ldrh r3, [r5, #2328]
- str r5, [sp, #12]
- mov r5, r4
+ ldrh r3, [r5, #2332]
str r3, [sp, #4]
-.L2065:
- ldr r6, .L2149
+.L2019:
+ ldrh r3, [r6, #2334]
ldr r2, [sp, #4]
- ldrh r3, [r6, #2330]
- mov r0, r6
cmp r3, r2
- bls .L2107
- ldr r1, [r4, #1148]
- mov r10, #36
- ldrh r8, [r6, #2320]
+ bls .L2060
+ ldr r2, [r4, #1148]
movs r7, #0
- ldr r2, [r4, #3304]
- str r1, [sp, #8]
+ ldrh r8, [r6, #2324]
+ mov r10, #36
+ ldr r9, [r4, #3304]
+ str r2, [sp, #8]
ldr r3, [r4, #1144]
- ldrh r1, [r6, #2400]
+ ldrh r2, [r6, #2402]
str r7, [sp]
- str r1, [sp, #16]
- addw r1, r6, #2348
- str r1, [sp, #20]
-.L2108:
- uxth r1, r7
- cmp r1, r8
- bcs .L2144
- str r3, [sp, #28]
- ldr r3, [sp, #20]
+ b .L2061
+.L2022:
+ str r3, [sp, #16]
+ ldr r3, .L2098+8
ldr r1, [sp, #4]
- str r2, [sp, #24]
+ str r2, [sp, #20]
ldrb r0, [r3, r7] @ zero_extendqisi2
bl V2P_block
- mov fp, r0
+ str r0, [sp, #12]
bl FtlBbmIsBadBlock
- ldr r2, [sp, #24]
- ldr r3, [sp, #28]
- cbnz r0, .L2066
+ ldr r3, [sp, #16]
+ ldr r2, [sp, #20]
+ cbnz r0, .L2020
ldr r1, [sp]
- ldr r6, [sp]
- mla r0, r10, r1, r2
- lsl r1, fp, #10
+ mla r0, r10, r1, r9
+ ldr r1, [sp, #12]
+ lsls r1, r1, #10
+ str r3, [r0, #8]
str r1, [r0, #4]
- ldr r1, [sp, #16]
- muls r1, r6, r1
- ldr r6, [sp, #8]
+ ldr r1, [sp]
+ muls r1, r2, r1
it mi
addmi r1, r1, #3
- bic r1, r1, #3
- str r3, [r0, #8]
- add r1, r1, r6
+ bic ip, r1, #3
+ ldr r1, [sp, #8]
+ add r1, r1, ip
str r1, [r0, #12]
ldr r1, [sp]
adds r1, r1, #1
uxth r1, r1
str r1, [sp]
-.L2066:
+.L2020:
adds r7, r7, #1
- b .L2108
-.L2144:
+.L2061:
+ uxth r1, r7
+ cmp r8, r1
+ bhi .L2022
ldr r3, [sp]
- cmp r3, #0
- beq .L2070
- mov r1, r3
- ldr r0, [r4, #3304]
+ cbnz r3, .L2023
+.L2059:
+ ldr r3, [sp, #4]
+ adds r3, r3, #1
+ uxth r3, r3
+ str r3, [sp, #4]
+ b .L2019
+.L2023:
movs r2, #1
- ldr r8, .L2149
+ ldr r1, [sp]
+ mov r0, r9
bl FlashReadPages
movs r3, #0
+.L2096:
str r3, [sp, #8]
-.L2071:
- ldrh r3, [sp, #8]
ldr r2, [sp]
- cmp r3, r2
- bcs .L2070
+ ldrh r3, [sp, #8]
+ cmp r2, r3
+ bls .L2059
ldr r3, [sp, #8]
- mov r10, #36
- mul r10, r10, r3
+ movs r2, #36
+ mul r9, r2, r3
ldr r3, [r4, #3304]
- add r2, r3, r10
- ldr r3, [r3, r10]
- ldr r6, [r2, #4]
+ add r2, r3, r9
+ ldr r3, [r3, r9]
+ ldr r7, [r2, #4]
+ ldr r8, [r2, #12]
adds r3, r3, #1
- ldr r7, [r2, #12]
- ubfx r6, r6, #10, #16
- bne .L2073
- mov fp, #16
- movw r3, #65535
-.L2072:
+ ubfx r7, r7, #10, #16
+ bne .L2027
+ mov r10, #16
+.L2029:
ldr r0, [r4, #3304]
- movs r1, #1
- str r3, [sp, #16]
- add r0, r0, r10
- ldr r2, [r0, #4]
- adds r2, r2, #1
- str r2, [r0, #4]
- mov r2, r1
- bl FlashReadPages
- ldrh r2, [r7]
- ldr r3, [sp, #16]
- cmp r2, r3
- bne .L2074
- ldr r3, [r9, #3304]
- mov r2, #-1
- str r2, [r3, r10]
- b .L2073
-.L2074:
- ldr r2, [r5, #3304]
- ldr r2, [r2, r10]
- adds r2, r2, #1
- bne .L2073
- add fp, fp, #-1
- uxth fp, fp
- cmp fp, #0
- bne .L2072
-.L2073:
- ldr r3, [r5, #3304]
- ldr r3, [r3, r10]
+ movs r2, #1
+ mov r1, r2
+ add r0, r0, r9
+ ldr r3, [r0, #4]
adds r3, r3, #1
- beq .L2076
- ldr r2, [r5, #508]
- ldr r3, [r7, #4]
+ str r3, [r0, #4]
+ bl FlashReadPages
+ ldrh r3, [r8]
+ movw r2, #65535
+ cmp r3, r2
+ ldr r3, [r4, #3304]
+ bne .L2026
+ mov r2, #-1
+ str r2, [r3, r9]
+ ldr r3, [r4, #3304]
+ ldr r3, [r3, r9]
+ cmp r3, r2
+ beq .L2028
+.L2027:
+ ldr r2, [r4, #508]
+ ldr r3, [r8, #4]
adds r1, r2, #1
- beq .L2077
+ beq .L2030
cmp r2, r3
- bhi .L2078
-.L2077:
+ bhi .L2031
+.L2030:
adds r2, r3, #1
itt ne
addne r2, r3, #1
- strne r2, [r9, #508]
-.L2078:
- ldrh r2, [r7]
+ strne r2, [r4, #508]
+.L2031:
+ ldrh r2, [r8]
movw r1, #61604
cmp r2, r1
- beq .L2080
- bhi .L2081
+ beq .L2033
+ bhi .L2034
movw r3, #61574
cmp r2, r3
- bne .L2079
- ldr r3, [sp, #12]
- ldr r2, [sp, #12]
- ldrh r10, [r3, #2408]
- ldrh r0, [r2, #2434]
- ldr r2, [r9, #3380]
- add lr, r10, #-1
- uxth r3, lr
- rsb lr, r0, lr
- str r2, [sp, #16]
- b .L2094
-.L2081:
+ beq .L2035
+.L2032:
+ ldr r3, [sp, #8]
+ adds r3, r3, #1
+ b .L2096
+.L2026:
+ ldr r3, [r3, r9]
+ adds r3, r3, #1
+ bne .L2027
+ add r10, r10, #-1
+ uxth r10, r10
+ cmp r10, #0
+ bne .L2029
+.L2028:
+ ldrb r1, [r6, #152] @ zero_extendqisi2
+ cbnz r1, .L2097
+.L2057:
+ mov r0, r7
+ bl FtlFreeSysBlkQueueIn
+ b .L2032
+.L2034:
movw r3, #61634
cmp r2, r3
- beq .L2083
+ beq .L2036
movw r3, #65535
cmp r2, r3
- bne .L2079
- mov r0, r6
- b .L2143
-.L2083:
- ldr r3, [sp, #12]
+ bne .L2032
+.L2097:
+ movs r1, #0
+ b .L2057
+.L2036:
+ ldr r1, [r5, #2420]
ldrh r0, [r4, #3452]
- ldr r2, [r4, #3396]
- ldr r1, [r3, #2416]
- str r2, [sp, #16]
- uxth lr, r1
- add r3, lr, #-1
- rsb lr, r0, lr
- add lr, lr, #-1
- uxth r3, r3
- sxth lr, lr
-.L2085:
- sxth ip, r3
- cmp ip, lr
- ble .L2145
- ldr r2, [r7, #4]
- lsl fp, ip, #2
- mov r10, r2
- ldr r2, [sp, #16]
- ldr r2, [r2, ip, lsl #2]
- cmp r10, r2
- bls .L2086
- ldr r2, [sp, #16]
- ldr r2, [r2]
- cbnz r2, .L2087
- cmp r0, r1
+ ldr r9, [r4, #3396]
+ uxth ip, r1
+ add r3, ip, #-1
+ sub ip, ip, r0
+ add ip, ip, #-1
+ sxth r3, r3
+ sxth ip, ip
+.L2038:
+ cmp r3, ip
+ bgt .L2044
+ cmp r3, #0
+ bge .L2074
+ b .L2032
+.L2044:
+ ldr r2, [r8, #4]
+ lsl r10, r3, #2
+ mov lr, r2
+ ldr r2, [r9, r3, lsl #2]
+ cmp lr, r2
+ bls .L2039
+ ldr r2, [r9]
+ cbnz r2, .L2040
+ cmp r1, r0
itt ne
addne r0, r0, #1
- strhne r0, [r9, #3452] @ movhi
-.L2087:
- movs r1, #0
- uxth lr, r3
-.L2088:
- uxth r2, r1
- cmp r2, lr
- bcs .L2146
- ldr r0, [r5, #3396]
- sxth r2, r2
- adds r1, r1, #1
- add r10, r0, r2, lsl #2
- ldr r10, [r10, #4]
- str r10, [r0, r2, lsl #2]
- ldr r0, [r5, #3368]
- add r10, r0, r2, lsl #1
- ldrh r10, [r10, #2]
- strh r10, [r0, r2, lsl #1] @ movhi
- b .L2088
-.L2146:
- ldr r1, [r7, #4]
+ strhne r0, [r4, #3452] @ movhi
+.L2040:
+ uxth ip, r3
+ movs r2, #0
+.L2041:
+ uxth r0, r2
+ sxth r1, r2
+ cmp r0, ip
+ bcc .L2042
ldr r2, [r4, #3396]
- str r1, [r2, fp]
- sxth r1, r3
+ cmp r3, #0
+ ldr r1, [r8, #4]
+ str r1, [r2, r10]
ldr r2, [r4, #3368]
- cmp r1, #0
- strh r6, [r2, ip, lsl #1] @ movhi
- bge .L2090
- b .L2079
-.L2086:
- subs r3, r3, #1
- uxth r3, r3
- b .L2085
-.L2145:
- cmp ip, #0
- bge .L2121
- b .L2079
-.L2090:
- ldrh r0, [r5, #3452]
- ldr r2, [r8, #2416]
+ strh r7, [r2, r3, lsl #1] @ movhi
+ blt .L2032
+ ldrh r0, [r4, #3452]
+ ldr r2, [r5, #2420]
subs r2, r2, r0
subs r2, r2, #1
sxth r2, r2
- cmp r1, r2
- bgt .L2079
-.L2121:
+ cmp r3, r2
+ bgt .L2032
+.L2074:
ldr r2, [r4, #3396]
- sxth r3, r3
- ldr r1, [r7, #4]
adds r0, r0, #1
+ ldr r1, [r8, #4]
strh r0, [r4, #3452] @ movhi
str r1, [r2, r3, lsl #2]
ldr r2, [r4, #3368]
- b .L2141
-.L2100:
- ldr r1, [sp, #16]
- lsl fp, ip, #2
- ldr r2, [r7, #4]
- ldr r1, [r1, ip, lsl #2]
- cmp r2, r1
- bhi .L2147
- subs r3, r3, #1
- uxth r3, r3
.L2094:
- sxth ip, r3
- cmp ip, lr
- bgt .L2100
- b .L2099
-.L2150:
+ strh r7, [r2, r3, lsl #1] @ movhi
+ b .L2032
+.L2042:
+ ldr r0, [r4, #3396]
+ adds r2, r2, #1
+ add lr, r0, r1, lsl #2
+ ldr lr, [lr, #4]
+ str lr, [r0, r1, lsl #2]
+ ldr r0, [r4, #3368]
+ add lr, r0, r1, lsl #1
+ ldrh lr, [lr, #2]
+ strh lr, [r0, r1, lsl #1] @ movhi
+ b .L2041
+.L2039:
+ subs r3, r3, #1
+ sxth r3, r3
+ b .L2038
+.L2099:
.align 2
-.L2149:
+.L2098:
.word .LANCHOR0
.word .LANCHOR2
-.L2147:
- ldr r2, [sp, #16]
- ldr r2, [r2]
- cbnz r2, .L2096
- cmp r0, r10
+ .word .LANCHOR0+2350
+.L2035:
+ ldrh lr, [r5, #2412]
+ ldrh r0, [r5, #2438]
+ ldr r9, [r4, #3380]
+ add ip, lr, #-1
+ sxth r3, ip
+ sub ip, ip, r0
+.L2047:
+ cmp r3, ip
+ ble .L2052
+ ldr r2, [r8, #4]
+ lsl r10, r3, #2
+ ldr r1, [r9, r3, lsl #2]
+ cmp r2, r1
+ bls .L2048
+ ldr r2, [r9]
+ cbnz r2, .L2049
+ cmp lr, r0
itt ne
addne r0, r0, #1
- strhne r0, [r8, #2434] @ movhi
-.L2096:
- movs r1, #0
- uxth lr, r3
-.L2097:
- uxth r2, r1
- cmp r2, lr
- bcs .L2148
- ldr r0, [r4, #3380]
- sxth r2, r2
- adds r1, r1, #1
- add r10, r0, r2, lsl #2
- ldr r10, [r10, #4]
- str r10, [r0, r2, lsl #2]
- ldr r0, [r8, #2436]
- add r10, r0, r2, lsl #1
- ldrh r10, [r10, #2]
- strh r10, [r0, r2, lsl #1] @ movhi
- b .L2097
-.L2148:
- ldr r2, [r5, #3380]
- ldr r1, [r7, #4]
- str r1, [r2, fp]
- ldr r2, .L2151
- ldr r2, [r2, #2436]
- strh r6, [r2, ip, lsl #1] @ movhi
-.L2099:
- sxth r3, r3
+ strhne r0, [r6, #2438] @ movhi
+.L2049:
+ uxth ip, r3
+ movs r2, #0
+.L2050:
+ uxth r0, r2
+ sxth r1, r2
+ cmp r0, ip
+ bcc .L2051
+ ldr r2, [r4, #3380]
+ ldr r1, [r8, #4]
+ str r1, [r2, r10]
+ ldr r2, [r6, #2440]
+ strh r7, [r2, r3, lsl #1] @ movhi
+.L2052:
cmp r3, #0
- blt .L2079
- ldrh r2, [r8, #2408]
- ldrh r1, [r8, #2434]
+ blt .L2032
+ ldrh r2, [r6, #2412]
+ ldrh r1, [r6, #2438]
subs r2, r2, #1
subs r2, r2, r1
sxth r2, r2
cmp r3, r2
- bgt .L2079
+ bgt .L2032
adds r1, r1, #1
- ldr r2, [r9, #3380]
- strh r1, [r8, #2434] @ movhi
- ldr r1, [r7, #4]
+ ldr r2, [r4, #3380]
+ strh r1, [r6, #2438] @ movhi
+ ldr r1, [r8, #4]
str r1, [r2, r3, lsl #2]
- ldr r2, [r8, #2436]
-.L2141:
- strh r6, [r2, r3, lsl #1] @ movhi
- b .L2079
-.L2080:
- ldrh r1, [r9, #540]
+ ldr r2, [r6, #2440]
+ b .L2094
+.L2051:
+ ldr r0, [r4, #3380]
+ adds r2, r2, #1
+ add lr, r0, r1, lsl #2
+ ldr lr, [lr, #4]
+ str lr, [r0, r1, lsl #2]
+ ldr r0, [r6, #2440]
+ add lr, r0, r1, lsl #1
+ ldrh lr, [lr, #2]
+ strh lr, [r0, r1, lsl #1] @ movhi
+ b .L2050
+.L2048:
+ subs r3, r3, #1
+ sxth r3, r3
+ b .L2047
+.L2033:
+ ldrh r1, [r4, #540]
movw r2, #65535
cmp r1, r2
- bne .L2101
- strh r6, [r5, #540] @ movhi
- b .L2142
-.L2101:
- ldrh r0, [r5, #544]
+ bne .L2054
+ strh r7, [r4, #540] @ movhi
+.L2095:
+ str r3, [r4, #548]
+ b .L2032
+.L2054:
+ ldrh r0, [r4, #544]
cmp r0, r2
- beq .L2102
+ beq .L2055
movs r1, #1
bl FtlFreeSysBlkQueueIn
-.L2102:
- ldr r2, [r9, #548]
- ldr r3, [r7, #4]
+.L2055:
+ ldr r2, [r4, #548]
+ ldr r3, [r8, #4]
cmp r2, r3
- bcs .L2103
- ldrh r3, [r5, #540]
- strh r6, [r5, #540] @ movhi
- strh r3, [r5, #544] @ movhi
- ldr r3, [r7, #4]
-.L2142:
- str r3, [r5, #548]
- b .L2079
-.L2103:
- strh r6, [r5, #544] @ movhi
- b .L2079
-.L2076:
- ldrb r1, [r8, #144] @ zero_extendqisi2
- mov r0, r6
- cbz r1, .L2104
-.L2143:
- movs r1, #0
-.L2104:
- bl FtlFreeSysBlkQueueIn
-.L2079:
- ldr r3, [sp, #8]
- adds r3, r3, #1
- str r3, [sp, #8]
- b .L2071
-.L2070:
- ldr r6, [sp, #4]
- adds r6, r6, #1
- uxth r3, r6
- str r3, [sp, #4]
- b .L2065
-.L2107:
- ldr r3, .L2151+4
- ldr r5, [r3, #3368]
- ldrh r2, [r5]
- cbz r2, .L2109
-.L2112:
- ldr r5, [r0, #2436]
- ldr r3, .L2151
- ldrh r2, [r5]
- cbz r2, .L2110
- b .L2133
-.L2109:
- ldrh r3, [r3, #3452]
- cmp r3, #0
- beq .L2112
- ldr r6, [r6, #2416]
-.L2113:
- uxth r3, r2
- sxth r1, r3
- cmp r1, r6
- bcs .L2112
- ldrh r7, [r5, r1, lsl #1]
- adds r2, r2, #1
- cmp r7, #0
- beq .L2113
- mov lr, #0
-.L2114:
- ldr r5, [r0, #2416]
- sxth r2, r3
- cmp r2, r5
- bcs .L2112
- ldr r5, [r4, #3368]
- subs r6, r2, r1
- adds r3, r3, #1
- ldrh r7, [r5, r2, lsl #1]
- uxth r3, r3
- strh r7, [r5, r6, lsl #1] @ movhi
- ldr r5, [r4, #3396]
- ldr r7, [r5, r2, lsl #2]
- str r7, [r5, r6, lsl #2]
- ldr r5, [r4, #3368]
- strh lr, [r5, r2, lsl #1] @ movhi
- b .L2114
-.L2110:
- ldrh r1, [r3, #2434]
- cbz r1, .L2133
- ldrh r6, [r3, #2408]
-.L2117:
- uxth r3, r2
- sxth r1, r3
- cmp r1, r6
- bge .L2133
- ldrh r7, [r5, r1, lsl #1]
- adds r2, r2, #1
- cmp r7, #0
- beq .L2117
- ldr r5, .L2151
- mov ip, #0
-.L2118:
- ldrh r6, [r0, #2408]
- sxth r2, r3
- cmp r2, r6
- bge .L2133
- ldr r6, [r5, #2436]
- rsb lr, r1, r2
- adds r3, r3, #1
- ldrh r7, [r6, r2, lsl #1]
- uxth r3, r3
- strh r7, [r6, lr, lsl #1] @ movhi
- ldr r6, [r4, #3380]
- ldr r7, [r6, r2, lsl #2]
- str r7, [r6, lr, lsl #2]
- ldr r6, [r5, #2436]
- strh ip, [r6, r2, lsl #1] @ movhi
- b .L2118
-.L2133:
+ bcs .L2056
+ ldrh r3, [r4, #540]
+ strh r7, [r4, #540] @ movhi
+ strh r3, [r4, #544] @ movhi
+ ldr r3, [r8, #4]
+ b .L2095
+.L2056:
+ strh r7, [r4, #544] @ movhi
+ b .L2032
+.L2060:
+ ldr r1, [r4, #3368]
+ ldrh r3, [r1]
+ cbz r3, .L2062
+.L2065:
+ ldr r1, [r5, #2440]
+ ldrh r2, [r1]
+ cbz r2, .L2063
+.L2085:
movs r0, #0
- add sp, sp, #36
+ add sp, sp, #28
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L2152:
- .align 2
-.L2151:
- .word .LANCHOR0
- .word .LANCHOR2
+.L2062:
+ ldrh r2, [r4, #3452]
+ cmp r2, #0
+ beq .L2065
+ ldr r0, [r6, #2420]
+.L2066:
+ sxth r2, r3
+ cmp r2, r0
+ bcs .L2065
+ ldrh r6, [r1, r2, lsl #1]
+ adds r3, r3, #1
+ cmp r6, #0
+ beq .L2066
+ mov r3, r2
+ movs r7, #0
+.L2067:
+ ldr r1, [fp, #2420]
+ cmp r3, r1
+ bcs .L2065
+ ldr r1, [r4, #3368]
+ subs r0, r3, r2
+ ldrh r6, [r1, r3, lsl #1]
+ strh r6, [r1, r0, lsl #1] @ movhi
+ ldr r1, [r4, #3396]
+ ldr r6, [r1, r3, lsl #2]
+ str r6, [r1, r0, lsl #2]
+ ldr r1, [r4, #3368]
+ strh r7, [r1, r3, lsl #1] @ movhi
+ adds r3, r3, #1
+ sxth r3, r3
+ b .L2067
+.L2063:
+ ldrh r3, [r5, #2438]
+ cmp r3, #0
+ beq .L2085
+ ldrh r0, [r5, #2412]
+.L2070:
+ sxth r3, r2
+ cmp r3, r0
+ mov r5, r3
+ bge .L2085
+ ldrh r6, [r1, r3, lsl #1]
+ adds r2, r2, #1
+ cmp r6, #0
+ beq .L2070
+ movs r0, #0
+.L2071:
+ ldrh r2, [fp, #2412]
+ cmp r3, r2
+ bge .L2085
+ ldr r2, [fp, #2440]
+ subs r1, r3, r5
+ ldrh r6, [r2, r3, lsl #1]
+ strh r6, [r2, r1, lsl #1] @ movhi
+ ldr r2, [r4, #3380]
+ ldr r6, [r2, r3, lsl #2]
+ str r6, [r2, r1, lsl #2]
+ ldr r2, [fp, #2440]
+ strh r0, [r2, r3, lsl #1] @ movhi
+ adds r3, r3, #1
+ sxth r3, r3
+ b .L2071
.fnend
.size FtlScanSysBlk, .-FtlScanSysBlk
.align 1
.global FtlLoadSysInfo
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FtlLoadSysInfo, %function
FtlLoadSysInfo:
.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}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
movs r1, #0
- ldr r4, .L2181
- .pad #44
- sub sp, sp, #44
- ldr r7, .L2181+4
- ldr r5, .L2181+8
+ ldr r4, .L2128
+ .pad #36
+ sub sp, sp, #36
+ ldr r5, .L2128+4
ldr r3, [r4, #3316]
- ldrh r2, [r7, #2328]
- ldr r0, [r4, #296]
- str r3, [r5, #1256]
+ ldr r6, .L2128+8
+ ldrh r2, [r5, #2332]
+ ldr r0, [r4, #300]
+ str r3, [r6, #1264]
ldr r3, [r4, #3340]
lsls r2, r2, #1
- str r3, [r5, #1260]
+ str r3, [r6, #1268]
bl ftl_memset
ldrh r0, [r4, #540]
movw r3, #65535
cmp r0, r3
- bne .L2154
-.L2165:
+ bne .L2101
+.L2112:
mov r0, #-1
- b .L2155
-.L2154:
+.L2100:
+ add sp, sp, #36
+ @ sp needed
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L2101:
movs r1, #1
- mov r8, r5
+ ldr fp, .L2128+36
bl FtlGetLastWrittenPage
- ldrh r10, [r4, #540]
- uxth r6, r0
+ ldrsh r9, [r4, #540]
+ add r10, r6, #1256
+ sxth r7, r0
adds r0, r0, #1
strh r0, [r4, #542] @ movhi
-.L2156:
- sxth r3, r6
- cmp r3, #0
- blt .L2164
- sxth fp, r10
- movs r1, #1
- ldr r0, .L2181+12
- orr r3, r3, fp, lsl #10
- str r3, [r5, #1252]
+.L2103:
+ cmp r7, #0
+ blt .L2111
+ orr r3, r7, r9, lsl #10
+ movs r2, #1
+ mov r1, r2
+ str r3, [r6, #1260]
+ mov r0, r10
ldr r3, [r4, #3316]
- mov r2, r1
- ldr r9, .L2181
- str r3, [r5, #1256]
+ str r3, [r6, #1264]
bl FlashReadPages
- ldrb r3, [r7] @ zero_extendqisi2
+ ldrb r3, [r5, #36] @ zero_extendqisi2
cmp r3, #0
- beq .L2157
- ldr r3, [r8, #1260]
- ldr r2, [r3, #12]
- cmp r2, #0
- beq .L2157
- ldr ip, [r8, #1256]
- str r3, [sp, #32]
- ldr r3, .L2181+4
- mov r0, ip
- str r2, [sp, #36]
- str ip, [sp, #28]
- ldrh r1, [r3, #2398]
+ beq .L2104
+ ldr r8, [r6, #1268]
+ ldr r3, [r8, #12]
+ str r3, [sp, #28]
+ cbz r3, .L2104
+ ldr r2, [r6, #1264]
+ ldrh r1, [r5, #2400]
+ mov r0, r2
+ str r2, [sp, #24]
bl js_hash
- ldr r2, [sp, #36]
- cmp r2, r0
- beq .L2157
- ldr ip, [sp, #28]
- ldr r3, [sp, #32]
- cbnz r6, .L2158
- ldrh r1, [r9, #544]
- cmp fp, r1
- beq .L2158
- ldr r0, [r3]
- ldrh r1, [r9, #540]
- str r0, [sp]
- ldr r0, [r3, #4]
- str r0, [sp, #4]
- ldr r3, [r3, #8]
- str r2, [sp, #12]
- ldr r0, .L2181+16
+ ldr r3, [sp, #28]
+ cmp r3, r0
+ beq .L2104
+ cbnz r7, .L2105
+ ldrh r1, [r4, #544]
+ ldr r2, [sp, #24]
+ cmp r9, r1
+ beq .L2105
+ ldr r2, [r2]
+ mov r0, fp
+ str r3, [sp, #12]
+ ldrh r1, [r4, #540]
+ str r2, [sp, #16]
+ ldr r3, [r8, #8]
+ ldr r2, [r6, #1256]
str r3, [sp, #8]
- ldr r3, [ip]
- str r3, [sp, #16]
- ldr r3, [r8, #1252]
- ldr r2, [r8, #1248]
+ ldr r3, [r8, #4]
+ str r3, [sp, #4]
+ ldr r3, [r8]
+ str r3, [sp]
+ ldr r3, [r6, #1260]
bl printk
- ldr r3, .L2181+4
- ldrh r10, [r9, #544]
- ldrh r6, [r3, #2390]
- b .L2160
-.L2158:
+ ldrsh r9, [r4, #544]
+ ldrh r7, [r5, #2392]
+.L2107:
+ subs r7, r7, #1
+ sxth r7, r7
+ b .L2103
+.L2105:
mov r3, #-1
- str r3, [r5, #1248]
-.L2157:
- ldr r3, [r5, #1248]
+ str r3, [r6, #1256]
+.L2104:
+ ldr r3, [r6, #1256]
adds r3, r3, #1
- beq .L2160
+ beq .L2107
ldr r3, [r4, #3316]
- ldr r2, .L2181+20
+ ldr r2, .L2128+12
ldr r3, [r3]
cmp r3, r2
- bne .L2160
- ldr r3, .L2181
- ldr r3, [r3, #3340]
+ bne .L2107
+ ldr r3, [r4, #3340]
ldrh r2, [r3]
movw r3, #61604
cmp r2, r3
- bne .L2160
-.L2164:
- ldr r6, .L2181
+ bne .L2107
+.L2111:
movs r2, #48
- ldr r1, [r5, #1256]
- add r0, r6, #240
- ldr r8, .L2181+4
+ ldr r1, [r6, #1264]
+ ldr r0, .L2128+16
bl ftl_memcpy
- ldrh r2, [r7, #2328]
- ldr r1, [r5, #1256]
- ldr r0, [r4, #296]
- adds r1, r1, #48
+ ldrh r2, [r5, #2332]
+ ldr r1, [r6, #1264]
+ ldr r0, [r4, #300]
lsls r2, r2, #1
+ adds r1, r1, #48
bl ftl_memcpy
- ldrh r2, [r7, #2328]
- ldr r1, [r5, #1256]
- ldr r0, [r4, #472]
- lsls r3, r2, #1
- lsrs r2, r2, #3
- adds r3, r3, #51
+ ldrh r1, [r5, #2332]
+ ldr r3, [r6, #1264]
+ ldr r0, [r5, #32]
+ lsrs r2, r1, #3
+ lsls r1, r1, #1
+ adds r1, r1, #51
adds r2, r2, #4
- bic r3, r3, #3
+ bic r1, r1, #3
add r1, r1, r3
bl ftl_memcpy
- ldrh r3, [r7, #2432]
- cbz r3, .L2162
- ldrh r2, [r8, #2328]
- ldr r0, [r6, #3392]
- lsrs r3, r2, #3
- add r3, r3, r2, lsl #1
- ldr r2, .L2181+8
+ ldrh r3, [r5, #2436]
+ cbz r3, .L2109
+ ldrh r1, [r5, #2332]
+ ldrh r2, [r5, #2428]
+ ldr r0, [r4, #3392]
+ lsrs r3, r1, #3
+ lsls r2, r2, #2
+ add r3, r3, r1, lsl #1
+ ldr r1, [r6, #1264]
adds r3, r3, #52
ubfx r3, r3, #2, #14
- ldr r1, [r2, #1256]
- ldrh r2, [r8, #2424]
add r1, r1, r3, lsl #2
- lsls r2, r2, #2
bl ftl_memcpy
- b .L2162
-.L2160:
- subs r6, r6, #1
- uxth r6, r6
- b .L2156
-.L2162:
- ldr r2, [r4, #240]
- ldr r3, .L2181+20
- ldr r6, .L2181
+.L2109:
+ ldr r2, [r4, #244]
+ ldr r3, .L2128+12
cmp r2, r3
- bne .L2165
- ldrb r0, [r6, #250] @ zero_extendqisi2
- ldrh r1, [r7, #2342]
- ldrh r2, [r6, #248]
- cmp r0, r1
- ldr r3, .L2181+4
- strh r2, [r6, #546] @ movhi
- bne .L2165
- ldrh r1, [r3, #2388]
- ldrh r0, [r3, #2394]
- str r2, [r5, #1284]
- muls r1, r2, r1
- str r1, [r3, #2448]
- muls r1, r0, r1
- ldrh r0, [r3, #2458]
- str r1, [r3, #2428]
- ldr r1, [r3, #2332]
- subs r0, r1, r0
- ldrh r1, [r3, #2320]
+ bne .L2112
+ ldrb r1, [r4, #254] @ zero_extendqisi2
+ ldrh r3, [r5, #2346]
+ ldrh r2, [r4, #252]
+ cmp r1, r3
+ strh r2, [r4, #546] @ movhi
+ bne .L2112
+ ldrh r3, [r5, #2390]
+ ldrh r1, [r5, #2396]
+ ldr r0, [r5, #2336]
+ str r2, [r6, #1292]
+ muls r3, r2, r3
+ str r3, [r5, #2452]
+ muls r3, r1, r3
+ ldrh r1, [r5, #2324]
+ str r3, [r5, #2432]
+ ldrh r3, [r5, #2462]
+ subs r0, r0, r3
subs r0, r0, r2
bl __aeabi_uidiv
- ldrh r3, [r6, #256]
- ldrh r1, [r6, #254]
+ ldrh r3, [r4, #260]
+ strh r0, [r4, #536] @ movhi
+ ldrh r1, [r4, #258]
lsrs r2, r3, #6
- strh r2, [r6, #318] @ movhi
- ldrh r2, [r6, #258]
and r3, r3, #63
- strb r3, [r6, #322]
- ldrb r3, [r6, #251] @ zero_extendqisi2
- strh r2, [r6, #364] @ movhi
- ldrh r2, [r6, #260]
- strb r3, [r6, #324]
+ strb r3, [r4, #326]
+ strh r2, [r4, #322] @ movhi
+ ldrh r2, [r4, #262]
+ ldrb r3, [r4, #255] @ zero_extendqisi2
+ strh r1, [r4, #320] @ movhi
+ strh r2, [r4, #368] @ movhi
+ ldrh r2, [r4, #264]
+ strb r3, [r4, #328]
movw r3, #65535
- strh r1, [r6, #316] @ movhi
- strh r3, [r6, #556] @ movhi
+ strh r3, [r4, #556] @ movhi
movs r3, #0
- strh r3, [r6, #558] @ movhi
- strb r3, [r6, #562]
- strb r3, [r6, #564]
- str r3, [r6, #496]
- strh r0, [r6, #536] @ movhi
+ strh r3, [r4, #558] @ movhi
lsrs r0, r2, #6
and r2, r2, #63
- strb r2, [r6, #370]
- ldrb r2, [r6, #252] @ zero_extendqisi2
- strh r0, [r6, #366] @ movhi
- strb r2, [r6, #372]
- ldrh r2, [r6, #262]
- strh r2, [r6, #412] @ movhi
- ldrh r2, [r6, #264]
+ strb r2, [r4, #374]
+ ldrb r2, [r4, #256] @ zero_extendqisi2
+ strh r0, [r4, #370] @ movhi
+ strb r3, [r4, #562]
+ strb r2, [r4, #376]
+ ldrh r2, [r4, #266]
+ strb r3, [r4, #564]
+ strh r2, [r4, #416] @ movhi
+ ldrh r2, [r4, #268]
lsrs r0, r2, #6
and r2, r2, #63
- strb r2, [r6, #418]
- ldrb r2, [r6, #253] @ zero_extendqisi2
- strh r0, [r6, #414] @ movhi
- strb r2, [r6, #420]
- str r3, [r6, #484]
- ldr r2, [r6, #272]
- str r3, [r6, #476]
- str r3, [r6, #492]
- str r3, [r6, #520]
- str r3, [r6, #528]
- str r3, [r6, #488]
- ldr r3, [r6, #280]
- str r2, [r6, #516]
- ldr r2, [r6, #508]
+ strb r2, [r4, #422]
+ ldrb r2, [r4, #257] @ zero_extendqisi2
+ strh r0, [r4, #418] @ movhi
+ strb r2, [r4, #424]
+ str r3, [r4, #496]
+ ldr r2, [r4, #276]
+ str r3, [r4, #484]
+ str r3, [r4, #476]
+ str r3, [r4, #492]
+ str r2, [r4, #516]
+ str r3, [r4, #520]
+ ldr r2, [r4, #508]
+ str r3, [r4, #528]
+ str r3, [r4, #488]
+ ldr r3, [r4, #284]
cmp r3, r2
ldr r2, [r4, #512]
it hi
- strhi r3, [r6, #508]
- ldr r3, [r4, #276]
+ strhi r3, [r4, #508]
+ ldr r3, [r4, #280]
cmp r3, r2
- itt hi
- ldrhi r2, .L2181
- strhi r3, [r2, #512]
+ it hi
+ strhi r3, [r4, #512]
movw r3, #65535
cmp r1, r3
- beq .L2168
- ldr r0, .L2181+24
+ beq .L2115
+ ldr r0, .L2128+20
bl make_superblock
-.L2168:
- ldrh r2, [r4, #364]
+.L2115:
+ ldrh r2, [r4, #368]
movw r3, #65535
cmp r2, r3
- beq .L2169
- ldr r0, .L2181+28
+ beq .L2116
+ ldr r0, .L2128+24
bl make_superblock
-.L2169:
- ldrh r2, [r4, #412]
+.L2116:
+ ldrh r2, [r4, #416]
movw r3, #65535
cmp r2, r3
- beq .L2170
- ldr r0, .L2181+32
+ beq .L2117
+ ldr r0, .L2128+28
bl make_superblock
-.L2170:
+.L2117:
ldrh r2, [r4, #556]
movw r3, #65535
cmp r2, r3
- beq .L2171
- ldr r0, .L2181+36
+ beq .L2118
+ ldr r0, .L2128+32
bl make_superblock
-.L2171:
+.L2118:
movs r0, #0
-.L2155:
- add sp, sp, #44
- @ sp needed
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L2182:
+ b .L2100
+.L2129:
.align 2
-.L2181:
+.L2128:
.word .LANCHOR2
.word .LANCHOR0
.word .LANCHOR4
- .word .LANCHOR4+1248
- .word .LC109
.word 1179929683
- .word .LANCHOR2+316
- .word .LANCHOR2+364
- .word .LANCHOR2+412
+ .word .LANCHOR2+244
+ .word .LANCHOR2+320
+ .word .LANCHOR2+368
+ .word .LANCHOR2+416
.word .LANCHOR2+556
+ .word .LC109
.fnend
.size FtlLoadSysInfo, .-FtlLoadSysInfo
.align 1
.global FtlDumpBlockInfo
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FtlDumpBlockInfo, %function
FtlDumpBlockInfo:
.fnstart
@@ -13339,151 +13637,149 @@
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
ubfx r0, r0, #10, #16
+ ldr r4, .L2144
.pad #100
sub sp, sp, #100
- mov r8, r1
+ mov r9, r1
+ ldr r7, .L2144+4
bl P2V_block_in_plane
- ldr r4, .L2199
- ldr r7, .L2199+4
- ldr r1, .L2199+8
- ldrh r9, [r4, #2388]
+ ldr r1, .L2144+8
mov r6, r0
- ldr r0, .L2199+12
+ ldr r0, .L2144+12
+ ldrh r8, [r4, #2390]
bl printk
- ldr r3, [r7, #296]
+ ldr r3, [r7, #300]
mov r1, r6
- ldr r0, .L2199+16
+ ldr r0, .L2144+16
ldrh r2, [r3, r6, lsl #1]
bl printk
add r0, sp, #96
strh r6, [r0, #-48]! @ movhi
bl make_superblock
- ldrb r5, [r4, #144] @ zero_extendqisi2
+ ldrb r5, [r4, #152] @ zero_extendqisi2
str r7, [sp, #44]
- cbz r5, .L2184
- cmp r8, #0
- bne .L2195
+ cbz r5, .L2131
+ cmp r9, #0
+ bne .L2142
mov r0, r6
bl ftl_get_blk_mode
cmp r0, #1
mov r5, r0
- bne .L2184
- ldrh r9, [r4, #2390]
- b .L2184
-.L2195:
- movs r5, #0
-.L2184:
- ldr r0, .L2199+20
+ bne .L2131
+ ldrh r8, [r4, #2392]
+.L2131:
+ ldr r9, .L2144
+ mov r2, r8
+ ldrh r3, [r4, #2390]
mov r1, r5
- mov r2, r9
- ldrh r3, [r4, #2388]
+ ldr r0, .L2144+20
+ mov r10, #36
bl printk
- ldr r10, .L2199
- movs r6, #0
-.L2185:
- ldr r3, .L2199+4
- movs r2, #0
- ldrh fp, [r10, #2320]
- add lr, sp, #62
- ldrh r0, [r10, #2400]
- mov r8, #36
- ldr r3, [r3, #3304]
- mov r4, r2
- movw ip, #65535
+ movs r3, #0
str r3, [sp, #28]
- ldr r3, .L2199+4
- ldr r3, [r3, #1144]
- str r3, [sp, #32]
- ldrh r3, [r10, #2398]
- str r3, [sp, #36]
- ldr r3, .L2199+4
+.L2132:
+ ldr r3, .L2144+4
+ add ip, sp, #62
+ ldrh fp, [r9, #2324]
+ movw lr, #65535
+ ldrh r7, [r9, #2402]
+ ldr r2, [r3, #1144]
+ ldr r0, [r3, #3304]
ldr r3, [r3, #1148]
+ str r2, [sp, #32]
+ ldrh r2, [r9, #2400]
str r3, [sp, #40]
-.L2186:
+ str r2, [sp, #36]
+ movs r2, #0
+ mov r4, r2
+.L2133:
uxth r3, r2
- cmp r3, fp
- bcs .L2197
- ldrh r3, [lr, #2]!
- cmp r3, ip
- beq .L2187
- ldr r1, [sp, #28]
+ cmp fp, r3
+ bhi .L2137
+ ldr fp, .L2144+24
+ movs r7, #0
+ mov r2, r5
+ mov r1, r4
+ bl FlashReadPages
+.L2138:
+ uxth r3, r7
+ cmp r4, r3
+ bhi .L2139
+ ldr r6, [sp, #28]
+ adds r6, r6, #1
+ uxth r3, r6
+ cmp r8, r3
+ str r3, [sp, #28]
+ bne .L2132
+.L2140:
+ movs r0, #0
+ add sp, sp, #100
+ @ sp needed
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L2142:
+ movs r5, #0
+ b .L2131
+.L2137:
+ ldrh r3, [ip, #2]!
+ cmp r3, lr
+ beq .L2134
+ ldr r6, [sp, #28]
+ mla r1, r10, r4, r0
orr r3, r6, r3, lsl #10
- ldr r7, [sp, #32]
- mla r1, r8, r4, r1
+ ldr r6, [sp, #32]
str r3, [r1, #4]
ldr r3, [sp, #36]
muls r3, r4, r3
it mi
addmi r3, r3, #3
bic r3, r3, #3
- add r3, r3, r7
+ add r3, r3, r6
+ ldr r6, [sp, #40]
str r3, [r1, #8]
- mov r3, r0
+ mov r3, r7
muls r3, r4, r3
add r4, r4, #1
it mi
addmi r3, r3, #3
- ldr r7, [sp, #40]
- bic r3, r3, #3
uxth r4, r4
- add r3, r3, r7
+ bic r3, r3, #3
+ add r3, r3, r6
str r3, [r1, #12]
-.L2187:
+.L2134:
adds r2, r2, #1
- b .L2186
-.L2197:
- ldr r3, .L2199+4
- mov r1, r4
- mov r2, r5
- mov r8, #0
- mov fp, #36
- ldr r0, [r3, #3304]
- bl FlashReadPages
-.L2191:
- uxth r3, r8
- cmp r3, r4
- bcs .L2198
+ b .L2133
+.L2139:
ldr r3, [sp, #44]
- mul r2, fp, r8
+ mul r0, r10, r7
ldrh r1, [sp, #48]
+ adds r7, r7, #1
ldr ip, [r3, #3304]
- add r8, r8, #1
- add lr, ip, r2
- ldr r3, [lr, #12]
- ldr r0, [lr, #8]
- ldr r7, [r3]
- str r7, [sp]
- ldr r7, [r3, #4]
- str r7, [sp, #4]
- ldr r7, [r3, #8]
- str r7, [sp, #8]
- ldr r3, [r3, #12]
- str r3, [sp, #12]
- ldr r3, [r0]
- str r3, [sp, #16]
- ldr r3, [r0, #4]
- ldr r0, .L2199+24
- str r3, [sp, #20]
- ldr r2, [ip, r2]
- ldr r3, [lr, #4]
+ add r2, ip, r0
+ ldr lr, [r2, #8]
+ ldr r3, [r2, #12]
+ ldr r6, [lr, #4]
+ str r6, [sp, #20]
+ ldr r6, [lr]
+ str r6, [sp, #16]
+ ldr r6, [r3, #12]
+ str r6, [sp, #12]
+ ldr r6, [r3, #8]
+ str r6, [sp, #8]
+ ldr r6, [r3, #4]
+ str r6, [sp, #4]
+ ldr r3, [r3]
+ str r3, [sp]
+ ldr r3, [r2, #4]
+ ldr r2, [ip, r0]
+ mov r0, fp
bl printk
- b .L2191
-.L2198:
- adds r6, r6, #1
- uxth r6, r6
- cmp r6, r9
- bne .L2185
-.L2193:
- movs r0, #0
- add sp, sp, #100
- @ sp needed
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L2200:
+ b .L2138
+.L2145:
.align 2
-.L2199:
+.L2144:
.word .LANCHOR0
.word .LANCHOR2
- .word .LANCHOR3+148
+ .word .LANCHOR3+141
.word .LC110
.word .LC111
.word .LC112
@@ -13492,172 +13788,172 @@
.size FtlDumpBlockInfo, .-FtlDumpBlockInfo
.align 1
.global FtlScanAllBlock
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FtlScanAllBlock, %function
FtlScanAllBlock:
.fnstart
- @ args = 0, pretend = 0, frame = 64
+ @ args = 0, pretend = 0, frame = 56
@ 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 #92
- sub sp, sp, #92
- ldr r0, .L2217
- mov r8, #0
- ldr r1, .L2217+4
+ movs r7, #0
+ ldr r5, .L2158
+ .pad #84
+ sub sp, sp, #84
+ ldr r1, .L2158+4
+ ldr r0, .L2158+8
bl printk
- ldr r5, .L2217+8
- mov r7, r5
-.L2202:
- ldr r3, .L2217+12
- uxth r4, r8
- ldrh r3, [r3, #2330]
- cmp r3, r4
- bls .L2213
- add r9, sp, #88
- mov r0, r4
- mov fp, #36
+.L2147:
+ ldr r3, .L2158+12
+ uxth r0, r7
+ ldrh r3, [r3, #2334]
+ cmp r3, r0
+ bhi .L2157
+ movs r0, #0
+ add sp, sp, #84
+ @ sp needed
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L2157:
+ add r4, sp, #80
movw r10, #65535
- strh r4, [r9, #-48]! @ movhi
+ strh r0, [r4, #-48]! @ movhi
+ mov fp, #36
bl ftl_get_blk_mode
- ldr r2, [r5, #296]
- mov r1, r4
- ldrh r2, [r2, r4, lsl #1]
+ ldr r2, [r5, #300]
+ uxth r1, r7
mov r3, r0
- ldr r0, .L2217+16
+ ldr r0, .L2158+16
+ ldrh r2, [r2, r1, lsl #1]
bl printk
- mov r0, r9
+ mov r0, r4
bl make_superblock
- ldr r3, .L2217+12
+ ldr r3, .L2158+12
movs r2, #0
+ ldr r0, [r5, #3304]
+ add r8, sp, #46
ldr r9, [r5, #1148]
- ldrh lr, [r3, #2320]
mov r4, r2
- ldr r3, [r5, #3304]
- str r3, [sp, #28]
- add ip, sp, #54
+ ldrh ip, [r3, #2324]
ldr r3, [r5, #1144]
- str r3, [sp, #32]
- ldr r3, .L2217+12
- ldrh r0, [r3, #2398]
+ str r3, [sp, #24]
+ ldr r3, .L2158+12
ldrh r3, [r3, #2400]
- str r3, [sp, #36]
-.L2203:
+ str r3, [sp, #28]
+ ldr r3, .L2158+12
+ ldrh lr, [r3, #2402]
+.L2148:
uxth r3, r2
- cmp r3, lr
- bcs .L2214
- ldrh r3, [ip, #2]!
+ cmp ip, r3
+ bhi .L2152
+ ldr r10, .L2158+20
+ mov r8, #0
+ mov r9, #36
+ movs r2, #0
+ mov r1, r4
+ bl FlashReadPages
+.L2153:
+ uxth r3, r8
+ cmp r4, r3
+ bhi .L2154
+ ldr r10, .L2158+24
+ mov r8, #0
+ mov r9, #36
+ movs r2, #1
+ mov r1, r4
+ ldr r0, [r5, #3304]
+ bl FlashReadPages
+.L2155:
+ uxth r3, r8
+ cmp r4, r3
+ bhi .L2156
+ adds r7, r7, #1
+ b .L2147
+.L2152:
+ ldrh r3, [r8, #2]!
cmp r3, r10
- beq .L2204
- ldr r1, [sp, #28]
+ beq .L2149
+ mla r1, fp, r4, r0
+ ldr r6, [sp, #24]
lsls r3, r3, #10
- ldr r6, [sp, #32]
- mla r1, fp, r4, r1
str r3, [r1, #4]
- mov r3, r0
+ ldr r3, [sp, #28]
muls r3, r4, r3
it mi
addmi r3, r3, #3
bic r3, r3, #3
add r3, r3, r6
str r3, [r1, #8]
- ldr r3, [sp, #36]
+ mov r3, lr
muls r3, r4, r3
add r4, r4, #1
it mi
addmi r3, r3, #3
- bic r3, r3, #3
uxth r4, r4
+ bic r3, r3, #3
add r3, r3, r9
str r3, [r1, #12]
-.L2204:
+.L2149:
adds r2, r2, #1
- b .L2203
-.L2214:
- ldr r0, [r7, #3304]
- mov r1, r4
- movs r2, #0
- mov r9, #0
- bl FlashReadPages
- mov r10, #36
-.L2208:
- uxth r3, r9
- cmp r3, r4
- bcs .L2215
- mul r2, r10, r9
- ldr ip, [r7, #3304]
- ldrh r1, [sp, #40]
- add r9, r9, #1
- add lr, ip, r2
- ldr r3, [lr, #12]
- ldr r0, [lr, #8]
- ldr r6, [r3]
- str r6, [sp]
- ldr r6, [r3, #4]
- str r6, [sp, #4]
- ldr r6, [r3, #8]
- str r6, [sp, #8]
- ldr r3, [r3, #12]
- str r3, [sp, #12]
- ldr r3, [r0]
- str r3, [sp, #16]
- ldr r3, [r0, #4]
- ldr r0, .L2217+20
- str r3, [sp, #20]
- ldr r2, [ip, r2]
- ldr r3, [lr, #4]
- bl printk
- b .L2208
-.L2215:
- ldr r0, [r7, #3304]
- mov r1, r4
- movs r2, #1
- mov r9, #0
- bl FlashReadPages
- mov r10, #36
-.L2210:
- uxth r3, r9
- cmp r3, r4
- bcs .L2216
- mul r2, r10, r9
- ldr ip, [r7, #3304]
- ldrh r1, [sp, #40]
- add r9, r9, #1
- add lr, ip, r2
- ldr r3, [lr, #12]
- ldr r0, [lr, #8]
- ldr r6, [r3]
- str r6, [sp]
- ldr r6, [r3, #4]
- str r6, [sp, #4]
- ldr r6, [r3, #8]
- str r6, [sp, #8]
- ldr r3, [r3, #12]
- str r3, [sp, #12]
- ldr r3, [r0]
- str r3, [sp, #16]
- ldr r3, [r0, #4]
- ldr r0, .L2217+24
- str r3, [sp, #20]
- ldr r2, [ip, r2]
- ldr r3, [lr, #4]
- bl printk
- b .L2210
-.L2216:
+ b .L2148
+.L2154:
+ mul r2, r9, r8
+ ldr r0, [r5, #3304]
+ ldrh r1, [sp, #32]
add r8, r8, #1
- b .L2202
-.L2213:
- movs r0, #0
- add sp, sp, #92
- @ sp needed
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L2218:
+ add lr, r0, r2
+ ldr fp, [lr, #8]
+ ldr r3, [lr, #12]
+ ldr r6, [fp, #4]
+ str r6, [sp, #20]
+ ldr r6, [fp]
+ str r6, [sp, #16]
+ ldr r6, [r3, #12]
+ str r6, [sp, #12]
+ ldr r6, [r3, #8]
+ str r6, [sp, #8]
+ ldr r6, [r3, #4]
+ str r6, [sp, #4]
+ ldr r3, [r3]
+ str r3, [sp]
+ ldr r2, [r0, r2]
+ mov r0, r10
+ ldr r3, [lr, #4]
+ bl printk
+ b .L2153
+.L2156:
+ mul r2, r9, r8
+ ldr r0, [r5, #3304]
+ ldrh r1, [sp, #32]
+ add r8, r8, #1
+ add lr, r0, r2
+ ldr fp, [lr, #8]
+ ldr r3, [lr, #12]
+ ldr r6, [fp, #4]
+ str r6, [sp, #20]
+ ldr r6, [fp]
+ str r6, [sp, #16]
+ ldr r6, [r3, #12]
+ str r6, [sp, #12]
+ ldr r6, [r3, #8]
+ str r6, [sp, #8]
+ ldr r6, [r3, #4]
+ str r6, [sp, #4]
+ ldr r3, [r3]
+ str r3, [sp]
+ ldr r2, [r0, r2]
+ mov r0, r10
+ ldr r3, [lr, #4]
+ bl printk
+ b .L2155
+.L2159:
.align 2
-.L2217:
- .word .LC110
- .word .LANCHOR3+168
+.L2158:
.word .LANCHOR2
+ .word .LANCHOR3+158
+ .word .LC110
.word .LANCHOR0
.word .LC114
.word .LC115
@@ -13666,129 +13962,131 @@
.size FtlScanAllBlock, .-FtlScanAllBlock
.align 1
.global ftl_scan_all_ppa
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type ftl_scan_all_ppa, %function
ftl_scan_all_ppa:
.fnstart
- @ args = 0, pretend = 0, frame = 8
+ @ args = 0, pretend = 0, frame = 0
@ 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 r6, .L2237
- ldr r5, .L2237+4
- ldrh r4, [r6, #2386]
- mov r10, r6
+ .pad #28
+ sub sp, sp, #28
+ ldr r5, .L2176
+ ldr r6, .L2176+4
+ ldrh r4, [r5, #2388]
subs r4, r4, #16
-.L2220:
- ldrh r3, [r6, #2386]
+ lsl r10, r4, #10
+.L2161:
+ ldrh r3, [r5, #2388]
cmp r4, r3
- bge .L2235
- uxth r8, r4
- mov r0, r8
- bl ftl_get_blk_mode
- ldrb r3, [r10, #144] @ zero_extendqisi2
- cbz r3, .L2221
- ldrh r3, [r10, #2328]
- cmp r4, r3
- bge .L2222
- ldrh r3, [r10, #2402]
- cmp r4, r3
- blt .L2222
-.L2221:
- cmp r0, #1
- bne .L2223
-.L2222:
- ldrh r7, [r6, #2390]
- mov r9, #-2147483648
- b .L2224
-.L2223:
- ldrh r7, [r6, #2388]
- mov r9, #0
-.L2224:
- ldr r0, .L2237+8
- mov r1, r4
- mov r2, r7
- mov r3, r9
- bl printk
- mov r0, r8
- bl FtlBbmIsBadBlock
- cbz r0, .L2225
- ldr r0, .L2237+12
- mov r1, r4
- mov r2, r7
- mov r3, r9
- bl printk
-.L2225:
- ldr fp, .L2237+32
- lsl ip, r4, #10
- mov r8, #0
-.L2226:
- cmp r8, r7
- beq .L2236
- add r3, r9, ip
- movs r2, #0
- add r3, r3, r8
- str r3, [r5, #1252]
- ldr r3, [fp, #3316]
- movs r1, #1
- ldr r0, .L2237+16
- add r8, r8, #1
- str ip, [sp, #28]
- str r3, [r5, #1256]
- ldr r3, [fp, #3340]
- str r2, [r5, #1248]
- str r3, [r5, #1260]
- bl FlashReadPages
- ldr r3, [r5, #1260]
- ldr r2, [r5, #1256]
- ldr r0, .L2237+20
- ldr r1, [r3, #4]
- str r1, [sp]
- ldr r1, [r3, #8]
- str r1, [sp, #4]
- ldr r1, [r3, #12]
- str r1, [sp, #8]
- ldr r1, [r2]
- str r1, [sp, #12]
- ldr r2, [r2, #4]
- ldr r1, [r5, #1252]
- str r2, [sp, #16]
- ldr r2, [r5, #1248]
- ldr r3, [r3]
- bl printk
- ldr ip, [sp, #28]
- b .L2226
-.L2236:
- adds r4, r4, #1
- b .L2220
-.L2235:
- ldr r0, .L2237+24
- ldr r1, .L2237+28
- add sp, sp, #36
+ blt .L2169
+ ldr r1, .L2176+8
+ ldr r0, .L2176+12
+ add sp, sp, #28
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, lr}
b printk
-.L2238:
+.L2169:
+ uxth r8, r4
+ mov r0, r8
+ bl ftl_get_blk_mode
+ ldrb r3, [r5, #152] @ zero_extendqisi2
+ cbz r3, .L2162
+ ldrh r3, [r5, #2332]
+ cmp r4, r3
+ bge .L2163
+ ldrh r3, [r5, #2404]
+ cmp r4, r3
+ blt .L2163
+.L2162:
+ cmp r0, #1
+ bne .L2164
+.L2163:
+ ldrh r7, [r5, #2392]
+ mov r9, #-2147483648
+.L2165:
+ mov r3, r9
+ mov r2, r7
+ mov r1, r4
+ ldr r0, .L2176+16
+ bl printk
+ mov r0, r8
+ bl FtlBbmIsBadBlock
+ cbz r0, .L2166
+ mov r3, r9
+ mov r2, r7
+ mov r1, r4
+ ldr r0, .L2176+20
+ bl printk
+.L2166:
+ ldr fp, .L2176+32
+ mov r8, #0
+.L2167:
+ cmp r8, r7
+ bne .L2168
+ adds r4, r4, #1
+ add r10, r10, #1024
+ b .L2161
+.L2164:
+ ldrh r7, [r5, #2390]
+ mov r9, #0
+ b .L2165
+.L2168:
+ add r3, r9, r10
+ movs r2, #0
+ add r3, r3, r8
+ movs r1, #1
+ str r3, [r6, #1260]
+ add r8, r8, #1
+ ldr r3, [fp, #3316]
+ ldr r0, .L2176+24
+ str r2, [r6, #1256]
+ str r3, [r6, #1264]
+ ldr r3, [fp, #3340]
+ str r3, [r6, #1268]
+ bl FlashReadPages
+ ldr r2, [r6, #1264]
+ ldr r3, [r6, #1268]
+ ldr r0, .L2176+28
+ ldr r1, [r2, #4]
+ str r1, [sp, #16]
+ ldr r2, [r2]
+ ldr r1, [r6, #1260]
+ str r2, [sp, #12]
+ ldr r2, [r3, #12]
+ str r2, [sp, #8]
+ ldr r2, [r3, #8]
+ str r2, [sp, #4]
+ ldr r2, [r3, #4]
+ str r2, [sp]
+ ldr r2, [r6, #1256]
+ ldr r3, [r3]
+ bl printk
+ b .L2167
+.L2177:
.align 2
-.L2237:
+.L2176:
.word .LANCHOR0
.word .LANCHOR4
+ .word .LANCHOR3+174
+ .word .LC120
.word .LC117
.word .LC118
- .word .LANCHOR4+1248
+ .word .LANCHOR4+1256
.word .LC119
- .word .LC120
- .word .LANCHOR3+184
.word .LANCHOR2
.fnend
.size ftl_scan_all_ppa, .-ftl_scan_all_ppa
.align 1
.global FlashProgPages
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FlashProgPages, %function
FlashProgPages:
.fnstart
@@ -13798,288 +14096,288 @@
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.pad #76
sub sp, sp, #76
- ldr r6, .L2293
+ ldr r5, .L2230
mov r4, r0
- str r1, [sp, #8]
mov r9, r2
+ str r1, [sp, #8]
+ ldr r6, [r5, #48]
+ ldrb r7, [r5, #36] @ zero_extendqisi2
str r3, [sp, #20]
- ldr r5, [r6, #44]
- ldrb r7, [r6] @ zero_extendqisi2
- ldrb r5, [r5, #19] @ zero_extendqisi2
- str r5, [sp, #16]
- ldr r5, .L2293+4
- ldrb r5, [r5, #481] @ zero_extendqisi2
- str r5, [sp, #12]
- cbz r7, .L2240
+ ldrb r6, [r6, #19] @ zero_extendqisi2
+ str r6, [sp, #16]
+ cbnz r7, .L2179
+ ldr r3, .L2230+4
+ ldrb r3, [r3, #477] @ zero_extendqisi2
+ str r3, [sp, #12]
+.L2180:
+ ldr r3, [sp, #8]
+ cmp r7, r3
+ bcc .L2193
+ ldr r7, .L2230+8
+ movs r6, #0
+.L2194:
+ ldrb r3, [r5, #2234] @ zero_extendqisi2
+ cmp r6, r3
+ bcc .L2196
+ ldr r3, [sp, #20]
+ cmp r3, #0
+ bne .L2197
+.L2205:
+ movs r0, #0
+ b .L2178
+.L2179:
bl FlashProgSlc2KPages
- b .L2241
-.L2253:
+.L2178:
+ add sp, sp, #76
+ @ sp needed
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L2193:
movs r3, #36
- mov r1, r9
add r2, sp, #28
mul r8, r3, r7
ldr r3, [sp, #8]
+ mov r1, r9
subs r3, r3, r7
- add fp, r4, r8
uxtb r3, r3
- str r3, [sp]
+ add fp, r4, r8
mov r0, fp
+ str r3, [sp]
add r3, sp, #32
bl LogAddr2PhyAddr
- ldrb r3, [r6, #2230] @ zero_extendqisi2
+ ldrb r3, [r5, #2234] @ zero_extendqisi2
mov r10, r0
ldr r0, [sp, #32]
- cmp r0, r3
- bcc .L2242
+ cmp r3, r0
+ bhi .L2182
mov r3, #-1
str r3, [r4, r8]
-.L2243:
+.L2183:
adds r7, r7, #1
-.L2240:
- ldr r3, [sp, #8]
- ldr r8, .L2293
- cmp r7, r3
- bcc .L2253
- b .L2291
-.L2242:
- ldrb r3, [r6, #2240] @ zero_extendqisi2
+ b .L2180
+.L2182:
+ ldrb r3, [r5, #2244] @ zero_extendqisi2
cmp r3, #0
- add r3, r6, r0, lsl #4
+ add r3, r5, r0, lsl #4
it eq
moveq r10, #0
- ldr r3, [r3, #2108]
- cbz r3, .L2245
+ ldr r3, [r3, #2112]
+ cbz r3, .L2185
uxtb r0, r0
bl FlashWaitCmdDone
-.L2245:
+.L2185:
ldr r3, [sp, #32]
- movs r0, #0
- add r2, r6, r3, lsl #4
- addw r1, r2, #2108
- str r0, [r2, #2112]
- ldr r0, [sp, #28]
- str fp, [r2, #2108]
- str r0, [r2, #2104]
- cmp r10, #0
- beq .L2246
- add r2, r8, #36
- add r2, r2, r4
- str r2, [r1, #4]
-.L2246:
- adds r2, r6, r3
- add r3, r6, r3, lsl #4
- ldrb r5, [r2, #2232] @ zero_extendqisi2
- strb r5, [r3, #2100]
- mov r0, r5
- ldrb r3, [r6, #2230] @ zero_extendqisi2
- cmp r3, #1
- bne .L2247
- bl NandcWaitFlashReady
- b .L2248
-.L2247:
- bl NandcFlashCs
- mov r0, r5
- ldr r3, [sp, #32]
+ movs r1, #0
+ add r2, r5, r3, lsl #4
+ str r1, [r2, #2116]
ldr r1, [sp, #28]
- add r3, r6, r3, lsl #2
- ldr r2, [r3, #1172]
- adds r2, r2, #0
- it ne
- movne r2, #1
- bl FlashWaitReadyEN
- mov r0, r5
- bl NandcFlashDeCs
-.L2248:
+ str fp, [r2, #2112]
+ str r1, [r2, #2108]
+ cmp r10, #0
+ beq .L2186
+ add r1, r8, #36
+ add r1, r1, r4
+ str r1, [r2, #2116]
+.L2186:
+ adds r2, r5, r3
+ add r3, r5, r3, lsl #4
+ ldrb r6, [r2, #2236] @ zero_extendqisi2
+ strb r6, [r3, #2104]
+ mov r0, r6
+ ldrb r3, [r5, #2234] @ zero_extendqisi2
+ cmp r3, #1
+ bne .L2187
+ bl NandcWaitFlashReady
+.L2188:
ldr r3, [sp, #16]
subs r3, r3, #1
cmp r3, #7
- bhi .L2249
- adds r3, r6, r5
- ldrb r3, [r3, #2064] @ zero_extendqisi2
- cbz r3, .L2249
- mov r0, r5
- ldrb r1, [r6, #1211] @ zero_extendqisi2
- ldr r2, .L2293+8
+ bhi .L2189
+ adds r3, r5, r6
+ ldrb r3, [r3, #2068] @ zero_extendqisi2
+ cbz r3, .L2189
movs r3, #0
+ ldr r2, .L2230+12
+ ldrb r1, [r5, #1217] @ zero_extendqisi2
+ mov r0, r6
bl HynixSetRRPara
-.L2249:
- mov r0, r5
+.L2189:
+ mov r0, r6
bl NandcFlashCs
cmp r9, #1
- mov r0, r5
- bne .L2250
- ldrb r3, [r6, #144] @ zero_extendqisi2
- cbz r3, .L2250
+ mov r0, r6
+ bne .L2190
+ ldrb r3, [r5, #152] @ zero_extendqisi2
+ cmp r3, #0
+ beq .L2190
bl flash_enter_slc_mode
- b .L2251
-.L2250:
- bl flash_exit_slc_mode
-.L2251:
- mov r0, r5
+.L2191:
ldr r1, [sp, #28]
+ mov r0, r6
bl FlashProgFirstCmd
ldr r3, [fp, #12]
- mov r0, r5
movs r1, #1
- str r3, [sp]
ldr r2, [sp, #12]
+ mov r0, r6
+ str r3, [sp]
ldr r3, [fp, #8]
bl NandcXferData
cmp r10, #0
- beq .L2252
- mov r0, r5
+ beq .L2192
ldr r1, [sp, #28]
+ mov r0, r6
bl FlashProgDpFirstCmd
- mov r0, r5
+ ldr r3, [sp, #32]
+ mov r0, r6
+ ldr r1, [sp, #28]
add r8, r8, #36
add r8, r8, r4
- ldr r3, [sp, #32]
- ldr r1, [sp, #28]
- add r3, r6, r3, lsl #2
- ldr r2, [r3, #1172]
+ add r3, r5, r3, lsl #2
+ ldr r2, [r3, #1180]
adds r2, r2, #0
it ne
movne r2, #1
bl FlashWaitReadyEN
- ldr r1, [r6, #4]
- mov r0, r5
- ldr r3, [sp, #28]
+ ldr r3, [r5, #40]
+ mov r0, r6
+ ldr r1, [sp, #28]
add r1, r1, r3
bl FlashProgDpSecondCmd
ldr r3, [r8, #12]
- mov r0, r5
movs r1, #1
- str r3, [sp]
ldr r2, [sp, #12]
+ mov r0, r6
+ str r3, [sp]
ldr r3, [r8, #8]
bl NandcXferData
-.L2252:
- mov r0, r5
+.L2192:
ldr r1, [sp, #28]
+ mov r0, r6
bl FlashProgSecondCmd
- mov r0, r5
- bl NandcFlashDeCs
+ mov r0, r6
add r7, r7, r10
- b .L2243
-.L2291:
- movs r5, #0
- addw r7, r8, #2100
- mov r6, r8
-.L2254:
- ldrb r3, [r8, #2230] @ zero_extendqisi2
- cmp r5, r3
- bcs .L2292
- uxtb r0, r5
+ bl NandcFlashDeCs
+ b .L2183
+.L2187:
+ bl NandcFlashCs
+ ldr r3, [sp, #32]
+ mov r0, r6
+ ldr r1, [sp, #28]
+ add r3, r5, r3, lsl #2
+ ldr r2, [r3, #1180]
+ adds r2, r2, #0
+ it ne
+ movne r2, #1
+ bl FlashWaitReadyEN
+ mov r0, r6
+ bl NandcFlashDeCs
+ b .L2188
+.L2190:
+ bl flash_exit_slc_mode
+ b .L2191
+.L2196:
+ uxtb r0, r6
bl FlashWaitCmdDone
cmp r9, #1
- bne .L2255
- ldrb r3, [r6, #144] @ zero_extendqisi2
- cbz r3, .L2255
- lsls r3, r5, #4
+ bne .L2195
+ ldrb r3, [r5, #152] @ zero_extendqisi2
+ cbz r3, .L2195
+ lsls r3, r6, #4
ldrb r0, [r7, r3] @ zero_extendqisi2
bl flash_exit_slc_mode
-.L2255:
- adds r5, r5, #1
- b .L2254
-.L2292:
- ldr r3, [sp, #20]
- cbnz r3, .L2257
-.L2265:
- movs r0, #0
- b .L2241
-.L2257:
- ldr r7, .L2293+12
+.L2195:
+ adds r6, r6, #1
+ b .L2194
+.L2197:
+ ldr r7, .L2230+16
mov r8, #0
- mov r10, r7
-.L2258:
+ ldr r10, .L2230+32
+.L2198:
ldr r3, [sp, #8]
cmp r8, r3
- beq .L2265
+ beq .L2205
ldr r3, [r4]
adds r3, r3, #1
- bne .L2259
+ bne .L2199
ldr r1, [r4, #4]
- ldr r0, .L2293+16
+ ldr r0, .L2230+20
bl printk
- b .L2260
-.L2259:
+.L2200:
+ add r8, r8, #1
+ adds r4, r4, #36
+ b .L2198
+.L2199:
ldr r3, [sp, #8]
- mov r1, r9
add r2, sp, #28
+ mov r1, r9
mov r0, r4
- rsb r3, r8, r3
mov r6, r4
+ sub r3, r3, r8
uxtb r3, r3
str r3, [sp]
add r3, sp, #32
bl LogAddr2PhyAddr
- ldr r2, [r7, #1220]
+ ldr r2, [r7, #1228]
movs r3, #0
- str r3, [r2]
- ldr r2, [r7, #1224]
- str r3, [r2]
- ldmia r6!, {r0, r1, r2, r3}
add r5, sp, #36
+ str r3, [r2]
+ ldr r2, [r7, #1232]
+ str r3, [r2]
+ ldmia r6!, {r0, r1, r2, r3}
stmia r5!, {r0, r1, r2, r3}
ldmia r6!, {r0, r1, r2, r3}
stmia r5!, {r0, r1, r2, r3}
- add r0, sp, #36
+ mov r2, r9
ldr r3, [r6]
movs r1, #1
- mov r2, r9
+ add r0, sp, #36
str r3, [r5]
- ldr r3, [r7, #1220]
+ ldr r3, [r7, #1228]
str r3, [sp, #44]
- ldr r3, [r7, #1224]
+ ldr r3, [r7, #1232]
str r3, [sp, #48]
bl FlashReadPages
ldr r5, [sp, #36]
adds r3, r5, #1
- bne .L2261
- ldr r0, .L2293+20
+ bne .L2201
ldr r1, [r4, #4]
+ ldr r0, .L2230+24
bl printk
str r5, [r4]
-.L2261:
+.L2201:
ldr r3, [r4, #12]
- cbz r3, .L2262
+ cbz r3, .L2202
ldr r2, [r3]
- ldr r3, [r10, #1224]
+ ldr r3, [r7, #1232]
ldr r3, [r3]
cmp r2, r3
- beq .L2262
- ldr r0, .L2293+24
+ beq .L2202
ldr r1, [r4, #4]
+ ldr r0, .L2230+28
bl printk
mov r3, #-1
str r3, [r4]
-.L2262:
+.L2202:
ldr r3, [r4, #8]
- cbz r3, .L2260
+ cmp r3, #0
+ beq .L2200
ldr r2, [r3]
- ldr r3, [r10, #1220]
+ ldr r3, [r7, #1228]
ldr r3, [r3]
cmp r2, r3
- beq .L2260
- ldr r0, .L2293+28
+ beq .L2200
ldr r1, [r4, #4]
+ mov r0, r10
bl printk
mov r3, #-1
str r3, [r4]
-.L2260:
- add r8, r8, #1
- adds r4, r4, #36
- b .L2258
-.L2241:
- add sp, sp, #76
- @ sp needed
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L2294:
+ b .L2200
+.L2231:
.align 2
-.L2293:
+.L2230:
.word .LANCHOR0
.word .LANCHOR1
- .word .LANCHOR0+1214
+ .word .LANCHOR0+2104
+ .word .LANCHOR0+1220
.word .LANCHOR4
.word .LC104
.word .LC105
@@ -14089,8 +14387,10 @@
.size FlashProgPages, .-FlashProgPages
.align 1
.global FlashTestBlk
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FlashTestBlk, %function
FlashTestBlk:
.fnstart
@@ -14099,61 +14399,63 @@
push {r4, r5, lr}
.save {r4, r5, lr}
mov r4, r0
- ldr r5, .L2298
+ ldr r5, .L2235
.pad #108
sub sp, sp, #108
- ldr r3, [r5, #1204]
- cmp r0, r3
- bcc .L2297
ldr r3, [r5, #1212]
+ cmp r0, r3
+ bcc .L2234
+ ldr r3, [r5, #1220]
add r0, sp, #40
- movs r1, #165
movs r2, #32
+ movs r1, #165
str r0, [sp, #16]
lsls r4, r4, #10
str r3, [sp, #12]
bl ftl_memset
- ldr r0, [r5, #1212]
- movs r1, #90
movs r2, #8
+ movs r1, #90
+ ldr r0, [r5, #1220]
bl ftl_memset
- movs r1, #1
- mov r2, r1
+ movs r2, #1
add r0, sp, #4
+ mov r1, r2
str r4, [sp, #8]
bl FlashEraseBlocks
- movs r1, #1
- mov r2, r1
- mov r3, r1
+ movs r3, #1
add r0, sp, #4
+ mov r2, r3
+ mov r1, r3
bl FlashProgPages
- movs r1, #0
- movs r2, #1
ldr r4, [sp, #4]
+ movs r2, #1
+ movs r1, #0
add r0, sp, #4
adds r4, r4, #0
it ne
movne r4, #1
negs r4, r4
bl FlashEraseBlocks
- b .L2296
-.L2297:
- movs r4, #0
-.L2296:
+.L2232:
mov r0, r4
add sp, sp, #108
@ sp needed
pop {r4, r5, pc}
-.L2299:
+.L2234:
+ movs r4, #0
+ b .L2232
+.L2236:
.align 2
-.L2298:
+.L2235:
.word .LANCHOR4
.fnend
.size FlashTestBlk, .-FlashTestBlk
.align 1
.global FlashMakeFactorBbt
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FlashMakeFactorBbt, %function
FlashMakeFactorBbt:
.fnstart
@@ -14163,757 +14465,747 @@
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.pad #84
sub sp, sp, #84
- ldr r5, .L2361
- movs r1, #1
- ldr r4, .L2361+4
- ldr r0, .L2361+8
- ldr r3, [r5, #1216]
- ldrh r8, [r4, #128]
- str r3, [sp, #20]
- ldrh r3, [r4, #130]
- smulbb r8, r8, r3
- ldr r3, [r4, #44]
- ldrb r3, [r3, #24] @ zero_extendqisi2
- uxth r8, r8
+ ldr r4, .L2293
+ ldr r0, .L2293+4
+ ldr r3, [r4, #1224]
+ ldr r5, .L2293
str r3, [sp, #24]
- ldrh r3, [r4, #4]
- str r3, [sp, #16]
- ldrb r3, [r4] @ zero_extendqisi2
- ldr r4, .L2361+4
+ ldr r3, .L2293+8
+ ldrh r1, [r3, #136]
+ ldrh r6, [r3, #138]
+ smulbb r6, r6, r1
+ ldr r1, [r3, #48]
+ ldrb r2, [r1, #24] @ zero_extendqisi2
+ uxth r6, r6
+ movs r1, #1
+ str r2, [sp, #28]
+ ldrh r2, [r3, #40]
+ ldrb r3, [r3, #36] @ zero_extendqisi2
+ str r2, [sp, #20]
cmp r3, #1
itttt eq
- ldreq r3, [sp, #16]
+ moveq r3, r2
lsleq r3, r3, #1
uxtheq r3, r3
- streq r3, [sp, #16]
+ streq r3, [sp, #20]
bl printk
- ldr r0, [r5, #1216]
- movs r1, #0
+ ldr r0, [r4, #1224]
mov r2, #4096
+ movs r1, #0
+ ldr r4, .L2293+8
bl ftl_memset
- ldr r5, .L2361
- lsr r3, r8, #4
- str r3, [sp, #28]
+ lsrs r3, r6, #4
+ str r3, [sp, #32]
movs r3, #0
- str r3, [sp, #8]
-.L2302:
- ldrb r7, [sp, #8] @ zero_extendqisi2
- ldrb r3, [r4, #2230] @ zero_extendqisi2
- cmp r3, r7
- bls .L2357
- add r3, r5, r7, lsl #1
- ldrh r6, [r3, #1232]
- cmp r6, #0
- bne .L2332
- ldrh r2, [r4, #136]
- mov r1, r6
- ldr r0, [r5, #1184]
- mov r9, r6
+ str r3, [sp, #12]
+.L2239:
+ ldrb r8, [sp, #12] @ zero_extendqisi2
+ ldrb r3, [r4, #2234] @ zero_extendqisi2
+ cmp r3, r8
+ bhi .L2266
+ add sp, sp, #84
+ @ sp needed
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L2266:
+ add r3, r5, r8, lsl #1
+ ldrh r7, [r3, #1238]
+ cmp r7, #0
+ bne .L2240
+ ldrh r2, [r4, #144]
+ mov r1, r7
+ ldr r0, [r5, #1192]
+ add fp, r4, r8, lsl #2
+ mov r9, r7
+ mov r10, r7
lsls r2, r2, #9
bl ftl_memset
- adds r3, r4, r7
- ldrb r10, [r3, #2232] @ zero_extendqisi2
- lsls r3, r7, #2
- add fp, r4, r3
- str r6, [sp, #4]
- str r3, [sp, #32]
-.L2304:
+ add r3, r4, r8
+ str r7, [sp, #4]
+ ldrb r3, [r3, #2236] @ zero_extendqisi2
+ str r3, [sp, #8]
+.L2241:
ldrh r3, [sp, #4]
- cmp r3, r8
- str r3, [sp, #12]
- bcs .L2314
+ cmp r3, r6
+ str r3, [sp, #16]
+ bcc .L2252
+.L2251:
+ mov r2, r9
+ mov r1, r8
+ ldr r0, .L2293+12
+ bl printk
+ ldrb r3, [r4, #2234] @ zero_extendqisi2
+ ldr r2, [sp, #32]
+ muls r3, r2, r3
+ cmp r9, r3
+ blt .L2253
+ ldrh r2, [r4, #144]
+ movs r1, #0
+ ldr r0, [r5, #1192]
+ lsls r2, r2, #9
+ bl ftl_memset
+.L2253:
+ cmp r8, #0
+ bne .L2255
+ ldrh fp, [r5, #1212]
+ mov r10, #1
+ ldr r9, .L2293+20
+.L2256:
+ ldrb r3, [r4, #37] @ zero_extendqisi2
+ cmp r3, fp
+ bhi .L2258
+ subs r3, r6, #1
+ sub r9, r6, #50
+ uxth r10, r3
+ mov fp, #1
+.L2259:
+ cmp r10, r9
+ bgt .L2261
+ ldrb r3, [r4, #37] @ zero_extendqisi2
+ ldr r2, [r5, #1212]
+ subs r3, r3, r2
+ cmp r7, r3
+ bcc .L2255
+ ldrh r2, [r4, #144]
+ movs r1, #0
+ ldr r0, [r5, #1192]
+ lsls r2, r2, #9
+ bl ftl_memset
+.L2255:
+ ldrb r9, [sp, #12] @ zero_extendqisi2
+ subs r7, r6, #1
+ ldr fp, .L2293+24
+ uxth r7, r7
+ add r10, r5, r8, lsl #1
+ mul r9, r6, r9
+.L2263:
+ mov r1, r8
+ mov r2, r7
+ mov r0, fp
+ bl printk
+ ldr r1, [r5, #1192]
+.L2264:
+ lsrs r2, r7, #5
+ and r3, r7, #31
+ ldr r2, [r1, r2, lsl #2]
+ lsr r3, r2, r3
+ ands r3, r3, #1
+ bne .L2265
+ ldr r1, [sp, #24]
+ movw r2, #61664
+ strh r7, [r10, #1238] @ movhi
+ add r0, sp, #44
+ strh r2, [r1] @ movhi
+ movs r2, #1
+ strh r7, [r1, #2] @ movhi
+ strh r3, [r1, #8] @ movhi
+ mov r1, r2
+ ldr r3, [r5, #1192]
+ str r3, [sp, #52]
+ ldr r3, [r5, #1224]
+ str r3, [sp, #56]
+ add r3, r7, r9
+ lsls r3, r3, #10
+ str r3, [sp, #48]
+ bl FlashEraseBlocks
+ movs r3, #1
+ add r0, sp, #44
+ mov r2, r3
+ mov r1, r3
+ bl FlashProgPages
+ ldr r3, [sp, #44]
+ cmp r3, #0
+ beq .L2240
+ subs r7, r7, #1
+ uxth r7, r7
+ b .L2263
+.L2252:
movs r3, #255
strb r3, [sp, #42]
strb r3, [sp, #43]
- ldr r3, [sp, #24]
+ ldr r3, [sp, #28]
lsls r1, r3, #31
- bpl .L2306
- ldr r3, [fp, #1172]
+ bpl .L2243
+ ldr r3, [fp, #1180]
add r2, sp, #42
- mov r0, r10
- add r3, r3, r6
- str r3, [sp, #36]
+ ldr r0, [sp, #8]
+ add r3, r3, r10
mov r1, r3
+ str r3, [sp, #36]
bl FlashReadSpare
- ldrb r2, [r4] @ zero_extendqisi2
- cmp r2, #1
+ ldrb r2, [r4, #36] @ zero_extendqisi2
ldr r3, [sp, #36]
- bne .L2306
- ldr r1, [r4, #4]
+ cmp r2, #1
+ bne .L2243
+ ldr r1, [r4, #40]
add r2, sp, #43
- mov r0, r10
+ ldr r0, [sp, #8]
add r1, r1, r3
bl FlashReadSpare
ldrb r3, [sp, #42] @ zero_extendqisi2
ldrb r2, [sp, #43] @ zero_extendqisi2
ands r3, r3, r2
strb r3, [sp, #42]
-.L2306:
- ldr r3, [sp, #24]
+.L2243:
+ ldr r3, [sp, #28]
lsls r2, r3, #30
- bpl .L2308
- ldr r3, [r4, #44]
- mov r0, r10
+ bpl .L2245
+ ldr r3, [r4, #48]
add r2, sp, #43
+ ldr r0, [sp, #8]
ldrh r1, [r3, #10]
- ldr r3, [fp, #1172]
+ ldr r3, [fp, #1180]
subs r1, r1, #1
add r1, r1, r3
- add r1, r1, r6
+ add r1, r1, r10
bl FlashReadSpare
-.L2308:
- ldr r3, [r4, #44]
+.L2245:
+ ldr r3, [r4, #48]
ldrb r2, [r3, #7] @ zero_extendqisi2
cmp r2, #1
- beq .L2309
+ beq .L2246
cmp r2, #8
- beq .L2309
+ beq .L2246
ldrb r3, [r3, #18] @ zero_extendqisi2
cmp r3, #12
- bne .L2310
-.L2309:
+ bne .L2247
+.L2246:
ldrb r3, [sp, #42] @ zero_extendqisi2
- cbz r3, .L2331
+ cmp r3, #0
+ beq .L2268
ldrb r0, [sp, #43] @ zero_extendqisi2
clz r0, r0
lsrs r0, r0, #5
- b .L2311
-.L2310:
+.L2248:
+ ldr r3, [sp, #28]
+ lsls r3, r3, #29
+ bpl .L2249
+ ldr r1, [fp, #1180]
+ ldr r0, [sp, #8]
+ add r1, r1, r10
+ bl SandiskProgTestBadBlock
+.L2249:
+ cbz r0, .L2250
+ ldr r2, [sp, #4]
+ mov r1, r8
+ ldr r0, .L2293+16
+ add r9, r9, #1
+ bl printk
+ ldr r3, [sp, #16]
+ uxth r9, r9
+ ldr r1, [r5, #1192]
+ and r2, r3, #31
+ lsrs r0, r3, #5
+ movs r3, #1
+ lsl r2, r3, r2
+ ldr r3, [r1, r0, lsl #2]
+ orrs r3, r3, r2
+ ldr r2, [sp, #32]
+ str r3, [r1, r0, lsl #2]
+ ldrb r3, [r4, #2234] @ zero_extendqisi2
+ muls r3, r2, r3
+ cmp r9, r3
+ bgt .L2251
+.L2250:
+ ldr r3, [sp, #4]
+ adds r3, r3, #1
+ str r3, [sp, #4]
+ ldr r3, [sp, #20]
+ add r10, r10, r3
+ b .L2241
+.L2247:
ldrb r3, [sp, #42] @ zero_extendqisi2
cmp r3, #255
- bne .L2331
+ bne .L2268
ldrb r0, [sp, #43] @ zero_extendqisi2
subs r0, r0, #255
it ne
movne r0, #1
- b .L2311
-.L2331:
+ b .L2248
+.L2268:
movs r0, #1
-.L2311:
- ldr r3, [sp, #24]
- lsls r3, r3, #29
- bpl .L2312
- ldr r3, .L2361+4
- mov r0, r10
- ldr r2, [sp, #32]
- add r3, r3, r2
- ldr r1, [r3, #1172]
- add r1, r1, r6
- bl SandiskProgTestBadBlock
-.L2312:
- cbz r0, .L2313
- mov r1, r7
- ldr r2, [sp, #4]
- ldr r0, .L2361+12
- add r9, r9, #1
- bl printk
- ldr r2, [r5, #1184]
- uxth r9, r9
- ldr r3, [sp, #12]
- and r0, r3, #31
- lsrs r1, r3, #5
- movs r3, #1
- lsls r3, r3, r0
- ldr r0, [r2, r1, lsl #2]
- orrs r3, r3, r0
- str r3, [r2, r1, lsl #2]
- ldr r2, [sp, #28]
- ldrb r3, [r4, #2230] @ zero_extendqisi2
- muls r3, r2, r3
- cmp r9, r3
- bgt .L2314
-.L2313:
- ldr r3, [sp, #4]
- adds r3, r3, #1
- str r3, [sp, #4]
- ldr r3, [sp, #16]
- add r6, r6, r3
- b .L2304
-.L2314:
- mov r2, r9
- ldr r0, .L2361+16
- mov r1, r7
- bl printk
- ldrb r3, [r4, #2230] @ zero_extendqisi2
- ldr r2, [sp, #28]
- muls r3, r2, r3
- cmp r9, r3
- blt .L2316
- ldrh r2, [r4, #136]
- movs r1, #0
- ldr r0, [r5, #1184]
- lsls r2, r2, #9
- bl ftl_memset
-.L2316:
- cmp r7, #0
- bne .L2318
- ldrh r10, [r5, #1204]
- mov r9, #1
- mov r6, r7
-.L2319:
- ldr r3, .L2361+4
- ldrb r3, [r3, #1] @ zero_extendqisi2
- cmp r3, r10
- bls .L2358
- mov r0, r10
- bl FlashTestBlk
- cbz r0, .L2320
- mov r1, r10
- ldr r0, .L2361+20
- bl printk
- ldr r2, [r5, #1184]
- lsr r0, r10, #5
- adds r6, r6, #1
- and r3, r10, #31
- ldr r1, [r2, r0, lsl #2]
- uxth r6, r6
- lsl r3, r9, r3
- orrs r3, r3, r1
- str r3, [r2, r0, lsl #2]
-.L2320:
- add r10, r10, #1
- uxth r10, r10
- b .L2319
-.L2358:
- add fp, r8, #-1
- sub r9, r8, #50
- mov r10, #1
- uxth fp, fp
-.L2322:
- cmp fp, r9
- ble .L2359
+ b .L2248
+.L2258:
mov r0, fp
bl FlashTestBlk
- cbz r0, .L2323
+ cbz r0, .L2257
mov r1, fp
- ldr r0, .L2361+20
+ mov r0, r9
bl printk
- ldr r2, [r5, #1184]
+ ldr r1, [r5, #1192]
lsr r0, fp, #5
and r3, fp, #31
- lsl r3, r10, r3
- ldr r1, [r2, r0, lsl #2]
- orrs r3, r3, r1
- str r3, [r2, r0, lsl #2]
-.L2323:
- add fp, fp, #-1
+ lsl r2, r10, r3
+ adds r7, r7, #1
+ ldr r3, [r1, r0, lsl #2]
+ uxth r7, r7
+ orrs r3, r3, r2
+ str r3, [r1, r0, lsl #2]
+.L2257:
+ add fp, fp, #1
uxth fp, fp
- b .L2322
-.L2359:
- ldr r3, .L2361+4
- ldr r2, [r5, #1204]
- ldrb r3, [r3, #1] @ zero_extendqisi2
- subs r3, r3, r2
- cmp r6, r3
- bcc .L2318
- ldrh r2, [r4, #136]
- movs r1, #0
- ldr r0, [r5, #1184]
- lsls r2, r2, #9
- bl ftl_memset
-.L2318:
- ldrb r6, [sp, #8] @ zero_extendqisi2
- add r10, r8, #-1
- add r9, r5, r7, lsl #1
- uxth r10, r10
- mul r6, r8, r6
-.L2326:
- mov r1, r7
- ldr r0, .L2361+24
- mov r2, r10
+ b .L2256
+.L2261:
+ mov r0, r10
+ bl FlashTestBlk
+ cbz r0, .L2260
+ mov r1, r10
+ ldr r0, .L2293+20
bl printk
- ldr r1, [r5, #1184]
-.L2327:
- lsr r3, r10, #5
+ ldr r0, [r5, #1192]
+ lsr ip, r10, #5
and r2, r10, #31
- ldr r3, [r1, r3, lsl #2]
- lsrs r3, r3, r2
- ands r3, r3, #1
- beq .L2360
- add r10, r10, #-1
- uxth r10, r10
- b .L2327
-.L2360:
- ldr r1, [sp, #20]
- movw r2, #61664
- strh r10, [r9, #1232] @ movhi
- add r0, sp, #44
- strh r2, [r1] @ movhi
- strh r10, [r1, #2] @ movhi
- strh r3, [r1, #8] @ movhi
- movs r1, #1
- ldr r3, [r5, #1184]
- mov r2, r1
- str r3, [sp, #52]
- ldr r3, [r5, #1216]
- str r3, [sp, #56]
- add r3, r10, r6
- lsls r3, r3, #10
- str r3, [sp, #48]
- bl FlashEraseBlocks
- movs r1, #1
- mov r3, r1
- mov r2, r1
- add r0, sp, #44
- bl FlashProgPages
- ldr r3, [sp, #44]
- cbz r3, .L2332
- add r10, r10, #-1
- uxth r10, r10
- b .L2326
-.L2332:
- ldr r3, [sp, #8]
+ lsl r1, fp, r2
+ ldr r2, [r0, ip, lsl #2]
+ orrs r2, r2, r1
+ str r2, [r0, ip, lsl #2]
+.L2260:
+ add r3, r10, #-1
+ uxth r10, r3
+ b .L2259
+.L2265:
+ subs r7, r7, #1
+ uxth r7, r7
+ b .L2264
+.L2240:
+ ldr r3, [sp, #12]
adds r3, r3, #1
- str r3, [sp, #8]
- b .L2302
-.L2357:
- add sp, sp, #84
- @ sp needed
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L2362:
+ str r3, [sp, #12]
+ b .L2239
+.L2294:
.align 2
-.L2361:
+.L2293:
.word .LANCHOR4
- .word .LANCHOR0
.word .LC121
- .word .LC122
+ .word .LANCHOR0
.word .LC123
+ .word .LC122
.word .LC124
.word .LC125
.fnend
.size FlashMakeFactorBbt, .-FlashMakeFactorBbt
.align 1
.global FtlLowFormatEraseBlock
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FtlLowFormatEraseBlock, %function
FtlLowFormatEraseBlock:
.fnstart
@ args = 0, pretend = 0, frame = 24
@ frame_needed = 0, uses_anonymous_args = 0
+ ldr r3, .L2342
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.pad #28
sub sp, sp, #28
- ldr r7, .L2415
- str r0, [sp, #4]
- str r1, [sp]
- ldrb r3, [r7, #2240] @ zero_extendqisi2
- str r3, [sp, #16]
- ldr r3, .L2415+4
- ldr r2, [r3, #224]
- mov fp, r3
- cmp r2, #0
- bne .L2392
- ldrb r3, [r7, #144] @ zero_extendqisi2
- mov r8, #36
- mov r9, r2
- mov r5, r2
- mov r4, r2
- mov r10, fp
- str r3, [sp, #8]
- str r0, [fp, #3292]
-.L2365:
- ldrh r0, [r7, #2320]
- uxth r1, r9
- ldr r3, .L2415
- cmp r0, r1
- bls .L2410
- mul r6, r8, r1
- ldr r0, [fp, #228]
- movs r3, #0
- str r3, [r0, r6]
- ldr r3, .L2415
- add r1, r1, r3
- ldrb r0, [r1, #2348] @ zero_extendqisi2
- ldr r1, [sp, #4]
- bl V2P_block
- ldr r3, [sp]
- mov r6, r0
- cbz r3, .L2366
- bl IsBlkInVendorPart
- cbnz r0, .L2367
-.L2366:
- mov r0, r6
- bl FtlBbmIsBadBlock
- cbnz r0, .L2368
- ldr r3, [fp, #228]
- lsls r6, r6, #10
- ldrh r1, [r7, #2400]
- muls r1, r5, r1
- it mi
- addmi r1, r1, #3
- mla lr, r8, r5, r3
- adds r5, r5, #1
- bic r1, r1, #3
- uxth r5, r5
- str r0, [lr, #8]
- ldr r0, [r10, #3344]
- str r6, [lr, #4]
- add r1, r1, r0
- str r1, [lr, #12]
- b .L2367
-.L2368:
- adds r4, r4, #1
- uxth r4, r4
-.L2367:
- add r9, r9, #1
- b .L2365
-.L2410:
- cmp r5, #0
- beq .L2391
- ldr r2, [sp, #8]
- mov r8, #0
- ldr r0, [fp, #228]
+ str r0, [sp, #8]
+ mov r10, r3
+ ldr r6, [r3, #228]
+ str r1, [sp, #4]
+ cmp r6, #0
+ bne .L2324
+ ldr r5, .L2342+4
+ mov r7, r6
+ mov r4, r6
mov r9, #36
- adds r6, r2, #0
- mov r2, r5
+ mov fp, r10
+ str r0, [r10, #3292]
+ ldrb r3, [r5, #2244] @ zero_extendqisi2
+ str r3, [sp, #16]
+ ldrb r3, [r5, #152] @ zero_extendqisi2
+ str r3, [sp, #12]
+.L2297:
+ ldrh r0, [r5, #2324]
+ uxth r1, r6
+ cmp r0, r1
+ bhi .L2302
+ cmp r7, #0
+ beq .L2295
+ ldr r3, [sp, #12]
+ mov r8, #0
+ mov r2, r7
+ ldr r0, [r10, #232]
+ strb r8, [r5, #2244]
+ mov r9, #36
+ adds r6, r3, #0
it ne
movne r6, #1
- strb r8, [r3, #2240]
- str r3, [sp, #8]
mov r1, r6
bl FlashEraseBlocks
- ldrb r2, [sp, #16] @ zero_extendqisi2
- ldr r3, [sp, #8]
- strb r2, [r3, #2240]
-.L2372:
+ ldrb r3, [sp, #16] @ zero_extendqisi2
+ strb r3, [r5, #2244]
+.L2304:
uxth r2, r8
- cmp r2, r5
- bcs .L2411
+ cmp r7, r2
+ bhi .L2306
+ ldr r3, [sp, #4]
+ cmp r3, #0
+ bne .L2307
+ uxth r6, r6
+ mov fp, #6
+ movs r3, #1
+ str r3, [sp, #12]
+.L2308:
+ ldr r7, .L2342
+ mov r9, #0
+.L2318:
+ ldr r10, .L2342+4
+ mov r8, #0
+ mov r5, r8
+.L2309:
+ ldrh r1, [r10, #2324]
+ uxth r3, r8
+ cmp r1, r3
+ bhi .L2313
+ cbz r5, .L2295
+ movs r3, #1
+ mov r8, #0
+ mov r2, r6
+ mov r1, r5
+ ldr r0, [r7, #232]
+ strb r8, [r10, #2244]
+ bl FlashProgPages
+ ldrb r3, [sp, #16] @ zero_extendqisi2
+ strb r3, [r10, #2244]
+ mov r10, #36
+.L2315:
+ uxth r3, r8
+ cmp r5, r3
+ bhi .L2317
+ add r9, r9, fp
+ ldr r3, [sp, #12]
+ uxth r9, r9
+ cmp r3, r9
+ bhi .L2318
+ mov r8, #0
+ mov r9, #36
+.L2319:
+ uxth r3, r8
+ cmp r5, r3
+ bhi .L2321
+ ldr r3, [sp, #8]
+ cmp r3, #63
+ bls .L2322
+ ldr r3, [sp, #4]
+ cbz r3, .L2295
+.L2322:
+ mov r2, r5
+ mov r1, r6
+ ldr r0, [r7, #232]
+ bl FlashEraseBlocks
+.L2295:
+ mov r0, r4
+ add sp, sp, #28
+ @ sp needed
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L2302:
+ uxth r1, r6
+ ldr r0, [r10, #232]
+ movs r3, #0
+ mul ip, r9, r1
+ str r3, [r0, ip]
+ adds r0, r5, r1
+ ldrb r0, [r0, #2350] @ zero_extendqisi2
+ ldr r1, [sp, #8]
+ bl V2P_block
+ ldr r3, [sp, #4]
+ mov r8, r0
+ cbz r3, .L2298
+ bl IsBlkInVendorPart
+ cbnz r0, .L2299
+.L2298:
+ mov r0, r8
+ bl FtlBbmIsBadBlock
+ cbnz r0, .L2300
+ ldr r1, [r10, #232]
+ mla ip, r9, r7, r1
+ lsl r1, r8, #10
+ str r0, [ip, #8]
+ str r1, [ip, #4]
+ ldr r0, [fp, #3344]
+ ldrh r1, [r5, #2402]
+ muls r1, r7, r1
+ add r7, r7, #1
+ it mi
+ addmi r1, r1, #3
+ uxth r7, r7
+ bic r1, r1, #3
+ add r1, r1, r0
+ str r1, [ip, #12]
+.L2299:
+ adds r6, r6, #1
+ b .L2297
+.L2300:
+ adds r4, r4, #1
+ uxth r4, r4
+ b .L2299
+.L2306:
mul r2, r9, r8
- ldr r1, [fp, #228]
- adds r0, r1, r2
+ ldr r1, [r10, #232]
+ add ip, r1, r2
ldr r2, [r1, r2]
adds r2, r2, #1
- bne .L2373
- ldr r0, [r0, #4]
+ bne .L2305
+ ldr r0, [ip, #4]
adds r4, r4, #1
- ubfx r0, r0, #10, #16
uxth r4, r4
+ ubfx r0, r0, #10, #16
bl FtlBbmMapBadBlock
-.L2373:
+.L2305:
add r8, r8, #1
- b .L2372
-.L2411:
- ldr r3, [sp]
- cbnz r3, .L2375
- movs r3, #6
- uxth r6, r6
+ b .L2304
+.L2307:
+ ldrh r3, [r5, #2392]
str r3, [sp, #12]
- movs r3, #1
- str r3, [sp, #8]
- b .L2376
-.L2375:
- ldrh r3, [r7, #2390]
- str r3, [sp, #8]
- ldrb r3, [r7, #144] @ zero_extendqisi2
- cbnz r3, .L2393
- ldr r3, [sp, #8]
+ ldrb r3, [r5, #152] @ zero_extendqisi2
+ cbnz r3, .L2325
+ ldr r3, [sp, #12]
movs r6, #1
- lsrs r3, r3, #2
- str r3, [sp, #12]
- b .L2376
-.L2393:
+ lsr fp, r3, #2
+ b .L2308
+.L2325:
movs r6, #1
- str r6, [sp, #12]
-.L2376:
- ldr r8, .L2415+4
- movs r7, #0
- mov r10, r8
-.L2386:
- mov fp, #0
- mov r5, fp
-.L2377:
- ldr r9, .L2415
- uxth r3, fp
- ldrh r1, [r9, #2320]
- cmp r1, r3
- bls .L2412
+ mov fp, r6
+ b .L2308
+.L2313:
+ uxth r3, r8
movs r2, #36
- ldr r0, [r8, #228]
+ ldr r0, [r7, #232]
mul r1, r2, r3
+ add r3, r3, r10
movs r2, #0
str r2, [r0, r1]
- ldr r2, .L2415
- ldr r1, [sp, #4]
- add r3, r3, r2
- ldrb r0, [r3, #2348] @ zero_extendqisi2
+ ldr r1, [sp, #8]
+ ldrb r0, [r3, #2350] @ zero_extendqisi2
bl V2P_block
- ldr r3, [sp]
- mov r9, r0
- cbz r3, .L2378
+ ldr r3, [sp, #4]
+ str r0, [sp, #20]
+ cbz r3, .L2310
bl IsBlkInVendorPart
- cbnz r0, .L2379
-.L2378:
- mov r0, r9
+ cbnz r0, .L2311
+.L2310:
+ ldr r0, [sp, #20]
bl FtlBbmIsBadBlock
- cbnz r0, .L2379
- ldr r1, [r10, #228]
+ cbnz r0, .L2311
+ ldr r1, [r7, #232]
movs r3, #36
- ldr r0, [r8, #3336]
+ ldr r0, [r7, #3336]
mla r1, r3, r5, r1
- add r3, r7, r9, lsl #10
+ ldr r3, [sp, #20]
+ add r3, r9, r3, lsl #10
str r3, [r1, #4]
- ldr r3, [r10, #3332]
+ ldr r3, [r7, #3332]
str r3, [r1, #8]
- ldr r3, .L2415
- ldrh r3, [r3, #2400]
+ ldrh r3, [r10, #2402]
muls r3, r5, r3
add r5, r5, #1
it mi
addmi r3, r3, #3
- bic r3, r3, #3
uxth r5, r5
+ bic r3, r3, #3
add r3, r3, r0
str r3, [r1, #12]
-.L2379:
- add fp, fp, #1
- b .L2377
-.L2412:
- cmp r5, #0
- beq .L2391
- mov r2, r6
- movs r3, #1
- ldr r0, [r8, #228]
- mov r1, r5
- mov fp, #0
- strb fp, [r9, #2240]
- bl FlashProgPages
- movs r2, #36
- ldrb r3, [sp, #16] @ zero_extendqisi2
- strb r3, [r9, #2240]
- ldr r9, .L2415+4
-.L2383:
- uxth r3, fp
- cmp r3, r5
- bcs .L2413
- mul r3, r2, fp
- ldr r1, [r10, #228]
- adds r0, r1, r3
- ldr r3, [r1, r3]
- cbz r3, .L2384
- ldr r0, [r0, #4]
- adds r4, r4, #1
- str r2, [sp, #20]
- ubfx r0, r0, #10, #16
- uxth r4, r4
- bl FtlBbmMapBadBlock
- ldr r2, [sp, #20]
-.L2384:
- add fp, fp, #1
- b .L2383
-.L2413:
- ldr r3, [sp, #12]
- add r7, r7, r3
- ldr r3, [sp, #8]
- uxth r7, r7
- cmp r7, r3
- bcc .L2386
- movs r7, #0
- mov r8, #36
-.L2387:
- uxth r3, r7
- cmp r3, r5
- bcs .L2414
- ldr r3, [sp]
- cbz r3, .L2388
- mul r3, r8, r7
- ldr r2, [r9, #228]
+.L2311:
+ add r8, r8, #1
+ b .L2309
+.L2317:
+ mul r3, r10, r8
+ ldr r2, [r7, #232]
adds r1, r2, r3
ldr r3, [r2, r3]
- cbnz r3, .L2388
+ cbz r3, .L2316
+ ldr r0, [r1, #4]
+ adds r4, r4, #1
+ uxth r4, r4
+ ubfx r0, r0, #10, #16
+ bl FtlBbmMapBadBlock
+.L2316:
+ add r8, r8, #1
+ b .L2315
+.L2321:
+ ldr r3, [sp, #4]
+ cbz r3, .L2320
+ mul r3, r9, r8
+ ldr r2, [r7, #232]
+ adds r1, r2, r3
+ ldr r3, [r2, r3]
+ cbnz r3, .L2320
ldr r0, [r1, #4]
movs r1, #1
ubfx r0, r0, #10, #16
bl FtlFreeSysBlkQueueIn
-.L2388:
- adds r7, r7, #1
- b .L2387
-.L2414:
- ldr r3, [sp, #4]
- cmp r3, #63
- bls .L2390
- ldr r3, [sp]
- cbz r3, .L2391
-.L2390:
- ldr r0, [r9, #228]
- mov r1, r6
- mov r2, r5
- bl FlashEraseBlocks
-.L2391:
- mov r0, r4
- b .L2364
-.L2392:
- movs r0, #0
-.L2364:
- add sp, sp, #28
- @ sp needed
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L2416:
+.L2320:
+ add r8, r8, #1
+ b .L2319
+.L2324:
+ movs r4, #0
+ b .L2295
+.L2343:
.align 2
-.L2415:
- .word .LANCHOR0
+.L2342:
.word .LANCHOR2
+ .word .LANCHOR0
.fnend
.size FtlLowFormatEraseBlock, .-FtlLowFormatEraseBlock
.align 1
.global FtlBbmTblFlush
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FtlBbmTblFlush, %function
FtlBbmTblFlush:
.fnstart
- @ args = 0, pretend = 0, frame = 8
+ @ args = 0, pretend = 0, frame = 0
@ 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 r7, .L2434
- ldr r6, [r7, #224]
+ .pad #12
+ ldr r7, .L2358
+ ldr r6, [r7, #228]
cmp r6, #0
- bne .L2419
- ldr r4, .L2434+4
+ bne .L2346
+ ldr r4, .L2358+4
mov r1, r6
ldr r0, [r7, #3316]
- ldr r5, .L2434+8
- addw r9, r4, #2476
+ ldr r5, .L2358+8
ldr r3, [r7, #3340]
- ldrh r2, [r4, #2398]
- str r0, [r5, #1256]
- str r3, [r5, #1260]
+ add r8, r4, #2480
+ ldrh r2, [r4, #2400]
+ str r0, [r5, #1264]
+ str r3, [r5, #1268]
bl ftl_memset
-.L2420:
- ldrh r3, [r4, #2342]
- ldr r8, .L2434+4
+.L2347:
+ ldrh r3, [r4, #2346]
cmp r6, r3
- bge .L2433
- ldrh r2, [r7, #3404]
+ blt .L2348
+ ldr r6, [r5, #1268]
+ movs r2, #16
+ movs r1, #255
+ ldr fp, .L2358+24
+ mov r8, #0
+ mov r0, r6
+ mov r9, r8
+ bl ftl_memset
+ movw r3, #61649
+ strh r3, [r6] @ movhi
+ ldr r3, [r4, #2464]
+ str r3, [r6, #4]
+ ldrh r3, [r4, #2456]
+ strh r3, [r6, #2] @ movhi
+ ldrh r3, [r4, #2460]
+ strh r3, [r6, #8] @ movhi
+ ldrh r3, [r4, #2462]
+ strh r3, [r6, #10] @ movhi
+ ldr r3, [r4, #2320]
+ strh r3, [r6, #12] @ movhi
+.L2349:
+ ldr r3, [r7, #3316]
+ mov r10, #0
+ ldrh r2, [r4, #2458]
+ ldrh r1, [r4, #2456]
+ str r3, [r5, #1264]
+ ldr r3, [r7, #3340]
+ str r10, [r5, #1256]
+ str r3, [r5, #1268]
+ orr r3, r2, r1, lsl #10
+ ldrh r0, [r6, #10]
+ str r3, [r5, #1260]
+ ldrh r3, [r4, #2460]
+ str r0, [sp]
+ ldr r0, .L2358+12
+ bl printk
+ ldrh r3, [r4, #2392]
+ ldrh r2, [r4, #2458]
+ subs r3, r3, #1
+ cmp r2, r3
+ blt .L2350
+ ldr r3, [r4, #2464]
+ ldrh r2, [r4, #2456]
+ ldr r0, [r7, #232]
+ adds r3, r3, #1
+ strh r10, [r4, #2458] @ movhi
+ str r3, [r4, #2464]
+ str r3, [r6, #4]
+ ldrh r3, [r4, #2460]
+ strh r2, [r6, #8] @ movhi
+ strh r2, [r4, #2460] @ movhi
+ movs r2, #1
+ strh r3, [r4, #2456] @ movhi
+ mov r1, r2
+ lsls r3, r3, #10
+ str r3, [r5, #1260]
+ str r3, [r0, #4]
+ bl FlashEraseBlocks
+.L2350:
+ movs r3, #1
+ mov r0, fp
+ mov r2, r3
+ mov r1, r3
+ bl FlashProgPages
+ ldrh r3, [r4, #2458]
+ adds r3, r3, #1
+ strh r3, [r4, #2458] @ movhi
ldr r3, [r5, #1256]
- ldr r1, [r9, #4]!
- mul r0, r2, r6
+ adds r2, r3, #1
+ bne .L2351
+ add r8, r8, #1
+ ldr r1, [r5, #1260]
+ uxth r8, r8
+ ldr r0, .L2358+16
+ bl printk
+ cmp r8, #3
+ bls .L2349
+ mov r2, r8
+ ldr r1, [r5, #1260]
+ ldr r0, .L2358+20
+ bl printk
+ movs r3, #1
+ str r3, [r7, #228]
+.L2346:
+ movs r0, #0
+ add sp, sp, #12
+ @ sp needed
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L2348:
+ ldrh r2, [r7, #3404]
+ ldr r3, [r5, #1264]
+ ldr r1, [r8, #4]!
+ mul r0, r6, r2
lsls r2, r2, #2
adds r6, r6, #1
add r0, r3, r0, lsl #2
bl ftl_memcpy
- b .L2420
-.L2433:
- ldr r6, [r5, #1260]
- movs r1, #255
- movs r2, #16
- ldr fp, .L2434
- mov r0, r6
- bl ftl_memset
- movw r3, #61649
- strh r3, [r6] @ movhi
- ldr r3, [r8, #2460]
- str r3, [r6, #4]
- ldrh r3, [r8, #2452]
- strh r3, [r6, #2] @ movhi
- ldrh r3, [r8, #2456]
- strh r3, [r6, #8] @ movhi
- ldrh r3, [r8, #2458]
- strh r3, [r6, #10] @ movhi
- ldr r3, [r8, #2316]
- mov r8, #0
- mov r10, r8
- strh r3, [r6, #12] @ movhi
-.L2422:
- ldr r3, [r7, #3316]
- mov ip, #0
- ldrh r1, [r4, #2452]
- ldrh r2, [r4, #2454]
- str r3, [r5, #1256]
- ldr r3, [r7, #3340]
- str ip, [r5, #1248]
- str ip, [sp, #12]
- str r3, [r5, #1260]
- orr r3, r2, r1, lsl #10
- ldrh r0, [r6, #10]
- str r3, [r5, #1252]
- ldrh r3, [r4, #2456]
- str r0, [sp]
- ldr r0, .L2434+12
- bl printk
- ldrh r3, [r4, #2390]
- ldrh r2, [r4, #2454]
- subs r3, r3, #1
- ldr r9, .L2434+4
- cmp r2, r3
- ldr ip, [sp, #12]
- blt .L2423
- ldrh r2, [r9, #2452]
- movs r1, #1
- ldr r3, [r9, #2460]
- ldr r0, [fp, #228]
- adds r3, r3, #1
- str r3, [r9, #2460]
- str r3, [r6, #4]
- strh r2, [r6, #8] @ movhi
- ldrh r3, [r9, #2456]
- strh r2, [r9, #2456] @ movhi
- ldr r2, .L2434+8
- strh r3, [r9, #2452] @ movhi
- lsls r3, r3, #10
- strh ip, [r9, #2454] @ movhi
- str r3, [r2, #1252]
- mov r2, r1
- str r3, [r0, #4]
- bl FlashEraseBlocks
-.L2423:
- movs r1, #1
- ldr r9, .L2434+8
- mov r2, r1
- mov r3, r1
- add r0, r9, #1248
- bl FlashProgPages
- ldrh r3, [r4, #2454]
- adds r3, r3, #1
- strh r3, [r4, #2454] @ movhi
- ldr r3, [r5, #1248]
- adds r2, r3, #1
- bne .L2424
- add r8, r8, #1
- ldr r0, .L2434+16
- ldr r1, [r9, #1252]
- uxth r8, r8
- bl printk
- cmp r8, #3
- bls .L2422
- ldr r0, .L2434+20
- mov r2, r8
- ldr r1, [r9, #1252]
- bl printk
- movs r3, #1
- str r3, [r7, #224]
- b .L2419
-.L2424:
- add r10, r10, #1
- cmp r10, #1
- beq .L2422
+ b .L2347
+.L2354:
+ mov r9, #1
+ b .L2349
+.L2351:
+ add r9, r9, #1
+ cmp r9, #1
+ ble .L2354
cmp r3, #256
- beq .L2422
-.L2419:
- movs r0, #0
- add sp, sp, #20
- @ sp needed
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L2435:
+ bne .L2346
+ b .L2349
+.L2359:
.align 2
-.L2434:
+.L2358:
.word .LANCHOR2
.word .LANCHOR0
.word .LANCHOR4
.word .LC126
.word .LC127
.word .LC128
+ .word .LANCHOR4+1256
.fnend
.size FtlBbmTblFlush, .-FtlBbmTblFlush
.align 1
.global allocate_data_superblock
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type allocate_data_superblock, %function
allocate_data_superblock:
.fnstart
@@ -14922,263 +15214,258 @@
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
mov r5, r0
- ldr r4, .L2492
+ ldr r4, .L2409
.pad #20
sub sp, sp, #20
- ldr r3, [r4, #224]
+ ldr r3, [r4, #228]
cmp r3, #0
- bne .L2437
- ldr r9, .L2492+16
- mov r8, r4
-.L2438:
- ldr r3, .L2492+4
+ bne .L2361
+.L2362:
+ ldr r3, .L2409+4
+ ldr r7, .L2409+8
ldrb r2, [r5, #8] @ zero_extendqisi2
cmp r5, r3
- bne .L2439
- ldrh r7, [r8, #312]
- ldr r6, [r8, #1132]
- lsrs r1, r7, #1
- mul r0, r6, r7
- adds r3, r1, #1
- add r3, r3, r0, lsr #2
- ldr r0, [r9, #2244]
- uxth r3, r3
- cbz r0, .L2462
- ldr r0, [r8, #532]
+ bne .L2363
+ ldrh ip, [r4, #316]
+ ldr r3, [r4, #1132]
+ lsr r6, ip, #1
+ mul r0, r3, ip
+ adds r1, r6, #1
+ add r1, r1, r0, lsr #2
+ ldr r0, [r7, #2248]
+ uxth r1, r1
+ cbz r0, .L2364
+ ldr r0, [r4, #532]
cmp r0, #39
- bhi .L2462
+ bhi .L2364
cmp r0, #2
- bls .L2467
- lsls r0, r7, #31
- bpl .L2440
- cbz r6, .L2464
- b .L2440
-.L2439:
+ bls .L2391
+ tst ip, #1
+ beq .L2387
+ cmp r3, #0
+ beq .L2391
+.L2387:
+ mov r1, r6
+ b .L2364
+.L2363:
cmp r2, #1
- bne .L2467
- ldrh r3, [r9, #2340]
+ bne .L2391
+ ldrh r3, [r7, #2344]
cmp r3, #1
- beq .L2467
- ldrb r3, [r9, #144] @ zero_extendqisi2
- cbnz r3, .L2467
- ldrh r0, [r8, #312]
- ldr r3, [r9, #2244]
- lsrs r1, r0, #3
- cbz r3, .L2440
- ldr r3, [r8, #532]
- cmp r3, #1
- bhi .L2440
- rsb r0, r0, r0, lsl #3
- ubfx r1, r0, #3, #16
- b .L2440
-.L2462:
- mov r1, r3
-.L2440:
- cbz r1, .L2441
+ beq .L2391
+ ldrb r3, [r7, #152] @ zero_extendqisi2
+ cmp r3, #0
+ bne .L2391
+ ldrh r3, [r4, #316]
+ ldr r0, [r7, #2248]
+ lsrs r1, r3, #3
+ cbz r0, .L2364
+ ldr r0, [r4, #532]
+ cmp r0, #1
+ bhi .L2364
+ rsb r3, r3, r3, lsl #3
+ ubfx r1, r3, #3, #16
+.L2364:
+ cbz r1, .L2365
subs r1, r1, #1
uxth r1, r1
- b .L2441
-.L2464:
- mov r1, r6
- b .L2441
-.L2467:
- movs r1, #0
-.L2441:
- ldr r0, .L2492+8
+.L2365:
+ ldr r0, .L2409+12
bl List_pop_index_node
- ldrh r3, [r4, #312]
+ ldrh r3, [r4, #316]
+ uxth r9, r0
subs r3, r3, #1
- strh r3, [r4, #312] @ movhi
- ldrh r3, [r9, #2328]
- uxth r6, r0
- cmp r3, r6
- bls .L2438
- ldr r3, [r8, #296]
- ldrh r7, [r3, r6, lsl #1]
- cmp r7, #0
- bne .L2438
- strh r6, [r5] @ movhi
+ strh r3, [r4, #316] @ movhi
+ ldrh r3, [r7, #2332]
+ cmp r3, r9
+ bls .L2362
+ ldr r3, [r4, #300]
+ movw fp, #65535
+ mov r6, r9
+ ldrh r8, [r3, r9, lsl #1]
+ cmp r8, #0
+ bne .L2362
+ strh r9, [r5] @ movhi
mov r0, r5
bl make_superblock
ldrb r3, [r5, #7] @ zero_extendqisi2
- cbz r3, .L2443
- ldr r0, [r8, #228]
+ cmp r3, #0
+ beq .L2367
+ ldr r0, [r4, #232]
movs r2, #36
- ldrh ip, [r9, #2320]
- add lr, r5, #14
- movw r10, #65535
+ ldrh r1, [r7, #2324]
+ add r10, r5, #16
+ mov ip, r10
+ mov lr, r8
mov r3, r0
- mla r1, r2, ip, r0
- mov ip, r7
+ str r2, [sp, #8]
+ mla r1, r2, r1, r0
str r1, [sp, #4]
- b .L2444
-.L2443:
- ldr r3, [r8, #296]
- b .L2487
-.L2444:
- ldr r1, [sp, #4]
- cmp r3, r1
- beq .L2489
- str ip, [r3, #8]
- adds r3, r3, #36
- str ip, [r3, #-24]
- ldrh r1, [lr, #2]!
- cmp r1, r10
- itttt ne
- lslne r1, r1, #10
- mlane fp, r2, r7, r0
- addne r7, r7, #1
- uxthne r7, r7
- it ne
- strne r1, [fp, #4]
- b .L2444
-.L2489:
- ldr r3, [r9, #2244]
- cbz r3, .L2447
- ldr r3, .L2492+12
+.L2368:
+ ldr r2, [sp, #4]
+ cmp r2, r3
+ bne .L2370
+ ldr r3, [r7, #2248]
+ cbz r3, .L2371
+ ldr r3, .L2409+16
cmp r5, r3
- bne .L2447
- ldr r3, [r8, #232]
+ bne .L2371
+ ldr r3, [r4, #236]
ldrh r3, [r3, r6, lsl #1]
cmp r3, #40
itt hi
movhi r3, #0
- strbhi r3, [r8, #324]
-.L2447:
+ strbhi r3, [r4, #328]
+.L2371:
ldrb r3, [r5, #8] @ zero_extendqisi2
- ldr r2, [r4, #232]
- cbnz r3, .L2448
- ldrh r1, [r2, r6, lsl #1]
- cbz r1, .L2468
- ldrh r3, [r9, #2380]
+ ldr r2, [r4, #236]
+ cmp r3, #0
+ bne .L2372
+ ldrh r3, [r2, r6, lsl #1]
+ cmp r3, #0
+ beq .L2373
+ ldrh r1, [r7, #2382]
add r3, r3, r1
- uxth r3, r3
- b .L2449
-.L2468:
- movs r3, #2
-.L2449:
+.L2407:
strh r3, [r2, r6, lsl #1] @ movhi
- mov r0, r6
- ldr r3, [r4, #516]
movs r1, #0
+ ldr r3, [r4, #516]
+ mov r0, r9
adds r3, r3, #1
str r3, [r4, #516]
bl ftl_set_blk_mode
- b .L2450
-.L2448:
- ldrh r3, [r2, r6, lsl #1]
- lsrs r0, r6, #5
- and r1, r6, #31
- adds r3, r3, #1
- strh r3, [r2, r6, lsl #1] @ movhi
- ldr r3, [r4, #520]
- ldr r2, [r4, #472]
- adds r3, r3, #1
- str r3, [r4, #520]
- movs r3, #1
- lsls r3, r3, r1
- ldr r1, [r2, r0, lsl #2]
- orrs r3, r3, r1
- str r3, [r2, r0, lsl #2]
-.L2450:
- ldr r3, [r4, #232]
+.L2375:
+ ldr r3, [r4, #236]
ldr r2, [r4, #528]
- ldr r0, [r4, #516]
+ ldrh r0, [r7, #2382]
ldrh r3, [r3, r6, lsl #1]
- ldrh r1, [r9, #2328]
+ ldrh r1, [r7, #2332]
cmp r3, r2
- ldrh r2, [r9, #2380]
+ ldr r2, [r4, #516]
it hi
- strhi r3, [r8, #528]
+ strhi r3, [r4, #528]
ldr r3, [r4, #520]
- mla r0, r0, r2, r3
+ mla r0, r2, r0, r3
bl __aeabi_uidiv
ldr r2, [r4, #3360]
- ldr r1, [r4, #228]
+ ldr r1, [r4, #232]
+ str r0, [r4, #524]
ldr r3, [r2, #16]
adds r3, r3, #1
str r3, [r2, #16]
- movs r3, #36
- adds r2, r1, #4
- mla r3, r3, r7, r1
- adds r3, r3, #40
- str r0, [r4, #524]
-.L2452:
- adds r2, r2, #36
+ movs r2, #36
+ mla r2, r2, r8, r1
+ adds r3, r1, #4
+ adds r2, r2, #40
+.L2377:
+ adds r3, r3, #36
cmp r2, r3
- beq .L2490
- ldr r1, [r2, #-36]
- bic r1, r1, #1020
- bic r1, r1, #3
- str r1, [r2, #-36]
- b .L2452
-.L2490:
- ldrb r3, [r9, #144] @ zero_extendqisi2
- cbz r3, .L2454
+ bne .L2378
+ ldrb r3, [r7, #152] @ zero_extendqisi2
+ cbz r3, .L2379
ldrb r3, [r5, #8] @ zero_extendqisi2
- mov r2, r7
- ldr r0, [r4, #228]
+ mov r2, r8
+ ldr r0, [r4, #232]
cmp r3, #1
ite eq
moveq r1, #0
movne r1, #1
bl FlashEraseBlocks
-.L2454:
- mov r2, r7
- ldr r0, [r4, #228]
+.L2379:
ldrb r1, [r5, #8] @ zero_extendqisi2
- mov r10, #0
+ mov r2, r8
+ ldr r0, [r4, #232]
+ mov fp, #0
bl FlashEraseBlocks
- add r2, r5, #16
- mov ip, #36
- mov fp, r10
-.L2456:
- uxth r3, r10
- cmp r3, r7
- bcs .L2491
- mul r3, ip, r10
- ldr r1, [r4, #228]
- adds r0, r1, r3
- ldr r3, [r1, r3]
- adds r1, r3, #1
- bne .L2457
- ldr r0, [r0, #4]
- add fp, fp, #1
- str ip, [sp, #12]
- ubfx r0, r0, #10, #16
- str r3, [sp, #8]
- str r2, [sp, #4]
- bl FtlBbmMapBadBlock
- ldr r3, [sp, #8]
- ldr r2, [sp, #4]
- ldr ip, [sp, #12]
- strh r3, [r2] @ movhi
- ldrb r3, [r5, #7] @ zero_extendqisi2
- subs r3, r3, #1
- strb r3, [r5, #7]
-.L2457:
- add r10, r10, #1
- adds r2, r2, #2
- b .L2456
-.L2491:
- cmp fp, #0
- beq .L2459
- mov r0, r6
+ mov r3, fp
+ movs r1, #36
+.L2381:
+ uxth r2, fp
+ cmp r8, r2
+ bhi .L2383
+ cmp r3, #0
+ ble .L2384
+ mov r0, r9
bl update_multiplier_value
bl FtlBbmTblFlush
-.L2459:
- ldrb r3, [r5, #7] @ zero_extendqisi2
- cbnz r3, .L2460
- ldr r3, [r4, #296]
-.L2487:
+.L2384:
+ ldrb r2, [r5, #7] @ zero_extendqisi2
+ cmp r2, #0
+ bne .L2385
+ ldr r3, [r4, #300]
movw r2, #65535
strh r2, [r3, r6, lsl #1] @ movhi
- b .L2438
-.L2460:
- ldr r2, .L2492+16
- ldrh r2, [r2, #2388]
- strh r6, [r5] @ movhi
- smulbb r3, r2, r3
+ b .L2362
+.L2391:
+ movs r1, #0
+ b .L2365
+.L2367:
+ ldr r3, [r4, #300]
+ strh fp, [r3, r9, lsl #1] @ movhi
+ b .L2362
+.L2370:
+ str lr, [r3, #8]
+ str lr, [r3, #12]
+ ldrh r1, [ip], #2
+ cmp r1, fp
+ beq .L2369
+ ldr r2, [sp, #8]
+ lsls r1, r1, #10
+ mla r2, r2, r8, r0
+ add r8, r8, #1
+ uxth r8, r8
+ str r1, [r2, #4]
+.L2369:
+ adds r3, r3, #36
+ b .L2368
+.L2373:
+ movs r3, #2
+ b .L2407
+.L2372:
+ ldrh r3, [r2, r6, lsl #1]
+ mov r0, r9
+ adds r3, r3, #1
+ strh r3, [r2, r6, lsl #1] @ movhi
+ ldr r3, [r4, #520]
+ adds r3, r3, #1
+ str r3, [r4, #520]
+ bl ftl_set_blk_mode.part.9
+ b .L2375
+.L2378:
+ ldr r1, [r3, #-36]
+ bic r1, r1, #1020
+ bic r1, r1, #3
+ str r1, [r3, #-36]
+ b .L2377
+.L2383:
+ mul r2, r1, fp
+ ldr r0, [r4, #232]
+ add ip, r0, r2
+ ldr r2, [r0, r2]
+ adds r0, r2, #1
+ bne .L2382
+ 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, [r10] @ movhi
+ ldrb r2, [r5, #7] @ zero_extendqisi2
+ subs r2, r2, #1
+ strb r2, [r5, #7]
+.L2382:
+ add fp, fp, #1
+ add r10, r10, #2
+ b .L2381
+.L2385:
+ ldrh r3, [r7, #2390]
+ strh r9, [r5] @ movhi
+ smulbb r3, r3, r2
movs r2, #0
strh r2, [r5, #2] @ movhi
strb r2, [r5, #6]
@@ -15188,28 +15475,30 @@
str r2, [r5, #12]
adds r2, r2, #1
str r2, [r4, #508]
- ldr r2, [r4, #296]
+ ldr r2, [r4, #300]
ldrh r1, [r5]
strh r3, [r2, r1, lsl #1] @ movhi
-.L2437:
+.L2361:
movs r0, #0
add sp, sp, #20
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L2493:
+.L2410:
.align 2
-.L2492:
+.L2409:
.word .LANCHOR2
- .word .LANCHOR2+412
- .word .LANCHOR2+308
- .word .LANCHOR2+316
+ .word .LANCHOR2+416
.word .LANCHOR0
+ .word .LANCHOR2+312
+ .word .LANCHOR2+320
.fnend
.size allocate_data_superblock, .-allocate_data_superblock
.align 1
.global FtlGcFreeBadSuperBlk
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FtlGcFreeBadSuperBlk, %function
FtlGcFreeBadSuperBlk:
.fnstart
@@ -15218,209 +15507,212 @@
push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.pad #12
- ldr r5, .L2507
- str r0, [sp]
- ldrh r3, [r5, #1182]
- cmp r3, #0
- beq .L2496
- ldr r7, .L2507+4
- mov r10, #0
- mov r8, r5
-.L2495:
- ldrh r2, [r7, #2320]
- uxth r3, r10
- cmp r2, r3
- bls .L2504
- add r3, r3, r7
- ldr r1, [sp]
- mov fp, #0
- ldrb r0, [r3, #2348] @ zero_extendqisi2
- bl V2P_block
- ldr r2, .L2507+8
mov r9, r0
-.L2497:
- ldrh r3, [r5, #1182]
- uxth r4, fp
- cmp r3, r4
- bls .L2505
- lsls r6, r4, #1
- add r3, r8, r6
- ldrh r3, [r3, #1184]
- cmp r3, r9
- bne .L2498
- mov r1, r9
- ldr r0, .L2507+12
- str r2, [sp, #4]
- bl printk
- mov r0, r9
- bl FtlBbmMapBadBlock
- bl FtlBbmTblFlush
- ldrh r1, [r8, #1182]
- ldr r2, [sp, #4]
- adds r3, r2, r6
-.L2499:
- cmp r4, r1
- bcs .L2506
- ldrh r0, [r3, #2]
- adds r4, r4, #1
- uxth r4, r4
- strh r0, [r3], #2 @ movhi
- b .L2499
-.L2506:
- subs r1, r1, #1
- strh r1, [r5, #1182] @ movhi
-.L2498:
- add fp, fp, #1
- b .L2497
-.L2505:
- add r10, r10, #1
- b .L2495
-.L2504:
+ ldr r4, .L2423
+ ldrh r3, [r4, #1182]
+ cbz r3, .L2412
+ ldr r8, .L2423+8
+ movs r6, #0
+ add r10, r4, #1184
+.L2413:
+ ldrh r2, [r8, #2324]
+ uxth r3, r6
+ cmp r2, r3
+ bhi .L2419
bl FtlGcReFreshBadBlk
-.L2496:
+.L2412:
movs r0, #0
add sp, sp, #12
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L2508:
+.L2419:
+ uxtah r3, r8, r6
+ mov r1, r9
+ movs r7, #0
+ ldrb r0, [r3, #2350] @ zero_extendqisi2
+ bl V2P_block
+ ldr r2, .L2423+4
+ mov fp, r0
+.L2414:
+ ldrh r3, [r4, #1182]
+ uxth r5, r7
+ cmp r3, r5
+ bhi .L2418
+ adds r6, r6, #1
+ b .L2413
+.L2418:
+ uxth r3, r7
+ add r1, r4, r3, lsl #1
+ ldrh r1, [r1, #1184]
+ cmp r1, fp
+ bne .L2415
+ mov r1, fp
+ mov r0, r2
+ str r3, [sp, #4]
+ str r2, [sp]
+ bl printk
+ mov r0, fp
+ bl FtlBbmMapBadBlock
+ bl FtlBbmTblFlush
+ ldr r3, [sp, #4]
+ ldrh r1, [r4, #1182]
+ ldr r2, [sp]
+ add r3, r10, r3, lsl #1
+.L2416:
+ cmp r5, r1
+ bcc .L2417
+ subs r1, r1, #1
+ strh r1, [r4, #1182] @ movhi
+.L2415:
+ adds r7, r7, #1
+ b .L2414
+.L2417:
+ ldrh r0, [r3, #2]!
+ adds r5, r5, #1
+ uxth r5, r5
+ strh r0, [r3, #-2] @ movhi
+ b .L2416
+.L2424:
.align 2
-.L2507:
+.L2423:
.word .LANCHOR2
- .word .LANCHOR0
- .word .LANCHOR2+1184
.word .LC129
+ .word .LANCHOR0
.fnend
.size FtlGcFreeBadSuperBlk, .-FtlGcFreeBadSuperBlk
.align 1
.global update_vpc_list
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type update_vpc_list, %function
update_vpc_list:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r2, .L2518
+ ldr r2, .L2433
push {r3, r4, r5, lr}
.save {r3, r4, r5, lr}
mov r4, r0
- ldr r3, [r2, #296]
mov r5, r2
+ ldr r3, [r2, #300]
ldrh r3, [r3, r0, lsl #1]
- cbnz r3, .L2510
+ cbnz r3, .L2426
ldrh r1, [r2, #556]
cmp r1, r0
- bne .L2511
+ bne .L2427
movw r3, #65535
strh r3, [r2, #556] @ movhi
- b .L2512
-.L2511:
- ldrh r1, [r2, #316]
- cmp r1, r0
- beq .L2517
- ldrh r1, [r2, #364]
- cmp r1, r0
- beq .L2517
- ldrh r2, [r2, #412]
- cmp r2, r0
- beq .L2517
-.L2512:
+.L2428:
mov r1, r4
- ldr r0, .L2518+4
+ ldr r0, .L2433+4
bl List_remove_node
- ldrh r3, [r5, #304]
+ ldrh r3, [r5, #308]
mov r0, r4
subs r3, r3, #1
- strh r3, [r5, #304] @ movhi
+ strh r3, [r5, #308] @ movhi
bl free_data_superblock
mov r0, r4
bl FtlGcFreeBadSuperBlk
- movs r0, #1
+ movs r3, #1
+ b .L2425
+.L2427:
+ ldrh r1, [r2, #320]
+ cmp r1, r0
+ beq .L2425
+ ldrh r1, [r2, #368]
+ cmp r1, r0
+ beq .L2425
+ ldrh r2, [r2, #416]
+ cmp r2, r0
+ bne .L2428
+.L2425:
+ mov r0, r3
pop {r3, r4, r5, pc}
-.L2510:
+.L2426:
bl List_update_data_list
-.L2517:
- movs r0, #0
- pop {r3, r4, r5, pc}
-.L2519:
+ movs r3, #0
+ b .L2425
+.L2434:
.align 2
-.L2518:
+.L2433:
.word .LANCHOR2
- .word .LANCHOR2+292
+ .word .LANCHOR2+296
.fnend
.size update_vpc_list, .-update_vpc_list
.align 1
.global decrement_vpc_count
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type decrement_vpc_count, %function
decrement_vpc_count:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
+ push {r3, r4, r5, lr}
+ .save {r3, r4, r5, lr}
movw r3, #65535
cmp r0, r3
- push {r4, r5, r6, lr}
- .save {r4, r5, r6, lr}
mov r4, r0
- ldr r5, .L2530
- beq .L2521
- ldr r3, [r5, #296]
+ ldr r5, .L2445
+ beq .L2436
+ ldr r3, [r5, #300]
ldrh r2, [r3, r0, lsl #1]
- cbnz r2, .L2522
- mov r1, r4
- ldr r0, .L2530+4
+ cbnz r2, .L2437
+ mov r1, r0
+ ldr r0, .L2445+4
bl printk
- ldr r3, [r5, #296]
+ ldr r3, [r5, #300]
movs r2, #32
- add r0, r5, #308
mov r1, r4
+ add r0, r5, #312
strh r2, [r3, r4, lsl #1] @ movhi
bl test_node_in_list
- cbz r0, .L2523
+ cbz r0, .L2438
mov r1, r4
- add r0, r5, #308
+ add r0, r5, #312
bl List_remove_node
- ldrh r3, [r5, #312]
+ ldrh r3, [r5, #316]
mov r0, r4
subs r3, r3, #1
- strh r3, [r5, #312] @ movhi
+ strh r3, [r5, #316] @ movhi
bl INSERT_DATA_LIST
- ldr r3, [r5, #296]
- ldr r0, .L2530+8
+ ldr r3, [r5, #300]
mov r1, r4
+ ldr r0, .L2445+8
ldrh r2, [r3, r4, lsl #1]
bl printk
-.L2523:
+.L2438:
mov r0, r4
bl FtlGcRefreshBlock
- b .L2526
-.L2522:
+.L2441:
+ movs r0, #0
+ pop {r3, r4, r5, pc}
+.L2437:
subs r2, r2, #1
strh r2, [r3, r0, lsl #1] @ movhi
-.L2521:
+.L2436:
ldrh r0, [r5, #3460]
movw r3, #65535
- ldr r6, .L2530
cmp r0, r3
- bne .L2525
- strh r4, [r6, #3460] @ movhi
- b .L2526
-.L2525:
- cmp r0, r4
- beq .L2526
+ bne .L2440
+ strh r4, [r5, #3460] @ movhi
+ b .L2441
+.L2440:
+ cmp r4, r0
+ beq .L2441
bl update_vpc_list
- strh r4, [r6, #3460] @ movhi
adds r0, r0, #0
+ strh r4, [r5, #3460] @ movhi
it ne
movne r0, #1
- pop {r4, r5, r6, pc}
-.L2526:
- movs r0, #0
- pop {r4, r5, r6, pc}
-.L2531:
+ pop {r3, r4, r5, pc}
+.L2446:
.align 2
-.L2530:
+.L2445:
.word .LANCHOR2
.word .LC130
.word .LC131
@@ -15428,8 +15720,10 @@
.size decrement_vpc_count, .-decrement_vpc_count
.align 1
.global FtlSlcSuperblockCheck
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FtlSlcSuperblockCheck, %function
FtlSlcSuperblockCheck:
.fnstart
@@ -15440,161 +15734,157 @@
mov r4, r0
ldrh r3, [r0, #4]
cmp r3, #0
- beq .L2532
+ beq .L2447
ldrh r3, [r0]
- movw r5, #65535
- cmp r3, r5
- beq .L2532
+ movw r6, #65535
+ cmp r3, r6
+ beq .L2447
ldrb r3, [r0, #6] @ zero_extendqisi2
- ldr r7, .L2544
+ ldr r5, .L2458
+ ldr r7, .L2458+4
adds r3, r3, #8
- ldr r6, .L2544+4
ldrh r3, [r0, r3, lsl #1]
-.L2536:
- cmp r3, r5
- bne .L2543
-.L2538:
- ldrb r3, [r4, #6] @ zero_extendqisi2
- ldrh r2, [r7, #2320]
- adds r3, r3, #1
- uxtb r3, r3
- strb r3, [r4, #6]
- cmp r2, r3
- itttt eq
- ldrheq r3, [r4, #2]
- addeq r3, r3, #1
- strheq r3, [r4, #2] @ movhi
- moveq r3, #0
- it eq
- strbeq r3, [r4, #6]
- ldrb r3, [r4, #6] @ zero_extendqisi2
- adds r3, r3, #8
- ldrh r3, [r4, r3, lsl #1]
- b .L2536
-.L2543:
- ldrb r1, [r4, #8] @ zero_extendqisi2
- cmp r1, #1
- bne .L2539
- ldrb r3, [r7, #144] @ zero_extendqisi2
- cbnz r3, .L2539
+.L2451:
+ cmp r3, r6
+ beq .L2453
+ ldrb r2, [r4, #8] @ zero_extendqisi2
+ cmp r2, #1
+ bne .L2454
+ ldrb r3, [r5, #152] @ zero_extendqisi2
+ cbnz r3, .L2454
ldrh r3, [r4, #2]
- add r3, r6, r3, lsl #1
+ add r3, r7, r3, lsl #1
ldrh r3, [r3, #1220]
- cmp r3, r5
- bne .L2539
+ cmp r3, r6
+ bne .L2454
ldrh r3, [r4, #4]
ldrh r0, [r4]
subs r3, r3, #1
strh r3, [r4, #4] @ movhi
bl decrement_vpc_count
ldrh r2, [r4, #4]
- cmp r2, #0
- bne .L2538
+ cbnz r2, .L2453
ldrh r3, [r4, #2]
strb r2, [r4, #6]
adds r3, r3, #1
strh r3, [r4, #2] @ movhi
pop {r3, r4, r5, r6, r7, pc}
-.L2539:
- ldr r2, .L2544
- ldrb r3, [r2, #144] @ zero_extendqisi2
- cbz r3, .L2532
- cmp r1, #1
- bne .L2532
- ldrh r1, [r4, #2]
- ldrh r3, [r2, #2390]
- cmp r1, r3
- bcc .L2532
- ldr r3, .L2544+4
- ldrh r0, [r4]
- ldrh r5, [r4, #4]
- ldr r1, [r3, #296]
- ldrh r3, [r1, r0, lsl #1]
- subs r3, r3, r5
- strh r3, [r1, r0, lsl #1] @ movhi
- ldrh r2, [r2, #2388]
+.L2453:
+ ldrb r3, [r4, #6] @ zero_extendqisi2
+ ldrh r2, [r5, #2324]
+ adds r3, r3, #1
+ uxtb r3, r3
+ cmp r2, r3
+ strb r3, [r4, #6]
+ bne .L2452
+ ldrh r3, [r4, #2]
+ adds r3, r3, #1
+ strh r3, [r4, #2] @ movhi
movs r3, #0
+ strb r3, [r4, #6]
+.L2452:
+ ldrb r3, [r4, #6] @ zero_extendqisi2
+ adds r3, r3, #8
+ ldrh r3, [r4, r3, lsl #1]
+ b .L2451
+.L2454:
+ ldrb r3, [r5, #152] @ zero_extendqisi2
+ cbz r3, .L2447
+ cmp r2, #1
+ bne .L2447
+ ldrh r2, [r4, #2]
+ ldrh r3, [r5, #2392]
+ cmp r2, r3
+ bcc .L2447
+ ldr r3, .L2458+4
+ ldrh r1, [r4]
+ ldrh r0, [r4, #4]
+ ldr r2, [r3, #300]
+ ldrh r3, [r2, r1, lsl #1]
+ subs r3, r3, r0
+ strh r3, [r2, r1, lsl #1] @ movhi
+ movs r3, #0
+ ldrh r2, [r5, #2390]
strh r3, [r4, #4] @ movhi
strb r3, [r4, #6]
strh r2, [r4, #2] @ movhi
-.L2532:
+.L2447:
pop {r3, r4, r5, r6, r7, pc}
-.L2545:
+.L2459:
.align 2
-.L2544:
+.L2458:
.word .LANCHOR0
.word .LANCHOR2
.fnend
.size FtlSlcSuperblockCheck, .-FtlSlcSuperblockCheck
.align 1
.global get_new_active_ppa
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type get_new_active_ppa, %function
get_new_active_ppa:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
+ movs r3, #0
push {r4, r5, r6, r7, r8, lr}
.save {r4, r5, r6, r7, r8, lr}
- movs r3, #0
strb r3, [r0, #10]
mov r4, r0
- ldrb r3, [r0, #6] @ zero_extendqisi2
movw r7, #65535
- ldr r8, .L2563+4
+ ldrb r3, [r0, #6] @ zero_extendqisi2
+ ldr r5, .L2475
+ ldr r6, .L2475+4
adds r3, r3, #8
- ldr r5, .L2563
ldrh r2, [r0, r3, lsl #1]
-.L2547:
+.L2461:
cmp r2, r7
- ldr r6, .L2563+4
- bne .L2562
-.L2548:
- ldrb r3, [r4, #6] @ zero_extendqisi2
- ldrh r2, [r8, #2320]
- adds r3, r3, #1
- uxtb r3, r3
- strb r3, [r4, #6]
- cmp r2, r3
- itttt eq
- ldrheq r3, [r4, #2]
- addeq r3, r3, #1
- strheq r3, [r4, #2] @ movhi
- moveq r3, #0
- it eq
- strbeq r3, [r4, #6]
- ldrb r3, [r4, #6] @ zero_extendqisi2
- adds r3, r3, #8
- ldrh r2, [r4, r3, lsl #1]
- b .L2547
-.L2562:
+ beq .L2462
ldrb r3, [r4, #8] @ zero_extendqisi2
ldrh r1, [r4, #2]
cmp r3, #1
ldrh r3, [r4, #4]
- bne .L2550
- ldrb r0, [r8, #144] @ zero_extendqisi2
- cbnz r0, .L2550
- add r0, r5, r1, lsl #1
+ bne .L2464
+ ldrb r0, [r5, #152] @ zero_extendqisi2
+ cbnz r0, .L2464
+ add r0, r6, r1, lsl #1
ldrh r0, [r0, #1220]
cmp r0, r7
- bne .L2550
+ bne .L2464
subs r3, r3, #1
ldrh r0, [r4]
strh r3, [r4, #4] @ movhi
bl decrement_vpc_count
- b .L2548
-.L2550:
+.L2462:
+ ldrb r3, [r4, #6] @ zero_extendqisi2
+ ldrh r2, [r5, #2324]
+ adds r3, r3, #1
+ uxtb r3, r3
+ cmp r2, r3
+ strb r3, [r4, #6]
+ bne .L2463
+ ldrh r3, [r4, #2]
+ adds r3, r3, #1
+ strh r3, [r4, #2] @ movhi
+ movs r3, #0
+ strb r3, [r4, #6]
+.L2463:
+ ldrb r3, [r4, #6] @ zero_extendqisi2
+ adds r3, r3, #8
+ ldrh r2, [r4, r3, lsl #1]
+ b .L2461
+.L2464:
+ ldr r8, .L2475+4
+ orr r6, r1, r2, lsl #10
movw r7, #65535
- orr r5, r1, r2, lsl #10
- mov r8, r7
subs r3, r3, #1
strh r3, [r4, #4] @ movhi
-.L2551:
+.L2465:
ldrb r3, [r4, #6] @ zero_extendqisi2
- ldrh r1, [r6, #2320]
-.L2553:
+ ldrh r1, [r5, #2324]
+.L2467:
adds r3, r3, #1
uxtb r3, r3
cmp r3, r1
@@ -15606,60 +15896,57 @@
add r2, r3, #8
ldrh r2, [r4, r2, lsl #1]
cmp r2, r7
- beq .L2553
+ beq .L2467
strb r3, [r4, #6]
ldrb r3, [r4, #8] @ zero_extendqisi2
cmp r3, #1
- bne .L2558
- ldrb r3, [r6, #144] @ zero_extendqisi2
- cbnz r3, .L2555
- ldrh r2, [r4, #2]
- ldr r3, .L2563
- add r3, r3, r2, lsl #1
+ bne .L2460
+ ldrb r2, [r5, #152] @ zero_extendqisi2
+ ldrh r3, [r4, #2]
+ cbnz r2, .L2469
+ add r3, r8, r3, lsl #1
ldrh r3, [r3, #1220]
- cmp r3, r8
- bne .L2555
+ cmp r3, r7
+ bne .L2460
ldrh r3, [r4, #4]
- cbz r3, .L2555
+ cbz r3, .L2460
subs r3, r3, #1
ldrh r0, [r4]
strh r3, [r4, #4] @ movhi
bl decrement_vpc_count
- b .L2551
-.L2555:
- ldrb r3, [r6, #144] @ zero_extendqisi2
- ldr r2, .L2563+4
- cbz r3, .L2558
- ldrh r1, [r4, #2]
- ldrh r3, [r2, #2390]
- cmp r1, r3
- bcc .L2558
- ldr r3, .L2563
- ldrh r0, [r4]
- ldrh r6, [r4, #4]
- ldr r1, [r3, #296]
- ldrh r3, [r1, r0, lsl #1]
- subs r3, r3, r6
- strh r3, [r1, r0, lsl #1] @ movhi
- ldrh r2, [r2, #2388]
+ b .L2465
+.L2469:
+ ldrh r2, [r5, #2392]
+ cmp r3, r2
+ bcc .L2460
+ ldr r3, .L2475+4
+ ldrh r1, [r4]
+ ldrh r0, [r4, #4]
+ ldr r2, [r3, #300]
+ ldrh r3, [r2, r1, lsl #1]
+ subs r3, r3, r0
+ strh r3, [r2, r1, lsl #1] @ movhi
movs r3, #0
+ ldrh r2, [r5, #2390]
strh r3, [r4, #4] @ movhi
strb r3, [r4, #6]
strh r2, [r4, #2] @ movhi
-.L2558:
- mov r0, r5
+.L2460:
+ mov r0, r6
pop {r4, r5, r6, r7, r8, pc}
-.L2564:
+.L2476:
.align 2
-.L2563:
- .word .LANCHOR2
+.L2475:
.word .LANCHOR0
+ .word .LANCHOR2
.fnend
.size get_new_active_ppa, .-get_new_active_ppa
.align 1
.global FtlVpcTblFlush
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FtlVpcTblFlush, %function
FtlVpcTblFlush:
.fnstart
@@ -15667,249 +15954,245 @@
@ frame_needed = 0, uses_anonymous_args = 0
push {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
- ldr r4, .L2588
- ldr r3, [r4, #224]
+ ldr r4, .L2500
+ ldr r3, [r4, #228]
cmp r3, #0
- bne .L2567
- ldr r5, .L2588+4
+ bne .L2479
+ ldr r5, .L2500+4
movs r1, #255
ldr r2, [r4, #3316]
ldr r7, [r4, #3340]
- ldr r6, .L2588+8
- str r2, [r5, #1256]
+ ldr r6, .L2500+8
+ str r2, [r5, #1264]
ldrh r2, [r4, #540]
- str r7, [r5, #1260]
+ str r7, [r5, #1268]
str r3, [r7, #12]
strh r2, [r7, #2] @ movhi
movw r2, #61604
strh r2, [r7] @ movhi
ldr r2, [r4, #548]
str r3, [r7, #8]
- ldr r3, .L2588+12
+ ldr r3, .L2500+12
str r2, [r7, #4]
- ldrh r2, [r4, #318]
- str r3, [r4, #240]
- ldr r3, .L2588+16
+ ldrh r2, [r4, #322]
str r3, [r4, #244]
+ ldr r3, .L2500+16
+ str r3, [r4, #248]
ldrh r3, [r4, #546]
- strh r3, [r4, #248] @ movhi
- ldrh r3, [r6, #2342]
- strb r3, [r4, #250]
- ldrh r3, [r4, #316]
- strh r3, [r4, #254] @ movhi
- ldrb r3, [r4, #322] @ zero_extendqisi2
- orr r3, r3, r2, lsl #6
- strh r3, [r4, #256] @ movhi
- ldrb r3, [r4, #324] @ zero_extendqisi2
- ldrh r2, [r4, #366]
- strb r3, [r4, #251]
- ldrh r3, [r4, #364]
+ strh r3, [r4, #252] @ movhi
+ ldrh r3, [r6, #2346]
+ strb r3, [r4, #254]
+ ldrh r3, [r4, #320]
strh r3, [r4, #258] @ movhi
- ldrb r3, [r4, #370] @ zero_extendqisi2
+ ldrb r3, [r4, #326] @ zero_extendqisi2
orr r3, r3, r2, lsl #6
+ ldrh r2, [r4, #370]
strh r3, [r4, #260] @ movhi
- ldrb r3, [r4, #372] @ zero_extendqisi2
- strb r3, [r4, #252]
- ldrh r3, [r4, #412]
+ ldrb r3, [r4, #328] @ zero_extendqisi2
+ strb r3, [r4, #255]
+ ldrh r3, [r4, #368]
strh r3, [r4, #262] @ movhi
- ldrh r2, [r4, #414]
- ldrb r3, [r4, #418] @ zero_extendqisi2
- ldr r0, [r5, #1256]
+ ldrb r3, [r4, #374] @ zero_extendqisi2
orr r3, r3, r2, lsl #6
strh r3, [r4, #264] @ movhi
- ldrb r3, [r4, #420] @ zero_extendqisi2
- ldrh r2, [r6, #2398]
- strb r3, [r4, #253]
+ ldrb r3, [r4, #376] @ zero_extendqisi2
+ strb r3, [r4, #256]
+ ldrh r3, [r4, #416]
+ strh r3, [r4, #266] @ movhi
+ ldrh r2, [r4, #418]
+ ldrb r3, [r4, #422] @ zero_extendqisi2
+ ldr r0, [r5, #1264]
+ orr r3, r3, r2, lsl #6
+ ldrh r2, [r6, #2400]
+ strh r3, [r4, #268] @ movhi
+ ldrb r3, [r4, #424] @ zero_extendqisi2
+ strb r3, [r4, #257]
ldr r3, [r4, #516]
- str r3, [r4, #272]
- ldr r3, [r4, #508]
- str r3, [r4, #280]
- ldr r3, [r4, #512]
str r3, [r4, #276]
+ ldr r3, [r4, #508]
+ str r3, [r4, #284]
+ ldr r3, [r4, #512]
+ str r3, [r4, #280]
ldrh r3, [r4, #1174]
- strh r3, [r4, #284] @ movhi
+ strh r3, [r4, #288] @ movhi
ldrh r3, [r4, #1176]
- strh r3, [r4, #286] @ movhi
+ strh r3, [r4, #290] @ movhi
bl ftl_memset
- add r1, r4, #240
movs r2, #48
- ldr r0, [r5, #1256]
+ add r1, r4, #244
+ ldr r0, [r5, #1264]
bl ftl_memcpy
- ldrh r2, [r6, #2328]
- ldr r0, [r5, #1256]
- ldr r1, [r4, #296]
+ ldrh r2, [r6, #2332]
+ ldr r0, [r5, #1264]
+ ldr r1, [r4, #300]
lsls r2, r2, #1
adds r0, r0, #48
bl ftl_memcpy
- ldrh r2, [r6, #2328]
- ldr r0, [r5, #1256]
- ldr r1, [r4, #472]
- lsls r3, r2, #1
- lsrs r2, r2, #3
- adds r3, r3, #51
+ ldrh r0, [r6, #2332]
+ ldr r3, [r5, #1264]
+ ldr r1, [r6, #32]
+ lsrs r2, r0, #3
+ lsls r0, r0, #1
+ adds r0, r0, #51
adds r2, r2, #4
- bic r3, r3, #3
+ bic r0, r0, #3
add r0, r0, r3
bl ftl_memcpy
- ldrh r3, [r6, #2432]
- cbz r3, .L2568
- ldrh r2, [r6, #2328]
- ldr r0, [r5, #1256]
+ ldrh r3, [r6, #2436]
+ cbz r3, .L2480
+ ldrh r0, [r6, #2332]
+ ldrh r2, [r6, #2428]
ldr r1, [r4, #3388]
- lsrs r3, r2, #3
- add r3, r3, r2, lsl #1
- ldrh r2, [r6, #2424]
+ lsrs r3, r0, #3
+ lsls r2, r2, #2
+ add r3, r3, r0, lsl #1
+ ldr r0, [r5, #1264]
adds r3, r3, #52
ubfx r3, r3, #2, #14
- lsls r2, r2, #2
add r0, r0, r3, lsl #2
bl ftl_memcpy
-.L2568:
- movs r0, #0
- ldr r10, .L2588
- bl FtlUpdateVaildLpn
- ldr fp, .L2588+8
+.L2480:
+ ldr fp, .L2500+24
mov r8, #0
movw r9, #65535
-.L2569:
+ mov r10, r8
+ movs r0, #0
+ bl FtlUpdateVaildLpn
+.L2481:
ldr r3, [r4, #3316]
- ldrh r2, [r4, #540]
ldrh r1, [r4, #542]
- str r3, [r5, #1256]
+ ldrh r2, [r4, #540]
+ str r3, [r5, #1264]
ldr r3, [r4, #3340]
- str r3, [r5, #1260]
+ str r3, [r5, #1268]
orr r3, r1, r2, lsl #10
- str r3, [r5, #1252]
- ldrh r3, [r6, #2390]
+ str r3, [r5, #1260]
+ ldrh r3, [r6, #2392]
subs r3, r3, #1
cmp r1, r3
- blt .L2570
- movs r3, #0
- ldrh r9, [r10, #544]
- strh r3, [r10, #542] @ movhi
- strh r2, [r10, #544] @ movhi
+ blt .L2482
+ ldrh r9, [r4, #544]
+ strh r10, [r4, #542] @ movhi
+ strh r2, [r4, #544] @ movhi
bl FtlFreeSysBlkQueueOut
- ldr r3, [r10, #508]
- ldr r1, .L2588+4
+ ldr r3, [r4, #508]
+ strh r0, [r4, #540] @ movhi
adds r2, r3, #1
- str r2, [r10, #508]
- str r3, [r10, #548]
+ str r3, [r4, #548]
+ str r2, [r4, #508]
lsls r2, r0, #10
- strh r0, [r10, #540] @ movhi
- str r2, [r1, #1252]
+ str r2, [r5, #1260]
str r3, [r7, #4]
strh r0, [r7, #2] @ movhi
-.L2570:
- ldrb r3, [r6] @ zero_extendqisi2
- cbz r3, .L2571
+.L2482:
+ ldrb r3, [r6, #36] @ zero_extendqisi2
+ cbz r3, .L2483
+ ldrh r1, [r6, #2400]
ldr r0, [r4, #3316]
- ldrh r1, [fp, #2398]
bl js_hash
str r0, [r7, #12]
-.L2571:
- movs r1, #1
- ldr r0, .L2588+20
- mov r2, r1
- mov r3, r1
+.L2483:
+ movs r3, #1
+ mov r0, fp
+ mov r2, r3
+ mov r1, r3
bl FlashProgPages
ldrh r3, [r4, #542]
- ldr r2, [r5, #1248]
+ ldr r2, [r5, #1256]
adds r3, r3, #1
- adds r1, r2, #1
uxth r3, r3
+ adds r1, r2, #1
strh r3, [r4, #542] @ movhi
- bne .L2572
+ bne .L2484
cmp r3, #1
add r8, r8, #1
it eq
- ldrheq r3, [r6, #2390]
+ ldrheq r3, [r6, #2392]
uxth r8, r8
itt eq
addeq r3, r3, #-1
- strheq r3, [r10, #542] @ movhi
+ strheq r3, [r4, #542] @ movhi
cmp r8, #3
- bls .L2569
- ldr r0, .L2588+24
+ bls .L2481
mov r2, r8
- ldr r1, [r5, #1252]
+ ldr r1, [r5, #1260]
+ ldr r0, .L2500+20
bl printk
movs r3, #1
- str r3, [r4, #224]
- b .L2567
-.L2572:
- cmp r3, #1
- beq .L2569
- cmp r2, #256
- beq .L2569
- movw r3, #65535
- cmp r9, r3
- beq .L2567
- mov r0, r9
- movs r1, #1
- bl FtlFreeSysBlkQueueIn
-.L2567:
+ str r3, [r4, #228]
+.L2479:
movs r0, #0
pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L2589:
+.L2484:
+ cmp r3, #1
+ beq .L2481
+ cmp r2, #256
+ beq .L2481
+ movw r3, #65535
+ cmp r9, r3
+ beq .L2479
+ movs r1, #1
+ mov r0, r9
+ bl FtlFreeSysBlkQueueIn
+ b .L2479
+.L2501:
.align 2
-.L2588:
+.L2500:
.word .LANCHOR2
.word .LANCHOR4
.word .LANCHOR0
.word 1179929683
.word 1342177379
- .word .LANCHOR4+1248
.word .LC132
+ .word .LANCHOR4+1256
.fnend
.size FtlVpcTblFlush, .-FtlVpcTblFlush
.align 1
.global FtlSuperblockPowerLostFix
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FtlSuperblockPowerLostFix, %function
FtlSuperblockPowerLostFix:
.fnstart
@ args = 0, pretend = 0, frame = 40
@ 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}
+ push {r4, r5, r6, r7, r8, r9, r10, lr}
+ .save {r4, r5, r6, r7, r8, r9, r10, lr}
mov r4, r0
- ldr r5, .L2606
- .pad #44
- sub sp, sp, #44
- ldr r3, [r5, #224]
- cmp r3, #0
- bne .L2590
- ldr r2, .L2606+4
- ldrb r6, [r2, #144] @ zero_extendqisi2
- mov r8, r2
- cbz r6, .L2605
- ldrb r6, [r0, #8] @ zero_extendqisi2
- cmp r6, #1
- bne .L2601
- ldrh fp, [r0, #4]
- b .L2592
-.L2601:
- mov r6, r3
-.L2605:
- mov fp, #12
-.L2592:
- ldr r7, [r5, #3340]
+ ldr r5, .L2517
+ .pad #40
+ sub sp, sp, #40
+ ldr r10, [r5, #228]
+ cmp r10, #0
+ bne .L2502
+ ldr r3, .L2517+4
+ ldrb r2, [r3, #152] @ zero_extendqisi2
+ mov r8, r3
+ cmp r2, #0
+ beq .L2513
+ ldrb r3, [r0, #8] @ zero_extendqisi2
+ cmp r3, #1
+ bne .L2513
+ ldrh r7, [r0, #4]
+ mov r10, r3
+.L2504:
mov r3, #-1
+ ldr r6, [r5, #3340]
str r3, [sp, #20]
mov r9, #0
ldr r3, [r5, #3316]
movw r2, #61589
- str r7, [sp, #16]
- ldr r10, .L2606
+ str r6, [sp, #16]
str r3, [sp, #12]
mvn r3, #2
- str r3, [r7, #8]
+ str r3, [r6, #8]
mvn r3, #1
- str r3, [r7, #12]
+ str r3, [r6, #12]
ldrh r3, [r4]
- strh r9, [r7] @ movhi
- strh r3, [r7, #2] @ movhi
+ strh r9, [r6] @ movhi
+ strh r3, [r6, #2] @ movhi
ldr r3, [r5, #3316]
str r2, [r3]
add r2, r2, #304087040
@@ -15917,60 +16200,64 @@
add r2, r2, #1269760
addw r2, r2, #1507
str r2, [r3, #4]
-.L2593:
- adds fp, fp, #-1
- bcc .L2596
+.L2505:
+ adds r7, r7, #-1
+ bcc .L2508
ldrh r3, [r4, #4]
- cbnz r3, .L2594
-.L2596:
- ldr r2, [r5, #296]
+ cbnz r3, .L2506
+.L2508:
+ ldr r2, [r5, #300]
ldrh r1, [r4]
ldrh r0, [r4, #4]
ldrh r3, [r2, r1, lsl #1]
subs r3, r3, r0
strh r3, [r2, r1, lsl #1] @ movhi
- ldrh r3, [r8, #2388]
+ ldrh r3, [r8, #2390]
strh r3, [r4, #2] @ movhi
movs r3, #0
strb r3, [r4, #6]
strh r3, [r4, #4] @ movhi
- b .L2590
-.L2594:
+.L2502:
+ add sp, sp, #40
+ @ sp needed
+ pop {r4, r5, r6, r7, r8, r9, r10, pc}
+.L2513:
+ movs r7, #12
+ b .L2504
+.L2506:
mov r0, r4
bl get_new_active_ppa
str r0, [sp, #8]
adds r0, r0, #1
- beq .L2596
+ beq .L2508
ldr r3, [r5, #512]
movs r1, #1
add r0, sp, #4
- str r3, [r7, #4]
+ str r3, [r6, #4]
adds r3, r3, #1
adds r2, r3, #1
- mov r2, r6
+ mov r2, r10
it eq
moveq r3, r9
- str r3, [r10, #512]
+ str r3, [r5, #512]
movs r3, #0
bl FlashProgPages
ldrh r0, [r4]
bl decrement_vpc_count
- b .L2593
-.L2590:
- add sp, sp, #44
- @ sp needed
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L2607:
+ b .L2505
+.L2518:
.align 2
-.L2606:
+.L2517:
.word .LANCHOR2
.word .LANCHOR0
.fnend
.size FtlSuperblockPowerLostFix, .-FtlSuperblockPowerLostFix
.align 1
.global ftl_map_blk_gc
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type ftl_map_blk_gc, %function
ftl_map_blk_gc:
.fnstart
@@ -15981,20 +16268,19 @@
.pad #12
mov r4, r0
ldr r5, [r0, #12]
- ldr r8, [r0, #24]
+ ldr r10, [r0, #24]
bl ftl_free_no_use_map_blk
ldrh r3, [r4, #10]
ldrh r2, [r4, #8]
subs r3, r3, #4
cmp r2, r3
- blt .L2609
+ blt .L2520
uxth r0, r0
- ldrh r10, [r5, r0, lsl #1]
- cmp r10, #0
- beq .L2609
+ ldrh r9, [r5, r0, lsl #1]
+ cmp r9, #0
+ beq .L2520
ldr r3, [r4, #32]
- cmp r3, #0
- bne .L2609
+ cbnz r3, .L2520
movs r2, #1
str r2, [r4, #32]
strh r3, [r5, r0, lsl #1] @ movhi
@@ -16002,99 +16288,103 @@
ldrh r2, [r4, #2]
subs r3, r3, #1
strh r3, [r4, #8] @ movhi
- ldr r3, .L2621
- ldrh r3, [r3, #2390]
+ ldr r3, .L2531
+ ldrh r3, [r3, #2392]
cmp r2, r3
- bcc .L2610
+ bcc .L2521
mov r0, r4
bl ftl_map_blk_alloc_new_blk
-.L2610:
- ldr r6, .L2621+4
- mov fp, #0
- ldr r9, .L2621+16
-.L2611:
+.L2521:
+ ldr r5, .L2531+4
+ movs r6, #0
+ ldr fp, .L2531+16
+.L2522:
ldrh r2, [r4, #6]
- uxth r5, fp
- cmp r2, r5
- bls .L2620
- ldr r2, [r8, r5, lsl #2]
- add ip, r8, r5, lsl #2
- cmp r10, r2, lsr #10
- bne .L2612
- ldr r2, [r9, #3320]
+ uxth r3, r6
+ cmp r2, r3
+ bhi .L2527
movs r1, #1
- ldr r7, [r9, #3340]
- ldr r0, .L2621+8
- str r2, [r6, #1256]
- str r7, [r6, #1260]
- ldr r2, [r8, r5, lsl #2]
- str ip, [sp, #4]
- str r2, [r6, #1252]
- mov r2, r1
- bl FlashReadPages
- ldr r2, [r6, #1248]
- adds r2, r2, #1
- ldr ip, [sp, #4]
- bne .L2613
-.L2615:
- movs r3, #0
- str r3, [ip]
- ldr r3, .L2621+4
- ldrh r2, [r7, #8]
- ldr r0, .L2621+12
- ldr r1, [r3, #1252]
- bl printk
- ldr r3, .L2621+16
- movs r2, #1
- str r2, [r3, #224]
- b .L2614
-.L2613:
- ldrh r1, [r7, #8]
- cmp r1, r5
- bne .L2615
- ldrh r0, [r7]
- ldrh r2, [r4, #4]
- cmp r0, r2
- bne .L2615
- mov r0, r4
- ldr r2, [r6, #1256]
- bl FtlMapWritePage
-.L2612:
- add fp, fp, #1
- b .L2611
-.L2620:
- mov r0, r10
- movs r1, #1
+ mov r0, r9
bl FtlFreeSysBlkQueueIn
movs r3, #0
str r3, [r4, #32]
-.L2609:
- ldr r3, .L2621
+.L2520:
+ ldr r3, .L2531
ldrh r2, [r4, #2]
- ldrh r3, [r3, #2390]
+ ldrh r3, [r3, #2392]
cmp r2, r3
- bcc .L2614
+ bcc .L2525
mov r0, r4
bl ftl_map_blk_alloc_new_blk
-.L2614:
+ b .L2525
+.L2527:
+ uxth r7, r6
+ add r2, r10, r7, lsl #2
+ str r2, [sp]
+ ldr r2, [r10, r7, lsl #2]
+ cmp r9, r2, lsr #10
+ bne .L2523
+ ldr r2, [fp, #3320]
+ ldr r8, [fp, #3340]
+ ldr r0, .L2531+8
+ str r2, [r5, #1264]
+ str r8, [r5, #1268]
+ ldr r2, [r10, r7, lsl #2]
+ str r3, [sp, #4]
+ str r2, [r5, #1260]
+ movs r2, #1
+ mov r1, r2
+ bl FlashReadPages
+ ldr r2, [r5, #1256]
+ ldr r3, [sp, #4]
+ adds r2, r2, #1
+ bne .L2524
+.L2526:
+ ldr r2, [sp]
+ movs r3, #0
+ ldr r0, .L2531+12
+ str r3, [r2]
+ ldrh r2, [r8, #8]
+ ldr r1, [r5, #1260]
+ bl printk
+ movs r3, #1
+ str r3, [fp, #228]
+.L2525:
movs r0, #0
add sp, sp, #12
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L2622:
+.L2524:
+ ldrh r2, [r8, #8]
+ cmp r2, r3
+ bne .L2526
+ ldrh r2, [r8]
+ ldrh r3, [r4, #4]
+ cmp r2, r3
+ bne .L2526
+ ldr r2, [r5, #1264]
+ mov r1, r7
+ mov r0, r4
+ bl FtlMapWritePage
+.L2523:
+ adds r6, r6, #1
+ b .L2522
+.L2532:
.align 2
-.L2621:
+.L2531:
.word .LANCHOR0
.word .LANCHOR4
- .word .LANCHOR4+1248
+ .word .LANCHOR4+1256
.word .LC133
.word .LANCHOR2
.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
@@ -16103,16 +16393,14 @@
push {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
mov r4, r0
- ldr r6, .L2634
- ldr r7, [r0, #12]
- ldr r10, [r0, #24]
- ldr r5, [r6, #224]
- cmp r5, #0
- bne .L2624
+ ldr r6, .L2543
+ ldr r5, [r6, #228]
+ cbnz r5, .L2534
ldrh r3, [r0]
movw r2, #65535
+ ldr r7, [r0, #12]
cmp r3, r2
- bne .L2625
+ bne .L2535
ldrh r3, [r0, #8]
adds r3, r3, #1
strh r3, [r0, #8] @ movhi
@@ -16120,88 +16408,92 @@
strh r0, [r7] @ movhi
ldr r3, [r4, #28]
strh r5, [r4, #2] @ movhi
- adds r3, r3, #1
strh r5, [r4] @ movhi
+ adds r3, r3, #1
str r3, [r4, #28]
- b .L2624
-.L2625:
- ldrh r9, [r7, r3, lsl #1]
+.L2534:
+ movs r0, #0
+ pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L2535:
+ ldrh r10, [r7, r3, lsl #1]
movs r1, #255
- ldr fp, .L2634+12
ldrh r3, [r0, #2]
+ ldr r8, .L2543+8
ldr r7, [r6, #3340]
- orr r3, r3, r9, lsl #10
- str r3, [fp, #1252]
+ ldr fp, [r0, #24]
+ orr r3, r3, r10, lsl #10
+ ldr r9, .L2543+12
+ str r7, [r8, #1268]
+ str r3, [r8, #1260]
ldr r3, [r6, #3316]
- str r7, [fp, #1260]
- ldr r8, .L2634+4
- str r3, [fp, #1256]
+ str r3, [r8, #1264]
ldr r3, [r0, #28]
str r3, [r7, #4]
movw r3, #64245
strh r3, [r7, #8] @ movhi
ldrh r3, [r0, #4]
- strh r9, [r7, #2] @ movhi
+ strh r10, [r7, #2] @ movhi
strh r3, [r7] @ movhi
- ldrh r2, [r8, #2390]
+ ldrh r2, [r9, #2392]
ldr r0, [r6, #3316]
lsls r2, r2, #3
bl ftl_memset
- mov r1, r5
-.L2626:
- ldrh r2, [r4, #6]
- uxth r3, r1
- cmp r2, r3
- bls .L2633
- ldr r2, [r10, r3, lsl #2]
- cmp r9, r2, lsr #10
- bne .L2627
- adds r5, r5, #1
- ldr r2, [r6, #3316]
- uxth r5, r5
- str r3, [r2, r5, lsl #3]
- ldr r2, [r10, r3, lsl #2]
- ldr r3, [r6, #3316]
- add r3, r3, r5, lsl #3
- str r2, [r3, #4]
-.L2627:
- adds r1, r1, #1
- b .L2626
-.L2633:
- ldrb r3, [r8] @ zero_extendqisi2
- cbz r3, .L2629
- ldr r3, .L2634+4
- ldr r0, [fp, #1256]
- ldrh r1, [r3, #2398]
+ mov r3, r5
+ mov r2, r5
+.L2536:
+ ldrh r0, [r4, #6]
+ uxth r1, r3
+ cmp r0, r1
+ bhi .L2538
+ ldrb r3, [r9, #36] @ zero_extendqisi2
+ cbz r3, .L2539
+ ldrh r1, [r9, #2400]
+ ldr r0, [r8, #1264]
bl js_hash
str r0, [r7, #12]
-.L2629:
- movs r1, #1
+.L2539:
+ movs r2, #1
movs r3, #0
- ldr r0, .L2634+8
- mov r2, r1
+ mov r1, r2
+ ldr r0, .L2543+4
bl FlashProgPages
ldrh r3, [r4, #2]
mov r0, r4
adds r3, r3, #1
strh r3, [r4, #2] @ movhi
bl ftl_map_blk_gc
-.L2624:
- movs r0, #0
- pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L2635:
+ b .L2534
+.L2538:
+ uxth r0, r3
+ ldr r1, [fp, r0, lsl #2]
+ cmp r10, r1, lsr #10
+ bne .L2537
+ ldr r1, [r6, #3316]
+ adds r2, r2, #1
+ uxth r2, r2
+ str r0, [r1, r2, lsl #3]
+ ldr r1, [r6, #3316]
+ ldr r0, [fp, r0, lsl #2]
+ add r1, r1, r2, lsl #3
+ str r0, [r1, #4]
+.L2537:
+ adds r3, r3, #1
+ b .L2536
+.L2544:
.align 2
-.L2634:
+.L2543:
.word .LANCHOR2
- .word .LANCHOR0
- .word .LANCHOR4+1248
+ .word .LANCHOR4+1256
.word .LANCHOR4
+ .word .LANCHOR0
.fnend
.size Ftl_write_map_blk_to_last_page, .-Ftl_write_map_blk_to_last_page
.align 1
.global FtlMapWritePage
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FtlMapWritePage, %function
FtlMapWritePage:
.fnstart
@@ -16210,142 +16502,140 @@
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 r6, #0
- ldr r7, .L2660
mov r4, r0
- mov r9, r1
+ ldr r8, .L2569+20
+ mov fp, r1
+ movs r6, #0
+ ldr r7, .L2569
+ mov r9, r8
str r2, [sp]
-.L2637:
- ldr r3, [r7, #492]
- ldr fp, .L2660+4
+.L2546:
+ ldr r3, [r8, #492]
adds r3, r3, #1
- str r3, [r7, #492]
- ldr r3, .L2660+4
+ str r3, [r8, #492]
+ ldrh r3, [r7, #2392]
ldrh r2, [r4, #2]
- ldrh r3, [r3, #2390]
subs r3, r3, #1
cmp r2, r3
- bge .L2638
+ bge .L2547
ldrh r2, [r4]
movw r3, #65535
cmp r2, r3
- bne .L2639
-.L2638:
+ bne .L2548
+.L2547:
mov r0, r4
bl Ftl_write_map_blk_to_last_page
-.L2639:
- ldr r3, .L2660
- ldr r1, [r3, #224]
+.L2548:
+ ldr r1, [r9, #228]
cmp r1, #0
- bne .L2655
+ bne .L2564
ldrh r2, [r4]
ldr r3, [r4, #12]
- ldr r5, .L2660+8
- ldr r0, [r7, #3340]
- ldrh r8, [r3, r2, lsl #1]
+ ldr r5, .L2569+4
+ ldr r0, [r9, #3340]
+ ldrh r10, [r3, r2, lsl #1]
movs r2, #16
ldrh r3, [r4, #2]
- mov r10, r5
- str r0, [r5, #1260]
- orr r3, r3, r8, lsl #10
- str r3, [r5, #1252]
+ str r0, [r5, #1268]
+ orr r3, r3, r10, lsl #10
+ str r3, [r5, #1260]
ldr r3, [sp]
- str r3, [r5, #1256]
+ str r3, [r5, #1264]
bl ftl_memset
+ ldr r3, [r5, #1268]
ldr r2, [r4, #28]
- ldr r3, [r5, #1260]
+ strh fp, [r3, #8] @ movhi
str r2, [r3, #4]
- strh r9, [r3, #8] @ movhi
ldrh r2, [r4, #4]
- strh r8, [r3, #2] @ movhi
- strh r2, [r3] @ movhi
- ldrb r2, [fp] @ zero_extendqisi2
- cbz r2, .L2641
str r3, [sp, #4]
- ldr r3, .L2660+4
- ldr r0, [r5, #1256]
- ldrh r1, [r3, #2398]
+ strh r10, [r3, #2] @ movhi
+ strh r2, [r3] @ movhi
+ ldrb r2, [r7, #36] @ zero_extendqisi2
+ cbz r2, .L2550
+ ldrh r1, [r7, #2400]
+ ldr r0, [r5, #1264]
bl js_hash
ldr r3, [sp, #4]
str r0, [r3, #12]
-.L2641:
- ldr ip, .L2660+8
- movs r1, #1
- add r0, ip, #1248
- mov r2, r1
- mov r3, r1
- str ip, [sp, #4]
+.L2550:
+ movs r3, #1
+ ldr r0, .L2569+8
+ mov r2, r3
+ mov r1, r3
bl FlashProgPages
ldrh r3, [r4, #2]
adds r3, r3, #1
uxth r3, r3
strh r3, [r4, #2] @ movhi
- ldr r2, [r5, #1248]
+ ldr r2, [r5, #1256]
adds r1, r2, #1
- ldr ip, [sp, #4]
- bne .L2642
- ldr r0, .L2660+12
+ bne .L2551
+ ldr r1, [r5, #1260]
adds r6, r6, #1
- ldr r1, [ip, #1252]
+ ldr r0, .L2569+12
+ uxth r6, r6
bl printk
ldrh r3, [r4, #2]
- uxth r6, r6
cmp r3, #2
ittt ls
- ldrhls r3, [fp, #2390]
+ ldrhls r3, [r7, #2392]
addls r3, r3, #-1
strhls r3, [r4, #2] @ movhi
cmp r6, #3
- bls .L2637
+ bls .L2546
+ ldr r3, .L2569+4
mov r2, r6
- ldr r0, .L2660+16
- ldr r1, [r10, #1252]
+ ldr r0, .L2569+16
+ ldr r1, [r3, #1260]
bl printk
- ldr r3, .L2660
- movs r2, #1
- str r2, [r3, #224]
- b .L2655
-.L2642:
- cbz r2, .L2645
- cmp r3, #1
- strh r8, [r4, #40] @ movhi
- bne .L2646
-.L2647:
- movs r3, #0
- str r3, [r4, #36]
- b .L2637
-.L2646:
- cmp r2, #256
- b .L2659
-.L2645:
- cmp r3, #1
-.L2659:
- beq .L2647
- ldr r3, [r4, #36]
- cmp r3, #0
- bne .L2647
- ldr r2, [r10, #1252]
- ldr r3, [r4, #24]
- str r2, [r3, r9, lsl #2]
-.L2655:
+ movs r3, #1
+ str r3, [r9, #228]
+.L2564:
movs r0, #0
add sp, sp, #12
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L2661:
+.L2551:
+ cbz r2, .L2554
+ cmp r3, #1
+ strh r10, [r4, #40] @ movhi
+ bne .L2555
+.L2556:
+ movs r3, #0
+ str r3, [r4, #36]
+ b .L2546
+.L2555:
+ cmp r2, #256
+.L2568:
+ beq .L2556
+ ldr r3, [r4, #36]
+ cmp r3, #0
+ bne .L2556
+ ldr r3, .L2569+4
+ ldr r2, [r3, #1260]
+ ldr r3, [r4, #24]
+ str r2, [r3, fp, lsl #2]
+ b .L2564
+.L2554:
+ cmp r3, #1
+ b .L2568
+.L2570:
.align 2
-.L2660:
- .word .LANCHOR2
+.L2569:
.word .LANCHOR0
.word .LANCHOR4
+ .word .LANCHOR4+1256
.word .LC134
.word .LC135
+ .word .LANCHOR2
.fnend
.size FtlMapWritePage, .-FtlMapWritePage
.align 1
.global flush_l2p_region
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type flush_l2p_region, %function
flush_l2p_region:
.fnstart
@@ -16354,31 +16644,33 @@
push {r3, r4, r5, lr}
.save {r3, r4, r5, lr}
movs r4, #12
- ldr r5, .L2663
+ ldr r5, .L2572
muls r4, r0, r4
+ ldr r3, [r5, #464]
add r0, r5, #3408
- ldr r3, [r5, #460]
adds r2, r3, r4
ldrh r1, [r3, r4]
ldr r2, [r2, #8]
bl FtlMapWritePage
- ldr r3, [r5, #460]
+ ldr r3, [r5, #464]
movs r0, #0
add r4, r4, r3
ldr r3, [r4, #4]
bic r3, r3, #-2147483648
str r3, [r4, #4]
pop {r3, r4, r5, pc}
-.L2664:
+.L2573:
.align 2
-.L2663:
+.L2572:
.word .LANCHOR2
.fnend
.size flush_l2p_region, .-flush_l2p_region
.align 1
.global FtlMapTblRecovery
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FtlMapTblRecovery, %function
FtlMapTblRecovery:
.fnstart
@@ -16388,225 +16680,79 @@
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.pad #36
sub sp, sp, #36
- ldr r3, [r0, #16]
+ ldr r3, [r0, #24]
mov r4, r0
- ldrh r9, [r0, #6]
movs r1, #0
- ldr r7, [r0, #24]
+ movs r7, #0
+ ldr fp, .L2615+8
+ str r3, [sp, #4]
+ ldr r3, [r0, #12]
+ ldr r5, .L2615
+ ldr r6, .L2615+4
+ str r3, [sp, #8]
+ ldr r3, [r0, #16]
+ str r3, [sp, #20]
+ ldrh r3, [r0, #6]
str r3, [sp, #12]
ldrh r3, [r0, #8]
- lsl r2, r9, #2
- ldr r8, [r0, #12]
- mov r0, r7
- ldr r10, .L2707+12
- str r3, [sp, #8]
- bl ftl_memset
- ldr r3, .L2707
- movs r0, #1
- ldr r2, .L2707+4
- str r0, [r4, #36]
- ldr r1, [r3, #3316]
- ldr r6, [r3, #3340]
- mov r5, r2
- str r1, [r2, #1256]
- movw r1, #65535
- str r6, [r2, #1260]
- strh r1, [r4] @ movhi
- strh r1, [r4, #2] @ movhi
- movs r1, #0
- str r1, [r4, #32]
- str r1, [r4, #28]
- str r1, [sp, #4]
- str r3, [sp, #20]
-.L2666:
- ldrh r2, [sp, #4]
- ldr r1, [sp, #8]
- ldr fp, .L2707+12
- sxth r3, r2
- cmp r3, r1
- bge .L2684
- ldr r1, [sp, #8]
- subs r1, r1, #1
- cmp r3, r1
- lsl r1, r3, #1
- bne .L2667
- ldrh r0, [r8, r3, lsl #1]
- str r2, [sp, #16]
- add r2, r8, r1
- movs r1, #1
- str r2, [sp, #4]
- str r3, [sp, #8]
- bl FtlGetLastWrittenPage
- ldr r10, .L2707+4
- mov r8, #0
- ldr r2, [sp, #16]
- adds r1, r0, #1
+ ldr r0, [sp, #4]
+ str r3, [sp, #16]
ldr r3, [sp, #12]
- sxth r0, r0
- strh r1, [r4, #2] @ movhi
+ lsls r2, r3, #2
+ bl ftl_memset
+ ldr r2, [fp, #3316]
+ ldr r8, [fp, #3340]
+ str r7, [r4, #32]
+ str r2, [r5, #1264]
+ movw r2, #65535
+ str r8, [r5, #1268]
strh r2, [r4] @ movhi
- mov r2, r3
+ strh r2, [r4, #2] @ movhi
+ movs r2, #1
+ str r7, [r4, #28]
+ str r2, [r4, #36]
+.L2575:
+ ldr r3, [sp, #16]
+ sxth r10, r7
+ cmp r10, r3
+ bge .L2594
+ ldr r3, [sp, #16]
+ lsl r9, r10, #1
+ subs r2, r3, #1
+ cmp r10, r2
+ bne .L2576
ldr r3, [sp, #8]
- ldr r3, [r2, r3, lsl #2]
- str r3, [r4, #28]
- adds r3, r0, #1
- str r3, [sp, #8]
-.L2668:
- ldr r3, [sp, #8]
- sxth r2, r8
- cmp r2, r3
- bge .L2684
- ldr r3, [sp, #4]
- ldr r0, .L2707+8
- ldrh r1, [r3]
- orr r2, r2, r1, lsl #10
movs r1, #1
- str r2, [r5, #1252]
- mov r2, r1
- bl FlashReadPages
- ldrb r2, [fp] @ zero_extendqisi2
- cbz r2, .L2669
- ldr r2, [r10, #1260]
- ldr r2, [r2, #12]
- cbz r2, .L2669
- ldr r1, .L2707+12
- ldr r0, [r10, #1256]
- str r2, [sp, #12]
- ldrh r1, [r1, #2398]
- bl js_hash
- ldr r2, [sp, #12]
- cmp r2, r0
- itt ne
- movne r2, #-1
- strne r2, [r10, #1248]
-.L2669:
- ldr r2, [r10, #1248]
- adds r2, r2, #1
- beq .L2670
- ldrh r2, [r6, #8]
- cmp r2, r9
- bcs .L2670
- ldrh r1, [r4, #4]
- ldrh r0, [r6]
- cmp r0, r1
- itt eq
- ldreq r1, [r10, #1252]
- streq r1, [r7, r2, lsl #2]
-.L2670:
- add r8, r8, #1
- b .L2668
-.L2684:
+ ldr fp, .L2615+12
+ ldrh r0, [r3, r10, lsl #1]
+ add r9, r9, r3
+ bl FtlGetLastWrittenPage
+ ldr r2, [sp, #20]
+ sxth r3, r0
+ adds r0, r0, #1
+ strh r7, [r4] @ movhi
+ strh r0, [r4, #2] @ movhi
+ sub r7, fp, #1256
+ ldr r2, [r2, r10, lsl #2]
+ mov r10, #0
+ adds r3, r3, #1
+ str r3, [sp, #8]
+ str r2, [r4, #28]
+.L2577:
+ ldr r3, [sp, #8]
+ sxth r2, r10
+ cmp r2, r3
+ blt .L2580
+.L2594:
mov r0, r4
bl ftl_free_no_use_map_blk
ldrh r2, [r4, #2]
- ldrh r3, [fp, #2390]
+ ldrh r3, [r6, #2392]
cmp r2, r3
- bne .L2673
+ bne .L2582
mov r0, r4
bl ftl_map_blk_alloc_new_blk
- b .L2673
-.L2667:
- ldr r2, [sp, #20]
- ldr r0, .L2707+8
- ldr r2, [r2, #3316]
- str r2, [r5, #1256]
- add r2, r8, r1
- str r2, [sp, #16]
- movs r1, #1
- ldrh r2, [r8, r3, lsl #1]
- ldrh r3, [r10, #2390]
- subs r3, r3, #1
- orr r3, r3, r2, lsl #10
- mov r2, r1
- str r3, [r5, #1252]
- bl FlashReadPages
- ldr r3, [r5, #1248]
- adds r3, r3, #1
- beq .L2686
- ldrh r2, [r6]
- ldrh r3, [r4, #4]
- cmp r2, r3
- bne .L2686
- ldrh r2, [r6, #8]
- movw r3, #64245
- cmp r2, r3
- bne .L2686
- movs r1, #0
- mov lr, #8
- mov ip, #4
-.L2675:
- uxth r3, r1
- ldrh r2, [r10, #2390]
- sxth r0, r3
- subs r2, r2, #1
- cmp r0, r2
- bge .L2678
- ldr r2, .L2707
- adds r1, r1, #1
- ldr r2, [r2, #3316]
- ldrh r0, [r2, r0, lsl #3]
- cmp r0, r9
- ittt cc
- smlabbcc r3, r3, lr, ip
- ldrcc r3, [r2, r3]
- strcc r3, [r7, r0, lsl #2]
- b .L2675
-.L2686:
- ldr r3, .L2707+4
- mov fp, #0
-.L2706:
- ldrh r1, [r10, #2390]
- sxth r2, fp
- cmp r2, r1
- bge .L2678
- ldr r1, [sp, #16]
- ldr r0, .L2707+8
- str r3, [sp, #24]
- ldrh r1, [r1]
- orr r2, r2, r1, lsl #10
- movs r1, #1
- str r2, [r3, #1252]
- mov r2, r1
- bl FlashReadPages
- ldrb r2, [r10] @ zero_extendqisi2
- ldr r3, [sp, #24]
- cbz r2, .L2679
- ldr r2, [r3, #1260]
- ldr r2, [r2, #12]
- cbz r2, .L2679
- ldr r0, [r3, #1256]
- ldrh r1, [r10, #2398]
- str r2, [sp, #28]
- bl js_hash
- ldr r2, [sp, #28]
- ldr r3, [sp, #24]
- cmp r2, r0
- itt ne
- movne r2, #-1
- strne r2, [r3, #1248]
-.L2679:
- ldr r2, .L2707+4
- ldr r2, [r2, #1248]
- adds r2, r2, #1
- beq .L2680
- ldrh r2, [r6, #8]
- cmp r2, r9
- bcs .L2680
- ldrh r1, [r4, #4]
- ldrh r0, [r6]
- cmp r0, r1
- itt eq
- ldreq r1, [r3, #1252]
- streq r1, [r7, r2, lsl #2]
-.L2680:
- add fp, fp, #1
- b .L2706
-.L2678:
- ldr r3, [sp, #4]
- adds r3, r3, #1
- str r3, [sp, #4]
- b .L2666
-.L2673:
+.L2582:
mov r0, r4
bl ftl_map_blk_gc
mov r0, r4
@@ -16615,19 +16761,163 @@
add sp, sp, #36
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L2708:
+.L2580:
+ ldrh r1, [r9]
+ mov r0, fp
+ orr r2, r2, r1, lsl #10
+ str r2, [r5, #1260]
+ movs r2, #1
+ mov r1, r2
+ bl FlashReadPages
+ ldrb r2, [r6, #36] @ zero_extendqisi2
+ cbz r2, .L2578
+ ldr r2, [r5, #1268]
+ ldr r2, [r2, #12]
+ str r2, [sp, #16]
+ cbz r2, .L2578
+ ldrh r1, [r6, #2400]
+ ldr r0, [r5, #1264]
+ bl js_hash
+ ldr r2, [sp, #16]
+ cmp r2, r0
+ itt ne
+ movne r2, #-1
+ strne r2, [r5, #1256]
+.L2578:
+ ldr r2, [r7, #1256]
+ adds r2, r2, #1
+ beq .L2579
+ ldrh r2, [r8, #8]
+ ldr r3, [sp, #12]
+ cmp r3, r2
+ bls .L2579
+ ldrh r1, [r4, #4]
+ ldrh r0, [r8]
+ cmp r0, r1
+ ittt eq
+ ldreq r1, [r7, #1260]
+ ldreq r3, [sp, #4]
+ streq r1, [r3, r2, lsl #2]
+.L2579:
+ add r10, r10, #1
+ b .L2577
+.L2576:
+ ldr r3, .L2615+8
+ ldr r0, .L2615+12
+ ldr r2, [r3, #3316]
+ ldr r3, [sp, #8]
+ str r2, [r5, #1264]
+ add r3, r3, r9
+ ldrh r2, [r6, #2392]
+ str r3, [sp, #24]
+ ldr r3, [sp, #8]
+ subs r2, r2, #1
+ ldrh r1, [r3, r10, lsl #1]
+ orr r2, r2, r1, lsl #10
+ str r2, [r5, #1260]
+ movs r2, #1
+ mov r1, r2
+ bl FlashReadPages
+ ldr r2, [r5, #1256]
+ adds r2, r2, #1
+ beq .L2596
+ ldrh r1, [r8]
+ ldrh r2, [r4, #4]
+ cmp r1, r2
+ bne .L2596
+ ldrh r1, [r8, #8]
+ movw r2, #64245
+ cmp r1, r2
+ beq .L2584
+.L2596:
+ ldr r9, .L2615
+ mov r10, #0
+.L2585:
+ ldrh r1, [r6, #2392]
+ sxth r2, r10
+ cmp r2, r1
+ bge .L2592
+ ldr r3, [sp, #24]
+ ldr r0, .L2615+12
+ ldrh r1, [r3]
+ orr r2, r2, r1, lsl #10
+ str r2, [r9, #1260]
+ movs r2, #1
+ mov r1, r2
+ bl FlashReadPages
+ ldrb r2, [r6, #36] @ zero_extendqisi2
+ cbz r2, .L2589
+ ldr r2, [r9, #1268]
+ ldr r2, [r2, #12]
+ str r2, [sp, #28]
+ cbz r2, .L2589
+ ldrh r1, [r6, #2400]
+ ldr r0, [r9, #1264]
+ bl js_hash
+ ldr r2, [sp, #28]
+ cmp r2, r0
+ itt ne
+ movne r2, #-1
+ strne r2, [r9, #1256]
+.L2589:
+ ldr r2, [r9, #1256]
+ adds r2, r2, #1
+ beq .L2590
+ ldrh r2, [r8, #8]
+ ldr r3, [sp, #12]
+ cmp r3, r2
+ bls .L2590
+ ldrh r1, [r4, #4]
+ ldrh r0, [r8]
+ cmp r0, r1
+ ittt eq
+ ldreq r1, [r9, #1260]
+ ldreq r3, [sp, #4]
+ streq r1, [r3, r2, lsl #2]
+.L2590:
+ add r10, r10, #1
+ b .L2585
+.L2584:
+ movs r0, #0
+ mov lr, #4
+.L2586:
+ ldrh r1, [r6, #2392]
+ sxth r2, r0
+ subs r1, r1, #1
+ cmp r2, r1
+ blt .L2588
+.L2592:
+ adds r7, r7, #1
+ b .L2575
+.L2588:
+ ldr ip, [fp, #3316]
+ ldr r3, [sp, #12]
+ ldr r1, [ip, r2, lsl #3]
+ uxth r9, r1
+ cmp r3, r9
+ bls .L2587
+ add r2, lr, r2, lsl #3
+ ldr r3, [sp, #4]
+ ldr r2, [ip, r2]
+ str r2, [r3, r9, lsl #2]
+.L2587:
+ adds r0, r0, #1
+ b .L2586
+.L2616:
.align 2
-.L2707:
- .word .LANCHOR2
+.L2615:
.word .LANCHOR4
- .word .LANCHOR4+1248
.word .LANCHOR0
+ .word .LANCHOR2
+ .word .LANCHOR4+1256
.fnend
.size FtlMapTblRecovery, .-FtlMapTblRecovery
.align 1
.global FtlLoadVonderInfo
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FtlLoadVonderInfo, %function
FtlLoadVonderInfo:
.fnstart
@@ -16635,20 +16925,20 @@
@ frame_needed = 0, uses_anonymous_args = 0
push {r3, lr}
.save {r3, lr}
- ldr r3, .L2710
- ldr r0, .L2710+4
- ldrh r2, [r3, #2408]
- add r0, r0, #1288
+ ldr r3, .L2618
+ ldr r0, .L2618+4
+ ldrh r2, [r3, #2412]
+ add r0, r0, #1296
strh r2, [r0, #10] @ movhi
movw r2, #61574
strh r2, [r0, #4] @ movhi
- ldrh r2, [r3, #2434]
+ ldrh r2, [r3, #2438]
strh r2, [r0, #8] @ movhi
- ldrh r2, [r3, #2410]
- ldr r3, [r3, #2436]
+ ldrh r2, [r3, #2414]
+ ldr r3, [r3, #2440]
strh r2, [r0, #6] @ movhi
str r3, [r0, #12]
- ldr r3, .L2710+8
+ ldr r3, .L2618+8
ldr r2, [r3, #3380]
str r2, [r0, #16]
ldr r2, [r3, #3376]
@@ -16658,9 +16948,9 @@
bl FtlMapTblRecovery
movs r0, #0
pop {r3, pc}
-.L2711:
+.L2619:
.align 2
-.L2710:
+.L2618:
.word .LANCHOR0
.word .LANCHOR4
.word .LANCHOR2
@@ -16668,8 +16958,10 @@
.size FtlLoadVonderInfo, .-FtlLoadVonderInfo
.align 1
.global FtlLoadMapInfo
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FtlLoadMapInfo, %function
FtlLoadMapInfo:
.fnstart
@@ -16678,182 +16970,179 @@
push {r3, lr}
.save {r3, lr}
bl FtlL2PDataInit
- ldr r0, .L2713
+ ldr r0, .L2621
bl FtlMapTblRecovery
movs r0, #0
pop {r3, pc}
-.L2714:
+.L2622:
.align 2
-.L2713:
+.L2621:
.word .LANCHOR2+3408
.fnend
.size FtlLoadMapInfo, .-FtlLoadMapInfo
.align 1
.global FtlVendorPartWrite
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FtlVendorPartWrite, %function
FtlVendorPartWrite:
.fnstart
@ args = 0, pretend = 0, frame = 56
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L2728
+ ldr r3, .L2635
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
- mov r5, r0
- mov r4, r1
- add r0, r0, r1
- ldrh r1, [r3, #2384]
+ mov r10, r2
+ mov r5, r1
+ adds r1, r0, r1
.pad #60
sub sp, sp, #60
- mov r10, r2
- ldrh r2, [r3, #2396]
- cmp r0, r1
- str r3, [sp, #4]
- bhi .L2723
- ldr r7, .L2728+4
- lsr r6, r5, r2
- mov fp, #0
- lsls r3, r6, #2
+ mov r7, r0
+ ldrh r2, [r3, #2386]
str r3, [sp]
-.L2717:
- cmp r4, #0
- beq .L2727
- ldr r3, .L2728+4
- mov r0, r5
- ldr r2, [sp]
- ldr r3, [r3, #3384]
- ldr ip, [r3, r2]
- ldr r3, [sp, #4]
- str ip, [sp, #12]
- ldrh r2, [r3, #2394]
- mov r1, r2
- str r2, [sp, #8]
- bl __aeabi_uidivmod
- ldr r2, [sp, #8]
- mov r8, r1
- ldr ip, [sp, #12]
- subs r3, r2, r1
- uxth r9, r3
- cmp r9, r4
- it hi
- uxthhi r9, r4
- cmp ip, #0
- beq .L2719
- cmp r9, r2
- beq .L2719
- ldr r2, [r7, #3324]
- movs r1, #1
- add r0, sp, #20
- str ip, [sp, #24]
- str r2, [sp, #28]
- movs r2, #0
- str r2, [sp, #32]
- mov r2, r1
- bl FlashReadPages
- b .L2720
-.L2719:
- ldr r3, [sp, #4]
- movs r1, #0
- ldr r0, [r7, #3324]
- ldrh r2, [r3, #2398]
- bl ftl_memset
-.L2720:
- lsl ip, r9, #9
- ldr r0, [r7, #3324]
- uxth r8, r8
- mov r1, r10
- mov r2, ip
- str ip, [sp, #8]
- add r0, r0, r8, lsl #9
- rsb r4, r9, r4
- bl ftl_memcpy
- mov r1, r6
- ldr r0, .L2728+8
- adds r6, r6, #1
- ldr r2, [r7, #3324]
- add r5, r5, r9
- bl FtlMapWritePage
- ldr r3, [sp]
- adds r0, r0, #1
- ldr ip, [sp, #8]
- it eq
- moveq fp, #-1
- adds r3, r3, #4
- str r3, [sp]
- add r10, r10, ip
- b .L2717
-.L2727:
- mov r0, fp
- b .L2716
-.L2723:
- mov r0, #-1
-.L2716:
+ cmp r1, r2
+ bhi .L2631
+ ldrh r6, [r3, #2398]
+ mov r9, #0
+ ldr r8, .L2635+8
+ lsr r6, r0, r6
+ lsl fp, r6, #2
+.L2625:
+ cbnz r5, .L2630
+.L2623:
+ mov r0, r9
add sp, sp, #60
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L2729:
+.L2630:
+ ldr r3, [r8, #3384]
+ mov r0, r7
+ ldr r2, [r3, fp]
+ ldr r3, [sp]
+ str r2, [sp, #12]
+ ldrh r3, [r3, #2396]
+ mov r1, r3
+ str r3, [sp, #8]
+ bl __aeabi_uidivmod
+ ldr r3, [sp, #8]
+ ldr r2, [sp, #12]
+ str r1, [sp, #4]
+ subs r4, r3, r1
+ uxth r4, r4
+ cmp r5, r4
+ it cc
+ uxthcc r4, r5
+ cbz r2, .L2627
+ cmp r4, r3
+ beq .L2627
+ ldr r3, [r8, #3324]
+ add r0, sp, #20
+ str r2, [sp, #24]
+ movs r2, #1
+ mov r1, r2
+ str r3, [sp, #28]
+ movs r3, #0
+ str r3, [sp, #32]
+ bl FlashReadPages
+.L2628:
+ lsls r3, r4, #9
+ ldr r0, [r8, #3324]
+ mov r1, r10
+ mov r2, r3
+ str r3, [sp, #8]
+ ldr r3, [sp, #4]
+ subs r5, r5, r4
+ add r7, r7, r4
+ add fp, fp, #4
+ add r0, r0, r3, lsl #9
+ bl ftl_memcpy
+ mov r1, r6
+ ldr r2, [r8, #3324]
+ ldr r0, .L2635+4
+ adds r6, r6, #1
+ bl FtlMapWritePage
+ ldr r3, [sp, #8]
+ adds r0, r0, #1
+ it eq
+ moveq r9, #-1
+ add r10, r10, r3
+ b .L2625
+.L2627:
+ ldr r3, [sp]
+ movs r1, #0
+ ldr r0, [r8, #3324]
+ ldrh r2, [r3, #2400]
+ bl ftl_memset
+ b .L2628
+.L2631:
+ mov r9, #-1
+ b .L2623
+.L2636:
.align 2
-.L2728:
+.L2635:
.word .LANCHOR0
+ .word .LANCHOR4+1296
.word .LANCHOR2
- .word .LANCHOR4+1288
.fnend
.size FtlVendorPartWrite, .-FtlVendorPartWrite
.align 1
.global Ftl_save_ext_data
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type Ftl_save_ext_data, %function
Ftl_save_ext_data:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r2, .L2732
- ldr r3, .L2732+4
- ldr r1, [r2, #608]
+ ldr r2, .L2639
+ ldr r3, .L2639+4
+ ldr r1, [r2, #604]
cmp r1, r3
- bne .L2730
- ldr r3, .L2732+8
- movs r0, #0
+ bne .L2637
+ ldr r3, .L2639+8
movs r1, #1
- str r3, [r2, #612]
+ movs r0, #0
+ str r3, [r2, #608]
ldr r3, [r2, #500]
- str r3, [r2, #696]
+ str r3, [r2, #692]
ldr r3, [r2, #504]
- str r3, [r2, #700]
+ str r3, [r2, #696]
ldr r3, [r2, #496]
- str r3, [r2, #616]
+ str r3, [r2, #612]
ldr r3, [r2, #484]
- str r3, [r2, #620]
+ str r3, [r2, #616]
ldr r3, [r2, #476]
- str r3, [r2, #624]
+ str r3, [r2, #620]
ldr r3, [r2, #492]
- str r3, [r2, #628]
+ str r3, [r2, #624]
ldr r3, [r2, #520]
- str r3, [r2, #636]
- ldr r3, [r2, #236]
- add r2, r2, #608
+ str r3, [r2, #632]
+ ldr r3, [r2, #240]
+ add r2, r2, #604
str r3, [r2, #32]
- ldr r3, [r2, #-128]
+ ldr r3, [r2, #-124]
str r3, [r2, #36]
- ldr r3, [r2, #-120]
+ ldr r3, [r2, #-116]
str r3, [r2, #40]
- ldr r3, [r2, #-80]
- str r3, [r2, #44]
ldr r3, [r2, #-76]
+ str r3, [r2, #44]
+ ldr r3, [r2, #-72]
str r3, [r2, #48]
- ldr r3, [r2, #-4]
+ ldr r3, [r2, #512]
str r3, [r2, #60]
- ldr r3, [r2, #2668]
+ ldr r3, [r2, #2672]
str r3, [r2, #64]
b FtlVendorPartWrite
-.L2730:
+.L2637:
bx lr
-.L2733:
+.L2640:
.align 2
-.L2732:
+.L2639:
.word .LANCHOR2
.word 1179929683
.word 1342177379
@@ -16861,51 +17150,51 @@
.size Ftl_save_ext_data, .-Ftl_save_ext_data
.align 1
.global FtlEctTblFlush
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FtlEctTblFlush, %function
FtlEctTblFlush:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L2741
+ ldr r3, .L2648
push {r4, lr}
.save {r4, lr}
- ldr r2, [r3, #2244]
- ldr r3, .L2741+4
- cbz r2, .L2739
+ ldr r2, [r3, #2248]
+ ldr r3, .L2648+4
+ cmp r2, #0
+ beq .L2646
ldr r2, [r3, #532]
cmp r2, #39
ite hi
- movhi r1, #32
- movls r1, #4
- b .L2735
-.L2739:
- movs r1, #32
-.L2735:
- ldr r4, .L2741+8
- ldrh r2, [r4, #1332]
- cmp r2, #31
+ movhi r2, #32
+ movls r2, #4
+.L2642:
+ ldr r4, .L2648+8
+ ldrh r1, [r4, #1340]
+ cmp r1, #31
ittt ls
- addls r2, r2, #1
- movls r1, #1
- strhls r2, [r4, #1332] @ movhi
- cbnz r0, .L2737
- ldr r0, [r3, #3360]
- ldr r2, [r0, #20]
- add r2, r2, r1
- ldr r1, [r0, #16]
+ addls r1, r1, #1
+ movls r2, #1
+ strhls r1, [r4, #1340] @ movhi
+ cbnz r0, .L2644
+ ldr r1, [r3, #3360]
+ ldr r0, [r1, #20]
+ ldr r1, [r1, #16]
+ add r2, r2, r0
cmp r1, r2
- bcc .L2738
-.L2737:
+ bcc .L2645
+.L2644:
ldr r2, [r3, #3360]
movs r0, #64
ldr r1, [r2, #16]
str r1, [r2, #20]
- ldr r1, .L2741+12
+ ldr r1, .L2648+12
str r1, [r2]
- ldr r2, [r3, #3360]
ldrh r1, [r3, #3352]
+ ldr r2, [r3, #3360]
lsls r3, r1, #9
str r3, [r2, #12]
ldr r3, [r2, #8]
@@ -16915,12 +17204,15 @@
str r3, [r2, #4]
bl FtlVendorPartWrite
bl Ftl_save_ext_data
-.L2738:
+.L2645:
movs r0, #0
pop {r4, pc}
-.L2742:
+.L2646:
+ movs r2, #32
+ b .L2642
+.L2649:
.align 2
-.L2741:
+.L2648:
.word .LANCHOR0
.word .LANCHOR2
.word .LANCHOR4
@@ -16929,122 +17221,125 @@
.size FtlEctTblFlush, .-FtlEctTblFlush
.align 1
.global FtlVendorPartRead
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FtlVendorPartRead, %function
FtlVendorPartRead:
.fnstart
@ args = 0, pretend = 0, frame = 56
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L2754
+ ldr r3, .L2660
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
- mov r6, r0
- mov r4, r1
- add r0, r0, r1
- ldrh r1, [r3, #2384]
+ mov r9, r2
+ mov r6, r1
+ adds r1, r0, r1
.pad #60
sub sp, sp, #60
- mov r7, r2
- ldrh r2, [r3, #2396]
- cmp r0, r1
- str r3, [sp, #12]
- bhi .L2752
- ldr r10, .L2754+4
- lsr r5, r6, r2
- mov fp, #0
- lsls r3, r5, #2
- str r3, [sp, #4]
-.L2745:
- cmp r4, #0
- beq .L2753
- ldr r3, .L2754+4
- mov r0, r6
- ldr r2, [sp, #4]
- ldr r3, [r3, #3384]
- ldr r8, [r3, r2]
- ldr r3, [sp, #12]
- ldrh r9, [r3, #2394]
- mov r1, r9
- bl __aeabi_uidivmod
- rsb r3, r1, r9
- str r1, [sp, #8]
- uxth r9, r3
- cmp r9, r4
- it hi
- uxthhi r9, r4
- cmp r8, #0
- beq .L2747
- ldr r2, [r10, #3324]
- movs r1, #1
- add r0, sp, #20
- str r8, [sp, #24]
- str r2, [sp, #28]
- movs r2, #0
- str r2, [sp, #32]
- mov r2, r1
- bl FlashReadPages
- ldr r3, .L2754+8
- ldr r2, [sp, #20]
- adds r2, r2, #1
- ldr r2, [r3, #1248]
- it eq
- moveq fp, #-1
- cmp r2, #256
- bne .L2749
- mov r1, r5
- mov r2, r8
- ldr r0, .L2754+12
- bl printk
- ldr r0, .L2754+16
- mov r1, r5
- ldr r2, [r10, #3324]
- bl FtlMapWritePage
-.L2749:
- ldrh r8, [sp, #8]
- mov r0, r7
- ldr r1, [r10, #3324]
- lsl r2, r9, #9
- add r1, r1, r8, lsl #9
- bl ftl_memcpy
- b .L2750
-.L2747:
- mov r0, r7
- mov r1, r8
- lsl r2, r9, #9
- bl ftl_memset
-.L2750:
- ldr r3, [sp, #4]
- adds r5, r5, #1
- rsb r4, r9, r4
- add r6, r6, r9
- adds r3, r3, #4
- add r7, r7, r9, lsl #9
- str r3, [sp, #4]
- b .L2745
-.L2753:
- mov r0, fp
- b .L2744
-.L2752:
- mov r0, #-1
-.L2744:
+ mov r7, r0
+ ldrh r2, [r3, #2386]
+ str r3, [sp, #8]
+ cmp r1, r2
+ bhi .L2659
+ ldrh r5, [r3, #2398]
+ mov r8, #0
+ ldr r10, .L2660+16
+ lsr r5, r0, r5
+ lsl fp, r5, #2
+.L2652:
+ cbnz r6, .L2658
+.L2650:
+ mov r0, r8
add sp, sp, #60
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L2755:
+.L2658:
+ ldr r3, [r10, #3384]
+ mov r0, r7
+ ldr r3, [r3, fp]
+ str r3, [sp, #12]
+ ldr r3, [sp, #8]
+ ldrh r4, [r3, #2396]
+ mov r1, r4
+ bl __aeabi_uidivmod
+ subs r4, r4, r1
+ ldr r3, [sp, #12]
+ uxth r4, r4
+ str r1, [sp, #4]
+ cmp r6, r4
+ it cc
+ uxthcc r4, r6
+ lsls r2, r4, #9
+ str r2, [sp, #12]
+ cbz r3, .L2654
+ ldr r2, [r10, #3324]
+ add r0, sp, #20
+ str r3, [sp, #24]
+ str r3, [sp, #12]
+ str r2, [sp, #28]
+ movs r2, #0
+ str r2, [sp, #32]
+ movs r2, #1
+ mov r1, r2
+ bl FlashReadPages
+ ldr r3, .L2660+4
+ ldr r2, [sp, #20]
+ adds r2, r2, #1
+ ldr r2, [r3, #1256]
+ it eq
+ moveq r8, #-1
+ ldr r3, [sp, #12]
+ cmp r2, #256
+ bne .L2656
+ mov r2, r3
+ mov r1, r5
+ ldr r0, .L2660+8
+ bl printk
+ ldr r2, [r10, #3324]
+ mov r1, r5
+ ldr r0, .L2660+12
+ bl FtlMapWritePage
+.L2656:
+ ldr r1, [r10, #3324]
+ lsls r2, r4, #9
+ ldr r3, [sp, #4]
+ mov r0, r9
+ add r1, r1, r3, lsl #9
+ bl ftl_memcpy
+.L2657:
+ adds r5, r5, #1
+ subs r6, r6, r4
+ add r7, r7, r4
+ add r9, r9, r4, lsl #9
+ add fp, fp, #4
+ b .L2652
+.L2654:
+ lsls r2, r4, #9
+ mov r1, r3
+ mov r0, r9
+ bl ftl_memset
+ b .L2657
+.L2659:
+ mov r8, #-1
+ b .L2650
+.L2661:
.align 2
-.L2754:
+.L2660:
.word .LANCHOR0
- .word .LANCHOR2
.word .LANCHOR4
.word .LC136
- .word .LANCHOR4+1288
+ .word .LANCHOR4+1296
+ .word .LANCHOR2
.fnend
.size FtlVendorPartRead, .-FtlVendorPartRead
.align 1
.global FtlLoadEctTbl
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FtlLoadEctTbl, %function
FtlLoadEctTbl:
.fnstart
@@ -17053,39 +17348,41 @@
push {r4, lr}
.save {r4, lr}
movs r0, #64
- ldr r4, .L2758
+ ldr r4, .L2664
ldr r2, [r4, #3360]
ldrh r1, [r4, #3352]
bl FtlVendorPartRead
ldr r3, [r4, #3360]
ldr r2, [r3]
- ldr r3, .L2758+4
+ ldr r3, .L2664+4
cmp r2, r3
- beq .L2757
- ldr r1, .L2758+8
- ldr r0, .L2758+12
+ beq .L2663
+ ldr r1, .L2664+8
+ ldr r0, .L2664+12
bl printk
ldrh r2, [r4, #3352]
- ldr r0, [r4, #3360]
movs r1, #0
+ ldr r0, [r4, #3360]
lsls r2, r2, #9
bl ftl_memset
-.L2757:
+.L2663:
movs r0, #0
pop {r4, pc}
-.L2759:
+.L2665:
.align 2
-.L2758:
+.L2664:
.word .LANCHOR2
.word 1112818501
.word .LC137
- .word .LC76
+ .word .LC77
.fnend
.size FtlLoadEctTbl, .-FtlLoadEctTbl
.align 1
.global Ftl_load_ext_data
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type Ftl_load_ext_data, %function
Ftl_load_ext_data:
.fnstart
@@ -17093,95 +17390,95 @@
@ frame_needed = 0, uses_anonymous_args = 0
push {r3, r4, r5, lr}
.save {r3, r4, r5, lr}
- movs r0, #0
- ldr r4, .L2765
movs r1, #1
- ldr r5, .L2765+4
- add r2, r4, #608
+ ldr r4, .L2671
+ movs r0, #0
+ ldr r5, .L2671+4
+ add r2, r4, #604
bl FtlVendorPartRead
- ldr r3, [r4, #608]
+ ldr r3, [r4, #604]
cmp r3, r5
- beq .L2761
- add r0, r4, #608
- movs r1, #0
+ beq .L2667
mov r2, #512
+ movs r1, #0
+ add r0, r4, #604
bl ftl_memset
- str r5, [r4, #608]
-.L2761:
- ldr r2, [r4, #608]
- ldr r3, .L2765
- cmp r2, r5
- bne .L2762
- ldr r2, [r3, #696]
- str r2, [r3, #500]
- ldr r2, [r3, #700]
- str r2, [r3, #504]
- ldr r2, [r3, #616]
- str r2, [r3, #496]
- ldr r2, [r3, #620]
- str r2, [r3, #484]
- ldr r2, [r3, #624]
- str r2, [r3, #476]
- ldr r2, [r3, #628]
- str r2, [r3, #492]
- ldr r2, [r3, #636]
- str r2, [r3, #520]
- ldr r2, [r3, #640]
- str r2, [r3, #236]
- ldr r2, [r3, #644]
- str r2, [r3, #480]
- ldr r2, [r3, #648]
- str r2, [r3, #488]
- ldr r2, [r3, #652]
- str r2, [r3, #528]
- ldr r2, [r3, #656]
- str r2, [r3, #532]
- ldr r2, [r3, #668]
- str r2, [r3, #604]
-.L2762:
- ldr r1, [r4, #676]
+ str r5, [r4, #604]
+.L2667:
+ ldr r3, [r4, #604]
+ cmp r3, r5
+ bne .L2668
+ ldr r3, [r4, #692]
+ str r3, [r4, #500]
+ ldr r3, [r4, #696]
+ str r3, [r4, #504]
+ ldr r3, [r4, #612]
+ str r3, [r4, #496]
+ ldr r3, [r4, #616]
+ str r3, [r4, #484]
+ ldr r3, [r4, #620]
+ str r3, [r4, #476]
+ ldr r3, [r4, #624]
+ str r3, [r4, #492]
+ ldr r3, [r4, #632]
+ str r3, [r4, #520]
+ ldr r3, [r4, #636]
+ str r3, [r4, #240]
+ ldr r3, [r4, #640]
+ str r3, [r4, #480]
+ ldr r3, [r4, #644]
+ str r3, [r4, #488]
+ ldr r3, [r4, #648]
+ str r3, [r4, #528]
+ ldr r3, [r4, #652]
+ str r3, [r4, #532]
+ ldr r3, [r4, #664]
+ str r3, [r4, #1116]
+.L2668:
+ ldr r1, [r4, #672]
movs r3, #0
- ldr r2, .L2765+8
+ ldr r2, .L2671+8
str r3, [r4, #3276]
+ ldr r5, .L2671+12
cmp r1, r2
- ldr r5, .L2765+12
- bne .L2763
- ldrb r2, [r5, #144] @ zero_extendqisi2
- cbz r2, .L2764
- ldr r2, .L2765
- str r3, [r2, #676]
+ bne .L2669
+ ldrb r2, [r5, #152] @ zero_extendqisi2
+ cbz r2, .L2670
+ str r3, [r4, #672]
bl Ftl_save_ext_data
- b .L2763
-.L2764:
- ldr r0, .L2765+16
- movs r3, #1
- ldr r1, .L2765+20
- str r3, [r5, #2244]
- bl printk
-.L2763:
- ldrh r2, [r5, #2380]
+.L2669:
+ ldrh r2, [r5, #2382]
ldr r3, [r4, #520]
ldr r0, [r4, #516]
- ldrh r1, [r5, #2328]
+ ldrh r1, [r5, #2332]
mla r0, r0, r2, r3
bl __aeabi_uidiv
str r0, [r4, #524]
pop {r3, r4, r5, pc}
-.L2766:
+.L2670:
+ movs r3, #1
+ ldr r1, .L2671+16
+ ldr r0, .L2671+20
+ str r3, [r5, #2248]
+ bl printk
+ b .L2669
+.L2672:
.align 2
-.L2765:
+.L2671:
.word .LANCHOR2
.word 1179929683
.word 305432421
.word .LANCHOR0
- .word .LC76
.word .LC138
+ .word .LC77
.fnend
.size Ftl_load_ext_data, .-Ftl_load_ext_data
.align 1
.global FtlMapBlkWriteDumpData
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FtlMapBlkWriteDumpData, %function
FtlMapBlkWriteDumpData:
.fnstart
@@ -17191,46 +17488,45 @@
.save {r4, r5, r6, lr}
mov r6, r0
ldr r3, [r0, #36]
- ldrh r5, [r0, #6]
- ldr r1, [r0, #24]
- cbz r3, .L2767
- ldr r2, .L2773
+ cbz r3, .L2673
+ ldr r2, .L2679
movs r3, #0
str r3, [r0, #36]
- ldr r3, [r2, #224]
- cbnz r3, .L2767
+ ldrh r5, [r0, #6]
+ ldr r3, [r2, #228]
+ ldr r1, [r0, #24]
+ cbnz r3, .L2673
+ ldr r4, .L2679+4
subs r5, r5, #1
- ldr r3, .L2773+4
ldr r0, [r2, #3320]
- ldr r2, [r2, #3340]
uxth r5, r5
- mov r4, r3
- str r0, [r3, #1256]
- str r2, [r3, #1260]
+ ldr r2, [r2, #3340]
+ str r0, [r4, #1264]
+ str r2, [r4, #1268]
ldr r2, [r1, r5, lsl #2]
- str r2, [r3, #1252]
- cbz r2, .L2771
- movs r1, #1
- add r0, r3, #1248
- mov r2, r1
+ str r2, [r4, #1260]
+ cbz r2, .L2677
+ movs r2, #1
+ add r0, r4, #1256
+ mov r1, r2
bl FlashReadPages
- b .L2772
-.L2771:
- ldr r3, .L2773+8
- movs r1, #255
- ldrh r2, [r3, #2398]
- bl ftl_memset
-.L2772:
- mov r0, r6
+.L2678:
+ ldr r2, [r4, #1264]
mov r1, r5
- ldr r2, [r4, #1256]
+ mov r0, r6
pop {r4, r5, r6, lr}
b FtlMapWritePage
-.L2767:
+.L2677:
+ ldr r3, .L2679+8
+ movs r1, #255
+ ldrh r2, [r3, #2400]
+ bl ftl_memset
+ b .L2678
+.L2673:
pop {r4, r5, r6, pc}
-.L2774:
+.L2680:
.align 2
-.L2773:
+.L2679:
.word .LANCHOR2
.word .LANCHOR4
.word .LANCHOR0
@@ -17238,100 +17534,102 @@
.size FtlMapBlkWriteDumpData, .-FtlMapBlkWriteDumpData
.align 1
.global FlashReadFacBbtData
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FlashReadFacBbtData, %function
FlashReadFacBbtData:
.fnstart
@ args = 0, pretend = 0, frame = 40
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L2789
push {r4, r5, r6, r7, r8, r9, r10, lr}
.save {r4, r5, r6, r7, r8, r9, r10, lr}
mov r8, r2
- ldrh r2, [r3, #128]
- mov r7, r1
- ldrh r3, [r3, #130]
+ ldr r2, .L2693
.pad #40
sub sp, sp, #40
mov r5, r0
- smulbb r3, r2, r3
- ldr r2, .L2789+4
- ldr r1, [r2, #1184]
- mov r9, r2
+ mov r9, r1
+ ldr r7, .L2693+4
+ ldrh r3, [r2, #138]
+ ldrh r2, [r2, #136]
+ smulbb r3, r3, r2
+ ldr r2, [r7, #1192]
uxth r3, r3
+ str r2, [sp, #12]
+ ldr r2, [r7, #1224]
subs r6, r3, #1
- str r1, [sp, #12]
- mul r10, r3, r7
- ldr r1, [r2, #1216]
+ mul r10, r1, r3
uxth r6, r6
sub r4, r3, #16
- str r1, [sp, #16]
-.L2776:
+ str r2, [sp, #16]
+.L2682:
cmp r6, r4
- ble .L2788
- movs r1, #1
+ bgt .L2688
+ mov r0, #-1
+ b .L2681
+.L2688:
add r3, r6, r10
- add r0, sp, #4
- mov r2, r1
+ movs r2, #1
lsls r3, r3, #10
+ mov r1, r2
+ add r0, sp, #4
str r3, [sp, #8]
bl FlashReadPages
ldr r3, [sp, #4]
adds r3, r3, #1
- beq .L2777
- ldr r3, [r9, #1216]
+ beq .L2683
+ ldr r3, [r7, #1224]
ldrh r2, [r3]
movw r3, #61664
cmp r2, r3
- bne .L2777
- cbz r5, .L2783
- cbz r7, .L2784
-.L2781:
- ldr r1, [r9, #1184]
+ bne .L2683
+ cbz r5, .L2689
+ cmp r9, #0
+ bne .L2685
+ mov r1, r9
+ movs r4, #1
+.L2686:
+ ldr r0, [r7, #1212]
+ uxth r3, r1
+ adds r1, r1, #1
+ cmp r3, r0
+ bcc .L2687
+.L2685:
mov r2, r8
+ ldr r1, [r7, #1192]
mov r0, r5
bl ftl_memcpy
- movs r2, #4
- ldr r0, .L2789+8
+ movs r3, #4
+ ldr r0, .L2693+8
+ mov r2, r3
mov r1, r5
- mov r3, r2
bl rknand_print_hex
movs r0, #0
- b .L2778
-.L2784:
- ldr r6, .L2789+4
- mov lr, #1
-.L2779:
- ldr r2, [r9, #1204]
- uxth r3, r7
- adds r7, r7, #1
- cmp r3, r2
- bcs .L2781
- ldr r2, [r6, #1184]
- lsrs r1, r3, #5
- and r4, r3, #31
- lsl r3, lr, r4
- ldr r0, [r2, r1, lsl #2]
- orrs r3, r3, r0
- str r3, [r2, r1, lsl #2]
- b .L2779
-.L2777:
- subs r6, r6, #1
- uxth r6, r6
- b .L2776
-.L2788:
- mov r0, #-1
- b .L2778
-.L2783:
- mov r0, r5
-.L2778:
+.L2681:
add sp, sp, #40
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, pc}
-.L2790:
+.L2687:
+ ldr r0, [r7, #1192]
+ lsrs r6, r3, #5
+ and r3, r3, #31
+ lsl r3, r4, r3
+ ldr r2, [r0, r6, lsl #2]
+ orrs r3, r3, r2
+ str r3, [r0, r6, lsl #2]
+ b .L2686
+.L2683:
+ subs r6, r6, #1
+ uxth r6, r6
+ b .L2682
+.L2689:
+ mov r0, r5
+ b .L2681
+.L2694:
.align 2
-.L2789:
+.L2693:
.word .LANCHOR0
.word .LANCHOR4
.word .LC139
@@ -17339,72 +17637,76 @@
.size FlashReadFacBbtData, .-FlashReadFacBbtData
.align 1
.global FlashGetBadBlockList
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FlashGetBadBlockList, %function
FlashGetBadBlockList:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L2801
+ ldr r3, .L2705
push {r4, r5, r6, r7, r8, lr}
.save {r4, r5, r6, r7, r8, lr}
mov r5, r0
- ldr r3, [r3, #44]
- ldr r6, .L2801+4
+ ldr r6, .L2705+4
+ ldr r3, [r3, #48]
+ ldr r0, [r6, #1220]
ldrb r4, [r3, #13] @ zero_extendqisi2
ldrh r3, [r3, #14]
- ldr r0, [r6, #1212]
smulbb r4, r4, r3
uxth r4, r4
adds r2, r4, #7
asrs r2, r2, #3
bl FlashReadFacBbtData
adds r0, r0, #1
- bne .L2792
-.L2796:
+ mov ip, r6
+ bne .L2696
+.L2700:
movs r3, #0
- b .L2793
-.L2792:
- movs r1, #0
- lsr lr, r4, #4
- mov ip, #1
- subs r4, r4, #1
- mov r3, r1
-.L2794:
- uxth r2, r1
- cmp r2, r4
- bge .L2793
- ldr r7, [r6, #1212]
- lsrs r0, r2, #5
- and r8, r2, #31
- adds r1, r1, #1
- lsl r8, ip, r8
- ldr r0, [r7, r0, lsl #2]
- tst r8, r0
- ittt ne
- strhne r2, [r5, r3, lsl #1] @ movhi
- addne r0, r3, #1
- uxthne r3, r0
- cmp r3, lr
- bcc .L2794
- b .L2796
-.L2793:
+.L2697:
movw r2, #65535
movs r0, #0
strh r2, [r5, r3, lsl #1] @ movhi
pop {r4, r5, r6, r7, r8, pc}
-.L2802:
+.L2696:
+ movs r2, #0
+ lsr lr, r4, #4
+ mov r3, r2
+ subs r4, r4, #1
+ mov r8, #1
+.L2698:
+ uxth r1, r2
+ cmp r1, r4
+ bge .L2697
+ ldr r6, [ip, #1220]
+ lsrs r7, r1, #5
+ and r0, r1, #31
+ lsl r0, r8, r0
+ adds r2, r2, #1
+ ldr r6, [r6, r7, lsl #2]
+ tst r0, r6
+ ittt ne
+ addne r0, r3, #1
+ strhne r1, [r5, r3, lsl #1] @ movhi
+ uxthne r3, r0
+ cmp r3, lr
+ bcc .L2698
+ b .L2700
+.L2706:
.align 2
-.L2801:
+.L2705:
.word .LANCHOR0
.word .LANCHOR4
.fnend
.size FlashGetBadBlockList, .-FlashGetBadBlockList
.align 1
.global FtlMakeBbt
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FtlMakeBbt, %function
FtlMakeBbt:
.fnstart
@@ -17413,405 +17715,399 @@
push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.pad #12
- ldr r5, .L2827
- ldr r4, [r5, #224]
- cmp r4, #0
- bne .L2804
+ ldr r6, .L2728
+ ldr r7, [r6, #228]
+ cmp r7, #0
+ bne .L2708
+ ldr r9, .L2728+8
+ ldr r8, .L2728+12
bl FtlBbtMemInit
- ldr r6, .L2827+4
+ subw r10, r9, #2484
+ sub fp, r9, #18
+ mov r4, r10
bl FtlLoadFactoryBbt
- ldr r9, .L2827+16
- sub r8, r6, #18
- sub r7, r6, #2480
-.L2805:
- ldrh r3, [r7, #2342]
- ldr r10, .L2827+8
- cmp r4, r3
- bcs .L2824
- ldr r3, [r5, #3340]
+.L2709:
+ ldrh r3, [r10, #2346]
+ cmp r7, r3
+ bcc .L2715
+ movs r5, #0
+.L2716:
+ ldrh r3, [r4, #2404]
+ uxth r0, r5
+ adds r5, r5, #1
+ cmp r3, r0
+ bhi .L2717
+ ldrh r5, [r4, #2468]
+ movw r7, #65535
+ subs r5, r5, #1
+ uxth r5, r5
+.L2718:
+ ldrh r3, [r4, #2468]
+ subs r3, r3, #48
+ cmp r5, r3
+ ble .L2722
+ mov r0, r5
+ bl FtlBbmIsBadBlock
+ cmp r0, #1
+ beq .L2719
+ mov r0, r5
+ bl FlashTestBlk
+ cmp r0, #0
+ beq .L2720
+ mov r0, r5
+ bl FtlBbmMapBadBlock
+.L2719:
+ subs r5, r5, #1
+ uxth r5, r5
+ b .L2718
+.L2715:
+ ldr r3, [r6, #3340]
movw r2, #65535
- ldr r0, [r5, #3316]
- ldr fp, .L2827+16
+ ldr r0, [r6, #3316]
str r3, [sp]
- str r3, [r9, #1260]
- ldrh r3, [r8, #2]!
- str r0, [r9, #1256]
+ str r3, [r8, #1268]
+ ldrh r3, [fp, #2]!
+ str r0, [r8, #1264]
cmp r3, r2
- beq .L2806
- ldrh ip, [r7, #2386]
- movs r1, #1
- add r0, fp, #1248
- mov r2, r1
- mla ip, ip, r4, r3
- lsl r3, ip, #10
- str ip, [sp]
- str r3, [r9, #1252]
+ beq .L2710
+ ldrh r5, [r10, #2388]
+ movs r2, #1
+ mov r1, r2
+ ldr r0, .L2728+4
+ mla r5, r7, r5, r3
+ lsls r3, r5, #10
+ str r3, [r8, #1260]
bl FlashReadPages
- ldrh r2, [r7, #2386]
- ldr r0, [r6]
+ ldrh r2, [r10, #2388]
+ ldr r1, [r8, #1264]
+ ldr r0, [r9]
adds r2, r2, #7
- ldr r1, [r9, #1256]
asrs r2, r2, #3
bl ftl_memcpy
- ldr ip, [sp]
- b .L2807
-.L2806:
- mov r1, r4
+.L2711:
+ uxth r0, r5
+ adds r7, r7, #1
+ add r9, r9, #4
+ bl FtlBbmMapBadBlock
+ b .L2709
+.L2710:
+ mov r1, r7
bl FlashGetBadBlockList
- ldr r0, [r9, #1256]
- ldr r1, [r6]
+ ldr r1, [r9]
+ ldr r0, [r8, #1264]
bl FtlBbt2Bitmap
- ldrh r3, [r7, #2386]
+ ldrh r3, [r10, #2388]
+.L2727:
subs r3, r3, #1
-.L2823:
- uxth r10, r3
-.L2808:
- ldr r3, .L2827+8
- ldrh r0, [r3, #2386]
- smlabb r0, r0, r4, r10
+ uxth r3, r3
+ str r3, [sp, #4]
+.L2712:
+ ldr r3, [sp, #4]
+ ldrh r0, [r4, #2388]
+ smlabb r0, r0, r7, r3
uxth r0, r0
bl FtlBbmIsBadBlock
cmp r0, #1
- bne .L2825
- add r3, r10, #-1
- b .L2823
-.L2825:
- movs r1, #0
+ beq .L2713
+ ldrh r3, [sp, #4]
movs r2, #16
- strh r10, [r8] @ movhi
- ldr r0, [r5, #3340]
+ movs r1, #0
+ ldr r0, [r6, #3340]
+ strh r3, [fp] @ movhi
bl ftl_memset
- movw r3, #61664
ldr r2, [sp]
+ movw r3, #61664
strh r3, [r2] @ movhi
movs r3, #0
str r3, [r2, #4]
- ldrh r3, [r8]
- ldrh ip, [r7, #2386]
+ ldrh r3, [fp]
+ ldrh r5, [r4, #2388]
strh r3, [r2, #2] @ movhi
- ldrh r3, [r8]
- ldrh r2, [r5, #3404]
- ldr r1, [r6]
- mla ip, ip, r4, r3
+ ldrh r3, [fp]
+ ldrh r2, [r6, #3404]
+ ldr r1, [r9]
+ ldr r0, [r8, #1264]
+ mla r5, r7, r5, r3
lsls r2, r2, #2
- ldr r0, [fp, #1256]
- lsl r3, ip, #10
- str ip, [sp, #4]
- str r3, [fp, #1252]
+ lsls r3, r5, #10
+ str r3, [r8, #1260]
bl ftl_memcpy
- movs r1, #1
- ldr r0, .L2827+12
- mov r2, r1
+ movs r2, #1
+ ldr r0, .L2728+4
+ mov r1, r2
bl FlashEraseBlocks
- movs r1, #1
- ldr r0, .L2827+12
- mov r3, r1
- mov r2, r1
+ movs r3, #1
+ ldr r0, .L2728+4
+ mov r2, r3
+ mov r1, r3
bl FlashProgPages
- ldr r3, [fp, #1248]
+ ldr r3, [r8, #1256]
adds r3, r3, #1
- ldr ip, [sp, #4]
- bne .L2807
- uxth r0, ip
+ bne .L2711
+ uxth r0, r5
bl FtlBbmMapBadBlock
- b .L2808
-.L2807:
- uxth r0, ip
- adds r4, r4, #1
+ b .L2712
+.L2713:
+ ldr r3, [sp, #4]
+ b .L2727
+.L2717:
bl FtlBbmMapBadBlock
- adds r6, r6, #4
- b .L2805
-.L2824:
- movs r4, #0
-.L2812:
- ldrh r3, [r10, #2402]
- uxth r0, r4
- ldr r6, .L2827+8
- adds r4, r4, #1
- cmp r3, r0
- bls .L2826
- bl FtlBbmMapBadBlock
- b .L2812
-.L2826:
- ldrh r4, [r6, #2464]
- movw r7, #65535
- subs r4, r4, #1
- uxth r4, r4
-.L2814:
- ldrh r3, [r10, #2464]
- subs r3, r3, #48
- cmp r4, r3
- ble .L2818
- mov r0, r4
- bl FtlBbmIsBadBlock
- cmp r0, #1
- beq .L2815
- mov r0, r4
- bl FlashTestBlk
- cbz r0, .L2816
- mov r0, r4
- bl FtlBbmMapBadBlock
- b .L2815
-.L2816:
- ldrh r3, [r6, #2452]
+ b .L2716
+.L2720:
+ ldrh r3, [r4, #2456]
cmp r3, r7
- bne .L2817
- strh r4, [r6, #2452] @ movhi
- b .L2815
-.L2817:
- ldr r3, .L2827+8
- strh r4, [r3, #2456] @ movhi
- b .L2818
-.L2815:
- subs r4, r4, #1
- uxth r4, r4
- b .L2814
-.L2818:
- ldr r0, [r5, #228]
- movs r4, #0
- ldrh r3, [r10, #2452]
+ bne .L2721
+ strh r5, [r4, #2456] @ movhi
+ b .L2719
+.L2721:
+ strh r5, [r4, #2460] @ movhi
+.L2722:
+ ldrh r3, [r4, #2456]
+ movs r5, #0
+ ldr r0, [r6, #232]
movs r2, #2
- str r4, [r10, #2460]
+ str r5, [r4, #2464]
movs r1, #1
- strh r4, [r10, #2454] @ movhi
+ strh r5, [r4, #2458] @ movhi
lsls r3, r3, #10
str r3, [r0, #4]
- ldrh r3, [r10, #2456]
+ ldrh r3, [r4, #2460]
lsls r3, r3, #10
str r3, [r0, #40]
bl FlashEraseBlocks
- ldrh r0, [r10, #2452]
+ ldrh r0, [r4, #2456]
bl FtlBbmMapBadBlock
- ldrh r0, [r10, #2456]
+ ldrh r0, [r4, #2460]
bl FtlBbmMapBadBlock
bl FtlBbmTblFlush
- ldr r3, [r10, #2460]
- ldrh r2, [r10, #2456]
+ ldr r3, [r4, #2464]
+ ldrh r2, [r4, #2460]
+ strh r5, [r4, #2458] @ movhi
adds r3, r3, #1
- str r3, [r10, #2460]
- ldrh r3, [r10, #2452]
- strh r4, [r10, #2454] @ movhi
- strh r2, [r10, #2452] @ movhi
- strh r3, [r10, #2456] @ movhi
+ str r3, [r4, #2464]
+ ldrh r3, [r4, #2456]
+ strh r2, [r4, #2456] @ movhi
+ strh r3, [r4, #2460] @ movhi
bl FtlBbmTblFlush
-.L2804:
+.L2708:
movs r0, #0
add sp, sp, #12
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L2828:
+.L2729:
.align 2
-.L2827:
+.L2728:
.word .LANCHOR2
- .word .LANCHOR0+2480
- .word .LANCHOR0
- .word .LANCHOR4+1248
+ .word .LANCHOR4+1256
+ .word .LANCHOR0+2484
.word .LANCHOR4
.fnend
.size FtlMakeBbt, .-FtlMakeBbt
.align 1
.global log2phys
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type log2phys, %function
log2phys:
.fnstart
@ args = 0, pretend = 0, frame = 16
@ frame_needed = 0, uses_anonymous_args = 0
+ ldr r3, .L2745
push {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 r6, .L2845
- mov r9, r0
str r2, [sp, #8]
- mov r10, r1
- ldr r3, [r6, #2448]
- ldrh r2, [r6, #2396]
- cmp r0, r3
- bcs .L2830
- adds r3, r2, #7
- ldr r2, .L2845+4
- lsr r5, r0, r3
+ mov fp, r1
+ mov r8, r3
+ ldr r2, [r3, #2452]
+ str r0, [sp]
+ cmp r0, r2
+ bcs .L2731
+ ldrh r3, [r3, #2398]
+ movs r5, #12
+ ldr r4, .L2745+4
+ adds r3, r3, #7
str r3, [sp, #4]
- ldrh r1, [r6, #2426]
- movs r4, #0
- ldr fp, [r2, #460]
- mov r8, r2
- uxth r5, r5
- movs r2, #12
- b .L2831
-.L2830:
- ldr r3, [sp, #8]
- mov r0, #-1
- cmp r3, #0
- bne .L2832
- str r0, [r1]
- b .L2832
-.L2836:
- adds r4, r4, #1
- mla r0, r2, r4, fp
- ldrh r0, [r0, #-12]
- cmp r0, r5
- beq .L2833
-.L2831:
- uxth r7, r4
- cmp r7, r1
- bcc .L2836
+ movs r3, #0
+ ldr r2, [sp, #4]
+ ldr r7, [r4, #464]
+ lsr r6, r0, r2
+ ldrh r2, [r8, #2430]
+ uxth r10, r6
+.L2732:
+ uxth r9, r3
+ cmp r9, r2
+ bcc .L2737
bl select_l2p_ram_region
- movs r4, #12
- movw r3, #65535
- muls r4, r0, r4
- mov r7, r0
- add r2, fp, r4
- ldrh r1, [fp, r4]
- cmp r1, r3
- bne .L2844
-.L2837:
- ldr r3, [r8, #3388]
- ldr fp, .L2845+4
- ldr r3, [r3, r5, lsl #2]
+ muls r5, r0, r5
+ movw r2, #65535
+ mov r9, r0
+ ldrh r1, [r7, r5]
+ adds r3, r7, r5
+ cmp r1, r2
+ beq .L2738
+ ldr r3, [r3, #4]
cmp r3, #0
- bne .L2838
- ldr r2, [fp, #460]
+ bge .L2738
+ bl flush_l2p_region
+.L2738:
+ ldr r3, [r4, #3388]
+ uxth r6, r6
+ ldr r3, [r3, r6, lsl #2]
+ cmp r3, #0
+ bne .L2739
+ ldr r2, [r4, #464]
movs r1, #255
str r3, [sp, #12]
- add r2, r2, r4
- ldr r0, [r2, #8]
- ldrh r2, [r6, #2398]
+ adds r0, r2, r5
+ ldrh r2, [r8, #2400]
+ ldr r0, [r0, #8]
bl ftl_memset
- ldr r2, [fp, #460]
- strh r5, [r2, r4] @ movhi
- ldr r2, [fp, #460]
- add r4, r4, r2
+ ldr r2, [r4, #464]
ldr r3, [sp, #12]
- str r3, [r4, #4]
-.L2833:
- ldr r3, [sp, #4]
- movs r2, #1
- ldr r1, [sp, #8]
- lsls r2, r2, r3
- movs r3, #12
- subs r2, r2, #1
- and r9, r9, r2
- ldr r2, .L2845+4
- uxth r9, r9
- cbnz r1, .L2834
- ldr r1, [r2, #460]
- mla r3, r3, r7, r1
- ldr r3, [r3, #8]
- ldr r3, [r3, r9, lsl #2]
- str r3, [r10]
- b .L2835
-.L2834:
- muls r3, r7, r3
- ldr r1, [r2, #460]
- ldr r0, [r10]
- add r1, r1, r3
- ldr r1, [r1, #8]
- str r0, [r1, r9, lsl #2]
- ldr r1, [r2, #460]
- strh r5, [r2, #464] @ movhi
- add r3, r3, r1
- ldr r1, [r3, #4]
- orr r1, r1, #-2147483648
- str r1, [r3, #4]
-.L2835:
- ldr r2, [r2, #460]
- movs r3, #12
- mla r7, r3, r7, r2
- ldr r3, [r7, #4]
- adds r2, r3, #1
- beq .L2842
- adds r3, r3, #1
- str r3, [r7, #4]
- b .L2842
-.L2844:
- ldr r3, [r2, #4]
- cmp r3, #0
- bge .L2837
- bl flush_l2p_region
- b .L2837
-.L2838:
- ldr r2, [fp, #460]
- movs r1, #1
- ldr r8, .L2845+24
- add r2, r2, r4
- str r3, [sp, #12]
- add r0, r8, #1248
- ldr r2, [r2, #8]
- str r3, [r8, #1252]
- str r2, [r8, #1256]
- ldr r2, [fp, #3340]
- str r2, [r8, #1260]
- mov r2, r1
- bl FlashReadPages
- ldr r2, [r8, #1260]
- ldrh r2, [r2, #8]
- cmp r2, r5
- ldr r3, [sp, #12]
- beq .L2839
- mov r2, r3
- mov r1, r5
- ldr r0, .L2845+8
- bl printk
- movs r2, #4
- ldr r0, .L2845+12
- mov r3, r2
- ldr r1, [r8, #1260]
- bl rknand_print_hex
- ldrh r3, [r6, #2424]
- ldr r0, .L2845+16
- movs r2, #4
- ldr r1, [fp, #3388]
- bl rknand_print_hex
- movs r3, #1
- str r3, [fp, #224]
- b .L2840
-.L2839:
- ldr r2, [r8, #1248]
- cmp r2, #256
- bne .L2840
- mov r2, r3
- mov r1, r5
- ldr r0, .L2845+20
- bl printk
- ldr r3, [fp, #460]
- add r0, fp, #3408
- mov r1, r5
- add r3, r3, r4
- ldr r2, [r3, #8]
- bl FtlMapWritePage
-.L2840:
- ldr r3, .L2845+4
- movs r1, #0
- ldr r3, [r3, #460]
- adds r2, r3, r4
- str r1, [r2, #4]
- strh r5, [r3, r4] @ movhi
- b .L2833
-.L2842:
- movs r0, #0
-.L2832:
+ strh r10, [r2, r5] @ movhi
+ ldr r2, [r4, #464]
+ add r5, r5, r2
+ str r3, [r5, #4]
+ b .L2734
+.L2731:
+ ldr r3, [sp, #8]
+ mov r0, #-1
+ cbnz r3, .L2730
+ str r0, [fp]
+.L2730:
add sp, sp, #20
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L2846:
+.L2737:
+ adds r3, r3, #1
+ mla r1, r5, r3, r7
+ ldrh r1, [r1, #-12]
+ cmp r1, r10
+ bne .L2732
+.L2734:
+ ldr r2, [sp, #4]
+ movs r3, #1
+ ldr r0, [sp, #8]
+ ldr r1, .L2745+4
+ lsls r3, r3, r2
+ ldr r2, [sp]
+ subs r3, r3, #1
+ ands r3, r3, r2
+ movs r2, #12
+ uxth r3, r3
+ cbnz r0, .L2735
+ ldr r0, [r1, #464]
+ mla r2, r2, r9, r0
+ ldr r2, [r2, #8]
+ ldr r3, [r2, r3, lsl #2]
+ str r3, [fp]
+.L2736:
+ ldr r2, [r1, #464]
+ movs r3, #12
+ mla r9, r3, r9, r2
+ ldr r3, [r9, #4]
+ adds r2, r3, #1
+ beq .L2743
+ adds r3, r3, #1
+ str r3, [r9, #4]
+.L2743:
+ movs r0, #0
+ b .L2730
+.L2735:
+ mul r2, r2, r9
+ ldr r0, [r4, #464]
+ ldr r5, [fp]
+ add r0, r0, r2
+ ldr r0, [r0, #8]
+ str r5, [r0, r3, lsl #2]
+ ldr r3, [r4, #464]
+ strh r10, [r4, #468] @ movhi
+ add r2, r2, r3
+ ldr r3, [r2, #4]
+ orr r3, r3, #-2147483648
+ str r3, [r2, #4]
+ b .L2736
+.L2739:
+ ldr r2, [r4, #464]
+ ldr r7, .L2745+8
+ str r3, [sp, #12]
+ add r2, r2, r5
+ ldr r2, [r2, #8]
+ add r0, r7, #1256
+ str r3, [r7, #1260]
+ str r2, [r7, #1264]
+ ldr r2, [r4, #3340]
+ str r2, [r7, #1268]
+ movs r2, #1
+ mov r1, r2
+ bl FlashReadPages
+ ldr r2, [r7, #1268]
+ ldr r3, [sp, #12]
+ ldrh r2, [r2, #8]
+ cmp r2, r10
+ beq .L2740
+ mov r2, r3
+ mov r1, r6
+ ldr r0, .L2745+12
+ bl printk
+ movs r3, #4
+ ldr r1, [r7, #1268]
+ mov r2, r3
+ ldr r0, .L2745+16
+ bl rknand_print_hex
+ ldrh r3, [r8, #2428]
+ movs r2, #4
+ ldr r1, [r4, #3388]
+ ldr r0, .L2745+20
+ bl rknand_print_hex
+ movs r3, #1
+ str r3, [r4, #228]
+.L2741:
+ ldr r3, .L2745+4
+ movs r1, #0
+ ldr r3, [r3, #464]
+ adds r2, r3, r5
+ str r1, [r2, #4]
+ strh r10, [r3, r5] @ movhi
+ b .L2734
+.L2740:
+ ldr r2, [r7, #1256]
+ cmp r2, #256
+ bne .L2741
+ mov r2, r3
+ mov r1, r6
+ ldr r0, .L2745+24
+ bl printk
+ ldr r3, [r4, #464]
+ mov r1, r6
+ ldr r0, .L2745+28
+ add r3, r3, r5
+ ldr r2, [r3, #8]
+ bl FtlMapWritePage
+ b .L2741
+.L2746:
.align 2
-.L2845:
+.L2745:
.word .LANCHOR0
.word .LANCHOR2
+ .word .LANCHOR4
.word .LC140
.word .LC101
.word .LC141
.word .LC142
- .word .LANCHOR4
+ .word .LANCHOR2+3408
.fnend
.size log2phys, .-log2phys
.align 1
.global FtlWriteDumpData
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FtlWriteDumpData, %function
FtlWriteDumpData:
.fnstart
@@ -17821,110 +18117,114 @@
.save {r4, r5, r6, r7, r8, r9, r10, lr}
.pad #40
sub sp, sp, #40
- ldr r4, .L2865
- ldr r3, [r4, #224]
+ ldr r4, .L2765
+ ldr r3, [r4, #228]
cmp r3, #0
- bne .L2847
- ldrh r2, [r4, #320]
+ bne .L2747
+ ldrh r2, [r4, #324]
cmp r2, #0
- beq .L2849
- ldrb r3, [r4, #324] @ zero_extendqisi2
+ beq .L2749
+ ldrb r3, [r4, #328] @ zero_extendqisi2
cmp r3, #0
- bne .L2849
- ldr r7, .L2865+4
- ldrb r1, [r4, #323] @ zero_extendqisi2
- ldrh r3, [r7, #2388]
+ bne .L2749
+ ldr r7, .L2765+4
+ ldrb r1, [r4, #327] @ zero_extendqisi2
+ ldrh r3, [r7, #2390]
muls r3, r1, r3
cmp r2, r3
- beq .L2849
- ldrb r9, [r4, #326] @ zero_extendqisi2
- ldr r6, [r7, #2448]
- ldrh r8, [r7, #2320]
+ beq .L2749
+ ldrb r9, [r4, #330] @ zero_extendqisi2
cmp r9, #0
- bne .L2847
- subs r6, r6, #1
- mov r1, sp
+ bne .L2747
+ ldr r6, [r7, #2452]
mov r2, r9
+ mov r1, sp
+ ldrh r8, [r7, #2324]
+ subs r6, r6, #1
mov r0, r6
bl log2phys
+ ldr r3, [sp]
ldr r5, [r4, #3340]
ldr r0, [r4, #3316]
- ldr r3, [sp]
- str r6, [sp, #20]
- str r0, [sp, #12]
str r3, [sp, #8]
adds r3, r3, #1
+ str r6, [sp, #20]
+ str r0, [sp, #12]
str r5, [sp, #16]
str r9, [r5, #4]
- beq .L2851
- movs r1, #1
+ beq .L2751
mov r2, r9
+ movs r1, #1
add r0, sp, #4
bl FlashReadPages
- b .L2852
-.L2851:
- movs r1, #255
- ldrh r2, [r7, #2398]
- bl ftl_memset
-.L2852:
+.L2752:
+ ldr r9, .L2765+8
movs r7, #0
- ldr r10, .L2865
lsl r8, r8, #2
+ mov r10, r7
movw r3, #61589
- mov r9, r7
strh r3, [r5] @ movhi
-.L2853:
- cmp r7, r8
- beq .L2854
- ldrh r3, [r4, #320]
- cbz r3, .L2854
+.L2753:
+ cmp r8, r7
+ bne .L2757
+.L2754:
+ movs r3, #1
+.L2764:
+ strb r3, [r4, #330]
+.L2747:
+ add sp, sp, #40
+ @ sp needed
+ pop {r4, r5, r6, r7, r8, r9, r10, pc}
+.L2751:
+ ldrh r2, [r7, #2400]
+ movs r1, #255
+ bl ftl_memset
+ b .L2752
+.L2757:
+ ldrh r3, [r4, #324]
+ cmp r3, #0
+ beq .L2754
ldr r3, [sp, #8]
- adds r7, r7, #1
+ mov r0, r9
str r6, [r5, #8]
- ldr r0, .L2865+8
+ adds r7, r7, #1
str r3, [r5, #12]
- ldrh r3, [r10, #316]
+ ldrh r3, [r4, #320]
strh r3, [r5, #2] @ movhi
bl get_new_active_ppa
- ldr r3, [r10, #512]
+ ldr r3, [r4, #512]
movs r1, #1
str r0, [sp, #8]
add r0, sp, #4
str r3, [r5, #4]
adds r3, r3, #1
adds r2, r3, #1
- mov r2, #0
it eq
- moveq r3, r9
- str r3, [r10, #512]
- mov r3, r2
- bl FlashProgPages
- ldrh r0, [r4, #316]
- bl decrement_vpc_count
- b .L2853
-.L2854:
- movs r3, #1
- b .L2864
-.L2849:
+ moveq r3, r10
+ str r3, [r4, #512]
movs r3, #0
-.L2864:
- strb r3, [r4, #326]
-.L2847:
- add sp, sp, #40
- @ sp needed
- pop {r4, r5, r6, r7, r8, r9, r10, pc}
-.L2866:
+ mov r2, r3
+ bl FlashProgPages
+ ldrh r0, [r4, #320]
+ bl decrement_vpc_count
+ b .L2753
+.L2749:
+ movs r3, #0
+ b .L2764
+.L2766:
.align 2
-.L2865:
+.L2765:
.word .LANCHOR2
.word .LANCHOR0
- .word .LANCHOR2+316
+ .word .LANCHOR2+320
.fnend
.size FtlWriteDumpData, .-FtlWriteDumpData
.align 1
.global l2p_flush
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type l2p_flush, %function
l2p_flush:
.fnstart
@@ -17932,39 +18232,42 @@
@ frame_needed = 0, uses_anonymous_args = 0
push {r3, r4, r5, r6, r7, lr}
.save {r3, r4, r5, r6, r7, lr}
- bl FtlWriteDumpData
movs r4, #0
- ldr r5, .L2872
+ ldr r5, .L2771
movs r7, #12
- ldr r6, .L2872+4
-.L2868:
- ldrh r3, [r5, #2426]
+ ldr r6, .L2771+4
+ bl FtlWriteDumpData
+.L2768:
+ ldrh r3, [r5, #2430]
uxth r0, r4
cmp r3, r0
- bls .L2871
- ldr r3, [r6, #460]
- mla r3, r7, r0, r3
- ldr r3, [r3, #4]
- cmp r3, #0
- bge .L2869
- bl flush_l2p_region
-.L2869:
- adds r4, r4, #1
- b .L2868
-.L2871:
+ bhi .L2770
movs r0, #0
pop {r3, r4, r5, r6, r7, pc}
-.L2873:
+.L2770:
+ ldr r2, [r6, #464]
+ uxth r3, r4
+ mla r3, r7, r3, r2
+ ldr r3, [r3, #4]
+ cmp r3, #0
+ bge .L2769
+ bl flush_l2p_region
+.L2769:
+ adds r4, r4, #1
+ b .L2768
+.L2772:
.align 2
-.L2872:
+.L2771:
.word .LANCHOR0
.word .LANCHOR2
.fnend
.size l2p_flush, .-l2p_flush
.align 1
.global allocate_new_data_superblock
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type allocate_new_data_superblock, %function
allocate_new_data_superblock:
.fnstart
@@ -17973,323 +18276,324 @@
push {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
mov r6, r0
- ldr r4, .L2900
+ ldr r4, .L2799
+ ldr r3, [r4, #228]
+ cbnz r3, .L2774
ldrh r5, [r0]
- ldr r3, [r4, #224]
- cmp r3, #0
- bne .L2875
movw r3, #65535
cmp r5, r3
- beq .L2876
- ldr r3, [r4, #296]
+ beq .L2775
+ ldr r3, [r4, #300]
mov r0, r5
ldrh r3, [r3, r5, lsl #1]
- cbz r3, .L2877
+ cbz r3, .L2776
bl INSERT_DATA_LIST
- b .L2876
-.L2877:
- bl INSERT_FREE_LIST
-.L2876:
- ldr r2, .L2900
+.L2775:
+ ldr r2, .L2799+4
movs r3, #0
strb r3, [r6, #8]
- add r3, r2, #364
- cmp r6, r3
- beq .L2878
- ldr r3, .L2900+4
- ldrh r1, [r3, #2340]
+ cmp r6, r2
+ beq .L2777
+ ldr r3, .L2799+8
+ ldrh r1, [r3, #2344]
cmp r1, #1
- beq .L2878
- ldrb r0, [r3, #144] @ zero_extendqisi2
- cbz r0, .L2879
-.L2878:
+ beq .L2777
+ ldrb r0, [r3, #152] @ zero_extendqisi2
+ cbz r0, .L2778
+.L2777:
movs r3, #1
strb r3, [r6, #8]
- b .L2880
-.L2879:
- add r0, r2, #316
- cmp r6, r0
- bne .L2880
- cmp r1, #3
- beq .L2882
- ldr r2, [r2, #604]
- cmp r2, #1
- bne .L2883
-.L2882:
- movs r2, #1
- strb r2, [r4, #324]
-.L2883:
- ldr r3, [r3, #2244]
- cbz r3, .L2880
- ldr r3, [r4, #532]
- cmp r3, #39
- ittt ls
- movls r2, #1
- ldrls r3, .L2900
- strbls r2, [r3, #324]
-.L2880:
+.L2779:
ldrh r0, [r4, #3460]
movw r3, #65535
cmp r0, r3
- beq .L2885
+ beq .L2784
cmp r5, r0
- bne .L2886
- ldr r3, .L2900
- ldr r3, [r3, #296]
+ bne .L2785
+ ldr r3, [r4, #300]
ldrh r3, [r3, r0, lsl #1]
- cbz r3, .L2887
-.L2886:
+ cbz r3, .L2786
+.L2785:
bl update_vpc_list
-.L2887:
+.L2786:
movw r3, #65535
strh r3, [r4, #3460] @ movhi
-.L2885:
+.L2784:
mov r0, r6
bl allocate_data_superblock
bl l2p_flush
movs r0, #0
bl FtlEctTblFlush
bl FtlVpcTblFlush
-.L2875:
+.L2774:
movs r0, #0
pop {r4, r5, r6, pc}
-.L2901:
+.L2776:
+ bl INSERT_FREE_LIST
+ b .L2775
+.L2778:
+ subs r2, r2, #48
+ cmp r6, r2
+ bne .L2779
+ cmp r1, #3
+ beq .L2781
+ ldr r2, [r4, #1116]
+ cmp r2, #1
+ bne .L2782
+.L2781:
+ movs r2, #1
+ strb r2, [r4, #328]
+.L2782:
+ ldr r3, [r3, #2248]
+ cmp r3, #0
+ beq .L2779
+ ldr r3, [r4, #532]
+ cmp r3, #39
+ itt ls
+ movls r3, #1
+ strbls r3, [r4, #328]
+ b .L2779
+.L2800:
.align 2
-.L2900:
+.L2799:
.word .LANCHOR2
+ .word .LANCHOR2+368
.word .LANCHOR0
.fnend
.size allocate_new_data_superblock, .-allocate_new_data_superblock
.align 1
.global FtlCheckVpc
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FtlCheckVpc, %function
FtlCheckVpc:
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
- push {r0, r1, r4, r5, r6, r7, r8, r9, r10, lr}
- .save {r4, r5, r6, r7, r8, r9, r10, lr}
- .pad #8
+ 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 r4, #0
- ldr r1, .L2924
- ldr r0, .L2924+4
+ ldr r5, .L2821
+ ldr r6, .L2821+4
+ ldr r1, .L2821+8
+ mov r8, r5
+ ldr r0, .L2821+12
bl printk
- ldr r0, .L2924+8
- movs r1, #0
mov r2, #8192
+ movs r1, #0
+ ldr r0, .L2821+4
bl memset
- ldr r5, .L2924+12
- ldr r6, .L2924+16
-.L2903:
- ldr r3, [r5, #2448]
- ldr r9, .L2924+12
+.L2802:
+ ldr r3, [r5, #2452]
cmp r4, r3
- bcs .L2922
- mov r0, r4
- add r1, sp, #4
+ bcc .L2804
+ ldr r5, .L2821+16
+ movs r4, #0
+ ldr r9, .L2821+4
+ mov r7, r4
+ ldr r10, .L2821+28
+.L2805:
+ ldrh r2, [r8, #2332]
+ uxth r3, r4
+ cmp r2, r3
+ bhi .L2807
+ ldr r4, [r5, #312]
+ cbz r4, .L2808
+ ldr r3, [r5, #292]
+ movs r6, #0
+ ldrh r8, [r5, #316]
+ mov fp, #6
+ ldr r9, .L2821+4
+ subs r4, r4, r3
+ ldr r3, .L2821+20
+ asrs r4, r4, #1
+ ldr r10, .L2821+32
+ muls r4, r3, r4
+ uxth r4, r4
+.L2809:
+ uxth r3, r6
+ cmp r8, r3
+ bls .L2808
+ ldr r3, [r5, #300]
+ ldrh r2, [r3, r4, lsl #1]
+ cbz r2, .L2810
+ movs r7, #1
+ ldrh r3, [r9, r4, lsl #1]
+ mov r1, r4
+ mov r0, r10
+ bl printk
+.L2810:
+ mul r4, fp, r4
+ ldr r3, [r5, #292]
+ adds r6, r6, #1
+ ldrh r4, [r3, r4]
+ movw r3, #65535
+ cmp r4, r3
+ bne .L2809
+.L2808:
+ mov r1, r7
+ ldr r0, .L2821+24
+ bl printk
+ add sp, sp, #12
+ @ sp needed
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L2804:
movs r2, #0
+ add r1, sp, #4
+ mov r0, r4
bl log2phys
ldr r0, [sp, #4]
adds r3, r0, #1
- beq .L2904
+ beq .L2803
ubfx r0, r0, #10, #16
bl P2V_block_in_plane
- add r0, r6, r0, lsl #1
- ldrh r3, [r0, #1336]
+ ldrh r3, [r6, r0, lsl #1]
adds r3, r3, #1
- strh r3, [r0, #1336] @ movhi
-.L2904:
+ strh r3, [r6, r0, lsl #1] @ movhi
+.L2803:
adds r4, r4, #1
- b .L2903
-.L2922:
- movs r7, #0
- ldr r8, .L2924+20
- ldr r10, .L2924+16
- mov r6, r7
-.L2906:
- ldrh r3, [r9, #2328]
- uxth r4, r7
- ldr r5, .L2924+20
- cmp r3, r4
- bls .L2923
- ldr r3, [r8, #296]
- add r5, r10, r4, lsl #1
- ldrh r2, [r3, r4, lsl #1]
- ldrh r3, [r5, #1336]
+ b .L2802
+.L2807:
+ ldr r3, [r5, #300]
+ uxth r6, r4
+ ldrh r2, [r3, r6, lsl #1]
+ ldrh r3, [r9, r6, lsl #1]
cmp r2, r3
- beq .L2907
- ldr r0, .L2924+24
- mov r1, r4
+ beq .L2806
+ mov r1, r6
+ mov r0, r10
bl printk
- ldr r3, [r8, #296]
+ ldr r3, [r5, #300]
movw r2, #65535
- ldrh r3, [r3, r4, lsl #1]
+ ldrh r3, [r3, r6, lsl #1]
cmp r3, r2
- beq .L2907
- ldrh r2, [r5, #1336]
+ beq .L2806
+ ldrh r2, [r9, r6, lsl #1]
cmp r2, r3
it hi
- movhi r6, #1
-.L2907:
- adds r7, r7, #1
- b .L2906
-.L2923:
- ldr r3, [r5, #308]
- cbz r3, .L2909
- ldr r2, [r5, #288]
- movs r7, #0
- ldrh r8, [r5, #312]
- subs r3, r3, r2
- ldr r2, .L2924+28
- ldr r9, .L2924+16
- asrs r3, r3, #1
- muls r3, r2, r3
- uxth r4, r3
-.L2910:
- uxth r3, r7
- cmp r3, r8
- bcs .L2909
- ldr r3, [r5, #296]
- ldrh r2, [r3, r4, lsl #1]
- cbz r2, .L2911
- add r3, r9, r4, lsl #1
- ldr r0, .L2924+32
- mov r1, r4
- movs r6, #1
- ldrh r3, [r3, #1336]
- bl printk
-.L2911:
- movs r3, #6
- ldr r2, [r5, #288]
- adds r7, r7, #1
- muls r4, r3, r4
- movw r3, #65535
- ldrh r4, [r2, r4]
- cmp r4, r3
- bne .L2910
-.L2909:
- mov r1, r6
- ldr r0, .L2924+36
- bl printk
- add sp, sp, #8
- @ sp needed
- pop {r4, r5, r6, r7, r8, r9, r10, pc}
-.L2925:
+ movhi r7, #1
+.L2806:
+ adds r4, r4, #1
+ b .L2805
+.L2822:
.align 2
-.L2924:
- .word .LANCHOR3+204
- .word .LC110
- .word .LANCHOR4+1336
+.L2821:
.word .LANCHOR0
- .word .LANCHOR4
+ .word check_valid_page_count_table
+ .word .LANCHOR3+191
+ .word .LC110
.word .LANCHOR2
- .word .LC143
.word -1431655765
- .word .LC144
.word .LC145
+ .word .LC143
+ .word .LC144
.fnend
.size FtlCheckVpc, .-FtlCheckVpc
.align 1
.global Ftlscanalldata
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type Ftlscanalldata, %function
Ftlscanalldata:
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
- push {r4, r5, r6, r7, lr}
- .save {r4, r5, r6, r7, lr}
+ push {r4, r5, r6, r7, r8, lr}
+ .save {r4, r5, r6, r7, r8, lr}
+ movs r5, #0
+ ldr r4, .L2837
+ .pad #32
+ sub sp, sp, #32
movs r1, #0
- .pad #36
- sub sp, sp, #36
- ldr r0, .L2941
+ ldr r7, .L2837+4
+ add r8, r4, #1256
+ ldr r0, .L2837+8
bl printk
- ldr r7, .L2941+4
- ldr r5, .L2941+8
- movs r4, #0
-.L2927:
- ldr r3, [r7, #2448]
- cmp r4, r3
- bcs .L2940
- mov r0, r4
- add r1, sp, #28
+.L2824:
+ ldr r3, [r7, #2452]
+ cmp r5, r3
+ bcc .L2830
+ add sp, sp, #32
+ @ sp needed
+ pop {r4, r5, r6, r7, r8, pc}
+.L2830:
movs r2, #0
+ add r1, sp, #28
+ mov r0, r5
bl log2phys
- ubfx r3, r4, #0, #11
- cbnz r3, .L2928
- ldr r0, .L2941+12
- mov r1, r4
+ ubfx r3, r5, #0, #11
+ cbnz r3, .L2825
ldr r2, [sp, #28]
+ mov r1, r5
+ ldr r0, .L2837+12
bl printk
-.L2928:
+.L2825:
ldr r3, [sp, #28]
adds r2, r3, #1
- beq .L2930
- str r3, [r5, #1252]
+ beq .L2827
+ str r3, [r4, #1260]
movs r1, #1
- ldr r3, .L2941+16
- ldr r0, .L2941+20
- str r4, [r5, #1264]
+ ldr r3, .L2837+16
+ mov r0, r8
+ str r5, [r4, #1272]
ldr r2, [r3, #3316]
ldr r6, [r3, #3340]
- str r2, [r5, #1256]
+ str r2, [r4, #1264]
movs r2, #0
- str r6, [r5, #1260]
- str r2, [r5, #1248]
+ str r6, [r4, #1268]
+ str r2, [r4, #1256]
bl FlashReadPages
- ldr r3, [r5, #1248]
- ldr r2, .L2941+8
+ ldr r3, [r4, #1256]
cmp r3, #256
- beq .L2931
+ beq .L2828
adds r3, r3, #1
- beq .L2931
+ beq .L2828
ldr r3, [r6, #8]
- cmp r3, r4
- beq .L2930
-.L2931:
- ldr r3, [r2, #1260]
- ldr r1, [r2, #1256]
- ldr r0, [r3, #4]
- str r0, [sp]
- ldr r0, [r3, #8]
- str r0, [sp, #4]
- ldr r0, [r3, #12]
- str r0, [sp, #8]
- ldr r0, [r1]
- str r0, [sp, #12]
- ldr r1, [r1, #4]
- ldr r0, .L2941+24
+ cmp r5, r3
+ beq .L2827
+.L2828:
+ ldr r2, [r4, #1264]
+ ldr r3, [r4, #1268]
+ ldr r0, .L2837+20
+ ldr r1, [r2, #4]
str r1, [sp, #16]
- mov r1, r4
- ldr r2, [r2, #1252]
+ mov r1, r5
+ ldr r2, [r2]
+ str r2, [sp, #12]
+ ldr r2, [r3, #12]
+ str r2, [sp, #8]
+ ldr r2, [r3, #8]
+ str r2, [sp, #4]
+ ldr r2, [r3, #4]
+ str r2, [sp]
+ ldr r2, [r4, #1260]
ldr r3, [r3]
bl printk
-.L2930:
- adds r4, r4, #1
- b .L2927
-.L2940:
- add sp, sp, #36
- @ sp needed
- pop {r4, r5, r6, r7, pc}
-.L2942:
+.L2827:
+ adds r5, r5, #1
+ b .L2824
+.L2838:
.align 2
-.L2941:
- .word .LC146
- .word .LANCHOR0
+.L2837:
.word .LANCHOR4
+ .word .LANCHOR0
+ .word .LC146
.word .LC147
.word .LANCHOR2
- .word .LANCHOR4+1248
.word .LC148
.fnend
.size Ftlscanalldata, .-Ftlscanalldata
.align 1
.global FtlReUsePrevPpa
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FtlReUsePrevPpa, %function
FtlReUsePrevPpa:
.fnstart
@@ -18299,911 +18603,907 @@
.save {r4, r5, r6, r7, lr}
.pad #12
mov r6, r0
+ ldr r5, .L2848
ubfx r0, r1, #10, #16
str r1, [sp, #4]
bl P2V_block_in_plane
- ldr r5, .L2952
- ldr r4, [r5, #296]
- ldrh r3, [r4, r0, lsl #1]
- cbnz r3, .L2944
- ldr r4, [r5, #308]
- cbz r4, .L2945
- ldr r1, [r5, #288]
- mov lr, #6
- ldr r2, .L2952+4
- movw ip, #65535
+ ldr r2, [r5, #300]
+ ldrh r3, [r2, r0, lsl #1]
+ cbnz r3, .L2840
+ ldr r4, [r5, #312]
+ cbz r4, .L2841
+ ldr r1, [r5, #292]
+ mov ip, #6
+ ldr r2, .L2848+4
+ movw lr, #65535
+ ldrh r7, [r5, #316]
subs r4, r4, r1
- ldrh r7, [r5, #312]
asrs r4, r4, #1
muls r4, r2, r4
uxth r4, r4
-.L2946:
+.L2842:
uxth r2, r3
- cmp r2, r7
- bcs .L2945
+ cmp r7, r2
+ bls .L2841
cmp r4, r0
- bne .L2947
+ bne .L2843
mov r1, r4
- ldr r0, .L2952+8
+ ldr r0, .L2848+8
bl List_remove_node
- ldrh r3, [r5, #312]
+ ldrh r3, [r5, #316]
mov r0, r4
subs r3, r3, #1
- strh r3, [r5, #312] @ movhi
+ strh r3, [r5, #316] @ movhi
bl INSERT_DATA_LIST
- ldr r2, [r5, #296]
+ ldr r2, [r5, #300]
ldrh r3, [r2, r4, lsl #1]
adds r3, r3, #1
strh r3, [r2, r4, lsl #1] @ movhi
- b .L2945
-.L2947:
- mul r4, lr, r4
- adds r3, r3, #1
- ldrh r4, [r1, r4]
- cmp r4, ip
- bne .L2946
- b .L2945
-.L2944:
- adds r3, r3, #1
- strh r3, [r4, r0, lsl #1] @ movhi
-.L2945:
- mov r0, r6
- add r1, sp, #4
+.L2841:
movs r2, #1
+ add r1, sp, #4
+ mov r0, r6
bl log2phys
add sp, sp, #12
@ sp needed
pop {r4, r5, r6, r7, pc}
-.L2953:
+.L2843:
+ mul r4, ip, r4
+ adds r3, r3, #1
+ ldrh r4, [r1, r4]
+ cmp r4, lr
+ bne .L2842
+ b .L2841
+.L2840:
+ adds r3, r3, #1
+ strh r3, [r2, r0, lsl #1] @ movhi
+ b .L2841
+.L2849:
.align 2
-.L2952:
+.L2848:
.word .LANCHOR2
.word -1431655765
- .word .LANCHOR2+308
+ .word .LANCHOR2+312
.fnend
.size FtlReUsePrevPpa, .-FtlReUsePrevPpa
.align 1
.global FtlRecoverySuperblock
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FtlRecoverySuperblock, %function
FtlRecoverySuperblock:
.fnstart
- @ args = 0, pretend = 0, frame = 64
+ @ args = 0, pretend = 0, frame = 56
@ 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}
- movw r7, #65535
+ movw r2, #65535
ldrh r3, [r0]
- .pad #68
- sub sp, sp, #68
+ .pad #60
+ sub sp, sp, #60
mov r4, r0
- cmp r3, r7
- beq .L3101
- ldrh r3, [r0, #2]
- movs r5, #0
- ldr r6, .L3117
- str r3, [sp, #12]
- ldrb r3, [r0, #6] @ zero_extendqisi2
- ldr r2, [sp, #12]
- str r3, [sp, #28]
- ldrh r3, [r6, #2388]
cmp r3, r2
- bne .L2957
- strh r5, [r0, #4] @ movhi
- strb r5, [r0, #6]
- b .L3101
-.L2957:
+ beq .L2999
+ ldrh r3, [r0, #2]
+ ldr r6, .L3009
+ str r3, [sp, #8]
+ ldr r1, [sp, #8]
+ ldrh r3, [r6, #2390]
+ cmp r3, r1
+ mov r3, #0
+ bne .L2853
+ strh r3, [r0, #4] @ movhi
+.L3007:
+ strb r3, [r4, #6]
+.L2999:
+ movs r0, #0
+ add sp, sp, #60
+ @ sp needed
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L2853:
ldrh r0, [r0, #16]
-.L2958:
- cmp r0, r7
- add r5, r5, #1
- bne .L3112
- uxth r3, r5
- adds r3, r3, #8
- ldrh r0, [r4, r3, lsl #1]
- b .L2958
-.L3112:
+.L2854:
+ cmp r0, r2
+ add r3, r3, #1
+ beq .L2855
ldrb r1, [r4, #8] @ zero_extendqisi2
+ ldrb r3, [r4, #6] @ zero_extendqisi2
cmp r1, #1
- bne .L2960
+ str r3, [sp, #20]
+ bne .L2856
bl FtlGetLastWrittenPage
- adds r2, r0, #1
+ adds r7, r0, #1
mov r5, r0
- beq .L2961
- ldrb r3, [r6, #144] @ zero_extendqisi2
- cbnz r3, .L3103
- ldr r3, .L3117
- add r3, r3, r0, lsl #1
- ldrh r7, [r3, #148]
- b .L3035
-.L2960:
+ beq .L2857
+ ldrb r3, [r6, #152] @ zero_extendqisi2
+ cmp r3, #0
+ bne .L2931
+ add r3, r6, r0, lsl #1
+ ldrh r7, [r3, #156]
+.L2858:
+ ldr r3, .L3009+4
+ movs r2, #0
+ ldrh ip, [r6, #2324]
+ movw r9, #65535
+ mov r10, #36
+ mov fp, r2
+ ldr r0, [r3, #3304]
+ ldr r8, [r3, #1148]
+ ldrh r3, [r6, #2402]
+ mov r6, r2
+ str r3, [sp, #4]
+ add r3, r4, #16
+ mov lr, r3
+ str r3, [sp, #16]
+.L2859:
+ uxth r3, r2
+ cmp ip, r3
+ bhi .L2862
+ ldrb r3, [r4, #8] @ zero_extendqisi2
+ cmp r3, #1
+ bne .L2932
+ ldr r3, .L3009
+ ldrb r3, [r3, #152] @ zero_extendqisi2
+ adds r3, r3, #0
+ it ne
+ movne r3, #1
+.L3000:
+ str r3, [sp, #24]
+ mov r1, r6
+ ldr r2, [sp, #24]
+ mov r9, #0
+ bl FlashReadPages
+ ldr r3, .L3009+4
+ ldr r2, [r3, #512]
+ mov r8, r3
+ mov fp, r3
+ add r10, r2, #-1
+ movw r2, #65535
+ str r2, [sp, #12]
+.L2864:
+ uxth r3, r9
+ cmp r6, r3
+ bhi .L2869
+ bne .L2867
+ ldr r3, [r8, #3304]
+ adds r5, r5, #1
+ uxth fp, r5
+ ldr r0, [r3, #4]
+.L3001:
+ ubfx r0, r0, #10, #16
+ bl P2V_plane
+ ldrb r2, [r4, #8] @ zero_extendqisi2
+ str r0, [sp, #4]
+ ldr r3, .L3009
+ cmp r2, #1
+ bne .L2871
+ ldrb r1, [r3, #152] @ zero_extendqisi2
+ cbnz r1, .L2871
+ add r5, r3, fp, lsl #1
+ ldrh fp, [r5, #156]
+.L2871:
+ ldrh r3, [r3, #2390]
+ cmp r3, fp
+ itttt eq
+ moveq r3, #0
+ strheq fp, [r4, #2] @ movhi
+ strbeq r3, [r4, #6]
+ strheq r3, [r4, #4] @ movhi
+ ldrh r3, [sp, #20]
+ str r3, [sp, #28]
+ ldr r3, [sp, #8]
+ cmp fp, r3
+ bne .L2873
+ ldr r3, [sp, #4]
+ ldr r1, [sp, #28]
+ cmp r3, r1
+ bne .L2873
+ mov r2, r3
+.L3008:
+ mov r1, fp
+ mov r0, r4
+ bl ftl_sb_update_avl_pages
+ b .L2999
+.L2855:
+ uxth r1, r3
+ adds r1, r1, #8
+ ldrh r0, [r4, r1, lsl #1]
+ b .L2854
+.L2856:
movs r1, #0
bl FtlGetLastWrittenPage
- adds r3, r0, #1
mov r5, r0
- beq .L2961
-.L3103:
+ adds r0, r0, #1
+ beq .L2857
+.L2931:
mov r7, r5
-.L3035:
- ldr r3, .L3117+4
- movw r9, #65535
- ldrh ip, [r6, #2320]
- mov r10, #36
- ldrh r0, [r6, #2400]
- ldr r2, [r3, #3304]
- ldr r8, [r3, #1148]
- add r3, r4, #14
- str r3, [sp, #20]
- str r2, [sp, #4]
- movs r2, #0
- mov lr, r3
- mov r6, r2
- mov fp, r2
- b .L2963
-.L2961:
+ b .L2858
+.L2857:
movs r3, #0
strh r3, [r4, #2] @ movhi
- strb r3, [r4, #6]
- b .L3101
-.L2966:
- ldrh r3, [lr, #2]!
+ b .L3007
+.L2862:
+ ldrh r3, [lr], #2
cmp r3, r9
- beq .L2964
- ldr r1, [sp, #4]
+ beq .L2860
+ mla r1, r10, r6, r0
orr r3, r7, r3, lsl #10
- mla r1, r10, r6, r1
str r3, [r1, #4]
- mov r3, r0
+ ldr r3, [sp, #4]
muls r3, r6, r3
add r6, r6, #1
it mi
addmi r3, r3, #3
- str fp, [r1, #8]
uxth r6, r6
bic r3, r3, #3
add r3, r3, r8
+ str fp, [r1, #8]
str r3, [r1, #12]
-.L2964:
+.L2860:
adds r2, r2, #1
-.L2963:
- uxth r3, r2
- cmp r3, ip
- bcc .L2966
- ldrb r3, [r4, #8] @ zero_extendqisi2
- cmp r3, #1
- bne .L3037
- ldr r3, .L3117
- ldrb r1, [r3, #144] @ zero_extendqisi2
- adds r3, r1, #0
- it ne
- movne r3, #1
- b .L3104
-.L3037:
+ b .L2859
+.L2932:
movs r3, #0
-.L3104:
- ldr r8, .L3117+4
- mov r1, r6
- str r3, [sp, #24]
- mov fp, #0
- ldr r2, [sp, #24]
- ldr r0, [r8, #3304]
- bl FlashReadPages
- ldr r3, [r8, #512]
- subs r3, r3, #1
- str r8, [sp, #8]
- str r3, [sp, #4]
- movw r3, #65535
- str r3, [sp, #16]
-.L2968:
- uxth r9, fp
- cmp r9, r6
- bcs .L2975
- movs r1, #36
- ldr r0, [r8, #3304]
- mul r1, r1, fp
- add lr, r0, r1
- ldr r1, [r0, r1]
- cbnz r1, .L2969
- ldr r3, [lr, #12]
- ldr r10, [r3, #4]
- cmp r10, #-1
- beq .L2970
- mov r0, r10
- ldr r1, [r8, #512]
- str r3, [sp, #32]
+ b .L3000
+.L2869:
+ movs r3, #36
+ ldr r1, [fp, #3304]
+ mul r3, r3, r9
+ adds r2, r1, r3
+ ldr r3, [r1, r3]
+ cbnz r3, .L2865
+ ldr r2, [r2, #12]
+ ldr r3, [r2, #4]
+ adds r1, r3, #1
+ beq .L2866
+ ldr r1, [fp, #512]
+ mov r0, r3
bl ftl_cmp_data_ver
- ldr r3, [sp, #32]
- cbz r0, .L2970
- add r1, r10, #1
- str r1, [r8, #512]
-.L2970:
- ldr r1, [r3]
- adds r1, r1, #1
- bne .L2971
-.L2975:
- cmp r9, r6
- ldr r6, .L3117+4
- bne .L3102
- ldr r3, [r6, #3304]
- adds r5, r5, #1
- uxth r10, r5
- ldr r0, [r3, #4]
- b .L3105
-.L2969:
- ldr r1, [lr, #4]
- ldr r0, .L3117+8
- bl printk
- uxth r3, r7
- ldrh r1, [r4]
- str r3, [sp, #16]
- ldr r3, .L3117+12
- strh r1, [r3, #840] @ movhi
-.L2971:
- add fp, fp, #1
- b .L2968
-.L3102:
- ldr r3, [sp, #8]
+ cbz r0, .L2866
+ adds r3, r3, #1
+ str r3, [fp, #512]
+.L2866:
+ ldr r3, [r2]
+ adds r3, r3, #1
+ bne .L2868
+.L2867:
+ ldr r3, [r8, #3304]
+ uxth r9, r9
movs r2, #36
- uxth r10, r5
- ldr r3, [r3, #3304]
+ uxth fp, r5
mla r9, r2, r9, r3
ldr r0, [r9, #4]
-.L3105:
- ubfx r0, r0, #10, #16
- bl P2V_plane
- ldrb r5, [r4, #8] @ zero_extendqisi2
- ldr r2, .L3117
- cmp r5, #1
- str r0, [sp, #8]
- bne .L2977
- ldrb r3, [r2, #144] @ zero_extendqisi2
- cbnz r3, .L2977
- add r3, r2, r10, lsl #1
- ldrh r10, [r3, #148]
-.L2977:
- ldrh r3, [r2, #2388]
- cmp r3, r10
- itttt eq
- strheq r10, [r4, #2] @ movhi
- moveq r3, #0
- strbeq r3, [r4, #6]
- strheq r3, [r4, #4] @ movhi
- ldrh r3, [sp, #28]
- str r3, [sp, #32]
- ldr r3, [sp, #12]
- cmp r10, r3
- bne .L2979
- ldr r3, [sp, #8]
- ldr r2, [sp, #32]
- cmp r3, r2
- bne .L2979
- mov r0, r4
- mov r1, r10
- mov r2, r3
- b .L3110
-.L2979:
- ldr r2, [sp, #16]
+ b .L3001
+.L2865:
+ ldr r1, [r2, #4]
+ ldr r0, .L3009+8
+ bl printk
+ uxth r3, r7
+ ldr r2, .L3009+12
+ str r3, [sp, #12]
+ ldrh r3, [r4]
+ strh r3, [r2, #1342] @ movhi
+.L2868:
+ add r9, r9, #1
+ b .L2864
+.L2873:
+ ldr r1, [sp, #12]
movw r3, #65535
- cmp r2, r3
- bne .L2980
- cmp r5, #0
- bne .L2981
-.L2980:
- ldr r3, [r6, #3472]
- uxth fp, r7
+ cmp r1, r3
+ bne .L2874
+ cmp r2, #0
+ bne .L2875
+.L2874:
+ uxth r3, r7
+ uxth r7, r7
+ str r3, [sp, #20]
mov r9, #-1
- ldr r7, .L3117+4
+ ldr r3, [r8, #3472]
adds r3, r3, #1
+ it eq
+ streq r10, [r8, #3472]
+ ldr r3, [r8, #3472]
mov r8, r9
- ittt eq
- ldreq r3, .L3117+4
- ldreq r2, [sp, #4]
- streq r2, [r3, #3472]
- ldr r3, [r6, #3472]
- str r3, [sp, #16]
- ldr r3, [sp, #12]
+ str r3, [sp, #32]
+ ldr r3, [sp, #8]
adds r3, r3, #7
- cmp fp, r3
- itet gt
- subgt r5, fp, #7
- ldrle r5, [sp, #12]
+ cmp r7, r3
+ ldr r7, .L3009+4
+ itett gt
+ ldrgt r3, [sp, #20]
+ ldrle r5, [sp, #8]
+ subgt r5, r3, #7
uxthgt r5, r5
-.L2984:
- cmp r5, fp
- bhi .L2997
- ldr r3, .L3117
- ldr r1, [sp, #20]
- ldrh ip, [r3, #2320]
- ldr r3, [r7, #3304]
- str r3, [sp, #28]
+.L2878:
+ ldr r3, [sp, #20]
+ cmp r5, r3
+ bhi .L2891
+ ldr r3, .L3009
+ movw lr, #65535
+ ldr r0, [r7, #3304]
+ mov ip, #36
+ ldrh r3, [r3, #2324]
+ str r3, [sp, #36]
+ ldr r3, [sp, #16]
+ str r3, [sp, #12]
movs r3, #0
mov r6, r3
-.L2998:
- uxth r2, r3
- cmp r2, ip
- bcs .L3113
- ldrh r2, [r1, #2]!
- movw r0, #65535
- cmp r2, r0
- beq .L2985
- ldr r0, [sp, #28]
- mov lr, #36
- orr r2, r5, r2, lsl #10
- mla r0, lr, r6, r0
+ b .L2892
+.L2880:
+ ldr r1, [sp, #12]
+ ldrh r2, [r1], #2
+ cmp r2, lr
+ str r1, [sp, #12]
+ beq .L2879
+ mla r1, ip, r6, r0
adds r6, r6, #1
+ orr r2, r5, r2, lsl #10
uxth r6, r6
- str r2, [r0, #4]
-.L2985:
+ str r2, [r1, #4]
+.L2879:
adds r3, r3, #1
- b .L2998
-.L3113:
+.L2892:
+ ldr r1, [sp, #36]
+ uxth r2, r3
+ cmp r2, r1
+ bcc .L2880
mov r1, r6
ldr r2, [sp, #24]
- ldr r0, [r7, #3304]
bl FlashReadPages
- ldr r3, .L3117
+ ldr r3, .L3009
movs r2, #36
- add lr, r7, r5, lsl #1
+ add ip, r7, r5, lsl #1
movw r1, #65535
- ldrb r0, [r3, #144] @ zero_extendqisi2
+ ldrb r0, [r3, #152] @ zero_extendqisi2
ldr r3, [r7, #3304]
mla r6, r2, r6, r3
-.L2987:
- cmp r3, r6
- beq .L3114
+.L2881:
+ cmp r6, r3
+ bne .L2890
+ adds r5, r5, #1
+ uxth r5, r5
+ b .L2878
+.L2890:
ldr r2, [r3]
- cbnz r2, .L2988
+ cbnz r2, .L2882
ldr r2, [r3, #12]
- ldrh ip, [r2]
- cmp ip, r1
- beq .L2989
+ ldrh lr, [r2]
+ cmp lr, r1
+ beq .L2883
ldr r2, [r2, #4]
cmp r2, #-1
- beq .L2989
+ beq .L2883
cmp r9, #-1
ldr r8, [r7, #3472]
str r2, [r7, #3472]
- bne .L2989
- ldrh r2, [lr, #1220]
+ bne .L2883
+ ldrh r2, [ip, #1220]
cmp r2, r1
- bne .L2990
- cmp r0, #0
- beq .L2989
-.L2990:
- ldr r2, [sp, #4]
- cmp r8, r2
- ite ne
+ bne .L2884
+ cbz r0, .L2883
+.L2884:
+ cmp r10, r8
+ it ne
movne r9, r8
- moveq r9, #-1
- b .L2989
-.L3118:
+.L2883:
+ adds r3, r3, #36
+ b .L2881
+.L3010:
.align 2
-.L3117:
+.L3009:
.word .LANCHOR0
.word .LANCHOR2
.word .LC149
- .word .LANCHOR5
-.L2988:
- ldr r3, .L3119
+ .word .LANCHOR4
+.L2882:
+ ldr r3, .L3011
ldrh r2, [r4]
- strh r2, [r3, #840] @ movhi
+ strh r2, [r3, #1342] @ movhi
ldrb r3, [r4, #8] @ zero_extendqisi2
- cbnz r3, .L2981
- ldr r3, .L3119+4
+ cbnz r3, .L2875
+ ldr r3, .L3011+4
movw r2, #65535
add r5, r3, r5, lsl #1
ldrh r1, [r5, #1220]
cmp r1, r2
- bne .L2992
+ bne .L2886
cmp r9, #-1
- beq .L2993
+ beq .L2887
str r9, [r3, #3472]
- b .L2981
-.L2993:
- ldr r2, [sp, #16]
- ldr r1, [sp, #4]
- cmp r2, r1
- bne .L3106
- ldr r2, [r3, #3472]
- b .L3111
-.L2992:
- ldr r2, [sp, #4]
- cmp r8, r2
- beq .L2995
- cmp r8, #-1
- beq .L2981
- str r8, [r3, #3472]
- b .L2981
-.L2995:
- ldr r2, [r3, #3472]
- ldr r1, [sp, #4]
- cmp r2, r1
- beq .L2981
-.L3111:
- subs r2, r2, #1
- b .L3106
-.L2989:
- adds r3, r3, #36
- b .L2987
-.L3114:
- adds r5, r5, #1
- uxth r5, r5
- b .L2984
-.L2997:
- ldr r3, .L3119+4
- mov r2, #-1
-.L3106:
- str r2, [r3, #3472]
-.L2981:
- ldr r3, .L3119
+.L2875:
+ ldr r6, [sp, #8]
movs r2, #1
- ldr fp, [sp, #12]
- ldr r5, .L3119+4
- strh r2, [r3, #842] @ movhi
-.L2999:
- ldr r3, .L3119+8
- movw r9, #65535
- ldr r1, [r5, #3304]
- movs r6, #0
- ldr r7, [sp, #20]
- ldrh r8, [r3, #2320]
- ldrb r0, [r3, #144] @ zero_extendqisi2
- str r6, [sp, #16]
-.L3000:
- uxth r3, r6
- cmp r3, r8
- bcs .L3115
- ldrh r3, [r7, #2]!
- cmp r3, r9
- beq .L3001
- ldr r2, [sp, #16]
- mov lr, #36
- orr r3, fp, r3, lsl #10
- mla r2, lr, r2, r1
- str r3, [r2, #4]
- ldrb lr, [r4, #8] @ zero_extendqisi2
- cmp lr, #1
- bne .L3002
- cbz r0, .L3002
- orr r3, r3, #-2147483648
- str r3, [r2, #4]
-.L3002:
- ldr r3, [sp, #16]
- add ip, r3, #1
- uxth r3, ip
- str r3, [sp, #16]
-.L3001:
- adds r6, r6, #1
- b .L3000
-.L3115:
+ ldr r5, .L3011+4
+ ldr r3, .L3011
+ strh r2, [r3, #1344] @ movhi
+.L2893:
+ ldr r3, .L3011+8
+ movw r8, #65535
ldr r0, [r5, #3304]
- ldr r1, [sp, #16]
+ mov r9, #36
+ movs r2, #0
+ ldrh ip, [r3, #2324]
+ ldrb r3, [r3, #152] @ zero_extendqisi2
+ str r2, [sp, #12]
+ mov r1, r3
+ ldr r3, [sp, #16]
+ str r3, [sp, #20]
+.L2894:
+ uxth r3, r2
+ cmp ip, r3
+ bhi .L2897
ldr r2, [sp, #24]
+ ldr r1, [sp, #12]
bl FlashReadPages
movs r3, #0
-.L3109:
- str r3, [sp, #28]
- ldr r2, [sp, #16]
- ldrh r3, [sp, #28]
- cmp r3, r2
- bcs .L3116
- ldr r3, [sp, #28]
- movs r6, #36
- ldr r9, [r5, #3304]
- muls r6, r3, r6
- add r8, r9, r6
- ldr r7, [r8, #4]
- ubfx r0, r7, #10, #16
- str r7, [sp, #60]
- bl P2V_plane
- ldr r3, [sp, #12]
- cmp fp, r3
- bcc .L3005
- bne .L3006
- ldr r3, [sp, #32]
- cmp r0, r3
- bcc .L3005
.L3006:
- cmp fp, r10
- bne .L3007
- ldr r3, [sp, #8]
- cmp r0, r3
- beq .L3008
-.L3007:
- ldr r3, [r9, r6]
- adds r3, r3, #1
- beq .L3009
- ldr r8, [r8, #12]
- movw r3, #61589
- ldrh r2, [r8]
+ str r3, [sp, #20]
+ ldr r2, [sp, #12]
+ ldrh r3, [sp, #20]
cmp r2, r3
- beq .L3010
- ldrh r0, [r4]
- b .L3107
-.L3010:
- ldr r3, [r8, #4]
- adds r7, r3, #1
- str r3, [sp, #4]
- beq .L3011
- mov r0, r3
- ldr r1, [r5, #512]
- bl ftl_cmp_data_ver
- cbz r0, .L3011
- ldr r3, [sp, #4]
+ bhi .L2925
+ ldrb r3, [r4, #8] @ zero_extendqisi2
+ adds r6, r6, #1
+ uxth r6, r6
+ ldr r2, .L3011+8
+ cmp r3, #1
+ bne .L2926
+ ldrb r3, [r2, #152] @ zero_extendqisi2
+ cbz r3, .L2926
+ ldrh r3, [r2, #2392]
+ cmp r3, r6
+ bne .L2926
+ cmp fp, r6
+ beq .L2902
+.L2926:
+ ldrh r3, [r2, #2390]
+ cmp r3, r6
+ bne .L2893
+ ldrh r2, [r2, #2324]
+ movw r0, #65535
+ movs r3, #0
+ strh r6, [r4, #2] @ movhi
+ strh r3, [r4, #4] @ movhi
+.L2927:
+ uxth r1, r3
+ cmp r1, r2
+ bcs .L2999
+ ldr r1, [sp, #16]
+ ldrh r5, [r1], #2
+ cmp r5, r0
+ str r1, [sp, #16]
+ add r1, r3, #1
+ bne .L3007
+ mov r3, r1
+ b .L2927
+.L2887:
+ ldr r2, [sp, #32]
+ cmp r10, r2
+ beq .L2888
+.L3003:
+ str r2, [r3, #3472]
+ b .L2875
+.L2888:
+ ldr r2, [r3, #3472]
+.L3002:
+ subs r2, r2, #1
+ b .L3003
+.L2886:
+ cmp r8, r10
+ beq .L2889
+ cmp r8, #-1
+ beq .L2875
+ str r8, [r3, #3472]
+ b .L2875
+.L2889:
+ ldr r2, [r3, #3472]
+ cmp r10, r2
+ bne .L3002
+ b .L2875
+.L2891:
+ mov r3, #-1
+ str r3, [r7, #3472]
+ b .L2875
+.L2897:
+ ldr r7, [sp, #20]
+ ldrh r3, [r7], #2
+ cmp r3, r8
+ str r7, [sp, #20]
+ beq .L2895
+ ldr r7, [sp, #12]
+ orr r3, r6, r3, lsl #10
+ mla r7, r9, r7, r0
+ str r3, [r7, #4]
+ ldrb lr, [r4, #8] @ zero_extendqisi2
+ cmp lr, #1
+ bne .L2896
+ cbz r1, .L2896
+ orr r3, r3, #-2147483648
+ str r3, [r7, #4]
+.L2896:
+ ldr r3, [sp, #12]
adds r3, r3, #1
- str r3, [r5, #512]
-.L3011:
- ldr r7, [r8, #8]
- add r1, sp, #56
- ldr r3, [r8, #12]
+ uxth r3, r3
+ str r3, [sp, #12]
+.L2895:
+ adds r2, r2, #1
+ b .L2894
+.L2925:
+ ldr r3, [sp, #20]
+ mov r8, #36
+ mul r8, r8, r3
+ ldr r3, [r5, #3304]
+ str r3, [sp, #32]
+ add r9, r3, r8
+ ldr r7, [r9, #4]
+ ubfx r0, r7, #10, #16
+ str r7, [sp, #52]
+ bl P2V_plane
+ ldr r3, [sp, #8]
+ cmp r6, r3
+ bcc .L2899
+ ldr r3, [sp, #32]
+ bne .L2900
+ ldr r2, [sp, #28]
+ cmp r2, r0
+ bhi .L2899
+.L2900:
+ cmp r6, fp
+ bne .L2901
+ ldr r2, [sp, #4]
+ cmp r2, r0
+ beq .L2902
+.L2901:
+ ldr r3, [r3, r8]
+ adds r3, r3, #1
+ beq .L2903
+ ldr r3, [r9, #12]
+ movw r2, #61589
+ ldrh r1, [r3]
+ cmp r1, r2
+ beq .L2904
+ ldrh r0, [r4]
+.L3004:
+ bl decrement_vpc_count
+ b .L2899
+.L2904:
+ ldr r10, [r3, #4]
+ cmp r10, #-1
+ beq .L2905
+ ldr r1, [r5, #512]
+ mov r0, r10
+ bl ftl_cmp_data_ver
+ cbz r0, .L2905
+ add r2, r10, #1
+ str r2, [r5, #512]
+.L2905:
+ ldr r7, [r3, #8]
+ add r1, sp, #48
+ ldr r3, [r3, #12]
movs r2, #0
mov r0, r7
- str r3, [sp, #52]
+ str r3, [sp, #44]
bl log2phys
ldr r1, [r5, #3472]
adds r0, r1, #1
- beq .L3012
- ldr r0, [sp, #4]
+ beq .L2906
+ mov r0, r10
bl ftl_cmp_data_ver
cmp r0, #0
- beq .L3012
- ldr r3, [sp, #52]
+ beq .L2906
+ ldr r3, [sp, #44]
adds r2, r3, #1
- beq .L3013
+ beq .L2907
ldr r0, [r5, #3304]
movs r2, #0
movs r1, #1
- add r0, r0, r6
+ add r0, r0, r8
str r3, [r0, #4]
ldr r9, [r0, #12]
bl FlashReadPages
ldr r2, [r5, #3304]
- ldr r3, [r9, #4]
- add ip, r2, r6
- str r3, [sp, #36]
- ldr r3, [r2, r6]
- adds r3, r3, #1
- bne .L3014
- b .L3015
-.L3013:
- ldr r3, [sp, #60]
- ldr r2, [sp, #56]
- cmp r2, r3
- bne .L3005
- mov r0, r7
- add r1, sp, #52
- movs r2, #1
- bl log2phys
- b .L3005
-.L3014:
- ldr r8, [r9, #8]
- cmp r8, r7
- bne .L3015
- ldr r0, [r5, #3472]
- ldr r1, [sp, #36]
- str r2, [sp, #44]
- str ip, [sp, #40]
- bl ftl_cmp_data_ver
- ldr ip, [sp, #40]
- ldr r2, [sp, #44]
- cbz r0, .L3015
- ldr r3, [sp, #56]
- ldr r1, [sp, #60]
- cmp r3, r1
- beq .L3020
- ldr r1, [sp, #52]
- cmp r3, r1
- beq .L3015
- adds r7, r3, #1
- beq .L3018
- str r3, [ip, #4]
- mov r0, ip
- movs r1, #1
- movs r2, #0
- ldr r9, [ip, #12]
- bl FlashReadPages
- b .L3019
-.L3018:
- str r3, [r2, r6]
-.L3019:
- ldr r3, [r5, #3304]
- ldr r3, [r3, r6]
- adds r3, r3, #1
- beq .L3020
- ldr r6, [r9, #4]
- ldr r0, [r5, #3472]
- mov r1, r6
- bl ftl_cmp_data_ver
- cbz r0, .L3020
- ldr r0, [sp, #36]
- mov r1, r6
- bl ftl_cmp_data_ver
- cbz r0, .L3015
-.L3020:
- mov r0, r8
- ldr r1, [sp, #52]
- bl FtlReUsePrevPpa
-.L3015:
+ ldr r1, [r2, r8]
+ add r3, r2, r8
+ adds r1, r1, #1
+ bne .L2908
+.L2909:
mov r3, #-1
- str r3, [sp, #52]
- b .L3022
-.L3120:
- .align 2
-.L3119:
- .word .LANCHOR5
- .word .LANCHOR2
- .word .LANCHOR0
-.L3012:
- ldr r3, [sp, #60]
- ldr r2, [sp, #56]
- cmp r2, r3
- beq .L3022
- ldr r3, [sp, #52]
- adds r0, r3, #1
- beq .L3024
- ldr r2, .L3121
- ubfx r3, r3, #10, #21
- ldr r2, [r2, #2336]
- cmp r3, r2
- bcs .L3005
-.L3024:
- mov r0, r7
- add r1, sp, #60
- movs r2, #1
- bl log2phys
- ldr r8, [sp, #56]
- cmp r8, #-1
- beq .L3022
- ldr r3, [sp, #52]
- cmp r8, r3
- beq .L3022
- ubfx r0, r8, #10, #16
- bl P2V_block_in_plane
- ldrh r3, [r5, #316]
- cmp r3, r0
- beq .L3026
- ldrh r3, [r5, #364]
- cmp r3, r0
- beq .L3026
- ldrh r3, [r5, #412]
- cmp r3, r0
- bne .L3022
-.L3026:
- ldr r3, .L3121+4
- movs r1, #1
- movs r2, #0
- ldr r0, [r3, #3304]
- str r8, [r0, #4]
- ldr r6, [r0, #12]
- bl FlashReadPages
- ldr r3, .L3121+4
- ldr r1, [r6, #4]
- ldr r3, [r3, #3304]
- ldr r3, [r3]
- adds r3, r3, #1
- beq .L3022
- ldr r0, [sp, #4]
- bl ftl_cmp_data_ver
- cbnz r0, .L3022
- mov r0, r7
- add r1, sp, #56
- movs r2, #1
- bl log2phys
-.L3022:
- ldr r0, [sp, #52]
+ str r3, [sp, #44]
+.L2916:
+ ldr r0, [sp, #44]
adds r1, r0, #1
- beq .L3005
+ beq .L2899
+.L2930:
ubfx r0, r0, #10, #16
bl P2V_block_in_plane
- ldr r3, [r5, #296]
- ldrh r3, [r3, r0, lsl #1]
+ ldr r3, [r5, #300]
mov r1, r0
- cbz r3, .L3027
-.L3107:
- bl decrement_vpc_count
- b .L3005
-.L3027:
- ldr r0, .L3121+8
+ ldrh r3, [r3, r0, lsl #1]
+ cmp r3, #0
+ bne .L3004
+ ldr r0, .L3011+12
bl printk
- b .L3005
-.L3009:
+ b .L2899
+.L2907:
+ ldr r3, [sp, #52]
+ ldr r2, [sp, #48]
+ cmp r2, r3
+ bne .L2899
+ movs r2, #1
+ add r1, sp, #44
+ mov r0, r7
+ bl log2phys
+.L2899:
+ ldr r3, [sp, #20]
+ adds r3, r3, #1
+ b .L3006
+.L2908:
+ ldr r1, [r9, #8]
+ cmp r7, r1
+ bne .L2909
+ ldr r1, [r9, #4]
+ ldr r0, [r5, #3472]
+ str r1, [sp, #32]
+ bl ftl_cmp_data_ver
+ cmp r0, #0
+ beq .L2909
+ ldr r1, [sp, #48]
+ ldr r0, [sp, #52]
+ cmp r1, r0
+ bne .L2911
+.L2914:
+ ldr r1, [sp, #44]
+ mov r0, r7
+ bl FtlReUsePrevPpa
+ b .L2909
+.L2911:
+ ldr r0, [sp, #44]
+ cmp r1, r0
+ beq .L2909
+ adds r0, r1, #1
+ beq .L2912
+ str r1, [r3, #4]
+ movs r2, #0
+ movs r1, #1
+ mov r0, r3
+ ldr r9, [r3, #12]
+ bl FlashReadPages
+.L2913:
+ ldr r3, [r5, #3304]
+ ldr r3, [r3, r8]
+ adds r3, r3, #1
+ beq .L2914
+ ldr r3, [r9, #4]
+ ldr r0, [r5, #3472]
+ mov r1, r3
+ bl ftl_cmp_data_ver
+ cmp r0, #0
+ beq .L2914
+ mov r1, r3
+ ldr r0, [sp, #32]
+ bl ftl_cmp_data_ver
+ cmp r0, #0
+ beq .L2909
+ b .L2914
+.L2912:
+ str r1, [r2, r8]
+ b .L2913
+.L3012:
+ .align 2
+.L3011:
+ .word .LANCHOR4
+ .word .LANCHOR2
+ .word .LANCHOR0
+ .word .LC150
+.L2906:
+ ldr r3, [sp, #52]
+ ldr r2, [sp, #48]
+ cmp r2, r3
+ beq .L2916
+ ldr r3, [sp, #44]
+ adds r0, r3, #1
+ beq .L2918
+ ldr r2, .L3013
+ ubfx r3, r3, #10, #21
+ ldr r2, [r2, #2340]
+ cmp r3, r2
+ bcs .L2899
+.L2918:
+ movs r2, #1
+ add r1, sp, #52
+ mov r0, r7
+ bl log2phys
+ ldr r9, [sp, #48]
+ cmp r9, #-1
+ beq .L2916
+ ldr r3, [sp, #44]
+ cmp r9, r3
+ beq .L2920
+ ubfx r0, r9, #10, #16
+ bl P2V_block_in_plane
+ ldrh r3, [r5, #320]
+ cmp r3, r0
+ beq .L2921
+ ldrh r3, [r5, #368]
+ cmp r3, r0
+ beq .L2921
+ ldrh r3, [r5, #416]
+ cmp r3, r0
+ bne .L2916
+.L2921:
+ ldr r0, [r5, #3304]
+ movs r2, #0
+ movs r1, #1
+ str r9, [r0, #4]
+ ldr r8, [r0, #12]
+ bl FlashReadPages
+ ldr r3, [r5, #3304]
+ ldr r3, [r3]
+ adds r3, r3, #1
+ beq .L2916
+ ldr r1, [r8, #4]
+ mov r0, r10
+ bl ftl_cmp_data_ver
+ cmp r0, #0
+ bne .L2916
+ movs r2, #1
+ add r1, sp, #48
+ mov r0, r7
+ bl log2phys
+ b .L2916
+.L2903:
ldrh r3, [r4]
mov r1, r7
- ldr r2, .L3121+12
- ldr r0, .L3121+16
- strh r3, [r2, #840] @ movhi
- ldr r2, [sp, #4]
+ ldr r2, .L3013+4
+ ldr r0, .L3013+8
+ strh r3, [r2, #1342] @ movhi
+ mov r2, r10
bl printk
- ldr r3, .L3121+12
- ldr r3, [r3, #844]
+ ldr r3, .L3013+4
+ ldr r3, [r3, #1348]
cmp r3, #31
- bhi .L3028
- ldr r2, .L3121+12
- ldr r1, [sp, #60]
+ bhi .L2923
+ ldr r2, .L3013+4
+ ldr r1, [sp, #52]
add r2, r2, r3, lsl #2
adds r3, r3, #1
- str r1, [r2, #848]
- ldr r2, .L3121+12
- str r3, [r2, #844]
-.L3028:
+ str r1, [r2, #1352]
+ ldr r2, .L3013+4
+ str r3, [r2, #1348]
+.L2923:
ldrh r0, [r4]
bl decrement_vpc_count
ldr r3, [r5, #3472]
adds r2, r3, #1
- bne .L3029
- ldr r3, [sp, #4]
- b .L3108
-.L3029:
- ldr r2, [sp, #4]
- cmp r3, r2
- bls .L3005
- mov r3, r2
-.L3108:
- str r3, [r5, #3472]
+ bne .L2924
.L3005:
- ldr r3, [sp, #28]
- adds r3, r3, #1
- b .L3109
-.L3116:
- ldrb r3, [r4, #8] @ zero_extendqisi2
- add fp, fp, #1
- cmp r3, #1
- uxth fp, fp
- ldr r3, .L3121
- bne .L3031
- ldrb r2, [r3, #144] @ zero_extendqisi2
- cbz r2, .L3031
- ldrh r2, [r3, #2390]
- cmp r2, fp
- bne .L3031
- cmp r10, fp
- beq .L3008
-.L3031:
- ldrh r3, [r3, #2388]
- cmp fp, r3
- bne .L2999
- ldr r2, .L3121
- movw r0, #65535
- movs r3, #0
+ str r10, [r5, #3472]
+ b .L2899
+.L2924:
+ cmp r10, r3
+ bcs .L2899
+ b .L3005
+.L2902:
+ ldrb r3, [sp, #4] @ zero_extendqisi2
strh fp, [r4, #2] @ movhi
- strh r3, [r4, #4] @ movhi
- ldrh r1, [r2, #2320]
-.L3032:
- uxth r2, r3
- cmp r2, r1
- bcs .L3101
- ldr r6, [sp, #20]
- adds r3, r3, #1
- ldrh r5, [r6, #2]!
- cmp r5, r0
- str r6, [sp, #20]
- beq .L3032
- strb r2, [r4, #6]
- b .L3101
-.L3008:
- ldrb r3, [sp, #8] @ zero_extendqisi2
- mov r0, r4
- ldr r2, [sp, #8]
- mov r1, r10
- strh r10, [r4, #2] @ movhi
+ ldr r2, [sp, #4]
strb r3, [r4, #6]
-.L3110:
- bl ftl_sb_update_avl_pages
-.L3101:
- movs r0, #0
- add sp, sp, #68
- @ sp needed
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L3122:
+ b .L3008
+.L2920:
+ mov r0, r9
+ b .L2930
+.L3014:
.align 2
-.L3121:
+.L3013:
.word .LANCHOR0
- .word .LANCHOR2
- .word .LC150
- .word .LANCHOR5
+ .word .LANCHOR4
.word .LC151
.fnend
.size FtlRecoverySuperblock, .-FtlRecoverySuperblock
.align 1
.global FtlVpcCheckAndModify
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FtlVpcCheckAndModify, %function
FtlVpcCheckAndModify:
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
- push {r0, r1, r2, r4, r5, r6, r7, r8, r9, lr}
- .save {r4, r5, r6, r7, r8, r9, lr}
- .pad #12
- movs r4, #0
- ldr r7, .L3136
- ldr r1, .L3136+4
- ldr r0, .L3136+8
+ push {r0, r1, r4, r5, r6, r7, r8, r9, r10, lr}
+ .save {r4, r5, r6, r7, r8, r9, r10, lr}
+ .pad #8
+ movs r5, #0
+ ldr r7, .L3026
+ ldr r1, .L3026+4
+ ldr r0, .L3026+8
bl printk
- ldr r5, .L3136+12
- ldrh r2, [r7, #2330]
+ ldrh r2, [r7, #2334]
movs r1, #0
- ldr r0, [r5, #3364]
+ ldr r4, .L3026+12
lsls r2, r2, #1
+ ldr r0, [r4, #3364]
bl ftl_memset
-.L3124:
- ldr r3, [r7, #2448]
- cmp r4, r3
- bcs .L3134
- mov r0, r4
- add r1, sp, #4
+.L3016:
+ ldr r3, [r7, #2452]
+ cmp r5, r3
+ bcc .L3018
+ ldr r10, .L3026+16
+ mov r8, #0
+ movw r9, #65535
+.L3019:
+ ldrh r3, [r7, #2332]
+ uxth r6, r8
+ cmp r3, r6
+ bhi .L3022
+ bl l2p_flush
+ bl FtlVpcTblFlush
+ add sp, sp, #8
+ @ sp needed
+ pop {r4, r5, r6, r7, r8, r9, r10, pc}
+.L3018:
movs r2, #0
+ add r1, sp, #4
+ mov r0, r5
bl log2phys
ldr r0, [sp, #4]
adds r3, r0, #1
- beq .L3125
+ beq .L3017
ubfx r0, r0, #10, #16
bl P2V_block_in_plane
- ldr r2, [r5, #3364]
+ ldr r2, [r4, #3364]
ldrh r3, [r2, r0, lsl #1]
adds r3, r3, #1
strh r3, [r2, r0, lsl #1] @ movhi
-.L3125:
- adds r4, r4, #1
- b .L3124
-.L3134:
- ldr r6, .L3136+12
- mov r8, #0
- movw r9, #65535
-.L3127:
- ldrh r3, [r7, #2328]
- uxth r4, r8
- cmp r3, r4
- bls .L3135
- ldr r3, [r5, #296]
- ldrh r2, [r3, r4, lsl #1]
- ldr r3, [r5, #3364]
- ldrh r3, [r3, r4, lsl #1]
+.L3017:
+ adds r5, r5, #1
+ b .L3016
+.L3022:
+ ldr r3, [r4, #300]
+ uxth r5, r8
+ ldrh r2, [r3, r5, lsl #1]
+ ldr r3, [r4, #3364]
+ ldrh r3, [r3, r5, lsl #1]
cmp r2, r3
- beq .L3128
+ beq .L3020
cmp r2, r9
- beq .L3128
- ldrh r1, [r6, #316]
- cmp r1, r4
- beq .L3128
- ldrh r1, [r6, #412]
- cmp r1, r4
- beq .L3128
- ldrh r1, [r6, #364]
- cmp r1, r4
- beq .L3128
- ldr r0, .L3136+16
- mov r1, r4
+ beq .L3020
+ ldrh r1, [r4, #320]
+ cmp r1, r6
+ beq .L3020
+ ldrh r1, [r4, #416]
+ cmp r1, r6
+ beq .L3020
+ ldrh r1, [r4, #368]
+ cmp r1, r6
+ beq .L3020
+ mov r1, r5
+ mov r0, r10
bl printk
- ldr r3, [r6, #296]
- ldrh r2, [r3, r4, lsl #1]
- cbnz r2, .L3129
- ldr r2, [r6, #3364]
- ldrh r2, [r2, r4, lsl #1]
- strh r2, [r3, r4, lsl #1] @ movhi
- b .L3128
-.L3129:
- ldr r2, [r6, #3364]
- mov r0, r4
- ldrh r2, [r2, r4, lsl #1]
- strh r2, [r3, r4, lsl #1] @ movhi
- bl update_vpc_list
-.L3128:
+ ldr r3, [r4, #300]
+ ldrh r2, [r3, r5, lsl #1]
+ cbnz r2, .L3021
+ ldr r2, [r4, #3364]
+ ldrh r2, [r2, r5, lsl #1]
+ strh r2, [r3, r5, lsl #1] @ movhi
+.L3020:
add r8, r8, #1
- b .L3127
-.L3135:
- bl l2p_flush
- bl FtlVpcTblFlush
- add sp, sp, #12
- @ sp needed
- pop {r4, r5, r6, r7, r8, r9, pc}
-.L3137:
+ b .L3019
+.L3021:
+ ldr r2, [r4, #3364]
+ mov r0, r6
+ ldrh r2, [r2, r5, lsl #1]
+ strh r2, [r3, r5, lsl #1] @ movhi
+ bl update_vpc_list
+ b .L3020
+.L3027:
.align 2
-.L3136:
+.L3026:
.word .LANCHOR0
- .word .LANCHOR3+216
+ .word .LANCHOR3+203
.word .LC110
.word .LANCHOR2
.word .LC152
@@ -19211,301 +19511,290 @@
.size FtlVpcCheckAndModify, .-FtlVpcCheckAndModify
.align 1
.global FtlGcScanTempBlk
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FtlGcScanTempBlk, %function
FtlGcScanTempBlk:
.fnstart
@ args = 0, pretend = 0, frame = 72
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L3192
+ ldr r3, .L3078
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.pad #76
sub sp, sp, #76
- ldrh r5, [r3, #3448]
- movw r3, #65535
mov r4, r0
- str r1, [sp, #20]
- cmp r5, r3
- beq .L3174
- cbnz r5, .L3139
- b .L3140
-.L3174:
- movs r5, #0
-.L3139:
- ldr r3, .L3192+4
- ldr r2, [sp, #20]
- ldrh r3, [r3, #2388]
- cmp r2, r3
- bne .L3141
-.L3140:
+ str r1, [sp, #16]
+ ldrh r6, [r3, #3444]
+ movw r3, #65535
+ cmp r6, r3
+ beq .L3062
+ cbnz r6, .L3029
+.L3030:
bl FtlGcPageVarInit
-.L3141:
- ldr r6, .L3192+8
+ b .L3031
+.L3062:
+ movs r6, #0
+.L3029:
+ ldr r3, .L3078+4
+ ldr r2, [sp, #16]
+ ldrh r3, [r3, #2390]
+ cmp r3, r2
+ beq .L3030
+.L3031:
+ ldr r5, .L3078+8
mov r3, #-1
- str r3, [sp, #16]
+ str r3, [sp, #12]
movs r3, #0
str r3, [sp, #4]
-.L3142:
+.L3032:
ldrh r1, [r4]
movw r3, #65535
movs r2, #0
strb r2, [r4, #8]
cmp r1, r3
- beq .L3143
-.L3144:
- ldr r10, .L3192+4
-.L3171:
- ldr r3, [r6, #3304]
+ beq .L3033
+ ldr r7, .L3078+4
+.L3059:
+ ldr r3, [r5, #3304]
movs r2, #0
- ldrh lr, [r10, #2320]
- add ip, r4, #14
- ldr r8, [r6, #1148]
- mov fp, #36
+ ldrh ip, [r7, #2324]
+ add lr, r4, #16
+ ldr r10, [r5, #1148]
+ mov fp, r2
str r3, [sp, #8]
- mov r7, r2
- ldr r3, [r6, #1144]
- movw r9, #65535
- str r3, [sp, #12]
- ldrh r3, [r10, #2398]
+ movw r8, #65535
+ ldr r3, [r5, #1144]
+ mov r9, #36
+ str r3, [sp, #20]
+ ldrh r3, [r7, #2400]
str r3, [sp, #24]
- ldrh r3, [r10, #2400]
+ ldrh r3, [r7, #2402]
str r3, [sp, #28]
-.L3145:
+.L3034:
uxth r3, r2
- cmp r3, lr
- bcs .L3190
- ldrh r3, [ip, #2]!
- cmp r3, r9
- beq .L3146
+ cmp ip, r3
+ bhi .L3038
+ mov r10, #0
+ movs r2, #0
+ mov r1, fp
+ ldr r0, [sp, #8]
+ bl FlashReadPages
+.L3039:
+ uxth r3, r10
+ cmp fp, r3
+ bhi .L3057
+ ldr r3, [sp, #4]
+ adds r6, r6, #1
+ uxth r6, r6
+ adds r3, r3, #1
+ str r3, [sp, #4]
+ ldr r2, [sp, #4]
+ ldr r3, [sp, #16]
+ cmp r3, r2
+ bls .L3058
+.L3060:
+ ldrh r3, [r7, #2390]
+ cmp r3, r6
+ bhi .L3059
+ movs r2, #0
+ b .L3033
+.L3038:
+ ldrh r3, [lr], #2
+ cmp r3, r8
+ beq .L3035
ldr r1, [sp, #8]
- orr r3, r5, r3, lsl #10
- mla r1, fp, r7, r1
+ orr r3, r6, r3, lsl #10
+ mov r0, fp
+ mla r1, r9, fp, r1
str r3, [r1, #4]
ldr r3, [sp, #24]
- muls r3, r7, r3
+ muls r3, r0, r3
+ ldr r0, [sp, #20]
it mi
addmi r3, r3, #3
bic r3, r3, #3
- mov r0, r3
- ldr r3, [sp, #12]
- add r0, r0, r3
+ add r3, r3, r0
+ mov r0, fp
+ str r3, [r1, #8]
ldr r3, [sp, #28]
- muls r3, r7, r3
- add r7, r7, #1
+ muls r3, r0, r3
it mi
addmi r3, r3, #3
- str r0, [r1, #8]
- uxth r7, r7
bic r3, r3, #3
- add r3, r3, r8
+ add r3, r3, r10
str r3, [r1, #12]
-.L3146:
+ add r3, fp, #1
+ uxth fp, r3
+.L3035:
adds r2, r2, #1
- b .L3145
-.L3190:
- ldr r0, [r6, #3304]
- mov r1, r7
- movs r2, #0
- bl FlashReadPages
- movs r3, #0
-.L3189:
- str r3, [sp, #8]
- ldrh r3, [sp, #8]
- cmp r3, r7
- bcs .L3191
- ldr r3, [sp, #8]
+ b .L3034
+.L3057:
mov r9, #36
- mul r9, r9, r3
- ldr r3, .L3192+8
- ldr r8, [r3, #3304]
- add fp, r8, r9
- ldr r3, [fp, #4]
- ubfx r0, r3, #10, #16
- str r3, [sp, #12]
+ ldr r8, [r5, #3304]
+ mul r9, r9, r10
+ add r3, r8, r9
+ ldr r2, [r3, #4]
+ str r3, [sp, #20]
+ ubfx r0, r2, #10, #16
+ str r2, [sp, #8]
bl P2V_plane
ldr r8, [r8, r9]
- ldr r3, [fp, #12]
- ldr ip, .L3192+4
- ldr fp, .L3192+8
mov r2, r0
+ ldr r3, [sp, #20]
+ ldr r3, [r3, #12]
cmp r8, #0
- bne .L3151
+ bne .L3040
ldrh r0, [r3]
movw r1, #65535
cmp r0, r1
- bne .L3152
-.L3155:
- ldrb r3, [ip, #144] @ zero_extendqisi2
- cbz r3, .L3186
+ bne .L3041
+.L3044:
+ ldrb r3, [r7, #152] @ zero_extendqisi2
+ cbz r3, .L3074
movs r3, #1
- str r3, [fp, #3468]
- b .L3143
-.L3152:
+ str r3, [r5, #3468]
+.L3033:
+ ldr r3, .L3078
+ movw r1, #65535
+ strh r6, [r4, #2] @ movhi
+ mov r0, r4
+ strb r2, [r4, #6]
+ strh r1, [r3, #3444] @ movhi
+ mov r1, r6
+ bl ftl_sb_update_avl_pages
+ b .L3028
+.L3041:
ldr r0, [r3, #8]
- ldr r1, [r10, #2448]
+ ldr r1, [r7, #2452]
cmp r0, r1
- bls .L3187
- b .L3155
-.L3186:
+ bhi .L3044
+ ldrb r2, [r7, #36] @ zero_extendqisi2
+ cbnz r2, .L3047
+.L3048:
+ ldr r2, [r3, #8]
+ add r10, r10, #1
+ ldr r1, [sp, #8]
+ ldr r0, [r3, #12]
+ bl FtlGcUpdatePage
+ b .L3039
+.L3074:
ldrh r1, [r4]
- ldr r2, [fp, #296]
+ ldr r2, [r5, #300]
strh r3, [r2, r1, lsl #1] @ movhi
+.L3077:
ldrh r0, [r4]
bl INSERT_FREE_LIST
movw r3, #65535
strh r3, [r4] @ movhi
- strh r3, [fp, #556] @ movhi
- b .L3188
-.L3187:
- ldrb r2, [r10] @ zero_extendqisi2
- cmp r2, #0
- beq .L3159
- add r1, sp, #32
+ strh r3, [r5, #556] @ movhi
+.L3076:
+ bl FtlGcPageVarInit
+ movs r6, #0
+ b .L3032
+.L3047:
mov r2, r8
- str r3, [sp, #24]
+ add r1, sp, #32
+ str r3, [sp, #20]
bl log2phys
- ldr r3, [sp, #24]
- ldr r2, [sp, #32]
- ldr r1, [r3, #12]
+ ldr r3, [sp, #20]
+ ldr r1, [sp, #32]
+ ldr r2, [r3, #12]
cmp r2, r1
- bne .L3159
+ bne .L3048
adds r1, r2, #1
- beq .L3159
+ beq .L3048
str r2, [sp, #40]
movs r1, #1
- ldr r2, [r6, #3336]
+ ldr r2, [r5, #3336]
add r0, sp, #36
str r2, [sp, #44]
- ldr r2, [r6, #3344]
+ ldr r2, [r5, #3344]
str r2, [sp, #48]
mov r2, r8
bl FlashReadPages
- ldrh r2, [r10, #2394]
- ldr r1, [r6, #3304]
- lsl lr, r2, #7
- add r9, r9, r1
+ ldrh r2, [r7, #2396]
+ ldr r1, [r5, #3304]
ldr r0, [sp, #44]
- ldr r3, [sp, #24]
-.L3161:
- cmp r8, lr
- beq .L3159
+ ldr r3, [sp, #20]
+ lsl ip, r2, #7
+ add r9, r9, r1
+.L3049:
+ cmp r8, ip
+ beq .L3048
ldr r1, [r9, #8]
ldr r2, [r0, r8, lsl #2]
ldr r1, [r1, r8, lsl #2]
cmp r1, r2
- beq .L3162
- ldrh r1, [r4]
+ beq .L3050
ldr r2, [sp, #40]
- ldr r0, .L3192+12
+ ldrh r1, [r4]
+ ldr r0, .L3078+12
bl printk
- ldr r3, [r6, #296]
ldrh r2, [r4]
+ movs r1, #0
+ ldr r3, [r5, #300]
+ strh r1, [r3, r2, lsl #1] @ movhi
+ b .L3077
+.L3050:
+ add r8, r8, #1
+ b .L3049
+.L3040:
+ ldr r2, [sp, #8]
+ ldrh r1, [r4]
+ ldr r0, .L3078+16
+ bl printk
+ ldr r3, [r7, #2248]
+ ldrh r2, [r4]
+ cbnz r3, .L3053
+ ldrb r3, [r7, #152] @ zero_extendqisi2
+ cbz r3, .L3054
+.L3053:
+ ldr r3, [r5, #236]
+ ldrh r3, [r3, r2, lsl #1]
+ cmp r3, #159
+ bls .L3055
+.L3054:
+ ldr r3, [r5, #3304]
+ ldr r3, [r3, r9]
+ adds r3, r3, #1
+ bne .L3056
+.L3055:
+ ldr r3, [r5, #3304]
+ add r3, r3, r9
+ ldr r3, [r3, #4]
+ str r3, [sp, #12]
+.L3056:
+ ldr r3, [r5, #300]
movs r1, #0
strh r1, [r3, r2, lsl #1] @ movhi
ldrh r0, [r4]
bl INSERT_FREE_LIST
movw r3, #65535
strh r3, [r4] @ movhi
- strh r3, [r6, #556] @ movhi
- b .L3188
-.L3162:
- add r8, r8, #1
- b .L3161
-.L3159:
- ldr r0, [r3, #12]
- ldr r2, [r3, #8]
- ldr r1, [sp, #12]
- bl FtlGcUpdatePage
- ldr r3, [sp, #8]
- adds r3, r3, #1
- b .L3189
-.L3151:
- ldr r2, [sp, #12]
- ldr r0, .L3192+16
- ldrh r1, [r4]
- str ip, [sp, #8]
- bl printk
- ldrh r3, [r4]
- ldr ip, [sp, #8]
- ldr r2, [ip, #2244]
- cbnz r2, .L3165
- ldrb r2, [ip, #144] @ zero_extendqisi2
- cbz r2, .L3166
-.L3165:
- ldr r2, [fp, #232]
- ldrh r2, [r2, r3, lsl #1]
- cmp r2, #159
- bls .L3167
-.L3166:
- ldr r2, [fp, #3304]
- ldr r2, [r2, r9]
- adds r2, r2, #1
- bne .L3168
-.L3167:
- ldr r2, [fp, #3304]
- add r9, r9, r2
- ldr r2, [r9, #4]
- str r2, [sp, #16]
-.L3168:
- ldr r2, .L3192+8
- movs r1, #0
- ldr r2, [r2, #296]
- strh r1, [r2, r3, lsl #1] @ movhi
- ldrh r0, [r4]
- bl INSERT_FREE_LIST
- movw r3, #65535
- strh r3, [r4] @ movhi
-.L3188:
- bl FtlGcPageVarInit
- movs r5, #0
- b .L3142
-.L3191:
- ldr r3, [sp, #4]
- adds r5, r5, #1
- ldr r2, [sp, #20]
- adds r3, r3, #1
- uxth r5, r5
- cmp r3, r2
- str r3, [sp, #4]
- bcs .L3170
-.L3172:
- ldrh r3, [r10, #2388]
- cmp r3, r5
- bhi .L3171
- movs r2, #0
- b .L3143
-.L3170:
- ldr r2, .L3192
+ b .L3076
+.L3058:
+ ldr r2, .L3078
movw r1, #65535
- ldrh r3, [r2, #3448]
+ ldrh r3, [r2, #3444]
cmp r3, r1
- beq .L3172
+ beq .L3060
ldr r1, [sp, #4]
add r3, r3, r1
- strh r3, [r2, #3448] @ movhi
- ldrh r3, [r10, #2388]
- cmp r3, r5
- bls .L3172
- b .L3173
-.L3143:
- ldr r3, .L3192
- movw r1, #65535
- strh r5, [r4, #2] @ movhi
- mov r0, r4
- strb r2, [r4, #6]
- strh r1, [r3, #3448] @ movhi
- mov r1, r5
- bl ftl_sb_update_avl_pages
-.L3173:
- ldr r0, [sp, #16]
+ strh r3, [r2, #3444] @ movhi
+ ldrh r3, [r7, #2390]
+ cmp r3, r6
+ bls .L3060
+.L3028:
+ ldr r0, [sp, #12]
add sp, sp, #76
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L3193:
+.L3079:
.align 2
-.L3192:
+.L3078:
.word .LANCHOR1
.word .LANCHOR0
.word .LANCHOR2
@@ -19515,8 +19804,10 @@
.size FtlGcScanTempBlk, .-FtlGcScanTempBlk
.align 1
.global FtlReadRefresh
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FtlReadRefresh, %function
FtlReadRefresh:
.fnstart
@@ -19526,36 +19817,42 @@
.save {r4, r5, r6, r7, r8, r9, lr}
.pad #44
sub sp, sp, #44
- ldr r5, .L3210
- ldr r4, .L3210+4
- ldr r9, [r5, #688]
+ ldr r5, .L3096
+ ldr r9, [r5, #684]
mov r6, r5
cmp r9, #0
- beq .L3195
- ldr r2, [r5, #692]
- ldr r3, [r4, #2448]
- cmp r2, r3
- bcs .L3196
+ beq .L3081
+ ldr r4, .L3096+4
+ ldr r1, [r5, #688]
+ ldr r2, [r4, #2452]
+ cmp r1, r2
+ bcs .L3082
mov r5, #2048
- mov r7, r6
-.L3201:
- ldr r0, [r6, #692]
- ldr r3, [r4, #2448]
+.L3087:
+ ldr r0, [r6, #688]
+ ldr r3, [r4, #2452]
cmp r0, r3
- bcs .L3200
+ bcc .L3083
+.L3086:
+ mov r0, #-1
+.L3080:
+ add sp, sp, #44
+ @ sp needed
+ pop {r4, r5, r6, r7, r8, r9, pc}
+.L3083:
+ movs r2, #0
mov r1, sp
- movs r2, #0
bl log2phys
- ldr r3, [r7, #692]
- adds r3, r3, #1
- str r3, [r7, #692]
ldr r2, [sp]
+ ldr r3, [r6, #688]
adds r1, r2, #1
- beq .L3199
- add r0, sp, #40
+ add r3, r3, #1
+ str r3, [r6, #688]
+ beq .L3085
str r2, [sp, #8]
- movs r1, #1
+ add r0, sp, #40
movs r2, #0
+ movs r1, #1
str r2, [r0, #-36]!
str r3, [sp, #20]
str r2, [sp, #12]
@@ -19563,285 +19860,283 @@
bl FlashReadPages
ldr r3, [sp, #4]
cmp r3, #256
- bne .L3200
+ bne .L3086
ldr r0, [sp]
ubfx r0, r0, #10, #16
bl P2V_block_in_plane
bl FtlGcRefreshBlock
-.L3200:
- mov r0, #-1
- b .L3203
-.L3199:
+ b .L3086
+.L3085:
subs r5, r5, #1
- bne .L3201
- b .L3200
-.L3196:
+ bne .L3087
+ b .L3086
+.L3082:
ldr r3, [r5, #476]
movs r0, #0
+ str r0, [r5, #684]
str r0, [r5, #688]
- str r0, [r5, #692]
- str r3, [r5, #684]
- b .L3203
-.L3195:
+ str r3, [r5, #680]
+ b .L3080
+.L3081:
ldr r8, [r5, #476]
- ldr r1, [r5, #528]
- ldr r7, [r5, #684]
- add r2, r8, #1048576
- ldr r3, [r4, #2448]
movw r4, #10000
+ ldr r1, [r5, #528]
+ ldr r7, [r5, #680]
+ add r3, r8, #1048576
cmp r1, r4
ite hi
movhi r4, #31
movls r4, #63
- cmp r7, r2
- bhi .L3205
- mov r0, #1000
+ cmp r7, r3
+ bhi .L3091
+ ldr r3, .L3096+4
lsrs r1, r1, #10
+ mov r0, #1000
adds r1, r1, #1
+ ldr r3, [r3, #2452]
muls r0, r3, r0
bl __aeabi_uidiv
add r0, r0, r7
- cmp r0, r8
- bcc .L3205
- ldrh r3, [r5, #268]
+ cmp r8, r0
+ bhi .L3091
+ ldrh r3, [r5, #272]
ands r0, r4, r3
- bne .L3207
- ldr r2, [r5, #708]
- cmp r2, r3
- beq .L3203
-.L3205:
- ldrh r3, [r6, #268]
+ bne .L3093
+ ldr r2, [r5, #704]
+ cmp r3, r2
+ beq .L3080
+.L3091:
+ ldrh r3, [r6, #272]
movs r0, #0
- str r8, [r6, #684]
- str r0, [r6, #692]
- str r3, [r6, #708]
+ str r0, [r6, #688]
+ str r8, [r6, #680]
+ str r3, [r6, #704]
movs r3, #1
- str r3, [r6, #688]
- b .L3203
-.L3207:
+ str r3, [r6, #684]
+ b .L3080
+.L3093:
mov r0, r9
-.L3203:
- add sp, sp, #44
- @ sp needed
- pop {r4, r5, r6, r7, r8, r9, pc}
-.L3211:
+ b .L3080
+.L3097:
.align 2
-.L3210:
+.L3096:
.word .LANCHOR2
.word .LANCHOR0
.fnend
.size FtlReadRefresh, .-FtlReadRefresh
.align 1
.global FtlGcFreeTempBlock
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FtlGcFreeTempBlock, %function
FtlGcFreeTempBlock:
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
- push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
- .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
- .pad #12
- ldr r5, .L3250
- ldr r6, .L3250+4
- ldr r2, [r5, #224]
- mov r4, r5
- ldrh r1, [r6, #2388]
- cmp r2, #0
- bne .L3248
- ldrh r5, [r5, #412]
+ push {r0, r1, r4, r5, r6, r7, r8, r9, r10, lr}
+ .save {r4, r5, r6, r7, r8, r9, r10, lr}
+ .pad #8
+ ldr r4, .L3136
+ ldr r6, .L3136+4
+ ldr r2, [r4, #228]
+ ldrh r1, [r6, #2390]
+ cbz r2, .L3099
+.L3134:
+ movs r0, #0
+.L3098:
+ add sp, sp, #8
+ @ sp needed
+ pop {r4, r5, r6, r7, r8, r9, r10, pc}
+.L3099:
+ ldrh r5, [r4, #416]
movw r7, #65535
cmp r5, r7
- bne .L3215
-.L3224:
- ldrh r2, [r4, #412]
+ bne .L3101
+.L3110:
+ ldrh r2, [r4, #416]
movw r3, #65535
- movs r7, #0
- ldr r5, .L3250
+ movs r5, #0
+ str r5, [r4, #3468]
cmp r2, r3
- str r7, [r4, #3468]
- beq .L3248
+ beq .L3134
bl FtlCacheWriteBack
- ldrb r0, [r5, #419] @ zero_extendqisi2
- ldrh r3, [r6, #2388]
- mov r10, #12
- ldr r2, [r5, #296]
- ldrh r1, [r5, #412]
- smulbb r3, r0, r3
+ ldrb r3, [r4, #423] @ zero_extendqisi2
+ mov r9, #12
+ ldrh r0, [r6, #2390]
+ ldr r2, [r4, #300]
+ ldrh r1, [r4, #416]
+ smulbb r3, r3, r0
strh r3, [r2, r1, lsl #1] @ movhi
- ldr r3, [r5, #496]
- ldrh r2, [r5, #1172]
- add r3, r3, r2
- str r3, [r5, #496]
- b .L3225
-.L3215:
- cbz r0, .L3218
- ldr r3, .L3250+8
- ldrh r0, [r3, #3448]
- cmp r0, r7
- beq .L3219
-.L3220:
- movs r1, #2
- b .L3218
-.L3219:
- strh r2, [r3, #3448] @ movhi
- ldrh r3, [r4, #312]
- cmp r3, #17
- bhi .L3220
-.L3218:
- ldr r7, .L3250
- add r0, r7, #412
- bl FtlGcScanTempBlk
- str r0, [sp, #4]
- adds r0, r0, #1
- beq .L3221
- ldr r2, [r7, #232]
- ldrh r3, [r2, r5, lsl #1]
- cmp r3, #4
- bls .L3222
- subs r3, r3, #5
- movs r0, #1
- strh r3, [r2, r5, lsl #1] @ movhi
- bl FtlEctTblFlush
-.L3222:
- ldr r3, [r4, #3468]
- ldr r2, .L3250
- cbnz r3, .L3223
- ldr r0, [sp, #4]
- ldr r3, [r2, #704]
- ubfx r0, r0, #10, #16
- adds r3, r3, #1
- str r3, [r2, #704]
- bl FtlBbmMapBadBlock
- bl FtlBbmTblFlush
-.L3223:
- movs r3, #0
- str r3, [r4, #3468]
- b .L3235
-.L3221:
- ldr r3, .L3250+8
- ldrh r2, [r3, #3448]
- movw r3, #65535
- cmp r2, r3
- bne .L3235
- b .L3224
-.L3228:
- ldr r3, [r9, #4]
- cmp r0, r3
- bne .L3246
-.L3227:
- adds r7, r7, #1
-.L3225:
+ ldr r2, [r4, #496]
ldrh r3, [r4, #1172]
- uxth r8, r7
- cmp r3, r8
- bls .L3249
- mul r8, r10, r8
- ldr fp, [r5, #1168]
- ldr r3, [r6, #2448]
- add r9, fp, r8
- ldr r0, [r9, #8]
- cmp r0, r3
- bcs .L3246
- add r1, sp, #4
- movs r2, #0
- bl log2phys
- ldr r3, [fp, r8]
- ldr r0, [sp, #4]
- cmp r0, r3
- bne .L3228
- ubfx r0, r0, #10, #16
- bl P2V_block_in_plane
- add r1, r9, #4
- movs r2, #1
- mov r8, r0
- ldr r0, [r9, #8]
- bl log2phys
- mov r0, r8
- b .L3247
-.L3246:
- ldrh r0, [r5, #412]
-.L3247:
- bl decrement_vpc_count
- b .L3227
-.L3249:
+ add r3, r3, r2
+ str r3, [r4, #496]
+.L3111:
+ ldrh r2, [r4, #1172]
+ uxth r3, r5
+ cmp r2, r3
+ bhi .L3115
movw r0, #65535
bl decrement_vpc_count
- ldrb r3, [r6, #144] @ zero_extendqisi2
- cbz r3, .L3230
- ldr r3, .L3250
- ldr r0, .L3250+12
- ldrh r1, [r3, #412]
+ ldrb r3, [r6, #152] @ zero_extendqisi2
+ cbz r3, .L3116
+ ldrh r1, [r4, #416]
+ ldr r0, .L3136+8
bl printk
-.L3230:
- ldrh r0, [r4, #412]
- ldr r3, [r4, #296]
+.L3116:
+ ldrh r0, [r4, #416]
+ ldr r3, [r4, #300]
ldrh r3, [r3, r0, lsl #1]
- cbz r3, .L3231
+ cmp r3, #0
+ beq .L3117
bl INSERT_DATA_LIST
- b .L3232
-.L3231:
- bl INSERT_FREE_LIST
-.L3232:
- movw r8, #65535
+.L3118:
+ movw r7, #65535
movs r5, #0
- strh r8, [r4, #412] @ movhi
+ strh r7, [r4, #416] @ movhi
strh r5, [r4, #1172] @ movhi
strh r5, [r4, #1164] @ movhi
bl l2p_flush
bl FtlVpcTblFlush
- ldr r3, [r6, #2244]
- ldr r7, .L3250
- strh r8, [r4, #556] @ movhi
- cbz r3, .L3233
- ldr r3, [r7, #532]
+ ldr r3, [r6, #2248]
+ strh r7, [r4, #556] @ movhi
+ cmp r3, #0
+ beq .L3119
+ ldr r3, [r4, #532]
cmp r3, #39
- bhi .L3233
- ldrh r3, [r7, #536]
- ldrh r2, [r7, #312]
- cmp r2, r3
- bcs .L3248
- lsls r3, r3, #1
- strh r3, [r7, #1120] @ movhi
- b .L3248
-.L3233:
+ bhi .L3119
ldrh r3, [r4, #536]
- ldrh r1, [r4, #312]
- ldr r2, .L3250
- add r0, r3, r3, lsl #1
- cmp r1, r0, asr #2
- ble .L3248
- ldrb r0, [r6, #144] @ zero_extendqisi2
- cbz r0, .L3234
- subs r3, r3, #2
- strh r3, [r2, #1120] @ movhi
-.L3248:
- movs r0, #0
- b .L3214
-.L3234:
- movs r3, #20
- strh r3, [r2, #1120] @ movhi
- b .L3214
-.L3235:
+ ldrh r2, [r4, #316]
+ cmp r2, r3
+ bcs .L3134
+ lsls r3, r3, #1
+.L3135:
+ strh r3, [r4, #1120] @ movhi
+ b .L3134
+.L3101:
+ cbz r0, .L3104
+ ldr r3, .L3136+12
+ ldrh r0, [r3, #3444]
+ cmp r0, r7
+ beq .L3105
+.L3106:
+ movs r1, #2
+.L3104:
+ ldr r0, .L3136+16
+ bl FtlGcScanTempBlk
+ str r0, [sp, #4]
+ adds r0, r0, #1
+ beq .L3107
+ ldr r2, [r4, #236]
+ ldrh r3, [r2, r5, lsl #1]
+ cmp r3, #4
+ bls .L3108
+ subs r3, r3, #5
movs r0, #1
-.L3214:
- add sp, sp, #12
- @ sp needed
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L3251:
+ strh r3, [r2, r5, lsl #1] @ movhi
+ bl FtlEctTblFlush
+.L3108:
+ ldr r3, [r4, #3468]
+ cbnz r3, .L3109
+ ldr r3, [r4, #700]
+ ldr r0, [sp, #4]
+ adds r3, r3, #1
+ ubfx r0, r0, #10, #16
+ str r3, [r4, #700]
+ bl FtlBbmMapBadBlock
+ bl FtlBbmTblFlush
+.L3109:
+ movs r3, #0
+ str r3, [r4, #3468]
+.L3121:
+ movs r0, #1
+ b .L3098
+.L3105:
+ strh r2, [r3, #3444] @ movhi
+ ldrh r3, [r4, #316]
+ cmp r3, #17
+ bhi .L3106
+ b .L3104
+.L3107:
+ ldr r3, .L3136+12
+ ldrh r2, [r3, #3444]
+ movw r3, #65535
+ cmp r2, r3
+ bne .L3121
+ b .L3110
+.L3115:
+ uxth r8, r5
+ ldr r10, [r4, #1168]
+ ldr r3, [r6, #2452]
+ mul r8, r9, r8
+ add r7, r10, r8
+ ldr r0, [r7, #8]
+ cmp r0, r3
+ bcc .L3112
+.L3132:
+ ldrh r0, [r4, #416]
+ b .L3133
+.L3112:
+ movs r2, #0
+ add r1, sp, #4
+ bl log2phys
+ ldr r0, [r10, r8]
+ ldr r3, [sp, #4]
+ cmp r0, r3
+ bne .L3114
+ ubfx r0, r0, #10, #16
+ bl P2V_block_in_plane
+ movs r2, #1
+ mov r8, r0
+ adds r1, r7, #4
+ ldr r0, [r7, #8]
+ bl log2phys
+ mov r0, r8
+.L3133:
+ bl decrement_vpc_count
+ b .L3113
+.L3114:
+ ldr r2, [r7, #4]
+ cmp r3, r2
+ bne .L3132
+.L3113:
+ adds r5, r5, #1
+ b .L3111
+.L3117:
+ bl INSERT_FREE_LIST
+ b .L3118
+.L3119:
+ ldrh r3, [r4, #536]
+ ldrh r2, [r4, #316]
+ add r1, r3, r3, lsl #1
+ cmp r2, r1, asr #2
+ ble .L3134
+ ldrb r0, [r6, #152] @ zero_extendqisi2
+ cbz r0, .L3120
+ subs r3, r3, #2
+ b .L3135
+.L3120:
+ movs r3, #20
+ strh r3, [r4, #1120] @ movhi
+ b .L3098
+.L3137:
.align 2
-.L3250:
+.L3136:
.word .LANCHOR2
.word .LANCHOR0
- .word .LANCHOR1
.word .LC155
+ .word .LANCHOR1
+ .word .LANCHOR2+416
.fnend
.size FtlGcFreeTempBlock, .-FtlGcFreeTempBlock
.align 1
.global FtlGcPageRecovery
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FtlGcPageRecovery, %function
FtlGcPageRecovery:
.fnstart
@@ -19849,34 +20144,36 @@
@ frame_needed = 0, uses_anonymous_args = 0
push {r3, r4, r5, lr}
.save {r3, r4, r5, lr}
- ldr r5, .L3254
- ldr r4, .L3254+4
- ldrh r1, [r5, #2388]
- add r0, r4, #412
+ ldr r5, .L3140
+ ldr r4, .L3140+4
+ ldrh r1, [r5, #2390]
+ add r0, r4, #416
bl FtlGcScanTempBlk
- ldrh r2, [r4, #414]
- ldrh r3, [r5, #2388]
+ ldrh r2, [r4, #418]
+ ldrh r3, [r5, #2390]
cmp r2, r3
- bcc .L3252
+ bcc .L3138
add r0, r4, #3408
bl FtlMapBlkWriteDumpData
movs r0, #0
bl FtlGcFreeTempBlock
movs r3, #0
str r3, [r4, #3468]
-.L3252:
+.L3138:
pop {r3, r4, r5, pc}
-.L3255:
+.L3141:
.align 2
-.L3254:
+.L3140:
.word .LANCHOR0
.word .LANCHOR2
.fnend
.size FtlGcPageRecovery, .-FtlGcPageRecovery
.align 1
.global FtlPowerLostRecovery
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FtlPowerLostRecovery, %function
FtlPowerLostRecovery:
.fnstart
@@ -19885,12 +20182,12 @@
push {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
movs r5, #0
- ldr r4, .L3257
- ldr r3, .L3257+4
- add r6, r4, #316
- add r4, r4, #364
+ ldr r4, .L3143
+ ldr r3, .L3143+4
+ add r6, r4, #320
+ add r4, r4, #368
mov r0, r6
- str r5, [r3, #844]
+ str r5, [r3, #1348]
bl FtlRecoverySuperblock
mov r0, r6
bl FtlSlcSuperblockCheck
@@ -19903,17 +20200,19 @@
bl decrement_vpc_count
mov r0, r5
pop {r4, r5, r6, pc}
-.L3258:
+.L3144:
.align 2
-.L3257:
+.L3143:
.word .LANCHOR2
- .word .LANCHOR5
+ .word .LANCHOR4
.fnend
.size FtlPowerLostRecovery, .-FtlPowerLostRecovery
.align 1
.global FtlSysBlkInit
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FtlSysBlkInit, %function
FtlSysBlkInit:
.fnstart
@@ -19922,26 +20221,29 @@
push {r3, r4, r5, r6, r7, lr}
.save {r3, r4, r5, r6, r7, lr}
movs r3, #0
- ldr r5, .L3276
+ ldr r5, .L3162
movw r7, #65535
- ldr r6, .L3276+4
- ldr r4, .L3276+8
- ldrh r0, [r5, #2324]
- strh r3, [r6, #842] @ movhi
- strh r7, [r6, #840] @ movhi
+ ldr r6, .L3162+4
+ ldr r4, .L3162+8
+ ldrh r0, [r5, #2328]
+ strh r3, [r6, #1344] @ movhi
+ strh r7, [r6, #1342] @ movhi
bl FtlFreeSysBlkQueueInit
bl FtlScanSysBlk
ldrh r3, [r4, #540]
cmp r3, r7
- bne .L3260
-.L3262:
- mov r7, #-1
- b .L3261
-.L3260:
+ mov r7, r6
+ bne .L3146
+.L3148:
+ mov r6, #-1
+.L3145:
+ mov r0, r6
+ pop {r3, r4, r5, r6, r7, pc}
+.L3146:
bl FtlLoadSysInfo
- mov r7, r0
+ mov r6, r0
cmp r0, #0
- bne .L3262
+ bne .L3148
bl FtlLoadMapInfo
bl FtlLoadVonderInfo
bl Ftl_load_ext_data
@@ -19951,405 +20253,399 @@
bl FtlPowerLostRecovery
movs r0, #1
bl FtlUpdateVaildLpn
- ldrh r1, [r5, #2426]
- ldr r2, [r4, #460]
+ ldrh r1, [r5, #2430]
+ mov r3, r6
+ ldr r2, [r4, #464]
movs r0, #12
- mov r3, r7
-.L3263:
+.L3149:
cmp r3, r1
- bge .L3268
- mla lr, r0, r3, r2
- ldr lr, [lr, #4]
- cmp lr, #0
- bge .L3264
-.L3268:
- ldrh r2, [r4, #268]
+ bge .L3154
+ mla ip, r0, r3, r2
+ ldr ip, [ip, #4]
+ cmp ip, #0
+ bge .L3150
+.L3154:
+ ldrh r2, [r4, #272]
cmp r3, r1
add r2, r2, #1
- strh r2, [r4, #268] @ movhi
- bge .L3275
- b .L3265
-.L3264:
- adds r3, r3, #1
- b .L3263
-.L3275:
- ldrh r3, [r6, #842]
- cbz r3, .L3269
-.L3265:
- ldrh r1, [r4, #316]
- ldr r2, [r4, #296]
- ldrh r0, [r4, #320]
+ strh r2, [r4, #272] @ movhi
+ bge .L3161
+.L3151:
+ ldrh r1, [r4, #320]
+ ldr r2, [r4, #300]
+ ldrh r0, [r4, #324]
ldrh r3, [r2, r1, lsl #1]
subs r3, r3, r0
strh r3, [r2, r1, lsl #1] @ movhi
- ldr r1, [r4, #296]
- ldrh r3, [r5, #2388]
- ldrh r0, [r4, #364]
- ldrh r6, [r4, #368]
- strh r3, [r4, #318] @ movhi
+ ldrh r3, [r5, #2390]
+ ldr r1, [r4, #300]
+ ldrh r0, [r4, #368]
+ strh r3, [r4, #322] @ movhi
movs r3, #0
- strb r3, [r4, #322]
- strh r3, [r4, #320] @ movhi
+ strb r3, [r4, #326]
+ strh r3, [r4, #324] @ movhi
+ ldrh r7, [r4, #372]
ldrh r2, [r1, r0, lsl #1]
- subs r2, r2, r6
+ subs r2, r2, r7
strh r2, [r1, r0, lsl #1] @ movhi
- ldrh r2, [r5, #2388]
- strb r3, [r4, #370]
- strh r3, [r4, #368] @ movhi
- ldrh r3, [r4, #270]
- strh r2, [r4, #366] @ movhi
+ strb r3, [r4, #374]
+ strh r3, [r4, #372] @ movhi
+ ldrh r3, [r4, #274]
+ ldrh r2, [r5, #2390]
adds r3, r3, #1
- strh r3, [r4, #270] @ movhi
+ strh r2, [r4, #370] @ movhi
+ strh r3, [r4, #274] @ movhi
bl l2p_flush
bl FtlVpcTblFlush
bl FtlVpcTblFlush
-.L3269:
- ldrh r0, [r4, #316]
+ b .L3155
+.L3150:
+ adds r3, r3, #1
+ b .L3149
+.L3161:
+ ldrh r3, [r7, #1344]
+ cmp r3, #0
+ bne .L3151
+.L3155:
+ ldrh r0, [r4, #320]
movw r3, #65535
- ldr r6, .L3276+8
cmp r0, r3
- beq .L3270
- ldrh r3, [r6, #320]
- cbnz r3, .L3270
- ldrh r3, [r6, #368]
- cbnz r3, .L3270
+ beq .L3156
+ ldrh r3, [r4, #324]
+ cbnz r3, .L3156
+ ldrh r3, [r4, #372]
+ cbnz r3, .L3156
bl FtlGcRefreshOpenBlock
- ldrh r0, [r6, #364]
+ ldrh r0, [r4, #368]
bl FtlGcRefreshOpenBlock
bl FtlVpcTblFlush
- add r0, r6, #316
+ ldr r0, .L3162+12
bl allocate_new_data_superblock
- add r0, r6, #364
+ ldr r0, .L3162+16
bl allocate_new_data_superblock
-.L3270:
- ldrb r3, [r5] @ zero_extendqisi2
- cbnz r3, .L3271
- ldrh r3, [r4, #268]
+.L3156:
+ ldrb r3, [r5, #36] @ zero_extendqisi2
+ cbnz r3, .L3157
+ ldrh r3, [r4, #272]
lsls r3, r3, #27
- bne .L3261
-.L3271:
+ bne .L3145
+.L3157:
bl FtlVpcCheckAndModify
-.L3261:
- mov r0, r7
- pop {r3, r4, r5, r6, r7, pc}
-.L3277:
+ b .L3145
+.L3163:
.align 2
-.L3276:
+.L3162:
.word .LANCHOR0
- .word .LANCHOR5
+ .word .LANCHOR4
.word .LANCHOR2
+ .word .LANCHOR2+320
+ .word .LANCHOR2+368
.fnend
.size FtlSysBlkInit, .-FtlSysBlkInit
.align 1
.global FtlLowFormat
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FtlLowFormat, %function
FtlLowFormat:
.fnstart
- @ args = 0, pretend = 0, frame = 8
+ @ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
- .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
- .pad #12
- ldr r4, .L3312
- ldr r6, [r4, #224]
+ push {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
+ .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
+ ldr r4, .L3195
+ ldr r6, [r4, #228]
cmp r6, #0
- bne .L3280
- ldr r5, .L3312+4
+ bne .L3166
+ ldr r5, .L3195+4
mov r1, r6
ldr r0, [r4, #3392]
- ldrh r2, [r5, #2424]
+ ldrh r2, [r5, #2428]
lsls r2, r2, #2
bl ftl_memset
- ldrh r2, [r5, #2424]
+ ldrh r2, [r5, #2428]
mov r1, r6
ldr r0, [r4, #3388]
lsls r2, r2, #2
bl ftl_memset
- ldrh r0, [r5, #2324]
+ ldrh r0, [r5, #2328]
str r6, [r4, #508]
str r6, [r4, #512]
bl FtlFreeSysBlkQueueInit
bl FtlLoadBbt
- cbz r0, .L3281
+ cbz r0, .L3167
bl FtlMakeBbt
-.L3281:
- ldr r0, .L3312+8
+.L3167:
+ ldr r0, .L3195+8
movs r2, #0
-.L3282:
- ldrh r1, [r5, #2394]
+.L3168:
+ ldrh r1, [r5, #2396]
uxth r3, r2
adds r2, r2, #1
cmp r3, r1, lsl #7
- bge .L3309
+ blt .L3169
+ ldrh r7, [r5, #2332]
+ movs r6, #0
+.L3170:
+ ldrh r3, [r5, #2334]
+ cmp r3, r7
+ bhi .L3171
+ ldrh r1, [r5, #2324]
+ subs r3, r6, #3
+ cmp r3, r1, lsl #1
+ blt .L3172
+ mov r0, r6
+ movs r6, #0
+ bl __aeabi_uidiv
+ ldr r3, [r5, #2424]
+ add r0, r0, r3
+ uxth r0, r0
+ bl FtlSysBlkNumInit
+ ldrh r0, [r5, #2328]
+ bl FtlFreeSysBlkQueueInit
+ ldrh r7, [r5, #2332]
+.L3173:
+ ldrh r3, [r5, #2334]
+ cmp r3, r7
+ bhi .L3174
+.L3172:
+ movs r7, #0
+ mov r8, r7
+.L3175:
+ ldrh r3, [r5, #2332]
+ uxth r0, r7
+ adds r7, r7, #1
+ cmp r3, r0
+ bhi .L3176
+ ldrh r3, [r5, #2334]
+ ldrh r7, [r5, #2324]
+ ldr fp, [r5, #2336]
+ str r3, [r4, #3292]
+ mov r1, r7
+ mov r0, fp
+ bl __aeabi_uidiv
+ ubfx r9, r0, #5, #16
+ mov r10, r0
+ add r3, r9, #36
+ str r0, [r5, #2452]
+ strh r3, [r4, #536] @ movhi
+ movs r3, #24
+ muls r3, r7, r3
+ cmp r8, r3
+ ble .L3177
+ mov r1, r7
+ sub r0, fp, r8
+ bl __aeabi_uidiv
+ str r0, [r5, #2452]
+ lsrs r0, r0, #5
+ adds r0, r0, #24
+ strh r0, [r4, #536] @ movhi
+.L3177:
+ ldr r3, [r5, #2248]
+ cmp r3, #1
+ bne .L3178
+ ldrh fp, [r4, #536]
+ mov r1, r7
+ mov r0, r8
+ bl __aeabi_uidiv
+ uxtah r0, fp, r0
+ add fp, fp, r0, asr #2
+ strh fp, [r4, #536] @ movhi
+.L3178:
+ ldrb r3, [r5, #152] @ zero_extendqisi2
+ cbz r3, .L3179
+ ldrh fp, [r4, #536]
+ mov r1, r7
+ mov r0, r8
+ bl __aeabi_uidiv
+ uxtah r0, fp, r0
+ add fp, fp, r0, asr #2
+ strh fp, [r4, #536] @ movhi
+.L3179:
+ ldrh r3, [r5, #2384]
+ cbz r3, .L3181
+ ldrh r2, [r4, #536]
+ add r2, r2, r3, lsr #1
+ strh r2, [r4, #536] @ movhi
+ mul r2, r7, r3
+ cmp r8, r2
+ itttt lt
+ addlt r3, r3, #32
+ strlt r10, [r5, #2452]
+ addlt r3, r3, r9
+ strhlt r3, [r4, #536] @ movhi
+.L3181:
+ ldrh r2, [r4, #536]
+ ldr r3, [r5, #2452]
+ ldr r9, .L3195+28
+ subs r3, r3, r2
+ muls r7, r3, r7
+ ldrh r3, [r5, #2390]
+ str r7, [r9, #1292]
+ muls r7, r3, r7
+ ldrh r3, [r5, #2396]
+ str r7, [r5, #2452]
+ muls r7, r3, r7
+ str r7, [r5, #2432]
+ bl FtlBbmTblFlush
+ ldr r2, [r5, #2340]
+ add r1, r6, r8
+ ldrh r3, [r5, #2404]
+ add r3, r3, r2, lsr #3
+ cmp r1, r3
+ bls .L3183
+ lsrs r2, r2, #5
+ ldr r0, .L3195+12
+ bl printk
+.L3183:
+ ldrh r2, [r5, #2334]
+ movs r1, #0
+ ldr r0, [r4, #300]
+ movw r7, #65535
+ lsls r2, r2, #1
+ bl ftl_memset
+ ldrh r2, [r5, #2332]
+ movs r3, #0
+ ldr r0, [r5, #32]
+ movs r1, #255
+ ldr r5, .L3195+16
+ str r3, [r4, #472]
+ strh r3, [r4, #558] @ movhi
+ lsrs r2, r2, #3
+ strb r3, [r4, #562]
+ strb r3, [r4, #564]
+ strh r3, [r4, #322] @ movhi
+ strb r3, [r4, #326]
+ strh r3, [r4, #320] @ movhi
+ movs r3, #1
+ strh r7, [r4, #556] @ movhi
+ strb r3, [r4, #328]
+ bl ftl_memset
+.L3184:
+ mov r0, r5
+ bl make_superblock
+ ldrb r3, [r4, #327] @ zero_extendqisi2
+ ldrh r2, [r4, #320]
+ cbnz r3, .L3185
+ ldr r3, [r4, #300]
+ strh r7, [r3, r2, lsl #1] @ movhi
+ ldrh r3, [r4, #320]
+ adds r3, r3, #1
+ strh r3, [r4, #320] @ movhi
+ b .L3184
+.L3169:
ldr r6, [r4, #3332]
mvns r1, r3
orr r1, r3, r1, lsl #16
str r1, [r6, r3, lsl #2]
ldr r1, [r4, #3336]
str r0, [r1, r3, lsl #2]
- b .L3282
-.L3309:
- ldr r3, .L3312+4
- movs r6, #0
- ldrh r7, [r3, #2328]
-.L3284:
- ldrh r3, [r5, #2330]
- ldr r8, .L3312+4
- cmp r3, r7
- bls .L3310
+ b .L3168
+.L3171:
mov r0, r7
movs r1, #1
bl FtlLowFormatEraseBlock
adds r7, r7, #1
+ add r6, r6, r0
+ uxth r6, r6
uxth r7, r7
- add r0, r0, r6
- uxth r6, r0
- b .L3284
-.L3310:
- ldrh r1, [r8, #2320]
- subs r3, r6, #3
- cmp r3, r1, lsl #1
- blt .L3286
- mov r0, r6
- movs r6, #0
- bl __aeabi_uidiv
- ldr r3, [r8, #2420]
- add r0, r0, r3
- uxth r0, r0
- bl FtlSysBlkNumInit
- ldrh r0, [r8, #2324]
- bl FtlFreeSysBlkQueueInit
- ldrh r7, [r8, #2328]
-.L3287:
- ldrh r3, [r5, #2330]
- cmp r3, r7
- bls .L3286
+ b .L3170
+.L3174:
mov r0, r7
movs r1, #1
bl FtlLowFormatEraseBlock
adds r7, r7, #1
+ add r6, r6, r0
+ uxth r6, r6
uxth r7, r7
- add r0, r0, r6
- uxth r6, r0
- b .L3287
-.L3286:
- mov r8, #0
- mov r7, r8
-.L3289:
- ldrh r3, [r5, #2328]
- uxth r0, r8
- ldr fp, .L3312+4
- add r8, r8, #1
- cmp r3, r0
- bls .L3311
+ b .L3173
+.L3176:
movs r1, #0
bl FtlLowFormatEraseBlock
- add r0, r0, r7
- uxth r7, r0
- b .L3289
-.L3311:
- ldr r2, [fp, #2332]
- ldrh r3, [fp, #2330]
- ldrh r8, [fp, #2320]
- mov r0, r2
- str r2, [sp, #4]
- str r3, [r4, #3292]
- mov r1, r8
- bl __aeabi_uidiv
- ubfx r9, r0, #5, #16
- mov r10, r0
- add r3, r9, #36
- strh r3, [r4, #536] @ movhi
- movs r3, #24
- str r0, [fp, #2448]
- ldr r2, [sp, #4]
- mul r3, r3, r8
- cmp r7, r3
- ble .L3291
- subs r0, r2, r7
- mov r1, r8
- bl __aeabi_uidiv
- ldr r3, .L3312
- str r0, [fp, #2448]
- lsrs r0, r0, #5
- adds r0, r0, #24
- strh r0, [r3, #536] @ movhi
-.L3291:
- ldr r3, [r5, #2244]
- cmp r3, #1
- bne .L3292
- mov r0, r7
- mov r1, r8
- bl __aeabi_uidiv
- ldrh fp, [r4, #536]
- uxtah r0, fp, r0
- add fp, fp, r0, asr #2
- strh fp, [r4, #536] @ movhi
-.L3292:
- ldrb r3, [r5, #144] @ zero_extendqisi2
- cbz r3, .L3293
- mov r0, r7
- mov r1, r8
- bl __aeabi_uidiv
- ldrh fp, [r4, #536]
- uxtah r0, fp, r0
- add fp, fp, r0, asr #2
- strh fp, [r4, #536] @ movhi
-.L3293:
- ldrh r3, [r5, #2382]
- cbz r3, .L3295
- ldrh r2, [r4, #536]
- add r2, r2, r3, lsr #1
- strh r2, [r4, #536] @ movhi
- mul r2, r8, r3
- cmp r2, r7
- itttt gt
- addgt r3, r3, #32
- ldrgt r2, .L3312+4
- addgt r3, r3, r9
- strgt r10, [r2, #2448]
- itt gt
- ldrgt r2, .L3312
- strhgt r3, [r2, #536] @ movhi
-.L3295:
- ldrh r2, [r4, #536]
- ldr r3, [r5, #2448]
- subs r3, r3, r2
- ldrh r2, [r5, #2388]
- mul r3, r8, r3
- ldr r8, .L3312+20
- str r3, [r8, #1284]
- muls r3, r2, r3
- ldrh r2, [r5, #2394]
- str r3, [r5, #2448]
- muls r3, r2, r3
- str r3, [r5, #2428]
- bl FtlBbmTblFlush
- ldr r2, [r5, #2336]
- adds r1, r7, r6
- ldrh r3, [r5, #2402]
- add r3, r3, r2, lsr #3
- cmp r1, r3
- bls .L3297
- ldr r0, .L3312+12
- lsrs r2, r2, #5
- bl printk
-.L3297:
- ldrh r2, [r5, #2330]
- movs r1, #0
- ldr r0, [r4, #296]
- movs r7, #0
- movw r6, #65535
- lsls r2, r2, #1
- bl ftl_memset
- ldrh r2, [r5, #2328]
- ldr r0, [r4, #472]
- movs r1, #255
- str r7, [r4, #468]
- movs r3, #1
- lsrs r2, r2, #3
- strh r7, [r4, #558] @ movhi
- strb r7, [r4, #562]
- strb r7, [r4, #564]
- strh r7, [r4, #318] @ movhi
- strb r7, [r4, #322]
- strh r7, [r4, #316] @ movhi
- strh r6, [r4, #556] @ movhi
- strb r3, [r4, #324]
- bl ftl_memset
- ldr r7, .L3312
-.L3298:
- ldr r5, .L3312
- add r0, r5, #316
- bl make_superblock
- ldrb r3, [r4, #323] @ zero_extendqisi2
- ldrh r2, [r4, #316]
- cbnz r3, .L3299
- ldr r3, [r7, #296]
- strh r6, [r3, r2, lsl #1] @ movhi
- ldrh r3, [r7, #316]
+ add r8, r8, r0
+ uxth r8, r8
+ b .L3175
+.L3185:
+ ldr r3, [r4, #508]
+ movw r5, #65535
+ ldrh r1, [r4, #324]
+ ldr r7, .L3195+20
+ str r3, [r4, #332]
adds r3, r3, #1
- strh r3, [r7, #316] @ movhi
- b .L3298
-.L3299:
- ldr r3, [r5, #508]
- movw r7, #65535
- ldrh r1, [r5, #320]
- str r3, [r5, #328]
- adds r3, r3, #1
- str r3, [r5, #508]
- ldr r3, [r5, #296]
+ str r3, [r4, #508]
+ ldr r3, [r4, #300]
strh r1, [r3, r2, lsl #1] @ movhi
movs r3, #0
- strh r3, [r5, #366] @ movhi
- strb r3, [r5, #370]
- ldrh r3, [r5, #316]
+ strh r3, [r4, #370] @ movhi
+ strb r3, [r4, #374]
+ ldrh r3, [r4, #320]
adds r3, r3, #1
- strh r3, [r5, #364] @ movhi
+ strh r3, [r4, #368] @ movhi
movs r3, #1
- strb r3, [r5, #372]
-.L3300:
- ldr r6, .L3312
- add r0, r6, #364
+ strb r3, [r4, #376]
+.L3186:
+ mov r0, r7
bl make_superblock
- ldrb r3, [r4, #371] @ zero_extendqisi2
- ldrh r2, [r4, #364]
- cbnz r3, .L3301
- ldr r3, [r5, #296]
- strh r7, [r3, r2, lsl #1] @ movhi
- ldrh r3, [r5, #364]
+ ldrb r3, [r4, #375] @ zero_extendqisi2
+ ldrh r2, [r4, #368]
+ cbnz r3, .L3187
+ ldr r3, [r4, #300]
+ strh r5, [r3, r2, lsl #1] @ movhi
+ ldrh r3, [r4, #368]
adds r3, r3, #1
- strh r3, [r5, #364] @ movhi
- b .L3300
-.L3301:
- ldr r3, [r6, #508]
- movw r4, #65535
- ldrh r1, [r6, #368]
- str r3, [r6, #376]
+ strh r3, [r4, #368] @ movhi
+ b .L3186
+.L3187:
+ ldr r3, [r4, #508]
+ movw r5, #65535
+ ldrh r1, [r4, #372]
+ str r3, [r4, #380]
adds r3, r3, #1
- str r3, [r6, #508]
- ldr r3, [r6, #296]
+ str r3, [r4, #508]
+ ldr r3, [r4, #300]
strh r1, [r3, r2, lsl #1] @ movhi
- strh r4, [r6, #412] @ movhi
+ strh r5, [r4, #416] @ movhi
bl FtlFreeSysBlkQueueOut
movs r3, #0
- strh r3, [r6, #542] @ movhi
- ldr r3, [r8, #1284]
- strh r4, [r6, #544] @ movhi
- strh r3, [r6, #546] @ movhi
- ldr r3, [r6, #508]
- str r3, [r6, #548]
+ strh r0, [r4, #540] @ movhi
+ strh r3, [r4, #542] @ movhi
+ ldr r3, [r9, #1292]
+ strh r5, [r4, #544] @ movhi
+ strh r3, [r4, #546] @ movhi
+ ldr r3, [r4, #508]
+ str r3, [r4, #548]
adds r3, r3, #1
- str r3, [r6, #508]
- strh r0, [r6, #540] @ movhi
+ str r3, [r4, #508]
bl FtlVpcTblFlush
bl FtlSysBlkInit
- cbnz r0, .L3280
- ldr r3, .L3312+16
+ cbnz r0, .L3166
+ ldr r3, .L3195+24
movs r2, #1
- str r2, [r3, #504]
-.L3280:
+ str r2, [r3, #500]
+.L3166:
movs r0, #0
- add sp, sp, #12
- @ sp needed
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L3313:
+ pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L3196:
.align 2
-.L3312:
+.L3195:
.word .LANCHOR2
.word .LANCHOR0
.word 168778952
.word .LC156
+ .word .LANCHOR2+320
+ .word .LANCHOR2+368
.word .LANCHOR1
.word .LANCHOR4
.fnend
.size FtlLowFormat, .-FtlLowFormat
.align 1
.global FtlReInitForSDUpdata
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FtlReInitForSDUpdata, %function
FtlReInitForSDUpdata:
.fnstart
@@ -20358,168 +20654,179 @@
push {r0, r1, r2, r3, r4, r5, r6, lr}
.save {r4, r5, r6, lr}
.pad #16
- ldr r4, .L3342
- ldrb r3, [r4, #144] @ zero_extendqisi2
- cbz r3, .L3315
-.L3317:
- movs r0, #0
- b .L3316
-.L3315:
- ldr r5, .L3342+4
- ldr r0, [r5, #1180]
- bl FlashInit
- cmp r0, #0
- bne .L3317
- bl FlashLoadFactorBbt
- cbz r0, .L3318
- bl FlashMakeFactorBbt
-.L3318:
- ldr r0, [r5, #1212]
- bl FlashReadIdbDataRaw
- cbz r0, .L3319
- movs r1, #0
- movs r2, #16
- mov r0, sp
- movs r6, #1
- bl FlashReadFacBbtData
- movs r3, #0
- mov r2, r3
- ldr r1, [sp]
-.L3320:
- lsl r5, r6, r2
- adds r0, r3, #1
- tst r5, r1
- add r2, r2, #1
- it ne
- movne r3, r0
- cmp r2, #16
- bne .L3320
- cmp r3, #6
- bls .L3338
- movs r2, #0
- movs r6, #1
-.L3323:
- lsl r5, r6, r2
- adds r0, r3, #1
- tst r5, r1
- add r2, r2, #1
- it ne
- movne r3, r0
- cmp r2, #24
- bne .L3323
- cmp r3, #17
- bhi .L3324
-.L3338:
- strb r2, [r4, #1]
- b .L3322
-.L3324:
- movs r3, #36
- strb r3, [r4, #1]
-.L3322:
- ldrb r3, [r4, #1] @ zero_extendqisi2
- strh r3, [r4, #142] @ movhi
-.L3319:
- ldr r1, .L3342+8
- ldr r0, .L3342+12
- bl printk
- ldr r0, .L3342+16
- bl FtlConstantsInit
- bl FtlVariablesInit
- ldrh r0, [r4, #2324]
- bl FtlFreeSysBlkQueueInit
- movs r4, #1
-.L3325:
- bl FtlLoadBbt
- cbz r0, .L3326
-.L3340:
- bl FtlLowFormat
- cmp r4, #3
- bhi .L3341
- adds r4, r4, #1
- b .L3325
-.L3341:
- mov r0, #-1
- b .L3316
-.L3326:
- bl FtlSysBlkInit
- cmp r0, #0
- bne .L3340
- ldr r3, .L3342+20
- movs r2, #1
- str r2, [r3, #504]
-.L3316:
+ ldr r4, .L3232
+ ldrb r3, [r4, #152] @ zero_extendqisi2
+ cbz r3, .L3198
+.L3200:
+ movs r5, #0
+.L3197:
+ mov r0, r5
add sp, sp, #16
@ sp needed
pop {r4, r5, r6, pc}
-.L3343:
+.L3198:
+ ldr r6, .L3232+4
+ ldr r0, [r6, #1180]
+ bl FlashInit
+ mov r5, r0
+ cmp r0, #0
+ bne .L3200
+ bl FlashLoadFactorBbt
+ cbz r0, .L3201
+ bl FlashMakeFactorBbt
+.L3201:
+ ldr r0, [r6, #1220]
+ bl FlashReadIdbDataRaw
+ cbz r0, .L3202
+ movs r2, #16
+ movs r1, #0
+ mov r0, sp
+ bl FlashReadFacBbtData
+ ldr r1, [sp]
+ movs r3, #0
+ mov r2, r3
+ movs r0, #1
+.L3204:
+ lsl r6, r0, r2
+ adds r2, r2, #1
+ tst r6, r1
+ it ne
+ addne r3, r3, #1
+ cmp r2, #16
+ bne .L3204
+ cmp r3, #6
+ bhi .L3205
+.L3229:
+ strb r2, [r4, #37]
+.L3206:
+ ldrb r3, [r4, #37] @ zero_extendqisi2
+ strh r3, [r4, #150] @ movhi
+.L3202:
+ ldr r1, .L3232+8
+ ldr r0, .L3232+12
+ bl printk
+ ldr r0, .L3232+16
+ bl FtlConstantsInit
+ bl FtlVariablesInit
+ ldrh r0, [r4, #2328]
+ movs r4, #1
+ bl FtlFreeSysBlkQueueInit
+.L3210:
+ bl FtlLoadBbt
+ cbz r0, .L3211
+.L3231:
+ bl FtlLowFormat
+ cmp r4, #3
+ bls .L3212
+ mov r5, #-1
+ b .L3197
+.L3205:
+ movs r2, #0
+ movs r0, #1
+.L3208:
+ lsl r6, r0, r2
+ adds r2, r2, #1
+ tst r6, r1
+ it ne
+ addne r3, r3, #1
+ cmp r2, #24
+ bne .L3208
+ cmp r3, #17
+ bls .L3229
+ movs r3, #36
+ strb r3, [r4, #37]
+ b .L3206
+.L3212:
+ adds r4, r4, #1
+ b .L3210
+.L3211:
+ bl FtlSysBlkInit
+ cmp r0, #0
+ bne .L3231
+ ldr r3, .L3232+20
+ movs r2, #1
+ str r2, [r3, #500]
+ b .L3197
+.L3233:
.align 2
-.L3342:
+.L3232:
.word .LANCHOR0
.word .LANCHOR4
- .word .LC77
.word .LC76
- .word .LANCHOR0+116
+ .word .LC77
+ .word .LANCHOR0+124
.word .LANCHOR1
.fnend
.size FtlReInitForSDUpdata, .-FtlReInitForSDUpdata
.align 1
.global Ftl_gc_temp_data_write_back
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type Ftl_gc_temp_data_write_back, %function
Ftl_gc_temp_data_write_back:
.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}
- ldr r5, .L3360
- ldr r3, [r5, #224]
- cbz r3, .L3345
-.L3348:
+ push {r4, r5, r6, lr}
+ .save {r4, r5, r6, lr}
+ ldr r4, .L3249
+ ldr r3, [r4, #228]
+ cbz r3, .L3235
+.L3238:
movs r0, #0
- pop {r4, r5, r6, r7, r8, pc}
-.L3345:
- ldr r3, .L3360+4
- ldrb r3, [r3, #144] @ zero_extendqisi2
- cbz r3, .L3347
- ldr r3, [r5, #1136]
+ pop {r4, r5, r6, pc}
+.L3235:
+ ldr r3, .L3249+4
+ ldrb r3, [r3, #152] @ zero_extendqisi2
+ cbz r3, .L3237
+ ldr r3, [r4, #1136]
lsls r3, r3, #31
- bpl .L3347
- ldrh r3, [r5, #416]
+ bpl .L3237
+ ldrh r3, [r4, #420]
cmp r3, #0
- bne .L3348
-.L3347:
- movs r2, #0
- ldr r0, [r5, #3308]
- ldr r1, [r5, #1136]
- movs r6, #0
- mov r3, r2
- ldr r7, .L3360
- bl FlashProgPages
- mov r8, #36
-.L3349:
- ldr r1, [r5, #1136]
- uxth r3, r6
- ldr r4, .L3360
- cmp r3, r1
- bcs .L3359
- mul r3, r8, r3
- ldr r0, [r7, #3308]
- adds r6, r6, #1
- adds r1, r0, r3
- ldr r0, [r0, r3]
- ldr r2, [r1, #12]
- cmp r0, #-1
- bne .L3350
- ldrh r1, [r4, #412]
+ bne .L3238
+.L3237:
+ movs r3, #0
movs r5, #0
- ldr r2, [r4, #296]
- strh r5, [r2, r1, lsl #1] @ movhi
- ldr r2, [r4, #704]
- strh r0, [r4, #412] @ movhi
+ movs r6, #36
+ mov r2, r3
+ ldr r1, [r4, #1136]
+ ldr r0, [r4, #3308]
+ bl FlashProgPages
+.L3239:
+ ldr r1, [r4, #1136]
+ uxth r3, r5
+ cmp r3, r1
+ bcc .L3241
+ ldr r0, [r4, #3308]
+ bl FtlGcBufFree
+ movs r3, #0
+ str r3, [r4, #1136]
+ ldrh r3, [r4, #420]
+ cmp r3, #0
+ bne .L3238
+ movs r0, #1
+ bl FtlGcFreeTempBlock
+ b .L3248
+.L3241:
+ muls r3, r6, r3
+ ldr r2, [r4, #3308]
+ adds r5, r5, #1
+ adds r1, r2, r3
+ ldr r2, [r2, r3]
+ ldr r0, [r1, #12]
+ cmp r2, #-1
+ bne .L3240
+ ldrh r0, [r4, #416]
+ movs r5, #0
+ ldr r1, [r4, #300]
+ strh r5, [r1, r0, lsl #1] @ movhi
+ strh r2, [r4, #416] @ movhi
+ ldr r2, [r4, #700]
adds r2, r2, #1
- str r2, [r4, #704]
+ str r2, [r4, #700]
ldr r2, [r4, #3308]
add r3, r3, r2
ldr r0, [r3, #4]
@@ -20527,37 +20834,28 @@
bl FtlBbmMapBadBlock
bl FtlBbmTblFlush
bl FtlGcPageVarInit
- b .L3358
-.L3350:
- ldr r0, [r2, #12]
+.L3248:
+ movs r0, #1
+ pop {r4, r5, r6, pc}
+.L3240:
+ ldr r2, [r0, #8]
ldr r1, [r1, #4]
- ldr r2, [r2, #8]
+ ldr r0, [r0, #12]
bl FtlGcUpdatePage
- b .L3349
-.L3359:
- ldr r0, [r4, #3308]
- bl FtlGcBufFree
- movs r3, #0
- str r3, [r4, #1136]
- ldrh r3, [r4, #416]
- cmp r3, #0
- bne .L3348
- movs r0, #1
- bl FtlGcFreeTempBlock
-.L3358:
- movs r0, #1
- pop {r4, r5, r6, r7, r8, pc}
-.L3361:
+ b .L3239
+.L3250:
.align 2
-.L3360:
+.L3249:
.word .LANCHOR2
.word .LANCHOR0
.fnend
.size Ftl_gc_temp_data_write_back, .-Ftl_gc_temp_data_write_back
.align 1
.global Ftl_get_new_temp_ppa
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type Ftl_get_new_temp_ppa, %function
Ftl_get_new_temp_ppa:
.fnstart
@@ -20566,19 +20864,19 @@
push {r3, r4, r5, lr}
.save {r3, r4, r5, lr}
movw r3, #65535
- ldr r4, .L3365
- ldrh r2, [r4, #412]
+ ldr r4, .L3254
+ ldrh r2, [r4, #416]
cmp r2, r3
- beq .L3363
- ldrh r3, [r4, #416]
- cbnz r3, .L3364
-.L3363:
+ beq .L3252
+ ldrh r3, [r4, #420]
+ cbnz r3, .L3253
+.L3252:
bl FtlCacheWriteBack
movs r0, #0
movs r5, #0
bl FtlGcFreeTempBlock
- ldr r0, .L3365+4
- strb r5, [r4, #420]
+ ldr r0, .L3254+4
+ strb r5, [r4, #424]
bl allocate_data_superblock
strh r5, [r4, #1164] @ movhi
strh r5, [r4, #1172] @ movhi
@@ -20586,970 +20884,941 @@
mov r0, r5
bl FtlEctTblFlush
bl FtlVpcTblFlush
-.L3364:
- ldr r0, .L3365+4
+.L3253:
+ ldr r0, .L3254+4
pop {r3, r4, r5, lr}
b get_new_active_ppa
-.L3366:
+.L3255:
.align 2
-.L3365:
+.L3254:
.word .LANCHOR2
- .word .LANCHOR2+412
+ .word .LANCHOR2+416
.fnend
.size Ftl_get_new_temp_ppa, .-Ftl_get_new_temp_ppa
.align 1
.global ftl_do_gc
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type ftl_do_gc, %function
ftl_do_gc:
.fnstart
@ args = 0, pretend = 0, frame = 32
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L3540
+ ldr r3, .L3422
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
mov r8, r0
- ldr r0, [r3, #224]
.pad #44
sub sp, sp, #44
- mov r6, r1
- mov r7, r3
+ mov r7, r1
+ mov r6, r3
+ ldr r0, [r3, #228]
cmp r0, #0
- bne .L3467
- ldr r1, .L3540+4
- ldr r4, [r1, #504]
+ bne .L3355
+ ldr r1, .L3422+4
+ ldr r4, [r1, #500]
cmp r4, #1
- bne .L3527
+ bne .L3256
ldr r2, [r3, #3280]
cmp r2, #0
- bne .L3527
- ldrh r0, [r3, #304]
+ bne .L3256
+ ldrh r0, [r3, #308]
cmp r0, #47
- bls .L3470
- ldrh r1, [r1, #3448]
+ bls .L3355
+ ldrh r1, [r1, #3444]
movw r2, #65535
cmp r1, r2
- bne .L3369
-.L3372:
- ldrh r4, [r7, #1176]
- movw r1, #65535
- ldr r3, .L3540
- cmp r4, r1
- bne .L3370
- b .L3371
-.L3369:
- ldrh r3, [r3, #412]
- cmp r3, r2
- beq .L3372
- mov r0, r4
- bl FtlGcFreeTempBlock
- cmp r0, #0
- beq .L3372
- mov r0, r4
- b .L3527
-.L3370:
- ldrh r2, [r3, #1174]
- cmp r2, r1
- bne .L3371
- ldrh r0, [r3, #1178]
+ bne .L3258
+.L3261:
+ ldrh r0, [r6, #1176]
+ movw r2, #65535
cmp r0, r2
- beq .L3371
- ldrh r1, [r3, #1180]
- cmp r1, r2
- itttt ne
- strhne r4, [r3, #1174] @ movhi
- strhne r0, [r3, #1176] @ movhi
- strhne r1, [r3, #1178] @ movhi
- strhne r2, [r3, #1180] @ movhi
-.L3371:
- ldr r4, [r7, #1124]
+ bne .L3259
+.L3260:
+ ldr r3, [r6, #1124]
cmp r8, #1
- add r4, r4, #1
- add r4, r4, r8, lsl #7
- str r4, [r7, #1124]
- bne .L3383
- ldr r3, .L3540+8
- ldr r2, [r3, #2244]
- mov r10, r3
- cbnz r2, .L3374
- ldrb r3, [r3, #144] @ zero_extendqisi2
- cmp r3, #0
- beq .L3383
-.L3374:
- ldr r3, [r7, #532]
- ldr r5, .L3540
- cmp r3, #39
- bhi .L3383
- ldr r9, .L3540+12
- ldrh r3, [r9, #976]
- add r4, r4, r3
- str r4, [r5, #1124]
+ add r3, r3, #1
+ add r3, r3, r8, lsl #7
+ str r3, [r6, #1124]
+ bne .L3262
+ ldr r2, .L3422+8
+ ldr r1, [r2, #2248]
+ mov r9, r2
+ cbnz r1, .L3263
+ ldrb r2, [r2, #152] @ zero_extendqisi2
+ cmp r2, #0
+ beq .L3262
+.L3263:
+ ldr r2, [r6, #532]
+ cmp r2, #39
+ bhi .L3262
+ ldr r5, .L3422+12
+ movw r4, #65535
+ ldrh r2, [r5, #1480]
+ add r3, r3, r2
+ str r3, [r6, #1124]
bl FtlGcReFreshBadBlk
- ldrh r3, [r5, #556]
- movw r2, #65535
- cmp r3, r2
- bne .L3383
- ldrh r2, [r5, #1174]
+ ldrh r3, [r6, #556]
+ cmp r3, r4
+ bne .L3264
+ ldrh r2, [r6, #1174]
cmp r2, r3
- bne .L3383
- ldr r3, [r5, #1124]
+ bne .L3352
+ ldr r3, [r6, #1124]
cmp r3, #1024
- bhi .L3375
- ldrh r3, [r5, #312]
+ bhi .L3266
+ ldrh r3, [r6, #316]
cmp r3, #63
- bhi .L3383
-.L3375:
- ldrh r3, [r7, #1122]
- movs r0, #0
- ldrh r4, [r7, #312]
+ bhi .L3352
+.L3266:
+ ldrh r3, [r6, #1122]
+ movs r2, #0
+ ldrh r1, [r6, #316]
+ strh r2, [r5, #1480] @ movhi
adds r3, r3, #64
- ldr r2, .L3540+12
- cmp r4, r3
- strh r0, [r9, #976] @ movhi
- ldr r1, .L3540
- bgt .L3383
- ldr r3, [r1, #532]
- str r0, [r1, #1124]
- cbnz r3, .L3376
+ cmp r1, r3
+ bgt .L3352
+ ldr r3, [r6, #532]
+ str r2, [r6, #1124]
+ cmp r3, #0
+ bne .L3267
movs r3, #6
- b .L3528
-.L3376:
- cmp r3, #5
- bhi .L3377
- movs r3, #18
-.L3528:
- strh r3, [r2, #976] @ movhi
-.L3377:
+.L3413:
+ strh r3, [r5, #1480] @ movhi
+.L3268:
movs r0, #32
bl List_get_gc_head_node
- movw ip, #65535
uxth r2, r0
- cmp r2, ip
- beq .L3382
- ldrh r0, [r7, #1128]
- ldr r5, .L3540
- cmp r0, #0
- beq .L3379
- ldrh r4, [r10, #2390]
- ldrh r3, [r10, #2320]
- ldr fp, [r5, #296]
- muls r3, r4, r3
- ldrh r1, [fp, r2, lsl #1]
- adds r3, r3, #1
- cmp r1, r3
- bgt .L3382
- adds r1, r0, #1
- str ip, [sp, #20]
- str r2, [sp, #16]
- mov r10, #0
- uxth r1, r1
- str r10, [r5, #1132]
- strh r1, [r5, #1128] @ movhi
- str r1, [sp, #12]
+ movw r3, #65535
+ str r3, [sp, #16]
+ cmp r2, r3
+ beq .L3272
+ ldrh r4, [r6, #1128]
+ cmp r4, #0
+ beq .L3270
+ ldrh ip, [r9, #2392]
+ uxth r10, r0
+ ldrh r1, [r9, #2324]
+ ldr r2, [r6, #300]
+ mul r1, r1, ip
+ ldrh r0, [r2, r10, lsl #1]
+ str r2, [sp, #12]
+ adds r1, r1, #1
+ cmp r0, r1
+ bgt .L3272
+ add fp, r4, #1
+ mov r0, r4
+ uxth fp, fp
+ mov r9, #0
+ str r9, [r6, #1132]
+ strh fp, [r6, #1128] @ movhi
bl List_get_gc_head_node
- ldr ip, [sp, #20]
+ ldr r3, [sp, #16]
uxth r4, r0
- ldr r1, [sp, #12]
- cmp r4, ip
- ldr r2, [sp, #16]
- beq .L3382
- ldrh r2, [fp, r2, lsl #1]
- ldrh r3, [fp, r4, lsl #1]
- ldr r0, .L3540+16
+ ldr r2, [sp, #12]
+ cmp r4, r3
+ beq .L3272
+ ldrh r3, [r2, r4, lsl #1]
+ mov r1, fp
+ ldrh r2, [r2, r10, lsl #1]
+ ldr r0, .L3422+16
str r2, [sp]
mov r2, r4
bl printk
- ldrh r3, [r5, #1128]
+ ldrh r3, [r6, #1128]
cmp r3, #40
- bls .L3380
- ldr r3, [r5, #296]
+ bls .L3271
+ ldr r3, [r6, #300]
ldrh r3, [r3, r4, lsl #1]
cmp r3, #32
it hi
- strhhi r10, [r5, #1128] @ movhi
-.L3380:
+ strhhi r9, [r6, #1128] @ movhi
+.L3271:
movs r3, #6
- strh r3, [r9, #976] @ movhi
- b .L3399
-.L3379:
+ strh r3, [r5, #1480] @ movhi
+.L3264:
+ ldrh r2, [r6, #416]
+ movw r3, #65535
+ cmp r2, r3
+ bne .L3299
+.L3354:
+ ldrh r3, [r6, #1174]
+ movw r2, #65535
+ cmp r3, r2
+ bne .L3299
+ cmp r4, r3
+ bne .L3299
+ ldrh r3, [r6, #556]
+ cmp r3, r4
+ beq .L3300
+.L3305:
+ movw r4, #65535
+.L3299:
+ ldr r3, .L3422+8
+ ldr r3, [r3, #2248]
+ cmp r3, #0
+ ite eq
+ moveq r5, #1
+ movne r5, #2
+.L3298:
+ ldrh r3, [r6, #556]
+ movw r2, #65535
+ cmp r3, r2
+ bne .L3308
+ cmp r4, r3
+ beq .L3309
+ strh r4, [r6, #556] @ movhi
+.L3310:
+ ldrh r0, [r6, #556]
+ movw r7, #65535
+ movs r3, #0
+ strb r3, [r6, #564]
+ cmp r0, r7
+ beq .L3308
+ bl IsBlkInGcList
+ cbz r0, .L3313
+ strh r7, [r6, #556] @ movhi
+.L3313:
+ ldr r3, .L3422+8
+ ldrb r3, [r3, #152] @ zero_extendqisi2
+ cbz r3, .L3314
+ ldrh r0, [r6, #556]
+ bl ftl_get_blk_mode
+ strb r0, [r6, #564]
+.L3314:
+ ldrh r2, [r6, #556]
+ movw r3, #65535
+ cmp r2, r3
+ beq .L3308
+ ldr r0, .L3422+20
+ bl make_superblock
+ ldr r2, .L3422+12
+ movs r3, #0
+ strh r3, [r6, #558] @ movhi
+ strb r3, [r6, #562]
+ strh r3, [r2, #1482] @ movhi
+ ldrh r1, [r6, #556]
+ ldr r3, [r6, #300]
+ ldrh r3, [r3, r1, lsl #1]
+ strh r3, [r2, #1484] @ movhi
+.L3308:
+ ldrh r3, [r6, #556]
+ ldrh r2, [r6, #320]
+ cmp r2, r3
+ beq .L3315
+ ldrh r2, [r6, #368]
+ cmp r2, r3
+ beq .L3315
+ ldrh r2, [r6, #416]
+ cmp r2, r3
+ bne .L3316
+.L3315:
+ movw r3, #65535
+ strh r3, [r6, #556] @ movhi
+.L3316:
+ ldr r7, .L3422+8
+.L3349:
+ ldr r9, .L3422
+ movw r3, #65535
+ ldrh fp, [r9, #556]
+ mov r6, r9
+ cmp fp, r3
+ bne .L3317
+ movs r3, #0
+ str r3, [r9, #1132]
+.L3318:
+ ldrh r10, [r6, #1128]
+ mov r0, r10
+ bl List_get_gc_head_node
+ uxth r2, r0
+ cmp r2, fp
+ strh r2, [r6, #556] @ movhi
+ bne .L3319
+ movs r3, #0
+ movs r0, #8
+ strh r3, [r6, #1128] @ movhi
+ b .L3256
+.L3258:
+ ldrh r3, [r3, #416]
+ cmp r3, r2
+ beq .L3261
+ mov r0, r4
+ bl FtlGcFreeTempBlock
+ cmp r0, #0
+ beq .L3261
+ mov r0, r4
+ b .L3256
+.L3259:
+ ldrh r3, [r6, #1174]
+ cmp r3, r2
+ bne .L3260
+ ldrh r1, [r6, #1178]
+ cmp r1, r3
+ beq .L3260
+ ldrh r2, [r6, #1180]
+ cmp r2, r3
+ itttt ne
+ strhne r0, [r6, #1174] @ movhi
+ strhne r1, [r6, #1176] @ movhi
+ strhne r2, [r6, #1178] @ movhi
+ strhne r3, [r6, #1180] @ movhi
+ b .L3260
+.L3267:
+ cmp r3, #5
+ bhi .L3268
+ movs r3, #18
+ b .L3413
+.L3270:
movs r3, #1
- strh r3, [r5, #1128] @ movhi
-.L3382:
+ strh r3, [r6, #1128] @ movhi
+.L3272:
bl GetSwlReplaceBlock
movw r3, #65535
- cmp r0, r3
mov r4, r0
- bne .L3399
+ cmp r0, r3
+ bne .L3264
movs r3, #0
- strh r3, [r9, #976] @ movhi
-.L3383:
- ldrh r3, [r7, #556]
+ strh r3, [r5, #1480] @ movhi
+.L3262:
+ ldrh r3, [r6, #556]
movw r4, #65535
- ldr r5, .L3540
cmp r3, r4
- bne .L3533
- ldrh r4, [r5, #412]
+ beq .L3352
+ cmp r8, #0
+ beq .L3353
+ b .L3264
+.L3423:
+ .align 2
+.L3422:
+ .word .LANCHOR2
+ .word .LANCHOR1
+ .word .LANCHOR0
+ .word .LANCHOR4
+ .word .LC157
+ .word .LANCHOR2+556
+.L3352:
+ ldrh r4, [r6, #416]
+ movw r3, #65535
cmp r4, r3
- bne .L3384
- ldrh r10, [r5, #1174]
- cmp r10, r4
- bne .L3385
- ldrh r3, [r5, #312]
- ldr r2, [r5, #1124]
+ bne .L3273
+ ldrh r5, [r6, #1174]
+ cmp r5, r4
+ bne .L3274
+ ldrh r3, [r6, #316]
+ ldr r2, [r6, #1124]
cmp r3, #24
ite cc
movcc r3, #5120
movcs r3, #1024
cmp r2, r3
- bls .L3387
- ldr r2, .L3540+12
+ bls .L3274
+ ldr r2, .L3424
movs r3, #0
- str r3, [r7, #1124]
- mov r9, r5
- strh r3, [r2, #976] @ movhi
+ str r3, [r6, #1124]
+ strh r3, [r2, #1480] @ movhi
bl GetSwlReplaceBlock
- cmp r0, r10
+ cmp r0, r5
mov r4, r0
- bne .L3388
- ldrh r2, [r5, #312]
- ldrh r3, [r5, #1122]
+ bne .L3362
+ ldrh r2, [r6, #316]
+ ldrh r3, [r6, #1122]
cmp r2, r3
- bcs .L3389
+ bcs .L3277
movs r0, #64
bl List_get_gc_head_node
uxth r3, r0
cmp r3, r4
- bne .L3534
-.L3398:
- bl FtlGcReFreshBadBlk
- cmp r8, #0
- beq .L3535
-.L3399:
- ldrh r2, [r7, #412]
- movw r3, #65535
- cmp r2, r3
- bne .L3410
-.L3465:
- ldrh r3, [r7, #1174]
- movw r2, #65535
- cmp r3, r2
- bne .L3410
- cmp r4, r3
- bne .L3410
-.L3466:
- ldrh r1, [r7, #556]
- movw r3, #65535
- ldr r2, .L3540
+ beq .L3279
+ ldr r2, [r6, #3276]
+ ldr r9, .L3424+8
+ cbnz r2, .L3280
+ ldrh r2, [r9, #2344]
+ cmp r2, #3
+ beq .L3280
+ ldr r2, [r6, #1116]
+ cbnz r2, .L3280
+ ldr r2, [r9, #2248]
+ cbnz r2, .L3280
+ ldrb r0, [r9, #152] @ zero_extendqisi2
+ cmp r0, #0
+ beq .L3281
+.L3280:
+ ldr r2, [r6, #300]
+ ldrh r0, [r9, #2344]
+ ldrh r1, [r2, r3, lsl #1]
+ ldrh r3, [r9, #2392]
+ cmp r0, #3
+ ldrh r2, [r9, #2324]
+ mul r2, r3, r2
+ ite eq
+ lsreq r3, r3, #1
+ movne r3, #0
+ add r3, r3, r2
cmp r1, r3
- beq .L3411
-.L3415:
- movw r4, #65535
- b .L3410
-.L3411:
- movs r3, #0
- ldrh r1, [r2, #312]
- str r3, [r2, #1132]
- ldrh r3, [r2, #1120]
- ldr r4, .L3540+12
- cmp r1, r3
- bls .L3412
- ldrh r3, [r4, #976]
- cbnz r3, .L3413
- ldr r3, .L3540+8
- ldr r2, [r2, #468]
- ldr r3, [r3, #2448]
+ bgt .L3283
+ movs r0, #0
+ bl List_get_gc_head_node
+ ldr r3, [r9, #2452]
+ uxth r5, r0
+ ldr r2, [r6, #472]
add r3, r3, r3, lsl #1
cmp r2, r3, lsr #2
- bcs .L3478
-.L3413:
- ldrh r3, [r7, #536]
- add r3, r3, r3, lsl #1
- ubfx r3, r3, #2, #16
+ bls .L3284
+.L3415:
+ movs r3, #128
b .L3414
-.L3478:
- movs r3, #18
+.L3284:
+ movs r3, #160
.L3414:
- strh r3, [r7, #1120] @ movhi
+ strh r3, [r6, #1122] @ movhi
+ movw r3, #65535
+ cmp r5, r3
+ beq .L3279
+.L3276:
+ ldr r3, [r6, #300]
+ mov r4, r5
+ ldrh r1, [r6, #1120]
+ ldrh r2, [r6, #316]
+ ldrh r3, [r3, r5, lsl #1]
+ str r1, [sp, #4]
+ ldr r1, [r6, #236]
+ ldr r0, .L3424+4
+ ldrh r1, [r1, r5, lsl #1]
+ str r1, [sp]
+ mov r1, r5
+ bl printk
+ b .L3279
+.L3283:
+ movs r3, #128
+.L3416:
+ strh r3, [r6, #1122] @ movhi
+.L3279:
+ bl FtlGcReFreshBadBlk
+ cmp r8, #0
+ bne .L3264
+ movw r3, #65535
+ cmp r4, r3
+ bne .L3264
+.L3353:
+ ldrh r3, [r6, #316]
+ cmp r3, #24
+ bhi .L3364
+ ldr r2, .L3424+8
+ cmp r3, #16
+ ldrh r5, [r2, #2390]
+ bls .L3289
+ lsrs r5, r5, #5
+.L3288:
+ ldrh r2, [r6, #1120]
+ cmp r2, r3
+ bcs .L3292
+ ldrh r3, [r6, #416]
+ movw r2, #65535
+ cmp r3, r2
+ bne .L3293
+ ldrh r2, [r6, #1174]
+ cmp r2, r3
+ bne .L3293
+ ldr r3, .L3424
+ ldrh r0, [r3, #1480]
+ cbnz r0, .L3294
+ ldr r3, .L3424+8
+ ldr r2, [r6, #472]
+ ldr r3, [r3, #2452]
+ add r3, r3, r3, lsl #1
+ cmp r2, r3, lsr #2
+ bcs .L3295
+.L3294:
+ ldrh r3, [r6, #536]
+ add r3, r3, r3, lsl #1
+ asrs r3, r3, #2
+.L3417:
+ strh r3, [r6, #1120] @ movhi
+ movs r3, #0
+ str r3, [r6, #1132]
+.L3256:
+ add sp, sp, #44
+ @ sp needed
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L3281:
+ ldr r2, [r6, #300]
+ ldrh r3, [r2, r3, lsl #1]
+ cmp r3, #7
+ bhi .L3286
+ bl List_get_gc_head_node
+ uxth r5, r0
+ b .L3415
+.L3286:
+ movs r3, #64
+ b .L3416
+.L3277:
+ movs r3, #80
+ b .L3416
+.L3362:
+ mov r5, r0
+ b .L3276
+.L3289:
+ cmp r3, #12
+ bls .L3290
+ lsrs r5, r5, #4
+ b .L3288
+.L3290:
+ cmp r3, #8
+ bls .L3288
+ lsrs r5, r5, #2
+ b .L3288
+.L3364:
+ movs r5, #1
+ b .L3288
+.L3295:
+ movs r3, #18
+ b .L3417
+.L3293:
+ ldrh r3, [r6, #536]
+ add r3, r3, r3, lsl #1
+ asrs r3, r3, #2
+ strh r3, [r6, #1120] @ movhi
+.L3292:
+ ldr r3, .L3424+8
+ ldr r3, [r3, #2248]
+ cbz r3, .L3366
+ cmp r7, #2
+ bhi .L3366
+ adds r5, r5, #1
+ uxth r5, r5
+.L3366:
+ movw r4, #65535
+ b .L3298
+.L3300:
+ movs r3, #0
+ ldrh r2, [r6, #316]
+ str r3, [r6, #1132]
+ ldrh r3, [r6, #1120]
+ ldr r4, .L3424
+ cmp r2, r3
+ bls .L3301
+ ldrh r3, [r4, #1480]
+ cbnz r3, .L3302
+ ldr r3, .L3424+8
+ ldr r2, [r6, #472]
+ ldr r3, [r3, #2452]
+ add r3, r3, r3, lsl #1
+ cmp r2, r3, lsr #2
+ bcs .L3303
+.L3302:
+ ldrh r3, [r6, #536]
+ add r3, r3, r3, lsl #1
+ asrs r3, r3, #2
+.L3418:
+ strh r3, [r6, #1120] @ movhi
bl FtlReadRefresh
movs r0, #0
bl List_get_gc_head_node
- ldr r3, [r7, #296]
+ ldr r3, [r6, #300]
uxth r0, r0
ldrh r3, [r3, r0, lsl #1]
cmp r3, #4
- bls .L3412
- ldrh r0, [r4, #976]
- b .L3527
-.L3412:
- ldrh r0, [r4, #976]
+ bls .L3301
+.L3420:
+ ldrh r0, [r4, #1480]
+ b .L3256
+.L3303:
+ movs r3, #18
+ b .L3418
+.L3301:
+ ldrh r0, [r4, #1480]
cmp r0, #0
- bne .L3415
- ldrh r4, [r7, #536]
- add r3, r4, r4, lsl #1
+ bne .L3305
+ ldrh r5, [r6, #536]
+ add r3, r5, r5, lsl #1
asrs r3, r3, #2
- strh r3, [r7, #1120] @ movhi
+ strh r3, [r6, #1120] @ movhi
bl List_get_gc_head_node
- ldr r3, [r7, #296]
+ ldr r3, [r6, #300]
uxth r0, r0
+ ldr r1, .L3424+8
ldrh r2, [r3, r0, lsl #1]
- ldr r3, .L3540+8
- ldrh r1, [r3, #2390]
- ldrh r3, [r3, #2320]
- muls r3, r1, r3
+ ldrh r0, [r1, #2392]
+ ldrh r3, [r1, #2324]
+ muls r3, r0, r3
add r3, r3, r3, lsr #31
cmp r2, r3, asr #1
- ble .L3416
- ldr r3, .L3540
- subs r4, r4, #1
- ldrh r3, [r3, #312]
- cmp r3, r4
- blt .L3416
+ ble .L3306
+ ldrh r3, [r6, #316]
+ subs r5, r5, #1
+ cmp r3, r5
+ blt .L3306
bl FtlReadRefresh
- b .L3532
-.L3416:
- cmp r2, #0
- bne .L3415
- movw r0, #65535
- bl decrement_vpc_count
- ldrh r0, [r7, #312]
- adds r0, r0, #1
- b .L3527
-.L3541:
- .align 2
-.L3540:
- .word .LANCHOR2
- .word .LANCHOR1
- .word .LANCHOR0
- .word .LANCHOR5
- .word .LC157
-.L3410:
- ldr r3, .L3542
- ldr r3, [r3, #2244]
- cmp r3, #0
- ite eq
- moveq r5, #1
- movne r5, #2
- b .L3409
-.L3535:
- movw r3, #65535
- cmp r4, r3
- bne .L3399
-.L3464:
- ldrh r4, [r7, #312]
- cmp r4, #24
- bhi .L3474
- ldr r3, .L3542
- cmp r4, #16
- ldrh r5, [r3, #2388]
- bls .L3401
- lsrs r5, r5, #5
-.L3400:
- ldrh r3, [r7, #1120]
- ldr r2, .L3542+4
- cmp r3, r4
- bcc .L3536
-.L3404:
- ldr r3, .L3542
- ldr r3, [r3, #2244]
- cmp r3, #0
- bne .L3537
-.L3477:
- movw r4, #65535
-.L3409:
- ldrh r2, [r7, #556]
- movw r1, #65535
- ldr r3, .L3542+4
- cmp r2, r1
- bne .L3418
- cmp r4, r2
- beq .L3419
- strh r4, [r3, #556] @ movhi
b .L3420
-.L3419:
- ldrh r2, [r3, #1174]
- cmp r2, r4
- beq .L3420
- ldr r1, [r3, #296]
- ldrh r2, [r1, r2, lsl #1]
- cbnz r2, .L3421
- strh r4, [r3, #1174] @ movhi
-.L3421:
- ldrh r3, [r7, #1174]
- strh r3, [r7, #556] @ movhi
- movw r3, #65535
- strh r3, [r7, #1174] @ movhi
-.L3420:
- ldrh r0, [r7, #556]
- movw r6, #65535
- movs r3, #0
- strb r3, [r7, #564]
- cmp r0, r6
- beq .L3418
- bl IsBlkInGcList
- cbz r0, .L3423
- ldr r3, .L3542+4
- strh r6, [r3, #556] @ movhi
-.L3423:
- ldr r3, .L3542
- ldrb r3, [r3, #144] @ zero_extendqisi2
- cbz r3, .L3424
- ldrh r0, [r7, #556]
- bl ftl_get_blk_mode
- strb r0, [r7, #564]
-.L3424:
- ldrh r2, [r7, #556]
- movw r3, #65535
- ldr r6, .L3542+4
- cmp r2, r3
- beq .L3418
- add r0, r6, #556
- bl make_superblock
- ldr r2, .L3542+8
- movs r3, #0
- ldrh r1, [r6, #556]
- strh r3, [r6, #558] @ movhi
- strb r3, [r6, #562]
- strh r3, [r2, #978] @ movhi
- ldr r3, [r6, #296]
- ldrh r3, [r3, r1, lsl #1]
- strh r3, [r2, #980] @ movhi
-.L3418:
- ldrh r3, [r7, #556]
- ldrh r1, [r7, #316]
- ldr r2, .L3542+4
- cmp r1, r3
- beq .L3425
- ldrh r1, [r2, #364]
- cmp r1, r3
- beq .L3425
- ldrh r2, [r2, #412]
- cmp r2, r3
- bne .L3426
-.L3425:
- movw r3, #65535
- strh r3, [r7, #556] @ movhi
-.L3426:
- ldr r7, .L3542
-.L3459:
- ldr r6, .L3542+4
- movw r3, #65535
- ldrh r2, [r6, #556]
- mov fp, r6
- cmp r2, r3
- bne .L3427
- mov r10, r6
- movs r3, #0
- str r3, [r6, #1132]
-.L3428:
- ldrh r9, [fp, #1128]
- mov r0, r9
- bl List_get_gc_head_node
- movw r2, #65535
- uxth r3, r0
- strh r3, [fp, #556] @ movhi
- cmp r3, r2
- bne .L3429
- ldr r3, .L3542+4
- movs r2, #0
- movs r0, #8
- strh r2, [r3, #1128] @ movhi
- b .L3527
-.L3429:
- mov r0, r3
- str r3, [sp, #12]
- bl IsBlkInGcList
- add r9, r9, #1
- ldr r3, [sp, #12]
- cbz r0, .L3430
- strh r9, [r10, #1128] @ movhi
- b .L3428
-.L3430:
- ldrh lr, [r7, #2320]
- uxth r9, r9
- ldrh r2, [r7, #2388]
- ldr r1, [r10, #296]
- strh r9, [r10, #1128] @ movhi
- mul r2, lr, r2
- ldrh r0, [r1, r3, lsl #1]
- add lr, r2, r2, lsr #31
- cmp r0, lr, asr #1
- bgt .L3432
- cmp r9, #48
- bls .L3433
- cmp r0, #8
- bls .L3433
- ldrh r0, [r10, #1164]
- cmp r0, #35
- bhi .L3433
-.L3432:
- movs r0, #0
- strh r0, [fp, #1128] @ movhi
-.L3433:
- ldrh r1, [r1, r3, lsl #1]
- cmp r1, r2
- blt .L3434
- movw r2, #65535
- cmp r4, r2
- bne .L3434
- ldrh r0, [fp, #1128]
- ldr r2, .L3542+4
- cmp r0, #3
- bhi .L3434
- movs r3, #0
- strh r4, [r2, #556] @ movhi
- strh r3, [r2, #1128] @ movhi
-.L3532:
- ldr r3, .L3542+8
- ldrh r0, [r3, #976]
- b .L3527
-.L3434:
- cbnz r1, .L3435
+.L3306:
+ cmp r2, #0
+ bne .L3305
movw r0, #65535
bl decrement_vpc_count
- ldrh r3, [fp, #1128]
- adds r3, r3, #1
- strh r3, [fp, #1128] @ movhi
- b .L3428
-.L3435:
- movs r2, #0
- strb r2, [r6, #564]
- ldr r2, .L3542
- ldrb r2, [r2, #144] @ zero_extendqisi2
- cbz r2, .L3436
- mov r0, r3
- bl ftl_get_blk_mode
- ldr r3, .L3542+4
- strb r0, [r3, #564]
-.L3436:
- ldr r0, .L3542+12
- bl make_superblock
- ldr r2, .L3542+8
- ldrh r0, [r6, #556]
+ ldrh r0, [r6, #316]
+ adds r0, r0, #1
+ b .L3256
+.L3309:
+ ldrh r3, [r6, #1174]
+ cmp r3, r4
+ beq .L3310
+ ldr r2, [r6, #300]
+ ldrh r3, [r2, r3, lsl #1]
+ cbnz r3, .L3311
+ strh r4, [r6, #1174] @ movhi
+.L3311:
+ ldrh r3, [r6, #1174]
+ strh r3, [r6, #556] @ movhi
+ movw r3, #65535
+ strh r3, [r6, #1174] @ movhi
+ b .L3310
+.L3319:
+ str r0, [sp, #16]
+ mov r0, r2
+ str r2, [sp, #12]
+ add r10, r10, #1
+ bl IsBlkInGcList
+ ldr r2, [sp, #12]
+ ldr r3, [sp, #16]
+ cbz r0, .L3320
+ strh r10, [r6, #1128] @ movhi
+ b .L3318
+.L3320:
+ ldrh lr, [r7, #2324]
+ uxth r10, r10
+ ldrh r1, [r7, #2390]
+ uxth r3, r3
+ ldr r0, [r6, #300]
+ strh r10, [r6, #1128] @ movhi
+ mul r1, lr, r1
+ ldrh ip, [r0, r3, lsl #1]
+ add lr, r1, r1, lsr #31
+ cmp ip, lr, asr #1
+ bgt .L3322
+ cmp r10, #48
+ bls .L3323
+ cmp ip, #8
+ bls .L3323
+ ldrh ip, [r6, #1164]
+ cmp ip, #35
+ bhi .L3323
+.L3322:
+ mov ip, #0
+ strh ip, [r6, #1128] @ movhi
+.L3323:
+ ldrh r3, [r0, r3, lsl #1]
+ cmp r1, r3
+ bgt .L3324
+ cmp r4, fp
+ bne .L3324
+ ldrh r1, [r6, #1128]
+ cmp r1, #3
+ bhi .L3324
movs r3, #0
- ldr r1, [r6, #296]
- strh r3, [r2, #978] @ movhi
+ strh r4, [r6, #556] @ movhi
+ strh r3, [r6, #1128] @ movhi
+.L3421:
+ ldr r3, .L3424
+ ldrh r0, [r3, #1480]
+ b .L3256
+.L3425:
+ .align 2
+.L3424:
+ .word .LANCHOR4
+ .word .LC158
+ .word .LANCHOR0
+.L3324:
+ cbnz r3, .L3325
+ movw r0, #65535
+ bl decrement_vpc_count
+ ldrh r3, [r6, #1128]
+ adds r3, r3, #1
+ strh r3, [r6, #1128] @ movhi
+ b .L3318
+.L3325:
+ movs r3, #0
+ strb r3, [r9, #564]
+ ldrb r3, [r7, #152] @ zero_extendqisi2
+ cbz r3, .L3326
+ mov r0, r2
+ bl ftl_get_blk_mode
+ strb r0, [r9, #564]
+.L3326:
+ ldr r0, .L3426
+ bl make_superblock
+ ldr r2, .L3426+4
+ movs r3, #0
+ ldrh r0, [r9, #556]
+ ldr r1, [r9, #300]
+ strh r3, [r2, #1482] @ movhi
ldrh r1, [r1, r0, lsl #1]
- strh r3, [r6, #558] @ movhi
- strb r3, [r6, #562]
- strh r1, [r2, #980] @ movhi
-.L3427:
+ strh r3, [r9, #558] @ movhi
+ strb r3, [r9, #562]
+ strh r1, [r2, #1484] @ movhi
+.L3317:
cmp r8, #1
- bne .L3437
+ bne .L3327
bl FtlReadRefresh
-.L3437:
+.L3327:
movs r3, #1
- str r3, [r6, #3280]
- ldrh r3, [r7, #2388]
- str r3, [sp, #12]
- ldrb r3, [r7, #144] @ zero_extendqisi2
- cbz r3, .L3438
- ldr r3, .L3542+4
- ldrb r3, [r3, #564] @ zero_extendqisi2
+ str r3, [r9, #3280]
+ ldrh r3, [r7, #2390]
+ str r3, [sp, #16]
+ ldrb r3, [r7, #152] @ zero_extendqisi2
+ cbz r3, .L3328
+ ldrb r3, [r9, #564] @ zero_extendqisi2
cmp r3, #1
itt eq
- ldrheq r3, [r7, #2390]
- streq r3, [sp, #12]
-.L3438:
- ldrh r3, [r6, #558]
- ldr r1, [sp, #12]
+ ldrheq r3, [r7, #2392]
+ streq r3, [sp, #16]
+.L3328:
+ ldrh r3, [r9, #558]
+ ldr r1, [sp, #16]
adds r2, r3, r5
cmp r2, r1
- ittt gt
+ itt gt
movgt r2, r1
- subgt r3, r2, r3
- uxthgt r5, r3
- movs r3, #0
-.L3531:
- str r3, [sp, #16]
- ldrh r3, [sp, #16]
- ldr r6, .L3542+4
- cmp r3, r5
- bcs .L3447
- ldr r3, [r6, #1152]
- addw r1, r6, #570
- ldr r2, [sp, #16]
- movw lr, #65535
- ldrh r10, [r7, #2320]
+ subgt r5, r2, r3
+ mov r3, #0
+ it gt
+ uxthgt r5, r5
+.L3419:
str r3, [sp, #20]
- ldrh r3, [r6, #558]
- add ip, r3, r2
- movs r3, #0
- mov r9, r3
-.L3448:
- uxth r2, r3
- cmp r2, r10
- bcs .L3538
- ldrh r2, [r1, #2]!
- cmp r2, lr
- beq .L3441
- ldr r0, [sp, #20]
- mov fp, #36
- orr r2, ip, r2, lsl #10
- mla fp, fp, r9, r0
- add r9, r9, #1
- uxth r9, r9
- str r2, [fp, #4]
-.L3441:
- adds r3, r3, #1
- b .L3448
-.L3543:
- .align 2
-.L3542:
- .word .LANCHOR0
- .word .LANCHOR2
- .word .LANCHOR5
- .word .LANCHOR2+556
-.L3538:
+ ldrh r3, [sp, #20]
+ ldr r6, .L3426+8
+ cmp r5, r3
+ bls .L3337
+ ldr r3, [sp, #20]
+ movw fp, #65535
+ ldrh r10, [r6, #558]
+ mov ip, #36
+ ldrh r9, [r7, #2324]
ldr r0, [r6, #1152]
- mov r1, r9
+ add r10, r10, r3
+ addw r3, r6, #570
+ str r3, [sp, #24]
+ movs r3, #0
+ str r3, [sp, #12]
+ b .L3338
+.L3332:
+ ldr r1, [sp, #24]
+ ldrh r2, [r1, #2]!
+ cmp r2, fp
+ str r1, [sp, #24]
+ beq .L3331
+ ldr r1, [sp, #12]
+ orr r2, r10, r2, lsl #10
+ mla lr, ip, r1, r0
+ str r2, [lr, #4]
+ mov r2, r1
+ adds r2, r2, #1
+ uxth r2, r2
+ str r2, [sp, #12]
+.L3331:
+ adds r3, r3, #1
+.L3338:
+ uxth r2, r3
+ cmp r9, r2
+ bhi .L3332
ldrb r2, [r6, #564] @ zero_extendqisi2
mov fp, #0
+ ldr r6, .L3426+8
+ ldr r1, [sp, #12]
bl FlashReadPages
- ldr r6, .L3544
-.L3443:
+.L3333:
+ ldr r2, [sp, #12]
uxth r3, fp
- cmp r3, r9
- bcs .L3539
- mov ip, #36
+ cmp r2, r3
+ bhi .L3336
+ ldr r3, [sp, #20]
+ adds r3, r3, #1
+ b .L3419
+.L3336:
+ movs r3, #36
ldr r2, [r6, #1152]
- mul r10, ip, fp
- add r3, r2, r10
- ldr r2, [r2, r10]
- ldr r3, [r3, #12]
+ mul r9, r3, fp
+ add r1, r2, r9
+ ldr r2, [r2, r9]
adds r2, r2, #1
- beq .L3481
- ldrh r1, [r3]
+ beq .L3334
+ ldr r10, [r1, #12]
movw r2, #61589
+ ldrh r1, [r10]
cmp r1, r2
- bne .L3481
- ldr r0, [r3, #8]
- add r1, sp, #32
+ bne .L3334
movs r2, #0
- str ip, [sp, #24]
- str r3, [sp, #20]
+ add r1, sp, #32
+ ldr r0, [r10, #8]
+ str r3, [sp, #24]
bl log2phys
ldr r1, [r6, #1152]
- add r1, r1, r10
- ldr r0, [r1, #4]
ldr r2, [sp, #32]
- ldr r3, [sp, #20]
+ ldr r3, [sp, #24]
+ add r1, r1, r9
+ ldr r0, [r1, #4]
bic r2, r2, #-2147483648
- ldr ip, [sp, #24]
cmp r2, r0
- bne .L3481
- str r3, [sp, #28]
- ldr r3, .L3544+4
- ldr r0, [r6, #1136]
+ bne .L3334
+ ldr r2, .L3426+4
+ ldr r0, .L3426+4
ldr r1, [r1, #16]
- ldrh r2, [r3, #978]
+ ldrh r2, [r2, #1482]
+ str r3, [sp, #28]
adds r2, r2, #1
- strh r2, [r3, #978] @ movhi
+ strh r2, [r0, #1482] @ movhi
+ ldr r0, [r6, #1136]
ldr r2, [r6, #3308]
- mla r2, ip, r0, r2
+ mla r2, r3, r0, r2
str r1, [r2, #16]
- str r2, [sp, #20]
+ str r2, [sp, #24]
bl Ftl_get_new_temp_ppa
- ldr r1, [r6, #1136]
- ldr r2, [sp, #20]
- ldr ip, [sp, #24]
+ ldr r2, [sp, #24]
+ ldr r1, [r6, #3308]
ldr r3, [sp, #28]
str r0, [r2, #4]
- ldr r2, [r6, #3308]
- mla ip, ip, r1, r2
+ ldr r2, [r6, #1136]
+ mla r3, r3, r2, r1
ldr r2, [r6, #1152]
- add r2, r2, r10
+ add r2, r2, r9
ldr r1, [r2, #8]
- str r1, [ip, #8]
+ str r1, [r3, #8]
movs r1, #1
ldr r2, [r2, #12]
- str r2, [ip, #12]
- ldr r2, [sp, #32]
str r2, [r3, #12]
- ldrh r2, [r6, #412]
- strh r2, [r3, #2] @ movhi
- ldr r2, [r6, #512]
+ ldr r3, [sp, #32]
+ str r3, [r10, #12]
+ ldrh r3, [r6, #416]
+ strh r3, [r10, #2] @ movhi
+ ldr r3, [r6, #512]
ldr r0, [r6, #1152]
- str r2, [r3, #4]
- add r0, r0, r10
+ str r3, [r10, #4]
ldr r3, [r6, #1136]
+ add r0, r0, r9
adds r3, r3, #1
str r3, [r6, #1136]
bl FtlGcBufAlloc
- ldrb r3, [r7, #144] @ zero_extendqisi2
- cbnz r3, .L3445
- ldrb r3, [r6, #419] @ zero_extendqisi2
- ldr r2, [r6, #1136]
+ ldrb r3, [r7, #152] @ zero_extendqisi2
+ cbnz r3, .L3335
+ ldrb r2, [r6, #423] @ zero_extendqisi2
+ ldr r3, [r6, #1136]
cmp r2, r3
- beq .L3445
- ldrh r3, [r6, #416]
- cbnz r3, .L3481
-.L3445:
+ beq .L3335
+ ldrh r3, [r6, #420]
+ cbnz r3, .L3334
+.L3335:
bl Ftl_gc_temp_data_write_back
- cbz r0, .L3481
- ldr r3, .L3544
+ cbz r0, .L3334
+ ldr r3, .L3426+8
movs r2, #0
movw r1, #65535
str r2, [r3, #3280]
strh r1, [r3, #556] @ movhi
strh r2, [r3, #558] @ movhi
- b .L3532
-.L3481:
+ b .L3421
+.L3334:
add fp, fp, #1
- b .L3443
-.L3539:
- ldr r3, [sp, #16]
- adds r3, r3, #1
- b .L3531
-.L3447:
+ b .L3333
+.L3337:
ldrh r3, [r6, #558]
add r5, r5, r3
- ldr r3, [sp, #12]
+ ldr r3, [sp, #16]
uxth r5, r5
+ cmp r3, r5
strh r5, [r6, #558] @ movhi
- cmp r5, r3
- bcc .L3449
+ bhi .L3339
ldr r3, [r6, #1136]
- ldr r5, .L3544+4
- cbz r3, .L3450
+ ldr r5, .L3426+4
+ cbz r3, .L3340
bl Ftl_gc_temp_data_write_back
- cbz r0, .L3450
+ cbz r0, .L3340
movs r3, #0
- ldrh r0, [r5, #976]
+ ldrh r0, [r5, #1480]
str r3, [r6, #3280]
- b .L3527
-.L3450:
- ldrh r5, [r5, #978]
- cbnz r5, .L3451
+ b .L3256
+.L3340:
+ ldrh r5, [r5, #1482]
+ cbnz r5, .L3341
ldrh r2, [r6, #556]
- ldr r3, [r6, #296]
+ ldr r3, [r6, #300]
ldrh r3, [r3, r2, lsl #1]
- cbz r3, .L3451
-.L3452:
- ldr r3, [r7, #2448]
+ cbz r3, .L3341
+.L3342:
+ ldr r3, [r7, #2452]
cmp r5, r3
- bcs .L3457
- mov r0, r5
- add r1, sp, #36
+ bcs .L3347
movs r2, #0
+ add r1, sp, #36
+ mov r0, r5
bl log2phys
ldr r0, [sp, #36]
adds r3, r0, #1
- beq .L3453
+ beq .L3343
ubfx r0, r0, #10, #16
bl P2V_block_in_plane
ldrh r3, [r6, #556]
cmp r3, r0
- bne .L3453
-.L3457:
- ldr r3, .L3544+8
- ldr r3, [r3, #2448]
+ bne .L3343
+.L3347:
+ ldr r3, [r7, #2452]
cmp r5, r3
- bcc .L3451
+ bcc .L3341
ldrh r2, [r6, #556]
movs r1, #0
- ldr r3, [r6, #296]
+ ldr r3, [r6, #300]
strh r1, [r3, r2, lsl #1] @ movhi
ldrh r0, [r6, #556]
bl update_vpc_list
bl FtlCacheWriteBack
bl l2p_flush
bl FtlVpcTblFlush
- b .L3451
-.L3453:
- adds r5, r5, #1
- b .L3452
-.L3451:
+.L3341:
movw r3, #65535
strh r3, [r6, #556] @ movhi
-.L3449:
- ldrh r3, [r6, #312]
+.L3339:
+ ldrh r3, [r6, #316]
cmp r3, #2
- bhi .L3458
- ldrh r5, [r7, #2388]
- b .L3459
-.L3458:
- ldr r2, .L3544
- movs r1, #0
- str r1, [r2, #3280]
- ldr r2, .L3544+4
- ldrh r0, [r2, #976]
- cmp r0, #0
- bne .L3527
- adds r0, r3, #1
- b .L3527
-.L3467:
- movs r0, #0
- b .L3527
-.L3470:
- mov r0, r2
- b .L3527
-.L3534:
- ldr r2, [r5, #3276]
- ldr r5, .L3544+8
- cbnz r2, .L3391
- ldrh r2, [r5, #2340]
- cmp r2, #3
- beq .L3391
- ldr r2, [r9, #604]
- cbnz r2, .L3391
- ldr r2, [r5, #2244]
- cbnz r2, .L3391
- ldrb r0, [r5, #144] @ zero_extendqisi2
- cbz r0, .L3392
-.L3391:
- ldr r2, [r7, #296]
- ldrh r0, [r5, #2340]
- ldrh r1, [r2, r3, lsl #1]
- cmp r0, #3
- ldrh r3, [r5, #2390]
- ldrh r2, [r5, #2320]
- mul r2, r2, r3
- ite eq
- lsreq r3, r3, #1
- movne r3, #0
- add r3, r3, r2
- cmp r1, r3
- bgt .L3394
- movs r0, #0
- bl List_get_gc_head_node
- ldr r3, [r5, #2448]
- ldr r2, .L3544
- ldr r1, [r7, #468]
- add r3, r3, r3, lsl #1
- cmp r1, r3, lsr #2
- ite hi
- movhi r3, #128
- movls r3, #160
- strh r3, [r2, #1122] @ movhi
- uxth r4, r0
- b .L3396
-.L3394:
- movs r3, #128
- b .L3530
-.L3392:
- ldr r2, [r9, #296]
- ldrh r3, [r2, r3, lsl #1]
- cmp r3, #7
- bhi .L3397
- bl List_get_gc_head_node
- movs r3, #128
- strh r3, [r7, #1122] @ movhi
- uxth r4, r0
- b .L3396
-.L3397:
- movs r3, #64
-.L3530:
- strh r3, [r7, #1122] @ movhi
- b .L3398
-.L3389:
- movs r3, #80
- strh r3, [r5, #1122] @ movhi
- b .L3398
-.L3396:
- movw r3, #65535
- cmp r4, r3
- beq .L3398
-.L3388:
- ldr r1, [r7, #232]
- ldr r3, [r7, #296]
- ldrh r2, [r7, #312]
- ldrh r1, [r1, r4, lsl #1]
- ldrh r3, [r3, r4, lsl #1]
- ldr r0, .L3544+12
- str r1, [sp]
- ldrh r1, [r7, #1120]
- str r1, [sp, #4]
- mov r1, r4
- bl printk
- b .L3398
-.L3401:
- cmp r4, #12
- bls .L3402
- lsrs r5, r5, #4
- b .L3400
-.L3402:
- cmp r4, #8
- bls .L3400
- lsrs r5, r5, #2
- b .L3400
-.L3474:
- movs r5, #1
- b .L3400
-.L3536:
- ldrh r3, [r2, #412]
- movw r1, #65535
- cmp r3, r1
- bne .L3405
- ldrh r1, [r2, #1174]
- cmp r1, r3
- bne .L3405
- ldr r3, .L3544+4
- ldrh r0, [r3, #976]
- cbnz r0, .L3406
- ldr r3, .L3544+8
- ldr r2, [r2, #468]
- ldr r3, [r3, #2448]
- add r3, r3, r3, lsl #1
- cmp r2, r3, lsr #2
- bcs .L3475
-.L3406:
- ldrh r3, [r7, #536]
- add r3, r3, r3, lsl #1
- ubfx r3, r3, #2, #16
- b .L3407
-.L3545:
- .align 2
-.L3544:
- .word .LANCHOR2
- .word .LANCHOR5
- .word .LANCHOR0
- .word .LC158
-.L3475:
- movs r3, #18
-.L3407:
- strh r3, [r7, #1120] @ movhi
- movs r3, #0
- str r3, [r7, #1132]
- b .L3527
-.L3405:
- ldrh r3, [r7, #536]
- add r3, r3, r3, lsl #1
- asrs r3, r3, #2
- strh r3, [r7, #1120] @ movhi
- b .L3404
-.L3537:
- cmp r6, #2
- bhi .L3477
+ bhi .L3348
+ ldrh r5, [r7, #2390]
+ b .L3349
+.L3343:
adds r5, r5, #1
- uxth r5, r5
- b .L3477
-.L3533:
+ b .L3342
+.L3348:
+ movs r2, #0
+ str r2, [r6, #3280]
+ ldr r2, .L3426+4
+ ldrh r0, [r2, #1480]
+ cmp r0, #0
+ bne .L3256
+ adds r0, r3, #1
+ b .L3256
+.L3355:
+ movs r0, #0
+ b .L3256
+.L3274:
cmp r8, #0
- beq .L3464
- b .L3399
-.L3385:
+ bne .L3354
+ b .L3353
+.L3273:
cmp r8, #0
- beq .L3464
- b .L3465
-.L3384:
- cmp r8, #0
- beq .L3464
- b .L3415
-.L3387:
- cmp r8, #0
- beq .L3464
- b .L3466
-.L3527:
- add sp, sp, #44
- @ sp needed
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
+ bne .L3305
+ b .L3353
+.L3427:
+ .align 2
+.L3426:
+ .word .LANCHOR2+556
+ .word .LANCHOR4
+ .word .LANCHOR2
.fnend
.size ftl_do_gc, .-ftl_do_gc
.align 1
.global FtlCacheWriteBack
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FtlCacheWriteBack, %function
FtlCacheWriteBack:
.fnstart
@@ -21558,241 +21827,245 @@
push {r0, r1, r2, r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.pad #12
- ldr r3, .L3589
- ldr r7, .L3589+4
- ldr r5, [r3, #984]
- ldr r3, [r7, #224]
- cmp r3, #0
- bne .L3548
- ldr r4, .L3589+8
- ldr r1, [r4, #2440]
- cmp r1, #0
- beq .L3548
- ldrb r3, [r4, #144] @ zero_extendqisi2
- cbz r3, .L3571
- ldrb r8, [r5, #8] @ zero_extendqisi2
+ ldr r5, .L3470
+ ldr r9, [r5, #228]
+ cmp r9, #0
+ bne .L3430
+ ldr r4, .L3470+4
+ ldr r1, [r4, #2444]
+ cbz r1, .L3430
+ ldr r3, .L3470+8
+ ldr r6, [r3, #1488]
+ ldrb r3, [r4, #152] @ zero_extendqisi2
+ cbz r3, .L3455
+ ldrb r8, [r6, #8] @ zero_extendqisi2
add r0, r8, #-1
rsbs r8, r0, #0
adc r8, r8, r0
- b .L3550
-.L3571:
- mov r8, r3
-.L3550:
- ldr r0, [r4, #2444]
+.L3432:
+ movs r7, #0
+ mov r10, #36
+ ldrb r3, [r6, #9] @ zero_extendqisi2
mov r2, r8
- ldrb r3, [r5, #9] @ zero_extendqisi2
- mov r9, #0
+ ldr r0, [r4, #2448]
bl FlashProgPages
- ldr r10, .L3589+8
- mov fp, #36
-.L3551:
- ldr r3, [r4, #2440]
- cmp r9, r3
- bcs .L3569
- mul r6, fp, r9
- ldr r3, [r10, #2444]
- adds r2, r3, r6
- ldr r3, [r3, r6]
- adds r3, r3, #1
- beq .L3572
- ldr r3, [r2, #4]
- cmp r8, #0
- beq .L3585
- orr r3, r3, #-2147483648
-.L3585:
- ldr r0, [r2, #16]
- add r1, sp, #4
- movs r2, #1
- str r3, [sp, #4]
- bl log2phys
+.L3433:
ldr r3, [r4, #2444]
- add r6, r6, r3
- ldr r3, [r6, #12]
- ldr r0, [r3, #12]
- adds r2, r0, #1
- beq .L3555
- ubfx r0, r0, #10, #16
- bl P2V_block_in_plane
- ldr r3, [r7, #296]
- ldrh r2, [r3, r0, lsl #1]
- mov r6, r0
- cbnz r2, .L3556
- ldr r0, .L3589+12
- mov r1, r6
- bl printk
-.L3556:
- mov r0, r6
- bl decrement_vpc_count
-.L3555:
- add r9, r9, #1
- b .L3551
-.L3587:
- movw r5, #16386
-.L3568:
- ldrh r3, [r7, #1182]
- cbz r3, .L3569
- movs r0, #1
- mov r1, r0
- bl ftl_do_gc
- subs r5, r5, #1
- bne .L3568
-.L3569:
+ cmp r7, r3
+ bcc .L3440
+.L3452:
movs r3, #0
- str r3, [r4, #2440]
- b .L3548
-.L3572:
- ldr r10, .L3589+8
- mov r9, #0
-.L3552:
- ldr r3, [r4, #2440]
- cmp r9, r3
- bcs .L3587
- movs r6, #36
- ldr r3, [r10, #2444]
- mov fp, #0
- mov r2, #-1
- mul r6, r6, r9
- str r2, [r3, r6]
-.L3558:
- ldr r3, [r4, #2444]
- adds r2, r3, r6
- ldr r3, [r3, r6]
- adds r3, r3, #1
- bne .L3588
- ldr r0, [r2, #4]
- ubfx r0, r0, #10, #16
- bl P2V_block_in_plane
- ldrh r3, [r5]
- cmp r3, r0
- bne .L3559
- ldr r1, [r7, #296]
- ldrh r0, [r5, #4]
- ldrh r2, [r1, r3, lsl #1]
- subs r2, r2, r0
- strh r2, [r1, r3, lsl #1] @ movhi
- ldrh r3, [r10, #2388]
- strb fp, [r5, #6]
- strh fp, [r5, #4] @ movhi
- strh r3, [r5, #2] @ movhi
-.L3559:
- ldrh r3, [r5, #4]
- cbnz r3, .L3560
- mov r0, r5
- bl allocate_new_data_superblock
-.L3560:
- ldr r3, [r7, #704]
- adds r3, r3, #1
- str r3, [r7, #704]
- ldr r3, [r4, #2444]
- add r3, r3, r6
- ldr r0, [r3, #4]
- ubfx r0, r0, #10, #16
- bl FtlGcMarkBadPhyBlk
- mov r0, r5
- bl get_new_active_ppa
- ldr r3, [r4, #2444]
- mov r2, r8
- movs r1, #1
- add r3, r3, r6
- str r0, [sp, #4]
- str r0, [r3, #4]
- mov r0, r3
- ldrb r3, [r5, #9] @ zero_extendqisi2
- bl FlashProgPages
- ldr r3, [r4, #2444]
- ldr r3, [r3, r6]
- adds r3, r3, #1
- ittt eq
- moveq r3, #1
- ldreq r2, .L3589+4
- streq r3, [r2, #224]
- ldr r3, [r7, #224]
- cmp r3, #0
- beq .L3558
- b .L3548
-.L3588:
- ldr r3, [r2, #4]
- cmp r8, #0
- beq .L3586
- orr r3, r3, #-2147483648
-.L3586:
- ldr r0, [r2, #16]
- add r1, sp, #4
- movs r2, #1
- str r3, [sp, #4]
- bl log2phys
- ldr r3, [r4, #2444]
- add r6, r6, r3
- ldr r3, [r6, #12]
- ldr r0, [r3, #12]
- adds r3, r0, #1
- beq .L3565
- ubfx r0, r0, #10, #16
- bl P2V_block_in_plane
- ldr r3, [r7, #296]
- ldrh r2, [r3, r0, lsl #1]
- mov r6, r0
- cbnz r2, .L3566
- ldr r0, .L3589+12
- mov r1, r6
- bl printk
-.L3566:
- mov r0, r6
- bl decrement_vpc_count
-.L3565:
- add r9, r9, #1
- b .L3552
-.L3548:
+ str r3, [r4, #2444]
+.L3430:
movs r0, #0
add sp, sp, #12
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L3590:
+.L3455:
+ mov r8, r9
+ b .L3432
+.L3440:
+ mul fp, r10, r7
+ ldr r2, [r4, #2448]
+ add r0, r2, fp
+ ldr r2, [r2, fp]
+ adds r2, r2, #1
+ bne .L3434
+ mov r10, #0
+.L3435:
+ ldr r3, [r4, #2444]
+ cmp r9, r3
+ bcc .L3450
+ movw r6, #16386
+.L3453:
+ ldrh r3, [r5, #1182]
+ cmp r3, #0
+ beq .L3452
+ movs r1, #1
+ mov r0, r1
+ bl ftl_do_gc
+ subs r6, r6, #1
+ bne .L3453
+ b .L3452
+.L3434:
+ ldr r2, [r0, #4]
+ cmp r8, #0
+ bne .L3436
+.L3468:
+ str r2, [sp, #4]
+ add r1, sp, #4
+ movs r2, #1
+ ldr r0, [r0, #16]
+ bl log2phys
+ ldr r2, [r4, #2448]
+ add r3, r2, fp
+ ldr r3, [r3, #12]
+ ldr r0, [r3, #12]
+ adds r2, r0, #1
+ beq .L3438
+ ubfx r0, r0, #10, #16
+ bl P2V_block_in_plane
+ ldr r2, [r5, #300]
+ mov fp, r0
+ ldrh r2, [r2, r0, lsl #1]
+ cbnz r2, .L3439
+ mov r1, r0
+ ldr r0, .L3470+12
+ bl printk
+.L3439:
+ mov r0, fp
+ bl decrement_vpc_count
+.L3438:
+ adds r7, r7, #1
+ b .L3433
+.L3436:
+ orr r2, r2, #-2147483648
+ b .L3468
+.L3450:
+ movs r7, #36
+ ldr r3, [r4, #2448]
+ mul r7, r7, r9
+ mov fp, #1
+ mov r2, #-1
+ str r2, [r3, r7]
+.L3441:
+ ldr r2, [r4, #2448]
+ adds r3, r2, r7
+ ldr r2, [r2, r7]
+ ldr r0, [r3, #4]
+ adds r2, r2, #1
+ beq .L3445
+ cmp r8, #0
+ bne .L3446
+.L3469:
+ str r0, [sp, #4]
+ movs r2, #1
+ ldr r0, [r3, #16]
+ add r1, sp, #4
+ bl log2phys
+ ldr r3, [r4, #2448]
+ add r7, r7, r3
+ ldr r3, [r7, #12]
+ ldr r0, [r3, #12]
+ adds r3, r0, #1
+ beq .L3448
+ ubfx r0, r0, #10, #16
+ bl P2V_block_in_plane
+ ldr r3, [r5, #300]
+ mov r7, r0
+ ldrh r2, [r3, r0, lsl #1]
+ cbnz r2, .L3449
+ mov r1, r0
+ ldr r0, .L3470+12
+ bl printk
+.L3449:
+ mov r0, r7
+ bl decrement_vpc_count
+.L3448:
+ add r9, r9, #1
+ b .L3435
+.L3445:
+ ubfx r0, r0, #10, #16
+ bl P2V_block_in_plane
+ ldrh r3, [r6]
+ cmp r3, r0
+ bne .L3442
+ ldr r1, [r5, #300]
+ ldrh r0, [r6, #4]
+ ldrh r2, [r1, r3, lsl #1]
+ subs r2, r2, r0
+ strh r2, [r1, r3, lsl #1] @ movhi
+ ldrh r3, [r4, #2390]
+ strb r10, [r6, #6]
+ strh r10, [r6, #4] @ movhi
+ strh r3, [r6, #2] @ movhi
+.L3442:
+ ldrh r3, [r6, #4]
+ cbnz r3, .L3443
+ mov r0, r6
+ bl allocate_new_data_superblock
+.L3443:
+ ldr r3, [r5, #700]
+ adds r3, r3, #1
+ str r3, [r5, #700]
+ ldr r3, [r4, #2448]
+ add r3, r3, r7
+ ldr r0, [r3, #4]
+ ubfx r0, r0, #10, #16
+ bl FtlGcMarkBadPhyBlk
+ mov r0, r6
+ bl get_new_active_ppa
+ ldr r3, [r4, #2448]
+ mov r2, r0
+ str r0, [sp, #4]
+ movs r1, #1
+ adds r0, r3, r7
+ str r2, [r0, #4]
+ mov r2, r8
+ ldrb r3, [r6, #9] @ zero_extendqisi2
+ bl FlashProgPages
+ ldr r3, [r4, #2448]
+ ldr r3, [r3, r7]
+ adds r3, r3, #1
+ it eq
+ streq fp, [r5, #228]
+ ldr r3, [r5, #228]
+ cmp r3, #0
+ beq .L3441
+ b .L3430
+.L3446:
+ orr r0, r0, #-2147483648
+ b .L3469
+.L3471:
.align 2
-.L3589:
- .word .LANCHOR5
+.L3470:
.word .LANCHOR2
.word .LANCHOR0
+ .word .LANCHOR4
.word .LC159
.fnend
.size FtlCacheWriteBack, .-FtlCacheWriteBack
.align 1
.global FtlSysFlush
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FtlSysFlush, %function
FtlSysFlush:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L3593
+ ldr r3, .L3474
push {r4, lr}
.save {r4, lr}
- ldr r3, [r3, #224]
- cbnz r3, .L3592
- ldr r3, .L3593+4
- ldr r4, [r3, #504]
+ ldr r3, [r3, #228]
+ cbnz r3, .L3473
+ ldr r3, .L3474+4
+ ldr r4, [r3, #500]
cmp r4, #1
- bne .L3592
+ bne .L3473
bl FtlCacheWriteBack
bl l2p_flush
mov r0, r4
bl FtlEctTblFlush
bl FtlVpcTblFlush
-.L3592:
+.L3473:
movs r0, #0
pop {r4, pc}
-.L3594:
+.L3475:
.align 2
-.L3593:
+.L3474:
.word .LANCHOR2
.word .LANCHOR1
.fnend
.size FtlSysFlush, .-FtlSysFlush
.align 1
.global FtlDeInit
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FtlDeInit, %function
FtlDeInit:
.fnstart
@@ -21800,24 +22073,26 @@
@ frame_needed = 0, uses_anonymous_args = 0
push {r3, lr}
.save {r3, lr}
- ldr r3, .L3597
- ldr r3, [r3, #504]
+ ldr r3, .L3478
+ ldr r3, [r3, #500]
cmp r3, #1
- bne .L3596
+ bne .L3477
bl FtlSysFlush
-.L3596:
+.L3477:
movs r0, #0
pop {r3, pc}
-.L3598:
+.L3479:
.align 2
-.L3597:
+.L3478:
.word .LANCHOR1
.fnend
.size FtlDeInit, .-FtlDeInit
.align 1
.global ftl_deinit
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type ftl_deinit, %function
ftl_deinit:
.fnstart
@@ -21833,8 +22108,10 @@
.size ftl_deinit, .-ftl_deinit
.align 1
.global rk_ftl_de_init
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type rk_ftl_de_init, %function
rk_ftl_de_init:
.fnstart
@@ -21843,20 +22120,22 @@
push {r3, lr}
.save {r3, lr}
movs r1, #0
- ldr r0, .L3601
+ ldr r0, .L3482
bl printk
pop {r3, lr}
b ftl_deinit
-.L3602:
+.L3483:
.align 2
-.L3601:
+.L3482:
.word .LC160
.fnend
.size rk_ftl_de_init, .-rk_ftl_de_init
.align 1
.global ftl_cache_flush
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type ftl_cache_flush, %function
ftl_cache_flush:
.fnstart
@@ -21868,8 +22147,10 @@
.size ftl_cache_flush, .-ftl_cache_flush
.align 1
.global rk_ftl_cache_write_back
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type rk_ftl_cache_write_back, %function
rk_ftl_cache_write_back:
.fnstart
@@ -21881,8 +22162,10 @@
.size rk_ftl_cache_write_back, .-rk_ftl_cache_write_back
.align 1
.global ftl_discard
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type ftl_discard, %function
ftl_discard:
.fnstart
@@ -21892,25 +22175,24 @@
.save {r4, r5, r6, r7, r8, r9, lr}
.pad #12
mov r6, r0
- ldr r7, .L3624
+ ldr r7, .L3504
mov r4, r1
- ldr r5, [r7, #2428]
- cmp r0, r5
- bcs .L3614
- cmp r1, r5
- bhi .L3614
- adds r3, r0, r1
- cmp r3, r5
- bhi .L3614
+ ldr r3, [r7, #2432]
+ cmp r3, r0
+ bls .L3495
+ cmp r3, r1
+ bcc .L3495
+ adds r2, r0, r1
+ cmp r3, r2
+ bcc .L3495
cmp r1, #31
- bls .L3616
- ldr r3, .L3624+4
- ldr r2, [r3, #224]
+ bls .L3497
+ ldr r3, .L3504+4
+ ldr r2, [r3, #228]
mov r8, r3
- cmp r2, #0
- bne .L3616
+ cbnz r2, .L3497
bl FtlCacheWriteBack
- ldrh r5, [r7, #2394]
+ ldrh r5, [r7, #2396]
mov r0, r6
mov r1, r5
bl __aeabi_uidiv
@@ -21918,7 +22200,7 @@
mov r9, r0
subs r6, r6, r3
uxth r6, r6
- cbz r6, .L3607
+ cbz r6, .L3488
subs r5, r5, r6
add r9, r0, #1
cmp r5, r4
@@ -21926,27 +22208,39 @@
movcs r5, r4
uxth r5, r5
subs r4, r4, r5
-.L3607:
- ldr r5, .L3624+8
+.L3488:
+ ldr r5, .L3504+8
mov r3, #-1
str r3, [sp, #4]
-.L3608:
- ldrh r3, [r7, #2394]
+.L3489:
+ ldrh r3, [r7, #2396]
cmp r4, r3
- bcc .L3623
- mov r0, r9
- mov r1, sp
+ bcs .L3491
+ ldr r3, .L3504+8
+ ldr r2, [r3, #1492]
+ cmp r2, #32
+ bls .L3497
movs r2, #0
+ str r2, [r3, #1492]
+ bl l2p_flush
+ bl FtlVpcTblFlush
+.L3497:
+ movs r0, #0
+ b .L3486
+.L3491:
+ movs r2, #0
+ mov r1, sp
+ mov r0, r9
bl log2phys
ldr r3, [sp]
adds r3, r3, #1
- beq .L3609
- ldr r3, [r5, #988]
- add r1, sp, #4
+ beq .L3490
+ ldr r3, [r5, #1492]
movs r2, #1
+ add r1, sp, #4
mov r0, r9
adds r3, r3, #1
- str r3, [r5, #988]
+ str r3, [r5, #1492]
ldr r3, [r8, #480]
adds r3, r3, #1
str r3, [r8, #480]
@@ -21955,42 +22249,31 @@
ubfx r0, r0, #10, #16
bl P2V_block_in_plane
bl decrement_vpc_count
-.L3609:
- ldrh r3, [r7, #2394]
+.L3490:
+ ldrh r3, [r7, #2396]
add r9, r9, #1
subs r4, r4, r3
- b .L3608
-.L3623:
- ldr r3, .L3624+8
- ldr r2, [r3, #988]
- cmp r2, #32
- bls .L3616
- movs r2, #0
- str r2, [r3, #988]
- bl l2p_flush
- bl FtlVpcTblFlush
- b .L3616
-.L3614:
+ b .L3489
+.L3495:
mov r0, #-1
- b .L3606
-.L3616:
- movs r0, #0
-.L3606:
+.L3486:
add sp, sp, #12
@ sp needed
pop {r4, r5, r6, r7, r8, r9, pc}
-.L3625:
+.L3505:
.align 2
-.L3624:
+.L3504:
.word .LANCHOR0
.word .LANCHOR2
- .word .LANCHOR5
+ .word .LANCHOR4
.fnend
.size ftl_discard, .-ftl_discard
.align 1
.global FtlDiscard
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FtlDiscard, %function
FtlDiscard:
.fnstart
@@ -22002,8 +22285,10 @@
.size FtlDiscard, .-FtlDiscard
.align 1
.global ftl_read
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type ftl_read, %function
ftl_read:
.fnstart
@@ -22011,289 +22296,294 @@
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
- mov r8, r3
- ldr r3, .L3672
+ mov r9, r3
+ ldr r3, .L3548
.pad #84
sub sp, sp, #84
mov r5, r1
- str r2, [sp, #36]
- ldr r3, [r3, #504]
+ str r2, [sp, #44]
+ ldr r3, [r3, #500]
cmp r3, #1
- bne .L3653
+ bne .L3532
cmp r0, #16
- bne .L3629
- add r0, r1, #256
- mov r1, r2
- mov r2, r8
+ bne .L3509
+ mov r2, r9
+ ldr r1, [sp, #44]
+ add r0, r5, #256
bl FtlVendorPartRead
- b .L3628
-.L3629:
- ldr r2, .L3672+4
- ldr r3, [r2, #2428]
+ mov r8, r0
+.L3507:
+ mov r0, r8
+ add sp, sp, #84
+ @ sp needed
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L3509:
+ ldr r2, .L3548+4
+ ldr r3, [r2, #2432]
cmp r1, r3
- bcs .L3653
- ldr r1, [sp, #36]
+ bcs .L3532
+ ldr r1, [sp, #44]
cmp r1, r3
- bhi .L3653
+ bhi .L3532
adds r1, r5, r1
- str r1, [sp, #40]
- cmp r1, r3
- bhi .L3653
- ldrh r4, [r2, #2394]
+ cmp r3, r1
+ str r1, [sp, #48]
+ bcc .L3532
+ ldrh r4, [r2, #2396]
mov r0, r5
mov r1, r4
bl __aeabi_uidiv
+ ldr r3, [sp, #48]
mov r1, r4
- ldr r3, [sp, #40]
- str r0, [sp, #28]
+ str r0, [sp, #36]
subs r0, r3, #1
bl __aeabi_uidiv
- ldr r3, [sp, #28]
- ldr r1, [sp, #36]
+ ldr r3, [sp, #36]
+ ldr r1, [sp, #44]
+ str r0, [sp, #40]
rsb r3, r3, #1
- str r0, [sp, #32]
add r3, r3, r0
- str r3, [sp, #24]
- ldr r3, .L3672+8
- ldr r0, [sp, #28]
+ str r3, [sp, #32]
+ ldr r3, .L3548+8
ldr r2, [r3, #504]
add r2, r2, r1
- ldr r1, [sp, #24]
+ ldr r1, [sp, #32]
str r2, [r3, #504]
ldr r2, [r3, #476]
add r2, r2, r1
- ldr r1, [sp, #32]
+ mov r1, r0
+ ldr r0, [sp, #36]
str r2, [r3, #476]
bl FtlCacheMetchLpa
- cbz r0, .L3630
+ cbz r0, .L3510
bl FtlCacheWriteBack
-.L3630:
- mov r10, #0
- ldr r6, [sp, #28]
- ldr r4, .L3672+8
- ldr r9, .L3672+4
- mov r7, r10
- str r10, [sp, #48]
- str r10, [sp, #52]
-.L3631:
- ldr r3, [sp, #24]
+.L3510:
+ ldr r6, [sp, #36]
+ movs r3, #0
+ ldr r4, .L3548+8
+ mov r7, r3
+ mov r8, r3
+ str r3, [sp, #28]
+ str r3, [sp, #52]
+.L3511:
+ ldr r3, [sp, #32]
+ cbnz r3, .L3528
+ ldr r3, .L3548+8
+ ldrh r3, [r3, #1182]
cmp r3, #0
- beq .L3671
+ beq .L3507
+ movs r1, #1
+ ldr r0, [sp, #32]
+ bl ftl_do_gc
+ b .L3507
+.L3528:
+ movs r2, #0
add r1, sp, #76
mov r0, r6
- movs r2, #0
bl log2phys
ldr r3, [sp, #76]
- adds r1, r3, #1
- bne .L3668
- mov fp, #0
-.L3632:
- ldrh r0, [r9, #2394]
- cmp fp, r0
- bcs .L3636
- mla r0, r0, r6, fp
- cmp r0, r5
- bcc .L3634
- ldr r3, [sp, #40]
- cmp r0, r3
- bcs .L3634
- subs r0, r0, r5
- movs r1, #0
- mov r2, #512
- add r0, r8, r0, lsl #9
- bl ftl_memset
-.L3634:
- add fp, fp, #1
- b .L3632
-.L3668:
- ldr r2, [r4, #3304]
- mov fp, #36
- mla fp, fp, r7, r2
- str r3, [fp, #4]
- ldr r3, [sp, #28]
- cmp r6, r3
- bne .L3637
- ldrh ip, [r9, #2394]
- mov r0, r5
- ldr r3, [r4, #3332]
- mov r1, ip
- str ip, [sp, #44]
- str r3, [fp, #8]
- bl __aeabi_uidivmod
- ldr ip, [sp, #44]
- ldr r2, [sp, #36]
- rsb r3, r1, ip
- str r1, [sp, #56]
- cmp r3, r2
- it cs
- movcs r3, r2
- cmp r3, ip
- str r3, [sp, #48]
- bne .L3638
- str r8, [fp, #8]
- b .L3638
-.L3637:
+ adds r2, r3, #1
+ bne .L3512
+ mov r10, #0
+.L3513:
+ ldr r3, .L3548+4
+ ldrh r0, [r3, #2396]
+ cmp r10, r0
+ bcc .L3515
+.L3516:
ldr r3, [sp, #32]
- cmp r6, r3
- bne .L3639
- ldr r3, [r4, #3336]
- ldrh r2, [r9, #2394]
- ldr r1, [sp, #40]
- str r3, [fp, #8]
- mul r3, r2, r6
- rsb r10, r3, r1
- cmp r10, r2
- bne .L3638
- b .L3669
-.L3639:
- ldrh r3, [r9, #2394]
- muls r3, r6, r3
-.L3669:
- subs r3, r3, r5
- add r3, r8, r3, lsl #9
- str r3, [fp, #8]
-.L3638:
- ldrh r3, [r9, #2400]
- ldr r2, [r4, #3344]
- str r6, [fp, #16]
- muls r3, r7, r3
- adds r7, r7, #1
- bic r3, r3, #3
- add r3, r3, r2
- str r3, [fp, #12]
-.L3636:
- ldr r3, [sp, #24]
adds r6, r6, #1
subs r3, r3, #1
- str r3, [sp, #24]
- beq .L3640
- ldrh r3, [r9, #2320]
+ str r3, [sp, #32]
+ beq .L3520
+ ldr r3, .L3548+4
+ ldrh r3, [r3, #2324]
cmp r7, r3, lsl #3
- bne .L3631
-.L3640:
+ bne .L3511
+.L3520:
cmp r7, #0
- beq .L3631
- ldr r0, [r4, #3304]
- mov r1, r7
+ beq .L3511
movs r2, #0
+ mov r1, r7
+ ldr r0, [r4, #3304]
+ mov fp, #0
bl FlashReadPages
+ ldr r3, [sp, #28]
+ lsls r3, r3, #9
+ str r3, [sp, #68]
ldr r3, [sp, #56]
lsls r3, r3, #9
str r3, [sp, #60]
- ldr r3, [sp, #48]
+ ldr r3, [sp, #52]
lsls r3, r3, #9
str r3, [sp, #64]
- lsl r3, r10, #9
- str r3, [sp, #68]
- movs r3, #0
- str r3, [sp, #44]
-.L3647:
- ldr r3, [sp, #44]
- mov ip, #36
- ldr r1, [sp, #28]
- mul fp, ip, r3
+.L3527:
+ mov r10, #36
ldr r3, [r4, #3304]
- add r3, r3, fp
+ mul r10, r10, fp
+ ldr r1, [sp, #36]
+ add r3, r3, r10
ldr r2, [r3, #16]
- cmp r2, r1
- bne .L3642
+ cmp r1, r2
+ bne .L3522
ldr r1, [r3, #8]
ldr r3, [r4, #3332]
cmp r1, r3
- bne .L3643
+ bne .L3523
ldr r3, [sp, #60]
- mov r0, r8
+ mov r0, r9
ldr r2, [sp, #64]
add r1, r1, r3
- b .L3670
-.L3642:
- ldr r1, [sp, #32]
- cmp r2, r1
- bne .L3643
- ldr r1, [r3, #8]
- ldr r3, [r4, #3336]
- cmp r1, r3
- bne .L3643
- ldrh r0, [r9, #2394]
- ldr r3, [sp, #32]
- ldr r2, [sp, #68]
- muls r0, r3, r0
- subs r0, r0, r5
- add r0, r8, r0, lsl #9
-.L3670:
+.L3547:
bl ftl_memcpy
-.L3643:
- ldr r2, [r4, #3304]
- add r3, r2, fp
- ldr r1, [r2, fp]
- adds r2, r1, #1
- itttt eq
- streq r1, [sp, #52]
- ldreq r2, [r4, #680]
- addeq r2, r2, #1
- streq r2, [r4, #680]
- ldr r2, [r3, #12]
- ldr r1, [r3, #16]
- ldr r2, [r2, #8]
- cmp r1, r2
- beq .L3645
- ldr r2, [r4, #680]
- ldr r0, .L3672+12
- adds r2, r2, #1
- str r2, [r4, #680]
- ldr lr, [r3, #12]
- ldr r2, [r3, #8]
- ldr r1, [lr, #4]
- str r1, [sp]
- ldr r1, [lr, #8]
- str r1, [sp, #4]
- ldr r1, [lr, #12]
- str r1, [sp, #8]
- ldr r1, [r2]
- str r1, [sp, #12]
- ldr r2, [r2, #4]
- str r2, [sp, #16]
- ldr r1, [r3, #16]
- ldr r2, [r3, #4]
- ldr r3, [lr]
- bl printk
-.L3645:
+.L3523:
ldr r3, [r4, #3304]
- add r2, r3, fp
- ldr r3, [r3, fp]
+ ldr r2, [r3, r10]
+ add r1, r3, r10
+ adds r3, r2, #1
+ itttt eq
+ ldreq r3, [r4, #676]
+ moveq r8, r2
+ addeq r3, r3, #1
+ streq r3, [r4, #676]
+ ldr r3, [r1, #12]
+ ldr r2, [r1, #16]
+ ldr r3, [r3, #8]
+ cmp r2, r3
+ beq .L3525
+ ldr r3, [r4, #676]
+ adds r3, r3, #1
+ str r3, [r4, #676]
+ ldr r2, [r1, #8]
+ ldr r3, [r1, #12]
+ ldr r0, [r2, #4]
+ str r0, [sp, #16]
+ ldr r2, [r2]
+ ldr r0, .L3548+12
+ str r2, [sp, #12]
+ ldr r2, [r3, #12]
+ str r2, [sp, #8]
+ ldr r2, [r3, #8]
+ str r2, [sp, #4]
+ ldr r2, [r3, #4]
+ str r2, [sp]
+ ldr r2, [r1, #4]
+ ldr r3, [r3]
+ ldr r1, [r1, #16]
+ bl printk
+.L3525:
+ ldr r3, [r4, #3304]
+ add r2, r3, r10
+ ldr r3, [r3, r10]
cmp r3, #256
- bne .L3646
+ bne .L3526
ldr r0, [r2, #4]
ubfx r0, r0, #10, #16
bl P2V_block_in_plane
bl FtlGcRefreshBlock
-.L3646:
- ldr r3, [sp, #44]
- adds r3, r3, #1
- str r3, [sp, #44]
- cmp r3, r7
- bne .L3647
+.L3526:
+ add fp, fp, #1
+ cmp r7, fp
+ bne .L3527
movs r7, #0
- b .L3631
-.L3671:
- ldr r3, .L3672+8
- ldrh r3, [r3, #1182]
- cbz r3, .L3649
- ldr r0, [sp, #24]
- movs r1, #1
- bl ftl_do_gc
-.L3649:
- ldr r0, [sp, #52]
- b .L3628
-.L3653:
- mov r0, #-1
-.L3628:
- add sp, sp, #84
- @ sp needed
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L3673:
+ b .L3511
+.L3515:
+ mla r0, r0, r6, r10
+ cmp r5, r0
+ bhi .L3514
+ ldr r3, [sp, #48]
+ cmp r3, r0
+ bls .L3514
+ subs r0, r0, r5
+ mov r2, #512
+ movs r1, #0
+ add r0, r9, r0, lsl #9
+ bl ftl_memset
+.L3514:
+ add r10, r10, #1
+ b .L3513
+.L3512:
+ ldr r2, [r4, #3304]
+ mov r10, #36
+ mla r10, r10, r7, r2
+ str r3, [r10, #4]
+ ldr r3, [sp, #36]
+ cmp r6, r3
+ bne .L3517
+ ldr r3, [r4, #3332]
+ mov r0, r5
+ str r3, [r10, #8]
+ ldr r3, .L3548+4
+ ldrh fp, [r3, #2396]
+ mov r1, fp
+ bl __aeabi_uidivmod
+ ldr r2, [sp, #44]
+ sub r3, fp, r1
+ str r1, [sp, #56]
+ cmp r3, r2
+ it cs
+ movcs r3, r2
+ cmp r3, fp
+ str r3, [sp, #52]
+ bne .L3518
+ str r9, [r10, #8]
+.L3518:
+ ldr r3, .L3548+4
+ ldr r2, [r4, #3344]
+ str r6, [r10, #16]
+ ldrh r3, [r3, #2402]
+ muls r3, r7, r3
+ adds r7, r7, #1
+ bic r3, r3, #3
+ add r3, r3, r2
+ str r3, [r10, #12]
+ b .L3516
+.L3517:
+ ldr r3, [sp, #40]
+ cmp r6, r3
+ bne .L3519
+ ldr r3, [r4, #3336]
+ ldr r1, [sp, #48]
+ str r3, [r10, #8]
+ ldr r3, .L3548+4
+ ldrh r2, [r3, #2396]
+ mul r3, r2, r6
+ subs r1, r1, r3
+ cmp r2, r1
+ str r1, [sp, #28]
+ bne .L3518
+.L3546:
+ subs r3, r3, r5
+ add r3, r9, r3, lsl #9
+ str r3, [r10, #8]
+ b .L3518
+.L3519:
+ ldr r3, .L3548+4
+ ldrh r3, [r3, #2396]
+ muls r3, r6, r3
+ b .L3546
+.L3522:
+ ldr r1, [sp, #40]
+ cmp r1, r2
+ bne .L3523
+ ldr r1, [r3, #8]
+ ldr r3, [r4, #3336]
+ cmp r1, r3
+ bne .L3523
+ ldr r3, .L3548+4
+ ldr r2, [sp, #68]
+ ldrh r0, [r3, #2396]
+ ldr r3, [sp, #40]
+ muls r0, r3, r0
+ subs r0, r0, r5
+ add r0, r9, r0, lsl #9
+ b .L3547
+.L3532:
+ mov r8, #-1
+ b .L3507
+.L3549:
.align 2
-.L3672:
+.L3548:
.word .LANCHOR1
.word .LANCHOR0
.word .LANCHOR2
@@ -22302,29 +22592,29 @@
.size ftl_read, .-ftl_read
.align 1
.global ftl_vendor_read
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type ftl_vendor_read, %function
ftl_vendor_read:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- push {r4, r5, lr}
- .save {r4, r5, lr}
- mov r5, r0
- mov r4, r1
+ @ link register save eliminated.
mov r3, r2
- mov r1, r5
- mov r2, r4
+ mov r2, r1
+ mov r1, r0
movs r0, #16
- pop {r4, r5, lr}
b ftl_read
.fnend
.size ftl_vendor_read, .-ftl_vendor_read
.align 1
.global FlashBootVendorRead
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FlashBootVendorRead, %function
FlashBootVendorRead:
.fnstart
@@ -22332,56 +22622,57 @@
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
- mov r6, r0
+ mov r4, r0
mov r5, r1
- mov r4, r2
+ mov r6, r2
bl rknand_device_lock
- ldr r3, .L3678
- ldr r3, [r3, #504]
+ ldr r3, .L3554
+ ldr r3, [r3, #500]
cmp r3, #1
- bne .L3677
- mov r2, r4
- mov r0, r6
+ bne .L3553
+ mov r0, r4
+ mov r2, r6
mov r1, r5
bl ftl_vendor_read
mov r4, r0
- b .L3676
-.L3677:
- mov r4, #-1
-.L3676:
+.L3552:
bl rknand_device_unlock
mov r0, r4
pop {r4, r5, r6, pc}
-.L3679:
+.L3553:
+ mov r4, #-1
+ b .L3552
+.L3555:
.align 2
-.L3678:
+.L3554:
.word .LANCHOR1
.fnend
.size FlashBootVendorRead, .-FlashBootVendorRead
.align 1
.global ftl_sys_read
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type ftl_sys_read, %function
ftl_sys_read:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- push {r4, lr}
- .save {r4, lr}
- mov r4, r1
+ @ link register save eliminated.
mov r3, r2
+ mov r2, r1
add r1, r0, #256
- mov r2, r4
movs r0, #16
- pop {r4, lr}
b ftl_read
.fnend
.size ftl_sys_read, .-ftl_sys_read
.align 1
.global StorageSysDataLoad
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type StorageSysDataLoad, %function
StorageSysDataLoad:
.fnstart
@@ -22389,11 +22680,11 @@
@ frame_needed = 0, uses_anonymous_args = 0
push {r3, r4, r5, lr}
.save {r3, r4, r5, lr}
- mov r2, #512
- mov r5, r0
mov r4, r1
- mov r0, r1
+ mov r5, r0
+ mov r2, #512
movs r1, #0
+ mov r0, r4
bl ftl_memset
bl rknand_device_lock
mov r2, r4
@@ -22408,8 +22699,10 @@
.size StorageSysDataLoad, .-StorageSysDataLoad
.align 1
.global FtlRead
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FtlRead, %function
FtlRead:
.fnstart
@@ -22421,279 +22714,287 @@
.size FtlRead, .-FtlRead
.align 1
.global FtlInit
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FtlInit, %function
FtlInit:
.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}
+ push {r3, r4, r5, r6, r7, lr}
+ .save {r3, r4, r5, r6, r7, lr}
mov r3, #-1
- ldr r2, .L3699
- ldr r7, .L3699+4
- ldr r4, .L3699+8
- ldr r6, .L3699+12
- ldr r1, .L3699+16
- ldr r0, .L3699+20
- str r3, [r7, #504]
+ ldr r7, .L3575
+ ldr r2, .L3575+4
+ ldr r6, .L3575+8
+ ldr r4, .L3575+12
+ ldr r1, .L3575+16
+ str r3, [r7, #500]
movs r3, #0
- str r3, [r2, #992]
- str r3, [r4, #224]
+ ldr r0, .L3575+20
+ str r3, [r2, #1496]
+ str r3, [r4, #228]
bl printk
- add r0, r6, #116
+ add r0, r6, #124
bl FtlConstantsInit
bl FtlMemInit
bl FtlVariablesInit
- ldrh r0, [r6, #2324]
+ ldrh r0, [r6, #2328]
bl FtlFreeSysBlkQueueInit
bl FtlLoadBbt
- cbz r0, .L3684
- ldr r0, .L3699+24
- b .L3698
-.L3684:
+ cbz r0, .L3560
+ ldr r1, .L3575+24
+ ldr r0, .L3575+28
+.L3574:
+ bl printk
+.L3561:
+ movs r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+.L3560:
bl FtlSysBlkInit
mov r5, r0
- cbz r0, .L3686
- ldr r0, .L3699+28
-.L3698:
- ldr r1, .L3699+32
- bl printk
- b .L3685
-.L3686:
+ cbz r0, .L3562
+ ldr r1, .L3575+24
+ ldr r0, .L3575+32
+ b .L3574
+.L3562:
movs r1, #1
- str r1, [r7, #504]
+ str r1, [r7, #500]
bl ftl_do_gc
- ldrh r7, [r4, #312]
+ ldrh r7, [r4, #316]
cmp r7, #15
- bhi .L3687
- mov r8, r4
+ bhi .L3563
movw r6, #65535
-.L3690:
+.L3566:
ldrh r3, [r4, #556]
cmp r3, r6
- bne .L3688
- ldrh r3, [r8, #1174]
+ bne .L3564
+ ldrh r3, [r4, #1174]
cmp r3, r6
- bne .L3688
+ bne .L3564
and r0, r5, #63
bl List_get_gc_head_node
uxth r0, r0
bl FtlGcRefreshBlock
-.L3688:
- movs r0, #1
- mov r1, r0
- bl ftl_do_gc
- movs r0, #0
+.L3564:
movs r1, #1
+ mov r0, r1
bl ftl_do_gc
- ldrh r2, [r4, #312]
+ movs r1, #1
+ movs r0, #0
+ bl ftl_do_gc
+ ldrh r2, [r4, #316]
adds r3, r7, #2
cmp r2, r3
- bhi .L3685
+ bhi .L3561
adds r5, r5, #1
cmp r5, #4096
- bne .L3690
- b .L3685
-.L3687:
- ldrb r3, [r6, #144] @ zero_extendqisi2
- cbz r3, .L3685
+ bne .L3566
+ b .L3561
+.L3563:
+ ldrb r3, [r6, #152] @ zero_extendqisi2
+ cmp r3, #0
+ beq .L3561
movs r4, #128
-.L3692:
- movs r0, #1
- mov r1, r0
+.L3568:
+ movs r1, #1
+ mov r0, r1
bl ftl_do_gc
subs r4, r4, #1
- bne .L3692
-.L3685:
- movs r0, #0
- pop {r4, r5, r6, r7, r8, pc}
-.L3700:
+ bne .L3568
+ b .L3561
+.L3576:
.align 2
-.L3699:
- .word .LANCHOR5
+.L3575:
.word .LANCHOR1
- .word .LANCHOR2
+ .word .LANCHOR4
.word .LANCHOR0
- .word .LC77
+ .word .LANCHOR2
.word .LC76
+ .word .LC77
+ .word .LANCHOR3+224
.word .LC161
.word .LC162
- .word .LANCHOR3+240
.fnend
.size FtlInit, .-FtlInit
.align 1
.global rk_ftl_init
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type rk_ftl_init, %function
rk_ftl_init:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- push {r4, r5, r6, lr}
- .save {r4, r5, r6, lr}
+ push {r3, r4, r5, lr}
+ .save {r3, r4, r5, lr}
mov r0, #2048
- bl ftl_malloc
- ldr r5, .L3705
- ldr r4, .L3705+4
- movs r6, #0
- add r1, r5, #1000
- str r6, [r5, #1000]
- str r6, [r4, #1180]
- str r0, [r5, #996]
+ ldr r4, .L3581
+ movs r5, #0
+ bl ftl_dma32_malloc
+ add r1, r4, #1504
+ str r0, [r4, #1500]
addw r0, r4, #1180
+ str r5, [r4, #1184]
+ str r5, [r4, #1180]
+ str r5, [r4, #1504]
bl rknand_get_reg_addr
ldr r3, [r4, #1180]
- cbz r3, .L3704
+ cbz r3, .L3580
bl rk_nandc_irq_init
- mov r1, r6
- mov r2, r6
mov r3, #2048
- ldr r0, [r5, #996]
+ mov r2, r5
+ mov r1, r5
+ ldr r0, [r4, #1500]
bl FlashSramLoadStore
bl rknand_flash_cs_init
ldr r0, [r4, #1180]
bl FlashInit
mov r4, r0
- cbnz r0, .L3703
+ cbnz r0, .L3579
bl FtlInit
-.L3703:
+.L3579:
mov r1, r4
- ldr r0, .L3705+8
+ ldr r0, .L3581+4
bl printk
+.L3577:
mov r0, r4
- pop {r4, r5, r6, pc}
-.L3704:
- mov r0, #-1
- pop {r4, r5, r6, pc}
-.L3706:
+ pop {r3, r4, r5, pc}
+.L3580:
+ mov r4, #-1
+ b .L3577
+.L3582:
.align 2
-.L3705:
- .word .LANCHOR5
+.L3581:
.word .LANCHOR4
.word .LC163
.fnend
.size rk_ftl_init, .-rk_ftl_init
.align 1
.global ftl_fix_nand_power_lost_error
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type ftl_fix_nand_power_lost_error, %function
ftl_fix_nand_power_lost_error:
.fnstart
@ args = 0, pretend = 0, frame = 48
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L3722
+ ldr r3, .L3597
push {r4, r5, r6, r7, r8, r9, r10, lr}
.save {r4, r5, r6, r7, r8, r9, r10, lr}
.pad #48
sub sp, sp, #48
- ldrb r2, [r3, #144] @ zero_extendqisi2
mov r8, r3
+ ldrb r2, [r3, #152] @ zero_extendqisi2
cmp r2, #0
- beq .L3707
- ldr r4, .L3722+4
- movw r7, #4097
- ldr r6, .L3722+8
- ldr r0, .L3722+12
- ldr r3, [r4, #296]
- ldrh r5, [r6, #840]
- mov r1, r5
- ldrh r2, [r3, r5, lsl #1]
+ beq .L3583
+ ldr r4, .L3597+4
+ movw r5, #4097
+ ldr r7, .L3597+8
+ ldr r0, .L3597+12
+ ldr r3, [r4, #300]
+ ldrh r6, [r7, #1342]
+ ldrh r2, [r3, r6, lsl #1]
+ mov r1, r6
bl printk
- ldrh r0, [r4, #316]
+ ldrh r0, [r4, #320]
+ lsl r9, r6, #1
bl FtlGcRefreshOpenBlock
- ldrh r0, [r4, #364]
+ ldrh r0, [r4, #368]
bl FtlGcRefreshOpenBlock
- add r0, r4, #316
+ add r0, r4, #320
bl allocate_new_data_superblock
- add r0, r4, #364
+ add r0, r4, #368
bl allocate_new_data_superblock
- lsl r9, r5, #1
-.L3709:
- subs r7, r7, #1
- beq .L3713
- movs r0, #1
- mov r1, r0
+.L3585:
+ subs r5, r5, #1
+ beq .L3589
+ movs r1, #1
+ mov r0, r1
bl ftl_do_gc
- ldr r3, [r4, #296]
+ ldr r3, [r4, #300]
ldrh r3, [r3, r9]
cmp r3, #0
- bne .L3709
-.L3713:
- ldr r3, [r4, #296]
- mov r1, r5
- ldr r0, .L3722+12
- ldrh r2, [r3, r5, lsl #1]
+ bne .L3585
+.L3589:
+ ldr r3, [r4, #300]
+ mov r1, r6
+ ldr r0, .L3597+12
+ ldrh r2, [r3, r6, lsl #1]
bl printk
- ldr r3, [r4, #296]
- ldrh r7, [r3, r5, lsl #1]
- cbnz r7, .L3711
+ ldr r3, [r4, #300]
+ ldrh r5, [r3, r6, lsl #1]
+ cbnz r5, .L3587
add r0, sp, #48
- mov r10, #36
movw r9, #65535
- strh r5, [r0, #-48]! @ movhi
+ strh r6, [r0, #-48]! @ movhi
+ mov r10, #36
bl make_superblock
- ldr r3, .L3722+4
- ldrh ip, [r8, #2320]
- ldr r8, [r3, #228]
- mov r3, r7
- mov lr, r3
+ ldrh lr, [r8, #2324]
add r0, sp, #14
-.L3714:
- uxth r2, r3
- cmp r2, ip
- bcs .L3721
- ldrh r2, [r0, #2]!
- cmp r2, r9
- beq .L3715
- mla r1, r10, r7, r8
- adds r7, r7, #1
- lsls r2, r2, #10
- uxth r7, r7
- str r2, [r1, #4]
- str lr, [r1, #8]
- str lr, [r1, #12]
-.L3715:
- adds r3, r3, #1
- b .L3714
-.L3721:
- ldr r3, [r4, #296]
- mov r1, r5
- ldr r0, .L3722+16
- ldrh r2, [r3, r5, lsl #1]
+ ldr r8, [r4, #232]
+ mov r2, r5
+ mov ip, r5
+.L3590:
+ uxth r3, r2
+ cmp lr, r3
+ bhi .L3592
+ ldr r3, [r4, #300]
+ mov r1, r6
+ ldr r0, .L3597+16
+ ldrh r2, [r3, r6, lsl #1]
bl printk
+ mov r2, r5
movs r1, #0
- mov r2, r7
- ldr r0, [r4, #228]
+ ldr r0, [r4, #232]
bl FlashEraseBlocks
- ldr r0, [r4, #228]
+ mov r2, r5
movs r1, #1
- mov r2, r7
+ ldr r0, [r4, #232]
bl FlashEraseBlocks
-.L3711:
+.L3587:
movw r3, #65535
- strh r3, [r6, #840] @ movhi
-.L3707:
+ strh r3, [r7, #1342] @ movhi
+.L3583:
add sp, sp, #48
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, pc}
-.L3723:
+.L3592:
+ ldrh r3, [r0, #2]!
+ cmp r3, r9
+ beq .L3591
+ mla r1, r10, r5, r8
+ adds r5, r5, #1
+ lsls r3, r3, #10
+ uxth r5, r5
+ str r3, [r1, #4]
+ str ip, [r1, #8]
+ str ip, [r1, #12]
+.L3591:
+ adds r2, r2, #1
+ b .L3590
+.L3598:
.align 2
-.L3722:
+.L3597:
.word .LANCHOR0
.word .LANCHOR2
- .word .LANCHOR5
+ .word .LANCHOR4
.word .LC164
.word .LC165
.fnend
.size ftl_fix_nand_power_lost_error, .-ftl_fix_nand_power_lost_error
.align 1
.global rk_ftl_garbage_collect
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type rk_ftl_garbage_collect, %function
rk_ftl_garbage_collect:
.fnstart
@@ -22705,554 +23006,555 @@
.size rk_ftl_garbage_collect, .-rk_ftl_garbage_collect
.align 1
.global ftl_write
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type ftl_write, %function
ftl_write:
.fnstart
- @ args = 0, pretend = 0, frame = 88
+ @ args = 0, pretend = 0, frame = 80
@ 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 #92
- sub sp, sp, #92
- ldr r9, .L3800+16
- mov r8, r1
- str r3, [sp, #12]
- mov fp, r2
- ldr r3, [r9, #224]
- cmp r3, #0
- bne .L3767
- ldr r2, .L3800
- ldr r2, [r2, #504]
- cmp r2, #1
- bne .L3768
- cmp r0, #16
- bne .L3727
- add r0, r1, #256
- ldr r2, [sp, #12]
- mov r1, fp
- bl FtlVendorPartWrite
- b .L3726
-.L3727:
- ldr r7, .L3800+4
- ldr r3, [r7, #2428]
- cmp r1, r3
- bcs .L3771
- cmp fp, r3
- bhi .L3771
- add r6, r1, fp
- cmp r6, r3
- bhi .L3771
- ldrh r4, [r7, #2394]
- mov r3, #2048
- ldr r5, .L3800+8
- mov r0, r1
- mov r1, r4
- str r3, [r5, #1004]
- bl __aeabi_uidiv
- mov r1, r4
- str r0, [sp, #4]
- subs r0, r6, #1
- bl __aeabi_uidiv
- cmp fp, r4, lsl #1
- ldr r2, [sp, #4]
- str r0, [sp, #20]
- sub r6, r0, r2
- add r3, r6, #1
- str r3, [sp, #8]
- ldr r2, [sp, #8]
- ldr r3, [r9, #484]
- add r3, r3, r2
- ldr r2, [r7, #2440]
- str r3, [r9, #484]
- ldr r3, [r9, #500]
- add r3, r3, fp
- str r3, [r9, #500]
- ite cs
- movcs r3, #1
- movcc r3, #0
- str r3, [sp, #28]
+ mov r10, r3
+ ldr r3, .L3672
+ mov r9, r2
+ .pad #84
+ sub sp, sp, #84
+ mov r7, r1
+ ldr r2, [r3, #228]
cmp r2, #0
- beq .L3729
- movs r3, #36
- ldr r7, [r7, #2444]
- muls r3, r2, r3
- ldr r2, [sp, #4]
- subs r3, r3, #36
- add r7, r7, r3
- ldr r3, [r7, #16]
- cmp r2, r3
- bne .L3730
- ldr r3, [r9, #488]
- mov r1, r4
- mov r0, r8
- adds r3, r3, #1
- str r3, [r9, #488]
- ldr r3, [r5, #1008]
- adds r3, r3, #1
- str r3, [r5, #1008]
- bl __aeabi_uidivmod
- ldr r0, [r7, #8]
- subs r4, r4, r1
- add r0, r0, r1, lsl #9
- cmp r4, fp
- ldr r1, [sp, #12]
- it cs
- movcs r4, fp
- lsl r9, r4, #9
- mov r2, r9
- bl ftl_memcpy
- cbnz r6, .L3731
- ldr r3, [r5, #1008]
- cmp r3, #2
- ble .L3767
-.L3731:
- ldr r3, [sp, #12]
- rsb fp, r4, fp
- add r8, r8, r4
- str r6, [sp, #8]
- add r3, r3, r9
- str r3, [sp, #12]
- ldr r3, [sp, #4]
- adds r3, r3, #1
+ bne .L3642
+ ldr r1, .L3672+4
+ ldr r1, [r1, #500]
+ cmp r1, #1
+ bne .L3643
+ cmp r0, #16
+ bne .L3602
+ mov r2, r10
+ mov r1, r9
+ add r0, r7, #256
+ bl FtlVendorPartWrite
+.L3600:
+ add sp, sp, #84
+ @ sp needed
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L3602:
+ ldr fp, .L3672+16
str r3, [sp, #4]
-.L3730:
- movs r3, #0
- str r3, [r5, #1008]
-.L3729:
- ldr r0, [sp, #4]
- ldr r1, [sp, #20]
- bl FtlCacheMetchLpa
- cbz r0, .L3732
- bl FtlCacheWriteBack
-.L3732:
- ldr r4, .L3800+4
- ldr r7, .L3800+12
- ldr r6, [sp, #4]
- mov r10, r4
- str r7, [r5, #984]
-.L3733:
- ldr r3, [sp, #8]
- ldr r5, .L3800+16
- cmp r3, #0
- beq .L3799
- ldrh r3, [r7, #4]
- cbnz r3, .L3734
- add r2, r5, #316
- ldr r9, .L3800
+ ldr r2, [fp, #2432]
cmp r7, r2
- bne .L3735
- ldrh r7, [r5, #368]
- cbnz r7, .L3736
- add r0, r5, #364
- bl allocate_new_data_superblock
- str r7, [r9, #3452]
-.L3736:
- ldr r0, .L3800+12
- bl allocate_new_data_superblock
- ldr r3, [r9, #3452]
- cbnz r3, .L3772
-.L3738:
- ldr r7, .L3800+12
- b .L3737
-.L3735:
- str r3, [r9, #3452]
- ldrh r3, [r5, #320]
- cmp r3, #0
- bne .L3738
+ bcs .L3646
+ cmp r9, r2
+ bhi .L3646
+ add r5, r7, r9
+ cmp r2, r5
+ bcc .L3646
+ ldrh r4, [fp, #2396]
+ mov r2, #2048
+ ldr r6, .L3672+8
mov r0, r7
- bl allocate_new_data_superblock
- b .L3737
-.L3772:
- ldr r7, .L3800+20
-.L3737:
- ldrh r3, [r7, #4]
- cbnz r3, .L3739
- mov r0, r7
- bl allocate_new_data_superblock
-.L3739:
- ldr r3, .L3800+8
- str r7, [r3, #984]
-.L3734:
- ldr r2, [r5, #3300]
- ldr r3, [r4, #2440]
- ldrh ip, [r7, #4]
- subs r3, r2, r3
- ldr r2, [sp, #8]
- cmp ip, r3
- ldr r9, .L3800+16
- it cs
- movcs ip, r3
- cmp ip, r2
- mov r3, ip
- it cs
- movcs r3, r2
- str r3, [sp, #44]
- movs r3, #0
- str r3, [sp, #24]
-.L3740:
- ldr r3, [sp, #24]
- ldr r2, [sp, #44]
- cmp r3, r2
- beq .L3741
- ldrh r3, [r7, #4]
- cmp r3, #0
- beq .L3741
- ldr r3, [sp, #28]
- cbz r3, .L3742
- ldr r3, [sp, #20]
- cmp r6, r3
- bne .L3742
- ldr r3, [sp, #24]
- cbz r3, .L3742
- ldrh r2, [r4, #2394]
- add r3, r8, fp
- mls r3, r2, r6, r3
- cmp r3, r2
- bne .L3741
-.L3742:
- add r1, sp, #48
- movs r2, #0
- mov r0, r6
- movs r5, #36
- bl log2phys
- mov r0, r7
- bl get_new_active_ppa
- ldr r3, [r4, #2440]
- ldr r1, [r4, #2444]
- ldrh r2, [r4, #2400]
- mla r1, r5, r3, r1
- mul ip, r3, r2
- str r6, [r1, #16]
- str r0, [r1, #4]
- lsr r0, ip, #2
- str r0, [sp, #36]
- ldr r0, [r9, #3348]
- mov lr, r0
- str r0, [sp, #40]
- ldr r0, [sp, #36]
- add r0, lr, r0, lsl #2
- ldrh lr, [r4, #2398]
- str r0, [sp, #16]
- str r0, [r1, #12]
- mul r3, r3, lr
- ldr r0, [r9, #3328]
- bic r3, r3, #3
- add r3, r3, r0
- ldr r0, [sp, #16]
- str r3, [r1, #8]
- movs r1, #0
- bl ftl_memset
+ mov r1, r4
+ str r2, [r6, #1508]
+ bl __aeabi_uidiv
+ mov r1, r4
+ str r0, [sp]
+ subs r0, r5, #1
+ bl __aeabi_uidiv
ldr r3, [sp, #4]
- cmp r6, r3
- beq .L3743
- ldr r3, [sp, #20]
- cmp r6, r3
- bne .L3796
- ldrh r3, [r4, #2394]
- add r5, r8, fp
- smulbb r3, r3, r6
- subs r5, r5, r3
- movs r3, #0
- str r3, [sp, #32]
- uxth r5, r5
- b .L3746
-.L3743:
- ldrh r5, [r4, #2394]
- mov r0, r8
- mov r1, r5
+ cmp r9, r4, lsl #1
+ ldr r2, [sp]
+ ldr r1, [fp, #2444]
+ str r0, [sp, #12]
+ sub r5, r0, r2
+ ldr r2, [r3, #484]
+ add r8, r5, #1
+ add r2, r2, r8
+ str r2, [r3, #484]
+ ldr r2, [r3, #500]
+ add r2, r2, r9
+ str r2, [r3, #500]
+ ite cs
+ movcs r2, #1
+ movcc r2, #0
+ str r2, [sp, #16]
+ cmp r1, #0
+ beq .L3647
+ movs r2, #36
+ muls r2, r1, r2
+ ldr r1, [fp, #2448]
+ subs r2, r2, #36
+ add fp, r1, r2
+ ldr r1, [sp]
+ ldr r2, [fp, #16]
+ cmp r1, r2
+ bne .L3648
+ ldr r2, [r3, #488]
+ mov r1, r4
+ mov r0, r7
+ adds r2, r2, #1
+ str r2, [r3, #488]
+ ldr r3, [r6, #1512]
+ adds r3, r3, #1
+ str r3, [r6, #1512]
bl __aeabi_uidivmod
- subs r5, r5, r1
- str r1, [sp, #32]
- cmp r5, fp
+ subs r4, r4, r1
+ ldr r0, [fp, #8]
+ cmp r4, r9
+ mov r3, r1
it cs
- movcs r5, fp
-.L3746:
- ldrh r3, [r4, #2394]
- cmp r5, r3
- bne .L3747
- ldr r3, [sp, #4]
- mov lr, #36
- cmp r6, r3
- ittet ne
- mulne r1, r6, r5
- ldrne r3, [sp, #12]
- ldreq r1, [sp, #12]
- rsbne r1, r8, r1
- it ne
- addne r1, r3, r1, lsl #9
- ldr r3, [sp, #28]
- cbz r3, .L3749
- ldr r2, [r10, #2440]
- ldr r5, [r10, #2444]
- mla r2, lr, r2, r5
- str r1, [r2, #8]
- b .L3750
-.L3749:
- ldr r0, [r10, #2444]
- ldr r3, [r10, #2440]
- ldrh r2, [r10, #2398]
- mla r3, lr, r3, r0
- ldr r0, [r3, #8]
- b .L3797
-.L3747:
- ldr r2, [sp, #48]
- movs r3, #36
- adds r1, r2, #1
- beq .L3751
- ldr r1, [r4, #2444]
- add r0, sp, #52
- str r2, [sp, #56]
- ldr r2, [r4, #2440]
- str r6, [sp, #68]
- mla r3, r3, r2, r1
- movs r1, #1
- ldr r2, [r3, #8]
- ldr r3, [r3, #12]
- str r2, [sp, #60]
- movs r2, #0
- str r3, [sp, #64]
- bl FlashReadPages
- ldr r3, [sp, #52]
- adds r3, r3, #1
- bne .L3752
- ldr r3, [r9, #680]
- adds r3, r3, #1
- str r3, [r9, #680]
- b .L3754
-.L3801:
- .align 2
-.L3800:
- .word .LANCHOR1
- .word .LANCHOR0
- .word .LANCHOR5
- .word .LANCHOR2+316
- .word .LANCHOR2
- .word .LANCHOR2+364
-.L3752:
- ldr r3, [sp, #16]
- ldr r3, [r3, #8]
- cmp r3, r6
- beq .L3754
- ldr r3, [r9, #680]
- mov r2, r6
- ldr r0, .L3802
- adds r3, r3, #1
- str r3, [r9, #680]
- ldr r3, [sp, #16]
- ldr r1, [r3, #8]
- bl printk
- b .L3754
-.L3751:
- ldr r1, [r4, #2444]
- ldr r2, [r4, #2440]
- mla r2, r3, r2, r1
- movs r1, #0
- ldr r0, [r2, #8]
- ldrh r2, [r4, #2398]
- bl ftl_memset
-.L3754:
- ldr r3, [sp, #4]
- mov lr, #36
- lsls r2, r5, #9
- cmp r6, r3
- bne .L3755
- ldr r1, [r4, #2440]
- ldr r5, [r4, #2444]
- ldr r3, [sp, #32]
- mla r1, lr, r1, r5
- ldr r0, [r1, #8]
- ldr r1, [sp, #12]
+ movcs r4, r9
+ mov r1, r10
+ lsl r8, r4, #9
add r0, r0, r3, lsl #9
- b .L3797
-.L3755:
- ldr r0, [r4, #2444]
- ldr r3, [r4, #2440]
- ldrh r1, [r4, #2394]
- mla r3, lr, r3, r0
- muls r1, r6, r1
- ldr r0, [r3, #8]
- rsb r1, r8, r1
- ldr r3, [sp, #12]
- add r1, r3, r1, lsl #9
- b .L3797
-.L3796:
- ldr r3, [sp, #28]
- cbz r3, .L3756
- ldr r3, [r4, #2440]
- ldr r2, [r4, #2444]
- mla r5, r5, r3, r2
- ldrh r3, [r4, #2394]
- ldr r2, [sp, #12]
- muls r3, r6, r3
- rsb r3, r8, r3
- add r3, r2, r3, lsl #9
- str r3, [r5, #8]
- b .L3750
-.L3756:
- ldr r2, [r4, #2444]
- ldr r3, [r4, #2440]
- ldrh r1, [r4, #2394]
- mla r3, r5, r3, r2
- ldrh r2, [r4, #2398]
- muls r1, r6, r1
- ldr r0, [r3, #8]
- rsb r1, r8, r1
- ldr r3, [sp, #12]
- add r1, r3, r1, lsl #9
-.L3797:
+ mov r2, r8
bl ftl_memcpy
-.L3750:
- ldr r2, [sp, #40]
- movw r3, #61589
- ldr r1, [sp, #36]
- strh r3, [r2, r1, lsl #2] @ movhi
- ldr r2, [sp, #16]
- ldr r3, [r9, #512]
- str r3, [r2, #4]
- adds r3, r3, #1
- adds r2, r3, #1
- ldr r2, [sp, #16]
- it eq
- moveq r3, #0
- str r3, [r9, #512]
- ldr r3, [sp, #16]
- str r6, [r3, #8]
- adds r6, r6, #1
- ldr r3, [sp, #48]
- str r3, [r2, #12]
- ldrh r3, [r7]
- strh r3, [r2, #2] @ movhi
- ldr r3, [r4, #2440]
- adds r3, r3, #1
- str r3, [r4, #2440]
- ldr r3, [sp, #24]
- adds r3, r3, #1
- str r3, [sp, #24]
- b .L3740
-.L3741:
- ldr r3, [sp, #8]
- ldr r2, [sp, #24]
- subs r3, r3, r2
+ cbnz r5, .L3606
+ ldr r3, [r6, #1512]
+ cmp r3, #2
+ bgt .L3606
+.L3642:
+ movs r0, #0
+ b .L3600
+.L3606:
+ add r3, r10, r8
+ sub r9, r9, r4
str r3, [sp, #8]
- ldr r3, .L3802+4
- ldr r2, [r10, #2440]
- ldr r3, [r3, #3300]
- cmp r2, r3
- bcs .L3760
- ldr r3, [sp, #28]
- cbnz r3, .L3760
- ldrh r3, [r7, #4]
- cbz r3, .L3760
-.L3762:
+ add r7, r7, r4
+ ldr r3, [sp]
+ mov r8, r5
+ adds r3, r3, #1
+ str r3, [sp]
+.L3605:
movs r3, #0
- str r3, [sp, #28]
- b .L3733
-.L3760:
+ str r3, [r6, #1512]
+.L3604:
+ ldr r1, [sp, #12]
+ ldr r0, [sp]
+ bl FtlCacheMetchLpa
+ cbz r0, .L3607
bl FtlCacheWriteBack
- movs r3, #0
- str r3, [r10, #2440]
- ldr r3, [sp, #8]
- cmp r3, #1
- bhi .L3733
- b .L3762
-.L3799:
- mov r0, r3
- ldr r2, [sp, #4]
- ldr r3, [sp, #20]
+.L3607:
+ ldr r5, .L3672+12
+ ldr fp, .L3672+16
+ str r5, [r6, #1488]
+ ldr r6, [sp]
+.L3608:
+ ldr r4, .L3672
+ cmp r8, #0
+ bne .L3637
+ ldr r3, [sp, #12]
+ mov r0, r8
+ ldr r2, [sp]
subs r1, r3, r2
bl ftl_do_gc
- ldrh r3, [r5, #312]
+ ldrh r3, [r4, #316]
cmp r3, #5
- bls .L3775
+ bls .L3638
cmp r3, #31
- bhi .L3767
- ldr r3, .L3802+8
- ldrb r3, [r3] @ zero_extendqisi2
- cbnz r3, .L3767
-.L3775:
- ldr r4, [sp, #8]
- mov r8, #128
- ldr r6, .L3802+4
- movw r7, #65535
-.L3788:
- ldrh r3, [r5, #556]
- cmp r3, r7
- bne .L3766
- ldrh r3, [r6, #1174]
- cmp r3, r7
- bne .L3766
- ldrh r3, [r6, #1176]
- cmp r3, r7
- bne .L3766
- and r0, r4, #7
+ bhi .L3642
+ ldr r3, .L3672+16
+ ldrb r3, [r3, #36] @ zero_extendqisi2
+ cmp r3, #0
+ bne .L3642
+.L3638:
+ movw r5, #65535
+ movs r6, #128
+.L3641:
+ ldrh r3, [r4, #556]
+ cmp r3, r5
+ bne .L3640
+ ldrh r3, [r4, #1174]
+ cmp r3, r5
+ bne .L3640
+ ldrh r3, [r4, #1176]
+ cmp r3, r5
+ bne .L3640
+ and r0, r8, #7
bl List_get_gc_head_node
uxth r0, r0
bl FtlGcRefreshBlock
-.L3766:
- movs r0, #1
- strh r8, [r5, #1122] @ movhi
- strh r8, [r5, #1120] @ movhi
- mov r1, r0
- bl ftl_do_gc
- movs r0, #0
+.L3640:
movs r1, #1
+ strh r6, [r4, #1122] @ movhi
+ mov r0, r1
+ strh r6, [r4, #1120] @ movhi
bl ftl_do_gc
- ldr r3, [r5, #224]
- cbnz r3, .L3767
- ldrh r3, [r6, #312]
- cmp r3, #2
- bhi .L3767
- adds r4, r4, #1
- cmp r4, #256
- bne .L3788
- b .L3767
-.L3771:
- mov r0, #-1
- b .L3726
-.L3767:
+ movs r1, #1
movs r0, #0
- b .L3726
-.L3768:
- mov r0, r3
-.L3726:
- add sp, sp, #92
- @ sp needed
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L3803:
+ bl ftl_do_gc
+ ldr r3, [r4, #228]
+ cmp r3, #0
+ bne .L3642
+ ldrh r3, [r4, #316]
+ cmp r3, #2
+ bhi .L3642
+ add r8, r8, #1
+ cmp r8, #256
+ bne .L3641
+ b .L3642
+.L3648:
+ str r10, [sp, #8]
+ b .L3605
+.L3647:
+ str r10, [sp, #8]
+ b .L3604
+.L3637:
+ ldrh r1, [r5, #4]
+ cbnz r1, .L3609
+ add r2, r4, #320
+ ldr r10, .L3672+4
+ cmp r5, r2
+ bne .L3610
+ ldrh r5, [r4, #372]
+ cbnz r5, .L3611
+ add r0, r4, #368
+ bl allocate_new_data_superblock
+ str r5, [r10, #3448]
+.L3611:
+ ldr r5, .L3672+12
+ ldr r0, .L3672+12
+ bl allocate_new_data_superblock
+ ldr r1, [r10, #3448]
+ add r2, r5, #48
+ cmp r1, #0
+ it ne
+ movne r5, r2
+.L3612:
+ ldrh r2, [r5, #4]
+ cbnz r2, .L3613
+ mov r0, r5
+ bl allocate_new_data_superblock
+.L3613:
+ ldr r2, .L3672+8
+ str r5, [r2, #1488]
+.L3609:
+ ldr r1, [fp, #2444]
+ ldr r2, [r4, #3300]
+ ldr r10, .L3672
+ subs r2, r2, r1
+ ldrh r1, [r5, #4]
+ cmp r2, r8
+ it cs
+ movcs r2, r8
+ cmp r1, r2
+ mov r3, r1
+ it cs
+ movcs r3, r2
+ str r3, [sp, #36]
+ movs r3, #0
+ str r3, [sp, #20]
+.L3614:
+ ldr r3, [sp, #20]
+ ldr r2, [sp, #36]
+ cmp r3, r2
+ bne .L3633
+.L3615:
+ ldr r2, .L3672
+ ldr r1, [fp, #2444]
+ ldr r3, [sp, #20]
+ ldr r2, [r2, #3300]
+ sub r8, r8, r3
+ cmp r1, r2
+ bcs .L3634
+ ldr r3, [sp, #16]
+ cmp r3, #0
+ bne .L3634
+ ldrh r2, [r5, #4]
+ cmp r2, #0
+ beq .L3634
+.L3636:
+ movs r3, #0
+ str r3, [sp, #16]
+ b .L3608
+.L3610:
+ str r1, [r10, #3448]
+ ldrh r1, [r4, #324]
+ cbnz r1, .L3650
+ mov r0, r5
+ bl allocate_new_data_superblock
+ b .L3612
+.L3650:
+ mov r5, r2
+ b .L3613
+.L3673:
.align 2
-.L3802:
- .word .LC166
+.L3672:
.word .LANCHOR2
+ .word .LANCHOR1
+ .word .LANCHOR4
+ .word .LANCHOR2+320
.word .LANCHOR0
+.L3633:
+ ldrh r2, [r5, #4]
+ cmp r2, #0
+ beq .L3615
+ ldr r3, [sp, #16]
+ cbz r3, .L3616
+ ldr r3, [sp, #12]
+ cmp r3, r6
+ bne .L3616
+ ldr r3, [sp, #20]
+ cbz r3, .L3616
+ ldrh r1, [fp, #2396]
+ add r2, r7, r9
+ ldr r3, [sp, #12]
+ mls r2, r1, r3, r2
+ cmp r1, r2
+ bne .L3615
+.L3616:
+ movs r2, #0
+ add r1, sp, #40
+ mov r0, r6
+ movs r4, #36
+ bl log2phys
+ mov r0, r5
+ bl get_new_active_ppa
+ ldr r1, [fp, #2444]
+ ldr r2, [fp, #2448]
+ mla ip, r4, r1, r2
+ ldrh r2, [fp, #2402]
+ str r0, [ip, #4]
+ mul r0, r2, r1
+ str r6, [ip, #16]
+ bic r3, r0, #3
+ str r3, [sp, #28]
+ ldr r0, [sp, #28]
+ ldr r3, [r10, #3348]
+ str r3, [sp, #32]
+ add r3, r3, r0
+ ldrh r0, [fp, #2400]
+ str r3, [ip, #12]
+ str r3, [sp, #4]
+ muls r1, r0, r1
+ ldr r0, [r10, #3328]
+ bic r1, r1, #3
+ add r1, r1, r0
+ mov r0, r3
+ str r1, [ip, #8]
+ movs r1, #0
+ bl ftl_memset
+ ldr r3, [sp]
+ cmp r3, r6
+ beq .L3617
+ ldr r3, [sp, #12]
+ cmp r3, r6
+ bne .L3668
+ ldrh r3, [sp, #12]
+ add r4, r7, r9
+ ldrh r2, [fp, #2396]
+ smulbb r2, r2, r3
+ movs r3, #0
+ str r3, [sp, #24]
+ subs r4, r4, r2
+ uxth r4, r4
+ b .L3620
+.L3617:
+ ldrh r4, [fp, #2396]
+ mov r0, r7
+ mov r1, r4
+ bl __aeabi_uidivmod
+ subs r4, r4, r1
+ str r1, [sp, #24]
+ cmp r4, r9
+ it cs
+ movcs r4, r9
+.L3620:
+ ldrh r2, [fp, #2396]
+ cmp r2, r4
+ bne .L3621
+ ldr r3, [sp]
+ ldr r2, [fp, #2444]
+ ldr r0, [fp, #2448]
+ cmp r3, r6
+ itte ne
+ mulne r1, r4, r6
+ ldrne r3, [sp, #8]
+ ldreq r1, [sp, #8]
+ mov r4, #36
+ itt ne
+ subne r1, r1, r7
+ addne r1, r3, r1, lsl #9
+ ldr r3, [sp, #16]
+ cbz r3, .L3623
+ mla r2, r4, r2, r0
+ str r1, [r2, #8]
+.L3624:
+ ldr r3, [sp, #32]
+ movw r2, #61589
+ ldr r1, [sp, #28]
+ strh r2, [r3, r1] @ movhi
+ ldr r3, [sp, #4]
+ ldr r2, [r10, #512]
+ str r2, [r3, #4]
+ adds r2, r2, #1
+ adds r3, r2, #1
+ ldr r3, [sp, #4]
+ it eq
+ moveq r2, #0
+ str r2, [r10, #512]
+ ldr r2, [sp, #40]
+ str r6, [r3, #8]
+ adds r6, r6, #1
+ str r2, [r3, #12]
+ ldrh r2, [r5]
+ strh r2, [r3, #2] @ movhi
+ ldr r3, [sp, #20]
+ ldr r2, [fp, #2444]
+ adds r3, r3, #1
+ adds r2, r2, #1
+ str r3, [sp, #20]
+ str r2, [fp, #2444]
+ b .L3614
+.L3623:
+ mla r0, r4, r2, r0
+ ldrh r2, [fp, #2400]
+.L3671:
+ ldr r0, [r0, #8]
+ b .L3669
+.L3621:
+ ldr r2, [sp, #40]
+ movs r0, #36
+ adds r1, r2, #1
+ beq .L3625
+ ldr r1, [fp, #2448]
+ str r2, [sp, #48]
+ ldr r2, [fp, #2444]
+ str r6, [sp, #60]
+ mla r2, r0, r2, r1
+ add r0, sp, #44
+ ldr r1, [r2, #8]
+ ldr r2, [r2, #12]
+ str r1, [sp, #52]
+ movs r1, #1
+ str r2, [sp, #56]
+ movs r2, #0
+ bl FlashReadPages
+ ldr r2, [sp, #44]
+ adds r2, r2, #1
+ bne .L3626
+ ldr r2, [r10, #676]
+ adds r2, r2, #1
+ str r2, [r10, #676]
+.L3628:
+ ldr r3, [sp]
+ lsls r2, r4, #9
+ cmp r3, r6
+ bne .L3629
+ ldr r0, [fp, #2448]
+ movs r4, #36
+ ldr r1, [fp, #2444]
+ ldr r3, [sp, #24]
+ mla r1, r4, r1, r0
+ ldr r0, [r1, #8]
+ ldr r1, [sp, #8]
+ add r0, r0, r3, lsl #9
+.L3669:
+ bl ftl_memcpy
+ b .L3624
+.L3626:
+ ldr r3, [sp, #4]
+ ldr r2, [r3, #8]
+ cmp r6, r2
+ beq .L3628
+ ldr r2, [r10, #676]
+ ldr r0, .L3674
+ adds r2, r2, #1
+ str r2, [r10, #676]
+ mov r2, r6
+ ldr r1, [r3, #8]
+ bl printk
+ b .L3628
+.L3625:
+ ldr r1, [fp, #2444]
+ ldr r2, [fp, #2448]
+ mla r0, r0, r1, r2
+ ldrh r2, [fp, #2400]
+ movs r1, #0
+ ldr r0, [r0, #8]
+ bl ftl_memset
+ b .L3628
+.L3629:
+ ldrh r1, [fp, #2396]
+ movs r4, #36
+ ldr r3, [fp, #2448]
+ ldr r0, [fp, #2444]
+ muls r1, r6, r1
+ mla r0, r4, r0, r3
+ ldr r3, [sp, #8]
+ subs r1, r1, r7
+ add r1, r3, r1, lsl #9
+ b .L3671
+.L3668:
+ ldr r3, [sp, #16]
+ cbz r3, .L3630
+ ldr r2, [fp, #2444]
+ ldr r1, [fp, #2448]
+ ldr r3, [sp, #8]
+ mla r4, r4, r2, r1
+ ldrh r2, [fp, #2396]
+ muls r2, r6, r2
+ subs r2, r2, r7
+ add r2, r3, r2, lsl #9
+ str r2, [r4, #8]
+ b .L3624
+.L3630:
+ ldrh r1, [fp, #2396]
+ ldr r2, [fp, #2444]
+ ldr r0, [fp, #2448]
+ ldr r3, [sp, #8]
+ muls r1, r6, r1
+ mla r4, r4, r2, r0
+ ldrh r2, [fp, #2400]
+ subs r1, r1, r7
+ add r1, r3, r1, lsl #9
+ ldr r0, [r4, #8]
+ b .L3669
+.L3634:
+ bl FtlCacheWriteBack
+ cmp r8, #1
+ mov r2, #0
+ str r2, [fp, #2444]
+ bhi .L3608
+ b .L3636
+.L3646:
+ mov r0, #-1
+ b .L3600
+.L3643:
+ mov r0, r2
+ b .L3600
+.L3675:
+ .align 2
+.L3674:
+ .word .LC166
.fnend
.size ftl_write, .-ftl_write
.align 1
.global ftl_vendor_write
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type ftl_vendor_write, %function
ftl_vendor_write:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- push {r4, r5, lr}
- .save {r4, r5, lr}
- mov r5, r0
- mov r4, r1
+ @ link register save eliminated.
mov r3, r2
- mov r1, r5
- mov r2, r4
+ mov r2, r1
+ mov r1, r0
movs r0, #16
- pop {r4, r5, lr}
b ftl_write
.fnend
.size ftl_vendor_write, .-ftl_vendor_write
.align 1
.global FlashBootVendorWrite
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FlashBootVendorWrite, %function
FlashBootVendorWrite:
.fnstart
@@ -23260,56 +23562,57 @@
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
- mov r6, r0
+ mov r4, r0
mov r5, r1
- mov r4, r2
+ mov r6, r2
bl rknand_device_lock
- ldr r3, .L3808
- ldr r3, [r3, #504]
+ ldr r3, .L3680
+ ldr r3, [r3, #500]
cmp r3, #1
- bne .L3807
- mov r2, r4
- mov r0, r6
+ bne .L3679
+ mov r0, r4
+ mov r2, r6
mov r1, r5
bl ftl_vendor_write
mov r4, r0
- b .L3806
-.L3807:
- mov r4, #-1
-.L3806:
+.L3678:
bl rknand_device_unlock
mov r0, r4
pop {r4, r5, r6, pc}
-.L3809:
+.L3679:
+ mov r4, #-1
+ b .L3678
+.L3681:
.align 2
-.L3808:
+.L3680:
.word .LANCHOR1
.fnend
.size FlashBootVendorWrite, .-FlashBootVendorWrite
.align 1
.global ftl_sys_write
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type ftl_sys_write, %function
ftl_sys_write:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- push {r4, lr}
- .save {r4, lr}
- mov r4, r1
+ @ link register save eliminated.
mov r3, r2
+ mov r2, r1
add r1, r0, #256
- mov r2, r4
movs r0, #16
- pop {r4, lr}
b ftl_write
.fnend
.size ftl_sys_write, .-ftl_sys_write
.align 1
.global StorageSysDataStore
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type StorageSysDataStore, %function
StorageSysDataStore:
.fnstart
@@ -23317,12 +23620,12 @@
@ frame_needed = 0, uses_anonymous_args = 0
push {r3, r4, r5, lr}
.save {r3, r4, r5, lr}
- mov r4, r1
- mov r5, r0
+ mov r5, r1
+ mov r4, r0
bl rknand_device_lock
- mov r2, r4
+ mov r2, r5
movs r1, #1
- mov r0, r5
+ mov r0, r4
bl ftl_sys_write
mov r4, r0
bl rknand_device_unlock
@@ -23332,86 +23635,91 @@
.size StorageSysDataStore, .-StorageSysDataStore
.align 1
.global FtlDumpSysBlock
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FtlDumpSysBlock, %function
FtlDumpSysBlock:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- push {r4, r5, r6, r7, r8, r9, lr}
- .save {r4, r5, r6, r7, r8, r9, lr}
- lsl r8, r0, #10
- ldr r5, .L3820
+ push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+ .save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
+ lsl r9, r0, #10
+ ldr r5, .L3691
.pad #28
sub sp, sp, #28
- ldr r4, .L3820+4
- mov r9, #0
- ldr r7, .L3820+8
- mov r6, r0
+ mov r7, r0
+ movs r6, #0
+ ldr r4, .L3691+4
ldr r3, [r5, #3316]
- str r3, [r4, #1256]
+ ldr r8, .L3691+12
+ ldr fp, .L3691+16
+ add r10, r4, #1256
+ str r3, [r4, #1264]
ldr r3, [r5, #3340]
- str r3, [r4, #1260]
-.L3813:
- ldrh r2, [r7, #2390]
- sxth r3, r9
+ str r3, [r4, #1268]
+.L3685:
+ ldrh r2, [r8, #2392]
+ sxth r3, r6
cmp r3, r2
- bge .L3819
- movs r1, #1
- ldr r0, .L3820+12
- orr r3, r3, r8
- str r3, [r4, #1252]
- mov r2, r1
- bl FlashReadPages
- ldr r3, [r4, #1260]
- ldr r0, .L3820+16
- mov r1, r6
- ldr r2, [r3]
- str r2, [sp]
- ldr r2, [r3, #4]
- str r2, [sp, #4]
- ldr r2, [r3, #8]
- str r2, [sp, #8]
- ldr r3, [r3, #12]
- ldr r2, [r4, #1248]
- str r3, [sp, #12]
- ldr r3, [r4, #1256]
- ldr r3, [r3]
- str r3, [sp, #16]
- ldr r3, [r4, #1252]
- bl printk
- ldr r3, [r4, #1260]
- ldr r3, [r3]
- adds r3, r3, #1
- beq .L3814
- ldr r0, .L3820+20
- movs r2, #4
- ldr r1, [r5, #3316]
- mov r3, #768
- bl rknand_print_hex
-.L3814:
- add r9, r9, #1
- b .L3813
-.L3819:
+ blt .L3687
add sp, sp, #28
@ sp needed
- pop {r4, r5, r6, r7, r8, r9, pc}
-.L3821:
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L3687:
+ movs r2, #1
+ orr r3, r3, r9
+ mov r1, r2
+ mov r0, r10
+ str r3, [r4, #1260]
+ bl FlashReadPages
+ ldr r2, [r4, #1264]
+ mov r1, r7
+ ldr r3, [r4, #1268]
+ mov r0, fp
+ ldr r2, [r2]
+ str r2, [sp, #16]
+ ldr r2, [r3, #12]
+ str r2, [sp, #12]
+ ldr r2, [r3, #8]
+ str r2, [sp, #8]
+ ldr r2, [r3, #4]
+ str r2, [sp, #4]
+ ldr r3, [r3]
+ ldr r2, [r4, #1256]
+ str r3, [sp]
+ ldr r3, [r4, #1260]
+ bl printk
+ ldr r3, [r4, #1268]
+ ldr r3, [r3]
+ adds r3, r3, #1
+ beq .L3686
+ mov r3, #768
+ movs r2, #4
+ ldr r1, [r5, #3316]
+ ldr r0, .L3691+8
+ bl rknand_print_hex
+.L3686:
+ adds r6, r6, #1
+ b .L3685
+.L3692:
.align 2
-.L3820:
+.L3691:
.word .LANCHOR2
.word .LANCHOR4
- .word .LANCHOR0
- .word .LANCHOR4+1248
- .word .LC167
.word .LC168
+ .word .LANCHOR0
+ .word .LC167
.fnend
.size FtlDumpSysBlock, .-FtlDumpSysBlock
.align 1
.global dump_map_info
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type dump_map_info, %function
dump_map_info:
.fnstart
@@ -23421,282 +23729,286 @@
.save {r4, r5, r6, r7, r8, r9, r10, fp, lr}
.pad #52
sub sp, sp, #52
- ldr r4, .L3840
- addw fp, r4, #2348
- ldrh r7, [r4, #2328]
- mov r9, r4
-.L3823:
- ldrh r3, [r4, #2330]
- ldr r6, .L3840+4
+ ldr r4, .L3708
+ ldr r5, .L3708+4
+ ldrh r7, [r4, #2332]
+ addw fp, r4, #2350
+.L3694:
+ ldrh r3, [r4, #2334]
cmp r3, r7
- bls .L3837
- ldr r1, [r6, #1148]
+ bhi .L3702
+ ldr r6, .L3708+8
+ mov r9, #0
+ ldr fp, .L3708+24
+ add r10, r6, #1256
+.L3703:
+ ldrh r3, [r5, #3452]
+ sxth r7, r9
+ cmp r7, r3
+ bge .L3706
+ lsls r7, r7, #1
mov r8, #0
- ldrh ip, [r9, #2320]
- mov r10, #36
- ldr r2, [r6, #3304]
- mov r5, r8
- str r1, [sp, #24]
- ldr r3, [r6, #1144]
- ldrh r1, [r9, #2400]
- str r1, [sp, #28]
-.L3833:
- uxth r1, r8
- cmp r1, ip
- bcs .L3838
+ b .L3707
+.L3697:
mov r1, r7
ldrb r0, [fp, r8] @ zero_extendqisi2
str r3, [sp, #44]
str r2, [sp, #40]
- str ip, [sp, #36]
bl V2P_block
- str r0, [sp, #32]
+ str r0, [sp, #36]
bl FtlBbmIsBadBlock
- ldr r1, [sp, #32]
- ldr ip, [sp, #36]
ldr r2, [sp, #40]
ldr r3, [sp, #44]
- cbnz r0, .L3824
- mla r0, r10, r5, r2
+ cbnz r0, .L3695
+ ldr r1, [sp, #36]
+ mla r0, r10, r6, r9
lsls r1, r1, #10
+ str r3, [r0, #8]
str r1, [r0, #4]
- ldr r1, [sp, #28]
- muls r1, r5, r1
- add r5, r5, #1
+ ldr r1, [sp, #32]
+ muls r1, r6, r1
it mi
addmi r1, r1, #3
- bic lr, r1, #3
- ldr r1, [sp, #24]
- uxth r5, r5
- str r3, [r0, #8]
- add r1, r1, lr
+ adds r6, r6, #1
+ bic ip, r1, #3
+ ldr r1, [sp, #28]
+ uxth r6, r6
+ add r1, r1, ip
str r1, [r0, #12]
-.L3824:
+.L3695:
add r8, r8, #1
- b .L3833
-.L3838:
- cbz r5, .L3828
- ldr r0, [r6, #3304]
- mov r1, r5
- movs r2, #1
- mov r8, #0
- bl FlashReadPages
- mov r10, #36
-.L3829:
- uxth r3, r8
- cmp r3, r5
- bcs .L3828
- ldr r3, [r6, #3304]
- ldr r0, .L3840+8
- mla r3, r10, r8, r3
- add r8, r8, #1
- adds r2, r3, #4
- ldmia r2, {r2, r3, lr}
- ldr r1, [lr, #4]
- str r1, [sp]
- ldr r1, [lr, #8]
- str r1, [sp, #4]
- ldr r1, [lr, #12]
- str r1, [sp, #8]
- ldr r1, [r3]
- str r1, [sp, #12]
- ubfx r1, r2, #10, #16
- ldr r3, [r3, #4]
- str r3, [sp, #16]
- ldr r3, [lr]
- bl printk
- b .L3829
-.L3828:
+.L3704:
+ uxth r1, r8
+ cmp r2, r1
+ bhi .L3697
+ cbnz r6, .L3698
+.L3701:
adds r7, r7, #1
uxth r7, r7
- b .L3823
-.L3837:
- ldr r7, .L3840+12
+ b .L3694
+.L3698:
+ ldr r10, .L3708+28
+ mov r0, r9
mov r8, #0
-.L3832:
- ldrh r2, [r6, #3452]
- sxth r3, r8
- ldr r5, .L3840+4
- cmp r3, r2
- bge .L3835
- lsls r5, r3, #1
- mov r9, #0
-.L3836:
- ldrh r2, [r4, #2390]
- sxth r3, r9
- add r9, r9, #1
- cmp r3, r2
- bge .L3839
- ldr r2, [r6, #3368]
- movs r1, #1
- ldr r0, .L3840+16
- ldrh r2, [r2, r5]
- orr r3, r3, r2, lsl #10
- mov r2, r1
- str r3, [r7, #1252]
+ mov r9, #36
+ movs r2, #1
+ mov r1, r6
bl FlashReadPages
- ldr r3, [r7, #1260]
- ldr r1, [r6, #3368]
- ldr r2, [r7, #1256]
- ldr r0, [r3]
- ldrh r1, [r1, r5]
- str r0, [sp]
- ldr r0, [r3, #4]
- str r0, [sp, #4]
- ldr r0, [r3, #8]
- str r0, [sp, #8]
- ldr r3, [r3, #12]
- ldr r0, .L3840+20
- str r3, [sp, #12]
- ldr r3, [r2]
- str r3, [sp, #16]
- ldr r3, [r2, #4]
- str r3, [sp, #20]
- ldr r2, [r7, #1248]
- ldr r3, [r7, #1252]
- bl printk
- b .L3836
-.L3839:
+.L3699:
+ uxth r3, r8
+ cmp r6, r3
+ bls .L3701
+ ldr r3, [r5, #3304]
+ mla r3, r9, r8, r3
add r8, r8, #1
- b .L3832
-.L3835:
+ ldr r1, [r3, #12]
+ ldr r2, [r3, #4]
+ ldr r3, [r3, #8]
+ ldr r0, [r3, #4]
+ str r0, [sp, #16]
+ mov r0, r10
+ ldr r3, [r3]
+ str r3, [sp, #12]
+ ldr r3, [r1, #12]
+ str r3, [sp, #8]
+ ldr r3, [r1, #8]
+ str r3, [sp, #4]
+ ldr r3, [r1, #4]
+ str r3, [sp]
+ ldr r3, [r1]
+ ubfx r1, r2, #10, #16
+ bl printk
+ b .L3699
+.L3702:
+ ldr r1, [r5, #1148]
+ mov r8, #0
+ ldrh r2, [r4, #2324]
+ mov r6, r8
+ ldr r9, [r5, #3304]
+ mov r10, #36
+ str r1, [sp, #28]
+ ldrh r1, [r4, #2402]
+ ldr r3, [r5, #1144]
+ str r1, [sp, #32]
+ b .L3704
+.L3705:
+ ldr r2, [r5, #3368]
+ mov r0, r10
+ ldrh r2, [r2, r7]
+ orr r3, r3, r2, lsl #10
+ movs r2, #1
+ mov r1, r2
+ str r3, [r6, #1260]
+ bl FlashReadPages
+ ldr r2, [r6, #1264]
ldr r1, [r5, #3368]
+ ldr r3, [r6, #1268]
+ ldr r0, [r2, #4]
+ ldrh r1, [r1, r7]
+ str r0, [sp, #20]
+ mov r0, fp
+ ldr r2, [r2]
+ str r2, [sp, #16]
+ ldr r2, [r3, #12]
+ str r2, [sp, #12]
+ ldr r2, [r3, #8]
+ str r2, [sp, #8]
+ ldr r2, [r3, #4]
+ str r2, [sp, #4]
+ ldr r3, [r3]
+ str r3, [sp]
+ ldr r3, [r6, #1260]
+ ldr r2, [r6, #1256]
+ bl printk
+.L3707:
+ ldrh r2, [r4, #2392]
+ sxth r3, r8
+ add r8, r8, #1
+ cmp r3, r2
+ blt .L3705
+ add r9, r9, #1
+ b .L3703
+.L3706:
+ ldr r3, [r4, #2420]
movs r2, #2
- ldr r3, [r4, #2416]
- ldr r0, .L3840+24
+ ldr r1, [r5, #3368]
+ ldr r0, .L3708+12
bl rknand_print_hex
+ ldrh r3, [r4, #2428]
+ movs r2, #4
ldr r1, [r5, #3388]
- ldrh r3, [r4, #2424]
- movs r2, #4
- ldr r0, .L3840+28
+ ldr r0, .L3708+16
bl rknand_print_hex
- ldr r0, .L3840+32
- ldr r1, [r5, #3392]
+ ldrh r3, [r4, #2428]
movs r2, #4
- ldrh r3, [r4, #2424]
+ ldr r1, [r5, #3392]
+ ldr r0, .L3708+20
add sp, sp, #52
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, lr}
b rknand_print_hex
-.L3841:
+.L3709:
.align 2
-.L3840:
+.L3708:
.word .LANCHOR0
.word .LANCHOR2
- .word .LC169
.word .LANCHOR4
- .word .LANCHOR4+1248
- .word .LC113
.word .LC170
.word .LC171
.word .LC172
+ .word .LC113
+ .word .LC169
.fnend
.size dump_map_info, .-dump_map_info
.align 1
.global flash_boot_enter_slc_mode
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type flash_boot_enter_slc_mode, %function
flash_boot_enter_slc_mode:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L3844
- ldr r2, [r3, #2264]
- ldr r3, .L3844+4
+ ldr r3, .L3712
+ ldr r2, [r3, #2268]
+ ldr r3, .L3712+4
cmp r2, r3
- bne .L3842
+ bne .L3710
b flash_enter_slc_mode
-.L3842:
+.L3710:
bx lr
-.L3845:
+.L3713:
.align 2
-.L3844:
+.L3712:
.word .LANCHOR0
.word 1446522928
.fnend
.size flash_boot_enter_slc_mode, .-flash_boot_enter_slc_mode
.align 1
.global flash_boot_exit_slc_mode
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type flash_boot_exit_slc_mode, %function
flash_boot_exit_slc_mode:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L3848
- ldr r2, [r3, #2264]
- ldr r3, .L3848+4
+ ldr r3, .L3716
+ ldr r2, [r3, #2268]
+ ldr r3, .L3716+4
cmp r2, r3
- bne .L3846
+ bne .L3714
b flash_exit_slc_mode
-.L3846:
+.L3714:
bx lr
-.L3849:
+.L3717:
.align 2
-.L3848:
+.L3716:
.word .LANCHOR0
.word 1446522928
.fnend
.size flash_boot_exit_slc_mode, .-flash_boot_exit_slc_mode
.align 1
.global write_idblock
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type write_idblock, %function
write_idblock:
.fnstart
- @ args = 0, pretend = 0, frame = 120
+ @ args = 0, pretend = 0, frame = 112
@ 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, r0
- ldr r7, .L3899
- .pad #132
- sub sp, sp, #132
+ mov r7, r0
+ ldr r4, .L3766
+ .pad #124
+ sub sp, sp, #124
mov r0, #256000
- mov fp, r1
- mov r6, r2
- ldr r3, [r7, #44]
- ldr r4, [r7, #4]
- ldrb r5, [r3, #9] @ zero_extendqisi2
+ mov r9, r1
+ mov r5, r2
+ ldr r3, [r4, #48]
+ ldr r8, [r4, #40]
+ ldrb r6, [r3, #9] @ zero_extendqisi2
bl ftl_malloc
- str r0, [sp, #12]
+ str r0, [sp, #8]
cmp r0, #0
- beq .L3877
- addw r2, r8, #511
- lsr r10, r2, #9
- cmp r10, #8
- bls .L3875
- cmp r10, #500
- bhi .L3877
- b .L3852
-.L3875:
- mov r10, #8
-.L3852:
- ldr r2, [fp]
- ldr r3, .L3899+4
+ beq .L3745
+ addw r7, r7, #511
+ lsr fp, r7, #9
+ cmp fp, #8
+ bls .L3743
+ cmp fp, #500
+ bhi .L3745
+.L3720:
+ ldr r2, [r9]
+ ldr r3, .L3766+4
cmp r2, r3
- bne .L3877
- smulbb r3, r5, r4
- uxth r3, r3
- str r3, [sp, #16]
+ bne .L3745
+ smulbb r6, r6, r8
+ uxth r3, r6
subs r0, r3, #1
mov r1, r3
- add r0, r0, r10
+ add r0, r0, fp
+ str r3, [sp, #12]
bl __aeabi_uidiv
+ str r0, [sp, #32]
+ add r0, r9, #254976
+ add r0, r0, #512
movs r3, #0
movw r2, #63871
- str r0, [sp, #40]
- add r0, fp, #254976
- add r0, r0, #512
-.L3856:
+.L3724:
ldr r1, [r0, #-4]!
- cbnz r1, .L3853
- ldr r1, [fp, r3, lsl #2]
+ cmp r1, #0
+ bne .L3721
+ ldr r1, [r9, r3, lsl #2]
adds r3, r3, #1
cmp r3, #4096
add r2, r2, #-1
@@ -23704,491 +24016,478 @@
movhi r3, #0
cmp r2, #4096
str r1, [r0, #512]
- bne .L3856
- b .L3855
-.L3853:
- ldr r0, .L3899+8
- bl printk
-.L3855:
+ bne .L3724
+.L3723:
movs r3, #5
- ldr r0, .L3899+12
- mov r1, r6
+ mov r1, r5
movs r2, #4
+ ldr r0, .L3766+8
bl rknand_print_hex
- ldr r1, [fp, #512]
- ldrb r2, [r7, #1] @ zero_extendqisi2
- subs r4, r6, #4
- ldr r0, .L3899+16
+ ldrb r2, [r4, #37] @ zero_extendqisi2
+ subs r5, r5, #4
+ ldr r1, [r9, #512]
+ ldr r0, .L3766+12
bl printk
- ldr r2, .L3899+20
- ldrh r3, [r7, #142]
- mov r1, r10
- ldr r0, .L3899+24
- ldr r2, [r2, #1204]
- ldr r5, .L3899
+ ldr r2, .L3766+16
+ mov r1, fp
+ ldrh r3, [r4, #150]
+ ldr r0, .L3766+20
+ ldr r2, [r2, #1212]
str r2, [sp]
- mov r2, r10
+ mov r2, fp
bl printk
- ldrb r3, [r7, #1] @ zero_extendqisi2
- ldr r2, [fp, #512]
+ ldrb r3, [r4, #37] @ zero_extendqisi2
+ ldr r2, [r9, #512]
+ ldr r4, .L3766
cmp r2, r3
it hi
- strhi r3, [fp, #512]
- lsl r3, r10, #7
- str r3, [sp, #44]
+ strhi r3, [r9, #512]
+ lsl r3, fp, #7
+ str r3, [sp, #40]
movs r3, #0
- str r3, [sp, #24]
str r3, [sp, #20]
-.L3873:
- ldr r2, [r4, #4]
- ldrb r3, [r5, #1] @ zero_extendqisi2
- ldr r7, .L3899
+ str r3, [sp, #16]
+.L3741:
+ ldr r2, [r5, #4]
+ ldrb r3, [r4, #37] @ zero_extendqisi2
cmp r2, r3
- bcs .L3858
- ldr r3, .L3899+20
- ldr r3, [r3, #1204]
+ bcs .L3726
+ ldr r3, .L3766+16
+ ldr r3, [r3, #1212]
cmp r2, r3
- bcc .L3858
- ldr r3, [sp, #40]
+ bcc .L3726
+ ldr r3, [sp, #32]
cmp r3, #1
- bls .L3859
- ldr r3, [sp, #20]
- cbz r3, .L3859
- ldr r3, [r4]
+ bls .L3727
+ ldr r3, [sp, #16]
+ cbz r3, .L3727
+ ldr r3, [r5]
adds r3, r3, #1
cmp r2, r3
- beq .L3858
-.L3859:
- movs r1, #0
+ beq .L3726
+.L3727:
mov r2, #512
- ldr r0, [sp, #12]
+ movs r1, #0
+ ldr r0, [sp, #8]
bl memset
- ldr r6, [r4, #4]
- mov r2, r10
- ldr r0, .L3899+28
- ldr r3, [sp, #16]
+ ldr r6, [r5, #4]
+ mov r2, fp
+ ldr r3, [sp, #12]
+ ldr r7, [r4, #40]
+ ldr r0, .L3766+24
muls r6, r3, r6
- ldr r3, [r7, #44]
- ldr r7, [r7, #4]
- ldrb r9, [r3, #9] @ zero_extendqisi2
+ ldr r3, [r4, #48]
+ ldrb r10, [r3, #9] @ zero_extendqisi2
mov r1, r6
bl printk
movs r0, #0
+ smulbb r7, r7, r10
bl flash_boot_enter_slc_mode
- mov r1, r9
+ mov r1, r10
mov r0, r6
bl __aeabi_uidiv
- smulbb r7, r7, r9
uxth r7, r7
+ movs r2, #0
mov r1, r0
- movs r0, #0
- mov r2, r0
+ mov r0, r2
bl FlashEraseBlock
- cmp r10, r7
- bls .L3878
- movs r0, #0
- adds r1, r6, r7
+ cmp r7, fp
+ bcs .L3746
+ movs r2, #0
mov r8, #2
- mov r2, r0
+ adds r1, r6, r7
+ mov r0, r2
bl FlashEraseBlock
- b .L3860
-.L3878:
- mov r8, #1
-.L3860:
+.L3728:
movs r0, #0
bl flash_boot_exit_slc_mode
- ldr r3, [r5, #44]
+ ldr r3, [r4, #48]
ldrh r0, [r3, #10]
ldrb r1, [r3, #12] @ zero_extendqisi2
lsls r0, r0, #2
mul r0, r8, r0
+ mov r8, #0
bl __aeabi_idiv
mov r1, r7
- mov r8, #0
- str r0, [sp, #48]
+ str r0, [sp, #44]
mov r0, r6
bl __aeabi_uidivmod
- mov ip, r1
subs r3, r6, r1
- str fp, [sp, #28]
- str r3, [sp, #32]
-.L3861:
- ldr r3, [sp, #48]
- ldr r7, .L3899
- cmp r8, r3
- bcs .L3897
- add r3, r8, ip
- ubfx r3, r3, #2, #16
- cbz r3, .L3862
- adds r2, r3, #1
- add r1, r5, r2, lsl #1
- ldrh r7, [r1, #148]
- ldrb r1, [r5, #144] @ zero_extendqisi2
- cbz r1, .L3863
- ldr r1, [r5, #2264]
- ldr r0, .L3899+32
- cmp r1, r0
- it eq
- moveq r7, r2
-.L3863:
- add r7, r7, #1073741824
- subs r7, r7, #1
- lsls r7, r7, #2
- str r7, [sp, #64]
-.L3862:
- movw r2, #61424
- str r2, [sp, #68]
- add r2, r5, r3, lsl #1
- ldrh r7, [r2, #148]
- ldrb r2, [r5, #144] @ zero_extendqisi2
- cbz r2, .L3864
- ldr r2, [r5, #2264]
- ldr r1, .L3899+32
- cmp r2, r1
- it eq
- moveq r7, r3
-.L3864:
- ldr r3, [sp, #32]
- add r8, r8, #4
- str ip, [sp, #56]
- uxth r8, r8
- mla r2, r9, r7, r3
- ldr r3, .L3899
- ldrb r3, [r3, #2312] @ zero_extendqisi2
- str r2, [sp, #52]
+ str r1, [sp, #28]
str r3, [sp, #36]
- ldr r3, .L3899+20
- ldrb r0, [r3, #1210] @ zero_extendqisi2
- bl FlashBchSel
+ str r9, [sp, #24]
+.L3729:
+ ldr r3, [sp, #44]
+ cmp r3, r8
+ bhi .L3733
+ mov r1, r6
+ movs r3, #0
+ mov r2, fp
+ ldr r0, .L3766+28
+ bl printk
+ ldr r6, [r5, #4]
+ mov r2, fp
+ ldr r3, [sp, #12]
+ mov r8, #0
+ ldr r1, [r4, #40]
+ ldr r0, .L3766+32
+ muls r6, r3, r6
+ ldr r3, [r4, #48]
+ ldrb r3, [r3, #9] @ zero_extendqisi2
+ str r3, [sp, #24]
+ ldrh r3, [sp, #24]
+ smulbb r1, r1, r3
+ uxth r7, r1
+ mov r1, r6
+ bl printk
+ mov r1, r7
+ mov r0, r6
+ bl __aeabi_uidivmod
+ subs r3, r6, r1
+ ldr r10, [sp, #8]
+ str r3, [sp, #44]
+ ldr r3, [sp, #24]
+ str r1, [sp, #28]
+ muls r3, r1, r3
+ ubfx r3, r3, #2, #2
+.L3734:
+ cmp r8, fp
+ bcc .L3736
+ movs r3, #0
+ mov r1, r6
+ mov r2, fp
+ ldr r0, .L3766+36
+ bl printk
+ ldr r0, [sp, #8]
+ mov r3, r9
+ movs r6, #0
+.L3739:
+ mov r7, r0
+ mov r8, r3
+ ldr r1, [r7]
+ adds r0, r0, #4
+ ldr r2, [r8]
+ adds r3, r3, #4
+ cmp r1, r2
+ beq .L3737
+ mov r2, #512
+ movs r1, #0
+ ldr r0, [sp, #8]
+ bl memset
+ ldr r3, [r8]
+ ldr r1, [sp, #16]
+ ldr r0, .L3766+40
+ str r3, [sp, #4]
+ ldr r3, [r7]
+ str r3, [sp]
+ mov r3, r6
+ bic r6, r6, #255
+ ldr r2, [r5, #4]
+ lsls r6, r6, #2
+ bl printk
+ mov r3, #256
+ movs r2, #4
+ add r1, r9, r6
+ ldr r0, .L3766+44
+ bl rknand_print_hex
+ ldr r1, [sp, #8]
+ mov r3, #256
+ movs r2, #4
+ ldr r0, .L3766+48
+ add r1, r1, r6
+ bl rknand_print_hex
movs r0, #0
bl flash_boot_enter_slc_mode
- ldr r3, .L3899
- ldr r3, [r3, #44]
- ldrb r1, [r3, #9] @ zero_extendqisi2
- ldr r2, [sp, #52]
+ ldr r1, [r5, #4]
+ movs r2, #0
+ ldr r3, [sp, #12]
mov r0, r2
- bl __aeabi_uidiv
- add r3, sp, #64
- mov r1, r0
- ldr r2, [sp, #28]
- movs r0, #0
- bl FlashProgPage
+ muls r1, r3, r1
+ bl FlashEraseBlock
+ ldr r3, [sp, #32]
+ cmp r3, #1
+ bls .L3738
+ ldr r1, [r5, #4]
+ movs r2, #0
+ ldr r3, [sp, #12]
+ mov r0, r2
+ mla r1, r1, r3, r3
+ bl FlashEraseBlock
+.L3738:
movs r0, #0
bl flash_boot_exit_slc_mode
- ldr r0, [sp, #36]
- bl FlashBchSel
- mov r1, r9
- ldr r0, [sp, #32]
- bl __aeabi_uidiv
- adds r2, r7, #1
- uxth r2, r2
- mov r1, r0
- movs r0, #0
- bl FlashPageProgMsbFFData
- ldr r3, [sp, #28]
- ldr ip, [sp, #56]
- add r3, r3, #2048
- str r3, [sp, #28]
- b .L3861
-.L3900:
+ ldr r1, [r5, #4]
+ ldr r0, .L3766+52
+ bl printk
+.L3726:
+ ldr r3, [sp, #16]
+ adds r5, r5, #4
+ adds r3, r3, #1
+ cmp r3, #5
+ str r3, [sp, #16]
+ bne .L3741
+ ldr r0, [sp, #8]
+ bl ftl_free
+ ldr r3, [sp, #20]
+ clz r0, r3
+ lsrs r0, r0, #5
+ negs r0, r0
+.L3718:
+ add sp, sp, #124
+ @ sp needed
+ pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L3743:
+ mov fp, #8
+ b .L3720
+.L3721:
+ ldr r0, .L3766+56
+ bl printk
+ b .L3723
+.L3746:
+ mov r8, #1
+ b .L3728
+.L3767:
.align 2
-.L3899:
+.L3766:
.word .LANCHOR0
.word -52655045
- .word .LC173
.word .LC174
.word .LC175
.word .LANCHOR4
.word .LC176
.word .LC177
- .word 1446522928
-.L3897:
- mov r1, r6
- mov r2, r10
- movs r3, #0
- ldr r0, .L3901
- bl printk
- ldr r6, [r4, #4]
- ldr r0, .L3901+4
- mov r9, #0
- ldr r3, [sp, #16]
- muls r6, r3, r6
- ldr r3, [r7, #44]
- ldrb r3, [r3, #9] @ zero_extendqisi2
- mov r1, r6
- str r3, [sp, #28]
- ldr r3, [r7, #4]
- ldrh r2, [sp, #28]
- smulbb r8, r3, r2
- mov r2, r10
- bl printk
- mov r0, r6
- uxth r8, r8
- mov r1, r8
- bl __aeabi_uidivmod
- subs r3, r6, r1
- str r3, [sp, #48]
- ldr r3, [sp, #28]
- str r1, [sp, #32]
- mul ip, r3, r1
- ldr r3, [sp, #12]
- ubfx ip, ip, #2, #2
- str r3, [sp, #36]
-.L3866:
- cmp r9, r10
- bcs .L3898
- ldr r3, [sp, #32]
- rsb r8, ip, #4
- ldrb r1, [r5, #144] @ zero_extendqisi2
- add r3, r9, r3
- uxth r8, r8
- ubfx r3, r3, #2, #16
- add r2, r5, r3, lsl #1
- ldrh r2, [r2, #148]
- cbz r1, .L3867
- ldr r1, [r5, #2264]
- ldr r0, .L3901+8
- cmp r1, r0
- it eq
- moveq r2, r3
-.L3867:
- ldr r3, [sp, #48]
- add r9, r9, r8
- ldr r1, [sp, #28]
- add r3, ip, r3
- ldrb ip, [r7, #2312] @ zero_extendqisi2
- uxth r9, r9
- mla r3, r1, r2, r3
- ldr r2, [r7, #44]
- str ip, [sp, #52]
- ldrb r1, [r2, #9] @ zero_extendqisi2
- ldr r2, .L3901+12
- str r3, [sp, #60]
- str r1, [sp, #56]
- ldrb r0, [r2, #1210] @ zero_extendqisi2
- bl FlashBchSel
- movs r0, #0
- bl flash_boot_enter_slc_mode
- ldr r3, [sp, #60]
- ldr r1, [sp, #56]
- mov r0, r3
- bl __aeabi_uidiv
- mov r1, r0
- movs r0, #0
- ldr r2, [sp, #36]
- mov r3, r0
- bl FlashReadPage
- movs r0, #0
- bl flash_boot_exit_slc_mode
- ldr ip, [sp, #52]
- mov r0, ip
- bl FlashBchSel
- mov ip, #0
- ldr r3, [sp, #36]
- add r3, r3, r8, lsl #9
- str r3, [sp, #36]
- b .L3866
-.L3898:
- mov r1, r6
- movs r3, #0
- ldr r0, .L3901+16
- mov r2, r10
- bl printk
- movs r6, #0
- mov r3, fp
- ldr r0, [sp, #12]
-.L3872:
- mov r8, r0
- mov r7, r3
- ldr r1, [r8]
- adds r0, r0, #4
- ldr r2, [r7]
- adds r3, r3, #4
- cmp r1, r2
- beq .L3869
- movs r1, #0
- mov r2, #512
- ldr r0, [sp, #12]
- bl memset
- ldr r3, [r8]
- ldr r0, .L3901+20
- str r3, [sp]
- ldr r3, [r7]
- bic r7, r6, #255
- ldr r1, [sp, #20]
- lsls r7, r7, #2
- str r3, [sp, #4]
- mov r3, r6
- ldr r2, [r4, #4]
- bl printk
- ldr r0, .L3901+24
- add r1, fp, r7
- movs r2, #4
- mov r3, #256
- bl rknand_print_hex
- movs r2, #4
- ldr r0, .L3901+28
- ldr r3, [sp, #12]
- adds r1, r3, r7
- mov r3, #256
- bl rknand_print_hex
- movs r0, #0
- bl flash_boot_enter_slc_mode
- ldr r1, [r4, #4]
- movs r0, #0
- mov r2, r0
- ldr r3, [sp, #16]
- muls r1, r3, r1
- bl FlashEraseBlock
- ldr r3, [sp, #40]
- cmp r3, #1
- bls .L3870
- ldr r1, [r4, #4]
- movs r0, #0
- ldr r3, [sp, #16]
- mov r2, r0
- mla r1, r1, r3, r3
- bl FlashEraseBlock
-.L3870:
- movs r0, #0
- bl flash_boot_exit_slc_mode
- ldr r0, .L3901+32
- ldr r1, [r4, #4]
- bl printk
- ldr r3, [sp, #44]
- cmp r6, r3
- bcc .L3858
- b .L3871
-.L3869:
- ldr r2, [sp, #44]
- adds r6, r6, #1
- cmp r6, r2
- bne .L3872
-.L3871:
- ldr r3, [sp, #24]
- adds r3, r3, #1
- str r3, [sp, #24]
-.L3858:
- ldr r3, [sp, #20]
- adds r4, r4, #4
- adds r3, r3, #1
- str r3, [sp, #20]
- cmp r3, #5
- bne .L3873
- ldr r0, [sp, #12]
- bl ftl_free
- ldr r3, [sp, #24]
- clz r0, r3
- lsrs r0, r0, #5
- negs r0, r0
- b .L3851
-.L3877:
- mov r0, #-1
-.L3851:
- add sp, sp, #132
- @ sp needed
- pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L3902:
- .align 2
-.L3901:
.word .LC178
.word .LC179
- .word 1446522928
- .word .LANCHOR4
.word .LC180
.word .LC181
.word .LC182
.word .LC183
.word .LC184
+ .word .LC173
+.L3733:
+ ldr r3, [sp, #28]
+ add r2, r3, r8
+ lsrs r2, r2, #2
+ beq .L3730
+ ldrb r0, [r4, #152] @ zero_extendqisi2
+ adds r1, r2, #1
+ add r3, r4, r1, lsl #1
+ ldrh r3, [r3, #156]
+ cbz r0, .L3731
+ ldr r0, [r4, #2268]
+ ldr r7, .L3768
+ cmp r0, r7
+ it eq
+ moveq r3, r1
+.L3731:
+ add r3, r3, #1073741824
+ subs r3, r3, #1
+ lsls r3, r3, #2
+ str r3, [sp, #56]
+.L3730:
+ movw r3, #61424
+ str r3, [sp, #60]
+ add r3, r4, r2, lsl #1
+ ldrh r7, [r3, #156]
+ ldrb r3, [r4, #152] @ zero_extendqisi2
+ cbz r3, .L3732
+ ldr r3, [r4, #2268]
+ ldr r1, .L3768
+ cmp r3, r1
+ it eq
+ moveq r7, r2
+.L3732:
+ ldr r3, [sp, #36]
+ add r8, r8, #4
+ ldr r2, .L3768+4
+ uxth r8, r8
+ mla r3, r7, r10, r3
+ ldrb r0, [r2, #1218] @ zero_extendqisi2
+ adds r7, r7, #1
+ uxth r7, r7
+ str r3, [sp, #52]
+ ldrb r3, [r4, #2316] @ zero_extendqisi2
+ str r3, [sp, #48]
+ bl FlashBchSel
+ movs r0, #0
+ bl flash_boot_enter_slc_mode
+ ldr r2, [r4, #48]
+ ldr r3, [sp, #52]
+ ldrb r1, [r2, #9] @ zero_extendqisi2
+ mov r0, r3
+ bl __aeabi_uidiv
+ add r3, sp, #56
+ ldr r2, [sp, #24]
+ mov r1, r0
+ movs r0, #0
+ bl FlashProgPage
+ movs r0, #0
+ bl flash_boot_exit_slc_mode
+ ldr r0, [sp, #48]
+ bl FlashBchSel
+ mov r1, r10
+ ldr r0, [sp, #36]
+ bl __aeabi_uidiv
+ mov r2, r7
+ mov r1, r0
+ movs r0, #0
+ bl FlashPageProgMsbFFData
+ ldr r3, [sp, #24]
+ add r3, r3, #2048
+ str r3, [sp, #24]
+ b .L3729
+.L3736:
+ rsb r7, r3, #4
+ ldrb r0, [r4, #152] @ zero_extendqisi2
+ uxth r2, r7
+ str r2, [sp, #36]
+ ldr r2, [sp, #28]
+ add r2, r2, r8
+ lsrs r2, r2, #2
+ add r1, r4, r2, lsl #1
+ ldrh r1, [r1, #156]
+ cbz r0, .L3735
+ ldr r0, [r4, #2268]
+ ldr r7, .L3768
+ cmp r0, r7
+ it eq
+ moveq r1, r2
+.L3735:
+ ldr r2, [sp, #44]
+ add r3, r3, r2
+ ldr r2, [sp, #24]
+ mla r3, r1, r2, r3
+ ldr r2, [r4, #48]
+ ldrb r1, [r2, #9] @ zero_extendqisi2
+ ldr r2, .L3768+4
+ str r3, [sp, #52]
+ ldrb r3, [r4, #2316] @ zero_extendqisi2
+ ldrb r0, [r2, #1218] @ zero_extendqisi2
+ str r1, [sp, #48]
+ mov r7, r3
+ bl FlashBchSel
+ movs r0, #0
+ bl flash_boot_enter_slc_mode
+ ldr r3, [sp, #52]
+ ldr r1, [sp, #48]
+ mov r0, r3
+ bl __aeabi_uidiv
+ movs r3, #0
+ mov r2, r10
+ mov r1, r0
+ mov r0, r3
+ bl FlashReadPage
+ movs r0, #0
+ bl flash_boot_exit_slc_mode
+ mov r0, r7
+ bl FlashBchSel
+ ldr r3, [sp, #36]
+ add r8, r8, r3
+ add r10, r10, r3, lsl #9
+ uxth r8, r8
+ movs r3, #0
+ b .L3734
+.L3737:
+ ldr r2, [sp, #40]
+ adds r6, r6, #1
+ cmp r2, r6
+ bne .L3739
+ ldr r3, [sp, #20]
+ adds r3, r3, #1
+ str r3, [sp, #20]
+ b .L3726
+.L3745:
+ mov r0, #-1
+ b .L3718
+.L3769:
+ .align 2
+.L3768:
+ .word 1446522928
+ .word .LANCHOR4
.fnend
.size write_idblock, .-write_idblock
.align 1
.global write_loader_lba
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type write_loader_lba, %function
write_loader_lba:
.fnstart
@ args = 0, pretend = 0, frame = 40
@ frame_needed = 0, uses_anonymous_args = 0
cmp r0, #64
- 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}
mov r5, r0
- .pad #52
- sub sp, sp, #52
+ .pad #48
+ sub sp, sp, #48
mov r6, r1
mov r8, r2
- ldr r4, .L3925
- bne .L3904
+ ldr r4, .L3793
+ bne .L3771
ldr r2, [r2]
- ldr r3, .L3925+4
+ ldr r3, .L3793+4
cmp r2, r3
- bne .L3904
- mov r0, #256000
+ bne .L3771
movs r3, #1
- strb r3, [r4, #1012]
+ mov r0, #256000
+ strb r3, [r4, #1516]
bl ftl_malloc
- movs r1, #0
mov r2, #256000
- str r0, [r4, #1016]
+ movs r1, #0
+ str r0, [r4, #1520]
bl ftl_memset
- str r5, [r4, #1020]
-.L3904:
+ str r5, [r4, #1524]
+.L3771:
str r6, [sp]
mov r3, r5
- ldr r0, .L3925+8
- ldr r1, [r4, #1016]
ldr r2, [r8]
+ ldr r1, [r4, #1520]
+ ldr r0, .L3793+8
bl printk
- ldrb r3, [r4, #1012] @ zero_extendqisi2
- ldr r9, .L3925
+ ldrb r3, [r4, #1516] @ zero_extendqisi2
cmp r3, #0
- beq .L3903
+ beq .L3770
sub r0, r5, #64
- ldr r7, [r9, #1016]
+ ldr r7, [r4, #1520]
cmp r0, #500
- bcs .L3906
+ bcs .L3773
rsb r2, r5, #564
- add r0, r7, r0, lsl #9
- cmp r2, r6
mov r1, r8
+ cmp r2, r6
+ add r0, r7, r0, lsl #9
it cs
movcs r2, r6
lsls r2, r2, #9
bl ftl_memcpy
- b .L3907
-.L3906:
- cmp r5, #564
- bcs .L3915
-.L3907:
- ldr r3, [r4, #1020]
- cmp r3, r5
- beq .L3913
- ldr r2, .L3925
+.L3774:
+ ldr r3, [r4, #1524]
+ cmp r5, r3
+ beq .L3783
movs r3, #0
+ strb r3, [r4, #1516]
mov r8, r3
- strb r3, [r2, #1012]
- cbz r7, .L3914
+ cbz r7, .L3784
mov r0, r7
bl ftl_free
-.L3914:
- str r8, [r4, #1016]
-.L3913:
- add r5, r5, r6
- str r5, [r4, #1020]
- b .L3903
-.L3915:
- ldr r3, .L3925+12
- ldr r0, [r9, #1020]
- ldr r3, [r3, #44]
+.L3784:
+ str r8, [r4, #1520]
+ b .L3783
+.L3773:
+ cmp r5, #564
+ bcc .L3774
+ ldr r3, .L3793+12
+ ldr r0, [r4, #1524]
+ ldr r3, [r3, #48]
subs r0, r0, #64
cmp r0, #500
+ ldrb r3, [r3, #9] @ zero_extendqisi2
it cs
movcs r0, #500
- ldrb r3, [r3, #9] @ zero_extendqisi2
cmp r3, #4
- beq .L3916
+ beq .L3775
movs r3, #2
str r3, [sp, #8]
movs r3, #3
@@ -24199,50 +24498,52 @@
str r3, [sp, #20]
movs r3, #6
str r3, [sp, #24]
- b .L3909
-.L3916:
- movs r3, #0
-.L3908:
- add r1, sp, #8
- lsls r2, r3, #1
- cmp r0, #256
- it ls
- movls r2, r3
- str r2, [r1, r3, lsl #2]
- adds r3, r3, #1
- cmp r3, #5
- bne .L3908
-.L3909:
+.L3776:
movw r3, #63872
-.L3912:
+.L3782:
ldr r2, [r7, r3, lsl #2]
- cbz r2, .L3910
+ cbz r2, .L3780
adds r3, r3, #128
lsls r0, r3, #2
- b .L3911
-.L3910:
- subs r3, r3, #1
- cmp r3, #4096
- bne .L3912
- lsls r0, r0, #9
-.L3911:
+.L3781:
mov r1, r7
add r2, sp, #8
- bl write_idblock
- ldr r0, [r4, #1016]
movs r7, #0
- strb r7, [r4, #1012]
+ bl write_idblock
+ ldr r0, [r4, #1520]
+ strb r7, [r4, #1516]
bl ftl_free
- str r7, [r4, #1016]
- b .L3913
-.L3903:
- add sp, sp, #52
+ str r7, [r4, #1520]
+.L3783:
+ add r5, r5, r6
+ str r5, [r4, #1524]
+.L3770:
+ add sp, sp, #48
@ sp needed
- pop {r4, r5, r6, r7, r8, r9, pc}
-.L3926:
+ pop {r4, r5, r6, r7, r8, pc}
+.L3775:
+ movs r2, #0
+ add r3, sp, #8
+.L3779:
+ cmp r0, #256
+ itet hi
+ lslhi r1, r2, #1
+ strls r2, [r3, r2, lsl #2]
+ strhi r1, [r3, r2, lsl #2]
+ adds r2, r2, #1
+ cmp r2, #5
+ bne .L3779
+ b .L3776
+.L3780:
+ subs r3, r3, #1
+ cmp r3, #4096
+ bne .L3782
+ lsls r0, r0, #9
+ b .L3781
+.L3794:
.align 2
-.L3925:
- .word .LANCHOR5
+.L3793:
+ .word .LANCHOR4
.word -52655045
.word .LC185
.word .LANCHOR0
@@ -24250,8 +24551,10 @@
.size write_loader_lba, .-write_loader_lba
.align 1
.global FtlWrite
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type FtlWrite, %function
FtlWrite:
.fnstart
@@ -24259,534 +24562,526 @@
@ frame_needed = 0, uses_anonymous_args = 0
push {r4, r5, r6, r7, r8, lr}
.save {r4, r5, r6, r7, r8, lr}
- mov r5, r3
+ mov r7, r3
sub r3, r1, #64
- mov r7, r0
+ mov r5, r0
cmp r3, #1984
mov r4, r1
mov r6, r2
- bcs .L3928
- cbnz r0, .L3928
- mov r0, r1
- mov r1, r2
- mov r2, r5
+ bcs .L3796
+ cbnz r0, .L3796
+ mov r2, r7
+ mov r1, r6
+ mov r0, r4
bl write_loader_lba
-.L3928:
- mov r0, r7
- mov r1, r4
+.L3796:
+ mov r3, r7
mov r2, r6
- mov r3, r5
+ mov r1, r4
+ mov r0, r5
pop {r4, r5, r6, r7, r8, lr}
b ftl_write
.fnend
.size FtlWrite, .-FtlWrite
.align 1
.global rknand_sys_storage_ioctl
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type rknand_sys_storage_ioctl, %function
rknand_sys_storage_ioctl:
.fnstart
@ args = 0, pretend = 0, frame = 520
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L3988
+ ldr r3, .L3856
push {r4, r5, r6, r7, lr}
.save {r4, r5, r6, r7, lr}
- cmp r1, r3
+ mov r4, r1
.pad #524
sub sp, sp, #524
- mov r4, r1
mov r5, r2
- beq .L3931
- bhi .L3932
+ cmp r1, r3
+ beq .L3799
+ bhi .L3800
subw r3, r3, #2086
cmp r1, r3
- beq .L3933
- bhi .L3934
+ beq .L3801
+ bhi .L3802
subs r3, r3, #238
cmp r1, r3
- beq .L3935
+ beq .L3803
adds r3, r3, #237
cmp r1, r3
- beq .L3936
- b .L3966
-.L3934:
- ldr r3, .L3988+4
+ beq .L3804
+.L3834:
+ mvn r4, #21
+ b .L3797
+.L3802:
+ ldr r3, .L3856+4
cmp r1, r3
- beq .L3937
+ beq .L3805
adds r3, r3, #1
cmp r1, r3
- beq .L3938
+ beq .L3806
subs r3, r3, #124
cmp r1, r3
- bne .L3966
- b .L3986
-.L3932:
- ldr r3, .L3988+8
- cmp r1, r3
- mov r6, r3
- beq .L3940
- bhi .L3941
- subw r3, r3, #2526
- cmp r1, r3
- beq .L3931
- adds r3, r3, #10
- cmp r1, r3
- beq .L3931
- b .L3966
-.L3941:
- ldr r3, .L3988+12
- cmp r1, r3
- beq .L3940
- bcc .L3942
- adds r3, r3, #1
- cmp r1, r3
- beq .L3942
- b .L3966
-.L3936:
- ldr r0, .L3988+16
+ bne .L3834
+ ldr r0, .L3856+8
bl printk
+ mov r2, #520
mov r1, r5
- mov r2, #520
- mov r0, sp
- bl rk_copy_from_user
- cbz r0, .L3943
-.L3949:
- ldr r0, .L3988+20
- bl printk
- b .L3983
-.L3943:
- ldr r2, [sp]
- ldr r3, .L3988+24
- cmp r2, r3
- beq .L3944
-.L3946:
- mov r4, #-1
- b .L3945
-.L3944:
- ldr r3, [sp, #4]
- cmp r3, #512
- bhi .L3946
- ldr r4, .L3988+28
- mov r2, #512
- mov r0, sp
- ldr r1, [r4, #1024]
- bl memcpy
- ldr r2, [r4, #1028]
- ldr r3, .L3988+32
- cmp r2, r3
- beq .L3947
- movs r1, #0
- add r0, sp, #64
- movs r2, #128
- str r1, [sp, #8]
- str r1, [sp, #12]
- bl memset
-.L3947:
- movs r1, #0
- add r0, sp, #256
- mov r2, #256
- str r1, [sp, #16]
- bl memset
-.L3978:
- mov r0, r5
- mov r1, sp
- mov r2, #520
- bl rk_copy_to_user
- cmp r0, #0
- bne .L3983
- b .L3982
-.L3933:
- ldr r0, .L3988+36
- bl printk
- mov r1, r5
- mov r2, #520
mov r0, sp
bl rk_copy_from_user
cmp r0, #0
- bne .L3949
+ bne .L3817
ldr r2, [sp]
- ldr r3, .L3988+24
+ ldr r3, .L3856+12
cmp r2, r3
- bne .L3946
- ldr r3, [sp, #4]
- cmp r3, #512
- bhi .L3946
- ldr r2, .L3988+28
- ldr r3, .L3988+32
- ldr r1, [r2, #1028]
- cmp r1, r3
- bne .L3967
- ldr r3, [sp, #12]
- subs r1, r3, #1
- cmp r1, #127
- bhi .L3968
- ldr r4, [r2, #1024]
- add r1, sp, #64
- add r0, r4, #64
- str r3, [r4, #12]
- ldr r2, [sp, #12]
- bl memcpy
- movs r0, #1
- mov r1, r4
- b .L3981
-.L3938:
- ldr r0, .L3988+40
- bl printk
- mov r1, r5
- mov r2, #520
- mov r0, sp
- bl rk_copy_from_user
- cmp r0, #0
- bne .L3949
- ldr r2, [sp]
- ldr r3, .L3988+44
- cmp r2, r3
- bne .L3946
- ldr r3, [sp, #4]
- cmp r3, #512
- bhi .L3946
- ldr r5, .L3988+28
- ldr r3, [r5, #1032]
- cbnz r3, .L3950
-.L3953:
- movs r0, #0
- b .L3930
-.L3950:
- ldr r3, [r5, #1036]
- ldr r2, .L3988+48
- ldr r1, [r3]
- cmp r1, r2
- beq .L3951
- str r2, [r3]
- mov r2, #504
- ldr r3, .L3988+28
- ldr r3, [r3, #1036]
- str r2, [r3, #4]
- movs r2, #0
- str r2, [r3, #8]
- str r2, [r3, #12]
-.L3951:
- ldr r1, [r5, #1036]
- movs r4, #0
- mov r0, r4
- str r4, [r1, #16]
- bl StorageSysDataStore
- ldr r3, [r5, #1024]
- ldr r2, .L3988+24
- ldr r1, [r3]
- cmp r1, r2
- it ne
- strne r2, [r3]
- ldr r6, [r5, #1024]
- itt ne
- movne r2, #504
- ldrne r3, .L3988+28
- add r0, r6, #64
- itt ne
- ldrne r3, [r3, #1024]
- strne r4, [r3, #8]
- mov r4, #0
- it ne
- strne r2, [r3, #4]
- movs r2, #128
- mov r1, r4
- str r4, [r6, #12]
- bl memset
- movs r0, #1
- mov r1, r6
- bl StorageSysDataStore
- str r4, [r5, #1032]
- str r4, [r5, #1028]
- b .L3945
-.L3937:
- ldr r0, .L3988+52
- bl printk
- mov r1, r5
- mov r2, #520
- mov r0, sp
- bl rk_copy_from_user
- cmp r0, #0
- bne .L3949
- ldr r2, [sp]
- ldr r3, .L3988+56
- cmp r2, r3
- bne .L3946
- ldr r3, [sp, #4]
- cmp r3, #512
- bhi .L3946
- ldr r5, .L3988+28
- ldr r3, [r5, #1032]
- cmp r3, #1
- beq .L3953
- ldr r2, [r5, #1036]
- ldr r3, .L3988+48
- ldr r1, [r2]
- cmp r1, r3
- beq .L3954
- str r3, [r2]
- mov r2, #504
- ldr r3, [r5, #1036]
- str r2, [r3, #4]
- movs r2, #0
- str r2, [r3, #8]
- str r2, [r3, #12]
-.L3954:
- ldr r1, [r5, #1036]
- movs r3, #1
- movs r0, #0
- str r3, [r1, #16]
- bl StorageSysDataStore
- ldr r3, [r5, #1024]
- ldr r2, .L3988+24
- ldr r1, [r3]
- cmp r1, r2
- beq .L3955
- str r2, [r3]
- mov r2, #504
- ldr r3, .L3988+28
- ldr r3, [r3, #1024]
- str r2, [r3, #4]
- movs r2, #0
- str r2, [r3, #8]
-.L3955:
- ldr r6, [r5, #1024]
- movs r4, #0
- movs r2, #128
- mov r1, r4
- add r0, r6, #64
- str r4, [r6, #12]
- bl memset
- movs r0, #1
- mov r1, r6
- bl StorageSysDataStore
- movs r3, #1
- str r3, [r5, #1032]
- b .L3945
-.L3986:
- ldr r0, .L3988+60
- bl printk
- mov r1, r5
- mov r2, #520
- mov r0, sp
- bl rk_copy_from_user
- cmp r0, #0
- bne .L3949
- ldr r2, [sp]
- ldr r3, .L3988+64
- cmp r2, r3
- bne .L3946
+ bne .L3814
ldr r2, [sp, #4]
cmp r2, #512
- bhi .L3946
+ bhi .L3814
+ ldr r1, .L3856+16
+.L3854:
add r0, sp, #8
- ldr r1, .L3988+68
- b .L3984
-.L3931:
- ldr r0, .L3988+72
- cmp r4, r0
- mov r7, r0
- bne .L3957
- ldr r0, .L3988+76
- b .L3980
-.L3989:
- .align 2
-.L3988:
- .word 1074031656
- .word 1074029694
- .word 1074034192
- .word 1074034194
- .word .LC186
- .word .LC187
- .word 1263358532
- .word .LANCHOR5
- .word -1067903959
- .word .LC188
- .word .LC189
- .word 1112753220
- .word 1146313043
- .word .LC190
- .word 1112755781
- .word .LC191
- .word 1094995539
- .word .LANCHOR5+1040
- .word 1074031666
- .word .LC192
-.L3957:
- ldr r3, .L3990
- cmp r4, r3
- ite eq
- ldreq r0, .L3990+4
- ldrne r0, .L3990+8
-.L3980:
+ bl memcpy
+ b .L3848
+.L3800:
+ ldr r6, .L3856+20
+ cmp r1, r6
+ beq .L3808
+ bhi .L3809
+ ldr r3, .L3856+24
+ cmp r1, r3
+ beq .L3799
+ adds r3, r3, #10
+ cmp r1, r3
+ bne .L3834
+.L3799:
+ ldr r7, .L3856+24
+ cmp r4, r7
+ bne .L3824
+ ldr r0, .L3856+28
+.L3850:
bl printk
- mov r1, r5
mov r2, #520
+ mov r1, r5
mov r0, sp
bl rk_copy_from_user
cmp r0, #0
- bne .L3949
+ bne .L3817
ldr r2, [sp]
- ldr r3, .L3990+12
+ ldr r3, .L3856+32
cmp r2, r3
- bne .L3983
- ldr r3, .L3990
- ldr r6, .L3990+16
+ bne .L3853
+ ldr r3, .L3856+36
+ ldr r6, .L3856+40
cmp r4, r3
- bne .L3960
- ldr r3, [r6, #1024]
- mov r0, r5
- mov r1, sp
+ bne .L3827
+ ldr r3, [r6, #1528]
movs r2, #16
+ mov r1, sp
+ mov r0, r5
ldr r3, [r3, #20]
str r3, [sp, #4]
strb r3, [sp, #8]
bl rk_copy_to_user
cmp r0, #0
- beq .L3930
- b .L3983
-.L3960:
- ldr r3, [r6, #1552]
- cmp r3, #10
- bhi .L3983
- ldr r1, [r6, #1024]
- ldr r3, [sp, #4]
- ldr r2, [r1, #24]
- cmp r2, r3
- beq .L3961
- cbz r2, .L3961
- mov r1, r3
- ldr r0, .L3990+20
- bl printk
- ldr r3, [r6, #1552]
- adds r3, r3, #1
- str r3, [r6, #1552]
-.L3983:
- mvn r0, #13
- b .L3930
-.L3961:
- movs r2, #0
- cmp r4, r7
- str r2, [r6, #1552]
- mov r0, #1
- itet eq
- moveq r3, r2
- movne r2, #1
- moveq r2, r3
- str r3, [r1, #24]
- str r2, [r1, #20]
- bl StorageSysDataStore
- adds r0, r0, #1
- bne .L3982
- b .L3987
-.L3940:
- ldr r0, .L3990+24
- bl printk
- mov r1, r5
- mov r2, #520
- mov r0, sp
- bl rk_copy_from_user
- cmp r0, #0
- bne .L3949
- ldr r2, [sp]
- ldr r3, .L3990+28
- cmp r2, r3
- bne .L3946
- ldr r2, [sp, #4]
- cmp r2, #504
- bhi .L3946
- ldr r3, .L3990+16
- cmp r4, r6
- add r0, sp, #8
- ite eq
- ldreq r1, [r3, #1556]
- ldrne r1, [r3, #1560]
- adds r1, r1, #8
-.L3984:
- bl memcpy
- b .L3978
-.L3942:
- ldr r0, .L3990+32
- bl printk
- mov r1, r5
- mov r2, #520
- mov r0, sp
- bl rk_copy_from_user
- cmp r0, #0
- bne .L3949
- ldr r2, [sp]
- ldr r3, .L3990+28
- cmp r2, r3
- bne .L3946
- ldr r2, [sp, #4]
- cmp r2, #504
- bhi .L3946
- ldr r3, .L3990+36
- adds r2, r2, #8
- cmp r4, r3
- ldr r4, .L3990+16
- bne .L3965
- mov r1, sp
- ldr r0, [r4, #1556]
- bl memcpy
- movs r0, #2
- ldr r1, [r4, #1556]
- b .L3981
-.L3965:
- mov r1, sp
- ldr r0, [r4, #1560]
- bl memcpy
- ldr r1, [r4, #1560]
- movs r0, #3
-.L3981:
- bl StorageSysDataStore
- mov r4, r0
- b .L3945
-.L3935:
- bl rknand_dev_flush
-.L3982:
+ bne .L3853
+.L3818:
movs r4, #0
- b .L3945
-.L3987:
- mvn r4, #1
-.L3945:
- ldr r0, .L3990+40
- mov r1, r4
- bl printk
+.L3797:
mov r0, r4
- b .L3930
-.L3966:
- mvn r0, #21
- b .L3930
-.L3967:
- mvn r0, #1
- b .L3930
-.L3968:
- mvn r0, #2
-.L3930:
add sp, sp, #524
@ sp needed
pop {r4, r5, r6, r7, pc}
-.L3991:
+.L3809:
+ ldr r3, .L3856+44
+ cmp r1, r3
+ beq .L3808
+ bcc .L3810
+ adds r3, r3, #1
+ cmp r1, r3
+ bne .L3834
+.L3810:
+ ldr r0, .L3856+48
+ bl printk
+ mov r2, #520
+ mov r1, r5
+ mov r0, sp
+ bl rk_copy_from_user
+ cbnz r0, .L3817
+ ldr r2, [sp]
+ ldr r3, .L3856+52
+ cmp r2, r3
+ bne .L3814
+ ldr r2, [sp, #4]
+ cmp r2, #504
+ bhi .L3814
+ ldr r3, .L3856+56
+ mov r1, sp
+ adds r2, r2, #8
+ cmp r4, r3
+ ldr r4, .L3856+40
+ bne .L3833
+ ldr r0, [r4, #2060]
+ bl memcpy
+ ldr r1, [r4, #2060]
+ movs r0, #2
+ b .L3851
+.L3804:
+ ldr r0, .L3856+60
+ bl printk
+ mov r2, #520
+ mov r1, r5
+ mov r0, sp
+ bl rk_copy_from_user
+ cbz r0, .L3811
+.L3817:
+ ldr r0, .L3856+64
+ bl printk
+.L3853:
+ mvn r4, #13
+ b .L3797
+.L3811:
+ ldr r2, [sp]
+ ldr r3, .L3856+68
+ cmp r2, r3
+ beq .L3812
+.L3814:
+ mov r4, #-1
+.L3813:
+ mov r1, r4
+ ldr r0, .L3856+72
+ bl printk
+ b .L3797
+.L3812:
+ ldr r3, [sp, #4]
+ cmp r3, #512
+ bhi .L3814
+ ldr r4, .L3856+40
+ mov r2, #512
+ mov r0, sp
+ ldr r1, [r4, #1528]
+ bl memcpy
+ ldr r2, [r4, #1532]
+ ldr r3, .L3856+76
+ cmp r2, r3
+ beq .L3815
+ movs r1, #0
+ movs r2, #128
+ add r0, sp, #64
+ str r1, [sp, #8]
+ str r1, [sp, #12]
+ bl memset
+.L3815:
+ mov r2, #256
+ movs r1, #0
+ add r0, sp, r2
+ str r1, [sp, #16]
+ bl memset
+.L3848:
+ mov r2, #520
+ mov r1, sp
+ mov r0, r5
+ bl rk_copy_to_user
+ cmp r0, #0
+ bne .L3853
+.L3852:
+ movs r4, #0
+ b .L3813
+.L3801:
+ ldr r0, .L3856+80
+ bl printk
+ mov r2, #520
+ mov r1, r5
+ mov r0, sp
+ bl rk_copy_from_user
+ cmp r0, #0
+ bne .L3817
+ ldr r2, [sp]
+ ldr r3, .L3856+68
+ cmp r2, r3
+ bne .L3814
+ ldr r3, [sp, #4]
+ cmp r3, #512
+ bhi .L3814
+ ldr r2, .L3856+40
+ ldr r3, .L3856+76
+ ldr r1, [r2, #1532]
+ cmp r1, r3
+ bne .L3835
+ ldr r3, [sp, #12]
+ subs r1, r3, #1
+ cmp r1, #127
+ bhi .L3836
+ ldr r4, [r2, #1528]
+ add r1, sp, #64
+ str r3, [r4, #12]
+ add r0, r4, #64
+ ldr r2, [sp, #12]
+ bl memcpy
+ mov r1, r4
+ movs r0, #1
+.L3851:
+ bl StorageSysDataStore
+ mov r4, r0
+ b .L3813
+.L3806:
+ ldr r0, .L3856+84
+ bl printk
+ mov r2, #520
+ mov r1, r5
+ mov r0, sp
+ bl rk_copy_from_user
+ cmp r0, #0
+ bne .L3817
+ ldr r2, [sp]
+ ldr r3, .L3856+88
+ cmp r2, r3
+ bne .L3814
+ ldr r3, [sp, #4]
+ cmp r3, #512
+ bhi .L3814
+ ldr r5, .L3856+40
+ ldr r3, [r5, #1536]
+ cmp r3, #0
+ beq .L3818
+ ldr r3, [r5, #1540]
+ ldr r2, .L3856+92
+ ldr r1, [r3]
+ cmp r1, r2
+ beq .L3819
+ str r2, [r3]
+ mov r2, #504
+ ldr r3, [r5, #1540]
+ str r2, [r3, #4]
+ movs r2, #0
+ str r2, [r3, #8]
+ str r2, [r3, #12]
+.L3819:
+ ldr r1, [r5, #1540]
+ movs r4, #0
+ mov r0, r4
+ str r4, [r1, #16]
+ bl StorageSysDataStore
+ ldr r3, [r5, #1528]
+ ldr r2, .L3856+68
+ ldr r1, [r3]
+ cmp r1, r2
+ beq .L3820
+ str r2, [r3]
+ mov r2, #504
+ ldr r3, [r5, #1528]
+ str r2, [r3, #4]
+ str r4, [r3, #8]
+.L3820:
+ ldr r6, [r5, #1528]
+ movs r4, #0
+ movs r2, #128
+ mov r1, r4
+ str r4, [r6, #12]
+ add r0, r6, #64
+ bl memset
+ mov r1, r6
+ movs r0, #1
+ bl StorageSysDataStore
+ str r4, [r5, #1536]
+ str r4, [r5, #1532]
+ b .L3813
+.L3857:
.align 2
-.L3990:
+.L3856:
+ .word 1074031656
+ .word 1074029694
+ .word .LC191
+ .word 1094995539
+ .word .LANCHOR4+1544
+ .word 1074034192
+ .word 1074031666
+ .word .LC192
+ .word 1280262987
+ .word 1074031676
+ .word .LANCHOR4
+ .word 1074034194
+ .word .LC197
+ .word 1145980246
+ .word 1074034193
+ .word .LC186
+ .word .LC187
+ .word 1263358532
+ .word .LC198
+ .word -1067903959
+ .word .LC188
+ .word .LC189
+ .word 1112753220
+ .word 1146313043
+.L3805:
+ ldr r0, .L3858
+ bl printk
+ mov r2, #520
+ mov r1, r5
+ mov r0, sp
+ bl rk_copy_from_user
+ cmp r0, #0
+ bne .L3817
+ ldr r2, [sp]
+ ldr r3, .L3858+4
+ cmp r2, r3
+ bne .L3814
+ ldr r3, [sp, #4]
+ cmp r3, #512
+ bhi .L3814
+ ldr r5, .L3858+8
+ ldr r3, [r5, #1536]
+ cmp r3, #1
+ beq .L3818
+ ldr r2, [r5, #1540]
+ ldr r3, .L3858+12
+ ldr r1, [r2]
+ cmp r1, r3
+ beq .L3821
+ str r3, [r2]
+ mov r2, #504
+ ldr r3, [r5, #1540]
+ str r2, [r3, #4]
+ movs r2, #0
+ str r2, [r3, #8]
+ str r2, [r3, #12]
+.L3821:
+ ldr r1, [r5, #1540]
+ movs r3, #1
+ movs r0, #0
+ str r3, [r1, #16]
+ bl StorageSysDataStore
+ ldr r3, [r5, #1528]
+ ldr r2, .L3858+16
+ ldr r1, [r3]
+ cmp r1, r2
+ beq .L3822
+ str r2, [r3]
+ mov r2, #504
+ ldr r3, [r5, #1528]
+ str r2, [r3, #4]
+ movs r2, #0
+ str r2, [r3, #8]
+.L3822:
+ ldr r6, [r5, #1528]
+ movs r4, #0
+ movs r2, #128
+ mov r1, r4
+ str r4, [r6, #12]
+ add r0, r6, #64
+ bl memset
+ mov r1, r6
+ movs r0, #1
+ bl StorageSysDataStore
+ movs r3, #1
+ str r3, [r5, #1536]
+ b .L3813
+.L3824:
+ ldr r3, .L3858+20
+ cmp r4, r3
+ ite eq
+ ldreq r0, .L3858+24
+ ldrne r0, .L3858+28
+ b .L3850
+.L3827:
+ ldr r3, [r6, #2056]
+ cmp r3, #10
+ bhi .L3853
+ ldr r3, [r6, #1528]
+ ldr r1, [sp, #4]
+ ldr r2, [r3, #24]
+ cmp r2, r1
+ beq .L3828
+ cbz r2, .L3828
+ ldr r0, .L3858+32
+ bl printk
+ ldr r3, [r6, #2056]
+ adds r3, r3, #1
+ str r3, [r6, #2056]
+ b .L3853
+.L3828:
+ cmp r4, r7
+ mov r2, #0
+ str r2, [r6, #2056]
+ itt ne
+ movne r2, #1
+ strne r1, [r3, #24]
+ mov r0, #1
+ it eq
+ streq r2, [r3, #20]
+ mov r1, r3
+ ite eq
+ streq r2, [r3, #24]
+ strne r2, [r3, #20]
+ bl StorageSysDataStore
+ adds r0, r0, #1
+ bne .L3852
+ mvn r4, #1
+ b .L3813
+.L3808:
+ ldr r0, .L3858+36
+ bl printk
+ mov r2, #520
+ mov r1, r5
+ mov r0, sp
+ bl rk_copy_from_user
+ cmp r0, #0
+ bne .L3817
+ ldr r2, [sp]
+ ldr r3, .L3858+40
+ cmp r2, r3
+ bne .L3814
+ ldr r2, [sp, #4]
+ cmp r2, #504
+ bhi .L3814
+ ldr r3, .L3858+8
+ cmp r4, r6
+ ite eq
+ ldreq r1, [r3, #2060]
+ ldrne r1, [r3, #2064]
+ adds r1, r1, #8
+ b .L3854
+.L3833:
+ ldr r0, [r4, #2064]
+ bl memcpy
+ ldr r1, [r4, #2064]
+ movs r0, #3
+ b .L3851
+.L3803:
+ bl rknand_dev_flush
+ b .L3852
+.L3835:
+ mvn r4, #1
+ b .L3797
+.L3836:
+ mvn r4, #2
+ b .L3797
+.L3859:
+ .align 2
+.L3858:
+ .word .LC190
+ .word 1112755781
+ .word .LANCHOR4
+ .word 1146313043
+ .word 1263358532
.word 1074031676
.word .LC193
.word .LC194
- .word 1280262987
- .word .LANCHOR5
.word .LC195
.word .LC196
.word 1145980246
- .word .LC197
- .word 1074034193
- .word .LC198
.fnend
.size rknand_sys_storage_ioctl, .-rknand_sys_storage_ioctl
.align 1
.global rk_ftl_storage_sys_init
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type rk_ftl_storage_sys_init, %function
rk_ftl_storage_sys_init:
.fnstart
@@ -24794,67 +25089,68 @@
@ frame_needed = 0, uses_anonymous_args = 0
push {r3, r4, r5, r6, r7, lr}
.save {r3, r4, r5, r6, r7, lr}
- mov r2, #512
- ldr r4, .L4001
mov r3, #-1
+ ldr r4, .L3869
movs r5, #0
- add r0, r4, #1040
- ldr r1, [r4, #996]
- str r3, [r4, #1020]
+ mov r2, #512
+ ldr r1, [r4, #1500]
+ add r0, r4, #1544
+ str r3, [r4, #1524]
+ strb r5, [r4, #1516]
add r3, r1, #512
- str r3, [r4, #1024]
- str r1, [r4, #1036]
+ str r1, [r4, #1540]
+ str r3, [r4, #1528]
add r3, r1, #1024
add r1, r1, #1536
- str r3, [r4, #1556]
- strb r5, [r4, #1012]
- str r5, [r4, #1016]
- str r5, [r4, #1564]
- str r1, [r4, #1560]
+ str r3, [r4, #2060]
+ str r5, [r4, #1520]
+ str r5, [r4, #2068]
+ str r1, [r4, #2064]
bl ftl_memcpy
- ldr r6, [r4, #1036]
- str r5, [r4, #1028]
- str r5, [r4, #1552]
- ldr r3, [r6, #16]
+ ldr r6, [r4, #1540]
+ str r5, [r4, #1532]
+ str r5, [r4, #2056]
ldr r7, [r6, #508]
- str r3, [r4, #1032]
- cbz r7, .L3993
- mov r0, r6
+ ldr r3, [r6, #16]
+ str r3, [r4, #1536]
+ cbz r7, .L3861
mov r1, #508
+ mov r0, r6
bl js_hash
cmp r7, r0
- beq .L3993
+ beq .L3861
str r5, [r6, #16]
- ldr r0, .L4001+4
- str r5, [r4, #1032]
+ ldr r0, .L3869+4
+ str r5, [r4, #1536]
bl printk
-.L3993:
- ldr r3, [r4, #1032]
- cbz r3, .L3994
- ldr r2, .L4001+8
- ldr r3, .L4001
- str r2, [r3, #1028]
-.L3994:
- ldr r1, [r4, #1556]
+.L3861:
+ ldr r3, [r4, #1536]
+ cbz r3, .L3862
+ ldr r3, .L3869+8
+ str r3, [r4, #1532]
+.L3862:
+ ldr r1, [r4, #2060]
movs r0, #2
bl StorageSysDataLoad
- ldr r1, [r4, #1560]
+ ldr r1, [r4, #2064]
movs r0, #3
bl StorageSysDataLoad
pop {r3, r4, r5, r6, r7, lr}
b rknand_sys_storage_init
-.L4002:
+.L3870:
.align 2
-.L4001:
- .word .LANCHOR5
+.L3869:
+ .word .LANCHOR4
.word .LC199
.word -1067903959
.fnend
.size rk_ftl_storage_sys_init, .-rk_ftl_storage_sys_init
.align 1
.global StorageSysDataDeInit
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type StorageSysDataDeInit, %function
StorageSysDataDeInit:
.fnstart
@@ -24867,104 +25163,104 @@
.size StorageSysDataDeInit, .-StorageSysDataDeInit
.align 1
.global rk_ftl_vendor_storage_init
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type rk_ftl_vendor_storage_init, %function
rk_ftl_vendor_storage_init:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- push {r4, r5, r6, r7, r8, r9, r10, lr}
- .save {r4, r5, r6, r7, r8, r9, r10, lr}
+ push {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
+ .save {r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
mov r0, #65536
+ ldr r6, .L3880
bl ftl_malloc
- ldr r6, .L4013
- str r0, [r6, #1568]
+ str r0, [r6, #2072]
cmp r0, #0
- beq .L4010
+ beq .L3878
+ ldr r10, .L3880+4
mov r8, #0
- ldr r9, .L4013+8
- mov r10, r6
+ ldr r9, .L3880+8
mov r4, r8
mov r7, r8
-.L4008:
- lsls r0, r7, #7
+.L3876:
+ ldr r2, [r6, #2072]
movs r1, #128
- ldr r2, [r6, #1568]
+ lsls r0, r7, #7
bl FlashBootVendorRead
cmp r0, #0
- bne .L4006
- ldr r3, [r10, #1568]
- ldr r0, .L4013+4
- add r2, r3, #65280
- adds r2, r2, #252
- ldr r1, [r3]
- ldr r3, [r3, #4]
- ldr r2, [r2]
+ bne .L3874
+ ldr r1, [r6, #2072]
+ movw fp, #65532
+ mov r0, r10
+ ldr r3, [r1, #4]
+ ldr r2, [r1, fp]
+ ldr r1, [r1]
bl printk
- ldr r5, [r10, #1568]
+ ldr r5, [r6, #2072]
ldr r3, [r5]
cmp r3, r9
- bne .L4007
- add r3, r5, #65280
+ bne .L3875
+ ldr r3, [r5, fp]
ldr r2, [r5, #4]
- adds r3, r3, #252
- ldr r3, [r3]
cmp r3, r2
- bne .L4007
- cmp r4, r3
- itt cc
- movcc r8, r7
- movcc r4, r3
-.L4007:
- cbnz r7, .L4012
- movs r7, #1
- b .L4008
-.L4012:
- cbz r4, .L4009
- lsl r0, r8, #7
- movs r1, #128
+ bne .L3875
+ cmp r3, r4
+ itt hi
+ movhi r8, r7
+ movhi r4, r3
+.L3875:
+ adds r7, r7, #1
+ cmp r7, #2
+ bne .L3876
+ cbz r4, .L3877
mov r2, r5
+ movs r1, #128
+ lsl r0, r8, #7
bl FlashBootVendorRead
- cbnz r0, .L4006
- pop {r4, r5, r6, r7, r8, r9, r10, pc}
-.L4009:
- mov r0, r5
- mov r1, r4
+ cbnz r0, .L3874
+ pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L3877:
mov r2, #65536
+ mov r1, r4
+ mov r0, r5
bl memset
- ldr r3, .L4013+8
- str r7, [r5, #4]
+ movs r3, #1
+ movw r2, #65532
+ str r3, [r5, #4]
mov r0, r4
- str r3, [r5]
- movw r3, #65532
- str r7, [r5, r3]
+ str r9, [r5]
+ str r3, [r5, r2]
movw r3, #64504
strh r4, [r5, #12] @ movhi
strh r3, [r5, #14] @ movhi
- pop {r4, r5, r6, r7, r8, r9, r10, pc}
-.L4006:
- ldr r0, [r6, #1568]
+ pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L3874:
+ ldr r0, [r6, #2072]
bl kfree
movs r3, #0
mov r0, #-1
- str r3, [r6, #1568]
- pop {r4, r5, r6, r7, r8, r9, r10, pc}
-.L4010:
+ str r3, [r6, #2072]
+ pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L3878:
mvn r0, #11
- pop {r4, r5, r6, r7, r8, r9, r10, pc}
-.L4014:
+ pop {r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
+.L3881:
.align 2
-.L4013:
- .word .LANCHOR5
+.L3880:
+ .word .LANCHOR4
.word .LC200
.word 1380668996
.fnend
.size rk_ftl_vendor_storage_init, .-rk_ftl_vendor_storage_init
.align 1
.global rk_ftl_vendor_read
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type rk_ftl_vendor_read, %function
rk_ftl_vendor_read:
.fnstart
@@ -24972,46 +25268,50 @@
@ frame_needed = 0, uses_anonymous_args = 0
push {r3, r4, r5, r6, r7, lr}
.save {r3, r4, r5, r6, r7, lr}
- ldr r3, .L4021
- ldr r5, [r3, #1568]
- cbz r5, .L4020
- ldrh r7, [r5, #10]
- movs r3, #0
-.L4017:
- cmp r3, r7
- bcs .L4020
- add r6, r5, r3, lsl #3
- ldrh r4, [r6, #16]
- cmp r4, r0
- bne .L4018
- ldrh r3, [r6, #20]
+ mov r7, r0
+ ldr r3, .L3888
mov r0, r1
- cmp r2, r3
+ ldr r5, [r3, #2072]
+ cbz r5, .L3887
+ ldrh r6, [r5, #10]
+ movs r3, #0
+.L3884:
+ cmp r3, r6
+ bcc .L3886
+.L3887:
+ mov r0, #-1
+ pop {r3, r4, r5, r6, r7, pc}
+.L3886:
+ add r1, r5, r3, lsl #3
+ ldrh r4, [r1, #16]
+ cmp r4, r7
+ bne .L3885
+ ldrh r4, [r1, #20]
+ ldrh r1, [r1, #18]
+ cmp r4, r2
it cs
- movcs r2, r3
- ldrh r3, [r6, #18]
- mov r4, r2
- add r3, r3, #1024
- adds r1, r5, r3
+ movcs r4, r2
+ add r1, r1, #1024
+ mov r2, r4
+ add r1, r1, r5
bl memcpy
mov r0, r4
pop {r3, r4, r5, r6, r7, pc}
-.L4018:
+.L3885:
adds r3, r3, #1
- b .L4017
-.L4020:
- mov r0, #-1
- pop {r3, r4, r5, r6, r7, pc}
-.L4022:
+ b .L3884
+.L3889:
.align 2
-.L4021:
- .word .LANCHOR5
+.L3888:
+ .word .LANCHOR4
.fnend
.size rk_ftl_vendor_read, .-rk_ftl_vendor_read
.align 1
.global rk_ftl_vendor_write
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type rk_ftl_vendor_write, %function
rk_ftl_vendor_write:
.fnstart
@@ -25019,119 +25319,89 @@
@ 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, r2
- ldr r2, .L4045
+ mov r8, r2
+ ldr r2, .L3910
.pad #28
sub sp, sp, #28
- mov ip, r0
mov r3, r1
- ldr r4, [r2, #1568]
+ ldr r4, [r2, #2072]
cmp r4, #0
- beq .L4038
- add r7, r9, #63
- ldrh r1, [r4, #8]
+ beq .L3905
ldrh r2, [r4, #10]
- bic r7, r7, #63
- movs r6, #0
+ add r6, r8, #63
+ ldrh r1, [r4, #8]
+ bic r6, r6, #63
+ movs r7, #0
str r1, [sp, #4]
-.L4025:
- cmp r6, r2
- bcs .L4043
- add r5, r4, r6, lsl #3
- ldrh r1, [r5, #16]
- cmp r1, ip
- bne .L4026
- ldrh r1, [r5, #20]
- add fp, r4, #1024
- adds r1, r1, #63
- bic r1, r1, #63
- str r1, [sp, #8]
- cmp r9, r1
- bls .L4027
+.L3892:
+ cmp r7, r2
+ bcc .L3900
ldrh r1, [r4, #14]
- cmp r1, r7
- bcc .L4038
- ldrh r8, [r5, #18]
- subs r2, r2, #1
- str r2, [sp, #12]
-.L4028:
- ldr r2, [sp, #12]
- adds r5, r5, #8
- cmp r6, r2
- bcs .L4044
- ldrh r2, [r5, #16]
- add r0, fp, r8
- ldrh r1, [r5, #18]
- adds r6, r6, #1
- strh r8, [r5, #10] @ movhi
- strh r2, [r5, #8] @ movhi
- add r1, r1, fp
- ldrh r2, [r5, #20]
- str r3, [sp, #20]
- add r10, r2, #63
- str ip, [sp, #16]
- bic r10, r10, #63
- strh r2, [r5, #12] @ movhi
- add r8, r8, r10
- mov r2, r10
- bl memcpy
- ldr r3, [sp, #20]
- ldr ip, [sp, #16]
- b .L4028
-.L4044:
- add r6, r4, r6, lsl #3
- uxth r8, r8
- add r0, fp, r8
- mov r1, r3
- strh r8, [r6, #18] @ movhi
- mov r2, r9
- strh ip, [r6, #16] @ movhi
- uxth r7, r7
- strh r9, [r6, #20] @ movhi
- add r8, r8, r7
- bl memcpy
- ldrh r5, [r4, #14]
- strh r8, [r4, #12] @ movhi
- ldr r3, [sp, #8]
- add r3, r3, r5
- subs r7, r3, r7
- strh r7, [r4, #14] @ movhi
- b .L4042
-.L4027:
- ldrh r0, [r5, #18]
- mov r1, r3
- mov r2, r9
- add r0, r0, fp
- bl memcpy
- strh r9, [r5, #20] @ movhi
- b .L4042
-.L4026:
- adds r6, r6, #1
- b .L4025
-.L4043:
- ldrh r1, [r4, #14]
- cmp r1, r7
- bcc .L4038
+ cmp r6, r1
+ bhi .L3905
add r2, r4, r2, lsl #3
- uxth r7, r7
- subs r1, r1, r7
- strh ip, [r2, #16] @ movhi
+ uxth r6, r6
+ strh r0, [r2, #16] @ movhi
ldrh r0, [r4, #12]
- strh r9, [r2, #20] @ movhi
+ strh r8, [r2, #20] @ movhi
strh r0, [r2, #18] @ movhi
- add r0, r0, r7
- strh r1, [r4, #14] @ movhi
- mov r1, r3
+ 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]
- mov r2, r9
+ mov r2, r8
add r0, r0, #1024
add r0, r0, r4
bl memcpy
ldrh r3, [r4, #10]
adds r3, r3, #1
strh r3, [r4, #10] @ movhi
-.L4042:
+ b .L3909
+.L3900:
+ add r5, r4, r7, lsl #3
+ ldrh r1, [r5, #16]
+ cmp r1, r0
+ str r1, [sp, #8]
+ bne .L3893
+ ldrh r1, [r5, #20]
+ add fp, r4, #1024
+ adds r1, r1, #63
+ bic r1, r1, #63
+ cmp r8, r1
+ str r1, [sp, #12]
+ bls .L3894
+ ldrh r1, [r4, #14]
+ cmp r6, r1
+ bhi .L3905
+ ldrh r10, [r5, #18]
+ subs r2, r2, #1
+ str r2, [sp, #16]
+.L3895:
+ ldr r2, [sp, #16]
+ adds r5, r5, #8
+ cmp r7, r2
+ bcc .L3896
+ 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
+ mov r2, r8
+ strh r5, [r7, #18] @ movhi
+ bl memcpy
+ uxth r3, r6
+ ldrh r6, [r4, #14]
+ add r5, r5, r3
+ subs r6, r6, r3
+ ldr r3, [sp, #12]
+ strh r5, [r4, #12] @ movhi
+ add r6, r6, r3
+ strh r6, [r4, #14] @ movhi
+.L3909:
ldr r3, [r4, #4]
movw r2, #65532
movs r1, #128
@@ -25150,23 +25420,54 @@
lsls r0, r3, #7
bl FlashBootVendorWrite
movs r0, #0
- b .L4024
-.L4038:
- mov r0, #-1
-.L4024:
+.L3890:
add sp, sp, #28
@ sp needed
pop {r4, r5, r6, r7, r8, r9, r10, fp, pc}
-.L4046:
+.L3896:
+ ldrh r9, [r5, #20]
+ add r0, fp, r10
+ 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
+ strh r2, [r5, #8] @ movhi
+ strh r10, [r5, #10] @ movhi
+ mov r2, r9
+ add r1, r1, fp
+ str r3, [sp, #20]
+ add r10, r10, r9
+ bl memcpy
+ ldr r3, [sp, #20]
+ b .L3895
+.L3894:
+ ldrh r0, [r5, #18]
+ mov r2, r8
+ mov r1, r3
+ add r0, r0, fp
+ bl memcpy
+ strh r8, [r5, #20] @ movhi
+ b .L3909
+.L3893:
+ adds r7, r7, #1
+ b .L3892
+.L3905:
+ mov r0, #-1
+ b .L3890
+.L3911:
.align 2
-.L4045:
- .word .LANCHOR5
+.L3910:
+ .word .LANCHOR4
.fnend
.size rk_ftl_vendor_write, .-rk_ftl_vendor_write
.align 1
.global rk_ftl_vendor_storage_ioctl
+ .syntax unified
.thumb
.thumb_func
+ .fpu softvfp
.type rk_ftl_vendor_storage_ioctl, %function
rk_ftl_vendor_storage_ioctl:
.fnstart
@@ -25180,83 +25481,83 @@
bl ftl_malloc
mov r4, r0
cmp r0, #0
- beq .L4056
- ldr r3, .L4063
+ beq .L3920
+ ldr r3, .L3927
cmp r6, r3
- beq .L4050
+ beq .L3915
adds r3, r3, #1
cmp r6, r3
- beq .L4051
- b .L4062
-.L4050:
- mov r1, r5
+ beq .L3916
+.L3926:
+ mvn r5, #13
+ b .L3914
+.L3915:
movs r2, #8
+ mov r1, r5
bl rk_copy_from_user
cmp r0, #0
- bne .L4062
+ bne .L3926
ldr r2, [r4]
- ldr r3, .L4063+4
+ ldr r3, .L3927+4
cmp r2, r3
- beq .L4053
-.L4054:
+ beq .L3918
+.L3919:
mov r5, #-1
- b .L4049
-.L4053:
- ldrh r0, [r4, #4]
- add r1, r4, #8
+.L3914:
+ mov r0, r4
+ bl kfree
+.L3912:
+ mov r0, r5
+ pop {r4, r5, r6, pc}
+.L3918:
ldrh r2, [r4, #6]
+ add r1, r4, #8
+ ldrh r0, [r4, #4]
bl rk_ftl_vendor_read
adds r3, r0, #1
- beq .L4054
+ beq .L3919
uxth r2, r0
strh r0, [r4, #6] @ movhi
mov r1, r4
- mov r0, r5
adds r2, r2, #8
+ mov r0, r5
bl rk_copy_to_user
cmp r0, #0
- ite eq
- moveq r5, #0
- mvnne r5, #13
- b .L4049
-.L4051:
- mov r1, r5
+ bne .L3926
+.L3922:
+ mov r5, r0
+ b .L3914
+.L3916:
movs r2, #8
+ mov r1, r5
bl rk_copy_from_user
- cbnz r0, .L4062
+ cmp r0, #0
+ bne .L3926
ldr r2, [r4]
- ldr r3, .L4063+4
+ ldr r3, .L3927+4
cmp r2, r3
- bne .L4054
+ bne .L3919
ldrh r2, [r4, #6]
movw r3, #4087
cmp r2, r3
- bhi .L4054
- mov r0, r4
- mov r1, r5
+ bhi .L3919
adds r2, r2, #8
- bl rk_copy_from_user
- cbnz r0, .L4062
- ldrh r0, [r4, #4]
- add r1, r4, #8
- ldrh r2, [r4, #6]
- bl rk_ftl_vendor_write
- mov r5, r0
- b .L4049
-.L4062:
- mvn r5, #13
-.L4049:
+ mov r1, r5
mov r0, r4
- bl kfree
- b .L4048
-.L4056:
+ bl rk_copy_from_user
+ cmp r0, #0
+ bne .L3926
+ ldrh r2, [r4, #6]
+ add r1, r4, #8
+ ldrh r0, [r4, #4]
+ bl rk_ftl_vendor_write
+ b .L3922
+.L3920:
mov r5, #-1
-.L4048:
- mov r0, r5
- pop {r4, r5, r6, pc}
-.L4064:
+ b .L3912
+.L3928:
.align 2
-.L4063:
+.L3927:
.word 1074034177
.word 1448232273
.fnend
@@ -25270,6 +25571,8 @@
.global gSnSectorData
.global gpDrmKeyInfo
.global gpBootConfig
+ .global ftl_dma32_buffer_size
+ .global ftl_dma32_buffer
.global gLoaderBootInfo
.global RK29_NANDC1_REG_BASE
.global RK29_NANDC_REG_BASE
@@ -25505,18 +25808,11 @@
.global IDByte
.global read_retry_cur_offset
.section .rodata
- .align 2
-.LANCHOR3 = . + 0
- .type __func__.20390, %object
- .size __func__.20390, 11
-__func__.20390:
+ .set .LANCHOR3,. + 0
+ .type __func__.23812, %object
+ .size __func__.23812, 11
+__func__.23812:
.ascii "FtlMemInit\000"
-.LC0:
- .byte 60
- .byte 40
- .byte 24
- .byte 16
- .space 1
.type samsung_14nm_slc_rr, %object
.size samsung_14nm_slc_rr, 26
samsung_14nm_slc_rr:
@@ -25546,7 +25842,6 @@
.byte -125
.byte -115
.byte 100
- .space 2
.type samsung_14nm_mlc_rr, %object
.size samsung_14nm_mlc_rr, 104
samsung_14nm_mlc_rr:
@@ -25654,452 +25949,33 @@
.byte 18
.byte 9
.byte 8
- .type __func__.21169, %object
- .size __func__.21169, 17
-__func__.21169:
+ .type __func__.24591, %object
+ .size __func__.24591, 17
+__func__.24591:
.ascii "FtlDumpBlockInfo\000"
- .space 3
- .type __func__.21188, %object
- .size __func__.21188, 16
-__func__.21188:
+ .type __func__.24610, %object
+ .size __func__.24610, 16
+__func__.24610:
.ascii "FtlScanAllBlock\000"
- .type __func__.21456, %object
- .size __func__.21456, 17
-__func__.21456:
+ .type __func__.24878, %object
+ .size __func__.24878, 17
+__func__.24878:
.ascii "ftl_scan_all_ppa\000"
- .space 3
- .type __func__.21137, %object
- .size __func__.21137, 12
-__func__.21137:
+ .type __func__.24559, %object
+ .size __func__.24559, 12
+__func__.24559:
.ascii "FtlCheckVpc\000"
- .type __func__.21436, %object
- .size __func__.21436, 21
-__func__.21436:
+ .type __func__.24858, %object
+ .size __func__.24858, 21
+__func__.24858:
.ascii "FtlVpcCheckAndModify\000"
- .space 3
- .type __func__.20463, %object
- .size __func__.20463, 8
-__func__.20463:
+ .type __func__.23885, %object
+ .size __func__.23885, 8
+__func__.23885:
.ascii "FtlInit\000"
- .section .rodata.str1.1,"aMS",%progbits,1
-.LC1:
- .ascii "FlashEraseBlocks pageAddr error %x\012\000"
-.LC2:
- .ascii "phyBlk = 0x%x die = %d block_in_die = 0x%x 0x%8x\012"
- .ascii "\000"
-.LC3:
- .ascii "FtlFreeSysBlkQueueOut free count = %d\012\000"
-.LC4:
- .ascii "FtlFreeSysBlkQueueOut = %x, free count = %d, error\012"
- .ascii "\000"
-.LC5:
- .ascii "FtlFreeSysBlkQueueOut = %x, free count = %d\012\000"
-.LC6:
- .ascii "FLASH INFO:\012\000"
-.LC7:
- .ascii "FLASH ID: %x\012\000"
-.LC8:
- .ascii "Device Capacity: %d MB\012\000"
-.LC9:
- .ascii "FMWAIT: %x %x %x %x\012\000"
-.LC10:
- .ascii "FTL INFO:\012\000"
-.LC11:
- .ascii "g_MaxLpn = 0x%x\012\000"
-.LC12:
- .ascii "g_VaildLpn = 0x%x\012\000"
-.LC13:
- .ascii "read_page_count = 0x%x\012\000"
-.LC14:
- .ascii "discard_page_count = 0x%x\012\000"
-.LC15:
- .ascii "write_page_count = 0x%x\012\000"
-.LC16:
- .ascii "cache_write_count = 0x%x\012\000"
-.LC17:
- .ascii "l2p_write_count = 0x%x\012\000"
-.LC18:
- .ascii "gc_page_count = 0x%x\012\000"
-.LC19:
- .ascii "totle_write = %d MB\012\000"
-.LC20:
- .ascii "totle_read = %d MB\012\000"
-.LC21:
- .ascii "GSV = 0x%x\012\000"
-.LC22:
- .ascii "GDV = 0x%x\012\000"
-.LC23:
- .ascii "bad blk num = %d %d\012\000"
-.LC24:
- .ascii "free_superblocks = 0x%x\012\000"
-.LC25:
- .ascii "mlc_EC = 0x%x\012\000"
-.LC26:
- .ascii "slc_EC = 0x%x\012\000"
-.LC27:
- .ascii "avg_EC = 0x%x\012\000"
-.LC28:
- .ascii "sys_EC = 0x%x\012\000"
-.LC29:
- .ascii "max_EC = 0x%x\012\000"
-.LC30:
- .ascii "min_EC = 0x%x\012\000"
-.LC31:
- .ascii "PLT = 0x%x\012\000"
-.LC32:
- .ascii "POT = 0x%x\012\000"
-.LC33:
- .ascii "MaxSector = 0x%x\012\000"
-.LC34:
- .ascii "init_sys_blks_pp = 0x%x\012\000"
-.LC35:
- .ascii "sys_blks_pp = 0x%x\012\000"
-.LC36:
- .ascii "free sysblock = 0x%x\012\000"
-.LC37:
- .ascii "data_blks_pp = 0x%x\012\000"
-.LC38:
- .ascii "data_op_blks_pp = 0x%x\012\000"
-.LC39:
- .ascii "max_data_blks = 0x%x\012\000"
-.LC40:
- .ascii "Sys.id = 0x%x\012\000"
-.LC41:
- .ascii "Bbt.id = 0x%x\012\000"
-.LC42:
- .ascii "ACT.page = 0x%x\012\000"
-.LC43:
- .ascii "ACT.plane = 0x%x\012\000"
-.LC44:
- .ascii "ACT.id = 0x%x\012\000"
-.LC45:
- .ascii "ACT.mode = 0x%x\012\000"
-.LC46:
- .ascii "ACT.a_pages = 0x%x\012\000"
-.LC47:
- .ascii "ACT VPC = 0x%x\012\000"
-.LC48:
- .ascii "BUF.page = 0x%x\012\000"
-.LC49:
- .ascii "BUF.plane = 0x%x\012\000"
-.LC50:
- .ascii "BUF.id = 0x%x\012\000"
-.LC51:
- .ascii "BUF.mode = 0x%x\012\000"
-.LC52:
- .ascii "BUF.a_pages = 0x%x\012\000"
-.LC53:
- .ascii "BUF VPC = 0x%x\012\000"
-.LC54:
- .ascii "TMP.page = 0x%x\012\000"
-.LC55:
- .ascii "TMP.plane = 0x%x\012\000"
-.LC56:
- .ascii "TMP.id = 0x%x\012\000"
-.LC57:
- .ascii "TMP.mode = 0x%x\012\000"
-.LC58:
- .ascii "TMP.a_pages = 0x%x\012\000"
-.LC59:
- .ascii "GC.page = 0x%x\012\000"
-.LC60:
- .ascii "GC.plane = 0x%x\012\000"
-.LC61:
- .ascii "GC.id = 0x%x\012\000"
-.LC62:
- .ascii "GC.mode = 0x%x\012\000"
-.LC63:
- .ascii "GC.a_pages = 0x%x\012\000"
-.LC64:
- .ascii "WR_CHK = 0x%x %x %x %x\012\000"
-.LC65:
- .ascii "Read Err = 0x%x\012\000"
-.LC66:
- .ascii "Prog Err = 0x%x\012\000"
-.LC67:
- .ascii "gc_free_blk_th= 0x%x\012\000"
-.LC68:
- .ascii "gc_merge_free_blk_th= 0x%x\012\000"
-.LC69:
- .ascii "gc_skip_write_count= 0x%x\012\000"
-.LC70:
- .ascii "gc_blk_index= 0x%x\012\000"
-.LC71:
- .ascii "free min EC= 0x%x\012\000"
-.LC72:
- .ascii "free max EC= 0x%x\012\000"
-.LC73:
- .ascii "GC__SB VPC = 0x%x\012\000"
-.LC74:
- .ascii "%d. [0x%x]=0x%x 0x%x 0x%x\012\000"
-.LC75:
- .ascii "free %d. [0x%x] 0x%x 0x%x\012\000"
-.LC76:
- .ascii "%s\012\000"
-.LC77:
- .ascii "FTL version: 5.0.63 20200923\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 error allocating memory. return -1\012\000"
-.LC82:
- .ascii "%s %p:0x%x:\000"
-.LC83:
- .ascii "%x \000"
-.LC84:
- .ascii "\000"
-.LC85:
- .ascii "otp error! %d\000"
-.LC86:
- .ascii "rr\000"
-.LC87:
- .ascii "%d statReg->V6.mtrans_cnt=%d flReg.V6.page_num=%d\012"
- .ascii "\000"
-.LC88:
- .ascii "nandc:\000"
-.LC89:
- .ascii "%d flReg.d32=%x %x\012\000"
-.LC90:
- .ascii "sdr read ok %x ecc=%d\012\000"
-.LC91:
- .ascii "sync para %d\012\000"
-.LC92:
- .ascii "TOG mode Read error %x %x\012\000"
-.LC93:
- .ascii "read retry status %x %x %x\012\000"
-.LC94:
- .ascii "micron RR %d row=%x,count %d,status=%d\012\000"
-.LC95:
- .ascii "samsung RR %d row=%x,count %d,status=%d\012\000"
-.LC96:
- .ascii "ECC:%d\012\000"
-.LC97:
- .ascii "No.%d FLASH ID:%x %x %x %x %x %x\012\000"
-.LC98:
- .ascii "FlashLoadPhyInfo fail %x!!\012\000"
-.LC99:
- .ascii "Read pageadd=%x ecc=%x err=%x\012\000"
-.LC100:
- .ascii "data:\000"
-.LC101:
- .ascii "spare:\000"
-.LC102:
- .ascii "ReadRetry pageadd=%x ecc=%x err=%x\012\000"
-.LC103:
- .ascii "FLFB:%d %d\012\000"
-.LC104:
- .ascii "prog error: = %x\012\000"
-.LC105:
- .ascii "prog read error: = %x\012\000"
-.LC106:
- .ascii "prog read REFRESH: = %x\012\000"
-.LC107:
- .ascii "prog read s error: = %x %x %x\012\000"
-.LC108:
- .ascii "prog read d error: = %x %x %x\012\000"
-.LC109:
- .ascii "id = %x,%x addr= %x,spare= %x %x %x %x data= %x\012"
- .ascii "\000"
-.LC110:
- .ascii "...%s enter...\012\000"
-.LC111:
- .ascii "superBlkID = %x vpc=%x\012\000"
-.LC112:
- .ascii "flashmode = %x pagenum = %x %x\012\000"
-.LC113:
- .ascii "id = %x,%x addr= %x,spare= %x %x %x %x data=%x %x\012"
- .ascii "\000"
-.LC114:
- .ascii "blk = %x vpc=%x mode = %x\012\000"
-.LC115:
- .ascii "mlc id = %x,%x addr= %x,spare= %x %x %x %x data=%x "
- .ascii "%x\012\000"
-.LC116:
- .ascii "slc id = %x,%x addr= %x,spare= %x %x %x %x data=%x "
- .ascii "%x\012\000"
-.LC117:
- .ascii "ftl_scan_all_ppa blk %x page %x flag: %x\012\000"
-.LC118:
- .ascii "ftl_scan_all_ppa blk %x page %x flag: %x .........."
- .ascii "..... is bad block\012\000"
-.LC119:
- .ascii "addr= %x, status= %d,spare= %x %x %x %x data=%x %x\012"
- .ascii "\000"
-.LC120:
- .ascii "%s finished\012\000"
-.LC121:
- .ascii "FlashMakeFactorBbt %d\012\000"
-.LC122:
- .ascii "bad block:%d %d\012\000"
-.LC123:
- .ascii "FMFB:%d %d\012\000"
-.LC124:
- .ascii "E:bad block:%d\012\000"
-.LC125:
- .ascii "FMFB:Save %d %d\012\000"
-.LC126:
- .ascii "FtlBbmTblFlush id=%x,page=%x,previd=%x cnt=%d\012\000"
-.LC127:
- .ascii "FtlBbmTblFlush error:%x\012\000"
-.LC128:
- .ascii "FtlBbmTblFlush error = %x error count = %d\012\000"
-.LC129:
- .ascii "FtlGcFreeBadSuperBlk 0x%x\012\000"
-.LC130:
- .ascii "decrement_vpc_count %x = %d\012\000"
-.LC131:
- .ascii "decrement_vpc_count %x = %d in free list\012\000"
-.LC132:
- .ascii "FtlVpcTblFlush error = %x error count = %d\012\000"
-.LC133:
- .ascii "page map lost: %x %x\012\000"
-.LC134:
- .ascii "FtlMapWritePage error = %x\012\000"
-.LC135:
- .ascii "FtlMapWritePage error = %x error count = %d\012\000"
-.LC136:
- .ascii "FtlVendorPartRead refresh = %x phyAddr = %x\012\000"
-.LC137:
- .ascii "no ect\000"
-.LC138:
- .ascii "slc mode\000"
-.LC139:
- .ascii "BBT:\000"
-.LC140:
- .ascii "region_id = %x phyAddr = %x\012\000"
-.LC141:
- .ascii "map_ppn:\000"
-.LC142:
- .ascii "load_l2p_region refresh = %x phyAddr = %x\012\000"
-.LC143:
- .ascii "FtlCheckVpc2 %x = %x %x\012\000"
-.LC144:
- .ascii "free blk vpc error %x = %x %x\012\000"
-.LC145:
- .ascii "error_flag %x\012\000"
-.LC146:
- .ascii "Ftlscanalldata = %x\012\000"
-.LC147:
- .ascii "scan lpa = %x ppa= %x\012\000"
-.LC148:
- .ascii "lba = %x,addr= %x,spare= %x %x %x %x data=%x %x\012"
- .ascii "\000"
-.LC149:
- .ascii "RSB refresh addr %x\012\000"
-.LC150:
- .ascii "spuer block %x vpn is 0\012 \000"
-.LC151:
- .ascii "g_recovery_ppa %x ver %x\012 \000"
-.LC152:
- .ascii "FtlCheckVpc %x = %x %x\012\000"
-.LC153:
- .ascii "FtlGcScanTempBlk Error ID %x %x!!!!!!! \012\000"
-.LC154:
- .ascii "FtlGcScanTempBlkError ID %x %x!!!!!!!\012\000"
-.LC155:
- .ascii "GC des block %x done\012\000"
-.LC156:
- .ascii "too many bad block = %d %d\012\000"
-.LC157:
- .ascii "%d GC datablk = %x vpc %x %x\012\000"
-.LC158:
- .ascii "SWL %x, FSB = %x vpc= %x,ec=%x th=%x\012\000"
-.LC159:
- .ascii "Ftlwrite decrement_vpc_count %x = %d\012\000"
-.LC160:
- .ascii "rk_ftl_de_init %x\012\000"
-.LC161:
- .ascii "...%s: no bad block mapping table, format device\012"
- .ascii "\000"
-.LC162:
- .ascii "...%s FtlSysBlkInit error ,format device!\012\000"
-.LC163:
- .ascii "FtlInit %x\012\000"
-.LC164:
- .ascii "fix power lost blk = %x vpc=%x\012\000"
-.LC165:
- .ascii "erase power lost blk = %x vpc=%x\012\000"
-.LC166:
- .ascii "FtlWrite: lpa error:%x %x\012\000"
-.LC167:
- .ascii "id = %x,%x addr= %x,spare= %x %x %x %x data = %x\012"
- .ascii "\000"
-.LC168:
- .ascii ":\000"
-.LC169:
- .ascii "phyBlk = %x,addr= %x,spare= %x %x %x %x data=%x %x\012"
- .ascii "\000"
-.LC170:
- .ascii "Mblk:\000"
-.LC171:
- .ascii "L2P:\000"
-.LC172:
- .ascii "L2PC:\000"
-.LC173:
- .ascii "write_idblock fix data %x %x\012\000"
-.LC174:
- .ascii "idblk:\000"
-.LC175:
- .ascii "idb reverse %x %x\012\000"
-.LC176:
- .ascii "write_idblock totle_sec %x %x %x %x\012\000"
-.LC177:
- .ascii "IDBlockWriteData %x %x\012\000"
-.LC178:
- .ascii "IDBlockWriteData %x %x ret= %x\012\000"
-.LC179:
- .ascii "IdBlockReadData %x %x\012\000"
-.LC180:
- .ascii "IdBlockReadData %x %x ret= %x\012\000"
-.LC181:
- .ascii "write and check error:%d idb=%x,offset=%x,r=%x,w=%x"
- .ascii "\012\000"
-.LC182:
- .ascii "write\000"
-.LC183:
- .ascii "read\000"
-.LC184:
- .ascii "write_idblock error %d\012\000"
-.LC185:
- .ascii "wl_lba %p %x %x %x\012\000"
-.LC186:
- .ascii "RKNAND_GET_DRM_KEY\012\000"
-.LC187:
- .ascii "rk_copy_from_user error\012\000"
-.LC188:
- .ascii "RKNAND_STORE_DRM_KEY\012\000"
-.LC189:
- .ascii "RKNAND_DIASBLE_SECURE_BOOT\012\000"
-.LC190:
- .ascii "RKNAND_ENASBLE_SECURE_BOOT\012\000"
-.LC191:
- .ascii "RKNAND_GET_SN_SECTOR\012\000"
-.LC192:
- .ascii "RKNAND_LOADER_UNLOCK\012\000"
-.LC193:
- .ascii "RKNAND_LOADER_STATUS\012\000"
-.LC194:
- .ascii "RKNAND_LOADER_LOCK\012\000"
-.LC195:
- .ascii "LockKey not match %d\012\000"
-.LC196:
- .ascii "RKNAND_GET_VENDOR_SECTOR\012\000"
-.LC197:
- .ascii "RKNAND_STORE_VENDOR_SECTOR\012\000"
-.LC198:
- .ascii "return ret = %lx\012\000"
-.LC199:
- .ascii "secureBootEn check error\012\000"
-.LC200:
- .ascii "\0013vendor storage %x,%x,%x\012\000"
.data
.align 2
-.LANCHOR1 = . + 0
+ .set .LANCHOR1,. + 0
.type random_seed, %object
.size random_seed, 256
random_seed:
@@ -26279,7 +26155,6 @@
.byte 126
.byte 124
.byte 0
- .space 3
.type Toshiba15RefValue, %object
.size Toshiba15RefValue, 95
Toshiba15RefValue:
@@ -26378,7 +26253,6 @@
.byte 116
.byte 114
.byte 0
- .space 1
.type ToshibaRefValue, %object
.size ToshibaRefValue, 8
ToshibaRefValue:
@@ -28875,10 +28749,17 @@
.word 1
.bss
.align 2
-.LANCHOR0 = . + 0
-.LANCHOR2 = . + 4344
-.LANCHOR4 = . + 8688
-.LANCHOR5 = . + 17376
+ .set .LANCHOR0,. + 0
+ .set .LANCHOR2,. + 4344
+ .set .LANCHOR4,. + 8688
+ .type gNandChipMap, %object
+ .size gNandChipMap, 32
+gNandChipMap:
+ .space 32
+ .type p_blk_mode_table, %object
+ .size p_blk_mode_table, 4
+p_blk_mode_table:
+ .space 4
.type g_slc2KBNand, %object
.size g_slc2KBNand, 1
g_slc2KBNand:
@@ -28897,10 +28778,6 @@
gNandRandomizer:
.space 1
.space 3
- .type gNandChipMap, %object
- .size gNandChipMap, 32
-gNandChipMap:
- .space 32
.type gpNandParaInfo, %object
.size gpNandParaInfo, 4
gpNandParaInfo:
@@ -28909,6 +28786,15 @@
.size gNandOptPara, 32
gNandOptPara:
.space 32
+ .type g_retryMode, %object
+ .size g_retryMode, 1
+g_retryMode:
+ .space 1
+ .type g_maxRegNum, %object
+ .size g_maxRegNum, 1
+g_maxRegNum:
+ .space 1
+ .space 2
.type gpNandc, %object
.size gpNandc, 4
gpNandc:
@@ -28966,19 +28852,10 @@
.size FlashWaitBusyScheduleEn, 4
FlashWaitBusyScheduleEn:
.space 4
- .type g_retryMode, %object
- .size g_retryMode, 1
-g_retryMode:
- .space 1
- .type g_maxRegNum, %object
- .size g_maxRegNum, 1
-g_maxRegNum:
- .space 1
.type gReadRetryInfo, %object
.size gReadRetryInfo, 852
gReadRetryInfo:
.space 852
- .space 2
.type read_retry_cur_offset, %object
.size read_retry_cur_offset, 4
read_retry_cur_offset:
@@ -29100,7 +28977,6 @@
.size c_ftl_nand_planes_per_die, 2
c_ftl_nand_planes_per_die:
.space 2
- .space 2
.type p_plane_order_table, %object
.size p_plane_order_table, 32
p_plane_order_table:
@@ -29152,6 +29028,7 @@
.type c_ftl_nand_reserved_blks, %object
.size c_ftl_nand_reserved_blks, 2
c_ftl_nand_reserved_blks:
+ .space 2
.space 2
.type DeviceCapacity, %object
.size DeviceCapacity, 4
@@ -29300,10 +29177,6 @@
.size g_VaildLpn, 4
g_VaildLpn:
.space 4
- .type p_blk_mode_table, %object
- .size p_blk_mode_table, 4
-p_blk_mode_table:
- .space 4
.type g_totle_read_page_count, %object
.size g_totle_read_page_count, 4
g_totle_read_page_count:
@@ -29377,14 +29250,14 @@
.size g_gc_superblock, 48
g_gc_superblock:
.space 48
- .type g_all_blk_used_slc_mode, %object
- .size g_all_blk_used_slc_mode, 4
-g_all_blk_used_slc_mode:
- .space 4
.type g_sys_ext_data, %object
.size g_sys_ext_data, 512
g_sys_ext_data:
.space 512
+ .type g_all_blk_used_slc_mode, %object
+ .size g_all_blk_used_slc_mode, 4
+g_all_blk_used_slc_mode:
+ .space 4
.type g_gc_free_blk_threshold, %object
.size g_gc_free_blk_threshold, 2
g_gc_free_blk_threshold:
@@ -29666,6 +29539,14 @@
.size RK29_NANDC_REG_BASE, 4
RK29_NANDC_REG_BASE:
.space 4
+ .type ftl_dma32_buffer_size, %object
+ .size ftl_dma32_buffer_size, 4
+ftl_dma32_buffer_size:
+ .space 4
+ .type ftl_dma32_buffer, %object
+ .size ftl_dma32_buffer, 4
+ftl_dma32_buffer:
+ .space 4
.type gFlashPageBuffer0, %object
.size gFlashPageBuffer0, 4
gFlashPageBuffer0:
@@ -29727,11 +29608,11 @@
.size gMultiPageReadEn, 1
gMultiPageReadEn:
.space 1
- .space 2
.type FbbtBlk, %object
.size FbbtBlk, 16
FbbtBlk:
.space 16
+ .space 2
.type req_sys, %object
.size req_sys, 36
req_sys:
@@ -29748,11 +29629,6 @@
.size g_ect_tbl_power_up_flush, 2
g_ect_tbl_power_up_flush:
.space 2
- .space 2
- .type check_valid_page_count_table, %object
- .size check_valid_page_count_table, 8192
-check_valid_page_count_table:
- .space 8192
.type g_power_lost_ecc_error_blk, %object
.size g_power_lost_ecc_error_blk, 2
g_power_lost_ecc_error_blk:
@@ -29760,6 +29636,7 @@
.type g_power_lost_recovery_flag, %object
.size g_power_lost_recovery_flag, 2
g_power_lost_recovery_flag:
+ .space 2
.space 2
.type g_recovery_page_num, %object
.size g_recovery_page_num, 4
@@ -29863,6 +29740,10 @@
.size g_vendor, 4
g_vendor:
.space 4
+ .type check_valid_page_count_table, %object
+ .size check_valid_page_count_table, 8192
+check_valid_page_count_table:
+ .space 8192
.type g_gc_refresh_block_temp_tbl, %object
.size g_gc_refresh_block_temp_tbl, 34
g_gc_refresh_block_temp_tbl:
@@ -29892,3 +29773,419 @@
.size gFlashSdrModeEn, 1
gFlashSdrModeEn:
.space 1
+ .section .rodata.str1.1,"aMS",%progbits,1
+.LC1:
+ .ascii "FlashEraseBlocks pageAddr error %x\012\000"
+.LC2:
+ .ascii "phyBlk = 0x%x die = %d block_in_die = 0x%x 0x%8x\012"
+ .ascii "\000"
+.LC3:
+ .ascii "FtlFreeSysBlkQueueOut free count = %d\012\000"
+.LC4:
+ .ascii "FtlFreeSysBlkQueueOut = %x, free count = %d, error\012"
+ .ascii "\000"
+.LC5:
+ .ascii "FtlFreeSysBlkQueueOut = %x, free count = %d\012\000"
+.LC6:
+ .ascii "FLASH INFO:\012\000"
+.LC7:
+ .ascii "FLASH ID: %x\012\000"
+.LC8:
+ .ascii "Device Capacity: %d MB\012\000"
+.LC9:
+ .ascii "FMWAIT: %x %x %x %x\012\000"
+.LC10:
+ .ascii "FTL INFO:\012\000"
+.LC11:
+ .ascii "g_MaxLpn = 0x%x\012\000"
+.LC12:
+ .ascii "g_VaildLpn = 0x%x\012\000"
+.LC13:
+ .ascii "read_page_count = 0x%x\012\000"
+.LC14:
+ .ascii "discard_page_count = 0x%x\012\000"
+.LC15:
+ .ascii "write_page_count = 0x%x\012\000"
+.LC16:
+ .ascii "cache_write_count = 0x%x\012\000"
+.LC17:
+ .ascii "l2p_write_count = 0x%x\012\000"
+.LC18:
+ .ascii "gc_page_count = 0x%x\012\000"
+.LC19:
+ .ascii "totle_write = %d MB\012\000"
+.LC20:
+ .ascii "totle_read = %d MB\012\000"
+.LC21:
+ .ascii "GSV = 0x%x\012\000"
+.LC22:
+ .ascii "GDV = 0x%x\012\000"
+.LC23:
+ .ascii "bad blk num = %d %d\012\000"
+.LC24:
+ .ascii "free_superblocks = 0x%x\012\000"
+.LC25:
+ .ascii "mlc_EC = 0x%x\012\000"
+.LC26:
+ .ascii "slc_EC = 0x%x\012\000"
+.LC27:
+ .ascii "avg_EC = 0x%x\012\000"
+.LC28:
+ .ascii "sys_EC = 0x%x\012\000"
+.LC29:
+ .ascii "max_EC = 0x%x\012\000"
+.LC30:
+ .ascii "min_EC = 0x%x\012\000"
+.LC31:
+ .ascii "PLT = 0x%x\012\000"
+.LC32:
+ .ascii "POT = 0x%x\012\000"
+.LC33:
+ .ascii "MaxSector = 0x%x\012\000"
+.LC34:
+ .ascii "init_sys_blks_pp = 0x%x\012\000"
+.LC35:
+ .ascii "sys_blks_pp = 0x%x\012\000"
+.LC36:
+ .ascii "free sysblock = 0x%x\012\000"
+.LC37:
+ .ascii "data_blks_pp = 0x%x\012\000"
+.LC38:
+ .ascii "data_op_blks_pp = 0x%x\012\000"
+.LC39:
+ .ascii "max_data_blks = 0x%x\012\000"
+.LC40:
+ .ascii "Sys.id = 0x%x\012\000"
+.LC41:
+ .ascii "Bbt.id = 0x%x\012\000"
+.LC42:
+ .ascii "ACT.page = 0x%x\012\000"
+.LC43:
+ .ascii "ACT.plane = 0x%x\012\000"
+.LC44:
+ .ascii "ACT.id = 0x%x\012\000"
+.LC45:
+ .ascii "ACT.mode = 0x%x\012\000"
+.LC46:
+ .ascii "ACT.a_pages = 0x%x\012\000"
+.LC47:
+ .ascii "ACT VPC = 0x%x\012\000"
+.LC48:
+ .ascii "BUF.page = 0x%x\012\000"
+.LC49:
+ .ascii "BUF.plane = 0x%x\012\000"
+.LC50:
+ .ascii "BUF.id = 0x%x\012\000"
+.LC51:
+ .ascii "BUF.mode = 0x%x\012\000"
+.LC52:
+ .ascii "BUF.a_pages = 0x%x\012\000"
+.LC53:
+ .ascii "BUF VPC = 0x%x\012\000"
+.LC54:
+ .ascii "TMP.page = 0x%x\012\000"
+.LC55:
+ .ascii "TMP.plane = 0x%x\012\000"
+.LC56:
+ .ascii "TMP.id = 0x%x\012\000"
+.LC57:
+ .ascii "TMP.mode = 0x%x\012\000"
+.LC58:
+ .ascii "TMP.a_pages = 0x%x\012\000"
+.LC59:
+ .ascii "GC.page = 0x%x\012\000"
+.LC60:
+ .ascii "GC.plane = 0x%x\012\000"
+.LC61:
+ .ascii "GC.id = 0x%x\012\000"
+.LC62:
+ .ascii "GC.mode = 0x%x\012\000"
+.LC63:
+ .ascii "GC.a_pages = 0x%x\012\000"
+.LC64:
+ .ascii "WR_CHK = 0x%x %x %x %x\012\000"
+.LC65:
+ .ascii "Read Err = 0x%x\012\000"
+.LC66:
+ .ascii "Prog Err = 0x%x\012\000"
+.LC67:
+ .ascii "gc_free_blk_th= 0x%x\012\000"
+.LC68:
+ .ascii "gc_merge_free_blk_th= 0x%x\012\000"
+.LC69:
+ .ascii "gc_skip_write_count= 0x%x\012\000"
+.LC70:
+ .ascii "gc_blk_index= 0x%x\012\000"
+.LC71:
+ .ascii "free min EC= 0x%x\012\000"
+.LC72:
+ .ascii "free max EC= 0x%x\012\000"
+.LC73:
+ .ascii "GC__SB VPC = 0x%x\012\000"
+.LC74:
+ .ascii "%d. [0x%x]=0x%x 0x%x 0x%x\012\000"
+.LC75:
+ .ascii "free %d. [0x%x] 0x%x 0x%x\012\000"
+.LC76:
+ .ascii "FTL version: 5.0.63 20210616\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 error allocating memory. return -1\012\000"
+.LC82:
+ .ascii "%s %p:0x%x:\000"
+.LC83:
+ .ascii "%x \000"
+.LC84:
+ .ascii "\000"
+.LC85:
+ .ascii "otp error! %d\000"
+.LC86:
+ .ascii "rr\000"
+.LC87:
+ .ascii "%d statReg->V6.mtrans_cnt=%d flReg.V6.page_num=%d\012"
+ .ascii "\000"
+.LC88:
+ .ascii "nandc:\000"
+.LC89:
+ .ascii "%d flReg.d32=%x %x\012\000"
+.LC90:
+ .ascii "sdr read ok %x ecc=%d\012\000"
+.LC91:
+ .ascii "sync para %d\012\000"
+.LC92:
+ .ascii "TOG mode Read error %x %x\012\000"
+.LC93:
+ .ascii "read retry status %x %x %x\012\000"
+.LC94:
+ .ascii "micron RR %d row=%x,count %d,status=%d\012\000"
+.LC95:
+ .ascii "samsung RR %d row=%x,count %d,status=%d\012\000"
+.LC96:
+ .ascii "ECC:%d\012\000"
+.LC97:
+ .ascii "No.%d FLASH ID:%x %x %x %x %x %x\012\000"
+.LC98:
+ .ascii "FlashLoadPhyInfo fail %x!!\012\000"
+.LC99:
+ .ascii "Read pageadd=%x ecc=%x err=%x\012\000"
+.LC100:
+ .ascii "data:\000"
+.LC101:
+ .ascii "spare:\000"
+.LC102:
+ .ascii "ReadRetry pageadd=%x ecc=%x err=%x\012\000"
+.LC103:
+ .ascii "FLFB:%d %d\012\000"
+.LC104:
+ .ascii "prog error: = %x\012\000"
+.LC105:
+ .ascii "prog read error: = %x\012\000"
+.LC106:
+ .ascii "prog read REFRESH: = %x\012\000"
+.LC107:
+ .ascii "prog read s error: = %x %x %x\012\000"
+.LC108:
+ .ascii "prog read d error: = %x %x %x\012\000"
+.LC109:
+ .ascii "id = %x,%x addr= %x,spare= %x %x %x %x data= %x\012"
+ .ascii "\000"
+.LC110:
+ .ascii "...%s enter...\012\000"
+.LC111:
+ .ascii "superBlkID = %x vpc=%x\012\000"
+.LC112:
+ .ascii "flashmode = %x pagenum = %x %x\012\000"
+.LC113:
+ .ascii "id = %x,%x addr= %x,spare= %x %x %x %x data=%x %x\012"
+ .ascii "\000"
+.LC114:
+ .ascii "blk = %x vpc=%x mode = %x\012\000"
+.LC115:
+ .ascii "mlc id = %x,%x addr= %x,spare= %x %x %x %x data=%x "
+ .ascii "%x\012\000"
+.LC116:
+ .ascii "slc id = %x,%x addr= %x,spare= %x %x %x %x data=%x "
+ .ascii "%x\012\000"
+.LC117:
+ .ascii "ftl_scan_all_ppa blk %x page %x flag: %x\012\000"
+.LC118:
+ .ascii "ftl_scan_all_ppa blk %x page %x flag: %x .........."
+ .ascii "..... is bad block\012\000"
+.LC119:
+ .ascii "addr= %x, status= %d,spare= %x %x %x %x data=%x %x\012"
+ .ascii "\000"
+.LC120:
+ .ascii "%s finished\012\000"
+.LC121:
+ .ascii "FlashMakeFactorBbt %d\012\000"
+.LC122:
+ .ascii "bad block:%d %d\012\000"
+.LC123:
+ .ascii "FMFB:%d %d\012\000"
+.LC124:
+ .ascii "E:bad block:%d\012\000"
+.LC125:
+ .ascii "FMFB:Save %d %d\012\000"
+.LC126:
+ .ascii "FtlBbmTblFlush id=%x,page=%x,previd=%x cnt=%d\012\000"
+.LC127:
+ .ascii "FtlBbmTblFlush error:%x\012\000"
+.LC128:
+ .ascii "FtlBbmTblFlush error = %x error count = %d\012\000"
+.LC129:
+ .ascii "FtlGcFreeBadSuperBlk 0x%x\012\000"
+.LC130:
+ .ascii "decrement_vpc_count %x = %d\012\000"
+.LC131:
+ .ascii "decrement_vpc_count %x = %d in free list\012\000"
+.LC132:
+ .ascii "FtlVpcTblFlush error = %x error count = %d\012\000"
+.LC133:
+ .ascii "page map lost: %x %x\012\000"
+.LC134:
+ .ascii "FtlMapWritePage error = %x\012\000"
+.LC135:
+ .ascii "FtlMapWritePage error = %x error count = %d\012\000"
+.LC136:
+ .ascii "FtlVendorPartRead refresh = %x phyAddr = %x\012\000"
+.LC137:
+ .ascii "no ect\000"
+.LC138:
+ .ascii "slc mode\000"
+.LC139:
+ .ascii "BBT:\000"
+.LC140:
+ .ascii "region_id = %x phyAddr = %x\012\000"
+.LC141:
+ .ascii "map_ppn:\000"
+.LC142:
+ .ascii "load_l2p_region refresh = %x phyAddr = %x\012\000"
+.LC143:
+ .ascii "FtlCheckVpc2 %x = %x %x\012\000"
+.LC144:
+ .ascii "free blk vpc error %x = %x %x\012\000"
+.LC145:
+ .ascii "error_flag %x\012\000"
+.LC146:
+ .ascii "Ftlscanalldata = %x\012\000"
+.LC147:
+ .ascii "scan lpa = %x ppa= %x\012\000"
+.LC148:
+ .ascii "lba = %x,addr= %x,spare= %x %x %x %x data=%x %x\012"
+ .ascii "\000"
+.LC149:
+ .ascii "RSB refresh addr %x\012\000"
+.LC150:
+ .ascii "spuer block %x vpn is 0\012 \000"
+.LC151:
+ .ascii "g_recovery_ppa %x ver %x\012 \000"
+.LC152:
+ .ascii "FtlCheckVpc %x = %x %x\012\000"
+.LC153:
+ .ascii "FtlGcScanTempBlk Error ID %x %x!!!!!!! \012\000"
+.LC154:
+ .ascii "FtlGcScanTempBlkError ID %x %x!!!!!!!\012\000"
+.LC155:
+ .ascii "GC des block %x done\012\000"
+.LC156:
+ .ascii "too many bad block = %d %d\012\000"
+.LC157:
+ .ascii "%d GC datablk = %x vpc %x %x\012\000"
+.LC158:
+ .ascii "SWL %x, FSB = %x vpc= %x,ec=%x th=%x\012\000"
+.LC159:
+ .ascii "Ftlwrite decrement_vpc_count %x = %d\012\000"
+.LC160:
+ .ascii "rk_ftl_de_init %x\012\000"
+.LC161:
+ .ascii "...%s: no bad block mapping table, format device\012"
+ .ascii "\000"
+.LC162:
+ .ascii "...%s FtlSysBlkInit error ,format device!\012\000"
+.LC163:
+ .ascii "FtlInit %x\012\000"
+.LC164:
+ .ascii "fix power lost blk = %x vpc=%x\012\000"
+.LC165:
+ .ascii "erase power lost blk = %x vpc=%x\012\000"
+.LC166:
+ .ascii "FtlWrite: lpa error:%x %x\012\000"
+.LC167:
+ .ascii "id = %x,%x addr= %x,spare= %x %x %x %x data = %x\012"
+ .ascii "\000"
+.LC168:
+ .ascii ":\000"
+.LC169:
+ .ascii "phyBlk = %x,addr= %x,spare= %x %x %x %x data=%x %x\012"
+ .ascii "\000"
+.LC170:
+ .ascii "Mblk:\000"
+.LC171:
+ .ascii "L2P:\000"
+.LC172:
+ .ascii "L2PC:\000"
+.LC173:
+ .ascii "write_idblock fix data %x %x\012\000"
+.LC174:
+ .ascii "idblk:\000"
+.LC175:
+ .ascii "idb reverse %x %x\012\000"
+.LC176:
+ .ascii "write_idblock totle_sec %x %x %x %x\012\000"
+.LC177:
+ .ascii "IDBlockWriteData %x %x\012\000"
+.LC178:
+ .ascii "IDBlockWriteData %x %x ret= %x\012\000"
+.LC179:
+ .ascii "IdBlockReadData %x %x\012\000"
+.LC180:
+ .ascii "IdBlockReadData %x %x ret= %x\012\000"
+.LC181:
+ .ascii "write and check error:%d idb=%x,offset=%x,r=%x,w=%x"
+ .ascii "\012\000"
+.LC182:
+ .ascii "write\000"
+.LC183:
+ .ascii "read\000"
+.LC184:
+ .ascii "write_idblock error %d\012\000"
+.LC185:
+ .ascii "wl_lba %p %x %x %x\012\000"
+.LC186:
+ .ascii "RKNAND_GET_DRM_KEY\012\000"
+.LC187:
+ .ascii "rk_copy_from_user error\012\000"
+.LC188:
+ .ascii "RKNAND_STORE_DRM_KEY\012\000"
+.LC189:
+ .ascii "RKNAND_DIASBLE_SECURE_BOOT\012\000"
+.LC190:
+ .ascii "RKNAND_ENASBLE_SECURE_BOOT\012\000"
+.LC191:
+ .ascii "RKNAND_GET_SN_SECTOR\012\000"
+.LC192:
+ .ascii "RKNAND_LOADER_UNLOCK\012\000"
+.LC193:
+ .ascii "RKNAND_LOADER_STATUS\012\000"
+.LC194:
+ .ascii "RKNAND_LOADER_LOCK\012\000"
+.LC195:
+ .ascii "LockKey not match %d\012\000"
+.LC196:
+ .ascii "RKNAND_GET_VENDOR_SECTOR\012\000"
+.LC197:
+ .ascii "RKNAND_STORE_VENDOR_SECTOR\012\000"
+.LC198:
+ .ascii "return ret = %lx\012\000"
+.LC199:
+ .ascii "secureBootEn check error\012\000"
+.LC200:
+ .ascii "\0013vendor storage %x,%x,%x\012\000"
--
Gitblit v1.6.2