summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYifeng Zhao <zyf@rock-chips.com>2018-12-07 11:30:07 +0800
committerTao Huang <huangtao@rock-chips.com>2019-02-12 09:30:03 +0800
commit6dfc7913e70b2baa7a5af604b20c0d40ff1118d9 (patch)
tree4776266fa1a91de63623d1e99b4e1866a258a244
parentf7468ce49e849e368709db3c594301b1d4ac1da7 (diff)
drivers: rk_nand: support SKHynix 14nm 2D 16GB Nand Flash
support SKHynix 14nm 2D 16GB NAND FLASH H27TDG8T2D8R. Change-Id: Ic465d325e6660cf1dc6db686391005529dd8fbeb Signed-off-by: Yifeng Zhao <zyf@rock-chips.com>
-rw-r--r--drivers/rk_nand/rk_ftl_arm_v7.S17700
-rw-r--r--drivers/rk_nand/rk_ftl_arm_v8.S12709
-rw-r--r--drivers/rk_nand/rk_ftlv5_arm64.S15279
-rw-r--r--drivers/rk_nand/rk_zftl_arm64.S15089
4 files changed, 31694 insertions, 29083 deletions
diff --git a/drivers/rk_nand/rk_ftl_arm_v7.S b/drivers/rk_nand/rk_ftl_arm_v7.S
index 68804d63b8d2..a78e40af74f4 100644
--- a/drivers/rk_nand/rk_ftl_arm_v7.S
+++ b/drivers/rk_nand/rk_ftl_arm_v7.S
@@ -5,7 +5,7 @@
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- * date: 2018-09-05
+ * date: 2019-01-07
*/
.arch armv7-a
.fpu softvfp
@@ -20,8 +20,8 @@
.file "rk_ftl_arm_v7.S"
.text
.align 2
- .type FlashGetReadRetryDefault.part.26, %function
-FlashGetReadRetryDefault.part.26:
+ .type FlashGetReadRetryDefault.part.28, %function
+FlashGetReadRetryDefault.part.28:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@@ -75,7 +75,7 @@ FlashGetReadRetryDefault.part.26:
.word .LANCHOR1
.word .LANCHOR1+45
.fnend
- .size FlashGetReadRetryDefault.part.26, .-FlashGetReadRetryDefault.part.26
+ .size FlashGetReadRetryDefault.part.28, .-FlashGetReadRetryDefault.part.28
.align 2
.global FlashMemCmp8
.type FlashMemCmp8, %function
@@ -207,13 +207,38 @@ FlashSetRandomizer:
.fnend
.size FlashSetRandomizer, .-FlashSetRandomizer
.align 2
+ .global FlashBlockAlignInit
+ .type FlashBlockAlignInit, %function
+FlashBlockAlignInit:
+ .fnstart
+ @ args = 0, pretend = 0, frame = 0
+ @ frame_needed = 0, uses_anonymous_args = 0
+ @ link register save eliminated.
+ ldr r3, .L37
+ cmp r0, #256
+ movhi r2, #512
+ str r0, [r3, #856]
+ bhi .L36
+ cmp r0, #128
+ bxls lr
+ mov r2, #256
+.L36:
+ str r2, [r3, #856]
+ bx lr
+.L38:
+ .align 2
+.L37:
+ .word .LANCHOR0
+ .fnend
+ .size FlashBlockAlignInit, .-FlashBlockAlignInit
+ .align 2
.global FlashReadCmd
.type FlashReadCmd, %function
FlashReadCmd:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr ip, .L34
+ ldr ip, .L40
mov r2, r1, lsr #16
stmfd sp!, {r4, lr}
.save {r4, lr}
@@ -235,9 +260,9 @@ FlashReadCmd:
str r2, [r3, #8]
ldmfd sp!, {r4, lr}
b FlashSetRandomizer
-.L35:
+.L41:
.align 2
-.L34:
+.L40:
.word .LANCHOR0
.fnend
.size FlashReadCmd, .-FlashReadCmd
@@ -248,7 +273,7 @@ FlashReadDpDataOutCmd:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r2, .L40
+ ldr r2, .L46
stmfd sp!, {r4, lr}
.save {r4, lr}
add ip, r2, r0, asl #3
@@ -259,7 +284,7 @@ FlashReadDpDataOutCmd:
add r3, r3, #8
mov r2, #0
add r3, r4, r3, asl #8
- bne .L37
+ bne .L43
mov ip, #6
str ip, [r3, #8]
str r2, [r3, #4]
@@ -269,8 +294,8 @@ FlashReadDpDataOutCmd:
mov r2, r1, lsr #8
str r2, [r3, #4]
mov r2, r1, lsr #16
- b .L39
-.L37:
+ b .L45
+.L43:
str r2, [r3, #8]
uxtb ip, r1
str r2, [r3, #4]
@@ -283,78 +308,26 @@ FlashReadDpDataOutCmd:
mov ip, #5
str ip, [r3, #8]
str r2, [r3, #4]
-.L39:
+.L45:
str r2, [r3, #4]
mov r2, #224
str r2, [r3, #8]
ldmfd sp!, {r4, lr}
b FlashSetRandomizer
-.L41:
+.L47:
.align 2
-.L40:
+.L46:
.word .LANCHOR0
.fnend
.size FlashReadDpDataOutCmd, .-FlashReadDpDataOutCmd
.align 2
- .global flash_enter_slc_mode
- .type flash_enter_slc_mode, %function
-flash_enter_slc_mode:
- .fnstart
- @ args = 0, pretend = 0, frame = 0
- @ frame_needed = 0, uses_anonymous_args = 0
- @ link register save eliminated.
- ldr r3, .L44
- ldrb r2, [r3, #928] @ zero_extendqisi2
- cmp r2, #0
- bxeq lr
- add r0, r3, r0, asl #3
- ldrb r3, [r0, #868] @ zero_extendqisi2
- ldr r2, [r0, #864]
- add r3, r3, #8
- add r3, r2, r3, asl #8
- mov r2, #218
- str r2, [r3, #8]
- bx lr
-.L45:
- .align 2
-.L44:
- .word .LANCHOR0
- .fnend
- .size flash_enter_slc_mode, .-flash_enter_slc_mode
- .align 2
- .global flash_exit_slc_mode
- .type flash_exit_slc_mode, %function
-flash_exit_slc_mode:
- .fnstart
- @ args = 0, pretend = 0, frame = 0
- @ frame_needed = 0, uses_anonymous_args = 0
- @ link register save eliminated.
- ldr r3, .L48
- ldrb r2, [r3, #928] @ zero_extendqisi2
- cmp r2, #0
- bxeq lr
- add r0, r3, r0, asl #3
- ldrb r3, [r0, #868] @ zero_extendqisi2
- ldr r2, [r0, #864]
- add r3, r3, #8
- add r3, r2, r3, asl #8
- mov r2, #223
- str r2, [r3, #8]
- bx lr
-.L49:
- .align 2
-.L48:
- .word .LANCHOR0
- .fnend
- .size flash_exit_slc_mode, .-flash_exit_slc_mode
- .align 2
.global FlashProgFirstCmd
.type FlashProgFirstCmd, %function
FlashProgFirstCmd:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr ip, .L51
+ ldr ip, .L49
mov r2, r1, lsr #16
stmfd sp!, {r4, lr}
.save {r4, lr}
@@ -375,9 +348,9 @@ FlashProgFirstCmd:
str r2, [r3, #4]
ldmfd sp!, {r4, lr}
b FlashSetRandomizer
-.L52:
+.L50:
.align 2
-.L51:
+.L49:
.word .LANCHOR0
.fnend
.size FlashProgFirstCmd, .-FlashProgFirstCmd
@@ -389,14 +362,14 @@ FlashEraseCmd:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L55
+ ldr r3, .L53
cmp r2, #0
add r0, r3, r0, asl #3
ldr ip, [r0, #864]
ldrb r0, [r0, #868] @ zero_extendqisi2
add r0, r0, #8
add r0, ip, r0, asl #8
- beq .L54
+ beq .L52
ldr r3, [r3, #856]
mov r2, #96
str r2, [r0, #8]
@@ -407,7 +380,7 @@ FlashEraseCmd:
mov r2, r1, lsr #16
add r1, r1, r3
str r2, [r0, #4]
-.L54:
+.L52:
mov r3, #96
str r3, [r0, #8]
uxtb r3, r1
@@ -419,9 +392,9 @@ FlashEraseCmd:
str r1, [r0, #4]
str r3, [r0, #8]
bx lr
-.L56:
+.L54:
.align 2
-.L55:
+.L53:
.word .LANCHOR0
.fnend
.size FlashEraseCmd, .-FlashEraseCmd
@@ -432,7 +405,7 @@ FlashProgDpSecondCmd:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr ip, .L58
+ ldr ip, .L56
mov r2, r1, lsr #16
stmfd sp!, {r4, r5, lr}
.save {r4, r5, lr}
@@ -453,9 +426,9 @@ FlashProgDpSecondCmd:
str r2, [r3, #4]
ldmfd sp!, {r4, r5, lr}
b FlashSetRandomizer
-.L59:
+.L57:
.align 2
-.L58:
+.L56:
.word .LANCHOR0
.fnend
.size FlashProgDpSecondCmd, .-FlashProgDpSecondCmd
@@ -467,7 +440,7 @@ FlashProgSecondCmd:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L61
+ ldr r3, .L59
add r3, r3, r0, asl #3
ldr r2, [r3, #864]
ldrb r3, [r3, #868] @ zero_extendqisi2
@@ -476,9 +449,9 @@ FlashProgSecondCmd:
mov r2, #16
str r2, [r3, #8]
bx lr
-.L62:
+.L60:
.align 2
-.L61:
+.L59:
.word .LANCHOR0
.fnend
.size FlashProgSecondCmd, .-FlashProgSecondCmd
@@ -490,7 +463,7 @@ FlashProgDpFirstCmd:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L64
+ ldr r3, .L62
add r0, r3, r0, asl #3
ldrb r3, [r3, #906] @ zero_extendqisi2
ldrb r2, [r0, #868] @ zero_extendqisi2
@@ -499,16 +472,16 @@ FlashProgDpFirstCmd:
add r2, r1, r2, asl #8
str r3, [r2, #8]
bx lr
-.L65:
+.L63:
.align 2
-.L64:
+.L62:
.word .LANCHOR0
.fnend
.size FlashProgDpFirstCmd, .-FlashProgDpFirstCmd
.align 2
- .global JSHash
- .type JSHash, %function
-JSHash:
+ .global js_hash
+ .type js_hash, %function
+js_hash:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@@ -516,25 +489,25 @@ JSHash:
mov r2, #0
stmfd sp!, {r4, lr}
.save {r4, lr}
- ldr r0, .L69
- b .L67
-.L68:
+ ldr r0, .L67
+ b .L65
+.L66:
mov ip, r0, asl #5
ldrb r4, [r3, r2] @ zero_extendqisi2
add ip, ip, r0, lsr #2
add r2, r2, #1
add ip, ip, r4
eor r0, r0, ip
-.L67:
+.L65:
cmp r2, r1
- bne .L68
+ bne .L66
ldmfd sp!, {r4, pc}
-.L70:
+.L68:
.align 2
-.L69:
+.L67:
.word 1204201446
.fnend
- .size JSHash, .-JSHash
+ .size js_hash, .-js_hash
.align 2
.global FlashLoadIdbInfo
.type FlashLoadIdbInfo, %function
@@ -568,14 +541,14 @@ FlashReadIdbData:
stmfd sp!, {r3, lr}
.save {r3, lr}
mov r2, #2048
- ldr r1, .L74
+ ldr r1, .L72
bl memcpy
mov r0, #0
ldmfd sp!, {r3, pc}
-.L75:
+.L73:
.align 2
-.L74:
- .word .LANCHOR0+932
+.L72:
+ .word .LANCHOR0+928
.fnend
.size FlashReadIdbData, .-FlashReadIdbData
.align 2
@@ -588,56 +561,61 @@ FlashLoadPhyInfoInRam:
stmfd sp!, {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
mov r4, #0
- ldr r6, .L88
-.L80:
+ ldr r6, .L86
+.L78:
add r5, r6, r4, asl #5
- ldr r1, .L88+4
+ ldr r1, .L86+4
add r0, r5, #1
ldrb r2, [r6, r4, asl #5] @ zero_extendqisi2
bl FlashMemCmp8
subs r1, r0, #0
- bne .L77
+ bne .L75
cmp r5, #0
ldrneb r2, [r5, #22] @ zero_extendqisi2
- ldrne r3, .L88+8
- bne .L82
- b .L87
-.L77:
- add r4, r4, #1
- cmp r4, #77
+ ldrne r3, .L86+8
bne .L80
+ b .L85
+.L75:
+ add r4, r4, #1
+ cmp r4, #81
+ bne .L78
mvn r0, #0
ldmfd sp!, {r4, r5, r6, pc}
-.L82:
+.L80:
ldrb r0, [r3, r1, asl #5] @ zero_extendqisi2
cmp r0, r2
- beq .L81
+ beq .L79
add r1, r1, #1
cmp r1, #4
- bne .L82
-.L81:
- ldr r3, .L88+8
+ bne .L80
+.L79:
+ ldr r3, .L86+8
mov r2, #32
- ldr r0, .L88+12
+ ldr r0, .L86+12
add r1, r3, r1, asl #5
bl memcpy
- ldr r0, .L88+16
mov r1, r5
mov r2, #32
+ ldr r0, .L86+16
bl memcpy
+ ldr r2, .L86+20
+ movw r3, #3126
+ ldrh r0, [r2, r3]
+ bl FlashBlockAlignInit
mov r0, #0
ldmfd sp!, {r4, r5, r6, pc}
-.L87:
+.L85:
mvn r0, #0
ldmfd sp!, {r4, r5, r6, pc}
-.L89:
+.L87:
.align 2
-.L88:
+.L86:
.word .LANCHOR1+396
- .word .LANCHOR0+2980
- .word .LANCHOR1+2860
- .word .LANCHOR0+896
+ .word .LANCHOR0+2976
.word .LANCHOR1+2988
+ .word .LANCHOR0+896
+ .word .LANCHOR1+3116
+ .word .LANCHOR1
.fnend
.size FlashLoadPhyInfoInRam, .-FlashLoadPhyInfoInRam
.align 2
@@ -648,28 +626,28 @@ ftl_flash_suspend:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L91
- ldr r2, [r3, #3012]
+ ldr r3, .L89
+ ldr r2, [r3, #3008]
ldr r1, [r2, #0]
- str r1, [r3, #3016]
+ str r1, [r3, #3012]
ldr r1, [r2, #4]
- str r1, [r3, #3020]
+ str r1, [r3, #3016]
ldr r1, [r2, #8]
- str r1, [r3, #3024]
+ str r1, [r3, #3020]
ldr r1, [r2, #12]
- str r1, [r3, #3028]
+ str r1, [r3, #3024]
ldr r1, [r2, #304]
- str r1, [r3, #3032]
+ str r1, [r3, #3028]
ldr r1, [r2, #308]
- str r1, [r3, #3036]
+ str r1, [r3, #3032]
ldr r1, [r2, #336]
ldr r2, [r2, #344]
- str r1, [r3, #3040]
- str r2, [r3, #3044]
+ str r1, [r3, #3036]
+ str r2, [r3, #3040]
bx lr
-.L92:
+.L90:
.align 2
-.L91:
+.L89:
.word .LANCHOR0
.fnend
.size ftl_flash_suspend, .-ftl_flash_suspend
@@ -684,11 +662,11 @@ LogAddr2PhyAddr:
stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
.save {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
mov fp, r3
- ldr r3, .L98
+ ldr r3, .L96
mov r5, r1
mov r6, r2
- movw r1, #3062
- movw r2, #3060
+ movw r1, #3058
+ mov r2, #3056
ldr r8, [r0, #4]
ldrh r2, [r3, r2]
mov r4, r0
@@ -709,17 +687,17 @@ LogAddr2PhyAddr:
mov r1, sl
bl __aeabi_uidiv
cmp r5, #1
- ldr r3, .L98
+ ldr r3, .L96
uxth r0, r0
mls sl, sl, r0, r9
uxth sl, sl
- bne .L95
- ldrb r2, [r3, #928] @ zero_extendqisi2
+ bne .L93
+ ldrb r2, [r3, #3072] @ zero_extendqisi2
cmp r2, #0
addeq r8, r3, r8, asl #1
movweq r2, #3076
ldreqh r8, [r8, r2]
-.L95:
+.L93:
add r3, r3, r0, asl #2
ldr r3, [r3, #3588]
mla r7, r7, sl, r3
@@ -728,7 +706,7 @@ LogAddr2PhyAddr:
add r8, r7, r8
str r8, [r6, #0]
str r0, [fp, #0]
- bls .L97
+ bls .L95
ldr r0, [r4, #4]
ldr r3, [r4, #40]
add r0, r0, #1024
@@ -736,12 +714,12 @@ LogAddr2PhyAddr:
rsbs r0, r3, #0
adc r0, r0, r3
ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L97:
+.L95:
mov r0, #0
ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L99:
+.L97:
.align 2
-.L98:
+.L96:
.word .LANCHOR0
.fnend
.size LogAddr2PhyAddr, .-LogAddr2PhyAddr
@@ -753,14 +731,14 @@ FlashScheduleEnSet:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L101
+ ldr r3, .L99
ldr r2, [r3, #3620]
str r0, [r3, #3620]
mov r0, r2
bx lr
-.L102:
+.L100:
.align 2
-.L101:
+.L99:
.word .LANCHOR0
.fnend
.size FlashScheduleEnSet, .-FlashScheduleEnSet
@@ -772,13 +750,13 @@ FlashGetPageSize:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L104
+ ldr r3, .L102
ldr r3, [r3, #3624]
ldrb r0, [r3, #9] @ zero_extendqisi2
bx lr
-.L105:
+.L103:
.align 2
-.L104:
+.L102:
.word .LANCHOR0
.fnend
.size FlashGetPageSize, .-FlashGetPageSize
@@ -801,16 +779,16 @@ NandcGetChipIf:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L108
+ ldr r3, .L106
add r3, r3, r0, asl #3
ldrb r0, [r3, #868] @ zero_extendqisi2
ldr r2, [r3, #864]
add r0, r0, #8
add r0, r2, r0, asl #8
bx lr
-.L109:
+.L107:
.align 2
-.L108:
+.L106:
.word .LANCHOR0
.fnend
.size NandcGetChipIf, .-NandcGetChipIf
@@ -822,16 +800,16 @@ NandcSetDdrPara:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L111
+ ldr r3, .L109
mov r2, r0, asl #8
orr r2, r2, r0, asl #16
orr r2, r2, #1
- ldr r3, [r3, #3012]
+ ldr r3, [r3, #3008]
str r2, [r3, #304]
bx lr
-.L112:
+.L110:
.align 2
-.L111:
+.L109:
.word .LANCHOR0
.fnend
.size NandcSetDdrPara, .-NandcSetDdrPara
@@ -843,14 +821,14 @@ NandcSetDdrDiv:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L114
+ ldr r3, .L112
orr r0, r0, #16640
- ldr r3, [r3, #3012]
+ ldr r3, [r3, #3008]
str r0, [r3, #344]
bx lr
-.L115:
+.L113:
.align 2
-.L114:
+.L112:
.word .LANCHOR0
.fnend
.size NandcSetDdrDiv, .-NandcSetDdrDiv
@@ -862,17 +840,17 @@ NandcSetDdrMode:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L118
+ ldr r3, .L116
cmp r0, #0
- ldr r2, [r3, #3012]
+ ldr r2, [r3, #3008]
ldr r3, [r2, #0]
bfc r3, #13, #1
orrne r3, r3, #253952
str r3, [r2, #0]
bx lr
-.L119:
+.L117:
.align 2
-.L118:
+.L116:
.word .LANCHOR0
.fnend
.size NandcSetDdrMode, .-NandcSetDdrMode
@@ -884,18 +862,18 @@ NandcSetMode:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L124
+ ldr r3, .L122
ands r1, r0, #6
- ldr r2, [r3, #3012]
+ ldr r2, [r3, #3008]
ldr r3, [r2, #0]
bfieq r3, r1, #13, #1
- beq .L123
+ beq .L121
orr r3, r3, #24576
movw r1, #16641
bfc r3, #15, #1
str r1, [r2, #344]
orr r3, r3, #196608
- ldr r1, .L124+4
+ ldr r1, .L122+4
tst r0, #4
orrne r3, r3, #32768
str r1, [r2, #304]
@@ -903,13 +881,13 @@ NandcSetMode:
str r1, [r2, #308]
mov r1, #39
str r1, [r2, #308]
-.L123:
+.L121:
str r3, [r2, #0]
mov r0, #0
bx lr
-.L125:
+.L123:
.align 2
-.L124:
+.L122:
.word .LANCHOR0
.word 1710595
.fnend
@@ -922,7 +900,7 @@ NandcFlashCs:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L127
+ ldr r3, .L125
add r3, r3, r0, asl #3
mov r0, #1
ldr r2, [r3, #864]
@@ -932,9 +910,9 @@ NandcFlashCs:
bfi r3, r1, #0, #8
str r3, [r2, #0]
bx lr
-.L128:
+.L126:
.align 2
-.L127:
+.L125:
.word .LANCHOR0
.fnend
.size NandcFlashCs, .-NandcFlashCs
@@ -946,7 +924,7 @@ NandcFlashDeCs:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L130
+ ldr r3, .L128
add r3, r3, r0, asl #3
ldr r2, [r3, #864]
ldr r3, [r2, #0]
@@ -954,9 +932,9 @@ NandcFlashDeCs:
bfc r3, #17, #1
str r3, [r2, #0]
bx lr
-.L131:
+.L129:
.align 2
-.L130:
+.L128:
.word .LANCHOR0
.fnend
.size NandcFlashDeCs, .-NandcFlashDeCs
@@ -965,21 +943,23 @@ NandcFlashDeCs:
.type NandcDelayns, %function
NandcDelayns:
.fnstart
- @ args = 0, pretend = 0, frame = 8
+ @ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- @ link register save eliminated.
- .pad #8
- sub sp, sp, #8
- mov r0, r0, lsr #4
- str r0, [sp, #4]
-.L133:
- ldr r0, [sp, #4]
- cmp r0, #0
- sub r3, r0, #1
- str r3, [sp, #4]
- bne .L133
- add sp, sp, #8
- bx lr
+ add r0, r0, #996
+ mov r1, #1000
+ stmfd sp!, {r3, lr}
+ .save {r3, lr}
+ add r0, r0, #3
+ bl __aeabi_uidiv
+ ldr r3, .L131
+ ldr r3, [r3, #8]
+ blx r3
+ mov r0, #0
+ ldmfd sp!, {r3, pc}
+.L132:
+ .align 2
+.L131:
+ .word arm_delay_ops
.fnend
.size NandcDelayns, .-NandcDelayns
.align 2
@@ -991,7 +971,7 @@ FlashReadStatusEN:
@ frame_needed = 0, uses_anonymous_args = 0
stmfd sp!, {r3, r4, r5, lr}
.save {r3, r4, r5, lr}
- ldr r3, .L144
+ ldr r3, .L142
add r0, r3, r0, asl #3
ldr ip, [r3, #3624]
ldrb r5, [r0, #868] @ zero_extendqisi2
@@ -1002,7 +982,7 @@ FlashReadStatusEN:
add r0, r4, r5, asl #8
movne r3, #112
strne r3, [r0, #8]
- bne .L140
+ bne .L138
cmp r2, #0
ldreqb r2, [r3, #909] @ zero_extendqisi2
ldrneb r2, [r3, #910] @ zero_extendqisi2
@@ -1010,28 +990,28 @@ FlashReadStatusEN:
ldrb r3, [r3, #911] @ zero_extendqisi2
cmp r3, #0
movne r3, #0
- ldrne r2, .L144
- bne .L139
- b .L140
-.L141:
+ ldrne r2, .L142
+ bne .L137
+ b .L138
+.L139:
mov ip, r3, asl #3
add r3, r3, #1
mov ip, r1, lsr ip
uxtb ip, ip
str ip, [r0, #4]
-.L139:
+.L137:
ldrb ip, [r2, #911] @ zero_extendqisi2
cmp r3, ip
- bcc .L141
-.L140:
+ bcc .L139
+.L138:
mov r0, #80
bl NandcDelayns
ldr r0, [r4, r5, asl #8]
uxtb r0, r0
ldmfd sp!, {r3, r4, r5, pc}
-.L145:
+.L143:
.align 2
-.L144:
+.L142:
.word .LANCHOR0
.fnend
.size FlashReadStatusEN, .-FlashReadStatusEN
@@ -1047,15 +1027,15 @@ FlashWaitReadyEN:
mov r6, r0
mov r5, r1
mov r4, r2
-.L150:
+.L148:
mov r0, r6
mov r1, r5
mov r2, r4
bl FlashReadStatusEN
cmp r0, #255
- beq .L150
+ beq .L148
tst r0, #64
- beq .L150
+ beq .L148
ldmfd sp!, {r4, r5, r6, pc}
.fnend
.size FlashWaitReadyEN, .-FlashWaitReadyEN
@@ -1066,7 +1046,7 @@ FlashWaitCmdDone:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L154
+ ldr r3, .L152
stmfd sp!, {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
add r4, r3, r0, asl #4
@@ -1074,10 +1054,10 @@ FlashWaitCmdDone:
mov r6, r0
ldr r3, [r4, #8]
cmp r3, #0
- beq .L152
+ beq .L150
mov r0, r5
bl NandcFlashCs
- ldr r3, .L154+4
+ ldr r3, .L152+4
ldr r1, [r4, #4]
mov r0, r5
add r6, r3, r6, asl #2
@@ -1098,12 +1078,12 @@ FlashWaitCmdDone:
cmp r2, r3
strne r6, [r2, #0]
strne r3, [r4, #12]
-.L152:
+.L150:
mov r0, #0
ldmfd sp!, {r4, r5, r6, pc}
-.L155:
+.L153:
.align 2
-.L154:
+.L152:
.word .LANCHOR0+3628
.word .LANCHOR0
.fnend
@@ -1117,8 +1097,8 @@ HynixSetRRPara:
@ frame_needed = 0, uses_anonymous_args = 0
stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
.save {r4, r5, r6, r7, r8, r9, sl, lr}
- mov r8, r3
- ldr r9, .L162
+ mov r7, r3
+ ldr r9, .L161
mov r4, r0
mov r5, r1
mov r6, r2
@@ -1127,21 +1107,28 @@ HynixSetRRPara:
cmp r3, #6
addeq r9, r9, #20
addeq r9, r9, r0, asl #6
- addeq r9, r9, r8, asl #2
- beq .L158
+ addeq r9, r9, r7, asl #2
+ beq .L156
cmp r3, #7
+ bne .L157
+ add r9, r9, #28
+ mov r3, #160
+ mla r9, r3, r0, r9
+ mov r3, #10
+ mla r9, r3, r7, r9
+ b .L156
+.L157:
+ cmp r3, #8
+ addne r3, r7, r0, asl #3
addeq r9, r9, #28
- addne r3, r8, r0, asl #3
- moveq r3, #160
+ addeq r3, r7, r7, asl #2
addne r9, r9, #20
- mlaeq r9, r3, r0, r9
- moveq r3, #10
+ addeq r9, r9, r3
addne r9, r9, r3, asl #3
- mlaeq r9, r3, r8, r9
-.L158:
- ldr r3, .L162
+.L156:
+ ldr r3, .L161
mov r0, r4
- mov r7, #0
+ mov r8, #0
add r3, r3, r4, asl #3
ldrb sl, [r3, #868] @ zero_extendqisi2
ldr r2, [r3, #864]
@@ -1150,30 +1137,30 @@ HynixSetRRPara:
bl NandcFlashCs
mov r3, #54
str r3, [sl, #8]
- b .L160
-.L161:
- ldrb r3, [r6, r7] @ zero_extendqisi2
+ b .L159
+.L160:
+ ldrb r3, [r6, r8] @ zero_extendqisi2
mov r0, #200
str r3, [sl, #4]
bl NandcDelayns
- ldrsb r3, [r9, r7]
- add r7, r7, #1
+ ldrsb r3, [r9, r8]
+ add r8, r8, #1
str r3, [sl, #0]
-.L160:
- uxtb r3, r7
+.L159:
+ uxtb r3, r8
cmp r3, r5
- bcc .L161
+ bcc .L160
mov r3, #22
mov r0, r4
str r3, [sl, #8]
bl NandcFlashDeCs
- ldr r3, .L162
+ ldr r3, .L161
add r4, r3, r4
- strb r8, [r4, #3756]
+ strb r7, [r4, #3756]
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
-.L163:
- .align 2
.L162:
+ .align 2
+.L161:
.word .LANCHOR0
.fnend
.size HynixSetRRPara, .-HynixSetRRPara
@@ -1184,36 +1171,36 @@ FlashSetReadRetryDefault:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- stmfd sp!, {r4, r5, r6, lr}
- .save {r4, r5, r6, lr}
- ldr r6, .L169
- ldr r3, [r6, #3624]
+ stmfd sp!, {r3, r4, r5, lr}
+ .save {r3, r4, r5, lr}
+ ldr r5, .L168
+ ldr r3, [r5, #3624]
ldrb r3, [r3, #19] @ zero_extendqisi2
sub r3, r3, #1
uxtb r3, r3
- cmp r3, #6
- ldmhifd sp!, {r4, r5, r6, pc}
- ldr r5, .L169+4
+ cmp r3, #7
+ ldmhifd sp!, {r3, r4, r5, pc}
mov r4, #0
-.L167:
- ldrb r3, [r5, r4, asl #3] @ zero_extendqisi2
+.L166:
+ ldr r3, .L168+4
uxtb r0, r4
+ ldrb r3, [r3, r4, asl #3] @ zero_extendqisi2
cmp r3, #173
- bne .L166
- ldrb r1, [r6, #1] @ zero_extendqisi2
+ bne .L165
+ ldrb r1, [r5, #1] @ zero_extendqisi2
mov r3, #0
- ldr r2, .L169+8
+ ldr r2, .L168+8
bl HynixSetRRPara
-.L166:
+.L165:
add r4, r4, #1
cmp r4, #4
- bne .L167
- ldmfd sp!, {r4, r5, r6, pc}
-.L170:
- .align 2
+ bne .L166
+ ldmfd sp!, {r3, r4, r5, pc}
.L169:
+ .align 2
+.L168:
.word .LANCHOR0
- .word .LANCHOR0+2980
+ .word .LANCHOR0+2976
.word .LANCHOR0+4
.fnend
.size FlashSetReadRetryDefault, .-FlashSetReadRetryDefault
@@ -1227,15 +1214,15 @@ SamsungSetRRPara:
stmfd sp!, {r3, r4, r5, r6, r7, r8, sl, lr}
.save {r3, r4, r5, r6, r7, r8, sl, lr}
mov r4, r0
- ldr r3, .L174
+ ldr r3, .L173
mov r5, #0
- ldr sl, .L174+4
+ ldr sl, .L173+4
mov r8, #161
add r1, r3, r1, asl #2
add r6, r1, #3
mov r7, r3
- b .L172
-.L173:
+ b .L171
+.L172:
str r8, [r4, #8]
mov r3, #0
str r3, [r4, #0]
@@ -1246,15 +1233,15 @@ SamsungSetRRPara:
ldrsb r3, [r6, #1]!
str r3, [r4, #0]
bl NandcDelayns
-.L172:
+.L171:
ldrb r3, [sl, #3760] @ zero_extendqisi2
cmp r5, r3
- bcc .L173
+ bcc .L172
ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc}
-.L175:
- .align 2
.L174:
- .word .LANCHOR1+3020
+ .align 2
+.L173:
+ .word .LANCHOR1+3148
.word .LANCHOR0
.fnend
.size SamsungSetRRPara, .-SamsungSetRRPara
@@ -1268,17 +1255,17 @@ ToshibaSetRRPara:
stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
.save {r4, r5, r6, r7, r8, r9, sl, lr}
add r6, r1, #1
- ldr r8, .L183
+ ldr r8, .L182
mov r4, r0
add r6, r6, r6, asl #2
mov r5, #0
add r3, r8, #45
add r7, r8, r6
- ldr sl, .L183+4
+ ldr sl, .L182+4
add r6, r3, r6
add r9, r8, r1
- b .L177
-.L181:
+ b .L176
+.L180:
mov r3, #85
str r3, [r4, #8]
ldrsb r3, [r5, r8]
@@ -1288,25 +1275,25 @@ ToshibaSetRRPara:
ldrb r3, [sl, #3761] @ zero_extendqisi2
cmp r3, #34
ldreqsb r3, [r7, #0]
- beq .L182
+ beq .L181
cmp r3, #35
- addne r3, r9, #3072
+ addne r3, r9, #3200
addne r3, r3, #12
ldreqsb r3, [r6, #0]
ldrnesb r3, [r3, #0]
-.L182:
+.L181:
add r5, r5, #1
add r7, r7, #1
add r6, r6, #1
str r3, [r4, #0]
-.L177:
+.L176:
ldrb r3, [sl, #3760] @ zero_extendqisi2
cmp r5, r3
- bcc .L181
+ bcc .L180
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
-.L184:
- .align 2
.L183:
+ .align 2
+.L182:
.word .LANCHOR1
.word .LANCHOR0
.fnend
@@ -1321,7 +1308,7 @@ FlashReadStatus:
stmfd sp!, {r3, r4, r5, lr}
.save {r3, r4, r5, lr}
mov r2, #112
- ldr r3, .L186
+ ldr r3, .L185
add r3, r3, r0, asl #3
mov r0, #80
ldrb r5, [r3, #868] @ zero_extendqisi2
@@ -1332,44 +1319,82 @@ FlashReadStatus:
bl NandcDelayns
ldr r0, [r4, r5, asl #8]
ldmfd sp!, {r3, r4, r5, pc}
-.L187:
- .align 2
.L186:
+ .align 2
+.L185:
.word .LANCHOR0
.fnend
.size FlashReadStatus, .-FlashReadStatus
.align 2
+ .global NandcWaitFlashReadyNoDelay
+ .type NandcWaitFlashReadyNoDelay, %function
+NandcWaitFlashReadyNoDelay:
+ .fnstart
+ @ args = 0, pretend = 0, frame = 8
+ @ frame_needed = 0, uses_anonymous_args = 0
+ ldr r3, .L192
+ stmfd sp!, {r0, r1, r2, r4, r5, lr}
+ .save {r0, r1, r2, r4, r5, lr}
+ add r3, r3, r0, asl #3
+ ldr r4, .L192+4
+ ldr r5, [r3, #864]
+.L189:
+ ldr r3, [r5, #0]
+ str r3, [sp, #4]
+ ldr r3, [sp, #4]
+ tst r3, #512
+ bne .L190
+ mov r0, #10
+ bl NandcDelayns
+ subs r4, r4, #1
+ bne .L189
+ mvn r0, #0
+ b .L188
+.L190:
+ mov r0, #0
+.L188:
+ ldmfd sp!, {r1, r2, r3, r4, r5, pc}
+.L193:
+ .align 2
+.L192:
+ .word .LANCHOR0
+ .word 100000
+ .fnend
+ .size NandcWaitFlashReadyNoDelay, .-NandcWaitFlashReadyNoDelay
+ .align 2
.global NandcWaitFlashReady
.type NandcWaitFlashReady, %function
NandcWaitFlashReady:
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L193
+ ldr r3, .L199
stmfd sp!, {r0, r1, r2, r4, r5, lr}
.save {r0, r1, r2, r4, r5, lr}
add r3, r3, r0, asl #3
- ldr r4, .L193+4
+ mov r0, #150
+ ldr r4, .L199+4
ldr r5, [r3, #864]
-.L190:
- mov r0, #100
bl NandcDelayns
+.L196:
ldr r3, [r5, #0]
str r3, [sp, #4]
ldr r3, [sp, #4]
tst r3, #512
- bne .L191
+ bne .L197
+ mov r0, #10
+ bl NandcDelayns
subs r4, r4, #1
- bne .L190
+ bne .L196
mvn r0, #0
- b .L189
-.L191:
+ b .L195
+.L197:
mov r0, #0
-.L189:
+.L195:
ldmfd sp!, {r1, r2, r3, r4, r5, pc}
-.L194:
+.L200:
.align 2
-.L193:
+.L199:
.word .LANCHOR0
.word 100000
.fnend
@@ -1389,9 +1414,9 @@ FlashEraseSLc2KBlocks:
mov r8, r1
mov r4, r0
mov r7, r6
- ldr r5, .L203
- b .L196
-.L202:
+ ldr r5, .L209
+ b .L202
+.L208:
add r3, r6, r8
add r2, sp, #8
mov r0, r4
@@ -1405,7 +1430,7 @@ FlashEraseSLc2KBlocks:
cmp r3, r2
mvncs r3, #0
strcs r3, [r4, #0]
- bcs .L198
+ bcs .L204
add r2, r5, r3
add r3, r5, r3, asl #4
ldrb sl, [r2, #3764] @ zero_extendqisi2
@@ -1442,27 +1467,27 @@ FlashEraseSLc2KBlocks:
strne r3, [r4, #0]
ldr r3, [r4, #0]
cmn r3, #1
- bne .L201
- ldr r0, .L203+4
+ bne .L207
+ ldr r0, .L209+4
ldr r1, [sp, #8]
bl printk
-.L201:
+.L207:
mov r0, sl
bl NandcFlashDeCs
-.L198:
+.L204:
sub r6, r6, #1
add r7, r7, #1
add r4, r4, #36
uxtb r6, r6
-.L196:
+.L202:
cmp r7, r8
- bne .L202
+ bne .L208
mov r0, #0
add sp, sp, #20
ldmfd sp!, {r4, r5, r6, r7, r8, sl, pc}
-.L204:
+.L210:
.align 2
-.L203:
+.L209:
.word .LANCHOR0
.word .LC1
.fnend
@@ -1479,7 +1504,7 @@ micron_auto_read_calibration_config:
mov r6, r1
mov r4, r0
bl NandcWaitFlashReady
- ldr r3, .L206
+ ldr r3, .L212
mov r2, #239
mov r0, #200
add r4, r3, r4, asl #3
@@ -1497,9 +1522,9 @@ micron_auto_read_calibration_config:
str r3, [r5, r4, asl #8]
str r3, [r5, r4, asl #8]
ldmfd sp!, {r4, r5, r6, pc}
-.L207:
+.L213:
.align 2
-.L206:
+.L212:
.word .LANCHOR0
.fnend
.size micron_auto_read_calibration_config, .-micron_auto_read_calibration_config
@@ -1520,17 +1545,17 @@ SandiskSetRRPara:
mov r0, #200
mov r5, r1
bl NandcDelayns
- ldr r1, .L214
+ ldr r1, .L220
add r3, r5, r5, asl #2
mvn r6, #4
add r0, r1, r3
add r1, r1, #45
add r1, r1, r3
mov r2, #0
- ldr ip, .L214+4
+ ldr ip, .L220+4
mul r5, r6, r5
- b .L209
-.L212:
+ b .L215
+.L218:
ldrb r6, [ip, #3761] @ zero_extendqisi2
add r2, r2, #1
cmp r6, #67
@@ -1541,16 +1566,16 @@ SandiskSetRRPara:
add r1, r1, #1
ldrsb r6, [r6, #5]
str r6, [r4, #0]
-.L209:
+.L215:
ldrb r6, [ip, #3760] @ zero_extendqisi2
cmp r2, r6
- bcc .L212
+ bcc .L218
mov r0, #0
ldmfd sp!, {r4, r5, r6, lr}
b NandcWaitFlashReady
-.L215:
+.L221:
.align 2
-.L214:
+.L220:
.word .LANCHOR1
.word .LANCHOR0
.fnend
@@ -1562,7 +1587,7 @@ SandiskProgTestBadBlock:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L217
+ ldr r3, .L223
stmfd sp!, {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
add r3, r3, r0, asl #3
@@ -1593,9 +1618,9 @@ SandiskProgTestBadBlock:
ldr r0, [r5, r6, asl #8]
and r0, r0, #1
ldmfd sp!, {r4, r5, r6, pc}
-.L218:
+.L224:
.align 2
-.L217:
+.L223:
.word .LANCHOR0
.fnend
.size SandiskProgTestBadBlock, .-SandiskProgTestBadBlock
@@ -1606,13 +1631,13 @@ FlashReadSpare:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L220
+ ldr r3, .L226
mov ip, #0
stmfd sp!, {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
mov r6, r2
- ldrb r2, [r3, #2997] @ zero_extendqisi2
- ldr r3, .L220+4
+ ldrb r2, [r3, #3125] @ zero_extendqisi2
+ ldr r3, .L226+4
add r3, r3, r0, asl #3
mov r2, r2, asl #9
ldrb r5, [r3, #868] @ zero_extendqisi2
@@ -1635,14 +1660,100 @@ FlashReadSpare:
ldr r3, [r4, r5, asl #8]
strb r3, [r6, #0]
ldmfd sp!, {r4, r5, r6, pc}
-.L221:
+.L227:
.align 2
-.L220:
+.L226:
.word .LANCHOR1
.word .LANCHOR0
.fnend
.size FlashReadSpare, .-FlashReadSpare
.align 2
+ .global FlashSetInterfaceMode
+ .type FlashSetInterfaceMode, %function
+FlashSetInterfaceMode:
+ .fnstart
+ @ args = 0, pretend = 0, frame = 0
+ @ frame_needed = 0, uses_anonymous_args = 0
+ stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ .save {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ mov r4, #0
+ ldr sl, .L242
+ mov r7, #239
+ mov r1, r4
+ mov r6, #128
+ sub r8, sl, #864
+ mov r5, #1
+ mov r9, #35
+.L238:
+ mov r2, sl
+ ldr lr, .L242+4
+ ldr r3, [r2, r4]!
+ ldrb lr, [r4, lr] @ zero_extendqisi2
+ ldrb r2, [r2, #4] @ zero_extendqisi2
+ cmp lr, #152
+ cmpne lr, #69
+ add r2, r2, #8
+ add ip, r3, r2, asl #8
+ beq .L229
+ cmp lr, #173
+ cmpne lr, #44
+ bne .L230
+.L229:
+ cmp r0, #1
+ ldrb fp, [r8, #3772] @ zero_extendqisi2
+ bne .L231
+ tst fp, #1
+ beq .L230
+ cmp lr, #173
+ str r7, [ip, #8]
+ streq r0, [ip, #4]
+ beq .L240
+ cmp lr, #44
+ streq r0, [ip, #4]
+ strne r6, [ip, #4]
+ moveq ip, #5
+ strne r0, [r3, r2, asl #8]
+ bne .L236
+ b .L241
+.L231:
+ tst fp, #4
+ beq .L230
+ cmp lr, #173
+ str r7, [ip, #8]
+ bne .L235
+ str r5, [ip, #4]
+ mov ip, #32
+.L241:
+ str ip, [r3, r2, asl #8]
+ b .L236
+.L235:
+ cmp lr, #44
+ streq r5, [ip, #4]
+ streq r9, [r3, r2, asl #8]
+ beq .L236
+ str r6, [ip, #4]
+.L240:
+ str r1, [r3, r2, asl #8]
+.L236:
+ str r1, [r3, r2, asl #8]
+ str r1, [r3, r2, asl #8]
+ str r1, [r3, r2, asl #8]
+.L230:
+ add r4, r4, #8
+ cmp r4, #32
+ bne .L238
+ mov r0, #0
+ bl NandcWaitFlashReady
+ mov r0, #0
+ ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
+.L243:
+ .align 2
+.L242:
+ .word .LANCHOR0+864
+ .word .LANCHOR0+2976
+ .fnend
+ .size FlashSetInterfaceMode, .-FlashSetInterfaceMode
+ .align 2
.global FlashEraseBlock
.type FlashEraseBlock, %function
FlashEraseBlock:
@@ -1674,6 +1785,101 @@ FlashEraseBlock:
.fnend
.size FlashEraseBlock, .-FlashEraseBlock
.align 2
+ .global flash_exit_slc_mode
+ .type flash_exit_slc_mode, %function
+flash_exit_slc_mode:
+ .fnstart
+ @ args = 0, pretend = 0, frame = 0
+ @ frame_needed = 0, uses_anonymous_args = 0
+ stmfd sp!, {r3, r4, r5, r6, r7, lr}
+ .save {r3, r4, r5, r6, r7, lr}
+ mov r6, r0
+ ldr r4, .L247
+ ldrb r3, [r4, #3072] @ zero_extendqisi2
+ cmp r3, #0
+ ldmeqfd sp!, {r3, r4, r5, r6, r7, pc}
+ bl NandcFlashCs
+ add r3, r4, r6, asl #3
+ mov r0, #100
+ ldrb r5, [r3, #868] @ zero_extendqisi2
+ ldr r4, [r3, #864]
+ mov r3, #239
+ add r5, r5, #8
+ add r7, r4, r5, asl #8
+ str r3, [r7, #8]
+ mov r3, #145
+ str r3, [r7, #4]
+ bl NandcDelayns
+ mov r3, #2
+ mov r0, #100
+ str r3, [r4, r5, asl #8]
+ mov r3, #1
+ str r3, [r4, r5, asl #8]
+ mov r3, #0
+ str r3, [r4, r5, asl #8]
+ str r3, [r4, r5, asl #8]
+ bl NandcDelayns
+ mov r0, r6
+ bl NandcWaitFlashReadyNoDelay
+ mov r3, #223
+ mov r0, r6
+ str r3, [r7, #8]
+ ldmfd sp!, {r3, r4, r5, r6, r7, lr}
+ b NandcWaitFlashReady
+.L248:
+ .align 2
+.L247:
+ .word .LANCHOR0
+ .fnend
+ .size flash_exit_slc_mode, .-flash_exit_slc_mode
+ .align 2
+ .global flash_enter_slc_mode
+ .type flash_enter_slc_mode, %function
+flash_enter_slc_mode:
+ .fnstart
+ @ args = 0, pretend = 0, frame = 0
+ @ frame_needed = 0, uses_anonymous_args = 0
+ stmfd sp!, {r3, r4, r5, r6, r7, lr}
+ .save {r3, r4, r5, r6, r7, lr}
+ mov r6, r0
+ ldr r4, .L251
+ ldrb r3, [r4, #3072] @ zero_extendqisi2
+ cmp r3, #0
+ ldmeqfd sp!, {r3, r4, r5, r6, r7, pc}
+ bl NandcFlashCs
+ add r3, r4, r6, asl #3
+ mov r0, #100
+ ldrb r5, [r3, #868] @ zero_extendqisi2
+ ldr r4, [r3, #864]
+ mov r3, #239
+ add r5, r5, #8
+ add r7, r4, r5, asl #8
+ str r3, [r7, #8]
+ mov r3, #145
+ str r3, [r7, #4]
+ bl NandcDelayns
+ mov r3, #0
+ mov r2, #1
+ str r3, [r4, r5, asl #8]
+ mov r0, #100
+ str r2, [r4, r5, asl #8]
+ str r3, [r4, r5, asl #8]
+ str r3, [r4, r5, asl #8]
+ bl NandcDelayns
+ mov r0, r6
+ bl NandcWaitFlashReadyNoDelay
+ mov r3, #218
+ mov r0, r6
+ str r3, [r7, #8]
+ ldmfd sp!, {r3, r4, r5, r6, r7, lr}
+ b NandcWaitFlashReady
+.L252:
+ .align 2
+.L251:
+ .word .LANCHOR0
+ .fnend
+ .size flash_enter_slc_mode, .-flash_enter_slc_mode
+ .align 2
.global FlashReset
.type FlashReset, %function
FlashReset:
@@ -1683,7 +1889,7 @@ FlashReset:
stmfd sp!, {r3, r4, r5, lr}
.save {r3, r4, r5, lr}
mov r4, r0
- ldr r3, .L224
+ ldr r3, .L254
add r3, r3, r0, asl #3
ldrb r5, [r3, #868] @ zero_extendqisi2
ldr r2, [r3, #864]
@@ -1697,9 +1903,9 @@ FlashReset:
mov r0, r4
ldmfd sp!, {r3, r4, r5, lr}
b NandcFlashDeCs
-.L225:
+.L255:
.align 2
-.L224:
+.L254:
.word .LANCHOR0
.fnend
.size FlashReset, .-FlashReset
@@ -1711,19 +1917,19 @@ FlashReadIDRaw:
@ frame_needed = 0, uses_anonymous_args = 0
stmfd sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, lr}
.save {r0, r1, r2, r3, r4, r5, r6, r7, r8, lr}
- mov r5, r1
mov r4, r0
- bl FlashReset
- ldr r3, .L228
- mov r0, r4
- add r3, r3, r4, asl #3
+ ldr r3, .L258
+ mov r5, r1
+ add r3, r3, r0, asl #3
ldrb r7, [r3, #868] @ zero_extendqisi2
ldr r6, [r3, #864]
- bl NandcFlashCs
+ bl FlashReset
add r7, r7, #8
+ mov r0, r4
+ bl NandcFlashCs
mov r3, #144
- mov r0, #200
add r8, r6, r7, asl #8
+ mov r0, #200
str r3, [r8, #8]
mov r3, #0
str r3, [r8, #4]
@@ -1746,10 +1952,10 @@ FlashReadIDRaw:
sub r3, r2, #1
uxtb r3, r3
cmp r3, #253
- bhi .L226
+ bhi .L256
ldrb r1, [r5, #2] @ zero_extendqisi2
ldrb r3, [r5, #1] @ zero_extendqisi2
- ldr r0, .L228+4
+ ldr r0, .L258+4
str r1, [sp, #0]
ldrb r1, [r5, #3] @ zero_extendqisi2
str r1, [sp, #4]
@@ -1759,100 +1965,16 @@ FlashReadIDRaw:
str r1, [sp, #12]
add r1, r4, #1
bl printk
-.L226:
+.L256:
ldmfd sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, pc}
-.L229:
+.L259:
.align 2
-.L228:
+.L258:
.word .LANCHOR0
.word .LC2
.fnend
.size FlashReadIDRaw, .-FlashReadIDRaw
.align 2
- .global FlashSetInterfaceMode
- .type FlashSetInterfaceMode, %function
-FlashSetInterfaceMode:
- .fnstart
- @ args = 0, pretend = 0, frame = 0
- @ frame_needed = 0, uses_anonymous_args = 0
- stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
- .save {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
- mov r4, #0
- ldr sl, .L244
- mov r7, #239
- ldr r9, .L244+4
- mov r1, r4
- sub r8, sl, #864
- mov r6, #128
- mov r5, #1
-.L240:
- mov r2, sl
- ldrb lr, [r4, r9] @ zero_extendqisi2
- ldr r3, [r2, r4]!
- cmp lr, #152
- cmpne lr, #69
- ldrb r2, [r2, #4] @ zero_extendqisi2
- add r2, r2, #8
- add ip, r3, r2, asl #8
- beq .L231
- cmp lr, #173
- cmpne lr, #44
- bne .L232
-.L231:
- cmp r0, #1
- ldrb fp, [r8, #3772] @ zero_extendqisi2
- bne .L233
- tst fp, #1
- beq .L232
- cmp lr, #173
- str r7, [ip, #8]
- streq r0, [ip, #4]
- beq .L243
- cmp lr, #44
- streq r0, [ip, #4]
- strne r6, [ip, #4]
- moveq ip, #5
- strne r0, [r3, r2, asl #8]
- bne .L238
- b .L242
-.L233:
- tst fp, #4
- beq .L232
- cmp lr, #173
- str r7, [ip, #8]
- streq r5, [ip, #4]
- moveq ip, #32
- beq .L242
- cmp lr, #44
- strne r6, [ip, #4]
- bne .L243
- str r5, [ip, #4]
- mov ip, #35
-.L242:
- str ip, [r3, r2, asl #8]
- b .L238
-.L243:
- str r1, [r3, r2, asl #8]
-.L238:
- str r1, [r3, r2, asl #8]
- str r1, [r3, r2, asl #8]
- str r1, [r3, r2, asl #8]
-.L232:
- add r4, r4, #8
- cmp r4, #32
- bne .L240
- mov r0, #0
- bl NandcWaitFlashReady
- mov r0, #0
- ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L245:
- .align 2
-.L244:
- .word .LANCHOR0+864
- .word .LANCHOR0+2980
- .fnend
- .size FlashSetInterfaceMode, .-FlashSetInterfaceMode
- .align 2
.global ftl_flash_de_init
.type ftl_flash_de_init, %function
ftl_flash_de_init:
@@ -1862,39 +1984,40 @@ ftl_flash_de_init:
stmfd sp!, {r3, r4, r5, lr}
.save {r3, r4, r5, lr}
mov r0, #0
- ldr r4, .L249
+ ldr r4, .L264
bl NandcWaitFlashReady
bl FlashSetReadRetryDefault
- ldr r3, .L249+4
- ldr r2, [r4, #3776]
- cmp r2, r3
- bne .L247
+ ldr r0, [r4, #3776]
+ cmp r0, #0
+ beq .L261
mov r0, #0
bl flash_enter_slc_mode
-.L247:
+ b .L262
+.L261:
+ bl flash_exit_slc_mode
+.L262:
ldrb r3, [r4, #3780] @ zero_extendqisi2
- ldr r5, .L249
+ ldr r5, .L264
cmp r3, #0
- beq .L248
+ beq .L263
ldrb r3, [r5, #3772] @ zero_extendqisi2
tst r3, #1
- beq .L248
+ beq .L263
mov r0, #1
bl FlashSetInterfaceMode
mov r0, #1
bl NandcSetMode
mov r3, #0
strb r3, [r5, #3780]
-.L248:
+.L263:
ldr r3, [r4, #864]
mov r0, #0
str r0, [r3, #336]
ldmfd sp!, {r3, r4, r5, pc}
-.L250:
+.L265:
.align 2
-.L249:
+.L264:
.word .LANCHOR0
- .word 1446522928
.fnend
.size ftl_flash_de_init, .-ftl_flash_de_init
.align 2
@@ -1904,7 +2027,7 @@ FlashReadDpCmd:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L255
+ ldr r3, .L270
stmfd sp!, {r4, r5, r6, r7, r8, lr}
.save {r4, r5, r6, r7, r8, lr}
mov r7, r2
@@ -1919,7 +2042,7 @@ FlashReadDpCmd:
ldrb r2, [r3, #904] @ zero_extendqisi2
add r6, r1, r6, asl #8
str r2, [r6, #8]
- bne .L252
+ bne .L267
mov r8, #0
uxtb r2, r5
str r8, [r6, #4]
@@ -1935,8 +2058,8 @@ FlashReadDpCmd:
str r8, [r6, #8]
str r8, [r6, #4]
str r8, [r6, #4]
- b .L254
-.L252:
+ b .L269
+.L267:
uxtb r2, r5
str r2, [r6, #4]
mov r2, r5, lsr #8
@@ -1945,7 +2068,7 @@ FlashReadDpCmd:
str r2, [r6, #4]
ldrb r3, [r3, #905] @ zero_extendqisi2
str r3, [r6, #8]
-.L254:
+.L269:
uxtb r3, r7
mov r0, r4
str r3, [r6, #4]
@@ -1958,9 +2081,9 @@ FlashReadDpCmd:
str r3, [r6, #8]
ldmfd sp!, {r4, r5, r6, r7, r8, lr}
b FlashSetRandomizer
-.L256:
+.L271:
.align 2
-.L255:
+.L270:
.word .LANCHOR0
.fnend
.size FlashReadDpCmd, .-FlashReadDpCmd
@@ -1972,14 +2095,14 @@ NandcRandmzSel:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L258
+ ldr r3, .L273
add r3, r3, r0, asl #3
ldr r3, [r3, #864]
str r1, [r3, #336]
bx lr
-.L259:
+.L274:
.align 2
-.L258:
+.L273:
.word .LANCHOR0
.fnend
.size NandcRandmzSel, .-NandcRandmzSel
@@ -1996,36 +2119,36 @@ NandcTimeCfg:
mov r4, r0
mov r0, #0
bl rknand_get_clk_rate
- ldr r1, .L270
+ ldr r1, .L285
bl __aeabi_idiv
- ldr r3, .L270+4
- ldr r3, [r3, #3012]
+ ldr r3, .L285+4
+ ldr r3, [r3, #3008]
cmp r0, #250
movwgt r2, #8354
- bgt .L268
+ bgt .L283
cmp r0, #220
- bgt .L269
-.L263:
+ bgt .L284
+.L278:
cmp r0, #185
movwgt r2, #4226
- bgt .L268
+ bgt .L283
cmp r0, #160
movwgt r2, #4194
- bgt .L268
+ bgt .L283
cmp r4, #35
movwls r2, #4193
- bls .L268
+ bls .L283
cmp r4, #99
movwls r2, #4225
- bls .L268
-.L269:
+ bls .L283
+.L284:
movw r2, #8322
-.L268:
+.L283:
str r2, [r3, #4]
ldmfd sp!, {r4, pc}
-.L271:
+.L286:
.align 2
-.L270:
+.L285:
.word 1000000
.word .LANCHOR0
.fnend
@@ -2040,10 +2163,10 @@ NandcInit:
stmfd sp!, {r3, r4, r5, lr}
.save {r3, r4, r5, lr}
mov r2, #0
- ldr r4, .L274
+ ldr r4, .L289
mov r3, #1
mov r5, #0
- str r0, [r4, #3012]
+ str r0, [r4, #3008]
str r2, [r4, #868]
str r0, [r4, #864]
str r3, [r4, #876]
@@ -2066,31 +2189,31 @@ NandcInit:
str r2, [r4, #3788]
ldr r2, [r0, #352]
cmp r2, r1
- str r2, [r4, #3776]
+ str r2, [r4, #3792]
moveq r2, #8
streq r2, [r4, #3788]
str r3, [r0, #0]
mov r0, #40
- ldr r3, [r4, #3012]
+ ldr r3, [r4, #3008]
str r5, [r3, #336]
bl NandcTimeCfg
- ldr r3, [r4, #3012]
+ ldr r3, [r4, #3008]
movw r2, #8322
mov r0, #36864
str r2, [r3, #344]
- ldr r2, .L274+4
+ ldr r2, .L289+4
str r2, [r3, #304]
bl ftl_malloc
- str r5, [r4, #3820]
- str r5, [r4, #3828]
- str r0, [r4, #3792]
+ str r5, [r4, #3824]
+ str r5, [r4, #3832]
str r0, [r4, #3796]
- add r0, r0, #32768
str r0, [r4, #3800]
+ add r0, r0, #32768
+ str r0, [r4, #3804]
ldmfd sp!, {r3, r4, r5, pc}
-.L275:
+.L290:
.align 2
-.L274:
+.L289:
.word .LANCHOR0
.word 1710593
.fnend
@@ -2108,23 +2231,23 @@ FlashTimingCfg:
sub r3, r3, #33
cmp r0, r2
cmpne r3, #1
- bls .L277
+ bls .L292
movw r3, #4226
movw r2, #8322
cmp r0, r3
cmpne r0, r2
- bne .L278
-.L277:
- ldr r3, .L279
- ldr r3, [r3, #3012]
+ bne .L293
+.L292:
+ ldr r3, .L294
+ ldr r3, [r3, #3008]
str r0, [r3, #4]
-.L278:
- ldr r3, .L279+4
- ldrb r0, [r3, #3009] @ zero_extendqisi2
+.L293:
+ ldr r3, .L294+4
+ ldrb r0, [r3, #3137] @ zero_extendqisi2
b NandcTimeCfg
-.L280:
+.L295:
.align 2
-.L279:
+.L294:
.word .LANCHOR0
.word .LANCHOR1
.fnend
@@ -2136,28 +2259,28 @@ NandcGetTimeCfg:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr ip, .L282
+ ldr ip, .L297
stmfd sp!, {r4, lr}
.save {r4, lr}
- ldr r4, [ip, #3012]
+ ldr r4, [ip, #3008]
ldr r4, [r4, #4]
str r4, [r0, #0]
- ldr r0, [ip, #3012]
+ ldr r0, [ip, #3008]
ldr r0, [r0, #0]
str r0, [r1, #0]
- ldr r1, [ip, #3012]
+ ldr r1, [ip, #3008]
ldr r1, [r1, #304]
str r1, [r2, #0]
- ldr r2, [ip, #3012]
+ ldr r2, [ip, #3008]
ldr r0, [r2, #308]
ldr r1, [r2, #344]
uxtb r2, r0
orr r2, r2, r1, asl #16
str r2, [r3, #0]
ldmfd sp!, {r4, pc}
-.L283:
+.L298:
.align 2
-.L282:
+.L297:
.word .LANCHOR0
.fnend
.size NandcGetTimeCfg, .-NandcGetTimeCfg
@@ -2169,34 +2292,34 @@ NandcBchSel:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L289
+ ldr r3, .L304
mov r1, #1
- ldr r2, [r3, #3012]
- str r0, [r3, #3832]
+ ldr r2, [r3, #3008]
+ str r0, [r3, #3836]
mov r3, #0
str r1, [r2, #8]
mov r1, #16
cmp r0, r1
bfi r3, r1, #8, #8
bfc r3, #18, #1
- beq .L288
-.L285:
+ beq .L303
+.L300:
cmp r0, #24
orreq r3, r3, #16
- beq .L286
+ beq .L301
cmp r0, #40
orr r3, r3, #262144
orr r3, r3, #16
- bne .L286
-.L288:
+ bne .L301
+.L303:
bfc r3, #4, #1
-.L286:
+.L301:
orr r3, r3, #1
str r3, [r2, #12]
bx lr
-.L290:
+.L305:
.align 2
-.L289:
+.L304:
.word .LANCHOR0
.fnend
.size NandcBchSel, .-NandcBchSel
@@ -2208,12 +2331,12 @@ FlashBchSel:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L292
- strb r0, [r3, #3836]
+ ldr r3, .L307
+ strb r0, [r3, #3840]
b NandcBchSel
-.L293:
+.L308:
.align 2
-.L292:
+.L307:
.word .LANCHOR0
.fnend
.size FlashBchSel, .-FlashBchSel
@@ -2224,64 +2347,63 @@ ftl_flash_resume:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L299
- stmfd sp!, {r4, r5, r6, lr}
- .save {r4, r5, r6, lr}
+ stmfd sp!, {r3, r4, r5, lr}
+ .save {r3, r4, r5, lr}
mov r4, #0
- ldr r2, [r3, #3012]
- ldr r1, [r3, #3016]
- ldr r5, [r3, #3032]
- ldr r6, .L299+4
- str r1, [r2, #0]
- ldr r1, [r3, #3020]
- ldr r2, [r3, #3012]
- str r1, [r2, #4]
- ldr r1, [r3, #3024]
- str r1, [r2, #8]
- ldr r1, [r3, #3028]
- str r1, [r2, #12]
- ldr r1, [r3, #3036]
- str r5, [r2, #304]
- str r1, [r2, #308]
- ldr r1, [r3, #3040]
- ldr r3, [r3, #3044]
- str r1, [r2, #336]
- str r3, [r2, #344]
-.L296:
- ldrb r3, [r6, r4, asl #3] @ zero_extendqisi2
+ ldr r5, .L314
+ ldr r3, [r5, #3008]
+ ldr r2, [r5, #3012]
+ str r2, [r3, #0]
+ ldr r2, [r5, #3016]
+ ldr r3, [r5, #3008]
+ str r2, [r3, #4]
+ ldr r2, [r5, #3020]
+ str r2, [r3, #8]
+ ldr r2, [r5, #3024]
+ str r2, [r3, #12]
+ ldr r2, [r5, #3028]
+ str r2, [r3, #304]
+ ldr r2, [r5, #3032]
+ str r2, [r3, #308]
+ ldr r2, [r5, #3036]
+ str r2, [r3, #336]
+ ldr r2, [r5, #3040]
+ add r5, r5, #2976
+ str r2, [r3, #344]
+.L311:
+ ldrb r3, [r5, r4, asl #3] @ zero_extendqisi2
sub r3, r3, #1
uxtb r3, r3
cmp r3, #253
- bhi .L295
+ bhi .L310
uxtb r0, r4
bl FlashReset
-.L295:
+.L310:
add r4, r4, #1
cmp r4, #4
- bne .L296
- ldr r4, .L299
+ bne .L311
+ ldr r4, .L314
ldrb r3, [r4, #3780] @ zero_extendqisi2
cmp r3, #0
- beq .L297
+ beq .L312
mov r0, #1
bl NandcSetMode
ldrb r0, [r4, #3772] @ zero_extendqisi2
bl FlashSetInterfaceMode
ldrb r0, [r4, #3772] @ zero_extendqisi2
bl NandcSetMode
- ubfx r0, r5, #8, #8
+ ldrb r0, [r4, #3029] @ zero_extendqisi2
bl NandcSetDdrPara
-.L297:
- ldr r3, .L299
+.L312:
+ ldr r3, .L314
ldr r3, [r3, #3624]
ldrb r0, [r3, #20] @ zero_extendqisi2
- ldmfd sp!, {r4, r5, r6, lr}
+ ldmfd sp!, {r3, r4, r5, lr}
b FlashBchSel
-.L300:
+.L315:
.align 2
-.L299:
+.L314:
.word .LANCHOR0
- .word .LANCHOR0+2980
.fnend
.size ftl_flash_resume, .-ftl_flash_resume
.align 2
@@ -2335,11 +2457,11 @@ NandcIqrWaitFlashReady:
and r3, r3, #2
uxtb r3, r3
cmp r3, #0
- bne .L304
+ bne .L319
mov r0, r4
ldmfd sp!, {r4, lr}
b wait_for_nand_flash_ready
-.L304:
+.L319:
ldr r3, [r4, #368]
orr r3, r3, #2
str r3, [r4, #368]
@@ -2360,18 +2482,18 @@ FlashEraseBlocks:
.save {r4, r5, r6, r7, r8, r9, sl, fp, lr}
.pad #28
sub sp, sp, #28
- ldr r5, .L325
+ ldr r5, .L340
mov r6, r0
str r1, [sp, #12]
mov r7, r2
ldrb r4, [r5, #852] @ zero_extendqisi2
cmp r4, #0
moveq r9, r5
- beq .L306
+ beq .L321
mov r1, r2
bl FlashEraseSLc2KBlocks
- b .L307
-.L315:
+ b .L322
+.L330:
mov r8, #36
rsb r3, r4, r7
mul r8, r8, r4
@@ -2389,17 +2511,17 @@ FlashEraseBlocks:
cmp r0, r3
mvncs r3, #0
strcs r3, [r6, r8]
- bcs .L309
- ldrb r3, [r5, #3837] @ zero_extendqisi2
+ bcs .L324
+ ldrb r3, [r5, #3841] @ zero_extendqisi2
cmp r3, #0
add r3, r9, r0, asl #4
ldr r3, [r3, #3636]
moveq sl, #0
cmp r3, #0
- beq .L311
+ beq .L326
uxtb r0, r0
bl FlashWaitCmdDone
-.L311:
+.L326:
ldr r2, [sp, #20]
mov r1, #0
cmp sl, #0
@@ -2421,15 +2543,15 @@ FlashEraseBlocks:
ldr r3, [sp, #12]
mov r0, r8
cmp r3, #1
- bne .L313
- ldrb r3, [r5, #928] @ zero_extendqisi2
+ bne .L328
+ ldrb r3, [r5, #3072] @ zero_extendqisi2
cmp r3, #0
- beq .L313
+ beq .L328
bl flash_enter_slc_mode
- b .L314
-.L313:
+ b .L329
+.L328:
bl flash_exit_slc_mode
-.L314:
+.L329:
ldr r3, [sp, #20]
mov r0, r8
ldr r1, [sp, #16]
@@ -2445,59 +2567,59 @@ FlashEraseBlocks:
bl FlashEraseCmd
mov r0, r8
bl NandcFlashDeCs
-.L309:
+.L324:
add r4, r4, #1
-.L306:
+.L321:
cmp r4, r7
- bcc .L315
- ldr r5, .L325
+ bcc .L330
+ ldr r5, .L340
mov r4, #0
- ldr r8, .L325+4
- ldr r0, [r5, #3012]
+ ldr r8, .L340+4
+ ldr r0, [r5, #3008]
bl NandcIqrWaitFlashReady
- b .L316
-.L318:
+ b .L331
+.L333:
uxtb r0, r4
bl FlashWaitCmdDone
ldr r3, [sp, #12]
cmp r3, #1
- bne .L317
- ldrb r3, [r5, #928] @ zero_extendqisi2
+ bne .L332
+ ldrb r3, [r5, #3072] @ zero_extendqisi2
cmp r3, #0
- beq .L317
+ beq .L332
ldrb r0, [r8, r4, asl #4] @ zero_extendqisi2
bl flash_exit_slc_mode
-.L317:
+.L332:
add r4, r4, #1
-.L316:
+.L331:
ldrb r2, [r5, #3762] @ zero_extendqisi2
- ldr r3, .L325
+ ldr r3, .L340
cmp r4, r2
- bcc .L318
- ldr r0, [r3, #3840]
+ bcc .L333
+ ldr r0, [r3, #3844]
cmp r0, #0
- beq .L307
- ldrb r3, [r3, #2980] @ zero_extendqisi2
+ beq .L322
+ ldrb r3, [r3, #2976] @ zero_extendqisi2
cmp r3, #69
moveq r3, #0
moveq r2, r3
- bne .L324
- b .L319
-.L320:
+ bne .L339
+ b .L334
+.L335:
add r3, r3, #1
str r2, [r6, #-36]
-.L319:
+.L334:
cmp r3, r7
add r6, r6, #36
- bne .L320
-.L324:
+ bne .L335
+.L339:
mov r0, #0
-.L307:
+.L322:
add sp, sp, #28
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L326:
+.L341:
.align 2
-.L325:
+.L340:
.word .LANCHOR0
.word .LANCHOR0+3628
.fnend
@@ -2530,7 +2652,7 @@ NandcSendDumpDataStart:
ldr r2, [r0, #16]
.pad #8
sub sp, sp, #8
- ldr r3, .L329
+ ldr r3, .L344
str r2, [sp, #4]
ldr r2, [sp, #4]
bfc r2, #2, #1
@@ -2542,9 +2664,9 @@ NandcSendDumpDataStart:
str r3, [r0, #8]
add sp, sp, #8
bx lr
-.L330:
+.L345:
.align 2
-.L329:
+.L344:
.word 538969130
.fnend
.size NandcSendDumpDataStart, .-NandcSendDumpDataStart
@@ -2558,12 +2680,12 @@ NandcSendDumpDataDone:
@ link register save eliminated.
.pad #8
sub sp, sp, #8
-.L332:
+.L347:
ldr r3, [r0, #8]
str r3, [sp, #4]
ldr r3, [sp, #4]
tst r3, #1048576
- beq .L332
+ beq .L347
add sp, sp, #8
bx lr
.fnend
@@ -2578,7 +2700,7 @@ NandcXferStart:
stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
.save {r4, r5, r6, r7, r8, r9, sl, fp, lr}
mov r6, r1
- ldr r1, .L347
+ ldr r1, .L362
mov r8, r2
mov r4, #0
.pad #20
@@ -2603,7 +2725,7 @@ NandcXferStart:
bfi r4, r3, #4, #1
ldr r3, [r1, #3788]
cmp r3, #3
- bls .L335
+ bls .L350
ldr r3, [r5, #16]
cmp r9, #0
cmpeq ip, #0
@@ -2611,10 +2733,10 @@ NandcXferStart:
ldr r3, [sp, #12]
bfc r3, #2, #1
str r3, [sp, #12]
- beq .L336
+ beq .L351
cmp r6, #0
- beq .L337
- ldr r3, [r1, #3832]
+ beq .L352
+ ldr r3, [r1, #3836]
mov r0, ip
cmp r3, #24
movhi r3, #128
@@ -2624,26 +2746,26 @@ NandcXferStart:
str r3, [sp, #4]
mov r3, #0
mov r2, r3
- b .L339
-.L342:
+ b .L354
+.L357:
cmp ip, #0
mov lr, r3, lsr #2
add r2, r2, #1
ldrneh fp, [r0, #2]
mvneq fp, #0
ldrneh sl, [r0], #4
- ldreq sl, [r1, #3800]
+ ldreq sl, [r1, #3804]
orrne sl, sl, fp, asl #16
- ldrne fp, [r1, #3800]
+ ldrne fp, [r1, #3804]
streq fp, [sl, lr, asl #2]
strne sl, [fp, lr, asl #2]
ldr lr, [sp, #0]
add r3, r3, lr
-.L339:
+.L354:
ldr sl, [sp, #4]
cmp r2, sl
- bcc .L342
-.L337:
+ bcc .L357
+.L352:
mov r0, r5
add r8, r8, #1
bl rk_nandc_xfer_irq_flag_init
@@ -2651,34 +2773,34 @@ NandcXferStart:
mov r8, r8, asr #1
cmp r9, #0
bfi r4, r8, #22, #6
- ldr r8, .L347
+ ldr r8, .L362
orr r3, r3, #1
str r3, [r5, #368]
ldr r3, [r5, #364]
ubfx sl, r4, #22, #5
- ldreq r0, [r8, #3796]
+ ldreq r0, [r8, #3800]
movne r0, r9
orr r3, r3, #1
str r3, [r5, #364]
- ldr r3, [r8, #3800]
+ ldr r3, [r8, #3804]
mov r2, r6
mov r1, sl, asl #10
- str r3, [r8, #3808]
- str r0, [r8, #3804]
+ str r3, [r8, #3812]
+ str r0, [r8, #3808]
bl rknand_dma_map_single
mov r2, r6
mov r1, sl, asl #7
- str r0, [r8, #3812]
- ldr r0, [r8, #3808]
+ str r0, [r8, #3816]
+ ldr r0, [r8, #3812]
bl rknand_dma_map_single
mov r3, #1
- str r3, [r8, #3820]
+ str r3, [r8, #3824]
mov r2, #16
- ldr r3, [r8, #3812]
+ ldr r3, [r8, #3816]
tst r9, #3
- str r0, [r8, #3816]
+ str r0, [r8, #3820]
str r3, [r5, #20]
- ldr r3, [r8, #3816]
+ ldr r3, [r8, #3820]
str r3, [r5, #24]
mov r3, #0
str r3, [sp, #12]
@@ -2703,19 +2825,19 @@ NandcXferStart:
ldr r3, [sp, #12]
orr r3, r3, #1
str r3, [sp, #12]
-.L336:
+.L351:
ldr r3, [sp, #12]
str r3, [r5, #16]
-.L335:
+.L350:
str r7, [r5, #12]
str r4, [r5, #8]
orr r4, r4, #4
str r4, [r5, #8]
add sp, sp, #20
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L348:
+.L363:
.align 2
-.L347:
+.L362:
.word .LANCHOR0
.fnend
.size NandcXferStart, .-NandcXferStart
@@ -2734,14 +2856,14 @@ NandcCopy1KB:
mov r4, r0
ldr r6, [sp, #16]
add r2, r2, r5, asl #9
- bne .L350
+ bne .L365
cmp r3, #0
- beq .L351
+ beq .L366
mov r0, r2
mov r1, r3
mov r2, #1024
bl memcpy
-.L351:
+.L366:
cmp r6, #0
ldmeqfd sp!, {r4, r5, r6, pc}
ldrb r3, [r6, #2] @ zero_extendqisi2
@@ -2759,14 +2881,14 @@ NandcCopy1KB:
add r5, r5, #128
str r3, [r4, r5, asl #2]
ldmfd sp!, {r4, r5, r6, pc}
-.L350:
+.L365:
cmp r3, #0
- beq .L353
+ beq .L368
mov r1, r2
mov r0, r3
mov r2, #1024
bl memcpy
-.L353:
+.L368:
cmp r6, #0
ldmeqfd sp!, {r4, r5, r6, pc}
mov r5, r5, lsr #1
@@ -2795,14 +2917,14 @@ Ftl_log2:
@ link register save eliminated.
mov r2, #1
mov r3, #0
- b .L355
-.L356:
+ b .L370
+.L371:
add r3, r3, #1
mov r2, r2, asl #1
uxth r3, r3
-.L355:
+.L370:
cmp r2, r0
- bls .L356
+ bls .L371
sub r3, r3, #1
uxth r0, r3
bx lr
@@ -2827,27 +2949,27 @@ FtlSysBlkNumInit:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L361
- movw r2, #3848
+ ldr r3, .L376
+ movw r2, #3852
cmp r0, #23
- movw r1, #3858
+ movw r1, #3862
ldrh r2, [r3, r2]
movls r0, #24
ldrh r1, [r3, r1]
- str r0, [r3, #3844]
+ str r0, [r3, #3848]
mul r2, r2, r0
rsb r0, r0, r1
- mov r1, #3856
+ movw r1, #3860
strh r0, [r3, r1] @ movhi
mov r0, #0
- ldr r1, [r3, #3864]
- str r2, [r3, #3852]
+ ldr r1, [r3, #3868]
+ str r2, [r3, #3856]
rsb r2, r2, r1
- str r2, [r3, #3860]
+ str r2, [r3, #3864]
bx lr
-.L362:
+.L377:
.align 2
-.L361:
+.L376:
.word .LANCHOR0
.fnend
.size FtlSysBlkNumInit, .-FtlSysBlkNumInit
@@ -2860,126 +2982,122 @@ FtlConstantsInit:
@ frame_needed = 0, uses_anonymous_args = 0
stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
.save {r4, r5, r6, r7, r8, r9, sl, fp, lr}
- movw r2, #3868
- ldr r3, .L380
+ mov r3, #3872
+ ldr r2, .L395
mov r4, r0
ldrh lr, [r0, #8]
+ movw r1, #3876
+ ldrh r0, [r0, #10]
.pad #20
sub sp, sp, #20
- ldrh r1, [r0, #10]
- ldrh r0, [r0, #12]
- strh lr, [r3, r2] @ movhi
- add r2, r2, #2
ldrh r6, [r4, #14]
- strh r1, [r3, r2] @ movhi
- mov r2, #3872
- strh r0, [r3, r2] @ movhi
- movw r2, #3858
- strh r6, [r3, r2] @ movhi
- mov r3, #0
- ldr r2, .L380+4
-.L364:
- strb r3, [r3, r2]
- add r3, r3, #1
- cmp r3, #32
- bne .L364
- ldrh r2, [r4, #14]
- ldrh r3, [r4, #20]
- cmp r3, r2, lsr #8
- bcs .L365
- ldr r2, .L380+4
- sub ip, r1, #1
- uxtb r7, r0
- mov r3, #0
- rsb sl, r0, r2
+ strh lr, [r2, r3] @ movhi
+ add r3, r3, #2
+ strh r0, [r2, r3] @ movhi
+ ldrh r3, [r4, #12]
+ strh r3, [r2, r1] @ movhi
+ movw r1, #3862
+ strh r6, [r2, r1] @ movhi
+ mov r2, #0
+ ldr r1, .L395+4
+.L379:
+ strb r2, [r2, r1]
+ add r2, r2, #1
+ cmp r2, #32
+ bne .L379
+ ldrh r1, [r4, #14]
+ ldrh r2, [r4, #20]
+ cmp r2, r1, lsr #8
+ bcs .L380
+ ldr r1, .L395+4
+ sub ip, r0, #1
+ uxtb r7, r3
+ mov r2, #0
+ rsb sl, r3, r1
str sl, [sp, #8]
- mla ip, r0, ip, r2
+ mla ip, r3, ip, r1
mov r8, r7, asl #1
uxtb r8, r8
str ip, [sp, #12]
- b .L366
-.L367:
- strb ip, [r9, r2]
+ b .L381
+.L382:
+ strb ip, [r9, r1]
add fp, ip, r7
add ip, ip, r8
add r5, r5, #1
- strb fp, [sl, r2]
+ strb fp, [sl, r1]
uxtb ip, ip
-.L369:
- cmp r5, r1
- add r2, r2, r0
- bcc .L367
- add r3, r3, #1
-.L366:
- cmp r3, r0
- bcs .L368
+.L384:
+ cmp r5, r0
+ add r1, r1, r3
+ bcc .L382
+ add r2, r2, #1
+.L381:
+ cmp r2, r3
+ bcs .L383
ldr fp, [sp, #8]
- mov r2, #0
- uxtb ip, r3
- mov r5, r2
- add r9, fp, r3
+ mov r1, #0
+ uxtb ip, r2
+ mov r5, r1
+ add r9, fp, r2
ldr fp, [sp, #12]
- add sl, fp, r3
- b .L369
-.L368:
- ldr r3, .L380
- movw r2, #3870
- mov r1, r1, asl #1
+ add sl, fp, r2
+ b .L384
+.L383:
+ ldr r2, .L395
+ movw r1, #3874
+ mov r0, r0, asl #1
mov r6, r6, lsr #1
- strh r1, [r3, r2] @ movhi
- movw r2, #3858
- strh r6, [r3, r2] @ movhi
-.L365:
- ldr r3, .L380
- movw r2, #3906
+ strh r0, [r2, r1] @ movhi
+ movw r1, #3862
+ strh r6, [r2, r1] @ movhi
+.L380:
+ ldr r2, .L395
+ movw r1, #3910
cmp lr, #1
- mov r1, #5
+ mov r0, #5
mov ip, #0
- ldr sl, .L380
- ldrb r8, [r3, #852] @ zero_extendqisi2
- strh r1, [r3, r2] @ movhi
- movw r1, #3908
- streqh lr, [r3, r2] @ movhi
+ ldr sl, .L395
+ ldrb r8, [r2, #852] @ zero_extendqisi2
+ strh r0, [r2, r1] @ movhi
+ movw r0, #3912
+ streqh lr, [r2, r1] @ movhi
cmp r8, #0
- movw r2, #3910
- strh ip, [r3, r1] @ movhi
- mov r1, #4352
- strh r1, [r3, r2] @ movhi
- ldrne r3, .L380
- movne r1, #384
- strneh r1, [r3, r2] @ movhi
- movw r3, #3870
- ldrh r5, [sl, r3]
- movw r3, #3848
- mul r5, r5, r0
- uxth r5, r5
- strh r5, [sl, r3] @ movhi
- add r3, r3, #10
- ldrh r6, [sl, r3]
- add r3, r3, #54
- mul r0, r0, r6
- uxth r0, r0
- strh r0, [sl, r3] @ movhi
- bl Ftl_log2
- movw r3, #3914
+ movw r1, #3914
+ strh ip, [r2, r0] @ movhi
+ mov r0, #4352
+ strh r0, [r2, r1] @ movhi
+ ldrne r2, .L395
+ movne r0, #384
ldrh fp, [r4, #18]
- movw r2, #3916
ldrh r9, [r4, #20]
- strh r0, [sl, r3] @ movhi
+ strneh r0, [r2, r1] @ movhi
+ movw r2, #3874
+ ldrh r5, [sl, r2]
+ movw r2, #3852
mov r0, r9
+ mul r5, r5, r3
+ uxth r5, r5
+ strh r5, [sl, r2] @ movhi
+ add r2, r2, #10
+ ldrh r6, [sl, r2]
+ add r2, r2, #54
+ mul r3, r3, r6
+ strh r3, [sl, r2] @ movhi
+ add r2, r2, #2
ldrh r3, [r4, #16]
mul r1, r3, r5
strh r3, [sl, r2] @ movhi
- add r2, r2, #2
- strh fp, [sl, r2] @ movhi
mov r2, #3920
+ strh fp, [sl, r2] @ movhi
+ add r2, r2, #2
strh r1, [sl, r2] @ movhi
add r2, r2, #2
strh r9, [sl, r2] @ movhi
str r3, [sp, #4]
bl Ftl_log2
- movw r2, #3924
- movw r1, #3926
+ movw r2, #3926
+ movw r1, #3928
cmp r6, #1024
strh r0, [sl, r2] @ movhi
mov r2, r9, asl #9
@@ -2989,14 +3107,14 @@ FtlConstantsInit:
add r1, r1, #2
mov r2, r2, lsr #8
strh r2, [sl, r1] @ movhi
- movw r2, #3930
+ movw r2, #3932
ldrh r1, [r4, #26]
mov r4, sl
strh r1, [sl, r2] @ movhi
uxtbhi r1, r6
mul r2, r6, r5
- str r2, [sl, #3864]
- movw r2, #3908
+ str r2, [sl, #3868]
+ movw r2, #3912
ldr r3, [sp, #4]
strhih r1, [sl, r2] @ movhi
ldrh r2, [sl, r2]
@@ -3007,17 +3125,17 @@ FtlConstantsInit:
mul r2, r9, r2
mul r3, r3, r2
mov r3, r3, asr #11
- str r3, [sl, #3932]
- movw sl, #3910
+ str r3, [sl, #3936]
+ movw sl, #3914
ldrh r0, [r4, sl]
mov r0, r0, asl #3
bl __aeabi_idiv
- mov r3, #3936
+ movw r3, #3940
uxth r0, r0
strh r0, [r4, r3] @ movhi
cmp r0, #4
- ldr r4, .L380
- ldrls r2, .L380
+ ldr r4, .L395
+ ldrls r2, .L395
movls r1, #4
strlsh r1, [r2, r3] @ movhi
cmp r8, #0
@@ -3025,7 +3143,7 @@ FtlConstantsInit:
movne r3, #640
strneh r3, [r4, sl] @ movhi
ldrh r2, [r4, sl]
- movw r3, #3938
+ movw r3, #3942
mov r2, r2, asr r7
add r7, r7, #9
mov r6, r6, asr r7
@@ -3036,67 +3154,67 @@ FtlConstantsInit:
strh r6, [r4, r3] @ movhi
mul r3, r5, r6
add r6, r6, #8
- str r3, [r4, #3944]
- mov r3, #3936
+ str r3, [r4, #3948]
+ movw r3, #3940
ldrh r0, [r4, r3]
bl __aeabi_uidiv
cmp r5, #1
- ldreq r3, .L380
+ ldreq r3, .L395
uxtah r6, r6, r0
- str r6, [r4, #3844]
- ldr r4, .L380
+ str r6, [r4, #3848]
+ ldr r4, .L395
addeq r6, r6, #4
- streq r6, [r3, #3844]
- ldr r0, [r4, #3844]
+ streq r6, [r3, #3848]
+ ldr r0, [r4, #3848]
uxth r0, r0
bl FtlSysBlkNumInit
- ldr r3, [r4, #3844]
- ldr r6, [r4, #3860]
+ ldr r3, [r4, #3848]
+ ldr r6, [r4, #3864]
mov r0, #2048
- str r3, [r4, #3948]
- movw r3, #3916
+ str r3, [r4, #3952]
+ movw r3, #3918
ldrh r3, [r4, r3]
mov r6, r6, asl #2
mul r6, r3, r6
- movw r3, #3924
+ movw r3, #3926
ldrh r3, [r4, r3]
add r3, r3, #9
mov r6, r6, lsr r3
- mov r3, #3952
+ movw r3, #3956
add r6, r6, #2
uxth r6, r6
strh r6, [r4, r3] @ movhi
- movw r3, #3922
+ movw r3, #3924
ldrh r5, [r4, r3]
mov r1, r5
bl __aeabi_idiv
- movw r3, #3954
- ldrb ip, [r4, #928] @ zero_extendqisi2
- ldr r1, [r4, #3944]
+ movw r3, #3958
+ ldrb ip, [r4, #3072] @ zero_extendqisi2
+ ldr r1, [r4, #3948]
cmp ip, #0
strh r0, [r4, r3] @ movhi
mov r3, #0
- str r3, [r4, #3956]
- mov r3, #3936
+ str r3, [r4, #3960]
+ movw r3, #3940
ldrh r0, [r4, r3]
add r2, r0, #3
strh r2, [r4, r3] @ movhi
add r2, r1, #3
- str r2, [r4, #3944]
+ str r2, [r4, #3948]
addne r0, r0, #4
addne r1, r1, #5
strneh r0, [r4, r3] @ movhi
- strne r1, [r4, #3944]
- bne .L377
-.L376:
+ strne r1, [r4, #3948]
+ bne .L392
+.L391:
cmp r2, #7
movls r3, #8
- strls r3, [r4, #3944]
-.L377:
- movw r3, #3960
+ strls r3, [r4, #3948]
+.L392:
+ movw r3, #3964
mov r2, #0
strh r2, [r4, r3] @ movhi
- mov r2, #3856
+ movw r2, #3860
ldrh r2, [r4, r2]
mov r0, #0
mov r1, r2, lsr #3
@@ -3104,16 +3222,16 @@ FtlConstantsInit:
add r2, r2, #52
add r6, r2, r6, asl #2
cmp r6, r5, asl #9
- ldrcc r2, .L380
+ ldrcc r2, .L395
movcc r1, #1
strcch r1, [r2, r3] @ movhi
add sp, sp, #20
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L381:
+.L396:
.align 2
-.L380:
+.L395:
.word .LANCHOR0
- .word .LANCHOR0+3874
+ .word .LANCHOR0+3878
.fnend
.size FtlConstantsInit, .-FtlConstantsInit
.align 2
@@ -3124,36 +3242,36 @@ IsBlkInVendorPart:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L389
- movw r2, #3962
+ ldr r3, .L404
+ movw r2, #3966
ldrh r2, [r3, r2]
cmp r2, #0
- beq .L387
- mov r2, #3936
+ beq .L402
+ movw r2, #3940
ldrh r1, [r3, r2]
- ldr r2, [r3, #3964]
+ ldr r2, [r3, #3968]
mov r3, #0
- b .L384
-.L386:
+ b .L399
+.L401:
ldrh ip, [r2], #2
cmp ip, r0
- beq .L388
+ beq .L403
add r3, r3, #1
uxth r3, r3
-.L384:
+.L399:
cmp r3, r1
- bne .L386
+ bne .L401
mov r0, #0
bx lr
-.L388:
+.L403:
mov r0, #1
bx lr
-.L387:
+.L402:
mov r0, r2
bx lr
-.L390:
+.L405:
.align 2
-.L389:
+.L404:
.word .LANCHOR0
.fnend
.size IsBlkInVendorPart, .-IsBlkInVendorPart
@@ -3164,36 +3282,36 @@ FtlCacheMetchLpa:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r2, .L399
+ ldr r2, .L414
stmfd sp!, {r4, lr}
.save {r4, lr}
- ldr r3, [r2, #3968]
+ ldr r3, [r2, #3972]
cmp r3, #0
- beq .L396
- ldr ip, [r2, #3972]
+ beq .L411
+ ldr ip, [r2, #3976]
mov r2, #0
-.L395:
+.L410:
ldr r4, [ip, #16]
cmp r4, r0
- bcc .L393
+ bcc .L408
cmp r4, r1
- bls .L397
-.L393:
+ bls .L412
+.L408:
add r2, r2, #1
add ip, ip, #36
cmp r2, r3
- bne .L395
+ bne .L410
mov r0, #0
ldmfd sp!, {r4, pc}
-.L397:
+.L412:
mov r0, #1
ldmfd sp!, {r4, pc}
-.L396:
+.L411:
mov r0, r3
ldmfd sp!, {r4, pc}
-.L400:
+.L415:
.align 2
-.L399:
+.L414:
.word .LANCHOR0
.fnend
.size FtlCacheMetchLpa, .-FtlCacheMetchLpa
@@ -3205,12 +3323,12 @@ FtlGetCap:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L402
- ldr r0, [r3, #3956]
+ ldr r3, .L417
+ ldr r0, [r3, #3960]
bx lr
-.L403:
+.L418:
.align 2
-.L402:
+.L417:
.word .LANCHOR0
.fnend
.size FtlGetCap, .-FtlGetCap
@@ -3222,12 +3340,12 @@ ftl_get_density:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L405
- ldr r0, [r3, #3956]
+ ldr r3, .L420
+ ldr r0, [r3, #3960]
bx lr
-.L406:
+.L421:
.align 2
-.L405:
+.L420:
.word .LANCHOR0
.fnend
.size ftl_get_density, .-ftl_get_density
@@ -3239,12 +3357,12 @@ FtlGetLpn:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L408
- ldr r0, [r3, #3976]
+ ldr r3, .L423
+ ldr r0, [r3, #3980]
bx lr
-.L409:
+.L424:
.align 2
-.L408:
+.L423:
.word .LANCHOR0
.fnend
.size FtlGetLpn, .-FtlGetLpn
@@ -3257,8 +3375,8 @@ FtlBbmMapBadBlock:
@ frame_needed = 0, uses_anonymous_args = 0
stmfd sp!, {r0, r1, r4, r5, r6, lr}
.save {r0, r1, r4, r5, r6, lr}
- movw r3, #3912
- ldr r4, .L411
+ movw r3, #3916
+ ldr r4, .L426
mov r5, r0
ldrh r6, [r4, r3]
mov r1, r6
@@ -3267,7 +3385,7 @@ FtlBbmMapBadBlock:
mls r3, r6, r2, r5
add r1, r4, r2, asl #2
mov r6, #1
- ldr r0, [r1, #4008]
+ ldr r0, [r1, #4012]
uxth r3, r3
and r1, r3, #31
mov ip, r3, lsr #5
@@ -3276,17 +3394,17 @@ FtlBbmMapBadBlock:
str r1, [r0, ip, asl #2]
str r1, [sp, #0]
mov r1, r5
- ldr r0, .L411+4
+ ldr r0, .L426+4
bl printk
- movw r3, #3986
+ movw r3, #3990
ldrh r2, [r4, r3]
mov r0, #0
add r2, r2, r6
strh r2, [r4, r3] @ movhi
ldmfd sp!, {r2, r3, r4, r5, r6, pc}
-.L412:
+.L427:
.align 2
-.L411:
+.L426:
.word .LANCHOR0
.word .LC3
.fnend
@@ -3301,8 +3419,8 @@ FtlBbmIsBadBlock:
@ frame_needed = 0, uses_anonymous_args = 0
stmfd sp!, {r3, r4, r5, r6, r7, lr}
.save {r3, r4, r5, r6, r7, lr}
- movw r3, #3912
- ldr r5, .L414
+ movw r3, #3916
+ ldr r5, .L429
mov r7, r0
ldrh r6, [r5, r3]
mov r1, r6
@@ -3315,14 +3433,14 @@ FtlBbmIsBadBlock:
and r4, r4, #31
uxth r0, r0
add r5, r5, r0, asl #2
- ldr r3, [r5, #4008]
+ ldr r3, [r5, #4012]
ldr r0, [r3, r2, asl #2]
mov r0, r0, lsr r4
and r0, r0, #1
ldmfd sp!, {r3, r4, r5, r6, r7, pc}
-.L415:
+.L430:
.align 2
-.L414:
+.L429:
.word .LANCHOR0
.fnend
.size FtlBbmIsBadBlock, .-FtlBbmIsBadBlock
@@ -3348,11 +3466,11 @@ FtlBbtCalcTotleCnt:
.save {r4, r5, r6, r7, r8, lr}
mov r4, #0
mov r5, r4
- ldr r6, .L421
- movw r8, #3912
- movw r7, #3870
- b .L418
-.L420:
+ ldr r6, .L436
+ movw r8, #3916
+ movw r7, #3874
+ b .L433
+.L435:
mov r0, r5
add r5, r5, #1
bl FtlBbmIsBadBlock
@@ -3360,17 +3478,17 @@ FtlBbtCalcTotleCnt:
cmp r0, #0
addne r4, r4, #1
uxthne r4, r4
-.L418:
+.L433:
ldrh r3, [r6, r8]
ldrh r2, [r6, r7]
mul r3, r2, r3
cmp r5, r3
- blt .L420
+ blt .L435
mov r0, r4
ldmfd sp!, {r4, r5, r6, r7, r8, pc}
-.L422:
+.L437:
.align 2
-.L421:
+.L436:
.word .LANCHOR0
.fnend
.size FtlBbtCalcTotleCnt, .-FtlBbtCalcTotleCnt
@@ -3383,14 +3501,14 @@ V2P_block:
@ frame_needed = 0, uses_anonymous_args = 0
stmfd sp!, {r3, r4, r5, r6, r7, lr}
.save {r3, r4, r5, r6, r7, lr}
- mov r3, #3872
- ldr r5, .L424
+ movw r3, #3876
+ ldr r5, .L439
mov r7, r1
mov r6, r0
ldrh r4, [r5, r3]
mov r1, r4
bl __aeabi_uidiv
- movw r3, #3912
+ movw r3, #3916
ldrh r5, [r5, r3]
mov r1, r4
mul r7, r4, r7
@@ -3400,9 +3518,9 @@ V2P_block:
add r1, r5, r1
uxth r0, r1
ldmfd sp!, {r3, r4, r5, r6, r7, pc}
-.L425:
+.L440:
.align 2
-.L424:
+.L439:
.word .LANCHOR0
.fnend
.size V2P_block, .-V2P_block
@@ -3413,8 +3531,8 @@ P2V_plane:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L427
- mov r2, #3872
+ ldr r3, .L442
+ movw r2, #3876
stmfd sp!, {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
mov r6, r0
@@ -3429,9 +3547,9 @@ P2V_plane:
add r1, r5, r1
uxth r0, r1
ldmfd sp!, {r4, r5, r6, pc}
-.L428:
+.L443:
.align 2
-.L427:
+.L442:
.word .LANCHOR0
.fnend
.size P2V_plane, .-P2V_plane
@@ -3444,25 +3562,25 @@ P2V_block_in_plane:
@ frame_needed = 0, uses_anonymous_args = 0
stmfd sp!, {r4, lr}
.save {r4, lr}
- movw r3, #3912
- ldr r4, .L430
+ movw r3, #3916
+ ldr r4, .L445
ldrh r1, [r4, r3]
bl __aeabi_uidivmod
- mov r3, #3872
+ movw r3, #3876
uxth r0, r1
ldrh r1, [r4, r3]
bl __aeabi_uidiv
uxth r0, r0
ldmfd sp!, {r4, pc}
-.L431:
+.L446:
.align 2
-.L430:
+.L445:
.word .LANCHOR0
.fnend
.size P2V_block_in_plane, .-P2V_block_in_plane
.align 2
- .type FtlFreeSysBlkQueueIn.part.5, %function
-FtlFreeSysBlkQueueIn.part.5:
+ .type FtlFreeSysBlkQueueIn.part.7, %function
+FtlFreeSysBlkQueueIn.part.7:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@@ -3470,35 +3588,35 @@ FtlFreeSysBlkQueueIn.part.5:
stmfd sp!, {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
mov r5, r0
- beq .L433
- ldr r4, .L434
- ldr r3, [r4, #4040]
+ beq .L448
+ ldr r4, .L449
+ ldr r3, [r4, #4044]
cmp r3, #0
- bne .L433
+ bne .L448
bl P2V_block_in_plane
mov r1, #1
mov r3, r5, asl #10
mov r2, r1
mov r6, r0
- ldr r0, [r4, #4044]
+ ldr r0, [r4, #4048]
mov r6, r6, asl #1
str r3, [r0, #4]
bl FlashEraseBlocks
- ldr r3, [r4, #4048]
+ ldr r3, [r4, #4052]
ldrh r2, [r3, r6]
add r2, r2, #1
strh r2, [r3, r6] @ movhi
- ldr r3, [r4, #4052]
+ ldr r3, [r4, #4056]
add r3, r3, #1
- str r3, [r4, #4052]
-.L433:
- ldr r3, .L434
- movw r2, #4062
- movw r0, #4056
+ str r3, [r4, #4056]
+.L448:
+ ldr r3, .L449
+ movw r2, #4066
+ movw r0, #4060
ldrh r1, [r3, r2]
add r1, r1, #1
strh r1, [r3, r2] @ movhi
- movw r2, #4060
+ mov r2, #4064
ldrh r1, [r3, r2]
add ip, r1, #4
add r1, r1, #1
@@ -3507,12 +3625,12 @@ FtlFreeSysBlkQueueIn.part.5:
strh r5, [ip, r0] @ movhi
strh r1, [r3, r2] @ movhi
ldmfd sp!, {r4, r5, r6, pc}
-.L435:
+.L450:
.align 2
-.L434:
+.L449:
.word .LANCHOR0
.fnend
- .size FtlFreeSysBlkQueueIn.part.5, .-FtlFreeSysBlkQueueIn.part.5
+ .size FtlFreeSysBlkQueueIn.part.7, .-FtlFreeSysBlkQueueIn.part.7
.align 2
.global ftl_cmp_data_ver
.type ftl_cmp_data_ver, %function
@@ -3522,13 +3640,13 @@ ftl_cmp_data_ver:
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
cmp r0, r1
- bls .L437
+ bls .L452
rsb r0, r1, r0
cmp r0, #-2147483648
movhi r0, #0
movls r0, #1
bx lr
-.L437:
+.L452:
rsb r0, r0, r1
cmp r0, #-2147483648
movls r0, #0
@@ -3544,15 +3662,15 @@ FtlFreeSysBlkQueueEmpty:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r2, .L440
- movw r3, #4062
+ ldr r2, .L455
+ movw r3, #4066
ldrh r0, [r2, r3]
rsbs r0, r0, #1
movcc r0, #0
bx lr
-.L441:
+.L456:
.align 2
-.L440:
+.L455:
.word .LANCHOR0
.fnend
.size FtlFreeSysBlkQueueEmpty, .-FtlFreeSysBlkQueueEmpty
@@ -3564,16 +3682,16 @@ FtlFreeSysBlkQueueFull:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r2, .L443
- movw r3, #4062
+ ldr r2, .L458
+ movw r3, #4066
ldrh r0, [r2, r3]
sub r2, r0, #1024
rsbs r0, r2, #0
adc r0, r0, r2
bx lr
-.L444:
+.L459:
.align 2
-.L443:
+.L458:
.word .LANCHOR0
.fnend
.size FtlFreeSysBlkQueueFull, .-FtlFreeSysBlkQueueFull
@@ -3590,15 +3708,15 @@ FtlFreeSysBlkQueueIn:
uxth r2, r2
cmp r2, r3
bxhi lr
- ldr r2, .L447
- movw r3, #4062
+ ldr r2, .L462
+ movw r3, #4066
ldrh r3, [r2, r3]
cmp r3, #1024
bxeq lr
- b FtlFreeSysBlkQueueIn.part.5
-.L448:
+ b FtlFreeSysBlkQueueIn.part.7
+.L463:
.align 2
-.L447:
+.L462:
.word .LANCHOR0
.fnend
.size FtlFreeSysBlkQueueIn, .-FtlFreeSysBlkQueueIn
@@ -3609,51 +3727,51 @@ FtlFreeSysBLkSort:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L453
- ldr r2, .L453+4
- ldr r1, .L453+8
+ ldr r3, .L468
+ ldr r2, .L468+4
+ ldr r1, .L468+8
stmfd sp!, {r4, r5, lr}
.save {r4, r5, lr}
ldrh r4, [r2, r3]
- movw r3, #4062
+ movw r3, #4066
ldrh r3, [r1, r3]
and r4, r4, #31
cmp r3, #0
ldmeqfd sp!, {r4, r5, pc}
- movw r3, #4058
+ movw r3, #4062
mov r0, #0
ldrh r2, [r1, r3]
- add r3, r3, #2
+ mov r3, #4064
ldrh r3, [r1, r3]
- b .L451
-.L452:
+ b .L466
+.L467:
add ip, r1, r2, asl #1
add r2, r2, #1
add ip, ip, #4064
add r0, r0, #1
mov r2, r2, asl #22
- ldrh r5, [ip, #0]
+ ldrh r5, [ip, #4]
add ip, r1, r3, asl #1
add r3, r3, #1
add ip, ip, #4064
mov r2, r2, lsr #22
uxth r0, r0
mov r3, r3, asl #22
- strh r5, [ip, #0] @ movhi
+ strh r5, [ip, #4] @ movhi
mov r3, r3, lsr #22
-.L451:
+.L466:
cmp r0, r4
- ldr ip, .L453+8
- blt .L452
- movw r1, #4058
+ ldr ip, .L468+8
+ blt .L467
+ movw r1, #4062
strh r2, [ip, r1] @ movhi
- movw r2, #4060
+ mov r2, #4064
strh r3, [ip, r2] @ movhi
ldmfd sp!, {r4, r5, pc}
-.L454:
+.L469:
.align 2
-.L453:
- .word -2044
+.L468:
+ .word -2040
.word .LANCHOR2
.word .LANCHOR0
.fnend
@@ -3667,73 +3785,73 @@ FtlFreeSysBlkQueueOut:
@ frame_needed = 0, uses_anonymous_args = 0
stmfd sp!, {r3, r4, r5, r6, r7, r8, sl, lr}
.save {r3, r4, r5, r6, r7, r8, sl, lr}
- movw r6, #4062
- ldr r4, .L462
- movw r7, #4058
-.L456:
+ movw r6, #4066
+ ldr r4, .L477
+ movw r7, #4062
+.L471:
ldrh r1, [r4, r6]
cmp r1, #0
- beq .L457
- ldrh r3, [r4, r7]
+ beq .L472
+ ldrh r2, [r4, r7]
sub r1, r1, #1
- ldr sl, [r4, #4040]
- add r2, r4, r3, asl #1
+ ldr sl, [r4, #4044]
+ add r3, r4, r2, asl #1
cmp sl, #0
- add r2, r2, #4064
- add r3, r3, #1
- bic r3, r3, #64512
- ldrh r5, [r2, #0]
+ add r3, r3, #4064
+ add r2, r2, #1
+ bic r2, r2, #64512
+ ldrh r5, [r3, #4]
strh r1, [r4, r6] @ movhi
- strh r3, [r4, r7] @ movhi
- bne .L458
+ strh r2, [r4, r7] @ movhi
+ bne .L473
mov r0, r5
bl P2V_block_in_plane
mov r3, r5, asl #10
mov r8, r0
- ldr r0, [r4, #4044]
+ ldr r0, [r4, #4048]
str r3, [r0, #4]
- ldrb r3, [r4, #928] @ zero_extendqisi2
+ ldrb r3, [r4, #3072] @ zero_extendqisi2
cmp r3, #0
- beq .L459
+ beq .L474
mov r1, sl
mov r2, #1
bl FlashEraseBlocks
-.L459:
+.L474:
mov r1, #1
- ldr r0, [r4, #4044]
+ ldr r0, [r4, #4048]
mov r2, r1
mov r8, r8, asl #1
bl FlashEraseBlocks
- ldr r3, [r4, #4048]
+ ldr r3, [r4, #4052]
ldrh r2, [r3, r8]
add r2, r2, #1
strh r2, [r3, r8] @ movhi
- ldr r3, [r4, #4052]
+ ldr r3, [r4, #4056]
add r3, r3, #1
- str r3, [r4, #4052]
- b .L458
-.L457:
- ldr r0, .L462+4
+ str r3, [r4, #4056]
+ b .L473
+.L472:
+ ldr r0, .L477+4
bl printk
-.L460:
- b .L460
-.L458:
+.L475:
+ b .L475
+.L473:
sub r2, r5, #1
movw r3, #65533
uxth r2, r2
cmp r2, r3
- bls .L461
+ bls .L476
mov r1, r5
ldrh r2, [r4, r6]
- ldr r0, .L462+8
+ ldr r0, .L477+8
bl printk
- b .L456
-.L461:
+ b .L471
+.L476:
mov r0, r5
ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc}
-.L463:
+.L478:
.align 2
-.L462:
+.L477:
.word .LANCHOR0
.word .LC4
.word .LC5
@@ -3746,35 +3864,35 @@ test_node_in_list:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L469
+ ldr r3, .L484
stmfd sp!, {r4, lr}
.save {r4, lr}
movw r4, #65535
ldr r2, [r0, #0]
- ldr r0, [r3, #-2024]
- ldr ip, .L469+4
+ ldr r0, [r3, #-2020]
+ ldr ip, .L484+4
rsb r3, r0, r2
mov r3, r3, asr #1
mul r3, ip, r3
mov ip, #6
uxth r3, r3
-.L466:
+.L481:
cmp r1, r3
- beq .L467
+ beq .L482
ldrh r3, [r2, #0]
cmp r3, r4
- beq .L468
+ beq .L483
mla r2, ip, r3, r0
- b .L466
-.L467:
+ b .L481
+.L482:
mov r0, #1
ldmfd sp!, {r4, pc}
-.L468:
+.L483:
mov r0, #0
ldmfd sp!, {r4, pc}
-.L470:
+.L485:
.align 2
-.L469:
+.L484:
.word .LANCHOR2
.word -1431655765
.fnend
@@ -3786,57 +3904,57 @@ insert_data_list:
.fnstart
@ args = 0, pretend = 0, frame = 16
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r2, .L486
- mov r3, #3856
+ ldr r2, .L501
+ movw r3, #3860
stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
.save {r4, r5, r6, r7, r8, r9, sl, fp, lr}
.pad #20
sub sp, sp, #20
ldrh r3, [r2, r3]
cmp r3, r0
- bls .L472
- ldr r1, .L486+4
+ bls .L487
+ ldr r1, .L501+4
mov ip, #6
mul ip, ip, r0
mvn r6, #0
- ldr r4, [r1, #-2024]
+ ldr r4, [r1, #-2020]
mov r8, r1
add r2, r4, ip
strh r6, [r2, #2] @ movhi
strh r6, [r4, ip] @ movhi
- ldr r3, [r1, #-2020]
+ ldr r3, [r1, #-2016]
cmp r3, #0
- beq .L485
-.L473:
- ldr r7, [r1, #-2016]
+ beq .L500
+.L488:
+ ldr r7, [r1, #-2012]
mov r5, r0, asl #1
ldrh r1, [r2, #4]
- ldr fp, [r8, #-2024]
+ ldr fp, [r8, #-2020]
ldrh sl, [r7, r5]
cmp r1, #0
- ldr r8, .L486+8
+ ldr r8, .L501+8
mulne r6, r1, sl
rsb r1, fp, r3
- mov sl, #3856
+ movw sl, #3860
mov r1, r1, asr #1
mul r1, r8, r1
- ldr r8, .L486
+ ldr r8, .L501
ldrh sl, [r8, sl]
- ldr r8, [r8, #4048]
+ ldr r8, [r8, #4052]
uxth r1, r1
add r5, r8, r5
str r5, [sp, #12]
mov r5, #0
str sl, [sp, #8]
str r8, [sp, #4]
-.L480:
+.L495:
add r5, r5, #1
ldr r8, [sp, #8]
uxth r5, r5
cmp r5, r8
- bhi .L472
+ bhi .L487
cmp r0, r1
- beq .L472
+ beq .L487
mov r9, r1, asl #1
ldrh r8, [r3, #4]
ldrh sl, [r7, r9]
@@ -3844,56 +3962,56 @@ insert_data_list:
mvneq r8, #0
mulne r8, r8, sl
cmp r8, r6
- bne .L476
+ bne .L491
ldr r8, [sp, #4]
ldrh sl, [r8, r9]
ldr r9, [sp, #12]
ldrh r8, [r9, #0]
cmp sl, r8
- bcc .L478
- b .L477
-.L476:
- bhi .L477
-.L478:
+ bcc .L493
+ b .L492
+.L491:
+ bhi .L492
+.L493:
ldrh r8, [r3, #0]
movw sl, #65535
cmp r8, sl
streqh r1, [r2, #2] @ movhi
streqh r0, [r3, #0] @ movhi
- ldreq r3, .L486+4
- streq r2, [r3, #-2012]
- beq .L472
-.L479:
+ ldreq r3, .L501+4
+ streq r2, [r3, #-2008]
+ beq .L487
+.L494:
mov r1, #6
mla r3, r1, r8, fp
mov r1, r8
- b .L480
-.L477:
+ b .L495
+.L492:
strh r1, [r4, ip] @ movhi
ldrh r1, [r3, #2]
strh r1, [r2, #2] @ movhi
- ldr r1, .L486+4
- ldr ip, [r1, #-2020]
+ ldr r1, .L501+4
+ ldr ip, [r1, #-2016]
cmp r3, ip
- bne .L481
+ bne .L496
strh r0, [r3, #2] @ movhi
-.L485:
- str r2, [r1, #-2020]
- b .L472
-.L481:
+.L500:
+ str r2, [r1, #-2016]
+ b .L487
+.L496:
ldrh r2, [r3, #2]
mov ip, #6
- ldr r1, [r1, #-2024]
+ ldr r1, [r1, #-2020]
mul r2, ip, r2
strh r0, [r1, r2] @ movhi
strh r0, [r3, #2] @ movhi
-.L472:
+.L487:
mov r0, #0
add sp, sp, #20
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L487:
+.L502:
.align 2
-.L486:
+.L501:
.word .LANCHOR0
.word .LANCHOR2
.word -1431655765
@@ -3909,17 +4027,17 @@ INSERT_DATA_LIST:
stmfd sp!, {r3, lr}
.save {r3, lr}
bl insert_data_list
- ldr r2, .L489
- ldr r3, .L489+4
+ ldr r2, .L504
+ ldr r3, .L504+4
ldrh r1, [r2, r3]
add r1, r1, #1
strh r1, [r2, r3] @ movhi
ldmfd sp!, {r3, pc}
-.L490:
+.L505:
.align 2
-.L489:
+.L504:
.word .LANCHOR2
- .word -2008
+ .word -2004
.fnend
.size INSERT_DATA_LIST, .-INSERT_DATA_LIST
.align 2
@@ -3933,69 +4051,69 @@ insert_free_list:
.save {r4, r5, r6, r7, r8, r9, sl, lr}
movw r6, #65535
cmp r0, r6
- beq .L492
- ldr r1, .L499
+ beq .L507
+ ldr r1, .L514
mov r5, #6
mul ip, r5, r0
mvn r3, #0
- ldr r4, [r1, #-2024]
+ ldr r4, [r1, #-2020]
add r2, r4, ip
strh r3, [r2, #2] @ movhi
strh r3, [r4, ip] @ movhi
- ldr r3, [r1, #-2004]
+ ldr r3, [r1, #-2000]
cmp r3, #0
- beq .L498
-.L493:
- ldr sl, [r1, #-2024]
+ beq .L513
+.L508:
+ ldr sl, [r1, #-2020]
mov r8, r0, asl #1
- ldr r9, .L499+4
+ ldr r9, .L514+4
rsb r1, sl, r3
- ldr r7, .L499+8
+ ldr r7, .L514+8
mov r1, r1, asr #1
- ldr r7, [r7, #4048]
+ ldr r7, [r7, #4052]
mul r1, r9, r1
mov r9, r5
ldrh r8, [r7, r8]
uxth r1, r1
-.L496:
+.L511:
mov r5, r1, asl #1
ldrh r5, [r7, r5]
cmp r5, r8
- bcs .L494
+ bcs .L509
ldrh r5, [r3, #0]
cmp r5, r6
streqh r1, [r2, #2] @ movhi
streqh r0, [r3, #0] @ movhi
- beq .L492
-.L495:
+ beq .L507
+.L510:
mla r3, r9, r5, sl
mov r1, r5
- b .L496
-.L494:
+ b .L511
+.L509:
ldrh r5, [r3, #2]
strh r5, [r2, #2] @ movhi
strh r1, [r4, ip] @ movhi
- ldr r1, .L499
- ldr ip, [r1, #-2004]
+ ldr r1, .L514
+ ldr ip, [r1, #-2000]
cmp r3, ip
- bne .L497
+ bne .L512
strh r0, [r3, #2] @ movhi
-.L498:
- str r2, [r1, #-2004]
- b .L492
-.L497:
+.L513:
+ str r2, [r1, #-2000]
+ b .L507
+.L512:
ldrh r2, [r3, #2]
mov ip, #6
- ldr r1, [r1, #-2024]
+ ldr r1, [r1, #-2020]
mul r2, ip, r2
strh r0, [r1, r2] @ movhi
strh r0, [r3, #2] @ movhi
-.L492:
+.L507:
mov r0, #0
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
-.L500:
+.L515:
.align 2
-.L499:
+.L514:
.word .LANCHOR2
.word -1431655765
.word .LANCHOR0
@@ -4011,17 +4129,17 @@ INSERT_FREE_LIST:
stmfd sp!, {r3, lr}
.save {r3, lr}
bl insert_free_list
- ldr r2, .L502
- ldr r3, .L502+4
+ ldr r2, .L517
+ ldr r3, .L517+4
ldrh r1, [r2, r3]
add r1, r1, #1
strh r1, [r2, r3] @ movhi
ldmfd sp!, {r3, pc}
-.L503:
+.L518:
.align 2
-.L502:
+.L517:
.word .LANCHOR2
- .word -2000
+ .word -1996
.fnend
.size INSERT_FREE_LIST, .-INSERT_FREE_LIST
.align 2
@@ -4031,10 +4149,10 @@ List_remove_node:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr ip, .L509
+ ldr ip, .L524
mov r2, #6
mul r1, r2, r1
- ldr r3, [ip, #-2024]
+ ldr r3, [ip, #-2020]
stmfd sp!, {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
add r5, r3, r1
@@ -4042,7 +4160,7 @@ List_remove_node:
movw r6, #65535
cmp r5, r4
ldrh r4, [r3, r1]
- bne .L505
+ bne .L520
cmp r4, r6
mlane r2, r2, r4, r3
moveq r2, #0
@@ -4050,33 +4168,33 @@ List_remove_node:
strne r2, [r0, #0]
mvnne r0, #0
strneh r0, [r2, #2] @ movhi
- b .L507
-.L505:
+ b .L522
+.L520:
cmp r4, r6
ldrh r0, [r5, #2]
- bne .L508
+ bne .L523
cmp r0, r4
mulne r2, r2, r0
mvnne r0, #0
strneh r0, [r3, r2] @ movhi
- b .L507
-.L508:
+ b .L522
+.L523:
mla r4, r2, r4, r3
strh r0, [r4, #2] @ movhi
ldrh r6, [r5, #2]
ldrh r4, [r3, r1]
- ldr r0, [ip, #-2024]
+ ldr r0, [ip, #-2020]
mul r2, r2, r6
strh r4, [r0, r2] @ movhi
-.L507:
+.L522:
mvn r2, #0
mov r0, #0
strh r2, [r3, r1] @ movhi
strh r2, [r5, #2] @ movhi
ldmfd sp!, {r4, r5, r6, pc}
-.L510:
+.L525:
.align 2
-.L509:
+.L524:
.word .LANCHOR2
.fnend
.size List_remove_node, .-List_remove_node
@@ -4091,25 +4209,25 @@ List_pop_index_node:
.save {r4, lr}
ldr r3, [r0, #0]
cmp r3, #0
- beq .L516
- ldr r2, .L517
+ beq .L531
+ ldr r2, .L532
movw lr, #65535
mov ip, #6
- ldr r4, [r2, #-2024]
- b .L513
-.L515:
+ ldr r4, [r2, #-2020]
+ b .L528
+.L530:
mla r3, ip, r2, r4
sub r1, r1, #1
uxth r1, r1
-.L513:
+.L528:
cmp r1, #0
- beq .L514
+ beq .L529
ldrh r2, [r3, #0]
cmp r2, lr
- bne .L515
-.L514:
+ bne .L530
+.L529:
rsb r4, r4, r3
- ldr r3, .L517+4
+ ldr r3, .L532+4
mov r4, r4, asr #1
mul r4, r3, r4
uxth r4, r4
@@ -4117,12 +4235,12 @@ List_pop_index_node:
bl List_remove_node
mov r0, r4
ldmfd sp!, {r4, pc}
-.L516:
+.L531:
movw r0, #65535
ldmfd sp!, {r4, pc}
-.L518:
+.L533:
.align 2
-.L517:
+.L532:
.word .LANCHOR2
.word -1431655765
.fnend
@@ -4135,39 +4253,39 @@ List_get_gc_head_node:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r2, .L525
- ldr r3, [r2, #-2020]
+ ldr r2, .L540
+ ldr r3, [r2, #-2016]
cmp r3, #0
- beq .L524
- ldr r2, [r2, #-2024]
+ beq .L539
+ ldr r2, [r2, #-2020]
movw r1, #65535
mov ip, #6
- b .L521
-.L523:
+ b .L536
+.L538:
mla r3, ip, r3, r2
sub r0, r0, #1
uxth r0, r0
-.L521:
+.L536:
cmp r0, #0
- beq .L522
+ beq .L537
ldrh r3, [r3, #0]
cmp r3, r1
- bne .L523
+ bne .L538
mov r0, r1
bx lr
-.L522:
+.L537:
rsb r3, r2, r3
- ldr r0, .L525+4
+ ldr r0, .L540+4
mov r3, r3, asr #1
mul r0, r0, r3
uxth r0, r0
bx lr
-.L524:
+.L539:
movw r0, #65535
bx lr
-.L526:
+.L541:
.align 2
-.L525:
+.L540:
.word .LANCHOR2
.word -1431655765
.fnend
@@ -4182,27 +4300,27 @@ List_update_data_list:
stmfd sp!, {r3, r4, r5, lr}
.save {r3, r4, r5, lr}
mov r4, r0
- ldr r3, .L534
- ldr r2, .L534+4
+ ldr r3, .L549
+ ldr r2, .L549+4
ldrh r2, [r3, r2]
cmp r2, r0
- beq .L528
- ldr r2, .L534+8
+ beq .L543
+ ldr r2, .L549+8
ldrh r2, [r3, r2]
cmp r2, r0
- beq .L528
- ldr r2, .L534+12
+ beq .L543
+ ldr r2, .L549+12
ldrh r2, [r3, r2]
cmp r2, r0
- beq .L528
+ beq .L543
mov r5, #6
- ldr r2, [r3, #-2024]
+ ldr r2, [r3, #-2020]
mul r5, r5, r0
- ldr r0, [r3, #-2020]
+ ldr r0, [r3, #-2016]
add r1, r2, r5
cmp r1, r0
- beq .L528
- ldr ip, [r3, #-2016]
+ beq .L543
+ ldr ip, [r3, #-2012]
mov r3, r4, asl #1
ldrh r0, [ip, r3]
ldrh r3, [r1, #4]
@@ -4212,14 +4330,14 @@ List_update_data_list:
mvneq r0, #0
movw r1, #65535
cmp r3, r1
- bne .L530
+ bne .L545
ldrh r1, [r2, r5]
cmp r1, r3
- beq .L528
-.L530:
+ beq .L543
+.L545:
mov r1, #6
mla r3, r1, r3, r2
- ldr r1, .L534+16
+ ldr r1, .L549+16
rsb r2, r2, r3
mov r2, r2, asr #1
ldrh r3, [r3, #4]
@@ -4231,30 +4349,29 @@ List_update_data_list:
ldrh r2, [ip, r2]
mulne r3, r3, r2
cmp r0, r3
- bcs .L528
- ldr r0, .L534+20
+ bcs .L543
+ ldr r5, .L549
mov r1, r4
+ sub r0, r5, #2016
bl List_remove_node
- ldr r5, .L534
- ldr r3, .L534+24
+ ldr r3, .L549+20
mov r0, r4
ldrh r2, [r5, r3]
sub r2, r2, #1
strh r2, [r5, r3] @ movhi
bl INSERT_DATA_LIST
-.L528:
+.L543:
mov r0, #0
ldmfd sp!, {r3, r4, r5, pc}
-.L535:
+.L550:
.align 2
-.L534:
+.L549:
.word .LANCHOR2
- .word -1996
- .word -1948
- .word -1900
+ .word -1992
+ .word -1944
+ .word -1896
.word -1431655765
- .word .LANCHOR2-2020
- .word -2008
+ .word -2004
.fnend
.size List_update_data_list, .-List_update_data_list
.align 2
@@ -4270,13 +4387,13 @@ ftl_map_blk_alloc_new_blk:
ldrh r2, [r0, #10]
mov r5, #0
ldr r3, [r0, #12]
- b .L537
-.L542:
+ b .L552
+.L557:
mov r7, r3
add r3, r3, #2
ldrh r6, [r7, #0]
cmp r6, #0
- bne .L538
+ bne .L553
bl FtlFreeSysBlkQueueOut
movw r3, #65533
sub r2, r0, #1
@@ -4284,15 +4401,15 @@ ftl_map_blk_alloc_new_blk:
strh r0, [r7, #0] @ movhi
uxth r2, r2
cmp r2, r3
- bls .L539
- ldr r2, .L543
- movw r3, #4062
- ldr r0, .L543+4
+ bls .L554
+ ldr r2, .L558
+ movw r3, #4066
+ ldr r0, .L558+4
ldrh r2, [r2, r3]
bl printk
-.L540:
- b .L540
-.L539:
+.L555:
+ b .L555
+.L554:
ldr r3, [r4, #28]
strh r6, [r4, #2] @ movhi
add r3, r3, #1
@@ -4301,19 +4418,19 @@ ftl_map_blk_alloc_new_blk:
strh r5, [r4, #0] @ movhi
add r3, r3, #1
strh r3, [r4, #8] @ movhi
- b .L541
-.L538:
+ b .L556
+.L553:
add r5, r5, #1
uxth r5, r5
-.L537:
+.L552:
cmp r5, r2
- bne .L542
-.L541:
+ bne .L557
+.L556:
mov r0, #0
ldmfd sp!, {r3, r4, r5, r6, r7, pc}
-.L544:
+.L559:
.align 2
-.L543:
+.L558:
.word .LANCHOR0
.word .LC6
.fnend
@@ -4325,18 +4442,18 @@ select_l2p_ram_region:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r2, .L557
- movw r3, #3954
+ ldr r2, .L572
+ movw r3, #3958
stmfd sp!, {r4, r5, r6, r7, lr}
.save {r4, r5, r6, r7, lr}
movw r1, #65535
ldrh r3, [r2, r3]
- ldr r2, .L557+4
- ldr ip, [r2, #-1852]
+ ldr r2, .L572+4
+ ldr ip, [r2, #-1848]
mov r2, #0
mov r0, r2
- b .L546
-.L548:
+ b .L561
+.L563:
add r2, r2, #12
add r4, ip, r2
ldrh r4, [r4, #-12]
@@ -4344,62 +4461,62 @@ select_l2p_ram_region:
ldmeqfd sp!, {r4, r5, r6, r7, pc}
add r0, r0, #1
uxth r0, r0
-.L546:
+.L561:
cmp r0, r3
- bne .L548
+ bne .L563
mov r1, #0
mov r0, r3
mov r5, #-2147483648
mov r2, r1
- b .L549
-.L551:
+ b .L564
+.L566:
add r4, ip, r1
ldr r4, [r4, #4]
cmp r4, #0
- blt .L550
+ blt .L565
cmp r4, r5
movcc r5, r4
movcc r0, r2
-.L550:
+.L565:
add r2, r2, #1
add r1, r1, #12
uxth r2, r2
-.L549:
+.L564:
cmp r2, r3
- bne .L551
+ bne .L566
cmp r0, r3
ldmccfd sp!, {r4, r5, r6, r7, pc}
- ldr r2, .L557+8
+ ldr r2, .L572+8
mov r0, r3
- ldr r1, .L557+4
+ ldr r1, .L572+4
mvn r4, #0
ldrh r6, [r1, r2]
mov r2, #0
mov r1, r2
- b .L552
-.L554:
+ b .L567
+.L569:
add r5, ip, r2
ldr r5, [r5, #4]
cmp r5, r4
- bcs .L553
+ bcs .L568
ldrh r7, [ip, r2]
cmp r7, r6
movne r4, r5
movne r0, r1
-.L553:
+.L568:
add r1, r1, #1
add r2, r2, #12
uxth r1, r1
-.L552:
+.L567:
cmp r1, r3
- bne .L554
+ bne .L569
ldmfd sp!, {r4, r5, r6, r7, pc}
-.L558:
+.L573:
.align 2
-.L557:
+.L572:
.word .LANCHOR0
.word .LANCHOR2
- .word -1848
+ .word -1844
.fnend
.size select_l2p_ram_region, .-select_l2p_ram_region
.align 2
@@ -4409,8 +4526,8 @@ FtlUpdateVaildLpn:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L565
- ldr r2, .L565+4
+ ldr r3, .L580
+ ldr r2, .L580+4
stmfd sp!, {r4, r5, lr}
.save {r4, r5, lr}
ldrh r1, [r2, r3]
@@ -4418,36 +4535,36 @@ FtlUpdateVaildLpn:
add ip, r1, #1
mov r1, r3
strh ip, [r2, r3] @ movhi
- bhi .L560
+ bhi .L575
cmp r0, #0
ldmeqfd sp!, {r4, r5, pc}
-.L560:
- ldr r0, .L565+8
+.L575:
+ ldr r0, .L580+8
mov r3, #0
strh r3, [r2, r1] @ movhi
- mov r1, #3856
- str r3, [r2, #-1844]
+ movw r1, #3860
+ str r3, [r2, #-1840]
movw ip, #65535
ldrh r4, [r0, r1]
- ldr r1, [r2, #-2016]
- ldr r2, .L565+4
- b .L562
-.L564:
+ ldr r1, [r2, #-2012]
+ ldr r2, .L580+4
+ b .L577
+.L579:
ldrh r0, [r1], #2
add r3, r3, #1
cmp r0, ip
uxth r3, r3
- ldrne r5, [r2, #-1844]
+ ldrne r5, [r2, #-1840]
addne r0, r0, r5
- strne r0, [r2, #-1844]
-.L562:
+ strne r0, [r2, #-1840]
+.L577:
cmp r3, r4
- bne .L564
+ bne .L579
ldmfd sp!, {r4, r5, pc}
-.L566:
+.L581:
.align 2
-.L565:
- .word -1846
+.L580:
+ .word -1842
.word .LANCHOR2
.word .LANCHOR0
.fnend
@@ -4460,21 +4577,21 @@ ftl_set_blk_mode:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L571
+ ldr r3, .L586
mov r2, r0, lsr #5
cmp r1, #0
and r0, r0, #31
uxth r2, r2
mov ip, #1
- ldr r3, [r3, #-1840]
+ ldr r3, [r3, #-1836]
ldr r1, [r3, r2, asl #2]
orrne r0, r1, ip, asl r0
biceq r0, r1, ip, asl r0
str r0, [r3, r2, asl #2]
bx lr
-.L572:
+.L587:
.align 2
-.L571:
+.L586:
.word .LANCHOR2
.fnend
.size ftl_set_blk_mode, .-ftl_set_blk_mode
@@ -4486,17 +4603,17 @@ ftl_get_blk_mode:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L574
+ ldr r3, .L589
mov r2, r0, lsr #5
and r0, r0, #31
- ldr r3, [r3, #-1840]
+ ldr r3, [r3, #-1836]
ldr r3, [r3, r2, asl #2]
mov r0, r3, lsr r0
and r0, r0, #1
bx lr
-.L575:
+.L590:
.align 2
-.L574:
+.L589:
.word .LANCHOR2
.fnend
.size ftl_get_blk_mode, .-ftl_get_blk_mode
@@ -4507,16 +4624,16 @@ ftl_sb_update_avl_pages:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr ip, .L583
+ ldr ip, .L598
mov r3, #0
strh r3, [r0, #4] @ movhi
- movw r3, #3848
+ movw r3, #3852
stmfd sp!, {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
ldrh r3, [ip, r3]
movw ip, #65535
- b .L577
-.L579:
+ b .L592
+.L594:
add r4, r0, r2, asl #1
add r2, r2, #1
ldrh r4, [r4, #16]
@@ -4525,18 +4642,18 @@ ftl_sb_update_avl_pages:
ldrneh r4, [r0, #4]
addne r4, r4, #1
strneh r4, [r0, #4] @ movhi
-.L577:
+.L592:
cmp r2, r3
- bcc .L579
- ldr ip, .L583
- movw r2, #3916
+ bcc .L594
+ ldr ip, .L598
+ movw r2, #3918
movw r4, #65535
mvn r1, r1
ldrh r5, [ip, r2]
mov ip, r0
mov r2, #0
- b .L580
-.L582:
+ b .L595
+.L597:
ldrh r6, [ip, #16]
add r2, r2, #1
add ip, ip, #2
@@ -4546,13 +4663,13 @@ ftl_sb_update_avl_pages:
addne r6, r5, r6
addne r6, r6, r1
strneh r6, [r0, #4] @ movhi
-.L580:
+.L595:
cmp r2, r3
- bne .L582
+ bne .L597
ldmfd sp!, {r4, r5, r6, pc}
-.L584:
+.L599:
.align 2
-.L583:
+.L598:
.word .LANCHOR0
.fnend
.size ftl_sb_update_avl_pages, .-ftl_sb_update_avl_pages
@@ -4567,18 +4684,18 @@ make_superblock:
.save {r4, r5, r6, r7, r8, r9, sl, lr}
mov r4, r0
mov r5, #0
- ldr r6, .L591
+ ldr r6, .L606
strh r5, [r0, #4] @ movhi
- movw r8, #3848
+ movw r8, #3852
strb r5, [r4, #7]
mvn r7, #0
- b .L586
-.L588:
+ b .L601
+.L603:
add r3, r6, r5
ldrh r1, [r4, #0]
add sl, r5, #8
add r5, r5, #1
- ldrb r0, [r3, #3874] @ zero_extendqisi2
+ ldrb r0, [r3, #3878] @ zero_extendqisi2
bl V2P_block
mov sl, sl, asl #1
uxth r5, r5
@@ -4590,39 +4707,39 @@ make_superblock:
ldreqb r3, [r4, #7] @ zero_extendqisi2
addeq r3, r3, #1
streqb r3, [r4, #7]
-.L586:
+.L601:
ldrh r2, [r6, r8]
- ldr r3, .L591
+ ldr r3, .L606
cmp r2, r5
- bhi .L588
- movw r1, #3916
+ bhi .L603
+ movw r1, #3918
ldrb r2, [r4, #7] @ zero_extendqisi2
ldrh r1, [r3, r1]
mul r2, r1, r2
strh r2, [r4, #4] @ movhi
mov r2, #0
strb r2, [r4, #9]
- ldr r2, [r3, #3840]
+ ldr r2, [r3, #3844]
cmp r2, #0
- beq .L589
+ beq .L604
ldrh r1, [r4, #0]
- ldr r2, [r3, #4048]
+ ldr r2, [r3, #4052]
mov r3, r1, asl #1
ldrh r3, [r2, r3]
cmp r3, #79
movls r3, #1
strlsb r3, [r4, #9]
-.L589:
- ldr r3, .L591
+.L604:
+ ldr r3, .L606
mov r0, #0
ldrb r3, [r3, #852] @ zero_extendqisi2
cmp r3, #0
movne r3, #1
strneb r3, [r4, #9]
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
-.L592:
+.L607:
.align 2
-.L591:
+.L606:
.word .LANCHOR0
.fnend
.size make_superblock, .-make_superblock
@@ -4638,15 +4755,15 @@ update_multiplier_value:
mov r4, #0
mov r7, r0
mov r5, r4
- ldr r6, .L598
- movw sl, #3848
- movw r8, #3916
- b .L594
-.L596:
+ ldr r6, .L613
+ movw sl, #3852
+ movw r8, #3918
+ b .L609
+.L611:
add r3, r6, r5
mov r1, r7
add r5, r5, #1
- ldrb r0, [r3, #3874] @ zero_extendqisi2
+ ldrb r0, [r3, #3878] @ zero_extendqisi2
bl V2P_block
uxth r5, r5
bl FtlBbmIsBadBlock
@@ -4654,27 +4771,27 @@ update_multiplier_value:
ldreqh r3, [r6, r8]
addeq r4, r4, r3
uxtheq r4, r4
-.L594:
+.L609:
ldrh r3, [r6, sl]
cmp r3, r5
- bhi .L596
+ bhi .L611
cmp r4, #0
- beq .L597
+ beq .L612
mov r1, r4
mov r0, #32768
bl __aeabi_idiv
uxth r4, r0
-.L597:
- ldr r3, .L598+4
+.L612:
+ ldr r3, .L613+4
mov r2, #6
mov r0, #0
- ldr r3, [r3, #-2024]
+ ldr r3, [r3, #-2020]
mla r7, r2, r7, r3
strh r4, [r7, #4] @ movhi
ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc}
-.L599:
+.L614:
.align 2
-.L598:
+.L613:
.word .LANCHOR0
.word .LANCHOR2
.fnend
@@ -4687,24 +4804,24 @@ GetFreeBlockMinEraseCount:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L603
- ldr r0, [r3, #-2004]
+ ldr r3, .L618
+ ldr r0, [r3, #-2000]
cmp r0, #0
bxeq lr
- ldr r3, [r3, #-2024]
- ldr r2, .L603+4
+ ldr r3, [r3, #-2020]
+ ldr r2, .L618+4
rsb r0, r3, r0
- ldr r3, .L603+8
+ ldr r3, .L618+8
mov r0, r0, asr #1
- ldr r2, [r2, #4048]
+ ldr r2, [r2, #4052]
mul r3, r3, r0
uxth r3, r3
mov r3, r3, asl #1
ldrh r0, [r2, r3]
bx lr
-.L604:
+.L619:
.align 2
-.L603:
+.L618:
.word .LANCHOR2
.word .LANCHOR0
.word -1431655765
@@ -4717,13 +4834,13 @@ GetFreeBlockMaxEraseCount:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r2, .L612
+ ldr r2, .L627
stmfd sp!, {r4, r5, lr}
.save {r4, r5, lr}
- ldr r3, [r2, #-2004]
+ ldr r3, [r2, #-2000]
cmp r3, #0
- beq .L611
- ldr r1, .L612+4
+ beq .L626
+ ldr r1, .L627+4
mov ip, #7
mov r5, #6
movw r4, #65535
@@ -4732,39 +4849,39 @@ GetFreeBlockMaxEraseCount:
mov r1, r1, asr #3
cmp r0, r1
uxthgt r0, r1
- ldr r1, [r2, #-2024]
- ldr r2, .L612+8
+ ldr r1, [r2, #-2020]
+ ldr r2, .L627+8
rsb r3, r1, r3
mov r3, r3, asr #1
mul r3, r2, r3
mov r2, #0
uxth r3, r3
- b .L608
-.L610:
+ b .L623
+.L625:
mul ip, r5, r3
ldrh ip, [r1, ip]
cmp ip, r4
- beq .L609
+ beq .L624
add r2, r2, #1
mov r3, ip
uxth r2, r2
-.L608:
+.L623:
cmp r2, r0
- bne .L610
-.L609:
- ldr r2, .L612+12
+ bne .L625
+.L624:
+ ldr r2, .L627+12
mov r3, r3, asl #1
- ldr r2, [r2, #4048]
+ ldr r2, [r2, #4052]
ldrh r0, [r2, r3]
ldmfd sp!, {r4, r5, pc}
-.L611:
+.L626:
mov r0, r3
ldmfd sp!, {r4, r5, pc}
-.L613:
+.L628:
.align 2
-.L612:
+.L627:
.word .LANCHOR2
- .word -2000
+ .word -1996
.word -1431655765
.word .LANCHOR0
.fnend
@@ -4779,27 +4896,27 @@ FtlPrintInfo2buf:
stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
.save {r4, r5, r6, r7, r8, r9, sl, lr}
mov sl, r0
- ldr r6, .L624
+ ldr r6, .L639
add r4, sl, #12
.pad #32
sub sp, sp, #32
- ldr r1, .L624+4
+ ldr r1, .L639+4
bl strcpy
mov r0, r4
- ldr r1, .L624+8
- ldr r2, [r6, #3048]
+ ldr r1, .L639+8
+ ldr r2, [r6, #3044]
bl sprintf
- ldr r1, .L624+12
- ldr r2, [r6, #3932]
+ ldr r1, .L639+12
+ ldr r2, [r6, #3936]
add r4, r4, r0
mov r0, r4
bl sprintf
- ldr r3, .L624+16
- ldr r3, [r3, #3092]
+ ldr r3, .L639+16
+ ldr r3, [r3, #3220]
cmp r3, #1
add r4, r4, r0
- bne .L620
-.L615:
+ bne .L635
+.L630:
add r0, sp, #16
add r1, sp, #20
add r2, sp, #24
@@ -4808,368 +4925,368 @@ FtlPrintInfo2buf:
ldr r3, [sp, #24]
ldr r2, [sp, #16]
mov r0, r4
- ldr r1, .L624+20
+ ldr r1, .L639+20
str r3, [sp, #0]
ldr r3, [sp, #28]
- ldr r5, .L624+24
- ldr r7, .L624+28
+ ldr r5, .L639+24
+ ldr r7, .L639+28
str r3, [sp, #4]
ldr r3, [sp, #20]
bl sprintf
- ldr r1, .L624+32
- ldr r8, .L624+36
+ ldr r1, .L639+32
+ ldr r8, .L639+36
add r4, r4, r0
mov r0, r4
add r4, r4, #10
bl strcpy
- ldr r1, .L624+40
- mov r0, r4
- ldr r2, [r6, #3976]
- bl sprintf
- ldr r1, .L624+44
- ldr r2, [r5, #-1844]
- add r4, r4, r0
+ ldr r1, .L639+40
mov r0, r4
+ ldr r2, [r6, #3980]
bl sprintf
- ldr r1, .L624+48
- ldr r2, [r5, #-1836]
+ ldr r1, .L639+44
+ ldr r2, [r5, #-1840]
add r4, r4, r0
mov r0, r4
bl sprintf
- ldr r1, .L624+52
+ ldr r1, .L639+48
ldr r2, [r5, #-1832]
add r4, r4, r0
mov r0, r4
bl sprintf
- ldr r1, .L624+56
+ ldr r1, .L639+52
ldr r2, [r5, #-1828]
add r4, r4, r0
mov r0, r4
bl sprintf
- ldr r1, .L624+60
+ ldr r1, .L639+56
ldr r2, [r5, #-1824]
add r4, r4, r0
mov r0, r4
bl sprintf
- ldr r1, .L624+64
+ ldr r1, .L639+60
ldr r2, [r5, #-1820]
add r4, r4, r0
mov r0, r4
bl sprintf
- ldr r1, .L624+68
+ ldr r1, .L639+64
ldr r2, [r5, #-1816]
add r4, r4, r0
mov r0, r4
bl sprintf
+ ldr r1, .L639+68
ldr r2, [r5, #-1812]
- ldr r1, .L624+72
- mov r2, r2, lsr #11
add r4, r4, r0
mov r0, r4
bl sprintf
ldr r2, [r5, #-1808]
- ldr r1, .L624+76
+ ldr r1, .L639+72
mov r2, r2, lsr #11
add r4, r4, r0
mov r0, r4
bl sprintf
- ldr r1, .L624+80
ldr r2, [r5, #-1804]
+ ldr r1, .L639+76
+ mov r2, r2, lsr #11
add r4, r4, r0
mov r0, r4
bl sprintf
- ldr r1, .L624+84
+ ldr r1, .L639+80
ldr r2, [r5, #-1800]
add r4, r4, r0
mov r0, r4
bl sprintf
+ ldr r1, .L639+84
+ ldr r2, [r5, #-1796]
+ add r4, r4, r0
+ mov r0, r4
+ bl sprintf
add r4, r4, r0
bl FtlBbtCalcTotleCnt
- movw r2, #3986
- ldr r1, .L624+88
+ movw r2, #3990
+ ldr r1, .L639+88
ldrh r2, [r6, r2]
mov r3, r0
mov r0, r4
bl sprintf
- ldr r1, .L624+92
+ ldr r1, .L639+92
ldrh r2, [r5, r7]
add r4, r4, r0
mov r0, r4
bl sprintf
- ldr r1, .L624+96
- ldr r2, [r5, #-1796]
- add r4, r4, r0
- mov r0, r4
- bl sprintf
- ldr r1, .L624+100
+ ldr r1, .L639+96
ldr r2, [r5, #-1792]
add r4, r4, r0
mov r0, r4
bl sprintf
- ldr r1, .L624+104
+ ldr r1, .L639+100
ldr r2, [r5, #-1788]
add r4, r4, r0
mov r0, r4
bl sprintf
- ldr r1, .L624+108
- ldr r2, [r6, #4052]
+ ldr r1, .L639+104
+ ldr r2, [r5, #-1784]
add r4, r4, r0
mov r0, r4
bl sprintf
- ldr r1, .L624+112
- ldr r2, [r5, #-1784]
+ ldr r1, .L639+108
+ ldr r2, [r6, #4056]
add r4, r4, r0
mov r0, r4
bl sprintf
- ldr r1, .L624+116
+ ldr r1, .L639+112
ldr r2, [r5, #-1780]
add r4, r4, r0
mov r0, r4
bl sprintf
- ldr r3, .L624+120
- ldr r1, .L624+124
+ ldr r1, .L639+116
+ ldr r2, [r5, #-1776]
+ add r4, r4, r0
+ mov r0, r4
+ bl sprintf
+ ldr r3, .L639+120
+ ldr r1, .L639+124
ldrh r2, [r5, r3]
add r4, r4, r0
mov r0, r4
bl sprintf
- ldr r3, .L624+128
- ldr r1, .L624+132
+ ldr r3, .L639+128
+ ldr r1, .L639+132
ldrh r2, [r5, r3]
add r4, r4, r0
mov r0, r4
bl sprintf
- ldr r1, .L624+136
- ldr r2, [r6, #3956]
+ ldr r1, .L639+136
+ ldr r2, [r6, #3960]
add r4, r4, r0
mov r0, r4
bl sprintf
- ldr r1, .L624+140
- ldr r2, [r6, #3948]
+ ldr r1, .L639+140
+ ldr r2, [r6, #3952]
add r4, r4, r0
mov r0, r4
bl sprintf
- ldr r1, .L624+144
- ldr r2, [r6, #3844]
+ ldr r1, .L639+144
+ ldr r2, [r6, #3848]
add r4, r4, r0
mov r0, r4
bl sprintf
- movw r3, #4062
+ movw r3, #4066
ldrh r2, [r6, r3]
- ldr r1, .L624+148
+ ldr r1, .L639+148
add r4, r4, r0
mov r0, r4
bl sprintf
- mov r3, #3856
+ movw r3, #3860
ldrh r2, [r6, r3]
- ldr r1, .L624+152
+ ldr r1, .L639+152
add r4, r4, r0
mov r0, r4
bl sprintf
- ldr r3, .L624+156
- ldr r1, .L624+160
+ ldr r3, .L639+156
+ ldr r1, .L639+160
ldrh r2, [r5, r3]
add r4, r4, r0
mov r0, r4
bl sprintf
- ldr r1, .L624+164
- ldr r2, [r6, #3860]
+ ldr r1, .L639+164
+ ldr r2, [r6, #3864]
add r4, r4, r0
mov r0, r4
bl sprintf
- ldr r3, .L624+168
- ldr r1, .L624+172
+ ldr r3, .L639+168
+ ldr r1, .L639+172
ldrh r2, [r5, r3]
add r4, r4, r0
mov r0, r4
bl sprintf
- movw r3, #3980
+ mov r3, #3984
ldrh r2, [r6, r3]
- ldr r1, .L624+176
+ ldr r1, .L639+176
add r4, r4, r0
mov r0, r4
bl sprintf
- ldr r3, .L624+180
- ldr r1, .L624+184
+ ldr r3, .L639+180
+ ldr r1, .L639+184
ldrh r2, [r5, r3]
add r4, r4, r0
mov r0, r4
bl sprintf
- ldr r1, .L624+188
- ldrb r2, [r5, #-1990] @ zero_extendqisi2
+ ldr r1, .L639+188
+ ldrb r2, [r5, #-1986] @ zero_extendqisi2
add r4, r4, r0
mov r0, r4
bl sprintf
ldrh r2, [r5, r8]
- ldr r1, .L624+192
+ ldr r1, .L639+192
add r4, r4, r0
mov r0, r4
bl sprintf
- ldr r1, .L624+196
- ldrb r2, [r5, #-1988] @ zero_extendqisi2
+ ldr r1, .L639+196
+ ldrb r2, [r5, #-1984] @ zero_extendqisi2
add r4, r4, r0
mov r0, r4
bl sprintf
- ldr r3, .L624+200
- ldr r1, .L624+204
+ ldr r3, .L639+200
+ ldr r1, .L639+204
ldrh r2, [r5, r3]
add r4, r4, r0
mov r0, r4
bl sprintf
ldrh r3, [r5, r8]
- ldr r2, [r5, #-2016]
+ ldr r2, [r5, #-2012]
add r8, r8, #48
- ldr r1, .L624+208
+ ldr r1, .L639+208
mov r3, r3, asl #1
ldrh r2, [r2, r3]
add r4, r4, r0
mov r0, r4
bl sprintf
- ldr r3, .L624+212
- ldr r1, .L624+216
+ ldr r3, .L639+212
+ ldr r1, .L639+216
ldrh r2, [r5, r3]
add r4, r4, r0
mov r0, r4
bl sprintf
- ldr r1, .L624+220
- ldrb r2, [r5, #-1942] @ zero_extendqisi2
+ ldr r1, .L639+220
+ ldrb r2, [r5, #-1938] @ zero_extendqisi2
add r4, r4, r0
mov r0, r4
bl sprintf
ldrh r2, [r5, r8]
- ldr r1, .L624+224
+ ldr r1, .L639+224
add r4, r4, r0
mov r0, r4
bl sprintf
- ldr r1, .L624+228
- ldrb r2, [r5, #-1940] @ zero_extendqisi2
+ ldr r1, .L639+228
+ ldrb r2, [r5, #-1936] @ zero_extendqisi2
add r4, r4, r0
mov r0, r4
bl sprintf
- ldr r3, .L624+232
- ldr r1, .L624+236
+ ldr r3, .L639+232
+ ldr r1, .L639+236
ldrh r2, [r5, r3]
add r4, r4, r0
mov r0, r4
bl sprintf
ldrh r3, [r5, r8]
- ldr r2, [r5, #-2016]
- add r8, r8, #188
- ldr r1, .L624+240
+ ldr r2, [r5, #-2012]
+ add r8, r8, #192
+ ldr r1, .L639+240
mov r3, r3, asl #1
ldrh r2, [r2, r3]
add r4, r4, r0
mov r0, r4
bl sprintf
- ldr r3, .L624+244
- ldr r1, .L624+248
+ ldr r3, .L639+244
+ ldr r1, .L639+248
ldrh r2, [r5, r3]
add r4, r4, r0
mov r0, r4
bl sprintf
- ldr r1, .L624+252
- ldrb r2, [r5, #-1894] @ zero_extendqisi2
+ ldr r1, .L639+252
+ ldrb r2, [r5, #-1890] @ zero_extendqisi2
add r4, r4, r0
mov r0, r4
bl sprintf
- ldr r3, .L624+256
- ldr r1, .L624+260
+ ldr r3, .L639+256
+ ldr r1, .L639+260
ldrh r2, [r5, r3]
add r4, r4, r0
mov r0, r4
bl sprintf
- ldr r1, .L624+264
- ldrb r2, [r5, #-1892] @ zero_extendqisi2
+ ldr r1, .L639+264
+ ldrb r2, [r5, #-1888] @ zero_extendqisi2
add r4, r4, r0
mov r0, r4
bl sprintf
- ldr r3, .L624+268
- ldr r1, .L624+272
+ ldr r3, .L639+268
+ ldr r1, .L639+272
ldrh r2, [r5, r3]
add r4, r4, r0
mov r0, r4
bl sprintf
- ldr r3, .L624+276
- ldr r1, .L624+280
+ ldr r3, .L639+276
+ ldr r1, .L639+280
ldrh r2, [r5, r3]
add r4, r4, r0
mov r0, r4
bl sprintf
- ldr r1, .L624+284
- ldrb r2, [r5, #-1754] @ zero_extendqisi2
+ ldr r1, .L639+284
+ ldrb r2, [r5, #-1746] @ zero_extendqisi2
add r4, r4, r0
mov r0, r4
bl sprintf
- ldr r1, .L624+288
+ ldr r1, .L639+288
ldrh r2, [r5, r8]
add r4, r4, r0
mov r0, r4
bl sprintf
- ldr r1, .L624+292
- ldrb r2, [r5, #-1752] @ zero_extendqisi2
+ ldr r1, .L639+292
+ ldrb r2, [r5, #-1744] @ zero_extendqisi2
add r4, r4, r0
mov r0, r4
bl sprintf
- ldr r3, .L624+296
- ldr r1, .L624+300
+ ldr r3, .L639+296
+ ldr r1, .L639+300
ldrh r2, [r5, r3]
add r4, r4, r0
mov r0, r4
bl sprintf
- ldr r1, [r5, #-1624]
- ldr r3, [r6, #3840]
- ldr r2, [r5, #-1712]
+ ldr r1, [r5, #-1616]
+ ldr r3, [r6, #3844]
+ ldr r2, [r5, #-1704]
str r1, [sp, #0]
- ldr r1, [r5, #-1632]
+ ldr r1, [r5, #-1624]
orr r2, r3, r2, asl #8
str r1, [sp, #4]
- ldr r1, .L624+304
- ldr r3, [r5, #-1628]
+ ldr r1, .L639+304
+ ldr r3, [r5, #-1620]
add r4, r4, r0
mov r0, r4
bl sprintf
- ldr r1, .L624+308
- ldr r2, [r5, #-1636]
+ ldr r1, .L639+308
+ ldr r2, [r5, #-1628]
add r4, r4, r0
mov r0, r4
bl sprintf
- ldr r1, .L624+312
- ldr r2, [r5, #-1612]
+ ldr r1, .L639+312
+ ldr r2, [r5, #-1604]
add r4, r4, r0
mov r0, r4
bl sprintf
- ldr r3, .L624+316
- ldr r1, .L624+320
+ ldr r3, .L639+316
+ ldr r1, .L639+320
ldrh r2, [r5, r3]
add r4, r4, r0
mov r0, r4
bl sprintf
- ldr r3, .L624+324
- ldr r1, .L624+328
+ ldr r3, .L639+324
+ ldr r1, .L639+328
ldrh r2, [r5, r3]
add r4, r4, r0
mov r0, r4
bl sprintf
- ldr r1, .L624+332
- ldr r2, [r5, #-1192]
+ ldr r1, .L639+332
+ ldr r2, [r5, #-1184]
add r4, r4, r0
mov r0, r4
bl sprintf
- ldr r3, .L624+336
- ldr r1, .L624+340
+ ldr r3, .L639+336
+ ldr r1, .L639+340
ldrh r2, [r5, r3]
add r4, r4, r0
mov r0, r4
bl sprintf
add r4, r4, r0
bl GetFreeBlockMinEraseCount
- ldr r1, .L624+344
+ ldr r1, .L639+344
mov r2, r0
mov r0, r4
bl sprintf
add r4, r4, r0
ldrh r0, [r5, r7]
bl GetFreeBlockMaxEraseCount
- ldr r1, .L624+348
+ ldr r1, .L639+348
mov r2, r0
mov r0, r4
bl sprintf
@@ -5177,90 +5294,90 @@ FtlPrintInfo2buf:
movw r2, #65535
cmp r3, r2
add r4, r4, r0
- beq .L617
- ldr r2, [r5, #-2016]
+ beq .L632
+ ldr r2, [r5, #-2012]
mov r3, r3, asl #1
mov r0, r4
- ldr r1, .L624+352
+ ldr r1, .L639+352
ldrh r2, [r2, r3]
bl sprintf
add r4, r4, r0
-.L617:
+.L632:
mov r0, #0
- ldr r6, .L624+24
+ ldr r6, .L639+24
bl List_get_gc_head_node
- ldr r8, .L624
+ ldr r8, .L639
mov r5, #0
movw r9, #65535
uxth r3, r0
-.L619:
+.L634:
cmp r3, r9
- beq .L618
- ldr r1, [r6, #-2016]
+ beq .L633
+ ldr r1, [r6, #-2012]
mov r2, r3, asl #1
mov r7, #6
mov r0, r4
mul r7, r7, r3
ldrh r1, [r1, r2]
str r1, [sp, #0]
- ldr r1, [r6, #-2024]
+ ldr r1, [r6, #-2020]
add r1, r1, r7
ldrh r1, [r1, #4]
str r1, [sp, #4]
- ldr r1, [r8, #4048]
+ ldr r1, [r8, #4052]
ldrh r2, [r1, r2]
- ldr r1, .L624+356
+ ldr r1, .L639+356
str r2, [sp, #8]
mov r2, r5
bl sprintf
add r5, r5, #1
- ldr r3, [r6, #-2024]
+ ldr r3, [r6, #-2020]
cmp r5, #16
ldrh r3, [r3, r7]
add r4, r4, r0
- bne .L619
-.L618:
- ldr r6, .L624+24
+ bne .L634
+.L633:
+ ldr r6, .L639+24
mov r5, #0
- ldr r8, .L624
+ ldr r8, .L639
movw r9, #65535
- ldr r2, [r6, #-2004]
- ldr r3, [r6, #-2024]
+ ldr r2, [r6, #-2000]
+ ldr r3, [r6, #-2020]
rsb r3, r3, r2
- ldr r2, .L624+360
+ ldr r2, .L639+360
mov r3, r3, asr #1
mul r3, r2, r3
uxth r3, r3
-.L621:
+.L636:
cmp r3, r9
- beq .L620
+ beq .L635
mov r7, #6
- ldr r2, [r6, #-2024]
+ ldr r2, [r6, #-2020]
mul r7, r7, r3
mov r0, r4
add r2, r2, r7
ldrh r2, [r2, #4]
str r2, [sp, #0]
mov r2, r3, asl #1
- ldr r1, [r8, #4048]
+ ldr r1, [r8, #4052]
ldrh r2, [r1, r2]
- ldr r1, .L624+364
+ ldr r1, .L639+364
str r2, [sp, #4]
mov r2, r5
bl sprintf
add r5, r5, #1
- ldr r3, [r6, #-2024]
+ ldr r3, [r6, #-2020]
cmp r5, #4
ldrh r3, [r3, r7]
add r4, r4, r0
- bne .L621
-.L620:
+ bne .L636
+.L635:
rsb r0, sl, r4
add sp, sp, #32
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
-.L625:
+.L640:
.align 2
-.L624:
+.L639:
.word .LANCHOR0
.word .LC7
.word .LC8
@@ -5268,9 +5385,9 @@ FtlPrintInfo2buf:
.word .LANCHOR1
.word .LC10
.word .LANCHOR2
- .word -2000
- .word .LC11
.word -1996
+ .word .LC11
+ .word -1992
.word .LC12
.word .LC13
.word .LC14
@@ -5291,61 +5408,61 @@ FtlPrintInfo2buf:
.word .LC29
.word .LC30
.word .LC31
- .word -2042
+ .word -2038
.word .LC32
- .word -2044
+ .word -2040
.word .LC33
.word .LC34
.word .LC35
.word .LC36
.word .LC37
.word .LC38
- .word -1776
+ .word -1772
.word .LC39
.word .LC40
- .word -1772
+ .word -1768
.word .LC41
.word .LC42
- .word -1994
+ .word -1990
.word .LC43
.word .LC44
.word .LC45
.word .LC46
- .word -1992
+ .word -1988
.word .LC47
.word .LC48
- .word -1946
+ .word -1942
.word .LC49
.word .LC50
.word .LC51
.word .LC52
- .word -1944
+ .word -1940
.word .LC53
.word .LC54
- .word -1898
+ .word -1894
.word .LC55
.word .LC56
- .word -1900
+ .word -1896
.word .LC57
.word .LC58
- .word -1896
+ .word -1892
.word .LC59
- .word -1758
+ .word -1750
.word .LC60
.word .LC61
.word .LC62
.word .LC63
- .word -1756
+ .word -1748
.word .LC64
.word .LC65
.word .LC66
.word .LC67
- .word -1196
+ .word -1188
.word .LC68
- .word -1194
+ .word -1186
.word .LC69
.word .LC70
- .word -1188
+ .word -1180
.word .LC71
.word .LC72
.word .LC73
@@ -5365,8 +5482,8 @@ ftl_proc_ftl_read:
stmfd sp!, {r3, r4, r5, lr}
.save {r3, r4, r5, lr}
mov r4, r0
- ldr r1, .L627
- ldr r2, .L627+4
+ ldr r1, .L642
+ ldr r2, .L642+4
bl sprintf
add r5, r4, r0
mov r0, r5
@@ -5374,9 +5491,9 @@ ftl_proc_ftl_read:
add r0, r5, r0
rsb r0, r4, r0
ldmfd sp!, {r3, r4, r5, pc}
-.L628:
+.L643:
.align 2
-.L627:
+.L642:
.word .LC77
.word .LC78
.fnend
@@ -5388,85 +5505,85 @@ GetSwlReplaceBlock:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L654
+ ldr r3, .L669
stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
.save {r4, r5, r6, r7, r8, r9, sl, fp, lr}
.pad #20
sub sp, sp, #20
- ldr r1, [r3, #-1788]
- ldr r2, [r3, #-1780]
+ ldr r1, [r3, #-1784]
+ ldr r2, [r3, #-1776]
cmp r1, r2
- bcs .L630
- ldr r0, .L654+4
- mov r1, #3856
+ bcs .L645
+ ldr r0, .L669+4
+ movw r1, #3860
mov r2, #0
- str r2, [r3, #-1796]
+ str r2, [r3, #-1792]
ldrh r1, [r0, r1]
- ldr r0, [r0, #4048]
- b .L631
-.L632:
+ ldr r0, [r0, #4052]
+ b .L646
+.L647:
ldrh lr, [r0], #2
add r2, r2, #1
- ldr ip, [r3, #-1796]
+ ldr ip, [r3, #-1792]
add ip, lr, ip
- str ip, [r3, #-1796]
-.L631:
+ str ip, [r3, #-1792]
+.L646:
cmp r2, r1
- ldr r4, .L654
- bcc .L632
- ldr r5, [r4, #-1796]
+ ldr r4, .L669
+ bcc .L647
+ ldr r5, [r4, #-1792]
mov r0, r5
bl __aeabi_uidiv
- ldr r2, .L654+4
- movw r3, #3906
+ ldr r2, .L669+4
+ movw r3, #3910
ldrh r1, [r2, r3]
- str r0, [r4, #-1788]
- ldr r0, [r4, #-1792]
+ str r0, [r4, #-1784]
+ ldr r0, [r4, #-1788]
rsb r0, r0, r5
bl __aeabi_uidiv
- str r0, [r4, #-1796]
- b .L633
-.L630:
- ldr r2, [r3, #-1784]
+ str r0, [r4, #-1792]
+ b .L648
+.L645:
+ ldr r2, [r3, #-1780]
cmp r1, r2
- bls .L633
+ bls .L648
add r2, r2, #1
- mov ip, #3856
- str r2, [r3, #-1784]
+ movw ip, #3860
+ str r2, [r3, #-1780]
mov r3, #0
- ldr r2, .L654+4
- b .L634
-.L635:
- ldr r0, [r2, #4048]
+ ldr r2, .L669+4
+ b .L649
+.L650:
+ ldr r0, [r2, #4052]
mov r1, r3, asl #1
add r3, r3, #1
ldrh r4, [r0, r1]
add r4, r4, #1
strh r4, [r0, r1] @ movhi
-.L634:
+.L649:
ldrh r1, [r2, ip]
cmp r3, r1
- bcc .L635
-.L633:
- ldr r3, .L654
- ldr r6, [r3, #-1780]
- ldr r5, [r3, #-1788]
+ bcc .L650
+.L648:
+ ldr r3, .L669
+ ldr r6, [r3, #-1776]
+ ldr r5, [r3, #-1784]
add r2, r6, #256
cmp r2, r5
mov r2, r3
- bls .L636
- ldr r3, [r3, #-1784]
+ bls .L651
+ ldr r3, [r3, #-1780]
add r1, r6, #768
cmp r1, r3
- bls .L636
- ldr r3, .L654+4
- ldr r3, [r3, #3840]
+ bls .L651
+ ldr r3, .L669+4
+ ldr r3, [r3, #3844]
cmp r3, #0
- beq .L653
+ beq .L668
cmp r6, #40
- bhi .L653
-.L636:
- ldr r3, .L654+8
+ bhi .L668
+.L651:
+ ldr r3, .L669+8
ldrh r0, [r2, r3]
add r0, r0, r0, asl #1
ubfx r0, r0, #2, #16
@@ -5474,108 +5591,108 @@ GetSwlReplaceBlock:
add r3, r6, #64
cmp r0, r3
mov r8, r0
- bcs .L638
+ bcs .L653
cmp r6, #40
- bhi .L653
-.L638:
- ldr r1, .L654
- ldr r3, [r1, #-2020]
+ bhi .L668
+.L653:
+ ldr r1, .L669
+ ldr r3, [r1, #-2016]
cmp r3, #0
- beq .L653
- ldr r2, .L654+4
- mov r0, #3856
+ beq .L668
+ ldr r2, .L669+4
+ movw r0, #3860
movw r7, #65535
mov r4, r7
mov fp, r7
ldrh sl, [r2, r0]
- ldr r0, [r1, #-2024]
- ldr r1, [r2, #4048]
+ ldr r0, [r1, #-2020]
+ ldr r1, [r2, #4052]
mov r2, #0
- b .L639
-.L642:
+ b .L654
+.L657:
add r2, r2, #1
uxth r2, r2
cmp r2, sl
- bhi .L653
+ bhi .L668
ldrh ip, [r3, #4]
cmp ip, #0
- beq .L640
+ beq .L655
rsb r3, r0, r3
- ldr ip, .L654+12
+ ldr ip, .L669+12
mov r3, r3, asr #1
mul r3, ip, r3
uxth r3, r3
mov ip, r3, asl #1
ldrh ip, [r1, ip]
cmp ip, r6
- bls .L650
+ bls .L665
cmp ip, r7
movcc r7, ip
movcc r4, r3
-.L640:
+.L655:
mov ip, #6
mla r3, ip, r9, r0
-.L639:
+.L654:
ldrh r9, [r3, #0]
cmp r9, fp
- bne .L642
- b .L641
-.L650:
+ bne .L657
+ b .L656
+.L665:
mov r4, r3
-.L641:
+.L656:
movw r3, #65535
cmp r4, r3
- beq .L637
+ beq .L652
mov r9, r4, asl #1
ldrh sl, [r1, r9]
cmp sl, r6
- bls .L643
+ bls .L658
bl GetFreeBlockMinEraseCount
cmp r0, r6
- ldrhi r3, .L654
- strhi r7, [r3, #-1780]
-.L643:
+ ldrhi r3, .L669
+ strhi r7, [r3, #-1776]
+.L658:
cmp sl, r5
- bcs .L653
+ bcs .L668
add r3, sl, #128
cmp r8, r3
- ble .L653
+ ble .L668
add r3, sl, #256
- ldr r6, .L654
+ ldr r6, .L669
cmp r3, r5
- bcc .L644
- ldr r3, [r6, #-1784]
+ bcc .L659
+ ldr r3, [r6, #-1780]
add sl, sl, #768
cmp sl, r3
- bcs .L653
-.L644:
- ldr r3, [r6, #-2016]
+ bcs .L668
+.L659:
+ ldr r3, [r6, #-2012]
mov r1, r4
- ldr r0, .L654+16
+ ldr r0, .L669+16
mov r2, r5
ldrh r3, [r3, r9]
str r3, [sp, #0]
- ldr r3, .L654+4
- ldr r3, [r3, #4048]
+ ldr r3, .L669+4
+ ldr r3, [r3, #4052]
ldrh r3, [r3, r9]
stmib sp, {r3, r8}
- ldr r3, [r6, #-1784]
+ ldr r3, [r6, #-1780]
bl printk
mov r3, #1
- str r3, [r6, #-1184]
- b .L637
-.L653:
+ str r3, [r6, #-1176]
+ b .L652
+.L668:
movw r4, #65535
-.L637:
+.L652:
mov r0, r4
add sp, sp, #20
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L655:
+.L670:
.align 2
-.L654:
+.L669:
.word .LANCHOR2
.word .LANCHOR0
- .word -2000
+ .word -1996
.word -1431655765
.word .LC79
.fnend
@@ -5591,19 +5708,19 @@ free_data_superblock:
cmp r0, r2
stmfd sp!, {r3, lr}
.save {r3, lr}
- beq .L657
- ldr r2, .L658
+ beq .L672
+ ldr r2, .L673
mov r3, r0, asl #1
mov r1, #0
- ldr r2, [r2, #-2016]
+ ldr r2, [r2, #-2012]
strh r1, [r2, r3] @ movhi
bl INSERT_FREE_LIST
-.L657:
+.L672:
mov r0, #0
ldmfd sp!, {r3, pc}
-.L659:
+.L674:
.align 2
-.L658:
+.L673:
.word .LANCHOR2
.fnend
.size free_data_superblock, .-free_data_superblock
@@ -5614,21 +5731,21 @@ FtlGcBufInit:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r2, .L668
+ ldr r2, .L683
mov r3, #0
stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
.save {r4, r5, r6, r7, r8, r9, sl, fp, lr}
- movw sl, #3848
- str r3, [r2, #-1180]
+ movw sl, #3852
+ str r3, [r2, #-1172]
mov r8, #12
- ldr r0, .L668+4
+ ldr r0, .L683+4
mov r7, #1
- movw r6, #3926
- movw fp, #3928
- b .L661
-.L662:
+ movw r6, #3928
+ movw fp, #3930
+ b .L676
+.L677:
mul r1, r8, r3
- ldr r4, [r2, #-1176]
+ ldr r4, [r2, #-1168]
add ip, r4, r1
str r7, [ip, #8]
ldrh ip, [r0, r6]
@@ -5636,22 +5753,22 @@ FtlGcBufInit:
add r5, ip, #3
cmp ip, #0
movlt ip, r5
- ldr r5, [r2, #-1172]
+ ldr r5, [r2, #-1164]
bic ip, ip, #3
add ip, r5, ip
str ip, [r4, r1]
ldrh ip, [r0, fp]
- ldr r9, [r2, #-1176]
+ ldr r9, [r2, #-1168]
mul ip, ip, r3
add r4, r9, r1
add r5, ip, #3
cmp ip, #0
movlt ip, r5
- ldr r5, [r2, #-1168]
+ ldr r5, [r2, #-1160]
bic ip, ip, #3
add ip, r5, ip
str ip, [r4, #4]
- ldr ip, [r2, #-1164]
+ ldr ip, [r2, #-1156]
mov r5, #36
ldr r1, [r9, r1]
mla ip, r5, r3, ip
@@ -5660,14 +5777,14 @@ FtlGcBufInit:
str r1, [ip, #8]
ldr r1, [r4, #4]
str r1, [ip, #12]
-.L661:
+.L676:
ldrh r1, [r0, sl]
cmp r3, r1
- bcc .L662
- b .L667
-.L664:
+ bcc .L677
+ b .L682
+.L679:
mul r2, r8, r1
- ldr r4, [r3, #-1176]
+ ldr r4, [r3, #-1168]
add r0, r4, r2
str r7, [r0, #8]
ldrh r0, [ip, r6]
@@ -5675,11 +5792,11 @@ FtlGcBufInit:
add sl, r0, #3
cmp r0, #0
movlt r0, sl
- ldr sl, [r3, #-1172]
+ ldr sl, [r3, #-1164]
bic r0, r0, #3
add r0, sl, r0
str r0, [r4, r2]
- ldr r0, [r3, #-1176]
+ ldr r0, [r3, #-1168]
add r0, r0, r2
ldrh r2, [ip, r5]
mul r2, r2, r1
@@ -5688,26 +5805,26 @@ FtlGcBufInit:
add r4, r2, #3
cmp r2, #0
movlt r2, r4
- ldr r4, [r3, #-1168]
+ ldr r4, [r3, #-1160]
bic r2, r2, #3
add r2, r4, r2
str r2, [r0, #4]
- b .L666
-.L667:
- ldr r3, .L668
+ b .L681
+.L682:
+ ldr r3, .L683
mov r8, #12
- ldr ip, .L668+4
+ ldr ip, .L683+4
mov r7, #0
- movw r6, #3926
- movw r5, #3928
-.L666:
- ldr r2, [r3, #-1160]
+ movw r6, #3928
+ movw r5, #3930
+.L681:
+ ldr r2, [r3, #-1152]
cmp r1, r2
- bcc .L664
+ bcc .L679
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L669:
+.L684:
.align 2
-.L668:
+.L683:
.word .LANCHOR2
.word .LANCHOR0
.fnend
@@ -5719,42 +5836,42 @@ FtlGcBufFree:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L677
+ ldr r3, .L692
stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
.save {r4, r5, r6, r7, r8, r9, sl, fp, lr}
mov r5, #36
- ldr r6, [r3, #-1160]
+ ldr r6, [r3, #-1152]
mov fp, #12
- ldr ip, [r3, #-1176]
+ ldr ip, [r3, #-1168]
mov r3, #0
mov r4, r3
- b .L671
-.L674:
+ b .L686
+.L689:
mul sl, fp, r2
add r8, ip, sl
ldr r9, [ip, sl]
ldr sl, [r7, #8]
cmp r9, sl
streq r4, [r8, #8]
- beq .L673
-.L672:
+ beq .L688
+.L687:
add r2, r2, #1
uxth r2, r2
-.L676:
+.L691:
cmp r2, r6
- bcc .L674
-.L673:
+ bcc .L689
+.L688:
add r3, r3, #1
uxth r3, r3
-.L671:
+.L686:
cmp r3, r1
ldmcsfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
mla r7, r5, r3, r0
mov r2, #0
- b .L676
-.L678:
+ b .L691
+.L693:
.align 2
-.L677:
+.L692:
.word .LANCHOR2
.fnend
.size FtlGcBufFree, .-FtlGcBufFree
@@ -5765,47 +5882,47 @@ FtlGcBufAlloc:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L686
+ ldr r3, .L701
stmfd sp!, {r4, r5, r6, r7, r8, sl, lr}
.save {r4, r5, r6, r7, r8, sl, lr}
mov r6, #12
- ldr r8, [r3, #-1160]
+ ldr r8, [r3, #-1152]
mov r5, #1
- ldr r7, [r3, #-1176]
+ ldr r7, [r3, #-1168]
mov r4, #36
mov r3, #0
- b .L680
-.L683:
+ b .L695
+.L698:
mla ip, r6, r2, r7
ldr sl, [ip, #8]
cmp sl, #0
- bne .L681
+ bne .L696
mla r2, r4, r3, r0
ldr sl, [ip, #0]
str r5, [ip, #8]
str sl, [r2, #8]
ldr ip, [ip, #4]
str ip, [r2, #12]
- b .L682
-.L681:
+ b .L697
+.L696:
add r2, r2, #1
uxth r2, r2
- b .L684
-.L685:
+ b .L699
+.L700:
mov r2, #0
-.L684:
+.L699:
cmp r2, r8
- bcc .L683
-.L682:
+ bcc .L698
+.L697:
add r3, r3, #1
uxth r3, r3
-.L680:
+.L695:
cmp r3, r1
- bcc .L685
+ bcc .L700
ldmfd sp!, {r4, r5, r6, r7, r8, sl, pc}
-.L687:
+.L702:
.align 2
-.L686:
+.L701:
.word .LANCHOR2
.fnend
.size FtlGcBufAlloc, .-FtlGcBufAlloc
@@ -5817,31 +5934,31 @@ IsBlkInGcList:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L693
- ldr r2, .L693+4
+ ldr r3, .L708
+ ldr r2, .L708+4
ldrh r1, [r3, r2]
- ldr r2, [r3, #-1152]
+ ldr r2, [r3, #-1144]
mov r3, #0
- b .L689
-.L691:
+ b .L704
+.L706:
ldrh ip, [r2], #2
cmp ip, r0
- beq .L692
+ beq .L707
add r3, r3, #1
uxth r3, r3
-.L689:
+.L704:
cmp r3, r1
- bne .L691
+ bne .L706
mov r0, #0
bx lr
-.L692:
+.L707:
mov r0, #1
bx lr
-.L694:
+.L709:
.align 2
-.L693:
+.L708:
.word .LANCHOR2
- .word -1156
+ .word -1148
.fnend
.size IsBlkInGcList, .-IsBlkInGcList
.align 2
@@ -5858,36 +5975,36 @@ FtlGcUpdatePage:
mov r5, r1
mov r6, r2
bl P2V_block_in_plane
- ldr r3, .L699
- ldr r2, .L699+4
+ ldr r3, .L714
+ ldr r2, .L714+4
ldrh ip, [r3, r2]
- ldr r2, [r3, #-1152]
+ ldr r2, [r3, #-1144]
mov r3, #0
mov r1, r2
- b .L696
-.L698:
+ b .L711
+.L713:
ldrh r7, [r1], #2
cmp r7, r0
- beq .L697
+ beq .L712
add r3, r3, #1
uxth r3, r3
-.L696:
+.L711:
cmp r3, ip
- bne .L698
+ bne .L713
mov r3, r3, asl #1
strh r0, [r2, r3] @ movhi
- ldr r2, .L699
- ldr r3, .L699+4
+ ldr r2, .L714
+ ldr r3, .L714+4
ldrh r1, [r2, r3]
add r1, r1, #1
strh r1, [r2, r3] @ movhi
-.L697:
- ldr r3, .L699
+.L712:
+ ldr r3, .L714
mov r0, #12
- ldr r2, .L699+8
+ ldr r2, .L714+8
ldrh r1, [r3, r2]
mul r1, r0, r1
- ldr r0, [r3, #-1148]
+ ldr r0, [r3, #-1140]
add ip, r0, r1
stmib ip, {r5, r6}
str r4, [r0, r1]
@@ -5895,12 +6012,12 @@ FtlGcUpdatePage:
add r1, r1, #1
strh r1, [r3, r2] @ movhi
ldmfd sp!, {r3, r4, r5, r6, r7, pc}
-.L700:
+.L715:
.align 2
-.L699:
+.L714:
.word .LANCHOR2
- .word -1156
- .word -1144
+ .word -1148
+ .word -1136
.fnend
.size FtlGcUpdatePage, .-FtlGcUpdatePage
.align 2
@@ -5914,49 +6031,49 @@ FtlGcRefreshOpenBlock:
.save {r3, r4, r5, r6, r7, r8, sl, lr}
mov r4, r0
mov r1, r4
- ldr r0, .L706
+ ldr r0, .L721
bl printk
- ldr r8, .L706+4
- ldr r3, .L706+8
+ ldr r8, .L721+4
+ ldr r3, .L721+8
ldrh sl, [r3, r8]
cmp sl, r4
- beq .L702
- ldr r6, .L706+12
+ beq .L717
+ ldr r6, .L721+12
ldrh r7, [r3, r6]
cmp r7, r4
- beq .L702
- ldr ip, .L706+16
+ beq .L717
+ ldr ip, .L721+16
ldrh r5, [r3, ip]
cmp r5, r4
- beq .L702
- ldr r1, .L706+20
+ beq .L717
+ ldr r1, .L721+20
ldrh r0, [r3, r1]
cmp r0, r4
- beq .L702
+ beq .L717
movw r2, #65535
cmp sl, r2
streqh r4, [r3, r8] @ movhi
- beq .L702
+ beq .L717
cmp r7, r2
streqh r4, [r3, r6] @ movhi
- beq .L702
+ beq .L717
cmp r5, r2
streqh r4, [r3, ip] @ movhi
- beq .L702
+ beq .L717
cmp r0, r2
streqh r4, [r3, r1] @ movhi
-.L702:
+.L717:
mov r0, #0
ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc}
-.L707:
+.L722:
.align 2
-.L706:
+.L721:
.word .LC80
- .word -1142
+ .word -1134
.word .LANCHOR2
- .word -1140
- .word -1138
- .word -1136
+ .word -1132
+ .word -1130
+ .word -1128
.fnend
.size FtlGcRefreshOpenBlock, .-FtlGcRefreshOpenBlock
.align 2
@@ -5970,110 +6087,109 @@ FtlGcRefreshBlock:
.save {r3, r4, r5, r6, r7, r8, sl, lr}
mov r4, r0
mov r1, r4
- ldr r0, .L719
+ ldr r0, .L734
bl printk
- ldr r8, .L719+4
- ldr r3, .L719+8
+ ldr r8, .L734+4
+ ldr r3, .L734+8
ldrh sl, [r3, r8]
cmp sl, r4
- beq .L716
- ldr r6, .L719+12
+ beq .L731
+ ldr r6, .L734+12
ldrh r7, [r3, r6]
cmp r7, r4
- beq .L716
- ldr ip, .L719+16
+ beq .L731
+ ldr ip, .L734+16
ldrh r5, [r3, ip]
cmp r5, r4
- beq .L716
- ldr r1, .L719+20
+ beq .L731
+ ldr r1, .L734+20
ldrh r0, [r3, r1]
cmp r0, r4
- beq .L717
+ beq .L732
movw r2, #65535
cmp sl, r2
streqh r4, [r3, r8] @ movhi
- beq .L716
+ beq .L731
cmp r7, r2
streqh r4, [r3, r6] @ movhi
- beq .L716
+ beq .L731
cmp r5, r2
streqh r4, [r3, ip] @ movhi
- beq .L716
+ beq .L731
cmp r0, r2
streqh r4, [r3, r1] @ movhi
mvnne r0, #0
ldmnefd sp!, {r3, r4, r5, r6, r7, r8, sl, pc}
-.L716:
+.L731:
mov r0, #0
ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc}
-.L717:
+.L732:
mov r0, #0
ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc}
-.L720:
+.L735:
.align 2
-.L719:
+.L734:
.word .LC80
- .word -1142
+ .word -1134
.word .LANCHOR2
- .word -1140
- .word -1138
- .word -1136
+ .word -1132
+ .word -1130
+ .word -1128
.fnend
.size FtlGcRefreshBlock, .-FtlGcRefreshBlock
.section .text.unlikely,"ax",%progbits
.align 2
- .type decrement_vpc_count.part.18, %function
-decrement_vpc_count.part.18:
+ .type decrement_vpc_count.part.20, %function
+decrement_vpc_count.part.20:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
stmfd sp!, {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
mov r6, r0, asl #1
- ldr r5, .L723
+ ldr r5, .L738
mov r4, r0
mov r1, r4
- ldr r0, .L723+4
- ldr r3, [r5, #-2016]
+ ldr r0, .L738+4
+ ldr r3, [r5, #-2012]
ldrh r2, [r3, r6]
bl printk
- ldr r3, [r5, #-2016]
+ ldr r3, [r5, #-2012]
mov r2, #32
- ldr r0, .L723+8
+ sub r0, r5, #2000
mov r1, r4
strh r2, [r3, r6] @ movhi
bl test_node_in_list
cmp r0, #0
- beq .L722
+ beq .L737
mov r1, r4
- ldr r0, .L723+8
+ sub r0, r5, #2000
bl List_remove_node
- ldr r3, .L723+12
+ ldr r3, .L738+8
mov r0, r4
ldrh r2, [r5, r3]
sub r2, r2, #1
strh r2, [r5, r3] @ movhi
bl INSERT_DATA_LIST
- ldr r3, [r5, #-2016]
- ldr r0, .L723+16
+ ldr r3, [r5, #-2012]
+ ldr r0, .L738+12
mov r1, r4
ldrh r2, [r3, r6]
bl printk
-.L722:
+.L737:
mov r0, r4
bl FtlGcRefreshBlock
mov r0, #0
ldmfd sp!, {r4, r5, r6, pc}
-.L724:
+.L739:
.align 2
-.L723:
+.L738:
.word .LANCHOR2
.word .LC81
- .word .LANCHOR2-2004
- .word -2000
+ .word -1996
.word .LC82
.fnend
- .size decrement_vpc_count.part.18, .-decrement_vpc_count.part.18
+ .size decrement_vpc_count.part.20, .-decrement_vpc_count.part.20
.text
.align 2
.global FtlGcMarkBadPhyBlk
@@ -6086,60 +6202,60 @@ FtlGcMarkBadPhyBlk:
.save {r3, r4, r5, r6, r7, lr}
mov r4, r0
bl P2V_block_in_plane
- ldr r7, .L730
+ ldr r7, .L745
mov r2, r4
- ldr r6, .L730+4
+ ldr r6, .L745+4
ldrh r1, [r7, r6]
mov r5, r0
- ldr r0, .L730+8
+ ldr r0, .L745+8
bl printk
mov r0, r5
bl FtlGcRefreshBlock
- ldr r3, .L730+12
- ldr r2, [r3, #3840]
+ ldr r3, .L745+12
+ ldr r2, [r3, #3844]
cmp r2, #0
- beq .L726
- ldr r3, [r3, #4048]
+ beq .L741
+ ldr r3, [r3, #4052]
mov r5, r5, asl #1
ldrh r2, [r3, r5]
cmp r2, #39
subhi r2, r2, #40
strhih r2, [r3, r5] @ movhi
-.L726:
+.L741:
ldrh r1, [r7, r6]
mov r3, #0
- ldr r2, .L730+16
- b .L727
-.L729:
+ ldr r2, .L745+16
+ b .L742
+.L744:
ldrh r0, [r2, #2]!
cmp r0, r4
- beq .L728
+ beq .L743
add r3, r3, #1
uxth r3, r3
-.L727:
+.L742:
cmp r3, r1
- bne .L729
+ bne .L744
cmp r3, #15
- bhi .L728
- ldr r2, .L730
- ldr r1, .L730+20
+ bhi .L743
+ ldr r2, .L745
+ ldr r1, .L745+20
add r0, r2, r3, asl #1
add r3, r3, #1
strh r4, [r0, r1] @ movhi
sub r1, r1, #2
strh r3, [r2, r1] @ movhi
-.L728:
+.L743:
mov r0, #0
ldmfd sp!, {r3, r4, r5, r6, r7, pc}
-.L731:
+.L746:
.align 2
-.L730:
+.L745:
.word .LANCHOR2
- .word -1134
+ .word -1126
.word .LC83
.word .LANCHOR0
- .word .LANCHOR2-1134
- .word -1132
+ .word .LANCHOR2-1126
+ .word -1124
.fnend
.size FtlGcMarkBadPhyBlk, .-FtlGcMarkBadPhyBlk
.align 2
@@ -6151,24 +6267,24 @@ FtlGcReFreshBadBlk:
@ frame_needed = 0, uses_anonymous_args = 0
stmfd sp!, {r3, r4, r5, lr}
.save {r3, r4, r5, lr}
- ldr r2, .L735
- ldr r3, .L735+4
+ ldr r2, .L750
+ ldr r3, .L750+4
ldrh r2, [r3, r2]
cmp r2, #0
- beq .L733
- ldr r1, .L735+8
+ beq .L748
+ ldr r1, .L750+8
ldrh r0, [r3, r1]
movw r1, #65535
cmp r0, r1
- bne .L733
- ldr r4, .L735+12
- ldr r5, .L735+4
+ bne .L748
+ ldr r4, .L750+12
+ ldr r5, .L750+4
ldrh r1, [r3, r4]
cmp r1, r2
movcs r2, #0
strcsh r2, [r3, r4] @ movhi
ldrh r2, [r5, r4]
- ldr r3, .L735+16
+ ldr r3, .L750+16
add r2, r5, r2, asl #1
ldrh r0, [r2, r3]
bl P2V_block_in_plane
@@ -6176,17 +6292,17 @@ FtlGcReFreshBadBlk:
ldrh r3, [r5, r4]
add r3, r3, #1
strh r3, [r5, r4] @ movhi
-.L733:
+.L748:
mov r0, #0
ldmfd sp!, {r3, r4, r5, pc}
-.L736:
+.L751:
.align 2
-.L735:
- .word -1134
+.L750:
+ .word -1126
.word .LANCHOR2
- .word -1142
- .word -1098
- .word -1132
+ .word -1134
+ .word -1090
+ .word -1124
.fnend
.size FtlGcReFreshBadBlk, .-FtlGcReFreshBadBlk
.align 2
@@ -6200,9 +6316,9 @@ ftl_memset:
stmfd sp!, {r4, lr}
.save {r4, lr}
mov r4, r0
- beq .L738
+ beq .L753
bl memset
-.L738:
+.L753:
mov r0, r4
ldmfd sp!, {r4, pc}
.fnend
@@ -6217,12 +6333,12 @@ FtlGcPageVarInit:
stmfd sp!, {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
mov r3, #0
- ldr r4, .L740
- mov r5, #3920
- ldr r2, .L740+4
+ ldr r4, .L755
+ movw r5, #3922
+ ldr r2, .L755+4
mov r1, #255
- ldr r6, .L740+8
- ldr r0, [r4, #-1152]
+ ldr r6, .L755+8
+ ldr r0, [r4, #-1144]
strh r3, [r4, r2] @ movhi
add r2, r2, #12
strh r3, [r4, r2] @ movhi
@@ -6231,17 +6347,17 @@ FtlGcPageVarInit:
bl ftl_memset
ldrh r3, [r6, r5]
mov r2, #12
- ldr r0, [r4, #-1148]
+ ldr r0, [r4, #-1140]
mov r1, #255
mul r2, r2, r3
bl ftl_memset
ldmfd sp!, {r4, r5, r6, lr}
b FtlGcBufInit
-.L741:
+.L756:
.align 2
-.L740:
+.L755:
.word .LANCHOR2
- .word -1156
+ .word -1148
.word .LANCHOR0
.fnend
.size FtlGcPageVarInit, .-FtlGcPageVarInit
@@ -6254,126 +6370,126 @@ SupperBlkListInit:
@ frame_needed = 0, uses_anonymous_args = 0
stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr}
.save {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr}
- movw r3, #3858
- ldr r7, .L752
+ movw r3, #3862
+ ldr r7, .L767
mov r2, #6
- ldr r4, .L752+4
+ ldr r4, .L767+4
mov r1, #0
mov r6, #0
ldrh r3, [r7, r3]
mov sl, r6
- ldr r0, [r4, #-2024]
+ ldr r0, [r4, #-2020]
mul r2, r2, r3
bl ftl_memset
- ldr r3, .L752+8
- str r6, [r4, #-2004]
- str r6, [r4, #-2020]
+ ldr r3, .L767+8
+ str r6, [r4, #-2000]
+ str r6, [r4, #-2016]
strh r6, [r4, r3] @ movhi
add r3, r3, #8
- str r6, [r4, #-2012]
+ str r6, [r4, #-2008]
strh r6, [r4, r3] @ movhi
- add r3, r3, #904
+ add r3, r3, #908
strh r6, [r4, r3] @ movhi
mov r4, r6
- b .L743
-.L745:
- add r2, r7, r2
- mov r1, fp
+ b .L758
+.L760:
+ add r1, r7, r1
add r9, r9, #1
- ldrb r0, [r2, #3874] @ zero_extendqisi2
- str r3, [sp, #4]
+ ldrb r0, [r1, #3878] @ zero_extendqisi2
+ mov r1, r3
+ stmia sp, {r2, r3}
bl V2P_block
bl FtlBbmIsBadBlock
- ldr r3, [sp, #4]
+ ldmia sp, {r2, r3}
uxth r9, r9
cmp r0, #0
- ldreqh r2, [r7, r3]
- addeq r5, r5, r2
+ ldreqh r1, [r7, r2]
+ addeq r5, r5, r1
uxtheq r5, r5
- b .L750
-.L751:
+ b .L765
+.L766:
mov r5, #0
- uxth fp, r4
+ uxth r3, r4
mov r9, r5
- movw r3, #3916
-.L750:
- movw r0, #3848
- sxth r2, r9
- ldrh r1, [r7, r0]
- cmp r2, r1
- blt .L745
+ movw fp, #3852
+ movw r2, #3918
+.L765:
+ ldrh r0, [r7, fp]
+ sxth r1, r9
+ cmp r1, r0
+ blt .L760
cmp r5, #0
- ldr r9, .L752+4
- beq .L746
+ ldr r9, .L767+4
+ beq .L761
sxth r1, r5
mov r0, #32768
bl __aeabi_idiv
uxth r5, r0
- b .L747
-.L746:
+ b .L762
+.L761:
sxth r3, r4
- ldr r2, [r9, #-2016]
+ ldr r2, [r9, #-2012]
mvn r1, #0
mov r3, r3, asl #1
strh r1, [r2, r3] @ movhi
-.L747:
+.L762:
sxth r1, r4
- ldr r0, [r9, #-2024]
- ldr r3, .L752+4
+ ldr r0, [r9, #-2020]
+ ldr r3, .L767+4
mov r2, r1, asl #1
add r1, r2, r1
add r1, r0, r1, asl #1
strh r5, [r1, #4] @ movhi
- ldr r1, .L752+12
+ ldr r1, .L767+12
ldrh r1, [r9, r1]
cmp r8, r1
- beq .L748
- ldr r1, .L752+16
+ beq .L763
+ ldr r1, .L767+16
ldrh r1, [r3, r1]
cmp r8, r1
- beq .L748
- ldr r1, .L752+20
+ beq .L763
+ ldr r1, .L767+20
ldrh r1, [r3, r1]
cmp r8, r1
- beq .L748
- ldr r3, [r3, #-2016]
+ beq .L763
+ ldr r3, [r3, #-2012]
uxth r0, r4
ldrh r3, [r3, r2]
cmp r3, #0
- bne .L749
+ bne .L764
add r6, r6, #1
uxth r6, r6
bl INSERT_FREE_LIST
- b .L748
-.L749:
+ b .L763
+.L764:
add sl, sl, #1
uxth sl, sl
bl INSERT_DATA_LIST
-.L748:
+.L763:
add r4, r4, #1
uxth r4, r4
-.L743:
- mov r3, #3856
+.L758:
+ movw r2, #3860
sxth r8, r4
- ldrh r3, [r7, r3]
+ ldrh r3, [r7, r2]
cmp r8, r3
- blt .L751
- ldr r3, .L752+4
+ blt .L766
+ ldr r3, .L767+4
mov r0, #0
- ldr r2, .L752+8
+ ldr r2, .L767+8
strh sl, [r3, r2] @ movhi
add r2, r2, #8
strh r6, [r3, r2] @ movhi
ldmfd sp!, {r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L753:
+.L768:
.align 2
-.L752:
+.L767:
.word .LANCHOR0
.word .LANCHOR2
- .word -2008
- .word -1996
- .word -1948
- .word -1900
+ .word -2004
+ .word -1992
+ .word -1944
+ .word -1896
.fnend
.size SupperBlkListInit, .-SupperBlkListInit
.align 2
@@ -6386,33 +6502,33 @@ FtlL2PDataInit:
stmfd sp!, {r3, r4, r5, r6, r7, r8, sl, lr}
.save {r3, r4, r5, r6, r7, r8, sl, lr}
mov r1, #0
- ldr r4, .L757
- movw r6, #3926
- ldr r5, .L757+4
- movw r7, #3954
+ ldr r4, .L772
+ movw r6, #3928
+ ldr r5, .L772+4
+ movw r7, #3958
mov r8, #12
- ldr r2, [r4, #3944]
- ldr r0, [r5, #-1092]
+ ldr r2, [r4, #3948]
+ ldr r0, [r5, #-1084]
mov r2, r2, asl #1
bl ftl_memset
ldrh r3, [r4, r6]
ldrh r2, [r4, r7]
mov r1, #255
- ldr r0, [r5, #-1088]
+ ldr r0, [r5, #-1080]
mul r2, r2, r3
bl ftl_memset
mov r2, #0
mov ip, r2
mvn r0, #0
- b .L755
-.L756:
+ b .L770
+.L771:
mul r3, r8, r2
- ldr r1, [r5, #-1852]
+ ldr r1, [r5, #-1848]
add sl, r1, r3
str ip, [sl, #4]
strh r0, [r1, r3] @ movhi
- ldr r1, [r5, #-1852]
- ldr sl, [r5, #-1088]
+ ldr r1, [r5, #-1848]
+ ldr sl, [r5, #-1080]
add r3, r1, r3
ldrh r1, [r4, r6]
mul r1, r2, r1
@@ -6421,49 +6537,50 @@ FtlL2PDataInit:
bic r1, r1, #3
add r1, sl, r1
str r1, [r3, #8]
-.L755:
+.L770:
ldrh r3, [r4, r7]
- ldr r1, .L757
+ ldr r1, .L772
cmp r3, r2
- ldr r3, .L757+4
- bhi .L756
- ldr r0, .L757+8
+ ldr r3, .L772+4
+ bhi .L771
+ ldr r0, .L772+8
mvn r2, #0
strh r2, [r3, r0] @ movhi
sub r0, r0, #2
strh r2, [r3, r0] @ movhi
- ldr r0, [r1, #3944]
- ldr r2, .L757+12
+ ldr r0, [r1, #3948]
+ ldr r2, .L772+12
strh r0, [r3, r2] @ movhi
- sub r2, r2, #6
- ldr r0, .L757+16
+ ldr r0, .L772+16
+ ldr r2, .L772+20
strh r0, [r3, r2] @ movhi
add r2, r2, #40
ldrh r0, [r3, r2]
sub r2, r2, #36
strh r0, [r3, r2] @ movhi
- mov r2, #3952
+ movw r2, #3956
ldrh r1, [r1, r2]
- ldr r2, .L757+20
+ ldr r2, .L772+24
strh r1, [r3, r2] @ movhi
- ldr r2, [r3, #-1036]
- str r2, [r3, #-1072]
- ldr r2, [r3, #-1032]
- str r2, [r3, #-1068]
- ldr r2, [r3, #-1092]
- str r2, [r3, #-1064]
ldr r2, [r3, #-1028]
+ str r2, [r3, #-1064]
+ ldr r2, [r3, #-1024]
str r2, [r3, #-1060]
+ ldr r2, [r3, #-1084]
+ str r2, [r3, #-1056]
+ ldr r2, [r3, #-1020]
+ str r2, [r3, #-1052]
ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc}
-.L758:
+.L773:
.align 2
-.L757:
+.L772:
.word .LANCHOR0
.word .LANCHOR2
- .word -1082
.word -1074
+ .word -1066
.word -3902
- .word -1078
+ .word -1072
+ .word -1070
.fnend
.size FtlL2PDataInit, .-FtlL2PDataInit
.align 2
@@ -6485,36 +6602,36 @@ ftl_free_no_use_map_blk:
mov r0, r5
bl ftl_memset
mov r3, #0
- b .L760
-.L764:
+ b .L775
+.L779:
ldr r0, [r7, r3, asl #2]
mov r2, #0
ubfx r0, r0, #10, #16
- b .L761
-.L763:
+ b .L776
+.L778:
mov r1, r2, asl #1
ldrh ip, [r6, r1]
cmp ip, r0
- bne .L762
+ bne .L777
cmp r0, #0
ldrneh ip, [r5, r1]
addne ip, ip, #1
strneh ip, [r5, r1] @ movhi
-.L762:
+.L777:
add r2, r2, #1
uxth r2, r2
-.L761:
+.L776:
ldrh r1, [r4, #10]
cmp r1, r2
- bhi .L763
+ bhi .L778
add r3, r3, #1
uxth r3, r3
-.L760:
+.L775:
ldrh r2, [r4, #6]
cmp r2, r3
- bhi .L764
- ldr r2, .L770
- movw r3, #3918
+ bhi .L779
+ ldr r2, .L785
+ mov r3, #3920
mov r8, #0
mov r7, r8
ldrh r2, [r2, r3]
@@ -6522,40 +6639,40 @@ ftl_free_no_use_map_blk:
mov r3, r3, asl #1
strh r2, [r5, r3] @ movhi
ldrh fp, [r5, #0]
- b .L765
-.L768:
+ b .L780
+.L783:
mov sl, r7, asl #1
ldrh r9, [r5, sl]
cmp fp, r9
- bls .L766
+ bls .L781
ldrh r3, [r6, sl]
cmp r3, #0
movne r8, r7
movne fp, r9
-.L766:
+.L781:
cmp r9, #0
- bne .L767
+ bne .L782
ldrh r0, [r6, sl]
cmp r0, #0
- beq .L767
+ beq .L782
mov r1, #1
bl FtlFreeSysBlkQueueIn
strh r9, [r6, sl] @ movhi
ldrh r3, [r4, #8]
sub r3, r3, #1
strh r3, [r4, #8] @ movhi
-.L767:
+.L782:
add r7, r7, #1
uxth r7, r7
-.L765:
+.L780:
ldrh r3, [r4, #10]
cmp r3, r7
- bhi .L768
+ bhi .L783
mov r0, r8
ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L771:
+.L786:
.align 2
-.L770:
+.L785:
.word .LANCHOR0
.fnend
.size ftl_free_no_use_map_blk, .-ftl_free_no_use_map_blk
@@ -6566,28 +6683,29 @@ FtlFreeSysBlkQueueInit:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L773
- movw r2, #4058
+ ldr r3, .L788
+ movw r2, #4062
stmfd sp!, {r4, lr}
.save {r4, lr}
mov r4, #0
strh r4, [r3, r2] @ movhi
- add r2, r2, #2
- mov r1, r4
+ mov r2, #4064
strh r4, [r3, r2] @ movhi
add r2, r2, #2
+ mov r1, r4
strh r4, [r3, r2] @ movhi
- movw r2, #4056
+ movw r2, #4060
strh r0, [r3, r2] @ movhi
- add r0, r3, #4064
mov r2, #2048
+ ldr r0, .L788+4
bl ftl_memset
mov r0, r4
ldmfd sp!, {r4, pc}
-.L774:
+.L789:
.align 2
-.L773:
+.L788:
.word .LANCHOR0
+ .word .LANCHOR0+4068
.fnend
.size FtlFreeSysBlkQueueInit, .-FtlFreeSysBlkQueueInit
.align 2
@@ -6598,10 +6716,10 @@ FtlBbtMemInit:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L776
- movw r2, #3980
+ ldr r3, .L791
+ mov r2, #3984
mvn r1, #0
- ldr r0, .L776+4
+ ldr r0, .L791+4
strh r1, [r3, r2] @ movhi
add r2, r2, #6
mov r1, #0
@@ -6609,11 +6727,11 @@ FtlBbtMemInit:
mov r1, #255
mov r2, #16
b ftl_memset
-.L777:
+.L792:
.align 2
-.L776:
+.L791:
.word .LANCHOR0
- .word .LANCHOR0+3992
+ .word .LANCHOR0+3996
.fnend
.size FtlBbtMemInit, .-FtlBbtMemInit
.align 2
@@ -6623,8 +6741,8 @@ FtlBbt2Bitmap:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L782
- ldr r2, .L782+4
+ ldr r3, .L797
+ ldr r2, .L797+4
stmfd sp!, {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
mov r5, r0
@@ -6637,7 +6755,7 @@ FtlBbt2Bitmap:
mov r3, #0
movw ip, #65535
mov r0, #1
-.L780:
+.L795:
ldrh r2, [r5, r3]
cmp r2, ip
ldmeqfd sp!, {r4, r5, r6, pc}
@@ -6648,12 +6766,12 @@ FtlBbt2Bitmap:
ldr r6, [r4, r1, asl #2]
orr r2, r6, r0, asl r2
str r2, [r4, r1, asl #2]
- bne .L780
+ bne .L795
ldmfd sp!, {r4, r5, r6, pc}
-.L783:
+.L798:
.align 2
-.L782:
- .word -1024
+.L797:
+ .word -1016
.word .LANCHOR2
.fnend
.size FtlBbt2Bitmap, .-FtlBbt2Bitmap
@@ -6667,55 +6785,55 @@ FtlVariablesInit:
stmfd sp!, {r3, r4, r5, r6, r7, lr}
.save {r3, r4, r5, r6, r7, lr}
mvn r3, #0
- ldr r6, .L785
+ ldr r6, .L800
mov r4, #0
- ldr r2, .L785+4
+ ldr r2, .L800+4
mov r1, r4
- ldr r5, .L785+8
- movw r7, #3858
- str r3, [r6, #-1004]
+ ldr r5, .L800+8
+ movw r7, #3862
+ str r3, [r6, #-996]
strh r3, [r6, r2] @ movhi
- movw r3, #3962
+ movw r3, #3966
strh r4, [r5, r3] @ movhi
- mov r3, #3936
+ movw r3, #3940
ldrh r2, [r5, r3]
- ldr r0, [r5, #3964]
- str r4, [r6, #-1020]
- mov r2, r2, asl #1
+ ldr r0, [r5, #3968]
str r4, [r6, #-1012]
- str r4, [r6, #-1008]
- str r4, [r5, #3840]
+ mov r2, r2, asl #1
+ str r4, [r6, #-1004]
+ str r4, [r6, #-1000]
+ str r4, [r5, #3844]
bl ftl_memset
ldrh r2, [r5, r7]
mov r1, r4
- ldr r0, [r5, #4048]
+ ldr r0, [r5, #4052]
mov r2, r2, asl #1
bl ftl_memset
ldrh r2, [r5, r7]
mov r1, r4
- ldr r0, [r6, #-1000]
+ ldr r0, [r6, #-992]
mov r2, r2, asl #1
bl ftl_memset
mov r1, r4
mov r2, #48
- ldr r0, .L785+12
+ ldr r0, .L800+12
bl ftl_memset
mov r1, r4
mov r2, #512
- ldr r0, .L785+16
+ ldr r0, .L800+16
bl ftl_memset
bl FtlGcBufInit
bl FtlL2PDataInit
mov r0, r4
ldmfd sp!, {r3, r4, r5, r6, r7, pc}
-.L786:
+.L801:
.align 2
-.L785:
+.L800:
.word .LANCHOR2
- .word -1016
+ .word -1008
.word .LANCHOR0
- .word .LANCHOR2-2072
- .word .LANCHOR2-1708
+ .word .LANCHOR2-2068
+ .word .LANCHOR2-1700
.fnend
.size FtlVariablesInit, .-FtlVariablesInit
.align 2
@@ -6728,162 +6846,162 @@ FtlMemInit:
stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
.save {r4, r5, r6, r7, r8, r9, sl, lr}
mov r6, #0
- ldr r4, .L818
+ ldr r4, .L833
mov r0, #1024
- ldr r3, .L818+4
+ ldr r3, .L833+4
mov r7, #12
- ldr r2, .L818+8
- movw sl, #3848
- ldr r5, .L818+12
+ ldr r2, .L833+8
+ movw sl, #3852
+ ldr r5, .L833+12
mov r8, #36
strh r6, [r4, r3] @ movhi
movw r3, #65535
- str r3, [r4, #-988]
+ str r3, [r4, #-980]
mvn r3, #0
strh r3, [r4, r2] @ movhi
add r2, r2, #2
- str r6, [r4, #-996]
+ str r6, [r4, #-988]
strh r3, [r4, r2] @ movhi
add r2, r2, #2
- str r6, [r4, #-1712]
+ str r6, [r4, #-1704]
strh r3, [r4, r2] @ movhi
add r2, r2, #2
- str r6, [r4, #-1804]
+ str r6, [r4, #-1800]
strh r3, [r4, r2] @ movhi
mov r2, #32
- ldr r3, .L818+16
- str r6, [r4, #-1800]
- str r6, [r4, #-1816]
+ ldr r3, .L833+16
+ str r6, [r4, #-1796]
+ str r6, [r4, #-1812]
strh r2, [r4, r3] @ movhi
add r3, r3, #2
mov r2, #128
- str r6, [r4, #-1828]
+ str r6, [r4, #-1824]
strh r2, [r4, r3] @ movhi
add r3, r3, #6
- str r6, [r4, #-1832]
+ str r6, [r4, #-1828]
strh r6, [r4, r3] @ movhi
add r3, r3, #54
- str r6, [r4, #-1824]
+ str r6, [r4, #-1820]
strh r6, [r4, r3] @ movhi
add r3, r3, #158
- str r6, [r4, #-1820]
+ str r6, [r4, #-1816]
strh r6, [r4, r3] @ movhi
sub r3, r3, #122
- str r6, [r4, #-1836]
+ str r6, [r4, #-1832]
strh r6, [r4, r3] @ movhi
- movw r3, #3922
+ movw r3, #3924
ldrh r1, [r5, r3]
- str r6, [r4, #-1796]
str r6, [r4, #-1792]
- str r6, [r5, #4052]
- str r6, [r4, #-1784]
+ str r6, [r4, #-1788]
+ str r6, [r5, #4056]
str r6, [r4, #-1780]
- str r6, [r4, #-992]
- str r6, [r4, #-1184]
+ str r6, [r4, #-1776]
str r6, [r4, #-984]
- str r6, [r4, #-1192]
- str r6, [r4, #-980]
+ str r6, [r4, #-1176]
+ str r6, [r4, #-976]
+ str r6, [r4, #-1184]
+ str r6, [r4, #-972]
bl __aeabi_idiv
- movw r3, #3848
+ movw r3, #3852
ldrh r3, [r5, r3]
- str r6, [r5, #3968]
- mov r6, #3920
+ str r6, [r5, #3972]
+ movw r6, #3922
mov r3, r3, asl #2
cmp r0, r3
- str r0, [r4, #-972]
+ str r0, [r4, #-964]
ldrh r0, [r5, r6]
- strhi r3, [r4, #-972]
- ldr r4, .L818
+ strhi r3, [r4, #-964]
+ ldr r4, .L833
mov r0, r0, asl #1
bl ftl_malloc
- str r0, [r4, #-1152]
+ str r0, [r4, #-1144]
ldrh r0, [r5, r6]
mul r0, r7, r0
bl ftl_malloc
ldrh r6, [r5, sl]
mul r6, r8, r6
mov r9, r6, asl #3
- str r0, [r4, #-1148]
+ str r0, [r4, #-1140]
mov r0, r9
bl ftl_malloc
- str r0, [r4, #-968]
+ str r0, [r4, #-960]
mov r0, r6
bl ftl_malloc
- str r0, [r4, #-964]
+ str r0, [r4, #-956]
mov r0, r9
bl ftl_malloc
- str r0, [r4, #-960]
+ str r0, [r4, #-952]
mov r0, r6
bl ftl_malloc
- str r0, [r5, #4044]
+ str r0, [r5, #4048]
mov r0, r6
bl ftl_malloc
- str r0, [r4, #-1164]
- ldr r0, [r4, #-972]
+ str r0, [r4, #-1156]
+ ldr r0, [r4, #-964]
mul r0, r8, r0
bl ftl_malloc
- movw r8, #3926
+ movw r8, #3928
ldrh r3, [r5, sl]
ldrh r6, [r5, r8]
mov r3, r3, asl #1
add r3, r3, #1
- str r3, [r4, #-1160]
- str r0, [r5, #3972]
+ str r3, [r4, #-1152]
+ str r0, [r5, #3976]
mov r0, r6
bl ftl_malloc
- str r0, [r4, #-956]
+ str r0, [r4, #-948]
mov r0, r6
bl ftl_malloc
- str r0, [r4, #-952]
+ str r0, [r4, #-944]
mov r0, r6
bl ftl_malloc
- str r0, [r4, #-948]
- ldr r0, [r4, #-1160]
+ str r0, [r4, #-940]
+ ldr r0, [r4, #-1152]
mul r0, r0, r6
bl ftl_malloc
- str r0, [r4, #-1172]
- ldr r0, [r4, #-972]
+ str r0, [r4, #-1164]
+ ldr r0, [r4, #-964]
mul r0, r0, r6
bl ftl_malloc
- str r0, [r4, #-944]
+ str r0, [r4, #-936]
mov r0, r6
bl ftl_malloc
- str r0, [r4, #-940]
+ str r0, [r4, #-932]
mov r0, r6
bl ftl_malloc
- movw r6, #3928
- str r0, [r4, #-936]
- ldr r0, [r4, #-1160]
+ movw r6, #3930
+ str r0, [r4, #-928]
+ ldr r0, [r4, #-1152]
mul r0, r7, r0
bl ftl_malloc
ldrh r3, [r5, r6]
ldrh sl, [r5, sl]
mul sl, sl, r3
- str r0, [r4, #-1176]
+ str r0, [r4, #-1168]
mov r0, sl
bl ftl_malloc
- str r0, [r4, #-932]
+ str r0, [r4, #-924]
mov r0, sl, asl #3
bl ftl_malloc
ldrh r3, [r5, r6]
- ldr sl, .L818+20
- str r0, [r4, #-928]
- ldr r0, [r4, #-1160]
+ ldr sl, .L833+20
+ str r0, [r4, #-920]
+ ldr r0, [r4, #-1152]
mul r0, r0, r3
bl ftl_malloc
ldrh r3, [r5, r6]
- movw r6, #3858
- str r0, [r4, #-1168]
- ldr r0, [r4, #-972]
+ movw r6, #3862
+ str r0, [r4, #-1160]
+ ldr r0, [r4, #-964]
mul r0, r0, r3
bl ftl_malloc
- str r0, [r4, #-924]
+ str r0, [r4, #-916]
ldrh r0, [r5, r6]
mov r0, r0, asl #1
uxth r0, r0
strh r0, [r4, sl] @ movhi
bl ftl_malloc
- str r0, [r4, #-1000]
+ str r0, [r4, #-992]
ldrh r0, [r4, sl]
add r0, r0, #544
add r0, r0, #3
@@ -6893,261 +7011,261 @@ FtlMemInit:
bl ftl_malloc
ldrh sl, [r5, r6]
mov sl, sl, asl #1
- str r0, [r4, #-916]
+ str r0, [r4, #-908]
add r0, r0, #32
- str r0, [r5, #4048]
+ str r0, [r5, #4052]
mov r0, sl
bl ftl_malloc
- str r0, [r4, #-912]
+ str r0, [r4, #-904]
mov r0, sl
bl ftl_malloc
- ldr sl, [r5, #3944]
+ ldr sl, [r5, #3948]
mov sl, sl, asl #1
- str r0, [r4, #-2016]
+ str r0, [r4, #-2012]
mov r0, sl
bl ftl_malloc
- str r0, [r4, #-1036]
+ str r0, [r4, #-1028]
mov r0, sl
bl ftl_malloc
- mov sl, #3936
- str r0, [r4, #-1092]
+ movw sl, #3940
+ str r0, [r4, #-1084]
ldrh r0, [r5, r6]
mov r0, r0, lsr #3
add r0, r0, #4
bl ftl_malloc
- str r0, [r4, #-1840]
+ str r0, [r4, #-1836]
ldrh r0, [r5, sl]
mov r0, r0, asl #1
bl ftl_malloc
- str r0, [r5, #3964]
+ str r0, [r5, #3968]
ldrh r0, [r5, sl]
mov r0, r0, asl #1
bl ftl_malloc
- str r0, [r4, #-908]
+ str r0, [r4, #-900]
ldrh r0, [r5, sl]
add sl, sl, #2
mov r0, r0, asl #2
bl ftl_malloc
- str r0, [r4, #-904]
+ str r0, [r4, #-896]
ldrh r0, [r5, sl]
mov r0, r0, asl #2
bl ftl_malloc
ldrh r2, [r5, sl]
mov r1, #0
mov r2, r2, asl #2
- str r0, [r4, #-900]
+ str r0, [r4, #-892]
bl ftl_memset
- mov r3, #3952
+ movw r3, #3956
ldrh sl, [r5, r3]
mov sl, sl, asl #2
mov r0, sl
bl ftl_malloc
- str r0, [r4, #-1028]
+ str r0, [r4, #-1020]
mov r0, sl
bl ftl_malloc
- movw sl, #3954
- str r0, [r4, #-896]
- ldr r0, [r5, #3944]
+ movw sl, #3958
+ str r0, [r4, #-888]
+ ldr r0, [r5, #3948]
mov r0, r0, asl #2
bl ftl_malloc
- str r0, [r4, #-1032]
+ str r0, [r4, #-1024]
ldrh r0, [r5, sl]
mul r0, r7, r0
bl ftl_malloc
ldrh r3, [r5, sl]
- movw r7, #3870
- str r0, [r4, #-1852]
+ movw r7, #3874
+ str r0, [r4, #-1848]
ldrh r0, [r5, r8]
mul r0, r0, r3
bl ftl_malloc
ldrh r3, [r5, r6]
- ldr r6, .L818+24
- str r0, [r4, #-1088]
+ ldr r6, .L833+24
+ str r0, [r4, #-1080]
mov r0, #6
mul r0, r0, r3
bl ftl_malloc
- movw r3, #3912
+ movw r3, #3916
ldrh r3, [r5, r3]
ldrh r2, [r5, r7]
add r3, r3, #31
mov r3, r3, lsr #5
strh r3, [r4, r6] @ movhi
mul r3, r2, r3
- str r0, [r4, #-2024]
+ str r0, [r4, #-2020]
mov r0, r3, asl #2
bl ftl_malloc
ldrh r1, [r4, r6]
mov r3, #1
- ldr ip, .L818+12
+ ldr ip, .L833+12
mov r1, r1, asl #2
mov r2, r1
- str r0, [r5, #4008]
+ str r0, [r5, #4012]
ldrh r5, [r5, r7]
- ldr r0, .L818+28
- b .L789
-.L790:
- ldr r4, [ip, #4008]
+ ldr r0, .L833+28
+ b .L804
+.L805:
+ ldr r4, [ip, #4012]
add r3, r3, #1
add r4, r4, r2
add r2, r2, r1
str r4, [r0, #4]!
-.L789:
+.L804:
cmp r3, r5
- bcc .L790
- ldr r0, .L818+32
+ bcc .L805
+ ldr r0, .L833+32
mov r2, #0
mov r1, r2
add r0, r0, r3, asl #2
- b .L791
-.L792:
+ b .L806
+.L807:
add ip, r0, r2
add r3, r3, #1
add r2, r2, #4
str r1, [ip, #28]
-.L791:
+.L806:
cmp r3, #7
- bls .L792
- ldr r3, .L818
- ldr r2, [r3, #-1036]
+ bls .L807
+ ldr r3, .L833
+ ldr r2, [r3, #-1028]
cmp r2, #0
- beq .L817
-.L793:
- ldr r2, [r3, #-1092]
+ beq .L832
+.L808:
+ ldr r2, [r3, #-1084]
cmp r2, #0
- beq .L817
-.L795:
- ldr r2, [r3, #-1028]
+ beq .L832
+.L810:
+ ldr r2, [r3, #-1020]
cmp r2, #0
- beq .L817
-.L796:
- ldr r2, [r3, #-1032]
+ beq .L832
+.L811:
+ ldr r2, [r3, #-1024]
cmp r2, #0
- beq .L817
-.L797:
- ldr r2, [r3, #-1852]
+ beq .L832
+.L812:
+ ldr r2, [r3, #-1848]
cmp r2, #0
- beq .L817
-.L798:
- ldr r2, [r3, #-1088]
+ beq .L832
+.L813:
+ ldr r2, [r3, #-1080]
cmp r2, #0
- beq .L817
-.L799:
- ldr r2, [r3, #-2024]
+ beq .L832
+.L814:
+ ldr r2, [r3, #-2020]
cmp r2, #0
- beq .L817
-.L800:
- ldr r2, .L818+12
- ldr r2, [r2, #4008]
+ beq .L832
+.L815:
+ ldr r2, .L833+12
+ ldr r2, [r2, #4012]
cmp r2, #0
- beq .L817
-.L801:
- ldr r3, [r3, #-2016]
+ beq .L832
+.L816:
+ ldr r3, [r3, #-2012]
cmp r3, #0
- beq .L817
-.L802:
- ldr r3, .L818
- ldr r2, [r3, #-1152]
- cmp r2, #0
- beq .L817
- ldr r2, [r3, #-1148]
+ beq .L832
+.L817:
+ ldr r3, .L833
+ ldr r2, [r3, #-1144]
cmp r2, #0
- beq .L817
-.L804:
- ldr r2, [r3, #-968]
+ beq .L832
+ ldr r2, [r3, #-1140]
cmp r2, #0
- beq .L817
+ beq .L832
+.L819:
ldr r2, [r3, #-960]
cmp r2, #0
- beq .L817
- ldr r2, .L818+12
- ldr r2, [r2, #4044]
+ beq .L832
+ ldr r2, [r3, #-952]
cmp r2, #0
- beq .L817
- ldr r2, [r3, #-1164]
+ beq .L832
+ ldr r2, .L833+12
+ ldr r2, [r2, #4048]
cmp r2, #0
- beq .L817
- ldr r2, [r3, #-964]
+ beq .L832
+ ldr r2, [r3, #-1156]
cmp r2, #0
- beq .L817
-.L806:
+ beq .L832
ldr r2, [r3, #-956]
cmp r2, #0
- beq .L817
- ldr r2, [r3, #-952]
- cmp r2, #0
- beq .L817
- ldr r3, [r3, #-948]
- cmp r3, #0
- beq .L817
- ldr r3, .L818
- ldr r2, [r3, #-1172]
- cmp r2, #0
- beq .L817
- ldr r2, [r3, #-940]
+ beq .L832
+.L821:
+ ldr r2, [r3, #-948]
cmp r2, #0
- beq .L817
- ldr r2, [r3, #-936]
+ beq .L832
+ ldr r2, [r3, #-944]
cmp r2, #0
- beq .L817
- ldr r2, [r3, #-1176]
+ beq .L832
+ ldr r3, [r3, #-940]
+ cmp r3, #0
+ beq .L832
+ ldr r3, .L833
+ ldr r2, [r3, #-1164]
cmp r2, #0
- beq .L817
-.L808:
+ beq .L832
ldr r2, [r3, #-932]
cmp r2, #0
- beq .L817
+ beq .L832
ldr r2, [r3, #-928]
cmp r2, #0
- beq .L817
+ beq .L832
ldr r2, [r3, #-1168]
cmp r2, #0
- beq .L817
-.L810:
- ldr r2, .L818+12
- ldr r1, [r2, #4048]
+ beq .L832
+.L823:
+ ldr r2, [r3, #-924]
+ cmp r2, #0
+ beq .L832
+ ldr r2, [r3, #-920]
+ cmp r2, #0
+ beq .L832
+ ldr r2, [r3, #-1160]
+ cmp r2, #0
+ beq .L832
+.L825:
+ ldr r2, .L833+12
+ ldr r1, [r2, #4052]
cmp r1, #0
- beq .L817
- ldr r3, [r3, #-1000]
+ beq .L832
+ ldr r3, [r3, #-992]
cmp r3, #0
- beq .L817
-.L812:
- ldr r3, [r2, #3964]
+ beq .L832
+.L827:
+ ldr r3, [r2, #3968]
cmp r3, #0
- beq .L817
-.L813:
- ldr r3, .L818
- ldr r2, [r3, #-908]
+ beq .L832
+.L828:
+ ldr r3, .L833
+ ldr r2, [r3, #-900]
cmp r2, #0
- beq .L817
-.L814:
- ldr r2, [r3, #-904]
+ beq .L832
+.L829:
+ ldr r2, [r3, #-896]
cmp r2, #0
- beq .L817
-.L815:
- ldr r3, [r3, #-900]
+ beq .L832
+.L830:
+ ldr r3, [r3, #-892]
cmp r3, #0
- bne .L816
-.L817:
- ldr r0, .L818+36
- ldr r1, .L818+40
+ bne .L831
+.L832:
+ ldr r0, .L833+36
+ ldr r1, .L833+40
bl printk
mvn r0, #0
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
-.L816:
+.L831:
mov r0, #0
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
-.L819:
+.L834:
.align 2
-.L818:
+.L833:
.word .LANCHOR2
- .word -1096
- .word -1142
+ .word -1088
+ .word -1134
.word .LANCHOR0
- .word -1196
- .word -920
- .word -1024
- .word .LANCHOR0+4008
- .word .LANCHOR0+3980
+ .word -1188
+ .word -912
+ .word -1016
+ .word .LANCHOR0+4012
+ .word .LANCHOR0+3984
.word .LC84
.word .LANCHOR3
.fnend
@@ -7165,7 +7283,7 @@ ftl_read_flash_info:
mov r2, #11
mov r4, r0
bl ftl_memset
- ldr r3, .L823
+ ldr r3, .L838
ldr r2, [r3, #3624]
ldr r1, [r3, #856]
ldrb r2, [r2, #9] @ zero_extendqisi2
@@ -7175,9 +7293,9 @@ ftl_read_flash_info:
strb r2, [r4, #4]
mov r2, r2, lsr #8
strb r2, [r4, #5]
- ldrb r2, [r3, #3836] @ zero_extendqisi2
+ ldrb r2, [r3, #3840] @ zero_extendqisi2
strb r2, [r4, #7]
- ldr r2, [r3, #3956]
+ ldr r2, [r3, #3960]
ubfx r0, r2, #8, #8
strb r0, [r4, #1]
strb r2, [r4, #0]
@@ -7196,22 +7314,22 @@ ftl_read_flash_info:
strb r1, [r4, #10]
strb r2, [r4, #9]
mov r2, #1
- ldr r1, .L823+4
- b .L821
-.L822:
+ ldr r1, .L838+4
+ b .L836
+.L837:
ldrb r5, [r3, r1] @ zero_extendqisi2
add r3, r3, #1
ldrb ip, [r4, #10] @ zero_extendqisi2
orr ip, ip, r2, asl r5
strb ip, [r4, #10]
-.L821:
+.L836:
uxtb ip, r3
cmp ip, r0
- bcc .L822
+ bcc .L837
ldmfd sp!, {r3, r4, r5, pc}
-.L824:
+.L839:
.align 2
-.L823:
+.L838:
.word .LANCHOR0
.word .LANCHOR0+3764
.fnend
@@ -7223,50 +7341,40 @@ FlashDieInfoInit:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r1, .L837
- mov r2, #0
stmfd sp!, {r3, r4, r5, r6, r7, r8, sl, lr}
.save {r3, r4, r5, r6, r7, r8, sl, lr}
- ldr r3, .L837+4
- strb r2, [r1, #-892]
- ldr r1, .L837+8
- strb r2, [r3, #3762]
- movw r2, #2998
- ldrh r2, [r1, r2]
- cmp r2, #256
- str r2, [r3, #856]
- movhi r2, #512
- bhi .L836
- cmp r2, #128
- bls .L827
- mov r2, #256
-.L836:
- str r2, [r3, #856]
-.L827:
- mov r1, #0
+ mov r4, #0
+ ldr r3, .L849
+ mov r6, r4
+ ldr r2, .L849+4
+ ldr r5, .L849+8
+ strb r4, [r3, #-884]
+ movw r3, #3126
+ ldrh r0, [r2, r3]
+ add r7, r5, #2976
+ strb r4, [r5, #3762]
+ bl FlashBlockAlignInit
+ mov r1, r4
mov r2, #8
- ldr r0, .L837+12
- mov r6, #0
+ ldr r0, .L849+12
+ mov r8, r7
bl ftl_memset
- mov r1, #0
+ mov r1, r4
mov r2, #32
- ldr r0, .L837+16
+ ldr r0, .L849+16
bl ftl_memset
- ldr r0, .L837+20
- mov r1, #0
+ ldr r0, .L849+20
+ mov r1, r4
mov r2, #128
bl ftl_memset
- ldr r7, .L837+24
- ldr r5, .L837+4
- mov r8, r7
-.L829:
+.L842:
ldr r4, [r5, #3624]
mov r1, r8
add r0, r4, #1
ldrb r2, [r4, #0] @ zero_extendqisi2
bl FlashMemCmp8
cmp r0, #0
- bne .L828
+ bne .L841
ldrb r3, [r5, #3762] @ zero_extendqisi2
add r2, r5, r3, asl #2
str r0, [r2, #3588]
@@ -7274,28 +7382,28 @@ FlashDieInfoInit:
add r3, r3, #1
strb r3, [r5, #3762]
strb r6, [r2, #3764]
-.L828:
+.L841:
add r6, r6, #1
add r8, r8, #8
cmp r6, #4
- bne .L829
- ldr r5, .L837+4
- ldr r3, .L837
+ bne .L842
+ ldr r5, .L849+8
+ ldr r3, .L849
ldrb r2, [r5, #3762] @ zero_extendqisi2
- strb r2, [r3, #-892]
+ strb r2, [r3, #-884]
ldrb r3, [r4, #8] @ zero_extendqisi2
cmp r3, #2
- bne .L830
+ bne .L843
add sl, r4, #1
mov r6, #0
mov r8, r5
-.L833:
+.L846:
mov r0, sl
mov r1, r7
ldrb r2, [r4, #0] @ zero_extendqisi2
bl FlashMemCmp8
cmp r0, #0
- bne .L831
+ bne .L844
ldrb r1, [r4, #13] @ zero_extendqisi2
ldr r0, [r5, #856]
ldrb r3, [r5, #3762] @ zero_extendqisi2
@@ -7313,33 +7421,32 @@ FlashDieInfoInit:
add r3, r3, #1
strb r3, [r8, #3762]
strb r6, [r2, #3764]
-.L831:
+.L844:
add r6, r6, #1
add r7, r7, #8
cmp r6, #4
- bne .L833
-.L830:
- ldr r3, .L837+4
+ bne .L846
+.L843:
+ ldr r3, .L849+8
ldrb r1, [r4, #13] @ zero_extendqisi2
- ldr r2, .L837
+ ldr r2, .L849
ldrb r3, [r3, #3762] @ zero_extendqisi2
mul r1, r1, r3
ldrh r3, [r4, #14]
mul r1, r3, r1
- ldr r3, .L837+28
+ ldr r3, .L849+24
strh r1, [r2, r3] @ movhi
ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc}
-.L838:
+.L850:
.align 2
-.L837:
+.L849:
.word .LANCHOR2
- .word .LANCHOR0
.word .LANCHOR1
+ .word .LANCHOR0
.word .LANCHOR0+3764
.word .LANCHOR0+3588
.word .LANCHOR0+3628
- .word .LANCHOR0+2980
- .word -890
+ .word -882
.fnend
.size FlashDieInfoInit, .-FlashDieInfoInit
.align 2
@@ -7353,85 +7460,85 @@ BuildFlashLsbPageTable:
stmfd sp!, {r4, lr}
.save {r4, lr}
mov r4, r1
- bne .L840
- ldr r3, .L879
-.L841:
+ bne .L852
+ ldr r3, .L894
+.L853:
strh r0, [r3, #2]! @ movhi
add r0, r0, #1
uxth r0, r0
cmp r0, #256
- bne .L841
- b .L842
-.L840:
+ bne .L853
+ b .L854
+.L852:
cmp r0, #1
- bne .L843
- ldr r0, .L879+4
+ bne .L855
+ ldr r0, .L894+4
mov r2, #0
mov r3, r2
-.L846:
+.L858:
uxth r1, r3
cmp r1, #3
- bls .L844
+ bls .L856
tst r3, #1
moveq r1, #2
movne r1, #3
rsb r1, r1, r2
uxth r1, r1
-.L844:
+.L856:
add r3, r3, #1
strh r1, [r2, r0] @ movhi
cmp r3, #256
add r2, r2, #2
- bne .L846
- b .L842
-.L843:
+ bne .L858
+ b .L854
+.L855:
cmp r0, #2
- bne .L847
+ bne .L859
mov r3, #0
- ldr r0, .L879
+ ldr r0, .L894
movw r2, #65535
mov r1, r3
- b .L878
-.L850:
+ b .L893
+.L862:
cmp r3, #1
movls r1, r3
movhi r1, r2
-.L878:
+.L893:
add r3, r3, #1
add r2, r2, #2
strh r1, [r0, #2]! @ movhi
uxth r3, r3
uxth r2, r2
cmp r3, #256
- bne .L850
- b .L842
-.L847:
+ bne .L862
+ b .L854
+.L859:
cmp r0, #3
- bne .L851
- ldr r0, .L879+4
+ bne .L863
+ ldr r0, .L894+4
mov r2, #0
mov r3, r2
-.L854:
+.L866:
uxth r1, r3
cmp r1, #5
- bls .L852
+ bls .L864
tst r3, #1
moveq r1, #4
movne r1, #5
rsb r1, r1, r2
uxth r1, r1
-.L852:
+.L864:
add r3, r3, #1
strh r1, [r2, r0] @ movhi
cmp r3, #256
add r2, r2, #2
- bne .L854
- b .L842
-.L851:
+ bne .L866
+ b .L854
+.L863:
cmp r0, #4
mov r2, #0
- bne .L855
- ldr r3, .L879+8
+ bne .L867
+ ldr r3, .L894+8
movw r1, #3076
strh r2, [r3, r1] @ movhi
movw r2, #3078
@@ -7447,7 +7554,7 @@ BuildFlashLsbPageTable:
mov r1, #5
strh r0, [r3, r2] @ movhi
add r2, r2, #2
- ldr r0, .L879+12
+ ldr r0, .L894+12
strh r1, [r3, r2] @ movhi
mov r2, #3088
mov r1, #7
@@ -7457,7 +7564,7 @@ BuildFlashLsbPageTable:
strh r1, [r3, r2] @ movhi
mov r2, #16
mov r3, r1
-.L857:
+.L869:
tst r3, #1
add r3, r3, #1
moveq r1, #6
@@ -7467,78 +7574,101 @@ BuildFlashLsbPageTable:
add r2, r2, #2
strh r1, [r0, #2]! @ movhi
uxth r2, r2
- bne .L857
- b .L842
-.L855:
+ bne .L869
+ b .L854
+.L867:
cmp r0, #5
- bne .L858
- ldr r1, .L879
+ bne .L870
+ ldr r1, .L894
mov r3, r2
-.L859:
+.L871:
strh r3, [r1, #2]! @ movhi
add r3, r3, #1
uxth r3, r3
cmp r3, #16
- bne .L859
- ldr r2, .L879+16
-.L860:
+ bne .L871
+ ldr r2, .L894+16
+.L872:
strh r3, [r2, #2]! @ movhi
add r3, r3, #2
uxth r3, r3
cmp r3, #496
- bne .L860
- b .L842
-.L858:
+ bne .L872
+ b .L854
+.L870:
cmp r0, #6
- bne .L842
- ldr r0, .L879
+ bne .L873
+ ldr r0, .L894
mov r3, r2
-.L863:
+.L876:
uxth r1, r3
cmp r1, #5
- bls .L861
+ bls .L874
tst r3, #1
moveq r1, #10
movne r1, #12
rsb r1, r1, r2
uxth r1, r1
-.L861:
+.L874:
add r3, r3, #1
add r2, r2, #3
cmp r3, #256
strh r1, [r0, #2]! @ movhi
uxth r2, r2
- bne .L863
-.L842:
+ bne .L876
+ b .L854
+.L873:
+ cmp r0, #9
+ bne .L854
+ ldr r3, .L894+8
+ movw r1, #3076
+ strh r2, [r3, r1] @ movhi
+ movw r2, #3078
+ mov r1, #1
+ strh r1, [r3, r2] @ movhi
+ mov r1, #2
+ add r2, r2, r1
+ strh r1, [r3, r2] @ movhi
+ mov r3, #3
+ ldr r2, .L894+20
+ movw r1, #509
+.L877:
+ strh r3, [r2, #2]! @ movhi
+ add r3, r3, #2
+ uxth r3, r3
+ cmp r3, r1
+ bne .L877
+.L854:
mov r2, #1024
- ldr r0, .L879+20
+ ldr r0, .L894+24
mov r1, #255
uxth r4, r4
bl ftl_memset
- ldr r2, .L879
+ ldr r2, .L894
mov r3, #0
- ldr r0, .L879+24
- b .L864
-.L865:
+ ldr r0, .L894+28
+ b .L878
+.L879:
ldrh r1, [r2, #2]!
add r3, r3, #1
uxth r3, r3
add ip, r0, r1, asl #1
- sub ip, ip, #888
+ sub ip, ip, #880
strh r1, [ip, #0] @ movhi
-.L864:
+.L878:
cmp r3, r4
- bcc .L865
+ bcc .L879
ldmfd sp!, {r4, pc}
-.L880:
+.L895:
.align 2
-.L879:
+.L894:
.word .LANCHOR0+3074
.word .LANCHOR0+3076
.word .LANCHOR0
.word .LANCHOR0+3090
.word .LANCHOR0+3106
- .word .LANCHOR2-888
+ .word .LANCHOR0+3080
+ .word .LANCHOR2-880
.word .LANCHOR2
.fnend
.size BuildFlashLsbPageTable, .-BuildFlashLsbPageTable
@@ -7564,15 +7694,15 @@ ftl_memcpy32:
stmfd sp!, {r4, lr}
.save {r4, lr}
mov ip, r3
- b .L883
-.L884:
+ b .L898
+.L899:
ldr r4, [r1, r3]
add ip, ip, #1
str r4, [r0, r3]
add r3, r3, #4
-.L883:
+.L898:
cmp ip, r2
- bne .L884
+ bne .L899
ldmfd sp!, {r4, pc}
.fnend
.size ftl_memcpy32, .-ftl_memcpy32
@@ -7588,36 +7718,6 @@ ftl_memcmp:
.fnend
.size ftl_memcmp, .-ftl_memcmp
.align 2
- .global js_hash
- .type js_hash, %function
-js_hash:
- .fnstart
- @ args = 0, pretend = 0, frame = 0
- @ frame_needed = 0, uses_anonymous_args = 0
- mov r3, r0
- mov r2, #0
- stmfd sp!, {r4, lr}
- .save {r4, lr}
- ldr r0, .L889
- b .L887
-.L888:
- mov ip, r0, asl #5
- ldrb r4, [r3, r2] @ zero_extendqisi2
- add ip, ip, r0, lsr #2
- add r2, r2, #1
- add ip, ip, r4
- eor r0, r0, ip
-.L887:
- cmp r2, r1
- bne .L888
- ldmfd sp!, {r4, pc}
-.L890:
- .align 2
-.L889:
- .word 1204201446
- .fnend
- .size js_hash, .-js_hash
- .align 2
.global timer_get_time
.type timer_get_time, %function
timer_get_time:
@@ -7625,12 +7725,12 @@ timer_get_time:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L892
+ ldr r3, .L902
ldr r0, [r3, #0]
b jiffies_to_msecs
-.L893:
+.L903:
.align 2
-.L892:
+.L902:
.word jiffies
.fnend
.size timer_get_time, .-timer_get_time
@@ -7644,19 +7744,19 @@ FlashSramLoadStore:
stmfd sp!, {r4, lr}
.save {r4, lr}
cmp r2, #0
- ldr r4, .L897
+ ldr r4, .L907
mov ip, r0
mov r2, r3
- ldr r4, [r4, #136]
+ ldr r4, [r4, #144]
add r4, r4, #4096
add r1, r4, r1
movne r0, r1
movne r1, ip
ldmfd sp!, {r4, lr}
b memcpy
-.L898:
+.L908:
.align 2
-.L897:
+.L907:
.word .LANCHOR2
.fnend
.size FlashSramLoadStore, .-FlashSramLoadStore
@@ -7701,12 +7801,12 @@ rk_ftl_get_capacity:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L903
- ldr r0, [r3, #3956]
+ ldr r3, .L913
+ ldr r0, [r3, #3960]
bx lr
-.L904:
+.L914:
.align 2
-.L903:
+.L913:
.word .LANCHOR0
.fnend
.size rk_ftl_get_capacity, .-rk_ftl_get_capacity
@@ -7759,47 +7859,47 @@ rknand_print_hex:
mov r7, r2
mov sl, r3
mov r4, r5
- b .L909
-.L915:
+ b .L919
+.L925:
cmp r5, #0
- bne .L910
- ldr r0, .L917
+ bne .L920
+ ldr r0, .L927
mov r1, r8
mov r2, r6
mov r3, r4
bl printk
-.L910:
+.L920:
cmp r7, #4
- ldreq r0, .L917+4
+ ldreq r0, .L927+4
ldreq r1, [r6, r4, asl #2]
- beq .L916
+ beq .L926
cmp r7, #2
moveq r3, r4, asl #1
- ldreq r0, .L917+4
+ ldreq r0, .L927+4
ldreqsh r1, [r6, r3]
- ldrne r0, .L917+4
+ ldrne r0, .L927+4
ldrneb r1, [r6, r4] @ zero_extendqisi2
-.L916:
+.L926:
add r5, r5, #1
bl printk
cmp r5, #15
- bls .L914
- ldr r0, .L917+8
+ bls .L924
+ ldr r0, .L927+8
mov r5, #0
- ldr r1, .L917+12
+ ldr r1, .L927+12
bl printk
-.L914:
+.L924:
add r4, r4, #1
-.L909:
+.L919:
cmp r4, sl
- bne .L915
- ldr r0, .L917+8
- ldr r1, .L917+12
+ bne .L925
+ ldr r0, .L927+8
+ ldr r1, .L927+12
ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, lr}
b printk
-.L918:
+.L928:
.align 2
-.L917:
+.L927:
.word .LC85
.word .LC86
.word .LC77
@@ -7815,15 +7915,15 @@ NandcXferComp:
@ frame_needed = 0, uses_anonymous_args = 0
stmfd sp!, {r0, r1, r4, r5, r6, lr}
.save {r0, r1, r4, r5, r6, lr}
- ldr r6, .L942
+ ldr r6, .L952
add r0, r6, r0, asl #3
ldr r3, [r6, #3788]
ldr r4, [r0, #864]
cmp r3, #3
- bls .L936
+ bls .L946
ldr r3, [r4, #16]
tst r3, #4
- beq .L936
+ beq .L946
mov r0, r4
bl wait_for_nandc_xfer_completed
ldr r5, [r4, #16]
@@ -7831,130 +7931,130 @@ NandcXferComp:
ands r5, r5, #2
str r3, [sp, #0]
movne r5, #0
- bne .L940
- b .L941
-.L926:
+ bne .L950
+ b .L951
+.L936:
ldr r3, [r6, #3788]
cmp r3, #5
- bls .L923
+ bls .L933
ldr r3, [r4, #0]
str r3, [sp, #4]
ldr r3, [sp, #4]
tst r3, #8192
- beq .L923
+ beq .L933
ldr r3, [sp, #4]
tst r3, #131072
- bne .L924
-.L923:
+ bne .L934
+.L933:
add r5, r5, #1
bic r3, r5, #-16777216
cmp r3, #0
- bne .L940
+ bne .L950
ldr r2, [r4, #28]
mov r1, r5
ldr r3, [sp, #0]
ubfx r2, r2, #16, #5
- ldr r0, .L942+4
+ ldr r0, .L952+4
ubfx r3, r3, #22, #6
bl printk
- ldr r0, .L942+8
+ ldr r0, .L952+8
mov r1, r4
mov r2, #4
mov r3, #512
bl rknand_print_hex
-.L940:
+.L950:
ldr r2, [r4, #28]
ldr r3, [sp, #0]
ubfx r2, r2, #16, #5
ubfx r3, r3, #22, #6
cmp r2, r3
- blt .L926
-.L924:
- ldr r4, .L942
- ldr r3, [r4, #3820]
+ blt .L936
+.L934:
+ ldr r4, .L952
+ ldr r3, [r4, #3824]
cmp r3, #0
- beq .L927
+ beq .L937
ldr r1, [sp, #0]
mov r2, #0
- ldr r0, [r4, #3812]
+ ldr r0, [r4, #3816]
ubfx r1, r1, #22, #5
mov r1, r1, asl #10
bl rknand_dma_unmap_single
ldr r1, [sp, #0]
- ldr r0, [r4, #3816]
+ ldr r0, [r4, #3820]
mov r2, #0
ubfx r1, r1, #22, #5
mov r1, r1, asl #7
bl rknand_dma_unmap_single
- b .L927
-.L930:
+ b .L937
+.L940:
ldr r3, [r4, #8]
add r5, r5, #1
str r3, [sp, #0]
bic r3, r5, #-16777216
cmp r3, #0
- bne .L941
+ bne .L951
ldr r2, [sp, #0]
mov r1, r5
ldr r3, [r4, #28]
- ldr r0, .L942+12
+ ldr r0, .L952+12
ubfx r3, r3, #16, #5
bl printk
- ldr r0, .L942+8
+ ldr r0, .L952+8
mov r1, r4
mov r2, #4
mov r3, #512
bl rknand_print_hex
-.L941:
+.L951:
ldr r3, [sp, #0]
tst r3, #1048576
- beq .L930
- ldr r6, .L942
- ldr r3, [r6, #3828]
+ beq .L940
+ ldr r6, .L952
+ ldr r3, [r6, #3832]
cmp r3, #0
- beq .L931
+ beq .L941
mov r0, r4
bl NandcSendDumpDataStart
-.L931:
- ldr r3, [r6, #3820]
- ldr r5, .L942
+.L941:
+ ldr r3, [r6, #3824]
+ ldr r5, .L952
cmp r3, #0
- beq .L932
+ beq .L942
ldr r1, [sp, #0]
mov r2, #1
- ldr r0, [r5, #3812]
+ ldr r0, [r5, #3816]
ubfx r1, r1, #22, #5
mov r1, r1, asl #10
bl rknand_dma_unmap_single
ldr r1, [sp, #0]
- ldr r0, [r5, #3816]
+ ldr r0, [r5, #3820]
mov r2, #1
ubfx r1, r1, #22, #5
mov r1, r1, asl #7
bl rknand_dma_unmap_single
-.L932:
- ldr r3, .L942
- ldr r3, [r3, #3828]
+.L942:
+ ldr r3, .L952
+ ldr r3, [r3, #3832]
cmp r3, #0
- beq .L927
+ beq .L937
mov r0, r4
bl NandcSendDumpDataDone
-.L927:
- ldr r3, .L942
+.L937:
+ ldr r3, .L952
mov r2, #0
- str r2, [r3, #3820]
- b .L919
-.L936:
+ str r2, [r3, #3824]
+ b .L929
+.L946:
ldr r3, [r4, #8]
str r3, [sp, #0]
ldr r3, [sp, #0]
tst r3, #1048576
- beq .L936
-.L919:
+ beq .L946
+.L929:
ldmfd sp!, {r2, r3, r4, r5, r6, pc}
-.L943:
+.L953:
.align 2
-.L942:
+.L952:
.word .LANCHOR0
.word .LC88
.word .LC89
@@ -7972,7 +8072,7 @@ NandcXferData:
.save {r4, r5, r6, r7, r8, r9, sl, fp, lr}
mov r4, r3
mov r9, r3
- ldr r3, .L982
+ ldr r3, .L992
.pad #92
sub sp, sp, #92
tst r4, #63
@@ -7982,15 +8082,15 @@ NandcXferData:
mov sl, r2
ldr r5, [sp, #128]
ldr r6, [r3, #864]
- bne .L945
+ bne .L955
cmp r5, #0
- bne .L946
+ bne .L956
add r0, sp, #24
mov r1, #255
mov r2, #64
add r5, sp, #24
bl ftl_memset
-.L946:
+.L956:
mov r0, r7
mov r1, fp
mov r2, sl
@@ -8001,19 +8101,19 @@ NandcXferData:
bl NandcXferComp
cmp fp, #0
movne r4, #0
- bne .L947
- ldr r1, .L982
+ bne .L957
+ ldr r1, .L992
mov r0, sl, lsr #1
mov r3, fp
mov r2, fp
- ldr ip, [r1, #3832]
+ ldr ip, [r1, #3836]
mov r4, r1
cmp ip, #24
movhi ip, #128
movls ip, #64
- b .L949
-.L950:
- ldr r1, [r4, #3800]
+ b .L959
+.L960:
+ ldr r1, [r4, #3804]
mov r3, r3, lsr #2
add r2, r2, #1
ldr r3, [r1, r3, asl #2]
@@ -8026,29 +8126,29 @@ NandcXferData:
strb r3, [r5, #3]
add r5, r5, #4
mov r3, r7
-.L949:
+.L959:
cmp r2, r0
add r7, r3, ip
- ldr r1, .L982
- bcc .L950
+ ldr r1, .L992
+ bcc .L960
mov r3, #0
- ldr r0, [r1, #3832]
+ ldr r0, [r1, #3836]
mov sl, sl, lsr #2
ldr r1, [r1, #3788]
mov r4, r3
- b .L951
-.L957:
+ b .L961
+.L967:
add r2, r3, #8
ldr r2, [r6, r2, asl #2]
str r2, [sp, #20]
ldr r2, [sp, #20]
tst r2, #4
- bne .L972
+ bne .L982
ldr r2, [sp, #20]
ands r2, r2, #32768
- bne .L972
+ bne .L982
cmp r1, #5
- bls .L953
+ bls .L963
ldr r7, [sp, #20]
ldr ip, [sp, #20]
ldr r5, [sp, #20]
@@ -8067,10 +8167,10 @@ NandcXferData:
ubfxls ip, ip, #16, #5
ubfxhi r2, r2, #27, #1
ubfxls r2, r2, #29, #1
- b .L980
-.L953:
+ b .L990
+.L963:
cmp r1, #3
- bls .L955
+ bls .L965
ldr r7, [sp, #20]
ldr ip, [sp, #20]
ldr r5, [sp, #20]
@@ -8089,31 +8189,31 @@ NandcXferData:
ubfxls ip, ip, #16, #5
ubfxhi r2, r2, #28, #1
ubfxls r2, r2, #30, #1
-.L980:
+.L990:
orr r2, ip, r2, asl #5
-.L955:
+.L965:
cmp r4, r2
movcc r4, r2
- b .L952
-.L972:
+ b .L962
+.L982:
mvn r4, #0
-.L952:
+.L962:
add r3, r3, #1
-.L951:
+.L961:
cmp r3, sl
- bcs .L947
+ bcs .L957
cmp r0, #0
- bne .L957
-.L947:
+ bne .L967
+.L957:
mov r3, #0
str r3, [r6, #16]
- b .L958
-.L945:
+ b .L968
+.L955:
cmp r1, #1
mov r8, #0
- bne .L978
- b .L959
-.L962:
+ bne .L988
+ b .L969
+.L972:
cmp r5, #0
and r4, r8, #3
mov r0, r6
@@ -8137,12 +8237,12 @@ NandcXferData:
mov r0, r7
bl NandcXferComp
add r9, r9, #1024
-.L959:
+.L969:
cmp r8, sl
- bcc .L962
+ bcc .L972
mov r4, #0
- b .L958
-.L978:
+ b .L968
+.L988:
mov r1, r8
mov r2, #2
mov r3, r8
@@ -8154,15 +8254,15 @@ NandcXferData:
mov ip, r8
mov fp, r6
mov r6, r5
- b .L981
-.L967:
+ b .L991
+.L977:
mov r0, r7
bl NandcXferComp
ldr r3, [fp, #32]
add ip, r5, #2
cmp ip, sl
str r3, [sp, #20]
- bcs .L964
+ bcs .L974
mov r3, #0
mov r0, r7
str r3, [sp, #0]
@@ -8173,11 +8273,11 @@ NandcXferData:
str ip, [sp, #8]
bl NandcXferStart
ldr ip, [sp, #8]
-.L964:
+.L974:
ldr r3, [sp, #20]
tst r3, #4
mvnne r4, #0
- bne .L965
+ bne .L975
ldr r2, [sp, #20]
ldr r3, [sp, #20]
ubfx r2, r2, #3, #5
@@ -8185,7 +8285,7 @@ NandcXferData:
orr r3, r2, r3, asl #5
cmp r4, r3
movcc r4, r3
-.L965:
+.L975:
cmp r6, #0
and r2, r8, #3
mov r0, fp
@@ -8200,34 +8300,34 @@ NandcXferData:
str r5, [sp, #0]
bl NandcCopy1KB
ldr ip, [sp, #8]
-.L981:
+.L991:
cmp ip, sl
mov r5, ip
- bcc .L967
+ bcc .L977
mov r6, fp
ldr fp, [sp, #12]
-.L958:
- ldr r3, .L982
+.L968:
+ ldr r3, .L992
rsbs fp, fp, #1
movcc fp, #0
ldr r3, [r3, #3788]
cmp r3, #5
movls fp, #0
cmp fp, #0
- beq .L968
+ beq .L978
ldr r3, [r6, #0]
and r2, r3, #139264
cmp r2, #139264
orreq r3, r3, #131072
streq r3, [r6, #0]
mvneq r4, #0
-.L968:
+.L978:
mov r0, r4
add sp, sp, #92
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L983:
+.L993:
.align 2
-.L982:
+.L992:
.word .LANCHOR0
.fnend
.size NandcXferData, .-NandcXferData
@@ -8241,23 +8341,23 @@ FlashProgPage:
stmfd sp!, {r0, r1, r4, r5, r6, r7, r8, lr}
.save {r0, r1, r4, r5, r6, r7, r8, lr}
mov r8, r3
- ldr r3, .L987
+ ldr r3, .L997
subs r4, r0, #0
mov r5, r1
mov r6, r2
- ldrb r7, [r3, #2997] @ zero_extendqisi2
- bne .L985
- ldr r3, .L987+4
+ ldrb r7, [r3, #3125] @ zero_extendqisi2
+ bne .L995
+ ldr r3, .L997+4
ldrb r2, [r3, #853] @ zero_extendqisi2
ldr r1, [r3, #856]
mul r2, r1, r2
cmp r5, r2
- bcs .L985
+ bcs .L995
ldrb r3, [r3, #852] @ zero_extendqisi2
cmp r3, #0
subeq r7, r7, #2
movne r7, #4
-.L985:
+.L995:
mov r0, r4
bl NandcWaitFlashReady
mov r0, r4
@@ -8284,9 +8384,9 @@ FlashProgPage:
bl NandcFlashDeCs
and r0, r5, #1
ldmfd sp!, {r2, r3, r4, r5, r6, r7, r8, pc}
-.L988:
+.L998:
.align 2
-.L987:
+.L997:
.word .LANCHOR1
.word .LANCHOR0
.fnend
@@ -8298,64 +8398,65 @@ FlashPageProgMsbFFData:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- stmfd sp!, {r3, r4, r5, r6, r7, r8, sl, lr}
- .save {r3, r4, r5, r6, r7, r8, sl, lr}
- mov r4, r2
- ldr r2, .L996
- mov r7, r1
- mov r8, r0
- ldrb r1, [r2, #928] @ zero_extendqisi2
- ldr r3, [r2, #3624]
- cmp r1, #0
- ldrb r3, [r3, #19] @ zero_extendqisi2
- beq .L990
- ldr r1, [r2, #3776]
- ldr r2, .L996+4
- cmp r1, r2
- ldmeqfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc}
-.L990:
- sub r2, r3, #5
- uxtb r2, r2
- cmp r3, #68
- cmpne r2, #2
- bls .L993
- cmp r3, #35
- cmpne r3, #19
- beq .L993
- ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc}
-.L994:
- add r3, r5, r4, asl #1
- sub r3, r3, #888
- ldrh r3, [r3, #0]
- cmp r3, sl
- ldmnefd sp!, {r3, r4, r5, r6, r7, r8, sl, pc}
- mov r1, #255
+ ldr r3, .L1009
+ stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
+ .save {r4, r5, r6, r7, r8, r9, sl, lr}
+ mov r5, r2
+ ldr r2, [r3, #3624]
+ mov r9, r0
+ mov sl, r1
+ ldrb r4, [r2, #19] @ zero_extendqisi2
+ ldrb r2, [r3, #3072] @ zero_extendqisi2
+ cmp r2, #0
+ beq .L1000
+ ldr r3, [r3, #3776]
+ cmp r3, #0
+ ldmnefd sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
+.L1000:
+ sub r3, r4, #5
+ uxtb r3, r3
+ cmp r4, #68
+ cmpne r3, #3
+ bls .L1003
+ cmp r4, #35
+ cmpne r4, #19
+ beq .L1003
+ ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
+.L1006:
+ add r3, r6, r5, asl #1
+ sub r3, r3, #880
+ ldrh r2, [r3, #0]
+ movw r3, #65535
+ cmp r2, r3
+ ldmnefd sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
+ cmp r4, #8
mov r2, #32768
- ldr r0, [r5, #140]
+ ldr r0, [r6, #148]
+ moveq r1, #0
+ movne r1, #255
bl ftl_memset
- add r1, r4, r7
- add r4, r4, #1
- mov r0, r8
- ldr r2, [r5, #140]
- mov r3, #0
+ ldr r2, [r8, #148]
+ add r1, r5, sl
+ add r5, r5, #1
+ mov r0, r9
+ mov r3, r2
+ uxth r5, r5
bl FlashProgPage
- uxth r4, r4
- b .L995
-.L993:
- ldr r6, .L996
- movw sl, #65535
- ldr r5, .L996+8
-.L995:
- ldr r3, [r6, #3624]
+ b .L1007
+.L1003:
+ ldr r6, .L1009+4
+ ldr r7, .L1009
+ mov r8, r6
+.L1007:
+ ldr r3, [r7, #3624]
ldrh r3, [r3, #10]
- cmp r3, r4
- bhi .L994
- ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc}
-.L997:
+ cmp r3, r5
+ bhi .L1006
+ ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
+.L1010:
.align 2
-.L996:
+.L1009:
.word .LANCHOR0
- .word 1446522928
.word .LANCHOR2
.fnend
.size FlashPageProgMsbFFData, .-FlashPageProgMsbFFData
@@ -8369,19 +8470,19 @@ FlashReadRawPage:
stmfd sp!, {r0, r1, r4, r5, r6, r7, r8, lr}
.save {r0, r1, r4, r5, r6, r7, r8, lr}
mov r8, r3
- ldr r3, .L1001
+ ldr r3, .L1014
subs r4, r0, #0
mov r6, r1
mov r5, r2
- ldrb r7, [r3, #2997] @ zero_extendqisi2
- bne .L999
- ldr r3, .L1001+4
+ ldrb r7, [r3, #3125] @ zero_extendqisi2
+ bne .L1012
+ ldr r3, .L1014+4
ldrb r2, [r3, #853] @ zero_extendqisi2
ldr r3, [r3, #856]
mul r3, r3, r2
cmp r1, r3
movcc r7, #4
-.L999:
+.L1012:
mov r0, r4
bl NandcWaitFlashReady
mov r0, r4
@@ -8402,9 +8503,9 @@ FlashReadRawPage:
bl NandcFlashDeCs
mov r0, r5
ldmfd sp!, {r2, r3, r4, r5, r6, r7, r8, pc}
-.L1002:
+.L1015:
.align 2
-.L1001:
+.L1014:
.word .LANCHOR1
.word .LANCHOR0
.fnend
@@ -8419,9 +8520,9 @@ HynixReadRetrial:
stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr}
.save {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr}
mov r7, r3
- ldr r3, .L1017
+ ldr r3, .L1030
mov sl, r2
- ldr fp, .L1017
+ ldr fp, .L1030
mov r6, r0
add r2, r3, r0
str r1, [sp, #4]
@@ -8431,16 +8532,18 @@ HynixReadRetrial:
mvn r5, #0
ldrb r4, [r2, #12] @ zero_extendqisi2
ldrb r3, [r3, #19] @ zero_extendqisi2
- cmp r3, #7
- ldreqb r4, [r2, #20] @ zero_extendqisi2
+ sub r3, r3, #7
+ uxtb r3, r3
+ cmp r3, #1
+ ldrlsb r4, [r2, #20] @ zero_extendqisi2
bl NandcWaitFlashReady
mov ip, fp
- b .L1005
-.L1010:
+ b .L1018
+.L1023:
add r4, r4, #1
ldrb r1, [fp, #1] @ zero_extendqisi2
mov r0, r6
- ldr r2, .L1017+4
+ ldr r2, .L1030+4
uxtb r4, r4
str ip, [sp, #0]
cmp r4, r9
@@ -8454,33 +8557,35 @@ HynixReadRetrial:
bl FlashReadRawPage
ldr ip, [sp, #0]
cmn r0, #1
- beq .L1007
- ldrb r3, [ip, #3836] @ zero_extendqisi2
+ beq .L1020
+ ldrb r3, [ip, #3840] @ zero_extendqisi2
cmn r5, #1
moveq r5, r0
add r3, r3, r3, asl #1
cmp r0, r3, lsr #2
- bcc .L1016
+ bcc .L1029
mov r7, #0
mov sl, r7
-.L1007:
+.L1020:
add r8, r8, #1
-.L1005:
+.L1018:
cmp r8, r9
- bcc .L1010
- b .L1009
-.L1016:
+ bcc .L1023
+ b .L1022
+.L1029:
mov r5, r0
-.L1009:
- ldr r3, .L1017
+.L1022:
+ ldr r3, .L1030
add r6, r3, r6
ldr r2, [r3, #3624]
- ldrb r3, [r3, #3836] @ zero_extendqisi2
+ ldrb r3, [r3, #3840] @ zero_extendqisi2
ldrb r2, [r2, #19] @ zero_extendqisi2
add r3, r3, r3, asl #1
- cmp r2, #7
- streqb r4, [r6, #20]
- strneb r4, [r6, #12]
+ sub r2, r2, #7
+ uxtb r2, r2
+ cmp r2, #1
+ strlsb r4, [r6, #20]
+ strhib r4, [r6, #12]
adds r0, r5, #1
movne r0, #1
cmp r5, r3, lsr #2
@@ -8490,9 +8595,9 @@ HynixReadRetrial:
moveq r0, r5
movne r0, #256
ldmfd sp!, {r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L1018:
+.L1031:
.align 2
-.L1017:
+.L1030:
.word .LANCHOR0
.word .LANCHOR0+4
.fnend
@@ -8507,32 +8612,32 @@ MicronReadRetrial:
stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
.save {r4, r5, r6, r7, r8, r9, sl, fp, lr}
mov sl, r3
- ldr r3, .L1037
+ ldr r3, .L1050
mov r9, r0
.pad #36
sub sp, sp, #36
- ldrb r0, [r3, #3836] @ zero_extendqisi2
- ldrb r3, [r3, #928] @ zero_extendqisi2
+ ldrb r0, [r3, #3840] @ zero_extendqisi2
+ ldrb r3, [r3, #3072] @ zero_extendqisi2
str r1, [sp, #24]
cmp r3, #0
str r2, [sp, #20]
addeq r0, r0, r0, asl #1
ubfxeq r0, r0, #2, #8
- beq .L1036
+ beq .L1049
mov r1, #3
bl __aeabi_idiv
uxtb r0, r0
-.L1036:
-.L1021:
+.L1049:
+.L1034:
mov r2, #0
- ldr r3, .L1037
+ ldr r3, .L1050
mvn r4, #0
mov r6, r2
add r3, r3, r9, asl #3
str r0, [sp, #16]
str r2, [sp, #12]
str r3, [sp, #28]
-.L1031:
+.L1044:
mov r0, r9
mov fp, #0
bl NandcWaitFlashReady
@@ -8541,8 +8646,8 @@ MicronReadRetrial:
ldr r8, [r2, #864]
add r7, r7, #8
add r5, r8, r7, asl #8
- b .L1022
-.L1026:
+ b .L1035
+.L1039:
mov r3, #239
mov r0, #200
str r3, [r5, #8]
@@ -8562,27 +8667,27 @@ MicronReadRetrial:
bl FlashReadRawPage
ldr ip, [sp, #8]
cmn r0, #1
- beq .L1023
+ beq .L1036
cmn r4, #1
ldr r2, [sp, #16]
moveq r4, r0
cmp r0, r2
- bcc .L1033
+ bcc .L1046
mov sl, #0
str sl, [sp, #20]
-.L1023:
+.L1036:
mov fp, ip
-.L1022:
- ldr r2, .L1037+4
- ldrb r3, [r2, #144] @ zero_extendqisi2
+.L1035:
+ ldr r2, .L1050+4
+ ldrb r3, [r2, #152] @ zero_extendqisi2
cmp fp, r3
- bcc .L1026
- b .L1025
-.L1033:
+ bcc .L1039
+ b .L1038
+.L1046:
mov r4, r0
mov sl, #0
str sl, [sp, #20]
-.L1025:
+.L1038:
mov r3, #239
mov r0, #200
str r3, [r5, #8]
@@ -8606,46 +8711,46 @@ MicronReadRetrial:
moveq r5, #1
cmn r4, #1
cmpne r4, #256
- bne .L1028
+ bne .L1041
mov r3, fp
- ldr r0, .L1037+8
+ ldr r0, .L1050+8
mov r1, fp
ldr r2, [sp, #24]
str r4, [sp, #0]
bl printk
ldr r3, [sp, #12]
cmp r3, #0
- bne .L1029
- ldr r2, .L1037
- ldrb r3, [r2, #928] @ zero_extendqisi2
+ bne .L1042
+ ldr r2, .L1050
+ ldrb r3, [r2, #3072] @ zero_extendqisi2
cmp r3, #0
moveq r5, #0
andne r5, r5, #1
cmp r5, #0
- beq .L1030
+ beq .L1043
mov r0, r9
mov r1, #3
bl micron_auto_read_calibration_config
mov r3, #1
str r3, [sp, #12]
- b .L1031
-.L1028:
+ b .L1044
+.L1041:
ldr r2, [sp, #12]
cmp r2, #0
- beq .L1030
-.L1029:
+ beq .L1043
+.L1042:
mov r0, r9
mov r1, #0
bl micron_auto_read_calibration_config
cmn r4, #1
movne r4, #256
-.L1030:
+.L1043:
mov r0, r4
add sp, sp, #36
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L1038:
+.L1051:
.align 2
-.L1037:
+.L1050:
.word .LANCHOR0
.word .LANCHOR2
.word .LC91
@@ -8665,17 +8770,17 @@ SamsungReadRetrial:
mov r6, r3
mov r9, r1
bl NandcWaitFlashReady
- ldr ip, .L1048
+ ldr ip, .L1061
mov r5, #1
mvn r4, #0
- ldr fp, .L1048+4
+ ldr fp, .L1061+4
add r3, ip, r8, asl #3
ldrb sl, [r3, #868] @ zero_extendqisi2
ldr r2, [r3, #864]
add sl, sl, #8
add sl, r2, sl, asl #8
- b .L1040
-.L1044:
+ b .L1053
+.L1057:
mov r0, sl
uxtb r1, r5
str ip, [sp, #4]
@@ -8687,32 +8792,32 @@ SamsungReadRetrial:
bl FlashReadRawPage
ldr ip, [sp, #4]
cmn r0, #1
- beq .L1041
- ldrb r3, [ip, #3836] @ zero_extendqisi2
+ beq .L1054
+ ldrb r3, [ip, #3840] @ zero_extendqisi2
cmn r4, #1
moveq r4, r0
add r3, r3, r3, asl #1
cmp r0, r3, lsr #2
- bcc .L1047
+ bcc .L1060
mov r6, #0
mov r7, r6
-.L1041:
+.L1054:
add r5, r5, #1
-.L1040:
- ldrb r3, [fp, #144] @ zero_extendqisi2
+.L1053:
+ ldrb r3, [fp, #152] @ zero_extendqisi2
add r3, r3, #1
cmp r5, r3
- bcc .L1044
- b .L1043
-.L1047:
+ bcc .L1057
+ b .L1056
+.L1060:
mov r4, r0
-.L1043:
+.L1056:
mov r0, sl
mov r1, #0
bl SamsungSetRRPara
- ldr r3, .L1048
+ ldr r3, .L1061
adds r0, r4, #1
- ldrb r3, [r3, #3836] @ zero_extendqisi2
+ ldrb r3, [r3, #3840] @ zero_extendqisi2
movne r0, #1
add r3, r3, r3, asl #1
cmp r4, r3, lsr #2
@@ -8722,9 +8827,9 @@ SamsungReadRetrial:
moveq r0, r4
movne r0, #256
ldmfd sp!, {r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L1049:
+.L1062:
.align 2
-.L1048:
+.L1061:
.word .LANCHOR0
.word .LANCHOR2
.fnend
@@ -8743,7 +8848,7 @@ ToshibaReadRetrial:
mov r9, r2
mov r7, r3
bl NandcWaitFlashReady
- ldr r3, .L1071
+ ldr r3, .L1084
add r2, r3, r8, asl #3
ldr r1, [r2, #864]
ldrb r4, [r2, #868] @ zero_extendqisi2
@@ -8754,53 +8859,53 @@ ToshibaReadRetrial:
uxtb r2, r2
cmp r2, #1
movls sl, #0
- bls .L1051
+ bls .L1064
ldrb sl, [r3, #3780] @ zero_extendqisi2
cmp sl, #0
- beq .L1052
+ beq .L1065
mov r0, #0
mov sl, #1
bl NandcSetDdrMode
-.L1052:
+.L1065:
mov r3, #92
str r3, [r4, #8]
mov r3, #197
str r3, [r4, #8]
-.L1051:
+.L1064:
mov r6, #1
mvn r5, #0
- ldr fp, .L1071
- b .L1053
-.L1062:
+ ldr fp, .L1084
+ b .L1066
+.L1075:
ldrb r3, [fp, #3761] @ zero_extendqisi2
mov r0, r4
uxtb r1, r6
sub r3, r3, #67
uxtb r3, r3
cmp r3, #1
- bhi .L1054
+ bhi .L1067
bl SandiskSetRRPara
- b .L1055
-.L1054:
+ b .L1068
+.L1067:
bl ToshibaSetRRPara
-.L1055:
- ldr r2, .L1071
+.L1068:
+ ldr r2, .L1084
ldrb r3, [r2, #3761] @ zero_extendqisi2
cmp r3, #34
- bne .L1056
- ldr r2, .L1071+4
- ldrb r3, [r2, #144] @ zero_extendqisi2
+ bne .L1069
+ ldr r2, .L1084+4
+ ldrb r3, [r2, #152] @ zero_extendqisi2
sub r3, r3, #3
cmp r6, r3
moveq r3, #179
streq r3, [r4, #8]
-.L1056:
+.L1069:
cmp sl, #0
mov r3, #38
str r3, [r4, #8]
mov r3, #93
str r3, [r4, #8]
- beq .L1057
+ beq .L1070
mov r0, #4
bl NandcSetDdrMode
ldr r1, [sp, #4]
@@ -8813,53 +8918,53 @@ ToshibaReadRetrial:
str r3, [sp, #0]
bl NandcSetDdrMode
ldr r3, [sp, #0]
- b .L1058
-.L1057:
+ b .L1071
+.L1070:
mov r3, r7
mov r0, r8
ldr r1, [sp, #4]
mov r2, r9
bl FlashReadRawPage
mov r3, r0
-.L1058:
+.L1071:
cmn r3, #1
- beq .L1059
- ldrb r2, [fp, #3836] @ zero_extendqisi2
+ beq .L1072
+ ldrb r2, [fp, #3840] @ zero_extendqisi2
cmn r5, #1
moveq r5, r3
add r2, r2, r2, asl #1
cmp r3, r2, lsr #2
- bcc .L1070
+ bcc .L1083
mov r7, #0
mov r9, r7
-.L1059:
+.L1072:
add r6, r6, #1
-.L1053:
- ldr r2, .L1071+4
- ldrb r3, [r2, #144] @ zero_extendqisi2
+.L1066:
+ ldr r2, .L1084+4
+ ldrb r3, [r2, #152] @ zero_extendqisi2
add r3, r3, #1
cmp r6, r3
- bcc .L1062
- b .L1061
-.L1070:
+ bcc .L1075
+ b .L1074
+.L1083:
mov r5, r3
-.L1061:
- ldr r6, .L1071
+.L1074:
+ ldr r6, .L1084
mov r0, r4
mov r1, #0
ldrb r3, [r6, #3761] @ zero_extendqisi2
sub r3, r3, #67
uxtb r3, r3
cmp r3, #1
- bhi .L1063
+ bhi .L1076
bl SandiskSetRRPara
- b .L1064
-.L1063:
+ b .L1077
+.L1076:
bl ToshibaSetRRPara
-.L1064:
+.L1077:
mov r3, #255
str r3, [r4, #8]
- ldrb r3, [r6, #3836] @ zero_extendqisi2
+ ldrb r3, [r6, #3840] @ zero_extendqisi2
adds r2, r5, #1
mov r0, r8
movne r2, #1
@@ -8871,15 +8976,15 @@ ToshibaReadRetrial:
movne r5, #256
bl NandcWaitFlashReady
cmp sl, #0
- beq .L1066
+ beq .L1079
mov r0, #4
bl NandcSetDdrMode
-.L1066:
+.L1079:
mov r0, r5
ldmfd sp!, {r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L1072:
+.L1085:
.align 2
-.L1071:
+.L1084:
.word .LANCHOR0
.word .LANCHOR2
.fnend
@@ -8894,22 +8999,22 @@ FlashSavePhyInfo:
stmfd sp!, {r3, r4, r5, r6, r7, r8, sl, lr}
.save {r3, r4, r5, r6, r7, r8, sl, lr}
mov r6, #0
- ldr r5, .L1080
- ldr r7, .L1080+4
- ldr r8, .L1080+8
- ldr r3, [r5, #152]
- ldrb r0, [r5, #156] @ zero_extendqisi2
- str r3, [r5, #148]
+ ldr r5, .L1093
+ ldr r7, .L1093+4
+ ldr r8, .L1093+8
+ ldr r3, [r5, #160]
+ ldrb r0, [r5, #164] @ zero_extendqisi2
+ str r3, [r5, #156]
bl FlashBchSel
mov r1, #0
mov r2, #2048
- ldr r0, [r5, #152]
+ ldr r0, [r5, #160]
bl ftl_memset
- ldr r3, [r5, #148]
- ldr r1, .L1080+12
+ ldr r3, [r5, #156]
+ add r1, r7, #2976
mov r2, #32
str r8, [r3, #0]
- ldr r4, [r5, #148]
+ ldr r4, [r5, #156]
ldrb r3, [r7, #3762] @ zero_extendqisi2
add r0, r4, #16
strh r3, [r4, #12] @ movhi
@@ -8919,19 +9024,19 @@ FlashSavePhyInfo:
str r3, [r4, #1076]
bl memcpy
add r0, r4, #80
- ldr r1, .L1080+16
+ ldr r1, .L1093+12
mov r2, #8
bl memcpy
add r0, r4, #96
- ldr r1, .L1080+20
+ ldr r1, .L1093+16
mov r2, #32
bl memcpy
- ldr r0, [r5, #148]
- ldr r1, .L1080+24
+ ldr r0, [r5, #156]
+ ldr r1, .L1093+20
mov r2, #32
add r0, r0, #160
bl memcpy
- ldr r4, [r5, #148]
+ ldr r4, [r5, #156]
add r1, r7, #896
mov r2, #32
add r0, r4, #192
@@ -8942,16 +9047,16 @@ FlashSavePhyInfo:
bl memcpy
add r0, r4, #12
movw r1, #2036
- bl JSHash
+ bl js_hash
movw r3, #1592
str r3, [r4, #4]
- ldr r3, [r5, #140]
- str r3, [r5, #148]
+ ldr r3, [r5, #148]
+ str r3, [r5, #156]
str r0, [r4, #8]
mov r0, #0
bl flash_enter_slc_mode
mov r4, r6
-.L1076:
+.L1089:
ldr r1, [r7, #856]
mov r0, #0
mov r2, r0
@@ -8959,64 +9064,63 @@ FlashSavePhyInfo:
bl FlashEraseBlock
ldr r1, [r7, #856]
mov r0, #0
- ldr r2, [r5, #152]
+ ldr r2, [r5, #160]
mov r3, r0
mul r1, r1, r4
bl FlashProgPage
ldr r1, [r7, #856]
mov r0, #0
- ldr r2, [r5, #152]
+ ldr r2, [r5, #160]
mov r3, r0
mul r1, r1, r4
add r1, r1, #1
bl FlashProgPage
ldr r1, [r7, #856]
mov r0, #0
- ldr r2, [r5, #140]
+ ldr r2, [r5, #148]
mov r3, r0
mul r1, r1, r4
bl FlashReadRawPage
cmn r0, #1
- beq .L1074
- ldr sl, [r5, #148]
+ beq .L1087
+ ldr sl, [r5, #156]
ldr r3, [sl, #0]
cmp r3, r8
- bne .L1074
+ bne .L1087
add r0, sl, #12
movw r1, #2036
- bl JSHash
+ bl js_hash
ldr r3, [sl, #8]
cmp r3, r0
- bne .L1074
+ bne .L1087
add r3, r4, #1
- str r3, [r5, #160]
+ str r3, [r5, #168]
ldr r3, [r7, #856]
add r6, r6, #1
cmp r6, #1
mul r3, r3, r4
- str r3, [r5, #164]
- bhi .L1075
-.L1074:
+ str r3, [r5, #172]
+ bhi .L1088
+.L1087:
add r4, r4, #1
cmp r4, #4
- bne .L1076
-.L1075:
+ bne .L1089
+.L1088:
mov r0, #0
bl flash_exit_slc_mode
cmp r6, #0
mvneq r0, #0
movne r0, #0
ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc}
-.L1081:
+.L1094:
.align 2
-.L1080:
+.L1093:
.word .LANCHOR2
.word .LANCHOR0
.word 1312902724
- .word .LANCHOR0+2980
.word .LANCHOR0+3764
.word .LANCHOR0+3588
- .word .LANCHOR1+2988
+ .word .LANCHOR1+3116
.fnend
.size FlashSavePhyInfo, .-FlashSavePhyInfo
.align 2
@@ -9032,101 +9136,98 @@ FlashReadIdbDataRaw:
sub sp, sp, #20
mov r2, #4
mov sl, r0
- ldr r1, .L1093
+ ldr r1, .L1106
add r0, sp, #12
bl memcpy
- ldr r3, .L1093+4
- ldrb r2, [r3, #3836] @ zero_extendqisi2
+ ldr r3, .L1106+4
+ ldrb r2, [r3, #3840] @ zero_extendqisi2
+ ldr r3, [r3, #3776]
+ cmp r3, #0
str r2, [sp, #4]
- ldr r2, [r3, #3776]
- ldr r3, .L1093+8
- cmp r2, r3
- bne .L1083
+ beq .L1096
mov r0, #0
bl flash_enter_slc_mode
-.L1083:
- ldr r7, .L1093+4
+.L1096:
+ ldr r7, .L1106+4
mov r0, sl
mov r1, #0
mov r2, #2048
bl ftl_memset
mvn r8, #0
mov r4, #2
- ldr r9, .L1093+12
+ ldr r9, .L1106+8
mov fp, r7
- b .L1084
-.L1091:
+ b .L1097
+.L1104:
mov r6, #0
-.L1086:
+.L1099:
add r3, sp, #12
- ldr r5, .L1093+12
+ ldr r5, .L1106+8
ldrb r0, [r3, r6] @ zero_extendqisi2
bl FlashBchSel
ldr r1, [r7, #856]
mov r0, #0
- ldr r2, [r9, #152]
+ ldr r2, [r9, #160]
mov r3, r0
mul r1, r1, r4
bl FlashReadRawPage
cmn r0, #1
- bne .L1085
+ bne .L1098
add r6, r6, #1
cmp r6, #4
- bne .L1086
- b .L1087
-.L1085:
- ldr r3, [r5, #152]
+ bne .L1099
+ b .L1100
+.L1098:
+ ldr r3, [r5, #160]
ldr r2, [r3, #0]
- ldr r3, .L1093+16
+ ldr r3, .L1106+12
cmp r2, r3
- bne .L1087
+ bne .L1100
add r3, sp, #16
- ldr r0, .L1093+20
+ ldr r0, .L1106+16
add r6, r3, r6
ldrb r1, [r6, #-4] @ zero_extendqisi2
bl printk
mov r0, sl
- ldr r1, [r5, #152]
+ ldr r1, [r5, #160]
mov r2, #2048
bl memcpy
- ldr r3, [r5, #152]
+ ldr r3, [r5, #160]
ldr r3, [r3, #512]
strb r3, [fp, #853]
- ldr r3, [r5, #160]
+ ldr r3, [r5, #168]
cmp r3, r4
- bls .L1090
- str r4, [r5, #160]
+ bls .L1103
+ str r4, [r5, #168]
bl FlashSavePhyInfo
mov r8, #0
-.L1087:
+.L1100:
add r4, r4, #1
-.L1084:
+.L1097:
ldrb r3, [r7, #853] @ zero_extendqisi2
cmp r4, r3
- bcc .L1091
- b .L1088
-.L1090:
+ bcc .L1104
+ b .L1101
+.L1103:
mov r8, #0
-.L1088:
+.L1101:
ldr r0, [sp, #4]
bl FlashBchSel
- ldr r3, .L1093+4
- ldr r2, [r3, #3776]
- ldr r3, .L1093+8
- cmp r2, r3
- bne .L1089
+ ldr r3, .L1106+4
+ ldr r3, [r3, #3776]
+ cmp r3, #0
+ beq .L1102
mov r0, #0
bl flash_exit_slc_mode
-.L1089:
+.L1102:
mov r0, r8
add sp, sp, #20
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L1094:
+.L1107:
.align 2
-.L1093:
+.L1106:
.word .LANCHOR3+11
.word .LANCHOR0
- .word 1446522928
.word .LANCHOR2
.word -52655045
.word .LC92
@@ -9142,121 +9243,122 @@ FlashLoadPhyInfo:
stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr}
.save {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr}
mov r2, #4
- ldr r1, .L1106
+ ldr r1, .L1119
add r0, sp, #4
bl memcpy
- ldr r5, .L1106+4
- ldr r2, .L1106+8
- movw r3, #2998
- mov r4, #0
+ ldr r4, .L1119+4
+ ldr r3, .L1119+8
+ mov r5, #0
+ mov r0, r5
mov r8, #4
- mov r0, r4
- str r4, [r5, #164]
- ldrh r9, [r2, r3]
+ str r5, [r4, #172]
mvn r6, #0
- ldr r3, [r5, #152]
- ldr fp, .L1106+12
- str r3, [r5, #148]
+ ldr r9, [r3, #856]
+ ldr r3, [r4, #160]
+ ldr fp, .L1119+12
+ str r3, [r4, #156]
bl flash_enter_slc_mode
- b .L1096
-.L1098:
+ b .L1109
+.L1111:
add r3, sp, #4
ldrb r0, [r3, r7] @ zero_extendqisi2
bl FlashBchSel
mov r0, #0
- mov r1, r4
- ldr r2, [r5, #152]
+ mov r1, r5
+ ldr r2, [r4, #160]
mov r3, r0
bl FlashReadRawPage
cmn r0, #1
- bne .L1097
+ bne .L1110
mov r0, #0
mov r1, sl
- ldr r2, [r5, #152]
+ ldr r2, [r4, #160]
mov r3, r0
bl FlashReadRawPage
cmn r0, #1
- bne .L1097
+ bne .L1110
add r7, r7, #1
cmp r7, #4
- beq .L1099
- b .L1098
-.L1097:
- ldr r7, [r5, #148]
+ beq .L1112
+ b .L1111
+.L1110:
+ ldr r7, [r4, #156]
ldr r3, [r7, #0]
cmp r3, fp
- bne .L1099
+ bne .L1112
cmp r6, #0
- bne .L1100
- ldr r2, .L1106+8
- movw r3, #2998
- mov r0, r4
- ldrh r1, [r2, r3]
+ bne .L1113
+ ldr r3, .L1119+8
+ mov r0, r5
+ ldr r1, [r3, #856]
bl __aeabi_uidiv
- ldr r3, .L1106+4
+ ldr r3, .L1119+4
add r0, r0, #1
- str r0, [r3, #160]
+ str r0, [r3, #168]
mov r0, r6
- b .L1105
-.L1100:
+ b .L1118
+.L1113:
add r0, r7, #12
movw r1, #2036
- bl JSHash
+ bl js_hash
ldr r3, [r7, #8]
cmp r3, r0
- bne .L1099
- ldr r6, .L1106+16
+ bne .L1112
+ ldr r6, .L1119+8
add r1, r7, #160
mov r2, #32
- ldr r0, .L1106+20
+ ldr r0, .L1119+16
bl memcpy
- add r0, r6, #896
add r1, r7, #192
+ add r0, r6, #896
mov r2, #32
bl memcpy
- mov r0, r6
add r1, r7, #224
+ mov r0, r6
mov r2, #852
bl memcpy
+ ldr r2, .L1119+20
+ movw r3, #3126
+ ldrh r0, [r2, r3]
+ bl FlashBlockAlignInit
+ ldr r7, [r4, #156]
+ ldr r1, [r6, #856]
+ mov r0, r5
+ str r5, [r4, #172]
ldr r3, [r7, #1076]
- ldr r2, .L1106+8
- mov r0, r4
- str r4, [r5, #164]
strb r3, [r6, #3780]
- movw r3, #2998
- ldrh r1, [r2, r3]
mov r6, #0
bl __aeabi_uidiv
add r0, r0, #1
- str r0, [r5, #160]
+ str r0, [r4, #168]
cmp r0, #1
- moveq r3, #2
- streq r3, [r5, #160]
+ movls r3, #2
+ strls r3, [r4, #168]
ldrh r3, [r7, #14]
- strb r3, [r5, #168]
-.L1099:
+ strb r3, [r4, #176]
+.L1112:
subs r8, r8, #1
- add r4, r4, r9
- beq .L1103
-.L1096:
- add sl, r4, #1
+ add r5, r5, r9
+ beq .L1116
+.L1109:
+ add sl, r5, #1
mov r7, #0
- b .L1098
-.L1103:
+ b .L1111
+.L1116:
mov r0, r8
-.L1105:
+.L1118:
bl flash_exit_slc_mode
mov r0, r6
ldmfd sp!, {r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L1107:
+.L1120:
.align 2
-.L1106:
+.L1119:
.word .LANCHOR3+11
.word .LANCHOR2
- .word .LANCHOR1
- .word 1312902724
.word .LANCHOR0
- .word .LANCHOR1+2988
+ .word 1312902724
+ .word .LANCHOR1+3116
+ .word .LANCHOR1
.fnend
.size FlashLoadPhyInfo, .-FlashLoadPhyInfo
.align 2
@@ -9269,13 +9371,13 @@ FlashDdrTunningRead:
stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
.save {r4, r5, r6, r7, r8, r9, sl, fp, lr}
mov sl, r3
- ldr r4, .L1129
+ ldr r4, .L1142
.pad #20
sub sp, sp, #20
mov fp, r0
mov r9, r2
str r1, [sp, #0]
- ldr r3, [r4, #3012]
+ ldr r3, [r4, #3008]
ldr r7, [r4, #3788]
ldr r3, [r3, #304]
cmp r7, #7
@@ -9285,7 +9387,7 @@ FlashDdrTunningRead:
ldr r3, [sp, #56]
cmp r3, #0
moveq r8, #1024
- beq .L1110
+ beq .L1123
mov r0, #1
bl FlashSetInterfaceMode
mov r0, #1
@@ -9303,37 +9405,37 @@ FlashDdrTunningRead:
ldrb r0, [r4, #3772] @ zero_extendqisi2
bl NandcSetMode
cmn r8, #1
- beq .L1111
- ldr r0, .L1129+4
+ beq .L1124
+ ldr r0, .L1142+4
mov r2, r8
ldr r1, [sp, #0]
bl printk
cmp r8, #9
- bhi .L1112
+ bhi .L1125
add r4, r4, fp, asl #3
ldr r3, [r4, #864]
ldr r2, [r3, #3840]
ldr r2, [r3, #0]
orr r2, r2, #131072
str r2, [r3, #0]
-.L1112:
- ldr r3, .L1129+8
- ldr r2, [r3, #172]
+.L1125:
+ ldr r3, .L1142+8
+ ldr r2, [r3, #180]
add r2, r2, #1
- str r2, [r3, #172]
+ str r2, [r3, #180]
cmp r2, #2048
movcs sl, #0
- strcs sl, [r3, #172]
+ strcs sl, [r3, #180]
movcs r9, sl
- bcc .L1111
-.L1110:
+ bcc .L1124
+.L1123:
mov r4, #0
str fp, [sp, #4]
mov r5, r4
mvn r6, #0
mov fp, r4
str r4, [sp, #8]
-.L1117:
+.L1130:
uxtb r0, r7
bl NandcSetDdrPara
mov r3, sl
@@ -9343,79 +9445,79 @@ FlashDdrTunningRead:
bl FlashReadRawPage
add r3, r8, #1
cmp r0, r3
- bhi .L1113
+ bhi .L1126
cmp r0, #2
- bhi .L1123
+ bhi .L1136
add r5, r5, #1
cmp r5, #9
- bls .L1123
+ bls .L1136
mov ip, fp
rsb r4, r5, r7
ldr fp, [sp, #4]
mov r8, r0
mov r6, #0
- b .L1115
-.L1113:
+ b .L1128
+.L1126:
cmp fp, r5
- bcs .L1124
+ bcs .L1137
cmp r5, #7
rsb r3, r5, r4
str r3, [sp, #8]
- bhi .L1128
+ bhi .L1141
mov fp, r5
- b .L1124
-.L1123:
+ b .L1137
+.L1136:
mov r6, #0
mov r4, r7
mov r8, r0
mov sl, r6
mov r9, r6
- b .L1114
-.L1124:
+ b .L1127
+.L1137:
mov r5, #0
-.L1114:
+.L1127:
add r7, r7, #2
cmp r7, #69
- bls .L1117
+ bls .L1130
mov ip, fp
ldr fp, [sp, #4]
-.L1115:
- cmp ip, r5
- bcc .L1118
- b .L1116
.L1128:
+ cmp ip, r5
+ bcc .L1131
+ b .L1129
+.L1141:
ldr fp, [sp, #4]
-.L1116:
+.L1129:
ldr r4, [sp, #8]
-.L1118:
+.L1131:
cmp r4, #0
- beq .L1119
- ldr r0, .L1129+12
+ beq .L1132
+ ldr r0, .L1142+12
mov r1, r4
bl printk
uxtb r0, r4
bl NandcSetDdrPara
-.L1119:
+.L1132:
cmn r6, #1
- bne .L1111
- ldr r0, .L1129+16
+ bne .L1124
+ ldr r0, .L1142+16
mov r1, fp
ldr r2, [sp, #0]
bl printk
ldr r3, [sp, #56]
cmp r3, #0
moveq r8, r6
- beq .L1111
+ beq .L1124
ldr r3, [sp, #12]
ubfx r0, r3, #8, #8
bl NandcSetDdrPara
-.L1111:
+.L1124:
mov r0, r8
add sp, sp, #20
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L1130:
+.L1143:
.align 2
-.L1129:
+.L1142:
.word .LANCHOR0
.word .LC93
.word .LANCHOR2
@@ -9433,7 +9535,7 @@ FlashDdrParaScan:
stmfd sp!, {r0, r1, r4, r5, r6, r7, r8, lr}
.save {r0, r1, r4, r5, r6, r7, r8, lr}
mov r7, r0
- ldr r5, .L1135
+ ldr r5, .L1148
mov r4, #0
mov r6, r1
ldrb r0, [r5, #3772] @ zero_extendqisi2
@@ -9453,30 +9555,30 @@ FlashDdrParaScan:
mov r0, r7
bl FlashReadRawPage
cmn r0, #1
- beq .L1132
+ beq .L1145
cmn r8, #1
- bne .L1133
-.L1132:
+ bne .L1146
+.L1145:
ldrb r3, [r5, #3772] @ zero_extendqisi2
tst r3, #1
- beq .L1133
+ beq .L1146
mov r0, #1
bl FlashSetInterfaceMode
mov r0, #1
bl NandcSetMode
- ldr r3, .L1135
+ ldr r3, .L1148
mov r2, #0
strb r2, [r3, #3780]
- b .L1134
-.L1133:
+ b .L1147
+.L1146:
mov r3, #1
strb r3, [r5, #3780]
-.L1134:
+.L1147:
mov r0, #0
ldmfd sp!, {r2, r3, r4, r5, r6, r7, r8, pc}
-.L1136:
+.L1149:
.align 2
-.L1135:
+.L1148:
.word .LANCHOR0
.fnend
.size FlashDdrParaScan, .-FlashDdrParaScan
@@ -9496,11 +9598,11 @@ FlashReadPage:
bl FlashReadRawPage
cmn r0, #1
mov r4, r0
- bne .L1138
- ldr r7, .L1143
+ bne .L1151
+ ldr r7, .L1156
ldrb r9, [r7, #860] @ zero_extendqisi2
cmp r9, #0
- beq .L1139
+ beq .L1152
mov r3, #0
mov r0, r5
strb r3, [r7, #860]
@@ -9511,13 +9613,13 @@ FlashReadPage:
strb r9, [r7, #860]
cmn r0, #1
movne r4, r0
- bne .L1138
-.L1139:
- ldr r7, .L1143
+ bne .L1151
+.L1152:
+ ldr r7, .L1156
ldrb r3, [r7, #3780] @ zero_extendqisi2
cmp r3, #0
- beq .L1138
- ldr r3, [r7, #3012]
+ beq .L1151
+ ldr r3, [r7, #3008]
mov r0, r5
mov r1, r6
mov r2, r8
@@ -9528,22 +9630,22 @@ FlashReadPage:
bl FlashDdrTunningRead
cmn r0, #1
mov r4, r0
- beq .L1140
- ldrb r3, [r7, #3836] @ zero_extendqisi2
+ beq .L1153
+ ldrb r3, [r7, #3840] @ zero_extendqisi2
cmp r0, r3, lsr #1
- bls .L1138
-.L1140:
+ bls .L1151
+.L1153:
ubfx r0, r9, #8, #8
bl NandcSetDdrPara
-.L1138:
- ldr r7, .L1143+4
- ldr ip, [r7, #176]
+.L1151:
+ ldr r7, .L1156+4
+ ldr ip, [r7, #184]
adds r3, ip, #0
movne r3, #1
cmn r4, #1
movne r3, #0
cmp r3, #0
- beq .L1141
+ beq .L1154
mov r1, r6
mov r2, r8
mov r3, sl
@@ -9552,18 +9654,18 @@ FlashReadPage:
mov r2, r5
mov r3, r6
mov r4, r0
- ldr r0, .L1143+8
+ ldr r0, .L1156+8
mov r1, r4
bl printk
cmn r4, #1
- bne .L1141
- ldr r3, .L1143
- ldrb r3, [r3, #928] @ zero_extendqisi2
+ bne .L1154
+ ldr r3, .L1156
+ ldrb r3, [r3, #3072] @ zero_extendqisi2
cmp r3, #0
- beq .L1141
+ beq .L1154
mov r0, r5
bl flash_enter_slc_mode
- ldr ip, [r7, #176]
+ ldr ip, [r7, #184]
mov r0, r5
mov r1, r6
mov r2, r8
@@ -9572,12 +9674,12 @@ FlashReadPage:
mov r4, r0
mov r0, r5
bl flash_exit_slc_mode
-.L1141:
+.L1154:
mov r0, r4
ldmfd sp!, {r2, r3, r4, r5, r6, r7, r8, r9, sl, pc}
-.L1144:
+.L1157:
.align 2
-.L1143:
+.L1156:
.word .LANCHOR0
.word .LANCHOR2
.word .LC96
@@ -9590,19 +9692,19 @@ FlashReadSlc2KPages:
.fnstart
@ args = 0, pretend = 0, frame = 16
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L1158
+ ldr r3, .L1171
stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
.save {r4, r5, r6, r7, r8, r9, sl, fp, lr}
mov r8, r1
.pad #28
sub sp, sp, #28
mov fp, r2
- ldrb sl, [r3, #2997] @ zero_extendqisi2
+ ldrb sl, [r3, #3125] @ zero_extendqisi2
mov r4, r0
mov r7, #0
- ldr r6, .L1158+4
- b .L1146
-.L1155:
+ ldr r6, .L1171+4
+ b .L1159
+.L1168:
rsb r3, r7, r8
add r2, sp, #20
mov r0, r4
@@ -9616,7 +9718,7 @@ FlashReadSlc2KPages:
cmp r3, r2
mvncs r3, #0
strcs r3, [r4, #0]
- bcs .L1148
+ bcs .L1161
add r3, r6, r3
ldrb r5, [r3, #3764] @ zero_extendqisi2
mov r0, r5
@@ -9659,7 +9761,7 @@ FlashReadSlc2KPages:
ldr r3, [sp, #12]
cmp r3, r9
movcs r9, r3
- ldrb r3, [r6, #3836] @ zero_extendqisi2
+ ldrb r3, [r6, #3840] @ zero_extendqisi2
adds r2, r9, #1
add r3, r3, r3, asl #1
movne r2, #1
@@ -9675,51 +9777,51 @@ FlashReadSlc2KPages:
strne r3, [r4, #0]
ldr r3, [r4, #12]
cmp r3, #0
- beq .L1153
+ beq .L1166
ldr r2, [r3, #12]
cmn r2, #1
- bne .L1153
+ bne .L1166
ldr r2, [r3, #8]
cmn r2, #1
- bne .L1153
+ bne .L1166
ldr r3, [r3, #0]
cmn r3, #1
strne r2, [r4, #0]
-.L1153:
+.L1166:
ldr r3, [r4, #0]
cmn r3, #1
- bne .L1148
+ bne .L1161
ldr r1, [r4, #4]
- ldr r0, .L1158+8
- ldrb r2, [r6, #3836] @ zero_extendqisi2
+ ldr r0, .L1171+8
+ ldrb r2, [r6, #3840] @ zero_extendqisi2
bl printk
ldr r1, [r4, #8]
cmp r1, #0
- beq .L1154
- ldr r0, .L1158+12
+ beq .L1167
+ ldr r0, .L1171+12
mov r2, #4
mov r3, #8
bl rknand_print_hex
-.L1154:
+.L1167:
ldr r1, [r4, #12]
cmp r1, #0
- beq .L1148
+ beq .L1161
mov r2, #4
- ldr r0, .L1158+16
+ ldr r0, .L1171+16
mov r3, r2
bl rknand_print_hex
-.L1148:
+.L1161:
add r7, r7, #1
add r4, r4, #36
-.L1146:
+.L1159:
cmp r7, r8
- bne .L1155
+ bne .L1168
mov r0, #0
add sp, sp, #28
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L1159:
+.L1172:
.align 2
-.L1158:
+.L1171:
.word .LANCHOR1
.word .LANCHOR0
.word .LC97
@@ -9734,32 +9836,32 @@ FlashReadPages:
.fnstart
@ args = 0, pretend = 0, frame = 40
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L1202
+ ldr r3, .L1215
stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
.save {r4, r5, r6, r7, r8, r9, sl, fp, lr}
.pad #52
sub sp, sp, #52
- ldrb r3, [r3, #2997] @ zero_extendqisi2
+ ldrb r3, [r3, #3125] @ zero_extendqisi2
mov r9, r0
str r1, [sp, #28]
str r2, [sp, #32]
str r3, [sp, #24]
- ldr r3, .L1202+4
+ ldr r3, .L1215+4
ldrb r8, [r3, #852] @ zero_extendqisi2
ldrb ip, [r3, #860] @ zero_extendqisi2
cmp r8, #0
str ip, [sp, #36]
moveq sl, r8
- beq .L1161
+ beq .L1174
bl FlashReadSlc2KPages
- b .L1162
-.L1189:
+ b .L1175
+.L1202:
mov r3, #36
ldr ip, [sp, #28]
mul r3, r3, sl
add r2, sp, #44
ldr r1, [sp, #32]
- ldr fp, .L1202+4
+ ldr fp, .L1215+4
add r6, r9, r3
str r3, [sp, #16]
rsb r3, sl, ip
@@ -9776,12 +9878,12 @@ FlashReadPages:
mvncs r3, #0
mov r7, r0
strcs r3, [r9, ip]
- bcs .L1164
+ bcs .L1177
add r3, fp, r3
ldrb r4, [r3, #3764] @ zero_extendqisi2
- ldr r3, .L1202+8
+ ldr r3, .L1215+8
mov r0, r4
- ldrb r3, [r3, #180] @ zero_extendqisi2
+ ldrb r3, [r3, #188] @ zero_extendqisi2
cmp r3, #0
moveq r7, #0
bl NandcWaitFlashReady
@@ -9789,22 +9891,24 @@ FlashReadPages:
ldrb r2, [r3, #19] @ zero_extendqisi2
sub r3, r2, #1
uxtb r3, r3
- cmp r3, #6
- bhi .L1166
+ cmp r3, #7
+ bhi .L1179
+ sub r2, r2, #7
add r1, fp, r4
- cmp r2, #7
add fp, fp, r4
- ldr r2, .L1202+4
+ uxtb r2, r2
ldrb r3, [r1, #12] @ zero_extendqisi2
- ldreqb r3, [r1, #20] @ zero_extendqisi2
+ cmp r2, #1
+ ldr r2, .L1215+4
+ ldrlsb r3, [r1, #20] @ zero_extendqisi2
ldrb r1, [fp, #3756] @ zero_extendqisi2
cmp r1, r3
- beq .L1166
+ beq .L1179
ldrb r1, [r2, #1] @ zero_extendqisi2
mov r0, r4
add r2, r2, #4
bl HynixSetRRPara
-.L1166:
+.L1179:
mov r0, r4
mov r5, r5, lsr #31
bl NandcFlashCs
@@ -9814,44 +9918,44 @@ FlashReadPages:
orreq r5, r5, #1
str r5, [sp, #20]
cmp r5, #0
- beq .L1168
- ldr r3, .L1202+4
- ldrb r3, [r3, #928] @ zero_extendqisi2
+ beq .L1181
+ ldr r3, .L1215+4
+ ldrb r3, [r3, #3072] @ zero_extendqisi2
cmp r3, #0
- beq .L1168
+ beq .L1181
bl flash_enter_slc_mode
- b .L1169
-.L1168:
+ b .L1182
+.L1181:
bl flash_exit_slc_mode
-.L1169:
- ldr fp, .L1202+4
-.L1201:
+.L1182:
+ ldr fp, .L1215+4
+.L1214:
ldr r1, [sp, #44]
cmn r1, #1
cmpeq r4, #255
moveq r3, #0
movne r3, #1
moveq r7, r3
- beq .L1171
+ beq .L1184
cmp r7, #0
- beq .L1172
+ beq .L1185
ldr r2, [fp, #856]
mov r0, r4
add r2, r1, r2
bl FlashReadDpCmd
- b .L1173
-.L1172:
+ b .L1186
+.L1185:
mov r0, r4
bl FlashReadCmd
-.L1173:
+.L1186:
mov r0, r4
bl NandcWaitFlashReady
cmp r7, #0
- beq .L1171
+ beq .L1184
mov r0, r4
ldr r1, [sp, #44]
bl FlashReadDpDataOutCmd
-.L1171:
+.L1184:
ldr r3, [r6, #12]
mov r0, r4
ldr r2, [sp, #24]
@@ -9868,12 +9972,12 @@ FlashReadPages:
movne r2, #0
movne r7, #0
strneb r2, [fp, #860]
- bne .L1201
-.L1174:
+ bne .L1214
+.L1187:
cmp r7, #0
mov r5, r0
- beq .L1175
- ldr r3, .L1202+4
+ beq .L1188
+ ldr r3, .L1215+4
mov r0, r4
ldr r1, [r3, #856]
ldr r3, [sp, #44]
@@ -9894,18 +9998,18 @@ FlashReadPages:
cmn r0, #1
mov r8, r0
moveq r7, #0
-.L1175:
+.L1188:
mov r0, r4
- ldr fp, .L1202+4
+ ldr fp, .L1215+4
bl NandcFlashDeCs
ldr ip, [sp, #36]
cmn r5, #1
strb ip, [fp, #860]
- bne .L1179
+ bne .L1192
ldrb r3, [fp, #3780] @ zero_extendqisi2
cmp r3, #0
- beq .L1177
- ldr r3, [fp, #3012]
+ beq .L1190
+ ldr r3, [fp, #3008]
mov r0, r4
ldr r1, [sp, #44]
ldr r7, [r3, #304]
@@ -9916,96 +10020,96 @@ FlashReadPages:
bl FlashDdrTunningRead
cmn r0, #1
mov r5, r0
- beq .L1178
- ldrb r3, [fp, #3836] @ zero_extendqisi2
+ beq .L1191
+ ldrb r3, [fp, #3840] @ zero_extendqisi2
cmp r0, r3, lsr #1
- bls .L1195
-.L1178:
+ bls .L1208
+.L1191:
ubfx r0, r7, #8, #8
bl NandcSetDdrPara
cmn r5, #1
- bne .L1195
-.L1177:
- ldr r3, .L1202+8
+ bne .L1208
+.L1190:
+ ldr r3, .L1215+8
mov r0, r4
ldr r1, [sp, #44]
ldr r2, [r6, #8]
- ldr r7, [r3, #176]
+ ldr r7, [r3, #184]
ldr r3, [r6, #12]
cmp r7, #0
- beq .L1180
+ beq .L1193
blx r7
cmn r0, #1
mov r5, r0
- bne .L1197
- ldr r2, .L1202+4
+ bne .L1210
+ ldr r2, .L1215+4
ldr r3, [r2, #3624]
ldrb r3, [r3, #19] @ zero_extendqisi2
sub r3, r3, #1
uxtb r3, r3
- cmp r3, #6
- bhi .L1182
+ cmp r3, #7
+ bhi .L1195
ldrb r1, [r2, #1] @ zero_extendqisi2
mov r0, r4
add r2, r2, #4
mov r3, #0
bl HynixSetRRPara
-.L1182:
+.L1195:
ldr r1, [sp, #44]
mov r0, r4
ldr r2, [r6, #8]
ldr r3, [r6, #12]
bl FlashReadRawPage
- ldr r7, .L1202+4
+ ldr r7, .L1215+4
ldr r1, [r6, #4]
- ldrb r2, [r7, #3836] @ zero_extendqisi2
+ ldrb r2, [r7, #3840] @ zero_extendqisi2
mov r5, r0
- ldr r0, .L1202+12
+ ldr r0, .L1215+12
mov r3, r5
bl printk
cmn r5, #1
- bne .L1197
- ldrb r7, [r7, #928] @ zero_extendqisi2
+ bne .L1210
+ ldrb r7, [r7, #3072] @ zero_extendqisi2
cmp r7, #0
- beq .L1181
+ beq .L1194
ldr ip, [sp, #20]
mov r0, r4
cmp ip, #0
- beq .L1183
+ beq .L1196
bl flash_enter_slc_mode
- b .L1184
-.L1183:
+ b .L1197
+.L1196:
bl flash_exit_slc_mode
-.L1184:
- ldr r3, .L1202+8
+.L1197:
+ ldr r3, .L1215+8
mov r0, r4
ldr r1, [sp, #44]
ldr r2, [r6, #8]
- ldr ip, [r3, #176]
+ ldr ip, [r3, #184]
ldr r3, [r6, #12]
blx ip
mov r5, r0
- b .L1197
-.L1180:
+ b .L1210
+.L1193:
bl FlashReadRawPage
mov r5, r0
- b .L1181
-.L1195:
+ b .L1194
+.L1208:
mov r7, #0
-.L1179:
- ldr r3, .L1202+4
- ldrb r3, [r3, #3836] @ zero_extendqisi2
+.L1192:
+ ldr r3, .L1215+4
+ ldrb r3, [r3, #3840] @ zero_extendqisi2
add r3, r3, r3, asl #1
cmp r5, r3, lsr #2
- bls .L1181
- ldr r3, .L1202+8
- ldr r3, [r3, #176]
+ bls .L1194
+ ldr r3, .L1215+8
+ ldr r3, [r3, #184]
cmp r3, #0
moveq r5, #256
- b .L1181
-.L1197:
+ b .L1194
+.L1210:
mov r7, #0
-.L1181:
+.L1194:
ldr ip, [sp, #16]
cmp r5, #256
cmnne r5, #1
@@ -10015,32 +10119,32 @@ FlashReadPages:
ldr ip, [sp, #16]
ldr r3, [r9, ip]
cmn r3, #1
- bne .L1186
- ldr r2, .L1202+4
+ bne .L1199
+ ldr r2, .L1215+4
ldr r1, [r6, #4]
- ldr r0, .L1202+16
- ldrb r2, [r2, #3836] @ zero_extendqisi2
+ ldr r0, .L1215+16
+ ldrb r2, [r2, #3840] @ zero_extendqisi2
bl printk
ldr r1, [r6, #12]
cmp r1, #0
- beq .L1186
+ beq .L1199
mov r2, #4
- ldr r0, .L1202+20
+ ldr r0, .L1215+20
mov r3, r2
bl rknand_print_hex
-.L1186:
+.L1199:
cmp r7, #0
- beq .L1187
- ldr r3, .L1202+4
- ldrb r3, [r3, #3836] @ zero_extendqisi2
+ beq .L1200
+ ldr r3, .L1215+4
+ ldrb r3, [r3, #3840] @ zero_extendqisi2
add r3, r3, r3, asl #1
cmp r8, r3, lsr #2
- bls .L1188
- ldr r3, .L1202+8
- ldr r3, [r3, #176]
+ bls .L1201
+ ldr r3, .L1215+8
+ ldr r3, [r3, #184]
cmp r3, #0
moveq r8, #256
-.L1188:
+.L1201:
add r3, sl, #1
mov r2, #36
cmp r8, #256
@@ -10049,30 +10153,30 @@ FlashReadPages:
movne r2, #0
str r8, [r9, r3]
strne r2, [r9, r3]
-.L1187:
+.L1200:
ldr ip, [sp, #20]
add sl, sl, r7
cmp ip, #0
- beq .L1164
- ldr r3, .L1202+4
- ldrb r3, [r3, #928] @ zero_extendqisi2
+ beq .L1177
+ ldr r3, .L1215+4
+ ldrb r3, [r3, #3072] @ zero_extendqisi2
cmp r3, #0
- beq .L1164
+ beq .L1177
mov r0, r4
bl flash_exit_slc_mode
-.L1164:
+.L1177:
add sl, sl, #1
-.L1161:
+.L1174:
ldr ip, [sp, #28]
cmp sl, ip
- bcc .L1189
+ bcc .L1202
mov r0, #0
-.L1162:
+.L1175:
add sp, sp, #52
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L1203:
+.L1216:
.align 2
-.L1202:
+.L1215:
.word .LANCHOR1
.word .LANCHOR0
.word .LANCHOR2
@@ -10082,224 +10186,6 @@ FlashReadPages:
.fnend
.size FlashReadPages, .-FlashReadPages
.align 2
- .global FtlGcScanTempBlk
- .type FtlGcScanTempBlk, %function
-FtlGcScanTempBlk:
- .fnstart
- @ args = 0, pretend = 0, frame = 24
- @ frame_needed = 0, uses_anonymous_args = 0
- ldr r2, .L1229
- movw r3, #3096
- stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
- .save {r4, r5, r6, r7, r8, r9, sl, fp, lr}
- .pad #28
- sub sp, sp, #28
- ldrh r4, [r2, r3]
- movw r3, #65535
- mov r5, r0
- str r1, [sp, #20]
- cmp r4, r3
- beq .L1225
- cmp r4, #0
- bne .L1205
- b .L1206
-.L1225:
- mov r4, #0
-.L1205:
- ldr r2, .L1229+4
- movw r3, #3916
- ldr fp, [sp, #20]
- ldrh r3, [r2, r3]
- cmp fp, r3
- bne .L1207
-.L1206:
- bl FtlGcPageVarInit
-.L1207:
- mov r7, #0
- movw r8, #65535
- mov sl, r7
- mvn r3, #0
- str r3, [sp, #16]
-.L1220:
- ldrh r3, [r5, #0]
- strb sl, [r5, #8]
- cmp r3, r8
- beq .L1226
-.L1209:
-.L1227:
- ldr r3, .L1229+4
- movw r2, #3848
- ldrh r9, [r3, r2]
- ldr r2, .L1229+8
- ldr lr, [r2, #-968]
- ldr ip, [r2, #-1168]
- movw r2, #3928
- ldrh r2, [r3, r2]
- mov r3, #0
- mov r6, r3
- str r2, [sp, #12]
- mov r2, r5
- b .L1210
-.L1212:
- ldrh r0, [r2, #16]
- cmp r0, r8
- beq .L1211
- mov fp, #36
- orr r0, r4, r0, asl #10
- mla r1, fp, r6, lr
- ldr fp, [sp, #12]
- stmib r1, {r0, sl}
- mul r0, fp, r6
- add r6, r6, #1
- uxth r6, r6
- add fp, r0, #3
- cmp r0, #0
- movlt r0, fp
- bic r0, r0, #3
- add r0, ip, r0
- str r0, [r1, #12]
-.L1211:
- add r3, r3, #1
- add r2, r2, #2
- uxth r3, r3
-.L1210:
- cmp r3, r9
- bne .L1212
- ldr r9, .L1229+8
- mov r1, r6
- mov r2, #0
- ldr r0, [r9, #-968]
- bl FlashReadPages
- mov r3, #36
- mul r3, r3, r6
- mov r6, #0
- str r3, [sp, #12]
- b .L1213
-.L1221:
- ldr r1, [r9, #-968]
- add r3, r1, r6
- ldr fp, [r3, #4]
- stmib sp, {r1, r3}
- ubfx r0, fp, #10, #16
- bl P2V_plane
- ldr r1, [sp, #4]
- ldr r3, [sp, #8]
- ldr r1, [r1, r6]
- cmp r1, #0
- mov r2, r0
- bne .L1214
- ldr r3, [r3, #12]
- add r6, r6, #36
- ldrh r1, [r3, #0]
- cmp r1, r8
- ldreq r3, .L1229+8
- moveq r1, #1
- streq r1, [r3, #-1008]
- beq .L1208
-.L1215:
- ldr r0, [r3, #12]
- mov r1, fp
- ldr r2, [r3, #8]
- bl FtlGcUpdatePage
- b .L1213
-.L1214:
- mov r2, fp
- ldr r0, .L1229+12
- ldrh r1, [r5, #0]
- bl printk
- ldr r3, .L1229+4
- ldr r2, [r3, #3840]
- cmp r2, #0
- bne .L1216
- ldrb r2, [r3, #928] @ zero_extendqisi2
- cmp r2, #0
- beq .L1217
-.L1216:
- ldrh r1, [r5, #0]
- ldr r2, [r3, #4048]
- mov r3, r1, asl #1
- ldrh r3, [r2, r3]
- cmp r3, #159
- bls .L1218
-.L1217:
- ldr r3, .L1229+8
- ldr r3, [r3, #-968]
- ldr r3, [r3, r6]
- cmn r3, #1
- bne .L1219
-.L1218:
- ldr r3, .L1229+8
- ldr r3, [r3, #-968]
- add r6, r3, r6
- ldr r6, [r6, #4]
- str r6, [sp, #16]
-.L1219:
- ldr r2, .L1229+8
- mov r4, #0
- ldrh r3, [r5, #0]
- ldr r2, [r2, #-2016]
- mov r3, r3, asl #1
- strh sl, [r2, r3] @ movhi
- ldrh r0, [r5, #0]
- bl INSERT_FREE_LIST
- mvn r3, #0
- strh r3, [r5, #0] @ movhi
- bl FtlGcPageVarInit
- b .L1220
-.L1213:
- ldr r3, [sp, #12]
- cmp r6, r3
- bne .L1221
- ldr fp, [sp, #20]
- add r7, r7, #1
- add r4, r4, #1
- cmp r7, fp
- uxth r4, r4
- bcc .L1222
- ldr r2, .L1229
- movw r3, #3096
- ldrh r1, [r2, r3]
- cmp r1, r8
- beq .L1222
- add r1, r1, r7
- strh r1, [r2, r3] @ movhi
- ldr r2, .L1229+4
- add r3, r3, #820
- ldrh r3, [r2, r3]
- cmp r3, r4
- bhi .L1223
-.L1222:
- ldr r2, .L1229+4
- movw r3, #3916
- ldrh r3, [r2, r3]
- cmp r3, r4
- bhi .L1227
-.L1226:
- mov r2, #0
-.L1208:
- ldr r1, .L1229
- movw r3, #3096
- mvn r0, #0
- strh r4, [r5, #2] @ movhi
- strb r2, [r5, #6]
- strh r0, [r1, r3] @ movhi
- mov r0, r5
- mov r1, r4
- bl ftl_sb_update_avl_pages
-.L1223:
- ldr r0, [sp, #16]
- add sp, sp, #28
- ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L1230:
- .align 2
-.L1229:
- .word .LANCHOR1
- .word .LANCHOR0
- .word .LANCHOR2
- .word .LC101
- .fnend
- .size FtlGcScanTempBlk, .-FtlGcScanTempBlk
- .align 2
.global FtlScanAllBlock
.type FtlScanAllBlock, %function
FtlScanAllBlock:
@@ -10310,47 +10196,47 @@ FtlScanAllBlock:
.save {r4, r5, r6, r7, r8, r9, sl, fp, lr}
.pad #84
sub sp, sp, #84
- ldr r0, .L1241
+ ldr r0, .L1227
mov r5, #0
- ldr r1, .L1241+4
+ ldr r1, .L1227+4
bl printk
- ldr r7, .L1241+8
- b .L1232
-.L1240:
+ ldr r7, .L1227+8
+ b .L1218
+.L1226:
add r4, sp, #80
mov r0, r5
- ldr r6, .L1241+12
+ ldr r6, .L1227+12
mov r9, #36
strh r5, [r4, #-48]! @ movhi
bl ftl_get_blk_mode
mov r2, r5, asl #1
- ldr ip, [r6, #-2016]
+ ldr ip, [r6, #-2012]
mov r1, r5
ldrh r2, [ip, r2]
mov r3, r0
- ldr r0, .L1241+16
+ ldr r0, .L1227+16
bl printk
mov r0, r4
bl make_superblock
- movw r3, #3848
+ movw r3, #3852
ldrh sl, [r7, r3]
- add r3, r3, #78
+ add r3, r3, #76
add r0, r4, #14
mov r4, #0
ldrh r3, [r7, r3]
- ldr r8, [r6, #-968]
- ldr lr, [r6, #-1172]
+ ldr r8, [r6, #-960]
+ ldr lr, [r6, #-1164]
str r3, [sp, #28]
- movw r3, #3928
+ movw r3, #3930
ldrh ip, [r7, r3]
mov r3, r4
- ldr r6, [r6, #-1168]
- b .L1233
-.L1235:
+ ldr r6, [r6, #-1160]
+ b .L1219
+.L1221:
ldrh r1, [r0, #2]!
movw r2, #65535
cmp r1, r2
- beq .L1234
+ beq .L1220
mla r2, r9, r4, r8
ldr fp, [sp, #28]
mov r1, r1, asl #10
@@ -10371,22 +10257,22 @@ FtlScanAllBlock:
bic r1, r1, #3
add r1, r6, r1
str r1, [r2, #12]
-.L1234:
+.L1220:
add r3, r3, #1
uxth r3, r3
-.L1233:
+.L1219:
cmp r3, sl
- bne .L1235
- ldr sl, .L1241+12
+ bne .L1221
+ ldr sl, .L1227+12
mov r1, r4
mov r2, #0
mov r6, #0
mov r8, r6
- ldr r0, [sl, #-968]
+ ldr r0, [sl, #-960]
bl FlashReadPages
- b .L1236
-.L1237:
- ldr r2, [sl, #-968]
+ b .L1222
+.L1223:
+ ldr r2, [sl, #-960]
add r8, r8, #1
ldrh r1, [sp, #32]
add r3, r2, r6
@@ -10405,25 +10291,25 @@ FtlScanAllBlock:
str r0, [sp, #16]
ldr r0, [ip, #4]
str r0, [sp, #20]
- ldr r0, .L1241+20
+ ldr r0, .L1227+20
ldr r2, [r2, r6]
add r6, r6, #36
ldr r3, [r3, #4]
bl printk
-.L1236:
+.L1222:
cmp r8, r4
- ldr r9, .L1241+12
- bne .L1237
- ldr r0, [r9, #-968]
+ ldr r9, .L1227+12
+ bne .L1223
+ ldr r0, [r9, #-960]
mov r1, r4
mov r2, #1
mov r6, #0
bl FlashReadPages
mov r8, r6
mov sl, r9
- b .L1238
-.L1239:
- ldr r2, [sl, #-968]
+ b .L1224
+.L1225:
+ ldr r2, [sl, #-960]
add r8, r8, #1
ldrh r1, [sp, #32]
add r3, r2, r6
@@ -10442,34 +10328,34 @@ FtlScanAllBlock:
str r0, [sp, #16]
ldr r0, [ip, #4]
str r0, [sp, #20]
- ldr r0, .L1241+24
+ ldr r0, .L1227+24
ldr r2, [r2, r6]
add r6, r6, #36
ldr r3, [r3, #4]
bl printk
-.L1238:
+.L1224:
cmp r8, r4
- bne .L1239
+ bne .L1225
add r5, r5, #1
uxth r5, r5
-.L1232:
- movw r3, #3858
+.L1218:
+ movw r3, #3862
ldrh r3, [r7, r3]
cmp r3, r5
- bhi .L1240
+ bhi .L1226
mov r0, #0
add sp, sp, #84
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L1242:
+.L1228:
.align 2
-.L1241:
- .word .LC102
+.L1227:
+ .word .LC101
.word .LANCHOR3+15
.word .LANCHOR0
.word .LANCHOR2
+ .word .LC102
.word .LC103
.word .LC104
- .word .LC105
.fnend
.size FtlScanAllBlock, .-FtlScanAllBlock
.align 2
@@ -10486,17 +10372,17 @@ FtlDumpBlockInfo:
sub sp, sp, #84
mov r7, r1
bl P2V_block_in_plane
- ldr r5, .L1254
- ldr r1, .L1254+4
- movw r6, #3916
+ ldr r5, .L1240
+ ldr r1, .L1240+4
+ movw r6, #3918
ldrh r9, [r5, r6]
mov r4, r0
- ldr r0, .L1254+8
+ ldr r0, .L1240+8
bl printk
- ldr r3, .L1254+12
+ ldr r3, .L1240+12
mov r1, r4
- ldr r0, .L1254+16
- ldr r2, [r3, #-2016]
+ ldr r0, .L1240+16
+ ldr r2, [r3, #-2012]
mov r3, r4, asl #1
ldrh r2, [r2, r3]
bl printk
@@ -10504,47 +10390,47 @@ FtlDumpBlockInfo:
strh r4, [r0, #-48]! @ movhi
bl make_superblock
rsbs r7, r7, #1
- ldrb r3, [r5, #928] @ zero_extendqisi2
+ ldrb r3, [r5, #3072] @ zero_extendqisi2
movcc r7, #0
cmp r3, #0
moveq r7, #0
cmp r7, #0
- beq .L1244
+ beq .L1230
mov r0, r4
bl ftl_get_blk_mode
cmp r0, #1
mov r7, r0
- movweq r3, #3918
+ moveq r3, #3920
ldreqh r9, [r5, r3]
-.L1244:
+.L1230:
ldrh r3, [r5, r6]
mov r1, r7
- ldr r0, .L1254+20
+ ldr r0, .L1240+20
mov r2, r9
bl printk
mov r6, #0
-.L1245:
- ldr r3, .L1254
- movw r2, #3848
- movw r1, #3926
+.L1231:
+ ldr r3, .L1240
+ movw r2, #3852
+ movw r1, #3928
mov r4, #0
add r0, sp, #46
ldrh sl, [r3, r2]
- ldr r2, .L1254+12
+ ldr r2, .L1240+12
ldrh lr, [r3, r1]
- ldr r8, [r2, #-968]
- ldr r5, [r2, #-1172]
- ldr ip, [r2, #-1168]
- movw r2, #3928
+ ldr r8, [r2, #-960]
+ ldr r5, [r2, #-1164]
+ ldr ip, [r2, #-1160]
+ movw r2, #3930
ldrh r2, [r3, r2]
mov r3, r4
str r2, [sp, #28]
- b .L1246
-.L1248:
+ b .L1232
+.L1234:
ldrh r1, [r0, #2]!
movw r2, #65535
cmp r1, r2
- beq .L1247
+ beq .L1233
mov fp, #36
orr r1, r6, r1, asl #10
mla r2, fp, r4, r8
@@ -10566,22 +10452,22 @@ FtlDumpBlockInfo:
bic r1, r1, #3
add r1, ip, r1
str r1, [r2, #12]
-.L1247:
+.L1233:
add r3, r3, #1
uxth r3, r3
-.L1246:
+.L1232:
cmp r3, sl
- bne .L1248
- ldr r8, .L1254+12
+ bne .L1234
+ ldr r8, .L1240+12
mov r1, r4
mov r2, r7
mov r5, #0
mov sl, r5
- ldr r0, [r8, #-968]
+ ldr r0, [r8, #-960]
bl FlashReadPages
- b .L1249
-.L1250:
- ldr r2, [r8, #-968]
+ b .L1235
+.L1236:
+ ldr r2, [r8, #-960]
add sl, sl, #1
ldrh r1, [sp, #32]
add r3, r2, r5
@@ -10600,32 +10486,32 @@ FtlDumpBlockInfo:
str r0, [sp, #16]
ldr r0, [ip, #4]
str r0, [sp, #20]
- ldr r0, .L1254+24
+ ldr r0, .L1240+24
ldr r2, [r2, r5]
add r5, r5, #36
ldr r3, [r3, #4]
bl printk
-.L1249:
+.L1235:
cmp sl, r4
- bne .L1250
+ bne .L1236
add r6, r6, #1
uxth r6, r6
cmp r6, r9
- bne .L1245
-.L1251:
+ bne .L1231
+.L1237:
mov r0, #0
add sp, sp, #84
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L1255:
+.L1241:
.align 2
-.L1254:
+.L1240:
.word .LANCHOR0
.word .LANCHOR3+31
- .word .LC102
+ .word .LC101
.word .LANCHOR2
+ .word .LC105
.word .LC106
.word .LC107
- .word .LC108
.fnend
.size FtlDumpBlockInfo, .-FtlDumpBlockInfo
.align 2
@@ -10638,59 +10524,59 @@ FtlScanSysBlk:
stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
.save {r4, r5, r6, r7, r8, r9, sl, fp, lr}
mov r6, #0
- ldr r5, .L1314
+ ldr r5, .L1300
.pad #28
sub sp, sp, #28
- ldr r4, .L1314+4
+ ldr r4, .L1300+4
mov r1, r6
- ldr r3, .L1314+8
- mov r7, #3936
- ldr r2, [r5, #3944]
- ldr r0, [r4, #-1032]
+ ldr r3, .L1300+8
+ movw r7, #3940
+ ldr r2, [r5, #3948]
+ ldr r0, [r4, #-1024]
mov sl, r4
strh r6, [r4, r3] @ movhi
- movw r3, #3962
+ movw r3, #3966
strh r6, [r5, r3] @ movhi
mov r2, r2, asl #2
bl ftl_memset
- ldr r2, [r5, #3944]
+ ldr r2, [r5, #3948]
mov r1, r6
- ldr r0, [r4, #-1036]
+ ldr r0, [r4, #-1028]
mov r2, r2, asl #1
bl ftl_memset
ldrh r2, [r5, r7]
mov r1, r6
- ldr r0, [r4, #-904]
+ ldr r0, [r4, #-896]
mov r2, r2, asl #2
bl ftl_memset
ldrh r2, [r5, r7]
mov r1, r6
- ldr r0, [r5, #3964]
+ ldr r0, [r5, #3968]
mov r2, r2, asl #1
bl ftl_memset
- ldr r0, .L1314+12
+ ldr r0, .L1300+12
mov r1, #255
- mov r2, #12
+ mov r2, #16
bl ftl_memset
- mov r3, #3856
+ movw r3, #3860
ldrh r3, [r5, r3]
str r3, [sp, #8]
- b .L1257
-.L1259:
+ b .L1243
+.L1245:
add r3, r6, r5
ldr r1, [sp, #8]
- ldrb r0, [r3, #3874] @ zero_extendqisi2
+ ldrb r0, [r3, #3878] @ zero_extendqisi2
bl V2P_block
str r0, [sp, #0]
bl FtlBbmIsBadBlock
ldr r3, [sp, #0]
cmp r0, #0
- bne .L1258
- ldr r2, [r4, #-968]
+ bne .L1244
+ ldr r2, [r4, #-960]
mov r3, r3, asl #10
mla r2, r9, r7, r2
str r3, [r2, #4]
- ldr r3, [r4, #-1172]
+ ldr r3, [r4, #-1164]
str r3, [r2, #8]
ldrh r3, [r6, r8]
mul r3, r3, r7
@@ -10699,45 +10585,45 @@ FtlScanSysBlk:
add r1, r3, #3
cmp r3, #0
movlt r3, r1
- ldr r1, [r4, #-1168]
+ ldr r1, [r4, #-1160]
bic r3, r3, #3
add r3, r1, r3
str r3, [r2, #12]
-.L1258:
+.L1244:
add r5, r5, #1
uxth r5, r5
- b .L1292
-.L1305:
+ b .L1278
+.L1291:
mov r7, #0
- movw fp, #3848
+ movw fp, #3852
mov r5, r7
mov r9, #36
- movw r8, #3928
-.L1292:
+ movw r8, #3930
+.L1278:
ldrh r3, [r6, fp]
cmp r3, r5
- bhi .L1259
+ bhi .L1245
cmp r7, #0
- beq .L1260
- ldr r0, [r4, #-968]
+ beq .L1246
+ ldr r0, [r4, #-960]
mov r1, r7
mov r2, #1
mov fp, r7
bl FlashReadPages
mov r8, #0
str r8, [sp, #12]
-.L1291:
- ldr r3, [r4, #-968]
+.L1277:
+ ldr r3, [r4, #-960]
add r2, r3, r8
ldr r3, [r3, r8]
ldr r6, [r2, #4]
cmn r3, #1
ldr r5, [r2, #12]
ubfx r6, r6, #10, #16
- bne .L1261
+ bne .L1247
mov r7, #16
-.L1263:
- ldr r0, [r4, #-968]
+.L1249:
+ ldr r0, [r4, #-960]
mov r1, #1
mov r2, r1
add r0, r0, r8
@@ -10748,58 +10634,58 @@ FtlScanSysBlk:
ldrh r3, [r5, #0]
movw r1, #65535
cmp r3, r1
- ldreq r3, [sl, #-968]
+ ldreq r3, [sl, #-960]
mvneq r2, #0
streq r2, [r3, r8]
- beq .L1261
-.L1262:
- ldr r3, [r4, #-968]
+ beq .L1247
+.L1248:
+ ldr r3, [r4, #-960]
ldr r3, [r3, r8]
cmn r3, #1
- bne .L1261
+ bne .L1247
sub r7, r7, #1
uxth r7, r7
cmp r7, #0
- bne .L1263
-.L1261:
- ldr r3, [r4, #-968]
+ bne .L1249
+.L1247:
+ ldr r3, [r4, #-960]
ldr r3, [r3, r8]
cmn r3, #1
- beq .L1264
- ldr r2, [r4, #-1804]
+ beq .L1250
+ ldr r2, [r4, #-1800]
ldr r3, [r5, #4]
cmn r2, #1
- beq .L1265
+ beq .L1251
cmp r2, r3
- bhi .L1266
-.L1265:
+ bhi .L1252
+.L1251:
cmn r3, #1
addne r3, r3, #1
- strne r3, [sl, #-1804]
-.L1266:
+ strne r3, [sl, #-1800]
+.L1252:
ldrh r3, [r5, #0]
movw r2, #61604
cmp r3, r2
- beq .L1269
- bhi .L1272
+ beq .L1255
+ bhi .L1258
movw r2, #61574
cmp r3, r2
- bne .L1267
- b .L1312
-.L1272:
+ bne .L1253
+ b .L1298
+.L1258:
movw r2, #61634
cmp r3, r2
- beq .L1270
+ beq .L1256
movw r2, #65535
cmp r3, r2
- bne .L1267
- b .L1313
-.L1270:
- ldr r3, .L1314
+ bne .L1253
+ b .L1299
+.L1256:
+ ldr r3, .L1300
mov r9, r6
- ldr r1, .L1314+8
- ldr ip, [r4, #-1032]
- ldr r0, [r3, #3944]
+ ldr r1, .L1300+8
+ ldr ip, [r4, #-1024]
+ ldr r0, [r3, #3948]
ldrh r1, [r4, r1]
uxth r2, r0
sub r3, r2, #1
@@ -10808,29 +10694,29 @@ FtlScanSysBlk:
uxth r3, r3
sxth r2, r2
str r2, [sp, #4]
- b .L1273
-.L1279:
+ b .L1259
+.L1265:
mov r6, r2, asl #2
ldr r7, [r5, #4]
str r6, [sp, #16]
ldr r6, [ip, r2, asl #2]
cmp r7, r6
- bls .L1274
+ bls .L1260
ldr ip, [ip, #0]
mov r6, r9
cmp ip, #0
- bne .L1275
+ bne .L1261
cmp r1, r0
addne r1, r1, #1
- ldrne r0, .L1314+8
+ ldrne r0, .L1300+8
strneh r1, [r4, r0] @ movhi
-.L1275:
+.L1261:
mov r0, #0
sxth r9, r3
str r3, [sp, #4]
- b .L1276
-.L1277:
- ldr r7, [r4, #-1032]
+ b .L1262
+.L1263:
+ ldr r7, [r4, #-1024]
add ip, r1, #1
add r0, r0, #1
ldr r3, [r7, ip, asl #2]
@@ -10838,90 +10724,90 @@ FtlScanSysBlk:
uxth r0, r0
str r3, [r7, r1, asl #2]
mov r1, r1, asl #1
- ldr r7, [r4, #-1036]
+ ldr r7, [r4, #-1028]
ldrh ip, [r7, ip]
strh ip, [r7, r1] @ movhi
-.L1276:
+.L1262:
sxth r1, r0
cmp r1, r9
- bne .L1277
- ldr r1, [sl, #-1032]
+ bne .L1263
+ ldr r1, [sl, #-1024]
mov r2, r2, asl #1
ldr r0, [r5, #4]
ldr ip, [sp, #16]
ldr r3, [sp, #4]
str r0, [r1, ip]
- ldr r1, [sl, #-1036]
+ ldr r1, [sl, #-1028]
strh r6, [r1, r2] @ movhi
- b .L1278
-.L1274:
+ b .L1264
+.L1260:
sub r3, r3, #1
uxth r3, r3
-.L1273:
+.L1259:
ldr r6, [sp, #4]
sxth r2, r3
cmp r2, r6
- bgt .L1279
+ bgt .L1265
mov r6, r9
-.L1278:
+.L1264:
sxth r3, r3
cmp r3, #0
- blt .L1267
- ldr r2, .L1314+8
- ldr r0, .L1314
+ blt .L1253
+ ldr r2, .L1300+8
+ ldr r0, .L1300
ldrh r1, [r4, r2]
- ldr r0, [r0, #3944]
+ ldr r0, [r0, #3948]
rsb r0, r1, r0
sub r0, r0, #1
sxth r0, r0
cmp r3, r0
- bgt .L1267
+ bgt .L1253
add r1, r1, #1
strh r1, [r4, r2] @ movhi
- ldr r2, [r4, #-1032]
+ ldr r2, [r4, #-1024]
ldr r1, [r5, #4]
str r1, [r2, r3, asl #2]
mov r3, r3, asl #1
- ldr r2, [r4, #-1036]
- b .L1309
-.L1312:
- ldr r1, .L1314
- mov r3, #3936
- movw ip, #3962
+ ldr r2, [r4, #-1028]
+ b .L1295
+.L1298:
+ ldr r1, .L1300
+ movw r3, #3940
+ movw ip, #3966
mov r9, r6
ldrh r0, [r1, r3]
ldrh r1, [r1, ip]
sub r2, r0, #1
- ldr ip, [r4, #-904]
+ ldr ip, [r4, #-896]
uxth r3, r2
rsb r2, r1, r2
str r2, [sp, #4]
- b .L1280
-.L1286:
+ b .L1266
+.L1272:
mov r6, r2, asl #2
ldr r7, [r5, #4]
str r6, [sp, #16]
ldr r6, [ip, r2, asl #2]
cmp r7, r6
- bls .L1281
+ bls .L1267
ldr ip, [ip, #0]
mov r6, r9
cmp ip, #0
- bne .L1282
+ bne .L1268
cmp r1, r0
addne r1, r1, #1
- ldrne ip, .L1314
- movwne r0, #3962
+ ldrne ip, .L1300
+ movwne r0, #3966
strneh r1, [ip, r0] @ movhi
-.L1282:
+.L1268:
sxth ip, r3
mov r0, #0
str ip, [sp, #20]
- ldr r9, .L1314
+ ldr r9, .L1300
str r3, [sp, #4]
- b .L1283
-.L1284:
- ldr r7, [r4, #-904]
+ b .L1269
+.L1270:
+ ldr r7, [r4, #-896]
add ip, r1, #1
add r0, r0, #1
ldr r3, [r7, ip, asl #2]
@@ -10929,142 +10815,142 @@ FtlScanSysBlk:
uxth r0, r0
str r3, [r7, r1, asl #2]
mov r1, r1, asl #1
- ldr r7, [r9, #3964]
+ ldr r7, [r9, #3968]
ldrh ip, [r7, ip]
strh ip, [r7, r1] @ movhi
-.L1283:
+.L1269:
ldr ip, [sp, #20]
sxth r1, r0
cmp r1, ip
- bne .L1284
- ldr r1, [sl, #-904]
+ bne .L1270
+ ldr r1, [sl, #-896]
mov r2, r2, asl #1
ldr r0, [r5, #4]
ldr ip, [sp, #16]
ldr r3, [sp, #4]
str r0, [r1, ip]
- ldr r1, .L1314
- ldr r1, [r1, #3964]
+ ldr r1, .L1300
+ ldr r1, [r1, #3968]
strh r6, [r1, r2] @ movhi
- b .L1285
-.L1281:
+ b .L1271
+.L1267:
sub r3, r3, #1
uxth r3, r3
-.L1280:
+.L1266:
ldr r6, [sp, #4]
sxth r2, r3
cmp r2, r6
- bgt .L1286
+ bgt .L1272
mov r6, r9
-.L1285:
+.L1271:
sxth r3, r3
cmp r3, #0
- blt .L1267
- ldr r2, .L1314
- mov ip, #3936
- movw r1, #3962
+ blt .L1253
+ ldr r2, .L1300
+ movw ip, #3940
+ movw r1, #3966
ldrh ip, [r2, ip]
ldrh r0, [r2, r1]
sub ip, ip, #1
rsb ip, r0, ip
sxth ip, ip
cmp r3, ip
- bgt .L1267
+ bgt .L1253
add r0, r0, #1
strh r0, [r2, r1] @ movhi
ldr r0, [r5, #4]
- ldr r1, [r4, #-904]
+ ldr r1, [r4, #-896]
str r0, [r1, r3, asl #2]
mov r3, r3, asl #1
- ldr r2, [r2, #3964]
-.L1309:
+ ldr r2, [r2, #3968]
+.L1295:
strh r6, [r2, r3] @ movhi
- b .L1267
-.L1269:
- ldr r3, .L1314+16
+ b .L1253
+.L1255:
+ ldr r3, .L1300+16
movw ip, #65535
ldrh r2, [r4, r3]
cmp r2, ip
streqh r6, [r4, r3] @ movhi
- beq .L1310
- ldr r3, .L1314+20
+ beq .L1296
+ ldr r3, .L1300+20
movw r1, #65535
ldrh r0, [r4, r3]
cmp r0, r1
- beq .L1288
+ beq .L1274
mov r1, #1
bl FtlFreeSysBlkQueueIn
-.L1288:
+.L1274:
ldr r3, [r5, #4]
- ldr r2, [sl, #-1764]
+ ldr r2, [sl, #-1760]
cmp r2, r3
- ldr r3, .L1314+20
+ ldr r3, .L1300+20
strcsh r6, [r4, r3] @ movhi
- bcs .L1267
- ldr r2, .L1314+16
+ bcs .L1253
+ ldr r2, .L1300+16
ldrh r1, [r4, r2]
strh r6, [r4, r2] @ movhi
strh r1, [r4, r3] @ movhi
-.L1310:
+.L1296:
ldr r3, [r5, #4]
- str r3, [r4, #-1764]
- b .L1267
-.L1313:
+ str r3, [r4, #-1760]
+ b .L1253
+.L1299:
mov r0, r6
- b .L1311
-.L1264:
- ldr r3, .L1314
+ b .L1297
+.L1250:
+ ldr r3, .L1300
mov r0, r6
- ldrb r1, [r3, #928] @ zero_extendqisi2
+ ldrb r1, [r3, #3072] @ zero_extendqisi2
cmp r1, #0
- beq .L1290
-.L1311:
+ beq .L1276
+.L1297:
mov r1, #0
-.L1290:
+.L1276:
bl FtlFreeSysBlkQueueIn
-.L1267:
+.L1253:
ldr r6, [sp, #12]
add r8, r8, #36
add r3, r6, #1
uxth r3, r3
str r3, [sp, #12]
cmp r3, fp
- bne .L1291
-.L1260:
+ bne .L1277
+.L1246:
ldr ip, [sp, #8]
add r3, ip, #1
uxth r3, r3
str r3, [sp, #8]
-.L1257:
- ldr r6, .L1314
- movw r3, #3858
+.L1243:
+ ldr r6, .L1300
+ movw r3, #3862
ldr ip, [sp, #8]
ldrh r3, [r6, r3]
cmp r3, ip
- bhi .L1305
- ldr r1, .L1314+4
- ldr r2, [r1, #-1036]
+ bhi .L1291
+ ldr r1, .L1300+4
+ ldr r2, [r1, #-1028]
ldrh r3, [r2, #0]
cmp r3, #0
- bne .L1293
- ldr r0, .L1314+8
+ bne .L1279
+ ldr r0, .L1300+8
ldrh r1, [r1, r0]
cmp r1, #0
- ldrne r0, [r6, #3944]
- bne .L1294
- b .L1293
-.L1298:
+ ldrne r0, [r6, #3948]
+ bne .L1280
+ b .L1279
+.L1284:
mov r1, r1, asl #1
ldrh r1, [r2, r1]
cmp r1, #0
- beq .L1295
- ldr r7, .L1314
+ beq .L1281
+ ldr r7, .L1300
sxth r6, r3
- ldr r1, .L1314+4
+ ldr r1, .L1300+4
mov r5, #0
- b .L1296
-.L1297:
- ldr ip, [r1, #-1036]
+ b .L1282
+.L1283:
+ ldr ip, [r1, #-1028]
mov r0, r2, asl #1
rsb r4, r6, r2
add r3, r3, #1
@@ -11072,49 +10958,49 @@ FtlScanSysBlk:
mov r8, r4, asl #1
uxth r3, r3
strh sl, [ip, r8] @ movhi
- ldr ip, [r1, #-1032]
+ ldr ip, [r1, #-1024]
ldr r2, [ip, r2, asl #2]
str r2, [ip, r4, asl #2]
- ldr r2, [r1, #-1036]
+ ldr r2, [r1, #-1028]
strh r5, [r2, r0] @ movhi
-.L1296:
- ldr r0, [r7, #3944]
+.L1282:
+ ldr r0, [r7, #3948]
sxth r2, r3
cmp r2, r0
- bcc .L1297
- b .L1293
-.L1295:
+ bcc .L1283
+ b .L1279
+.L1281:
add r3, r3, #1
uxth r3, r3
-.L1294:
+.L1280:
sxth r1, r3
cmp r1, r0
- bcc .L1298
-.L1293:
- ldr r2, .L1314
- ldr r1, [r2, #3964]
+ bcc .L1284
+.L1279:
+ ldr r2, .L1300
+ ldr r1, [r2, #3968]
ldrh r3, [r1, #0]
cmp r3, #0
- bne .L1299
- movw r0, #3962
+ bne .L1285
+ movw r0, #3966
ldrh r0, [r2, r0]
cmp r0, #0
- movne r0, #3936
+ movwne r0, #3940
ldrneh r2, [r2, r0]
- bne .L1300
- b .L1299
-.L1304:
+ bne .L1286
+ b .L1285
+.L1290:
mov ip, r0, asl #1
ldrh ip, [r1, ip]
cmp ip, #0
- beq .L1301
- ldr r1, .L1314
- mov r8, #3936
- ldr r7, .L1314+4
+ beq .L1287
+ ldr r1, .L1300
+ movw r8, #3940
+ ldr r7, .L1300+4
mov r6, #0
- b .L1302
-.L1303:
- ldr r4, [r1, #3964]
+ b .L1288
+.L1289:
+ ldr r4, [r1, #3968]
mov ip, r2, asl #1
rsb r5, r0, r2
add r3, r3, #1
@@ -11122,37 +11008,37 @@ FtlScanSysBlk:
mov sl, r5, asl #1
uxth r3, r3
strh r9, [r4, sl] @ movhi
- ldr r4, [r7, #-904]
+ ldr r4, [r7, #-896]
ldr r2, [r4, r2, asl #2]
str r2, [r4, r5, asl #2]
- ldr r2, [r1, #3964]
+ ldr r2, [r1, #3968]
strh r6, [r2, ip] @ movhi
-.L1302:
+.L1288:
ldrh ip, [r1, r8]
sxth r2, r3
cmp r2, ip
- blt .L1303
- b .L1299
-.L1301:
+ blt .L1289
+ b .L1285
+.L1287:
add r3, r3, #1
uxth r3, r3
-.L1300:
+.L1286:
sxth r0, r3
cmp r0, r2
- blt .L1304
-.L1299:
+ blt .L1290
+.L1285:
mov r0, #0
add sp, sp, #28
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L1315:
+.L1301:
.align 2
-.L1314:
+.L1300:
.word .LANCHOR0
.word .LANCHOR2
- .word -1040
- .word .LANCHOR2-1772
- .word -1772
+ .word -1032
+ .word .LANCHOR2-1768
.word -1768
+ .word -1764
.fnend
.size FtlScanSysBlk, .-FtlScanSysBlk
.align 2
@@ -11163,11 +11049,11 @@ FtlGetLastWrittenPage:
@ args = 0, pretend = 0, frame = 104
@ frame_needed = 0, uses_anonymous_args = 0
cmp r1, #1
- ldr r3, .L1327
+ ldr r3, .L1313
stmfd sp!, {r4, r5, r6, r7, r8, sl, lr}
.save {r4, r5, r6, r7, r8, sl, lr}
- movweq r2, #3918
- movwne r2, #3916
+ moveq r2, #3920
+ movwne r2, #3918
.pad #108
sub sp, sp, #108
ldrh r4, [r3, r2]
@@ -11189,9 +11075,9 @@ FtlGetLastWrittenPage:
bl FlashReadPages
ldr r3, [sp, #40]
cmn r3, #1
- bne .L1320
- b .L1325
-.L1323:
+ bne .L1306
+ b .L1311
+.L1309:
add r6, r6, r3
mov r0, r7
mov r1, #1
@@ -11204,30 +11090,30 @@ FtlGetLastWrittenPage:
bl FlashReadPages
ldr r3, [sp, #40]
cmn r3, #1
- bne .L1321
+ bne .L1307
ldr r3, [sp, #44]
cmn r3, #1
- bne .L1321
+ bne .L1307
ldr r3, [sp, #4]
cmn r3, #1
subne r4, r6, #1
uxthne r4, r4
- bne .L1325
-.L1321:
+ bne .L1311
+.L1307:
add r6, r6, #1
uxth r8, r6
-.L1325:
+.L1311:
sxth r6, r8
sxth r3, r4
cmp r6, r3
- ble .L1323
-.L1320:
+ ble .L1309
+.L1306:
sxth r0, r4
add sp, sp, #108
ldmfd sp!, {r4, r5, r6, r7, r8, sl, pc}
-.L1328:
+.L1314:
.align 2
-.L1327:
+.L1313:
.word .LANCHOR0
.fnend
.size FtlGetLastWrittenPage, .-FtlGetLastWrittenPage
@@ -11238,141 +11124,166 @@ FtlLoadSysInfo:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- stmfd sp!, {r3, r4, r5, r6, r7, lr}
- .save {r3, r4, r5, r6, r7, lr}
+ stmfd sp!, {r3, r4, r5, r6, r7, r8, sl, lr}
+ .save {r3, r4, r5, r6, r7, r8, sl, lr}
mov r1, #0
- ldr r4, .L1345
- ldr r2, .L1345+4
- ldr r7, .L1345+8
- ldr r3, [r4, #-956]
- ldr r0, [r4, #-2016]
- str r3, [r4, #192]
- ldr r3, [r4, #-932]
- str r3, [r4, #196]
- mov r3, #3856
- ldrh r2, [r2, r3]
+ ldr r4, .L1335
+ ldr r6, .L1335+4
+ ldr r7, .L1335+8
+ ldr r3, [r4, #-948]
+ ldr r0, [r4, #-2012]
+ str r3, [r4, #200]
+ ldr r3, [r4, #-924]
+ str r3, [r4, #204]
+ movw r3, #3860
+ ldrh r2, [r6, r3]
mov r2, r2, asl #1
bl ftl_memset
ldrh r0, [r4, r7]
movw r3, #65535
cmp r0, r3
- beq .L1343
+ beq .L1332
mov r1, #1
- mov r5, #0
bl FtlGetLastWrittenPage
- ldr r3, .L1345+12
- add r2, r0, #1
- mov r6, r0
+ ldr r3, .L1335+12
+ ldrh r7, [r4, r7]
+ uxth r5, r0
+ add r2, r5, #1
strh r2, [r4, r3] @ movhi
- b .L1331
-.L1334:
- ldrh r2, [r4, r7]
+ b .L1334
+.L1323:
+ sxth r8, r7
mov r1, #1
- ldr r0, .L1345+16
- orr r3, r3, r2, asl #10
- str r3, [r4, #188]
- ldr r3, [r4, #-956]
+ ldr r0, .L1335+16
mov r2, r1
- str r3, [r4, #192]
+ orr r3, r3, r8, asl #10
+ str r3, [r4, #196]
+ ldr r3, [r4, #-948]
+ str r3, [r4, #200]
bl FlashReadPages
- ldr r3, [r4, #184]
+ ldrb r3, [r6, #852] @ zero_extendqisi2
+ cmp r3, #0
+ beq .L1318
+ ldr r3, [r4, #204]
+ ldr sl, [r3, #12]
+ cmp sl, #0
+ beq .L1318
+ movw r3, #3928
+ ldr r0, [r4, #200]
+ ldrh r1, [r6, r3]
+ bl js_hash
+ cmp sl, r0
+ beq .L1318
+ cmp r5, #0
+ bne .L1319
+ ldr r3, .L1335+20
+ ldrh r3, [r4, r3]
+ cmp r8, r3
+ uxthne r7, r3
+ movne r3, #3920
+ ldrneh r5, [r6, r3]
+ bne .L1321
+.L1319:
+ mvn r3, #0
+ str r3, [r4, #192]
+.L1318:
+ ldr r3, [r4, #192]
cmn r3, #1
- beq .L1332
- ldr r3, [r4, #-956]
+ beq .L1321
+ ldr r3, [r4, #-948]
ldr r2, [r3, #0]
- ldr r3, .L1345+20
+ ldr r3, .L1335+24
cmp r2, r3
- bne .L1332
- ldr r3, [r4, #-932]
+ bne .L1321
+ ldr r3, [r4, #-924]
ldrh r2, [r3, #0]
movw r3, #61604
cmp r2, r3
- beq .L1333
-.L1332:
+ beq .L1322
+.L1321:
sub r5, r5, #1
uxth r5, r5
-.L1331:
- add r3, r5, r6
- sxth r3, r3
+.L1334:
+ sxth r3, r5
cmp r3, #0
- bge .L1334
-.L1333:
- ldr r4, .L1345
+ bge .L1323
+.L1322:
+ ldr r4, .L1335
mov r2, #48
- ldr r5, .L1345+4
- mov r6, #3856
- ldr r0, .L1345+24
- ldr r7, [r4, #192]
+ ldr r5, .L1335+4
+ movw r6, #3860
+ ldr r0, .L1335+28
+ ldr r7, [r4, #200]
mov r1, r7
bl memcpy
ldrh r2, [r5, r6]
add r1, r7, #48
- ldr r0, [r4, #-2016]
+ ldr r0, [r4, #-2012]
mov r2, r2, asl #1
bl memcpy
ldrh r1, [r5, r6]
- ldr r3, [r4, #192]
- ldr r0, [r4, #-1840]
+ ldr r3, [r4, #200]
+ ldr r0, [r4, #-1836]
mov r2, r1, lsr #3
add r1, r1, #24
add r2, r2, #4
mov r1, r1, lsr #1
add r1, r3, r1, asl #2
bl memcpy
- movw r3, #3960
+ movw r3, #3964
ldrh r3, [r5, r3]
cmp r3, #0
- beq .L1335
+ beq .L1324
ldrh r3, [r5, r6]
- mov r2, #3952
+ movw r2, #3956
ldrh r2, [r5, r2]
- ldr r0, [r4, #-896]
+ ldr r0, [r4, #-888]
mov r1, r3, lsr #3
add r1, r1, r3, asl #1
- ldr r3, [r4, #192]
+ ldr r3, [r4, #200]
add r1, r1, #52
mov r2, r2, asl #2
ubfx r1, r1, #2, #14
add r1, r3, r1, asl #2
bl memcpy
-.L1335:
- ldr r4, .L1345
- ldr r3, .L1345+20
- ldr r2, [r4, #-2072]
+.L1324:
+ ldr r4, .L1335
+ ldr r3, .L1335+24
+ ldr r2, [r4, #-2068]
cmp r2, r3
- bne .L1343
- ldr r3, .L1345+28
- movw r1, #3870
- ldrb r0, [r4, #-2062] @ zero_extendqisi2
+ bne .L1332
+ ldr r3, .L1335+32
+ movw r1, #3874
+ ldrb r0, [r4, #-2058] @ zero_extendqisi2
ldrh r2, [r4, r3]
- ldr r3, .L1345+32
+ ldr r3, .L1335+36
strh r2, [r4, r3] @ movhi
- ldr r3, .L1345+4
+ ldr r3, .L1335+4
ldrh r1, [r3, r1]
cmp r0, r1
- bne .L1343
- movw r1, #3916
- movw r0, #3922
+ bne .L1332
+ movw r1, #3918
+ movw r0, #3924
ldrh r1, [r3, r1]
movw r5, #65535
ldrh r0, [r3, r0]
- str r2, [r4, #220]
+ str r2, [r4, #228]
mul r1, r2, r1
- str r1, [r3, #3976]
+ str r1, [r3, #3980]
mul r1, r0, r1
- ldr r0, [r3, #3860]
- str r1, [r3, #3956]
- movw r1, #3986
+ ldr r0, [r3, #3864]
+ str r1, [r3, #3960]
+ movw r1, #3990
ldrh r1, [r3, r1]
rsb r0, r1, r0
rsb r0, r2, r0
- movw r2, #3848
+ movw r2, #3852
ldrh r1, [r3, r2]
bl __aeabi_uidiv
- ldr r3, .L1345+36
- ldr r1, .L1345+40
+ ldr r3, .L1335+40
+ ldr r1, .L1335+44
strh r0, [r4, r3] @ movhi
- ldr r3, .L1345+44
+ ldr r3, .L1335+48
ldrh r2, [r4, r3]
add r3, r3, #62
strh r2, [r4, r3] @ movhi
@@ -11380,125 +11291,126 @@ FtlLoadSysInfo:
ldrh r3, [r4, r3]
mov r0, r3, lsr #6
and r3, r3, #63
- strb r3, [r4, #-1990]
- ldrb r3, [r4, #-2061] @ zero_extendqisi2
+ strb r3, [r4, #-1986]
+ ldrb r3, [r4, #-2057] @ zero_extendqisi2
strh r0, [r4, r1] @ movhi
mvn r1, #0
- ldr r0, .L1345+48
- strb r3, [r4, #-1988]
- ldr r3, .L1345+52
+ ldr r0, .L1335+52
+ strb r3, [r4, #-1984]
+ ldr r3, .L1335+56
strh r1, [r4, r3] @ movhi
mov r3, #0
- ldr r1, .L1345+56
+ ldr r1, .L1335+60
strh r3, [r4, r0] @ movhi
- strb r3, [r4, #-1754]
+ strb r3, [r4, #-1746]
ldrh r0, [r4, r1]
add r1, r1, #106
- strb r3, [r4, #-1752]
- str r3, [r4, #-1816]
+ strb r3, [r4, #-1744]
+ str r3, [r4, #-1812]
strh r0, [r4, r1] @ movhi
- sub r1, r1, #104
- ldr r0, .L1345+60
+ ldr r1, .L1335+64
+ ldr r0, .L1335+68
ldrh r1, [r4, r1]
mov ip, r1, lsr #6
and r1, r1, #63
- strb r1, [r4, #-1942]
- ldrb r1, [r4, #-2060] @ zero_extendqisi2
+ strb r1, [r4, #-1938]
+ ldrb r1, [r4, #-2056] @ zero_extendqisi2
strh ip, [r4, r0] @ movhi
- strb r1, [r4, #-1940]
- ldr r1, .L1345+64
+ strb r1, [r4, #-1936]
+ ldr r1, .L1335+72
ldrh r0, [r4, r1]
add r1, r1, #150
strh r0, [r4, r1] @ movhi
- ldr r1, .L1345+68
- ldr r0, .L1345+72
+ sub r1, r1, #148
+ ldr r0, .L1335+76
ldrh r1, [r4, r1]
mov ip, r1, lsr #6
and r1, r1, #63
- strb r1, [r4, #-1894]
- ldrb r1, [r4, #-2059] @ zero_extendqisi2
+ strb r1, [r4, #-1890]
+ ldrb r1, [r4, #-2055] @ zero_extendqisi2
strh ip, [r4, r0] @ movhi
- strb r1, [r4, #-1892]
- str r3, [r4, #-1828]
- ldr r1, [r4, #-2040]
- str r3, [r4, #-1836]
- str r3, [r4, #-1820]
- str r3, [r4, #-1792]
- str r3, [r4, #-1784]
+ strb r1, [r4, #-1888]
str r3, [r4, #-1824]
- ldr r3, [r4, #-2032]
- str r1, [r4, #-1796]
- ldr r1, [r4, #-1804]
- cmp r3, r1
- strhi r3, [r4, #-1804]
- ldr r4, .L1345
- ldr r3, [r4, #-2036]
+ ldr r1, [r4, #-2036]
+ str r3, [r4, #-1832]
+ str r3, [r4, #-1816]
+ str r3, [r4, #-1788]
+ str r3, [r4, #-1780]
+ str r3, [r4, #-1820]
+ ldr r3, [r4, #-2028]
+ str r1, [r4, #-1792]
ldr r1, [r4, #-1800]
cmp r3, r1
strhi r3, [r4, #-1800]
+ ldr r4, .L1335
+ ldr r3, [r4, #-2032]
+ ldr r1, [r4, #-1796]
+ cmp r3, r1
+ strhi r3, [r4, #-1796]
cmp r2, r5
- beq .L1338
- ldr r0, .L1345+76
+ beq .L1327
+ ldr r0, .L1335+80
bl make_superblock
-.L1338:
- ldr r3, .L1345+80
+.L1327:
+ ldr r3, .L1335+84
ldrh r3, [r4, r3]
cmp r3, r5
- beq .L1339
- ldr r0, .L1345+84
+ beq .L1328
+ ldr r0, .L1335+88
bl make_superblock
-.L1339:
- ldr r5, .L1345
+.L1328:
+ ldr r5, .L1335
movw r4, #65535
- ldr r3, .L1345+88
+ ldr r3, .L1335+92
ldrh r3, [r5, r3]
cmp r3, r4
- beq .L1340
- ldr r0, .L1345+92
+ beq .L1329
+ ldr r0, .L1335+96
bl make_superblock
-.L1340:
- ldr r3, .L1345+52
+.L1329:
+ ldr r3, .L1335+56
ldrh r3, [r5, r3]
cmp r3, r4
- beq .L1344
- ldr r0, .L1345+96
+ beq .L1333
+ ldr r0, .L1335+100
bl make_superblock
mov r0, #0
- ldmfd sp!, {r3, r4, r5, r6, r7, pc}
-.L1343:
+ ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc}
+.L1332:
mvn r0, #0
- ldmfd sp!, {r3, r4, r5, r6, r7, pc}
-.L1344:
+ ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc}
+.L1333:
mov r0, #0
- ldmfd sp!, {r3, r4, r5, r6, r7, pc}
-.L1346:
+ ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc}
+.L1336:
.align 2
-.L1345:
+.L1335:
.word .LANCHOR2
.word .LANCHOR0
- .word -1772
- .word -1770
- .word .LANCHOR2+184
- .word 1179929683
- .word .LANCHOR2-2072
- .word -2064
+ .word -1768
.word -1766
- .word -1776
- .word -1994
- .word -2058
- .word -1758
- .word -1760
+ .word .LANCHOR2+192
+ .word -1764
+ .word 1179929683
+ .word .LANCHOR2-2068
+ .word -2060
+ .word -1762
+ .word -1772
+ .word -1990
.word -2054
- .word -1946
+ .word -1750
+ .word -1752
.word -2050
.word -2048
- .word -1898
- .word .LANCHOR2-1996
- .word -1948
- .word .LANCHOR2-1948
- .word -1900
- .word .LANCHOR2-1900
- .word .LANCHOR2-1760
+ .word -1942
+ .word -2046
+ .word -1894
+ .word .LANCHOR2-1992
+ .word -1944
+ .word .LANCHOR2-1944
+ .word -1896
+ .word .LANCHOR2-1896
+ .word .LANCHOR2-1752
.fnend
.size FtlLoadSysInfo, .-FtlLoadSysInfo
.align 2
@@ -11510,187 +11422,187 @@ FtlLoadBbt:
@ frame_needed = 0, uses_anonymous_args = 0
stmfd sp!, {r4, r5, r6, r7, r8, lr}
.save {r4, r5, r6, r7, r8, lr}
- ldr r6, .L1363
- ldr r8, .L1363+4
- ldr r3, [r6, #-956]
+ ldr r6, .L1353
+ ldr r8, .L1353+4
+ ldr r3, [r6, #-948]
mov r7, r6
- ldr r4, [r6, #-932]
- str r3, [r6, #192]
- str r4, [r6, #196]
+ ldr r4, [r6, #-924]
+ str r3, [r6, #200]
+ str r4, [r6, #204]
bl FtlBbtMemInit
- movw r3, #3912
+ movw r3, #3916
ldrh r5, [r8, r3]
sub r5, r5, #1
uxth r5, r5
- b .L1348
-.L1352:
+ b .L1338
+.L1342:
mov r1, #1
mov r3, r5, asl #10
- ldr r0, .L1363+8
+ ldr r0, .L1353+8
mov r2, r1
- str r3, [r6, #188]
+ str r3, [r6, #196]
bl FlashReadPages
- ldr r3, [r6, #184]
+ ldr r3, [r6, #192]
cmn r3, #1
- bne .L1349
- ldr r3, [r6, #188]
+ bne .L1339
+ ldr r3, [r6, #196]
mov r1, #1
- ldr r0, .L1363+8
+ ldr r0, .L1353+8
mov r2, r1
add r3, r3, #1
- str r3, [r6, #188]
+ str r3, [r6, #196]
bl FlashReadPages
-.L1349:
- ldr r3, [r7, #184]
+.L1339:
+ ldr r3, [r7, #192]
cmn r3, #1
- beq .L1350
+ beq .L1340
ldrh r2, [r4, #0]
movw r3, #61649
cmp r2, r3
- bne .L1350
- ldr r3, .L1363+4
- movw r2, #3980
+ bne .L1340
+ ldr r3, .L1353+4
+ mov r2, #3984
strh r5, [r3, r2] @ movhi
ldr r2, [r4, #4]
- str r2, [r3, #3988]
- mov r2, #3984
+ str r2, [r3, #3992]
+ movw r2, #3988
ldrh r1, [r4, #8]
strh r1, [r3, r2] @ movhi
- b .L1351
-.L1350:
+ b .L1341
+.L1340:
sub r5, r5, #1
uxth r5, r5
-.L1348:
- movw r3, #3912
+.L1338:
+ movw r3, #3916
ldrh r3, [r8, r3]
sub r3, r3, #48
cmp r5, r3
- bgt .L1352
-.L1351:
- ldr r5, .L1363+4
- movw r8, #3980
+ bgt .L1342
+.L1341:
+ ldr r5, .L1353+4
+ mov r8, #3984
movw r3, #65535
ldrh r2, [r5, r8]
cmp r2, r3
- beq .L1362
- mov r6, #3984
+ beq .L1352
+ movw r6, #3988
ldrh r2, [r5, r6]
cmp r2, r3
- beq .L1354
- ldr r7, .L1363
+ beq .L1344
+ ldr r7, .L1353
mov r1, #1
mov r2, r2, asl #10
- add r0, r7, #184
- str r2, [r7, #188]
+ add r0, r7, #192
+ str r2, [r7, #196]
mov r2, r1
bl FlashReadPages
- ldr r3, [r7, #184]
+ ldr r3, [r7, #192]
cmn r3, #1
- beq .L1354
+ beq .L1344
ldrh r2, [r4, #0]
movw r3, #61649
cmp r2, r3
- bne .L1354
+ bne .L1344
ldr r3, [r4, #4]
- ldr r2, [r5, #3988]
+ ldr r2, [r5, #3992]
cmp r3, r2
- strhi r3, [r5, #3988]
+ strhi r3, [r5, #3992]
ldrhih r2, [r5, r6]
ldrhih r3, [r4, #8]
strhih r2, [r5, r8] @ movhi
strhih r3, [r5, r6] @ movhi
-.L1354:
- ldr r8, .L1363+4
- movw r3, #3980
+.L1344:
+ ldr r8, .L1353+4
+ mov r3, #3984
mov r1, #1
mov r6, #0
- ldr r5, .L1363
+ ldr r5, .L1353
ldrh r0, [r8, r3]
bl FtlGetLastWrittenPage
- movw r3, #3982
+ movw r3, #3986
add r2, r0, #1
mov r7, r0
strh r2, [r8, r3] @ movhi
- b .L1355
-.L1358:
- movw r2, #3980
+ b .L1345
+.L1348:
+ mov r2, #3984
mov r1, #1
ldrh r2, [r8, r2]
- ldr r0, .L1363+8
+ ldr r0, .L1353+8
orr r3, r3, r2, asl #10
- str r3, [r5, #188]
- ldr r3, [r5, #-956]
+ str r3, [r5, #196]
+ ldr r3, [r5, #-948]
mov r2, r1
- str r3, [r5, #192]
+ str r3, [r5, #200]
bl FlashReadPages
- ldr r3, [r5, #184]
+ ldr r3, [r5, #192]
cmn r3, #1
- beq .L1356
+ beq .L1346
ldrh r2, [r4, #0]
movw r3, #61649
cmp r2, r3
- beq .L1357
-.L1356:
+ beq .L1347
+.L1346:
sub r6, r6, #1
uxth r6, r6
-.L1355:
+.L1345:
add r3, r6, r7
sxth r3, r3
cmp r3, #0
- bge .L1358
-.L1357:
- ldr r3, .L1363+4
- movw r2, #3986
+ bge .L1348
+.L1347:
+ ldr r3, .L1353+4
+ movw r2, #3990
ldrh r1, [r4, #10]
ldrh r0, [r4, #12]
strh r1, [r3, r2] @ movhi
movw r2, #65535
cmp r0, r2
- beq .L1359
- ldr r2, [r3, #3844]
+ beq .L1349
+ ldr r2, [r3, #3848]
cmp r0, r2
- beq .L1359
- movw r1, #3858
+ beq .L1349
+ movw r1, #3862
ldrh r3, [r3, r1]
mov r3, r3, lsr #2
cmp r2, r3
- bcs .L1359
+ bcs .L1349
cmp r0, r3
- bcs .L1359
+ bcs .L1349
bl FtlSysBlkNumInit
-.L1359:
- ldr r6, .L1363+12
+.L1349:
+ ldr r6, .L1353+12
mov r4, #0
- ldr r8, .L1363+4
- movw r7, #3870
- ldr r5, .L1363
- b .L1360
-.L1361:
- ldr r3, .L1363+16
- ldr r1, [r5, #192]
+ ldr r8, .L1353+4
+ movw r7, #3874
+ ldr r5, .L1353
+ b .L1350
+.L1351:
+ ldr r3, .L1353+16
+ ldr r1, [r5, #200]
ldr r0, [r6, #4]!
ldrh r2, [r5, r3]
mov r2, r2, asl #2
mla r1, r4, r2, r1
bl memcpy
add r4, r4, #1
-.L1360:
+.L1350:
ldrh r3, [r8, r7]
cmp r4, r3
- bcc .L1361
+ bcc .L1351
mov r0, #0
ldmfd sp!, {r4, r5, r6, r7, r8, pc}
-.L1362:
+.L1352:
mvn r0, #0
ldmfd sp!, {r4, r5, r6, r7, r8, pc}
-.L1364:
+.L1354:
.align 2
-.L1363:
+.L1353:
.word .LANCHOR2
.word .LANCHOR0
- .word .LANCHOR2+184
- .word .LANCHOR0+4004
- .word -1024
+ .word .LANCHOR2+192
+ .word .LANCHOR0+4008
+ .word -1016
.fnend
.size FtlLoadBbt, .-FtlLoadBbt
.align 2
@@ -11703,63 +11615,63 @@ FtlLoadFactoryBbt:
stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
.save {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
mov r5, #0
- ldr r3, .L1372
- movw fp, #3870
- ldr r7, .L1372+4
- ldr r6, .L1372+8
- ldr r2, [r3, #-956]
- ldr r8, [r3, #-932]
- str r2, [r3, #192]
- str r8, [r3, #196]
- b .L1366
-.L1371:
- movw r9, #3912
+ ldr r3, .L1362
+ movw fp, #3874
+ ldr r7, .L1362+4
+ ldr r6, .L1362+8
+ ldr r2, [r3, #-948]
+ ldr r8, [r3, #-924]
+ str r2, [r3, #200]
+ str r8, [r3, #204]
+ b .L1356
+.L1361:
+ movw r9, #3916
mvn r3, #0
ldrh r4, [r6, r9]
strh r3, [r7], #2 @ movhi
add r4, r4, r3
- ldr sl, .L1372
+ ldr sl, .L1362
uxth r4, r4
- b .L1367
-.L1370:
+ b .L1357
+.L1360:
mla r3, r3, r5, r4
mov r1, #1
- ldr r0, .L1372+12
+ ldr r0, .L1362+12
mov r2, r1
mov r3, r3, asl #10
- str r3, [sl, #188]
+ str r3, [sl, #196]
bl FlashReadPages
- ldr r3, [sl, #184]
+ ldr r3, [sl, #192]
cmn r3, #1
- beq .L1368
+ beq .L1358
ldrh r2, [r8, #0]
movw r3, #61664
cmp r2, r3
streqh r4, [r7, #-2] @ movhi
- beq .L1369
-.L1368:
+ beq .L1359
+.L1358:
sub r4, r4, #1
uxth r4, r4
-.L1367:
+.L1357:
ldrh r3, [r6, r9]
sub r2, r3, #16
cmp r4, r2
- bgt .L1370
-.L1369:
+ bgt .L1360
+.L1359:
add r5, r5, #1
-.L1366:
+.L1356:
ldrh r3, [r6, fp]
cmp r5, r3
- bcc .L1371
+ bcc .L1361
mov r0, #0
ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L1373:
+.L1363:
.align 2
-.L1372:
+.L1362:
.word .LANCHOR2
- .word .LANCHOR0+3992
+ .word .LANCHOR0+3996
.word .LANCHOR0
- .word .LANCHOR2+184
+ .word .LANCHOR2+192
.fnend
.size FtlLoadFactoryBbt, .-FtlLoadFactoryBbt
.align 2
@@ -11777,13 +11689,13 @@ FlashProgSlc2KPages:
mov r9, r2
str r3, [sp, #12]
mov r4, r0
- ldr r3, .L1393
+ ldr r3, .L1383
mov r6, r0
mov r8, #0
- ldr r7, .L1393+4
- ldrb fp, [r3, #2997] @ zero_extendqisi2
- b .L1375
-.L1382:
+ ldr r7, .L1383+4
+ ldrb fp, [r3, #3125] @ zero_extendqisi2
+ b .L1365
+.L1372:
rsb r3, r8, sl
add r2, sp, #20
mov r0, r6
@@ -11797,7 +11709,7 @@ FlashProgSlc2KPages:
cmp r3, r2
mvncs r3, #0
strcs r3, [r6, #0]
- bcs .L1377
+ bcs .L1367
add r3, r7, r3
ldrb r5, [r3, #3764] @ zero_extendqisi2
mov r0, r5
@@ -11856,27 +11768,27 @@ FlashProgSlc2KPages:
mvnne r3, #0
strne r3, [r6, #0]
bl NandcFlashDeCs
-.L1377:
+.L1367:
add r8, r8, #1
add r6, r6, #36
-.L1375:
+.L1365:
cmp r8, sl
- bne .L1382
+ bne .L1372
ldr r3, [sp, #12]
cmp r3, #0
movne r6, #0
- ldrne r5, .L1393+8
- bne .L1383
- b .L1384
-.L1389:
+ ldrne r5, .L1383+8
+ bne .L1373
+ b .L1374
+.L1379:
ldr r3, [r4, #0]
cmn r3, #1
- bne .L1385
+ bne .L1375
ldr r1, [r4, #4]
- ldr r0, .L1393+12
+ ldr r0, .L1383+12
bl printk
- b .L1386
-.L1385:
+ b .L1376
+.L1375:
rsb r3, r6, sl
mov r1, r9
add r2, sp, #20
@@ -11885,12 +11797,12 @@ FlashProgSlc2KPages:
str r3, [sp, #0]
add r3, sp, #24
bl LogAddr2PhyAddr
- ldr r2, [r5, #224]
+ ldr r2, [r5, #232]
mov r3, #0
mov lr, r4
add ip, sp, #28
str r3, [r2, #0]
- ldr r2, [r5, #228]
+ ldr r2, [r5, #236]
str r3, [r2, #0]
ldmia lr!, {r0, r1, r2, r3}
stmia ip!, {r0, r1, r2, r3}
@@ -11901,66 +11813,66 @@ FlashProgSlc2KPages:
mov r1, #1
mov r2, r9
str r3, [ip, #0]
- ldr r3, [r5, #224]
+ ldr r3, [r5, #232]
str r3, [sp, #36]
- ldr r3, [r5, #228]
+ ldr r3, [r5, #236]
str r3, [sp, #40]
bl FlashReadPages
ldr r7, [sp, #28]
cmn r7, #1
- bne .L1387
- ldr r0, .L1393+16
+ bne .L1377
+ ldr r0, .L1383+16
ldr r1, [r4, #4]
bl printk
str r7, [r4, #0]
-.L1387:
+.L1377:
ldr r3, [r4, #12]
cmp r3, #0
- beq .L1388
+ beq .L1378
ldr r2, [r3, #0]
- ldr r3, [r5, #228]
+ ldr r3, [r5, #236]
ldr r3, [r3, #0]
cmp r2, r3
- beq .L1388
- ldr r0, .L1393+20
+ beq .L1378
+ ldr r0, .L1383+20
ldr r1, [r4, #4]
bl printk
mvn r3, #0
str r3, [r4, #0]
-.L1388:
+.L1378:
ldr r3, [r4, #8]
cmp r3, #0
- beq .L1386
+ beq .L1376
ldr r2, [r3, #0]
- ldr r3, [r5, #224]
+ ldr r3, [r5, #232]
ldr r3, [r3, #0]
cmp r2, r3
- beq .L1386
- ldr r0, .L1393+24
+ beq .L1376
+ ldr r0, .L1383+24
ldr r1, [r4, #4]
bl printk
mvn r3, #0
str r3, [r4, #0]
-.L1386:
+.L1376:
add r6, r6, #1
add r4, r4, #36
-.L1383:
+.L1373:
cmp r6, sl
- bne .L1389
-.L1384:
+ bne .L1379
+.L1374:
mov r0, #0
add sp, sp, #68
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L1394:
+.L1384:
.align 2
-.L1393:
+.L1383:
.word .LANCHOR1
.word .LANCHOR0
.word .LANCHOR2
+ .word .LC108
.word .LC109
.word .LC110
.word .LC111
- .word .LC112
.fnend
.size FlashProgSlc2KPages, .-FlashProgSlc2KPages
.align 2
@@ -11974,7 +11886,7 @@ FlashProgPages:
.save {r4, r5, r6, r7, r8, r9, sl, fp, lr}
.pad #76
sub sp, sp, #76
- ldr r5, .L1423
+ ldr r5, .L1413
mov r9, r0
str r1, [sp, #8]
mov sl, r2
@@ -11985,13 +11897,13 @@ FlashProgPages:
cmp r6, #0
moveq fp, r5
str ip, [sp, #20]
- ldr ip, .L1423+4
- ldrb ip, [ip, #2997] @ zero_extendqisi2
+ ldr ip, .L1413+4
+ ldrb ip, [ip, #3125] @ zero_extendqisi2
str ip, [sp, #12]
- beq .L1396
+ beq .L1386
bl FlashProgSlc2KPages
- b .L1397
-.L1410:
+ b .L1387
+.L1400:
mov r4, #36
ldr r2, [sp, #8]
mul r4, r4, r6
@@ -12010,22 +11922,22 @@ FlashProgPages:
mvncs r3, #0
strcs r3, [r9, r4]
mov r8, r0
- bcs .L1399
- ldrb r1, [r5, #3837] @ zero_extendqisi2
+ bcs .L1389
+ ldrb r1, [r5, #3841] @ zero_extendqisi2
add r2, fp, r2, asl #4
cmp r1, #0
ldr r2, [r2, #3636]
moveq r8, #0
cmp r2, #0
- beq .L1401
+ beq .L1391
cmp r3, #1
- bne .L1402
- ldr r0, [r5, #3012]
+ bne .L1392
+ ldr r0, [r5, #3008]
bl NandcIqrWaitFlashReady
-.L1402:
+.L1392:
ldrb r0, [sp, #32] @ zero_extendqisi2
bl FlashWaitCmdDone
-.L1401:
+.L1391:
ldr r2, [sp, #32]
mov r1, #0
cmp r8, #0
@@ -12045,10 +11957,10 @@ FlashProgPages:
cmp r3, #1
strb r4, [r2, #3628]
mov r0, r4
- bne .L1404
+ bne .L1394
bl NandcWaitFlashReady
- b .L1405
-.L1404:
+ b .L1395
+.L1394:
bl NandcFlashCs
ldr r3, [sp, #32]
mov r0, r4
@@ -12060,34 +11972,34 @@ FlashProgPages:
bl FlashWaitReadyEN
mov r0, r4
bl NandcFlashDeCs
-.L1405:
+.L1395:
ldr r2, [sp, #20]
sub r3, r2, #1
- cmp r3, #6
- bhi .L1406
+ cmp r3, #7
+ bhi .L1396
add r3, r5, r4
ldrb r3, [r3, #3756] @ zero_extendqisi2
cmp r3, #0
- beq .L1406
+ beq .L1396
mov r0, r4
ldrb r1, [r5, #1] @ zero_extendqisi2
- ldr r2, .L1423+8
+ ldr r2, .L1413+8
mov r3, #0
bl HynixSetRRPara
-.L1406:
+.L1396:
mov r0, r4
bl NandcFlashCs
cmp sl, #1
mov r0, r4
- bne .L1407
- ldrb r3, [r5, #928] @ zero_extendqisi2
+ bne .L1397
+ ldrb r3, [r5, #3072] @ zero_extendqisi2
cmp r3, #0
- beq .L1407
+ beq .L1397
bl flash_enter_slc_mode
- b .L1408
-.L1407:
+ b .L1398
+.L1397:
bl flash_exit_slc_mode
-.L1408:
+.L1398:
mov r0, r4
ldr r1, [sp, #28]
bl FlashProgFirstCmd
@@ -12099,7 +12011,7 @@ FlashProgPages:
ldr r3, [r7, #8]
bl NandcXferData
cmp r8, #0
- beq .L1409
+ beq .L1399
mov r0, r4
ldr r1, [sp, #28]
bl FlashProgDpFirstCmd
@@ -12126,58 +12038,58 @@ FlashProgPages:
ldr r2, [sp, #12]
ldr r3, [r3, #8]
bl NandcXferData
-.L1409:
+.L1399:
mov r0, r4
ldr r1, [sp, #28]
bl FlashProgSecondCmd
mov r0, r4
bl NandcFlashDeCs
add r6, r6, r8
-.L1399:
+.L1389:
add r6, r6, #1
-.L1396:
+.L1386:
ldr r3, [sp, #8]
cmp r6, r3
- bcc .L1410
- ldr r5, .L1423
+ bcc .L1400
+ ldr r5, .L1413
mov r4, #0
- ldr r6, .L1423+12
- ldr r0, [r5, #3012]
+ ldr r6, .L1413+12
+ ldr r0, [r5, #3008]
bl NandcIqrWaitFlashReady
- b .L1411
-.L1413:
+ b .L1401
+.L1403:
uxtb r0, r4
bl FlashWaitCmdDone
cmp sl, #1
- bne .L1412
- ldrb r3, [r5, #928] @ zero_extendqisi2
+ bne .L1402
+ ldrb r3, [r5, #3072] @ zero_extendqisi2
cmp r3, #0
- beq .L1412
+ beq .L1402
ldrb r0, [r6, r4, asl #4] @ zero_extendqisi2
bl flash_exit_slc_mode
-.L1412:
+.L1402:
add r4, r4, #1
-.L1411:
+.L1401:
ldrb r3, [r5, #3762] @ zero_extendqisi2
cmp r4, r3
- bcc .L1413
+ bcc .L1403
ldr r2, [sp, #16]
cmp r2, #0
ldreq r0, [sp, #16]
- beq .L1397
+ beq .L1387
mov r5, #0
- ldr r4, .L1423+16
+ ldr r4, .L1413+16
ldr r6, [sp, #8]
- b .L1414
-.L1419:
+ b .L1404
+.L1409:
ldr r3, [r9, #0]
cmn r3, #1
- bne .L1415
+ bne .L1405
ldr r1, [r9, #4]
- ldr r0, .L1423+20
+ ldr r0, .L1413+20
bl printk
- b .L1416
-.L1415:
+ b .L1406
+.L1405:
rsb r3, r5, r6
mov r1, sl
add r2, sp, #28
@@ -12186,12 +12098,12 @@ FlashProgPages:
str r3, [sp, #0]
add r3, sp, #32
bl LogAddr2PhyAddr
- ldr r2, [r4, #224]
+ ldr r2, [r4, #232]
mov r3, #0
mov lr, r9
add ip, sp, #36
str r3, [r2, #0]
- ldr r2, [r4, #228]
+ ldr r2, [r4, #236]
str r3, [r2, #0]
ldmia lr!, {r0, r1, r2, r3}
stmia ip!, {r0, r1, r2, r3}
@@ -12202,271 +12114,271 @@ FlashProgPages:
mov r1, #1
mov r2, sl
str r3, [ip, #0]
- ldr r3, [r4, #224]
+ ldr r3, [r4, #232]
str r3, [sp, #44]
- ldr r3, [r4, #228]
+ ldr r3, [r4, #236]
str r3, [sp, #48]
bl FlashReadPages
ldr r7, [sp, #36]
cmn r7, #1
- bne .L1417
- ldr r0, .L1423+24
+ bne .L1407
+ ldr r0, .L1413+24
ldr r1, [r9, #4]
bl printk
str r7, [r9, #0]
-.L1417:
+.L1407:
ldr r3, [r9, #12]
cmp r3, #0
- beq .L1418
+ beq .L1408
ldr r2, [r3, #0]
- ldr r3, [r4, #228]
+ ldr r3, [r4, #236]
ldr r3, [r3, #0]
cmp r2, r3
- beq .L1418
- ldr r0, .L1423+28
+ beq .L1408
+ ldr r0, .L1413+28
ldr r1, [r9, #4]
bl printk
mvn r3, #0
str r3, [r9, #0]
-.L1418:
+.L1408:
ldr r3, [r9, #8]
cmp r3, #0
- beq .L1416
+ beq .L1406
ldr r2, [r3, #0]
- ldr r3, [r4, #224]
+ ldr r3, [r4, #232]
ldr r3, [r3, #0]
cmp r2, r3
- beq .L1416
- ldr r0, .L1423+32
+ beq .L1406
+ ldr r0, .L1413+32
ldr r1, [r9, #4]
bl printk
mvn r3, #0
str r3, [r9, #0]
-.L1416:
+.L1406:
add r5, r5, #1
add r9, r9, #36
-.L1414:
+.L1404:
cmp r5, r6
- bne .L1419
+ bne .L1409
mov r0, #0
-.L1397:
+.L1387:
add sp, sp, #76
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L1424:
+.L1414:
.align 2
-.L1423:
+.L1413:
.word .LANCHOR0
.word .LANCHOR1
.word .LANCHOR0+4
.word .LANCHOR0+3628
.word .LANCHOR2
+ .word .LC108
.word .LC109
.word .LC110
.word .LC111
- .word .LC112
.fnend
.size FlashProgPages, .-FlashProgPages
.align 2
- .type FtlVpcTblFlush.part.14, %function
-FtlVpcTblFlush.part.14:
+ .type FtlVpcTblFlush.part.16, %function
+FtlVpcTblFlush.part.16:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
stmfd sp!, {r3, r4, r5, r6, r7, r8, sl, lr}
.save {r3, r4, r5, r6, r7, r8, sl, lr}
mov r1, #255
- ldr r4, .L1437
- mov r7, #3856
- ldr r6, .L1437+4
- ldr r3, [r4, #-956]
- ldr r5, [r4, #-932]
- str r3, [r4, #192]
- ldr r3, .L1437+8
- str r5, [r4, #196]
+ ldr r4, .L1427
+ movw r7, #3860
+ ldr r6, .L1427+4
+ ldr r3, [r4, #-948]
+ ldr r5, [r4, #-924]
+ str r3, [r4, #200]
+ ldr r3, .L1427+8
+ str r5, [r4, #204]
ldrh r3, [r4, r3]
strh r3, [r5, #2] @ movhi
- ldr r3, .L1437+12
+ ldr r3, .L1427+12
strh r3, [r5, #0] @ movhi
- ldr r3, [r4, #-1764]
+ ldr r3, [r4, #-1760]
str r3, [r5, #4]
mov r3, #0
str r3, [r5, #8]
str r3, [r5, #12]
- ldr r3, .L1437+16
- str r3, [r4, #-2072]
- ldr r3, .L1437+20
+ ldr r3, .L1427+16
str r3, [r4, #-2068]
- ldr r3, .L1437+24
+ ldr r3, .L1427+20
+ str r3, [r4, #-2064]
+ ldr r3, .L1427+24
ldrh r2, [r4, r3]
- ldr r3, .L1437+28
+ ldr r3, .L1427+28
strh r2, [r4, r3] @ movhi
- movw r3, #3870
+ movw r3, #3874
ldrh r3, [r6, r3]
- strb r3, [r4, #-2062]
- ldr r3, .L1437+32
+ strb r3, [r4, #-2058]
+ ldr r3, .L1427+32
ldrh r2, [r4, r3]
sub r3, r3, #62
strh r2, [r4, r3] @ movhi
add r3, r3, #64
ldrh r2, [r4, r3]
- ldrb r3, [r4, #-1990] @ zero_extendqisi2
+ ldrb r3, [r4, #-1986] @ zero_extendqisi2
orr r2, r3, r2, asl #6
- ldr r3, .L1437+36
+ ldr r3, .L1427+36
strh r2, [r4, r3] @ movhi
- ldrb r3, [r4, #-1988] @ zero_extendqisi2
- strb r3, [r4, #-2061]
- ldr r3, .L1437+40
+ ldrb r3, [r4, #-1984] @ zero_extendqisi2
+ strb r3, [r4, #-2057]
+ ldr r3, .L1427+40
ldrh r2, [r4, r3]
sub r3, r3, #106
strh r2, [r4, r3] @ movhi
add r3, r3, #108
ldrh r2, [r4, r3]
- ldrb r3, [r4, #-1942] @ zero_extendqisi2
+ ldrb r3, [r4, #-1938] @ zero_extendqisi2
orr r2, r3, r2, asl #6
- ldr r3, .L1437+44
+ ldr r3, .L1427+44
strh r2, [r4, r3] @ movhi
- ldrb r3, [r4, #-1940] @ zero_extendqisi2
- strb r3, [r4, #-2060]
- ldr r3, .L1437+48
+ ldrb r3, [r4, #-1936] @ zero_extendqisi2
+ strb r3, [r4, #-2056]
+ ldr r3, .L1427+48
ldrh r2, [r4, r3]
sub r3, r3, #150
strh r2, [r4, r3] @ movhi
add r3, r3, #152
- ldr r0, [r4, #192]
+ ldr r0, [r4, #200]
ldrh r2, [r4, r3]
- ldrb r3, [r4, #-1894] @ zero_extendqisi2
+ ldrb r3, [r4, #-1890] @ zero_extendqisi2
orr r2, r3, r2, asl #6
- ldr r3, .L1437+52
+ ldr r3, .L1427+52
strh r2, [r4, r3] @ movhi
- ldrb r3, [r4, #-1892] @ zero_extendqisi2
- strb r3, [r4, #-2059]
+ ldrb r3, [r4, #-1888] @ zero_extendqisi2
+ strb r3, [r4, #-2055]
+ ldr r3, [r4, #-1792]
+ str r3, [r4, #-2036]
+ ldr r3, [r4, #-1800]
+ str r3, [r4, #-2028]
ldr r3, [r4, #-1796]
- str r3, [r4, #-2040]
- ldr r3, [r4, #-1804]
str r3, [r4, #-2032]
- ldr r3, [r4, #-1800]
- str r3, [r4, #-2036]
- ldr r3, .L1437+56
+ ldr r3, .L1427+56
ldrh r2, [r4, r3]
- ldr r3, .L1437+60
+ ldr r3, .L1427+60
strh r2, [r4, r3] @ movhi
- add r3, r3, #888
+ add r3, r3, #892
ldrh r2, [r4, r3]
- ldr r3, .L1437+64
+ ldr r3, .L1427+64
strh r2, [r4, r3] @ movhi
- add r3, r3, #5952
+ movw r3, #3928
ldrh r2, [r6, r3]
bl ftl_memset
- ldr r1, .L1437+68
+ ldr r1, .L1427+68
mov r2, #48
- ldr r0, [r4, #192]
+ ldr r0, [r4, #200]
bl memcpy
ldrh r2, [r6, r7]
- ldr r0, [r4, #192]
- ldr r1, [r4, #-2016]
+ ldr r0, [r4, #200]
+ ldr r1, [r4, #-2012]
mov r2, r2, asl #1
add r0, r0, #48
bl memcpy
ldrh r2, [r6, r7]
- ldr r3, [r4, #192]
+ ldr r3, [r4, #200]
add r0, r2, #24
- ldr r1, [r4, #-1840]
+ ldr r1, [r4, #-1836]
mov r2, r2, lsr #3
mov r0, r0, lsr #1
add r2, r2, #4
add r0, r3, r0, asl #2
bl memcpy
- movw r3, #3960
+ movw r3, #3964
ldrh r3, [r6, r3]
cmp r3, #0
- beq .L1426
+ beq .L1416
ldrh r3, [r6, r7]
- ldr r1, [r4, #192]
+ ldr r1, [r4, #200]
mov r0, r3, lsr #3
add r0, r0, r3, asl #1
- mov r3, #3952
+ movw r3, #3956
add r0, r0, #52
ldrh r2, [r6, r3]
ubfx r0, r0, #2, #14
mov r2, r2, asl #2
add r0, r1, r0, asl #2
- ldr r1, [r4, #-1028]
+ ldr r1, [r4, #-1020]
bl memcpy
-.L1426:
+.L1416:
mov r0, #0
- ldr r4, .L1437
+ ldr r4, .L1427
bl FtlUpdateVaildLpn
- ldr sl, .L1437+8
- ldr r6, .L1437+72
+ ldr sl, .L1427+8
+ ldr r6, .L1427+72
mov r7, #0
movw r8, #65535
-.L1436:
- ldr r3, [r4, #-956]
+.L1426:
+ ldr r3, [r4, #-948]
ldrh r2, [r4, sl]
- ldr r0, .L1437+4
- str r3, [r4, #192]
- ldr r3, [r4, #-932]
- str r3, [r4, #196]
+ ldr r0, .L1427+4
+ str r3, [r4, #200]
+ ldr r3, [r4, #-924]
+ str r3, [r4, #204]
ldrh r3, [r4, r6]
orr r1, r3, r2, asl #10
- str r1, [r4, #188]
- movw r1, #3918
+ str r1, [r4, #196]
+ mov r1, #3920
ldrh r1, [r0, r1]
sub r1, r1, #1
cmp r3, r1
- blt .L1428
- ldr r3, .L1437+76
+ blt .L1418
+ ldr r3, .L1427+76
ldrh r8, [r4, r3]
strh r2, [r4, r3] @ movhi
mov r3, #0
strh r3, [r4, r6] @ movhi
bl FtlFreeSysBlkQueueOut
- ldr r3, [r4, #-1804]
+ ldr r3, [r4, #-1800]
add r2, r3, #1
- str r2, [r4, #-1804]
- str r3, [r4, #-1764]
+ str r2, [r4, #-1800]
+ str r3, [r4, #-1760]
mov r2, r0, asl #10
strh r0, [r4, sl] @ movhi
- str r2, [r4, #188]
+ str r2, [r4, #196]
str r3, [r5, #4]
strh r0, [r5, #2] @ movhi
-.L1428:
+.L1418:
mov r1, #1
- ldr r0, .L1437+80
+ ldr r0, .L1427+80
mov r2, r1
mov r3, r1
bl FlashProgPages
ldrh r3, [r4, r6]
- ldr r2, [r4, #184]
+ ldr r2, [r4, #192]
add r3, r3, #1
cmn r2, #1
uxth r3, r3
strh r3, [r4, r6] @ movhi
- bne .L1429
+ bne .L1419
cmp r3, #1
add r7, r7, #1
- ldreq r2, .L1437+4
- movweq r3, #3918
+ ldreq r2, .L1427+4
+ moveq r3, #3920
uxth r7, r7
ldreqh r3, [r2, r3]
subeq r3, r3, #1
streqh r3, [r4, r6] @ movhi
cmp r7, #3
- bls .L1436
- ldr r3, .L1437
+ bls .L1426
+ ldr r3, .L1427
mov r2, r7
- ldr r0, .L1437+84
- ldr r1, [r3, #188]
+ ldr r0, .L1427+84
+ ldr r1, [r3, #196]
bl printk
- ldr r3, .L1437+4
+ ldr r3, .L1427+4
mov r2, #1
- str r2, [r3, #4040]
+ str r2, [r3, #4044]
ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc}
-.L1429:
+.L1419:
cmp r3, #1
- beq .L1436
+ beq .L1426
cmp r2, #256
- beq .L1436
+ beq .L1426
movw r3, #65535
cmp r8, r3
ldmeqfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc}
@@ -12474,33 +12386,33 @@ FtlVpcTblFlush.part.14:
mov r1, #1
bl FtlFreeSysBlkQueueIn
ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc}
-.L1438:
+.L1428:
.align 2
-.L1437:
+.L1427:
.word .LANCHOR2
.word .LANCHOR0
- .word -1772
+ .word -1768
.word -3932
.word 1179929683
- .word 1342177360
- .word -1766
- .word -2064
- .word -1996
- .word -2056
- .word -1948
+ .word 1342177363
+ .word -1762
+ .word -2060
+ .word -1992
.word -2052
- .word -1900
+ .word -1944
.word -2048
- .word -1142
- .word -2028
- .word -2026
- .word .LANCHOR2-2072
- .word -1770
- .word -1768
- .word .LANCHOR2+184
- .word .LC113
+ .word -1896
+ .word -2044
+ .word -1134
+ .word -2024
+ .word -2022
+ .word .LANCHOR2-2068
+ .word -1766
+ .word -1764
+ .word .LANCHOR2+192
+ .word .LC112
.fnend
- .size FtlVpcTblFlush.part.14, .-FtlVpcTblFlush.part.14
+ .size FtlVpcTblFlush.part.16, .-FtlVpcTblFlush.part.16
.align 2
.global FtlVpcTblFlush
.type FtlVpcTblFlush, %function
@@ -12510,116 +12422,116 @@ FtlVpcTblFlush:
@ frame_needed = 0, uses_anonymous_args = 0
stmfd sp!, {r3, lr}
.save {r3, lr}
- ldr r3, .L1441
- ldr r3, [r3, #4040]
+ ldr r3, .L1431
+ ldr r3, [r3, #4044]
cmp r3, #0
- bne .L1440
- bl FtlVpcTblFlush.part.14
-.L1440:
+ bne .L1430
+ bl FtlVpcTblFlush.part.16
+.L1430:
mov r0, #0
ldmfd sp!, {r3, pc}
-.L1442:
+.L1432:
.align 2
-.L1441:
+.L1431:
.word .LANCHOR0
.fnend
.size FtlVpcTblFlush, .-FtlVpcTblFlush
.section .text.unlikely
.align 2
- .type FtlBbmTblFlush.part.16, %function
-FtlBbmTblFlush.part.16:
+ .type FtlBbmTblFlush.part.18, %function
+FtlBbmTblFlush.part.18:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr}
.save {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr}
mov r1, #0
- ldr r7, .L1456
+ ldr r7, .L1446
mov r5, #0
- ldr sl, .L1456+4
- movw r9, #3870
- ldr r8, .L1456+8
- ldr r3, [r7, #-932]
- ldr r0, [r7, #-956]
- str r3, [r7, #196]
- movw r3, #3926
- str r0, [r7, #192]
+ ldr sl, .L1446+4
+ movw r9, #3874
+ ldr r8, .L1446+8
+ ldr r3, [r7, #-924]
+ ldr r0, [r7, #-948]
+ str r3, [r7, #204]
+ movw r3, #3928
+ str r0, [r7, #200]
ldrh r2, [sl, r3]
bl ftl_memset
- b .L1444
-.L1445:
- ldr r3, .L1456+12
+ b .L1434
+.L1435:
+ ldr r3, .L1446+12
ldr r1, [r8, #4]!
ldrh r2, [r7, r3]
- ldr r3, [r7, #192]
+ ldr r3, [r7, #200]
mul r0, r2, r5
mov r2, r2, asl #2
add r5, r5, #1
add r0, r3, r0, asl #2
bl memcpy
-.L1444:
+.L1434:
ldrh r3, [sl, r9]
- ldr r4, .L1456+4
+ ldr r4, .L1446+4
cmp r5, r3
- ldr r6, .L1456
- blt .L1445
- ldr r5, [r6, #196]
+ ldr r6, .L1446
+ blt .L1435
+ ldr r5, [r6, #204]
mov r1, #255
mov r2, #16
mov r7, #0
mov fp, r7
mov r0, r5
bl ftl_memset
- ldr r3, .L1456+16
+ ldr r3, .L1446+16
strh r3, [r5, #0] @ movhi
- ldr r3, [r4, #3988]
+ ldr r3, [r4, #3992]
str r3, [r5, #4]
- movw r3, #3980
+ mov r3, #3984
ldrh r3, [r4, r3]
strh r3, [r5, #2] @ movhi
- mov r3, #3984
+ movw r3, #3988
ldrh r3, [r4, r3]
strh r3, [r5, #8] @ movhi
- movw r3, #3986
+ movw r3, #3990
ldrh r3, [r4, r3]
strh r3, [r5, #10] @ movhi
- ldr r3, [r4, #3844]
+ ldr r3, [r4, #3848]
strh r3, [r5, #12] @ movhi
- b .L1454
-.L1451:
+ b .L1444
+.L1441:
mov fp, #1
-.L1454:
- ldr r3, [r6, #-956]
- movw r8, #3980
- ldr r4, .L1456+4
+.L1444:
+ ldr r3, [r6, #-948]
+ mov r8, #3984
+ ldr r4, .L1446+4
mov r1, #0
- movw sl, #3982
- str r1, [r6, #184]
- str r3, [r6, #192]
- mov r9, #3984
- ldr r3, [r6, #-932]
+ movw sl, #3986
+ str r1, [r6, #192]
+ str r3, [r6, #200]
+ movw r9, #3988
+ ldr r3, [r6, #-924]
ldrh r1, [r4, r8]
ldrh r2, [r4, sl]
- str r3, [r6, #196]
+ str r3, [r6, #204]
ldrh r0, [r5, #10]
orr r3, r2, r1, asl #10
- str r3, [r6, #188]
+ str r3, [r6, #196]
ldrh r3, [r4, r9]
str r0, [sp, #0]
- ldr r0, .L1456+20
+ ldr r0, .L1446+20
bl printk
- movw r3, #3918
+ mov r3, #3920
ldrh r3, [r4, r3]
ldrh r2, [r4, sl]
sub r3, r3, #1
cmp r2, r3
- blt .L1447
- ldr r3, [r4, #3988]
+ blt .L1437
+ ldr r3, [r4, #3992]
mov r1, #0 @ movhi
ldrh r2, [r4, r8]
add r3, r3, #1
- ldr r0, [r4, #4044]
- str r3, [r4, #3988]
+ ldr r0, [r4, #4048]
+ str r3, [r4, #3992]
str r3, [r5, #4]
ldrh r3, [r4, r9]
strh r1, [r4, sl] @ movhi
@@ -12629,56 +12541,56 @@ FtlBbmTblFlush.part.16:
mov r2, r1
strh r3, [r4, r8] @ movhi
mov r3, r3, asl #10
- str r3, [r6, #188]
+ str r3, [r6, #196]
str r3, [r0, #4]
bl FlashEraseBlocks
-.L1447:
- ldr r4, .L1456
+.L1437:
+ ldr r4, .L1446
mov r1, #1
- ldr r8, .L1456+4
+ ldr r8, .L1446+4
mov r2, r1
mov r3, r1
- add r0, r4, #184
+ add r0, r4, #192
bl FlashProgPages
- movw r3, #3982
+ movw r3, #3986
ldrh r2, [r8, r3]
add r2, r2, #1
strh r2, [r8, r3] @ movhi
- ldr r3, [r6, #184]
+ ldr r3, [r6, #192]
cmn r3, #1
- bne .L1448
+ bne .L1438
add r7, r7, #1
- ldr r0, .L1456+24
- ldr r1, [r6, #188]
+ ldr r0, .L1446+24
+ ldr r1, [r6, #196]
uxth r7, r7
bl printk
cmp r7, #3
- bls .L1454
- ldr r0, .L1456+28
+ bls .L1444
+ ldr r0, .L1446+28
mov r2, r7
- ldr r1, [r4, #188]
+ ldr r1, [r4, #196]
bl printk
mov r3, #1
- str r3, [r8, #4040]
- b .L1455
-.L1448:
+ str r3, [r8, #4044]
+ b .L1445
+.L1438:
cmp fp, #0
- beq .L1451
-.L1455:
+ beq .L1441
+.L1445:
ldmfd sp!, {r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L1457:
+.L1447:
.align 2
-.L1456:
+.L1446:
.word .LANCHOR2
.word .LANCHOR0
- .word .LANCHOR0+4004
- .word -1024
+ .word .LANCHOR0+4008
+ .word -1016
.word -3887
+ .word .LC113
.word .LC114
.word .LC115
- .word .LC116
.fnend
- .size FtlBbmTblFlush.part.16, .-FtlBbmTblFlush.part.16
+ .size FtlBbmTblFlush.part.18, .-FtlBbmTblFlush.part.18
.text
.align 2
.global FtlBbmTblFlush
@@ -12689,17 +12601,17 @@ FtlBbmTblFlush:
@ frame_needed = 0, uses_anonymous_args = 0
stmfd sp!, {r3, lr}
.save {r3, lr}
- ldr r3, .L1460
- ldr r3, [r3, #4040]
+ ldr r3, .L1450
+ ldr r3, [r3, #4044]
cmp r3, #0
- bne .L1459
- bl FtlBbmTblFlush.part.16
-.L1459:
+ bne .L1449
+ bl FtlBbmTblFlush.part.18
+.L1449:
mov r0, #0
ldmfd sp!, {r3, pc}
-.L1461:
+.L1451:
.align 2
-.L1460:
+.L1450:
.word .LANCHOR0
.fnend
.size FtlBbmTblFlush, .-FtlBbmTblFlush
@@ -12713,79 +12625,79 @@ FtlGcFreeBadSuperBlk:
stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
.save {r4, r5, r6, r7, r8, r9, sl, lr}
mov r9, r0
- ldr r4, .L1472
- ldr r3, .L1472+4
+ ldr r4, .L1462
+ ldr r3, .L1462+4
ldrh r3, [r4, r3]
cmp r3, #0
movne r6, #0
movne sl, r4
- bne .L1463
- b .L1464
-.L1470:
+ bne .L1453
+ b .L1454
+.L1460:
add r3, r3, r6
mov r1, r9
mov r5, #0
- ldr r7, .L1472+4
- ldrb r0, [r3, #3874] @ zero_extendqisi2
+ ldr r7, .L1462+4
+ ldrb r0, [r3, #3878] @ zero_extendqisi2
bl V2P_block
mov r8, r0
- b .L1465
-.L1469:
+ b .L1455
+.L1459:
add r3, r4, r5, asl #1
sub r3, r3, #1120
- sub r3, r3, #12
+ sub r3, r3, #4
ldrh r3, [r3, #0]
cmp r3, r8
- bne .L1466
+ bne .L1456
mov r1, r8
- ldr r0, .L1472+8
+ ldr r0, .L1462+8
bl printk
mov r0, r8
bl FtlBbmMapBadBlock
bl FtlBbmTblFlush
ldrh r1, [r4, r7]
mov r3, r5
- b .L1467
-.L1468:
+ b .L1457
+.L1458:
add r0, r3, #1
add r3, r4, r3, asl #1
sub r3, r3, #1120
add r2, r4, r0, asl #1
sub r2, r2, #1120
- sub r2, r2, #12
+ sub r2, r2, #4
ldrh r2, [r2, #0]
- strh r2, [r3, #-12] @ movhi
+ strh r2, [r3, #-4] @ movhi
uxth r3, r0
-.L1467:
+.L1457:
cmp r3, r1
- bcc .L1468
+ bcc .L1458
sub r1, r1, #1
strh r1, [sl, r7] @ movhi
-.L1466:
+.L1456:
add r5, r5, #1
uxth r5, r5
-.L1465:
+.L1455:
ldrh r3, [r4, r7]
cmp r3, r5
- bhi .L1469
+ bhi .L1459
add r6, r6, #1
uxth r6, r6
-.L1463:
- ldr r3, .L1472+12
- movw r2, #3848
+.L1453:
+ ldr r3, .L1462+12
+ movw r2, #3852
ldrh r2, [r3, r2]
cmp r2, r6
- bhi .L1470
+ bhi .L1460
bl FtlGcReFreshBadBlk
-.L1464:
+.L1454:
mov r0, #0
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
-.L1473:
+.L1463:
.align 2
-.L1472:
+.L1462:
.word .LANCHOR2
- .word -1134
- .word .LC117
+ .word -1126
+ .word .LC116
.word .LANCHOR0
.fnend
.size FtlGcFreeBadSuperBlk, .-FtlGcFreeBadSuperBlk
@@ -12799,36 +12711,36 @@ update_vpc_list:
stmfd sp!, {r3, r4, r5, lr}
.save {r3, r4, r5, lr}
mov r2, r0, asl #1
- ldr r3, .L1482
+ ldr r3, .L1472
mov r4, r0
- ldr r1, [r3, #-2016]
+ ldr r1, [r3, #-2012]
ldrh r2, [r1, r2]
cmp r2, #0
- bne .L1475
- ldr r1, .L1482+4
+ bne .L1465
+ ldr r1, .L1472+4
ldrh r0, [r3, r1]
cmp r0, r4
mvneq r2, #0
streqh r2, [r3, r1] @ movhi
- beq .L1477
- ldr r1, .L1482+8
+ beq .L1467
+ ldr r1, .L1472+8
ldrh r1, [r3, r1]
cmp r1, r4
- beq .L1478
- ldr r1, .L1482+12
+ beq .L1468
+ ldr r1, .L1472+12
ldrh r1, [r3, r1]
cmp r1, r4
- beq .L1478
- ldr r1, .L1482+16
+ beq .L1468
+ ldr r1, .L1472+16
ldrh r3, [r3, r1]
cmp r3, r4
- beq .L1478
-.L1477:
+ beq .L1468
+.L1467:
+ ldr r5, .L1472
mov r1, r4
- ldr r0, .L1482+20
+ sub r0, r5, #2016
bl List_remove_node
- ldr r5, .L1482
- ldr r3, .L1482+24
+ ldr r3, .L1472+20
mov r0, r4
ldrh r2, [r5, r3]
sub r2, r2, #1
@@ -12837,23 +12749,22 @@ update_vpc_list:
mov r0, r4
bl FtlGcFreeBadSuperBlk
mov r2, #1
- b .L1478
-.L1475:
+ b .L1468
+.L1465:
bl List_update_data_list
mov r2, #0
-.L1478:
+.L1468:
mov r0, r2
ldmfd sp!, {r3, r4, r5, pc}
-.L1483:
+.L1473:
.align 2
-.L1482:
+.L1472:
.word .LANCHOR2
- .word -1760
- .word -1996
- .word -1948
- .word -1900
- .word .LANCHOR2-2020
- .word -2008
+ .word -1752
+ .word -1992
+ .word -1944
+ .word -1896
+ .word -2004
.fnend
.size update_vpc_list, .-update_vpc_list
.align 2
@@ -12868,41 +12779,41 @@ decrement_vpc_count:
stmfd sp!, {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
mov r4, r0
- beq .L1485
- ldr r2, .L1490
+ beq .L1475
+ ldr r2, .L1480
mov r3, r0, asl #1
- ldr r2, [r2, #-2016]
+ ldr r2, [r2, #-2012]
ldrh r1, [r2, r3]
cmp r1, #0
subne r1, r1, #1
strneh r1, [r2, r3] @ movhi
- bne .L1485
+ bne .L1475
ldmfd sp!, {r4, r5, r6, lr}
- b decrement_vpc_count.part.18
-.L1485:
- ldr r6, .L1490
+ b decrement_vpc_count.part.20
+.L1475:
+ ldr r6, .L1480
movw r3, #65535
- ldr r5, .L1490+4
+ ldr r5, .L1480+4
ldrh r0, [r6, r5]
cmp r0, r3
streqh r4, [r6, r5] @ movhi
moveq r0, #0
ldmeqfd sp!, {r4, r5, r6, pc}
cmp r0, r4
- beq .L1489
+ beq .L1479
bl update_vpc_list
strh r4, [r6, r5] @ movhi
adds r0, r0, #0
movne r0, #1
ldmfd sp!, {r4, r5, r6, pc}
-.L1489:
+.L1479:
mov r0, #0
ldmfd sp!, {r4, r5, r6, pc}
-.L1491:
+.L1481:
.align 2
-.L1490:
+.L1480:
.word .LANCHOR2
- .word -1016
+ .word -1008
.fnend
.size decrement_vpc_count, .-decrement_vpc_count
.align 2
@@ -12919,14 +12830,14 @@ get_new_active_ppa:
mov r4, r0
ldrb r3, [r0, #6] @ zero_extendqisi2
movw r6, #65535
- ldr r5, .L1504
- ldr r7, .L1504+4
+ ldr r5, .L1494
+ ldr r7, .L1494+4
add r3, r0, r3, asl #1
ldrh r3, [r3, #16]
- b .L1493
-.L1494:
+ b .L1483
+.L1484:
ldrb r3, [r4, #6] @ zero_extendqisi2
- movw r2, #3848
+ movw r2, #3852
ldrh r2, [r5, r2]
add r3, r3, #1
uxtb r3, r3
@@ -12940,28 +12851,28 @@ get_new_active_ppa:
ldrb r3, [r4, #6] @ zero_extendqisi2
add r3, r4, r3, asl #1
ldrh r3, [r3, #16]
-.L1493:
+.L1483:
cmp r3, r6
- beq .L1494
+ beq .L1484
ldrb r2, [r4, #8] @ zero_extendqisi2
cmp r2, #1
- bne .L1496
- ldrb r2, [r5, #928] @ zero_extendqisi2
+ bne .L1486
+ ldrb r2, [r5, #3072] @ zero_extendqisi2
cmp r2, #0
- bne .L1496
+ bne .L1486
ldrh r2, [r4, #2]
add r2, r7, r2, asl #1
- sub r2, r2, #888
+ sub r2, r2, #880
ldrh r2, [r2, #0]
cmp r2, r6
- bne .L1496
+ bne .L1486
ldrh r3, [r4, #4]
ldrh r0, [r4, #0]
sub r3, r3, #1
strh r3, [r4, #4] @ movhi
bl decrement_vpc_count
- b .L1494
-.L1496:
+ b .L1484
+.L1486:
ldrh r6, [r4, #2]
movw r5, #65535
mov r7, r5
@@ -12969,12 +12880,12 @@ get_new_active_ppa:
ldrh r3, [r4, #4]
sub r3, r3, #1
strh r3, [r4, #4] @ movhi
-.L1501:
- ldr r2, .L1504
- movw r3, #3848
+.L1491:
+ ldr r2, .L1494
+ movw r3, #3852
ldrh r2, [r2, r3]
ldrb r3, [r4, #6] @ zero_extendqisi2
-.L1498:
+.L1488:
add r3, r3, #1
uxtb r3, r3
cmp r3, r2
@@ -12985,39 +12896,39 @@ get_new_active_ppa:
add r1, r4, r3, asl #1
ldrh r1, [r1, #16]
cmp r1, r5
- beq .L1498
+ beq .L1488
strb r3, [r4, #6]
ldrb r3, [r4, #8] @ zero_extendqisi2
cmp r3, #1
- bne .L1499
- ldr r3, .L1504
- ldrb r2, [r3, #928] @ zero_extendqisi2
+ bne .L1489
+ ldr r3, .L1494
+ ldrb r2, [r3, #3072] @ zero_extendqisi2
cmp r2, #0
ldrh r2, [r4, #2]
- bne .L1502
- ldr r3, .L1504+4
+ bne .L1492
+ ldr r3, .L1494+4
add r2, r3, r2, asl #1
- sub r2, r2, #888
+ sub r2, r2, #880
ldrh r3, [r2, #0]
cmp r3, r7
- bne .L1499
+ bne .L1489
ldrh r3, [r4, #4]
cmp r3, #0
- beq .L1499
+ beq .L1489
sub r3, r3, #1
ldrh r0, [r4, #0]
strh r3, [r4, #4] @ movhi
bl decrement_vpc_count
- b .L1501
-.L1502:
- movw r1, #3918
+ b .L1491
+.L1492:
+ mov r1, #3920
ldrh r1, [r3, r1]
cmp r2, r1
- bcc .L1499
- ldr r1, .L1504+4
+ bcc .L1489
+ ldr r1, .L1494+4
ldrh r2, [r4, #0]
ldrh r0, [r4, #4]
- ldr r1, [r1, #-2016]
+ ldr r1, [r1, #-2012]
mov r2, r2, asl #1
ldrh ip, [r1, r2]
rsb r0, r0, ip
@@ -13025,23 +12936,23 @@ get_new_active_ppa:
mov r2, #0
strh r2, [r4, #4] @ movhi
mov r1, r2 @ movhi
- movw r2, #3916
+ movw r2, #3918
ldrh r3, [r3, r2]
strb r1, [r4, #6]
strh r3, [r4, #2] @ movhi
-.L1499:
+.L1489:
mov r0, r6
ldmfd sp!, {r3, r4, r5, r6, r7, pc}
-.L1505:
+.L1495:
.align 2
-.L1504:
+.L1494:
.word .LANCHOR0
.word .LANCHOR2
.fnend
.size get_new_active_ppa, .-get_new_active_ppa
.align 2
- .type FtlSlcSuperblockCheck.part.19, %function
-FtlSlcSuperblockCheck.part.19:
+ .type FtlSlcSuperblockCheck.part.21, %function
+FtlSlcSuperblockCheck.part.21:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@@ -13050,14 +12961,14 @@ FtlSlcSuperblockCheck.part.19:
mov r4, r0
ldrb r3, [r0, #6] @ zero_extendqisi2
movw r6, #65535
- ldr r5, .L1512
- ldr r7, .L1512+4
+ ldr r5, .L1502
+ ldr r7, .L1502+4
add r3, r0, r3, asl #1
ldrh r3, [r3, #16]
- b .L1507
-.L1508:
+ b .L1497
+.L1498:
ldrb r3, [r4, #6] @ zero_extendqisi2
- movw r2, #3848
+ movw r2, #3852
ldrh r2, [r5, r2]
add r3, r3, #1
uxtb r3, r3
@@ -13071,21 +12982,21 @@ FtlSlcSuperblockCheck.part.19:
ldrb r3, [r4, #6] @ zero_extendqisi2
add r3, r4, r3, asl #1
ldrh r3, [r3, #16]
-.L1507:
+.L1497:
cmp r3, r6
- beq .L1508
+ beq .L1498
ldrb r2, [r4, #8] @ zero_extendqisi2
cmp r2, #1
- bne .L1510
- ldrb r3, [r5, #928] @ zero_extendqisi2
+ bne .L1500
+ ldrb r3, [r5, #3072] @ zero_extendqisi2
cmp r3, #0
- bne .L1510
+ bne .L1500
ldrh r3, [r4, #2]
add r3, r7, r3, asl #1
- sub r3, r3, #888
+ sub r3, r3, #880
ldrh r3, [r3, #0]
cmp r3, r6
- bne .L1510
+ bne .L1500
ldrh r3, [r4, #4]
ldrh r0, [r4, #0]
sub r3, r3, #1
@@ -13093,28 +13004,28 @@ FtlSlcSuperblockCheck.part.19:
bl decrement_vpc_count
ldrh r3, [r4, #4]
cmp r3, #0
- bne .L1508
+ bne .L1498
ldrh r2, [r4, #2]
strb r3, [r4, #6]
add r2, r2, #1
strh r2, [r4, #2] @ movhi
ldmfd sp!, {r3, r4, r5, r6, r7, pc}
-.L1510:
- ldr r3, .L1512
- ldrb r1, [r3, #928] @ zero_extendqisi2
+.L1500:
+ ldr r3, .L1502
+ ldrb r1, [r3, #3072] @ zero_extendqisi2
cmp r1, #0
ldmeqfd sp!, {r3, r4, r5, r6, r7, pc}
cmp r2, #1
ldmnefd sp!, {r3, r4, r5, r6, r7, pc}
- movw r2, #3918
+ mov r2, #3920
ldrh r1, [r4, #2]
ldrh r2, [r3, r2]
cmp r1, r2
ldmccfd sp!, {r3, r4, r5, r6, r7, pc}
- ldr r1, .L1512+4
+ ldr r1, .L1502+4
ldrh r2, [r4, #0]
ldrh r0, [r4, #4]
- ldr r1, [r1, #-2016]
+ ldr r1, [r1, #-2012]
mov r2, r2, asl #1
ldrh ip, [r1, r2]
rsb r0, r0, ip
@@ -13122,18 +13033,18 @@ FtlSlcSuperblockCheck.part.19:
mov r2, #0
strh r2, [r4, #4] @ movhi
mov r1, r2 @ movhi
- movw r2, #3916
+ movw r2, #3918
ldrh r3, [r3, r2]
strb r1, [r4, #6]
strh r3, [r4, #2] @ movhi
ldmfd sp!, {r3, r4, r5, r6, r7, pc}
-.L1513:
+.L1503:
.align 2
-.L1512:
+.L1502:
.word .LANCHOR0
.word .LANCHOR2
.fnend
- .size FtlSlcSuperblockCheck.part.19, .-FtlSlcSuperblockCheck.part.19
+ .size FtlSlcSuperblockCheck.part.21, .-FtlSlcSuperblockCheck.part.21
.align 2
.global FtlSlcSuperblockCheck
.type FtlSlcSuperblockCheck, %function
@@ -13149,12 +13060,12 @@ FtlSlcSuperblockCheck:
movw r3, #65535
cmp r2, r3
bxeq lr
- b FtlSlcSuperblockCheck.part.19
+ b FtlSlcSuperblockCheck.part.21
.fnend
.size FtlSlcSuperblockCheck, .-FtlSlcSuperblockCheck
.align 2
- .type allocate_data_superblock.part.20, %function
-allocate_data_superblock.part.20:
+ .type allocate_data_superblock.part.22, %function
+allocate_data_superblock.part.22:
.fnstart
@ args = 0, pretend = 0, frame = 24
@ frame_needed = 0, uses_anonymous_args = 0
@@ -13162,94 +13073,94 @@ allocate_data_superblock.part.20:
.save {r4, r5, r6, r7, r8, r9, sl, fp, lr}
.pad #28
sub sp, sp, #28
- ldr r6, .L1555
+ ldr r6, .L1545
mov r4, r0
- ldr r5, .L1555+4
+ ldr r5, .L1545+4
mov sl, r6
-.L1550:
- ldr r3, .L1555+8
+.L1540:
+ ldr r3, .L1545+8
cmp r4, r3
- bne .L1518
- ldr r3, .L1555+12
+ bne .L1508
+ ldr r3, .L1545+12
ldrh r2, [r5, r3]
- ldr r3, [r5, #-1184]
+ ldr r3, [r5, #-1176]
mov r1, r2, lsr #1
mul ip, r3, r2
add r0, r1, #1
add r0, r0, ip, lsr #2
- ldr ip, [r6, #3840]
+ ldr ip, [r6, #3844]
cmp ip, #0
uxth r0, r0
- beq .L1542
- ldr ip, [r5, #-1780]
+ beq .L1532
+ ldr ip, [r5, #-1776]
cmp ip, #39
- bhi .L1542
+ bhi .L1532
cmp ip, #2
- bls .L1547
+ bls .L1537
tst r2, #1
- beq .L1519
+ beq .L1509
cmp r3, #0
moveq r1, r3
- beq .L1520
- b .L1519
-.L1518:
+ beq .L1510
+ b .L1509
+.L1508:
ldrb r3, [r4, #8] @ zero_extendqisi2
cmp r3, #1
- bne .L1547
- movw r3, #3868
+ bne .L1537
+ mov r3, #3872
ldrh r3, [r6, r3]
cmp r3, #1
- beq .L1547
- ldrb r3, [r6, #928] @ zero_extendqisi2
+ beq .L1537
+ ldrb r3, [r6, #3072] @ zero_extendqisi2
cmp r3, #0
- bne .L1547
- sub r3, r3, #2000
- ldr r2, [r6, #3840]
+ bne .L1537
+ ldr r3, .L1545+12
+ ldr r2, [r6, #3844]
ldrh r3, [r5, r3]
cmp r2, #0
mov r1, r3, lsr #3
- beq .L1519
- ldr r2, [r5, #-1780]
+ beq .L1509
+ ldr r2, [r5, #-1776]
cmp r2, #1
movls r1, #7
mulls r1, r1, r3
movls r1, r1, lsr #3
- b .L1519
-.L1542:
+ b .L1509
+.L1532:
mov r1, r0
-.L1519:
+.L1509:
cmp r1, #0
subne r1, r1, #1
uxthne r1, r1
- b .L1520
-.L1547:
+ b .L1510
+.L1537:
mov r1, #0
-.L1520:
+.L1510:
ldrb r2, [r4, #8] @ zero_extendqisi2
- ldr r0, .L1555+16
+ ldr r0, .L1545+16
bl List_pop_index_node
- ldr r3, .L1555+12
+ ldr r3, .L1545+12
ldrh r2, [r5, r3]
sub r2, r2, #1
strh r2, [r5, r3] @ movhi
- mov r3, #3856
+ movw r3, #3860
ldrh r3, [r6, r3]
uxth r9, r0
cmp r3, r9
- bls .L1550
- ldr r3, [r5, #-2016]
+ bls .L1540
+ ldr r3, [r5, #-2012]
mov r7, r9, asl #1
ldrh r8, [r3, r7]
cmp r8, #0
- bne .L1550
+ bne .L1540
strh r9, [r4, #0] @ movhi
mov r0, r4
bl make_superblock
ldrb r3, [r4, #7] @ zero_extendqisi2
cmp r3, #0
- beq .L1551
- movw r3, #3848
- ldr ip, [r6, #4044]
+ beq .L1541
+ movw r3, #3852
+ ldr ip, [r6, #4048]
ldrh r3, [r6, r3]
mov r1, r4
str r4, [sp, #16]
@@ -13258,14 +13169,14 @@ allocate_data_superblock.part.20:
stmia sp, {r4, ip}
str r3, [sp, #20]
mov r3, ip
- b .L1523
-.L1525:
+ b .L1513
+.L1515:
str r0, [r3, #8]
movw r4, #65535
str r0, [r3, #12]
ldrh lr, [r1, #16]
cmp lr, r4
- beq .L1524
+ beq .L1514
ldr r4, [sp, #4]
mov ip, #36
mov lr, lr, asl #10
@@ -13273,101 +13184,101 @@ allocate_data_superblock.part.20:
add r8, r8, #1
uxth r8, r8
str lr, [fp, #4]
-.L1524:
+.L1514:
add r2, r2, #1
add r3, r3, #36
add r1, r1, #2
uxth r2, r2
-.L1523:
+.L1513:
ldr fp, [sp, #20]
cmp r2, fp
- bne .L1525
- ldr r3, [r6, #3840]
+ bne .L1515
+ ldr r3, [r6, #3844]
ldr r4, [sp, #0]
cmp r3, #0
- beq .L1526
- ldr r3, .L1555+20
+ beq .L1516
+ ldr r3, .L1545+20
cmp r4, r3
- bne .L1526
- ldr r3, [r6, #4048]
+ bne .L1516
+ ldr r3, [r6, #4052]
ldrh r3, [r3, r7]
cmp r3, #40
movhi r3, #0
- strhib r3, [r5, #-1988]
-.L1526:
+ strhib r3, [r5, #-1984]
+.L1516:
ldrb r3, [r4, #8] @ zero_extendqisi2
cmp r3, #0
- ldr r3, [sl, #4048]
+ ldr r3, [sl, #4052]
ldrh r2, [r3, r7]
- bne .L1527
+ bne .L1517
cmp r2, #0
mov r0, r9
- movwne r1, #3906
+ movwne r1, #3910
moveq r2, #2
ldrneh r1, [r6, r1]
addne r2, r2, r1
strh r2, [r3, r7] @ movhi
- ldr r3, [r5, #-1796]
+ ldr r3, [r5, #-1792]
mov r1, #0
add r3, r3, #1
- str r3, [r5, #-1796]
- b .L1553
-.L1527:
+ str r3, [r5, #-1792]
+ b .L1543
+.L1517:
add r2, r2, #1
strh r2, [r3, r7] @ movhi
- ldr r3, [r5, #-1792]
+ ldr r3, [r5, #-1788]
mov r0, r9
mov r1, #1
add r3, r3, #1
- str r3, [r5, #-1792]
-.L1553:
+ str r3, [r5, #-1788]
+.L1543:
bl ftl_set_blk_mode
- ldr r3, [r6, #4048]
- ldr fp, .L1555+4
- ldr r2, [r5, #-1784]
+ ldr r3, [r6, #4052]
+ ldr fp, .L1545+4
+ ldr r2, [r5, #-1780]
ldrh r3, [r3, r7]
- ldr r0, [fp, #-1796]
+ ldr r0, [fp, #-1792]
cmp r3, r2
- strhi r3, [r5, #-1784]
- movw r3, #3906
+ strhi r3, [r5, #-1780]
+ movw r3, #3910
ldrh r2, [sl, r3]
- ldr r3, [fp, #-1792]
+ ldr r3, [fp, #-1788]
mla r0, r0, r2, r3
- mov r3, #3856
+ movw r3, #3860
ldrh r1, [sl, r3]
bl __aeabi_uidiv
- ldr r3, [fp, #-916]
+ ldr r3, [fp, #-908]
ldr r2, [r3, #16]
add r2, r2, #1
str r2, [r3, #16]
- ldr r3, [sl, #4044]
+ ldr r3, [sl, #4048]
mov r2, #0
- str r0, [fp, #-1788]
- b .L1532
-.L1533:
+ str r0, [fp, #-1784]
+ b .L1522
+.L1523:
add r2, r2, #1
ldr r1, [r3, #-32]
uxth r2, r2
bic r1, r1, #1020
bic r1, r1, #3
str r1, [r3, #-32]
-.L1532:
+.L1522:
cmp r2, r8
add r3, r3, #36
- bne .L1533
- ldrb r3, [r6, #928] @ zero_extendqisi2
+ bne .L1523
+ ldrb r3, [r6, #3072] @ zero_extendqisi2
cmp r3, #0
- beq .L1534
+ beq .L1524
ldrb r3, [r4, #8] @ zero_extendqisi2
mov r2, r8
- ldr r0, [r6, #4044]
+ ldr r0, [r6, #4048]
cmp r3, #1
moveq r1, #0
movne r1, #1
bl FlashEraseBlocks
-.L1534:
+.L1524:
mov r2, r8
- ldr r0, [sl, #4044]
+ ldr r0, [sl, #4048]
ldrb r1, [r4, #8] @ zero_extendqisi2
bl FlashEraseBlocks
mov r2, #36
@@ -13378,13 +13289,13 @@ allocate_data_superblock.part.20:
mov r9, r2
mov r2, r7
mov r7, r4
- b .L1536
-.L1538:
- ldr r0, [r6, #4044]
+ b .L1526
+.L1528:
+ ldr r0, [r6, #4048]
add r1, r0, r8
ldr r4, [r0, r8]
cmn r4, #1
- bne .L1537
+ bne .L1527
ldr r0, [r1, #4]
add fp, fp, #1
str r2, [sp, #8]
@@ -13398,64 +13309,64 @@ allocate_data_superblock.part.20:
strb r1, [r7, #7]
ldr r3, [sp, #12]
ldr r2, [sp, #8]
-.L1537:
+.L1527:
ldr r4, [sp, #16]
add r8, r8, #36
add r4, r4, #2
str r4, [sp, #16]
-.L1536:
+.L1526:
cmp r8, r9
- bne .L1538
+ bne .L1528
cmp fp, #0
mov r4, r7
mov r9, r3
mov r7, r2
- beq .L1539
+ beq .L1529
mov r0, r3
bl update_multiplier_value
bl FtlBbmTblFlush
-.L1539:
+.L1529:
ldrb r3, [r4, #7] @ zero_extendqisi2
cmp r3, #0
- bne .L1540
-.L1551:
- ldr r3, [r5, #-2016]
+ bne .L1530
+.L1541:
+ ldr r3, [r5, #-2012]
mvn r2, #0
strh r2, [r3, r7] @ movhi
- b .L1550
-.L1540:
- ldr r1, .L1555
- movw r2, #3916
+ b .L1540
+.L1530:
+ ldr r1, .L1545
+ movw r2, #3918
ldrh r2, [r1, r2]
strh r9, [r4, #0] @ movhi
mul r2, r2, r3
mov r3, #0
strh r3, [r4, #2] @ movhi
strb r3, [r4, #6]
- ldr r3, .L1555+4
+ ldr r3, .L1545+4
uxth r2, r2
strh r2, [r4, #4] @ movhi
- ldr r1, [r3, #-1804]
+ ldr r1, [r3, #-1800]
str r1, [r4, #12]
add r1, r1, #1
- str r1, [r3, #-1804]
+ str r1, [r3, #-1800]
ldrh r0, [r4, #0]
- ldr r1, [r3, #-2016]
+ ldr r1, [r3, #-2012]
mov r3, r0, asl #1
strh r2, [r1, r3] @ movhi
add sp, sp, #28
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L1556:
+.L1546:
.align 2
-.L1555:
+.L1545:
.word .LANCHOR0
.word .LANCHOR2
- .word .LANCHOR2-1900
- .word -2000
- .word .LANCHOR2-2004
- .word .LANCHOR2-1996
+ .word .LANCHOR2-1896
+ .word -1996
+ .word .LANCHOR2-2000
+ .word .LANCHOR2-1992
.fnend
- .size allocate_data_superblock.part.20, .-allocate_data_superblock.part.20
+ .size allocate_data_superblock.part.22, .-allocate_data_superblock.part.22
.align 2
.global allocate_data_superblock
.type allocate_data_superblock, %function
@@ -13465,17 +13376,17 @@ allocate_data_superblock:
@ frame_needed = 0, uses_anonymous_args = 0
stmfd sp!, {r3, lr}
.save {r3, lr}
- ldr r3, .L1559
- ldr r3, [r3, #4040]
+ ldr r3, .L1549
+ ldr r3, [r3, #4044]
cmp r3, #0
- bne .L1558
- bl allocate_data_superblock.part.20
-.L1558:
+ bne .L1548
+ bl allocate_data_superblock.part.22
+.L1548:
mov r0, #0
ldmfd sp!, {r3, pc}
-.L1560:
+.L1550:
.align 2
-.L1559:
+.L1549:
.word .LANCHOR0
.fnend
.size allocate_data_superblock, .-allocate_data_superblock
@@ -13486,33 +13397,33 @@ FtlSuperblockPowerLostFix:
.fnstart
@ args = 0, pretend = 0, frame = 40
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r2, .L1571
+ ldr r2, .L1561
stmfd sp!, {r4, r5, r6, r7, r8, sl, lr}
.save {r4, r5, r6, r7, r8, sl, lr}
mov r4, r0
- ldr r3, [r2, #4040]
+ ldr r3, [r2, #4044]
.pad #44
sub sp, sp, #44
cmp r3, #0
- bne .L1561
- ldrb r7, [r2, #928] @ zero_extendqisi2
+ bne .L1551
+ ldrb r7, [r2, #3072] @ zero_extendqisi2
cmp r7, #0
- beq .L1570
+ beq .L1560
ldrb r7, [r0, #8] @ zero_extendqisi2
cmp r7, #1
ldreqh r8, [r0, #4]
- beq .L1563
+ beq .L1553
mov r7, r3
-.L1570:
+.L1560:
mov r8, #12
-.L1563:
- ldr r6, .L1571+4
+.L1553:
+ ldr r6, .L1561+4
mvn r3, #0
str r3, [sp, #20]
mov sl, #0
movw r2, #61589
- ldr r5, [r6, #-932]
- ldr r3, [r6, #-956]
+ ldr r5, [r6, #-924]
+ ldr r3, [r6, #-948]
str r5, [sp, #16]
str r3, [sp, #12]
mvn r3, #2
@@ -13522,22 +13433,22 @@ FtlSuperblockPowerLostFix:
ldrh r3, [r4, #0]
strh sl, [r5, #0] @ movhi
strh r3, [r5, #2] @ movhi
- ldr r3, [r6, #-956]
+ ldr r3, [r6, #-948]
str r2, [r3, #0]
- ldr r2, .L1571+8
- ldr r3, [r6, #-956]
+ ldr r2, .L1561+8
+ ldr r3, [r6, #-948]
str r2, [r3, #4]
- b .L1564
-.L1567:
+ b .L1554
+.L1557:
ldrh r3, [r4, #4]
cmp r3, #0
- beq .L1565
+ beq .L1555
mov r0, r4
bl get_new_active_ppa
cmn r0, #1
str r0, [sp, #8]
- beq .L1565
- ldr r3, [r6, #-1800]
+ beq .L1555
+ ldr r3, [r6, #-1796]
mov r1, #1
mov r2, r7
add r0, sp, #4
@@ -13546,36 +13457,36 @@ FtlSuperblockPowerLostFix:
add r3, r3, #1
cmn r3, #1
moveq r3, sl
- str r3, [r6, #-1800]
+ str r3, [r6, #-1796]
mov r3, #0
bl FlashProgPages
ldrh r0, [r4, #0]
bl decrement_vpc_count
-.L1564:
+.L1554:
cmp r8, #0
- bne .L1567
-.L1565:
- ldr r2, .L1571+4
+ bne .L1557
+.L1555:
+ ldr r2, .L1561+4
ldrh r3, [r4, #0]
ldrh r1, [r4, #4]
- ldr r2, [r2, #-2016]
+ ldr r2, [r2, #-2012]
mov r3, r3, asl #1
ldrh r0, [r2, r3]
rsb r1, r1, r0
strh r1, [r2, r3] @ movhi
- ldr r2, .L1571
- movw r3, #3916
+ ldr r2, .L1561
+ movw r3, #3918
ldrh r3, [r2, r3]
strh r3, [r4, #2] @ movhi
mov r3, #0
strb r3, [r4, #6]
strh r3, [r4, #4] @ movhi
-.L1561:
+.L1551:
add sp, sp, #44
ldmfd sp!, {r4, r5, r6, r7, r8, sl, pc}
-.L1572:
+.L1562:
.align 2
-.L1571:
+.L1561:
.word .LANCHOR0
.word .LANCHOR2
.word 305419896
@@ -13591,48 +13502,48 @@ FtlLowFormatEraseBlock:
stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
.save {r4, r5, r6, r7, r8, r9, sl, fp, lr}
mov sl, r1
- ldr r8, .L1603
+ ldr r8, .L1593
.pad #28
sub sp, sp, #28
str r0, [sp, #8]
- ldr r6, [r8, #4040]
- ldrb r1, [r8, #3837] @ zero_extendqisi2
+ ldr r6, [r8, #4044]
+ ldrb r1, [r8, #3841] @ zero_extendqisi2
cmp r6, #0
str r1, [sp, #16]
movne r4, #0
- bne .L1574
- ldrb r2, [r8, #928] @ zero_extendqisi2
+ bne .L1564
+ ldrb r2, [r8, #3072] @ zero_extendqisi2
mov r5, r6
- ldr fp, .L1603+4
+ ldr fp, .L1593+4
mov r4, r6
mov r9, #36
str r2, [sp, #4]
- str r0, [fp, #-980]
- b .L1575
-.L1579:
+ str r0, [fp, #-972]
+ b .L1565
+.L1569:
mul r3, r9, r6
- ldr r2, [r8, #4044]
+ ldr r2, [r8, #4048]
mov r1, #0
str r1, [r2, r3]
add r3, r8, r6
ldr r1, [sp, #8]
- ldrb r0, [r3, #3874] @ zero_extendqisi2
+ ldrb r0, [r3, #3878] @ zero_extendqisi2
bl V2P_block
cmp sl, #0
mov r7, r0
- beq .L1576
+ beq .L1566
bl IsBlkInVendorPart
cmp r0, #0
- bne .L1577
-.L1576:
+ bne .L1567
+.L1566:
mov r0, r7
bl FtlBbmIsBadBlock
cmp r0, #0
addne r4, r4, #1
uxthne r4, r4
- bne .L1577
- movw r1, #3928
- ldr r3, [r8, #4044]
+ bne .L1567
+ movw r1, #3930
+ ldr r3, [r8, #4048]
ldrh r2, [r8, r1]
mov r7, r7, asl #10
mla r3, r9, r5, r3
@@ -13643,110 +13554,110 @@ FtlLowFormatEraseBlock:
cmp r2, #0
str r7, [r3, #4]
movlt r2, r1
- ldr r1, [fp, #-928]
+ ldr r1, [fp, #-920]
bic r2, r2, #3
str r0, [r3, #8]
add r2, r1, r2
str r2, [r3, #12]
-.L1577:
+.L1567:
add r6, r6, #1
uxth r6, r6
-.L1575:
- movw r2, #3848
- ldr r7, .L1603
+.L1565:
+ movw r2, #3852
+ ldr r7, .L1593
ldrh r3, [r8, r2]
cmp r3, r6
- bhi .L1579
+ bhi .L1569
cmp r5, #0
- beq .L1574
+ beq .L1564
ldr r3, [sp, #4]
mov r8, #0
- ldr r0, [r7, #4044]
+ ldr r0, [r7, #4048]
mov r2, r5
adds r6, r3, #0
- strb r8, [r7, #3837]
+ strb r8, [r7, #3841]
mov r9, r8
movne r6, #1
mov r1, r6
bl FlashEraseBlocks
ldr r1, [sp, #16]
- strb r1, [r7, #3837]
-.L1582:
- ldr r3, [r7, #4044]
+ strb r1, [r7, #3841]
+.L1572:
+ ldr r3, [r7, #4048]
add r2, r3, r8
ldr r3, [r3, r8]
cmn r3, #1
- bne .L1581
+ bne .L1571
ldr r0, [r2, #4]
add r4, r4, #1
ubfx r0, r0, #10, #16
uxth r4, r4
bl FtlBbmMapBadBlock
-.L1581:
+.L1571:
add r9, r9, #1
add r8, r8, #36
uxth r9, r9
cmp r9, r5
- bne .L1582
+ bne .L1572
cmp sl, #0
- beq .L1596
- ldr r3, .L1603
- movw r2, #3918
+ beq .L1586
+ ldr r3, .L1593
+ mov r2, #3920
ldrh r2, [r3, r2]
- ldrb r3, [r3, #928] @ zero_extendqisi2
+ ldrb r3, [r3, #3072] @ zero_extendqisi2
cmp r3, #0
str r2, [sp, #12]
moveq r2, r2, lsr #2
streq r2, [sp, #4]
moveq r6, #1
- beq .L1583
- b .L1602
-.L1596:
+ beq .L1573
+ b .L1592
+.L1586:
mov r3, #6
mov r1, #1
str r3, [sp, #4]
str r1, [sp, #12]
- b .L1583
-.L1602:
+ b .L1573
+.L1592:
mov r6, #1
str r6, [sp, #4]
-.L1583:
- ldr r7, .L1603
+.L1573:
+ ldr r7, .L1593
mov r8, #0
-.L1591:
+.L1581:
mov r9, #0
- ldr fp, .L1603+4
+ ldr fp, .L1593+4
mov r5, r9
- b .L1584
-.L1587:
+ b .L1574
+.L1577:
mov r1, #36
- ldr r2, [r7, #4044]
+ ldr r2, [r7, #4048]
mul r3, r1, r9
mov r1, #0
str r1, [r2, r3]
add r3, r7, r9
ldr r1, [sp, #8]
- ldrb r0, [r3, #3874] @ zero_extendqisi2
+ ldrb r0, [r3, #3878] @ zero_extendqisi2
bl V2P_block
cmp sl, #0
str r0, [sp, #20]
- beq .L1585
+ beq .L1575
bl IsBlkInVendorPart
cmp r0, #0
- bne .L1586
-.L1585:
+ bne .L1576
+.L1575:
ldr r0, [sp, #20]
bl FtlBbmIsBadBlock
cmp r0, #0
- bne .L1586
- ldr r3, [r7, #4044]
+ bne .L1576
+ ldr r3, [r7, #4048]
mov r2, #36
ldr r1, [sp, #20]
mla r3, r2, r5, r3
add r2, r8, r1, asl #10
- movw r1, #3928
+ movw r1, #3930
str r2, [r3, #4]
- ldr r2, [fp, #-940]
+ ldr r2, [fp, #-932]
str r2, [r3, #8]
ldrh r2, [r7, r1]
mul r2, r2, r5
@@ -13755,25 +13666,25 @@ FtlLowFormatEraseBlock:
add r1, r2, #3
cmp r2, #0
movlt r2, r1
- ldr r1, [fp, #-936]
+ ldr r1, [fp, #-928]
bic r2, r2, #3
add r2, r1, r2
str r2, [r3, #12]
-.L1586:
+.L1576:
add r9, r9, #1
uxth r9, r9
-.L1584:
- movw r2, #3848
- ldr ip, .L1603
+.L1574:
+ movw r2, #3852
+ ldr ip, .L1593
ldrh r3, [r7, r2]
cmp r3, r9
- bhi .L1587
+ bhi .L1577
cmp r5, #0
- beq .L1574
- ldr r0, [ip, #4044]
+ beq .L1564
+ ldr r0, [ip, #4048]
mov r3, #0
mov r1, r5
- strb r3, [ip, #3837]
+ strb r3, [ip, #3841]
mov r2, r6
mov r3, #1
str ip, [sp, #0]
@@ -13782,51 +13693,51 @@ FtlLowFormatEraseBlock:
mov r9, #0
ldr r1, [sp, #16]
mov fp, r9
- strb r1, [ip, #3837]
-.L1590:
- ldr r3, [r7, #4044]
+ strb r1, [ip, #3841]
+.L1580:
+ ldr r3, [r7, #4048]
add r2, r3, r9
ldr r3, [r3, r9]
cmp r3, #0
- beq .L1589
+ beq .L1579
ldr r0, [r2, #4]
add r4, r4, #1
ubfx r0, r0, #10, #16
uxth r4, r4
bl FtlBbmMapBadBlock
-.L1589:
+.L1579:
add fp, fp, #1
add r9, r9, #36
uxth fp, fp
cmp fp, r5
- bne .L1590
+ bne .L1580
ldr r2, [sp, #4]
ldr r3, [sp, #12]
add r8, r8, r2
uxth r8, r8
cmp r8, r3
- bcc .L1591
- ldr r9, .L1603
+ bcc .L1581
+ ldr r9, .L1593
mov r7, #0
mov r8, r7
-.L1593:
+.L1583:
cmp sl, #0
- beq .L1592
- ldr r3, [r9, #4044]
+ beq .L1582
+ ldr r3, [r9, #4048]
add r2, r3, r7
ldr r3, [r3, r7]
cmp r3, #0
- bne .L1592
+ bne .L1582
ldr r0, [r2, #4]
mov r1, #1
ubfx r0, r0, #10, #16
bl FtlFreeSysBlkQueueIn
-.L1592:
+.L1582:
add r8, r8, #1
add r7, r7, #36
uxth r8, r8
cmp r8, r5
- bne .L1593
+ bne .L1583
ldr r1, [sp, #8]
cmp r1, #63
movhi r3, #0
@@ -13835,45 +13746,45 @@ FtlLowFormatEraseBlock:
moveq sl, r3
orrne sl, r3, #1
cmp sl, #0
- beq .L1574
- ldr r3, .L1603
+ beq .L1564
+ ldr r3, .L1593
mov r1, r6
mov r2, r8
- ldr r0, [r3, #4044]
+ ldr r0, [r3, #4048]
bl FlashEraseBlocks
-.L1574:
+.L1564:
mov r0, r4
add sp, sp, #28
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L1604:
+.L1594:
.align 2
-.L1603:
+.L1593:
.word .LANCHOR0
.word .LANCHOR2
.fnend
.size FtlLowFormatEraseBlock, .-FtlLowFormatEraseBlock
.align 2
- .type FlashTestBlk.part.24, %function
-FlashTestBlk.part.24:
+ .type FlashTestBlk.part.26, %function
+FlashTestBlk.part.26:
.fnstart
@ args = 0, pretend = 0, frame = 104
@ frame_needed = 0, uses_anonymous_args = 0
-.L1606:
+.L1596:
stmfd sp!, {r4, r5, lr}
.save {r4, r5, lr}
.pad #108
sub sp, sp, #108
- ldr r4, .L1608
+ ldr r4, .L1598
mov r5, r0
mov r1, #165
add r0, sp, #40
mov r2, #32
str r0, [sp, #16]
- ldr r3, [r4, #140]
+ ldr r3, [r4, #148]
mov r5, r5, asl #10
str r3, [sp, #12]
bl ftl_memset
- ldr r0, [r4, #140]
+ ldr r0, [r4, #148]
mov r1, #90
mov r2, #8
bl ftl_memset
@@ -13897,12 +13808,12 @@ FlashTestBlk.part.24:
mov r0, r4
add sp, sp, #108
ldmfd sp!, {r4, r5, pc}
-.L1609:
+.L1599:
.align 2
-.L1608:
+.L1598:
.word .LANCHOR2
.fnend
- .size FlashTestBlk.part.24, .-FlashTestBlk.part.24
+ .size FlashTestBlk.part.26, .-FlashTestBlk.part.26
.align 2
.global FlashTestBlk
.type FlashTestBlk, %function
@@ -13911,17 +13822,17 @@ FlashTestBlk:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L1612
- ldr r3, [r3, #160]
+ ldr r3, .L1602
+ ldr r3, [r3, #168]
cmp r0, r3
- bcc .L1611
- b FlashTestBlk.part.24
-.L1611:
+ bcc .L1601
+ b FlashTestBlk.part.26
+.L1601:
mov r0, #0
bx lr
-.L1613:
+.L1603:
.align 2
-.L1612:
+.L1602:
.word .LANCHOR2
.fnend
.size FlashTestBlk, .-FlashTestBlk
@@ -13932,9 +13843,9 @@ FlashMakeFactorBbt:
.fnstart
@ args = 0, pretend = 0, frame = 72
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L1642
- movw r1, #3062
- movw r2, #3060
+ ldr r3, .L1632
+ movw r1, #3058
+ mov r2, #3056
stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
.save {r4, r5, r6, r7, r8, r9, sl, fp, lr}
.pad #76
@@ -13943,13 +13854,13 @@ FlashMakeFactorBbt:
mov r5, #0
ldrh fp, [r3, r1]
mov r1, #1
- ldr r4, .L1642+4
+ ldr r4, .L1632+4
mul fp, fp, r2
ldr r2, [r3, #3624]
- ldr r0, [r4, #232]
+ ldr r0, [r4, #240]
ldrb r2, [r2, #24] @ zero_extendqisi2
str r0, [sp, #28]
- ldr r0, .L1642+8
+ ldr r0, .L1632+8
uxth fp, fp
str r2, [sp, #12]
ldr r2, [r3, #856]
@@ -13961,25 +13872,25 @@ FlashMakeFactorBbt:
uxtheq r3, r3
streq r3, [sp, #8]
bl printk
- ldr r0, [r4, #232]
+ ldr r0, [r4, #240]
mov r2, #4096
mov r1, #0
bl ftl_memset
sub r3, fp, #1
mov r2, fp, lsr #4
- ldr r4, .L1642
+ ldr r4, .L1632
uxth r3, r3
str r2, [sp, #20]
str r3, [sp, #24]
- b .L1616
-.L1638:
- ldr r3, .L1642+4
+ b .L1606
+.L1628:
+ ldr r3, .L1632+4
add r2, r3, r5, asl #1
- ldrh r6, [r2, #236]
+ ldrh r6, [r2, #244]
cmp r6, #0
- bne .L1617
- movw r2, #3068
- ldr r0, [r3, #152]
+ bne .L1607
+ movw r2, #3064
+ ldr r0, [r3, #160]
ldrh r2, [r4, r2]
mov r1, r6
mov r8, r6
@@ -13989,14 +13900,14 @@ FlashMakeFactorBbt:
bl ftl_memset
add r3, r4, r5
ldrb r9, [r3, #3764] @ zero_extendqisi2
- b .L1618
-.L1626:
+ b .L1608
+.L1616:
mvn r3, #0
strb r3, [sp, #34]
strb r3, [sp, #35]
ldr r3, [sp, #12]
tst r3, #1
- beq .L1619
+ beq .L1609
ldr r3, [sl, #3588]
add r2, sp, #34
mov r0, r9
@@ -14007,7 +13918,7 @@ FlashMakeFactorBbt:
ldrb r2, [r4, #852] @ zero_extendqisi2
ldr r3, [sp, #4]
cmp r2, #1
- bne .L1619
+ bne .L1609
ldr r1, [r4, #856]
add r2, sp, #35
mov r0, r9
@@ -14017,10 +13928,10 @@ FlashMakeFactorBbt:
ldrb r2, [sp, #35] @ zero_extendqisi2
and r3, r2, r3
strb r3, [sp, #34]
-.L1619:
+.L1609:
ldr r0, [sp, #12]
tst r0, #2
- beq .L1620
+ beq .L1610
ldr r3, [r4, #3624]
mov r0, r9
add r2, sp, #35
@@ -14030,42 +13941,42 @@ FlashMakeFactorBbt:
add r1, r1, r3
add r1, r1, r6
bl FlashReadSpare
-.L1620:
+.L1610:
ldr r3, [r4, #3624]
ldrb r3, [r3, #7] @ zero_extendqisi2
cmp r3, #1
cmpne r3, #8
ldrb r3, [sp, #34] @ zero_extendqisi2
- bne .L1621
+ bne .L1611
cmp r3, #0
- beq .L1640
+ beq .L1630
ldrb r0, [sp, #35] @ zero_extendqisi2
rsbs r0, r0, #1
movcc r0, #0
- b .L1622
-.L1621:
+ b .L1612
+.L1611:
cmp r3, #255
- bne .L1640
+ bne .L1630
ldrb r0, [sp, #35] @ zero_extendqisi2
subs r0, r0, #255
movne r0, #1
- b .L1622
-.L1640:
+ b .L1612
+.L1630:
mov r0, #1
-.L1622:
+.L1612:
ldr r2, [sp, #12]
tst r2, #4
- beq .L1623
+ beq .L1613
ldr r1, [sl, #3588]
mov r0, r9
add r1, r6, r1
bl SandiskProgTestBadBlock
-.L1623:
+.L1613:
cmp r0, #0
- beq .L1624
+ beq .L1614
mov r1, r5
mov r2, r8
- ldr r0, .L1642+12
+ ldr r0, .L1632+12
add r7, r7, #1
bl printk
ldr r3, [sp, #16]
@@ -14073,8 +13984,8 @@ FlashMakeFactorBbt:
mov ip, #1
uxth r7, r7
mov r2, r3, lsr #5
- ldr r3, .L1642+4
- ldr r3, [r3, #152]
+ ldr r3, .L1632+4
+ ldr r3, [r3, #160]
ldr r1, [r3, r2, asl #2]
orr r1, r1, ip, asl r0
ldr r0, [sp, #20]
@@ -14082,18 +13993,18 @@ FlashMakeFactorBbt:
ldrb r3, [r4, #3762] @ zero_extendqisi2
mul r3, r3, r0
cmp r7, r3
- bgt .L1625
-.L1624:
+ bgt .L1615
+.L1614:
ldr r2, [sp, #8]
add r8, r8, #1
add r6, r6, r2
-.L1618:
+.L1608:
uxth r3, r8
str r3, [sp, #16]
cmp r3, fp
- bcc .L1626
-.L1625:
- ldr r0, .L1642+16
+ bcc .L1616
+.L1615:
+ ldr r0, .L1632+16
mov r1, r5
mov r2, r7
bl printk
@@ -14101,31 +14012,31 @@ FlashMakeFactorBbt:
ldr r0, [sp, #20]
mul r3, r3, r0
cmp r7, r3
- blt .L1627
- movw r3, #3068
+ blt .L1617
+ movw r3, #3064
mov r1, #0
ldrh r2, [r4, r3]
- ldr r3, .L1642+4
+ ldr r3, .L1632+4
mov r2, r2, asl #9
- ldr r0, [r3, #152]
+ ldr r0, [r3, #160]
bl ftl_memset
-.L1627:
+.L1617:
cmp r5, #0
- bne .L1628
- ldr sl, .L1642+4
+ bne .L1618
+ ldr sl, .L1632+4
mov r8, r5
mov r7, r5
- ldrh r9, [sl, #160]
- b .L1629
-.L1631:
+ ldrh r9, [sl, #168]
+ b .L1619
+.L1621:
mov r0, r6
bl FlashTestBlk
cmp r0, #0
- beq .L1630
+ beq .L1620
mov r1, r6
- ldr r0, .L1642+20
+ ldr r0, .L1632+20
bl printk
- ldr r3, [sl, #152]
+ ldr r3, [sl, #160]
mov r2, r6, lsr #5
mov r0, #1
add r7, r7, r0
@@ -14134,86 +14045,86 @@ FlashMakeFactorBbt:
uxth r7, r7
orr r6, r1, r0, asl r6
str r6, [r3, r2, asl #2]
-.L1630:
+.L1620:
add r8, r8, #1
uxth r8, r8
-.L1629:
+.L1619:
add r6, r8, r9
ldrb r3, [r4, #853] @ zero_extendqisi2
uxth r6, r6
cmp r3, r6
- bhi .L1631
+ bhi .L1621
ldr r6, [sp, #24]
sub r9, fp, #50
- ldr sl, .L1642+4
+ ldr sl, .L1632+4
mov r8, #1
- b .L1632
-.L1634:
+ b .L1622
+.L1624:
mov r0, r6
bl FlashTestBlk
cmp r0, #0
- beq .L1633
+ beq .L1623
mov r1, r6
- ldr r0, .L1642+20
+ ldr r0, .L1632+20
bl printk
- ldr r3, [sl, #152]
+ ldr r3, [sl, #160]
mov r2, r6, lsr #5
and r0, r6, #31
ldr r1, [r3, r2, asl #2]
orr r1, r1, r8, asl r0
str r1, [r3, r2, asl #2]
-.L1633:
+.L1623:
sub r6, r6, #1
uxth r6, r6
-.L1632:
+.L1622:
cmp r6, r9
- bgt .L1634
- ldr r3, .L1642+4
+ bgt .L1624
+ ldr r3, .L1632+4
ldrb r1, [r4, #853] @ zero_extendqisi2
- ldr r2, [r3, #160]
+ ldr r2, [r3, #168]
rsb r2, r2, r1
cmp r7, r2
- bcc .L1628
- movw r2, #3068
- ldr r0, [r3, #152]
+ bcc .L1618
+ movw r2, #3064
+ ldr r0, [r3, #160]
ldrh r2, [r4, r2]
mov r1, #0
mov r2, r2, asl #9
bl ftl_memset
-.L1628:
+.L1618:
mul r8, fp, r5
- ldr r7, .L1642+4
+ ldr r7, .L1632+4
ldr r6, [sp, #24]
ldr r9, [sp, #28]
add sl, r7, r5, asl #1
-.L1635:
- ldr r0, .L1642+24
+.L1625:
+ ldr r0, .L1632+24
mov r1, r5
mov r2, r6
bl printk
- ldr r3, [r7, #152]
- b .L1636
-.L1637:
+ ldr r3, [r7, #160]
+ b .L1626
+.L1627:
sub r6, r6, #1
uxth r6, r6
-.L1636:
+.L1626:
mov r1, r6, lsr #5
and r2, r6, #31
ldr r1, [r3, r1, asl #2]
mov r2, r1, lsr r2
ands r2, r2, #1
- bne .L1637
- ldr r3, .L1642+28
+ bne .L1627
+ ldr r3, .L1632+28
mov r1, #1
- strh r6, [sl, #236] @ movhi
+ strh r6, [sl, #244] @ movhi
add r0, sp, #36
strh r6, [r9, #2] @ movhi
strh r3, [r9, #0] @ movhi
- ldr r3, [r7, #152]
+ ldr r3, [r7, #160]
strh r2, [r9, #8] @ movhi
mov r2, r1
str r3, [sp, #44]
- ldr r3, [r7, #232]
+ ldr r3, [r7, #240]
str r3, [sp, #48]
add r3, r6, r8
mov r3, r3, asl #10
@@ -14228,26 +14139,26 @@ FlashMakeFactorBbt:
cmp r3, #0
subne r6, r6, #1
uxthne r6, r6
- bne .L1635
-.L1617:
+ bne .L1625
+.L1607:
add r5, r5, #1
uxtb r5, r5
-.L1616:
+.L1606:
ldrb r3, [r4, #3762] @ zero_extendqisi2
cmp r3, r5
- bhi .L1638
+ bhi .L1628
add sp, sp, #76
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L1643:
+.L1633:
.align 2
-.L1642:
+.L1632:
.word .LANCHOR0
.word .LANCHOR2
+ .word .LC117
.word .LC118
.word .LC119
.word .LC120
.word .LC121
- .word .LC122
.word -3872
.fnend
.size FlashMakeFactorBbt, .-FlashMakeFactorBbt
@@ -14268,106 +14179,106 @@ ftl_map_blk_gc:
ldrh r2, [r4, #8]
sub r3, r3, #4
cmp r2, r3
- blt .L1645
+ blt .L1635
uxth r0, r0
mov r0, r0, asl #1
ldrh r8, [r5, r0]
cmp r8, #0
- beq .L1645
+ beq .L1635
ldr r3, [r4, #32]
cmp r3, #0
- bne .L1645
+ bne .L1635
mov r2, #1
- ldr r1, .L1653
+ ldr r1, .L1643
str r2, [r4, #32]
strh r3, [r5, r0] @ movhi
ldrh r3, [r4, #8]
ldrh r2, [r4, #2]
sub r3, r3, #1
strh r3, [r4, #8] @ movhi
- movw r3, #3918
+ mov r3, #3920
ldrh r3, [r1, r3]
cmp r2, r3
- bcc .L1646
+ bcc .L1636
mov r0, r4
bl ftl_map_blk_alloc_new_blk
-.L1646:
+.L1636:
mov r5, #0
- ldr r6, .L1653+4
- b .L1647
-.L1652:
+ ldr r6, .L1643+4
+ b .L1637
+.L1642:
ldr r3, [sl, r5, asl #2]
add r9, sl, r5, asl #2
cmp r8, r3, lsr #10
- bne .L1648
- ldr r3, [r6, #-952]
+ bne .L1638
+ ldr r3, [r6, #-944]
mov r1, #1
- ldr r7, [r6, #-932]
+ ldr r7, [r6, #-924]
mov r2, r1
- ldr r0, .L1653+8
- str r3, [r6, #192]
- str r7, [r6, #196]
+ ldr r0, .L1643+8
+ str r3, [r6, #200]
+ str r7, [r6, #204]
ldr r3, [sl, r5, asl #2]
- str r3, [r6, #188]
+ str r3, [r6, #196]
bl FlashReadPages
- ldr r3, [r6, #184]
+ ldr r3, [r6, #192]
cmn r3, #1
- beq .L1649
+ beq .L1639
ldrh r3, [r7, #8]
cmp r3, r5
- bne .L1649
+ bne .L1639
ldrh r2, [r7, #0]
ldrh r3, [r4, #4]
cmp r2, r3
- beq .L1650
-.L1649:
+ beq .L1640
+.L1639:
mov r3, #0
str r3, [r9, #0]
- ldr r3, .L1653+4
+ ldr r3, .L1643+4
ldrh r2, [r7, #8]
- ldr r0, .L1653+12
- ldr r1, [r3, #188]
+ ldr r0, .L1643+12
+ ldr r1, [r3, #196]
bl printk
- ldr r3, .L1653
+ ldr r3, .L1643
mov r2, #1
- str r2, [r3, #4040]
- b .L1651
-.L1650:
+ str r2, [r3, #4044]
+ b .L1641
+.L1640:
mov r0, r4
mov r1, r5
- ldr r2, [r6, #192]
+ ldr r2, [r6, #200]
bl FtlMapWritePage
-.L1648:
+.L1638:
add r5, r5, #1
uxth r5, r5
-.L1647:
+.L1637:
ldrh r3, [r4, #6]
cmp r3, r5
- bhi .L1652
+ bhi .L1642
mov r0, r8
mov r1, #1
bl FtlFreeSysBlkQueueIn
mov r3, #0
str r3, [r4, #32]
-.L1645:
- ldr r1, .L1653
- movw r3, #3918
+.L1635:
+ ldr r1, .L1643
+ mov r3, #3920
ldrh r2, [r4, #2]
ldrh r3, [r1, r3]
cmp r2, r3
- bcc .L1651
+ bcc .L1641
mov r0, r4
bl ftl_map_blk_alloc_new_blk
-.L1651:
+.L1641:
mov r0, #0
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
-.L1654:
+.L1644:
.align 2
-.L1653:
+.L1643:
.word .LANCHOR0
.word .LANCHOR2
- .word .LANCHOR2+184
- .word .LC123
+ .word .LANCHOR2+192
+ .word .LC122
.fnend
.size ftl_map_blk_gc, .-ftl_map_blk_gc
.align 2
@@ -14377,78 +14288,89 @@ Ftl_write_map_blk_to_last_page:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L1661
- stmfd sp!, {r4, r5, r6, r7, r8, lr}
- .save {r4, r5, r6, r7, r8, lr}
+ stmfd sp!, {r3, r4, r5, r6, r7, r8, sl, lr}
+ .save {r3, r4, r5, r6, r7, r8, sl, lr}
mov r4, r0
- ldr r6, [r3, #4040]
+ ldr r3, .L1652
ldr r5, [r0, #12]
- cmp r6, #0
- ldr r8, [r0, #24]
- bne .L1656
+ ldr sl, [r0, #24]
+ ldr r7, [r3, #4044]
+ cmp r7, #0
+ bne .L1646
ldrh r2, [r0, #0]
movw r1, #65535
cmp r2, r1
- bne .L1657
+ bne .L1647
ldrh r3, [r0, #8]
add r3, r3, #1
strh r3, [r0, #8] @ movhi
bl FtlFreeSysBlkQueueOut
strh r0, [r5, #0] @ movhi
ldr r3, [r4, #28]
- strh r6, [r4, #2] @ movhi
+ strh r7, [r4, #2] @ movhi
add r3, r3, #1
- strh r6, [r4, #0] @ movhi
+ strh r7, [r4, #0] @ movhi
str r3, [r4, #28]
- b .L1656
-.L1657:
+ b .L1646
+.L1647:
mov r2, r2, asl #1
- ldr r1, [r0, #28]
- ldrh r7, [r5, r2]
- ldr r5, .L1661+4
+ mov r1, #255
+ ldrh r8, [r5, r2]
+ ldr r5, .L1652+4
ldrh r2, [r0, #2]
- orr r2, r2, r7, asl #10
- str r2, [r5, #188]
- ldr r2, [r5, #-956]
- str r2, [r5, #192]
- ldr r2, [r5, #-932]
+ orr r2, r2, r8, asl #10
str r2, [r5, #196]
- str r1, [r2, #4]
- ldr r1, .L1661+8
- strh r1, [r2, #8] @ movhi
- ldrh r1, [r0, #4]
- strh r7, [r2, #2] @ movhi
- strh r1, [r2, #0] @ movhi
- movw r2, #3918
+ ldr r2, [r5, #-948]
+ ldr r6, [r5, #-924]
+ str r2, [r5, #200]
+ ldr r2, [r0, #28]
+ str r6, [r5, #204]
+ str r2, [r6, #4]
+ ldr r2, .L1652+8
+ strh r2, [r6, #8] @ movhi
+ ldrh r2, [r0, #4]
+ strh r8, [r6, #2] @ movhi
+ strh r2, [r6, #0] @ movhi
+ mov r2, #3920
ldrh r2, [r3, r2]
- mov r1, #255
- ldr r0, [r5, #-956]
+ ldr r0, [r5, #-948]
mov r2, r2, asl #3
bl ftl_memset
- mov r3, r6
- b .L1658
-.L1660:
- ldr r2, [r8, r3, asl #2]
- cmp r7, r2, lsr #10
- bne .L1659
- add r6, r6, #1
- ldr r2, [r5, #-956]
- uxth r6, r6
- str r3, [r2, r6, asl #3]
- ldr r2, [r5, #-956]
- ldr r1, [r8, r3, asl #2]
- add r2, r2, r6, asl #3
+ mov r3, r7
+ b .L1648
+.L1650:
+ ldr r2, [sl, r3, asl #2]
+ cmp r8, r2, lsr #10
+ bne .L1649
+ add r7, r7, #1
+ ldr r2, [r5, #-948]
+ uxth r7, r7
+ str r3, [r2, r7, asl #3]
+ ldr r2, [r5, #-948]
+ ldr r1, [sl, r3, asl #2]
+ add r2, r2, r7, asl #3
str r1, [r2, #4]
-.L1659:
+.L1649:
add r3, r3, #1
uxth r3, r3
-.L1658:
+.L1648:
ldrh r2, [r4, #6]
cmp r2, r3
- bhi .L1660
+ bhi .L1650
+ ldr r3, .L1652
+ ldrb r2, [r3, #852] @ zero_extendqisi2
+ cmp r2, #0
+ beq .L1651
+ ldr r2, .L1652+4
+ ldr r0, [r2, #200]
+ movw r2, #3928
+ ldrh r1, [r3, r2]
+ bl js_hash
+ str r0, [r6, #12]
+.L1651:
mov r1, #1
mov r3, #0
- ldr r0, .L1661+12
+ ldr r0, .L1652+12
mov r2, r1
bl FlashProgPages
ldrh r3, [r4, #2]
@@ -14456,16 +14378,16 @@ Ftl_write_map_blk_to_last_page:
add r3, r3, #1
strh r3, [r4, #2] @ movhi
bl ftl_map_blk_gc
-.L1656:
+.L1646:
mov r0, #0
- ldmfd sp!, {r4, r5, r6, r7, r8, pc}
-.L1662:
+ ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc}
+.L1653:
.align 2
-.L1661:
+.L1652:
.word .LANCHOR0
.word .LANCHOR2
.word -1291
- .word .LANCHOR2+184
+ .word .LANCHOR2+192
.fnend
.size Ftl_write_map_blk_to_last_page, .-Ftl_write_map_blk_to_last_page
.align 2
@@ -14478,116 +14400,126 @@ FtlMapWritePage:
stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
.save {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
mov r4, r0
- ldr r8, .L1677
+ ldr r5, .L1669
mov sl, r1
- ldr r5, .L1677+4
+ ldr r6, .L1669+4
mov r9, r2
- mov r6, #0
- mov fp, r8
-.L1676:
- ldr r3, [r5, #-1820]
+ mov r7, #0
+.L1668:
+ ldr r3, [r5, #-1816]
add r3, r3, #1
- str r3, [r5, #-1820]
- movw r3, #3918
+ str r3, [r5, #-1816]
+ mov r3, #3920
ldrh r2, [r4, #2]
- ldrh r3, [r8, r3]
+ ldrh r3, [r6, r3]
sub r3, r3, #1
cmp r2, r3
- bge .L1665
+ bge .L1656
ldrh r2, [r4, #0]
movw r3, #65535
cmp r2, r3
- bne .L1666
-.L1665:
+ bne .L1657
+.L1656:
mov r0, r4
bl Ftl_write_map_blk_to_last_page
-.L1666:
- ldr r1, [fp, #4040]
+.L1657:
+ ldr r3, .L1669+4
+ ldr r1, [r3, #4044]
cmp r1, #0
- bne .L1667
+ bne .L1658
ldrh r3, [r4, #0]
ldr r2, [r4, #12]
- ldr r0, [r5, #-932]
+ ldr r0, [r5, #-924]
mov r3, r3, asl #1
- ldrh r7, [r2, r3]
+ ldrh r8, [r2, r3]
mov r2, #16
ldrh r3, [r4, #2]
- str r9, [r5, #192]
- orr r3, r3, r7, asl #10
- str r0, [r5, #196]
- str r3, [r5, #188]
+ str r9, [r5, #200]
+ orr r3, r3, r8, asl #10
+ str r0, [r5, #204]
+ str r3, [r5, #196]
bl ftl_memset
- ldr r3, [r5, #196]
+ ldr r3, [r4, #28]
+ ldr fp, [r5, #204]
+ str r3, [fp, #4]
+ strh sl, [fp, #8] @ movhi
+ ldrh r3, [r4, #4]
+ strh r8, [fp, #2] @ movhi
+ strh r3, [fp, #0] @ movhi
+ ldrb r3, [r6, #852] @ zero_extendqisi2
+ cmp r3, #0
+ beq .L1659
+ movw r3, #3928
+ ldr r0, [r5, #200]
+ ldrh r1, [r6, r3]
+ bl js_hash
+ str r0, [fp, #12]
+.L1659:
mov r1, #1
- ldr r2, [r4, #28]
- ldr r0, .L1677+8
- strh sl, [r3, #8] @ movhi
- str r2, [r3, #4]
- ldrh r2, [r4, #4]
- strh r7, [r3, #2] @ movhi
- strh r2, [r3, #0] @ movhi
+ ldr r0, .L1669+8
mov r2, r1
mov r3, r1
bl FlashProgPages
ldrh r2, [r4, #2]
+ ldr r3, .L1669
add r2, r2, #1
uxth r2, r2
strh r2, [r4, #2] @ movhi
- ldr r3, [r5, #184]
+ ldr r3, [r3, #192]
cmn r3, #1
- bne .L1668
- ldr r0, .L1677+12
- add r6, r6, #1
- ldr r1, [r5, #188]
+ bne .L1660
+ ldr r0, .L1669+12
+ add r7, r7, #1
+ ldr r1, [r5, #196]
bl printk
ldrh r3, [r4, #2]
- uxth r6, r6
+ uxth r7, r7
cmp r3, #2
- movwls r3, #3918
- ldrlsh r3, [r8, r3]
+ movls r3, #3920
+ ldrlsh r3, [r6, r3]
subls r3, r3, #1
strlsh r3, [r4, #2] @ movhi
- cmp r6, #3
- bls .L1676
- ldr r3, .L1677+4
- mov r2, r6
- ldr r0, .L1677+16
- ldr r1, [r3, #188]
+ cmp r7, #3
+ bls .L1668
+ ldr r3, .L1669
+ mov r2, r7
+ ldr r0, .L1669+16
+ ldr r1, [r3, #196]
bl printk
- ldr r3, .L1677
+ ldr r3, .L1669+4
mov r2, #1
- str r2, [r3, #4040]
- b .L1667
-.L1668:
+ str r2, [r3, #4044]
+ b .L1658
+.L1660:
cmp r3, #0
- strneh r7, [r4, #40] @ movhi
+ strneh r8, [r4, #40] @ movhi
cmp r2, #1
- beq .L1672
+ beq .L1664
cmp r3, #256
- beq .L1672
+ beq .L1664
ldr r3, [r4, #36]
cmp r3, #0
- beq .L1673
-.L1672:
+ beq .L1665
+.L1664:
mov r3, #0
str r3, [r4, #36]
- b .L1676
-.L1673:
- ldr r3, .L1677+4
- ldr r2, [r3, #188]
+ b .L1668
+.L1665:
+ ldr r3, .L1669
+ ldr r2, [r3, #196]
ldr r3, [r4, #24]
str r2, [r3, sl, asl #2]
-.L1667:
+.L1658:
mov r0, #0
ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L1678:
+.L1670:
.align 2
-.L1677:
- .word .LANCHOR0
+.L1669:
.word .LANCHOR2
- .word .LANCHOR2+184
+ .word .LANCHOR0
+ .word .LANCHOR2+192
+ .word .LC123
.word .LC124
- .word .LC125
.fnend
.size FtlMapWritePage, .-FtlMapWritePage
.align 2
@@ -14600,26 +14532,26 @@ flush_l2p_region:
stmfd sp!, {r3, r4, r5, lr}
.save {r3, r4, r5, lr}
mov r4, #12
- ldr r5, .L1680
+ ldr r5, .L1672
mul r4, r4, r0
- ldr r0, .L1680+4
- ldr r2, [r5, #-1852]
+ ldr r0, .L1672+4
+ ldr r2, [r5, #-1848]
add r3, r2, r4
ldrh r1, [r2, r4]
ldr r2, [r3, #8]
bl FtlMapWritePage
- ldr r3, [r5, #-1852]
+ ldr r3, [r5, #-1848]
mov r0, #0
add r4, r3, r4
ldr r3, [r4, #4]
bic r3, r3, #-2147483648
str r3, [r4, #4]
ldmfd sp!, {r3, r4, r5, pc}
-.L1681:
+.L1673:
.align 2
-.L1680:
+.L1672:
.word .LANCHOR2
- .word .LANCHOR2-1084
+ .word .LANCHOR2-1076
.fnend
.size flush_l2p_region, .-flush_l2p_region
.align 2
@@ -14639,40 +14571,40 @@ FtlMapBlkWriteDumpData:
ldmeqfd sp!, {r4, r5, r6, pc}
mov r3, #0
str r3, [r0, #36]
- ldr r3, .L1686
- ldr r1, [r3, #4040]
+ ldr r3, .L1678
+ ldr r1, [r3, #4044]
cmp r1, #0
ldmnefd sp!, {r4, r5, r6, pc}
- ldr r5, .L1686+4
+ ldr r5, .L1678+4
sub r6, r6, #1
uxth r6, r6
- ldr r0, [r5, #-952]
- ldr r1, [r5, #-932]
- str r0, [r5, #192]
- str r1, [r5, #196]
+ ldr r0, [r5, #-944]
+ ldr r1, [r5, #-924]
+ str r0, [r5, #200]
+ str r1, [r5, #204]
ldr r2, [r2, r6, asl #2]
cmp r2, #0
- str r2, [r5, #188]
- beq .L1684
+ str r2, [r5, #196]
+ beq .L1676
mov r1, #1
- add r0, r5, #184
+ add r0, r5, #192
mov r2, r1
bl FlashReadPages
- b .L1685
-.L1684:
- movw r2, #3926
+ b .L1677
+.L1676:
+ movw r2, #3928
mov r1, #255
ldrh r2, [r3, r2]
bl ftl_memset
-.L1685:
+.L1677:
mov r0, r4
mov r1, r6
- ldr r2, [r5, #192]
+ ldr r2, [r5, #200]
ldmfd sp!, {r4, r5, r6, lr}
b FtlMapWritePage
-.L1687:
+.L1679:
.align 2
-.L1686:
+.L1678:
.word .LANCHOR0
.word .LANCHOR2
.fnend
@@ -14684,14 +14616,14 @@ FtlVendorPartRead:
.fnstart
@ args = 0, pretend = 0, frame = 48
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L1699
+ ldr r3, .L1691
stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
.save {r4, r5, r6, r7, r8, r9, sl, fp, lr}
mov r9, r2
- movw r2, #3924
+ movw r2, #3926
mov r5, r1
ldrh r7, [r3, r2]
- movw r2, #3910
+ movw r2, #3914
ldrh r2, [r3, r2]
add r1, r1, r0
.pad #52
@@ -14699,20 +14631,20 @@ FtlVendorPartRead:
mov r8, r0
cmp r1, r2
mvnhi fp, #0
- bhi .L1689
+ bhi .L1681
mov r7, r0, lsr r7
mov fp, #0
- ldr r6, .L1699+4
+ ldr r6, .L1691+4
mov r2, r7, asl #2
str r2, [sp, #0]
- b .L1690
-.L1696:
- ldr r3, [r6, #-900]
+ b .L1682
+.L1688:
+ ldr r3, [r6, #-892]
mov r0, r8
ldr r2, [sp, #0]
ldr sl, [r3, r2]
- movw r3, #3922
- ldr r2, .L1699
+ movw r3, #3924
+ ldr r2, .L1691
ldrh r4, [r2, r3]
mov r1, r4
bl __aeabi_uidivmod
@@ -14723,12 +14655,12 @@ FtlVendorPartRead:
cmp r4, r5
uxthhi r4, r5
cmp sl, #0
- beq .L1692
- ldr r2, .L1699+4
+ beq .L1684
+ ldr r2, .L1691+4
mov r1, #1
add r0, sp, #12
str sl, [sp, #16]
- ldr r3, [r2, #-948]
+ ldr r3, [r2, #-940]
mov r2, r1
str r3, [sp, #20]
mov r3, #0
@@ -14737,31 +14669,31 @@ FtlVendorPartRead:
ldr r3, [sp, #12]
cmn r3, #1
moveq fp, r3
- ldr r3, [r6, #184]
+ ldr r3, [r6, #192]
cmp r3, #256
- bne .L1694
+ bne .L1686
mov r1, r7
mov r2, sl
- ldr r0, .L1699+8
+ ldr r0, .L1691+8
bl printk
- ldr r0, .L1699+12
+ ldr r0, .L1691+12
mov r1, r7
- ldr r2, [r6, #-948]
+ ldr r2, [r6, #-940]
bl FtlMapWritePage
-.L1694:
+.L1686:
ldr r3, [sp, #4]
mov r0, r9
- ldr r1, [r6, #-948]
+ ldr r1, [r6, #-940]
mov r2, r4, asl #9
add r1, r1, r3, asl #9
bl memcpy
- b .L1695
-.L1692:
+ b .L1687
+.L1684:
mov r0, r9
mov r1, sl
mov r2, r4, asl #9
bl ftl_memset
-.L1695:
+.L1687:
ldr r3, [sp, #0]
add r7, r7, #1
rsb r5, r4, r5
@@ -14769,20 +14701,20 @@ FtlVendorPartRead:
add r9, r9, r4, asl #9
add r3, r3, #4
str r3, [sp, #0]
-.L1690:
+.L1682:
cmp r5, #0
- bne .L1696
-.L1689:
+ bne .L1688
+.L1681:
mov r0, fp
add sp, sp, #52
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L1700:
+.L1692:
.align 2
-.L1699:
+.L1691:
.word .LANCHOR0
.word .LANCHOR2
- .word .LC126
- .word .LANCHOR2+252
+ .word .LC125
+ .word .LANCHOR2+260
.fnend
.size FtlVendorPartRead, .-FtlVendorPartRead
.align 2
@@ -14795,86 +14727,86 @@ Ftl_load_ext_data:
stmfd sp!, {r3, r4, r5, lr}
.save {r3, r4, r5, lr}
mov r0, #0
- ldr r5, .L1705
+ ldr r5, .L1697
mov r1, #1
- ldr r2, .L1705+4
+ ldr r2, .L1697+4
bl FtlVendorPartRead
- ldr r4, .L1705+8
- ldr r3, [r5, #-1708]
+ ldr r4, .L1697+8
+ ldr r3, [r5, #-1700]
cmp r3, r4
- beq .L1702
- ldr r0, .L1705+4
+ beq .L1694
+ ldr r0, .L1697+4
mov r1, #0
mov r2, #512
bl ftl_memset
- str r4, [r5, #-1708]
-.L1702:
- ldr r2, [r5, #-1708]
- ldr r3, .L1705
+ str r4, [r5, #-1700]
+.L1694:
+ ldr r2, [r5, #-1700]
+ ldr r3, .L1697
cmp r2, r4
- bne .L1703
- ldr r2, [r3, #-1620]
- ldr r1, [r3, #-1676]
- str r2, [r3, #-1812]
- ldr r2, [r3, #-1616]
+ bne .L1695
+ ldr r2, [r3, #-1612]
+ ldr r1, [r3, #-1668]
str r2, [r3, #-1808]
- ldr r2, [r3, #-1700]
- str r2, [r3, #-1816]
- ldr r2, [r3, #-1696]
- str r2, [r3, #-1828]
+ ldr r2, [r3, #-1608]
+ str r2, [r3, #-1804]
ldr r2, [r3, #-1692]
- str r2, [r3, #-1836]
+ str r2, [r3, #-1812]
ldr r2, [r3, #-1688]
- str r2, [r3, #-1820]
+ str r2, [r3, #-1824]
+ ldr r2, [r3, #-1684]
+ str r2, [r3, #-1832]
ldr r2, [r3, #-1680]
- str r2, [r3, #-1792]
- ldr r2, .L1705+12
- str r1, [r2, #4052]
+ str r2, [r3, #-1816]
ldr r2, [r3, #-1672]
- str r2, [r3, #-1832]
- ldr r2, [r3, #-1668]
- str r2, [r3, #-1824]
+ str r2, [r3, #-1788]
+ ldr r2, .L1697+12
+ str r1, [r2, #4056]
ldr r2, [r3, #-1664]
- str r2, [r3, #-1784]
+ str r2, [r3, #-1828]
ldr r2, [r3, #-1660]
+ str r2, [r3, #-1820]
+ ldr r2, [r3, #-1656]
str r2, [r3, #-1780]
- ldr r2, [r3, #-1648]
- str r2, [r3, #-1712]
-.L1703:
- ldr r4, .L1705
+ ldr r2, [r3, #-1652]
+ str r2, [r3, #-1776]
+ ldr r2, [r3, #-1640]
+ str r2, [r3, #-1704]
+.L1695:
+ ldr r4, .L1697
mov r3, #0
- ldr r5, .L1705+12
- str r3, [r4, #-996]
- ldr r2, [r4, #-1640]
- ldr r3, .L1705+16
+ ldr r5, .L1697+12
+ str r3, [r4, #-988]
+ ldr r2, [r4, #-1632]
+ ldr r3, .L1697+16
cmp r2, r3
- bne .L1704
+ bne .L1696
mov r3, #1
- ldr r0, .L1705+20
- str r3, [r5, #3840]
- ldr r1, .L1705+24
+ ldr r0, .L1697+20
+ str r3, [r5, #3844]
+ ldr r1, .L1697+24
bl printk
-.L1704:
- movw r3, #3906
- ldr r0, [r4, #-1796]
+.L1696:
+ movw r3, #3910
+ ldr r0, [r4, #-1792]
ldrh r2, [r5, r3]
- ldr r3, [r4, #-1792]
+ ldr r3, [r4, #-1788]
mla r0, r0, r2, r3
- mov r3, #3856
+ movw r3, #3860
ldrh r1, [r5, r3]
bl __aeabi_uidiv
- str r0, [r4, #-1788]
+ str r0, [r4, #-1784]
ldmfd sp!, {r3, r4, r5, pc}
-.L1706:
+.L1698:
.align 2
-.L1705:
+.L1697:
.word .LANCHOR2
- .word .LANCHOR2-1708
+ .word .LANCHOR2-1700
.word 1179929683
.word .LANCHOR0
.word 305432421
.word .LC77
- .word .LC127
+ .word .LC126
.fnend
.size Ftl_load_ext_data, .-Ftl_load_ext_data
.align 2
@@ -14887,34 +14819,34 @@ FtlLoadEctTbl:
stmfd sp!, {r3, r4, r5, lr}
.save {r3, r4, r5, lr}
mov r0, #64
- ldr r4, .L1709
- ldr r5, .L1709+4
- ldr r2, [r4, #-916]
+ ldr r4, .L1701
+ ldr r5, .L1701+4
+ ldr r2, [r4, #-908]
ldrh r1, [r4, r5]
bl FtlVendorPartRead
- ldr r3, [r4, #-916]
+ ldr r3, [r4, #-908]
ldr r2, [r3, #0]
- ldr r3, .L1709+8
+ ldr r3, .L1701+8
cmp r2, r3
- beq .L1708
- ldr r1, .L1709+12
- ldr r0, .L1709+16
+ beq .L1700
+ ldr r1, .L1701+12
+ ldr r0, .L1701+16
bl printk
ldrh r2, [r4, r5]
- ldr r0, [r4, #-916]
+ ldr r0, [r4, #-908]
mov r1, #0
mov r2, r2, asl #9
bl ftl_memset
-.L1708:
+.L1700:
mov r0, #0
ldmfd sp!, {r3, r4, r5, pc}
-.L1710:
+.L1702:
.align 2
-.L1709:
+.L1701:
.word .LANCHOR2
- .word -920
+ .word -912
.word 1112818501
- .word .LC128
+ .word .LC127
.word .LC77
.fnend
.size FtlLoadEctTbl, .-FtlLoadEctTbl
@@ -14925,14 +14857,14 @@ FtlVendorPartWrite:
.fnstart
@ args = 0, pretend = 0, frame = 56
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L1721
+ ldr r3, .L1713
stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
.save {r4, r5, r6, r7, r8, r9, sl, fp, lr}
mov r9, r2
- movw r2, #3924
+ movw r2, #3926
mov r4, r1
ldrh r8, [r3, r2]
- movw r2, #3910
+ movw r2, #3914
ldrh r2, [r3, r2]
add r1, r1, r0
.pad #60
@@ -14940,26 +14872,26 @@ FtlVendorPartWrite:
mov r6, r0
cmp r1, r2
mvnhi r7, #0
- bhi .L1712
+ bhi .L1704
mov r8, r0, lsr r8
mov r7, #0
- ldr sl, .L1721+4
+ ldr sl, .L1713+4
mov ip, r8, asl #2
str ip, [sp, #8]
- b .L1713
-.L1718:
- ldr r1, .L1721
- movw r2, #3922
+ b .L1705
+.L1710:
+ ldr r1, .L1713
+ movw r2, #3924
ldr ip, [sp, #8]
mov r0, r6
- ldr r3, [sl, #-900]
+ ldr r3, [sl, #-892]
ldrh fp, [r1, r2]
ldr r3, [r3, ip]
mov r1, fp
str r3, [sp, #4]
bl __aeabi_uidivmod
ldr r3, [sp, #4]
- ldr r2, .L1721+4
+ ldr r2, .L1713+4
uxth r1, r1
str r1, [sp, #12]
rsb r5, r1, fp
@@ -14967,30 +14899,30 @@ FtlVendorPartWrite:
cmp r5, r4
uxthhi r5, r4
cmp r3, #0
- beq .L1715
+ beq .L1707
cmp r5, fp
- beq .L1715
+ beq .L1707
str r3, [sp, #24]
mov r1, #1
- ldr r3, [r2, #-948]
+ ldr r3, [r2, #-940]
add r0, sp, #20
mov r2, r1
str r3, [sp, #28]
mov r3, #0
str r3, [sp, #32]
bl FlashReadPages
- b .L1716
-.L1715:
- ldr ip, .L1721
- movw r3, #3926
- ldr r0, [r2, #-948]
+ b .L1708
+.L1707:
+ ldr ip, .L1713
+ movw r3, #3928
+ ldr r0, [r2, #-940]
mov r1, #0
ldrh r2, [ip, r3]
bl ftl_memset
-.L1716:
+.L1708:
ldr r3, [sp, #12]
mov fp, r5, asl #9
- ldr r0, [sl, #-948]
+ ldr r0, [sl, #-940]
mov r1, r9
mov r2, fp
rsb r4, r5, r4
@@ -14998,9 +14930,9 @@ FtlVendorPartWrite:
add r6, r6, r5
bl memcpy
mov r1, r8
- ldr r0, .L1721+8
+ ldr r0, .L1713+8
add r8, r8, #1
- ldr r2, [sl, #-948]
+ ldr r2, [sl, #-940]
add r9, r9, fp
bl FtlMapWritePage
ldr ip, [sp, #8]
@@ -15008,19 +14940,19 @@ FtlVendorPartWrite:
str ip, [sp, #8]
cmn r0, #1
moveq r7, r0
-.L1713:
+.L1705:
cmp r4, #0
- bne .L1718
-.L1712:
+ bne .L1710
+.L1704:
mov r0, r7
add sp, sp, #60
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L1722:
+.L1714:
.align 2
-.L1721:
+.L1713:
.word .LANCHOR0
.word .LANCHOR2
- .word .LANCHOR2+252
+ .word .LANCHOR2+260
.fnend
.size FtlVendorPartWrite, .-FtlVendorPartWrite
.align 2
@@ -15031,54 +14963,54 @@ Ftl_save_ext_data:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L1725
- ldr r2, .L1725+4
- ldr r1, [r3, #-1708]
+ ldr r3, .L1717
+ ldr r2, .L1717+4
+ ldr r1, [r3, #-1700]
cmp r1, r2
bxne lr
- ldr r2, .L1725+8
+ ldr r2, .L1717+8
mov r0, #0
mov r1, #1
- str r2, [r3, #-1704]
- ldr r2, [r3, #-1812]
- str r2, [r3, #-1620]
- ldr r2, [r3, #-1808]
- str r2, [r3, #-1616]
- ldr r2, [r3, #-1816]
- str r2, [r3, #-1700]
- ldr r2, [r3, #-1828]
str r2, [r3, #-1696]
- ldr r2, [r3, #-1836]
+ ldr r2, [r3, #-1808]
+ str r2, [r3, #-1612]
+ ldr r2, [r3, #-1804]
+ str r2, [r3, #-1608]
+ ldr r2, [r3, #-1812]
str r2, [r3, #-1692]
- ldr r2, [r3, #-1820]
+ ldr r2, [r3, #-1824]
str r2, [r3, #-1688]
- ldr r2, [r3, #-1792]
- str r2, [r3, #-1680]
- ldr r2, .L1725+12
- ldr r2, [r2, #4052]
- str r2, [r3, #-1676]
ldr r2, [r3, #-1832]
+ str r2, [r3, #-1684]
+ ldr r2, [r3, #-1816]
+ str r2, [r3, #-1680]
+ ldr r2, [r3, #-1788]
str r2, [r3, #-1672]
- ldr r2, [r3, #-1824]
+ ldr r2, .L1717+12
+ ldr r2, [r2, #4056]
str r2, [r3, #-1668]
- ldr r2, [r3, #-1784]
+ ldr r2, [r3, #-1828]
str r2, [r3, #-1664]
- ldr r2, [r3, #-1780]
+ ldr r2, [r3, #-1820]
str r2, [r3, #-1660]
- ldr r2, [r3, #-1712]
- str r2, [r3, #-1648]
- ldr r2, [r3, #-996]
- str r2, [r3, #-1644]
- ldr r2, .L1725+16
+ ldr r2, [r3, #-1780]
+ str r2, [r3, #-1656]
+ ldr r2, [r3, #-1776]
+ str r2, [r3, #-1652]
+ ldr r2, [r3, #-1704]
+ str r2, [r3, #-1640]
+ ldr r2, [r3, #-988]
+ str r2, [r3, #-1636]
+ ldr r2, .L1717+16
b FtlVendorPartWrite
-.L1726:
+.L1718:
.align 2
-.L1725:
+.L1717:
.word .LANCHOR2
.word 1179929683
- .word 1342177360
+ .word 1342177363
.word .LANCHOR0
- .word .LANCHOR2-1708
+ .word .LANCHOR2-1700
.fnend
.size Ftl_save_ext_data, .-Ftl_save_ext_data
.align 2
@@ -15090,42 +15022,42 @@ FtlEctTblFlush:
@ frame_needed = 0, uses_anonymous_args = 0
stmfd sp!, {r3, lr}
.save {r3, lr}
- ldr r3, .L1734
- ldr r1, .L1734+4
- ldr r3, [r3, #3840]
+ ldr r3, .L1726
+ ldr r1, .L1726+4
+ ldr r3, [r3, #3844]
cmp r3, #0
moveq r2, #32
- beq .L1728
- ldr r2, [r1, #-1780]
+ beq .L1720
+ ldr r2, [r1, #-1776]
cmp r2, #39
movls r2, #4
movhi r2, #32
-.L1728:
- mov r3, #296
+.L1720:
+ mov r3, #304
ldrh r1, [r1, r3]
cmp r1, #31
addls r1, r1, #1
- ldrls r2, .L1734+4
+ ldrls r2, .L1726+4
strlsh r1, [r2, r3] @ movhi
movls r2, #1
cmp r0, #0
- ldr r3, .L1734+4
- bne .L1730
- ldr r1, [r3, #-916]
+ ldr r3, .L1726+4
+ bne .L1722
+ ldr r1, [r3, #-908]
ldr r0, [r1, #20]
ldr r1, [r1, #16]
add r2, r2, r0
cmp r1, r2
- bcc .L1731
-.L1730:
- ldr r2, [r3, #-916]
+ bcc .L1723
+.L1722:
+ ldr r2, [r3, #-908]
mov r0, #64
ldr r1, [r2, #16]
str r1, [r2, #20]
- ldr r1, .L1734+8
+ ldr r1, .L1726+8
str r1, [r2, #0]
- ldr r1, .L1734+12
- ldr r2, [r3, #-916]
+ ldr r1, .L1726+12
+ ldr r2, [r3, #-908]
ldrh r1, [r3, r1]
mov r3, r1, asl #9
str r3, [r2, #12]
@@ -15136,16 +15068,16 @@ FtlEctTblFlush:
str r3, [r2, #4]
bl FtlVendorPartWrite
bl Ftl_save_ext_data
-.L1731:
+.L1723:
mov r0, #0
ldmfd sp!, {r3, pc}
-.L1735:
+.L1727:
.align 2
-.L1734:
+.L1726:
.word .LANCHOR0
.word .LANCHOR2
.word 1112818501
- .word -920
+ .word -912
.fnend
.size FtlEctTblFlush, .-FtlEctTblFlush
.align 2
@@ -15159,195 +15091,230 @@ FtlMapTblRecovery:
.save {r4, r5, r6, r7, r8, r9, sl, fp, lr}
.pad #28
sub sp, sp, #28
- ldr r3, [r0, #16]
+ ldr r3, [r0, #12]
mov r4, r0
- ldr r7, [r0, #24]
+ ldrh sl, [r0, #6]
mov r1, #0
- ldrh r8, [r0, #6]
- mov fp, #0
+ ldr r9, [r0, #24]
+ str r3, [sp, #4]
+ ldr r3, [r0, #16]
+ mov r2, sl, asl #2
+ ldr r7, .L1750
str r3, [sp, #16]
ldrh r3, [r0, #8]
- mov sl, r7
- ldr r9, [r0, #12]
- mov r2, r8, asl #2
- mov r0, r7
+ mov r0, r9
str r3, [sp, #8]
bl ftl_memset
- ldr r3, .L1756
- str fp, [r4, #32]
- str fp, [r4, #28]
- ldr r2, [r3, #-956]
- ldr r5, [r3, #-932]
- str r2, [r3, #192]
- str r5, [r3, #196]
+ ldr r3, .L1750+4
+ ldr r2, [r3, #-948]
+ ldr r5, [r3, #-924]
+ str r2, [r3, #200]
+ mov r2, #1
+ str r5, [r3, #204]
mvn r3, #0
strh r3, [r4, #0] @ movhi
strh r3, [r4, #2] @ movhi
- mov r3, #1
- str r3, [r4, #36]
+ mov r3, #0
+ str r3, [r4, #32]
+ str r3, [r4, #28]
+ str r3, [sp, #0]
ldr r3, [sp, #8]
+ str r2, [r4, #36]
sub r3, r3, #1
str r3, [sp, #12]
- ldr r3, .L1756+4
- b .L1737
-.L1750:
- ldr r0, [sp, #12]
- cmp r2, r0
- mov r2, r2, asl #1
- bne .L1738
- ldrh r0, [r9, r2]
+ b .L1729
+.L1744:
+ ldr r1, [sp, #12]
+ cmp r3, r1
+ mov r3, r3, asl #1
+ bne .L1730
+ ldr r1, [sp, #4]
+ mov r7, #0
+ ldr r2, [sp, #4]
+ ldr r6, .L1750+4
+ ldrh r0, [r1, r3]
mov r1, #1
- add r3, r9, r2
- str r3, [sp, #8]
+ add r2, r2, r3
+ str r2, [sp, #8]
bl FtlGetLastWrittenPage
ldr r1, [sp, #12]
ldr r2, [sp, #16]
- mov r7, sl
- strh fp, [r4, #0] @ movhi
- mov sl, #0
- ldr r6, .L1756
uxth r0, r0
add r3, r0, #1
strh r3, [r4, #2] @ movhi
+ ldr r3, [sp, #0]
+ sxth r8, r0
+ add r8, r8, #1
+ strh r3, [r4, #0] @ movhi
ldr r3, [r2, r1, asl #2]
- sxth r9, r0
- add r9, r9, #1
str r3, [r4, #28]
- b .L1739
-.L1741:
- ldr r0, [sp, #8]
+ b .L1731
+.L1734:
+ ldr r1, [sp, #8]
+ ldr r0, .L1750+8
+ ldrh r2, [r1, #0]
mov r1, #1
- ldrh r2, [r0, #0]
- ldr r0, .L1756+8
orr r3, r3, r2, asl #10
mov r2, r1
- str r3, [r6, #188]
+ str r3, [r6, #196]
bl FlashReadPages
- ldr r3, [r6, #184]
+ ldr r3, .L1750
+ ldrb r2, [r3, #852] @ zero_extendqisi2
+ cmp r2, #0
+ beq .L1732
+ ldr r2, [r6, #204]
+ ldr fp, [r2, #12]
+ cmp fp, #0
+ beq .L1732
+ movw r2, #3928
+ ldr r0, [r6, #200]
+ ldrh r1, [r3, r2]
+ bl js_hash
+ cmp fp, r0
+ mvnne r3, #0
+ strne r3, [r6, #192]
+.L1732:
+ ldr r3, [r6, #192]
cmn r3, #1
- beq .L1740
+ beq .L1733
ldrh r3, [r5, #8]
- cmp r3, r8
- bcs .L1740
+ cmp r3, sl
+ bcs .L1733
ldrh r2, [r4, #4]
ldrh r1, [r5, #0]
cmp r1, r2
- ldreq r2, [r6, #188]
- streq r2, [r7, r3, asl #2]
-.L1740:
- add sl, sl, #1
- uxth sl, sl
-.L1739:
- sxth r3, sl
- cmp r3, r9
- blt .L1741
- b .L1742
-.L1738:
- ldr r6, .L1756
- movw r7, #3918
- add r0, r6, #184
- ldr r1, [r6, #-956]
- str r1, [r6, #192]
- add r1, r9, r2
- str r1, [sp, #20]
- ldrh r1, [r9, r2]
- ldrh r2, [r3, r7]
- sub r2, r2, #1
- orr r2, r2, r1, asl #10
- mov r1, #1
- str r2, [r6, #188]
- mov r2, r1
- str r3, [sp, #4]
- bl FlashReadPages
- ldr r2, [r6, #184]
- ldr r3, [sp, #4]
- cmn r2, #1
- beq .L1753
- ldrh r1, [r5, #0]
- ldrh r2, [r4, #4]
- cmp r1, r2
- bne .L1753
- ldrh r1, [r5, #8]
- movw r2, #64245
- cmp r1, r2
- bne .L1753
- b .L1754
-.L1746:
- ldr r0, [r6, #-956]
- mov ip, r1, asl #3
- add r2, r2, #1
- ldr r1, [r0, r1, asl #3]
- uxth r2, r2
- uxth r1, r1
- cmp r1, r8
- addcc r0, r0, ip
- ldrcc r0, [r0, #4]
- strcc r0, [sl, r1, asl #2]
- b .L1744
-.L1754:
- mov r2, #0
-.L1744:
- ldrh r0, [r3, r7]
- sxth r1, r2
- sub r0, r0, #1
- cmp r1, r0
- blt .L1746
- b .L1747
-.L1749:
- ldr r0, [sp, #20]
- ldrh r1, [r0, #0]
- ldr r0, .L1756+8
- orr r2, r2, r1, asl #10
+ ldreq r2, [r6, #196]
+ streq r2, [r9, r3, asl #2]
+.L1733:
+ add r7, r7, #1
+ uxth r7, r7
+.L1731:
+ sxth r3, r7
+ cmp r3, r8
+ blt .L1734
+ b .L1735
+.L1730:
+ ldr r6, .L1750+4
+ mov r8, #3920
+ ldr r1, [sp, #4]
+ add r0, r6, #192
+ ldr r2, [r6, #-948]
+ str r2, [r6, #200]
+ ldr r2, [sp, #4]
+ add r2, r2, r3
+ str r2, [sp, #20]
+ ldrh r2, [r1, r3]
mov r1, #1
- str r2, [r7, #188]
+ ldrh r3, [r7, r8]
+ sub r3, r3, #1
+ orr r3, r3, r2, asl #10
mov r2, r1
- str r3, [sp, #4]
+ str r3, [r6, #196]
bl FlashReadPages
- ldr r2, [r7, #184]
- ldr r3, [sp, #4]
- cmn r2, #1
- beq .L1748
+ ldr r3, [r6, #192]
+ cmn r3, #1
+ beq .L1747
+ ldrh r2, [r5, #0]
+ ldrh r3, [r4, #4]
+ cmp r2, r3
+ bne .L1747
ldrh r2, [r5, #8]
- cmp r2, r8
- bcs .L1748
- ldrh r1, [r4, #4]
- ldrh r0, [r5, #0]
- cmp r0, r1
- ldreq r1, [r7, #188]
- streq r1, [sl, r2, asl #2]
+ movw r3, #64245
+ cmp r2, r3
+ bne .L1747
+ b .L1748
+.L1739:
+ ldr r1, [r6, #-948]
+ mov r0, r2, asl #3
+ add r3, r3, #1
+ ldr r2, [r1, r2, asl #3]
+ uxth r3, r3
+ uxth r2, r2
+ cmp r2, sl
+ addcc r1, r1, r0
+ ldrcc r1, [r1, #4]
+ strcc r1, [r9, r2, asl #2]
+ b .L1737
.L1748:
- add r6, r6, #1
- uxth r6, r6
- b .L1755
-.L1753:
- ldr r7, .L1756
- mov r6, #0
-.L1755:
- movw r1, #3918
- sxth r2, r6
- ldrh r1, [r3, r1]
- cmp r2, r1
- blt .L1749
-.L1747:
- add fp, fp, #1
- uxth fp, fp
+ mov r3, #0
.L1737:
- ldr r1, [sp, #8]
- sxth r2, fp
+ ldrh r1, [r7, r8]
+ sxth r2, r3
+ sub r1, r1, #1
cmp r2, r1
- blt .L1750
+ blt .L1739
+ b .L1740
+.L1743:
+ ldr r1, [sp, #20]
+ ldr r0, .L1750+8
+ ldrh r2, [r1, #0]
+ mov r1, #1
+ orr r3, r3, r2, asl #10
+ mov r2, r1
+ str r3, [r6, #196]
+ bl FlashReadPages
+ ldrb r3, [r7, #852] @ zero_extendqisi2
+ cmp r3, #0
+ beq .L1741
+ ldr r3, [r6, #204]
+ ldr fp, [r3, #12]
+ cmp fp, #0
+ beq .L1741
+ movw r3, #3928
+ ldr r0, [r6, #200]
+ ldrh r1, [r7, r3]
+ bl js_hash
+ cmp fp, r0
+ mvnne r3, #0
+ strne r3, [r6, #192]
+.L1741:
+ ldr r3, [r6, #192]
+ cmn r3, #1
+ beq .L1742
+ ldrh r3, [r5, #8]
+ cmp r3, sl
+ bcs .L1742
+ ldrh r2, [r4, #4]
+ ldrh r1, [r5, #0]
+ cmp r1, r2
+ ldreq r2, [r6, #196]
+ streq r2, [r9, r3, asl #2]
.L1742:
+ add r8, r8, #1
+ uxth r8, r8
+ b .L1749
+.L1747:
+ ldr r6, .L1750+4
+ mov r8, #0
+.L1749:
+ mov r2, #3920
+ sxth r3, r8
+ ldrh r2, [r7, r2]
+ cmp r3, r2
+ blt .L1743
+.L1740:
+ ldr r2, [sp, #0]
+ add r3, r2, #1
+ uxth r3, r3
+ str r3, [sp, #0]
+.L1729:
+ ldr r1, [sp, #0]
+ ldr r2, [sp, #8]
+ sxth r3, r1
+ cmp r3, r2
+ blt .L1744
+.L1735:
mov r0, r4
bl ftl_free_no_use_map_blk
- ldr r1, .L1756+4
- movw r3, #3918
+ ldr r1, .L1750
+ mov r3, #3920
ldrh r2, [r4, #2]
ldrh r3, [r1, r3]
cmp r2, r3
- bne .L1751
+ bne .L1745
mov r0, r4
bl ftl_map_blk_alloc_new_blk
-.L1751:
+.L1745:
mov r0, r4
bl ftl_map_blk_gc
mov r0, r4
@@ -15355,12 +15322,12 @@ FtlMapTblRecovery:
mov r0, #0
add sp, sp, #28
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L1757:
+.L1751:
.align 2
-.L1756:
- .word .LANCHOR2
+.L1750:
.word .LANCHOR0
- .word .LANCHOR2+184
+ .word .LANCHOR2
+ .word .LANCHOR2+192
.fnend
.size FtlMapTblRecovery, .-FtlMapTblRecovery
.align 2
@@ -15373,14 +15340,14 @@ FtlLoadMapInfo:
stmfd sp!, {r3, lr}
.save {r3, lr}
bl FtlL2PDataInit
- ldr r0, .L1759
+ ldr r0, .L1753
bl FtlMapTblRecovery
mov r0, #0
ldmfd sp!, {r3, pc}
-.L1760:
+.L1754:
.align 2
-.L1759:
- .word .LANCHOR2-1084
+.L1753:
+ .word .LANCHOR2-1076
.fnend
.size FtlLoadMapInfo, .-FtlLoadMapInfo
.align 2
@@ -15392,38 +15359,38 @@ FtlLoadVonderInfo:
@ frame_needed = 0, uses_anonymous_args = 0
stmfd sp!, {r3, lr}
.save {r3, lr}
- mov r2, #3936
- ldr r3, .L1762
- ldr r0, .L1762+4
+ movw r2, #3940
+ ldr r3, .L1756
+ ldr r0, .L1756+4
ldrh r1, [r3, r2]
- movw r2, #262
+ movw r2, #270
strh r1, [r0, r2] @ movhi
- mov r2, #256
- ldr r1, .L1762+8
+ mov r2, #264
+ ldr r1, .L1756+8
strh r1, [r0, r2] @ movhi
- movw r2, #3962
+ movw r2, #3966
ldrh r1, [r3, r2]
- mov r2, #260
+ mov r2, #268
strh r1, [r0, r2] @ movhi
- movw r2, #3938
+ movw r2, #3942
ldrh r1, [r3, r2]
- sub r2, r2, #3680
- ldr r3, [r3, #3964]
+ movw r2, #266
+ ldr r3, [r3, #3968]
strh r1, [r0, r2] @ movhi
- str r3, [r0, #264]
- ldr r3, [r0, #-904]
- str r3, [r0, #268]
- ldr r3, [r0, #-908]
str r3, [r0, #272]
- ldr r3, [r0, #-900]
+ ldr r3, [r0, #-896]
str r3, [r0, #276]
- add r0, r0, #252
+ ldr r3, [r0, #-900]
+ str r3, [r0, #280]
+ ldr r3, [r0, #-892]
+ str r3, [r0, #284]
+ add r0, r0, #260
bl FtlMapTblRecovery
mov r0, #0
ldmfd sp!, {r3, pc}
-.L1763:
+.L1757:
.align 2
-.L1762:
+.L1756:
.word .LANCHOR0
.word .LANCHOR2
.word -3962
@@ -15438,22 +15405,22 @@ FlashLoadFactorBbt:
@ frame_needed = 0, uses_anonymous_args = 0
stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
.save {r4, r5, r6, r7, r8, r9, sl, fp, lr}
- movw r2, #3062
- ldr r9, .L1773
- movw r3, #3060
- ldr r4, .L1773+4
+ movw r2, #3058
+ ldr r9, .L1767
+ mov r3, #3056
+ ldr r4, .L1767+4
.pad #52
sub sp, sp, #52
mov r1, #0
mvn r7, #0
ldrh r3, [r9, r3]
- add r0, r4, #236
+ add r0, r4, #244
ldrh r8, [r9, r2]
mov r2, #16
mov r6, #0
mul r8, r8, r3
bl ftl_memset
- ldr r3, [r4, #232]
+ ldr r3, [r4, #240]
str r6, [sp, #20]
mov r4, r6
str r3, [sp, #24]
@@ -15461,14 +15428,14 @@ FlashLoadFactorBbt:
add r3, r8, r7
uxth r3, r3
str r3, [sp, #4]
- b .L1765
-.L1771:
+ b .L1759
+.L1765:
ldr r5, [sp, #4]
sub r3, r8, #12
mul fp, r8, r4
- ldr sl, .L1773+4
- b .L1766
-.L1769:
+ ldr sl, .L1767+4
+ b .L1760
+.L1763:
add r2, fp, r5
mov r1, #1
add r0, sp, #12
@@ -15480,47 +15447,47 @@ FlashLoadFactorBbt:
ldr r2, [sp, #12]
ldr r3, [sp, #0]
cmn r2, #1
- beq .L1767
- ldr r2, [sl, #232]
+ beq .L1761
+ ldr r2, [sl, #240]
ldrh r1, [r2, #0]
movw r2, #61664
cmp r1, r2
- bne .L1767
- ldr r0, .L1773+8
+ bne .L1761
+ ldr r0, .L1767+8
mov r1, r4
mov r2, r5
add r6, r6, #1
bl printk
- ldr r3, .L1773+4
+ ldr r3, .L1767+4
uxth r6, r6
add r3, r3, r4, asl #1
- strh r5, [r3, #236] @ movhi
- b .L1768
-.L1767:
+ strh r5, [r3, #244] @ movhi
+ b .L1762
+.L1761:
sub r5, r5, #1
uxth r5, r5
-.L1766:
+.L1760:
cmp r5, r3
- bgt .L1769
-.L1768:
+ bgt .L1763
+.L1762:
ldrb r3, [r9, #3762] @ zero_extendqisi2
add r4, r4, #1
cmp r3, r6
uxtb r4, r4
moveq r7, #0
-.L1765:
+.L1759:
ldrb r3, [r9, #3762] @ zero_extendqisi2
cmp r3, r4
- bhi .L1771
+ bhi .L1765
mov r0, r7
add sp, sp, #52
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L1774:
+.L1768:
.align 2
-.L1773:
+.L1767:
.word .LANCHOR0
.word .LANCHOR2
- .word .LC129
+ .word .LC128
.fnend
.size FlashLoadFactorBbt, .-FlashLoadFactorBbt
.align 2
@@ -15532,27 +15499,27 @@ dump_map_info:
@ frame_needed = 0, uses_anonymous_args = 0
stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
.save {r4, r5, r6, r7, r8, r9, sl, fp, lr}
- mov r3, #3856
- ldr r5, .L1788
+ movw r3, #3860
+ ldr r5, .L1782
.pad #36
sub sp, sp, #36
ldrh r6, [r5, r3]
- b .L1776
-.L1778:
+ b .L1770
+.L1772:
add r3, r5, r7
mov r1, r6
- ldrb r0, [r3, #3874] @ zero_extendqisi2
+ ldrb r0, [r3, #3878] @ zero_extendqisi2
bl V2P_block
str r0, [sp, #28]
bl FtlBbmIsBadBlock
ldr r3, [sp, #28]
cmp r0, #0
- bne .L1777
- ldr r2, [r8, #-968]
+ bne .L1771
+ ldr r2, [r8, #-960]
mov r3, r3, asl #10
mla r2, r9, r4, r2
str r3, [r2, #4]
- ldr r3, [r8, #-1172]
+ ldr r3, [r8, #-1164]
str r3, [r2, #8]
ldrh r3, [r5, sl]
mul r3, r3, r4
@@ -15561,36 +15528,36 @@ dump_map_info:
add r1, r3, #3
cmp r3, #0
movlt r3, r1
- ldr r1, [r8, #-1168]
+ ldr r1, [r8, #-1160]
bic r3, r3, #3
add r3, r1, r3
str r3, [r2, #12]
-.L1777:
+.L1771:
add r7, r7, #1
uxth r7, r7
- b .L1781
-.L1786:
- ldr r8, .L1788+4
+ b .L1775
+.L1780:
+ ldr r8, .L1782+4
mov r4, #0
mov r7, r4
- movw fp, #3848
+ movw fp, #3852
mov r9, #36
- movw sl, #3928
-.L1781:
+ movw sl, #3930
+.L1775:
ldrh r3, [r5, fp]
cmp r3, r7
- bhi .L1778
+ bhi .L1772
cmp r4, #0
- beq .L1779
- ldr sl, .L1788+4
+ beq .L1773
+ ldr sl, .L1782+4
mov r1, r4
mov r2, #1
mov r7, #0
mov r8, r7
- ldr r0, [sl, #-968]
+ ldr r0, [sl, #-960]
bl FlashReadPages
-.L1780:
- ldr r1, [sl, #-968]
+.L1774:
+ ldr r1, [sl, #-960]
add r8, r8, #1
add r1, r1, r7
uxth r8, r8
@@ -15607,39 +15574,39 @@ dump_map_info:
ldr r0, [r1, #0]
str r0, [sp, #12]
ldr r1, [r1, #4]
- ldr r0, .L1788+8
+ ldr r0, .L1782+8
str r1, [sp, #16]
ubfx r1, r2, #10, #16
ldr r3, [r3, #0]
bl printk
cmp r8, r4
- bne .L1780
-.L1779:
+ bne .L1774
+.L1773:
add r6, r6, #1
uxth r6, r6
-.L1776:
- movw r2, #3858
+.L1770:
+ movw r2, #3862
ldrh r3, [r5, r2]
cmp r3, r6
- bhi .L1786
+ bhi .L1780
mov r5, #0
- ldr r4, .L1788+4
- ldr r8, .L1788
- b .L1782
-.L1783:
- ldr r2, [r4, #-1036]
+ ldr r4, .L1782+4
+ ldr sl, .L1782+12
+ b .L1776
+.L1777:
+ ldr r2, [r4, #-1028]
mov r1, #1
- ldr r0, .L1788+12
+ ldr r0, .L1782+16
add r6, r6, #1
ldrh r2, [r2, r7]
uxth r6, r6
orr r3, r3, r2, asl #10
mov r2, r1
- str r3, [r4, #188]
+ str r3, [r4, #196]
bl FlashReadPages
- ldr r3, [r4, #196]
- ldr r1, [r4, #-1036]
- ldr r2, [r4, #192]
+ ldr r3, [r4, #204]
+ ldr r1, [r4, #-1028]
+ ldr r2, [r4, #200]
ldr r0, [r3, #0]
ldrh r1, [r1, r7]
str r0, [sp, #0]
@@ -15648,64 +15615,64 @@ dump_map_info:
ldr r0, [r3, #8]
str r0, [sp, #8]
ldr r3, [r3, #12]
- ldr r0, .L1788+16
+ ldr r0, .L1782+20
str r3, [sp, #12]
ldr r3, [r2, #0]
str r3, [sp, #16]
ldr r3, [r2, #4]
str r3, [sp, #20]
- ldr r2, [r4, #184]
- ldr r3, [r4, #188]
+ ldr r2, [r4, #192]
+ ldr r3, [r4, #196]
bl printk
-.L1785:
- movw r2, #3918
+.L1779:
+ mov r2, #3920
sxth r3, r6
ldrh r2, [r8, r2]
cmp r3, r2
- blt .L1783
+ blt .L1777
add r5, r5, #1
uxth r5, r5
-.L1782:
- ldr r3, .L1788+20
+.L1776:
+ ldrh r3, [r4, sl]
sxth r7, r5
- ldr r6, .L1788+4
- ldrh r3, [r4, r3]
+ ldr r6, .L1782+4
cmp r7, r3
movlt r7, r7, asl #1
movlt r6, #0
- blt .L1785
-.L1784:
- ldr r4, .L1788
- mov r5, #3952
- ldr r1, [r6, #-1036]
+ ldrlt r8, .L1782
+ blt .L1779
+.L1778:
+ ldr r4, .L1782
+ movw r5, #3956
+ ldr r1, [r6, #-1028]
mov r2, #2
- ldr r0, .L1788+24
- ldr r3, [r4, #3944]
+ ldr r0, .L1782+24
+ ldr r3, [r4, #3948]
bl rknand_print_hex
- ldr r1, [r6, #-1028]
+ ldr r1, [r6, #-1020]
ldrh r3, [r4, r5]
mov r2, #4
- ldr r0, .L1788+28
+ ldr r0, .L1782+28
bl rknand_print_hex
- ldr r0, .L1788+32
- ldr r1, [r6, #-896]
+ ldr r0, .L1782+32
+ ldr r1, [r6, #-888]
mov r2, #4
ldrh r3, [r4, r5]
add sp, sp, #36
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
b rknand_print_hex
-.L1789:
+.L1783:
.align 2
-.L1788:
+.L1782:
.word .LANCHOR0
.word .LANCHOR2
+ .word .LC129
+ .word -1032
+ .word .LANCHOR2+192
+ .word .LC107
.word .LC130
- .word .LANCHOR2+184
- .word .LC108
- .word -1040
.word .LC131
.word .LC132
- .word .LC133
.fnend
.size dump_map_info, .-dump_map_info
.align 2
@@ -15718,27 +15685,27 @@ FtlDumpSysBlock:
stmfd sp!, {r4, r5, r6, r7, r8, lr}
.save {r4, r5, r6, r7, r8, lr}
mov r6, r0
- ldr r4, .L1794
+ ldr r4, .L1788
.pad #24
sub sp, sp, #24
mov r7, r0, asl #10
mov r5, #0
- ldr r8, .L1794+4
- ldr r3, [r4, #-956]
- str r3, [r4, #192]
- ldr r3, [r4, #-932]
- str r3, [r4, #196]
- b .L1791
-.L1793:
+ ldr r8, .L1788+4
+ ldr r3, [r4, #-948]
+ str r3, [r4, #200]
+ ldr r3, [r4, #-924]
+ str r3, [r4, #204]
+ b .L1785
+.L1787:
mov r1, #1
- ldr r0, .L1794+8
+ ldr r0, .L1788+8
mov r2, r1
orr r3, r3, r7
- str r3, [r4, #188]
+ str r3, [r4, #196]
bl FlashReadPages
- ldr r3, [r4, #196]
+ ldr r3, [r4, #204]
mov r1, r6
- ldr r0, .L1794+12
+ ldr r0, .L1788+12
ldr r2, [r3, #0]
str r2, [sp, #0]
ldr r2, [r3, #4]
@@ -15746,41 +15713,41 @@ FtlDumpSysBlock:
ldr r2, [r3, #8]
str r2, [sp, #8]
ldr r3, [r3, #12]
- ldr r2, [r4, #184]
+ ldr r2, [r4, #192]
str r3, [sp, #12]
- ldr r3, [r4, #192]
+ ldr r3, [r4, #200]
ldr r3, [r3, #0]
str r3, [sp, #16]
- ldr r3, [r4, #188]
- bl printk
ldr r3, [r4, #196]
+ bl printk
+ ldr r3, [r4, #204]
ldr r3, [r3, #0]
cmn r3, #1
- beq .L1792
- ldr r0, .L1794+16
+ beq .L1786
+ ldr r0, .L1788+16
mov r2, #4
- ldr r1, [r4, #-956]
+ ldr r1, [r4, #-948]
mov r3, #768
bl rknand_print_hex
-.L1792:
+.L1786:
add r5, r5, #1
uxth r5, r5
-.L1791:
- movw r2, #3918
+.L1785:
+ mov r2, #3920
sxth r3, r5
ldrh r2, [r8, r2]
cmp r3, r2
- blt .L1793
+ blt .L1787
add sp, sp, #24
ldmfd sp!, {r4, r5, r6, r7, r8, pc}
-.L1795:
+.L1789:
.align 2
-.L1794:
+.L1788:
.word .LANCHOR2
.word .LANCHOR0
- .word .LANCHOR2+184
+ .word .LANCHOR2+192
+ .word .LC133
.word .LC134
- .word .LC135
.fnend
.size FtlDumpSysBlock, .-FtlDumpSysBlock
.align 2
@@ -15790,31 +15757,31 @@ FlashReadFacBbtData:
.fnstart
@ args = 0, pretend = 0, frame = 40
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L1806
+ ldr r3, .L1800
stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
.save {r4, r5, r6, r7, r8, r9, sl, lr}
mov r6, r1
mov r9, r2
- movw r1, #3062
- movw r2, #3060
+ movw r1, #3058
+ mov r2, #3056
ldrh r8, [r3, r1]
ldrh r2, [r3, r2]
.pad #40
sub sp, sp, #40
- ldr r7, .L1806+4
+ ldr r7, .L1800+4
mov r4, r0
mul r8, r8, r2
- ldr r3, [r7, #152]
+ ldr r3, [r7, #160]
str r3, [sp, #12]
- ldr r3, [r7, #232]
+ ldr r3, [r7, #240]
uxth r8, r8
sub r5, r8, #1
mul sl, r8, r6
str r3, [sp, #16]
uxth r5, r5
sub r8, r8, #16
- b .L1797
-.L1803:
+ b .L1791
+.L1797:
mov r1, #1
add r3, r5, sl
add r0, sp, #4
@@ -15824,22 +15791,22 @@ FlashReadFacBbtData:
bl FlashReadPages
ldr r3, [sp, #4]
cmn r3, #1
- beq .L1798
- ldr r3, [r7, #232]
+ beq .L1792
+ ldr r3, [r7, #240]
ldrh r2, [r3, #0]
movw r3, #61664
cmp r2, r3
- bne .L1798
+ bne .L1792
cmp r4, #0
moveq r0, r4
- beq .L1799
+ beq .L1793
cmp r6, #0
- ldreq r3, .L1806+4
+ ldreq r3, .L1800+4
moveq r0, #1
- beq .L1800
- b .L1801
-.L1802:
- ldr r2, [r3, #152]
+ beq .L1794
+ b .L1795
+.L1796:
+ ldr r2, [r3, #160]
ubfx r1, r6, #5, #16
and lr, r6, #31
add r6, r6, #1
@@ -15847,39 +15814,39 @@ FlashReadFacBbtData:
uxth r6, r6
orr ip, ip, r0, asl lr
str ip, [r2, r1, asl #2]
-.L1800:
- ldr r2, [r3, #160]
+.L1794:
+ ldr r2, [r3, #168]
cmp r6, r2
- bcc .L1802
-.L1801:
- ldr r3, .L1806+4
+ bcc .L1796
+.L1795:
+ ldr r3, .L1800+4
mov r2, r9
mov r0, r4
- ldr r1, [r3, #152]
+ ldr r1, [r3, #160]
bl memcpy
mov r2, #4
- ldr r0, .L1806+8
+ ldr r0, .L1800+8
mov r1, r4
mov r3, r2
bl rknand_print_hex
mov r0, #0
- b .L1799
-.L1798:
+ b .L1793
+.L1792:
sub r5, r5, #1
uxth r5, r5
-.L1797:
+.L1791:
cmp r5, r8
- bgt .L1803
+ bgt .L1797
mvn r0, #0
-.L1799:
+.L1793:
add sp, sp, #40
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
-.L1807:
+.L1801:
.align 2
-.L1806:
+.L1800:
.word .LANCHOR0
.word .LANCHOR2
- .word .LC136
+ .word .LC135
.fnend
.size FlashReadFacBbtData, .-FlashReadFacBbtData
.align 2
@@ -15889,30 +15856,30 @@ FlashGetBadBlockList:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L1815
+ ldr r3, .L1809
stmfd sp!, {r4, r5, r6, r7, r8, lr}
.save {r4, r5, r6, r7, r8, lr}
mov r5, r0
ldr r3, [r3, #3624]
- ldr r6, .L1815+4
+ ldr r6, .L1809+4
ldrb r2, [r3, #13] @ zero_extendqisi2
ldrh r4, [r3, #14]
- ldr r0, [r6, #140]
+ ldr r0, [r6, #148]
mul r4, r4, r2
uxth r4, r4
add r2, r4, #7
mov r2, r2, lsr #3
bl FlashReadFacBbtData
cmn r0, #1
- beq .L1814
+ beq .L1808
mov r2, #0
mov r0, r4, lsr #4
mov r3, r2
sub r4, r4, #1
mov r1, #1
- b .L1810
-.L1812:
- ldr ip, [r6, #140]
+ b .L1804
+.L1806:
+ ldr ip, [r6, #148]
mov r8, r2, lsr #5
and r7, r2, #31
ldr ip, [ip, r8, asl #2]
@@ -15922,24 +15889,24 @@ FlashGetBadBlockList:
uxthne r3, r3
strneh r2, [r5, ip] @ movhi
cmp r3, r0
- bcs .L1814
+ bcs .L1808
add r2, r2, #1
uxth r2, r2
-.L1810:
+.L1804:
cmp r2, r4
- blt .L1812
- b .L1809
-.L1814:
+ blt .L1806
+ b .L1803
+.L1808:
mov r3, #0
-.L1809:
+.L1803:
mov r3, r3, asl #1
mvn r2, #0
mov r0, #0
strh r2, [r5, r3] @ movhi
ldmfd sp!, {r4, r5, r6, r7, r8, pc}
-.L1816:
+.L1810:
.align 2
-.L1815:
+.L1809:
.word .LANCHOR0
.word .LANCHOR2
.fnend
@@ -15953,65 +15920,65 @@ FtlMakeBbt:
@ frame_needed = 0, uses_anonymous_args = 0
stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
.save {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
- ldr r6, .L1835
- ldr r5, [r6, #4040]
+ ldr r6, .L1829
+ ldr r5, [r6, #4044]
cmp r5, #0
- bne .L1818
- ldr r8, .L1835+4
+ bne .L1812
+ add r8, r6, #3984
bl FtlBbtMemInit
- ldr r4, .L1835+8
- bl FtlLoadFactoryBbt
add sl, r8, #12
- b .L1819
-.L1825:
+ bl FtlLoadFactoryBbt
+ ldr r4, .L1829+4
+ b .L1813
+.L1819:
ldrh r3, [sl], #2
movw r2, #65535
- ldr r0, [r4, #-956]
- movw fp, #3912
- ldr r9, [r4, #-932]
+ ldr r0, [r4, #-948]
+ movw fp, #3916
+ ldr r9, [r4, #-924]
cmp r3, r2
- str r0, [r4, #192]
- str r9, [r4, #196]
- beq .L1820
+ str r0, [r4, #200]
+ str r9, [r4, #204]
+ beq .L1814
ldrh r7, [r6, fp]
mov r1, #1
mov r2, r1
- ldr r0, .L1835+12
+ ldr r0, .L1829+8
mla r7, r7, r5, r3
mov r3, r7, asl #10
- str r3, [r4, #188]
+ str r3, [r4, #196]
bl FlashReadPages
ldrh r2, [r6, fp]
ldr r0, [r8, #28]
add r2, r2, #7
- ldr r1, [r4, #192]
+ ldr r1, [r4, #200]
mov r2, r2, lsr #3
bl memcpy
- b .L1821
-.L1820:
+ b .L1815
+.L1814:
mov r1, r5
bl FlashGetBadBlockList
- ldr r0, [r4, #192]
+ ldr r0, [r4, #200]
ldr r1, [r8, #28]
bl FtlBbt2Bitmap
ldrh fp, [r6, fp]
-.L1823:
+.L1817:
sub fp, fp, #1
uxth fp, fp
-.L1834:
- movw r7, #3912
+.L1828:
+ movw r7, #3916
ldrh r0, [r6, r7]
mla r0, r0, r5, fp
uxth r0, r0
bl FtlBbmIsBadBlock
cmp r0, #1
- beq .L1823
+ beq .L1817
mov r1, #0
mov r2, #16
strh fp, [sl, #-2] @ movhi
- ldr r0, [r4, #-932]
+ ldr r0, [r4, #-924]
bl ftl_memset
- ldr r3, .L1835+16
+ ldr r3, .L1829+12
strh r3, [r9, #0] @ movhi
mov r3, #0
str r3, [r9, #4]
@@ -16020,100 +15987,100 @@ FtlMakeBbt:
strh r3, [r9, #2] @ movhi
ldrh r3, [sl, #-2]
ldr r1, [r8, #28]
- ldr r0, [r4, #192]
+ ldr r0, [r4, #200]
mla r7, r7, r5, r3
mov r3, r7, asl #10
- str r3, [r4, #188]
- ldr r3, .L1835+20
+ str r3, [r4, #196]
+ ldr r3, .L1829+16
ldrh r2, [r4, r3]
mov r2, r2, asl #2
bl memcpy
mov r1, #1
mov r2, r1
- ldr r0, .L1835+12
+ ldr r0, .L1829+8
bl FlashEraseBlocks
mov r1, #1
mov r3, r1
- ldr r0, .L1835+12
+ ldr r0, .L1829+8
mov r2, r1
bl FlashProgPages
- ldr r3, [r4, #184]
+ ldr r3, [r4, #192]
cmn r3, #1
- bne .L1821
+ bne .L1815
uxth r0, r7
bl FtlBbmMapBadBlock
- b .L1834
-.L1821:
+ b .L1828
+.L1815:
uxth r0, r7
add r5, r5, #1
bl FtlBbmMapBadBlock
add r8, r8, #4
-.L1819:
- movw r3, #3870
+.L1813:
+ movw r3, #3874
ldrh r3, [r6, r3]
cmp r5, r3
- bcc .L1825
+ bcc .L1819
mov r4, #0
- ldr r7, .L1835
- movw r6, #3930
- b .L1826
-.L1827:
+ ldr r7, .L1829
+ movw r6, #3932
+ b .L1820
+.L1821:
mov r0, r4
add r4, r4, #1
bl FtlBbmMapBadBlock
uxth r4, r4
-.L1826:
+.L1820:
ldrh r3, [r7, r6]
- ldr r5, .L1835
+ ldr r5, .L1829
cmp r3, r4
- bhi .L1827
- movw r7, #3992
- movw r6, #3980
+ bhi .L1821
+ movw r7, #3996
+ movw r6, #65535
ldrh r4, [r5, r7]
sub r4, r4, #1
uxth r4, r4
- b .L1828
-.L1833:
+ b .L1822
+.L1827:
mov r0, r4
bl FtlBbmIsBadBlock
cmp r0, #1
- beq .L1829
+ beq .L1823
mov r0, r4
bl FlashTestBlk
cmp r0, #0
- beq .L1830
+ beq .L1824
mov r0, r4
bl FtlBbmMapBadBlock
- b .L1829
-.L1830:
- ldrh r2, [r5, r6]
- movw r3, #65535
- cmp r2, r3
- streqh r4, [r5, r6] @ movhi
-.L1831:
- ldrne r2, .L1835
- movne r3, #3984
+ b .L1823
+.L1824:
+ mov r3, #3984
+ ldrh r2, [r5, r3]
+ cmp r2, r6
+ streqh r4, [r5, r3] @ movhi
+.L1825:
+ ldrne r2, .L1829
+ movwne r3, #3988
strneh r4, [r2, r3] @ movhi
- bne .L1832
-.L1829:
+ bne .L1826
+.L1823:
sub r4, r4, #1
uxth r4, r4
-.L1828:
+.L1822:
ldrh r3, [r5, r7]
sub r3, r3, #48
cmp r4, r3
- bgt .L1833
-.L1832:
- ldr r4, .L1835
- movw r6, #3980
- mov r5, #3984
+ bgt .L1827
+.L1826:
+ ldr r4, .L1829
+ mov r6, #3984
+ movw r5, #3988
mov r7, #0
- movw r8, #3982
+ movw r8, #3986
mov r2, #2
- ldr r0, [r4, #4044]
+ ldr r0, [r4, #4048]
mov r1, #1
ldrh r3, [r4, r6]
- str r7, [r4, #3988]
+ str r7, [r4, #3992]
strh r7, [r4, r8] @ movhi
mov r3, r3, asl #10
str r3, [r0, #4]
@@ -16126,27 +16093,26 @@ FtlMakeBbt:
ldrh r0, [r4, r5]
bl FtlBbmMapBadBlock
bl FtlBbmTblFlush
- ldr r3, [r4, #3988]
+ ldr r3, [r4, #3992]
ldrh r2, [r4, r5]
add r3, r3, #1
- str r3, [r4, #3988]
+ str r3, [r4, #3992]
ldrh r3, [r4, r6]
strh r7, [r4, r8] @ movhi
strh r2, [r4, r6] @ movhi
strh r3, [r4, r5] @ movhi
bl FtlBbmTblFlush
-.L1818:
+.L1812:
mov r0, #0
ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L1836:
+.L1830:
.align 2
-.L1835:
+.L1829:
.word .LANCHOR0
- .word .LANCHOR0+3980
.word .LANCHOR2
- .word .LANCHOR2+184
+ .word .LANCHOR2+192
.word -3872
- .word -1024
+ .word -1016
.fnend
.size FtlMakeBbt, .-FtlMakeBbt
.align 2
@@ -16158,97 +16124,97 @@ ftl_load_l2p_region:
stmfd sp!, {r3, r4, r5, r6, r7, lr}
.save {r3, r4, r5, r6, r7, lr}
mov r5, r0
- ldr r4, .L1842
+ ldr r4, .L1836
mov r6, #12
- ldr r3, [r4, #-1028]
+ ldr r3, [r4, #-1020]
ldr r7, [r3, r0, asl #2]
cmp r7, #0
- bne .L1838
+ bne .L1832
mul r6, r6, r1
- ldr r3, [r4, #-1852]
- ldr r2, .L1842+4
+ ldr r3, [r4, #-1848]
+ ldr r2, .L1836+4
mov r1, #255
add r3, r3, r6
ldr r0, [r3, #8]
- movw r3, #3926
+ movw r3, #3928
ldrh r2, [r2, r3]
bl ftl_memset
- ldr r3, [r4, #-1852]
+ ldr r3, [r4, #-1848]
strh r5, [r3, r6] @ movhi
- ldr r3, [r4, #-1852]
+ ldr r3, [r4, #-1848]
add r6, r3, r6
str r7, [r6, #4]
- b .L1839
-.L1838:
+ b .L1833
+.L1832:
mul r6, r6, r1
- ldr r3, [r4, #-1852]
+ ldr r3, [r4, #-1848]
mov r1, #1
- add r0, r4, #184
+ add r0, r4, #192
mov r2, r1
- str r7, [r4, #188]
+ str r7, [r4, #196]
add r3, r3, r6
ldr r3, [r3, #8]
- str r3, [r4, #192]
- ldr r3, [r4, #-932]
- str r3, [r4, #196]
+ str r3, [r4, #200]
+ ldr r3, [r4, #-924]
+ str r3, [r4, #204]
bl FlashReadPages
- ldr r3, [r4, #196]
+ ldr r3, [r4, #204]
ldrh r3, [r3, #8]
cmp r3, r5
- beq .L1840
+ beq .L1834
mov r2, r7
mov r1, r5
- ldr r0, .L1842+8
+ ldr r0, .L1836+8
bl printk
- ldr r7, .L1842+4
+ ldr r7, .L1836+4
mov r2, #4
- ldr r0, .L1842+12
+ ldr r0, .L1836+12
mov r3, r2
- ldr r1, [r4, #196]
+ ldr r1, [r4, #204]
bl rknand_print_hex
- mov r3, #3952
+ movw r3, #3956
ldrh r3, [r7, r3]
mov r2, #4
- ldr r0, .L1842+16
- ldr r1, [r4, #-1028]
+ ldr r0, .L1836+16
+ ldr r1, [r4, #-1020]
bl rknand_print_hex
mov r3, #1
- str r3, [r7, #4040]
- b .L1841
-.L1840:
- ldr r3, [r4, #184]
+ str r3, [r7, #4044]
+ b .L1835
+.L1834:
+ ldr r3, [r4, #192]
cmp r3, #256
- bne .L1841
+ bne .L1835
mov r1, r5
mov r2, r7
- ldr r0, .L1842+20
+ ldr r0, .L1836+20
bl printk
- ldr r3, [r4, #-1852]
- ldr r0, .L1842+24
+ ldr r3, [r4, #-1848]
+ ldr r0, .L1836+24
mov r1, r5
add r3, r3, r6
ldr r2, [r3, #8]
bl FtlMapWritePage
-.L1841:
- ldr r3, .L1842
+.L1835:
+ ldr r3, .L1836
mov r1, #0
- ldr r3, [r3, #-1852]
+ ldr r3, [r3, #-1848]
add r2, r3, r6
str r1, [r2, #4]
strh r5, [r3, r6] @ movhi
-.L1839:
+.L1833:
mov r0, #0
ldmfd sp!, {r3, r4, r5, r6, r7, pc}
-.L1843:
+.L1837:
.align 2
-.L1842:
+.L1836:
.word .LANCHOR2
.word .LANCHOR0
- .word .LC137
+ .word .LC136
.word .LC99
+ .word .LC137
.word .LC138
- .word .LC139
- .word .LANCHOR2-1084
+ .word .LANCHOR2-1076
.fnend
.size ftl_load_l2p_region, .-ftl_load_l2p_region
.align 2
@@ -16258,103 +16224,116 @@ log2phys:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- stmfd sp!, {r3, r4, r5, r6, r7, r8, sl, lr}
- .save {r3, r4, r5, r6, r7, r8, sl, lr}
- mov r8, r2
- ldr r3, .L1853
- movw r2, #3924
- mov r4, r1
- ldrh r7, [r3, r2]
- mvn r2, #0
- add r7, r7, #7
- mov r6, r0, lsr r7
- bic r7, r0, r2, asl r7
- movw r2, #3954
- ldrh r2, [r3, r2]
- uxth r6, r6
- ldr r3, .L1853+4
+ ldr r3, .L1851
+ stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
+ .save {r4, r5, r6, r7, r8, r9, sl, lr}
+ mov sl, r2
+ movw r2, #3926
+ mov r4, r0
+ ldrh r8, [r3, r2]
+ mov r5, r1
+ ldr r2, [r3, #3980]
+ add r8, r8, #7
+ mov r7, r0, lsr r8
+ cmp r0, r2
uxth r7, r7
- ldr sl, [r3, #-1852]
+ bcs .L1839
+ movw r2, #3958
+ ldrh r2, [r3, r2]
+ ldr r3, .L1851+4
+ ldr r9, [r3, #-1848]
mov r3, #0
- mov r5, r3
- b .L1845
-.L1851:
+ mov r6, r3
+ b .L1840
+.L1839:
+ cmp sl, #0
+ mvn r0, #0
+ streq r0, [r1, #0]
+ ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
+.L1846:
add r3, r3, #12
- add r1, sl, r3
+ add r1, r9, r3
ldrh r1, [r1, #-12]
- cmp r1, r6
- bne .L1846
-.L1847:
- cmp r8, #0
- ldr r3, .L1853+4
+ cmp r1, r7
+ bne .L1842
+.L1843:
+ mvn r3, #0
+ cmp sl, #0
+ bic r4, r4, r3, asl r8
mov r2, #12
- bne .L1848
- ldr r3, [r3, #-1852]
- mla r2, r2, r5, r3
+ ldr r3, .L1851+4
+ uxth r4, r4
+ bne .L1844
+ ldr r3, [r3, #-1848]
+ mla r2, r2, r6, r3
ldr r3, [r2, #8]
- ldr r3, [r3, r7, asl #2]
- str r3, [r4, #0]
- b .L1849
-.L1848:
- mul r2, r2, r5
- ldr r1, [r3, #-1852]
- ldr r0, [r4, #0]
+ ldr r3, [r3, r4, asl #2]
+ str r3, [r5, #0]
+ b .L1845
+.L1844:
+ mul r2, r2, r6
+ ldr r1, [r3, #-1848]
+ ldr r0, [r5, #0]
add r1, r1, r2
ldr r1, [r1, #8]
- str r0, [r1, r7, asl #2]
- ldr r1, [r3, #-1852]
+ str r0, [r1, r4, asl #2]
+ ldr r1, [r3, #-1848]
add r2, r1, r2
ldr r1, [r2, #4]
orr r1, r1, #-2147483648
str r1, [r2, #4]
- ldr r2, .L1853+8
- strh r6, [r3, r2] @ movhi
-.L1849:
- ldr r3, .L1853+4
+ ldr r2, .L1851+8
+ strh r7, [r3, r2] @ movhi
+.L1845:
+ ldr r3, .L1851+4
mov r2, #12
- mov r0, #0
- ldr r3, [r3, #-1852]
- mla r5, r2, r5, r3
- ldr r3, [r5, #4]
+ ldr r3, [r3, #-1848]
+ mla r6, r2, r6, r3
+ ldr r3, [r6, #4]
cmn r3, #1
addne r3, r3, #1
- strne r3, [r5, #4]
- ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc}
-.L1846:
- add r5, r5, #1
- uxth r5, r5
-.L1845:
- cmp r5, r2
- bne .L1851
+ strne r3, [r6, #4]
+ movne r0, #0
+ ldmnefd sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
+ b .L1850
+.L1842:
+ add r6, r6, #1
+ uxth r6, r6
+.L1840:
+ cmp r6, r2
+ bne .L1846
bl select_l2p_ram_region
mov r3, #12
mul r3, r3, r0
- mov r5, r0
- add r2, sl, r3
- ldrh r1, [sl, r3]
+ mov r6, r0
+ add r2, r9, r3
+ ldrh r1, [r9, r3]
movw r3, #65535
cmp r1, r3
- beq .L1852
+ beq .L1847
ldr r3, [r2, #4]
cmp r3, #0
- bge .L1852
+ bge .L1847
bl flush_l2p_region
-.L1852:
- mov r0, r6
- mov r1, r5
+.L1847:
+ mov r0, r7
+ mov r1, r6
bl ftl_load_l2p_region
- b .L1847
-.L1854:
+ b .L1843
+.L1850:
+ mov r0, #0
+ ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
+.L1852:
.align 2
-.L1853:
+.L1851:
.word .LANCHOR0
.word .LANCHOR2
- .word -1848
+ .word -1844
.fnend
.size log2phys, .-log2phys
.align 2
- .type FtlReadRefresh.part.15, %function
-FtlReadRefresh.part.15:
+ .type FtlReadRefresh.part.17, %function
+FtlReadRefresh.part.17:
.fnstart
@ args = 0, pretend = 0, frame = 40
@ frame_needed = 0, uses_anonymous_args = 0
@@ -16362,27 +16341,27 @@ FtlReadRefresh.part.15:
.save {r4, r5, r6, lr}
.pad #40
sub sp, sp, #40
- ldr r4, .L1863
- ldr r6, .L1863+4
- ldr r2, [r4, #-1624]
- ldr r3, [r6, #3976]
+ ldr r4, .L1861
+ ldr r6, .L1861+4
+ ldr r2, [r4, #-1616]
+ ldr r3, [r6, #3980]
cmp r2, r3
- bcs .L1856
+ bcs .L1854
mov r5, #2048
-.L1859:
- ldr r0, [r4, #-1624]
- ldr r3, [r6, #3976]
+.L1857:
+ ldr r0, [r4, #-1616]
+ ldr r3, [r6, #3980]
cmp r0, r3
- bcs .L1861
+ bcs .L1859
mov r1, sp
mov r2, #0
bl log2phys
ldr r0, [sp, #0]
- ldr r3, [r4, #-1624]
+ ldr r3, [r4, #-1616]
cmn r0, #1
add r3, r3, #1
- str r3, [r4, #-1624]
- beq .L1858
+ str r3, [r4, #-1616]
+ beq .L1856
str r0, [sp, #8]
add r0, sp, #40
mov r2, #0
@@ -16394,35 +16373,35 @@ FtlReadRefresh.part.15:
bl FlashReadPages
ldr r3, [sp, #4]
cmp r3, #256
- bne .L1861
+ bne .L1859
ldr r0, [sp, #0]
ubfx r0, r0, #10, #16
bl P2V_block_in_plane
bl FtlGcRefreshBlock
- b .L1861
-.L1858:
- subs r5, r5, #1
- bne .L1859
- b .L1857
+ b .L1859
.L1856:
- ldr r3, [r4, #-1836]
+ subs r5, r5, #1
+ bne .L1857
+ b .L1855
+.L1854:
+ ldr r3, [r4, #-1832]
mov r0, #0
- str r0, [r4, #-1628]
- str r0, [r4, #-1624]
- str r3, [r4, #-1632]
- b .L1857
-.L1861:
+ str r0, [r4, #-1620]
+ str r0, [r4, #-1616]
+ str r3, [r4, #-1624]
+ b .L1855
+.L1859:
mvn r0, #0
-.L1857:
+.L1855:
add sp, sp, #40
ldmfd sp!, {r4, r5, r6, pc}
-.L1864:
+.L1862:
.align 2
-.L1863:
+.L1861:
.word .LANCHOR2
.word .LANCHOR0
.fnend
- .size FtlReadRefresh.part.15, .-FtlReadRefresh.part.15
+ .size FtlReadRefresh.part.17, .-FtlReadRefresh.part.17
.align 2
.global FtlReadRefresh
.type FtlReadRefresh, %function
@@ -16431,51 +16410,341 @@ FtlReadRefresh:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L1872
- ldr r2, [r3, #-1628]
+ ldr r3, .L1870
+ ldr r2, [r3, #-1620]
cmp r2, #0
- beq .L1866
- b FtlReadRefresh.part.15
-.L1866:
- ldr r2, .L1872+4
- ldr r0, [r3, #-1784]
- ldr r1, [r2, #3840]
- ldrb r2, [r2, #928] @ zero_extendqisi2
+ beq .L1864
+ b FtlReadRefresh.part.17
+.L1864:
+ ldr r2, .L1870+4
+ ldr r0, [r3, #-1780]
+ ldr r1, [r2, #3844]
+ ldrb r2, [r2, #3072] @ zero_extendqisi2
cmp r2, #0
- ldr r2, [r3, #-1836]
+ ldr r2, [r3, #-1832]
addeq r0, r1, r0, lsr #10
moveq r1, #33554432
movne r0, #4194304
moveq r0, r1, asr r0
- ldr r1, [r3, #-1632]
+ ldr r1, [r3, #-1624]
add r3, r2, #1048576
cmp r1, r3
- bhi .L1868
+ bhi .L1866
add r1, r0, r1
cmp r1, r2
- bcc .L1868
- ldr r3, .L1872
- ldrb r3, [r3, #-2044] @ zero_extendqisi2
+ bcc .L1866
+ ldr r3, .L1870
+ ldrb r3, [r3, #-2040] @ zero_extendqisi2
cmp r3, #0
- bne .L1869
-.L1868:
- ldr r3, .L1872
+ bne .L1867
+.L1866:
+ ldr r3, .L1870
mov r1, #1
- str r2, [r3, #-1632]
- str r1, [r3, #-1628]
+ str r2, [r3, #-1624]
+ str r1, [r3, #-1620]
mov r1, #0
- str r1, [r3, #-1624]
-.L1869:
+ str r1, [r3, #-1616]
+.L1867:
mov r0, #0
bx lr
-.L1873:
+.L1871:
.align 2
-.L1872:
+.L1870:
.word .LANCHOR2
.word .LANCHOR0
.fnend
.size FtlReadRefresh, .-FtlReadRefresh
.align 2
+ .global FtlGcScanTempBlk
+ .type FtlGcScanTempBlk, %function
+FtlGcScanTempBlk:
+ .fnstart
+ @ args = 0, pretend = 0, frame = 64
+ @ frame_needed = 0, uses_anonymous_args = 0
+ ldr r2, .L1904
+ movw r3, #3224
+ stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ .save {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ .pad #68
+ sub sp, sp, #68
+ ldrh r6, [r2, r3]
+ movw r3, #65535
+ mov r4, r0
+ str r1, [sp, #20]
+ cmp r6, r3
+ beq .L1899
+ cmp r6, #0
+ bne .L1873
+ b .L1874
+.L1899:
+ mov r6, #0
+.L1873:
+ ldr r2, .L1904+4
+ movw r3, #3918
+ ldr sl, [sp, #20]
+ ldrh r3, [r2, r3]
+ cmp sl, r3
+ bne .L1875
+.L1874:
+ bl FtlGcPageVarInit
+.L1875:
+ ldr r5, .L1904+8
+ mov r9, #0
+ mvn r3, #0
+ str r3, [sp, #12]
+.L1876:
+ ldrh r2, [r4, #0]
+ movw r3, #65535
+ mov sl, #0
+ strb sl, [r4, #8]
+ cmp r2, r3
+ beq .L1877
+.L1878:
+ str r4, [sp, #4]
+.L1900:
+ ldr r3, .L1904+4
+ movw r2, #3852
+ ldr r7, [r5, #-960]
+ ldr lr, [r5, #-1164]
+ ldrh r8, [r3, r2]
+ add r2, r2, #76
+ ldr fp, [r5, #-1160]
+ ldrh ip, [r3, r2]
+ add r2, r2, #2
+ ldrh r2, [r3, r2]
+ mov r3, #0
+ mov r4, r3
+ str r2, [sp, #8]
+ ldr r2, [sp, #4]
+ b .L1879
+.L1881:
+ ldrh r0, [r2, #16]
+ movw r1, #65535
+ cmp r0, r1
+ beq .L1880
+ mov sl, #36
+ orr r0, r6, r0, asl #10
+ mla r1, sl, r4, r7
+ str r0, [r1, #4]
+ mul r0, ip, r4
+ add sl, r0, #3
+ cmp r0, #0
+ movlt r0, sl
+ ldr sl, [sp, #8]
+ bic r0, r0, #3
+ add r0, lr, r0
+ str r0, [r1, #8]
+ mul r0, sl, r4
+ add r4, r4, #1
+ uxth r4, r4
+ add sl, r0, #3
+ cmp r0, #0
+ movlt r0, sl
+ bic r0, r0, #3
+ add r0, fp, r0
+ str r0, [r1, #12]
+.L1880:
+ add r3, r3, #1
+ add r2, r2, #2
+ uxth r3, r3
+.L1879:
+ cmp r3, r8
+ bne .L1881
+ ldr r0, [r5, #-960]
+ mov r1, r4
+ mov r2, #0
+ mov r7, #0
+ bl FlashReadPages
+ mov fp, r6
+ str r7, [sp, #8]
+ b .L1882
+.L1895:
+ ldr r2, [r5, #-960]
+ add r3, r2, r7
+ ldr r8, [r2, r7]
+ ldr sl, [r3, #4]
+ cmp r8, #0
+ str sl, [sp, #16]
+ bne .L1883
+ ldr r6, [r3, #12]
+ movw r1, #65535
+ ldrh r3, [r6, #0]
+ cmp r3, r1
+ beq .L1884
+ ldr sl, .L1904+4
+ ldr r0, [r6, #8]
+ ldr r3, [sl, #3980]
+ cmp r0, r3
+ bls .L1885
+.L1884:
+ ldr r4, [sp, #4]
+ mov sl, #0 @ movhi
+ ldr r2, .L1904+8
+ ldrh r3, [r4, #0]
+ ldr r2, [r2, #-2012]
+ mov r3, r3, asl #1
+ strh sl, [r2, r3] @ movhi
+ b .L1903
+.L1885:
+ ldrb r3, [sl, #852] @ zero_extendqisi2
+ cmp r3, #0
+ beq .L1887
+ mov r2, r8
+ add r1, sp, #24
+ bl log2phys
+ ldr r3, [sp, #24]
+ ldr r2, [r6, #12]
+ cmp r3, r2
+ bne .L1887
+ cmn r3, #1
+ beq .L1887
+ str r3, [sp, #32]
+ mov r1, #1
+ ldr r3, [r5, #-928]
+ mov r2, r8
+ add r0, sp, #28
+ str r3, [sp, #36]
+ ldr r3, [r5, #-920]
+ str r3, [sp, #40]
+ bl FlashReadPages
+ movw r3, #3924
+ ldr r1, [r5, #-960]
+ ldrh r0, [sl, r3]
+ mov r3, r8
+ add r1, r1, r7
+ ldr r2, [sp, #36]
+ mov r0, r0, asl #7
+ b .L1888
+.L1890:
+ ldr ip, [r1, #8]
+ ldr lr, [ip, r8]
+ add r8, r8, #4
+ add ip, r2, r8
+ ldr ip, [ip, #-4]
+ cmp lr, ip
+ beq .L1889
+ ldr r4, [sp, #4]
+ ldr r2, [sp, #32]
+ ldr r0, .L1904+12
+ ldrh r1, [r4, #0]
+ bl printk
+ b .L1894
+.L1889:
+ add r3, r3, #1
+.L1888:
+ cmp r3, r0
+ bne .L1890
+.L1887:
+ ldr r0, [r6, #12]
+ add r7, r7, #36
+ ldr r1, [sp, #16]
+ ldr r2, [r6, #8]
+ bl FtlGcUpdatePage
+ ldr sl, [sp, #8]
+ add r3, sl, #1
+ uxth r3, r3
+ str r3, [sp, #8]
+ b .L1882
+.L1883:
+ ldr r4, [sp, #4]
+ ldr r2, [sp, #16]
+ ldr r0, .L1904+16
+ ldrh r1, [r4, #0]
+ bl printk
+ ldr r3, .L1904+4
+ ldr r2, [r3, #3844]
+ cmp r2, #0
+ bne .L1891
+ ldrb r2, [r3, #3072] @ zero_extendqisi2
+ cmp r2, #0
+ beq .L1892
+.L1891:
+ ldrh r1, [r4, #0]
+ ldr r2, [r3, #4052]
+ mov r3, r1, asl #1
+ ldrh r3, [r2, r3]
+ cmp r3, #159
+ bls .L1893
+.L1892:
+ ldr r3, [r5, #-960]
+ ldr r3, [r3, r7]
+ cmn r3, #1
+ bne .L1894
+.L1893:
+ ldr r3, [r5, #-960]
+ add r7, r3, r7
+ ldr r7, [r7, #4]
+ str r7, [sp, #12]
+.L1894:
+ ldrh r3, [r4, #0]
+ mov r1, #0 @ movhi
+ ldr r2, [r5, #-2012]
+ mov r3, r3, asl #1
+ strh r1, [r2, r3] @ movhi
+.L1903:
+ ldrh r0, [r4, #0]
+ mov r6, #0
+ bl INSERT_FREE_LIST
+ mvn r3, #0
+ strh r3, [r4, #0] @ movhi
+ bl FtlGcPageVarInit
+ b .L1876
+.L1882:
+ ldr r3, [sp, #8]
+ cmp r3, r4
+ bne .L1895
+ ldr sl, [sp, #20]
+ add r9, r9, #1
+ add r6, fp, #1
+ cmp r9, sl
+ uxth r6, r6
+ bcc .L1896
+ ldr r2, .L1904
+ movw r3, #3224
+ movw r0, #65535
+ ldrh r1, [r2, r3]
+ cmp r1, r0
+ beq .L1896
+ add r1, r1, r9
+ strh r1, [r2, r3] @ movhi
+ ldr r2, .L1904+4
+ movw r3, #3918
+ ldrh r3, [r2, r3]
+ cmp r3, r6
+ bhi .L1897
+.L1896:
+ ldr r2, .L1904+4
+ movw r3, #3918
+ ldrh r3, [r2, r3]
+ cmp r3, r6
+ bhi .L1900
+ ldr r4, [sp, #4]
+.L1877:
+ ldr r2, .L1904
+ movw r3, #3224
+ mvn r1, #0
+ strh r6, [r4, #2] @ movhi
+ mov r0, r4
+ strh r1, [r2, r3] @ movhi
+ mov r2, #0
+ mov r1, r6
+ strb r2, [r4, #6]
+ bl ftl_sb_update_avl_pages
+.L1897:
+ ldr r0, [sp, #12]
+ add sp, sp, #68
+ ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
+.L1905:
+ .align 2
+.L1904:
+ .word .LANCHOR1
+ .word .LANCHOR0
+ .word .LANCHOR2
+ .word .LC139
+ .word .LC140
+ .fnend
+ .size FtlGcScanTempBlk, .-FtlGcScanTempBlk
+ .align 2
.global FtlReUsePrevPpa
.type FtlReUsePrevPpa, %function
FtlReUsePrevPpa:
@@ -16488,69 +16757,68 @@ FtlReUsePrevPpa:
ubfx r0, r1, #10, #16
str r1, [sp, #4]
bl P2V_block_in_plane
- ldr r3, .L1880
- ldr r1, [r3, #-2016]
+ ldr r3, .L1912
+ ldr r1, [r3, #-2012]
mov r5, r0, asl #1
ldrh r2, [r1, r5]
cmp r2, #0
addne r2, r2, #1
strneh r2, [r1, r5] @ movhi
- bne .L1876
- ldr r4, [r3, #-2004]
+ bne .L1908
+ ldr r4, [r3, #-2000]
cmp r4, #0
- beq .L1876
- ldr r1, .L1880+4
+ beq .L1908
+ ldr r1, .L1912+4
mov ip, #6
ldrh lr, [r3, r1]
- ldr r3, [r3, #-2024]
- ldr r1, .L1880+8
+ ldr r3, [r3, #-2020]
+ ldr r1, .L1912+8
rsb r4, r3, r4
mov r4, r4, asr #1
mul r4, r1, r4
movw r1, #65535
uxth r4, r4
- b .L1877
-.L1879:
+ b .L1909
+.L1911:
cmp r4, r0
- bne .L1878
+ bne .L1910
+ ldr r6, .L1912
mov r1, r4
- ldr r0, .L1880+12
+ sub r0, r6, #2000
bl List_remove_node
- ldr r6, .L1880
- ldr r3, .L1880+4
+ ldr r3, .L1912+4
mov r0, r4
ldrh r2, [r6, r3]
sub r2, r2, #1
strh r2, [r6, r3] @ movhi
bl INSERT_DATA_LIST
- ldr r3, [r6, #-2016]
+ ldr r3, [r6, #-2012]
ldrh r2, [r3, r5]
add r2, r2, #1
strh r2, [r3, r5] @ movhi
- b .L1876
-.L1878:
+ b .L1908
+.L1910:
mul r4, ip, r4
ldrh r4, [r3, r4]
cmp r4, r1
- beq .L1876
+ beq .L1908
add r2, r2, #1
uxth r2, r2
-.L1877:
+.L1909:
cmp r2, lr
- bne .L1879
-.L1876:
+ bne .L1911
+.L1908:
mov r0, r7
add r1, sp, #4
mov r2, #1
bl log2phys
ldmfd sp!, {r1, r2, r3, r4, r5, r6, r7, pc}
-.L1881:
+.L1913:
.align 2
-.L1880:
+.L1912:
.word .LANCHOR2
- .word -2000
+ .word -1996
.word -1431655765
- .word .LANCHOR2-2004
.fnend
.size FtlReUsePrevPpa, .-FtlReUsePrevPpa
.align 2
@@ -16563,52 +16831,52 @@ Ftlscanalldata:
stmfd sp!, {r4, r5, r6, r7, r8, lr}
.save {r4, r5, r6, r7, r8, lr}
mov r1, #0
- ldr r4, .L1888
+ ldr r4, .L1920
.pad #32
sub sp, sp, #32
- ldr r0, .L1888+4
+ ldr r0, .L1920+4
mov r5, #0
bl printk
- ldr r7, .L1888+8
+ ldr r7, .L1920+8
mov r6, r4
- b .L1883
-.L1887:
+ b .L1915
+.L1919:
mov r0, r5
add r1, sp, #28
mov r2, #0
bl log2phys
movs r3, r5, asl #21
- bne .L1884
- ldr r0, .L1888+12
+ bne .L1916
+ ldr r0, .L1920+12
mov r1, r5
ldr r2, [sp, #28]
bl printk
-.L1884:
+.L1916:
ldr r3, [sp, #28]
cmn r3, #1
- beq .L1885
- str r3, [r4, #188]
+ beq .L1917
+ str r3, [r4, #196]
mov r2, #0
- ldr r3, [r4, #-956]
+ ldr r3, [r4, #-948]
mov r1, #1
- ldr r8, [r4, #-932]
- ldr r0, .L1888+16
- str r3, [r4, #192]
- str r5, [r4, #200]
- str r8, [r4, #196]
- str r2, [r4, #184]
+ ldr r8, [r4, #-924]
+ ldr r0, .L1920+16
+ str r3, [r4, #200]
+ str r5, [r4, #208]
+ str r8, [r4, #204]
+ str r2, [r4, #192]
bl FlashReadPages
- ldr r3, [r4, #184]
+ ldr r3, [r4, #192]
cmn r3, #1
cmpne r3, #256
- beq .L1886
+ beq .L1918
ldr r3, [r8, #8]
cmp r3, r5
- beq .L1885
-.L1886:
- ldr r3, [r6, #196]
- ldr r2, [r6, #192]
- ldr r0, .L1888+20
+ beq .L1917
+.L1918:
+ ldr r3, [r6, #204]
+ ldr r2, [r6, #200]
+ ldr r0, .L1920+20
ldr r1, [r3, #4]
str r1, [sp, #0]
ldr r1, [r3, #8]
@@ -16620,26 +16888,26 @@ Ftlscanalldata:
mov r1, r5
ldr r2, [r2, #4]
str r2, [sp, #16]
- ldr r2, [r6, #188]
+ ldr r2, [r6, #196]
ldr r3, [r3, #0]
bl printk
-.L1885:
+.L1917:
add r5, r5, #1
-.L1883:
- ldr r3, [r7, #3976]
+.L1915:
+ ldr r3, [r7, #3980]
cmp r5, r3
- bcc .L1887
+ bcc .L1919
add sp, sp, #32
ldmfd sp!, {r4, r5, r6, r7, r8, pc}
-.L1889:
+.L1921:
.align 2
-.L1888:
+.L1920:
.word .LANCHOR2
- .word .LC140
- .word .LANCHOR0
.word .LC141
- .word .LANCHOR2+184
+ .word .LANCHOR0
.word .LC142
+ .word .LANCHOR2+192
+ .word .LC143
.fnend
.size Ftlscanalldata, .-Ftlscanalldata
.align 2
@@ -16657,12 +16925,12 @@ FtlRecoverySuperblock:
sub sp, sp, #68
mov r4, r0
cmp r3, r2
- beq .L1891
+ beq .L1923
ldrh r3, [r0, #2]
- ldr r1, .L1979
+ ldr r1, .L2012
ldrb r6, [r0, #6] @ zero_extendqisi2
str r3, [sp, #20]
- movw r3, #3916
+ movw r3, #3918
ldrh r3, [r1, r3]
ldr fp, [sp, #20]
str r6, [sp, #36]
@@ -16671,65 +16939,65 @@ FtlRecoverySuperblock:
streqh r3, [r0, #4] @ movhi
moveq r2, r3 @ movhi
ldrneh r0, [r0, #16]
- bne .L1893
- b .L1976
-.L1894:
+ bne .L1925
+ b .L2009
+.L1926:
add r3, r3, #1
uxth r3, r3
add r1, r4, r3, asl #1
ldrh r0, [r1, #16]
-.L1893:
+.L1925:
cmp r0, r2
- beq .L1894
+ beq .L1926
ldrb r1, [r4, #8] @ zero_extendqisi2
cmp r1, #1
- bne .L1895
+ bne .L1927
bl FtlGetLastWrittenPage
cmn r0, #1
mov r7, r0
- beq .L1896
- ldr r3, .L1979
- ldrb r2, [r3, #928] @ zero_extendqisi2
+ beq .L1928
+ ldr r3, .L2012
+ ldrb r2, [r3, #3072] @ zero_extendqisi2
cmp r2, #0
- bne .L1969
+ bne .L2002
add r3, r3, r0, asl #1
movw r2, #3076
ldrh r8, [r3, r2]
- b .L1961
-.L1895:
+ b .L1994
+.L1927:
mov r1, #0
bl FtlGetLastWrittenPage
cmn r0, #1
mov r7, r0
- beq .L1896
-.L1969:
+ beq .L1928
+.L2002:
mov r8, r7
-.L1961:
- ldr r3, .L1979
- movw r2, #3848
+.L1994:
+ ldr r3, .L2012
+ movw r2, #3852
mov r5, #0
str r4, [sp, #44]
movw ip, #65535
ldrh r9, [r3, r2]
- ldr r2, .L1979+4
- ldr sl, [r2, #-968]
- ldr r6, [r2, #-1168]
- movw r2, #3928
+ ldr r2, .L2012+4
+ ldr sl, [r2, #-960]
+ ldr r6, [r2, #-1160]
+ movw r2, #3930
ldrh lr, [r3, r2]
mov r2, r4
mov r3, r5
- b .L1898
-.L1896:
+ b .L1930
+.L1928:
mov r3, #0
strh r3, [r4, #2] @ movhi
mov r2, r3 @ movhi
-.L1976:
+.L2009:
strb r2, [r4, #6]
- b .L1891
-.L1900:
+ b .L1923
+.L1932:
ldrh r0, [r2, #16]
cmp r0, ip
- beq .L1899
+ beq .L1931
mov fp, #36
orr r0, r8, r0, asl #10
mla r1, fp, r5, sl
@@ -16745,100 +17013,100 @@ FtlRecoverySuperblock:
bic r0, r0, #3
add r0, r6, r0
str r0, [r1, #12]
-.L1899:
+.L1931:
add r3, r3, #1
add r2, r2, #2
uxth r3, r3
-.L1898:
+.L1930:
cmp r3, r9
- bne .L1900
+ bne .L1932
ldrb r3, [r4, #8] @ zero_extendqisi2
cmp r3, #1
movne r3, #0
- bne .L1970
- ldr r3, .L1979
- ldrb r3, [r3, #928] @ zero_extendqisi2
+ bne .L2003
+ ldr r3, .L2012
+ ldrb r3, [r3, #3072] @ zero_extendqisi2
adds r3, r3, #0
movne r3, #1
-.L1970:
- ldr r6, .L1979+4
+.L2003:
+ ldr r6, .L2012+4
mov r1, r5
str r3, [sp, #32]
mov sl, #0
ldr r2, [sp, #32]
- ldr r0, [r6, #-968]
+ ldr r0, [r6, #-960]
bl FlashReadPages
- ldr fp, [r6, #-1800]
+ ldr fp, [r6, #-1796]
movw r2, #65535
str r2, [sp, #12]
str fp, [sp, #16]
- b .L1902
-.L1907:
+ b .L1934
+.L1939:
mov r3, #36
- ldr r1, [r6, #-968]
+ ldr r1, [r6, #-960]
mul r2, r3, sl
add r3, r1, r2
ldr r2, [r1, r2]
cmp r2, #0
- bne .L1903
+ bne .L1935
ldr r3, [r3, #12]
ldr fp, [r3, #4]
cmn fp, #1
- beq .L1904
- ldr r1, [r6, #-1800]
+ beq .L1936
+ ldr r1, [r6, #-1796]
mov r0, fp
str r3, [sp, #4]
bl ftl_cmp_data_ver
ldr r3, [sp, #4]
cmp r0, #0
addne fp, fp, #1
- strne fp, [r6, #-1800]
-.L1904:
+ strne fp, [r6, #-1796]
+.L1936:
ldr r3, [r3, #0]
cmn r3, #1
- bne .L1906
- b .L1905
-.L1903:
+ bne .L1938
+ b .L1937
+.L1935:
ldr r1, [r3, #4]
uxth fp, r8
- ldr r0, .L1979+8
+ ldr r0, .L2012+8
bl printk
ldrh r3, [r4, #0]
- movw lr, #298
+ movw lr, #306
str fp, [sp, #12]
strh r3, [r6, lr] @ movhi
-.L1906:
+.L1938:
add sl, sl, #1
-.L1902:
+.L1934:
uxth r9, sl
cmp r9, r5
- bcc .L1907
-.L1905:
- ldr r3, .L1979+4
+ bcc .L1939
+.L1937:
+ ldr r3, .L2012+4
cmp r9, r5
addeq r7, r7, #1
uxthne r7, r7
movne r2, #36
- ldrne r3, [r3, #-968]
+ ldrne r3, [r3, #-960]
uxtheq r7, r7
- ldreq r3, [r3, #-968]
+ ldreq r3, [r3, #-960]
mlane r9, r2, r9, r3
ldreq r0, [r3, #4]
ldrne r0, [r9, #4]
ubfx r0, r0, #10, #16
bl P2V_plane
ldrb r2, [r4, #8] @ zero_extendqisi2
- ldr r3, .L1979
+ ldr r3, .L2012
cmp r2, #1
str r0, [sp, #24]
- bne .L1910
- ldrb r1, [r3, #928] @ zero_extendqisi2
+ bne .L1942
+ ldrb r1, [r3, #3072] @ zero_extendqisi2
cmp r1, #0
addeq r7, r3, r7, asl #1
movweq r1, #3076
ldreqh r7, [r7, r1]
-.L1910:
- movw r1, #3916
+.L1942:
+ movw r1, #3918
ldr r6, [sp, #24]
ldrh r3, [r3, r1]
ldr fp, [sp, #36]
@@ -16853,26 +17121,26 @@ FtlRecoverySuperblock:
moveq r0, r4
moveq r1, r7
moveq r2, r6
- beq .L1977
+ beq .L2010
ldr r3, [sp, #16]
ldr fp, [sp, #12]
sub r6, r3, #1
movw r3, #65535
cmp fp, r3
- bne .L1913
+ bne .L1945
cmp r2, #0
- bne .L1914
-.L1913:
- ldr r2, .L1979+4
+ bne .L1946
+.L1945:
+ ldr r2, .L2012+4
uxth r3, r8
ldr fp, [sp, #20]
movw ip, #65535
mov sl, r3
- ldr r8, .L1979+4
- ldr r1, [r2, #-1004]
+ ldr r8, .L2012+4
+ ldr r1, [r2, #-996]
cmn r1, #1
- streq r6, [r2, #-1004]
- ldr r2, [r2, #-1004]
+ streq r6, [r2, #-996]
+ ldr r2, [r2, #-996]
str r2, [sp, #12]
add r2, fp, #7
cmp r3, r2
@@ -16884,11 +17152,11 @@ FtlRecoverySuperblock:
mov r7, r6
uxthgt r5, r5
mov r6, r4
- b .L1917
-.L1919:
+ b .L1949
+.L1951:
ldrh r0, [r1, #16]
cmp r0, ip
- beq .L1918
+ beq .L1950
ldr r6, [sp, #28]
mov r3, #36
orr r0, r5, r0, asl #10
@@ -16896,115 +17164,115 @@ FtlRecoverySuperblock:
add r4, r4, #1
uxth r4, r4
str r0, [lr, #4]
-.L1918:
+.L1950:
add r2, r2, #1
add r1, r1, #2
uxth r2, r2
-.L1930:
+.L1962:
ldr lr, [sp, #16]
cmp r2, lr
- bne .L1919
+ bne .L1951
ldr r3, [sp, #40]
mov r1, r4
- ldr r0, [r8, #-968]
+ ldr r0, [r8, #-960]
ldr r2, [sp, #32]
stmib sp, {r3, ip}
ldr r6, [sp, #0]
bl FlashReadPages
- ldr r2, .L1979
+ ldr r2, .L2012
add r0, r8, r5, asl #1
mov r1, #0
str r0, [sp, #28]
ldmib sp, {r3, ip}
- ldrb r2, [r2, #928] @ zero_extendqisi2
+ ldrb r2, [r2, #3072] @ zero_extendqisi2
str r2, [sp, #16]
- ldr r2, [r8, #-968]
- b .L1920
-.L1928:
+ ldr r2, [r8, #-960]
+ b .L1952
+.L1960:
ldr r0, [r2, #0]
cmp r0, #0
- bne .L1921
+ bne .L1953
ldr r0, [r2, #12]
ldrh lr, [r0, #0]
cmp lr, ip
- beq .L1922
+ beq .L1954
ldr r0, [r0, #4]
cmn r0, #1
- beq .L1922
+ beq .L1954
cmn fp, #1
- ldr r9, [r8, #-1004]
- str r0, [r8, #-1004]
- bne .L1922
+ ldr r9, [r8, #-996]
+ str r0, [r8, #-996]
+ bne .L1954
ldr lr, [sp, #28]
- sub r0, lr, #888
+ sub r0, lr, #880
ldrh r0, [r0, #0]
cmp r0, ip
- bne .L1923
+ bne .L1955
ldr r0, [sp, #16]
cmp r0, #0
- beq .L1922
-.L1923:
+ beq .L1954
+.L1955:
cmp r9, r7
mvneq fp, #0
movne fp, r9
- b .L1922
-.L1921:
+ b .L1954
+.L1953:
mov r4, r6
mov r6, r7
ldrh r1, [r4, #0]
mov r7, r3
- ldr r3, .L1979+4
- movw r2, #298
+ ldr r3, .L2012+4
+ movw r2, #306
strh r1, [r3, r2] @ movhi
ldrb r2, [r4, #8] @ zero_extendqisi2
cmp r2, #0
- bne .L1914
+ bne .L1946
add r5, r3, r5, asl #1
movw r2, #65535
- sub r5, r5, #888
+ sub r5, r5, #880
ldrh r1, [r5, #0]
cmp r1, r2
- bne .L1924
+ bne .L1956
cmn fp, #1
- bne .L1972
-.L1925:
+ bne .L2005
+.L1957:
ldr fp, [sp, #12]
cmp fp, r6
- beq .L1926
-.L1972:
- str fp, [r3, #-1004]
- b .L1914
-.L1926:
- ldr r2, [r3, #-1004]
- b .L1978
-.L1924:
+ beq .L1958
+.L2005:
+ str fp, [r3, #-996]
+ b .L1946
+.L1958:
+ ldr r2, [r3, #-996]
+ b .L2011
+.L1956:
cmp r9, r6
- beq .L1927
+ beq .L1959
cmn r9, #1
- strne r9, [r3, #-1004]
- b .L1914
-.L1927:
- ldr r2, [r3, #-1004]
+ strne r9, [r3, #-996]
+ b .L1946
+.L1959:
+ ldr r2, [r3, #-996]
cmp r2, r6
- beq .L1914
-.L1978:
+ beq .L1946
+.L2011:
sub r2, r2, #1
- b .L1973
-.L1922:
+ b .L2006
+.L1954:
add r1, r1, #1
add r2, r2, #36
uxth r1, r1
-.L1920:
+.L1952:
cmp r1, r4
- bne .L1928
+ bne .L1960
add r5, r5, #1
uxth r5, r5
-.L1917:
+.L1949:
cmp r5, sl
- bhi .L1929
- ldr r1, .L1979
- movw r2, #3848
- ldr lr, [r8, #-968]
+ bhi .L1961
+ ldr r1, .L2012
+ movw r2, #3852
+ ldr lr, [r8, #-960]
mov r4, #0
str r3, [sp, #40]
ldrh r2, [r1, r2]
@@ -17013,68 +17281,68 @@ FtlRecoverySuperblock:
str r6, [sp, #0]
str r2, [sp, #16]
mov r2, r4
- b .L1930
-.L1929:
+ b .L1962
+.L1961:
mov r4, r6
mov r6, r7
mov r7, r3
- ldr r3, .L1979+4
+ ldr r3, .L2012+4
mvn r2, #0
-.L1973:
- str r2, [r3, #-1004]
-.L1914:
- ldr r5, .L1979+4
- mov r3, #300
+.L2006:
+ str r2, [r3, #-996]
+.L1946:
+ ldr r5, .L2012+4
+ mov r3, #308
ldr r8, [sp, #20]
mov r2, #1
str r7, [sp, #16]
strh r2, [r5, r3] @ movhi
-.L1931:
- ldr r3, .L1979
- movw r2, #3848
+.L1963:
+ ldr r3, .L2012
+ movw r2, #3852
mov r7, #0
- ldr lr, [r5, #-968]
+ ldr lr, [r5, #-960]
mov fp, #36
ldrh sl, [r3, r2]
mov r2, r4
- ldrb ip, [r3, #928] @ zero_extendqisi2
+ ldrb ip, [r3, #3072] @ zero_extendqisi2
mov r3, r7
- b .L1932
-.L1935:
+ b .L1964
+.L1967:
ldrh r0, [r2, #16]
movw r1, #65535
cmp r0, r1
- beq .L1933
+ beq .L1965
mla r1, fp, r7, lr
orr r0, r8, r0, asl #10
str r0, [r1, #4]
ldrb r9, [r4, #8] @ zero_extendqisi2
cmp r9, #1
- bne .L1934
+ bne .L1966
cmp ip, #0
orrne r0, r0, #-2147483648
strne r0, [r1, #4]
-.L1934:
+.L1966:
add r7, r7, #1
uxth r7, r7
-.L1933:
+.L1965:
add r3, r3, #1
add r2, r2, #2
uxth r3, r3
-.L1932:
+.L1964:
cmp r3, sl
- bne .L1935
+ bne .L1967
mov r1, r7
- ldr r0, [r5, #-968]
+ ldr r0, [r5, #-960]
ldr r2, [sp, #32]
bl FlashReadPages
mov r3, #36
mul r3, r3, r7
mov r7, #0
str r3, [sp, #40]
- b .L1936
-.L1956:
- ldr r9, [r5, #-968]
+ b .L1968
+.L1989:
+ ldr r9, [r5, #-960]
add r9, r9, r7
ldr sl, [r9, #4]
ubfx r0, sl, #10, #16
@@ -17082,7 +17350,7 @@ FtlRecoverySuperblock:
bl P2V_plane
ldr r3, [sp, #20]
cmp r8, r3
- bcc .L1937
+ bcc .L1969
ldr fp, [sp, #36]
mov r1, r3
cmp r0, fp
@@ -17091,31 +17359,31 @@ FtlRecoverySuperblock:
cmp r8, r1
movne r3, #0
cmp r3, #0
- bne .L1937
+ bne .L1969
ldr r3, [sp, #24]
ldr fp, [sp, #16]
cmp r0, r3
cmpeq r8, fp
- beq .L1968
+ beq .L2001
ldr r3, [r9, #0]
cmn r3, #1
- beq .L1939
+ beq .L1971
ldr sl, [r9, #12]
movw r3, #61589
ldrh r2, [sl, #0]
cmp r2, r3
ldrneh r0, [r4, #0]
- bne .L1974
+ bne .L2007
ldr r6, [sl, #4]
cmn r6, #1
- beq .L1941
- ldr r1, [r5, #-1800]
+ beq .L1973
+ ldr r1, [r5, #-1796]
mov r0, r6
bl ftl_cmp_data_ver
cmp r0, #0
addne r3, r6, #1
- strne r3, [r5, #-1800]
-.L1941:
+ strne r3, [r5, #-1796]
+.L1973:
ldr r9, [sl, #8]
add r1, sp, #56
ldr r3, [sl, #12]
@@ -17123,17 +17391,17 @@ FtlRecoverySuperblock:
mov r0, r9
str r3, [sp, #52]
bl log2phys
- ldr r1, [r5, #-1004]
+ ldr r1, [r5, #-996]
cmn r1, #1
- beq .L1942
+ beq .L1974
mov r0, r6
bl ftl_cmp_data_ver
cmp r0, #0
- beq .L1942
+ beq .L1974
ldr r3, [sp, #52]
cmn r3, #1
- beq .L1943
- ldr r0, [r5, #-968]
+ beq .L1975
+ ldr r0, [r5, #-960]
mov r1, #1
mov r2, #0
add r0, r0, r7
@@ -17143,43 +17411,43 @@ FtlRecoverySuperblock:
bl FlashReadPages
ldr r3, [fp, #4]
str r3, [sp, #28]
- ldr r3, [r5, #-968]
+ ldr r3, [r5, #-960]
add fp, r3, r7
ldr r3, [r3, r7]
cmn r3, #1
- bne .L1944
- b .L1945
-.L1943:
+ bne .L1976
+ b .L1977
+.L1975:
ldr r3, [sp, #60]
ldr r2, [sp, #56]
cmp r2, r3
- bne .L1937
+ bne .L1969
mov r0, r9
add r1, sp, #52
mov r2, #1
bl log2phys
- b .L1937
-.L1944:
+ b .L1969
+.L1976:
ldr r3, [sp, #12]
ldr sl, [r3, #8]
cmp sl, r9
- bne .L1945
- ldr r0, [r5, #-1004]
+ bne .L1977
+ ldr r0, [r5, #-996]
ldr r1, [sp, #28]
bl ftl_cmp_data_ver
cmp r0, #0
- beq .L1945
+ beq .L1977
ldr r3, [sp, #56]
ldr r2, [sp, #60]
cmp r3, r2
- beq .L1949
-.L1946:
+ beq .L1981
+.L1978:
ldr r2, [sp, #52]
cmp r3, r2
- beq .L1945
+ beq .L1977
cmn r3, #1
streq r3, [fp, #0]
- beq .L1948
+ beq .L1980
ldr lr, [fp, #12]
mov r0, fp
str r3, [fp, #4]
@@ -17187,177 +17455,185 @@ FtlRecoverySuperblock:
mov r2, #0
str lr, [sp, #12]
bl FlashReadPages
-.L1948:
- ldr r3, [r5, #-968]
+.L1980:
+ ldr r3, [r5, #-960]
ldr r3, [r3, r7]
cmn r3, #1
- beq .L1949
+ beq .L1981
ldr r3, [sp, #12]
- ldr r0, [r5, #-1004]
+ ldr r0, [r5, #-996]
ldr r9, [r3, #4]
mov r1, r9
bl ftl_cmp_data_ver
cmp r0, #0
- beq .L1949
+ beq .L1981
ldr r0, [sp, #28]
mov r1, r9
bl ftl_cmp_data_ver
cmp r0, #0
- beq .L1945
-.L1949:
+ beq .L1977
+.L1981:
mov r0, sl
ldr r1, [sp, #52]
bl FtlReUsePrevPpa
-.L1945:
+.L1977:
mvn r3, #0
str r3, [sp, #52]
- b .L1951
-.L1942:
+ b .L1983
+.L1974:
ldr r3, [sp, #60]
ldr r2, [sp, #56]
cmp r2, r3
- beq .L1951
+ beq .L1983
+ ldr r2, .L2012
+ ldr r3, [sp, #52]
+ ldr r2, [r2, #3868]
+ cmp r2, r3, lsr #10
+ bhi .L1984
+ cmn r3, #1
+ bne .L1969
+.L1984:
mov r0, r9
add r1, sp, #60
mov r2, #1
bl log2phys
ldr fp, [sp, #56]
cmn fp, #1
- beq .L1951
+ beq .L1983
ldr r3, [sp, #52]
cmp fp, r3
- beq .L1951
+ beq .L1983
ubfx r0, fp, #10, #16
bl P2V_block_in_plane
- ldr r3, .L1979+12
+ ldr r3, .L2012+12
ldrh r3, [r5, r3]
cmp r3, r0
- beq .L1952
- ldr r3, .L1979+16
+ beq .L1985
+ ldr r3, .L2012+16
ldrh r3, [r5, r3]
cmp r3, r0
- beq .L1952
- ldr r3, .L1979+20
+ beq .L1985
+ ldr r3, .L2012+20
ldrh r3, [r5, r3]
cmp r3, r0
- bne .L1951
-.L1952:
- ldr lr, .L1979+4
+ bne .L1983
+.L1985:
+ ldr lr, .L2012+4
mov r1, #1
mov r2, #0
- ldr r0, [lr, #-968]
+ ldr r0, [lr, #-960]
str fp, [r0, #4]
ldr sl, [r0, #12]
bl FlashReadPages
- ldr r0, .L1979+4
+ ldr r0, .L2012+4
ldr r1, [sl, #4]
- ldr r3, [r0, #-968]
+ ldr r3, [r0, #-960]
ldr r3, [r3, #0]
cmn r3, #1
- beq .L1951
+ beq .L1983
mov r0, r6
bl ftl_cmp_data_ver
cmp r0, #0
- bne .L1951
+ bne .L1983
mov r0, r9
add r1, sp, #56
mov r2, #1
bl log2phys
-.L1951:
+.L1983:
ldr r0, [sp, #52]
cmn r0, #1
- beq .L1937
+ beq .L1969
ubfx r0, r0, #10, #16
bl P2V_block_in_plane
- ldr r2, [r5, #-2016]
+ ldr r2, [r5, #-2012]
mov r3, r0, asl #1
mov r1, r0
ldrh r3, [r2, r3]
cmp r3, #0
- beq .L1953
-.L1974:
+ beq .L1986
+.L2007:
bl decrement_vpc_count
- b .L1937
-.L1953:
- ldr r0, .L1979+24
+ b .L1969
+.L1986:
+ ldr r0, .L2012+24
bl printk
- b .L1937
-.L1939:
+ b .L1969
+.L1971:
ldrh r3, [r4, #0]
- movw r1, #298
+ movw r1, #306
mov r2, r6
- ldr r0, .L1979+28
+ ldr r0, .L2012+28
strh r3, [r5, r1] @ movhi
mov r1, sl
bl printk
- ldr r3, [r5, #304]
+ ldr r3, [r5, #312]
cmp r3, #31
addls r2, r5, r3, asl #2
addls r3, r3, #1
ldrls r1, [sp, #60]
- strls r3, [r5, #304]
- strls r1, [r2, #308]
+ strls r3, [r5, #312]
+ strls r1, [r2, #316]
ldrh r0, [r4, #0]
bl decrement_vpc_count
- ldr r3, [r5, #-1004]
+ ldr r3, [r5, #-996]
cmn r3, #1
- beq .L1975
-.L1955:
+ beq .L2008
+.L1988:
cmp r3, r6
- bls .L1937
-.L1975:
- str r6, [r5, #-1004]
-.L1937:
+ bls .L1969
+.L2008:
+ str r6, [r5, #-996]
+.L1969:
add r7, r7, #36
-.L1936:
+.L1968:
ldr r3, [sp, #40]
cmp r7, r3
- bne .L1956
+ bne .L1989
ldrb r3, [r4, #8] @ zero_extendqisi2
add r8, r8, #1
cmp r3, #1
uxth r8, r8
- bne .L1957
- ldr r3, .L1979
- ldrb r2, [r3, #928] @ zero_extendqisi2
+ bne .L1990
+ ldr r3, .L2012
+ ldrb r2, [r3, #3072] @ zero_extendqisi2
cmp r2, #0
- beq .L1957
- movw r2, #3918
+ beq .L1990
+ mov r2, #3920
ldr fp, [sp, #16]
ldrh r3, [r3, r2]
cmp fp, r8
cmpeq r3, r8
- beq .L1968
-.L1957:
- ldr r3, .L1979
- movw r2, #3916
+ beq .L2001
+.L1990:
+ ldr r3, .L2012
+ movw r2, #3918
ldrh r2, [r3, r2]
cmp r8, r2
- bne .L1931
+ bne .L1963
mov r2, #0
- movw r1, #3848
+ movw r1, #3852
strh r2, [r4, #4] @ movhi
ldrh r1, [r3, r1]
mov r3, r2
strh r8, [r4, #2] @ movhi
movw r2, #65535
ldr r0, [sp, #44]
- b .L1958
-.L1960:
+ b .L1991
+.L1993:
add r0, r0, #2
ldrh ip, [r0, #14]
cmp ip, r2
strneb r3, [r4, #6]
- bne .L1891
-.L1959:
+ bne .L1923
+.L1992:
add r3, r3, #1
uxth r3, r3
-.L1958:
+.L1991:
cmp r3, r1
- bne .L1960
- b .L1891
-.L1968:
-.L1938:
+ bne .L1993
+ b .L1923
+.L2001:
+.L1970:
ldr r7, [sp, #16]
mov r0, r4
ldr r3, [sp, #24]
@@ -17365,23 +17641,23 @@ FtlRecoverySuperblock:
strh r7, [r4, #2] @ movhi
mov r2, r3
strb r3, [r4, #6]
-.L1977:
+.L2010:
bl ftl_sb_update_avl_pages
-.L1891:
+.L1923:
mov r0, #0
add sp, sp, #68
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L1980:
+.L2013:
.align 2
-.L1979:
+.L2012:
.word .LANCHOR0
.word .LANCHOR2
- .word .LC143
- .word -1996
- .word -1948
- .word -1900
.word .LC144
+ .word -1992
+ .word -1944
+ .word -1896
.word .LC145
+ .word .LC146
.fnend
.size FtlRecoverySuperblock, .-FtlRecoverySuperblock
.align 2
@@ -17395,77 +17671,77 @@ FtlWriteDumpData:
.save {r4, r5, r6, r7, r8, sl, lr}
.pad #44
sub sp, sp, #44
- ldr r5, .L1990
- ldr r3, [r5, #4040]
+ ldr r5, .L2023
+ ldr r3, [r5, #4044]
cmp r3, #0
- bne .L1981
- ldr r4, .L1990+4
- ldr r3, .L1990+8
+ bne .L2014
+ ldr r4, .L2023+4
+ ldr r3, .L2023+8
mov r2, r4
ldrh r3, [r4, r3]
cmp r3, #0
- beq .L1983
- ldrb r1, [r4, #-1988] @ zero_extendqisi2
+ beq .L2016
+ ldrb r1, [r4, #-1984] @ zero_extendqisi2
cmp r1, #0
- bne .L1983
- movw r0, #3916
- ldrb r1, [r4, #-1989] @ zero_extendqisi2
+ bne .L2016
+ movw r0, #3918
+ ldrb r1, [r4, #-1985] @ zero_extendqisi2
ldrh r0, [r5, r0]
mul r1, r0, r1
cmp r3, r1
- beq .L1983
- ldrb r8, [r4, #-1986] @ zero_extendqisi2
- movw r3, #3848
- ldr r7, [r5, #3976]
+ beq .L2016
+ ldrb r8, [r4, #-1982] @ zero_extendqisi2
+ movw r3, #3852
+ ldr r7, [r5, #3980]
cmp r8, #0
ldrh r6, [r5, r3]
- bne .L1981
+ bne .L2014
sub r7, r7, #1
mov r1, sp
mov r2, r8
mov r0, r7
bl log2phys
ldr r3, [sp, #0]
- ldr r0, [r4, #-956]
- ldr r4, [r4, #-932]
+ ldr r0, [r4, #-948]
+ ldr r4, [r4, #-924]
cmn r3, #1
str r3, [sp, #8]
str r7, [sp, #20]
str r0, [sp, #12]
str r4, [sp, #16]
str r8, [r4, #4]
- beq .L1984
+ beq .L2017
add r0, sp, #4
mov r1, #1
mov r2, r8
bl FlashReadPages
- b .L1985
-.L1984:
- movw r3, #3926
+ b .L2018
+.L2017:
+ movw r3, #3928
mov r1, #255
ldrh r2, [r5, r3]
bl ftl_memset
-.L1985:
- ldr r3, .L1990+12
+.L2018:
+ ldr r3, .L2023+12
mov r6, r6, asl #2
- ldr r5, .L1990+4
- ldr sl, .L1990+8
+ ldr r5, .L2023+4
+ ldr sl, .L2023+8
strh r3, [r4, #0] @ movhi
- ldr r8, .L1990+16
- b .L1986
-.L1989:
+ ldr r8, .L2023+16
+ b .L2019
+.L2022:
ldrh r3, [r5, sl]
cmp r3, #0
- beq .L1987
+ beq .L2020
ldr r3, [sp, #8]
sub r6, r6, #1
str r7, [r4, #8]
- ldr r0, .L1990+20
+ ldr r0, .L2023+20
str r3, [r4, #12]
ldrh r3, [r5, r8]
strh r3, [r4, #2] @ movhi
bl get_new_active_ppa
- ldr r3, [r5, #-1800]
+ ldr r3, [r5, #-1796]
mov r2, #0
mov r1, #1
str r0, [sp, #8]
@@ -17473,36 +17749,36 @@ FtlWriteDumpData:
str r3, [r4, #4]
add r3, r3, #1
cmn r3, #1
- str r3, [r5, #-1800]
+ str r3, [r5, #-1796]
moveq r3, #0
- streq r3, [r5, #-1800]
+ streq r3, [r5, #-1796]
mov r3, r2
bl FlashProgPages
ldrh r0, [r5, r8]
bl decrement_vpc_count
-.L1986:
+.L2019:
cmp r6, #0
- bne .L1989
-.L1987:
- ldr r3, .L1990+4
+ bne .L2022
+.L2020:
+ ldr r3, .L2023+4
mov r2, #1
- strb r2, [r3, #-1986]
- b .L1981
-.L1983:
+ strb r2, [r3, #-1982]
+ b .L2014
+.L2016:
mov r3, #0
- strb r3, [r2, #-1986]
-.L1981:
+ strb r3, [r2, #-1982]
+.L2014:
add sp, sp, #44
ldmfd sp!, {r4, r5, r6, r7, r8, sl, pc}
-.L1991:
+.L2024:
.align 2
-.L1990:
+.L2023:
.word .LANCHOR0
.word .LANCHOR2
- .word -1992
+ .word -1988
.word -3947
- .word -1996
- .word .LANCHOR2-1996
+ .word -1992
+ .word .LANCHOR2-1992
.fnend
.size FtlWriteDumpData, .-FtlWriteDumpData
.align 2
@@ -17516,31 +17792,31 @@ l2p_flush:
.save {r3, r4, r5, r6, r7, lr}
bl FtlWriteDumpData
mov r4, #0
- ldr r7, .L1996
- movw r6, #3954
- ldr r5, .L1996+4
- b .L1993
-.L1995:
- ldr r3, [r5, #-1852]
+ ldr r7, .L2029
+ movw r6, #3958
+ ldr r5, .L2029+4
+ b .L2026
+.L2028:
+ ldr r3, [r5, #-1848]
mov r2, #12
mla r3, r2, r4, r3
ldr r3, [r3, #4]
cmp r3, #0
- bge .L1994
+ bge .L2027
mov r0, r4
bl flush_l2p_region
-.L1994:
+.L2027:
add r4, r4, #1
uxth r4, r4
-.L1993:
+.L2026:
ldrh r3, [r7, r6]
cmp r3, r4
- bhi .L1995
+ bhi .L2028
mov r0, #0
ldmfd sp!, {r3, r4, r5, r6, r7, pc}
-.L1997:
+.L2030:
.align 2
-.L1996:
+.L2029:
.word .LANCHOR0
.word .LANCHOR2
.fnend
@@ -17552,107 +17828,107 @@ allocate_new_data_superblock:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L2010
+ ldr r3, .L2043
stmfd sp!, {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
mov r4, r0
- ldr r3, [r3, #4040]
+ ldr r3, [r3, #4044]
ldrh r5, [r0, #0]
cmp r3, #0
- bne .L1999
+ bne .L2032
movw r3, #65535
cmp r5, r3
- beq .L2000
- ldr r3, .L2010+4
+ beq .L2033
+ ldr r3, .L2043+4
mov r0, r5
- ldr r2, [r3, #-2016]
+ ldr r2, [r3, #-2012]
mov r3, r5, asl #1
ldrh r3, [r2, r3]
cmp r3, #0
- beq .L2001
+ beq .L2034
bl INSERT_DATA_LIST
- b .L2000
-.L2001:
+ b .L2033
+.L2034:
bl INSERT_FREE_LIST
-.L2000:
+.L2033:
mov r3, #0
strb r3, [r4, #8]
- ldr r3, .L2010+8
+ ldr r3, .L2043+8
cmp r4, r3
- beq .L2002
- ldr r2, .L2010
- movw r3, #3868
+ beq .L2035
+ ldr r2, .L2043
+ mov r3, #3872
ldrh r3, [r2, r3]
cmp r3, #1
- beq .L2002
- ldrb r2, [r2, #928] @ zero_extendqisi2
+ beq .L2035
+ ldrb r2, [r2, #3072] @ zero_extendqisi2
cmp r2, #0
- beq .L2003
-.L2002:
+ beq .L2036
+.L2035:
mov r3, #1
strb r3, [r4, #8]
- b .L2004
-.L2003:
- ldr r2, .L2010+12
+ b .L2037
+.L2036:
+ ldr r2, .L2043+12
cmp r4, r2
- bne .L2004
+ bne .L2037
cmp r3, #3
- ldr r3, .L2010+4
- beq .L2005
- ldr r2, [r3, #-1712]
+ ldr r3, .L2043+4
+ beq .L2038
+ ldr r2, [r3, #-1704]
cmp r2, #1
- bne .L2006
-.L2005:
+ bne .L2039
+.L2038:
mov r2, #1
- strb r2, [r3, #-1988]
-.L2006:
- ldr r2, .L2010
- ldr r2, [r2, #3840]
+ strb r2, [r3, #-1984]
+.L2039:
+ ldr r2, .L2043
+ ldr r2, [r2, #3844]
cmp r2, #0
- beq .L2004
- ldr r3, [r3, #-1780]
+ beq .L2037
+ ldr r3, [r3, #-1776]
cmp r3, #39
- ldrls r3, .L2010+4
+ ldrls r3, .L2043+4
movls r2, #1
- strlsb r2, [r3, #-1988]
-.L2004:
- ldr r3, .L2010+16
- ldr r6, .L2010+4
+ strlsb r2, [r3, #-1984]
+.L2037:
+ ldr r3, .L2043+16
+ ldr r6, .L2043+4
ldrh r0, [r6, r3]
movw r3, #65535
cmp r0, r3
- beq .L2007
+ beq .L2040
cmp r5, r0
- bne .L2008
- ldr r2, [r6, #-2016]
+ bne .L2041
+ ldr r2, [r6, #-2012]
mov r3, r0, asl #1
ldrh r3, [r2, r3]
cmp r3, #0
- beq .L2009
-.L2008:
+ beq .L2042
+.L2041:
bl update_vpc_list
-.L2009:
- ldr r3, .L2010+16
+.L2042:
+ ldr r3, .L2043+16
mvn r2, #0
strh r2, [r6, r3] @ movhi
-.L2007:
+.L2040:
mov r0, r4
bl allocate_data_superblock
bl l2p_flush
mov r0, #0
bl FtlEctTblFlush
bl FtlVpcTblFlush
-.L1999:
+.L2032:
mov r0, #0
ldmfd sp!, {r4, r5, r6, pc}
-.L2011:
+.L2044:
.align 2
-.L2010:
+.L2043:
.word .LANCHOR0
.word .LANCHOR2
- .word .LANCHOR2-1948
- .word .LANCHOR2-1996
- .word -1016
+ .word .LANCHOR2-1944
+ .word .LANCHOR2-1992
+ .word -1008
.fnend
.size allocate_new_data_superblock, .-allocate_new_data_superblock
.align 2
@@ -17665,101 +17941,101 @@ FtlVpcCheckAndModify:
stmfd sp!, {r0, r1, r4, r5, r6, r7, r8, lr}
.save {r0, r1, r4, r5, r6, r7, r8, lr}
mov r4, #0
- ldr r6, .L2020
- ldr r1, .L2020+4
- ldr r0, .L2020+8
+ ldr r6, .L2053
+ ldr r1, .L2053+4
+ ldr r0, .L2053+8
bl printk
- movw r3, #3858
+ movw r3, #3862
ldrh r2, [r6, r3]
mov r1, #0
- ldr r5, .L2020+12
+ ldr r5, .L2053+12
mov r2, r2, asl #1
- ldr r0, [r5, #-912]
+ ldr r0, [r5, #-904]
bl ftl_memset
- b .L2013
-.L2015:
+ b .L2046
+.L2048:
mov r0, r4
add r1, sp, #4
mov r2, #0
bl log2phys
ldr r0, [sp, #4]
cmn r0, #1
- beq .L2014
+ beq .L2047
ubfx r0, r0, #10, #16
bl P2V_block_in_plane
- ldr r3, [r5, #-912]
+ ldr r3, [r5, #-904]
mov r0, r0, asl #1
ldrh r2, [r3, r0]
add r2, r2, #1
strh r2, [r3, r0] @ movhi
-.L2014:
+.L2047:
add r4, r4, #1
-.L2013:
- ldr r3, [r6, #3976]
+.L2046:
+ ldr r3, [r6, #3980]
cmp r4, r3
- bcc .L2015
+ bcc .L2048
mov r4, #0
- ldr r7, .L2020
- ldr r5, .L2020+12
- movw r8, #65535
- b .L2016
-.L2019:
- ldr r3, [r5, #-2016]
+ ldr r7, .L2053
+ movw r8, #3860
+ ldr r5, .L2053+12
+ b .L2049
+.L2052:
+ ldr r3, [r5, #-2012]
mov r6, r4, asl #1
ldrh r2, [r3, r6]
- ldr r3, [r5, #-912]
+ ldr r3, [r5, #-904]
ldrh r3, [r3, r6]
cmp r2, r3
- beq .L2017
- cmp r2, r8
- beq .L2017
- ldr r0, .L2020+16
+ beq .L2050
+ movw r1, #65535
+ cmp r2, r1
+ beq .L2050
+ ldr r0, .L2053+16
mov r1, r4
bl printk
- ldr r3, .L2020+20
+ ldr r3, .L2053+20
ldrh r3, [r5, r3]
cmp r3, r4
- beq .L2017
- ldr r3, .L2020+24
+ beq .L2050
+ ldr r3, .L2053+24
ldrh r3, [r5, r3]
cmp r3, r4
- beq .L2017
- ldr r3, .L2020+28
+ beq .L2050
+ ldr r3, .L2053+28
ldrh r3, [r5, r3]
cmp r3, r4
- beq .L2017
- ldr r3, [r5, #-2016]
+ beq .L2050
+ ldr r3, [r5, #-2012]
ldrh r2, [r3, r6]
cmp r2, #0
- ldr r2, [r5, #-912]
+ ldr r2, [r5, #-904]
ldrh r2, [r2, r6]
strh r2, [r3, r6] @ movhi
- beq .L2017
-.L2018:
+ beq .L2050
+.L2051:
mov r0, r4
bl update_vpc_list
-.L2017:
+.L2050:
add r4, r4, #1
uxth r4, r4
-.L2016:
- mov r3, #3856
- ldrh r3, [r7, r3]
+.L2049:
+ ldrh r3, [r7, r8]
cmp r3, r4
- bhi .L2019
+ bhi .L2052
bl l2p_flush
bl FtlVpcTblFlush
ldmfd sp!, {r2, r3, r4, r5, r6, r7, r8, pc}
-.L2021:
+.L2054:
.align 2
-.L2020:
+.L2053:
.word .LANCHOR0
.word .LANCHOR3+48
- .word .LC102
+ .word .LC101
.word .LANCHOR2
- .word .LC146
- .word -1996
- .word -1900
- .word -1948
+ .word .LC147
+ .word -1992
+ .word -1896
+ .word -1944
.fnend
.size FtlVpcCheckAndModify, .-FtlVpcCheckAndModify
.align 2
@@ -17769,101 +18045,101 @@ FtlGcFreeTempBlock:
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L2045
- stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, sl, lr}
- .save {r0, r1, r2, r4, r5, r6, r7, r8, sl, lr}
- movw r2, #3916
+ ldr r3, .L2078
+ movw r2, #3918
+ stmfd sp!, {r0, r1, r4, r5, r6, r7, r8, lr}
+ .save {r0, r1, r4, r5, r6, r7, r8, lr}
ldrh r1, [r3, r2]
- ldr r2, [r3, #4040]
+ ldr r2, [r3, #4044]
cmp r2, #0
- bne .L2043
- ldr ip, .L2045+4
- ldr r3, .L2045+8
+ bne .L2076
+ ldr ip, .L2078+4
+ ldr r3, .L2078+8
ldrh r4, [r3, ip]
movw ip, #65535
cmp r4, ip
- beq .L2024
+ beq .L2057
cmp r0, #0
- beq .L2025
- ldr lr, .L2045+12
- movw r0, #3096
+ beq .L2058
+ ldr lr, .L2078+12
+ movw r0, #3224
ldrh r5, [lr, r0]
cmp r5, ip
movne r1, #2
- bne .L2025
+ bne .L2058
strh r2, [lr, r0] @ movhi
- sub r2, r2, #2000
+ ldr r2, .L2078+16
ldrh r3, [r3, r2]
cmp r3, #17
movhi r1, #2
-.L2025:
- ldr r0, .L2045+16
+.L2058:
+ ldr r0, .L2078+20
bl FtlGcScanTempBlk
cmn r0, #1
str r0, [sp, #4]
- beq .L2026
- ldr r3, .L2045
+ beq .L2059
+ ldr r3, .L2078
mov r4, r4, asl #1
- ldr r3, [r3, #4048]
+ ldr r3, [r3, #4052]
ldrh r2, [r3, r4]
cmp r2, #4
- bls .L2027
+ bls .L2060
sub r2, r2, #5
mov r0, #1
strh r2, [r3, r4] @ movhi
bl FtlEctTblFlush
-.L2027:
- ldr r3, .L2045+8
- ldr r2, [r3, #-1008]
+.L2060:
+ ldr r3, .L2078+8
+ ldr r2, [r3, #-1000]
cmp r2, #0
- bne .L2028
- ldr r2, [r3, #-1612]
+ bne .L2061
+ ldr r2, [r3, #-1604]
ldr r0, [sp, #4]
add r2, r2, #1
- str r2, [r3, #-1612]
+ str r2, [r3, #-1604]
ubfx r0, r0, #10, #16
bl FtlBbmMapBadBlock
bl FtlBbmTblFlush
-.L2028:
- ldr r3, .L2045+8
+.L2061:
+ ldr r3, .L2078+8
mov r2, #0
- str r2, [r3, #-1008]
- b .L2040
-.L2026:
- ldr r2, .L2045+12
- movw r3, #3096
+ str r2, [r3, #-1000]
+ b .L2073
+.L2059:
+ ldr r2, .L2078+12
+ movw r3, #3224
ldrh r2, [r2, r3]
movw r3, #65535
cmp r2, r3
- bne .L2040
-.L2024:
- ldr r6, .L2045+8
+ bne .L2073
+.L2057:
+ ldr r6, .L2078+8
movw r3, #65535
- ldr r5, .L2045+4
+ ldr r5, .L2078+4
mov r4, #0
- str r4, [r6, #-1008]
+ str r4, [r6, #-1000]
ldrh r2, [r6, r5]
cmp r2, r3
- beq .L2023
+ beq .L2056
bl FtlCacheWriteBack
- ldr ip, .L2045
- movw r0, #3916
- ldrb r1, [r6, #-1893] @ zero_extendqisi2
+ ldr ip, .L2078
+ movw r0, #3918
+ ldrb r1, [r6, #-1889] @ zero_extendqisi2
ldrh r3, [r6, r5]
ldrh r0, [ip, r0]
- ldr r2, [r6, #-2016]
- ldr sl, .L2045+20
+ ldr r2, [r6, #-2012]
mov r3, r3, asl #1
mul r1, r0, r1
strh r1, [r2, r3] @ movhi
- ldr r3, [r6, #-1816]
- ldrh r2, [r6, sl]
+ ldr r3, .L2078+24
+ ldrh r2, [r6, r3]
+ ldr r3, [r6, #-1812]
add r3, r2, r3
- str r3, [r6, #-1816]
- b .L2029
-.L2032:
+ str r3, [r6, #-1812]
+ b .L2062
+.L2065:
mov r7, #12
- ldr r8, [r6, #-1148]
+ ldr r8, [r6, #-1140]
mul r7, r7, r4
add r1, sp, #4
mov r2, #0
@@ -17873,7 +18149,7 @@ FtlGcFreeTempBlock:
ldr r0, [sp, #4]
ldr r3, [r8, r7]
cmp r0, r3
- bne .L2030
+ bne .L2063
ubfx r0, r0, #10, #16
bl P2V_block_in_plane
add r1, r5, #4
@@ -17882,153 +18158,152 @@ FtlGcFreeTempBlock:
ldr r0, [r5, #8]
bl log2phys
mov r0, r7
- b .L2044
-.L2030:
+ b .L2077
+.L2063:
ldr r3, [r5, #4]
cmp r0, r3
- beq .L2031
- ldr r3, .L2045+4
+ beq .L2064
+ ldr r3, .L2078+4
ldrh r0, [r6, r3]
-.L2044:
+.L2077:
bl decrement_vpc_count
-.L2031:
+.L2064:
add r4, r4, #1
uxth r4, r4
-.L2029:
- ldrh r3, [r6, sl]
- ldr r5, .L2045+8
+.L2062:
+ ldr r3, .L2078+24
+ ldr r5, .L2078+8
+ ldrh r3, [r6, r3]
cmp r3, r4
- bhi .L2032
+ bhi .L2065
movw r0, #65535
- ldr r4, .L2045+4
+ ldr r4, .L2078+4
bl decrement_vpc_count
- ldr r3, .L2045
- ldrb r3, [r3, #928] @ zero_extendqisi2
+ ldr r3, .L2078
+ ldrb r3, [r3, #3072] @ zero_extendqisi2
cmp r3, #0
- beq .L2033
- ldr r0, .L2045+24
+ beq .L2066
+ ldr r0, .L2078+28
ldrh r1, [r5, r4]
bl printk
-.L2033:
+.L2066:
ldrh r0, [r5, r4]
- ldr r2, [r5, #-2016]
+ ldr r2, [r5, #-2012]
mov r3, r0, asl #1
ldrh r3, [r2, r3]
cmp r3, #0
- beq .L2034
+ beq .L2067
bl INSERT_DATA_LIST
- b .L2035
-.L2034:
+ b .L2068
+.L2067:
bl INSERT_FREE_LIST
-.L2035:
- ldr r5, .L2045+8
+.L2068:
+ ldr r5, .L2078+8
mvn r6, #0
- ldr r3, .L2045+4
+ ldr r3, .L2078+4
mov r4, #0
strh r6, [r5, r3] @ movhi
- add r3, r3, #756
+ add r3, r3, #760
strh r4, [r5, r3] @ movhi
sub r3, r3, #12
strh r4, [r5, r3] @ movhi
bl l2p_flush
bl FtlVpcTblFlush
- ldr r3, .L2045+28
- mov r2, r5
+ ldr r3, .L2078+32
+ mov r0, r5
+ ldr r2, .L2078+16
strh r6, [r5, r3] @ movhi
- ldr r3, .L2045
- ldr r3, [r3, #3840]
+ ldr r3, .L2078
+ ldr r3, [r3, #3844]
cmp r3, r4
- beq .L2036
- ldr r3, [r5, #-1780]
- cmp r3, #39
- bhi .L2036
- ldr r3, .L2045+32
- ldr r2, .L2045+36
+ ldr r3, .L2078+36
+ beq .L2069
+ ldr r1, [r5, #-1776]
+ cmp r1, #39
+ bhi .L2069
ldrh r3, [r5, r3]
ldrh r2, [r5, r2]
cmp r2, r3
- ldrcc r2, .L2045+40
+ ldrcc r2, .L2078+40
movcc r3, r3, asl #1
strcch r3, [r5, r2] @ movhi
- b .L2023
-.L2036:
- ldr r3, .L2045+32
- ldr r0, .L2045+36
- ldr r1, .L2045+8
- ldrh r3, [r2, r3]
- ldrh r2, [r2, r0]
+ b .L2056
+.L2069:
+ ldrh r3, [r0, r3]
+ ldrh r2, [r0, r2]
+ ldr r1, .L2078+8
add r0, r3, r3, asl #1
cmp r2, r0, lsr #2
- ble .L2043
- ldr r2, .L2045
- ldrb r4, [r2, #928] @ zero_extendqisi2
- ldr r2, .L2045+40
+ ble .L2076
+ ldr r2, .L2078
+ ldrb r4, [r2, #3072] @ zero_extendqisi2
+ ldr r2, .L2078+40
cmp r4, #0
subne r3, r3, #2
moveq r3, #20
strneh r3, [r1, r2] @ movhi
streqh r3, [r1, r2] @ movhi
- beq .L2023
- b .L2043
-.L2040:
+ beq .L2056
+ b .L2076
+.L2073:
mov r4, #1
- b .L2023
-.L2043:
+ b .L2056
+.L2076:
mov r4, #0
-.L2023:
+.L2056:
mov r0, r4
- ldmfd sp!, {r1, r2, r3, r4, r5, r6, r7, r8, sl, pc}
-.L2046:
+ ldmfd sp!, {r2, r3, r4, r5, r6, r7, r8, pc}
+.L2079:
.align 2
-.L2045:
+.L2078:
.word .LANCHOR0
- .word -1900
+ .word -1896
.word .LANCHOR2
.word .LANCHOR1
- .word .LANCHOR2-1900
- .word -1144
- .word .LC147
- .word -1760
- .word -1776
- .word -2000
- .word -1196
+ .word -1996
+ .word .LANCHOR2-1896
+ .word -1136
+ .word .LC148
+ .word -1752
+ .word -1772
+ .word -1188
.fnend
.size FtlGcFreeTempBlock, .-FtlGcFreeTempBlock
.align 2
- .type Ftl_gc_temp_data_write_back.part.21, %function
-Ftl_gc_temp_data_write_back.part.21:
+ .type Ftl_gc_temp_data_write_back.part.23, %function
+Ftl_gc_temp_data_write_back.part.23:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
stmfd sp!, {r3, r4, r5, r6, r7, lr}
.save {r3, r4, r5, r6, r7, lr}
mov r2, #0
- ldr r4, .L2053
+ ldr r4, .L2086
mov r3, r2
mov r5, #0
mov r6, #36
- ldr r0, [r4, #-964]
- ldr r1, [r4, #-1180]
+ ldr r0, [r4, #-956]
+ ldr r1, [r4, #-1172]
bl FlashProgPages
- b .L2048
-.L2051:
+ b .L2081
+.L2084:
mul r3, r6, r5
- ldr r1, [r4, #-964]
+ ldr r1, [r4, #-956]
add r2, r1, r3
ldr r1, [r1, r3]
cmn r1, #1
- bne .L2049
- ldr r2, .L2053+4
+ bne .L2082
+ ldr r2, .L2086+4
mov lr, #0
- ldr ip, [r7, #-2016]
+ ldr ip, [r7, #-2012]
ldrh r0, [r7, r2]
mov r0, r0, asl #1
strh lr, [ip, r0] @ movhi
strh r1, [r7, r2] @ movhi
- ldr r2, [r7, #-1612]
+ ldr r2, [r7, #-1604]
add r2, r2, #1
- str r2, [r7, #-1612]
- ldr r2, [r7, #-964]
+ str r2, [r7, #-1604]
+ ldr r2, [r7, #-956]
add r3, r2, r3
ldr r0, [r3, #4]
ubfx r0, r0, #10, #16
@@ -18037,7 +18312,7 @@ Ftl_gc_temp_data_write_back.part.21:
bl FtlGcPageVarInit
mov r0, #1
ldmfd sp!, {r3, r4, r5, r6, r7, pc}
-.L2049:
+.L2082:
ldr r3, [r2, #12]
add r5, r5, #1
ldr r1, [r2, #4]
@@ -18045,16 +18320,16 @@ Ftl_gc_temp_data_write_back.part.21:
ldr r0, [r3, #12]
ldr r2, [r3, #8]
bl FtlGcUpdatePage
-.L2048:
- ldr r1, [r4, #-1180]
- ldr r7, .L2053
+.L2081:
+ ldr r1, [r4, #-1172]
+ ldr r7, .L2086
cmp r5, r1
- bcc .L2051
- ldr r0, [r7, #-964]
+ bcc .L2084
+ ldr r0, [r7, #-956]
bl FtlGcBufFree
- ldr r3, .L2053+8
+ ldr r3, .L2086+8
mov r0, #0
- str r0, [r7, #-1180]
+ str r0, [r7, #-1172]
ldrh r3, [r7, r3]
cmp r3, r0
ldmnefd sp!, {r3, r4, r5, r6, r7, pc}
@@ -18062,14 +18337,14 @@ Ftl_gc_temp_data_write_back.part.21:
bl FtlGcFreeTempBlock
mov r0, #1
ldmfd sp!, {r3, r4, r5, r6, r7, pc}
-.L2054:
+.L2087:
.align 2
-.L2053:
+.L2086:
.word .LANCHOR2
- .word -1900
.word -1896
+ .word -1892
.fnend
- .size Ftl_gc_temp_data_write_back.part.21, .-Ftl_gc_temp_data_write_back.part.21
+ .size Ftl_gc_temp_data_write_back.part.23, .-Ftl_gc_temp_data_write_back.part.23
.align 2
.global Ftl_gc_temp_data_write_back
.type Ftl_gc_temp_data_write_back, %function
@@ -18078,32 +18353,32 @@ Ftl_gc_temp_data_write_back:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L2060
- ldr r2, [r3, #4040]
+ ldr r3, .L2093
+ ldr r2, [r3, #4044]
cmp r2, #0
- bne .L2056
- ldrb r3, [r3, #928] @ zero_extendqisi2
+ bne .L2089
+ ldrb r3, [r3, #3072] @ zero_extendqisi2
cmp r3, #0
- beq .L2057
- ldr r3, .L2060+4
- ldr r2, [r3, #-1180]
+ beq .L2090
+ ldr r3, .L2093+4
+ ldr r2, [r3, #-1172]
tst r2, #1
- beq .L2057
- ldr r2, .L2060+8
+ beq .L2090
+ ldr r2, .L2093+8
ldrh r3, [r3, r2]
cmp r3, #0
- bne .L2056
-.L2057:
- b Ftl_gc_temp_data_write_back.part.21
-.L2056:
+ bne .L2089
+.L2090:
+ b Ftl_gc_temp_data_write_back.part.23
+.L2089:
mov r0, #0
bx lr
-.L2061:
+.L2094:
.align 2
-.L2060:
+.L2093:
.word .LANCHOR0
.word .LANCHOR2
- .word -1896
+ .word -1892
.fnend
.size Ftl_gc_temp_data_write_back, .-Ftl_gc_temp_data_write_back
.align 2
@@ -18115,32 +18390,32 @@ FtlGcPageRecovery:
@ frame_needed = 0, uses_anonymous_args = 0
stmfd sp!, {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
- movw r5, #3916
- ldr r6, .L2064
- ldr r0, .L2064+4
- ldr r4, .L2064+8
+ movw r5, #3918
+ ldr r6, .L2097
+ ldr r0, .L2097+4
+ ldr r4, .L2097+8
ldrh r1, [r6, r5]
bl FtlGcScanTempBlk
- ldr r3, .L2064+12
+ ldr r3, .L2097+12
ldrh r2, [r4, r3]
ldrh r3, [r6, r5]
cmp r2, r3
ldmccfd sp!, {r4, r5, r6, pc}
- ldr r0, .L2064+16
+ ldr r0, .L2097+16
bl FtlMapBlkWriteDumpData
mov r0, #0
bl FtlGcFreeTempBlock
mov r3, #0
- str r3, [r4, #-1008]
+ str r3, [r4, #-1000]
ldmfd sp!, {r4, r5, r6, pc}
-.L2065:
+.L2098:
.align 2
-.L2064:
+.L2097:
.word .LANCHOR0
- .word .LANCHOR2-1900
+ .word .LANCHOR2-1896
.word .LANCHOR2
- .word -1898
- .word .LANCHOR2-1084
+ .word -1894
+ .word .LANCHOR2-1076
.fnend
.size FtlGcPageRecovery, .-FtlGcPageRecovery
.align 2
@@ -18153,9 +18428,9 @@ FtlPowerLostRecovery:
stmfd sp!, {r3, r4, r5, lr}
.save {r3, r4, r5, lr}
mov r4, #0
- ldr r3, .L2067
- ldr r5, .L2067+4
- str r4, [r3, #304]
+ ldr r3, .L2100
+ ldr r5, .L2100+4
+ str r4, [r3, #312]
mov r0, r5
bl FtlRecoverySuperblock
mov r0, r5
@@ -18170,11 +18445,11 @@ FtlPowerLostRecovery:
bl decrement_vpc_count
mov r0, r4
ldmfd sp!, {r3, r4, r5, pc}
-.L2068:
+.L2101:
.align 2
-.L2067:
+.L2100:
.word .LANCHOR2
- .word .LANCHOR2-1996
+ .word .LANCHOR2-1992
.fnend
.size FtlPowerLostRecovery, .-FtlPowerLostRecovery
.align 2
@@ -18186,26 +18461,26 @@ FtlSysBlkInit:
@ frame_needed = 0, uses_anonymous_args = 0
stmfd sp!, {r3, r4, r5, r6, r7, lr}
.save {r3, r4, r5, r6, r7, lr}
- mov r3, #300
- ldr r6, .L2082
+ mov r3, #308
+ ldr r6, .L2115
mov r2, #0
- ldr r4, .L2082+4
+ ldr r4, .L2115+4
mvn r5, #0
- ldr r0, [r6, #3852]
+ ldr r0, [r6, #3856]
strh r2, [r4, r3] @ movhi
- movw r3, #298
+ movw r3, #306
strh r5, [r4, r3] @ movhi
uxth r0, r0
bl FtlFreeSysBlkQueueInit
bl FtlScanSysBlk
- ldr r3, .L2082+8
+ ldr r3, .L2115+8
ldrh r2, [r4, r3]
movw r3, #65535
cmp r2, r3
- beq .L2070
+ beq .L2103
bl FtlLoadSysInfo
subs r7, r0, #0
- bne .L2070
+ bne .L2103
bl FtlLoadMapInfo
bl FtlLoadVonderInfo
bl Ftl_load_ext_data
@@ -18215,53 +18490,53 @@ FtlSysBlkInit:
bl FtlPowerLostRecovery
mov r0, #1
bl FtlUpdateVaildLpn
- movw r3, #3954
+ movw r3, #3958
ldrh r1, [r6, r3]
mov r2, r7
- ldr r3, [r4, #-1852]
- b .L2071
-.L2073:
+ ldr r3, [r4, #-1848]
+ b .L2104
+.L2106:
add r0, r3, r7
add r7, r7, #12
ldr r0, [r0, #4]
cmp r0, #0
- blt .L2072
+ blt .L2105
add r2, r2, #1
-.L2071:
+.L2104:
cmp r2, r1
- blt .L2073
-.L2072:
- ldr r3, .L2082+4
+ blt .L2106
+.L2105:
+ ldr r3, .L2115+4
cmp r2, r1
- ldr r0, .L2082+12
+ ldr r0, .L2115+12
ldrh ip, [r3, r0]
add ip, ip, #1
strh ip, [r3, r0] @ movhi
- blt .L2074
- mov r2, #300
+ blt .L2107
+ mov r2, #308
ldrh r2, [r3, r2]
cmp r2, #0
- beq .L2075
-.L2074:
- ldr r2, .L2082+16
- ldr r0, [r3, #-2016]
- ldr r1, .L2082+20
+ beq .L2108
+.L2107:
+ ldr r2, .L2115+16
+ ldr r0, [r3, #-2012]
+ ldr r1, .L2115+20
ldrh r2, [r3, r2]
ldrh ip, [r3, r1]
mov r2, r2, asl #1
ldrh lr, [r0, r2]
rsb ip, ip, lr
strh ip, [r0, r2] @ movhi
- ldr ip, .L2082
- movw r0, #3916
- ldr r2, .L2082+24
- ldr r4, [r3, #-2016]
+ ldr ip, .L2115
+ movw r0, #3918
+ ldr r2, .L2115+24
+ ldr r4, [r3, #-2012]
ldrh lr, [ip, r0]
strh lr, [r3, r2] @ movhi
mov r2, #0
strh r2, [r3, r1] @ movhi
add r1, r1, #44
- strb r2, [r3, #-1990]
+ strb r2, [r3, #-1986]
ldrh lr, [r3, r1]
add r1, r1, #4
ldrh r5, [r3, r1]
@@ -18270,10 +18545,10 @@ FtlSysBlkInit:
rsb r5, r5, r6
strh r5, [r4, lr] @ movhi
strh r2, [r3, r1] @ movhi
- strb r2, [r3, #-1942]
- ldr r2, .L2082+28
+ strb r2, [r3, #-1938]
+ ldr r2, .L2115+28
ldrh ip, [ip, r0]
- ldr r0, .L2082+32
+ ldr r0, .L2115+32
ldrh r1, [r3, r2]
strh ip, [r3, r0] @ movhi
add r1, r1, #1
@@ -18281,120 +18556,120 @@ FtlSysBlkInit:
bl l2p_flush
bl FtlVpcTblFlush
bl FtlVpcTblFlush
-.L2075:
- ldr r3, .L2082+4
- ldr r2, .L2082+12
+.L2108:
+ ldr r3, .L2115+4
+ ldr r2, .L2115+12
mov r5, r3
ldrh r2, [r3, r2]
tst r2, #31
- bne .L2076
+ bne .L2109
bl FtlVpcCheckAndModify
-.L2076:
- ldr r2, .L2082+16
+.L2109:
+ ldr r2, .L2115+16
movw r3, #65535
- ldr r4, .L2082+4
+ ldr r4, .L2115+4
ldrh r0, [r5, r2]
cmp r0, r3
- beq .L2080
- ldr r3, .L2082+20
+ beq .L2113
+ ldr r3, .L2115+20
ldrh r3, [r4, r3]
cmp r3, #0
- bne .L2080
+ bne .L2113
add r2, r2, #52
ldrh r5, [r4, r2]
cmp r5, #0
movne r5, r3
- bne .L2070
+ bne .L2103
bl FtlGcRefreshOpenBlock
- ldr r3, .L2082+36
+ ldr r3, .L2115+36
ldrh r0, [r4, r3]
bl FtlGcRefreshOpenBlock
bl FtlVpcTblFlush
- ldr r0, .L2082+40
+ ldr r0, .L2115+40
bl allocate_new_data_superblock
- ldr r0, .L2082+44
+ ldr r0, .L2115+44
bl allocate_new_data_superblock
- b .L2070
-.L2080:
+ b .L2103
+.L2113:
mov r5, #0
-.L2070:
+.L2103:
mov r0, r5
ldmfd sp!, {r3, r4, r5, r6, r7, pc}
-.L2083:
+.L2116:
.align 2
-.L2082:
+.L2115:
.word .LANCHOR0
.word .LANCHOR2
- .word -1772
- .word -2044
- .word -1996
+ .word -1768
+ .word -2040
.word -1992
- .word -1994
- .word -2042
- .word -1946
- .word -1948
- .word .LANCHOR2-1996
- .word .LANCHOR2-1948
+ .word -1988
+ .word -1990
+ .word -2038
+ .word -1942
+ .word -1944
+ .word .LANCHOR2-1992
+ .word .LANCHOR2-1944
.fnend
.size FtlSysBlkInit, .-FtlSysBlkInit
.align 2
- .type FtlLowFormat.part.25, %function
-FtlLowFormat.part.25:
+ .type FtlLowFormat.part.27, %function
+FtlLowFormat.part.27:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
stmfd sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
.save {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
- mov r6, #3952
- ldr r5, .L2105
+ movw r6, #3956
+ ldr r5, .L2138
mov r1, #0
- ldr r4, .L2105+4
+ ldr r4, .L2138+4
ldrh r2, [r5, r6]
- ldr r0, [r4, #-896]
+ ldr r0, [r4, #-888]
mov r2, r2, asl #2
bl ftl_memset
ldrh r2, [r5, r6]
mov r1, #0
- ldr r0, [r4, #-1028]
+ ldr r0, [r4, #-1020]
mov r2, r2, asl #2
bl ftl_memset
- ldr r0, [r5, #3852]
+ ldr r0, [r5, #3856]
mov r3, #0
- str r3, [r4, #-1804]
str r3, [r4, #-1800]
+ str r3, [r4, #-1796]
uxth r0, r0
bl FtlFreeSysBlkQueueInit
bl FtlLoadBbt
cmp r0, #0
- beq .L2085
+ beq .L2118
bl FtlMakeBbt
-.L2085:
+.L2118:
mov r3, #0
- ldr ip, .L2105
- movw r0, #3922
- ldr r2, .L2105+4
- ldr r1, .L2105+8
- b .L2086
-.L2087:
- ldr lr, [r2, #-940]
+ ldr ip, .L2138
+ movw r0, #3924
+ ldr r2, .L2138+4
+ ldr r1, .L2138+8
+ b .L2119
+.L2120:
+ ldr lr, [r2, #-932]
mvn r4, r3
orr r4, r3, r4, asl #16
str r4, [lr, r3, asl #2]
- ldr lr, [r2, #-936]
+ ldr lr, [r2, #-928]
str r1, [lr, r3, asl #2]
add r3, r3, #1
uxth r3, r3
-.L2086:
+.L2119:
ldrh lr, [ip, r0]
- ldr r8, .L2105
+ ldr r8, .L2138
cmp r3, lr, asl #7
- blt .L2087
- mov r3, #3856
+ blt .L2120
+ movw r3, #3860
mov r5, #0
ldrh r6, [r8, r3]
- movw r7, #3858
- b .L2088
-.L2089:
+ movw r7, #3862
+ b .L2121
+.L2122:
mov r0, r6
mov r1, #1
bl FtlLowFormatEraseBlock
@@ -18402,46 +18677,46 @@ FtlLowFormat.part.25:
uxth r6, r6
add r5, r5, r0
uxth r5, r5
-.L2088:
+.L2121:
ldrh r3, [r8, r7]
- ldr r4, .L2105
+ ldr r4, .L2138
cmp r3, r6
- bhi .L2089
- movw r3, #3848
+ bhi .L2122
+ movw r3, #3852
ldrh r1, [r4, r3]
sub r3, r5, #3
cmp r3, r1, asl #1
- blt .L2090
+ blt .L2123
mov r0, r5
- movw r6, #3858
+ movw r6, #3862
bl __aeabi_uidiv
- ldr r3, [r4, #3948]
+ ldr r3, [r4, #3952]
add r0, r0, r3
uxth r0, r0
bl FtlSysBlkNumInit
- ldr r0, [r4, #3852]
+ ldr r0, [r4, #3856]
uxth r0, r0
bl FtlFreeSysBlkQueueInit
- mov r3, #3856
+ movw r3, #3860
ldrh r5, [r4, r3]
- b .L2091
-.L2092:
+ b .L2124
+.L2125:
mov r0, r5
mov r1, #1
bl FtlLowFormatEraseBlock
add r5, r5, #1
uxth r5, r5
-.L2091:
+.L2124:
ldrh r3, [r4, r6]
cmp r3, r5
- bhi .L2092
-.L2090:
+ bhi .L2125
+.L2123:
mov r4, #0
- ldr r8, .L2105
+ ldr r8, .L2138
mov r6, r4
- mov r7, #3856
- b .L2093
-.L2094:
+ movw r7, #3860
+ b .L2126
+.L2127:
mov r0, r6
mov r1, #0
bl FtlLowFormatEraseBlock
@@ -18449,18 +18724,18 @@ FtlLowFormat.part.25:
uxth r6, r6
add r4, r4, r0
uxth r4, r4
-.L2093:
+.L2126:
ldrh r3, [r8, r7]
- ldr r5, .L2105
+ ldr r5, .L2138
cmp r3, r6
- bhi .L2094
- movw r3, #3858
- ldr r8, .L2105+4
+ bhi .L2127
+ movw r3, #3862
+ ldr r8, .L2138+4
ldrh r3, [r5, r3]
- ldr fp, [r5, #3860]
- ldr r9, .L2105+12
- str r3, [r8, #-980]
- movw r3, #3848
+ ldr fp, [r5, #3864]
+ ldr r9, .L2138+12
+ str r3, [r8, #-972]
+ movw r3, #3852
ldrh r6, [r5, r3]
mov r0, fp
mov r1, r6
@@ -18470,220 +18745,220 @@ FtlLowFormat.part.25:
add r3, sl, #36
strh r3, [r8, r9] @ movhi
mov r3, #24
- str r0, [r5, #3976]
+ str r0, [r5, #3980]
mul r3, r3, r6
cmp r4, r3
- ble .L2095
+ ble .L2128
rsb r0, r4, fp
mov r1, r6
bl __aeabi_uidiv
- str r0, [r5, #3976]
+ str r0, [r5, #3980]
mov r0, r0, lsr #5
add r0, r0, #24
strh r0, [r8, r9] @ movhi
-.L2095:
- ldr r3, .L2105
- ldr r3, [r3, #3840]
+.L2128:
+ ldr r3, .L2138
+ ldr r3, [r3, #3844]
cmp r3, #1
- bne .L2096
+ bne .L2129
mov r0, r4
mov r1, r6
bl __aeabi_uidiv
- ldr r8, .L2105+4
- ldr r5, .L2105+12
+ ldr r8, .L2138+4
+ ldr r5, .L2138+12
ldrh r9, [r8, r5]
uxtah r0, r9, r0
add r9, r9, r0, lsr #2
strh r9, [r8, r5] @ movhi
-.L2096:
- ldr r3, .L2105
- ldrb r3, [r3, #928] @ zero_extendqisi2
+.L2129:
+ ldr r3, .L2138
+ ldrb r3, [r3, #3072] @ zero_extendqisi2
cmp r3, #0
- beq .L2097
+ beq .L2130
mov r0, r4
mov r1, r6
bl __aeabi_uidiv
- ldr r8, .L2105+4
- ldr r5, .L2105+12
+ ldr r8, .L2138+4
+ ldr r5, .L2138+12
ldrh r9, [r8, r5]
uxtah r0, r9, r0
add r9, r9, r0, lsr #2
strh r9, [r8, r5] @ movhi
-.L2097:
- ldr r0, .L2105
- movw r3, #3908
+.L2130:
+ ldr r0, .L2138
+ movw r3, #3912
ldrh r3, [r0, r3]
cmp r3, #0
- beq .L2098
- ldr r1, .L2105+4
- ldr r2, .L2105+12
+ beq .L2131
+ ldr r1, .L2138+4
+ ldr r2, .L2138+12
ldrh ip, [r1, r2]
add ip, ip, r3, lsr #1
strh ip, [r1, r2] @ movhi
mul ip, r6, r3
cmp ip, r4
- strgt r7, [r0, #3976]
+ strgt r7, [r0, #3980]
addgt r3, r3, #32
addgt sl, sl, r3
strgth sl, [r1, r2] @ movhi
-.L2098:
- ldr r4, .L2105+4
- ldr r5, .L2105
- ldr r3, .L2105+12
- ldr r7, .L2105+16
- ldr r2, [r5, #3976]
+.L2131:
+ ldr r4, .L2138+4
+ ldr r5, .L2138
+ ldr r3, .L2138+12
+ ldr r7, .L2138+16
+ ldr r2, [r5, #3980]
ldrh r3, [r4, r3]
rsb r3, r3, r2
mul r6, r6, r3
- movw r3, #3916
+ movw r3, #3918
ldrh r3, [r5, r3]
- str r6, [r4, #220]
+ str r6, [r4, #228]
mul r6, r3, r6
- movw r3, #3922
+ movw r3, #3924
ldrh r3, [r5, r3]
- str r6, [r5, #3976]
+ str r6, [r5, #3980]
mul r6, r3, r6
- str r6, [r5, #3956]
+ str r6, [r5, #3960]
mvn r6, #0
bl FtlBbmTblFlush
- movw r3, #3858
+ movw r3, #3862
ldrh r2, [r5, r3]
mov r1, #0
- ldr r0, [r4, #-2016]
+ ldr r0, [r4, #-2012]
mov r2, r2, asl #1
bl ftl_memset
- ldr r1, .L2105+20
+ ldr r1, .L2138+20
mov r3, #0
- ldr r2, .L2105+24
- str r3, [r4, #-1844]
+ ldr r2, .L2138+24
+ str r3, [r4, #-1840]
strh r3, [r4, r1] @ movhi
- sub r1, r1, #236
- strb r3, [r4, #-1754]
+ sub r1, r1, #240
+ strb r3, [r4, #-1746]
strh r3, [r4, r1] @ movhi
mov r1, #255
- strb r3, [r4, #-1752]
- strb r3, [r4, #-1990]
+ strb r3, [r4, #-1744]
+ strb r3, [r4, #-1986]
strh r3, [r4, r7] @ movhi
mov r3, #1
- strb r3, [r4, #-1988]
- mov r3, #3856
+ strb r3, [r4, #-1984]
+ movw r3, #3860
strh r6, [r4, r2] @ movhi
ldrh r2, [r5, r3]
- ldr r0, [r4, #-1840]
+ ldr r0, [r4, #-1836]
mov r2, r2, lsr #3
bl ftl_memset
-.L2099:
- ldr r0, .L2105+28
+.L2132:
+ ldr r0, .L2138+28
bl make_superblock
- ldrb r3, [r4, #-1989] @ zero_extendqisi2
- ldr r5, .L2105+4
+ ldrb r3, [r4, #-1985] @ zero_extendqisi2
+ ldr r5, .L2138+4
cmp r3, #0
- ldr r3, .L2105+16
- bne .L2100
+ ldr r3, .L2138+16
+ bne .L2133
ldrh r3, [r4, r7]
- ldr r2, [r4, #-2016]
+ ldr r2, [r4, #-2012]
mov r3, r3, asl #1
strh r6, [r2, r3] @ movhi
ldrh r3, [r4, r7]
add r3, r3, #1
strh r3, [r4, r7] @ movhi
- b .L2099
-.L2100:
- ldr r2, [r5, #-1804]
+ b .L2132
+.L2133:
+ ldr r2, [r5, #-1800]
mvn r7, #0
- ldr r1, [r5, #-2016]
- ldr r6, .L2105+32
- str r2, [r5, #-1984]
+ ldr r1, [r5, #-2012]
+ ldr r6, .L2138+32
+ str r2, [r5, #-1980]
add r2, r2, #1
- str r2, [r5, #-1804]
- ldr r2, .L2105+36
+ str r2, [r5, #-1800]
+ ldr r2, .L2138+36
ldrh r0, [r5, r2]
ldrh r2, [r5, r3]
mov r2, r2, asl #1
strh r0, [r1, r2] @ movhi
mov r2, #0
- ldr r0, .L2105+40
+ ldr r0, .L2138+40
ldrh r3, [r5, r3]
- strb r2, [r5, #-1942]
+ strb r2, [r5, #-1938]
add r3, r3, #1
strh r2, [r5, r0] @ movhi
strh r3, [r5, r6] @ movhi
mov r3, #1
- strb r3, [r5, #-1940]
-.L2101:
- ldr r0, .L2105+44
+ strb r3, [r5, #-1936]
+.L2134:
+ ldr r0, .L2138+44
bl make_superblock
- ldrb r3, [r5, #-1941] @ zero_extendqisi2
- ldr r4, .L2105+4
+ ldrb r3, [r5, #-1937] @ zero_extendqisi2
+ ldr r4, .L2138+4
cmp r3, #0
- bne .L2102
+ bne .L2135
ldrh r3, [r5, r6]
- ldr r2, [r5, #-2016]
+ ldr r2, [r5, #-2012]
mov r3, r3, asl #1
strh r7, [r2, r3] @ movhi
ldrh r3, [r5, r6]
add r3, r3, #1
strh r3, [r5, r6] @ movhi
- b .L2101
-.L2102:
- ldr r3, [r4, #-1804]
+ b .L2134
+.L2135:
+ ldr r3, [r4, #-1800]
mvn r5, #0
- ldr r2, [r4, #-2016]
- str r3, [r4, #-1936]
+ ldr r2, [r4, #-2012]
+ str r3, [r4, #-1932]
add r3, r3, #1
- str r3, [r4, #-1804]
- ldr r3, .L2105+48
+ str r3, [r4, #-1800]
+ ldr r3, .L2138+48
ldrh r1, [r4, r3]
sub r3, r3, #4
ldrh r3, [r4, r3]
mov r3, r3, asl #1
strh r1, [r2, r3] @ movhi
- ldr r3, .L2105+52
+ ldr r3, .L2138+52
strh r5, [r4, r3] @ movhi
bl FtlFreeSysBlkQueueOut
- ldr r3, .L2105+56
+ ldr r3, .L2138+56
mov r2, #0
strh r0, [r4, r3] @ movhi
add r3, r3, #2
strh r2, [r4, r3] @ movhi
add r3, r3, #2
- ldr r2, [r4, #220]
+ ldr r2, [r4, #228]
strh r5, [r4, r3] @ movhi
add r3, r3, #2
strh r2, [r4, r3] @ movhi
- ldr r3, [r4, #-1804]
- str r3, [r4, #-1764]
+ ldr r3, [r4, #-1800]
+ str r3, [r4, #-1760]
add r3, r3, #1
- str r3, [r4, #-1804]
+ str r3, [r4, #-1800]
bl FtlVpcTblFlush
bl FtlSysBlkInit
cmp r0, #0
ldmnefd sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
- ldr r3, .L2105+60
+ ldr r3, .L2138+60
mov r2, #1
- str r2, [r3, #3092]
+ str r2, [r3, #3220]
ldmfd sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L2106:
+.L2139:
.align 2
-.L2105:
+.L2138:
.word .LANCHOR0
.word .LANCHOR2
.word 168778952
- .word -1776
- .word -1996
- .word -1758
- .word -1760
- .word .LANCHOR2-1996
- .word -1948
+ .word -1772
.word -1992
- .word -1946
- .word .LANCHOR2-1948
+ .word -1750
+ .word -1752
+ .word .LANCHOR2-1992
.word -1944
- .word -1900
- .word -1772
+ .word -1988
+ .word -1942
+ .word .LANCHOR2-1944
+ .word -1940
+ .word -1896
+ .word -1768
.word .LANCHOR1
.fnend
- .size FtlLowFormat.part.25, .-FtlLowFormat.part.25
+ .size FtlLowFormat.part.27, .-FtlLowFormat.part.27
.align 2
.global FtlLowFormat
.type FtlLowFormat, %function
@@ -18693,17 +18968,17 @@ FtlLowFormat:
@ frame_needed = 0, uses_anonymous_args = 0
stmfd sp!, {r3, lr}
.save {r3, lr}
- ldr r3, .L2109
- ldr r3, [r3, #4040]
+ ldr r3, .L2142
+ ldr r3, [r3, #4044]
cmp r3, #0
- bne .L2108
- bl FtlLowFormat.part.25
-.L2108:
+ bne .L2141
+ bl FtlLowFormat.part.27
+.L2141:
mov r0, #0
ldmfd sp!, {r3, pc}
-.L2110:
+.L2143:
.align 2
-.L2109:
+.L2142:
.word .LANCHOR0
.fnend
.size FtlLowFormat, .-FtlLowFormat
@@ -18716,25 +18991,25 @@ Ftl_get_new_temp_ppa:
@ frame_needed = 0, uses_anonymous_args = 0
stmfd sp!, {r3, r4, r5, lr}
.save {r3, r4, r5, lr}
- ldr r3, .L2114
- ldr r5, .L2114+4
+ ldr r3, .L2147
+ ldr r5, .L2147+4
ldrh r2, [r5, r3]
movw r3, #65535
cmp r2, r3
- beq .L2112
- ldr r3, .L2114+8
+ beq .L2145
+ ldr r3, .L2147+8
ldrh r3, [r5, r3]
cmp r3, #0
- bne .L2113
-.L2112:
+ bne .L2146
+.L2145:
bl FtlCacheWriteBack
mov r0, #0
bl FtlGcFreeTempBlock
- ldr r0, .L2114+12
+ ldr r0, .L2147+12
mov r4, #0
- strb r4, [r5, #-1892]
+ strb r4, [r5, #-1888]
bl allocate_data_superblock
- ldr r3, .L2114+16
+ ldr r3, .L2147+16
strh r4, [r5, r3] @ movhi
add r3, r3, #12
strh r4, [r5, r3] @ movhi
@@ -18742,47 +19017,47 @@ Ftl_get_new_temp_ppa:
mov r0, r4
bl FtlEctTblFlush
bl FtlVpcTblFlush
-.L2113:
- ldr r0, .L2114+12
+.L2146:
+ ldr r0, .L2147+12
ldmfd sp!, {r3, r4, r5, lr}
b get_new_active_ppa
-.L2115:
+.L2148:
.align 2
-.L2114:
- .word -1900
- .word .LANCHOR2
+.L2147:
.word -1896
- .word .LANCHOR2-1900
- .word -1156
+ .word .LANCHOR2
+ .word -1892
+ .word .LANCHOR2-1896
+ .word -1148
.fnend
.size Ftl_get_new_temp_ppa, .-Ftl_get_new_temp_ppa
.align 2
- .type ftl_do_gc.part.22, %function
-ftl_do_gc.part.22:
+ .type ftl_do_gc.part.24, %function
+ftl_do_gc.part.24:
.fnstart
@ args = 0, pretend = 0, frame = 24
@ frame_needed = 0, uses_anonymous_args = 0
stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
.save {r4, r5, r6, r7, r8, r9, sl, fp, lr}
mov sl, r1
- ldr r3, .L2213
+ ldr r3, .L2246
.pad #36
sub sp, sp, #36
- ldr r4, .L2213+4
+ ldr r4, .L2246+4
movw r1, #65535
str r0, [sp, #16]
ldrh r7, [r3, r4]
cmp r7, r1
- beq .L2117
- ldr r6, .L2213+8
+ beq .L2150
+ ldr r6, .L2246+8
ldrh r2, [r3, r6]
cmp r2, r1
- bne .L2117
- ldr r0, .L2213+12
+ bne .L2150
+ ldr r0, .L2246+12
ldrh r5, [r3, r0]
cmp r5, r2
- beq .L2117
- ldr r1, .L2213+16
+ beq .L2150
+ ldr r1, .L2246+16
ldrh ip, [r3, r1]
cmp ip, r2
strneh r7, [r3, r6] @ movhi
@@ -18790,87 +19065,87 @@ ftl_do_gc.part.22:
mvnne r2, #0
strneh ip, [r3, r0] @ movhi
strneh r2, [r3, r1] @ movhi
-.L2117:
+.L2150:
ldr r1, [sp, #16]
- ldr r2, [r3, #-1192]
+ ldr r2, [r3, #-1184]
cmp r1, #1
add r2, r2, #1
add r2, r2, r1, asl #7
- str r2, [r3, #-1192]
- bne .L2118
- ldr r3, .L2213+20
- ldr r1, [r3, #3840]
+ str r2, [r3, #-1184]
+ bne .L2151
+ ldr r3, .L2246+20
+ ldr r1, [r3, #3844]
cmp r1, #0
- bne .L2119
- ldrb r3, [r3, #928] @ zero_extendqisi2
+ bne .L2152
+ ldrb r3, [r3, #3072] @ zero_extendqisi2
cmp r3, #0
- beq .L2118
-.L2119:
- ldr r4, .L2213
- ldr r3, [r4, #-1780]
+ beq .L2151
+.L2152:
+ ldr r4, .L2246
+ ldr r3, [r4, #-1776]
cmp r3, #39
- bhi .L2118
- mov r3, #436
+ bhi .L2151
+ mov r3, #444
ldrh r3, [r4, r3]
add r2, r2, r3
- str r2, [r4, #-1192]
+ str r2, [r4, #-1184]
bl FtlGcReFreshBadBlk
- ldr r3, .L2213+24
+ ldr r3, .L2246+24
movw r2, #65535
ldrh r3, [r4, r3]
cmp r3, r2
- bne .L2118
- ldr r2, .L2213+8
+ bne .L2151
+ ldr r2, .L2246+8
ldrh r2, [r4, r2]
cmp r2, r3
- bne .L2118
- ldr r3, [r4, #-1192]
+ bne .L2151
+ ldr r3, [r4, #-1184]
cmp r3, #1024
- bhi .L2120
- ldr r3, .L2213+28
+ bhi .L2153
+ ldr r3, .L2246+28
ldrh r3, [r4, r3]
cmp r3, #63
- bhi .L2118
-.L2120:
- ldr r3, .L2213
- mov r2, #436
- ldr r0, .L2213+28
+ bhi .L2151
+.L2153:
+ ldr r3, .L2246
+ mov r2, #444
+ ldr r0, .L2246+28
mov r1, #0
strh r1, [r3, r2] @ movhi
ldrh ip, [r3, r0]
- ldr r0, .L2213+32
+ ldr r0, .L2246+32
ldrh r0, [r3, r0]
add r0, r0, #64
cmp ip, r0
- bgt .L2118
- str r1, [r3, #-1192]
- ldr r1, [r3, #-1780]
+ bgt .L2151
+ str r1, [r3, #-1184]
+ ldr r1, [r3, #-1776]
cmp r1, #0
moveq r1, #6
- beq .L2209
+ beq .L2242
cmp r1, #5
- bhi .L2122
+ bhi .L2155
mov r1, #18
-.L2209:
+.L2242:
strh r1, [r3, r2] @ movhi
-.L2122:
+.L2155:
mov r0, #32
movw r7, #65535
bl List_get_gc_head_node
uxth r2, r0
cmp r2, r7
- beq .L2123
- ldr r5, .L2213
- ldr r6, .L2213+36
+ beq .L2156
+ ldr r5, .L2246
+ ldr r6, .L2246+36
ldrh r0, [r5, r6]
cmp r0, #0
moveq r3, #1
streqh r3, [r5, r6] @ movhi
- beq .L2123
- ldr r3, .L2213+20
- movw ip, #3918
- movw lr, #3848
- ldr r9, [r5, #-2016]
+ beq .L2156
+ ldr r3, .L2246+20
+ mov ip, #3920
+ movw lr, #3852
+ ldr r9, [r5, #-2012]
mov r2, r2, asl #1
ldrh ip, [r3, ip]
ldrh r3, [r3, lr]
@@ -18878,10 +19153,10 @@ ftl_do_gc.part.22:
mul r3, r3, ip
add r3, r3, #1
cmp r1, r3
- bgt .L2123
+ bgt .L2156
add fp, r0, #1
mov r8, #0
- str r8, [r5, #-1184]
+ str r8, [r5, #-1176]
uxth fp, fp
strh fp, [r5, r6] @ movhi
str r2, [sp, #8]
@@ -18889,10 +19164,10 @@ ftl_do_gc.part.22:
ldr r2, [sp, #8]
uxth r4, r0
cmp r4, r7
- beq .L2123
+ beq .L2156
ldrh r2, [r9, r2]
mov r7, r4, asl #1
- ldr r0, .L2213+40
+ ldr r0, .L2246+40
mov r1, fp
ldrh r3, [r9, r7]
str r2, [sp, #0]
@@ -18900,100 +19175,100 @@ ftl_do_gc.part.22:
bl printk
ldrh r3, [r5, r6]
cmp r3, #40
- bls .L2125
- ldr r3, [r5, #-2016]
+ bls .L2158
+ ldr r3, [r5, #-2012]
ldrh r3, [r3, r7]
cmp r3, #32
strhih r8, [r5, r6] @ movhi
-.L2125:
- ldr r2, .L2213
- mov r3, #436
+.L2158:
+ ldr r2, .L2246
+ mov r3, #444
mov r1, #6
strh r1, [r2, r3] @ movhi
- b .L2127
-.L2123:
+ b .L2160
+.L2156:
bl GetSwlReplaceBlock
movw r3, #65535
cmp r0, r3
mov r4, r0
- bne .L2127
- ldr r2, .L2213
- mov r3, #436
+ bne .L2160
+ ldr r2, .L2246
+ mov r3, #444
mov r1, #0
strh r1, [r2, r3] @ movhi
-.L2118:
- ldr r5, .L2213
+.L2151:
+ ldr r5, .L2246
movw r4, #65535
- ldr r3, .L2213+24
+ ldr r3, .L2246+24
ldrh r2, [r5, r3]
cmp r2, r4
- bne .L2127
- sub r3, r3, #140
+ bne .L2160
+ sub r3, r3, #144
ldrh r3, [r5, r3]
cmp r3, r2
movne r4, r2
- bne .L2127
- ldr r2, .L2213+8
+ bne .L2160
+ ldr r2, .L2246+8
ldrh r7, [r5, r2]
cmp r7, r3
movne r4, r3
- bne .L2127
- ldr r8, .L2213+28
- ldr r2, [r5, #-1192]
+ bne .L2160
+ ldr r8, .L2246+28
+ ldr r2, [r5, #-1184]
ldrh r3, [r5, r8]
cmp r3, #23
movhi r3, #1024
movls r3, #5120
cmp r2, r3
movls r4, r7
- bls .L2127
- mov r2, #436
+ bls .L2160
+ mov r2, #444
mov r3, #0
- str r3, [r5, #-1192]
+ str r3, [r5, #-1184]
mov r6, r5
strh r3, [r5, r2] @ movhi
bl GetSwlReplaceBlock
cmp r0, r7
mov r4, r0
- bne .L2129
- ldr r3, .L2213+32
+ bne .L2162
+ ldr r3, .L2246+32
ldrh r1, [r5, r8]
ldrh r2, [r5, r3]
cmp r1, r2
movcs r2, #80
strcsh r2, [r5, r3] @ movhi
- bcs .L2139
+ bcs .L2172
mov r0, #64
bl List_get_gc_head_node
uxth r3, r0
cmp r3, r4
- beq .L2139
- ldr r2, [r5, #-996]
+ beq .L2172
+ ldr r2, [r5, #-988]
cmp r2, #0
- bne .L2132
- ldr r2, .L2213+20
- movw r1, #3868
+ bne .L2165
+ ldr r2, .L2246+20
+ mov r1, #3872
ldrh r1, [r2, r1]
cmp r1, #3
- beq .L2132
- ldr r1, [r5, #-1712]
+ beq .L2165
+ ldr r1, [r5, #-1704]
cmp r1, #0
- bne .L2132
- ldr r1, [r2, #3840]
+ bne .L2165
+ ldr r1, [r2, #3844]
cmp r1, #0
- bne .L2132
- ldrb r0, [r2, #928] @ zero_extendqisi2
+ bne .L2165
+ ldrb r0, [r2, #3072] @ zero_extendqisi2
cmp r0, #0
- beq .L2133
-.L2132:
- ldr r1, .L2213
+ beq .L2166
+.L2165:
+ ldr r1, .L2246
mov r3, r3, asl #1
- movw ip, #3848
- movw lr, #3868
- ldr r2, [r1, #-2016]
+ movw ip, #3852
+ mov lr, #3872
+ ldr r2, [r1, #-2012]
ldrh r0, [r2, r3]
- movw r2, #3918
- ldr r3, .L2213+20
+ mov r2, #3920
+ ldr r3, .L2246+20
ldrh r2, [r3, r2]
ldrh ip, [r3, ip]
ldrh r3, [r3, lr]
@@ -19003,494 +19278,494 @@ ftl_do_gc.part.22:
movne r3, #0
add r3, ip, r3
cmp r0, r3
- bgt .L2135
+ bgt .L2168
mov r0, #0
bl List_get_gc_head_node
- ldr r2, .L2213+20
- ldr r3, .L2213
- ldr r2, [r2, #3976]
- ldr r1, [r3, #-1844]
+ ldr r2, .L2246+20
+ ldr r3, .L2246
+ ldr r2, [r2, #3980]
+ ldr r1, [r3, #-1840]
add r2, r2, r2, asl #1
cmp r1, r2, lsr #2
- ldr r2, .L2213+32
+ ldr r2, .L2246+32
movhi r1, #128
movls r1, #160
strh r1, [r3, r2] @ movhi
uxth r4, r0
- b .L2137
-.L2135:
- ldr r3, .L2213+32
+ b .L2170
+.L2168:
+ ldr r3, .L2246+32
mov r2, #128
strh r2, [r1, r3] @ movhi
- b .L2139
-.L2133:
- ldr r2, [r5, #-2016]
+ b .L2172
+.L2166:
+ ldr r2, [r5, #-2012]
mov r3, r3, asl #1
- ldr r6, .L2213
- ldr r5, .L2213+32
+ ldr r6, .L2246
+ ldr r5, .L2246+32
ldrh r3, [r2, r3]
cmp r3, #7
movhi r3, #64
strhih r3, [r6, r5] @ movhi
- bhi .L2139
+ bhi .L2172
bl List_get_gc_head_node
mov r3, #128
strh r3, [r6, r5] @ movhi
uxth r4, r0
-.L2137:
+.L2170:
movw r3, #65535
cmp r4, r3
- beq .L2139
-.L2129:
- ldr r1, .L2213
+ beq .L2172
+.L2162:
+ ldr r1, .L2246
mov r0, r4, asl #1
- ldr r3, .L2213+28
- ldr ip, .L2213+20
+ ldr r3, .L2246+28
+ ldr ip, .L2246+20
ldrh r2, [r1, r3]
- ldr ip, [ip, #4048]
- ldr r3, [r1, #-2016]
+ ldr ip, [ip, #4052]
+ ldr r3, [r1, #-2012]
ldrh r3, [r3, r0]
ldrh r0, [ip, r0]
str r0, [sp, #0]
- ldr r0, .L2213+44
+ ldr r0, .L2246+44
ldrh r1, [r1, r0]
- ldr r0, .L2213+48
+ ldr r0, .L2246+48
str r1, [sp, #4]
mov r1, r4
bl printk
-.L2139:
+.L2172:
bl FtlGcReFreshBadBlk
-.L2127:
+.L2160:
movw ip, #65535
rsb r1, ip, r4
rsbs r0, r1, #0
ldr r2, [sp, #16]
adc r0, r0, r1
- ldr r3, .L2213
+ ldr r3, .L2246
cmp r2, #0
movne r1, #0
andeq r1, r0, #1
cmp r1, #0
- beq .L2140
- ldr r2, .L2213+28
+ beq .L2173
+ ldr r2, .L2246+28
ldrh r1, [r3, r2]
cmp r1, #24
movhi r6, #1
- bhi .L2141
- ldr r0, .L2213+20
- movw r2, #3916
+ bhi .L2174
+ ldr r0, .L2246+20
+ movw r2, #3918
cmp r1, #16
ldrh r6, [r0, r2]
movhi r6, r6, lsr #5
- bhi .L2141
+ bhi .L2174
cmp r1, #12
movhi r6, r6, lsr #4
- bhi .L2141
+ bhi .L2174
cmp r1, #8
movhi r6, r6, lsr #2
-.L2141:
- ldr ip, .L2213+44
- ldr r2, .L2213
+.L2174:
+ ldr ip, .L2246+44
+ ldr r2, .L2246
ldrh r3, [r3, ip]
cmp r3, r1
mov r1, ip
- bcs .L2145
- ldr r3, .L2213+52
+ bcs .L2178
+ ldr r3, .L2246+52
movw r0, #65535
ldrh r3, [r2, r3]
cmp r3, r0
- bne .L2146
- ldr r0, .L2213+8
+ bne .L2179
+ ldr r0, .L2246+8
ldrh r0, [r2, r0]
cmp r0, r3
- bne .L2146
- mov r3, #436
+ bne .L2179
+ mov r3, #444
ldrh r0, [r2, r3]
cmp r0, #0
- bne .L2147
- ldr r3, .L2213+20
- ldr r1, [r2, #-1844]
- ldr r3, [r3, #3976]
+ bne .L2180
+ ldr r3, .L2246+20
+ ldr r1, [r2, #-1840]
+ ldr r3, [r3, #3980]
add r3, r3, r3, asl #1
cmp r1, r3, lsr #2
movcs r3, #18
strcsh r3, [r2, ip] @ movhi
- bcs .L2149
-.L2147:
- ldr r3, .L2213
- ldr r2, .L2213+56
- ldr r1, .L2213+44
+ bcs .L2182
+.L2180:
+ ldr r3, .L2246
+ ldr r2, .L2246+56
+ ldr r1, .L2246+44
ldrh r2, [r3, r2]
add r2, r2, r2, asl #1
mov r2, r2, asr #2
strh r2, [r3, r1] @ movhi
-.L2149:
- ldr r3, .L2213
+.L2182:
+ ldr r3, .L2246
mov r2, #0
- str r2, [r3, #-1184]
- b .L2150
-.L2146:
- ldr r3, .L2213
- ldr r2, .L2213+56
+ str r2, [r3, #-1176]
+ b .L2183
+.L2179:
+ ldr r3, .L2246
+ ldr r2, .L2246+56
ldrh r2, [r3, r2]
add r2, r2, r2, asl #1
mov r2, r2, asr #2
strh r2, [r3, r1] @ movhi
-.L2145:
- ldr r3, .L2213+20
+.L2178:
+ ldr r3, .L2246+20
cmp sl, #2
movw r4, #65535
movhi sl, #0
movls sl, #1
- ldr r3, [r3, #3840]
+ ldr r3, [r3, #3844]
cmp r3, #0
moveq sl, #0
cmp sl, #0
addne r6, r6, #1
uxthne r6, r6
- b .L2151
-.L2140:
- ldr r2, .L2213+52
+ b .L2184
+.L2173:
+ ldr r2, .L2246+52
ldrh r2, [r3, r2]
cmp r2, ip
- bne .L2152
- ldr ip, .L2213+8
+ bne .L2185
+ ldr ip, .L2246+8
ldrh ip, [r3, ip]
cmp ip, r2
movne r0, #0
andeq r0, r0, #1
cmp r0, #0
- beq .L2152
- ldr r0, .L2213+24
+ beq .L2185
+ ldr r0, .L2246+24
ldrh r0, [r3, r0]
cmp r0, r2
movne r4, r2
- bne .L2152
- str r1, [r3, #-1184]
- ldr r2, .L2213+44
- ldr r1, .L2213+28
+ bne .L2185
+ str r1, [r3, #-1176]
+ ldr r2, .L2246+44
+ ldr r1, .L2246+28
ldrh r0, [r3, r1]
ldrh r1, [r3, r2]
cmp r0, r1
- bls .L2153
- mov r1, #436
+ bls .L2186
+ mov r1, #444
ldrh r1, [r3, r1]
cmp r1, #0
- bne .L2154
- ldr r1, .L2213+20
- ldr r0, [r3, #-1844]
- ldr r1, [r1, #3976]
+ bne .L2187
+ ldr r1, .L2246+20
+ ldr r0, [r3, #-1840]
+ ldr r1, [r1, #3980]
add r1, r1, r1, asl #1
cmp r0, r1, lsr #2
movcs r1, #18
strcsh r1, [r3, r2] @ movhi
- bcs .L2156
-.L2154:
- ldr r3, .L2213
- ldr r2, .L2213+56
- ldr r1, .L2213+44
+ bcs .L2189
+.L2187:
+ ldr r3, .L2246
+ ldr r2, .L2246+56
+ ldr r1, .L2246+44
ldrh r2, [r3, r2]
add r2, r2, r2, asl #1
mov r2, r2, asr #2
strh r2, [r3, r1] @ movhi
-.L2156:
+.L2189:
bl FtlReadRefresh
mov r0, #0
bl List_get_gc_head_node
- ldr r3, .L2213
- ldr r2, [r3, #-2016]
+ ldr r3, .L2246
+ ldr r2, [r3, #-2012]
uxth r0, r0
mov r0, r0, asl #1
ldrh r2, [r2, r0]
cmp r2, #4
- bhi .L2212
-.L2153:
- ldr r4, .L2213
- mov r6, #436
+ bhi .L2245
+.L2186:
+ ldr r4, .L2246
+ mov r6, #444
ldrh r0, [r4, r6]
cmp r0, #0
- bne .L2204
- ldr r3, .L2213+56
+ bne .L2237
+ ldr r3, .L2246+56
ldrh r5, [r4, r3]
- add r3, r3, #580
+ add r3, r3, #584
add r2, r5, r5, asl #1
mov r2, r2, asr #2
strh r2, [r4, r3] @ movhi
bl List_get_gc_head_node
- ldr r3, [r4, #-2016]
- ldr r1, .L2213+20
- movw r2, #3918
+ ldr r3, [r4, #-2012]
+ ldr r1, .L2246+20
+ mov r2, #3920
ldrh r2, [r1, r2]
uxth r0, r0
mov r0, r0, asl #1
ldrh r3, [r3, r0]
- movw r0, #3848
+ movw r0, #3852
ldrh r1, [r1, r0]
mul r2, r1, r2
add r2, r2, r2, lsr #31
cmp r3, r2, asr #1
- ble .L2157
- ldr r2, .L2213+28
+ ble .L2190
+ ldr r2, .L2246+28
sub r5, r5, #1
ldrh r2, [r4, r2]
cmp r2, r5
- blt .L2157
+ blt .L2190
bl FtlReadRefresh
ldrh r0, [r4, r6]
- b .L2150
-.L2157:
+ b .L2183
+.L2190:
cmp r3, #0
- bne .L2204
+ bne .L2237
movw r0, #65535
bl decrement_vpc_count
- ldr r3, .L2213+28
- ldr r2, .L2213
+ ldr r3, .L2246+28
+ ldr r2, .L2246
ldrh r0, [r2, r3]
add r0, r0, #1
- b .L2150
-.L2204:
+ b .L2183
+.L2237:
movw r4, #65535
-.L2152:
- ldr r3, .L2213+20
- ldr r6, [r3, #3840]
+.L2185:
+ ldr r3, .L2246+20
+ ldr r6, [r3, #3844]
cmp r6, #0
movne r6, #2
moveq r6, #1
-.L2151:
- ldr r3, .L2213
+.L2184:
+ ldr r3, .L2246
movw r0, #65535
- ldr r2, .L2213+24
+ ldr r2, .L2246+24
ldrh r1, [r3, r2]
cmp r1, r0
- bne .L2158
+ bne .L2191
cmp r4, r1
strneh r4, [r3, r2] @ movhi
- bne .L2160
- ldr r2, .L2213+8
+ bne .L2193
+ ldr r2, .L2246+8
ldrh r1, [r3, r2]
cmp r1, r4
- beq .L2160
- ldr r0, [r3, #-2016]
+ beq .L2193
+ ldr r0, [r3, #-2012]
mov r1, r1, asl #1
ldrh r1, [r0, r1]
cmp r1, #0
mvneq r1, #0
streqh r1, [r3, r2] @ movhi
- ldr r3, .L2213
- ldr r1, .L2213+24
+ ldr r3, .L2246
+ ldr r1, .L2246+24
ldrh r0, [r3, r2]
strh r0, [r3, r1] @ movhi
mvn r1, #0
strh r1, [r3, r2] @ movhi
-.L2160:
- ldr r5, .L2213
+.L2193:
+ ldr r5, .L2246
mov r3, #0
- ldr r7, .L2213+24
- strb r3, [r5, #-1752]
+ ldr r7, .L2246+24
+ strb r3, [r5, #-1744]
movw r3, #65535
ldrh r0, [r5, r7]
cmp r0, r3
- beq .L2158
+ beq .L2191
bl IsBlkInGcList
cmp r0, #0
mvnne r3, #0
strneh r3, [r5, r7] @ movhi
- ldr r3, .L2213+20
- ldr r7, .L2213
- ldrb r3, [r3, #928] @ zero_extendqisi2
+ ldr r3, .L2246+20
+ ldr r7, .L2246
+ ldrb r3, [r3, #3072] @ zero_extendqisi2
cmp r3, #0
- beq .L2163
- ldr r3, .L2213+24
+ beq .L2196
+ ldr r3, .L2246+24
ldrh r0, [r7, r3]
bl ftl_get_blk_mode
- strb r0, [r7, #-1752]
-.L2163:
- ldr r8, .L2213+24
+ strb r0, [r7, #-1744]
+.L2196:
+ ldr r8, .L2246+24
movw r3, #65535
- ldr r5, .L2213
+ ldr r5, .L2246
ldrh r2, [r7, r8]
cmp r2, r3
- beq .L2158
- add r0, r5, r8
+ beq .L2191
+ ldr r0, .L2246+60
bl make_superblock
- ldr r1, .L2213+60
- movw r2, #438
+ ldr r1, .L2246+64
+ movw r2, #446
mov r3, #0
strh r3, [r5, r2] @ movhi
strh r3, [r5, r1] @ movhi
- strb r3, [r5, #-1754]
+ strb r3, [r5, #-1746]
ldrh r3, [r5, r8]
- ldr r2, [r5, #-2016]
+ ldr r2, [r5, #-2012]
mov r3, r3, asl #1
ldrh r2, [r2, r3]
- mov r3, #440
+ mov r3, #448
strh r2, [r5, r3] @ movhi
-.L2158:
- ldr r3, .L2213
- ldr r2, .L2213+24
- ldrh r1, [r3, r2]
- sub r2, r2, #236
+.L2191:
+ ldr r3, .L2246
+ ldr r0, .L2246+24
+ ldr r2, .L2246+68
+ ldrh r1, [r3, r0]
ldrh r2, [r3, r2]
cmp r2, r1
mov r2, r3
- beq .L2164
- ldr r0, .L2213+64
- ldrh r3, [r3, r0]
+ beq .L2197
+ ldr ip, .L2246+72
+ ldrh r3, [r3, ip]
cmp r3, r1
- strne r4, [sp, #20]
- bne .L2208
-.L2165:
-.L2164:
- ldr r3, .L2213+24
- mvn r1, #0
- strh r1, [r2, r3] @ movhi
- mov r3, #436
-.L2211:
+ movne fp, r4
+ bne .L2241
+.L2198:
+.L2197:
+ mvn r3, #0
+ strh r3, [r2, r0] @ movhi
+ mov r3, #444
+.L2244:
ldrh r0, [r2, r3]
- b .L2150
-.L2208:
- ldr r4, .L2213
+ b .L2183
+.L2241:
+ ldr r4, .L2246
movw sl, #65535
- ldr r3, .L2213+24
- ldrh r3, [r4, r3]
+ ldr r9, .L2246+24
+ ldrh r3, [r4, r9]
cmp r3, sl
- bne .L2167
- ldr r5, .L2213+36
+ bne .L2200
+ ldr r5, .L2246+36
mov r3, #0
- str r3, [r4, #-1184]
-.L2207:
+ str r3, [r4, #-1176]
+.L2240:
ldrh r8, [r4, r5]
mov r0, r8
bl List_get_gc_head_node
- ldr r3, .L2213+24
movw r1, #65535
uxth r7, r0
- strh r7, [r4, r3] @ movhi
+ strh r7, [r4, r9] @ movhi
cmp r7, r1
- bne .L2169
- ldr r2, .L2213
- add r3, r3, #572
+ bne .L2202
+ ldr r3, .L2246+36
mov r1, #0
+ ldr r2, .L2246
mov r0, #8
strh r1, [r2, r3] @ movhi
- b .L2150
-.L2169:
+ b .L2183
+.L2202:
mov r0, r7
bl IsBlkInGcList
cmp r0, #0
add r0, r8, #1
strneh r0, [r4, r5] @ movhi
- bne .L2207
- ldr ip, .L2213+20
- movw r8, #3916
- movw sl, #3848
- ldr r2, [r4, #-2016]
+ bne .L2240
+ ldr ip, .L2246+20
+ movw r8, #3918
+ ldr r2, [r4, #-2012]
mov r3, r7, asl #1
uxth r0, r0
- ldrh r8, [ip, r8]
- ldrh ip, [ip, sl]
strh r0, [r4, r5] @ movhi
+ ldrh sl, [ip, r8]
+ movw r8, #3852
+ ldrh ip, [ip, r8]
ldrh r1, [r2, r3]
- mul r8, ip, r8
- add ip, r8, r8, lsr #31
+ mul sl, ip, sl
+ add ip, sl, sl, lsr #31
cmp r1, ip, asr #1
- bgt .L2172
+ bgt .L2205
cmp r0, #48
- bls .L2173
+ bls .L2206
cmp r1, #8
- bls .L2173
- ldr r1, .L2213+68
+ bls .L2206
+ ldr r1, .L2246+76
ldrh r1, [r4, r1]
cmp r1, #35
- bhi .L2173
-.L2172:
+ bhi .L2206
+.L2205:
mov r1, #0
strh r1, [r4, r5] @ movhi
-.L2173:
- ldrh r3, [r2, r3]
- movw r1, #65535
- ldr sl, [sp, #20]
- ldr r9, .L2213
- cmp r3, r8
- cmpge sl, r1
- movne r8, #0
- moveq r8, #1
- bne .L2174
- ldr r3, .L2213+24
- mvn r2, #0
- strh r2, [r9, r3] @ movhi
- add r3, r3, #572
- mov r2, #0
- strh r2, [r9, r3] @ movhi
- mov r3, #436
- ldrh r0, [r9, r3]
- b .L2150
-.L2174:
- cmp r3, #0
- bne .L2175
+.L2206:
+ ldrh r2, [r2, r3]
+ movw r3, #65535
+ cmp r2, sl
+ cmpge fp, r3
+ ldr r3, .L2246
+ bne .L2207
+ ldrh r1, [r4, r5]
+ cmp r1, #3
+ bhi .L2207
+ ldr r2, .L2246+24
+ mvn r1, #0
+ strh r1, [r3, r2] @ movhi
+ add r2, r2, #572
+ mov r1, #0
+ strh r1, [r3, r2] @ movhi
+.L2245:
+ mov r2, #444
+ b .L2244
+.L2207:
+ cmp r2, #0
+ ldr r8, .L2246
+ bne .L2208
movw r0, #65535
bl decrement_vpc_count
ldrh r3, [r4, r5]
add r3, r3, #1
strh r3, [r4, r5] @ movhi
- b .L2207
-.L2175:
- ldr r3, .L2213+20
- strb r8, [r9, #-1752]
- ldrb r3, [r3, #928] @ zero_extendqisi2
- cmp r3, #0
- beq .L2176
+ b .L2240
+.L2208:
+ mov r2, #0
+ strb r2, [r3, #-1744]
+ ldr r3, .L2246+20
+ ldrb r3, [r3, #3072] @ zero_extendqisi2
+ cmp r3, r2
+ beq .L2209
mov r0, r7
bl ftl_get_blk_mode
- strb r0, [r9, #-1752]
-.L2176:
- ldr r4, .L2213
- sub r0, r4, #1760
+ strb r0, [r8, #-1744]
+.L2209:
+ ldr r0, .L2246+60
bl make_superblock
- movw r1, #438
+ movw r1, #446
mov r3, #0
- strh r3, [r4, r1] @ movhi
- ldr r1, .L2213+24
- ldr r0, [r4, #-2016]
- ldrh r1, [r4, r1]
+ strh r3, [r8, r1] @ movhi
+ ldr r1, .L2246+24
+ ldr r0, [r8, #-2012]
+ ldrh r1, [r8, r1]
mov r1, r1, asl #1
ldrh r0, [r0, r1]
- mov r1, #440
- strb r3, [r4, #-1754]
- strh r0, [r4, r1] @ movhi
- ldr r1, .L2213+60
- strh r3, [r4, r1] @ movhi
-.L2167:
+ mov r1, #448
+ strb r3, [r8, #-1746]
+ strh r0, [r8, r1] @ movhi
+ ldr r1, .L2246+64
+ strh r3, [r8, r1] @ movhi
+.L2200:
ldr sl, [sp, #16]
cmp sl, #1
- bne .L2177
+ bne .L2210
bl FtlReadRefresh
-.L2177:
- ldr r3, .L2213
+.L2210:
+ ldr r3, .L2246
mov r2, #1
- movw r1, #3916
- str r2, [r3, #-992]
- ldr r2, .L2213+20
+ movw r1, #3918
+ str r2, [r3, #-984]
+ ldr r2, .L2246+20
ldrh r9, [r2, r1]
- ldrb r1, [r2, #928] @ zero_extendqisi2
+ ldrb r1, [r2, #3072] @ zero_extendqisi2
cmp r1, #0
- beq .L2178
- ldrb r1, [r3, #-1752] @ zero_extendqisi2
+ beq .L2211
+ ldrb r1, [r3, #-1744] @ zero_extendqisi2
cmp r1, #1
- movweq r1, #3918
+ moveq r1, #3920
ldreqh r9, [r2, r1]
-.L2178:
- ldr r2, .L2213+60
+.L2211:
+ ldr r2, .L2246+64
mov r8, #0
- ldr r4, .L2213
+ str fp, [sp, #20]
mov fp, r9
+ ldr r4, .L2246
ldrh r3, [r3, r2]
add r2, r3, r6
cmp r2, r9
rsbgt r6, r3, r9
uxthgt r6, r6
- b .L2180
-.L2182:
+ b .L2213
+.L2215:
ldrh r1, [r2, #2]!
movw sl, #65535
add r3, r3, #1
@@ -19501,46 +19776,46 @@ ftl_do_gc.part.22:
addne r7, r7, #1
uxthne r7, r7
strne r1, [sl, #4]
-.L2188:
+.L2221:
cmp r3, r5
- bne .L2182
- ldr r0, [r4, #-1164]
+ bne .L2215
+ ldr r0, [r4, #-1156]
mov r1, r7
- ldrb r2, [r4, #-1752] @ zero_extendqisi2
+ ldrb r2, [r4, #-1744] @ zero_extendqisi2
mov r5, #0
bl FlashReadPages
mov r9, r5
mov sl, r6
- b .L2183
-.L2186:
- ldr r3, [r4, #-1164]
+ b .L2216
+.L2219:
+ ldr r3, [r4, #-1156]
add r2, r3, r5
ldr r3, [r3, r5]
ldr r6, [r2, #12]
cmn r3, #1
- beq .L2184
+ beq .L2217
ldrh r3, [r6, #0]
movw r1, #61589
cmp r3, r1
- bne .L2184
+ bne .L2217
add r1, sp, #28
mov r2, #0
ldr r0, [r6, #8]
bl log2phys
- ldr r1, [r4, #-1164]
+ ldr r1, [r4, #-1156]
ldr r2, [sp, #28]
add r1, r1, r5
bic r2, r2, #-2147483648
ldr r3, [r1, #4]
cmp r2, r3
- bne .L2184
- movw r3, #438
- ldr r0, [r4, #-1180]
+ bne .L2217
+ movw r3, #446
+ ldr r0, [r4, #-1172]
ldrh r2, [r4, r3]
ldr r1, [r1, #16]
add r2, r2, #1
strh r2, [r4, r3] @ movhi
- ldr r2, [r4, #-964]
+ ldr r2, [r4, #-956]
mov r3, #36
mla r2, r3, r0, r2
str r1, [r2, #16]
@@ -19548,12 +19823,12 @@ ftl_do_gc.part.22:
str r3, [sp, #12]
bl Ftl_get_new_temp_ppa
ldr r2, [sp, #8]
- ldr r1, [r4, #-1180]
+ ldr r1, [r4, #-1172]
str r0, [r2, #4]
ldr r3, [sp, #12]
- ldr r2, [r4, #-964]
+ ldr r2, [r4, #-956]
mla r3, r3, r1, r2
- ldr r2, [r4, #-1164]
+ ldr r2, [r4, #-1156]
add r2, r2, r5
ldr r1, [r2, #8]
str r1, [r3, #8]
@@ -19562,107 +19837,105 @@ ftl_do_gc.part.22:
str r2, [r3, #12]
ldr r3, [sp, #28]
str r3, [r6, #12]
- ldr r3, .L2213+52
+ ldr r3, .L2246+52
ldrh r3, [r4, r3]
strh r3, [r6, #2] @ movhi
- ldr r3, [r4, #-1800]
- ldr r0, [r4, #-1164]
+ ldr r3, [r4, #-1796]
+ ldr r0, [r4, #-1156]
str r3, [r6, #4]
add r0, r0, r5
- ldr r3, [r4, #-1180]
+ ldr r3, [r4, #-1172]
add r3, r3, #1
- str r3, [r4, #-1180]
+ str r3, [r4, #-1172]
bl FtlGcBufAlloc
- ldr r3, .L2213+20
- ldrb r3, [r3, #928] @ zero_extendqisi2
+ ldr r3, .L2246+20
+ ldrb r3, [r3, #3072] @ zero_extendqisi2
cmp r3, #0
- bne .L2185
- ldrb r3, [r4, #-1893] @ zero_extendqisi2
- ldr r2, [r4, #-1180]
+ bne .L2218
+ ldrb r3, [r4, #-1889] @ zero_extendqisi2
+ ldr r2, [r4, #-1172]
cmp r2, r3
- beq .L2185
- ldr r3, .L2213+72
+ beq .L2218
+ ldr r3, .L2246+80
ldrh r3, [r4, r3]
cmp r3, #0
- bne .L2184
-.L2185:
+ bne .L2217
+.L2218:
bl Ftl_gc_temp_data_write_back
cmp r0, #0
- beq .L2184
- ldr r3, .L2213
- mov r2, #0
- str r2, [r3, #-992]
-.L2212:
- mov r2, #436
- b .L2211
-.L2184:
+ ldrne r3, .L2246
+ movne r2, #0
+ strne r2, [r3, #-984]
+ bne .L2245
+.L2217:
add r9, r9, #1
add r5, r5, #36
uxth r9, r9
-.L2183:
+.L2216:
cmp r9, r7
- bne .L2186
+ bne .L2219
add r8, r8, #1
mov r6, sl
-.L2180:
+.L2213:
uxth r3, r8
- ldr r7, .L2213
+ ldr r7, .L2246
cmp r3, r6
- ldr r3, .L2213+60
- bcs .L2187
- ldr r1, .L2213+20
- movw r2, #3848
+ ldr r3, .L2246+64
+ bcs .L2220
+ ldr r1, .L2246+20
+ movw r2, #3852
ldrh ip, [r4, r3]
mov r7, #0
- ldr lr, [r4, #-1164]
+ ldr lr, [r4, #-1156]
mov r3, r7
ldrh r5, [r1, r2]
add ip, ip, r8
- ldr r2, .L2213+76
+ ldr r2, .L2246+84
mov r0, #36
- b .L2188
-.L2187:
+ b .L2221
+.L2220:
ldrh r2, [r7, r3]
mov r9, fp
+ ldr fp, [sp, #20]
add r6, r6, r2
uxth r6, r6
strh r6, [r7, r3] @ movhi
- cmp r6, fp
- bcc .L2189
- ldr r3, [r7, #-1180]
+ cmp r6, r9
+ bcc .L2222
+ ldr r3, [r7, #-1172]
cmp r3, #0
- beq .L2190
+ beq .L2223
bl Ftl_gc_temp_data_write_back
cmp r0, #0
movne r3, #0
- strne r3, [r7, #-992]
- movne r3, #436
+ strne r3, [r7, #-984]
+ movne r3, #444
ldrneh r0, [r7, r3]
- bne .L2150
-.L2190:
- ldr r4, .L2213
- movw r3, #438
+ bne .L2183
+.L2223:
+ ldr r4, .L2246
+ movw r3, #446
ldrh r6, [r4, r3]
cmp r6, #0
- bne .L2191
- ldr r5, .L2213+24
- ldr r2, [r4, #-2016]
+ bne .L2224
+ ldr r5, .L2246+24
+ ldr r2, [r4, #-2012]
ldrh r1, [r4, r5]
mov r3, r1, asl #1
ldrh r3, [r2, r3]
cmp r3, #0
- beq .L2191
- ldr r2, .L2213+60
- ldr r0, .L2213+80
+ beq .L2224
+ ldr r2, .L2246+64
+ ldr r0, .L2246+88
ldrh r2, [r4, r2]
str r3, [sp, #0]
- mov r3, #440
+ mov r3, #448
ldrh r3, [r4, r3]
str r3, [sp, #4]
mov r3, r6
bl printk
ldrh r3, [r4, r5]
- ldr r2, [r4, #-2016]
+ ldr r2, [r4, #-2012]
mov r3, r3, asl #1
strh r6, [r2, r3] @ movhi
ldrh r0, [r4, r5]
@@ -19670,56 +19943,58 @@ ftl_do_gc.part.22:
bl FtlCacheWriteBack
bl l2p_flush
bl FtlVpcTblFlush
-.L2191:
- ldr r3, .L2213+24
+.L2224:
+ ldr r3, .L2246+24
mvn r1, #0
- ldr r2, .L2213
+ ldr r2, .L2246
strh r1, [r2, r3] @ movhi
-.L2189:
- ldr r3, .L2213
- ldr r2, .L2213+28
+.L2222:
+ ldr r3, .L2246
+ ldr r2, .L2246+28
ldrh r2, [r3, r2]
cmp r2, #2
- ldrls r2, .L2213+20
- movwls r3, #3916
+ ldrls r2, .L2246+20
+ movwls r3, #3918
ldrlsh r6, [r2, r3]
- bls .L2208
-.L2192:
+ bls .L2241
+.L2225:
mov r1, #0
- str r1, [r3, #-992]
- mov r1, #436
+ str r1, [r3, #-984]
+ mov r1, #444
ldrh r0, [r3, r1]
cmp r0, #0
addeq r0, r2, #1
-.L2150:
+.L2183:
add sp, sp, #36
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L2214:
+.L2247:
.align 2
-.L2213:
+.L2246:
.word .LANCHOR2
- .word -1140
- .word -1142
- .word -1138
- .word -1136
+ .word -1132
+ .word -1134
+ .word -1130
+ .word -1128
.word .LANCHOR0
- .word -1760
- .word -2000
- .word -1194
- .word -1188
- .word .LC148
- .word -1196
+ .word -1752
+ .word -1996
+ .word -1186
+ .word -1180
.word .LC149
- .word -1900
- .word -1776
- .word -1758
- .word -1948
- .word -1156
- .word -1896
- .word .LANCHOR2-1746
+ .word -1188
.word .LC150
+ .word -1896
+ .word -1772
+ .word .LANCHOR2-1752
+ .word -1750
+ .word -1992
+ .word -1944
+ .word -1148
+ .word -1892
+ .word .LANCHOR2-1738
+ .word .LC151
.fnend
- .size ftl_do_gc.part.22, .-ftl_do_gc.part.22
+ .size ftl_do_gc.part.24, .-ftl_do_gc.part.24
.align 2
.global ftl_do_gc
.type ftl_do_gc, %function
@@ -19730,51 +20005,51 @@ ftl_do_gc:
stmfd sp!, {r3, r4, r5, lr}
.save {r3, r4, r5, lr}
mov r4, r0
- ldr r3, .L2222
+ ldr r3, .L2255
mov r5, r1
- ldr r0, [r3, #4040]
+ ldr r0, [r3, #4044]
cmp r0, #0
movne r0, #0
ldmnefd sp!, {r3, r4, r5, pc}
- ldr r3, .L2222+4
- ldr r2, [r3, #-992]
+ ldr r3, .L2255+4
+ ldr r2, [r3, #-984]
cmp r2, #0
ldmnefd sp!, {r3, r4, r5, pc}
- ldr r1, .L2222+8
+ ldr r1, .L2255+8
ldrh r1, [r3, r1]
cmp r1, #47
movls r0, r2
ldmlsfd sp!, {r3, r4, r5, pc}
- ldr r1, .L2222+12
- movw r2, #3096
+ ldr r1, .L2255+12
+ movw r2, #3224
ldrh r1, [r1, r2]
movw r2, #65535
cmp r1, r2
- beq .L2217
- ldr r1, .L2222+16
+ beq .L2250
+ ldr r1, .L2255+16
ldrh r3, [r3, r1]
cmp r3, r2
- beq .L2217
+ beq .L2250
mov r0, #1
bl FtlGcFreeTempBlock
cmp r0, #0
- bne .L2221
-.L2217:
+ bne .L2254
+.L2250:
mov r0, r4
mov r1, r5
ldmfd sp!, {r3, r4, r5, lr}
- b ftl_do_gc.part.22
-.L2221:
+ b ftl_do_gc.part.24
+.L2254:
mov r0, #1
ldmfd sp!, {r3, r4, r5, pc}
-.L2223:
+.L2256:
.align 2
-.L2222:
+.L2255:
.word .LANCHOR0
.word .LANCHOR2
- .word -2008
+ .word -2004
.word .LANCHOR1
- .word -1900
+ .word -1896
.fnend
.size ftl_do_gc, .-ftl_do_gc
.align 2
@@ -19784,40 +20059,40 @@ FtlCacheWriteBack:
.fnstart
@ args = 0, pretend = 0, frame = 8
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L2247
+ ldr r3, .L2280
stmfd sp!, {r0, r1, r4, r5, r6, r7, r8, r9, sl, lr}
.save {r0, r1, r4, r5, r6, r7, r8, r9, sl, lr}
- ldr r4, [r3, #444]
- ldr r3, .L2247+4
- ldr r2, [r3, #4040]
+ ldr r4, [r3, #452]
+ ldr r3, .L2280+4
+ ldr r2, [r3, #4044]
cmp r2, #0
- bne .L2225
- ldr r1, [r3, #3968]
+ bne .L2258
+ ldr r1, [r3, #3972]
cmp r1, #0
- beq .L2225
- ldrb r8, [r3, #928] @ zero_extendqisi2
+ beq .L2258
+ ldrb r8, [r3, #3072] @ zero_extendqisi2
cmp r8, #0
- beq .L2226
+ beq .L2259
ldrb r8, [r4, #8] @ zero_extendqisi2
sub r0, r8, #1
rsbs r8, r0, #0
adc r8, r8, r0
-.L2226:
- ldr r5, .L2247+4
+.L2259:
+ ldr r5, .L2280+4
mov r2, r8
ldrb r3, [r4, #9] @ zero_extendqisi2
mov r6, #0
mov r7, r6
- ldr r9, .L2247
- ldr r0, [r5, #3972]
+ ldr r9, .L2280
+ ldr r0, [r5, #3976]
bl FlashProgPages
- b .L2227
-.L2232:
- ldr r2, [r5, #3972]
+ b .L2260
+.L2265:
+ ldr r2, [r5, #3976]
add r3, r2, r6
ldr r2, [r2, r6]
cmn r2, #1
- beq .L2246
+ beq .L2279
ldr r2, [r3, #4]
cmp r8, #0
ldr r0, [r3, #16]
@@ -19827,70 +20102,70 @@ FtlCacheWriteBack:
strne r2, [sp, #4]
mov r2, #1
bl log2phys
- ldr r3, [r5, #3972]
+ ldr r3, [r5, #3976]
add r3, r3, r6
ldr r3, [r3, #12]
ldr r0, [r3, #12]
cmn r0, #1
- beq .L2230
+ beq .L2263
ubfx r0, r0, #10, #16
bl P2V_block_in_plane
- ldr r2, [r9, #-2016]
+ ldr r2, [r9, #-2012]
mov r3, r0, asl #1
mov sl, r0
ldrh r2, [r2, r3]
cmp r2, #0
- bne .L2231
- ldr r0, .L2247+8
+ bne .L2264
+ ldr r0, .L2280+8
mov r1, sl
bl printk
-.L2231:
+.L2264:
mov r0, sl
bl decrement_vpc_count
-.L2230:
+.L2263:
add r7, r7, #1
add r6, r6, #36
-.L2227:
- ldr r3, [r5, #3968]
- cmp r7, r3
- bcc .L2232
- b .L2233
-.L2242:
+.L2260:
ldr r3, [r5, #3972]
+ cmp r7, r3
+ bcc .L2265
+ b .L2266
+.L2275:
+ ldr r3, [r5, #3976]
mvn r2, #0
- ldr r7, .L2247
+ ldr r7, .L2280
str r2, [r3, r6]
- b .L2234
-.L2238:
+ b .L2267
+.L2271:
ldr r0, [r3, #4]
ubfx r0, r0, #10, #16
bl P2V_block_in_plane
ldrh r3, [r4, #0]
cmp r3, r0
- bne .L2235
- ldr r2, [r7, #-2016]
+ bne .L2268
+ ldr r2, [r7, #-2012]
mov r3, r3, asl #1
ldrh r1, [r4, #4]
ldrh r0, [r2, r3]
rsb r1, r1, r0
strh r1, [r2, r3] @ movhi
- movw r3, #3916
+ movw r3, #3918
ldrh r3, [r5, r3]
strh r3, [r4, #2] @ movhi
mov r3, #0
strb r3, [r4, #6]
strh r3, [r4, #4] @ movhi
-.L2235:
+.L2268:
ldrh r3, [r4, #4]
cmp r3, #0
- bne .L2236
+ bne .L2269
mov r0, r4
bl allocate_new_data_superblock
-.L2236:
- ldr r3, [r7, #-1612]
+.L2269:
+ ldr r3, [r7, #-1604]
add r3, r3, #1
- str r3, [r7, #-1612]
- ldr r3, [r5, #3972]
+ str r3, [r7, #-1604]
+ ldr r3, [r5, #3976]
add r3, r3, r6
ldr r0, [r3, #4]
ubfx r0, r0, #10, #16
@@ -19901,25 +20176,25 @@ FtlCacheWriteBack:
mov r2, r8
mov r3, r0
str r0, [sp, #4]
- ldr r0, [r5, #3972]
+ ldr r0, [r5, #3976]
add r0, r0, r6
str r3, [r0, #4]
ldrb r3, [r4, #9] @ zero_extendqisi2
bl FlashProgPages
- ldr r3, [r5, #3972]
+ ldr r3, [r5, #3976]
ldr r3, [r3, r6]
cmn r3, #1
moveq r3, #1
- streq r3, [r5, #4040]
- ldr r3, [r9, #4040]
+ streq r3, [r5, #4044]
+ ldr r3, [r9, #4044]
cmp r3, #0
- bne .L2225
-.L2234:
- ldr r2, [r5, #3972]
+ bne .L2258
+.L2267:
+ ldr r2, [r5, #3976]
add r3, r2, r6
ldr r2, [r2, r6]
cmn r2, #1
- beq .L2238
+ beq .L2271
ldr r2, [r3, #4]
cmp r8, #0
ldr r0, [r3, #16]
@@ -19929,68 +20204,68 @@ FtlCacheWriteBack:
strne r2, [sp, #4]
mov r2, #1
bl log2phys
- ldr r3, [r5, #3972]
+ ldr r3, [r5, #3976]
add r3, r3, r6
ldr r3, [r3, #12]
ldr r0, [r3, #12]
cmn r0, #1
- beq .L2240
+ beq .L2273
ubfx r0, r0, #10, #16
bl P2V_block_in_plane
- ldr r3, .L2247
- ldr r2, [r3, #-2016]
+ ldr r3, .L2280
+ ldr r2, [r3, #-2012]
mov r3, r0, asl #1
mov r7, r0
ldrh r2, [r2, r3]
cmp r2, #0
- bne .L2241
- ldr r0, .L2247+8
+ bne .L2274
+ ldr r0, .L2280+8
mov r1, r7
bl printk
-.L2241:
+.L2274:
mov r0, r7
bl decrement_vpc_count
-.L2240:
+.L2273:
add sl, sl, #1
add r6, r6, #36
- b .L2228
-.L2246:
- ldr r5, .L2247+4
+ b .L2261
+.L2279:
+ ldr r5, .L2280+4
mov r6, #0
mov sl, r6
mov r9, r5
-.L2228:
- ldr r3, [r5, #3968]
+.L2261:
+ ldr r3, [r5, #3972]
cmp sl, r3
- bcc .L2242
+ bcc .L2275
movw r4, #16386
- ldr r6, .L2247
- ldr r5, .L2247+12
- b .L2243
-.L2244:
+ ldr r6, .L2280
+ ldr r5, .L2280+12
+ b .L2276
+.L2277:
mov r0, #1
mov r1, r0
bl ftl_do_gc
subs r4, r4, #1
- beq .L2233
-.L2243:
+ beq .L2266
+.L2276:
ldrh r3, [r6, r5]
cmp r3, #0
- bne .L2244
-.L2233:
- ldr r3, .L2247+4
+ bne .L2277
+.L2266:
+ ldr r3, .L2280+4
mov r2, #0
- str r2, [r3, #3968]
-.L2225:
+ str r2, [r3, #3972]
+.L2258:
mov r0, #0
ldmfd sp!, {r2, r3, r4, r5, r6, r7, r8, r9, sl, pc}
-.L2248:
+.L2281:
.align 2
-.L2247:
+.L2280:
.word .LANCHOR2
.word .LANCHOR0
- .word .LC151
- .word -1134
+ .word .LC152
+ .word -1126
.fnend
.size FtlCacheWriteBack, .-FtlCacheWriteBack
.align 2
@@ -20024,21 +20299,21 @@ FtlSysFlush:
@ frame_needed = 0, uses_anonymous_args = 0
stmfd sp!, {r3, lr}
.save {r3, lr}
- ldr r3, .L2253
- ldr r3, [r3, #4040]
+ ldr r3, .L2286
+ ldr r3, [r3, #4044]
cmp r3, #0
- bne .L2252
+ bne .L2285
bl FtlCacheWriteBack
bl l2p_flush
mov r0, #1
bl FtlEctTblFlush
bl FtlVpcTblFlush
-.L2252:
+.L2285:
mov r0, #0
ldmfd sp!, {r3, pc}
-.L2254:
+.L2287:
.align 2
-.L2253:
+.L2286:
.word .LANCHOR0
.fnend
.size FtlSysFlush, .-FtlSysFlush
@@ -20051,17 +20326,17 @@ FtlDeInit:
@ frame_needed = 0, uses_anonymous_args = 0
stmfd sp!, {r3, lr}
.save {r3, lr}
- ldr r3, .L2257
- ldr r3, [r3, #3092]
+ ldr r3, .L2290
+ ldr r3, [r3, #3220]
cmp r3, #1
- bne .L2256
+ bne .L2289
bl FtlSysFlush
-.L2256:
+.L2289:
mov r0, #0
ldmfd sp!, {r3, pc}
-.L2258:
+.L2291:
.align 2
-.L2257:
+.L2290:
.word .LANCHOR1
.fnend
.size FtlDeInit, .-FtlDeInit
@@ -20090,14 +20365,14 @@ rk_ftl_de_init:
stmfd sp!, {r3, lr}
.save {r3, lr}
mov r1, #0
- ldr r0, .L2261
+ ldr r0, .L2294
bl printk
ldmfd sp!, {r3, lr}
b ftl_deinit
-.L2262:
+.L2295:
.align 2
-.L2261:
- .word .LC152
+.L2294:
+ .word .LC153
.fnend
.size rk_ftl_de_init, .-rk_ftl_de_init
.align 2
@@ -20118,121 +20393,121 @@ ftl_fix_nand_power_lost_error:
.fnstart
@ args = 0, pretend = 0, frame = 48
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L2273
+ ldr r3, .L2306
stmfd sp!, {r4, r5, r6, r7, r8, sl, lr}
.save {r4, r5, r6, r7, r8, sl, lr}
.pad #52
sub sp, sp, #52
- ldrb r3, [r3, #928] @ zero_extendqisi2
+ ldrb r3, [r3, #3072] @ zero_extendqisi2
cmp r3, #0
- beq .L2264
- ldr r4, .L2273+4
- movw r3, #298
- ldr r0, .L2273+8
+ beq .L2297
+ ldr r4, .L2306+4
+ movw r3, #306
+ ldr r0, .L2306+8
movw r7, #4097
ldrh r6, [r4, r3]
- ldr r3, [r4, #-2016]
+ ldr r3, [r4, #-2012]
mov r5, r6, asl #1
mov r1, r6
ldrh r2, [r3, r5]
bl printk
- ldr r3, .L2273+12
+ ldr r3, .L2306+12
ldrh r0, [r4, r3]
bl FtlGcRefreshOpenBlock
- ldr r3, .L2273+16
+ ldr r3, .L2306+16
ldrh r0, [r4, r3]
bl FtlGcRefreshOpenBlock
- ldr r0, .L2273+20
+ ldr r0, .L2306+20
bl allocate_new_data_superblock
- ldr r0, .L2273+24
+ ldr r0, .L2306+24
bl allocate_new_data_superblock
- b .L2266
-.L2268:
+ b .L2299
+.L2301:
mov r0, #1
mov r1, r0
bl ftl_do_gc
- ldr r3, [r4, #-2016]
+ ldr r3, [r4, #-2012]
ldrh r3, [r3, r5]
cmp r3, #0
- beq .L2267
-.L2266:
+ beq .L2300
+.L2299:
subs r7, r7, #1
- bne .L2268
-.L2267:
- ldr r4, .L2273+4
+ bne .L2301
+.L2300:
+ ldr r4, .L2306+4
mov r1, r6
- ldr r0, .L2273+8
- ldr r3, [r4, #-2016]
+ ldr r0, .L2306+8
+ ldr r3, [r4, #-2012]
ldrh r2, [r3, r5]
bl printk
- ldr r3, [r4, #-2016]
+ ldr r3, [r4, #-2012]
ldrh r4, [r3, r5]
cmp r4, #0
- bne .L2269
+ bne .L2302
add r7, sp, #48
mov r0, sp
strh r6, [r7, #-48]! @ movhi
add r7, r7, #14
bl make_superblock
- ldr r3, .L2273
- movw r2, #3848
+ ldr r3, .L2306
+ movw r2, #3852
movw lr, #65535
mov ip, #36
mov r1, r4
ldrh r8, [r3, r2]
- ldr sl, [r3, #4044]
+ ldr sl, [r3, #4048]
mov r3, r4
- b .L2270
-.L2272:
+ b .L2303
+.L2305:
ldrh r0, [r7, #2]!
cmp r0, lr
- beq .L2271
+ beq .L2304
mla r2, ip, r4, sl
add r4, r4, #1
mov r0, r0, asl #10
uxth r4, r4
stmib r2, {r0, r1}
str r1, [r2, #12]
-.L2271:
+.L2304:
add r3, r3, #1
uxth r3, r3
-.L2270:
+.L2303:
cmp r3, r8
- bne .L2272
- ldr r3, .L2273+4
+ bne .L2305
+ ldr r3, .L2306+4
mov r1, r6
- ldr r0, .L2273+28
- ldr r3, [r3, #-2016]
+ ldr r0, .L2306+28
+ ldr r3, [r3, #-2012]
ldrh r2, [r3, r5]
- ldr r5, .L2273
+ ldr r5, .L2306
bl printk
mov r1, #0
mov r2, r4
- ldr r0, [r5, #4044]
+ ldr r0, [r5, #4048]
bl FlashEraseBlocks
- ldr r0, [r5, #4044]
+ ldr r0, [r5, #4048]
mov r1, #1
mov r2, r4
bl FlashEraseBlocks
-.L2269:
- ldr r2, .L2273+4
- movw r3, #298
+.L2302:
+ ldr r2, .L2306+4
+ movw r3, #306
mvn r1, #0
strh r1, [r2, r3] @ movhi
-.L2264:
+.L2297:
add sp, sp, #52
ldmfd sp!, {r4, r5, r6, r7, r8, sl, pc}
-.L2274:
+.L2307:
.align 2
-.L2273:
+.L2306:
.word .LANCHOR0
.word .LANCHOR2
- .word .LC153
- .word -1996
- .word -1948
- .word .LANCHOR2-1996
- .word .LANCHOR2-1948
.word .LC154
+ .word -1992
+ .word -1944
+ .word .LANCHOR2-1992
+ .word .LANCHOR2-1944
+ .word .LC155
.fnend
.size ftl_fix_nand_power_lost_error, .-ftl_fix_nand_power_lost_error
.align 2
@@ -20242,82 +20517,82 @@ FtlInit:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
-.L2276:
+.L2309:
stmfd sp!, {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
mvn r3, #0
- ldr r4, .L2286
- ldr r6, .L2286+4
- ldr r5, .L2286+8
- ldr r1, .L2286+12
- str r3, [r6, #3092]
+ ldr r4, .L2319
+ ldr r6, .L2319+4
+ ldr r5, .L2319+8
+ ldr r1, .L2319+12
+ str r3, [r6, #3220]
mov r3, #0
- ldr r0, .L2286+16
- str r3, [r4, #4040]
- str r3, [r5, #448]
+ ldr r0, .L2319+16
+ str r3, [r4, #4044]
+ str r3, [r5, #456]
bl printk
- ldr r0, .L2286+20
+ ldr r0, .L2319+20
bl FtlConstantsInit
bl FtlMemInit
bl FtlVariablesInit
- ldr r0, [r4, #3852]
+ ldr r0, [r4, #3856]
uxth r0, r0
bl FtlFreeSysBlkQueueInit
bl FtlLoadBbt
cmp r0, #0
- ldrne r0, .L2286+24
- bne .L2285
+ ldrne r0, .L2319+24
+ bne .L2318
bl FtlSysBlkInit
cmp r0, #0
- beq .L2279
- ldr r0, .L2286+28
-.L2285:
- ldr r1, .L2286+32
+ beq .L2312
+ ldr r0, .L2319+28
+.L2318:
+ ldr r1, .L2319+32
bl printk
- b .L2278
-.L2279:
+ b .L2311
+.L2312:
mov r1, #1
- str r1, [r6, #3092]
+ str r1, [r6, #3220]
bl ftl_do_gc
- ldr r3, .L2286+36
+ ldr r3, .L2319+36
ldrh r3, [r5, r3]
cmp r3, #15
- bhi .L2280
+ bhi .L2313
mov r4, #1024
-.L2281:
+.L2314:
mov r0, #1
mov r1, r0
bl ftl_do_gc
subs r4, r4, #1
- bne .L2281
- b .L2278
-.L2280:
- ldrb r3, [r4, #928] @ zero_extendqisi2
+ bne .L2314
+ b .L2311
+.L2313:
+ ldrb r3, [r4, #3072] @ zero_extendqisi2
cmp r3, #0
- beq .L2278
+ beq .L2311
mov r4, #128
-.L2282:
+.L2315:
mov r0, #1
mov r1, r0
bl ftl_do_gc
subs r4, r4, #1
- bne .L2282
-.L2278:
+ bne .L2315
+.L2311:
mov r0, #0
ldmfd sp!, {r4, r5, r6, pc}
-.L2287:
+.L2320:
.align 2
-.L2286:
+.L2319:
.word .LANCHOR0
.word .LANCHOR1
.word .LANCHOR2
.word .LC78
.word .LC77
- .word .LANCHOR0+3048
- .word .LC155
+ .word .LANCHOR0+3044
.word .LC156
+ .word .LC157
.word .LANCHOR3+69
- .word -2000
+ .word -1996
.fnend
.size FtlInit, .-FtlInit
.align 2
@@ -20330,20 +20605,20 @@ ftl_discard:
stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, lr}
.save {r0, r1, r2, r4, r5, r6, r7, lr}
add r2, r1, r0
- ldr r5, .L2298
+ ldr r5, .L2331
mov r7, r0
mov r4, r1
- ldr r3, [r5, #3956]
+ ldr r3, [r5, #3960]
cmp r2, r3
mvnhi r0, #0
- bhi .L2289
+ bhi .L2322
cmp r1, #31
- bls .L2296
- ldr r3, [r5, #4040]
+ bls .L2329
+ ldr r3, [r5, #4044]
cmp r3, #0
- bne .L2296
+ bne .L2329
bl FtlCacheWriteBack
- movw r3, #3922
+ movw r3, #3924
ldrh r6, [r5, r3]
mov r0, r7
mov r1, r6
@@ -20352,69 +20627,69 @@ ftl_discard:
mov r5, r0
uxth r7, r7
cmp r7, #0
- beq .L2290
+ beq .L2323
rsb r6, r7, r6
add r5, r0, #1
cmp r6, r4
movcs r6, r4
uxth r6, r6
rsb r4, r6, r4
-.L2290:
+.L2323:
mvn r3, #0
- ldr r7, .L2298
+ ldr r7, .L2331
str r3, [sp, #4]
- movw r6, #3922
- b .L2291
-.L2293:
+ movw r6, #3924
+ b .L2324
+.L2326:
mov r0, r5
mov r1, sp
mov r2, #0
bl log2phys
ldr r3, [sp, #0]
cmn r3, #1
- beq .L2292
- ldr r3, .L2298+4
+ beq .L2325
+ ldr r3, .L2331+4
add r1, sp, #4
mov r0, r5
- ldr r2, [r3, #452]
+ ldr r2, [r3, #460]
add r2, r2, #1
- str r2, [r3, #452]
- ldr r2, [r3, #-1832]
+ str r2, [r3, #460]
+ ldr r2, [r3, #-1828]
add r2, r2, #1
- str r2, [r3, #-1832]
+ str r2, [r3, #-1828]
mov r2, #1
bl log2phys
ldr r0, [sp, #0]
ubfx r0, r0, #10, #16
bl P2V_block_in_plane
bl decrement_vpc_count
-.L2292:
+.L2325:
ldrh r3, [r7, r6]
add r5, r5, #1
rsb r4, r3, r4
-.L2291:
+.L2324:
ldrh r3, [r7, r6]
cmp r4, r3
- bcs .L2293
- ldr r3, .L2298+4
+ bcs .L2326
+ ldr r3, .L2331+4
mov r4, #0
- ldr r2, [r3, #452]
+ ldr r2, [r3, #460]
cmp r2, #32
- bls .L2297
- str r4, [r3, #452]
+ bls .L2330
+ str r4, [r3, #460]
bl l2p_flush
bl FtlVpcTblFlush
- b .L2297
-.L2296:
+ b .L2330
+.L2329:
mov r0, #0
- b .L2289
-.L2297:
+ b .L2322
+.L2330:
mov r0, r4
-.L2289:
+.L2322:
ldmfd sp!, {r1, r2, r3, r4, r5, r6, r7, pc}
-.L2299:
+.L2332:
.align 2
-.L2298:
+.L2331:
.word .LANCHOR0
.word .LANCHOR2
.fnend
@@ -20431,23 +20706,23 @@ FtlDiscard:
.fnend
.size FtlDiscard, .-FtlDiscard
.align 2
- .type ftl_write.part.23, %function
-ftl_write.part.23:
+ .type ftl_write.part.25, %function
+ftl_write.part.25:
.fnstart
@ args = 0, pretend = 0, frame = 96
@ frame_needed = 0, uses_anonymous_args = 0
stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
.save {r4, r5, r6, r7, r8, r9, sl, fp, lr}
mov r3, #2048
- ldr r4, .L2346
+ ldr r4, .L2379
.pad #100
sub sp, sp, #100
- ldr r8, .L2346+4
+ ldr r8, .L2379+4
mov r5, r1
mov r7, r0
mov r9, r2
- str r3, [r4, #456]
- movw r3, #3922
+ str r3, [r4, #464]
+ movw r3, #3924
ldrh r6, [r8, r3]
mov r1, r6
bl __aeabi_uidiv
@@ -20457,21 +20732,21 @@ ftl_write.part.23:
add r0, r0, r5
bl __aeabi_uidiv
ldr r3, [sp, #16]
- ldr sl, [r8, #3968]
+ ldr sl, [r8, #3972]
cmp sl, #0
rsb fp, r3, r0
str r0, [sp, #36]
add r3, fp, #1
str r3, [sp, #20]
ldr lr, [sp, #20]
- ldr r3, [r4, #-1828]
+ ldr r3, [r4, #-1824]
add r3, lr, r3
- str r3, [r4, #-1828]
- ldr r3, [r4, #-1812]
+ str r3, [r4, #-1824]
+ ldr r3, [r4, #-1808]
add r3, r5, r3
- str r3, [r4, #-1812]
- beq .L2334
- ldr r3, [r8, #3972]
+ str r3, [r4, #-1808]
+ beq .L2367
+ ldr r3, [r8, #3976]
sub sl, sl, #1
mov r2, #36
ldr r0, [sp, #16]
@@ -20479,15 +20754,15 @@ ftl_write.part.23:
ldr r3, [sl, #16]
cmp r0, r3
strne r5, [sp, #32]
- bne .L2303
- ldr r3, [r4, #-1824]
+ bne .L2336
+ ldr r3, [r4, #-1820]
mov r0, r7
mov r1, r6
add r3, r3, #1
- str r3, [r4, #-1824]
- ldr r3, [r4, #460]
+ str r3, [r4, #-1820]
+ ldr r3, [r4, #468]
add r3, r3, #1
- str r3, [r4, #460]
+ str r3, [r4, #468]
bl __aeabi_uidivmod
ldr r0, [sl, #8]
rsb r8, r1, r6
@@ -20501,11 +20776,11 @@ ftl_write.part.23:
bl memcpy
cmp fp, #0
ldr r3, [sp, #4]
- bne .L2304
- ldr r2, [r4, #460]
+ bne .L2337
+ ldr r2, [r4, #468]
cmp r2, #2
- ble .L2305
-.L2304:
+ ble .L2338
+.L2337:
add r9, r9, r3
add r7, r7, r8
ldr r3, [sp, #16]
@@ -20514,85 +20789,85 @@ ftl_write.part.23:
add r3, r3, #1
str r1, [sp, #32]
str r3, [sp, #16]
-.L2303:
- ldr r3, .L2346
+.L2336:
+ ldr r3, .L2379
mov r2, #0
- str r2, [r3, #460]
- b .L2302
-.L2334:
+ str r2, [r3, #468]
+ b .L2335
+.L2367:
str r5, [sp, #32]
-.L2302:
+.L2335:
ldr r0, [sp, #16]
ldr r1, [sp, #36]
bl FtlCacheMetchLpa
cmp r0, #0
- beq .L2306
+ beq .L2339
bl FtlCacheWriteBack
-.L2306:
+.L2339:
cmp r5, r6, asl #1
- ldr r3, .L2346
- ldr r4, .L2346+4
+ ldr r3, .L2379
+ ldr r4, .L2379+4
mov fp, #0
movcc r6, #0
movcs r6, #1
str r6, [sp, #24]
- ldr r6, .L2346+8
+ ldr r6, .L2379+8
ldr r5, [sp, #16]
mov sl, r4
str fp, [sp, #40]
- str r6, [r3, #444]
- b .L2343
-.L2332:
+ str r6, [r3, #452]
+ b .L2376
+.L2365:
ldrh r1, [r6, #4]
cmp r1, #0
- bne .L2308
- ldr r2, .L2346+8
- ldr r3, .L2346+12
+ bne .L2341
+ ldr r2, .L2379+8
+ ldr r3, .L2379+12
cmp r6, r2
- bne .L2309
- ldr r2, .L2346+16
+ bne .L2342
+ ldr r2, .L2379+16
ldrh r8, [r8, r2]
cmp r8, #0
- bne .L2310
- ldr r0, .L2346+20
+ bne .L2343
+ ldr r0, .L2379+20
str r3, [sp, #4]
bl allocate_new_data_superblock
ldr r3, [sp, #4]
- str r8, [r3, #3100]
-.L2310:
- ldr r0, .L2346+8
+ str r8, [r3, #3228]
+.L2343:
+ ldr r0, .L2379+8
str r3, [sp, #4]
bl allocate_new_data_superblock
ldr r3, [sp, #4]
- ldr r2, [r3, #3100]
- ldr r3, .L2346+20
+ ldr r2, [r3, #3228]
+ ldr r3, .L2379+20
cmp r2, #0
movne r6, r3
- b .L2311
-.L2309:
- str r1, [r3, #3100]
- ldr r3, .L2346+24
+ b .L2344
+.L2342:
+ str r1, [r3, #3228]
+ ldr r3, .L2379+24
ldrh r3, [r8, r3]
cmp r3, #0
movne r6, r2
- bne .L2311
+ bne .L2344
mov r0, r6
bl allocate_new_data_superblock
-.L2311:
+.L2344:
ldrh r3, [r6, #4]
cmp r3, #0
- bne .L2312
+ bne .L2345
mov r0, r6
bl allocate_new_data_superblock
-.L2312:
- ldr r3, .L2346
- str r6, [r3, #444]
-.L2308:
- ldr r2, .L2346
+.L2345:
+ ldr r3, .L2379
+ str r6, [r3, #452]
+.L2341:
+ ldr r2, .L2379
mov r8, r6
ldrh r3, [r6, #4]
- ldr r1, [r2, #-972]
- ldr r2, [r4, #3968]
+ ldr r1, [r2, #-964]
+ ldr r2, [r4, #3972]
rsb r2, r2, r1
cmp r3, r2
movcc r2, r3
@@ -20602,29 +20877,29 @@ ftl_write.part.23:
str r3, [sp, #52]
mov r3, #0
str r3, [sp, #28]
- b .L2313
-.L2329:
+ b .L2346
+.L2362:
ldrh r3, [r8, #4]
cmp r3, #0
- beq .L2314
+ beq .L2347
ldr r6, [sp, #36]
rsb lr, r6, r5
ldr r6, [sp, #24]
rsbs r3, lr, #0
adc r3, r3, lr
tst r3, r6
- beq .L2315
+ beq .L2348
ldr r6, [sp, #28]
cmp r6, #0
- beq .L2315
- movw lr, #3922
+ beq .L2348
+ movw lr, #3924
ldr r6, [sp, #32]
ldrh r2, [r4, lr]
add r1, r6, r7
mls r1, r2, r5, r1
cmp r1, r2
- bne .L2314
-.L2315:
+ bne .L2347
+.L2348:
add r1, sp, #56
mov r2, #0
mov r0, r5
@@ -20632,15 +20907,15 @@ ftl_write.part.23:
bl log2phys
mov r0, r8
bl get_new_active_ppa
- ldr lr, [r4, #3968]
- ldr r1, [r4, #3972]
- movw r2, #3928
+ ldr lr, [r4, #3972]
+ ldr r1, [r4, #3976]
+ movw r2, #3930
mov ip, #36
ldrh r2, [r4, r2]
- ldr r6, .L2346
+ ldr r6, .L2379
mla r1, ip, lr, r1
mul lr, lr, r2
- ldr r6, [r6, #-924]
+ ldr r6, [r6, #-916]
bic lr, lr, #3
str r6, [sp, #48]
str lr, [sp, #44]
@@ -20648,14 +20923,14 @@ ftl_write.part.23:
str r5, [r1, #16]
str r6, [r1, #12]
str r0, [r1, #4]
- movw r0, #3926
+ movw r0, #3928
ldrh lr, [r4, r0]
- ldr r0, [r4, #3968]
+ ldr r0, [r4, #3972]
mul lr, r0, lr
- ldr r0, .L2346
+ ldr r0, .L2379
bic lr, lr, #3
str lr, [sp, #12]
- ldr lr, [r0, #-944]
+ ldr lr, [r0, #-936]
ldr r0, [sp, #12]
add lr, lr, r0
mov r0, r6
@@ -20671,11 +20946,11 @@ ftl_write.part.23:
str r1, [sp, #12]
orrs r1, r1, r3
ldr ip, [sp, #8]
- beq .L2316
+ beq .L2349
ldr r2, [sp, #12]
cmp r2, #0
- beq .L2317
- movw r3, #3922
+ beq .L2350
+ movw r3, #3924
mov r0, r7
ldrh fp, [r4, r3]
mov r1, fp
@@ -20685,27 +20960,27 @@ ftl_write.part.23:
str r1, [sp, #40]
cmp fp, r3
movcs fp, r3
- b .L2318
-.L2317:
+ b .L2351
+.L2350:
cmp r3, #0
- beq .L2318
+ beq .L2351
ldr r3, [sp, #32]
- movw lr, #3922
+ movw lr, #3924
add fp, r3, r7
ldrh r3, [r4, lr]
mls fp, r3, r5, fp
ldr r3, [sp, #12]
str r3, [sp, #40]
uxth fp, fp
-.L2318:
- movw lr, #3922
+.L2351:
+ movw lr, #3924
ldrh r3, [r4, lr]
cmp fp, r3
- bne .L2319
+ bne .L2352
ldr r3, [sp, #12]
- ldr r0, [sl, #3968]
+ ldr r0, [sl, #3972]
cmp r3, #0
- ldr r2, [sl, #3972]
+ ldr r2, [sl, #3976]
ldr r3, [sp, #24]
muleq r1, r5, fp
movne r1, r9
@@ -20715,20 +20990,20 @@ ftl_write.part.23:
mov r3, #36
mla r3, r3, r0, r2
strne r1, [r3, #8]
- bne .L2322
+ bne .L2355
ldr r0, [r3, #8]
- movw r3, #3926
+ movw r3, #3928
ldrh r2, [sl, r3]
- b .L2344
-.L2319:
+ b .L2377
+.L2352:
ldr r2, [sp, #56]
mov r3, #36
cmn r2, #1
- beq .L2323
- ldr r1, [r4, #3968]
+ beq .L2356
+ ldr r1, [r4, #3972]
add r0, sp, #60
str r2, [sp, #64]
- ldr r2, [r4, #3972]
+ ldr r2, [r4, #3976]
str r5, [sp, #76]
mla r3, r3, r1, r2
mov r1, #1
@@ -20740,38 +21015,38 @@ ftl_write.part.23:
bl FlashReadPages
ldr r3, [sp, #60]
cmn r3, #1
- ldr r3, .L2346
- ldreq r2, [r3, #-1636]
+ ldr r3, .L2379
+ ldreq r2, [r3, #-1628]
addeq r2, r2, #1
- streq r2, [r3, #-1636]
- beq .L2325
+ streq r2, [r3, #-1628]
+ beq .L2358
ldr r2, [r6, #8]
cmp r2, r5
- beq .L2325
- ldr r2, [r3, #-1636]
- ldr r0, .L2346+28
+ beq .L2358
+ ldr r2, [r3, #-1628]
+ ldr r0, .L2379+28
add r2, r2, #1
- str r2, [r3, #-1636]
+ str r2, [r3, #-1628]
mov r2, r5
ldr r1, [r6, #8]
bl printk
- b .L2325
-.L2323:
- ldr r1, [r4, #3968]
- ldr r2, [r4, #3972]
+ b .L2358
+.L2356:
+ ldr r1, [r4, #3972]
+ ldr r2, [r4, #3976]
mla r3, r3, r1, r2
mov r1, #0
ldr r0, [r3, #8]
- movw r3, #3926
+ movw r3, #3928
ldrh r2, [r4, r3]
bl ftl_memset
-.L2325:
+.L2358:
ldr r3, [sp, #12]
- ldr r1, [r4, #3968]
+ ldr r1, [r4, #3972]
cmp r3, #0
- ldr r2, [r4, #3972]
+ ldr r2, [r4, #3976]
mov r3, #36
- movweq lr, #3922
+ movweq lr, #3924
mla r3, r3, r1, r2
ldreqh r1, [r4, lr]
movne r1, r9
@@ -20783,140 +21058,140 @@ ftl_write.part.23:
ldreq r0, [r3, #8]
addne r0, r0, r3, asl #9
addeq r1, r9, r1, asl #9
- b .L2344
-.L2316:
+ b .L2377
+.L2349:
ldr r3, [sp, #24]
- ldr r2, [r4, #3968]
+ ldr r2, [r4, #3972]
cmp r3, #0
- ldr r3, [r4, #3972]
+ ldr r3, [r4, #3976]
mla ip, ip, r2, r3
- beq .L2327
- movw lr, #3922
+ beq .L2360
+ movw lr, #3924
ldrh r3, [r4, lr]
mul r3, r3, r5
rsb r3, r7, r3
add r3, r9, r3, asl #9
str r3, [ip, #8]
- b .L2322
-.L2327:
- movw r0, #3922
- movw r3, #3926
+ b .L2355
+.L2360:
+ movw r0, #3924
+ movw r3, #3928
ldrh r1, [r4, r0]
ldrh r2, [r4, r3]
ldr r0, [ip, #8]
mul r1, r1, r5
rsb r1, r7, r1
add r1, r9, r1, asl #9
-.L2344:
+.L2377:
bl memcpy
-.L2322:
- ldr r3, .L2346+32
+.L2355:
+ ldr r3, .L2379+32
ldr r0, [sp, #48]
ldr lr, [sp, #44]
strh r3, [r0, lr] @ movhi
- ldr r3, .L2346
+ ldr r3, .L2379
str r5, [r6, #8]
add r5, r5, #1
- ldr r2, [r3, #-1800]
+ ldr r2, [r3, #-1796]
str r2, [r6, #4]
add r2, r2, #1
cmn r2, #1
- str r2, [r3, #-1800]
+ str r2, [r3, #-1796]
moveq r2, #0
- streq r2, [r3, #-1800]
+ streq r2, [r3, #-1796]
ldr r3, [sp, #56]
str r3, [r6, #12]
ldrh r3, [r8, #0]
strh r3, [r6, #2] @ movhi
- ldr r3, [r4, #3968]
+ ldr r3, [r4, #3972]
add r3, r3, #1
- str r3, [r4, #3968]
+ str r3, [r4, #3972]
ldr r3, [sp, #28]
add r3, r3, #1
str r3, [sp, #28]
-.L2313:
+.L2346:
ldr r6, [sp, #28]
ldr r3, [sp, #52]
cmp r6, r3
- bne .L2329
-.L2314:
+ bne .L2362
+.L2347:
ldr r3, [sp, #20]
mov r6, r8
ldr lr, [sp, #28]
- ldr r2, [r4, #3968]
+ ldr r2, [r4, #3972]
rsb r3, lr, r3
str r3, [sp, #20]
- ldr r3, .L2346
+ ldr r3, .L2379
ldr r0, [sp, #24]
- ldr r3, [r3, #-972]
+ ldr r3, [r3, #-964]
cmp r2, r3
orrcs r0, r0, #1
uxtb r3, r0
cmp r3, #0
- bne .L2330
+ bne .L2363
ldrh r2, [r8, #4]
cmp r2, #0
- bne .L2340
-.L2330:
+ bne .L2373
+.L2363:
bl FtlCacheWriteBack
ldr lr, [sp, #20]
mov r3, #0
- str r3, [sl, #3968]
+ str r3, [sl, #3972]
cmp lr, #1
ldr r3, [sp, #24]
movls r3, #0
-.L2340:
+.L2373:
str r3, [sp, #24]
-.L2343:
+.L2376:
ldr r3, [sp, #20]
- ldr r8, .L2346
+ ldr r8, .L2379
cmp r3, #0
- bne .L2332
+ bne .L2365
mov r0, r3
ldr r6, [sp, #36]
ldr r3, [sp, #16]
rsb r1, r3, r6
bl ftl_do_gc
- ldr r3, .L2346+36
+ ldr r3, .L2379+36
ldrh r3, [r8, r3]
cmp r3, #31
- bhi .L2305
- ldr r2, .L2346+40
+ bhi .L2338
+ ldr r2, .L2379+40
mov r3, #128
- ldr r5, .L2346+4
+ ldr r5, .L2379+4
mov r4, #16
strh r3, [r8, r2] @ movhi
sub r2, r2, #2
strh r3, [r8, r2] @ movhi
-.L2333:
+.L2366:
mov r0, #0
mov r1, #1
bl ftl_do_gc
- ldr r3, [r5, #4040]
+ ldr r3, [r5, #4044]
cmp r3, #0
- bne .L2305
+ bne .L2338
subs r4, r4, #1
- bne .L2333
-.L2305:
+ bne .L2366
+.L2338:
mov r0, #0
add sp, sp, #100
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L2347:
+.L2380:
.align 2
-.L2346:
+.L2379:
.word .LANCHOR2
.word .LANCHOR0
- .word .LANCHOR2-1996
+ .word .LANCHOR2-1992
.word .LANCHOR1
- .word -1944
- .word .LANCHOR2-1948
- .word -1992
- .word .LC157
+ .word -1940
+ .word .LANCHOR2-1944
+ .word -1988
+ .word .LC158
.word -3947
- .word -2000
- .word -1194
+ .word -1996
+ .word -1186
.fnend
- .size ftl_write.part.23, .-ftl_write.part.23
+ .size ftl_write.part.25, .-ftl_write.part.25
.align 2
.global ftl_write
.type ftl_write, %function
@@ -20928,31 +21203,31 @@ ftl_write:
mov r0, r1
mov r1, r2
mov r2, r3
- ldr r3, .L2353
+ ldr r3, .L2386
stmfd sp!, {r4, lr}
.save {r4, lr}
- ldr r4, [r3, #4040]
+ ldr r4, [r3, #4044]
cmp r4, #0
movne r0, #0
ldmnefd sp!, {r4, pc}
cmp ip, #16
- bne .L2350
+ bne .L2383
add r0, r0, #256
ldmfd sp!, {r4, lr}
b FtlVendorPartWrite
-.L2350:
- ldr r3, [r3, #3956]
+.L2383:
+ ldr r3, [r3, #3960]
add ip, r1, r0
cmp ip, r3
- bhi .L2352
+ bhi .L2385
ldmfd sp!, {r4, lr}
- b ftl_write.part.23
-.L2352:
+ b ftl_write.part.25
+.L2385:
mvn r0, #0
ldmfd sp!, {r4, pc}
-.L2354:
+.L2387:
.align 2
-.L2353:
+.L2386:
.word .LANCHOR0
.fnend
.size ftl_write, .-ftl_write
@@ -21051,24 +21326,24 @@ ftl_read:
mov r6, r1
mov r8, r3
str r2, [sp, #48]
- bne .L2360
+ bne .L2393
add r0, r1, #256
mov r1, r2
mov r2, r3
bl FtlVendorPartRead
str r0, [sp, #36]
- b .L2361
-.L2360:
- ldr r3, .L2391
+ b .L2394
+.L2393:
+ ldr r3, .L2424
ldr r1, [sp, #48]
- ldr r2, [r3, #3956]
+ ldr r2, [r3, #3960]
add r1, r1, r6
str r1, [sp, #40]
cmp r1, r2
mvnhi r3, #0
strhi r3, [sp, #36]
- bhi .L2361
- movw r2, #3922
+ bhi .L2394
+ movw r2, #3924
mov r0, r6
ldrh r4, [r3, r2]
mov r1, r4
@@ -21083,75 +21358,75 @@ ftl_read:
ldr r1, [sp, #48]
add r3, r3, r0
str r3, [sp, #24]
- ldr r3, .L2391+4
+ ldr r3, .L2424+4
str r0, [sp, #32]
ldr r0, [sp, #28]
- ldr r2, [r3, #-1808]
+ ldr r2, [r3, #-1804]
add r2, r1, r2
ldr r1, [sp, #24]
- str r2, [r3, #-1808]
- ldr r2, [r3, #-1836]
+ str r2, [r3, #-1804]
+ ldr r2, [r3, #-1832]
add r2, r1, r2
ldr r1, [sp, #32]
- str r2, [r3, #-1836]
+ str r2, [r3, #-1832]
bl FtlCacheMetchLpa
cmp r0, #0
- beq .L2362
+ beq .L2395
bl FtlCacheWriteBack
-.L2362:
+.L2395:
mov r9, #0
ldr r5, [sp, #28]
str r9, [sp, #52]
mov r4, r9
str r9, [sp, #36]
mov r7, r6
- ldr sl, .L2391
- b .L2386
-.L2380:
+ ldr sl, .L2424
+ b .L2419
+.L2413:
mov r2, #0
mov r0, r5
add r1, sp, #76
bl log2phys
ldr r2, [sp, #76]
cmn r2, #1
- bne .L2387
- b .L2390
-.L2367:
+ bne .L2420
+ b .L2423
+.L2400:
mla r0, r0, r5, r6
cmp r0, r7
- bcc .L2366
+ bcc .L2399
ldr r2, [sp, #40]
cmp r0, r2
- bcs .L2366
+ bcs .L2399
rsb r0, r7, r0
mov r1, #0
mov r2, #512
add r0, r8, r0, asl #9
bl ftl_memset
-.L2366:
+.L2399:
add r6, r6, #1
- b .L2364
-.L2390:
+ b .L2397
+.L2423:
mov r6, #0
- movw fp, #3922
-.L2364:
+ movw fp, #3924
+.L2397:
ldrh r0, [sl, fp]
cmp r6, r0
- bcc .L2367
- b .L2368
-.L2387:
- ldr r3, .L2391+4
+ bcc .L2400
+ b .L2401
+.L2420:
+ ldr r3, .L2424+4
mov r6, #36
- ldr r1, [r3, #-968]
+ ldr r1, [r3, #-960]
mla r6, r6, r4, r1
ldr r1, [sp, #28]
cmp r5, r1
str r2, [r6, #4]
- movw r2, #3922
- bne .L2369
+ movw r2, #3924
+ bne .L2402
ldrh fp, [sl, r2]
mov r0, r7
- ldr r3, [r3, #-940]
+ ldr r3, [r3, #-932]
mov r1, fp
str r3, [r6, #8]
bl __aeabi_uidivmod
@@ -21163,55 +21438,55 @@ ftl_read:
str r2, [sp, #52]
cmp r2, fp
streq r8, [r6, #8]
- b .L2370
-.L2369:
+ b .L2403
+.L2402:
ldr r1, [sp, #32]
cmp r5, r1
ldrneh r3, [sl, r2]
mulne r3, r3, r5
- bne .L2388
- ldr r3, [r3, #-936]
+ bne .L2421
+ ldr r3, [r3, #-928]
ldrh r2, [sl, r2]
ldr r1, [sp, #40]
str r3, [r6, #8]
mul r3, r2, r5
rsb r9, r3, r1
cmp r9, r2
- bne .L2370
-.L2388:
+ bne .L2403
+.L2421:
rsb r3, r7, r3
add r3, r8, r3, asl #9
str r3, [r6, #8]
-.L2370:
- movw r3, #3928
- ldr r2, .L2391+4
+.L2403:
+ movw r3, #3930
+ ldr r2, .L2424+4
ldrh r3, [sl, r3]
str r5, [r6, #16]
- ldr r2, [r2, #-928]
+ ldr r2, [r2, #-920]
mul r3, r3, r4
add r4, r4, #1
bic r3, r3, #3
add r3, r2, r3
str r3, [r6, #12]
-.L2368:
+.L2401:
ldr r2, [sp, #24]
add r5, r5, #1
subs r2, r2, #1
str r2, [sp, #24]
- beq .L2372
- movw r3, #3848
+ beq .L2405
+ movw r3, #3852
ldrh r3, [sl, r3]
cmp r4, r3, asl #3
- bne .L2386
-.L2372:
+ bne .L2419
+.L2405:
cmp r4, #0
- beq .L2386
- ldr r6, .L2391+4
+ beq .L2419
+ ldr r6, .L2424+4
mov r1, r4
mov r2, #0
mov fp, r5
mov r5, r4
- ldr r0, [r6, #-968]
+ ldr r0, [r6, #-960]
bl FlashReadPages
ldr r3, [sp, #56]
ldr r1, [sp, #52]
@@ -21223,60 +21498,60 @@ ftl_read:
mov r3, #0
str r1, [sp, #64]
str r3, [sp, #44]
-.L2379:
+.L2412:
ldr r1, [sp, #44]
mov r4, #36
- ldr r3, [r6, #-968]
+ ldr r3, [r6, #-960]
mul r4, r4, r1
ldr r1, [sp, #28]
add r3, r3, r4
ldr r2, [r3, #16]
cmp r2, r1
- bne .L2374
+ bne .L2407
ldr r1, [r3, #8]
- ldr r3, [r6, #-940]
+ ldr r3, [r6, #-932]
cmp r1, r3
- bne .L2375
+ bne .L2408
ldr r2, [sp, #60]
mov r0, r8
add r1, r1, r2
ldr r2, [sp, #64]
- b .L2389
-.L2374:
+ b .L2422
+.L2407:
ldr r1, [sp, #32]
cmp r2, r1
- bne .L2375
+ bne .L2408
ldr r1, [r3, #8]
- ldr r3, [r6, #-936]
+ ldr r3, [r6, #-928]
cmp r1, r3
- bne .L2375
- movw r2, #3922
+ bne .L2408
+ movw r2, #3924
ldr r3, [sp, #32]
ldrh r0, [sl, r2]
ldr r2, [sp, #68]
mul r0, r0, r3
rsb r0, r7, r0
add r0, r8, r0, asl #9
-.L2389:
+.L2422:
bl memcpy
-.L2375:
- ldr r2, [r6, #-968]
+.L2408:
+ ldr r2, [r6, #-960]
add r3, r2, r4
ldr r2, [r2, r4]
cmn r2, #1
streq r2, [sp, #36]
- ldreq r1, [r6, #-1636]
+ ldreq r1, [r6, #-1628]
addeq r1, r1, #1
- streq r1, [r6, #-1636]
+ streq r1, [r6, #-1628]
ldr r2, [r3, #12]
ldr r1, [r3, #16]
ldr r2, [r2, #8]
cmp r1, r2
- beq .L2377
- ldr r2, [r6, #-1636]
- ldr r0, .L2391+8
+ beq .L2410
+ ldr r2, [r6, #-1628]
+ ldr r0, .L2424+8
add r2, r2, #1
- str r2, [r6, #-1636]
+ str r2, [r6, #-1628]
ldr ip, [r3, #12]
ldr r2, [r3, #8]
ldr r1, [ip, #4]
@@ -21293,47 +21568,47 @@ ftl_read:
ldr r2, [r3, #4]
ldr r3, [ip, #0]
bl printk
-.L2377:
- ldr r3, [r6, #-968]
+.L2410:
+ ldr r3, [r6, #-960]
add r2, r3, r4
ldr r3, [r3, r4]
cmp r3, #256
- bne .L2378
+ bne .L2411
ldr r0, [r2, #4]
ubfx r0, r0, #10, #16
bl P2V_block_in_plane
bl FtlGcRefreshBlock
-.L2378:
+.L2411:
ldr r1, [sp, #44]
add r1, r1, #1
str r1, [sp, #44]
cmp r1, r5
- bne .L2379
+ bne .L2412
mov r5, fp
mov r4, #0
-.L2386:
+.L2419:
ldr r2, [sp, #24]
cmp r2, #0
- bne .L2380
- ldr r3, .L2391+12
- ldr r2, .L2391+4
+ bne .L2413
+ ldr r3, .L2424+12
+ ldr r2, .L2424+4
ldrh r3, [r2, r3]
cmp r3, #0
- beq .L2361
+ beq .L2394
ldr r0, [sp, #24]
mov r1, #1
bl ftl_do_gc
-.L2361:
+.L2394:
ldr r0, [sp, #36]
add sp, sp, #84
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L2392:
+.L2425:
.align 2
-.L2391:
+.L2424:
.word .LANCHOR0
.word .LANCHOR2
- .word .LC142
- .word -1134
+ .word .LC143
+ .word -1126
.fnend
.size ftl_read, .-ftl_read
.align 2
@@ -21432,8 +21707,8 @@ FlashBootVendorRead:
.fnend
.size FlashBootVendorRead, .-FlashBootVendorRead
.align 2
- .type rk_ftl_vendor_ops.constprop.27, %function
-rk_ftl_vendor_ops.constprop.27:
+ .type rk_ftl_vendor_ops.constprop.29, %function
+rk_ftl_vendor_ops.constprop.29:
.fnstart
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@@ -21443,12 +21718,12 @@ rk_ftl_vendor_ops.constprop.27:
mov r2, r3
mov r0, r1
mov r1, #128
- beq .L2399
+ beq .L2432
b FlashBootVendorWrite
-.L2399:
+.L2432:
b FlashBootVendorRead
.fnend
- .size rk_ftl_vendor_ops.constprop.27, .-rk_ftl_vendor_ops.constprop.27
+ .size rk_ftl_vendor_ops.constprop.29, .-rk_ftl_vendor_ops.constprop.29
.align 2
.global FtlCheckVpc
.type FtlCheckVpc, %function
@@ -21459,126 +21734,126 @@ FtlCheckVpc:
stmfd sp!, {r0, r1, r2, r4, r5, r6, r7, r8, sl, lr}
.save {r0, r1, r2, r4, r5, r6, r7, r8, sl, lr}
mov r4, #0
- ldr r1, .L2411
- ldr r0, .L2411+4
+ ldr r1, .L2444
+ ldr r0, .L2444+4
bl printk
- ldr r0, .L2411+8
+ ldr r0, .L2444+8
mov r1, #8192
- ldr r6, .L2411+12
+ ldr r6, .L2444+12
bl __memzero
- ldr r5, .L2411+16
- b .L2401
-.L2403:
+ ldr r5, .L2444+16
+ b .L2434
+.L2436:
mov r0, r4
add r1, sp, #4
mov r2, #0
bl log2phys
ldr r0, [sp, #4]
cmn r0, #1
- beq .L2402
+ beq .L2435
ubfx r0, r0, #10, #16
bl P2V_block_in_plane
add r0, r5, r0, asl #1
- add r0, r0, #464
+ add r0, r0, #472
ldrh r3, [r0, #0]
add r3, r3, #1
strh r3, [r0, #0] @ movhi
-.L2402:
+.L2435:
add r4, r4, #1
-.L2401:
- ldr r3, [r6, #3976]
- ldr r7, .L2411+12
+.L2434:
+ ldr r3, [r6, #3980]
+ ldr r7, .L2444+12
cmp r4, r3
- bcc .L2403
- ldr r5, .L2411+16
- mov r6, #3856
- ldr r0, .L2411+20
+ bcc .L2436
+ ldr r5, .L2444+16
+ movw r6, #3860
+ ldr r0, .L2444+20
mov r2, #2
ldrh r3, [r7, r6]
mov r4, #0
- ldr r1, [r5, #-2016]
+ ldr r1, [r5, #-2012]
bl rknand_print_hex
- ldr r0, .L2411+24
- add r1, r5, #464
+ ldr r0, .L2444+24
+ add r1, r5, #472
mov r2, #2
ldrh r3, [r7, r6]
bl rknand_print_hex
- b .L2404
-.L2406:
- ldr r2, [r5, #-2016]
+ b .L2437
+.L2439:
+ ldr r2, [r5, #-2012]
mov r3, r4, asl #1
ldrh r2, [r2, r3]
add r3, r5, r3
- add r3, r3, #464
+ add r3, r3, #472
ldrh r3, [r3, #0]
cmp r2, r3
- beq .L2405
- ldr r0, .L2411+28
+ beq .L2438
+ ldr r0, .L2444+28
mov r1, r4
bl printk
-.L2405:
+.L2438:
add r4, r4, #1
uxth r4, r4
-.L2404:
+.L2437:
ldrh r3, [r7, r6]
cmp r3, r4
- ldr r3, .L2411+16
- bhi .L2406
- ldr r2, [r3, #-2004]
+ ldr r3, .L2444+16
+ bhi .L2439
+ ldr r2, [r3, #-2000]
cmp r2, #0
- beq .L2400
- ldr r4, [r3, #-2024]
+ beq .L2433
+ ldr r4, [r3, #-2020]
mov r6, #0
- ldr r1, .L2411+32
+ ldr r1, .L2444+32
mov r5, r3
rsb r2, r4, r2
- ldr r4, .L2411+36
+ ldr r4, .L2444+36
mov r8, #6
movw sl, #65535
mov r2, r2, asr #1
ldrh r7, [r3, r1]
mul r4, r4, r2
uxth r4, r4
- b .L2408
-.L2410:
- ldr r2, [r5, #-2016]
+ b .L2441
+.L2443:
+ ldr r2, [r5, #-2012]
mov r3, r4, asl #1
ldrh r2, [r2, r3]
cmp r2, #0
- beq .L2409
+ beq .L2442
add r3, r5, r3
- ldr r0, .L2411+40
- add r3, r3, #464
+ ldr r0, .L2444+40
+ add r3, r3, #472
mov r1, r4
ldrh r3, [r3, #0]
bl printk
-.L2409:
+.L2442:
mul r4, r8, r4
- ldr r3, [r5, #-2024]
+ ldr r3, [r5, #-2020]
ldrh r4, [r3, r4]
cmp r4, sl
- beq .L2400
+ beq .L2433
add r6, r6, #1
uxth r6, r6
-.L2408:
+.L2441:
cmp r6, r7
- bne .L2410
-.L2400:
+ bne .L2443
+.L2433:
ldmfd sp!, {r1, r2, r3, r4, r5, r6, r7, r8, sl, pc}
-.L2412:
+.L2445:
.align 2
-.L2411:
+.L2444:
.word .LANCHOR3+77
- .word .LC102
- .word .LANCHOR2+464
+ .word .LC101
+ .word .LANCHOR2+472
.word .LANCHOR0
.word .LANCHOR2
- .word .LC158
.word .LC159
.word .LC160
- .word -2000
- .word -1431655765
.word .LC161
+ .word -1996
+ .word -1431655765
+ .word .LC162
.fnend
.size FtlCheckVpc, .-FtlCheckVpc
.align 2
@@ -21586,9 +21861,9 @@ FtlCheckVpc:
.type HynixGetReadRetryDefault, %function
HynixGetReadRetryDefault:
.fnstart
- @ args = 0, pretend = 0, frame = 64
+ @ args = 0, pretend = 0, frame = 56
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L2498
+ ldr r3, .L2541
mvn r2, #83
stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
.save {r4, r5, r6, r7, r8, r9, sl, fp, lr}
@@ -21599,21 +21874,22 @@ HynixGetReadRetryDefault:
mvn r0, #82
mvn r1, #81
mvn r2, #80
- .pad #68
- sub sp, sp, #68
+ .pad #60
+ sub sp, sp, #60
strb r0, [r3, #5]
strb r1, [r3, #6]
strb r2, [r3, #7]
- bne .L2414
+ bne .L2447
mvn r2, #88
strb r2, [r3, #4]
- ldr r3, .L2498+4
+ ldr r3, .L2541+4
mvn r2, #8
- strb r2, [r3, #3121]
- b .L2470
-.L2414:
+ mov r7, #7
+ strb r2, [r3, #3249]
+ b .L2511
+.L2447:
cmp r4, #3
- bne .L2416
+ bne .L2449
mvn r2, #79
strb r2, [r3, #4]
mvn r2, #78
@@ -21629,10 +21905,10 @@ HynixGetReadRetryDefault:
mvn r2, #73
strb r2, [r3, #10]
mvn r2, #72
- b .L2493
-.L2416:
+ b .L2535
+.L2449:
cmp r4, #4
- bne .L2417
+ bne .L2450
mvn ip, #51
strb r0, [r3, #9]
strb ip, [r3, #4]
@@ -21645,16 +21921,16 @@ HynixGetReadRetryDefault:
strb ip, [r3, #7]
mvn ip, #50
strb ip, [r3, #8]
-.L2493:
- mov r6, #8
+.L2535:
+ mov r7, #8
strb r2, [r3, #11]
- mov r5, r6
- b .L2415
-.L2417:
+ mov r6, r7
+ b .L2448
+.L2450:
cmp r4, #5
- bne .L2418
+ bne .L2451
mov r2, #56
- mov r6, #8
+ mov r7, #8
strb r2, [r3, #4]
mov r2, #57
strb r2, [r3, #5]
@@ -21662,12 +21938,12 @@ HynixGetReadRetryDefault:
strb r2, [r3, #6]
mov r2, #59
strb r2, [r3, #7]
- b .L2492
-.L2418:
+ b .L2511
+.L2451:
cmp r4, #6
- bne .L2419
+ bne .L2452
mov r2, #14
- mov r6, #12
+ mov r7, #12
strb r2, [r3, #4]
mov r2, #15
strb r2, [r3, #5]
@@ -21675,14 +21951,14 @@ HynixGetReadRetryDefault:
strb r2, [r3, #6]
mov r2, #17
strb r2, [r3, #7]
- b .L2492
-.L2419:
+ b .L2511
+.L2452:
cmp r4, #7
- bne .L2470
+ bne .L2453
mvn r2, #79
- mov r6, #12
+ mov r7, #12
strb r2, [r3, #4]
- mov r5, #10
+ mov r6, #10
mvn r2, #78
strb r2, [r3, #5]
mvn r2, #77
@@ -21701,21 +21977,34 @@ HynixGetReadRetryDefault:
strb r2, [r3, #12]
mvn r2, #42
strb r2, [r3, #13]
- b .L2415
-.L2470:
- mov r6, #7
-.L2492:
- mov r5, #4
-.L2415:
+ b .L2448
+.L2453:
+ cmp r4, #8
+ mov r7, #7
+ bne .L2511
+ mov r2, #6
+ strb r7, [r3, #5]
+ strb r2, [r3, #4]
+ mov r7, #50
+ mov r2, #9
+ strb r4, [r3, #6]
+ strb r2, [r3, #7]
+ mov r6, #5
+ mov r2, #10
+ strb r2, [r3, #8]
+ b .L2448
+.L2511:
+ mov r6, #4
+.L2448:
sub r3, r4, #1
cmp r3, #1
- bhi .L2488
- b .L2496
-.L2426:
+ bhi .L2531
+ b .L2539
+.L2460:
add r2, fp, r8
add r4, fp, #20
- mov r7, #0
- mov r5, #55
+ mov r5, #0
+ mov r6, #55
ldrb r2, [r2, #3764] @ zero_extendqisi2
add r4, r4, r2, asl #6
add r2, fp, r2, asl #3
@@ -21723,40 +22012,40 @@ HynixGetReadRetryDefault:
ldr r1, [r2, #864]
add sl, sl, #8
add sl, r1, sl, asl #8
-.L2422:
- add r2, fp, r7
- str r5, [sl, #8]
+.L2456:
+ add r2, fp, r5
+ str r6, [sl, #8]
mov r0, #80
ldrb r2, [r2, #4] @ zero_extendqisi2
str r2, [sl, #4]
- str r3, [sp, #12]
+ str r3, [sp, #8]
bl NandcDelayns
ldr r2, [sl, #0]
- strb r2, [r4, r7]
- add r7, r7, #1
- ldr r3, [sp, #12]
- uxtb r2, r7
- cmp r2, r6
- bcc .L2422
+ strb r2, [r4, r5]
+ add r5, r5, #1
+ ldr r3, [sp, #8]
+ uxtb r2, r5
+ cmp r2, r7
+ bcc .L2456
mov r2, #0
- b .L2423
-.L2424:
- ldrb r7, [r0, r1, asl #2] @ zero_extendqisi2
+ b .L2457
+.L2458:
+ ldrb r6, [r0, r1, asl #2] @ zero_extendqisi2
ldrb r5, [r4, r2] @ zero_extendqisi2
- add r5, r7, r5
+ add r5, r6, r5
strb r5, [ip, r1, asl #3]
add r1, r1, #1
cmp r1, #7
- bne .L2424
+ bne .L2458
add r2, r2, #1
cmp r2, #4
- beq .L2425
-.L2423:
+ beq .L2459
+.L2457:
mov r1, #1
add ip, r4, r2
add r0, r2, r9
- b .L2424
-.L2425:
+ b .L2458
+.L2459:
add r8, r8, #1
mov r2, #0
strb r2, [r4, #16]
@@ -21767,85 +22056,115 @@ HynixGetReadRetryDefault:
strb r2, [r4, #48]
strb r2, [r4, #41]
strb r2, [r4, #49]
- b .L2420
-.L2496:
- ldr r9, .L2498+8
- mov r3, r6
+ b .L2454
+.L2539:
+ ldr r9, .L2541+8
+ mov r3, r7
mov r8, #0
- mov r6, r5
-.L2420:
- ldr fp, .L2498
+ mov r7, r6
+.L2454:
+ ldr fp, .L2541
ldrb r2, [fp, #3762] @ zero_extendqisi2
cmp r2, r8
- bhi .L2426
- mov r5, r6
- mov r6, r3
- b .L2427
-.L2488:
+ bhi .L2460
+ mov r6, r7
+ mov r7, r3
+ b .L2461
+.L2531:
sub r3, r4, #3
- cmp r3, #4
- bhi .L2427
- mul r3, r6, r5
+ cmp r3, #5
+ bhi .L2461
+ mul r3, r7, r6
mov sl, #0
- mov r7, sl
- str r6, [sp, #48]
- mov r2, r3, asr #2
+ mov r5, sl
+ str r7, [sp, #48]
+ mov r2, r3, asr #1
mov r3, r3, asl #4
str r2, [sp, #24]
str r3, [sp, #52]
- b .L2428
-.L2469:
+ b .L2462
+.L2510:
add r3, r1, sl
- ldrb r6, [r3, #3764] @ zero_extendqisi2
- add r3, r1, r6, asl #3
- mov r0, r6
+ ldrb r7, [r3, #3764] @ zero_extendqisi2
+ add r3, r1, r7, asl #3
+ mov r0, r7
ldrb fp, [r3, #868] @ zero_extendqisi2
ldr r9, [r3, #864]
mov r3, #255
add fp, fp, #8
add r8, r9, fp, asl #8
str r3, [r8, #8]
- str r1, [sp, #12]
+ str r1, [sp, #8]
bl NandcWaitFlashReady
- ldr r1, [sp, #12]
cmp r4, #7
+ ldr r1, [sp, #8]
addeq r1, r1, #28
moveq r3, #160
+ mlaeq r3, r3, r7, r1
+ streq r3, [sp, #32]
+ beq .L2464
+.L2463:
+ cmp r4, #8
addne r1, r1, #20
- addne r1, r1, r6, asl #6
- strne r1, [sp, #28]
- mlaeq r3, r3, r6, r1
- streq r3, [sp, #28]
+ addne r1, r1, r7, asl #6
+ strne r1, [sp, #32]
+ bne .L2464
+ mov r3, #120
+ mov r2, #25
+ str r3, [r8, #8]
+ add r1, r1, #28
+ str r5, [r8, #4]
+ mov r3, #23
+ str r5, [r8, #4]
+ str r1, [sp, #32]
+ str r5, [r8, #4]
+ str r3, [r8, #8]
+ mov r3, #4
+ str r3, [r8, #8]
+ str r2, [r8, #8]
+ mov r2, #218
+ str r2, [r8, #8]
+ mov r2, #21
+ str r5, [r8, #8]
+ str r5, [r8, #4]
+ str r5, [r8, #4]
+ str r2, [r8, #4]
+ str r3, [r8, #4]
+ str r5, [r8, #4]
+ b .L2466
+.L2464:
cmp r4, #4
mov r3, #54
str r3, [r8, #8]
- bne .L2431
+ bne .L2467
mov r3, #255
str r3, [r8, #4]
mov r3, #64
str r3, [r9, fp, asl #8]
mov r3, #204
- b .L2494
-.L2431:
+ b .L2536
+.L2467:
sub r3, r4, #5
cmp r3, #1
- ldrls r3, .L2498
+ ldrls r3, .L2541
ldrlsb r3, [r3, #4] @ zero_extendqisi2
strls r3, [r8, #4]
movls r3, #82
- bls .L2495
-.L2433:
+ bls .L2537
+.L2469:
+ cmp r4, #7
+ bne .L2468
mov r3, #174
str r3, [r8, #4]
mov r3, #176
- str r7, [r9, fp, asl #8]
-.L2494:
+ str r5, [r9, fp, asl #8]
+.L2536:
str r3, [r8, #4]
mov r3, #77
-.L2495:
- cmp r4, #6
+.L2537:
str r3, [r9, fp, asl #8]
- mov r0, r6
+.L2468:
+ cmp r4, #6
mov r3, #22
str r3, [r8, #8]
mov r3, #23
@@ -21855,276 +22174,321 @@ HynixGetReadRetryDefault:
mov r3, #25
str r3, [r8, #8]
moveq r3, #31
- str r7, [r8, #8]
- str r7, [r8, #4]
- str r7, [r8, #4]
+ str r5, [r8, #8]
+ str r5, [r8, #4]
+ str r5, [r8, #4]
streq r3, [r8, #4]
mov r3, #2
- strne r7, [r8, #4]
+ strne r5, [r8, #4]
str r3, [r8, #4]
+ str r5, [r8, #4]
+.L2466:
mov r3, #48
- str r7, [r8, #4]
+ mov r0, r7
str r3, [r8, #8]
bl NandcWaitFlashReady
sub r3, r4, #5
cmp r3, #1
+ sub r2, r4, #8
+ movhi r3, #0
+ movls r3, #1
str r3, [sp, #36]
- movls r1, #16
- bls .L2437
+ rsbs r3, r2, #0
+ ldr ip, [sp, #36]
+ adc r3, r3, r2
+ str r3, [sp, #20]
+ orrs ip, ip, r3
+ movne r1, #16
+ bne .L2472
cmp r4, #7
moveq r1, #32
movne r1, #2
-.L2437:
- ldr r3, .L2498+12
- ldr r2, [r3, #152]
- mov r3, #0
-.L2438:
+.L2472:
+ ldr r3, .L2541+12
+ mov r2, #0
+ ldr r3, [r3, #160]
+.L2473:
ldr r0, [r8, #0]
- strb r0, [r2, r3]
- add r3, r3, #1
- uxtb r0, r3
+ strb r0, [r3, r2]
+ add r2, r2, #1
+ uxtb r0, r2
cmp r0, r1
- bcc .L2438
+ bcc .L2473
+ ldr r1, [sp, #20]
+ cmp r1, #0
+ beq .L2474
+ mov r2, #0
+.L2476:
+ ldrb r1, [r3, #0] @ zero_extendqisi2
+ cmp r1, #50
+ beq .L2475
+ ldrb r1, [r3, #1] @ zero_extendqisi2
+ cmp r1, #5
+ beq .L2475
+ add r2, r2, #1
+ add r3, r3, #4
+ uxtb r2, r2
+ cmp r2, #8
+ bne .L2476
+ b .L2477
+.L2475:
+ cmp r2, #6
+ bls .L2478
+.L2477:
+ ldr r0, .L2541+16
+ mov r1, #0
+ bl printk
+.L2479:
+ b .L2479
+.L2474:
cmp r4, #7
- bne .L2439
- mov r3, #0
-.L2441:
- ldrb r1, [r2, #0] @ zero_extendqisi2
+ bne .L2480
+ ldr r2, [sp, #20]
+.L2482:
+ ldrb r1, [r3, #0] @ zero_extendqisi2
cmp r1, #12
- beq .L2440
- ldrb r1, [r2, #1] @ zero_extendqisi2
+ beq .L2481
+ ldrb r1, [r3, #1] @ zero_extendqisi2
cmp r1, #10
- beq .L2440
- add r3, r3, #1
- add r2, r2, #4
- uxtb r3, r3
- cmp r3, #8
- bne .L2441
- b .L2442
-.L2440:
- cmp r3, #6
- bls .L2443
-.L2442:
- ldr r0, .L2498+16
+ beq .L2481
+ add r2, r2, #1
+ add r3, r3, #4
+ uxtb r2, r2
+ cmp r2, #8
+ bne .L2482
+ b .L2483
+.L2481:
+ cmp r2, #6
+ bls .L2478
+.L2483:
+ ldr r0, .L2541+16
mov r1, #0
bl printk
-.L2444:
- b .L2444
-.L2439:
+.L2484:
+ b .L2484
+.L2480:
cmp r4, #6
- bne .L2443
+ bne .L2478
mov r1, #8
-.L2445:
- ldrb r3, [r2], #1 @ zero_extendqisi2
- cmp r3, #12
- beq .L2443
- ldrb r3, [r2, #7] @ zero_extendqisi2
- cmp r3, #4
- beq .L2443
+.L2485:
+ ldrb r2, [r3], #1 @ zero_extendqisi2
+ cmp r2, #12
+ beq .L2478
+ ldrb r2, [r3, #7] @ zero_extendqisi2
+ cmp r2, #4
+ beq .L2478
sub r1, r1, #1
uxtb r1, r1
cmp r1, #0
- bne .L2445
- b .L2497
-.L2447:
- b .L2447
-.L2443:
- ldr r3, .L2498+12
- mov r2, #0
- ldr ip, [r3, #152]
- str ip, [sp, #40]
-.L2448:
+ bne .L2485
+ b .L2540
+.L2487:
+ b .L2487
+.L2478:
+ ldr r2, .L2541+12
+ ldr r3, [r2, #160]
+ str r3, [sp, #40]
+ mov r3, #0
+.L2488:
+ ldr ip, [sp, #40]
ldr r1, [r8, #0]
- ldr lr, [sp, #40]
+ strb r1, [ip, r3]
+ add r3, r3, #1
ldr ip, [sp, #52]
- strb r1, [lr, r2]
- add r2, r2, #1
- cmp r2, ip
- blt .L2448
- ldr r2, [sp, #24]
- ldr r1, [r3, #152]
- mov r3, #8
- mov ip, r2, asl #2
- mov lr, r2, asl #3
- add r1, r1, ip
- str ip, [sp, #32]
-.L2450:
- mov r2, #0
- mov r0, r2
-.L2449:
- ldr ip, [r1, r2]
+ cmp r3, ip
+ blt .L2488
+ ldr r0, [sp, #24]
+ ldr ip, [r2, #160]
+ mov r2, #8
+ ldr lr, [sp, #24]
+ mov r0, r0, asl #1
+ str r0, [sp, #44]
+ add r1, ip, r0
+ mov lr, lr, asl #2
+ str lr, [sp, #12]
+.L2490:
+ mov r3, #0
+ mov r0, r3
+.L2489:
+ ldrh lr, [r1, r3]
add r0, r0, #1
- mvn ip, ip
- str ip, [r1, r2]
- ldr ip, [sp, #24]
- add r2, r2, #4
- cmp r0, ip
- blt .L2449
- subs r3, r3, #1
- add r1, r1, lr
- bne .L2450
- str r3, [sp, #16]
- str sl, [sp, #60]
- b .L2451
-.L2455:
- mov lr, #1
- mov r0, #0
- mov ip, lr, asl r2
- mov lr, r0
- mov sl, #16
+ mvn lr, lr
+ strh lr, [r1, r3] @ movhi
+ ldr lr, [sp, #24]
+ add r3, r3, #2
+ cmp r0, lr
+ blt .L2489
+ ldr r0, [sp, #12]
+ subs r2, r2, #1
+ add r1, r1, r0
+ bne .L2490
+ str ip, [sp, #28]
+ str r2, [sp, #16]
+ b .L2491
+.L2495:
+ mov r1, #1
+ mov ip, #16
+ mov r0, r1, asl r3
+ mov r1, #0
+ str ip, [sp, #12]
+ mov ip, r1
str r3, [sp, #4]
- str sl, [sp, #20]
-.L2453:
- ldr r3, [sp, #56]
- ldr r3, [r3, r0]
- and sl, ip, r3
- ldr r3, [sp, #20]
- cmp sl, ip
- ldr sl, [sp, #32]
- addeq lr, lr, #1
+.L2493:
+ ldr r3, [sp, #28]
+ ldrh lr, [r3, r1]
+ ldr r3, [sp, #12]
+ and lr, lr, r0
+ cmp lr, r0
+ ldr lr, [sp, #44]
+ addeq ip, ip, #1
subs r3, r3, #1
- add r0, r0, sl
- str r3, [sp, #20]
- bne .L2453
- cmp lr, #8
- add r2, r2, #1
- orrhi r1, r1, ip
- cmp r2, #32
+ add r1, r1, lr
+ str r3, [sp, #12]
+ bne .L2493
+ cmp ip, #8
ldr r3, [sp, #4]
- bne .L2455
- ldr ip, [sp, #16]
+ orrhi r2, r2, r0
+ add r3, r3, #1
+ uxthhi r2, r2
+ cmp r3, #16
+ bne .L2495
+ ldr ip, [sp, #28]
+ ldr lr, [sp, #16]
+ strh r2, [ip], #2 @ movhi
+ add lr, lr, #1
ldr r2, [sp, #24]
- add ip, ip, #1
- ldr sl, [sp, #44]
- cmp ip, r2
- str ip, [sp, #16]
- str r1, [sl, r3]
- add r3, r3, #4
- bge .L2456
-.L2451:
- ldr sl, .L2498+12
- mov r1, #0
- mov r2, r1
- ldr sl, [sl, #152]
- add ip, sl, r3
- str ip, [sp, #56]
- str sl, [sp, #44]
- b .L2455
-.L2456:
- ldr r3, .L2498+12
- ldr sl, [sp, #60]
- ldr r1, [r3, #152]
+ str ip, [sp, #28]
+ cmp lr, r2
+ str lr, [sp, #16]
+ bge .L2496
+.L2491:
+ mov r2, #0
+ mov r3, r2
+ b .L2495
+.L2496:
+ ldr r3, .L2541+12
+ ldr r1, [r3, #160]
mov r3, #0
mov r2, r3
-.L2458:
+.L2498:
ldr r0, [r1, r3]
add r3, r3, #4
cmp r0, #0
addeq r2, r2, #1
cmp r3, #32
- bne .L2458
+ bne .L2498
cmp r2, #7
- ble .L2459
- ldr r0, .L2498+20
+ ble .L2499
+ ldr r0, .L2541+20
mov r2, #1
mov r3, #1024
bl rknand_print_hex
- ldr r0, .L2498+16
+ ldr r0, .L2541+16
mov r1, #0
bl printk
-.L2460:
- b .L2460
-.L2459:
+.L2500:
+ b .L2500
+.L2499:
cmp r4, #6
- moveq r0, #4
- streq r0, [sp, #16]
- beq .L2461
+ moveq ip, #4
+ beq .L2501
cmp r4, #7
- moveq lr, #10
- movne lr, #8
- str lr, [sp, #16]
-.L2461:
- cmp r5, #0
+ moveq ip, #10
+ beq .L2501
+ ldr r3, [sp, #20]
+ cmp r3, #0
+ movne ip, #5
+ moveq ip, #8
+.L2501:
+ cmp r6, #0
ldr r0, [sp, #40]
- subne r3, r5, #1
+ subne r3, r6, #1
+ ldr r1, [sp, #32]
+ moveq lr, #1
mov r2, #0
- moveq r1, #1
- streq r1, [sp, #20]
uxtbne r3, r3
- ldr r1, [sp, #28]
+ streq lr, [sp, #16]
addne r3, r3, #1
- strne r3, [sp, #20]
- b .L2464
-.L2465:
- ldrb lr, [ip], #1 @ zero_extendqisi2
+ strne r3, [sp, #16]
+ b .L2504
+.L2505:
+ ldr r2, [sp, #12]
+ ldrb lr, [r2], #1 @ zero_extendqisi2
strb lr, [r1, r3]
add r3, r3, #1
+ str r2, [sp, #12]
uxtb lr, r3
- cmp lr, r5
- bcc .L2465
- ldr r3, [sp, #20]
- add r2, r2, #1
- ldr ip, [sp, #16]
+ cmp lr, r6
+ bcc .L2505
+ ldr r3, [sp, #16]
+ add r1, r1, ip
+ ldr r2, [sp, #28]
add r0, r0, r3
ldr r3, [sp, #48]
- add r1, r1, ip
+ add r2, r2, #1
cmp r2, r3
- bge .L2466
-.L2464:
- mov ip, r0
+ bge .L2506
+.L2504:
+ str r0, [sp, #12]
mov r3, #0
- b .L2465
-.L2466:
+ str r2, [sp, #28]
+ b .L2505
+.L2506:
mov r3, #255
- mov r0, r6
+ mov r0, r7
str r3, [r8, #8]
bl NandcWaitFlashReady
ldr ip, [sp, #36]
- cmp ip, #1
- movhi r3, #56
- strhi r3, [r8, #8]
- bhi .L2468
+ cmp ip, #0
+ beq .L2507
mov r3, #54
str r3, [r8, #8]
- ldr r3, .L2498
+ ldr r3, .L2541
mov r0, sl
mvn r1, #0
ldrb r3, [r3, #4] @ zero_extendqisi2
str r3, [r8, #4]
mov r3, #22
- str r7, [r9, fp, asl #8]
+ str r5, [r9, fp, asl #8]
str r3, [r8, #8]
bl FlashReadCmd
-.L2468:
- mov r0, r6
+ b .L2508
+.L2507:
+ ldr r1, [sp, #20]
+ cmp r1, #0
+ movne r3, #190
+ moveq r3, #56
+ str r3, [r8, #8]
+.L2508:
+ mov r0, r7
add sl, sl, #1
bl NandcWaitFlashReady
uxtb sl, sl
-.L2428:
- ldr r1, .L2498
+.L2462:
+ ldr r1, .L2541
ldrb r3, [r1, #3762] @ zero_extendqisi2
cmp r3, sl
- bhi .L2469
- ldr r6, [sp, #48]
-.L2427:
- ldr r3, .L2498
- strb r5, [r3, #1]
- strb r6, [r3, #2]
- add sp, sp, #68
+ bhi .L2510
+ ldr r7, [sp, #48]
+.L2461:
+ ldr r3, .L2541
+ strb r6, [r3, #1]
+ strb r7, [r3, #2]
+ add sp, sp, #60
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L2497:
- ldr r0, .L2498+16
+.L2540:
+ ldr r0, .L2541+16
bl printk
- b .L2447
-.L2499:
+ b .L2487
+.L2542:
.align 2
-.L2498:
+.L2541:
.word .LANCHOR0
.word .LANCHOR1
- .word .LANCHOR1+3104
+ .word .LANCHOR1+3232
.word .LANCHOR2
- .word .LC162
.word .LC163
+ .word .LC164
.fnend
.size HynixGetReadRetryDefault, .-HynixGetReadRetryDefault
.align 2
@@ -22139,16 +22503,16 @@ FlashGetReadRetryDefault:
subs r3, r0, #0
ldmeqfd sp!, {r3, pc}
sub r2, r3, #1
- cmp r2, #6
- bhi .L2502
+ cmp r2, #7
+ bhi .L2545
ldmfd sp!, {r3, lr}
b HynixGetReadRetryDefault
-.L2502:
+.L2545:
cmp r3, #49
- bne .L2503
- ldr r0, .L2504
+ bne .L2546
+ ldr r0, .L2547
mov r2, #64
- ldr r1, .L2504+4
+ ldr r1, .L2547+4
strb r3, [r0, #0]
mov r3, #4
strb r3, [r0, #1]
@@ -22157,14 +22521,14 @@ FlashGetReadRetryDefault:
add r0, r0, #4
bl memcpy
ldmfd sp!, {r3, pc}
-.L2503:
+.L2546:
ldmfd sp!, {r3, lr}
- b FlashGetReadRetryDefault.part.26
-.L2505:
+ b FlashGetReadRetryDefault.part.28
+.L2548:
.align 2
-.L2504:
+.L2547:
.word .LANCHOR0
- .word .LANCHOR1+3020
+ .word .LANCHOR1+3148
.fnend
.size FlashGetReadRetryDefault, .-FlashGetReadRetryDefault
.align 2
@@ -22178,193 +22542,210 @@ FlashInit:
.save {r4, r5, r6, r7, r8, lr}
mov r7, r0
mov r0, #32768
- ldr r5, .L2557
+ ldr r5, .L2603
bl ftl_malloc
- ldr r6, .L2557+4
+ ldr r6, .L2603+4
mov r4, #0
- str r0, [r5, #152]
+ str r0, [r5, #160]
mov r0, #32768
bl ftl_malloc
- str r0, [r5, #140]
+ str r0, [r5, #148]
mov r0, #4096
bl ftl_malloc
- str r0, [r5, #232]
+ str r0, [r5, #240]
mov r0, #32768
bl ftl_malloc
- str r0, [r5, #224]
+ str r0, [r5, #232]
mov r0, #4096
bl ftl_malloc
mov r3, #50
- str r4, [r5, #160]
- strb r3, [r5, #168]
+ str r4, [r5, #168]
+ strb r3, [r5, #176]
strb r3, [r6, #853]
mov r3, #128
- str r4, [r5, #172]
+ str r4, [r5, #180]
str r3, [r6, #856]
mov r3, #60
strb r4, [r6, #3780]
- strb r3, [r5, #156]
+ strb r3, [r5, #164]
strb r4, [r6, #852]
- str r0, [r5, #228]
+ str r0, [r5, #236]
mov r0, r7
bl NandcInit
- ldr r5, .L2557+8
+ add r5, r6, #2976
mov r7, #44
-.L2510:
+.L2553:
uxtb r0, r4
mov r1, r5
bl FlashReadIDRaw
cmp r4, #0
- bne .L2507
- ldrb r3, [r6, #2980] @ zero_extendqisi2
+ bne .L2550
+ ldrb r3, [r6, #2976] @ zero_extendqisi2
sub r3, r3, #1
uxtb r3, r3
cmp r3, #253
- bhi .L2548
- ldrb r3, [r6, #2981] @ zero_extendqisi2
+ bhi .L2593
+ ldrb r3, [r6, #2977] @ zero_extendqisi2
cmp r3, #255
- beq .L2549
-.L2507:
+ beq .L2594
+.L2550:
ldrb r3, [r5, #0] @ zero_extendqisi2
add r4, r4, #1
cmp r3, #181
streqb r7, [r5, #0]
cmp r4, #4
add r5, r5, #8
- bne .L2510
- ldr r4, .L2557+4
- ldrb r3, [r4, #2980] @ zero_extendqisi2
+ bne .L2553
+ ldr r4, .L2603+4
+ ldrb r3, [r4, #2976] @ zero_extendqisi2
cmp r3, #173
- beq .L2511
+ beq .L2554
ldr r0, [r4, #3784]
bl NandcSetDdrMode
-.L2511:
- ldr r5, .L2557+4
+.L2554:
+ ldr r5, .L2603+4
mov r1, #0
mov r2, #852
mov r0, r5
bl ftl_memset
- ldr r3, .L2557+12
+ ldr r3, .L2603+8
+ ldr r1, [r4, #3792]
+ ldr r2, .L2603+4
str r3, [r4, #3624]
mov r3, #0
strb r3, [r4, #860]
- ldrb r3, [r4, #2981] @ zero_extendqisi2
+ ldr r3, .L2603+12
+ cmp r1, r3
+ moveq r3, #1
+ streq r3, [r5, #3776]
+ ldrb r3, [r2, #2977] @ zero_extendqisi2
cmp r3, #161
cmpne r3, #241
- beq .L2512
+ beq .L2556
cmp r3, #218
- beq .L2512
+ beq .L2556
cmp r3, #209
- beq .L2512
+ beq .L2556
+ cmp r3, #211
+ beq .L2556
cmp r3, #220
- bne .L2513
- ldrb r2, [r5, #2983] @ zero_extendqisi2
- cmp r2, #149
- bne .L2513
-.L2512:
- ldr r2, .L2557+4
- mov r1, #1
- mov r0, #16
- ldr ip, .L2557+16
- strb r1, [r2, #852]
- ldr r1, .L2557
- strb r0, [r2, #853]
- strb r3, [ip, #3134]
- strb r0, [r1, #156]
- ldrb r0, [r2, #2980] @ zero_extendqisi2
- cmp r0, #152
- strb r0, [ip, #3133]
- bne .L2514
- ldrb r0, [r2, #2984] @ zero_extendqisi2
- sxtb r0, r0
- cmp r0, #0
- movge r0, #24
- strgeb r0, [r1, #156]
-.L2514:
- ldr r2, [r2, #3776]
+ bne .L2557
+ ldrb r0, [r2, #2979] @ zero_extendqisi2
+ cmp r0, #149
+ bne .L2557
+.L2556:
+ mov r0, #1
+ strb r0, [r2, #852]
+ ldr r0, .L2603
+ mov ip, #16
+ strb ip, [r2, #853]
+ ldrb r2, [r2, #2976] @ zero_extendqisi2
+ strb ip, [r0, #164]
+ ldr ip, .L2603+16
+ cmp r2, #152
+ strb r2, [ip, #3261]
+ strb r3, [ip, #3262]
+ bne .L2558
+ ldr r2, .L2603+4
+ ldrb r2, [r2, #2980] @ zero_extendqisi2
+ sxtb r2, r2
+ cmp r2, #0
+ movge r2, #24
+ strgeb r2, [r0, #164]
+.L2558:
+ ldr r2, .L2603+12
movw r0, #2049
- ldr r1, .L2557+20
- cmp r2, r1
- cmpne r2, r0
- ldreq r2, .L2557
+ cmp r1, r2
+ cmpne r1, r0
+ ldreq r2, .L2603
moveq r1, #16
- streqb r1, [r2, #156]
+ streqb r1, [r2, #164]
cmp r3, #218
- bne .L2516
- ldr r3, .L2557+16
- movw r2, #3146
+ bne .L2560
+ ldr r3, .L2603+16
+ movw r2, #3274
mov r1, #2048
strh r1, [r3, r2] @ movhi
mvn r2, #37
- b .L2554
-.L2516:
+ b .L2600
+.L2560:
cmp r3, #220
- bne .L2517
- ldr r3, .L2557+16
- movw r2, #3146
+ bne .L2562
+ ldr r3, .L2603+16
+ movw r2, #3274
mov r1, #4096
strh r1, [r3, r2] @ movhi
mvn r2, #35
-.L2554:
- strb r2, [r3, #3134]
-.L2517:
- ldr r1, .L2557+24
+.L2600:
+ strb r2, [r3, #3262]
+ b .L2561
+.L2562:
+ cmp r3, #211
+ bne .L2561
+ ldr r3, .L2603+16
+ movw r2, #3274
+ mov r1, #4096
+ strh r1, [r3, r2] @ movhi
+ mov r2, #2
+ strb r2, [r3, #3273]
+.L2561:
+ ldr r1, .L2603+20
mov r2, #32
- ldr r0, .L2557+28
+ ldr r0, .L2603+24
bl memcpy
- ldr r0, .L2557+12
+ ldr r0, .L2603+8
mov r2, #32
add r1, r0, #144
bl memcpy
-.L2513:
- ldr r4, .L2557+4
+.L2557:
+ ldr r4, .L2603+4
ldrb r3, [r4, #852] @ zero_extendqisi2
cmp r3, #0
- bne .L2518
+ bne .L2563
bl FlashLoadPhyInfoInRam
cmp r0, #0
- bne .L2519
+ bne .L2564
ldr r3, [r4, #3624]
ldrh r0, [r3, #16]
ubfx r0, r0, #8, #3
strb r0, [r4, #3772]
tst r0, #1
- bne .L2519
+ bne .L2564
mov r3, #1
strb r3, [r4, #3780]
bl FlashSetInterfaceMode
ldrb r0, [r4, #3772] @ zero_extendqisi2
bl NandcSetMode
-.L2519:
- ldr r4, .L2557+4
+.L2564:
+ ldr r4, .L2603+4
ldr r3, [r4, #3624]
ldrb r3, [r3, #26] @ zero_extendqisi2
- strb r3, [r4, #928]
+ strb r3, [r4, #3072]
bl FlashLoadPhyInfo
cmp r0, #0
- beq .L2518
+ beq .L2563
ldr r3, [r4, #3784]
cmp r3, #0
- beq .L2521
+ beq .L2566
mov r0, #1
bl FlashSetInterfaceMode
mov r0, #1
- b .L2555
-.L2521:
+ b .L2601
+.L2566:
ldrb r0, [r4, #3772] @ zero_extendqisi2
bl FlashSetInterfaceMode
ldrb r0, [r4, #3772] @ zero_extendqisi2
-.L2555:
+.L2601:
bl NandcSetMode
bl FlashLoadPhyInfo
cmp r0, #0
- beq .L2518
- ldr r4, .L2557+4
+ beq .L2563
+ ldr r4, .L2603+4
mov r0, #1
bl FlashSetInterfaceMode
mov r0, #1
bl NandcSetMode
- ldr r0, .L2557+32
+ ldr r0, .L2603+28
ldr r3, [r4, #3624]
ldrh r1, [r3, #14]
bl printk
@@ -22375,55 +22756,55 @@ FlashInit:
ldr r3, [r4, #3624]
ldrb r0, [r3, #19] @ zero_extendqisi2
bl FlashGetReadRetryDefault
- ldr r1, .L2557+36
- ldr r0, .L2557
+ ldr r1, .L2603+32
+ ldr r0, .L2603
ldr r3, [r4, #3624]
ldrh r1, [r0, r1]
ldrb r2, [r3, #9] @ zero_extendqisi2
add r1, r1, #4080
add r1, r1, #15
cmp r2, r1, lsr #12
- blt .L2524
+ blt .L2569
ldrh r1, [r3, #14]
add r1, r1, #255
cmp r2, r1, lsr #8
- bge .L2525
-.L2524:
+ bge .L2570
+.L2569:
ldrh r2, [r3, #14]
bic r2, r2, #255
strh r2, [r3, #14] @ movhi
-.L2525:
- ldr r3, .L2557+4
+.L2570:
+ ldr r3, .L2603+4
ldrb r3, [r3, #3772] @ zero_extendqisi2
tst r3, #6
- beq .L2526
+ beq .L2571
bl FlashSavePhyInfo
- ldr r3, .L2557
+ ldr r3, .L2603
mov r0, #0
- ldr r1, [r3, #164]
+ ldr r1, [r3, #172]
bl FlashDdrParaScan
-.L2526:
+.L2571:
bl FlashSavePhyInfo
-.L2518:
- ldr r4, .L2557+4
- ldr r5, .L2557
+.L2563:
+ ldr r4, .L2603+4
+ ldr r5, .L2603
ldr r3, [r4, #3624]
ldrb r2, [r3, #26] @ zero_extendqisi2
ldrh r0, [r3, #10]
ldrb r6, [r3, #18] @ zero_extendqisi2
- strb r2, [r4, #928]
+ strb r2, [r4, #3072]
ldrh r2, [r3, #16]
ubfx r1, r2, #7, #1
strb r1, [r4, #860]
ubfx r1, r2, #3, #1
- strb r1, [r5, #180]
+ strb r1, [r5, #188]
ubfx r1, r2, #4, #1
ubfx r2, r2, #8, #3
- strb r1, [r4, #3837]
+ strb r1, [r4, #3841]
strb r2, [r4, #3772]
mov r2, #0
ldrb r1, [r3, #12] @ zero_extendqisi2
- str r2, [r5, #176]
+ str r2, [r5, #184]
bl __aeabi_idiv
mov r1, r0
mov r0, r6
@@ -22432,182 +22813,188 @@ FlashInit:
ldr r3, [r4, #3624]
ldrh r2, [r3, #16]
tst r2, #64
- beq .L2527
+ beq .L2572
ldrb r0, [r3, #19] @ zero_extendqisi2
ldrb r3, [r4, #1] @ zero_extendqisi2
strb r0, [r4, #3761]
strb r3, [r4, #3760]
ldrb r3, [r4, #2] @ zero_extendqisi2
- strb r3, [r5, #144]
+ strb r3, [r5, #152]
sub r3, r0, #1
uxtb r3, r3
- cmp r3, #6
- bhi .L2528
- ldr r3, .L2557+40
- str r3, [r5, #176]
+ cmp r3, #7
+ bhi .L2573
+ ldr r3, .L2603+36
+ sub ip, r0, #8
+ rsbs r1, ip, #0
+ adc r1, r1, ip
+ str r3, [r5, #184]
sub r3, r0, #5
uxtb r3, r3
- cmp r3, #1
+ cmp r0, #8
+ cmpne r3, #1
movls r3, #1
- strls r3, [r4, #3828]
- bls .L2530
+ strls r3, [r4, #3832]
cmp r0, #7
- addeq r4, r4, #28
- beq .L2531
-.L2530:
- ldr r4, .L2557+44
-.L2531:
+ ldreq r1, .L2603+40
+ beq .L2576
+ ldr r3, .L2603+44
+ cmp r1, #0
+ add r2, r3, #8
+ moveq r1, r3
+ movne r1, r2
+.L2576:
mov r3, #0
mov r2, r3
-.L2533:
- ldrsb r1, [r4, r2]
+.L2578:
+ ldrsb ip, [r1, r2]
add r2, r2, #1
- cmp r1, #0
+ cmp ip, #0
addeq r3, r3, #1
cmp r2, #32
- bne .L2533
+ bne .L2578
cmp r3, #27
- bls .L2527
+ bls .L2572
bl FlashGetReadRetryDefault
bl FlashSavePhyInfo
- b .L2527
-.L2528:
+ b .L2572
+.L2573:
sub r3, r0, #17
uxtb r3, r3
cmp r3, #2
- bhi .L2534
- ldr r3, .L2557+48
+ bhi .L2579
+ ldr r3, .L2603+48
cmp r0, #19
- str r3, [r5, #176]
+ str r3, [r5, #184]
mov r3, #7
- strb r3, [r5, #144]
+ strb r3, [r5, #152]
moveq r3, #15
- streqb r3, [r5, #144]
- b .L2527
-.L2534:
+ streqb r3, [r5, #152]
+ b .L2572
+.L2579:
cmp r0, #33
cmpne r0, #65
- beq .L2535
+ beq .L2580
cmp r0, #66
- bne .L2536
-.L2535:
- ldr r3, .L2557
+ bne .L2581
+.L2580:
+ ldr r3, .L2603
mov r1, #4
- ldr r2, .L2557+52
- str r2, [r3, #176]
- ldr r2, .L2557+4
+ ldr r2, .L2603+52
+ str r2, [r3, #184]
+ ldr r2, .L2603+4
strb r1, [r2, #3760]
mov r2, #7
- strb r2, [r3, #144]
- b .L2527
-.L2536:
+ strb r2, [r3, #152]
+ b .L2572
+.L2581:
cmp r0, #67
cmpne r0, #34
- beq .L2537
+ beq .L2582
cmp r0, #35
- beq .L2537
+ beq .L2582
cmp r0, #68
- bne .L2538
-.L2537:
- ldr r3, .L2557
+ bne .L2583
+.L2582:
+ ldr r3, .L2603
cmp r0, #35
cmpne r0, #68
- ldr r2, .L2557+52
+ ldr r2, .L2603+52
sub r0, r0, #67
uxtb r0, r0
- str r2, [r3, #176]
+ str r2, [r3, #184]
mov r2, #7
- strb r2, [r3, #144]
+ strb r2, [r3, #152]
moveq r2, #17
- streqb r2, [r3, #144]
+ streqb r2, [r3, #152]
cmp r0, #1
- ldr r3, .L2557+4
+ ldr r3, .L2603+4
movls r2, #4
movhi r2, #5
strb r2, [r3, #3760]
- b .L2527
-.L2538:
+ b .L2572
+.L2583:
cmp r0, #49
- ldreq r3, .L2557+56
- streq r3, [r5, #176]
-.L2527:
- ldr r2, .L2557+4
- ldr r3, .L2557+20
- ldr r1, [r2, #3776]
- cmp r1, r3
- bne .L2541
- ldrb r3, [r2, #928] @ zero_extendqisi2
+ ldreq r3, .L2603+56
+ streq r3, [r5, #184]
+.L2572:
+ ldr r4, .L2603+4
+ ldr r3, .L2603+12
+ ldr r2, [r4, #3792]
+ cmp r2, r3
+ bne .L2586
+ ldrb r3, [r4, #3072] @ zero_extendqisi2
cmp r3, #0
- ldrne r3, [r2, #3624]
- movne r1, #0
- strneb r1, [r3, #18]
-.L2541:
- ldrb r2, [r2, #2980] @ zero_extendqisi2
- ldr r3, .L2557+4
+ ldrne r3, [r4, #3624]
+ movne r2, #0
+ strneb r2, [r3, #18]
+.L2586:
+ ldrb r2, [r4, #2976] @ zero_extendqisi2
+ ldr r3, .L2603+4
cmp r2, #44
- bne .L2542
+ bne .L2587
ldrb r2, [r3, #3780] @ zero_extendqisi2
cmp r2, #0
- beq .L2542
- ldr r1, [r3, #3776]
- ldr r2, .L2557+20
+ beq .L2587
+ ldr r1, [r3, #3792]
+ ldr r2, .L2603+12
cmp r1, r2
- bne .L2543
- ldrb r3, [r3, #928] @ zero_extendqisi2
+ bne .L2588
+ ldrb r3, [r3, #3072] @ zero_extendqisi2
cmp r3, #0
- bne .L2542
-.L2543:
- ldr r3, .L2557+4
+ bne .L2587
+.L2588:
+ ldr r3, .L2603+4
mov r2, #0
mov r0, #1
strb r2, [r3, #3780]
bl FlashSetInterfaceMode
mov r0, #1
bl NandcSetMode
-.L2542:
- mov r0, #0
- bl flash_enter_slc_mode
- ldr r2, .L2557+4
- ldrb r3, [r2, #3772] @ zero_extendqisi2
+.L2587:
+ ldrb r3, [r4, #3772] @ zero_extendqisi2
tst r3, #6
- beq .L2544
+ beq .L2589
+ ldr r2, .L2603+4
ldrb r2, [r2, #3780] @ zero_extendqisi2
cmp r2, #0
- bne .L2545
+ bne .L2590
tst r3, #1
- bne .L2544
-.L2545:
- ldr r3, .L2557
+ bne .L2589
+.L2590:
mov r0, #0
- ldr r1, [r3, #164]
+ bl flash_enter_slc_mode
+ ldr r3, .L2603
+ mov r0, #0
+ ldr r1, [r3, #172]
bl FlashDdrParaScan
-.L2544:
- ldr r4, .L2557+4
mov r0, #0
bl flash_exit_slc_mode
+.L2589:
+ ldr r4, .L2603+4
mov r8, #16
- movw r6, #3062
+ movw r6, #3058
ldr r3, [r4, #3624]
ldrb r0, [r3, #20] @ zero_extendqisi2
bl FlashBchSel
- add r0, r4, #932
+ add r0, r4, #928
bl FlashReadIdbDataRaw
- ldr r0, .L2557+60
+ ldr r0, .L2603+60
strb r8, [r4, #853]
bl FlashTimingCfg
ldr r5, [r4, #3624]
- mov r3, #3056
+ movw r3, #3052
ldrb r2, [r5, #12] @ zero_extendqisi2
ldrh r7, [r5, #14]
strh r2, [r4, r3] @ movhi
ldrb r3, [r5, #7] @ zero_extendqisi2
ldrb r2, [r4, #3762] @ zero_extendqisi2
- str r3, [r4, #3052]
- ldr r3, [r4, #2980]
str r3, [r4, #3048]
- movw r3, #3058
+ ldr r3, [r4, #2976]
+ str r3, [r4, #3044]
+ movw r3, #3054
strh r2, [r4, r3] @ movhi
- add r3, r3, #2
+ mov r3, #3056
ldrb r2, [r5, #13] @ zero_extendqisi2
strh r7, [r4, r6] @ movhi
strh r2, [r4, r3] @ movhi
@@ -22617,17 +23004,17 @@ FlashInit:
ldrb r1, [r5, #12] @ zero_extendqisi2
ldrh r0, [r5, #10]
bl __aeabi_idiv
- movw r3, #3066
+ movw r3, #3062
mov lr, #512
- movw r2, #3070
+ movw r2, #3066
strh r0, [r4, r3] @ movhi
- movw r0, #3068
+ movw r0, #3064
ldrb ip, [r5, #9] @ zero_extendqisi2
strh ip, [r4, r0] @ movhi
ldrb r3, [r5, #9] @ zero_extendqisi2
ldrh r1, [r5, #10]
mul r1, r1, r3
- mov r3, #3072
+ movw r3, #3068
strh lr, [r4, r3] @ movhi
add r3, r3, #2
ldrb lr, [r4, #853] @ zero_extendqisi2
@@ -22636,7 +23023,7 @@ FlashInit:
ldrb lr, [r4, #852] @ zero_extendqisi2
strh r1, [r4, r2] @ movhi
cmp lr, #1
- bne .L2547
+ bne .L2592
mov r7, r7, lsr #1
mov ip, ip, asl #1
mov r1, r1, asl #1
@@ -22646,32 +23033,32 @@ FlashInit:
strh r7, [r4, r6] @ movhi
strh ip, [r4, r0] @ movhi
strh r2, [r4, r3] @ movhi
-.L2547:
+.L2592:
ldrb r0, [r5, #20] @ zero_extendqisi2
bl FlashBchSel
bl ftl_flash_suspend
mov r0, #0
ldmfd sp!, {r4, r5, r6, r7, r8, pc}
-.L2548:
+.L2593:
mvn r0, #1
ldmfd sp!, {r4, r5, r6, r7, r8, pc}
-.L2549:
+.L2594:
mvn r0, #1
ldmfd sp!, {r4, r5, r6, r7, r8, pc}
-.L2558:
+.L2604:
.align 2
-.L2557:
+.L2603:
.word .LANCHOR2
.word .LANCHOR0
- .word .LANCHOR0+2980
- .word .LANCHOR1+2988
- .word .LANCHOR1
+ .word .LANCHOR1+3116
.word 1446522928
- .word .LANCHOR1+2892
+ .word .LANCHOR1
+ .word .LANCHOR1+3020
.word .LANCHOR0+896
- .word .LC164
- .word -890
+ .word .LC165
+ .word -882
.word HynixReadRetrial
+ .word .LANCHOR0+28
.word .LANCHOR0+20
.word MicronReadRetrial
.word ToshibaReadRetrial
@@ -22690,44 +23077,44 @@ rk_ftl_init:
.save {r4, r5, r6, lr}
mov r0, #2048
bl ftl_malloc
- ldr r4, .L2563
- ldr r6, .L2563+4
+ ldr r4, .L2609
+ ldr r6, .L2609+4
mov r5, #0
mov r1, r6
- str r5, [r1, #476]!
- str r0, [r6, #472]
+ str r5, [r1, #484]!
+ str r0, [r6, #480]
mov r0, r4
- str r5, [r0, #136]!
+ str r5, [r0, #144]!
bl rknand_get_reg_addr
- ldr r3, [r4, #136]
+ ldr r3, [r4, #144]
cmp r3, r5
mvneq r4, #0
- beq .L2560
+ beq .L2606
bl rk_nandc_irq_init
mov r1, r5
mov r2, r5
mov r3, #2048
- ldr r0, [r6, #472]
+ ldr r0, [r6, #480]
bl FlashSramLoadStore
bl rknand_flash_cs_init
- ldr r0, [r4, #136]
+ ldr r0, [r4, #144]
bl FlashInit
subs r4, r0, #0
- bne .L2561
+ bne .L2607
bl FtlInit
-.L2561:
- ldr r0, .L2563+8
+.L2607:
+ ldr r0, .L2609+8
mov r1, r4
bl printk
-.L2560:
+.L2606:
mov r0, r4
ldmfd sp!, {r4, r5, r6, pc}
-.L2564:
+.L2610:
.align 2
-.L2563:
+.L2609:
.word .LANCHOR2
.word .LANCHOR4
- .word .LC165
+ .word .LC166
.fnend
.size rk_ftl_init, .-rk_ftl_init
.align 2
@@ -22737,30 +23124,30 @@ FtlReInitForSDUpdata:
.fnstart
@ args = 0, pretend = 0, frame = 16
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L2590
+ ldr r3, .L2636
stmfd sp!, {r4, r5, lr}
.save {r4, r5, lr}
.pad #20
sub sp, sp, #20
- ldrb r4, [r3, #928] @ zero_extendqisi2
+ ldrb r4, [r3, #3072] @ zero_extendqisi2
cmp r4, #0
movne r0, #0
- bne .L2566
- ldr r5, .L2590+4
- ldr r0, [r5, #136]
+ bne .L2612
+ ldr r5, .L2636+4
+ ldr r0, [r5, #144]
bl FlashInit
cmp r0, #0
movne r0, r4
- bne .L2566
+ bne .L2612
bl FlashLoadFactorBbt
cmp r0, #0
- beq .L2567
+ beq .L2613
bl FlashMakeFactorBbt
-.L2567:
- ldr r0, [r5, #140]
+.L2613:
+ ldr r0, [r5, #148]
bl FlashReadIdbDataRaw
cmp r0, #0
- beq .L2568
+ beq .L2614
mov r1, #0
mov r2, #16
mov r0, sp
@@ -22769,78 +23156,78 @@ FtlReInitForSDUpdata:
mov r3, #0
mov r0, #1
mov r2, r3
-.L2570:
+.L2616:
ands ip, r1, r0, asl r2
add r2, r2, #1
addne r3, r3, #1
cmp r2, #16
- bne .L2570
+ bne .L2616
cmp r3, #6
- ldrls r3, .L2590
- bls .L2586
+ ldrls r3, .L2636
+ bls .L2632
mov r2, #0
mov r0, #1
-.L2571:
+.L2617:
ands ip, r1, r0, asl r2
add r2, r2, #1
addne r3, r3, #1
cmp r2, #24
- bne .L2571
+ bne .L2617
cmp r3, #17
- ldr r3, .L2590
+ ldr r3, .L2636
movhi r2, #36
-.L2586:
+.L2632:
strb r2, [r3, #853]
- movw r2, #3074
- ldr r3, .L2590
+ movw r2, #3070
+ ldr r3, .L2636
ldrb r1, [r3, #853] @ zero_extendqisi2
strh r1, [r3, r2] @ movhi
-.L2568:
- ldr r1, .L2590+8
+.L2614:
+ ldr r1, .L2636+8
mov r4, #1
- ldr r0, .L2590+12
+ ldr r0, .L2636+12
bl printk
- ldr r0, .L2590+16
+ ldr r0, .L2636+16
bl FtlConstantsInit
bl FtlVariablesInit
- ldr r3, .L2590
- ldr r0, [r3, #3852]
+ ldr r3, .L2636
+ ldr r0, [r3, #3856]
uxth r0, r0
bl FtlFreeSysBlkQueueInit
- b .L2575
-.L2577:
+ b .L2621
+.L2623:
add r4, r4, #1
-.L2575:
+.L2621:
bl FtlLoadBbt
cmp r0, #0
- bne .L2588
-.L2576:
+ bne .L2634
+.L2622:
bl FtlSysBlkInit
cmp r0, #0
- beq .L2578
-.L2588:
+ beq .L2624
+.L2634:
bl FtlLowFormat
cmp r4, #3
- bls .L2577
- b .L2589
-.L2578:
- ldr r3, .L2590+20
+ bls .L2623
+ b .L2635
+.L2624:
+ ldr r3, .L2636+20
mov r2, #1
- str r2, [r3, #3092]
- b .L2566
-.L2589:
+ str r2, [r3, #3220]
+ b .L2612
+.L2635:
mvn r0, #0
-.L2566:
+.L2612:
add sp, sp, #20
ldmfd sp!, {r4, r5, pc}
-.L2591:
+.L2637:
.align 2
-.L2590:
+.L2636:
.word .LANCHOR0
.word .LANCHOR2
.word .LC78
.word .LC77
- .word .LANCHOR0+3048
+ .word .LANCHOR0+3044
.word .LANCHOR1
.fnend
.size FtlReInitForSDUpdata, .-FtlReInitForSDUpdata
@@ -22852,15 +23239,15 @@ flash_boot_enter_slc_mode:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L2594
- ldr r2, [r3, #3776]
- ldr r3, .L2594+4
+ ldr r3, .L2640
+ ldr r2, [r3, #3792]
+ ldr r3, .L2640+4
cmp r2, r3
bxne lr
b flash_enter_slc_mode
-.L2595:
+.L2641:
.align 2
-.L2594:
+.L2640:
.word .LANCHOR0
.word 1446522928
.fnend
@@ -22873,15 +23260,15 @@ flash_boot_exit_slc_mode:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
- ldr r3, .L2598
- ldr r2, [r3, #3776]
- ldr r3, .L2598+4
+ ldr r3, .L2644
+ ldr r2, [r3, #3792]
+ ldr r3, .L2644+4
cmp r2, r3
bxne lr
b flash_exit_slc_mode
-.L2599:
+.L2645:
.align 2
-.L2598:
+.L2644:
.word .LANCHOR0
.word 1446522928
.fnend
@@ -22895,18 +23282,18 @@ IdBlockReadData:
stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
.save {r4, r5, r6, r7, r8, r9, sl, fp, lr}
mov r4, r0
- ldr r5, .L2604
+ ldr r5, .L2650
mov fp, r1
.pad #28
sub sp, sp, #28
mov r1, r4
mov sl, r2
- ldr r0, .L2604+4
+ ldr r0, .L2650+4
ldr r3, [r5, #3624]
mov r2, fp
+ ldr r6, [r5, #856]
mov r9, r5
ldrb r7, [r3, #9] @ zero_extendqisi2
- ldrh r6, [r3, #10]
bl printk
mov r0, r4
mul r6, r6, r7
@@ -22919,10 +23306,10 @@ IdBlockReadData:
mul r2, r7, r8
str r1, [sp, #16]
ubfx r2, r2, #2, #2
- b .L2601
-.L2603:
+ b .L2647
+.L2649:
add r1, r6, r8
- ldrb r0, [r5, #928] @ zero_extendqisi2
+ ldrb r0, [r5, #3072] @ zero_extendqisi2
ubfx r1, r1, #2, #16
rsb ip, r2, #4
cmp r0, #0
@@ -22931,21 +23318,21 @@ IdBlockReadData:
add r3, r3, #3072
add r3, r3, #4
ldrh r3, [r3, #0]
- beq .L2602
- ldr r0, [r5, #3776]
- ldr lr, .L2604+8
+ beq .L2648
+ ldr r0, [r5, #3792]
+ ldr lr, .L2650+8
cmp r0, lr
moveq r3, r1
-.L2602:
+.L2648:
ldr r1, [sp, #16]
add r2, r2, r1
mla r2, r7, r3, r2
ldr r3, [r9, #3624]
ldrb r1, [r3, #9] @ zero_extendqisi2
- ldrb r3, [r9, #3836] @ zero_extendqisi2
+ ldrb r3, [r9, #3840] @ zero_extendqisi2
str r3, [sp, #20]
- ldr r3, .L2604+12
- ldrb r0, [r3, #156] @ zero_extendqisi2
+ ldr r3, .L2650+12
+ ldrb r0, [r3, #164] @ zero_extendqisi2
str ip, [sp, #4]
str r1, [sp, #8]
str r2, [sp, #12]
@@ -22970,25 +23357,25 @@ IdBlockReadData:
add r6, ip, r6
add sl, sl, ip, asl #9
uxth r6, r6
-.L2601:
+.L2647:
cmp r6, fp
- bcc .L2603
+ bcc .L2649
mov r1, r4
mov r2, fp
mov r3, #0
- ldr r0, .L2604+16
+ ldr r0, .L2650+16
bl printk
mov r0, #0
add sp, sp, #28
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L2605:
+.L2651:
.align 2
-.L2604:
+.L2650:
.word .LANCHOR0
- .word .LC166
+ .word .LC167
.word 1446522928
.word .LANCHOR2
- .word .LC167
+ .word .LC168
.fnend
.size IdBlockReadData, .-IdBlockReadData
.section .text.unlikely
@@ -22998,20 +23385,20 @@ IDBlockWriteData:
.fnstart
@ args = 0, pretend = 0, frame = 88
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L2614
+ ldr r3, .L2660
stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
.save {r4, r5, r6, r7, r8, r9, sl, fp, lr}
+ mov sl, r2
+ ldr r2, [r3, #3624]
mov r5, r0
- ldr r3, [r3, #3624]
mov fp, r1
.pad #92
sub sp, sp, #92
mov r1, r5
- mov sl, r2
- ldr r0, .L2614+4
- ldrb r6, [r3, #9] @ zero_extendqisi2
+ ldr r0, .L2660+4
+ ldrb r6, [r2, #9] @ zero_extendqisi2
mov r2, fp
- ldrh r7, [r3, #10]
+ ldr r7, [r3, #856]
bl printk
mov r0, #0
bl flash_boot_enter_slc_mode
@@ -23026,14 +23413,14 @@ IDBlockWriteData:
bl FlashEraseBlock
cmp fp, r7
movls r8, #1
- bls .L2607
+ bls .L2653
mov r0, #0
add r1, r7, r5
mov r2, r0
mov r8, #2
bl FlashEraseBlock
-.L2607:
- ldr r4, .L2614
+.L2653:
+ ldr r4, .L2660
mov r0, #0
bl flash_boot_exit_slc_mode
ldr r3, [r4, #3624]
@@ -23053,49 +23440,49 @@ IDBlockWriteData:
rsb r1, r1, r5
mov r7, ip
str r1, [sp, #12]
- b .L2608
-.L2612:
+ b .L2654
+.L2658:
add r3, r8, r7
ubfx r3, r3, #2, #16
cmp r3, #0
- beq .L2609
+ beq .L2655
add r1, r3, #1
- ldrb r0, [r4, #928] @ zero_extendqisi2
+ ldrb r0, [r4, #3072] @ zero_extendqisi2
add r2, r4, r1, asl #1
cmp r0, #0
add r2, r2, #3072
add r2, r2, #4
ldrh r2, [r2, #0]
- beq .L2610
- ldr r0, [r4, #3776]
- ldr ip, .L2614+8
+ beq .L2656
+ ldr r0, [r4, #3792]
+ ldr ip, .L2660+8
cmp r0, ip
moveq r2, r1
-.L2610:
+.L2656:
sub r2, r2, #-1073741823
mov r2, r2, asl #2
str r2, [sp, #24]
-.L2609:
+.L2655:
movw r2, #61424
str r2, [sp, #28]
add r2, r4, r3, asl #1
add r2, r2, #3072
ldrh r5, [r2, #4]
- ldrb r2, [r4, #928] @ zero_extendqisi2
+ ldrb r2, [r4, #3072] @ zero_extendqisi2
cmp r2, #0
- beq .L2611
- ldr r2, [r4, #3776]
- ldr r1, .L2614+8
+ beq .L2657
+ ldr r2, [r4, #3792]
+ ldr r1, .L2660+8
cmp r2, r1
moveq r5, r3
-.L2611:
+.L2657:
ldr ip, [sp, #12]
add r8, r8, #4
- ldr r2, .L2614+12
+ ldr r2, .L2660+12
uxth r8, r8
mla r3, r6, r5, ip
- ldrb ip, [r9, #3836] @ zero_extendqisi2
- ldrb r0, [r2, #156] @ zero_extendqisi2
+ ldrb ip, [r9, #3840] @ zero_extendqisi2
+ ldrb r0, [r2, #164] @ zero_extendqisi2
str ip, [sp, #4]
str r3, [sp, #8]
bl FlashBchSel
@@ -23125,27 +23512,27 @@ IDBlockWriteData:
mov r1, r0
mov r0, #0
bl FlashPageProgMsbFFData
-.L2608:
+.L2654:
ldr ip, [sp, #16]
cmp r8, ip
- bcc .L2612
+ bcc .L2658
ldr r5, [sp, #20]
mov r2, fp
mov r3, #0
- ldr r0, .L2614+16
+ ldr r0, .L2660+16
mov r1, r5
bl printk
mov r0, #0
add sp, sp, #92
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L2615:
+.L2661:
.align 2
-.L2614:
+.L2660:
.word .LANCHOR0
- .word .LC168
+ .word .LC169
.word 1446522928
.word .LANCHOR2
- .word .LC169
+ .word .LC170
.fnend
.size IDBlockWriteData, .-IDBlockWriteData
.text
@@ -23156,34 +23543,34 @@ write_idblock:
.fnstart
@ args = 0, pretend = 0, frame = 24
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L2641
+ ldr r3, .L2687
stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
.save {r4, r5, r6, r7, r8, r9, sl, fp, lr}
- mov r5, r0
- ldr r3, [r3, #3624]
+ mov r7, r2
+ ldr r2, [r3, #3624]
.pad #36
sub sp, sp, #36
+ mov r5, r0
mov r0, #256000
mov r6, r1
- mov r7, r2
- ldrb r4, [r3, #9] @ zero_extendqisi2
- ldrh sl, [r3, #10]
+ ldr sl, [r3, #856]
+ ldrb r4, [r2, #9] @ zero_extendqisi2
bl ftl_malloc
subs r9, r0, #0
- beq .L2635
+ beq .L2681
add r5, r5, #508
add r5, r5, #3
mov r5, r5, lsr #9
cmp r5, #8
movls r5, #8
- bls .L2618
+ bls .L2664
cmp r5, #500
- bhi .L2635
-.L2618:
+ bhi .L2681
+.L2664:
ldr r2, [r6, #0]
- ldr r3, .L2641+4
+ ldr r3, .L2687+4
cmp r2, r3
- bne .L2635
+ bne .L2681
mul sl, sl, r4
uxth sl, sl
sub r0, sl, #1
@@ -23196,10 +23583,10 @@ write_idblock:
str r0, [sp, #20]
add r0, r6, #254976
add r0, r0, #1020
-.L2623:
+.L2669:
ldr r1, [r0], #-4
cmp r1, #0
- bne .L2619
+ bne .L2665
ldr r1, [r6, r3, asl #2]
add r3, r3, #1
cmp r3, ip
@@ -23207,29 +23594,29 @@ write_idblock:
movcs r3, #0
cmp r2, #4096
str r1, [r0, #4]
- bne .L2623
- b .L2622
-.L2619:
- ldr r0, .L2641+8
+ bne .L2669
+ b .L2668
+.L2665:
+ ldr r0, .L2687+8
bl printk
-.L2622:
- ldr r4, .L2641
+.L2668:
+ ldr r4, .L2687
mov r1, r7
mov r3, #5
- ldr r0, .L2641+12
+ ldr r0, .L2687+12
mov r2, #4
mov r8, r5
bl rknand_print_hex
ldrb r2, [r4, #853] @ zero_extendqisi2
ldr r1, [r6, #512]
- ldr r0, .L2641+16
+ ldr r0, .L2687+16
bl printk
- ldr r2, .L2641+20
- movw r3, #3074
+ ldr r2, .L2687+20
+ movw r3, #3070
mov r1, r5
ldrh r3, [r4, r3]
- ldr r2, [r2, #160]
- ldr r0, .L2641+24
+ ldr r2, [r2, #168]
+ ldr r0, .L2687+24
str r2, [sp, #0]
mov r2, r5
bl printk
@@ -23244,16 +23631,16 @@ write_idblock:
strhi r3, [r6, #512]
str r2, [sp, #16]
str r2, [sp, #12]
-.L2631:
- ldr r1, .L2641
+.L2677:
+ ldr r1, .L2687
ldr r3, [r4], #4
ldrb r2, [r1, #853] @ zero_extendqisi2
cmp r3, r2
- bcs .L2625
- ldr r1, .L2641+20
- ldr r2, [r1, #160]
+ bcs .L2671
+ ldr r1, .L2687+20
+ ldr r2, [r1, #168]
cmp r3, r2
- bcc .L2625
+ bcc .L2671
ldr r2, [sp, #20]
ldr r1, [sp, #12]
cmp r2, #1
@@ -23263,12 +23650,12 @@ write_idblock:
ldr r2, [sp, #20]
cmp r1, #0
cmpne r2, #1
- bls .L2626
+ bls .L2672
ldr r2, [r4, #-8]
add r2, r2, #1
cmp r3, r2
- beq .L2625
-.L2626:
+ beq .L2671
+.L2672:
mov r0, r9
mov r1, #512
bl __memzero
@@ -23285,7 +23672,7 @@ write_idblock:
bl IdBlockReadData
mov r2, r9
mov r3, r7
-.L2630:
+.L2676:
mov fp, r2
mov r5, r3
ldr r0, [fp, #0]
@@ -23293,13 +23680,13 @@ write_idblock:
ldr r1, [r5, #0]
add r3, r3, #4
cmp r0, r1
- beq .L2627
+ beq .L2673
mov r0, r9
mov r1, #512
bl __memzero
ldr r3, [fp, #0]
ldr r1, [sp, #12]
- ldr r0, .L2641+28
+ ldr r0, .L2687+28
str r3, [sp, #0]
ldr r3, [r5, #0]
bic r5, r6, #255
@@ -23308,7 +23695,7 @@ write_idblock:
mov r3, r6
ldr r2, [r4, #-4]
bl printk
- ldr r0, .L2641+32
+ ldr r0, .L2687+32
add r1, r7, r5
mov r2, #4
mov r3, #256
@@ -23316,7 +23703,7 @@ write_idblock:
mov r3, #256
add r1, r9, r5
mov r2, #4
- ldr r0, .L2641+36
+ ldr r0, .L2687+36
bl rknand_print_hex
mov r0, #0
bl flash_boot_enter_slc_mode
@@ -23327,64 +23714,64 @@ write_idblock:
bl FlashEraseBlock
ldr r3, [sp, #28]
cmp r3, #0
- beq .L2628
+ beq .L2674
ldr r1, [r4, #-4]
mov r0, #0
mov r2, r0
add r1, r1, #1
mul r1, sl, r1
bl FlashEraseBlock
-.L2628:
+.L2674:
mov r0, #0
bl flash_boot_exit_slc_mode
ldr r1, [r4, #-4]
- ldr r0, .L2641+40
+ ldr r0, .L2687+40
bl printk
ldr r1, [sp, #24]
cmp r6, r1
- bcc .L2625
- b .L2629
-.L2627:
+ bcc .L2671
+ b .L2675
+.L2673:
ldr r1, [sp, #24]
add r6, r6, #1
cmp r6, r1
- bne .L2630
-.L2629:
+ bne .L2676
+.L2675:
ldr r2, [sp, #16]
add r2, r2, #1
str r2, [sp, #16]
-.L2625:
+.L2671:
ldr r3, [sp, #12]
add r3, r3, #1
str r3, [sp, #12]
cmp r3, #5
- bne .L2631
+ bne .L2677
mov r0, r9
bl ftl_free
ldr r1, [sp, #16]
cmp r1, #0
mvneq r0, #0
movne r0, #0
- b .L2617
-.L2635:
+ b .L2663
+.L2681:
mvn r0, #0
-.L2617:
+.L2663:
add sp, sp, #36
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L2642:
+.L2688:
.align 2
-.L2641:
+.L2687:
.word .LANCHOR0
.word -52655045
- .word .LC170
.word .LC171
.word .LC172
- .word .LANCHOR2
.word .LC173
+ .word .LANCHOR2
.word .LC174
.word .LC175
.word .LC176
.word .LC177
+ .word .LC178
.fnend
.size write_idblock, .-write_idblock
.align 2
@@ -23399,22 +23786,22 @@ CRC_32:
stmfd sp!, {r4, lr}
.save {r4, lr}
mov r2, r0
- ldr ip, .L2646
- b .L2644
-.L2645:
+ ldr ip, .L2692
+ b .L2690
+.L2691:
ldrb r4, [r3, r2] @ zero_extendqisi2
add r2, r2, #1
eor r4, r4, r0, lsr #24
add r4, ip, r4, asl #2
- ldr r4, [r4, #3164]
+ ldr r4, [r4, #3292]
eor r0, r4, r0, asl #8
-.L2644:
+.L2690:
cmp r2, r1
- bne .L2645
+ bne .L2691
ldmfd sp!, {r4, pc}
-.L2647:
+.L2693:
.align 2
-.L2646:
+.L2692:
.word .LANCHOR1
.fnend
.size CRC_32, .-CRC_32
@@ -23433,30 +23820,30 @@ write_loader_lba:
sub sp, sp, #32
mov r6, r1
mov r7, r2
- bne .L2649
+ bne .L2695
ldr r2, [r2, #0]
- ldr r3, .L2665
+ ldr r3, .L2711
cmp r2, r3
- bne .L2649
- ldr r5, .L2665+4
+ bne .L2695
+ ldr r5, .L2711+4
mov r3, #1
mov r0, #256000
- strb r3, [r5, #480]
+ strb r3, [r5, #488]
bl ftl_malloc
mov r1, #0
mov r2, #256000
- str r0, [r5, #484]
+ str r0, [r5, #492]
bl ftl_memset
- str r4, [r5, #488]
-.L2649:
- ldr r3, .L2665+4
- ldrb r2, [r3, #480] @ zero_extendqisi2
+ str r4, [r5, #496]
+.L2695:
+ ldr r3, .L2711+4
+ ldrb r2, [r3, #488] @ zero_extendqisi2
cmp r2, #0
- beq .L2648
+ beq .L2694
sub r0, r4, #64
- ldr r5, [r3, #484]
+ ldr r5, [r3, #492]
cmp r0, #500
- bcs .L2651
+ bcs .L2697
rsb r2, r4, #564
add r0, r5, r0, asl #9
cmp r6, r2
@@ -23464,31 +23851,31 @@ write_loader_lba:
mov r1, r7
mov r2, r2, asl #9
bl memcpy
- b .L2652
-.L2651:
+ b .L2698
+.L2697:
cmp r4, #564
- bcc .L2652
- ldr r0, [r3, #488]
- ldr r3, .L2665+8
+ bcc .L2698
+ ldr r0, [r3, #496]
+ ldr r3, .L2711+8
sub r0, r0, #64
cmp r0, #500
movcs r0, #500
ldr r3, [r3, #3624]
ldrb r3, [r3, #9] @ zero_extendqisi2
cmp r3, #4
- beq .L2662
- mov r3, #4
- mov r1, #2
- mov r2, #3
- mov r7, #5
- stmia sp, {r1, r2, r3, r7}
+ beq .L2708
+ mov r3, #3
+ mov r2, #2
+ mov r7, #4
+ mov lr, #5
+ stmia sp, {r2, r3, r7, lr}
mov r3, #6
str r3, [sp, #16]
- b .L2654
-.L2662:
+ b .L2700
+.L2708:
mov r1, #0
mov r2, r1
-.L2653:
+.L2699:
cmp r0, #256
strls r2, [sp, r1]
movhi r3, r2, asl #1
@@ -23496,56 +23883,56 @@ write_loader_lba:
strhi r3, [sp, r1]
cmp r2, #5
add r1, r1, #4
- bne .L2653
-.L2654:
- ldr r3, .L2665+4
- ldr r2, [r3, #492]
+ bne .L2699
+.L2700:
+ ldr r3, .L2711+4
+ ldr r2, [r3, #500]
movw r3, #63999
-.L2659:
+.L2705:
ldrb r1, [r2, r3] @ zero_extendqisi2
cmp r1, #0
addne r3, r3, #1
movne r0, r3, asl #2
- bne .L2658
-.L2657:
+ bne .L2704
+.L2703:
sub r3, r3, #1
cmp r3, #4096
- bne .L2659
+ bne .L2705
mov r0, r0, asl #9
-.L2658:
+.L2704:
mov r1, r5
- ldr r5, .L2665+4
+ ldr r5, .L2711+4
mov r2, sp
mov r7, #0
bl write_idblock
- strb r7, [r5, #480]
- ldr r0, [r5, #484]
+ strb r7, [r5, #488]
+ ldr r0, [r5, #492]
bl ftl_free
- str r7, [r5, #484]
- b .L2660
-.L2652:
- ldr r7, .L2665+4
- ldr r3, [r7, #488]
+ str r7, [r5, #492]
+ b .L2706
+.L2698:
+ ldr r7, .L2711+4
+ ldr r3, [r7, #496]
cmp r3, r4
- beq .L2660
+ beq .L2706
mov r8, #0
cmp r5, r8
- strb r8, [r7, #480]
- beq .L2661
+ strb r8, [r7, #488]
+ beq .L2707
mov r0, r5
bl ftl_free
-.L2661:
- str r8, [r7, #484]
-.L2660:
- ldr r3, .L2665+4
+.L2707:
+ str r8, [r7, #492]
+.L2706:
+ ldr r3, .L2711+4
add r4, r6, r4
- str r4, [r3, #488]
-.L2648:
+ str r4, [r3, #496]
+.L2694:
add sp, sp, #32
ldmfd sp!, {r4, r5, r6, r7, r8, pc}
-.L2666:
+.L2712:
.align 2
-.L2665:
+.L2711:
.word -52655045
.word .LANCHOR4
.word .LANCHOR0
@@ -23571,12 +23958,12 @@ FtlWrite:
cmp r0, #0
movne r3, #0
cmp r3, #0
- beq .L2668
+ beq .L2714
mov r0, r1
mov r1, r2
mov r2, r6
bl write_loader_lba
-.L2668:
+.L2714:
mov r0, r7
mov r1, r4
mov r2, r5
@@ -23592,7 +23979,7 @@ rknand_sys_storage_ioctl:
.fnstart
@ args = 0, pretend = 0, frame = 528
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L2785
+ ldr r3, .L2831
stmfd sp!, {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
cmp r1, r3
@@ -23600,102 +23987,102 @@ rknand_sys_storage_ioctl:
sub sp, sp, #528
mov r5, r1
mov r4, r2
- beq .L2678
- bhi .L2687
- ldr r3, .L2785+4
+ beq .L2724
+ bhi .L2733
+ ldr r3, .L2831+4
cmp r1, r3
- beq .L2675
- bhi .L2688
+ beq .L2721
+ bhi .L2734
sub r3, r3, #125
cmp r1, r3
- beq .L2672
- bhi .L2689
+ beq .L2718
+ bhi .L2735
sub r3, r3, #237
cmp r1, r3
- bne .L2731
- b .L2781
-.L2689:
- ldr r3, .L2785+8
+ bne .L2777
+ b .L2827
+.L2735:
+ ldr r3, .L2831+8
cmp r1, r3
- beq .L2673
+ beq .L2719
add r3, r3, #1
cmp r1, r3
- bne .L2731
- b .L2782
-.L2688:
- ldr r3, .L2785+12
+ bne .L2777
+ b .L2828
+.L2734:
+ ldr r3, .L2831+12
cmp r1, r3
- beq .L2677
- bhi .L2690
- ldr r3, .L2785+16
+ beq .L2723
+ bhi .L2736
+ ldr r3, .L2831+16
cmp r1, r3
- bne .L2731
- b .L2783
-.L2690:
- ldr r3, .L2785+20
+ bne .L2777
+ b .L2829
+.L2736:
+ ldr r3, .L2831+20
cmp r1, r3
- beq .L2677
+ beq .L2723
add r3, r3, #10
cmp r1, r3
- bne .L2731
- b .L2677
-.L2687:
- ldr r3, .L2785+24
+ bne .L2777
+ b .L2723
+.L2733:
+ ldr r3, .L2831+24
cmp r1, r3
- beq .L2683
- bhi .L2691
+ beq .L2729
+ bhi .L2737
sub r3, r3, #78
cmp r1, r3
- beq .L2680
- bcc .L2679
+ beq .L2726
+ bcc .L2725
add r3, r3, #21
cmp r1, r3
- beq .L2681
+ beq .L2727
add r3, r3, #56
cmp r1, r3
- bne .L2731
- b .L2784
-.L2691:
- ldr r3, .L2785+28
+ bne .L2777
+ b .L2830
+.L2737:
+ ldr r3, .L2831+28
cmp r1, r3
- beq .L2686
- bhi .L2692
+ beq .L2732
+ bhi .L2738
sub r3, r3, #956
sub r3, r3, #1
cmp r1, r3
- beq .L2684
+ beq .L2730
add r3, r3, #956
cmp r1, r3
- bne .L2731
- b .L2685
-.L2692:
- ldr r3, .L2785+32
+ bne .L2777
+ b .L2731
+.L2738:
+ ldr r3, .L2831+32
cmp r1, r3
- beq .L2685
+ beq .L2731
add r3, r3, #1
cmp r1, r3
- bne .L2731
- b .L2686
-.L2679:
- ldr r0, .L2785+36
+ bne .L2777
+ b .L2732
+.L2725:
+ ldr r0, .L2831+36
bl printk
mov r0, #4096
bl ftl_malloc
subs r5, r0, #0
- beq .L2738
+ beq .L2784
mov r1, r4
mov r2, #512
bl rk_copy_from_user
cmp r0, #0
- bne .L2780
-.L2693:
- ldr r0, .L2785+40
+ bne .L2826
+.L2739:
+ ldr r0, .L2831+40
ldmia r5, {r1, r2}
bl printk
ldr r3, [r5, #4]
cmp r3, #8
str r3, [sp, #4]
- bhi .L2702
+ bhi .L2748
bl rknand_device_lock
ldr r1, [sp, #4]
mov r2, r5
@@ -23708,155 +24095,155 @@ rknand_sys_storage_ioctl:
mov r2, r2, asl #9
bl rk_copy_to_user
cmp r0, #0
- beq .L2766
- ldr r0, .L2785+44
-.L2779:
+ beq .L2812
+ ldr r0, .L2831+44
+.L2825:
bl printk
- b .L2702
-.L2680:
- ldr r0, .L2785+48
+ b .L2748
+.L2726:
+ ldr r0, .L2831+48
bl printk
mov r0, #4096
bl ftl_malloc
subs r5, r0, #0
- beq .L2738
+ beq .L2784
mov r1, r4
mov r2, #4096
bl rk_copy_from_user
cmp r0, #0
- bne .L2780
-.L2697:
- ldr r4, .L2785+52
- ldr r0, .L2785+56
+ bne .L2826
+.L2743:
+ ldr r4, .L2831+52
+ ldr r0, .L2831+56
ldmia r5, {r1, r2}
bl printk
- ldr r3, [r4, #492]
+ ldr r3, [r4, #500]
cmp r3, #0
- bne .L2698
+ bne .L2744
mov r0, #260096
bl ftl_malloc
cmp r0, #0
- str r0, [r4, #492]
- beq .L2702
-.L2699:
+ str r0, [r4, #500]
+ beq .L2748
+.L2745:
mov r1, #260096
bl __memzero
-.L2698:
+.L2744:
ldr r2, [r5, #4]
movw r3, #4088
cmp r2, r3
- bhi .L2702
+ bhi .L2748
ldr r3, [r5, #0]
cmp r3, #251904
- bhi .L2702
- ldr r1, .L2785+52
- ldr r0, [r1, #492]
+ bhi .L2748
+ ldr r1, .L2831+52
+ ldr r0, [r1, #500]
add r1, r5, #8
add r0, r0, r3
bl memcpy
-.L2766:
+.L2812:
mov r0, r5
bl ftl_free
-.L2767:
+.L2813:
mov r4, #0
- b .L2696
-.L2784:
- ldr r0, .L2785+60
+ b .L2742
+.L2830:
+ ldr r0, .L2831+60
bl printk
mov r0, #4096
bl ftl_malloc
subs r5, r0, #0
- beq .L2738
+ beq .L2784
mov r1, r4
mov r2, #28
bl rk_copy_from_user
cmp r0, #0
- beq .L2701
-.L2780:
- ldr r0, .L2785+64
- b .L2779
-.L2701:
+ beq .L2747
+.L2826:
+ ldr r0, .L2831+64
+ b .L2825
+.L2747:
ldmia r5, {r1, r2}
- ldr r0, .L2785+68
+ ldr r0, .L2831+68
bl printk
ldr r1, [r5, #0]
cmp r1, #256000
- bhi .L2702
- ldr r4, .L2785+52
- ldr r0, [r4, #492]
+ bhi .L2748
+ ldr r4, .L2831+52
+ ldr r0, [r4, #500]
cmp r0, #0
- beq .L2702
-.L2703:
+ beq .L2748
+.L2749:
bl CRC_32
ldr r3, [r5, #4]
cmp r3, r0
- beq .L2704
+ beq .L2750
mov r0, r5
bl ftl_free
- b .L2744
-.L2704:
+ b .L2790
+.L2750:
bl rknand_device_lock
- ldr r1, [r4, #492]
+ ldr r1, [r4, #500]
add r2, r5, #8
ldr r0, [r5, #0]
bl write_idblock
mov r6, #0
bl rknand_device_unlock
- ldr r0, [r4, #492]
+ ldr r0, [r4, #500]
bl ftl_free
- str r6, [r4, #492]
+ str r6, [r4, #500]
mov r0, r5
mov r4, r6
bl ftl_free
- b .L2696
-.L2702:
+ b .L2742
+.L2748:
mov r0, r5
- b .L2770
-.L2681:
- ldr r0, .L2785+72
+ b .L2816
+.L2727:
+ ldr r0, .L2831+72
bl printk
mov r0, #4096
bl ftl_malloc
subs r5, r0, #0
- beq .L2738
+ beq .L2784
bl ftl_read_flash_info
mov r0, r4
mov r1, r5
mov r2, #11
- b .L2775
-.L2678:
- ldr r0, .L2785+76
+ b .L2821
+.L2724:
+ ldr r0, .L2831+76
bl printk
bl nand_blk_add_whole_disk
mov r0, #4096
bl ftl_malloc
subs r5, r0, #0
- beq .L2738
+ beq .L2784
mov r1, #0
mov r2, #64
bl ftl_memset
mov r0, r4
mov r1, r5
mov r2, #64
- b .L2775
-.L2683:
- ldr r0, .L2785+80
+ b .L2821
+.L2729:
+ ldr r0, .L2831+80
bl printk
- ldr r3, .L2785+52
+ ldr r3, .L2831+52
add r1, sp, #528
mov r0, r4
mov r2, #4
- ldr r3, [r3, #496]
+ ldr r3, [r3, #504]
ldr r3, [r3, #20]
str r3, [r1, #-524]!
- b .L2771
-.L2684:
- ldr r0, .L2785+84
+ b .L2817
+.L2730:
+ ldr r0, .L2831+84
bl printk
mov r0, #4096
bl ftl_malloc
subs r5, r0, #0
- beq .L2738
+ beq .L2784
bl rknand_device_lock
mov r1, #264
mov r2, #2
@@ -23867,259 +24254,259 @@ rknand_sys_storage_ioctl:
mov r0, r4
mov r1, r5
mov r2, #1024
-.L2775:
+.L2821:
bl rk_copy_to_user
subs r4, r0, #0
mov r0, r5
- beq .L2707
-.L2770:
+ beq .L2753
+.L2816:
bl ftl_free
- b .L2761
-.L2707:
+ b .L2807
+.L2753:
bl ftl_free
- b .L2696
-.L2672:
- ldr r0, .L2785+88
+ b .L2742
+.L2718:
+ ldr r0, .L2831+88
bl printk
add r0, sp, #8
mov r1, r4
mov r2, #520
bl rk_copy_from_user
subs r5, r0, #0
- bne .L2772
-.L2708:
+ bne .L2818
+.L2754:
ldr r2, [sp, #8]
- ldr r3, .L2785+92
+ ldr r3, .L2831+92
cmp r2, r3
- bne .L2763
+ bne .L2809
ldr r3, [sp, #12]
cmp r3, #512
- bhi .L2763
- ldr r6, .L2785+52
+ bhi .L2809
+ ldr r6, .L2831+52
mov r2, #512
add r0, sp, #8
- ldr r1, [r6, #496]
+ ldr r1, [r6, #504]
bl memcpy
- ldr r2, [r6, #500]
- ldr r3, .L2785+96
+ ldr r2, [r6, #508]
+ ldr r3, .L2831+96
cmp r2, r3
- beq .L2709
+ beq .L2755
add r0, sp, #72
mov r1, #128
str r5, [sp, #16]
str r5, [sp, #20]
bl __memzero
-.L2709:
+.L2755:
add r0, sp, #264
mov r1, #256
mov r3, #0
str r3, [sp, #24]
bl __memzero
- b .L2778
-.L2673:
- ldr r0, .L2785+100
+ b .L2824
+.L2719:
+ ldr r0, .L2831+100
bl printk
add r0, sp, #8
mov r1, r4
mov r2, #520
bl rk_copy_from_user
cmp r0, #0
- bne .L2772
-.L2710:
+ bne .L2818
+.L2756:
ldr r2, [sp, #8]
- ldr r3, .L2785+92
+ ldr r3, .L2831+92
cmp r2, r3
- bne .L2763
+ bne .L2809
ldr r3, [sp, #12]
cmp r3, #512
- bhi .L2763
- ldr r4, .L2785+52
- ldr r3, .L2785+96
- ldr r2, [r4, #500]
+ bhi .L2809
+ ldr r4, .L2831+52
+ ldr r3, .L2831+96
+ ldr r2, [r4, #508]
cmp r2, r3
- bne .L2744
+ bne .L2790
ldr r3, [sp, #20]
sub r2, r3, #1
cmp r2, #127
mvnhi r4, #2
- bhi .L2670
- ldr r0, [r4, #496]
+ bhi .L2716
+ ldr r0, [r4, #504]
add r1, sp, #72
str r3, [r0, #12]
add r0, r0, #64
ldr r2, [sp, #20]
bl memcpy
mov r0, #1
- ldr r1, [r4, #496]
- b .L2768
-.L2783:
- ldr r0, .L2785+104
+ ldr r1, [r4, #504]
+ b .L2814
+.L2829:
+ ldr r0, .L2831+104
bl printk
add r0, sp, #8
mov r1, r4
mov r2, #520
bl rk_copy_from_user
cmp r0, #0
- bne .L2772
-.L2711:
+ bne .L2818
+.L2757:
ldr r2, [sp, #8]
- ldr r3, .L2785+108
+ ldr r3, .L2831+108
cmp r2, r3
- bne .L2763
+ bne .L2809
ldr r3, [sp, #12]
cmp r3, #512
- bhi .L2763
- ldr r5, .L2785+52
- ldr r4, [r5, #504]
+ bhi .L2809
+ ldr r5, .L2831+52
+ ldr r4, [r5, #512]
cmp r4, #0
- beq .L2670
- ldr r3, [r5, #508]
- ldr r2, .L2785+112
+ beq .L2716
+ ldr r3, [r5, #516]
+ ldr r2, .L2831+112
ldr r1, [r3, #0]
cmp r1, r2
- beq .L2712
+ beq .L2758
str r2, [r3, #0]
mov r2, #504
- ldr r3, [r5, #508]
+ ldr r3, [r5, #516]
str r2, [r3, #4]
mov r2, #0
str r2, [r3, #8]
str r2, [r3, #12]
-.L2712:
- ldr r1, [r5, #508]
+.L2758:
+ ldr r1, [r5, #516]
mov r4, #0
mov r0, r4
str r4, [r1, #16]
bl StorageSysDataStore
- ldr r3, [r5, #496]
- ldr r2, .L2785+92
- ldr r5, .L2785+52
+ ldr r3, [r5, #504]
+ ldr r2, .L2831+92
+ ldr r5, .L2831+52
ldr r1, [r3, #0]
cmp r1, r2
strne r2, [r3, #0]
- ldr r0, [r5, #496]
+ ldr r0, [r5, #504]
mov r1, #128
- ldrne r3, .L2785+52
+ ldrne r3, .L2831+52
movne r2, #504
- ldrne r3, [r3, #496]
+ ldrne r3, [r3, #504]
stmneib r3, {r2, r4}
mov r4, #0
str r4, [r0, #12]
add r0, r0, #64
bl __memzero
mov r0, #1
- ldr r1, [r5, #496]
+ ldr r1, [r5, #504]
bl StorageSysDataStore
- str r4, [r5, #504]
- str r4, [r5, #500]
- b .L2696
-.L2675:
- ldr r0, .L2785+116
+ str r4, [r5, #512]
+ str r4, [r5, #508]
+ b .L2742
+.L2721:
+ ldr r0, .L2831+116
bl printk
mov r1, r4
add r0, sp, #8
mov r2, #520
bl rk_copy_from_user
subs r4, r0, #0
- bne .L2772
-.L2714:
+ bne .L2818
+.L2760:
ldr r2, [sp, #8]
- ldr r3, .L2785+120
+ ldr r3, .L2831+120
cmp r2, r3
- bne .L2763
+ bne .L2809
ldr r3, [sp, #12]
cmp r3, #512
- bhi .L2763
- ldr r5, .L2785+52
- ldr r3, [r5, #504]
+ bhi .L2809
+ ldr r5, .L2831+52
+ ldr r3, [r5, #512]
cmp r3, #1
- beq .L2670
- ldr r3, [r5, #508]
+ beq .L2716
+ ldr r3, [r5, #516]
mov r0, #0
- ldr r2, .L2785+112
+ ldr r2, .L2831+112
ldr r1, [r3, #0]
cmp r1, r2
strne r2, [r3, #0]
- ldr r1, [r5, #508]
- ldrne r3, [r5, #508]
+ ldr r1, [r5, #516]
+ ldrne r3, [r5, #516]
movne r2, #504
strne r4, [r3, #12]
stmneib r3, {r2, r4}
mov r3, #1
str r3, [r1, #16]
bl StorageSysDataStore
- ldr r3, [r5, #496]
- ldr r2, .L2785+92
+ ldr r3, [r5, #504]
+ ldr r2, .L2831+92
ldr r1, [r3, #0]
cmp r1, r2
- beq .L2716
+ beq .L2762
str r2, [r3, #0]
- mov r0, #504
- ldr r3, .L2785+52
+ mov r1, #504
+ ldr r3, .L2831+52
mov r2, #0
- ldr r3, [r3, #496]
- stmib r3, {r0, r2}
-.L2716:
- ldr r5, .L2785+52
+ ldr r3, [r3, #504]
+ stmib r3, {r1, r2}
+.L2762:
+ ldr r5, .L2831+52
mov r1, #128
mov r4, #0
- ldr r0, [r5, #496]
+ ldr r0, [r5, #504]
str r4, [r0, #12]
add r0, r0, #64
bl __memzero
mov r0, #1
- ldr r1, [r5, #496]
+ ldr r1, [r5, #504]
bl StorageSysDataStore
mov r3, #1
- str r3, [r5, #504]
- b .L2696
-.L2782:
- ldr r0, .L2785+124
+ str r3, [r5, #512]
+ b .L2742
+.L2828:
+ ldr r0, .L2831+124
bl printk
add r0, sp, #8
mov r1, r4
mov r2, #520
bl rk_copy_from_user
cmp r0, #0
- bne .L2772
-.L2717:
+ bne .L2818
+.L2763:
ldr r2, [sp, #8]
- ldr r3, .L2785+128
+ ldr r3, .L2831+128
cmp r2, r3
- bne .L2763
+ bne .L2809
ldr r2, [sp, #12]
cmp r2, #512
addls r0, sp, #16
- ldrls r1, .L2785+132
- bls .L2777
- b .L2763
-.L2677:
- ldr r3, .L2785+20
+ ldrls r1, .L2831+132
+ bls .L2823
+ b .L2809
+.L2723:
+ ldr r3, .L2831+20
cmp r5, r3
- ldreq r0, .L2785+136
- beq .L2764
- ldr r3, .L2785+140
+ ldreq r0, .L2831+136
+ beq .L2810
+ ldr r3, .L2831+140
cmp r5, r3
- ldreq r0, .L2785+144
- ldrne r0, .L2785+148
-.L2764:
+ ldreq r0, .L2831+144
+ ldrne r0, .L2831+148
+.L2810:
bl printk
add r0, sp, #8
mov r1, r4
mov r2, #520
bl rk_copy_from_user
cmp r0, #0
- bne .L2772
-.L2721:
+ bne .L2818
+.L2767:
ldr r2, [sp, #8]
- ldr r3, .L2785+152
+ ldr r3, .L2831+152
cmp r2, r3
- bne .L2761
- ldr r3, .L2785+140
- ldr r6, .L2785+52
+ bne .L2807
+ ldr r3, .L2831+140
+ ldr r6, .L2831+52
cmp r5, r3
- bne .L2722
- ldr r3, [r6, #496]
+ bne .L2768
+ ldr r3, [r6, #504]
mov r0, r4
add r1, sp, #8
mov r2, #16
@@ -24130,29 +24517,29 @@ rknand_sys_storage_ioctl:
cmp r0, #0
moveq r4, r0
mvnne r4, #13
- b .L2670
-.L2722:
- ldr r3, [r6, #1024]
+ b .L2716
+.L2768:
+ ldr r3, [r6, #1032]
cmp r3, #10
- bhi .L2761
- ldr r3, [r6, #496]
+ bhi .L2807
+ ldr r3, [r6, #504]
ldr r1, [sp, #12]
ldr r2, [r3, #24]
cmp r2, r1
- beq .L2723
+ beq .L2769
cmp r2, #0
- beq .L2723
- ldr r0, .L2785+156
+ beq .L2769
+ ldr r0, .L2831+156
bl printk
- ldr r3, [r6, #1024]
+ ldr r3, [r6, #1032]
add r3, r3, #1
- str r3, [r6, #1024]
- b .L2761
-.L2723:
- ldr r0, .L2785+52
+ str r3, [r6, #1032]
+ b .L2807
+.L2769:
+ ldr r0, .L2831+52
mov r2, #0
- str r2, [r0, #1024]
- ldr r0, .L2785+20
+ str r2, [r0, #1032]
+ ldr r0, .L2831+20
cmp r5, r0
mov r0, #1
strne r1, [r3, #24]
@@ -24165,112 +24552,112 @@ rknand_sys_storage_ioctl:
cmn r0, #1
mvneq r4, #1
movne r4, #0
- b .L2696
-.L2685:
- ldr r0, .L2785+160
+ b .L2742
+.L2731:
+ ldr r0, .L2831+160
bl printk
add r0, sp, #8
mov r1, r4
mov r2, #520
bl rk_copy_from_user
cmp r0, #0
- bne .L2772
-.L2726:
+ bne .L2818
+.L2772:
ldr r2, [sp, #8]
- ldr r3, .L2785+164
+ ldr r3, .L2831+164
cmp r2, r3
- bne .L2763
+ bne .L2809
ldr r2, [sp, #12]
cmp r2, #504
- bhi .L2763
- ldr r3, .L2785+168
+ bhi .L2809
+ ldr r3, .L2831+168
add r0, sp, #16
cmp r5, r3
- ldr r3, .L2785+52
- ldreq r1, [r3, #1028]
- ldrne r1, [r3, #1032]
+ ldr r3, .L2831+52
+ ldreq r1, [r3, #1036]
+ ldrne r1, [r3, #1040]
add r1, r1, #8
-.L2777:
+.L2823:
bl memcpy
-.L2778:
+.L2824:
add r1, sp, #8
mov r0, r4
mov r2, #520
-.L2771:
+.L2817:
bl rk_copy_to_user
subs r4, r0, #0
- bne .L2761
- b .L2696
-.L2686:
- ldr r0, .L2785+172
+ bne .L2807
+ b .L2742
+.L2732:
+ ldr r0, .L2831+172
bl printk
add r0, sp, #8
mov r1, r4
mov r2, #520
bl rk_copy_from_user
cmp r0, #0
- beq .L2729
-.L2772:
- ldr r0, .L2785+64
+ beq .L2775
+.L2818:
+ ldr r0, .L2831+64
bl printk
- b .L2761
-.L2729:
+ b .L2807
+.L2775:
ldr r2, [sp, #8]
- ldr r3, .L2785+164
+ ldr r3, .L2831+164
cmp r2, r3
- bne .L2763
+ bne .L2809
ldr r2, [sp, #12]
cmp r2, #504
- bhi .L2763
- ldr r3, .L2785+28
+ bhi .L2809
+ ldr r3, .L2831+28
add r2, r2, #8
- ldr r4, .L2785+52
+ ldr r4, .L2831+52
cmp r5, r3
- bne .L2730
+ bne .L2776
add r1, sp, #8
- ldr r0, [r4, #1028]
+ ldr r0, [r4, #1036]
bl memcpy
- ldr r1, [r4, #1028]
+ ldr r1, [r4, #1036]
mov r0, #2
-.L2768:
+.L2814:
bl StorageSysDataStore
mov r4, r0
- b .L2696
-.L2730:
+ b .L2742
+.L2776:
add r1, sp, #8
- ldr r0, [r4, #1032]
+ ldr r0, [r4, #1040]
bl memcpy
mov r0, #3
- ldr r1, [r4, #1032]
- b .L2768
-.L2781:
+ ldr r1, [r4, #1040]
+ b .L2814
+.L2827:
bl rknand_dev_flush
- b .L2767
-.L2763:
+ b .L2813
+.L2809:
mvn r4, #0
-.L2696:
+.L2742:
mov r1, r4
- ldr r0, .L2785+176
+ ldr r0, .L2831+176
bl printk
- b .L2670
-.L2731:
+ b .L2716
+.L2777:
mvn r4, #21
- b .L2670
-.L2738:
+ b .L2716
+.L2784:
mvn r4, #11
- b .L2670
-.L2744:
+ b .L2716
+.L2790:
mvn r4, #1
- b .L2670
-.L2761:
+ b .L2716
+.L2807:
mvn r4, #13
-.L2670:
+.L2716:
mov r0, r4
add sp, sp, #528
ldmfd sp!, {r4, r5, r6, pc}
-.L2786:
+.L2832:
.align 2
-.L2785:
+.L2831:
.word 1074033155
.word 1074029694
.word 1074029570
@@ -24280,42 +24667,42 @@ rknand_sys_storage_ioctl:
.word 1074033235
.word 1074034193
.word 1074034194
- .word .LC178
- .word .LC180
+ .word .LC179
.word .LC181
.word .LC182
- .word .LANCHOR4
.word .LC183
+ .word .LANCHOR4
.word .LC184
- .word .LC179
.word .LC185
+ .word .LC180
.word .LC186
.word .LC187
.word .LC188
.word .LC189
.word .LC190
+ .word .LC191
.word 1263358532
.word -1067903959
- .word .LC191
.word .LC192
+ .word .LC193
.word 1112753220
.word 1146313043
- .word .LC193
- .word 1112755781
.word .LC194
- .word 1094995539
- .word .LANCHOR4+512
+ .word 1112755781
.word .LC195
- .word 1074031676
+ .word 1094995539
+ .word .LANCHOR4+520
.word .LC196
+ .word 1074031676
.word .LC197
- .word 1280262987
.word .LC198
+ .word 1280262987
.word .LC199
+ .word .LC200
.word 1145980246
.word 1074034192
- .word .LC200
.word .LC201
+ .word .LC202
.fnend
.size rknand_sys_storage_ioctl, .-rknand_sys_storage_ioctl
.align 2
@@ -24328,59 +24715,59 @@ rk_ftl_storage_sys_init:
stmfd sp!, {r3, r4, r5, r6, r7, lr}
.save {r3, r4, r5, r6, r7, lr}
mov r2, #512
- ldr r4, .L2790
+ ldr r4, .L2836
mov r6, #0
mvn r3, #0
- add r0, r4, #512
- ldr r5, [r4, #472]
- str r3, [r4, #488]
+ add r0, r4, #520
+ ldr r5, [r4, #480]
+ str r3, [r4, #496]
add r1, r5, #1536
add r3, r5, #512
- strb r6, [r4, #480]
- str r3, [r4, #496]
+ strb r6, [r4, #488]
+ str r3, [r4, #504]
add r3, r5, #1024
- str r6, [r4, #484]
- str r3, [r4, #1028]
str r6, [r4, #492]
- str r5, [r4, #508]
- str r1, [r4, #1032]
+ str r3, [r4, #1036]
+ str r6, [r4, #500]
+ str r5, [r4, #516]
+ str r1, [r4, #1040]
bl memcpy
ldr r7, [r5, #508]
ldr r3, [r5, #16]
cmp r7, r6
- str r6, [r4, #500]
- str r6, [r4, #1024]
- str r3, [r4, #504]
- beq .L2788
+ str r6, [r4, #508]
+ str r6, [r4, #1032]
+ str r3, [r4, #512]
+ beq .L2834
mov r0, r5
mov r1, #508
- bl JSHash
+ bl js_hash
cmp r7, r0
- beq .L2788
+ beq .L2834
str r6, [r5, #16]
- ldr r0, .L2790+4
- str r6, [r4, #504]
+ ldr r0, .L2836+4
+ str r6, [r4, #512]
bl printk
-.L2788:
- ldr r3, [r4, #504]
+.L2834:
+ ldr r3, [r4, #512]
mov r0, #2
- ldr r4, .L2790
+ ldr r4, .L2836
cmp r3, #0
- ldrne r2, .L2790+8
- ldrne r3, .L2790
- ldr r1, [r4, #1028]
- strne r2, [r3, #500]
+ ldrne r2, .L2836+8
+ ldrne r3, .L2836
+ ldr r1, [r4, #1036]
+ strne r2, [r3, #508]
bl StorageSysDataLoad
- ldr r1, [r4, #1032]
+ ldr r1, [r4, #1040]
mov r0, #3
bl StorageSysDataLoad
ldmfd sp!, {r3, r4, r5, r6, r7, lr}
b rknand_sys_storage_init
-.L2791:
+.L2837:
.align 2
-.L2790:
+.L2836:
.word .LANCHOR4
- .word .LC202
+ .word .LC203
.word -1067903959
.fnend
.size rk_ftl_storage_sys_init, .-rk_ftl_storage_sys_init
@@ -24407,83 +24794,83 @@ rk_ftl_vendor_storage_init:
.save {r3, r4, r5, r6, r7, r8, sl, lr}
mov r0, #65536
bl ftl_malloc
- ldr r7, .L2801
+ ldr r7, .L2847
cmp r0, #0
- str r0, [r7, #1036]
- beq .L2799
- ldr sl, .L2801+4
+ str r0, [r7, #1044]
+ beq .L2845
+ ldr sl, .L2847+4
mov r6, #0
mov r4, r6
mov r5, r6
movw r8, #65532
-.L2797:
- ldr r0, [r7, #1036]
+.L2843:
+ ldr r0, [r7, #1044]
mov r1, r5, asl #7
mov r2, #0
- bl rk_ftl_vendor_ops.constprop.27
+ bl rk_ftl_vendor_ops.constprop.29
cmp r0, #0
- bne .L2795
- ldr r3, [r7, #1036]
- ldr r0, .L2801+8
+ bne .L2841
+ ldr r3, [r7, #1044]
+ ldr r0, .L2847+8
ldr r1, [r3, #0]
ldr r2, [r3, r8]
ldr r3, [r3, #4]
bl printk
- ldr r0, [r7, #1036]
+ ldr r0, [r7, #1044]
ldr r3, [r0, #0]
cmp r3, sl
- bne .L2796
+ bne .L2842
ldr r3, [r0, r8]
ldr r2, [r0, #4]
cmp r3, r2
- bne .L2796
+ bne .L2842
cmp r4, r3
movcc r6, r5
movcc r4, r3
-.L2796:
+.L2842:
add r5, r5, #1
cmp r5, #2
- bne .L2797
+ bne .L2843
cmp r4, #0
- beq .L2798
+ beq .L2844
mov r1, r6, asl #7
mov r2, #0
- bl rk_ftl_vendor_ops.constprop.27
+ bl rk_ftl_vendor_ops.constprop.29
cmp r0, #0
ldmeqfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc}
- b .L2795
-.L2798:
+ b .L2841
+.L2844:
mov r1, #65536
bl __memzero
- ldr r3, .L2801
- ldr r1, .L2801+4
+ ldr r3, .L2847
+ ldr r1, .L2847+4
mov r2, #1
mov r0, r4
- ldr r3, [r3, #1036]
+ ldr r3, [r3, #1044]
stmia r3, {r1, r2}
movw r1, #65532
str r2, [r3, r1]
- ldr r2, .L2801+12
+ ldr r2, .L2847+12
strh r4, [r3, #12] @ movhi
strh r2, [r3, #14] @ movhi
ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc}
-.L2795:
- ldr r4, .L2801
- ldr r0, [r4, #1036]
+.L2841:
+ ldr r4, .L2847
+ ldr r0, [r4, #1044]
bl kfree
mov r3, #0
mvn r0, #0
- str r3, [r4, #1036]
+ str r3, [r4, #1044]
ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc}
-.L2799:
+.L2845:
mvn r0, #11
ldmfd sp!, {r3, r4, r5, r6, r7, r8, sl, pc}
-.L2802:
+.L2848:
.align 2
-.L2801:
+.L2847:
.word .LANCHOR4
.word 1380668996
- .word .LC203
+ .word .LC204
.word -1032
.fnend
.size rk_ftl_vendor_storage_init, .-rk_ftl_vendor_storage_init
@@ -24496,21 +24883,21 @@ rk_ftl_vendor_read:
@ frame_needed = 0, uses_anonymous_args = 0
mov r3, r0
mov r0, r1
- ldr r1, .L2810
+ ldr r1, .L2856
stmfd sp!, {r4, r5, r6, lr}
.save {r4, r5, r6, lr}
- ldr ip, [r1, #1036]
+ ldr ip, [r1, #1044]
cmp ip, #0
ldrneh r4, [ip, #10]
movne r5, ip
movne r1, #0
- bne .L2805
- b .L2809
-.L2807:
+ bne .L2851
+ b .L2855
+.L2853:
ldrh r6, [r5, #16]
add r5, r5, #8
cmp r6, r3
- bne .L2806
+ bne .L2852
add r1, r1, #2
add r1, ip, r1, asl #3
ldrh r4, [r1, #4]
@@ -24523,19 +24910,19 @@ rk_ftl_vendor_read:
bl memcpy
mov r0, r4
ldmfd sp!, {r4, r5, r6, pc}
-.L2806:
+.L2852:
add r1, r1, #1
-.L2805:
+.L2851:
cmp r1, r4
- bcc .L2807
+ bcc .L2853
mvn r0, #0
ldmfd sp!, {r4, r5, r6, pc}
-.L2809:
+.L2855:
mvn r0, #0
ldmfd sp!, {r4, r5, r6, pc}
-.L2811:
+.L2857:
.align 2
-.L2810:
+.L2856:
.word .LANCHOR4
.fnend
.size rk_ftl_vendor_read, .-rk_ftl_vendor_read
@@ -24546,46 +24933,46 @@ rk_ftl_vendor_write:
.fnstart
@ args = 0, pretend = 0, frame = 16
@ frame_needed = 0, uses_anonymous_args = 0
- ldr r3, .L2829
+ ldr r3, .L2875
stmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
.save {r4, r5, r6, r7, r8, r9, sl, fp, lr}
mov sl, r0
- ldr r4, [r3, #1036]
+ ldr r4, [r3, #1044]
.pad #20
sub sp, sp, #20
mov r9, r1
mov r5, r2
cmp r4, #0
- beq .L2825
+ beq .L2871
add r8, r2, #63
ldrh r2, [r4, #8]
ldrh r3, [r4, #10]
bic r8, r8, #63
mov r7, #0
str r2, [sp, #8]
- b .L2814
-.L2821:
+ b .L2860
+.L2867:
add r2, r7, #2
mov r2, r2, asl #3
add r6, r4, r2
ldrh r2, [r4, r2]
cmp r2, sl
- bne .L2815
+ bne .L2861
ldrh r2, [r6, #4]
add r2, r2, #63
bic r2, r2, #63
str r2, [sp, #12]
cmp r5, r2
- bls .L2816
+ bls .L2862
ldrh r2, [r4, #14]
cmp r2, r8
- bcc .L2825
+ bcc .L2871
sub r3, r3, #1
mov fp, r8
ldrh r6, [r6, #2]
mov r8, r3
- b .L2817
-.L2818:
+ b .L2863
+.L2864:
add r7, r7, #1
mov r2, r2, asl #3
add r0, r7, #2
@@ -24610,10 +24997,10 @@ rk_ftl_vendor_write:
bl memcpy
ldr r3, [sp, #4]
add r6, r6, r3
-.L2817:
+.L2863:
cmp r7, r8
add r2, r7, #2
- bcc .L2818
+ bcc .L2864
mov r2, r2, asl #3
uxth r6, r6
add r3, r4, r2
@@ -24633,8 +25020,8 @@ rk_ftl_vendor_write:
add r3, r2, r3
rsb r8, r8, r3
strh r8, [r4, #14] @ movhi
- b .L2828
-.L2816:
+ b .L2874
+.L2862:
ldrh r0, [r6, #2]
mov r1, r9
mov r2, r5
@@ -24642,15 +25029,15 @@ rk_ftl_vendor_write:
add r0, r4, r0
bl memcpy
strh r5, [r6, #4] @ movhi
- b .L2828
-.L2815:
+ b .L2874
+.L2861:
add r7, r7, #1
-.L2814:
+.L2860:
cmp r7, r3
- bcc .L2821
+ bcc .L2867
ldrh r2, [r4, #14]
cmp r2, r8
- bcc .L2825
+ bcc .L2871
add r3, r3, #2
uxth r8, r8
mov r1, r9
@@ -24674,7 +25061,7 @@ rk_ftl_vendor_write:
ldrh r3, [r4, #10]
add r3, r3, #1
strh r3, [r4, #10] @ movhi
-.L2828:
+.L2874:
ldr r3, [r4, #4]
movw r2, #65532
mov r0, r4
@@ -24691,17 +25078,17 @@ rk_ftl_vendor_write:
strhih r3, [r4, #8] @ movhi
ldr r3, [sp, #8]
mov r1, r3, asl #7
- bl rk_ftl_vendor_ops.constprop.27
+ bl rk_ftl_vendor_ops.constprop.29
mov r0, #0
- b .L2813
-.L2825:
+ b .L2859
+.L2871:
mvn r0, #0
-.L2813:
+.L2859:
add sp, sp, #20
ldmfd sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
-.L2830:
+.L2876:
.align 2
-.L2829:
+.L2875:
.word .LANCHOR4
.fnend
.size rk_ftl_vendor_write, .-rk_ftl_vendor_write
@@ -24720,30 +25107,30 @@ rk_ftl_vendor_storage_ioctl:
bl ftl_malloc
subs r4, r0, #0
mvneq r5, #0
- beq .L2832
- ldr r3, .L2848
+ beq .L2878
+ ldr r3, .L2894
cmp r6, r3
- beq .L2834
+ beq .L2880
add r3, r3, #1
cmp r6, r3
- bne .L2845
- b .L2847
-.L2834:
+ bne .L2891
+ b .L2893
+.L2880:
mov r1, r5
mov r2, #8
bl rk_copy_from_user
cmp r0, #0
- bne .L2845
+ bne .L2891
ldr r2, [r4, #0]
- ldr r3, .L2848+4
+ ldr r3, .L2894+4
cmp r2, r3
- bne .L2844
+ bne .L2890
ldrh r0, [r4, #4]
add r1, r4, #8
ldrh r2, [r4, #6]
bl rk_ftl_vendor_read
cmn r0, #1
- beq .L2840
+ beq .L2886
uxth r2, r0
mov r1, r4
strh r2, [r4, #6] @ movhi
@@ -24753,48 +25140,48 @@ rk_ftl_vendor_storage_ioctl:
cmp r0, #0
moveq r5, r0
mvnne r5, #13
- b .L2833
-.L2847:
+ b .L2879
+.L2893:
mov r1, r5
mov r2, #8
bl rk_copy_from_user
cmp r0, #0
- bne .L2845
+ bne .L2891
ldr r2, [r4, #0]
- ldr r3, .L2848+4
+ ldr r3, .L2894+4
cmp r2, r3
- bne .L2844
+ bne .L2890
ldrh r2, [r4, #6]
movw r3, #4087
cmp r2, r3
- bhi .L2844
+ bhi .L2890
mov r0, r4
mov r1, r5
add r2, r2, #8
bl rk_copy_from_user
cmp r0, #0
- bne .L2845
+ bne .L2891
ldrh r0, [r4, #4]
add r1, r4, #8
ldrh r2, [r4, #6]
bl rk_ftl_vendor_write
-.L2840:
+.L2886:
mov r5, r0
- b .L2833
-.L2844:
+ b .L2879
+.L2890:
mvn r5, #0
- b .L2833
-.L2845:
+ b .L2879
+.L2891:
mvn r5, #13
-.L2833:
+.L2879:
mov r0, r4
bl kfree
-.L2832:
+.L2878:
mov r0, r5
ldmfd sp!, {r4, r5, r6, pc}
-.L2849:
+.L2895:
.align 2
-.L2848:
+.L2894:
.word 1074034177
.word 1448232273
.fnend
@@ -24980,7 +25367,6 @@ rk_ftl_vendor_storage_ioctl:
.global c_ftl_nand_ext_blk_pre_plane
.global c_ftl_nand_blk_pre_plane
.global c_ftl_nand_planes_num
- .global c_ftl_nand_blks_per_die_shift
.global c_ftl_nand_blks_per_die
.global c_ftl_nand_planes_per_die
.global c_ftl_nand_die_num
@@ -24997,6 +25383,7 @@ rk_ftl_vendor_storage_ioctl:
.global gNandcVer
.global gNandChipMap
.global gNandIDataBuf
+ .global idb_flash_slc_mode
.global FlashDdrTunningReadCount
.global FlashWaitBusyScheduleEn
.global gNandPhyInfo
@@ -25043,34 +25430,34 @@ rk_ftl_vendor_storage_ioctl:
.global read_retry_cur_offset
.section .rodata
.set .LANCHOR3,. + 0
- .type __func__.14269, %object
- .size __func__.14269, 11
-__func__.14269:
+ .type __func__.14500, %object
+ .size __func__.14500, 11
+__func__.14500:
.ascii "FtlMemInit\000"
.LC0:
.byte 60
.byte 40
.byte 24
.byte 16
- .type __func__.15064, %object
- .size __func__.15064, 16
-__func__.15064:
+ .type __func__.15296, %object
+ .size __func__.15296, 16
+__func__.15296:
.ascii "FtlScanAllBlock\000"
- .type __func__.15045, %object
- .size __func__.15045, 17
-__func__.15045:
+ .type __func__.15277, %object
+ .size __func__.15277, 17
+__func__.15277:
.ascii "FtlDumpBlockInfo\000"
- .type __func__.15312, %object
- .size __func__.15312, 21
-__func__.15312:
+ .type __func__.15544, %object
+ .size __func__.15544, 21
+__func__.15544:
.ascii "FtlVpcCheckAndModify\000"
- .type __func__.14342, %object
- .size __func__.14342, 8
-__func__.14342:
+ .type __func__.14573, %object
+ .size __func__.14573, 8
+__func__.14573:
.ascii "FtlInit\000"
- .type __func__.15010, %object
- .size __func__.15010, 12
-__func__.15010:
+ .type __func__.15242, %object
+ .size __func__.15242, 12
+__func__.15242:
.ascii "FtlCheckVpc\000"
.section .rodata.str1.1,"aMS",%progbits,1
.LC1:
@@ -25230,7 +25617,7 @@ __func__.15010:
.LC77:
.ascii "%s\012\000"
.LC78:
- .ascii "FTL version: 5.0.50 20180905\000"
+ .ascii "FTL version: 5.0.53 20190107\000"
.LC79:
.ascii "swblk %x ,avg = %x max= %x vpc= %x,ec=%x ,max ec=%x"
.ascii "\012\000"
@@ -25278,218 +25665,220 @@ __func__.15010:
.LC100:
.ascii "ReadRetry pageadd=%x ecc=%x err=%x\012\000"
.LC101:
- .ascii "FtlGcScanTempBlkError ID %x %x!!!!!!!\012\000"
-.LC102:
.ascii "...%s enter...\012\000"
-.LC103:
+.LC102:
.ascii "blk = %x vpc=%x mode = %x\012\000"
-.LC104:
+.LC103:
.ascii "mlc id = %x,%x addr= %x,spare= %x %x %x %x data=%x "
.ascii "%x\012\000"
-.LC105:
+.LC104:
.ascii "slc id = %x,%x addr= %x,spare= %x %x %x %x data=%x "
.ascii "%x\012\000"
-.LC106:
+.LC105:
.ascii "superBlkID = %x vpc=%x\012\000"
-.LC107:
+.LC106:
.ascii "flashmode = %x pagenum = %x %x\012\000"
-.LC108:
+.LC107:
.ascii "id = %x,%x addr= %x,spare= %x %x %x %x data=%x %x\012"
.ascii "\000"
-.LC109:
+.LC108:
.ascii "prog error: = %x\012\000"
-.LC110:
+.LC109:
.ascii "prog read error: = %x\012\000"
-.LC111:
+.LC110:
.ascii "prog read s error: = %x %x %x\012\000"
-.LC112:
+.LC111:
.ascii "prog read d error: = %x %x %x\012\000"
-.LC113:
+.LC112:
.ascii "FtlVpcTblFlush error = %x error count = %d\012\000"
-.LC114:
+.LC113:
.ascii "FtlBbmTblFlush id=%x,page=%x,previd=%x cnt=%d\012\000"
-.LC115:
+.LC114:
.ascii "FtlBbmTblFlush error:%x\012\000"
-.LC116:
+.LC115:
.ascii "FtlBbmTblFlush error = %x error count = %d\012\000"
-.LC117:
+.LC116:
.ascii "FtlGcFreeBadSuperBlk 0x%x\012\000"
-.LC118:
+.LC117:
.ascii "FlashMakeFactorBbt %d\012\000"
-.LC119:
+.LC118:
.ascii "bad block:%d %d\012\000"
-.LC120:
+.LC119:
.ascii "FMFB:%d %d\012\000"
-.LC121:
+.LC120:
.ascii "E:bad block:%d\012\000"
-.LC122:
+.LC121:
.ascii "FMFB:Save %d %d\012\000"
-.LC123:
+.LC122:
.ascii "page map lost: %x %x\012\000"
-.LC124:
+.LC123:
.ascii "FtlMapWritePage error = %x\012\000"
-.LC125:
+.LC124:
.ascii "FtlMapWritePage error = %x error count = %d\012\000"
-.LC126:
+.LC125:
.ascii "FtlVendorPartRead refresh = %x phyAddr = %x\012\000"
-.LC127:
+.LC126:
.ascii "slc mode\000"
-.LC128:
+.LC127:
.ascii "no ect\000"
-.LC129:
+.LC128:
.ascii "FLFB:%d %d\012\000"
-.LC130:
+.LC129:
.ascii "phyBlk = %x,addr= %x,spare= %x %x %x %x data=%x %x\012"
.ascii "\000"
-.LC131:
+.LC130:
.ascii "Mblk:\000"
-.LC132:
+.LC131:
.ascii "L2P:\000"
-.LC133:
+.LC132:
.ascii "L2PC:\000"
-.LC134:
+.LC133:
.ascii "id = %x,%x addr= %x,spare= %x %x %x %x data = %x\012"
.ascii "\000"
-.LC135:
+.LC134:
.ascii ":\000"
-.LC136:
+.LC135:
.ascii "BBT:\000"
-.LC137:
+.LC136:
.ascii "region_id = %x phyAddr = %x\012\000"
-.LC138:
+.LC137:
.ascii "map_ppn:\000"
-.LC139:
+.LC138:
.ascii "load_l2p_region refresh = %x phyAddr = %x\012\000"
+.LC139:
+ .ascii "FtlGcScanTempBlk Error ID %x %x!!!!!!! \012\000"
.LC140:
- .ascii "Ftlscanalldata = %x\012\000"
+ .ascii "FtlGcScanTempBlkError ID %x %x!!!!!!!\012\000"
.LC141:
- .ascii "scan lpa = %x ppa= %x\012\000"
+ .ascii "Ftlscanalldata = %x\012\000"
.LC142:
+ .ascii "scan lpa = %x ppa= %x\012\000"
+.LC143:
.ascii "lba = %x,addr= %x,spare= %x %x %x %x data=%x %x\012"
.ascii "\000"
-.LC143:
- .ascii "RSB refresh addr %x\012\000"
.LC144:
- .ascii "spuer block %x vpn is 0\012 \000"
+ .ascii "RSB refresh addr %x\012\000"
.LC145:
- .ascii "g_recovery_ppa %x ver %x\012 \000"
+ .ascii "spuer block %x vpn is 0\012 \000"
.LC146:
- .ascii "FtlCheckVpc %x = %x %x\012\000"
+ .ascii "g_recovery_ppa %x ver %x\012 \000"
.LC147:
- .ascii "GC des block %x done\012\000"
+ .ascii "FtlCheckVpc %x = %x %x\012\000"
.LC148:
- .ascii "%d GC datablk = %x vpc %x %x\012\000"
+ .ascii "GC des block %x done\012\000"
.LC149:
- .ascii "SWL %x, FSB = %x vpc= %x,ec=%x th=%x\012\000"
+ .ascii "%d GC datablk = %x vpc %x %x\012\000"
.LC150:
- .ascii "g_gc_superblock_free %x %x %x %x %x\012\000"
+ .ascii "SWL %x, FSB = %x vpc= %x,ec=%x th=%x\012\000"
.LC151:
- .ascii "Ftlwrite decrement_vpc_count %x = %d\012\000"
+ .ascii "g_gc_superblock_free %x %x %x %x %x\012\000"
.LC152:
- .ascii "rk_ftl_de_init %x\012\000"
+ .ascii "Ftlwrite decrement_vpc_count %x = %d\012\000"
.LC153:
- .ascii "fix power lost blk = %x vpc=%x\012\000"
+ .ascii "rk_ftl_de_init %x\012\000"
.LC154:
- .ascii "erase power lost blk = %x vpc=%x\012\000"
+ .ascii "fix power lost blk = %x vpc=%x\012\000"
.LC155:
+ .ascii "erase power lost blk = %x vpc=%x\012\000"
+.LC156:
.ascii "...%s: no bad block mapping table, format device\012"
.ascii "\000"
-.LC156:
- .ascii "...%s FtlSysBlkInit error ,format device!\012\000"
.LC157:
- .ascii "FtlWrite: lpa error:%x %x\012\000"
+ .ascii "...%s FtlSysBlkInit error ,format device!\012\000"
.LC158:
- .ascii "vpc1\000"
+ .ascii "FtlWrite: lpa error:%x %x\012\000"
.LC159:
- .ascii "vpc2\000"
+ .ascii "vpc1\000"
.LC160:
- .ascii "FtlCheckVpc2 %x = %x %x\012\000"
+ .ascii "vpc2\000"
.LC161:
- .ascii "free blk vpc error %x = %x %x\012\000"
+ .ascii "FtlCheckVpc2 %x = %x %x\012\000"
.LC162:
- .ascii "otp error! %d\000"
+ .ascii "free blk vpc error %x = %x %x\012\000"
.LC163:
- .ascii "rr\000"
+ .ascii "otp error! %d\000"
.LC164:
- .ascii "FlashLoadPhyInfo fail %x!!\012\000"
+ .ascii "rr\000"
.LC165:
- .ascii "FtlInit %x\012\000"
+ .ascii "FlashLoadPhyInfo fail %x!!\012\000"
.LC166:
- .ascii "IdBlockReadData %x %x\012\000"
+ .ascii "FtlInit %x\012\000"
.LC167:
- .ascii "IdBlockReadData %x %x ret= %x\012\000"
+ .ascii "IdBlockReadData %x %x\012\000"
.LC168:
- .ascii "IDBlockWriteData %x %x\012\000"
+ .ascii "IdBlockReadData %x %x ret= %x\012\000"
.LC169:
- .ascii "IDBlockWriteData %x %x ret= %x\012\000"
+ .ascii "IDBlockWriteData %x %x\012\000"
.LC170:
- .ascii "write_idblock fix data %x %x\012\000"
+ .ascii "IDBlockWriteData %x %x ret= %x\012\000"
.LC171:
- .ascii "idblk:\000"
+ .ascii "write_idblock fix data %x %x\012\000"
.LC172:
- .ascii "idb reverse %x %x\012\000"
+ .ascii "idblk:\000"
.LC173:
- .ascii "write_idblock totle_sec %x %x %x %x\012\000"
+ .ascii "idb reverse %x %x\012\000"
.LC174:
+ .ascii "write_idblock totle_sec %x %x %x %x\012\000"
+.LC175:
.ascii "write and check error:%d idb=%x,offset=%x,r=%x,w=%x"
.ascii "\012\000"
-.LC175:
- .ascii "write\000"
.LC176:
- .ascii "read\000"
+ .ascii "write\000"
.LC177:
- .ascii "write_idblock error %d\012\000"
+ .ascii "read\000"
.LC178:
- .ascii "READ_SECTOR_IO\012\000"
+ .ascii "write_idblock error %d\012\000"
.LC179:
- .ascii "rk_copy_from_user error\012\000"
+ .ascii "READ_SECTOR_IO\012\000"
.LC180:
- .ascii "READ_SECTOR_IO %x %x\012\000"
+ .ascii "rk_copy_from_user error\012\000"
.LC181:
- .ascii "rk_copy_to_user error\012\000"
+ .ascii "READ_SECTOR_IO %x %x\012\000"
.LC182:
- .ascii "WRITE_SECTOR_IO\012\000"
+ .ascii "rk_copy_to_user error\012\000"
.LC183:
- .ascii "WRITE_SECTOR_IO %x %x\012\000"
+ .ascii "WRITE_SECTOR_IO\012\000"
.LC184:
- .ascii "END_WRITE_SECTOR_IO\012\000"
+ .ascii "WRITE_SECTOR_IO %x %x\012\000"
.LC185:
- .ascii "END_WRITE_SECTOR_IO %x %x\012\000"
+ .ascii "END_WRITE_SECTOR_IO\012\000"
.LC186:
- .ascii "GET_FLASH_INFO_IO\012\000"
+ .ascii "END_WRITE_SECTOR_IO %x %x\012\000"
.LC187:
- .ascii "GET_BAD_BLOCK_IO\012\000"
+ .ascii "GET_FLASH_INFO_IO\012\000"
.LC188:
- .ascii "GET_LOCK_FLAG_IO\012\000"
+ .ascii "GET_BAD_BLOCK_IO\012\000"
.LC189:
- .ascii "GET_PUBLIC_KEY_IO\012\000"
+ .ascii "GET_LOCK_FLAG_IO\012\000"
.LC190:
- .ascii "RKNAND_GET_DRM_KEY\012\000"
+ .ascii "GET_PUBLIC_KEY_IO\012\000"
.LC191:
- .ascii "RKNAND_STORE_DRM_KEY\012\000"
+ .ascii "RKNAND_GET_DRM_KEY\012\000"
.LC192:
- .ascii "RKNAND_DIASBLE_SECURE_BOOT\012\000"
+ .ascii "RKNAND_STORE_DRM_KEY\012\000"
.LC193:
- .ascii "RKNAND_ENASBLE_SECURE_BOOT\012\000"
+ .ascii "RKNAND_DIASBLE_SECURE_BOOT\012\000"
.LC194:
- .ascii "RKNAND_GET_SN_SECTOR\012\000"
+ .ascii "RKNAND_ENASBLE_SECURE_BOOT\012\000"
.LC195:
- .ascii "RKNAND_LOADER_UNLOCK\012\000"
+ .ascii "RKNAND_GET_SN_SECTOR\012\000"
.LC196:
- .ascii "RKNAND_LOADER_STATUS\012\000"
+ .ascii "RKNAND_LOADER_UNLOCK\012\000"
.LC197:
- .ascii "RKNAND_LOADER_LOCK\012\000"
+ .ascii "RKNAND_LOADER_STATUS\012\000"
.LC198:
- .ascii "LockKey not match %d\012\000"
+ .ascii "RKNAND_LOADER_LOCK\012\000"
.LC199:
- .ascii "RKNAND_GET_VENDOR_SECTOR\012\000"
+ .ascii "LockKey not match %d\012\000"
.LC200:
- .ascii "RKNAND_STORE_VENDOR_SECTOR\012\000"
+ .ascii "RKNAND_GET_VENDOR_SECTOR\012\000"
.LC201:
- .ascii "return ret = %lx\012\000"
+ .ascii "RKNAND_STORE_VENDOR_SECTOR\012\000"
.LC202:
- .ascii "secureBootEn check error\012\000"
+ .ascii "return ret = %lx\012\000"
.LC203:
+ .ascii "secureBootEn check error\012\000"
+.LC204:
.ascii "\0013vendor storage %x,%x,%x\012\000"
.data
.align 2
@@ -25772,7 +26161,7 @@ random_seed:
.short 17598
.short 28087
.type NandFlashParaTbl, %object
- .size NandFlashParaTbl, 2464
+ .size NandFlashParaTbl, 2592
NandFlashParaTbl:
.byte 6
.byte 44
@@ -26349,6 +26738,58 @@ NandFlashParaTbl:
.byte 5
.byte 44
.byte -124
+ .byte 68
+ .byte 50
+ .byte -86
+ .byte 0
+ .byte 4
+ .byte 1
+ .byte 32
+ .short 512
+ .byte 2
+ .byte 1
+ .short 2184
+ .short 1479
+ .byte 5
+ .byte 19
+ .byte 60
+ .byte 32
+ .byte 1
+ .byte 0
+ .byte 4
+ .byte 0
+ .byte 1
+ .byte 0
+ .space 4
+ .byte 5
+ .byte 44
+ .byte -124
+ .byte 68
+ .byte 52
+ .byte -86
+ .byte 0
+ .byte 4
+ .byte 1
+ .byte 32
+ .short 512
+ .byte 2
+ .byte 1
+ .short 2184
+ .short 1479
+ .byte 5
+ .byte 19
+ .byte 60
+ .byte 32
+ .byte 1
+ .byte 0
+ .byte 4
+ .byte 0
+ .byte 1
+ .byte 0
+ .space 4
+ .byte 5
+ .byte 44
+ .byte -124
.byte -60
.byte 52
.byte -86
@@ -26398,6 +26839,32 @@ NandFlashParaTbl:
.byte 1
.byte 0
.space 4
+ .byte 5
+ .byte 44
+ .byte -124
+ .byte 100
+ .byte 60
+ .byte -87
+ .byte 0
+ .byte 4
+ .byte 1
+ .byte 32
+ .short 512
+ .byte 2
+ .byte 2
+ .short 1024
+ .short 479
+ .byte 3
+ .byte 17
+ .byte 40
+ .byte 32
+ .byte 1
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 0
+ .byte 0
+ .space 4
.byte 6
.byte -83
.byte -34
@@ -26737,6 +27204,32 @@ NandFlashParaTbl:
.byte 0
.space 4
.byte 6
+ .byte -83
+ .byte 58
+ .byte 20
+ .byte 3
+ .byte 8
+ .byte 80
+ .byte 2
+ .byte 1
+ .byte 32
+ .short 388
+ .byte 2
+ .byte 2
+ .short 1362
+ .short 473
+ .byte 9
+ .byte 8
+ .byte 40
+ .byte 32
+ .byte 3
+ .byte 1
+ .byte 3
+ .byte 0
+ .byte 0
+ .byte 0
+ .space 4
+ .byte 6
.byte -119
.byte 100
.byte 68
@@ -26933,7 +27426,7 @@ NandFlashParaTbl:
.byte 1
.short 1024
.short 455
- .byte 3
+ .byte 4
.byte 17
.byte 40
.byte 32
@@ -28325,11 +28818,6 @@ gNandChipMap:
.size gNandOptPara, 32
gNandOptPara:
.space 32
- .type gFlashSlcMode, %object
- .size gFlashSlcMode, 1
-gFlashSlcMode:
- .space 1
- .space 3
.type gNandIDataBuf, %object
.size gNandIDataBuf, 2048
gNandIDataBuf:
@@ -28378,6 +28866,11 @@ NANDC_FMWAIT_SYN:
.size gNandPhyInfo, 28
gNandPhyInfo:
.space 28
+ .type gFlashSlcMode, %object
+ .size gFlashSlcMode, 1
+gFlashSlcMode:
+ .space 1
+ .space 3
.type slcPageToMlcPageTbl, %object
.size slcPageToMlcPageTbl, 512
slcPageToMlcPageTbl:
@@ -28424,9 +28917,9 @@ DieCsIndex:
gFlashInterfaceMode:
.space 1
.space 3
- .type g_nandc_version_data, %object
- .size g_nandc_version_data, 4
-g_nandc_version_data:
+ .type idb_flash_slc_mode, %object
+ .size idb_flash_slc_mode, 4
+idb_flash_slc_mode:
.space 4
.type gFlashToggleModeEn, %object
.size gFlashToggleModeEn, 1
@@ -28441,6 +28934,10 @@ gBootDdrMode:
.size gNandcVer, 4
gNandcVer:
.space 4
+ .type g_nandc_version_data, %object
+ .size g_nandc_version_data, 4
+g_nandc_version_data:
+ .space 4
.type gMasterTempBuf, %object
.size gMasterTempBuf, 4
gMasterTempBuf:
@@ -28531,10 +29028,6 @@ c_ftl_vendor_part_size:
.size c_ftl_nand_blks_per_die, 2
c_ftl_nand_blks_per_die:
.space 2
- .type c_ftl_nand_blks_per_die_shift, %object
- .size c_ftl_nand_blks_per_die_shift, 2
-c_ftl_nand_blks_per_die_shift:
- .space 2
.type c_ftl_nand_page_pre_blk, %object
.size c_ftl_nand_page_pre_blk, 2
c_ftl_nand_page_pre_blk:
@@ -28567,6 +29060,7 @@ c_ftl_nand_byte_pre_oob:
.size c_ftl_nand_reserved_blks, 2
c_ftl_nand_reserved_blks:
.space 2
+ .space 2
.type DeviceCapacity, %object
.size DeviceCapacity, 4
DeviceCapacity:
@@ -28784,9 +29278,9 @@ c_ftl_nand_data_op_blks_per_plane:
.space 2
.space 2
.type gSysInfo, %object
- .size gSysInfo, 12
+ .size gSysInfo, 16
gSysInfo:
- .space 12
+ .space 16
.type g_gc_superblock, %object
.size g_gc_superblock, 48
g_gc_superblock:
diff --git a/drivers/rk_nand/rk_ftl_arm_v8.S b/drivers/rk_nand/rk_ftl_arm_v8.S
index 37fe71ab2a53..bf4c21760b4f 100644
--- a/drivers/rk_nand/rk_ftl_arm_v8.S
+++ b/drivers/rk_nand/rk_ftl_arm_v8.S
@@ -5,7 +5,7 @@
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- * date: 2018-09-05
+ * date: 2019-01-07
*/
.cpu generic+fp+simd
.file "rk_ftl_arm_v8.S"
@@ -150,6 +150,25 @@ FlashSetRandomizer:
ret
.size FlashSetRandomizer, .-FlashSetRandomizer
.align 2
+ .global FlashBlockAlignInit
+ .type FlashBlockAlignInit, %function
+FlashBlockAlignInit:
+ uxth w0, w0
+ adrp x1, .LANCHOR0
+ cmp w0, 256
+ add x1, x1, :lo12:.LANCHOR0
+ bls .L28
+ mov w0, 512
+ b .L31
+.L28:
+ cmp w0, 128
+ bls .L31
+ mov w0, 256
+.L31:
+ str w0, [x1,12]
+ ret
+ .size FlashBlockAlignInit, .-FlashBlockAlignInit
+ .align 2
.global FlashReadCmd
.type FlashReadCmd, %function
FlashReadCmd:
@@ -199,7 +218,7 @@ FlashReadDpDataOutCmd:
ldrb w2, [x5,8]
and w5, w1, 255
add x2, x6, x2, lsl 8
- bne .L29
+ bne .L34
mov w6, 6
str w6, [x2,2056]
str wzr, [x2,2052]
@@ -207,8 +226,8 @@ FlashReadDpDataOutCmd:
str w5, [x2,2052]
str w4, [x2,2052]
str w3, [x2,2052]
- b .L31
-.L29:
+ b .L36
+.L34:
str wzr, [x2,2056]
str wzr, [x2,2052]
str wzr, [x2,2052]
@@ -219,7 +238,7 @@ FlashReadDpDataOutCmd:
str w3, [x2,2056]
str wzr, [x2,2052]
str wzr, [x2,2052]
-.L31:
+.L36:
mov w3, 224
str w3, [x2,2056]
bl FlashSetRandomizer
@@ -227,48 +246,6 @@ FlashReadDpDataOutCmd:
ret
.size FlashReadDpDataOutCmd, .-FlashReadDpDataOutCmd
.align 2
- .global flash_enter_slc_mode
- .type flash_enter_slc_mode, %function
-flash_enter_slc_mode:
- adrp x1, .LANCHOR0
- uxtb w0, w0
- add x1, x1, :lo12:.LANCHOR0
- ldrb w2, [x1,120]
- cbz w2, .L32
- sbfiz x0, x0, 4, 32
- add x1, x1, 24
- add x2, x1, x0
- ldr x1, [x1,x0]
- ldrb w0, [x2,8]
- add x0, x0, 8
- add x0, x1, x0, lsl 8
- mov w1, 218
- str w1, [x0,8]
-.L32:
- ret
- .size flash_enter_slc_mode, .-flash_enter_slc_mode
- .align 2
- .global flash_exit_slc_mode
- .type flash_exit_slc_mode, %function
-flash_exit_slc_mode:
- adrp x1, .LANCHOR0
- uxtb w0, w0
- add x1, x1, :lo12:.LANCHOR0
- ldrb w2, [x1,120]
- cbz w2, .L37
- sbfiz x0, x0, 4, 32
- add x1, x1, 24
- add x2, x1, x0
- ldr x1, [x1,x0]
- ldrb w0, [x2,8]
- add x0, x0, 8
- add x0, x1, x0, lsl 8
- mov w1, 223
- str w1, [x0,8]
-.L37:
- ret
- .size flash_exit_slc_mode, .-flash_exit_slc_mode
- .align 2
.global FlashProgFirstCmd
.type FlashProgFirstCmd, %function
FlashProgFirstCmd:
@@ -308,7 +285,7 @@ FlashEraseCmd:
add x5, x4, x0
ldr x4, [x4,x0]
ldrb w0, [x5,8]
- cbz w2, .L44
+ cbz w2, .L39
add x2, x4, x0, lsl 8
mov w5, 96
str w5, [x2,2056]
@@ -320,7 +297,7 @@ FlashEraseCmd:
str w5, [x2,2052]
ldr w2, [x3,12]
add w1, w1, w2
-.L44:
+.L39:
add x0, x4, x0, lsl 8
mov w2, 96
str w2, [x0,2056]
@@ -398,26 +375,50 @@ FlashProgDpFirstCmd:
ret
.size FlashProgDpFirstCmd, .-FlashProgDpFirstCmd
.align 2
- .global JSHash
- .type JSHash, %function
-JSHash:
+ .global FlashReadStatus
+ .type FlashReadStatus, %function
+FlashReadStatus:
+ adrp x1, .LANCHOR0
+ ubfiz x0, x0, 4, 8
+ stp x29, x30, [sp, -32]!
+ add x1, x1, :lo12:.LANCHOR0
+ add x1, x1, 24
+ add x29, sp, 0
+ add x2, x1, x0
+ str x19, [sp,16]
+ ldrb w2, [x2,8]
+ ldr x19, [x1,x0]
+ mov w0, 112
+ add x19, x19, x2, lsl 8
+ str w0, [x19,2056]
+ mov x0, 400
+ bl __const_udelay
+ ldr w0, [x19,2048]
+ ldr x19, [sp,16]
+ ldp x29, x30, [sp], 32
+ ret
+ .size FlashReadStatus, .-FlashReadStatus
+ .align 2
+ .global js_hash
+ .type js_hash, %function
+js_hash:
mov x5, x0
mov w0, 42982
mov x2, 0
movk w0, 0x47c6, lsl 16
-.L52:
+.L48:
cmp w1, w2
- bls .L54
+ bls .L50
lsl w3, w0, 5
ldrb w4, [x5,x2]
add w3, w3, w0, lsr 2
add x2, x2, 1
add w3, w3, w4
eor w0, w0, w3
- b .L52
-.L54:
+ b .L48
+.L50:
ret
- .size JSHash, .-JSHash
+ .size js_hash, .-js_hash
.align 2
.global FlashLoadIdbInfo
.type FlashLoadIdbInfo, %function
@@ -432,6 +433,110 @@ FlashPrintInfo:
ret
.size FlashPrintInfo, .-FlashPrintInfo
.align 2
+ .global ToshibaSetRRPara
+ .type ToshibaSetRRPara, %function
+ToshibaSetRRPara:
+ uxtb w1, w1
+ mov w3, 5
+ add w2, w1, 1
+ stp x29, x30, [sp, -96]!
+ smull x3, w2, w3
+ adrp x2, .LANCHOR1
+ add x29, sp, 0
+ add x2, x2, :lo12:.LANCHOR1
+ stp x21, x22, [sp,32]
+ stp x23, x24, [sp,48]
+ add x23, x2, x1, sxtw
+ add x24, x2, 256
+ add x21, x2, 304
+ stp x19, x20, [sp,16]
+ stp x25, x26, [sp,64]
+ str x27, [sp,80]
+ mov x22, x0
+ add x24, x24, x3
+ add x21, x21, x3
+ mov x20, 0
+ adrp x26, .LANCHOR0
+ mov w27, 85
+ mov x19, x2
+.L54:
+ add x25, x26, :lo12:.LANCHOR0
+ ldrb w0, [x25,121]
+ cmp w0, w20
+ bls .L60
+ add x0, x19, 256
+ str w27, [x22,8]
+ ldrsb w0, [x20,x0]
+ str w0, [x22,4]
+ mov x0, 1000
+ bl __const_udelay
+ ldrb w0, [x25,120]
+ cmp w0, 34
+ bne .L55
+ ldrsb w0, [x24,x20]
+ b .L59
+.L55:
+ cmp w0, 35
+ bne .L57
+ ldrsb w0, [x21,x20]
+ b .L59
+.L57:
+ ldrsb w0, [x23,400]
+.L59:
+ str w0, [x22]
+ add x20, x20, 1
+ b .L54
+.L60:
+ ldp x19, x20, [sp,16]
+ ldp x21, x22, [sp,32]
+ ldp x23, x24, [sp,48]
+ ldp x25, x26, [sp,64]
+ ldr x27, [sp,80]
+ ldp x29, x30, [sp], 96
+ ret
+ .size ToshibaSetRRPara, .-ToshibaSetRRPara
+ .align 2
+ .global SamsungSetRRPara
+ .type SamsungSetRRPara, %function
+SamsungSetRRPara:
+ stp x29, x30, [sp, -64]!
+ adrp x2, .LANCHOR1
+ add x2, x2, :lo12:.LANCHOR1
+ add x29, sp, 0
+ add x1, x2, x1, uxtb 2
+ stp x19, x20, [sp,16]
+ stp x21, x22, [sp,32]
+ stp x23, x24, [sp,48]
+ mov x21, x0
+ add x22, x1, 412
+ mov x20, 0
+ adrp x23, .LANCHOR0
+ mov w24, 161
+ mov x19, x2
+.L62:
+ add x0, x23, :lo12:.LANCHOR0
+ ldrb w0, [x0,121]
+ cmp w0, w20
+ bls .L64
+ str w24, [x21,8]
+ add x0, x19, 408
+ str wzr, [x21]
+ ldrsb w0, [x20,x0]
+ str w0, [x21]
+ ldrsb w0, [x22,x20]
+ add x20, x20, 1
+ str w0, [x21]
+ mov x0, 1500
+ bl __const_udelay
+ b .L62
+.L64:
+ ldp x19, x20, [sp,16]
+ ldp x21, x22, [sp,32]
+ ldp x23, x24, [sp,48]
+ ldp x29, x30, [sp], 64
+ ret
+ .size SamsungSetRRPara, .-SamsungSetRRPara
+ .align 2
.global ftl_flash_suspend
.type ftl_flash_suspend, %function
ftl_flash_suspend:
@@ -479,40 +584,126 @@ LogAddr2PhyAddr:
udiv w10, w6, w5
msub w5, w10, w5, w6
uxth w6, w5
- bne .L60
+ bne .L68
add x1, x7, :lo12:.LANCHOR0
- ldrb w5, [x1,120]
- cbnz w5, .L60
- add x1, x1, 196
+ ldrb w5, [x1,196]
+ cbnz w5, .L68
+ add x1, x1, 200
ldrh w8, [x1,w8,sxtw 1]
-.L60:
+.L68:
add x7, x7, :lo12:.LANCHOR0
cmp w4, 1
- add x7, x7, 708
+ add x7, x7, 712
mov w1, 0
ldr w5, [x7,w10,uxtw 2]
madd w5, w6, w9, w5
add w5, w5, w8
str w5, [x2]
str w10, [x3]
- bls .L61
+ bls .L69
ldr w1, [x0,4]
ldr w0, [x0,60]
add w1, w1, 1024
cmp w1, w0
cset w1, eq
-.L61:
+.L69:
mov w0, w1
ret
.size LogAddr2PhyAddr, .-LogAddr2PhyAddr
.align 2
+ .global FlashReadStatusEN
+ .type FlashReadStatusEN, %function
+FlashReadStatusEN:
+ stp x29, x30, [sp, -32]!
+ adrp x3, .LANCHOR0
+ ubfiz x0, x0, 4, 8
+ add x4, x3, :lo12:.LANCHOR0
+ add x29, sp, 0
+ add x5, x4, 24
+ stp x19, x20, [sp,16]
+ add x6, x5, x0
+ uxtb w2, w2
+ ldr x20, [x5,x0]
+ ldr x0, [x4,744]
+ ldrb w19, [x6,8]
+ ldrb w0, [x0,8]
+ cmp w0, 2
+ bne .L72
+ add x4, x4, 88
+ cbnz w2, .L73
+ ldrb w2, [x4,13]
+ b .L81
+.L73:
+ ldrb w2, [x4,14]
+.L81:
+ add x0, x19, 8
+ add x3, x3, :lo12:.LANCHOR0
+ add x0, x20, x0, lsl 8
+ str w2, [x0,8]
+ mov w2, 0
+ ldrb w4, [x3,103]
+ cbz w4, .L76
+ add x3, x19, 8
+ lsl x3, x3, 8
+.L80:
+ cmp w2, w4
+ bcs .L76
+ add x5, x20, x3
+ lsl w0, w2, 3
+ lsr w0, w1, w0
+ add w2, w2, 1
+ and w0, w0, 255
+ str w0, [x5,4]
+ b .L80
+.L72:
+ add x0, x19, 8
+ mov w1, 112
+ add x0, x20, x0, lsl 8
+ str w1, [x0,8]
+.L76:
+ add x19, x19, 8
+ mov x0, 400
+ lsl x19, x19, 8
+ bl __const_udelay
+ ldr w0, [x20,x19]
+ ldp x19, x20, [sp,16]
+ ldp x29, x30, [sp], 32
+ uxtb w0, w0
+ ret
+ .size FlashReadStatusEN, .-FlashReadStatusEN
+ .align 2
+ .global FlashWaitReadyEN
+ .type FlashWaitReadyEN, %function
+FlashWaitReadyEN:
+ stp x29, x30, [sp, -48]!
+ add x29, sp, 0
+ stp x19, x20, [sp,16]
+ str x21, [sp,32]
+ uxtb w19, w0
+ mov w20, w1
+ uxtb w21, w2
+.L86:
+ mov w0, w19
+ mov w1, w20
+ mov w2, w21
+ bl FlashReadStatusEN
+ cmp w0, 255
+ mov w3, w0
+ beq .L86
+ tbz x3, 6, .L86
+ ldp x19, x20, [sp,16]
+ ldr x21, [sp,32]
+ ldp x29, x30, [sp], 48
+ ret
+ .size FlashWaitReadyEN, .-FlashWaitReadyEN
+ .align 2
.global FlashScheduleEnSet
.type FlashScheduleEnSet, %function
FlashScheduleEnSet:
adrp x1, .LANCHOR0
add x1, x1, :lo12:.LANCHOR0
- ldr w2, [x1,740]
- str w0, [x1,740]
+ ldr w2, [x1,752]
+ str w0, [x1,752]
mov w0, w2
ret
.size FlashScheduleEnSet, .-FlashScheduleEnSet
@@ -594,7 +785,7 @@ NandcSetMode:
tst w0, 6
ldr x2, [x1,#:lo12:.LANCHOR0+128]
ldr w1, [x2]
- beq .L73
+ beq .L99
and w0, w0, 4
orr w1, w1, 24576
cmp w0, wzr
@@ -611,10 +802,10 @@ NandcSetMode:
csel w1, w3, w1, ne
mov w0, 39
str w0, [x2,308]
- b .L75
-.L73:
+ b .L101
+.L99:
and w1, w1, -8193
-.L75:
+.L101:
str w1, [x2]
mov w0, 0
ret
@@ -653,149 +844,6 @@ NandcFlashDeCs:
ret
.size NandcFlashDeCs, .-NandcFlashDeCs
.align 2
- .global NandcDelayns
- .type NandcDelayns, %function
-NandcDelayns:
- sub sp, sp, #16
- lsr w0, w0, 4
- str w0, [sp,12]
-.L81:
- ldr w0, [sp,12]
- sub w1, w0, #1
- str w1, [sp,12]
- cbnz w0, .L81
- add sp, sp, 16
- ret
- .size NandcDelayns, .-NandcDelayns
- .align 2
- .global FlashReadStatus
- .type FlashReadStatus, %function
-FlashReadStatus:
- adrp x1, .LANCHOR0
- ubfiz x0, x0, 4, 8
- stp x29, x30, [sp, -32]!
- add x1, x1, :lo12:.LANCHOR0
- add x1, x1, 24
- add x29, sp, 0
- add x2, x1, x0
- str x19, [sp,16]
- ldrb w2, [x2,8]
- ldr x19, [x1,x0]
- mov w0, 112
- add x19, x19, x2, lsl 8
- str w0, [x19,2056]
- mov w0, 80
- bl NandcDelayns
- ldr w0, [x19,2048]
- ldr x19, [sp,16]
- ldp x29, x30, [sp], 32
- ret
- .size FlashReadStatus, .-FlashReadStatus
- .align 2
- .global ToshibaSetRRPara
- .type ToshibaSetRRPara, %function
-ToshibaSetRRPara:
- uxtb w1, w1
- mov w3, 5
- add w2, w1, 1
- stp x29, x30, [sp, -96]!
- smull x3, w2, w3
- adrp x2, .LANCHOR1
- add x29, sp, 0
- add x2, x2, :lo12:.LANCHOR1
- stp x21, x22, [sp,32]
- stp x23, x24, [sp,48]
- add x23, x2, x1, sxtw
- add x24, x2, 256
- add x21, x2, 304
- stp x19, x20, [sp,16]
- stp x25, x26, [sp,64]
- str x27, [sp,80]
- mov x22, x0
- add x24, x24, x3
- add x21, x21, x3
- mov x20, 0
- adrp x26, .LANCHOR0
- mov w27, 85
- mov x19, x2
-.L85:
- add x25, x26, :lo12:.LANCHOR0
- ldrb w0, [x25,753]
- cmp w0, w20
- bls .L91
- add x0, x19, 256
- str w27, [x22,8]
- ldrsb w0, [x20,x0]
- str w0, [x22,4]
- mov w0, 200
- bl NandcDelayns
- ldrb w0, [x25,752]
- cmp w0, 34
- bne .L86
- ldrsb w0, [x24,x20]
- b .L90
-.L86:
- cmp w0, 35
- bne .L88
- ldrsb w0, [x21,x20]
- b .L90
-.L88:
- ldrsb w0, [x23,400]
-.L90:
- str w0, [x22]
- add x20, x20, 1
- b .L85
-.L91:
- ldp x19, x20, [sp,16]
- ldp x21, x22, [sp,32]
- ldp x23, x24, [sp,48]
- ldp x25, x26, [sp,64]
- ldr x27, [sp,80]
- ldp x29, x30, [sp], 96
- ret
- .size ToshibaSetRRPara, .-ToshibaSetRRPara
- .align 2
- .global SamsungSetRRPara
- .type SamsungSetRRPara, %function
-SamsungSetRRPara:
- stp x29, x30, [sp, -64]!
- adrp x2, .LANCHOR1
- add x2, x2, :lo12:.LANCHOR1
- add x29, sp, 0
- add x1, x2, x1, uxtb 2
- stp x19, x20, [sp,16]
- stp x21, x22, [sp,32]
- stp x23, x24, [sp,48]
- mov x21, x0
- add x22, x1, 412
- mov x20, 0
- adrp x23, .LANCHOR0
- mov w24, 161
- mov x19, x2
-.L93:
- add x0, x23, :lo12:.LANCHOR0
- ldrb w0, [x0,753]
- cmp w0, w20
- bls .L95
- str w24, [x21,8]
- add x0, x19, 408
- str wzr, [x21]
- ldrsb w0, [x20,x0]
- str w0, [x21]
- ldrsb w0, [x22,x20]
- add x20, x20, 1
- str w0, [x21]
- mov w0, 300
- bl NandcDelayns
- b .L93
-.L95:
- ldp x19, x20, [sp,16]
- ldp x21, x22, [sp,32]
- ldp x23, x24, [sp,48]
- ldp x29, x30, [sp], 64
- ret
- .size SamsungSetRRPara, .-SamsungSetRRPara
- .align 2
.global HynixSetRRPara
.type HynixSetRRPara, %function
HynixSetRRPara:
@@ -806,72 +854,77 @@ HynixSetRRPara:
str x27, [sp,80]
add x19, x20, :lo12:.LANCHOR0
uxtb w27, w1
- stp x21, x22, [sp,32]
stp x25, x26, [sp,64]
+ stp x21, x22, [sp,32]
stp x23, x24, [sp,48]
- uxtb x25, w0
- mov x22, x2
+ uxtb x24, w0
+ mov x21, x2
ldr x0, [x19,744]
- mov x26, x25
- uxtb w21, w3
- add x19, x19, 760
+ mov x26, x24
+ uxtb w25, w3
ldrb w0, [x0,19]
cmp w0, 6
- bne .L97
- add x19, x19, x25, lsl 6
- lsl w4, w21, 2
- add x19, x19, 20
- b .L102
-.L97:
+ bne .L107
+ add x19, x19, x24, lsl 6
+ lsl w4, w25, 2
+ add x19, x19, 780
+ b .L113
+.L107:
cmp w0, 7
- bne .L99
+ bne .L109
mov x2, 160
mov w4, 10
- madd x19, x25, x2, x19
- mul w4, w21, w4
- add x19, x19, 28
-.L102:
+ madd x19, x24, x2, x19
+ mul w4, w25, w4
+ add x19, x19, 788
+.L113:
add x19, x19, x4, sxtw
- b .L98
-.L99:
- lsl x4, x25, 3
- add x4, x4, x21, sxtw
+ b .L108
+.L109:
+ cmp w0, 8
+ bne .L110
+ add x19, x19, 788
+ add w4, w25, w25, lsl 2
+ b .L113
+.L110:
+ lsl x4, x24, 3
+ add x4, x4, x25, sxtw
add x19, x19, x4, lsl 3
- add x19, x19, 20
-.L98:
+ add x19, x19, 780
+.L108:
add x2, x20, :lo12:.LANCHOR0
- lsl x0, x25, 4
+ lsl x0, x24, 4
add x2, x2, 24
uxtb x27, w27
add x1, x2, x0
- ldr x23, [x2,x0]
+ ldr x22, [x2,x0]
mov w0, w26
- ldrb w24, [x1,8]
+ ldrb w23, [x1,8]
bl NandcFlashCs
- ubfiz x24, x24, 8, 8
+ ubfiz x23, x23, 8, 8
mov w0, 54
- add x23, x23, x24
- mov x24, 0
- str w0, [x23,2056]
-.L100:
- cmp x24, x27
- beq .L103
- ldrb w0, [x22,x24]
- str w0, [x23,2052]
- mov w0, 200
- bl NandcDelayns
- ldrsb w0, [x19,x24]
- add x24, x24, 1
- str w0, [x23,2048]
- b .L100
-.L103:
+ add x22, x22, x23
+ mov x23, 0
+ str w0, [x22,2056]
+.L111:
+ cmp x23, x27
+ beq .L114
+ ldrb w0, [x21,x23]
+ str w0, [x22,2052]
+ mov x0, 1000
+ bl __const_udelay
+ ldrsb w0, [x19,x23]
+ add x23, x23, 1
+ str w0, [x22,2048]
+ b .L111
+.L114:
add x20, x20, :lo12:.LANCHOR0
mov w0, 22
- add x25, x20, x25
- str w0, [x23,2056]
+ add x24, x20, x24
+ str w0, [x22,2056]
mov w0, w26
bl NandcFlashDeCs
- strb w21, [x25,1616]
+ strb w25, [x24,1616]
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -895,117 +948,31 @@ FlashSetReadRetryDefault:
ldrb w0, [x0,19]
sub w0, w0, #1
uxtb w0, w0
- cmp w0, 6
- bhi .L104
+ cmp w0, 7
+ bhi .L115
add x21, x19, 1620
add x22, x19, 764
-.L109:
+.L120:
lsl x1, x20, 3
uxtb w0, w20
ldrb w1, [x1,x21]
cmp w1, 173
- bne .L106
+ bne .L117
ldrb w1, [x19,761]
mov x2, x22
mov w3, 0
bl HynixSetRRPara
-.L106:
+.L117:
add x20, x20, 1
cmp x20, 4
- bne .L109
-.L104:
+ bne .L120
+.L115:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x29, x30, [sp], 48
ret
.size FlashSetReadRetryDefault, .-FlashSetReadRetryDefault
.align 2
- .global FlashReadStatusEN
- .type FlashReadStatusEN, %function
-FlashReadStatusEN:
- stp x29, x30, [sp, -32]!
- adrp x3, .LANCHOR0
- ubfiz x0, x0, 4, 8
- add x4, x3, :lo12:.LANCHOR0
- add x29, sp, 0
- add x5, x4, 24
- stp x19, x20, [sp,16]
- add x6, x5, x0
- uxtb w2, w2
- ldr x20, [x5,x0]
- ldr x0, [x4,744]
- ldrb w19, [x6,8]
- ldrb w0, [x0,8]
- cmp w0, 2
- bne .L112
- add x4, x4, 88
- cbnz w2, .L113
- ldrb w2, [x4,13]
- b .L121
-.L113:
- ldrb w2, [x4,14]
-.L121:
- add x0, x19, 8
- add x3, x3, :lo12:.LANCHOR0
- add x0, x20, x0, lsl 8
- str w2, [x0,8]
- mov w2, 0
- ldrb w4, [x3,103]
- cbz w4, .L116
- add x3, x19, 8
- lsl x3, x3, 8
-.L120:
- cmp w2, w4
- bcs .L116
- add x5, x20, x3
- lsl w0, w2, 3
- lsr w0, w1, w0
- add w2, w2, 1
- and w0, w0, 255
- str w0, [x5,4]
- b .L120
-.L112:
- add x0, x19, 8
- mov w1, 112
- add x0, x20, x0, lsl 8
- str w1, [x0,8]
-.L116:
- add x19, x19, 8
- mov w0, 80
- lsl x19, x19, 8
- bl NandcDelayns
- ldr w0, [x20,x19]
- ldp x19, x20, [sp,16]
- ldp x29, x30, [sp], 32
- uxtb w0, w0
- ret
- .size FlashReadStatusEN, .-FlashReadStatusEN
- .align 2
- .global FlashWaitReadyEN
- .type FlashWaitReadyEN, %function
-FlashWaitReadyEN:
- stp x29, x30, [sp, -48]!
- add x29, sp, 0
- stp x19, x20, [sp,16]
- str x21, [sp,32]
- uxtb w19, w0
- mov w20, w1
- uxtb w21, w2
-.L126:
- mov w0, w19
- mov w1, w20
- mov w2, w21
- bl FlashReadStatusEN
- cmp w0, 255
- mov w3, w0
- beq .L126
- tbz x3, 6, .L126
- ldp x19, x20, [sp,16]
- ldr x21, [sp,32]
- ldp x29, x30, [sp], 48
- ret
- .size FlashWaitReadyEN, .-FlashWaitReadyEN
- .align 2
.global FlashWaitCmdDone
.type FlashWaitCmdDone, %function
FlashWaitCmdDone:
@@ -1023,9 +990,9 @@ FlashWaitCmdDone:
add x19, x0, x1
ldrb w21, [x0,x1]
ldr x0, [x19,8]
- cbz x0, .L131
+ cbz x0, .L124
mov w0, w21
- add x20, x20, 708
+ add x20, x20, 712
bl NandcFlashCs
ldr w0, [x20,w22,sxtw 2]
ldr w1, [x19,4]
@@ -1041,10 +1008,10 @@ FlashWaitCmdDone:
str w0, [x1]
str xzr, [x19,8]
ldr x1, [x19,16]
- cbz x1, .L131
+ cbz x1, .L124
str w0, [x1]
str xzr, [x19,16]
-.L131:
+.L124:
mov w0, 0
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -1052,6 +1019,50 @@ FlashWaitCmdDone:
ret
.size FlashWaitCmdDone, .-FlashWaitCmdDone
.align 2
+ .global NandcDelayns
+ .type NandcDelayns, %function
+NandcDelayns:
+ stp x29, x30, [sp, -16]!
+ uxtw x0, w0
+ add x29, sp, 0
+ bl __ndelay
+ mov w0, 0
+ ldp x29, x30, [sp], 16
+ ret
+ .size NandcDelayns, .-NandcDelayns
+ .align 2
+ .global NandcWaitFlashReadyNoDelay
+ .type NandcWaitFlashReadyNoDelay, %function
+NandcWaitFlashReadyNoDelay:
+ stp x29, x30, [sp, -48]!
+ adrp x1, .LANCHOR0
+ ubfiz x0, x0, 4, 8
+ add x1, x1, :lo12:.LANCHOR0
+ add x29, sp, 0
+ add x1, x1, 24
+ stp x19, x20, [sp,16]
+ mov w19, 34464
+ ldr x20, [x1,x0]
+ movk w19, 0x1, lsl 16
+.L132:
+ ldr w0, [x20]
+ str w0, [x29,40]
+ ldr w0, [x29,40]
+ tbnz x0, 9, .L133
+ mov x0, 50
+ bl __const_udelay
+ subs w19, w19, #1
+ bne .L132
+ mov w0, -1
+ b .L131
+.L133:
+ mov w0, 0
+.L131:
+ ldp x19, x20, [sp,16]
+ ldp x29, x30, [sp], 48
+ ret
+ .size NandcWaitFlashReadyNoDelay, .-NandcWaitFlashReadyNoDelay
+ .align 2
.global NandcWaitFlashReady
.type NandcWaitFlashReady, %function
NandcWaitFlashReady:
@@ -1065,20 +1076,22 @@ NandcWaitFlashReady:
mov w19, 34464
ldr x20, [x1,x0]
movk w19, 0x1, lsl 16
-.L138:
- mov w0, 100
- bl NandcDelayns
+ mov x0, 750
+ bl __const_udelay
+.L137:
ldr w0, [x20]
str w0, [x29,40]
ldr w0, [x29,40]
- tbnz x0, 9, .L139
+ tbnz x0, 9, .L138
+ mov x0, 50
+ bl __const_udelay
subs w19, w19, #1
- bne .L138
+ bne .L137
mov w0, -1
- b .L137
-.L139:
+ b .L136
+.L138:
mov w0, 0
-.L137:
+.L136:
ldp x19, x20, [sp,16]
ldp x29, x30, [sp], 48
ret
@@ -1115,6 +1128,95 @@ FlashReset:
ret
.size FlashReset, .-FlashReset
.align 2
+ .global flash_enter_slc_mode
+ .type flash_enter_slc_mode, %function
+flash_enter_slc_mode:
+ stp x29, x30, [sp, -32]!
+ add x29, sp, 0
+ stp x19, x20, [sp,16]
+ adrp x19, .LANCHOR0
+ uxtb w20, w0
+ add x19, x19, :lo12:.LANCHOR0
+ ldrb w0, [x19,196]
+ cbz w0, .L141
+ mov w0, w20
+ add x19, x19, 24
+ bl NandcFlashCs
+ sbfiz x0, x20, 4, 32
+ add x1, x19, x0
+ ldr x19, [x19,x0]
+ mov w0, 239
+ ldrb w1, [x1,8]
+ add x19, x19, x1, lsl 8
+ str w0, [x19,2056]
+ mov w0, 145
+ str w0, [x19,2052]
+ mov x0, 500
+ bl __const_udelay
+ str wzr, [x19,2048]
+ mov w0, 1
+ str w0, [x19,2048]
+ str wzr, [x19,2048]
+ mov x0, 500
+ str wzr, [x19,2048]
+ bl __const_udelay
+ mov w0, w20
+ bl NandcWaitFlashReadyNoDelay
+ mov w0, 218
+ str w0, [x19,2056]
+ mov w0, w20
+ bl NandcWaitFlashReady
+.L141:
+ ldp x19, x20, [sp,16]
+ ldp x29, x30, [sp], 32
+ ret
+ .size flash_enter_slc_mode, .-flash_enter_slc_mode
+ .align 2
+ .global flash_exit_slc_mode
+ .type flash_exit_slc_mode, %function
+flash_exit_slc_mode:
+ stp x29, x30, [sp, -32]!
+ add x29, sp, 0
+ stp x19, x20, [sp,16]
+ adrp x19, .LANCHOR0
+ uxtb w20, w0
+ add x19, x19, :lo12:.LANCHOR0
+ ldrb w0, [x19,196]
+ cbz w0, .L146
+ mov w0, w20
+ add x19, x19, 24
+ bl NandcFlashCs
+ sbfiz x0, x20, 4, 32
+ add x1, x19, x0
+ ldr x19, [x19,x0]
+ mov w0, 239
+ ldrb w1, [x1,8]
+ add x19, x19, x1, lsl 8
+ str w0, [x19,2056]
+ mov w0, 145
+ str w0, [x19,2052]
+ mov x0, 500
+ bl __const_udelay
+ mov w0, 2
+ str w0, [x19,2048]
+ mov w0, 1
+ str w0, [x19,2048]
+ str wzr, [x19,2048]
+ mov x0, 500
+ str wzr, [x19,2048]
+ bl __const_udelay
+ mov w0, w20
+ bl NandcWaitFlashReadyNoDelay
+ mov w0, 223
+ str w0, [x19,2056]
+ mov w0, w20
+ bl NandcWaitFlashReady
+.L146:
+ ldp x19, x20, [sp,16]
+ ldp x29, x30, [sp], 32
+ ret
+ .size flash_exit_slc_mode, .-flash_exit_slc_mode
+ .align 2
.global FlashEraseBlock
.type FlashEraseBlock, %function
FlashEraseBlock:
@@ -1166,68 +1268,68 @@ FlashSetInterfaceMode:
mov w13, 32
mov w14, 5
uxtb w5, w2
-.L154:
+.L163:
ldrb w3, [x6,x4]
ldr x1, [x7]
cmp w3, 152
ldrb w2, [x7,8]
- beq .L144
+ beq .L153
cmp w3, 69
- beq .L144
+ beq .L153
cmp w3, 173
- beq .L144
+ beq .L153
cmp w3, 44
- bne .L145
-.L144:
+ bne .L154
+.L153:
cmp w0, 1
- bne .L147
- cbz w11, .L145
+ bne .L156
+ cbz w11, .L154
ubfiz x2, x2, 8, 8
cmp w3, 173
add x1, x1, x2
str w8, [x1,2056]
- bne .L148
+ bne .L157
str w0, [x1,2052]
- b .L165
-.L148:
+ b .L174
+.L157:
cmp w3, 44
- bne .L150
+ bne .L159
str w0, [x1,2052]
str w14, [x1,2048]
- b .L152
-.L150:
+ b .L161
+.L159:
str w9, [x1,2052]
str w0, [x1,2048]
- b .L152
-.L147:
- cbz w5, .L145
+ b .L161
+.L156:
+ cbz w5, .L154
ubfiz x2, x2, 8, 8
cmp w3, 173
add x1, x1, x2
str w8, [x1,2056]
- bne .L151
+ bne .L160
str w10, [x1,2052]
str w13, [x1,2048]
- b .L152
-.L151:
+ b .L161
+.L160:
cmp w3, 44
- bne .L153
+ bne .L162
str w10, [x1,2052]
str w12, [x1,2048]
- b .L152
-.L153:
+ b .L161
+.L162:
str w9, [x1,2052]
-.L165:
+.L174:
str wzr, [x1,2048]
-.L152:
+.L161:
str wzr, [x1,2048]
str wzr, [x1,2048]
str wzr, [x1,2048]
-.L145:
+.L154:
add x6, x6, 8
add x7, x7, 16
cmp x6, 32
- bne .L154
+ bne .L163
mov w0, 0
bl NandcWaitFlashReady
mov w0, 0
@@ -1307,8 +1409,8 @@ SandiskProgTestBadBlock:
bl NandcWaitFlashReady
mov w0, 112
str w0, [x19,2056]
- mov w0, 80
- bl NandcDelayns
+ mov x0, 400
+ bl __const_udelay
ldr w0, [x19,2048]
ldr x19, [sp,16]
and w0, w0, 1
@@ -1329,8 +1431,8 @@ SandiskSetRRPara:
str w0, [x20,8]
mov w0, 17
str w0, [x20,4]
- mov w0, 200
- bl NandcDelayns
+ mov x0, 1000
+ bl __const_udelay
mov w1, 5
adrp x2, .LANCHOR1
add x2, x2, :lo12:.LANCHOR1
@@ -1341,23 +1443,23 @@ SandiskSetRRPara:
add x0, x0, x1
add x1, x2, x1
mov x2, 0
-.L169:
+.L178:
add x3, x5, :lo12:.LANCHOR0
- ldrb w4, [x3,753]
+ ldrb w4, [x3,121]
cmp w4, w2
- bls .L174
- ldrb w3, [x3,752]
+ bls .L183
+ ldrb w3, [x3,120]
cmp w3, 67
- bne .L170
+ bne .L179
ldrsb w3, [x0,x2]
- b .L173
-.L170:
+ b .L182
+.L179:
ldrsb w3, [x1,x2]
-.L173:
+.L182:
str w3, [x20]
add x2, x2, 1
- b .L169
-.L174:
+ b .L178
+.L183:
mov w0, 0
bl NandcWaitFlashReady
ldp x19, x20, [sp,16]
@@ -1387,8 +1489,8 @@ micron_auto_read_calibration_config:
str w0, [x19,2056]
mov w0, 150
str w0, [x19,2052]
- mov w0, 200
- bl NandcDelayns
+ mov x0, 1000
+ bl __const_udelay
ldr x1, [x29,40]
str w1, [x19,2048]
str wzr, [x19,2048]
@@ -1416,9 +1518,9 @@ FlashEraseSLc2KBlocks:
mov w22, 0
add x25, x21, 1652
add x23, x23, :lo12:.LC0
-.L177:
+.L186:
cmp w22, w24
- beq .L186
+ beq .L195
add x2, x29, 88
sub w4, w24, w22
mov x0, x20
@@ -1428,11 +1530,11 @@ FlashEraseSLc2KBlocks:
ldr w2, [x29,92]
ldrb w0, [x21,1845]
cmp w2, w0
- bcc .L178
+ bcc .L187
mov w0, -1
str w0, [x20]
- b .L179
-.L178:
+ b .L188
+.L187:
uxtw x2, w2
add x0, x21, x2
ldrb w19, [x0,1848]
@@ -1465,24 +1567,24 @@ FlashEraseSLc2KBlocks:
ldr w1, [x29,88]
mov w0, w19
bl FlashReadStatus
- tbz x0, 0, .L180
+ tbz x0, 0, .L189
mov w0, -1
str w0, [x20]
-.L180:
+.L189:
ldr w0, [x20]
cmn w0, #1
- bne .L181
+ bne .L190
ldr w1, [x29,88]
mov x0, x23
bl printk
-.L181:
+.L190:
mov w0, w19
bl NandcFlashDeCs
-.L179:
+.L188:
add w22, w22, 1
add x20, x20, 56
- b .L177
-.L186:
+ b .L186
+.L195:
mov w0, 0
ldr x25, [sp,64]
ldp x19, x20, [sp,16]
@@ -1517,7 +1619,7 @@ FlashReadDpCmd:
cmp w0, 1
and w5, w1, 255
lsr w0, w1, 16
- bne .L188
+ bne .L197
add x19, x6, x19, lsl 8
ldrb w2, [x3,8]
str x1, [x29,72]
@@ -1540,8 +1642,8 @@ FlashReadDpCmd:
str w20, [x19,2052]
str w0, [x19,2056]
ldr x1, [x29,72]
- b .L189
-.L188:
+ b .L198
+.L197:
add x19, x6, x19, lsl 8
ldrb w2, [x3,8]
str w2, [x19,2056]
@@ -1555,7 +1657,7 @@ FlashReadDpCmd:
str w22, [x19,2052]
str w20, [x19,2052]
str w0, [x19,2056]
-.L189:
+.L198:
mov w0, w21
bl FlashSetRandomizer
ldr x23, [sp,48]
@@ -1576,25 +1678,25 @@ ftl_flash_de_init:
adrp x19, .LANCHOR0
bl FlashSetReadRetryDefault
add x0, x19, :lo12:.LANCHOR0
- ldr w1, [x0,1856]
- mov w0, 12336
- movk w0, 0x5638, lsl 16
- cmp w1, w0
- bne .L191
+ ldr w0, [x0,1856]
+ cbz w0, .L200
mov w0, 0
bl flash_enter_slc_mode
-.L191:
+ b .L201
+.L200:
+ bl flash_exit_slc_mode
+.L201:
add x20, x19, :lo12:.LANCHOR0
ldrb w0, [x20,1860]
- cbz w0, .L192
+ cbz w0, .L202
ldrb w0, [x20,1844]
- tbz x0, 0, .L192
+ tbz x0, 0, .L202
mov w0, 1
bl FlashSetInterfaceMode
mov w0, 1
bl NandcSetMode
strb wzr, [x20,1860]
-.L192:
+.L202:
add x19, x19, :lo12:.LANCHOR0
ldr x0, [x19,24]
str wzr, [x0,336]
@@ -1631,37 +1733,37 @@ NandcTimeCfg:
add x1, x1, :lo12:.LANCHOR0
sdiv w0, w0, w2
cmp w0, 250
- ble .L201
+ ble .L211
ldr x0, [x1,128]
mov w1, 8354
- b .L208
-.L201:
+ b .L218
+.L211:
cmp w0, 220
- ble .L203
+ ble .L213
ldr x0, [x1,128]
- b .L209
-.L203:
+ b .L219
+.L213:
cmp w0, 185
- ble .L204
+ ble .L214
ldr x0, [x1,128]
mov w1, 4226
- b .L208
-.L204:
+ b .L218
+.L214:
cmp w0, 160
ldr x0, [x1,128]
- ble .L205
+ ble .L215
mov w1, 4194
- b .L208
-.L205:
+ b .L218
+.L215:
cmp w19, 35
mov w1, 4193
- bls .L208
+ bls .L218
cmp w19, 99
mov w1, 4225
- bls .L208
-.L209:
+ bls .L218
+.L219:
mov w1, 8322
-.L208:
+.L218:
str w1, [x0,4]
ldr x19, [sp,16]
ldp x29, x30, [sp], 32
@@ -1677,15 +1779,15 @@ FlashTimingCfg:
and w1, w1, -33
cmp w1, 1
add x29, sp, 0
- bls .L211
+ bls .L221
mov w1, 8322
cmp w0, w1
- bne .L212
-.L211:
+ bne .L222
+.L221:
adrp x1, .LANCHOR0+128
ldr x1, [x1,#:lo12:.LANCHOR0+128]
str w0, [x1,4]
-.L212:
+.L222:
adrp x0, .LANCHOR1+493
ldrb w0, [x0,#:lo12:.LANCHOR1+493]
bl NandcTimeCfg
@@ -1722,12 +1824,12 @@ NandcInit:
ubfx x3, x3, 16, 4
str w3, [x1,1868]
ldr w3, [x0,352]
- str w3, [x1,1856]
+ str w3, [x1,1872]
cmp w3, 2049
- bne .L214
+ bne .L224
mov w3, 8
str w3, [x1,1868]
-.L214:
+.L224:
add x19, x19, :lo12:.LANCHOR0
str w2, [x0]
ldr x0, [x19,128]
@@ -1742,12 +1844,12 @@ NandcInit:
str w1, [x0,304]
mov w0, 36864
bl ftl_malloc
- str wzr, [x19,1920]
- str x0, [x19,1872]
- str x0, [x19,1880]
- add x0, x0, 32768
str wzr, [x19,1928]
+ str x0, [x19,1880]
str x0, [x19,1888]
+ add x0, x0, 32768
+ str wzr, [x19,1936]
+ str x0, [x19,1896]
ldr x19, [sp,16]
ldp x29, x30, [sp], 32
ret
@@ -1785,24 +1887,24 @@ NandcBchSel:
mov w3, 1
cmp w0, 16
ldr x2, [x1,128]
- str w0, [x1,1932]
+ str w0, [x1,1940]
mov w1, 4096
str w3, [x2,8]
- bne .L217
-.L220:
+ bne .L227
+.L230:
and w1, w1, -17
- b .L218
-.L217:
+ b .L228
+.L227:
cmp w0, 24
- bne .L219
+ bne .L229
orr w1, w1, 16
- b .L218
-.L219:
+ b .L228
+.L229:
cmp w0, 40
orr w1, w1, 262144
orr w1, w1, 16
- beq .L220
-.L218:
+ beq .L230
+.L228:
orr w1, w1, 1
str w1, [x2,12]
ret
@@ -1812,10 +1914,10 @@ NandcBchSel:
.type FlashBchSel, %function
FlashBchSel:
stp x29, x30, [sp, -16]!
- adrp x1, .LANCHOR0+1936
+ adrp x1, .LANCHOR0+1944
uxtb w0, w0
add x29, sp, 0
- strb w0, [x1,#:lo12:.LANCHOR0+1936]
+ strb w0, [x1,#:lo12:.LANCHOR0+1944]
bl NandcBchSel
ldp x29, x30, [sp], 16
ret
@@ -1828,60 +1930,61 @@ ftl_flash_resume:
add x29, sp, 0
stp x19, x20, [sp,16]
adrp x20, .LANCHOR0
- add x1, x20, :lo12:.LANCHOR0
- stp x21, x22, [sp,32]
- add x19, x1, 1620
+ str x21, [sp,32]
+ add x0, x20, :lo12:.LANCHOR0
mov x21, 0
- ldr x0, [x1,128]
- ldr w2, [x1,136]
- ldr w22, [x1,152]
- str w2, [x0]
- ldr w2, [x1,140]
- ldr x0, [x1,128]
- str w2, [x0,4]
- ldr w0, [x1,144]
- ldr x2, [x1,128]
- str w0, [x2,8]
- ldr w0, [x1,148]
- str w0, [x2,12]
- str w22, [x2,304]
- ldr w0, [x1,156]
- str w0, [x2,308]
- ldr w0, [x1,160]
- str w0, [x2,336]
- ldr w0, [x1,164]
- str w0, [x2,344]
-.L227:
+ add x19, x0, 1620
+ ldr x1, [x0,128]
+ ldr w2, [x0,136]
+ str w2, [x1]
+ ldr w2, [x0,140]
+ ldr x1, [x0,128]
+ str w2, [x1,4]
+ ldr w2, [x0,144]
+ ldr x1, [x0,128]
+ str w2, [x1,8]
+ ldr w2, [x0,148]
+ str w2, [x1,12]
+ ldr w2, [x0,152]
+ str w2, [x1,304]
+ ldr w2, [x0,156]
+ str w2, [x1,308]
+ ldr w2, [x0,160]
+ str w2, [x1,336]
+ ldr w2, [x0,164]
+ str w2, [x1,344]
+.L237:
lsl x0, x21, 3
- ldrb w1, [x0,x19]
- sub w1, w1, #1
- uxtb w1, w1
- cmp w1, 253
- bhi .L226
+ ldrb w0, [x0,x19]
+ sub w0, w0, #1
+ uxtb w0, w0
+ cmp w0, 253
+ bhi .L236
mov w0, w21
bl FlashReset
-.L226:
+.L236:
add x21, x21, 1
cmp x21, 4
- bne .L227
+ bne .L237
add x19, x20, :lo12:.LANCHOR0
ldrb w0, [x19,1860]
- cbz w0, .L228
+ cbz w0, .L238
mov w0, 1
bl NandcSetMode
ldrb w0, [x19,1844]
bl FlashSetInterfaceMode
ldrb w0, [x19,1844]
bl NandcSetMode
- lsr w0, w22, 8
+ ldr w0, [x19,152]
+ lsr w0, w0, 8
bl NandcSetDdrPara
-.L228:
+.L238:
add x20, x20, :lo12:.LANCHOR0
ldr x0, [x20,744]
ldrb w0, [x0,20]
bl FlashBchSel
+ ldr x21, [sp,32]
ldp x19, x20, [sp,16]
- ldp x21, x22, [sp,32]
ldp x29, x30, [sp], 48
ret
.size ftl_flash_resume, .-ftl_flash_resume
@@ -1920,18 +2023,18 @@ NandcIqrWaitFlashReady:
orr w0, w0, 2
str w0, [x19,364]
ldr w0, [x19]
- tbnz x0, 9, .L236
+ tbnz x0, 9, .L246
mov x0, x19
bl wait_for_nand_flash_ready
- b .L235
-.L236:
+ b .L245
+.L246:
ldr w0, [x19,368]
orr w0, w0, 2
str w0, [x19,368]
ldr w0, [x19,364]
and w0, w0, -3
str w0, [x19,364]
-.L235:
+.L245:
ldr x19, [sp,16]
ldp x29, x30, [sp], 32
ret
@@ -1955,17 +2058,17 @@ FlashEraseBlocks:
mov w20, 0
stp x21, x22, [sp,32]
stp x25, x26, [sp,64]
- cbz w2, .L239
+ cbz w2, .L249
mov w1, w23
bl FlashEraseSLc2KBlocks
- b .L240
-.L239:
+ b .L250
+.L249:
mov w28, 56
add x25, x19, 1652
mov x26, 24
-.L270:
+.L280:
cmp w20, w23
- bcs .L271
+ bcs .L281
umull x5, w20, w28
mov w1, 0
sub w4, w23, w20
@@ -1980,32 +2083,32 @@ FlashEraseBlocks:
ldr w0, [x29,124]
ldr x5, [x29,96]
cmp w0, w1
- bcc .L241
+ bcc .L251
mov w0, -1
str w0, [x24,x5]
- b .L242
-.L241:
- ldrb w1, [x19,1937]
+ b .L252
+.L251:
+ ldrb w1, [x19,1945]
cmp w1, wzr
uxtw x1, w0
csel w22, w22, wzr, ne
madd x1, x1, x26, x25
ldr x1, [x1,8]
- cbz x1, .L244
+ cbz x1, .L254
bl FlashWaitCmdDone
-.L244:
+.L254:
ldr w0, [x29,124]
ldr w1, [x29,120]
madd x2, x0, x26, x25
str x21, [x2,8]
str xzr, [x2,16]
str w1, [x2,4]
- cbz w22, .L245
+ cbz w22, .L255
add w1, w20, 1
umull x1, w1, w28
add x1, x24, x1
str x1, [x2,16]
-.L245:
+.L255:
add x1, x19, x0
mul x0, x0, x26
ldrb w21, [x1,1848]
@@ -2013,18 +2116,18 @@ FlashEraseBlocks:
mov w0, w21
bl NandcFlashCs
cmp w27, 1
- bne .L246
- ldrb w0, [x19,120]
- cbz w0, .L246
+ bne .L256
+ ldrb w0, [x19,196]
+ cbz w0, .L256
mov w0, w21
bl flash_enter_slc_mode
- b .L247
-.L246:
+ b .L257
+.L256:
mov w0, w21
bl flash_exit_slc_mode
-.L247:
+.L257:
ldr w1, [x29,124]
- add x0, x19, 708
+ add x0, x19, 712
add w20, w20, w22
ldr w0, [x0,x1,lsl 2]
ldr w1, [x29,120]
@@ -2038,10 +2141,10 @@ FlashEraseBlocks:
bl FlashEraseCmd
mov w0, w21
bl NandcFlashDeCs
-.L242:
+.L252:
add w20, w20, 1
- b .L270
-.L271:
+ b .L280
+.L281:
ldr x0, [x29,104]
mov x20, 0
mov x22, 24
@@ -2049,42 +2152,42 @@ FlashEraseBlocks:
add x21, x19, 1652
ldr x0, [x19,128]
bl NandcIqrWaitFlashReady
-.L249:
+.L259:
ldrb w0, [x19,1845]
cmp w0, w20
- bls .L272
+ bls .L282
mov w0, w20
bl FlashWaitCmdDone
cmp w27, 1
- bne .L250
- ldrb w0, [x19,120]
- cbz w0, .L250
+ bne .L260
+ ldrb w0, [x19,196]
+ cbz w0, .L260
mul x0, x20, x22
ldrb w0, [x0,x21]
bl flash_exit_slc_mode
-.L250:
+.L260:
add x20, x20, 1
- b .L249
-.L272:
- ldr w0, [x19,1940]
- cbnz w0, .L252
-.L254:
+ b .L259
+.L282:
+ ldr w0, [x19,1948]
+ cbnz w0, .L262
+.L264:
mov w0, 0
- b .L240
-.L252:
+ b .L250
+.L262:
ldrb w0, [x19,1620]
cmp w0, 69
- bne .L254
+ bne .L264
mov x0, 0
mov x1, 56
-.L253:
+.L263:
cmp w23, w0
- bls .L254
+ bls .L264
mul x2, x0, x1
add x0, x0, 1
str wzr, [x24,x2]
- b .L253
-.L240:
+ b .L263
+.L250:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -2134,11 +2237,11 @@ NandcSendDumpDataStart:
.type NandcSendDumpDataDone, %function
NandcSendDumpDataDone:
sub sp, sp, #16
-.L276:
+.L286:
ldr w1, [x0,8]
str w1, [sp,8]
ldr w1, [sp,8]
- tbz x1, 20, .L276
+ tbz x1, 20, .L286
add sp, sp, 16
ret
.size NandcSendDumpDataDone, .-NandcSendDumpDataDone
@@ -2177,7 +2280,7 @@ NandcXferStart:
cmp w0, 3
orr w20, w20, 1024
bfi w20, w3, 4, 1
- bls .L280
+ bls .L290
ldr w0, [x21,16]
cmp x5, xzr
str w0, [x29,88]
@@ -2185,11 +2288,11 @@ NandcXferStart:
ldr w0, [x29,88]
and w0, w0, -5
str w0, [x29,88]
- cbnz w7, .L294
- cbz x22, .L281
-.L294:
- cbnz w25, .L283
-.L291:
+ cbnz w7, .L304
+ cbz x22, .L291
+.L304:
+ cbnz w25, .L293
+.L301:
mov x0, x21
add w23, w23, 1
asr w23, w23, 1
@@ -2202,62 +2305,62 @@ NandcXferStart:
orr w0, w0, 1
str w0, [x21,364]
mov x0, x22
- cbnz x22, .L285
+ cbnz x22, .L295
add x0, x19, :lo12:.LANCHOR0
- ldr x0, [x0,1880]
- b .L285
-.L283:
+ ldr x0, [x0,1888]
+ b .L295
+.L293:
add x1, x19, :lo12:.LANCHOR0
mov w4, 128
mov w2, 0
lsr w8, w23, 1
mov w3, w2
mov w9, -1
- ldr w0, [x1,1932]
+ ldr w0, [x1,1940]
cmp w0, 25
mov w0, 64
csel w4, w0, w4, cc
-.L287:
+.L297:
cmp w3, w8
- bcs .L291
+ bcs .L301
lsr w0, w2, 2
ubfiz x0, x0, 2, 30
- cbz w7, .L288
+ cbz w7, .L298
ldrh w6, [x5,2]
- ldr x10, [x1,1888]
+ ldr x10, [x1,1896]
ldrh w11, [x5],4
orr w6, w11, w6, lsl 16
str w6, [x10,x0]
- b .L289
-.L288:
- ldr x6, [x1,1888]
+ b .L299
+.L298:
+ ldr x6, [x1,1896]
str w9, [x6,x0]
-.L289:
+.L299:
add w3, w3, 1
add w2, w2, w4
- b .L287
-.L285:
+ b .L297
+.L295:
add x19, x19, :lo12:.LANCHOR0
ubfx x23, x20, 22, 5
mov w2, w25
and x22, x22, 3
- ldr x1, [x19,1888]
- str x1, [x19,1904]
+ ldr x1, [x19,1896]
+ str x1, [x19,1912]
lsl w1, w23, 10
- str x0, [x19,1896]
+ str x0, [x19,1904]
bl rknand_dma_map_single
- str w0, [x19,1912]
- ldr x0, [x19,1904]
+ str w0, [x19,1920]
+ ldr x0, [x19,1912]
lsl w1, w23, 7
mov w2, w25
bl rknand_dma_map_single
- str w0, [x19,1916]
+ str w0, [x19,1924]
mov w0, 1
- str w0, [x19,1920]
- ldr w0, [x19,1912]
+ str w0, [x19,1928]
+ ldr w0, [x19,1920]
mov w1, 16
str w0, [x21,20]
- ldr w0, [x19,1916]
+ ldr w0, [x19,1924]
str w0, [x21,24]
str wzr, [x29,88]
ldr w0, [x29,88]
@@ -2266,12 +2369,12 @@ NandcXferStart:
ldr w0, [x29,88]
orr w0, w0, 448
str w0, [x29,88]
- cbnz x22, .L292
+ cbnz x22, .L302
ldr w0, [x29,88]
mov w1, 2
bfi w0, w1, 3, 3
str w0, [x29,88]
-.L292:
+.L302:
ldr w0, [x29,88]
cmp w25, wzr
cset w1, eq
@@ -2283,10 +2386,10 @@ NandcXferStart:
ldr w0, [x29,88]
orr w0, w0, 1
str w0, [x29,88]
-.L281:
+.L291:
ldr w0, [x29,88]
str w0, [x21,16]
-.L280:
+.L290:
str w24, [x21,12]
str w20, [x21,8]
orr w20, w20, 4
@@ -2304,14 +2407,14 @@ NandcXferStart:
Ftl_log2:
mov w2, 1
mov w1, 0
-.L299:
+.L309:
cmp w2, w0
- bhi .L301
+ bhi .L311
add w1, w1, 1
lsl w2, w2, 1
uxth w1, w1
- b .L299
-.L301:
+ b .L309
+.L311:
sub w0, w1, #1
ret
.size Ftl_log2, .-Ftl_log2
@@ -2331,17 +2434,17 @@ FtlSysBlkNumInit:
csel w0, w0, w1, hi
adrp x1, .LANCHOR0
add x1, x1, :lo12:.LANCHOR0
- ldrh w2, [x1,1948]
- ldrh w3, [x1,1958]
- str w0, [x1,1944]
+ ldrh w2, [x1,1956]
+ ldrh w3, [x1,1966]
+ str w0, [x1,1952]
mul w2, w0, w2
sub w0, w3, w0
- strh w0, [x1,1956]
- ldr w0, [x1,1964]
- str w2, [x1,1952]
+ strh w0, [x1,1964]
+ ldr w0, [x1,1972]
+ str w2, [x1,1960]
sub w2, w0, w2
mov w0, 0
- str w2, [x1,1960]
+ str w2, [x1,1968]
ret
.size FtlSysBlkNumInit, .-FtlSysBlkNumInit
.align 2
@@ -2353,212 +2456,209 @@ FtlConstantsInit:
add x29, sp, 0
stp x19, x20, [sp,16]
stp x23, x24, [sp,48]
+ adrp x20, .LANCHOR0
+ mov x23, x0
stp x21, x22, [sp,32]
stp x25, x26, [sp,64]
str x27, [sp,80]
- mov x23, x0
- adrp x20, .LANCHOR0
- ldrh w6, [x0,8]
- add x0, x20, :lo12:.LANCHOR0
- ldrh w2, [x23,10]
- ldrh w1, [x23,12]
+ add x1, x20, :lo12:.LANCHOR0
ldrh w4, [x23,14]
- strh w6, [x0,1968]
- strh w2, [x0,1970]
- strh w1, [x0,1972]
- strh w4, [x0,1958]
-.L306:
- add x5, x0, 1976
+ ldrh w6, [x0,8]
+ ldrh w2, [x0,10]
+ ldrh w0, [x0,12]
+ strh w6, [x1,1976]
+ strh w2, [x1,1978]
+ strh w0, [x1,1980]
+ strh w4, [x1,1966]
+.L316:
+ add x5, x1, 1984
strb w3, [x3,x5]
add x3, x3, 1
cmp x3, 32
- bne .L306
+ bne .L316
ldrh w3, [x23,20]
- ldrb w0, [x23,15]
- cmp w3, w0
- bcs .L307
- uxtb w8, w1
+ ldrb w1, [x23,15]
+ cmp w3, w1
+ bcs .L317
+ uxtb w8, w0
mov w3, 0
- mul w11, w1, w2
+ mul w11, w0, w2
ubfiz w10, w8, 1, 7
add x12, x20, :lo12:.LANCHOR0
-.L308:
- cmp w3, w1
- bcs .L310
- uxtb w0, w3
+.L318:
+ cmp w3, w0
+ bcs .L320
+ uxtb w1, w3
mov w5, w3
mov w7, 0
-.L311:
+.L321:
cmp w7, w2
- bcs .L333
- add x9, x12, 1976
+ bcs .L343
+ add x9, x12, 1984
add w13, w5, w11
- add w14, w0, w8
+ add w14, w1, w8
add w7, w7, 1
- strb w0, [x9,w5,uxtw]
- add w0, w0, w10
+ strb w1, [x9,w5,uxtw]
+ add w1, w1, w10
strb w14, [x9,x13]
- add w5, w5, w1
- uxtb w0, w0
- b .L311
-.L333:
+ add w5, w5, w0
+ uxtb w1, w1
+ b .L321
+.L343:
add w3, w3, 1
- b .L308
-.L310:
- add x0, x20, :lo12:.LANCHOR0
+ b .L318
+.L320:
+ add x1, x20, :lo12:.LANCHOR0
lsl w2, w2, 1
lsr w4, w4, 1
- strh w2, [x0,1970]
- strh w4, [x0,1958]
-.L307:
- add x0, x20, :lo12:.LANCHOR0
+ strh w2, [x1,1978]
+ strh w4, [x1,1966]
+.L317:
+ add x1, x20, :lo12:.LANCHOR0
mov w2, 5
cmp w6, 1
- strh w2, [x0,2008]
- strh wzr, [x0,2010]
- bne .L312
- strh w6, [x0,2008]
-.L312:
- add x0, x20, :lo12:.LANCHOR0
+ strh w2, [x1,2016]
+ strh wzr, [x1,2018]
+ bne .L322
+ strh w6, [x1,2016]
+.L322:
+ add x1, x20, :lo12:.LANCHOR0
mov w2, 4352
- ldrb w26, [x0,8]
- strh w2, [x0,2012]
- cbz w26, .L313
+ ldrb w26, [x1,8]
+ strh w2, [x1,2020]
+ cbz w26, .L323
mov w2, 384
- strh w2, [x0,2012]
-.L313:
+ strh w2, [x1,2020]
+.L323:
add x21, x20, :lo12:.LANCHOR0
- ldrh w19, [x21,1958]
- ldrh w22, [x21,1970]
- mul w22, w1, w22
- mul w1, w19, w1
- uxth w22, w22
- strh w22, [x21,1948]
- uxth w0, w1
- strh w0, [x21,2014]
- bl Ftl_log2
ldrh w25, [x23,16]
ldrh w24, [x23,20]
- strh w0, [x21,2016]
- mul w0, w22, w25
+ ldrh w27, [x23,18]
+ ldrh w22, [x21,1978]
+ ldrh w19, [x21,1966]
+ strh w25, [x21,2024]
+ mul w22, w0, w22
+ mul w0, w19, w0
strh w0, [x21,2022]
+ uxth w22, w22
+ strh w27, [x21,2026]
+ strh w22, [x21,1956]
+ mul w0, w22, w25
+ strh w0, [x21,2028]
mov w0, w24
- ldrh w27, [x23,18]
- strh w25, [x21,2018]
- strh w27, [x21,2020]
- strh w24, [x21,2024]
+ strh w24, [x21,2030]
bl Ftl_log2
- lsl w2, w24, 9
uxth w3, w0
- strh w0, [x21,2026]
- cmp w19, 1024
+ lsl w2, w24, 9
+ strh w0, [x21,2032]
ldrh w0, [x23,26]
- strh w2, [x21,2028]
+ cmp w19, 1024
+ strh w2, [x21,2034]
ubfx x2, x2, 9, 7
- strh w0, [x21,2032]
+ strh w0, [x21,2038]
lsl w2, w2, 1
mul w0, w22, w19
- strh w2, [x21,2030]
- str w0, [x21,1964]
- bls .L314
+ strh w2, [x21,2036]
+ str w0, [x21,1972]
+ bls .L324
and w0, w19, 255
- strh w0, [x21,2010]
-.L314:
+ strh w0, [x21,2018]
+.L324:
add x2, x20, :lo12:.LANCHOR0
mul w0, w24, w27
- ldrh w1, [x2,2010]
+ ldrh w1, [x2,2018]
sub w1, w19, w1
mul w1, w22, w1
mul w1, w1, w24
mul w1, w1, w25
asr w1, w1, 11
- str w1, [x2,2036]
- ldrh w1, [x2,2012]
+ str w1, [x2,2040]
+ ldrh w1, [x2,2020]
lsl w1, w1, 3
sdiv w0, w1, w0
uxth w0, w0
cmp w0, 4
- bhi .L330
+ bhi .L340
mov w0, 4
-.L330:
- strh w0, [x2,2040]
- cbz w26, .L317
+.L340:
+ strh w0, [x2,2044]
+ cbz w26, .L327
add x0, x20, :lo12:.LANCHOR0
mov w1, 640
- strh w1, [x0,2012]
-.L317:
+ strh w1, [x0,2020]
+.L327:
add x1, x20, :lo12:.LANCHOR0
lsl w19, w19, 6
cmp w22, 1
- ldrh w0, [x1,2012]
+ ldrh w0, [x1,2020]
asr w0, w0, w3
add w3, w3, 9
asr w19, w19, w3
- strh w19, [x1,2044]
+ strh w19, [x1,2048]
and w19, w19, 65535
add w0, w0, 2
- strh w0, [x1,2042]
+ strh w0, [x1,2046]
mul w0, w19, w22
- str w0, [x1,2048]
+ str w0, [x1,2052]
add w19, w19, 8
- ldrh w0, [x1,2040]
+ ldrh w0, [x1,2044]
udiv w0, w0, w22
add w19, w19, w0
- bne .L331
+ bne .L341
add w19, w19, 4
-.L331:
- str w19, [x1,1944]
+.L341:
+ str w19, [x1,1952]
add x19, x20, :lo12:.LANCHOR0
- ldrh w0, [x19,1944]
+ ldrh w0, [x19,1952]
bl FtlSysBlkNumInit
- str wzr, [x19,2060]
- ldr w0, [x19,1944]
- str w0, [x19,2052]
- ldr w0, [x19,1960]
- ldrh w1, [x19,2018]
+ str wzr, [x19,2064]
+ ldr w0, [x19,1952]
+ str w0, [x19,2056]
+ ldr w0, [x19,1968]
+ ldrh w1, [x19,2024]
lsl w0, w0, 2
- ldrh w3, [x19,2024]
- ldrh w2, [x19,2040]
+ ldrh w3, [x19,2030]
+ ldrh w2, [x19,2044]
mul w1, w0, w1
- ldrh w0, [x19,2026]
- ldrb w5, [x19,120]
+ ldrh w0, [x19,2032]
+ ldrb w5, [x19,196]
add w0, w0, 9
lsr w0, w1, w0
mov w1, 2048
add w0, w0, 2
sdiv w1, w1, w3
- strh w1, [x19,2058]
+ strh w1, [x19,2062]
uxth w0, w0
- strh w0, [x19,2056]
+ strh w0, [x19,2060]
add w1, w2, 3
- strh w1, [x19,2040]
- ldr w1, [x19,2048]
+ strh w1, [x19,2044]
+ ldr w1, [x19,2052]
add w4, w1, 3
- str w4, [x19,2048]
- cbz w5, .L320
+ str w4, [x19,2052]
+ cbz w5, .L330
add w2, w2, 4
add w1, w1, 5
- strh w2, [x19,2040]
- b .L332
-.L320:
+ strh w2, [x19,2044]
+ b .L342
+.L330:
cmp w4, 7
- bhi .L321
+ bhi .L331
mov w1, 8
-.L332:
- str w1, [x19,2048]
-.L321:
+.L342:
+ str w1, [x19,2052]
+.L331:
add x20, x20, :lo12:.LANCHOR0
- ldrh w1, [x20,1956]
- strh wzr, [x20,2064]
+ ldrh w1, [x20,1964]
+ strh wzr, [x20,2068]
lsr w2, w1, 3
add w1, w2, w1, lsl 1
add w1, w1, 52
add w0, w1, w0, lsl 2
cmp w0, w3, lsl 9
- bcs .L322
+ bcs .L332
mov w0, 1
- strh w0, [x20,2064]
-.L322:
+ strh w0, [x20,2068]
+.L332:
mov w0, 0
ldr x27, [sp,80]
ldp x19, x20, [sp,16]
@@ -2576,24 +2676,24 @@ IsBlkInVendorPart:
uxth w4, w0
add x1, x1, :lo12:.LANCHOR0
mov w0, 0
- ldrh w2, [x1,2066]
- cbz w2, .L335
- ldrh w2, [x1,2040]
+ ldrh w2, [x1,2070]
+ cbz w2, .L345
+ ldrh w2, [x1,2044]
ldr x3, [x1,2072]
mov x1, 0
-.L336:
+.L346:
cmp w2, w1, uxth
- bls .L341
+ bls .L351
add x1, x1, 1
add x0, x3, x1, lsl 1
ldrh w0, [x0,-2]
cmp w0, w4
- bne .L336
+ bne .L346
mov w0, 1
- b .L335
-.L341:
+ b .L345
+.L351:
mov w0, 0
-.L335:
+.L345:
ret
.size IsBlkInVendorPart, .-IsBlkInVendorPart
.align 2
@@ -2605,41 +2705,41 @@ FtlCacheMetchLpa:
add x2, x2, :lo12:.LANCHOR0
mov w0, 0
ldr w3, [x2,2080]
- cbz w3, .L343
+ cbz w3, .L353
ldr x5, [x2,2088]
mov x0, 56
mov x2, 0
-.L344:
+.L354:
cmp w3, w2
- bls .L353
+ bls .L363
madd x4, x2, x0, x5
add x2, x2, 1
ldr w4, [x4,24]
cmp w4, w6
- bcc .L344
+ bcc .L354
cmp w4, w1
- bhi .L344
+ bhi .L354
mov w0, 1
- b .L343
-.L353:
+ b .L353
+.L363:
mov w0, 0
-.L343:
+.L353:
ret
.size FtlCacheMetchLpa, .-FtlCacheMetchLpa
.align 2
.global FtlGetCap
.type FtlGetCap, %function
FtlGetCap:
- adrp x0, .LANCHOR0+2060
- ldr w0, [x0,#:lo12:.LANCHOR0+2060]
+ adrp x0, .LANCHOR0+2064
+ ldr w0, [x0,#:lo12:.LANCHOR0+2064]
ret
.size FtlGetCap, .-FtlGetCap
.align 2
.global ftl_get_density
.type ftl_get_density, %function
ftl_get_density:
- adrp x0, .LANCHOR0+2060
- ldr w0, [x0,#:lo12:.LANCHOR0+2060]
+ adrp x0, .LANCHOR0+2064
+ ldr w0, [x0,#:lo12:.LANCHOR0+2064]
ret
.size ftl_get_density, .-ftl_get_density
.align 2
@@ -2662,7 +2762,7 @@ FtlBbmMapBadBlock:
adrp x19, .LANCHOR0
add x19, x19, :lo12:.LANCHOR0
add x19, x19, 2104
- ldrh w3, [x19,-90]
+ ldrh w3, [x19,-82]
udiv w2, w1, w3
add x0, x19, x2, uxth 3
ldr x0, [x0,32]
@@ -2692,7 +2792,7 @@ FtlBbmIsBadBlock:
adrp x2, .LANCHOR0
uxth w0, w0
add x3, x2, :lo12:.LANCHOR0
- ldrh w1, [x3,2014]
+ ldrh w1, [x3,2022]
udiv w2, w0, w1
msub w0, w2, w1, w0
add x2, x3, x2, uxth 3
@@ -2722,22 +2822,22 @@ FtlBbtCalcTotleCnt:
str x21, [sp,32]
mov w19, 0
mov w20, w19
- ldrh w1, [x0,2014]
- ldrh w21, [x0,1970]
+ ldrh w1, [x0,2022]
+ ldrh w21, [x0,1978]
mul w21, w1, w21
-.L361:
+.L371:
cmp w20, w21
- bge .L367
+ bge .L377
mov w0, w20
bl FtlBbmIsBadBlock
- cbz w0, .L362
+ cbz w0, .L372
add w19, w19, 1
uxth w19, w19
-.L362:
+.L372:
add w20, w20, 1
uxth w20, w20
- b .L361
-.L367:
+ b .L371
+.L377:
mov w0, w19
ldr x21, [sp,32]
ldp x19, x20, [sp,16]
@@ -2752,11 +2852,11 @@ V2P_block:
uxth w0, w0
add x3, x3, :lo12:.LANCHOR0
uxth w1, w1
- ldrh w4, [x3,1972]
+ ldrh w4, [x3,1980]
udiv w2, w0, w4
msub w0, w2, w4, w0
madd w0, w1, w4, w0
- ldrh w1, [x3,2014]
+ ldrh w1, [x3,2022]
madd w0, w2, w1, w0
ret
.size V2P_block, .-V2P_block
@@ -2767,8 +2867,8 @@ P2V_plane:
adrp x2, .LANCHOR0
uxth w0, w0
add x2, x2, :lo12:.LANCHOR0
- ldrh w1, [x2,1972]
- ldrh w3, [x2,2014]
+ ldrh w1, [x2,1980]
+ ldrh w3, [x2,2022]
udiv w2, w0, w1
udiv w3, w0, w3
msub w0, w2, w1, w0
@@ -2782,10 +2882,10 @@ P2V_block_in_plane:
adrp x2, .LANCHOR0
uxth w0, w0
add x2, x2, :lo12:.LANCHOR0
- ldrh w3, [x2,2014]
+ ldrh w3, [x2,2022]
udiv w1, w0, w3
msub w0, w1, w3, w0
- ldrh w1, [x2,1972]
+ ldrh w1, [x2,1980]
uxth w0, w0
udiv w0, w0, w1
ret
@@ -2796,16 +2896,16 @@ P2V_block_in_plane:
ftl_cmp_data_ver:
cmp w0, w1
mov w2, -2147483648
- bls .L372
+ bls .L382
sub w1, w0, w1
cmp w1, w2
cset w0, ls
- b .L373
-.L372:
+ b .L383
+.L382:
sub w1, w1, w0
cmp w1, w2
cset w0, hi
-.L373:
+.L383:
ret
.size ftl_cmp_data_ver, .-ftl_cmp_data_ver
.align 2
@@ -2841,18 +2941,18 @@ FtlFreeSysBlkQueueIn:
mov w0, 65533
sub w2, w21, #1
cmp w0, w2, uxth
- bcc .L376
+ bcc .L386
adrp x2, .LANCHOR0
add x0, x2, :lo12:.LANCHOR0
mov x19, x2
ldrh w0, [x0,2206]
cmp w0, 1024
- beq .L376
- cbz w1, .L378
+ beq .L386
+ cbz w1, .L388
adrp x20, .LANCHOR2
add x20, x20, :lo12:.LANCHOR2
ldr w0, [x20,-96]
- cbnz w0, .L378
+ cbnz w0, .L388
mov w0, w21
bl P2V_block_in_plane
uxth w22, w0
@@ -2871,7 +2971,7 @@ FtlFreeSysBlkQueueIn:
ldr w0, [x20,-72]
add w0, w0, 1
str w0, [x20,-72]
-.L378:
+.L388:
add x1, x19, :lo12:.LANCHOR0
add x1, x1, 2200
ldrh w0, [x1,6]
@@ -2883,7 +2983,7 @@ FtlFreeSysBlkQueueIn:
and w2, w2, 1023
strh w21, [x0,8]
strh w2, [x1,4]
-.L376:
+.L386:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x29, x30, [sp], 48
@@ -2899,15 +2999,15 @@ FtlFreeSysBLkSort:
add x1, x0, :lo12:.LANCHOR0
add x1, x1, 2200
ldrh w2, [x1,6]
- cbz w2, .L385
+ cbz w2, .L395
mov w5, 0
ldrh w3, [x1,2]
ldrh w2, [x1,4]
mov w4, w5
and w6, w6, 31
-.L387:
+.L397:
cmp w4, w6
- bge .L395
+ bge .L405
add x5, x1, x3, sxtw 1
ldrh w7, [x5,8]
add x5, x1, x2, sxtw 1
@@ -2919,13 +3019,13 @@ FtlFreeSysBLkSort:
uxth w4, w4
and w3, w3, 1023
and w2, w2, 1023
- b .L387
-.L395:
- cbz w5, .L385
+ b .L397
+.L405:
+ cbz w5, .L395
add x0, x0, :lo12:.LANCHOR0
strh w3, [x0,2202]
strh w2, [x0,2204]
-.L385:
+.L395:
ret
.size FtlFreeSysBLkSort, .-FtlFreeSysBLkSort
.align 2
@@ -2944,9 +3044,9 @@ FtlFreeSysBlkQueueOut:
add x22, x21, 2200
add x23, x23, :lo12:.LC3
mov x24, x21
-.L397:
+.L407:
ldrh w1, [x22,6]
- cbz w1, .L398
+ cbz w1, .L408
adrp x19, .LANCHOR2
ldrh w2, [x22,2]
add x25, x19, :lo12:.LANCHOR2
@@ -2958,7 +3058,7 @@ FtlFreeSysBlkQueueOut:
ldr w1, [x25,-96]
and w2, w2, 1023
strh w2, [x22,2]
- cbnz w1, .L399
+ cbnz w1, .L409
mov w0, w20
str x1, [x29,88]
bl P2V_block_in_plane
@@ -2967,12 +3067,12 @@ FtlFreeSysBlkQueueOut:
lsl w2, w20, 10
ldr x1, [x29,88]
str w2, [x0,4]
- ldrb w0, [x21,120]
- cbz w0, .L400
+ ldrb w0, [x21,196]
+ cbz w0, .L410
ldr x0, [x25,-88]
mov w2, 1
bl FlashEraseBlocks
-.L400:
+.L410:
add x19, x19, :lo12:.LANCHOR2
mov w1, 1
mov w2, w1
@@ -2986,24 +3086,24 @@ FtlFreeSysBlkQueueOut:
ldr w0, [x19,-72]
add w0, w0, 1
str w0, [x19,-72]
- b .L399
-.L398:
+ b .L409
+.L408:
adrp x0, .LC2
add x0, x0, :lo12:.LC2
bl printk
-.L401:
- b .L401
-.L399:
+.L411:
+ b .L411
+.L409:
sub w0, w20, #1
mov w1, 65533
cmp w1, w0, uxth
- bcs .L402
+ bcs .L412
ldrh w2, [x24,2206]
mov x0, x23
mov w1, w20
bl printk
- b .L397
-.L402:
+ b .L407
+.L412:
mov w0, w20
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -3027,21 +3127,21 @@ test_node_in_list:
madd x0, x4, x0, x0
mov w4, 6
uxth w0, w0
-.L408:
+.L418:
cmp w1, w0
- beq .L409
+ beq .L419
ldrh w0, [x2]
cmp w0, w5
- beq .L410
+ beq .L420
umull x2, w0, w4
add x2, x3, x2
- b .L408
-.L409:
+ b .L418
+.L419:
mov w0, 1
- b .L407
-.L410:
+ b .L417
+.L420:
mov w0, 0
-.L407:
+.L417:
ret
.size test_node_in_list, .-test_node_in_list
.align 2
@@ -3051,9 +3151,9 @@ insert_data_list:
adrp x9, .LANCHOR0
uxth w0, w0
add x9, x9, :lo12:.LANCHOR0
- ldrh w1, [x9,1956]
+ ldrh w1, [x9,1964]
cmp w1, w0
- bls .L413
+ bls .L423
adrp x2, .LANCHOR2
mov w7, 6
add x5, x2, :lo12:.LANCHOR2
@@ -3065,10 +3165,10 @@ insert_data_list:
strh w1, [x4,2]
strh w1, [x11,x10]
ldr x1, [x5,-8]
- cbnz x1, .L414
+ cbnz x1, .L424
str x4, [x5,-8]
- b .L413
-.L414:
+ b .L423
+.L424:
ubfiz x8, x0, 1, 16
ldr x13, [x2,#:lo12:.LANCHOR2]
ldrh w2, [x4,4]
@@ -3077,7 +3177,7 @@ insert_data_list:
mov w18, 65535
ldrh w6, [x13,x8]
cmp w2, wzr
- ldrh w17, [x9,1956]
+ ldrh w17, [x9,1964]
mul w6, w6, w2
sub x2, x1, x12
asr x2, x2, 1
@@ -3088,13 +3188,13 @@ insert_data_list:
add x9, x14, x8
uxth w2, w2
mov w8, w7
-.L422:
+.L432:
add w5, w5, 1
cmp w0, w2
uxth w5, w5
- beq .L413
+ beq .L423
cmp w5, w17
- bhi .L413
+ bhi .L423
ubfiz x15, x2, 1, 16
ldrh w16, [x1,4]
cmp w16, wzr
@@ -3102,47 +3202,47 @@ insert_data_list:
mul w7, w7, w16
csinv w7, w7, wzr, ne
cmp w7, w6
- bne .L418
+ bne .L428
ldrh w15, [x14,x15]
ldrh w7, [x9]
cmp w15, w7
- bcc .L420
- b .L419
-.L418:
- bhi .L419
-.L420:
+ bcc .L430
+ b .L429
+.L428:
+ bhi .L429
+.L430:
ldrh w7, [x1]
cmp w7, w18
- bne .L421
+ bne .L431
strh w2, [x4,2]
add x2, x3, :lo12:.LANCHOR2
strh w0, [x1]
str x4, [x2,8]
- b .L413
-.L421:
+ b .L423
+.L431:
umull x1, w7, w8
mov w2, w7
add x1, x12, x1
- b .L422
-.L419:
+ b .L432
+.L429:
strh w2, [x11,x10]
ldrh w2, [x1,2]
strh w2, [x4,2]
add x2, x3, :lo12:.LANCHOR2
ldr x3, [x2,-8]
cmp x1, x3
- bne .L423
+ bne .L433
strh w0, [x1,2]
str x4, [x2,-8]
- b .L413
-.L423:
+ b .L423
+.L433:
ldrh w3, [x1,2]
mov w4, 6
ldr x2, [x2,-16]
umull x3, w3, w4
strh w0, [x2,x3]
strh w0, [x1,2]
-.L413:
+.L423:
mov w0, 0
ret
.size insert_data_list, .-insert_data_list
@@ -3168,7 +3268,7 @@ insert_free_list:
uxth w0, w0
mov w7, 65535
cmp w0, w7
- beq .L428
+ beq .L438
adrp x2, .LANCHOR2
mov w6, 6
add x5, x2, :lo12:.LANCHOR2
@@ -3180,10 +3280,10 @@ insert_free_list:
strh w1, [x4,2]
strh w1, [x9,x8]
ldr x1, [x5,24]
- cbnz x1, .L429
+ cbnz x1, .L439
str x4, [x5,24]
- b .L428
-.L429:
+ b .L438
+.L439:
ldr x11, [x5,-80]
ubfiz x2, x0, 1, 16
ldr x10, [x5,-16]
@@ -3193,41 +3293,41 @@ insert_free_list:
asr x2, x2, 1
madd x2, x5, x2, x2
uxth w2, w2
-.L432:
+.L442:
ubfiz x5, x2, 1, 16
ldrh w5, [x11,x5]
cmp w5, w12
- bcs .L430
+ bcs .L440
ldrh w5, [x1]
cmp w5, w7
- bne .L431
+ bne .L441
strh w2, [x4,2]
strh w0, [x1]
- b .L428
-.L431:
+ b .L438
+.L441:
umull x1, w5, w6
mov w2, w5
add x1, x10, x1
- b .L432
-.L430:
+ b .L442
+.L440:
ldrh w5, [x1,2]
strh w5, [x4,2]
strh w2, [x9,x8]
add x2, x3, :lo12:.LANCHOR2
ldr x3, [x2,24]
cmp x1, x3
- bne .L433
+ bne .L443
strh w0, [x1,2]
str x4, [x2,24]
- b .L428
-.L433:
+ b .L438
+.L443:
ldrh w3, [x1,2]
mov w4, 6
ldr x2, [x2,-16]
umull x3, w3, w4
strh w0, [x2,x3]
strh w0, [x1,2]
-.L428:
+.L438:
mov w0, 0
ret
.size insert_free_list, .-insert_free_list
@@ -3260,31 +3360,31 @@ List_remove_node:
ldr x2, [x6,-16]
add x4, x2, x1
cmp x4, x3
- bne .L436
+ bne .L446
ldrh w3, [x2,x1]
cmp w3, w7
- bne .L437
+ bne .L447
str xzr, [x0]
- b .L438
-.L437:
+ b .L448
+.L447:
umull x3, w3, w5
add x3, x2, x3
str x3, [x0]
mov w0, -1
strh w0, [x3,2]
- b .L438
-.L436:
+ b .L448
+.L446:
ldrh w0, [x2,x1]
ldrh w3, [x4,2]
cmp w0, w7
- bne .L439
+ bne .L449
cmp w3, w0
- beq .L438
+ beq .L448
umull x3, w3, w5
mov w0, -1
strh w0, [x2,x3]
- b .L438
-.L439:
+ b .L448
+.L449:
umull x0, w0, w5
add x0, x2, x0
strh w3, [x0,2]
@@ -3293,7 +3393,7 @@ List_remove_node:
ldrh w7, [x2,x1]
umull x3, w3, w5
strh w7, [x0,x3]
-.L438:
+.L448:
mov w0, -1
strh w0, [x2,x1]
strh w0, [x4,2]
@@ -3310,14 +3410,14 @@ List_pop_index_node:
str x19, [sp,16]
mov w19, 65535
ldr x2, [x0]
- cbz x2, .L441
+ cbz x2, .L451
adrp x3, .LANCHOR2-16
mov w5, w19
mov w6, 6
ldr x4, [x3,#:lo12:.LANCHOR2-16]
-.L442:
- cbnz w1, .L443
-.L445:
+.L452:
+ cbnz w1, .L453
+.L455:
sub x2, x2, x4
mov x1, -6148914691236517206
asr x2, x2, 1
@@ -3325,17 +3425,17 @@ List_pop_index_node:
uxth w19, w2
mov w1, w19
bl List_remove_node
- b .L441
-.L443:
+ b .L451
+.L453:
ldrh w3, [x2]
cmp w3, w5
- beq .L445
+ beq .L455
umull x3, w3, w6
sub w1, w1, #1
add x2, x4, x3
uxth w1, w1
- b .L442
-.L441:
+ b .L452
+.L451:
mov w0, w19
ldr x19, [sp,16]
ldp x29, x30, [sp], 32
@@ -3350,26 +3450,26 @@ List_get_gc_head_node:
add x2, x2, :lo12:.LANCHOR2
mov w0, 65535
ldr x1, [x2,-8]
- cbz x1, .L453
+ cbz x1, .L463
ldr x4, [x2,-16]
mov w5, 6
-.L449:
- cbz w3, .L450
+.L459:
+ cbz w3, .L460
ldrh w2, [x1]
cmp w2, w0
- beq .L453
+ beq .L463
umull x2, w2, w5
sub w3, w3, #1
add x1, x4, x2
uxth w3, w3
- b .L449
-.L450:
+ b .L459
+.L460:
sub x1, x1, x4
mov x0, -6148914691236517206
asr x1, x1, 1
madd x1, x0, x1, x1
uxth w0, w1
-.L453:
+.L463:
ret
.size List_get_gc_head_node, .-List_get_gc_head_node
.align 2
@@ -3384,20 +3484,20 @@ List_update_data_list:
add x0, x19, :lo12:.LANCHOR2
ldrh w1, [x0,40]
cmp w1, w20
- beq .L455
+ beq .L465
ldrh w1, [x0,88]
cmp w1, w20
- beq .L455
+ beq .L465
ldrh w1, [x0,136]
cmp w1, w20
- beq .L455
+ beq .L465
mov w3, 6
ldr x4, [x0,-16]
ldr x0, [x0,-8]
umull x3, w20, w3
add x1, x4, x3
cmp x1, x0
- beq .L455
+ beq .L465
ubfiz x0, x20, 1, 16
ldr x5, [x19,#:lo12:.LANCHOR2]
ldrh w2, [x5,x0]
@@ -3408,11 +3508,11 @@ List_update_data_list:
mov w0, 65535
csinv w2, w2, wzr, ne
cmp w1, w0
- bne .L457
+ bne .L467
ldrh w0, [x4,x3]
cmp w0, w1
- beq .L455
-.L457:
+ beq .L465
+.L467:
mov w0, 6
mov x3, -6148914691236517206
umull x1, w1, w0
@@ -3425,7 +3525,7 @@ List_update_data_list:
mul w0, w0, w1
csinv w0, w0, wzr, ne
cmp w2, w0
- bcs .L455
+ bcs .L465
add x19, x19, :lo12:.LANCHOR2
mov w1, w20
sub x0, x19, #8
@@ -3435,7 +3535,7 @@ List_update_data_list:
strh w0, [x19,16]
mov w0, w20
bl INSERT_DATA_LIST
-.L455:
+.L465:
mov w0, 0
ldp x19, x20, [sp,16]
ldp x29, x30, [sp], 32
@@ -3452,12 +3552,12 @@ ftl_map_blk_alloc_new_blk:
mov w20, 0
ldrh w2, [x0,10]
ldr x1, [x0,16]
-.L462:
+.L472:
cmp w20, w2
- beq .L466
+ beq .L476
mov x22, x1
ldrh w21, [x1],2
- cbnz w21, .L463
+ cbnz w21, .L473
mov x19, x0
bl FtlFreeSysBlkQueueOut
strh w0, [x22]
@@ -3465,15 +3565,15 @@ ftl_map_blk_alloc_new_blk:
sub w2, w1, #1
mov w0, 65533
cmp w0, w2, uxth
- bcs .L464
+ bcs .L474
adrp x2, .LANCHOR0+2206
adrp x0, .LC4
add x0, x0, :lo12:.LC4
ldrh w2, [x2,#:lo12:.LANCHOR0+2206]
bl printk
-.L465:
- b .L465
-.L464:
+.L475:
+ b .L475
+.L474:
ldr w0, [x19,48]
strh w21, [x19,2]
add w0, w0, 1
@@ -3482,12 +3582,12 @@ ftl_map_blk_alloc_new_blk:
strh w20, [x19]
add w0, w0, 1
strh w0, [x19,8]
- b .L466
-.L463:
+ b .L476
+.L473:
add w20, w20, 1
uxth w20, w20
- b .L462
-.L466:
+ b .L472
+.L476:
mov w0, 0
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -3498,71 +3598,71 @@ ftl_map_blk_alloc_new_blk:
.global select_l2p_ram_region
.type select_l2p_ram_region, %function
select_l2p_ram_region:
- adrp x0, .LANCHOR0+2058
+ adrp x0, .LANCHOR0+2062
mov x4, 0
mov w5, 65535
- ldrh w2, [x0,#:lo12:.LANCHOR0+2058]
+ ldrh w2, [x0,#:lo12:.LANCHOR0+2062]
adrp x0, .LANCHOR2
add x1, x0, :lo12:.LANCHOR2
mov x3, x0
ldr x1, [x1,184]
-.L469:
+.L479:
uxth w0, w4
cmp w0, w2
- bcs .L485
+ bcs .L495
add x4, x4, 1
add x6, x1, x4, lsl 4
ldrh w6, [x6,-16]
cmp w6, w5
- bne .L469
- b .L470
-.L485:
+ bne .L479
+ b .L480
+.L495:
mov w0, w2
mov x4, 0
mov w7, -2147483648
-.L472:
+.L482:
uxth w6, w4
cmp w6, w2
- bcs .L486
+ bcs .L496
add x5, x1, x4, lsl 4
ldr w5, [x5,4]
- tbnz w5, #31, .L481
+ tbnz w5, #31, .L491
cmp w5, w7
- bcc .L473
-.L481:
+ bcc .L483
+.L491:
mov w5, w7
mov w6, w0
-.L473:
+.L483:
add x4, x4, 1
mov w7, w5
mov w0, w6
- b .L472
-.L486:
+ b .L482
+.L496:
cmp w0, w2
- bcc .L470
+ bcc .L480
add x0, x3, :lo12:.LANCHOR2
add x1, x1, 4
mov w4, -1
mov w3, 0
ldrh w5, [x0,192]
mov w0, w2
-.L476:
+.L486:
cmp w3, w2
- beq .L470
+ beq .L480
ldr w7, [x1]
cmp w7, w4
- bcs .L477
+ bcs .L487
ldrh w6, [x1,-4]
cmp w6, w5
csel w4, w4, w7, eq
cmp w6, w5
csel w0, w0, w3, eq
-.L477:
+.L487:
add w3, w3, 1
add x1, x1, 16
uxth w3, w3
- b .L476
-.L470:
+ b .L486
+.L480:
ret
.size select_l2p_ram_region, .-select_l2p_ram_region
.align 2
@@ -3572,35 +3672,35 @@ FtlUpdateVaildLpn:
adrp x1, .LANCHOR2
add x3, x1, :lo12:.LANCHOR2
ldrh w2, [x3,194]
- cbnz w0, .L488
+ cbnz w0, .L498
cmp w2, 4
- bhi .L488
+ bhi .L498
add w2, w2, 1
strh w2, [x3,194]
- b .L487
-.L488:
+ b .L497
+.L498:
add x0, x1, :lo12:.LANCHOR2
ldr x6, [x1,#:lo12:.LANCHOR2]
mov w7, 65535
strh wzr, [x0,194]
str wzr, [x0,196]
- adrp x0, .LANCHOR0+1956
- ldrh w5, [x0,#:lo12:.LANCHOR0+1956]
+ adrp x0, .LANCHOR0+1964
+ ldrh w5, [x0,#:lo12:.LANCHOR0+1964]
mov x0, 0
-.L489:
+.L499:
cmp w5, w0, uxth
- bls .L487
+ bls .L497
ldrh w4, [x6,x0,lsl 1]
cmp w4, w7
- beq .L490
+ beq .L500
add x3, x1, :lo12:.LANCHOR2
ldr w2, [x3,196]
add w2, w4, w2
str w2, [x3,196]
-.L490:
+.L500:
add x0, x0, 1
- b .L489
-.L487:
+ b .L499
+.L497:
ret
.size FtlUpdateVaildLpn, .-FtlUpdateVaildLpn
.align 2
@@ -3610,10 +3710,10 @@ ftl_set_blk_mode:
stp x29, x30, [sp, -16]!
uxth w0, w0
add x29, sp, 0
- cbz w1, .L494
+ cbz w1, .L504
bl ftl_set_blk_mode.part.9
- b .L493
-.L494:
+ b .L503
+.L504:
adrp x1, .LANCHOR0
ubfx x2, x0, 5, 11
lsl x2, x2, 2
@@ -3623,7 +3723,7 @@ ftl_set_blk_mode:
ldr w1, [x3,x2]
bic w0, w1, w0
str w0, [x3,x2]
-.L493:
+.L503:
ldp x29, x30, [sp], 16
ret
.size ftl_set_blk_mode, .-ftl_set_blk_mode
@@ -3650,42 +3750,42 @@ ftl_sb_update_avl_pages:
uxth w2, w2
strh wzr, [x0,4]
mov w6, 65535
- ldrh w4, [x4,1948]
-.L498:
+ ldrh w4, [x4,1956]
+.L508:
cmp w2, w4
- bcs .L504
+ bcs .L514
add x5, x0, x2, sxtw 1
ldrh w5, [x5,16]
cmp w5, w6
- beq .L499
+ beq .L509
ldrh w5, [x0,4]
add w5, w5, 1
strh w5, [x0,4]
-.L499:
+.L509:
add w2, w2, 1
uxth w2, w2
- b .L498
-.L504:
+ b .L508
+.L514:
add x3, x3, :lo12:.LANCHOR0
mov w6, 65535
add x4, x0, x4, uxth 1
- ldrh w5, [x3,2018]
+ ldrh w5, [x3,2024]
mov x3, x0
-.L501:
+.L511:
cmp x3, x4
- beq .L505
+ beq .L515
ldrh w2, [x3,16]
cmp w2, w6
- beq .L502
+ beq .L512
ldrh w2, [x0,4]
add w2, w5, w2
sub w2, w2, #1
sub w2, w2, w1
strh w2, [x0,4]
-.L502:
+.L512:
add x3, x3, 2
- b .L501
-.L505:
+ b .L511
+.L515:
ret
.size ftl_sb_update_avl_pages, .-ftl_sb_update_avl_pages
.align 2
@@ -3707,50 +3807,50 @@ make_superblock:
mov x21, 0
mov x23, x0
mov w25, -1
- ldrh w24, [x0,1948]
-.L507:
+ ldrh w24, [x0,1956]
+.L517:
cmp w24, w21, uxth
- bls .L518
- add x0, x23, 1976
+ bls .L528
+ add x0, x23, 1984
ldrh w1, [x19]
ldrb w0, [x0,x21]
bl V2P_block
strh w25, [x22]
mov w26, w0
bl FtlBbmIsBadBlock
- cbnz w0, .L508
+ cbnz w0, .L518
strh w26, [x22]
ldrb w0, [x19,7]
add w0, w0, 1
strb w0, [x19,7]
-.L508:
+.L518:
add x21, x21, 1
add x22, x22, 2
- b .L507
-.L518:
+ b .L517
+.L528:
add x1, x20, :lo12:.LANCHOR0
ldrb w0, [x19,7]
strb wzr, [x19,9]
- ldrh w2, [x1,2018]
+ ldrh w2, [x1,2024]
mul w0, w0, w2
strh w0, [x19,4]
- ldr w0, [x1,1940]
- cbz w0, .L510
+ ldr w0, [x1,1948]
+ cbz w0, .L520
adrp x0, .LANCHOR2-80
ldrh w1, [x19]
ldr x0, [x0,#:lo12:.LANCHOR2-80]
ldrh w0, [x0,x1,lsl 1]
cmp w0, 79
- bhi .L510
+ bhi .L520
mov w0, 1
strb w0, [x19,9]
-.L510:
+.L520:
add x20, x20, :lo12:.LANCHOR0
ldrb w0, [x20,8]
- cbz w0, .L511
+ cbz w0, .L521
mov w0, 1
strb w0, [x19,9]
-.L511:
+.L521:
mov w0, 0
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -3772,29 +3872,29 @@ update_multiplier_value:
stp x23, x24, [sp,48]
mov x22, 0
uxth w21, w0
- ldrh w23, [x1,1948]
+ ldrh w23, [x1,1956]
mov w19, w22
- ldrh w24, [x1,2018]
+ ldrh w24, [x1,2024]
mov x20, x1
-.L520:
+.L530:
cmp w23, w22, uxth
- bls .L527
- add x0, x20, 1976
+ bls .L537
+ add x0, x20, 1984
mov w1, w21
ldrb w0, [x0,x22]
bl V2P_block
bl FtlBbmIsBadBlock
- cbnz w0, .L521
+ cbnz w0, .L531
add w19, w19, w24
uxth w19, w19
-.L521:
+.L531:
add x22, x22, 1
- b .L520
-.L527:
- cbz w19, .L523
+ b .L530
+.L537:
+ cbz w19, .L533
mov w0, 32768
sdiv w19, w0, w19
-.L523:
+.L533:
mov w0, 6
umull x21, w21, w0
adrp x0, .LANCHOR2-16
@@ -3816,7 +3916,7 @@ GetFreeBlockMinEraseCount:
add x2, x2, :lo12:.LANCHOR2
ldr x1, [x2,24]
mov w0, w1
- cbz x1, .L529
+ cbz x1, .L539
ldr x0, [x2,-16]
sub x1, x1, x0
mov x0, -6148914691236517206
@@ -3825,7 +3925,7 @@ GetFreeBlockMinEraseCount:
ldr x0, [x2,-80]
and x1, x1, 65535
ldrh w0, [x0,x1,lsl 1]
-.L529:
+.L539:
ret
.size GetFreeBlockMinEraseCount, .-GetFreeBlockMinEraseCount
.align 2
@@ -3837,7 +3937,7 @@ GetFreeBlockMaxEraseCount:
add x5, x2, :lo12:.LANCHOR2
ldr x1, [x5,24]
mov w0, w1
- cbz x1, .L532
+ cbz x1, .L542
ldrh w3, [x5,32]
mov w0, 7
mov w6, 6
@@ -3853,25 +3953,25 @@ GetFreeBlockMaxEraseCount:
madd x1, x3, x1, x1
mov w3, 0
uxth w1, w1
-.L534:
+.L544:
cmp w3, w4
- beq .L537
+ beq .L547
umull x5, w1, w6
ldrh w5, [x0,x5]
cmp w5, w7
- bne .L535
-.L537:
+ bne .L545
+.L547:
add x2, x2, :lo12:.LANCHOR2
ubfiz x1, x1, 1, 16
ldr x0, [x2,-80]
ldrh w0, [x0,x1]
- b .L532
-.L535:
+ b .L542
+.L545:
add w3, w3, 1
mov w1, w5
uxth w3, w3
- b .L534
-.L532:
+ b .L544
+.L542:
ret
.size GetFreeBlockMaxEraseCount, .-GetFreeBlockMaxEraseCount
.align 2
@@ -3899,7 +3999,7 @@ FtlPrintInfo2buf:
bl sprintf
add x20, x20, x0, sxtw
adrp x1, .LC7
- ldr w2, [x24,2036]
+ ldr w2, [x24,2040]
mov x0, x20
add x1, x1, :lo12:.LC7
bl sprintf
@@ -3907,10 +4007,10 @@ FtlPrintInfo2buf:
adrp x0, .LANCHOR1+504
ldr w0, [x0,#:lo12:.LANCHOR1+504]
cmp w0, 1
- beq .L540
+ beq .L550
sub w0, w20, w22
- b .L541
-.L540:
+ b .L551
+.L550:
add x0, x29, 96
add x1, x29, 100
add x2, x29, 104
@@ -4068,19 +4168,19 @@ FtlPrintInfo2buf:
add x1, x1, :lo12:.LC31
bl sprintf
add x21, x21, x0, sxtw
- ldr w2, [x24,2060]
+ ldr w2, [x24,2064]
adrp x1, .LC32
mov x0, x21
add x1, x1, :lo12:.LC32
bl sprintf
add x21, x21, x0, sxtw
- ldr w2, [x24,2052]
+ ldr w2, [x24,2056]
adrp x1, .LC33
mov x0, x21
add x1, x1, :lo12:.LC33
bl sprintf
add x21, x21, x0, sxtw
- ldr w2, [x24,1944]
+ ldr w2, [x24,1952]
adrp x1, .LC34
mov x0, x21
add x1, x1, :lo12:.LC34
@@ -4092,7 +4192,7 @@ FtlPrintInfo2buf:
add x1, x1, :lo12:.LC35
bl sprintf
add x21, x21, x0, sxtw
- ldrh w2, [x24,1956]
+ ldrh w2, [x24,1964]
adrp x1, .LC36
mov x0, x21
add x1, x1, :lo12:.LC36
@@ -4104,7 +4204,7 @@ FtlPrintInfo2buf:
add x1, x1, :lo12:.LC37
bl sprintf
add x21, x21, x0, sxtw
- ldr w2, [x24,1960]
+ ldr w2, [x24,1968]
adrp x1, .LC38
mov x0, x21
add x1, x1, :lo12:.LC38
@@ -4260,7 +4360,7 @@ FtlPrintInfo2buf:
add x21, x21, x0, sxtw
ldr w3, [x23,328]
adrp x1, .LC63
- ldr w2, [x24,1940]
+ ldr w2, [x24,1948]
add x1, x1, :lo12:.LC63
ldr w4, [x23,420]
mov x0, x21
@@ -4323,7 +4423,7 @@ FtlPrintInfo2buf:
ldrh w0, [x23,280]
mov w1, 65535
cmp w0, w1
- beq .L542
+ beq .L552
ubfiz x2, x0, 1, 16
ldr x3, [x25,#:lo12:.LANCHOR2]
adrp x1, .LC72
@@ -4332,7 +4432,7 @@ FtlPrintInfo2buf:
ldrh w2, [x3,x2]
bl sprintf
add x19, x19, x0, sxtw
-.L542:
+.L552:
mov w0, 0
adrp x23, .LC73
mov w20, 0
@@ -4341,9 +4441,9 @@ FtlPrintInfo2buf:
mov w26, 6
uxth w3, w0
add x23, x23, :lo12:.LC73
-.L544:
+.L554:
cmp w3, w27
- beq .L543
+ beq .L553
add x21, x25, :lo12:.LANCHOR2
ubfiz x6, x3, 1, 16
umull x24, w3, w26
@@ -4363,8 +4463,8 @@ FtlPrintInfo2buf:
ldr x0, [x21,-16]
cmp w20, 16
ldrh w3, [x0,x24]
- bne .L544
-.L543:
+ bne .L554
+.L553:
add x1, x25, :lo12:.LANCHOR2
adrp x23, .LC74
mov w20, 0
@@ -4378,9 +4478,9 @@ FtlPrintInfo2buf:
asr x3, x3, 1
madd x3, x0, x3, x3
uxth w3, w3
-.L546:
+.L556:
cmp w3, w27
- beq .L545
+ beq .L555
add x21, x25, :lo12:.LANCHOR2
ubfiz x5, x3, 1, 16
umull x24, w3, w26
@@ -4398,10 +4498,10 @@ FtlPrintInfo2buf:
ldr x0, [x21,-16]
cmp w20, 4
ldrh w3, [x0,x24]
- bne .L546
-.L545:
+ bne .L556
+.L555:
sub w0, w19, w22
-.L541:
+.L551:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -4447,48 +4547,48 @@ GetSwlReplaceBlock:
ldr w2, [x0,248]
ldr w1, [x0,256]
cmp w2, w1
- bcs .L551
+ bcs .L561
adrp x1, .LANCHOR0
str wzr, [x0,240]
add x2, x1, :lo12:.LANCHOR0
ldr x5, [x0,-80]
mov x0, 0
- ldrh w3, [x2,1956]
-.L552:
+ ldrh w3, [x2,1964]
+.L562:
cmp w3, w0
- bls .L584
+ bls .L594
add x4, x19, :lo12:.LANCHOR2
ldrh w6, [x5,x0,lsl 1]
add x0, x0, 1
ldr w2, [x4,240]
add w2, w6, w2
str w2, [x4,240]
- b .L552
-.L584:
+ b .L562
+.L594:
add x2, x19, :lo12:.LANCHOR2
add x1, x1, :lo12:.LANCHOR0
ldr w0, [x2,240]
- ldrh w1, [x1,2008]
+ ldrh w1, [x1,2016]
udiv w3, w0, w3
str w3, [x2,248]
ldr w3, [x2,244]
sub w0, w0, w3
udiv w0, w0, w1
str w0, [x2,240]
- b .L554
-.L551:
+ b .L564
+.L561:
ldr w1, [x0,252]
cmp w2, w1
- bls .L554
+ bls .L564
add w1, w1, 1
adrp x4, .LANCHOR0
str w1, [x0,252]
mov w0, 0
-.L556:
+.L566:
add x1, x4, :lo12:.LANCHOR0
- ldrh w1, [x1,1956]
+ ldrh w1, [x1,1964]
cmp w0, w1
- bcs .L554
+ bcs .L564
add x1, x19, :lo12:.LANCHOR2
ubfiz x2, x0, 1, 32
add w0, w0, 1
@@ -4496,27 +4596,27 @@ GetSwlReplaceBlock:
ldrh w1, [x3,x2]
add w1, w1, 1
strh w1, [x3,x2]
- b .L556
-.L554:
+ b .L566
+.L564:
add x1, x19, :lo12:.LANCHOR2
ldr w21, [x1,256]
ldr w24, [x1,248]
add w0, w21, 256
cmp w0, w24
- bls .L559
+ bls .L569
ldr w1, [x1,252]
add w0, w21, 768
cmp w0, w1
- bls .L559
- adrp x0, .LANCHOR0+1940
- ldr w0, [x0,#:lo12:.LANCHOR0+1940]
- cbz w0, .L562
+ bls .L569
+ adrp x0, .LANCHOR0+1948
+ ldr w0, [x0,#:lo12:.LANCHOR0+1948]
+ cbz w0, .L572
cmp w21, 40
- bls .L559
-.L562:
+ bls .L569
+.L572:
mov w0, 65535
- b .L561
-.L559:
+ b .L571
+.L569:
add x0, x19, :lo12:.LANCHOR2
ldrh w0, [x0,32]
add w0, w0, w0, lsl 1
@@ -4525,34 +4625,34 @@ GetSwlReplaceBlock:
uxth w6, w0
add w0, w21, 64
cmp w6, w0
- bcs .L571
+ bcs .L581
cmp w21, 40
- bhi .L562
-.L571:
+ bhi .L572
+.L581:
add x0, x19, :lo12:.LANCHOR2
ldr x3, [x0,-8]
- cbz x3, .L562
- adrp x1, .LANCHOR0+1956
+ cbz x3, .L572
+ adrp x1, .LANCHOR0+1964
mov w23, 65535
ldr x7, [x0,-16]
mov w20, w23
ldr x26, [x0,-80]
mov x0, -6148914691236517206
- ldrh w9, [x1,#:lo12:.LANCHOR0+1956]
+ ldrh w9, [x1,#:lo12:.LANCHOR0+1964]
mov w8, w23
mov w1, 0
add x0, x0, 1
mov w10, 6
-.L564:
+.L574:
ldrh w2, [x3]
cmp w2, w8
- beq .L566
+ beq .L576
add w1, w1, 1
uxth w1, w1
cmp w1, w9
- bhi .L562
+ bhi .L572
ldrh w4, [x3,4]
- cbz w4, .L565
+ cbz w4, .L575
sub x4, x3, x7
asr x4, x4, 1
mul x4, x4, x0
@@ -4560,47 +4660,47 @@ GetSwlReplaceBlock:
and x4, x4, 65535
ldrh w3, [x26,x4,lsl 1]
cmp w3, w21
- bls .L570
+ bls .L580
cmp w3, w23
- bcs .L565
+ bcs .L575
mov w23, w3
mov w20, w5
-.L565:
+.L575:
umull x3, w2, w10
add x3, x7, x3
- b .L564
-.L570:
+ b .L574
+.L580:
mov w20, w5
-.L566:
+.L576:
mov w0, 65535
cmp w20, w0
- beq .L562
+ beq .L572
ubfiz x25, x20, 1, 16
ldrh w22, [x26,x25]
cmp w22, w21
- bls .L568
+ bls .L578
str x6, [x29,88]
bl GetFreeBlockMinEraseCount
ldr x6, [x29,88]
cmp w21, w0, uxth
- bcs .L568
+ bcs .L578
add x0, x19, :lo12:.LANCHOR2
str w23, [x0,256]
-.L568:
+.L578:
cmp w22, w24
- bcs .L562
+ bcs .L572
add w0, w22, 128
cmp w6, w0
- ble .L562
+ ble .L572
add w0, w22, 256
cmp w0, w24
- bcc .L569
+ bcc .L579
add x0, x19, :lo12:.LANCHOR2
add w22, w22, 768
ldr w0, [x0,252]
cmp w22, w0
- bcs .L562
-.L569:
+ bcs .L572
+.L579:
add x21, x19, :lo12:.LANCHOR2
ldr x4, [x19,#:lo12:.LANCHOR2]
adrp x0, .LC77
@@ -4614,7 +4714,7 @@ GetSwlReplaceBlock:
mov w0, 1
str w0, [x21,860]
mov w0, w20
-.L561:
+.L571:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -4631,13 +4731,13 @@ free_data_superblock:
mov w1, 65535
cmp w0, w1
add x29, sp, 0
- beq .L586
+ beq .L596
adrp x2, .LANCHOR2
ubfiz x1, x0, 1, 16
ldr x2, [x2,#:lo12:.LANCHOR2]
strh wzr, [x2,x1]
bl INSERT_FREE_LIST
-.L586:
+.L596:
mov w0, 0
ldp x29, x30, [sp], 16
ret
@@ -4655,24 +4755,24 @@ FtlGcBufInit:
mov w6, 4
mov w13, 56
str wzr, [x0,864]
-.L588:
+.L598:
add x5, x10, :lo12:.LANCHOR0
adrp x9, .LANCHOR0
- ldrh w0, [x5,1948]
+ ldrh w0, [x5,1956]
cmp w1, w0
- bcs .L592
+ bcs .L602
add x2, x3, :lo12:.LANCHOR2
umull x4, w1, w11
ldr x7, [x2,872]
ldr x8, [x2,880]
add x0, x7, x4
str w12, [x0,16]
- ldrh w0, [x5,2028]
+ ldrh w0, [x5,2034]
mul w0, w1, w0
sdiv w0, w0, w6
add x0, x8, x0, sxtw 2
str x0, [x7,x4]
- ldrh w0, [x5,2030]
+ ldrh w0, [x5,2036]
ldr x8, [x2,872]
ldr x5, [x2,888]
mul w0, w1, w0
@@ -4689,27 +4789,27 @@ FtlGcBufInit:
str x2, [x0,8]
ldr x2, [x7,8]
str x2, [x0,16]
- b .L588
-.L592:
+ b .L598
+.L602:
mov w8, 24
mov w5, 4
-.L590:
+.L600:
add x2, x3, :lo12:.LANCHOR2
ldr w1, [x2,904]
cmp w0, w1
- bcs .L593
+ bcs .L603
umull x4, w0, w8
ldr x7, [x2,872]
add x6, x9, :lo12:.LANCHOR0
ldr x10, [x2,880]
add x1, x7, x4
str wzr, [x1,16]
- ldrh w1, [x6,2028]
+ ldrh w1, [x6,2034]
mul w1, w0, w1
sdiv w1, w1, w5
add x1, x10, x1, sxtw 2
str x1, [x7,x4]
- ldrh w1, [x6,2030]
+ ldrh w1, [x6,2036]
ldr x6, [x2,872]
ldr x2, [x2,888]
mul w1, w0, w1
@@ -4719,8 +4819,8 @@ FtlGcBufInit:
uxth w0, w0
add x1, x2, x1, sxtw 2
str x1, [x4,8]
- b .L590
-.L593:
+ b .L600
+.L603:
ret
.size FtlGcBufInit, .-FtlGcBufInit
.align 2
@@ -4734,32 +4834,32 @@ FtlGcBufFree:
mov w9, 24
ldr w8, [x2,904]
ldr x5, [x2,872]
-.L595:
+.L605:
cmp w3, w1
- bcs .L594
+ bcs .L604
umull x4, w3, w7
mov w2, 0
add x4, x0, x4
-.L600:
+.L610:
cmp w2, w8
- bcs .L597
+ bcs .L607
umull x6, w2, w9
add x10, x5, x6
ldr x11, [x5,x6]
ldr x6, [x4,8]
cmp x11, x6
- bne .L596
+ bne .L606
str wzr, [x10,16]
- b .L597
-.L596:
+ b .L607
+.L606:
add w2, w2, 1
uxth w2, w2
- b .L600
-.L597:
+ b .L610
+.L607:
add w3, w3, 1
uxth w3, w3
- b .L595
-.L594:
+ b .L605
+.L604:
ret
.size FtlGcBufFree, .-FtlGcBufFree
.align 2
@@ -4774,17 +4874,17 @@ FtlGcBufAlloc:
ldr w5, [x2,904]
ldr x6, [x2,872]
mov w2, 0
-.L602:
+.L612:
cmp w2, w1
- bcs .L608
+ bcs .L618
mov w3, 0
-.L606:
+.L616:
cmp w3, w5
- bcs .L604
+ bcs .L614
umull x4, w3, w7
add x4, x6, x4
ldr w10, [x4,16]
- cbnz w10, .L603
+ cbnz w10, .L613
umull x3, w2, w9
str w8, [x4,16]
add x3, x0, x3
@@ -4792,16 +4892,16 @@ FtlGcBufAlloc:
str x10, [x3,8]
ldr x4, [x4,8]
str x4, [x3,16]
- b .L604
-.L603:
+ b .L614
+.L613:
add w3, w3, 1
uxth w3, w3
- b .L606
-.L604:
+ b .L616
+.L614:
add w2, w2, 1
uxth w2, w2
- b .L602
-.L608:
+ b .L612
+.L618:
ret
.size FtlGcBufAlloc, .-FtlGcBufAlloc
.align 2
@@ -4814,19 +4914,19 @@ IsBlkInGcList:
ldrh w2, [x1,908]
ldr x3, [x1,912]
mov x1, 0
-.L610:
+.L620:
cmp w2, w1, uxth
- bls .L614
+ bls .L624
add x1, x1, 1
add x4, x3, x1, lsl 1
ldrh w4, [x4,-2]
cmp w4, w0
- bne .L610
+ bne .L620
mov w0, 1
- b .L611
-.L614:
+ b .L621
+.L624:
mov w0, 0
-.L611:
+.L621:
ret
.size IsBlkInGcList, .-IsBlkInGcList
.align 2
@@ -4849,25 +4949,25 @@ FtlGcUpdatePage:
mov x5, 0
ldrh w7, [x4,908]
ldr x6, [x4,912]
-.L616:
+.L626:
uxth w4, w5
cmp w4, w7
- bcs .L620
+ bcs .L630
add x5, x5, 1
add x9, x6, x5, lsl 1
ldrh w9, [x9,-2]
cmp w9, w8
- bne .L616
-.L620:
+ bne .L626
+.L630:
cmp w4, w7
- bne .L618
+ bne .L628
ubfiz x4, x4, 1, 16
strh w0, [x6,x4]
add x0, x3, :lo12:.LANCHOR2
ldrh w4, [x0,908]
add w4, w4, 1
strh w4, [x0,908]
-.L618:
+.L628:
add x3, x3, :lo12:.LANCHOR2
mov w0, 12
ldrh w4, [x3,920]
@@ -4902,36 +5002,36 @@ FtlGcRefreshOpenBlock:
add x2, x2, :lo12:.LANCHOR2
ldrh w5, [x2,936]
cmp w5, w19
- beq .L623
+ beq .L633
ldrh w4, [x2,938]
cmp w4, w19
- beq .L623
+ beq .L633
ldrh w3, [x2,940]
cmp w3, w19
- beq .L623
+ beq .L633
ldrh w1, [x2,942]
cmp w1, w19
- beq .L623
+ beq .L633
mov w0, 65535
cmp w5, w0
- bne .L624
+ bne .L634
strh w19, [x2,936]
- b .L623
-.L624:
+ b .L633
+.L634:
cmp w4, w0
- bne .L625
+ bne .L635
strh w19, [x2,938]
- b .L623
-.L625:
+ b .L633
+.L635:
cmp w3, w0
- bne .L626
+ bne .L636
strh w19, [x2,940]
- b .L623
-.L626:
+ b .L633
+.L636:
cmp w1, w0
- bne .L623
+ bne .L633
strh w19, [x2,942]
-.L623:
+.L633:
mov w0, 0
ldr x19, [sp,16]
ldp x29, x30, [sp], 32
@@ -4954,39 +5054,39 @@ FtlGcRefreshBlock:
add x2, x2, :lo12:.LANCHOR2
ldrh w6, [x2,936]
cmp w6, w19
- beq .L628
+ beq .L638
ldrh w5, [x2,938]
cmp w5, w19
- beq .L628
+ beq .L638
ldrh w4, [x2,940]
cmp w4, w19
- beq .L628
+ beq .L638
ldrh w3, [x2,942]
cmp w3, w19
- beq .L628
+ beq .L638
mov w1, 65535
cmp w6, w1
- bne .L629
+ bne .L639
strh w19, [x2,936]
- b .L628
-.L629:
+ b .L638
+.L639:
cmp w5, w1
- bne .L630
+ bne .L640
strh w19, [x2,938]
- b .L637
-.L630:
+ b .L647
+.L640:
cmp w4, w1
- bne .L631
+ bne .L641
strh w19, [x2,940]
- b .L637
-.L631:
+ b .L647
+.L641:
cmp w3, w1
mov w0, -1
- bne .L628
+ bne .L638
strh w19, [x2,942]
-.L637:
+.L647:
mov w0, 0
-.L628:
+.L638:
ldr x19, [sp,16]
ldp x29, x30, [sp], 32
ret
@@ -5013,39 +5113,39 @@ FtlGcMarkBadPhyBlk:
bl printk
mov w0, w21
bl FtlGcRefreshBlock
- adrp x0, .LANCHOR0+1940
- ldr w0, [x0,#:lo12:.LANCHOR0+1940]
- cbz w0, .L639
+ adrp x0, .LANCHOR0+1948
+ ldr w0, [x0,#:lo12:.LANCHOR0+1948]
+ cbz w0, .L649
ubfiz x0, x21, 1, 16
ldr x2, [x22,-80]
ldrh w1, [x2,x0]
cmp w1, 39
- bls .L639
+ bls .L649
sub w1, w1, #40
strh w1, [x2,x0]
-.L639:
+.L649:
add x2, x19, :lo12:.LANCHOR2
mov x0, 0
add x2, x2, 952
ldrh w1, [x2,-8]
-.L640:
+.L650:
cmp w1, w0, uxth
- bls .L646
+ bls .L656
add x0, x0, 1
add x3, x2, x0, lsl 1
ldrh w3, [x3,-2]
cmp w3, w20
- bne .L640
- b .L641
-.L646:
+ bne .L650
+ b .L651
+.L656:
cmp w1, 15
- bhi .L641
+ bhi .L651
add x19, x19, :lo12:.LANCHOR2
add w0, w1, 1
add x19, x19, 952
strh w0, [x19,-8]
strh w20, [x19,w1,sxtw 1]
-.L641:
+.L651:
mov w0, 0
ldr x23, [sp,48]
ldp x19, x20, [sp,16]
@@ -5063,16 +5163,16 @@ FtlGcReFreshBadBlk:
adrp x19, .LANCHOR2
add x0, x19, :lo12:.LANCHOR2
ldrh w1, [x0,944]
- cbz w1, .L648
+ cbz w1, .L658
ldrh w3, [x0,936]
mov w2, 65535
cmp w3, w2
- bne .L648
+ bne .L658
ldrh w2, [x0,986]
cmp w2, w1
- bcc .L649
+ bcc .L659
strh wzr, [x0,986]
-.L649:
+.L659:
add x19, x19, :lo12:.LANCHOR2
add x0, x19, 952
ldrh w1, [x19,986]
@@ -5082,7 +5182,7 @@ FtlGcReFreshBadBlk:
ldrh w0, [x19,986]
add w0, w0, 1
strh w0, [x19,986]
-.L648:
+.L658:
mov w0, 0
ldr x19, [sp,16]
ldp x29, x30, [sp], 32
@@ -5107,17 +5207,17 @@ BuildFlashLsbPageTable:
add x29, sp, 0
stp x19, x20, [sp,16]
mov w20, w1
- cbnz w0, .L655
+ cbnz w0, .L665
adrp x1, .LANCHOR0
mov x0, 0
add x1, x1, :lo12:.LANCHOR0
-.L656:
- add x2, x1, 196
+.L666:
+ add x2, x1, 200
strh w0, [x2,x0,lsl 1]
add x0, x0, 1
cmp x0, 256
- bne .L656
-.L662:
+ bne .L666
+.L672:
adrp x19, .LANCHOR2
mov w1, 255
add x19, x19, :lo12:.LANCHOR2
@@ -5129,42 +5229,42 @@ BuildFlashLsbPageTable:
adrp x1, .LANCHOR0
mov x0, 0
add x1, x1, :lo12:.LANCHOR0
- b .L657
-.L655:
+ b .L667
+.L665:
cmp w0, 1
- bne .L658
+ bne .L668
adrp x3, .LANCHOR0
mov x0, 0
mov w4, 3
mov w5, 2
add x3, x3, :lo12:.LANCHOR0
-.L661:
+.L671:
cmp x0, 3
uxth w1, w0
mov w2, w1
- bls .L659
+ bls .L669
ubfiz w2, w1, 1, 15
and w1, w1, 1
cmp w1, wzr
csel w1, w4, w5, ne
sub w2, w2, w1
uxth w2, w2
-.L659:
- add x1, x3, 196
+.L669:
+ add x1, x3, 200
strh w2, [x1,x0,lsl 1]
add x0, x0, 1
cmp x0, 256
- bne .L661
- b .L662
-.L658:
+ bne .L671
+ b .L672
+.L668:
cmp w0, 2
- bne .L663
+ bne .L673
adrp x3, .LANCHOR0
mov w1, 65535
mov x0, 0
add x3, x3, :lo12:.LANCHOR0
-.L665:
- add x4, x3, 196
+.L675:
+ add x4, x3, 200
cmp x0, 1
uxth w2, w0
csel w2, w1, w2, hi
@@ -5173,45 +5273,45 @@ BuildFlashLsbPageTable:
add x0, x0, 1
cmp x0, 256
uxth w1, w1
- bne .L665
- b .L662
-.L663:
+ bne .L675
+ b .L672
+.L673:
cmp w0, 3
- bne .L666
+ bne .L676
adrp x3, .LANCHOR0
mov x0, 0
mov w4, 5
mov w5, 4
add x3, x3, :lo12:.LANCHOR0
-.L669:
+.L679:
cmp x0, 5
uxth w1, w0
mov w2, w1
- bls .L667
+ bls .L677
ubfiz w2, w1, 1, 15
and w1, w1, 1
cmp w1, wzr
csel w1, w4, w5, ne
sub w2, w2, w1
uxth w2, w2
-.L667:
- add x1, x3, 196
+.L677:
+ add x1, x3, 200
strh w2, [x1,x0,lsl 1]
add x0, x0, 1
cmp x0, 256
- bne .L669
- b .L662
-.L666:
+ bne .L679
+ b .L672
+.L676:
cmp w0, 4
- bne .L670
+ bne .L680
adrp x1, .LANCHOR0
mov w5, 7
add x1, x1, :lo12:.LANCHOR0
mov w4, 6
- add x2, x1, 196
+ add x2, x1, 200
strh w0, [x2,8]
mov w0, 5
- strh wzr, [x1,196]
+ strh wzr, [x1,200]
mov w1, 1
strh w0, [x2,10]
mov w0, 7
@@ -5224,7 +5324,7 @@ BuildFlashLsbPageTable:
strh w0, [x2,14]
mov w0, 8
strh w1, [x2,6]
-.L672:
+.L682:
and w3, w0, 1
ubfiz w1, w0, 1, 15
add w0, w0, 1
@@ -5235,42 +5335,42 @@ BuildFlashLsbPageTable:
sub w1, w1, w3
cmp w0, 256
strh w1, [x2,14]
- bne .L672
- b .L662
-.L670:
+ bne .L682
+ b .L672
+.L680:
cmp w0, 5
- bne .L673
+ bne .L683
adrp x2, .LANCHOR0
mov x0, 0
add x2, x2, :lo12:.LANCHOR0
-.L674:
- add x1, x2, 196
+.L684:
+ add x1, x2, 200
strh w0, [x1,x0,lsl 1]
add x0, x0, 1
cmp x0, 16
- bne .L674
+ bne .L684
mov x0, 0
-.L675:
+.L685:
add x2, x1, x0
add w3, w0, 16
add x0, x0, 2
cmp x0, 480
strh w3, [x2,32]
- bne .L675
- b .L662
-.L673:
+ bne .L685
+ b .L672
+.L683:
cmp w0, 6
- bne .L662
+ bne .L686
adrp x1, .LANCHOR0
mov x2, 0
mov w4, 12
mov w5, 10
add x1, x1, :lo12:.LANCHOR0
-.L678:
+.L689:
cmp x2, 5
uxth w3, w2
mov w0, w3
- bls .L676
+ bls .L687
add w0, w3, w3, lsl 1
and w3, w3, 1
cmp w3, wzr
@@ -5278,22 +5378,42 @@ BuildFlashLsbPageTable:
csel w3, w4, w5, ne
sub w0, w0, w3
uxth w0, w0
-.L676:
- add x3, x1, 196
+.L687:
+ add x3, x1, 200
strh w0, [x3,x2,lsl 1]
add x2, x2, 1
cmp x2, 256
- bne .L678
- b .L662
-.L657:
+ bne .L689
+ b .L672
+.L686:
+ cmp w0, 9
+ bne .L672
+ adrp x0, .LANCHOR0
+ add x0, x0, :lo12:.LANCHOR0
+ add x1, x0, 200
+ strh wzr, [x0,200]
+ mov w0, 1
+ strh w0, [x1,2]
+ mov w0, 2
+ strh w0, [x1,4]
+ mov x0, 0
+.L690:
+ add x2, x1, x0
+ add w3, w0, 3
+ add x0, x0, 2
+ cmp x0, 506
+ strh w3, [x2,6]
+ bne .L690
+ b .L672
+.L667:
cmp w20, w0, uxth
- bls .L696
- add x2, x1, 196
+ bls .L709
+ add x2, x1, 200
ldrh w2, [x2,x0,lsl 1]
add x0, x0, 1
strh w2, [x19,w2,sxtw 1]
- b .L657
-.L696:
+ b .L667
+.L709:
ldp x19, x20, [sp,16]
ldp x29, x30, [sp], 32
ret
@@ -5302,42 +5422,30 @@ BuildFlashLsbPageTable:
.global FlashDieInfoInit
.type FlashDieInfoInit, %function
FlashDieInfoInit:
- stp x29, x30, [sp, -96]!
+ stp x29, x30, [sp, -80]!
add x29, sp, 0
stp x21, x22, [sp,32]
adrp x22, .LANCHOR2
- str x27, [sp,80]
- add x1, x22, :lo12:.LANCHOR2
adrp x21, .LANCHOR0
+ add x0, x22, :lo12:.LANCHOR2
stp x19, x20, [sp,16]
stp x23, x24, [sp,48]
stp x25, x26, [sp,64]
- strb wzr, [x1,2012]
- adrp x1, .LANCHOR1+482
- add x0, x21, :lo12:.LANCHOR0
- ldrh w1, [x1,#:lo12:.LANCHOR1+482]
- strb wzr, [x0,1845]
- cmp w1, 256
- bls .L698
- mov w1, 512
- b .L714
-.L698:
- cmp w1, 128
- bls .L714
- mov w1, 256
-.L714:
+ strb wzr, [x0,2012]
+ adrp x0, .LANCHOR1+482
add x19, x21, :lo12:.LANCHOR0
- str w1, [x0,12]
- mov w2, 8
+ mov x24, 0
+ add x25, x19, 1620
+ ldrh w0, [x0,#:lo12:.LANCHOR1+482]
+ strb wzr, [x19,1845]
+ bl FlashBlockAlignInit
mov w1, 0
+ mov w2, 8
add x0, x19, 1848
- add x25, x19, 708
- mov x24, 0
- add x26, x19, 1620
bl ftl_memset
mov w1, 0
mov w2, 32
- mov x0, x25
+ add x0, x19, 712
bl ftl_memset
add x0, x19, 1652
mov w1, 0
@@ -5345,34 +5453,34 @@ FlashDieInfoInit:
bl ftl_memset
ldr x20, [x19,744]
add x23, x20, 1
-.L702:
+.L712:
ldrb w2, [x20]
mov x0, x23
- add x1, x26, x24, lsl 3
+ add x1, x25, x24, lsl 3
bl FlashMemCmp8
- cbnz w0, .L701
+ cbnz w0, .L711
ldrb w1, [x19,1845]
- str w0, [x25,w1,sxtw 2]
+ add x2, x19, 712
+ str w0, [x2,w1,sxtw 2]
add w0, w1, 1
add x1, x19, x1, sxtw
strb w0, [x19,1845]
strb w24, [x1,1848]
-.L701:
+.L711:
add x24, x24, 1
cmp x24, 4
- bne .L702
+ bne .L712
add x19, x21, :lo12:.LANCHOR0
add x0, x22, :lo12:.LANCHOR2
ldrb w1, [x19,1845]
strb w1, [x0,2012]
ldrb w0, [x20,8]
cmp w0, 2
- beq .L703
-.L707:
+ beq .L713
+.L717:
add x21, x21, :lo12:.LANCHOR0
ldrb w1, [x20,13]
add x22, x22, :lo12:.LANCHOR2
- ldr x27, [sp,80]
ldp x23, x24, [sp,48]
ldrb w0, [x21,1845]
ldp x25, x26, [sp,64]
@@ -5382,41 +5490,41 @@ FlashDieInfoInit:
mul w0, w0, w1
strh w0, [x22,2014]
ldp x21, x22, [sp,32]
- ldp x29, x30, [sp], 96
+ ldp x29, x30, [sp], 80
ret
-.L703:
- ldr w26, [x19,12]
+.L713:
+ ldr w25, [x19,12]
mov x24, 0
- add x27, x19, 1620
- add x25, x19, 708
-.L706:
+ add x26, x19, 1620
+.L716:
ldrb w2, [x20]
mov x0, x23
- add x1, x27, x24, lsl 3
+ add x1, x26, x24, lsl 3
bl FlashMemCmp8
- cbnz w0, .L704
+ cbnz w0, .L714
ldrb w1, [x20,13]
+ add x4, x19, 712
ldrb w3, [x19,1845]
- mul w0, w1, w26
+ mul w0, w1, w25
ldrh w1, [x20,14]
mov x2, x3
and w1, w1, 65280
mul w1, w0, w1
- str w1, [x25,w3,sxtw 2]
+ str w1, [x4,w3,sxtw 2]
ldrb w0, [x20,23]
- cbz w0, .L705
+ cbz w0, .L715
lsl w1, w1, 1
- str w1, [x25,w3,sxtw 2]
-.L705:
+ str w1, [x4,w3,sxtw 2]
+.L715:
add x0, x19, x3
add w2, w2, 1
strb w2, [x19,1845]
strb w24, [x0,1848]
-.L704:
+.L714:
add x24, x24, 1
cmp x24, 4
- bne .L706
- b .L707
+ bne .L716
+ b .L717
.size FlashDieInfoInit, .-FlashDieInfoInit
.align 2
.global ftl_read_flash_info
@@ -5437,9 +5545,9 @@ ftl_read_flash_info:
ldr w0, [x1,12]
mul w0, w0, w2
strh w0, [x19,4]
- ldrb w0, [x1,1936]
+ ldrb w0, [x1,1944]
strb w0, [x19,7]
- ldr w0, [x1,2060]
+ ldr w0, [x1,2064]
str w0, [x19]
ldr x0, [x1,744]
ldrb w4, [x1,1845]
@@ -5452,9 +5560,9 @@ ftl_read_flash_info:
strb w0, [x19,9]
mov x0, 0
strb wzr, [x19,10]
-.L716:
+.L725:
cmp w4, w0, uxtb
- bls .L718
+ bls .L727
add x2, x1, 1848
ldrb w3, [x19,10]
ldrb w2, [x0,x2]
@@ -5462,8 +5570,8 @@ ftl_read_flash_info:
lsl w2, w5, w2
orr w2, w2, w3
strb w2, [x19,10]
- b .L716
-.L718:
+ b .L725
+.L727:
ldr x19, [sp,16]
ldp x29, x30, [sp], 32
ret
@@ -5511,36 +5619,36 @@ FtlMemInit:
strh w1, [x0,940]
strh w1, [x0,942]
mov w1, 32
- ldrh w2, [x3,2024]
+ ldrh w2, [x3,2030]
strh w1, [x0,848]
mov w1, 128
strh w1, [x0,850]
mov w1, 1024
strh wzr, [x0,856]
sdiv w2, w1, w2
- ldrh w1, [x3,1948]
+ ldrh w1, [x3,1956]
strh wzr, [x0,944]
lsl w1, w1, 2
strh wzr, [x0,2040]
strh wzr, [x0,986]
cmp w2, w1
str w2, [x0,2044]
- bls .L720
+ bls .L729
str w1, [x0,2044]
-.L720:
+.L729:
add x20, x22, :lo12:.LANCHOR0
add x19, x21, :lo12:.LANCHOR2
mov w24, 56
- ldrh w0, [x20,2022]
+ ldrh w0, [x20,2028]
str wzr, [x20,2080]
lsl w0, w0, 1
bl ftl_malloc
str x0, [x19,912]
- ldrh w1, [x20,2022]
+ ldrh w1, [x20,2028]
mov w0, 12
mul w0, w1, w0
bl ftl_malloc
- ldrh w23, [x20,1948]
+ ldrh w23, [x20,1956]
str x0, [x19,928]
mul w23, w23, w24
lsl w25, w23, 3
@@ -5563,8 +5671,8 @@ FtlMemInit:
mul w0, w0, w24
bl ftl_malloc
str x0, [x20,2088]
- ldrh w0, [x20,1948]
- ldrh w23, [x20,2028]
+ ldrh w0, [x20,1956]
+ ldrh w23, [x20,2034]
lsl w0, w0, 1
add w0, w0, 1
str w0, [x19,904]
@@ -5595,9 +5703,9 @@ FtlMemInit:
mov w0, 24
mul w0, w1, w0
bl ftl_malloc
- ldrh w23, [x20,1948]
+ ldrh w23, [x20,1956]
str x0, [x19,872]
- ldrh w0, [x20,2030]
+ ldrh w0, [x20,2036]
mul w23, w0, w23
mov w0, w23
bl ftl_malloc
@@ -5605,17 +5713,17 @@ FtlMemInit:
lsl w0, w23, 3
bl ftl_malloc
str x0, [x19,2128]
- ldrh w1, [x20,2030]
+ ldrh w1, [x20,2036]
ldr w0, [x19,904]
mul w0, w1, w0
bl ftl_malloc
str x0, [x19,888]
- ldrh w1, [x20,2030]
+ ldrh w1, [x20,2036]
ldr w0, [x19,2044]
mul w0, w1, w0
bl ftl_malloc
str x0, [x19,2136]
- ldrh w0, [x20,1958]
+ ldrh w0, [x20,1966]
lsl w0, w0, 1
strh w0, [x19,2144]
and w0, w0, 65534
@@ -5627,7 +5735,7 @@ FtlMemInit:
strh w0, [x19,2144]
lsl w0, w0, 9
bl ftl_malloc
- ldrh w23, [x20,1958]
+ ldrh w23, [x20,1966]
str x0, [x19,2160]
add x0, x0, 32
lsl w23, w23, 1
@@ -5637,7 +5745,7 @@ FtlMemInit:
str x0, [x19,2168]
mov w0, w23
bl ftl_malloc
- ldr w23, [x20,2048]
+ ldr w23, [x20,2052]
str x0, [x21,#:lo12:.LANCHOR2]
lsl w23, w23, 1
mov w0, w23
@@ -5646,32 +5754,32 @@ FtlMemInit:
mov w0, w23
bl ftl_malloc
str x0, [x19,2184]
- ldrh w0, [x20,1958]
+ ldrh w0, [x20,1966]
lsr w0, w0, 3
add w0, w0, 4
bl ftl_malloc
str x0, [x22,#:lo12:.LANCHOR0]
- ldrh w0, [x20,2040]
+ ldrh w0, [x20,2044]
lsl w0, w0, 1
bl ftl_malloc
str x0, [x20,2072]
- ldrh w0, [x20,2040]
+ ldrh w0, [x20,2044]
lsl w0, w0, 1
bl ftl_malloc
str x0, [x19,2192]
- ldrh w0, [x20,2040]
+ ldrh w0, [x20,2044]
lsl w0, w0, 2
bl ftl_malloc
str x0, [x19,2200]
- ldrh w0, [x20,2042]
+ ldrh w0, [x20,2046]
lsl w0, w0, 2
bl ftl_malloc
str x0, [x19,2208]
- ldrh w2, [x20,2042]
+ ldrh w2, [x20,2046]
mov w1, 0
lsl w2, w2, 2
bl ftl_memset
- ldrh w23, [x20,2056]
+ ldrh w23, [x20,2060]
lsl w23, w23, 2
mov w0, w23
bl ftl_malloc
@@ -5679,26 +5787,26 @@ FtlMemInit:
mov w0, w23
bl ftl_malloc
str x0, [x19,2224]
- ldr w0, [x20,2048]
+ ldr w0, [x20,2052]
lsl w0, w0, 2
bl ftl_malloc
str x0, [x19,2232]
- ldrh w0, [x20,2058]
+ ldrh w0, [x20,2062]
lsl w0, w0, 4
bl ftl_malloc
str x0, [x19,184]
- ldrh w1, [x20,2058]
- ldrh w0, [x20,2028]
+ ldrh w1, [x20,2062]
+ ldrh w0, [x20,2034]
mul w0, w1, w0
bl ftl_malloc
str x0, [x19,2240]
- ldrh w1, [x20,1958]
+ ldrh w1, [x20,1966]
mov w0, 6
mul w0, w1, w0
bl ftl_malloc
str x0, [x19,-16]
- ldrh w0, [x20,2014]
- ldrh w1, [x20,1970]
+ ldrh w0, [x20,2022]
+ ldrh w1, [x20,1978]
add w0, w0, 31
asr w0, w0, 5
strh w0, [x19,2248]
@@ -5708,112 +5816,112 @@ FtlMemInit:
str x0, [x20,2136]
add x1, x20, 2104
ldrh w4, [x19,2248]
- ldrh w5, [x20,1970]
+ ldrh w5, [x20,1978]
mov w0, 1
mov w2, w4
-.L721:
+.L730:
cmp w0, w5
add x1, x1, 8
- bcs .L821
+ bcs .L830
ldr x3, [x20,2136]
add w0, w0, 1
add x3, x3, x2, uxtw 2
add w2, w2, w4
str x3, [x1,32]
- b .L721
-.L821:
+ b .L730
+.L830:
add x1, x22, :lo12:.LANCHOR0
-.L723:
+.L732:
cmp w0, 8
- beq .L822
+ beq .L831
add x2, x1, x0, uxtw 3
add w0, w0, 1
str xzr, [x2,2136]
- b .L723
-.L822:
+ b .L732
+.L831:
add x0, x21, :lo12:.LANCHOR2
ldr x1, [x0,2176]
- cbnz x1, .L725
-.L727:
+ cbnz x1, .L734
+.L736:
adrp x0, .LC80
adrp x1, .LANCHOR3
add x0, x0, :lo12:.LC80
add x1, x1, :lo12:.LANCHOR3
bl printk
mov w0, -1
- b .L726
-.L725:
+ b .L735
+.L734:
ldr x1, [x0,2184]
- cbz x1, .L727
+ cbz x1, .L736
ldr x1, [x0,2216]
- cbz x1, .L727
+ cbz x1, .L736
ldr x1, [x0,2232]
- cbz x1, .L727
+ cbz x1, .L736
ldr x1, [x0,184]
- cbz x1, .L727
+ cbz x1, .L736
ldr x1, [x0,2240]
- cbz x1, .L727
+ cbz x1, .L736
ldr x0, [x0,-16]
- cbz x0, .L727
+ cbz x0, .L736
add x22, x22, :lo12:.LANCHOR0
ldr x0, [x22,2136]
- cbz x0, .L727
+ cbz x0, .L736
adrp x0, .LANCHOR2
ldr x0, [x0,#:lo12:.LANCHOR2]
- cbz x0, .L727
+ cbz x0, .L736
add x0, x21, :lo12:.LANCHOR2
ldr x1, [x0,912]
- cbz x1, .L727
+ cbz x1, .L736
ldr x1, [x0,928]
- cbz x1, .L727
+ cbz x1, .L736
ldr x1, [x0,2048]
- cbz x1, .L727
+ cbz x1, .L736
ldr x1, [x0,2064]
- cbz x1, .L727
+ cbz x1, .L736
ldr x1, [x0,-88]
- cbz x1, .L727
+ cbz x1, .L736
ldr x1, [x0,896]
- cbz x1, .L727
+ cbz x1, .L736
ldr x1, [x0,2056]
- cbz x1, .L727
+ cbz x1, .L736
ldr x1, [x0,2072]
- cbz x1, .L727
+ cbz x1, .L736
ldr x1, [x0,2080]
- cbz x1, .L727
+ cbz x1, .L736
ldr x0, [x0,2088]
- cbz x0, .L727
+ cbz x0, .L736
add x0, x21, :lo12:.LANCHOR2
ldr x1, [x0,880]
- cbz x1, .L727
+ cbz x1, .L736
ldr x1, [x0,2104]
- cbz x1, .L727
+ cbz x1, .L736
ldr x1, [x0,2112]
- cbz x1, .L727
+ cbz x1, .L736
ldr x1, [x0,872]
- cbz x1, .L727
+ cbz x1, .L736
ldr x1, [x0,2120]
- cbz x1, .L727
+ cbz x1, .L736
ldr x1, [x0,2128]
- cbz x1, .L727
+ cbz x1, .L736
ldr x1, [x0,888]
- cbz x1, .L727
+ cbz x1, .L736
ldr x1, [x0,-80]
- cbz x1, .L727
+ cbz x1, .L736
ldr x0, [x0,2152]
- cbz x0, .L727
+ cbz x0, .L736
adrp x0, .LANCHOR0+2072
ldr x0, [x0,#:lo12:.LANCHOR0+2072]
- cbz x0, .L727
+ cbz x0, .L736
adrp x0, .LANCHOR2
add x0, x0, :lo12:.LANCHOR2
ldr x1, [x0,2192]
- cbz x1, .L727
+ cbz x1, .L736
ldr x1, [x0,2200]
- cbz x1, .L727
+ cbz x1, .L736
ldr x0, [x0,2208]
- cbz x0, .L727
+ cbz x0, .L736
mov w0, 0
-.L726:
+.L735:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -5839,10 +5947,10 @@ FtlBbt2Bitmap:
mov x3, 0
mov w0, 65535
mov w5, 1
-.L825:
+.L834:
ldrh w2, [x20,x3]
cmp w2, w0
- beq .L823
+ beq .L832
ubfx x4, x2, 5, 11
add x3, x3, 2
lsl x4, x4, 2
@@ -5851,8 +5959,8 @@ FtlBbt2Bitmap:
ldr w1, [x19,x4]
orr w2, w1, w2
str w2, [x19,x4]
- bne .L825
-.L823:
+ bne .L834
+.L832:
ldp x19, x20, [sp,16]
ldp x29, x30, [sp], 32
ret
@@ -5915,76 +6023,76 @@ ftl_free_no_use_map_blk:
mov x0, x21
bl ftl_memset
mov w0, 0
-.L831:
+.L840:
ldrh w1, [x19,6]
cmp w1, w0
- bls .L853
+ bls .L862
ubfiz x1, x0, 2, 16
ldr w2, [x20,x1]
mov w1, 0
ubfx x2, x2, 10, 16
-.L832:
+.L841:
ldrh w3, [x19,10]
cmp w3, w1
- bls .L854
+ bls .L863
ubfiz x3, x1, 1, 16
ldrh w4, [x22,x3]
cmp w2, w4
- bne .L833
- cbz w4, .L833
+ bne .L842
+ cbz w4, .L842
ldrh w4, [x21,x3]
add w4, w4, 1
strh w4, [x21,x3]
-.L833:
+.L842:
add w1, w1, 1
uxth w1, w1
- b .L832
-.L854:
+ b .L841
+.L863:
add w0, w0, 1
uxth w0, w0
- b .L831
-.L853:
- adrp x0, .LANCHOR0+2020
+ b .L840
+.L862:
+ adrp x0, .LANCHOR0+2026
mov w23, 0
mov w20, w23
- ldrh w1, [x0,#:lo12:.LANCHOR0+2020]
+ ldrh w1, [x0,#:lo12:.LANCHOR0+2026]
ldrh w0, [x19]
strh w1, [x21,x0,lsl 1]
ldrh w24, [x21]
-.L836:
+.L845:
ldrh w0, [x19,10]
cmp w0, w20
- bls .L855
+ bls .L864
ubfiz x2, x20, 1, 16
ldrh w1, [x21,x2]
cmp w24, w1
- bls .L837
+ bls .L846
ldrh w0, [x22,x2]
add x25, x22, x2
- cbnz w0, .L838
- b .L839
-.L837:
- cbnz w1, .L839
+ cbnz w0, .L847
+ b .L848
+.L846:
+ cbnz w1, .L848
ldrh w0, [x22,x2]
add x25, x22, x2
- cbz w0, .L839
-.L841:
+ cbz w0, .L848
+.L850:
mov w1, 1
bl FtlFreeSysBlkQueueIn
strh wzr, [x25]
ldrh w0, [x19,8]
sub w0, w0, #1
strh w0, [x19,8]
-.L839:
+.L848:
add w20, w20, 1
uxth w20, w20
- b .L836
-.L838:
+ b .L845
+.L847:
mov w23, w20
mov w24, w1
- cbz w1, .L841
- b .L839
-.L855:
+ cbz w1, .L850
+ b .L848
+.L864:
mov w0, w23
ldr x25, [sp,64]
ldp x19, x20, [sp,16]
@@ -6006,23 +6114,23 @@ FtlL2PDataInit:
stp x21, x22, [sp,32]
add x21, x20, :lo12:.LANCHOR0
add x22, x19, :lo12:.LANCHOR2
- ldr w2, [x21,2048]
+ ldr w2, [x21,2052]
ldr x0, [x22,2184]
lsl w2, w2, 1
bl ftl_memset
- ldrh w3, [x21,2028]
+ ldrh w3, [x21,2034]
mov w1, 255
- ldrh w2, [x21,2058]
+ ldrh w2, [x21,2062]
ldr x0, [x22,2240]
mul w2, w3, w2
bl ftl_memset
mov w1, 0
mov w5, -1
-.L857:
+.L866:
add x3, x20, :lo12:.LANCHOR0
- ldrh w0, [x3,2058]
+ ldrh w0, [x3,2062]
cmp w0, w1
- bls .L859
+ bls .L868
add x4, x19, :lo12:.LANCHOR2
ubfiz x0, x1, 4, 16
ldr x2, [x4,184]
@@ -6032,7 +6140,7 @@ FtlL2PDataInit:
strh w5, [x2,x0]
ldr x2, [x4,184]
add x2, x2, x0
- ldrh w0, [x3,2028]
+ ldrh w0, [x3,2034]
ldr x3, [x4,2240]
mul w0, w0, w1
add w1, w1, 1
@@ -6041,20 +6149,20 @@ FtlL2PDataInit:
and x0, x0, -4
add x0, x3, x0
str x0, [x2,8]
- b .L857
-.L859:
+ b .L866
+.L868:
add x0, x19, :lo12:.LANCHOR2
mov w2, -1
add x1, x0, 2256
strh w2, [x0,2258]
strh w2, [x0,2256]
- ldr w2, [x3,2048]
+ ldr w2, [x3,2052]
strh w2, [x0,2266]
mov w2, -3902
strh w2, [x0,2260]
ldrh w2, [x0,2320]
strh w2, [x0,2264]
- ldrh w2, [x3,2056]
+ ldrh w2, [x3,2060]
strh w2, [x0,2262]
ldr x2, [x0,2176]
str x2, [x0,2272]
@@ -6084,22 +6192,22 @@ FtlVariablesInit:
add x20, x20, :lo12:.LANCHOR0
strh w0, [x19,2336]
mov w0, -1
- ldrh w2, [x20,2040]
+ ldrh w2, [x20,2044]
str w0, [x19,2348]
ldr x0, [x20,2072]
lsl w2, w2, 1
str xzr, [x19,2328]
str wzr, [x19,2340]
str wzr, [x19,2344]
- str wzr, [x20,1940]
- strh wzr, [x20,2066]
+ str wzr, [x20,1948]
+ strh wzr, [x20,2070]
bl ftl_memset
- ldrh w2, [x20,1958]
+ ldrh w2, [x20,1966]
mov w1, 0
ldr x0, [x19,-80]
lsl w2, w2, 1
bl ftl_memset
- ldrh w2, [x20,1958]
+ ldrh w2, [x20,1966]
mov w1, 0
ldr x0, [x19,2152]
lsl w2, w2, 1
@@ -6137,7 +6245,7 @@ SupperBlkListInit:
adrp x21, .LANCHOR2
mov w25, 0
add x19, x21, :lo12:.LANCHOR2
- ldrh w2, [x0,1958]
+ ldrh w2, [x0,1966]
mov w22, w25
mov w26, 32768
ldr x0, [x19,-16]
@@ -6150,20 +6258,20 @@ SupperBlkListInit:
strh wzr, [x19,32]
strh wzr, [x19,2016]
mov w19, w25
-.L862:
+.L871:
add x0, x23, :lo12:.LANCHOR0
- ldrh w1, [x0,1956]
+ ldrh w1, [x0,1964]
cmp w19, w1
- bge .L869
+ bge .L878
mov w20, 0
- ldrh w3, [x0,1948]
- ldrh w2, [x0,2018]
+ ldrh w3, [x0,1956]
+ ldrh w2, [x0,2024]
mov w28, w20
mov x27, x0
-.L870:
+.L879:
cmp w28, w3
- bge .L871
- add x0, x27, 1976
+ bge .L880
+ add x0, x27, 1984
mov w1, w19
str x2, [x29,96]
str x3, [x29,104]
@@ -6172,54 +6280,54 @@ SupperBlkListInit:
bl FtlBbmIsBadBlock
ldr x3, [x29,104]
ldr x2, [x29,96]
- cbnz w0, .L863
+ cbnz w0, .L872
add w20, w2, w20
sxth w20, w20
-.L863:
+.L872:
add w28, w28, 1
sxth w28, w28
- b .L870
-.L871:
- cbz w20, .L865
+ b .L879
+.L880:
+ cbz w20, .L874
sdiv w20, w26, w20
sxth w20, w20
- b .L866
-.L865:
+ b .L875
+.L874:
ldr x0, [x21,#:lo12:.LANCHOR2]
mov w1, -1
strh w1, [x0,w19,sxtw 1]
-.L866:
+.L875:
add x0, x21, :lo12:.LANCHOR2
ldr x1, [x0,-16]
smaddl x1, w19, w24, x1
strh w20, [x1,4]
ldrh w1, [x0,40]
cmp w19, w1
- beq .L867
+ beq .L876
ldrh w1, [x0,88]
cmp w19, w1
- beq .L867
+ beq .L876
ldrh w0, [x0,136]
cmp w19, w0
- beq .L867
+ beq .L876
ldr x0, [x21,#:lo12:.LANCHOR2]
ldrh w0, [x0,w19,sxtw 1]
- cbnz w0, .L868
+ cbnz w0, .L877
add w4, w25, 1
mov w0, w19
uxth w25, w4
bl INSERT_FREE_LIST
- b .L867
-.L868:
+ b .L876
+.L877:
add w22, w22, 1
mov w0, w19
uxth w22, w22
bl INSERT_DATA_LIST
-.L867:
+.L876:
add w19, w19, 1
sxth w19, w19
- b .L862
-.L869:
+ b .L871
+.L878:
add x21, x21, :lo12:.LANCHOR2
mov w0, 0
ldp x19, x20, [sp,16]
@@ -6244,13 +6352,13 @@ FtlGcPageVarInit:
adrp x19, .LANCHOR2
add x20, x20, :lo12:.LANCHOR0
add x19, x19, :lo12:.LANCHOR2
- ldrh w2, [x20,2022]
+ ldrh w2, [x20,2028]
ldr x0, [x19,912]
lsl w2, w2, 1
strh wzr, [x19,908]
strh wzr, [x19,920]
bl ftl_memset
- ldrh w3, [x20,2022]
+ ldrh w3, [x20,2028]
mov w2, 12
ldr x0, [x19,928]
mov w1, 255
@@ -6295,64 +6403,67 @@ FlashLoadPhyInfoInRam:
add x29, sp, 0
stp x19, x20, [sp,16]
stp x21, x22, [sp,32]
- adrp x20, .LANCHOR1
+ adrp x19, .LANCHOR1
adrp x22, .LANCHOR0
- add x21, x20, :lo12:.LANCHOR1
+ add x21, x19, :lo12:.LANCHOR1
add x22, x22, :lo12:.LANCHOR0
str x23, [sp,48]
add x21, x21, 512
- mov w19, 0
+ mov w20, 0
add x22, x22, 1620
-.L879:
+.L888:
ldrb w2, [x21]
add x0, x21, 1
mov x1, x22
bl FlashMemCmp8
mov w23, w0
- cbnz w0, .L876
- add x0, x20, :lo12:.LANCHOR1
- ubfiz x19, x19, 5, 32
+ cbnz w0, .L885
+ add x0, x19, :lo12:.LANCHOR1
+ ubfiz x20, x20, 5, 32
add x1, x0, 512
- adds x19, x1, x19
- beq .L882
- ldrb w3, [x19,22]
+ adds x20, x1, x20
+ beq .L891
+ ldrb w3, [x20,22]
mov x2, 0
mov x1, x0
- b .L881
-.L876:
- add w19, w19, 1
+ b .L890
+.L885:
+ add w20, w20, 1
add x21, x21, 32
- cmp w19, 77
- bne .L879
- b .L882
-.L881:
+ cmp w20, 81
+ bne .L888
+ b .L891
+.L890:
add x4, x1, x2, lsl 5
mov w0, w2
- ldrb w4, [x4,2976]
+ ldrb w4, [x4,3104]
cmp w4, w3
- beq .L880
+ beq .L889
add x2, x2, 1
cmp x2, 4
- bne .L881
+ bne .L890
mov w0, w2
-.L880:
- add x20, x20, :lo12:.LANCHOR1
+.L889:
+ add x19, x19, :lo12:.LANCHOR1
ubfiz x1, x0, 5, 32
adrp x0, .LANCHOR0
- add x2, x20, 2976
+ add x2, x19, 3104
add x0, x0, :lo12:.LANCHOR0
add x1, x2, x1
add x0, x0, 88
mov w2, 32
+ add x19, x19, 472
bl ftl_memcpy
- add x0, x20, 472
- mov x1, x19
+ mov x0, x19
+ mov x1, x20
mov w2, 32
bl ftl_memcpy
- b .L877
-.L882:
+ ldrh w0, [x19,10]
+ bl FlashBlockAlignInit
+ b .L886
+.L891:
mov w23, -1
-.L877:
+.L886:
mov w0, w23
ldr x23, [sp,48]
ldp x19, x20, [sp,16]
@@ -6376,14 +6487,14 @@ NandcCopy1KB:
add x4, x0, 4096
add x21, x0, 512
add x2, x4, x2
- bne .L887
- cbz x3, .L888
+ bne .L896
+ cbz x3, .L897
mov x0, x2
mov x1, x3
mov w2, 1024
bl ftl_memcpy
-.L888:
- cbz x20, .L886
+.L897:
+ cbz x20, .L895
mov w0, 48
lsr w19, w19, 1
ldrb w1, [x20,1]
@@ -6397,15 +6508,15 @@ NandcCopy1KB:
ldrb w1, [x20,3]
orr w0, w0, w1, lsl 24
str w0, [x21,w19,sxtw 2]
- b .L886
-.L887:
- cbz x3, .L891
+ b .L895
+.L896:
+ cbz x3, .L900
mov x1, x2
mov x0, x3
mov w2, 1024
bl ftl_memcpy
-.L891:
- cbz x20, .L886
+.L900:
+ cbz x20, .L895
mov w0, 48
lsr w19, w19, 1
mul w19, w19, w0
@@ -6418,7 +6529,7 @@ NandcCopy1KB:
lsr w0, w0, 24
strb w1, [x20,2]
strb w0, [x20,3]
-.L886:
+.L895:
ldp x19, x20, [sp,16]
ldr x21, [sp,32]
ldp x29, x30, [sp], 48
@@ -6429,14 +6540,14 @@ NandcCopy1KB:
.type ftl_memcpy32, %function
ftl_memcpy32:
mov x3, 0
-.L903:
+.L912:
cmp w2, w3
- bls .L905
+ bls .L914
ldr w4, [x1,x3,lsl 2]
str w4, [x0,x3,lsl 2]
add x3, x3, 1
- b .L903
-.L905:
+ b .L912
+.L914:
ret
.size ftl_memcpy32, .-ftl_memcpy32
.align 2
@@ -6451,27 +6562,6 @@ ftl_memcmp:
ret
.size ftl_memcmp, .-ftl_memcmp
.align 2
- .global js_hash
- .type js_hash, %function
-js_hash:
- mov x5, x0
- mov w0, 42982
- mov x2, 0
- movk w0, 0x47c6, lsl 16
-.L908:
- cmp w1, w2
- bls .L910
- lsl w3, w0, 5
- ldrb w4, [x5,x2]
- add w3, w3, w0, lsr 2
- add x2, x2, 1
- add w3, w3, w4
- eor w0, w0, w3
- b .L908
-.L910:
- ret
- .size js_hash, .-js_hash
- .align 2
.global timer_get_time
.type timer_get_time, %function
timer_get_time:
@@ -6494,13 +6584,13 @@ FlashSramLoadStore:
add x29, sp, 0
ldr x4, [x4,#:lo12:.LANCHOR4+48]
add x4, x4, 4096
- cbnz w2, .L913
+ cbnz w2, .L918
add x1, x4, x1
- b .L915
-.L913:
+ b .L920
+.L918:
add x0, x4, x1
mov x1, x6
-.L915:
+.L920:
mov w2, w3
bl ftl_memcpy
ldp x29, x30, [sp], 16
@@ -6536,8 +6626,8 @@ rk_nand_resume:
.global rk_ftl_get_capacity
.type rk_ftl_get_capacity, %function
rk_ftl_get_capacity:
- adrp x0, .LANCHOR0+2060
- ldr w0, [x0,#:lo12:.LANCHOR0+2060]
+ adrp x0, .LANCHOR0+2064
+ ldr w0, [x0,#:lo12:.LANCHOR0+2064]
ret
.size rk_ftl_get_capacity, .-rk_ftl_get_capacity
.align 2
@@ -6590,42 +6680,42 @@ rknand_print_hex:
add x23, x23, :lo12:.LC81
add x21, x21, :lo12:.LC82
add x24, x24, :lo12:.LC75
-.L924:
+.L929:
cmp x19, x26
- beq .L932
- cbnz w20, .L925
+ beq .L937
+ cbnz w20, .L930
mov x0, x23
mov x1, x27
mov x2, x22
mov w3, w19
bl printk
-.L925:
+.L930:
cmp w25, 4
mov x0, x21
- bne .L926
+ bne .L931
ldr w1, [x22,x19,lsl 2]
- b .L931
-.L926:
+ b .L936
+.L931:
cmp w25, 2
- bne .L928
+ bne .L933
ldrsh w1, [x22,x19,lsl 1]
- b .L931
-.L928:
+ b .L936
+.L933:
ldrb w1, [x22,x19]
-.L931:
+.L936:
bl printk
add w20, w20, 1
cmp w20, 15
- bls .L929
+ bls .L934
adrp x1, .LC83
mov x0, x24
add x1, x1, :lo12:.LC83
mov w20, 0
bl printk
-.L929:
+.L934:
add x19, x19, 1
- b .L924
-.L932:
+ b .L929
+.L937:
adrp x0, .LC75
adrp x1, .LC83
add x1, x1, :lo12:.LC83
@@ -6649,31 +6739,31 @@ HynixGetReadRetryDefault:
add x29, sp, 0
stp x19, x20, [sp,16]
adrp x19, .LANCHOR0
- stp x25, x26, [sp,64]
- mov w26, w0
+ stp x27, x28, [sp,80]
+ mov w27, w0
add x0, x19, :lo12:.LANCHOR0
add x1, x0, 760
- cmp w26, 2
+ cmp w27, 2
stp x21, x22, [sp,32]
stp x23, x24, [sp,48]
- stp x27, x28, [sp,80]
- strb w26, [x0,760]
+ stp x25, x26, [sp,64]
+ strb w27, [x0,760]
mov w0, -84
strb w4, [x1,5]
strb w0, [x1,4]
mov w0, -81
strb w2, [x1,6]
strb w0, [x1,7]
- bne .L934
+ bne .L939
mov w0, -89
strb w0, [x1,4]
- adrp x0, .LANCHOR1+3121
+ adrp x0, .LANCHOR1+3249
mov w1, -9
- strb w1, [x0,#:lo12:.LANCHOR1+3121]
- b .L989
-.L934:
- cmp w26, 3
- bne .L936
+ strb w1, [x0,#:lo12:.LANCHOR1+3249]
+ b .L1002
+.L939:
+ cmp w27, 3
+ bne .L941
mov w0, -80
strb w0, [x1,4]
mov w0, -79
@@ -6689,10 +6779,10 @@ HynixGetReadRetryDefault:
mov w0, -74
strb w0, [x1,10]
mov w0, -73
- b .L1022
-.L936:
- cmp w26, 4
- bne .L937
+ b .L1042
+.L941:
+ cmp w27, 4
+ bne .L942
mov w5, -52
strb w5, [x1,4]
mov w5, -65
@@ -6705,40 +6795,40 @@ HynixGetReadRetryDefault:
mov w5, -51
strb w2, [x1,10]
strb w5, [x1,8]
-.L1022:
- mov w27, 8
+.L1042:
+ mov w26, 8
strb w0, [x1,11]
- mov w28, w27
- b .L935
-.L937:
- cmp w26, 5
- bne .L938
+ mov w28, w26
+ b .L940
+.L942:
+ cmp w27, 5
+ bne .L943
mov w0, 56
strb w0, [x1,4]
mov w0, 57
strb w0, [x1,5]
mov w0, 58
- mov w27, 8
+ mov w26, 8
strb w0, [x1,6]
mov w0, 59
strb w0, [x1,7]
- b .L1021
-.L938:
- cmp w26, 6
- bne .L939
+ b .L1043
+.L943:
+ cmp w27, 6
+ bne .L944
mov w0, 14
strb w0, [x1,4]
mov w0, 15
strb w0, [x1,5]
mov w0, 16
- mov w27, 12
+ mov w26, 12
strb w0, [x1,6]
mov w0, 17
strb w0, [x1,7]
- b .L1021
-.L939:
- cmp w26, 7
- bne .L989
+ b .L1043
+.L944:
+ cmp w27, 7
+ bne .L945
mov w0, -80
strb w0, [x1,4]
mov w0, -79
@@ -6756,63 +6846,78 @@ HynixGetReadRetryDefault:
mov w0, -73
strb w0, [x1,11]
mov w0, -44
- mov w27, 12
+ mov w26, 12
strb w0, [x1,12]
mov w28, 10
mov w0, -43
strb w0, [x1,13]
- b .L935
-.L989:
- mov w27, 7
-.L1021:
+ b .L940
+.L945:
+ cmp w27, 8
+ bne .L1002
+ mov w0, 6
+ strb w0, [x1,4]
+ mov w0, 7
+ strb w0, [x1,5]
+ mov w0, 9
+ strb w27, [x1,6]
+ strb w0, [x1,7]
+ mov w26, 50
+ mov w0, 10
+ mov w28, 5
+ strb w0, [x1,8]
+ b .L940
+.L1002:
+ mov w26, 7
+.L1043:
mov w28, 4
-.L935:
- sub w0, w26, #1
+.L940:
+ sub w0, w27, #1
cmp w0, 1
- bhi .L1018
+ bhi .L1039
adrp x22, .LANCHOR1
add x25, x19, :lo12:.LANCHOR0
add x22, x22, :lo12:.LANCHOR1
mov w21, 0
- add x26, x25, 760
- add x4, x25, 24
- add x22, x22, 3104
-.L940:
+ add x4, x25, 760
+ add x27, x25, 24
+ add x22, x22, 3232
+.L946:
ldrb w0, [x25,1845]
cmp w0, w21
- bls .L947
+ bls .L953
add x0, x25, x21, sxtw
ldrb w0, [x0,1848]
mov x23, 0
- add x20, x26, x0, lsl 6
+ add x20, x4, x0, lsl 6
lsl x0, x0, 4
- add x1, x4, x0
+ add x1, x27, x0
add x20, x20, 20
- ldr x24, [x4,x0]
+ ldr x24, [x27,x0]
ldrb w0, [x1,8]
mov w1, 55
add x24, x24, x0, lsl 8
-.L942:
- add x0, x26, x23
+.L948:
+ add x0, x4, x23
str w1, [x24,2056]
- str x4, [x29,128]
- str x1, [x29,136]
+ str x1, [x29,128]
+ str x4, [x29,136]
ldrb w0, [x0,4]
str w0, [x24,2052]
- mov w0, 80
- bl NandcDelayns
+ mov x0, 400
+ bl __const_udelay
ldr w0, [x24,2048]
strb w0, [x20,x23]
add x23, x23, 1
- ldr x1, [x29,136]
+ ldr x4, [x29,136]
cmp w28, w23, uxtb
- ldr x4, [x29,128]
- bhi .L942
+ ldr x1, [x29,128]
+ bhi .L948
mov x0, 0
-.L943:
+.L949:
add w2, w0, 8
mov x1, 0
-.L944:
+.L950:
add x3, x1, x0
add x1, x1, 4
add x3, x22, x3
@@ -6822,10 +6927,10 @@ HynixGetReadRetryDefault:
add w3, w6, w3
strb w3, [x20,w2,sxtw]
add w2, w2, 8
- bne .L944
+ bne .L950
add x0, x0, 1
cmp x0, 4
- bne .L943
+ bne .L949
add w21, w21, 1
strb wzr, [x20,16]
strb wzr, [x20,24]
@@ -6835,264 +6940,301 @@ HynixGetReadRetryDefault:
strb wzr, [x20,48]
strb wzr, [x20,41]
strb wzr, [x20,49]
- b .L940
-.L1018:
- sub w0, w26, #3
- cmp w0, 4
- bhi .L947
- mul w25, w28, w27
- sub w23, w28, #1
- add x21, x19, :lo12:.LANCHOR0
+ b .L946
+.L1039:
+ sub w0, w27, #3
+ cmp w0, 5
+ bhi .L953
+ mul w25, w28, w26
+ sub w24, w28, #1
+ add x20, x19, :lo12:.LANCHOR0
lsl w0, w25, 4
- asr w22, w25, 2
+ asr w23, w25, 1
str w0, [x29,128]
- lsl w0, w22, 1
- uxtb x23, w23
+ lsl w0, w23, 1
+ uxtb x24, w24
str w0, [x29,124]
- add x0, x21, 24
- mov w20, 0
- str x0, [x29,136]
- sub w25, w26, #5
- add x0, x23, 1
+ sub w0, w27, #5
+ mov w21, 0
+ str w0, [x29,136]
+ add x25, x20, 24
+ add x0, x24, 1
str x0, [x29,112]
-.L948:
- ldrb w0, [x21,1845]
- cmp w0, w20
- bhi .L988
-.L947:
+.L954:
+ ldrb w0, [x20,1845]
+ cmp w0, w21
+ bhi .L1000
+.L953:
add x19, x19, :lo12:.LANCHOR0
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
strb w28, [x19,761]
- strb w27, [x19,762]
- ldp x25, x26, [sp,64]
- ldp x19, x20, [sp,16]
+ strb w26, [x19,762]
ldp x27, x28, [sp,80]
+ ldp x19, x20, [sp,16]
+ ldp x25, x26, [sp,64]
ldp x29, x30, [sp], 144
ret
-.L988:
- add x0, x21, x20, sxtw
- ldrb w1, [x0,1848]
- str x1, [x29,104]
- lsl x0, x1, 4
- mov x24, x1
- ldr x1, [x29,136]
- add x2, x1, x0
- ldr x0, [x1,x0]
- ldrb w2, [x2,8]
- add x23, x0, x2, lsl 8
+.L1000:
+ add x0, x20, x21, sxtw
+ ldrb w6, [x0,1848]
+ str x6, [x29,104]
+ lsl x0, x6, 4
+ mov x22, x6
+ add x1, x25, x0
+ ldr x0, [x25,x0]
+ ldrb w2, [x1,8]
+ add x24, x0, x2, lsl 8
mov w0, 255
- str w0, [x23,2056]
- mov w0, w24
+ str w0, [x24,2056]
+ mov w0, w6
bl NandcWaitFlashReady
- cmp w26, 7
- add x6, x21, 760
- ldr x1, [x29,104]
- beq .L949
- add x1, x6, x1, lsl 6
- add x6, x1, 20
- b .L950
-.L949:
+ cmp w27, 7
+ ldr x6, [x29,104]
+ bne .L955
mov x0, 160
- madd x1, x1, x0, x6
- add x6, x1, 28
-.L950:
+ madd x6, x6, x0, x20
+ add x6, x6, 788
+ b .L956
+.L955:
+ cmp w27, 8
+ beq .L957
+ add x6, x20, x6, lsl 6
+ add x6, x6, 780
+.L956:
mov w0, 54
- cmp w26, 4
- str w0, [x23,2056]
- bne .L951
+ cmp w27, 4
+ str w0, [x24,2056]
+ bne .L958
mov w0, 255
- str w0, [x23,2052]
+ str w0, [x24,2052]
mov w0, 64
- str w0, [x23,2048]
+ str w0, [x24,2048]
mov w0, 204
- b .L1023
-.L951:
- cmp w25, 1
- bhi .L953
- ldrb w0, [x21,764]
- str w0, [x23,2052]
+ b .L1044
+.L958:
+ ldr w0, [x29,136]
+ cmp w0, 1
+ bhi .L960
+ ldrb w0, [x20,764]
+ str w0, [x24,2052]
mov w0, 82
- b .L1024
-.L953:
+ b .L1045
+.L960:
+ cmp w27, 7
+ bne .L959
mov w0, 174
- str w0, [x23,2052]
- str wzr, [x23,2048]
+ str w0, [x24,2052]
+ str wzr, [x24,2048]
mov w0, 176
-.L1023:
- str w0, [x23,2052]
+.L1044:
+ str w0, [x24,2052]
mov w0, 77
-.L1024:
- str w0, [x23,2048]
+.L1045:
+ str w0, [x24,2048]
+.L959:
mov w0, 22
- str w0, [x23,2056]
+ str w0, [x24,2056]
mov w0, 23
- str w0, [x23,2056]
+ str w0, [x24,2056]
mov w0, 4
- str w0, [x23,2056]
+ str w0, [x24,2056]
mov w0, 25
- str w0, [x23,2056]
- cmp w26, 6
- str wzr, [x23,2056]
- str wzr, [x23,2052]
- str wzr, [x23,2052]
- bne .L954
+ str w0, [x24,2056]
+ str wzr, [x24,2056]
+ cmp w27, 6
+ str wzr, [x24,2052]
+ str wzr, [x24,2052]
+ bne .L961
mov w0, 31
- str w0, [x23,2052]
- b .L955
-.L954:
- str wzr, [x23,2052]
-.L955:
- mov w1, 2
- str w1, [x23,2052]
- str wzr, [x23,2052]
+ str w0, [x24,2052]
+ b .L962
+.L961:
+ str wzr, [x24,2052]
+.L962:
+ mov w0, 2
+ str w0, [x24,2052]
+ str wzr, [x24,2052]
+.L1001:
mov w0, 48
- str w0, [x23,2056]
- mov w0, w24
- str x6, [x29,96]
- str x1, [x29,104]
+ str w0, [x24,2056]
+ mov w0, w22
+ str x6, [x29,104]
bl NandcWaitFlashReady
- cmp w25, 1
- mov w7, 16
- ldr x6, [x29,96]
- bls .L957
- ldr x1, [x29,104]
- cmp w26, 7
+ ldr w0, [x29,136]
+ ldr x6, [x29,104]
+ cmp w0, 1
+ cset w9, ls
+ cmp w27, 8
+ cset w8, eq
+ cbnz w9, .L1004
+ cbnz w8, .L1004
+ cmp w27, 7
mov w7, 32
- csel w7, w7, w1, eq
-.L957:
- adrp x0, .LANCHOR4
- mov x8, 0
- add x1, x0, :lo12:.LANCHOR4
- ldr x1, [x1,56]
-.L958:
- ldr w9, [x23,2048]
- strb w9, [x1,x8]
- add x8, x8, 1
- cmp w7, w8, uxtb
- bhi .L958
- cmp w26, 7
- bne .L959
+ mov w0, 2
+ csel w7, w0, w7, ne
+ b .L963
+.L1004:
+ mov w7, 16
+.L963:
+ adrp x1, .LANCHOR4
+ mov x10, 0
+ add x0, x1, :lo12:.LANCHOR4
+ ldr x0, [x0,56]
+.L964:
+ ldr w11, [x24,2048]
+ strb w11, [x0,x10]
+ add x10, x10, 1
+ cmp w7, w10, uxtb
+ bhi .L964
+ cbz w8, .L965
mov w7, 0
-.L961:
- ldrb w8, [x1]
- cmp w8, 12
- beq .L960
- ldrb w8, [x1,1]
- cmp w8, 10
- beq .L960
+.L967:
+ ldrb w10, [x0]
+ cmp w10, 50
+ beq .L966
+ ldrb w10, [x0,1]
+ cmp w10, 5
+ beq .L966
add w7, w7, 1
- add x1, x1, 4
+ add x0, x0, 4
uxtb w7, w7
cmp w7, 8
- bne .L961
- b .L962
-.L960:
- cmp w7, 7
- bne .L963
-.L962:
+ bne .L967
+ b .L968
+.L966:
+ cmp w7, 6
+ bls .L969
+.L968:
adrp x0, .LC84
mov w1, 0
add x0, x0, :lo12:.LC84
bl printk
-.L964:
- b .L964
-.L959:
- cmp w26, 6
- bne .L963
- mov x7, 0
+.L970:
+ b .L970
.L965:
- ldrb w8, [x1,x7]
- cmp w8, 12
- beq .L963
- add x8, x1, x7
- ldrb w8, [x8,8]
- cmp w8, 4
- beq .L963
- add x7, x7, 1
- cmp x7, 8
- bne .L965
+ cmp w27, 7
+ bne .L971
+ mov w7, w8
+.L973:
+ ldrb w10, [x0]
+ cmp w10, 12
+ beq .L972
+ ldrb w10, [x0,1]
+ cmp w10, 10
+ beq .L972
+ add w7, w7, 1
+ add x0, x0, 4
+ uxtb w7, w7
+ cmp w7, 8
+ bne .L973
+ b .L974
+.L972:
+ cmp w7, 7
+ bne .L969
+.L974:
adrp x0, .LC84
mov w1, 0
add x0, x0, :lo12:.LC84
bl printk
-.L967:
- b .L967
-.L963:
- add x1, x0, :lo12:.LANCHOR4
- ldr x10, [x1,56]
- mov x1, 0
-.L968:
- ldr w2, [x29,128]
- cmp w2, w1
- ble .L1025
- ldr w7, [x23,2048]
- strb w7, [x10,x1]
- add x1, x1, 1
- b .L968
-.L1025:
- add x1, x0, :lo12:.LANCHOR4
- mov w9, w22
- mov w8, 8
- ldr x12, [x1,56]
+.L975:
+ b .L975
.L971:
- mov w1, 0
-.L970:
- add w7, w1, w9
- add w1, w1, 1
- sbfiz x7, x7, 2, 32
- cmp w1, w22
- ldr w11, [x12,x7]
- mvn w11, w11
- str w11, [x12,x7]
- bne .L970
- ldr w1, [x29,124]
- subs w8, w8, #1
- add w9, w9, w1
- bne .L971
- mov x8, 0
- mov w16, 1
-.L972:
- add x1, x0, :lo12:.LANCHOR4
- ldr x15, [x1,56]
- mov w1, 0
- mov w11, w1
+ cmp w27, 6
+ bne .L969
+ mov x7, 0
.L976:
- lsl w9, w16, w11
- mov w13, w8
- mov w7, 16
- mov w12, 0
-.L974:
- ldr w14, [x15,w13,sxtw 2]
- add w13, w13, w22
- and w14, w9, w14
- cmp w14, w9
- csinc w12, w12, w12, ne
- subs w7, w7, #1
- bne .L974
- cmp w12, 9
- orr w9, w1, w9
- add w11, w11, 1
- csel w1, w9, w1, cs
- cmp w11, 32
+ ldrb w10, [x0,x7]
+ cmp w10, 12
+ beq .L969
+ add x10, x0, x7
+ ldrb w10, [x10,8]
+ cmp w10, 4
+ beq .L969
+ add x7, x7, 1
+ cmp x7, 8
bne .L976
- str w1, [x15,x8,lsl 2]
- add x8, x8, 1
- cmp w22, w8
- bgt .L972
- add x0, x0, :lo12:.LANCHOR4
- ldr x1, [x0,56]
+ adrp x0, .LC84
+ mov w1, 0
+ add x0, x0, :lo12:.LC84
+ bl printk
+.L978:
+ b .L978
+.L969:
+ add x0, x1, :lo12:.LANCHOR4
+ ldr x11, [x0,56]
mov x0, 0
- mov w8, w0
.L979:
- ldr w9, [x1,x0]
- add x0, x0, 4
- cmp w9, wzr
- csinc w8, w8, w8, ne
- cmp x0, 32
- bne .L979
- cmp w8, 7
- ble .L980
+ ldr w2, [x29,128]
+ cmp w2, w0
+ ble .L1047
+ ldr w7, [x24,2048]
+ strb w7, [x11,x0]
+ add x0, x0, 1
+ b .L979
+.L1047:
+ add x0, x1, :lo12:.LANCHOR4
+ mov w12, w23
+ mov w10, 8
+ ldr x13, [x0,56]
+.L982:
+ mov w0, 0
+.L981:
+ add w7, w0, w12
+ add w0, w0, 1
+ sbfiz x7, x7, 1, 32
+ cmp w0, w23
+ ldrh w14, [x13,x7]
+ mvn w14, w14
+ strh w14, [x13,x7]
+ bne .L981
+ ldr w0, [x29,124]
+ subs w10, w10, #1
+ add w12, w12, w0
+ bne .L982
+ mov x10, 0
+ mov w18, 1
+.L983:
+ mov w7, 0
+ mov w12, w7
+.L987:
+ lsl w14, w18, w12
+ mov w16, w10
+ mov w0, 16
+ mov w15, 0
+.L985:
+ ldrh w17, [x13,w16,sxtw 1]
+ add w16, w16, w23
+ and w17, w17, w14
+ cmp w17, w14
+ csinc w15, w15, w15, ne
+ subs w0, w0, #1
+ bne .L985
+ cmp w15, 8
+ bls .L986
+ orr w7, w7, w14
+ uxth w7, w7
+.L986:
+ add w12, w12, 1
+ cmp w12, 16
+ bne .L987
+ strh w7, [x13,x10,lsl 1]
+ add x10, x10, 1
+ cmp w23, w10
+ bgt .L983
+ add x1, x1, :lo12:.LANCHOR4
+ mov x7, 0
+ mov w10, w7
+ ldr x1, [x1,56]
+.L990:
+ ldr w12, [x1,x7]
+ add x7, x7, 4
+ cmp w12, wzr
+ csinc w10, w10, w10, ne
+ cmp x7, 32
+ bne .L990
+ cmp w10, 7
+ ble .L991
adrp x0, .LC85
mov w2, 1
add x0, x0, :lo12:.LC85
@@ -7102,60 +7244,92 @@ HynixGetReadRetryDefault:
mov w1, 0
add x0, x0, :lo12:.LC84
bl printk
-.L981:
- b .L981
-.L980:
- cmp w26, 6
- mov w1, 4
- beq .L982
- cmp w26, 7
- mov w1, 10
- mov w0, 8
- csel w1, w0, w1, ne
-.L982:
- mov w8, 0
-.L983:
- mov x0, 0
-.L984:
- add w9, w7, w0
- ldrb w11, [x10,x0]
- add x0, x0, 1
- cmp w28, w0, uxtb
- strb w11, [x6,w9,sxtw]
- bhi .L984
- add w8, w8, 1
- ldr x0, [x29,112]
- cmp w8, w27
- add w7, w7, w1
- add x10, x10, x0
- blt .L983
+.L992:
+ b .L992
+.L991:
+ cmp w27, 6
+ mov w7, 4
+ beq .L993
+ cmp w27, 7
+ mov w7, 10
+ beq .L993
+ cmp w8, wzr
+ mov w7, 5
+ mov w1, 8
+ csel w7, w1, w7, eq
+.L993:
+ mov w10, 0
+.L994:
+ mov x1, 0
+.L995:
+ add w12, w0, w1
+ ldrb w13, [x11,x1]
+ add x1, x1, 1
+ cmp w28, w1, uxtb
+ strb w13, [x6,w12,sxtw]
+ bhi .L995
+ add w10, w10, 1
+ ldr x1, [x29,112]
+ cmp w10, w26
+ add w0, w0, w7
+ add x11, x11, x1
+ blt .L994
mov w0, 255
- str w0, [x23,2056]
- mov w0, w24
+ str w0, [x24,2056]
+ mov w0, w22
+ str x8, [x29,96]
+ str x9, [x29,104]
bl NandcWaitFlashReady
- cmp w25, 1
- bhi .L986
+ ldr x9, [x29,104]
+ ldr x8, [x29,96]
+ cbz w9, .L997
mov w0, 54
- str w0, [x23,2056]
+ str w0, [x24,2056]
adrp x0, .LANCHOR0+764
mov w1, -1
ldrb w0, [x0,#:lo12:.LANCHOR0+764]
- str w0, [x23,2052]
+ str w0, [x24,2052]
mov w0, 22
- str wzr, [x23,2048]
- str w0, [x23,2056]
- mov w0, w20
+ str wzr, [x24,2048]
+ str w0, [x24,2056]
+ mov w0, w21
bl FlashReadCmd
- b .L987
-.L986:
+ b .L998
+.L997:
+ mov w0, 190
+ cbnz w8, .L1046
mov w0, 56
- str w0, [x23,2056]
-.L987:
- mov w0, w24
- add w20, w20, 1
+.L1046:
+ str w0, [x24,2056]
+.L998:
+ mov w0, w22
+ add w21, w21, 1
bl NandcWaitFlashReady
- uxtb w20, w20
- b .L948
+ uxtb w21, w21
+ b .L954
+.L957:
+ mov w0, 120
+ str w0, [x24,2056]
+ str wzr, [x24,2052]
+ mov w0, 23
+ str wzr, [x24,2052]
+ mov w1, 25
+ str wzr, [x24,2052]
+ add x6, x20, 788
+ str w0, [x24,2056]
+ mov w0, 4
+ str w0, [x24,2056]
+ str w1, [x24,2056]
+ mov w1, 218
+ str w1, [x24,2056]
+ mov w1, 21
+ str wzr, [x24,2056]
+ str wzr, [x24,2052]
+ str wzr, [x24,2052]
+ str w1, [x24,2052]
+ str w0, [x24,2052]
+ str wzr, [x24,2052]
+ b .L1001
.size HynixGetReadRetryDefault, .-HynixGetReadRetryDefault
.align 2
.global FlashGetReadRetryDefault
@@ -7164,15 +7338,15 @@ FlashGetReadRetryDefault:
stp x29, x30, [sp, -16]!
mov w1, w0
add x29, sp, 0
- cbz w0, .L1026
+ cbz w0, .L1048
sub w2, w0, #1
- cmp w2, 6
- bhi .L1028
+ cmp w2, 7
+ bhi .L1050
bl HynixGetReadRetryDefault
- b .L1026
-.L1028:
+ b .L1048
+.L1050:
cmp w0, 49
- bne .L1029
+ bne .L1051
adrp x0, .LANCHOR0
mov w2, 64
add x0, x0, :lo12:.LANCHOR0
@@ -7185,30 +7359,30 @@ FlashGetReadRetryDefault:
adrp x1, .LANCHOR1
add x1, x1, :lo12:.LANCHOR1
add x1, x1, 408
- b .L1044
-.L1029:
+ b .L1066
+.L1051:
sub w0, w0, #65
cmp w0, 1
- bls .L1035
+ bls .L1057
cmp w1, 33
- bne .L1030
-.L1035:
+ bne .L1052
+.L1057:
adrp x0, .LANCHOR0
add x0, x0, :lo12:.LANCHOR0
strb w1, [x0,760]
mov w1, 4
- b .L1045
-.L1030:
+ b .L1067
+.L1052:
cmp w1, 67
- beq .L1036
+ beq .L1058
cmp w1, 34
- bne .L1032
-.L1036:
+ bne .L1054
+.L1058:
adrp x0, .LANCHOR0
add x0, x0, :lo12:.LANCHOR0
strb w1, [x0,760]
mov w1, 5
-.L1045:
+.L1067:
strb w1, [x0,761]
mov w1, 7
strb w1, [x0,762]
@@ -7217,13 +7391,13 @@ FlashGetReadRetryDefault:
add x0, x0, 764
add x1, x1, 256
mov w2, 45
- b .L1044
-.L1032:
+ b .L1066
+.L1054:
cmp w1, 68
- beq .L1037
+ beq .L1059
cmp w1, 35
- bne .L1026
-.L1037:
+ bne .L1048
+.L1059:
adrp x0, .LANCHOR0
mov w2, 95
add x0, x0, :lo12:.LANCHOR0
@@ -7236,9 +7410,9 @@ FlashGetReadRetryDefault:
adrp x1, .LANCHOR1
add x1, x1, :lo12:.LANCHOR1
add x1, x1, 304
-.L1044:
+.L1066:
bl ftl_memcpy
-.L1026:
+.L1048:
ldp x29, x30, [sp], 16
ret
.size FlashGetReadRetryDefault, .-FlashGetReadRetryDefault
@@ -7258,36 +7432,36 @@ NandcXferComp:
ldr x19, [x2,x0]
ldr w0, [x1,1868]
cmp w0, 3
- bls .L1077
+ bls .L1099
ldr w0, [x19,16]
- tbz x0, 2, .L1077
+ tbz x0, 2, .L1099
mov x0, x19
bl wait_for_nandc_xfer_completed
ldr w21, [x19,16]
ldr w0, [x19,8]
ubfx x21, x21, 1, 1
str w0, [x29,64]
- cbz w21, .L1048
+ cbz w21, .L1070
adrp x22, .LC86
adrp x23, .LC87
mov w21, 0
add x22, x22, :lo12:.LC86
add x23, x23, :lo12:.LC87
-.L1049:
+.L1071:
ldr w2, [x19,28]
ldr w1, [x29,64]
ubfx x2, x2, 16, 5
ubfx x1, x1, 22, 6
cmp w2, w1
- bge .L1057
+ bge .L1079
add x0, x20, :lo12:.LANCHOR0
ldr w0, [x0,1868]
cmp w0, 5
- bhi .L1050
-.L1053:
+ bhi .L1072
+.L1075:
add w21, w21, 1
and w0, w21, 16777215
- cbnz w0, .L1049
+ cbnz w0, .L1071
ldr w2, [x19,28]
mov w1, w21
ldr w3, [x29,64]
@@ -7300,19 +7474,19 @@ NandcXferComp:
mov w2, 4
mov w3, 512
bl rknand_print_hex
- b .L1049
-.L1050:
+ b .L1071
+.L1072:
ldr w0, [x19]
str w0, [x29,72]
ldr w0, [x29,72]
- tbz x0, 13, .L1053
+ tbz x0, 13, .L1075
ldr w0, [x29,72]
- tbz x0, 17, .L1053
-.L1057:
+ tbz x0, 17, .L1075
+.L1079:
add x19, x20, :lo12:.LANCHOR0
- add x19, x19, 1880
+ add x19, x19, 1888
ldr w0, [x19,40]
- cbz w0, .L1058
+ cbz w0, .L1080
ldr w1, [x29,64]
mov w2, 0
ldr w0, [x19,32]
@@ -7325,20 +7499,20 @@ NandcXferComp:
ubfx x1, x1, 22, 5
lsl w1, w1, 7
bl rknand_dma_unmap_single
- b .L1058
-.L1048:
+ b .L1080
+.L1070:
adrp x22, .LC88
adrp x23, .LC87
add x22, x22, :lo12:.LC88
add x23, x23, :lo12:.LC87
-.L1059:
+.L1081:
ldr w0, [x29,64]
- tbnz x0, 20, .L1085
+ tbnz x0, 20, .L1107
ldr w0, [x19,8]
add w21, w21, 1
str w0, [x29,64]
and w0, w21, 16777215
- cbnz w0, .L1059
+ cbnz w0, .L1081
ldr w2, [x29,64]
mov w1, w21
ldr w3, [x19,28]
@@ -7350,18 +7524,18 @@ NandcXferComp:
mov w2, 4
mov w3, 512
bl rknand_print_hex
- b .L1059
-.L1085:
+ b .L1081
+.L1107:
add x0, x20, :lo12:.LANCHOR0
- ldr w0, [x0,1928]
- cbz w0, .L1062
+ ldr w0, [x0,1936]
+ cbz w0, .L1084
mov x0, x19
bl NandcSendDumpDataStart
-.L1062:
+.L1084:
add x21, x20, :lo12:.LANCHOR0
- add x21, x21, 1880
+ add x21, x21, 1888
ldr w0, [x21,40]
- cbz w0, .L1063
+ cbz w0, .L1085
ldr w1, [x29,64]
mov w2, 1
ldr w0, [x21,32]
@@ -7374,22 +7548,22 @@ NandcXferComp:
ubfx x1, x1, 22, 5
lsl w1, w1, 7
bl rknand_dma_unmap_single
-.L1063:
+.L1085:
add x0, x20, :lo12:.LANCHOR0
- ldr w0, [x0,1928]
- cbz w0, .L1058
+ ldr w0, [x0,1936]
+ cbz w0, .L1080
mov x0, x19
bl NandcSendDumpDataDone
-.L1058:
+.L1080:
add x20, x20, :lo12:.LANCHOR0
- str wzr, [x20,1920]
- b .L1046
-.L1077:
+ str wzr, [x20,1928]
+ b .L1068
+.L1099:
ldr w0, [x19,8]
str w0, [x29,64]
ldr w0, [x29,64]
- tbz x0, 20, .L1077
-.L1046:
+ tbz x0, 20, .L1099
+.L1068:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldr x23, [sp,48]
@@ -7417,14 +7591,14 @@ NandcXferData:
uxtb w24, w2
mov x26, x3
mov x22, x4
- cbnz x0, .L1087
- cbnz x4, .L1088
+ cbnz x0, .L1109
+ cbnz x4, .L1110
add x0, x29, 112
mov w1, 255
mov w2, 64
add x22, x29, 112
bl ftl_memset
-.L1088:
+.L1110:
mov w0, w25
mov w1, w21
mov w2, w24
@@ -7435,21 +7609,21 @@ NandcXferData:
bl NandcXferStart
mov w0, w25
bl NandcXferComp
- cbnz w21, .L1089
+ cbnz w21, .L1111
add x1, x19, :lo12:.LANCHOR0
ubfx x2, x24, 1, 7
mov w3, 128
add x2, x22, x2, lsl 2
- ldr w0, [x1,1932]
+ ldr w0, [x1,1940]
cmp w0, 25
mov w0, 64
csel w3, w0, w3, cc
mov w0, w21
-.L1091:
+.L1113:
cmp x22, x2
add w4, w0, w3
- beq .L1133
- ldr x5, [x1,1888]
+ beq .L1155
+ ldr x5, [x1,1896]
and x0, x0, 4294967292
add x22, x22, 4
ldr w0, [x5,x0]
@@ -7461,29 +7635,29 @@ NandcXferData:
lsr w0, w0, 24
strb w0, [x22,-1]
mov w0, w4
- b .L1091
-.L1133:
+ b .L1113
+.L1155:
add x0, x19, :lo12:.LANCHOR0
lsr w24, w24, 2
- ldr w5, [x0,1932]
+ ldr w5, [x0,1940]
ldr w4, [x0,1868]
mov w0, 0
mov w23, w0
-.L1093:
+.L1115:
cmp w0, w24
- bcs .L1089
- cbz w5, .L1089
+ bcs .L1111
+ cbz w5, .L1111
uxtw x1, w0
add x1, x1, 8
ldr w1, [x20,x1,lsl 2]
str w1, [x29,104]
ldr w1, [x29,104]
- tbnz x1, 2, .L1117
+ tbnz x1, 2, .L1139
ldr w3, [x29,104]
ubfx x3, x3, 15, 1
- cbnz w3, .L1117
+ cbnz w3, .L1139
cmp w4, 5
- bls .L1095
+ bls .L1117
ldr w2, [x29,104]
ubfx x6, x2, 3, 5
ldr w2, [x29,104]
@@ -7496,20 +7670,20 @@ NandcXferData:
orr w1, w3, w1, lsl 5
ldr w3, [x29,104]
cmp w2, w1
- bls .L1096
+ bls .L1118
ldr w1, [x29,104]
ubfx x3, x3, 3, 5
ubfx x1, x1, 27, 1
orr w3, w3, w1, lsl 5
- b .L1097
-.L1096:
+ b .L1119
+.L1118:
ubfx x1, x3, 16, 5
ldr w3, [x29,104]
ubfx x3, x3, 29, 1
- b .L1132
-.L1095:
+ b .L1154
+.L1117:
cmp w4, 3
- bls .L1097
+ bls .L1119
ldr w2, [x29,104]
ubfx x6, x2, 3, 5
ldr w2, [x29,104]
@@ -7522,43 +7696,43 @@ NandcXferData:
orr w1, w3, w1, lsl 5
ldr w3, [x29,104]
cmp w2, w1
- bls .L1098
+ bls .L1120
ubfx x1, x3, 3, 5
ldr w3, [x29,104]
ubfx x3, x3, 28, 1
- b .L1132
-.L1098:
+ b .L1154
+.L1120:
ubfx x1, x3, 16, 5
ldr w3, [x29,104]
ubfx x3, x3, 30, 1
-.L1132:
+.L1154:
orr w3, w1, w3, lsl 5
-.L1097:
+.L1119:
cmp w23, w3
csel w23, w23, w3, cs
- b .L1094
-.L1117:
+ b .L1116
+.L1139:
mov w23, -1
-.L1094:
+.L1116:
add w0, w0, 1
- b .L1093
-.L1089:
+ b .L1115
+.L1111:
str wzr, [x20,16]
- b .L1100
-.L1087:
+ b .L1122
+.L1109:
cmp w21, 1
- bne .L1131
+ bne .L1153
mov w23, 0
mov w28, 2
-.L1101:
+.L1123:
cmp w23, w24
- bcs .L1134
+ bcs .L1156
and w27, w23, 3
mov x3, x26
- cbz x26, .L1103
+ cbz x26, .L1125
ubfiz x0, x23, 9, 23
add x3, x26, x0
-.L1103:
+.L1125:
cmp x22, xzr
mov x0, x20
csel w4, w28, wzr, ne
@@ -7577,11 +7751,11 @@ NandcXferData:
bl NandcXferStart
mov w0, w25
bl NandcXferComp
- b .L1101
-.L1134:
+ b .L1123
+.L1156:
mov w23, 0
- b .L1100
-.L1131:
+ b .L1122
+.L1153:
mov w1, 0
mov x4, 0
mov w27, 0
@@ -7591,16 +7765,16 @@ NandcXferData:
mov x5, x4
mov w23, w27
bl NandcXferStart
-.L1106:
+.L1128:
cmp w27, w24
- bcs .L1100
+ bcs .L1122
mov w0, w25
add w28, w27, 2
bl NandcXferComp
ldr w0, [x20,32]
cmp w28, w24
str w0, [x29,104]
- bcs .L1107
+ bcs .L1129
mov x4, 0
mov w0, w25
mov w1, 0
@@ -7608,9 +7782,9 @@ NandcXferData:
and w3, w28, 3
mov x5, x4
bl NandcXferStart
-.L1107:
+.L1129:
ldr w0, [x29,104]
- tbnz x0, 2, .L1122
+ tbnz x0, 2, .L1144
ldr w0, [x29,104]
ubfx x1, x0, 3, 5
ldr w0, [x29,104]
@@ -7618,16 +7792,16 @@ NandcXferData:
orr w0, w1, w0, lsl 5
cmp w23, w0
csel w23, w23, w0, cs
- b .L1108
-.L1122:
+ b .L1130
+.L1144:
mov w23, -1
-.L1108:
+.L1130:
and w2, w27, 3
mov x3, x26
- cbz x26, .L1109
+ cbz x26, .L1131
ubfiz x3, x27, 9, 23
add x3, x26, x3
-.L1109:
+.L1131:
cmp x22, xzr
mov w0, 2
csel w4, w0, wzr, ne
@@ -7637,23 +7811,23 @@ NandcXferData:
mov w27, w28
add x4, x22, x4
bl NandcCopy1KB
- b .L1106
-.L1100:
- cbnz w21, .L1112
+ b .L1128
+.L1122:
+ cbnz w21, .L1134
add x19, x19, :lo12:.LANCHOR0
ldr w0, [x19,1868]
cmp w0, 5
- bls .L1112
+ bls .L1134
ldr w0, [x20]
mov w1, 8192
movk w1, 0x2, lsl 16
and w1, w0, w1
cmp w1, 139264
- bne .L1112
+ bne .L1134
orr w0, w0, 131072
mov w23, -1
str w0, [x20]
-.L1112:
+.L1134:
mov w0, w23
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -7676,7 +7850,7 @@ FlashReadRawPage:
str x21, [sp,32]
mov x21, x2
ldrb w20, [x0,#:lo12:.LANCHOR1+481]
- cbnz w19, .L1136
+ cbnz w19, .L1158
adrp x0, .LANCHOR0
add x0, x0, :lo12:.LANCHOR0
ldrb w5, [x0,9]
@@ -7685,7 +7859,7 @@ FlashReadRawPage:
cmp w1, w0
mov w0, 4
csel w20, w20, w0, cs
-.L1136:
+.L1158:
mov w0, w19
str x4, [x29,48]
str x1, [x29,56]
@@ -7739,7 +7913,7 @@ FlashDdrTunningRead:
cmp w0, 8
mov w0, 12
csel w22, w22, w0, cc
- cbz w4, .L1139
+ cbz w4, .L1161
mov w0, 1
bl FlashSetInterfaceMode
mov w0, 1
@@ -7757,42 +7931,42 @@ FlashDdrTunningRead:
ldrb w0, [x19,1844]
bl NandcSetMode
cmn w21, #1
- bne .L1140
-.L1149:
+ bne .L1162
+.L1171:
mov w21, -1
- b .L1141
-.L1140:
+ b .L1163
+.L1162:
adrp x0, .LC89
mov w1, w24
add x0, x0, :lo12:.LC89
mov w2, w21
bl printk
cmp w21, 9
- bhi .L1142
+ bhi .L1164
add x19, x19, x23, sxtw 4
ldr x0, [x19,24]
ldr w1, [x0,3840]
ldr w1, [x0]
orr w1, w1, 131072
str w1, [x0]
-.L1142:
+.L1164:
adrp x0, .LANCHOR4
add x0, x0, :lo12:.LANCHOR4
ldr w1, [x0,64]
add w1, w1, 1
str w1, [x0,64]
cmp w1, 2047
- bls .L1141
+ bls .L1163
mov x27, 0
str wzr, [x0,64]
mov x28, x27
-.L1139:
+.L1161:
mov w19, 0
mov w26, -1
mov w5, w19
mov w6, w19
mov w20, w19
-.L1147:
+.L1169:
mov w0, w22
str x5, [x29,104]
str x6, [x29,112]
@@ -7806,63 +7980,63 @@ FlashDdrTunningRead:
ldr x6, [x29,112]
cmp w0, w1
ldr x5, [x29,104]
- bhi .L1143
+ bhi .L1165
cmp w0, 2
- bhi .L1153
+ bhi .L1175
add w20, w20, 1
cmp w20, 9
- bls .L1153
+ bls .L1175
sub w19, w22, w20
mov w21, w0
mov w26, 0
- b .L1145
-.L1143:
+ b .L1167
+.L1165:
cmp w6, w20
- bcs .L1154
+ bcs .L1176
cmp w20, 7
sub w5, w19, w20
- bhi .L1155
+ bhi .L1177
mov w6, w20
- b .L1154
-.L1153:
+ b .L1176
+.L1175:
mov x27, 0
mov w19, w22
mov w21, w0
mov w26, 0
mov x28, x27
- b .L1144
-.L1154:
+ b .L1166
+.L1176:
mov w20, 0
-.L1144:
+.L1166:
add w22, w22, 2
cmp w22, 69
- bls .L1147
-.L1145:
+ bls .L1169
+.L1167:
cmp w6, w20
csel w19, w19, w5, cc
- b .L1146
-.L1155:
+ b .L1168
+.L1177:
mov w19, w5
-.L1146:
- cbz w19, .L1148
+.L1168:
+ cbz w19, .L1170
adrp x0, .LC90
mov w1, w19
add x0, x0, :lo12:.LC90
bl printk
mov w0, w19
bl NandcSetDdrPara
-.L1148:
- cbz w26, .L1141
+.L1170:
+ cbz w26, .L1163
adrp x0, .LC91
mov w1, w23
add x0, x0, :lo12:.LC91
mov w2, w24
bl printk
- cbz w25, .L1149
+ cbz w25, .L1171
ldr w0, [x29,124]
lsr w0, w0, 8
bl NandcSetDdrPara
-.L1141:
+.L1163:
mov w0, w21
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -7890,17 +8064,17 @@ FlashReadPage:
bl FlashReadRawPage
cmn w0, #1
mov w19, w0
- bne .L1165
+ bne .L1187
adrp x21, .LANCHOR0
add x25, x21, :lo12:.LANCHOR0
ldrb w26, [x25,16]
- cbnz w26, .L1166
-.L1168:
+ cbnz w26, .L1188
+.L1190:
add x21, x21, :lo12:.LANCHOR0
ldrb w0, [x21,1860]
- cbz w0, .L1165
- b .L1186
-.L1166:
+ cbz w0, .L1187
+ b .L1208
+.L1188:
mov w0, w20
mov w1, w22
mov x2, x24
@@ -7909,10 +8083,10 @@ FlashReadPage:
bl FlashReadRawPage
strb w26, [x25,16]
cmn w0, #1
- beq .L1168
+ beq .L1190
mov w19, w0
- b .L1165
-.L1186:
+ b .L1187
+.L1208:
ldr x0, [x21,128]
mov w1, w22
mov x2, x24
@@ -7923,20 +8097,20 @@ FlashReadPage:
bl FlashDdrTunningRead
cmn w0, #1
mov w19, w0
- beq .L1169
- ldrb w0, [x21,1936]
+ beq .L1191
+ ldrb w0, [x21,1944]
cmp w19, w0, lsr 1
- bls .L1165
-.L1169:
+ bls .L1187
+.L1191:
lsr w0, w25, 8
bl NandcSetDdrPara
-.L1165:
+.L1187:
adrp x21, .LANCHOR4
cmn w19, #1
add x21, x21, :lo12:.LANCHOR4
ldr x4, [x21,72]
- bne .L1170
- cbz x4, .L1170
+ bne .L1192
+ cbz x4, .L1192
mov w1, w22
mov x2, x24
mov x3, x23
@@ -7950,10 +8124,10 @@ FlashReadPage:
mov w3, w22
bl printk
cmn w19, #1
- bne .L1170
- adrp x0, .LANCHOR0+120
- ldrb w0, [x0,#:lo12:.LANCHOR0+120]
- cbz w0, .L1170
+ bne .L1192
+ adrp x0, .LANCHOR0+196
+ ldrb w0, [x0,#:lo12:.LANCHOR0+196]
+ cbz w0, .L1192
mov w0, w20
bl flash_enter_slc_mode
ldr x4, [x21,72]
@@ -7965,7 +8139,7 @@ FlashReadPage:
mov w19, w0
mov w0, w20
bl flash_exit_slc_mode
-.L1170:
+.L1192:
mov w0, w19
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -8003,24 +8177,24 @@ FlashDdrParaScan:
mov x3, x2
bl FlashReadRawPage
cmn w0, #1
- beq .L1191
+ beq .L1213
cmn w22, #1
- bne .L1188
-.L1191:
+ bne .L1210
+.L1213:
add x20, x19, :lo12:.LANCHOR0
ldrb w0, [x20,1844]
- tbz x0, 0, .L1188
+ tbz x0, 0, .L1210
mov w0, 1
bl FlashSetInterfaceMode
mov w0, 1
bl NandcSetMode
strb wzr, [x20,1860]
- b .L1190
-.L1188:
+ b .L1212
+.L1210:
add x19, x19, :lo12:.LANCHOR0
mov w0, 1
strb w0, [x19,1860]
-.L1190:
+.L1212:
mov w0, 0
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -8036,7 +8210,7 @@ FlashLoadPhyInfo:
add x29, sp, 0
stp x23, x24, [sp,48]
adrp x23, .LANCHOR4
- mov w24, -1
+ adrp x24, .LANCHOR1
strb w0, [x29,120]
mov w0, 40
strb w0, [x29,121]
@@ -8047,27 +8221,27 @@ FlashLoadPhyInfo:
add x0, x23, :lo12:.LANCHOR4
stp x21, x22, [sp,32]
stp x25, x26, [sp,64]
- stp x19, x20, [sp,16]
stp x27, x28, [sp,80]
- adrp x22, .LANCHOR1
- adrp x25, .LANCHOR0
- add x21, x22, :lo12:.LANCHOR1
+ stp x19, x20, [sp,16]
+ adrp x22, .LANCHOR0
+ add x24, x24, :lo12:.LANCHOR1
ldr x1, [x0,56]
- add x21, x21, 472
- add x25, x25, :lo12:.LANCHOR0
+ add x21, x22, :lo12:.LANCHOR0
str x1, [x0,80]
mov w20, 0
str wzr, [x0,88]
- mov w26, 4
+ mov w25, 4
mov w0, 0
- add x28, x25, 88
- ldrh w27, [x21,10]
+ mov w28, -1
+ add x24, x24, 472
+ add x27, x21, 88
+ ldr w26, [x21,12]
bl flash_enter_slc_mode
-.L1199:
+.L1221:
add w0, w20, 1
mov x19, 0
str w0, [x29,104]
-.L1201:
+.L1223:
add x0, x29, 120
ldrb w0, [x19,x0]
bl FlashBchSel
@@ -8079,7 +8253,7 @@ FlashLoadPhyInfo:
ldr x2, [x5,56]
bl FlashReadRawPage
cmn w0, #1
- bne .L1200
+ bne .L1222
ldr x5, [x29,96]
mov w0, 0
ldr w1, [x29,104]
@@ -8087,29 +8261,29 @@ FlashLoadPhyInfo:
ldr x2, [x5,56]
bl FlashReadRawPage
cmn w0, #1
- bne .L1200
+ bne .L1222
add x19, x19, 1
cmp x19, 4
- beq .L1202
- b .L1201
-.L1203:
+ beq .L1224
+ b .L1223
+.L1225:
add x0, x2, 12
mov w1, 2036
str x2, [x29,104]
- mov w24, -1
- bl JSHash
+ mov w28, -1
+ bl js_hash
ldr x2, [x29,104]
ldr w1, [x2,8]
cmp w1, w0
- beq .L1213
-.L1202:
- subs w26, w26, #1
- add w20, w20, w27
- bne .L1199
- mov w0, w26
-.L1212:
+ beq .L1235
+.L1224:
+ subs w25, w25, #1
+ add w20, w20, w26
+ bne .L1221
+ mov w0, w25
+.L1234:
bl flash_exit_slc_mode
- mov w0, w24
+ mov w0, w28
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -8117,56 +8291,59 @@ FlashLoadPhyInfo:
ldp x27, x28, [sp,80]
ldp x29, x30, [sp], 128
ret
-.L1200:
+.L1222:
add x19, x23, :lo12:.LANCHOR4
mov w0, 20036
movk w0, 0x4e41, lsl 16
ldr x2, [x19,80]
ldr w1, [x2]
cmp w1, w0
- bne .L1202
- cbnz w24, .L1203
- add x22, x22, :lo12:.LANCHOR1
- ldrh w0, [x22,482]
+ bne .L1224
+ cbnz w28, .L1225
+ add x22, x22, :lo12:.LANCHOR0
+ ldr w0, [x22,12]
udiv w20, w20, w0
- mov w0, w24
+ mov w0, w28
add w20, w20, 1
str w20, [x19,92]
- b .L1212
-.L1213:
+ b .L1234
+.L1235:
add x1, x2, 160
- mov x0, x21
+ mov x0, x24
mov w2, 32
bl ftl_memcpy
ldr x1, [x19,80]
mov w2, 32
- mov x0, x28
+ mov x0, x27
add x1, x1, 192
bl ftl_memcpy
ldr x1, [x19,80]
mov w2, 852
- add x0, x25, 760
+ add x0, x21, 760
add x1, x1, 224
bl ftl_memcpy
+ ldrh w0, [x24,10]
+ bl FlashBlockAlignInit
str w20, [x19,88]
- ldr x1, [x19,80]
- ldr w0, [x1,1076]
- strb w0, [x25,1860]
- ldrh w0, [x21,10]
- udiv w0, w20, w0
- add w2, w0, 1
- cbz w0, .L1205
- str w2, [x19,92]
- b .L1206
-.L1205:
+ ldr w1, [x21,12]
+ ldr x2, [x19,80]
+ udiv w1, w20, w1
+ ldr w0, [x2,1076]
+ add w1, w1, 1
+ strb w0, [x21,1860]
+ cmp w1, 1
+ bls .L1227
+ str w1, [x19,92]
+ b .L1228
+.L1227:
mov w0, 2
str w0, [x19,92]
-.L1206:
+.L1228:
add x0, x23, :lo12:.LANCHOR4
- ldrh w1, [x1,14]
- mov w24, 0
+ ldrh w1, [x2,14]
+ mov w28, 0
strb w1, [x0,96]
- b .L1202
+ b .L1224
.size FlashLoadPhyInfo, .-FlashLoadPhyInfo
.align 2
.global ToshibaReadRetrial
@@ -8196,25 +8373,25 @@ ToshibaReadRetrial:
str x0, [x29,120]
add x20, x0, 8
mov x28, x0
- ldrb w0, [x2,752]
+ ldrb w0, [x2,120]
add x20, x24, x20, lsl 8
sub w0, w0, #67
uxtb w0, w0
cmp w0, 1
- bls .L1215
+ bls .L1237
ldrb w0, [x2,1860]
- cbz w0, .L1216
+ cbz w0, .L1238
mov w0, w22
mov w22, 1
bl NandcSetDdrMode
-.L1216:
+.L1238:
ubfiz x0, x28, 8, 8
mov w2, 92
add x0, x24, x0
str w2, [x0,2056]
mov w2, 197
str w2, [x0,2056]
-.L1215:
+.L1237:
ldr x0, [x29,120]
mov w21, 1
mov w25, -1
@@ -8223,48 +8400,48 @@ ToshibaReadRetrial:
str x0, [x29,104]
ubfiz x0, x28, 8, 8
str x0, [x29,96]
-.L1217:
+.L1239:
adrp x0, .LANCHOR4
add x0, x0, :lo12:.LANCHOR4
ldrb w0, [x0,97]
add w0, w0, 1
cmp w21, w0
- bcs .L1242
+ bcs .L1264
add x0, x19, :lo12:.LANCHOR0
mov w1, w21
- ldrb w0, [x0,752]
+ ldrb w0, [x0,120]
sub w0, w0, #67
uxtb w0, w0
cmp w0, 1
mov x0, x20
- bhi .L1218
+ bhi .L1240
bl SandiskSetRRPara
- b .L1219
-.L1218:
+ b .L1241
+.L1240:
bl ToshibaSetRRPara
-.L1219:
+.L1241:
add x0, x19, :lo12:.LANCHOR0
- ldrb w0, [x0,752]
+ ldrb w0, [x0,120]
cmp w0, 34
- bne .L1220
+ bne .L1242
adrp x0, .LANCHOR4
add x0, x0, :lo12:.LANCHOR4
ldrb w0, [x0,97]
sub w0, w0, #3
cmp w21, w0
- bne .L1220
+ bne .L1242
ldr x0, [x29,104]
mov w1, 179
add x0, x24, x0
str w1, [x0,8]
-.L1220:
+.L1242:
ldr x0, [x29,96]
mov w1, 38
add x0, x24, x0
str w1, [x0,2056]
mov w1, 93
str w1, [x0,2056]
- cbz w22, .L1221
+ cbz w22, .L1243
mov w0, 4
bl NandcSetDdrMode
ldr w1, [x29,116]
@@ -8275,65 +8452,65 @@ ToshibaReadRetrial:
mov w28, w0
mov w0, 0
bl NandcSetDdrMode
- b .L1222
-.L1221:
+ b .L1244
+.L1243:
ldr w1, [x29,116]
mov w0, w23
mov x2, x27
mov x3, x26
bl FlashReadRawPage
mov w28, w0
-.L1222:
+.L1244:
cmn w28, #1
- beq .L1223
+ beq .L1245
add x0, x19, :lo12:.LANCHOR0
cmn w25, #1
csel w25, w25, w28, ne
- ldrb w0, [x0,1936]
+ ldrb w0, [x0,1944]
add w0, w0, w0, lsl 1
cmp w28, w0, lsr 2
- bcc .L1225
+ bcc .L1247
mov x26, 0
mov x27, x26
-.L1223:
+.L1245:
add w21, w21, 1
- b .L1217
-.L1242:
+ b .L1239
+.L1264:
mov w28, w25
-.L1225:
+.L1247:
add x0, x19, :lo12:.LANCHOR0
mov w1, 0
- ldrb w0, [x0,752]
+ ldrb w0, [x0,120]
sub w0, w0, #67
uxtb w0, w0
cmp w0, 1
mov x0, x20
- bhi .L1227
+ bhi .L1249
bl SandiskSetRRPara
- b .L1228
-.L1227:
+ b .L1250
+.L1249:
bl ToshibaSetRRPara
-.L1228:
+.L1250:
ldr x0, [x29,120]
add x19, x19, :lo12:.LANCHOR0
add x0, x0, 8
add x24, x24, x0, lsl 8
mov w0, 255
str w0, [x24,8]
- ldrb w0, [x19,1936]
+ ldrb w0, [x19,1944]
add w0, w0, w0, lsl 1
cmp w28, w0, lsr 2
- bcc .L1229
+ bcc .L1251
cmn w28, #1
mov w0, 256
csel w28, w28, w0, eq
-.L1229:
+.L1251:
mov w0, w23
bl NandcWaitFlashReady
- cbz w22, .L1230
+ cbz w22, .L1252
mov w0, 4
bl NandcSetDdrMode
-.L1230:
+.L1252:
mov w0, w28
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -8372,12 +8549,12 @@ SamsungReadRetrial:
ldrb w21, [x2,8]
add x21, x21, 8
add x21, x0, x21, lsl 8
-.L1244:
+.L1266:
add x0, x27, :lo12:.LANCHOR4
ldrb w0, [x0,97]
add w0, w0, 1
cmp w26, w0
- bcs .L1247
+ bcs .L1269
mov x0, x21
mov w1, w26
bl SamsungSetRRPara
@@ -8387,34 +8564,34 @@ SamsungReadRetrial:
mov x3, x23
bl FlashReadRawPage
cmn w0, #1
- beq .L1245
+ beq .L1267
add x1, x20, :lo12:.LANCHOR0
cmn w19, #1
csel w19, w19, w0, ne
- ldrb w1, [x1,1936]
+ ldrb w1, [x1,1944]
add w1, w1, w1, lsl 1
cmp w0, w1, lsr 2
- bcc .L1250
+ bcc .L1272
mov x23, 0
mov x24, x23
-.L1245:
+.L1267:
add w26, w26, 1
- b .L1244
-.L1250:
+ b .L1266
+.L1272:
mov w19, w0
-.L1247:
+.L1269:
mov x0, x21
mov w1, 0
add x20, x20, :lo12:.LANCHOR0
bl SamsungSetRRPara
- ldrb w0, [x20,1936]
+ ldrb w0, [x20,1944]
add w0, w0, w0, lsl 1
cmp w19, w0, lsr 2
- bcc .L1249
+ bcc .L1271
cmn w19, #1
mov w0, 256
csel w19, w19, w0, eq
-.L1249:
+.L1271:
mov w0, w19
ldr x27, [sp,80]
ldp x19, x20, [sp,16]
@@ -8440,17 +8617,17 @@ MicronReadRetrial:
stp x23, x24, [sp,48]
mov w28, w1
mov x26, x2
- ldrb w19, [x0,1936]
+ ldrb w19, [x0,1944]
mov x22, x3
- ldrb w0, [x0,120]
- cbnz w0, .L1257
+ ldrb w0, [x0,196]
+ cbnz w0, .L1279
add w19, w19, w19, lsl 1
ubfx x19, x19, 2, 8
- b .L1258
-.L1257:
+ b .L1280
+.L1279:
mov w0, 3
sdiv w19, w19, w0
-.L1258:
+.L1280:
adrp x27, .LC93
mov w25, 0
add x0, x27, :lo12:.LC93
@@ -8458,7 +8635,7 @@ MicronReadRetrial:
add x20, x20, :lo12:.LANCHOR0
add x23, x20, 24
add x23, x23, x21, sxtw 4
-.L1269:
+.L1291:
mov w0, w21
mov w24, 0
mov w27, -1
@@ -8468,14 +8645,14 @@ MicronReadRetrial:
ldr x6, [x23]
mov w10, 137
lsl x8, x4, 8
-.L1259:
+.L1281:
adrp x0, .LANCHOR4
add x0, x0, :lo12:.LANCHOR4
ldrb w0, [x0,97]
cmp w24, w0
- bcs .L1262
+ bcs .L1284
add x2, x6, x8
- mov w0, 200
+ mov x0, 1000
str x4, [x29,104]
str x8, [x29,112]
str w9, [x2,2056]
@@ -8484,7 +8661,7 @@ MicronReadRetrial:
str x9, [x29,128]
str x10, [x29,136]
str x2, [x29,144]
- bl NandcDelayns
+ bl __const_udelay
ldr x2, [x29,144]
add w7, w24, 1
mov w0, w21
@@ -8504,47 +8681,47 @@ MicronReadRetrial:
ldr x6, [x29,120]
ldr x8, [x29,112]
ldr x4, [x29,104]
- beq .L1260
+ beq .L1282
cmn w27, #1
csel w27, w27, w0, ne
cmp w0, w19
- bcc .L1271
+ bcc .L1293
mov x22, 0
mov x26, x22
-.L1260:
+.L1282:
mov w24, w7
- b .L1259
-.L1271:
+ b .L1281
+.L1293:
mov x22, 0
mov w27, w0
mov x26, x22
-.L1262:
+.L1284:
add x1, x6, x4, lsl 8
mov w0, 239
str x1, [x29,144]
str w0, [x1,2056]
mov w0, 137
str w0, [x1,2052]
- mov w0, 200
- bl NandcDelayns
+ mov x0, 1000
+ bl __const_udelay
ldr x1, [x29,144]
cmp w27, w19
str wzr, [x1,2048]
str wzr, [x1,2048]
str wzr, [x1,2048]
str wzr, [x1,2048]
- bcc .L1264
+ bcc .L1286
cmn w27, #1
mov w0, 256
csel w27, w27, w0, eq
-.L1264:
+.L1286:
cmn w27, #1
cset w6, eq
- cbnz w6, .L1273
+ cbnz w6, .L1295
cmp w27, 256
cset w1, eq
- cbz w1, .L1265
-.L1273:
+ cbz w1, .L1287
+.L1295:
ldr x0, [x29,152]
mov w1, w24
mov w2, w28
@@ -8552,30 +8729,30 @@ MicronReadRetrial:
mov w4, w27
str x6, [x29,144]
bl printk
- cbnz w25, .L1267
+ cbnz w25, .L1289
ldr x6, [x29,144]
- cbz w6, .L1278
- ldrb w0, [x20,120]
- cbz w0, .L1278
+ cbz w6, .L1300
+ ldrb w0, [x20,196]
+ cbz w0, .L1300
mov w0, w21
mov w1, 3
mov w25, 1
bl micron_auto_read_calibration_config
- b .L1269
-.L1267:
+ b .L1291
+.L1289:
mov w0, w21
mov w1, 0
bl micron_auto_read_calibration_config
cmn w27, #1
mov w0, 256
csel w27, w27, w0, eq
- b .L1278
-.L1265:
- cbz w25, .L1278
+ b .L1300
+.L1287:
+ cbz w25, .L1300
mov w0, w21
mov w27, 256
bl micron_auto_read_calibration_config
-.L1278:
+.L1300:
mov w0, w27
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -8594,34 +8771,36 @@ HynixReadRetrial:
stp x21, x22, [sp,32]
adrp x21, .LANCHOR0
uxtb x22, w0
- stp x27, x28, [sp,80]
- mov w27, w1
- add x1, x21, :lo12:.LANCHOR0
+ add x0, x21, :lo12:.LANCHOR0
stp x23, x24, [sp,48]
stp x25, x26, [sp,64]
+ stp x27, x28, [sp,80]
stp x19, x20, [sp,16]
mov x26, x2
- add x2, x1, 760
- ldrb w25, [x1,762]
- add x0, x2, x22
- ldr x1, [x1,744]
+ add x2, x0, 760
+ ldrb w25, [x0,762]
+ mov w27, w1
+ ldr x0, [x0,744]
+ add x1, x2, x22
mov x23, x22
mov x24, x3
- ldrb w19, [x0,12]
- ldrb w1, [x1,19]
- cmp w1, 7
- bne .L1287
- ldrb w19, [x0,20]
-.L1287:
+ ldrb w0, [x0,19]
+ ldrb w19, [x1,12]
+ sub w0, w0, #7
+ uxtb w0, w0
+ cmp w0, 1
+ bhi .L1309
+ ldrb w19, [x1,20]
+.L1309:
mov w0, w23
mov w28, 0
mov w20, -1
bl NandcWaitFlashReady
add x4, x21, :lo12:.LANCHOR0
add x5, x4, 764
-.L1288:
+.L1310:
cmp w28, w25
- bcs .L1292
+ bcs .L1314
add w19, w19, 1
ldrb w1, [x4,761]
mov x2, x5
@@ -8641,42 +8820,44 @@ HynixReadRetrial:
cmn w0, #1
ldr x5, [x29,104]
ldr x4, [x29,96]
- beq .L1290
- ldrb w1, [x4,1936]
+ beq .L1312
+ ldrb w1, [x4,1944]
cmn w20, #1
csel w20, w20, w0, ne
add w1, w1, w1, lsl 1
cmp w0, w1, lsr 2
- bcc .L1297
+ bcc .L1319
mov x24, 0
mov x26, x24
-.L1290:
+.L1312:
add w28, w28, 1
- b .L1288
-.L1297:
+ b .L1310
+.L1319:
mov w20, w0
-.L1292:
+.L1314:
add x0, x21, :lo12:.LANCHOR0
add x0, x0, 760
ldr x1, [x0,-16]
add x0, x0, x22
ldrb w1, [x1,19]
- cmp w1, 7
- bne .L1294
+ sub w1, w1, #7
+ uxtb w1, w1
+ cmp w1, 1
+ bhi .L1316
strb w19, [x0,20]
- b .L1295
-.L1294:
+ b .L1317
+.L1316:
strb w19, [x0,12]
-.L1295:
+.L1317:
add x21, x21, :lo12:.LANCHOR0
- ldrb w0, [x21,1936]
+ ldrb w0, [x21,1944]
add w0, w0, w0, lsl 1
cmp w20, w0, lsr 2
- bcc .L1296
+ bcc .L1318
cmn w20, #1
mov w0, 256
csel w20, w20, w0, eq
-.L1296:
+.L1318:
mov w0, w20
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -8700,21 +8881,21 @@ FlashProgPage:
mov w20, w1
mov x22, x2
ldrb w21, [x0,#:lo12:.LANCHOR1+481]
- cbnz w19, .L1304
+ cbnz w19, .L1326
adrp x0, .LANCHOR0
add x0, x0, :lo12:.LANCHOR0
ldrb w1, [x0,9]
ldr w2, [x0,12]
mul w1, w1, w2
cmp w20, w1
- bcs .L1304
+ bcs .L1326
ldrb w0, [x0,8]
- cbnz w0, .L1305
+ cbnz w0, .L1327
sub w21, w21, #2
- b .L1304
-.L1305:
+ b .L1326
+.L1327:
mov w21, 4
-.L1304:
+.L1326:
mov w0, w19
str x4, [x29,56]
bl NandcWaitFlashReady
@@ -8790,7 +8971,7 @@ FlashSavePhyInfo:
add x0, x0, 80
bl ftl_memcpy
ldr x0, [x19,80]
- add x1, x20, 708
+ add x1, x20, 712
mov w2, 32
add x0, x0, 96
bl ftl_memcpy
@@ -8814,7 +8995,7 @@ FlashSavePhyInfo:
ldr x20, [x19,80]
mov w1, 2036
add x0, x20, 12
- bl JSHash
+ bl js_hash
str w0, [x20,8]
mov w0, 1592
str w0, [x20,4]
@@ -8823,7 +9004,7 @@ FlashSavePhyInfo:
mov w0, 0
mov w19, w21
bl flash_enter_slc_mode
-.L1309:
+.L1331:
add x22, x24, :lo12:.LANCHOR0
mov w2, 0
mov w0, 0
@@ -8852,34 +9033,34 @@ FlashSavePhyInfo:
mul w1, w19, w1
bl FlashReadRawPage
cmn w0, #1
- beq .L1307
+ beq .L1329
ldr x25, [x20,80]
mov w0, 20036
movk w0, 0x4e41, lsl 16
ldr w1, [x25]
cmp w1, w0
- bne .L1307
+ bne .L1329
mov w1, 2036
add x0, x25, 12
- bl JSHash
+ bl js_hash
ldr w1, [x25,8]
cmp w1, w0
- bne .L1307
+ bne .L1329
ldr w0, [x22,12]
cmp w21, 1
str w26, [x20,92]
mul w19, w19, w0
str w19, [x20,88]
- beq .L1310
+ beq .L1332
mov w21, 1
-.L1307:
+.L1329:
cmp w26, 4
mov w19, w26
- bne .L1309
- b .L1308
-.L1310:
+ bne .L1331
+ b .L1330
+.L1332:
mov w21, 2
-.L1308:
+.L1330:
mov w0, 0
bl flash_exit_slc_mode
cmp w21, wzr
@@ -8913,15 +9094,12 @@ FlashReadIdbDataRaw:
stp x21, x22, [sp,32]
stp x23, x24, [sp,48]
stp x27, x28, [sp,80]
- ldr w1, [x0,1856]
- ldrb w27, [x0,1936]
- mov w0, 12336
- movk w0, 0x5638, lsl 16
- cmp w1, w0
- bne .L1316
+ ldrb w27, [x0,1944]
+ ldr w0, [x0,1856]
+ cbz w0, .L1338
mov w0, 0
bl flash_enter_slc_mode
-.L1316:
+.L1338:
mov x0, x26
mov w1, 0
mov w2, 2048
@@ -8932,13 +9110,13 @@ FlashReadIdbDataRaw:
adrp x28, .LANCHOR4
add x0, x24, :lo12:.LC94
str x0, [x29,104]
-.L1317:
+.L1339:
add x0, x19, :lo12:.LANCHOR0
ldrb w0, [x0,9]
cmp w20, w0
- bcs .L1321
+ bcs .L1343
mov x22, 0
-.L1319:
+.L1341:
add x0, x29, 120
add x24, x19, :lo12:.LANCHOR0
add x21, x28, :lo12:.LANCHOR4
@@ -8952,18 +9130,18 @@ FlashReadIdbDataRaw:
mul w1, w20, w1
bl FlashReadRawPage
cmn w0, #1
- bne .L1318
+ bne .L1340
add x22, x22, 1
cmp x22, 4
- bne .L1319
- b .L1320
-.L1318:
+ bne .L1341
+ b .L1342
+.L1340:
ldr x0, [x21,56]
ldr w1, [x0]
mov w0, 35899
movk w0, 0xfcdc, lsl 16
cmp w1, w0
- bne .L1320
+ bne .L1342
ldr x0, [x29,104]
mov w1, w25
bl printk
@@ -8976,27 +9154,24 @@ FlashReadIdbDataRaw:
strb w0, [x24,9]
ldr w0, [x21,92]
cmp w0, w20
- bls .L1324
+ bls .L1346
mov w23, 0
str w20, [x21,92]
bl FlashSavePhyInfo
-.L1320:
+.L1342:
add w20, w20, 1
- b .L1317
-.L1324:
+ b .L1339
+.L1346:
mov w23, 0
-.L1321:
+.L1343:
mov w0, w27
add x19, x19, :lo12:.LANCHOR0
bl FlashBchSel
- ldr w1, [x19,1856]
- mov w0, 12336
- movk w0, 0x5638, lsl 16
- cmp w1, w0
- bne .L1326
+ ldr w0, [x19,1856]
+ cbz w0, .L1350
mov w0, 0
bl flash_exit_slc_mode
-.L1326:
+.L1350:
mov w0, w23
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -9010,7 +9185,7 @@ FlashReadIdbDataRaw:
.global FlashInit
.type FlashInit, %function
FlashInit:
- stp x29, x30, [sp, -112]!
+ stp x29, x30, [sp, -96]!
add x29, sp, 0
stp x21, x22, [sp,32]
adrp x21, .LANCHOR4
@@ -9026,13 +9201,13 @@ FlashInit:
mov w0, 32768
adrp x19, .LANCHOR0
add x20, x19, :lo12:.LANCHOR0
- adrp x25, .LC95
+ adrp x24, .LC95
bl ftl_malloc
str x0, [x22,104]
mov w0, 4096
- add x24, x20, 24
- mov w27, 0
- mov w28, 44
+ add x27, x20, 24
+ mov w26, 0
+ add x24, x24, :lo12:.LC95
bl ftl_malloc
str x0, [x22,112]
mov w0, 32768
@@ -9042,37 +9217,35 @@ FlashInit:
bl ftl_malloc
str x0, [x22,128]
mov w0, 128
+ mov w1, 50
str w0, [x20,12]
mov w0, 60
- mov w1, 50
- strb w0, [x22,98]
- mov x0, x23
strb wzr, [x20,1860]
strb w1, [x20,9]
strb wzr, [x20,8]
add x20, x20, 1620
+ strb w0, [x22,98]
+ mov x25, x20
+ mov x0, x23
strb w1, [x22,96]
- mov x26, x20
str wzr, [x22,92]
str wzr, [x22,64]
bl NandcInit
- add x0, x25, :lo12:.LC95
- str x0, [x29,104]
-.L1333:
- uxtb w25, w27
- mov w0, w25
- bl FlashReset
- ldrb w23, [x24,8]
- ldr x22, [x24]
- mov w0, w25
+.L1361:
+ uxtb w28, w26
+ ldrb w23, [x27,8]
+ mov w0, w28
+ ldr x22, [x27]
ubfiz x23, x23, 8, 8
+ bl FlashReset
add x22, x22, x23
+ mov w0, w28
bl NandcFlashCs
mov w0, 144
str w0, [x22,2056]
- mov w0, 200
str wzr, [x22,2052]
- bl NandcDelayns
+ mov x0, 1000
+ bl __const_udelay
ldr w0, [x22,2048]
strb w0, [x20]
ldr w0, [x22,2048]
@@ -9085,171 +9258,191 @@ FlashInit:
strb w0, [x20,4]
ldr w0, [x22,2048]
strb w0, [x20,5]
- mov w0, w25
+ mov w0, w28
bl NandcFlashDeCs
ldrb w2, [x20]
sub w0, w2, #1
uxtb w0, w0
cmp w0, 253
- bhi .L1329
- ldr x0, [x29,104]
- add w1, w27, 1
+ bhi .L1357
ldrb w3, [x20,1]
+ mov x0, x24
ldrb w4, [x20,2]
+ add w1, w26, 1
ldrb w5, [x20,3]
ldrb w6, [x20,4]
ldrb w7, [x20,5]
bl printk
-.L1329:
- cbnz w27, .L1330
- ldrb w0, [x26]
+.L1357:
+ cbnz w26, .L1358
+ ldrb w0, [x25]
sub w0, w0, #1
uxtb w0, w0
cmp w0, 253
- bhi .L1378
- ldrb w0, [x26,1]
+ bhi .L1409
+ ldrb w0, [x25,1]
cmp w0, 255
- beq .L1378
-.L1330:
+ beq .L1409
+.L1358:
ldrb w0, [x20]
cmp w0, 181
- bne .L1332
- strb w28, [x20]
-.L1332:
- add w27, w27, 1
- add x24, x24, 16
- cmp w27, 4
+ bne .L1360
+ mov w0, 44
+ strb w0, [x20]
+.L1360:
+ add w26, w26, 1
+ add x27, x27, 16
+ cmp w26, 4
add x20, x20, 8
- bne .L1333
+ bne .L1361
add x0, x19, :lo12:.LANCHOR0
ldrb w1, [x0,1620]
cmp w1, 173
- beq .L1334
+ beq .L1362
ldr w0, [x0,1864]
bl NandcSetDdrMode
-.L1334:
- add x22, x19, :lo12:.LANCHOR0
+.L1362:
+ add x20, x19, :lo12:.LANCHOR0
mov w1, 0
- add x0, x22, 760
+ add x0, x20, 760
mov w2, 852
- adrp x20, .LANCHOR1
bl ftl_memset
- strb wzr, [x22,16]
- add x0, x20, :lo12:.LANCHOR1
+ strb wzr, [x20,16]
+ adrp x1, .LANCHOR1
+ ldr w4, [x20,1872]
+ add x0, x1, :lo12:.LANCHOR1
add x0, x0, 472
- str x0, [x22,744]
- ldrb w0, [x22,1621]
- add x22, x22, 1620
+ str x0, [x20,744]
+ mov w0, 12336
+ movk w0, 0x5638, lsl 16
+ cmp w4, w0
+ bne .L1363
+ mov w0, 1
+ str w0, [x20,1856]
+.L1363:
+ add x3, x19, :lo12:.LANCHOR0
+ add x3, x3, 1620
+ ldrb w0, [x3,1]
cmp w0, 218
- cset w2, eq
+ cset w5, eq
+ cmp w0, 241
+ cset w6, eq
cmp w0, 161
- cset w1, eq
- orr w1, w2, w1
- cbnz w1, .L1335
- and w1, w0, -33
- cmp w1, 209
- beq .L1335
+ cset w2, eq
+ orr w2, w6, w2
+ orr w2, w5, w2
+ cbnz w2, .L1364
+ and w2, w0, -3
+ cmp w2, 209
+ beq .L1364
cmp w0, 220
- bne .L1336
- ldrb w1, [x22,3]
- cmp w1, 149
- bne .L1336
-.L1335:
- add x1, x19, :lo12:.LANCHOR0
+ bne .L1365
+ ldrb w2, [x3,3]
+ cmp w2, 149
+ bne .L1365
+.L1364:
+ add x2, x19, :lo12:.LANCHOR0
mov w3, 1
- mov w4, 16
- add x5, x1, 1620
- strb w3, [x1,8]
+ mov w6, 16
+ add x7, x2, 1620
+ strb w3, [x2,8]
add x3, x21, :lo12:.LANCHOR4
- strb w4, [x1,9]
- strb w4, [x3,98]
- ldrb w4, [x1,1620]
- add x1, x20, :lo12:.LANCHOR1
- cmp w4, 152
- strb w4, [x1,3137]
- strb w0, [x1,3138]
- bne .L1337
- ldrsb w1, [x5,4]
- tbnz w1, #31, .L1337
- mov w1, 24
- strb w1, [x3,98]
-.L1337:
- add x1, x19, :lo12:.LANCHOR0
- ldr w3, [x1,1856]
- cmp w3, 2049
- beq .L1380
- mov w1, 12336
- movk w1, 0x5638, lsl 16
- cmp w3, w1
- bne .L1338
-.L1380:
- add x1, x21, :lo12:.LANCHOR4
+ strb w6, [x2,9]
+ strb w6, [x3,98]
+ ldrb w6, [x2,1620]
+ add x2, x1, :lo12:.LANCHOR1
+ cmp w6, 152
+ strb w6, [x2,3265]
+ strb w0, [x2,3266]
+ bne .L1366
+ ldrsb w2, [x7,4]
+ tbnz w2, #31, .L1366
+ mov w2, 24
+ strb w2, [x3,98]
+.L1366:
+ cmp w4, 2049
+ beq .L1412
+ mov w2, 12336
+ movk w2, 0x5638, lsl 16
+ cmp w4, w2
+ bne .L1367
+.L1412:
+ add x2, x21, :lo12:.LANCHOR4
mov w3, 16
- strb w3, [x1,98]
-.L1338:
- cbz w2, .L1340
- add x0, x20, :lo12:.LANCHOR1
- mov w1, 2048
- strh w1, [x0,3150]
- mov w1, -38
- b .L1413
-.L1340:
+ strb w3, [x2,98]
+.L1367:
+ cbz w5, .L1369
+ add x0, x1, :lo12:.LANCHOR1
+ mov w2, 2048
+ strh w2, [x0,3278]
+ mov w2, -38
+ b .L1452
+.L1369:
cmp w0, 220
- bne .L1341
- add x0, x20, :lo12:.LANCHOR1
- mov w1, 4096
- strh w1, [x0,3150]
- mov w1, -36
-.L1413:
- strb w1, [x0,3138]
-.L1341:
- add x20, x20, :lo12:.LANCHOR1
+ bne .L1371
+ add x0, x1, :lo12:.LANCHOR1
+ mov w2, 4096
+ strh w2, [x0,3278]
+ mov w2, -36
+.L1452:
+ strb w2, [x0,3266]
+ b .L1370
+.L1371:
+ cmp w0, 211
+ bne .L1370
+ add x0, x1, :lo12:.LANCHOR1
+ mov w2, 4096
+ strh w2, [x0,3278]
+ mov w2, 2
+ strb w2, [x0,3277]
+.L1370:
+ add x20, x1, :lo12:.LANCHOR1
add x0, x19, :lo12:.LANCHOR0
- add x1, x20, 3008
+ add x1, x20, 3136
mov w2, 32
add x0, x0, 88
bl ftl_memcpy
add x0, x20, 472
- add x1, x20, 3136
+ add x1, x20, 3264
mov w2, 32
bl ftl_memcpy
-.L1336:
+.L1365:
add x20, x19, :lo12:.LANCHOR0
ldrb w0, [x20,8]
- cbnz w0, .L1342
+ cbnz w0, .L1372
bl FlashLoadPhyInfoInRam
- cbnz w0, .L1344
+ cbnz w0, .L1374
ldr x0, [x20,744]
ldrb w1, [x0,17]
and w0, w1, 7
strb w0, [x20,1844]
- tbnz x1, 0, .L1344
+ tbnz x1, 0, .L1374
mov w1, 1
strb w1, [x20,1860]
bl FlashSetInterfaceMode
ldrb w0, [x20,1844]
bl NandcSetMode
-.L1344:
+.L1374:
add x20, x19, :lo12:.LANCHOR0
ldr x0, [x20,744]
ldrb w0, [x0,26]
- strb w0, [x20,120]
+ strb w0, [x20,196]
bl FlashLoadPhyInfo
- cbz w0, .L1342
+ cbz w0, .L1372
ldr w0, [x20,1864]
- cbz w0, .L1347
+ cbz w0, .L1377
mov w0, 1
bl FlashSetInterfaceMode
mov w0, 1
- b .L1414
-.L1347:
+ b .L1449
+.L1377:
ldrb w0, [x20,1844]
bl FlashSetInterfaceMode
ldrb w0, [x20,1844]
-.L1414:
+.L1449:
bl NandcSetMode
bl FlashLoadPhyInfo
- cbz w0, .L1342
+ cbz w0, .L1372
mov w0, 1
add x20, x19, :lo12:.LANCHOR0
bl FlashSetInterfaceMode
@@ -9262,7 +9455,7 @@ FlashInit:
bl printk
bl FlashLoadPhyInfoInRam
cmn w0, #1
- beq .L1331
+ beq .L1359
bl FlashDieInfoInit
ldr x0, [x20,744]
ldrb w0, [x0,19]
@@ -9273,34 +9466,34 @@ FlashInit:
ldrb w2, [x0,9]
add w1, w1, 4095
cmp w2, w1, lsr 12
- blt .L1349
+ blt .L1379
ldrh w1, [x0,14]
add w1, w1, 255
cmp w2, w1, lsr 8
- bge .L1350
-.L1349:
+ bge .L1380
+.L1379:
ldrh w1, [x0,14]
and w1, w1, -256
strh w1, [x0,14]
-.L1350:
+.L1380:
add x0, x19, :lo12:.LANCHOR0
ldrb w0, [x0,1844]
tst w0, 6
- beq .L1351
+ beq .L1381
bl FlashSavePhyInfo
add x1, x21, :lo12:.LANCHOR4
mov w0, 0
ldr w1, [x1,88]
bl FlashDdrParaScan
-.L1351:
+.L1381:
bl FlashSavePhyInfo
-.L1342:
+.L1372:
add x20, x19, :lo12:.LANCHOR0
add x22, x21, :lo12:.LANCHOR4
ldr x2, [x20,744]
str xzr, [x22,72]
ldrb w0, [x2,26]
- strb w0, [x20,120]
+ strb w0, [x20,196]
ldrh w0, [x2,16]
ldrh w3, [x2,10]
ubfx x1, x0, 7, 1
@@ -9308,7 +9501,7 @@ FlashInit:
ubfx x1, x0, 3, 1
strb w1, [x22,136]
ubfx x1, x0, 4, 1
- strb w1, [x20,1937]
+ strb w1, [x20,1945]
ldrb w1, [x2,12]
ubfx x0, x0, 8, 3
strb w0, [x20,1844]
@@ -9318,85 +9511,91 @@ FlashInit:
bl FlashDieInfoInit
ldr x0, [x20,744]
ldrh w1, [x0,16]
- tbz x1, 6, .L1353
+ tbz x1, 6, .L1383
ldrb w0, [x0,19]
ldrb w1, [x20,762]
strb w1, [x22,97]
sub w1, w0, #1
ldrb w2, [x20,761]
uxtb w1, w1
- strb w0, [x20,752]
- strb w2, [x20,753]
- cmp w1, 6
- bhi .L1354
+ strb w0, [x20,120]
+ strb w2, [x20,121]
+ cmp w1, 7
+ bhi .L1384
adrp x1, HynixReadRetrial
+ cmp w0, 8
add x1, x1, :lo12:HynixReadRetrial
str x1, [x22,72]
sub w1, w0, #5
+ cset w2, eq
uxtb w1, w1
cmp w1, 1
- bhi .L1355
- mov w1, 1
- str w1, [x20,1928]
- b .L1356
-.L1355:
+ bls .L1413
+ cbz w2, .L1385
+.L1413:
+ add x1, x19, :lo12:.LANCHOR0
+ mov w3, 1
+ str w3, [x1,1936]
+.L1385:
cmp w0, 7
- add x20, x20, 788
- beq .L1357
-.L1356:
- add x20, x19, :lo12:.LANCHOR0
- add x20, x20, 780
-.L1357:
- mov x1, 0
- mov w2, w1
-.L1359:
- ldrsb w3, [x20,x1]
- add x1, x1, 1
- cmp w3, wzr
- csinc w2, w2, w2, ne
- cmp x1, 32
- bne .L1359
- cmp w2, 27
- bls .L1353
+ add x1, x19, :lo12:.LANCHOR0
+ beq .L1411
+ cbnz w2, .L1411
+ add x1, x1, 780
+ b .L1388
+.L1411:
+ add x1, x1, 788
+.L1388:
+ mov x2, 0
+ mov w3, w2
+.L1390:
+ ldrsb w4, [x1,x2]
+ add x2, x2, 1
+ cmp w4, wzr
+ csinc w3, w3, w3, ne
+ cmp x2, 32
+ bne .L1390
+ cmp w3, 27
+ bls .L1383
bl FlashGetReadRetryDefault
bl FlashSavePhyInfo
- b .L1353
-.L1354:
+ b .L1383
+.L1384:
sub w1, w0, #17
uxtb w1, w1
cmp w1, 2
- bhi .L1361
+ bhi .L1392
adrp x1, MicronReadRetrial
cmp w0, 19
add x1, x1, :lo12:MicronReadRetrial
str x1, [x22,72]
- beq .L1362
+ beq .L1393
mov w0, 7
- b .L1415
-.L1362:
+ b .L1450
+.L1393:
mov w0, 15
-.L1415:
+.L1450:
strb w0, [x22,97]
- b .L1353
-.L1361:
+ b .L1383
+.L1392:
sub w1, w0, #65
uxtb w1, w1
cmp w1, 1
- bls .L1381
+ bls .L1414
cmp w0, 33
- bne .L1363
-.L1381:
+ bne .L1394
+.L1414:
add x0, x21, :lo12:.LANCHOR4
adrp x1, ToshibaReadRetrial
add x1, x1, :lo12:ToshibaReadRetrial
mov w2, 4
str x1, [x0,72]
add x1, x19, :lo12:.LANCHOR0
- strb w2, [x1,753]
+ strb w2, [x1,121]
mov w1, 7
strb w1, [x0,97]
- b .L1353
-.L1363:
+ b .L1383
+.L1394:
sub w1, w0, #67
uxtb w1, w1
cmp w1, 1
@@ -9404,89 +9603,89 @@ FlashInit:
cset w2, ls
uxtb w1, w1
cmp w1, 1
- bls .L1382
- cbz w2, .L1365
-.L1382:
+ bls .L1415
+ cbz w2, .L1396
+.L1415:
add x3, x21, :lo12:.LANCHOR4
adrp x1, ToshibaReadRetrial
add x1, x1, :lo12:ToshibaReadRetrial
cmp w0, 35
str x1, [x3,72]
- beq .L1367
+ beq .L1398
cmp w0, 68
- beq .L1367
+ beq .L1398
mov w0, 7
strb w0, [x3,97]
- b .L1368
-.L1367:
+ b .L1399
+.L1398:
add x0, x21, :lo12:.LANCHOR4
mov w1, 17
strb w1, [x0,97]
-.L1368:
+.L1399:
add x0, x19, :lo12:.LANCHOR0
mov w1, 4
- cbnz w2, .L1416
+ cbnz w2, .L1451
mov w1, 5
-.L1416:
- strb w1, [x0,753]
- b .L1353
-.L1365:
+.L1451:
+ strb w1, [x0,121]
+ b .L1383
+.L1396:
cmp w0, 49
- bne .L1353
+ bne .L1383
adrp x0, SamsungReadRetrial
add x0, x0, :lo12:SamsungReadRetrial
str x0, [x22,72]
-.L1353:
+.L1383:
add x0, x19, :lo12:.LANCHOR0
mov w1, 12336
movk w1, 0x5638, lsl 16
- ldr w2, [x0,1856]
+ ldr w2, [x0,1872]
cmp w2, w1
- bne .L1370
- ldrb w1, [x0,120]
- cbz w1, .L1370
+ bne .L1401
+ ldrb w1, [x0,196]
+ cbz w1, .L1401
ldr x0, [x0,744]
strb wzr, [x0,18]
-.L1370:
+.L1401:
add x0, x19, :lo12:.LANCHOR0
ldrb w1, [x0,1620]
cmp w1, 44
- bne .L1371
+ bne .L1402
ldrb w1, [x0,1860]
- cbz w1, .L1371
+ cbz w1, .L1402
mov w1, 12336
movk w1, 0x5638, lsl 16
cmp w2, w1
- bne .L1372
- ldrb w0, [x0,120]
- cbnz w0, .L1371
-.L1372:
+ bne .L1403
+ ldrb w0, [x0,196]
+ cbnz w0, .L1402
+.L1403:
add x0, x19, :lo12:.LANCHOR0
strb wzr, [x0,1860]
mov w0, 1
bl FlashSetInterfaceMode
mov w0, 1
bl NandcSetMode
-.L1371:
- mov w0, 0
- bl flash_enter_slc_mode
+.L1402:
add x1, x19, :lo12:.LANCHOR0
ldrb w0, [x1,1844]
tst w0, 6
- beq .L1373
+ beq .L1404
ldrb w1, [x1,1860]
- cbnz w1, .L1374
- tbnz x0, 0, .L1373
-.L1374:
- add x21, x21, :lo12:.LANCHOR4
+ cbnz w1, .L1405
+ tbnz x0, 0, .L1404
+.L1405:
mov w0, 0
+ add x21, x21, :lo12:.LANCHOR4
+ bl flash_enter_slc_mode
ldr w1, [x21,88]
+ mov w0, 0
bl FlashDdrParaScan
-.L1373:
- add x19, x19, :lo12:.LANCHOR0
mov w0, 0
- mov w20, 16
bl flash_exit_slc_mode
+.L1404:
+ add x19, x19, :lo12:.LANCHOR0
+ mov w20, 16
ldr x0, [x19,744]
ldrb w0, [x0,20]
bl FlashBchSel
@@ -9530,7 +9729,7 @@ FlashInit:
ldrb w5, [x19,8]
strh w2, [x19,190]
cmp w5, 1
- bne .L1376
+ bne .L1407
lsl w2, w2, 1
lsr w4, w4, 1
lsl w3, w3, 1
@@ -9540,21 +9739,21 @@ FlashInit:
strh w4, [x19,182]
strh w3, [x19,188]
strh w2, [x19,194]
-.L1376:
+.L1407:
ldrb w0, [x1,20]
bl FlashBchSel
bl ftl_flash_suspend
mov w0, 0
- b .L1331
-.L1378:
+ b .L1359
+.L1409:
mov w0, -2
-.L1331:
+.L1359:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
ldp x25, x26, [sp,64]
ldp x27, x28, [sp,80]
- ldp x29, x30, [sp], 112
+ ldp x29, x30, [sp], 96
ret
.size FlashInit, .-FlashInit
.align 2
@@ -9563,65 +9762,66 @@ FlashInit:
FlashPageProgMsbFFData:
stp x29, x30, [sp, -80]!
add x29, sp, 0
- stp x19, x20, [sp,16]
- uxth w19, w2
- adrp x2, .LANCHOR0
stp x21, x22, [sp,32]
- uxtb w21, w0
- add x0, x2, :lo12:.LANCHOR0
+ adrp x21, .LANCHOR0
stp x23, x24, [sp,48]
+ uxtb w23, w0
+ add x0, x21, :lo12:.LANCHOR0
+ stp x19, x20, [sp,16]
stp x25, x26, [sp,64]
- mov x23, x2
- ldr x3, [x0,744]
- ldrb w4, [x0,120]
- ldrb w3, [x3,19]
- cbz w4, .L1418
- ldr w2, [x0,1856]
- mov w0, 12336
- movk w0, 0x5638, lsl 16
- cmp w2, w0
- beq .L1417
-.L1418:
- sub w2, w3, #5
+ uxth w19, w2
+ ldr x2, [x0,744]
+ ldrb w22, [x2,19]
+ ldrb w2, [x0,196]
+ cbz w2, .L1454
+ ldr w0, [x0,1856]
+ cbnz w0, .L1453
+.L1454:
+ sub w0, w22, #5
+ uxtb w0, w0
+ cmp w0, 3
+ bls .L1455
+ cmp w22, 68
+ beq .L1455
+ sub w2, w22, #19
+ and w2, w2, -17
uxtb w2, w2
- cmp w2, 2
- bls .L1419
- cmp w3, 68
- beq .L1419
- sub w3, w3, #19
- and w3, w3, -17
- uxtb w3, w3
- cbnz w3, .L1417
-.L1419:
+ cbnz w2, .L1453
+.L1455:
adrp x20, .LANCHOR2
- mov w24, w1
+ mov w25, w1
add x20, x20, :lo12:.LANCHOR2
- mov w25, 65535
+ mov w26, 65535
add x20, x20, 988
- adrp x26, .LANCHOR4
-.L1421:
- add x0, x23, :lo12:.LANCHOR0
+ adrp x24, .LANCHOR4
+.L1457:
+ add x0, x21, :lo12:.LANCHOR0
ldr x0, [x0,744]
ldrh w0, [x0,10]
cmp w0, w19
- bls .L1417
+ bls .L1453
ldrh w0, [x20,w19,sxtw 1]
- cmp w0, w25
- bne .L1417
- add x22, x26, :lo12:.LANCHOR4
+ cmp w0, w26
+ bne .L1453
+ add x0, x24, :lo12:.LANCHOR4
+ cmp w22, 8
+ mov w1, 0
+ ldr x0, [x0,104]
+ beq .L1467
mov w1, 255
+.L1467:
mov w2, 32768
- ldr x0, [x22,104]
bl ftl_memset
- ldr x2, [x22,104]
- add w1, w19, w24
- mov w0, w21
- mov x3, 0
+ add x0, x24, :lo12:.LANCHOR4
+ add w1, w19, w25
add w19, w19, 1
- bl FlashProgPage
+ ldr x2, [x0,104]
+ mov w0, w23
uxth w19, w19
- b .L1421
-.L1417:
+ mov x3, x2
+ bl FlashProgPage
+ b .L1457
+.L1453:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -9652,9 +9852,9 @@ FlashReadSlc2KPages:
add x21, x21, :lo12:.LANCHOR0
add x23, x23, :lo12:.LC97
add x24, x24, :lo12:.LC99
-.L1427:
+.L1469:
cmp w22, w25
- beq .L1461
+ beq .L1503
mov w1, w27
sub w4, w25, w22
mov x0, x19
@@ -9665,11 +9865,11 @@ FlashReadSlc2KPages:
adrp x5, .LANCHOR0
ldrb w1, [x21,1845]
cmp w0, w1
- bcc .L1428
+ bcc .L1470
mov w0, -1
str w0, [x19]
- b .L1429
-.L1428:
+ b .L1471
+.L1470:
add x0, x21, x0, uxtw
ldrb w28, [x0,1848]
str x5, [x29,96]
@@ -9715,64 +9915,64 @@ FlashReadSlc2KPages:
add x0, x5, :lo12:.LANCHOR0
cmp w20, w6
csel w3, w20, w6, cs
- ldrb w0, [x0,1936]
+ ldrb w0, [x0,1944]
add w0, w0, w0, lsl 1
cmp w3, w0, lsr 2
- bls .L1432
+ bls .L1474
cmn w3, #1
mov w0, 256
csel w3, w3, w0, eq
-.L1432:
+.L1474:
cmp w3, 256
- beq .L1443
+ beq .L1485
cmn w3, #1
- bne .L1433
-.L1443:
+ bne .L1475
+.L1485:
str w3, [x19]
- b .L1435
-.L1433:
+ b .L1477
+.L1475:
str wzr, [x19]
-.L1435:
+.L1477:
ldr x0, [x19,16]
- cbz x0, .L1436
+ cbz x0, .L1478
ldr w1, [x0,12]
cmn w1, #1
- bne .L1436
+ bne .L1478
ldr w1, [x0,8]
cmn w1, #1
- bne .L1436
+ bne .L1478
ldr w0, [x0]
cmn w0, #1
- beq .L1436
+ beq .L1478
str w1, [x19]
-.L1436:
+.L1478:
ldr w3, [x19]
cmn w3, #1
- bne .L1429
+ bne .L1471
add x5, x5, :lo12:.LANCHOR0
ldr w1, [x19,4]
mov x0, x23
- ldrb w2, [x5,1936]
+ ldrb w2, [x5,1944]
bl printk
ldr x1, [x19,8]
- cbz x1, .L1438
+ cbz x1, .L1480
adrp x0, .LC98
mov w2, 4
add x0, x0, :lo12:.LC98
mov w3, 8
bl rknand_print_hex
-.L1438:
+.L1480:
ldr x1, [x19,16]
- cbz x1, .L1429
+ cbz x1, .L1471
mov w2, 4
mov x0, x24
mov w3, w2
bl rknand_print_hex
-.L1429:
+.L1471:
add w22, w22, 1
add x19, x19, 56
- b .L1427
-.L1461:
+ b .L1469
+.L1503:
mov w0, 0
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -9804,10 +10004,10 @@ FlashReadPages:
ldrb w23, [x3,8]
str w2, [x29,140]
str w4, [x29,136]
- cbz w23, .L1502
+ cbz w23, .L1544
bl FlashReadSlc2KPages
- b .L1551
-.L1502:
+ b .L1593
+.L1544:
adrp x0, .LC97
mov w24, w23
add x0, x0, :lo12:.LC97
@@ -9818,10 +10018,10 @@ FlashReadPages:
adrp x0, .LC100
add x0, x0, :lo12:.LC100
str x0, [x29,112]
-.L1463:
+.L1505:
ldr w0, [x29,144]
cmp w24, w0
- bcs .L1553
+ bcs .L1595
mov w27, 56
ldr w0, [x29,144]
ldr w1, [x29,140]
@@ -9838,11 +10038,11 @@ FlashReadPages:
ldr w0, [x29,168]
ldrb w2, [x1,1845]
cmp w0, w2
- bcc .L1465
+ bcc .L1507
mov w0, -1
str w0, [x26,x27]
- b .L1466
-.L1465:
+ b .L1508
+.L1507:
add x0, x1, x0, uxtw
adrp x25, .LANCHOR4
ldrb w19, [x0,1848]
@@ -9855,29 +10055,31 @@ FlashReadPages:
bl NandcWaitFlashReady
ldr x1, [x29,152]
ldr x0, [x1,744]
- ldrb w2, [x0,19]
- sub w0, w2, #1
- uxtb w0, w0
- cmp w0, 6
- bhi .L1468
- add x1, x1, 760
- sxtw x0, w19
- add x1, x1, x0
+ ldrb w0, [x0,19]
+ sub w2, w0, #1
+ uxtb w2, w2
cmp w2, 7
+ bhi .L1510
+ sub w0, w0, #7
+ add x1, x1, 760
+ sxtw x4, w19
+ add x1, x1, x4
+ uxtb w0, w0
+ cmp w0, 1
ldrb w3, [x1,12]
- bne .L1469
+ bhi .L1511
ldrb w3, [x1,20]
-.L1469:
+.L1511:
add x2, x22, :lo12:.LANCHOR0
- add x0, x2, x0
- ldrb w0, [x0,1616]
+ add x4, x2, x4
+ ldrb w0, [x4,1616]
cmp w0, w3
- beq .L1468
+ beq .L1510
ldrb w1, [x2,761]
mov w0, w19
add x2, x2, 764
bl HynixSetRRPara
-.L1468:
+.L1510:
mov w0, w19
bl NandcFlashCs
ldr w0, [x29,140]
@@ -9885,38 +10087,38 @@ FlashReadPages:
cset w0, eq
orr w0, w0, w28, lsr 31
str w0, [x29,152]
- cbz w0, .L1470
+ cbz w0, .L1512
add x0, x22, :lo12:.LANCHOR0
- ldrb w0, [x0,120]
- cbz w0, .L1470
+ ldrb w0, [x0,196]
+ cbz w0, .L1512
mov w0, w19
bl flash_enter_slc_mode
- b .L1471
-.L1470:
+ b .L1513
+.L1512:
mov w0, w19
bl flash_exit_slc_mode
-.L1471:
+.L1513:
cmp w19, 255
ldr w1, [x29,172]
- bne .L1509
+ bne .L1551
cmn w1, #1
cset w0, ne
- cbz w0, .L1503
-.L1509:
- cbz w20, .L1475
+ cbz w0, .L1545
+.L1551:
+ cbz w20, .L1517
add x0, x22, :lo12:.LANCHOR0
ldr w2, [x0,12]
mov w0, w19
add w2, w1, w2
bl FlashReadDpCmd
- b .L1476
-.L1475:
+ b .L1518
+.L1517:
mov w0, w19
bl FlashReadCmd
- b .L1476
-.L1503:
+ b .L1518
+.L1545:
mov w20, w0
-.L1473:
+.L1515:
ldrb w2, [x29,148]
mov w0, w19
ldr x3, [x21,8]
@@ -9925,15 +10127,15 @@ FlashReadPages:
bl NandcXferData
cmn w0, #1
mov w28, w0
- bne .L1477
+ bne .L1519
add x0, x22, :lo12:.LANCHOR0
ldrb w1, [x0,16]
- cbz w1, .L1477
+ cbz w1, .L1519
strb wzr, [x0,16]
mov w20, 0
- b .L1471
-.L1477:
- cbz w20, .L1478
+ b .L1513
+.L1519:
+ cbz w20, .L1520
add x0, x22, :lo12:.LANCHOR0
ldr w1, [x29,172]
ldr w2, [x0,12]
@@ -9953,22 +10155,22 @@ FlashReadPages:
cmn w0, #1
mov w23, w0
csel w20, w20, wzr, ne
-.L1478:
+.L1520:
mov w0, w19
bl NandcFlashDeCs
add x6, x22, :lo12:.LANCHOR0
ldrb w0, [x29,136]
cmn w28, #1
strb w0, [x6,16]
- bne .L1485
+ bne .L1527
ldrb w0, [x6,1860]
- cbnz w0, .L1480
-.L1484:
+ cbnz w0, .L1522
+.L1526:
add x0, x25, :lo12:.LANCHOR4
ldr x20, [x0,72]
- cbnz x20, .L1481
- b .L1554
-.L1480:
+ cbnz x20, .L1523
+ b .L1596
+.L1522:
ldr x0, [x6,128]
mov w4, 1
ldr w1, [x29,172]
@@ -9980,18 +10182,18 @@ FlashReadPages:
bl FlashDdrTunningRead
cmn w0, #1
mov w28, w0
- beq .L1483
+ beq .L1525
ldr x6, [x29,104]
- ldrb w0, [x6,1936]
+ ldrb w0, [x6,1944]
cmp w28, w0, lsr 1
- bls .L1505
-.L1483:
+ bls .L1547
+.L1525:
lsr w0, w20, 8
bl NandcSetDdrPara
cmn w28, #1
- beq .L1484
- b .L1505
-.L1481:
+ beq .L1526
+ b .L1547
+.L1523:
ldr w1, [x29,172]
mov w0, w19
ldr x2, [x21,8]
@@ -10000,20 +10202,20 @@ FlashReadPages:
cmn w0, #1
mov w28, w0
mov w20, 0
- bne .L1486
+ bne .L1528
add x2, x22, :lo12:.LANCHOR0
ldr x0, [x2,744]
ldrb w0, [x0,19]
sub w0, w0, #1
uxtb w0, w0
- cmp w0, 6
- bhi .L1487
+ cmp w0, 7
+ bhi .L1529
ldrb w1, [x2,761]
mov w0, w19
add x2, x2, 764
mov w3, w20
bl HynixSetRRPara
-.L1487:
+.L1529:
ldr w1, [x29,172]
mov w0, w19
ldr x2, [x21,8]
@@ -10026,22 +10228,22 @@ FlashReadPages:
ldr w1, [x21,4]
mov w3, w28
str x4, [x29,104]
- ldrb w2, [x4,1936]
+ ldrb w2, [x4,1944]
bl printk
cmn w28, #1
ldr x4, [x29,104]
- bne .L1486
- ldrb w0, [x4,120]
- cbz w0, .L1486
+ bne .L1528
+ ldrb w0, [x4,196]
+ cbz w0, .L1528
ldr w0, [x29,152]
- cbz w0, .L1488
+ cbz w0, .L1530
mov w0, w19
bl flash_enter_slc_mode
- b .L1489
-.L1488:
+ b .L1531
+.L1530:
mov w0, w19
bl flash_exit_slc_mode
-.L1489:
+.L1531:
add x0, x25, :lo12:.LANCHOR4
ldr w1, [x29,172]
ldr x2, [x21,8]
@@ -10051,102 +10253,102 @@ FlashReadPages:
mov w0, w19
blr x4
mov w28, w0
- b .L1486
-.L1554:
+ b .L1528
+.L1596:
ldr w1, [x29,172]
mov w0, w19
ldr x2, [x21,8]
ldr x3, [x21,16]
bl FlashReadRawPage
mov w28, w0
- b .L1486
-.L1505:
+ b .L1528
+.L1547:
mov w20, 0
-.L1485:
+.L1527:
add x0, x22, :lo12:.LANCHOR0
- ldrb w0, [x0,1936]
+ ldrb w0, [x0,1944]
add w0, w0, w0, lsl 1
cmp w28, w0, lsr 2
- bls .L1486
+ bls .L1528
add x0, x25, :lo12:.LANCHOR4
ldr x0, [x0,72]
cmp x0, xzr
mov w0, 256
csel w28, w28, w0, ne
-.L1486:
+.L1528:
cmp w28, 256
- beq .L1510
+ beq .L1552
cmn w28, #1
- bne .L1490
-.L1510:
+ bne .L1532
+.L1552:
str w28, [x26,x27]
- b .L1492
-.L1490:
+ b .L1534
+.L1532:
str wzr, [x26,x27]
-.L1492:
+.L1534:
ldr w3, [x26,x27]
cmn w3, #1
- bne .L1494
+ bne .L1536
add x2, x22, :lo12:.LANCHOR0
ldr w1, [x21,4]
ldr x0, [x29,128]
- ldrb w2, [x2,1936]
+ ldrb w2, [x2,1944]
bl printk
ldr x1, [x21,16]
- cbz x1, .L1494
+ cbz x1, .L1536
mov w2, 4
ldr x0, [x29,120]
mov w3, w2
bl rknand_print_hex
-.L1494:
- cbz w20, .L1496
+.L1536:
+ cbz w20, .L1538
add x0, x22, :lo12:.LANCHOR0
- ldrb w0, [x0,1936]
+ ldrb w0, [x0,1944]
add w0, w0, w0, lsl 1
cmp w23, w0, lsr 2
- bls .L1497
+ bls .L1539
add x25, x25, :lo12:.LANCHOR4
ldr x0, [x25,72]
cmp x0, xzr
mov w0, 256
csel w23, w23, w0, ne
-.L1497:
+.L1539:
add w0, w24, 1
mov w1, 56
cmp w23, 256
umull x0, w0, w1
- beq .L1511
+ beq .L1553
cmn w23, #1
- bne .L1498
-.L1511:
+ bne .L1540
+.L1553:
str w23, [x26,x0]
- b .L1496
-.L1498:
+ b .L1538
+.L1540:
str wzr, [x26,x0]
-.L1496:
+.L1538:
ldr w0, [x29,152]
add w24, w24, w20
- cbz w0, .L1466
+ cbz w0, .L1508
add x0, x22, :lo12:.LANCHOR0
- ldrb w0, [x0,120]
- cbz w0, .L1466
+ ldrb w0, [x0,196]
+ cbz w0, .L1508
mov w0, w19
bl flash_exit_slc_mode
-.L1466:
+.L1508:
add w24, w24, 1
- b .L1463
-.L1553:
+ b .L1505
+.L1595:
mov w0, 0
- b .L1551
-.L1476:
+ b .L1593
+.L1518:
mov w0, w19
bl NandcWaitFlashReady
- cbz w20, .L1473
+ cbz w20, .L1515
ldr w1, [x29,172]
mov w0, w19
bl FlashReadDpDataOutCmd
- b .L1473
-.L1551:
+ b .L1515
+.L1593:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -10190,18 +10392,18 @@ FlashLoadFactorBbt:
str xzr, [x29,144]
uxth w25, w25
str w0, [x29,124]
-.L1556:
+.L1598:
add x1, x22, :lo12:.LANCHOR0
ldrb w1, [x1,1845]
cmp w1, w19
- bls .L1566
+ bls .L1608
mul w3, w19, w21
mov w20, w25
mov w4, 61664
-.L1557:
+.L1599:
ldr w0, [x29,124]
cmp w20, w0
- ble .L1559
+ ble .L1601
add w1, w3, w20
add x0, x29, 136
lsl w1, w1, 10
@@ -10215,12 +10417,12 @@ FlashLoadFactorBbt:
ldr x3, [x29,112]
cmn w0, #1
ldr x4, [x29,104]
- beq .L1558
+ beq .L1600
add x24, x23, :lo12:.LANCHOR4
ldr x0, [x24,112]
ldrh w0, [x0]
cmp w0, w4
- bne .L1558
+ bne .L1600
mov x0, x26
mov w1, w19
mov w2, w20
@@ -10229,20 +10431,20 @@ FlashLoadFactorBbt:
bl printk
uxth w28, w28
strh w20, [x24,144]
- b .L1559
-.L1558:
+ b .L1601
+.L1600:
sub w20, w20, #1
uxth w20, w20
- b .L1557
-.L1559:
+ b .L1599
+.L1601:
add x1, x22, :lo12:.LANCHOR0
add w19, w19, 1
uxtb w19, w19
ldrb w1, [x1,1845]
cmp w1, w28
csel w27, w27, wzr, ne
- b .L1556
-.L1566:
+ b .L1598
+.L1608:
mov w0, w27
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -10274,9 +10476,9 @@ FlashProgSlc2KPages:
mov w25, 0
add x22, x22, :lo12:.LANCHOR0
mov w28, -1
-.L1568:
+.L1610:
cmp w25, w23
- beq .L1597
+ beq .L1639
mov w1, w24
sub w4, w23, w25
mov x0, x21
@@ -10286,10 +10488,10 @@ FlashProgSlc2KPages:
ldr w0, [x29,100]
ldrb w1, [x22,1845]
cmp w0, w1
- bcc .L1569
+ bcc .L1611
str w28, [x21]
- b .L1570
-.L1569:
+ b .L1612
+.L1611:
add x0, x22, x0, uxtw
ldrb w20, [x0,1848]
mov w0, w20
@@ -10344,36 +10546,36 @@ FlashProgSlc2KPages:
ldr w1, [x29,96]
mov w0, w20
bl FlashReadStatus
- tbz x0, 0, .L1573
+ tbz x0, 0, .L1615
str w28, [x21]
-.L1573:
+.L1615:
mov w0, w20
bl NandcFlashDeCs
-.L1570:
+.L1612:
add w25, w25, 1
add x21, x21, 56
- b .L1568
-.L1597:
+ b .L1610
+.L1639:
mov w21, 0
- cbz w27, .L1595
+ cbz w27, .L1637
adrp x25, .LC105
adrp x26, .LC104
adrp x27, .LC103
add x25, x25, :lo12:.LC105
add x26, x26, :lo12:.LC104
add x27, x27, :lo12:.LC103
-.L1596:
+.L1638:
cmp w21, w23
- beq .L1595
+ beq .L1637
ldr w0, [x19]
cmn w0, #1
- bne .L1576
+ bne .L1618
adrp x0, .LC102
ldr w1, [x19,4]
add x0, x0, :lo12:.LC102
bl printk
- b .L1577
-.L1576:
+ b .L1619
+.L1618:
adrp x20, .LANCHOR4
sub w4, w23, w21
add x22, x20, :lo12:.LANCHOR4
@@ -10400,44 +10602,44 @@ FlashProgSlc2KPages:
bl FlashReadPages
ldr w22, [x29,104]
cmn w22, #1
- bne .L1578
+ bne .L1620
ldr w1, [x19,4]
mov x0, x27
bl printk
str w22, [x19]
-.L1578:
+.L1620:
ldr x0, [x19,16]
- cbz x0, .L1579
+ cbz x0, .L1621
ldr w2, [x0]
add x0, x20, :lo12:.LANCHOR4
ldr x0, [x0,128]
ldr w3, [x0]
cmp w2, w3
- beq .L1579
+ beq .L1621
ldr w1, [x19,4]
mov x0, x26
bl printk
mov w0, -1
str w0, [x19]
-.L1579:
+.L1621:
ldr x0, [x19,8]
- cbz x0, .L1577
+ cbz x0, .L1619
add x20, x20, :lo12:.LANCHOR4
ldr w2, [x0]
ldr x0, [x20,120]
ldr w3, [x0]
cmp w2, w3
- beq .L1577
+ beq .L1619
ldr w1, [x19,4]
mov x0, x25
bl printk
mov w0, -1
str w0, [x19]
-.L1577:
+.L1619:
add w21, w21, 1
add x19, x19, 56
- b .L1596
-.L1595:
+ b .L1638
+.L1637:
mov w0, 0
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -10472,21 +10674,21 @@ FtlLoadFactoryBbt:
str x24, [x19,16]
mov w25, -1
mov w26, 61664
-.L1599:
+.L1641:
add x0, x22, :lo12:.LANCHOR0
- ldrh w1, [x0,1970]
+ ldrh w1, [x0,1978]
cmp w23, w1
- bcs .L1608
- ldrh w20, [x0,2014]
+ bcs .L1650
+ ldrh w20, [x0,2022]
strh w25, [x21,12]
-.L1601:
+.L1643:
add x0, x22, :lo12:.LANCHOR0
sub w20, w20, #1
uxth w20, w20
- ldrh w0, [x0,2014]
+ ldrh w0, [x0,2022]
sub w1, w0, #16
cmp w20, w1
- ble .L1602
+ ble .L1644
madd w0, w23, w0, w20
mov w1, 1
lsl w0, w0, 10
@@ -10496,16 +10698,16 @@ FtlLoadFactoryBbt:
bl FlashReadPages
ldr w0, [x19]
cmn w0, #1
- beq .L1601
+ beq .L1643
ldrh w0, [x24]
cmp w0, w26
- bne .L1601
+ bne .L1643
strh w20, [x21,12]
-.L1602:
+.L1644:
add w23, w23, 1
add x21, x21, 2
- b .L1599
-.L1608:
+ b .L1641
+.L1650:
mov w0, 0
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -10528,12 +10730,12 @@ FtlGetLastWrittenPage:
str x25, [sp,64]
mov w23, w1
add x3, x3, :lo12:.LANCHOR0
- bne .L1610
- ldrh w19, [x3,2020]
- b .L1611
-.L1610:
- ldrh w19, [x3,2018]
-.L1611:
+ bne .L1652
+ ldrh w19, [x3,2026]
+ b .L1653
+.L1652:
+ ldrh w19, [x3,2024]
+.L1653:
sub w19, w19, #1
lsl w21, w0, 10
mov w1, 1
@@ -10548,12 +10750,12 @@ FtlGetLastWrittenPage:
bl FlashReadPages
ldr w0, [x29,144]
cmn w0, #1
- bne .L1612
+ bne .L1654
mov w22, 0
mov w25, 2
-.L1613:
+.L1655:
cmp w22, w19
- bgt .L1612
+ bgt .L1654
add w3, w22, w19
mov w1, 1
mov w2, w23
@@ -10565,21 +10767,21 @@ FtlGetLastWrittenPage:
bl FlashReadPages
ldr w0, [x24]
cmn w0, #1
- bne .L1614
+ bne .L1656
ldr w0, [x24,4]
cmn w0, #1
- bne .L1614
+ bne .L1656
ldr w0, [x29,88]
cmn w0, #1
- beq .L1614
+ beq .L1656
sub w19, w20, #1
sxth w19, w19
- b .L1613
-.L1614:
+ b .L1655
+.L1656:
add w20, w20, 1
sxth w22, w20
- b .L1613
-.L1612:
+ b .L1655
+.L1654:
mov w0, w19
ldr x25, [sp,64]
ldp x19, x20, [sp,16]
@@ -10611,15 +10813,15 @@ FtlLoadBbt:
str x22, [x19,16]
bl FtlBbtMemInit
add x0, x20, :lo12:.LANCHOR0
- ldrh w21, [x0,2014]
+ ldrh w21, [x0,2022]
sub w21, w21, #1
uxth w21, w21
-.L1621:
+.L1663:
add x0, x20, :lo12:.LANCHOR0
- ldrh w0, [x0,2014]
+ ldrh w0, [x0,2022]
sub w0, w0, #48
cmp w21, w0
- ble .L1624
+ ble .L1666
lsl w0, w21, 10
mov w1, 1
str w0, [x19,4]
@@ -10628,7 +10830,7 @@ FtlLoadBbt:
bl FlashReadPages
ldr w0, [x19]
cmn w0, #1
- bne .L1622
+ bne .L1664
ldr w0, [x19,4]
mov w1, 1
mov w2, w1
@@ -10636,13 +10838,13 @@ FtlLoadBbt:
str w0, [x19,4]
mov x0, x19
bl FlashReadPages
-.L1622:
+.L1664:
ldr w0, [x19]
cmn w0, #1
- beq .L1623
+ beq .L1665
ldrh w0, [x22]
cmp w0, w25
- bne .L1623
+ bne .L1665
add x1, x20, :lo12:.LANCHOR0
add x0, x1, 2104
strh w21, [x1,2104]
@@ -10650,21 +10852,21 @@ FtlLoadBbt:
str w1, [x0,8]
ldrh w1, [x22,8]
strh w1, [x0,4]
- b .L1624
-.L1623:
+ b .L1666
+.L1665:
sub w21, w21, #1
uxth w21, w21
- b .L1621
-.L1624:
+ b .L1663
+.L1666:
add x21, x20, :lo12:.LANCHOR0
mov w2, 65535
mov w0, -1
ldrh w1, [x21,2104]
cmp w1, w2
- beq .L1626
+ beq .L1668
ldrh w1, [x21,2108]
cmp w1, w2
- beq .L1628
+ beq .L1670
add x25, x23, :lo12:.LANCHOR4
lsl w1, w1, 10
add x0, x25, 160
@@ -10674,21 +10876,21 @@ FtlLoadBbt:
bl FlashReadPages
ldr w0, [x25,160]
cmn w0, #1
- beq .L1628
+ beq .L1670
ldrh w1, [x22]
mov w0, 61649
cmp w1, w0
- bne .L1628
+ bne .L1670
ldr w0, [x22,4]
ldr w1, [x21,2112]
cmp w0, w1
- bls .L1628
+ bls .L1670
str w0, [x21,2112]
ldrh w1, [x21,2108]
ldrh w0, [x22,8]
strh w1, [x21,2104]
strh w0, [x21,2108]
-.L1628:
+.L1670:
add x25, x20, :lo12:.LANCHOR0
mov w1, 1
add x21, x23, :lo12:.LANCHOR4
@@ -10699,8 +10901,8 @@ FtlLoadBbt:
sxth w19, w0
add w0, w0, 1
strh w0, [x25,2106]
-.L1630:
- tbnz w19, #31, .L1635
+.L1672:
+ tbnz w19, #31, .L1677
ldrh w0, [x25,2104]
mov w1, 1
mov w2, w1
@@ -10713,45 +10915,45 @@ FtlLoadBbt:
bl FlashReadPages
ldr w0, [x21]
cmn w0, #1
- beq .L1631
+ beq .L1673
ldrh w0, [x22]
cmp w0, w26
- bne .L1631
-.L1635:
+ bne .L1673
+.L1677:
add x1, x20, :lo12:.LANCHOR0
ldrh w0, [x22,10]
mov w2, 65535
strh w0, [x1,2110]
ldrh w0, [x22,12]
cmp w0, w2
- bne .L1632
- b .L1633
-.L1631:
+ bne .L1674
+ b .L1675
+.L1673:
sub w19, w19, #1
sxth w19, w19
- b .L1630
-.L1632:
- ldr w2, [x1,1944]
+ b .L1672
+.L1674:
+ ldr w2, [x1,1952]
cmp w0, w2
- beq .L1633
- ldrh w1, [x1,1958]
+ beq .L1675
+ ldrh w1, [x1,1966]
lsr w1, w1, 2
cmp w0, w1
- bcs .L1633
+ bcs .L1675
cmp w2, w1
- bcs .L1633
+ bcs .L1675
bl FtlSysBlkNumInit
-.L1633:
+.L1675:
add x20, x20, :lo12:.LANCHOR0
mov x19, 0
add x21, x20, 2104
add x23, x23, :lo12:.LANCHOR4
-.L1636:
- ldrh w0, [x20,1970]
+.L1678:
+ ldrh w0, [x20,1978]
mov w1, w19
add x19, x19, 1
cmp w1, w0
- bcs .L1654
+ bcs .L1696
add x0, x24, :lo12:.LANCHOR2
ldr x3, [x23,168]
ldrh w2, [x0,2248]
@@ -10761,10 +10963,10 @@ FtlLoadBbt:
lsl w2, w2, 2
add x1, x3, x1, lsl 2
bl ftl_memcpy
- b .L1636
-.L1654:
+ b .L1678
+.L1696:
mov w0, 0
-.L1626:
+.L1668:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -10790,46 +10992,46 @@ FtlScanSysBlk:
stp x27, x28, [sp,80]
strh wzr, [x21,2320]
mov x24, x22
- ldr w2, [x20,2048]
+ ldr w2, [x20,2052]
mov w22, 65535
ldr x0, [x21,2232]
lsl w2, w2, 2
- strh wzr, [x20,2066]
+ strh wzr, [x20,2070]
bl ftl_memset
- ldr w2, [x20,2048]
+ ldr w2, [x20,2052]
mov w1, 0
ldr x0, [x21,2176]
lsl w2, w2, 1
bl ftl_memset
- ldrh w2, [x20,2040]
+ ldrh w2, [x20,2044]
mov w1, 0
ldr x0, [x21,2200]
lsl w2, w2, 2
bl ftl_memset
- ldrh w2, [x20,2040]
+ ldrh w2, [x20,2044]
mov w1, 0
ldr x0, [x20,2072]
lsl w2, w2, 1
bl ftl_memset
add x0, x21, 264
mov w1, 255
- mov w2, 12
+ mov w2, 16
bl ftl_memset
- ldrh w21, [x20,1956]
-.L1656:
+ ldrh w21, [x20,1964]
+.L1698:
add x1, x19, :lo12:.LANCHOR0
- ldrh w0, [x1,1958]
+ ldrh w0, [x1,1966]
cmp w0, w21
- bls .L1697
+ bls .L1739
mov x27, 0
- ldrh w5, [x1,1948]
- ldrh w4, [x1,2030]
+ ldrh w5, [x1,1956]
+ ldrh w4, [x1,2036]
mov w20, w27
mov x23, x1
-.L1698:
+.L1740:
cmp w5, w27, uxth
- bls .L1731
- add x0, x23, 1976
+ bls .L1773
+ add x0, x23, 1984
mov w1, w21
str x4, [x29,112]
str x5, [x29,120]
@@ -10839,7 +11041,7 @@ FtlScanSysBlk:
bl FtlBbmIsBadBlock
ldr x5, [x29,120]
ldr x4, [x29,112]
- cbnz w0, .L1657
+ cbnz w0, .L1699
add x2, x24, :lo12:.LANCHOR2
mov w0, 56
lsl w28, w28, 10
@@ -10859,11 +11061,11 @@ FtlScanSysBlk:
uxth w20, w20
add x1, x2, x1, sxtw 2
str x1, [x0,16]
-.L1657:
+.L1699:
add x27, x27, 1
- b .L1698
-.L1731:
- cbz w20, .L1660
+ b .L1740
+.L1773:
+ cbz w20, .L1702
add x0, x24, :lo12:.LANCHOR2
mov w1, w20
mov w2, 1
@@ -10872,9 +11074,9 @@ FtlScanSysBlk:
mov w28, 61604
ldr x0, [x0,2048]
bl FlashReadPages
-.L1661:
+.L1703:
cmp w20, w23, uxth
- bls .L1660
+ bls .L1702
mov x0, 56
mul x6, x23, x0
add x0, x24, :lo12:.LANCHOR2
@@ -10885,9 +11087,9 @@ FtlScanSysBlk:
cmn w0, #1
ldr x26, [x1,16]
ubfx x25, x5, 10, 16
- bne .L1663
+ bne .L1705
mov w7, 16
-.L1662:
+.L1704:
add x8, x24, :lo12:.LANCHOR2
str x7, [x29,104]
str x8, [x29,112]
@@ -10908,64 +11110,64 @@ FtlScanSysBlk:
ldr x6, [x29,120]
ldr x7, [x29,104]
ldr x0, [x8,2048]
- bne .L1664
+ bne .L1706
str w27, [x0,x6]
- b .L1663
-.L1664:
+ b .L1705
+.L1706:
ldr w0, [x0,x6]
cmn w0, #1
- bne .L1663
+ bne .L1705
sub w7, w7, #1
uxth w7, w7
- cbnz w7, .L1662
-.L1663:
+ cbnz w7, .L1704
+.L1705:
add x0, x24, :lo12:.LANCHOR2
ldr x1, [x0,2048]
ldr w1, [x1,x6]
cmn w1, #1
- beq .L1666
+ beq .L1708
ldr w0, [x0,232]
cmn w0, #1
- beq .L1667
+ beq .L1709
ldr w1, [x26,4]
cmp w0, w1
- bhi .L1668
-.L1667:
+ bhi .L1710
+.L1709:
ldr w0, [x26,4]
cmn w0, #1
- beq .L1668
+ beq .L1710
add x1, x24, :lo12:.LANCHOR2
add w0, w0, 1
str w0, [x1,232]
-.L1668:
+.L1710:
ldrh w0, [x26]
cmp w0, w28
- beq .L1670
- bhi .L1671
+ beq .L1712
+ bhi .L1713
mov w1, 61574
cmp w0, w1
- bne .L1669
+ bne .L1711
add x0, x19, :lo12:.LANCHOR0
add x7, x24, :lo12:.LANCHOR2
- ldrh w6, [x0,2040]
- ldrh w0, [x0,2066]
+ ldrh w6, [x0,2044]
+ ldrh w0, [x0,2070]
sub w2, w6, #1
ldr x7, [x7,2200]
sxth x1, w2
sub w2, w2, w0
- b .L1684
-.L1671:
+ b .L1726
+.L1713:
mov w1, 61634
cmp w0, w1
- beq .L1673
+ beq .L1715
cmp w0, w22
- bne .L1669
+ bne .L1711
mov w0, w25
- b .L1730
-.L1673:
+ b .L1772
+.L1715:
add x0, x19, :lo12:.LANCHOR0
add x7, x24, :lo12:.LANCHOR2
- ldr w6, [x0,2048]
+ ldr w6, [x0,2052]
ldrh w0, [x7,2320]
ldr x7, [x7,2232]
uxth w2, w6
@@ -10974,27 +11176,27 @@ FtlScanSysBlk:
sub w2, w2, #1
sxth x1, w1
sxth w2, w2
-.L1675:
+.L1717:
cmp w1, w2
- ble .L1732
+ ble .L1774
sbfiz x8, x1, 2, 32
ldr w11, [x26,4]
sxth x9, w1
ldr w10, [x7,x8]
cmp w11, w10
- bls .L1676
+ bls .L1718
ldr w2, [x7]
- cbnz w2, .L1677
+ cbnz w2, .L1719
cmp w0, w6
- beq .L1677
+ beq .L1719
add x2, x24, :lo12:.LANCHOR2
add w0, w0, 1
strh w0, [x2,2320]
-.L1677:
+.L1719:
mov w0, 0
-.L1678:
+.L1720:
cmp w0, w1
- beq .L1733
+ beq .L1775
add x6, x24, :lo12:.LANCHOR2
sxtw x2, w0
lsl x7, x2, 2
@@ -11009,32 +11211,32 @@ FtlScanSysBlk:
add x7, x6, x2
ldrh w7, [x7,2]
strh w7, [x6,x2]
- b .L1678
-.L1733:
+ b .L1720
+.L1775:
add x0, x24, :lo12:.LANCHOR2
ldr w6, [x26,4]
ldr x2, [x0,2232]
str w6, [x2,x8]
ldr x2, [x0,2176]
strh w25, [x2,x9,lsl 1]
- tbz w1, #31, .L1680
- b .L1669
-.L1676:
+ tbz w1, #31, .L1722
+ b .L1711
+.L1718:
sub w1, w1, #1
sxth x1, w1
- b .L1675
-.L1732:
- tbz w1, #31, .L1713
- b .L1669
-.L1680:
+ b .L1717
+.L1774:
+ tbz w1, #31, .L1755
+ b .L1711
+.L1722:
add x2, x19, :lo12:.LANCHOR0
ldrh w0, [x0,2320]
- ldr w2, [x2,2048]
+ ldr w2, [x2,2052]
sub w2, w2, w0
sub w2, w2, #1
cmp w1, w2, sxth
- bgt .L1669
-.L1713:
+ bgt .L1711
+.L1755:
add x2, x24, :lo12:.LANCHOR2
add w0, w0, 1
ldr w4, [x26,4]
@@ -11042,33 +11244,33 @@ FtlScanSysBlk:
ldr x0, [x2,2232]
str w4, [x0,x1,lsl 2]
ldr x0, [x2,2176]
- b .L1729
-.L1690:
+ b .L1771
+.L1732:
sbfiz x8, x1, 2, 32
ldr w11, [x26,4]
sxth x9, w1
ldr w10, [x7,x8]
cmp w11, w10
- bhi .L1734
+ bhi .L1776
sub w1, w1, #1
sxth x1, w1
-.L1684:
+.L1726:
cmp w1, w2
- bgt .L1690
- b .L1689
-.L1734:
+ bgt .L1732
+ b .L1731
+.L1776:
ldr w2, [x7]
- cbnz w2, .L1686
+ cbnz w2, .L1728
cmp w0, w6
- beq .L1686
+ beq .L1728
add x2, x19, :lo12:.LANCHOR0
add w0, w0, 1
- strh w0, [x2,2066]
-.L1686:
+ strh w0, [x2,2070]
+.L1728:
mov w0, 0
-.L1687:
+.L1729:
cmp w0, w1
- beq .L1735
+ beq .L1777
add x2, x24, :lo12:.LANCHOR2
ldr x7, [x2,2200]
sxtw x2, w0
@@ -11084,8 +11286,8 @@ FtlScanSysBlk:
add x7, x6, x2
ldrh w7, [x7,2]
strh w7, [x6,x2]
- b .L1687
-.L1735:
+ b .L1729
+.L1777:
add x0, x24, :lo12:.LANCHOR2
ldr w2, [x26,4]
ldr x0, [x0,2200]
@@ -11093,99 +11295,99 @@ FtlScanSysBlk:
add x0, x19, :lo12:.LANCHOR0
ldr x0, [x0,2072]
strh w25, [x0,x9,lsl 1]
-.L1689:
- tbnz w1, #31, .L1669
+.L1731:
+ tbnz w1, #31, .L1711
add x2, x19, :lo12:.LANCHOR0
- ldrh w0, [x2,2040]
- ldrh w6, [x2,2066]
+ ldrh w0, [x2,2044]
+ ldrh w6, [x2,2070]
sub w0, w0, #1
sub w0, w0, w6
cmp w1, w0, sxth
- bgt .L1669
+ bgt .L1711
add x0, x24, :lo12:.LANCHOR2
add w6, w6, 1
ldr w4, [x26,4]
- strh w6, [x2,2066]
+ strh w6, [x2,2070]
ldr x0, [x0,2200]
str w4, [x0,x1,lsl 2]
ldr x0, [x2,2072]
-.L1729:
+.L1771:
strh w25, [x0,x1,lsl 1]
- b .L1669
-.L1670:
+ b .L1711
+.L1712:
add x0, x24, :lo12:.LANCHOR2
add x1, x0, 264
ldrh w2, [x0,264]
cmp w2, w22
- bne .L1691
+ bne .L1733
strh w25, [x0,264]
ldr w0, [x26,4]
str w0, [x1,8]
- b .L1669
-.L1691:
+ b .L1711
+.L1733:
ldrh w0, [x1,4]
cmp w0, w22
- beq .L1692
+ beq .L1734
mov w1, 1
bl FtlFreeSysBlkQueueIn
-.L1692:
+.L1734:
add x1, x24, :lo12:.LANCHOR2
ldr w2, [x26,4]
add x0, x1, 264
ldr w6, [x0,8]
cmp w6, w2
- bcs .L1693
+ bcs .L1735
ldrh w2, [x1,264]
strh w2, [x0,4]
strh w25, [x1,264]
ldr w1, [x26,4]
str w1, [x0,8]
- b .L1669
-.L1693:
+ b .L1711
+.L1735:
strh w25, [x0,4]
- b .L1669
-.L1666:
+ b .L1711
+.L1708:
add x0, x19, :lo12:.LANCHOR0
- ldrb w1, [x0,120]
+ ldrb w1, [x0,196]
mov w0, w25
- cbz w1, .L1694
-.L1730:
+ cbz w1, .L1736
+.L1772:
mov w1, 0
-.L1694:
+.L1736:
bl FtlFreeSysBlkQueueIn
-.L1669:
+.L1711:
add x23, x23, 1
- b .L1661
-.L1660:
+ b .L1703
+.L1702:
add w21, w21, 1
uxth w21, w21
- b .L1656
-.L1697:
+ b .L1698
+.L1739:
add x4, x24, :lo12:.LANCHOR2
ldr x2, [x4,2176]
ldrh w0, [x2]
- cbz w0, .L1699
-.L1702:
+ cbz w0, .L1741
+.L1744:
add x1, x19, :lo12:.LANCHOR0
ldr x2, [x1,2072]
ldrh w0, [x2]
- cbz w0, .L1700
- b .L1723
-.L1699:
+ cbz w0, .L1742
+ b .L1765
+.L1741:
ldrh w4, [x4,2320]
- cbz w4, .L1702
- ldr w1, [x1,2048]
-.L1703:
+ cbz w4, .L1744
+ ldr w1, [x1,2052]
+.L1745:
cmp w0, w1
- bcs .L1702
+ bcs .L1744
ldrh w4, [x2,w0,sxtw 1]
- cbz w4, .L1704
+ cbz w4, .L1746
mov w7, w0
-.L1705:
+.L1747:
add x1, x19, :lo12:.LANCHOR0
- ldr w1, [x1,2048]
+ ldr w1, [x1,2052]
cmp w0, w1
- bcs .L1702
+ bcs .L1744
add x2, x24, :lo12:.LANCHOR2
sxtw x6, w0
sub w1, w0, w7
@@ -11201,26 +11403,26 @@ FtlScanSysBlk:
str w6, [x5,x1,lsl 2]
ldr x1, [x2,2176]
strh wzr, [x1,x4]
- b .L1705
-.L1704:
+ b .L1747
+.L1746:
add w0, w0, 1
sxth w0, w0
- b .L1703
-.L1700:
- ldrh w4, [x1,2066]
- cbz w4, .L1723
- ldrh w1, [x1,2040]
-.L1708:
+ b .L1745
+.L1742:
+ ldrh w4, [x1,2070]
+ cbz w4, .L1765
+ ldrh w1, [x1,2044]
+.L1750:
cmp w0, w1
mov w7, w0
- bge .L1723
+ bge .L1765
ldrh w4, [x2,w0,sxtw 1]
- cbz w4, .L1709
-.L1710:
+ cbz w4, .L1751
+.L1752:
add x2, x19, :lo12:.LANCHOR0
- ldrh w1, [x2,2040]
+ ldrh w1, [x2,2044]
cmp w0, w1
- bge .L1723
+ bge .L1765
sxtw x6, w0
sub w1, w0, w7
ldr x5, [x2,2072]
@@ -11236,12 +11438,12 @@ FtlScanSysBlk:
str w6, [x5,x1,lsl 2]
ldr x1, [x2,2072]
strh wzr, [x1,x4]
- b .L1710
-.L1709:
+ b .L1752
+.L1751:
add w0, w0, 1
sxth w0, w0
- b .L1708
-.L1723:
+ b .L1750
+.L1765:
mov w0, 0
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -11255,85 +11457,108 @@ FtlScanSysBlk:
.global FtlLoadSysInfo
.type FtlLoadSysInfo, %function
FtlLoadSysInfo:
- stp x29, x30, [sp, -80]!
+ stp x29, x30, [sp, -96]!
mov w1, 0
add x29, sp, 0
stp x19, x20, [sp,16]
stp x23, x24, [sp,48]
- adrp x19, .LANCHOR2
- adrp x23, .LANCHOR4
+ adrp x20, .LANCHOR2
+ adrp x24, .LANCHOR4
stp x21, x22, [sp,32]
- add x22, x19, :lo12:.LANCHOR2
- add x21, x23, :lo12:.LANCHOR4
- str x25, [sp,64]
+ add x23, x20, :lo12:.LANCHOR2
+ add x21, x24, :lo12:.LANCHOR4
add x21, x21, 160
- adrp x20, .LANCHOR0
- add x25, x22, 264
- ldr x0, [x22,2072]
+ adrp x19, .LANCHOR0
+ stp x25, x26, [sp,64]
+ stp x27, x28, [sp,80]
+ ldr x0, [x23,2072]
+ add x25, x23, 264
str x0, [x21,8]
- ldr x0, [x22,2120]
+ ldr x0, [x23,2120]
str x0, [x21,16]
- add x0, x20, :lo12:.LANCHOR0
- ldrh w2, [x0,1956]
- ldr x0, [x19,#:lo12:.LANCHOR2]
+ add x0, x19, :lo12:.LANCHOR0
+ ldrh w2, [x0,1964]
+ ldr x0, [x20,#:lo12:.LANCHOR2]
lsl w2, w2, 1
bl ftl_memset
- ldrh w0, [x22,264]
+ ldrh w0, [x23,264]
mov w1, 65535
cmp w0, w1
- bne .L1737
-.L1745:
+ bne .L1779
+.L1790:
mov w19, -1
- b .L1738
-.L1737:
+ b .L1780
+.L1779:
mov w1, 1
+ mov w26, -1
bl FtlGetLastWrittenPage
- sxth w24, w0
+ sxth w22, w0
add w0, w0, 1
strh w0, [x25,2]
- mov w25, 61604
-.L1739:
- tbnz w24, #31, .L1744
- ldrh w0, [x22,264]
+ ldrsh w25, [x23,264]
+.L1781:
+ tbnz w22, #31, .L1789
+ orr w0, w22, w25, lsl 10
mov w1, 1
- mov w2, w1
- orr w0, w24, w0, lsl 10
str w0, [x21,4]
- ldr x0, [x22,2072]
+ mov w2, w1
+ ldr x0, [x23,2072]
+ add x27, x19, :lo12:.LANCHOR0
str x0, [x21,8]
mov x0, x21
bl FlashReadPages
+ ldrb w0, [x27,8]
+ cbz w0, .L1782
+ ldr x0, [x21,16]
+ ldr w28, [x0,12]
+ cbz w28, .L1782
+ ldr x0, [x21,8]
+ ldrh w1, [x27,2034]
+ bl js_hash
+ cmp w28, w0
+ beq .L1782
+ cbnz w22, .L1783
+ ldrh w0, [x23,268]
+ cmp w25, w0
+ beq .L1783
+ sxth w25, w0
+ ldrh w22, [x27,2026]
+ b .L1785
+.L1783:
+ str w26, [x21]
+.L1782:
ldr w0, [x21]
cmn w0, #1
- beq .L1740
- ldr x0, [x22,2072]
+ beq .L1785
+ ldr x0, [x23,2072]
ldr w1, [x0]
mov w0, 19539
movk w0, 0x4654, lsl 16
cmp w1, w0
- bne .L1740
- ldr x0, [x22,2120]
+ bne .L1785
+ ldr x0, [x23,2120]
+ mov w1, 61604
ldrh w0, [x0]
- cmp w0, w25
- bne .L1740
-.L1744:
- add x21, x23, :lo12:.LANCHOR4
- add x24, x19, :lo12:.LANCHOR2
+ cmp w0, w1
+ bne .L1785
+.L1789:
+ add x21, x24, :lo12:.LANCHOR4
+ add x23, x20, :lo12:.LANCHOR2
add x21, x21, 160
- add x22, x20, :lo12:.LANCHOR0
+ add x22, x19, :lo12:.LANCHOR0
mov w2, 48
- sub x0, x24, #64
+ sub x0, x23, #64
ldr x1, [x21,8]
bl ftl_memcpy
ldr x1, [x21,8]
- ldrh w2, [x22,1956]
- ldr x0, [x19,#:lo12:.LANCHOR2]
+ ldrh w2, [x22,1964]
+ ldr x0, [x20,#:lo12:.LANCHOR2]
add x1, x1, 48
lsl w2, w2, 1
bl ftl_memcpy
- ldrh w2, [x22,1956]
+ ldrh w2, [x22,1964]
ldr x3, [x21,8]
- ldr x0, [x20,#:lo12:.LANCHOR0]
+ ldr x0, [x19,#:lo12:.LANCHOR0]
uxth x1, w2
lsr w2, w2, 3
add x1, x1, 24
@@ -11341,50 +11566,50 @@ FtlLoadSysInfo:
lsr x1, x1, 1
add x1, x3, x1, lsl 2
bl ftl_memcpy
- ldrh w0, [x22,2064]
- cbz w0, .L1742
- ldrh w0, [x22,1956]
+ ldrh w0, [x22,2068]
+ cbz w0, .L1787
+ ldrh w0, [x22,1964]
ldr x3, [x21,8]
lsr w1, w0, 3
- ldrh w2, [x22,2056]
+ ldrh w2, [x22,2060]
add w1, w1, w0, lsl 1
- ldr x0, [x24,2224]
+ ldr x0, [x23,2224]
add w1, w1, 52
lsl w2, w2, 2
and x1, x1, 65532
add x1, x3, x1
bl ftl_memcpy
- b .L1742
-.L1740:
- sub w24, w24, #1
- sxth w24, w24
- b .L1739
-.L1742:
- add x0, x19, :lo12:.LANCHOR2
+ b .L1787
+.L1785:
+ sub w22, w22, #1
+ sxth w22, w22
+ b .L1781
+.L1787:
+ add x0, x20, :lo12:.LANCHOR2
mov w1, 19539
movk w1, 0x4654, lsl 16
ldr w2, [x0,-64]
cmp w2, w1
- bne .L1745
- add x1, x20, :lo12:.LANCHOR0
+ bne .L1790
+ add x1, x19, :lo12:.LANCHOR0
ldrb w3, [x0,-54]
ldrh w4, [x0,-56]
strh w4, [x0,270]
- ldrh w2, [x1,1970]
+ ldrh w2, [x1,1978]
cmp w3, w2
- bne .L1745
- ldrh w3, [x1,2018]
- add x23, x23, :lo12:.LANCHOR4
- ldrh w2, [x1,2024]
+ bne .L1790
+ ldrh w3, [x1,2024]
+ add x24, x24, :lo12:.LANCHOR4
+ ldrh w2, [x1,2030]
strh wzr, [x0,282]
mul w3, w3, w4
str w3, [x1,2096]
- str w4, [x23,216]
+ str w4, [x24,216]
mul w3, w3, w2
- str w3, [x1,2060]
+ str w3, [x1,2064]
ldrh w2, [x1,2110]
- ldr w3, [x1,1960]
- ldrh w1, [x1,1948]
+ ldr w3, [x1,1968]
+ ldrh w1, [x1,1956]
sub w2, w3, w2
ldrh w3, [x0,-50]
sub w2, w2, w4
@@ -11432,54 +11657,55 @@ FtlLoadSysInfo:
str wzr, [x0,244]
str wzr, [x0,252]
str wzr, [x0,212]
- bls .L1746
+ bls .L1791
str w1, [x0,232]
-.L1746:
- add x0, x19, :lo12:.LANCHOR2
+.L1791:
+ add x0, x20, :lo12:.LANCHOR2
ldr w1, [x0,-28]
ldr w2, [x0,236]
cmp w1, w2
- bls .L1747
+ bls .L1792
str w1, [x0,236]
-.L1747:
+.L1792:
mov w0, 65535
cmp w3, w0
- beq .L1748
- add x0, x19, :lo12:.LANCHOR2
+ beq .L1793
+ add x0, x20, :lo12:.LANCHOR2
add x0, x0, 40
bl make_superblock
-.L1748:
- add x1, x19, :lo12:.LANCHOR2
+.L1793:
+ add x1, x20, :lo12:.LANCHOR2
add x0, x1, 88
ldrh w2, [x1,88]
mov w1, 65535
cmp w2, w1
- beq .L1749
+ beq .L1794
bl make_superblock
-.L1749:
- add x1, x19, :lo12:.LANCHOR2
+.L1794:
+ add x1, x20, :lo12:.LANCHOR2
add x0, x1, 136
ldrh w2, [x1,136]
mov w1, 65535
cmp w2, w1
- beq .L1750
+ beq .L1795
bl make_superblock
-.L1750:
- add x19, x19, :lo12:.LANCHOR2
+.L1795:
+ add x20, x20, :lo12:.LANCHOR2
mov w1, 65535
- add x0, x19, 280
- ldrh w2, [x19,280]
+ add x0, x20, 280
mov w19, 0
+ ldrh w2, [x20,280]
cmp w2, w1
- beq .L1738
+ beq .L1780
bl make_superblock
-.L1738:
+.L1780:
mov w0, w19
- ldr x25, [sp,64]
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
- ldp x29, x30, [sp], 80
+ ldp x25, x26, [sp,64]
+ ldp x27, x28, [sp,80]
+ ldp x29, x30, [sp], 96
ret
.size FtlLoadSysInfo, .-FtlLoadSysInfo
.align 2
@@ -11506,7 +11732,7 @@ FtlDumpBlockInfo:
add x1, x1, 16
add x0, x0, :lo12:.LC106
adrp x21, .LANCHOR2
- ldrh w24, [x19,2018]
+ ldrh w24, [x19,2024]
bl printk
ubfiz x2, x23, 1, 16
adrp x0, .LC107
@@ -11518,47 +11744,47 @@ FtlDumpBlockInfo:
strh w23, [x29,112]
add x0, x29, 112
bl make_superblock
- cbnz w25, .L1764
- ldrb w0, [x19,120]
- cbz w0, .L1764
+ cbnz w25, .L1815
+ ldrb w0, [x19,196]
+ cbz w0, .L1815
mov w0, w23
bl ftl_get_blk_mode
cmp w0, 1
mov w23, w0
- bne .L1756
- ldrh w24, [x19,2020]
- b .L1756
-.L1764:
+ bne .L1807
+ ldrh w24, [x19,2026]
+ b .L1807
+.L1815:
mov w23, 0
-.L1756:
+.L1807:
add x3, x22, :lo12:.LANCHOR0
adrp x0, .LC108
adrp x25, .LC109
add x0, x0, :lo12:.LC108
mov w1, w23
mov w2, w24
- ldrh w3, [x3,2018]
+ ldrh w3, [x3,2024]
mov w20, 0
mov w27, 65535
mov w28, 56
mov w26, 4
add x25, x25, :lo12:.LC109
bl printk
-.L1757:
+.L1808:
add x0, x22, :lo12:.LANCHOR0
- ldrh w5, [x0,1948]
- ldrh w6, [x0,2028]
- ldrh w7, [x0,2030]
+ ldrh w5, [x0,1956]
+ ldrh w6, [x0,2034]
+ ldrh w7, [x0,2036]
mov x0, 0
mov w19, w0
-.L1758:
+.L1809:
cmp w5, w0, uxth
- bls .L1772
+ bls .L1823
add x1, x29, 112
add x1, x1, x0, lsl 1
ldrh w2, [x1,16]
cmp w2, w27
- beq .L1759
+ beq .L1810
add x3, x21, :lo12:.LANCHOR2
orr w2, w20, w2, lsl 10
umull x1, w19, w28
@@ -11579,10 +11805,10 @@ FtlDumpBlockInfo:
sdiv w2, w2, w26
add x2, x3, x2, sxtw 2
str x2, [x1,16]
-.L1759:
+.L1810:
add x0, x0, 1
- b .L1758
-.L1772:
+ b .L1809
+.L1823:
add x0, x21, :lo12:.LANCHOR2
mov w1, w19
mov w2, w23
@@ -11590,9 +11816,9 @@ FtlDumpBlockInfo:
bl FlashReadPages
mov x8, 0
mov x9, 56
-.L1761:
+.L1812:
cmp w19, w8, uxth
- bls .L1773
+ bls .L1824
add x0, x21, :lo12:.LANCHOR2
ldrh w1, [x29,112]
mul x2, x8, x9
@@ -11617,13 +11843,13 @@ FtlDumpBlockInfo:
ldr x8, [x29,104]
ldr x9, [x29,96]
add x8, x8, 1
- b .L1761
-.L1773:
+ b .L1812
+.L1824:
add w20, w20, 1
uxth w20, w20
cmp w20, w24
- bne .L1757
-.L1763:
+ bne .L1808
+.L1814:
sub sp, x29, #16
mov w0, 0
ldp x19, x20, [sp,32]
@@ -11659,12 +11885,12 @@ FtlScanAllBlock:
add x24, x24, :lo12:.LC112
stp x25, x26, [sp,80]
bl printk
-.L1775:
+.L1826:
adrp x19, .LANCHOR0
add x19, x19, :lo12:.LANCHOR0
- ldrh w0, [x19,1958]
+ ldrh w0, [x19,1966]
cmp w0, w20
- bls .L1784
+ bls .L1835
mov w0, w20
adrp x21, .LANCHOR2
strh w20, [x29,80]
@@ -11679,21 +11905,21 @@ FtlScanAllBlock:
add x0, x29, 80
bl make_superblock
mov x1, 0
- ldrh w6, [x19,1948]
- ldrh w7, [x19,2028]
+ ldrh w6, [x19,1956]
+ ldrh w7, [x19,2034]
mov w9, 65535
- ldrh w8, [x19,2030]
+ ldrh w8, [x19,2036]
mov w10, 56
mov w19, w1
mov w5, 4
-.L1776:
+.L1827:
cmp w6, w1, uxth
- bls .L1785
+ bls .L1836
add x0, x29, 80
add x0, x0, x1, lsl 1
ldrh w2, [x0,16]
cmp w2, w9
- beq .L1777
+ beq .L1828
add x3, x21, :lo12:.LANCHOR2
lsl w2, w2, 10
umull x0, w19, w10
@@ -11714,10 +11940,10 @@ FtlScanAllBlock:
sdiv w0, w0, w5
add x0, x3, x0, sxtw 2
str x0, [x2,16]
-.L1777:
+.L1828:
add x1, x1, 1
- b .L1776
-.L1785:
+ b .L1827
+.L1836:
add x0, x21, :lo12:.LANCHOR2
mov w1, w19
mov w2, 0
@@ -11725,10 +11951,10 @@ FtlScanAllBlock:
mov x26, 56
ldr x0, [x0,2048]
bl FlashReadPages
-.L1779:
+.L1830:
add x0, x21, :lo12:.LANCHOR2
cmp w19, w25, uxth
- bls .L1786
+ bls .L1837
ldr x4, [x0,2048]
mul x2, x25, x26
ldrh w1, [x29,80]
@@ -11748,17 +11974,17 @@ FtlScanAllBlock:
ldr w3, [x3,4]
ldr w7, [x7,12]
bl printk
- b .L1779
-.L1786:
+ b .L1830
+.L1837:
ldr x0, [x0,2048]
mov w1, w19
mov w2, 1
mov x25, 0
mov x26, 56
bl FlashReadPages
-.L1781:
+.L1832:
cmp w19, w25, uxth
- bls .L1787
+ bls .L1838
add x0, x21, :lo12:.LANCHOR2
ldrh w1, [x29,80]
mul x2, x25, x26
@@ -11779,12 +12005,12 @@ FtlScanAllBlock:
ldr w3, [x3,4]
ldr w7, [x7,12]
bl printk
- b .L1781
-.L1787:
+ b .L1832
+.L1838:
add w20, w20, 1
uxth w20, w20
- b .L1775
-.L1784:
+ b .L1826
+.L1835:
sub sp, x29, #16
mov w0, 0
ldp x19, x20, [sp,32]
@@ -11796,223 +12022,6 @@ FtlScanAllBlock:
ret
.size FtlScanAllBlock, .-FtlScanAllBlock
.align 2
- .global FtlGcScanTempBlk
- .type FtlGcScanTempBlk, %function
-FtlGcScanTempBlk:
- stp x29, x30, [sp, -160]!
- add x29, sp, 0
- stp x19, x20, [sp,16]
- adrp x20, .LANCHOR1
- mov x19, x0
- add x0, x20, :lo12:.LANCHOR1
- str w1, [x29,152]
- stp x21, x22, [sp,32]
- stp x23, x24, [sp,48]
- stp x25, x26, [sp,64]
- stp x27, x28, [sp,80]
- str x20, [x29,144]
- ldrh w28, [x0,3168]
- mov w0, 65535
- cmp w28, w0
- beq .L1810
- cbnz w28, .L1789
- b .L1790
-.L1810:
- mov w28, 0
-.L1789:
- adrp x0, .LANCHOR0+2018
- ldr w1, [x29,152]
- ldrh w0, [x0,#:lo12:.LANCHOR0+2018]
- cmp w1, w0
- bne .L1791
-.L1790:
- bl FtlGcPageVarInit
-.L1791:
- mov w0, -1
- str w0, [x29,156]
- adrp x0, .LC113
- mov w21, 0
- add x0, x0, :lo12:.LC113
- mov w22, 65535
- adrp x23, .LANCHOR0
- str x0, [x29,136]
-.L1804:
- ldrh w0, [x19]
- strb wzr, [x19,8]
- cmp w0, w22
- beq .L1811
-.L1793:
- adrp x27, .LANCHOR2
-.L1807:
- add x0, x23, :lo12:.LANCHOR0
- mov x2, x19
- mov w20, 0
- mov w9, 4
- ldrh w5, [x0,1948]
- ldrh w8, [x0,2030]
- add x5, x19, x5, lsl 1
-.L1794:
- cmp x2, x5
- beq .L1819
- ldrh w1, [x2,16]
- cmp w1, w22
- beq .L1795
- add x6, x27, :lo12:.LANCHOR2
- mov w0, 56
- orr w1, w28, w1, lsl 10
- add w4, w20, 1
- umull x0, w20, w0
- ldr x7, [x6,2048]
- add x7, x7, x0
- str w1, [x7,4]
- ldr x1, [x6,2048]
- ldr x6, [x6,888]
- add x0, x1, x0
- mul w1, w20, w8
- uxth w20, w4
- str xzr, [x0,8]
- sdiv w1, w1, w9
- add x1, x6, x1, sxtw 2
- str x1, [x0,16]
-.L1795:
- add x2, x2, 2
- b .L1794
-.L1819:
- add x0, x27, :lo12:.LANCHOR2
- mov w1, w20
- mov w2, 0
- mov x24, 0
- adrp x25, .LANCHOR2
- ldr x0, [x0,2048]
- bl FlashReadPages
-.L1797:
- cmp w20, w24, uxth
- bls .L1820
- add x1, x25, :lo12:.LANCHOR2
- mov x0, 56
- str x1, [x29,104]
- mul x26, x24, x0
- ldr x10, [x1,2048]
- str x10, [x29,112]
- add x9, x10, x26
- str x9, [x29,120]
- ldr w2, [x9,4]
- str x2, [x29,128]
- lsr x0, x2, 10
- bl P2V_plane
- uxth w7, w0
- ldr x10, [x29,112]
- ldr x2, [x29,128]
- ldr w0, [x10,x26]
- cbnz w0, .L1798
- ldr x9, [x29,120]
- add x24, x24, 1
- ldr x1, [x29,104]
- ldr x5, [x9,16]
- ldrh w0, [x5]
- cmp w0, w22
- bne .L1799
- mov w0, 1
- str w0, [x1,2344]
- b .L1792
-.L1799:
- mov w1, w2
- ldr w0, [x5,12]
- ldr w2, [x5,8]
- bl FtlGcUpdatePage
- b .L1797
-.L1798:
- ldrh w1, [x19]
- ldr x0, [x29,136]
- bl printk
- adrp x0, .LANCHOR0
- add x0, x0, :lo12:.LANCHOR0
- ldr w1, [x0,1940]
- cbnz w1, .L1800
- ldrb w0, [x0,120]
- cbz w0, .L1801
-.L1800:
- add x0, x25, :lo12:.LANCHOR2
- ldrh w1, [x19]
- ldr x0, [x0,-80]
- ldrh w0, [x0,x1,lsl 1]
- cmp w0, 159
- bls .L1802
-.L1801:
- add x0, x25, :lo12:.LANCHOR2
- ldr x0, [x0,2048]
- ldr w0, [x0,x26]
- cmn w0, #1
- bne .L1803
-.L1802:
- add x0, x25, :lo12:.LANCHOR2
- ldr x0, [x0,2048]
- add x5, x0, x26
- ldr w0, [x5,4]
- str w0, [x29,156]
-.L1803:
- ldrh w1, [x19]
- mov w28, 0
- ldr x0, [x25,#:lo12:.LANCHOR2]
- strh wzr, [x0,x1,lsl 1]
- ldrh w0, [x19]
- bl INSERT_FREE_LIST
- mov w0, -1
- strh w0, [x19]
- bl FtlGcPageVarInit
- b .L1804
-.L1820:
- ldr w0, [x29,152]
- add w21, w21, 1
- add w3, w28, 1
- cmp w21, w0
- uxth w28, w3
- bcs .L1806
-.L1808:
- adrp x0, .LANCHOR0
- add x0, x0, :lo12:.LANCHOR0
- ldrh w0, [x0,2018]
- cmp w0, w28
- bhi .L1807
- b .L1811
-.L1806:
- ldr x0, [x29,144]
- add x1, x0, :lo12:.LANCHOR1
- ldrh w0, [x1,3168]
- cmp w0, w22
- beq .L1808
- add w0, w0, w21
- strh w0, [x1,3168]
- adrp x0, .LANCHOR0
- add x0, x0, :lo12:.LANCHOR0
- ldrh w0, [x0,2018]
- cmp w0, w28
- bls .L1808
- b .L1809
-.L1811:
- mov w7, 0
-.L1792:
- ldr x0, [x29,144]
- mov w1, w28
- strh w28, [x19,2]
- mov w2, w7
- add x20, x0, :lo12:.LANCHOR1
- mov w0, -1
- strb w7, [x19,6]
- strh w0, [x20,3168]
- mov x0, x19
- bl ftl_sb_update_avl_pages
-.L1809:
- ldr w0, [x29,156]
- ldp x19, x20, [sp,16]
- ldp x21, x22, [sp,32]
- ldp x23, x24, [sp,48]
- ldp x25, x26, [sp,64]
- ldp x27, x28, [sp,80]
- ldp x29, x30, [sp], 160
- ret
- .size FtlGcScanTempBlk, .-FtlGcScanTempBlk
- .align 2
.global FlashProgPages
.type FlashProgPages, %function
FlashProgPages:
@@ -12036,17 +12045,17 @@ FlashProgPages:
mov w23, w2
mov w22, 0
ldrb w5, [x5,19]
- cbz w4, .L1822
+ cbz w4, .L1840
bl FlashProgSlc2KPages
- b .L1823
-.L1822:
+ b .L1841
+.L1840:
sub w0, w5, #1
mov w27, 56
mov x28, 24
str w0, [x29,116]
-.L1874:
+.L1892:
cmp w22, w25
- bcs .L1875
+ bcs .L1893
umull x20, w22, w27
sub w4, w25, w22
add x2, x29, 128
@@ -12060,27 +12069,27 @@ FlashProgPages:
ldr w0, [x29,132]
ldrb w4, [x2,1845]
cmp w0, w4
- bcc .L1824
+ bcc .L1842
mov w0, -1
str w0, [x19,x20]
- b .L1825
-.L1824:
- ldrb w1, [x2,1937]
+ b .L1843
+.L1842:
+ ldrb w1, [x2,1945]
add x3, x2, 1652
cmp w1, wzr
uxtw x1, w0
csel w24, w24, wzr, ne
madd x0, x1, x28, x3
ldr x0, [x0,8]
- cbz x0, .L1827
+ cbz x0, .L1845
cmp w4, 1
- bne .L1828
+ bne .L1846
ldr x0, [x2,128]
bl NandcIqrWaitFlashReady
-.L1828:
+.L1846:
ldrb w0, [x29,132]
bl FlashWaitCmdDone
-.L1827:
+.L1845:
add x0, x21, :lo12:.LANCHOR0
ldr w2, [x29,132]
add x0, x0, 1652
@@ -12089,12 +12098,12 @@ FlashProgPages:
str x26, [x0,8]
str xzr, [x0,16]
str w1, [x0,4]
- cbz w24, .L1829
+ cbz w24, .L1847
add w1, w22, 1
umull x1, w1, w27
add x1, x19, x1
str x1, [x0,16]
-.L1829:
+.L1847:
add x1, x21, :lo12:.LANCHOR0
add x0, x1, x2
madd x2, x2, x28, x1
@@ -12102,17 +12111,17 @@ FlashProgPages:
ldrb w0, [x1,1845]
strb w20, [x2,1652]
cmp w0, 1
- bne .L1830
+ bne .L1848
mov w0, w20
bl NandcWaitFlashReady
- b .L1831
-.L1830:
+ b .L1849
+.L1848:
mov w0, w20
str x1, [x29,104]
bl NandcFlashCs
ldr x1, [x29,104]
ldr w0, [x29,132]
- add x1, x1, 708
+ add x1, x1, 712
ldr w0, [x1,x0,lsl 2]
ldr w1, [x29,128]
cmp w0, wzr
@@ -12121,34 +12130,34 @@ FlashProgPages:
bl FlashWaitReadyEN
mov w0, w20
bl NandcFlashDeCs
-.L1831:
+.L1849:
ldr w0, [x29,116]
- cmp w0, 6
- bhi .L1832
+ cmp w0, 7
+ bhi .L1850
add x2, x21, :lo12:.LANCHOR0
add x0, x2, x20, sxtw
ldrb w0, [x0,1616]
- cbz w0, .L1832
+ cbz w0, .L1850
ldrb w1, [x2,761]
mov w0, w20
add x2, x2, 764
mov w3, 0
bl HynixSetRRPara
-.L1832:
+.L1850:
mov w0, w20
bl NandcFlashCs
cmp w23, 1
- bne .L1833
+ bne .L1851
add x0, x21, :lo12:.LANCHOR0
- ldrb w0, [x0,120]
- cbz w0, .L1833
+ ldrb w0, [x0,196]
+ cbz w0, .L1851
mov w0, w20
bl flash_enter_slc_mode
- b .L1834
-.L1833:
+ b .L1852
+.L1851:
mov w0, w20
bl flash_exit_slc_mode
-.L1834:
+.L1852:
ldr w1, [x29,128]
mov w0, w20
bl FlashProgFirstCmd
@@ -12158,13 +12167,13 @@ FlashProgPages:
mov w1, 1
ldr x4, [x26,16]
bl NandcXferData
- cbz w24, .L1835
+ cbz w24, .L1853
ldr w1, [x29,128]
mov w0, w20
add x26, x21, :lo12:.LANCHOR0
bl FlashProgDpFirstCmd
ldr w1, [x29,132]
- add x0, x26, 708
+ add x0, x26, 712
ldr w0, [x0,x1,lsl 2]
ldr w1, [x29,128]
cmp w0, wzr
@@ -12185,46 +12194,46 @@ FlashProgPages:
ldr x3, [x4,8]
ldr x4, [x4,16]
bl NandcXferData
-.L1835:
+.L1853:
ldr w1, [x29,128]
mov w0, w20
add w22, w22, w24
bl FlashProgSecondCmd
mov w0, w20
bl NandcFlashDeCs
-.L1825:
+.L1843:
add w22, w22, 1
- b .L1874
-.L1875:
+ b .L1892
+.L1893:
add x21, x21, :lo12:.LANCHOR0
mov x20, 0
add x22, x21, 1652
mov x24, 24
ldr x0, [x21,128]
bl NandcIqrWaitFlashReady
-.L1837:
+.L1855:
ldrb w0, [x21,1845]
cmp w0, w20
- bls .L1876
+ bls .L1894
mov w0, w20
bl FlashWaitCmdDone
cmp w23, 1
- bne .L1838
- ldrb w0, [x21,120]
- cbz w0, .L1838
+ bne .L1856
+ ldrb w0, [x21,196]
+ cbz w0, .L1856
mul x0, x20, x24
ldrb w0, [x0,x22]
bl flash_exit_slc_mode
-.L1838:
+.L1856:
add x20, x20, 1
- b .L1837
-.L1876:
+ b .L1855
+.L1894:
ldr w0, [x29,120]
- cbnz w0, .L1840
-.L1848:
+ cbnz w0, .L1858
+.L1866:
mov w0, 0
- b .L1823
-.L1840:
+ b .L1841
+.L1858:
adrp x24, .LC105
adrp x26, .LC104
adrp x27, .LC103
@@ -12232,18 +12241,18 @@ FlashProgPages:
add x24, x24, :lo12:.LC105
add x26, x26, :lo12:.LC104
add x27, x27, :lo12:.LC103
-.L1841:
+.L1859:
cmp w21, w25
- beq .L1848
+ beq .L1866
ldr w0, [x19]
cmn w0, #1
- bne .L1842
+ bne .L1860
adrp x0, .LC102
ldr w1, [x19,4]
add x0, x0, :lo12:.LC102
bl printk
- b .L1843
-.L1842:
+ b .L1861
+.L1860:
adrp x20, .LANCHOR4
sub w4, w25, w21
add x22, x20, :lo12:.LANCHOR4
@@ -12270,44 +12279,44 @@ FlashProgPages:
bl FlashReadPages
ldr w22, [x29,136]
cmn w22, #1
- bne .L1844
+ bne .L1862
ldr w1, [x19,4]
mov x0, x27
bl printk
str w22, [x19]
-.L1844:
+.L1862:
ldr x0, [x19,16]
- cbz x0, .L1845
+ cbz x0, .L1863
ldr w2, [x0]
add x0, x20, :lo12:.LANCHOR4
ldr x0, [x0,128]
ldr w3, [x0]
cmp w2, w3
- beq .L1845
+ beq .L1863
ldr w1, [x19,4]
mov x0, x26
bl printk
mov w0, -1
str w0, [x19]
-.L1845:
+.L1863:
ldr x0, [x19,8]
- cbz x0, .L1843
+ cbz x0, .L1861
add x20, x20, :lo12:.LANCHOR4
ldr w2, [x0]
ldr x0, [x20,120]
ldr w3, [x0]
cmp w2, w3
- beq .L1843
+ beq .L1861
ldr w1, [x19,4]
mov x0, x24
bl printk
mov w0, -1
str w0, [x19]
-.L1843:
+.L1861:
add w21, w21, 1
add x19, x19, 56
- b .L1841
-.L1823:
+ b .L1859
+.L1841:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -12370,10 +12379,10 @@ FlashTestBlk:
ldr w2, [x0,#:lo12:.LANCHOR4+92]
mov w0, 0
cmp w1, w2
- bcc .L1879
+ bcc .L1897
mov w0, w1
bl FlashTestBlk.part.15
-.L1879:
+.L1897:
ldp x29, x30, [sp], 16
ret
.size FlashTestBlk, .-FlashTestBlk
@@ -12381,156 +12390,165 @@ FlashTestBlk:
.global FlashMakeFactorBbt
.type FlashMakeFactorBbt, %function
FlashMakeFactorBbt:
- stp x29, x30, [sp, -240]!
+ stp x29, x30, [sp, -224]!
add x29, sp, 0
stp x19, x20, [sp,16]
- adrp x20, .LANCHOR4
- adrp x19, .LANCHOR0
- add x0, x20, :lo12:.LANCHOR4
+ adrp x19, .LANCHOR4
+ mov w20, 0
+ add x0, x19, :lo12:.LANCHOR4
stp x21, x22, [sp,32]
- stp x27, x28, [sp,80]
stp x23, x24, [sp,48]
stp x25, x26, [sp,64]
- mov w21, 0
+ stp x27, x28, [sp,80]
+ adrp x21, .LANCHOR0
ldr x0, [x0,112]
- str x0, [x29,160]
- add x0, x19, :lo12:.LANCHOR0
- add x19, x19, :lo12:.LANCHOR0
- add x28, x19, 708
+ str x0, [x29,136]
+ add x0, x21, :lo12:.LANCHOR0
ldrh w1, [x0,180]
ldrh w23, [x0,182]
+ ldrh w26, [x0,12]
mul w23, w1, w23
ldr x1, [x0,744]
+ ldrb w0, [x0,8]
uxth w23, w23
ldrb w1, [x1,24]
- str w1, [x29,128]
- ldrh w1, [x0,12]
- str w1, [x29,172]
- ldrb w0, [x0,8]
- ubfiz w1, w1, 1, 15
cmp w0, 1
- ldr w0, [x29,172]
- csel w0, w1, w0, eq
- str w0, [x29,172]
- adrp x0, .LC114
+ str w1, [x29,132]
+ adrp x0, .LC113
+ ubfiz w1, w26, 1, 15
+ add x0, x0, :lo12:.LC113
+ csel w26, w1, w26, eq
mov w1, 1
- add x0, x0, :lo12:.LC114
bl printk
- add x0, x20, :lo12:.LANCHOR4
+ add x0, x19, :lo12:.LANCHOR4
mov w1, 0
mov w2, 4096
ldr x0, [x0,112]
bl ftl_memset
lsr w0, w23, 4
- str w0, [x29,168]
- ldr w0, [x29,128]
+ str w0, [x29,128]
+ ldr w0, [x29,132]
and w0, w0, 1
str w0, [x29,116]
+ ldr w0, [x29,132]
+ and w0, w0, 2
+ uxtb w0, w0
+ str w0, [x29,112]
sub w0, w23, #1
uxth w0, w0
str w0, [x29,124]
-.L1883:
- ldrb w0, [x19,1845]
- cmp w0, w21
- bls .L1934
- sxtw x25, w21
- add x0, x20, :lo12:.LANCHOR4
+.L1901:
+ add x24, x21, :lo12:.LANCHOR0
+ ldrb w0, [x24,1845]
+ cmp w0, w20
+ bls .L1952
+ sxtw x25, w20
+ add x0, x19, :lo12:.LANCHOR4
add x1, x0, x25, lsl 1
ldrh w22, [x1,144]
- cbnz w22, .L1913
- ldrh w2, [x19,188]
+ cbnz w22, .L1931
+ ldrh w2, [x24,188]
mov w1, w22
ldr x0, [x0,56]
- mov w26, w22
+ add x24, x24, x25
lsl w2, w2, 9
- mov w24, w22
+ mov w27, w22
bl ftl_memset
- add x0, x19, x25
- ldrb w27, [x0,1848]
- ldr w0, [x29,128]
- and w0, w0, 2
+ ldrb w28, [x24,1848]
+ ldr w0, [x29,132]
+ mov w24, w22
+ and w0, w0, 4
uxtb w0, w0
str w0, [x29,120]
-.L1885:
- uxth w0, w26
+.L1903:
+ uxth w0, w27
str w0, [x29,144]
cmp w0, w23
- bcs .L1895
+ bcs .L1913
mov w0, -1
- strb w0, [x29,182]
- strb w0, [x29,183]
+ strb w0, [x29,166]
+ strb w0, [x29,167]
ldr w0, [x29,116]
- cbz w0, .L1887
- ldr w3, [x28,x25,lsl 2]
- mov w0, w27
- add x2, x29, 182
+ cbz w0, .L1905
+ add x4, x21, :lo12:.LANCHOR0
+ add x2, x29, 166
+ add x0, x4, 712
+ str x4, [x29,96]
+ ldr w3, [x0,x25,lsl 2]
+ mov w0, w28
add w3, w22, w3
str x3, [x29,104]
mov w1, w3
bl FlashReadSpare
- ldrb w0, [x19,8]
+ ldr x4, [x29,96]
ldr x3, [x29,104]
+ ldrb w0, [x4,8]
cmp w0, 1
- bne .L1887
- ldr w1, [x19,12]
- mov w0, w27
- add x2, x29, 183
+ bne .L1905
+ ldr w1, [x4,12]
+ mov w0, w28
+ add x2, x29, 167
add w1, w3, w1
bl FlashReadSpare
- ldrb w0, [x29,182]
- ldrb w1, [x29,183]
+ ldrb w0, [x29,166]
+ ldrb w1, [x29,167]
and w0, w1, w0
- strb w0, [x29,182]
-.L1887:
- ldr w0, [x29,120]
- cbz w0, .L1889
- ldr x0, [x19,744]
- add x2, x29, 183
- ldrh w1, [x0,10]
- ldr w0, [x28,x25,lsl 2]
+ strb w0, [x29,166]
+.L1905:
+ ldr w0, [x29,112]
+ cbz w0, .L1907
+ add x0, x21, :lo12:.LANCHOR0
+ add x2, x29, 167
+ add x0, x0, 712
+ ldr x1, [x0,32]
+ ldr w0, [x0,x25,lsl 2]
+ ldrh w1, [x1,10]
sub w1, w1, #1
add w1, w1, w0
- mov w0, w27
+ mov w0, w28
add w1, w1, w22
bl FlashReadSpare
-.L1889:
- ldr x0, [x19,744]
- ldrb w1, [x29,182]
+.L1907:
+ add x0, x21, :lo12:.LANCHOR0
+ ldrb w1, [x29,166]
+ ldr x0, [x0,744]
ldrb w0, [x0,7]
cmp w0, 8
- beq .L1914
+ beq .L1932
cmp w0, 1
- bne .L1890
-.L1914:
+ bne .L1908
+.L1932:
mov w0, 1
- cbz w1, .L1892
- ldrb w0, [x29,183]
+ cbz w1, .L1910
+ ldrb w0, [x29,167]
cmp w0, wzr
cset w0, eq
- b .L1892
-.L1890:
+ b .L1910
+.L1908:
cmp w1, 255
mov w0, 1
- bne .L1892
- ldrb w0, [x29,183]
+ bne .L1910
+ ldrb w0, [x29,167]
cmp w0, 255
cset w0, ne
-.L1892:
- ldr x1, [x29,128]
- tbz x1, 2, .L1893
- ldr w1, [x28,x25,lsl 2]
- mov w0, w27
+.L1910:
+ ldr w1, [x29,120]
+ cbz w1, .L1911
+ add x0, x21, :lo12:.LANCHOR0
+ add x0, x0, 712
+ ldr w1, [x0,x25,lsl 2]
+ mov w0, w28
add w1, w22, w1
bl SandiskProgTestBadBlock
-.L1893:
- cbz w0, .L1894
- adrp x0, .LC115
- mov w1, w21
- mov w2, w26
- add x0, x0, :lo12:.LC115
+.L1911:
+ cbz w0, .L1912
+ adrp x0, .LC114
+ mov w1, w20
+ mov w2, w27
+ add x0, x0, :lo12:.LC114
add w24, w24, 1
bl printk
- add x0, x20, :lo12:.LANCHOR4
+ add x0, x19, :lo12:.LANCHOR4
ldr x1, [x29,144]
ldrb w3, [x29,144]
uxth w24, w24
@@ -12542,80 +12560,82 @@ FlashMakeFactorBbt:
ldr w3, [x2,x1]
orr w0, w3, w0
str w0, [x2,x1]
- ldr w1, [x29,168]
- ldrb w0, [x19,1845]
+ add x0, x21, :lo12:.LANCHOR0
+ ldr w1, [x29,128]
+ ldrb w0, [x0,1845]
mul w0, w1, w0
cmp w24, w0
- bgt .L1895
-.L1894:
- ldr w0, [x29,172]
- add w26, w26, 1
- add w22, w22, w0
- b .L1885
-.L1895:
- adrp x0, .LC116
- mov w1, w21
- add x0, x0, :lo12:.LC116
+ bgt .L1913
+.L1912:
+ add w27, w27, 1
+ add w22, w22, w26
+ b .L1903
+.L1913:
+ adrp x0, .LC115
+ mov w1, w20
mov w2, w24
+ add x0, x0, :lo12:.LC115
bl printk
- ldrb w0, [x19,1845]
- ldr w1, [x29,168]
- mul w0, w1, w0
+ add x1, x21, :lo12:.LANCHOR0
+ ldr w2, [x29,128]
+ ldrb w0, [x1,1845]
+ mul w0, w2, w0
cmp w24, w0
- blt .L1897
- add x0, x20, :lo12:.LANCHOR4
- ldrh w2, [x19,188]
+ blt .L1915
+ add x0, x19, :lo12:.LANCHOR4
+ ldrh w2, [x1,188]
mov w1, 0
lsl w2, w2, 9
ldr x0, [x0,56]
bl ftl_memset
-.L1897:
- cbnz w21, .L1899
- add x0, x20, :lo12:.LANCHOR4
- adrp x26, .LC117
- mov w22, w21
- add x26, x26, :lo12:.LC117
+.L1915:
+ cbnz w20, .L1917
+ add x0, x19, :lo12:.LANCHOR4
+ adrp x27, .LC116
+ mov w22, w20
+ add x27, x27, :lo12:.LC116
mov w24, 1
- ldrh w27, [x0,92]
-.L1900:
- ldrb w0, [x19,9]
- cmp w0, w27
- bls .L1935
- mov w0, w27
+ ldrh w28, [x0,92]
+.L1918:
+ add x0, x21, :lo12:.LANCHOR0
+ ldrb w0, [x0,9]
+ cmp w0, w28
+ bls .L1953
+ mov w0, w28
bl FlashTestBlk
- cbz w0, .L1901
- mov w1, w27
- mov x0, x26
+ cbz w0, .L1919
+ mov w1, w28
+ mov x0, x27
add w22, w22, 1
bl printk
- add x0, x20, :lo12:.LANCHOR4
- ubfx x1, x27, 5, 11
+ add x0, x19, :lo12:.LANCHOR4
+ ubfx x1, x28, 5, 11
lsl x1, x1, 2
uxth w22, w22
ldr x2, [x0,56]
- lsl w0, w24, w27
+ lsl w0, w24, w28
ldr w3, [x2,x1]
orr w0, w3, w0
str w0, [x2,x1]
-.L1901:
- add w27, w27, 1
- uxth w27, w27
- b .L1900
-.L1935:
- adrp x26, .LC117
+.L1919:
+ add w28, w28, 1
+ uxth w28, w28
+ b .L1918
+.L1953:
+ adrp x27, .LC116
ldr w24, [x29,124]
- sub w27, w23, #50
- add x26, x26, :lo12:.LC117
-.L1903:
- cmp w24, w27
- ble .L1936
+ sub w28, w23, #50
+ add x27, x27, :lo12:.LC116
+.L1921:
+ cmp w24, w28
+ ble .L1954
mov w0, w24
bl FlashTestBlk
- cbz w0, .L1904
+ cbz w0, .L1922
mov w1, w24
- mov x0, x26
+ mov x0, x27
bl printk
- add x0, x20, :lo12:.LANCHOR4
+ add x0, x19, :lo12:.LANCHOR4
ubfx x1, x24, 5, 11
lsl x1, x1, 2
ldr x3, [x0,56]
@@ -12624,85 +12644,86 @@ FlashMakeFactorBbt:
ldr w4, [x3,x1]
orr w0, w4, w0
str w0, [x3,x1]
-.L1904:
+.L1922:
sub w2, w24, #1
uxth w24, w2
- b .L1903
-.L1936:
- add x1, x20, :lo12:.LANCHOR4
- ldrb w0, [x19,9]
- ldr w2, [x1,92]
- sub w0, w0, w2
+ b .L1921
+.L1954:
+ add x2, x21, :lo12:.LANCHOR0
+ add x1, x19, :lo12:.LANCHOR4
+ ldrb w0, [x2,9]
+ ldr w3, [x1,92]
+ sub w0, w0, w3
cmp w22, w0
- bcc .L1899
- ldrh w2, [x19,188]
+ bcc .L1917
+ ldrh w2, [x2,188]
ldr x0, [x1,56]
mov w1, 0
lsl w2, w2, 9
bl ftl_memset
-.L1899:
- adrp x24, .LC118
- ldr w27, [x29,124]
- mul w26, w21, w23
- add x24, x24, :lo12:.LC118
+.L1917:
+ adrp x24, .LC117
+ ldr w28, [x29,124]
+ mul w27, w20, w23
+ add x24, x24, :lo12:.LC117
lsl x25, x25, 1
mov w22, -3872
-.L1907:
- mov w2, w27
+.L1925:
+ mov w2, w28
mov x0, x24
- mov w1, w21
+ mov w1, w20
bl printk
- add x0, x20, :lo12:.LANCHOR4
+ add x0, x19, :lo12:.LANCHOR4
ldr x2, [x0,56]
-.L1908:
- ubfx x0, x27, 5, 11
+.L1926:
+ ubfx x0, x28, 5, 11
ldr w0, [x2,x0,lsl 2]
- lsr w0, w0, w27
+ lsr w0, w0, w28
and w1, w0, 1
- tbz x0, 0, .L1937
- sub w27, w27, #1
- uxth w27, w27
- b .L1908
-.L1937:
- add x0, x20, :lo12:.LANCHOR4
+ tbz x0, 0, .L1955
+ sub w28, w28, #1
+ uxth w28, w28
+ b .L1926
+.L1955:
+ add x0, x19, :lo12:.LANCHOR4
add x2, x0, x25
- strh w27, [x2,144]
- ldr x2, [x29,160]
+ strh w28, [x2,144]
+ ldr x2, [x29,136]
strh w22, [x2]
- strh w27, [x2,2]
+ strh w28, [x2,2]
strh w1, [x2,8]
ldr x1, [x0,56]
ldr x0, [x0,112]
- str x0, [x29,200]
- add w0, w27, w26
- str x1, [x29,192]
+ str x0, [x29,184]
+ add w0, w28, w27
+ str x1, [x29,176]
lsl w0, w0, 10
mov w1, 1
- str w0, [x29,188]
+ str w0, [x29,172]
mov w2, w1
- add x0, x29, 184
+ add x0, x29, 168
bl FlashEraseBlocks
mov w1, 1
- add x0, x29, 184
+ add x0, x29, 168
mov w2, w1
mov w3, w1
bl FlashProgPages
- ldr w0, [x29,184]
- cbz w0, .L1913
- sub w27, w27, #1
- uxth w27, w27
- b .L1907
-.L1913:
- add w21, w21, 1
- uxtb w21, w21
- b .L1883
-.L1934:
+ ldr w0, [x29,168]
+ cbz w0, .L1931
+ sub w28, w28, #1
+ uxth w28, w28
+ b .L1925
+.L1931:
+ add w20, w20, 1
+ uxtb w20, w20
+ b .L1901
+.L1952:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
ldp x25, x26, [sp,64]
ldp x27, x28, [sp,80]
- ldp x29, x30, [sp], 240
+ ldp x29, x30, [sp], 224
ret
.size FlashMakeFactorBbt, .-FlashMakeFactorBbt
.align 2
@@ -12722,41 +12743,41 @@ FtlLowFormatEraseBlock:
add x1, x20, :lo12:.LANCHOR2
uxth w26, w0
stp x27, x28, [sp,80]
- ldrb w0, [x24,1937]
+ ldrb w0, [x24,1945]
ldr w2, [x1,-96]
str w0, [x29,120]
mov w0, 0
- cbnz w2, .L1939
- ldrb w0, [x24,120]
+ cbnz w2, .L1957
+ ldrb w0, [x24,196]
mov w28, w2
str w0, [x29,124]
mov w21, w2
str w26, [x1,2036]
mov w19, w2
mov w27, 56
-.L1940:
- ldrh w0, [x24,1948]
+.L1958:
+ ldrh w0, [x24,1956]
cmp w0, w28
- bls .L1984
+ bls .L2002
add x1, x20, :lo12:.LANCHOR2
umull x0, w28, w27
ldr x1, [x1,-88]
str wzr, [x1,x0]
- add x0, x24, 1976
+ add x0, x24, 1984
mov w1, w26
ldrb w0, [x0,w28,sxtw]
bl V2P_block
uxth w23, w0
mov w1, w23
- cbz w25, .L1941
+ cbz w25, .L1959
str x1, [x29,112]
bl IsBlkInVendorPart
ldr x1, [x29,112]
- cbnz w0, .L1942
-.L1941:
+ cbnz w0, .L1960
+.L1959:
mov w0, w1
bl FtlBbmIsBadBlock
- cbnz w0, .L1943
+ cbnz w0, .L1961
add x3, x20, :lo12:.LANCHOR2
lsl w23, w23, 10
umull x0, w21, w27
@@ -12767,7 +12788,7 @@ FtlLowFormatEraseBlock:
ldr x1, [x3,-88]
ldr x3, [x3,2128]
add x1, x1, x0
- ldrh w0, [x24,2030]
+ ldrh w0, [x24,2036]
mul w0, w21, w0
add w21, w21, 1
str xzr, [x1,8]
@@ -12775,19 +12796,19 @@ FtlLowFormatEraseBlock:
uxth w21, w21
add x0, x3, x0, sxtw 2
str x0, [x1,16]
- b .L1942
-.L1943:
+ b .L1960
+.L1961:
add w19, w19, 1
uxth w19, w19
-.L1942:
+.L1960:
add w2, w28, 1
uxth w28, w2
- b .L1940
-.L1984:
- cbz w21, .L1963
+ b .L1958
+.L2002:
+ cbz w21, .L1981
ldr w0, [x29,124]
mov w2, w21
- strb wzr, [x24,1937]
+ strb wzr, [x24,1945]
mov x27, 56
cmp w0, wzr
add x0, x20, :lo12:.LANCHOR2
@@ -12796,77 +12817,77 @@ FtlLowFormatEraseBlock:
ldr x0, [x0,-88]
bl FlashEraseBlocks
ldrb w0, [x29,120]
- strb w0, [x24,1937]
+ strb w0, [x24,1945]
mov x24, 0
-.L1946:
+.L1964:
cmp w21, w24, uxth
- bls .L1985
+ bls .L2003
add x1, x20, :lo12:.LANCHOR2
mul x0, x24, x27
ldr x1, [x1,-88]
add x2, x1, x0
ldr w0, [x1,x0]
cmn w0, #1
- bne .L1947
+ bne .L1965
ldr w0, [x2,4]
add w19, w19, 1
lsr w0, w0, 10
uxth w19, w19
bl FtlBbmMapBadBlock
-.L1947:
+.L1965:
add x24, x24, 1
- b .L1946
-.L1985:
- cbnz w25, .L1949
+ b .L1964
+.L2003:
+ cbnz w25, .L1967
mov w0, 1
uxth w23, w23
mov w28, 6
str w0, [x29,124]
- b .L1950
-.L1949:
+ b .L1968
+.L1967:
add x0, x22, :lo12:.LANCHOR0
- ldrh w1, [x0,2020]
- ldrb w0, [x0,120]
+ ldrh w1, [x0,2026]
+ ldrb w0, [x0,196]
str w1, [x29,124]
- cbnz w0, .L1966
+ cbnz w0, .L1984
uxtw x0, w1
mov w23, 1
lsr w28, w0, 2
- b .L1950
-.L1966:
+ b .L1968
+.L1984:
mov w23, 1
mov w28, w23
-.L1950:
+.L1968:
mov w24, 0
add x22, x22, :lo12:.LANCHOR0
-.L1959:
+.L1977:
mov w27, 0
mov w21, w27
-.L1951:
- ldrh w0, [x22,1948]
+.L1969:
+ ldrh w0, [x22,1956]
cmp w0, w27
- bls .L1986
+ bls .L2004
add x1, x20, :lo12:.LANCHOR2
mov w0, 56
umull x0, w27, w0
ldr x1, [x1,-88]
str wzr, [x1,x0]
- add x0, x22, 1976
+ add x0, x22, 1984
mov w1, w26
ldrb w0, [x0,w27,sxtw]
bl V2P_block
uxth w2, w0
str w2, [x29,112]
mov w1, w2
- cbz w25, .L1952
+ cbz w25, .L1970
str x1, [x29,104]
bl IsBlkInVendorPart
ldr x1, [x29,104]
- cbnz w0, .L1953
-.L1952:
+ cbnz w0, .L1971
+.L1970:
mov w0, w1
bl FtlBbmIsBadBlock
- cbnz w0, .L1953
+ cbnz w0, .L1971
add x2, x20, :lo12:.LANCHOR2
mov w0, 56
ldr w3, [x29,112]
@@ -12881,39 +12902,39 @@ FtlLowFormatEraseBlock:
ldr x0, [x2,2104]
ldr x2, [x2,2112]
str x0, [x1,8]
- ldrh w0, [x22,2030]
+ ldrh w0, [x22,2036]
mul w0, w21, w0
add w21, w21, 1
sdiv w0, w0, w3
uxth w21, w21
add x0, x2, x0, sxtw 2
str x0, [x1,16]
-.L1953:
+.L1971:
add w4, w27, 1
uxth w27, w4
- b .L1951
-.L1986:
- cbz w21, .L1963
+ b .L1969
+.L2004:
+ cbz w21, .L1981
add x0, x20, :lo12:.LANCHOR2
mov w1, w21
mov w2, w23
mov w3, 1
- strb wzr, [x22,1937]
+ strb wzr, [x22,1945]
ldr x0, [x0,-88]
bl FlashProgPages
ldrb w0, [x29,120]
mov x1, 0
- strb w0, [x22,1937]
-.L1956:
+ strb w0, [x22,1945]
+.L1974:
cmp w21, w1, uxth
- bls .L1987
+ bls .L2005
add x2, x20, :lo12:.LANCHOR2
mov x0, 56
mul x0, x1, x0
ldr x2, [x2,-88]
add x3, x2, x0
ldr w0, [x2,x0]
- cbz w0, .L1957
+ cbz w0, .L1975
ldr w0, [x3,4]
add w19, w19, 1
str x1, [x29,112]
@@ -12921,47 +12942,47 @@ FtlLowFormatEraseBlock:
uxth w19, w19
bl FtlBbmMapBadBlock
ldr x1, [x29,112]
-.L1957:
+.L1975:
add x1, x1, 1
- b .L1956
-.L1987:
+ b .L1974
+.L2005:
add w24, w24, w28
ldr w0, [x29,124]
uxth w24, w24
cmp w24, w0
- bcc .L1959
+ bcc .L1977
mov x22, 0
mov x24, 56
-.L1960:
+.L1978:
cmp w21, w22, uxth
- bls .L1988
- cbz w25, .L1961
+ bls .L2006
+ cbz w25, .L1979
add x1, x20, :lo12:.LANCHOR2
mul x0, x22, x24
ldr x1, [x1,-88]
add x2, x1, x0
ldr w0, [x1,x0]
- cbnz w0, .L1961
+ cbnz w0, .L1979
ldr w0, [x2,4]
mov w1, 1
lsr w0, w0, 10
bl FtlFreeSysBlkQueueIn
-.L1961:
+.L1979:
add x22, x22, 1
- b .L1960
-.L1988:
+ b .L1978
+.L2006:
cmp w26, 63
- bls .L1967
- cbz w25, .L1963
-.L1967:
+ bls .L1985
+ cbz w25, .L1981
+.L1985:
add x20, x20, :lo12:.LANCHOR2
mov w1, w23
mov w2, w21
ldr x0, [x20,-88]
bl FlashEraseBlocks
-.L1963:
+.L1981:
mov w0, w19
-.L1939:
+.L1957:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -12984,7 +13005,7 @@ FtlBbmTblFlush:
stp x25, x26, [sp,64]
stp x27, x28, [sp,80]
ldr w1, [x2,-96]
- cbnz w1, .L1991
+ cbnz w1, .L2009
adrp x19, .LANCHOR4
adrp x20, .LANCHOR0
add x24, x19, :lo12:.LANCHOR4
@@ -12994,15 +13015,15 @@ FtlBbmTblFlush:
ldr x2, [x2,2120]
add x23, x20, 2104
str x2, [x24,176]
- ldrh w2, [x20,2028]
+ ldrh w2, [x20,2034]
str x0, [x24,168]
bl ftl_memset
-.L1992:
- ldrh w1, [x20,1970]
+.L2010:
+ ldrh w1, [x20,1978]
mov w0, w21
add x21, x21, 1
cmp w0, w1
- bge .L2000
+ bge .L2018
add x1, x22, :lo12:.LANCHOR2
ldr x3, [x24,168]
ldrh w2, [x1,2248]
@@ -13012,20 +13033,20 @@ FtlBbmTblFlush:
add x0, x3, x0, sxtw 2
lsl w2, w2, 2
bl ftl_memcpy
- b .L1992
-.L2000:
+ b .L2010
+.L2018:
add x19, x19, :lo12:.LANCHOR4
mov w1, 255
add x19, x19, 160
mov w2, 16
mov w24, 0
- adrp x26, .LC119
+ adrp x26, .LC118
ldr x21, [x19,16]
- adrp x27, .LC120
+ adrp x27, .LC119
mov w25, w24
- add x26, x26, :lo12:.LC119
+ add x26, x26, :lo12:.LC118
mov x0, x21
- add x27, x27, :lo12:.LC120
+ add x27, x27, :lo12:.LC119
bl ftl_memset
mov w0, -3887
strh w0, [x21]
@@ -13037,9 +13058,9 @@ FtlBbmTblFlush:
strh w0, [x21,8]
ldrh w0, [x23,6]
strh w0, [x21,10]
- ldr w0, [x20,1944]
+ ldr w0, [x20,1952]
strh w0, [x21,12]
-.L1994:
+.L2012:
add x28, x22, :lo12:.LANCHOR2
ldrh w1, [x20,2104]
ldrh w2, [x20,2106]
@@ -13054,11 +13075,11 @@ FtlBbmTblFlush:
ldrh w4, [x21,10]
str wzr, [x19]
bl printk
- ldrh w0, [x20,2020]
+ ldrh w0, [x20,2026]
ldrh w1, [x20,2106]
sub w0, w0, #1
cmp w1, w0
- blt .L1995
+ blt .L2013
ldr w0, [x20,2112]
strh wzr, [x20,2106]
add w0, w0, 1
@@ -13077,7 +13098,7 @@ FtlBbmTblFlush:
mov w2, w1
ldr x0, [x28,-88]
bl FlashEraseBlocks
-.L1995:
+.L2013:
mov w1, 1
mov x0, x19
mov w2, w1
@@ -13088,28 +13109,28 @@ FtlBbmTblFlush:
strh w0, [x20,2106]
ldr w0, [x19]
cmn w0, #1
- bne .L1996
+ bne .L2014
ldr w1, [x19,4]
mov x0, x27
add w24, w24, 1
bl printk
uxth w24, w24
cmp w24, 3
- bls .L1994
- adrp x0, .LC121
+ bls .L2012
+ adrp x0, .LC120
ldr w1, [x19,4]
- add x0, x0, :lo12:.LC121
+ add x0, x0, :lo12:.LC120
mov w2, w24
add x22, x22, :lo12:.LANCHOR2
bl printk
mov w0, 1
str w0, [x22,-96]
- b .L1991
-.L1996:
- cbnz w25, .L1991
+ b .L2009
+.L2014:
+ cbnz w25, .L2009
mov w25, 1
- b .L1994
-.L1991:
+ b .L2012
+.L2009:
mov w0, 0
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -13133,15 +13154,15 @@ allocate_data_superblock:
stp x25, x26, [sp,64]
ldr w1, [x19,-96]
stp x27, x28, [sp,80]
- cbnz w1, .L2002
+ cbnz w1, .L2020
mov x20, x0
add x23, x19, 136
adrp x21, .LANCHOR0
mov w24, 7
add x25, x19, 24
-.L2003:
+.L2021:
cmp x20, x23
- bne .L2004
+ bne .L2022
ldrh w2, [x19,32]
ldr w4, [x19,860]
lsr w3, w2, 1
@@ -13150,44 +13171,44 @@ allocate_data_superblock:
add w1, w1, w0, lsr 2
add x0, x21, :lo12:.LANCHOR0
uxth w1, w1
- ldr w0, [x0,1940]
- cbz w0, .L2005
+ ldr w0, [x0,1948]
+ cbz w0, .L2023
ldr w0, [x19,256]
cmp w0, 39
- bhi .L2005
+ bhi .L2023
cmp w0, 2
mov w1, 0
- bls .L2006
- tbz x2, 0, .L2033
- cbz w4, .L2006
-.L2033:
+ bls .L2024
+ tbz x2, 0, .L2051
+ cbz w4, .L2024
+.L2051:
mov w1, w3
- b .L2005
-.L2004:
+ b .L2023
+.L2022:
ldrb w0, [x20,8]
mov w1, 0
cmp w0, 1
- bne .L2006
+ bne .L2024
add x2, x21, :lo12:.LANCHOR0
- ldrh w0, [x2,1968]
+ ldrh w0, [x2,1976]
cmp w0, 1
- beq .L2006
- ldrb w0, [x2,120]
- cbnz w0, .L2006
- ldr w2, [x2,1940]
+ beq .L2024
+ ldrb w0, [x2,196]
+ cbnz w0, .L2024
+ ldr w2, [x2,1948]
ldrh w0, [x19,32]
lsr w1, w0, 3
- cbz w2, .L2005
+ cbz w2, .L2023
ldr w2, [x19,256]
cmp w2, 1
- bhi .L2005
+ bhi .L2023
mul w1, w0, w24
lsr w1, w1, 3
-.L2005:
- cbz w1, .L2006
+.L2023:
+ cbz w1, .L2024
sub w1, w1, #1
uxth w1, w1
-.L2006:
+.L2024:
ldrb w2, [x20,8]
mov x0, x25
add x27, x21, :lo12:.LANCHOR0
@@ -13196,26 +13217,26 @@ allocate_data_superblock:
ldrh w0, [x19,32]
sub w0, w0, #1
strh w0, [x19,32]
- ldrh w0, [x27,1956]
+ ldrh w0, [x27,1964]
cmp w0, w28
- bls .L2003
+ bls .L2021
ubfiz x26, x28, 1, 16
ldr x0, [x19]
ldrh w0, [x0,x26]
- cbnz w0, .L2003
+ cbnz w0, .L2021
strh w28, [x20]
mov x0, x20
bl make_superblock
ldrb w0, [x20,7]
- cbz w0, .L2058
+ cbz w0, .L2076
mov x0, 0
- ldrh w5, [x27,1948]
+ ldrh w5, [x27,1956]
mov x3, 56
mov w27, w0
mov w6, 65535
-.L2010:
+.L2028:
cmp w5, w0, uxth
- bls .L2061
+ bls .L2079
ldr x4, [x19,-88]
madd x1, x0, x3, x4
str xzr, [x1,16]
@@ -13223,39 +13244,39 @@ allocate_data_superblock:
add x1, x20, x0, lsl 1
ldrh w1, [x1,16]
cmp w1, w6
- beq .L2011
+ beq .L2029
umull x2, w27, w3
add w27, w27, 1
lsl w1, w1, 10
add x2, x4, x2
uxth w27, w27
str w1, [x2,4]
-.L2011:
+.L2029:
add x0, x0, 1
- b .L2010
-.L2061:
+ b .L2028
+.L2079:
add x0, x19, 40
cmp x20, x0
- bne .L2013
+ bne .L2031
add x1, x21, :lo12:.LANCHOR0
- ldr w1, [x1,1940]
- cbz w1, .L2013
+ ldr w1, [x1,1948]
+ cbz w1, .L2031
ldr x1, [x19,-80]
ldrh w1, [x1,x26]
cmp w1, 40
- bls .L2013
+ bls .L2031
strb wzr, [x19,48]
-.L2013:
+.L2031:
ldrb w0, [x20,8]
- cbnz w0, .L2014
+ cbnz w0, .L2032
ldr x0, [x19,-80]
mov w1, 2
ldrh w2, [x0,x26]
- cbz w2, .L2059
+ cbz w2, .L2077
add x1, x21, :lo12:.LANCHOR0
- ldrh w1, [x1,2008]
+ ldrh w1, [x1,2016]
add w1, w2, w1
-.L2059:
+.L2077:
strh w1, [x0,x26]
mov w1, 0
ldr w0, [x19,240]
@@ -13263,8 +13284,8 @@ allocate_data_superblock:
str w0, [x19,240]
mov w0, w28
bl ftl_set_blk_mode
- b .L2017
-.L2014:
+ b .L2035
+.L2032:
ldr x1, [x19,-80]
ldrh w0, [x1,x26]
add w0, w0, 1
@@ -13274,20 +13295,20 @@ allocate_data_superblock:
str w0, [x19,244]
mov w0, w28
bl ftl_set_blk_mode.part.9
-.L2017:
+.L2035:
ldr x0, [x19,-80]
ldr w1, [x19,252]
ldrh w0, [x0,x26]
cmp w0, w1
- bls .L2018
+ bls .L2036
str w0, [x19,252]
-.L2018:
+.L2036:
add x2, x21, :lo12:.LANCHOR0
ldr w3, [x19,240]
ldr w0, [x19,244]
- ldrh w1, [x2,2008]
+ ldrh w1, [x2,2016]
madd w0, w1, w3, w0
- ldrh w1, [x2,1956]
+ ldrh w1, [x2,1964]
mov x3, 56
udiv w0, w0, w1
ldr x1, [x19,2160]
@@ -13296,32 +13317,32 @@ allocate_data_superblock:
add w0, w0, 1
str w0, [x1,16]
mov x0, 0
-.L2019:
+.L2037:
cmp w27, w0, uxth
- bls .L2062
+ bls .L2080
ldr x1, [x19,-88]
madd x1, x0, x3, x1
add x0, x0, 1
ldr w2, [x1,4]
and w2, w2, -1024
str w2, [x1,4]
- b .L2019
-.L2062:
+ b .L2037
+.L2080:
add x0, x21, :lo12:.LANCHOR0
- ldrb w0, [x0,120]
- cbz w0, .L2021
+ ldrb w0, [x0,196]
+ cbz w0, .L2039
ldrb w0, [x20,8]
cmp w0, 1
ldr x0, [x19,-88]
- bne .L2022
+ bne .L2040
mov w1, 0
- b .L2060
-.L2022:
+ b .L2078
+.L2040:
mov w1, 1
-.L2060:
+.L2078:
mov w2, w27
bl FlashEraseBlocks
-.L2021:
+.L2039:
ldrb w1, [x20,8]
mov w2, w27
ldr x0, [x19,-88]
@@ -13329,15 +13350,15 @@ allocate_data_superblock:
mov x1, 0
mov x4, 56
mov w2, w1
-.L2023:
+.L2041:
cmp w27, w1, uxth
- bls .L2063
+ bls .L2081
mul x0, x1, x4
ldr x3, [x19,-88]
add x5, x3, x0
ldr w3, [x3,x0]
cmn w3, #1
- bne .L2024
+ bne .L2042
ldr w0, [x5,4]
add w2, w2, 1
str x4, [x29,104]
@@ -13356,29 +13377,29 @@ allocate_data_superblock:
ldrb w0, [x20,7]
sub w0, w0, #1
strb w0, [x20,7]
-.L2024:
+.L2042:
add x1, x1, 1
- b .L2023
-.L2063:
- cbz w2, .L2026
+ b .L2041
+.L2081:
+ cbz w2, .L2044
mov w0, w28
bl update_multiplier_value
bl FtlBbmTblFlush
-.L2026:
+.L2044:
ldrb w0, [x20,7]
- cbnz w0, .L2027
-.L2058:
+ cbnz w0, .L2045
+.L2076:
ldr x0, [x19]
mov w1, -1
strh w1, [x0,x26]
- b .L2003
-.L2027:
+ b .L2021
+.L2045:
adrp x1, .LANCHOR0
add x2, x22, :lo12:.LANCHOR2
add x1, x1, :lo12:.LANCHOR0
strh wzr, [x20,2]
strb wzr, [x20,6]
- ldrh w1, [x1,2018]
+ ldrh w1, [x1,2024]
strh w28, [x20]
mul w0, w0, w1
ldr w1, [x2,232]
@@ -13390,7 +13411,7 @@ allocate_data_superblock:
ldr x1, [x22,#:lo12:.LANCHOR2]
ldrh w2, [x20]
strh w0, [x1,x2,lsl 1]
-.L2002:
+.L2020:
mov w0, 0
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -13415,29 +13436,29 @@ FtlGcFreeBadSuperBlk:
ldrh w0, [x19,944]
stp x21, x22, [sp,32]
mov w21, 0
- cbz w0, .L2066
+ cbz w0, .L2084
adrp x22, .LANCHOR0
- adrp x24, .LC122
+ adrp x24, .LC121
add x22, x22, :lo12:.LANCHOR0
- add x24, x24, :lo12:.LC122
-.L2074:
- ldrh w0, [x22,1948]
+ add x24, x24, :lo12:.LC121
+.L2092:
+ ldrh w0, [x22,1956]
cmp w0, w21
- bls .L2075
- add x0, x22, 1976
+ bls .L2093
+ add x0, x22, 1984
mov w1, w23
mov w20, 0
ldrb w0, [x0,w21,sxtw]
bl V2P_block
uxth w25, w0
-.L2067:
+.L2085:
ldrh w0, [x19,944]
cmp w0, w20
- bls .L2076
+ bls .L2094
add x0, x19, 952
ldrh w0, [x0,w20,sxtw 1]
cmp w0, w25
- bne .L2068
+ bne .L2086
mov w1, w25
mov x0, x24
bl printk
@@ -13446,29 +13467,29 @@ FtlGcFreeBadSuperBlk:
bl FtlBbmTblFlush
ldrh w2, [x19,944]
mov w3, w20
-.L2069:
+.L2087:
cmp w3, w2
- bcs .L2077
+ bcs .L2095
add x4, x19, 952
add w0, w3, 1
ldrh w1, [x4,w0,sxtw 1]
strh w1, [x4,w3,sxtw 1]
uxth w3, w0
- b .L2069
-.L2077:
+ b .L2087
+.L2095:
sub w2, w2, #1
strh w2, [x19,944]
-.L2068:
+.L2086:
add w20, w20, 1
uxth w20, w20
- b .L2067
-.L2076:
+ b .L2085
+.L2094:
add w21, w21, 1
uxth w21, w21
- b .L2074
-.L2075:
+ b .L2092
+.L2093:
bl FtlGcReFreshBadBlk
-.L2066:
+.L2084:
mov w0, 0
ldr x25, [sp,64]
ldp x19, x20, [sp,16]
@@ -13490,25 +13511,25 @@ update_vpc_list:
add x1, x20, :lo12:.LANCHOR2
ldr x2, [x20,#:lo12:.LANCHOR2]
ldrh w2, [x2,x0]
- cbnz w2, .L2079
+ cbnz w2, .L2097
ldrh w0, [x1,280]
cmp w0, w19
- bne .L2080
+ bne .L2098
mov w0, -1
strh w0, [x1,280]
- b .L2081
-.L2080:
+ b .L2099
+.L2098:
ldrh w3, [x1,40]
mov w0, w2
cmp w3, w19
- beq .L2082
+ beq .L2100
ldrh w3, [x1,88]
cmp w3, w19
- beq .L2082
+ beq .L2100
ldrh w1, [x1,136]
cmp w1, w19
- beq .L2082
-.L2081:
+ beq .L2100
+.L2099:
add x20, x20, :lo12:.LANCHOR2
mov w1, w19
sub x0, x20, #8
@@ -13521,12 +13542,12 @@ update_vpc_list:
mov w0, w19
bl FtlGcFreeBadSuperBlk
mov w0, 1
- b .L2082
-.L2079:
+ b .L2100
+.L2097:
mov w0, w19
bl List_update_data_list
mov w0, 0
-.L2082:
+.L2100:
ldp x19, x20, [sp,16]
ldp x29, x30, [sp], 32
ret
@@ -13544,15 +13565,15 @@ decrement_vpc_count:
str x23, [sp,48]
cmp w19, w0
adrp x20, .LANCHOR2
- beq .L2087
+ beq .L2105
ubfiz x21, x19, 1, 16
ldr x0, [x20,#:lo12:.LANCHOR2]
add x22, x20, :lo12:.LANCHOR2
ldrh w2, [x0,x21]
- cbnz w2, .L2088
- adrp x0, .LC123
+ cbnz w2, .L2106
+ adrp x0, .LC122
mov w1, w19
- add x0, x0, :lo12:.LC123
+ add x0, x0, :lo12:.LC122
add x23, x22, 24
bl printk
ldr x0, [x20,#:lo12:.LANCHOR2]
@@ -13561,7 +13582,7 @@ decrement_vpc_count:
mov x0, x23
mov w1, w19
bl test_node_in_list
- cbz w0, .L2089
+ cbz w0, .L2107
mov w1, w19
mov x0, x23
bl List_remove_node
@@ -13571,38 +13592,38 @@ decrement_vpc_count:
mov w0, w19
bl INSERT_DATA_LIST
ldr x2, [x20,#:lo12:.LANCHOR2]
- adrp x0, .LC124
- add x0, x0, :lo12:.LC124
+ adrp x0, .LC123
+ add x0, x0, :lo12:.LC123
mov w1, w19
ldrh w2, [x2,x21]
bl printk
-.L2089:
+.L2107:
mov w0, w19
bl FtlGcRefreshBlock
- b .L2096
-.L2088:
+ b .L2114
+.L2106:
sub w2, w2, #1
strh w2, [x0,x21]
-.L2087:
+.L2105:
add x20, x20, :lo12:.LANCHOR2
mov w0, 65535
ldrh w1, [x20,2336]
cmp w1, w0
- bne .L2091
+ bne .L2109
strh w19, [x20,2336]
-.L2096:
+.L2114:
mov w0, 0
- b .L2090
-.L2091:
+ b .L2108
+.L2109:
cmp w1, w19
mov w0, 0
- beq .L2090
+ beq .L2108
mov w0, w1
bl update_vpc_list
cmp w0, wzr
cset w0, ne
strh w19, [x20,2336]
-.L2090:
+.L2108:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldr x23, [sp,48]
@@ -13618,11 +13639,11 @@ FtlSlcSuperblockCheck:
stp x19, x20, [sp,16]
stp x21, x22, [sp,32]
ldrh w1, [x0,4]
- cbz w1, .L2097
+ cbz w1, .L2115
ldrh w1, [x0]
mov w20, 65535
cmp w1, w20
- beq .L2097
+ beq .L2115
mov x19, x0
ldrb w0, [x0,6]
adrp x21, .LANCHOR2
@@ -13631,61 +13652,61 @@ FtlSlcSuperblockCheck:
add x21, x21, :lo12:.LANCHOR2
add x21, x21, 988
ldrh w0, [x19,x0,lsl 1]
-.L2101:
+.L2119:
cmp w0, w20
- bne .L2108
-.L2103:
+ bne .L2126
+.L2121:
ldrb w0, [x19,6]
add x1, x22, :lo12:.LANCHOR0
add w0, w0, 1
- ldrh w1, [x1,1948]
+ ldrh w1, [x1,1956]
uxtb w0, w0
strb w0, [x19,6]
cmp w1, w0
- bne .L2102
+ bne .L2120
ldrh w0, [x19,2]
strb wzr, [x19,6]
add w0, w0, 1
strh w0, [x19,2]
-.L2102:
+.L2120:
ldrb w0, [x19,6]
add x0, x0, 8
ldrh w0, [x19,x0,lsl 1]
- b .L2101
-.L2108:
+ b .L2119
+.L2126:
ldrb w1, [x19,8]
cmp w1, 1
- bne .L2104
+ bne .L2122
add x0, x22, :lo12:.LANCHOR0
- ldrb w0, [x0,120]
- cbnz w0, .L2104
+ ldrb w0, [x0,196]
+ cbnz w0, .L2122
ldrh w0, [x19,2]
ldrh w0, [x21,w0,sxtw 1]
cmp w0, w20
- bne .L2104
+ bne .L2122
ldrh w0, [x19,4]
sub w0, w0, #1
strh w0, [x19,4]
ldrh w0, [x19]
bl decrement_vpc_count
ldrh w1, [x19,4]
- cbnz w1, .L2103
+ cbnz w1, .L2121
ldrh w0, [x19,2]
strb w1, [x19,6]
add w0, w0, 1
strh w0, [x19,2]
- b .L2097
-.L2104:
+ b .L2115
+.L2122:
adrp x0, .LANCHOR0
add x0, x0, :lo12:.LANCHOR0
- ldrb w2, [x0,120]
- cbz w2, .L2097
+ ldrb w2, [x0,196]
+ cbz w2, .L2115
cmp w1, 1
- bne .L2097
+ bne .L2115
ldrh w2, [x19,2]
- ldrh w1, [x0,2020]
+ ldrh w1, [x0,2026]
cmp w2, w1
- bcc .L2097
+ bcc .L2115
adrp x2, .LANCHOR2
ldrh w1, [x19]
ldrh w4, [x19,4]
@@ -13695,10 +13716,10 @@ FtlSlcSuperblockCheck:
sub w2, w2, w4
strh w2, [x3,x1]
strh wzr, [x19,4]
- ldrh w0, [x0,2018]
+ ldrh w0, [x0,2024]
strh w0, [x19,2]
strb wzr, [x19,6]
-.L2097:
+.L2115:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x29, x30, [sp], 48
@@ -13723,46 +13744,46 @@ get_new_active_ppa:
adrp x23, .LANCHOR0
add x21, x21, 988
ldrh w0, [x19,x0,lsl 1]
-.L2110:
+.L2128:
cmp w0, w22
adrp x20, .LANCHOR0
- bne .L2125
-.L2111:
+ bne .L2143
+.L2129:
ldrb w0, [x19,6]
add x1, x23, :lo12:.LANCHOR0
add w0, w0, 1
- ldrh w1, [x1,1948]
+ ldrh w1, [x1,1956]
uxtb w0, w0
strb w0, [x19,6]
cmp w1, w0
- bne .L2112
+ bne .L2130
ldrh w0, [x19,2]
strb wzr, [x19,6]
add w0, w0, 1
strh w0, [x19,2]
-.L2112:
+.L2130:
ldrb w0, [x19,6]
add x0, x0, 8
ldrh w0, [x19,x0,lsl 1]
- b .L2110
-.L2125:
+ b .L2128
+.L2143:
ldrb w1, [x19,8]
cmp w1, 1
- bne .L2113
+ bne .L2131
add x1, x23, :lo12:.LANCHOR0
- ldrb w1, [x1,120]
- cbnz w1, .L2113
+ ldrb w1, [x1,196]
+ cbnz w1, .L2131
ldrh w1, [x19,2]
ldrh w1, [x21,w1,sxtw 1]
cmp w1, w22
- bne .L2113
+ bne .L2131
ldrh w0, [x19,4]
sub w0, w0, #1
strh w0, [x19,4]
ldrh w0, [x19]
bl decrement_vpc_count
- b .L2111
-.L2113:
+ b .L2129
+.L2131:
ldrh w1, [x19,4]
adrp x21, .LANCHOR2
ldrh w22, [x19,2]
@@ -13773,50 +13794,50 @@ get_new_active_ppa:
strh w1, [x19,4]
mov w24, w23
add x21, x21, 988
-.L2114:
+.L2132:
add x0, x20, :lo12:.LANCHOR0
ldrb w1, [x19,6]
- ldrh w2, [x0,1948]
-.L2116:
+ ldrh w2, [x0,1956]
+.L2134:
add w1, w1, 1
uxtb w1, w1
cmp w1, w2
- bne .L2115
+ bne .L2133
ldrh w1, [x19,2]
add w1, w1, 1
strh w1, [x19,2]
mov w1, 0
-.L2115:
+.L2133:
add x0, x19, x1, sxtw 1
ldrh w0, [x0,16]
cmp w0, w23
- beq .L2116
+ beq .L2134
ldrb w0, [x19,8]
strb w1, [x19,6]
cmp w0, 1
- bne .L2121
+ bne .L2139
add x0, x20, :lo12:.LANCHOR0
- ldrb w0, [x0,120]
- cbnz w0, .L2118
+ ldrb w0, [x0,196]
+ cbnz w0, .L2136
ldrh w0, [x19,2]
ldrh w0, [x21,w0,sxtw 1]
cmp w0, w24
- bne .L2118
+ bne .L2136
ldrh w1, [x19,4]
- cbz w1, .L2118
+ cbz w1, .L2136
ldrh w0, [x19]
sub w1, w1, #1
strh w1, [x19,4]
bl decrement_vpc_count
- b .L2114
-.L2118:
+ b .L2132
+.L2136:
add x20, x20, :lo12:.LANCHOR0
- ldrb w0, [x20,120]
- cbz w0, .L2121
+ ldrb w0, [x20,196]
+ cbz w0, .L2139
ldrh w1, [x19,2]
- ldrh w0, [x20,2020]
+ ldrh w0, [x20,2026]
cmp w1, w0
- bcc .L2121
+ bcc .L2139
adrp x0, .LANCHOR2
ldrh w1, [x19]
ldrh w3, [x19,4]
@@ -13826,10 +13847,10 @@ get_new_active_ppa:
sub w2, w2, w3
strh w2, [x0,x1]
strh wzr, [x19,4]
- ldrh w0, [x20,2018]
+ ldrh w0, [x20,2024]
strh w0, [x19,2]
strb wzr, [x19,6]
-.L2121:
+.L2139:
mov w0, w22
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -13851,7 +13872,7 @@ FtlVpcTblFlush:
stp x25, x26, [sp,64]
ldr w0, [x19,-96]
stp x27, x28, [sp,80]
- cbnz w0, .L2128
+ cbnz w0, .L2146
adrp x23, .LANCHOR4
ldr x21, [x19,2120]
add x20, x23, :lo12:.LANCHOR4
@@ -13877,7 +13898,7 @@ FtlVpcTblFlush:
ldrh w1, [x19,42]
ldrb w2, [x19,46]
str w0, [x19,-64]
- mov w0, 80
+ mov w0, 83
orr w1, w2, w1, lsl 6
strh w1, [x19,-48]
ldrh w1, [x19,88]
@@ -13889,7 +13910,7 @@ FtlVpcTblFlush:
ldrh w0, [x19,270]
orr w1, w2, w1, lsl 6
strh w0, [x19,-56]
- ldrh w0, [x25,1970]
+ ldrh w0, [x25,1978]
strb w0, [x19,-54]
ldrb w0, [x19,48]
strb w0, [x19,-53]
@@ -13913,7 +13934,7 @@ FtlVpcTblFlush:
strh w0, [x19,-20]
ldrh w0, [x19,938]
strh w0, [x19,-18]
- ldrh w2, [x25,2028]
+ ldrh w2, [x25,2034]
ldr x0, [x20,8]
strh w1, [x19,-40]
mov w1, 255
@@ -13923,12 +13944,12 @@ FtlVpcTblFlush:
mov w2, 48
bl ftl_memcpy
ldr x0, [x20,8]
- ldrh w2, [x25,1956]
+ ldrh w2, [x25,1964]
ldr x1, [x22,#:lo12:.LANCHOR2]
add x0, x0, 48
lsl w2, w2, 1
bl ftl_memcpy
- ldrh w2, [x25,1956]
+ ldrh w2, [x25,1964]
ldr x1, [x20,8]
uxth x0, w2
lsr w2, w2, 3
@@ -13938,10 +13959,10 @@ FtlVpcTblFlush:
add x0, x1, x0, lsl 2
ldr x1, [x24,#:lo12:.LANCHOR0]
bl ftl_memcpy
- ldrh w0, [x25,2064]
- cbz w0, .L2129
- ldrh w0, [x25,1956]
- ldrh w2, [x25,2056]
+ ldrh w0, [x25,2068]
+ cbz w0, .L2147
+ ldrh w0, [x25,1964]
+ ldrh w2, [x25,2060]
lsr w1, w0, 3
add w0, w1, w0, lsl 1
ldr x1, [x20,8]
@@ -13951,14 +13972,14 @@ FtlVpcTblFlush:
add x0, x1, x0
ldr x1, [x19,2216]
bl ftl_memcpy
-.L2129:
+.L2147:
mov w0, 0
mov w20, 0
mov w27, 65535
add x28, x23, :lo12:.LANCHOR4
add x19, x22, :lo12:.LANCHOR2
bl FtlUpdateVaildLpn
-.L2130:
+.L2148:
ldrh w1, [x19,264]
ldr x0, [x19,2072]
ldrh w2, [x19,266]
@@ -13968,10 +13989,10 @@ FtlVpcTblFlush:
orr w0, w2, w1, lsl 10
str w0, [x28,164]
add x0, x24, :lo12:.LANCHOR0
- ldrh w0, [x0,2020]
+ ldrh w0, [x0,2026]
sub w0, w0, #1
cmp w2, w0
- blt .L2131
+ blt .L2149
ldrh w27, [x19,268]
strh wzr, [x19,266]
strh w1, [x19,268]
@@ -13985,7 +14006,7 @@ FtlVpcTblFlush:
strh w0, [x19,264]
str w1, [x21,4]
strh w0, [x21,2]
-.L2131:
+.L2149:
mov w1, 1
add x0, x28, 160
mov w2, w1
@@ -13997,40 +14018,40 @@ FtlVpcTblFlush:
cmn w2, #1
uxth w1, w1
strh w1, [x19,266]
- bne .L2132
+ bne .L2150
cmp w1, 1
- bne .L2133
+ bne .L2151
add x1, x24, :lo12:.LANCHOR0
- ldrh w1, [x1,2020]
+ ldrh w1, [x1,2026]
sub w1, w1, #1
strh w1, [x19,266]
-.L2133:
+.L2151:
add w20, w20, 1
uxth w20, w20
cmp w20, 3
- bls .L2130
+ bls .L2148
add x23, x23, :lo12:.LANCHOR4
- adrp x0, .LC125
- add x0, x0, :lo12:.LC125
+ adrp x0, .LC124
+ add x0, x0, :lo12:.LC124
mov w2, w20
add x22, x22, :lo12:.LANCHOR2
ldr w1, [x23,164]
bl printk
mov w0, 1
str w0, [x22,-96]
- b .L2128
-.L2132:
+ b .L2146
+.L2150:
cmp w1, 1
- beq .L2130
+ beq .L2148
cmp w2, 256
- beq .L2130
+ beq .L2148
mov w0, 65535
cmp w27, w0
- beq .L2128
+ beq .L2146
mov w0, w27
mov w1, 1
bl FtlFreeSysBlkQueueIn
-.L2128:
+.L2146:
mov w0, 0
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -14052,21 +14073,21 @@ FtlSuperblockPowerLostFix:
stp x21, x22, [sp,32]
stp x23, x24, [sp,48]
ldr w1, [x1,-96]
- cbnz w1, .L2139
+ cbnz w1, .L2157
adrp x21, .LANCHOR0
add x2, x21, :lo12:.LANCHOR0
- ldrb w22, [x2,120]
- cbz w22, .L2154
+ ldrb w22, [x2,196]
+ cbz w22, .L2172
ldrb w22, [x0,8]
cmp w22, 1
- bne .L2150
+ bne .L2168
ldrh w24, [x0,4]
- b .L2141
-.L2150:
+ b .L2159
+.L2168:
mov w22, w1
-.L2154:
+.L2172:
mov w24, 12
-.L2141:
+.L2159:
mov x19, x0
mov w0, -1
str w0, [x29,96]
@@ -14089,13 +14110,13 @@ FtlSuperblockPowerLostFix:
mov w0, 22136
movk w0, 0x1234, lsl 16
str w0, [x1,4]
-.L2142:
+.L2160:
sub w24, w24, #1
cmn w24, #1
- beq .L2145
+ beq .L2163
ldrh w0, [x19,4]
- cbnz w0, .L2143
-.L2145:
+ cbnz w0, .L2161
+.L2163:
ldrh w0, [x19]
add x21, x21, :lo12:.LANCHOR0
ldr x2, [x20,#:lo12:.LANCHOR2]
@@ -14105,16 +14126,16 @@ FtlSuperblockPowerLostFix:
sub w1, w1, w3
strh w1, [x2,x0]
strb wzr, [x19,6]
- ldrh w0, [x21,2018]
+ ldrh w0, [x21,2024]
strh w0, [x19,2]
strh wzr, [x19,4]
- b .L2139
-.L2143:
+ b .L2157
+.L2161:
mov x0, x19
bl get_new_active_ppa
str w0, [x29,76]
cmn w0, #1
- beq .L2145
+ beq .L2163
add x1, x20, :lo12:.LANCHOR2
mov w2, w22
mov w3, 0
@@ -14129,8 +14150,8 @@ FtlSuperblockPowerLostFix:
bl FlashProgPages
ldrh w0, [x19]
bl decrement_vpc_count
- b .L2142
-.L2139:
+ b .L2160
+.L2157:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -14157,12 +14178,12 @@ ftl_map_blk_gc:
ldrh w2, [x19,8]
sub w1, w1, #4
cmp w2, w1
- blt .L2156
+ blt .L2174
ubfiz x0, x0, 1, 16
ldrh w24, [x20,x0]
- cbz w24, .L2156
+ cbz w24, .L2174
ldr w1, [x19,52]
- cbnz w1, .L2156
+ cbnz w1, .L2174
mov w2, 1
str w2, [x19,52]
strh w1, [x20,x0]
@@ -14171,26 +14192,26 @@ ftl_map_blk_gc:
sub w0, w0, #1
strh w0, [x19,8]
add x0, x22, :lo12:.LANCHOR0
- ldrh w0, [x0,2020]
+ ldrh w0, [x0,2026]
cmp w1, w0
- bcc .L2157
+ bcc .L2175
mov x0, x19
bl ftl_map_blk_alloc_new_blk
-.L2157:
+.L2175:
adrp x20, .LANCHOR4
mov w21, 0
add x20, x20, :lo12:.LANCHOR4
adrp x26, .LANCHOR2
add x20, x20, 160
-.L2158:
+.L2176:
ldrh w0, [x19,6]
cmp w0, w21
- bls .L2167
+ bls .L2185
ubfiz x0, x21, 2, 16
add x27, x25, x0
ldr w1, [x25,x0]
cmp w24, w1, lsr 10
- bne .L2159
+ bne .L2177
add x1, x26, :lo12:.LANCHOR2
ldr x2, [x1,2080]
ldr x23, [x1,2120]
@@ -14204,51 +14225,51 @@ ftl_map_blk_gc:
bl FlashReadPages
ldr w0, [x20]
cmn w0, #1
- bne .L2160
-.L2162:
+ bne .L2178
+.L2180:
adrp x1, .LANCHOR4
str wzr, [x27]
add x1, x1, :lo12:.LANCHOR4
- adrp x0, .LC126
+ adrp x0, .LC125
ldrh w2, [x23,8]
- add x0, x0, :lo12:.LC126
+ add x0, x0, :lo12:.LC125
ldr w1, [x1,164]
bl printk
adrp x0, .LANCHOR2
mov w1, 1
add x0, x0, :lo12:.LANCHOR2
str w1, [x0,-96]
- b .L2161
-.L2160:
+ b .L2179
+.L2178:
ldrh w0, [x23,8]
cmp w0, w21
- bne .L2162
+ bne .L2180
ldrh w1, [x23]
ldrh w0, [x19,4]
cmp w1, w0
- bne .L2162
+ bne .L2180
ldr x2, [x20,8]
mov x0, x19
mov w1, w21
bl FtlMapWritePage
-.L2159:
+.L2177:
add w21, w21, 1
uxth w21, w21
- b .L2158
-.L2167:
+ b .L2176
+.L2185:
mov w0, w24
mov w1, 1
bl FtlFreeSysBlkQueueIn
str wzr, [x19,52]
-.L2156:
+.L2174:
add x22, x22, :lo12:.LANCHOR0
ldrh w1, [x19,2]
- ldrh w0, [x22,2020]
+ ldrh w0, [x22,2026]
cmp w1, w0
- bcc .L2161
+ bcc .L2179
mov x0, x19
bl ftl_map_blk_alloc_new_blk
-.L2161:
+.L2179:
mov w0, 0
ldr x27, [sp,80]
ldp x19, x20, [sp,16]
@@ -14262,23 +14283,23 @@ ftl_map_blk_gc:
.global Ftl_write_map_blk_to_last_page
.type Ftl_write_map_blk_to_last_page, %function
Ftl_write_map_blk_to_last_page:
- stp x29, x30, [sp, -64]!
- adrp x1, .LANCHOR2
+ stp x29, x30, [sp, -80]!
add x29, sp, 0
- add x3, x1, :lo12:.LANCHOR2
stp x23, x24, [sp,48]
+ adrp x24, .LANCHOR2
+ add x1, x24, :lo12:.LANCHOR2
stp x19, x20, [sp,16]
stp x21, x22, [sp,32]
- mov x23, x1
- ldr w20, [x3,-96]
+ stp x25, x26, [sp,64]
+ ldr w20, [x1,-96]
ldr x21, [x0,16]
- ldr x24, [x0,40]
- cbnz w20, .L2169
+ ldr x26, [x0,40]
+ cbnz w20, .L2187
mov x19, x0
ldrh w0, [x0]
- mov w1, 65535
- cmp w0, w1
- bne .L2170
+ mov w2, 65535
+ cmp w0, w2
+ bne .L2188
ldrh w0, [x19,8]
add w0, w0, 1
strh w0, [x19,8]
@@ -14289,56 +14310,66 @@ Ftl_write_map_blk_to_last_page:
strh w20, [x19]
add w0, w0, 1
str w0, [x19,48]
- b .L2169
-.L2170:
+ b .L2187
+.L2188:
ubfiz x0, x0, 1, 16
- ldrh w22, [x21,x0]
+ ldrh w2, [x19,2]
+ ldr x23, [x1,2120]
+ adrp x22, .LANCHOR0
+ ldrh w25, [x21,x0]
adrp x21, .LANCHOR4
- ldrh w0, [x19,2]
- add x1, x21, :lo12:.LANCHOR4
- orr w0, w0, w22, lsl 10
- str w0, [x1,164]
- ldr x0, [x3,2072]
- str x0, [x1,168]
- ldr x0, [x3,2120]
- str x0, [x1,176]
- ldr w1, [x19,48]
- str w1, [x0,4]
- mov w1, -1291
- strh w1, [x0,8]
- ldrh w1, [x19,4]
- strh w1, [x0]
+ add x0, x21, :lo12:.LANCHOR4
+ orr w2, w2, w25, lsl 10
+ str w2, [x0,164]
+ ldr x2, [x1,2072]
+ str x2, [x0,168]
+ str x23, [x0,176]
+ ldr w0, [x19,48]
+ str w0, [x23,4]
+ mov w0, -1291
+ strh w0, [x23,8]
+ ldrh w0, [x19,4]
+ strh w0, [x23]
+ add x0, x22, :lo12:.LANCHOR0
+ strh w25, [x23,2]
+ ldrh w2, [x0,2026]
+ ldr x0, [x1,2072]
mov w1, 255
- strh w22, [x0,2]
- adrp x0, .LANCHOR0+2020
- ldrh w2, [x0,#:lo12:.LANCHOR0+2020]
- ldr x0, [x3,2072]
lsl w2, w2, 3
bl ftl_memset
- mov w1, w20
-.L2171:
- ldrh w0, [x19,6]
- cmp w0, w1
- bls .L2174
- ubfiz x3, x1, 2, 32
- ldr w0, [x24,x3]
- cmp w22, w0, lsr 10
- bne .L2172
- add x2, x23, :lo12:.LANCHOR2
+ mov w0, w20
+.L2189:
+ ldrh w1, [x19,6]
+ cmp w1, w0
+ bls .L2196
+ ubfiz x3, x0, 2, 32
+ ldr w1, [x26,x3]
+ cmp w25, w1, lsr 10
+ bne .L2190
+ add x2, x24, :lo12:.LANCHOR2
add w20, w20, 1
uxth w20, w20
ldr x4, [x2,2072]
- ubfiz x0, x20, 3, 16
- str w1, [x4,x0]
+ ubfiz x1, x20, 3, 16
+ str w0, [x4,x1]
ldr x2, [x2,2072]
- ldr w3, [x24,x3]
- add x0, x2, x0
- str w3, [x0,4]
-.L2172:
- add w1, w1, 1
- uxth w1, w1
- b .L2171
-.L2174:
+ ldr w3, [x26,x3]
+ add x1, x2, x1
+ str w3, [x1,4]
+.L2190:
+ add w0, w0, 1
+ uxth w0, w0
+ b .L2189
+.L2196:
+ add x22, x22, :lo12:.LANCHOR0
+ ldrb w0, [x22,8]
+ cbz w0, .L2192
+ add x0, x21, :lo12:.LANCHOR4
+ ldrh w1, [x22,2034]
+ ldr x0, [x0,168]
+ bl js_hash
+ str w0, [x23,12]
+.L2192:
mov w1, 1
add x0, x21, :lo12:.LANCHOR4
add x0, x0, 160
@@ -14350,12 +14381,13 @@ Ftl_write_map_blk_to_last_page:
strh w0, [x19,2]
mov x0, x19
bl ftl_map_blk_gc
-.L2169:
+.L2187:
mov w0, 0
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
- ldp x29, x30, [sp], 64
+ ldp x25, x26, [sp,64]
+ ldp x29, x30, [sp], 80
ret
.size Ftl_write_map_blk_to_last_page, .-Ftl_write_map_blk_to_last_page
.align 2
@@ -14364,122 +14396,134 @@ Ftl_write_map_blk_to_last_page:
FtlMapWritePage:
stp x29, x30, [sp, -112]!
add x29, sp, 0
- stp x19, x20, [sp,16]
- adrp x20, .LANCHOR4
- mov x19, x0
- stp x25, x26, [sp,64]
- add x20, x20, :lo12:.LANCHOR4
- adrp x25, .LC127
stp x27, x28, [sp,80]
- stp x21, x22, [sp,32]
+ adrp x27, .LANCHOR4
+ mov x28, x0
stp x23, x24, [sp,48]
+ add x23, x27, :lo12:.LANCHOR4
+ adrp x24, .LC126
+ stp x21, x22, [sp,32]
+ stp x25, x26, [sp,64]
+ stp x19, x20, [sp,16]
mov w26, w1
- mov x27, x2
+ str x2, [x29,104]
mov w22, 0
- adrp x28, .LANCHOR2
- add x20, x20, 160
- add x25, x25, :lo12:.LC127
-.L2176:
- add x1, x28, :lo12:.LANCHOR2
- adrp x23, .LANCHOR0
- str x23, [x29,104]
- adrp x24, .LANCHOR2
+ add x23, x23, 160
+ add x24, x24, :lo12:.LC126
+.L2198:
+ adrp x19, .LANCHOR2
+ adrp x20, .LANCHOR0
+ add x1, x19, :lo12:.LANCHOR2
ldr w0, [x1,216]
add w0, w0, 1
str w0, [x1,216]
- add x0, x23, :lo12:.LANCHOR0
- ldrh w1, [x19,2]
- ldrh w0, [x0,2020]
+ add x0, x20, :lo12:.LANCHOR0
+ ldrh w1, [x28,2]
+ ldrh w0, [x0,2026]
sub w0, w0, #1
cmp w1, w0
- bge .L2177
- ldrh w1, [x19]
+ bge .L2199
+ ldrh w1, [x28]
mov w0, 65535
cmp w1, w0
- bne .L2178
-.L2177:
- mov x0, x19
+ bne .L2200
+.L2199:
+ mov x0, x28
bl Ftl_write_map_blk_to_last_page
-.L2178:
- add x2, x24, :lo12:.LANCHOR2
+.L2200:
+ add x2, x19, :lo12:.LANCHOR2
ldr w1, [x2,-96]
- cbnz w1, .L2179
- ldrh w3, [x19]
+ cbnz w1, .L2201
+ ldrh w3, [x28]
adrp x21, .LANCHOR4
- ldr x0, [x19,16]
- ldrh w23, [x0,x3,lsl 1]
- ldrh w0, [x19,2]
- str x27, [x20,8]
- orr w0, w0, w23, lsl 10
- str w0, [x20,4]
+ ldr x0, [x28,16]
+ ldrh w25, [x0,x3,lsl 1]
+ add x3, x27, :lo12:.LANCHOR4
+ ldrh w0, [x28,2]
+ add x3, x3, 160
+ orr w0, w0, w25, lsl 10
+ str w0, [x3,4]
+ ldr x0, [x29,104]
+ str x0, [x3,8]
ldr x0, [x2,2120]
mov w2, 16
- str x0, [x20,16]
+ str x0, [x3,16]
+ str x3, [x29,96]
bl ftl_memset
- ldr x0, [x20,16]
- ldr w1, [x19,48]
- str w1, [x0,4]
- strh w26, [x0,8]
- ldrh w1, [x19,4]
- strh w1, [x0]
+ ldr x3, [x29,96]
+ add x1, x20, :lo12:.LANCHOR0
+ ldr w0, [x28,48]
+ ldr x2, [x3,16]
+ str w0, [x2,4]
+ strh w26, [x2,8]
+ ldrh w0, [x28,4]
+ strh w0, [x2]
+ strh w25, [x2,2]
+ ldrb w0, [x1,8]
+ cbz w0, .L2202
+ ldr x0, [x3,8]
+ ldrh w1, [x1,2034]
+ str x2, [x29,96]
+ bl js_hash
+ ldr x2, [x29,96]
+ str w0, [x2,12]
+.L2202:
mov w1, 1
- strh w23, [x0,2]
+ mov x0, x23
mov w2, w1
mov w3, w1
- mov x0, x20
bl FlashProgPages
- ldrh w0, [x19,2]
+ ldrh w0, [x28,2]
add w0, w0, 1
uxth w0, w0
- strh w0, [x19,2]
- ldr w1, [x20]
+ strh w0, [x28,2]
+ ldr w1, [x23]
cmn w1, #1
- bne .L2180
- ldr w1, [x20,4]
- mov x0, x25
+ bne .L2203
+ ldr w1, [x23,4]
+ mov x0, x24
add w22, w22, 1
bl printk
uxth w22, w22
- ldrh w0, [x19,2]
+ ldrh w0, [x28,2]
cmp w0, 2
- bhi .L2181
- ldr x0, [x29,104]
- add x23, x0, :lo12:.LANCHOR0
- ldrh w0, [x23,2020]
+ bhi .L2204
+ add x20, x20, :lo12:.LANCHOR0
+ ldrh w0, [x20,2026]
sub w0, w0, #1
- strh w0, [x19,2]
-.L2181:
+ strh w0, [x28,2]
+.L2204:
cmp w22, 3
- bls .L2176
+ bls .L2198
add x21, x21, :lo12:.LANCHOR4
- adrp x0, .LC128
- add x0, x0, :lo12:.LC128
+ adrp x0, .LC127
+ add x0, x0, :lo12:.LC127
mov w2, w22
- add x24, x24, :lo12:.LANCHOR2
+ add x19, x19, :lo12:.LANCHOR2
ldr w1, [x21,164]
bl printk
mov w0, 1
- str w0, [x24,-96]
- b .L2179
-.L2180:
- cbz w1, .L2183
- strh w23, [x19,60]
-.L2183:
+ str w0, [x19,-96]
+ b .L2201
+.L2203:
+ cbz w1, .L2206
+ strh w25, [x28,60]
+.L2206:
cmp w0, 1
- beq .L2184
+ beq .L2207
cmp w1, 256
- beq .L2184
- ldr w0, [x19,56]
- cbz w0, .L2185
-.L2184:
- str wzr, [x19,56]
- b .L2176
-.L2185:
+ beq .L2207
+ ldr w0, [x28,56]
+ cbz w0, .L2208
+.L2207:
+ str wzr, [x28,56]
+ b .L2198
+.L2208:
add x21, x21, :lo12:.LANCHOR4
- ldr x0, [x19,40]
+ ldr x0, [x28,40]
ldr w1, [x21,164]
str w1, [x0,w26,uxtw 2]
-.L2179:
+.L2201:
mov w0, 0
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -14522,199 +14566,233 @@ FtlMapTblRecovery:
stp x29, x30, [sp, -144]!
mov w1, 0
add x29, sp, 0
- stp x27, x28, [sp,80]
- mov x27, x0
stp x23, x24, [sp,48]
- stp x25, x26, [sp,64]
+ mov x23, x0
stp x19, x20, [sp,16]
+ stp x25, x26, [sp,64]
+ stp x27, x28, [sp,80]
stp x21, x22, [sp,32]
- ldrh w22, [x27,6]
- adrp x19, .LANCHOR2
- ldr x20, [x0,40]
- mov w25, 0
- ldr x21, [x0,16]
- lsl w2, w22, 2
- ldr x0, [x0,24]
- adrp x24, .LANCHOR0
- str x0, [x29,128]
- mov x0, x20
- ldrh w23, [x27,8]
+ ldrh w25, [x23,6]
+ adrp x21, .LANCHOR2
+ ldr x0, [x0,40]
+ mov w19, 0
+ lsl w2, w25, 2
+ ldrh w27, [x23,8]
+ str x0, [x29,136]
+ adrp x26, .LANCHOR0
+ ldr x24, [x23,16]
+ ldr x28, [x23,24]
bl ftl_memset
- str x19, [x29,136]
- add x1, x19, :lo12:.LANCHOR2
+ add x1, x21, :lo12:.LANCHOR2
adrp x0, .LANCHOR4
- add x5, x0, :lo12:.LANCHOR4
- str x0, [x29,120]
- add x5, x5, 160
- sub w0, w23, #1
+ add x4, x0, :lo12:.LANCHOR4
+ str x0, [x29,112]
+ add x4, x4, 160
+ str x21, [x29,128]
ldr x2, [x1,2072]
- ldr x26, [x1,2120]
+ sub w0, w27, #1
+ ldr x20, [x1,2120]
mov w1, -1
- str x2, [x5,8]
- str x26, [x5,16]
- mov x19, x5
- strh w1, [x27]
- strh w1, [x27,2]
+ str x2, [x4,8]
+ str x20, [x4,16]
+ mov x21, x4
+ strh w1, [x23]
+ strh w1, [x23,2]
mov w1, 1
- str wzr, [x27,52]
- str wzr, [x27,48]
- str w1, [x27,56]
- str w0, [x29,116]
-.L2191:
- cmp w25, w23
- bge .L2207
- ldr w0, [x29,116]
- sxtw x28, w25
- cmp w25, w0
- bne .L2192
- lsl x0, x28, 1
+ str wzr, [x23,52]
+ str wzr, [x23,48]
+ str w1, [x23,56]
+ str w0, [x29,108]
+.L2217:
+ cmp w19, w27
+ adrp x22, .LANCHOR0
+ bge .L2235
+ ldr w0, [x29,108]
+ sxtw x2, w19
+ cmp w19, w0
+ bne .L2218
+ lsl x0, x2, 1
mov w1, 1
- add x23, x21, x0
- mov w19, 0
- ldrh w0, [x21,x0]
+ add x21, x24, x0
+ str x2, [x29,128]
+ mov w26, 0
+ mov w27, -1
+ ldrh w0, [x24,x0]
bl FtlGetLastWrittenPage
+ strh w19, [x23]
+ ldr x2, [x29,128]
sxth w24, w0
add w0, w0, 1
- strh w0, [x27,2]
- ldr x0, [x29,128]
+ strh w0, [x23,2]
add w24, w24, 1
- strh w25, [x27]
- ldr w0, [x0,x28,lsl 2]
- str w0, [x27,48]
- ldr x0, [x29,120]
- add x21, x0, :lo12:.LANCHOR4
- add x21, x21, 160
-.L2193:
- cmp w19, w24
- bge .L2207
- ldrh w0, [x23]
+ ldr w0, [x28,x2,lsl 2]
+ str w0, [x23,48]
+ ldr x0, [x29,112]
+ add x19, x0, :lo12:.LANCHOR4
+ add x19, x19, 160
+.L2219:
+ cmp w26, w24
+ bge .L2235
+ ldrh w0, [x21]
mov w1, 1
mov w2, w1
- orr w0, w19, w0, lsl 10
- str w0, [x21,4]
- mov x0, x21
+ orr w0, w26, w0, lsl 10
+ str w0, [x19,4]
+ mov x0, x19
bl FlashReadPages
- ldr w0, [x21]
+ add x1, x22, :lo12:.LANCHOR0
+ ldrb w0, [x1,8]
+ cbz w0, .L2220
+ ldr x0, [x19,16]
+ ldr w28, [x0,12]
+ cbz w28, .L2220
+ ldr x0, [x19,8]
+ ldrh w1, [x1,2034]
+ bl js_hash
+ cmp w28, w0
+ beq .L2220
+ str w27, [x19]
+.L2220:
+ ldr w0, [x19]
cmn w0, #1
- beq .L2194
- ldrh w0, [x26,8]
- cmp w0, w22
- bcs .L2194
- ldrh w2, [x26]
- ldrh w1, [x27,4]
+ beq .L2221
+ ldrh w0, [x20,8]
+ cmp w0, w25
+ bcs .L2221
+ ldrh w2, [x20]
+ ldrh w1, [x23,4]
cmp w2, w1
- bne .L2194
+ bne .L2221
ubfiz x0, x0, 2, 16
- ldr w1, [x21,4]
- str w1, [x20,x0]
-.L2194:
- add w19, w19, 1
- sxth w19, w19
- b .L2193
-.L2207:
- mov x0, x27
+ ldr x2, [x29,136]
+ ldr w1, [x19,4]
+ str w1, [x2,x0]
+.L2221:
+ add w26, w26, 1
+ sxth w26, w26
+ b .L2219
+.L2235:
+ mov x0, x23
+ add x22, x22, :lo12:.LANCHOR0
bl ftl_free_no_use_map_blk
- adrp x0, .LANCHOR0+2020
- ldrh w1, [x27,2]
- ldrh w0, [x0,#:lo12:.LANCHOR0+2020]
+ ldrh w1, [x23,2]
+ ldrh w0, [x22,2026]
cmp w1, w0
- bne .L2197
- mov x0, x27
+ bne .L2224
+ mov x0, x23
bl ftl_map_blk_alloc_new_blk
- b .L2197
-.L2192:
- ldr x0, [x29,136]
+ b .L2224
+.L2218:
+ ldr x0, [x29,128]
+ lsl x2, x2, 1
add x0, x0, :lo12:.LANCHOR2
ldr x0, [x0,2072]
- str x0, [x19,8]
- lsl x0, x28, 1
- add x28, x21, x0
- ldrh w1, [x21,x0]
- add x0, x24, :lo12:.LANCHOR0
- ldrh w0, [x0,2020]
+ str x0, [x21,8]
+ add x0, x24, x2
+ str x0, [x29,120]
+ add x0, x26, :lo12:.LANCHOR0
+ ldrh w1, [x24,x2]
+ ldrh w0, [x0,2026]
sub w0, w0, #1
orr w0, w0, w1, lsl 10
mov w1, 1
- str w0, [x19,4]
+ str w0, [x21,4]
mov w2, w1
- mov x0, x19
+ mov x0, x21
bl FlashReadPages
- ldr w0, [x19]
+ ldr w0, [x21]
cmn w0, #1
- beq .L2208
- ldrh w1, [x26]
- mov w4, 0
- ldrh w0, [x27,4]
+ beq .L2236
+ ldrh w1, [x20]
+ mov w22, 0
+ ldrh w0, [x23,4]
cmp w1, w0
- bne .L2217
- ldrh w1, [x26,8]
+ bne .L2257
+ ldrh w1, [x20,8]
mov w0, 64245
cmp w1, w0
- bne .L2217
-.L2199:
- adrp x0, .LANCHOR0
- add x0, x0, :lo12:.LANCHOR0
- ldrh w0, [x0,2020]
+ bne .L2257
+ mov w5, w22
+.L2226:
+ add x0, x26, :lo12:.LANCHOR0
+ ldrh w0, [x0,2026]
sub w0, w0, #1
- cmp w4, w0
- bge .L2202
- ldr x0, [x29,136]
- sbfiz x1, x4, 3, 32
+ cmp w5, w0
+ bge .L2229
+ ldr x0, [x29,128]
+ sbfiz x1, x5, 3, 32
add x0, x0, :lo12:.LANCHOR2
ldr x2, [x0,2072]
ldrh w0, [x2,x1]
- cmp w0, w22
- bcs .L2200
+ cmp w0, w25
+ bcs .L2227
add x1, x2, x1
ubfiz x0, x0, 2, 16
+ ldr x2, [x29,136]
ldr w1, [x1,4]
- str w1, [x20,x0]
-.L2200:
- add w4, w4, 1
- sxth w4, w4
- b .L2199
-.L2208:
- mov w4, 0
-.L2217:
- adrp x0, .LANCHOR0
- add x0, x0, :lo12:.LANCHOR0
- ldrh w0, [x0,2020]
- cmp w4, w0
- bge .L2202
- ldrh w0, [x28]
+ str w1, [x2,x0]
+.L2227:
+ add w5, w5, 1
+ sxth w5, w5
+ b .L2226
+.L2236:
+ mov w22, 0
+.L2257:
+ add x6, x26, :lo12:.LANCHOR0
+ ldrh w0, [x6,2026]
+ cmp w22, w0
+ bge .L2229
+ ldr x0, [x29,120]
mov w1, 1
mov w2, w1
- str x4, [x29,104]
- orr w0, w4, w0, lsl 10
- str w0, [x19,4]
- mov x0, x19
+ str x6, [x29,96]
+ ldrh w0, [x0]
+ orr w0, w22, w0, lsl 10
+ str w0, [x21,4]
+ mov x0, x21
bl FlashReadPages
- ldr w0, [x19]
- ldr x4, [x29,104]
+ ldr x6, [x29,96]
+ ldrb w0, [x6,8]
+ cbz w0, .L2230
+ ldr x0, [x21,16]
+ ldr w2, [x0,12]
+ cbz w2, .L2230
+ ldr x0, [x21,8]
+ ldrh w1, [x6,2034]
+ str x2, [x29,96]
+ bl js_hash
+ ldr x2, [x29,96]
+ cmp w2, w0
+ beq .L2230
+ mov w0, -1
+ str w0, [x21]
+.L2230:
+ ldr w0, [x21]
cmn w0, #1
- beq .L2203
- ldrh w0, [x26,8]
- cmp w0, w22
- bcs .L2203
- ldrh w2, [x26]
- ldrh w1, [x27,4]
+ beq .L2231
+ ldrh w0, [x20,8]
+ cmp w0, w25
+ bcs .L2231
+ ldrh w2, [x20]
+ ldrh w1, [x23,4]
cmp w2, w1
- bne .L2203
+ bne .L2231
ubfiz x0, x0, 2, 16
- ldr w1, [x19,4]
- str w1, [x20,x0]
-.L2203:
- add w4, w4, 1
- sxth w4, w4
+ ldr x2, [x29,136]
+ ldr w1, [x21,4]
+ str w1, [x2,x0]
+.L2231:
+ add w5, w22, 1
+ sxth w22, w5
+ b .L2257
+.L2229:
+ add w19, w19, 1
+ sxth w19, w19
b .L2217
-.L2202:
- add w6, w25, 1
- sxth w25, w6
- b .L2191
-.L2197:
- mov x0, x27
+.L2224:
+ mov x0, x23
bl ftl_map_blk_gc
- mov x0, x27
+ mov x0, x23
bl ftl_map_blk_gc
mov w0, 0
ldp x19, x20, [sp,16]
@@ -14736,13 +14814,13 @@ FtlLoadVonderInfo:
stp x29, x30, [sp, -16]!
add x0, x0, 224
add x29, sp, 0
- ldrh w2, [x1,2040]
+ ldrh w2, [x1,2044]
strh w2, [x0,10]
mov w2, -3962
strh w2, [x0,4]
- ldrh w2, [x1,2066]
+ ldrh w2, [x1,2070]
strh w2, [x0,8]
- ldrh w2, [x1,2042]
+ ldrh w2, [x1,2046]
ldr x1, [x1,2072]
str x1, [x0,16]
adrp x1, .LANCHOR2
@@ -14790,26 +14868,26 @@ FtlVendorPartWrite:
stp x21, x22, [sp,32]
mov w28, w1
add w1, w26, w1
- ldrh w21, [x0,2026]
+ ldrh w21, [x0,2032]
mov x25, x2
- ldrh w0, [x0,2012]
+ ldrh w0, [x0,2020]
mov w20, -1
cmp w1, w0
- bhi .L2221
+ bhi .L2261
adrp x24, .LANCHOR4
lsr w21, w26, w21
add x24, x24, :lo12:.LANCHOR4
mov w20, 0
adrp x27, .LANCHOR2
add x24, x24, 224
-.L2222:
- cbz w28, .L2221
+.L2262:
+ cbz w28, .L2261
adrp x0, .LANCHOR2
add x2, x0, :lo12:.LANCHOR2
ldr x0, [x2,2208]
ldr w4, [x0,w21,uxtw 2]
add x0, x23, :lo12:.LANCHOR0
- ldrh w1, [x0,2024]
+ ldrh w1, [x0,2030]
uxth w0, w28
udiv w22, w26, w1
msub w22, w22, w1, w26
@@ -14818,8 +14896,8 @@ FtlVendorPartWrite:
cmp w19, w28
csel w19, w0, w19, hi
cmp w19, w1
- beq .L2224
- cbz w4, .L2224
+ beq .L2264
+ cbz w4, .L2264
ldr x0, [x2,2088]
mov w1, 1
str x0, [x29,128]
@@ -14828,15 +14906,15 @@ FtlVendorPartWrite:
str w4, [x29,124]
str xzr, [x29,136]
bl FlashReadPages
- b .L2225
-.L2224:
+ b .L2265
+.L2264:
add x0, x27, :lo12:.LANCHOR2
add x2, x23, :lo12:.LANCHOR0
mov w1, 0
ldr x0, [x0,2088]
- ldrh w2, [x2,2028]
+ ldrh w2, [x2,2034]
bl ftl_memset
-.L2225:
+.L2265:
add x5, x27, :lo12:.LANCHOR2
lsl w4, w19, 9
ubfiz x22, x22, 9, 16
@@ -14859,8 +14937,8 @@ FtlVendorPartWrite:
ldr x4, [x29,104]
csinv w20, w20, wzr, ne
add x25, x25, x4, sxtw
- b .L2222
-.L2221:
+ b .L2262
+.L2261:
mov w0, w20
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -14883,8 +14961,8 @@ Ftl_save_ext_data:
add x29, sp, 0
ldr w3, [x0,336]
cmp w3, w1
- bne .L2235
- mov w1, 80
+ bne .L2275
+ mov w1, 83
movk w1, 0x5000, lsl 16
str w1, [x2,4]
ldr w1, [x0,224]
@@ -14918,7 +14996,7 @@ Ftl_save_ext_data:
str w0, [x2,64]
mov w0, 0
bl FtlVendorPartWrite
-.L2235:
+.L2275:
ldp x29, x30, [sp], 16
ret
.size Ftl_save_ext_data, .-Ftl_save_ext_data
@@ -14926,37 +15004,37 @@ Ftl_save_ext_data:
.global FtlEctTblFlush
.type FtlEctTblFlush, %function
FtlEctTblFlush:
- adrp x1, .LANCHOR0+1940
+ adrp x1, .LANCHOR0+1948
adrp x2, .LANCHOR2
stp x29, x30, [sp, -16]!
add x29, sp, 0
- ldr w3, [x1,#:lo12:.LANCHOR0+1940]
+ ldr w3, [x1,#:lo12:.LANCHOR0+1948]
mov w1, 32
- cbz w3, .L2238
+ cbz w3, .L2278
add x3, x2, :lo12:.LANCHOR2
ldr w3, [x3,256]
cmp w3, 39
mov w3, 4
csel w1, w1, w3, hi
-.L2238:
+.L2278:
adrp x3, .LANCHOR4
add x3, x3, :lo12:.LANCHOR4
ldrh w4, [x3,288]
cmp w4, 31
- bhi .L2239
+ bhi .L2279
add w4, w4, 1
mov w1, 1
strh w4, [x3,288]
-.L2239:
- cbnz w0, .L2240
+.L2279:
+ cbnz w0, .L2280
add x0, x2, :lo12:.LANCHOR2
ldr x3, [x0,2160]
ldr w0, [x3,20]
add w1, w1, w0
ldr w0, [x3,16]
cmp w0, w1
- bcc .L2241
-.L2240:
+ bcc .L2281
+.L2280:
add x2, x2, :lo12:.LANCHOR2
ldr x0, [x2,2160]
ldr w1, [x0,16]
@@ -14976,7 +15054,7 @@ FtlEctTblFlush:
mov w0, 64
bl FtlVendorPartWrite
bl Ftl_save_ext_data
-.L2241:
+.L2281:
mov w0, 0
ldp x29, x30, [sp], 16
ret
@@ -14998,30 +15076,30 @@ FtlVendorPartRead:
stp x27, x28, [sp,80]
mov x26, x2
add w3, w23, w22
- ldrh w2, [x0,2012]
+ ldrh w2, [x0,2020]
str x1, [x29,136]
cmp w3, w2
- ldrh w20, [x0,2026]
+ ldrh w20, [x0,2032]
mov w0, -1
- bhi .L2246
+ bhi .L2286
adrp x27, .LANCHOR4
- adrp x0, .LC129
- add x0, x0, :lo12:.LC129
+ adrp x0, .LC128
+ add x0, x0, :lo12:.LC128
add x27, x27, :lo12:.LANCHOR4
str x0, [x29,128]
lsr w20, w23, w20
add x0, x27, 224
mov w21, 0
str x0, [x29,120]
-.L2247:
- cbz w22, .L2255
+.L2287:
+ cbz w22, .L2295
adrp x25, .LANCHOR2
add x4, x25, :lo12:.LANCHOR2
ldr x0, [x4,2208]
ldr w3, [x0,w20,uxtw 2]
ldr x0, [x29,136]
add x0, x0, :lo12:.LANCHOR0
- ldrh w19, [x0,2024]
+ ldrh w19, [x0,2030]
uxth w0, w22
udiv w24, w23, w19
msub w24, w24, w19, w23
@@ -15030,7 +15108,7 @@ FtlVendorPartRead:
cmp w19, w22
csel w19, w0, w19, hi
lsl w28, w19, 9
- cbz w3, .L2249
+ cbz w3, .L2289
ldr x0, [x4,2088]
mov w1, 1
str x0, [x29,160]
@@ -15047,7 +15125,7 @@ FtlVendorPartRead:
ldr w0, [x27,160]
csinv w21, w21, wzr, ne
cmp w0, 256
- bne .L2251
+ bne .L2291
ldr x0, [x29,128]
mov w1, w20
mov w2, w3
@@ -15057,7 +15135,7 @@ FtlVendorPartRead:
ldr x0, [x29,120]
ldr x2, [x4,2088]
bl FtlMapWritePage
-.L2251:
+.L2291:
add x25, x25, :lo12:.LANCHOR2
ubfiz x24, x24, 9, 16
mov x0, x26
@@ -15065,21 +15143,21 @@ FtlVendorPartRead:
ldr x1, [x25,2088]
add x1, x1, x24
bl ftl_memcpy
- b .L2252
-.L2249:
+ b .L2292
+.L2289:
mov x0, x26
mov w1, w3
mov w2, w28
bl ftl_memset
-.L2252:
+.L2292:
add w20, w20, 1
sub w22, w22, w19
add w23, w23, w19
add x26, x26, x28, sxtw
- b .L2247
-.L2255:
+ b .L2287
+.L2295:
mov w0, w21
-.L2246:
+.L2286:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -15106,10 +15184,10 @@ FtlLoadEctTbl:
mov w0, 17221
movk w0, 0x4254, lsl 16
cmp w1, w0
- beq .L2257
+ beq .L2297
adrp x0, .LC75
- adrp x1, .LC130
- add x1, x1, :lo12:.LC130
+ adrp x1, .LC129
+ add x1, x1, :lo12:.LC129
add x0, x0, :lo12:.LC75
bl printk
ldrh w2, [x19,2144]
@@ -15117,7 +15195,7 @@ FtlLoadEctTbl:
ldr x0, [x19,2160]
lsl w2, w2, 9
bl ftl_memset
-.L2257:
+.L2297:
mov w0, 0
ldr x19, [sp,16]
ldp x29, x30, [sp], 32
@@ -15142,7 +15220,7 @@ Ftl_load_ext_data:
mov w0, 19539
movk w0, 0x4654, lsl 16
cmp w1, w0
- beq .L2259
+ beq .L2299
mov x0, x21
mov w1, 0
mov w2, 512
@@ -15150,13 +15228,13 @@ Ftl_load_ext_data:
mov w0, 19539
movk w0, 0x4654, lsl 16
str w0, [x20,336]
-.L2259:
+.L2299:
add x0, x19, :lo12:.LANCHOR2
mov w2, 19539
movk w2, 0x4654, lsl 16
ldr w3, [x0,336]
cmp w3, w2
- bne .L2260
+ bne .L2300
ldr w2, [x0,424]
str w2, [x0,224]
ldr w2, [x0,428]
@@ -15183,7 +15261,7 @@ Ftl_load_ext_data:
ldr w2, [x0,384]
str w2, [x0,256]
str w1, [x0,328]
-.L2260:
+.L2300:
add x0, x19, :lo12:.LANCHOR2
adrp x20, .LANCHOR0
ldr w1, [x0,404]
@@ -15191,24 +15269,24 @@ Ftl_load_ext_data:
mov w0, 34661
movk w0, 0x1234, lsl 16
cmp w1, w0
- bne .L2261
+ bne .L2301
add x0, x20, :lo12:.LANCHOR0
mov w1, 1
- str w1, [x0,1940]
+ str w1, [x0,1948]
adrp x0, .LC75
- adrp x1, .LC131
+ adrp x1, .LC130
add x0, x0, :lo12:.LC75
- add x1, x1, :lo12:.LC131
+ add x1, x1, :lo12:.LC130
bl printk
-.L2261:
+.L2301:
add x19, x19, :lo12:.LANCHOR2
add x20, x20, :lo12:.LANCHOR0
ldr x21, [sp,32]
- ldrh w1, [x20,2008]
+ ldrh w1, [x20,2016]
ldr w2, [x19,240]
ldr w0, [x19,244]
madd w0, w1, w2, w0
- ldrh w1, [x20,1956]
+ ldrh w1, [x20,1964]
udiv w0, w0, w1
str w0, [x19,248]
ldp x19, x20, [sp,16]
@@ -15293,12 +15371,12 @@ FtlMapBlkWriteDumpData:
ldr w1, [x0,56]
ldrh w20, [x0,6]
ldr x4, [x0,40]
- cbz w1, .L2266
+ cbz w1, .L2306
adrp x3, .LANCHOR2
str wzr, [x0,56]
add x3, x3, :lo12:.LANCHOR2
ldr w1, [x3,-96]
- cbnz w1, .L2266
+ cbnz w1, .L2306
adrp x2, .LANCHOR4
sub w20, w20, #1
add x1, x2, :lo12:.LANCHOR4
@@ -15313,24 +15391,24 @@ FtlMapBlkWriteDumpData:
mov x19, x2
ldr w3, [x4,x3]
str w3, [x1,4]
- cbz w3, .L2270
+ cbz w3, .L2310
mov x0, x1
mov w1, 1
mov w2, w1
bl FlashReadPages
- b .L2271
-.L2270:
- adrp x2, .LANCHOR0+2028
+ b .L2311
+.L2310:
+ adrp x2, .LANCHOR0+2034
mov w1, 255
- ldrh w2, [x2,#:lo12:.LANCHOR0+2028]
+ ldrh w2, [x2,#:lo12:.LANCHOR0+2034]
bl ftl_memset
-.L2271:
+.L2311:
add x2, x19, :lo12:.LANCHOR4
mov x0, x21
mov w1, w20
ldr x2, [x2,168]
bl FtlMapWritePage
-.L2266:
+.L2306:
ldp x19, x20, [sp,16]
ldr x21, [sp,32]
ldp x29, x30, [sp], 48
@@ -15346,12 +15424,12 @@ FlashReadFacBbtData.part.14:
str x19, [sp,16]
mov w7, 1
mov x19, x0
- cbnz w1, .L2275
-.L2277:
+ cbnz w1, .L2315
+.L2317:
add x0, x4, :lo12:.LANCHOR4
ldr w1, [x0,92]
cmp w3, w1
- bcs .L2275
+ bcs .L2315
ubfx x5, x3, 5, 11
ldr x0, [x0,56]
lsl x5, x5, 2
@@ -15361,16 +15439,16 @@ FlashReadFacBbtData.part.14:
uxth w3, w3
orr w6, w1, w6
str w6, [x0,x5]
- b .L2277
-.L2275:
+ b .L2317
+.L2315:
add x4, x4, :lo12:.LANCHOR4
mov x0, x19
ldr x1, [x4,56]
bl ftl_memcpy
mov w2, 4
- adrp x0, .LC132
+ adrp x0, .LC131
mov x1, x19
- add x0, x0, :lo12:.LC132
+ add x0, x0, :lo12:.LC131
mov w3, w2
bl rknand_print_hex
ldr x19, [sp,16]
@@ -15409,9 +15487,9 @@ FlashReadFacBbtData:
str x1, [x29,96]
sub w19, w3, #16
str x0, [x29,104]
-.L2280:
+.L2320:
cmp w20, w19
- ble .L2288
+ ble .L2328
add w0, w20, w24
mov w1, 1
lsl w0, w0, 10
@@ -15421,26 +15499,26 @@ FlashReadFacBbtData:
bl FlashReadPages
ldr w0, [x29,88]
cmn w0, #1
- beq .L2281
+ beq .L2321
add x0, x21, :lo12:.LANCHOR4
ldr x0, [x0,112]
ldrh w0, [x0]
cmp w0, w26
- bne .L2281
+ bne .L2321
mov w0, w22
- cbz x22, .L2282
+ cbz x22, .L2322
mov x0, x22
mov w1, w23
mov w2, w25
bl FlashReadFacBbtData.part.14
- b .L2282
-.L2281:
+ b .L2322
+.L2321:
sub w20, w20, #1
uxth w20, w20
- b .L2280
-.L2288:
+ b .L2320
+.L2328:
mov w0, -1
-.L2282:
+.L2322:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -15470,37 +15548,37 @@ FlashGetBadBlockList:
lsr w2, w2, 3
bl FlashReadFacBbtData
cmn w0, #1
- bne .L2290
-.L2294:
+ bne .L2330
+.L2334:
mov w1, 0
- b .L2291
-.L2290:
+ b .L2331
+.L2330:
mov w2, 0
lsr w0, w19, 4
mov w1, w2
sub w19, w19, #1
mov w5, 1
-.L2292:
+.L2332:
cmp w2, w19
- bge .L2291
+ bge .L2331
add x3, x20, :lo12:.LANCHOR4
ubfx x4, x2, 5, 11
ldr x6, [x3,104]
lsl w3, w5, w2
ldr w4, [x6,x4,lsl 2]
tst w3, w4
- beq .L2293
+ beq .L2333
add w3, w1, 1
ubfiz x1, x1, 1, 16
strh w2, [x21,x1]
uxth w1, w3
-.L2293:
+.L2333:
cmp w1, w0
- bcs .L2294
+ bcs .L2334
add w2, w2, 1
uxth w2, w2
- b .L2292
-.L2291:
+ b .L2332
+.L2331:
ubfiz x1, x1, 1, 16
mov w0, -1
ldp x19, x20, [sp,16]
@@ -15524,7 +15602,7 @@ FtlMakeBbt:
stp x25, x26, [sp,64]
stp x27, x28, [sp,80]
ldr w21, [x0,-96]
- cbnz w21, .L2300
+ cbnz w21, .L2340
adrp x19, .LANCHOR0
adrp x20, .LANCHOR4
add x24, x19, :lo12:.LANCHOR0
@@ -15535,11 +15613,11 @@ FtlMakeBbt:
mov x26, x20
bl FtlBbtMemInit
bl FtlLoadFactoryBbt
-.L2301:
+.L2341:
add x22, x19, :lo12:.LANCHOR0
- ldrh w0, [x22,1970]
+ ldrh w0, [x22,1978]
cmp w21, w0
- bcs .L2319
+ bcs .L2359
add x1, x23, :lo12:.LANCHOR2
ldrh w28, [x25,12]
ldr x0, [x1,2072]
@@ -15548,8 +15626,8 @@ FtlMakeBbt:
str x0, [x20,8]
cmp w28, w1
str x27, [x20,16]
- beq .L2302
- ldrh w0, [x22,2014]
+ beq .L2342
+ ldrh w0, [x22,2022]
mov w1, 1
mov w2, w1
madd w28, w21, w0, w28
@@ -15557,30 +15635,30 @@ FtlMakeBbt:
str w0, [x20,4]
mov x0, x20
bl FlashReadPages
- ldrh w2, [x22,2014]
+ ldrh w2, [x22,2022]
ldr x0, [x24,32]
add w2, w2, 7
ldr x1, [x20,8]
lsr w2, w2, 3
bl ftl_memcpy
- b .L2303
-.L2302:
+ b .L2343
+.L2342:
mov w1, w21
bl FlashGetBadBlockList
ldr x0, [x20,8]
ldr x1, [x24,32]
bl FtlBbt2Bitmap
- ldrh w22, [x22,2014]
-.L2305:
+ ldrh w22, [x22,2022]
+.L2345:
sub w22, w22, #1
uxth w22, w22
-.L2304:
+.L2344:
add x28, x19, :lo12:.LANCHOR0
- ldrh w0, [x28,2014]
+ ldrh w0, [x28,2022]
madd w0, w21, w0, w22
bl FtlBbmIsBadBlock
cmp w0, 1
- beq .L2305
+ beq .L2345
add x3, x23, :lo12:.LANCHOR2
mov w1, 0
mov w2, 16
@@ -15594,7 +15672,7 @@ FtlMakeBbt:
ldr x3, [x29,104]
ldrh w0, [x25,12]
strh w0, [x27,2]
- ldrh w0, [x28,2014]
+ ldrh w0, [x28,2022]
ldrh w1, [x25,12]
ldrh w2, [x3,2248]
madd w28, w21, w0, w1
@@ -15615,64 +15693,64 @@ FtlMakeBbt:
bl FlashProgPages
ldr w0, [x26]
cmn w0, #1
- bne .L2303
+ bne .L2343
mov w0, w28
bl FtlBbmMapBadBlock
- b .L2304
-.L2303:
+ b .L2344
+.L2343:
mov w0, w28
add w21, w21, 1
add x24, x24, 8
add x25, x25, 2
bl FtlBbmMapBadBlock
- b .L2301
-.L2319:
+ b .L2341
+.L2359:
mov w20, 0
-.L2308:
+.L2348:
add x21, x19, :lo12:.LANCHOR0
- ldrh w0, [x21,2032]
+ ldrh w0, [x21,2038]
cmp w0, w20
- bls .L2320
+ bls .L2360
mov w0, w20
add w20, w20, 1
bl FtlBbmMapBadBlock
uxth w20, w20
- b .L2308
-.L2320:
+ b .L2348
+.L2360:
ldrh w20, [x21,2116]
mov w24, 65535
sub w20, w20, #1
uxth w20, w20
-.L2310:
+.L2350:
add x22, x21, 2104
ldrh w0, [x22,12]
sub w0, w0, #48
cmp w20, w0
- ble .L2314
+ ble .L2354
mov w0, w20
bl FtlBbmIsBadBlock
cmp w0, 1
- beq .L2311
+ beq .L2351
mov w0, w20
bl FlashTestBlk
- cbz w0, .L2312
+ cbz w0, .L2352
mov w0, w20
bl FtlBbmMapBadBlock
- b .L2311
-.L2312:
+ b .L2351
+.L2352:
ldrh w0, [x21,2104]
cmp w0, w24
- bne .L2313
+ bne .L2353
strh w20, [x21,2104]
- b .L2311
-.L2313:
+ b .L2351
+.L2353:
strh w20, [x22,4]
- b .L2314
-.L2311:
+ b .L2354
+.L2351:
sub w20, w20, #1
uxth w20, w20
- b .L2310
-.L2314:
+ b .L2350
+.L2354:
add x23, x23, :lo12:.LANCHOR2
add x19, x19, :lo12:.LANCHOR0
mov w2, 2
@@ -15702,7 +15780,7 @@ FtlMakeBbt:
strh w0, [x19,2108]
strh w1, [x19,2104]
bl FtlBbmTblFlush
-.L2300:
+.L2340:
mov w0, 0
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -15716,181 +15794,194 @@ FtlMakeBbt:
.global log2phys
.type log2phys, %function
log2phys:
- stp x29, x30, [sp, -112]!
+ stp x29, x30, [sp, -128]!
add x29, sp, 0
+ stp x21, x22, [sp,32]
+ adrp x22, .LANCHOR0
+ add x3, x22, :lo12:.LANCHOR0
+ str x22, [x29,120]
+ stp x19, x20, [sp,16]
stp x23, x24, [sp,48]
- adrp x24, .LANCHOR0
- add x3, x24, :lo12:.LANCHOR0
- str w2, [x29,104]
stp x25, x26, [sp,64]
- stp x19, x20, [sp,16]
stp x27, x28, [sp,80]
- stp x21, x22, [sp,32]
- mov x27, x1
- mov x2, 1
- ldrh w1, [x3,2026]
+ ldr w4, [x3,2096]
+ ldrh w27, [x3,2032]
+ cmp w0, w4
+ bcs .L2362
+ add w27, w27, 7
adrp x20, .LANCHOR2
- add w1, w1, 7
- lsr w26, w0, w1
- lsl x1, x2, x1
- sub w1, w1, #1
- and w23, w1, w0
- ldrh w1, [x3,2058]
- uxth w25, w26
- uxth w0, w23
- str w0, [x29,108]
+ lsr w24, w0, w27
+ str w0, [x29,116]
add x0, x20, :lo12:.LANCHOR2
- ldr x21, [x0,184]
+ str w2, [x29,112]
+ mov x26, x1
+ uxth w23, w24
+ ldrh w2, [x3,2062]
+ ldr x22, [x0,184]
mov x0, 0
-.L2322:
- uxth x19, w0
- cmp w19, w1
- bcs .L2337
+ b .L2363
+.L2362:
+ mov w0, -1
+ cbnz w2, .L2364
+ str w0, [x1]
+ b .L2364
+.L2368:
add x0, x0, 1
- add x2, x21, x0, lsl 4
- ldrh w2, [x2,-16]
- cmp w2, w25
- bne .L2322
-.L2323:
- ldr w0, [x29,104]
- ldr w23, [x29,108]
- cbnz w0, .L2324
+ add x3, x22, x0, lsl 4
+ ldrh w3, [x3,-16]
+ cmp w3, w23
+ beq .L2365
+.L2363:
+ uxth x19, w0
+ cmp w19, w2
+ bcc .L2368
+ bl select_l2p_ram_region
+ uxth x19, w0
+ ubfiz x21, x19, 4, 16
+ mov w1, 65535
+ add x2, x22, x21
+ ldrh w3, [x22,x21]
+ cmp w3, w1
+ bne .L2376
+.L2369:
+ add x28, x20, :lo12:.LANCHOR2
+ ubfiz x0, x23, 2, 16
+ ldr x1, [x28,2216]
+ ldr w25, [x1,x0]
+ cbnz w25, .L2370
+ ldr x1, [x29,120]
+ ldr x0, [x28,184]
+ add x22, x1, :lo12:.LANCHOR0
+ mov w1, 255
+ add x0, x0, x21
+ ldrh w2, [x22,2034]
+ ldr x0, [x0,8]
+ bl ftl_memset
+ ldr x0, [x28,184]
+ strh w23, [x0,x21]
+ ldr x0, [x28,184]
+ add x21, x0, x21
+ str w25, [x21,4]
+.L2365:
+ mov x0, 1
+ lsl x27, x0, x27
+ ldr w0, [x29,116]
+ sub w27, w27, #1
+ and w25, w0, w27
+ ldr w0, [x29,112]
+ uxth x25, w25
+ cbnz w0, .L2366
add x0, x20, :lo12:.LANCHOR2
- ldr x1, [x0,184]
- add x1, x1, x19, lsl 4
- ldr x0, [x1,8]
- ldr w0, [x0,x23,lsl 2]
- str w0, [x27]
- b .L2325
-.L2324:
+ ldr x0, [x0,184]
+ add x0, x0, x19, lsl 4
+ ldr x0, [x0,8]
+ ldr w0, [x0,x25,lsl 2]
+ str w0, [x26]
+ b .L2367
+.L2366:
add x1, x20, :lo12:.LANCHOR2
lsl x0, x19, 4
- ldr w3, [x27]
+ ldr w3, [x26]
ldr x2, [x1,184]
add x2, x2, x0
ldr x2, [x2,8]
- str w3, [x2,x23,lsl 2]
- strh w25, [x1,192]
+ str w3, [x2,x25,lsl 2]
+ strh w23, [x1,192]
ldr x2, [x1,184]
add x0, x2, x0
ldr w2, [x0,4]
orr w2, w2, -2147483648
str w2, [x0,4]
-.L2325:
+.L2367:
add x20, x20, :lo12:.LANCHOR2
ldr x0, [x20,184]
add x19, x0, x19, lsl 4
- ldr w0, [x19,4]
- cmn w0, #1
- beq .L2334
- add w0, w0, 1
- str w0, [x19,4]
- b .L2334
-.L2337:
- bl select_l2p_ram_region
- uxth x19, w0
- ubfiz x22, x19, 4, 16
- mov w2, 65535
- add x1, x21, x22
- ldrh w3, [x21,x22]
- cmp w3, w2
- beq .L2328
- ldr w1, [x1,4]
- tbz w1, #31, .L2328
+ mov w0, 0
+ ldr w1, [x19,4]
+ cmn w1, #1
+ beq .L2364
+ add w1, w1, 1
+ str w1, [x19,4]
+ b .L2364
+.L2376:
+ ldr w1, [x2,4]
+ tbz w1, #31, .L2369
bl flush_l2p_region
-.L2328:
- add x21, x20, :lo12:.LANCHOR2
- ubfiz x0, x25, 2, 16
- ldr x1, [x21,2216]
- ldr w23, [x1,x0]
- cbnz w23, .L2329
- ldr x0, [x21,184]
- add x24, x24, :lo12:.LANCHOR0
- mov w1, 255
- add x0, x0, x22
- ldrh w2, [x24,2028]
- ldr x0, [x0,8]
- bl ftl_memset
- ldr x0, [x21,184]
- strh w25, [x0,x22]
- ldr x0, [x21,184]
- add x22, x0, x22
- str w23, [x22,4]
- b .L2323
-.L2329:
- ldr x0, [x21,184]
- adrp x5, .LANCHOR4
- add x5, x5, :lo12:.LANCHOR4
+ b .L2369
+.L2370:
+ ldr x0, [x28,184]
+ adrp x6, .LANCHOR4
+ add x6, x6, :lo12:.LANCHOR4
mov w1, 1
- add x0, x0, x22
- add x28, x5, 160
+ add x0, x0, x21
+ add x22, x6, 160
mov w2, w1
- str x5, [x29,96]
- str w23, [x5,164]
+ str x6, [x29,104]
+ str w25, [x6,164]
ldr x0, [x0,8]
- str x0, [x5,168]
- ldr x0, [x21,2120]
- str x0, [x5,176]
- mov x0, x28
+ str x0, [x6,168]
+ ldr x0, [x28,2120]
+ str x0, [x6,176]
+ mov x0, x22
bl FlashReadPages
- ldr x0, [x28,16]
- ldr x5, [x29,96]
+ ldr x0, [x22,16]
+ ldr x6, [x29,104]
ldrh w0, [x0,8]
- cmp w0, w25
- beq .L2330
- adrp x0, .LC133
- uxth w1, w26
- mov w2, w23
- add x0, x0, :lo12:.LC133
- add x24, x24, :lo12:.LANCHOR0
+ cmp w0, w23
+ beq .L2371
+ adrp x0, .LC132
+ uxth w1, w24
+ mov w2, w25
+ add x0, x0, :lo12:.LC132
bl printk
+ ldr x1, [x22,16]
mov w2, 4
- ldr x1, [x28,16]
adrp x0, .LC99
mov w3, w2
add x0, x0, :lo12:.LC99
bl rknand_print_hex
- adrp x0, .LC134
- ldr x1, [x21,2216]
- ldrh w3, [x24,2056]
- add x0, x0, :lo12:.LC134
+ ldr x0, [x29,120]
mov w2, 4
+ ldr x1, [x28,2216]
+ add x22, x0, :lo12:.LANCHOR0
+ adrp x0, .LC133
+ add x0, x0, :lo12:.LC133
+ ldrh w3, [x22,2060]
bl rknand_print_hex
mov w0, 1
- str w0, [x21,-96]
- b .L2331
-.L2330:
- ldr w0, [x5,160]
+ str w0, [x28,-96]
+ b .L2372
+.L2371:
+ ldr w0, [x6,160]
cmp w0, 256
- bne .L2331
- and w26, w26, 65535
- adrp x0, .LC135
- mov w1, w26
- mov w2, w23
- add x0, x0, :lo12:.LC135
+ bne .L2372
+ and w24, w24, 65535
+ adrp x0, .LC134
+ mov w1, w24
+ mov w2, w25
+ add x0, x0, :lo12:.LC134
bl printk
- ldr x2, [x21,184]
- add x0, x21, 2256
- mov w1, w26
- add x2, x2, x22
+ ldr x2, [x28,184]
+ add x0, x28, 2256
+ mov w1, w24
+ add x2, x2, x21
ldr x2, [x2,8]
bl FtlMapWritePage
-.L2331:
+.L2372:
add x1, x20, :lo12:.LANCHOR2
ldr x0, [x1,184]
- add x0, x0, x22
+ add x0, x0, x21
str wzr, [x0,4]
ldr x0, [x1,184]
- strh w25, [x0,x22]
- b .L2323
-.L2334:
- mov w0, 0
+ strh w23, [x0,x21]
+ b .L2365
+.L2364:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
ldp x25, x26, [sp,64]
ldp x27, x28, [sp,80]
- ldp x29, x30, [sp], 112
+ ldp x29, x30, [sp], 128
ret
.size log2phys, .-log2phys
.align 2
@@ -15906,22 +15997,22 @@ FtlWriteDumpData:
add x23, x19, :lo12:.LANCHOR2
stp x21, x22, [sp,32]
ldr w0, [x23,-96]
- cbnz w0, .L2338
+ cbnz w0, .L2377
ldrh w2, [x23,44]
- cbz w2, .L2340
+ cbz w2, .L2379
ldrb w1, [x23,48]
- cbnz w1, .L2340
+ cbnz w1, .L2379
adrp x21, .LANCHOR0
ldrb w1, [x23,47]
add x21, x21, :lo12:.LANCHOR0
- ldrh w3, [x21,2018]
+ ldrh w3, [x21,2024]
mul w1, w1, w3
cmp w2, w1
- beq .L2340
+ beq .L2379
ldrb w24, [x23,50]
ldr w22, [x21,2096]
- ldrh w25, [x21,1948]
- cbnz w24, .L2338
+ ldrh w25, [x21,1956]
+ cbnz w24, .L2377
sub w22, w22, #1
add x1, x29, 84
mov w0, w22
@@ -15936,29 +16027,29 @@ FtlWriteDumpData:
str x1, [x29,96]
str x20, [x29,104]
str w24, [x20,4]
- beq .L2342
+ beq .L2381
add x0, x29, 88
mov w1, 1
mov w2, w24
bl FlashReadPages
- b .L2343
-.L2342:
+ b .L2382
+.L2381:
ldr x0, [x23,2072]
mov w1, 255
- ldrh w2, [x21,2028]
+ ldrh w2, [x21,2034]
bl ftl_memset
-.L2343:
+.L2382:
add x24, x19, :lo12:.LANCHOR2
mov w0, -3947
lsl w25, w25, 2
strh w0, [x20]
mov w23, 0
add x21, x24, 40
-.L2344:
+.L2383:
cmp w23, w25
- beq .L2345
+ beq .L2384
ldrh w0, [x21,4]
- cbz w0, .L2345
+ cbz w0, .L2384
ldr w0, [x29,92]
add w23, w23, 1
str w0, [x20,12]
@@ -15981,16 +16072,16 @@ FtlWriteDumpData:
bl FlashProgPages
ldrh w0, [x21]
bl decrement_vpc_count
- b .L2344
-.L2345:
+ b .L2383
+.L2384:
add x19, x19, :lo12:.LANCHOR2
mov w0, 1
strb w0, [x19,50]
- b .L2338
-.L2340:
+ b .L2377
+.L2379:
add x19, x19, :lo12:.LANCHOR2
strb wzr, [x19,50]
-.L2338:
+.L2377:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -16010,24 +16101,24 @@ l2p_flush:
adrp x20, .LANCHOR0
adrp x21, .LANCHOR2
bl FtlWriteDumpData
-.L2356:
+.L2395:
add x0, x20, :lo12:.LANCHOR0
- ldrh w0, [x0,2058]
+ ldrh w0, [x0,2062]
cmp w0, w19
- bls .L2359
+ bls .L2398
add x1, x21, :lo12:.LANCHOR2
ubfiz x0, x19, 4, 16
ldr x1, [x1,184]
add x0, x1, x0
ldr w0, [x0,4]
- tbz w0, #31, .L2357
+ tbz w0, #31, .L2396
mov w0, w19
bl flush_l2p_region
-.L2357:
+.L2396:
add w19, w19, 1
uxth w19, w19
- b .L2356
-.L2359:
+ b .L2395
+.L2398:
mov w0, 0
ldr x21, [sp,32]
ldp x19, x20, [sp,16]
@@ -16046,89 +16137,89 @@ allocate_new_data_superblock:
add x1, x19, :lo12:.LANCHOR2
ldrh w20, [x0]
ldr w1, [x1,-96]
- cbnz w1, .L2361
+ cbnz w1, .L2400
mov x21, x0
mov w0, 65535
cmp w20, w0
- beq .L2362
+ beq .L2401
ubfiz x1, x20, 1, 16
ldr x0, [x19,#:lo12:.LANCHOR2]
ldrh w0, [x0,x1]
- cbz w0, .L2363
+ cbz w0, .L2402
mov w0, w20
bl INSERT_DATA_LIST
- b .L2362
-.L2363:
+ b .L2401
+.L2402:
mov w0, w20
bl INSERT_FREE_LIST
-.L2362:
+.L2401:
add x2, x19, :lo12:.LANCHOR2
strb wzr, [x21,8]
add x0, x2, 88
cmp x21, x0
- beq .L2364
+ beq .L2403
adrp x1, .LANCHOR0
add x4, x1, :lo12:.LANCHOR0
- ldrh w3, [x4,1968]
+ ldrh w3, [x4,1976]
cmp w3, 1
- beq .L2364
- ldrb w0, [x4,120]
- cbz w0, .L2365
-.L2364:
+ beq .L2403
+ ldrb w0, [x4,196]
+ cbz w0, .L2404
+.L2403:
mov w0, 1
strb w0, [x21,8]
- b .L2366
-.L2365:
+ b .L2405
+.L2404:
add x0, x2, 40
cmp x21, x0
- bne .L2366
+ bne .L2405
cmp w3, 3
- beq .L2368
+ beq .L2407
ldr w0, [x2,328]
cmp w0, 1
- bne .L2369
-.L2368:
+ bne .L2408
+.L2407:
add x2, x19, :lo12:.LANCHOR2
mov w0, 1
strb w0, [x2,48]
-.L2369:
+.L2408:
add x1, x1, :lo12:.LANCHOR0
- ldr w0, [x1,1940]
- cbz w0, .L2366
+ ldr w0, [x1,1948]
+ cbz w0, .L2405
add x1, x19, :lo12:.LANCHOR2
ldr w0, [x1,256]
cmp w0, 39
- bhi .L2366
+ bhi .L2405
mov w0, 1
strb w0, [x1,48]
-.L2366:
+.L2405:
add x0, x19, :lo12:.LANCHOR2
ldrh w1, [x0,2336]
mov w0, 65535
cmp w1, w0
- beq .L2371
+ beq .L2410
cmp w20, w1
- bne .L2372
+ bne .L2411
adrp x0, .LANCHOR2
ubfiz x2, x1, 1, 16
ldr x0, [x0,#:lo12:.LANCHOR2]
ldrh w0, [x0,x2]
- cbz w0, .L2373
-.L2372:
+ cbz w0, .L2412
+.L2411:
mov w0, w1
bl update_vpc_list
-.L2373:
+.L2412:
add x19, x19, :lo12:.LANCHOR2
mov w0, -1
strh w0, [x19,2336]
-.L2371:
+.L2410:
mov x0, x21
bl allocate_data_superblock
bl l2p_flush
mov w0, 0
bl FtlEctTblFlush
bl FtlVpcTblFlush
-.L2361:
+.L2400:
mov w0, 0
ldr x21, [sp,32]
ldp x19, x20, [sp,16]
@@ -16140,8 +16231,8 @@ allocate_new_data_superblock:
.type Ftlscanalldata, %function
Ftlscanalldata:
sub sp, sp, #80
- adrp x0, .LC136
- add x0, x0, :lo12:.LC136
+ adrp x0, .LC135
+ add x0, x0, :lo12:.LC135
mov w1, 0
stp x29, x30, [sp,16]
add x29, sp, 16
@@ -16150,29 +16241,29 @@ Ftlscanalldata:
mov w20, 0
stp x21, x22, [sp,48]
add x19, x19, :lo12:.LANCHOR4
- adrp x21, .LC137
- add x21, x21, :lo12:.LC137
+ adrp x21, .LC136
+ add x21, x21, :lo12:.LC136
add x19, x19, 160
bl printk
-.L2387:
+.L2426:
adrp x0, .LANCHOR0+2096
ldr w0, [x0,#:lo12:.LANCHOR0+2096]
cmp w20, w0
- bcs .L2394
+ bcs .L2433
mov w0, w20
add x1, x29, 60
mov w2, 0
bl log2phys
and w0, w20, 2047
- cbnz w0, .L2388
+ cbnz w0, .L2427
ldr w2, [x29,60]
mov x0, x21
mov w1, w20
bl printk
-.L2388:
+.L2427:
ldr w0, [x29,60]
cmn w0, #1
- beq .L2390
+ beq .L2429
adrp x1, .LANCHOR2
str w0, [x19,4]
add x1, x1, :lo12:.LANCHOR2
@@ -16188,13 +16279,13 @@ Ftlscanalldata:
bl FlashReadPages
ldr w0, [x19]
cmn w0, #1
- beq .L2391
+ beq .L2430
cmp w0, 256
- beq .L2391
+ beq .L2430
ldr w0, [x22,8]
cmp w0, w20
- beq .L2390
-.L2391:
+ beq .L2429
+.L2430:
adrp x2, .LANCHOR4
mov w1, w20
add x2, x2, :lo12:.LANCHOR4
@@ -16203,8 +16294,8 @@ Ftlscanalldata:
ldr x6, [x2,16]
ldr w0, [x7,4]
str w0, [sp]
- adrp x0, .LC138
- add x0, x0, :lo12:.LC138
+ adrp x0, .LC137
+ add x0, x0, :lo12:.LC137
ldr w3, [x6]
ldr w4, [x6,4]
ldr w5, [x6,8]
@@ -16212,10 +16303,10 @@ Ftlscanalldata:
ldr w6, [x6,12]
ldr w7, [x7]
bl printk
-.L2390:
+.L2429:
add w20, w20, 1
- b .L2387
-.L2394:
+ b .L2426
+.L2433:
sub sp, x29, #16
ldp x19, x20, [sp,32]
ldp x21, x22, [sp,48]
@@ -16243,9 +16334,9 @@ FtlReUsePrevPpa:
mov x21, x2
ldr x4, [x2,#:lo12:.LANCHOR2]
ldrh w1, [x4,x22]
- cbnz w1, .L2396
+ cbnz w1, .L2435
ldr x19, [x3,24]
- cbz x19, .L2397
+ cbz x19, .L2436
ldr x2, [x3,-16]
mov w5, 65535
ldrh w4, [x3,32]
@@ -16255,11 +16346,11 @@ FtlReUsePrevPpa:
madd x19, x3, x19, x19
mov w3, 6
uxth w19, w19
-.L2398:
+.L2437:
cmp w1, w4
- beq .L2397
+ beq .L2436
cmp w19, w0
- bne .L2399
+ bne .L2438
add x23, x21, :lo12:.LANCHOR2
mov w1, w19
add x0, x23, 24
@@ -16273,19 +16364,19 @@ FtlReUsePrevPpa:
ldrh w0, [x1,x22]
add w0, w0, 1
strh w0, [x1,x22]
- b .L2397
-.L2399:
+ b .L2436
+.L2438:
umull x19, w19, w3
ldrh w19, [x2,x19]
cmp w19, w5
- beq .L2397
+ beq .L2436
add w1, w1, 1
uxth w1, w1
- b .L2398
-.L2396:
+ b .L2437
+.L2435:
add w1, w1, 1
strh w1, [x4,x22]
-.L2397:
+.L2436:
add x1, x29, 76
mov w0, w20
mov w2, 1
@@ -16311,7 +16402,7 @@ FtlRecoverySuperblock:
mov x19, x0
ldrh w0, [x0]
cmp w0, w2
- beq .L2561
+ beq .L2605
ldrh w0, [x19,2]
adrp x23, .LANCHOR0
str w0, [x29,188]
@@ -16319,65 +16410,65 @@ FtlRecoverySuperblock:
str w0, [x29,176]
add x0, x23, :lo12:.LANCHOR0
ldr w1, [x29,188]
- ldrh w0, [x0,2018]
+ ldrh w0, [x0,2024]
cmp w0, w1
- bne .L2407
+ bne .L2446
strh wzr, [x19,4]
- b .L2567
-.L2407:
+ b .L2611
+.L2446:
ldrh w0, [x19,16]
mov w1, 0
-.L2408:
+.L2447:
cmp w0, w2
- bne .L2570
+ bne .L2614
add w1, w1, 1
uxth w1, w1
add x0, x19, x1, sxtw 1
ldrh w0, [x0,16]
- b .L2408
-.L2570:
+ b .L2447
+.L2614:
ldrb w1, [x19,8]
cmp w1, 1
- bne .L2410
+ bne .L2449
bl FtlGetLastWrittenPage
cmn w0, #1
mov w20, w0
- beq .L2411
+ beq .L2450
add x0, x23, :lo12:.LANCHOR0
mov w24, w20
- ldrb w1, [x0,120]
- cbnz w1, .L2484
- add x0, x0, 196
+ ldrb w1, [x0,196]
+ cbnz w1, .L2524
+ add x0, x0, 200
ldrh w24, [x0,w20,sxtw 1]
- b .L2484
-.L2410:
+ b .L2524
+.L2449:
mov w1, 0
bl FtlGetLastWrittenPage
cmn w0, #1
mov w20, w0
- beq .L2411
+ beq .L2450
mov w24, w0
-.L2484:
+.L2524:
add x0, x23, :lo12:.LANCHOR0
mov x2, x19
mov w26, 0
mov w8, 65535
mov w9, 56
adrp x10, .LANCHOR2
- ldrh w4, [x0,1948]
+ ldrh w4, [x0,1956]
mov w11, 4
- ldrh w7, [x0,2030]
+ ldrh w7, [x0,2036]
add x4, x19, x4, lsl 1
- b .L2413
-.L2411:
+ b .L2452
+.L2450:
strh wzr, [x19,2]
-.L2567:
+.L2611:
strb wzr, [x19,6]
- b .L2561
-.L2415:
+ b .L2605
+.L2454:
ldrh w1, [x2,16]
cmp w1, w8
- beq .L2414
+ beq .L2453
add x5, x10, :lo12:.LANCHOR2
orr w1, w24, w1, lsl 10
umull x0, w26, w9
@@ -16394,21 +16485,21 @@ FtlRecoverySuperblock:
sdiv w1, w1, w11
add x1, x5, x1, sxtw 2
str x1, [x0,16]
-.L2414:
+.L2453:
add x2, x2, 2
-.L2413:
+.L2452:
cmp x2, x4
- bne .L2415
+ bne .L2454
ldrb w0, [x19,8]
str wzr, [x29,184]
cmp w0, 1
- bne .L2416
+ bne .L2455
add x0, x23, :lo12:.LANCHOR0
- ldrb w0, [x0,120]
+ ldrb w0, [x0,196]
cmp w0, wzr
cset w0, ne
str w0, [x29,184]
-.L2416:
+.L2455:
adrp x21, .LANCHOR2
ldr w2, [x29,184]
add x22, x21, :lo12:.LANCHOR2
@@ -16419,25 +16510,25 @@ FtlRecoverySuperblock:
ldr x0, [x22,2048]
bl FlashReadPages
ldr w0, [x22,236]
- adrp x22, .LC139
+ adrp x22, .LC138
str w0, [x29,168]
- add x22, x22, :lo12:.LC139
+ add x22, x22, :lo12:.LC138
uxth w0, w24
str w0, [x29,160]
-.L2417:
+.L2456:
uxth w2, w27
cmp w2, w26
- bcs .L2424
+ bcs .L2463
add x6, x21, :lo12:.LANCHOR2
mul x0, x27, x28
ldr x4, [x6,2048]
add x1, x4, x0
ldr w0, [x4,x0]
- cbnz w0, .L2418
+ cbnz w0, .L2457
ldr x7, [x1,16]
ldr w4, [x7,4]
cmn w4, #1
- beq .L2419
+ beq .L2458
ldr w1, [x6,236]
mov w0, w4
str x7, [x29,128]
@@ -16449,23 +16540,23 @@ FtlRecoverySuperblock:
ldr x4, [x29,144]
ldr x2, [x29,136]
ldr x7, [x29,128]
- cbz w0, .L2419
+ cbz w0, .L2458
add w4, w4, 1
str w4, [x6,236]
-.L2419:
+.L2458:
ldr w0, [x7]
cmn w0, #1
- bne .L2420
-.L2424:
+ bne .L2459
+.L2463:
cmp w2, w26
- bne .L2562
+ bne .L2606
add x0, x21, :lo12:.LANCHOR2
add w20, w20, 1
uxth w20, w20
ldr x0, [x0,2048]
ldr w0, [x0,4]
- b .L2563
-.L2418:
+ b .L2607
+.L2457:
ldr w1, [x1,4]
mov x0, x22
bl printk
@@ -16474,10 +16565,10 @@ FtlRecoverySuperblock:
ldrh w1, [x19]
add x0, x0, :lo12:.LANCHOR4
strh w1, [x0,290]
-.L2420:
+.L2459:
add x27, x27, 1
- b .L2417
-.L2562:
+ b .L2456
+.L2606:
add x0, x21, :lo12:.LANCHOR2
mov w1, 56
uxth w20, w20
@@ -16485,80 +16576,80 @@ FtlRecoverySuperblock:
ldr x0, [x0,2048]
add x2, x0, x2
ldr w0, [x2,4]
-.L2563:
+.L2607:
lsr x0, x0, 10
bl P2V_plane
uxth w26, w0
ldrb w1, [x19,8]
cmp w1, 1
- bne .L2426
+ bne .L2465
add x0, x23, :lo12:.LANCHOR0
- ldrb w2, [x0,120]
- cbnz w2, .L2426
- add x0, x0, 196
+ ldrb w2, [x0,196]
+ cbnz w2, .L2465
+ add x0, x0, 200
ldrh w20, [x0,w20,sxtw 1]
-.L2426:
+.L2465:
add x0, x23, :lo12:.LANCHOR0
- ldrh w0, [x0,2018]
+ ldrh w0, [x0,2024]
cmp w0, w20
- bne .L2427
+ bne .L2466
strh w20, [x19,2]
strb wzr, [x19,6]
strh wzr, [x19,4]
-.L2427:
+.L2466:
ldrh w0, [x29,176]
str w0, [x29,152]
ldr w0, [x29,188]
cmp w20, w0
- bne .L2428
+ bne .L2467
ldr w0, [x29,152]
cmp w26, w0
- beq .L2568
-.L2428:
+ beq .L2612
+.L2467:
ldr w0, [x29,168]
sub w22, w0, #1
mov w0, 65535
cmp w25, w0
- bne .L2429
- cbnz w1, .L2430
-.L2429:
+ bne .L2468
+ cbnz w1, .L2469
+.L2468:
add x0, x21, :lo12:.LANCHOR2
uxth w5, w24
ldr w1, [x0,2348]
cmn w1, #1
- bne .L2431
+ bne .L2470
str w22, [x0,2348]
-.L2431:
+.L2470:
add x0, x21, :lo12:.LANCHOR2
ldr w25, [x29,188]
ldr w6, [x0,2348]
ldr w0, [x29,188]
add w0, w0, 7
cmp w0, w24, uxth
- bge .L2432
+ bge .L2471
sub w25, w5, #7
uxth w25, w25
-.L2432:
+.L2471:
mov w3, -1
add x28, x21, :lo12:.LANCHOR2
mov w27, w3
mov w4, 65535
mov w7, 56
add x8, x28, 988
-.L2433:
+.L2472:
cmp w25, w5
- bhi .L2446
+ bhi .L2485
add x0, x23, :lo12:.LANCHOR0
mov w24, 0
- ldrh w2, [x0,1948]
+ ldrh w2, [x0,1956]
mov x0, x19
add x2, x19, x2, lsl 1
-.L2447:
+.L2486:
cmp x0, x2
- beq .L2571
+ beq .L2615
ldrh w1, [x0,16]
cmp w1, w4
- beq .L2434
+ beq .L2473
umull x9, w24, w7
ldr x10, [x28,2048]
add w24, w24, 1
@@ -16566,10 +16657,10 @@ FtlRecoverySuperblock:
add x9, x10, x9
uxth w24, w24
str w1, [x9,4]
-.L2434:
+.L2473:
add x0, x0, 2
- b .L2447
-.L2571:
+ b .L2486
+.L2615:
ldr x0, [x28,2048]
mov w1, w24
ldr w2, [x29,184]
@@ -16586,116 +16677,116 @@ FtlRecoverySuperblock:
mov w1, 0
ldr x6, [x29,160]
sxtw x10, w25
- ldrb w9, [x0,120]
+ ldrb w9, [x0,196]
ldr x0, [x28,2048]
ldr x4, [x29,144]
ldr x7, [x29,136]
add x0, x0, 16
ldr x8, [x29,128]
-.L2436:
+.L2475:
cmp w1, w24
- beq .L2572
+ beq .L2616
ldr w2, [x0,-16]
- cbnz w2, .L2437
+ cbnz w2, .L2476
ldr x2, [x0]
ldrh w11, [x2]
cmp w11, w4
- beq .L2438
+ beq .L2477
ldr w2, [x2,4]
cmn w2, #1
- beq .L2438
+ beq .L2477
ldr w27, [x28,2348]
cmn w3, #1
str w2, [x28,2348]
- bne .L2438
+ bne .L2477
ldrh w2, [x8,x10,lsl 1]
cmp w2, w4
- bne .L2439
- cbz w9, .L2438
-.L2439:
+ bne .L2478
+ cbz w9, .L2477
+.L2478:
cmp w27, w22
csinv w3, w27, wzr, ne
- b .L2438
-.L2437:
+ b .L2477
+.L2476:
adrp x0, .LANCHOR4+290
ldrh w1, [x19]
strh w1, [x0,#:lo12:.LANCHOR4+290]
ldrb w0, [x19,8]
- cbnz w0, .L2430
+ cbnz w0, .L2469
add x0, x21, :lo12:.LANCHOR2
add x1, x0, 988
ldrh w2, [x1,w25,sxtw 1]
mov w1, 65535
cmp w2, w1
- bne .L2441
+ bne .L2480
cmn w3, #1
- beq .L2442
+ beq .L2481
str w3, [x0,2348]
- b .L2430
-.L2442:
+ b .L2469
+.L2481:
cmp w6, w22
- beq .L2443
+ beq .L2482
str w6, [x0,2348]
- b .L2430
-.L2443:
+ b .L2469
+.L2482:
ldr w1, [x0,2348]
- b .L2569
-.L2441:
+ b .L2613
+.L2480:
cmp w27, w22
- beq .L2444
+ beq .L2483
cmn w27, #1
- beq .L2430
+ beq .L2469
str w27, [x0,2348]
- b .L2430
-.L2444:
+ b .L2469
+.L2483:
ldr w1, [x0,2348]
cmp w1, w22
- beq .L2430
-.L2569:
+ beq .L2469
+.L2613:
sub w1, w1, #1
- b .L2564
-.L2438:
+ b .L2608
+.L2477:
add w1, w1, 1
add x0, x0, 56
uxth w1, w1
- b .L2436
-.L2572:
+ b .L2475
+.L2616:
add w25, w25, 1
uxth w25, w25
- b .L2433
-.L2446:
+ b .L2472
+.L2485:
add x0, x21, :lo12:.LANCHOR2
mov w1, -1
-.L2564:
+.L2608:
str w1, [x0,2348]
-.L2430:
+.L2469:
adrp x0, .LANCHOR4
str x0, [x29,136]
add x1, x0, :lo12:.LANCHOR4
- adrp x0, .LC141
- add x0, x0, :lo12:.LC141
+ adrp x0, .LC140
+ add x0, x0, :lo12:.LC140
ldr w24, [x29,188]
str x0, [x29,128]
- adrp x0, .LC140
+ adrp x0, .LC139
mov w2, 1
- add x0, x0, :lo12:.LC140
+ add x0, x0, :lo12:.LC139
strh w2, [x1,292]
str x0, [x29,120]
-.L2448:
+.L2487:
add x0, x23, :lo12:.LANCHOR0
mov x1, x19
str wzr, [x29,176]
mov w7, 65535
mov w8, 56
- ldrh w3, [x0,1948]
- ldrb w6, [x0,120]
+ ldrh w3, [x0,1956]
+ ldrb w6, [x0,196]
add x3, x19, x3, lsl 1
-.L2449:
+.L2488:
cmp x1, x3
- beq .L2573
+ beq .L2617
ldrh w2, [x1,16]
cmp w2, w7
- beq .L2450
+ beq .L2489
ldr w0, [x29,176]
add x5, x21, :lo12:.LANCHOR2
orr w2, w24, w2, lsl 10
@@ -16705,33 +16796,33 @@ FtlRecoverySuperblock:
str w2, [x4,4]
ldrb w2, [x19,8]
cmp w2, 1
- bne .L2451
- cbz w6, .L2451
+ bne .L2490
+ cbz w6, .L2490
ldr x2, [x5,2048]
add x0, x2, x0
ldr w2, [x0,4]
orr w2, w2, -2147483648
str w2, [x0,4]
-.L2451:
+.L2490:
ldr w0, [x29,176]
add w0, w0, 1
uxth w0, w0
str w0, [x29,176]
-.L2450:
+.L2489:
add x1, x1, 2
- b .L2449
-.L2573:
+ b .L2488
+.L2617:
add x0, x21, :lo12:.LANCHOR2
ldr w1, [x29,176]
ldr w2, [x29,184]
ldr x0, [x0,2048]
bl FlashReadPages
str xzr, [x29,160]
-.L2453:
+.L2492:
ldrh w0, [x29,160]
ldr w1, [x29,176]
cmp w1, w0, uxth
- bls .L2574
+ bls .L2618
ldr x0, [x29,160]
mov x25, 56
mul x25, x0, x25
@@ -16747,41 +16838,41 @@ FtlRecoverySuperblock:
ldr w1, [x29,188]
cmp w24, w1
ldr x1, [x29,168]
- bcc .L2454
+ bcc .L2493
ldr w2, [x29,152]
cmp w0, w2
- bcs .L2488
+ bcs .L2528
ldr w2, [x29,188]
cmp w24, w2
- beq .L2454
-.L2488:
+ beq .L2493
+.L2528:
cmp w0, w26
- bne .L2489
+ bne .L2529
cmp w24, w20
- beq .L2456
-.L2489:
+ beq .L2495
+.L2529:
ldr w0, [x28,x25]
cmn w0, #1
- beq .L2458
+ beq .L2497
ldr x28, [x27,16]
mov w0, 61589
ldrh w1, [x28]
cmp w1, w0
- beq .L2459
+ beq .L2498
ldrh w0, [x19]
- b .L2565
-.L2459:
+ b .L2609
+.L2498:
ldr w22, [x28,4]
cmn w22, #1
- beq .L2460
+ beq .L2499
add x27, x21, :lo12:.LANCHOR2
mov w0, w22
ldr w1, [x27,236]
bl ftl_cmp_data_ver
- cbz w0, .L2460
+ cbz w0, .L2499
add w0, w22, 1
str w0, [x27,236]
-.L2460:
+.L2499:
ldr w27, [x28,8]
add x1, x29, 200
ldr w0, [x28,12]
@@ -16789,27 +16880,27 @@ FtlRecoverySuperblock:
str w0, [x29,196]
mov w0, w27
bl log2phys
+ ldr w28, [x29,196]
add x3, x21, :lo12:.LANCHOR2
str x3, [x29,168]
ldr w1, [x3,2348]
cmn w1, #1
- beq .L2461
+ beq .L2500
mov w0, w22
bl ftl_cmp_data_ver
ldr x3, [x29,168]
- cbz w0, .L2461
- ldr w1, [x29,196]
- cmn w1, #1
- beq .L2462
+ cbz w0, .L2500
+ cmn w28, #1
+ beq .L2501
ldr x0, [x3,2048]
+ mov w2, 0
str x3, [x29,112]
add x0, x0, x25
- str w1, [x0,4]
- mov w1, 1
- ldr x2, [x0,16]
+ str w28, [x0,4]
+ ldr x1, [x0,16]
ldr x0, [x3,2048]
- str x2, [x29,168]
- mov w2, 0
+ str x1, [x29,168]
+ mov w1, 1
add x0, x0, x25
bl FlashReadPages
ldr x3, [x29,112]
@@ -16820,23 +16911,23 @@ FtlRecoverySuperblock:
add x4, x2, x25
ldr w0, [x2,x25]
cmn w0, #1
- bne .L2463
- b .L2464
-.L2462:
+ bne .L2502
+ b .L2503
+.L2501:
ldr w0, [x29,204]
ldr w1, [x29,200]
cmp w1, w0
- bne .L2454
+ bne .L2493
mov w0, w27
add x1, x29, 196
mov w2, 1
bl log2phys
- b .L2454
-.L2463:
+ b .L2493
+.L2502:
ldr x0, [x29,168]
ldr w28, [x0,8]
cmp w28, w27
- bne .L2464
+ bne .L2503
ldr w0, [x3,2348]
ldr w1, [x29,144]
str x2, [x29,96]
@@ -16846,16 +16937,16 @@ FtlRecoverySuperblock:
ldr x3, [x29,112]
ldr x4, [x29,104]
ldr x2, [x29,96]
- cbz w0, .L2464
+ cbz w0, .L2503
ldr w0, [x29,200]
ldr w1, [x29,204]
cmp w0, w1
- beq .L2469
+ beq .L2508
ldr w1, [x29,196]
cmp w0, w1
- beq .L2464
+ beq .L2503
cmn w0, #1
- beq .L2467
+ beq .L2506
str w0, [x4,4]
mov w2, 0
ldr x1, [x4,16]
@@ -16864,62 +16955,69 @@ FtlRecoverySuperblock:
mov w1, 1
add x0, x0, x25
bl FlashReadPages
- b .L2468
-.L2467:
+ b .L2507
+.L2506:
str w0, [x2,x25]
-.L2468:
+.L2507:
add x0, x21, :lo12:.LANCHOR2
ldr x1, [x0,2048]
ldr w1, [x1,x25]
cmn w1, #1
- beq .L2469
+ beq .L2508
ldr x1, [x29,168]
ldr w0, [x0,2348]
ldr w25, [x1,4]
mov w1, w25
bl ftl_cmp_data_ver
- cbz w0, .L2469
+ cbz w0, .L2508
ldr w0, [x29,144]
mov w1, w25
bl ftl_cmp_data_ver
- cbz w0, .L2464
-.L2469:
+ cbz w0, .L2503
+.L2508:
ldr w1, [x29,196]
mov w0, w28
bl FtlReUsePrevPpa
-.L2464:
+.L2503:
mov w0, -1
str w0, [x29,196]
- b .L2471
-.L2461:
+ b .L2510
+.L2500:
ldr w0, [x29,204]
ldr w1, [x29,200]
cmp w1, w0
- beq .L2471
+ beq .L2510
+ add x0, x23, :lo12:.LANCHOR0
+ ldr w0, [x0,1972]
+ cmp w0, w28, lsr 10
+ bhi .L2530
+ cmn w28, #1
+ bne .L2493
+.L2530:
mov w0, w27
add x1, x29, 204
mov w2, 1
bl log2phys
ldr w25, [x29,200]
cmn w25, #1
- beq .L2471
+ beq .L2510
ldr w0, [x29,196]
cmp w25, w0
- beq .L2471
+ beq .L2510
lsr x0, x25, 10
bl P2V_block_in_plane
uxth w0, w0
add x1, x21, :lo12:.LANCHOR2
ldrh w2, [x1,40]
cmp w2, w0
- beq .L2474
+ beq .L2514
ldrh w2, [x1,88]
cmp w2, w0
- beq .L2474
+ beq .L2514
ldrh w1, [x1,136]
cmp w1, w0
- bne .L2471
-.L2474:
+ bne .L2510
+.L2514:
add x28, x21, :lo12:.LANCHOR2
mov w1, 1
mov w2, 0
@@ -16934,33 +17032,33 @@ FtlRecoverySuperblock:
ldr w0, [x0]
ldr w1, [x3,4]
cmn w0, #1
- beq .L2471
+ beq .L2510
mov w0, w22
bl ftl_cmp_data_ver
- cbnz w0, .L2471
+ cbnz w0, .L2510
mov w0, w27
add x1, x29, 200
mov w2, 1
bl log2phys
-.L2471:
+.L2510:
ldr w0, [x29,196]
cmn w0, #1
- beq .L2454
+ beq .L2493
lsr x0, x0, 10
bl P2V_block_in_plane
uxth w1, w0
ubfiz x2, x1, 1, 16
ldr x3, [x21,#:lo12:.LANCHOR2]
ldrh w2, [x3,x2]
- cbz w2, .L2475
-.L2565:
+ cbz w2, .L2515
+.L2609:
bl decrement_vpc_count
- b .L2454
-.L2475:
+ b .L2493
+.L2515:
ldr x0, [x29,120]
bl printk
- b .L2454
-.L2458:
+ b .L2493
+.L2497:
ldr x2, [x29,136]
ldrh w0, [x19]
add x25, x2, :lo12:.LANCHOR4
@@ -16970,72 +17068,72 @@ FtlRecoverySuperblock:
bl printk
ldr w0, [x25,296]
cmp w0, 31
- bhi .L2476
+ bhi .L2516
add x1, x25, 304
ldr w2, [x29,204]
str w2, [x1,w0,uxtw 2]
add w0, w0, 1
str w0, [x25,296]
-.L2476:
+.L2516:
ldrh w0, [x19]
bl decrement_vpc_count
add x0, x21, :lo12:.LANCHOR2
ldr w1, [x0,2348]
cmn w1, #1
- beq .L2566
+ beq .L2610
cmp w1, w22
- bls .L2454
-.L2566:
+ bls .L2493
+.L2610:
str w22, [x0,2348]
-.L2454:
+.L2493:
ldr x0, [x29,160]
add x0, x0, 1
str x0, [x29,160]
- b .L2453
-.L2574:
+ b .L2492
+.L2618:
ldrb w0, [x19,8]
add w24, w24, 1
cmp w0, 1
uxth w24, w24
- bne .L2479
+ bne .L2519
add x0, x23, :lo12:.LANCHOR0
- ldrb w1, [x0,120]
- cbz w1, .L2479
+ ldrb w1, [x0,196]
+ cbz w1, .L2519
cmp w20, w24
- bne .L2479
- ldrh w0, [x0,2020]
+ bne .L2519
+ ldrh w0, [x0,2026]
cmp w0, w24
- beq .L2456
-.L2479:
+ beq .L2495
+.L2519:
add x0, x23, :lo12:.LANCHOR0
- ldrh w1, [x0,2018]
+ ldrh w1, [x0,2024]
cmp w24, w1
- bne .L2448
- ldrh w2, [x0,1948]
+ bne .L2487
+ ldrh w2, [x0,1956]
mov w3, 65535
strh w24, [x19,2]
mov x0, 0
strh wzr, [x19,4]
-.L2481:
+.L2521:
uxth w1, w0
cmp w1, w2
- bcs .L2561
+ bcs .L2605
add x0, x0, 1
add x4, x19, x0, lsl 1
ldrh w4, [x4,14]
cmp w4, w3
- beq .L2481
+ beq .L2521
strb w1, [x19,6]
- b .L2561
-.L2456:
+ b .L2605
+.L2495:
strb w26, [x19,6]
strh w20, [x19,2]
-.L2568:
+.L2612:
mov x0, x19
mov w1, w20
mov w2, w26
bl ftl_sb_update_avl_pages
-.L2561:
+.L2605:
mov w0, 0
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -17065,23 +17163,23 @@ FtlVpcCheckAndModify:
adrp x20, .LANCHOR2
add x0, x20, :lo12:.LANCHOR2
mov w19, 0
- ldrh w2, [x1,1958]
+ ldrh w2, [x1,1966]
mov w1, 0
ldr x0, [x0,2168]
lsl w2, w2, 1
bl ftl_memset
-.L2576:
+.L2620:
add x0, x22, :lo12:.LANCHOR0
ldr w0, [x0,2096]
cmp w19, w0
- bcs .L2592
+ bcs .L2636
mov w0, w19
add x1, x29, 76
mov w2, 0
bl log2phys
ldr w0, [x29,76]
cmn w0, #1
- beq .L2577
+ beq .L2621
lsr x0, x0, 10
bl P2V_block_in_plane
ubfiz x0, x0, 1, 16
@@ -17090,59 +17188,59 @@ FtlVpcCheckAndModify:
ldrh w1, [x2,x0]
add w1, w1, 1
strh w1, [x2,x0]
-.L2577:
+.L2621:
add w19, w19, 1
- b .L2576
-.L2592:
- adrp x23, .LC142
+ b .L2620
+.L2636:
+ adrp x23, .LC141
mov w19, 0
add x20, x20, :lo12:.LANCHOR2
mov w24, 65535
- add x23, x23, :lo12:.LC142
-.L2579:
+ add x23, x23, :lo12:.LC141
+.L2623:
add x0, x22, :lo12:.LANCHOR0
- ldrh w0, [x0,1956]
+ ldrh w0, [x0,1964]
cmp w0, w19
- bls .L2593
+ bls .L2637
ubfiz x21, x19, 1, 16
ldr x0, [x20]
ldrh w2, [x0,x21]
ldr x0, [x20,2168]
ldrh w3, [x0,x21]
cmp w2, w3
- beq .L2582
+ beq .L2626
cmp w2, w24
- beq .L2582
+ beq .L2626
mov x0, x23
mov w1, w19
bl printk
ldrh w0, [x20,40]
cmp w0, w19
- beq .L2582
+ beq .L2626
ldrh w0, [x20,136]
cmp w0, w19
- beq .L2582
+ beq .L2626
ldrh w0, [x20,88]
cmp w0, w19
- beq .L2582
+ beq .L2626
ldr x0, [x20]
ldrh w1, [x0,x21]
- cbnz w1, .L2584
+ cbnz w1, .L2628
ldr x1, [x20,2168]
ldrh w1, [x1,x21]
strh w1, [x0,x21]
- b .L2582
-.L2584:
+ b .L2626
+.L2628:
ldr x1, [x20,2168]
ldrh w1, [x1,x21]
strh w1, [x0,x21]
mov w0, w19
bl update_vpc_list
-.L2582:
+.L2626:
add w19, w19, 1
uxth w19, w19
- b .L2579
-.L2593:
+ b .L2623
+.L2637:
bl l2p_flush
bl FtlVpcTblFlush
ldp x19, x20, [sp,16]
@@ -17152,6 +17250,272 @@ FtlVpcCheckAndModify:
ret
.size FtlVpcCheckAndModify, .-FtlVpcCheckAndModify
.align 2
+ .global FtlGcScanTempBlk
+ .type FtlGcScanTempBlk, %function
+FtlGcScanTempBlk:
+ stp x29, x30, [sp, -240]!
+ add x29, sp, 0
+ stp x19, x20, [sp,16]
+ mov x19, x0
+ adrp x0, .LANCHOR1
+ str w1, [x29,164]
+ add x1, x0, :lo12:.LANCHOR1
+ stp x21, x22, [sp,32]
+ stp x23, x24, [sp,48]
+ stp x25, x26, [sp,64]
+ stp x27, x28, [sp,80]
+ str x0, [x29,152]
+ ldrh w26, [x1,3296]
+ mov w1, 65535
+ cmp w26, w1
+ beq .L2668
+ cbnz w26, .L2639
+ b .L2640
+.L2668:
+ mov w26, 0
+.L2639:
+ adrp x0, .LANCHOR0+2024
+ ldr w1, [x29,164]
+ ldrh w0, [x0,#:lo12:.LANCHOR0+2024]
+ cmp w1, w0
+ bne .L2641
+.L2640:
+ bl FtlGcPageVarInit
+.L2641:
+ mov w0, -1
+ adrp x25, .LANCHOR0
+ str w0, [x29,168]
+ adrp x0, .LC143
+ add x0, x0, :lo12:.LC143
+ mov w22, 0
+ mov x24, x25
+ str x0, [x29,144]
+.L2642:
+ ldrh w0, [x19]
+ mov w21, 65535
+ strb wzr, [x19,8]
+ cmp w0, w21
+ beq .L2643
+.L2644:
+.L2665:
+ add x0, x25, :lo12:.LANCHOR0
+ mov x2, x19
+ mov w27, 0
+ mov w10, 56
+ adrp x11, .LANCHOR2
+ mov w7, 4
+ ldrh w6, [x0,1956]
+ ldrh w8, [x0,2034]
+ ldrh w9, [x0,2036]
+ add x6, x19, x6, lsl 1
+.L2645:
+ cmp x2, x6
+ beq .L2683
+ ldrh w1, [x2,16]
+ cmp w1, w21
+ beq .L2646
+ add x5, x11, :lo12:.LANCHOR2
+ orr w1, w26, w1, lsl 10
+ umull x0, w27, w10
+ add w4, w27, 1
+ ldr x12, [x5,2048]
+ add x12, x12, x0
+ str w1, [x12,4]
+ ldr x1, [x5,2048]
+ ldr x12, [x5,880]
+ add x0, x1, x0
+ ldr x5, [x5,888]
+ mul w1, w27, w8
+ sdiv w1, w1, w7
+ add x1, x12, x1, sxtw 2
+ str x1, [x0,8]
+ mul w1, w27, w9
+ uxth w27, w4
+ sdiv w1, w1, w7
+ add x1, x5, x1, sxtw 2
+ str x1, [x0,16]
+.L2646:
+ add x2, x2, 2
+ b .L2645
+.L2683:
+ adrp x20, .LANCHOR2
+ mov w1, w27
+ add x0, x20, :lo12:.LANCHOR2
+ mov w2, 0
+ mov x23, 0
+ ldr x0, [x0,2048]
+ bl FlashReadPages
+.L2648:
+ cmp w27, w23, uxth
+ bls .L2684
+ add x7, x20, :lo12:.LANCHOR2
+ mov x0, 56
+ mul x28, x23, x0
+ ldr x1, [x7,2048]
+ add x0, x1, x28
+ ldr w9, [x1,x28]
+ ldr w2, [x0,4]
+ str w2, [x29,172]
+ cbnz w9, .L2649
+ ldr x6, [x0,16]
+ ldrh w0, [x6]
+ cmp w0, w21
+ beq .L2662
+ add x8, x24, :lo12:.LANCHOR0
+ ldr w0, [x6,8]
+ ldr w1, [x8,2096]
+ cmp w0, w1
+ bhi .L2662
+ ldrb w1, [x8,8]
+ cbz w1, .L2654
+ add x1, x29, 180
+ mov w2, w9
+ str x6, [x29,136]
+ str x8, [x29,104]
+ str x7, [x29,112]
+ str x9, [x29,120]
+ bl log2phys
+ ldr x6, [x29,136]
+ ldr w1, [x29,180]
+ ldr w0, [x6,12]
+ cmp w1, w0
+ bne .L2654
+ cmn w1, #1
+ beq .L2654
+ ldr x7, [x29,112]
+ mov w1, 1
+ str w0, [x29,188]
+ ldr x9, [x29,120]
+ ldr x0, [x7,2112]
+ str x0, [x29,192]
+ mov w2, w9
+ ldr x0, [x7,2128]
+ str x0, [x29,200]
+ add x0, x29, 184
+ str x6, [x29,128]
+ str x7, [x29,136]
+ bl FlashReadPages
+ ldr x7, [x29,136]
+ ldr x8, [x29,104]
+ ldr x6, [x29,128]
+ ldr x0, [x7,2048]
+ ldrh w2, [x8,2030]
+ ldr x7, [x29,192]
+ add x5, x0, x28
+ lsl w2, w2, 7
+ mov x0, 0
+.L2656:
+ cmp w2, w0
+ bls .L2654
+ lsl x1, x0, 2
+ ldr x8, [x5,8]
+ add x0, x0, 1
+ ldr w8, [x8,x1]
+ ldr w1, [x7,x1]
+ cmp w8, w1
+ beq .L2656
+ adrp x0, .LC142
+ ldrh w1, [x19]
+ ldr w2, [x29,188]
+ add x0, x0, :lo12:.LC142
+ bl printk
+ b .L2662
+.L2654:
+ ldr w0, [x6,12]
+ add x23, x23, 1
+ ldr w1, [x29,172]
+ ldr w2, [x6,8]
+ bl FtlGcUpdatePage
+ b .L2648
+.L2649:
+ ldrh w1, [x19]
+ ldr x0, [x29,144]
+ ldr w2, [x29,172]
+ bl printk
+ adrp x0, .LANCHOR0
+ add x0, x0, :lo12:.LANCHOR0
+ ldr w1, [x0,1948]
+ cbnz w1, .L2659
+ ldrb w0, [x0,196]
+ cbz w0, .L2660
+.L2659:
+ add x0, x20, :lo12:.LANCHOR2
+ ldrh w1, [x19]
+ ldr x0, [x0,-80]
+ ldrh w0, [x0,x1,lsl 1]
+ cmp w0, 159
+ bls .L2661
+.L2660:
+ add x0, x20, :lo12:.LANCHOR2
+ ldr x0, [x0,2048]
+ ldr w0, [x0,x28]
+ cmn w0, #1
+ bne .L2662
+.L2661:
+ add x0, x20, :lo12:.LANCHOR2
+ ldr x0, [x0,2048]
+ add x5, x0, x28
+ ldr w0, [x5,4]
+ str w0, [x29,168]
+.L2662:
+ ldrh w1, [x19]
+ mov w26, 0
+ ldr x0, [x20,#:lo12:.LANCHOR2]
+ strh wzr, [x0,x1,lsl 1]
+ ldrh w0, [x19]
+ bl INSERT_FREE_LIST
+ mov w0, -1
+ strh w0, [x19]
+ bl FtlGcPageVarInit
+ b .L2642
+.L2684:
+ ldr w0, [x29,164]
+ add w22, w22, 1
+ add w3, w26, 1
+ cmp w22, w0
+ uxth w26, w3
+ bcs .L2664
+.L2666:
+ add x0, x24, :lo12:.LANCHOR0
+ ldrh w0, [x0,2024]
+ cmp w0, w26
+ bhi .L2665
+ b .L2643
+.L2664:
+ ldr x0, [x29,152]
+ add x1, x0, :lo12:.LANCHOR1
+ ldrh w0, [x1,3296]
+ cmp w0, w21
+ beq .L2666
+ add w0, w0, w22
+ strh w0, [x1,3296]
+ add x0, x24, :lo12:.LANCHOR0
+ ldrh w0, [x0,2024]
+ cmp w0, w26
+ bls .L2666
+ b .L2667
+.L2643:
+ ldr x0, [x29,152]
+ mov w1, -1
+ strh w26, [x19,2]
+ mov w2, 0
+ add x0, x0, :lo12:.LANCHOR1
+ strb wzr, [x19,6]
+ strh w1, [x0,3296]
+ mov x0, x19
+ mov w1, w26
+ bl ftl_sb_update_avl_pages
+.L2667:
+ ldr w0, [x29,168]
+ ldp x19, x20, [sp,16]
+ ldp x21, x22, [sp,32]
+ ldp x23, x24, [sp,48]
+ ldp x25, x26, [sp,64]
+ ldp x27, x28, [sp,80]
+ ldp x29, x30, [sp], 240
+ ret
+ .size FtlGcScanTempBlk, .-FtlGcScanTempBlk
+ .align 2
.global FtlReadRefresh
.type FtlReadRefresh, %function
FtlReadRefresh:
@@ -17164,20 +17528,20 @@ FtlReadRefresh:
stp x21, x22, [sp,32]
adrp x19, .LANCHOR0
ldr w3, [x2,80]
- cbz w3, .L2595
+ cbz w3, .L2686
add x1, x19, :lo12:.LANCHOR0
ldr w3, [x2,84]
ldr w1, [x1,2096]
cmp w3, w1
- bcs .L2596
+ bcs .L2687
mov w21, 2048
mov x20, x0
-.L2601:
+.L2692:
add x1, x19, :lo12:.LANCHOR0
ldr w0, [x20,420]
ldr w1, [x1,2096]
cmp w0, w1
- bcs .L2598
+ bcs .L2689
add x1, x29, 52
mov w2, 0
bl log2phys
@@ -17186,7 +17550,7 @@ FtlReadRefresh:
add w0, w0, 1
str w0, [x20,420]
cmn w1, #1
- beq .L2599
+ beq .L2690
str w1, [x29,60]
mov w2, 0
str w0, [x29,80]
@@ -17198,56 +17562,56 @@ FtlReadRefresh:
bl FlashReadPages
ldr w0, [x29,56]
cmp w0, 256
- bne .L2598
+ bne .L2689
ldr w0, [x29,52]
lsr x0, x0, 10
bl P2V_block_in_plane
bl FtlGcRefreshBlock
- b .L2598
-.L2599:
+ b .L2689
+.L2690:
subs w21, w21, #1
- bne .L2601
-.L2598:
+ bne .L2692
+.L2689:
mov w0, -1
- b .L2603
-.L2596:
+ b .L2694
+.L2687:
ldr w0, [x0,200]
str wzr, [x2,80]
str wzr, [x2,84]
str w0, [x2,76]
- b .L2609
-.L2595:
+ b .L2700
+.L2686:
add x19, x19, :lo12:.LANCHOR0
ldr w0, [x0,252]
mov w2, 4194304
- ldrb w4, [x19,120]
- ldr w3, [x19,1940]
- cbnz w4, .L2604
+ ldrb w4, [x19,196]
+ ldr w3, [x19,1948]
+ cbnz w4, .L2695
add w0, w3, w0, lsr 10
mov w3, 33554432
asr w2, w3, w0
-.L2604:
+.L2695:
add x4, x1, :lo12:.LANCHOR2
ldr w3, [x4,200]
ldr w0, [x4,412]
add w5, w3, 1048576
cmp w0, w5
- bhi .L2605
+ bhi .L2696
add w0, w2, w0
cmp w0, w3
- bcc .L2605
+ bcc .L2696
ldrb w2, [x4,-36]
mov w0, 0
- cbnz w2, .L2603
-.L2605:
+ cbnz w2, .L2694
+.L2696:
add x0, x1, :lo12:.LANCHOR2
mov w1, 1
str wzr, [x0,420]
str w1, [x0,416]
str w3, [x0,412]
-.L2609:
+.L2700:
mov w0, 0
-.L2603:
+.L2694:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x29, x30, [sp], 112
@@ -17268,27 +17632,27 @@ FtlGcFreeTempBlock:
adrp x21, .LANCHOR0
add x1, x21, :lo12:.LANCHOR0
ldr w3, [x2,-96]
- ldrh w1, [x1,2018]
- cbnz w3, .L2644
+ ldrh w1, [x1,2024]
+ cbnz w3, .L2735
ldrh w20, [x2,136]
mov w4, 65535
cmp w20, w4
- bne .L2613
-.L2622:
+ bne .L2704
+.L2713:
add x20, x19, :lo12:.LANCHOR2
mov w0, 65535
add x22, x20, 136
ldrh w1, [x20,136]
str wzr, [x20,2344]
cmp w1, w0
- beq .L2644
+ beq .L2735
bl FtlCacheWriteBack
mov w26, 12
adrp x0, .LANCHOR2
add x3, x21, :lo12:.LANCHOR0
ldrh w2, [x20,136]
ldr x1, [x0,#:lo12:.LANCHOR2]
- ldrh w3, [x3,2018]
+ ldrh w3, [x3,2024]
ldrb w0, [x22,7]
mov w22, 0
mul w0, w0, w3
@@ -17297,42 +17661,42 @@ FtlGcFreeTempBlock:
ldrh w1, [x20,920]
add w0, w1, w0
str w0, [x20,220]
- b .L2623
-.L2613:
- cbz w0, .L2616
+ b .L2714
+.L2704:
+ cbz w0, .L2707
adrp x0, .LANCHOR1
add x0, x0, :lo12:.LANCHOR1
- ldrh w5, [x0,3168]
+ ldrh w5, [x0,3296]
cmp w5, w4
- beq .L2617
-.L2618:
+ beq .L2708
+.L2709:
mov w1, 2
- b .L2616
-.L2617:
- strh w3, [x0,3168]
+ b .L2707
+.L2708:
+ strh w3, [x0,3296]
ldrh w0, [x2,32]
cmp w0, 17
- bhi .L2618
-.L2616:
+ bhi .L2709
+.L2707:
add x22, x19, :lo12:.LANCHOR2
add x0, x22, 136
bl FtlGcScanTempBlk
str w0, [x29,92]
cmn w0, #1
- beq .L2619
+ beq .L2710
ubfiz x20, x20, 1, 16
ldr x1, [x22,-80]
ldrh w0, [x1,x20]
cmp w0, 4
- bls .L2620
+ bls .L2711
sub w0, w0, #5
strh w0, [x1,x20]
mov w0, 1
bl FtlEctTblFlush
-.L2620:
+.L2711:
add x0, x19, :lo12:.LANCHOR2
ldr w1, [x0,2344]
- cbnz w1, .L2621
+ cbnz w1, .L2712
ldr w1, [x0,432]
add w1, w1, 1
str w1, [x0,432]
@@ -17340,20 +17704,20 @@ FtlGcFreeTempBlock:
lsr w0, w0, 10
bl FtlBbmMapBadBlock
bl FtlBbmTblFlush
-.L2621:
+.L2712:
add x19, x19, :lo12:.LANCHOR2
mov w0, 1
str wzr, [x19,2344]
- b .L2612
-.L2619:
- adrp x0, .LANCHOR1+3168
+ b .L2703
+.L2710:
+ adrp x0, .LANCHOR1+3296
mov w1, 65535
- ldrh w2, [x0,#:lo12:.LANCHOR1+3168]
+ ldrh w2, [x0,#:lo12:.LANCHOR1+3296]
mov w0, 1
cmp w2, w1
- bne .L2612
- b .L2622
-.L2626:
+ bne .L2703
+ b .L2713
+.L2717:
ldr x25, [x20,928]
add x1, x29, 92
umull x24, w22, w26
@@ -17364,7 +17728,7 @@ FtlGcFreeTempBlock:
ldr w0, [x29,92]
ldr w1, [x25,x24]
cmp w0, w1
- bne .L2624
+ bne .L2715
lsr x0, x0, 10
bl P2V_block_in_plane
mov w24, w0
@@ -17373,44 +17737,44 @@ FtlGcFreeTempBlock:
mov w2, 1
bl log2phys
mov w0, w24
-.L2643:
+.L2734:
bl decrement_vpc_count
-.L2625:
+.L2716:
add w22, w22, 1
uxth w22, w22
-.L2623:
+.L2714:
ldrh w0, [x20,920]
cmp w0, w22
- bhi .L2626
- b .L2645
-.L2624:
+ bhi .L2717
+ b .L2736
+.L2715:
ldr w1, [x23,4]
cmp w0, w1
- beq .L2625
+ beq .L2716
ldrh w0, [x20,136]
- b .L2643
-.L2645:
+ b .L2734
+.L2736:
mov w0, -1
bl decrement_vpc_count
add x0, x21, :lo12:.LANCHOR0
- ldrb w0, [x0,120]
- cbz w0, .L2627
- adrp x0, .LC143
+ ldrb w0, [x0,196]
+ cbz w0, .L2718
+ adrp x0, .LC144
ldrh w1, [x20,136]
- add x0, x0, :lo12:.LC143
+ add x0, x0, :lo12:.LC144
bl printk
-.L2627:
+.L2718:
add x0, x19, :lo12:.LANCHOR2
ldr x2, [x19,#:lo12:.LANCHOR2]
ldrh w0, [x0,136]
ubfiz x1, x0, 1, 16
ldrh w1, [x2,x1]
- cbz w1, .L2628
+ cbz w1, .L2719
bl INSERT_DATA_LIST
- b .L2629
-.L2628:
+ b .L2720
+.L2719:
bl INSERT_FREE_LIST
-.L2629:
+.L2720:
add x20, x19, :lo12:.LANCHOR2
mov w22, -1
strh wzr, [x20,920]
@@ -17420,37 +17784,37 @@ FtlGcFreeTempBlock:
bl FtlVpcTblFlush
strh w22, [x20,280]
add x0, x21, :lo12:.LANCHOR0
- ldr w0, [x0,1940]
- cbz w0, .L2630
+ ldr w0, [x0,1948]
+ cbz w0, .L2721
ldr w0, [x20,256]
cmp w0, 39
- bhi .L2630
+ bhi .L2721
ldrh w0, [x20,260]
ldrh w1, [x20,32]
cmp w1, w0
- bcs .L2644
+ bcs .L2735
lsl w0, w0, 1
strh w0, [x20,848]
-.L2644:
+.L2735:
mov w0, 0
- b .L2612
-.L2630:
+ b .L2703
+.L2721:
add x19, x19, :lo12:.LANCHOR2
ldrh w1, [x19,260]
ldrh w0, [x19,32]
add w2, w1, w1, lsl 1
cmp w0, w2, lsr 2
- ble .L2644
+ ble .L2735
add x21, x21, :lo12:.LANCHOR0
- ldrb w0, [x21,120]
- cbz w0, .L2631
+ ldrb w0, [x21,196]
+ cbz w0, .L2722
sub w1, w1, #2
strh w1, [x19,848]
- b .L2644
-.L2631:
+ b .L2735
+.L2722:
mov w1, 20
strh w1, [x19,848]
-.L2612:
+.L2703:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -17472,18 +17836,18 @@ FtlGcPageRecovery:
str x21, [sp,32]
add x21, x19, 136
mov x0, x21
- ldrh w1, [x20,2018]
+ ldrh w1, [x20,2024]
bl FtlGcScanTempBlk
ldrh w1, [x19,138]
- ldrh w0, [x20,2018]
+ ldrh w0, [x20,2024]
cmp w1, w0
- bcc .L2646
+ bcc .L2737
add x0, x19, 2256
bl FtlMapBlkWriteDumpData
mov w0, 0
bl FtlGcFreeTempBlock
str wzr, [x19,2344]
-.L2646:
+.L2737:
ldp x19, x20, [sp,16]
ldr x21, [sp,32]
ldp x29, x30, [sp], 48
@@ -17536,20 +17900,20 @@ FtlSysBlkInit:
add x23, x19, :lo12:.LANCHOR2
strh w1, [x0,290]
strh wzr, [x0,292]
- ldrh w0, [x24,1952]
+ ldrh w0, [x24,1960]
bl FtlFreeSysBlkQueueInit
bl FtlScanSysBlk
ldrh w1, [x23,264]
mov w0, 65535
cmp w1, w0
- bne .L2650
-.L2652:
+ bne .L2741
+.L2743:
mov w22, -1
- b .L2651
-.L2650:
+ b .L2742
+.L2741:
bl FtlLoadSysInfo
mov w22, w0
- cbnz w0, .L2652
+ cbnz w0, .L2743
bl FtlLoadMapInfo
bl FtlLoadVonderInfo
bl Ftl_load_ext_data
@@ -17559,28 +17923,28 @@ FtlSysBlkInit:
bl FtlPowerLostRecovery
mov w0, 1
bl FtlUpdateVaildLpn
- ldrh w2, [x24,2058]
+ ldrh w2, [x24,2062]
mov x1, 0
ldr x0, [x23,184]
-.L2653:
+.L2744:
cmp w1, w2
mov w3, w1
- bge .L2657
+ bge .L2748
add x4, x0, x1, lsl 4
add x1, x1, 1
ldr w4, [x4,4]
- tbz w4, #31, .L2653
-.L2657:
+ tbz w4, #31, .L2744
+.L2748:
add x1, x19, :lo12:.LANCHOR2
cmp w3, w2
ldrh w0, [x1,-36]
add w0, w0, 1
strh w0, [x1,-36]
- blt .L2654
+ blt .L2745
add x20, x20, :lo12:.LANCHOR4
ldrh w0, [x20,292]
- cbz w0, .L2658
-.L2654:
+ cbz w0, .L2749
+.L2745:
add x1, x19, :lo12:.LANCHOR2
ldr x4, [x19,#:lo12:.LANCHOR2]
ldrh w2, [x1,40]
@@ -17593,7 +17957,7 @@ FtlSysBlkInit:
strb wzr, [x1,46]
ldrh w4, [x1,88]
ldr x5, [x19,#:lo12:.LANCHOR2]
- ldrh w2, [x3,2018]
+ ldrh w2, [x3,2024]
lsl x4, x4, 1
strh w2, [x1,42]
strh wzr, [x1,44]
@@ -17602,7 +17966,7 @@ FtlSysBlkInit:
sub w0, w0, w6
strh w0, [x5,x4]
strb wzr, [x1,94]
- ldrh w0, [x3,2018]
+ ldrh w0, [x3,2024]
strh w0, [x1,90]
ldrh w0, [x1,-34]
strh wzr, [x1,92]
@@ -17611,24 +17975,24 @@ FtlSysBlkInit:
bl l2p_flush
bl FtlVpcTblFlush
bl FtlVpcTblFlush
-.L2658:
+.L2749:
add x0, x19, :lo12:.LANCHOR2
ldrh w0, [x0,-36]
and w0, w0, 31
- cbnz w0, .L2659
+ cbnz w0, .L2750
bl FtlVpcCheckAndModify
-.L2659:
+.L2750:
add x19, x19, :lo12:.LANCHOR2
mov w1, 65535
add x21, x19, 40
ldrh w0, [x19,40]
cmp w0, w1
- beq .L2651
+ beq .L2742
ldrh w1, [x19,44]
- cbnz w1, .L2651
+ cbnz w1, .L2742
ldrh w1, [x19,92]
add x20, x19, 88
- cbnz w1, .L2651
+ cbnz w1, .L2742
bl FtlGcRefreshOpenBlock
ldrh w0, [x19,88]
bl FtlGcRefreshOpenBlock
@@ -17637,7 +18001,7 @@ FtlSysBlkInit:
bl allocate_new_data_superblock
mov x0, x20
bl allocate_new_data_superblock
-.L2651:
+.L2742:
mov w0, w22
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -17657,33 +18021,33 @@ FtlLowFormat:
add x19, x21, :lo12:.LANCHOR2
stp x23, x24, [sp,48]
ldr w22, [x19,-96]
- cbnz w22, .L2667
+ cbnz w22, .L2758
adrp x20, .LANCHOR0
ldr x0, [x19,2224]
add x23, x20, :lo12:.LANCHOR0
mov w1, w22
- ldrh w2, [x23,2056]
+ ldrh w2, [x23,2060]
lsl w2, w2, 2
bl ftl_memset
- ldrh w2, [x23,2056]
+ ldrh w2, [x23,2060]
mov w1, w22
ldr x0, [x19,2216]
lsl w2, w2, 2
bl ftl_memset
str w22, [x19,232]
- ldrh w0, [x23,1952]
+ ldrh w0, [x23,1960]
str w22, [x19,236]
bl FtlFreeSysBlkQueueInit
bl FtlLoadBbt
- cbz w0, .L2668
+ cbz w0, .L2759
bl FtlMakeBbt
-.L2668:
+.L2759:
mov w0, 0
-.L2669:
+.L2760:
add x1, x20, :lo12:.LANCHOR0
- ldrh w2, [x1,2024]
+ ldrh w2, [x1,2030]
cmp w0, w2, lsl 7
- bge .L2696
+ bge .L2787
add x3, x21, :lo12:.LANCHOR2
ubfiz x2, x0, 2, 16
mvn w1, w0
@@ -17696,15 +18060,15 @@ FtlLowFormat:
uxth w0, w0
ldr x3, [x3,2112]
str w1, [x3,x2]
- b .L2669
-.L2696:
- ldrh w22, [x1,1956]
+ b .L2760
+.L2787:
+ ldrh w22, [x1,1964]
mov w19, 0
-.L2671:
+.L2762:
add x23, x20, :lo12:.LANCHOR0
- ldrh w0, [x23,1958]
+ ldrh w0, [x23,1966]
cmp w0, w22
- bls .L2697
+ bls .L2788
mov w0, w22
mov w1, 1
add w22, w22, 1
@@ -17712,40 +18076,40 @@ FtlLowFormat:
add w0, w19, w0
uxth w22, w22
uxth w19, w0
- b .L2671
-.L2697:
- ldrh w0, [x23,1948]
+ b .L2762
+.L2788:
+ ldrh w0, [x23,1956]
sub w1, w19, #3
cmp w1, w0, lsl 1
- bge .L2673
-.L2677:
+ bge .L2764
+.L2768:
mov w19, 0
mov w22, w19
- b .L2674
-.L2673:
+ b .L2765
+.L2764:
udiv w19, w19, w0
- ldr w0, [x23,2052]
+ ldr w0, [x23,2056]
add w0, w19, w0
bl FtlSysBlkNumInit
- ldrh w0, [x23,1952]
+ ldrh w0, [x23,1960]
bl FtlFreeSysBlkQueueInit
- ldrh w19, [x23,1956]
-.L2675:
+ ldrh w19, [x23,1964]
+.L2766:
add x0, x20, :lo12:.LANCHOR0
- ldrh w0, [x0,1958]
+ ldrh w0, [x0,1966]
cmp w0, w19
- bls .L2677
+ bls .L2768
mov w0, w19
mov w1, 1
add w19, w19, 1
bl FtlLowFormatEraseBlock
uxth w19, w19
- b .L2675
-.L2674:
+ b .L2766
+.L2765:
add x0, x20, :lo12:.LANCHOR0
- ldrh w1, [x0,1956]
+ ldrh w1, [x0,1964]
cmp w1, w22
- bls .L2698
+ bls .L2789
mov w0, w22
mov w1, 0
add w22, w22, 1
@@ -17753,13 +18117,13 @@ FtlLowFormat:
add w0, w19, w0
uxth w22, w22
uxth w19, w0
- b .L2674
-.L2698:
+ b .L2765
+.L2789:
add x4, x21, :lo12:.LANCHOR2
- ldrh w1, [x0,1958]
- ldrh w2, [x0,1948]
+ ldrh w1, [x0,1966]
+ ldrh w2, [x0,1956]
str w1, [x4,2036]
- ldr w1, [x0,1960]
+ ldr w1, [x0,1968]
udiv w3, w1, w2
str w3, [x0,2096]
ubfx x6, x3, 5, 16
@@ -17768,50 +18132,50 @@ FtlLowFormat:
mov w5, 24
mul w5, w2, w5
cmp w19, w5
- ble .L2679
+ ble .L2770
sub w1, w1, w19
udiv w1, w1, w2
str w1, [x0,2096]
lsr w1, w1, 5
add w1, w1, 24
strh w1, [x4,260]
-.L2679:
+.L2770:
add x0, x20, :lo12:.LANCHOR0
- ldr w0, [x0,1940]
+ ldr w0, [x0,1948]
cmp w0, 1
- bne .L2680
+ bne .L2771
add x1, x21, :lo12:.LANCHOR2
udiv w0, w19, w2
ldrh w4, [x1,260]
add w0, w4, w0
add w0, w4, w0, asr 2
strh w0, [x1,260]
-.L2680:
+.L2771:
add x0, x20, :lo12:.LANCHOR0
- ldrb w0, [x0,120]
- cbz w0, .L2681
+ ldrb w0, [x0,196]
+ cbz w0, .L2772
add x1, x21, :lo12:.LANCHOR2
udiv w0, w19, w2
ldrh w4, [x1,260]
add w0, w4, w0
add w0, w4, w0, asr 2
strh w0, [x1,260]
-.L2681:
+.L2772:
add x5, x20, :lo12:.LANCHOR0
- ldrh w1, [x5,2010]
- cbz w1, .L2683
+ ldrh w1, [x5,2018]
+ cbz w1, .L2774
add x0, x21, :lo12:.LANCHOR2
ldrh w4, [x0,260]
add w4, w4, w1, lsr 1
strh w4, [x0,260]
mul w4, w1, w2
cmp w4, w19
- ble .L2683
+ ble .L2774
add w1, w1, 32
str w3, [x5,2096]
add w1, w6, w1
strh w1, [x0,260]
-.L2683:
+.L2774:
add x19, x21, :lo12:.LANCHOR2
add x22, x20, :lo12:.LANCHOR0
adrp x24, .LANCHOR4
@@ -17822,21 +18186,21 @@ FtlLowFormat:
add x1, x24, :lo12:.LANCHOR4
mul w0, w0, w2
str w0, [x1,216]
- ldrh w1, [x22,2018]
- mul w0, w0, w1
ldrh w1, [x22,2024]
+ mul w0, w0, w1
+ ldrh w1, [x22,2030]
str w0, [x22,2096]
mul w0, w0, w1
- str w0, [x22,2060]
+ str w0, [x22,2064]
bl FtlBbmTblFlush
- ldrh w2, [x22,1958]
+ ldrh w2, [x22,1966]
mov w1, 0
ldr x0, [x21,#:lo12:.LANCHOR2]
add x21, x19, 40
lsl w2, w2, 1
bl ftl_memset
str wzr, [x19,196]
- ldrh w2, [x22,1956]
+ ldrh w2, [x22,1964]
mov w0, 1
strb w0, [x21,8]
mov w1, 255
@@ -17851,19 +18215,19 @@ FtlLowFormat:
strb wzr, [x21,6]
strh wzr, [x19,40]
bl ftl_memset
-.L2685:
+.L2776:
mov x0, x21
bl make_superblock
ldrb w0, [x21,7]
- cbnz w0, .L2686
+ cbnz w0, .L2777
ldrh w1, [x21]
ldr x0, [x19]
strh w23, [x0,x1,lsl 1]
ldrh w0, [x21]
add w0, w0, 1
strh w0, [x21]
- b .L2685
-.L2686:
+ b .L2776
+.L2777:
ldr w0, [x19,232]
mov x20, x19
str w0, [x21,12]
@@ -17881,19 +18245,19 @@ FtlLowFormat:
strh w0, [x19,88]
mov w0, 1
strb w0, [x20,8]
-.L2687:
+.L2778:
mov x0, x20
bl make_superblock
ldrb w0, [x20,7]
- cbnz w0, .L2688
+ cbnz w0, .L2779
ldrh w1, [x20]
ldr x0, [x19]
strh w21, [x0,x1,lsl 1]
ldrh w0, [x20]
add w0, w0, 1
strh w0, [x20]
- b .L2687
-.L2688:
+ b .L2778
+.L2779:
ldr w0, [x19,232]
add x22, x22, :lo12:.LANCHOR4
str w0, [x20,12]
@@ -17917,11 +18281,11 @@ FtlLowFormat:
str w0, [x19,232]
bl FtlVpcTblFlush
bl FtlSysBlkInit
- cbnz w0, .L2667
+ cbnz w0, .L2758
adrp x0, .LANCHOR1+504
mov w1, 1
str w1, [x0,#:lo12:.LANCHOR1+504]
-.L2667:
+.L2758:
mov w0, 0
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -17938,25 +18302,25 @@ FtlReInitForSDUpdata:
stp x19, x20, [sp,16]
adrp x19, .LANCHOR0
add x0, x19, :lo12:.LANCHOR0
- ldrb w0, [x0,120]
- cbz w0, .L2700
-.L2702:
+ ldrb w0, [x0,196]
+ cbz w0, .L2791
+.L2793:
mov w0, 0
- b .L2701
-.L2700:
+ b .L2792
+.L2791:
adrp x20, .LANCHOR4
add x0, x20, :lo12:.LANCHOR4
ldr x0, [x0,48]
bl FlashInit
- cbnz w0, .L2702
+ cbnz w0, .L2793
bl FlashLoadFactorBbt
- cbz w0, .L2703
+ cbz w0, .L2794
bl FlashMakeFactorBbt
-.L2703:
+.L2794:
add x20, x20, :lo12:.LANCHOR4
ldr x0, [x20,104]
bl FlashReadIdbDataRaw
- cbz w0, .L2704
+ cbz w0, .L2795
mov w1, 0
mov w2, 16
add x0, x29, 32
@@ -17965,39 +18329,39 @@ FtlReInitForSDUpdata:
ldr w2, [x29,32]
mov w1, w0
mov w4, 1
-.L2706:
+.L2797:
lsl w3, w4, w1
add w1, w1, 1
tst w3, w2
cset w3, ne
cmp w1, 16
add w0, w0, w3
- bne .L2706
+ bne .L2797
cmp w0, 6
- bhi .L2707
+ bhi .L2798
add x0, x19, :lo12:.LANCHOR0
- b .L2729
-.L2707:
+ b .L2820
+.L2798:
mov w1, 0
mov w4, 1
-.L2710:
+.L2801:
lsl w3, w4, w1
add w1, w1, 1
tst w3, w2
cset w3, ne
cmp w1, 24
add w0, w0, w3
- bne .L2710
+ bne .L2801
cmp w0, 17
add x0, x19, :lo12:.LANCHOR0
- bls .L2729
+ bls .L2820
mov w1, 36
-.L2729:
+.L2820:
strb w1, [x0,9]
add x0, x19, :lo12:.LANCHOR0
ldrb w1, [x0,9]
strh w1, [x0,194]
-.L2704:
+.L2795:
adrp x0, .LC75
adrp x1, .LC76
add x1, x1, :lo12:.LC76
@@ -18007,28 +18371,28 @@ FtlReInitForSDUpdata:
add x0, x19, 168
bl FtlConstantsInit
bl FtlVariablesInit
- ldrh w0, [x19,1952]
+ ldrh w0, [x19,1960]
mov w19, 1
bl FtlFreeSysBlkQueueInit
-.L2712:
+.L2803:
bl FtlLoadBbt
- cbz w0, .L2713
-.L2731:
+ cbz w0, .L2804
+.L2822:
bl FtlLowFormat
cmp w19, 3
- bhi .L2732
+ bhi .L2823
add w19, w19, 1
- b .L2712
-.L2732:
+ b .L2803
+.L2823:
mov w0, -1
- b .L2701
-.L2713:
+ b .L2792
+.L2804:
bl FtlSysBlkInit
- cbnz w0, .L2731
+ cbnz w0, .L2822
adrp x1, .LANCHOR1+504
mov w2, 1
str w2, [x1,#:lo12:.LANCHOR1+504]
-.L2701:
+.L2792:
ldp x19, x20, [sp,16]
ldp x29, x30, [sp], 48
ret
@@ -18044,19 +18408,19 @@ Ftl_gc_temp_data_write_back:
add x0, x21, :lo12:.LANCHOR2
stp x19, x20, [sp,16]
ldr w1, [x0,-96]
- cbz w1, .L2734
-.L2737:
+ cbz w1, .L2825
+.L2828:
mov w0, 0
- b .L2735
-.L2734:
- adrp x1, .LANCHOR0+120
- ldrb w1, [x1,#:lo12:.LANCHOR0+120]
- cbz w1, .L2736
+ b .L2826
+.L2825:
+ adrp x1, .LANCHOR0+196
+ ldrb w1, [x1,#:lo12:.LANCHOR0+196]
+ cbz w1, .L2827
ldr w1, [x0,864]
- tbz x1, 0, .L2736
+ tbz x1, 0, .L2827
ldrh w0, [x0,140]
- cbnz w0, .L2737
-.L2736:
+ cbnz w0, .L2828
+.L2827:
add x1, x21, :lo12:.LANCHOR2
mov w2, 0
mov w3, w2
@@ -18065,17 +18429,17 @@ Ftl_gc_temp_data_write_back:
ldr x0, [x1,2056]
ldr w1, [x1,864]
bl FlashProgPages
-.L2738:
+.L2829:
add x19, x21, :lo12:.LANCHOR2
ldr w1, [x19,864]
cmp w20, w1
- bcs .L2748
+ bcs .L2839
umull x0, w20, w22
ldr x2, [x19,2056]
add x1, x2, x0
ldr w2, [x2,x0]
cmn w2, #1
- bne .L2739
+ bne .L2830
ldrh w3, [x19,136]
ldr x1, [x19]
strh wzr, [x1,x3,lsl 1]
@@ -18090,8 +18454,8 @@ Ftl_gc_temp_data_write_back:
bl FtlBbmMapBadBlock
bl FtlBbmTblFlush
bl FtlGcPageVarInit
- b .L2747
-.L2739:
+ b .L2838
+.L2830:
ldr x2, [x1,16]
add w20, w20, 1
ldr w1, [x1,4]
@@ -18099,18 +18463,18 @@ Ftl_gc_temp_data_write_back:
ldr w0, [x2,12]
ldr w2, [x2,8]
bl FtlGcUpdatePage
- b .L2738
-.L2748:
+ b .L2829
+.L2839:
ldr x0, [x19,2056]
bl FtlGcBufFree
str wzr, [x19,864]
ldrh w0, [x19,140]
- cbnz w0, .L2737
+ cbnz w0, .L2828
mov w0, 1
bl FtlGcFreeTempBlock
-.L2747:
+.L2838:
mov w0, 1
-.L2735:
+.L2826:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x29, x30, [sp], 48
@@ -18129,10 +18493,10 @@ Ftl_get_new_temp_ppa:
ldrh w2, [x0,136]
mov w0, 65535
cmp w2, w0
- beq .L2750
+ beq .L2841
ldrh w0, [x1,4]
- cbnz w0, .L2751
-.L2750:
+ cbnz w0, .L2842
+.L2841:
bl FtlCacheWriteBack
add x20, x19, :lo12:.LANCHOR2
mov w0, 0
@@ -18146,7 +18510,7 @@ Ftl_get_new_temp_ppa:
mov w0, 0
bl FtlEctTblFlush
bl FtlVpcTblFlush
-.L2751:
+.L2842:
add x0, x19, :lo12:.LANCHOR2
add x0, x0, 136
bl get_new_active_ppa
@@ -18169,69 +18533,69 @@ ftl_do_gc:
stp x25, x26, [sp,64]
stp x27, x28, [sp,80]
ldr w4, [x3,-96]
- cbnz w4, .L2897
+ cbnz w4, .L2988
ldr w4, [x3,2024]
- cbnz w4, .L2897
+ cbnz w4, .L2988
ldrh w4, [x3,16]
cmp w4, 47
- bls .L2897
+ bls .L2988
mov w23, w0
- adrp x0, .LANCHOR1+3168
+ adrp x0, .LANCHOR1+3296
mov w22, w1
- ldrh w1, [x0,#:lo12:.LANCHOR1+3168]
+ ldrh w1, [x0,#:lo12:.LANCHOR1+3296]
mov w0, 65535
cmp w1, w0
- bne .L2754
-.L2757:
+ bne .L2845
+.L2848:
add x0, x19, :lo12:.LANCHOR2
mov w2, 65535
ldrh w4, [x0,938]
cmp w4, w2
- bne .L2755
- b .L2756
-.L2754:
+ bne .L2846
+ b .L2847
+.L2845:
ldrh w1, [x3,136]
cmp w1, w0
- beq .L2757
+ beq .L2848
mov w0, 1
bl FtlGcFreeTempBlock
mov w2, 1
- cbz w0, .L2757
- b .L2897
-.L2755:
+ cbz w0, .L2848
+ b .L2988
+.L2846:
ldrh w1, [x0,936]
cmp w1, w2
- bne .L2756
+ bne .L2847
ldrh w3, [x0,940]
cmp w3, w1
- beq .L2756
+ beq .L2847
ldrh w2, [x0,942]
cmp w2, w1
- beq .L2756
+ beq .L2847
mov w1, -1
strh w4, [x0,936]
strh w3, [x0,938]
strh w2, [x0,940]
strh w1, [x0,942]
-.L2756:
+.L2847:
add x1, x19, :lo12:.LANCHOR2
cmp w23, 1
ldr w0, [x1,852]
add w0, w0, 1
add w0, w0, w23, lsl 7
str w0, [x1,852]
- bne .L2768
+ bne .L2859
adrp x25, .LANCHOR0
add x1, x25, :lo12:.LANCHOR0
- ldr w2, [x1,1940]
- cbnz w2, .L2759
- ldrb w1, [x1,120]
- cbz w1, .L2768
-.L2759:
+ ldr w2, [x1,1948]
+ cbnz w2, .L2850
+ ldrb w1, [x1,196]
+ cbz w1, .L2859
+.L2850:
add x20, x19, :lo12:.LANCHOR2
ldr w1, [x20,256]
cmp w1, 39
- bhi .L2768
+ bhi .L2859
adrp x21, .LANCHOR4
add x1, x21, :lo12:.LANCHOR4
ldrh w1, [x1,432]
@@ -18241,17 +18605,17 @@ ftl_do_gc:
ldrh w0, [x20,280]
mov w1, 65535
cmp w0, w1
- bne .L2768
+ bne .L2859
ldrh w1, [x20,936]
cmp w1, w0
- bne .L2768
+ bne .L2859
ldr w0, [x20,852]
cmp w0, 1024
- bhi .L2760
+ bhi .L2851
ldrh w0, [x20,32]
cmp w0, 63
- bhi .L2768
-.L2760:
+ bhi .L2859
+.L2851:
add x0, x19, :lo12:.LANCHOR2
add x1, x21, :lo12:.LANCHOR4
ldrh w2, [x0,850]
@@ -18259,39 +18623,39 @@ ftl_do_gc:
add w2, w2, 64
strh wzr, [x1,432]
cmp w3, w2
- bgt .L2768
+ bgt .L2859
str wzr, [x0,852]
ldr w0, [x0,256]
- cbnz w0, .L2761
+ cbnz w0, .L2852
mov w0, 6
- b .L2919
-.L2761:
+ b .L3010
+.L2852:
cmp w0, 5
- bhi .L2762
+ bhi .L2853
mov w0, 18
-.L2919:
+.L3010:
strh w0, [x1,432]
-.L2762:
+.L2853:
mov w0, 32
bl List_get_gc_head_node
uxth w26, w0
mov w3, 65535
cmp w26, w3
- beq .L2767
+ beq .L2858
add x24, x19, :lo12:.LANCHOR2
adrp x27, .LANCHOR2
ldrh w0, [x24,856]
- cbz w0, .L2764
+ cbz w0, .L2855
add x25, x25, :lo12:.LANCHOR0
ldr x28, [x27,#:lo12:.LANCHOR2]
ubfiz x26, x26, 1, 16
- ldrh w1, [x25,2020]
- ldrh w4, [x25,1948]
+ ldrh w1, [x25,2026]
+ ldrh w4, [x25,1956]
ldrh w2, [x28,x26]
mul w1, w1, w4
add w1, w1, 1
cmp w2, w1
- bgt .L2767
+ bgt .L2858
add w1, w0, 1
str x3, [x29,112]
str wzr, [x24,860]
@@ -18303,166 +18667,166 @@ ftl_do_gc:
ldr x3, [x29,112]
ldr x1, [x29,120]
cmp w20, w3
- beq .L2767
+ beq .L2858
ubfiz x25, x20, 1, 16
- adrp x0, .LC144
+ adrp x0, .LC145
ldrh w4, [x28,x26]
- add x0, x0, :lo12:.LC144
+ add x0, x0, :lo12:.LC145
mov w2, w20
ldrh w3, [x28,x25]
bl printk
ldrh w0, [x24,856]
cmp w0, 40
- bls .L2765
+ bls .L2856
ldr x0, [x27,#:lo12:.LANCHOR2]
ldrh w0, [x0,x25]
cmp w0, 32
- bls .L2765
+ bls .L2856
strh wzr, [x24,856]
-.L2765:
+.L2856:
add x21, x21, :lo12:.LANCHOR4
mov w0, 6
strh w0, [x21,432]
- b .L2769
-.L2764:
+ b .L2860
+.L2855:
mov w0, 1
strh w0, [x24,856]
-.L2767:
+.L2858:
bl GetSwlReplaceBlock
uxth w20, w0
mov w0, 65535
cmp w20, w0
- bne .L2769
+ bne .L2860
add x21, x21, :lo12:.LANCHOR4
strh wzr, [x21,432]
-.L2768:
+.L2859:
add x21, x19, :lo12:.LANCHOR2
mov w0, 65535
ldrh w20, [x21,280]
cmp w20, w0
- bne .L2923
+ bne .L3014
ldrh w0, [x21,136]
cmp w0, w20
- beq .L2924
-.L2769:
+ beq .L3015
+.L2860:
mov w0, 65535
cmp w20, w0
add x0, x19, :lo12:.LANCHOR2
cset w2, eq
- cbz w2, .L2782
- cbnz w23, .L2782
+ cbz w2, .L2873
+ cbnz w23, .L2873
ldrh w1, [x0,32]
mov w21, 1
cmp w1, 24
- bhi .L2783
+ bhi .L2874
adrp x0, .LANCHOR0
cmp w1, 16
add x0, x0, :lo12:.LANCHOR0
- ldrh w21, [x0,2018]
- bls .L2784
+ ldrh w21, [x0,2024]
+ bls .L2875
lsr w21, w21, 5
- b .L2783
-.L2784:
+ b .L2874
+.L2875:
cmp w1, 12
- bls .L2785
+ bls .L2876
lsr w21, w21, 4
- b .L2783
-.L2785:
+ b .L2874
+.L2876:
cmp w1, 8
- bls .L2783
+ bls .L2874
lsr w21, w21, 2
-.L2783:
+.L2874:
add x0, x19, :lo12:.LANCHOR2
ldrh w2, [x0,848]
cmp w2, w1
- bcs .L2787
+ bcs .L2878
ldrh w1, [x0,136]
mov w2, 65535
cmp w1, w2
- bne .L2788
+ bne .L2879
ldrh w2, [x0,936]
cmp w2, w1
- bne .L2788
+ bne .L2879
adrp x1, .LANCHOR4+432
ldrh w2, [x1,#:lo12:.LANCHOR4+432]
- cbnz w2, .L2789
+ cbnz w2, .L2880
adrp x1, .LANCHOR0+2096
ldr w3, [x0,196]
ldr w1, [x1,#:lo12:.LANCHOR0+2096]
add w1, w1, w1, lsl 1
cmp w3, w1, lsr 2
- bcs .L2790
-.L2789:
+ bcs .L2881
+.L2880:
add x1, x19, :lo12:.LANCHOR2
ldrh w0, [x1,260]
add w0, w0, w0, lsl 1
asr w0, w0, 2
strh w0, [x1,848]
- b .L2791
-.L2790:
+ b .L2882
+.L2881:
mov w1, 18
strh w1, [x0,848]
-.L2791:
+.L2882:
add x19, x19, :lo12:.LANCHOR2
str wzr, [x19,860]
- b .L2897
-.L2788:
+ b .L2988
+.L2879:
add x1, x19, :lo12:.LANCHOR2
ldrh w0, [x1,260]
add w0, w0, w0, lsl 1
asr w0, w0, 2
strh w0, [x1,848]
-.L2787:
+.L2878:
cmp w22, 2
- bhi .L2852
- adrp x0, .LANCHOR0+1940
- ldr w0, [x0,#:lo12:.LANCHOR0+1940]
- cbz w0, .L2852
+ bhi .L2943
+ adrp x0, .LANCHOR0+1948
+ ldr w0, [x0,#:lo12:.LANCHOR0+1948]
+ cbz w0, .L2943
add w21, w21, 1
uxth w21, w21
- b .L2852
-.L2782:
+ b .L2943
+.L2873:
ldrh w1, [x0,136]
mov w3, 65535
cmp w1, w3
- bne .L2794
- cbz w2, .L2794
+ bne .L2885
+ cbz w2, .L2885
ldrh w2, [x0,936]
cmp w2, w1
- bne .L2794
+ bne .L2885
ldrh w2, [x0,280]
cmp w2, w1
- beq .L2795
-.L2800:
+ beq .L2886
+.L2891:
mov w20, 65535
- b .L2794
-.L2795:
+ b .L2885
+.L2886:
ldrh w2, [x0,32]
adrp x20, .LANCHOR4
ldrh w1, [x0,848]
str wzr, [x0,860]
cmp w2, w1
- bls .L2796
+ bls .L2887
add x1, x20, :lo12:.LANCHOR4
ldrh w1, [x1,432]
- cbnz w1, .L2797
+ cbnz w1, .L2888
adrp x1, .LANCHOR0+2096
ldr w2, [x0,196]
ldr w1, [x1,#:lo12:.LANCHOR0+2096]
add w1, w1, w1, lsl 1
cmp w2, w1, lsr 2
- bcs .L2798
-.L2797:
+ bcs .L2889
+.L2888:
add x1, x19, :lo12:.LANCHOR2
ldrh w0, [x1,260]
add w0, w0, w0, lsl 1
asr w0, w0, 2
strh w0, [x1,848]
- b .L2799
-.L2798:
+ b .L2890
+.L2889:
mov w1, 18
strh w1, [x0,848]
-.L2799:
+.L2890:
bl FtlReadRefresh
mov w0, 0
bl List_get_gc_head_node
@@ -18470,14 +18834,14 @@ ftl_do_gc:
ldr x1, [x19,#:lo12:.LANCHOR2]
ldrh w0, [x1,x0]
cmp w0, 4
- bls .L2796
+ bls .L2887
add x20, x20, :lo12:.LANCHOR4
ldrh w2, [x20,432]
- b .L2897
-.L2796:
+ b .L2988
+.L2887:
add x21, x20, :lo12:.LANCHOR4
ldrh w0, [x21,432]
- cbnz w0, .L2800
+ cbnz w0, .L2891
add x22, x19, :lo12:.LANCHOR2
ldrh w20, [x22,260]
add w1, w20, w20, lsl 1
@@ -18489,91 +18853,91 @@ ftl_do_gc:
ldrh w2, [x1,x0]
adrp x1, .LANCHOR0
add x1, x1, :lo12:.LANCHOR0
- ldrh w0, [x1,2020]
- ldrh w1, [x1,1948]
+ ldrh w0, [x1,2026]
+ ldrh w1, [x1,1956]
mul w0, w0, w1
mov w1, 2
sdiv w0, w0, w1
cmp w2, w0
- ble .L2801
+ ble .L2892
ldrh w0, [x22,32]
sub w20, w20, #1
cmp w0, w20
- blt .L2801
+ blt .L2892
bl FtlReadRefresh
ldrh w2, [x21,432]
- b .L2897
-.L2801:
- cbnz w2, .L2800
+ b .L2988
+.L2892:
+ cbnz w2, .L2891
mov w0, -1
add x19, x19, :lo12:.LANCHOR2
bl decrement_vpc_count
ldrh w2, [x19,32]
add w2, w2, 1
- b .L2897
-.L2794:
- adrp x0, .LANCHOR0+1940
+ b .L2988
+.L2885:
+ adrp x0, .LANCHOR0+1948
mov w21, 2
- ldr w0, [x0,#:lo12:.LANCHOR0+1940]
+ ldr w0, [x0,#:lo12:.LANCHOR0+1948]
cmp w0, wzr
csinc w21, w21, wzr, ne
- b .L2793
-.L2852:
+ b .L2884
+.L2943:
mov w20, 65535
-.L2793:
+.L2884:
add x0, x19, :lo12:.LANCHOR2
mov w2, 65535
ldrh w1, [x0,280]
cmp w1, w2
- bne .L2803
+ bne .L2894
cmp w20, w1
- beq .L2804
+ beq .L2895
strh w20, [x0,280]
- b .L2805
-.L2804:
+ b .L2896
+.L2895:
ldrh w1, [x0,936]
cmp w1, w20
- beq .L2805
+ beq .L2896
adrp x2, .LANCHOR2
ubfiz x1, x1, 1, 16
ldr x2, [x2,#:lo12:.LANCHOR2]
ldrh w1, [x2,x1]
- cbnz w1, .L2806
+ cbnz w1, .L2897
mov w1, -1
strh w1, [x0,936]
-.L2806:
+.L2897:
add x0, x19, :lo12:.LANCHOR2
ldrh w1, [x0,936]
strh w1, [x0,280]
mov w1, -1
strh w1, [x0,936]
-.L2805:
+.L2896:
add x22, x19, :lo12:.LANCHOR2
mov w1, 65535
ldrh w0, [x22,280]
strb wzr, [x22,288]
cmp w0, w1
- beq .L2803
+ beq .L2894
bl IsBlkInGcList
- cbz w0, .L2808
+ cbz w0, .L2899
mov w0, -1
strh w0, [x22,280]
-.L2808:
- adrp x0, .LANCHOR0+120
- ldrb w0, [x0,#:lo12:.LANCHOR0+120]
- cbz w0, .L2809
+.L2899:
+ adrp x0, .LANCHOR0+196
+ ldrb w0, [x0,#:lo12:.LANCHOR0+196]
+ cbz w0, .L2900
add x0, x19, :lo12:.LANCHOR2
add x22, x0, 280
ldrh w0, [x0,280]
bl ftl_get_blk_mode
strb w0, [x22,8]
-.L2809:
+.L2900:
add x22, x19, :lo12:.LANCHOR2
mov w0, 65535
add x24, x22, 280
ldrh w1, [x22,280]
cmp w1, w0
- beq .L2803
+ beq .L2894
mov x0, x24
bl make_superblock
strh wzr, [x22,282]
@@ -18586,120 +18950,122 @@ ftl_do_gc:
strh wzr, [x0,434]
ldrh w1, [x1,x2,lsl 1]
strh w1, [x0,436]
-.L2803:
+.L2894:
add x6, x19, :lo12:.LANCHOR2
ldrh w0, [x6,280]
ldrh w1, [x6,40]
cmp w1, w0
- beq .L2810
+ beq .L2901
ldrh w1, [x6,88]
cmp w1, w0
- beq .L2810
-.L2811:
- adrp x0, .LC146
+ beq .L2901
+.L2902:
+ adrp x0, .LC147
mov x28, x6
- add x0, x0, :lo12:.LC146
+ add x0, x0, :lo12:.LC147
mov w24, 65535
str x0, [x29,120]
- b .L2812
-.L2810:
+ b .L2903
+.L2901:
add x19, x19, :lo12:.LANCHOR2
mov w0, -1
strh w0, [x19,280]
- b .L2922
-.L2833:
+ b .L3013
+.L2924:
ldrh w0, [x28,282]
add w21, w21, w0
uxth w21, w21
strh w21, [x28,282]
cmp w21, w25
- bcs .L2925
-.L2835:
+ bcs .L3016
+.L2926:
ldrh w0, [x28,32]
cmp w0, 2
- bhi .L2838
+ bhi .L2929
adrp x0, .LANCHOR0
add x0, x0, :lo12:.LANCHOR0
- ldrh w21, [x0,2018]
-.L2812:
+ ldrh w21, [x0,2024]
+.L2903:
ldrh w0, [x28,280]
cmp w0, w24
- bne .L2813
+ bne .L2904
str wzr, [x28,860]
mov w25, 2
-.L2814:
+.L2905:
ldrh w22, [x28,856]
mov w0, w22
bl List_get_gc_head_node
uxth w26, w0
cmp w26, w24
strh w26, [x28,280]
- bne .L2815
+ bne .L2906
strh wzr, [x28,856]
mov w2, 8
- b .L2897
-.L2815:
+ b .L2988
+.L2906:
mov w0, w26
add w22, w22, 1
bl IsBlkInGcList
- cbz w0, .L2816
+ cbz w0, .L2907
strh w22, [x28,856]
- b .L2814
-.L2816:
+ b .L2905
+.L2907:
adrp x0, .LANCHOR0
ubfiz x1, x26, 1, 16
add x4, x0, :lo12:.LANCHOR0
ldr x2, [x28]
uxth w22, w22
strh w22, [x28,856]
- ldrh w0, [x4,2018]
- ldrh w4, [x4,1948]
+ ldrh w0, [x4,2024]
+ ldrh w4, [x4,1956]
ldrh w3, [x2,x1]
mul w0, w0, w4
sdiv w4, w0, w25
cmp w3, w4
- bgt .L2818
+ bgt .L2909
cmp w3, 8
- bls .L2819
+ bls .L2910
cmp w22, 48
- bls .L2819
+ bls .L2910
ldrh w3, [x28,908]
cmp w3, 35
- bhi .L2819
-.L2818:
+ bhi .L2910
+.L2909:
strh wzr, [x28,856]
-.L2819:
+.L2910:
+ cmp w20, w24
ldrh w1, [x2,x1]
+ bne .L2911
cmp w1, w0
- blt .L2820
- cmp w20, w24
- bne .L2820
- add x19, x19, :lo12:.LANCHOR2
+ blt .L2911
+ ldrh w0, [x28,856]
+ cmp w0, 3
+ bhi .L2911
mov w0, -1
- strh wzr, [x19,856]
- strh w0, [x19,280]
-.L2922:
+ strh wzr, [x28,856]
+ strh w0, [x28,280]
+.L3013:
adrp x0, .LANCHOR4+432
ldrh w2, [x0,#:lo12:.LANCHOR4+432]
- b .L2897
-.L2820:
- cbnz w1, .L2821
+ b .L2988
+.L2911:
+ cbnz w1, .L2912
mov w0, -1
bl decrement_vpc_count
ldrh w0, [x28,856]
add w0, w0, 1
strh w0, [x28,856]
- b .L2814
-.L2821:
+ b .L2905
+.L2912:
adrp x0, .LANCHOR0
strb wzr, [x28,288]
add x0, x0, :lo12:.LANCHOR0
- ldrb w0, [x0,120]
- cbz w0, .L2822
+ ldrb w0, [x0,196]
+ cbz w0, .L2913
mov w0, w26
bl ftl_get_blk_mode
strb w0, [x28,288]
-.L2822:
+.L2913:
add x22, x28, 280
mov x0, x22
bl make_superblock
@@ -18712,49 +19078,49 @@ ftl_do_gc:
strh w0, [x1,436]
strh wzr, [x28,282]
strb wzr, [x28,286]
-.L2813:
+.L2904:
cmp w23, 1
- bne .L2823
+ bne .L2914
bl FtlReadRefresh
-.L2823:
+.L2914:
mov w0, 1
str w0, [x28,2024]
adrp x0, .LANCHOR0
add x0, x0, :lo12:.LANCHOR0
- ldrb w1, [x0,120]
- ldrh w25, [x0,2018]
- cbz w1, .L2824
+ ldrb w1, [x0,196]
+ ldrh w25, [x0,2024]
+ cbz w1, .L2915
ldrb w1, [x28,288]
cmp w1, 1
- bne .L2824
- ldrh w25, [x0,2020]
-.L2824:
+ bne .L2915
+ ldrh w25, [x0,2026]
+.L2915:
ldrh w0, [x28,282]
add w1, w0, w21
cmp w1, w25
- ble .L2825
+ ble .L2916
sub w21, w25, w0
uxth w21, w21
-.L2825:
+.L2916:
mov w26, 0
-.L2826:
+.L2917:
cmp w21, w26, uxth
- bls .L2833
+ bls .L2924
adrp x0, .LANCHOR0
add x1, x28, 280
add x0, x0, :lo12:.LANCHOR0
ldrh w3, [x1,2]
add w3, w3, w26
- ldrh w5, [x0,1948]
+ ldrh w5, [x0,1956]
mov x0, 0
mov w22, w0
-.L2834:
+.L2925:
cmp w5, w0, uxth
- bls .L2926
+ bls .L3017
add x2, x1, x0, lsl 1
ldrh w2, [x2,16]
cmp w2, w24
- beq .L2827
+ beq .L2918
mov w4, 56
ldr x7, [x28,896]
orr w2, w3, w2, lsl 10
@@ -18763,18 +19129,18 @@ ftl_do_gc:
add x4, x7, x4
uxth w22, w22
str w2, [x4,4]
-.L2827:
+.L2918:
add x0, x0, 1
- b .L2834
-.L2926:
+ b .L2925
+.L3017:
ldr x0, [x28,896]
mov w1, w22
ldrb w2, [x28,288]
mov x27, 0
bl FlashReadPages
-.L2829:
+.L2920:
cmp w22, w27, uxth
- bls .L2927
+ bls .L3018
mov x0, 56
mul x4, x27, x0
ldr x0, [x28,896]
@@ -18782,11 +19148,11 @@ ftl_do_gc:
ldr w0, [x0,x4]
cmn w0, #1
ldr x3, [x1,16]
- beq .L2854
+ beq .L2945
ldrh w0, [x3]
mov w1, 61589
cmp w0, w1
- bne .L2854
+ bne .L2945
ldr w0, [x3,8]
add x1, x29, 140
mov w2, 0
@@ -18801,7 +19167,7 @@ ftl_do_gc:
and w0, w0, 2147483647
ldr w1, [x2,4]
cmp w0, w1
- bne .L2854
+ bne .L2945
adrp x0, .LANCHOR4
str x3, [x29,104]
add x1, x0, :lo12:.LANCHOR4
@@ -18848,49 +19214,49 @@ ftl_do_gc:
bl FtlGcBufAlloc
adrp x0, .LANCHOR0
add x0, x0, :lo12:.LANCHOR0
- ldrb w0, [x0,120]
- cbnz w0, .L2831
+ ldrb w0, [x0,196]
+ cbnz w0, .L2922
ldr x2, [x29,112]
ldr w1, [x28,864]
ldrb w0, [x2,7]
cmp w1, w0
- beq .L2831
+ beq .L2922
ldrh w0, [x2,4]
- cbnz w0, .L2854
-.L2831:
+ cbnz w0, .L2945
+.L2922:
bl Ftl_gc_temp_data_write_back
- cbz w0, .L2854
+ cbz w0, .L2945
adrp x0, .LANCHOR4
add x19, x19, :lo12:.LANCHOR2
add x0, x0, :lo12:.LANCHOR4
str wzr, [x19,2024]
ldrh w2, [x0,432]
- b .L2897
-.L2854:
+ b .L2988
+.L2945:
add x27, x27, 1
- b .L2829
-.L2927:
+ b .L2920
+.L3018:
add w26, w26, 1
- b .L2826
-.L2925:
+ b .L2917
+.L3016:
ldr w0, [x28,864]
adrp x21, .LANCHOR4
- cbz w0, .L2836
+ cbz w0, .L2927
bl Ftl_gc_temp_data_write_back
- cbz w0, .L2836
+ cbz w0, .L2927
add x5, x21, :lo12:.LANCHOR4
str wzr, [x28,2024]
ldrh w2, [x5,432]
- b .L2897
-.L2836:
+ b .L2988
+.L2927:
add x5, x21, :lo12:.LANCHOR4
ldrh w21, [x5,434]
- cbnz w21, .L2837
+ cbnz w21, .L2928
ldrh w1, [x28,280]
ldr x3, [x28]
ubfiz x0, x1, 1, 16
ldrh w4, [x3,x0]
- cbz w4, .L2837
+ cbz w4, .L2928
ldrh w2, [x28,282]
mov w3, w21
ldrh w5, [x5,436]
@@ -18904,21 +19270,21 @@ ftl_do_gc:
bl FtlCacheWriteBack
bl l2p_flush
bl FtlVpcTblFlush
-.L2837:
+.L2928:
mov w0, -1
strh w0, [x28,280]
- b .L2835
-.L2838:
+ b .L2926
+.L2929:
adrp x1, .LANCHOR4+432
str wzr, [x28,2024]
ldrh w2, [x1,#:lo12:.LANCHOR4+432]
cmp w2, wzr
csinc w2, w2, w0, ne
- b .L2897
-.L2924:
+ b .L2988
+.L3015:
ldrh w24, [x21,936]
cmp w24, w20
- bne .L2769
+ bne .L2860
ldrh w0, [x21,32]
mov w2, 1024
ldr w1, [x21,852]
@@ -18926,44 +19292,44 @@ ftl_do_gc:
mov w0, 5120
csel w0, w0, w2, cc
cmp w1, w0
- bls .L2769
+ bls .L2860
adrp x0, .LANCHOR4+432
str wzr, [x21,852]
strh wzr, [x0,#:lo12:.LANCHOR4+432]
bl GetSwlReplaceBlock
uxth w20, w0
cmp w20, w24
- bne .L2771
+ bne .L2862
ldrh w1, [x21,32]
ldrh w0, [x21,850]
cmp w1, w0
- bcs .L2772
+ bcs .L2863
mov w0, 64
bl List_get_gc_head_node
uxth w0, w0
cmp w0, w20
- beq .L2781
+ beq .L2872
ldr w2, [x21,2020]
adrp x24, .LANCHOR0
uxtw x1, w0
- cbnz w2, .L2774
+ cbnz w2, .L2865
add x0, x24, :lo12:.LANCHOR0
- ldrh w2, [x0,1968]
+ ldrh w2, [x0,1976]
cmp w2, 3
- beq .L2774
+ beq .L2865
ldr w2, [x21,328]
- cbnz w2, .L2774
- ldr w2, [x0,1940]
- cbnz w2, .L2774
- ldrb w0, [x0,120]
- cbz w0, .L2775
-.L2774:
+ cbnz w2, .L2865
+ ldr w2, [x0,1948]
+ cbnz w2, .L2865
+ ldrb w0, [x0,196]
+ cbz w0, .L2866
+.L2865:
add x3, x24, :lo12:.LANCHOR0
ldr x0, [x19,#:lo12:.LANCHOR2]
ldrh w4, [x0,x1,lsl 1]
- ldrh w1, [x3,2020]
- ldrh w0, [x3,1948]
- ldrh w3, [x3,1968]
+ ldrh w1, [x3,2026]
+ ldrh w0, [x3,1956]
+ ldrh w3, [x3,1976]
mul w2, w1, w0
cmp w3, 3
mov w0, 0
@@ -18971,7 +19337,7 @@ ftl_do_gc:
csel w0, w1, w0, eq
add w0, w2, w0
cmp w4, w0
- bgt .L2777
+ bgt .L2868
mov w0, 0
add x24, x24, :lo12:.LANCHOR0
bl List_get_gc_head_node
@@ -18981,50 +19347,50 @@ ftl_do_gc:
ldr w2, [x1,196]
add w0, w0, w0, lsl 1
cmp w2, w0, lsr 2
- bls .L2778
+ bls .L2869
mov w0, 128
- b .L2920
-.L2778:
+ b .L3011
+.L2869:
mov w0, 160
-.L2920:
+.L3011:
strh w0, [x1,850]
- b .L2779
-.L2777:
+ b .L2870
+.L2868:
add x0, x19, :lo12:.LANCHOR2
mov w1, 128
- b .L2921
-.L2775:
+ b .L3012
+.L2866:
adrp x2, .LANCHOR2
ldr x2, [x2,#:lo12:.LANCHOR2]
ldrh w1, [x2,x1,lsl 1]
cmp w1, 7
- bhi .L2780
+ bhi .L2871
bl List_get_gc_head_node
uxth w20, w0
add x0, x19, :lo12:.LANCHOR2
mov w1, 128
strh w1, [x0,850]
- b .L2779
-.L2780:
+ b .L2870
+.L2871:
add x0, x19, :lo12:.LANCHOR2
mov w1, 64
-.L2921:
+.L3012:
strh w1, [x0,850]
- b .L2781
-.L2772:
+ b .L2872
+.L2863:
mov w0, 80
strh w0, [x21,850]
- b .L2781
-.L2779:
+ b .L2872
+.L2870:
mov w0, 65535
cmp w20, w0
- beq .L2781
-.L2771:
+ beq .L2872
+.L2862:
add x5, x19, :lo12:.LANCHOR2
ubfiz x4, x20, 1, 32
ldr x3, [x19,#:lo12:.LANCHOR2]
- adrp x0, .LC145
- add x0, x0, :lo12:.LC145
+ adrp x0, .LC146
+ add x0, x0, :lo12:.LC146
mov w1, w20
ldr x6, [x5,-80]
ldrh w2, [x5,32]
@@ -19032,13 +19398,13 @@ ftl_do_gc:
ldrh w5, [x5,848]
ldrh w4, [x6,x4]
bl printk
-.L2781:
+.L2872:
bl FtlGcReFreshBadBlk
- b .L2769
-.L2923:
+ b .L2860
+.L3014:
mov w20, w0
- b .L2769
-.L2897:
+ b .L2860
+.L2988:
mov w0, w2
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -19064,41 +19430,41 @@ FtlCacheWriteBack:
stp x25, x26, [sp,64]
stp x27, x28, [sp,80]
ldr w23, [x0,-96]
- cbnz w23, .L2930
+ cbnz w23, .L3021
adrp x19, .LANCHOR0
add x0, x19, :lo12:.LANCHOR0
ldr w1, [x0,2080]
- cbz w1, .L2930
- ldrb w0, [x0,120]
- cbz w0, .L2932
+ cbz w1, .L3021
+ ldrb w0, [x0,196]
+ cbz w0, .L3023
ldrb w0, [x20,8]
cmp w0, 1
cset w23, eq
-.L2932:
+.L3023:
add x0, x19, :lo12:.LANCHOR0
ldrb w3, [x20,9]
- adrp x26, .LC147
+ adrp x26, .LC148
mov w2, w23
mov w24, 0
mov w27, 56
ldr x0, [x0,2088]
- add x26, x26, :lo12:.LC147
+ add x26, x26, :lo12:.LC148
bl FlashProgPages
-.L2933:
+.L3024:
add x0, x19, :lo12:.LANCHOR0
ldr w1, [x0,2080]
cmp w24, w1
- bcs .L2951
+ bcs .L3042
umull x21, w24, w27
ldr x1, [x0,2088]
add x0, x1, x21
ldr w25, [x1,x21]
cmn w25, #1
- beq .L2954
+ beq .L3045
ldr w1, [x0,4]
- cbz w23, .L2968
+ cbz w23, .L3059
orr w1, w1, -2147483648
-.L2968:
+.L3059:
ldr w0, [x0,24]
mov w2, 1
str w1, [x29,124]
@@ -19110,7 +19476,7 @@ FtlCacheWriteBack:
ldr x0, [x21,16]
ldr w0, [x0,12]
cmn w0, #1
- beq .L2937
+ beq .L3028
lsr x0, x0, 10
bl P2V_block_in_plane
uxth w1, w0
@@ -19118,53 +19484,53 @@ FtlCacheWriteBack:
ldr x2, [x22,#:lo12:.LANCHOR2]
mov w21, w1
ldrh w2, [x2,x0]
- cbnz w2, .L2938
+ cbnz w2, .L3029
mov x0, x26
bl printk
-.L2938:
+.L3029:
mov w0, w21
bl decrement_vpc_count
-.L2937:
+.L3028:
add w24, w24, 1
- b .L2933
-.L2970:
+ b .L3024
+.L3061:
mov w20, 16386
-.L2950:
+.L3041:
add x0, x22, :lo12:.LANCHOR2
ldrh w0, [x0,944]
- cbz w0, .L2951
+ cbz w0, .L3042
mov w0, 1
mov w1, w0
bl ftl_do_gc
subs w20, w20, #1
- bne .L2950
-.L2951:
+ bne .L3041
+.L3042:
add x19, x19, :lo12:.LANCHOR0
str wzr, [x19,2080]
- b .L2930
-.L2954:
- adrp x26, .LC147
+ b .L3021
+.L3045:
+ adrp x26, .LC148
mov w24, 0
mov w27, 56
str w25, [x29,108]
mov w28, 1
- add x26, x26, :lo12:.LC147
-.L2934:
+ add x26, x26, :lo12:.LC148
+.L3025:
add x0, x19, :lo12:.LANCHOR0
ldr w1, [x0,2080]
cmp w24, w1
- bcs .L2970
+ bcs .L3061
umull x21, w24, w27
ldr x0, [x0,2088]
ldr w1, [x29,108]
str w1, [x0,x21]
-.L2940:
+.L3031:
add x2, x19, :lo12:.LANCHOR0
ldr x0, [x2,2088]
add x1, x0, x21
ldr w0, [x0,x21]
cmn w0, #1
- bne .L2971
+ bne .L3062
ldr w0, [x1,4]
str x2, [x29,96]
lsr x0, x0, 10
@@ -19172,7 +19538,7 @@ FtlCacheWriteBack:
ldrh w1, [x20]
cmp w1, w0, uxth
ldr x2, [x29,96]
- bne .L2941
+ bne .L3032
ldr x3, [x22,#:lo12:.LANCHOR2]
ubfiz x1, x1, 1, 16
ldrh w4, [x20,4]
@@ -19180,15 +19546,15 @@ FtlCacheWriteBack:
sub w0, w0, w4
strh w0, [x3,x1]
strb wzr, [x20,6]
- ldrh w0, [x2,2018]
+ ldrh w0, [x2,2024]
strh w0, [x20,2]
strh wzr, [x20,4]
-.L2941:
+.L3032:
ldrh w0, [x20,4]
- cbnz w0, .L2942
+ cbnz w0, .L3033
mov x0, x20
bl allocate_new_data_superblock
-.L2942:
+.L3033:
add x5, x22, :lo12:.LANCHOR2
add x25, x19, :lo12:.LANCHOR0
str x5, [x29,96]
@@ -19216,18 +19582,18 @@ FtlCacheWriteBack:
ldr x5, [x29,96]
ldr w0, [x0,x21]
cmn w0, #1
- bne .L2943
+ bne .L3034
str w28, [x5,-96]
-.L2943:
+.L3034:
add x0, x22, :lo12:.LANCHOR2
ldr w0, [x0,-96]
- cbz w0, .L2940
- b .L2930
-.L2971:
+ cbz w0, .L3031
+ b .L3021
+.L3062:
ldr w0, [x1,4]
- cbz w23, .L2969
+ cbz w23, .L3060
orr w0, w0, -2147483648
-.L2969:
+.L3060:
str w0, [x29,124]
mov w2, 1
ldr w0, [x1,24]
@@ -19239,7 +19605,7 @@ FtlCacheWriteBack:
ldr x0, [x21,16]
ldr w0, [x0,12]
cmn w0, #1
- beq .L2947
+ beq .L3038
lsr x0, x0, 10
bl P2V_block_in_plane
uxth w1, w0
@@ -19247,16 +19613,16 @@ FtlCacheWriteBack:
ldr x2, [x22,#:lo12:.LANCHOR2]
mov w21, w1
ldrh w2, [x2,x0]
- cbnz w2, .L2948
+ cbnz w2, .L3039
mov x0, x26
bl printk
-.L2948:
+.L3039:
mov w0, w21
bl decrement_vpc_count
-.L2947:
+.L3038:
add w24, w24, 1
- b .L2934
-.L2930:
+ b .L3025
+.L3021:
mov w0, 0
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -19274,13 +19640,13 @@ FtlSysFlush:
stp x29, x30, [sp, -16]!
add x29, sp, 0
ldr w0, [x0,#:lo12:.LANCHOR2-96]
- cbnz w0, .L2973
+ cbnz w0, .L3064
bl FtlCacheWriteBack
bl l2p_flush
mov w0, 1
bl FtlEctTblFlush
bl FtlVpcTblFlush
-.L2973:
+.L3064:
mov w0, 0
ldp x29, x30, [sp], 16
ret
@@ -19294,9 +19660,9 @@ FtlDeInit:
add x29, sp, 0
ldr w0, [x0,#:lo12:.LANCHOR1+504]
cmp w0, 1
- bne .L2975
+ bne .L3066
bl FtlSysFlush
-.L2975:
+.L3066:
mov w0, 0
ldp x29, x30, [sp], 16
ret
@@ -19318,10 +19684,10 @@ ftl_deinit:
.type rk_ftl_de_init, %function
rk_ftl_de_init:
stp x29, x30, [sp, -16]!
- adrp x0, .LC148
+ adrp x0, .LC149
mov w1, 0
add x29, sp, 0
- add x0, x0, :lo12:.LC148
+ add x0, x0, :lo12:.LC149
bl printk
bl ftl_deinit
ldp x29, x30, [sp], 16
@@ -19361,44 +19727,44 @@ ftl_discard:
stp x19, x20, [sp,16]
mov w19, w1
mov w20, w0
- ldr w1, [x21,2060]
+ ldr w1, [x21,2064]
mov w0, -1
cmp w2, w1
- bhi .L2981
+ bhi .L3072
cmp w19, 31
mov w0, 0
- bls .L2981
+ bls .L3072
adrp x23, .LANCHOR2
add x1, x23, :lo12:.LANCHOR2
ldr w1, [x1,-96]
- cbnz w1, .L2981
+ cbnz w1, .L3072
bl FtlCacheWriteBack
- ldrh w1, [x21,2024]
+ ldrh w1, [x21,2030]
udiv w21, w20, w1
msub w20, w1, w21, w20
uxth w20, w20
- cbz w20, .L2982
+ cbz w20, .L3073
sub w1, w1, w20
add w21, w21, 1
cmp w1, w19
csel w1, w1, w19, ls
sub w19, w19, w1, uxth
-.L2982:
+.L3073:
mov w0, -1
adrp x20, .LANCHOR4
str w0, [x29,76]
-.L2983:
+.L3074:
add x0, x22, :lo12:.LANCHOR0
- ldrh w0, [x0,2024]
+ ldrh w0, [x0,2030]
cmp w19, w0
- bcc .L2996
+ bcc .L3087
mov w0, w21
add x1, x29, 72
mov w2, 0
bl log2phys
ldr w0, [x29,72]
cmn w0, #1
- beq .L2984
+ beq .L3075
add x1, x20, :lo12:.LANCHOR4
mov w2, 1
ldr w0, [x1,448]
@@ -19415,24 +19781,24 @@ ftl_discard:
lsr x0, x0, 10
bl P2V_block_in_plane
bl decrement_vpc_count
-.L2984:
+.L3075:
add x0, x22, :lo12:.LANCHOR0
add w21, w21, 1
- ldrh w0, [x0,2024]
+ ldrh w0, [x0,2030]
sub w19, w19, w0
- b .L2983
-.L2996:
+ b .L3074
+.L3087:
adrp x0, .LANCHOR4
add x0, x0, :lo12:.LANCHOR4
ldr w1, [x0,448]
cmp w1, 32
- bls .L2986
+ bls .L3077
str wzr, [x0,448]
bl l2p_flush
bl FtlVpcTblFlush
-.L2986:
+.L3077:
mov w0, 0
-.L2981:
+.L3072:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldr x23, [sp,48]
@@ -19465,23 +19831,23 @@ ftl_read:
mov w20, w1
mov w28, w2
mov x26, x3
- bne .L2999
+ bne .L3090
add w0, w1, 256
mov w1, w2
mov x2, x3
bl FtlVendorPartRead
- b .L3000
-.L2999:
+ b .L3091
+.L3090:
adrp x21, .LANCHOR0
add w0, w1, w2
add x1, x21, :lo12:.LANCHOR0
str w0, [x29,168]
mov w0, -1
ldr w3, [x29,168]
- ldr w2, [x1,2060]
+ ldr w2, [x1,2064]
cmp w3, w2
- bhi .L3000
- ldrh w0, [x1,2024]
+ bhi .L3091
+ ldrh w0, [x1,2030]
sub w25, w3, #1
adrp x19, .LANCHOR2
udiv w1, w20, w0
@@ -19500,38 +19866,38 @@ ftl_read:
ldr w0, [x29,172]
mov w1, w25
bl FtlCacheMetchLpa
- cbz w0, .L3001
+ cbz w0, .L3092
bl FtlCacheWriteBack
-.L3001:
+.L3092:
mov w27, 0
- adrp x0, .LC138
+ adrp x0, .LC137
ldr w22, [x29,172]
- add x0, x0, :lo12:.LC138
+ add x0, x0, :lo12:.LC137
str w27, [x29,156]
mov w23, w27
str w27, [x29,152]
str x0, [x29,112]
-.L3002:
- cbz w24, .L3045
+.L3093:
+ cbz w24, .L3136
mov w0, w22
add x1, x29, 188
mov w2, 0
bl log2phys
ldr w3, [x29,188]
cmn w3, #1
- bne .L3042
+ bne .L3133
mov w3, 0
-.L3003:
+.L3094:
add x0, x21, :lo12:.LANCHOR0
- ldrh w0, [x0,2024]
+ ldrh w0, [x0,2030]
cmp w3, w0
- bcs .L3007
+ bcs .L3098
madd w0, w22, w0, w3
cmp w0, w20
- bcc .L3005
+ bcc .L3096
ldr w1, [x29,168]
cmp w0, w1
- bcs .L3005
+ bcs .L3096
sub w0, w0, w20
mov w1, 0
ubfiz x0, x0, 9, 23
@@ -19540,10 +19906,10 @@ ftl_read:
str x3, [x29,160]
bl ftl_memset
ldr x3, [x29,160]
-.L3005:
+.L3096:
add w3, w3, 1
- b .L3003
-.L3042:
+ b .L3094
+.L3133:
mov w0, 56
umull x1, w23, w0
add x0, x19, :lo12:.LANCHOR2
@@ -19554,11 +19920,11 @@ ftl_read:
cmp w22, w2
ldr x2, [x0,2048]
add x2, x2, x1
- bne .L3008
+ bne .L3099
ldr x0, [x0,2104]
str x0, [x2,8]
add x0, x21, :lo12:.LANCHOR0
- ldrh w0, [x0,2024]
+ ldrh w0, [x0,2030]
udiv w3, w20, w0
msub w3, w3, w0, w20
str w3, [x29,128]
@@ -19567,54 +19933,54 @@ ftl_read:
csel w3, w3, w28, ls
str w3, [x29,156]
cmp w3, w0
- bne .L3009
+ bne .L3100
str x26, [x2,8]
- b .L3009
-.L3008:
+ b .L3100
+.L3099:
cmp w22, w25
- bne .L3010
+ bne .L3101
ldr x0, [x0,2112]
str x0, [x2,8]
add x0, x21, :lo12:.LANCHOR0
ldr w4, [x29,168]
- ldrh w3, [x0,2024]
+ ldrh w3, [x0,2030]
mul w0, w22, w3
sub w27, w4, w0
cmp w27, w3
- bne .L3009
- b .L3043
-.L3010:
+ bne .L3100
+ b .L3134
+.L3101:
add x0, x21, :lo12:.LANCHOR0
- ldrh w0, [x0,2024]
+ ldrh w0, [x0,2030]
mul w0, w22, w0
-.L3043:
+.L3134:
sub w0, w0, w20
ubfiz x0, x0, 9, 23
add x0, x26, x0
str x0, [x2,8]
-.L3009:
+.L3100:
add x2, x19, :lo12:.LANCHOR2
ldr x0, [x2,2048]
ldr x2, [x2,2128]
add x1, x0, x1
add x0, x21, :lo12:.LANCHOR0
- ldrh w0, [x0,2030]
+ ldrh w0, [x0,2036]
str w22, [x1,24]
mul w0, w23, w0
add w23, w23, 1
and x0, x0, 4294967292
add x0, x2, x0
str x0, [x1,16]
-.L3007:
+.L3098:
subs w24, w24, #1
add w22, w22, 1
- beq .L3011
+ beq .L3102
add x0, x21, :lo12:.LANCHOR0
- ldrh w0, [x0,1948]
+ ldrh w0, [x0,1956]
cmp w23, w0, lsl 3
- bne .L3002
-.L3011:
- cbz w23, .L3002
+ bne .L3093
+.L3102:
+ cbz w23, .L3093
add x0, x19, :lo12:.LANCHOR2
mov w1, w23
mov w2, 0
@@ -19629,10 +19995,10 @@ ftl_read:
str w0, [x29,124]
lsl w0, w27, 9
str w0, [x29,120]
-.L3013:
+.L3104:
ldr w0, [x29,160]
cmp w23, w0
- bls .L3046
+ bls .L3137
ldr x0, [x29,160]
add x2, x19, :lo12:.LANCHOR2
mov x1, 56
@@ -19642,52 +20008,52 @@ ftl_read:
add x0, x0, x8
ldr w1, [x0,24]
cmp w1, w3
- bne .L3014
+ bne .L3105
ldr x1, [x0,8]
ldr x0, [x2,2104]
cmp x1, x0
- bne .L3015
+ bne .L3106
ldr x2, [x29,144]
mov x0, x26
str x8, [x29,104]
add x1, x1, x2
ldr w2, [x29,124]
- b .L3044
-.L3014:
+ b .L3135
+.L3105:
cmp w1, w25
- bne .L3015
+ bne .L3106
ldr x1, [x0,8]
ldr x0, [x2,2112]
cmp x1, x0
- bne .L3015
+ bne .L3106
add x0, x21, :lo12:.LANCHOR0
ldr w2, [x29,120]
str x8, [x29,104]
- ldrh w0, [x0,2024]
+ ldrh w0, [x0,2030]
mul w0, w25, w0
sub w0, w0, w20
ubfiz x0, x0, 9, 23
add x0, x26, x0
-.L3044:
+.L3135:
bl ftl_memcpy
ldr x8, [x29,104]
-.L3015:
+.L3106:
add x0, x19, :lo12:.LANCHOR2
ldr x1, [x0,2048]
add x2, x1, x8
ldr w3, [x1,x8]
cmn w3, #1
- bne .L3016
+ bne .L3107
ldr w1, [x0,408]
str w3, [x29,152]
add w1, w1, 1
str w1, [x0,408]
-.L3016:
+.L3107:
ldr x0, [x2,16]
ldr w1, [x2,24]
ldr w0, [x0,8]
cmp w1, w0
- beq .L3017
+ beq .L3108
add x0, x19, :lo12:.LANCHOR2
str x8, [x29,104]
ldr w1, [x0,408]
@@ -19707,35 +20073,35 @@ ftl_read:
ldr w7, [x7]
bl printk
ldr x8, [x29,104]
-.L3017:
+.L3108:
add x0, x19, :lo12:.LANCHOR2
ldr x0, [x0,2048]
add x1, x0, x8
ldr w0, [x0,x8]
cmp w0, 256
- bne .L3018
+ bne .L3109
ldr w0, [x1,4]
lsr x0, x0, 10
bl P2V_block_in_plane
bl FtlGcRefreshBlock
-.L3018:
+.L3109:
ldr x0, [x29,160]
add x0, x0, 1
str x0, [x29,160]
- b .L3013
-.L3046:
+ b .L3104
+.L3137:
mov w23, 0
- b .L3002
-.L3045:
+ b .L3093
+.L3136:
add x19, x19, :lo12:.LANCHOR2
ldrh w0, [x19,944]
- cbz w0, .L3021
+ cbz w0, .L3112
mov w0, w24
mov w1, 1
bl ftl_do_gc
-.L3021:
+.L3112:
ldr w0, [x29,152]
-.L3000:
+.L3091:
sub sp, x29, #16
ldp x19, x20, [sp,32]
ldp x21, x22, [sp,48]
@@ -19785,50 +20151,50 @@ FtlInit:
bl FtlConstantsInit
bl FtlMemInit
bl FtlVariablesInit
- ldrh w0, [x19,1952]
+ ldrh w0, [x19,1960]
bl FtlFreeSysBlkQueueInit
bl FtlLoadBbt
- cbz w0, .L3049
- adrp x0, .LC149
- add x0, x0, :lo12:.LC149
- b .L3061
-.L3049:
- bl FtlSysBlkInit
- cbz w0, .L3051
+ cbz w0, .L3140
adrp x0, .LC150
add x0, x0, :lo12:.LC150
-.L3061:
+ b .L3152
+.L3140:
+ bl FtlSysBlkInit
+ cbz w0, .L3142
+ adrp x0, .LC151
+ add x0, x0, :lo12:.LC151
+.L3152:
adrp x1, .LANCHOR3
add x1, x1, :lo12:.LANCHOR3
add x1, x1, 80
bl printk
- b .L3050
-.L3051:
+ b .L3141
+.L3142:
mov w1, 1
str w1, [x21,504]
bl ftl_do_gc
ldrh w0, [x20,32]
cmp w0, 15
- bhi .L3052
+ bhi .L3143
mov w19, 1024
-.L3053:
+.L3144:
mov w0, 1
mov w1, w0
bl ftl_do_gc
subs w19, w19, #1
- bne .L3053
- b .L3050
-.L3052:
- ldrb w0, [x19,120]
- cbz w0, .L3050
+ bne .L3144
+ b .L3141
+.L3143:
+ ldrb w0, [x19,196]
+ cbz w0, .L3141
mov w19, 128
-.L3055:
+.L3146:
mov w0, 1
mov w1, w0
bl ftl_do_gc
subs w19, w19, #1
- bne .L3055
-.L3050:
+ bne .L3146
+.L3141:
mov w0, 0
ldr x21, [sp,32]
ldp x19, x20, [sp,16]
@@ -19854,7 +20220,7 @@ rk_ftl_init:
bl rknand_get_reg_addr
ldr x1, [x19,48]
mov w0, -1
- cbz x1, .L3063
+ cbz x1, .L3154
bl rk_nandc_irq_init
mov w1, 0
ldr x0, [x19,456]
@@ -19865,15 +20231,15 @@ rk_ftl_init:
ldr x0, [x19,48]
bl FlashInit
mov w19, w0
- cbnz w0, .L3064
+ cbnz w0, .L3155
bl FtlInit
-.L3064:
- adrp x0, .LC151
+.L3155:
+ adrp x0, .LC152
mov w1, w19
- add x0, x0, :lo12:.LC151
+ add x0, x0, :lo12:.LC152
bl printk
mov w0, w19
-.L3063:
+.L3154:
ldr x19, [sp,16]
ldp x29, x30, [sp], 32
ret
@@ -19892,17 +20258,17 @@ ftl_fix_nand_power_lost_error:
stp x23, x24, [sp,48]
str x27, [sp,80]
mov x25, x0
- ldrb w1, [x1,120]
- cbz w1, .L3067
+ ldrb w1, [x1,196]
+ cbz w1, .L3158
adrp x21, .LANCHOR4
adrp x19, .LANCHOR2
add x0, x21, :lo12:.LANCHOR4
- adrp x20, .LC152
+ adrp x20, .LC153
add x24, x19, :lo12:.LANCHOR2
ldr x2, [x19,#:lo12:.LANCHOR2]
add x27, x24, 40
ldrh w23, [x0,290]
- add x0, x20, :lo12:.LC152
+ add x0, x20, :lo12:.LC153
add x26, x24, 88
ubfiz x22, x23, 1, 16
mov w1, w23
@@ -19917,41 +20283,41 @@ ftl_fix_nand_power_lost_error:
bl allocate_new_data_superblock
mov x0, x26
bl allocate_new_data_superblock
-.L3069:
+.L3160:
subs w24, w24, #1
- beq .L3073
+ beq .L3164
mov w0, 1
mov w1, w0
bl ftl_do_gc
ldr x0, [x19,#:lo12:.LANCHOR2]
ldrh w0, [x0,x22]
- cbnz w0, .L3069
-.L3073:
+ cbnz w0, .L3160
+.L3164:
ldr x2, [x19,#:lo12:.LANCHOR2]
- add x0, x20, :lo12:.LC152
+ add x0, x20, :lo12:.LC153
mov w1, w23
ldrh w2, [x2,x22]
bl printk
ldr x0, [x19,#:lo12:.LANCHOR2]
ldrh w0, [x0,x22]
- cbnz w0, .L3071
+ cbnz w0, .L3162
add x0, x29, 96
strh w23, [x29,96]
bl make_superblock
add x0, x25, :lo12:.LANCHOR0
mov w6, 65535
mov w7, 56
- ldrh w5, [x0,1948]
+ ldrh w5, [x0,1956]
mov x0, 0
mov w20, w0
-.L3074:
+.L3165:
cmp w5, w0, uxth
- bls .L3081
+ bls .L3172
add x1, x29, 96
add x1, x1, x0, lsl 1
ldrh w2, [x1,16]
cmp w2, w6
- beq .L3075
+ beq .L3166
add x4, x19, :lo12:.LANCHOR2
lsl w2, w2, 10
umull x1, w20, w7
@@ -19964,15 +20330,15 @@ ftl_fix_nand_power_lost_error:
add x1, x2, x1
str xzr, [x1,8]
str xzr, [x1,16]
-.L3075:
+.L3166:
add x0, x0, 1
- b .L3074
-.L3081:
+ b .L3165
+.L3172:
ldr x2, [x19,#:lo12:.LANCHOR2]
- adrp x0, .LC153
+ adrp x0, .LC154
add x24, x19, :lo12:.LANCHOR2
mov w1, w23
- add x0, x0, :lo12:.LC153
+ add x0, x0, :lo12:.LC154
ldrh w2, [x2,x22]
bl printk
ldr x0, [x24,-88]
@@ -19983,11 +20349,11 @@ ftl_fix_nand_power_lost_error:
mov w1, 1
mov w2, w20
bl FlashEraseBlocks
-.L3071:
+.L3162:
add x21, x21, :lo12:.LANCHOR4
mov w0, -1
strh w0, [x21,290]
-.L3067:
+.L3158:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -20026,24 +20392,24 @@ ftl_write:
mov x24, x3
str x1, [x29,176]
ldr w3, [x2,-96]
- cbnz w3, .L3084
+ cbnz w3, .L3175
cmp w4, 16
- bne .L3085
+ bne .L3176
add w0, w21, 256
mov w1, w23
mov x2, x24
bl FtlVendorPartWrite
- b .L3084
-.L3085:
+ b .L3175
+.L3176:
adrp x20, .LANCHOR0
add w26, w21, w23
add x4, x20, :lo12:.LANCHOR0
mov w0, -1
- ldr w1, [x4,2060]
+ ldr w1, [x4,2064]
cmp w26, w1
- bhi .L3084
+ bhi .L3175
adrp x6, .LANCHOR4
- ldrh w1, [x4,2024]
+ ldrh w1, [x4,2030]
add x28, x6, :lo12:.LANCHOR4
sub w26, w26, #1
mov w0, 2048
@@ -20064,7 +20430,7 @@ ftl_write:
str w0, [x2,224]
cset w0, cs
str w0, [x29,220]
- cbz w3, .L3087
+ cbz w3, .L3178
mov w0, 56
sub w3, w3, #1
umull x3, w3, w0
@@ -20072,7 +20438,7 @@ ftl_write:
add x3, x0, x3
ldr w0, [x3,24]
cmp w25, w0
- bne .L3088
+ bne .L3179
ldr w0, [x2,212]
add w0, w0, 1
str w0, [x2,212]
@@ -20090,30 +20456,30 @@ ftl_write:
mov w2, w22
mov x1, x24
bl ftl_memcpy
- cbnz w26, .L3089
+ cbnz w26, .L3180
ldr w0, [x28,476]
cmp w0, 2
- bgt .L3089
-.L3122:
+ bgt .L3180
+.L3213:
mov w0, 0
- b .L3084
-.L3089:
+ b .L3175
+.L3180:
sub w23, w23, w19
add w21, w21, w19
add x24, x24, x22
add w25, w25, 1
mov w27, w26
-.L3088:
+.L3179:
ldr x0, [x29,152]
add x0, x0, :lo12:.LANCHOR4
str wzr, [x0,476]
-.L3087:
+.L3178:
ldr w1, [x29,216]
mov w0, w25
bl FtlCacheMetchLpa
- cbz w0, .L3090
+ cbz w0, .L3181
bl FtlCacheWriteBack
-.L3090:
+.L3181:
ldr x0, [x29,152]
ldr x1, [x29,176]
add x0, x0, :lo12:.LANCHOR4
@@ -20122,51 +20488,51 @@ ftl_write:
add x19, x22, 40
str x19, [x29,184]
str x19, [x0,440]
- adrp x0, .LC154
- add x0, x0, :lo12:.LC154
+ adrp x0, .LC155
+ add x0, x0, :lo12:.LC155
str x0, [x29,112]
-.L3091:
- cbz w27, .L3151
+.L3182:
+ cbz w27, .L3242
ldrh w0, [x19,4]
- cbnz w0, .L3092
+ cbnz w0, .L3183
ldr x1, [x29,184]
adrp x28, .LANCHOR1
cmp x19, x1
- bne .L3093
+ bne .L3184
add x0, x22, 88
ldrh w19, [x0,4]
- cbnz w19, .L3094
+ cbnz w19, .L3185
bl allocate_new_data_superblock
add x0, x28, :lo12:.LANCHOR1
- str w19, [x0,3172]
-.L3094:
+ str w19, [x0,3300]
+.L3185:
ldr x0, [x29,184]
add x28, x28, :lo12:.LANCHOR1
add x19, x22, 88
bl allocate_new_data_superblock
- ldr w0, [x28,3172]
- cbnz w0, .L3095
-.L3096:
+ ldr w0, [x28,3300]
+ cbnz w0, .L3186
+.L3187:
ldr x19, [x29,184]
- b .L3095
-.L3093:
+ b .L3186
+.L3184:
add x28, x28, :lo12:.LANCHOR1
- str w0, [x28,3172]
+ str w0, [x28,3300]
ldr x0, [x29,184]
ldrh w0, [x0,4]
- cbnz w0, .L3096
+ cbnz w0, .L3187
mov x0, x19
bl allocate_new_data_superblock
-.L3095:
+.L3186:
ldrh w0, [x19,4]
- cbnz w0, .L3097
+ cbnz w0, .L3188
mov x0, x19
bl allocate_new_data_superblock
-.L3097:
+.L3188:
ldr x0, [x29,152]
add x0, x0, :lo12:.LANCHOR4
str x19, [x0,440]
-.L3092:
+.L3183:
add x2, x20, :lo12:.LANCHOR0
ldr w0, [x22,2044]
ldrh w1, [x19,4]
@@ -20183,29 +20549,29 @@ ftl_write:
str w0, [x29,124]
add w0, w23, w21
str w0, [x29,144]
-.L3098:
+.L3189:
ldr w0, [x29,208]
ldr w2, [x29,148]
ldr w1, [x29,200]
cmp w0, w2
add w26, w1, w0
- bcs .L3152
+ bcs .L3243
ldrh w1, [x19,4]
- cbz w1, .L3128
+ cbz w1, .L3219
ldr w1, [x29,216]
cmp w26, w1
cset w7, eq
- cbz w0, .L3100
+ cbz w0, .L3191
ldr w1, [x29,124]
tst w7, w1
- beq .L3100
+ beq .L3191
add x1, x20, :lo12:.LANCHOR0
ldr w2, [x29,144]
- ldrh w1, [x1,2024]
+ ldrh w1, [x1,2030]
msub w2, w26, w1, w2
cmp w2, w1
- bne .L3128
-.L3100:
+ bne .L3219
+.L3191:
add x1, x29, 228
mov w2, 0
mov w0, w26
@@ -20222,7 +20588,7 @@ ftl_write:
umull x1, w6, w5
add x2, x2, x1
str w0, [x2,4]
- ldrh w2, [x4,2030]
+ ldrh w2, [x4,2036]
ldr x0, [x4,2088]
add x1, x0, x1
mul w0, w2, w6
@@ -20232,7 +20598,7 @@ ftl_write:
ldr x3, [x29,136]
str x0, [x29,128]
add x28, x0, x3
- ldrh w0, [x4,2028]
+ ldrh w0, [x4,2034]
str x28, [x1,16]
str w26, [x1,24]
mul w0, w0, w6
@@ -20247,20 +20613,20 @@ ftl_write:
ldr x4, [x29,192]
cset w0, eq
str w0, [x29,204]
- cbnz w0, .L3131
+ cbnz w0, .L3222
ldr x7, [x29,104]
ldr x5, [x29,160]
- cbz w7, .L3101
+ cbz w7, .L3192
ldr w0, [x29,144]
- ldrh w2, [x4,2024]
+ ldrh w2, [x4,2030]
msub w2, w26, w2, w0
uxth w0, w2
str w0, [x29,192]
ldr w0, [x29,204]
str w0, [x29,160]
- b .L3104
-.L3131:
- ldrh w2, [x4,2024]
+ b .L3195
+.L3222:
+ ldrh w2, [x4,2030]
udiv w0, w21, w2
msub w0, w0, w2, w21
str w0, [x29,160]
@@ -20268,41 +20634,41 @@ ftl_write:
cmp w2, w23
csel w0, w2, w23, ls
str w0, [x29,192]
-.L3104:
+.L3195:
add x2, x20, :lo12:.LANCHOR0
ldr w1, [x29,192]
- ldrh w0, [x2,2024]
+ ldrh w0, [x2,2030]
cmp w1, w0
- bne .L3105
+ bne .L3196
ldr w0, [x29,204]
mov x1, x24
- cbnz w0, .L3106
+ cbnz w0, .L3197
ldr w0, [x29,192]
mul w1, w0, w26
sub w1, w1, w21
ubfiz x1, x1, 9, 23
add x1, x24, x1
-.L3106:
+.L3197:
ldr w2, [x29,220]
mov w0, 56
add x4, x20, :lo12:.LANCHOR0
- cbz w2, .L3107
+ cbz w2, .L3198
ldr w2, [x4,2080]
umull x0, w2, w0
ldr x2, [x4,2088]
add x0, x2, x0
- b .L3148
-.L3107:
+ b .L3239
+.L3198:
ldr w2, [x4,2080]
umull x0, w2, w0
ldr x2, [x4,2088]
add x0, x2, x0
ldr x0, [x0,8]
- b .L3149
-.L3105:
+ b .L3240
+.L3196:
ldr w0, [x29,228]
cmn w0, #1
- beq .L3109
+ beq .L3200
str w0, [x29,236]
mov w1, 56
ldr w0, [x2,2080]
@@ -20320,15 +20686,15 @@ ftl_write:
bl FlashReadPages
ldr w0, [x29,232]
cmn w0, #1
- bne .L3110
+ bne .L3201
ldr w0, [x22,408]
add w0, w0, 1
str w0, [x22,408]
- b .L3112
-.L3110:
+ b .L3203
+.L3201:
ldr w0, [x28,8]
cmp w0, w26
- beq .L3112
+ beq .L3203
ldr w0, [x22,408]
mov w2, w26
add w0, w0, 1
@@ -20336,23 +20702,23 @@ ftl_write:
ldr x0, [x29,112]
ldr w1, [x28,8]
bl printk
- b .L3112
-.L3109:
+ b .L3203
+.L3200:
ldr w0, [x2,2080]
mov w1, 56
umull x0, w0, w1
ldr x1, [x2,2088]
- ldrh w2, [x2,2028]
+ ldrh w2, [x2,2034]
add x0, x1, x0
mov w1, 0
ldr x0, [x0,8]
bl ftl_memset
-.L3112:
+.L3203:
ldr w1, [x29,192]
mov w0, 56
lsl w2, w1, 9
ldr w1, [x29,204]
- cbz w1, .L3113
+ cbz w1, .L3204
add x1, x20, :lo12:.LANCHOR0
ldr w4, [x1,2080]
umull x0, w4, w0
@@ -20363,25 +20729,25 @@ ftl_write:
ldr x1, [x4,8]
add x0, x1, x0
mov x1, x24
- b .L3150
-.L3113:
+ b .L3241
+.L3204:
add x5, x20, :lo12:.LANCHOR0
ldr w4, [x5,2080]
ldr x1, [x5,2088]
umull x0, w4, w0
add x0, x1, x0
- ldrh w1, [x5,2024]
+ ldrh w1, [x5,2030]
mul w1, w26, w1
ldr x0, [x0,8]
sub w1, w1, w21
ubfiz x1, x1, 9, 23
add x1, x24, x1
- b .L3150
-.L3101:
+ b .L3241
+.L3192:
ldr w0, [x29,220]
- ldrh w1, [x4,2024]
+ ldrh w1, [x4,2030]
ldr w2, [x4,2080]
- cbz w0, .L3114
+ cbz w0, .L3205
mul w1, w26, w1
umull x0, w2, w5
sub w1, w1, w21
@@ -20389,10 +20755,10 @@ ftl_write:
ubfiz x1, x1, 9, 23
add x0, x2, x0
add x1, x24, x1
-.L3148:
+.L3239:
str x1, [x0,8]
- b .L3108
-.L3114:
+ b .L3199
+.L3205:
umull x0, w2, w5
ldr x2, [x4,2088]
mul w1, w26, w1
@@ -20401,11 +20767,11 @@ ftl_write:
ubfiz x1, x1, 9, 23
ldr x0, [x0,8]
add x1, x24, x1
-.L3149:
- ldrh w2, [x4,2028]
-.L3150:
+.L3240:
+ ldrh w2, [x4,2034]
+.L3241:
bl ftl_memcpy
-.L3108:
+.L3199:
ldr x1, [x29,128]
mov w0, -3947
ldr x2, [x29,136]
@@ -20428,35 +20794,35 @@ ftl_write:
ldr x0, [x29,208]
add x0, x0, 1
str x0, [x29,208]
- b .L3098
-.L3152:
+ b .L3189
+.L3243:
str w26, [x29,200]
mov x0, x2
- b .L3099
-.L3128:
+ b .L3190
+.L3219:
str w26, [x29,200]
-.L3099:
+.L3190:
sub w27, w27, w0
ldr w0, [x29,220]
- cbnz w0, .L3118
+ cbnz w0, .L3209
add x0, x20, :lo12:.LANCHOR0
ldr w1, [x0,2080]
ldr w0, [x22,2044]
cmp w1, w0
- bcs .L3118
+ bcs .L3209
ldrh w0, [x19,4]
- cbz w0, .L3118
-.L3120:
+ cbz w0, .L3209
+.L3211:
str wzr, [x29,220]
- b .L3091
-.L3118:
+ b .L3182
+.L3209:
bl FtlCacheWriteBack
add x0, x20, :lo12:.LANCHOR0
cmp w27, 1
str wzr, [x0,2080]
- bhi .L3091
- b .L3120
-.L3151:
+ bhi .L3182
+ b .L3211
+.L3242:
ldr w1, [x29,216]
mov w0, w27
sub w1, w1, w25
@@ -20465,23 +20831,23 @@ ftl_write:
add x0, x0, :lo12:.LANCHOR2
ldrh w1, [x0,32]
cmp w1, 31
- bhi .L3122
+ bhi .L3213
mov w1, 128
mov w19, 16
strh w1, [x0,850]
strh w1, [x0,848]
-.L3123:
+.L3214:
mov w0, 0
mov w1, 1
bl ftl_do_gc
ldr x0, [x29,176]
add x0, x0, :lo12:.LANCHOR2
ldr w0, [x0,-96]
- cbnz w0, .L3122
+ cbnz w0, .L3213
subs w19, w19, #1
- bne .L3123
- b .L3122
-.L3084:
+ bne .L3214
+ b .L3213
+.L3175:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -20584,19 +20950,19 @@ FtlCheckVpc:
mov x2, 8192
mov w19, 0
bl memset
-.L3158:
+.L3249:
add x24, x22, :lo12:.LANCHOR0
adrp x23, .LANCHOR0
ldr w0, [x24,2096]
cmp w19, w0
- bcs .L3175
+ bcs .L3266
mov w0, w19
add x1, x29, 92
mov w2, 0
bl log2phys
ldr w0, [x29,92]
cmn w0, #1
- beq .L3159
+ beq .L3250
lsr w0, w0, 10
bl P2V_block_in_plane
uxth w0, w0
@@ -20604,86 +20970,86 @@ FtlCheckVpc:
ldrh w1, [x2,w0,sxtw 1]
add w1, w1, 1
strh w1, [x2,w0,sxtw 1]
-.L3159:
+.L3250:
add w19, w19, 1
- b .L3158
-.L3175:
+ b .L3249
+.L3266:
adrp x20, .LANCHOR2
- ldrh w3, [x24,1956]
- adrp x0, .LC155
+ ldrh w3, [x24,1964]
+ adrp x0, .LC156
mov w2, 2
- add x0, x0, :lo12:.LC155
+ add x0, x0, :lo12:.LC156
add x22, x21, :lo12:.LANCHOR4
ldr x1, [x20,#:lo12:.LANCHOR2]
mov w19, 0
bl rknand_print_hex
- ldrh w3, [x24,1956]
- adrp x0, .LC156
- adrp x24, .LC157
- add x0, x0, :lo12:.LC156
+ ldrh w3, [x24,1964]
+ adrp x0, .LC157
+ adrp x24, .LC158
+ add x0, x0, :lo12:.LC157
add x1, x22, 480
mov w2, 2
- add x24, x24, :lo12:.LC157
+ add x24, x24, :lo12:.LC158
bl rknand_print_hex
-.L3161:
+.L3252:
add x0, x23, :lo12:.LANCHOR0
- ldrh w0, [x0,1956]
+ ldrh w0, [x0,1964]
cmp w0, w19
- bls .L3176
+ bls .L3267
ubfiz x0, x19, 1, 16
ldr x1, [x20,#:lo12:.LANCHOR2]
ldrh w2, [x1,x0]
add x0, x22, 480
ldrh w3, [x0,w19,sxtw 1]
cmp w2, w3
- beq .L3162
+ beq .L3253
mov x0, x24
mov w1, w19
bl printk
-.L3162:
+.L3253:
add w19, w19, 1
uxth w19, w19
- b .L3161
-.L3176:
+ b .L3252
+.L3267:
add x1, x20, :lo12:.LANCHOR2
ldr x0, [x1,24]
- cbz x0, .L3157
+ cbz x0, .L3248
ldr x19, [x1,-16]
- adrp x23, .LC158
+ adrp x23, .LC159
ldrh w24, [x1,32]
mov w22, 0
sub x19, x0, x19
mov x0, -6148914691236517206
asr x19, x19, 1
- add x23, x23, :lo12:.LC158
+ add x23, x23, :lo12:.LC159
add x21, x21, :lo12:.LANCHOR4
mov w25, 6
madd x19, x0, x19, x19
mov w26, 65535
uxth w19, w19
-.L3165:
+.L3256:
cmp w22, w24
- beq .L3157
+ beq .L3248
ubfiz x0, x19, 1, 16
ldr x1, [x20,#:lo12:.LANCHOR2]
ldrh w2, [x1,x0]
- cbz w2, .L3166
+ cbz w2, .L3257
add x3, x21, 480
mov x0, x23
mov w1, w19
ldrh w3, [x3,w19,sxtw 1]
bl printk
-.L3166:
+.L3257:
add x0, x20, :lo12:.LANCHOR2
umull x19, w19, w25
ldr x0, [x0,-16]
ldrh w19, [x0,x19]
cmp w19, w26
- beq .L3157
+ beq .L3248
add w22, w22, 1
uxth w22, w22
- b .L3165
-.L3157:
+ b .L3256
+.L3248:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -20708,21 +21074,21 @@ FtlDumpSysBlock:
add x0, x21, :lo12:.LANCHOR2
str x25, [sp,80]
add x19, x19, 160
- adrp x22, .LC159
- adrp x24, .LC160
+ adrp x22, .LC160
+ adrp x24, .LC161
lsl w25, w23, 10
ldr x1, [x0,2072]
mov w20, 0
ldr x0, [x0,2120]
- add x22, x22, :lo12:.LC159
+ add x22, x22, :lo12:.LC160
str x1, [x19,8]
- add x24, x24, :lo12:.LC160
+ add x24, x24, :lo12:.LC161
str x0, [x19,16]
-.L3178:
- adrp x0, .LANCHOR0+2020
- ldrh w0, [x0,#:lo12:.LANCHOR0+2020]
+.L3269:
+ adrp x0, .LANCHOR0+2026
+ ldrh w0, [x0,#:lo12:.LANCHOR0+2026]
cmp w20, w0
- bge .L3184
+ bge .L3275
mov w1, 1
orr w0, w20, w25
mov w2, w1
@@ -20745,18 +21111,18 @@ FtlDumpSysBlock:
ldr x0, [x19,16]
ldr w0, [x0]
cmn w0, #1
- beq .L3179
+ beq .L3270
add x1, x21, :lo12:.LANCHOR2
mov x0, x24
mov w2, 4
mov w3, 768
ldr x1, [x1,2072]
bl rknand_print_hex
-.L3179:
+.L3270:
add w20, w20, 1
sxth w20, w20
- b .L3178
-.L3184:
+ b .L3269
+.L3275:
sub sp, x29, #16
ldp x19, x20, [sp,32]
ldp x21, x22, [sp,48]
@@ -20780,26 +21146,26 @@ dump_map_info:
stp x25, x26, [sp,80]
stp x21, x22, [sp,48]
stp x27, x28, [sp,96]
- adrp x23, .LC161
+ adrp x23, .LC162
mov w25, 56
- ldrh w21, [x0,1956]
+ ldrh w21, [x0,1964]
adrp x24, .LANCHOR2
mov w26, 4
- add x23, x23, :lo12:.LC161
-.L3186:
+ add x23, x23, :lo12:.LC162
+.L3277:
add x2, x19, :lo12:.LANCHOR0
- ldrh w0, [x2,1958]
+ ldrh w0, [x2,1966]
cmp w0, w21
- bls .L3199
+ bls .L3290
mov x22, 0
- ldrh w5, [x2,1948]
- ldrh w4, [x2,2030]
+ ldrh w5, [x2,1956]
+ ldrh w4, [x2,2036]
mov w27, w22
mov x20, x2
-.L3195:
+.L3286:
cmp w5, w22, uxth
- bls .L3200
- add x0, x20, 1976
+ bls .L3291
+ add x0, x20, 1984
mov w1, w21
str x4, [x29,96]
str x5, [x29,104]
@@ -20809,7 +21175,7 @@ dump_map_info:
bl FtlBbmIsBadBlock
ldr x5, [x29,104]
ldr x4, [x29,96]
- cbnz w0, .L3187
+ cbnz w0, .L3278
add x3, x24, :lo12:.LANCHOR2
lsl w28, w28, 10
umull x0, w27, w25
@@ -20827,11 +21193,11 @@ dump_map_info:
ldr x1, [x3,888]
add x2, x1, x2, sxtw 2
str x2, [x0,16]
-.L3187:
+.L3278:
add x22, x22, 1
- b .L3195
-.L3200:
- cbz w27, .L3190
+ b .L3286
+.L3291:
+ cbz w27, .L3281
add x0, x24, :lo12:.LANCHOR2
mov w1, w27
mov w2, 1
@@ -20840,9 +21206,9 @@ dump_map_info:
mov x28, 56
ldr x0, [x0,2048]
bl FlashReadPages
-.L3191:
+.L3282:
cmp w27, w20, uxth
- bls .L3190
+ bls .L3281
add x0, x22, :lo12:.LANCHOR2
ldr x3, [x0,2048]
madd x3, x20, x28, x3
@@ -20860,12 +21226,12 @@ dump_map_info:
ldr w7, [x7]
ldr w6, [x6,12]
bl printk
- b .L3191
-.L3190:
+ b .L3282
+.L3281:
add w21, w21, 1
uxth w21, w21
- b .L3186
-.L3199:
+ b .L3277
+.L3290:
adrp x20, .LANCHOR4
adrp x23, .LC109
add x20, x20, :lo12:.LANCHOR4
@@ -20873,19 +21239,19 @@ dump_map_info:
adrp x27, .LANCHOR2
add x20, x20, 160
add x23, x23, :lo12:.LC109
-.L3194:
+.L3285:
add x21, x27, :lo12:.LANCHOR2
adrp x26, .LANCHOR2
ldrh w0, [x21,2320]
cmp w22, w0
- bge .L3197
+ bge .L3288
sbfiz x24, x22, 1, 32
mov w21, 0
-.L3198:
+.L3289:
add x0, x19, :lo12:.LANCHOR0
- ldrh w0, [x0,2020]
+ ldrh w0, [x0,2026]
cmp w21, w0
- bge .L3201
+ bge .L3292
add x25, x26, :lo12:.LANCHOR2
mov w1, 1
mov w2, w1
@@ -20913,29 +21279,29 @@ dump_map_info:
ldr w3, [x20,4]
ldr w7, [x7,12]
bl printk
- b .L3198
-.L3201:
+ b .L3289
+.L3292:
add w22, w22, 1
sxth w22, w22
- b .L3194
-.L3197:
+ b .L3285
+.L3288:
add x19, x19, :lo12:.LANCHOR0
ldr x1, [x21,2176]
- adrp x0, .LC162
+ adrp x0, .LC163
mov w2, 2
- add x0, x0, :lo12:.LC162
- ldr w3, [x19,2048]
+ add x0, x0, :lo12:.LC163
+ ldr w3, [x19,2052]
bl rknand_print_hex
ldr x1, [x21,2216]
- adrp x0, .LC163
- ldrh w3, [x19,2056]
- add x0, x0, :lo12:.LC163
+ adrp x0, .LC164
+ ldrh w3, [x19,2060]
+ add x0, x0, :lo12:.LC164
mov w2, 4
bl rknand_print_hex
ldr x1, [x21,2224]
- adrp x0, .LC164
- ldrh w3, [x19,2056]
- add x0, x0, :lo12:.LC164
+ adrp x0, .LC165
+ ldrh w3, [x19,2060]
+ add x0, x0, :lo12:.LC165
mov w2, 4
bl rknand_print_hex
sub sp, x29, #16
@@ -20952,17 +21318,17 @@ dump_map_info:
.global flash_boot_enter_slc_mode
.type flash_boot_enter_slc_mode, %function
flash_boot_enter_slc_mode:
- adrp x1, .LANCHOR0+1856
+ adrp x1, .LANCHOR0+1872
uxtb w0, w0
stp x29, x30, [sp, -16]!
add x29, sp, 0
- ldr w2, [x1,#:lo12:.LANCHOR0+1856]
+ ldr w2, [x1,#:lo12:.LANCHOR0+1872]
mov w1, 12336
movk w1, 0x5638, lsl 16
cmp w2, w1
- bne .L3202
+ bne .L3293
bl flash_enter_slc_mode
-.L3202:
+.L3293:
ldp x29, x30, [sp], 16
ret
.size flash_boot_enter_slc_mode, .-flash_boot_enter_slc_mode
@@ -20970,17 +21336,17 @@ flash_boot_enter_slc_mode:
.global flash_boot_exit_slc_mode
.type flash_boot_exit_slc_mode, %function
flash_boot_exit_slc_mode:
- adrp x1, .LANCHOR0+1856
+ adrp x1, .LANCHOR0+1872
uxtb w0, w0
stp x29, x30, [sp, -16]!
add x29, sp, 0
- ldr w2, [x1,#:lo12:.LANCHOR0+1856]
+ ldr w2, [x1,#:lo12:.LANCHOR0+1872]
mov w1, 12336
movk w1, 0x5638, lsl 16
cmp w2, w1
- bne .L3204
+ bne .L3295
bl flash_exit_slc_mode
-.L3204:
+.L3295:
ldp x29, x30, [sp], 16
ret
.size flash_boot_exit_slc_mode, .-flash_boot_exit_slc_mode
@@ -20998,50 +21364,50 @@ IdBlockReadData:
stp x25, x26, [sp,64]
stp x21, x22, [sp,32]
stp x27, x28, [sp,80]
+ ldr w20, [x19,12]
mov w26, w1
- mov x21, x2
ldrb w27, [x0,9]
+ adrp x0, .LC166
+ mov x21, x2
+ add x0, x0, :lo12:.LC166
mov w1, w23
- ldrh w20, [x0,10]
- adrp x0, .LC165
- add x0, x0, :lo12:.LC165
mov w2, w26
- mov w25, 0
- mul w20, w27, w20
+ mul w20, w20, w27
bl printk
- mov w6, 4
- adrp x7, .LANCHOR4
+ mov w25, 0
+ mov w5, 4
+ adrp x6, .LANCHOR4
uxth w20, w20
udiv w24, w23, w20
msub w24, w24, w20, w23
sub w28, w23, w24
mul w3, w24, w27
ubfx x3, x3, 2, 2
-.L3207:
+.L3298:
cmp w25, w26
- bcs .L3213
- add w5, w25, w24
- add x0, x19, 196
- ubfx x5, x5, 2, 16
- sub w20, w6, w3
+ bcs .L3304
+ add w0, w25, w24
+ add x1, x19, 200
+ ubfx x0, x0, 2, 16
+ sub w20, w5, w3
uxth w20, w20
- ldrh w4, [x0,w5,sxtw 1]
- ldrb w0, [x19,120]
- cbz w0, .L3208
- ldr w1, [x19,1856]
- mov w0, 12336
- movk w0, 0x5638, lsl 16
- cmp w1, w0
- csel w4, w4, w5, ne
-.L3208:
+ ldrh w4, [x1,w0,sxtw 1]
+ ldrb w1, [x19,196]
+ cbz w1, .L3299
+ ldr w2, [x19,1872]
+ mov w1, 12336
+ movk w1, 0x5638, lsl 16
+ cmp w2, w1
+ csel w4, w4, w0, ne
+.L3299:
ldr x0, [x19,744]
add w3, w3, w28
- str x6, [x29,96]
+ str x5, [x29,96]
madd w22, w4, w27, w3
ldrb w1, [x0,9]
- add x0, x7, :lo12:.LANCHOR4
- ldrb w4, [x19,1936]
- str x7, [x29,120]
+ add x0, x6, :lo12:.LANCHOR4
+ ldrb w4, [x19,1944]
+ str x6, [x29,120]
ldrb w0, [x0,98]
str x4, [x29,112]
str x1, [x29,104]
@@ -21064,15 +21430,15 @@ IdBlockReadData:
add x21, x21, x0
mov w3, 0
uxth w25, w20
- ldr x6, [x29,96]
- ldr x7, [x29,120]
- b .L3207
-.L3213:
- adrp x0, .LC166
+ ldr x5, [x29,96]
+ ldr x6, [x29,120]
+ b .L3298
+.L3304:
+ adrp x0, .LC167
mov w1, w23
mov w2, w26
mov w3, 0
- add x0, x0, :lo12:.LC166
+ add x0, x0, :lo12:.LC167
bl printk
mov w0, 0
ldp x19, x20, [sp,16]
@@ -21100,31 +21466,31 @@ write_idblock:
stp x27, x28, [sp,80]
mov x22, x1
mov x28, x24
- ldr x0, [x0,744]
- ldrb w21, [x0,9]
- ldrh w20, [x0,10]
+ ldr x1, [x0,744]
+ ldr w21, [x0,12]
mov w0, 59392
movk w0, 0x3, lsl 16
+ ldrb w20, [x1,9]
bl ftl_malloc
mov x26, x0
mov w0, -1
- cbz x26, .L3252
+ cbz x26, .L3343
add w19, w19, 511
lsr w19, w19, 9
cmp w19, 8
- bls .L3236
+ bls .L3327
cmp w19, 500
- bhi .L3252
- b .L3216
-.L3236:
+ bhi .L3343
+ b .L3307
+.L3327:
mov w19, 8
-.L3216:
+.L3307:
ldr w2, [x22]
mov w1, 35899
movk w1, 0xfcdc, lsl 16
mov w0, -1
cmp w2, w1
- bne .L3252
+ bne .L3343
mul w21, w20, w21
add x3, x22, 253952
mov w2, 63999
@@ -21136,9 +21502,9 @@ write_idblock:
udiv w0, w0, w21
str w0, [x29,224]
mov w0, 0
-.L3220:
+.L3311:
ldr w1, [x3]
- cbnz w1, .L3217
+ cbnz w1, .L3308
ldr w1, [x22,w0,uxtw 2]
add w0, w0, 1
cmp w0, w4
@@ -21146,31 +21512,31 @@ write_idblock:
csel w0, w0, wzr, cc
str w1, [x3],-4
cmp w2, 4096
- bne .L3220
- b .L3219
-.L3217:
- adrp x0, .LC167
- add x0, x0, :lo12:.LC167
- bl printk
-.L3219:
+ bne .L3311
+ b .L3310
+.L3308:
adrp x0, .LC168
+ add x0, x0, :lo12:.LC168
+ bl printk
+.L3310:
+ adrp x0, .LC169
mov w3, 5
add x20, x28, :lo12:.LANCHOR0
- add x0, x0, :lo12:.LC168
+ add x0, x0, :lo12:.LC169
mov x1, x23
mov w2, 4
adrp x24, .LANCHOR4
bl rknand_print_hex
ldr w1, [x22,512]
- adrp x0, .LC169
+ adrp x0, .LC170
ldrb w2, [x20,9]
- add x0, x0, :lo12:.LC169
+ add x0, x0, :lo12:.LC170
bl printk
add x4, x24, :lo12:.LANCHOR4
- adrp x0, .LC170
+ adrp x0, .LC171
ldrh w3, [x20,194]
mov w1, w19
- add x0, x0, :lo12:.LC170
+ add x0, x0, :lo12:.LC171
mov w2, w19
ldr w4, [x4,92]
bl printk
@@ -21178,49 +21544,49 @@ write_idblock:
ldrb w0, [x20,9]
ldr w1, [x22,512]
cmp w1, w0
- bls .L3221
+ bls .L3312
str w0, [x22,512]
-.L3221:
+.L3312:
lsl w0, w19, 7
str w0, [x29,204]
- adrp x0, .LC171
- mov x20, 0
- add x0, x0, :lo12:.LC171
- str x0, [x29,192]
adrp x0, .LC172
- str w20, [x29,236]
+ mov x20, 0
add x0, x0, :lo12:.LC172
- str x0, [x29,184]
+ str x0, [x29,192]
adrp x0, .LC173
+ str w20, [x29,236]
add x0, x0, :lo12:.LC173
+ str x0, [x29,184]
+ adrp x0, .LC174
+ add x0, x0, :lo12:.LC174
str x0, [x29,176]
-.L3234:
+.L3325:
add x0, x28, :lo12:.LANCHOR0
ldr w1, [x23,x20,lsl 2]
str w20, [x29,232]
ldrb w0, [x0,9]
cmp w1, w0
- bcs .L3222
+ bcs .L3313
ldr x0, [x29,208]
add x0, x0, :lo12:.LANCHOR4
ldr w0, [x0,92]
cmp w1, w0
- bcc .L3222
+ bcc .L3313
ldr w0, [x29,224]
cmp w0, 1
cset w0, hi
str w0, [x29,228]
uxtw x0, w20
- cbz w0, .L3223
+ cbz w0, .L3314
ldr w0, [x29,228]
- cbz w0, .L3223
+ cbz w0, .L3314
uxtw x0, w20
sub w0, w0, #1
ldr w0, [x23,x0,lsl 2]
add w0, w0, 1
cmp w1, w0
- beq .L3222
-.L3223:
+ beq .L3313
+.L3314:
mov w1, 0
mov x2, 512
mov x0, x26
@@ -21229,29 +21595,29 @@ write_idblock:
add x0, x28, :lo12:.LANCHOR0
mov w2, w19
mul w24, w21, w24
- ldr x0, [x0,744]
- mov w1, w24
- ldrb w27, [x0,9]
- ldrh w25, [x0,10]
+ ldr x1, [x0,744]
+ ldr w25, [x0,12]
ldr x0, [x29,192]
- mul w25, w27, w25
+ ldrb w27, [x1,9]
+ mov w1, w24
bl printk
mov w0, 0
- uxth w25, w25
+ mul w25, w25, w27
bl flash_boot_enter_slc_mode
udiv w1, w24, w27
mov w2, 0
mov w0, 0
+ uxth w25, w25
bl FlashEraseBlock
cmp w19, w25
mov w2, 1
- bls .L3224
+ bls .L3315
mov w2, 0
mov w0, 0
add w1, w24, w25
bl FlashEraseBlock
mov w2, 2
-.L3224:
+.L3315:
mov w0, 0
str x2, [x29,216]
bl flash_boot_exit_slc_mode
@@ -21271,42 +21637,42 @@ write_idblock:
sdiv w5, w0, w5
sub w0, w24, w8
str w0, [x29,216]
-.L3225:
+.L3316:
cmp w6, w5
- bcs .L3263
+ bcs .L3354
add w0, w6, w8
lsr w0, w0, 2
uxth w1, w0
and w0, w0, 65535
- cbz w1, .L3226
+ cbz w1, .L3317
add w2, w0, 1
- add x1, x4, 196
- ldrb w3, [x4,120]
+ add x1, x4, 200
+ ldrb w3, [x4,196]
ldrh w1, [x1,w2,sxtw 1]
- cbz w3, .L3227
- ldr w7, [x4,1856]
+ cbz w3, .L3318
+ ldr w7, [x4,1872]
mov w3, 12336
movk w3, 0x5638, lsl 16
cmp w7, w3
csel w1, w1, w2, ne
-.L3227:
+.L3318:
add w1, w1, w10
lsl w1, w1, 2
str w1, [x29,240]
-.L3226:
- add x1, x4, 196
+.L3317:
+ add x1, x4, 200
str w11, [x29,244]
ldrh w7, [x1,w0,sxtw 1]
- ldrb w1, [x4,120]
- cbz w1, .L3228
- ldr w2, [x4,1856]
+ ldrb w1, [x4,196]
+ cbz w1, .L3319
+ ldr w2, [x4,1872]
mov w1, 12336
movk w1, 0x5638, lsl 16
cmp w2, w1
csel w7, w7, w0, ne
-.L3228:
+.L3319:
ldr w0, [x29,216]
- ldrb w12, [x4,1936]
+ ldrb w12, [x4,1944]
str x11, [x29,104]
madd w2, w7, w27, w0
ldr x0, [x29,208]
@@ -21352,8 +21718,8 @@ write_idblock:
uxth w6, w6
ldr x5, [x29,136]
ldr x4, [x29,168]
- b .L3225
-.L3263:
+ b .L3316
+.L3354:
ldr x0, [x29,184]
mov w1, w24
mov w2, w19
@@ -21367,11 +21733,11 @@ write_idblock:
mov x2, x26
mov x1, x22
mov x0, 0
-.L3230:
+.L3321:
ldr w4, [x29,204]
mov w3, w0
cmp w0, w4
- bcs .L3264
+ bcs .L3355
mov x27, x2
mov x25, x1
mov x24, x0
@@ -21381,7 +21747,7 @@ write_idblock:
ldr w5, [x27]
ldr w4, [x25]
cmp w5, w4
- beq .L3230
+ beq .L3321
mov w1, 0
mov x2, 512
mov x0, x26
@@ -21396,17 +21762,17 @@ write_idblock:
ldr x3, [x29,216]
ldr x0, [x29,176]
bl printk
- adrp x0, .LC174
+ adrp x0, .LC175
add x1, x22, x24
- add x0, x0, :lo12:.LC174
+ add x0, x0, :lo12:.LC175
mov w2, 4
mov w3, 256
bl rknand_print_hex
- adrp x0, .LC175
+ adrp x0, .LC176
add x1, x26, x24
mov w2, 4
mov w3, 256
- add x0, x0, :lo12:.LC175
+ add x0, x0, :lo12:.LC176
bl rknand_print_hex
mov w0, 0
bl flash_boot_enter_slc_mode
@@ -21416,34 +21782,34 @@ write_idblock:
mul w1, w21, w1
bl FlashEraseBlock
ldr w0, [x29,228]
- cbz w0, .L3231
+ cbz w0, .L3322
ldr w1, [x23,x20,lsl 2]
mov w0, 0
mov w2, 0
madd w1, w1, w21, w21
bl FlashEraseBlock
-.L3231:
+.L3322:
mov w0, 0
bl flash_boot_exit_slc_mode
- adrp x0, .LC176
+ adrp x0, .LC177
ldr w1, [x23,x20,lsl 2]
- add x0, x0, :lo12:.LC176
+ add x0, x0, :lo12:.LC177
bl printk
- b .L3222
-.L3264:
+ b .L3313
+.L3355:
ldr w0, [x29,236]
add w0, w0, 1
str w0, [x29,236]
-.L3222:
+.L3313:
add x20, x20, 1
cmp x20, 5
- bne .L3234
+ bne .L3325
mov x0, x26
bl ftl_free
ldr w0, [x29,236]
cmp w0, wzr
csetm w0, eq
-.L3252:
+.L3343:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -21461,17 +21827,17 @@ CRC_32:
mov x5, x0
add x3, x3, :lo12:.LANCHOR1
mov w0, w2
-.L3266:
+.L3357:
cmp w1, w2
- bls .L3268
+ bls .L3359
ldrb w4, [x5,x2]
- add x6, x3, 3176
+ add x6, x3, 3304
add x2, x2, 1
eor w4, w4, w0, lsr 24
ldr w4, [x6,w4,uxtw 2]
eor w0, w4, w0, lsl 8
- b .L3266
-.L3268:
+ b .L3357
+.L3359:
ret
.size CRC_32, .-CRC_32
.align 2
@@ -21488,12 +21854,12 @@ write_loader_lba:
mov w21, w1
mov x23, x2
adrp x20, .LANCHOR5
- bne .L3270
+ bne .L3361
ldr w1, [x2]
mov w0, 35899
movk w0, 0xfcdc, lsl 16
cmp w1, w0
- bne .L3270
+ bne .L3361
add x22, x20, :lo12:.LANCHOR5
mov w0, 1
strb w0, [x22,-32]
@@ -21506,14 +21872,14 @@ write_loader_lba:
movk w2, 0x3, lsl 16
bl ftl_memset
str w19, [x22,-16]
-.L3270:
+.L3361:
add x3, x20, :lo12:.LANCHOR5
ldrb w0, [x3,-32]
- cbz w0, .L3269
+ cbz w0, .L3360
sub w0, w19, #64
ldr x22, [x3,-24]
cmp w0, 499
- bhi .L3272
+ bhi .L3363
mov w3, 564
ubfiz x0, x0, 9, 25
sub w3, w3, w19
@@ -21523,28 +21889,28 @@ write_loader_lba:
csel w2, w3, w21, ls
lsl w2, w2, 9
bl ftl_memcpy
- b .L3273
-.L3272:
+ b .L3364
+.L3363:
cmp w19, 563
- bhi .L3283
-.L3273:
+ bhi .L3374
+.L3364:
add x0, x20, :lo12:.LANCHOR5
ldr w1, [x0,-16]
cmp w1, w19
- beq .L3281
+ beq .L3372
strb wzr, [x0,-32]
- cbz x22, .L3282
+ cbz x22, .L3373
mov x0, x22
bl ftl_free
-.L3282:
+.L3373:
add x0, x20, :lo12:.LANCHOR5
str xzr, [x0,-24]
-.L3281:
+.L3372:
add x20, x20, :lo12:.LANCHOR5
add w19, w19, w21
str w19, [x20,-16]
- b .L3269
-.L3283:
+ b .L3360
+.L3374:
ldr w2, [x3,-16]
mov w0, 500
sub w2, w2, #64
@@ -21554,7 +21920,7 @@ write_loader_lba:
ldr x0, [x0,#:lo12:.LANCHOR0+744]
ldrb w0, [x0,9]
cmp w0, 4
- beq .L3284
+ beq .L3375
mov w0, 2
str w0, [x29,64]
mov w0, 3
@@ -21565,41 +21931,41 @@ write_loader_lba:
str w0, [x29,76]
mov w0, 6
str w0, [x29,80]
- b .L3275
-.L3284:
+ b .L3366
+.L3375:
mov x3, 0
-.L3274:
+.L3365:
cmp w2, 256
add x0, x29, 64
- bls .L3276
+ bls .L3367
lsl w1, w3, 1
str w1, [x0,x3,lsl 2]
- b .L3277
-.L3276:
+ b .L3368
+.L3367:
str w3, [x0,x3,lsl 2]
-.L3277:
+.L3368:
add x3, x3, 1
cmp x3, 5
- bne .L3274
-.L3275:
+ bne .L3365
+.L3366:
add x0, x20, :lo12:.LANCHOR5
mov w4, 63999
ldr x3, [x0,-8]
add x3, x3, 61440
add x3, x3, 2559
-.L3280:
+.L3371:
ldrb w0, [x3]
- cbz w0, .L3278
+ cbz w0, .L3369
add w2, w4, 1
lsl w0, w2, 2
- b .L3279
-.L3278:
+ b .L3370
+.L3369:
sub w4, w4, #1
sub x3, x3, #1
cmp w4, 4096
- bne .L3280
+ bne .L3371
lsl w0, w2, 9
-.L3279:
+.L3370:
mov x1, x22
add x2, x29, 64
add x22, x20, :lo12:.LANCHOR5
@@ -21608,8 +21974,8 @@ write_loader_lba:
strb wzr, [x22,-32]
bl ftl_free
str xzr, [x22,-24]
- b .L3281
-.L3269:
+ b .L3372
+.L3360:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldr x23, [sp,48]
@@ -21629,15 +21995,15 @@ FtlWrite:
cmp w0, 1983
mov w19, w1
mov w20, w2
- bhi .L3294
- cbnz w21, .L3294
+ bhi .L3385
+ cbnz w21, .L3385
mov w0, w1
mov w1, w2
mov x2, x3
str x3, [x29,56]
bl write_loader_lba
ldr x3, [x29,56]
-.L3294:
+.L3385:
mov w1, w19
mov w2, w20
mov w0, w21
@@ -21661,146 +22027,146 @@ rknand_sys_storage_ioctl:
stp x21, x22, [sp,32]
mov w19, w1
mov x20, x2
- beq .L3303
+ beq .L3394
mov w0, 29187
movk w0, 0x4004, lsl 16
cmp w1, w0
- bhi .L3304
+ bhi .L3395
mov w0, 25726
movk w0, 0x4004, lsl 16
cmp w1, w0
- beq .L3305
+ beq .L3396
mov w0, 25726
movk w0, 0x4004, lsl 16
cmp w1, w0
- bhi .L3306
+ bhi .L3397
mov w0, 25601
movk w0, 0x4004, lsl 16
cmp w1, w0
- beq .L3307
+ beq .L3398
mov w0, 25601
movk w0, 0x4004, lsl 16
cmp w1, w0
- bhi .L3308
+ bhi .L3399
mov w0, 25364
movk w0, 0x4004, lsl 16
cmp w1, w0
- bne .L3365
+ bne .L3456
bl rknand_dev_flush
- b .L3399
-.L3308:
+ b .L3490
+.L3399:
mov w0, 25602
movk w0, 0x4004, lsl 16
cmp w1, w0
- beq .L3310
+ beq .L3401
mov w0, 25603
movk w0, 0x4004, lsl 16
cmp w1, w0
- beq .L3311
- b .L3365
-.L3306:
+ beq .L3402
+ b .L3456
+.L3397:
mov w0, 27688
movk w0, 0x4004, lsl 16
cmp w1, w0
- beq .L3312
+ beq .L3403
mov w0, 27688
movk w0, 0x4004, lsl 16
cmp w1, w0
- bhi .L3313
+ bhi .L3404
mov w0, 25727
movk w0, 0x4004, lsl 16
cmp w1, w0
- beq .L3314
- b .L3365
-.L3313:
+ beq .L3405
+ b .L3456
+.L3404:
mov w0, 27698
movk w0, 0x4004, lsl 16
cmp w1, w0
- beq .L3312
+ beq .L3403
mov w0, 27708
movk w0, 0x4004, lsl 16
cmp w1, w0
- beq .L3312
- b .L3365
-.L3304:
+ beq .L3403
+ b .L3456
+.L3395:
mov w0, 29267
movk w0, 0x4004, lsl 16
cmp w1, w0
- beq .L3315
+ beq .L3406
mov w0, 29267
movk w0, 0x4004, lsl 16
cmp w1, w0
- bhi .L3316
+ bhi .L3407
mov w0, 29189
movk w0, 0x4004, lsl 16
cmp w1, w0
- beq .L3317
+ beq .L3408
mov w0, 29189
movk w0, 0x4004, lsl 16
cmp w1, w0
- bcc .L3318
+ bcc .L3409
mov w0, 29210
movk w0, 0x4004, lsl 16
cmp w1, w0
- beq .L3319
+ beq .L3410
mov w0, 29266
movk w0, 0x4004, lsl 16
cmp w1, w0
- beq .L3320
- b .L3365
-.L3316:
+ beq .L3411
+ b .L3456
+.L3407:
mov w0, 30225
movk w0, 0x4004, lsl 16
cmp w1, w0
- beq .L3321
+ beq .L3412
mov w0, 30225
movk w0, 0x4004, lsl 16
cmp w1, w0
- bhi .L3322
+ bhi .L3413
mov w0, 29268
movk w0, 0x4004, lsl 16
cmp w1, w0
- beq .L3323
+ beq .L3414
mov w0, 30224
movk w0, 0x4004, lsl 16
cmp w1, w0
- beq .L3324
- b .L3365
-.L3322:
+ beq .L3415
+ b .L3456
+.L3413:
mov w0, 30226
movk w0, 0x4004, lsl 16
cmp w1, w0
- beq .L3324
+ beq .L3415
mov w0, 30227
movk w0, 0x4004, lsl 16
cmp w1, w0
- beq .L3321
- b .L3365
-.L3318:
- adrp x0, .LC177
- add x0, x0, :lo12:.LC177
+ beq .L3412
+ b .L3456
+.L3409:
+ adrp x0, .LC178
+ add x0, x0, :lo12:.LC178
bl printk
mov w0, 4096
bl ftl_malloc
mov x19, x0
- cbnz x0, .L3325
-.L3330:
+ cbnz x0, .L3416
+.L3421:
mov x0, -12
- b .L3302
-.L3325:
+ b .L3393
+.L3416:
mov x1, x20
mov x2, 512
bl rk_copy_from_user
- cbnz x0, .L3406
- adrp x0, .LC179
+ cbnz x0, .L3497
+ adrp x0, .LC180
ldr w1, [x19]
ldr w2, [x19,4]
- add x0, x0, :lo12:.LC179
+ add x0, x0, :lo12:.LC180
bl printk
ldr w0, [x19,4]
str w0, [x29,52]
cmp w0, 8
- bhi .L3403
+ bhi .L3494
bl rknand_device_lock
ldr w1, [x29,52]
mov x2, x19
@@ -21812,106 +22178,106 @@ rknand_sys_storage_ioctl:
mov x1, x19
ubfiz x2, x2, 9, 23
bl rk_copy_to_user
- cbz x0, .L3409
- adrp x0, .LC180
- add x0, x0, :lo12:.LC180
-.L3401:
+ cbz x0, .L3500
+ adrp x0, .LC181
+ add x0, x0, :lo12:.LC181
+.L3492:
bl printk
-.L3403:
+.L3494:
mov x0, x19
-.L3404:
+.L3495:
bl ftl_free
-.L3402:
+.L3493:
mov x0, -14
- b .L3302
-.L3317:
- adrp x0, .LC181
- add x0, x0, :lo12:.LC181
+ b .L3393
+.L3408:
+ adrp x0, .LC182
+ add x0, x0, :lo12:.LC182
bl printk
mov w0, 4096
bl ftl_malloc
mov x19, x0
- cbz x0, .L3330
+ cbz x0, .L3421
mov x1, x20
mov x2, 4096
bl rk_copy_from_user
- cbnz x0, .L3406
- adrp x0, .LC182
+ cbnz x0, .L3497
+ adrp x0, .LC183
ldr w1, [x19]
ldr w2, [x19,4]
- add x0, x0, :lo12:.LC182
+ add x0, x0, :lo12:.LC183
bl printk
adrp x0, .LANCHOR5
add x22, x0, :lo12:.LANCHOR5
mov x20, x0
ldr x21, [x22,-8]
- cbnz x21, .L3332
+ cbnz x21, .L3423
mov w0, 260096
bl ftl_malloc
str x0, [x22,-8]
- cbz x0, .L3403
+ cbz x0, .L3494
mov w1, w21
mov x2, 260096
bl memset
-.L3332:
+.L3423:
ldr w2, [x19,4]
cmp w2, 4088
- bhi .L3403
+ bhi .L3494
ldr w0, [x19]
mov w1, 55296
movk w1, 0x3, lsl 16
cmp w0, w1
- bhi .L3403
+ bhi .L3494
add x20, x20, :lo12:.LANCHOR5
uxtw x2, w2
ldr x1, [x20,-8]
add x0, x1, x0, uxtw
add x1, x19, 8
bl memcpy
-.L3409:
+.L3500:
mov x0, x19
bl ftl_free
- b .L3399
-.L3320:
- adrp x0, .LC183
- add x0, x0, :lo12:.LC183
+ b .L3490
+.L3411:
+ adrp x0, .LC184
+ add x0, x0, :lo12:.LC184
bl printk
mov w0, 4096
bl ftl_malloc
mov x19, x0
- cbz x0, .L3330
+ cbz x0, .L3421
mov x1, x20
mov x2, 28
bl rk_copy_from_user
- cbz x0, .L3335
-.L3406:
- adrp x0, .LC178
- add x0, x0, :lo12:.LC178
- b .L3401
-.L3335:
+ cbz x0, .L3426
+.L3497:
+ adrp x0, .LC179
+ add x0, x0, :lo12:.LC179
+ b .L3492
+.L3426:
ldr w1, [x19]
- adrp x0, .LC184
+ adrp x0, .LC185
ldr w2, [x19,4]
- add x0, x0, :lo12:.LC184
+ add x0, x0, :lo12:.LC185
bl printk
ldr w1, [x19]
mov w0, 59392
movk w0, 0x3, lsl 16
cmp w1, w0
- bhi .L3403
+ bhi .L3494
adrp x20, .LANCHOR5
add x20, x20, :lo12:.LANCHOR5
ldr x0, [x20,-8]
- cbz x0, .L3403
+ cbz x0, .L3494
bl CRC_32
ldr w1, [x19,4]
cmp w1, w0
- beq .L3338
+ beq .L3429
mov x0, x19
bl ftl_free
mov x0, -2
- b .L3302
-.L3338:
+ b .L3393
+.L3429:
bl rknand_device_lock
ldr x1, [x20,-8]
add x2, x19, 8
@@ -21921,39 +22287,39 @@ rknand_sys_storage_ioctl:
ldr x0, [x20,-8]
bl ftl_free
str xzr, [x20,-8]
- b .L3409
-.L3319:
- adrp x0, .LC185
- add x0, x0, :lo12:.LC185
+ b .L3500
+.L3410:
+ adrp x0, .LC186
+ add x0, x0, :lo12:.LC186
bl printk
mov w0, 4096
bl ftl_malloc
mov x21, x0
- cbz x0, .L3330
+ cbz x0, .L3421
bl ftl_read_flash_info
mov x0, x20
mov x1, x21
mov x2, 11
- b .L3411
-.L3303:
- adrp x0, .LC186
- add x0, x0, :lo12:.LC186
+ b .L3502
+.L3394:
+ adrp x0, .LC187
+ add x0, x0, :lo12:.LC187
bl printk
bl nand_blk_add_whole_disk
mov w0, 4096
bl ftl_malloc
mov x21, x0
- cbz x0, .L3330
+ cbz x0, .L3421
mov w1, 0
mov w2, 64
bl ftl_memset
mov x0, x20
mov x1, x21
mov x2, 64
- b .L3411
-.L3315:
- adrp x0, .LC187
- add x0, x0, :lo12:.LC187
+ b .L3502
+.L3406:
+ adrp x0, .LC188
+ add x0, x0, :lo12:.LC188
bl printk
adrp x0, .LANCHOR5
add x1, x29, 52
@@ -21962,18 +22328,18 @@ rknand_sys_storage_ioctl:
ldr w0, [x0,20]
str w0, [x29,52]
mov x0, x20
-.L3394:
+.L3485:
bl rk_copy_to_user
- cbnz x0, .L3402
- b .L3399
-.L3323:
- adrp x0, .LC188
- add x0, x0, :lo12:.LC188
+ cbnz x0, .L3493
+ b .L3490
+.L3414:
+ adrp x0, .LC189
+ add x0, x0, :lo12:.LC189
bl printk
mov w0, 4096
bl ftl_malloc
mov x21, x0
- cbz x0, .L3330
+ cbz x0, .L3421
bl rknand_device_lock
mov w1, 2
mov x2, x21
@@ -21983,41 +22349,41 @@ rknand_sys_storage_ioctl:
mov x0, x20
mov x1, x21
mov x2, 1024
-.L3411:
+.L3502:
bl rk_copy_to_user
mov x19, x0
mov x0, x21
- cbnz x19, .L3404
+ cbnz x19, .L3495
bl ftl_free
- b .L3329
-.L3307:
- adrp x0, .LC189
- add x0, x0, :lo12:.LC189
+ b .L3420
+.L3398:
+ adrp x0, .LC190
+ add x0, x0, :lo12:.LC190
bl printk
add x0, x29, 56
mov x1, x20
mov x2, 520
bl rk_copy_from_user
mov x19, x0
- cbz x0, .L3343
-.L3348:
- adrp x0, .LC178
- add x0, x0, :lo12:.LC178
+ cbz x0, .L3434
+.L3439:
+ adrp x0, .LC179
+ add x0, x0, :lo12:.LC179
bl printk
- b .L3402
-.L3343:
+ b .L3493
+.L3434:
ldr w1, [x29,56]
mov w0, 21060
movk w0, 0x4b4d, lsl 16
cmp w1, w0
- beq .L3344
-.L3345:
+ beq .L3435
+.L3436:
mov x19, -1
- b .L3329
-.L3344:
+ b .L3420
+.L3435:
ldr w0, [x29,60]
cmp w0, 512
- bhi .L3345
+ bhi .L3436
adrp x1, .LANCHOR5
add x0, x29, 56
add x21, x1, :lo12:.LANCHOR5
@@ -22028,37 +22394,37 @@ rknand_sys_storage_ioctl:
mov w0, 5161
movk w0, 0xc059, lsl 16
cmp w1, w0
- beq .L3346
+ beq .L3437
add x0, x29, 120
mov w1, w19
mov x2, 128
str w19, [x29,64]
str w19, [x29,68]
bl memset
-.L3346:
+.L3437:
add x0, x29, 312
mov w1, 0
mov x2, 256
str wzr, [x29,72]
bl memset
- b .L3408
-.L3310:
- adrp x0, .LC190
- add x0, x0, :lo12:.LC190
+ b .L3499
+.L3401:
+ adrp x0, .LC191
+ add x0, x0, :lo12:.LC191
bl printk
add x0, x29, 56
mov x1, x20
mov x2, 520
bl rk_copy_from_user
- cbnz x0, .L3348
+ cbnz x0, .L3439
ldr w1, [x29,56]
mov w0, 21060
movk w0, 0x4b4d, lsl 16
cmp w1, w0
- bne .L3345
+ bne .L3436
ldr w0, [x29,60]
cmp w0, 512
- bhi .L3345
+ bhi .L3436
adrp x2, .LANCHOR5
mov w1, 5161
add x0, x2, :lo12:.LANCHOR5
@@ -22066,12 +22432,12 @@ rknand_sys_storage_ioctl:
ldr w3, [x0,8]
mov x0, -2
cmp w3, w1
- bne .L3302
+ bne .L3393
ldr w1, [x29,68]
mov x0, -3
sub w3, w1, #1
cmp w3, 127
- bhi .L3302
+ bhi .L3393
ldr x19, [x2,#:lo12:.LANCHOR5]
add x0, x19, 64
str w1, [x19,12]
@@ -22080,38 +22446,38 @@ rknand_sys_storage_ioctl:
bl memcpy
mov w0, 1
mov x1, x19
- b .L3400
-.L3314:
- adrp x0, .LC191
- add x0, x0, :lo12:.LC191
+ b .L3491
+.L3405:
+ adrp x0, .LC192
+ add x0, x0, :lo12:.LC192
bl printk
add x0, x29, 56
mov x1, x20
mov x2, 520
bl rk_copy_from_user
- cbnz x0, .L3348
+ cbnz x0, .L3439
ldr w1, [x29,56]
mov w0, 17476
movk w0, 0x4253, lsl 16
cmp w1, w0
- bne .L3345
+ bne .L3436
ldr w0, [x29,60]
cmp w0, 512
- bhi .L3345
+ bhi .L3436
adrp x19, .LANCHOR5
add x0, x19, :lo12:.LANCHOR5
ldr w1, [x0,12]
- cbnz w1, .L3349
-.L3352:
+ cbnz w1, .L3440
+.L3443:
mov x0, 0
- b .L3302
-.L3349:
+ b .L3393
+.L3440:
ldr x1, [x0,16]
mov w2, 22867
movk w2, 0x4453, lsl 16
ldr w3, [x1]
cmp w3, w2
- beq .L3350
+ beq .L3441
mov w2, 22867
movk w2, 0x4453, lsl 16
str w2, [x1]
@@ -22121,7 +22487,7 @@ rknand_sys_storage_ioctl:
ldr x0, [x0,16]
str wzr, [x0,8]
str wzr, [x0,12]
-.L3350:
+.L3441:
add x0, x19, :lo12:.LANCHOR5
adrp x20, .LANCHOR5
ldr x1, [x0,16]
@@ -22133,7 +22499,7 @@ rknand_sys_storage_ioctl:
movk w1, 0x4b4d, lsl 16
ldr w2, [x0]
cmp w2, w1
- beq .L3351
+ beq .L3442
mov w1, 21060
movk w1, 0x4b4d, lsl 16
str w1, [x0]
@@ -22142,7 +22508,7 @@ rknand_sys_storage_ioctl:
str w1, [x0,4]
ldr x0, [x20,#:lo12:.LANCHOR5]
str wzr, [x0,8]
-.L3351:
+.L3442:
add x20, x19, :lo12:.LANCHOR5
ldr x19, [x19,#:lo12:.LANCHOR5]
mov w1, 0
@@ -22155,35 +22521,35 @@ rknand_sys_storage_ioctl:
bl StorageSysDataStore
str wzr, [x20,12]
str wzr, [x20,8]
- b .L3399
-.L3305:
- adrp x0, .LC192
- add x0, x0, :lo12:.LC192
+ b .L3490
+.L3396:
+ adrp x0, .LC193
+ add x0, x0, :lo12:.LC193
bl printk
add x0, x29, 56
mov x1, x20
mov x2, 520
bl rk_copy_from_user
- cbnz x0, .L3348
+ cbnz x0, .L3439
ldr w2, [x29,56]
mov w1, 20037
movk w1, 0x4253, lsl 16
cmp w2, w1
- bne .L3345
+ bne .L3436
ldr w1, [x29,60]
cmp w1, 512
- bhi .L3345
+ bhi .L3436
adrp x19, .LANCHOR5
add x1, x19, :lo12:.LANCHOR5
ldr w2, [x1,12]
cmp w2, 1
- beq .L3352
+ beq .L3443
ldr x2, [x1,16]
mov w3, 22867
movk w3, 0x4453, lsl 16
ldr w4, [x2]
cmp w4, w3
- beq .L3353
+ beq .L3444
mov w3, 22867
movk w3, 0x4453, lsl 16
str w3, [x2]
@@ -22193,7 +22559,7 @@ rknand_sys_storage_ioctl:
ldr x1, [x1,16]
str w0, [x1,8]
str w0, [x1,12]
-.L3353:
+.L3444:
add x0, x19, :lo12:.LANCHOR5
adrp x20, .LANCHOR5
ldr x1, [x0,16]
@@ -22206,7 +22572,7 @@ rknand_sys_storage_ioctl:
movk w1, 0x4b4d, lsl 16
ldr w2, [x0]
cmp w2, w1
- beq .L3354
+ beq .L3445
mov w1, 21060
movk w1, 0x4b4d, lsl 16
str w1, [x0]
@@ -22215,7 +22581,7 @@ rknand_sys_storage_ioctl:
str w1, [x0,4]
ldr x0, [x20,#:lo12:.LANCHOR5]
str wzr, [x0,8]
-.L3354:
+.L3445:
add x20, x19, :lo12:.LANCHOR5
ldr x19, [x19,#:lo12:.LANCHOR5]
mov w1, 0
@@ -22228,66 +22594,66 @@ rknand_sys_storage_ioctl:
bl StorageSysDataStore
mov w0, 1
str w0, [x20,12]
- b .L3399
-.L3311:
- adrp x0, .LC193
- add x0, x0, :lo12:.LC193
+ b .L3490
+.L3402:
+ adrp x0, .LC194
+ add x0, x0, :lo12:.LC194
bl printk
add x0, x29, 56
mov x1, x20
mov x2, 520
bl rk_copy_from_user
- cbnz x0, .L3348
+ cbnz x0, .L3439
ldr w1, [x29,56]
mov w0, 20051
movk w0, 0x4144, lsl 16
cmp w1, w0
- bne .L3345
+ bne .L3436
ldr w2, [x29,60]
cmp w2, 512
- bhi .L3345
+ bhi .L3436
adrp x1, .LANCHOR5
add x0, x29, 64
add x1, x1, :lo12:.LANCHOR5
uxtw x2, w2
add x1, x1, 24
- b .L3407
-.L3312:
+ b .L3498
+.L3403:
mov w0, 27698
movk w0, 0x4004, lsl 16
cmp w19, w0
- bne .L3355
- adrp x0, .LC194
- add x0, x0, :lo12:.LC194
- b .L3397
-.L3355:
+ bne .L3446
+ adrp x0, .LC195
+ add x0, x0, :lo12:.LC195
+ b .L3488
+.L3446:
mov w0, 27708
movk w0, 0x4004, lsl 16
cmp w19, w0
- bne .L3357
- adrp x0, .LC195
- add x0, x0, :lo12:.LC195
- b .L3397
-.L3357:
+ bne .L3448
adrp x0, .LC196
add x0, x0, :lo12:.LC196
-.L3397:
+ b .L3488
+.L3448:
+ adrp x0, .LC197
+ add x0, x0, :lo12:.LC197
+.L3488:
bl printk
add x0, x29, 56
mov x1, x20
mov x2, 520
bl rk_copy_from_user
- cbnz x0, .L3348
+ cbnz x0, .L3439
ldr w1, [x29,56]
mov w0, 17227
movk w0, 0x4c4f, lsl 16
cmp w1, w0
- bne .L3402
+ bne .L3493
mov w0, 27708
movk w0, 0x4004, lsl 16
cmp w19, w0
adrp x0, .LANCHOR5
- bne .L3358
+ bne .L3449
ldr x0, [x0,#:lo12:.LANCHOR5]
add x1, x29, 56
mov x2, 16
@@ -22296,65 +22662,65 @@ rknand_sys_storage_ioctl:
strb w0, [x29,64]
mov x0, x20
bl rk_copy_to_user
- cbz x0, .L3302
- b .L3402
-.L3358:
+ cbz x0, .L3393
+ b .L3493
+.L3449:
add x20, x0, :lo12:.LANCHOR5
ldr w1, [x20,536]
cmp w1, 10
- bhi .L3402
+ bhi .L3493
ldr x1, [x0,#:lo12:.LANCHOR5]
ldr w2, [x29,60]
ldr w3, [x1,24]
cmp w3, w2
- beq .L3359
- cbz w3, .L3359
- adrp x0, .LC197
+ beq .L3450
+ cbz w3, .L3450
+ adrp x0, .LC198
mov w1, w2
- add x0, x0, :lo12:.LC197
+ add x0, x0, :lo12:.LC198
bl printk
ldr w0, [x20,536]
add w0, w0, 1
str w0, [x20,536]
- b .L3402
-.L3359:
+ b .L3493
+.L3450:
add x0, x0, :lo12:.LANCHOR5
str wzr, [x0,536]
mov w0, 27698
movk w0, 0x4004, lsl 16
cmp w19, w0
- bne .L3360
+ bne .L3451
str wzr, [x1,20]
str wzr, [x1,24]
- b .L3361
-.L3360:
+ b .L3452
+.L3451:
mov w0, 1
str w2, [x1,24]
str w0, [x1,20]
-.L3361:
+.L3452:
mov w0, 1
mov x19, -2
bl StorageSysDataStore
cmn w0, #1
- bne .L3399
- b .L3329
-.L3324:
- adrp x0, .LC198
- add x0, x0, :lo12:.LC198
+ bne .L3490
+ b .L3420
+.L3415:
+ adrp x0, .LC199
+ add x0, x0, :lo12:.LC199
bl printk
add x0, x29, 56
mov x1, x20
mov x2, 520
bl rk_copy_from_user
- cbnz x0, .L3348
+ cbnz x0, .L3439
ldr w1, [x29,56]
mov w0, 17750
movk w0, 0x444e, lsl 16
cmp w1, w0
- bne .L3345
+ bne .L3436
ldr w2, [x29,60]
cmp w2, 504
- bhi .L3345
+ bhi .L3436
mov w0, 30224
adrp x1, .LANCHOR5
movk w0, 0x4004, lsl 16
@@ -22362,72 +22728,72 @@ rknand_sys_storage_ioctl:
cmp w19, w0
add x1, x1, :lo12:.LANCHOR5
add x0, x29, 64
- bne .L3362
+ bne .L3453
ldr x1, [x1,544]
- b .L3398
-.L3362:
+ b .L3489
+.L3453:
ldr x1, [x1,552]
-.L3398:
+.L3489:
add x1, x1, 8
-.L3407:
+.L3498:
bl memcpy
-.L3408:
+.L3499:
mov x0, x20
add x1, x29, 56
mov x2, 520
- b .L3394
-.L3321:
- adrp x0, .LC199
- add x0, x0, :lo12:.LC199
+ b .L3485
+.L3412:
+ adrp x0, .LC200
+ add x0, x0, :lo12:.LC200
bl printk
add x0, x29, 56
mov x1, x20
mov x2, 520
bl rk_copy_from_user
- cbnz x0, .L3348
+ cbnz x0, .L3439
ldr w1, [x29,56]
mov w0, 17750
movk w0, 0x444e, lsl 16
cmp w1, w0
- bne .L3345
+ bne .L3436
ldr w2, [x29,60]
cmp w2, 504
- bhi .L3345
+ bhi .L3436
mov w0, 30225
add w2, w2, 8
movk w0, 0x4004, lsl 16
cmp w19, w0
adrp x19, .LANCHOR5
add x19, x19, :lo12:.LANCHOR5
- bne .L3364
+ bne .L3455
ldr x0, [x19,544]
add x1, x29, 56
bl memcpy
mov w0, 2
ldr x1, [x19,544]
- b .L3400
-.L3364:
+ b .L3491
+.L3455:
ldr x0, [x19,552]
add x1, x29, 56
bl memcpy
ldr x1, [x19,552]
mov w0, 3
-.L3400:
+.L3491:
bl StorageSysDataStore
uxtw x19, w0
- b .L3329
-.L3399:
+ b .L3420
+.L3490:
mov x19, 0
-.L3329:
- adrp x0, .LC200
+.L3420:
+ adrp x0, .LC201
mov x1, x19
- add x0, x0, :lo12:.LC200
+ add x0, x0, :lo12:.LC201
bl printk
mov x0, x19
- b .L3302
-.L3365:
+ b .L3393
+.L3456:
mov x0, -22
-.L3302:
+.L3393:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x29, x30, [sp], 48
@@ -22467,25 +22833,25 @@ rk_ftl_storage_sys_init:
ldr w0, [x21,16]
ldr w22, [x21,508]
str w0, [x19,12]
- cbz w22, .L3414
+ cbz w22, .L3505
mov x0, x21
mov w1, 508
- bl JSHash
+ bl js_hash
cmp w22, w0
- beq .L3414
- adrp x0, .LC201
+ beq .L3505
+ adrp x0, .LC202
str wzr, [x21,16]
- add x0, x0, :lo12:.LC201
+ add x0, x0, :lo12:.LC202
str wzr, [x19,12]
bl printk
-.L3414:
+.L3505:
add x0, x20, :lo12:.LANCHOR5
ldr w1, [x0,12]
- cbz w1, .L3415
+ cbz w1, .L3506
mov w1, 5161
movk w1, 0xc059, lsl 16
str w1, [x0,8]
-.L3415:
+.L3506:
add x20, x20, :lo12:.LANCHOR5
mov w0, 2
ldr x1, [x20,544]
@@ -22521,19 +22887,19 @@ rk_ftl_vendor_storage_init:
add x1, x21, :lo12:.LANCHOR5
mov w19, -12
str x0, [x1,560]
- cbz x0, .L3424
+ cbz x0, .L3515
mov w23, 0
- adrp x24, .LC202
+ adrp x24, .LC203
mov w19, w23
mov w22, w23
- add x24, x24, :lo12:.LC202
-.L3428:
+ add x24, x24, :lo12:.LC203
+.L3519:
add x20, x21, :lo12:.LANCHOR5
lsl w0, w22, 7
mov w1, 128
ldr x2, [x20,560]
bl FlashBootVendorRead
- cbnz w0, .L3425
+ cbnz w0, .L3516
ldr x3, [x20,560]
mov x0, x24
add x2, x3, 61440
@@ -22546,29 +22912,29 @@ rk_ftl_vendor_storage_init:
movk w0, 0x524b, lsl 16
ldr w1, [x20]
cmp w1, w0
- bne .L3426
+ bne .L3517
ldr w0, [x20,4]
cmp w19, w0
- bcs .L3426
+ bcs .L3517
add x1, x20, 61440
ldr w1, [x1,4092]
cmp w1, w0
csel w23, w23, w22, ne
csel w19, w19, w0, ne
-.L3426:
- cbnz w22, .L3436
+.L3517:
+ cbnz w22, .L3527
mov w22, 1
- b .L3428
-.L3436:
- cbz w19, .L3429
+ b .L3519
+.L3527:
+ cbz w19, .L3520
lsl w0, w23, 7
mov w1, 128
mov x2, x20
bl FlashBootVendorRead
mov w19, w0
- cbz w0, .L3424
- b .L3425
-.L3429:
+ cbz w0, .L3515
+ b .L3516
+.L3520:
mov x0, x20
mov w1, w19
mov x2, 65536
@@ -22582,14 +22948,14 @@ rk_ftl_vendor_storage_init:
mov w0, -1032
strh w19, [x20,12]
strh w0, [x20,14]
- b .L3424
-.L3425:
+ b .L3515
+.L3516:
add x21, x21, :lo12:.LANCHOR5
mov w19, -1
ldr x0, [x21,560]
bl kfree
str xzr, [x21,560]
-.L3424:
+.L3515:
mov w0, w19
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -22607,18 +22973,18 @@ rk_ftl_vendor_read:
ldr x5, [x3,#:lo12:.LANCHOR5+560]
mov w3, -1
str x19, [sp,16]
- cbz x5, .L3438
+ cbz x5, .L3529
ldrh w3, [x5,10]
mov x4, 0
-.L3439:
+.L3530:
cmp w4, w3
mov w6, w4
- bcs .L3443
+ bcs .L3534
add x7, x5, x4, lsl 3
add x4, x4, 1
ldrh w7, [x7,16]
cmp w7, w0
- bne .L3439
+ bne .L3530
add x6, x5, x6, uxtw 3
ldrh w4, [x6,20]
mov x0, x1
@@ -22630,10 +22996,10 @@ rk_ftl_vendor_read:
uxtw x2, w19
bl memcpy
mov w3, w19
- b .L3438
-.L3443:
+ b .L3529
+.L3534:
mov w3, -1
-.L3438:
+.L3529:
mov w0, w3
ldr x19, [sp,16]
ldp x29, x30, [sp], 32
@@ -22656,38 +23022,38 @@ rk_ftl_vendor_write:
mov w26, w2
mov x28, x1
mov w2, -1
- cbz x19, .L3445
+ cbz x19, .L3536
add w20, w26, 63
ldrh w3, [x19,10]
ldrh w23, [x19,8]
and w20, w20, -64
mov x2, 0
-.L3446:
+.L3537:
cmp w2, w3
mov w4, w2
- bcs .L3461
+ bcs .L3552
add x0, x19, x2, lsl 3
add x2, x2, 1
ldrh w0, [x0,16]
cmp w0, w6
- bne .L3446
+ bne .L3537
add x21, x19, x4, uxtw 3
ldrh w24, [x21,20]
add x5, x19, 1024
add w24, w24, 63
and w24, w24, -64
cmp w26, w24
- bls .L3447
+ bls .L3538
ldrh w0, [x19,14]
mov w2, -1
cmp w0, w20
- bcc .L3445
+ bcc .L3536
ldrh w21, [x21,18]
add w22, w3, w2
-.L3448:
+.L3539:
cmp w4, w22
uxtw x3, w4
- bcs .L3462
+ bcs .L3553
add x3, x19, x3, lsl 3
add w25, w4, 1
add x1, x19, x25, uxtw 3
@@ -22710,8 +23076,8 @@ rk_ftl_vendor_write:
mov w4, w25
ldr x6, [x29,96]
ldr x5, [x29,104]
- b .L3448
-.L3462:
+ b .L3539
+.L3553:
add x3, x19, x3, lsl 3
uxth w21, w21
mov x1, x28
@@ -22728,20 +23094,20 @@ rk_ftl_vendor_write:
add w24, w24, w0
sub w24, w24, w20
strh w24, [x19,14]
- b .L3460
-.L3447:
+ b .L3551
+.L3538:
ldrh w0, [x21,18]
mov x1, x28
uxtw x2, w26
add x0, x5, x0
bl memcpy
strh w26, [x21,20]
- b .L3460
-.L3461:
+ b .L3551
+.L3552:
ldrh w4, [x19,14]
mov w2, -1
cmp w4, w20
- bcc .L3445
+ bcc .L3536
add x3, x19, x3, uxth 3
strh w6, [x3,16]
uxth w20, w20
@@ -22761,7 +23127,7 @@ rk_ftl_vendor_write:
ldrh w0, [x19,10]
add w0, w0, 1
strh w0, [x19,10]
-.L3460:
+.L3551:
ldr w0, [x19,4]
add x1, x19, 61440
mov x2, x19
@@ -22778,7 +23144,7 @@ rk_ftl_vendor_write:
lsl w0, w23, 7
bl FlashBootVendorWrite
mov w2, 0
-.L3445:
+.L3536:
mov w0, w2
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -22802,37 +23168,37 @@ rk_ftl_vendor_storage_ioctl:
mov x21, x2
bl ftl_malloc
mov x19, x0
- cbz x0, .L3464
+ cbz x0, .L3555
mov w2, 30209
ldr x1, [x29,56]
movk w2, 0x4004, lsl 16
cmp w1, w2
- beq .L3466
+ beq .L3557
mov w2, 30210
movk w2, 0x4004, lsl 16
cmp w1, w2
- beq .L3467
- b .L3478
-.L3466:
+ beq .L3558
+ b .L3569
+.L3557:
mov x1, x21
mov x2, 8
bl rk_copy_from_user
- cbnz x0, .L3478
+ cbnz x0, .L3569
ldr w1, [x19]
mov w0, 17745
movk w0, 0x5652, lsl 16
cmp w1, w0
- beq .L3469
-.L3470:
+ beq .L3560
+.L3561:
mov x20, -1
- b .L3465
-.L3469:
+ b .L3556
+.L3560:
ldrh w0, [x19,4]
add x1, x19, 8
ldrh w2, [x19,6]
bl rk_ftl_vendor_read
cmn w0, #1
- beq .L3470
+ beq .L3561
uxth x2, w0
strh w0, [x19,6]
mov x1, x19
@@ -22842,38 +23208,38 @@ rk_ftl_vendor_storage_ioctl:
bl rk_copy_to_user
cmp x0, xzr
csel x20, xzr, x20, eq
- b .L3465
-.L3467:
+ b .L3556
+.L3558:
mov x1, x21
mov x2, 8
bl rk_copy_from_user
- cbnz x0, .L3478
+ cbnz x0, .L3569
ldr w1, [x19]
mov w0, 17745
movk w0, 0x5652, lsl 16
cmp w1, w0
- bne .L3470
+ bne .L3561
ldrh w3, [x19,6]
cmp w3, 4087
- bhi .L3470
+ bhi .L3561
add w2, w3, 8
mov x0, x19
mov x1, x21
sxtw x2, w2
bl rk_copy_from_user
- cbnz x0, .L3478
+ cbnz x0, .L3569
ldrh w0, [x19,4]
add x1, x19, 8
ldrh w2, [x19,6]
bl rk_ftl_vendor_write
sxtw x20, w0
- b .L3465
-.L3478:
+ b .L3556
+.L3569:
mov x20, -14
-.L3465:
+.L3556:
mov x0, x19
bl kfree
-.L3464:
+.L3555:
mov x0, x20
ldr x21, [sp,32]
ldp x19, x20, [sp,16]
@@ -23061,7 +23427,6 @@ rk_ftl_vendor_storage_ioctl:
.global c_ftl_nand_ext_blk_pre_plane
.global c_ftl_nand_blk_pre_plane
.global c_ftl_nand_planes_num
- .global c_ftl_nand_blks_per_die_shift
.global c_ftl_nand_blks_per_die
.global c_ftl_nand_planes_per_die
.global c_ftl_nand_die_num
@@ -23078,6 +23443,7 @@ rk_ftl_vendor_storage_ioctl:
.global gNandcVer
.global gNandChipMap
.global gNandIDataBuf
+ .global idb_flash_slc_mode
.global FlashDdrTunningReadCount
.global FlashWaitBusyScheduleEn
.global gNandPhyInfo
@@ -23125,32 +23491,32 @@ rk_ftl_vendor_storage_ioctl:
.section .rodata
.align 3
.LANCHOR3 = . + 0
- .type __func__.19528, %object
- .size __func__.19528, 11
-__func__.19528:
+ .type __func__.19586, %object
+ .size __func__.19586, 11
+__func__.19586:
.string "FtlMemInit"
.zero 5
- .type __func__.20301, %object
- .size __func__.20301, 17
-__func__.20301:
+ .type __func__.20360, %object
+ .size __func__.20360, 17
+__func__.20360:
.string "FtlDumpBlockInfo"
.zero 7
- .type __func__.20320, %object
- .size __func__.20320, 16
-__func__.20320:
+ .type __func__.20379, %object
+ .size __func__.20379, 16
+__func__.20379:
.string "FtlScanAllBlock"
- .type __func__.20568, %object
- .size __func__.20568, 21
-__func__.20568:
+ .type __func__.20627, %object
+ .size __func__.20627, 21
+__func__.20627:
.string "FtlVpcCheckAndModify"
.zero 3
- .type __func__.19601, %object
- .size __func__.19601, 8
-__func__.19601:
+ .type __func__.19659, %object
+ .size __func__.19659, 8
+__func__.19659:
.string "FtlInit"
- .type __func__.20269, %object
- .size __func__.20269, 12
-__func__.20269:
+ .type __func__.20328, %object
+ .size __func__.20328, 12
+__func__.20328:
.string "FtlCheckVpc"
.section .rodata.str1.1,"aMS",%progbits,1
.LC0:
@@ -23306,7 +23672,7 @@ __func__.20269:
.LC75:
.string "%s\n"
.LC76:
- .string "FTL version: 5.0.50 20180905"
+ .string "FTL version: 5.0.53 20190107"
.LC77:
.string "swblk %x ,avg = %x max= %x vpc= %x,ec=%x ,max ec=%x\n"
.LC78:
@@ -23380,184 +23746,186 @@ __func__.20269:
.LC112:
.string "slc id = %x,%x addr= %x,spare= %x %x %x %x data=%x %x\n"
.LC113:
- .string "FtlGcScanTempBlkError ID %x %x!!!!!!!\n"
-.LC114:
.string "FlashMakeFactorBbt %d\n"
-.LC115:
+.LC114:
.string "bad block:%d %d\n"
-.LC116:
+.LC115:
.string "FMFB:%d %d\n"
-.LC117:
+.LC116:
.string "E:bad block:%d\n"
-.LC118:
+.LC117:
.string "FMFB:Save %d %d\n"
-.LC119:
+.LC118:
.string "FtlBbmTblFlush id=%x,page=%x,previd=%x cnt=%d\n"
-.LC120:
+.LC119:
.string "FtlBbmTblFlush error:%x\n"
-.LC121:
+.LC120:
.string "FtlBbmTblFlush error = %x error count = %d\n"
-.LC122:
+.LC121:
.string "FtlGcFreeBadSuperBlk 0x%x\n"
-.LC123:
+.LC122:
.string "decrement_vpc_count %x = %d\n"
-.LC124:
+.LC123:
.string "decrement_vpc_count %x = %d in free list\n"
-.LC125:
+.LC124:
.string "FtlVpcTblFlush error = %x error count = %d\n"
-.LC126:
+.LC125:
.string "page map lost: %x %x\n"
-.LC127:
+.LC126:
.string "FtlMapWritePage error = %x\n"
-.LC128:
+.LC127:
.string "FtlMapWritePage error = %x error count = %d\n"
-.LC129:
+.LC128:
.string "FtlVendorPartRead refresh = %x phyAddr = %x\n"
-.LC130:
+.LC129:
.string "no ect"
-.LC131:
+.LC130:
.string "slc mode"
-.LC132:
+.LC131:
.string "BBT:"
-.LC133:
+.LC132:
.string "region_id = %x phyAddr = %x\n"
-.LC134:
+.LC133:
.string "map_ppn:"
-.LC135:
+.LC134:
.string "load_l2p_region refresh = %x phyAddr = %x\n"
-.LC136:
+.LC135:
.string "Ftlscanalldata = %x\n"
-.LC137:
+.LC136:
.string "scan lpa = %x ppa= %x\n"
-.LC138:
+.LC137:
.string "lba = %x,addr= %x,spare= %x %x %x %x data=%x %x\n"
-.LC139:
+.LC138:
.string "RSB refresh addr %x\n"
-.LC140:
+.LC139:
.string "spuer block %x vpn is 0\n "
-.LC141:
+.LC140:
.string "g_recovery_ppa %x ver %x\n "
-.LC142:
+.LC141:
.string "FtlCheckVpc %x = %x %x\n"
+.LC142:
+ .string "FtlGcScanTempBlk Error ID %x %x!!!!!!! \n"
.LC143:
- .string "GC des block %x done\n"
+ .string "FtlGcScanTempBlkError ID %x %x!!!!!!!\n"
.LC144:
- .string "%d GC datablk = %x vpc %x %x\n"
+ .string "GC des block %x done\n"
.LC145:
- .string "SWL %x, FSB = %x vpc= %x,ec=%x th=%x\n"
+ .string "%d GC datablk = %x vpc %x %x\n"
.LC146:
- .string "g_gc_superblock_free %x %x %x %x %x\n"
+ .string "SWL %x, FSB = %x vpc= %x,ec=%x th=%x\n"
.LC147:
- .string "Ftlwrite decrement_vpc_count %x = %d\n"
+ .string "g_gc_superblock_free %x %x %x %x %x\n"
.LC148:
- .string "rk_ftl_de_init %x\n"
+ .string "Ftlwrite decrement_vpc_count %x = %d\n"
.LC149:
- .string "...%s: no bad block mapping table, format device\n"
+ .string "rk_ftl_de_init %x\n"
.LC150:
- .string "...%s FtlSysBlkInit error ,format device!\n"
+ .string "...%s: no bad block mapping table, format device\n"
.LC151:
- .string "FtlInit %x\n"
+ .string "...%s FtlSysBlkInit error ,format device!\n"
.LC152:
- .string "fix power lost blk = %x vpc=%x\n"
+ .string "FtlInit %x\n"
.LC153:
- .string "erase power lost blk = %x vpc=%x\n"
+ .string "fix power lost blk = %x vpc=%x\n"
.LC154:
- .string "FtlWrite: lpa error:%x %x\n"
+ .string "erase power lost blk = %x vpc=%x\n"
.LC155:
- .string "vpc1"
+ .string "FtlWrite: lpa error:%x %x\n"
.LC156:
- .string "vpc2"
+ .string "vpc1"
.LC157:
- .string "FtlCheckVpc2 %x = %x %x\n"
+ .string "vpc2"
.LC158:
- .string "free blk vpc error %x = %x %x\n"
+ .string "FtlCheckVpc2 %x = %x %x\n"
.LC159:
- .string "id = %x,%x addr= %x,spare= %x %x %x %x data = %x\n"
+ .string "free blk vpc error %x = %x %x\n"
.LC160:
- .string ":"
+ .string "id = %x,%x addr= %x,spare= %x %x %x %x data = %x\n"
.LC161:
- .string "phyBlk = %x,addr= %x,spare= %x %x %x %x data=%x %x\n"
+ .string ":"
.LC162:
- .string "Mblk:"
+ .string "phyBlk = %x,addr= %x,spare= %x %x %x %x data=%x %x\n"
.LC163:
- .string "L2P:"
+ .string "Mblk:"
.LC164:
- .string "L2PC:"
+ .string "L2P:"
.LC165:
- .string "IdBlockReadData %x %x\n"
+ .string "L2PC:"
.LC166:
- .string "IdBlockReadData %x %x ret= %x\n"
+ .string "IdBlockReadData %x %x\n"
.LC167:
- .string "write_idblock fix data %x %x\n"
+ .string "IdBlockReadData %x %x ret= %x\n"
.LC168:
- .string "idblk:"
+ .string "write_idblock fix data %x %x\n"
.LC169:
- .string "idb reverse %x %x\n"
+ .string "idblk:"
.LC170:
- .string "write_idblock totle_sec %x %x %x %x\n"
+ .string "idb reverse %x %x\n"
.LC171:
- .string "IDBlockWriteData %x %x\n"
+ .string "write_idblock totle_sec %x %x %x %x\n"
.LC172:
- .string "IDBlockWriteData %x %x ret= %x\n"
+ .string "IDBlockWriteData %x %x\n"
.LC173:
- .string "write and check error:%d idb=%x,offset=%x,r=%x,w=%x\n"
+ .string "IDBlockWriteData %x %x ret= %x\n"
.LC174:
- .string "write"
+ .string "write and check error:%d idb=%x,offset=%x,r=%x,w=%x\n"
.LC175:
- .string "read"
+ .string "write"
.LC176:
- .string "write_idblock error %d\n"
+ .string "read"
.LC177:
- .string "READ_SECTOR_IO\n"
+ .string "write_idblock error %d\n"
.LC178:
- .string "rk_copy_from_user error\n"
+ .string "READ_SECTOR_IO\n"
.LC179:
- .string "READ_SECTOR_IO %x %x\n"
+ .string "rk_copy_from_user error\n"
.LC180:
- .string "rk_copy_to_user error\n"
+ .string "READ_SECTOR_IO %x %x\n"
.LC181:
- .string "WRITE_SECTOR_IO\n"
+ .string "rk_copy_to_user error\n"
.LC182:
- .string "WRITE_SECTOR_IO %x %x\n"
+ .string "WRITE_SECTOR_IO\n"
.LC183:
- .string "END_WRITE_SECTOR_IO\n"
+ .string "WRITE_SECTOR_IO %x %x\n"
.LC184:
- .string "END_WRITE_SECTOR_IO %x %x\n"
+ .string "END_WRITE_SECTOR_IO\n"
.LC185:
- .string "GET_FLASH_INFO_IO\n"
+ .string "END_WRITE_SECTOR_IO %x %x\n"
.LC186:
- .string "GET_BAD_BLOCK_IO\n"
+ .string "GET_FLASH_INFO_IO\n"
.LC187:
- .string "GET_LOCK_FLAG_IO\n"
+ .string "GET_BAD_BLOCK_IO\n"
.LC188:
- .string "GET_PUBLIC_KEY_IO\n"
+ .string "GET_LOCK_FLAG_IO\n"
.LC189:
- .string "RKNAND_GET_DRM_KEY\n"
+ .string "GET_PUBLIC_KEY_IO\n"
.LC190:
- .string "RKNAND_STORE_DRM_KEY\n"
+ .string "RKNAND_GET_DRM_KEY\n"
.LC191:
- .string "RKNAND_DIASBLE_SECURE_BOOT\n"
+ .string "RKNAND_STORE_DRM_KEY\n"
.LC192:
- .string "RKNAND_ENASBLE_SECURE_BOOT\n"
+ .string "RKNAND_DIASBLE_SECURE_BOOT\n"
.LC193:
- .string "RKNAND_GET_SN_SECTOR\n"
+ .string "RKNAND_ENASBLE_SECURE_BOOT\n"
.LC194:
- .string "RKNAND_LOADER_UNLOCK\n"
+ .string "RKNAND_GET_SN_SECTOR\n"
.LC195:
- .string "RKNAND_LOADER_STATUS\n"
+ .string "RKNAND_LOADER_UNLOCK\n"
.LC196:
- .string "RKNAND_LOADER_LOCK\n"
+ .string "RKNAND_LOADER_STATUS\n"
.LC197:
- .string "LockKey not match %d\n"
+ .string "RKNAND_LOADER_LOCK\n"
.LC198:
- .string "RKNAND_GET_VENDOR_SECTOR\n"
+ .string "LockKey not match %d\n"
.LC199:
- .string "RKNAND_STORE_VENDOR_SECTOR\n"
+ .string "RKNAND_GET_VENDOR_SECTOR\n"
.LC200:
- .string "return ret = %lx\n"
+ .string "RKNAND_STORE_VENDOR_SECTOR\n"
.LC201:
- .string "secureBootEn check error\n"
+ .string "return ret = %lx\n"
.LC202:
+ .string "secureBootEn check error\n"
+.LC203:
.string "\0013vendor storage %x,%x,%x\n"
.data
.align 3
@@ -23950,7 +24318,7 @@ gFtlInitStatus:
.word -1
.zero 4
.type NandFlashParaTbl, %object
- .size NandFlashParaTbl, 2464
+ .size NandFlashParaTbl, 2592
NandFlashParaTbl:
.byte 6
.byte 44
@@ -24527,6 +24895,58 @@ NandFlashParaTbl:
.byte 5
.byte 44
.byte -124
+ .byte 68
+ .byte 50
+ .byte -86
+ .byte 0
+ .byte 4
+ .byte 1
+ .byte 32
+ .hword 512
+ .byte 2
+ .byte 1
+ .hword 2184
+ .hword 1479
+ .byte 5
+ .byte 19
+ .byte 60
+ .byte 32
+ .byte 1
+ .byte 0
+ .byte 4
+ .byte 0
+ .byte 1
+ .byte 0
+ .zero 4
+ .byte 5
+ .byte 44
+ .byte -124
+ .byte 68
+ .byte 52
+ .byte -86
+ .byte 0
+ .byte 4
+ .byte 1
+ .byte 32
+ .hword 512
+ .byte 2
+ .byte 1
+ .hword 2184
+ .hword 1479
+ .byte 5
+ .byte 19
+ .byte 60
+ .byte 32
+ .byte 1
+ .byte 0
+ .byte 4
+ .byte 0
+ .byte 1
+ .byte 0
+ .zero 4
+ .byte 5
+ .byte 44
+ .byte -124
.byte -60
.byte 52
.byte -86
@@ -24576,6 +24996,32 @@ NandFlashParaTbl:
.byte 1
.byte 0
.zero 4
+ .byte 5
+ .byte 44
+ .byte -124
+ .byte 100
+ .byte 60
+ .byte -87
+ .byte 0
+ .byte 4
+ .byte 1
+ .byte 32
+ .hword 512
+ .byte 2
+ .byte 2
+ .hword 1024
+ .hword 479
+ .byte 3
+ .byte 17
+ .byte 40
+ .byte 32
+ .byte 1
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 0
+ .byte 0
+ .zero 4
.byte 6
.byte -83
.byte -34
@@ -24915,6 +25361,32 @@ NandFlashParaTbl:
.byte 0
.zero 4
.byte 6
+ .byte -83
+ .byte 58
+ .byte 20
+ .byte 3
+ .byte 8
+ .byte 80
+ .byte 2
+ .byte 1
+ .byte 32
+ .hword 388
+ .byte 2
+ .byte 2
+ .hword 1362
+ .hword 473
+ .byte 9
+ .byte 8
+ .byte 40
+ .byte 32
+ .byte 3
+ .byte 1
+ .byte 3
+ .byte 0
+ .byte 0
+ .byte 0
+ .zero 4
+ .byte 6
.byte -119
.byte 100
.byte 68
@@ -25111,7 +25583,7 @@ NandFlashParaTbl:
.byte 1
.hword 1024
.hword 455
- .byte 3
+ .byte 4
.byte 17
.byte 40
.byte 32
@@ -26398,11 +26870,15 @@ gNandChipMap:
.size gNandOptPara, 32
gNandOptPara:
.zero 32
- .type gFlashSlcMode, %object
- .size gFlashSlcMode, 1
-gFlashSlcMode:
+ .type g_retryMode, %object
+ .size g_retryMode, 1
+g_retryMode:
.zero 1
- .zero 7
+ .type g_maxRegNum, %object
+ .size g_maxRegNum, 1
+g_maxRegNum:
+ .zero 1
+ .zero 6
.type gpNandc, %object
.size gpNandc, 8
gpNandc:
@@ -26443,6 +26919,11 @@ NANDC_FMWAIT_SYN:
.size gNandPhyInfo, 28
gNandPhyInfo:
.zero 28
+ .type gFlashSlcMode, %object
+ .size gFlashSlcMode, 1
+gFlashSlcMode:
+ .zero 1
+ .zero 3
.type slcPageToMlcPageTbl, %object
.size slcPageToMlcPageTbl, 512
slcPageToMlcPageTbl:
@@ -26451,23 +26932,15 @@ slcPageToMlcPageTbl:
.size DieAddrs, 32
DieAddrs:
.zero 32
- .type FlashWaitBusyScheduleEn, %object
- .size FlashWaitBusyScheduleEn, 4
-FlashWaitBusyScheduleEn:
- .zero 4
.type gpNandParaInfo, %object
.size gpNandParaInfo, 8
gpNandParaInfo:
.zero 8
- .type g_retryMode, %object
- .size g_retryMode, 1
-g_retryMode:
- .zero 1
- .type g_maxRegNum, %object
- .size g_maxRegNum, 1
-g_maxRegNum:
- .zero 1
- .zero 6
+ .type FlashWaitBusyScheduleEn, %object
+ .size FlashWaitBusyScheduleEn, 4
+FlashWaitBusyScheduleEn:
+ .zero 4
+ .zero 4
.type gReadRetryInfo, %object
.size gReadRetryInfo, 852
gReadRetryInfo:
@@ -26498,9 +26971,9 @@ gNandMaxDie:
.size DieCsIndex, 8
DieCsIndex:
.zero 8
- .type g_nandc_version_data, %object
- .size g_nandc_version_data, 4
-g_nandc_version_data:
+ .type idb_flash_slc_mode, %object
+ .size idb_flash_slc_mode, 4
+idb_flash_slc_mode:
.zero 4
.type gFlashToggleModeEn, %object
.size gFlashToggleModeEn, 1
@@ -26515,6 +26988,11 @@ gBootDdrMode:
.size gNandcVer, 4
gNandcVer:
.zero 4
+ .type g_nandc_version_data, %object
+ .size g_nandc_version_data, 4
+g_nandc_version_data:
+ .zero 4
+ .zero 4
.type gMasterTempBuf, %object
.size gMasterTempBuf, 8
gMasterTempBuf:
@@ -26606,10 +27084,6 @@ c_ftl_vendor_part_size:
.size c_ftl_nand_blks_per_die, 2
c_ftl_nand_blks_per_die:
.zero 2
- .type c_ftl_nand_blks_per_die_shift, %object
- .size c_ftl_nand_blks_per_die_shift, 2
-c_ftl_nand_blks_per_die_shift:
- .zero 2
.type c_ftl_nand_page_pre_blk, %object
.size c_ftl_nand_page_pre_blk, 2
c_ftl_nand_page_pre_blk:
@@ -26642,7 +27116,6 @@ c_ftl_nand_byte_pre_oob:
.size c_ftl_nand_reserved_blks, 2
c_ftl_nand_reserved_blks:
.zero 2
- .zero 2
.type DeviceCapacity, %object
.size DeviceCapacity, 4
DeviceCapacity:
@@ -26688,7 +27161,6 @@ g_page_map_check_enable:
.size g_totle_vendor_block, 2
g_totle_vendor_block:
.zero 2
- .zero 4
.type p_vendor_block_table, %object
.size p_vendor_block_table, 8
p_vendor_block_table:
@@ -26861,10 +27333,9 @@ c_ftl_nand_data_op_blks_per_plane:
.zero 2
.zero 2
.type gSysInfo, %object
- .size gSysInfo, 12
+ .size gSysInfo, 16
gSysInfo:
- .zero 12
- .zero 4
+ .zero 16
.type g_gc_superblock, %object
.size g_gc_superblock, 48
g_gc_superblock:
diff --git a/drivers/rk_nand/rk_ftlv5_arm64.S b/drivers/rk_nand/rk_ftlv5_arm64.S
index 2e4a3c3db025..227a006fb246 100644
--- a/drivers/rk_nand/rk_ftlv5_arm64.S
+++ b/drivers/rk_nand/rk_ftlv5_arm64.S
@@ -5,14 +5,13 @@
* 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: 2018-09-05
+ * date: 2019-01-07
* function: rk ftl v5 for rockchip soc base on arm v8 to support MLC NAND.
*/
.cpu generic+fp+simd
- .file "rk_ftlv5_arm_v8.S"
+ .file "rk_ftlv5_arm_v8.c"
#APP
- .irp num,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17\
- ,18,19,20,21,22,23,24,25,26,27,28,29,30
+ .irp num,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30
.equ .L__reg_num_x\num, \num
.endr
.equ .L__reg_num_xzr, 31
@@ -192,6 +191,25 @@ FlashSetRandomizer:
ret
.size FlashSetRandomizer, .-FlashSetRandomizer
.align 2
+ .global FlashBlockAlignInit
+ .type FlashBlockAlignInit, %function
+FlashBlockAlignInit:
+ uxth w0, w0
+ adrp x1, .LANCHOR0
+ cmp w0, 256
+ add x1, x1, :lo12:.LANCHOR0
+ bls .L35
+ mov w0, 512
+ b .L38
+.L35:
+ cmp w0, 128
+ bls .L38
+ mov w0, 256
+.L38:
+ str w0, [x1,28]
+ ret
+ .size FlashBlockAlignInit, .-FlashBlockAlignInit
+ .align 2
.global FlashReadCmd
.type FlashReadCmd, %function
FlashReadCmd:
@@ -241,7 +259,7 @@ FlashReadDpDataOutCmd:
ldrb w2, [x5,8]
and w5, w1, 255
add x2, x6, x2, lsl 8
- bne .L36
+ bne .L41
mov w6, 6
str w6, [x2,2056]
str wzr, [x2,2052]
@@ -249,8 +267,8 @@ FlashReadDpDataOutCmd:
str w5, [x2,2052]
str w4, [x2,2052]
str w3, [x2,2052]
- b .L38
-.L36:
+ b .L43
+.L41:
str wzr, [x2,2056]
str wzr, [x2,2052]
str wzr, [x2,2052]
@@ -261,7 +279,7 @@ FlashReadDpDataOutCmd:
str w3, [x2,2056]
str wzr, [x2,2052]
str wzr, [x2,2052]
-.L38:
+.L43:
mov w3, 224
str w3, [x2,2056]
bl FlashSetRandomizer
@@ -269,48 +287,6 @@ FlashReadDpDataOutCmd:
ret
.size FlashReadDpDataOutCmd, .-FlashReadDpDataOutCmd
.align 2
- .global flash_enter_slc_mode
- .type flash_enter_slc_mode, %function
-flash_enter_slc_mode:
- adrp x1, .LANCHOR0
- uxtb w0, w0
- add x1, x1, :lo12:.LANCHOR0
- ldrb w2, [x1,136]
- cbz w2, .L39
- sbfiz x0, x0, 4, 32
- add x1, x1, 40
- add x2, x1, x0
- ldr x1, [x1,x0]
- ldrb w0, [x2,8]
- add x0, x0, 8
- add x0, x1, x0, lsl 8
- mov w1, 218
- str w1, [x0,8]
-.L39:
- ret
- .size flash_enter_slc_mode, .-flash_enter_slc_mode
- .align 2
- .global flash_exit_slc_mode
- .type flash_exit_slc_mode, %function
-flash_exit_slc_mode:
- adrp x1, .LANCHOR0
- uxtb w0, w0
- add x1, x1, :lo12:.LANCHOR0
- ldrb w2, [x1,136]
- cbz w2, .L44
- sbfiz x0, x0, 4, 32
- add x1, x1, 40
- add x2, x1, x0
- ldr x1, [x1,x0]
- ldrb w0, [x2,8]
- add x0, x0, 8
- add x0, x1, x0, lsl 8
- mov w1, 223
- str w1, [x0,8]
-.L44:
- ret
- .size flash_exit_slc_mode, .-flash_exit_slc_mode
- .align 2
.global FlashProgFirstCmd
.type FlashProgFirstCmd, %function
FlashProgFirstCmd:
@@ -350,7 +326,7 @@ FlashEraseCmd:
add x5, x4, x0
ldr x4, [x4,x0]
ldrb w0, [x5,8]
- cbz w2, .L51
+ cbz w2, .L46
add x2, x4, x0, lsl 8
mov w5, 96
str w5, [x2,2056]
@@ -362,7 +338,7 @@ FlashEraseCmd:
str w5, [x2,2052]
ldr w2, [x3,28]
add w1, w1, w2
-.L51:
+.L46:
add x0, x4, x0, lsl 8
mov w2, 96
str w2, [x0,2056]
@@ -440,26 +416,50 @@ FlashProgDpFirstCmd:
ret
.size FlashProgDpFirstCmd, .-FlashProgDpFirstCmd
.align 2
- .global JSHash
- .type JSHash, %function
-JSHash:
+ .global FlashReadStatus
+ .type FlashReadStatus, %function
+FlashReadStatus:
+ adrp x1, .LANCHOR0
+ ubfiz x0, x0, 4, 8
+ stp x29, x30, [sp, -32]!
+ add x1, x1, :lo12:.LANCHOR0
+ add x1, x1, 40
+ add x29, sp, 0
+ add x2, x1, x0
+ str x19, [sp,16]
+ ldrb w2, [x2,8]
+ ldr x19, [x1,x0]
+ mov w0, 112
+ add x19, x19, x2, lsl 8
+ str w0, [x19,2056]
+ mov x0, 400
+ bl __const_udelay
+ ldr w0, [x19,2048]
+ ldr x19, [sp,16]
+ ldp x29, x30, [sp], 32
+ ret
+ .size FlashReadStatus, .-FlashReadStatus
+ .align 2
+ .global js_hash
+ .type js_hash, %function
+js_hash:
mov x5, x0
mov w0, 42982
mov x2, 0
movk w0, 0x47c6, lsl 16
-.L59:
+.L55:
cmp w1, w2
- bls .L61
+ bls .L57
lsl w3, w0, 5
ldrb w4, [x5,x2]
add w3, w3, w0, lsr 2
add x2, x2, 1
add w3, w3, w4
eor w0, w0, w3
- b .L59
-.L61:
+ b .L55
+.L57:
ret
- .size JSHash, .-JSHash
+ .size js_hash, .-js_hash
.align 2
.global FlashLoadIdbInfo
.type FlashLoadIdbInfo, %function
@@ -471,65 +471,63 @@ FlashLoadIdbInfo:
.global BuildFlashLsbPageTable
.type BuildFlashLsbPageTable, %function
BuildFlashLsbPageTable:
- stp x29, x30, [sp, -48]!
+ stp x29, x30, [sp, -32]!
adrp x2, .LANCHOR0
add x29, sp, 0
stp x19, x20, [sp,16]
- str x21, [sp,32]
- mov w19, w1
- cbnz w0, .L64
+ mov w20, w1
+ cbnz w0, .L60
mov x0, 0
add x3, x2, :lo12:.LANCHOR0
-.L65:
- add x1, x3, 140
+.L61:
+ add x1, x3, 136
strh w0, [x1,x0,lsl 1]
add x0, x0, 1
cmp x0, 256
- bne .L65
-.L71:
- add x20, x2, :lo12:.LANCHOR0
+ bne .L61
+.L67:
+ add x19, x2, :lo12:.LANCHOR0
mov w1, 255
- add x21, x20, 652
mov w2, 1024
- mov x0, x21
- uxth w19, w19
+ add x0, x19, 648
+ uxth w20, w20
bl ftl_memset
- mov x1, 0
- mov x2, x20
- b .L66
-.L64:
+ mov x0, 0
+ mov x2, x19
+ b .L62
+.L60:
cmp w0, 1
- bne .L67
+ bne .L63
mov x0, 0
mov w5, 3
mov w6, 2
add x4, x2, :lo12:.LANCHOR0
-.L70:
+.L66:
cmp x0, 3
uxth w1, w0
mov w3, w1
- bls .L68
+ bls .L64
ubfiz w3, w1, 1, 15
and w1, w1, 1
cmp w1, wzr
csel w1, w5, w6, ne
sub w3, w3, w1
uxth w3, w3
-.L68:
- add x1, x4, 140
+.L64:
+ add x1, x4, 136
strh w3, [x1,x0,lsl 1]
add x0, x0, 1
cmp x0, 256
- bne .L70
- b .L71
-.L67:
+ bne .L66
+ b .L67
+.L63:
cmp w0, 2
- bne .L72
+ bne .L68
mov w1, 65535
mov x0, 0
add x5, x2, :lo12:.LANCHOR0
-.L74:
- add x4, x5, 140
+.L70:
+ add x4, x5, 136
cmp x0, 1
uxth w3, w0
csel w3, w1, w3, hi
@@ -538,43 +536,43 @@ BuildFlashLsbPageTable:
add x0, x0, 1
cmp x0, 256
uxth w1, w1
- bne .L74
- b .L71
-.L72:
+ bne .L70
+ b .L67
+.L68:
cmp w0, 3
- bne .L75
+ bne .L71
mov x0, 0
- mov w6, 5
- mov w7, 4
- add x5, x2, :lo12:.LANCHOR0
-.L78:
+ mov w5, 5
+ mov w6, 4
+ add x4, x2, :lo12:.LANCHOR0
+.L74:
cmp x0, 5
- uxth w4, w0
- mov w3, w4
- bls .L76
- ubfiz w3, w4, 1, 15
- and w4, w4, 1
- cmp w4, wzr
- csel w1, w6, w7, ne
+ uxth w1, w0
+ mov w3, w1
+ bls .L72
+ ubfiz w3, w1, 1, 15
+ and w1, w1, 1
+ cmp w1, wzr
+ csel w1, w5, w6, ne
sub w3, w3, w1
uxth w3, w3
-.L76:
- add x1, x5, 140
+.L72:
+ add x1, x4, 136
strh w3, [x1,x0,lsl 1]
add x0, x0, 1
cmp x0, 256
- bne .L78
- b .L71
-.L75:
+ bne .L74
+ b .L67
+.L71:
cmp w0, 4
- bne .L79
+ bne .L75
add x1, x2, :lo12:.LANCHOR0
mov w6, 7
- add x3, x1, 140
+ add x3, x1, 136
mov w5, 6
strh w0, [x3,8]
mov w0, 5
- strh wzr, [x1,140]
+ strh wzr, [x1,136]
mov w1, 1
strh w0, [x3,10]
mov w0, 7
@@ -587,7 +585,7 @@ BuildFlashLsbPageTable:
strh w0, [x3,14]
mov w0, 8
strh w1, [x3,6]
-.L81:
+.L77:
and w4, w0, 1
ubfiz w1, w0, 1, 15
add w0, w0, 1
@@ -598,40 +596,40 @@ BuildFlashLsbPageTable:
sub w1, w1, w4
cmp w0, 256
strh w1, [x3,14]
- bne .L81
- b .L71
-.L79:
+ bne .L77
+ b .L67
+.L75:
cmp w0, 5
- bne .L82
+ bne .L78
mov x0, 0
add x3, x2, :lo12:.LANCHOR0
-.L83:
- add x1, x3, 140
+.L79:
+ add x1, x3, 136
strh w0, [x1,x0,lsl 1]
add x0, x0, 1
cmp x0, 16
- bne .L83
+ bne .L79
mov x0, 0
-.L84:
+.L80:
add x3, x1, x0
add w4, w0, 16
add x0, x0, 2
cmp x0, 480
strh w4, [x3,32]
- bne .L84
- b .L71
-.L82:
+ bne .L80
+ b .L67
+.L78:
cmp w0, 6
- bne .L71
+ bne .L81
mov x3, 0
mov w6, 12
mov w7, 10
add x5, x2, :lo12:.LANCHOR0
-.L87:
+.L84:
cmp x3, 5
uxth w4, w3
mov w0, w4
- bls .L85
+ bls .L82
add w0, w4, w4, lsl 1
and w4, w4, 1
cmp w4, wzr
@@ -639,25 +637,44 @@ BuildFlashLsbPageTable:
csel w1, w6, w7, ne
sub w0, w0, w1
uxth w0, w0
-.L85:
- add x1, x5, 140
+.L82:
+ add x1, x5, 136
strh w0, [x1,x3,lsl 1]
add x3, x3, 1
cmp x3, 256
- bne .L87
- b .L71
-.L66:
- cmp w19, w1, uxth
- bls .L105
- add x0, x2, 140
- ldrh w0, [x0,x1,lsl 1]
- add x1, x1, 1
- strh w0, [x21,w0,sxtw 1]
- b .L66
-.L105:
+ bne .L84
+ b .L67
+.L81:
+ cmp w0, 9
+ bne .L67
+ add x0, x2, :lo12:.LANCHOR0
+ add x3, x0, 136
+ strh wzr, [x0,136]
+ mov w0, 1
+ strh w0, [x3,2]
+ mov w0, 2
+ strh w0, [x3,4]
+ mov x0, 0
+.L85:
+ add x1, x3, x0
+ add w4, w0, 3
+ add x0, x0, 2
+ cmp x0, 506
+ strh w4, [x1,6]
+ bne .L85
+ b .L67
+.L62:
+ cmp w20, w0, uxth
+ bls .L104
+ add x1, x2, 136
+ add x3, x2, 648
+ ldrh w1, [x1,x0,lsl 1]
+ add x0, x0, 1
+ strh w1, [x3,w1,sxtw 1]
+ b .L62
+.L104:
ldp x19, x20, [sp,16]
- ldr x21, [sp,32]
- ldp x29, x30, [sp], 48
+ ldp x29, x30, [sp], 32
ret
.size BuildFlashLsbPageTable, .-BuildFlashLsbPageTable
.align 2
@@ -667,120 +684,216 @@ FlashPrintInfo:
ret
.size FlashPrintInfo, .-FlashPrintInfo
.align 2
+ .global ToshibaSetRRPara
+ .type ToshibaSetRRPara, %function
+ToshibaSetRRPara:
+ uxtb w1, w1
+ mov w3, 5
+ add w2, w1, 1
+ stp x29, x30, [sp, -80]!
+ smull x3, w2, w3
+ adrp x2, .LANCHOR1
+ add x29, sp, 0
+ add x2, x2, :lo12:.LANCHOR1
+ stp x21, x22, [sp,32]
+ stp x23, x24, [sp,48]
+ add x23, x2, x1, sxtw
+ stp x25, x26, [sp,64]
+ add x21, x2, 304
+ add x25, x2, 256
+ adrp x24, g_maxRegNum
+ adrp x26, g_retryMode
+ stp x19, x20, [sp,16]
+ mov x22, x0
+ add x25, x25, x3
+ add x21, x21, x3
+ mov x20, 0
+ add x24, x24, :lo12:g_maxRegNum
+ mov x19, x2
+ add x26, x26, :lo12:g_retryMode
+.L107:
+ ldrb w0, [x24]
+ cmp w0, w20
+ bls .L113
+ mov w0, 85
+ str w0, [x22,8]
+ add x0, x19, 256
+ ldrsb w0, [x20,x0]
+ str w0, [x22,4]
+ mov x0, 1000
+ bl __const_udelay
+ ldrb w0, [x26]
+ cmp w0, 34
+ bne .L108
+ ldrsb w0, [x25,x20]
+ b .L112
+.L108:
+ cmp w0, 35
+ bne .L110
+ ldrsb w0, [x21,x20]
+ b .L112
+.L110:
+ ldrsb w0, [x23,400]
+.L112:
+ str w0, [x22]
+ add x20, x20, 1
+ b .L107
+.L113:
+ ldp x19, x20, [sp,16]
+ ldp x21, x22, [sp,32]
+ ldp x23, x24, [sp,48]
+ ldp x25, x26, [sp,64]
+ ldp x29, x30, [sp], 80
+ ret
+ .size ToshibaSetRRPara, .-ToshibaSetRRPara
+ .align 2
+ .global SamsungSetRRPara
+ .type SamsungSetRRPara, %function
+SamsungSetRRPara:
+ stp x29, x30, [sp, -64]!
+ adrp x2, .LANCHOR1
+ add x29, sp, 0
+ stp x21, x22, [sp,32]
+ add x2, x2, :lo12:.LANCHOR1
+ adrp x22, g_maxRegNum
+ stp x19, x20, [sp,16]
+ add x1, x2, x1, uxtb 2
+ stp x23, x24, [sp,48]
+ mov x21, x0
+ add x23, x1, 412
+ mov x20, 0
+ add x22, x22, :lo12:g_maxRegNum
+ mov w24, 161
+ mov x19, x2
+.L115:
+ ldrb w0, [x22]
+ cmp w0, w20
+ bls .L117
+ str w24, [x21,8]
+ add x0, x19, 408
+ str wzr, [x21]
+ ldrsb w0, [x20,x0]
+ str w0, [x21]
+ ldrsb w0, [x23,x20]
+ add x20, x20, 1
+ str w0, [x21]
+ mov x0, 1500
+ bl __const_udelay
+ b .L115
+.L117:
+ ldp x19, x20, [sp,16]
+ ldp x21, x22, [sp,32]
+ ldp x23, x24, [sp,48]
+ ldp x29, x30, [sp], 64
+ ret
+ .size SamsungSetRRPara, .-SamsungSetRRPara
+ .align 2
.global FlashDieInfoInit
.type FlashDieInfoInit, %function
FlashDieInfoInit:
- stp x29, x30, [sp, -80]!
- adrp x1, .LANCHOR1+266
+ stp x29, x30, [sp, -96]!
+ adrp x0, .LANCHOR1+482
add x29, sp, 0
stp x21, x22, [sp,32]
adrp x21, .LANCHOR0
- ldrh w1, [x1,#:lo12:.LANCHOR1+266]
- add x0, x21, :lo12:.LANCHOR0
- str x25, [sp,64]
+ ldrh w0, [x0,#:lo12:.LANCHOR1+482]
stp x19, x20, [sp,16]
- stp x23, x24, [sp,48]
- strb wzr, [x0,1676]
- cmp w1, 256
- strb wzr, [x0,1677]
- bls .L108
- mov w1, 512
- b .L124
-.L108:
- cmp w1, 128
- bls .L124
- mov w1, 256
-.L124:
add x19, x21, :lo12:.LANCHOR0
- str w1, [x0,28]
- mov w2, 8
+ str x27, [sp,80]
+ stp x23, x24, [sp,48]
+ stp x25, x26, [sp,64]
+ strb wzr, [x19,1672]
+ add x25, x19, 1676
+ strb wzr, [x19,1673]
+ bl FlashBlockAlignInit
mov w1, 0
- add x0, x19, 1680
- adrp x24, IDByte
+ mov w2, 8
+ mov x0, x25
+ add x24, x19, 1684
+ adrp x26, IDByte
mov x23, 0
- add x24, x24, :lo12:IDByte
bl ftl_memset
+ add x26, x26, :lo12:IDByte
mov w1, 0
mov w2, 32
- add x0, x19, 1688
+ mov x0, x24
bl ftl_memset
- add x0, x19, 1720
+ add x0, x19, 1716
mov w1, 0
mov w2, 192
bl ftl_memset
ldr x20, [x19,1912]
add x22, x20, 1
-.L112:
+.L120:
ldrb w2, [x20]
mov x0, x22
- add x1, x24, x23, lsl 3
+ add x1, x26, x23, lsl 3
bl FlashMemCmp8
- cbnz w0, .L111
- ldrb w1, [x19,1676]
- add x2, x19, 1688
- str w0, [x2,w1,sxtw 2]
+ cbnz w0, .L119
+ ldrb w1, [x19,1672]
+ str w0, [x24,w1,sxtw 2]
add w0, w1, 1
- add x1, x19, x1, sxtw
- strb w0, [x19,1676]
- strb w23, [x1,1680]
-.L111:
+ strb w23, [x25,w1,sxtw]
+ strb w0, [x19,1672]
+.L119:
add x23, x23, 1
cmp x23, 4
- bne .L112
+ bne .L120
add x19, x21, :lo12:.LANCHOR0
- ldrb w0, [x19,1676]
- strb w0, [x19,1677]
+ ldrb w0, [x19,1672]
+ strb w0, [x19,1673]
ldrb w0, [x20,8]
cmp w0, 2
- beq .L113
-.L117:
+ beq .L121
+.L125:
add x21, x21, :lo12:.LANCHOR0
ldrb w1, [x20,13]
ldp x23, x24, [sp,48]
- ldr x25, [sp,64]
- ldrb w0, [x21,1676]
+ ldp x25, x26, [sp,64]
+ ldrb w0, [x21,1672]
+ ldr x27, [sp,80]
mul w0, w0, w1
ldrh w1, [x20,14]
ldp x19, x20, [sp,16]
mul w0, w0, w1
strh w0, [x21,1920]
ldp x21, x22, [sp,32]
- ldp x29, x30, [sp], 80
+ ldp x29, x30, [sp], 96
ret
-.L113:
+.L121:
adrp x24, IDByte
- ldr w25, [x19,28]
+ ldr w26, [x19,28]
mov x23, 0
add x24, x24, :lo12:IDByte
-.L116:
+ add x25, x19, 1684
+ add x27, x19, 1676
+.L124:
ldrb w2, [x20]
mov x0, x22
add x1, x24, x23, lsl 3
bl FlashMemCmp8
- cbnz w0, .L114
+ cbnz w0, .L122
ldrb w1, [x20,13]
- add x4, x19, 1688
- ldrb w3, [x19,1676]
- mul w2, w1, w25
+ ldrb w3, [x19,1672]
+ mul w2, w1, w26
ldrh w1, [x20,14]
mov x0, x3
and w1, w1, 65280
mul w1, w2, w1
- str w1, [x4,w3,sxtw 2]
+ str w1, [x25,w3,sxtw 2]
ldrb w2, [x20,23]
- cbz w2, .L115
+ cbz w2, .L123
lsl w1, w1, 1
- str w1, [x4,w3,sxtw 2]
-.L115:
+ str w1, [x25,w3,sxtw 2]
+.L123:
add w0, w0, 1
- strb w0, [x19,1676]
- add x0, x19, x3
- strb w23, [x0,1680]
-.L114:
+ strb w23, [x27,x3]
+ strb w0, [x19,1672]
+.L122:
add x23, x23, 1
cmp x23, 4
- bne .L116
- b .L117
+ bne .L124
+ b .L125
.size FlashDieInfoInit, .-FlashDieInfoInit
.align 2
.global FlashReadIdbData
@@ -804,64 +917,67 @@ FlashLoadPhyInfoInRam:
stp x29, x30, [sp, -64]!
add x29, sp, 0
stp x19, x20, [sp,16]
- adrp x20, .LANCHOR1
+ adrp x19, .LANCHOR1
str x23, [sp,48]
stp x21, x22, [sp,32]
adrp x23, IDByte
- add x21, x20, :lo12:.LANCHOR1
- add x21, x21, 288
- mov w19, 0
+ add x21, x19, :lo12:.LANCHOR1
+ add x21, x21, 504
+ mov w20, 0
add x23, x23, :lo12:IDByte
-.L130:
+.L137:
ldrb w2, [x21]
add x0, x21, 1
mov x1, x23
bl FlashMemCmp8
mov w22, w0
- cbnz w0, .L127
- add x0, x20, :lo12:.LANCHOR1
- ubfiz x19, x19, 5, 32
- add x1, x0, 288
- adds x19, x1, x19
- beq .L133
- ldrb w3, [x19,22]
+ cbnz w0, .L134
+ add x0, x19, :lo12:.LANCHOR1
+ ubfiz x20, x20, 5, 32
+ add x1, x0, 504
+ adds x20, x1, x20
+ beq .L140
+ ldrb w3, [x20,22]
mov x2, 0
mov x1, x0
- b .L132
-.L127:
- add w19, w19, 1
+ b .L139
+.L134:
+ add w20, w20, 1
add x21, x21, 32
- cmp w19, 77
- bne .L130
- b .L133
-.L132:
+ cmp w20, 81
+ bne .L137
+ b .L140
+.L139:
add x4, x1, x2, lsl 5
mov w0, w2
- ldrb w4, [x4,2752]
+ ldrb w4, [x4,3096]
cmp w4, w3
- beq .L131
+ beq .L138
add x2, x2, 1
cmp x2, 4
- bne .L132
+ bne .L139
mov w0, w2
-.L131:
- add x20, x20, :lo12:.LANCHOR1
+.L138:
+ add x19, x19, :lo12:.LANCHOR1
ubfiz x1, x0, 5, 32
adrp x0, .LANCHOR0
- add x2, x20, 2752
+ add x2, x19, 3096
add x0, x0, :lo12:.LANCHOR0
add x1, x2, x1
add x0, x0, 104
mov w2, 32
+ add x19, x19, 472
bl ftl_memcpy
- add x0, x20, 256
- mov x1, x19
+ mov x0, x19
+ mov x1, x20
mov w2, 32
bl ftl_memcpy
- b .L128
-.L133:
+ ldrh w0, [x19,10]
+ bl FlashBlockAlignInit
+ b .L135
+.L140:
mov w22, -1
-.L128:
+.L135:
mov w0, w22
ldr x23, [sp,48]
ldp x19, x20, [sp,16]
@@ -917,33 +1033,119 @@ LogAddr2PhyAddr:
udiv w10, w6, w5
msub w5, w10, w5, w6
uxth w6, w5
- bne .L140
+ bne .L147
add x1, x7, :lo12:.LANCHOR0
- ldrb w5, [x1,136]
- cbnz w5, .L140
- add x1, x1, 140
+ ldrb w5, [x1,4044]
+ cbnz w5, .L147
+ add x1, x1, 136
ldrh w8, [x1,w8,sxtw 1]
-.L140:
+.L147:
add x7, x7, :lo12:.LANCHOR0
cmp w4, 1
- add x7, x7, 1688
+ add x7, x7, 1684
mov w1, 0
ldr w5, [x7,w10,uxtw 2]
madd w5, w6, w9, w5
add w5, w5, w8
str w5, [x2]
str w10, [x3]
- bls .L141
+ bls .L148
ldr w1, [x0,4]
ldr w0, [x0,60]
add w1, w1, 1024
cmp w1, w0
cset w1, eq
-.L141:
+.L148:
mov w0, w1
ret
.size LogAddr2PhyAddr, .-LogAddr2PhyAddr
.align 2
+ .global FlashReadStatusEN
+ .type FlashReadStatusEN, %function
+FlashReadStatusEN:
+ stp x29, x30, [sp, -32]!
+ adrp x3, .LANCHOR0
+ ubfiz x0, x0, 4, 8
+ add x4, x3, :lo12:.LANCHOR0
+ add x29, sp, 0
+ add x5, x4, 40
+ stp x19, x20, [sp,16]
+ add x6, x5, x0
+ uxtb w2, w2
+ ldr x20, [x5,x0]
+ ldr x0, [x4,1912]
+ ldrb w19, [x6,8]
+ ldrb w0, [x0,8]
+ cmp w0, 2
+ bne .L151
+ add x4, x4, 104
+ cbnz w2, .L152
+ ldrb w2, [x4,13]
+ b .L160
+.L152:
+ ldrb w2, [x4,14]
+.L160:
+ add x0, x19, 8
+ add x3, x3, :lo12:.LANCHOR0
+ add x0, x20, x0, lsl 8
+ str w2, [x0,8]
+ mov w2, 0
+ ldrb w4, [x3,119]
+ cbz w4, .L155
+ add x3, x19, 8
+ lsl x3, x3, 8
+.L159:
+ cmp w2, w4
+ bcs .L155
+ add x5, x20, x3
+ lsl w0, w2, 3
+ lsr w0, w1, w0
+ add w2, w2, 1
+ and w0, w0, 255
+ str w0, [x5,4]
+ b .L159
+.L151:
+ add x0, x19, 8
+ mov w1, 112
+ add x0, x20, x0, lsl 8
+ str w1, [x0,8]
+.L155:
+ add x19, x19, 8
+ mov x0, 400
+ lsl x19, x19, 8
+ bl __const_udelay
+ ldr w0, [x20,x19]
+ ldp x19, x20, [sp,16]
+ ldp x29, x30, [sp], 32
+ uxtb w0, w0
+ ret
+ .size FlashReadStatusEN, .-FlashReadStatusEN
+ .align 2
+ .global FlashWaitReadyEN
+ .type FlashWaitReadyEN, %function
+FlashWaitReadyEN:
+ stp x29, x30, [sp, -48]!
+ add x29, sp, 0
+ stp x19, x20, [sp,16]
+ str x21, [sp,32]
+ uxtb w19, w0
+ mov w20, w1
+ uxtb w21, w2
+.L165:
+ mov w0, w19
+ mov w1, w20
+ mov w2, w21
+ bl FlashReadStatusEN
+ cmp w0, 255
+ mov w3, w0
+ beq .L165
+ tbz x3, 6, .L165
+ ldp x19, x20, [sp,16]
+ ldr x21, [sp,32]
+ ldp x29, x30, [sp], 48
+ ret
+ .size FlashWaitReadyEN, .-FlashWaitReadyEN
+ .align 2
.global ftl_read_flash_info
.type ftl_read_flash_info, %function
ftl_read_flash_info:
@@ -960,35 +1162,35 @@ ftl_read_flash_info:
ldr x0, [x1,1912]
ldrb w2, [x0,9]
ldr w0, [x1,28]
+ add x1, x1, 1676
mul w0, w0, w2
strh w0, [x19,4]
- ldrb w0, [x1,4044]
+ ldrb w0, [x1,2369]
strb w0, [x19,7]
- ldr w0, [x1,4048]
+ ldr w0, [x1,2372]
str w0, [x19]
- ldr x0, [x1,1912]
- ldrb w4, [x1,1676]
+ ldr x0, [x1,236]
+ ldrb w4, [x1,-4]
ldrb w0, [x0,9]
strb w0, [x19,6]
mov w0, 32
strb w0, [x19,8]
- ldr x0, [x1,1912]
+ ldr x0, [x1,236]
ldrb w0, [x0,7]
strb w0, [x19,9]
mov x0, 0
strb wzr, [x19,10]
-.L144:
+.L169:
cmp w4, w0, uxtb
- bls .L146
- add x2, x1, 1680
- ldrb w3, [x19,10]
- ldrb w2, [x0,x2]
+ bls .L171
+ ldrb w2, [x0,x1]
add x0, x0, 1
+ ldrb w3, [x19,10]
lsl w2, w5, w2
orr w2, w2, w3
strb w2, [x19,10]
- b .L144
-.L146:
+ b .L169
+.L171:
ldr x19, [sp,16]
ldp x29, x30, [sp], 32
ret
@@ -1082,7 +1284,7 @@ NandcSetMode:
tst w0, 6
ldr x2, [x1,#:lo12:.LANCHOR0+3976]
ldr w1, [x2]
- beq .L157
+ beq .L182
and w0, w0, 4
orr w1, w1, 24576
cmp w0, wzr
@@ -1099,10 +1301,10 @@ NandcSetMode:
csel w1, w3, w1, ne
mov w0, 39
str w0, [x2,308]
- b .L159
-.L157:
+ b .L184
+.L182:
and w1, w1, -8193
-.L159:
+.L184:
str w1, [x2]
mov w0, 0
ret
@@ -1141,225 +1343,87 @@ NandcFlashDeCs:
ret
.size NandcFlashDeCs, .-NandcFlashDeCs
.align 2
- .global NandcDelayns
- .type NandcDelayns, %function
-NandcDelayns:
- sub sp, sp, #16
- lsr w0, w0, 4
- str w0, [sp,12]
-.L165:
- ldr w0, [sp,12]
- sub w1, w0, #1
- str w1, [sp,12]
- cbnz w0, .L165
- add sp, sp, 16
- ret
- .size NandcDelayns, .-NandcDelayns
- .align 2
- .global FlashReadStatus
- .type FlashReadStatus, %function
-FlashReadStatus:
- adrp x1, .LANCHOR0
- ubfiz x0, x0, 4, 8
- stp x29, x30, [sp, -32]!
- add x1, x1, :lo12:.LANCHOR0
- add x1, x1, 40
- add x29, sp, 0
- add x2, x1, x0
- str x19, [sp,16]
- ldrb w2, [x2,8]
- ldr x19, [x1,x0]
- mov w0, 112
- add x19, x19, x2, lsl 8
- str w0, [x19,2056]
- mov w0, 80
- bl NandcDelayns
- ldr w0, [x19,2048]
- ldr x19, [sp,16]
- ldp x29, x30, [sp], 32
- ret
- .size FlashReadStatus, .-FlashReadStatus
- .align 2
- .global ToshibaSetRRPara
- .type ToshibaSetRRPara, %function
-ToshibaSetRRPara:
- uxtb w1, w1
- mov w3, 5
- add w2, w1, 1
- stp x29, x30, [sp, -80]!
- smull x3, w2, w3
- adrp x2, .LANCHOR1
- add x29, sp, 0
- add x2, x2, :lo12:.LANCHOR1
- stp x21, x22, [sp,32]
- stp x23, x24, [sp,48]
- add x23, x2, x1, sxtw
- stp x25, x26, [sp,64]
- add x21, x2, 2928
- add x25, x2, 2880
- adrp x24, g_maxRegNum
- adrp x26, g_retryMode
- stp x19, x20, [sp,16]
- mov x22, x0
- add x25, x25, x3
- add x21, x21, x3
- mov x20, 0
- add x24, x24, :lo12:g_maxRegNum
- mov x19, x2
- add x26, x26, :lo12:g_retryMode
-.L169:
- ldrb w0, [x24]
- cmp w0, w20
- bls .L175
- mov w0, 85
- str w0, [x22,8]
- add x0, x19, 2880
- ldrsb w0, [x20,x0]
- str w0, [x22,4]
- mov w0, 200
- bl NandcDelayns
- ldrb w0, [x26]
- cmp w0, 34
- bne .L170
- ldrsb w0, [x25,x20]
- b .L174
-.L170:
- cmp w0, 35
- bne .L172
- ldrsb w0, [x21,x20]
- b .L174
-.L172:
- ldrsb w0, [x23,3024]
-.L174:
- str w0, [x22]
- add x20, x20, 1
- b .L169
-.L175:
- ldp x19, x20, [sp,16]
- ldp x21, x22, [sp,32]
- ldp x23, x24, [sp,48]
- ldp x25, x26, [sp,64]
- ldp x29, x30, [sp], 80
- ret
- .size ToshibaSetRRPara, .-ToshibaSetRRPara
- .align 2
- .global SamsungSetRRPara
- .type SamsungSetRRPara, %function
-SamsungSetRRPara:
- stp x29, x30, [sp, -64]!
- adrp x2, .LANCHOR1
- add x29, sp, 0
- stp x21, x22, [sp,32]
- add x2, x2, :lo12:.LANCHOR1
- adrp x22, g_maxRegNum
- stp x19, x20, [sp,16]
- add x1, x2, x1, uxtb 2
- stp x23, x24, [sp,48]
- mov x21, x0
- add x23, x1, 3036
- mov x20, 0
- add x22, x22, :lo12:g_maxRegNum
- mov w24, 161
- mov x19, x2
-.L177:
- ldrb w0, [x22]
- cmp w0, w20
- bls .L179
- str w24, [x21,8]
- add x0, x19, 3032
- str wzr, [x21]
- ldrsb w0, [x20,x0]
- str w0, [x21]
- ldrsb w0, [x23,x20]
- add x20, x20, 1
- str w0, [x21]
- mov w0, 300
- bl NandcDelayns
- b .L177
-.L179:
- ldp x19, x20, [sp,16]
- ldp x21, x22, [sp,32]
- ldp x23, x24, [sp,48]
- ldp x29, x30, [sp], 64
- ret
- .size SamsungSetRRPara, .-SamsungSetRRPara
- .align 2
.global HynixSetRRPara
.type HynixSetRRPara, %function
HynixSetRRPara:
stp x29, x30, [sp, -80]!
add x29, sp, 0
- stp x21, x22, [sp,32]
- mov x21, x2
- adrp x2, .LANCHOR0
stp x19, x20, [sp,16]
+ mov x20, x2
+ adrp x2, .LANCHOR0
add x19, x2, :lo12:.LANCHOR0
- uxtb w20, w3
- stp x25, x26, [sp,64]
stp x23, x24, [sp,48]
- uxtb x24, w0
+ stp x25, x26, [sp,64]
+ stp x21, x22, [sp,32]
+ uxtb x23, w0
uxtb w26, w1
ldr x0, [x19,1912]
- mov x25, x24
- add x19, x19, 4056
+ mov x25, x23
+ uxtb w24, w3
ldrb w0, [x0,19]
cmp w0, 6
- bne .L181
- add x19, x19, x24, lsl 6
- lsl w4, w20, 2
- add x19, x19, 20
- b .L186
-.L181:
+ bne .L190
+ add x19, x19, x23, lsl 6
+ lsl w4, w24, 2
+ add x19, x19, 4076
+ b .L196
+.L190:
cmp w0, 7
- bne .L183
+ bne .L192
mov x0, 160
mov w4, 10
- madd x19, x24, x0, x19
- mul w4, w20, w4
- add x19, x19, 28
-.L186:
+ madd x19, x23, x0, x19
+ mul w4, w24, w4
+ add x19, x19, 4084
+.L196:
add x19, x19, x4, sxtw
- b .L182
-.L183:
- lsl x4, x24, 3
- add x4, x4, x20, sxtw
+ b .L191
+.L192:
+ cmp w0, 8
+ bne .L193
+ add x19, x19, 4084
+ add w4, w24, w24, lsl 2
+ b .L196
+.L193:
+ lsl x4, x23, 3
+ add x4, x4, x24, sxtw
add x19, x19, x4, lsl 3
- add x19, x19, 20
-.L182:
+ add x19, x19, 4076
+.L191:
add x2, x2, :lo12:.LANCHOR0
- lsl x0, x24, 4
+ lsl x0, x23, 4
add x2, x2, 40
uxtb x26, w26
add x1, x2, x0
- ldr x22, [x2,x0]
+ ldr x21, [x2,x0]
mov w0, w25
- ldrb w23, [x1,8]
+ ldrb w22, [x1,8]
bl NandcFlashCs
- ubfiz x23, x23, 8, 8
+ ubfiz x22, x22, 8, 8
mov w0, 54
- add x22, x22, x23
- mov x23, 0
- str w0, [x22,2056]
-.L184:
- cmp x23, x26
- beq .L187
- ldrb w0, [x21,x23]
- str w0, [x22,2052]
- mov w0, 200
- bl NandcDelayns
- ldrsb w0, [x19,x23]
- add x23, x23, 1
- str w0, [x22,2048]
- b .L184
-.L187:
+ add x21, x21, x22
+ mov x22, 0
+ str w0, [x21,2056]
+.L194:
+ cmp x22, x26
+ beq .L197
+ ldrb w0, [x20,x22]
+ str w0, [x21,2052]
+ mov x0, 1000
+ bl __const_udelay
+ ldrsb w0, [x19,x22]
+ add x22, x22, 1
+ str w0, [x21,2048]
+ b .L194
+.L197:
mov w0, 22
- str w0, [x22,2056]
+ str w0, [x21,2056]
mov w0, w25
bl NandcFlashDeCs
adrp x0, .LANCHOR2
add x0, x0, :lo12:.LANCHOR2
- add x24, x0, x24
- strb w20, [x24,560]
+ add x23, x0, x23
+ strb w24, [x23,560]
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -1382,118 +1446,32 @@ FlashSetReadRetryDefault:
ldrb w0, [x0,19]
sub w0, w0, #1
uxtb w0, w0
- cmp w0, 6
- bhi .L188
+ cmp w0, 7
+ bhi .L198
adrp x21, IDByte
add x22, x19, 4060
add x21, x21, :lo12:IDByte
-.L193:
+.L203:
lsl x1, x20, 3
uxtb w0, w20
ldrb w1, [x1,x21]
cmp w1, 173
- bne .L190
+ bne .L200
ldrb w1, [x19,4057]
mov x2, x22
mov w3, 0
bl HynixSetRRPara
-.L190:
+.L200:
add x20, x20, 1
cmp x20, 4
- bne .L193
-.L188:
+ bne .L203
+.L198:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x29, x30, [sp], 48
ret
.size FlashSetReadRetryDefault, .-FlashSetReadRetryDefault
.align 2
- .global FlashReadStatusEN
- .type FlashReadStatusEN, %function
-FlashReadStatusEN:
- stp x29, x30, [sp, -32]!
- adrp x3, .LANCHOR0
- ubfiz x0, x0, 4, 8
- add x4, x3, :lo12:.LANCHOR0
- add x29, sp, 0
- add x5, x4, 40
- stp x19, x20, [sp,16]
- add x6, x5, x0
- uxtb w2, w2
- ldr x20, [x5,x0]
- ldr x0, [x4,1912]
- ldrb w19, [x6,8]
- ldrb w0, [x0,8]
- cmp w0, 2
- bne .L196
- add x4, x4, 104
- cbnz w2, .L197
- ldrb w2, [x4,13]
- b .L205
-.L197:
- ldrb w2, [x4,14]
-.L205:
- add x0, x19, 8
- add x3, x3, :lo12:.LANCHOR0
- add x0, x20, x0, lsl 8
- str w2, [x0,8]
- mov w2, 0
- ldrb w4, [x3,119]
- cbz w4, .L200
- add x3, x19, 8
- lsl x3, x3, 8
-.L204:
- cmp w2, w4
- bcs .L200
- add x5, x20, x3
- lsl w0, w2, 3
- lsr w0, w1, w0
- add w2, w2, 1
- and w0, w0, 255
- str w0, [x5,4]
- b .L204
-.L196:
- add x0, x19, 8
- mov w1, 112
- add x0, x20, x0, lsl 8
- str w1, [x0,8]
-.L200:
- add x19, x19, 8
- mov w0, 80
- lsl x19, x19, 8
- bl NandcDelayns
- ldr w0, [x20,x19]
- ldp x19, x20, [sp,16]
- ldp x29, x30, [sp], 32
- uxtb w0, w0
- ret
- .size FlashReadStatusEN, .-FlashReadStatusEN
- .align 2
- .global FlashWaitReadyEN
- .type FlashWaitReadyEN, %function
-FlashWaitReadyEN:
- stp x29, x30, [sp, -48]!
- add x29, sp, 0
- stp x19, x20, [sp,16]
- str x21, [sp,32]
- uxtb w19, w0
- mov w20, w1
- uxtb w21, w2
-.L210:
- mov w0, w19
- mov w1, w20
- mov w2, w21
- bl FlashReadStatusEN
- cmp w0, 255
- mov w3, w0
- beq .L210
- tbz x3, 6, .L210
- ldp x19, x20, [sp,16]
- ldr x21, [sp,32]
- ldp x29, x30, [sp], 48
- ret
- .size FlashWaitReadyEN, .-FlashWaitReadyEN
- .align 2
.global FlashWaitCmdDone
.type FlashWaitCmdDone, %function
FlashWaitCmdDone:
@@ -1507,13 +1485,13 @@ FlashWaitCmdDone:
add x20, x20, :lo12:.LANCHOR0
mov x22, x1
mul x1, x1, x2
- add x0, x20, 1720
+ add x0, x20, 1716
add x19, x0, x1
ldrb w21, [x0,x1]
ldr x0, [x19,8]
- cbz x0, .L215
+ cbz x0, .L207
mov w0, w21
- add x20, x20, 1688
+ add x20, x20, 1684
bl NandcFlashCs
ldr w0, [x20,w22,sxtw 2]
ldr w1, [x19,4]
@@ -1529,10 +1507,10 @@ FlashWaitCmdDone:
str w0, [x1]
str xzr, [x19,8]
ldr x1, [x19,16]
- cbz x1, .L215
+ cbz x1, .L207
str w0, [x1]
str xzr, [x19,16]
-.L215:
+.L207:
mov w0, 0
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -1540,6 +1518,50 @@ FlashWaitCmdDone:
ret
.size FlashWaitCmdDone, .-FlashWaitCmdDone
.align 2
+ .global NandcDelayns
+ .type NandcDelayns, %function
+NandcDelayns:
+ stp x29, x30, [sp, -16]!
+ uxtw x0, w0
+ add x29, sp, 0
+ bl __ndelay
+ mov w0, 0
+ ldp x29, x30, [sp], 16
+ ret
+ .size NandcDelayns, .-NandcDelayns
+ .align 2
+ .global NandcWaitFlashReadyNoDelay
+ .type NandcWaitFlashReadyNoDelay, %function
+NandcWaitFlashReadyNoDelay:
+ stp x29, x30, [sp, -48]!
+ adrp x1, .LANCHOR0
+ ubfiz x0, x0, 4, 8
+ add x1, x1, :lo12:.LANCHOR0
+ add x29, sp, 0
+ add x1, x1, 40
+ stp x19, x20, [sp,16]
+ mov w19, 34464
+ ldr x20, [x1,x0]
+ movk w19, 0x1, lsl 16
+.L215:
+ ldr w0, [x20]
+ str w0, [x29,40]
+ ldr w0, [x29,40]
+ tbnz x0, 9, .L216
+ mov x0, 50
+ bl __const_udelay
+ subs w19, w19, #1
+ bne .L215
+ mov w0, -1
+ b .L214
+.L216:
+ mov w0, 0
+.L214:
+ ldp x19, x20, [sp,16]
+ ldp x29, x30, [sp], 48
+ ret
+ .size NandcWaitFlashReadyNoDelay, .-NandcWaitFlashReadyNoDelay
+ .align 2
.global NandcWaitFlashReady
.type NandcWaitFlashReady, %function
NandcWaitFlashReady:
@@ -1553,20 +1575,22 @@ NandcWaitFlashReady:
mov w19, 34464
ldr x20, [x1,x0]
movk w19, 0x1, lsl 16
-.L222:
- mov w0, 100
- bl NandcDelayns
+ mov x0, 750
+ bl __const_udelay
+.L220:
ldr w0, [x20]
str w0, [x29,40]
ldr w0, [x29,40]
- tbnz x0, 9, .L223
+ tbnz x0, 9, .L221
+ mov x0, 50
+ bl __const_udelay
subs w19, w19, #1
- bne .L222
+ bne .L220
mov w0, -1
- b .L221
-.L223:
- mov w0, 0
+ b .L219
.L221:
+ mov w0, 0
+.L219:
ldp x19, x20, [sp,16]
ldp x29, x30, [sp], 48
ret
@@ -1603,6 +1627,95 @@ FlashReset:
ret
.size FlashReset, .-FlashReset
.align 2
+ .global flash_enter_slc_mode
+ .type flash_enter_slc_mode, %function
+flash_enter_slc_mode:
+ stp x29, x30, [sp, -32]!
+ add x29, sp, 0
+ stp x19, x20, [sp,16]
+ adrp x19, .LANCHOR0
+ uxtb w20, w0
+ add x19, x19, :lo12:.LANCHOR0
+ ldrb w0, [x19,4044]
+ cbz w0, .L224
+ mov w0, w20
+ add x19, x19, 40
+ bl NandcFlashCs
+ sbfiz x0, x20, 4, 32
+ add x1, x19, x0
+ ldr x19, [x19,x0]
+ mov w0, 239
+ ldrb w1, [x1,8]
+ add x19, x19, x1, lsl 8
+ str w0, [x19,2056]
+ mov w0, 145
+ str w0, [x19,2052]
+ mov x0, 500
+ bl __const_udelay
+ str wzr, [x19,2048]
+ mov w0, 1
+ str w0, [x19,2048]
+ str wzr, [x19,2048]
+ mov x0, 500
+ str wzr, [x19,2048]
+ bl __const_udelay
+ mov w0, w20
+ bl NandcWaitFlashReadyNoDelay
+ mov w0, 218
+ str w0, [x19,2056]
+ mov w0, w20
+ bl NandcWaitFlashReady
+.L224:
+ ldp x19, x20, [sp,16]
+ ldp x29, x30, [sp], 32
+ ret
+ .size flash_enter_slc_mode, .-flash_enter_slc_mode
+ .align 2
+ .global flash_exit_slc_mode
+ .type flash_exit_slc_mode, %function
+flash_exit_slc_mode:
+ stp x29, x30, [sp, -32]!
+ add x29, sp, 0
+ stp x19, x20, [sp,16]
+ adrp x19, .LANCHOR0
+ uxtb w20, w0
+ add x19, x19, :lo12:.LANCHOR0
+ ldrb w0, [x19,4044]
+ cbz w0, .L229
+ mov w0, w20
+ add x19, x19, 40
+ bl NandcFlashCs
+ sbfiz x0, x20, 4, 32
+ add x1, x19, x0
+ ldr x19, [x19,x0]
+ mov w0, 239
+ ldrb w1, [x1,8]
+ add x19, x19, x1, lsl 8
+ str w0, [x19,2056]
+ mov w0, 145
+ str w0, [x19,2052]
+ mov x0, 500
+ bl __const_udelay
+ mov w0, 2
+ str w0, [x19,2048]
+ mov w0, 1
+ str w0, [x19,2048]
+ str wzr, [x19,2048]
+ mov x0, 500
+ str wzr, [x19,2048]
+ bl __const_udelay
+ mov w0, w20
+ bl NandcWaitFlashReadyNoDelay
+ mov w0, 223
+ str w0, [x19,2056]
+ mov w0, w20
+ bl NandcWaitFlashReady
+.L229:
+ ldp x19, x20, [sp,16]
+ ldp x29, x30, [sp], 32
+ ret
+ .size flash_exit_slc_mode, .-flash_exit_slc_mode
+ .align 2
.global FlashEraseBlock
.type FlashEraseBlock, %function
FlashEraseBlock:
@@ -1656,68 +1769,68 @@ FlashSetInterfaceMode:
mov w12, 35
mov w13, 32
mov w14, 5
-.L238:
+.L246:
ldrb w4, [x6,x7]
ldr x1, [x3]
cmp w4, 152
ldrb w2, [x3,8]
- beq .L228
+ beq .L236
cmp w4, 69
- beq .L228
+ beq .L236
cmp w4, 173
- beq .L228
+ beq .L236
cmp w4, 44
- bne .L229
-.L228:
+ bne .L237
+.L236:
cmp w0, 1
- bne .L231
- cbz w11, .L229
+ bne .L239
+ cbz w11, .L237
ubfiz x2, x2, 8, 8
cmp w4, 173
add x1, x1, x2
str w8, [x1,2056]
- bne .L232
+ bne .L240
str w0, [x1,2052]
- b .L249
-.L232:
+ b .L257
+.L240:
cmp w4, 44
- bne .L234
+ bne .L242
str w0, [x1,2052]
str w14, [x1,2048]
- b .L236
-.L234:
+ b .L244
+.L242:
str w9, [x1,2052]
str w0, [x1,2048]
- b .L236
-.L231:
- cbz w5, .L229
+ b .L244
+.L239:
+ cbz w5, .L237
ubfiz x2, x2, 8, 8
cmp w4, 173
add x1, x1, x2
str w8, [x1,2056]
- bne .L235
+ bne .L243
str w10, [x1,2052]
str w13, [x1,2048]
- b .L236
-.L235:
+ b .L244
+.L243:
cmp w4, 44
- bne .L237
+ bne .L245
str w10, [x1,2052]
str w12, [x1,2048]
- b .L236
-.L237:
+ b .L244
+.L245:
str w9, [x1,2052]
-.L249:
+.L257:
str wzr, [x1,2048]
-.L236:
+.L244:
str wzr, [x1,2048]
str wzr, [x1,2048]
str wzr, [x1,2048]
-.L229:
+.L237:
add x6, x6, 8
add x3, x3, 16
cmp x6, 32
- bne .L238
+ bne .L246
mov w0, 0
bl NandcWaitFlashReady
mov w0, 0
@@ -1728,7 +1841,7 @@ FlashSetInterfaceMode:
.global FlashReadSpare
.type FlashReadSpare, %function
FlashReadSpare:
- adrp x3, .LANCHOR1+265
+ adrp x3, .LANCHOR1+481
adrp x5, .LANCHOR0
stp x29, x30, [sp, -48]!
uxtb w0, w0
@@ -1736,7 +1849,7 @@ FlashReadSpare:
add x5, x5, 40
sbfiz x6, x0, 4, 32
add x29, sp, 0
- ldrb w4, [x3,#:lo12:.LANCHOR1+265]
+ ldrb w4, [x3,#:lo12:.LANCHOR1+481]
add x3, x5, x6
str x19, [sp,16]
lsl w4, w4, 9
@@ -1797,8 +1910,8 @@ SandiskProgTestBadBlock:
bl NandcWaitFlashReady
mov w0, 112
str w0, [x19,2056]
- mov w0, 80
- bl NandcDelayns
+ mov x0, 400
+ bl __const_udelay
ldr w0, [x19,2048]
ldr x19, [sp,16]
and w0, w0, 1
@@ -1819,37 +1932,37 @@ SandiskSetRRPara:
str w0, [x20,8]
mov w0, 17
str w0, [x20,4]
- mov w0, 200
- bl NandcDelayns
+ mov x0, 1000
+ bl __const_udelay
mov w1, 5
adrp x2, .LANCHOR1
add x2, x2, :lo12:.LANCHOR1
adrp x0, g_maxRegNum
smull x1, w19, w1
- add x3, x2, 2880
+ add x3, x2, 256
adrp x4, g_retryMode
- add x2, x2, 2928
+ add x2, x2, 304
add x3, x3, x1
add x0, x0, :lo12:g_maxRegNum
add x1, x2, x1
add x4, x4, :lo12:g_retryMode
mov x2, 0
-.L253:
+.L261:
ldrb w5, [x0]
cmp w5, w2
- bls .L258
+ bls .L266
ldrb w5, [x4]
cmp w5, 67
- bne .L254
+ bne .L262
ldrsb w5, [x3,x2]
- b .L257
-.L254:
+ b .L265
+.L262:
ldrsb w5, [x1,x2]
-.L257:
+.L265:
str w5, [x20]
add x2, x2, 1
- b .L253
-.L258:
+ b .L261
+.L266:
mov w0, 0
bl NandcWaitFlashReady
ldp x19, x20, [sp,16]
@@ -1879,8 +1992,8 @@ micron_auto_read_calibration_config:
str w0, [x19,2056]
mov w0, 150
str w0, [x19,2052]
- mov w0, 200
- bl NandcDelayns
+ mov x0, 1000
+ bl __const_udelay
ldr x1, [x29,40]
str w1, [x19,2048]
str wzr, [x19,2048]
@@ -1906,11 +2019,11 @@ FlashEraseSLc2KBlocks:
mov w24, w1
mov x20, x0
mov w22, 0
- add x25, x21, 1720
+ add x25, x21, 1676
add x23, x23, :lo12:.LC1
-.L261:
+.L269:
cmp w22, w24
- beq .L270
+ beq .L278
add x2, x29, 88
sub w4, w24, w22
mov x0, x20
@@ -1918,20 +2031,19 @@ FlashEraseSLc2KBlocks:
add x3, x29, 92
bl LogAddr2PhyAddr
ldr w2, [x29,92]
- ldrb w0, [x21,1676]
+ ldrb w0, [x21,1672]
cmp w2, w0
- bcc .L262
+ bcc .L270
mov w0, -1
str w0, [x20]
- b .L263
-.L262:
+ b .L271
+.L270:
uxtw x2, w2
- add x0, x21, x2
- ldrb w19, [x0,1680]
mov x0, 24
- mul x2, x2, x0
+ ldrb w19, [x25,x2]
+ madd x2, x2, x0, x21
mov w0, w19
- strb w19, [x25,x2]
+ strb w19, [x2,1716]
bl NandcWaitFlashReady
mov w0, w19
bl NandcFlashCs
@@ -1957,24 +2069,24 @@ FlashEraseSLc2KBlocks:
ldr w1, [x29,88]
mov w0, w19
bl FlashReadStatus
- tbz x0, 0, .L264
+ tbz x0, 0, .L272
mov w0, -1
str w0, [x20]
-.L264:
+.L272:
ldr w0, [x20]
cmn w0, #1
- bne .L265
+ bne .L273
ldr w1, [x29,88]
mov x0, x23
bl printk
-.L265:
+.L273:
mov w0, w19
bl NandcFlashDeCs
-.L263:
+.L271:
add w22, w22, 1
add x20, x20, 56
- b .L261
-.L270:
+ b .L269
+.L278:
mov w0, 0
ldr x25, [sp,64]
ldp x19, x20, [sp,16]
@@ -2008,16 +2120,16 @@ HynixGetReadRetryDefault:
mov w0, -81
strb w3, [x1,6]
strb w0, [x1,7]
- bne .L272
+ bne .L280
mov w0, -89
strb w0, [x1,4]
- adrp x0, .LANCHOR1+3113
+ adrp x0, .LANCHOR1+3241
mov w1, -9
- strb w1, [x0,#:lo12:.LANCHOR1+3113]
- b .L327
-.L272:
+ strb w1, [x0,#:lo12:.LANCHOR1+3241]
+ b .L343
+.L280:
cmp w26, 3
- bne .L274
+ bne .L282
mov w0, -80
strb w0, [x1,4]
mov w0, -79
@@ -2033,10 +2145,10 @@ HynixGetReadRetryDefault:
mov w0, -74
strb w0, [x1,10]
mov w0, -73
- b .L360
-.L274:
+ b .L383
+.L282:
cmp w26, 4
- bne .L275
+ bne .L283
mov w5, -52
strb w5, [x1,4]
mov w5, -65
@@ -2049,40 +2161,40 @@ HynixGetReadRetryDefault:
mov w5, -51
strb w3, [x1,10]
strb w5, [x1,8]
-.L360:
- mov w27, 8
+.L383:
+ mov w28, 8
strb w0, [x1,11]
- mov w28, w27
- b .L273
-.L275:
+ mov w27, w28
+ b .L281
+.L283:
cmp w26, 5
- bne .L276
+ bne .L284
mov w0, 56
strb w0, [x1,4]
mov w0, 57
strb w0, [x1,5]
mov w0, 58
- mov w27, 8
+ mov w28, 8
strb w0, [x1,6]
mov w0, 59
strb w0, [x1,7]
- b .L359
-.L276:
+ b .L384
+.L284:
cmp w26, 6
- bne .L277
+ bne .L285
mov w0, 14
strb w0, [x1,4]
mov w0, 15
strb w0, [x1,5]
mov w0, 16
- mov w27, 12
+ mov w28, 12
strb w0, [x1,6]
mov w0, 17
strb w0, [x1,7]
- b .L359
-.L277:
+ b .L384
+.L285:
cmp w26, 7
- bne .L327
+ bne .L286
mov w0, -80
strb w0, [x1,4]
mov w0, -79
@@ -2100,63 +2212,78 @@ HynixGetReadRetryDefault:
mov w0, -73
strb w0, [x1,11]
mov w0, -44
- mov w27, 12
+ mov w28, 12
strb w0, [x1,12]
- mov w28, 10
+ mov w27, 10
mov w0, -43
strb w0, [x1,13]
- b .L273
-.L327:
- mov w27, 7
-.L359:
- mov w28, 4
-.L273:
+ b .L281
+.L286:
+ cmp w26, 8
+ bne .L343
+ mov w0, 6
+ strb w0, [x1,4]
+ mov w0, 7
+ strb w0, [x1,5]
+ mov w0, 9
+ strb w26, [x1,6]
+ strb w0, [x1,7]
+ mov w28, 50
+ mov w0, 10
+ mov w27, 5
+ strb w0, [x1,8]
+ b .L281
+.L343:
+ mov w28, 7
+.L384:
+ mov w27, 4
+.L281:
sub w0, w26, #1
cmp w0, 1
- bhi .L356
+ bhi .L380
adrp x22, .LANCHOR1
add x25, x20, :lo12:.LANCHOR0
add x22, x22, :lo12:.LANCHOR1
mov w21, 0
+ add x3, x25, 1676
add x26, x25, 4056
- add x3, x25, 40
- add x22, x22, 3096
-.L278:
- ldrb w0, [x25,1676]
+ add x22, x22, 3224
+.L287:
+ ldrb w0, [x25,1672]
cmp w0, w21
- bls .L285
- add x0, x25, x21, sxtw
- ldrb w0, [x0,1680]
+ bls .L294
+ ldrb w0, [x3,w21,sxtw]
+ add x1, x25, 40
mov x23, 0
add x19, x26, x0, lsl 6
lsl x0, x0, 4
- add x1, x3, x0
+ add x2, x1, x0
add x19, x19, 20
- ldr x24, [x3,x0]
- ldrb w0, [x1,8]
+ ldr x24, [x1,x0]
mov w1, 55
+ ldrb w0, [x2,8]
add x24, x24, x0, lsl 8
-.L280:
+.L289:
add x0, x26, x23
str w1, [x24,2056]
str x3, [x29,128]
str x1, [x29,136]
ldrb w0, [x0,4]
str w0, [x24,2052]
- mov w0, 80
- bl NandcDelayns
+ mov x0, 400
+ bl __const_udelay
ldr w0, [x24,2048]
strb w0, [x19,x23]
add x23, x23, 1
ldr x1, [x29,136]
- cmp w28, w23, uxtb
+ cmp w27, w23, uxtb
ldr x3, [x29,128]
- bhi .L280
+ bhi .L289
mov x0, 0
-.L281:
+.L290:
add w2, w0, 8
mov x1, 0
-.L282:
+.L291:
add x5, x1, x0
add x1, x1, 4
add x5, x22, x5
@@ -2166,10 +2293,10 @@ HynixGetReadRetryDefault:
add w5, w6, w5
strb w5, [x19,w2,sxtw]
add w2, w2, 8
- bne .L282
+ bne .L291
add x0, x0, 1
cmp x0, 4
- bne .L281
+ bne .L290
add w21, w21, 1
strb wzr, [x19,16]
strb wzr, [x19,24]
@@ -2179,96 +2306,100 @@ HynixGetReadRetryDefault:
strb wzr, [x19,48]
strb wzr, [x19,41]
strb wzr, [x19,49]
- b .L278
-.L356:
+ b .L287
+.L380:
sub w0, w26, #3
- cmp w0, 4
- bhi .L285
- mul w25, w28, w27
- sub w23, w28, #1
+ cmp w0, 5
+ bhi .L294
+ mul w25, w27, w28
+ sub w24, w27, #1
mov w21, 0
lsl w0, w25, 4
- asr w22, w25, 2
- str w0, [x29,124]
+ asr w23, w25, 1
+ str w0, [x29,128]
add x25, x20, :lo12:.LANCHOR0
- lsl w0, w22, 1
- uxtb x23, w23
- str w0, [x29,120]
- add x0, x25, 40
- add x23, x23, 1
- str x0, [x29,128]
+ lsl w0, w23, 1
+ uxtb x24, w24
+ str w0, [x29,124]
+ add x0, x25, 1676
+ add x24, x24, 1
+ str x0, [x29,112]
sub w0, w26, #5
str w0, [x29,136]
-.L286:
- ldrb w0, [x25,1676]
+.L295:
+ ldrb w0, [x25,1672]
cmp w0, w21
- bhi .L326
-.L285:
+ bhi .L341
+.L294:
add x20, x20, :lo12:.LANCHOR0
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
- strb w28, [x20,4057]
- strb w27, [x20,4058]
+ strb w27, [x20,4057]
+ strb w28, [x20,4058]
ldp x25, x26, [sp,64]
ldp x19, x20, [sp,16]
ldp x27, x28, [sp,80]
ldp x29, x30, [sp], 144
ret
-.L326:
- add x0, x25, x21, sxtw
- ldrb w1, [x0,1680]
- str x1, [x29,112]
- lsl x0, x1, 4
- mov x24, x1
- ldr x1, [x29,128]
- add x6, x1, x0
- ldr x0, [x1,x0]
- ldrb w19, [x6,8]
+.L341:
+ ldr x0, [x29,112]
+ ldrb w5, [x0,w21,sxtw]
+ add x0, x25, 40
+ str x5, [x29,104]
+ lsl x1, x5, 4
+ mov x22, x5
+ add x7, x0, x1
+ ldr x0, [x0,x1]
+ ldrb w19, [x7,8]
add x19, x0, x19, lsl 8
mov w0, 255
str w0, [x19,2056]
- mov w0, w24
+ mov w0, w5
bl NandcWaitFlashReady
cmp w26, 7
- add x6, x25, 4056
- ldr x1, [x29,112]
- beq .L287
- add x1, x6, x1, lsl 6
- add x6, x1, 20
- b .L288
-.L287:
+ ldr x5, [x29,104]
+ bne .L296
mov x0, 160
- madd x1, x1, x0, x6
- add x6, x1, 28
-.L288:
+ madd x5, x5, x0, x25
+ add x5, x5, 4084
+ b .L297
+.L296:
+ cmp w26, 8
+ beq .L298
+ add x5, x25, x5, lsl 6
+ add x5, x5, 4076
+.L297:
mov w0, 54
cmp w26, 4
str w0, [x19,2056]
- bne .L289
+ bne .L299
mov w0, 255
str w0, [x19,2052]
mov w0, 64
str w0, [x19,2048]
mov w0, 204
- b .L361
-.L289:
+ b .L385
+.L299:
ldr w0, [x29,136]
cmp w0, 1
- bhi .L291
+ bhi .L301
ldrb w0, [x25,4060]
str w0, [x19,2052]
mov w0, 82
- b .L362
-.L291:
+ b .L386
+.L301:
+ cmp w26, 7
+ bne .L300
mov w0, 174
str w0, [x19,2052]
str wzr, [x19,2048]
mov w0, 176
-.L361:
+.L385:
str w0, [x19,2052]
mov w0, 77
-.L362:
+.L386:
str w0, [x19,2048]
+.L300:
mov w0, 22
str w0, [x19,2056]
mov w0, 23
@@ -2277,162 +2408,195 @@ HynixGetReadRetryDefault:
str w0, [x19,2056]
mov w0, 25
str w0, [x19,2056]
- cmp w26, 6
str wzr, [x19,2056]
+ cmp w26, 6
str wzr, [x19,2052]
str wzr, [x19,2052]
- bne .L292
+ bne .L302
mov w0, 31
str w0, [x19,2052]
- b .L293
-.L292:
+ b .L303
+.L302:
str wzr, [x19,2052]
-.L293:
- mov w7, 2
- str w7, [x19,2052]
+.L303:
+ mov w0, 2
+ str w0, [x19,2052]
str wzr, [x19,2052]
+.L342:
mov w0, 48
str w0, [x19,2056]
- mov w0, w24
- str x6, [x29,104]
- str x7, [x29,112]
+ mov w0, w22
+ str x5, [x29,104]
bl NandcWaitFlashReady
ldr w0, [x29,136]
- mov w1, 16
- ldr x6, [x29,104]
+ ldr x5, [x29,104]
cmp w0, 1
- bls .L295
- ldr x7, [x29,112]
+ cset w8, ls
+ cmp w26, 8
+ cset w7, eq
+ cbnz w8, .L345
+ cbnz w7, .L345
cmp w26, 7
mov w1, 32
- csel w1, w1, w7, eq
-.L295:
+ mov w0, 2
+ csel w1, w0, w1, ne
+ b .L304
+.L345:
+ mov w1, 16
+.L304:
ldr x0, [x25]
- mov x7, 0
-.L296:
- ldr w8, [x19,2048]
- strb w8, [x0,x7]
- add x7, x7, 1
- cmp w1, w7, uxtb
- bhi .L296
- cmp w26, 7
- bne .L297
+ mov x9, 0
+.L305:
+ ldr w10, [x19,2048]
+ strb w10, [x0,x9]
+ add x9, x9, 1
+ cmp w1, w9, uxtb
+ bhi .L305
+ cbz w7, .L306
mov w1, 0
-.L299:
- ldrb w7, [x0]
- cmp w7, 12
- beq .L298
- ldrb w7, [x0,1]
- cmp w7, 10
- beq .L298
+.L308:
+ ldrb w9, [x0]
+ cmp w9, 50
+ beq .L307
+ ldrb w9, [x0,1]
+ cmp w9, 5
+ beq .L307
add w1, w1, 1
add x0, x0, 4
uxtb w1, w1
cmp w1, 8
- bne .L299
- b .L300
-.L298:
+ bne .L308
+ b .L309
+.L307:
+ cmp w1, 6
+ bls .L310
+.L309:
+ adrp x0, .LC2
+ mov w1, 0
+ add x0, x0, :lo12:.LC2
+ bl printk
+.L311:
+ b .L311
+.L306:
+ cmp w26, 7
+ bne .L312
+ mov w1, w7
+.L314:
+ ldrb w9, [x0]
+ cmp w9, 12
+ beq .L313
+ ldrb w9, [x0,1]
+ cmp w9, 10
+ beq .L313
+ add w1, w1, 1
+ add x0, x0, 4
+ uxtb w1, w1
+ cmp w1, 8
+ bne .L314
+ b .L315
+.L313:
cmp w1, 7
- bne .L301
-.L300:
+ bne .L310
+.L315:
adrp x0, .LC2
mov w1, 0
add x0, x0, :lo12:.LC2
bl printk
-.L302:
- b .L302
-.L297:
+.L316:
+ b .L316
+.L312:
cmp w26, 6
- bne .L301
+ bne .L310
mov x1, 0
-.L303:
- ldrb w7, [x0,x1]
- cmp w7, 12
- beq .L301
- add x7, x0, x1
- ldrb w7, [x7,8]
- cmp w7, 4
- beq .L301
+.L317:
+ ldrb w9, [x0,x1]
+ cmp w9, 12
+ beq .L310
+ add x9, x0, x1
+ ldrb w9, [x9,8]
+ cmp w9, 4
+ beq .L310
add x1, x1, 1
cmp x1, 8
- bne .L303
+ bne .L317
adrp x0, .LC2
mov w1, 0
add x0, x0, :lo12:.LC2
bl printk
-.L305:
- b .L305
-.L301:
- ldr x9, [x25]
+.L319:
+ b .L319
+.L310:
+ ldr x10, [x25]
mov x0, 0
-.L306:
- ldr w1, [x29,124]
+.L320:
+ ldr w1, [x29,128]
cmp w1, w0
- ble .L363
+ ble .L388
ldr w1, [x19,2048]
- strb w1, [x9,x0]
+ strb w1, [x10,x0]
add x0, x0, 1
- b .L306
-.L363:
- ldr x11, [x25]
- mov w8, w22
- mov w7, 8
-.L309:
+ b .L320
+.L388:
+ ldr x12, [x25]
+ mov w11, w23
+ mov w9, 8
+.L323:
mov w0, 0
-.L308:
- add w1, w0, w8
+.L322:
+ add w1, w0, w11
add w0, w0, 1
- sbfiz x1, x1, 2, 32
- cmp w0, w22
- ldr w10, [x11,x1]
- mvn w10, w10
- str w10, [x11,x1]
- bne .L308
- ldr w0, [x29,120]
- subs w7, w7, #1
- add w8, w8, w0
- bne .L309
- mov x7, 0
- mov w15, 1
-.L310:
+ sbfiz x1, x1, 1, 32
+ cmp w0, w23
+ ldrh w13, [x12,x1]
+ mvn w13, w13
+ strh w13, [x12,x1]
+ bne .L322
+ ldr w0, [x29,124]
+ subs w9, w9, #1
+ add w11, w11, w0
+ bne .L323
+ mov x9, 0
+ mov w17, 1
+.L324:
mov w1, 0
- ldr x14, [x25]
- mov w10, w1
-.L314:
- lsl w8, w15, w10
- mov w12, w7
+ mov w11, w1
+.L328:
+ lsl w13, w17, w11
+ mov w15, w9
mov w0, 16
- mov w11, 0
-.L312:
- ldr w13, [x14,w12,sxtw 2]
- add w12, w12, w22
- and w13, w8, w13
- cmp w13, w8
- csinc w11, w11, w11, ne
+ mov w14, 0
+.L326:
+ ldrh w16, [x12,w15,sxtw 1]
+ add w15, w15, w23
+ and w16, w16, w13
+ cmp w16, w13
+ csinc w14, w14, w14, ne
subs w0, w0, #1
- bne .L312
- cmp w11, 9
- orr w8, w1, w8
- add w10, w10, 1
- csel w1, w8, w1, cs
- cmp w10, 32
- bne .L314
- str w1, [x14,x7,lsl 2]
- add x7, x7, 1
- cmp w22, w7
- bgt .L310
- mov x7, 0
+ bne .L326
+ cmp w14, 8
+ bls .L327
+ orr w1, w1, w13
+ uxth w1, w1
+.L327:
+ add w11, w11, 1
+ cmp w11, 16
+ bne .L328
+ strh w1, [x12,x9,lsl 1]
+ add x9, x9, 1
+ cmp w23, w9
+ bgt .L324
+ mov x9, 0
ldr x1, [x25]
- mov w8, w7
-.L317:
- ldr w10, [x1,x7]
- add x7, x7, 4
- cmp w10, wzr
- csinc w8, w8, w8, ne
- cmp x7, 32
- bne .L317
- cmp w8, 7
- ble .L318
+ mov w11, w9
+.L331:
+ ldr w12, [x1,x9]
+ add x9, x9, 4
+ cmp w12, wzr
+ csinc w11, w11, w11, ne
+ cmp x9, 32
+ bne .L331
+ cmp w11, 7
+ ble .L332
adrp x0, .LC3
mov w2, 1
add x0, x0, :lo12:.LC3
@@ -2442,39 +2606,44 @@ HynixGetReadRetryDefault:
mov w1, 0
add x0, x0, :lo12:.LC2
bl printk
-.L319:
- b .L319
-.L318:
+.L333:
+ b .L333
+.L332:
cmp w26, 6
- mov w7, 4
- beq .L320
+ mov w9, 4
+ beq .L334
cmp w26, 7
- mov w7, 10
+ mov w9, 10
+ beq .L334
+ cmp w7, wzr
+ mov w9, 5
mov w1, 8
- csel w7, w1, w7, ne
-.L320:
- mov w8, 0
-.L321:
+ csel w9, w1, w9, eq
+.L334:
+ mov w11, 0
+.L335:
mov x1, 0
-.L322:
- add w10, w0, w1
- ldrb w11, [x9,x1]
+.L336:
+ add w12, w0, w1
+ ldrb w13, [x10,x1]
add x1, x1, 1
- cmp w28, w1, uxtb
- strb w11, [x6,w10,sxtw]
- bhi .L322
- add w8, w8, 1
- add x9, x9, x23
- cmp w8, w27
- add w0, w0, w7
- blt .L321
+ cmp w27, w1, uxtb
+ strb w13, [x5,w12,sxtw]
+ bhi .L336
+ add w11, w11, 1
+ add x10, x10, x24
+ cmp w11, w28
+ add w0, w0, w9
+ blt .L335
mov w0, 255
str w0, [x19,2056]
- mov w0, w24
+ mov w0, w22
+ str x7, [x29,96]
+ str x8, [x29,104]
bl NandcWaitFlashReady
- ldr w0, [x29,136]
- cmp w0, 1
- bhi .L324
+ ldr x8, [x29,104]
+ ldr x7, [x29,96]
+ cbz w8, .L338
mov w0, 54
str w0, [x19,2056]
adrp x0, .LANCHOR0+4060
@@ -2486,16 +2655,42 @@ HynixGetReadRetryDefault:
str w0, [x19,2056]
mov w0, w21
bl FlashReadCmd
- b .L325
-.L324:
+ b .L339
+.L338:
+ mov w0, 190
+ cbnz w7, .L387
mov w0, 56
+.L387:
str w0, [x19,2056]
-.L325:
- mov w0, w24
+.L339:
+ mov w0, w22
add w21, w21, 1
bl NandcWaitFlashReady
uxtb w21, w21
- b .L286
+ b .L295
+.L298:
+ mov w0, 120
+ str w0, [x19,2056]
+ str wzr, [x19,2052]
+ mov w0, 23
+ str wzr, [x19,2052]
+ mov w1, 25
+ str wzr, [x19,2052]
+ add x5, x25, 4084
+ str w0, [x19,2056]
+ mov w0, 4
+ str w0, [x19,2056]
+ str w1, [x19,2056]
+ mov w1, 218
+ str w1, [x19,2056]
+ mov w1, 21
+ str wzr, [x19,2056]
+ str wzr, [x19,2052]
+ str wzr, [x19,2052]
+ str w1, [x19,2052]
+ str w0, [x19,2052]
+ str wzr, [x19,2052]
+ b .L342
.size HynixGetReadRetryDefault, .-HynixGetReadRetryDefault
.align 2
.global FlashGetReadRetryDefault
@@ -2504,15 +2699,15 @@ FlashGetReadRetryDefault:
stp x29, x30, [sp, -16]!
mov w1, w0
add x29, sp, 0
- cbz w0, .L364
+ cbz w0, .L389
sub w2, w0, #1
- cmp w2, 6
- bhi .L366
+ cmp w2, 7
+ bhi .L391
bl HynixGetReadRetryDefault
- b .L364
-.L366:
+ b .L389
+.L391:
cmp w0, 49
- bne .L367
+ bne .L392
adrp x0, .LANCHOR0
mov w2, 64
add x0, x0, :lo12:.LANCHOR0
@@ -2524,46 +2719,46 @@ FlashGetReadRetryDefault:
strb w1, [x0,-2]
adrp x1, .LANCHOR1
add x1, x1, :lo12:.LANCHOR1
- add x1, x1, 3032
- b .L382
-.L367:
+ add x1, x1, 408
+ b .L407
+.L392:
sub w0, w0, #65
cmp w0, 1
- bls .L373
+ bls .L398
cmp w1, 33
- bne .L368
-.L373:
+ bne .L393
+.L398:
adrp x0, .LANCHOR0
add x0, x0, :lo12:.LANCHOR0
strb w1, [x0,4056]
mov w1, 4
- b .L383
-.L368:
+ b .L408
+.L393:
cmp w1, 67
- beq .L374
+ beq .L399
cmp w1, 34
- bne .L370
-.L374:
+ bne .L395
+.L399:
adrp x0, .LANCHOR0
add x0, x0, :lo12:.LANCHOR0
strb w1, [x0,4056]
mov w1, 5
-.L383:
+.L408:
strb w1, [x0,4057]
mov w1, 7
strb w1, [x0,4058]
adrp x1, .LANCHOR1
add x1, x1, :lo12:.LANCHOR1
add x0, x0, 4060
- add x1, x1, 2880
+ add x1, x1, 256
mov w2, 45
- b .L382
-.L370:
+ b .L407
+.L395:
cmp w1, 68
- beq .L375
+ beq .L400
cmp w1, 35
- bne .L364
-.L375:
+ bne .L389
+.L400:
adrp x0, .LANCHOR0
mov w2, 95
add x0, x0, :lo12:.LANCHOR0
@@ -2575,10 +2770,10 @@ FlashGetReadRetryDefault:
strb w1, [x0,-2]
adrp x1, .LANCHOR1
add x1, x1, :lo12:.LANCHOR1
- add x1, x1, 2928
-.L382:
+ add x1, x1, 304
+.L407:
bl ftl_memcpy
-.L364:
+.L389:
ldp x29, x30, [sp], 16
ret
.size FlashGetReadRetryDefault, .-FlashGetReadRetryDefault
@@ -2608,7 +2803,7 @@ FlashReadDpCmd:
cmp w0, 1
and w5, w1, 255
lsr w0, w1, 16
- bne .L385
+ bne .L410
add x19, x6, x19, lsl 8
ldrb w2, [x3,8]
str x1, [x29,72]
@@ -2631,8 +2826,8 @@ FlashReadDpCmd:
str w20, [x19,2052]
str w0, [x19,2056]
ldr x1, [x29,72]
- b .L386
-.L385:
+ b .L411
+.L410:
add x19, x6, x19, lsl 8
ldrb w2, [x3,8]
str w2, [x19,2056]
@@ -2646,7 +2841,7 @@ FlashReadDpCmd:
str w22, [x19,2052]
str w20, [x19,2052]
str w0, [x19,2056]
-.L386:
+.L411:
mov w0, w21
bl FlashSetRandomizer
ldr x23, [sp,48]
@@ -2667,25 +2862,25 @@ ftl_flash_de_init:
bl NandcWaitFlashReady
bl FlashSetReadRetryDefault
add x0, x19, :lo12:.LANCHOR2
- ldr w1, [x0,568]
- mov w0, 12336
- movk w0, 0x5638, lsl 16
- cmp w1, w0
- bne .L388
+ ldr w0, [x0,568]
+ cbz w0, .L413
mov w0, 0
bl flash_enter_slc_mode
-.L388:
+ b .L414
+.L413:
+ bl flash_exit_slc_mode
+.L414:
add x19, x19, :lo12:.LANCHOR2
ldrb w0, [x19,572]
- cbz w0, .L389
+ cbz w0, .L415
ldrb w0, [x19,564]
- tbz x0, 0, .L389
+ tbz x0, 0, .L415
mov w0, 1
bl FlashSetInterfaceMode
mov w0, 1
bl NandcSetMode
strb wzr, [x19,572]
-.L389:
+.L415:
adrp x0, .LANCHOR0+40
ldr x0, [x0,#:lo12:.LANCHOR0+40]
str wzr, [x0,336]
@@ -2722,37 +2917,37 @@ NandcTimeCfg:
add x1, x1, :lo12:.LANCHOR0
sdiv w0, w0, w2
cmp w0, 250
- ble .L398
+ ble .L424
ldr x0, [x1,3976]
mov w1, 8354
- b .L405
-.L398:
+ b .L431
+.L424:
cmp w0, 220
- ble .L400
+ ble .L426
ldr x0, [x1,3976]
- b .L406
-.L400:
+ b .L432
+.L426:
cmp w0, 185
- ble .L401
+ ble .L427
ldr x0, [x1,3976]
mov w1, 4226
- b .L405
-.L401:
+ b .L431
+.L427:
cmp w0, 160
ldr x0, [x1,3976]
- ble .L402
+ ble .L428
mov w1, 4194
- b .L405
-.L402:
+ b .L431
+.L428:
cmp w19, 35
mov w1, 4193
- bls .L405
+ bls .L431
cmp w19, 99
mov w1, 4225
- bls .L405
-.L406:
+ bls .L431
+.L432:
mov w1, 8322
-.L405:
+.L431:
str w1, [x0,4]
ldr x19, [sp,16]
ldp x29, x30, [sp], 32
@@ -2768,17 +2963,17 @@ FlashTimingCfg:
and w1, w1, -33
cmp w1, 1
add x29, sp, 0
- bls .L408
+ bls .L434
mov w1, 8322
cmp w0, w1
- bne .L409
-.L408:
+ bne .L435
+.L434:
adrp x1, .LANCHOR0+3976
ldr x1, [x1,#:lo12:.LANCHOR0+3976]
str w0, [x1,4]
-.L409:
- adrp x0, .LANCHOR1+277
- ldrb w0, [x0,#:lo12:.LANCHOR1+277]
+.L435:
+ adrp x0, .LANCHOR1+493
+ ldrb w0, [x0,#:lo12:.LANCHOR1+493]
bl NandcTimeCfg
ldp x29, x30, [sp], 16
ret
@@ -2816,12 +3011,12 @@ NandcInit:
ubfx x4, x4, 16, 4
str w4, [x3,580]
ldr w4, [x0,352]
- str w4, [x3,568]
+ str w4, [x3,584]
cmp w4, 2049
- bne .L411
+ bne .L437
mov w1, 8
str w1, [x3,580]
-.L411:
+.L437:
add x20, x20, :lo12:.LANCHOR0
str w2, [x0]
ldr x0, [x20,3976]
@@ -2837,12 +3032,12 @@ NandcInit:
mov w0, 36864
bl ftl_malloc
add x1, x19, :lo12:.LANCHOR2
- str x0, [x1,584]
str x0, [x1,592]
- add x0, x0, 32768
- str wzr, [x1,632]
str x0, [x1,600]
+ add x0, x0, 32768
str wzr, [x1,640]
+ str x0, [x1,608]
+ str wzr, [x1,648]
ldp x19, x20, [sp,16]
ldp x29, x30, [sp], 32
ret
@@ -2880,24 +3075,24 @@ NandcBchSel:
ldr x2, [x1,#:lo12:.LANCHOR0+3976]
mov w1, 1
str w1, [x2,8]
- adrp x1, .LANCHOR2+644
- str w0, [x1,#:lo12:.LANCHOR2+644]
+ adrp x1, .LANCHOR2+652
+ str w0, [x1,#:lo12:.LANCHOR2+652]
mov w1, 4096
- bne .L414
-.L417:
+ bne .L440
+.L443:
and w1, w1, -17
- b .L415
-.L414:
+ b .L441
+.L440:
cmp w0, 24
- bne .L416
+ bne .L442
orr w1, w1, 16
- b .L415
-.L416:
+ b .L441
+.L442:
cmp w0, 40
orr w1, w1, 262144
orr w1, w1, 16
- beq .L417
-.L415:
+ beq .L443
+.L441:
orr w1, w1, 1
str w1, [x2,12]
ret
@@ -2907,10 +3102,10 @@ NandcBchSel:
.type FlashBchSel, %function
FlashBchSel:
stp x29, x30, [sp, -16]!
- adrp x1, .LANCHOR0+4044
+ adrp x1, .LANCHOR0+4045
uxtb w0, w0
add x29, sp, 0
- strb w0, [x1,#:lo12:.LANCHOR0+4044]
+ strb w0, [x1,#:lo12:.LANCHOR0+4045]
bl NandcBchSel
ldp x29, x30, [sp], 16
ret
@@ -2920,66 +3115,67 @@ FlashBchSel:
.type ftl_flash_resume, %function
ftl_flash_resume:
stp x29, x30, [sp, -48]!
- adrp x0, .LANCHOR0
- add x1, x0, :lo12:.LANCHOR0
add x29, sp, 0
stp x19, x20, [sp,16]
- stp x21, x22, [sp,32]
- adrp x20, IDByte
- mov x19, 0
- ldr x2, [x1,3976]
- mov x22, x0
- ldr w3, [x1,3984]
- add x20, x20, :lo12:IDByte
- ldr w21, [x1,4000]
- str w3, [x2]
- ldr w3, [x1,3988]
- ldr x2, [x1,3976]
- str w3, [x2,4]
- ldr w3, [x1,3992]
- ldr x2, [x1,3976]
- str w3, [x2,8]
- ldr w3, [x1,3996]
- str w3, [x2,12]
- str w21, [x2,304]
- ldr w3, [x1,4004]
- str w3, [x2,308]
- ldr w3, [x1,4008]
- str w3, [x2,336]
- ldr w1, [x1,4012]
- str w1, [x2,344]
-.L424:
- lsl x0, x19, 3
- ldrb w1, [x0,x20]
- sub w1, w1, #1
- uxtb w1, w1
- cmp w1, 253
- bhi .L423
- mov w0, w19
+ adrp x19, .LANCHOR0
+ str x21, [sp,32]
+ add x0, x19, :lo12:.LANCHOR0
+ adrp x21, IDByte
+ mov x20, 0
+ add x21, x21, :lo12:IDByte
+ ldr x1, [x0,3976]
+ ldr w2, [x0,3984]
+ str w2, [x1]
+ ldr w2, [x0,3988]
+ ldr x1, [x0,3976]
+ str w2, [x1,4]
+ ldr w2, [x0,3992]
+ ldr x1, [x0,3976]
+ str w2, [x1,8]
+ ldr w2, [x0,3996]
+ str w2, [x1,12]
+ ldr w2, [x0,4000]
+ str w2, [x1,304]
+ ldr w2, [x0,4004]
+ str w2, [x1,308]
+ ldr w2, [x0,4008]
+ str w2, [x1,336]
+ ldr w0, [x0,4012]
+ str w0, [x1,344]
+.L450:
+ lsl x0, x20, 3
+ ldrb w0, [x0,x21]
+ sub w0, w0, #1
+ uxtb w0, w0
+ cmp w0, 253
+ bhi .L449
+ mov w0, w20
bl FlashReset
-.L423:
- add x19, x19, 1
- cmp x19, 4
- bne .L424
- adrp x19, .LANCHOR2
- add x19, x19, :lo12:.LANCHOR2
- ldrb w0, [x19,572]
- cbz w0, .L425
+.L449:
+ add x20, x20, 1
+ cmp x20, 4
+ bne .L450
+ adrp x20, .LANCHOR2
+ add x20, x20, :lo12:.LANCHOR2
+ ldrb w0, [x20,572]
+ cbz w0, .L451
mov w0, 1
bl NandcSetMode
- ldrb w0, [x19,564]
+ ldrb w0, [x20,564]
bl FlashSetInterfaceMode
- ldrb w0, [x19,564]
+ ldrb w0, [x20,564]
bl NandcSetMode
- lsr w0, w21, 8
+ add x0, x19, :lo12:.LANCHOR0
+ ldr w0, [x0,4000]
+ lsr w0, w0, 8
bl NandcSetDdrPara
-.L425:
- add x0, x22, :lo12:.LANCHOR0
- ldr x0, [x0,1912]
+.L451:
+ add x19, x19, :lo12:.LANCHOR0
+ ldr x0, [x19,1912]
ldrb w0, [x0,20]
bl FlashBchSel
+ ldr x21, [sp,32]
ldp x19, x20, [sp,16]
- ldp x21, x22, [sp,32]
ldp x29, x30, [sp], 48
ret
.size ftl_flash_resume, .-ftl_flash_resume
@@ -3006,18 +3202,18 @@ NandcIqrWaitFlashReady:
orr w0, w0, 2
str w0, [x19,364]
ldr w0, [x19]
- tbnz x0, 9, .L432
+ tbnz x0, 9, .L458
mov x0, x19
bl wait_for_nand_flash_ready
- b .L431
-.L432:
+ b .L457
+.L458:
ldr w0, [x19,368]
orr w0, w0, 2
str w0, [x19,368]
ldr w0, [x19,364]
and w0, w0, -3
str w0, [x19,364]
-.L431:
+.L457:
ldr x19, [sp,16]
ldp x29, x30, [sp], 32
ret
@@ -3041,17 +3237,17 @@ FlashEraseBlocks:
mov x24, x0
ldrb w2, [x20,24]
mov w19, 0
- cbz w2, .L435
+ cbz w2, .L461
mov w1, w23
bl FlashEraseSLc2KBlocks
- b .L436
-.L435:
+ b .L462
+.L461:
mov w27, 56
adrp x28, .LANCHOR2
- add x25, x20, 1720
-.L466:
+ add x25, x20, 1716
+.L492:
cmp w19, w23
- bcs .L467
+ bcs .L493
umull x5, w19, w27
mov w1, 0
sub w4, w23, w19
@@ -3062,26 +3258,26 @@ FlashEraseBlocks:
str x5, [x29,96]
bl LogAddr2PhyAddr
mov w22, w0
- ldrb w1, [x20,1676]
+ ldrb w1, [x20,1672]
ldr w0, [x29,124]
ldr x5, [x29,96]
cmp w0, w1
- bcc .L437
+ bcc .L463
mov w0, -1
str w0, [x24,x5]
- b .L438
-.L437:
+ b .L464
+.L463:
add x1, x28, :lo12:.LANCHOR2
mov x2, 24
- ldrb w1, [x1,648]
+ ldrb w1, [x1,656]
cmp w1, wzr
uxtw x1, w0
csel w22, w22, wzr, ne
madd x1, x1, x2, x25
ldr x1, [x1,8]
- cbz x1, .L440
+ cbz x1, .L466
bl FlashWaitCmdDone
-.L440:
+.L466:
ldr w1, [x29,124]
mov x0, 24
ldr w2, [x29,120]
@@ -3089,32 +3285,32 @@ FlashEraseBlocks:
str x21, [x0,8]
str xzr, [x0,16]
str w2, [x0,4]
- cbz w22, .L441
+ cbz w22, .L467
add w2, w19, 1
umull x2, w2, w27
add x2, x24, x2
str x2, [x0,16]
-.L441:
- add x0, x20, x1
- ldrb w21, [x0,1680]
+.L467:
+ add x0, x20, 1676
+ ldrb w21, [x0,x1]
mov x0, 24
mul x1, x1, x0
mov w0, w21
strb w21, [x25,x1]
bl NandcFlashCs
cmp w26, 1
- bne .L442
- ldrb w0, [x20,136]
- cbz w0, .L442
+ bne .L468
+ ldrb w0, [x20,4044]
+ cbz w0, .L468
mov w0, w21
bl flash_enter_slc_mode
- b .L443
-.L442:
+ b .L469
+.L468:
mov w0, w21
bl flash_exit_slc_mode
-.L443:
+.L469:
ldr w1, [x29,124]
- add x0, x20, 1688
+ add x0, x20, 1684
add w19, w19, w22
ldr w0, [x0,x1,lsl 2]
ldr w1, [x29,120]
@@ -3128,54 +3324,55 @@ FlashEraseBlocks:
bl FlashEraseCmd
mov w0, w21
bl NandcFlashDeCs
-.L438:
+.L464:
add w19, w19, 1
- b .L466
-.L467:
+ b .L492
+.L493:
ldr x0, [x29,104]
mov x20, 0
- mov x21, 24
+ mov x22, 24
add x19, x0, :lo12:.LANCHOR0
+ add x21, x19, 1716
ldr x0, [x19,3976]
bl NandcIqrWaitFlashReady
-.L445:
- ldrb w0, [x19,1676]
+.L471:
+ ldrb w0, [x19,1672]
cmp w0, w20
- bls .L468
+ bls .L494
mov w0, w20
bl FlashWaitCmdDone
cmp w26, 1
- bne .L446
- ldrb w0, [x19,136]
- cbz w0, .L446
- madd x0, x20, x21, x19
- ldrb w0, [x0,1720]
+ bne .L472
+ ldrb w0, [x19,4044]
+ cbz w0, .L472
+ mul x0, x20, x22
+ ldrb w0, [x0,x21]
bl flash_exit_slc_mode
-.L446:
+.L472:
add x20, x20, 1
- b .L445
-.L468:
- adrp x0, .LANCHOR2+652
- ldr w0, [x0,#:lo12:.LANCHOR2+652]
- cbnz w0, .L448
-.L450:
+ b .L471
+.L494:
+ adrp x0, .LANCHOR2+660
+ ldr w0, [x0,#:lo12:.LANCHOR2+660]
+ cbnz w0, .L474
+.L476:
mov w0, 0
- b .L436
-.L448:
+ b .L462
+.L474:
adrp x0, IDByte
ldrb w0, [x0,#:lo12:IDByte]
cmp w0, 69
- bne .L450
+ bne .L476
mov x0, 0
mov x1, 56
-.L449:
+.L475:
cmp w23, w0
- bls .L450
+ bls .L476
mul x2, x0, x1
add x0, x0, 1
str wzr, [x24,x2]
- b .L449
-.L436:
+ b .L475
+.L462:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -3213,11 +3410,11 @@ NandcSendDumpDataStart:
.type NandcSendDumpDataDone, %function
NandcSendDumpDataDone:
sub sp, sp, #16
-.L471:
+.L497:
ldr w1, [x0,8]
str w1, [sp,8]
ldr w1, [sp,8]
- tbz x1, 20, .L471
+ tbz x1, 20, .L497
add sp, sp, 16
ret
.size NandcSendDumpDataDone, .-NandcSendDumpDataDone
@@ -3258,7 +3455,7 @@ NandcXferStart:
ldr w0, [x0,580]
bfi w20, w3, 4, 1
cmp w0, 3
- bls .L475
+ bls .L501
ldr w0, [x21,16]
cmp x5, xzr
str w0, [x29,88]
@@ -3266,11 +3463,11 @@ NandcXferStart:
ldr w0, [x29,88]
and w0, w0, -5
str w0, [x29,88]
- cbnz w7, .L489
- cbz x22, .L476
-.L489:
- cbnz w25, .L478
-.L486:
+ cbnz w7, .L515
+ cbz x22, .L502
+.L515:
+ cbnz w25, .L504
+.L512:
mov x0, x21
add w23, w23, 1
asr w23, w23, 1
@@ -3283,62 +3480,62 @@ NandcXferStart:
orr w0, w0, 1
str w0, [x21,364]
mov x0, x22
- cbnz x22, .L480
+ cbnz x22, .L506
add x0, x19, :lo12:.LANCHOR2
- ldr x0, [x0,592]
- b .L480
-.L478:
+ ldr x0, [x0,600]
+ b .L506
+.L504:
add x1, x19, :lo12:.LANCHOR2
mov w4, 128
mov w2, 0
lsr w8, w23, 1
mov w3, w2
mov w9, -1
- ldr w0, [x1,644]
+ ldr w0, [x1,652]
cmp w0, 25
mov w0, 64
csel w4, w0, w4, cc
-.L482:
+.L508:
cmp w3, w8
- bcs .L486
+ bcs .L512
lsr w0, w2, 2
ubfiz x0, x0, 2, 30
- cbz w7, .L483
+ cbz w7, .L509
ldrh w6, [x5,2]
- ldr x10, [x1,600]
+ ldr x10, [x1,608]
ldrh w11, [x5],4
orr w6, w11, w6, lsl 16
str w6, [x10,x0]
- b .L484
-.L483:
- ldr x6, [x1,600]
+ b .L510
+.L509:
+ ldr x6, [x1,608]
str w9, [x6,x0]
-.L484:
+.L510:
add w3, w3, 1
add w2, w2, w4
- b .L482
-.L480:
+ b .L508
+.L506:
add x19, x19, :lo12:.LANCHOR2
ubfx x23, x20, 22, 5
mov w2, w25
and x22, x22, 3
- ldr x1, [x19,600]
- str x1, [x19,616]
+ ldr x1, [x19,608]
+ str x1, [x19,624]
lsl w1, w23, 10
- str x0, [x19,608]
+ str x0, [x19,616]
bl rknand_dma_map_single
- str w0, [x19,624]
- ldr x0, [x19,616]
+ str w0, [x19,632]
+ ldr x0, [x19,624]
lsl w1, w23, 7
mov w2, w25
bl rknand_dma_map_single
- str w0, [x19,628]
+ str w0, [x19,636]
mov w0, 1
- str w0, [x19,632]
- ldr w0, [x19,624]
+ str w0, [x19,640]
+ ldr w0, [x19,632]
mov w1, 16
str w0, [x21,20]
- ldr w0, [x19,628]
+ ldr w0, [x19,636]
str w0, [x21,24]
str wzr, [x29,88]
ldr w0, [x29,88]
@@ -3347,12 +3544,12 @@ NandcXferStart:
ldr w0, [x29,88]
orr w0, w0, 448
str w0, [x29,88]
- cbnz x22, .L487
+ cbnz x22, .L513
ldr w0, [x29,88]
mov w1, 2
bfi w0, w1, 3, 3
str w0, [x29,88]
-.L487:
+.L513:
ldr w0, [x29,88]
cmp w25, wzr
cset w1, eq
@@ -3364,10 +3561,10 @@ NandcXferStart:
ldr w0, [x29,88]
orr w0, w0, 1
str w0, [x29,88]
-.L476:
+.L502:
ldr w0, [x29,88]
str w0, [x21,16]
-.L475:
+.L501:
str w24, [x21,12]
str w20, [x21,8]
orr w20, w20, 4
@@ -3397,36 +3594,36 @@ NandcXferComp:
add x0, x20, :lo12:.LANCHOR2
ldr w0, [x0,580]
cmp w0, 3
- bls .L524
+ bls .L550
ldr w0, [x19,16]
- tbz x0, 2, .L524
+ tbz x0, 2, .L550
mov x0, x19
bl wait_for_nandc_xfer_completed
ldr w21, [x19,16]
ldr w0, [x19,8]
ubfx x21, x21, 1, 1
str w0, [x29,64]
- cbz w21, .L495
+ cbz w21, .L521
adrp x22, .LC4
adrp x23, .LC5
mov w21, 0
add x22, x22, :lo12:.LC4
add x23, x23, :lo12:.LC5
-.L496:
+.L522:
ldr w2, [x19,28]
ldr w1, [x29,64]
ubfx x2, x2, 16, 5
ubfx x1, x1, 22, 6
cmp w2, w1
- bge .L504
+ bge .L530
add x0, x20, :lo12:.LANCHOR2
ldr w0, [x0,580]
cmp w0, 5
- bhi .L497
-.L500:
+ bhi .L523
+.L526:
add w21, w21, 1
and w0, w21, 16777215
- cbnz w0, .L496
+ cbnz w0, .L522
ldr w2, [x19,28]
mov w1, w21
ldr w3, [x29,64]
@@ -3439,19 +3636,19 @@ NandcXferComp:
mov w2, 4
mov w3, 512
bl rknand_print_hex
- b .L496
-.L497:
+ b .L522
+.L523:
ldr w0, [x19]
str w0, [x29,72]
ldr w0, [x29,72]
- tbz x0, 13, .L500
+ tbz x0, 13, .L526
ldr w0, [x29,72]
- tbz x0, 17, .L500
-.L504:
+ tbz x0, 17, .L526
+.L530:
add x19, x20, :lo12:.LANCHOR2
- add x19, x19, 592
+ add x19, x19, 600
ldr w0, [x19,40]
- cbz w0, .L505
+ cbz w0, .L531
ldr w1, [x29,64]
mov w2, 0
ldr w0, [x19,32]
@@ -3464,20 +3661,20 @@ NandcXferComp:
ubfx x1, x1, 22, 5
lsl w1, w1, 7
bl rknand_dma_unmap_single
- b .L505
-.L495:
+ b .L531
+.L521:
adrp x22, .LC6
adrp x23, .LC5
add x22, x22, :lo12:.LC6
add x23, x23, :lo12:.LC5
-.L506:
+.L532:
ldr w0, [x29,64]
- tbnz x0, 20, .L532
+ tbnz x0, 20, .L558
ldr w0, [x19,8]
add w21, w21, 1
str w0, [x29,64]
and w0, w21, 16777215
- cbnz w0, .L506
+ cbnz w0, .L532
ldr w2, [x29,64]
mov w1, w21
ldr w3, [x19,28]
@@ -3489,18 +3686,18 @@ NandcXferComp:
mov w2, 4
mov w3, 512
bl rknand_print_hex
- b .L506
-.L532:
+ b .L532
+.L558:
add x0, x20, :lo12:.LANCHOR2
- ldr w0, [x0,640]
- cbz w0, .L509
+ ldr w0, [x0,648]
+ cbz w0, .L535
mov x0, x19
bl NandcSendDumpDataStart
-.L509:
+.L535:
add x21, x20, :lo12:.LANCHOR2
- add x21, x21, 592
+ add x21, x21, 600
ldr w0, [x21,40]
- cbz w0, .L510
+ cbz w0, .L536
ldr w1, [x29,64]
mov w2, 1
ldr w0, [x21,32]
@@ -3513,22 +3710,22 @@ NandcXferComp:
ubfx x1, x1, 22, 5
lsl w1, w1, 7
bl rknand_dma_unmap_single
-.L510:
+.L536:
add x0, x20, :lo12:.LANCHOR2
- ldr w0, [x0,640]
- cbz w0, .L505
+ ldr w0, [x0,648]
+ cbz w0, .L531
mov x0, x19
bl NandcSendDumpDataDone
-.L505:
+.L531:
add x20, x20, :lo12:.LANCHOR2
- str wzr, [x20,632]
- b .L493
-.L524:
+ str wzr, [x20,640]
+ b .L519
+.L550:
ldr w0, [x19,8]
str w0, [x29,64]
ldr w0, [x29,64]
- tbz x0, 20, .L524
-.L493:
+ tbz x0, 20, .L550
+.L519:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldr x23, [sp,48]
@@ -3551,14 +3748,14 @@ NandcCopy1KB:
add x4, x0, 4096
add x21, x0, 512
add x2, x4, x2
- bne .L534
- cbz x3, .L535
+ bne .L560
+ cbz x3, .L561
mov x0, x2
mov x1, x3
mov w2, 1024
bl ftl_memcpy
-.L535:
- cbz x20, .L533
+.L561:
+ cbz x20, .L559
mov w0, 48
lsr w19, w19, 1
ldrb w1, [x20,1]
@@ -3572,15 +3769,15 @@ NandcCopy1KB:
ldrb w1, [x20,3]
orr w0, w0, w1, lsl 24
str w0, [x21,w19,sxtw 2]
- b .L533
-.L534:
- cbz x3, .L538
+ b .L559
+.L560:
+ cbz x3, .L564
mov x1, x2
mov x0, x3
mov w2, 1024
bl ftl_memcpy
-.L538:
- cbz x20, .L533
+.L564:
+ cbz x20, .L559
mov w0, 48
lsr w19, w19, 1
mul w19, w19, w0
@@ -3593,7 +3790,7 @@ NandcCopy1KB:
lsr w0, w0, 24
strb w1, [x20,2]
strb w0, [x20,3]
-.L533:
+.L559:
ldp x19, x20, [sp,16]
ldr x21, [sp,32]
ldp x29, x30, [sp], 48
@@ -3620,14 +3817,14 @@ NandcXferData:
uxtb w23, w2
mov x25, x3
mov x21, x4
- cbnz x0, .L550
- cbnz x4, .L551
+ cbnz x0, .L576
+ cbnz x4, .L577
add x0, x29, 112
mov w1, 255
mov w2, 64
add x21, x29, 112
bl ftl_memset
-.L551:
+.L577:
mov w0, w24
mov w1, w20
mov w2, w23
@@ -3638,22 +3835,22 @@ NandcXferData:
bl NandcXferStart
mov w0, w24
bl NandcXferComp
- cbnz w20, .L552
+ cbnz w20, .L578
adrp x0, .LANCHOR2
ubfx x3, x23, 1, 7
add x2, x0, :lo12:.LANCHOR2
mov w4, 128
add x3, x21, x3, lsl 2
- ldr w1, [x2,644]
+ ldr w1, [x2,652]
cmp w1, 25
mov w1, 64
csel w4, w1, w4, cc
mov w1, w20
-.L554:
+.L580:
cmp x21, x3
add w5, w1, w4
- beq .L596
- ldr x6, [x2,600]
+ beq .L622
+ ldr x6, [x2,608]
and x1, x1, 4294967292
add x21, x21, 4
ldr w1, [x6,x1]
@@ -3665,29 +3862,29 @@ NandcXferData:
lsr w1, w1, 24
strb w1, [x21,-1]
mov w1, w5
- b .L554
-.L596:
+ b .L580
+.L622:
add x0, x0, :lo12:.LANCHOR2
lsr w23, w23, 2
- ldr w4, [x0,644]
+ ldr w4, [x0,652]
ldr w5, [x0,580]
mov w0, 0
mov w22, w0
-.L556:
+.L582:
cmp w0, w23
- bcs .L552
- cbz w4, .L552
+ bcs .L578
+ cbz w4, .L578
uxtw x1, w0
add x1, x1, 8
ldr w1, [x19,x1,lsl 2]
str w1, [x29,104]
ldr w1, [x29,104]
- tbnz x1, 2, .L580
+ tbnz x1, 2, .L606
ldr w3, [x29,104]
ubfx x3, x3, 15, 1
- cbnz w3, .L580
+ cbnz w3, .L606
cmp w5, 5
- bls .L558
+ bls .L584
ldr w2, [x29,104]
ubfx x6, x2, 3, 5
ldr w2, [x29,104]
@@ -3700,20 +3897,20 @@ NandcXferData:
orr w1, w3, w1, lsl 5
ldr w3, [x29,104]
cmp w2, w1
- bls .L559
+ bls .L585
ldr w1, [x29,104]
ubfx x3, x3, 3, 5
ubfx x1, x1, 27, 1
orr w3, w3, w1, lsl 5
- b .L560
-.L559:
+ b .L586
+.L585:
ubfx x1, x3, 16, 5
ldr w3, [x29,104]
ubfx x3, x3, 29, 1
- b .L595
-.L558:
+ b .L621
+.L584:
cmp w5, 3
- bls .L560
+ bls .L586
ldr w2, [x29,104]
ubfx x6, x2, 3, 5
ldr w2, [x29,104]
@@ -3726,43 +3923,43 @@ NandcXferData:
orr w1, w3, w1, lsl 5
ldr w3, [x29,104]
cmp w2, w1
- bls .L561
+ bls .L587
ubfx x1, x3, 3, 5
ldr w3, [x29,104]
ubfx x3, x3, 28, 1
- b .L595
-.L561:
+ b .L621
+.L587:
ubfx x1, x3, 16, 5
ldr w3, [x29,104]
ubfx x3, x3, 30, 1
-.L595:
+.L621:
orr w3, w1, w3, lsl 5
-.L560:
+.L586:
cmp w22, w3
csel w22, w22, w3, cs
- b .L557
-.L580:
+ b .L583
+.L606:
mov w22, -1
-.L557:
+.L583:
add w0, w0, 1
- b .L556
-.L552:
+ b .L582
+.L578:
str wzr, [x19,16]
- b .L563
-.L550:
+ b .L589
+.L576:
cmp w20, 1
- bne .L594
+ bne .L620
mov w22, 0
mov w27, 2
-.L564:
+.L590:
cmp w22, w23
- bcs .L597
+ bcs .L623
and w26, w22, 3
mov x3, x25
- cbz x25, .L566
+ cbz x25, .L592
ubfiz x0, x22, 9, 23
add x3, x25, x0
-.L566:
+.L592:
cmp x21, xzr
mov x0, x19
csel w4, w27, wzr, ne
@@ -3781,11 +3978,11 @@ NandcXferData:
bl NandcXferStart
mov w0, w24
bl NandcXferComp
- b .L564
-.L597:
+ b .L590
+.L623:
mov w22, 0
- b .L563
-.L594:
+ b .L589
+.L620:
mov w1, 0
mov x4, 0
mov w26, 0
@@ -3796,16 +3993,16 @@ NandcXferData:
mov w22, w26
mov w27, 2
bl NandcXferStart
-.L569:
+.L595:
cmp w26, w23
- bcs .L563
+ bcs .L589
mov w0, w24
add w28, w26, 2
bl NandcXferComp
ldr w0, [x19,32]
cmp w28, w23
str w0, [x29,104]
- bcs .L570
+ bcs .L596
mov x4, 0
mov w0, w24
mov w1, 0
@@ -3813,9 +4010,9 @@ NandcXferData:
and w3, w28, 3
mov x5, x4
bl NandcXferStart
-.L570:
+.L596:
ldr w0, [x29,104]
- tbnz x0, 2, .L585
+ tbnz x0, 2, .L611
ldr w0, [x29,104]
ubfx x1, x0, 3, 5
ldr w0, [x29,104]
@@ -3823,16 +4020,16 @@ NandcXferData:
orr w0, w1, w0, lsl 5
cmp w22, w0
csel w22, w22, w0, cs
- b .L571
-.L585:
+ b .L597
+.L611:
mov w22, -1
-.L571:
+.L597:
and w2, w26, 3
mov x3, x25
- cbz x25, .L572
+ cbz x25, .L598
ubfiz x3, x26, 9, 23
add x3, x25, x3
-.L572:
+.L598:
cmp x21, xzr
mov x0, x19
csel w4, w27, wzr, ne
@@ -3841,23 +4038,23 @@ NandcXferData:
mov w26, w28
add x4, x21, x4
bl NandcCopy1KB
- b .L569
-.L563:
- cbnz w20, .L575
+ b .L595
+.L589:
+ cbnz w20, .L601
adrp x0, .LANCHOR2+580
ldr w0, [x0,#:lo12:.LANCHOR2+580]
cmp w0, 5
- bls .L575
+ bls .L601
ldr w0, [x19]
mov w1, 8192
movk w1, 0x2, lsl 16
and w1, w0, w1
cmp w1, 139264
- bne .L575
+ bne .L601
orr w0, w0, 131072
mov w22, -1
str w0, [x19]
-.L575:
+.L601:
mov w0, w22
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -3876,11 +4073,11 @@ FlashReadRawPage:
add x29, sp, 0
stp x19, x20, [sp,16]
uxtb w19, w0
- adrp x0, .LANCHOR1+265
+ adrp x0, .LANCHOR1+481
str x21, [sp,32]
mov x21, x2
- ldrb w20, [x0,#:lo12:.LANCHOR1+265]
- cbnz w19, .L599
+ ldrb w20, [x0,#:lo12:.LANCHOR1+481]
+ cbnz w19, .L625
adrp x0, .LANCHOR0
add x0, x0, :lo12:.LANCHOR0
ldrb w5, [x0,25]
@@ -3889,7 +4086,7 @@ FlashReadRawPage:
cmp w1, w0
mov w0, 4
csel w20, w20, w0, cs
-.L599:
+.L625:
mov w0, w19
str x4, [x29,48]
str x1, [x29,56]
@@ -3945,7 +4142,7 @@ FlashDdrTunningRead:
cmp w0, 8
mov w0, 12
csel w22, w22, w0, cc
- cbz w4, .L602
+ cbz w4, .L628
mov w0, 1
bl FlashSetInterfaceMode
mov w0, 1
@@ -3963,41 +4160,41 @@ FlashDdrTunningRead:
ldrb w0, [x27,564]
bl NandcSetMode
cmn w21, #1
- bne .L603
-.L612:
+ bne .L629
+.L638:
mov w21, -1
- b .L604
-.L603:
+ b .L630
+.L629:
adrp x0, .LC7
mov w1, w25
add x0, x0, :lo12:.LC7
mov w2, w21
bl printk
cmp w21, 9
- bhi .L605
+ bhi .L631
add x20, x20, x24, sxtw 4
ldr x0, [x20,40]
ldr w1, [x0,3840]
ldr w1, [x0]
orr w1, w1, 131072
str w1, [x0]
-.L605:
+.L631:
add x19, x19, :lo12:.LANCHOR2
- ldr w0, [x19,656]
+ ldr w0, [x19,664]
add w0, w0, 1
- str w0, [x19,656]
+ str w0, [x19,664]
cmp w0, 2047
- bls .L604
+ bls .L630
mov x23, 0
- str wzr, [x19,656]
+ str wzr, [x19,664]
mov x28, x23
-.L602:
+.L628:
mov w19, 0
mov w27, -1
mov w5, w19
mov w6, w19
mov w20, w19
-.L610:
+.L636:
mov w0, w22
str x5, [x29,104]
str x6, [x29,112]
@@ -4011,63 +4208,63 @@ FlashDdrTunningRead:
ldr x6, [x29,112]
cmp w0, w1
ldr x5, [x29,104]
- bhi .L606
+ bhi .L632
cmp w0, 2
- bhi .L616
+ bhi .L642
add w20, w20, 1
cmp w20, 9
- bls .L616
+ bls .L642
sub w19, w22, w20
mov w21, w0
mov w27, 0
- b .L608
-.L606:
+ b .L634
+.L632:
cmp w6, w20
- bcs .L617
+ bcs .L643
cmp w20, 7
sub w5, w19, w20
- bhi .L618
+ bhi .L644
mov w6, w20
- b .L617
-.L616:
+ b .L643
+.L642:
mov x23, 0
mov w19, w22
mov w21, w0
mov w27, 0
mov x28, x23
- b .L607
-.L617:
+ b .L633
+.L643:
mov w20, 0
-.L607:
+.L633:
add w22, w22, 2
cmp w22, 69
- bls .L610
-.L608:
+ bls .L636
+.L634:
cmp w6, w20
csel w19, w19, w5, cc
- b .L609
-.L618:
+ b .L635
+.L644:
mov w19, w5
-.L609:
- cbz w19, .L611
+.L635:
+ cbz w19, .L637
adrp x0, .LC8
mov w1, w19
add x0, x0, :lo12:.LC8
bl printk
mov w0, w19
bl NandcSetDdrPara
-.L611:
- cbz w27, .L604
+.L637:
+ cbz w27, .L630
adrp x0, .LC9
mov w1, w24
add x0, x0, :lo12:.LC9
mov w2, w25
bl printk
- cbz w26, .L612
+ cbz w26, .L638
ldr w0, [x29,124]
lsr w0, w0, 8
bl NandcSetDdrPara
-.L604:
+.L630:
mov w0, w21
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -4097,17 +4294,17 @@ FlashReadPage:
cmn w0, #1
mov w19, w0
adrp x23, .LANCHOR2
- bne .L628
+ bne .L654
adrp x21, .LANCHOR0
add x26, x21, :lo12:.LANCHOR0
ldrb w27, [x26,32]
- cbnz w27, .L629
-.L631:
+ cbnz w27, .L655
+.L657:
add x0, x23, :lo12:.LANCHOR2
ldrb w0, [x0,572]
- cbz w0, .L628
- b .L649
-.L629:
+ cbz w0, .L654
+ b .L675
+.L655:
mov w0, w20
mov w1, w22
mov x2, x25
@@ -4116,10 +4313,10 @@ FlashReadPage:
bl FlashReadRawPage
strb w27, [x26,32]
cmn w0, #1
- beq .L631
+ beq .L657
mov w19, w0
- b .L628
-.L649:
+ b .L654
+.L675:
add x21, x21, :lo12:.LANCHOR0
mov w1, w22
mov x2, x25
@@ -4131,19 +4328,19 @@ FlashReadPage:
bl FlashDdrTunningRead
cmn w0, #1
mov w19, w0
- beq .L632
- ldrb w0, [x21,4044]
+ beq .L658
+ ldrb w0, [x21,4045]
cmp w19, w0, lsr 1
- bls .L628
-.L632:
+ bls .L654
+.L658:
lsr w0, w26, 8
bl NandcSetDdrPara
-.L628:
+.L654:
add x21, x23, :lo12:.LANCHOR2
cmn w19, #1
- ldr x4, [x21,664]
- bne .L633
- cbz x4, .L633
+ ldr x4, [x21,672]
+ bne .L659
+ cbz x4, .L659
mov w1, w22
mov x2, x25
mov x3, x24
@@ -4157,13 +4354,13 @@ FlashReadPage:
mov w3, w22
bl printk
cmn w19, #1
- bne .L633
- adrp x0, .LANCHOR0+136
- ldrb w0, [x0,#:lo12:.LANCHOR0+136]
- cbz w0, .L633
+ bne .L659
+ adrp x0, .LANCHOR0+4044
+ ldrb w0, [x0,#:lo12:.LANCHOR0+4044]
+ cbz w0, .L659
mov w0, w20
bl flash_enter_slc_mode
- ldr x4, [x21,664]
+ ldr x4, [x21,672]
mov w0, w20
mov w1, w22
mov x2, x25
@@ -4172,7 +4369,7 @@ FlashReadPage:
mov w19, w0
mov w0, w20
bl flash_exit_slc_mode
-.L633:
+.L659:
mov w0, w19
ldr x27, [sp,80]
ldp x19, x20, [sp,16]
@@ -4211,24 +4408,24 @@ FlashDdrParaScan:
mov x3, x2
bl FlashReadRawPage
cmn w0, #1
- beq .L654
+ beq .L680
cmn w22, #1
- bne .L651
-.L654:
+ bne .L677
+.L680:
add x20, x19, :lo12:.LANCHOR2
ldrb w0, [x20,564]
- tbz x0, 0, .L651
+ tbz x0, 0, .L677
mov w0, 1
bl FlashSetInterfaceMode
mov w0, 1
bl NandcSetMode
strb wzr, [x20,572]
- b .L653
-.L651:
+ b .L679
+.L677:
add x19, x19, :lo12:.LANCHOR2
mov w0, 1
strb w0, [x19,572]
-.L653:
+.L679:
mov w0, 0
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -4243,38 +4440,39 @@ FlashLoadPhyInfo:
mov w0, 60
add x29, sp, 0
stp x19, x20, [sp,16]
- stp x25, x26, [sp,64]
+ adrp x19, .LANCHOR0
+ str x27, [sp,80]
strb w0, [x29,104]
mov w0, 40
strb w0, [x29,105]
mov w0, 24
- adrp x25, .LANCHOR2
strb w0, [x29,106]
- adrp x19, .LANCHOR0
mov w0, 16
- stp x23, x24, [sp,48]
strb w0, [x29,107]
- adrp x23, .LANCHOR1
- add x0, x25, :lo12:.LANCHOR2
- ldr x1, [x19,#:lo12:.LANCHOR0]
+ add x0, x19, :lo12:.LANCHOR0
+ stp x23, x24, [sp,48]
stp x21, x22, [sp,32]
- add x21, x23, :lo12:.LANCHOR1
+ stp x25, x26, [sp,64]
+ adrp x23, .LANCHOR2
+ adrp x22, .LANCHOR1
+ ldr w25, [x0,28]
+ add x0, x23, :lo12:.LANCHOR2
+ ldr x1, [x19,#:lo12:.LANCHOR0]
+ add x22, x22, :lo12:.LANCHOR1
mov w20, 0
- stp x27, x28, [sp,80]
- add x21, x21, 256
- str x1, [x0,672]
- str wzr, [x0,680]
- mov w27, 4
+ mov w24, 4
+ str x1, [x0,680]
+ mov w26, -1
+ str wzr, [x0,688]
+ add x22, x22, 472
mov w0, 0
- mov w24, -1
- ldrh w28, [x21,10]
bl flash_enter_slc_mode
-.L662:
- add w26, w20, 1
- mov x22, 0
-.L664:
+.L688:
+ add w27, w20, 1
+ mov x21, 0
+.L690:
add x0, x29, 104
- ldrb w0, [x22,x0]
+ ldrb w0, [x21,x0]
bl FlashBchSel
ldr x2, [x19,#:lo12:.LANCHOR0]
mov w0, 0
@@ -4282,93 +4480,95 @@ FlashLoadPhyInfo:
mov x3, 0
bl FlashReadRawPage
cmn w0, #1
- bne .L663
+ bne .L689
ldr x2, [x19,#:lo12:.LANCHOR0]
mov w0, 0
- mov w1, w26
+ mov w1, w27
mov x3, 0
bl FlashReadRawPage
cmn w0, #1
- bne .L663
- add x22, x22, 1
- cmp x22, 4
- beq .L665
- b .L664
-.L666:
+ bne .L689
+ add x21, x21, 1
+ cmp x21, 4
+ beq .L691
+ b .L690
+.L692:
mov w1, 2036
- add x0, x26, 12
- mov w24, -1
- bl JSHash
- ldr w1, [x26,8]
+ add x0, x27, 12
+ mov w26, -1
+ bl js_hash
+ ldr w1, [x27,8]
cmp w1, w0
- beq .L676
-.L665:
- subs w27, w27, #1
- add w20, w20, w28
- bne .L662
- mov w0, w27
-.L675:
- bl flash_exit_slc_mode
+ beq .L702
+.L691:
+ subs w24, w24, #1
+ add w20, w20, w25
+ bne .L688
mov w0, w24
+.L701:
+ bl flash_exit_slc_mode
+ ldr x27, [sp,80]
+ mov w0, w26
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
ldp x25, x26, [sp,64]
- ldp x27, x28, [sp,80]
ldp x29, x30, [sp], 112
ret
-.L663:
- add x22, x25, :lo12:.LANCHOR2
+.L689:
+ add x21, x23, :lo12:.LANCHOR2
mov w0, 20036
movk w0, 0x4e41, lsl 16
- ldr x26, [x22,672]
- ldr w1, [x26]
+ ldr x27, [x21,680]
+ ldr w1, [x27]
cmp w1, w0
- bne .L665
- cbnz w24, .L666
- add x23, x23, :lo12:.LANCHOR1
+ bne .L691
+ cbnz w26, .L692
add x19, x19, :lo12:.LANCHOR0
- ldrh w0, [x23,266]
+ ldr w0, [x19,28]
udiv w20, w20, w0
- mov w0, w24
+ mov w0, w26
add w20, w20, 1
str w20, [x19,8]
- b .L675
-.L676:
- add x1, x26, 160
+ b .L701
+.L702:
+ add x1, x27, 160
mov w2, 32
- mov x0, x21
- add x24, x19, :lo12:.LANCHOR0
+ mov x0, x22
+ add x26, x19, :lo12:.LANCHOR0
bl ftl_memcpy
- ldr x1, [x22,672]
+ ldr x1, [x21,680]
mov w2, 32
- add x0, x24, 104
+ add x0, x26, 104
add x1, x1, 192
bl ftl_memcpy
- ldr x1, [x22,672]
+ ldr x1, [x21,680]
mov w2, 852
- add x0, x24, 4056
+ add x0, x26, 4056
add x1, x1, 224
bl ftl_memcpy
- str w20, [x22,680]
- ldr x1, [x22,672]
- ldr w0, [x1,1076]
- strb w0, [x22,572]
- ldrh w0, [x21,10]
- udiv w0, w20, w0
- add w2, w0, 1
- cbz w0, .L668
- str w2, [x24,8]
- b .L669
-.L668:
+ ldrh w0, [x22,10]
+ bl FlashBlockAlignInit
+ str w20, [x21,688]
+ ldr w1, [x26,28]
+ ldr x2, [x21,680]
+ udiv w1, w20, w1
+ ldr w0, [x2,1076]
+ add w1, w1, 1
+ strb w0, [x21,572]
+ cmp w1, 1
+ bls .L694
+ str w1, [x26,8]
+ b .L695
+.L694:
mov w0, 2
- str w0, [x24,8]
-.L669:
- add x0, x25, :lo12:.LANCHOR2
- ldrh w1, [x1,14]
- mov w24, 0
- strb w1, [x0,684]
- b .L665
+ str w0, [x26,8]
+.L695:
+ add x0, x23, :lo12:.LANCHOR2
+ ldrh w1, [x2,14]
+ mov w26, 0
+ strb w1, [x0,692]
+ b .L691
.size FlashLoadPhyInfo, .-FlashLoadPhyInfo
.align 2
.global ToshibaReadRetrial
@@ -4405,21 +4605,21 @@ ToshibaReadRetrial:
sub w0, w0, #67
uxtb w0, w0
cmp w0, 1
- bls .L678
+ bls .L704
adrp x0, .LANCHOR2+572
ldrb w0, [x0,#:lo12:.LANCHOR2+572]
- cbz w0, .L679
+ cbz w0, .L705
mov w0, w22
mov w22, 1
bl NandcSetDdrMode
-.L679:
+.L705:
ubfiz x0, x28, 8, 8
mov w2, 92
add x0, x24, x0
str w2, [x0,2056]
mov w2, 197
str w2, [x0,2056]
-.L678:
+.L704:
adrp x0, g_maxRetryCount
mov w21, 1
add x0, x0, :lo12:g_maxRetryCount
@@ -4431,44 +4631,44 @@ ToshibaReadRetrial:
str x0, [x29,104]
ubfiz x0, x28, 8, 8
str x0, [x29,96]
-.L680:
+.L706:
adrp x0, g_maxRetryCount
ldrb w0, [x0,#:lo12:g_maxRetryCount]
add w0, w0, 1
cmp w21, w0
- bcs .L705
+ bcs .L731
ldrb w0, [x20,#:lo12:g_retryMode]
mov w1, w21
sub w0, w0, #67
uxtb w0, w0
cmp w0, 1
mov x0, x19
- bhi .L681
+ bhi .L707
bl SandiskSetRRPara
- b .L682
-.L681:
+ b .L708
+.L707:
bl ToshibaSetRRPara
-.L682:
+.L708:
ldrb w0, [x20,#:lo12:g_retryMode]
cmp w0, 34
- bne .L683
+ bne .L709
ldr x0, [x29,112]
ldrb w0, [x0]
sub w0, w0, #3
cmp w21, w0
- bne .L683
+ bne .L709
ldr x0, [x29,104]
mov w1, 179
add x0, x24, x0
str w1, [x0,8]
-.L683:
+.L709:
ldr x0, [x29,96]
mov w1, 38
add x0, x24, x0
str w1, [x0,2056]
mov w1, 93
str w1, [x0,2056]
- cbz w22, .L684
+ cbz w22, .L710
mov w0, 4
bl NandcSetDdrMode
ldr w1, [x29,132]
@@ -4479,45 +4679,45 @@ ToshibaReadRetrial:
mov w28, w0
mov w0, 0
bl NandcSetDdrMode
- b .L685
-.L684:
+ b .L711
+.L710:
ldr w1, [x29,132]
mov w0, w23
mov x2, x27
mov x3, x26
bl FlashReadRawPage
mov w28, w0
-.L685:
+.L711:
cmn w28, #1
- beq .L686
+ beq .L712
ldr x0, [x29,120]
cmn w25, #1
csel w25, w25, w28, ne
add x0, x0, :lo12:.LANCHOR0
- ldrb w0, [x0,4044]
+ ldrb w0, [x0,4045]
add w0, w0, w0, lsl 1
cmp w28, w0, lsr 2
- bcc .L688
+ bcc .L714
mov x26, 0
mov x27, x26
-.L686:
+.L712:
add w21, w21, 1
- b .L680
-.L705:
+ b .L706
+.L731:
mov w28, w25
-.L688:
+.L714:
ldrb w0, [x20,#:lo12:g_retryMode]
mov w1, 0
sub w0, w0, #67
uxtb w0, w0
cmp w0, 1
mov x0, x19
- bhi .L690
+ bhi .L716
bl SandiskSetRRPara
- b .L691
-.L690:
+ b .L717
+.L716:
bl ToshibaSetRRPara
-.L691:
+.L717:
ldr x0, [x29,136]
add x0, x0, 8
add x24, x24, x0, lsl 8
@@ -4525,20 +4725,20 @@ ToshibaReadRetrial:
str w0, [x24,8]
ldr x0, [x29,120]
add x0, x0, :lo12:.LANCHOR0
- ldrb w0, [x0,4044]
+ ldrb w0, [x0,4045]
add w0, w0, w0, lsl 1
cmp w28, w0, lsr 2
- bcc .L692
+ bcc .L718
cmn w28, #1
mov w0, 256
csel w28, w28, w0, eq
-.L692:
+.L718:
mov w0, w23
bl NandcWaitFlashReady
- cbz w22, .L693
+ cbz w22, .L719
mov w0, 4
bl NandcSetDdrMode
-.L693:
+.L719:
mov w0, w28
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -4578,11 +4778,11 @@ SamsungReadRetrial:
ldrb w21, [x2,8]
add x21, x21, 8
add x21, x0, x21, lsl 8
-.L707:
+.L733:
ldrb w0, [x27]
add w0, w0, 1
cmp w26, w0
- bcs .L710
+ bcs .L736
mov x0, x21
mov w1, w26
bl SamsungSetRRPara
@@ -4592,34 +4792,34 @@ SamsungReadRetrial:
mov x3, x23
bl FlashReadRawPage
cmn w0, #1
- beq .L708
+ beq .L734
add x1, x20, :lo12:.LANCHOR0
cmn w19, #1
csel w19, w19, w0, ne
- ldrb w1, [x1,4044]
+ ldrb w1, [x1,4045]
add w1, w1, w1, lsl 1
cmp w0, w1, lsr 2
- bcc .L713
+ bcc .L739
mov x23, 0
mov x24, x23
-.L708:
+.L734:
add w26, w26, 1
- b .L707
-.L713:
+ b .L733
+.L739:
mov w19, w0
-.L710:
+.L736:
mov x0, x21
mov w1, 0
add x20, x20, :lo12:.LANCHOR0
bl SamsungSetRRPara
- ldrb w0, [x20,4044]
+ ldrb w0, [x20,4045]
add w0, w0, w0, lsl 1
cmp w19, w0, lsr 2
- bcc .L712
+ bcc .L738
cmn w19, #1
mov w0, 256
csel w19, w19, w0, eq
-.L712:
+.L738:
mov w0, w19
ldr x27, [sp,80]
ldp x19, x20, [sp,16]
@@ -4645,17 +4845,17 @@ MicronReadRetrial:
stp x23, x24, [sp,48]
mov w28, w1
mov x26, x2
- ldrb w19, [x0,4044]
+ ldrb w19, [x0,4045]
mov x22, x3
- ldrb w0, [x0,136]
- cbnz w0, .L720
+ ldrb w0, [x0,4044]
+ cbnz w0, .L746
add w19, w19, w19, lsl 1
ubfx x19, x19, 2, 8
- b .L721
-.L720:
+ b .L747
+.L746:
mov w0, 3
sdiv w19, w19, w0
-.L721:
+.L747:
adrp x0, g_maxRetryCount
adrp x27, .LC11
add x0, x0, :lo12:g_maxRetryCount
@@ -4666,7 +4866,7 @@ MicronReadRetrial:
add x20, x20, :lo12:.LANCHOR0
add x23, x20, 40
add x23, x23, x21, sxtw 4
-.L732:
+.L758:
mov w0, w21
mov w24, 0
mov w27, -1
@@ -4676,13 +4876,13 @@ MicronReadRetrial:
ldr x6, [x23]
mov w10, 137
lsl x8, x4, 8
-.L722:
+.L748:
ldr x0, [x29,152]
ldrb w0, [x0]
cmp w24, w0
- bcs .L725
+ bcs .L751
add x2, x6, x8
- mov w0, 200
+ mov x0, 1000
str x4, [x29,96]
str x8, [x29,104]
str w9, [x2,2056]
@@ -4691,7 +4891,7 @@ MicronReadRetrial:
str x9, [x29,120]
str x10, [x29,128]
str x2, [x29,136]
- bl NandcDelayns
+ bl __const_udelay
ldr x2, [x29,136]
add w7, w24, 1
mov w0, w21
@@ -4711,47 +4911,47 @@ MicronReadRetrial:
ldr x6, [x29,112]
ldr x8, [x29,104]
ldr x4, [x29,96]
- beq .L723
+ beq .L749
cmn w27, #1
csel w27, w27, w0, ne
cmp w0, w19
- bcc .L734
+ bcc .L760
mov x22, 0
mov x26, x22
-.L723:
+.L749:
mov w24, w7
- b .L722
-.L734:
+ b .L748
+.L760:
mov x22, 0
mov w27, w0
mov x26, x22
-.L725:
+.L751:
add x1, x6, x4, lsl 8
mov w0, 239
str x1, [x29,136]
str w0, [x1,2056]
mov w0, 137
str w0, [x1,2052]
- mov w0, 200
- bl NandcDelayns
+ mov x0, 1000
+ bl __const_udelay
ldr x1, [x29,136]
cmp w27, w19
str wzr, [x1,2048]
str wzr, [x1,2048]
str wzr, [x1,2048]
str wzr, [x1,2048]
- bcc .L727
+ bcc .L753
cmn w27, #1
mov w0, 256
csel w27, w27, w0, eq
-.L727:
+.L753:
cmn w27, #1
cset w6, eq
- cbnz w6, .L736
+ cbnz w6, .L762
cmp w27, 256
cset w1, eq
- cbz w1, .L728
-.L736:
+ cbz w1, .L754
+.L762:
ldr x0, [x29,144]
mov w1, w24
mov w2, w28
@@ -4759,30 +4959,30 @@ MicronReadRetrial:
mov w4, w27
str x6, [x29,136]
bl printk
- cbnz w25, .L730
+ cbnz w25, .L756
ldr x6, [x29,136]
- cbz w6, .L741
- ldrb w0, [x20,136]
- cbz w0, .L741
+ cbz w6, .L767
+ ldrb w0, [x20,4044]
+ cbz w0, .L767
mov w0, w21
mov w1, 3
mov w25, 1
bl micron_auto_read_calibration_config
- b .L732
-.L730:
+ b .L758
+.L756:
mov w0, w21
mov w1, 0
bl micron_auto_read_calibration_config
cmn w27, #1
mov w0, 256
csel w27, w27, w0, eq
- b .L741
-.L728:
- cbz w25, .L741
+ b .L767
+.L754:
+ cbz w25, .L767
mov w0, w21
mov w27, 256
bl micron_auto_read_calibration_config
-.L741:
+.L767:
mov w0, w27
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -4801,34 +5001,36 @@ HynixReadRetrial:
stp x21, x22, [sp,32]
adrp x21, .LANCHOR0
uxtb x22, w0
- stp x27, x28, [sp,80]
- mov w27, w1
- add x1, x21, :lo12:.LANCHOR0
+ add x0, x21, :lo12:.LANCHOR0
stp x23, x24, [sp,48]
stp x25, x26, [sp,64]
+ stp x27, x28, [sp,80]
stp x19, x20, [sp,16]
mov x26, x2
- add x2, x1, 4056
- ldrb w25, [x1,4058]
- add x0, x2, x22
- ldr x1, [x1,1912]
+ add x2, x0, 4056
+ ldrb w25, [x0,4058]
+ mov w27, w1
+ ldr x0, [x0,1912]
+ add x1, x2, x22
mov x23, x22
mov x24, x3
- ldrb w19, [x0,12]
- ldrb w1, [x1,19]
- cmp w1, 7
- bne .L750
- ldrb w19, [x0,20]
-.L750:
+ ldrb w0, [x0,19]
+ ldrb w19, [x1,12]
+ sub w0, w0, #7
+ uxtb w0, w0
+ cmp w0, 1
+ bhi .L776
+ ldrb w19, [x1,20]
+.L776:
mov w0, w23
mov w28, 0
mov w20, -1
bl NandcWaitFlashReady
add x4, x21, :lo12:.LANCHOR0
add x5, x4, 4060
-.L751:
+.L777:
cmp w28, w25
- bcs .L755
+ bcs .L781
add w19, w19, 1
ldrb w1, [x4,4057]
mov x2, x5
@@ -4848,42 +5050,44 @@ HynixReadRetrial:
cmn w0, #1
ldr x5, [x29,104]
ldr x4, [x29,96]
- beq .L753
- ldrb w1, [x4,4044]
+ beq .L779
+ ldrb w1, [x4,4045]
cmn w20, #1
csel w20, w20, w0, ne
add w1, w1, w1, lsl 1
cmp w0, w1, lsr 2
- bcc .L760
+ bcc .L786
mov x24, 0
mov x26, x24
-.L753:
+.L779:
add w28, w28, 1
- b .L751
-.L760:
+ b .L777
+.L786:
mov w20, w0
-.L755:
+.L781:
add x0, x21, :lo12:.LANCHOR0
ldr x1, [x0,1912]
add x0, x0, 4056
add x0, x0, x22
ldrb w1, [x1,19]
- cmp w1, 7
- bne .L757
+ sub w1, w1, #7
+ uxtb w1, w1
+ cmp w1, 1
+ bhi .L783
strb w19, [x0,20]
- b .L758
-.L757:
+ b .L784
+.L783:
strb w19, [x0,12]
-.L758:
+.L784:
add x21, x21, :lo12:.LANCHOR0
- ldrb w0, [x21,4044]
+ ldrb w0, [x21,4045]
add w0, w0, w0, lsl 1
cmp w20, w0, lsr 2
- bcc .L759
+ bcc .L785
cmn w20, #1
mov w0, 256
csel w20, w20, w0, eq
-.L759:
+.L785:
mov w0, w20
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -4902,26 +5106,26 @@ FlashProgPage:
add x29, sp, 0
stp x19, x20, [sp,16]
uxtb w19, w0
- adrp x0, .LANCHOR1+265
+ adrp x0, .LANCHOR1+481
stp x21, x22, [sp,32]
mov w20, w1
mov x22, x2
- ldrb w21, [x0,#:lo12:.LANCHOR1+265]
- cbnz w19, .L767
+ ldrb w21, [x0,#:lo12:.LANCHOR1+481]
+ cbnz w19, .L793
adrp x0, .LANCHOR0
add x0, x0, :lo12:.LANCHOR0
ldrb w1, [x0,25]
ldr w2, [x0,28]
mul w1, w1, w2
cmp w20, w1
- bcs .L767
+ bcs .L793
ldrb w0, [x0,24]
- cbnz w0, .L768
+ cbnz w0, .L794
sub w21, w21, #2
- b .L767
-.L768:
+ b .L793
+.L794:
mov w21, 4
-.L767:
+.L793:
mov w0, w19
str x4, [x29,56]
bl NandcWaitFlashReady
@@ -4969,20 +5173,20 @@ FlashSavePhyInfo:
stp x25, x26, [sp,64]
ldr x0, [x22,#:lo12:.LANCHOR0]
mov w21, 0
- str x0, [x19,672]
- ldrb w0, [x19,685]
+ str x0, [x19,680]
+ ldrb w0, [x19,693]
bl FlashBchSel
ldr x0, [x22,#:lo12:.LANCHOR0]
mov w1, 0
mov w2, 2048
bl ftl_memset
- ldr x1, [x19,672]
+ ldr x1, [x19,680]
mov w0, 20036
movk w0, 0x4e41, lsl 16
mov w2, 32
str w0, [x1]
- ldr x0, [x19,672]
- ldrb w1, [x20,1676]
+ ldr x0, [x19,680]
+ ldrb w1, [x20,1672]
add x0, x0, 16
strh w1, [x0,-4]
ldrb w1, [x20,25]
@@ -4992,46 +5196,46 @@ FlashSavePhyInfo:
adrp x1, IDByte
add x1, x1, :lo12:IDByte
bl ftl_memcpy
- ldr x0, [x19,672]
- add x1, x20, 1680
+ ldr x0, [x19,680]
+ add x1, x20, 1676
mov w2, 8
add x0, x0, 80
bl ftl_memcpy
- ldr x0, [x19,672]
- add x1, x20, 1688
+ ldr x0, [x19,680]
+ add x1, x20, 1684
mov w2, 32
add x0, x0, 96
bl ftl_memcpy
- ldr x0, [x19,672]
+ ldr x0, [x19,680]
adrp x1, .LANCHOR1
add x1, x1, :lo12:.LANCHOR1
mov w2, 32
- add x1, x1, 256
+ add x1, x1, 472
add x0, x0, 160
bl ftl_memcpy
- ldr x0, [x19,672]
+ ldr x0, [x19,680]
add x1, x20, 104
mov w2, 32
add x0, x0, 192
bl ftl_memcpy
- ldr x0, [x19,672]
+ ldr x0, [x19,680]
add x1, x20, 4056
mov w2, 852
add x0, x0, 224
bl ftl_memcpy
- ldr x20, [x19,672]
+ ldr x20, [x19,680]
mov w1, 2036
add x0, x20, 12
- bl JSHash
+ bl js_hash
str w0, [x20,8]
mov w0, 1592
str w0, [x20,4]
- ldr x0, [x19,688]
- str x0, [x19,672]
+ ldr x0, [x19,696]
+ str x0, [x19,680]
mov w0, 0
mov w19, w21
bl flash_enter_slc_mode
-.L772:
+.L798:
add x20, x22, :lo12:.LANCHOR0
mov w2, 0
mov w0, 0
@@ -5055,39 +5259,39 @@ FlashSavePhyInfo:
bl FlashProgPage
ldr w1, [x20,28]
mov w0, 0
- ldr x2, [x24,688]
+ ldr x2, [x24,696]
mov x3, 0
mul w1, w19, w1
bl FlashReadRawPage
cmn w0, #1
- beq .L770
- ldr x25, [x24,672]
+ beq .L796
+ ldr x25, [x24,680]
mov w0, 20036
movk w0, 0x4e41, lsl 16
ldr w1, [x25]
cmp w1, w0
- bne .L770
+ bne .L796
mov w1, 2036
add x0, x25, 12
- bl JSHash
+ bl js_hash
ldr w1, [x25,8]
cmp w1, w0
- bne .L770
+ bne .L796
ldr w0, [x20,28]
cmp w21, 1
str w26, [x20,8]
mul w19, w19, w0
- str w19, [x24,680]
- beq .L773
+ str w19, [x24,688]
+ beq .L799
mov w21, 1
-.L770:
+.L796:
cmp w26, 4
mov w19, w26
- bne .L772
- b .L771
-.L773:
+ bne .L798
+ b .L797
+.L799:
mov w21, 2
-.L771:
+.L797:
mov w0, 0
bl flash_exit_slc_mode
cmp w21, wzr
@@ -5122,16 +5326,13 @@ FlashReadIdbDataRaw:
stp x19, x20, [sp,16]
stp x23, x24, [sp,48]
stp x25, x26, [sp,64]
- ldrb w28, [x0,4044]
+ ldrb w28, [x0,4045]
add x0, x22, :lo12:.LANCHOR2
- ldr w1, [x0,568]
- mov w0, 12336
- movk w0, 0x5638, lsl 16
- cmp w1, w0
- bne .L779
+ ldr w0, [x0,568]
+ cbz w0, .L805
mov w0, 0
bl flash_enter_slc_mode
-.L779:
+.L805:
adrp x25, .LC12
mov x0, x27
mov w1, 0
@@ -5140,13 +5341,13 @@ FlashReadIdbDataRaw:
mov w20, 2
add x25, x25, :lo12:.LC12
bl ftl_memset
-.L780:
+.L806:
add x0, x21, :lo12:.LANCHOR0
ldrb w0, [x0,25]
cmp w20, w0
- bcs .L784
+ bcs .L810
mov x23, 0
-.L782:
+.L808:
add x0, x29, 104
add x19, x21, :lo12:.LANCHOR0
ldrb w26, [x23,x0]
@@ -5159,18 +5360,18 @@ FlashReadIdbDataRaw:
mul w1, w20, w1
bl FlashReadRawPage
cmn w0, #1
- bne .L781
+ bne .L807
add x23, x23, 1
cmp x23, 4
- bne .L782
- b .L783
-.L781:
+ bne .L808
+ b .L809
+.L807:
ldr x0, [x19]
ldr w1, [x0]
mov w0, 35899
movk w0, 0xfcdc, lsl 16
cmp w1, w0
- bne .L783
+ bne .L809
mov w1, w26
mov x0, x25
bl printk
@@ -5183,27 +5384,24 @@ FlashReadIdbDataRaw:
strb w0, [x19,25]
ldr w0, [x19,8]
cmp w0, w20
- bls .L787
+ bls .L813
mov w24, 0
str w20, [x19,8]
bl FlashSavePhyInfo
-.L783:
+.L809:
add w20, w20, 1
- b .L780
-.L787:
+ b .L806
+.L813:
mov w24, 0
-.L784:
+.L810:
mov w0, w28
add x22, x22, :lo12:.LANCHOR2
bl FlashBchSel
- ldr w1, [x22,568]
- mov w0, 12336
- movk w0, 0x5638, lsl 16
- cmp w1, w0
- bne .L789
+ ldr w0, [x22,568]
+ cbz w0, .L817
mov w0, 0
bl flash_exit_slc_mode
-.L789:
+.L817:
mov w0, w24
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -5235,54 +5433,55 @@ FlashInit:
add x24, x19, :lo12:.LANCHOR0
adrp x23, IDByte
bl ftl_malloc
- str x0, [x21,688]
+ str x0, [x21,696]
mov w0, 4096
adrp x25, .LC13
add x24, x24, 40
mov w27, 0
bl ftl_malloc
- str x0, [x21,696]
+ str x0, [x21,704]
mov w0, 32768
mov w28, 44
bl ftl_malloc
- str x0, [x21,704]
+ str x0, [x21,712]
mov w0, 4096
bl ftl_malloc
- str x0, [x21,712]
+ str x0, [x21,720]
mov w0, 128
str w0, [x24,-12]
mov w0, 60
mov w1, 50
- strb w0, [x21,685]
+ strb w0, [x21,693]
mov x0, x22
strb w1, [x24,-15]
- strb w1, [x21,684]
+ strb w1, [x21,692]
str wzr, [x24,-32]
strb wzr, [x21,572]
- str wzr, [x21,656]
+ str wzr, [x21,664]
add x21, x23, :lo12:IDByte
strb wzr, [x24,-16]
bl NandcInit
add x0, x25, :lo12:.LC13
mov x26, x21
str x0, [x29,104]
-.L796:
- uxtb w25, w27
- mov w0, w25
- bl FlashReset
- ldrb w22, [x24,8]
+.L828:
+ uxtb w1, w27
ldr x2, [x24]
- mov w0, w25
+ mov w0, w1
+ mov w25, w1
str x2, [x29,96]
+ ldrb w22, [x24,8]
+ bl FlashReset
+ mov w0, w25
ubfiz x22, x22, 8, 8
bl NandcFlashCs
ldr x2, [x29,96]
mov w0, 144
add x22, x2, x22
str w0, [x22,2056]
- mov w0, 200
+ mov x0, 1000
str wzr, [x22,2052]
- bl NandcDelayns
+ bl __const_udelay
ldr w0, [x22,2048]
strb w0, [x21]
ldr w0, [x22,2048]
@@ -5301,7 +5500,7 @@ FlashInit:
sub w0, w2, #1
uxtb w0, w0
cmp w0, 253
- bhi .L792
+ bhi .L824
ldr x0, [x29,104]
add w1, w27, 1
ldrb w3, [x21,1]
@@ -5310,35 +5509,35 @@ FlashInit:
ldrb w6, [x21,4]
ldrb w7, [x21,5]
bl printk
-.L792:
- cbnz w27, .L793
+.L824:
+ cbnz w27, .L825
ldrb w0, [x26]
sub w0, w0, #1
uxtb w0, w0
cmp w0, 253
- bhi .L841
+ bhi .L876
ldrb w0, [x26,1]
cmp w0, 255
- beq .L841
+ beq .L876
bl FlashCs123Init
-.L793:
+.L825:
ldrb w0, [x21]
cmp w0, 181
- bne .L795
+ bne .L827
strb w28, [x21]
-.L795:
+.L827:
add w27, w27, 1
add x24, x24, 16
cmp w27, 4
add x21, x21, 8
- bne .L796
+ bne .L828
ldrb w0, [x23,#:lo12:IDByte]
cmp w0, 173
- beq .L797
+ beq .L829
add x0, x20, :lo12:.LANCHOR2
ldr w0, [x0,576]
bl NandcSetDdrMode
-.L797:
+.L829:
add x21, x19, :lo12:.LANCHOR0
mov w1, 0
mov w2, 852
@@ -5346,123 +5545,142 @@ FlashInit:
bl ftl_memset
strb wzr, [x21,32]
adrp x1, .LANCHOR1
- add x4, x23, :lo12:IDByte
+ mov w2, 12336
add x0, x1, :lo12:.LANCHOR1
- add x0, x0, 256
+ movk w2, 0x5638, lsl 16
+ add x0, x0, 472
str x0, [x21,1912]
- ldrb w0, [x4,1]
+ add x0, x20, :lo12:.LANCHOR2
+ ldr w3, [x0,584]
+ cmp w3, w2
+ bne .L830
+ mov w2, 1
+ str w2, [x0,568]
+.L830:
+ add x5, x23, :lo12:IDByte
+ ldrb w0, [x5,1]
cmp w0, 218
- cset w3, eq
+ cset w4, eq
+ cmp w0, 241
+ cset w6, eq
cmp w0, 161
cset w2, eq
- orr w2, w3, w2
- cbnz w2, .L798
- and w2, w0, -33
+ orr w2, w6, w2
+ orr w2, w4, w2
+ cbnz w2, .L831
+ and w2, w0, -3
cmp w2, 209
- beq .L798
+ beq .L831
cmp w0, 220
- bne .L799
- ldrb w2, [x4,3]
+ bne .L832
+ ldrb w2, [x5,3]
cmp w2, 149
- bne .L799
-.L798:
+ bne .L832
+.L831:
add x2, x19, :lo12:.LANCHOR0
- mov w4, 1
- mov w5, 16
- add x6, x23, :lo12:IDByte
- strb w4, [x2,24]
- add x4, x20, :lo12:.LANCHOR2
- strb w5, [x2,25]
+ mov w5, 1
+ mov w6, 16
+ add x7, x23, :lo12:IDByte
+ strb w5, [x2,24]
+ add x5, x20, :lo12:.LANCHOR2
+ strb w6, [x2,25]
add x2, x1, :lo12:.LANCHOR1
- strb w5, [x4,685]
- ldrb w5, [x23,#:lo12:IDByte]
- strb w5, [x2,3129]
- strb w0, [x2,3130]
- cmp w5, 152
- bne .L800
- ldrsb w2, [x6,4]
- tbnz w2, #31, .L800
+ strb w6, [x5,693]
+ ldrb w6, [x23,#:lo12:IDByte]
+ strb w6, [x2,3257]
+ strb w0, [x2,3258]
+ cmp w6, 152
+ bne .L833
+ ldrsb w2, [x7,4]
+ tbnz w2, #31, .L833
mov w2, 24
- strb w2, [x4,685]
-.L800:
- add x2, x20, :lo12:.LANCHOR2
- ldr w4, [x2,568]
- cmp w4, 2049
- beq .L843
+ strb w2, [x5,693]
+.L833:
+ cmp w3, 2049
+ beq .L879
mov w2, 12336
movk w2, 0x5638, lsl 16
- cmp w4, w2
- bne .L801
-.L843:
+ cmp w3, w2
+ bne .L834
+.L879:
add x2, x20, :lo12:.LANCHOR2
- mov w4, 16
- strb w4, [x2,685]
-.L801:
- cbz w3, .L803
+ mov w3, 16
+ strb w3, [x2,693]
+.L834:
+ cbz w4, .L836
add x0, x1, :lo12:.LANCHOR1
mov w2, 2048
- strh w2, [x0,3142]
+ strh w2, [x0,3270]
mov w2, -38
- b .L876
-.L803:
+ b .L920
+.L836:
cmp w0, 220
- bne .L804
+ bne .L838
add x0, x1, :lo12:.LANCHOR1
mov w2, 4096
- strh w2, [x0,3142]
+ strh w2, [x0,3270]
mov w2, -36
-.L876:
- strb w2, [x0,3130]
-.L804:
+.L920:
+ strb w2, [x0,3258]
+ b .L837
+.L838:
+ cmp w0, 211
+ bne .L837
+ add x0, x1, :lo12:.LANCHOR1
+ mov w2, 4096
+ strh w2, [x0,3270]
+ mov w2, 2
+ strb w2, [x0,3269]
+.L837:
add x21, x1, :lo12:.LANCHOR1
add x0, x19, :lo12:.LANCHOR0
- add x1, x21, 2784
+ add x1, x21, 3128
mov w2, 32
add x0, x0, 104
bl ftl_memcpy
- add x0, x21, 256
- add x1, x21, 3128
+ add x0, x21, 472
+ add x1, x21, 3256
mov w2, 32
bl ftl_memcpy
-.L799:
+.L832:
add x21, x19, :lo12:.LANCHOR0
ldrb w0, [x21,24]
- cbnz w0, .L805
+ cbnz w0, .L839
bl FlashLoadPhyInfoInRam
- cbnz w0, .L807
+ cbnz w0, .L841
ldr x0, [x21,1912]
add x21, x20, :lo12:.LANCHOR2
ldrb w1, [x0,17]
and w0, w1, 7
strb w0, [x21,564]
- tbnz x1, 0, .L807
+ tbnz x1, 0, .L841
mov w1, 1
strb w1, [x21,572]
bl FlashSetInterfaceMode
ldrb w0, [x21,564]
bl NandcSetMode
-.L807:
+.L841:
add x0, x19, :lo12:.LANCHOR0
ldr x1, [x0,1912]
ldrb w1, [x1,26]
- strb w1, [x0,136]
+ strb w1, [x0,4044]
bl FlashLoadPhyInfo
- cbz w0, .L805
+ cbz w0, .L839
add x21, x20, :lo12:.LANCHOR2
ldr w0, [x21,576]
- cbz w0, .L810
+ cbz w0, .L844
mov w0, 1
bl FlashSetInterfaceMode
mov w0, 1
- b .L877
-.L810:
+ b .L916
+.L844:
ldrb w0, [x21,564]
bl FlashSetInterfaceMode
ldrb w0, [x21,564]
-.L877:
+.L916:
bl NandcSetMode
bl FlashLoadPhyInfo
- cbz w0, .L805
+ cbz w0, .L839
mov w0, 1
add x21, x19, :lo12:.LANCHOR0
bl FlashSetInterfaceMode
@@ -5475,7 +5693,7 @@ FlashInit:
bl printk
bl FlashLoadPhyInfoInRam
cmn w0, #1
- beq .L794
+ beq .L826
bl FlashDieInfoInit
ldr x0, [x21,1912]
ldrb w0, [x0,19]
@@ -5485,41 +5703,41 @@ FlashInit:
ldrb w2, [x0,9]
add w1, w1, 4095
cmp w2, w1, lsr 12
- blt .L812
+ blt .L846
ldrh w1, [x0,14]
add w1, w1, 255
cmp w2, w1, lsr 8
- bge .L813
-.L812:
+ bge .L847
+.L846:
ldrh w1, [x0,14]
and w1, w1, -256
strh w1, [x0,14]
-.L813:
+.L847:
add x21, x20, :lo12:.LANCHOR2
ldrb w0, [x21,564]
tst w0, 6
- beq .L814
+ beq .L848
bl FlashSavePhyInfo
- ldr w1, [x21,680]
+ ldr w1, [x21,688]
mov w0, 0
bl FlashDdrParaScan
-.L814:
+.L848:
bl FlashSavePhyInfo
-.L805:
+.L839:
add x21, x19, :lo12:.LANCHOR0
add x22, x20, :lo12:.LANCHOR2
ldr x2, [x21,1912]
- str xzr, [x22,664]
+ str xzr, [x22,672]
ldrb w0, [x2,26]
- strb w0, [x21,136]
+ strb w0, [x21,4044]
ldrh w0, [x2,16]
ldrh w3, [x2,10]
ubfx x1, x0, 7, 1
strb w1, [x21,32]
ubfx x1, x0, 3, 1
- strb w1, [x22,720]
+ strb w1, [x22,728]
ubfx x1, x0, 4, 1
- strb w1, [x22,648]
+ strb w1, [x22,656]
ldrb w1, [x2,12]
ubfx x0, x0, 8, 3
strb w0, [x22,564]
@@ -5529,179 +5747,184 @@ FlashInit:
bl FlashDieInfoInit
ldr x0, [x21,1912]
ldrh w1, [x0,16]
- tbz x1, 6, .L816
+ tbz x1, 6, .L850
adrp x1, g_retryMode
- adrp x3, g_maxRegNum
ldrb w0, [x0,19]
- mov x5, x3
- ldrb w2, [x21,4058]
+ ldrb w2, [x21,4057]
+ ldrb w3, [x21,4058]
strb w0, [x1,#:lo12:g_retryMode]
- ldrb w1, [x21,4057]
- strb w1, [x3,#:lo12:g_maxRegNum]
- adrp x1, g_maxRetryCount
- strb w2, [x1,#:lo12:g_maxRetryCount]
- sub w2, w0, #1
- uxtb w2, w2
- cmp w2, 6
- mov x2, x1
- bhi .L817
+ adrp x1, g_maxRegNum
+ strb w2, [x1,#:lo12:g_maxRegNum]
+ adrp x2, g_maxRetryCount
+ strb w3, [x2,#:lo12:g_maxRetryCount]
+ sub w3, w0, #1
+ uxtb w3, w3
+ cmp w3, 7
+ mov x3, x2
+ bhi .L851
adrp x1, HynixReadRetrial
+ cmp w0, 8
add x1, x1, :lo12:HynixReadRetrial
- str x1, [x22,664]
+ str x1, [x22,672]
sub w1, w0, #5
+ cset w2, eq
uxtb w1, w1
cmp w1, 1
- bhi .L818
- mov w1, 1
- str w1, [x22,640]
- b .L819
-.L818:
+ bls .L880
+ cbz w2, .L852
+.L880:
+ add x1, x20, :lo12:.LANCHOR2
+ mov w3, 1
+ str w3, [x1,648]
+.L852:
cmp w0, 7
- add x21, x21, 4084
- beq .L820
-.L819:
- add x21, x19, :lo12:.LANCHOR0
- add x21, x21, 4076
-.L820:
- mov x1, 0
- mov w2, w1
-.L822:
- ldrsb w3, [x21,x1]
- add x1, x1, 1
- cmp w3, wzr
- csinc w2, w2, w2, ne
- cmp x1, 32
- bne .L822
- cmp w2, 27
- bls .L816
+ add x1, x19, :lo12:.LANCHOR0
+ beq .L878
+ cbnz w2, .L878
+ add x1, x1, 4076
+ b .L855
+.L878:
+ add x1, x1, 4084
+.L855:
+ mov x2, 0
+ mov w3, w2
+.L857:
+ ldrsb w4, [x1,x2]
+ add x2, x2, 1
+ cmp w4, wzr
+ csinc w3, w3, w3, ne
+ cmp x2, 32
+ bne .L857
+ cmp w3, 27
+ bls .L850
bl FlashGetReadRetryDefault
bl FlashSavePhyInfo
- b .L816
-.L817:
- sub w3, w0, #17
- uxtb w3, w3
- cmp w3, 2
- bhi .L824
- adrp x2, MicronReadRetrial
+ b .L850
+.L851:
+ sub w4, w0, #17
+ uxtb w4, w4
+ cmp w4, 2
+ bhi .L859
+ adrp x1, MicronReadRetrial
cmp w0, 19
- add x2, x2, :lo12:MicronReadRetrial
- str x2, [x22,664]
- beq .L825
+ add x1, x1, :lo12:MicronReadRetrial
+ str x1, [x22,672]
+ beq .L860
mov w0, 7
- b .L879
-.L825:
+ b .L918
+.L860:
mov w0, 15
-.L879:
- strb w0, [x1,#:lo12:g_maxRetryCount]
- b .L816
-.L824:
- sub w1, w0, #65
- uxtb w1, w1
- cmp w1, 1
- bls .L844
+.L918:
+ strb w0, [x2,#:lo12:g_maxRetryCount]
+ b .L850
+.L859:
+ sub w2, w0, #65
+ uxtb w2, w2
+ cmp w2, 1
+ bls .L881
cmp w0, 33
- bne .L826
-.L844:
+ bne .L861
+.L881:
add x0, x20, :lo12:.LANCHOR2
- adrp x1, ToshibaReadRetrial
- add x1, x1, :lo12:ToshibaReadRetrial
- str x1, [x0,664]
+ adrp x2, ToshibaReadRetrial
+ add x2, x2, :lo12:ToshibaReadRetrial
+ str x2, [x0,672]
mov w0, 4
- strb w0, [x5,#:lo12:g_maxRegNum]
+ strb w0, [x1,#:lo12:g_maxRegNum]
mov w0, 7
- strb w0, [x2,#:lo12:g_maxRetryCount]
- b .L816
-.L826:
- sub w1, w0, #67
- uxtb w1, w1
- cmp w1, 1
- sub w1, w0, #34
- cset w4, ls
- uxtb w1, w1
- cmp w1, 1
- bls .L845
- cbz w4, .L828
-.L845:
- add x1, x20, :lo12:.LANCHOR2
- adrp x3, ToshibaReadRetrial
- add x3, x3, :lo12:ToshibaReadRetrial
+ strb w0, [x3,#:lo12:g_maxRetryCount]
+ b .L850
+.L861:
+ sub w2, w0, #67
+ uxtb w2, w2
+ cmp w2, 1
+ sub w2, w0, #34
+ cset w5, ls
+ uxtb w2, w2
+ cmp w2, 1
+ bls .L882
+ cbz w5, .L863
+.L882:
+ add x2, x20, :lo12:.LANCHOR2
+ adrp x4, ToshibaReadRetrial
+ add x4, x4, :lo12:ToshibaReadRetrial
cmp w0, 35
- str x3, [x1,664]
- beq .L830
+ str x4, [x2,672]
+ beq .L865
cmp w0, 68
- beq .L830
+ beq .L865
mov w0, 7
- b .L878
-.L830:
+ b .L917
+.L865:
mov w0, 17
-.L878:
- strb w0, [x2,#:lo12:g_maxRetryCount]
+.L917:
+ strb w0, [x3,#:lo12:g_maxRetryCount]
mov w0, 4
- cbnz w4, .L880
+ cbnz w5, .L919
mov w0, 5
-.L880:
- strb w0, [x5,#:lo12:g_maxRegNum]
- b .L816
-.L828:
+.L919:
+ strb w0, [x1,#:lo12:g_maxRegNum]
+ b .L850
+.L863:
cmp w0, 49
- bne .L816
+ bne .L850
adrp x0, SamsungReadRetrial
add x0, x0, :lo12:SamsungReadRetrial
- str x0, [x22,664]
-.L816:
+ str x0, [x22,672]
+.L850:
add x0, x20, :lo12:.LANCHOR2
- ldr w1, [x0,568]
+ ldr w1, [x0,584]
mov w0, 12336
movk w0, 0x5638, lsl 16
cmp w1, w0
- bne .L833
+ bne .L868
add x0, x19, :lo12:.LANCHOR0
- ldrb w2, [x0,136]
- cbz w2, .L833
+ ldrb w2, [x0,4044]
+ cbz w2, .L868
ldr x0, [x0,1912]
strb wzr, [x0,18]
-.L833:
+.L868:
ldrb w0, [x23,#:lo12:IDByte]
cmp w0, 44
- bne .L834
+ bne .L869
add x0, x20, :lo12:.LANCHOR2
ldrb w0, [x0,572]
- cbz w0, .L834
+ cbz w0, .L869
mov w0, 12336
movk w0, 0x5638, lsl 16
cmp w1, w0
- bne .L835
+ bne .L870
add x0, x19, :lo12:.LANCHOR0
- ldrb w0, [x0,136]
- cbnz w0, .L834
-.L835:
+ ldrb w0, [x0,4044]
+ cbnz w0, .L869
+.L870:
add x0, x20, :lo12:.LANCHOR2
strb wzr, [x0,572]
mov w0, 1
bl FlashSetInterfaceMode
mov w0, 1
bl NandcSetMode
-.L834:
- mov w0, 0
- bl flash_enter_slc_mode
+.L869:
add x1, x20, :lo12:.LANCHOR2
ldrb w0, [x1,564]
tst w0, 6
- beq .L836
+ beq .L871
ldrb w1, [x1,572]
- cbnz w1, .L837
- tbnz x0, 0, .L836
-.L837:
+ cbnz w1, .L872
+ tbnz x0, 0, .L871
+.L872:
+ mov w0, 0
add x20, x20, :lo12:.LANCHOR2
+ bl flash_enter_slc_mode
+ ldr w1, [x20,688]
mov w0, 0
- ldr w1, [x20,680]
bl FlashDdrParaScan
-.L836:
- add x19, x19, :lo12:.LANCHOR0
mov w0, 0
+ bl flash_exit_slc_mode
+.L871:
+ add x19, x19, :lo12:.LANCHOR0
mov w20, 16
add x23, x23, :lo12:IDByte
- bl flash_exit_slc_mode
ldr x0, [x19,1912]
ldrb w0, [x0,20]
bl FlashBchSel
@@ -5719,7 +5942,7 @@ FlashInit:
str w2, [x19,4020]
ldr w2, [x23]
str w2, [x19,4016]
- ldrb w2, [x19,1676]
+ ldrb w2, [x19,1672]
strh w2, [x19,4026]
ldrb w2, [x1,13]
strh w2, [x19,4028]
@@ -5743,7 +5966,7 @@ FlashInit:
ldrb w5, [x19,24]
strh w2, [x19,4038]
cmp w5, 1
- bne .L839
+ bne .L874
lsl w2, w2, 1
lsr w4, w4, 1
lsl w3, w3, 1
@@ -5753,15 +5976,15 @@ FlashInit:
strh w4, [x19,4030]
strh w3, [x19,4036]
strh w2, [x19,4042]
-.L839:
+.L874:
ldrb w0, [x1,20]
bl FlashBchSel
bl ftl_flash_suspend
mov w0, 0
- b .L794
-.L841:
+ b .L826
+.L876:
mov w0, -2
-.L794:
+.L826:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -5777,66 +6000,69 @@ FlashPageProgMsbFFData:
stp x29, x30, [sp, -80]!
add x29, sp, 0
stp x19, x20, [sp,16]
- adrp x20, .LANCHOR0
uxth w19, w2
+ adrp x2, .LANCHOR0
stp x21, x22, [sp,32]
- uxtb w22, w0
- add x0, x20, :lo12:.LANCHOR0
+ uxtb w21, w0
+ add x0, x2, :lo12:.LANCHOR0
stp x23, x24, [sp,48]
- stp x25, x26, [sp,64]
- ldr x2, [x0,1912]
- ldrb w0, [x0,136]
- ldrb w3, [x2,19]
- cbz w0, .L882
+ str x25, [sp,64]
+ ldr x3, [x0,1912]
+ ldrb w0, [x0,4044]
+ ldrb w20, [x3,19]
+ mov x3, x2
+ cbz w0, .L922
adrp x0, .LANCHOR2+568
- ldr w2, [x0,#:lo12:.LANCHOR2+568]
- mov w0, 12336
- movk w0, 0x5638, lsl 16
- cmp w2, w0
- beq .L881
-.L882:
- sub w0, w3, #5
- uxtb w0, w0
- cmp w0, 2
- bls .L883
- cmp w3, 68
- beq .L883
- sub w3, w3, #19
- and w3, w3, -17
- uxtb w3, w3
- cbnz w3, .L881
-.L883:
- add x20, x20, :lo12:.LANCHOR0
- mov w21, w1
- add x24, x20, 652
+ ldr w0, [x0,#:lo12:.LANCHOR2+568]
+ cbnz w0, .L921
+.L922:
+ sub w2, w20, #5
+ uxtb w2, w2
+ cmp w2, 3
+ bls .L923
+ cmp w20, 68
+ beq .L923
+ sub w2, w20, #19
+ and w2, w2, -17
+ uxtb w2, w2
+ cbnz w2, .L921
+.L923:
+ mov w24, w1
+ add x22, x3, :lo12:.LANCHOR0
mov w25, 65535
- adrp x26, .LANCHOR2
-.L885:
- ldr x0, [x20,1912]
+ adrp x23, .LANCHOR2
+.L925:
+ ldr x0, [x22,1912]
ldrh w0, [x0,10]
cmp w0, w19
- bls .L881
- ldrh w0, [x24,w19,sxtw 1]
+ bls .L921
+ add x0, x22, 648
+ ldrh w0, [x0,w19,sxtw 1]
cmp w0, w25
- bne .L881
- add x23, x26, :lo12:.LANCHOR2
+ bne .L921
+ add x0, x23, :lo12:.LANCHOR2
+ cmp w20, 8
+ mov w1, 0
+ ldr x0, [x0,696]
+ beq .L935
mov w1, 255
+.L935:
mov w2, 32768
- ldr x0, [x23,688]
bl ftl_memset
- ldr x2, [x23,688]
- add w1, w19, w21
- mov w0, w22
- mov x3, 0
+ add x0, x23, :lo12:.LANCHOR2
+ add w1, w19, w24
add w19, w19, 1
- bl FlashProgPage
+ ldr x2, [x0,696]
+ mov w0, w21
uxth w19, w19
- b .L885
-.L881:
+ mov x3, x2
+ bl FlashProgPage
+ b .L925
+.L921:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
- ldp x25, x26, [sp,64]
+ ldr x25, [sp,64]
ldp x29, x30, [sp], 80
ret
.size FlashPageProgMsbFFData, .-FlashPageProgMsbFFData
@@ -5846,43 +6072,41 @@ FlashPageProgMsbFFData:
FlashReadSlc2KPages:
stp x29, x30, [sp, -128]!
add x29, sp, 0
- stp x25, x26, [sp,64]
- mov w25, w1
- adrp x1, .LANCHOR1+265
- stp x21, x22, [sp,32]
stp x23, x24, [sp,48]
+ mov w24, w1
+ adrp x1, .LANCHOR1+481
+ stp x21, x22, [sp,32]
adrp x21, .LANCHOR0
adrp x23, .LC15
- adrp x24, .LC17
- ldrb w26, [x1,#:lo12:.LANCHOR1+265]
+ stp x25, x26, [sp,64]
+ add x21, x21, :lo12:.LANCHOR0
+ ldrb w25, [x1,#:lo12:.LANCHOR1+481]
stp x19, x20, [sp,16]
stp x27, x28, [sp,80]
+ mov w26, w2
mov x19, x0
- mov w27, w2
mov w22, 0
- add x21, x21, :lo12:.LANCHOR0
+ add x27, x21, 1676
add x23, x23, :lo12:.LC15
- add x24, x24, :lo12:.LC17
-.L891:
- cmp w22, w25
- beq .L925
- mov w1, w27
- sub w4, w25, w22
+.L937:
+ cmp w22, w24
+ beq .L971
+ mov w1, w26
+ sub w4, w24, w22
mov x0, x19
add x2, x29, 124
add x3, x29, 120
bl LogAddr2PhyAddr
ldr w0, [x29,120]
adrp x5, .LANCHOR0
- ldrb w1, [x21,1676]
+ ldrb w1, [x21,1672]
cmp w0, w1
- bcc .L892
+ bcc .L938
mov w0, -1
str w0, [x19]
- b .L893
-.L892:
- add x0, x21, x0, uxtw
- ldrb w28, [x0,1680]
+ b .L939
+.L938:
+ ldrb w28, [x27,w0,uxtw]
str x5, [x29,96]
mov w0, w28
bl NandcWaitFlashReady
@@ -5896,7 +6120,7 @@ FlashReadSlc2KPages:
ldr x3, [x19,8]
mov w1, 0
ldr x4, [x19,16]
- mov w2, w26
+ mov w2, w25
mov w0, w28
bl NandcXferData
mov w6, w0
@@ -5908,7 +6132,7 @@ FlashReadSlc2KPages:
bl FlashReadCmd
ldr x0, [x19,8]
mov w1, 0
- mov w2, w26
+ mov w2, w25
cmp x0, xzr
add x3, x0, 2048
ldr x0, [x19,16]
@@ -5926,64 +6150,65 @@ FlashReadSlc2KPages:
add x0, x5, :lo12:.LANCHOR0
cmp w20, w6
csel w3, w20, w6, cs
- ldrb w0, [x0,4044]
+ ldrb w0, [x0,4045]
add w0, w0, w0, lsl 1
cmp w3, w0, lsr 2
- bls .L896
+ bls .L942
cmn w3, #1
mov w0, 256
csel w3, w3, w0, eq
-.L896:
+.L942:
cmp w3, 256
- beq .L907
+ beq .L953
cmn w3, #1
- bne .L897
-.L907:
+ bne .L943
+.L953:
str w3, [x19]
- b .L899
-.L897:
+ b .L945
+.L943:
str wzr, [x19]
-.L899:
+.L945:
ldr x0, [x19,16]
- cbz x0, .L900
+ cbz x0, .L946
ldr w1, [x0,12]
cmn w1, #1
- bne .L900
+ bne .L946
ldr w1, [x0,8]
cmn w1, #1
- bne .L900
+ bne .L946
ldr w0, [x0]
cmn w0, #1
- beq .L900
+ beq .L946
str w1, [x19]
-.L900:
+.L946:
ldr w3, [x19]
cmn w3, #1
- bne .L893
+ bne .L939
add x5, x5, :lo12:.LANCHOR0
ldr w1, [x19,4]
mov x0, x23
- ldrb w2, [x5,4044]
+ ldrb w2, [x5,4045]
bl printk
ldr x1, [x19,8]
- cbz x1, .L902
+ cbz x1, .L948
adrp x0, .LC16
mov w2, 4
add x0, x0, :lo12:.LC16
mov w3, 8
bl rknand_print_hex
-.L902:
+.L948:
ldr x1, [x19,16]
- cbz x1, .L893
+ cbz x1, .L939
+ adrp x0, .LC17
mov w2, 4
- mov x0, x24
+ add x0, x0, :lo12:.LC17
mov w3, w2
bl rknand_print_hex
-.L893:
+.L939:
add w22, w22, 1
add x19, x19, 56
- b .L891
-.L925:
+ b .L937
+.L971:
mov w0, 0
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -5997,375 +6222,358 @@ FlashReadSlc2KPages:
.global FlashReadPages
.type FlashReadPages, %function
FlashReadPages:
- stp x29, x30, [sp, -176]!
- adrp x3, .LANCHOR1+265
+ stp x29, x30, [sp, -160]!
+ adrp x3, .LANCHOR1+481
add x29, sp, 0
- stp x21, x22, [sp,32]
- ldrb w3, [x3,#:lo12:.LANCHOR1+265]
- adrp x22, .LANCHOR0
- str w3, [x29,148]
- add x3, x22, :lo12:.LANCHOR0
- stp x25, x26, [sp,64]
stp x19, x20, [sp,16]
+ adrp x19, .LANCHOR0
+ ldrb w3, [x3,#:lo12:.LANCHOR1+481]
+ add x19, x19, :lo12:.LANCHOR0
+ str w3, [x29,136]
stp x23, x24, [sp,48]
- stp x27, x28, [sp,80]
- str w1, [x29,144]
+ stp x25, x26, [sp,64]
+ ldrb w3, [x19,32]
mov x26, x0
- ldrb w4, [x3,32]
- ldrb w23, [x3,24]
- str w2, [x29,140]
- str w4, [x29,136]
- cbz w23, .L966
+ ldrb w23, [x19,24]
+ stp x21, x22, [sp,32]
+ stp x27, x28, [sp,80]
+ str w1, [x29,132]
+ str w2, [x29,128]
+ str w3, [x29,124]
+ cbz w23, .L1012
bl FlashReadSlc2KPages
- b .L1015
-.L966:
+ b .L1061
+.L1012:
+ add x0, x19, 1676
+ str x0, [x29,112]
adrp x0, .LC15
mov w25, w23
add x0, x0, :lo12:.LC15
- str x0, [x29,128]
+ str x0, [x29,104]
adrp x0, .LC17
add x0, x0, :lo12:.LC17
- str x0, [x29,120]
- adrp x0, .LC18
- add x0, x0, :lo12:.LC18
- str x0, [x29,112]
-.L927:
- ldr w0, [x29,144]
+ str x0, [x29,96]
+.L973:
+ ldr w0, [x29,132]
cmp w25, w0
- bcs .L1017
+ bcs .L1063
mov w27, 56
- ldr w0, [x29,144]
- ldr w1, [x29,140]
- add x2, x29, 172
+ ldr w0, [x29,132]
+ ldr w1, [x29,128]
+ add x2, x29, 156
umull x27, w25, w27
sub w4, w0, w25
- add x3, x29, 168
- add x21, x26, x27
- mov x0, x21
- ldr w28, [x21,4]
+ add x3, x29, 152
+ add x22, x26, x27
+ mov x0, x22
+ ldr w28, [x22,4]
bl LogAddr2PhyAddr
- add x1, x22, :lo12:.LANCHOR0
- mov w20, w0
- ldr w0, [x29,168]
- ldrb w2, [x1,1676]
- cmp w0, w2
- bcc .L929
+ ldrb w1, [x19,1672]
+ mov w21, w0
+ ldr w0, [x29,152]
+ cmp w0, w1
+ bcc .L975
mov w0, -1
str w0, [x26,x27]
- b .L930
-.L929:
- add x0, x1, x0, uxtw
+ b .L976
+.L975:
+ ldr x1, [x29,112]
adrp x24, .LANCHOR2
- ldrb w19, [x0,1680]
+ ldrb w20, [x1,w0,uxtw]
add x0, x24, :lo12:.LANCHOR2
- str x1, [x29,152]
- ldrb w0, [x0,720]
+ ldrb w0, [x0,728]
cmp w0, wzr
- mov w0, w19
- csel w20, w20, wzr, ne
+ mov w0, w20
+ csel w21, w21, wzr, ne
bl NandcWaitFlashReady
- ldr x1, [x29,152]
- ldr x0, [x1,1912]
- ldrb w2, [x0,19]
- sub w0, w2, #1
+ ldr x0, [x19,1912]
+ ldrb w1, [x0,19]
+ sub w0, w1, #1
uxtb w0, w0
- cmp w0, 6
- bhi .L932
- add x1, x1, 4056
- sxtw x0, w19
- add x1, x1, x0
- cmp w2, 7
- ldrb w3, [x1,12]
- bne .L933
- ldrb w3, [x1,20]
-.L933:
- add x1, x24, :lo12:.LANCHOR2
- add x0, x1, x0
- ldrb w0, [x0,560]
+ cmp w0, 7
+ bhi .L978
+ sub w1, w1, #7
+ add x0, x19, 4056
+ sxtw x2, w20
+ add x0, x0, x2
+ uxtb w1, w1
+ cmp w1, 1
+ ldrb w3, [x0,12]
+ bhi .L979
+ ldrb w3, [x0,20]
+.L979:
+ add x0, x24, :lo12:.LANCHOR2
+ add x2, x0, x2
+ ldrb w0, [x2,560]
cmp w0, w3
- beq .L932
- add x2, x22, :lo12:.LANCHOR0
- mov w0, w19
- add x2, x2, 4060
- ldrb w1, [x2,-3]
+ beq .L978
+ ldrb w1, [x19,4057]
+ mov w0, w20
+ add x2, x19, 4060
bl HynixSetRRPara
-.L932:
- mov w0, w19
+.L978:
+ mov w0, w20
bl NandcFlashCs
- ldr w0, [x29,140]
+ ldr w0, [x29,128]
cmp w0, 1
cset w0, eq
orr w0, w0, w28, lsr 31
- str w0, [x29,152]
- cbz w0, .L934
- add x0, x22, :lo12:.LANCHOR0
- ldrb w0, [x0,136]
- cbz w0, .L934
- mov w0, w19
+ str w0, [x29,140]
+ cbz w0, .L980
+ ldrb w0, [x19,4044]
+ cbz w0, .L980
+ mov w0, w20
bl flash_enter_slc_mode
- b .L935
-.L934:
- mov w0, w19
+ b .L981
+.L980:
+ mov w0, w20
bl flash_exit_slc_mode
-.L935:
- cmp w19, 255
- ldr w1, [x29,172]
- bne .L973
+.L981:
+ cmp w20, 255
+ ldr w1, [x29,156]
+ bne .L1019
cmn w1, #1
cset w0, ne
- cbz w0, .L967
-.L973:
- cbz w20, .L939
- add x0, x22, :lo12:.LANCHOR0
- ldr w2, [x0,28]
- mov w0, w19
+ cbz w0, .L1013
+.L1019:
+ cbz w21, .L985
+ ldr w2, [x19,28]
+ mov w0, w20
add w2, w1, w2
bl FlashReadDpCmd
- b .L940
-.L939:
- mov w0, w19
+ b .L986
+.L985:
+ mov w0, w20
bl FlashReadCmd
- b .L940
-.L967:
- mov w20, w0
-.L937:
- ldrb w2, [x29,148]
- mov w0, w19
- ldr x3, [x21,8]
+ b .L986
+.L1013:
+ mov w21, w0
+.L983:
+ ldrb w2, [x29,136]
+ mov w0, w20
+ ldr x3, [x22,8]
mov w1, 0
- ldr x4, [x21,16]
+ ldr x4, [x22,16]
bl NandcXferData
cmn w0, #1
mov w28, w0
- bne .L941
- add x0, x22, :lo12:.LANCHOR0
- ldrb w1, [x0,32]
- cbz w1, .L941
- strb wzr, [x0,32]
- mov w20, 0
- b .L935
-.L941:
- cbz w20, .L942
- add x0, x22, :lo12:.LANCHOR0
- ldr w1, [x29,172]
- ldr w2, [x0,28]
- mov w0, w19
+ bne .L987
+ ldrb w0, [x19,32]
+ cbz w0, .L987
+ strb wzr, [x19,32]
+ mov w21, 0
+ b .L981
+.L987:
+ cbz w21, .L988
+ ldr w2, [x19,28]
+ mov w0, w20
+ ldr w1, [x29,156]
add w1, w2, w1
bl FlashReadDpDataOutCmd
add w0, w25, 1
mov w4, 56
- ldrb w2, [x29,148]
+ ldrb w2, [x29,136]
mov w1, 0
umull x4, w0, w4
- mov w0, w19
+ mov w0, w20
add x4, x26, x4
ldr x3, [x4,8]
ldr x4, [x4,16]
bl NandcXferData
cmn w0, #1
mov w23, w0
- csel w20, w20, wzr, ne
-.L942:
- mov w0, w19
+ csel w21, w21, wzr, ne
+.L988:
+ mov w0, w20
bl NandcFlashDeCs
- add x6, x22, :lo12:.LANCHOR0
- ldrb w0, [x29,136]
+ ldrb w0, [x29,124]
cmn w28, #1
- strb w0, [x6,32]
- bne .L949
+ strb w0, [x19,32]
+ bne .L995
add x0, x24, :lo12:.LANCHOR2
ldrb w0, [x0,572]
- cbnz w0, .L944
-.L948:
+ cbnz w0, .L990
+.L994:
add x0, x24, :lo12:.LANCHOR2
- ldr x20, [x0,664]
- cbnz x20, .L945
- b .L1018
-.L944:
- ldr x0, [x6,3976]
+ ldr x21, [x0,672]
+ cbnz x21, .L991
+ b .L1064
+.L990:
+ ldr x0, [x19,3976]
mov w4, 1
- ldr w1, [x29,172]
- ldr x2, [x21,8]
- ldr x3, [x21,16]
- ldr w20, [x0,304]
- mov w0, w19
- str x6, [x29,104]
+ ldr w1, [x29,156]
+ ldr x2, [x22,8]
+ ldr x3, [x22,16]
+ ldr w21, [x0,304]
+ mov w0, w20
bl FlashDdrTunningRead
cmn w0, #1
mov w28, w0
- beq .L947
- ldr x6, [x29,104]
- ldrb w0, [x6,4044]
+ beq .L993
+ ldrb w0, [x19,4045]
cmp w28, w0, lsr 1
- bls .L969
-.L947:
- lsr w0, w20, 8
+ bls .L1015
+.L993:
+ lsr w0, w21, 8
bl NandcSetDdrPara
cmn w28, #1
- beq .L948
- b .L969
-.L945:
- ldr w1, [x29,172]
- mov w0, w19
- ldr x2, [x21,8]
- ldr x3, [x21,16]
- blr x20
+ beq .L994
+ b .L1015
+.L991:
+ ldr w1, [x29,156]
+ mov w0, w20
+ ldr x2, [x22,8]
+ ldr x3, [x22,16]
+ blr x21
cmn w0, #1
mov w28, w0
- mov w20, 0
- bne .L950
- add x2, x22, :lo12:.LANCHOR0
- ldr x0, [x2,1912]
+ mov w21, 0
+ bne .L996
+ ldr x0, [x19,1912]
ldrb w0, [x0,19]
sub w0, w0, #1
uxtb w0, w0
- cmp w0, 6
- bhi .L951
- ldrb w1, [x2,4057]
- mov w0, w19
- add x2, x2, 4060
- mov w3, w20
+ cmp w0, 7
+ bhi .L997
+ ldrb w1, [x19,4057]
+ mov w0, w20
+ add x2, x19, 4060
+ mov w3, w21
bl HynixSetRRPara
-.L951:
- ldr w1, [x29,172]
- mov w0, w19
- ldr x2, [x21,8]
- mov w20, 0
- ldr x3, [x21,16]
+.L997:
+ ldr w1, [x29,156]
+ mov w0, w20
+ ldr x2, [x22,8]
+ mov w21, 0
+ ldr x3, [x22,16]
bl FlashReadRawPage
mov w28, w0
- add x4, x22, :lo12:.LANCHOR0
- ldr x0, [x29,112]
- ldr w1, [x21,4]
+ ldr w1, [x22,4]
+ adrp x0, .LC18
+ ldrb w2, [x19,4045]
+ add x0, x0, :lo12:.LC18
mov w3, w28
- str x4, [x29,104]
- ldrb w2, [x4,4044]
bl printk
cmn w28, #1
- ldr x4, [x29,104]
- bne .L950
- ldrb w0, [x4,136]
- cbz w0, .L950
- ldr w0, [x29,152]
- cbz w0, .L952
- mov w0, w19
+ bne .L996
+ ldrb w0, [x19,4044]
+ cbz w0, .L996
+ ldr w0, [x29,140]
+ cbz w0, .L998
+ mov w0, w20
bl flash_enter_slc_mode
- b .L953
-.L952:
- mov w0, w19
+ b .L999
+.L998:
+ mov w0, w20
bl flash_exit_slc_mode
-.L953:
+.L999:
add x0, x24, :lo12:.LANCHOR2
- ldr w1, [x29,172]
- ldr x2, [x21,8]
- mov w20, 0
- ldr x3, [x21,16]
- ldr x4, [x0,664]
- mov w0, w19
+ ldr w1, [x29,156]
+ ldr x2, [x22,8]
+ mov w21, 0
+ ldr x3, [x22,16]
+ ldr x4, [x0,672]
+ mov w0, w20
blr x4
mov w28, w0
- b .L950
-.L1018:
- ldr w1, [x29,172]
- mov w0, w19
- ldr x2, [x21,8]
- ldr x3, [x21,16]
+ b .L996
+.L1064:
+ ldr w1, [x29,156]
+ mov w0, w20
+ ldr x2, [x22,8]
+ ldr x3, [x22,16]
bl FlashReadRawPage
mov w28, w0
- b .L950
-.L969:
- mov w20, 0
-.L949:
- add x0, x22, :lo12:.LANCHOR0
- ldrb w0, [x0,4044]
+ b .L996
+.L1015:
+ mov w21, 0
+.L995:
+ ldrb w0, [x19,4045]
add w0, w0, w0, lsl 1
cmp w28, w0, lsr 2
- bls .L950
+ bls .L996
add x0, x24, :lo12:.LANCHOR2
- ldr x0, [x0,664]
+ ldr x0, [x0,672]
cmp x0, xzr
mov w0, 256
csel w28, w28, w0, ne
-.L950:
+.L996:
cmp w28, 256
- beq .L974
+ beq .L1020
cmn w28, #1
- bne .L954
-.L974:
+ bne .L1000
+.L1020:
str w28, [x26,x27]
- b .L956
-.L954:
+ b .L1002
+.L1000:
str wzr, [x26,x27]
-.L956:
+.L1002:
ldr w3, [x26,x27]
cmn w3, #1
- bne .L958
- add x2, x22, :lo12:.LANCHOR0
- ldr w1, [x21,4]
- ldr x0, [x29,128]
- ldrb w2, [x2,4044]
+ bne .L1004
+ ldr w1, [x22,4]
+ ldr x0, [x29,104]
+ ldrb w2, [x19,4045]
bl printk
- ldr x1, [x21,16]
- cbz x1, .L958
+ ldr x1, [x22,16]
+ cbz x1, .L1004
mov w2, 4
- ldr x0, [x29,120]
+ ldr x0, [x29,96]
mov w3, w2
bl rknand_print_hex
-.L958:
- cbz w20, .L960
- add x0, x22, :lo12:.LANCHOR0
- ldrb w0, [x0,4044]
+.L1004:
+ cbz w21, .L1006
+ ldrb w0, [x19,4045]
add w0, w0, w0, lsl 1
cmp w23, w0, lsr 2
- bls .L961
+ bls .L1007
add x24, x24, :lo12:.LANCHOR2
- ldr x0, [x24,664]
+ ldr x0, [x24,672]
cmp x0, xzr
mov w0, 256
csel w23, w23, w0, ne
-.L961:
+.L1007:
add w0, w25, 1
mov w1, 56
cmp w23, 256
umull x0, w0, w1
- beq .L975
+ beq .L1021
cmn w23, #1
- bne .L962
-.L975:
+ bne .L1008
+.L1021:
str w23, [x26,x0]
- b .L960
-.L962:
+ b .L1006
+.L1008:
str wzr, [x26,x0]
-.L960:
- ldr w0, [x29,152]
- add w25, w25, w20
- cbz w0, .L930
- add x0, x22, :lo12:.LANCHOR0
- ldrb w0, [x0,136]
- cbz w0, .L930
- mov w0, w19
+.L1006:
+ ldr w0, [x29,140]
+ add w25, w25, w21
+ cbz w0, .L976
+ ldrb w0, [x19,4044]
+ cbz w0, .L976
+ mov w0, w20
bl flash_exit_slc_mode
-.L930:
+.L976:
add w25, w25, 1
- b .L927
-.L1017:
+ b .L973
+.L1063:
mov w0, 0
- b .L1015
-.L940:
- mov w0, w19
+ b .L1061
+.L986:
+ mov w0, w20
bl NandcWaitFlashReady
- cbz w20, .L937
- ldr w1, [x29,172]
- mov w0, w19
+ cbz w21, .L983
+ ldr w1, [x29,156]
+ mov w0, w20
bl FlashReadDpDataOutCmd
- b .L937
-.L1015:
+ b .L983
+.L1061:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
ldp x25, x26, [sp,64]
ldp x27, x28, [sp,80]
- ldp x29, x30, [sp], 176
+ ldp x29, x30, [sp], 160
ret
.size FlashReadPages, .-FlashReadPages
.align 2
@@ -6387,7 +6595,7 @@ FlashLoadFactorBbt:
ldrh w1, [x0,4028]
add x19, x23, :lo12:.LANCHOR2
ldrh w21, [x0,4030]
- add x0, x19, 728
+ add x0, x19, 736
mov w28, 0
adrp x26, .LC19
add x26, x26, :lo12:.LC19
@@ -6396,25 +6604,25 @@ FlashLoadFactorBbt:
uxth w21, w21
bl ftl_memset
add w25, w21, w27
- ldr x0, [x19,696]
+ ldr x0, [x19,704]
str x0, [x29,152]
mov w19, w28
sub w0, w21, #12
str xzr, [x29,144]
uxth w25, w25
str w0, [x29,124]
-.L1020:
+.L1066:
add x1, x22, :lo12:.LANCHOR0
- ldrb w1, [x1,1676]
+ ldrb w1, [x1,1672]
cmp w1, w19
- bls .L1030
+ bls .L1076
mul w3, w19, w21
mov w20, w25
mov w4, 61664
-.L1021:
+.L1067:
ldr w0, [x29,124]
cmp w20, w0
- ble .L1023
+ ble .L1069
add w1, w3, w20
add x0, x29, 136
lsl w1, w1, 10
@@ -6428,13 +6636,13 @@ FlashLoadFactorBbt:
ldr x3, [x29,112]
cmn w0, #1
ldr x4, [x29,104]
- beq .L1022
+ beq .L1068
add x24, x23, :lo12:.LANCHOR2
- ldr x0, [x24,696]
+ ldr x0, [x24,704]
ldrh w0, [x0]
cmp w0, w4
- bne .L1022
- add x24, x24, 728
+ bne .L1068
+ add x24, x24, 736
mov x0, x26
mov w1, w19
mov w2, w20
@@ -6442,20 +6650,20 @@ FlashLoadFactorBbt:
bl printk
strh w20, [x24,w19,sxtw 1]
uxth w28, w28
- b .L1023
-.L1022:
+ b .L1069
+.L1068:
sub w20, w20, #1
uxth w20, w20
- b .L1021
-.L1023:
+ b .L1067
+.L1069:
add x1, x22, :lo12:.LANCHOR0
add w19, w19, 1
uxtb w19, w19
- ldrb w1, [x1,1676]
+ ldrb w1, [x1,1672]
cmp w1, w28
csel w27, w27, wzr, ne
- b .L1020
-.L1030:
+ b .L1066
+.L1076:
mov w0, w27
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -6489,16 +6697,16 @@ FlashReadFacBbtData:
mov x21, x4
mov w26, 61664
mul w3, w3, w1
- ldr x0, [x0,696]
+ ldr x0, [x0,704]
str x0, [x29,104]
uxth w3, w3
sub w20, w3, #1
sub w19, w3, #16
mul w24, w23, w3
uxth w20, w20
-.L1032:
+.L1078:
cmp w20, w19
- ble .L1040
+ ble .L1086
add w0, w20, w24
mov w1, 1
lsl w0, w0, 10
@@ -6508,26 +6716,26 @@ FlashReadFacBbtData:
bl FlashReadPages
ldr w0, [x29,88]
cmn w0, #1
- beq .L1033
+ beq .L1079
add x0, x21, :lo12:.LANCHOR2
- ldr x0, [x0,696]
+ ldr x0, [x0,704]
ldrh w0, [x0]
cmp w0, w26
- bne .L1033
+ bne .L1079
mov w0, w22
- cbz x22, .L1034
+ cbz x22, .L1080
mov x0, x22
mov w1, w23
mov w2, w25
bl FlashReadFacBbtData.part.6
- b .L1034
-.L1033:
+ b .L1080
+.L1079:
sub w20, w20, #1
uxth w20, w20
- b .L1032
-.L1040:
+ b .L1078
+.L1086:
mov w0, -1
-.L1034:
+.L1080:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -6551,43 +6759,43 @@ FlashGetBadBlockList:
ldrh w19, [x0,14]
add x0, x20, :lo12:.LANCHOR2
mul w19, w2, w19
- ldr x0, [x0,688]
+ ldr x0, [x0,696]
uxth w19, w19
add w2, w19, 7
lsr w2, w2, 3
bl FlashReadFacBbtData
cmn w0, #1
- bne .L1042
-.L1046:
+ bne .L1088
+.L1092:
mov w1, 0
- b .L1043
-.L1042:
+ b .L1089
+.L1088:
mov w2, 0
lsr w0, w19, 4
mov w1, w2
sub w19, w19, #1
mov w5, 1
-.L1044:
+.L1090:
cmp w2, w19
- bge .L1043
+ bge .L1089
add x3, x20, :lo12:.LANCHOR2
ubfx x4, x2, 5, 11
- ldr x6, [x3,688]
+ ldr x6, [x3,696]
lsl w3, w5, w2
ldr w4, [x6,x4,lsl 2]
tst w3, w4
- beq .L1045
+ beq .L1091
add w3, w1, 1
ubfiz x1, x1, 1, 16
strh w2, [x21,x1]
uxth w1, w3
-.L1045:
+.L1091:
cmp w1, w0
- bcs .L1046
+ bcs .L1092
add w2, w2, 1
uxth w2, w2
- b .L1044
-.L1043:
+ b .L1090
+.L1089:
ubfiz x1, x1, 1, 16
mov w0, -1
ldp x19, x20, [sp,16]
@@ -6605,23 +6813,23 @@ FlashProgSlc2KPages:
add x29, sp, 0
stp x23, x24, [sp,48]
mov w23, w1
- adrp x1, .LANCHOR1+265
+ adrp x1, .LANCHOR1+481
stp x21, x22, [sp,32]
- stp x25, x26, [sp,64]
adrp x22, .LANCHOR0
- ldrb w26, [x1,#:lo12:.LANCHOR1+265]
+ mov w24, w2
+ stp x25, x26, [sp,64]
+ add x22, x22, :lo12:.LANCHOR0
+ ldrb w26, [x1,#:lo12:.LANCHOR1+481]
stp x27, x28, [sp,80]
stp x19, x20, [sp,16]
- mov w24, w2
mov w27, w3
mov x19, x0
mov x21, x0
mov w25, 0
- add x22, x22, :lo12:.LANCHOR0
- mov w28, -1
-.L1052:
+ add x28, x22, 1676
+.L1098:
cmp w25, w23
- beq .L1081
+ beq .L1127
mov w1, w24
sub w4, w23, w25
mov x0, x21
@@ -6629,14 +6837,14 @@ FlashProgSlc2KPages:
add x3, x29, 100
bl LogAddr2PhyAddr
ldr w0, [x29,100]
- ldrb w1, [x22,1676]
+ ldrb w1, [x22,1672]
cmp w0, w1
- bcc .L1053
- str w28, [x21]
- b .L1054
-.L1053:
- add x0, x22, x0, uxtw
- ldrb w20, [x0,1680]
+ bcc .L1099
+ mov w0, -1
+ str w0, [x21]
+ b .L1100
+.L1099:
+ ldrb w20, [x28,w0,uxtw]
mov w0, w20
bl NandcWaitFlashReady
mov w0, w20
@@ -6689,36 +6897,37 @@ FlashProgSlc2KPages:
ldr w1, [x29,96]
mov w0, w20
bl FlashReadStatus
- tbz x0, 0, .L1057
- str w28, [x21]
-.L1057:
+ tbz x0, 0, .L1103
+ mov w0, -1
+ str w0, [x21]
+.L1103:
mov w0, w20
bl NandcFlashDeCs
-.L1054:
+.L1100:
add w25, w25, 1
add x21, x21, 56
- b .L1052
-.L1081:
+ b .L1098
+.L1127:
mov w21, 0
- cbz w27, .L1079
+ cbz w27, .L1125
adrp x25, .LC23
adrp x26, .LC22
adrp x27, .LC21
add x25, x25, :lo12:.LC23
add x26, x26, :lo12:.LC22
add x27, x27, :lo12:.LC21
-.L1080:
+.L1126:
cmp w21, w23
- beq .L1079
+ beq .L1125
ldr w0, [x19]
cmn w0, #1
- bne .L1060
+ bne .L1106
adrp x0, .LC20
ldr w1, [x19,4]
add x0, x0, :lo12:.LC20
bl printk
- b .L1061
-.L1060:
+ b .L1107
+.L1106:
adrp x20, .LANCHOR2
sub w4, w23, w21
add x22, x20, :lo12:.LANCHOR2
@@ -6727,62 +6936,62 @@ FlashProgSlc2KPages:
add x2, x29, 96
mov x0, x19
bl LogAddr2PhyAddr
- ldr x0, [x22,704]
+ ldr x0, [x22,712]
mov x1, x19
mov x2, 56
str wzr, [x0]
- ldr x0, [x22,712]
+ ldr x0, [x22,720]
str wzr, [x0]
add x0, x29, 104
bl memcpy
- ldr x0, [x22,704]
+ ldr x0, [x22,712]
mov w1, 1
str x0, [x29,112]
mov w2, w24
- ldr x0, [x22,712]
+ ldr x0, [x22,720]
str x0, [x29,120]
add x0, x29, 104
bl FlashReadPages
ldr w22, [x29,104]
cmn w22, #1
- bne .L1062
+ bne .L1108
ldr w1, [x19,4]
mov x0, x27
bl printk
str w22, [x19]
-.L1062:
+.L1108:
ldr x0, [x19,16]
- cbz x0, .L1063
+ cbz x0, .L1109
ldr w2, [x0]
add x0, x20, :lo12:.LANCHOR2
- ldr x0, [x0,712]
+ ldr x0, [x0,720]
ldr w3, [x0]
cmp w2, w3
- beq .L1063
+ beq .L1109
ldr w1, [x19,4]
mov x0, x26
bl printk
mov w0, -1
str w0, [x19]
-.L1063:
+.L1109:
ldr x0, [x19,8]
- cbz x0, .L1061
+ cbz x0, .L1107
add x20, x20, :lo12:.LANCHOR2
ldr w2, [x0]
- ldr x0, [x20,704]
+ ldr x0, [x20,712]
ldr w3, [x0]
cmp w2, w3
- beq .L1061
+ beq .L1107
ldr w1, [x19,4]
mov x0, x25
bl printk
mov w0, -1
str w0, [x19]
-.L1061:
+.L1107:
add w21, w21, 1
add x19, x19, 56
- b .L1080
-.L1079:
+ b .L1126
+.L1125:
mov w0, 0
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -6797,7 +7006,7 @@ FlashProgSlc2KPages:
.type FlashProgPages, %function
FlashProgPages:
stp x29, x30, [sp, -192]!
- adrp x6, .LANCHOR1+265
+ adrp x6, .LANCHOR1+481
add x29, sp, 0
stp x21, x22, [sp,32]
adrp x21, .LANCHOR0
@@ -6813,91 +7022,92 @@ FlashProgPages:
ldr x5, [x4,1912]
mov w23, w2
ldrb w4, [x4,24]
- ldrb w27, [x6,#:lo12:.LANCHOR1+265]
+ ldrb w27, [x6,#:lo12:.LANCHOR1+481]
ldrb w5, [x5,19]
- cbz w4, .L1083
+ cbz w4, .L1129
bl FlashProgSlc2KPages
- b .L1084
-.L1083:
+ b .L1130
+.L1129:
sub w0, w5, #1
adrp x28, .LANCHOR2
str w0, [x29,120]
add x0, x28, :lo12:.LANCHOR2
str x0, [x29,112]
-.L1135:
+.L1181:
cmp w22, w25
- bcs .L1136
+ bcs .L1182
mov w20, 56
- mov w1, w23
- add x2, x29, 128
sub w4, w25, w22
+ add x2, x29, 128
+ mov w1, w23
umull x20, w22, w20
add x3, x29, 132
add x26, x19, x20
mov x0, x26
bl LogAddr2PhyAddr
mov w24, w0
- add x1, x21, :lo12:.LANCHOR0
+ add x2, x21, :lo12:.LANCHOR0
ldr w0, [x29,132]
- ldrb w2, [x1,1676]
- cmp w0, w2
- bcc .L1085
+ ldrb w4, [x2,1672]
+ cmp w0, w4
+ bcc .L1131
mov w0, -1
str w0, [x19,x20]
- b .L1086
-.L1085:
- add x3, x28, :lo12:.LANCHOR2
- uxtw x0, w0
- ldrb w3, [x3,648]
- cmp w3, wzr
- mov x3, 24
+ b .L1132
+.L1131:
+ add x1, x28, :lo12:.LANCHOR2
+ add x3, x2, 1716
+ mov x5, 24
+ ldrb w1, [x1,656]
+ cmp w1, wzr
+ uxtw x1, w0
csel w24, w24, wzr, ne
- madd x0, x0, x3, x1
- ldr x0, [x0,1728]
- cbz x0, .L1088
- cmp w2, 1
- bne .L1089
- ldr x0, [x1,3976]
+ madd x0, x1, x5, x3
+ ldr x0, [x0,8]
+ cbz x0, .L1134
+ cmp w4, 1
+ bne .L1135
+ ldr x0, [x2,3976]
bl NandcIqrWaitFlashReady
-.L1089:
+.L1135:
ldrb w0, [x29,132]
bl FlashWaitCmdDone
-.L1088:
+.L1134:
add x0, x21, :lo12:.LANCHOR0
ldr w2, [x29,132]
mov x1, 24
- add x0, x0, 1720
+ add x0, x0, 1716
madd x0, x2, x1, x0
ldr w1, [x29,128]
str x26, [x0,8]
str xzr, [x0,16]
str w1, [x0,4]
- cbz w24, .L1090
+ cbz w24, .L1136
add w1, w22, 1
mov w3, 56
umull x1, w1, w3
add x1, x19, x1
str x1, [x0,16]
-.L1090:
+.L1136:
add x1, x21, :lo12:.LANCHOR0
- add x0, x1, x2
- ldrb w20, [x0,1680]
+ add x0, x1, 1676
+ ldrb w20, [x0,x2]
mov x0, 24
madd x2, x2, x0, x1
- ldrb w0, [x1,1676]
- strb w20, [x2,1720]
+ ldrb w0, [x1,1672]
+ strb w20, [x2,1716]
cmp w0, 1
- bne .L1091
+ bne .L1137
mov w0, w20
bl NandcWaitFlashReady
- b .L1092
-.L1091:
+ b .L1138
+.L1137:
mov w0, w20
str x1, [x29,104]
bl NandcFlashCs
ldr x1, [x29,104]
ldr w0, [x29,132]
- add x1, x1, 1688
+ add x1, x1, 1684
ldr w0, [x1,x0,lsl 2]
ldr w1, [x29,128]
cmp w0, wzr
@@ -6906,35 +7116,35 @@ FlashProgPages:
bl FlashWaitReadyEN
mov w0, w20
bl NandcFlashDeCs
-.L1092:
+.L1138:
ldr w0, [x29,120]
- cmp w0, 6
- bhi .L1093
+ cmp w0, 7
+ bhi .L1139
ldr x0, [x29,112]
add x0, x0, x20, sxtw
ldrb w0, [x0,560]
- cbz w0, .L1093
+ cbz w0, .L1139
add x2, x21, :lo12:.LANCHOR0
mov w0, w20
add x2, x2, 4060
mov w3, 0
ldrb w1, [x2,-3]
bl HynixSetRRPara
-.L1093:
+.L1139:
mov w0, w20
bl NandcFlashCs
cmp w23, 1
- bne .L1094
+ bne .L1140
add x0, x21, :lo12:.LANCHOR0
- ldrb w0, [x0,136]
- cbz w0, .L1094
+ ldrb w0, [x0,4044]
+ cbz w0, .L1140
mov w0, w20
bl flash_enter_slc_mode
- b .L1095
-.L1094:
+ b .L1141
+.L1140:
mov w0, w20
bl flash_exit_slc_mode
-.L1095:
+.L1141:
ldr w1, [x29,128]
mov w0, w20
bl FlashProgFirstCmd
@@ -6944,13 +7154,13 @@ FlashProgPages:
mov w1, 1
mov w2, w27
bl NandcXferData
- cbz w24, .L1096
+ cbz w24, .L1142
ldr w1, [x29,128]
mov w0, w20
add x26, x21, :lo12:.LANCHOR0
bl FlashProgDpFirstCmd
ldr w1, [x29,132]
- add x0, x26, 1688
+ add x0, x26, 1684
ldr w0, [x0,x1,lsl 2]
ldr w1, [x29,128]
cmp w0, wzr
@@ -6972,45 +7182,46 @@ FlashProgPages:
ldr x3, [x4,8]
ldr x4, [x4,16]
bl NandcXferData
-.L1096:
+.L1142:
ldr w1, [x29,128]
mov w0, w20
add w22, w22, w24
bl FlashProgSecondCmd
mov w0, w20
bl NandcFlashDeCs
-.L1086:
+.L1132:
add w22, w22, 1
- b .L1135
-.L1136:
+ b .L1181
+.L1182:
add x21, x21, :lo12:.LANCHOR0
mov x20, 0
- mov x22, 24
+ add x22, x21, 1716
+ mov x24, 24
ldr x0, [x21,3976]
bl NandcIqrWaitFlashReady
-.L1098:
- ldrb w0, [x21,1676]
+.L1144:
+ ldrb w0, [x21,1672]
cmp w0, w20
- bls .L1137
+ bls .L1183
mov w0, w20
bl FlashWaitCmdDone
cmp w23, 1
- bne .L1099
- ldrb w0, [x21,136]
- cbz w0, .L1099
- madd x0, x20, x22, x21
- ldrb w0, [x0,1720]
+ bne .L1145
+ ldrb w0, [x21,4044]
+ cbz w0, .L1145
+ mul x0, x20, x24
+ ldrb w0, [x0,x22]
bl flash_exit_slc_mode
-.L1099:
+.L1145:
add x20, x20, 1
- b .L1098
-.L1137:
+ b .L1144
+.L1183:
ldr w0, [x29,124]
- cbnz w0, .L1101
-.L1109:
+ cbnz w0, .L1147
+.L1155:
mov w0, 0
- b .L1084
-.L1101:
+ b .L1130
+.L1147:
adrp x24, .LC23
adrp x26, .LC22
adrp x27, .LC21
@@ -7018,18 +7229,18 @@ FlashProgPages:
add x24, x24, :lo12:.LC23
add x26, x26, :lo12:.LC22
add x27, x27, :lo12:.LC21
-.L1102:
+.L1148:
cmp w21, w25
- beq .L1109
+ beq .L1155
ldr w0, [x19]
cmn w0, #1
- bne .L1103
+ bne .L1149
adrp x0, .LC20
ldr w1, [x19,4]
add x0, x0, :lo12:.LC20
bl printk
- b .L1104
-.L1103:
+ b .L1150
+.L1149:
adrp x20, .LANCHOR2
sub w4, w25, w21
add x22, x20, :lo12:.LANCHOR2
@@ -7038,62 +7249,62 @@ FlashProgPages:
add x2, x29, 128
mov x0, x19
bl LogAddr2PhyAddr
- ldr x0, [x22,704]
+ ldr x0, [x22,712]
mov x1, x19
mov x2, 56
str wzr, [x0]
- ldr x0, [x22,712]
+ ldr x0, [x22,720]
str wzr, [x0]
add x0, x29, 136
bl memcpy
- ldr x0, [x22,704]
+ ldr x0, [x22,712]
mov w1, 1
str x0, [x29,144]
mov w2, w23
- ldr x0, [x22,712]
+ ldr x0, [x22,720]
str x0, [x29,152]
add x0, x29, 136
bl FlashReadPages
ldr w22, [x29,136]
cmn w22, #1
- bne .L1105
+ bne .L1151
ldr w1, [x19,4]
mov x0, x27
bl printk
str w22, [x19]
-.L1105:
+.L1151:
ldr x0, [x19,16]
- cbz x0, .L1106
+ cbz x0, .L1152
ldr w2, [x0]
add x0, x20, :lo12:.LANCHOR2
- ldr x0, [x0,712]
+ ldr x0, [x0,720]
ldr w3, [x0]
cmp w2, w3
- beq .L1106
+ beq .L1152
ldr w1, [x19,4]
mov x0, x26
bl printk
mov w0, -1
str w0, [x19]
-.L1106:
+.L1152:
ldr x0, [x19,8]
- cbz x0, .L1104
+ cbz x0, .L1150
add x20, x20, :lo12:.LANCHOR2
ldr w2, [x0]
- ldr x0, [x20,704]
+ ldr x0, [x20,712]
ldr w3, [x0]
cmp w2, w3
- beq .L1104
+ beq .L1150
ldr w1, [x19,4]
mov x0, x24
bl printk
mov w0, -1
str w0, [x19]
-.L1104:
+.L1150:
add w21, w21, 1
add x19, x19, 56
- b .L1102
-.L1084:
+ b .L1148
+.L1130:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -7114,12 +7325,12 @@ FlashTestBlk.part.7:
uxth w20, w0
add x19, x19, :lo12:.LANCHOR2
lsl w20, w20, 10
- ldr x0, [x19,688]
+ ldr x0, [x19,696]
str x0, [x29,48]
add x0, x29, 96
str x0, [x29,56]
bl ftl_memset
- ldr x0, [x19,688]
+ ldr x0, [x19,696]
mov w1, 90
mov w2, 8
bl ftl_memset
@@ -7156,10 +7367,10 @@ FlashTestBlk:
ldr w2, [x0,#:lo12:.LANCHOR0+8]
mov w0, 0
cmp w1, w2
- bcc .L1140
+ bcc .L1186
mov w0, w1
bl FlashTestBlk.part.7
-.L1140:
+.L1186:
ldp x29, x30, [sp], 16
ret
.size FlashTestBlk, .-FlashTestBlk
@@ -7167,334 +7378,324 @@ FlashTestBlk:
.global FlashMakeFactorBbt
.type FlashMakeFactorBbt, %function
FlashMakeFactorBbt:
- stp x29, x30, [sp, -224]!
+ stp x29, x30, [sp, -240]!
adrp x2, .LANCHOR2
+ adrp x4, .LANCHOR0
add x29, sp, 0
add x0, x2, :lo12:.LANCHOR2
stp x19, x20, [sp,16]
- stp x21, x22, [sp,32]
stp x23, x24, [sp,48]
+ stp x21, x22, [sp,32]
stp x25, x26, [sp,64]
stp x27, x28, [sp,80]
- adrp x19, .LANCHOR0
+ mov x20, x4
str x2, [x29,136]
- ldr x0, [x0,696]
- mov w20, 0
- str x0, [x29,152]
- add x0, x19, :lo12:.LANCHOR0
+ ldr x0, [x0,704]
+ add x24, x20, :lo12:.LANCHOR0
+ str x0, [x29,160]
+ add x0, x4, :lo12:.LANCHOR0
+ mov w19, 0
ldrh w1, [x0,4028]
- ldrh w22, [x0,4030]
- ldrh w25, [x0,28]
- mul w22, w1, w22
+ ldrh w21, [x0,4030]
+ mul w21, w1, w21
ldr x1, [x0,1912]
- ldrb w0, [x0,24]
- uxth w22, w22
+ uxth w21, w21
ldrb w1, [x1,24]
+ str w1, [x29,144]
+ ldrh w1, [x0,28]
+ str w1, [x29,172]
+ ldrb w0, [x0,24]
+ ubfiz w1, w1, 1, 15
cmp w0, 1
- str w1, [x29,148]
+ ldr w0, [x29,172]
+ csel w0, w1, w0, eq
+ str w0, [x29,172]
adrp x0, .LC24
- ubfiz w1, w25, 1, 15
- add x0, x0, :lo12:.LC24
- csel w25, w1, w25, eq
mov w1, 1
+ add x0, x0, :lo12:.LC24
bl printk
ldr x0, [x29,136]
mov w1, 0
mov w2, 4096
add x0, x0, :lo12:.LANCHOR2
- ldr x0, [x0,696]
+ ldr x0, [x0,704]
bl ftl_memset
- lsr w0, w22, 4
- str w0, [x29,144]
- ldr w0, [x29,148]
+ lsr w0, w21, 4
+ str w0, [x29,168]
+ add x0, x24, 1676
+ str x0, [x29,120]
+ ldr w0, [x29,144]
and w0, w0, 1
- str w0, [x29,124]
- ldr w0, [x29,148]
- and w0, w0, 2
- uxtb w0, w0
- str w0, [x29,120]
- sub w0, w22, #1
+ str w0, [x29,116]
+ sub w0, w21, #1
uxth w0, w0
str w0, [x29,132]
-.L1144:
- add x23, x19, :lo12:.LANCHOR0
- ldrb w0, [x23,1676]
- cmp w0, w20
- bls .L1195
+.L1190:
+ ldrb w0, [x24,1672]
+ cmp w0, w19
+ bls .L1241
ldr x0, [x29,136]
- sxtw x24, w20
+ sxtw x23, w19
add x0, x0, :lo12:.LANCHOR2
- add x0, x0, 728
- ldrh w21, [x0,w20,sxtw 1]
- cbnz w21, .L1174
- ldrh w2, [x23,4036]
- mov w1, w21
- ldr x0, [x19,#:lo12:.LANCHOR0]
- add x23, x23, x24
+ add x0, x0, 736
+ ldrh w20, [x0,w19,sxtw 1]
+ cbnz w20, .L1220
+ ldrh w2, [x24,4036]
+ mov w1, w20
+ ldr x0, [x24]
+ mov w25, w20
lsl w2, w2, 9
- mov w26, w21
+ mov w22, w20
+ add x28, x24, 1684
bl ftl_memset
- ldrb w27, [x23,1680]
- ldr w0, [x29,148]
- mov w23, w21
- and w0, w0, 4
+ ldr x0, [x29,120]
+ ldrb w26, [x0,x23]
+ ldr w0, [x29,144]
+ and w0, w0, 2
uxtb w0, w0
str w0, [x29,128]
-.L1146:
- uxth w28, w26
- cmp w28, w22
- bcs .L1156
+.L1192:
+ uxth w27, w25
+ cmp w27, w21
+ bcs .L1202
mov w0, -1
- strb w0, [x29,166]
- strb w0, [x29,167]
- ldr w0, [x29,124]
- cbz w0, .L1148
- add x4, x19, :lo12:.LANCHOR0
- add x2, x29, 166
- add x0, x4, 1688
- str x4, [x29,104]
- ldr w3, [x0,x24,lsl 2]
- mov w0, w27
- add w3, w21, w3
- str x3, [x29,112]
+ strb w0, [x29,182]
+ strb w0, [x29,183]
+ ldr w0, [x29,116]
+ cbz w0, .L1194
+ ldr w3, [x28,x23,lsl 2]
+ mov w0, w26
+ add x2, x29, 182
+ add w3, w20, w3
+ str x3, [x29,104]
mov w1, w3
bl FlashReadSpare
- ldr x4, [x29,104]
- ldr x3, [x29,112]
- ldrb w0, [x4,24]
+ ldrb w0, [x24,24]
+ ldr x3, [x29,104]
cmp w0, 1
- bne .L1148
- ldr w1, [x4,28]
- mov w0, w27
- add x2, x29, 167
+ bne .L1194
+ ldr w1, [x24,28]
+ mov w0, w26
+ add x2, x29, 183
add w1, w3, w1
bl FlashReadSpare
- ldrb w0, [x29,166]
- ldrb w1, [x29,167]
+ ldrb w0, [x29,182]
+ ldrb w1, [x29,183]
and w0, w1, w0
- strb w0, [x29,166]
-.L1148:
- ldr w0, [x29,120]
- cbz w0, .L1150
- add x0, x19, :lo12:.LANCHOR0
- add x2, x29, 167
- add x0, x0, 1688
- ldr x1, [x0,224]
- ldr w0, [x0,x24,lsl 2]
- ldrh w1, [x1,10]
+ strb w0, [x29,182]
+.L1194:
+ ldr w0, [x29,128]
+ cbz w0, .L1196
+ ldr x0, [x24,1912]
+ add x2, x29, 183
+ ldrh w1, [x0,10]
+ ldr w0, [x28,x23,lsl 2]
sub w1, w1, #1
add w1, w1, w0
- mov w0, w27
- add w1, w1, w21
+ mov w0, w26
+ add w1, w1, w20
bl FlashReadSpare
-.L1150:
- add x0, x19, :lo12:.LANCHOR0
- ldrb w1, [x29,166]
- ldr x0, [x0,1912]
+.L1196:
+ ldr x0, [x24,1912]
+ ldrb w1, [x29,182]
ldrb w0, [x0,7]
cmp w0, 8
- beq .L1175
+ beq .L1221
cmp w0, 1
- bne .L1151
-.L1175:
+ bne .L1197
+.L1221:
mov w0, 1
- cbz w1, .L1153
- ldrb w0, [x29,167]
+ cbz w1, .L1199
+ ldrb w0, [x29,183]
cmp w0, wzr
cset w0, eq
- b .L1153
-.L1151:
+ b .L1199
+.L1197:
cmp w1, 255
mov w0, 1
- bne .L1153
- ldrb w0, [x29,167]
+ bne .L1199
+ ldrb w0, [x29,183]
cmp w0, 255
cset w0, ne
-.L1153:
- ldr w1, [x29,128]
- cbz w1, .L1154
- add x0, x19, :lo12:.LANCHOR0
- add x0, x0, 1688
- ldr w1, [x0,x24,lsl 2]
- mov w0, w27
- add w1, w21, w1
+.L1199:
+ ldr x1, [x29,144]
+ tbz x1, 2, .L1200
+ ldr w1, [x28,x23,lsl 2]
+ mov w0, w26
+ add w1, w20, w1
bl SandiskProgTestBadBlock
-.L1154:
- cbz w0, .L1155
+.L1200:
+ cbz w0, .L1201
adrp x0, .LC25
- mov w1, w20
- mov w2, w26
+ mov w1, w19
+ mov w2, w25
add x0, x0, :lo12:.LC25
- add w23, w23, 1
+ add w22, w22, 1
bl printk
- ubfx x1, x28, 5, 11
- ldr x3, [x19,#:lo12:.LANCHOR0]
+ ubfx x1, x27, 5, 11
+ ldr x2, [x24]
lsl x1, x1, 2
mov w0, 1
- lsl w28, w0, w28
- add x2, x19, :lo12:.LANCHOR0
- uxth w23, w23
- ldr w0, [x3,x1]
- orr w28, w0, w28
- str w28, [x3,x1]
- ldr w1, [x29,144]
- ldrb w0, [x2,1676]
+ lsl w27, w0, w27
+ uxth w22, w22
+ ldr w0, [x2,x1]
+ orr w27, w0, w27
+ str w27, [x2,x1]
+ ldr w1, [x29,168]
+ ldrb w0, [x24,1672]
mul w0, w1, w0
- cmp w23, w0
- bgt .L1156
-.L1155:
- add w26, w26, 1
- add w21, w21, w25
- b .L1146
-.L1156:
+ cmp w22, w0
+ bgt .L1202
+.L1201:
+ ldr w0, [x29,172]
+ add w25, w25, 1
+ add w20, w20, w0
+ b .L1192
+.L1202:
adrp x0, .LC26
- mov w1, w20
- mov w2, w23
+ mov w1, w19
add x0, x0, :lo12:.LC26
+ mov w2, w22
bl printk
- add x1, x19, :lo12:.LANCHOR0
- ldr w2, [x29,144]
- ldrb w0, [x1,1676]
- mul w0, w2, w0
- cmp w23, w0
- blt .L1158
- ldrh w2, [x1,4036]
+ ldrb w0, [x24,1672]
+ ldr w1, [x29,168]
+ mul w0, w1, w0
+ cmp w22, w0
+ blt .L1204
+ ldrh w2, [x24,4036]
mov w1, 0
- ldr x0, [x19,#:lo12:.LANCHOR0]
+ ldr x0, [x24]
lsl w2, w2, 9
bl ftl_memset
-.L1158:
- cbnz w20, .L1160
- add x0, x19, :lo12:.LANCHOR0
- adrp x26, .LC27
- mov w21, w20
- add x26, x26, :lo12:.LC27
- mov w23, 1
- ldrh w27, [x0,8]
-.L1161:
- add x0, x19, :lo12:.LANCHOR0
- ldrb w0, [x0,25]
- cmp w0, w27
- bls .L1196
- mov w0, w27
+.L1204:
+ cbnz w19, .L1206
+ adrp x25, .LC27
+ ldrh w26, [x24,8]
+ mov w20, w19
+ add x25, x25, :lo12:.LC27
+ mov w22, 1
+.L1207:
+ ldrb w0, [x24,25]
+ cmp w0, w26
+ bls .L1242
+ mov w0, w26
bl FlashTestBlk
- cbz w0, .L1162
- mov w1, w27
- mov x0, x26
- add w21, w21, 1
+ cbz w0, .L1208
+ mov w1, w26
+ mov x0, x25
+ add w20, w20, 1
bl printk
- ubfx x1, x27, 5, 11
- ldr x2, [x19,#:lo12:.LANCHOR0]
+ ubfx x1, x26, 5, 11
+ ldr x2, [x24]
lsl x1, x1, 2
- lsl w0, w23, w27
- uxth w21, w21
+ lsl w0, w22, w26
+ uxth w20, w20
ldr w3, [x2,x1]
orr w0, w3, w0
str w0, [x2,x1]
-.L1162:
- add w27, w27, 1
- uxth w27, w27
- b .L1161
-.L1196:
- adrp x26, .LC27
- ldr w28, [x29,132]
- sub w27, w22, #50
- add x26, x26, :lo12:.LC27
- mov w23, 1
-.L1164:
- cmp w28, w27
- ble .L1197
- mov w0, w28
+.L1208:
+ add w26, w26, 1
+ uxth w26, w26
+ b .L1207
+.L1242:
+ adrp x25, .LC27
+ ldr w27, [x29,132]
+ sub w26, w21, #50
+ add x25, x25, :lo12:.LC27
+ mov w22, 1
+.L1210:
+ cmp w27, w26
+ ble .L1243
+ mov w0, w27
bl FlashTestBlk
- cbz w0, .L1165
- mov w1, w28
- mov x0, x26
+ cbz w0, .L1211
+ mov w1, w27
+ mov x0, x25
bl printk
- ubfx x1, x28, 5, 11
- ldr x2, [x19,#:lo12:.LANCHOR0]
+ ubfx x1, x27, 5, 11
+ ldr x2, [x24]
lsl x1, x1, 2
- lsl w0, w23, w28
+ lsl w0, w22, w27
ldr w3, [x2,x1]
orr w0, w3, w0
str w0, [x2,x1]
-.L1165:
- sub w28, w28, #1
- uxth w28, w28
- b .L1164
-.L1197:
- add x0, x19, :lo12:.LANCHOR0
- ldrb w1, [x0,25]
- ldr w2, [x0,8]
- sub w1, w1, w2
- cmp w21, w1
- bcc .L1160
- ldrh w2, [x0,4036]
+.L1211:
+ sub w27, w27, #1
+ uxth w27, w27
+ b .L1210
+.L1243:
+ ldrb w0, [x24,25]
+ ldr w1, [x24,8]
+ sub w0, w0, w1
+ cmp w20, w0
+ bcc .L1206
+ ldrh w2, [x24,4036]
mov w1, 0
- ldr x0, [x19,#:lo12:.LANCHOR0]
+ ldr x0, [x24]
lsl w2, w2, 9
bl ftl_memset
-.L1160:
+.L1206:
ldr x0, [x29,136]
- adrp x23, .LC28
- ldr w27, [x29,132]
- add x23, x23, :lo12:.LC28
- mul w26, w20, w22
- add x28, x0, :lo12:.LANCHOR2
- mov w21, -3872
-.L1168:
- mov w2, w27
- mov x0, x23
- mov w1, w20
+ adrp x22, .LC28
+ ldr w26, [x29,132]
+ add x22, x22, :lo12:.LC28
+ mul w25, w19, w21
+ add x27, x0, :lo12:.LANCHOR2
+ mov w20, -3872
+.L1214:
+ mov w2, w26
+ mov x0, x22
+ mov w1, w19
bl printk
- ldr x2, [x19,#:lo12:.LANCHOR0]
-.L1169:
- ubfx x0, x27, 5, 11
+ ldr x2, [x24]
+.L1215:
+ ubfx x0, x26, 5, 11
ldr w0, [x2,x0,lsl 2]
- lsr w0, w0, w27
+ lsr w0, w0, w26
and w1, w0, 1
- tbz x0, 0, .L1198
- sub w27, w27, #1
- uxth w27, w27
- b .L1169
-.L1198:
- add x0, x28, 728
- strh w27, [x0,x24,lsl 1]
- ldr x0, [x29,152]
- strh w21, [x0]
- strh w27, [x0,2]
+ tbz x0, 0, .L1244
+ sub w26, w26, #1
+ uxth w26, w26
+ b .L1215
+.L1244:
+ add x0, x27, 736
+ strh w26, [x0,x23,lsl 1]
+ ldr x0, [x29,160]
+ strh w20, [x0]
+ strh w26, [x0,2]
strh w1, [x0,8]
mov w1, 1
- ldr x0, [x19,#:lo12:.LANCHOR0]
+ ldr x0, [x24]
mov w2, w1
- str x0, [x29,176]
- ldr x0, [x28,696]
- str x0, [x29,184]
- add w0, w27, w26
+ str x0, [x29,192]
+ ldr x0, [x27,704]
+ str x0, [x29,200]
+ add w0, w26, w25
lsl w0, w0, 10
- str w0, [x29,172]
- add x0, x29, 168
+ str w0, [x29,188]
+ add x0, x29, 184
bl FlashEraseBlocks
mov w1, 1
- add x0, x29, 168
+ add x0, x29, 184
mov w2, w1
mov w3, w1
bl FlashProgPages
- ldr w0, [x29,168]
- cbz w0, .L1174
- sub w27, w27, #1
- uxth w27, w27
- b .L1168
-.L1174:
- add w20, w20, 1
- uxtb w20, w20
- b .L1144
-.L1195:
+ ldr w0, [x29,184]
+ cbz w0, .L1220
+ sub w26, w26, #1
+ uxth w26, w26
+ b .L1214
+.L1220:
+ add w19, w19, 1
+ uxtb w19, w19
+ b .L1190
+.L1241:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
ldp x25, x26, [sp,64]
ldp x27, x28, [sp,80]
- ldp x29, x30, [sp], 224
+ ldp x29, x30, [sp], 240
ret
.size FlashMakeFactorBbt, .-FlashMakeFactorBbt
.align 2
@@ -7503,14 +7704,14 @@ FlashMakeFactorBbt:
Ftl_log2:
mov w2, 1
mov w1, 0
-.L1200:
+.L1246:
cmp w2, w0
- bhi .L1202
+ bhi .L1248
add w1, w1, 1
lsl w2, w2, 1
uxth w1, w1
- b .L1200
-.L1202:
+ b .L1246
+.L1248:
sub w0, w1, #1
ret
.size Ftl_log2, .-Ftl_log2
@@ -7530,17 +7731,17 @@ FtlSysBlkNumInit:
csel w0, w0, w1, hi
adrp x1, .LANCHOR2
add x1, x1, :lo12:.LANCHOR2
- ldrh w2, [x1,748]
- ldrh w3, [x1,758]
- str w0, [x1,744]
+ ldrh w2, [x1,756]
+ ldrh w3, [x1,766]
+ str w0, [x1,752]
mul w2, w0, w2
sub w0, w3, w0
- strh w0, [x1,756]
- ldr w0, [x1,764]
- str w2, [x1,752]
+ strh w0, [x1,764]
+ ldr w0, [x1,772]
+ str w2, [x1,760]
sub w2, w0, w2
mov w0, 0
- str w2, [x1,760]
+ str w2, [x1,768]
ret
.size FtlSysBlkNumInit, .-FtlSysBlkNumInit
.align 2
@@ -7552,215 +7753,212 @@ FtlConstantsInit:
add x29, sp, 0
stp x19, x20, [sp,16]
stp x23, x24, [sp,48]
+ adrp x19, .LANCHOR2
+ mov x24, x0
stp x21, x22, [sp,32]
stp x25, x26, [sp,64]
stp x27, x28, [sp,80]
- mov x24, x0
- adrp x19, .LANCHOR2
- ldrh w6, [x0,8]
- add x0, x19, :lo12:.LANCHOR2
- ldrh w2, [x24,10]
- ldrh w1, [x24,12]
+ add x1, x19, :lo12:.LANCHOR2
ldrh w4, [x24,14]
- strh w6, [x0,768]
- strh w2, [x0,770]
- strh w1, [x0,772]
- strh w4, [x0,758]
-.L1207:
- add x5, x0, 776
+ ldrh w6, [x0,8]
+ ldrh w2, [x0,10]
+ ldrh w0, [x0,12]
+ strh w6, [x1,776]
+ strh w2, [x1,778]
+ strh w0, [x1,780]
+ strh w4, [x1,766]
+.L1253:
+ add x5, x1, 784
strb w3, [x3,x5]
add x3, x3, 1
cmp x3, 32
- bne .L1207
+ bne .L1253
ldrh w3, [x24,20]
- ldrb w0, [x24,15]
- cmp w3, w0
- bcs .L1208
- uxtb w8, w1
+ ldrb w1, [x24,15]
+ cmp w3, w1
+ bcs .L1254
+ uxtb w8, w0
mov w3, 0
- mul w11, w1, w2
+ mul w11, w0, w2
ubfiz w10, w8, 1, 7
add x12, x19, :lo12:.LANCHOR2
-.L1209:
- cmp w3, w1
- bcs .L1211
- uxtb w0, w3
+.L1255:
+ cmp w3, w0
+ bcs .L1257
+ uxtb w1, w3
mov w5, w3
mov w7, 0
-.L1212:
+.L1258:
cmp w7, w2
- bcs .L1234
- add x9, x12, 776
+ bcs .L1280
+ add x9, x12, 784
add w13, w5, w11
- add w14, w0, w8
+ add w14, w1, w8
add w7, w7, 1
- strb w0, [x9,w5,uxtw]
- add w0, w0, w10
+ strb w1, [x9,w5,uxtw]
+ add w1, w1, w10
strb w14, [x9,x13]
- add w5, w5, w1
- uxtb w0, w0
- b .L1212
-.L1234:
+ add w5, w5, w0
+ uxtb w1, w1
+ b .L1258
+.L1280:
add w3, w3, 1
- b .L1209
-.L1211:
- add x0, x19, :lo12:.LANCHOR2
+ b .L1255
+.L1257:
+ add x1, x19, :lo12:.LANCHOR2
lsl w2, w2, 1
lsr w4, w4, 1
- strh w2, [x0,770]
- strh w4, [x0,758]
-.L1208:
- add x0, x19, :lo12:.LANCHOR2
+ strh w2, [x1,778]
+ strh w4, [x1,766]
+.L1254:
+ add x1, x19, :lo12:.LANCHOR2
mov w2, 5
cmp w6, 1
- strh w2, [x0,808]
- strh wzr, [x0,810]
- bne .L1213
- strh w6, [x0,808]
-.L1213:
- add x0, x19, :lo12:.LANCHOR2
+ strh w2, [x1,816]
+ strh wzr, [x1,818]
+ bne .L1259
+ strh w6, [x1,816]
+.L1259:
+ add x1, x19, :lo12:.LANCHOR2
mov w2, 4352
- adrp x22, .LANCHOR0
- strh w2, [x0,812]
- add x2, x22, :lo12:.LANCHOR0
+ adrp x21, .LANCHOR0
+ strh w2, [x1,820]
+ add x2, x21, :lo12:.LANCHOR0
ldrb w27, [x2,24]
- cbz w27, .L1214
+ cbz w27, .L1260
mov w2, 384
- strh w2, [x0,812]
-.L1214:
- add x21, x19, :lo12:.LANCHOR2
- ldrh w20, [x21,758]
- ldrh w23, [x21,770]
- mul w23, w1, w23
- mul w1, w20, w1
- uxth w23, w23
- strh w23, [x21,748]
- uxth w0, w1
- strh w0, [x21,814]
- bl Ftl_log2
+ strh w2, [x1,820]
+.L1260:
+ add x22, x19, :lo12:.LANCHOR2
ldrh w26, [x24,16]
ldrh w25, [x24,20]
- strh w0, [x21,816]
+ ldrh w28, [x24,18]
+ ldrh w23, [x22,778]
+ ldrh w20, [x22,766]
+ strh w26, [x22,824]
+ mul w23, w0, w23
+ mul w0, w20, w0
+ strh w0, [x22,822]
+ uxth w23, w23
+ strh w28, [x22,826]
+ strh w23, [x22,756]
mul w0, w23, w26
- strh w0, [x21,822]
+ strh w0, [x22,828]
mov w0, w25
- ldrh w28, [x24,18]
- strh w26, [x21,818]
- strh w28, [x21,820]
- strh w25, [x21,824]
+ strh w25, [x22,830]
bl Ftl_log2
- lsl w2, w25, 9
uxth w3, w0
- strh w0, [x21,826]
- cmp w20, 1024
+ lsl w2, w25, 9
+ strh w0, [x22,832]
ldrh w0, [x24,26]
- strh w2, [x21,828]
+ cmp w20, 1024
+ strh w2, [x22,834]
ubfx x2, x2, 9, 7
- strh w0, [x21,832]
+ strh w0, [x22,838]
lsl w2, w2, 1
mul w0, w23, w20
- strh w2, [x21,830]
- str w0, [x21,764]
- bls .L1215
+ strh w2, [x22,836]
+ str w0, [x22,772]
+ bls .L1261
and w0, w20, 255
- strh w0, [x21,810]
-.L1215:
+ strh w0, [x22,818]
+.L1261:
add x2, x19, :lo12:.LANCHOR2
mul w0, w25, w28
- ldrh w1, [x2,810]
+ ldrh w1, [x2,818]
sub w1, w20, w1
mul w1, w23, w1
mul w1, w1, w25
mul w1, w1, w26
asr w1, w1, 11
- str w1, [x2,836]
- ldrh w1, [x2,812]
+ str w1, [x2,840]
+ ldrh w1, [x2,820]
lsl w1, w1, 3
sdiv w0, w1, w0
uxth w0, w0
cmp w0, 4
- bhi .L1231
+ bhi .L1277
mov w0, 4
-.L1231:
- strh w0, [x2,840]
- cbz w27, .L1218
+.L1277:
+ strh w0, [x2,844]
+ cbz w27, .L1264
add x0, x19, :lo12:.LANCHOR2
mov w1, 640
- strh w1, [x0,812]
-.L1218:
+ strh w1, [x0,820]
+.L1264:
add x1, x19, :lo12:.LANCHOR2
lsl w20, w20, 6
cmp w23, 1
- ldrh w0, [x1,812]
+ ldrh w0, [x1,820]
asr w0, w0, w3
add w3, w3, 9
asr w20, w20, w3
- strh w20, [x1,844]
+ strh w20, [x1,848]
and w20, w20, 65535
add w0, w0, 2
- strh w0, [x1,842]
+ strh w0, [x1,846]
mul w0, w20, w23
- str w0, [x1,848]
+ str w0, [x1,852]
add w20, w20, 8
- ldrh w0, [x1,840]
+ ldrh w0, [x1,844]
udiv w0, w0, w23
add w20, w20, w0
- bne .L1232
+ bne .L1278
add w20, w20, 4
-.L1232:
- str w20, [x1,744]
+.L1278:
+ str w20, [x1,752]
add x20, x19, :lo12:.LANCHOR2
- add x22, x22, :lo12:.LANCHOR0
- ldrh w0, [x20,744]
+ add x21, x21, :lo12:.LANCHOR0
+ ldrh w0, [x20,752]
bl FtlSysBlkNumInit
- str wzr, [x22,4048]
- ldr w0, [x20,744]
- str w0, [x20,852]
- ldr w0, [x20,760]
- ldrh w1, [x20,818]
+ str wzr, [x21,4048]
+ ldr w0, [x20,752]
+ str w0, [x20,856]
+ ldr w0, [x20,768]
+ ldrh w1, [x20,824]
lsl w0, w0, 2
- ldrh w3, [x20,824]
- ldrh w2, [x20,840]
+ ldrh w3, [x20,830]
+ ldrh w2, [x20,844]
mul w1, w0, w1
- ldrh w0, [x20,826]
- ldrb w5, [x22,136]
+ ldrh w0, [x20,832]
+ ldrb w5, [x21,4044]
add w0, w0, 9
lsr w0, w1, w0
mov w1, 2048
add w0, w0, 2
sdiv w1, w1, w3
- strh w1, [x20,858]
+ strh w1, [x20,862]
uxth w0, w0
- strh w0, [x20,856]
+ strh w0, [x20,860]
add w1, w2, 3
- strh w1, [x20,840]
- ldr w1, [x20,848]
+ strh w1, [x20,844]
+ ldr w1, [x20,852]
add w4, w1, 3
- str w4, [x20,848]
- cbz w5, .L1221
+ str w4, [x20,852]
+ cbz w5, .L1267
add w2, w2, 4
add w1, w1, 5
- strh w2, [x20,840]
- b .L1233
-.L1221:
+ strh w2, [x20,844]
+ b .L1279
+.L1267:
cmp w4, 7
- bhi .L1222
+ bhi .L1268
mov w1, 8
-.L1233:
- str w1, [x20,848]
-.L1222:
+.L1279:
+ str w1, [x20,852]
+.L1268:
add x19, x19, :lo12:.LANCHOR2
- ldrh w1, [x19,756]
- strh wzr, [x19,860]
+ ldrh w1, [x19,764]
+ strh wzr, [x19,864]
lsr w2, w1, 3
add w1, w2, w1, lsl 1
add w1, w1, 52
add w0, w1, w0, lsl 2
cmp w0, w3, lsl 9
- bcs .L1223
+ bcs .L1269
mov w0, 1
- strh w0, [x19,860]
-.L1223:
+ strh w0, [x19,864]
+.L1269:
mov w0, 0
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -7782,13 +7980,12 @@ FtlMemInit:
str x23, [sp,48]
add x0, x20, :lo12:.LANCHOR2
stp x21, x22, [sp,32]
- str w1, [x0,932]
+ str w1, [x0,936]
mov w1, -1
- strh wzr, [x0,862]
- strh w1, [x0,948]
- strh w1, [x0,950]
+ strh wzr, [x0,866]
strh w1, [x0,952]
- str wzr, [x0,864]
+ strh w1, [x0,954]
+ strh w1, [x0,956]
str wzr, [x0,868]
str wzr, [x0,872]
str wzr, [x0,876]
@@ -7805,311 +8002,312 @@ FtlMemInit:
str wzr, [x0,920]
str wzr, [x0,924]
str wzr, [x0,928]
- str wzr, [x0,936]
+ str wzr, [x0,932]
str wzr, [x0,940]
str wzr, [x0,944]
- strh w1, [x0,954]
+ str wzr, [x0,948]
+ strh w1, [x0,958]
mov w1, 32
- ldrh w2, [x0,824]
- strh w1, [x0,956]
+ ldrh w2, [x0,830]
+ strh w1, [x0,960]
mov w1, 128
- strh w1, [x0,958]
+ strh w1, [x0,962]
mov w1, 1024
- strh wzr, [x0,960]
- sdiv w2, w1, w2
- ldrh w1, [x0,748]
- strh wzr, [x0,962]
- lsl w1, w1, 2
strh wzr, [x0,964]
+ sdiv w2, w1, w2
+ ldrh w1, [x0,756]
strh wzr, [x0,966]
+ lsl w1, w1, 2
+ strh wzr, [x0,968]
+ strh wzr, [x0,970]
cmp w2, w1
- str w2, [x0,968]
- bls .L1236
- str w1, [x0,968]
-.L1236:
+ str w2, [x0,972]
+ bls .L1282
+ str w1, [x0,972]
+.L1282:
add x19, x20, :lo12:.LANCHOR2
mov w22, 56
- ldrh w0, [x19,822]
- str wzr, [x19,972]
+ ldrh w0, [x19,828]
+ str wzr, [x19,976]
lsl w0, w0, 1
bl ftl_malloc
- str x0, [x19,976]
- ldrh w1, [x19,822]
+ str x0, [x19,984]
+ ldrh w1, [x19,828]
mov w0, 12
mul w0, w1, w0
bl ftl_malloc
- ldrh w21, [x19,748]
- str x0, [x19,984]
+ ldrh w21, [x19,756]
+ str x0, [x19,992]
mul w21, w21, w22
lsl w23, w21, 3
mov w0, w23
bl ftl_malloc
- str x0, [x19,992]
- mov w0, w21
- bl ftl_malloc
str x0, [x19,1000]
- mov w0, w23
+ mov w0, w21
bl ftl_malloc
str x0, [x19,1008]
- mov w0, w21
+ mov w0, w23
bl ftl_malloc
str x0, [x19,1016]
mov w0, w21
bl ftl_malloc
str x0, [x19,1024]
- ldr w0, [x19,968]
- mul w0, w0, w22
+ mov w0, w21
bl ftl_malloc
str x0, [x19,1032]
- ldrh w0, [x19,748]
- ldrh w21, [x19,828]
+ ldr w0, [x19,972]
+ mul w0, w0, w22
+ bl ftl_malloc
+ str x0, [x19,1040]
+ ldrh w0, [x19,756]
+ ldrh w21, [x19,834]
lsl w0, w0, 1
add w0, w0, 1
- str w0, [x19,1040]
- mov w0, w21
- bl ftl_malloc
- str x0, [x19,1048]
+ str w0, [x19,1048]
mov w0, w21
bl ftl_malloc
str x0, [x19,1056]
mov w0, w21
bl ftl_malloc
str x0, [x19,1064]
- ldr w0, [x19,1040]
- mul w0, w21, w0
+ mov w0, w21
bl ftl_malloc
str x0, [x19,1072]
- ldr w0, [x19,968]
+ ldr w0, [x19,1048]
mul w0, w21, w0
bl ftl_malloc
str x0, [x19,1080]
- mov w0, w21
+ ldr w0, [x19,972]
+ mul w0, w21, w0
bl ftl_malloc
str x0, [x19,1088]
mov w0, w21
bl ftl_malloc
str x0, [x19,1096]
- ldr w1, [x19,1040]
+ mov w0, w21
+ bl ftl_malloc
+ str x0, [x19,1104]
+ ldr w1, [x19,1048]
mov w0, 24
mul w0, w1, w0
bl ftl_malloc
- ldrh w21, [x19,748]
- str x0, [x19,1104]
- ldrh w0, [x19,830]
+ ldrh w21, [x19,756]
+ str x0, [x19,1112]
+ ldrh w0, [x19,836]
mul w21, w0, w21
mov w0, w21
bl ftl_malloc
- str x0, [x19,1112]
- lsl w0, w21, 3
- bl ftl_malloc
str x0, [x19,1120]
- ldrh w1, [x19,830]
- ldr w0, [x19,1040]
- mul w0, w1, w0
+ lsl w0, w21, 3
bl ftl_malloc
str x0, [x19,1128]
- ldrh w1, [x19,830]
- ldr w0, [x19,968]
+ ldrh w1, [x19,836]
+ ldr w0, [x19,1048]
mul w0, w1, w0
bl ftl_malloc
str x0, [x19,1136]
- ldrh w0, [x19,758]
+ ldrh w1, [x19,836]
+ ldr w0, [x19,972]
+ mul w0, w1, w0
+ bl ftl_malloc
+ str x0, [x19,1144]
+ ldrh w0, [x19,766]
lsl w0, w0, 1
- strh w0, [x19,1144]
+ strh w0, [x19,1152]
and w0, w0, 65534
bl ftl_malloc
- str x0, [x19,1152]
- ldrh w0, [x19,1144]
+ str x0, [x19,1160]
+ ldrh w0, [x19,1152]
add x0, x0, 547
lsr x0, x0, 9
- strh w0, [x19,1144]
+ strh w0, [x19,1152]
lsl w0, w0, 9
bl ftl_malloc
- ldrh w21, [x19,758]
- str x0, [x19,1160]
+ ldrh w21, [x19,766]
+ str x0, [x19,1168]
add x0, x0, 32
lsl w21, w21, 1
- str x0, [x19,1168]
- mov w0, w21
- bl ftl_malloc
str x0, [x19,1176]
mov w0, w21
bl ftl_malloc
- ldr w21, [x19,848]
str x0, [x19,1184]
- lsl w21, w21, 1
mov w0, w21
bl ftl_malloc
+ ldr w21, [x19,852]
str x0, [x19,1192]
+ lsl w21, w21, 1
mov w0, w21
bl ftl_malloc
str x0, [x19,1200]
- ldrh w0, [x19,758]
+ mov w0, w21
+ bl ftl_malloc
+ str x0, [x19,1208]
+ ldrh w0, [x19,766]
lsr w0, w0, 3
add w0, w0, 4
bl ftl_malloc
adrp x1, .LANCHOR0+16
str x0, [x1,#:lo12:.LANCHOR0+16]
- ldrh w0, [x19,840]
- lsl w0, w0, 1
- bl ftl_malloc
- str x0, [x19,1208]
- ldrh w0, [x19,840]
+ ldrh w0, [x19,844]
lsl w0, w0, 1
bl ftl_malloc
str x0, [x19,1216]
- ldrh w0, [x19,840]
- lsl w0, w0, 2
+ ldrh w0, [x19,844]
+ lsl w0, w0, 1
bl ftl_malloc
str x0, [x19,1224]
- ldrh w0, [x19,842]
+ ldrh w0, [x19,844]
lsl w0, w0, 2
bl ftl_malloc
str x0, [x19,1232]
- ldrh w2, [x19,842]
+ ldrh w0, [x19,846]
+ lsl w0, w0, 2
+ bl ftl_malloc
+ str x0, [x19,1240]
+ ldrh w2, [x19,846]
mov w1, 0
lsl w2, w2, 2
bl ftl_memset
- ldrh w21, [x19,856]
+ ldrh w21, [x19,860]
lsl w21, w21, 2
mov w0, w21
bl ftl_malloc
- str x0, [x19,1240]
+ str x0, [x19,1248]
mov w0, w21
bl ftl_malloc
- str x0, [x19,1248]
- ldr w0, [x19,848]
+ str x0, [x19,1256]
+ ldr w0, [x19,852]
lsl w0, w0, 2
bl ftl_malloc
- str x0, [x19,1256]
- ldrh w0, [x19,858]
+ str x0, [x19,1264]
+ ldrh w0, [x19,862]
lsl w0, w0, 4
bl ftl_malloc
- str x0, [x19,1264]
- ldrh w1, [x19,858]
- ldrh w0, [x19,828]
+ str x0, [x19,1272]
+ ldrh w1, [x19,862]
+ ldrh w0, [x19,834]
mul w0, w1, w0
bl ftl_malloc
- str x0, [x19,1272]
- ldrh w1, [x19,758]
+ str x0, [x19,1280]
+ ldrh w1, [x19,766]
mov w0, 6
mul w0, w1, w0
bl ftl_malloc
- str x0, [x19,1280]
- ldrh w0, [x19,814]
- ldrh w1, [x19,770]
+ str x0, [x19,1288]
+ ldrh w0, [x19,822]
+ ldrh w1, [x19,778]
add w0, w0, 31
asr w0, w0, 5
- strh w0, [x19,1288]
+ strh w0, [x19,1296]
mul w0, w0, w1
lsl w0, w0, 2
bl ftl_malloc
- str x0, [x19,1328]
- add x1, x19, 1296
- ldrh w4, [x19,1288]
- ldrh w5, [x19,770]
+ str x0, [x19,1336]
+ add x1, x19, 1304
+ ldrh w4, [x19,1296]
+ ldrh w5, [x19,778]
mov w0, 1
mov w2, w4
-.L1237:
+.L1283:
cmp w0, w5
add x1, x1, 8
- bcs .L1337
- ldr x3, [x19,1328]
+ bcs .L1383
+ ldr x3, [x19,1336]
add w0, w0, 1
add x3, x3, x2, uxtw 2
add w2, w2, w4
str x3, [x1,32]
- b .L1237
-.L1337:
+ b .L1283
+.L1383:
add x1, x20, :lo12:.LANCHOR2
-.L1239:
+.L1285:
cmp w0, 8
- beq .L1338
+ beq .L1384
add x2, x1, x0, uxtw 3
add w0, w0, 1
- str xzr, [x2,1328]
- b .L1239
-.L1338:
+ str xzr, [x2,1336]
+ b .L1285
+.L1384:
add x0, x20, :lo12:.LANCHOR2
- ldr x1, [x0,1192]
- cbnz x1, .L1241
-.L1243:
+ ldr x1, [x0,1200]
+ cbnz x1, .L1287
+.L1289:
adrp x0, .LC29
adrp x1, .LANCHOR3
add x0, x0, :lo12:.LC29
add x1, x1, :lo12:.LANCHOR3
bl printk
mov w0, -1
- b .L1242
-.L1241:
- ldr x1, [x0,1200]
- cbz x1, .L1243
- ldr x1, [x0,1240]
- cbz x1, .L1243
- ldr x1, [x0,1256]
- cbz x1, .L1243
+ b .L1288
+.L1287:
+ ldr x1, [x0,1208]
+ cbz x1, .L1289
+ ldr x1, [x0,1248]
+ cbz x1, .L1289
ldr x1, [x0,1264]
- cbz x1, .L1243
+ cbz x1, .L1289
ldr x1, [x0,1272]
- cbz x1, .L1243
+ cbz x1, .L1289
ldr x1, [x0,1280]
- cbz x1, .L1243
- ldr x1, [x0,1328]
- cbz x1, .L1243
- ldr x0, [x0,1184]
- cbz x0, .L1243
+ cbz x1, .L1289
+ ldr x1, [x0,1288]
+ cbz x1, .L1289
+ ldr x1, [x0,1336]
+ cbz x1, .L1289
+ ldr x0, [x0,1192]
+ cbz x0, .L1289
add x0, x20, :lo12:.LANCHOR2
- ldr x1, [x0,976]
- cbz x1, .L1243
ldr x1, [x0,984]
- cbz x1, .L1243
+ cbz x1, .L1289
ldr x1, [x0,992]
- cbz x1, .L1243
- ldr x1, [x0,1008]
- cbz x1, .L1243
+ cbz x1, .L1289
+ ldr x1, [x0,1000]
+ cbz x1, .L1289
ldr x1, [x0,1016]
- cbz x1, .L1243
+ cbz x1, .L1289
ldr x1, [x0,1024]
- cbz x1, .L1243
- ldr x1, [x0,1000]
- cbz x1, .L1243
- ldr x1, [x0,1048]
- cbz x1, .L1243
+ cbz x1, .L1289
+ ldr x1, [x0,1032]
+ cbz x1, .L1289
+ ldr x1, [x0,1008]
+ cbz x1, .L1289
ldr x1, [x0,1056]
- cbz x1, .L1243
- ldr x0, [x0,1064]
- cbz x0, .L1243
+ cbz x1, .L1289
+ ldr x1, [x0,1064]
+ cbz x1, .L1289
+ ldr x0, [x0,1072]
+ cbz x0, .L1289
add x0, x20, :lo12:.LANCHOR2
- ldr x1, [x0,1072]
- cbz x1, .L1243
- ldr x1, [x0,1088]
- cbz x1, .L1243
+ ldr x1, [x0,1080]
+ cbz x1, .L1289
ldr x1, [x0,1096]
- cbz x1, .L1243
+ cbz x1, .L1289
ldr x1, [x0,1104]
- cbz x1, .L1243
+ cbz x1, .L1289
ldr x1, [x0,1112]
- cbz x1, .L1243
+ cbz x1, .L1289
ldr x1, [x0,1120]
- cbz x1, .L1243
+ cbz x1, .L1289
ldr x1, [x0,1128]
- cbz x1, .L1243
- ldr x1, [x0,1168]
- cbz x1, .L1243
- ldr x1, [x0,1152]
- cbz x1, .L1243
- ldr x0, [x0,1208]
- cbz x0, .L1243
+ cbz x1, .L1289
+ ldr x1, [x0,1136]
+ cbz x1, .L1289
+ ldr x1, [x0,1176]
+ cbz x1, .L1289
+ ldr x1, [x0,1160]
+ cbz x1, .L1289
+ ldr x0, [x0,1216]
+ cbz x0, .L1289
adrp x0, .LANCHOR2
add x0, x0, :lo12:.LANCHOR2
- ldr x1, [x0,1216]
- cbz x1, .L1243
ldr x1, [x0,1224]
- cbz x1, .L1243
- ldr x0, [x0,1232]
- cbz x0, .L1243
+ cbz x1, .L1289
+ ldr x1, [x0,1232]
+ cbz x1, .L1289
+ ldr x0, [x0,1240]
+ cbz x0, .L1289
mov w0, 0
-.L1242:
+.L1288:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldr x23, [sp,48]
@@ -8124,24 +8322,24 @@ IsBlkInVendorPart:
uxth w4, w0
add x1, x1, :lo12:.LANCHOR2
mov w0, 0
- ldrh w2, [x1,1392]
- cbz w2, .L1340
- ldrh w2, [x1,840]
- ldr x3, [x1,1208]
+ ldrh w2, [x1,1400]
+ cbz w2, .L1386
+ ldrh w2, [x1,844]
+ ldr x3, [x1,1216]
mov x1, 0
-.L1341:
+.L1387:
cmp w2, w1, uxth
- bls .L1346
+ bls .L1392
add x1, x1, 1
add x0, x3, x1, lsl 1
ldrh w0, [x0,-2]
cmp w0, w4
- bne .L1341
+ bne .L1387
mov w0, 1
- b .L1340
-.L1346:
+ b .L1386
+.L1392:
mov w0, 0
-.L1340:
+.L1386:
ret
.size IsBlkInVendorPart, .-IsBlkInVendorPart
.align 2
@@ -8152,26 +8350,26 @@ FtlCacheMetchLpa:
mov w6, w0
add x2, x2, :lo12:.LANCHOR2
mov w0, 0
- ldr w3, [x2,972]
- cbz w3, .L1348
- ldr x5, [x2,1032]
+ ldr w3, [x2,976]
+ cbz w3, .L1394
+ ldr x5, [x2,1040]
mov x0, 56
mov x2, 0
-.L1349:
+.L1395:
cmp w3, w2
- bls .L1358
+ bls .L1404
madd x4, x2, x0, x5
add x2, x2, 1
ldr w4, [x4,24]
cmp w4, w6
- bcc .L1349
+ bcc .L1395
cmp w4, w1
- bhi .L1349
+ bhi .L1395
mov w0, 1
- b .L1348
-.L1358:
+ b .L1394
+.L1404:
mov w0, 0
-.L1348:
+.L1394:
ret
.size FtlCacheMetchLpa, .-FtlCacheMetchLpa
.align 2
@@ -8194,8 +8392,8 @@ ftl_get_density:
.global FtlGetLpn
.type FtlGetLpn, %function
FtlGetLpn:
- adrp x0, .LANCHOR2+1396
- ldr w0, [x0,#:lo12:.LANCHOR2+1396]
+ adrp x0, .LANCHOR2+1404
+ ldr w0, [x0,#:lo12:.LANCHOR2+1404]
ret
.size FtlGetLpn, .-FtlGetLpn
.align 2
@@ -8209,8 +8407,8 @@ FtlBbmMapBadBlock:
str x19, [sp,16]
adrp x19, .LANCHOR2
add x19, x19, :lo12:.LANCHOR2
- ldrh w3, [x19,814]
- add x19, x19, 1296
+ ldrh w3, [x19,822]
+ add x19, x19, 1304
udiv w2, w1, w3
add x0, x19, x2, uxth 3
ldr x0, [x0,32]
@@ -8240,11 +8438,11 @@ FtlBbmIsBadBlock:
adrp x2, .LANCHOR2
uxth w0, w0
add x3, x2, :lo12:.LANCHOR2
- ldrh w1, [x3,814]
+ ldrh w1, [x3,822]
udiv w2, w0, w1
msub w0, w2, w1, w0
add x2, x3, x2, uxth 3
- ldr x1, [x2,1328]
+ ldr x1, [x2,1336]
uxth w0, w0
ubfx x3, x0, 5, 11
ldr w1, [x1,x3,lsl 2]
@@ -8266,9 +8464,9 @@ FtlBbt2Bitmap:
add x29, sp, 0
stp x19, x20, [sp,16]
mov x20, x0
- adrp x0, .LANCHOR2+1288
+ adrp x0, .LANCHOR2+1296
mov x19, x1
- ldrh w2, [x0,#:lo12:.LANCHOR2+1288]
+ ldrh w2, [x0,#:lo12:.LANCHOR2+1296]
mov x0, x1
mov w1, 0
lsl w2, w2, 2
@@ -8276,10 +8474,10 @@ FtlBbt2Bitmap:
mov x3, 0
mov w0, 65535
mov w5, 1
-.L1367:
+.L1413:
ldrh w2, [x20,x3]
cmp w2, w0
- beq .L1365
+ beq .L1411
ubfx x4, x2, 5, 11
add x3, x3, 2
lsl x4, x4, 2
@@ -8288,8 +8486,8 @@ FtlBbt2Bitmap:
ldr w1, [x19,x4]
orr w2, w1, w2
str w2, [x19,x4]
- bne .L1367
-.L1365:
+ bne .L1413
+.L1411:
ldp x19, x20, [sp,16]
ldp x29, x30, [sp], 32
ret
@@ -8305,34 +8503,34 @@ FtlBbmTblFlush:
add x19, x19, :lo12:.LANCHOR2
stp x21, x22, [sp,32]
stp x23, x24, [sp,48]
- ldr w1, [x19,1400]
+ ldr w1, [x19,1408]
stp x25, x26, [sp,64]
- cbnz w1, .L1372
- ldr x0, [x19,1048]
+ cbnz w1, .L1418
+ ldr x0, [x19,1056]
mov x22, 0
- ldr x3, [x19,1112]
- add x21, x19, 1296
- ldrh w2, [x19,828]
- str x0, [x19,1416]
- str x3, [x19,1424]
+ ldr x3, [x19,1120]
+ add x21, x19, 1304
+ ldrh w2, [x19,834]
+ str x0, [x19,1424]
+ str x3, [x19,1432]
bl ftl_memset
-.L1373:
- ldrh w1, [x19,770]
+.L1419:
+ ldrh w1, [x19,778]
mov w0, w22
- add x20, x19, 1408
+ add x20, x19, 1416
add x22, x22, 1
cmp w0, w1
- bge .L1381
+ bge .L1427
add x1, x21, x22, lsl 3
- ldrh w2, [x19,1288]
+ ldrh w2, [x19,1296]
ldr x3, [x20,8]
ldr x1, [x1,24]
mul w0, w0, w2
add x0, x3, x0, sxtw 2
lsl w2, w2, 2
bl ftl_memcpy
- b .L1373
-.L1381:
+ b .L1419
+.L1427:
ldr x26, [x20,16]
mov w1, 255
mov w2, 16
@@ -8348,83 +8546,83 @@ FtlBbmTblFlush:
add x25, x25, :lo12:.LC32
ldr w0, [x21,8]
str w0, [x26,4]
- ldrh w0, [x19,1296]
+ ldrh w0, [x19,1304]
strh w0, [x26,2]
ldrh w0, [x21,4]
strh w0, [x26,8]
ldrh w0, [x21,6]
strh w0, [x26,10]
- ldr w0, [x19,744]
+ ldr w0, [x19,752]
strh w0, [x26,12]
-.L1375:
- ldr x0, [x19,1048]
+.L1421:
+ ldr x0, [x19,1056]
str x0, [x20,8]
- ldrh w1, [x19,1296]
- ldr x0, [x19,1112]
+ ldrh w1, [x19,1304]
+ ldr x0, [x19,1120]
str x0, [x20,16]
- ldrh w2, [x19,1298]
- ldrh w3, [x19,1300]
+ ldrh w2, [x19,1306]
+ ldrh w3, [x19,1308]
orr w0, w2, w1, lsl 10
ldrh w4, [x26,10]
str w0, [x20,4]
mov x0, x23
str wzr, [x20]
bl printk
- ldrh w1, [x19,820]
- ldrh w0, [x19,1298]
+ ldrh w1, [x19,826]
+ ldrh w0, [x19,1306]
sub w1, w1, #1
cmp w0, w1
- blt .L1376
- ldr w1, [x19,1304]
- ldrh w0, [x19,1296]
+ blt .L1422
+ ldr w1, [x19,1312]
+ ldrh w0, [x19,1304]
add w1, w1, 1
- str w1, [x19,1304]
+ str w1, [x19,1312]
str w1, [x26,4]
strh w0, [x26,8]
- ldrh w1, [x19,1300]
- strh w0, [x19,1300]
- ldr x0, [x19,1016]
- strh w1, [x19,1296]
+ ldrh w1, [x19,1308]
+ strh w0, [x19,1308]
+ ldr x0, [x19,1024]
+ strh w1, [x19,1304]
lsl w1, w1, 10
str w1, [x20,4]
str w1, [x0,4]
mov w1, 1
mov w2, w1
- strh wzr, [x19,1298]
- ldr x0, [x19,1016]
+ strh wzr, [x19,1306]
+ ldr x0, [x19,1024]
bl FlashEraseBlocks
-.L1376:
+.L1422:
mov w1, 1
mov x0, x20
mov w2, w1
mov w3, w1
bl FlashProgPages
- ldrh w1, [x19,1298]
+ ldrh w1, [x19,1306]
ldr w0, [x20]
add w1, w1, 1
- strh w1, [x19,1298]
+ strh w1, [x19,1306]
cmn w0, #1
- bne .L1377
+ bne .L1423
ldr w1, [x20,4]
mov x0, x25
add w22, w22, 1
bl printk
uxth w22, w22
cmp w22, 3
- bls .L1375
+ bls .L1421
adrp x0, .LC33
ldr w1, [x20,4]
add x0, x0, :lo12:.LC33
mov w2, w22
bl printk
mov w0, 1
- str w0, [x19,1400]
- b .L1372
-.L1377:
- cbnz w24, .L1372
+ str w0, [x19,1408]
+ b .L1418
+.L1423:
+ cbnz w24, .L1418
mov w24, 1
- b .L1375
-.L1372:
+ b .L1421
+.L1418:
mov w0, 0
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -8445,29 +8643,29 @@ FtlLoadFactoryBbt:
stp x25, x26, [sp,64]
stp x19, x20, [sp,16]
stp x23, x24, [sp,48]
- add x21, x1, 1408
- add x23, x1, 1296
- ldr x0, [x1,1048]
+ add x21, x1, 1416
+ add x23, x1, 1304
+ ldr x0, [x1,1056]
mov w22, 0
- ldr x24, [x1,1112]
+ ldr x24, [x1,1120]
mov x19, x1
str x0, [x21,8]
mov w25, -1
str x24, [x21,16]
mov w26, 61664
-.L1383:
- ldrh w0, [x19,770]
+.L1429:
+ ldrh w0, [x19,778]
cmp w22, w0
- bcs .L1392
- ldrh w20, [x19,814]
+ bcs .L1438
+ ldrh w20, [x19,822]
strh w25, [x23,12]
-.L1385:
+.L1431:
sub w20, w20, #1
- ldrh w0, [x19,814]
+ ldrh w0, [x19,822]
uxth w20, w20
sub w1, w0, #16
cmp w20, w1
- ble .L1386
+ ble .L1432
madd w0, w22, w0, w20
mov w1, 1
lsl w0, w0, 10
@@ -8477,16 +8675,16 @@ FtlLoadFactoryBbt:
bl FlashReadPages
ldr w0, [x21]
cmn w0, #1
- beq .L1385
+ beq .L1431
ldrh w0, [x24]
cmp w0, w26
- bne .L1385
+ bne .L1431
strh w20, [x23,12]
-.L1386:
+.L1432:
add w22, w22, 1
add x23, x23, 2
- b .L1383
-.L1392:
+ b .L1429
+.L1438:
mov w0, 0
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -8505,7 +8703,7 @@ FtlBbtMemInit:
add x0, x0, :lo12:.LANCHOR2
mov w2, 16
add x29, sp, 0
- add x0, x0, 1308
+ add x0, x0, 1316
strh w1, [x0,-12]
mov w1, 255
strh wzr, [x0,-6]
@@ -8525,22 +8723,22 @@ FtlBbtCalcTotleCnt:
str x21, [sp,32]
mov w19, 0
mov w20, w19
- ldrh w1, [x0,814]
- ldrh w21, [x0,770]
+ ldrh w1, [x0,822]
+ ldrh w21, [x0,778]
mul w21, w1, w21
-.L1395:
+.L1441:
cmp w20, w21
- bge .L1401
+ bge .L1447
mov w0, w20
bl FtlBbmIsBadBlock
- cbz w0, .L1396
+ cbz w0, .L1442
add w19, w19, 1
uxth w19, w19
-.L1396:
+.L1442:
add w20, w20, 1
uxth w20, w20
- b .L1395
-.L1401:
+ b .L1441
+.L1447:
mov w0, w19
ldr x21, [sp,32]
ldp x19, x20, [sp,16]
@@ -8561,28 +8759,28 @@ FtlMakeBbt:
stp x25, x26, [sp,64]
stp x27, x28, [sp,80]
mov x21, x19
- ldr w22, [x20,1400]
- cbnz w22, .L1403
- add x24, x20, 1296
+ ldr w22, [x20,1408]
+ cbnz w22, .L1449
+ add x24, x20, 1304
mov x19, x20
mov x25, x24
- add x20, x20, 1408
+ add x20, x20, 1416
mov w28, -3872
bl FtlBbtMemInit
bl FtlLoadFactoryBbt
-.L1404:
- ldrh w0, [x19,770]
+.L1450:
+ ldrh w0, [x19,778]
cmp w22, w0
- bcs .L1422
+ bcs .L1468
ldrh w4, [x25,12]
mov w1, 65535
- ldr x0, [x19,1048]
- ldr x26, [x19,1112]
+ ldr x0, [x19,1056]
+ ldr x26, [x19,1120]
cmp w4, w1
str x0, [x20,8]
str x26, [x20,16]
- beq .L1405
- ldrh w0, [x19,814]
+ beq .L1451
+ ldrh w0, [x19,822]
mov w1, 1
mov w2, w1
madd w27, w22, w0, w4
@@ -8590,41 +8788,41 @@ FtlMakeBbt:
str w0, [x20,4]
mov x0, x20
bl FlashReadPages
- ldrh w2, [x19,814]
+ ldrh w2, [x19,822]
ldr x0, [x24,32]
add w2, w2, 7
ldr x1, [x20,8]
lsr w2, w2, 3
bl ftl_memcpy
- b .L1406
-.L1405:
+ b .L1452
+.L1451:
mov w1, w22
bl FlashGetBadBlockList
ldr x0, [x20,8]
ldr x1, [x24,32]
bl FtlBbt2Bitmap
- ldrh w23, [x19,814]
-.L1408:
+ ldrh w23, [x19,822]
+.L1454:
sub w23, w23, #1
uxth w23, w23
-.L1407:
- ldrh w0, [x19,814]
+.L1453:
+ ldrh w0, [x19,822]
madd w0, w22, w0, w23
bl FtlBbmIsBadBlock
cmp w0, 1
- beq .L1408
- ldr x0, [x19,1112]
+ beq .L1454
+ ldr x0, [x19,1120]
mov w1, 0
mov w2, 16
strh w23, [x25,12]
bl ftl_memset
strh w28, [x26]
str wzr, [x26,4]
- ldrh w2, [x19,1288]
+ ldrh w2, [x19,1296]
ldrh w0, [x25,12]
strh w0, [x26,2]
lsl w2, w2, 2
- ldrh w0, [x19,814]
+ ldrh w0, [x19,822]
ldrh w4, [x25,12]
ldr x1, [x24,32]
madd w27, w22, w0, w4
@@ -8643,93 +8841,93 @@ FtlMakeBbt:
bl FlashProgPages
ldr w0, [x20]
cmn w0, #1
- bne .L1406
+ bne .L1452
mov w0, w27
bl FtlBbmMapBadBlock
- b .L1407
-.L1406:
+ b .L1453
+.L1452:
mov w0, w27
add w22, w22, 1
add x24, x24, 8
add x25, x25, 2
bl FtlBbmMapBadBlock
- b .L1404
-.L1422:
+ b .L1450
+.L1468:
mov w19, 0
-.L1411:
+.L1457:
add x20, x21, :lo12:.LANCHOR2
- ldrh w0, [x20,832]
+ ldrh w0, [x20,838]
cmp w0, w19
- bls .L1423
+ bls .L1469
mov w0, w19
add w19, w19, 1
bl FtlBbmMapBadBlock
uxth w19, w19
- b .L1411
-.L1423:
- ldrh w19, [x20,1308]
+ b .L1457
+.L1469:
+ ldrh w19, [x20,1316]
mov w23, 65535
sub w19, w19, #1
uxth w19, w19
-.L1413:
- add x22, x20, 1296
+.L1459:
+ add x22, x20, 1304
ldrh w0, [x22,12]
sub w0, w0, #48
cmp w19, w0
- ble .L1417
+ ble .L1463
mov w0, w19
bl FtlBbmIsBadBlock
cmp w0, 1
- beq .L1414
+ beq .L1460
mov w0, w19
bl FlashTestBlk
- cbz w0, .L1415
+ cbz w0, .L1461
mov w0, w19
bl FtlBbmMapBadBlock
- b .L1414
-.L1415:
- ldrh w0, [x20,1296]
+ b .L1460
+.L1461:
+ ldrh w0, [x20,1304]
cmp w0, w23
- bne .L1416
- strh w19, [x20,1296]
- b .L1414
-.L1416:
+ bne .L1462
+ strh w19, [x20,1304]
+ b .L1460
+.L1462:
strh w19, [x22,4]
- b .L1417
-.L1414:
+ b .L1463
+.L1460:
sub w19, w19, #1
uxth w19, w19
- b .L1413
-.L1417:
+ b .L1459
+.L1463:
add x19, x21, :lo12:.LANCHOR2
mov w2, 2
- ldr x1, [x19,1016]
- ldrh w0, [x19,1296]
- str wzr, [x19,1304]
+ ldr x1, [x19,1024]
+ ldrh w0, [x19,1304]
+ str wzr, [x19,1312]
lsl w0, w0, 10
str w0, [x1,4]
- strh wzr, [x19,1298]
- ldr x0, [x19,1016]
- ldrh w1, [x19,1300]
+ strh wzr, [x19,1306]
+ ldr x0, [x19,1024]
+ ldrh w1, [x19,1308]
lsl w1, w1, 10
str w1, [x0,60]
mov w1, 1
bl FlashEraseBlocks
- ldrh w0, [x19,1296]
+ ldrh w0, [x19,1304]
bl FtlBbmMapBadBlock
- ldrh w0, [x19,1300]
+ ldrh w0, [x19,1308]
bl FtlBbmMapBadBlock
bl FtlBbmTblFlush
- strh wzr, [x19,1298]
- ldr w0, [x19,1304]
- ldrh w1, [x19,1300]
+ strh wzr, [x19,1306]
+ ldr w0, [x19,1312]
+ ldrh w1, [x19,1308]
add w0, w0, 1
- str w0, [x19,1304]
- ldrh w0, [x19,1296]
- strh w0, [x19,1300]
- strh w1, [x19,1296]
+ str w0, [x19,1312]
+ ldrh w0, [x19,1304]
+ strh w0, [x19,1308]
+ strh w1, [x19,1304]
bl FtlBbmTblFlush
-.L1403:
+.L1449:
mov w0, 0
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -8747,11 +8945,11 @@ V2P_block:
uxth w0, w0
add x3, x3, :lo12:.LANCHOR2
uxth w1, w1
- ldrh w4, [x3,772]
+ ldrh w4, [x3,780]
udiv w2, w0, w4
msub w0, w2, w4, w0
madd w0, w1, w4, w0
- ldrh w1, [x3,814]
+ ldrh w1, [x3,822]
madd w0, w2, w1, w0
ret
.size V2P_block, .-V2P_block
@@ -8762,8 +8960,8 @@ P2V_plane:
adrp x2, .LANCHOR2
uxth w0, w0
add x2, x2, :lo12:.LANCHOR2
- ldrh w1, [x2,772]
- ldrh w3, [x2,814]
+ ldrh w1, [x2,780]
+ ldrh w3, [x2,822]
udiv w2, w0, w1
udiv w3, w0, w3
msub w0, w2, w1, w0
@@ -8777,10 +8975,10 @@ P2V_block_in_plane:
adrp x2, .LANCHOR2
uxth w0, w0
add x2, x2, :lo12:.LANCHOR2
- ldrh w3, [x2,814]
+ ldrh w3, [x2,822]
udiv w1, w0, w3
msub w0, w1, w3, w0
- ldrh w1, [x2,772]
+ ldrh w1, [x2,780]
uxth w0, w0
udiv w0, w0, w1
ret
@@ -8791,16 +8989,16 @@ P2V_block_in_plane:
ftl_cmp_data_ver:
cmp w0, w1
mov w2, -2147483648
- bls .L1428
+ bls .L1474
sub w1, w0, w1
cmp w1, w2
cset w0, ls
- b .L1429
-.L1428:
+ b .L1475
+.L1474:
sub w1, w1, w0
cmp w1, w2
cset w0, hi
-.L1429:
+.L1475:
ret
.size ftl_cmp_data_ver, .-ftl_cmp_data_ver
.align 2
@@ -8817,12 +9015,12 @@ FtlGetLastWrittenPage:
str x25, [sp,64]
mov w23, w1
add x3, x3, :lo12:.LANCHOR2
- bne .L1431
- ldrh w19, [x3,820]
- b .L1432
-.L1431:
- ldrh w19, [x3,818]
-.L1432:
+ bne .L1477
+ ldrh w19, [x3,826]
+ b .L1478
+.L1477:
+ ldrh w19, [x3,824]
+.L1478:
sub w19, w19, #1
lsl w21, w0, 10
mov w1, 1
@@ -8837,12 +9035,12 @@ FtlGetLastWrittenPage:
bl FlashReadPages
ldr w0, [x29,144]
cmn w0, #1
- bne .L1433
+ bne .L1479
mov w22, 0
mov w25, 2
-.L1434:
+.L1480:
cmp w22, w19
- bgt .L1433
+ bgt .L1479
add w3, w22, w19
mov w1, 1
mov w2, w23
@@ -8854,21 +9052,21 @@ FtlGetLastWrittenPage:
bl FlashReadPages
ldr w0, [x24]
cmn w0, #1
- bne .L1435
+ bne .L1481
ldr w0, [x24,4]
cmn w0, #1
- bne .L1435
+ bne .L1481
ldr w0, [x29,88]
cmn w0, #1
- beq .L1435
+ beq .L1481
sub w19, w20, #1
sxth w19, w19
- b .L1434
-.L1435:
+ b .L1480
+.L1481:
add w20, w20, 1
sxth w22, w20
- b .L1434
-.L1433:
+ b .L1480
+.L1479:
mov w0, w19
ldr x25, [sp,64]
ldp x19, x20, [sp,16]
@@ -8889,20 +9087,20 @@ FtlLoadBbt:
add x23, x19, :lo12:.LANCHOR2
mov w24, 61649
stp x21, x22, [sp,32]
- add x21, x23, 1408
- ldr x0, [x23,1048]
- ldr x22, [x23,1112]
+ add x21, x23, 1416
+ ldr x0, [x23,1056]
+ ldr x22, [x23,1120]
str x0, [x21,8]
str x22, [x21,16]
bl FtlBbtMemInit
- ldrh w20, [x23,814]
+ ldrh w20, [x23,822]
sub w20, w20, #1
uxth w20, w20
-.L1442:
- ldrh w0, [x23,814]
+.L1488:
+ ldrh w0, [x23,822]
sub w0, w0, #48
cmp w20, w0
- ble .L1445
+ ble .L1491
lsl w0, w20, 10
mov w1, 1
str w0, [x21,4]
@@ -8911,7 +9109,7 @@ FtlLoadBbt:
bl FlashReadPages
ldr w0, [x21]
cmn w0, #1
- bne .L1443
+ bne .L1489
ldr w0, [x21,4]
mov w1, 1
mov w2, w1
@@ -8919,128 +9117,128 @@ FtlLoadBbt:
str w0, [x21,4]
mov x0, x21
bl FlashReadPages
-.L1443:
+.L1489:
ldr w0, [x21]
cmn w0, #1
- beq .L1444
+ beq .L1490
ldrh w0, [x22]
cmp w0, w24
- bne .L1444
+ bne .L1490
ldr w1, [x22,4]
- str w1, [x23,1304]
- strh w20, [x23,1296]
+ str w1, [x23,1312]
+ strh w20, [x23,1304]
ldrh w1, [x22,8]
- strh w1, [x23,1300]
- b .L1445
-.L1444:
+ strh w1, [x23,1308]
+ b .L1491
+.L1490:
sub w20, w20, #1
uxth w20, w20
- b .L1442
-.L1445:
+ b .L1488
+.L1491:
add x21, x19, :lo12:.LANCHOR2
mov w2, 65535
mov w0, -1
- ldrh w1, [x21,1296]
+ ldrh w1, [x21,1304]
cmp w1, w2
- beq .L1447
- ldrh w1, [x21,1300]
+ beq .L1493
+ ldrh w1, [x21,1308]
cmp w1, w2
- beq .L1449
- add x0, x21, 1408
+ beq .L1495
+ add x0, x21, 1416
lsl w1, w1, 10
str w1, [x0,4]
mov w1, 1
mov w2, w1
bl FlashReadPages
- ldr w0, [x21,1408]
+ ldr w0, [x21,1416]
cmn w0, #1
- beq .L1449
+ beq .L1495
ldrh w1, [x22]
mov w0, 61649
cmp w1, w0
- bne .L1449
+ bne .L1495
ldr w0, [x22,4]
- ldr w1, [x21,1304]
+ ldr w1, [x21,1312]
cmp w0, w1
- bls .L1449
- str w0, [x21,1304]
- ldrh w1, [x21,1300]
+ bls .L1495
+ str w0, [x21,1312]
+ ldrh w1, [x21,1308]
ldrh w0, [x22,8]
- strh w1, [x21,1296]
- strh w0, [x21,1300]
-.L1449:
+ strh w1, [x21,1304]
+ strh w0, [x21,1308]
+.L1495:
add x20, x19, :lo12:.LANCHOR2
mov w1, 1
- add x23, x20, 1408
+ add x23, x20, 1416
mov w24, 61649
- ldrh w0, [x20,1296]
+ ldrh w0, [x20,1304]
bl FtlGetLastWrittenPage
sxth w21, w0
add w0, w0, 1
- strh w0, [x20,1298]
-.L1451:
- tbnz w21, #31, .L1456
- ldrh w0, [x20,1296]
+ strh w0, [x20,1306]
+.L1497:
+ tbnz w21, #31, .L1502
+ ldrh w0, [x20,1304]
mov w1, 1
mov w2, w1
orr w0, w21, w0, lsl 10
str w0, [x23,4]
- ldr x0, [x20,1048]
+ ldr x0, [x20,1056]
str x0, [x23,8]
mov x0, x23
bl FlashReadPages
ldr w0, [x23]
cmn w0, #1
- beq .L1452
+ beq .L1498
ldrh w0, [x22]
cmp w0, w24
- bne .L1452
-.L1456:
+ bne .L1498
+.L1502:
add x1, x19, :lo12:.LANCHOR2
ldrh w0, [x22,10]
mov w2, 65535
- strh w0, [x1,1302]
+ strh w0, [x1,1310]
ldrh w0, [x22,12]
cmp w0, w2
- bne .L1453
- b .L1454
-.L1452:
+ bne .L1499
+ b .L1500
+.L1498:
sub w21, w21, #1
sxth w21, w21
- b .L1451
-.L1453:
- ldr w2, [x1,744]
+ b .L1497
+.L1499:
+ ldr w2, [x1,752]
cmp w0, w2
- beq .L1454
- ldrh w1, [x1,758]
+ beq .L1500
+ ldrh w1, [x1,766]
lsr w1, w1, 2
cmp w0, w1
- bcs .L1454
+ bcs .L1500
cmp w2, w1
- bcs .L1454
+ bcs .L1500
bl FtlSysBlkNumInit
-.L1454:
+.L1500:
add x19, x19, :lo12:.LANCHOR2
mov x20, 0
- add x21, x19, 1296
-.L1457:
- ldrh w0, [x19,770]
+ add x21, x19, 1304
+.L1503:
+ ldrh w0, [x19,778]
mov w1, w20
add x20, x20, 1
cmp w1, w0
- bcs .L1475
- ldrh w2, [x19,1288]
+ bcs .L1521
+ ldrh w2, [x19,1296]
add x0, x21, x20, lsl 3
- ldr x3, [x19,1416]
+ ldr x3, [x19,1424]
mul w1, w1, w2
ldr x0, [x0,24]
lsl w2, w2, 2
add x1, x3, x1, lsl 2
bl ftl_memcpy
- b .L1457
-.L1475:
+ b .L1503
+.L1521:
mov w0, 0
-.L1447:
+.L1493:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -9056,11 +9254,11 @@ FtlFreeSysBlkQueueInit:
stp x29, x30, [sp, -16]!
add x1, x1, :lo12:.LANCHOR2
add x29, sp, 0
- strh w0, [x1,1464]
- add x0, x1, 1472
- strh wzr, [x1,1466]
- strh wzr, [x1,1468]
- strh wzr, [x1,1470]
+ strh w0, [x1,1472]
+ add x0, x1, 1480
+ strh wzr, [x1,1474]
+ strh wzr, [x1,1476]
+ strh wzr, [x1,1478]
mov w1, 0
bl ftl_memset
mov w0, 0
@@ -9071,8 +9269,8 @@ FtlFreeSysBlkQueueInit:
.global FtlFreeSysBlkQueueEmpty
.type FtlFreeSysBlkQueueEmpty, %function
FtlFreeSysBlkQueueEmpty:
- adrp x0, .LANCHOR2+1470
- ldrh w0, [x0,#:lo12:.LANCHOR2+1470]
+ adrp x0, .LANCHOR2+1478
+ ldrh w0, [x0,#:lo12:.LANCHOR2+1478]
cmp w0, wzr
cset w0, eq
ret
@@ -9081,8 +9279,8 @@ FtlFreeSysBlkQueueEmpty:
.global FtlFreeSysBlkQueueFull
.type FtlFreeSysBlkQueueFull, %function
FtlFreeSysBlkQueueFull:
- adrp x0, .LANCHOR2+1470
- ldrh w0, [x0,#:lo12:.LANCHOR2+1470]
+ adrp x0, .LANCHOR2+1478
+ ldrh w0, [x0,#:lo12:.LANCHOR2+1478]
cmp w0, 1024
cset w0, eq
ret
@@ -9100,37 +9298,37 @@ FtlFreeSysBlkQueueIn:
mov w0, 65533
sub w2, w21, #1
cmp w0, w2, uxth
- bcc .L1479
+ bcc .L1525
adrp x2, .LANCHOR2
add x20, x2, :lo12:.LANCHOR2
mov x19, x2
- ldrh w0, [x20,1470]
+ ldrh w0, [x20,1478]
cmp w0, 1024
- beq .L1479
- cbz w1, .L1481
- ldr w0, [x20,1400]
- cbnz w0, .L1481
+ beq .L1525
+ cbz w1, .L1527
+ ldr w0, [x20,1408]
+ cbnz w0, .L1527
mov w0, w21
bl P2V_block_in_plane
uxth w22, w0
- ldr x0, [x20,1016]
+ ldr x0, [x20,1024]
lsl w1, w21, 10
str w1, [x0,4]
mov w1, 1
mov w2, w1
- ldr x0, [x20,1016]
+ ldr x0, [x20,1024]
bl FlashEraseBlocks
ubfiz x0, x22, 1, 16
- ldr x2, [x20,1168]
+ ldr x2, [x20,1176]
ldrh w1, [x2,x0]
add w1, w1, 1
strh w1, [x2,x0]
- ldr w0, [x20,912]
+ ldr w0, [x20,916]
add w0, w0, 1
- str w0, [x20,912]
-.L1481:
+ str w0, [x20,916]
+.L1527:
add x1, x19, :lo12:.LANCHOR2
- add x1, x1, 1464
+ add x1, x1, 1472
ldrh w0, [x1,6]
ldrh w2, [x1,4]
add w0, w0, 1
@@ -9140,7 +9338,7 @@ FtlFreeSysBlkQueueIn:
and w2, w2, 1023
strh w21, [x0,8]
strh w2, [x1,4]
-.L1479:
+.L1525:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x29, x30, [sp], 48
@@ -9161,53 +9359,53 @@ FtlLowFormatEraseBlock:
stp x27, x28, [sp,80]
uxth w25, w0
uxtb w24, w1
- ldrb w0, [x3,648]
- ldr w2, [x3,1400]
+ ldrb w0, [x3,656]
+ ldr w2, [x3,1408]
str w0, [x29,120]
mov w0, 0
- cbnz w2, .L1489
+ cbnz w2, .L1535
adrp x28, .LANCHOR0
- str w25, [x3,944]
+ str w25, [x3,948]
add x0, x28, :lo12:.LANCHOR0
mov w27, w2
mov w20, w2
mov w19, w2
mov x26, x3
mov w23, 56
- ldrb w0, [x0,136]
+ ldrb w0, [x0,4044]
str w0, [x29,124]
-.L1490:
- ldrh w0, [x26,748]
+.L1536:
+ ldrh w0, [x26,756]
cmp w0, w27
- bls .L1534
+ bls .L1580
umull x0, w27, w23
- ldr x1, [x26,1016]
+ ldr x1, [x26,1024]
str wzr, [x1,x0]
- add x0, x26, 776
+ add x0, x26, 784
mov w1, w25
ldrb w0, [x0,w27,sxtw]
bl V2P_block
uxth w22, w0
mov w1, w22
- cbz w24, .L1491
+ cbz w24, .L1537
str x1, [x29,112]
bl IsBlkInVendorPart
ldr x1, [x29,112]
- cbnz w0, .L1492
-.L1491:
+ cbnz w0, .L1538
+.L1537:
mov w0, w1
bl FtlBbmIsBadBlock
- cbnz w0, .L1493
+ cbnz w0, .L1539
umull x0, w20, w23
- ldr x1, [x26,1016]
+ ldr x1, [x26,1024]
lsl w22, w22, 10
mov w2, 4
add x1, x1, x0
str w22, [x1,4]
- ldr x1, [x26,1016]
- ldr x4, [x26,1120]
+ ldr x1, [x26,1024]
+ ldr x4, [x26,1128]
add x1, x1, x0
- ldrh w0, [x26,830]
+ ldrh w0, [x26,836]
mul w0, w20, w0
add w20, w20, 1
str xzr, [x1,8]
@@ -9215,141 +9413,141 @@ FtlLowFormatEraseBlock:
uxth w20, w20
add x0, x4, x0, sxtw 2
str x0, [x1,16]
- b .L1492
-.L1493:
+ b .L1538
+.L1539:
add w19, w19, 1
uxth w19, w19
-.L1492:
+.L1538:
add w2, w27, 1
uxth w27, w2
- b .L1490
-.L1534:
- cbz w20, .L1513
+ b .L1536
+.L1580:
+ cbz w20, .L1559
ldr w0, [x29,124]
mov w2, w20
- strb wzr, [x26,648]
+ strb wzr, [x26,656]
mov x23, 0
cmp w0, wzr
- ldr x0, [x26,1016]
+ ldr x0, [x26,1024]
cset w22, ne
mov w1, w22
bl FlashEraseBlocks
ldrb w0, [x29,120]
- strb w0, [x26,648]
+ strb w0, [x26,656]
mov x26, 56
-.L1496:
+.L1542:
cmp w20, w23, uxth
- bls .L1535
+ bls .L1581
add x1, x21, :lo12:.LANCHOR2
mul x0, x23, x26
- ldr x1, [x1,1016]
+ ldr x1, [x1,1024]
add x2, x1, x0
ldr w0, [x1,x0]
cmn w0, #1
- bne .L1497
+ bne .L1543
ldr w0, [x2,4]
add w19, w19, 1
lsr w0, w0, 10
uxth w19, w19
bl FtlBbmMapBadBlock
-.L1497:
+.L1543:
add x23, x23, 1
- b .L1496
-.L1535:
- cbnz w24, .L1499
+ b .L1542
+.L1581:
+ cbnz w24, .L1545
mov w0, 1
uxth w22, w22
mov w27, 6
str w0, [x29,124]
- b .L1500
-.L1499:
+ b .L1546
+.L1545:
add x0, x21, :lo12:.LANCHOR2
add x28, x28, :lo12:.LANCHOR0
- ldrh w0, [x0,820]
+ ldrh w0, [x0,826]
str w0, [x29,124]
- ldrb w0, [x28,136]
- cbnz w0, .L1516
+ ldrb w0, [x28,4044]
+ cbnz w0, .L1562
ldr w0, [x29,124]
mov w22, 1
lsr w27, w0, 2
- b .L1500
-.L1516:
+ b .L1546
+.L1562:
mov w22, 1
mov w27, w22
-.L1500:
+.L1546:
mov w23, 0
add x28, x21, :lo12:.LANCHOR2
-.L1509:
+.L1555:
mov w26, 0
mov w20, w26
-.L1501:
- ldrh w0, [x28,748]
+.L1547:
+ ldrh w0, [x28,756]
cmp w0, w26
- bls .L1536
+ bls .L1582
mov w0, 56
- ldr x1, [x28,1016]
+ ldr x1, [x28,1024]
umull x0, w26, w0
str wzr, [x1,x0]
- add x0, x28, 776
+ add x0, x28, 784
mov w1, w25
ldrb w0, [x0,w26,sxtw]
bl V2P_block
uxth w2, w0
str w2, [x29,112]
mov w1, w2
- cbz w24, .L1502
+ cbz w24, .L1548
str x1, [x29,104]
bl IsBlkInVendorPart
ldr x1, [x29,104]
- cbnz w0, .L1503
-.L1502:
+ cbnz w0, .L1549
+.L1548:
mov w0, w1
bl FtlBbmIsBadBlock
- cbnz w0, .L1503
+ cbnz w0, .L1549
mov w0, 56
- ldr x1, [x28,1016]
+ ldr x1, [x28,1024]
ldr w2, [x29,112]
umull x0, w20, w0
add x1, x1, x0
add w2, w23, w2, lsl 10
str w2, [x1,4]
mov w2, 4
- ldr x1, [x28,1016]
+ ldr x1, [x28,1024]
add x1, x1, x0
- ldr x0, [x28,1088]
+ ldr x0, [x28,1096]
str x0, [x1,8]
- ldrh w0, [x28,830]
+ ldrh w0, [x28,836]
mul w0, w20, w0
add w20, w20, 1
sdiv w0, w0, w2
uxth w20, w20
- ldr x2, [x28,1096]
+ ldr x2, [x28,1104]
add x0, x2, x0, sxtw 2
str x0, [x1,16]
-.L1503:
+.L1549:
add w3, w26, 1
uxth w26, w3
- b .L1501
-.L1536:
- cbz w20, .L1513
- ldr x0, [x28,1016]
+ b .L1547
+.L1582:
+ cbz w20, .L1559
+ ldr x0, [x28,1024]
mov w1, w20
mov w2, w22
mov w3, 1
- strb wzr, [x28,648]
+ strb wzr, [x28,656]
bl FlashProgPages
ldrb w0, [x29,120]
mov x1, 0
- strb w0, [x28,648]
-.L1506:
+ strb w0, [x28,656]
+.L1552:
cmp w20, w1, uxth
- bls .L1537
+ bls .L1583
mov x0, 56
- ldr x2, [x28,1016]
+ ldr x2, [x28,1024]
mul x0, x1, x0
add x3, x2, x0
ldr w0, [x2,x0]
- cbz w0, .L1507
+ cbz w0, .L1553
ldr w0, [x3,4]
add w19, w19, 1
str x1, [x29,112]
@@ -9357,47 +9555,47 @@ FtlLowFormatEraseBlock:
uxth w19, w19
bl FtlBbmMapBadBlock
ldr x1, [x29,112]
-.L1507:
+.L1553:
add x1, x1, 1
- b .L1506
-.L1537:
+ b .L1552
+.L1583:
add w23, w23, w27
ldr w0, [x29,124]
uxth w23, w23
cmp w23, w0
- bcc .L1509
+ bcc .L1555
mov x23, 0
mov x26, 56
-.L1510:
+.L1556:
cmp w20, w23, uxth
- bls .L1538
- cbz w24, .L1511
+ bls .L1584
+ cbz w24, .L1557
add x1, x21, :lo12:.LANCHOR2
mul x0, x23, x26
- ldr x1, [x1,1016]
+ ldr x1, [x1,1024]
add x2, x1, x0
ldr w0, [x1,x0]
- cbnz w0, .L1511
+ cbnz w0, .L1557
ldr w0, [x2,4]
mov w1, 1
lsr w0, w0, 10
bl FtlFreeSysBlkQueueIn
-.L1511:
+.L1557:
add x23, x23, 1
- b .L1510
-.L1538:
+ b .L1556
+.L1584:
cmp w25, 63
- bls .L1517
- cbz w24, .L1513
-.L1517:
+ bls .L1563
+ cbz w24, .L1559
+.L1563:
add x21, x21, :lo12:.LANCHOR2
mov w1, w22
mov w2, w20
- ldr x0, [x21,1016]
+ ldr x0, [x21,1024]
bl FlashEraseBlocks
-.L1513:
+.L1559:
mov w0, w19
-.L1489:
+.L1535:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -9412,18 +9610,18 @@ FtlLowFormatEraseBlock:
FtlFreeSysBLkSort:
adrp x1, .LANCHOR2
add x0, x1, :lo12:.LANCHOR2
- add x0, x0, 1464
+ add x0, x0, 1472
ldrh w6, [x0,2084]
ldrh w2, [x0,6]
- cbz w2, .L1539
+ cbz w2, .L1585
mov w5, 0
ldrh w3, [x0,2]
ldrh w2, [x0,4]
mov w4, w5
and w6, w6, 31
-.L1541:
+.L1587:
cmp w4, w6
- bge .L1549
+ bge .L1595
add x5, x0, x3, sxtw 1
ldrh w7, [x5,8]
add x5, x0, x2, sxtw 1
@@ -9435,13 +9633,13 @@ FtlFreeSysBLkSort:
uxth w4, w4
and w3, w3, 1023
and w2, w2, 1023
- b .L1541
-.L1549:
- cbz w5, .L1539
+ b .L1587
+.L1595:
+ cbz w5, .L1585
add x0, x1, :lo12:.LANCHOR2
- strh w3, [x0,1466]
- strh w2, [x0,1468]
-.L1539:
+ strh w3, [x0,1474]
+ strh w2, [x0,1476]
+.L1585:
ret
.size FtlFreeSysBLkSort, .-FtlFreeSysBLkSort
.align 2
@@ -9457,70 +9655,70 @@ FtlFreeSysBlkQueueOut:
adrp x23, .LC35
stp x21, x22, [sp,32]
stp x25, x26, [sp,64]
- add x21, x19, 1464
+ add x21, x19, 1472
adrp x24, .LANCHOR0
add x23, x23, :lo12:.LC35
-.L1551:
+.L1597:
ldrh w1, [x21,6]
adrp x22, .LANCHOR2
- cbz w1, .L1552
+ cbz w1, .L1598
ldrh w2, [x21,2]
sub w1, w1, #1
add x0, x21, x2, sxtw 1
strh w1, [x21,6]
add w2, w2, 1
- ldr w1, [x19,1400]
+ ldr w1, [x19,1408]
and w2, w2, 1023
strh w2, [x21,2]
ldrh w20, [x0,8]
- cbnz w1, .L1553
+ cbnz w1, .L1599
mov w0, w20
str x1, [x29,88]
bl P2V_block_in_plane
uxth w26, w0
- ldr x0, [x19,1016]
+ ldr x0, [x19,1024]
lsl w2, w20, 10
ldr x1, [x29,88]
str w2, [x0,4]
add x0, x24, :lo12:.LANCHOR0
- ldrb w0, [x0,136]
- cbz w0, .L1554
- ldr x0, [x19,1016]
+ ldrb w0, [x0,4044]
+ cbz w0, .L1600
+ ldr x0, [x19,1024]
mov w2, 1
bl FlashEraseBlocks
-.L1554:
+.L1600:
add x25, x22, :lo12:.LANCHOR2
mov w1, 1
mov w2, w1
- ldr x0, [x25,1016]
+ ldr x0, [x25,1024]
bl FlashEraseBlocks
ubfiz x0, x26, 1, 16
- ldr x2, [x25,1168]
+ ldr x2, [x25,1176]
ldrh w1, [x2,x0]
add w1, w1, 1
strh w1, [x2,x0]
- ldr w0, [x25,912]
+ ldr w0, [x25,916]
add w0, w0, 1
- str w0, [x25,912]
- b .L1553
-.L1552:
+ str w0, [x25,916]
+ b .L1599
+.L1598:
adrp x0, .LC34
add x0, x0, :lo12:.LC34
bl printk
-.L1555:
- b .L1555
-.L1553:
+.L1601:
+ b .L1601
+.L1599:
sub w0, w20, #1
mov w1, 65533
cmp w1, w0, uxth
- bcs .L1556
+ bcs .L1602
add x22, x22, :lo12:.LANCHOR2
mov x0, x23
mov w1, w20
- ldrh w2, [x22,1470]
+ ldrh w2, [x22,1478]
bl printk
- b .L1551
-.L1556:
+ b .L1597
+.L1602:
mov w0, w20
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -9534,31 +9732,31 @@ FtlFreeSysBlkQueueOut:
.type test_node_in_list, %function
test_node_in_list:
ldr x2, [x0]
- adrp x0, .LANCHOR2+1280
+ adrp x0, .LANCHOR2+1288
mov x4, -6148914691236517206
uxth w1, w1
mov w5, 65535
- ldr x3, [x0,#:lo12:.LANCHOR2+1280]
+ ldr x3, [x0,#:lo12:.LANCHOR2+1288]
sub x0, x2, x3
asr x0, x0, 1
madd x0, x4, x0, x0
mov w4, 6
uxth w0, w0
-.L1562:
+.L1608:
cmp w1, w0
- beq .L1563
+ beq .L1609
ldrh w0, [x2]
cmp w0, w5
- beq .L1564
+ beq .L1610
umull x2, w0, w4
add x2, x3, x2
- b .L1562
-.L1563:
+ b .L1608
+.L1609:
mov w0, 1
- b .L1561
-.L1564:
+ b .L1607
+.L1610:
mov w0, 0
-.L1561:
+.L1607:
ret
.size test_node_in_list, .-test_node_in_list
.align 2
@@ -9569,31 +9767,31 @@ insert_data_list:
uxth w0, w0
add x3, x2, :lo12:.LANCHOR2
mov x4, x2
- ldrh w1, [x3,756]
+ ldrh w1, [x3,764]
cmp w1, w0
- bls .L1567
+ bls .L1613
mov w7, 6
- ldr x11, [x3,1280]
+ ldr x11, [x3,1288]
mov w1, -1
umull x10, w0, w7
add x5, x11, x10
strh w1, [x5,2]
strh w1, [x11,x10]
- ldr x1, [x3,3568]
- cbnz x1, .L1568
- str x5, [x3,3568]
- b .L1567
-.L1568:
+ ldr x1, [x3,3576]
+ cbnz x1, .L1614
+ str x5, [x3,3576]
+ b .L1613
+.L1614:
ubfiz x8, x0, 1, 16
- ldr x13, [x3,1184]
+ ldr x13, [x3,1192]
ldrh w2, [x5,4]
mov x9, -6148914691236517206
- ldr x12, [x3,1280]
+ ldr x12, [x3,1288]
mov w18, 65535
ldrh w6, [x13,x8]
cmp w2, wzr
- ldr x14, [x3,1168]
- ldrh w17, [x3,756]
+ ldr x14, [x3,1176]
+ ldrh w17, [x3,764]
mov w3, 0
mul w6, w6, w2
sub x2, x1, x12
@@ -9603,13 +9801,13 @@ insert_data_list:
add x9, x14, x8
mov w8, w7
uxth w2, w2
-.L1576:
+.L1622:
add w3, w3, 1
cmp w0, w2
uxth w3, w3
- beq .L1567
+ beq .L1613
cmp w3, w17
- bhi .L1567
+ bhi .L1613
ubfiz x15, x2, 1, 16
ldrh w16, [x1,4]
cmp w16, wzr
@@ -9617,47 +9815,47 @@ insert_data_list:
mul w7, w7, w16
csinv w7, w7, wzr, ne
cmp w7, w6
- bne .L1572
+ bne .L1618
ldrh w15, [x14,x15]
ldrh w7, [x9]
cmp w15, w7
- bcc .L1574
- b .L1573
-.L1572:
- bhi .L1573
-.L1574:
+ bcc .L1620
+ b .L1619
+.L1618:
+ bhi .L1619
+.L1620:
ldrh w7, [x1]
cmp w7, w18
- bne .L1575
+ bne .L1621
strh w2, [x5,2]
add x2, x4, :lo12:.LANCHOR2
strh w0, [x1]
- str x5, [x2,3576]
- b .L1567
-.L1575:
+ str x5, [x2,3584]
+ b .L1613
+.L1621:
umull x1, w7, w8
mov w2, w7
add x1, x12, x1
- b .L1576
-.L1573:
+ b .L1622
+.L1619:
strh w2, [x11,x10]
ldrh w2, [x1,2]
strh w2, [x5,2]
add x2, x4, :lo12:.LANCHOR2
- ldr x3, [x2,3568]
+ ldr x3, [x2,3576]
cmp x1, x3
- bne .L1577
+ bne .L1623
strh w0, [x1,2]
- str x5, [x2,3568]
- b .L1567
-.L1577:
+ str x5, [x2,3576]
+ b .L1613
+.L1623:
ldrh w3, [x1,2]
mov w4, 6
- ldr x2, [x2,1280]
+ ldr x2, [x2,1288]
umull x3, w3, w4
strh w0, [x2,x3]
strh w0, [x1,2]
-.L1567:
+.L1613:
mov w0, 0
ret
.size insert_data_list, .-insert_data_list
@@ -9670,9 +9868,9 @@ INSERT_DATA_LIST:
bl insert_data_list
adrp x0, .LANCHOR2
add x0, x0, :lo12:.LANCHOR2
- ldrh w1, [x0,3584]
+ ldrh w1, [x0,3592]
add w1, w1, 1
- strh w1, [x0,3584]
+ strh w1, [x0,3592]
ldp x29, x30, [sp], 16
ret
.size INSERT_DATA_LIST, .-INSERT_DATA_LIST
@@ -9683,66 +9881,66 @@ insert_free_list:
uxth w0, w0
mov w7, 65535
cmp w0, w7
- beq .L1582
+ beq .L1628
adrp x2, .LANCHOR2
mov w6, 6
add x5, x2, :lo12:.LANCHOR2
mov w1, -1
umull x8, w0, w6
mov x3, x2
- ldr x9, [x5,1280]
+ ldr x9, [x5,1288]
add x4, x9, x8
strh w1, [x4,2]
strh w1, [x9,x8]
- ldr x1, [x5,3592]
- cbnz x1, .L1583
- str x4, [x5,3592]
- b .L1582
-.L1583:
- ldr x11, [x5,1168]
+ ldr x1, [x5,3600]
+ cbnz x1, .L1629
+ str x4, [x5,3600]
+ b .L1628
+.L1629:
+ ldr x11, [x5,1176]
ubfiz x2, x0, 1, 16
- ldr x10, [x5,1280]
+ ldr x10, [x5,1288]
mov x5, -6148914691236517206
ldrh w12, [x11,x2]
sub x2, x1, x10
asr x2, x2, 1
madd x2, x5, x2, x2
uxth w2, w2
-.L1586:
+.L1632:
ubfiz x5, x2, 1, 16
ldrh w5, [x11,x5]
cmp w5, w12
- bcs .L1584
+ bcs .L1630
ldrh w5, [x1]
cmp w5, w7
- bne .L1585
+ bne .L1631
strh w2, [x4,2]
strh w0, [x1]
- b .L1582
-.L1585:
+ b .L1628
+.L1631:
umull x1, w5, w6
mov w2, w5
add x1, x10, x1
- b .L1586
-.L1584:
+ b .L1632
+.L1630:
ldrh w5, [x1,2]
strh w5, [x4,2]
strh w2, [x9,x8]
add x2, x3, :lo12:.LANCHOR2
- ldr x3, [x2,3592]
+ ldr x3, [x2,3600]
cmp x1, x3
- bne .L1587
+ bne .L1633
strh w0, [x1,2]
- str x4, [x2,3592]
- b .L1582
-.L1587:
+ str x4, [x2,3600]
+ b .L1628
+.L1633:
ldrh w3, [x1,2]
mov w4, 6
- ldr x2, [x2,1280]
+ ldr x2, [x2,1288]
umull x3, w3, w4
strh w0, [x2,x3]
strh w0, [x1,2]
-.L1582:
+.L1628:
mov w0, 0
ret
.size insert_free_list, .-insert_free_list
@@ -9755,9 +9953,9 @@ INSERT_FREE_LIST:
bl insert_free_list
adrp x0, .LANCHOR2
add x0, x0, :lo12:.LANCHOR2
- ldrh w1, [x0,3600]
+ ldrh w1, [x0,3608]
add w1, w1, 1
- strh w1, [x0,3600]
+ strh w1, [x0,3608]
ldp x29, x30, [sp], 16
ret
.size INSERT_FREE_LIST, .-INSERT_FREE_LIST
@@ -9772,43 +9970,43 @@ List_remove_node:
ldr x3, [x0]
mov w7, 65535
umull x1, w1, w5
- ldr x2, [x6,1280]
+ ldr x2, [x6,1288]
add x4, x2, x1
cmp x4, x3
- bne .L1590
+ bne .L1636
ldrh w3, [x2,x1]
cmp w3, w7
- bne .L1591
+ bne .L1637
str xzr, [x0]
- b .L1592
-.L1591:
+ b .L1638
+.L1637:
umull x3, w3, w5
add x3, x2, x3
str x3, [x0]
mov w0, -1
strh w0, [x3,2]
- b .L1592
-.L1590:
+ b .L1638
+.L1636:
ldrh w0, [x2,x1]
ldrh w3, [x4,2]
cmp w0, w7
- bne .L1593
+ bne .L1639
cmp w3, w0
- beq .L1592
+ beq .L1638
umull x3, w3, w5
mov w0, -1
strh w0, [x2,x3]
- b .L1592
-.L1593:
+ b .L1638
+.L1639:
umull x0, w0, w5
add x0, x2, x0
strh w3, [x0,2]
ldrh w3, [x4,2]
- ldr x0, [x6,1280]
+ ldr x0, [x6,1288]
ldrh w7, [x2,x1]
umull x3, w3, w5
strh w7, [x0,x3]
-.L1592:
+.L1638:
mov w0, -1
strh w0, [x2,x1]
strh w0, [x4,2]
@@ -9825,14 +10023,14 @@ List_pop_index_node:
str x19, [sp,16]
mov w19, 65535
ldr x2, [x0]
- cbz x2, .L1595
- adrp x3, .LANCHOR2+1280
+ cbz x2, .L1641
+ adrp x3, .LANCHOR2+1288
mov w5, w19
mov w6, 6
- ldr x4, [x3,#:lo12:.LANCHOR2+1280]
-.L1596:
- cbnz w1, .L1597
-.L1599:
+ ldr x4, [x3,#:lo12:.LANCHOR2+1288]
+.L1642:
+ cbnz w1, .L1643
+.L1645:
sub x2, x2, x4
mov x1, -6148914691236517206
asr x2, x2, 1
@@ -9840,17 +10038,17 @@ List_pop_index_node:
uxth w19, w2
mov w1, w19
bl List_remove_node
- b .L1595
-.L1597:
+ b .L1641
+.L1643:
ldrh w3, [x2]
cmp w3, w5
- beq .L1599
+ beq .L1645
umull x3, w3, w6
sub w1, w1, #1
add x2, x4, x3
uxth w1, w1
- b .L1596
-.L1595:
+ b .L1642
+.L1641:
mov w0, w19
ldr x19, [sp,16]
ldp x29, x30, [sp], 32
@@ -9864,27 +10062,27 @@ List_get_gc_head_node:
uxth w3, w0
add x2, x2, :lo12:.LANCHOR2
mov w0, 65535
- ldr x1, [x2,3568]
- cbz x1, .L1607
- ldr x4, [x2,1280]
+ ldr x1, [x2,3576]
+ cbz x1, .L1653
+ ldr x4, [x2,1288]
mov w5, 6
-.L1603:
- cbz w3, .L1604
+.L1649:
+ cbz w3, .L1650
ldrh w2, [x1]
cmp w2, w0
- beq .L1607
+ beq .L1653
umull x2, w2, w5
sub w3, w3, #1
add x1, x4, x2
uxth w3, w3
- b .L1603
-.L1604:
+ b .L1649
+.L1650:
sub x1, x1, x4
mov x0, -6148914691236517206
asr x1, x1, 1
madd x1, x0, x1, x1
uxth w0, w1
-.L1607:
+.L1653:
ret
.size List_get_gc_head_node, .-List_get_gc_head_node
.align 2
@@ -9897,23 +10095,23 @@ List_update_data_list:
adrp x19, .LANCHOR2
uxth w20, w0
add x0, x19, :lo12:.LANCHOR2
- ldrh w1, [x0,3608]
+ ldrh w1, [x0,3616]
cmp w1, w20
- beq .L1609
- ldrh w1, [x0,3656]
+ beq .L1655
+ ldrh w1, [x0,3664]
cmp w1, w20
- beq .L1609
- ldrh w1, [x0,3704]
+ beq .L1655
+ ldrh w1, [x0,3712]
cmp w1, w20
- beq .L1609
+ beq .L1655
mov w3, 6
- ldr x4, [x0,1280]
- ldr x2, [x0,3568]
+ ldr x4, [x0,1288]
+ ldr x2, [x0,3576]
umull x3, w20, w3
add x1, x4, x3
cmp x1, x2
- beq .L1609
- ldr x5, [x0,1184]
+ beq .L1655
+ ldr x5, [x0,1192]
ubfiz x0, x20, 1, 16
ldrh w2, [x5,x0]
ldrh w0, [x1,4]
@@ -9923,11 +10121,11 @@ List_update_data_list:
mov w0, 65535
csinv w2, w2, wzr, ne
cmp w1, w0
- bne .L1611
+ bne .L1657
ldrh w0, [x4,x3]
cmp w0, w1
- beq .L1609
-.L1611:
+ beq .L1655
+.L1657:
mov w0, 6
mov x3, -6148914691236517206
umull x1, w1, w0
@@ -9940,17 +10138,17 @@ List_update_data_list:
mul w0, w0, w1
csinv w0, w0, wzr, ne
cmp w2, w0
- bcs .L1609
+ bcs .L1655
add x19, x19, :lo12:.LANCHOR2
mov w1, w20
- add x0, x19, 3568
+ add x0, x19, 3576
bl List_remove_node
- ldrh w0, [x19,3584]
+ ldrh w0, [x19,3592]
sub w0, w0, #1
- strh w0, [x19,3584]
+ strh w0, [x19,3592]
mov w0, w20
bl INSERT_DATA_LIST
-.L1609:
+.L1655:
mov w0, 0
ldp x19, x20, [sp,16]
ldp x29, x30, [sp], 32
@@ -9976,76 +10174,76 @@ ftl_free_no_use_map_blk:
mov x0, x21
bl ftl_memset
mov w0, 0
-.L1616:
+.L1662:
ldrh w1, [x19,6]
cmp w1, w0
- bls .L1638
+ bls .L1684
ubfiz x1, x0, 2, 16
ldr w2, [x20,x1]
mov w1, 0
ubfx x2, x2, 10, 16
-.L1617:
+.L1663:
ldrh w3, [x19,10]
cmp w3, w1
- bls .L1639
+ bls .L1685
ubfiz x3, x1, 1, 16
ldrh w4, [x22,x3]
cmp w2, w4
- bne .L1618
- cbz w4, .L1618
+ bne .L1664
+ cbz w4, .L1664
ldrh w4, [x21,x3]
add w4, w4, 1
strh w4, [x21,x3]
-.L1618:
+.L1664:
add w1, w1, 1
uxth w1, w1
- b .L1617
-.L1639:
+ b .L1663
+.L1685:
add w0, w0, 1
uxth w0, w0
- b .L1616
-.L1638:
- adrp x0, .LANCHOR2+820
+ b .L1662
+.L1684:
+ adrp x0, .LANCHOR2+826
mov w23, 0
mov w20, w23
- ldrh w1, [x0,#:lo12:.LANCHOR2+820]
+ ldrh w1, [x0,#:lo12:.LANCHOR2+826]
ldrh w0, [x19]
strh w1, [x21,x0,lsl 1]
ldrh w24, [x21]
-.L1621:
+.L1667:
ldrh w0, [x19,10]
cmp w0, w20
- bls .L1640
+ bls .L1686
ubfiz x2, x20, 1, 16
ldrh w1, [x21,x2]
cmp w24, w1
- bls .L1622
+ bls .L1668
ldrh w0, [x22,x2]
add x25, x22, x2
- cbnz w0, .L1623
- b .L1624
-.L1622:
- cbnz w1, .L1624
+ cbnz w0, .L1669
+ b .L1670
+.L1668:
+ cbnz w1, .L1670
ldrh w0, [x22,x2]
add x25, x22, x2
- cbz w0, .L1624
-.L1626:
+ cbz w0, .L1670
+.L1672:
mov w1, 1
bl FtlFreeSysBlkQueueIn
strh wzr, [x25]
ldrh w0, [x19,8]
sub w0, w0, #1
strh w0, [x19,8]
-.L1624:
+.L1670:
add w20, w20, 1
uxth w20, w20
- b .L1621
-.L1623:
+ b .L1667
+.L1669:
mov w23, w20
mov w24, w1
- cbz w1, .L1626
- b .L1624
-.L1640:
+ cbz w1, .L1672
+ b .L1670
+.L1686:
mov w0, w23
ldr x25, [sp,64]
ldp x19, x20, [sp,16]
@@ -10065,12 +10263,12 @@ ftl_map_blk_alloc_new_blk:
mov w20, 0
ldrh w2, [x0,10]
ldr x1, [x0,16]
-.L1642:
+.L1688:
cmp w20, w2
- beq .L1646
+ beq .L1692
mov x22, x1
ldrh w21, [x1],2
- cbnz w21, .L1643
+ cbnz w21, .L1689
mov x19, x0
bl FtlFreeSysBlkQueueOut
strh w0, [x22]
@@ -10078,15 +10276,15 @@ ftl_map_blk_alloc_new_blk:
sub w2, w1, #1
mov w0, 65533
cmp w0, w2, uxth
- bcs .L1644
- adrp x2, .LANCHOR2+1470
+ bcs .L1690
+ adrp x2, .LANCHOR2+1478
adrp x0, .LC36
add x0, x0, :lo12:.LC36
- ldrh w2, [x2,#:lo12:.LANCHOR2+1470]
+ ldrh w2, [x2,#:lo12:.LANCHOR2+1478]
bl printk
-.L1645:
- b .L1645
-.L1644:
+.L1691:
+ b .L1691
+.L1690:
ldr w0, [x19,48]
strh w21, [x19,2]
add w0, w0, 1
@@ -10095,12 +10293,12 @@ ftl_map_blk_alloc_new_blk:
strh w20, [x19]
add w0, w0, 1
strh w0, [x19,8]
- b .L1646
-.L1643:
+ b .L1692
+.L1689:
add w20, w20, 1
uxth w20, w20
- b .L1642
-.L1646:
+ b .L1688
+.L1692:
mov w0, 0
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -10114,113 +10312,127 @@ FtlMapWritePage:
stp x29, x30, [sp, -112]!
add x29, sp, 0
stp x25, x26, [sp,64]
- adrp x25, .LANCHOR2
- mov x26, x2
stp x23, x24, [sp,48]
- stp x27, x28, [sp,80]
+ adrp x26, .LANCHOR2
adrp x23, .LC37
- add x28, x25, :lo12:.LANCHOR2
stp x21, x22, [sp,32]
+ stp x27, x28, [sp,80]
stp x19, x20, [sp,16]
- mov w24, w1
+ mov w25, w1
mov x19, x0
+ mov x27, x2
mov w22, 0
- add x0, x23, :lo12:.LC37
- mov w27, 65535
- add x21, x28, 1408
- str x0, [x29,104]
-.L1649:
- add x0, x25, :lo12:.LANCHOR2
+ mov w28, 65535
+ add x21, x26, :lo12:.LANCHOR2
+ add x23, x23, :lo12:.LC37
+.L1695:
+ add x0, x26, :lo12:.LANCHOR2
adrp x20, .LANCHOR2
- ldr w1, [x0,896]
+ ldr w1, [x0,900]
add w1, w1, 1
- str w1, [x0,896]
- ldrh w0, [x0,820]
+ str w1, [x0,900]
+ ldrh w0, [x0,826]
ldrh w1, [x19,2]
sub w0, w0, #1
cmp w1, w0
- bge .L1650
+ bge .L1696
ldrh w0, [x19]
- cmp w0, w27
- bne .L1651
-.L1650:
+ cmp w0, w28
+ bne .L1697
+.L1696:
mov x0, x19
bl Ftl_write_map_blk_to_last_page
-.L1651:
- ldr w1, [x28,1400]
- cbnz w1, .L1652
+.L1697:
+ ldr w1, [x21,1408]
+ cbnz w1, .L1698
ldrh w2, [x19]
+ add x3, x21, 1416
ldr x0, [x19,16]
- ldrh w23, [x0,x2,lsl 1]
+ str x3, [x29,104]
+ ldrh w24, [x0,x2,lsl 1]
mov w2, 16
ldrh w0, [x19,2]
- str x26, [x21,8]
- orr w0, w0, w23, lsl 10
- str w0, [x21,4]
- ldr x0, [x28,1112]
- str x0, [x21,16]
+ str x27, [x21,1424]
+ orr w0, w0, w24, lsl 10
+ str w0, [x21,1420]
+ ldr x0, [x21,1120]
+ str x0, [x21,1432]
bl ftl_memset
- ldr x0, [x21,16]
- ldr w1, [x19,48]
- str w1, [x0,4]
- strh w24, [x0,8]
- ldrh w1, [x19,4]
- strh w1, [x0]
+ ldr x3, [x29,104]
+ ldr w0, [x19,48]
+ ldr x2, [x3,16]
+ str w0, [x2,4]
+ strh w25, [x2,8]
+ ldrh w0, [x19,4]
+ strh w0, [x2]
+ adrp x0, .LANCHOR0+24
+ strh w24, [x2,2]
+ ldrb w0, [x0,#:lo12:.LANCHOR0+24]
+ cbz w0, .L1699
+ ldr x0, [x3,8]
+ ldrh w1, [x21,834]
+ str x2, [x29,104]
+ bl js_hash
+ ldr x2, [x29,104]
+ str w0, [x2,12]
+.L1699:
+ add x4, x21, 1416
mov w1, 1
- strh w23, [x0,2]
- mov w3, w1
- mov x0, x21
mov w2, w1
+ mov x0, x4
+ mov w3, w1
+ str x4, [x29,104]
bl FlashProgPages
- ldrh w3, [x19,2]
- add w3, w3, 1
- uxth w3, w3
- strh w3, [x19,2]
- ldr w0, [x21]
- cmn w0, #1
- bne .L1653
- ldr x0, [x29,104]
+ ldrh w1, [x19,2]
+ ldr x4, [x29,104]
+ add w1, w1, 1
+ uxth w1, w1
+ strh w1, [x19,2]
+ ldr w2, [x21,1416]
+ cmn w2, #1
+ bne .L1700
+ ldr w1, [x4,4]
+ mov x0, x23
add w22, w22, 1
- ldr w1, [x21,4]
- uxth w22, w22
bl printk
+ uxth w22, w22
ldrh w0, [x19,2]
cmp w0, 2
- bhi .L1654
- ldrh w0, [x28,820]
+ bhi .L1701
+ ldrh w0, [x21,826]
sub w0, w0, #1
strh w0, [x19,2]
-.L1654:
+.L1701:
cmp w22, 3
- bls .L1649
+ bls .L1695
add x20, x20, :lo12:.LANCHOR2
adrp x0, .LC38
add x0, x0, :lo12:.LC38
mov w2, w22
- ldr w1, [x20,1412]
+ ldr w1, [x20,1420]
bl printk
mov w0, 1
- str w0, [x20,1400]
- b .L1652
-.L1653:
- cbz w0, .L1656
- strh w23, [x19,60]
-.L1656:
- cmp w3, 1
- beq .L1657
- cmp w0, 256
- beq .L1657
+ str w0, [x20,1408]
+ b .L1698
+.L1700:
+ cbz w2, .L1703
+ strh w24, [x19,60]
+.L1703:
+ cmp w1, 1
+ beq .L1704
+ cmp w2, 256
+ beq .L1704
ldr w0, [x19,56]
- cbz w0, .L1658
-.L1657:
+ cbz w0, .L1705
+.L1704:
str wzr, [x19,56]
- b .L1649
-.L1658:
+ b .L1695
+.L1705:
add x20, x20, :lo12:.LANCHOR2
ldr x0, [x19,40]
- ldr w1, [x20,1412]
- str w1, [x0,w24,uxtw 2]
-.L1652:
+ ldr w1, [x20,1420]
+ str w1, [x0,w25,uxtw 2]
+.L1698:
mov w0, 0
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -10250,12 +10462,12 @@ ftl_map_blk_gc:
ldrh w2, [x19,8]
sub w1, w1, #4
cmp w2, w1
- blt .L1663
+ blt .L1713
ubfiz x1, x0, 1, 16
ldrh w24, [x21,x1]
- cbz w24, .L1663
+ cbz w24, .L1713
ldr w0, [x19,52]
- cbnz w0, .L1663
+ cbnz w0, .L1713
mov w2, 1
str w2, [x19,52]
strh w0, [x21,x1]
@@ -10264,26 +10476,26 @@ ftl_map_blk_gc:
sub w0, w0, #1
strh w0, [x19,8]
add x0, x20, :lo12:.LANCHOR2
- ldrh w0, [x0,820]
+ ldrh w0, [x0,826]
cmp w1, w0
- bcc .L1664
+ bcc .L1714
mov x0, x19
bl ftl_map_blk_alloc_new_blk
-.L1664:
+.L1714:
add x26, x20, :lo12:.LANCHOR2
mov w21, 0
- add x22, x26, 1408
-.L1665:
+ add x22, x26, 1416
+.L1715:
ldrh w0, [x19,6]
cmp w0, w21
- bls .L1674
+ bls .L1724
ubfiz x0, x21, 2, 16
add x27, x25, x0
ldr w1, [x25,x0]
cmp w24, w1, lsr 10
- bne .L1666
- ldr x1, [x26,1056]
- ldr x23, [x26,1112]
+ bne .L1716
+ ldr x1, [x26,1064]
+ ldr x23, [x26,1120]
str x1, [x22,8]
mov w1, 1
str x23, [x22,16]
@@ -10294,48 +10506,48 @@ ftl_map_blk_gc:
bl FlashReadPages
ldr w0, [x22]
cmn w0, #1
- bne .L1667
-.L1669:
+ bne .L1717
+.L1719:
add x20, x20, :lo12:.LANCHOR2
str wzr, [x27]
adrp x0, .LC39
ldrh w2, [x23,8]
add x0, x0, :lo12:.LC39
- ldr w1, [x20,1412]
+ ldr w1, [x20,1420]
bl printk
mov w0, 1
- str w0, [x20,1400]
- b .L1668
-.L1667:
+ str w0, [x20,1408]
+ b .L1718
+.L1717:
ldrh w0, [x23,8]
cmp w0, w21
- bne .L1669
+ bne .L1719
ldrh w1, [x23]
ldrh w0, [x19,4]
cmp w1, w0
- bne .L1669
+ bne .L1719
ldr x2, [x22,8]
mov x0, x19
mov w1, w21
bl FtlMapWritePage
-.L1666:
+.L1716:
add w21, w21, 1
uxth w21, w21
- b .L1665
-.L1674:
+ b .L1715
+.L1724:
mov w0, w24
mov w1, 1
bl FtlFreeSysBlkQueueIn
str wzr, [x19,52]
-.L1663:
+.L1713:
add x20, x20, :lo12:.LANCHOR2
ldrh w1, [x19,2]
- ldrh w0, [x20,820]
+ ldrh w0, [x20,826]
cmp w1, w0
- bcc .L1668
+ bcc .L1718
mov x0, x19
bl ftl_map_blk_alloc_new_blk
-.L1668:
+.L1718:
mov w0, 0
ldr x27, [sp,80]
ldp x19, x20, [sp,16]
@@ -10353,18 +10565,18 @@ Ftl_write_map_blk_to_last_page:
add x29, sp, 0
stp x21, x22, [sp,32]
adrp x21, .LANCHOR2
- str x23, [sp,48]
add x1, x21, :lo12:.LANCHOR2
stp x19, x20, [sp,16]
- ldr w20, [x1,1400]
+ stp x23, x24, [sp,48]
+ ldr w20, [x1,1408]
ldr x22, [x0,16]
- ldr x23, [x0,40]
- cbnz w20, .L1676
+ ldr x24, [x0,40]
+ cbnz w20, .L1726
mov x19, x0
ldrh w0, [x0]
mov w2, 65535
cmp w0, w2
- bne .L1677
+ bne .L1727
ldrh w0, [x19,8]
add w0, w0, 1
strh w0, [x19,8]
@@ -10375,56 +10587,65 @@ Ftl_write_map_blk_to_last_page:
strh w20, [x19]
add w0, w0, 1
str w0, [x19,48]
- b .L1676
-.L1677:
+ b .L1726
+.L1727:
ubfiz x0, x0, 1, 16
- ldr w2, [x19,48]
- ldrh w22, [x22,x0]
- ldrh w0, [x19,2]
- orr w0, w0, w22, lsl 10
- str w0, [x1,1412]
- ldr x0, [x1,1048]
- str x0, [x1,1416]
- ldr x0, [x1,1112]
- str x0, [x1,1424]
- str w2, [x0,4]
- mov w2, -1291
- strh w2, [x0,8]
- ldrh w2, [x19,4]
- strh w2, [x0]
- strh w22, [x0,2]
- ldrh w2, [x1,820]
- ldr x0, [x1,1048]
+ ldrh w2, [x19,2]
+ ldrh w23, [x22,x0]
+ ldr x22, [x1,1120]
+ str x22, [x1,1432]
+ orr w2, w2, w23, lsl 10
+ str w2, [x1,1420]
+ ldr x2, [x1,1056]
+ str x2, [x1,1424]
+ ldr w0, [x19,48]
+ str w0, [x22,4]
+ mov w0, -1291
+ strh w0, [x22,8]
+ ldrh w0, [x19,4]
+ strh w0, [x22]
+ strh w23, [x22,2]
+ ldrh w2, [x1,826]
+ ldr x0, [x1,1056]
mov w1, 255
lsl w2, w2, 3
bl ftl_memset
mov w0, w20
-.L1678:
+.L1728:
ldrh w1, [x19,6]
cmp w1, w0
- bls .L1681
+ bls .L1735
ubfiz x3, x0, 2, 32
- ldr w1, [x23,x3]
- cmp w22, w1, lsr 10
- bne .L1679
+ ldr w1, [x24,x3]
+ cmp w23, w1, lsr 10
+ bne .L1729
add x2, x21, :lo12:.LANCHOR2
add w20, w20, 1
uxth w20, w20
- ldr x4, [x2,1048]
+ ldr x4, [x2,1056]
ubfiz x1, x20, 3, 16
str w0, [x4,x1]
- ldr x2, [x2,1048]
- ldr w3, [x23,x3]
+ ldr x2, [x2,1056]
+ ldr w3, [x24,x3]
add x1, x2, x1
str w3, [x1,4]
-.L1679:
+.L1729:
add w0, w0, 1
uxth w0, w0
- b .L1678
-.L1681:
+ b .L1728
+.L1735:
+ adrp x0, .LANCHOR0+24
+ ldrb w0, [x0,#:lo12:.LANCHOR0+24]
+ cbz w0, .L1731
+ add x1, x21, :lo12:.LANCHOR2
+ ldr x0, [x1,1424]
+ ldrh w1, [x1,834]
+ bl js_hash
+ str w0, [x22,12]
+.L1731:
mov w1, 1
add x0, x21, :lo12:.LANCHOR2
- add x0, x0, 1408
+ add x0, x0, 1416
mov w2, w1
mov w3, 0
bl FlashProgPages
@@ -10433,11 +10654,11 @@ Ftl_write_map_blk_to_last_page:
strh w0, [x19,2]
mov x0, x19
bl ftl_map_blk_gc
-.L1676:
+.L1726:
mov w0, 0
- ldr x23, [sp,48]
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
+ ldp x23, x24, [sp,48]
ldp x29, x30, [sp], 64
ret
.size Ftl_write_map_blk_to_last_page, .-Ftl_write_map_blk_to_last_page
@@ -10451,13 +10672,13 @@ flush_l2p_region:
adrp x20, .LANCHOR2
ubfiz x19, x0, 4, 16
add x20, x20, :lo12:.LANCHOR2
- add x0, x20, 3752
- ldr x1, [x20,1264]
+ add x0, x20, 3760
+ ldr x1, [x20,1272]
add x2, x1, x19
ldrh w1, [x1,x19]
ldr x2, [x2,8]
bl FtlMapWritePage
- ldr x0, [x20,1264]
+ ldr x0, [x20,1272]
add x19, x0, x19
ldr w0, [x19,4]
and w0, w0, 2147483647
@@ -10476,65 +10697,65 @@ select_l2p_ram_region:
add x1, x0, :lo12:.LANCHOR2
mov x3, x0
mov w5, 65535
- ldrh w2, [x1,858]
- ldr x1, [x1,1264]
-.L1684:
+ ldrh w2, [x1,862]
+ ldr x1, [x1,1272]
+.L1738:
uxth w0, w4
cmp w0, w2
- bcs .L1700
+ bcs .L1754
add x4, x4, 1
add x6, x1, x4, lsl 4
ldrh w6, [x6,-16]
cmp w6, w5
- bne .L1684
- b .L1685
-.L1700:
+ bne .L1738
+ b .L1739
+.L1754:
mov w0, w2
mov x4, 0
mov w7, -2147483648
-.L1687:
+.L1741:
uxth w6, w4
cmp w6, w2
- bcs .L1701
+ bcs .L1755
add x5, x1, x4, lsl 4
ldr w5, [x5,4]
- tbnz w5, #31, .L1696
+ tbnz w5, #31, .L1750
cmp w5, w7
- bcc .L1688
-.L1696:
+ bcc .L1742
+.L1750:
mov w5, w7
mov w6, w0
-.L1688:
+.L1742:
add x4, x4, 1
mov w7, w5
mov w0, w6
- b .L1687
-.L1701:
+ b .L1741
+.L1755:
cmp w0, w2
- bcc .L1685
+ bcc .L1739
add x0, x3, :lo12:.LANCHOR2
add x1, x1, 4
mov w4, -1
mov w3, 0
- ldrh w5, [x0,3816]
+ ldrh w5, [x0,3824]
mov w0, w2
-.L1691:
+.L1745:
cmp w3, w2
- beq .L1685
+ beq .L1739
ldr w7, [x1]
cmp w7, w4
- bcs .L1692
+ bcs .L1746
ldrh w6, [x1,-4]
cmp w6, w5
csel w4, w4, w7, eq
cmp w6, w5
csel w0, w0, w3, eq
-.L1692:
+.L1746:
add w3, w3, 1
add x1, x1, 16
uxth w3, w3
- b .L1691
-.L1685:
+ b .L1745
+.L1739:
ret
.size select_l2p_ram_region, .-select_l2p_ram_region
.align 2
@@ -10545,162 +10766,174 @@ log2phys:
add x29, sp, 0
stp x21, x22, [sp,32]
adrp x21, .LANCHOR2
- add x3, x21, :lo12:.LANCHOR2
+ add x4, x21, :lo12:.LANCHOR2
+ stp x19, x20, [sp,16]
stp x23, x24, [sp,48]
stp x25, x26, [sp,64]
stp x27, x28, [sp,80]
- stp x19, x20, [sp,16]
- mov x26, x1
- mov w27, w2
- ldrh w1, [x3,826]
- mov x2, 1
- ldr x19, [x3,1264]
- add w1, w1, 7
- lsr w25, w0, w1
- lsl x1, x2, x1
- sub w1, w1, #1
- and w23, w1, w0
- ldrh w1, [x3,858]
- uxth w24, w25
- uxth w0, w23
- str w0, [x29,108]
+ ldr w5, [x4,1404]
+ ldrh w3, [x4,832]
+ cmp w0, w5
+ bcs .L1757
+ add w27, w3, 7
+ str x1, [x29,104]
+ lsr w28, w0, w27
+ mov w25, w0
+ str w2, [x29,100]
mov x0, 0
-.L1703:
- uxth x20, w0
- cmp w20, w1
- bcs .L1718
+ uxth w22, w28
+ ldrh w1, [x4,862]
+ ldr x19, [x4,1272]
+ b .L1758
+.L1757:
+ mov w0, -1
+ cbnz w2, .L1759
+ str w0, [x1]
+ b .L1759
+.L1763:
add x0, x0, 1
add x2, x19, x0, lsl 4
ldrh w2, [x2,-16]
- cmp w2, w24
- bne .L1703
-.L1704:
- ldr w23, [x29,108]
- cbnz w27, .L1705
- add x0, x21, :lo12:.LANCHOR2
- ldr x1, [x0,1264]
- add x1, x1, x20, lsl 4
- ldr x0, [x1,8]
- ldr w0, [x0,x23,lsl 2]
- str w0, [x26]
- b .L1706
-.L1705:
- add x1, x21, :lo12:.LANCHOR2
- lsl x0, x20, 4
- ldr w3, [x26]
- ldr x2, [x1,1264]
- add x2, x2, x0
- ldr x2, [x2,8]
- str w3, [x2,x23,lsl 2]
- strh w24, [x1,3816]
- ldr x2, [x1,1264]
- add x0, x2, x0
- ldr w2, [x0,4]
- orr w2, w2, -2147483648
- str w2, [x0,4]
-.L1706:
- add x21, x21, :lo12:.LANCHOR2
- ldr x0, [x21,1264]
- add x20, x0, x20, lsl 4
- ldr w0, [x20,4]
- cmn w0, #1
- beq .L1715
- add w0, w0, 1
- str w0, [x20,4]
- b .L1715
-.L1718:
+ cmp w2, w22
+ beq .L1760
+.L1758:
+ uxth x20, w0
+ cmp w20, w1
+ bcc .L1763
bl select_l2p_ram_region
uxth x20, w0
- ubfiz x22, x20, 4, 16
+ ubfiz x26, x20, 4, 16
mov w2, 65535
- add x1, x19, x22
- ldrh w3, [x19,x22]
+ add x1, x19, x26
+ ldrh w3, [x19,x26]
cmp w3, w2
- beq .L1709
- ldr w1, [x1,4]
- tbz w1, #31, .L1709
- bl flush_l2p_region
-.L1709:
+ bne .L1771
+.L1764:
add x19, x21, :lo12:.LANCHOR2
- ubfiz x0, x24, 2, 16
- ldr x1, [x19,1240]
- ldr w23, [x1,x0]
- cbnz w23, .L1710
- ldr x0, [x19,1264]
+ ubfiz x0, x22, 2, 16
+ ldr x1, [x19,1248]
+ ldr w24, [x1,x0]
+ cbnz w24, .L1765
+ ldr x0, [x19,1272]
mov w1, 255
- ldrh w2, [x19,828]
- add x0, x0, x22
+ ldrh w2, [x19,834]
+ add x0, x0, x26
ldr x0, [x0,8]
bl ftl_memset
- ldr x0, [x19,1264]
- strh w24, [x0,x22]
- ldr x0, [x19,1264]
- add x22, x0, x22
- str w23, [x22,4]
- b .L1704
-.L1710:
- ldr x0, [x19,1264]
+ ldr x0, [x19,1272]
+ strh w22, [x0,x26]
+ ldr x0, [x19,1272]
+ add x26, x0, x26
+ str w24, [x26,4]
+.L1760:
+ mov x1, 1
+ lsl x3, x1, x27
+ ldr w1, [x29,100]
+ sub w3, w3, #1
+ and w0, w25, w3
+ uxth x0, w0
+ cbnz w1, .L1761
+ add x1, x21, :lo12:.LANCHOR2
+ ldr x1, [x1,1272]
+ add x1, x1, x20, lsl 4
+ ldr x1, [x1,8]
+ ldr w0, [x1,x0,lsl 2]
+ ldr x1, [x29,104]
+ str w0, [x1]
+ b .L1762
+.L1761:
+ ldr x2, [x29,104]
+ lsl x1, x20, 4
+ ldr w4, [x2]
+ add x2, x21, :lo12:.LANCHOR2
+ ldr x3, [x2,1272]
+ add x3, x3, x1
+ ldr x3, [x3,8]
+ str w4, [x3,x0,lsl 2]
+ strh w22, [x2,3824]
+ ldr x0, [x2,1272]
+ add x0, x0, x1
+ ldr w1, [x0,4]
+ orr w1, w1, -2147483648
+ str w1, [x0,4]
+.L1762:
+ add x21, x21, :lo12:.LANCHOR2
+ ldr x0, [x21,1272]
+ add x20, x0, x20, lsl 4
+ mov w0, 0
+ ldr w1, [x20,4]
+ cmn w1, #1
+ beq .L1759
+ add w1, w1, 1
+ str w1, [x20,4]
+ b .L1759
+.L1771:
+ ldr w1, [x1,4]
+ tbz w1, #31, .L1764
+ bl flush_l2p_region
+ b .L1764
+.L1765:
+ ldr x0, [x19,1272]
mov w1, 1
- add x28, x19, 1408
+ add x23, x19, 1416
mov w2, w1
- add x0, x0, x22
- str w23, [x19,1412]
+ add x0, x0, x26
+ str w24, [x19,1420]
ldr x0, [x0,8]
- str x0, [x19,1416]
- ldr x0, [x19,1112]
str x0, [x19,1424]
- mov x0, x28
+ ldr x0, [x19,1120]
+ str x0, [x19,1432]
+ mov x0, x23
bl FlashReadPages
- ldr x0, [x19,1424]
+ ldr x0, [x19,1432]
ldrh w0, [x0,8]
- cmp w0, w24
- beq .L1711
+ cmp w0, w22
+ beq .L1766
adrp x0, .LC40
- uxth w1, w25
- mov w2, w23
+ uxth w1, w28
+ mov w2, w24
add x0, x0, :lo12:.LC40
bl printk
mov w2, 4
- ldr x1, [x19,1424]
+ ldr x1, [x19,1432]
adrp x0, .LC17
mov w3, w2
add x0, x0, :lo12:.LC17
bl rknand_print_hex
adrp x0, .LC41
- ldr x1, [x19,1240]
- ldrh w3, [x19,856]
+ ldr x1, [x19,1248]
+ ldrh w3, [x19,860]
add x0, x0, :lo12:.LC41
mov w2, 4
bl rknand_print_hex
mov w0, 1
- str w0, [x19,1400]
- b .L1712
-.L1711:
- ldr w0, [x19,1408]
+ str w0, [x19,1408]
+ b .L1767
+.L1766:
+ ldr w0, [x19,1416]
cmp w0, 256
- bne .L1712
- and w25, w25, 65535
+ bne .L1767
+ and w28, w28, 65535
adrp x0, .LC42
- mov w1, w25
- mov w2, w23
+ mov w1, w28
+ mov w2, w24
add x0, x0, :lo12:.LC42
bl printk
- ldr x2, [x19,1264]
- add x0, x19, 3752
- mov w1, w25
- add x2, x2, x22
+ ldr x2, [x19,1272]
+ add x0, x19, 3760
+ mov w1, w28
+ add x2, x2, x26
ldr x2, [x2,8]
bl FtlMapWritePage
-.L1712:
+.L1767:
add x1, x21, :lo12:.LANCHOR2
- ldr x0, [x1,1264]
- add x0, x0, x22
+ ldr x0, [x1,1272]
+ add x0, x0, x26
str wzr, [x0,4]
- ldr x0, [x1,1264]
- strh w24, [x0,x22]
- b .L1704
-.L1715:
- mov w0, 0
+ ldr x0, [x1,1272]
+ strh w22, [x0,x26]
+ b .L1760
+.L1759:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -10723,21 +10956,21 @@ FtlVendorPartWrite:
mov w22, w1
mov w25, w0
add w1, w0, w1
- ldrh w0, [x19,812]
+ ldrh w0, [x19,820]
stp x23, x24, [sp,48]
stp x27, x28, [sp,80]
cmp w1, w0
mov x24, x2
- ldrh w23, [x19,826]
+ ldrh w23, [x19,832]
mov w21, -1
- bhi .L1720
+ bhi .L1773
lsr w23, w25, w23
mov w21, 0
- add x27, x19, 3824
-.L1721:
- cbz w22, .L1720
- ldrh w1, [x19,824]
- ldr x0, [x19,1232]
+ add x27, x19, 3832
+.L1774:
+ cbz w22, .L1773
+ ldrh w1, [x19,830]
+ ldr x0, [x19,1240]
udiv w26, w25, w1
ldr w2, [x0,w23,uxtw 2]
uxth w0, w22
@@ -10747,9 +10980,9 @@ FtlVendorPartWrite:
cmp w20, w22
csel w20, w0, w20, hi
cmp w20, w1
- beq .L1723
- cbz w2, .L1723
- ldr x0, [x19,1064]
+ beq .L1776
+ cbz w2, .L1776
+ ldr x0, [x19,1072]
mov w1, 1
str w2, [x29,108]
mov w2, w1
@@ -10757,14 +10990,14 @@ FtlVendorPartWrite:
add x0, x29, 104
str xzr, [x29,120]
bl FlashReadPages
- b .L1724
-.L1723:
- ldr x0, [x19,1064]
+ b .L1777
+.L1776:
+ ldr x0, [x19,1072]
mov w1, 0
- ldrh w2, [x19,828]
+ ldrh w2, [x19,834]
bl ftl_memset
-.L1724:
- ldr x0, [x19,1064]
+.L1777:
+ ldr x0, [x19,1072]
lsl w28, w20, 9
ubfiz x26, x26, 9, 16
mov x1, x24
@@ -10774,15 +11007,15 @@ FtlVendorPartWrite:
add w25, w25, w20
bl ftl_memcpy
add x24, x24, x28, sxtw
- ldr x2, [x19,1064]
+ ldr x2, [x19,1072]
mov w1, w23
mov x0, x27
add w23, w23, 1
bl FtlMapWritePage
cmn w0, #1
csinv w21, w21, wzr, ne
- b .L1721
-.L1720:
+ b .L1774
+.L1773:
mov w0, w21
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -10808,23 +11041,23 @@ FtlVendorPartRead:
mov w22, w1
mov x25, x2
add w2, w0, w1
- ldrh w1, [x3,812]
+ ldrh w1, [x3,820]
mov w23, w0
- ldrh w20, [x3,826]
+ ldrh w20, [x3,832]
cmp w2, w1
mov w0, -1
- bhi .L1735
+ bhi .L1788
adrp x26, .LC43
- add x0, x3, 3824
+ add x0, x3, 3832
lsr w20, w23, w20
mov w21, 0
mov x28, x3
add x26, x26, :lo12:.LC43
str x0, [x29,104]
-.L1736:
- cbz w22, .L1744
- ldrh w19, [x28,824]
- ldr x0, [x28,1232]
+.L1789:
+ cbz w22, .L1797
+ ldrh w19, [x28,830]
+ ldr x0, [x28,1240]
udiv w24, w23, w19
ldr w4, [x0,w20,uxtw 2]
uxth w0, w22
@@ -10834,8 +11067,8 @@ FtlVendorPartRead:
cmp w19, w22
csel w19, w0, w19, hi
lsl w27, w19, 9
- cbz w4, .L1738
- ldr x0, [x28,1064]
+ cbz w4, .L1791
+ ldr x0, [x28,1072]
mov w1, 1
str x0, [x29,128]
mov w2, w1
@@ -10847,40 +11080,40 @@ FtlVendorPartRead:
ldr w0, [x29,120]
ldr x4, [x29,96]
cmn w0, #1
- ldr w0, [x28,1408]
+ ldr w0, [x28,1416]
csinv w21, w21, wzr, ne
cmp w0, 256
- bne .L1740
+ bne .L1793
mov w1, w20
mov w2, w4
mov x0, x26
bl printk
ldr x0, [x29,104]
mov w1, w20
- ldr x2, [x28,1064]
+ ldr x2, [x28,1072]
bl FtlMapWritePage
-.L1740:
- ldr x1, [x28,1064]
+.L1793:
+ ldr x1, [x28,1072]
ubfiz x24, x24, 9, 16
mov x0, x25
mov w2, w27
add x1, x1, x24
bl ftl_memcpy
- b .L1741
-.L1738:
+ b .L1794
+.L1791:
mov x0, x25
mov w1, w4
mov w2, w27
bl ftl_memset
-.L1741:
+.L1794:
add w20, w20, 1
sub w22, w22, w19
add w23, w23, w19
add x25, x25, x27, sxtw
- b .L1736
-.L1744:
+ b .L1789
+.L1797:
mov w0, w21
-.L1735:
+.L1788:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -10917,35 +11150,35 @@ ftl_sys_read:
FtlUpdateVaildLpn:
adrp x1, .LANCHOR2
add x3, x1, :lo12:.LANCHOR2
- ldrh w2, [x3,3888]
- cbnz w0, .L1748
+ ldrh w2, [x3,3896]
+ cbnz w0, .L1801
cmp w2, 4
- bhi .L1748
+ bhi .L1801
add w2, w2, 1
- strh w2, [x3,3888]
- b .L1747
-.L1748:
+ strh w2, [x3,3896]
+ b .L1800
+.L1801:
add x0, x1, :lo12:.LANCHOR2
mov w7, 65535
- strh wzr, [x0,3888]
- str wzr, [x0,3892]
- ldrh w5, [x0,756]
- ldr x6, [x0,1184]
+ strh wzr, [x0,3896]
+ str wzr, [x0,3900]
+ ldrh w5, [x0,764]
+ ldr x6, [x0,1192]
mov x0, 0
-.L1749:
+.L1802:
cmp w5, w0, uxth
- bls .L1747
+ bls .L1800
ldrh w4, [x6,x0,lsl 1]
cmp w4, w7
- beq .L1750
+ beq .L1803
add x3, x1, :lo12:.LANCHOR2
- ldr w2, [x3,3892]
+ ldr w2, [x3,3900]
add w2, w4, w2
- str w2, [x3,3892]
-.L1750:
+ str w2, [x3,3900]
+.L1803:
add x0, x0, 1
- b .L1749
-.L1747:
+ b .L1802
+.L1800:
ret
.size FtlUpdateVaildLpn, .-FtlUpdateVaildLpn
.align 2
@@ -10959,41 +11192,41 @@ FtlMapBlkWriteDumpData:
ldr w1, [x0,56]
ldrh w19, [x0,6]
ldr x4, [x0,40]
- cbz w1, .L1753
+ cbz w1, .L1806
adrp x1, .LANCHOR2
str wzr, [x0,56]
add x2, x1, :lo12:.LANCHOR2
mov x21, x1
- ldr w3, [x2,1400]
- cbnz w3, .L1753
+ ldr w3, [x2,1408]
+ cbnz w3, .L1806
mov x20, x0
sub w19, w19, #1
- add x0, x2, 1408
- ldr x3, [x2,1112]
+ add x0, x2, 1416
+ ldr x3, [x2,1120]
uxth w19, w19
- ldr x1, [x2,1056]
+ ldr x1, [x2,1064]
str x3, [x0,16]
ubfiz x3, x19, 2, 16
str x1, [x0,8]
ldr w3, [x4,x3]
str w3, [x0,4]
- cbz w3, .L1757
+ cbz w3, .L1810
mov w1, 1
mov w2, w1
bl FlashReadPages
- b .L1758
-.L1757:
- ldrh w2, [x2,828]
+ b .L1811
+.L1810:
+ ldrh w2, [x2,834]
mov x0, x1
mov w1, 255
bl ftl_memset
-.L1758:
+.L1811:
add x2, x21, :lo12:.LANCHOR2
mov x0, x20
mov w1, w19
- ldr x2, [x2,1416]
+ ldr x2, [x2,1424]
bl FtlMapWritePage
-.L1753:
+.L1806:
ldp x19, x20, [sp,16]
ldr x21, [sp,32]
ldp x29, x30, [sp], 48
@@ -11011,81 +11244,81 @@ FtlVpcTblFlush:
stp x19, x20, [sp,16]
add x19, x22, :lo12:.LANCHOR2
stp x23, x24, [sp,48]
- ldr w0, [x19,1400]
- cbnz w0, .L1761
- ldr x21, [x19,1112]
- add x20, x19, 3520
- ldr x1, [x19,1048]
- str x1, [x19,1416]
- str x21, [x19,1424]
- ldrh w2, [x19,3896]
+ ldr w0, [x19,1408]
+ cbnz w0, .L1814
+ ldr x21, [x19,1120]
+ add x20, x19, 3528
+ ldr x1, [x19,1056]
+ str x1, [x19,1424]
+ str x21, [x19,1432]
+ ldrh w2, [x19,3904]
strh w2, [x21,2]
mov w2, -3932
strh w2, [x21]
str w0, [x21,12]
- ldr w2, [x19,3904]
+ ldr w2, [x19,3912]
str w2, [x21,4]
str w0, [x21,8]
mov w0, 19539
- ldrh w1, [x19,3608]
+ ldrh w1, [x19,3616]
movk w0, 0x4654, lsl 16
strh w1, [x20,14]
- ldrh w1, [x19,3610]
- ldrb w2, [x19,3614]
- str w0, [x19,3520]
- mov w0, 80
+ ldrh w1, [x19,3618]
+ ldrb w2, [x19,3622]
+ str w0, [x19,3528]
+ mov w0, 83
orr w1, w2, w1, lsl 6
strh w1, [x20,16]
- ldrh w1, [x19,3656]
+ ldrh w1, [x19,3664]
movk w0, 0x5000, lsl 16
strh w1, [x20,18]
- ldrh w1, [x19,3658]
- ldrb w2, [x19,3662]
+ ldrh w1, [x19,3666]
+ ldrb w2, [x19,3670]
str w0, [x20,4]
- ldrh w0, [x19,3902]
+ ldrh w0, [x19,3910]
orr w1, w2, w1, lsl 6
strh w0, [x20,8]
- ldrh w0, [x19,770]
+ ldrh w0, [x19,778]
strb w0, [x20,10]
- ldrb w0, [x19,3616]
+ ldrb w0, [x19,3624]
strb w0, [x20,11]
strh w1, [x20,20]
- ldrb w0, [x19,3664]
- ldrh w1, [x19,3704]
+ ldrb w0, [x19,3672]
+ ldrh w1, [x19,3712]
strb w0, [x20,12]
strh w1, [x20,22]
- ldrh w1, [x19,3706]
- ldrb w0, [x19,3712]
+ ldrh w1, [x19,3714]
+ ldrb w0, [x19,3720]
strb w0, [x20,13]
- ldr w0, [x19,904]
+ ldr w0, [x19,908]
str w0, [x20,32]
- ldr w0, [x19,872]
- str w0, [x20,40]
ldr w0, [x19,876]
- ldrb w2, [x19,3710]
+ str w0, [x20,40]
+ ldr w0, [x19,880]
+ ldrb w2, [x19,3718]
str w0, [x20,36]
- ldrh w0, [x19,948]
+ ldrh w0, [x19,952]
orr w1, w2, w1, lsl 6
strh w0, [x20,44]
- ldrh w0, [x19,950]
+ ldrh w0, [x19,954]
strh w0, [x20,46]
- ldrh w2, [x19,828]
- ldr x0, [x19,1416]
+ ldrh w2, [x19,834]
+ ldr x0, [x19,1424]
strh w1, [x20,24]
mov w1, 255
bl ftl_memset
- ldr x0, [x19,1416]
+ ldr x0, [x19,1424]
mov x1, x20
mov w2, 48
bl ftl_memcpy
- ldr x0, [x19,1416]
- ldrh w2, [x19,756]
- ldr x1, [x19,1184]
+ ldr x0, [x19,1424]
+ ldrh w2, [x19,764]
+ ldr x1, [x19,1192]
add x0, x0, 48
lsl w2, w2, 1
bl ftl_memcpy
- ldrh w2, [x19,756]
- ldr x1, [x19,1416]
+ ldrh w2, [x19,764]
+ ldr x1, [x19,1424]
uxth x0, w2
lsr w2, w2, 3
add x0, x0, 24
@@ -11095,95 +11328,95 @@ FtlVpcTblFlush:
adrp x1, .LANCHOR0+16
ldr x1, [x1,#:lo12:.LANCHOR0+16]
bl ftl_memcpy
- ldrh w0, [x19,860]
- cbz w0, .L1762
- ldrh w0, [x19,756]
- ldrh w2, [x19,856]
+ ldrh w0, [x19,864]
+ cbz w0, .L1815
+ ldrh w0, [x19,764]
+ ldrh w2, [x19,860]
lsr w1, w0, 3
add w0, w1, w0, lsl 1
- ldr x1, [x19,1416]
+ ldr x1, [x19,1424]
add w0, w0, 52
lsl w2, w2, 2
and x0, x0, 65532
add x0, x1, x0
- ldr x1, [x19,1240]
+ ldr x1, [x19,1248]
bl ftl_memcpy
-.L1762:
+.L1815:
mov w0, 0
mov w20, 0
mov w25, 65535
add x19, x22, :lo12:.LANCHOR2
bl FtlUpdateVaildLpn
-.L1763:
- ldrh w1, [x19,3896]
- ldr x0, [x19,1048]
- ldrh w2, [x19,3898]
- str x0, [x19,1416]
- ldr x0, [x19,1112]
+.L1816:
+ ldrh w1, [x19,3904]
+ ldr x0, [x19,1056]
+ ldrh w2, [x19,3906]
str x0, [x19,1424]
+ ldr x0, [x19,1120]
+ str x0, [x19,1432]
orr w0, w2, w1, lsl 10
- str w0, [x19,1412]
- ldrh w0, [x19,820]
+ str w0, [x19,1420]
+ ldrh w0, [x19,826]
sub w0, w0, #1
cmp w2, w0
- blt .L1764
- ldrh w25, [x19,3900]
- strh wzr, [x19,3898]
- strh w1, [x19,3900]
+ blt .L1817
+ ldrh w25, [x19,3908]
+ strh wzr, [x19,3906]
+ strh w1, [x19,3908]
bl FtlFreeSysBlkQueueOut
- ldr w1, [x19,872]
- str w1, [x19,3904]
+ ldr w1, [x19,876]
+ str w1, [x19,3912]
add w2, w1, 1
- str w2, [x19,872]
+ str w2, [x19,876]
ubfiz w2, w0, 10, 16
- str w2, [x19,1412]
- strh w0, [x19,3896]
+ str w2, [x19,1420]
+ strh w0, [x19,3904]
str w1, [x21,4]
strh w0, [x21,2]
-.L1764:
+.L1817:
mov w1, 1
- add x0, x19, 1408
+ add x0, x19, 1416
mov w2, w1
mov w3, w1
bl FlashProgPages
- ldrh w1, [x19,3898]
- ldr w2, [x19,1408]
+ ldrh w1, [x19,3906]
+ ldr w2, [x19,1416]
add w1, w1, 1
cmn w2, #1
uxth w1, w1
- strh w1, [x19,3898]
- bne .L1765
+ strh w1, [x19,3906]
+ bne .L1818
cmp w1, 1
- bne .L1766
- ldrh w1, [x19,820]
+ bne .L1819
+ ldrh w1, [x19,826]
sub w1, w1, #1
- strh w1, [x19,3898]
-.L1766:
+ strh w1, [x19,3906]
+.L1819:
add w20, w20, 1
uxth w20, w20
cmp w20, 3
- bls .L1763
+ bls .L1816
add x22, x22, :lo12:.LANCHOR2
adrp x0, .LC44
add x0, x0, :lo12:.LC44
mov w2, w20
- ldr w1, [x22,1412]
+ ldr w1, [x22,1420]
bl printk
mov w0, 1
- str w0, [x22,1400]
- b .L1761
-.L1765:
+ str w0, [x22,1408]
+ b .L1814
+.L1818:
cmp w1, 1
- beq .L1763
+ beq .L1816
cmp w2, 256
- beq .L1763
+ beq .L1816
mov w0, 65535
cmp w25, w0
- beq .L1761
+ beq .L1814
mov w0, w25
mov w1, 1
bl FtlFreeSysBlkQueueIn
-.L1761:
+.L1814:
mov w0, 0
ldr x25, [sp,64]
ldp x19, x20, [sp,16]
@@ -11206,48 +11439,48 @@ FtlScanSysBlk:
stp x25, x26, [sp,64]
stp x23, x24, [sp,48]
stp x27, x28, [sp,80]
- strh wzr, [x20,3908]
+ strh wzr, [x20,3920]
mov x26, 56
- ldr w2, [x20,848]
+ ldr w2, [x20,852]
mov w22, 65535
- ldr x0, [x20,1256]
+ ldr x0, [x20,1264]
lsl w2, w2, 2
- strh wzr, [x20,1392]
+ strh wzr, [x20,1400]
bl ftl_memset
- ldr w2, [x20,848]
+ ldr w2, [x20,852]
mov w1, 0
- ldr x0, [x20,1192]
+ ldr x0, [x20,1200]
lsl w2, w2, 1
bl ftl_memset
- ldrh w2, [x20,840]
+ ldrh w2, [x20,844]
mov w1, 0
- ldr x0, [x20,1224]
+ ldr x0, [x20,1232]
lsl w2, w2, 2
bl ftl_memset
- ldrh w2, [x20,840]
+ ldrh w2, [x20,844]
mov w1, 0
- ldr x0, [x20,1208]
+ ldr x0, [x20,1216]
lsl w2, w2, 1
bl ftl_memset
- add x0, x20, 3896
+ add x0, x20, 3904
mov w1, 255
- mov w2, 12
+ mov w2, 16
bl ftl_memset
- ldrh w21, [x20,756]
-.L1773:
+ ldrh w21, [x20,764]
+.L1826:
add x1, x19, :lo12:.LANCHOR2
- ldrh w0, [x1,758]
+ ldrh w0, [x1,766]
cmp w0, w21
- bls .L1814
+ bls .L1867
mov x27, 0
- ldrh w3, [x1,748]
- ldrh w2, [x1,830]
+ ldrh w3, [x1,756]
+ ldrh w2, [x1,836]
mov w20, w27
mov x23, x1
-.L1815:
+.L1868:
cmp w3, w27, uxth
- bls .L1848
- add x0, x23, 776
+ bls .L1901
+ add x0, x23, 784
mov w1, w21
str x2, [x29,112]
str x3, [x29,120]
@@ -11257,64 +11490,64 @@ FtlScanSysBlk:
bl FtlBbmIsBadBlock
ldr x3, [x29,120]
ldr x2, [x29,112]
- cbnz w0, .L1774
+ cbnz w0, .L1827
mov w0, 56
- ldr x1, [x23,992]
+ ldr x1, [x23,1000]
lsl w28, w28, 10
mov w4, 4
umull x0, w20, w0
add x1, x1, x0
str w28, [x1,4]
- ldr x1, [x23,992]
+ ldr x1, [x23,1000]
add x0, x1, x0
- ldr x1, [x23,1072]
+ ldr x1, [x23,1080]
str x1, [x0,8]
mul w1, w20, w2
add w20, w20, 1
sdiv w1, w1, w4
uxth w20, w20
- ldr x4, [x23,1128]
+ ldr x4, [x23,1136]
add x1, x4, x1, sxtw 2
str x1, [x0,16]
-.L1774:
+.L1827:
add x27, x27, 1
- b .L1815
-.L1848:
- cbz w20, .L1777
+ b .L1868
+.L1901:
+ cbz w20, .L1830
add x0, x19, :lo12:.LANCHOR2
mov w1, w20
mov w2, 1
mov x23, 0
mov w27, -1
adrp x28, .LANCHOR0
- ldr x0, [x0,992]
+ ldr x0, [x0,1000]
bl FlashReadPages
-.L1778:
+.L1831:
cmp w20, w23, uxth
- bls .L1777
+ bls .L1830
add x0, x19, :lo12:.LANCHOR2
mul x5, x23, x26
- ldr x0, [x0,992]
+ ldr x0, [x0,1000]
add x1, x0, x5
ldr w0, [x0,x5]
ldr w4, [x1,4]
cmn w0, #1
ldr x25, [x1,16]
ubfx x24, x4, 10, 16
- bne .L1780
+ bne .L1833
mov w6, 16
-.L1779:
+.L1832:
add x7, x19, :lo12:.LANCHOR2
str x6, [x29,104]
str x7, [x29,112]
str x5, [x29,120]
- ldr x0, [x7,992]
+ ldr x0, [x7,1000]
add x0, x0, x5
ldr w1, [x0,4]
add w1, w1, 1
str w1, [x0,4]
mov w1, 1
- ldr x0, [x7,992]
+ ldr x0, [x7,1000]
mov w2, w1
add x0, x0, x5
bl FlashReadPages
@@ -11323,333 +11556,333 @@ FtlScanSysBlk:
cmp w0, w22
ldr x5, [x29,120]
ldr x6, [x29,104]
- ldr x0, [x7,992]
- bne .L1781
+ ldr x0, [x7,1000]
+ bne .L1834
str w27, [x0,x5]
- b .L1780
-.L1781:
+ b .L1833
+.L1834:
ldr w0, [x0,x5]
cmn w0, #1
- bne .L1780
+ bne .L1833
sub w6, w6, #1
uxth w6, w6
- cbnz w6, .L1779
-.L1780:
+ cbnz w6, .L1832
+.L1833:
add x0, x19, :lo12:.LANCHOR2
- ldr x1, [x0,992]
+ ldr x1, [x0,1000]
ldr w1, [x1,x5]
cmn w1, #1
- beq .L1783
- ldr w0, [x0,872]
+ beq .L1836
+ ldr w0, [x0,876]
cmn w0, #1
- beq .L1784
+ beq .L1837
ldr w1, [x25,4]
cmp w0, w1
- bhi .L1785
-.L1784:
+ bhi .L1838
+.L1837:
ldr w0, [x25,4]
cmn w0, #1
- beq .L1785
+ beq .L1838
add x1, x19, :lo12:.LANCHOR2
add w0, w0, 1
- str w0, [x1,872]
-.L1785:
+ str w0, [x1,876]
+.L1838:
ldrh w0, [x25]
mov w1, 61604
cmp w0, w1
- beq .L1787
- bhi .L1788
+ beq .L1840
+ bhi .L1841
mov w1, 61574
cmp w0, w1
- bne .L1786
+ bne .L1839
add x5, x19, :lo12:.LANCHOR2
- ldrh w6, [x5,840]
- ldrh w0, [x5,1392]
+ ldrh w6, [x5,844]
+ ldrh w0, [x5,1400]
sub w2, w6, #1
- ldr x5, [x5,1224]
+ ldr x5, [x5,1232]
sxth x1, w2
sub w2, w2, w0
- b .L1801
-.L1788:
+ b .L1854
+.L1841:
mov w1, 61634
cmp w0, w1
- beq .L1790
+ beq .L1843
cmp w0, w22
- bne .L1786
+ bne .L1839
mov w0, w24
- b .L1847
-.L1790:
+ b .L1900
+.L1843:
add x5, x19, :lo12:.LANCHOR2
- ldr w6, [x5,848]
- ldrh w0, [x5,3908]
- ldr x5, [x5,1256]
+ ldr w6, [x5,852]
+ ldrh w0, [x5,3920]
+ ldr x5, [x5,1264]
uxth w2, w6
sub w1, w2, #1
sub w2, w2, w0
sub w2, w2, #1
sxth x1, w1
sxth w2, w2
-.L1792:
+.L1845:
cmp w1, w2
- ble .L1849
+ ble .L1902
sbfiz x7, x1, 2, 32
ldr w10, [x25,4]
sxth x8, w1
ldr w9, [x5,x7]
cmp w10, w9
- bls .L1793
+ bls .L1846
ldr w2, [x5]
- cbnz w2, .L1794
+ cbnz w2, .L1847
cmp w0, w6
- beq .L1794
+ beq .L1847
add x2, x19, :lo12:.LANCHOR2
add w0, w0, 1
- strh w0, [x2,3908]
-.L1794:
+ strh w0, [x2,3920]
+.L1847:
mov w0, 0
-.L1795:
+.L1848:
cmp w0, w1
- beq .L1850
+ beq .L1903
add x5, x19, :lo12:.LANCHOR2
sxtw x2, w0
lsl x6, x2, 2
lsl x2, x2, 1
add w0, w0, 1
- ldr x9, [x5,1256]
+ ldr x9, [x5,1264]
sxth w0, w0
add x10, x9, x6
ldr w10, [x10,4]
str w10, [x9,x6]
- ldr x5, [x5,1192]
+ ldr x5, [x5,1200]
add x6, x5, x2
ldrh w6, [x6,2]
strh w6, [x5,x2]
- b .L1795
-.L1850:
+ b .L1848
+.L1903:
add x2, x19, :lo12:.LANCHOR2
ldr w5, [x25,4]
- ldr x0, [x2,1256]
+ ldr x0, [x2,1264]
str w5, [x0,x7]
- ldr x0, [x2,1192]
+ ldr x0, [x2,1200]
strh w24, [x0,x8,lsl 1]
- tbz w1, #31, .L1797
- b .L1786
-.L1793:
+ tbz w1, #31, .L1850
+ b .L1839
+.L1846:
sub w1, w1, #1
sxth x1, w1
- b .L1792
-.L1849:
- tbz w1, #31, .L1830
- b .L1786
-.L1797:
- ldrh w0, [x2,3908]
- ldr w2, [x2,848]
+ b .L1845
+.L1902:
+ tbz w1, #31, .L1883
+ b .L1839
+.L1850:
+ ldrh w0, [x2,3920]
+ ldr w2, [x2,852]
sub w2, w2, w0
sub w2, w2, #1
cmp w1, w2, sxth
- bgt .L1786
-.L1830:
+ bgt .L1839
+.L1883:
add x2, x19, :lo12:.LANCHOR2
add w0, w0, 1
ldr w3, [x25,4]
- strh w0, [x2,3908]
- ldr x0, [x2,1256]
+ strh w0, [x2,3920]
+ ldr x0, [x2,1264]
str w3, [x0,x1,lsl 2]
- ldr x0, [x2,1192]
- b .L1846
-.L1807:
+ ldr x0, [x2,1200]
+ b .L1899
+.L1860:
sbfiz x7, x1, 2, 32
ldr w10, [x25,4]
sxth x8, w1
ldr w9, [x5,x7]
cmp w10, w9
- bhi .L1851
+ bhi .L1904
sub w1, w1, #1
sxth x1, w1
-.L1801:
+.L1854:
cmp w1, w2
- bgt .L1807
- b .L1806
-.L1851:
+ bgt .L1860
+ b .L1859
+.L1904:
ldr w2, [x5]
- cbnz w2, .L1803
+ cbnz w2, .L1856
cmp w0, w6
- beq .L1803
+ beq .L1856
add x2, x19, :lo12:.LANCHOR2
add w0, w0, 1
- strh w0, [x2,1392]
-.L1803:
+ strh w0, [x2,1400]
+.L1856:
mov w0, 0
-.L1804:
+.L1857:
cmp w0, w1
- beq .L1852
+ beq .L1905
add x5, x19, :lo12:.LANCHOR2
sxtw x2, w0
lsl x6, x2, 2
lsl x2, x2, 1
add w0, w0, 1
- ldr x9, [x5,1224]
+ ldr x9, [x5,1232]
sxth w0, w0
add x10, x9, x6
ldr w10, [x10,4]
str w10, [x9,x6]
- ldr x5, [x5,1208]
+ ldr x5, [x5,1216]
add x6, x5, x2
ldrh w6, [x6,2]
strh w6, [x5,x2]
- b .L1804
-.L1852:
+ b .L1857
+.L1905:
add x0, x19, :lo12:.LANCHOR2
ldr w5, [x25,4]
- ldr x2, [x0,1224]
+ ldr x2, [x0,1232]
str w5, [x2,x7]
- ldr x0, [x0,1208]
+ ldr x0, [x0,1216]
strh w24, [x0,x8,lsl 1]
-.L1806:
- tbnz w1, #31, .L1786
+.L1859:
+ tbnz w1, #31, .L1839
add x0, x19, :lo12:.LANCHOR2
- ldrh w2, [x0,840]
- ldrh w5, [x0,1392]
+ ldrh w2, [x0,844]
+ ldrh w5, [x0,1400]
sub w2, w2, #1
sub w2, w2, w5
cmp w1, w2, sxth
- bgt .L1786
- ldr x2, [x0,1224]
+ bgt .L1839
+ ldr x2, [x0,1232]
add w5, w5, 1
ldr w3, [x25,4]
- strh w5, [x0,1392]
+ strh w5, [x0,1400]
str w3, [x2,x1,lsl 2]
- ldr x0, [x0,1208]
-.L1846:
+ ldr x0, [x0,1216]
+.L1899:
strh w24, [x0,x1,lsl 1]
- b .L1786
-.L1787:
+ b .L1839
+.L1840:
add x0, x19, :lo12:.LANCHOR2
- add x1, x0, 3896
- ldrh w2, [x0,3896]
+ add x1, x0, 3904
+ ldrh w2, [x0,3904]
cmp w2, w22
- bne .L1808
- strh w24, [x0,3896]
+ bne .L1861
+ strh w24, [x0,3904]
ldr w0, [x25,4]
str w0, [x1,8]
- b .L1786
-.L1808:
+ b .L1839
+.L1861:
ldrh w0, [x1,4]
cmp w0, w22
- beq .L1809
+ beq .L1862
mov w1, 1
bl FtlFreeSysBlkQueueIn
-.L1809:
+.L1862:
add x1, x19, :lo12:.LANCHOR2
ldr w2, [x25,4]
- add x0, x1, 3896
+ add x0, x1, 3904
ldr w5, [x0,8]
cmp w5, w2
- bcs .L1810
- ldrh w2, [x1,3896]
+ bcs .L1863
+ ldrh w2, [x1,3904]
strh w2, [x0,4]
- strh w24, [x1,3896]
+ strh w24, [x1,3904]
ldr w1, [x25,4]
str w1, [x0,8]
- b .L1786
-.L1810:
+ b .L1839
+.L1863:
strh w24, [x0,4]
- b .L1786
-.L1783:
+ b .L1839
+.L1836:
add x0, x28, :lo12:.LANCHOR0
- ldrb w1, [x0,136]
+ ldrb w1, [x0,4044]
mov w0, w24
- cbz w1, .L1811
-.L1847:
+ cbz w1, .L1864
+.L1900:
mov w1, 0
-.L1811:
+.L1864:
bl FtlFreeSysBlkQueueIn
-.L1786:
+.L1839:
add x23, x23, 1
- b .L1778
-.L1777:
+ b .L1831
+.L1830:
add w21, w21, 1
uxth w21, w21
- b .L1773
-.L1814:
- ldr x2, [x1,1192]
+ b .L1826
+.L1867:
+ ldr x2, [x1,1200]
ldrh w0, [x2]
- cbz w0, .L1816
-.L1819:
+ cbz w0, .L1869
+.L1872:
add x1, x19, :lo12:.LANCHOR2
- ldr x2, [x1,1208]
+ ldr x2, [x1,1216]
ldrh w0, [x2]
- cbz w0, .L1817
- b .L1840
-.L1816:
- ldrh w3, [x1,3908]
- cbz w3, .L1819
- ldr w1, [x1,848]
-.L1820:
+ cbz w0, .L1870
+ b .L1893
+.L1869:
+ ldrh w3, [x1,3920]
+ cbz w3, .L1872
+ ldr w1, [x1,852]
+.L1873:
cmp w0, w1
- bcs .L1819
+ bcs .L1872
ldrh w3, [x2,w0,sxtw 1]
- cbz w3, .L1821
+ cbz w3, .L1874
mov w6, w0
-.L1822:
+.L1875:
add x1, x19, :lo12:.LANCHOR2
- ldr w2, [x1,848]
+ ldr w2, [x1,852]
cmp w0, w2
- bcs .L1819
+ bcs .L1872
sxtw x5, w0
sub w2, w0, w6
- ldr x4, [x1,1192]
+ ldr x4, [x1,1200]
lsl x3, x5, 1
sxtw x2, w2
add w0, w0, 1
ldrh w7, [x4,x3]
sxth w0, w0
strh w7, [x4,x2,lsl 1]
- ldr x4, [x1,1256]
+ ldr x4, [x1,1264]
ldr w5, [x4,x5,lsl 2]
str w5, [x4,x2,lsl 2]
- ldr x1, [x1,1192]
+ ldr x1, [x1,1200]
strh wzr, [x1,x3]
- b .L1822
-.L1821:
+ b .L1875
+.L1874:
add w0, w0, 1
sxth w0, w0
- b .L1820
-.L1817:
- ldrh w3, [x1,1392]
- cbz w3, .L1840
- ldrh w1, [x1,840]
-.L1825:
+ b .L1873
+.L1870:
+ ldrh w3, [x1,1400]
+ cbz w3, .L1893
+ ldrh w1, [x1,844]
+.L1878:
cmp w0, w1
mov w6, w0
- bge .L1840
+ bge .L1893
ldrh w3, [x2,w0,sxtw 1]
- cbz w3, .L1826
-.L1827:
+ cbz w3, .L1879
+.L1880:
add x1, x19, :lo12:.LANCHOR2
- ldrh w2, [x1,840]
+ ldrh w2, [x1,844]
cmp w0, w2
- bge .L1840
+ bge .L1893
sxtw x5, w0
sub w2, w0, w6
- ldr x4, [x1,1208]
+ ldr x4, [x1,1216]
lsl x3, x5, 1
sxtw x2, w2
add w0, w0, 1
ldrh w7, [x4,x3]
sxth w0, w0
strh w7, [x4,x2,lsl 1]
- ldr x4, [x1,1224]
+ ldr x4, [x1,1232]
ldr w5, [x4,x5,lsl 2]
str w5, [x4,x2,lsl 2]
- ldr x1, [x1,1208]
+ ldr x1, [x1,1216]
strh wzr, [x1,x3]
- b .L1827
-.L1826:
+ b .L1880
+.L1879:
add w0, w0, 1
sxth w0, w0
- b .L1825
-.L1840:
+ b .L1878
+.L1893:
mov w0, 0
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -11669,26 +11902,26 @@ FtlLoadEctTbl:
str x19, [sp,16]
adrp x19, .LANCHOR2
add x19, x19, :lo12:.LANCHOR2
- ldrh w1, [x19,1144]
- ldr x2, [x19,1160]
+ ldrh w1, [x19,1152]
+ ldr x2, [x19,1168]
bl FtlVendorPartRead
- ldr x0, [x19,1160]
+ ldr x0, [x19,1168]
ldr w1, [x0]
mov w0, 17221
movk w0, 0x4254, lsl 16
cmp w1, w0
- beq .L1854
+ beq .L1907
adrp x0, .LC45
adrp x1, .LC46
add x1, x1, :lo12:.LC46
add x0, x0, :lo12:.LC45
bl printk
- ldrh w2, [x19,1144]
+ ldrh w2, [x19,1152]
mov w1, 0
- ldr x0, [x19,1160]
+ ldr x0, [x19,1168]
lsl w2, w2, 9
bl ftl_memset
-.L1854:
+.L1907:
mov w0, 0
ldr x19, [sp,16]
ldp x29, x30, [sp], 32
@@ -11701,10 +11934,10 @@ ftl_set_blk_mode:
stp x29, x30, [sp, -16]!
uxth w0, w0
add x29, sp, 0
- cbz w1, .L1856
+ cbz w1, .L1909
bl ftl_set_blk_mode.part.17
- b .L1855
-.L1856:
+ b .L1908
+.L1909:
adrp x1, .LANCHOR0+16
ubfx x2, x0, 5, 11
lsl x2, x2, 2
@@ -11714,7 +11947,7 @@ ftl_set_blk_mode:
ldr w1, [x3,x2]
bic w0, w1, w0
str w0, [x3,x2]
-.L1855:
+.L1908:
ldp x29, x30, [sp], 16
ret
.size ftl_set_blk_mode, .-ftl_set_blk_mode
@@ -11750,35 +11983,35 @@ FtlCheckVpc:
stp x23, x24, [sp,48]
add x19, x19, :lo12:.LANCHOR2
bl printk
- add x0, x19, 3912
+ add x0, x19, 3928
mov w1, 0
mov x2, 8192
bl memset
-.L1860:
- ldr w0, [x19,1396]
+.L1913:
+ ldr w0, [x19,1404]
cmp w20, w0
- bcs .L1877
+ bcs .L1930
mov w0, w20
add x1, x29, 92
mov w2, 0
bl log2phys
ldr w0, [x29,92]
cmn w0, #1
- beq .L1861
+ beq .L1914
lsr w0, w0, 10
bl P2V_block_in_plane
uxth w0, w0
- add x2, x19, 3912
+ add x2, x19, 3928
ldrh w1, [x2,w0,sxtw 1]
add w1, w1, 1
strh w1, [x2,w0,sxtw 1]
-.L1861:
+.L1914:
add w20, w20, 1
- b .L1860
-.L1877:
- ldr x1, [x19,1184]
+ b .L1913
+.L1930:
+ ldr x1, [x19,1192]
adrp x0, .LC48
- ldrh w3, [x19,756]
+ ldrh w3, [x19,764]
add x0, x0, :lo12:.LC48
mov w2, 2
adrp x21, .LC50
@@ -11786,35 +12019,35 @@ FtlCheckVpc:
add x21, x21, :lo12:.LC50
bl rknand_print_hex
adrp x0, .LC49
- ldrh w3, [x19,756]
+ ldrh w3, [x19,764]
add x0, x0, :lo12:.LC49
- add x1, x19, 3912
+ add x1, x19, 3928
mov w2, 2
bl rknand_print_hex
-.L1863:
- ldrh w0, [x19,756]
+.L1916:
+ ldrh w0, [x19,764]
cmp w0, w20
- bls .L1878
+ bls .L1931
ubfiz x0, x20, 1, 16
- ldr x1, [x19,1184]
+ ldr x1, [x19,1192]
ldrh w2, [x1,x0]
- add x0, x19, 3912
+ add x0, x19, 3928
ldrh w3, [x0,w20,sxtw 1]
cmp w2, w3
- beq .L1864
+ beq .L1917
mov x0, x21
mov w1, w20
bl printk
-.L1864:
+.L1917:
add w20, w20, 1
uxth w20, w20
- b .L1863
-.L1878:
- ldr x0, [x19,3592]
- cbz x0, .L1859
- ldr x20, [x19,1280]
+ b .L1916
+.L1931:
+ ldr x0, [x19,3600]
+ cbz x0, .L1912
+ ldr x20, [x19,1288]
adrp x22, .LC51
- ldrh w23, [x19,3600]
+ ldrh w23, [x19,3608]
mov w21, 0
sub x20, x0, x20
mov x0, -6148914691236517206
@@ -11824,28 +12057,28 @@ FtlCheckVpc:
mov w25, 65535
madd x20, x0, x20, x20
uxth w20, w20
-.L1867:
+.L1920:
cmp w21, w23
- beq .L1859
+ beq .L1912
ubfiz x0, x20, 1, 16
- ldr x1, [x19,1184]
+ ldr x1, [x19,1192]
ldrh w2, [x1,x0]
- cbz w2, .L1868
- add x3, x19, 3912
+ cbz w2, .L1921
+ add x3, x19, 3928
mov x0, x22
mov w1, w20
ldrh w3, [x3,w20,sxtw 1]
bl printk
-.L1868:
+.L1921:
umull x20, w20, w24
- ldr x0, [x19,1280]
+ ldr x0, [x19,1288]
ldrh w20, [x0,x20]
cmp w20, w25
- beq .L1859
+ beq .L1912
add w21, w21, 1
uxth w21, w21
- b .L1867
-.L1859:
+ b .L1920
+.L1912:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -11866,23 +12099,23 @@ FtlDumpSysBlock:
stp x21, x22, [sp,48]
stp x23, x24, [sp,64]
str x25, [sp,80]
- add x19, x2, 1408
+ add x19, x2, 1416
uxth w23, w0
adrp x22, .LC52
- ldr x0, [x2,1048]
+ ldr x0, [x2,1056]
adrp x25, .LC53
str x0, [x19,8]
lsl w24, w23, 10
- ldr x0, [x2,1112]
+ ldr x0, [x2,1120]
mov w20, 0
str x0, [x19,16]
mov x21, x2
add x22, x22, :lo12:.LC52
add x25, x25, :lo12:.LC53
-.L1880:
- ldrh w0, [x21,820]
+.L1933:
+ ldrh w0, [x21,826]
cmp w20, w0
- bge .L1886
+ bge .L1939
mov w1, 1
orr w0, w20, w24
mov w2, w1
@@ -11905,17 +12138,17 @@ FtlDumpSysBlock:
ldr x0, [x19,16]
ldr w0, [x0]
cmn w0, #1
- beq .L1881
- ldr x1, [x21,1048]
+ beq .L1934
+ ldr x1, [x21,1056]
mov x0, x25
mov w2, 4
mov w3, 768
bl rknand_print_hex
-.L1881:
+.L1934:
add w20, w20, 1
sxth w20, w20
- b .L1880
-.L1886:
+ b .L1933
+.L1939:
sub sp, x29, #16
ldp x19, x20, [sp,32]
ldp x21, x22, [sp,48]
@@ -11943,47 +12176,47 @@ Ftlscanalldata:
stp x19, x20, [sp,32]
add x21, x21, :lo12:.LC55
mov w20, 0
- add x19, x22, 1408
+ add x19, x22, 1416
bl printk
-.L1888:
+.L1941:
add x0, x23, :lo12:.LANCHOR2
- ldr w0, [x0,1396]
+ ldr w0, [x0,1404]
cmp w20, w0
- bcs .L1895
+ bcs .L1948
mov w0, w20
add x1, x29, 76
mov w2, 0
bl log2phys
and w0, w20, 2047
- cbnz w0, .L1889
+ cbnz w0, .L1942
ldr w2, [x29,76]
mov x0, x21
mov w1, w20
bl printk
-.L1889:
+.L1942:
ldr w0, [x29,76]
cmn w0, #1
- beq .L1891
+ beq .L1944
str w0, [x19,4]
mov w1, 1
- ldr x0, [x22,1048]
+ ldr x0, [x22,1056]
mov w2, 0
str x0, [x19,8]
mov x0, x19
- ldr x24, [x22,1112]
+ ldr x24, [x22,1120]
str w20, [x19,24]
str x24, [x19,16]
str wzr, [x19]
bl FlashReadPages
ldr w0, [x19]
cmn w0, #1
- beq .L1892
+ beq .L1945
cmp w0, 256
- beq .L1892
+ beq .L1945
ldr w0, [x24,8]
cmp w0, w20
- beq .L1891
-.L1892:
+ beq .L1944
+.L1945:
ldr x7, [x19,8]
mov w1, w20
ldr x6, [x19,16]
@@ -11998,10 +12231,10 @@ Ftlscanalldata:
ldr w6, [x6,12]
ldr w7, [x7]
bl printk
-.L1891:
+.L1944:
add w20, w20, 1
- b .L1888
-.L1895:
+ b .L1941
+.L1948:
sub sp, x29, #16
ldp x19, x20, [sp,32]
ldp x21, x22, [sp,48]
@@ -12026,23 +12259,23 @@ dump_map_info:
stp x19, x20, [sp,32]
adrp x24, .LC57
mov w25, 56
- ldrh w21, [x0,756]
+ ldrh w21, [x0,764]
mov w26, 4
mov x27, 56
add x24, x24, :lo12:.LC57
-.L1897:
+.L1950:
add x19, x22, :lo12:.LANCHOR2
- ldrh w0, [x19,758]
+ ldrh w0, [x19,766]
cmp w0, w21
- bls .L1910
+ bls .L1963
mov x23, 0
- ldrh w3, [x19,748]
- ldrh w2, [x19,830]
+ ldrh w3, [x19,756]
+ ldrh w2, [x19,836]
mov w20, w23
-.L1906:
+.L1959:
cmp w3, w23, uxth
- bls .L1911
- add x0, x19, 776
+ bls .L1964
+ add x0, x19, 784
mov w1, w21
str x2, [x29,96]
str x3, [x29,104]
@@ -12052,16 +12285,16 @@ dump_map_info:
bl FtlBbmIsBadBlock
ldr x3, [x29,104]
ldr x2, [x29,96]
- cbnz w0, .L1898
+ cbnz w0, .L1951
umull x0, w20, w25
- ldr x1, [x19,992]
+ ldr x1, [x19,1000]
lsl w28, w28, 10
add x1, x1, x0
str w28, [x1,4]
- ldr x1, [x19,992]
- ldr x4, [x19,1128]
+ ldr x1, [x19,1000]
+ ldr x4, [x19,1136]
add x0, x1, x0
- ldr x1, [x19,1072]
+ ldr x1, [x19,1080]
str x1, [x0,8]
mul w1, w20, w2
add w20, w20, 1
@@ -12069,22 +12302,22 @@ dump_map_info:
uxth w20, w20
add x1, x4, x1, sxtw 2
str x1, [x0,16]
-.L1898:
+.L1951:
add x23, x23, 1
- b .L1906
-.L1911:
- cbz w20, .L1901
+ b .L1959
+.L1964:
+ cbz w20, .L1954
add x0, x22, :lo12:.LANCHOR2
mov w1, w20
mov w2, 1
mov x19, 0
- ldr x0, [x0,992]
+ ldr x0, [x0,1000]
bl FlashReadPages
-.L1902:
+.L1955:
cmp w20, w19, uxth
- bls .L1901
+ bls .L1954
add x0, x22, :lo12:.LANCHOR2
- ldr x0, [x0,992]
+ ldr x0, [x0,1000]
madd x0, x19, x27, x0
add x19, x19, 1
ldr x7, [x0,8]
@@ -12100,27 +12333,27 @@ dump_map_info:
ldr w7, [x7]
ldr w6, [x6,12]
bl printk
- b .L1902
-.L1901:
+ b .L1955
+.L1954:
add w21, w21, 1
uxth w21, w21
- b .L1897
-.L1910:
+ b .L1950
+.L1963:
adrp x23, .LC58
mov w21, 0
- add x22, x19, 1408
+ add x22, x19, 1416
add x23, x23, :lo12:.LC58
-.L1905:
- ldrh w0, [x19,3908]
+.L1958:
+ ldrh w0, [x19,3920]
cmp w21, w0
- bge .L1908
+ bge .L1961
sbfiz x24, x21, 1, 32
mov w20, 0
-.L1909:
- ldrh w0, [x19,820]
+.L1962:
+ ldrh w0, [x19,826]
cmp w20, w0
- bge .L1912
- ldr x0, [x19,1192]
+ bge .L1965
+ ldr x0, [x19,1200]
mov w1, 1
mov w2, w1
ldrh w0, [x0,x24]
@@ -12131,7 +12364,7 @@ dump_map_info:
bl FlashReadPages
sxth w20, w20
ldr x0, [x22,8]
- ldr x1, [x19,1192]
+ ldr x1, [x19,1200]
ldr x7, [x22,16]
ldr w2, [x0]
ldrh w1, [x1,x24]
@@ -12146,27 +12379,27 @@ dump_map_info:
ldr w3, [x22,4]
ldr w7, [x7,12]
bl printk
- b .L1909
-.L1912:
+ b .L1962
+.L1965:
add w21, w21, 1
sxth w21, w21
- b .L1905
-.L1908:
- ldr x1, [x19,1192]
+ b .L1958
+.L1961:
+ ldr x1, [x19,1200]
adrp x0, .LC59
- ldr w3, [x19,848]
+ ldr w3, [x19,852]
add x0, x0, :lo12:.LC59
mov w2, 2
bl rknand_print_hex
- ldr x1, [x19,1240]
+ ldr x1, [x19,1248]
adrp x0, .LC60
- ldrh w3, [x19,856]
+ ldrh w3, [x19,860]
add x0, x0, :lo12:.LC60
mov w2, 4
bl rknand_print_hex
- ldr x1, [x19,1248]
+ ldr x1, [x19,1256]
adrp x0, .LC61
- ldrh w3, [x19,856]
+ ldrh w3, [x19,860]
add x0, x0, :lo12:.LC61
mov w2, 4
bl rknand_print_hex
@@ -12184,192 +12417,227 @@ dump_map_info:
.global FtlMapTblRecovery
.type FtlMapTblRecovery, %function
FtlMapTblRecovery:
- stp x29, x30, [sp, -128]!
+ stp x29, x30, [sp, -144]!
mov w1, 0
add x29, sp, 0
stp x19, x20, [sp,16]
- mov x19, x0
- adrp x20, .LANCHOR2
stp x21, x22, [sp,32]
- stp x23, x24, [sp,48]
stp x25, x26, [sp,64]
stp x27, x28, [sp,80]
- ldrh w23, [x19,6]
- mov w27, 0
- ldr x0, [x0,40]
- lsl w2, w23, 2
- ldrh w24, [x19,8]
- str x0, [x29,120]
- ldr x22, [x19,16]
- ldr x25, [x19,24]
+ stp x23, x24, [sp,48]
+ mov x27, x0
+ adrp x20, .LANCHOR2
+ ldr x22, [x0,40]
+ mov w19, 0
+ ldrh w24, [x0,6]
+ ldr x23, [x0,16]
+ ldr x26, [x0,24]
+ lsl w2, w24, 2
+ ldrh w0, [x0,8]
+ str w0, [x29,136]
+ mov x0, x22
bl ftl_memset
- add x5, x20, :lo12:.LANCHOR2
- str x20, [x29,112]
- add x4, x5, 1408
- str wzr, [x19,52]
- str wzr, [x19,48]
- mov x26, x5
- ldr x0, [x5,1048]
- mov x20, x4
- ldr x21, [x5,1112]
- str x0, [x5,1416]
+ str x20, [x29,128]
+ add x6, x20, :lo12:.LANCHOR2
+ str wzr, [x27,52]
+ add x4, x6, 1416
+ str wzr, [x27,48]
+ mov x20, x6
+ mov x25, x4
+ ldr x0, [x6,1056]
+ ldr x21, [x6,1120]
+ str x0, [x6,1424]
mov w0, -1
- str x21, [x5,1424]
- strh w0, [x19]
- strh w0, [x19,2]
+ str x21, [x6,1432]
+ strh w0, [x27]
+ strh w0, [x27,2]
mov w0, 1
- str w0, [x19,56]
- sub w0, w24, #1
- str w0, [x29,108]
-.L1914:
- cmp w27, w24
- bge .L1930
- ldr w0, [x29,108]
- sxtw x28, w27
- cmp w27, w0
- bne .L1915
+ str w0, [x27,56]
+ ldr w0, [x29,136]
+ sub w0, w0, #1
+ str w0, [x29,116]
+.L1967:
+ ldr w0, [x29,136]
+ cmp w19, w0
+ bge .L1985
+ ldr w0, [x29,116]
+ sxtw x28, w19
+ cmp w19, w0
+ bne .L1968
lsl x0, x28, 1
mov w1, 1
- add x24, x22, x0
- ldrh w0, [x22,x0]
- mov w22, 0
+ add x25, x23, x0
+ mov w20, 0
+ ldrh w0, [x23,x0]
bl FtlGetLastWrittenPage
- strh w27, [x19]
- sxth w26, w0
+ strh w19, [x27]
+ sxth w1, w0
add w0, w0, 1
- strh w0, [x19,2]
- add w26, w26, 1
- ldr w0, [x25,x28,lsl 2]
- str w0, [x19,48]
- ldr x0, [x29,112]
- add x25, x0, :lo12:.LANCHOR2
- add x25, x25, 1408
-.L1916:
- cmp w22, w26
- bge .L1930
- ldrh w0, [x24]
+ strh w0, [x27,2]
+ add w19, w1, 1
+ ldr w0, [x26,x28,lsl 2]
+ adrp x26, .LANCHOR0
+ str w0, [x27,48]
+ ldr x0, [x29,128]
+ add x23, x0, :lo12:.LANCHOR2
+ add x28, x23, 1416
+.L1969:
+ cmp w20, w19
+ bge .L1985
+ ldrh w0, [x25]
mov w1, 1
mov w2, w1
- orr w0, w22, w0, lsl 10
- str w0, [x25,4]
- mov x0, x25
+ orr w0, w20, w0, lsl 10
+ str w0, [x28,4]
+ mov x0, x28
bl FlashReadPages
- ldr w0, [x25]
+ add x0, x26, :lo12:.LANCHOR0
+ ldrb w0, [x0,24]
+ cbz w0, .L1970
+ ldr x0, [x28,16]
+ ldr w2, [x0,12]
+ cbz w2, .L1970
+ ldr x0, [x28,8]
+ ldrh w1, [x23,834]
+ str x2, [x29,136]
+ bl js_hash
+ ldr x2, [x29,136]
+ cmp w2, w0
+ beq .L1970
+ mov w0, -1
+ str w0, [x28]
+.L1970:
+ ldr w0, [x28]
cmn w0, #1
- beq .L1917
+ beq .L1971
ldrh w0, [x21,8]
- cmp w0, w23
- bcs .L1917
+ cmp w0, w24
+ bcs .L1971
ldrh w2, [x21]
- ldrh w1, [x19,4]
+ ldrh w1, [x27,4]
cmp w2, w1
- bne .L1917
+ bne .L1971
ubfiz x0, x0, 2, 16
- ldr x2, [x29,120]
- ldr w1, [x25,4]
- str w1, [x2,x0]
-.L1917:
- add w22, w22, 1
- sxth w22, w22
- b .L1916
-.L1930:
- mov x0, x19
+ ldr w1, [x28,4]
+ str w1, [x22,x0]
+.L1971:
+ add w4, w20, 1
+ sxth w20, w4
+ b .L1969
+.L1985:
+ mov x0, x27
bl ftl_free_no_use_map_blk
- ldr x0, [x29,112]
- ldrh w1, [x19,2]
+ ldr x0, [x29,128]
+ ldrh w1, [x27,2]
add x20, x0, :lo12:.LANCHOR2
- ldrh w0, [x20,820]
+ ldrh w0, [x20,826]
cmp w1, w0
- bne .L1920
- mov x0, x19
+ bne .L1974
+ mov x0, x27
bl ftl_map_blk_alloc_new_blk
- b .L1920
-.L1915:
- ldr x0, [x26,1048]
- str x0, [x20,8]
+ b .L1974
+.L1968:
+ ldr x0, [x20,1056]
+ str x0, [x25,8]
lsl x0, x28, 1
- add x28, x22, x0
- ldrh w1, [x22,x0]
- ldrh w0, [x26,820]
+ add x1, x23, x0
+ str x1, [x29,120]
+ ldrh w1, [x23,x0]
+ ldrh w0, [x20,826]
sub w0, w0, #1
orr w0, w0, w1, lsl 10
mov w1, 1
- str w0, [x20,4]
+ str w0, [x25,4]
mov w2, w1
- mov x0, x20
+ mov x0, x25
bl FlashReadPages
- ldr w0, [x20]
+ ldr w0, [x25]
cmn w0, #1
- beq .L1931
+ beq .L1986
ldrh w1, [x21]
- mov w3, 0
- ldrh w0, [x19,4]
+ mov w28, 0
+ ldrh w0, [x27,4]
cmp w1, w0
- bne .L1940
- ldrh w0, [x21,8]
- mov w1, 64245
- cmp w0, w1
- bne .L1940
-.L1922:
- ldrh w0, [x26,820]
+ bne .L2007
+ ldrh w1, [x21,8]
+ mov w0, 64245
+ cmp w1, w0
+ bne .L2007
+ mov w5, w28
+.L1976:
+ ldrh w0, [x20,826]
sub w0, w0, #1
- cmp w3, w0
- bge .L1925
- ldr x2, [x26,1048]
- sbfiz x1, x3, 3, 32
+ cmp w5, w0
+ bge .L1979
+ ldr x2, [x20,1056]
+ sbfiz x1, x5, 3, 32
ldrh w0, [x2,x1]
- cmp w0, w23
- bcs .L1923
+ cmp w0, w24
+ bcs .L1977
add x1, x2, x1
ubfiz x0, x0, 2, 16
- ldr x2, [x29,120]
ldr w1, [x1,4]
- str w1, [x2,x0]
-.L1923:
- add w3, w3, 1
- sxth w3, w3
- b .L1922
-.L1931:
- mov w3, 0
-.L1940:
- ldrh w0, [x26,820]
- cmp w3, w0
- bge .L1925
- ldrh w0, [x28]
+ str w1, [x22,x0]
+.L1977:
+ add w5, w5, 1
+ sxth w5, w5
+ b .L1976
+.L1986:
+ mov w28, 0
+.L2007:
+ ldrh w0, [x20,826]
+ cmp w28, w0
+ bge .L1979
+ ldr x0, [x29,120]
mov w1, 1
mov w2, w1
- str x3, [x29,96]
- orr w0, w3, w0, lsl 10
- str w0, [x20,4]
- mov x0, x20
+ ldrh w0, [x0]
+ orr w0, w28, w0, lsl 10
+ str w0, [x25,4]
+ mov x0, x25
bl FlashReadPages
- ldr w0, [x20]
- ldr x3, [x29,96]
+ adrp x0, .LANCHOR0
+ add x0, x0, :lo12:.LANCHOR0
+ ldrb w0, [x0,24]
+ cbz w0, .L1980
+ ldr x0, [x25,16]
+ ldr w2, [x0,12]
+ cbz w2, .L1980
+ ldr x0, [x25,8]
+ ldrh w1, [x20,834]
+ str x2, [x29,104]
+ bl js_hash
+ ldr x2, [x29,104]
+ cmp w2, w0
+ beq .L1980
+ mov w0, -1
+ str w0, [x25]
+.L1980:
+ ldr w0, [x25]
cmn w0, #1
- beq .L1926
+ beq .L1981
ldrh w0, [x21,8]
- cmp w0, w23
- bcs .L1926
+ cmp w0, w24
+ bcs .L1981
ldrh w2, [x21]
- ldrh w1, [x19,4]
+ ldrh w1, [x27,4]
cmp w2, w1
- bne .L1926
+ bne .L1981
ubfiz x0, x0, 2, 16
- ldr x2, [x29,120]
- ldr w1, [x20,4]
- str w1, [x2,x0]
-.L1926:
- add w3, w3, 1
- sxth w3, w3
- b .L1940
-.L1925:
- add w6, w27, 1
- sxth w27, w6
- b .L1914
-.L1920:
- mov x0, x19
+ ldr w1, [x25,4]
+ str w1, [x22,x0]
+.L1981:
+ add w5, w28, 1
+ sxth w28, w5
+ b .L2007
+.L1979:
+ add w19, w19, 1
+ sxth w19, w19
+ b .L1967
+.L1974:
+ mov x0, x27
bl ftl_map_blk_gc
- mov x0, x19
+ mov x0, x27
bl ftl_map_blk_gc
mov w0, 0
ldp x19, x20, [sp,16]
@@ -12377,7 +12645,7 @@ FtlMapTblRecovery:
ldp x23, x24, [sp,48]
ldp x25, x26, [sp,64]
ldp x27, x28, [sp,80]
- ldp x29, x30, [sp], 128
+ ldp x29, x30, [sp], 144
ret
.size FtlMapTblRecovery, .-FtlMapTblRecovery
.align 2
@@ -12387,22 +12655,22 @@ FtlLoadVonderInfo:
adrp x1, .LANCHOR2
add x1, x1, :lo12:.LANCHOR2
stp x29, x30, [sp, -16]!
- add x0, x1, 3824
+ add x0, x1, 3832
add x29, sp, 0
- ldrh w2, [x1,840]
+ ldrh w2, [x1,844]
strh w2, [x0,10]
mov w2, -3962
strh w2, [x0,4]
- ldrh w2, [x1,1392]
+ ldrh w2, [x1,1400]
strh w2, [x0,8]
- ldrh w2, [x1,842]
+ ldrh w2, [x1,846]
strh w2, [x0,6]
- ldr x2, [x1,1208]
+ ldr x2, [x1,1216]
str x2, [x0,16]
- ldr x2, [x1,1224]
+ ldr x2, [x1,1232]
str x2, [x0,24]
- ldr x2, [x1,1216]
- ldr x1, [x1,1232]
+ ldr x2, [x1,1224]
+ ldr x1, [x1,1240]
str x2, [x0,32]
str x1, [x0,40]
bl FtlMapTblRecovery
@@ -12420,33 +12688,33 @@ FtlL2PDataInit:
stp x19, x20, [sp,16]
adrp x20, .LANCHOR2
add x19, x20, :lo12:.LANCHOR2
- ldr w2, [x19,848]
- ldr x0, [x19,1200]
+ ldr w2, [x19,852]
+ ldr x0, [x19,1208]
lsl w2, w2, 1
bl ftl_memset
- ldrh w3, [x19,828]
+ ldrh w3, [x19,834]
mov w1, 255
- ldrh w2, [x19,858]
- ldr x0, [x19,1272]
+ ldrh w2, [x19,862]
+ ldr x0, [x19,1280]
mul w2, w3, w2
bl ftl_memset
mov w2, 0
mov w4, -1
-.L1943:
+.L2010:
add x0, x20, :lo12:.LANCHOR2
- ldrh w1, [x0,858]
+ ldrh w1, [x0,862]
cmp w1, w2
- bls .L1945
- ldr x3, [x0,1264]
+ bls .L2012
+ ldr x3, [x0,1272]
ubfiz x1, x2, 4, 16
add x3, x3, x1
str wzr, [x3,4]
- ldr x3, [x0,1264]
+ ldr x3, [x0,1272]
strh w4, [x3,x1]
- ldr x3, [x0,1264]
+ ldr x3, [x0,1272]
add x3, x3, x1
- ldrh w1, [x0,828]
- ldr x0, [x0,1272]
+ ldrh w1, [x0,834]
+ ldr x0, [x0,1280]
mul w1, w1, w2
add w2, w2, 1
sxtw x1, w1
@@ -12454,27 +12722,27 @@ FtlL2PDataInit:
and x1, x1, -4
add x0, x0, x1
str x0, [x3,8]
- b .L1943
-.L1945:
+ b .L2010
+.L2012:
mov w2, -1
- strh w2, [x0,3754]
- strh w2, [x0,3752]
- add x1, x0, 3752
- ldr w2, [x0,848]
strh w2, [x0,3762]
- mov w2, -3902
- strh w2, [x0,3756]
- ldrh w2, [x0,3908]
strh w2, [x0,3760]
- ldrh w2, [x0,856]
- strh w2, [x0,3758]
- ldr x2, [x0,1192]
- str x2, [x0,3768]
- ldr x2, [x0,1256]
- str x2, [x0,3776]
+ add x1, x0, 3760
+ ldr w2, [x0,852]
+ strh w2, [x0,3770]
+ mov w2, -3902
+ strh w2, [x0,3764]
+ ldrh w2, [x0,3920]
+ strh w2, [x0,3768]
+ ldrh w2, [x0,860]
+ strh w2, [x0,3766]
ldr x2, [x0,1200]
+ str x2, [x0,3776]
+ ldr x2, [x0,1264]
str x2, [x0,3784]
- ldr x0, [x0,1240]
+ ldr x2, [x0,1208]
+ str x2, [x0,3792]
+ ldr x0, [x0,1248]
str x0, [x1,40]
ldp x19, x20, [sp,16]
ldp x29, x30, [sp], 32
@@ -12489,7 +12757,7 @@ FtlLoadMapInfo:
bl FtlL2PDataInit
adrp x0, .LANCHOR2
add x0, x0, :lo12:.LANCHOR2
- add x0, x0, 3752
+ add x0, x0, 3760
bl FtlMapTblRecovery
mov w0, 0
ldp x29, x30, [sp], 16
@@ -12505,42 +12773,42 @@ ftl_sb_update_avl_pages:
uxth w2, w2
strh wzr, [x0,4]
mov w6, 65535
- ldrh w4, [x4,748]
-.L1948:
+ ldrh w4, [x4,756]
+.L2015:
cmp w2, w4
- bcs .L1954
+ bcs .L2021
add x5, x0, x2, sxtw 1
ldrh w5, [x5,16]
cmp w5, w6
- beq .L1949
+ beq .L2016
ldrh w5, [x0,4]
add w5, w5, 1
strh w5, [x0,4]
-.L1949:
+.L2016:
add w2, w2, 1
uxth w2, w2
- b .L1948
-.L1954:
+ b .L2015
+.L2021:
add x3, x3, :lo12:.LANCHOR2
mov w6, 65535
add x4, x0, x4, uxth 1
- ldrh w5, [x3,818]
+ ldrh w5, [x3,824]
mov x3, x0
-.L1951:
+.L2018:
cmp x3, x4
- beq .L1955
+ beq .L2022
ldrh w2, [x3,16]
cmp w2, w6
- beq .L1952
+ beq .L2019
ldrh w2, [x0,4]
add w2, w5, w2
sub w2, w2, #1
sub w2, w2, w1
strh w2, [x0,4]
-.L1952:
+.L2019:
add x3, x3, 2
- b .L1951
-.L1955:
+ b .L2018
+.L2022:
ret
.size ftl_sb_update_avl_pages, .-ftl_sb_update_avl_pages
.align 2
@@ -12559,51 +12827,51 @@ FtlReUsePrevPpa:
uxth w0, w0
add x2, x21, :lo12:.LANCHOR2
ubfiz x22, x0, 1, 16
- ldr x3, [x2,1184]
+ ldr x3, [x2,1192]
ldrh w1, [x3,x22]
- cbnz w1, .L1957
- ldr x19, [x2,3592]
- cbz x19, .L1958
- ldrh w3, [x2,3600]
+ cbnz w1, .L2024
+ ldr x19, [x2,3600]
+ cbz x19, .L2025
+ ldrh w3, [x2,3608]
mov x4, -6148914691236517206
- ldr x2, [x2,1280]
+ ldr x2, [x2,1288]
mov w5, 65535
sub x19, x19, x2
asr x19, x19, 1
madd x19, x4, x19, x19
mov w4, 6
uxth w19, w19
-.L1959:
+.L2026:
cmp w1, w3
- beq .L1958
+ beq .L2025
cmp w19, w0
- bne .L1960
+ bne .L2027
add x21, x21, :lo12:.LANCHOR2
mov w1, w19
- add x0, x21, 3592
+ add x0, x21, 3600
bl List_remove_node
- ldrh w0, [x21,3600]
+ ldrh w0, [x21,3608]
sub w0, w0, #1
- strh w0, [x21,3600]
+ strh w0, [x21,3608]
mov w0, w19
bl INSERT_DATA_LIST
- ldr x1, [x21,1184]
+ ldr x1, [x21,1192]
ldrh w0, [x1,x22]
add w0, w0, 1
strh w0, [x1,x22]
- b .L1958
-.L1960:
+ b .L2025
+.L2027:
umull x19, w19, w4
ldrh w19, [x2,x19]
cmp w19, w5
- beq .L1958
+ beq .L2025
add w1, w1, 1
uxth w1, w1
- b .L1959
-.L1957:
+ b .L2026
+.L2024:
add w1, w1, 1
strh w1, [x3,x22]
-.L1958:
+.L2025:
add x1, x29, 60
mov w0, w20
mov w2, 1
@@ -12633,49 +12901,49 @@ make_superblock:
mov x20, x0
mov x23, x1
mov w25, -1
- ldrh w24, [x1,748]
-.L1966:
+ ldrh w24, [x1,756]
+.L2033:
cmp w24, w21, uxth
- bls .L1977
- add x0, x23, 776
+ bls .L2044
+ add x0, x23, 784
ldrh w1, [x19]
ldrb w0, [x0,x21]
bl V2P_block
strh w25, [x22]
mov w26, w0
bl FtlBbmIsBadBlock
- cbnz w0, .L1967
+ cbnz w0, .L2034
strh w26, [x22]
ldrb w0, [x19,7]
add w0, w0, 1
strb w0, [x19,7]
-.L1967:
+.L2034:
add x21, x21, 1
add x22, x22, 2
- b .L1966
-.L1977:
+ b .L2033
+.L2044:
add x0, x20, :lo12:.LANCHOR2
ldrb w1, [x19,7]
strb wzr, [x19,9]
- ldrh w2, [x0,818]
+ ldrh w2, [x0,824]
mul w1, w1, w2
strh w1, [x19,4]
- ldr w1, [x0,652]
- cbz w1, .L1969
+ ldr w1, [x0,660]
+ cbz w1, .L2036
ldrh w1, [x19]
- ldr x0, [x0,1168]
+ ldr x0, [x0,1176]
ldrh w0, [x0,x1,lsl 1]
cmp w0, 79
- bhi .L1969
+ bhi .L2036
mov w0, 1
strb w0, [x19,9]
-.L1969:
+.L2036:
adrp x0, .LANCHOR0+24
ldrb w0, [x0,#:lo12:.LANCHOR0+24]
- cbz w0, .L1970
+ cbz w0, .L2037
mov w0, 1
strb w0, [x19,9]
-.L1970:
+.L2037:
mov w0, 0
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -12688,79 +12956,104 @@ make_superblock:
.global FtlLoadSysInfo
.type FtlLoadSysInfo, %function
FtlLoadSysInfo:
- stp x29, x30, [sp, -64]!
+ stp x29, x30, [sp, -96]!
mov w1, 0
add x29, sp, 0
stp x19, x20, [sp,16]
adrp x20, .LANCHOR2
- str x23, [sp,48]
add x19, x20, :lo12:.LANCHOR2
stp x21, x22, [sp,32]
- add x21, x19, 1408
- add x23, x19, 3896
- ldr x0, [x19,1048]
- ldrh w2, [x19,756]
- str x0, [x21,8]
- ldr x0, [x19,1112]
+ stp x23, x24, [sp,48]
+ stp x25, x26, [sp,64]
+ stp x27, x28, [sp,80]
+ add x22, x19, 1416
+ add x23, x19, 3904
+ ldr x0, [x19,1056]
+ ldrh w2, [x19,764]
+ str x0, [x22,8]
+ ldr x0, [x19,1120]
lsl w2, w2, 1
- str x0, [x21,16]
- ldr x0, [x19,1184]
+ str x0, [x22,16]
+ ldr x0, [x19,1192]
bl ftl_memset
- ldrh w0, [x19,3896]
+ ldrh w0, [x19,3904]
mov w1, 65535
cmp w0, w1
- bne .L1979
-.L1987:
+ bne .L2046
+.L2057:
mov w19, -1
- b .L1980
-.L1979:
+ b .L2047
+.L2046:
mov w1, 1
+ adrp x24, .LANCHOR0
+ mov w25, 61604
+ mov w26, -1
bl FtlGetLastWrittenPage
- sxth w22, w0
+ ldrsh w28, [x19,3904]
+ sxth w21, w0
add w0, w0, 1
strh w0, [x23,2]
- mov w23, 61604
-.L1981:
- tbnz w22, #31, .L1986
- ldrh w0, [x19,3896]
+.L2048:
+ adrp x23, .LANCHOR0
+ tbnz w21, #31, .L2056
+ orr w0, w21, w28, lsl 10
mov w1, 1
+ str w0, [x22,4]
mov w2, w1
- orr w0, w22, w0, lsl 10
- str w0, [x21,4]
- ldr x0, [x19,1048]
- str x0, [x21,8]
- mov x0, x21
+ ldr x0, [x19,1056]
+ str x0, [x22,8]
+ mov x0, x22
bl FlashReadPages
- ldr w0, [x21]
+ add x0, x24, :lo12:.LANCHOR0
+ ldrb w0, [x0,24]
+ cbz w0, .L2049
+ ldr x0, [x22,16]
+ ldr w27, [x0,12]
+ cbz w27, .L2049
+ ldr x0, [x22,8]
+ ldrh w1, [x19,834]
+ bl js_hash
+ cmp w27, w0
+ beq .L2049
+ cbnz w21, .L2050
+ ldrh w0, [x19,3908]
+ cmp w28, w0
+ beq .L2050
+ sxth w28, w0
+ ldrh w21, [x19,826]
+ b .L2052
+.L2050:
+ str w26, [x22]
+.L2049:
+ ldr w0, [x22]
cmn w0, #1
- beq .L1982
- ldr x0, [x19,1048]
+ beq .L2052
+ ldr x0, [x19,1056]
ldr w1, [x0]
mov w0, 19539
movk w0, 0x4654, lsl 16
cmp w1, w0
- bne .L1982
- ldr x0, [x19,1112]
+ bne .L2052
+ ldr x0, [x19,1120]
ldrh w0, [x0]
- cmp w0, w23
- bne .L1982
-.L1986:
+ cmp w0, w25
+ bne .L2052
+.L2056:
add x19, x20, :lo12:.LANCHOR2
mov w2, 48
- add x22, x19, 1408
- add x0, x19, 3520
- adrp x21, .LANCHOR0
- ldr x1, [x22,8]
+ add x21, x19, 1416
+ add x0, x19, 3528
+ ldr x1, [x21,8]
bl ftl_memcpy
- ldr x1, [x22,8]
- ldrh w2, [x19,756]
- ldr x0, [x19,1184]
+ ldr x1, [x21,8]
+ ldrh w2, [x19,764]
+ ldr x0, [x19,1192]
add x1, x1, 48
lsl w2, w2, 1
bl ftl_memcpy
- ldrh w2, [x19,756]
- add x0, x21, :lo12:.LANCHOR0
- ldr x3, [x22,8]
+ ldrh w2, [x19,764]
+ add x0, x23, :lo12:.LANCHOR0
+ ldr x3, [x21,8]
uxth x1, w2
ldr x0, [x0,16]
add x1, x1, 24
@@ -12769,146 +13062,148 @@ FtlLoadSysInfo:
add w2, w2, 4
add x1, x3, x1, lsl 2
bl ftl_memcpy
- ldrh w0, [x19,860]
- cbz w0, .L1984
- ldrh w0, [x19,756]
- ldr x3, [x22,8]
+ ldrh w0, [x19,864]
+ cbz w0, .L2054
+ ldrh w0, [x19,764]
+ ldr x3, [x21,8]
lsr w1, w0, 3
- ldrh w2, [x19,856]
+ ldrh w2, [x19,860]
add w1, w1, w0, lsl 1
- ldr x0, [x19,1248]
+ ldr x0, [x19,1256]
add w1, w1, 52
lsl w2, w2, 2
and x1, x1, 65532
add x1, x3, x1
bl ftl_memcpy
- b .L1984
-.L1982:
- sub w22, w22, #1
- sxth w22, w22
- b .L1981
-.L1984:
+ b .L2054
+.L2052:
+ sub w21, w21, #1
+ sxth w21, w21
+ b .L2048
+.L2054:
add x0, x20, :lo12:.LANCHOR2
mov w2, 19539
movk w2, 0x4654, lsl 16
- ldr w3, [x0,3520]
+ ldr w3, [x0,3528]
cmp w3, w2
- bne .L1987
- ldrb w3, [x0,3530]
- ldrh w2, [x0,770]
- ldrh w6, [x0,3528]
- strh w6, [x0,3902]
+ bne .L2057
+ ldrb w3, [x0,3538]
+ ldrh w2, [x0,778]
+ ldrh w5, [x0,3536]
+ strh w5, [x0,3910]
cmp w3, w2
- bne .L1987
- ldrh w3, [x0,818]
- add x21, x21, :lo12:.LANCHOR0
- ldrh w2, [x0,824]
- adrp x4, .LANCHOR4
- add x5, x4, :lo12:.LANCHOR4
- mov x19, x4
- mul w3, w3, w6
- str w3, [x0,1396]
- str w6, [x5,3400]
+ bne .L2057
+ ldrh w3, [x0,824]
+ add x23, x23, :lo12:.LANCHOR0
+ ldrh w2, [x0,830]
+ adrp x6, .LANCHOR4
+ add x4, x6, :lo12:.LANCHOR4
+ mov x19, x6
+ mul w3, w3, w5
+ str w3, [x0,1404]
+ str w5, [x4,3416]
mul w3, w3, w2
- str w3, [x21,4048]
- ldrh w2, [x0,1302]
- ldr w3, [x0,760]
- strh wzr, [x5,3410]
+ str w3, [x23,4048]
+ ldrh w2, [x0,1310]
+ ldr w3, [x0,768]
+ strh wzr, [x4,3426]
sub w2, w3, w2
- ldrh w3, [x0,748]
- sub w2, w2, w6
- strb wzr, [x5,3414]
- strb wzr, [x5,3416]
+ ldrh w3, [x0,756]
+ sub w2, w2, w5
+ strb wzr, [x4,3430]
+ strb wzr, [x4,3432]
udiv w2, w2, w3
- ldrh w3, [x0,3536]
- strh w2, [x5,3404]
+ ldrh w3, [x0,3544]
+ strh w2, [x4,3420]
lsr w7, w3, 6
and w3, w3, 63
- strb w3, [x0,3614]
- ldrb w3, [x0,3531]
- strb w3, [x0,3616]
+ strb w3, [x0,3622]
+ ldrb w3, [x0,3539]
+ strb w3, [x0,3624]
mov w3, -1
- strh w3, [x5,3408]
- ldrh w3, [x0,3538]
- strh w3, [x0,3656]
- ldrh w3, [x0,3540]
- ldrh w6, [x0,3534]
- lsr w5, w3, 6
+ strh w3, [x4,3424]
+ ldrh w3, [x0,3546]
+ strh w3, [x0,3664]
+ ldrh w3, [x0,3548]
+ ldrh w5, [x0,3542]
+ lsr w4, w3, 6
and w3, w3, 63
- strb w3, [x0,3662]
- ldrb w3, [x0,3532]
- strb w3, [x0,3664]
- ldrh w3, [x0,3542]
- strh w3, [x0,3704]
- ldrh w3, [x0,3544]
- strh w5, [x0,3658]
- lsr w5, w3, 6
+ strb w3, [x0,3670]
+ ldrb w3, [x0,3540]
+ strb w3, [x0,3672]
+ ldrh w3, [x0,3550]
+ strh w3, [x0,3712]
+ ldrh w3, [x0,3552]
+ strh w4, [x0,3666]
+ lsr w4, w3, 6
and w3, w3, 63
- strh w6, [x0,3608]
- strb w3, [x0,3710]
- strh w7, [x0,3610]
- strh w5, [x0,3706]
- ldrb w3, [x0,3533]
- strb w3, [x0,3712]
- ldr w2, [x0,3552]
- str w2, [x0,904]
- ldr w1, [x0,3560]
- ldr w2, [x0,872]
- str wzr, [x0,880]
+ strh w5, [x0,3616]
+ strb w3, [x0,3718]
+ strh w7, [x0,3618]
+ strh w4, [x0,3714]
+ ldrb w3, [x0,3541]
+ strb w3, [x0,3720]
+ ldr w2, [x0,3560]
+ str w2, [x0,908]
+ ldr w1, [x0,3568]
+ ldr w2, [x0,876]
str wzr, [x0,884]
+ str wzr, [x0,888]
cmp w1, w2
+ str wzr, [x0,904]
str wzr, [x0,900]
+ str wzr, [x0,912]
+ str wzr, [x0,920]
str wzr, [x0,896]
- str wzr, [x0,908]
- str wzr, [x0,916]
- str wzr, [x0,892]
- bls .L1988
- str w1, [x0,872]
-.L1988:
+ bls .L2058
+ str w1, [x0,876]
+.L2058:
add x0, x20, :lo12:.LANCHOR2
- ldr w1, [x0,3556]
- ldr w2, [x0,876]
+ ldr w1, [x0,3564]
+ ldr w2, [x0,880]
cmp w1, w2
- bls .L1989
- str w1, [x0,876]
-.L1989:
+ bls .L2059
+ str w1, [x0,880]
+.L2059:
mov w0, 65535
- cmp w6, w0
- beq .L1990
+ cmp w5, w0
+ beq .L2060
add x0, x20, :lo12:.LANCHOR2
- add x0, x0, 3608
+ add x0, x0, 3616
bl make_superblock
-.L1990:
+.L2060:
add x1, x20, :lo12:.LANCHOR2
- add x0, x1, 3656
- ldrh w2, [x1,3656]
+ add x0, x1, 3664
+ ldrh w2, [x1,3664]
mov w1, 65535
cmp w2, w1
- beq .L1991
+ beq .L2061
bl make_superblock
-.L1991:
+.L2061:
add x20, x20, :lo12:.LANCHOR2
mov w1, 65535
- add x0, x20, 3704
- ldrh w2, [x20,3704]
+ add x0, x20, 3712
+ ldrh w2, [x20,3712]
cmp w2, w1
- beq .L1992
+ beq .L2062
bl make_superblock
-.L1992:
+.L2062:
add x1, x19, :lo12:.LANCHOR4
mov w19, 0
- add x0, x1, 3408
- ldrh w2, [x1,3408]
+ add x0, x1, 3424
+ ldrh w2, [x1,3424]
mov w1, 65535
cmp w2, w1
- beq .L1980
+ beq .L2047
bl make_superblock
-.L1980:
+.L2047:
mov w0, w19
- ldr x23, [sp,48]
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
- ldp x29, x30, [sp], 64
+ ldp x23, x24, [sp,48]
+ ldp x25, x26, [sp,64]
+ ldp x27, x28, [sp,80]
+ ldp x29, x30, [sp], 96
ret
.size FtlLoadSysInfo, .-FtlLoadSysInfo
.align 2
@@ -12934,9 +13229,9 @@ FtlDumpBlockInfo:
adrp x0, .LC47
add x1, x1, 32
add x0, x0, :lo12:.LC47
- ldrh w23, [x19,818]
+ ldrh w23, [x19,824]
bl printk
- ldr x3, [x19,1184]
+ ldr x3, [x19,1192]
ubfiz x2, x22, 1, 16
adrp x0, .LC62
mov w1, w22
@@ -12946,58 +13241,58 @@ FtlDumpBlockInfo:
strh w22, [x29,112]
add x0, x29, 112
bl make_superblock
- cbnz w24, .L2006
- adrp x0, .LANCHOR0+136
- ldrb w0, [x0,#:lo12:.LANCHOR0+136]
- cbz w0, .L2006
+ cbnz w24, .L2082
+ adrp x0, .LANCHOR0+4044
+ ldrb w0, [x0,#:lo12:.LANCHOR0+4044]
+ cbz w0, .L2082
mov w0, w22
bl ftl_get_blk_mode
cmp w0, 1
mov w22, w0
- bne .L1998
- ldrh w23, [x19,820]
- b .L1998
-.L2006:
+ bne .L2074
+ ldrh w23, [x19,826]
+ b .L2074
+.L2082:
mov w22, 0
-.L1998:
+.L2074:
add x3, x20, :lo12:.LANCHOR2
adrp x0, .LC63
adrp x24, .LC58
add x0, x0, :lo12:.LC63
mov w1, w22
mov w2, w23
- ldrh w3, [x3,818]
+ ldrh w3, [x3,824]
mov w21, 0
mov w26, 65535
mov w27, 56
mov w25, 4
add x24, x24, :lo12:.LC58
bl printk
-.L1999:
+.L2075:
add x0, x20, :lo12:.LANCHOR2
mov x3, 0
mov w19, w3
- ldrh w5, [x0,748]
- ldrh w6, [x0,828]
- ldrh w7, [x0,830]
-.L2000:
+ ldrh w5, [x0,756]
+ ldrh w6, [x0,834]
+ ldrh w7, [x0,836]
+.L2076:
cmp w5, w3, uxth
- bls .L2014
+ bls .L2090
add x0, x29, 112
add x0, x0, x3, lsl 1
ldrh w1, [x0,16]
cmp w1, w26
- beq .L2001
+ beq .L2077
add x2, x20, :lo12:.LANCHOR2
orr w1, w21, w1, lsl 10
umull x0, w19, w27
- ldr x4, [x2,992]
+ ldr x4, [x2,1000]
add x4, x4, x0
str w1, [x4,4]
- ldr x1, [x2,992]
- ldr x4, [x2,1072]
+ ldr x1, [x2,1000]
+ ldr x4, [x2,1080]
add x0, x1, x0
- ldr x2, [x2,1128]
+ ldr x2, [x2,1136]
mul w1, w19, w6
sdiv w1, w1, w25
add x1, x4, x1, sxtw 2
@@ -13008,26 +13303,26 @@ FtlDumpBlockInfo:
sdiv w1, w1, w25
add x1, x2, x1, sxtw 2
str x1, [x0,16]
-.L2001:
+.L2077:
add x3, x3, 1
- b .L2000
-.L2014:
+ b .L2076
+.L2090:
add x0, x20, :lo12:.LANCHOR2
mov w1, w19
mov w2, w22
mov x28, 0
- ldr x0, [x0,992]
+ ldr x0, [x0,1000]
bl FlashReadPages
mov x8, 56
-.L2003:
+.L2079:
cmp w19, w28, uxth
- bls .L2015
+ bls .L2091
add x0, x20, :lo12:.LANCHOR2
ldrh w1, [x29,112]
mul x2, x28, x8
str x8, [x29,104]
add x28, x28, 1
- ldr x4, [x0,992]
+ ldr x4, [x0,1000]
add x3, x4, x2
ldr x0, [x3,8]
ldr x7, [x3,16]
@@ -13044,13 +13339,13 @@ FtlDumpBlockInfo:
ldr w7, [x7,12]
bl printk
ldr x8, [x29,104]
- b .L2003
-.L2015:
+ b .L2079
+.L2091:
add w21, w21, 1
uxth w21, w21
cmp w21, w23
- bne .L1999
-.L2005:
+ bne .L2075
+.L2081:
sub sp, x29, #16
mov w0, 0
ldp x19, x20, [sp,32]
@@ -13086,17 +13381,17 @@ FtlScanAllBlock:
add x24, x24, :lo12:.LC66
stp x25, x26, [sp,80]
bl printk
-.L2017:
+.L2093:
adrp x21, .LANCHOR2
add x19, x21, :lo12:.LANCHOR2
- ldrh w0, [x19,758]
+ ldrh w0, [x19,766]
cmp w0, w20
- bls .L2026
+ bls .L2102
mov w0, w20
strh w20, [x29,80]
bl ftl_get_blk_mode
mov w3, w0
- ldr x4, [x19,1184]
+ ldr x4, [x19,1192]
ubfiz x2, x20, 1, 16
mov w1, w20
mov x0, x22
@@ -13105,31 +13400,31 @@ FtlScanAllBlock:
add x0, x29, 80
bl make_superblock
mov x1, 0
- ldrh w6, [x19,748]
- ldrh w7, [x19,828]
+ ldrh w6, [x19,756]
+ ldrh w7, [x19,834]
mov w9, 65535
- ldrh w8, [x19,830]
+ ldrh w8, [x19,836]
mov w10, 56
mov w19, w1
mov w5, 4
-.L2018:
+.L2094:
cmp w6, w1, uxth
- bls .L2027
+ bls .L2103
add x0, x29, 80
add x0, x0, x1, lsl 1
ldrh w0, [x0,16]
cmp w0, w9
- beq .L2019
+ beq .L2095
add x3, x21, :lo12:.LANCHOR2
lsl w0, w0, 10
umull x2, w19, w10
- ldr x4, [x3,992]
+ ldr x4, [x3,1000]
add x4, x4, x2
str w0, [x4,4]
- ldr x0, [x3,992]
- ldr x4, [x3,1072]
+ ldr x0, [x3,1000]
+ ldr x4, [x3,1080]
add x2, x0, x2
- ldr x3, [x3,1128]
+ ldr x3, [x3,1136]
mul w0, w19, w7
sdiv w0, w0, w5
add x0, x4, x0, sxtw 2
@@ -13140,22 +13435,22 @@ FtlScanAllBlock:
sdiv w0, w0, w5
add x0, x3, x0, sxtw 2
str x0, [x2,16]
-.L2019:
+.L2095:
add x1, x1, 1
- b .L2018
-.L2027:
+ b .L2094
+.L2103:
add x0, x21, :lo12:.LANCHOR2
mov w1, w19
mov w2, 0
mov x25, 0
mov x26, 56
- ldr x0, [x0,992]
+ ldr x0, [x0,1000]
bl FlashReadPages
-.L2021:
+.L2097:
add x0, x21, :lo12:.LANCHOR2
cmp w19, w25, uxth
- bls .L2028
- ldr x4, [x0,992]
+ bls .L2104
+ ldr x4, [x0,1000]
mul x2, x25, x26
ldrh w1, [x29,80]
add x25, x25, 1
@@ -13174,22 +13469,22 @@ FtlScanAllBlock:
ldr w3, [x3,4]
ldr w7, [x7,12]
bl printk
- b .L2021
-.L2028:
- ldr x0, [x0,992]
+ b .L2097
+.L2104:
+ ldr x0, [x0,1000]
mov w1, w19
mov w2, 1
mov x25, 0
mov x26, 56
bl FlashReadPages
-.L2023:
+.L2099:
cmp w19, w25, uxth
- bls .L2029
+ bls .L2105
add x0, x21, :lo12:.LANCHOR2
ldrh w1, [x29,80]
mul x2, x25, x26
add x25, x25, 1
- ldr x4, [x0,992]
+ ldr x4, [x0,1000]
add x3, x4, x2
ldr x0, [x3,8]
ldr x7, [x3,16]
@@ -13205,12 +13500,12 @@ FtlScanAllBlock:
ldr w3, [x3,4]
ldr w7, [x7,12]
bl printk
- b .L2023
-.L2029:
+ b .L2099
+.L2105:
add w20, w20, 1
uxth w20, w20
- b .L2017
-.L2026:
+ b .L2093
+.L2102:
sub sp, x29, #16
mov w0, 0
ldp x19, x20, [sp,32]
@@ -13237,34 +13532,34 @@ SupperBlkListInit:
stp x27, x28, [sp,80]
mov w23, 6
mov w27, 0
- ldrh w2, [x19,758]
+ ldrh w2, [x19,766]
mov w22, w27
- ldr x0, [x19,1280]
+ ldr x0, [x19,1288]
mov w24, -1
mov w25, 32768
mul w2, w2, w23
bl ftl_memset
- str xzr, [x19,3592]
- str xzr, [x19,3568]
+ str xzr, [x19,3600]
str xzr, [x19,3576]
- strh wzr, [x19,3584]
- strh wzr, [x19,3600]
- strh wzr, [x19,862]
+ str xzr, [x19,3584]
+ strh wzr, [x19,3592]
+ strh wzr, [x19,3608]
+ strh wzr, [x19,866]
mov w19, w27
-.L2031:
+.L2107:
add x0, x21, :lo12:.LANCHOR2
- ldrh w1, [x0,756]
+ ldrh w1, [x0,764]
cmp w19, w1
- bge .L2038
+ bge .L2114
mov w20, 0
- ldrh w3, [x0,748]
- ldrh w2, [x0,818]
+ ldrh w3, [x0,756]
+ ldrh w2, [x0,824]
mov w28, w20
mov x26, x0
-.L2039:
+.L2115:
cmp w28, w3
- bge .L2040
- add x0, x26, 776
+ bge .L2116
+ add x0, x26, 784
mov w1, w19
str x2, [x29,96]
str x3, [x29,104]
@@ -13273,56 +13568,56 @@ SupperBlkListInit:
bl FtlBbmIsBadBlock
ldr x3, [x29,104]
ldr x2, [x29,96]
- cbnz w0, .L2032
+ cbnz w0, .L2108
add w20, w2, w20
sxth w20, w20
-.L2032:
+.L2108:
add w28, w28, 1
sxth w28, w28
- b .L2039
-.L2040:
- cbz w20, .L2034
+ b .L2115
+.L2116:
+ cbz w20, .L2110
sdiv w20, w25, w20
sxth w20, w20
- b .L2035
-.L2034:
+ b .L2111
+.L2110:
add x0, x21, :lo12:.LANCHOR2
- ldr x0, [x0,1184]
+ ldr x0, [x0,1192]
strh w24, [x0,w19,sxtw 1]
-.L2035:
+.L2111:
add x0, x21, :lo12:.LANCHOR2
- ldr x1, [x0,1280]
+ ldr x1, [x0,1288]
smaddl x1, w19, w23, x1
strh w20, [x1,4]
- ldrh w1, [x0,3608]
+ ldrh w1, [x0,3616]
cmp w19, w1
- beq .L2036
- ldrh w1, [x0,3656]
+ beq .L2112
+ ldrh w1, [x0,3664]
cmp w19, w1
- beq .L2036
- ldrh w1, [x0,3704]
+ beq .L2112
+ ldrh w1, [x0,3712]
cmp w19, w1
- beq .L2036
- ldr x0, [x0,1184]
+ beq .L2112
+ ldr x0, [x0,1192]
ldrh w0, [x0,w19,sxtw 1]
- cbnz w0, .L2037
+ cbnz w0, .L2113
add w27, w27, 1
mov w0, w19
uxth w27, w27
bl INSERT_FREE_LIST
- b .L2036
-.L2037:
+ b .L2112
+.L2113:
add w22, w22, 1
mov w0, w19
uxth w22, w22
bl INSERT_DATA_LIST
-.L2036:
+.L2112:
add w19, w19, 1
sxth w19, w19
- b .L2031
-.L2038:
- strh w22, [x0,3584]
- strh w27, [x0,3600]
+ b .L2107
+.L2114:
+ strh w22, [x0,3592]
+ strh w27, [x0,3608]
mov w0, 0
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -13341,48 +13636,48 @@ Ftl_save_ext_data:
add x0, x0, :lo12:.LANCHOR4
movk w1, 0x4654, lsl 16
stp x29, x30, [sp, -16]!
- add x2, x0, 3456
+ add x2, x0, 3472
add x29, sp, 0
- ldr w3, [x0,3456]
+ ldr w3, [x0,3472]
cmp w3, w1
- bne .L2041
- mov w1, 80
+ bne .L2117
+ mov w1, 83
movk w1, 0x5000, lsl 16
str w1, [x2,4]
- ldr w1, [x0,3968]
- ldr w0, [x0,3972]
+ ldr w1, [x0,3984]
+ ldr w0, [x0,3988]
str w0, [x2,92]
adrp x0, .LANCHOR2
add x0, x0, :lo12:.LANCHOR2
str w1, [x2,88]
- ldr w1, [x0,880]
- str w1, [x2,8]
ldr w1, [x0,884]
+ str w1, [x2,8]
+ ldr w1, [x0,888]
str w1, [x2,12]
- ldr w1, [x0,900]
+ ldr w1, [x0,904]
str w1, [x2,16]
- ldr w1, [x0,896]
+ ldr w1, [x0,900]
str w1, [x2,20]
- ldr w1, [x0,908]
- str w1, [x2,28]
ldr w1, [x0,912]
+ str w1, [x2,28]
+ ldr w1, [x0,916]
str w1, [x2,32]
- ldr w1, [x0,888]
- str w1, [x2,36]
ldr w1, [x0,892]
+ str w1, [x2,36]
+ ldr w1, [x0,896]
str w1, [x2,40]
- ldr w1, [x0,916]
- str w1, [x2,44]
ldr w1, [x0,920]
+ str w1, [x2,44]
+ ldr w1, [x0,924]
str w1, [x2,48]
- ldr w1, [x0,868]
- ldr w0, [x0,864]
+ ldr w1, [x0,872]
+ ldr w0, [x0,868]
str w1, [x2,60]
mov w1, 1
str w0, [x2,64]
mov w0, 0
bl FtlVendorPartWrite
-.L2041:
+.L2117:
ldp x29, x30, [sp], 16
ret
.size Ftl_save_ext_data, .-Ftl_save_ext_data
@@ -13395,51 +13690,51 @@ FtlEctTblFlush:
add x3, x2, :lo12:.LANCHOR2
stp x29, x30, [sp, -16]!
add x29, sp, 0
- ldr w4, [x3,652]
- cbz w4, .L2044
- ldr w3, [x3,920]
+ ldr w4, [x3,660]
+ cbz w4, .L2120
+ ldr w3, [x3,924]
cmp w3, 39
mov w3, 4
csel w1, w1, w3, hi
-.L2044:
+.L2120:
adrp x3, .LANCHOR4
add x3, x3, :lo12:.LANCHOR4
- ldrh w4, [x3,3976]
+ ldrh w4, [x3,3992]
cmp w4, 31
- bhi .L2045
+ bhi .L2121
add w4, w4, 1
mov w1, 1
- strh w4, [x3,3976]
-.L2045:
- cbnz w0, .L2046
+ strh w4, [x3,3992]
+.L2121:
+ cbnz w0, .L2122
add x0, x2, :lo12:.LANCHOR2
- ldr x3, [x0,1160]
+ ldr x3, [x0,1168]
ldr w0, [x3,20]
add w1, w1, w0
ldr w0, [x3,16]
cmp w0, w1
- bcc .L2047
-.L2046:
+ bcc .L2123
+.L2122:
add x2, x2, :lo12:.LANCHOR2
- ldr x0, [x2,1160]
+ ldr x0, [x2,1168]
ldr w1, [x0,16]
str w1, [x0,20]
mov w1, 17221
movk w1, 0x4254, lsl 16
str w1, [x0]
- ldr x0, [x2,1160]
- ldrh w1, [x2,1144]
+ ldr x0, [x2,1168]
+ ldrh w1, [x2,1152]
str wzr, [x0,4]
lsl w3, w1, 9
str w3, [x0,12]
ldr w3, [x0,8]
- ldr x2, [x2,1160]
+ ldr x2, [x2,1168]
add w3, w3, 1
str w3, [x0,8]
mov w0, 64
bl FtlVendorPartWrite
bl Ftl_save_ext_data
-.L2047:
+.L2123:
mov w0, 0
ldp x29, x30, [sp], 16
ret
@@ -13456,84 +13751,84 @@ Ftl_load_ext_data:
adrp x19, .LANCHOR4
str x21, [sp,32]
add x20, x19, :lo12:.LANCHOR4
- add x21, x20, 3456
+ add x21, x20, 3472
mov x2, x21
bl FtlVendorPartRead
- ldr w1, [x20,3456]
+ ldr w1, [x20,3472]
mov w0, 19539
movk w0, 0x4654, lsl 16
cmp w1, w0
- beq .L2052
+ beq .L2128
mov x0, x21
mov w1, 0
mov w2, 512
bl ftl_memset
mov w0, 19539
movk w0, 0x4654, lsl 16
- str w0, [x20,3456]
-.L2052:
+ str w0, [x20,3472]
+.L2128:
add x1, x19, :lo12:.LANCHOR4
mov w2, 19539
movk w2, 0x4654, lsl 16
- add x0, x1, 3456
+ add x0, x1, 3472
adrp x20, .LANCHOR2
- ldr w3, [x1,3456]
+ ldr w3, [x1,3472]
cmp w3, w2
- bne .L2053
- ldr w2, [x1,3544]
- str w2, [x1,3968]
- ldr w2, [x1,3548]
- str w2, [x1,3972]
+ bne .L2129
+ ldr w2, [x1,3560]
+ str w2, [x1,3984]
+ ldr w2, [x1,3564]
+ str w2, [x1,3988]
add x1, x20, :lo12:.LANCHOR2
ldr w2, [x0,8]
- str w2, [x1,880]
- ldr w2, [x0,12]
str w2, [x1,884]
+ ldr w2, [x0,12]
+ str w2, [x1,888]
ldr w2, [x0,16]
- str w2, [x1,900]
+ str w2, [x1,904]
ldr w2, [x0,20]
- str w2, [x1,896]
+ str w2, [x1,900]
ldr w2, [x0,28]
- str w2, [x1,908]
- ldr w2, [x0,32]
str w2, [x1,912]
+ ldr w2, [x0,32]
+ str w2, [x1,916]
ldr w2, [x0,36]
- str w2, [x1,888]
- ldr w2, [x0,40]
str w2, [x1,892]
+ ldr w2, [x0,40]
+ str w2, [x1,896]
ldr w2, [x0,44]
- str w2, [x1,916]
+ str w2, [x1,920]
ldr w2, [x0,48]
ldr w0, [x0,60]
- str w2, [x1,920]
- str w0, [x1,868]
-.L2053:
+ str w2, [x1,924]
+ str w0, [x1,872]
+.L2129:
add x1, x19, :lo12:.LANCHOR4
add x0, x20, :lo12:.LANCHOR2
- ldr w2, [x1,3524]
+ ldr w2, [x1,3540]
mov w1, 34661
movk w1, 0x1234, lsl 16
- str wzr, [x0,864]
+ str wzr, [x0,868]
cmp w2, w1
- bne .L2054
+ bne .L2130
mov w1, 1
- str w1, [x0,652]
+ str w1, [x0,660]
adrp x0, .LC45
adrp x1, .LC67
add x0, x0, :lo12:.LC45
add x1, x1, :lo12:.LC67
bl printk
-.L2054:
+.L2130:
add x0, x20, :lo12:.LANCHOR2
add x19, x19, :lo12:.LANCHOR4
ldr x21, [sp,32]
- ldrh w2, [x0,808]
- ldr w3, [x0,904]
- ldr w1, [x0,908]
- ldrh w0, [x0,756]
+ ldrh w2, [x0,816]
+ ldr w3, [x0,908]
+ ldr w1, [x0,912]
+ ldrh w0, [x0,764]
madd w1, w2, w3, w1
udiv w0, w1, w0
- str w0, [x19,3980]
+ str w0, [x19,3996]
ldp x19, x20, [sp,16]
ldp x29, x30, [sp], 48
ret
@@ -13553,33 +13848,33 @@ update_multiplier_value:
stp x23, x24, [sp,48]
mov x22, 0
mov x21, x0
- ldrh w24, [x1,748]
+ ldrh w24, [x1,756]
mov w19, w22
- ldrh w25, [x1,818]
+ ldrh w25, [x1,824]
mov x23, x1
-.L2056:
+.L2132:
cmp w24, w22, uxth
- bls .L2063
- add x0, x23, 776
+ bls .L2139
+ add x0, x23, 784
mov w1, w20
ldrb w0, [x0,x22]
bl V2P_block
bl FtlBbmIsBadBlock
- cbnz w0, .L2057
+ cbnz w0, .L2133
add w19, w19, w25
uxth w19, w19
-.L2057:
+.L2133:
add x22, x22, 1
- b .L2056
-.L2063:
- cbz w19, .L2059
+ b .L2132
+.L2139:
+ cbz w19, .L2135
mov w0, 32768
sdiv w19, w0, w19
-.L2059:
+.L2135:
add x0, x21, :lo12:.LANCHOR2
mov w1, 6
umull x20, w20, w1
- ldr x0, [x0,1280]
+ ldr x0, [x0,1288]
add x20, x0, x20
mov w0, 0
strh w19, [x20,4]
@@ -13596,18 +13891,18 @@ update_multiplier_value:
GetFreeBlockMinEraseCount:
adrp x2, .LANCHOR2
add x2, x2, :lo12:.LANCHOR2
- ldr x1, [x2,3592]
+ ldr x1, [x2,3600]
mov w0, w1
- cbz x1, .L2065
- ldr x0, [x2,1280]
+ cbz x1, .L2141
+ ldr x0, [x2,1288]
sub x1, x1, x0
mov x0, -6148914691236517206
asr x1, x1, 1
madd x1, x0, x1, x1
- ldr x0, [x2,1168]
+ ldr x0, [x2,1176]
and x1, x1, 65535
ldrh w0, [x0,x1,lsl 1]
-.L2065:
+.L2141:
ret
.size GetFreeBlockMinEraseCount, .-GetFreeBlockMinEraseCount
.align 2
@@ -13617,15 +13912,15 @@ GetFreeBlockMaxEraseCount:
adrp x2, .LANCHOR2
uxth w4, w0
add x5, x2, :lo12:.LANCHOR2
- ldr x1, [x5,3592]
+ ldr x1, [x5,3600]
mov w0, w1
- cbz x1, .L2068
- ldrh w3, [x5,3600]
+ cbz x1, .L2144
+ ldrh w3, [x5,3608]
mov w0, 7
mov w6, 6
mov w7, 65535
mul w3, w3, w0
- ldr x0, [x5,1280]
+ ldr x0, [x5,1288]
asr w3, w3, 3
cmp w4, w3
sub x1, x1, x0
@@ -13635,25 +13930,25 @@ GetFreeBlockMaxEraseCount:
madd x1, x3, x1, x1
mov w3, 0
uxth w1, w1
-.L2070:
+.L2146:
cmp w3, w4
- beq .L2073
+ beq .L2149
umull x5, w1, w6
ldrh w5, [x0,x5]
cmp w5, w7
- bne .L2071
-.L2073:
+ bne .L2147
+.L2149:
add x2, x2, :lo12:.LANCHOR2
ubfiz x1, x1, 1, 16
- ldr x0, [x2,1168]
+ ldr x0, [x2,1176]
ldrh w0, [x0,x1]
- b .L2068
-.L2071:
+ b .L2144
+.L2147:
add w3, w3, 1
mov w1, w5
uxth w3, w3
- b .L2070
-.L2068:
+ b .L2146
+.L2144:
ret
.size GetFreeBlockMaxEraseCount, .-GetFreeBlockMaxEraseCount
.align 2
@@ -13684,17 +13979,17 @@ FtlPrintInfo2buf:
add x20, x20, x0, sxtw
adrp x1, .LC70
mov x0, x20
- ldr w2, [x22,836]
+ ldr w2, [x22,840]
add x1, x1, :lo12:.LC70
bl sprintf
add x20, x20, x0, sxtw
- adrp x0, .LANCHOR1+3160
- ldr w0, [x0,#:lo12:.LANCHOR1+3160]
+ adrp x0, .LANCHOR1+3288
+ ldr w0, [x0,#:lo12:.LANCHOR1+3288]
cmp w0, 1
- beq .L2076
+ beq .L2152
sub w0, w20, w23
- b .L2077
-.L2076:
+ b .L2153
+.L2152:
add x0, x29, 96
add x1, x29, 100
add x2, x29, 104
@@ -13716,75 +14011,75 @@ FtlPrintInfo2buf:
adrp x20, .LANCHOR4
bl strcpy
add x20, x20, :lo12:.LANCHOR4
- ldr w2, [x22,1396]
+ ldr w2, [x22,1404]
adrp x1, .LC73
mov x0, x21
add x1, x1, :lo12:.LC73
bl sprintf
add x21, x21, x0, sxtw
- ldr w2, [x22,3892]
+ ldr w2, [x22,3900]
adrp x1, .LC74
mov x0, x21
add x1, x1, :lo12:.LC74
bl sprintf
add x21, x21, x0, sxtw
- ldr w2, [x22,900]
+ ldr w2, [x22,904]
adrp x1, .LC75
mov x0, x21
add x1, x1, :lo12:.LC75
bl sprintf
add x21, x21, x0, sxtw
- ldr w2, [x22,888]
+ ldr w2, [x22,892]
adrp x1, .LC76
mov x0, x21
add x1, x1, :lo12:.LC76
bl sprintf
add x21, x21, x0, sxtw
- ldr w2, [x22,884]
+ ldr w2, [x22,888]
adrp x1, .LC77
mov x0, x21
add x1, x1, :lo12:.LC77
bl sprintf
add x21, x21, x0, sxtw
- ldr w2, [x22,892]
+ ldr w2, [x22,896]
adrp x1, .LC78
mov x0, x21
add x1, x1, :lo12:.LC78
bl sprintf
add x21, x21, x0, sxtw
- ldr w2, [x22,896]
+ ldr w2, [x22,900]
adrp x1, .LC79
mov x0, x21
add x1, x1, :lo12:.LC79
bl sprintf
add x21, x21, x0, sxtw
- ldr w2, [x22,880]
+ ldr w2, [x22,884]
adrp x1, .LC80
mov x0, x21
add x1, x1, :lo12:.LC80
bl sprintf
add x21, x21, x0, sxtw
- ldr w2, [x20,3968]
+ ldr w2, [x20,3984]
adrp x1, .LC81
mov x0, x21
add x1, x1, :lo12:.LC81
lsr w2, w2, 11
bl sprintf
add x21, x21, x0, sxtw
- ldr w2, [x20,3972]
+ ldr w2, [x20,3988]
adrp x1, .LC82
mov x0, x21
add x1, x1, :lo12:.LC82
lsr w2, w2, 11
bl sprintf
add x21, x21, x0, sxtw
- ldr w2, [x22,872]
+ ldr w2, [x22,876]
adrp x1, .LC83
mov x0, x21
add x1, x1, :lo12:.LC83
bl sprintf
add x21, x21, x0, sxtw
- ldr w2, [x22,876]
+ ldr w2, [x22,880]
adrp x1, .LC84
add x1, x1, :lo12:.LC84
mov x0, x21
@@ -13792,61 +14087,61 @@ FtlPrintInfo2buf:
add x21, x21, x0, sxtw
bl FtlBbtCalcTotleCnt
uxth w3, w0
- ldrh w2, [x22,1302]
+ ldrh w2, [x22,1310]
adrp x1, .LC85
mov x0, x21
add x1, x1, :lo12:.LC85
bl sprintf
add x21, x21, x0, sxtw
- ldrh w2, [x22,3600]
+ ldrh w2, [x22,3608]
adrp x1, .LC86
mov x0, x21
add x1, x1, :lo12:.LC86
bl sprintf
add x21, x21, x0, sxtw
- ldr w2, [x22,904]
+ ldr w2, [x22,908]
adrp x1, .LC87
mov x0, x21
add x1, x1, :lo12:.LC87
bl sprintf
add x21, x21, x0, sxtw
- ldr w2, [x22,908]
+ ldr w2, [x22,912]
adrp x1, .LC88
mov x0, x21
add x1, x1, :lo12:.LC88
bl sprintf
add x21, x21, x0, sxtw
- ldr w2, [x20,3980]
+ ldr w2, [x20,3996]
adrp x1, .LC89
mov x0, x21
add x1, x1, :lo12:.LC89
bl sprintf
add x21, x21, x0, sxtw
- ldr w2, [x22,912]
+ ldr w2, [x22,916]
adrp x1, .LC90
mov x0, x21
add x1, x1, :lo12:.LC90
bl sprintf
add x21, x21, x0, sxtw
- ldr w2, [x22,916]
+ ldr w2, [x22,920]
adrp x1, .LC91
mov x0, x21
add x1, x1, :lo12:.LC91
bl sprintf
add x21, x21, x0, sxtw
- ldr w2, [x22,920]
+ ldr w2, [x22,924]
adrp x1, .LC92
mov x0, x21
add x1, x1, :lo12:.LC92
bl sprintf
add x21, x21, x0, sxtw
- ldrh w2, [x22,3550]
+ ldrh w2, [x22,3558]
adrp x1, .LC93
mov x0, x21
add x1, x1, :lo12:.LC93
bl sprintf
add x21, x21, x0, sxtw
- ldrh w2, [x22,3548]
+ ldrh w2, [x22,3556]
adrp x1, .LC94
mov x0, x21
add x1, x1, :lo12:.LC94
@@ -13858,232 +14153,232 @@ FtlPrintInfo2buf:
add x1, x1, :lo12:.LC95
bl sprintf
add x21, x21, x0, sxtw
- ldr w2, [x22,852]
+ ldr w2, [x22,856]
adrp x1, .LC96
mov x0, x21
add x1, x1, :lo12:.LC96
bl sprintf
add x21, x21, x0, sxtw
- ldr w2, [x22,744]
+ ldr w2, [x22,752]
adrp x1, .LC97
mov x0, x21
add x1, x1, :lo12:.LC97
bl sprintf
add x21, x21, x0, sxtw
- ldrh w2, [x22,1470]
+ ldrh w2, [x22,1478]
adrp x1, .LC98
mov x0, x21
add x1, x1, :lo12:.LC98
bl sprintf
add x21, x21, x0, sxtw
- ldrh w2, [x22,756]
+ ldrh w2, [x22,764]
adrp x1, .LC99
mov x0, x21
add x1, x1, :lo12:.LC99
bl sprintf
add x21, x21, x0, sxtw
- ldrh w2, [x20,3404]
+ ldrh w2, [x20,3420]
adrp x1, .LC100
mov x0, x21
add x1, x1, :lo12:.LC100
bl sprintf
add x21, x21, x0, sxtw
- ldr w2, [x22,760]
+ ldr w2, [x22,768]
adrp x1, .LC101
mov x0, x21
add x1, x1, :lo12:.LC101
bl sprintf
add x21, x21, x0, sxtw
- ldrh w2, [x22,3896]
+ ldrh w2, [x22,3904]
adrp x1, .LC102
mov x0, x21
add x1, x1, :lo12:.LC102
bl sprintf
add x21, x21, x0, sxtw
- ldrh w2, [x22,1296]
+ ldrh w2, [x22,1304]
adrp x1, .LC103
mov x0, x21
add x1, x1, :lo12:.LC103
bl sprintf
add x21, x21, x0, sxtw
- ldrh w2, [x22,3610]
+ ldrh w2, [x22,3618]
adrp x1, .LC104
mov x0, x21
add x1, x1, :lo12:.LC104
bl sprintf
add x21, x21, x0, sxtw
- ldrb w2, [x22,3614]
+ ldrb w2, [x22,3622]
adrp x1, .LC105
mov x0, x21
add x1, x1, :lo12:.LC105
bl sprintf
add x21, x21, x0, sxtw
- ldrh w2, [x22,3608]
+ ldrh w2, [x22,3616]
adrp x1, .LC106
mov x0, x21
add x1, x1, :lo12:.LC106
bl sprintf
add x21, x21, x0, sxtw
- ldrb w2, [x22,3616]
+ ldrb w2, [x22,3624]
adrp x1, .LC107
mov x0, x21
add x1, x1, :lo12:.LC107
bl sprintf
add x21, x21, x0, sxtw
- ldrh w2, [x22,3612]
+ ldrh w2, [x22,3620]
adrp x1, .LC108
mov x0, x21
add x1, x1, :lo12:.LC108
bl sprintf
add x21, x21, x0, sxtw
- ldrh w3, [x22,3608]
+ ldrh w3, [x22,3616]
adrp x1, .LC109
- ldr x2, [x22,1184]
+ ldr x2, [x22,1192]
mov x0, x21
add x1, x1, :lo12:.LC109
ldrh w2, [x2,x3,lsl 1]
bl sprintf
add x21, x21, x0, sxtw
- ldrh w2, [x22,3658]
+ ldrh w2, [x22,3666]
adrp x1, .LC110
mov x0, x21
add x1, x1, :lo12:.LC110
bl sprintf
add x21, x21, x0, sxtw
- ldrb w2, [x22,3662]
+ ldrb w2, [x22,3670]
adrp x1, .LC111
mov x0, x21
add x1, x1, :lo12:.LC111
bl sprintf
add x21, x21, x0, sxtw
- ldrh w2, [x22,3656]
+ ldrh w2, [x22,3664]
adrp x1, .LC112
mov x0, x21
add x1, x1, :lo12:.LC112
bl sprintf
add x21, x21, x0, sxtw
- ldrb w2, [x22,3664]
+ ldrb w2, [x22,3672]
adrp x1, .LC113
mov x0, x21
add x1, x1, :lo12:.LC113
bl sprintf
add x21, x21, x0, sxtw
- ldrh w2, [x22,3660]
+ ldrh w2, [x22,3668]
adrp x1, .LC114
mov x0, x21
add x1, x1, :lo12:.LC114
bl sprintf
add x21, x21, x0, sxtw
- ldrh w3, [x22,3656]
+ ldrh w3, [x22,3664]
adrp x1, .LC115
- ldr x2, [x22,1184]
+ ldr x2, [x22,1192]
mov x0, x21
add x1, x1, :lo12:.LC115
ldrh w2, [x2,x3,lsl 1]
bl sprintf
add x21, x21, x0, sxtw
- ldrh w2, [x22,3706]
+ ldrh w2, [x22,3714]
adrp x1, .LC116
mov x0, x21
add x1, x1, :lo12:.LC116
bl sprintf
add x21, x21, x0, sxtw
- ldrb w2, [x22,3710]
+ ldrb w2, [x22,3718]
adrp x1, .LC117
mov x0, x21
add x1, x1, :lo12:.LC117
bl sprintf
add x21, x21, x0, sxtw
- ldrh w2, [x22,3704]
+ ldrh w2, [x22,3712]
adrp x1, .LC118
mov x0, x21
add x1, x1, :lo12:.LC118
bl sprintf
add x21, x21, x0, sxtw
- ldrb w2, [x22,3712]
+ ldrb w2, [x22,3720]
adrp x1, .LC119
mov x0, x21
add x1, x1, :lo12:.LC119
bl sprintf
add x21, x21, x0, sxtw
- ldrh w2, [x22,3708]
+ ldrh w2, [x22,3716]
adrp x1, .LC120
mov x0, x21
add x1, x1, :lo12:.LC120
bl sprintf
add x21, x21, x0, sxtw
- ldrh w2, [x20,3410]
+ ldrh w2, [x20,3426]
adrp x1, .LC121
mov x0, x21
add x1, x1, :lo12:.LC121
bl sprintf
add x21, x21, x0, sxtw
- ldrb w2, [x20,3414]
+ ldrb w2, [x20,3430]
adrp x1, .LC122
mov x0, x21
add x1, x1, :lo12:.LC122
bl sprintf
add x21, x21, x0, sxtw
- ldrh w2, [x20,3408]
+ ldrh w2, [x20,3424]
adrp x1, .LC123
mov x0, x21
add x1, x1, :lo12:.LC123
bl sprintf
add x21, x21, x0, sxtw
- ldrb w2, [x20,3416]
+ ldrb w2, [x20,3432]
adrp x1, .LC124
mov x0, x21
add x1, x1, :lo12:.LC124
bl sprintf
add x21, x21, x0, sxtw
- ldrh w2, [x20,3412]
+ ldrh w2, [x20,3428]
adrp x1, .LC125
mov x0, x21
add x1, x1, :lo12:.LC125
bl sprintf
add x21, x21, x0, sxtw
- ldr w3, [x22,868]
+ ldr w3, [x22,872]
adrp x1, .LC126
- ldr w2, [x22,652]
+ ldr w2, [x22,660]
add x1, x1, :lo12:.LC126
- ldr w4, [x20,3540]
+ ldr w4, [x20,3556]
mov x0, x21
- ldr w5, [x20,3532]
+ ldr w5, [x20,3548]
orr w2, w2, w3, lsl 8
- ldr w3, [x20,3536]
+ ldr w3, [x20,3552]
bl sprintf
add x19, x21, x0, sxtw
- ldr w2, [x20,3528]
+ ldr w2, [x20,3544]
adrp x1, .LC127
mov x0, x19
add x1, x1, :lo12:.LC127
bl sprintf
add x19, x19, x0, sxtw
- ldr w2, [x20,3552]
+ ldr w2, [x20,3568]
adrp x1, .LC128
mov x0, x19
add x1, x1, :lo12:.LC128
bl sprintf
add x19, x19, x0, sxtw
- ldrh w2, [x22,956]
+ ldrh w2, [x22,960]
adrp x1, .LC129
mov x0, x19
add x1, x1, :lo12:.LC129
bl sprintf
add x19, x19, x0, sxtw
- ldrh w2, [x22,958]
+ ldrh w2, [x22,962]
adrp x1, .LC130
mov x0, x19
add x1, x1, :lo12:.LC130
bl sprintf
add x19, x19, x0, sxtw
- ldr w2, [x22,940]
+ ldr w2, [x22,944]
adrp x1, .LC131
mov x0, x19
add x1, x1, :lo12:.LC131
bl sprintf
add x19, x19, x0, sxtw
- ldrh w2, [x22,960]
+ ldrh w2, [x22,964]
adrp x1, .LC132
add x1, x1, :lo12:.LC132
mov x0, x19
@@ -14096,7 +14391,7 @@ FtlPrintInfo2buf:
add x1, x1, :lo12:.LC133
bl sprintf
add x19, x19, x0, sxtw
- ldrh w0, [x22,3600]
+ ldrh w0, [x22,3608]
bl GetFreeBlockMaxEraseCount
uxth w2, w0
adrp x1, .LC134
@@ -14104,19 +14399,19 @@ FtlPrintInfo2buf:
add x1, x1, :lo12:.LC134
bl sprintf
add x19, x19, x0, sxtw
- ldrh w0, [x20,3408]
+ ldrh w0, [x20,3424]
mov w1, 65535
cmp w0, w1
- beq .L2078
+ beq .L2154
ubfiz x2, x0, 1, 16
- ldr x3, [x22,1184]
+ ldr x3, [x22,1192]
adrp x1, .LC135
mov x0, x19
add x1, x1, :lo12:.LC135
ldrh w2, [x3,x2]
bl sprintf
add x19, x19, x0, sxtw
-.L2078:
+.L2154:
mov w0, 0
adrp x22, .LC136
mov w20, 0
@@ -14125,67 +14420,67 @@ FtlPrintInfo2buf:
mov w26, 6
uxth w3, w0
add x22, x22, :lo12:.LC136
-.L2080:
+.L2156:
cmp w3, w27
- beq .L2079
+ beq .L2155
add x21, x24, :lo12:.LANCHOR2
ubfiz x6, x3, 1, 16
umull x25, w3, w26
mov x0, x19
mov w2, w20
- ldr x5, [x21,1280]
+ ldr x5, [x21,1288]
mov x1, x22
- ldr x4, [x21,1184]
+ ldr x4, [x21,1192]
add w20, w20, 1
- ldr x7, [x21,1168]
+ ldr x7, [x21,1176]
add x5, x5, x25
ldrh w4, [x4,x6]
ldrh w5, [x5,4]
ldrh w6, [x7,x6]
bl sprintf
add x19, x19, x0, sxtw
- ldr x0, [x21,1280]
+ ldr x0, [x21,1288]
cmp w20, 16
ldrh w3, [x0,x25]
- bne .L2080
-.L2079:
+ bne .L2156
+.L2155:
add x1, x24, :lo12:.LANCHOR2
adrp x22, .LC137
mov w20, 0
mov w27, 65535
mov w26, 6
add x22, x22, :lo12:.LC137
- ldr x0, [x1,3592]
- ldr x3, [x1,1280]
+ ldr x0, [x1,3600]
+ ldr x3, [x1,1288]
sub x3, x0, x3
mov x0, -6148914691236517206
asr x3, x3, 1
madd x3, x0, x3, x3
uxth w3, w3
-.L2082:
+.L2158:
cmp w3, w27
- beq .L2081
+ beq .L2157
add x21, x24, :lo12:.LANCHOR2
ubfiz x5, x3, 1, 16
umull x25, w3, w26
mov x0, x19
mov w2, w20
- ldr x4, [x21,1280]
+ ldr x4, [x21,1288]
mov x1, x22
- ldr x6, [x21,1168]
+ ldr x6, [x21,1176]
add w20, w20, 1
add x4, x4, x25
ldrh w5, [x6,x5]
ldrh w4, [x4,4]
bl sprintf
add x19, x19, x0, sxtw
- ldr x0, [x21,1280]
+ ldr x0, [x21,1288]
cmp w20, 4
ldrh w3, [x0,x25]
- bne .L2082
-.L2081:
+ bne .L2158
+.L2157:
sub w0, w19, w23
-.L2077:
+.L2153:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -14229,111 +14524,111 @@ GetSwlReplaceBlock:
stp x23, x24, [sp,48]
stp x25, x26, [sp,64]
adrp x19, .LANCHOR2
- ldr w3, [x1,3980]
+ ldr w3, [x1,3996]
add x1, x19, :lo12:.LANCHOR2
- ldr w2, [x1,920]
+ ldr w2, [x1,924]
cmp w3, w2
- bcs .L2087
- str wzr, [x1,904]
- ldrh w3, [x1,756]
- ldr x5, [x1,1168]
+ bcs .L2163
+ str wzr, [x1,908]
+ ldrh w3, [x1,764]
+ ldr x5, [x1,1176]
mov x1, 0
-.L2088:
+.L2164:
cmp w3, w1
- bls .L2120
+ bls .L2196
add x4, x19, :lo12:.LANCHOR2
ldrh w6, [x5,x1,lsl 1]
add x1, x1, 1
- ldr w2, [x4,904]
+ ldr w2, [x4,908]
add w2, w6, w2
- str w2, [x4,904]
- b .L2088
-.L2120:
+ str w2, [x4,908]
+ b .L2164
+.L2196:
add x2, x19, :lo12:.LANCHOR2
add x4, x0, :lo12:.LANCHOR4
- ldr w1, [x2,904]
+ ldr w1, [x2,908]
udiv w3, w1, w3
- str w3, [x4,3980]
- ldr w3, [x2,908]
+ str w3, [x4,3996]
+ ldr w3, [x2,912]
sub w1, w1, w3
- ldrh w3, [x2,808]
+ ldrh w3, [x2,816]
udiv w1, w1, w3
- str w1, [x2,904]
- b .L2090
-.L2087:
- ldr w2, [x1,916]
+ str w1, [x2,908]
+ b .L2166
+.L2163:
+ ldr w2, [x1,920]
cmp w3, w2
- bls .L2090
+ bls .L2166
add w2, w2, 1
- str w2, [x1,916]
+ str w2, [x1,920]
mov w1, 0
-.L2092:
+.L2168:
add x2, x19, :lo12:.LANCHOR2
- ldrh w3, [x2,756]
+ ldrh w3, [x2,764]
cmp w1, w3
- bcs .L2090
+ bcs .L2166
ubfiz x3, x1, 1, 32
- ldr x4, [x2,1168]
+ ldr x4, [x2,1176]
add w1, w1, 1
ldrh w2, [x4,x3]
add w2, w2, 1
strh w2, [x4,x3]
- b .L2092
-.L2090:
+ b .L2168
+.L2166:
add x1, x19, :lo12:.LANCHOR2
add x0, x0, :lo12:.LANCHOR4
- ldr w21, [x1,920]
- ldr w23, [x0,3980]
+ ldr w21, [x1,924]
+ ldr w23, [x0,3996]
add w0, w21, 256
cmp w0, w23
- bls .L2095
- ldr w2, [x1,916]
+ bls .L2171
+ ldr w2, [x1,920]
add w0, w21, 768
cmp w0, w2
- bls .L2095
- ldr w0, [x1,652]
- cbz w0, .L2098
+ bls .L2171
+ ldr w0, [x1,660]
+ cbz w0, .L2174
cmp w21, 40
- bls .L2095
-.L2098:
+ bls .L2171
+.L2174:
mov w0, 65535
- b .L2097
-.L2095:
+ b .L2173
+.L2171:
add x0, x19, :lo12:.LANCHOR2
- ldrh w0, [x0,3600]
+ ldrh w0, [x0,3608]
add w0, w0, w0, lsl 1
lsr w0, w0, 2
bl GetFreeBlockMaxEraseCount
uxth w6, w0
add w0, w21, 64
cmp w6, w0
- bcs .L2107
+ bcs .L2183
cmp w21, 40
- bhi .L2098
-.L2107:
+ bhi .L2174
+.L2183:
add x1, x19, :lo12:.LANCHOR2
- ldr x3, [x1,3568]
- cbz x3, .L2098
+ ldr x3, [x1,3576]
+ cbz x3, .L2174
mov w26, 65535
mov x0, -6148914691236517206
- ldrh w9, [x1,756]
+ ldrh w9, [x1,764]
mov w20, w26
- ldr x7, [x1,1280]
+ ldr x7, [x1,1288]
mov w8, w26
- ldr x25, [x1,1168]
+ ldr x25, [x1,1176]
add x0, x0, 1
mov w1, 0
mov w10, 6
-.L2100:
+.L2176:
ldrh w5, [x3]
cmp w5, w8
- beq .L2102
+ beq .L2178
add w1, w1, 1
uxth w1, w1
cmp w1, w9
- bhi .L2098
+ bhi .L2174
ldrh w2, [x3,4]
- cbz w2, .L2101
+ cbz w2, .L2177
sub x4, x3, x7
asr x4, x4, 1
mul x4, x4, x0
@@ -14341,61 +14636,61 @@ GetSwlReplaceBlock:
and x4, x4, 65535
ldrh w2, [x25,x4,lsl 1]
cmp w2, w21
- bls .L2106
+ bls .L2182
cmp w2, w26
- bcs .L2101
+ bcs .L2177
mov w26, w2
mov w20, w3
-.L2101:
+.L2177:
umull x3, w5, w10
add x3, x7, x3
- b .L2100
-.L2106:
+ b .L2176
+.L2182:
mov w20, w3
-.L2102:
+.L2178:
mov w0, 65535
cmp w20, w0
- beq .L2098
+ beq .L2174
ubfiz x24, x20, 1, 16
ldrh w22, [x25,x24]
cmp w22, w21
- bls .L2104
+ bls .L2180
str x6, [x29,88]
bl GetFreeBlockMinEraseCount
ldr x6, [x29,88]
cmp w21, w0, uxth
- bcs .L2104
+ bcs .L2180
add x0, x19, :lo12:.LANCHOR2
- str w26, [x0,920]
-.L2104:
+ str w26, [x0,924]
+.L2180:
cmp w22, w23
- bcs .L2098
+ bcs .L2174
add w0, w22, 128
cmp w6, w0
- ble .L2098
+ ble .L2174
add w0, w22, 256
cmp w0, w23
- bcc .L2105
+ bcc .L2181
add x0, x19, :lo12:.LANCHOR2
add w22, w22, 768
- ldr w0, [x0,916]
+ ldr w0, [x0,920]
cmp w22, w0
- bcs .L2098
-.L2105:
+ bcs .L2174
+.L2181:
add x19, x19, :lo12:.LANCHOR2
adrp x0, .LC139
ldrh w5, [x25,x24]
add x0, x0, :lo12:.LC139
mov w1, w20
mov w2, w23
- ldr x4, [x19,1184]
- ldr w3, [x19,916]
+ ldr x4, [x19,1192]
+ ldr w3, [x19,920]
ldrh w4, [x4,x24]
bl printk
mov w0, 1
- str w0, [x19,928]
+ str w0, [x19,932]
mov w0, w20
-.L2097:
+.L2173:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -14412,13 +14707,13 @@ free_data_superblock:
mov w1, 65535
cmp w0, w1
add x29, sp, 0
- beq .L2122
- adrp x2, .LANCHOR2+1184
+ beq .L2198
+ adrp x2, .LANCHOR2+1192
ubfiz x1, x0, 1, 16
- ldr x2, [x2,#:lo12:.LANCHOR2+1184]
+ ldr x2, [x2,#:lo12:.LANCHOR2+1192]
strh wzr, [x2,x1]
bl INSERT_FREE_LIST
-.L2122:
+.L2198:
mov w0, 0
ldp x29, x30, [sp], 16
ret
@@ -14435,209 +14730,209 @@ allocate_data_superblock:
add x19, x21, :lo12:.LANCHOR2
stp x23, x24, [sp,48]
stp x25, x26, [sp,64]
- ldr w1, [x19,1400]
+ ldr w1, [x19,1408]
stp x27, x28, [sp,80]
- cbnz w1, .L2124
+ cbnz w1, .L2200
mov x20, x0
- add x23, x19, 3704
+ add x23, x19, 3712
adrp x22, .LANCHOR0
mov w24, 7
- add x25, x19, 3592
-.L2125:
+ add x25, x19, 3600
+.L2201:
cmp x20, x23
- bne .L2126
- ldrh w2, [x19,3600]
- ldr w4, [x19,928]
+ bne .L2202
+ ldrh w2, [x19,3608]
+ ldr w4, [x19,932]
lsr w3, w2, 1
add w1, w3, 1
mul w0, w2, w4
add w1, w1, w0, lsr 2
- ldr w0, [x19,652]
+ ldr w0, [x19,660]
uxth w1, w1
- cbz w0, .L2127
- ldr w0, [x19,920]
+ cbz w0, .L2203
+ ldr w0, [x19,924]
cmp w0, 39
- bhi .L2127
+ bhi .L2203
cmp w0, 2
mov w1, 0
- bls .L2128
- tbz x2, 0, .L2155
- cbz w4, .L2128
-.L2155:
+ bls .L2204
+ tbz x2, 0, .L2231
+ cbz w4, .L2204
+.L2231:
mov w1, w3
- b .L2127
-.L2126:
+ b .L2203
+.L2202:
ldrb w0, [x20,8]
mov w1, 0
cmp w0, 1
- bne .L2128
- ldrh w0, [x19,768]
+ bne .L2204
+ ldrh w0, [x19,776]
cmp w0, 1
- beq .L2128
+ beq .L2204
add x0, x22, :lo12:.LANCHOR0
- ldrb w0, [x0,136]
- cbnz w0, .L2128
- ldr w2, [x19,652]
- ldrh w0, [x19,3600]
+ ldrb w0, [x0,4044]
+ cbnz w0, .L2204
+ ldr w2, [x19,660]
+ ldrh w0, [x19,3608]
lsr w1, w0, 3
- cbz w2, .L2127
- ldr w2, [x19,920]
+ cbz w2, .L2203
+ ldr w2, [x19,924]
cmp w2, 1
- bhi .L2127
+ bhi .L2203
mul w1, w0, w24
lsr w1, w1, 3
-.L2127:
- cbz w1, .L2128
+.L2203:
+ cbz w1, .L2204
sub w1, w1, #1
uxth w1, w1
-.L2128:
+.L2204:
ldrb w2, [x20,8]
mov x0, x25
bl List_pop_index_node
uxth w28, w0
- ldrh w0, [x19,3600]
+ ldrh w0, [x19,3608]
sub w0, w0, #1
- strh w0, [x19,3600]
- ldrh w0, [x19,756]
+ strh w0, [x19,3608]
+ ldrh w0, [x19,764]
cmp w0, w28
- bls .L2125
+ bls .L2201
ubfiz x26, x28, 1, 16
- ldr x0, [x19,1184]
+ ldr x0, [x19,1192]
ldrh w0, [x0,x26]
- cbnz w0, .L2125
+ cbnz w0, .L2201
strh w28, [x20]
mov x0, x20
bl make_superblock
ldrb w0, [x20,7]
- cbz w0, .L2180
+ cbz w0, .L2256
mov x0, 0
- ldrh w5, [x19,748]
+ ldrh w5, [x19,756]
mov w27, w0
mov x3, 56
mov w6, 65535
-.L2132:
+.L2208:
cmp w5, w0, uxth
- bls .L2183
- ldr x4, [x19,1016]
+ bls .L2259
+ ldr x4, [x19,1024]
madd x1, x0, x3, x4
str xzr, [x1,16]
str xzr, [x1,8]
add x1, x20, x0, lsl 1
ldrh w1, [x1,16]
cmp w1, w6
- beq .L2133
+ beq .L2209
umull x2, w27, w3
add w27, w27, 1
lsl w1, w1, 10
add x2, x4, x2
uxth w27, w27
str w1, [x2,4]
-.L2133:
+.L2209:
add x0, x0, 1
- b .L2132
-.L2183:
- add x0, x19, 3608
+ b .L2208
+.L2259:
+ add x0, x19, 3616
cmp x20, x0
- bne .L2135
- ldr w1, [x19,652]
- cbz w1, .L2135
- ldr x1, [x19,1168]
+ bne .L2211
+ ldr w1, [x19,660]
+ cbz w1, .L2211
+ ldr x1, [x19,1176]
ldrh w1, [x1,x26]
cmp w1, 40
- bls .L2135
- strb wzr, [x19,3616]
-.L2135:
+ bls .L2211
+ strb wzr, [x19,3624]
+.L2211:
ldrb w0, [x20,8]
- cbnz w0, .L2136
- ldr x0, [x19,1168]
+ cbnz w0, .L2212
+ ldr x0, [x19,1176]
mov w1, 2
ldrh w2, [x0,x26]
- cbz w2, .L2181
- ldrh w1, [x19,808]
+ cbz w2, .L2257
+ ldrh w1, [x19,816]
add w1, w2, w1
-.L2181:
+.L2257:
strh w1, [x0,x26]
mov w1, 0
- ldr w0, [x19,904]
+ ldr w0, [x19,908]
add w0, w0, 1
- str w0, [x19,904]
+ str w0, [x19,908]
mov w0, w28
bl ftl_set_blk_mode
- b .L2139
-.L2136:
- ldr x1, [x19,1168]
+ b .L2215
+.L2212:
+ ldr x1, [x19,1176]
ldrh w0, [x1,x26]
add w0, w0, 1
strh w0, [x1,x26]
- ldr w0, [x19,908]
+ ldr w0, [x19,912]
add w0, w0, 1
- str w0, [x19,908]
+ str w0, [x19,912]
mov w0, w28
bl ftl_set_blk_mode.part.17
-.L2139:
- ldr x0, [x19,1168]
- ldr w1, [x19,916]
+.L2215:
+ ldr x0, [x19,1176]
+ ldr w1, [x19,920]
ldrh w0, [x0,x26]
cmp w0, w1
- bls .L2140
- str w0, [x19,916]
-.L2140:
- ldrh w1, [x19,808]
+ bls .L2216
+ str w0, [x19,920]
+.L2216:
+ ldrh w1, [x19,816]
mov x3, 56
- ldr w2, [x19,904]
- ldr w0, [x19,908]
+ ldr w2, [x19,908]
+ ldr w0, [x19,912]
madd w0, w1, w2, w0
- ldrh w1, [x19,756]
+ ldrh w1, [x19,764]
udiv w0, w0, w1
- adrp x1, .LANCHOR4+3980
- str w0, [x1,#:lo12:.LANCHOR4+3980]
- ldr x1, [x19,1160]
+ adrp x1, .LANCHOR4+3996
+ str w0, [x1,#:lo12:.LANCHOR4+3996]
+ ldr x1, [x19,1168]
ldr w0, [x1,16]
add w0, w0, 1
str w0, [x1,16]
mov x0, 0
-.L2141:
+.L2217:
cmp w27, w0, uxth
- bls .L2184
- ldr x1, [x19,1016]
+ bls .L2260
+ ldr x1, [x19,1024]
madd x1, x0, x3, x1
add x0, x0, 1
ldr w2, [x1,4]
and w2, w2, -1024
str w2, [x1,4]
- b .L2141
-.L2184:
+ b .L2217
+.L2260:
add x0, x22, :lo12:.LANCHOR0
- ldrb w0, [x0,136]
- cbz w0, .L2143
+ ldrb w0, [x0,4044]
+ cbz w0, .L2219
ldrb w0, [x20,8]
cmp w0, 1
- ldr x0, [x19,1016]
- bne .L2144
+ ldr x0, [x19,1024]
+ bne .L2220
mov w1, 0
- b .L2182
-.L2144:
+ b .L2258
+.L2220:
mov w1, 1
-.L2182:
+.L2258:
mov w2, w27
bl FlashEraseBlocks
-.L2143:
+.L2219:
ldrb w1, [x20,8]
mov w2, w27
- ldr x0, [x19,1016]
+ ldr x0, [x19,1024]
bl FlashEraseBlocks
mov x1, 0
mov x4, 56
mov w2, w1
-.L2145:
+.L2221:
cmp w27, w1, uxth
- bls .L2185
+ bls .L2261
mul x0, x1, x4
- ldr x3, [x19,1016]
+ ldr x3, [x19,1024]
add x5, x3, x0
ldr w3, [x3,x0]
cmn w3, #1
- bne .L2146
+ bne .L2222
ldr w0, [x5,4]
add w2, w2, 1
str x4, [x29,104]
@@ -14656,39 +14951,39 @@ allocate_data_superblock:
ldrb w0, [x20,7]
sub w0, w0, #1
strb w0, [x20,7]
-.L2146:
+.L2222:
add x1, x1, 1
- b .L2145
-.L2185:
- cbz w2, .L2148
+ b .L2221
+.L2261:
+ cbz w2, .L2224
mov w0, w28
bl update_multiplier_value
bl FtlBbmTblFlush
-.L2148:
+.L2224:
ldrb w0, [x20,7]
- cbnz w0, .L2149
-.L2180:
- ldr x0, [x19,1184]
+ cbnz w0, .L2225
+.L2256:
+ ldr x0, [x19,1192]
mov w1, -1
strh w1, [x0,x26]
- b .L2125
-.L2149:
+ b .L2201
+.L2225:
add x21, x21, :lo12:.LANCHOR2
strh wzr, [x20,2]
strb wzr, [x20,6]
- ldrh w1, [x21,818]
+ ldrh w1, [x21,824]
strh w28, [x20]
mul w0, w0, w1
- ldr w1, [x21,872]
+ ldr w1, [x21,876]
str w1, [x20,12]
uxth w0, w0
add w1, w1, 1
strh w0, [x20,4]
- str w1, [x21,872]
- ldr x1, [x21,1184]
+ str w1, [x21,876]
+ ldr x1, [x21,1192]
ldrh w2, [x20]
strh w0, [x1,x2,lsl 1]
-.L2124:
+.L2200:
mov w0, 0
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -14702,36 +14997,36 @@ allocate_data_superblock:
.global FtlGcBufInit
.type FtlGcBufInit, %function
FtlGcBufInit:
- adrp x0, .LANCHOR4+3984
+ adrp x0, .LANCHOR4+4000
mov w1, 0
adrp x7, .LANCHOR2
mov w8, 24
mov w9, 1
mov w4, 4
- str wzr, [x0,#:lo12:.LANCHOR4+3984]
+ str wzr, [x0,#:lo12:.LANCHOR4+4000]
mov w10, 56
-.L2187:
+.L2263:
add x2, x7, :lo12:.LANCHOR2
adrp x6, .LANCHOR2
- ldrh w0, [x2,748]
+ ldrh w0, [x2,756]
cmp w1, w0
- bcs .L2191
+ bcs .L2267
umull x3, w1, w8
- ldr x5, [x2,1104]
- ldr x6, [x2,1072]
+ ldr x5, [x2,1112]
+ ldr x6, [x2,1080]
add x0, x5, x3
str w9, [x0,16]
- ldrh w0, [x2,828]
+ ldrh w0, [x2,834]
mul w0, w1, w0
sdiv w0, w0, w4
add x0, x6, x0, sxtw 2
str x0, [x5,x3]
- ldrh w0, [x2,830]
- ldr x6, [x2,1104]
- ldr x11, [x2,1128]
+ ldrh w0, [x2,836]
+ ldr x6, [x2,1112]
+ ldr x11, [x2,1136]
mul w0, w1, w0
add x5, x6, x3
- ldr x2, [x2,1024]
+ ldr x2, [x2,1032]
sdiv w0, w0, w4
add x0, x11, x0, sxtw 2
str x0, [x5,8]
@@ -14743,28 +15038,28 @@ FtlGcBufInit:
str x2, [x0,8]
ldr x2, [x5,8]
str x2, [x0,16]
- b .L2187
-.L2191:
+ b .L2263
+.L2267:
mov w7, 24
mov w4, 4
-.L2189:
+.L2265:
add x1, x6, :lo12:.LANCHOR2
- ldr w2, [x1,1040]
+ ldr w2, [x1,1048]
cmp w0, w2
- bcs .L2192
+ bcs .L2268
umull x3, w0, w7
- ldr x5, [x1,1104]
- ldr x8, [x1,1072]
+ ldr x5, [x1,1112]
+ ldr x8, [x1,1080]
add x2, x5, x3
str wzr, [x2,16]
- ldrh w2, [x1,828]
+ ldrh w2, [x1,834]
mul w2, w0, w2
sdiv w2, w2, w4
add x2, x8, x2, sxtw 2
str x2, [x5,x3]
- ldrh w2, [x1,830]
- ldr x5, [x1,1104]
- ldr x1, [x1,1128]
+ ldrh w2, [x1,836]
+ ldr x5, [x1,1112]
+ ldr x1, [x1,1136]
mul w2, w0, w2
add x3, x5, x3
add w0, w0, 1
@@ -14772,8 +15067,8 @@ FtlGcBufInit:
uxth w0, w0
add x1, x1, x2, sxtw 2
str x1, [x3,8]
- b .L2189
-.L2192:
+ b .L2265
+.L2268:
ret
.size FtlGcBufInit, .-FtlGcBufInit
.align 2
@@ -14789,35 +15084,35 @@ FtlVariablesInit:
adrp x19, .LANCHOR2
add x19, x19, :lo12:.LANCHOR2
add x20, x20, :lo12:.LANCHOR4
- ldrh w2, [x19,840]
- strh w0, [x20,4000]
+ ldrh w2, [x19,844]
+ strh w0, [x20,4016]
mov w0, -1
- str w0, [x20,4012]
+ str w0, [x20,4028]
lsl w2, w2, 1
- ldr x0, [x19,1208]
- str xzr, [x20,3992]
- str wzr, [x20,4004]
- str wzr, [x20,4008]
- str wzr, [x19,652]
- strh wzr, [x19,1392]
+ ldr x0, [x19,1216]
+ str xzr, [x20,4008]
+ str wzr, [x20,4020]
+ str wzr, [x20,4024]
+ str wzr, [x19,660]
+ strh wzr, [x19,1400]
bl ftl_memset
- ldrh w2, [x19,758]
+ ldrh w2, [x19,766]
mov w1, 0
- ldr x0, [x19,1168]
+ ldr x0, [x19,1176]
lsl w2, w2, 1
bl ftl_memset
- ldrh w2, [x19,758]
+ ldrh w2, [x19,766]
mov w1, 0
- ldr x0, [x19,1152]
+ ldr x0, [x19,1160]
lsl w2, w2, 1
bl ftl_memset
- add x0, x19, 3520
+ add x0, x19, 3528
mov w1, 0
mov w2, 48
bl ftl_memset
mov w1, 0
mov w2, 512
- add x0, x20, 3456
+ add x0, x20, 3472
bl ftl_memset
bl FtlGcBufInit
bl FtlL2PDataInit
@@ -14835,34 +15130,34 @@ FtlGcBufFree:
add x2, x2, :lo12:.LANCHOR2
mov w7, 56
mov w9, 24
- ldr w8, [x2,1040]
- ldr x5, [x2,1104]
-.L2195:
+ ldr w8, [x2,1048]
+ ldr x5, [x2,1112]
+.L2271:
cmp w3, w1
- bcs .L2194
+ bcs .L2270
umull x4, w3, w7
mov w2, 0
add x4, x0, x4
-.L2200:
+.L2276:
cmp w2, w8
- bcs .L2197
+ bcs .L2273
umull x6, w2, w9
add x10, x5, x6
ldr x11, [x5,x6]
ldr x6, [x4,8]
cmp x11, x6
- bne .L2196
+ bne .L2272
str wzr, [x10,16]
- b .L2197
-.L2196:
+ b .L2273
+.L2272:
add w2, w2, 1
uxth w2, w2
- b .L2200
-.L2197:
+ b .L2276
+.L2273:
add w3, w3, 1
uxth w3, w3
- b .L2195
-.L2194:
+ b .L2271
+.L2270:
ret
.size FtlGcBufFree, .-FtlGcBufFree
.align 2
@@ -14874,20 +15169,20 @@ FtlGcBufAlloc:
add x2, x2, :lo12:.LANCHOR2
mov w8, 1
mov w9, 56
- ldr w5, [x2,1040]
- ldr x6, [x2,1104]
+ ldr w5, [x2,1048]
+ ldr x6, [x2,1112]
mov w2, 0
-.L2202:
+.L2278:
cmp w2, w1
- bcs .L2208
+ bcs .L2284
mov w3, 0
-.L2206:
+.L2282:
cmp w3, w5
- bcs .L2204
+ bcs .L2280
umull x4, w3, w7
add x4, x6, x4
ldr w10, [x4,16]
- cbnz w10, .L2203
+ cbnz w10, .L2279
umull x3, w2, w9
str w8, [x4,16]
add x3, x0, x3
@@ -14895,41 +15190,41 @@ FtlGcBufAlloc:
str x10, [x3,8]
ldr x4, [x4,8]
str x4, [x3,16]
- b .L2204
-.L2203:
+ b .L2280
+.L2279:
add w3, w3, 1
uxth w3, w3
- b .L2206
-.L2204:
+ b .L2282
+.L2280:
add w2, w2, 1
uxth w2, w2
- b .L2202
-.L2208:
+ b .L2278
+.L2284:
ret
.size FtlGcBufAlloc, .-FtlGcBufAlloc
.align 2
.global IsBlkInGcList
.type IsBlkInGcList, %function
IsBlkInGcList:
- adrp x1, .LANCHOR4+4016
+ adrp x1, .LANCHOR4+4032
uxth w0, w0
- ldrh w2, [x1,#:lo12:.LANCHOR4+4016]
- adrp x1, .LANCHOR2+976
- ldr x3, [x1,#:lo12:.LANCHOR2+976]
+ ldrh w2, [x1,#:lo12:.LANCHOR4+4032]
+ adrp x1, .LANCHOR2+984
+ ldr x3, [x1,#:lo12:.LANCHOR2+984]
mov x1, 0
-.L2210:
+.L2286:
cmp w2, w1, uxth
- bls .L2214
+ bls .L2290
add x1, x1, 1
add x4, x3, x1, lsl 1
ldrh w4, [x4,-2]
cmp w4, w0
- bne .L2210
+ bne .L2286
mov w0, 1
- b .L2211
-.L2214:
+ b .L2287
+.L2290:
mov w0, 0
-.L2211:
+.L2287:
ret
.size IsBlkInGcList, .-IsBlkInGcList
.align 2
@@ -14950,44 +15245,44 @@ FtlGcUpdatePage:
ldr x1, [x29,32]
uxth w9, w0
mov x6, 0
- ldrh w8, [x4,4016]
+ ldrh w8, [x4,4032]
adrp x4, .LANCHOR2
add x5, x4, :lo12:.LANCHOR2
- ldr x7, [x5,976]
-.L2216:
+ ldr x7, [x5,984]
+.L2292:
uxth w5, w6
cmp w5, w8
- bcs .L2220
+ bcs .L2296
add x6, x6, 1
add x10, x7, x6, lsl 1
ldrh w10, [x10,-2]
cmp w10, w9
- bne .L2216
-.L2220:
+ bne .L2292
+.L2296:
cmp w5, w8
- bne .L2218
+ bne .L2294
ubfiz x5, x5, 1, 16
strh w0, [x7,x5]
add x0, x3, :lo12:.LANCHOR4
- ldrh w5, [x0,4016]
+ ldrh w5, [x0,4032]
add w5, w5, 1
- strh w5, [x0,4016]
-.L2218:
+ strh w5, [x0,4032]
+.L2294:
add x3, x3, :lo12:.LANCHOR4
add x4, x4, :lo12:.LANCHOR2
mov w0, 12
- ldrh w5, [x3,4018]
- ldr x6, [x4,984]
+ ldrh w5, [x3,4034]
+ ldr x6, [x4,992]
umull x5, w5, w0
add x6, x6, x5
str w1, [x6,4]
- ldr x1, [x4,984]
+ ldr x1, [x4,992]
add x0, x1, x5
str w2, [x0,8]
str w19, [x1,x5]
- ldrh w0, [x3,4018]
+ ldrh w0, [x3,4034]
add w0, w0, 1
- strh w0, [x3,4018]
+ strh w0, [x3,4034]
ldr x19, [sp,16]
ldp x29, x30, [sp], 48
ret
@@ -15004,15 +15299,15 @@ FtlGcPageVarInit:
adrp x19, .LANCHOR2
add x19, x19, :lo12:.LANCHOR2
add x0, x0, :lo12:.LANCHOR4
- ldrh w2, [x19,822]
- strh wzr, [x0,4016]
- strh wzr, [x0,4018]
+ ldrh w2, [x19,828]
+ strh wzr, [x0,4032]
+ strh wzr, [x0,4034]
lsl w2, w2, 1
- ldr x0, [x19,976]
+ ldr x0, [x19,984]
bl ftl_memset
- ldrh w3, [x19,822]
+ ldrh w3, [x19,828]
mov w2, 12
- ldr x0, [x19,984]
+ ldr x0, [x19,992]
mov w1, 255
mul w2, w3, w2
bl ftl_memset
@@ -15025,216 +15320,263 @@ FtlGcPageVarInit:
.global FtlGcScanTempBlk
.type FtlGcScanTempBlk, %function
FtlGcScanTempBlk:
- stp x29, x30, [sp, -160]!
+ stp x29, x30, [sp, -208]!
add x29, sp, 0
stp x19, x20, [sp,16]
- adrp x20, .LANCHOR1
mov x19, x0
- add x0, x20, :lo12:.LANCHOR1
- str w1, [x29,152]
+ adrp x0, .LANCHOR1
+ str w1, [x29,128]
+ add x1, x0, :lo12:.LANCHOR1
stp x21, x22, [sp,32]
stp x23, x24, [sp,48]
stp x25, x26, [sp,64]
stp x27, x28, [sp,80]
- str x20, [x29,136]
- ldrh w26, [x0,3164]
- mov w0, 65535
- cmp w26, w0
- beq .L2245
- cbnz w26, .L2224
- b .L2225
-.L2245:
+ str x0, [x29,120]
+ ldrh w26, [x1,3292]
+ mov w1, 65535
+ cmp w26, w1
+ beq .L2329
+ cbnz w26, .L2300
+ b .L2301
+.L2329:
mov w26, 0
-.L2224:
- adrp x0, .LANCHOR2+818
- ldr w1, [x29,152]
- ldrh w0, [x0,#:lo12:.LANCHOR2+818]
+.L2300:
+ adrp x0, .LANCHOR2+824
+ ldr w1, [x29,128]
+ ldrh w0, [x0,#:lo12:.LANCHOR2+824]
cmp w1, w0
- bne .L2226
-.L2225:
+ bne .L2302
+.L2301:
bl FtlGcPageVarInit
-.L2226:
+.L2302:
mov w0, -1
adrp x25, .LANCHOR2
- str w0, [x29,156]
- adrp x0, .LC140
- add x0, x0, :lo12:.LC140
- mov w22, 0
- mov w23, 65535
+ str w0, [x29,132]
+ adrp x0, .LC141
+ add x0, x0, :lo12:.LC141
+ mov w23, 0
+ mov x22, x25
mov x21, x25
- mov x24, x25
- str x0, [x29,128]
-.L2239:
+ str x0, [x29,112]
+.L2303:
ldrh w0, [x19]
+ mov w20, 65535
strb wzr, [x19,8]
- cmp w0, w23
- beq .L2246
-.L2228:
-.L2242:
+ cmp w0, w20
+ beq .L2304
+.L2305:
+ str w20, [x29,140]
+.L2326:
add x0, x25, :lo12:.LANCHOR2
mov x2, x19
- mov w20, 0
- ldrh w5, [x0,748]
- ldrh w8, [x0,830]
- add x5, x19, x5, lsl 1
-.L2229:
- cmp x2, x5
- beq .L2254
+ mov w27, 0
+ mov w11, 56
+ mov w8, 4
+ ldrh w6, [x0,756]
+ ldrh w9, [x0,834]
+ ldrh w10, [x0,836]
+ add x6, x19, x6, lsl 1
+.L2306:
+ cmp x2, x6
+ beq .L2344
ldrh w1, [x2,16]
- cmp w1, w23
- beq .L2230
- add x6, x21, :lo12:.LANCHOR2
- mov w0, 56
+ ldr w0, [x29,140]
+ cmp w1, w0
+ beq .L2307
+ add x5, x22, :lo12:.LANCHOR2
orr w1, w26, w1, lsl 10
- mov w3, 4
- umull x0, w20, w0
- ldr x7, [x6,992]
- add w4, w20, 1
+ umull x0, w27, w11
+ add w4, w27, 1
+ ldr x7, [x5,1000]
add x7, x7, x0
str w1, [x7,4]
- ldr x1, [x6,992]
- ldr x6, [x6,1128]
+ ldr x1, [x5,1000]
+ ldr x7, [x5,1080]
add x0, x1, x0
- mul w1, w20, w8
- uxth w20, w4
- str xzr, [x0,8]
- sdiv w1, w1, w3
- add x1, x6, x1, sxtw 2
+ ldr x5, [x5,1136]
+ mul w1, w27, w9
+ sdiv w1, w1, w8
+ add x1, x7, x1, sxtw 2
+ str x1, [x0,8]
+ mul w1, w27, w10
+ uxth w27, w4
+ sdiv w1, w1, w8
+ add x1, x5, x1, sxtw 2
str x1, [x0,16]
-.L2230:
+.L2307:
add x2, x2, 2
- b .L2229
-.L2254:
- add x0, x21, :lo12:.LANCHOR2
- mov w1, w20
+ b .L2306
+.L2344:
+ add x0, x22, :lo12:.LANCHOR2
+ mov w1, w27
mov w2, 0
- mov x27, 0
- ldr x0, [x0,992]
+ mov x24, 0
+ ldr x0, [x0,1000]
bl FlashReadPages
-.L2232:
- cmp w20, w27, uxth
- bls .L2255
+.L2309:
+ cmp w27, w24, uxth
+ bls .L2345
+ add x20, x22, :lo12:.LANCHOR2
mov x0, 56
- mul x28, x27, x0
- add x0, x21, :lo12:.LANCHOR2
- str x0, [x29,144]
- ldr x8, [x0,992]
- str x8, [x29,104]
- add x1, x8, x28
- str x1, [x29,112]
- ldr w2, [x1,4]
- str x2, [x29,120]
- lsr x0, x2, 10
- bl P2V_plane
- uxth w6, w0
- ldr x8, [x29,104]
- ldr x2, [x29,120]
- ldr w0, [x8,x28]
- cbnz w0, .L2233
- ldr x1, [x29,112]
- add x27, x27, 1
- ldr x5, [x1,16]
- ldrh w0, [x5]
- cmp w0, w23
- bne .L2234
- adrp x0, .LANCHOR4+4008
+ mul x28, x24, x0
+ ldr x1, [x20,1000]
+ add x0, x1, x28
+ ldr w8, [x1,x28]
+ ldr w2, [x0,4]
+ str w2, [x29,136]
+ cbnz w8, .L2310
+ ldr x7, [x0,16]
+ ldr w1, [x29,140]
+ ldrh w0, [x7]
+ cmp w0, w1
+ beq .L2323
+ ldr w0, [x7,8]
+ ldr w1, [x20,1404]
+ cmp w0, w1
+ bhi .L2323
+ adrp x1, .LANCHOR0
+ add x1, x1, :lo12:.LANCHOR0
+ ldrb w1, [x1,24]
+ cbz w1, .L2315
+ add x1, x29, 148
+ mov w2, w8
+ str x7, [x29,104]
+ str x8, [x29,96]
+ bl log2phys
+ ldr x7, [x29,104]
+ ldr w1, [x29,148]
+ ldr w0, [x7,12]
+ cmp w1, w0
+ bne .L2315
+ cmn w1, #1
+ beq .L2315
+ str w0, [x29,156]
mov w1, 1
- str w1, [x0,#:lo12:.LANCHOR4+4008]
- b .L2227
-.L2234:
- mov w1, w2
- ldr w0, [x5,12]
- ldr w2, [x5,8]
+ ldr x0, [x20,1104]
+ ldr x8, [x29,96]
+ str x0, [x29,160]
+ ldr x0, [x20,1128]
+ mov w2, w8
+ str x0, [x29,168]
+ add x0, x29, 152
+ bl FlashReadPages
+ ldr x0, [x20,1000]
+ ldrh w2, [x20,830]
+ ldr x6, [x29,160]
+ add x5, x0, x28
+ ldr x7, [x29,104]
+ lsl w2, w2, 7
+ mov x0, 0
+.L2317:
+ cmp w2, w0
+ bls .L2315
+ lsl x1, x0, 2
+ ldr x8, [x5,8]
+ add x0, x0, 1
+ ldr w8, [x8,x1]
+ ldr w1, [x6,x1]
+ cmp w8, w1
+ beq .L2317
+ adrp x0, .LC140
+ ldrh w1, [x19]
+ ldr w2, [x29,156]
+ add x0, x0, :lo12:.LC140
+ bl printk
+ b .L2323
+.L2315:
+ ldr w0, [x7,12]
+ add x24, x24, 1
+ ldr w1, [x29,136]
+ ldr w2, [x7,8]
bl FtlGcUpdatePage
- b .L2232
-.L2233:
- ldr x0, [x29,128]
+ b .L2309
+.L2310:
+ ldr x0, [x29,112]
ldrh w1, [x19]
+ ldr w2, [x29,136]
bl printk
- ldr x0, [x29,144]
- ldr w0, [x0,652]
- cbnz w0, .L2235
- adrp x0, .LANCHOR0+136
- ldrb w0, [x0,#:lo12:.LANCHOR0+136]
- cbz w0, .L2236
-.L2235:
- add x0, x24, :lo12:.LANCHOR2
+ ldr w0, [x20,660]
+ cbnz w0, .L2320
+ adrp x0, .LANCHOR0+4044
+ ldrb w0, [x0,#:lo12:.LANCHOR0+4044]
+ cbz w0, .L2321
+.L2320:
+ add x0, x21, :lo12:.LANCHOR2
ldrh w1, [x19]
- ldr x0, [x0,1168]
+ ldr x0, [x0,1176]
ldrh w0, [x0,x1,lsl 1]
cmp w0, 159
- bls .L2237
-.L2236:
- add x0, x24, :lo12:.LANCHOR2
- ldr x0, [x0,992]
+ bls .L2322
+.L2321:
+ add x0, x21, :lo12:.LANCHOR2
+ ldr x0, [x0,1000]
ldr w0, [x0,x28]
cmn w0, #1
- bne .L2238
-.L2237:
- add x0, x24, :lo12:.LANCHOR2
- ldr x0, [x0,992]
+ bne .L2323
+.L2322:
+ add x0, x21, :lo12:.LANCHOR2
+ ldr x0, [x0,1000]
add x5, x0, x28
ldr w0, [x5,4]
- str w0, [x29,156]
-.L2238:
- add x0, x24, :lo12:.LANCHOR2
+ str w0, [x29,132]
+.L2323:
+ add x0, x21, :lo12:.LANCHOR2
ldrh w1, [x19]
mov w26, 0
- ldr x0, [x0,1184]
+ ldr x0, [x0,1192]
strh wzr, [x0,x1,lsl 1]
ldrh w0, [x19]
bl INSERT_FREE_LIST
mov w0, -1
strh w0, [x19]
bl FtlGcPageVarInit
- b .L2239
-.L2255:
- ldr w0, [x29,152]
- add w22, w22, 1
+ b .L2303
+.L2345:
+ ldr w0, [x29,128]
+ add w23, w23, 1
add w3, w26, 1
- cmp w22, w0
+ cmp w23, w0
uxth w26, w3
- bcs .L2241
-.L2243:
- add x0, x21, :lo12:.LANCHOR2
- ldrh w0, [x0,818]
+ bcs .L2325
+.L2327:
+ add x0, x22, :lo12:.LANCHOR2
+ ldrh w0, [x0,824]
cmp w0, w26
- bhi .L2242
- b .L2246
-.L2241:
- ldr x0, [x29,136]
+ bhi .L2326
+ b .L2304
+.L2325:
+ ldr x0, [x29,120]
+ ldr w2, [x29,140]
add x1, x0, :lo12:.LANCHOR1
- ldrh w0, [x1,3164]
- cmp w0, w23
- beq .L2243
- add w0, w0, w22
- strh w0, [x1,3164]
- add x0, x21, :lo12:.LANCHOR2
- ldrh w0, [x0,818]
+ ldrh w0, [x1,3292]
+ cmp w0, w2
+ beq .L2327
+ add w0, w0, w23
+ strh w0, [x1,3292]
+ add x0, x22, :lo12:.LANCHOR2
+ ldrh w0, [x0,824]
cmp w0, w26
- bls .L2243
- b .L2244
-.L2246:
- mov w6, 0
-.L2227:
- ldr x0, [x29,136]
- mov w1, w26
+ bls .L2327
+ b .L2328
+.L2304:
+ ldr x0, [x29,120]
+ mov w1, -1
strh w26, [x19,2]
- mov w2, w6
- add x20, x0, :lo12:.LANCHOR1
- mov w0, -1
- strb w6, [x19,6]
- strh w0, [x20,3164]
+ mov w2, 0
+ add x0, x0, :lo12:.LANCHOR1
+ strb wzr, [x19,6]
+ strh w1, [x0,3292]
mov x0, x19
+ mov w1, w26
bl ftl_sb_update_avl_pages
-.L2244:
- ldr w0, [x29,156]
+.L2328:
+ ldr w0, [x29,132]
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
ldp x25, x26, [sp,64]
ldp x27, x28, [sp,80]
- ldp x29, x30, [sp], 160
+ ldp x29, x30, [sp], 208
ret
.size FtlGcScanTempBlk, .-FtlGcScanTempBlk
.align 2
@@ -15245,44 +15587,44 @@ FtlGcRefreshOpenBlock:
add x29, sp, 0
str x19, [sp,16]
uxth w19, w0
- adrp x0, .LC141
+ adrp x0, .LC142
mov w1, w19
- add x0, x0, :lo12:.LC141
+ add x0, x0, :lo12:.LC142
bl printk
adrp x2, .LANCHOR2
add x2, x2, :lo12:.LANCHOR2
- ldrh w5, [x2,948]
+ ldrh w5, [x2,952]
cmp w5, w19
- beq .L2257
- ldrh w4, [x2,950]
+ beq .L2347
+ ldrh w4, [x2,954]
cmp w4, w19
- beq .L2257
- ldrh w3, [x2,952]
+ beq .L2347
+ ldrh w3, [x2,956]
cmp w3, w19
- beq .L2257
- ldrh w1, [x2,954]
+ beq .L2347
+ ldrh w1, [x2,958]
cmp w1, w19
- beq .L2257
+ beq .L2347
mov w0, 65535
cmp w5, w0
- bne .L2258
- strh w19, [x2,948]
- b .L2257
-.L2258:
+ bne .L2348
+ strh w19, [x2,952]
+ b .L2347
+.L2348:
cmp w4, w0
- bne .L2259
- strh w19, [x2,950]
- b .L2257
-.L2259:
+ bne .L2349
+ strh w19, [x2,954]
+ b .L2347
+.L2349:
cmp w3, w0
- bne .L2260
- strh w19, [x2,952]
- b .L2257
-.L2260:
+ bne .L2350
+ strh w19, [x2,956]
+ b .L2347
+.L2350:
cmp w1, w0
- bne .L2257
- strh w19, [x2,954]
-.L2257:
+ bne .L2347
+ strh w19, [x2,958]
+.L2347:
mov w0, 0
ldr x19, [sp,16]
ldp x29, x30, [sp], 32
@@ -15296,48 +15638,48 @@ FtlGcRefreshBlock:
add x29, sp, 0
str x19, [sp,16]
uxth w19, w0
- adrp x0, .LC141
+ adrp x0, .LC142
mov w1, w19
- add x0, x0, :lo12:.LC141
+ add x0, x0, :lo12:.LC142
bl printk
adrp x2, .LANCHOR2
mov w0, 0
add x2, x2, :lo12:.LANCHOR2
- ldrh w6, [x2,948]
+ ldrh w6, [x2,952]
cmp w6, w19
- beq .L2262
- ldrh w5, [x2,950]
+ beq .L2352
+ ldrh w5, [x2,954]
cmp w5, w19
- beq .L2262
- ldrh w4, [x2,952]
+ beq .L2352
+ ldrh w4, [x2,956]
cmp w4, w19
- beq .L2262
- ldrh w3, [x2,954]
+ beq .L2352
+ ldrh w3, [x2,958]
cmp w3, w19
- beq .L2262
+ beq .L2352
mov w1, 65535
cmp w6, w1
- bne .L2263
- strh w19, [x2,948]
- b .L2262
-.L2263:
+ bne .L2353
+ strh w19, [x2,952]
+ b .L2352
+.L2353:
cmp w5, w1
- bne .L2264
- strh w19, [x2,950]
- b .L2271
-.L2264:
+ bne .L2354
+ strh w19, [x2,954]
+ b .L2361
+.L2354:
cmp w4, w1
- bne .L2265
- strh w19, [x2,952]
- b .L2271
-.L2265:
+ bne .L2355
+ strh w19, [x2,956]
+ b .L2361
+.L2355:
cmp w3, w1
mov w0, -1
- bne .L2262
- strh w19, [x2,954]
-.L2271:
+ bne .L2352
+ strh w19, [x2,958]
+.L2361:
mov w0, 0
-.L2262:
+.L2352:
ldr x19, [sp,16]
ldp x29, x30, [sp], 32
ret
@@ -15357,49 +15699,49 @@ FtlGcMarkBadPhyBlk:
str x23, [sp,48]
bl P2V_block_in_plane
uxth w21, w0
- ldrh w1, [x22,962]
- adrp x0, .LC142
+ ldrh w1, [x22,966]
+ adrp x0, .LC143
mov w2, w20
- add x0, x0, :lo12:.LC142
+ add x0, x0, :lo12:.LC143
bl printk
mov w0, w21
bl FtlGcRefreshBlock
- ldr w0, [x22,652]
- cbz w0, .L2273
+ ldr w0, [x22,660]
+ cbz w0, .L2363
ubfiz x0, x21, 1, 16
- ldr x2, [x22,1168]
+ ldr x2, [x22,1176]
ldrh w1, [x2,x0]
cmp w1, 39
- bls .L2273
+ bls .L2363
sub w1, w1, #40
strh w1, [x2,x0]
-.L2273:
+.L2363:
add x0, x19, :lo12:.LANCHOR2
adrp x1, .LANCHOR4
add x1, x1, :lo12:.LANCHOR4
- add x1, x1, 4024
- ldrh w3, [x0,962]
+ add x1, x1, 4040
+ ldrh w3, [x0,966]
mov x0, 0
-.L2274:
+.L2364:
cmp w3, w0, uxth
- bls .L2280
+ bls .L2370
add x0, x0, 1
add x2, x1, x0, lsl 1
ldrh w2, [x2,-2]
cmp w2, w20
- bne .L2274
- b .L2275
-.L2280:
+ bne .L2364
+ b .L2365
+.L2370:
cmp w3, 15
- bhi .L2275
+ bhi .L2365
adrp x1, .LANCHOR4
add x19, x19, :lo12:.LANCHOR2
add x1, x1, :lo12:.LANCHOR4
add w0, w3, 1
- add x1, x1, 4024
- strh w0, [x19,962]
+ add x1, x1, 4040
+ strh w0, [x19,966]
strh w20, [x1,w3,sxtw 1]
-.L2275:
+.L2365:
mov w0, 0
ldr x23, [sp,48]
ldp x19, x20, [sp,16]
@@ -15416,29 +15758,29 @@ FtlGcReFreshBadBlk:
str x19, [sp,16]
adrp x19, .LANCHOR2
add x0, x19, :lo12:.LANCHOR2
- ldrh w1, [x0,962]
- cbz w1, .L2282
- ldrh w3, [x0,948]
+ ldrh w1, [x0,966]
+ cbz w1, .L2372
+ ldrh w3, [x0,952]
mov w2, 65535
cmp w3, w2
- bne .L2282
- ldrh w2, [x0,966]
+ bne .L2372
+ ldrh w2, [x0,970]
cmp w2, w1
- bcc .L2283
- strh wzr, [x0,966]
-.L2283:
+ bcc .L2373
+ strh wzr, [x0,970]
+.L2373:
add x19, x19, :lo12:.LANCHOR2
adrp x0, .LANCHOR4
add x0, x0, :lo12:.LANCHOR4
- add x0, x0, 4024
- ldrh w1, [x19,966]
+ add x0, x0, 4040
+ ldrh w1, [x19,970]
ldrh w0, [x0,w1,sxtw 1]
bl P2V_block_in_plane
bl FtlGcRefreshBlock
- ldrh w0, [x19,966]
+ ldrh w0, [x19,970]
add w0, w0, 1
- strh w0, [x19,966]
-.L2282:
+ strh w0, [x19,970]
+.L2372:
mov w0, 0
ldr x19, [sp,16]
ldp x29, x30, [sp], 32
@@ -15456,65 +15798,65 @@ FtlGcFreeBadSuperBlk:
add x19, x19, :lo12:.LANCHOR2
stp x23, x24, [sp,48]
uxth w23, w0
- ldrh w0, [x19,962]
+ ldrh w0, [x19,966]
stp x21, x22, [sp,32]
stp x25, x26, [sp,64]
mov w21, 0
- cbz w0, .L2289
+ cbz w0, .L2379
adrp x24, .LANCHOR4
- adrp x22, .LC143
- add x22, x22, :lo12:.LC143
+ adrp x22, .LC144
+ add x22, x22, :lo12:.LC144
add x25, x24, :lo12:.LANCHOR4
-.L2297:
- ldrh w0, [x19,748]
+.L2387:
+ ldrh w0, [x19,756]
cmp w0, w21
- bls .L2298
- add x0, x19, 776
+ bls .L2388
+ add x0, x19, 784
mov w1, w23
mov w20, 0
add x27, x24, :lo12:.LANCHOR4
ldrb w0, [x0,w21,sxtw]
bl V2P_block
uxth w26, w0
-.L2290:
- ldrh w0, [x19,962]
+.L2380:
+ ldrh w0, [x19,966]
cmp w0, w20
- bls .L2299
- add x0, x27, 4024
+ bls .L2389
+ add x0, x27, 4040
ldrh w0, [x0,w20,sxtw 1]
cmp w0, w26
- bne .L2291
+ bne .L2381
mov w1, w26
mov x0, x22
bl printk
mov w0, w26
bl FtlBbmMapBadBlock
bl FtlBbmTblFlush
- ldrh w2, [x19,962]
+ ldrh w2, [x19,966]
mov w3, w20
-.L2292:
+.L2382:
cmp w3, w2
- bcs .L2300
- add x4, x25, 4024
+ bcs .L2390
+ add x4, x25, 4040
add w0, w3, 1
ldrh w1, [x4,w0,sxtw 1]
strh w1, [x4,w3,sxtw 1]
uxth w3, w0
- b .L2292
-.L2300:
+ b .L2382
+.L2390:
sub w2, w2, #1
- strh w2, [x19,962]
-.L2291:
+ strh w2, [x19,966]
+.L2381:
add w20, w20, 1
uxth w20, w20
- b .L2290
-.L2299:
+ b .L2380
+.L2389:
add w21, w21, 1
uxth w21, w21
- b .L2297
-.L2298:
+ b .L2387
+.L2388:
bl FtlGcReFreshBadBlk
-.L2289:
+.L2379:
mov w0, 0
ldr x27, [sp,80]
ldp x19, x20, [sp,16]
@@ -15535,47 +15877,47 @@ update_vpc_list:
uxth w19, w0
add x2, x20, :lo12:.LANCHOR2
ubfiz x0, x19, 1, 16
- ldr x1, [x2,1184]
+ ldr x1, [x2,1192]
ldrh w1, [x1,x0]
- cbnz w1, .L2302
+ cbnz w1, .L2392
adrp x0, .LANCHOR4
add x0, x0, :lo12:.LANCHOR4
- ldrh w3, [x0,3408]
+ ldrh w3, [x0,3424]
cmp w3, w19
- bne .L2303
+ bne .L2393
mov w1, -1
- strh w1, [x0,3408]
- b .L2304
-.L2303:
- ldrh w3, [x2,3608]
+ strh w1, [x0,3424]
+ b .L2394
+.L2393:
+ ldrh w3, [x2,3616]
mov w0, w1
cmp w3, w19
- beq .L2305
- ldrh w3, [x2,3656]
+ beq .L2395
+ ldrh w3, [x2,3664]
cmp w3, w19
- beq .L2305
- ldrh w2, [x2,3704]
+ beq .L2395
+ ldrh w2, [x2,3712]
cmp w2, w19
- beq .L2305
-.L2304:
+ beq .L2395
+.L2394:
add x20, x20, :lo12:.LANCHOR2
mov w1, w19
- add x0, x20, 3568
+ add x0, x20, 3576
bl List_remove_node
- ldrh w0, [x20,3584]
+ ldrh w0, [x20,3592]
sub w0, w0, #1
- strh w0, [x20,3584]
+ strh w0, [x20,3592]
mov w0, w19
bl free_data_superblock
mov w0, w19
bl FtlGcFreeBadSuperBlk
mov w0, 1
- b .L2305
-.L2302:
+ b .L2395
+.L2392:
mov w0, w19
bl List_update_data_list
mov w0, 0
-.L2305:
+.L2395:
ldp x19, x20, [sp,16]
ldp x29, x30, [sp], 32
ret
@@ -15591,67 +15933,67 @@ decrement_vpc_count:
mov w0, 65535
stp x21, x22, [sp,32]
cmp w19, w0
- beq .L2310
+ beq .L2400
adrp x20, .LANCHOR2
ubfiz x21, x19, 1, 16
add x20, x20, :lo12:.LANCHOR2
- ldr x0, [x20,1184]
+ ldr x0, [x20,1192]
ldrh w2, [x0,x21]
- cbnz w2, .L2311
- adrp x0, .LC144
+ cbnz w2, .L2401
+ adrp x0, .LC145
mov w1, w19
- add x0, x0, :lo12:.LC144
- add x22, x20, 3592
+ add x0, x0, :lo12:.LC145
+ add x22, x20, 3600
bl printk
- ldr x0, [x20,1184]
+ ldr x0, [x20,1192]
mov w1, 32
strh w1, [x0,x21]
mov x0, x22
mov w1, w19
bl test_node_in_list
- cbz w0, .L2312
+ cbz w0, .L2402
mov w1, w19
mov x0, x22
bl List_remove_node
- ldrh w0, [x20,3600]
+ ldrh w0, [x20,3608]
sub w0, w0, #1
- strh w0, [x20,3600]
+ strh w0, [x20,3608]
mov w0, w19
bl INSERT_DATA_LIST
- ldr x2, [x20,1184]
- adrp x0, .LC145
- add x0, x0, :lo12:.LC145
+ ldr x2, [x20,1192]
+ adrp x0, .LC146
+ add x0, x0, :lo12:.LC146
mov w1, w19
ldrh w2, [x2,x21]
bl printk
-.L2312:
+.L2402:
mov w0, w19
bl FtlGcRefreshBlock
- b .L2319
-.L2311:
+ b .L2409
+.L2401:
sub w2, w2, #1
strh w2, [x0,x21]
-.L2310:
+.L2400:
adrp x20, .LANCHOR4
mov w0, 65535
add x20, x20, :lo12:.LANCHOR4
- ldrh w1, [x20,4000]
+ ldrh w1, [x20,4016]
cmp w1, w0
- bne .L2314
- strh w19, [x20,4000]
-.L2319:
+ bne .L2404
+ strh w19, [x20,4016]
+.L2409:
mov w0, 0
- b .L2313
-.L2314:
+ b .L2403
+.L2404:
cmp w1, w19
mov w0, 0
- beq .L2313
+ beq .L2403
mov w0, w1
bl update_vpc_list
cmp w0, wzr
cset w0, ne
- strh w19, [x20,4000]
-.L2313:
+ strh w19, [x20,4016]
+.L2403:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x29, x30, [sp], 48
@@ -15672,81 +16014,81 @@ FtlRecoverySuperblock:
mov x19, x0
ldrh w0, [x0]
cmp w0, w2
- beq .L2477
+ beq .L2572
ldrh w0, [x19,2]
adrp x20, .LANCHOR2
str w0, [x29,188]
add x0, x20, :lo12:.LANCHOR2
ldrb w28, [x19,6]
ldr w1, [x29,188]
- ldrh w0, [x0,818]
+ ldrh w0, [x0,824]
cmp w0, w1
- bne .L2323
+ bne .L2413
strh wzr, [x19,4]
- b .L2483
-.L2323:
+ b .L2578
+.L2413:
ldrh w0, [x19,16]
mov w1, 0
-.L2324:
+.L2414:
cmp w0, w2
- bne .L2486
+ bne .L2581
add w1, w1, 1
uxth w1, w1
add x0, x19, x1, sxtw 1
ldrh w0, [x0,16]
- b .L2324
-.L2486:
+ b .L2414
+.L2581:
ldrb w1, [x19,8]
cmp w1, 1
- bne .L2326
+ bne .L2416
bl FtlGetLastWrittenPage
cmn w0, #1
mov w21, w0
- beq .L2327
+ beq .L2417
adrp x0, .LANCHOR0
mov w23, w21
add x0, x0, :lo12:.LANCHOR0
- ldrb w1, [x0,136]
- cbnz w1, .L2400
- add x0, x0, 140
+ ldrb w1, [x0,4044]
+ cbnz w1, .L2491
+ add x0, x0, 136
ldrh w23, [x0,w21,sxtw 1]
- b .L2400
-.L2326:
+ b .L2491
+.L2416:
mov w1, 0
bl FtlGetLastWrittenPage
cmn w0, #1
mov w21, w0
- beq .L2327
+ beq .L2417
mov w23, w0
-.L2400:
+.L2491:
add x0, x20, :lo12:.LANCHOR2
mov x2, x19
mov w25, 0
mov w8, 65535
mov w9, 56
mov w10, 4
- ldrh w4, [x0,748]
- ldrh w7, [x0,830]
+ ldrh w4, [x0,756]
+ ldrh w7, [x0,836]
add x4, x19, x4, lsl 1
- b .L2329
-.L2327:
+ b .L2419
+.L2417:
strh wzr, [x19,2]
-.L2483:
+.L2578:
strb wzr, [x19,6]
- b .L2477
-.L2331:
+ b .L2572
+.L2421:
ldrh w1, [x2,16]
cmp w1, w8
- beq .L2330
+ beq .L2420
add x5, x20, :lo12:.LANCHOR2
orr w1, w23, w1, lsl 10
umull x0, w25, w9
add w3, w25, 1
- ldr x6, [x5,992]
+ ldr x6, [x5,1000]
add x6, x6, x0
str w1, [x6,4]
- ldr x1, [x5,992]
- ldr x5, [x5,1128]
+ ldr x1, [x5,1000]
+ ldr x5, [x5,1136]
add x0, x1, x0
mul w1, w25, w7
uxth w25, w3
@@ -15754,51 +16096,51 @@ FtlRecoverySuperblock:
sdiv w1, w1, w10
add x1, x5, x1, sxtw 2
str x1, [x0,16]
-.L2330:
+.L2420:
add x2, x2, 2
-.L2329:
+.L2419:
cmp x2, x4
- bne .L2331
+ bne .L2421
ldrb w0, [x19,8]
str wzr, [x29,184]
cmp w0, 1
- bne .L2332
- adrp x0, .LANCHOR0+136
- ldrb w0, [x0,#:lo12:.LANCHOR0+136]
+ bne .L2422
+ adrp x0, .LANCHOR0+4044
+ ldrb w0, [x0,#:lo12:.LANCHOR0+4044]
cmp w0, wzr
cset w0, ne
str w0, [x29,184]
-.L2332:
+.L2422:
add x22, x20, :lo12:.LANCHOR2
ldr w2, [x29,184]
mov w1, w25
mov x26, 0
mov w24, 65535
adrp x27, .LANCHOR4
- ldr x0, [x22,992]
+ ldr x0, [x22,1000]
bl FlashReadPages
- ldr w0, [x22,876]
- adrp x22, .LC146
+ ldr w0, [x22,880]
+ adrp x22, .LC147
str w0, [x29,176]
- add x22, x22, :lo12:.LC146
+ add x22, x22, :lo12:.LC147
uxth w0, w23
str w0, [x29,168]
-.L2333:
+.L2423:
uxth w2, w26
cmp w2, w25
- bcs .L2340
+ bcs .L2430
add x6, x20, :lo12:.LANCHOR2
mov x0, 56
mul x0, x26, x0
- ldr x4, [x6,992]
+ ldr x4, [x6,1000]
add x1, x4, x0
ldr w0, [x4,x0]
- cbnz w0, .L2334
+ cbnz w0, .L2424
ldr x7, [x1,16]
ldr w4, [x7,4]
cmn w4, #1
- beq .L2335
- ldr w1, [x6,876]
+ beq .L2425
+ ldr w1, [x6,880]
mov w0, w4
str x7, [x29,136]
str x2, [x29,144]
@@ -15809,300 +16151,302 @@ FtlRecoverySuperblock:
ldr x4, [x29,152]
ldr x2, [x29,144]
ldr x7, [x29,136]
- cbz w0, .L2335
+ cbz w0, .L2425
add w4, w4, 1
- str w4, [x6,876]
-.L2335:
+ str w4, [x6,880]
+.L2425:
ldr w0, [x7]
cmn w0, #1
- bne .L2336
-.L2340:
+ bne .L2426
+.L2430:
cmp w2, w25
- bne .L2478
+ bne .L2573
add x0, x20, :lo12:.LANCHOR2
add w21, w21, 1
uxth w21, w21
- ldr x0, [x0,992]
+ ldr x0, [x0,1000]
ldr w0, [x0,4]
- b .L2479
-.L2334:
+ b .L2574
+.L2424:
ldr w1, [x1,4]
mov x0, x22
bl printk
ldr w24, [x29,168]
add x0, x27, :lo12:.LANCHOR4
ldrh w1, [x19]
- strh w1, [x0,4058]
-.L2336:
+ strh w1, [x0,4074]
+.L2426:
add x26, x26, 1
- b .L2333
-.L2478:
+ b .L2423
+.L2573:
add x0, x20, :lo12:.LANCHOR2
mov w1, 56
uxth w21, w21
umull x2, w2, w1
- ldr x0, [x0,992]
+ ldr x0, [x0,1000]
add x2, x0, x2
ldr w0, [x2,4]
-.L2479:
+.L2574:
lsr x0, x0, 10
bl P2V_plane
uxth w26, w0
ldrb w1, [x19,8]
cmp w1, 1
- bne .L2342
+ bne .L2432
adrp x0, .LANCHOR0
add x0, x0, :lo12:.LANCHOR0
- ldrb w2, [x0,136]
- cbnz w2, .L2342
- add x0, x0, 140
+ ldrb w2, [x0,4044]
+ cbnz w2, .L2432
+ add x0, x0, 136
ldrh w21, [x0,w21,sxtw 1]
-.L2342:
+.L2432:
add x0, x20, :lo12:.LANCHOR2
- ldrh w0, [x0,818]
+ ldrh w0, [x0,824]
cmp w0, w21
- bne .L2343
+ bne .L2433
strh w21, [x19,2]
strb wzr, [x19,6]
strh wzr, [x19,4]
-.L2343:
+.L2433:
uxth w0, w28
str w0, [x29,152]
ldr w0, [x29,188]
cmp w21, w0
- bne .L2344
+ bne .L2434
ldr w0, [x29,152]
cmp w26, w0
- beq .L2484
-.L2344:
+ beq .L2579
+.L2434:
ldr w0, [x29,176]
adrp x25, .LANCHOR4
sub w22, w0, #1
mov w0, 65535
cmp w24, w0
- bne .L2345
- cbnz w1, .L2346
-.L2345:
+ bne .L2435
+ cbnz w1, .L2436
+.L2435:
add x0, x25, :lo12:.LANCHOR4
- uxth w6, w23
- ldr w1, [x0,4012]
+ uxth w5, w23
+ ldr w1, [x0,4028]
cmn w1, #1
- bne .L2347
- str w22, [x0,4012]
-.L2347:
+ bne .L2437
+ str w22, [x0,4028]
+.L2437:
add x0, x25, :lo12:.LANCHOR4
ldr w24, [x29,188]
- ldr w3, [x0,4012]
+ ldr w3, [x0,4028]
ldr w0, [x29,188]
add w0, w0, 7
cmp w0, w23, uxth
- bge .L2348
- sub w24, w6, #7
+ bge .L2438
+ sub w24, w5, #7
uxth w24, w24
-.L2348:
- adrp x7, .LANCHOR0
+.L2438:
mov w28, -1
- add x5, x7, :lo12:.LANCHOR0
+ adrp x6, .LANCHOR0
mov w27, w28
mov w4, 65535
- add x5, x5, 652
-.L2349:
- cmp w24, w6
- bhi .L2362
+ mov w7, 56
+ add x8, x6, :lo12:.LANCHOR0
+.L2439:
+ cmp w24, w5
+ bhi .L2452
add x0, x20, :lo12:.LANCHOR2
mov w23, 0
- mov w10, 56
- ldrh w2, [x0,748]
+ ldrh w2, [x0,756]
mov x0, x19
add x2, x19, x2, lsl 1
-.L2363:
+.L2453:
cmp x0, x2
- beq .L2487
+ beq .L2582
ldrh w1, [x0,16]
cmp w1, w4
- beq .L2350
- add x9, x20, :lo12:.LANCHOR2
+ beq .L2440
+ add x10, x20, :lo12:.LANCHOR2
orr w1, w24, w1, lsl 10
- umull x8, w23, w10
+ umull x9, w23, w7
add w23, w23, 1
- ldr x9, [x9,992]
+ ldr x10, [x10,1000]
uxth w23, w23
- add x8, x9, x8
- str w1, [x8,4]
-.L2350:
+ add x9, x10, x9
+ str w1, [x9,4]
+.L2440:
add x0, x0, 2
- b .L2363
-.L2487:
- add x8, x20, :lo12:.LANCHOR2
+ b .L2453
+.L2582:
+ add x9, x20, :lo12:.LANCHOR2
ldr w2, [x29,184]
mov w1, w23
- str x5, [x29,128]
+ str x8, [x29,120]
+ str x6, [x29,128]
+ ldr x0, [x9,1000]
str x7, [x29,136]
- ldr x0, [x8,992]
str x4, [x29,144]
str x3, [x29,160]
- str x6, [x29,168]
- str x8, [x29,176]
+ str x5, [x29,168]
+ str x9, [x29,176]
bl FlashReadPages
- ldr x7, [x29,136]
+ ldr x6, [x29,128]
mov w1, 0
- ldr x8, [x29,176]
- sxtw x10, w24
- add x0, x7, :lo12:.LANCHOR0
- ldr x6, [x29,168]
+ ldr x9, [x29,176]
+ sxtw x11, w24
+ add x0, x6, :lo12:.LANCHOR0
+ ldr x5, [x29,168]
ldr x3, [x29,160]
ldr x4, [x29,144]
- ldrb w9, [x0,136]
- ldr x0, [x8,992]
- ldr x5, [x29,128]
+ ldrb w10, [x0,4044]
+ ldr x0, [x9,1000]
+ ldr x7, [x29,136]
+ ldr x8, [x29,120]
add x0, x0, 16
-.L2352:
+.L2442:
cmp w1, w23
- beq .L2488
+ beq .L2583
ldr w2, [x0,-16]
- cbnz w2, .L2353
+ cbnz w2, .L2443
ldr x2, [x0]
- ldrh w8, [x2]
- cmp w8, w4
- beq .L2354
- ldr w8, [x2,4]
- cmn w8, #1
- beq .L2354
+ ldrh w9, [x2]
+ cmp w9, w4
+ beq .L2444
+ ldr w9, [x2,4]
+ cmn w9, #1
+ beq .L2444
add x2, x25, :lo12:.LANCHOR4
cmn w28, #1
- ldr w27, [x2,4012]
- str w8, [x2,4012]
- bne .L2354
- ldrh w2, [x5,x10,lsl 1]
+ ldr w27, [x2,4028]
+ str w9, [x2,4028]
+ bne .L2444
+ add x2, x8, 648
+ ldrh w2, [x2,x11,lsl 1]
cmp w2, w4
- bne .L2355
- cbz w9, .L2354
-.L2355:
+ bne .L2445
+ cbz w10, .L2444
+.L2445:
cmp w27, w22
csinv w28, w27, wzr, ne
- b .L2354
-.L2353:
+ b .L2444
+.L2443:
add x0, x25, :lo12:.LANCHOR4
ldrh w1, [x19]
- strh w1, [x0,4058]
+ strh w1, [x0,4074]
ldrb w1, [x19,8]
- cbnz w1, .L2346
+ cbnz w1, .L2436
adrp x1, .LANCHOR0
add x1, x1, :lo12:.LANCHOR0
- add x1, x1, 652
+ add x1, x1, 648
ldrh w2, [x1,w24,sxtw 1]
mov w1, 65535
cmp w2, w1
- bne .L2357
+ bne .L2447
cmn w28, #1
- beq .L2358
- str w28, [x0,4012]
- b .L2346
-.L2358:
+ beq .L2448
+ str w28, [x0,4028]
+ b .L2436
+.L2448:
cmp w3, w22
- beq .L2359
- str w3, [x0,4012]
- b .L2346
-.L2359:
- ldr w1, [x0,4012]
- b .L2485
-.L2357:
+ beq .L2449
+ str w3, [x0,4028]
+ b .L2436
+.L2449:
+ ldr w1, [x0,4028]
+ b .L2580
+.L2447:
cmp w27, w22
- beq .L2360
+ beq .L2450
cmn w27, #1
- beq .L2346
- str w27, [x0,4012]
- b .L2346
-.L2360:
- ldr w1, [x0,4012]
+ beq .L2436
+ str w27, [x0,4028]
+ b .L2436
+.L2450:
+ ldr w1, [x0,4028]
cmp w1, w22
- beq .L2346
-.L2485:
+ beq .L2436
+.L2580:
sub w1, w1, #1
- b .L2480
-.L2354:
+ b .L2575
+.L2444:
add w1, w1, 1
add x0, x0, 56
uxth w1, w1
- b .L2352
-.L2488:
+ b .L2442
+.L2583:
add w24, w24, 1
uxth w24, w24
- b .L2349
-.L2362:
+ b .L2439
+.L2452:
add x0, x25, :lo12:.LANCHOR4
mov w1, -1
-.L2480:
- str w1, [x0,4012]
-.L2346:
+.L2575:
+ str w1, [x0,4028]
+.L2436:
add x0, x25, :lo12:.LANCHOR4
mov w1, 1
ldr w23, [x29,188]
- strh w1, [x0,4060]
+ strh w1, [x0,4076]
+ adrp x0, .LC149
+ add x0, x0, :lo12:.LC149
+ str x0, [x29,128]
adrp x0, .LC148
add x0, x0, :lo12:.LC148
- str x0, [x29,128]
- adrp x0, .LC147
- add x0, x0, :lo12:.LC147
str x0, [x29,120]
-.L2364:
+.L2454:
add x0, x20, :lo12:.LANCHOR2
adrp x1, .LANCHOR0
add x1, x1, :lo12:.LANCHOR0
str wzr, [x29,176]
mov w7, 65535
mov w8, 56
- ldrh w3, [x0,748]
- ldrb w6, [x1,136]
+ ldrh w3, [x0,756]
+ ldrb w6, [x1,4044]
mov x1, x19
add x3, x19, x3, lsl 1
-.L2365:
+.L2455:
cmp x1, x3
- beq .L2489
+ beq .L2584
ldrh w2, [x1,16]
cmp w2, w7
- beq .L2366
+ beq .L2456
ldr w0, [x29,176]
add x5, x20, :lo12:.LANCHOR2
orr w2, w23, w2, lsl 10
- ldr x4, [x5,992]
+ ldr x4, [x5,1000]
umull x0, w0, w8
add x4, x4, x0
str w2, [x4,4]
ldrb w2, [x19,8]
cmp w2, 1
- bne .L2367
- cbz w6, .L2367
- ldr x2, [x5,992]
+ bne .L2457
+ cbz w6, .L2457
+ ldr x2, [x5,1000]
add x0, x2, x0
ldr w2, [x0,4]
orr w2, w2, -2147483648
str w2, [x0,4]
-.L2367:
+.L2457:
ldr w0, [x29,176]
add w0, w0, 1
uxth w0, w0
str w0, [x29,176]
-.L2366:
+.L2456:
add x1, x1, 2
- b .L2365
-.L2489:
+ b .L2455
+.L2584:
add x0, x20, :lo12:.LANCHOR2
ldr w1, [x29,176]
ldr w2, [x29,184]
- ldr x0, [x0,992]
+ ldr x0, [x0,1000]
bl FlashReadPages
str xzr, [x29,160]
-.L2369:
+.L2459:
ldrh w0, [x29,160]
ldr w1, [x29,176]
cmp w1, w0, uxth
- bls .L2490
+ bls .L2585
ldr x0, [x29,160]
mov x24, 56
mul x24, x0, x24
add x0, x20, :lo12:.LANCHOR2
- ldr x28, [x0,992]
+ ldr x28, [x0,1000]
add x27, x28, x24
ldr w1, [x27,4]
str w1, [x29,204]
@@ -16113,41 +16457,41 @@ FtlRecoverySuperblock:
ldr w1, [x29,188]
cmp w23, w1
ldr x1, [x29,168]
- bcc .L2370
+ bcc .L2460
ldr w2, [x29,152]
cmp w0, w2
- bcs .L2404
+ bcs .L2495
ldr w2, [x29,188]
cmp w23, w2
- beq .L2370
-.L2404:
+ beq .L2460
+.L2495:
cmp w0, w26
- bne .L2405
+ bne .L2496
cmp w23, w21
- beq .L2372
-.L2405:
+ beq .L2462
+.L2496:
ldr w0, [x28,x24]
cmn w0, #1
- beq .L2374
+ beq .L2464
ldr x28, [x27,16]
mov w0, 61589
ldrh w1, [x28]
cmp w1, w0
- beq .L2375
+ beq .L2465
ldrh w0, [x19]
- b .L2481
-.L2375:
+ b .L2576
+.L2465:
ldr w22, [x28,4]
cmn w22, #1
- beq .L2376
+ beq .L2466
add x27, x20, :lo12:.LANCHOR2
mov w0, w22
- ldr w1, [x27,876]
+ ldr w1, [x27,880]
bl ftl_cmp_data_ver
- cbz w0, .L2376
+ cbz w0, .L2466
add w0, w22, 1
- str w0, [x27,876]
-.L2376:
+ str w0, [x27,880]
+.L2466:
ldr w27, [x28,8]
add x1, x29, 200
ldr w0, [x28,12]
@@ -16155,257 +16499,266 @@ FtlRecoverySuperblock:
str w0, [x29,196]
mov w0, w27
bl log2phys
+ ldr w28, [x29,196]
add x0, x25, :lo12:.LANCHOR4
str x0, [x29,136]
- ldr w1, [x0,4012]
+ ldr w1, [x0,4028]
cmn w1, #1
- beq .L2377
+ beq .L2467
mov w0, w22
bl ftl_cmp_data_ver
- cbz w0, .L2377
- ldr w1, [x29,196]
- cmn w1, #1
- beq .L2378
+ cbz w0, .L2467
+ cmn w28, #1
+ beq .L2468
add x3, x20, :lo12:.LANCHOR2
+ mov w2, 0
str x3, [x29,112]
- ldr x0, [x3,992]
+ ldr x0, [x3,1000]
add x0, x0, x24
- str w1, [x0,4]
+ str w28, [x0,4]
+ ldr x1, [x0,16]
+ ldr x0, [x3,1000]
+ str x1, [x29,168]
mov w1, 1
- ldr x2, [x0,16]
- ldr x0, [x3,992]
- str x2, [x29,168]
- mov w2, 0
add x0, x0, x24
bl FlashReadPages
ldr x3, [x29,112]
ldr x0, [x29,168]
- ldr x2, [x3,992]
+ ldr x2, [x3,1000]
ldr w0, [x0,4]
str w0, [x29,144]
add x4, x2, x24
ldr w0, [x2,x24]
cmn w0, #1
- bne .L2379
- b .L2380
-.L2378:
+ bne .L2469
+ b .L2470
+.L2468:
ldr w0, [x29,204]
ldr w1, [x29,200]
cmp w1, w0
- bne .L2370
+ bne .L2460
mov w0, w27
add x1, x29, 196
mov w2, 1
bl log2phys
- b .L2370
-.L2379:
+ b .L2460
+.L2469:
ldr x0, [x29,168]
ldr w28, [x0,8]
cmp w28, w27
- bne .L2380
+ bne .L2470
ldr x0, [x29,136]
ldr w1, [x29,144]
str x2, [x29,96]
- ldr w0, [x0,4012]
+ ldr w0, [x0,4028]
str x3, [x29,104]
str x4, [x29,112]
bl ftl_cmp_data_ver
ldr x4, [x29,112]
ldr x3, [x29,104]
ldr x2, [x29,96]
- cbz w0, .L2380
+ cbz w0, .L2470
ldr w0, [x29,200]
ldr w1, [x29,204]
cmp w0, w1
- beq .L2385
+ beq .L2475
ldr w1, [x29,196]
cmp w0, w1
- beq .L2380
+ beq .L2470
cmn w0, #1
- beq .L2383
+ beq .L2473
str w0, [x4,4]
mov w2, 0
ldr x1, [x4,16]
- ldr x0, [x3,992]
+ ldr x0, [x3,1000]
str x1, [x29,168]
mov w1, 1
add x0, x0, x24
bl FlashReadPages
- b .L2384
-.L2383:
+ b .L2474
+.L2473:
str w0, [x2,x24]
-.L2384:
- adrp x0, .LANCHOR2+992
- ldr x0, [x0,#:lo12:.LANCHOR2+992]
+.L2474:
+ adrp x0, .LANCHOR2
+ add x0, x0, :lo12:.LANCHOR2
+ ldr x0, [x0,1000]
ldr w0, [x0,x24]
cmn w0, #1
- beq .L2385
+ beq .L2475
ldr x0, [x29,168]
ldr w24, [x0,4]
add x0, x25, :lo12:.LANCHOR4
mov w1, w24
- ldr w0, [x0,4012]
+ ldr w0, [x0,4028]
bl ftl_cmp_data_ver
- cbz w0, .L2385
+ cbz w0, .L2475
ldr w0, [x29,144]
mov w1, w24
bl ftl_cmp_data_ver
- cbz w0, .L2380
-.L2385:
+ cbz w0, .L2470
+.L2475:
ldr w1, [x29,196]
mov w0, w28
bl FtlReUsePrevPpa
-.L2380:
+.L2470:
mov w0, -1
str w0, [x29,196]
- b .L2387
-.L2377:
+ b .L2477
+.L2467:
ldr w0, [x29,204]
ldr w1, [x29,200]
cmp w1, w0
- beq .L2387
+ beq .L2477
+ add x0, x20, :lo12:.LANCHOR2
+ ldr w0, [x0,772]
+ cmp w0, w28, lsr 10
+ bhi .L2497
+ cmn w28, #1
+ bne .L2460
+.L2497:
mov w0, w27
add x1, x29, 204
mov w2, 1
bl log2phys
- ldr w24, [x29,200]
- cmn w24, #1
- beq .L2387
+ ldr w28, [x29,200]
+ cmn w28, #1
+ beq .L2477
ldr w0, [x29,196]
- cmp w24, w0
- beq .L2387
- lsr x0, x24, 10
+ cmp w28, w0
+ beq .L2477
+ lsr x0, x28, 10
bl P2V_block_in_plane
uxth w0, w0
add x1, x20, :lo12:.LANCHOR2
- ldrh w2, [x1,3608]
+ ldrh w2, [x1,3616]
cmp w2, w0
- beq .L2390
- ldrh w2, [x1,3656]
+ beq .L2481
+ ldrh w2, [x1,3664]
cmp w2, w0
- beq .L2390
- ldrh w1, [x1,3704]
+ beq .L2481
+ ldrh w1, [x1,3712]
cmp w1, w0
- bne .L2387
-.L2390:
- add x28, x20, :lo12:.LANCHOR2
+ bne .L2477
+.L2481:
+ adrp x0, .LANCHOR2
mov w1, 1
+ add x24, x0, :lo12:.LANCHOR2
mov w2, 0
- ldr x0, [x28,992]
- str w24, [x0,4]
+ ldr x0, [x24,1000]
+ str w28, [x0,4]
ldr x3, [x0,16]
- ldr x0, [x28,992]
+ ldr x0, [x24,1000]
str x3, [x29,168]
bl FlashReadPages
- ldr x0, [x28,992]
+ ldr x0, [x24,1000]
ldr x3, [x29,168]
ldr w0, [x0]
ldr w1, [x3,4]
cmn w0, #1
- beq .L2387
+ beq .L2477
mov w0, w22
bl ftl_cmp_data_ver
- cbnz w0, .L2387
+ cbnz w0, .L2477
mov w0, w27
add x1, x29, 200
mov w2, 1
bl log2phys
-.L2387:
+.L2477:
ldr w0, [x29,196]
cmn w0, #1
- beq .L2370
+ beq .L2460
lsr x0, x0, 10
bl P2V_block_in_plane
uxth w1, w0
add x2, x20, :lo12:.LANCHOR2
ubfiz x3, x1, 1, 16
- ldr x2, [x2,1184]
+ ldr x2, [x2,1192]
ldrh w2, [x2,x3]
- cbz w2, .L2391
-.L2481:
+ cbz w2, .L2482
+.L2576:
bl decrement_vpc_count
- b .L2370
-.L2391:
+ b .L2460
+.L2482:
ldr x0, [x29,120]
bl printk
- b .L2370
-.L2374:
+ b .L2460
+.L2464:
add x24, x25, :lo12:.LANCHOR4
ldrh w0, [x19]
mov w2, w22
- strh w0, [x24,4058]
+ strh w0, [x24,4074]
ldr x0, [x29,128]
bl printk
- ldr w0, [x24,4064]
+ ldr w0, [x24,4080]
cmp w0, 31
- bhi .L2392
- add x1, x24, 4072
+ bhi .L2483
+ add x1, x24, 4088
ldr w2, [x29,204]
str w2, [x1,w0,uxtw 2]
add w0, w0, 1
- str w0, [x24,4064]
-.L2392:
+ str w0, [x24,4080]
+.L2483:
ldrh w0, [x19]
bl decrement_vpc_count
add x0, x25, :lo12:.LANCHOR4
- ldr w1, [x0,4012]
+ ldr w1, [x0,4028]
cmn w1, #1
- beq .L2482
+ beq .L2577
cmp w1, w22
- bls .L2370
-.L2482:
- str w22, [x0,4012]
-.L2370:
+ bls .L2460
+.L2577:
+ str w22, [x0,4028]
+.L2460:
ldr x0, [x29,160]
add x0, x0, 1
str x0, [x29,160]
- b .L2369
-.L2490:
+ b .L2459
+.L2585:
ldrb w0, [x19,8]
add w23, w23, 1
cmp w0, 1
uxth w23, w23
- bne .L2395
+ bne .L2486
adrp x0, .LANCHOR0
add x0, x0, :lo12:.LANCHOR0
- ldrb w0, [x0,136]
- cbz w0, .L2395
+ ldrb w0, [x0,4044]
+ cbz w0, .L2486
cmp w21, w23
- bne .L2395
+ bne .L2486
add x0, x20, :lo12:.LANCHOR2
- ldrh w0, [x0,820]
+ ldrh w0, [x0,826]
cmp w0, w23
- beq .L2372
-.L2395:
+ beq .L2462
+.L2486:
add x0, x20, :lo12:.LANCHOR2
- ldrh w1, [x0,818]
+ ldrh w1, [x0,824]
cmp w23, w1
- bne .L2364
- ldrh w2, [x0,748]
+ bne .L2454
+ ldrh w2, [x0,756]
mov w3, 65535
strh w23, [x19,2]
mov x0, 0
strh wzr, [x19,4]
-.L2397:
+.L2488:
uxth w1, w0
cmp w1, w2
- bcs .L2477
+ bcs .L2572
add x0, x0, 1
add x4, x19, x0, lsl 1
ldrh w4, [x4,14]
cmp w4, w3
- beq .L2397
+ beq .L2488
strb w1, [x19,6]
- b .L2477
-.L2372:
+ b .L2572
+.L2462:
strb w26, [x19,6]
strh w21, [x19,2]
-.L2484:
+.L2579:
mov x0, x19
mov w1, w21
mov w2, w26
bl ftl_sb_update_avl_pages
-.L2477:
+.L2572:
mov w0, 0
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -16419,231 +16772,227 @@ FtlRecoverySuperblock:
.global FtlSlcSuperblockCheck
.type FtlSlcSuperblockCheck, %function
FtlSlcSuperblockCheck:
- stp x29, x30, [sp, -64]!
+ stp x29, x30, [sp, -48]!
add x29, sp, 0
stp x19, x20, [sp,16]
stp x21, x22, [sp,32]
- str x23, [sp,48]
ldrh w1, [x0,4]
- cbz w1, .L2491
+ cbz w1, .L2586
ldrh w1, [x0]
mov w20, 65535
cmp w1, w20
- beq .L2491
+ beq .L2586
mov x19, x0
ldrb w0, [x0,6]
adrp x21, .LANCHOR0
- adrp x23, .LANCHOR2
+ adrp x22, .LANCHOR2
add x0, x0, 8
add x21, x21, :lo12:.LANCHOR0
- add x22, x21, 652
ldrh w0, [x19,x0,lsl 1]
-.L2495:
+.L2590:
cmp w0, w20
- bne .L2502
-.L2497:
+ bne .L2597
+.L2592:
ldrb w0, [x19,6]
- add x1, x23, :lo12:.LANCHOR2
+ add x1, x22, :lo12:.LANCHOR2
add w0, w0, 1
- ldrh w1, [x1,748]
+ ldrh w1, [x1,756]
uxtb w0, w0
strb w0, [x19,6]
cmp w1, w0
- bne .L2496
+ bne .L2591
ldrh w0, [x19,2]
strb wzr, [x19,6]
add w0, w0, 1
strh w0, [x19,2]
-.L2496:
+.L2591:
ldrb w0, [x19,6]
add x0, x0, 8
ldrh w0, [x19,x0,lsl 1]
- b .L2495
-.L2502:
+ b .L2590
+.L2597:
ldrb w1, [x19,8]
cmp w1, 1
- bne .L2498
- ldrb w0, [x21,136]
- cbnz w0, .L2498
- ldrh w0, [x19,2]
- ldrh w0, [x22,w0,sxtw 1]
+ bne .L2593
+ ldrb w0, [x21,4044]
+ cbnz w0, .L2593
+ add x0, x21, 648
+ ldrh w2, [x19,2]
+ ldrh w0, [x0,w2,sxtw 1]
cmp w0, w20
- bne .L2498
+ bne .L2593
ldrh w0, [x19,4]
sub w0, w0, #1
strh w0, [x19,4]
ldrh w0, [x19]
bl decrement_vpc_count
ldrh w1, [x19,4]
- cbnz w1, .L2497
+ cbnz w1, .L2592
ldrh w0, [x19,2]
strb w1, [x19,6]
add w0, w0, 1
strh w0, [x19,2]
- b .L2491
-.L2498:
+ b .L2586
+.L2593:
adrp x0, .LANCHOR0
add x0, x0, :lo12:.LANCHOR0
- ldrb w0, [x0,136]
- cbz w0, .L2491
+ ldrb w0, [x0,4044]
+ cbz w0, .L2586
cmp w1, 1
- bne .L2491
+ bne .L2586
adrp x0, .LANCHOR2
ldrh w2, [x19,2]
add x0, x0, :lo12:.LANCHOR2
- ldrh w1, [x0,820]
+ ldrh w1, [x0,826]
cmp w2, w1
- bcc .L2491
+ bcc .L2586
ldrh w1, [x19]
- ldr x3, [x0,1184]
+ ldr x3, [x0,1192]
lsl x1, x1, 1
ldrh w4, [x19,4]
ldrh w2, [x3,x1]
sub w2, w2, w4
strh w2, [x3,x1]
strh wzr, [x19,4]
- ldrh w0, [x0,818]
+ ldrh w0, [x0,824]
strh w0, [x19,2]
strb wzr, [x19,6]
-.L2491:
+.L2586:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
- ldr x23, [sp,48]
- ldp x29, x30, [sp], 64
+ ldp x29, x30, [sp], 48
ret
.size FtlSlcSuperblockCheck, .-FtlSlcSuperblockCheck
.align 2
.global get_new_active_ppa
.type get_new_active_ppa, %function
get_new_active_ppa:
- stp x29, x30, [sp, -80]!
+ stp x29, x30, [sp, -64]!
add x29, sp, 0
stp x19, x20, [sp,16]
- stp x23, x24, [sp,48]
stp x21, x22, [sp,32]
- str x25, [sp,64]
+ stp x23, x24, [sp,48]
mov x19, x0
strb wzr, [x0,10]
- adrp x20, .LANCHOR0
ldrb w0, [x0,6]
- add x20, x20, :lo12:.LANCHOR0
+ adrp x20, .LANCHOR0
mov w22, 65535
adrp x23, .LANCHOR2
add x0, x0, 8
- add x24, x20, 652
+ add x20, x20, :lo12:.LANCHOR0
ldrh w0, [x19,x0,lsl 1]
-.L2504:
+.L2599:
cmp w0, w22
adrp x21, .LANCHOR2
- bne .L2519
-.L2505:
+ bne .L2614
+.L2600:
ldrb w0, [x19,6]
add x1, x23, :lo12:.LANCHOR2
add w0, w0, 1
- ldrh w1, [x1,748]
+ ldrh w1, [x1,756]
uxtb w0, w0
strb w0, [x19,6]
cmp w1, w0
- bne .L2506
+ bne .L2601
ldrh w0, [x19,2]
strb wzr, [x19,6]
add w0, w0, 1
strh w0, [x19,2]
-.L2506:
+.L2601:
ldrb w0, [x19,6]
add x0, x0, 8
ldrh w0, [x19,x0,lsl 1]
- b .L2504
-.L2519:
+ b .L2599
+.L2614:
ldrb w1, [x19,8]
cmp w1, 1
- bne .L2507
- ldrb w1, [x20,136]
- cbnz w1, .L2507
- ldrh w1, [x19,2]
- ldrh w1, [x24,w1,sxtw 1]
+ bne .L2602
+ ldrb w1, [x20,4044]
+ cbnz w1, .L2602
+ add x1, x20, 648
+ ldrh w2, [x19,2]
+ ldrh w1, [x1,w2,sxtw 1]
cmp w1, w22
- bne .L2507
+ bne .L2602
ldrh w0, [x19,4]
sub w0, w0, #1
strh w0, [x19,4]
ldrh w0, [x19]
bl decrement_vpc_count
- b .L2505
-.L2507:
+ b .L2600
+.L2602:
ldrh w1, [x19,4]
- adrp x20, .LANCHOR0
- ldrh w22, [x19,2]
mov w23, 65535
- add x20, x20, :lo12:.LANCHOR0
+ ldrh w22, [x19,2]
+ adrp x20, .LANCHOR0
sub w1, w1, #1
+ mov w24, w23
orr w22, w22, w0, lsl 10
strh w1, [x19,4]
- mov w24, w23
- add x25, x20, 652
-.L2508:
+ add x20, x20, :lo12:.LANCHOR0
+.L2603:
add x0, x21, :lo12:.LANCHOR2
ldrb w1, [x19,6]
- ldrh w2, [x0,748]
-.L2510:
+ ldrh w2, [x0,756]
+.L2605:
add w1, w1, 1
uxtb w1, w1
cmp w1, w2
- bne .L2509
+ bne .L2604
ldrh w1, [x19,2]
add w1, w1, 1
strh w1, [x19,2]
mov w1, 0
-.L2509:
+.L2604:
add x0, x19, x1, sxtw 1
ldrh w0, [x0,16]
cmp w0, w23
- beq .L2510
+ beq .L2605
ldrb w0, [x19,8]
strb w1, [x19,6]
cmp w0, 1
- bne .L2515
- ldrb w0, [x20,136]
- cbnz w0, .L2512
+ bne .L2610
+ ldrb w0, [x20,4044]
+ cbnz w0, .L2607
+ add x1, x20, 648
ldrh w0, [x19,2]
- ldrh w0, [x25,w0,sxtw 1]
+ ldrh w0, [x1,w0,sxtw 1]
cmp w0, w24
- bne .L2512
+ bne .L2607
ldrh w1, [x19,4]
- cbz w1, .L2512
+ cbz w1, .L2607
ldrh w0, [x19]
sub w1, w1, #1
strh w1, [x19,4]
bl decrement_vpc_count
- b .L2508
-.L2512:
+ b .L2603
+.L2607:
adrp x1, .LANCHOR0
add x1, x1, :lo12:.LANCHOR0
- ldrb w0, [x1,136]
- cbz w0, .L2515
+ ldrb w0, [x1,4044]
+ cbz w0, .L2610
add x2, x21, :lo12:.LANCHOR2
ldrh w1, [x19,2]
- ldrh w0, [x2,820]
+ ldrh w0, [x2,826]
cmp w1, w0
- bcc .L2515
+ bcc .L2610
ldrh w1, [x19]
- ldr x0, [x2,1184]
+ ldr x0, [x2,1192]
lsl x1, x1, 1
ldrh w4, [x19,4]
ldrh w3, [x0,x1]
sub w3, w3, w4
strh w3, [x0,x1]
strh wzr, [x19,4]
- ldrh w0, [x2,818]
+ ldrh w0, [x2,824]
strh w0, [x19,2]
strb wzr, [x19,6]
-.L2515:
+.L2610:
mov w0, w22
- ldr x25, [sp,64]
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
- ldp x29, x30, [sp], 80
+ ldp x29, x30, [sp], 64
ret
.size get_new_active_ppa, .-get_new_active_ppa
.align 2
@@ -16658,58 +17007,58 @@ FtlWriteDumpData:
add x20, x19, :lo12:.LANCHOR2
stp x21, x22, [sp,32]
stp x23, x24, [sp,48]
- ldr w0, [x20,1400]
- cbnz w0, .L2520
- ldrh w2, [x20,3612]
- cbz w2, .L2522
- ldrb w1, [x20,3616]
- cbnz w1, .L2522
- ldrb w1, [x20,3615]
- ldrh w3, [x20,818]
+ ldr w0, [x20,1408]
+ cbnz w0, .L2615
+ ldrh w2, [x20,3620]
+ cbz w2, .L2617
+ ldrb w1, [x20,3624]
+ cbnz w1, .L2617
+ ldrb w1, [x20,3623]
+ ldrh w3, [x20,824]
mul w1, w1, w3
cmp w2, w1
- beq .L2522
- ldrb w23, [x20,3618]
- ldr w22, [x20,1396]
- ldrh w24, [x20,748]
- cbnz w23, .L2520
+ beq .L2617
+ ldrb w23, [x20,3626]
+ ldr w22, [x20,1404]
+ ldrh w24, [x20,756]
+ cbnz w23, .L2615
sub w22, w22, #1
add x1, x29, 84
mov w0, w22
mov w2, w23
bl log2phys
- ldr x21, [x20,1112]
+ ldr x21, [x20,1120]
ldr w0, [x29,84]
- ldr x1, [x20,1048]
+ ldr x1, [x20,1056]
str w0, [x29,92]
cmn w0, #1
str w22, [x29,112]
str x1, [x29,96]
str x21, [x29,104]
str w23, [x21,4]
- beq .L2524
+ beq .L2619
add x0, x29, 88
mov w1, 1
mov w2, w23
bl FlashReadPages
- b .L2525
-.L2524:
- ldr x0, [x20,1048]
+ b .L2620
+.L2619:
+ ldr x0, [x20,1056]
mov w1, 255
- ldrh w2, [x20,828]
+ ldrh w2, [x20,834]
bl ftl_memset
-.L2525:
+.L2620:
add x25, x19, :lo12:.LANCHOR2
mov w0, -3947
lsl w24, w24, 2
strh w0, [x21]
mov w23, 0
- add x20, x25, 3608
-.L2526:
+ add x20, x25, 3616
+.L2621:
cmp w23, w24
- beq .L2527
+ beq .L2622
ldrh w0, [x20,4]
- cbz w0, .L2527
+ cbz w0, .L2622
ldr w0, [x29,92]
add w23, w23, 1
str w0, [x21,12]
@@ -16719,7 +17068,7 @@ FtlWriteDumpData:
str w22, [x21,8]
bl get_new_active_ppa
str w0, [x29,92]
- ldr w1, [x25,876]
+ ldr w1, [x25,880]
mov w2, 0
str w1, [x21,4]
mov w3, w2
@@ -16727,21 +17076,21 @@ FtlWriteDumpData:
add x0, x29, 88
cmn w1, #1
csel w1, w1, wzr, ne
- str w1, [x25,876]
+ str w1, [x25,880]
mov w1, 1
bl FlashProgPages
ldrh w0, [x20]
bl decrement_vpc_count
- b .L2526
-.L2527:
+ b .L2621
+.L2622:
add x19, x19, :lo12:.LANCHOR2
mov w0, 1
- strb w0, [x19,3618]
- b .L2520
-.L2522:
+ strb w0, [x19,3626]
+ b .L2615
+.L2617:
add x19, x19, :lo12:.LANCHOR2
- strb wzr, [x19,3618]
-.L2520:
+ strb wzr, [x19,3626]
+.L2615:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -16759,23 +17108,23 @@ l2p_flush:
mov w19, 0
adrp x20, .LANCHOR2
bl FtlWriteDumpData
-.L2538:
+.L2633:
add x1, x20, :lo12:.LANCHOR2
- ldrh w0, [x1,858]
+ ldrh w0, [x1,862]
cmp w0, w19
- bls .L2541
- ldr x1, [x1,1264]
+ bls .L2636
+ ldr x1, [x1,1272]
ubfiz x0, x19, 4, 16
add x0, x1, x0
ldr w0, [x0,4]
- tbz w0, #31, .L2539
+ tbz w0, #31, .L2634
mov w0, w19
bl flush_l2p_region
-.L2539:
+.L2634:
add w19, w19, 1
uxth w19, w19
- b .L2538
-.L2541:
+ b .L2633
+.L2636:
mov w0, 0
ldp x19, x20, [sp,16]
ldp x29, x30, [sp], 32
@@ -16792,28 +17141,28 @@ FtlSuperblockPowerLostFix:
str x23, [sp,48]
add x1, x20, :lo12:.LANCHOR2
stp x21, x22, [sp,32]
- ldr w1, [x1,1400]
- cbnz w1, .L2542
- adrp x2, .LANCHOR0+136
- ldrb w21, [x2,#:lo12:.LANCHOR0+136]
- cbz w21, .L2557
+ ldr w1, [x1,1408]
+ cbnz w1, .L2637
+ adrp x2, .LANCHOR0+4044
+ ldrb w21, [x2,#:lo12:.LANCHOR0+4044]
+ cbz w21, .L2652
ldrb w21, [x0,8]
cmp w21, 1
- bne .L2553
+ bne .L2648
ldrh w23, [x0,4]
- b .L2544
-.L2553:
+ b .L2639
+.L2648:
mov w21, w1
-.L2557:
+.L2652:
mov w23, 12
-.L2544:
+.L2639:
mov x19, x0
mov w0, -1
str w0, [x29,96]
add x0, x20, :lo12:.LANCHOR2
mov w2, 61589
- ldr x22, [x0,1112]
- ldr x1, [x0,1048]
+ ldr x22, [x0,1120]
+ ldr x1, [x0,1056]
str x1, [x29,80]
mov w1, -3
str x22, [x29,88]
@@ -16823,54 +17172,54 @@ FtlSuperblockPowerLostFix:
ldrh w1, [x19]
strh w1, [x22,2]
strh wzr, [x22]
- ldr x1, [x0,1048]
+ ldr x1, [x0,1056]
str w2, [x1]
- ldr x1, [x0,1048]
+ ldr x1, [x0,1056]
mov w0, 22136
movk w0, 0x1234, lsl 16
str w0, [x1,4]
-.L2545:
+.L2640:
sub w23, w23, #1
cmn w23, #1
- beq .L2548
+ beq .L2643
ldrh w0, [x19,4]
- cbnz w0, .L2546
-.L2548:
+ cbnz w0, .L2641
+.L2643:
add x20, x20, :lo12:.LANCHOR2
ldrh w0, [x19]
ldrh w3, [x19,4]
lsl x0, x0, 1
- ldr x2, [x20,1184]
+ ldr x2, [x20,1192]
ldrh w1, [x2,x0]
sub w1, w1, w3
strh w1, [x2,x0]
strb wzr, [x19,6]
- ldrh w0, [x20,818]
+ ldrh w0, [x20,824]
strh w0, [x19,2]
strh wzr, [x19,4]
- b .L2542
-.L2546:
+ b .L2637
+.L2641:
mov x0, x19
bl get_new_active_ppa
str w0, [x29,76]
cmn w0, #1
- beq .L2548
+ beq .L2643
add x1, x20, :lo12:.LANCHOR2
mov w2, w21
mov w3, 0
- ldr w0, [x1,876]
+ ldr w0, [x1,880]
str w0, [x22,4]
add w0, w0, 1
cmn w0, #1
csel w0, w0, wzr, ne
- str w0, [x1,876]
+ str w0, [x1,880]
add x0, x29, 72
mov w1, 1
bl FlashProgPages
ldrh w0, [x19]
bl decrement_vpc_count
- b .L2545
-.L2542:
+ b .L2640
+.L2637:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldr x23, [sp,48]
@@ -16897,80 +17246,80 @@ FtlVpcCheckAndModify:
add x0, x19, :lo12:.LANCHOR2
mov w1, 0
mov x21, x19
- ldrh w2, [x0,758]
- ldr x0, [x0,1176]
+ ldrh w2, [x0,766]
+ ldr x0, [x0,1184]
lsl w2, w2, 1
bl ftl_memset
-.L2559:
+.L2654:
add x19, x21, :lo12:.LANCHOR2
- ldr w0, [x19,1396]
+ ldr w0, [x19,1404]
cmp w20, w0
- bcs .L2575
+ bcs .L2670
mov w0, w20
add x1, x29, 76
mov w2, 0
bl log2phys
ldr w0, [x29,76]
cmn w0, #1
- beq .L2560
+ beq .L2655
lsr x0, x0, 10
bl P2V_block_in_plane
ubfiz x0, x0, 1, 16
- ldr x2, [x19,1176]
+ ldr x2, [x19,1184]
ldrh w1, [x2,x0]
add w1, w1, 1
strh w1, [x2,x0]
-.L2560:
+.L2655:
add w20, w20, 1
- b .L2559
-.L2575:
- adrp x22, .LC149
+ b .L2654
+.L2670:
+ adrp x22, .LC150
mov w20, 0
mov w23, 65535
- add x22, x22, :lo12:.LC149
-.L2562:
- ldrh w0, [x19,756]
+ add x22, x22, :lo12:.LC150
+.L2657:
+ ldrh w0, [x19,764]
cmp w0, w20
- bls .L2576
+ bls .L2671
ubfiz x21, x20, 1, 16
- ldr x0, [x19,1184]
+ ldr x0, [x19,1192]
ldrh w2, [x0,x21]
- ldr x0, [x19,1176]
+ ldr x0, [x19,1184]
ldrh w3, [x0,x21]
cmp w2, w3
- beq .L2565
+ beq .L2660
cmp w2, w23
- beq .L2565
+ beq .L2660
mov x0, x22
mov w1, w20
bl printk
- ldrh w0, [x19,3608]
+ ldrh w0, [x19,3616]
cmp w0, w20
- beq .L2565
- ldrh w0, [x19,3704]
+ beq .L2660
+ ldrh w0, [x19,3712]
cmp w0, w20
- beq .L2565
- ldrh w0, [x19,3656]
+ beq .L2660
+ ldrh w0, [x19,3664]
cmp w0, w20
- beq .L2565
- ldr x0, [x19,1184]
+ beq .L2660
+ ldr x0, [x19,1192]
ldrh w1, [x0,x21]
- cbnz w1, .L2567
- ldr x1, [x19,1176]
+ cbnz w1, .L2662
+ ldr x1, [x19,1184]
ldrh w1, [x1,x21]
strh w1, [x0,x21]
- b .L2565
-.L2567:
- ldr x1, [x19,1176]
+ b .L2660
+.L2662:
+ ldr x1, [x19,1184]
ldrh w1, [x1,x21]
strh w1, [x0,x21]
mov w0, w20
bl update_vpc_list
-.L2565:
+.L2660:
add w20, w20, 1
uxth w20, w20
- b .L2562
-.L2576:
+ b .L2657
+.L2671:
bl l2p_flush
bl FtlVpcTblFlush
ldr x23, [sp,48]
@@ -16989,91 +17338,91 @@ allocate_new_data_superblock:
adrp x19, .LANCHOR2
add x2, x19, :lo12:.LANCHOR2
stp x21, x22, [sp,32]
- ldr w1, [x2,1400]
+ ldr w1, [x2,1408]
ldrh w22, [x0]
- cbnz w1, .L2578
+ cbnz w1, .L2673
mov x21, x0
mov w0, 65535
cmp w22, w0
- beq .L2579
+ beq .L2674
ubfiz x1, x22, 1, 16
- ldr x0, [x2,1184]
+ ldr x0, [x2,1192]
ldrh w0, [x0,x1]
- cbz w0, .L2580
+ cbz w0, .L2675
mov w0, w22
bl INSERT_DATA_LIST
- b .L2579
-.L2580:
+ b .L2674
+.L2675:
mov w0, w22
bl INSERT_FREE_LIST
-.L2579:
+.L2674:
add x1, x19, :lo12:.LANCHOR2
strb wzr, [x21,8]
- add x0, x1, 3656
+ add x0, x1, 3664
cmp x21, x0
- beq .L2581
- ldrh w2, [x1,768]
+ beq .L2676
+ ldrh w2, [x1,776]
cmp w2, 1
- beq .L2581
- adrp x0, .LANCHOR0+136
- ldrb w0, [x0,#:lo12:.LANCHOR0+136]
- cbz w0, .L2582
-.L2581:
+ beq .L2676
+ adrp x0, .LANCHOR0+4044
+ ldrb w0, [x0,#:lo12:.LANCHOR0+4044]
+ cbz w0, .L2677
+.L2676:
mov w0, 1
strb w0, [x21,8]
- b .L2583
-.L2582:
- add x0, x1, 3608
+ b .L2678
+.L2677:
+ add x0, x1, 3616
cmp x21, x0
- bne .L2583
+ bne .L2678
cmp w2, 3
- beq .L2585
- ldr w0, [x1,868]
+ beq .L2680
+ ldr w0, [x1,872]
cmp w0, 1
- bne .L2586
-.L2585:
+ bne .L2681
+.L2680:
add x1, x19, :lo12:.LANCHOR2
mov w0, 1
- strb w0, [x1,3616]
-.L2586:
+ strb w0, [x1,3624]
+.L2681:
add x1, x19, :lo12:.LANCHOR2
- ldr w0, [x1,652]
- cbz w0, .L2583
- ldr w0, [x1,920]
+ ldr w0, [x1,660]
+ cbz w0, .L2678
+ ldr w0, [x1,924]
cmp w0, 39
- bhi .L2583
+ bhi .L2678
mov w0, 1
- strb w0, [x1,3616]
-.L2583:
+ strb w0, [x1,3624]
+.L2678:
adrp x1, .LANCHOR4
add x0, x1, :lo12:.LANCHOR4
mov x20, x1
- ldrh w2, [x0,4000]
+ ldrh w2, [x0,4016]
mov w0, 65535
cmp w2, w0
- beq .L2588
+ beq .L2683
cmp w22, w2
- bne .L2589
+ bne .L2684
add x19, x19, :lo12:.LANCHOR2
ubfiz x1, x2, 1, 16
- ldr x0, [x19,1184]
+ ldr x0, [x19,1192]
ldrh w0, [x0,x1]
- cbz w0, .L2590
-.L2589:
+ cbz w0, .L2685
+.L2684:
mov w0, w2
bl update_vpc_list
-.L2590:
+.L2685:
add x1, x20, :lo12:.LANCHOR4
mov w0, -1
- strh w0, [x1,4000]
-.L2588:
+ strh w0, [x1,4016]
+.L2683:
mov x0, x21
bl allocate_data_superblock
bl l2p_flush
mov w0, 0
bl FtlEctTblFlush
bl FtlVpcTblFlush
-.L2578:
+.L2673:
mov w0, 0
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -17088,34 +17437,34 @@ FtlReadRefresh:
adrp x1, .LANCHOR4
add x2, x1, :lo12:.LANCHOR4
add x29, sp, 0
- add x0, x2, 3456
+ add x0, x2, 3472
stp x19, x20, [sp,16]
stp x21, x22, [sp,32]
adrp x19, .LANCHOR2
ldr w3, [x0,80]
- cbz w3, .L2604
+ cbz w3, .L2699
add x1, x19, :lo12:.LANCHOR2
ldr w4, [x0,84]
- ldr w3, [x1,1396]
+ ldr w3, [x1,1404]
cmp w4, w3
- bcs .L2605
+ bcs .L2700
mov w21, 2048
mov x20, x2
-.L2610:
+.L2705:
add x1, x19, :lo12:.LANCHOR2
- ldr w0, [x20,3540]
- ldr w1, [x1,1396]
+ ldr w0, [x20,3556]
+ ldr w1, [x1,1404]
cmp w0, w1
- bcs .L2607
+ bcs .L2702
add x1, x29, 52
mov w2, 0
bl log2phys
- ldr w0, [x20,3540]
+ ldr w0, [x20,3556]
ldr w1, [x29,52]
add w0, w0, 1
- str w0, [x20,3540]
+ str w0, [x20,3556]
cmn w1, #1
- beq .L2608
+ beq .L2703
str w1, [x29,60]
mov w2, 0
str w0, [x29,80]
@@ -17127,58 +17476,58 @@ FtlReadRefresh:
bl FlashReadPages
ldr w0, [x29,56]
cmp w0, 256
- bne .L2607
+ bne .L2702
ldr w0, [x29,52]
lsr x0, x0, 10
bl P2V_block_in_plane
bl FtlGcRefreshBlock
- b .L2607
-.L2608:
+ b .L2702
+.L2703:
subs w21, w21, #1
- bne .L2610
-.L2607:
+ bne .L2705
+.L2702:
mov w0, -1
- b .L2612
-.L2605:
- ldr w1, [x1,900]
+ b .L2707
+.L2700:
+ ldr w1, [x1,904]
str wzr, [x0,80]
str wzr, [x0,84]
str w1, [x0,76]
- b .L2618
-.L2604:
+ b .L2713
+.L2699:
add x2, x19, :lo12:.LANCHOR2
- ldr w0, [x2,916]
- ldr w3, [x2,652]
- adrp x2, .LANCHOR0+136
- ldrb w4, [x2,#:lo12:.LANCHOR0+136]
+ ldr w0, [x2,920]
+ ldr w3, [x2,660]
+ adrp x2, .LANCHOR0+4044
+ ldrb w4, [x2,#:lo12:.LANCHOR0+4044]
mov w2, 4194304
- cbnz w4, .L2613
+ cbnz w4, .L2708
add w0, w3, w0, lsr 10
mov w3, 33554432
asr w2, w3, w0
-.L2613:
+.L2708:
add x19, x19, :lo12:.LANCHOR2
add x0, x1, :lo12:.LANCHOR4
- ldr w3, [x19,900]
- ldr w0, [x0,3532]
+ ldr w3, [x19,904]
+ ldr w0, [x0,3548]
add w4, w3, 1048576
cmp w0, w4
- bhi .L2614
+ bhi .L2709
add w0, w2, w0
cmp w0, w3
- bcc .L2614
- ldrb w2, [x19,3548]
+ bcc .L2709
+ ldrb w2, [x19,3556]
mov w0, 0
- cbnz w2, .L2612
-.L2614:
+ cbnz w2, .L2707
+.L2709:
add x0, x1, :lo12:.LANCHOR4
mov w1, 1
- str wzr, [x0,3540]
- str w1, [x0,3536]
- str w3, [x0,3532]
-.L2618:
+ str wzr, [x0,3556]
+ str w1, [x0,3552]
+ str w3, [x0,3548]
+.L2713:
mov w0, 0
-.L2612:
+.L2707:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x29, x30, [sp], 112
@@ -17198,641 +17547,644 @@ ftl_do_gc:
stp x23, x24, [sp,48]
stp x25, x26, [sp,64]
stp x27, x28, [sp,80]
- ldr w4, [x3,1400]
- cbnz w4, .L2764
- ldr w4, [x3,924]
- cbnz w4, .L2764
- ldrh w4, [x3,3584]
+ ldr w4, [x3,1408]
+ cbnz w4, .L2859
+ ldr w4, [x3,928]
+ cbnz w4, .L2859
+ ldrh w4, [x3,3592]
cmp w4, 47
- bls .L2764
+ bls .L2859
str w0, [x29,140]
- adrp x0, .LANCHOR1+3164
+ adrp x0, .LANCHOR1+3292
mov w24, w1
- ldrh w1, [x0,#:lo12:.LANCHOR1+3164]
+ ldrh w1, [x0,#:lo12:.LANCHOR1+3292]
mov w0, 65535
cmp w1, w0
- bne .L2621
-.L2624:
+ bne .L2716
+.L2719:
add x0, x19, :lo12:.LANCHOR2
mov w2, 65535
- ldrh w4, [x0,950]
+ ldrh w4, [x0,954]
cmp w4, w2
- bne .L2622
- b .L2623
-.L2621:
- ldrh w1, [x3,3704]
+ bne .L2717
+ b .L2718
+.L2716:
+ ldrh w1, [x3,3712]
cmp w1, w0
- beq .L2624
+ beq .L2719
mov w0, 1
bl FtlGcFreeTempBlock
mov w2, 1
- cbz w0, .L2624
- b .L2764
-.L2622:
- ldrh w1, [x0,948]
+ cbz w0, .L2719
+ b .L2859
+.L2717:
+ ldrh w1, [x0,952]
cmp w1, w2
- bne .L2623
- ldrh w3, [x0,952]
+ bne .L2718
+ ldrh w3, [x0,956]
cmp w3, w1
- beq .L2623
- ldrh w2, [x0,954]
+ beq .L2718
+ ldrh w2, [x0,958]
cmp w2, w1
- beq .L2623
+ beq .L2718
mov w1, -1
- strh w4, [x0,948]
- strh w3, [x0,950]
- strh w2, [x0,952]
- strh w1, [x0,954]
-.L2623:
+ strh w4, [x0,952]
+ strh w3, [x0,954]
+ strh w2, [x0,956]
+ strh w1, [x0,958]
+.L2718:
add x1, x19, :lo12:.LANCHOR2
ldr w2, [x29,140]
adrp x23, .LANCHOR4
cmp w2, 1
- ldr w0, [x1,940]
+ ldr w0, [x1,944]
add w0, w0, 1
add w0, w0, w2, lsl 7
- str w0, [x1,940]
- bne .L2635
- ldr w1, [x1,652]
- cbnz w1, .L2626
- adrp x1, .LANCHOR0+136
- ldrb w1, [x1,#:lo12:.LANCHOR0+136]
- cbz w1, .L2635
-.L2626:
+ str w0, [x1,944]
+ bne .L2730
+ ldr w1, [x1,660]
+ cbnz w1, .L2721
+ adrp x1, .LANCHOR0+4044
+ ldrb w1, [x1,#:lo12:.LANCHOR0+4044]
+ cbz w1, .L2730
+.L2721:
add x20, x19, :lo12:.LANCHOR2
- ldr w1, [x20,920]
+ ldr w1, [x20,924]
cmp w1, 39
- bhi .L2635
+ bhi .L2730
adrp x21, .LANCHOR5
add x1, x21, :lo12:.LANCHOR5
- ldrh w1, [x1,-152]
+ ldrh w1, [x1,-136]
add w0, w0, w1
- str w0, [x20,940]
+ str w0, [x20,944]
bl FtlGcReFreshBadBlk
add x0, x23, :lo12:.LANCHOR4
mov w1, 65535
- ldrh w0, [x0,3408]
+ ldrh w0, [x0,3424]
cmp w0, w1
- bne .L2635
- ldrh w1, [x20,948]
+ bne .L2730
+ ldrh w1, [x20,952]
cmp w1, w0
- bne .L2635
- ldr w0, [x20,940]
+ bne .L2730
+ ldr w0, [x20,944]
cmp w0, 1024
- bhi .L2627
- ldrh w0, [x20,3600]
+ bhi .L2722
+ ldrh w0, [x20,3608]
cmp w0, 63
- bhi .L2635
-.L2627:
+ bhi .L2730
+.L2722:
add x0, x19, :lo12:.LANCHOR2
add x1, x21, :lo12:.LANCHOR5
- ldrh w2, [x0,958]
- ldrh w3, [x0,3600]
+ ldrh w2, [x0,962]
+ ldrh w3, [x0,3608]
add w2, w2, 64
- strh wzr, [x1,-152]
+ strh wzr, [x1,-136]
cmp w3, w2
- bgt .L2635
- str wzr, [x0,940]
- ldr w0, [x0,920]
- cbnz w0, .L2628
+ bgt .L2730
+ str wzr, [x0,944]
+ ldr w0, [x0,924]
+ cbnz w0, .L2723
mov w0, 6
- b .L2786
-.L2628:
+ b .L2881
+.L2723:
cmp w0, 5
- bhi .L2629
+ bhi .L2724
mov w0, 18
-.L2786:
- strh w0, [x1,-152]
-.L2629:
+.L2881:
+ strh w0, [x1,-136]
+.L2724:
mov w0, 32
mov w28, 65535
bl List_get_gc_head_node
uxth w26, w0
cmp w26, w28
- beq .L2634
+ beq .L2729
add x22, x19, :lo12:.LANCHOR2
- ldrh w0, [x22,960]
- cbz w0, .L2631
- ldrh w1, [x22,820]
+ ldrh w0, [x22,964]
+ cbz w0, .L2726
+ ldrh w1, [x22,826]
ubfiz x26, x26, 1, 16
- ldrh w3, [x22,748]
- ldr x27, [x22,1184]
+ ldrh w3, [x22,756]
+ ldr x27, [x22,1192]
mul w1, w1, w3
ldrh w2, [x27,x26]
add w1, w1, 1
cmp w2, w1
- bgt .L2634
+ bgt .L2729
add w1, w0, 1
- str wzr, [x22,928]
+ str wzr, [x22,932]
uxth w1, w1
- strh w1, [x22,960]
+ strh w1, [x22,964]
str x1, [x29,128]
bl List_get_gc_head_node
uxth w20, w0
cmp w20, w28
ldr x1, [x29,128]
- beq .L2634
+ beq .L2729
ubfiz x28, x20, 1, 16
- adrp x0, .LC150
+ adrp x0, .LC151
ldrh w4, [x27,x26]
- add x0, x0, :lo12:.LC150
+ add x0, x0, :lo12:.LC151
mov w2, w20
ldrh w3, [x27,x28]
bl printk
- ldrh w0, [x22,960]
+ ldrh w0, [x22,964]
cmp w0, 40
- bls .L2632
- ldr x0, [x22,1184]
+ bls .L2727
+ ldr x0, [x22,1192]
ldrh w0, [x0,x28]
cmp w0, 32
- bls .L2632
- strh wzr, [x22,960]
-.L2632:
+ bls .L2727
+ strh wzr, [x22,964]
+.L2727:
add x21, x21, :lo12:.LANCHOR5
mov w0, 6
- strh w0, [x21,-152]
- b .L2636
-.L2631:
+ strh w0, [x21,-136]
+ b .L2731
+.L2726:
mov w0, 1
- strh w0, [x22,960]
-.L2634:
+ strh w0, [x22,964]
+.L2729:
bl GetSwlReplaceBlock
uxth w20, w0
mov w0, 65535
cmp w20, w0
- bne .L2636
+ bne .L2731
add x21, x21, :lo12:.LANCHOR5
- strh wzr, [x21,-152]
-.L2635:
+ strh wzr, [x21,-136]
+.L2730:
add x0, x23, :lo12:.LANCHOR4
- ldrh w20, [x0,3408]
+ ldrh w20, [x0,3424]
mov w0, 65535
cmp w20, w0
- bne .L2791
+ bne .L2886
add x22, x19, :lo12:.LANCHOR2
- ldrh w0, [x22,3704]
+ ldrh w0, [x22,3712]
cmp w0, w20
- beq .L2792
-.L2636:
+ beq .L2887
+.L2731:
mov w0, 65535
cmp w20, w0
cset w2, eq
- cbz w2, .L2649
+ cbz w2, .L2744
ldr w0, [x29,140]
- cbnz w0, .L2649
+ cbnz w0, .L2744
add x0, x19, :lo12:.LANCHOR2
mov w22, 1
- ldrh w1, [x0,3600]
+ ldrh w1, [x0,3608]
cmp w1, 24
- bhi .L2650
+ bhi .L2745
cmp w1, 16
- ldrh w22, [x0,818]
- bls .L2651
+ ldrh w22, [x0,824]
+ bls .L2746
lsr w22, w22, 5
- b .L2650
-.L2651:
+ b .L2745
+.L2746:
cmp w1, 12
- bls .L2652
+ bls .L2747
lsr w22, w22, 4
- b .L2650
-.L2652:
+ b .L2745
+.L2747:
lsr w0, w22, 2
cmp w1, 9
csel w22, w0, w22, cs
-.L2650:
+.L2745:
add x0, x19, :lo12:.LANCHOR2
- ldrh w2, [x0,956]
+ ldrh w2, [x0,960]
cmp w2, w1
- bcs .L2654
- ldrh w1, [x0,3704]
+ bcs .L2749
+ ldrh w1, [x0,3712]
mov w2, 65535
cmp w1, w2
- bne .L2655
- ldrh w2, [x0,948]
+ bne .L2750
+ ldrh w2, [x0,952]
cmp w2, w1
- bne .L2655
- adrp x1, .LANCHOR5-152
- ldrh w2, [x1,#:lo12:.LANCHOR5-152]
- cbnz w2, .L2656
- ldr w1, [x0,1396]
- ldr w3, [x0,3892]
+ bne .L2750
+ adrp x1, .LANCHOR5-136
+ ldrh w2, [x1,#:lo12:.LANCHOR5-136]
+ cbnz w2, .L2751
+ ldr w1, [x0,1404]
+ ldr w3, [x0,3900]
add w1, w1, w1, lsl 1
cmp w3, w1, lsr 2
- bcs .L2657
-.L2656:
+ bcs .L2752
+.L2751:
add x23, x23, :lo12:.LANCHOR4
add x1, x19, :lo12:.LANCHOR2
- ldrh w0, [x23,3404]
+ ldrh w0, [x23,3420]
add w0, w0, w0, lsl 1
asr w0, w0, 2
- strh w0, [x1,956]
- b .L2658
-.L2657:
+ strh w0, [x1,960]
+ b .L2753
+.L2752:
mov w1, 18
- strh w1, [x0,956]
-.L2658:
+ strh w1, [x0,960]
+.L2753:
add x19, x19, :lo12:.LANCHOR2
- str wzr, [x19,928]
- b .L2764
-.L2655:
+ str wzr, [x19,932]
+ b .L2859
+.L2750:
add x0, x23, :lo12:.LANCHOR4
add x1, x19, :lo12:.LANCHOR2
- ldrh w0, [x0,3404]
+ ldrh w0, [x0,3420]
add w0, w0, w0, lsl 1
asr w0, w0, 2
- strh w0, [x1,956]
-.L2654:
+ strh w0, [x1,960]
+.L2749:
cmp w24, 2
- bhi .L2719
+ bhi .L2814
add x0, x19, :lo12:.LANCHOR2
- ldr w0, [x0,652]
- cbz w0, .L2719
+ ldr w0, [x0,660]
+ cbz w0, .L2814
add w22, w22, 1
uxth w22, w22
- b .L2719
-.L2649:
+ b .L2814
+.L2744:
add x0, x19, :lo12:.LANCHOR2
mov w3, 65535
- ldrh w1, [x0,3704]
+ ldrh w1, [x0,3712]
cmp w1, w3
- bne .L2661
- cbz w2, .L2661
- ldrh w2, [x0,948]
+ bne .L2756
+ cbz w2, .L2756
+ ldrh w2, [x0,952]
cmp w2, w1
- bne .L2661
+ bne .L2756
add x2, x23, :lo12:.LANCHOR4
- ldrh w2, [x2,3408]
+ ldrh w2, [x2,3424]
cmp w2, w1
- beq .L2662
-.L2667:
+ beq .L2757
+.L2762:
mov w20, 65535
- b .L2661
-.L2662:
- ldrh w2, [x0,3600]
+ b .L2756
+.L2757:
+ ldrh w2, [x0,3608]
adrp x20, .LANCHOR5
- ldrh w1, [x0,956]
- str wzr, [x0,928]
+ ldrh w1, [x0,960]
+ str wzr, [x0,932]
cmp w2, w1
- bls .L2663
+ bls .L2758
add x1, x20, :lo12:.LANCHOR5
- ldrh w1, [x1,-152]
- cbnz w1, .L2664
- ldr w1, [x0,1396]
- ldr w2, [x0,3892]
+ ldrh w1, [x1,-136]
+ cbnz w1, .L2759
+ ldr w1, [x0,1404]
+ ldr w2, [x0,3900]
add w1, w1, w1, lsl 1
cmp w2, w1, lsr 2
- bcs .L2665
-.L2664:
+ bcs .L2760
+.L2759:
add x0, x23, :lo12:.LANCHOR4
add x1, x19, :lo12:.LANCHOR2
- ldrh w0, [x0,3404]
+ ldrh w0, [x0,3420]
add w0, w0, w0, lsl 1
asr w0, w0, 2
- strh w0, [x1,956]
- b .L2666
-.L2665:
+ strh w0, [x1,960]
+ b .L2761
+.L2760:
mov w1, 18
- strh w1, [x0,956]
-.L2666:
+ strh w1, [x0,960]
+.L2761:
bl FtlReadRefresh
mov w0, 0
bl List_get_gc_head_node
ubfiz x0, x0, 1, 16
add x1, x19, :lo12:.LANCHOR2
- ldr x1, [x1,1184]
+ ldr x1, [x1,1192]
ldrh w0, [x1,x0]
cmp w0, 4
- bls .L2663
+ bls .L2758
add x20, x20, :lo12:.LANCHOR5
- ldrh w2, [x20,-152]
- b .L2764
-.L2663:
+ ldrh w2, [x20,-136]
+ b .L2859
+.L2758:
add x22, x20, :lo12:.LANCHOR5
- ldrh w0, [x22,-152]
- cbnz w0, .L2667
+ ldrh w0, [x22,-136]
+ cbnz w0, .L2762
add x1, x23, :lo12:.LANCHOR4
add x21, x19, :lo12:.LANCHOR2
- ldrh w20, [x1,3404]
+ ldrh w20, [x1,3420]
add w1, w20, w20, lsl 1
asr w1, w1, 2
- strh w1, [x21,956]
+ strh w1, [x21,960]
bl List_get_gc_head_node
ubfiz x0, x0, 1, 16
- ldr x1, [x21,1184]
- ldrh w2, [x21,748]
+ ldr x1, [x21,1192]
+ ldrh w2, [x21,756]
ldrh w1, [x1,x0]
- ldrh w0, [x21,820]
+ ldrh w0, [x21,826]
mul w0, w0, w2
mov w2, 2
sdiv w0, w0, w2
cmp w1, w0
- ble .L2668
- ldrh w0, [x21,3600]
+ ble .L2763
+ ldrh w0, [x21,3608]
sub w20, w20, #1
cmp w0, w20
- blt .L2668
+ blt .L2763
bl FtlReadRefresh
- ldrh w2, [x22,-152]
- b .L2764
-.L2668:
- cbnz w1, .L2667
+ ldrh w2, [x22,-136]
+ b .L2859
+.L2763:
+ cbnz w1, .L2762
mov w0, -1
add x19, x19, :lo12:.LANCHOR2
bl decrement_vpc_count
- ldrh w2, [x19,3600]
+ ldrh w2, [x19,3608]
add w2, w2, 1
- b .L2764
-.L2661:
+ b .L2859
+.L2756:
add x0, x19, :lo12:.LANCHOR2
mov w22, 2
- ldr w0, [x0,652]
+ ldr w0, [x0,660]
cmp w0, wzr
csinc w22, w22, wzr, ne
- b .L2660
-.L2719:
+ b .L2755
+.L2814:
mov w20, 65535
-.L2660:
+.L2755:
add x0, x23, :lo12:.LANCHOR4
mov w2, 65535
- ldrh w1, [x0,3408]
+ ldrh w1, [x0,3424]
cmp w1, w2
- bne .L2670
+ bne .L2765
cmp w20, w1
- beq .L2671
- strh w20, [x0,3408]
- b .L2672
-.L2671:
+ beq .L2766
+ strh w20, [x0,3424]
+ b .L2767
+.L2766:
add x1, x19, :lo12:.LANCHOR2
- ldrh w0, [x1,948]
+ ldrh w0, [x1,952]
cmp w0, w20
- beq .L2672
+ beq .L2767
ubfiz x0, x0, 1, 16
- ldr x2, [x1,1184]
+ ldr x2, [x1,1192]
ldrh w0, [x2,x0]
- cbnz w0, .L2673
+ cbnz w0, .L2768
mov w0, -1
- strh w0, [x1,948]
-.L2673:
+ strh w0, [x1,952]
+.L2768:
add x1, x19, :lo12:.LANCHOR2
add x0, x23, :lo12:.LANCHOR4
- ldrh w2, [x1,948]
- strh w2, [x0,3408]
+ ldrh w2, [x1,952]
+ strh w2, [x0,3424]
mov w0, -1
- strh w0, [x1,948]
-.L2672:
+ strh w0, [x1,952]
+.L2767:
add x21, x23, :lo12:.LANCHOR4
mov w1, 65535
- ldrh w0, [x21,3408]
- strb wzr, [x21,3416]
+ ldrh w0, [x21,3424]
+ strb wzr, [x21,3432]
cmp w0, w1
- beq .L2670
+ beq .L2765
bl IsBlkInGcList
- cbz w0, .L2675
+ cbz w0, .L2770
mov w0, -1
- strh w0, [x21,3408]
-.L2675:
- adrp x0, .LANCHOR0+136
- ldrb w0, [x0,#:lo12:.LANCHOR0+136]
- cbz w0, .L2676
+ strh w0, [x21,3424]
+.L2770:
+ adrp x0, .LANCHOR0+4044
+ ldrb w0, [x0,#:lo12:.LANCHOR0+4044]
+ cbz w0, .L2771
add x0, x23, :lo12:.LANCHOR4
- add x21, x0, 3408
- ldrh w0, [x0,3408]
+ add x21, x0, 3424
+ ldrh w0, [x0,3424]
bl ftl_get_blk_mode
strb w0, [x21,8]
-.L2676:
+.L2771:
add x21, x23, :lo12:.LANCHOR4
mov w0, 65535
- add x24, x21, 3408
- ldrh w1, [x21,3408]
+ add x24, x21, 3424
+ ldrh w1, [x21,3424]
cmp w1, w0
- beq .L2670
+ beq .L2765
mov x0, x24
bl make_superblock
- strh wzr, [x21,3410]
+ strh wzr, [x21,3426]
adrp x0, .LANCHOR5
add x1, x19, :lo12:.LANCHOR2
add x0, x0, :lo12:.LANCHOR5
- ldrh w2, [x21,3408]
- strb wzr, [x21,3414]
- ldr x1, [x1,1184]
- strh wzr, [x0,-150]
+ ldrh w2, [x21,3424]
+ strb wzr, [x21,3430]
+ ldr x1, [x1,1192]
+ strh wzr, [x0,-134]
ldrh w1, [x1,x2,lsl 1]
- strh w1, [x0,-148]
-.L2670:
+ strh w1, [x0,-132]
+.L2765:
add x21, x23, :lo12:.LANCHOR4
add x1, x19, :lo12:.LANCHOR2
- ldrh w0, [x21,3408]
- ldrh w2, [x1,3608]
+ ldrh w0, [x21,3424]
+ ldrh w2, [x1,3616]
cmp w2, w0
- beq .L2677
- ldrh w1, [x1,3656]
+ beq .L2772
+ ldrh w1, [x1,3664]
cmp w1, w0
- beq .L2677
-.L2678:
- adrp x0, .LC152
- add x0, x0, :lo12:.LC152
+ beq .L2772
+.L2773:
+ adrp x0, .LC153
+ add x0, x0, :lo12:.LC153
str x0, [x29,128]
- b .L2679
-.L2677:
+ b .L2774
+.L2772:
add x23, x23, :lo12:.LANCHOR4
mov w0, -1
- strh w0, [x23,3408]
- b .L2790
-.L2700:
- ldrh w0, [x21,3410]
+ strh w0, [x23,3424]
+ b .L2885
+.L2795:
+ ldrh w0, [x21,3426]
add w22, w22, w0
uxth w22, w22
- strh w22, [x21,3410]
+ strh w22, [x21,3426]
cmp w22, w26
- bcs .L2793
-.L2702:
+ bcs .L2888
+.L2797:
add x1, x19, :lo12:.LANCHOR2
- ldrh w0, [x1,3600]
+ ldrh w0, [x1,3608]
cmp w0, 2
- bhi .L2705
- ldrh w22, [x1,818]
-.L2679:
- ldrh w26, [x21,3408]
+ bhi .L2800
+ ldrh w22, [x1,824]
+.L2774:
+ ldrh w26, [x21,3424]
mov w0, 65535
cmp w26, w0
- bne .L2680
+ bne .L2775
add x0, x19, :lo12:.LANCHOR2
mov w27, 2
- str wzr, [x0,928]
-.L2681:
+ str wzr, [x0,932]
+.L2776:
add x28, x19, :lo12:.LANCHOR2
- ldrh w24, [x28,960]
+ ldrh w24, [x28,964]
mov w0, w24
bl List_get_gc_head_node
uxth w25, w0
cmp w25, w26
- strh w25, [x21,3408]
- bne .L2682
- strh wzr, [x28,960]
+ strh w25, [x21,3424]
+ bne .L2777
+ strh wzr, [x28,964]
mov w2, 8
- b .L2764
-.L2682:
+ b .L2859
+.L2777:
mov w0, w25
add w24, w24, 1
bl IsBlkInGcList
- cbz w0, .L2683
- strh w24, [x28,960]
- b .L2681
-.L2683:
- ldrh w5, [x28,748]
+ cbz w0, .L2778
+ strh w24, [x28,964]
+ b .L2776
+.L2778:
+ ldrh w5, [x28,756]
ubfiz x2, x25, 1, 16
- ldrh w0, [x28,818]
+ ldrh w0, [x28,824]
uxth w24, w24
- ldr x3, [x28,1184]
- strh w24, [x28,960]
+ ldr x3, [x28,1192]
+ strh w24, [x28,964]
mul w0, w0, w5
ldrh w4, [x3,x2]
sdiv w5, w0, w27
cmp w4, w5
- bgt .L2685
+ bgt .L2780
cmp w4, 8
- bls .L2686
+ bls .L2781
cmp w24, 48
- bls .L2686
- ldrh w4, [x21,4016]
+ bls .L2781
+ ldrh w4, [x21,4032]
cmp w4, 35
- bhi .L2686
-.L2685:
+ bhi .L2781
+.L2780:
add x4, x19, :lo12:.LANCHOR2
- strh wzr, [x4,960]
-.L2686:
+ strh wzr, [x4,964]
+.L2781:
+ cmp w20, w26
ldrh w2, [x3,x2]
+ bne .L2782
cmp w2, w0
- blt .L2687
- cmp w20, w26
- bne .L2687
+ blt .L2782
+ add x0, x19, :lo12:.LANCHOR2
+ ldrh w3, [x0,964]
+ cmp w3, 3
+ bhi .L2782
add x23, x23, :lo12:.LANCHOR4
- add x19, x19, :lo12:.LANCHOR2
- mov w0, -1
- strh wzr, [x19,960]
- strh w0, [x23,3408]
-.L2790:
- adrp x0, .LANCHOR5-152
- ldrh w2, [x0,#:lo12:.LANCHOR5-152]
- b .L2764
-.L2687:
- cbnz w2, .L2688
+ mov w1, -1
+ strh wzr, [x0,964]
+ strh w1, [x23,3424]
+.L2885:
+ adrp x0, .LANCHOR5-136
+ ldrh w2, [x0,#:lo12:.LANCHOR5-136]
+ b .L2859
+.L2782:
+ cbnz w2, .L2783
mov w0, -1
bl decrement_vpc_count
add x1, x19, :lo12:.LANCHOR2
- ldrh w0, [x1,960]
+ ldrh w0, [x1,964]
add w0, w0, 1
- strh w0, [x1,960]
- b .L2681
-.L2688:
+ strh w0, [x1,964]
+ b .L2776
+.L2783:
adrp x0, .LANCHOR0
- strb wzr, [x21,3416]
+ strb wzr, [x21,3432]
add x0, x0, :lo12:.LANCHOR0
- ldrb w0, [x0,136]
- cbz w0, .L2689
+ ldrb w0, [x0,4044]
+ cbz w0, .L2784
mov w0, w25
bl ftl_get_blk_mode
- strb w0, [x21,3416]
-.L2689:
- add x24, x21, 3408
+ strb w0, [x21,3432]
+.L2784:
+ add x24, x21, 3424
mov x0, x24
bl make_superblock
adrp x1, .LANCHOR5
add x0, x19, :lo12:.LANCHOR2
add x1, x1, :lo12:.LANCHOR5
- ldrh w2, [x21,3408]
- ldr x0, [x0,1184]
- strh wzr, [x1,-150]
+ ldrh w2, [x21,3424]
+ ldr x0, [x0,1192]
+ strh wzr, [x1,-134]
ldrh w0, [x0,x2,lsl 1]
- strh w0, [x1,-148]
- strh wzr, [x21,3410]
- strb wzr, [x21,3414]
-.L2680:
+ strh w0, [x1,-132]
+ strh wzr, [x21,3426]
+ strb wzr, [x21,3430]
+.L2775:
ldr w0, [x29,140]
cmp w0, 1
- bne .L2690
+ bne .L2785
bl FtlReadRefresh
-.L2690:
+.L2785:
add x0, x19, :lo12:.LANCHOR2
mov w1, 1
- str w1, [x0,924]
+ str w1, [x0,928]
adrp x1, .LANCHOR0
add x1, x1, :lo12:.LANCHOR0
- ldrh w26, [x0,818]
- ldrb w1, [x1,136]
- cbz w1, .L2691
- ldrb w1, [x21,3416]
+ ldrh w26, [x0,824]
+ ldrb w1, [x1,4044]
+ cbz w1, .L2786
+ ldrb w1, [x21,3432]
cmp w1, 1
- bne .L2691
- ldrh w26, [x0,820]
-.L2691:
- ldrh w0, [x21,3410]
+ bne .L2786
+ ldrh w26, [x0,826]
+.L2786:
+ ldrh w0, [x21,3426]
add w1, w0, w22
cmp w1, w26
- ble .L2692
+ ble .L2787
sub w22, w26, w0
uxth w22, w22
-.L2692:
+.L2787:
mov w27, 0
-.L2693:
+.L2788:
cmp w22, w27, uxth
- bls .L2700
- add x1, x21, 3408
+ bls .L2795
+ add x1, x21, 3424
add x0, x19, :lo12:.LANCHOR2
ldrh w3, [x1,2]
- ldrh w6, [x0,748]
+ ldrh w6, [x0,756]
mov x0, 0
add w3, w3, w27
mov w24, w0
-.L2701:
+.L2796:
cmp w6, w0, uxth
- bls .L2794
+ bls .L2889
add x2, x1, x0, lsl 1
mov w4, 65535
ldrh w2, [x2,16]
cmp w2, w4
- beq .L2694
+ beq .L2789
add x5, x19, :lo12:.LANCHOR2
mov w4, 56
orr w2, w3, w2, lsl 10
umull x4, w24, w4
- ldr x5, [x5,1024]
+ ldr x5, [x5,1032]
add w24, w24, 1
add x4, x5, x4
uxth w24, w24
str w2, [x4,4]
-.L2694:
+.L2789:
add x0, x0, 1
- b .L2701
-.L2794:
+ b .L2796
+.L2889:
add x25, x19, :lo12:.LANCHOR2
- ldrb w2, [x21,3416]
+ ldrb w2, [x21,3432]
mov w1, w24
mov x28, 0
- ldr x0, [x25,1024]
+ ldr x0, [x25,1032]
bl FlashReadPages
-.L2696:
+.L2791:
cmp w24, w28, uxth
- bls .L2795
+ bls .L2890
mov x0, 56
mul x5, x28, x0
- ldr x0, [x25,1024]
+ ldr x0, [x25,1032]
add x1, x0, x5
ldr w0, [x0,x5]
cmn w0, #1
ldr x4, [x1,16]
- beq .L2721
+ beq .L2816
ldrh w0, [x4]
mov w1, 61589
cmp w0, w1
- bne .L2721
+ bne .L2816
ldr w0, [x4,8]
add x1, x29, 156
mov w2, 0
str x5, [x29,112]
str x4, [x29,120]
bl log2phys
- ldr x2, [x25,1024]
+ ldr x2, [x25,1032]
ldr x5, [x29,112]
ldr w0, [x29,156]
add x2, x2, x5
@@ -17840,17 +18192,17 @@ ftl_do_gc:
and w0, w0, 2147483647
ldr w1, [x2,4]
cmp w0, w1
- bne .L2721
+ bne .L2816
adrp x0, .LANCHOR5
mov x3, 56
add x1, x0, :lo12:.LANCHOR5
str x5, [x29,104]
str x4, [x29,112]
- ldrh w0, [x1,-150]
+ ldrh w0, [x1,-134]
add w0, w0, 1
- strh w0, [x1,-150]
- ldr w0, [x21,3984]
- ldr x1, [x25,1000]
+ strh w0, [x1,-134]
+ ldr w0, [x21,4000]
+ ldr x1, [x25,1008]
madd x1, x0, x3, x1
ldr w0, [x2,24]
str x1, [x29,120]
@@ -17861,149 +18213,149 @@ ftl_do_gc:
ldr x5, [x29,104]
ldr x4, [x29,112]
str w0, [x1,4]
- ldr w0, [x21,3984]
- ldr x1, [x25,1000]
+ ldr w0, [x21,4000]
+ ldr x1, [x25,1008]
madd x0, x0, x2, x1
- ldr x1, [x25,1024]
+ ldr x1, [x25,1032]
add x1, x1, x5
ldr x2, [x1,8]
str x2, [x0,8]
- add x2, x25, 3704
+ add x2, x25, 3712
str x2, [x29,120]
ldr x1, [x1,16]
str x1, [x0,16]
mov w1, 1
ldr w0, [x29,156]
str w0, [x4,12]
- ldrh w0, [x25,3704]
+ ldrh w0, [x25,3712]
strh w0, [x4,2]
- ldr w0, [x25,876]
+ ldr w0, [x25,880]
str w0, [x4,4]
- ldr w0, [x21,3984]
+ ldr w0, [x21,4000]
add w0, w0, 1
- str w0, [x21,3984]
- ldr x0, [x25,1024]
+ str w0, [x21,4000]
+ ldr x0, [x25,1032]
add x0, x0, x5
bl FtlGcBufAlloc
adrp x0, .LANCHOR0
add x0, x0, :lo12:.LANCHOR0
- ldrb w0, [x0,136]
- cbnz w0, .L2698
+ ldrb w0, [x0,4044]
+ cbnz w0, .L2793
ldr x2, [x29,120]
- ldr w1, [x21,3984]
+ ldr w1, [x21,4000]
ldrb w0, [x2,7]
cmp w1, w0
- beq .L2698
+ beq .L2793
ldrh w0, [x2,4]
- cbnz w0, .L2721
-.L2698:
+ cbnz w0, .L2816
+.L2793:
bl Ftl_gc_temp_data_write_back
- cbz w0, .L2721
+ cbz w0, .L2816
adrp x0, .LANCHOR5
add x19, x19, :lo12:.LANCHOR2
add x0, x0, :lo12:.LANCHOR5
- str wzr, [x19,924]
- ldrh w2, [x0,-152]
- b .L2764
-.L2721:
+ str wzr, [x19,928]
+ ldrh w2, [x0,-136]
+ b .L2859
+.L2816:
add x28, x28, 1
- b .L2696
-.L2795:
+ b .L2791
+.L2890:
add w27, w27, 1
- b .L2693
-.L2793:
- ldr w0, [x21,3984]
+ b .L2788
+.L2888:
+ ldr w0, [x21,4000]
adrp x22, .LANCHOR5
- cbz w0, .L2703
+ cbz w0, .L2798
bl Ftl_gc_temp_data_write_back
- cbz w0, .L2703
+ cbz w0, .L2798
add x19, x19, :lo12:.LANCHOR2
add x5, x22, :lo12:.LANCHOR5
- str wzr, [x19,924]
- ldrh w2, [x5,-152]
- b .L2764
-.L2703:
+ str wzr, [x19,928]
+ ldrh w2, [x5,-136]
+ b .L2859
+.L2798:
add x5, x22, :lo12:.LANCHOR5
- ldrh w22, [x5,-150]
- cbnz w22, .L2704
+ ldrh w22, [x5,-134]
+ cbnz w22, .L2799
add x24, x19, :lo12:.LANCHOR2
- ldrh w1, [x21,3408]
+ ldrh w1, [x21,3424]
ubfiz x0, x1, 1, 16
- ldr x3, [x24,1184]
+ ldr x3, [x24,1192]
ldrh w4, [x3,x0]
- cbz w4, .L2704
- ldrh w2, [x21,3410]
+ cbz w4, .L2799
+ ldrh w2, [x21,3426]
mov w3, w22
- ldrh w5, [x5,-148]
+ ldrh w5, [x5,-132]
ldr x0, [x29,128]
bl printk
- ldrh w1, [x21,3408]
- ldr x0, [x24,1184]
+ ldrh w1, [x21,3424]
+ ldr x0, [x24,1192]
strh w22, [x0,x1,lsl 1]
- ldrh w0, [x21,3408]
+ ldrh w0, [x21,3424]
bl update_vpc_list
bl FtlCacheWriteBack
bl l2p_flush
bl FtlVpcTblFlush
-.L2704:
+.L2799:
mov w0, -1
- strh w0, [x21,3408]
- b .L2702
-.L2705:
- str wzr, [x1,924]
- adrp x1, .LANCHOR5-152
- ldrh w2, [x1,#:lo12:.LANCHOR5-152]
+ strh w0, [x21,3424]
+ b .L2797
+.L2800:
+ str wzr, [x1,928]
+ adrp x1, .LANCHOR5-136
+ ldrh w2, [x1,#:lo12:.LANCHOR5-136]
cmp w2, wzr
csinc w2, w2, w0, ne
- b .L2764
-.L2792:
- ldrh w26, [x22,948]
+ b .L2859
+.L2887:
+ ldrh w26, [x22,952]
cmp w26, w20
- bne .L2636
- ldrh w0, [x22,3600]
+ bne .L2731
+ ldrh w0, [x22,3608]
mov w2, 1024
- ldr w1, [x22,940]
+ ldr w1, [x22,944]
cmp w0, 24
mov w0, 5120
csel w0, w0, w2, cc
cmp w1, w0
- bls .L2636
- adrp x0, .LANCHOR5-152
- str wzr, [x22,940]
- strh wzr, [x0,#:lo12:.LANCHOR5-152]
+ bls .L2731
+ adrp x0, .LANCHOR5-136
+ str wzr, [x22,944]
+ strh wzr, [x0,#:lo12:.LANCHOR5-136]
bl GetSwlReplaceBlock
uxth w20, w0
cmp w20, w26
- bne .L2638
- ldrh w1, [x22,3600]
- ldrh w0, [x22,958]
+ bne .L2733
+ ldrh w1, [x22,3608]
+ ldrh w0, [x22,962]
cmp w1, w0
- bcs .L2639
+ bcs .L2734
mov w0, 64
bl List_get_gc_head_node
uxth w0, w0
cmp w0, w20
- beq .L2648
- ldr w2, [x22,864]
+ beq .L2743
+ ldr w2, [x22,868]
uxtw x1, w0
- cbnz w2, .L2641
- ldrh w0, [x22,768]
+ cbnz w2, .L2736
+ ldrh w0, [x22,776]
cmp w0, 3
- beq .L2641
- ldr w0, [x22,868]
- cbnz w0, .L2641
- ldr w0, [x22,652]
- cbnz w0, .L2641
- adrp x0, .LANCHOR0+136
- ldrb w0, [x0,#:lo12:.LANCHOR0+136]
- cbz w0, .L2642
-.L2641:
+ beq .L2736
+ ldr w0, [x22,872]
+ cbnz w0, .L2736
+ ldr w0, [x22,660]
+ cbnz w0, .L2736
+ adrp x0, .LANCHOR0+4044
+ ldrb w0, [x0,#:lo12:.LANCHOR0+4044]
+ cbz w0, .L2737
+.L2736:
add x2, x19, :lo12:.LANCHOR2
- ldr x0, [x2,1184]
+ ldr x0, [x2,1192]
ldrh w4, [x0,x1,lsl 1]
- ldrh w1, [x2,820]
- ldrh w0, [x2,748]
- ldrh w2, [x2,768]
+ ldrh w1, [x2,826]
+ ldrh w0, [x2,756]
+ ldrh w2, [x2,776]
mul w3, w1, w0
cmp w2, 3
mov w0, 0
@@ -18011,68 +18363,68 @@ ftl_do_gc:
csel w0, w1, w0, eq
add w0, w3, w0
cmp w4, w0
- bgt .L2644
+ bgt .L2739
mov w0, 0
bl List_get_gc_head_node
uxth w20, w0
add x0, x19, :lo12:.LANCHOR2
- ldr w1, [x0,1396]
- ldr w2, [x0,3892]
+ ldr w1, [x0,1404]
+ ldr w2, [x0,3900]
add w1, w1, w1, lsl 1
cmp w2, w1, lsr 2
- bhi .L2788
+ bhi .L2883
mov w1, 160
- b .L2787
-.L2644:
+ b .L2882
+.L2739:
add x0, x19, :lo12:.LANCHOR2
mov w1, 128
- b .L2789
-.L2642:
- ldr x2, [x22,1184]
+ b .L2884
+.L2737:
+ ldr x2, [x22,1192]
ldrh w1, [x2,x1,lsl 1]
cmp w1, 7
- bhi .L2647
+ bhi .L2742
bl List_get_gc_head_node
uxth w20, w0
add x0, x19, :lo12:.LANCHOR2
-.L2788:
+.L2883:
mov w1, 128
-.L2787:
- strh w1, [x0,958]
+.L2882:
+ strh w1, [x0,962]
mov w0, 65535
cmp w20, w0
- beq .L2648
- b .L2638
-.L2647:
+ beq .L2743
+ b .L2733
+.L2742:
add x0, x19, :lo12:.LANCHOR2
mov w1, 64
-.L2789:
- strh w1, [x0,958]
- b .L2648
-.L2639:
+.L2884:
+ strh w1, [x0,962]
+ b .L2743
+.L2734:
mov w0, 80
- strh w0, [x22,958]
- b .L2648
-.L2638:
+ strh w0, [x22,962]
+ b .L2743
+.L2733:
add x5, x19, :lo12:.LANCHOR2
ubfiz x4, x20, 1, 32
- adrp x0, .LC151
+ adrp x0, .LC152
mov w1, w20
- add x0, x0, :lo12:.LC151
- ldr x3, [x5,1184]
- ldr x6, [x5,1168]
- ldrh w2, [x5,3600]
+ add x0, x0, :lo12:.LC152
+ ldr x3, [x5,1192]
+ ldr x6, [x5,1176]
+ ldrh w2, [x5,3608]
ldrh w3, [x3,x4]
- ldrh w5, [x5,956]
+ ldrh w5, [x5,960]
ldrh w4, [x6,x4]
bl printk
-.L2648:
+.L2743:
bl FtlGcReFreshBadBlk
- b .L2636
-.L2791:
+ b .L2731
+.L2886:
mov w20, w0
- b .L2636
-.L2764:
+ b .L2731
+.L2859:
mov w0, w2
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -18087,145 +18439,145 @@ ftl_do_gc:
.type FtlCacheWriteBack, %function
FtlCacheWriteBack:
stp x29, x30, [sp, -112]!
- adrp x0, .LANCHOR5-144
+ adrp x0, .LANCHOR5-128
add x29, sp, 0
stp x19, x20, [sp,16]
adrp x19, .LANCHOR2
- ldr x20, [x0,#:lo12:.LANCHOR5-144]
+ ldr x20, [x0,#:lo12:.LANCHOR5-128]
add x0, x19, :lo12:.LANCHOR2
stp x21, x22, [sp,32]
stp x23, x24, [sp,48]
stp x25, x26, [sp,64]
stp x27, x28, [sp,80]
- ldr w22, [x0,1400]
- cbnz w22, .L2798
- ldr w1, [x0,972]
- cbz w1, .L2798
- adrp x0, .LANCHOR0+136
- ldrb w0, [x0,#:lo12:.LANCHOR0+136]
- cbz w0, .L2800
+ ldr w22, [x0,1408]
+ cbnz w22, .L2893
+ ldr w1, [x0,976]
+ cbz w1, .L2893
+ adrp x0, .LANCHOR0+4044
+ ldrb w0, [x0,#:lo12:.LANCHOR0+4044]
+ cbz w0, .L2895
ldrb w0, [x20,8]
cmp w0, 1
cset w22, eq
-.L2800:
+.L2895:
add x0, x19, :lo12:.LANCHOR2
ldrb w3, [x20,9]
- adrp x24, .LC153
+ adrp x24, .LC154
mov w2, w22
mov w23, 0
mov w25, 56
- ldr x0, [x0,1032]
- add x24, x24, :lo12:.LC153
+ ldr x0, [x0,1040]
+ add x24, x24, :lo12:.LC154
bl FlashProgPages
-.L2801:
+.L2896:
add x0, x19, :lo12:.LANCHOR2
- ldr w1, [x0,972]
+ ldr w1, [x0,976]
cmp w23, w1
- bcs .L2819
+ bcs .L2914
umull x21, w23, w25
- ldr x1, [x0,1032]
+ ldr x1, [x0,1040]
add x0, x1, x21
ldr w1, [x1,x21]
cmn w1, #1
- beq .L2822
+ beq .L2917
ldr w1, [x0,4]
- cbz w22, .L2836
+ cbz w22, .L2931
orr w1, w1, -2147483648
-.L2836:
+.L2931:
ldr w0, [x0,24]
mov w2, 1
str w1, [x29,108]
add x26, x19, :lo12:.LANCHOR2
add x1, x29, 108
bl log2phys
- ldr x0, [x26,1032]
+ ldr x0, [x26,1040]
add x21, x0, x21
ldr x0, [x21,16]
ldr w0, [x0,12]
cmn w0, #1
- beq .L2805
+ beq .L2900
lsr x0, x0, 10
bl P2V_block_in_plane
uxth w1, w0
ubfiz x0, x1, 1, 16
- ldr x2, [x26,1184]
+ ldr x2, [x26,1192]
mov w21, w1
ldrh w2, [x2,x0]
- cbnz w2, .L2806
+ cbnz w2, .L2901
mov x0, x24
bl printk
-.L2806:
+.L2901:
mov w0, w21
bl decrement_vpc_count
-.L2805:
+.L2900:
add w23, w23, 1
- b .L2801
-.L2838:
+ b .L2896
+.L2933:
mov w20, 16386
-.L2818:
+.L2913:
add x0, x19, :lo12:.LANCHOR2
- ldrh w0, [x0,962]
- cbz w0, .L2819
+ ldrh w0, [x0,966]
+ cbz w0, .L2914
mov w0, 1
mov w1, w0
bl ftl_do_gc
subs w20, w20, #1
- bne .L2818
-.L2819:
+ bne .L2913
+.L2914:
add x19, x19, :lo12:.LANCHOR2
- str wzr, [x19,972]
- b .L2798
-.L2822:
+ str wzr, [x19,976]
+ b .L2893
+.L2917:
adrp x25, .LANCHOR4
- adrp x26, .LC153
+ adrp x26, .LC154
mov w24, 0
mov w27, 56
add x25, x25, :lo12:.LANCHOR4
- add x26, x26, :lo12:.LC153
-.L2802:
+ add x26, x26, :lo12:.LC154
+.L2897:
add x0, x19, :lo12:.LANCHOR2
- ldr w1, [x0,972]
+ ldr w1, [x0,976]
cmp w24, w1
- bcs .L2838
+ bcs .L2933
umull x21, w24, w27
- ldr x0, [x0,1032]
+ ldr x0, [x0,1040]
mov w1, -1
mov w28, 1
str w1, [x0,x21]
-.L2808:
+.L2903:
add x23, x19, :lo12:.LANCHOR2
- ldr x0, [x23,1032]
+ ldr x0, [x23,1040]
add x1, x0, x21
ldr w0, [x0,x21]
cmn w0, #1
ldr w0, [x1,4]
- bne .L2839
+ bne .L2934
lsr x0, x0, 10
bl P2V_block_in_plane
ldrh w1, [x20]
cmp w1, w0, uxth
- bne .L2809
- ldr x2, [x23,1184]
+ bne .L2904
+ ldr x2, [x23,1192]
ubfiz x1, x1, 1, 16
ldrh w3, [x20,4]
ldrh w0, [x2,x1]
sub w0, w0, w3
strh w0, [x2,x1]
strb wzr, [x20,6]
- ldrh w0, [x23,818]
+ ldrh w0, [x23,824]
strh w0, [x20,2]
strh wzr, [x20,4]
-.L2809:
+.L2904:
ldrh w0, [x20,4]
- cbnz w0, .L2810
+ cbnz w0, .L2905
mov x0, x20
bl allocate_new_data_superblock
-.L2810:
+.L2905:
add x23, x19, :lo12:.LANCHOR2
- ldr w0, [x25,3552]
+ ldr w0, [x25,3568]
add w0, w0, 1
- str w0, [x25,3552]
- ldr x0, [x23,1032]
+ str w0, [x25,3568]
+ ldr x0, [x23,1040]
add x0, x0, x21
ldr w0, [x0,4]
lsr x0, x0, 10
@@ -18233,58 +18585,58 @@ FtlCacheWriteBack:
mov x0, x20
bl get_new_active_ppa
str w0, [x29,108]
- ldr x1, [x23,1032]
+ ldr x1, [x23,1040]
mov w2, w22
add x1, x1, x21
str w0, [x1,4]
mov w1, 1
- ldr x0, [x23,1032]
+ ldr x0, [x23,1040]
ldrb w3, [x20,9]
add x0, x0, x21
bl FlashProgPages
- ldr x0, [x23,1032]
+ ldr x0, [x23,1040]
ldr w0, [x0,x21]
cmn w0, #1
- bne .L2811
- str w28, [x23,1400]
-.L2811:
+ bne .L2906
+ str w28, [x23,1408]
+.L2906:
add x0, x19, :lo12:.LANCHOR2
- ldr w0, [x0,1400]
- cbz w0, .L2808
- b .L2798
-.L2839:
- cbz w22, .L2837
+ ldr w0, [x0,1408]
+ cbz w0, .L2903
+ b .L2893
+.L2934:
+ cbz w22, .L2932
orr w0, w0, -2147483648
-.L2837:
+.L2932:
str w0, [x29,108]
mov w2, 1
ldr w0, [x1,24]
add x23, x19, :lo12:.LANCHOR2
add x1, x29, 108
bl log2phys
- ldr x0, [x23,1032]
+ ldr x0, [x23,1040]
add x21, x0, x21
ldr x0, [x21,16]
ldr w0, [x0,12]
cmn w0, #1
- beq .L2815
+ beq .L2910
lsr x0, x0, 10
bl P2V_block_in_plane
uxth w1, w0
ubfiz x0, x1, 1, 16
- ldr x2, [x23,1184]
+ ldr x2, [x23,1192]
mov w21, w1
ldrh w2, [x2,x0]
- cbnz w2, .L2816
+ cbnz w2, .L2911
mov x0, x26
bl printk
-.L2816:
+.L2911:
mov w0, w21
bl decrement_vpc_count
-.L2815:
+.L2910:
add w24, w24, 1
- b .L2802
-.L2798:
+ b .L2897
+.L2893:
mov w0, 0
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -18298,17 +18650,17 @@ FtlCacheWriteBack:
.global FtlSysFlush
.type FtlSysFlush, %function
FtlSysFlush:
- adrp x0, .LANCHOR2+1400
+ adrp x0, .LANCHOR2+1408
stp x29, x30, [sp, -16]!
add x29, sp, 0
- ldr w0, [x0,#:lo12:.LANCHOR2+1400]
- cbnz w0, .L2841
+ ldr w0, [x0,#:lo12:.LANCHOR2+1408]
+ cbnz w0, .L2936
bl FtlCacheWriteBack
bl l2p_flush
mov w0, 1
bl FtlEctTblFlush
bl FtlVpcTblFlush
-.L2841:
+.L2936:
mov w0, 0
ldp x29, x30, [sp], 16
ret
@@ -18317,14 +18669,14 @@ FtlSysFlush:
.global FtlDeInit
.type FtlDeInit, %function
FtlDeInit:
- adrp x0, .LANCHOR1+3160
+ adrp x0, .LANCHOR1+3288
stp x29, x30, [sp, -16]!
add x29, sp, 0
- ldr w0, [x0,#:lo12:.LANCHOR1+3160]
+ ldr w0, [x0,#:lo12:.LANCHOR1+3288]
cmp w0, 1
- bne .L2843
+ bne .L2938
bl FtlSysFlush
-.L2843:
+.L2938:
mov w0, 0
ldp x29, x30, [sp], 16
ret
@@ -18367,73 +18719,73 @@ ftl_discard:
ldr w1, [x0,#:lo12:.LANCHOR0+4048]
mov w0, -1
cmp w2, w1
- bhi .L2847
+ bhi .L2942
cmp w19, 31
- bls .L2861
+ bls .L2956
adrp x22, .LANCHOR2
add x21, x22, :lo12:.LANCHOR2
- ldr w0, [x21,1400]
- cbnz w0, .L2861
+ ldr w0, [x21,1408]
+ cbnz w0, .L2956
bl FtlCacheWriteBack
- ldrh w1, [x21,824]
+ ldrh w1, [x21,830]
udiv w21, w20, w1
msub w20, w1, w21, w20
uxth w20, w20
- cbz w20, .L2850
+ cbz w20, .L2945
sub w1, w1, w20
add w21, w21, 1
cmp w1, w19
csel w1, w1, w19, ls
sub w19, w19, w1, uxth
-.L2850:
+.L2945:
mov w0, -1
adrp x23, .LANCHOR5
str w0, [x29,76]
-.L2851:
+.L2946:
add x20, x22, :lo12:.LANCHOR2
- ldrh w0, [x20,824]
+ ldrh w0, [x20,830]
cmp w19, w0
- bcc .L2862
+ bcc .L2957
mov w0, w21
add x1, x29, 72
mov w2, 0
bl log2phys
ldr w0, [x29,72]
cmn w0, #1
- beq .L2852
+ beq .L2947
add x1, x23, :lo12:.LANCHOR5
mov w2, 1
- ldr w0, [x1,-136]
+ ldr w0, [x1,-120]
add w0, w0, 1
- str w0, [x1,-136]
- ldr w0, [x20,888]
+ str w0, [x1,-120]
+ ldr w0, [x20,892]
add x1, x29, 76
add w0, w0, 1
- str w0, [x20,888]
+ str w0, [x20,892]
mov w0, w21
bl log2phys
ldr w0, [x29,72]
lsr x0, x0, 10
bl P2V_block_in_plane
bl decrement_vpc_count
-.L2852:
+.L2947:
add x0, x22, :lo12:.LANCHOR2
add w21, w21, 1
- ldrh w0, [x0,824]
+ ldrh w0, [x0,830]
sub w19, w19, w0
- b .L2851
-.L2862:
+ b .L2946
+.L2957:
adrp x0, .LANCHOR5
add x0, x0, :lo12:.LANCHOR5
- ldr w1, [x0,-136]
+ ldr w1, [x0,-120]
cmp w1, 32
- bls .L2861
- str wzr, [x0,-136]
+ bls .L2956
+ str wzr, [x0,-120]
bl l2p_flush
bl FtlVpcTblFlush
-.L2861:
+.L2956:
mov w0, 0
-.L2847:
+.L2942:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldr x23, [sp,48]
@@ -18452,96 +18804,96 @@ FtlGcFreeTempBlock:
stp x21, x22, [sp,32]
stp x23, x24, [sp,48]
stp x25, x26, [sp,64]
- ldr w3, [x2,1400]
- ldrh w1, [x2,818]
- cbnz w3, .L2897
- ldrh w20, [x2,3704]
+ ldr w3, [x2,1408]
+ ldrh w1, [x2,824]
+ cbnz w3, .L2992
+ ldrh w20, [x2,3712]
mov w4, 65535
cmp w20, w4
- bne .L2866
-.L2875:
+ bne .L2961
+.L2970:
add x20, x19, :lo12:.LANCHOR2
adrp x21, .LANCHOR4
add x22, x21, :lo12:.LANCHOR4
mov w0, 65535
- add x23, x20, 3704
- ldrh w1, [x20,3704]
- str wzr, [x22,4008]
+ add x23, x20, 3712
+ ldrh w1, [x20,3712]
+ str wzr, [x22,4024]
cmp w1, w0
- beq .L2897
+ beq .L2992
bl FtlCacheWriteBack
mov w26, 12
ldrb w0, [x23,7]
- ldrh w3, [x20,818]
- ldr x1, [x20,1184]
- ldrh w2, [x20,3704]
+ ldrh w3, [x20,824]
+ ldr x1, [x20,1192]
+ ldrh w2, [x20,3712]
mul w0, w0, w3
strh w0, [x1,x2,lsl 1]
- ldrh w1, [x22,4018]
+ ldrh w1, [x22,4034]
mov w22, 0
- ldr w0, [x20,880]
+ ldr w0, [x20,884]
add w0, w1, w0
- str w0, [x20,880]
- b .L2876
-.L2866:
- cbz w0, .L2869
+ str w0, [x20,884]
+ b .L2971
+.L2961:
+ cbz w0, .L2964
adrp x0, .LANCHOR1
add x0, x0, :lo12:.LANCHOR1
- ldrh w5, [x0,3164]
+ ldrh w5, [x0,3292]
cmp w5, w4
- beq .L2870
-.L2871:
+ beq .L2965
+.L2966:
mov w1, 2
- b .L2869
-.L2870:
- strh w3, [x0,3164]
- ldrh w0, [x2,3600]
+ b .L2964
+.L2965:
+ strh w3, [x0,3292]
+ ldrh w0, [x2,3608]
cmp w0, 17
- bhi .L2871
-.L2869:
+ bhi .L2966
+.L2964:
add x21, x19, :lo12:.LANCHOR2
- add x0, x21, 3704
+ add x0, x21, 3712
bl FtlGcScanTempBlk
str w0, [x29,92]
cmn w0, #1
- beq .L2872
+ beq .L2967
ubfiz x20, x20, 1, 16
- ldr x1, [x21,1168]
+ ldr x1, [x21,1176]
ldrh w0, [x1,x20]
cmp w0, 4
- bls .L2873
+ bls .L2968
sub w0, w0, #5
strh w0, [x1,x20]
mov w0, 1
bl FtlEctTblFlush
-.L2873:
+.L2968:
adrp x0, .LANCHOR4
add x1, x0, :lo12:.LANCHOR4
mov x19, x0
- ldr w2, [x1,4008]
- cbnz w2, .L2874
- ldr w0, [x1,3552]
+ ldr w2, [x1,4024]
+ cbnz w2, .L2969
+ ldr w0, [x1,3568]
add w0, w0, 1
- str w0, [x1,3552]
+ str w0, [x1,3568]
ldr w0, [x29,92]
lsr w0, w0, 10
bl FtlBbmMapBadBlock
bl FtlBbmTblFlush
-.L2874:
+.L2969:
add x0, x19, :lo12:.LANCHOR4
- str wzr, [x0,4008]
+ str wzr, [x0,4024]
mov w0, 1
- b .L2865
-.L2872:
- adrp x0, .LANCHOR1+3164
+ b .L2960
+.L2967:
+ adrp x0, .LANCHOR1+3292
mov w1, 65535
- ldrh w2, [x0,#:lo12:.LANCHOR1+3164]
+ ldrh w2, [x0,#:lo12:.LANCHOR1+3292]
mov w0, 1
cmp w2, w1
- bne .L2865
- b .L2875
-.L2879:
- ldr x25, [x20,984]
+ bne .L2960
+ b .L2970
+.L2974:
+ ldr x25, [x20,992]
add x1, x29, 92
umull x24, w22, w26
mov w2, 0
@@ -18551,7 +18903,7 @@ FtlGcFreeTempBlock:
ldr w0, [x29,92]
ldr w1, [x25,x24]
cmp w0, w1
- bne .L2877
+ bne .L2972
lsr x0, x0, 10
bl P2V_block_in_plane
mov w24, w0
@@ -18560,88 +18912,88 @@ FtlGcFreeTempBlock:
mov w2, 1
bl log2phys
mov w0, w24
-.L2896:
+.L2991:
bl decrement_vpc_count
-.L2878:
+.L2973:
add w22, w22, 1
uxth w22, w22
-.L2876:
+.L2971:
add x0, x21, :lo12:.LANCHOR4
- ldrh w0, [x0,4018]
+ ldrh w0, [x0,4034]
cmp w0, w22
- bhi .L2879
- b .L2898
-.L2877:
+ bhi .L2974
+ b .L2993
+.L2972:
ldr w1, [x23,4]
cmp w0, w1
- beq .L2878
- ldrh w0, [x20,3704]
- b .L2896
-.L2898:
+ beq .L2973
+ ldrh w0, [x20,3712]
+ b .L2991
+.L2993:
mov w0, -1
adrp x20, .LANCHOR0
bl decrement_vpc_count
add x0, x20, :lo12:.LANCHOR0
- ldrb w0, [x0,136]
- cbz w0, .L2880
+ ldrb w0, [x0,4044]
+ cbz w0, .L2975
add x1, x19, :lo12:.LANCHOR2
- adrp x0, .LC154
- add x0, x0, :lo12:.LC154
- ldrh w1, [x1,3704]
+ adrp x0, .LC155
+ add x0, x0, :lo12:.LC155
+ ldrh w1, [x1,3712]
bl printk
-.L2880:
+.L2975:
add x1, x19, :lo12:.LANCHOR2
- ldrh w0, [x1,3704]
- ldr x1, [x1,1184]
+ ldrh w0, [x1,3712]
+ ldr x1, [x1,1192]
ubfiz x2, x0, 1, 16
ldrh w1, [x1,x2]
- cbz w1, .L2881
+ cbz w1, .L2976
bl INSERT_DATA_LIST
- b .L2882
-.L2881:
+ b .L2977
+.L2976:
bl INSERT_FREE_LIST
-.L2882:
+.L2977:
add x23, x21, :lo12:.LANCHOR4
add x22, x19, :lo12:.LANCHOR2
mov w24, -1
- strh wzr, [x23,4018]
- strh w24, [x22,3704]
- strh wzr, [x23,4016]
+ strh wzr, [x23,4034]
+ strh w24, [x22,3712]
+ strh wzr, [x23,4032]
bl l2p_flush
bl FtlVpcTblFlush
- strh w24, [x23,3408]
- ldr w0, [x22,652]
- cbz w0, .L2883
- ldr w0, [x22,920]
+ strh w24, [x23,3424]
+ ldr w0, [x22,660]
+ cbz w0, .L2978
+ ldr w0, [x22,924]
cmp w0, 39
- bhi .L2883
- ldrh w0, [x23,3404]
- ldrh w1, [x22,3600]
+ bhi .L2978
+ ldrh w0, [x23,3420]
+ ldrh w1, [x22,3608]
cmp w1, w0
- bcs .L2897
+ bcs .L2992
lsl w0, w0, 1
- strh w0, [x22,956]
-.L2897:
+ strh w0, [x22,960]
+.L2992:
mov w0, 0
- b .L2865
-.L2883:
+ b .L2960
+.L2978:
add x21, x21, :lo12:.LANCHOR4
add x19, x19, :lo12:.LANCHOR2
- ldrh w1, [x21,3404]
- ldrh w0, [x19,3600]
+ ldrh w1, [x21,3420]
+ ldrh w0, [x19,3608]
add w2, w1, w1, lsl 1
cmp w0, w2, lsr 2
- ble .L2897
+ ble .L2992
add x20, x20, :lo12:.LANCHOR0
- ldrb w0, [x20,136]
- cbz w0, .L2884
+ ldrb w0, [x20,4044]
+ cbz w0, .L2979
sub w1, w1, #2
- strh w1, [x19,956]
- b .L2897
-.L2884:
+ strh w1, [x19,960]
+ b .L2992
+.L2979:
mov w1, 20
- strh w1, [x19,956]
-.L2865:
+ strh w1, [x19,960]
+.L2960:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -18658,21 +19010,21 @@ FtlGcPageRecovery:
stp x19, x20, [sp,16]
adrp x19, .LANCHOR2
add x19, x19, :lo12:.LANCHOR2
- add x20, x19, 3704
+ add x20, x19, 3712
mov x0, x20
- ldrh w1, [x19,818]
+ ldrh w1, [x19,824]
bl FtlGcScanTempBlk
- ldrh w1, [x19,3706]
- ldrh w0, [x19,818]
+ ldrh w1, [x19,3714]
+ ldrh w0, [x19,824]
cmp w1, w0
- bcc .L2899
- add x0, x19, 3752
+ bcc .L2994
+ add x0, x19, 3760
bl FtlMapBlkWriteDumpData
mov w0, 0
bl FtlGcFreeTempBlock
- adrp x0, .LANCHOR4+4008
- str wzr, [x0,#:lo12:.LANCHOR4+4008]
-.L2899:
+ adrp x0, .LANCHOR4+4024
+ str wzr, [x0,#:lo12:.LANCHOR4+4024]
+.L2994:
ldp x19, x20, [sp,16]
ldp x29, x30, [sp], 32
ret
@@ -18682,14 +19034,14 @@ FtlGcPageRecovery:
.type FtlPowerLostRecovery, %function
FtlPowerLostRecovery:
stp x29, x30, [sp, -32]!
- adrp x0, .LANCHOR4+4064
+ adrp x0, .LANCHOR4+4080
add x29, sp, 0
stp x19, x20, [sp,16]
adrp x19, .LANCHOR2
- str wzr, [x0,#:lo12:.LANCHOR4+4064]
+ str wzr, [x0,#:lo12:.LANCHOR4+4080]
add x19, x19, :lo12:.LANCHOR2
- add x20, x19, 3608
- add x19, x19, 3656
+ add x20, x19, 3616
+ add x19, x19, 3664
mov x0, x20
bl FtlRecoverySuperblock
mov x0, x20
@@ -18719,22 +19071,22 @@ FtlSysBlkInit:
stp x21, x22, [sp,32]
add x0, x20, :lo12:.LANCHOR4
add x22, x19, :lo12:.LANCHOR2
- strh w1, [x0,4058]
- strh wzr, [x0,4060]
- ldrh w0, [x22,752]
+ strh w1, [x0,4074]
+ strh wzr, [x0,4076]
+ ldrh w0, [x22,760]
bl FtlFreeSysBlkQueueInit
bl FtlScanSysBlk
- ldrh w1, [x22,3896]
+ ldrh w1, [x22,3904]
mov w0, 65535
cmp w1, w0
- bne .L2903
-.L2905:
+ bne .L2998
+.L3000:
mov w21, -1
- b .L2904
-.L2903:
+ b .L2999
+.L2998:
bl FtlLoadSysInfo
mov w21, w0
- cbnz w0, .L2905
+ cbnz w0, .L3000
bl FtlLoadMapInfo
bl FtlLoadVonderInfo
bl Ftl_load_ext_data
@@ -18744,84 +19096,84 @@ FtlSysBlkInit:
bl FtlPowerLostRecovery
mov w0, 1
bl FtlUpdateVaildLpn
- ldrh w2, [x22,858]
+ ldrh w2, [x22,862]
mov x1, 0
- ldr x0, [x22,1264]
-.L2906:
+ ldr x0, [x22,1272]
+.L3001:
cmp w1, w2
mov w3, w1
- bge .L2910
+ bge .L3005
add x4, x0, x1, lsl 4
add x1, x1, 1
ldr w4, [x4,4]
- tbz w4, #31, .L2906
-.L2910:
+ tbz w4, #31, .L3001
+.L3005:
add x0, x19, :lo12:.LANCHOR2
cmp w3, w2
- ldrh w1, [x0,3548]
+ ldrh w1, [x0,3556]
add w1, w1, 1
- strh w1, [x0,3548]
- blt .L2907
+ strh w1, [x0,3556]
+ blt .L3002
add x20, x20, :lo12:.LANCHOR4
- ldrh w0, [x20,4060]
- cbz w0, .L2911
-.L2907:
+ ldrh w0, [x20,4076]
+ cbz w0, .L3006
+.L3002:
add x1, x19, :lo12:.LANCHOR2
- ldrh w2, [x1,3608]
- ldr x4, [x1,1184]
+ ldrh w2, [x1,3616]
+ ldr x4, [x1,1192]
lsl x2, x2, 1
- ldrh w5, [x1,3612]
+ ldrh w5, [x1,3620]
ldrh w3, [x4,x2]
sub w3, w3, w5
strh w3, [x4,x2]
- strb wzr, [x1,3614]
- ldrh w3, [x1,3656]
- ldrh w2, [x1,818]
+ strb wzr, [x1,3622]
+ ldrh w3, [x1,3664]
+ ldrh w2, [x1,824]
lsl x3, x3, 1
- ldr x4, [x1,1184]
- strh w2, [x1,3610]
- strh wzr, [x1,3612]
- ldrh w5, [x1,3660]
+ ldr x4, [x1,1192]
+ strh w2, [x1,3618]
+ strh wzr, [x1,3620]
+ ldrh w5, [x1,3668]
ldrh w0, [x4,x3]
sub w0, w0, w5
strh w0, [x4,x3]
- strb wzr, [x1,3662]
- ldrh w0, [x1,818]
- strh w0, [x1,3658]
- ldrh w0, [x1,3550]
- strh wzr, [x1,3660]
+ strb wzr, [x1,3670]
+ ldrh w0, [x1,824]
+ strh w0, [x1,3666]
+ ldrh w0, [x1,3558]
+ strh wzr, [x1,3668]
add w0, w0, 1
- strh w0, [x1,3550]
+ strh w0, [x1,3558]
bl l2p_flush
bl FtlVpcTblFlush
bl FtlVpcTblFlush
-.L2911:
+.L3006:
add x0, x19, :lo12:.LANCHOR2
- ldrh w0, [x0,3548]
+ ldrh w0, [x0,3556]
and w0, w0, 31
- cbnz w0, .L2912
+ cbnz w0, .L3007
bl FtlVpcCheckAndModify
-.L2912:
+.L3007:
add x19, x19, :lo12:.LANCHOR2
mov w1, 65535
- add x22, x19, 3608
- ldrh w0, [x19,3608]
+ add x22, x19, 3616
+ ldrh w0, [x19,3616]
cmp w0, w1
- beq .L2904
- ldrh w1, [x19,3612]
- cbnz w1, .L2904
- ldrh w1, [x19,3660]
- add x20, x19, 3656
- cbnz w1, .L2904
+ beq .L2999
+ ldrh w1, [x19,3620]
+ cbnz w1, .L2999
+ ldrh w1, [x19,3668]
+ add x20, x19, 3664
+ cbnz w1, .L2999
bl FtlGcRefreshOpenBlock
- ldrh w0, [x19,3656]
+ ldrh w0, [x19,3664]
bl FtlGcRefreshOpenBlock
bl FtlVpcTblFlush
mov x0, x22
bl allocate_new_data_superblock
mov x0, x20
bl allocate_new_data_superblock
-.L2904:
+.L2999:
mov w0, w21
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -18839,52 +19191,52 @@ FtlLowFormat:
str x23, [sp,48]
add x20, x19, :lo12:.LANCHOR2
stp x21, x22, [sp,32]
- ldr w21, [x20,1400]
- cbnz w21, .L2920
- ldrh w2, [x20,856]
+ ldr w21, [x20,1408]
+ cbnz w21, .L3015
+ ldrh w2, [x20,860]
mov w1, w21
- ldr x0, [x20,1248]
+ ldr x0, [x20,1256]
lsl w2, w2, 2
bl ftl_memset
- ldrh w2, [x20,856]
+ ldrh w2, [x20,860]
mov w1, w21
- ldr x0, [x20,1240]
+ ldr x0, [x20,1248]
lsl w2, w2, 2
bl ftl_memset
- str w21, [x20,872]
- ldrh w0, [x20,752]
str w21, [x20,876]
+ ldrh w0, [x20,760]
+ str w21, [x20,880]
bl FtlFreeSysBlkQueueInit
bl FtlLoadBbt
- cbz w0, .L2921
+ cbz w0, .L3016
bl FtlMakeBbt
-.L2921:
+.L3016:
mov w0, 0
-.L2922:
+.L3017:
add x1, x19, :lo12:.LANCHOR2
- ldrh w2, [x1,824]
+ ldrh w2, [x1,830]
cmp w0, w2, lsl 7
- bge .L2949
+ bge .L3044
ubfiz x3, x0, 2, 16
- ldr x4, [x1,1088]
+ ldr x4, [x1,1096]
mvn w2, w0
orr w2, w0, w2, lsl 16
str w2, [x4,x3]
add w0, w0, 1
- ldr x2, [x1,1096]
+ ldr x2, [x1,1104]
mov w1, 23752
movk w1, 0xa0f, lsl 16
uxth w0, w0
str w1, [x2,x3]
- b .L2922
-.L2949:
- ldrh w21, [x1,756]
+ b .L3017
+.L3044:
+ ldrh w21, [x1,764]
mov w20, 0
-.L2924:
+.L3019:
add x22, x19, :lo12:.LANCHOR2
- ldrh w0, [x22,758]
+ ldrh w0, [x22,766]
cmp w0, w21
- bls .L2950
+ bls .L3045
mov w0, w21
mov w1, 1
add w21, w21, 1
@@ -18892,40 +19244,40 @@ FtlLowFormat:
add w0, w20, w0
uxth w21, w21
uxth w20, w0
- b .L2924
-.L2950:
- ldrh w0, [x22,748]
+ b .L3019
+.L3045:
+ ldrh w0, [x22,756]
sub w1, w20, #3
cmp w1, w0, lsl 1
- bge .L2926
-.L2930:
+ bge .L3021
+.L3025:
mov w20, 0
mov w21, w20
- b .L2927
-.L2926:
+ b .L3022
+.L3021:
udiv w20, w20, w0
- ldr w0, [x22,852]
+ ldr w0, [x22,856]
add w0, w20, w0
bl FtlSysBlkNumInit
- ldrh w0, [x22,752]
+ ldrh w0, [x22,760]
bl FtlFreeSysBlkQueueInit
- ldrh w20, [x22,756]
-.L2928:
+ ldrh w20, [x22,764]
+.L3023:
add x0, x19, :lo12:.LANCHOR2
- ldrh w0, [x0,758]
+ ldrh w0, [x0,766]
cmp w0, w20
- bls .L2930
+ bls .L3025
mov w0, w20
mov w1, 1
add w20, w20, 1
bl FtlLowFormatEraseBlock
uxth w20, w20
- b .L2928
-.L2927:
+ b .L3023
+.L3022:
add x0, x19, :lo12:.LANCHOR2
- ldrh w1, [x0,756]
+ ldrh w1, [x0,764]
cmp w1, w21
- bls .L2951
+ bls .L3046
mov w0, w21
mov w1, 0
add w21, w21, 1
@@ -18933,176 +19285,176 @@ FtlLowFormat:
add w0, w20, w0
uxth w21, w21
uxth w20, w0
- b .L2927
-.L2951:
- ldrh w1, [x0,758]
+ b .L3022
+.L3046:
+ ldrh w1, [x0,766]
adrp x21, .LANCHOR4
- ldrh w2, [x0,748]
+ ldrh w2, [x0,756]
add x6, x21, :lo12:.LANCHOR4
- str w1, [x0,944]
- ldr w1, [x0,760]
+ str w1, [x0,948]
+ ldr w1, [x0,768]
udiv w3, w1, w2
- str w3, [x0,1396]
+ str w3, [x0,1404]
ubfx x5, x3, 5, 16
add w4, w5, 36
- strh w4, [x6,3404]
+ strh w4, [x6,3420]
mov w4, 24
mul w4, w2, w4
cmp w20, w4
- ble .L2932
+ ble .L3027
sub w1, w1, w20
udiv w1, w1, w2
- str w1, [x0,1396]
+ str w1, [x0,1404]
lsr w1, w1, 5
add w1, w1, 24
- strh w1, [x6,3404]
-.L2932:
+ strh w1, [x6,3420]
+.L3027:
add x0, x19, :lo12:.LANCHOR2
- ldr w0, [x0,652]
+ ldr w0, [x0,660]
cmp w0, 1
- bne .L2933
+ bne .L3028
add x1, x21, :lo12:.LANCHOR4
udiv w0, w20, w2
- ldrh w4, [x1,3404]
+ ldrh w4, [x1,3420]
add w0, w4, w0
add w0, w4, w0, asr 2
- strh w0, [x1,3404]
-.L2933:
+ strh w0, [x1,3420]
+.L3028:
adrp x22, .LANCHOR0
add x0, x22, :lo12:.LANCHOR0
- ldrb w0, [x0,136]
- cbz w0, .L2934
+ ldrb w0, [x0,4044]
+ cbz w0, .L3029
add x1, x21, :lo12:.LANCHOR4
udiv w0, w20, w2
- ldrh w4, [x1,3404]
+ ldrh w4, [x1,3420]
add w0, w4, w0
add w0, w4, w0, asr 2
- strh w0, [x1,3404]
-.L2934:
+ strh w0, [x1,3420]
+.L3029:
add x6, x19, :lo12:.LANCHOR2
- ldrh w1, [x6,810]
- cbz w1, .L2936
+ ldrh w1, [x6,818]
+ cbz w1, .L3031
add x0, x21, :lo12:.LANCHOR4
- ldrh w4, [x0,3404]
+ ldrh w4, [x0,3420]
add w4, w4, w1, lsr 1
- strh w4, [x0,3404]
+ strh w4, [x0,3420]
mul w4, w1, w2
cmp w4, w20
- ble .L2936
+ ble .L3031
add w1, w1, 32
- str w3, [x6,1396]
+ str w3, [x6,1404]
add w1, w5, w1
- strh w1, [x0,3404]
-.L2936:
+ strh w1, [x0,3420]
+.L3031:
add x19, x19, :lo12:.LANCHOR2
add x20, x21, :lo12:.LANCHOR4
add x22, x22, :lo12:.LANCHOR0
mov w23, -1
- ldrh w0, [x20,3404]
- ldr w1, [x19,1396]
+ ldrh w0, [x20,3420]
+ ldr w1, [x19,1404]
sub w0, w1, w0
- ldrh w1, [x19,818]
+ ldrh w1, [x19,824]
mul w0, w0, w2
- str w0, [x20,3400]
+ str w0, [x20,3416]
mul w0, w0, w1
- ldrh w1, [x19,824]
- str w0, [x19,1396]
+ ldrh w1, [x19,830]
+ str w0, [x19,1404]
mul w0, w0, w1
str w0, [x22,4048]
bl FtlBbmTblFlush
- ldrh w2, [x19,758]
+ ldrh w2, [x19,766]
mov w1, 0
- ldr x0, [x19,1184]
+ ldr x0, [x19,1192]
lsl w2, w2, 1
bl ftl_memset
- strh w23, [x20,3408]
- strh wzr, [x20,3410]
+ strh w23, [x20,3424]
+ strh wzr, [x20,3426]
mov w0, 1
- strb wzr, [x20,3414]
+ strb wzr, [x20,3430]
mov w1, 255
- strb wzr, [x20,3416]
- add x20, x19, 3608
- ldrh w2, [x19,756]
+ strb wzr, [x20,3432]
+ add x20, x19, 3616
+ ldrh w2, [x19,764]
strb w0, [x20,8]
ldr x0, [x22,16]
lsr w2, w2, 3
- str wzr, [x19,3892]
+ str wzr, [x19,3900]
strh wzr, [x20,2]
strb wzr, [x20,6]
- strh wzr, [x19,3608]
+ strh wzr, [x19,3616]
bl ftl_memset
-.L2938:
+.L3033:
mov x0, x20
bl make_superblock
ldrb w0, [x20,7]
- cbnz w0, .L2939
+ cbnz w0, .L3034
ldrh w1, [x20]
- ldr x0, [x19,1184]
+ ldr x0, [x19,1192]
strh w23, [x0,x1,lsl 1]
ldrh w0, [x20]
add w0, w0, 1
strh w0, [x20]
- b .L2938
-.L2939:
- ldr w0, [x19,872]
+ b .L3033
+.L3034:
+ ldr w0, [x19,876]
mov w22, -1
str w0, [x20,12]
add w0, w0, 1
ldrh w1, [x20]
- str w0, [x19,872]
- ldr x0, [x19,1184]
+ str w0, [x19,876]
+ ldr x0, [x19,1192]
ldrh w2, [x20,4]
strh w2, [x0,x1,lsl 1]
- add x0, x19, 3656
- strh wzr, [x19,3658]
+ add x0, x19, 3664
+ strh wzr, [x19,3666]
ldrh w1, [x20]
mov x20, x0
- strb wzr, [x19,3662]
+ strb wzr, [x19,3670]
add w1, w1, 1
- strh w1, [x19,3656]
+ strh w1, [x19,3664]
mov w1, 1
- strb w1, [x19,3664]
-.L2940:
+ strb w1, [x19,3672]
+.L3035:
mov x0, x20
bl make_superblock
ldrb w0, [x20,7]
- cbnz w0, .L2941
+ cbnz w0, .L3036
ldrh w1, [x20]
- ldr x0, [x19,1184]
+ ldr x0, [x19,1192]
strh w22, [x0,x1,lsl 1]
ldrh w0, [x20]
add w0, w0, 1
strh w0, [x20]
- b .L2940
-.L2941:
- ldr w0, [x19,872]
+ b .L3035
+.L3036:
+ ldr w0, [x19,876]
add x21, x21, :lo12:.LANCHOR4
str w0, [x20,12]
add w0, w0, 1
ldrh w1, [x20]
- str w0, [x19,872]
- ldr x0, [x19,1184]
+ str w0, [x19,876]
+ ldr x0, [x19,1192]
ldrh w2, [x20,4]
mov w20, -1
strh w2, [x0,x1,lsl 1]
- strh w20, [x19,3704]
+ strh w20, [x19,3712]
bl FtlFreeSysBlkQueueOut
- strh w0, [x19,3896]
- ldr w0, [x21,3400]
- strh w0, [x19,3902]
- ldr w0, [x19,872]
- str w0, [x19,3904]
+ strh w0, [x19,3904]
+ ldr w0, [x21,3416]
+ strh w0, [x19,3910]
+ ldr w0, [x19,876]
+ str w0, [x19,3912]
add w0, w0, 1
- strh wzr, [x19,3898]
- strh w20, [x19,3900]
- str w0, [x19,872]
+ strh wzr, [x19,3906]
+ strh w20, [x19,3908]
+ str w0, [x19,876]
bl FtlVpcTblFlush
bl FtlSysBlkInit
- cbnz w0, .L2920
- adrp x0, .LANCHOR1+3160
+ cbnz w0, .L3015
+ adrp x0, .LANCHOR1+3288
mov w1, 1
- str w1, [x0,#:lo12:.LANCHOR1+3160]
-.L2920:
+ str w1, [x0,#:lo12:.LANCHOR1+3288]
+.L3015:
mov w0, 0
ldr x23, [sp,48]
ldp x19, x20, [sp,16]
@@ -19119,25 +19471,25 @@ FtlReInitForSDUpdata:
stp x19, x20, [sp,16]
adrp x19, .LANCHOR0
add x0, x19, :lo12:.LANCHOR0
- ldrb w0, [x0,136]
- cbz w0, .L2953
-.L2955:
+ ldrb w0, [x0,4044]
+ cbz w0, .L3048
+.L3050:
mov w0, 0
- b .L2954
-.L2953:
+ b .L3049
+.L3048:
adrp x0, RK29_NANDC_REG_BASE
ldr x0, [x0,#:lo12:RK29_NANDC_REG_BASE]
bl FlashInit
- cbnz w0, .L2955
+ cbnz w0, .L3050
bl FlashLoadFactorBbt
- cbz w0, .L2956
+ cbz w0, .L3051
bl FlashMakeFactorBbt
-.L2956:
+.L3051:
adrp x20, .LANCHOR2
add x0, x20, :lo12:.LANCHOR2
- ldr x0, [x0,688]
+ ldr x0, [x0,696]
bl FlashReadIdbDataRaw
- cbz w0, .L2957
+ cbz w0, .L3052
mov w1, 0
mov w2, 16
add x0, x29, 32
@@ -19146,39 +19498,39 @@ FtlReInitForSDUpdata:
ldr w2, [x29,32]
mov w1, w0
mov w4, 1
-.L2959:
+.L3054:
lsl w3, w4, w1
add w1, w1, 1
tst w3, w2
cset w3, ne
cmp w1, 16
add w0, w0, w3
- bne .L2959
+ bne .L3054
cmp w0, 6
- bhi .L2960
+ bhi .L3055
add x0, x19, :lo12:.LANCHOR0
- b .L2982
-.L2960:
+ b .L3077
+.L3055:
mov w1, 0
mov w4, 1
-.L2963:
+.L3058:
lsl w3, w4, w1
add w1, w1, 1
tst w3, w2
cset w3, ne
cmp w1, 24
add w0, w0, w3
- bne .L2963
+ bne .L3058
cmp w0, 17
add x0, x19, :lo12:.LANCHOR0
- bls .L2982
+ bls .L3077
mov w1, 36
-.L2982:
+.L3077:
strb w1, [x0,25]
add x0, x19, :lo12:.LANCHOR0
ldrb w1, [x0,25]
strh w1, [x0,4042]
-.L2957:
+.L3052:
adrp x0, .LC45
adrp x1, .LC138
add x1, x1, :lo12:.LC138
@@ -19190,27 +19542,27 @@ FtlReInitForSDUpdata:
add x0, x0, 4016
bl FtlConstantsInit
bl FtlVariablesInit
- ldrh w0, [x20,752]
+ ldrh w0, [x20,760]
bl FtlFreeSysBlkQueueInit
-.L2965:
+.L3060:
bl FtlLoadBbt
- cbz w0, .L2966
-.L2984:
+ cbz w0, .L3061
+.L3079:
bl FtlLowFormat
cmp w19, 3
- bhi .L2985
+ bhi .L3080
add w19, w19, 1
- b .L2965
-.L2985:
+ b .L3060
+.L3080:
mov w0, -1
- b .L2954
-.L2966:
+ b .L3049
+.L3061:
bl FtlSysBlkInit
- cbnz w0, .L2984
- adrp x1, .LANCHOR1+3160
+ cbnz w0, .L3079
+ adrp x1, .LANCHOR1+3288
mov w2, 1
- str w2, [x1,#:lo12:.LANCHOR1+3160]
-.L2954:
+ str w2, [x1,#:lo12:.LANCHOR1+3288]
+.L3049:
ldp x19, x20, [sp,16]
ldp x29, x30, [sp], 48
ret
@@ -19226,59 +19578,59 @@ Ftl_gc_temp_data_write_back:
str x23, [sp,48]
add x0, x19, :lo12:.LANCHOR2
stp x21, x22, [sp,32]
- ldr w1, [x0,1400]
- cbz w1, .L2987
-.L2990:
+ ldr w1, [x0,1408]
+ cbz w1, .L3082
+.L3085:
mov w0, 0
- b .L2988
-.L2987:
- adrp x1, .LANCHOR0+136
+ b .L3083
+.L3082:
+ adrp x1, .LANCHOR0+4044
adrp x22, .LANCHOR4
- ldrb w1, [x1,#:lo12:.LANCHOR0+136]
- cbz w1, .L2989
+ ldrb w1, [x1,#:lo12:.LANCHOR0+4044]
+ cbz w1, .L3084
add x1, x22, :lo12:.LANCHOR4
- ldr w1, [x1,3984]
- tbz x1, 0, .L2989
- ldrh w0, [x0,3708]
- cbnz w0, .L2990
-.L2989:
+ ldr w1, [x1,4000]
+ tbz x1, 0, .L3084
+ ldrh w0, [x0,3716]
+ cbnz w0, .L3085
+.L3084:
add x0, x19, :lo12:.LANCHOR2
add x1, x22, :lo12:.LANCHOR4
mov w2, 0
mov w21, 0
mov w3, w2
mov w23, 56
- ldr x0, [x0,1000]
- ldr w1, [x1,3984]
+ ldr x0, [x0,1008]
+ ldr w1, [x1,4000]
bl FlashProgPages
-.L2991:
+.L3086:
add x20, x22, :lo12:.LANCHOR4
- ldr w1, [x20,3984]
+ ldr w1, [x20,4000]
cmp w21, w1
- bcs .L3001
+ bcs .L3096
add x1, x19, :lo12:.LANCHOR2
umull x0, w21, w23
- ldr x2, [x1,1000]
+ ldr x2, [x1,1008]
add x3, x2, x0
ldr w2, [x2,x0]
cmn w2, #1
- bne .L2992
- ldrh w4, [x1,3704]
- ldr x3, [x1,1184]
+ bne .L3087
+ ldrh w4, [x1,3712]
+ ldr x3, [x1,1192]
strh wzr, [x3,x4,lsl 1]
- strh w2, [x1,3704]
- ldr x1, [x1,1000]
- ldr w2, [x20,3552]
+ strh w2, [x1,3712]
+ ldr x1, [x1,1008]
+ ldr w2, [x20,3568]
add x0, x1, x0
add w2, w2, 1
- str w2, [x20,3552]
+ str w2, [x20,3568]
ldr w0, [x0,4]
lsr w0, w0, 10
bl FtlBbmMapBadBlock
bl FtlBbmTblFlush
bl FtlGcPageVarInit
- b .L3000
-.L2992:
+ b .L3095
+.L3087:
ldr x2, [x3,16]
add w21, w21, 1
ldr w1, [x3,4]
@@ -19286,19 +19638,19 @@ Ftl_gc_temp_data_write_back:
ldr w0, [x2,12]
ldr w2, [x2,8]
bl FtlGcUpdatePage
- b .L2991
-.L3001:
+ b .L3086
+.L3096:
add x19, x19, :lo12:.LANCHOR2
- ldr x0, [x19,1000]
+ ldr x0, [x19,1008]
bl FtlGcBufFree
- str wzr, [x20,3984]
- ldrh w0, [x19,3708]
- cbnz w0, .L2990
+ str wzr, [x20,4000]
+ ldrh w0, [x19,3716]
+ cbnz w0, .L3085
mov w0, 1
bl FtlGcFreeTempBlock
-.L3000:
+.L3095:
mov w0, 1
-.L2988:
+.L3083:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldr x23, [sp,48]
@@ -19314,32 +19666,32 @@ Ftl_get_new_temp_ppa:
str x19, [sp,16]
adrp x19, .LANCHOR2
add x0, x19, :lo12:.LANCHOR2
- add x1, x0, 3704
- ldrh w2, [x0,3704]
+ add x1, x0, 3712
+ ldrh w2, [x0,3712]
mov w0, 65535
cmp w2, w0
- beq .L3003
+ beq .L3098
ldrh w0, [x1,4]
- cbnz w0, .L3004
-.L3003:
+ cbnz w0, .L3099
+.L3098:
bl FtlCacheWriteBack
mov w0, 0
bl FtlGcFreeTempBlock
add x0, x19, :lo12:.LANCHOR2
- add x0, x0, 3704
+ add x0, x0, 3712
strb wzr, [x0,8]
bl allocate_data_superblock
adrp x0, .LANCHOR4
add x0, x0, :lo12:.LANCHOR4
- strh wzr, [x0,4016]
- strh wzr, [x0,4018]
+ strh wzr, [x0,4032]
+ strh wzr, [x0,4034]
bl l2p_flush
mov w0, 0
bl FtlEctTblFlush
bl FtlVpcTblFlush
-.L3004:
+.L3099:
add x0, x19, :lo12:.LANCHOR2
- add x0, x0, 3704
+ add x0, x0, 3712
bl get_new_active_ppa
ldr x19, [sp,16]
ldp x29, x30, [sp], 32
@@ -19361,13 +19713,13 @@ ftl_read:
mov w20, w1
mov w28, w2
mov x25, x3
- bne .L3006
+ bne .L3101
add w0, w1, 256
mov w1, w2
mov x2, x3
bl FtlVendorPartRead
- b .L3007
-.L3006:
+ b .L3102
+.L3101:
add w0, w1, w2
str w0, [x29,188]
adrp x0, .LANCHOR0+4048
@@ -19375,30 +19727,30 @@ ftl_read:
ldr w1, [x0,#:lo12:.LANCHOR0+4048]
mov w0, -1
cmp w2, w1
- bhi .L3007
+ bhi .L3102
adrp x19, .LANCHOR2
adrp x21, .LANCHOR4
add x0, x19, :lo12:.LANCHOR2
sub w24, w2, #1
add x2, x21, :lo12:.LANCHOR4
- ldrh w1, [x0,824]
+ ldrh w1, [x0,830]
udiv w27, w20, w1
udiv w24, w24, w1
- ldr w1, [x2,3972]
+ ldr w1, [x2,3988]
add w1, w28, w1
sub w23, w24, w27
- str w1, [x2,3972]
+ str w1, [x2,3988]
add w23, w23, 1
- ldr w1, [x0,900]
+ ldr w1, [x0,904]
add w1, w23, w1
- str w1, [x0,900]
+ str w1, [x0,904]
mov w0, w27
mov w1, w24
bl FtlCacheMetchLpa
str x21, [x29,120]
- cbz w0, .L3008
+ cbz w0, .L3103
bl FtlCacheWriteBack
-.L3008:
+.L3103:
mov w26, 0
adrp x0, .LC56
add x0, x0, :lo12:.LC56
@@ -19407,27 +19759,27 @@ ftl_read:
mov w22, w26
str w26, [x29,172]
str x0, [x29,112]
-.L3009:
- cbz w23, .L3051
+.L3104:
+ cbz w23, .L3146
mov w0, w21
add x1, x29, 204
mov w2, 0
bl log2phys
ldr w3, [x29,204]
cmn w3, #1
- bne .L3049
+ bne .L3144
mov w3, 0
-.L3010:
+.L3105:
add x0, x19, :lo12:.LANCHOR2
- ldrh w0, [x0,824]
+ ldrh w0, [x0,830]
cmp w3, w0
- bcs .L3014
+ bcs .L3109
madd w0, w21, w0, w3
cmp w0, w20
- bcc .L3012
+ bcc .L3107
ldr w1, [x29,188]
cmp w0, w1
- bcs .L3012
+ bcs .L3107
sub w0, w0, w20
mov w1, 0
ubfiz x0, x0, 9, 23
@@ -19436,21 +19788,21 @@ ftl_read:
str x3, [x29,176]
bl ftl_memset
ldr x3, [x29,176]
-.L3012:
+.L3107:
add w3, w3, 1
- b .L3010
-.L3049:
+ b .L3105
+.L3144:
add x2, x19, :lo12:.LANCHOR2
mov w0, 56
cmp w21, w27
umull x1, w22, w0
- ldr x0, [x2,992]
+ ldr x0, [x2,1000]
add x0, x0, x1
str w3, [x0,4]
- ldrh w0, [x2,824]
- bne .L3015
- ldr x3, [x2,992]
- ldr x2, [x2,1088]
+ ldrh w0, [x2,830]
+ bne .L3110
+ ldr x3, [x2,1000]
+ ldr x2, [x2,1096]
add x3, x3, x1
str x2, [x3,8]
udiv w2, w20, w0
@@ -19461,60 +19813,60 @@ ftl_read:
csel w2, w2, w28, ls
str w2, [x29,184]
cmp w2, w0
- bne .L3016
+ bne .L3111
str x25, [x3,8]
- b .L3016
-.L3015:
+ b .L3111
+.L3110:
cmp w21, w24
- bne .L3017
- ldr x3, [x2,992]
- ldr x2, [x2,1096]
+ bne .L3112
+ ldr x3, [x2,1000]
+ ldr x2, [x2,1104]
add x3, x3, x1
ldr w4, [x29,188]
str x2, [x3,8]
mul w2, w21, w0
sub w26, w4, w2
cmp w26, w0
- bne .L3016
+ bne .L3111
sub w2, w2, w20
ubfiz x2, x2, 9, 23
add x2, x25, x2
str x2, [x3,8]
- b .L3016
-.L3017:
- ldr x2, [x2,992]
+ b .L3111
+.L3112:
+ ldr x2, [x2,1000]
mul w0, w21, w0
add x2, x2, x1
sub w0, w0, w20
ubfiz x0, x0, 9, 23
add x0, x25, x0
str x0, [x2,8]
-.L3016:
+.L3111:
add x2, x19, :lo12:.LANCHOR2
- ldr x0, [x2,992]
+ ldr x0, [x2,1000]
add x1, x0, x1
- ldrh w0, [x2,830]
- ldr x2, [x2,1120]
+ ldrh w0, [x2,836]
+ ldr x2, [x2,1128]
mul w0, w22, w0
str w21, [x1,24]
add w22, w22, 1
and x0, x0, 4294967292
add x0, x2, x0
str x0, [x1,16]
-.L3014:
+.L3109:
subs w23, w23, #1
add w21, w21, 1
- beq .L3018
+ beq .L3113
add x0, x19, :lo12:.LANCHOR2
- ldrh w0, [x0,748]
+ ldrh w0, [x0,756]
cmp w22, w0, lsl 3
- bne .L3009
-.L3018:
- cbz w22, .L3009
+ bne .L3104
+.L3113:
+ cbz w22, .L3104
add x0, x19, :lo12:.LANCHOR2
mov w1, w22
mov w2, 0
- ldr x0, [x0,992]
+ ldr x0, [x0,1000]
bl FlashReadPages
str xzr, [x29,176]
ldr x0, [x29,144]
@@ -19528,69 +19880,69 @@ ftl_read:
ldr x0, [x29,120]
add x0, x0, :lo12:.LANCHOR4
str x0, [x29,160]
-.L3020:
+.L3115:
ldr w0, [x29,176]
cmp w22, w0
- bls .L3052
+ bls .L3147
ldr x0, [x29,176]
add x2, x19, :lo12:.LANCHOR2
mov x1, 56
mul x8, x0, x1
- ldr x0, [x2,992]
+ ldr x0, [x2,1000]
add x0, x0, x8
ldr w1, [x0,24]
cmp w1, w27
- bne .L3021
+ bne .L3116
ldr x1, [x0,8]
- ldr x0, [x2,1088]
+ ldr x0, [x2,1096]
cmp x1, x0
- bne .L3022
+ bne .L3117
ldr x2, [x29,136]
mov x0, x25
str x8, [x29,104]
add x1, x1, x2
ldr w2, [x29,168]
- b .L3050
-.L3021:
+ b .L3145
+.L3116:
cmp w1, w24
- bne .L3022
+ bne .L3117
ldr x1, [x0,8]
- ldr x0, [x2,1096]
+ ldr x0, [x2,1104]
cmp x1, x0
- bne .L3022
- ldrh w0, [x2,824]
+ bne .L3117
+ ldrh w0, [x2,830]
ldr w2, [x29,132]
str x8, [x29,104]
mul w0, w24, w0
sub w0, w0, w20
ubfiz x0, x0, 9, 23
add x0, x25, x0
-.L3050:
+.L3145:
bl ftl_memcpy
ldr x8, [x29,104]
-.L3022:
+.L3117:
add x0, x19, :lo12:.LANCHOR2
- ldr x0, [x0,992]
+ ldr x0, [x0,1000]
add x2, x0, x8
ldr w1, [x0,x8]
cmn w1, #1
- bne .L3023
+ bne .L3118
ldr x0, [x29,160]
str w1, [x29,172]
- add x3, x0, 3456
- ldr w0, [x0,3528]
+ add x3, x0, 3472
+ ldr w0, [x0,3544]
add w0, w0, 1
str w0, [x3,72]
-.L3023:
+.L3118:
ldr x0, [x2,16]
ldr w1, [x2,24]
ldr w0, [x0,8]
cmp w1, w0
- beq .L3024
+ beq .L3119
ldr x0, [x29,160]
str x8, [x29,104]
- add x1, x0, 3456
- ldr w0, [x0,3528]
+ add x1, x0, 3472
+ ldr w0, [x0,3544]
add w0, w0, 1
str w0, [x1,72]
ldr x7, [x2,8]
@@ -19607,35 +19959,35 @@ ftl_read:
ldr w7, [x7]
bl printk
ldr x8, [x29,104]
-.L3024:
+.L3119:
add x0, x19, :lo12:.LANCHOR2
- ldr x0, [x0,992]
+ ldr x0, [x0,1000]
add x1, x0, x8
ldr w0, [x0,x8]
cmp w0, 256
- bne .L3025
+ bne .L3120
ldr w0, [x1,4]
lsr x0, x0, 10
bl P2V_block_in_plane
bl FtlGcRefreshBlock
-.L3025:
+.L3120:
ldr x0, [x29,176]
add x0, x0, 1
str x0, [x29,176]
- b .L3020
-.L3052:
+ b .L3115
+.L3147:
mov w22, 0
- b .L3009
-.L3051:
+ b .L3104
+.L3146:
add x19, x19, :lo12:.LANCHOR2
- ldrh w0, [x19,962]
- cbz w0, .L3028
+ ldrh w0, [x19,966]
+ cbz w0, .L3123
mov w0, w23
mov w1, 1
bl ftl_do_gc
-.L3028:
+.L3123:
ldr w0, [x29,172]
-.L3007:
+.L3102:
sub sp, x29, #16
ldp x19, x20, [sp,32]
ldp x21, x22, [sp,48]
@@ -19661,63 +20013,63 @@ FtlInit:
stp x19, x20, [sp,16]
adrp x19, .LANCHOR2
adrp x20, .LANCHOR0
- str w0, [x21,3160]
- adrp x0, .LANCHOR5-132
+ str w0, [x21,3288]
+ adrp x0, .LANCHOR5-116
add x19, x19, :lo12:.LANCHOR2
add x20, x20, :lo12:.LANCHOR0
- str wzr, [x0,#:lo12:.LANCHOR5-132]
+ str wzr, [x0,#:lo12:.LANCHOR5-116]
adrp x0, .LC45
add x0, x0, :lo12:.LC45
- str wzr, [x19,1400]
+ str wzr, [x19,1408]
bl printk
add x0, x20, 4016
bl FtlConstantsInit
bl FtlMemInit
bl FtlVariablesInit
- ldrh w0, [x19,752]
+ ldrh w0, [x19,760]
bl FtlFreeSysBlkQueueInit
bl FtlLoadBbt
- cbz w0, .L3054
- adrp x0, .LC155
- add x0, x0, :lo12:.LC155
- b .L3066
-.L3054:
- bl FtlSysBlkInit
- cbz w0, .L3056
+ cbz w0, .L3149
adrp x0, .LC156
add x0, x0, :lo12:.LC156
-.L3066:
+ b .L3161
+.L3149:
+ bl FtlSysBlkInit
+ cbz w0, .L3151
+ adrp x0, .LC157
+ add x0, x0, :lo12:.LC157
+.L3161:
adrp x1, .LANCHOR3
add x1, x1, :lo12:.LANCHOR3
add x1, x1, 96
bl printk
- b .L3055
-.L3056:
+ b .L3150
+.L3151:
mov w1, 1
- str w1, [x21,3160]
+ str w1, [x21,3288]
bl ftl_do_gc
- ldrh w0, [x19,3600]
+ ldrh w0, [x19,3608]
cmp w0, 15
- bhi .L3057
+ bhi .L3152
mov w19, 1024
-.L3058:
+.L3153:
mov w0, 1
mov w1, w0
bl ftl_do_gc
subs w19, w19, #1
- bne .L3058
- b .L3055
-.L3057:
- ldrb w0, [x20,136]
- cbz w0, .L3055
+ bne .L3153
+ b .L3150
+.L3152:
+ ldrb w0, [x20,4044]
+ cbz w0, .L3150
mov w19, 128
-.L3060:
+.L3155:
mov w0, 1
mov w1, w0
bl ftl_do_gc
subs w19, w19, #1
- bne .L3060
-.L3055:
+ bne .L3155
+.L3150:
mov w0, 0
ldr x21, [sp,32]
ldp x19, x20, [sp,16]
@@ -19743,31 +20095,31 @@ ftl_write:
stp x27, x28, [sp,80]
mov x22, x3
str x1, [x29,152]
- ldr w3, [x2,1400]
- cbnz w3, .L3068
+ ldr w3, [x2,1408]
+ cbnz w3, .L3163
cmp w4, 16
- bne .L3069
+ bne .L3164
add w0, w20, 256
mov w1, w21
mov x2, x22
bl FtlVendorPartWrite
- b .L3068
-.L3069:
+ b .L3163
+.L3164:
adrp x0, .LANCHOR0+4048
add w24, w20, w21
ldr w1, [x0,#:lo12:.LANCHOR0+4048]
mov w0, -1
cmp w24, w1
- bhi .L3068
+ bhi .L3163
adrp x5, .LANCHOR5
- ldrh w1, [x2,824]
+ ldrh w1, [x2,830]
add x26, x5, :lo12:.LANCHOR5
sub w24, w24, #1
mov w0, 2048
adrp x4, .LANCHOR4
udiv w23, w20, w1
add x3, x4, :lo12:.LANCHOR4
- str w0, [x26,-128]
+ str w0, [x26,-112]
cmp w21, w1, lsl 1
str x5, [x29,144]
str x4, [x29,112]
@@ -19775,30 +20127,30 @@ ftl_write:
str w0, [x29,200]
sub w28, w0, w23
add w25, w28, 1
- ldr w0, [x2,884]
+ ldr w0, [x2,888]
add w0, w25, w0
- str w0, [x2,884]
- ldr w0, [x3,3968]
+ str w0, [x2,888]
+ ldr w0, [x3,3984]
add w0, w21, w0
- str w0, [x3,3968]
- ldr w3, [x2,972]
+ str w0, [x3,3984]
+ ldr w3, [x2,976]
cset w0, cs
str w0, [x29,204]
- cbz w3, .L3071
+ cbz w3, .L3166
mov w0, 56
sub w3, w3, #1
umull x3, w3, w0
- ldr x0, [x2,1032]
+ ldr x0, [x2,1040]
add x3, x0, x3
ldr w0, [x3,24]
cmp w23, w0
- bne .L3072
- ldr w0, [x2,892]
+ bne .L3167
+ ldr w0, [x2,896]
add w0, w0, 1
- str w0, [x2,892]
- ldr w0, [x26,-124]
+ str w0, [x2,896]
+ ldr w0, [x26,-108]
add w0, w0, 1
- str w0, [x26,-124]
+ str w0, [x26,-108]
msub w0, w23, w1, w20
sub w1, w1, w0
ubfiz x0, x0, 9, 23
@@ -19810,87 +20162,87 @@ ftl_write:
mov w2, w25
mov x1, x22
bl ftl_memcpy
- cbnz w28, .L3073
- ldr w0, [x26,-124]
+ cbnz w28, .L3168
+ ldr w0, [x26,-108]
cmp w0, 2
- bgt .L3073
-.L3106:
+ bgt .L3168
+.L3201:
mov w0, 0
- b .L3068
-.L3073:
+ b .L3163
+.L3168:
add x22, x22, x25
sub w21, w21, w19
add w20, w20, w19
add w23, w23, 1
mov w25, w28
-.L3072:
+.L3167:
ldr x0, [x29,144]
add x0, x0, :lo12:.LANCHOR5
- str wzr, [x0,-124]
-.L3071:
+ str wzr, [x0,-108]
+.L3166:
ldr w1, [x29,200]
mov w0, w23
bl FtlCacheMetchLpa
- cbz w0, .L3074
+ cbz w0, .L3169
bl FtlCacheWriteBack
-.L3074:
+.L3169:
ldr x0, [x29,144]
ldr x1, [x29,152]
add x0, x0, :lo12:.LANCHOR5
str w23, [x29,192]
add x3, x1, :lo12:.LANCHOR2
- add x19, x3, 3608
+ add x19, x3, 3616
mov x24, x3
- str x19, [x0,-144]
- adrp x0, .LC157
- add x0, x0, :lo12:.LC157
+ str x19, [x0,-128]
+ adrp x0, .LC158
+ add x0, x0, :lo12:.LC158
str x19, [x29,176]
str x0, [x29,96]
-.L3075:
- cbz w25, .L3135
+.L3170:
+ cbz w25, .L3230
ldrh w0, [x19,4]
- cbnz w0, .L3076
+ cbnz w0, .L3171
ldr x1, [x29,176]
adrp x26, .LANCHOR1
cmp x19, x1
- bne .L3077
- add x0, x24, 3656
+ bne .L3172
+ add x0, x24, 3664
ldrh w19, [x0,4]
- cbnz w19, .L3078
+ cbnz w19, .L3173
bl allocate_new_data_superblock
add x0, x26, :lo12:.LANCHOR1
- str w19, [x0,3168]
-.L3078:
+ str w19, [x0,3296]
+.L3173:
ldr x0, [x29,176]
add x26, x26, :lo12:.LANCHOR1
- add x19, x24, 3656
+ add x19, x24, 3664
bl allocate_new_data_superblock
- ldr w0, [x26,3168]
- cbnz w0, .L3079
-.L3080:
+ ldr w0, [x26,3296]
+ cbnz w0, .L3174
+.L3175:
ldr x19, [x29,176]
- b .L3079
-.L3077:
+ b .L3174
+.L3172:
add x26, x26, :lo12:.LANCHOR1
- str w0, [x26,3168]
+ str w0, [x26,3296]
ldr x0, [x29,176]
ldrh w0, [x0,4]
- cbnz w0, .L3080
+ cbnz w0, .L3175
mov x0, x19
bl allocate_new_data_superblock
-.L3079:
+.L3174:
ldrh w0, [x19,4]
- cbnz w0, .L3081
+ cbnz w0, .L3176
mov x0, x19
bl allocate_new_data_superblock
-.L3081:
+.L3176:
ldr x0, [x29,144]
add x0, x0, :lo12:.LANCHOR5
- str x19, [x0,-144]
-.L3076:
- ldr w0, [x24,968]
+ str x19, [x0,-128]
+.L3171:
+ ldr w0, [x24,972]
mov x28, 0
- ldr w2, [x24,972]
+ ldr w2, [x24,976]
ldrh w1, [x19,4]
sub w0, w0, w2
cmp w1, w0
@@ -19903,28 +20255,28 @@ ftl_write:
str w0, [x29,108]
add w0, w21, w20
str w0, [x29,136]
-.L3082:
+.L3177:
ldr w1, [x29,192]
mov w0, w28
add w27, w1, w28
ldr w1, [x29,140]
cmp w28, w1
- bcs .L3136
+ bcs .L3231
ldrh w1, [x19,4]
- cbz w1, .L3112
+ cbz w1, .L3207
ldr w1, [x29,200]
cmp w27, w1
cset w7, eq
- cbz w0, .L3084
+ cbz w0, .L3179
ldr w1, [x29,108]
tst w7, w1
- beq .L3084
- ldrh w1, [x24,824]
+ beq .L3179
+ ldrh w1, [x24,830]
ldr w2, [x29,136]
msub w2, w27, w1, w2
cmp w2, w1
- bne .L3112
-.L3084:
+ bne .L3207
+.L3179:
add x1, x29, 212
mov w2, 0
mov w0, w27
@@ -19932,28 +20284,28 @@ ftl_write:
bl log2phys
mov x0, x19
bl get_new_active_ppa
- ldr w6, [x24,972]
+ ldr w6, [x24,976]
mov w5, 56
- ldr x2, [x24,1032]
+ ldr x2, [x24,1040]
str x5, [x29,184]
umull x1, w6, w5
add x2, x2, x1
str w0, [x2,4]
- ldrh w2, [x24,830]
- ldr x0, [x24,1032]
+ ldrh w2, [x24,836]
+ ldr x0, [x24,1040]
add x1, x0, x1
mul w0, w2, w6
and x0, x0, 4294967292
str x0, [x29,128]
- ldr x0, [x24,1136]
+ ldr x0, [x24,1144]
ldr x3, [x29,128]
str x0, [x29,120]
add x26, x0, x3
- ldrh w0, [x24,828]
+ ldrh w0, [x24,834]
str x26, [x1,16]
str w27, [x1,24]
mul w0, w0, w6
- ldr x6, [x24,1080]
+ ldr x6, [x24,1088]
and x0, x0, 4294967292
add x0, x6, x0
str x0, [x1,8]
@@ -19963,20 +20315,20 @@ ftl_write:
cmp w27, w23
cset w0, eq
str w0, [x29,196]
- cbnz w0, .L3115
+ cbnz w0, .L3210
ldr x7, [x29,160]
ldr x5, [x29,184]
- cbz w7, .L3085
+ cbz w7, .L3180
ldr w0, [x29,136]
- ldrh w2, [x24,824]
+ ldrh w2, [x24,830]
msub w2, w27, w2, w0
uxth w0, w2
str w0, [x29,184]
ldr w0, [x29,196]
str w0, [x29,160]
- b .L3088
-.L3115:
- ldrh w2, [x24,824]
+ b .L3183
+.L3210:
+ ldrh w2, [x24,830]
udiv w0, w20, w2
msub w0, w0, w2, w20
str w0, [x29,160]
@@ -19984,46 +20336,46 @@ ftl_write:
cmp w2, w21
csel w0, w2, w21, ls
str w0, [x29,184]
-.L3088:
- ldrh w0, [x24,824]
+.L3183:
+ ldrh w0, [x24,830]
ldr w1, [x29,184]
cmp w1, w0
- bne .L3089
+ bne .L3184
ldr w0, [x29,196]
mov x1, x22
- cbnz w0, .L3090
+ cbnz w0, .L3185
ldr w0, [x29,184]
mul w1, w0, w27
sub w1, w1, w20
ubfiz x1, x1, 9, 23
add x1, x22, x1
-.L3090:
+.L3185:
ldr w2, [x29,204]
mov w0, 56
- cbz w2, .L3091
- ldr w2, [x24,972]
+ cbz w2, .L3186
+ ldr w2, [x24,976]
umull x0, w2, w0
- ldr x2, [x24,1032]
+ ldr x2, [x24,1040]
add x0, x2, x0
- b .L3132
-.L3091:
- ldr w2, [x24,972]
+ b .L3227
+.L3186:
+ ldr w2, [x24,976]
umull x0, w2, w0
- ldr x2, [x24,1032]
+ ldr x2, [x24,1040]
add x0, x2, x0
ldr x0, [x0,8]
- b .L3133
-.L3089:
+ b .L3228
+.L3184:
ldr w0, [x29,212]
cmn w0, #1
- beq .L3093
+ beq .L3188
str w0, [x29,220]
mov w1, 56
- ldr w0, [x24,972]
+ ldr w0, [x24,976]
mov w2, 0
str w27, [x29,240]
umull x0, w0, w1
- ldr x1, [x24,1032]
+ ldr x1, [x24,1040]
add x0, x1, x0
ldr x1, [x0,8]
ldr x0, [x0,16]
@@ -20034,165 +20386,165 @@ ftl_write:
bl FlashReadPages
ldr w0, [x29,216]
cmn w0, #1
- bne .L3094
+ bne .L3189
ldr x0, [x29,112]
add x0, x0, :lo12:.LANCHOR4
- ldr w1, [x0,3528]
+ ldr w1, [x0,3544]
add w1, w1, 1
- str w1, [x0,3528]
- b .L3096
-.L3094:
+ str w1, [x0,3544]
+ b .L3191
+.L3189:
ldr w0, [x26,8]
cmp w0, w27
- beq .L3096
+ beq .L3191
ldr x0, [x29,112]
mov w2, w27
add x0, x0, :lo12:.LANCHOR4
- ldr w1, [x0,3528]
+ ldr w1, [x0,3544]
add w1, w1, 1
- str w1, [x0,3528]
+ str w1, [x0,3544]
ldr x0, [x29,96]
ldr w1, [x26,8]
bl printk
- b .L3096
-.L3093:
- ldr w0, [x24,972]
+ b .L3191
+.L3188:
+ ldr w0, [x24,976]
mov w1, 56
- ldrh w2, [x24,828]
+ ldrh w2, [x24,834]
umull x0, w0, w1
- ldr x1, [x24,1032]
+ ldr x1, [x24,1040]
add x0, x1, x0
mov w1, 0
ldr x0, [x0,8]
bl ftl_memset
-.L3096:
+.L3191:
ldr w1, [x29,184]
mov w0, 56
lsl w2, w1, 9
ldr w1, [x29,196]
- cbz w1, .L3097
- ldr w1, [x24,972]
+ cbz w1, .L3192
+ ldr w1, [x24,976]
umull x0, w1, w0
- ldr x1, [x24,1032]
+ ldr x1, [x24,1040]
add x1, x1, x0
ldr x0, [x29,160]
ubfiz x0, x0, 9, 23
ldr x1, [x1,8]
add x0, x1, x0
mov x1, x22
- b .L3134
-.L3097:
- ldr w1, [x24,972]
+ b .L3229
+.L3192:
+ ldr w1, [x24,976]
umull x0, w1, w0
- ldr x1, [x24,1032]
+ ldr x1, [x24,1040]
add x0, x1, x0
- ldrh w1, [x24,824]
+ ldrh w1, [x24,830]
mul w1, w27, w1
ldr x0, [x0,8]
sub w1, w1, w20
ubfiz x1, x1, 9, 23
add x1, x22, x1
- b .L3134
-.L3085:
+ b .L3229
+.L3180:
ldr w0, [x29,204]
- ldrh w1, [x24,824]
- ldr w2, [x24,972]
- cbz w0, .L3098
+ ldrh w1, [x24,830]
+ ldr w2, [x24,976]
+ cbz w0, .L3193
mul w1, w27, w1
umull x0, w2, w5
sub w1, w1, w20
- ldr x2, [x24,1032]
+ ldr x2, [x24,1040]
ubfiz x1, x1, 9, 23
add x0, x2, x0
add x1, x22, x1
-.L3132:
+.L3227:
str x1, [x0,8]
- b .L3092
-.L3098:
+ b .L3187
+.L3193:
umull x0, w2, w5
- ldr x2, [x24,1032]
+ ldr x2, [x24,1040]
mul w1, w27, w1
add x0, x2, x0
sub w1, w1, w20
ubfiz x1, x1, 9, 23
ldr x0, [x0,8]
add x1, x22, x1
-.L3133:
- ldrh w2, [x24,828]
-.L3134:
+.L3228:
+ ldrh w2, [x24,834]
+.L3229:
bl ftl_memcpy
-.L3092:
+.L3187:
ldr x1, [x29,120]
mov w0, -3947
ldr x2, [x29,128]
add x28, x28, 1
strh w0, [x1,x2]
str w27, [x26,8]
- ldr w0, [x24,876]
+ ldr w0, [x24,880]
str w0, [x26,4]
add w0, w0, 1
cmn w0, #1
csel w0, w0, wzr, ne
- str w0, [x24,876]
+ str w0, [x24,880]
ldr w0, [x29,212]
str w0, [x26,12]
ldrh w0, [x19]
strh w0, [x26,2]
- ldr w0, [x24,972]
+ ldr w0, [x24,976]
add w0, w0, 1
- str w0, [x24,972]
- b .L3082
-.L3136:
+ str w0, [x24,976]
+ b .L3177
+.L3231:
str w27, [x29,192]
mov x0, x1
- b .L3083
-.L3112:
+ b .L3178
+.L3207:
str w27, [x29,192]
-.L3083:
+.L3178:
sub w25, w25, w0
ldr w0, [x29,204]
- cbnz w0, .L3102
- ldr w1, [x24,972]
- ldr w0, [x24,968]
+ cbnz w0, .L3197
+ ldr w1, [x24,976]
+ ldr w0, [x24,972]
cmp w1, w0
- bcs .L3102
+ bcs .L3197
ldrh w0, [x19,4]
- cbz w0, .L3102
-.L3104:
+ cbz w0, .L3197
+.L3199:
str wzr, [x29,204]
- b .L3075
-.L3102:
+ b .L3170
+.L3197:
bl FtlCacheWriteBack
- str wzr, [x24,972]
+ str wzr, [x24,976]
cmp w25, 1
- bhi .L3075
- b .L3104
-.L3135:
+ bhi .L3170
+ b .L3199
+.L3230:
ldr w1, [x29,200]
mov w0, w25
sub w1, w1, w23
bl ftl_do_gc
ldr x0, [x29,152]
add x0, x0, :lo12:.LANCHOR2
- ldrh w1, [x0,3600]
+ ldrh w1, [x0,3608]
cmp w1, 31
- bhi .L3106
+ bhi .L3201
mov w1, 128
mov w19, 16
- strh w1, [x0,958]
- strh w1, [x0,956]
-.L3107:
+ strh w1, [x0,962]
+ strh w1, [x0,960]
+.L3202:
mov w0, 0
mov w1, 1
bl ftl_do_gc
ldr x0, [x29,152]
add x0, x0, :lo12:.LANCHOR2
- ldr w0, [x0,1400]
- cbnz w0, .L3106
+ ldr w0, [x0,1408]
+ cbnz w0, .L3201
subs w19, w19, #1
- bne .L3107
- b .L3106
-.L3068:
+ bne .L3202
+ b .L3201
+.L3163:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -20236,110 +20588,110 @@ ftl_sys_write:
.global ftl_fix_nand_power_lost_error
.type ftl_fix_nand_power_lost_error, %function
ftl_fix_nand_power_lost_error:
- adrp x0, .LANCHOR0+136
+ adrp x0, .LANCHOR0+4044
stp x29, x30, [sp, -128]!
add x29, sp, 0
- ldrb w0, [x0,#:lo12:.LANCHOR0+136]
+ ldrb w0, [x0,#:lo12:.LANCHOR0+4044]
stp x19, x20, [sp,16]
stp x21, x22, [sp,32]
stp x23, x24, [sp,48]
stp x25, x26, [sp,64]
- cbz w0, .L3139
+ cbz w0, .L3234
adrp x21, .LANCHOR4
adrp x19, .LANCHOR2
add x0, x21, :lo12:.LANCHOR4
add x20, x19, :lo12:.LANCHOR2
- adrp x24, .LC158
- add x26, x20, 3608
- add x25, x20, 3656
- ldrh w23, [x0,4058]
- add x0, x24, :lo12:.LC158
- ldr x2, [x20,1184]
+ adrp x24, .LC159
+ add x26, x20, 3616
+ add x25, x20, 3664
+ ldrh w23, [x0,4074]
+ add x0, x24, :lo12:.LC159
+ ldr x2, [x20,1192]
ubfiz x22, x23, 1, 16
mov w1, w23
ldrh w2, [x2,x22]
bl printk
- ldrh w0, [x20,3608]
+ ldrh w0, [x20,3616]
bl FtlGcRefreshOpenBlock
- ldrh w0, [x20,3656]
+ ldrh w0, [x20,3664]
mov w20, 4097
bl FtlGcRefreshOpenBlock
mov x0, x26
bl allocate_new_data_superblock
mov x0, x25
bl allocate_new_data_superblock
-.L3141:
+.L3236:
subs w20, w20, #1
- beq .L3145
+ beq .L3240
mov w0, 1
mov w1, w0
bl ftl_do_gc
add x0, x19, :lo12:.LANCHOR2
- ldr x0, [x0,1184]
+ ldr x0, [x0,1192]
ldrh w0, [x0,x22]
- cbnz w0, .L3141
-.L3145:
+ cbnz w0, .L3236
+.L3240:
add x20, x19, :lo12:.LANCHOR2
- add x0, x24, :lo12:.LC158
+ add x0, x24, :lo12:.LC159
mov w1, w23
- ldr x2, [x20,1184]
+ ldr x2, [x20,1192]
ldrh w2, [x2,x22]
bl printk
- ldr x0, [x20,1184]
+ ldr x0, [x20,1192]
ldrh w0, [x0,x22]
- cbnz w0, .L3143
+ cbnz w0, .L3238
add x0, x29, 80
strh w23, [x29,80]
bl make_superblock
mov x0, 0
- ldrh w5, [x20,748]
+ ldrh w5, [x20,756]
mov w6, 65535
mov w20, w0
mov w7, 56
-.L3146:
+.L3241:
cmp w5, w0, uxth
- bls .L3153
+ bls .L3248
add x1, x29, 80
add x1, x1, x0, lsl 1
ldrh w2, [x1,16]
cmp w2, w6
- beq .L3147
+ beq .L3242
add x4, x19, :lo12:.LANCHOR2
lsl w2, w2, 10
umull x1, w20, w7
add w20, w20, 1
- ldr x3, [x4,1016]
+ ldr x3, [x4,1024]
uxth w20, w20
add x3, x3, x1
str w2, [x3,4]
- ldr x2, [x4,1016]
+ ldr x2, [x4,1024]
add x1, x2, x1
str xzr, [x1,8]
str xzr, [x1,16]
-.L3147:
+.L3242:
add x0, x0, 1
- b .L3146
-.L3153:
+ b .L3241
+.L3248:
add x19, x19, :lo12:.LANCHOR2
- adrp x0, .LC159
+ adrp x0, .LC160
mov w1, w23
- add x0, x0, :lo12:.LC159
- ldr x2, [x19,1184]
+ add x0, x0, :lo12:.LC160
+ ldr x2, [x19,1192]
ldrh w2, [x2,x22]
bl printk
- ldr x0, [x19,1016]
+ ldr x0, [x19,1024]
mov w1, 0
mov w2, w20
bl FlashEraseBlocks
- ldr x0, [x19,1016]
+ ldr x0, [x19,1024]
mov w1, 1
mov w2, w20
bl FlashEraseBlocks
-.L3143:
+.L3238:
add x21, x21, :lo12:.LANCHOR4
mov w0, -1
- strh w0, [x21,4058]
-.L3139:
+ strh w0, [x21,4074]
+.L3234:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -20515,7 +20867,6 @@ ftl_fix_nand_power_lost_error:
.global c_ftl_nand_ext_blk_pre_plane
.global c_ftl_nand_blk_pre_plane
.global c_ftl_nand_planes_num
- .global c_ftl_nand_blks_per_die_shift
.global c_ftl_nand_blks_per_die
.global c_ftl_nand_planes_per_die
.global c_ftl_nand_die_num
@@ -20532,6 +20883,7 @@ ftl_fix_nand_power_lost_error:
.global gNandcVer
.global gNandChipMap
.global gNandIDataBuf
+ .global idb_flash_slc_mode
.global FlashDdrTunningReadCount
.global FlashWaitBusyScheduleEn
.global gNandPhyInfo
@@ -20575,33 +20927,33 @@ ftl_fix_nand_power_lost_error:
.section .rodata
.align 3
.LANCHOR3 = . + 0
- .type __func__.19520, %object
- .size __func__.19520, 11
-__func__.19520:
+ .type __func__.19578, %object
+ .size __func__.19578, 11
+__func__.19578:
.string "FtlMemInit"
.zero 5
- .type __func__.20261, %object
- .size __func__.20261, 12
-__func__.20261:
+ .type __func__.20320, %object
+ .size __func__.20320, 12
+__func__.20320:
.string "FtlCheckVpc"
.zero 4
- .type __func__.20293, %object
- .size __func__.20293, 17
-__func__.20293:
+ .type __func__.20352, %object
+ .size __func__.20352, 17
+__func__.20352:
.string "FtlDumpBlockInfo"
.zero 7
- .type __func__.20312, %object
- .size __func__.20312, 16
-__func__.20312:
+ .type __func__.20371, %object
+ .size __func__.20371, 16
+__func__.20371:
.string "FtlScanAllBlock"
- .type __func__.20560, %object
- .size __func__.20560, 21
-__func__.20560:
+ .type __func__.20619, %object
+ .size __func__.20619, 21
+__func__.20619:
.string "FtlVpcCheckAndModify"
.zero 3
- .type __func__.19593, %object
- .size __func__.19593, 8
-__func__.19593:
+ .type __func__.19651, %object
+ .size __func__.19651, 8
+__func__.19651:
.string "FtlInit"
.section .rodata.str1.1,"aMS",%progbits,1
.LC0:
@@ -20881,48 +21233,50 @@ __func__.19593:
.LC137:
.string "free %d. [0x%x] 0x%x 0x%x\n"
.LC138:
- .string "FTL version: 5.0.50 20180905"
+ .string "FTL version: 5.0.53 20190107"
.LC139:
.string "swblk %x ,avg = %x max= %x vpc= %x,ec=%x ,max ec=%x\n"
.LC140:
- .string "FtlGcScanTempBlkError ID %x %x!!!!!!!\n"
+ .string "FtlGcScanTempBlk Error ID %x %x!!!!!!! \n"
.LC141:
- .string "FtlGcRefreshBlock 0x%x\n"
+ .string "FtlGcScanTempBlkError ID %x %x!!!!!!!\n"
.LC142:
- .string "FtlGcMarkBadPhyBlk %d 0x%x\n"
+ .string "FtlGcRefreshBlock 0x%x\n"
.LC143:
- .string "FtlGcFreeBadSuperBlk 0x%x\n"
+ .string "FtlGcMarkBadPhyBlk %d 0x%x\n"
.LC144:
- .string "decrement_vpc_count %x = %d\n"
+ .string "FtlGcFreeBadSuperBlk 0x%x\n"
.LC145:
- .string "decrement_vpc_count %x = %d in free list\n"
+ .string "decrement_vpc_count %x = %d\n"
.LC146:
- .string "RSB refresh addr %x\n"
+ .string "decrement_vpc_count %x = %d in free list\n"
.LC147:
- .string "spuer block %x vpn is 0\n "
+ .string "RSB refresh addr %x\n"
.LC148:
- .string "g_recovery_ppa %x ver %x\n "
+ .string "spuer block %x vpn is 0\n "
.LC149:
- .string "FtlCheckVpc %x = %x %x\n"
+ .string "g_recovery_ppa %x ver %x\n "
.LC150:
- .string "%d GC datablk = %x vpc %x %x\n"
+ .string "FtlCheckVpc %x = %x %x\n"
.LC151:
- .string "SWL %x, FSB = %x vpc= %x,ec=%x th=%x\n"
+ .string "%d GC datablk = %x vpc %x %x\n"
.LC152:
- .string "g_gc_superblock_free %x %x %x %x %x\n"
+ .string "SWL %x, FSB = %x vpc= %x,ec=%x th=%x\n"
.LC153:
- .string "Ftlwrite decrement_vpc_count %x = %d\n"
+ .string "g_gc_superblock_free %x %x %x %x %x\n"
.LC154:
- .string "GC des block %x done\n"
+ .string "Ftlwrite decrement_vpc_count %x = %d\n"
.LC155:
- .string "...%s: no bad block mapping table, format device\n"
+ .string "GC des block %x done\n"
.LC156:
- .string "...%s FtlSysBlkInit error ,format device!\n"
+ .string "...%s: no bad block mapping table, format device\n"
.LC157:
- .string "FtlWrite: lpa error:%x %x\n"
+ .string "...%s FtlSysBlkInit error ,format device!\n"
.LC158:
- .string "fix power lost blk = %x vpc=%x\n"
+ .string "FtlWrite: lpa error:%x %x\n"
.LC159:
+ .string "fix power lost blk = %x vpc=%x\n"
+.LC160:
.string "erase power lost blk = %x vpc=%x\n"
.data
.align 3
@@ -21058,6 +21412,232 @@ random_seed:
.hword 28406
.hword 17598
.hword 28087
+ .type ToshibaA19RefValue, %object
+ .size ToshibaA19RefValue, 45
+ToshibaA19RefValue:
+ .byte 4
+ .byte 5
+ .byte 6
+ .byte 7
+ .byte 13
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 4
+ .byte 4
+ .byte 124
+ .byte 126
+ .byte 0
+ .byte 0
+ .byte 124
+ .byte 120
+ .byte 120
+ .byte 0
+ .byte 124
+ .byte 118
+ .byte 116
+ .byte 114
+ .byte 0
+ .byte 8
+ .byte 8
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 11
+ .byte 126
+ .byte 118
+ .byte 116
+ .byte 0
+ .byte 16
+ .byte 118
+ .byte 114
+ .byte 112
+ .byte 0
+ .byte 2
+ .byte 0
+ .byte 126
+ .byte 124
+ .byte 0
+ .zero 3
+ .type Toshiba15RefValue, %object
+ .size Toshiba15RefValue, 95
+Toshiba15RefValue:
+ .byte 4
+ .byte 5
+ .byte 6
+ .byte 7
+ .byte 13
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 2
+ .byte 4
+ .byte 2
+ .byte 0
+ .byte 0
+ .byte 8
+ .byte 8
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 124
+ .byte 0
+ .byte 124
+ .byte 124
+ .byte 0
+ .byte 122
+ .byte 0
+ .byte 122
+ .byte 122
+ .byte 0
+ .byte 11
+ .byte 126
+ .byte 118
+ .byte 116
+ .byte 0
+ .byte 120
+ .byte 2
+ .byte 120
+ .byte 122
+ .byte 0
+ .byte 126
+ .byte 4
+ .byte 126
+ .byte 122
+ .byte 0
+ .byte 16
+ .byte 118
+ .byte 114
+ .byte 112
+ .byte 0
+ .byte 118
+ .byte 4
+ .byte 118
+ .byte 120
+ .byte 0
+ .byte 4
+ .byte 4
+ .byte 4
+ .byte 118
+ .byte 0
+ .byte 2
+ .byte 0
+ .byte 126
+ .byte 124
+ .byte 0
+ .byte 6
+ .byte 10
+ .byte 6
+ .byte 2
+ .byte 0
+ .byte 116
+ .byte 124
+ .byte 116
+ .byte 118
+ .byte 0
+ .byte 4
+ .byte 4
+ .byte 124
+ .byte 126
+ .byte 0
+ .byte 0
+ .byte 124
+ .byte 120
+ .byte 120
+ .byte 0
+ .byte 124
+ .byte 118
+ .byte 116
+ .byte 114
+ .byte 0
+ .zero 1
+ .type ToshibaRefValue, %object
+ .size ToshibaRefValue, 8
+ToshibaRefValue:
+ .byte 0
+ .byte 4
+ .byte 124
+ .byte 120
+ .byte 116
+ .byte 8
+ .byte 12
+ .byte 112
+ .type SamsungRefValue, %object
+ .size SamsungRefValue, 64
+SamsungRefValue:
+ .byte -89
+ .byte -92
+ .byte -91
+ .byte -90
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 5
+ .byte 10
+ .byte 0
+ .byte 0
+ .byte 40
+ .byte 0
+ .byte -20
+ .byte -40
+ .byte -19
+ .byte -11
+ .byte -19
+ .byte -26
+ .byte 10
+ .byte 15
+ .byte 5
+ .byte 0
+ .byte 15
+ .byte 10
+ .byte -5
+ .byte -20
+ .byte -24
+ .byte -17
+ .byte -24
+ .byte -36
+ .byte -15
+ .byte -5
+ .byte -2
+ .byte -16
+ .byte 10
+ .byte 0
+ .byte -5
+ .byte -20
+ .byte -48
+ .byte -30
+ .byte -48
+ .byte -62
+ .byte 20
+ .byte 15
+ .byte -5
+ .byte -20
+ .byte -24
+ .byte -5
+ .byte -24
+ .byte -36
+ .byte 30
+ .byte 20
+ .byte -5
+ .byte -20
+ .byte -5
+ .byte -1
+ .byte -5
+ .byte -8
+ .byte 7
+ .byte 12
+ .byte 2
+ .byte 0
.type gNandParaInfo, %object
.size gNandParaInfo, 32
gNandParaInfo:
@@ -21084,7 +21664,7 @@ gNandParaInfo:
.byte 0
.zero 4
.type NandFlashParaTbl, %object
- .size NandFlashParaTbl, 2464
+ .size NandFlashParaTbl, 2592
NandFlashParaTbl:
.byte 6
.byte 44
@@ -21661,6 +22241,58 @@ NandFlashParaTbl:
.byte 5
.byte 44
.byte -124
+ .byte 68
+ .byte 50
+ .byte -86
+ .byte 0
+ .byte 4
+ .byte 1
+ .byte 32
+ .hword 512
+ .byte 2
+ .byte 1
+ .hword 2184
+ .hword 1479
+ .byte 5
+ .byte 19
+ .byte 60
+ .byte 32
+ .byte 1
+ .byte 0
+ .byte 4
+ .byte 0
+ .byte 1
+ .byte 0
+ .zero 4
+ .byte 5
+ .byte 44
+ .byte -124
+ .byte 68
+ .byte 52
+ .byte -86
+ .byte 0
+ .byte 4
+ .byte 1
+ .byte 32
+ .hword 512
+ .byte 2
+ .byte 1
+ .hword 2184
+ .hword 1479
+ .byte 5
+ .byte 19
+ .byte 60
+ .byte 32
+ .byte 1
+ .byte 0
+ .byte 4
+ .byte 0
+ .byte 1
+ .byte 0
+ .zero 4
+ .byte 5
+ .byte 44
+ .byte -124
.byte -60
.byte 52
.byte -86
@@ -21710,6 +22342,32 @@ NandFlashParaTbl:
.byte 1
.byte 0
.zero 4
+ .byte 5
+ .byte 44
+ .byte -124
+ .byte 100
+ .byte 60
+ .byte -87
+ .byte 0
+ .byte 4
+ .byte 1
+ .byte 32
+ .hword 512
+ .byte 2
+ .byte 2
+ .hword 1024
+ .hword 479
+ .byte 3
+ .byte 17
+ .byte 40
+ .byte 32
+ .byte 1
+ .byte 0
+ .byte 1
+ .byte 0
+ .byte 0
+ .byte 0
+ .zero 4
.byte 6
.byte -83
.byte -34
@@ -22049,6 +22707,32 @@ NandFlashParaTbl:
.byte 0
.zero 4
.byte 6
+ .byte -83
+ .byte 58
+ .byte 20
+ .byte 3
+ .byte 8
+ .byte 80
+ .byte 2
+ .byte 1
+ .byte 32
+ .hword 388
+ .byte 2
+ .byte 2
+ .hword 1362
+ .hword 473
+ .byte 9
+ .byte 8
+ .byte 40
+ .byte 32
+ .byte 3
+ .byte 1
+ .byte 3
+ .byte 0
+ .byte 0
+ .byte 0
+ .zero 4
+ .byte 6
.byte -119
.byte 100
.byte 68
@@ -22245,7 +22929,7 @@ NandFlashParaTbl:
.byte 1
.hword 1024
.hword 455
- .byte 3
+ .byte 4
.byte 17
.byte 40
.byte 32
@@ -23167,232 +23851,6 @@ NandOptPara:
.byte 0
.byte 0
.zero 14
- .type ToshibaA19RefValue, %object
- .size ToshibaA19RefValue, 45
-ToshibaA19RefValue:
- .byte 4
- .byte 5
- .byte 6
- .byte 7
- .byte 13
- .byte 0
- .byte 0
- .byte 0
- .byte 0
- .byte 0
- .byte 4
- .byte 4
- .byte 124
- .byte 126
- .byte 0
- .byte 0
- .byte 124
- .byte 120
- .byte 120
- .byte 0
- .byte 124
- .byte 118
- .byte 116
- .byte 114
- .byte 0
- .byte 8
- .byte 8
- .byte 0
- .byte 0
- .byte 0
- .byte 11
- .byte 126
- .byte 118
- .byte 116
- .byte 0
- .byte 16
- .byte 118
- .byte 114
- .byte 112
- .byte 0
- .byte 2
- .byte 0
- .byte 126
- .byte 124
- .byte 0
- .zero 3
- .type Toshiba15RefValue, %object
- .size Toshiba15RefValue, 95
-Toshiba15RefValue:
- .byte 4
- .byte 5
- .byte 6
- .byte 7
- .byte 13
- .byte 0
- .byte 0
- .byte 0
- .byte 0
- .byte 0
- .byte 0
- .byte 0
- .byte 0
- .byte 0
- .byte 0
- .byte 2
- .byte 4
- .byte 2
- .byte 0
- .byte 0
- .byte 8
- .byte 8
- .byte 0
- .byte 0
- .byte 0
- .byte 124
- .byte 0
- .byte 124
- .byte 124
- .byte 0
- .byte 122
- .byte 0
- .byte 122
- .byte 122
- .byte 0
- .byte 11
- .byte 126
- .byte 118
- .byte 116
- .byte 0
- .byte 120
- .byte 2
- .byte 120
- .byte 122
- .byte 0
- .byte 126
- .byte 4
- .byte 126
- .byte 122
- .byte 0
- .byte 16
- .byte 118
- .byte 114
- .byte 112
- .byte 0
- .byte 118
- .byte 4
- .byte 118
- .byte 120
- .byte 0
- .byte 4
- .byte 4
- .byte 4
- .byte 118
- .byte 0
- .byte 2
- .byte 0
- .byte 126
- .byte 124
- .byte 0
- .byte 6
- .byte 10
- .byte 6
- .byte 2
- .byte 0
- .byte 116
- .byte 124
- .byte 116
- .byte 118
- .byte 0
- .byte 4
- .byte 4
- .byte 124
- .byte 126
- .byte 0
- .byte 0
- .byte 124
- .byte 120
- .byte 120
- .byte 0
- .byte 124
- .byte 118
- .byte 116
- .byte 114
- .byte 0
- .zero 1
- .type ToshibaRefValue, %object
- .size ToshibaRefValue, 8
-ToshibaRefValue:
- .byte 0
- .byte 4
- .byte 124
- .byte 120
- .byte 116
- .byte 8
- .byte 12
- .byte 112
- .type SamsungRefValue, %object
- .size SamsungRefValue, 64
-SamsungRefValue:
- .byte -89
- .byte -92
- .byte -91
- .byte -90
- .byte 0
- .byte 0
- .byte 0
- .byte 0
- .byte 5
- .byte 10
- .byte 0
- .byte 0
- .byte 40
- .byte 0
- .byte -20
- .byte -40
- .byte -19
- .byte -11
- .byte -19
- .byte -26
- .byte 10
- .byte 15
- .byte 5
- .byte 0
- .byte 15
- .byte 10
- .byte -5
- .byte -20
- .byte -24
- .byte -17
- .byte -24
- .byte -36
- .byte -15
- .byte -5
- .byte -2
- .byte -16
- .byte 10
- .byte 0
- .byte -5
- .byte -20
- .byte -48
- .byte -30
- .byte -48
- .byte -62
- .byte 20
- .byte 15
- .byte -5
- .byte -20
- .byte -24
- .byte -5
- .byte -24
- .byte -36
- .byte 30
- .byte 20
- .byte -5
- .byte -20
- .byte -5
- .byte -1
- .byte -5
- .byte -8
- .byte 7
- .byte 12
- .byte 2
- .byte 0
.type refValueDefault, %object
.size refValueDefault, 28
refValueDefault:
@@ -23512,11 +23970,6 @@ gNandChipMap:
.size gNandOptPara, 32
gNandOptPara:
.zero 32
- .type gFlashSlcMode, %object
- .size gFlashSlcMode, 1
-gFlashSlcMode:
- .zero 1
- .zero 3
.type slcPageToMlcPageTbl, %object
.size slcPageToMlcPageTbl, 512
slcPageToMlcPageTbl:
@@ -23546,6 +23999,7 @@ DieAddrs:
.size gDieOp, 192
gDieOp:
.zero 192
+ .zero 4
.type gpNandParaInfo, %object
.size gpNandParaInfo, 8
gpNandParaInfo:
@@ -23599,11 +24053,15 @@ NANDC_FMWAIT_SYN:
.size gNandPhyInfo, 28
gNandPhyInfo:
.zero 28
+ .type gFlashSlcMode, %object
+ .size gFlashSlcMode, 1
+gFlashSlcMode:
+ .zero 1
.type gNandFlashEccBits, %object
.size gNandFlashEccBits, 1
gNandFlashEccBits:
.zero 1
- .zero 3
+ .zero 2
.type g_MaxLbaSector, %object
.size g_MaxLbaSector, 4
g_MaxLbaSector:
@@ -23626,9 +24084,9 @@ read_retry_cur_offset:
gFlashInterfaceMode:
.zero 1
.zero 3
- .type g_nandc_version_data, %object
- .size g_nandc_version_data, 4
-g_nandc_version_data:
+ .type idb_flash_slc_mode, %object
+ .size idb_flash_slc_mode, 4
+idb_flash_slc_mode:
.zero 4
.type gFlashToggleModeEn, %object
.size gFlashToggleModeEn, 1
@@ -23643,6 +24101,11 @@ gBootDdrMode:
.size gNandcVer, 4
gNandcVer:
.zero 4
+ .type g_nandc_version_data, %object
+ .size g_nandc_version_data, 4
+g_nandc_version_data:
+ .zero 4
+ .zero 4
.type gMasterTempBuf, %object
.size gMasterTempBuf, 8
gMasterTempBuf:
@@ -23781,10 +24244,6 @@ c_ftl_vendor_part_size:
.size c_ftl_nand_blks_per_die, 2
c_ftl_nand_blks_per_die:
.zero 2
- .type c_ftl_nand_blks_per_die_shift, %object
- .size c_ftl_nand_blks_per_die_shift, 2
-c_ftl_nand_blks_per_die_shift:
- .zero 2
.type c_ftl_nand_page_pre_blk, %object
.size c_ftl_nand_page_pre_blk, 2
c_ftl_nand_page_pre_blk:
@@ -23817,7 +24276,6 @@ c_ftl_nand_byte_pre_oob:
.size c_ftl_nand_reserved_blks, 2
c_ftl_nand_reserved_blks:
.zero 2
- .zero 2
.type DeviceCapacity, %object
.size DeviceCapacity, 4
DeviceCapacity:
@@ -23991,6 +24449,7 @@ c_wr_page_buf_num:
.size g_wr_page_num, 4
g_wr_page_num:
.zero 4
+ .zero 4
.type p_gc_blk_tbl, %object
.size p_gc_blk_tbl, 8
p_gc_blk_tbl:
@@ -24241,14 +24700,14 @@ FtlUpdateVaildLpnCount:
g_VaildLpn:
.zero 4
.type gSysInfo, %object
- .size gSysInfo, 12
+ .size gSysInfo, 16
gSysInfo:
- .zero 12
+ .zero 16
.type g_totle_map_block, %object
.size g_totle_map_block, 2
g_totle_map_block:
.zero 2
- .zero 2
+ .zero 6
.type check_valid_page_count_table, %object
.size check_valid_page_count_table, 8192
check_valid_page_count_table:
diff --git a/drivers/rk_nand/rk_zftl_arm64.S b/drivers/rk_nand/rk_zftl_arm64.S
index 54c4a5c99d38..cca796acde11 100644
--- a/drivers/rk_nand/rk_zftl_arm64.S
+++ b/drivers/rk_nand/rk_zftl_arm64.S
@@ -5,7 +5,7 @@
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- * date: 2018-11-08
+ * date: 2018-11-28
* function: rk ftl v5 for rockchip soc base on arm v8 to support 3D/2D
* TLC and MLC.
*/
@@ -713,8 +713,8 @@ zftl_get_gc_node.part.12:
.size zftl_get_gc_node.part.12, .-zftl_get_gc_node.part.12
.section .text.unlikely
.align 2
- .type rk_simple_strtoull.constprop.29, %function
-rk_simple_strtoull.constprop.29:
+ .type rk_simple_strtoull.constprop.30, %function
+rk_simple_strtoull.constprop.30:
stp x29, x30, [sp, -64]!
add x29, sp, 0
stp x19, x20, [sp,16]
@@ -773,7 +773,7 @@ rk_simple_strtoull.constprop.29:
ldp x21, x22, [sp,32]
ldp x29, x30, [sp], 64
ret
- .size rk_simple_strtoull.constprop.29, .-rk_simple_strtoull.constprop.29
+ .size rk_simple_strtoull.constprop.30, .-rk_simple_strtoull.constprop.30
.text
.align 2
.global nand_flash_print_info
@@ -1321,41 +1321,50 @@ toshiba_set_rr_para:
hynix_set_rr_para:
stp x29, x30, [sp, -64]!
adrp x3, .LANCHOR0
- uxtb w0, w0
+ uxtb w1, w1
add x3, x3, :lo12:.LANCHOR0
add x29, sp, 0
- uxtb w1, w1
- stp x19, x20, [sp,16]
+ uxtb w0, w0
stp x21, x22, [sp,32]
str x23, [sp,48]
- mov x20, 160
- mov x21, 0
- ldr x4, [x3,728]
+ stp x19, x20, [sp,16]
+ ldr x2, [x3,728]
ldr x19, [x3,536]
- add x23, x4, 128
- ldrb w22, [x4,113]
- mul w2, w1, w22
- sxtw x1, w0
+ add x23, x2, 128
+ add x21, x2, 112
+ ldrb w22, [x2,113]
+ ldrb w2, [x2,112]
+ mul w1, w1, w22
+ cmp w2, 8
+ sxtw x1, w1
+ beq .L274
+ sxtw x2, w0
+ mov x3, 160
+ madd x2, x2, x3, x1
+ add x2, x2, 32
+ add x21, x21, x2
+ b .L275
+.L274:
+ add x1, x1, 32
+ add x21, x21, x1
+.L275:
ubfiz x0, x0, 8, 8
+ mov x20, 0
add x19, x19, x0
mov w0, 54
- mul x20, x1, x20
- add x1, x20, x2, sxtw
- add x20, x4, x1
- add x20, x20, 144
str w0, [x19,2056]
-.L274:
- cmp w22, w21, uxtb
- bls .L276
- ldrb w0, [x23,x21]
+.L276:
+ cmp w22, w20, uxtb
+ bls .L278
+ ldrb w0, [x23,x20]
str w0, [x19,2052]
mov w0, 120
bl timer_delay_ns
- ldrsb w0, [x20,x21]
- add x21, x21, 1
+ ldrsb w0, [x21,x20]
+ add x20, x20, 1
str w0, [x19,2048]
- b .L274
-.L276:
+ b .L276
+.L278:
mov w0, 22
str w0, [x19,2056]
ldp x19, x20, [sp,16]
@@ -1377,19 +1386,19 @@ hynix_reconfig_rr_para:
ldrb w1, [x19,725]
sub w1, w1, #1
uxtb w1, w1
- cmp w1, 6
- bhi .L277
+ cmp w1, 7
+ bhi .L279
ldr x1, [x19,728]
sxtw x20, w0
add x1, x1, x20
ldrb w1, [x1,120]
- cbz w1, .L277
+ cbz w1, .L279
mov w1, 0
bl hynix_set_rr_para
ldr x0, [x19,728]
add x20, x0, x20
strb wzr, [x20,120]
-.L277:
+.L279:
ldp x19, x20, [sp,16]
ldp x29, x30, [sp], 32
ret
@@ -1408,12 +1417,12 @@ nandc_set_ddr_para:
lsl w0, w0, 8
orr w0, w2, w0
orr w0, w0, 3
- bne .L283
+ bne .L285
str w0, [x1,80]
- b .L282
-.L283:
+ b .L284
+.L285:
str w0, [x1,304]
-.L282:
+.L284:
ret
.size nandc_set_ddr_para, .-nandc_set_ddr_para
.align 2
@@ -1425,12 +1434,12 @@ nandc_get_ddr_para:
ldrb w1, [x0,516]
ldr x0, [x0,536]
cmp w1, 9
- bne .L286
+ bne .L288
ldr w0, [x0,80]
- b .L288
-.L286:
- ldr w0, [x0,304]
+ b .L290
.L288:
+ ldr w0, [x0,304]
+.L290:
ubfx x0, x0, 8, 8
ret
.size nandc_get_ddr_para, .-nandc_get_ddr_para
@@ -1444,7 +1453,7 @@ nandc_set_if_mode:
tst w0, 6
ldr x2, [x3,536]
ldr w1, [x2]
- beq .L290
+ beq .L292
orr w1, w1, 24576
and w0, w0, 4
and w1, w1, -32769
@@ -1455,7 +1464,7 @@ nandc_set_if_mode:
csel w1, w4, w1, ne
cmp w0, 9
mov w0, 8321
- bne .L292
+ bne .L294
str w0, [x2,8]
mov w0, 4099
movk w0, 0x10, lsl 16
@@ -1464,8 +1473,8 @@ nandc_set_if_mode:
str w0, [x2,84]
mov w0, 39
str w0, [x2,84]
- b .L293
-.L292:
+ b .L295
+.L294:
str w0, [x2,344]
mov w0, 4099
movk w0, 0x10, lsl 16
@@ -1474,10 +1483,10 @@ nandc_set_if_mode:
str w0, [x2,308]
mov w0, 39
str w0, [x2,308]
- b .L293
-.L290:
+ b .L295
+.L292:
and w1, w1, -8193
-.L293:
+.L295:
str w1, [x2]
ret
.size nandc_set_if_mode, .-nandc_set_if_mode
@@ -1524,16 +1533,16 @@ flash_wait_device_ready_raw:
ldrb w0, [x0,633]
mov x19, x3
cmp w0, w21
- bhi .L299
+ bhi .L301
adrp x1, .LANCHOR1
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR1
- mov w2, 612
+ mov w2, 677
add x1, x1, 240
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L299:
+.L301:
add x3, x19, :lo12:.LANCHOR0
add x21, x3, x21, sxtw
ldrb w23, [x21,736]
@@ -1546,7 +1555,7 @@ flash_wait_device_ready_raw:
bl nandc_cs
ubfiz x3, x23, 8, 8
add x19, x19, x3
-.L301:
+.L303:
str w26, [x19,2056]
mov w0, 120
str w21, [x19,2052]
@@ -1557,9 +1566,9 @@ flash_wait_device_ready_raw:
and w20, w20, 255
and w0, w22, w20
cmp w0, w22
- bne .L301
+ bne .L303
cmp w20, 255
- beq .L301
+ beq .L303
mov w0, w23
bl nandc_de_cs
mov w0, w20
@@ -1580,14 +1589,14 @@ flash_wait_device_ready:
add x29, sp, 0
and w1, w0, 2097151
ubfx x6, x0, 21, 3
- cbnz w3, .L303
+ cbnz w3, .L305
adrp x3, .LANCHOR0
add x0, x3, :lo12:.LANCHOR0
ldrb w4, [x3,#:lo12:.LANCHOR0]
- cbz w4, .L304
+ cbz w4, .L306
ldrb w0, [x0,1]
- cbz w0, .L303
-.L304:
+ cbz w0, .L305
+.L306:
add x3, x3, :lo12:.LANCHOR0
ldrh w5, [x3,2]
ldrb w0, [x3,1]
@@ -1595,11 +1604,11 @@ flash_wait_device_ready:
mul w5, w4, w5
sub w4, w1, w5
add w1, w5, w4, lsl 1
- cbnz w0, .L303
+ cbnz w0, .L305
add x3, x3, 4
ldrh w3, [x3,w4,uxtw 1]
add w1, w3, w5
-.L303:
+.L305:
mov w0, w6
bl flash_wait_device_ready_raw
ldp x29, x30, [sp], 16
@@ -1615,22 +1624,22 @@ nandc_wait_flash_ready_no_delay:
mov w19, 34464
adrp x20, .LANCHOR0
movk w19, 0x1, lsl 16
-.L314:
+.L316:
add x0, x20, :lo12:.LANCHOR0
ldr x0, [x0,536]
ldr w0, [x0]
str w0, [x29,40]
ldr w0, [x29,40]
- tbnz x0, 9, .L315
+ tbnz x0, 9, .L317
mov w0, 10
bl timer_delay_ns
subs w19, w19, #1
- bne .L314
+ bne .L316
mov w0, -1
- b .L313
-.L315:
+ b .L315
+.L317:
mov w0, 0
-.L313:
+.L315:
ldp x19, x20, [sp,16]
ldp x29, x30, [sp], 48
ret
@@ -1646,38 +1655,38 @@ zftl_flash_enter_slc_mode:
add x29, sp, 0
ldrb w2, [x2,#:lo12:.LANCHOR0]
str x19, [sp,16]
- cbz w2, .L317
+ cbz w2, .L319
cmp w2, 1
ldr x19, [x1,536]
- bne .L320
+ bne .L322
adrp x1, .LANCHOR2+37
ldrb w2, [x1,#:lo12:.LANCHOR2+37]
- cbz w2, .L317
+ cbz w2, .L319
sxtw x1, w0
add x1, x1, 8
add x0, x19, x1, lsl 8
str w2, [x0,8]
- b .L317
-.L320:
+ b .L319
+.L322:
cmp w2, 2
- bne .L322
+ bne .L324
add x1, x1, x0
ldrb w2, [x1,744]
- cbz w2, .L317
+ cbz w2, .L319
strb wzr, [x1,744]
adrp x1, .LANCHOR2+37
ldrb w1, [x1,#:lo12:.LANCHOR2+37]
- cbz w1, .L317
+ cbz w1, .L319
add x0, x0, 8
add x0, x19, x0, lsl 8
str w1, [x0,8]
- b .L317
-.L322:
+ b .L319
+.L324:
cmp w2, 3
- bne .L317
+ bne .L319
add x1, x1, x0, sxtw
ldrb w2, [x1,744]
- cbz w2, .L317
+ cbz w2, .L319
strb wzr, [x1,744]
ubfiz x1, x0, 8, 8
add x19, x19, x1
@@ -1691,12 +1700,16 @@ zftl_flash_enter_slc_mode:
mov w0, 1
str w0, [x19,2048]
str wzr, [x19,2048]
+ mov w0, 150
str wzr, [x19,2048]
+ bl timer_delay_ns
bl nandc_wait_flash_ready_no_delay
mov w0, 218
str w0, [x19,2056]
+ mov w0, 150
+ bl timer_delay_ns
bl nandc_wait_flash_ready_no_delay
-.L317:
+.L319:
ldr x19, [sp,16]
ldp x29, x30, [sp], 32
ret
@@ -1713,24 +1726,24 @@ zftl_flash_exit_slc_mode:
add x20, x1, :lo12:.LANCHOR0
ldrb w1, [x1,#:lo12:.LANCHOR0]
str x21, [sp,32]
- cbz w1, .L335
+ cbz w1, .L337
cmp w1, 1
ldr x19, [x20,536]
- bne .L338
+ bne .L340
adrp x1, .LANCHOR2+38
ldrb w2, [x1,#:lo12:.LANCHOR2+38]
- cbz w2, .L335
+ cbz w2, .L337
sxtw x1, w0
add x1, x1, 8
add x0, x19, x1, lsl 8
str w2, [x0,8]
- b .L335
-.L338:
+ b .L337
+.L340:
cmp w1, 2
- bne .L340
+ bne .L342
add x20, x20, x0
ldrb w1, [x20,744]
- cbnz w1, .L335
+ cbnz w1, .L337
adrp x1, .LANCHOR2
mov w3, 4
add x1, x1, :lo12:.LANCHOR2
@@ -1740,20 +1753,21 @@ zftl_flash_exit_slc_mode:
cmp w2, 2
csel w2, w2, w3, eq
strb w2, [x20,744]
- cbz w1, .L335
+ cbz w1, .L337
add x0, x0, 8
add x0, x19, x0, lsl 8
str w1, [x0,8]
- b .L335
-.L340:
+ b .L337
+.L342:
cmp w1, 3
- bne .L335
+ bne .L337
add x20, x20, x0, sxtw
- ldrb w21, [x20,744]
- cbnz w21, .L335
- adrp x1, .LANCHOR2+20
+ ldrb w1, [x20,744]
+ cbnz w1, .L337
+ adrp x21, .LANCHOR2
mov w2, 4
- ldrb w1, [x1,#:lo12:.LANCHOR2+20]
+ add x21, x21, :lo12:.LANCHOR2
+ ldrb w1, [x21,20]
cmp w1, 2
csel w1, w1, w2, eq
strb w1, [x20,744]
@@ -1765,17 +1779,28 @@ zftl_flash_exit_slc_mode:
str w0, [x19,2052]
mov w0, 50
bl timer_delay_ns
- ldrb w0, [x20,744]
- str w0, [x19,2048]
+ ldrb w0, [x21,15]
+ cmp w0, 9
mov w0, 1
+ bne .L345
+ str w0, [x19,2048]
+ b .L346
+.L345:
+ ldrb w1, [x20,744]
+ str w1, [x19,2048]
+.L346:
str w0, [x19,2048]
- str w21, [x19,2048]
- str w21, [x19,2048]
+ mov w0, 150
+ str wzr, [x19,2048]
+ str wzr, [x19,2048]
+ bl timer_delay_ns
bl nandc_wait_flash_ready_no_delay
mov w0, 223
str w0, [x19,2056]
+ mov w0, 150
+ bl timer_delay_ns
bl nandc_wait_flash_ready_no_delay
-.L335:
+.L337:
ldp x19, x20, [sp,16]
ldr x21, [sp,32]
ldp x29, x30, [sp], 48
@@ -1798,46 +1823,46 @@ flash_start_page_read:
ubfx x22, x1, 24, 2
ldrb w0, [x0,633]
cmp w0, w19
- bhi .L354
+ bhi .L358
adrp x1, .LANCHOR1
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR1
- mov w2, 754
+ mov w2, 845
add x1, x1, 272
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L354:
+.L358:
add x20, x20, :lo12:.LANCHOR0
add x19, x20, x19, sxtw
ldrb w19, [x19,736]
mov w0, w19
ldr x24, [x20,536]
bl nandc_cs
- cbnz w22, .L355
+ cbnz w22, .L359
mov w0, w21
bl slc_phy_page_address_calc
mov w21, w0
adrp x0, .LANCHOR0
ldrb w0, [x0,#:lo12:.LANCHOR0]
- cbz w0, .L356
+ cbz w0, .L360
mov w0, w19
bl zftl_flash_enter_slc_mode
- b .L356
-.L355:
+ b .L360
+.L359:
ldr x0, [x20,624]
ldrb w0, [x0,12]
cmp w0, 3
- bne .L357
+ bne .L361
sxtw x0, w19
add x0, x0, 8
add x0, x24, x0, lsl 8
str w22, [x0,8]
- b .L356
-.L357:
+ b .L360
+.L361:
mov w0, w19
bl zftl_flash_exit_slc_mode
-.L356:
+.L360:
ubfiz x19, x19, 8, 8
and w0, w21, 255
add x1, x24, x19
@@ -1870,22 +1895,22 @@ nandc_wait_flash_ready:
adrp x20, .LANCHOR0
movk w19, 0x1, lsl 16
bl timer_delay_ns
-.L363:
+.L367:
add x0, x20, :lo12:.LANCHOR0
ldr x0, [x0,536]
ldr w0, [x0]
str w0, [x29,40]
ldr w0, [x29,40]
- tbnz x0, 9, .L364
+ tbnz x0, 9, .L368
mov w0, 10
bl timer_delay_ns
subs w19, w19, #1
- bne .L363
+ bne .L367
mov w0, -1
- b .L362
-.L364:
+ b .L366
+.L368:
mov w0, 0
-.L362:
+.L366:
ldp x19, x20, [sp,16]
ldp x29, x30, [sp], 48
ret
@@ -1916,23 +1941,23 @@ sandisk_set_rr_para:
add x0, x0, x1
add x1, x2, x1
mov x2, 0
-.L367:
+.L371:
add x3, x5, :lo12:.LANCHOR0
ldrb w4, [x3,726]
cmp w4, w2
- bls .L372
+ bls .L376
ldrb w3, [x3,725]
cmp w3, 67
- bne .L368
+ bne .L372
ldrsb w3, [x0,x2]
- b .L371
-.L368:
+ b .L375
+.L372:
ldrsb w3, [x1,x2]
-.L371:
+.L375:
str w3, [x20]
add x2, x2, 1
- b .L367
-.L372:
+ b .L371
+.L376:
bl nandc_wait_flash_ready
ldp x19, x20, [sp,16]
ldp x29, x30, [sp], 32
@@ -2021,7 +2046,7 @@ toshiba_tlc_set_rr_para:
mov w21, 239
adrp x0, .LANCHOR2
str w21, [x19,8]
- cbz w2, .L376
+ cbz w2, .L380
mov w2, 18
str w2, [x19,4]
mov x2, 7
@@ -2048,8 +2073,8 @@ toshiba_tlc_set_rr_para:
ldrb w0, [x20,6]
str w0, [x19]
str wzr, [x19]
- b .L377
-.L376:
+ b .L381
+.L380:
add x0, x0, :lo12:.LANCHOR2
mov w3, 20
add x0, x0, 376
@@ -2059,7 +2084,7 @@ toshiba_tlc_set_rr_para:
str w2, [x19]
str w2, [x19]
str w2, [x19]
-.L377:
+.L381:
bl nandc_wait_flash_ready
ldr x21, [sp,32]
ldp x19, x20, [sp,16]
@@ -2085,23 +2110,23 @@ flash_start_plane_read:
stp x27, x28, [sp,80]
ldrb w0, [x0,633]
cmp w0, w19
- bhi .L379
+ bhi .L383
adrp x1, .LANCHOR1
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR1
- mov w2, 849
+ mov w2, 940
add x1, x1, 712
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L379:
+.L383:
add x26, x22, :lo12:.LANCHOR0
add x19, x26, x19, sxtw
ldrb w24, [x19,736]
mov w0, w24
ldr x25, [x26,536]
bl nandc_cs
- cbnz w20, .L380
+ cbnz w20, .L384
mov w0, w23
bl slc_phy_page_address_calc
mov w23, w0
@@ -2110,24 +2135,24 @@ flash_start_plane_read:
mov w21, w0
adrp x0, .LANCHOR0
ldrb w0, [x0,#:lo12:.LANCHOR0]
- cbz w0, .L381
+ cbz w0, .L385
mov w0, w24
bl zftl_flash_enter_slc_mode
- b .L381
-.L380:
+ b .L385
+.L384:
ldr x0, [x26,624]
ldrb w0, [x0,12]
cmp w0, 3
- bne .L382
+ bne .L386
sxtw x0, w24
add x0, x0, 8
add x0, x25, x0, lsl 8
str w20, [x0,8]
- b .L381
-.L382:
+ b .L385
+.L386:
mov w0, w24
bl zftl_flash_exit_slc_mode
-.L381:
+.L385:
add x26, x22, :lo12:.LANCHOR0
and w2, w23, 255
add x0, x26, 640
@@ -2139,7 +2164,7 @@ flash_start_plane_read:
cmp w1, 1
lsr w1, w23, 8
lsr w23, w23, 16
- bne .L383
+ bne .L387
add x19, x25, x19, lsl 8
ldrb w3, [x0,8]
ldrb w0, [x0,9]
@@ -2151,35 +2176,35 @@ flash_start_plane_read:
str w23, [x19,2052]
str w0, [x19,2056]
bl nandc_wait_flash_ready
- cbz w20, .L384
+ cbz w20, .L388
ldr x0, [x26,624]
ldrb w0, [x0,12]
cmp w0, 3
- bne .L384
+ bne .L388
str w20, [x19,2056]
-.L384:
+.L388:
str wzr, [x19,2056]
str wzr, [x19,2052]
str wzr, [x19,2052]
- b .L402
-.L383:
+ b .L406
+.L387:
add x19, x25, x19, lsl 8
ldrb w0, [x0,8]
str w0, [x19,2056]
str w2, [x19,2052]
str w1, [x19,2052]
str w23, [x19,2052]
- cbz w20, .L386
+ cbz w20, .L390
ldr x0, [x26,624]
ldrb w0, [x0,12]
cmp w0, 3
- bne .L386
+ bne .L390
str w20, [x19,2056]
-.L386:
+.L390:
add x22, x22, :lo12:.LANCHOR0
ldrb w0, [x22,649]
str w0, [x19,2056]
-.L402:
+.L406:
str w28, [x19,2052]
mov w0, 48
str w27, [x19,2052]
@@ -2213,80 +2238,93 @@ flash_set_interface_mode:
add x26, x22, 748
adrp x24, .LANCHOR2
add x23, x23, :lo12:.LC38
-.L416:
+.L422:
lsl x0, x21, 3
ldr x20, [x22,536]
ldrb w19, [x0,x26]
adrp x0, .LANCHOR0
cmp w19, 152
- beq .L404
+ beq .L408
cmp w19, 69
- beq .L404
+ beq .L408
+ cmp w19, 155
+ beq .L408
cmp w19, 44
- beq .L404
+ cset w2, eq
cmp w19, 137
- bne .L405
-.L404:
+ cset w1, eq
+ orr w1, w2, w1
+ cbz w1, .L409
+.L408:
add x0, x0, :lo12:.LANCHOR0
cmp w25, 1
ldrb w1, [x0,780]
- bne .L407
- tbz x1, 0, .L405
+ bne .L411
+ tbz x1, 0, .L409
ldr w0, [x24,#:lo12:.LANCHOR2]
- tbz x0, 12, .L408
+ tbz x0, 12, .L412
adrp x0, .LC37
add x0, x0, :lo12:.LC37
bl printk
-.L408:
+.L412:
add x1, x20, x21, lsl 8
mov w0, 239
cmp w19, 137
str w0, [x1,2056]
- beq .L417
+ beq .L423
cmp w19, 44
- bne .L409
-.L417:
+ bne .L413
+.L423:
mov w0, 1
str w0, [x1,2052]
mov w0, 5
- b .L436
-.L409:
- mov w0, 128
- str w0, [x1,2052]
+ b .L442
+.L413:
+ cmp w19, 155
mov w0, 1
- b .L436
-.L407:
- tbz x1, 2, .L405
+ bne .L421
+ str w0, [x1,2052]
+ mov w0, 3
+ b .L442
+.L411:
+ tbz x1, 2, .L409
ldr w0, [x24,#:lo12:.LANCHOR2]
- tbz x0, 12, .L412
+ tbz x0, 12, .L417
mov x0, x23
bl printk
-.L412:
+.L417:
add x1, x20, x21, lsl 8
mov w0, 239
cmp w19, 137
str w0, [x1,2056]
- beq .L418
+ beq .L424
cmp w19, 44
cset w0, eq
- cbz w0, .L413
-.L418:
+ cbz w0, .L418
+.L424:
mov w0, 1
str w0, [x1,2052]
mov w0, 35
- b .L436
-.L413:
+ b .L442
+.L418:
+ cmp w19, 155
+ bne .L421
+ mov w0, 1
+ str w0, [x1,2052]
+ mov w0, 37
+ b .L442
+.L421:
mov w2, 128
str w2, [x1,2052]
-.L436:
+.L442:
str w0, [x1,2048]
str wzr, [x1,2048]
str wzr, [x1,2048]
str wzr, [x1,2048]
-.L405:
+.L409:
add x21, x21, 1
cmp x21, 4
- bne .L416
+ bne .L422
bl nandc_wait_flash_ready
mov w0, 0
ldp x19, x20, [sp,16]
@@ -2358,7 +2396,7 @@ flash_read_id:
sub w0, w2, #1
uxtb w0, w0
cmp w0, 253
- bhi .L439
+ bhi .L445
adrp x0, .LC39
ldrb w3, [x19,1]
ldrb w4, [x19,2]
@@ -2368,7 +2406,7 @@ flash_read_id:
ldrb w6, [x19,4]
ldrb w7, [x19,5]
bl printk
-.L439:
+.L445:
ldp x19, x20, [sp,16]
ldr x21, [sp,32]
ldp x29, x30, [sp], 48
@@ -2410,6 +2448,84 @@ flash_read_spare:
ret
.size flash_read_spare, .-flash_read_spare
.align 2
+ .global flash_read_otp_data
+ .type flash_read_otp_data, %function
+flash_read_otp_data:
+ stp x29, x30, [sp, -64]!
+ add x29, sp, 0
+ stp x21, x22, [sp,32]
+ uxtb w21, w0
+ adrp x0, .LANCHOR0+536
+ stp x19, x20, [sp,16]
+ str x23, [sp,48]
+ mov w20, w1
+ ldr x19, [x0,#:lo12:.LANCHOR0+536]
+ mov w0, w21
+ mov x23, x2
+ mov w22, 144
+ bl nandc_cs
+ ubfiz x3, x21, 8, 8
+ mov w0, 239
+ add x19, x19, x3
+ str w0, [x19,2056]
+ mov w0, 50
+ str w22, [x19,2052]
+ bl timer_delay_ns
+ mov w0, 1
+ str w0, [x19,2048]
+ str wzr, [x19,2048]
+ str wzr, [x19,2048]
+ str wzr, [x19,2048]
+ bl nandc_wait_flash_ready
+ mov w0, 238
+ str w0, [x19,2056]
+ str w22, [x19,2052]
+ adrp x0, .LC40
+ mov w1, w20
+ add x0, x0, :lo12:.LC40
+ ldr w2, [x19,2048]
+ ldr w3, [x19,2048]
+ ldr w4, [x19,2048]
+ bl printk
+ bl nandc_wait_flash_ready
+ str wzr, [x19,2056]
+ str wzr, [x19,2052]
+ and w0, w20, 255
+ str wzr, [x19,2052]
+ str w0, [x19,2052]
+ lsr w0, w20, 8
+ str w0, [x19,2052]
+ lsr w20, w20, 16
+ str w20, [x19,2052]
+ mov w0, 48
+ str w0, [x19,2056]
+ bl nandc_wait_flash_ready
+ mov x1, 0
+.L449:
+ ldr w0, [x19,2048]
+ strb w0, [x23,x1]
+ add x1, x1, 1
+ cmp x1, 16384
+ bne .L449
+ mov w0, 239
+ str w0, [x19,2056]
+ mov w0, 144
+ str w0, [x19,2052]
+ mov w0, 50
+ bl timer_delay_ns
+ str wzr, [x19,2048]
+ str wzr, [x19,2048]
+ mov w0, w21
+ str wzr, [x19,2048]
+ str wzr, [x19,2048]
+ bl nandc_de_cs
+ ldr x23, [sp,48]
+ ldp x19, x20, [sp,16]
+ ldp x21, x22, [sp,32]
+ ldp x29, x30, [sp], 64
+ ret
+ .size flash_read_otp_data, .-flash_read_otp_data
+ .align 2
.global sandisk_prog_test_bad_block
.type sandisk_prog_test_bad_block, %function
sandisk_prog_test_bad_block:
@@ -2426,9 +2542,9 @@ sandisk_prog_test_bad_block:
add x2, x2, 8
ldrb w3, [x3,37]
add x2, x19, x2, lsl 8
- cbnz w3, .L452
+ cbnz w3, .L461
mov w3, 162
-.L452:
+.L461:
ubfiz x0, x0, 8, 8
str w3, [x2,8]
add x19, x19, x0
@@ -2453,14 +2569,14 @@ sandisk_prog_test_bad_block:
ldr w2, [x19,2048]
mov w0, 5
ands w19, w2, w0
- beq .L445
+ beq .L454
ldr w0, [x20,#:lo12:.LANCHOR2]
ldr x1, [x29,40]
- tbz x0, 12, .L445
- adrp x0, .LC40
- add x0, x0, :lo12:.LC40
+ tbz x0, 12, .L454
+ adrp x0, .LC41
+ add x0, x0, :lo12:.LC41
bl printk
-.L445:
+.L454:
mov w0, w19
ldp x19, x20, [sp,16]
ldp x29, x30, [sp], 48
@@ -2491,44 +2607,44 @@ nandc_bch_sel:
strb w0, [x1,724]
cmp w2, 9
ldr x2, [x1,536]
- bne .L455
+ bne .L464
str w3, [x2,16]
cmp w0, 70
mov w1, 0
- beq .L456
+ beq .L465
cmp w0, 60
mov w1, 3
- beq .L456
+ beq .L465
cmp w0, 40
mov w1, 2
csel w1, w1, w3, eq
-.L456:
+.L465:
lsl w1, w1, 25
orr w1, w1, 1
str w1, [x2,32]
- b .L454
-.L455:
+ b .L463
+.L464:
str w3, [x2,8]
cmp w0, 16
mov w1, 4096
- bne .L458
-.L461:
+ bne .L467
+.L470:
and w1, w1, -17
- b .L459
-.L458:
+ b .L468
+.L467:
cmp w0, 24
- bne .L460
+ bne .L469
orr w1, w1, 16
- b .L459
-.L460:
+ b .L468
+.L469:
cmp w0, 40
orr w1, w1, 262144
orr w1, w1, 16
- beq .L461
-.L459:
+ beq .L470
+.L468:
orr w1, w1, 1
str w1, [x2,12]
-.L454:
+.L463:
ret
.size nandc_bch_sel, .-nandc_bch_sel
.align 2
@@ -2552,7 +2668,7 @@ zftl_flash_resume:
str w2, [x1,4]
ldr x1, [x0,536]
ldr w2, [x0,552]
- bne .L469
+ bne .L478
str w2, [x1,16]
ldr w2, [x0,556]
str w2, [x1,32]
@@ -2564,8 +2680,8 @@ zftl_flash_resume:
str w2, [x1,520]
ldr w0, [x0,572]
str w0, [x1,8]
- b .L470
-.L469:
+ b .L479
+.L478:
str w2, [x1,8]
ldr w2, [x0,556]
str w2, [x1,12]
@@ -2577,18 +2693,18 @@ zftl_flash_resume:
str w2, [x1,336]
ldr w0, [x0,572]
str w0, [x1,344]
-.L470:
+.L479:
add x22, x20, :lo12:.LANCHOR0
mov x19, 0
add x23, x22, 748
mov w24, 2
-.L472:
+.L481:
lsl x0, x19, 3
ldrb w0, [x0,x23]
sub w0, w0, #1
uxtb w0, w0
cmp w0, 253
- bhi .L471
+ bhi .L480
uxtb w21, w19
mov w0, w21
bl flash_reset
@@ -2596,13 +2712,13 @@ zftl_flash_resume:
strb w24, [x19,x0]
mov w0, w21
bl zftl_flash_enter_slc_mode
-.L471:
+.L480:
add x19, x19, 1
cmp x19, 4
- bne .L472
+ bne .L481
add x20, x20, :lo12:.LANCHOR0
ldrb w0, [x20,672]
- cbz w0, .L473
+ cbz w0, .L482
mov w0, 1
bl nandc_set_if_mode
mov w0, w19
@@ -2612,7 +2728,7 @@ zftl_flash_resume:
ldr w0, [x20,560]
lsr w0, w0, 8
bl nandc_set_ddr_para
-.L473:
+.L482:
adrp x0, .LANCHOR2+28
ldrb w0, [x0,#:lo12:.LANCHOR2+28]
bl nandc_bch_sel
@@ -2647,30 +2763,30 @@ nandc_iqr_wait_flash_ready:
ldrb w1, [x19,516]
ldr x0, [x19,536]
cmp w1, 9
- bne .L480
+ bne .L489
ldr w1, [x0,292]
orr w1, w1, 2
str w1, [x0,292]
ldr w1, [x0,288]
orr w1, w1, 2
str w1, [x0,288]
- b .L481
-.L480:
+ b .L490
+.L489:
ldr w1, [x0,368]
orr w1, w1, 2
str w1, [x0,368]
ldr w1, [x0,364]
orr w1, w1, 2
str w1, [x0,364]
-.L481:
+.L490:
ldr w1, [x0]
- tbnz x1, 9, .L482
+ tbnz x1, 9, .L491
bl wait_for_nand_flash_ready
- b .L479
-.L482:
+ b .L488
+.L491:
mov w1, 1
bl nandc_irq_disable
-.L479:
+.L488:
ldr x19, [sp,16]
ldp x29, x30, [sp], 32
ret
@@ -2693,16 +2809,16 @@ flash_erase_duplane_block:
ldrb w0, [x0,633]
mov w24, w3
cmp w0, w19
- bhi .L485
+ bhi .L494
adrp x1, .LANCHOR1
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR1
- mov w2, 523
+ mov w2, 588
add x1, x1, 736
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L485:
+.L494:
add x0, x20, :lo12:.LANCHOR0
add x19, x0, x19, sxtw
ldrb w23, [x19,736]
@@ -2712,24 +2828,24 @@ flash_erase_duplane_block:
add x23, x23, 8
ldr w0, [x0,#:lo12:.LANCHOR2]
add x23, x19, x23, lsl 8
- tbz x0, 4, .L486
- adrp x0, .LC41
+ tbz x0, 4, .L495
+ adrp x0, .LC42
mov w1, w21
- add x0, x0, :lo12:.LC41
+ add x0, x0, :lo12:.LC42
mov w2, w22
mov w3, w24
bl printk
-.L486:
+.L495:
bl nandc_wait_flash_ready
mov w0, w21
bl nandc_cs
mov w0, w21
- cbnz w25, .L487
+ cbnz w25, .L496
bl zftl_flash_enter_slc_mode
- b .L488
-.L487:
+ b .L497
+.L496:
bl zftl_flash_exit_slc_mode
-.L488:
+.L497:
ubfiz x4, x21, 8, 8
mov w0, 96
add x19, x19, x4
@@ -2743,7 +2859,7 @@ flash_erase_duplane_block:
str w0, [x19,2052]
ldrb w0, [x20,781]
mov w20, 0
- cbnz w0, .L489
+ cbnz w0, .L498
mov w0, 208
str w0, [x19,2056]
mov w20, 5
@@ -2751,7 +2867,7 @@ flash_erase_duplane_block:
mov x0, x23
bl flash_read_status
and w20, w0, w20
-.L489:
+.L498:
mov w0, 96
str w0, [x19,2056]
and w0, w24, 255
@@ -2774,12 +2890,12 @@ flash_erase_duplane_block:
ldr x2, [x29,88]
and w19, w2, w19
orr w19, w19, w20
- cbz w19, .L490
- adrp x0, .LC42
+ cbz w19, .L499
+ adrp x0, .LC43
mov w1, w22
- add x0, x0, :lo12:.LC42
+ add x0, x0, :lo12:.LC43
bl printk
-.L490:
+.L499:
mov w0, w19
ldr x25, [sp,64]
ldp x19, x20, [sp,16]
@@ -2806,16 +2922,16 @@ flash_erase_block_en:
ldrb w0, [x0,633]
and w24, w2, 2097151
cmp w0, w23
- bhi .L499
+ bhi .L508
adrp x1, .LANCHOR1
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR1
- mov w2, 568
+ mov w2, 633
add x1, x1, 768
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L499:
+.L508:
add x0, x19, :lo12:.LANCHOR0
add x1, x0, x23, sxtw
ldrb w21, [x1,736]
@@ -2825,24 +2941,24 @@ flash_erase_block_en:
add x21, x21, 8
ldr w0, [x0,#:lo12:.LANCHOR2]
add x21, x25, x21, lsl 8
- tbz x0, 4, .L500
- adrp x0, .LC43
+ tbz x0, 4, .L509
+ adrp x0, .LC44
mov w1, w20
- add x0, x0, :lo12:.LC43
+ add x0, x0, :lo12:.LC44
mov w2, w22
mov w3, w26
bl printk
-.L500:
+.L509:
bl nandc_wait_flash_ready
mov w0, w20
bl nandc_cs
mov w0, w20
- cbnz w26, .L501
+ cbnz w26, .L510
bl zftl_flash_enter_slc_mode
- b .L502
-.L501:
+ b .L511
+.L510:
bl zftl_flash_exit_slc_mode
-.L502:
+.L511:
ubfiz x3, x20, 8, 8
mov w0, 96
add x3, x25, x3
@@ -2864,16 +2980,16 @@ flash_erase_block_en:
bl nandc_de_cs
mov w3, 5
ands w20, w21, w3
- beq .L503
+ beq .L512
add x19, x19, :lo12:.LANCHOR0
- adrp x0, .LC44
- add x0, x0, :lo12:.LC44
+ adrp x0, .LC45
+ add x0, x0, :lo12:.LC45
mov w1, w23
mov w3, w20
ldrh w2, [x19,2]
udiv w2, w22, w2
bl printk
-.L503:
+.L512:
mov w0, w20
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -2913,31 +3029,31 @@ flash_erase_all:
mov x21, x0
mul w20, w1, w20
uxth w20, w20
-.L512:
+.L521:
ldrb w0, [x23,633]
cmp w0, w19
- bls .L516
+ bls .L525
add x0, x23, x19, sxtw
ldrb w24, [x0,736]
mov w22, 0
-.L513:
+.L522:
cmp w20, w22, uxth
- bls .L517
+ bls .L526
add x0, x21, :lo12:.LANCHOR0
ldrh w1, [x0,2]
mov w0, w24
mul w1, w22, w1
add w22, w22, 1
bl flash_erase_block
- b .L513
-.L517:
+ b .L522
+.L526:
add w19, w19, 1
uxth w19, w19
- b .L512
-.L516:
- adrp x0, .LC45
+ b .L521
+.L525:
+ adrp x0, .LC46
mov w1, 0
- add x0, x0, :lo12:.LC45
+ add x0, x0, :lo12:.LC46
bl printk
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -2980,7 +3096,7 @@ nandc_xfer_start:
cmp w0, 9
ldr x3, [x29,88]
ldr x2, [x29,80]
- bne .L520
+ bne .L529
ldr w0, [x4,292]
ubfiz w19, w23, 1, 1
orr w19, w19, 8
@@ -2998,13 +3114,13 @@ nandc_xfer_start:
and w19, w19, -17
bfi w19, w20, 22, 6
orr w19, w19, 128
- cbz w0, .L522
+ cbz w0, .L531
ldrb w1, [x21,720]
orr w0, w19, 512
cmp w1, wzr
csel w19, w0, w19, ne
- b .L522
-.L520:
+ b .L531
+.L529:
ldr w0, [x4,368]
ubfiz w19, w23, 1, 1
orr w19, w19, 8
@@ -3025,7 +3141,7 @@ nandc_xfer_start:
orr w19, w19, 1024
and w19, w19, -17
bfi w19, w20, 22, 6
- cbz w23, .L534
+ cbz w23, .L543
ldrb w0, [x21,724]
ubfx x24, x24, 1, 7
mov w1, 64
@@ -3034,8 +3150,8 @@ nandc_xfer_start:
add x24, x3, x24, lsl 2
csel w4, w1, w4, cc
mov w1, 0
- b .L527
-.L522:
+ b .L536
+.L531:
add x22, x22, :lo12:.LANCHOR0
and w20, w20, 63
mov x0, x2
@@ -3073,11 +3189,11 @@ nandc_xfer_start:
str w19, [x2,16]
orr w19, w19, 4
str w19, [x2,16]
- b .L519
-.L527:
+ b .L528
+.L536:
cmp x3, x24
add w0, w1, w4
- beq .L529
+ beq .L538
ldrh w5, [x3,2]
and x1, x1, 4294967292
ldr x6, [x21,680]
@@ -3085,11 +3201,11 @@ nandc_xfer_start:
orr w5, w7, w5, lsl 16
str w5, [x6,x1]
mov w1, w0
- b .L527
-.L534:
+ b .L536
+.L543:
ldr x1, [x21,680]
str w0, [x1]
-.L529:
+.L538:
add x22, x22, :lo12:.LANCHOR0
and w20, w20, 63
lsl w1, w20, 10
@@ -3122,7 +3238,7 @@ nandc_xfer_start:
str w19, [x3,8]
orr w19, w19, 4
str w19, [x3,8]
-.L519:
+.L528:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -3148,12 +3264,12 @@ nandc_set_seed:
ldrb w2, [x0,516]
ldr x0, [x0,536]
cmp w2, 9
- bne .L537
+ bne .L546
str w1, [x0,520]
- b .L535
-.L537:
+ b .L544
+.L546:
str w1, [x0,336]
-.L535:
+.L544:
ret
.size nandc_set_seed, .-nandc_set_seed
.align 2
@@ -3163,30 +3279,37 @@ zftl_flash_de_init:
stp x29, x30, [sp, -32]!
add x29, sp, 0
stp x19, x20, [sp,16]
- bl nandc_wait_flash_ready
adrp x19, .LANCHOR0
+ bl nandc_wait_flash_ready
+ add x0, x19, :lo12:.LANCHOR0
+ ldrb w1, [x19,#:lo12:.LANCHOR0]
+ cbz w1, .L551
+ ldrb w0, [x0,782]
+ cbnz w0, .L551
+ bl zftl_flash_exit_slc_mode
+.L551:
mov w0, 0
add x20, x19, :lo12:.LANCHOR0
bl hynix_reconfig_rr_para
ldrb w0, [x20,672]
- cbz w0, .L542
+ cbz w0, .L552
ldrb w0, [x20,780]
- tbz x0, 0, .L542
+ tbz x0, 0, .L552
mov w0, 1
bl flash_set_interface_mode
mov w0, 1
bl nandc_set_if_mode
strb wzr, [x20,672]
-.L542:
+.L552:
add x19, x19, :lo12:.LANCHOR0
ldrb w0, [x19,720]
- cbz w0, .L543
+ cbz w0, .L553
mov w0, 0
strb wzr, [x19,720]
bl nandc_set_seed
mov w0, 1
strb w0, [x19,720]
-.L543:
+.L553:
mov w0, 0
ldp x19, x20, [sp,16]
ldp x29, x30, [sp], 32
@@ -3224,7 +3347,7 @@ buf_init:
add x19, x19, 784
mov w21, 0
mov x22, x0
-.L556:
+.L569:
add x20, x22, :lo12:.LANCHOR0
uxtb w0, w21
add w1, w0, 1
@@ -3243,7 +3366,7 @@ buf_init:
bl ftl_malloc
str x0, [x19,-40]
cmp w21, 32
- bne .L556
+ bne .L569
strb w21, [x20,2834]
mov w0, -1
strb wzr, [x20,2833]
@@ -3261,7 +3384,7 @@ buf_reinit:
mov w2, 0
add x1, x0, :lo12:.LANCHOR0
add x1, x1, 784
-.L559:
+.L572:
uxtb w3, w2
add w2, w2, 1
add w4, w3, 1
@@ -3271,7 +3394,7 @@ buf_reinit:
strb wzr, [x1,2]
add x1, x1, 64
str xzr, [x1,-48]
- bne .L559
+ bne .L572
add x0, x0, :lo12:.LANCHOR0
mov w1, -1
strb wzr, [x0,2833]
@@ -3292,10 +3415,10 @@ buf_add_tail:
mov x19, x1
ldrb w1, [x20]
cmp w1, 255
- bne .L567
+ bne .L580
ldrb w0, [x19,1]
cmp w0, 255
- bne .L563
+ bne .L576
adrp x1, .LANCHOR1
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR1
@@ -3304,23 +3427,23 @@ buf_add_tail:
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L563:
+.L576:
ldrb w0, [x19,1]
strb w0, [x20]
- b .L561
-.L567:
+ b .L574
+.L580:
adrp x0, .LANCHOR0
add x0, x0, :lo12:.LANCHOR0
add x0, x0, 784
-.L568:
+.L581:
mov w20, w1
sbfiz x1, x1, 6, 32
ldrb w1, [x0,x1]
cmp w1, 255
- bne .L568
+ bne .L581
ldrb w0, [x19,1]
cmp w0, 255
- bne .L565
+ bne .L578
adrp x1, .LANCHOR1
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR1
@@ -3329,14 +3452,14 @@ buf_add_tail:
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L565:
+.L578:
adrp x0, .LANCHOR0
sbfiz x20, x20, 6, 32
add x0, x0, :lo12:.LANCHOR0
ldrb w1, [x19,1]
add x0, x0, 784
strb w1, [x0,x20]
-.L561:
+.L574:
ldp x19, x20, [sp,16]
ldp x29, x30, [sp], 32
ret
@@ -3377,22 +3500,22 @@ buf_free:
and w1, w1, 8
uxtb w1, w1
strb w1, [x0,2]
- cbz w1, .L571
+ cbz w1, .L584
ldr w1, [x0,36]
cmn w1, #1
- beq .L571
+ beq .L584
mov x1, x0
add x0, x19, :lo12:.LANCHOR0
add x0, x0, 2833
bl buf_add_tail
- b .L572
-.L571:
+ b .L585
+.L584:
add x1, x19, :lo12:.LANCHOR0
ldrb w2, [x1,2833]
strb w2, [x0]
ldrb w0, [x0,1]
strb w0, [x1,2833]
-.L572:
+.L585:
add x19, x19, :lo12:.LANCHOR0
ldrb w0, [x19,2834]
add w0, w0, 1
@@ -3414,15 +3537,15 @@ buf_alloc:
uxtb w21, w0
mov x19, x1
ldrb w0, [x20,2834]
- cbz w0, .L580
-.L583:
+ cbz w0, .L593
+.L596:
add x1, x19, :lo12:.LANCHOR0
add x0, x1, 784
ldrb w2, [x1,2833]
add x0, x0, x2, lsl 6
- cbz w21, .L581
- b .L582
-.L580:
+ cbz w21, .L594
+ b .L595
+.L593:
adrp x1, .LANCHOR1
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR1
@@ -3432,15 +3555,15 @@ buf_alloc:
bl printk
bl dump_stack
ldrb w1, [x20,2834]
- cbnz w1, .L583
-.L585:
+ cbnz w1, .L596
+.L598:
mov x0, 0
- b .L584
-.L581:
+ b .L597
+.L594:
ldrb w1, [x1,2834]
cmp w1, 1
- beq .L585
-.L582:
+ beq .L598
+.L595:
add x1, x19, :lo12:.LANCHOR0
lsl x2, x2, 6
add x4, x1, 784
@@ -3460,7 +3583,7 @@ buf_alloc:
strb wzr, [x3,56]
str w1, [x3,36]
strb wzr, [x3,57]
-.L584:
+.L597:
ldp x19, x20, [sp,16]
ldr x21, [sp,32]
ldp x29, x30, [sp], 48
@@ -3473,33 +3596,33 @@ buf_remove_buf:
ldrb w4, [x1,1]
ldrb w2, [x0]
cmp w4, w2
- bne .L592
+ bne .L605
ldrb w1, [x1]
strb w1, [x0]
- b .L596
-.L592:
+ b .L609
+.L605:
adrp x0, .LANCHOR0
add x0, x0, :lo12:.LANCHOR0
add x0, x0, 784
-.L594:
+.L607:
cmp w2, 255
- beq .L597
+ beq .L610
mov w3, w2
sbfiz x2, x2, 6, 32
ldrb w2, [x0,x2]
cmp w2, w4
- bne .L594
+ bne .L607
sbfiz x3, x3, 6, 32
ldrb w2, [x1]
strb w2, [x0,x3]
mov w0, -1
strb w0, [x1]
-.L596:
+.L609:
mov w0, 1
- b .L591
-.L597:
+ b .L604
+.L610:
mov w0, 0
-.L591:
+.L604:
ret
.size buf_remove_buf, .-buf_remove_buf
.align 2
@@ -3513,7 +3636,7 @@ buf_remove_free:
mov x20, x0
add x0, x19, :lo12:.LANCHOR0
ldrb w0, [x0,2834]
- cbnz w0, .L599
+ cbnz w0, .L612
adrp x1, .LANCHOR1
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR1
@@ -3522,22 +3645,22 @@ buf_remove_free:
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L599:
+.L612:
add x19, x19, :lo12:.LANCHOR0
ldrb w0, [x19,2834]
- cbz w0, .L598
+ cbz w0, .L611
add x0, x19, 2833
mov x1, x20
bl buf_remove_buf
cmp w0, 1
- bne .L598
+ bne .L611
ldrb w0, [x19,2834]
sub w0, w0, #1
strb w0, [x19,2834]
ldrb w0, [x20,2]
orr w0, w0, 1
strb w0, [x20,2]
-.L598:
+.L611:
ldp x19, x20, [sp,16]
ldp x29, x30, [sp], 32
ret
@@ -3586,8 +3709,8 @@ flash_mask_bad_block:
mov w2, w21
ldrh w20, [x3,22]
mul w20, w0, w20
- adrp x0, .LC46
- add x0, x0, :lo12:.LC46
+ adrp x0, .LC47
+ add x0, x0, :lo12:.LC47
uxth w20, w20
add w20, w20, 31
bl printk
@@ -3617,49 +3740,49 @@ flash_mask_bad_block:
str2hex:
ldrb w1, [x0]
cmp w1, 48
- bne .L606
+ bne .L619
ldrb w1, [x0,1]
add x2, x0, 2
and w1, w1, -33
uxtb w1, w1
cmp w1, 88
csel x0, x0, x2, ne
-.L606:
+.L619:
ldrb w1, [x0]
and w1, w1, -33
uxtb w1, w1
cmp w1, 88
mov w1, 0
csinc x0, x0, x0, ne
-.L608:
+.L621:
ldrb w2, [x0]
- cbz w2, .L615
+ cbz w2, .L628
sub w3, w2, #48
uxtb w3, w3
cmp w3, 9
- bhi .L609
+ bhi .L622
add w1, w2, w1, lsl 4
sub w1, w1, #48
- b .L610
-.L609:
+ b .L623
+.L622:
sub w3, w2, #97
uxtb w3, w3
cmp w3, 5
- bhi .L611
+ bhi .L624
add w1, w2, w1, lsl 4
sub w1, w1, #87
- b .L610
-.L611:
+ b .L623
+.L624:
sub w3, w2, #65
uxtb w3, w3
cmp w3, 5
- bhi .L615
+ bhi .L628
add w1, w2, w1, lsl 4
sub w1, w1, #55
-.L610:
+.L623:
add x0, x0, 1
- b .L608
-.L615:
+ b .L621
+.L628:
mov w0, w1
ret
.size str2hex, .-str2hex
@@ -3670,13 +3793,13 @@ zftl_proc_debug_init:
stp x29, x30, [sp, -16]!
adrp x3, .LANCHOR1
mov x2, 0
- adrp x0, .LC47
+ adrp x0, .LC48
add x3, x3, :lo12:.LANCHOR1
add x29, sp, 0
mov w1, 292
add x3, x3, 1096
mov x4, x2
- add x0, x0, :lo12:.LC47
+ add x0, x0, :lo12:.LC48
bl proc_create_data
ldp x29, x30, [sp], 16
ret
@@ -3698,11 +3821,11 @@ ftl_print_info_to_buf:
adrp x7, .LANCHOR2
adrp x22, .LANCHOR0
add x7, x7, :lo12:.LANCHOR2
- adrp x1, .LC48
+ adrp x1, .LC49
add x7, x7, 8
add x21, x22, :lo12:.LANCHOR0
add x19, x20, x0, sxtw
- add x1, x1, :lo12:.LC48
+ add x1, x1, :lo12:.LC49
ldrb w5, [x7,4]
mov x0, x19
ldrb w6, [x7,5]
@@ -3713,105 +3836,105 @@ ftl_print_info_to_buf:
bl sprintf
add x19, x19, x0, sxtw
ldr w2, [x21,520]
- adrp x1, .LC49
+ adrp x1, .LC50
mov x0, x19
- add x1, x1, :lo12:.LC49
+ add x1, x1, :lo12:.LC50
lsr w2, w2, 11
bl sprintf
add x19, x19, x0, sxtw
ldr w2, [x21,2836]
- adrp x1, .LC50
+ adrp x1, .LC51
mov x0, x19
- add x1, x1, :lo12:.LC50
+ add x1, x1, :lo12:.LC51
lsr w2, w2, 11
bl sprintf
add x19, x19, x0, sxtw
- adrp x1, .LC51
+ adrp x1, .LC52
mov x0, x19
- add x1, x1, :lo12:.LC51
+ add x1, x1, :lo12:.LC52
add x19, x19, 10
bl strcpy
ldr w2, [x21,2840]
- adrp x1, .LC52
- mov x0, x19
- add x1, x1, :lo12:.LC52
- bl sprintf
- add x19, x19, x0, sxtw
- ldr w2, [x21,520]
adrp x1, .LC53
mov x0, x19
add x1, x1, :lo12:.LC53
bl sprintf
add x19, x19, x0, sxtw
- ldr x2, [x21,608]
+ ldr w2, [x21,520]
adrp x1, .LC54
mov x0, x19
add x1, x1, :lo12:.LC54
- ldr w2, [x2,524]
bl sprintf
add x19, x19, x0, sxtw
ldr x2, [x21,608]
adrp x1, .LC55
mov x0, x19
add x1, x1, :lo12:.LC55
- ldr w2, [x2,528]
+ ldr w2, [x2,524]
bl sprintf
add x19, x19, x0, sxtw
- ldrh w2, [x21,2844]
+ ldr x2, [x21,608]
adrp x1, .LC56
mov x0, x19
add x1, x1, :lo12:.LC56
+ ldr w2, [x2,528]
bl sprintf
add x19, x19, x0, sxtw
- ldrh w2, [x21,2846]
+ ldrh w2, [x21,2844]
adrp x1, .LC57
mov x0, x19
add x1, x1, :lo12:.LC57
bl sprintf
add x19, x19, x0, sxtw
- ldrh w2, [x21,2848]
+ ldrh w2, [x21,2846]
adrp x1, .LC58
mov x0, x19
add x1, x1, :lo12:.LC58
bl sprintf
add x19, x19, x0, sxtw
- ldrh w2, [x21,2850]
+ ldrh w2, [x21,2848]
adrp x1, .LC59
mov x0, x19
add x1, x1, :lo12:.LC59
bl sprintf
add x19, x19, x0, sxtw
- ldrh w2, [x21,2852]
+ ldrh w2, [x21,2850]
adrp x1, .LC60
mov x0, x19
add x1, x1, :lo12:.LC60
bl sprintf
add x19, x19, x0, sxtw
- ldrh w2, [x21,2854]
+ ldrh w2, [x21,2852]
adrp x1, .LC61
mov x0, x19
add x1, x1, :lo12:.LC61
bl sprintf
add x19, x19, x0, sxtw
- ldrb w4, [x21,2857]
+ ldrh w2, [x21,2854]
adrp x1, .LC62
- ldrb w2, [x21,2834]
mov x0, x19
- ldrb w3, [x21,2856]
add x1, x1, :lo12:.LC62
bl sprintf
add x19, x19, x0, sxtw
- ldr x3, [x21,2864]
+ ldrb w4, [x21,2857]
adrp x1, .LC63
+ ldrb w2, [x21,2834]
mov x0, x19
+ ldrb w3, [x21,2856]
add x1, x1, :lo12:.LC63
+ bl sprintf
+ add x19, x19, x0, sxtw
+ ldr x3, [x21,2864]
+ adrp x1, .LC64
+ mov x0, x19
+ add x1, x1, :lo12:.LC64
ldrh w2, [x3,148]
ldrh w3, [x3,146]
bl sprintf
add x19, x19, x0, sxtw
ldr x0, [x21,2864]
- adrp x1, .LC64
- add x1, x1, :lo12:.LC64
+ adrp x1, .LC65
+ add x1, x1, :lo12:.LC65
ldr w3, [x0,16]
ldr w2, [x0,20]
mov x0, x19
@@ -3819,8 +3942,8 @@ ftl_print_info_to_buf:
bl sprintf
add x19, x19, x0, sxtw
ldr x0, [x21,2864]
- adrp x1, .LC65
- add x1, x1, :lo12:.LC65
+ adrp x1, .LC66
+ add x1, x1, :lo12:.LC66
ldr w3, [x0,24]
ldr w2, [x0,28]
mov x0, x19
@@ -3828,107 +3951,107 @@ ftl_print_info_to_buf:
bl sprintf
add x19, x19, x0, sxtw
ldr x2, [x21,2864]
- adrp x1, .LC66
+ adrp x1, .LC67
mov x0, x19
- add x1, x1, :lo12:.LC66
+ add x1, x1, :lo12:.LC67
ldr w2, [x2,64]
bl sprintf
add x19, x19, x0, sxtw
ldr x2, [x21,2864]
- adrp x1, .LC67
+ adrp x1, .LC68
mov x0, x19
- add x1, x1, :lo12:.LC67
+ add x1, x1, :lo12:.LC68
ldr w2, [x2,68]
bl sprintf
add x19, x19, x0, sxtw
ldr x0, [x21,608]
mov w2, 10
- adrp x1, .LC68
- add x1, x1, :lo12:.LC68
+ adrp x1, .LC69
+ add x1, x1, :lo12:.LC69
ldr w3, [x0,12]
mov x0, x19
udiv w2, w3, w2
bl sprintf
add x19, x19, x0, sxtw
ldrb w2, [x22,#:lo12:.LANCHOR0]
- adrp x1, .LC69
- mov x0, x19
- add x1, x1, :lo12:.LC69
- bl sprintf
- add x19, x19, x0, sxtw
- ldr x2, [x21,608]
adrp x1, .LC70
mov x0, x19
add x1, x1, :lo12:.LC70
- ldr w2, [x2,556]
bl sprintf
add x19, x19, x0, sxtw
ldr x2, [x21,608]
adrp x1, .LC71
mov x0, x19
add x1, x1, :lo12:.LC71
- ldr w2, [x2,552]
+ ldr w2, [x2,556]
bl sprintf
add x19, x19, x0, sxtw
- ldr x2, [x21,2864]
+ ldr x2, [x21,608]
adrp x1, .LC72
mov x0, x19
add x1, x1, :lo12:.LC72
- ldr w2, [x2,52]
+ ldr w2, [x2,552]
bl sprintf
add x19, x19, x0, sxtw
ldr x2, [x21,2864]
adrp x1, .LC73
mov x0, x19
add x1, x1, :lo12:.LC73
- ldr w2, [x2,60]
+ ldr w2, [x2,52]
bl sprintf
add x19, x19, x0, sxtw
ldr x2, [x21,2864]
adrp x1, .LC74
mov x0, x19
add x1, x1, :lo12:.LC74
- ldr w2, [x2,76]
+ ldr w2, [x2,60]
bl sprintf
add x19, x19, x0, sxtw
ldr x2, [x21,2864]
adrp x1, .LC75
mov x0, x19
add x1, x1, :lo12:.LC75
- ldr w2, [x2,8]
+ ldr w2, [x2,76]
bl sprintf
add x19, x19, x0, sxtw
- ldr x4, [x21,608]
+ ldr x2, [x21,2864]
adrp x1, .LC76
mov x0, x19
add x1, x1, :lo12:.LC76
+ ldr w2, [x2,8]
+ bl sprintf
+ add x19, x19, x0, sxtw
+ ldr x4, [x21,608]
+ adrp x1, .LC77
+ mov x0, x19
+ add x1, x1, :lo12:.LC77
ldrh w2, [x4,16]
ldrh w3, [x4,22]
ldrb w4, [x4,25]
bl sprintf
add x19, x19, x0, sxtw
ldr x4, [x21,608]
- adrp x1, .LC77
+ adrp x1, .LC78
mov x0, x19
- add x1, x1, :lo12:.LC77
+ add x1, x1, :lo12:.LC78
ldrh w2, [x4,48]
ldrh w3, [x4,54]
ldrb w4, [x4,57]
bl sprintf
add x19, x19, x0, sxtw
ldr x4, [x21,608]
- adrp x1, .LC78
+ adrp x1, .LC79
mov x0, x19
- add x1, x1, :lo12:.LC78
+ add x1, x1, :lo12:.LC79
ldrh w2, [x4,80]
ldrh w3, [x4,86]
ldrb w4, [x4,89]
bl sprintf
add x19, x19, x0, sxtw
ldr x6, [x21,2864]
- adrp x1, .LC79
+ adrp x1, .LC80
mov x0, x19
- add x1, x1, :lo12:.LC79
+ add x1, x1, :lo12:.LC80
ldrh w2, [x6,74]
ldr w3, [x6,84]
ldrh w4, [x6,88]
@@ -3937,9 +4060,9 @@ ftl_print_info_to_buf:
bl sprintf
add x19, x19, x0, sxtw
ldr x6, [x21,2864]
- adrp x1, .LC80
+ adrp x1, .LC81
mov x0, x19
- add x1, x1, :lo12:.LC80
+ add x1, x1, :lo12:.LC81
ldr w3, [x6,80]
ldrh w4, [x6,90]
ldrh w5, [x6,94]
@@ -3948,30 +4071,42 @@ ftl_print_info_to_buf:
bl sprintf
add x19, x19, x0, sxtw
ldrh w2, [x21,2872]
- adrp x1, .LC81
+ adrp x1, .LC82
mov x0, x19
- add x1, x1, :lo12:.LC81
+ add x1, x1, :lo12:.LC82
bl sprintf
add x19, x19, x0, sxtw
ldr w6, [x21,2884]
- adrp x1, .LC82
+ adrp x1, .LC83
ldrh w2, [x21,2874]
mov x0, x19
ldrh w3, [x21,2876]
- add x1, x1, :lo12:.LC82
+ add x1, x1, :lo12:.LC83
ldrh w4, [x21,2878]
ldrh w5, [x21,2880]
bl sprintf
add x19, x19, x0, sxtw
ldr x5, [x21,608]
- adrp x1, .LC83
+ adrp x1, .LC84
mov x0, x19
- add x1, x1, :lo12:.LC83
+ add x1, x1, :lo12:.LC84
ldrh w2, [x5,584]
ldrh w3, [x5,586]
ldrh w4, [x5,588]
ldrh w5, [x5,590]
bl sprintf
+ add x19, x19, x0, sxtw
+ ldr x6, [x21,608]
+ adrp x1, .LC85
+ ldr x5, [x21,2864]
+ mov x0, x19
+ add x1, x1, :lo12:.LC85
+ ldr w2, [x6,536]
+ ldr w3, [x6,540]
+ ldr w4, [x6,544]
+ ldr w5, [x5,44]
+ ldr w6, [x6,548]
+ bl sprintf
add x0, x19, x0, sxtw
ldp x21, x22, [sp,32]
sub w0, w0, w20
@@ -4041,16 +4176,16 @@ gc_add_sblk:
uxth w20, w2
ldrh w0, [x0,576]
cmp w0, w21
- bhi .L623
+ bhi .L636
adrp x1, .LANCHOR1
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR1
- mov w2, 259
+ mov w2, 339
add x1, x1, 1312
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L623:
+.L636:
add x6, x22, :lo12:.LANCHOR0
uxtw x19, w21
lsl x25, x19, 1
@@ -4058,7 +4193,7 @@ gc_add_sblk:
ldr x0, [x6,600]
ldrh w26, [x0,x25]
ldr w0, [x24,#:lo12:.LANCHOR2]
- tbz x0, 8, .L624
+ tbz x0, 8, .L637
ldr x0, [x6,584]
mov w1, w21
ldrh w5, [x6,2952]
@@ -4067,137 +4202,137 @@ gc_add_sblk:
ldrh w6, [x6,2878]
mov w4, w26
ldrb w3, [x0,2]
- adrp x0, .LC84
- add x0, x0, :lo12:.LC84
+ adrp x0, .LC86
+ add x0, x0, :lo12:.LC86
ubfx x3, x3, 5, 3
bl printk
-.L624:
+.L637:
add x3, x22, :lo12:.LANCHOR0
ldr x0, [x3,584]
add x0, x0, x19, lsl 2
ldrb w19, [x0,2]
ands w19, w19, 224
- bne .L625
- cbz w26, .L626
+ bne .L638
+ cbz w26, .L639
adrp x1, .LANCHOR1
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR1
- mov w2, 264
+ mov w2, 344
add x1, x1, 1312
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
- b .L626
-.L625:
+ b .L639
+.L638:
ldrh w1, [x3,2896]
add x6, x3, 2896
mov w19, 0
cmp w1, w21
- beq .L626
+ beq .L639
ldr x3, [x3,608]
ldrh w1, [x3,48]
cmp w1, w21
- beq .L626
+ beq .L639
ldrh w1, [x3,16]
cmp w1, w21
- beq .L626
+ beq .L639
ldrh w1, [x3,80]
cmp w1, w21
- beq .L626
+ beq .L639
ldrh w5, [x6,56]
mov x4, 0
-.L627:
+.L640:
cmp w5, w4
- bls .L658
+ bls .L671
add x4, x4, 1
add x1, x6, x4, lsl 1
ldrh w1, [x1,56]
cmp w1, w21
- bne .L627
+ bne .L640
mov w19, 0
- b .L626
-.L658:
- cbnz w23, .L629
+ b .L639
+.L671:
+ cbnz w23, .L642
add x4, x22, :lo12:.LANCHOR0
mov w19, w23
ldrh w7, [x4,3224]
cmp w7, w21
- beq .L626
+ beq .L639
mov x6, 0
-.L631:
+.L644:
add x1, x4, 3232
ldrh w1, [x6,x1]
cmp w21, w1
- bne .L630
+ bne .L643
ldr w1, [x24,#:lo12:.LANCHOR2]
mov w19, 0
- tbz x1, 8, .L626
+ tbz x1, 8, .L639
ldr x3, [x4,600]
mov w1, w21
ldrb w2, [x0,2]
- adrp x0, .LC85
+ adrp x0, .LC87
mov w4, w21
mov w5, w7
ldrh w3, [x3,x25]
ubfx x2, x2, 5, 3
- add x0, x0, :lo12:.LC85
+ add x0, x0, :lo12:.LC87
bl printk
- b .L626
-.L630:
+ b .L639
+.L643:
add x6, x6, 2
cmp x6, 16
- bne .L631
+ bne .L644
sxtw x4, w20
add x3, x3, x4, lsl 7
add x19, x3, 136
- b .L633
-.L629:
+ b .L646
+.L642:
add x19, x3, 392
-.L633:
+.L646:
ldr w1, [x24,#:lo12:.LANCHOR2]
- tbz x1, 8, .L634
+ tbz x1, 8, .L647
add x6, x22, :lo12:.LANCHOR0
ldrb w3, [x0,2]
- adrp x0, .LC84
+ adrp x0, .LC86
mov w1, w21
- add x0, x0, :lo12:.LC84
+ add x0, x0, :lo12:.LC86
mov w2, w23
ldr x4, [x6,600]
ubfx x3, x3, 5, 3
ldrh w6, [x6,2878]
ldrh w4, [x4,x25]
bl printk
-.L634:
+.L647:
mov x3, x19
add x0, x19, 128
mov w1, 65535
-.L637:
+.L650:
ldrh w2, [x3]
cmp w2, w1
- bne .L635
+ bne .L648
strh w21, [x3]
add x22, x22, :lo12:.LANCHOR0
- cbz w23, .L636
+ cbz w23, .L649
ldr x1, [x22,608]
ldrh w0, [x1,124]
add w0, w0, 1
strh w0, [x1,124]
- b .L657
-.L636:
+ b .L670
+.L649:
ldr x0, [x22,608]
add x2, x0, x20, uxth 1
ldrh w0, [x2,120]
add w0, w0, 1
strh w0, [x2,120]
-.L657:
+.L670:
mov w19, 1
- b .L626
-.L635:
+ b .L639
+.L648:
add x3, x3, 2
cmp x3, x0
- bne .L637
- b .L657
-.L626:
+ bne .L650
+ b .L670
+.L639:
mov w0, w19
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -4231,97 +4366,113 @@ gc_write_completed:
stp x19, x20, [sp,16]
stp x25, x26, [sp,64]
str x27, [sp,80]
- add x23, x21, 784
+ add x24, x21, 784
add x22, x22, 1328
-.L661:
+.L674:
ldrb w0, [x21,3256]
adrp x19, .LANCHOR0
cmp w0, 255
- beq .L683
+ beq .L704
sxtw x25, w0
lsl x0, x25, 6
- add x2, x23, x0
- ldrb w0, [x23,x0]
+ add x2, x24, x0
+ ldrb w0, [x24,x0]
ldr w1, [x2,52]
strb w0, [x21,3256]
- ldrh w24, [x2,48]
- cbz w1, .L662
+ ldrh w23, [x2,48]
+ cbz w1, .L675
ldr w2, [x2,40]
- adrp x0, .LC86
+ adrp x0, .LC88
mov w3, 1
- add x0, x0, :lo12:.LC86
+ add x0, x0, :lo12:.LC88
strh w3, [x21,3216]
str w2, [x21,3220]
bl printk
adrp x0, .LC0
mov x1, x22
- mov w2, 545
+ mov w2, 625
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L662:
- add x0, x19, :lo12:.LANCHOR0
- mov w20, 1
- ldrb w1, [x0,3257]
- cmp w1, 3
- bne .L663
- ldr x0, [x0,608]
+.L675:
+ add x1, x19, :lo12:.LANCHOR0
+ ldrb w0, [x1,3257]
+ cmp w0, 3
+ bne .L676
+ ldr x0, [x1,608]
ldrb w20, [x0,89]
add w20, w20, w20, lsl 1
and w20, w20, 1023
-.L663:
+ b .L677
+.L676:
+ ldrb w0, [x1,3258]
+ mov w20, 1
+ cbz w0, .L677
+ ldrb w0, [x1,3259]
+ cbz w0, .L677
+ ldr x0, [x1,608]
+ ldrb w20, [x0,89]
+ ubfiz w20, w20, 1, 8
+.L677:
adrp x0, .LANCHOR2
- uxth x26, w24
+ uxth x26, w23
ldr w0, [x0,#:lo12:.LANCHOR2]
- tbz x0, 8, .L664
+ tbz x0, 8, .L678
add x0, x19, :lo12:.LANCHOR0
- mov w1, w24
+ mov w1, w23
add x2, x0, x25, lsl 6
- mov w3, w24
+ mov w3, w23
ldr x4, [x0,3264]
- adrp x0, .LC87
+ adrp x0, .LC89
ldrb w2, [x2,785]
- add x0, x0, :lo12:.LC87
+ add x0, x0, :lo12:.LC89
ldrb w4, [x4,x26]
bl printk
-.L664:
+.L678:
add x0, x19, :lo12:.LANCHOR0
ldr x1, [x0,3264]
add x0, x0, x25, lsl 6
ldrb w1, [x1,x26]
ldrb w0, [x0,785]
cmp w1, w0
- beq .L665
+ beq .L679
adrp x0, .LC0
mov x1, x22
- mov w2, 552
+ mov w2, 634
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L665:
- add x2, x19, :lo12:.LANCHOR0
- add x1, x2, 784
+.L679:
+ add x1, x19, :lo12:.LANCHOR0
add x0, x1, x25, lsl 6
- ldrb w0, [x0,61]
+ ldrb w0, [x0,845]
cmp w0, 3
- beq .L666
- ldrb w0, [x2,3257]
+ beq .L680
+ ldrb w0, [x1,3257]
cmp w0, 3
- bne .L666
- ldrb w0, [x2,3272]
- cbnz w0, .L666
- ldr x3, [x2,3264]
- b .L667
-.L666:
+ bne .L680
+ ldrb w0, [x1,3272]
+ cbnz w0, .L680
+ ldrb w0, [x1,3258]
+ cbz w0, .L681
+ ldrb w0, [x1,3259]
+ cbnz w0, .L680
+.L681:
+ add x19, x19, :lo12:.LANCHOR0
+ mov w0, 0
+ add x19, x19, 784
+ ldr x2, [x19,2480]
+ b .L682
+.L680:
add x19, x19, :lo12:.LANCHOR0
mov w25, 0
mov w26, -1
add x27, x19, 784
- strh w24, [x19,3212]
-.L668:
+ strh w23, [x19,3212]
+.L683:
cmp w20, w25, uxth
- bls .L661
- add w1, w25, w24
+ bls .L674
+ add w1, w25, w23
ldr x2, [x19,3264]
add w25, w25, 1
ldrb w0, [x2,x1]
@@ -4333,17 +4484,17 @@ gc_write_completed:
ldrb w0, [x19,2903]
sub w0, w0, #1
strb w0, [x19,2903]
- b .L668
-.L667:
+ b .L683
+.L682:
cmp w20, w0, uxth
- bls .L661
- add w2, w0, w24
+ bls .L674
+ add w1, w0, w23
add w0, w0, 1
- ldrb w2, [x3,x2]
- add x2, x1, x2, lsl 6
- strb wzr, [x2,61]
- b .L667
-.L683:
+ ldrb w1, [x2,x1]
+ add x1, x19, x1, lsl 6
+ strb wzr, [x1,61]
+ b .L682
+.L704:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -4361,48 +4512,48 @@ gc_get_src_blk:
ldr x1, [x0,608]
ldrb w0, [x0,3273]
ldrh w4, [x1,124]
- cbz w4, .L685
+ cbz w4, .L706
add x1, x1, 392
mov w2, 1
- b .L686
-.L685:
+ b .L707
+.L706:
sxtw x2, w0
add x0, x1, x2, lsl 1
ldrh w5, [x0,120]
mov w0, 65535
- cbz w5, .L687
+ cbz w5, .L708
add x1, x1, x2, lsl 7
mov w2, w4
add x1, x1, 136
-.L686:
+.L707:
add x4, x1, 128
mov w5, 65535
-.L690:
+.L711:
ldrh w0, [x1]
cmp w0, w5
- beq .L688
+ beq .L709
mov w4, -1
strh w4, [x1]
add x3, x3, :lo12:.LANCHOR0
- cbz w2, .L689
+ cbz w2, .L710
ldr x2, [x3,608]
ldrh w1, [x2,124]
sub w1, w1, #1
strh w1, [x2,124]
- b .L687
-.L689:
+ b .L708
+.L710:
ldrb w1, [x3,3273]
ldr x2, [x3,608]
add x1, x2, x1, lsl 1
ldrh w2, [x1,120]
sub w2, w2, #1
strh w2, [x1,120]
- b .L687
-.L688:
+ b .L708
+.L709:
add x1, x1, 2
cmp x1, x4
- bne .L690
-.L687:
+ bne .L711
+.L708:
ret
.size gc_get_src_blk, .-gc_get_src_blk
.align 2
@@ -4417,10 +4568,10 @@ gc_free_temp_buf:
str x21, [sp,32]
add x2, x19, :lo12:.LANCHOR0
ldrb w3, [x2,2903]
- cbz w3, .L695
+ cbz w3, .L716
ldrb w3, [x2,2834]
cmp w3, 1
- bhi .L695
+ bhi .L716
ldrh w4, [x2,3274]
mov x20, x2
ldrb w0, [x2,3276]
@@ -4431,29 +4582,29 @@ gc_free_temp_buf:
ldr x4, [x2,2480]
cmp w0, w3
csel w3, w0, w3, ls
-.L696:
+.L717:
cmp w1, w3
- bcs .L709
+ bcs .L730
uxtw x21, w1
ldrb w0, [x4,x21]
cmp w0, 255
- beq .L697
+ beq .L718
sbfiz x0, x0, 6, 32
add x0, x2, x0
ldrb w5, [x0,61]
- cbnz w5, .L697
+ cbnz w5, .L718
str x1, [x29,56]
bl buf_free
adrp x0, .LANCHOR2
ldr x1, [x29,56]
ldr w0, [x0,#:lo12:.LANCHOR2]
- tbz x0, 8, .L698
+ tbz x0, 8, .L719
ldr x2, [x20,3264]
- adrp x0, .LC88
- add x0, x0, :lo12:.LC88
+ adrp x0, .LC90
+ add x0, x0, :lo12:.LC90
ldrb w2, [x2,x21]
bl printk
-.L698:
+.L719:
add x19, x19, :lo12:.LANCHOR0
mov w1, -1
ldr x0, [x19,3264]
@@ -4462,13 +4613,13 @@ gc_free_temp_buf:
sub w0, w0, #1
strb w0, [x19,2903]
mov w0, 1
- b .L695
-.L697:
+ b .L716
+.L718:
add w1, w1, 1
- b .L696
-.L709:
+ b .L717
+.L730:
mov w0, 0
-.L695:
+.L716:
ldp x19, x20, [sp,16]
ldr x21, [sp,32]
ldp x29, x30, [sp], 64
@@ -4479,9 +4630,9 @@ gc_free_temp_buf:
.type print_gc_debug_info, %function
print_gc_debug_info:
adrp x6, .LANCHOR0
- adrp x0, .LC89
+ adrp x0, .LC91
add x6, x6, :lo12:.LANCHOR0
- add x0, x0, :lo12:.LC89
+ add x0, x0, :lo12:.LC91
stp x29, x30, [sp, -16]!
add x29, sp, 0
ldrh w1, [x6,2896]
@@ -4503,23 +4654,23 @@ zftl_get_gc_node:
uxth w2, w0
cmp w1, 5
add x29, sp, 0
- bne .L712
+ bne .L733
adrp x0, .LANCHOR0+3280
ldr x0, [x0,#:lo12:.LANCHOR0+3280]
- b .L715
-.L712:
+ b .L736
+.L733:
cmp w1, 2
- bne .L714
+ bne .L735
mov w0, w2
bl zftl_get_gc_node.part.12
- b .L716
-.L714:
+ b .L737
+.L735:
adrp x0, .LANCHOR0+3288
ldr x0, [x0,#:lo12:.LANCHOR0+3288]
-.L715:
+.L736:
mov w1, w2
bl _list_get_gc_head_node.isra.5
-.L716:
+.L737:
uxth w0, w0
ldp x29, x30, [sp], 16
ret
@@ -4543,19 +4694,19 @@ gc_search_src_blk:
ldr x1, [x0,608]
add x1, x1, x21, sxtw 1
ldrh w19, [x1,120]
- cbnz w19, .L764
- cbnz w21, .L720
- adrp x26, .LC90
+ cbnz w19, .L785
+ cbnz w21, .L741
+ adrp x26, .LC92
strh w21, [x0,3296]
mov w19, w21
mov w25, w21
uxth w23, w22
mov w27, 65535
adrp x28, .LANCHOR2
- add x26, x26, :lo12:.LC90
-.L721:
+ add x26, x26, :lo12:.LC92
+.L742:
cmp w25, w23
- bcs .L726
+ bcs .L747
add x3, x20, :lo12:.LANCHOR0
mov w1, 3
str x3, [x29,96]
@@ -4571,10 +4722,10 @@ gc_search_src_blk:
add w2, w2, 1
uxth w2, w2
strh w2, [x3,3296]
- beq .L722
+ beq .L743
ldr w0, [x28,#:lo12:.LANCHOR2]
uxtw x5, w1
- tbz x0, 8, .L723
+ tbz x0, 8, .L744
ldr x3, [x3,600]
mov x0, x26
str x4, [x29,96]
@@ -4583,40 +4734,40 @@ gc_search_src_blk:
bl printk
ldr x4, [x29,96]
ldr x5, [x29,104]
-.L723:
+.L744:
add x1, x20, :lo12:.LANCHOR0
ldr x0, [x1,600]
ldrh w2, [x0,x5,lsl 1]
ldrh w0, [x1,2878]
cmp w2, w0
- bcs .L724
+ bcs .L745
mov w1, 0
mov w0, w4
mov w2, w1
bl gc_add_sblk
- cbz w0, .L725
+ cbz w0, .L746
add w19, w19, 1
uxth w19, w19
cmp w19, w23
- bls .L725
- b .L726
-.L724:
+ bls .L746
+ b .L747
+.L745:
strh wzr, [x1,3296]
- b .L726
-.L722:
+ b .L747
+.L743:
strh wzr, [x3,3296]
- b .L726
-.L725:
+ b .L747
+.L746:
add w25, w25, 1
uxth w25, w25
- b .L721
-.L726:
- tbz x24, 1, .L728
+ b .L742
+.L747:
+ tbz x24, 1, .L749
mov w26, 0
mov w27, 65535
-.L729:
+.L750:
cmp w26, w23
- beq .L733
+ beq .L754
add x25, x20, :lo12:.LANCHOR0
mov w1, 5
ldrh w28, [x25,3298]
@@ -4626,32 +4777,32 @@ gc_search_src_blk:
uxth w1, w0
strh w28, [x25,3298]
cmp w1, w27
- beq .L730
+ beq .L751
ubfiz x1, x1, 1, 16
ldr x2, [x25,600]
ldrh w2, [x2,x1]
ldrh w1, [x25,2880]
cmp w2, w1
- bcs .L730
+ bcs .L751
mov w1, 0
mov w2, w1
bl gc_add_sblk
- cbz w0, .L732
+ cbz w0, .L753
add w19, w19, 1
uxth w19, w19
cmp w19, w23
- bls .L732
- b .L735
-.L730:
+ bls .L753
+ b .L756
+.L751:
strh wzr, [x25,3298]
- b .L733
-.L732:
+ b .L754
+.L753:
add w26, w26, 1
uxth w26, w26
- b .L729
-.L733:
+ b .L750
+.L754:
cmp w19, w23
- bcs .L735
+ bcs .L756
add x0, x20, :lo12:.LANCHOR0
ldrh w1, [x0,3274]
ldrb w4, [x0,3276]
@@ -4660,27 +4811,27 @@ gc_search_src_blk:
mul w1, w1, w4
sub w1, w1, w2, lsr 2
cmp w3, w1
- bge .L728
+ bge .L749
add w2, w3, w2, lsr 3
strh w2, [x0,2880]
- b .L728
-.L735:
+ b .L749
+.L756:
add x1, x20, :lo12:.LANCHOR0
ldrh w2, [x1,2880]
ldrh w0, [x1,3300]
cmp w2, w0
- bls .L728
+ bls .L749
sub w0, w2, w0, lsr 3
strh w0, [x1,2880]
-.L728:
- tbz x24, 0, .L736
+.L749:
+ tbz x24, 0, .L757
cmp w19, w23
- bcs .L736
+ bcs .L757
mov w25, 0
mov w27, 65535
-.L737:
+.L758:
cmp w25, w23
- beq .L740
+ beq .L761
add x28, x20, :lo12:.LANCHOR0
ldrh w26, [x28,3302]
mov w0, w26
@@ -4688,57 +4839,57 @@ gc_search_src_blk:
bl zftl_get_gc_node.part.12
strh w26, [x28,3302]
cmp w27, w0, uxth
- beq .L738
+ beq .L759
mov w1, 0
mov w2, w1
bl gc_add_sblk
- cbz w0, .L739
+ cbz w0, .L760
add w19, w19, 1
uxth w19, w19
cmp w19, w23
- bcc .L739
- b .L742
-.L738:
+ bcc .L760
+ b .L763
+.L759:
strh wzr, [x28,3302]
- b .L740
-.L739:
+ b .L761
+.L760:
add w25, w25, 1
uxth w25, w25
- b .L737
-.L740:
+ b .L758
+.L761:
cmp w19, w23
- bcs .L742
+ bcs .L763
add x20, x20, :lo12:.LANCHOR0
ldrh w1, [x20,2878]
ldrh w0, [x20,3300]
cmp w1, w0
- bcs .L736
+ bcs .L757
add w0, w1, w0, lsr 3
- b .L817
-.L742:
+ b .L838
+.L763:
add x20, x20, :lo12:.LANCHOR0
ldrh w0, [x20,3300]
ldrh w1, [x20,2878]
cmp w1, w0, lsr 1
- bls .L736
+ bls .L757
sub w0, w1, w0, lsr 3
-.L817:
+.L838:
strh w0, [x20,2878]
- b .L736
-.L720:
+ b .L757
+.L741:
and w1, w24, 1
strh w19, [x0,3214]
strh w19, [x0,3304]
str w1, [x29,104]
- tbz x24, 0, .L743
+ tbz x24, 0, .L764
ldrh w2, [x0,3306]
ldrh w1, [x0,2852]
cmp w1, w2, lsr 2
- bcc .L744
+ bcc .L765
ldrh w0, [x0,2850]
cmp w0, w1
- bls .L745
-.L744:
+ bls .L766
+.L765:
add x23, x20, :lo12:.LANCHOR0
mov w19, 0
ldrh w0, [x23,2850]
@@ -4749,24 +4900,24 @@ gc_search_src_blk:
uxth w1, w0
mov w2, 65535
cmp w1, w2
- beq .L746
+ beq .L767
ubfiz x1, x1, 1, 16
ldr x3, [x23,600]
ldrh w2, [x23,3300]
ldrh w1, [x3,x1]
cmp w1, w2, lsr 2
- bcs .L746
+ bcs .L767
mov w1, w19
mov w2, w21
strh w19, [x23,3302]
bl gc_add_sblk
cmp w0, w19
cset w19, ne
-.L746:
+.L767:
mov w23, 64
mov w26, 65535
uxth w27, w22
-.L748:
+.L769:
add x25, x20, :lo12:.LANCHOR0
ldrh w28, [x25,3302]
mov w0, w28
@@ -4774,38 +4925,38 @@ gc_search_src_blk:
bl zftl_get_gc_node.part.12
strh w28, [x25,3302]
cmp w26, w0, uxth
- beq .L745
+ beq .L766
mov w1, 0
mov w2, w21
bl gc_add_sblk
- cbz w0, .L747
+ cbz w0, .L768
add w19, w19, 1
uxth w19, w19
cmp w19, w27
- bcs .L745
-.L747:
+ bcs .L766
+.L768:
sub w23, w23, #1
uxth w23, w23
- cbnz w23, .L748
-.L745:
+ cbnz w23, .L769
+.L766:
add x0, x20, :lo12:.LANCHOR0
ldrh w2, [x0,3306]
ldrh w1, [x0,2852]
cmp w1, w2, lsr 3
- bhi .L765
+ bhi .L786
ldrh w0, [x0,2850]
add w0, w0, 8
cmp w1, w0
- bgt .L765
-.L743:
- tbz x24, 1, .L751
+ bgt .L786
+.L764:
+ tbz x24, 1, .L772
add x0, x20, :lo12:.LANCHOR0
mov w25, 64
mov w26, 0
mov w27, 65535
uxth w28, w22
strh wzr, [x0,3298]
-.L756:
+.L777:
add x23, x20, :lo12:.LANCHOR0
mov w1, 5
ldrh w2, [x23,3298]
@@ -4817,51 +4968,51 @@ gc_search_src_blk:
cmp w1, w27
add w2, w2, 1
strh w2, [x23,3298]
- beq .L752
+ beq .L773
cmp w22, 1
- bne .L753
+ bne .L774
ldrh w3, [x23,3274]
ldrb w2, [x23,3276]
mul w2, w2, w3
ldrh w3, [x23,3300]
sub w2, w2, w3, lsr 3
strh w2, [x23,2874]
-.L753:
+.L774:
add x2, x20, :lo12:.LANCHOR0
ubfiz x1, x1, 1, 16
ldr x3, [x2,600]
ldrh w3, [x3,x1]
ldrh w1, [x2,2874]
cmp w3, w1
- bcs .L754
+ bcs .L775
mov w1, 0
mov w2, w21
bl gc_add_sblk
- cbz w0, .L755
+ cbz w0, .L776
add w19, w19, 1
add w26, w26, 1
uxth w19, w19
uxth w26, w26
cmp w19, w28
- bcc .L755
- b .L752
-.L754:
+ bcc .L776
+ b .L773
+.L775:
strh wzr, [x2,3298]
- b .L752
-.L755:
+ b .L773
+.L776:
sub w0, w25, #1
uxth w25, w0
- cbnz w25, .L756
-.L752:
+ cbnz w25, .L777
+.L773:
cmp w19, w22
- bcc .L757
- cbnz w26, .L758
+ bcc .L778
+ cbnz w26, .L779
add x0, x20, :lo12:.LANCHOR0
ldrh w1, [x0,2854]
ldrh w0, [x0,3308]
cmp w1, w0
- bls .L758
-.L757:
+ bls .L779
+.L778:
add x0, x20, :lo12:.LANCHOR0
ldrh w1, [x0,3274]
ldrb w4, [x0,3276]
@@ -4871,29 +5022,29 @@ gc_search_src_blk:
lsr w3, w3, 3
sub w1, w1, w3
cmp w2, w1
- bge .L751
+ bge .L772
add w2, w3, w2
strh w2, [x0,2874]
- b .L751
-.L758:
+ b .L772
+.L779:
add x0, x20, :lo12:.LANCHOR0
ldrh w1, [x0,3300]
ldrb w2, [x0,3276]
ldrh w3, [x0,2874]
mul w2, w1, w2
cmp w3, w2
- ble .L751
+ ble .L772
sub w1, w3, w1, lsr 3
strh w1, [x0,2874]
-.L751:
+.L772:
ldr w0, [x29,104]
- cbz w0, .L736
+ cbz w0, .L757
add x0, x20, :lo12:.LANCHOR0
mov w25, 64
mov w26, 65535
uxth w27, w22
strh wzr, [x0,3296]
-.L762:
+.L783:
add x23, x20, :lo12:.LANCHOR0
mov w1, 3
ldrh w28, [x23,3296]
@@ -4903,65 +5054,65 @@ gc_search_src_blk:
uxth w1, w0
strh w28, [x23,3296]
cmp w1, w26
- beq .L759
+ beq .L780
ubfiz x1, x1, 1, 16
ldr x2, [x23,600]
ldrh w1, [x2,x1]
cmp w1, 2
- bls .L760
+ bls .L781
ldrh w2, [x23,2876]
cmp w2, w1
- bls .L760
+ bls .L781
ldrh w2, [x23,3306]
ldrh w1, [x23,2852]
cmp w1, w2, lsr 1
- bls .L759
-.L760:
+ bls .L780
+.L781:
mov w1, 0
mov w2, w21
bl gc_add_sblk
- cbz w0, .L761
+ cbz w0, .L782
add w19, w19, 1
uxth w19, w19
cmp w19, w27
- bcs .L759
-.L761:
+ bcs .L780
+.L782:
sub w25, w25, #1
uxth w25, w25
- cbnz w25, .L762
-.L759:
+ cbnz w25, .L783
+.L780:
cmp w19, w22
add x20, x20, :lo12:.LANCHOR0
- bcs .L763
+ bcs .L784
ldrh w0, [x20,3300]
ldrh w1, [x20,2876]
cmp w1, w0, lsr 1
- bls .L736
+ bls .L757
sub w0, w1, w0, lsr 3
strh w0, [x20,2876]
- b .L736
-.L763:
+ b .L757
+.L784:
ldrh w1, [x20,3300]
ldrb w0, [x20,3276]
ldrh w2, [x20,2876]
mul w0, w1, w0
sub w0, w0, #32
cmp w2, w0
- bge .L736
+ bge .L757
add w1, w2, w1, lsr 3
strh w1, [x20,2876]
-.L736:
+.L757:
adrp x0, .LANCHOR2
ldr w0, [x0,#:lo12:.LANCHOR2]
- tbz x0, 8, .L764
- adrp x0, .LC91
+ tbz x0, 8, .L785
+ adrp x0, .LC93
mov w1, w21
- add x0, x0, :lo12:.LC91
+ add x0, x0, :lo12:.LC93
mov w2, w24
mov w3, w19
mov w4, w22
bl printk
-.L764:
+.L785:
mov w0, w19
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -4970,13 +5121,13 @@ gc_search_src_blk:
ldp x27, x28, [sp,80]
ldp x29, x30, [sp], 112
ret
-.L765:
+.L786:
add x0, x20, :lo12:.LANCHOR0
mov w23, 64
mov w26, 65535
uxth w27, w22
strh wzr, [x0,3296]
-.L750:
+.L771:
add x25, x20, :lo12:.LANCHOR0
mov w1, 3
ldrh w28, [x25,3296]
@@ -4985,20 +5136,20 @@ gc_search_src_blk:
bl zftl_get_gc_node
strh w28, [x25,3296]
cmp w26, w0, uxth
- beq .L743
+ beq .L764
mov w1, 0
mov w2, w21
bl gc_add_sblk
- cbz w0, .L749
+ cbz w0, .L770
add w19, w19, 1
uxth w19, w19
cmp w19, w27
- bcs .L743
-.L749:
+ bcs .L764
+.L770:
sub w23, w23, #1
uxth w23, w23
- cbnz w23, .L750
- b .L743
+ cbnz w23, .L771
+ b .L764
.size gc_search_src_blk, .-gc_search_src_blk
.align 2
.global zftl_insert_free_list
@@ -5013,20 +5164,20 @@ zftl_insert_free_list:
add x0, x0, x1, uxth 2
ldrb w0, [x0,2]
ands w0, w0, 24
- bne .L819
+ bne .L840
add x0, x2, 3312
add x2, x2, 2844
- b .L822
-.L819:
+ b .L843
+.L840:
cmp w0, 16
- bne .L821
+ bne .L842
add x0, x2, 3320
add x2, x2, 2846
- b .L822
-.L821:
+ b .L843
+.L842:
add x0, x2, 3328
add x2, x2, 2848
-.L822:
+.L843:
bl _insert_free_list
ldp x29, x30, [sp], 16
ret
@@ -5045,24 +5196,24 @@ zftl_insert_data_list:
ldrb w3, [x0,2]
and w3, w3, 224
cmp w3, 64
- bne .L824
+ bne .L845
add x0, x2, 616
add x2, x2, 2850
- b .L827
-.L824:
+ b .L848
+.L845:
cmp w3, 96
- bne .L826
+ bne .L847
add x0, x2, 3288
add x2, x2, 2852
- b .L827
-.L826:
+ b .L848
+.L847:
cmp w3, 160
- bne .L823
+ bne .L844
add x0, x2, 3280
add x2, x2, 2854
-.L827:
+.L848:
bl _insert_data_list
-.L823:
+.L844:
ldp x29, x30, [sp], 16
ret
.size zftl_insert_data_list, .-zftl_insert_data_list
@@ -5081,24 +5232,24 @@ zftl_gc_get_free_sblk:
uxth w22, w1
ldr x0, [x23,608]
ldrh w19, [x0,588]
- cbnz w21, .L829
+ cbnz w21, .L850
mov w0, 65535
cmp w19, w0
- beq .L829
- adrp x0, .LC92
+ beq .L850
+ adrp x0, .LC94
mov w1, w19
- add x0, x0, :lo12:.LC92
+ add x0, x0, :lo12:.LC94
bl printk
ldr x0, [x23,608]
mov w1, -1
strh w1, [x0,588]
- b .L830
-.L829:
+ b .L851
+.L850:
add x0, x20, :lo12:.LANCHOR0
ldrh w3, [x0,2846]
ldrh w1, [x0,2848]
cmp w3, w1
- bls .L831
+ bls .L852
mov w1, 0
mov x2, x0
lsr w3, w3, 3
@@ -5106,39 +5257,39 @@ zftl_gc_get_free_sblk:
csel w1, w3, w1, ne
add x0, x0, 3320
add x2, x2, 2846
- b .L849
-.L831:
+ b .L870
+.L852:
lsr w1, w1, 2
- cbz w21, .L835
+ cbz w21, .L856
mov w1, 7
mul w3, w3, w1
mov w1, 8
sdiv w3, w3, w1
uxth w1, w3
-.L835:
+.L856:
add x2, x20, :lo12:.LANCHOR0
add x0, x2, 3328
add x2, x2, 2848
-.L849:
+.L870:
bl _list_pop_index_node
uxth w19, w0
mov w0, 65535
cmp w19, w0
- bne .L836
+ bne .L857
add x5, x20, :lo12:.LANCHOR0
- adrp x0, .LC93
- add x0, x0, :lo12:.LC93
+ adrp x0, .LC95
+ add x0, x0, :lo12:.LC95
mov w1, w19
mov w2, w22
ldr x3, [x5,3312]
ldrh w4, [x5,2844]
ldrh w5, [x5,2848]
bl printk
-.L836:
- cbz w21, .L830
+.L857:
+ cbz w21, .L851
adrp x0, .LANCHOR2
ldr w0, [x0,#:lo12:.LANCHOR2]
- tbz x0, 8, .L830
+ tbz x0, 8, .L851
add x20, x20, :lo12:.LANCHOR0
uxtw x6, w19
lsl x0, x6, 2
@@ -5147,9 +5298,9 @@ zftl_gc_get_free_sblk:
add x2, x1, x0
ldr w4, [x1,x0]
ldrh w5, [x1,x0]
- adrp x0, .LC94
+ adrp x0, .LC96
ldrb w3, [x2,2]
- add x0, x0, :lo12:.LC94
+ add x0, x0, :lo12:.LC96
ldrh w6, [x7,x6,lsl 1]
mov w1, w19
ubfx x2, x3, 5, 3
@@ -5157,7 +5308,7 @@ zftl_gc_get_free_sblk:
ubfx x3, x3, 3, 2
and w5, w5, 2047
bl printk
-.L830:
+.L851:
mov w0, w19
ldr x23, [sp,48]
ldp x19, x20, [sp,16]
@@ -5177,65 +5328,65 @@ zftl_get_free_sblk:
stp x19, x20, [sp,16]
cmp w21, 5
adrp x19, .LANCHOR0
- bne .L851
+ bne .L872
add x0, x19, :lo12:.LANCHOR0
ldrh w2, [x0,2846]
ldrh w1, [x0,2848]
cmp w2, w1
- bcc .L852
+ bcc .L873
ldrh w0, [x0,2844]
cmp w0, w2
- bls .L853
- cbz w1, .L853
-.L852:
+ bls .L874
+ cbz w1, .L874
+.L873:
add x2, x19, :lo12:.LANCHOR0
lsr w1, w1, 1
add x0, x2, 3328
- b .L881
-.L853:
+ b .L902
+.L874:
add x2, x19, :lo12:.LANCHOR0
mov w1, 0
add x0, x2, 3320
add x2, x2, 2846
- b .L880
-.L851:
+ b .L901
+.L872:
add x22, x19, :lo12:.LANCHOR0
cmp w21, 1
ldr x0, [x22,608]
ldrh w20, [x0,590]
- beq .L855
+ beq .L876
mov w0, 65535
cmp w20, w0
- beq .L855
- adrp x0, .LC95
+ beq .L876
+ adrp x0, .LC97
mov w1, w20
- add x0, x0, :lo12:.LC95
+ add x0, x0, :lo12:.LC97
bl printk
ldr x0, [x22,608]
mov w1, -1
strh w1, [x0,590]
- b .L856
-.L855:
+ b .L877
+.L876:
add x2, x19, :lo12:.LANCHOR0
ldrh w0, [x2,2844]
ldrh w1, [x2,2848]
cmp w0, w1
- bcc .L857
+ bcc .L878
ldrh w2, [x2,2846]
cmp w2, w0
- bls .L858
- cbz w1, .L858
-.L857:
+ bls .L879
+ cbz w1, .L879
+.L878:
lsr w1, w1, 1
cmp w21, 1
csel w3, w1, w3, eq
add x2, x19, :lo12:.LANCHOR0
add x0, x2, 3328
mov w1, w3
-.L881:
+.L902:
add x2, x2, 2848
- b .L880
-.L858:
+ b .L901
+.L879:
lsr w0, w0, 1
cmp w21, 1
csel w3, w0, w3, eq
@@ -5243,23 +5394,23 @@ zftl_get_free_sblk:
add x0, x2, 3312
mov w1, w3
add x2, x2, 2844
-.L880:
+.L901:
bl _list_pop_index_node
uxth w0, w0
mov w20, w0
mov w0, 65535
cmp w20, w0
- bne .L856
+ bne .L877
add x19, x19, :lo12:.LANCHOR0
- adrp x0, .LC93
- add x0, x0, :lo12:.LC93
+ adrp x0, .LC95
+ add x0, x0, :lo12:.LC95
mov w1, w20
mov w2, w21
ldr x3, [x19,3312]
ldrh w4, [x19,2844]
ldrh w5, [x19,2848]
bl printk
-.L856:
+.L877:
mov w0, w20
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -5280,24 +5431,24 @@ zftl_remove_data_node:
ldrb w3, [x0,2]
and w3, w3, 224
cmp w3, 64
- bne .L883
+ bne .L904
add x0, x2, 616
add x2, x2, 2850
- b .L886
-.L883:
+ b .L907
+.L904:
cmp w3, 96
- bne .L885
+ bne .L906
add x0, x2, 3288
add x2, x2, 2852
- b .L886
-.L885:
+ b .L907
+.L906:
cmp w3, 160
- bne .L882
+ bne .L903
add x0, x2, 3280
add x2, x2, 2854
-.L886:
+.L907:
bl _list_remove_node
-.L882:
+.L903:
ldp x29, x30, [sp], 16
ret
.size zftl_remove_data_node, .-zftl_remove_data_node
@@ -5314,20 +5465,20 @@ zftl_remove_free_node:
add x0, x0, x1, uxth 2
ldrb w0, [x0,2]
ands w0, w0, 24
- bne .L888
+ bne .L909
add x0, x2, 3312
add x2, x2, 2844
- b .L891
-.L888:
+ b .L912
+.L909:
cmp w0, 16
- bne .L890
+ bne .L911
add x0, x2, 3320
add x2, x2, 2846
- b .L891
-.L890:
+ b .L912
+.L911:
add x0, x2, 3328
add x2, x2, 2848
-.L891:
+.L912:
bl _list_remove_node
ldp x29, x30, [sp], 16
ret
@@ -5346,24 +5497,24 @@ zftl_list_update_data_list:
ldrb w3, [x0,2]
and w3, w3, 224
cmp w3, 64
- bne .L893
+ bne .L914
add x0, x2, 616
add x2, x2, 2850
- b .L896
-.L893:
+ b .L917
+.L914:
cmp w3, 96
- bne .L895
+ bne .L916
add x0, x2, 3288
add x2, x2, 2852
- b .L896
-.L895:
+ b .L917
+.L916:
cmp w3, 160
- bne .L892
+ bne .L913
add x0, x2, 3280
add x2, x2, 2854
-.L896:
+.L917:
bl _list_update_data_list
-.L892:
+.L913:
ldp x29, x30, [sp], 16
ret
.size zftl_list_update_data_list, .-zftl_list_update_data_list
@@ -5376,25 +5527,25 @@ print_list_info:
add x29, sp, 32
stp x19, x20, [sp,48]
mov x19, x0
- adrp x0, .LC96
+ adrp x0, .LC98
stp x21, x22, [sp,64]
stp x23, x24, [sp,80]
stp x25, x26, [sp,96]
- add x0, x0, :lo12:.LC96
+ add x0, x0, :lo12:.LC98
ldrh w2, [x1]
ldr x1, [x19]
bl printk
ldr x19, [x19]
- cbz x19, .L897
+ cbz x19, .L918
mov x22, -6148914691236517206
- adrp x23, .LC97
+ adrp x23, .LC99
mov w20, 0
adrp x25, .LANCHOR0
add x22, x22, 1
- add x23, x23, :lo12:.LC97
+ add x23, x23, :lo12:.LC99
mov w26, 65535
mov w24, 6
-.L900:
+.L921:
add x21, x25, :lo12:.LANCHOR0
ldrh w3, [x19]
ldrh w4, [x19,2]
@@ -5425,7 +5576,7 @@ print_list_info:
bl printk
ldrh w19, [x19]
cmp w19, w26
- beq .L897
+ beq .L918
ldr x0, [x21,528]
add w20, w20, 1
umull x19, w19, w24
@@ -5433,8 +5584,8 @@ print_list_info:
add x19, x0, x19
ldrh w0, [x21,3336]
cmp w0, w20
- bcs .L900
-.L897:
+ bcs .L921
+.L918:
sub sp, x29, #32
ldp x19, x20, [sp,48]
ldp x21, x22, [sp,64]
@@ -5483,44 +5634,44 @@ ftl_tmp_into_update:
ldr x0, [x0,#:lo12:.LANCHOR0+2864]
ldr w2, [x0,16]
cmp w2, 2048
- bls .L903
+ bls .L924
lsr w1, w2, 11
ldr w3, [x0,20]
add w3, w3, w1
sub w1, w2, w1, lsl 11
str w3, [x0,20]
str w1, [x0,16]
-.L903:
+.L924:
ldr w2, [x0,24]
cmp w2, 2048
- bls .L904
+ bls .L925
lsr w1, w2, 11
ldr w3, [x0,28]
add w3, w3, w1
sub w1, w2, w1, lsl 11
str w3, [x0,28]
str w1, [x0,24]
-.L904:
+.L925:
ldr w2, [x0,32]
cmp w2, 1024
- bls .L905
+ bls .L926
lsr w1, w2, 10
ldr w3, [x0,36]
add w3, w3, w1
sub w1, w2, w1, lsl 10
str w3, [x0,36]
str w1, [x0,32]
-.L905:
+.L926:
ldr w2, [x0,40]
cmp w2, 1024
- bls .L902
+ bls .L923
lsr w1, w2, 10
ldr w3, [x0,44]
add w3, w3, w1
sub w1, w2, w1, lsl 10
str w3, [x0,44]
str w1, [x0,40]
-.L902:
+.L923:
ret
.size ftl_tmp_into_update, .-ftl_tmp_into_update
.align 2
@@ -5536,13 +5687,13 @@ ftl_get_blk_list_in_sblk:
ldrb w11, [x2,3]
mov w2, 0
mov w6, w2
-.L908:
+.L929:
add x8, x7, :lo12:.LANCHOR0
ldrb w3, [x8,3276]
cmp w6, w3
- bge .L914
+ bge .L935
asr w3, w11, w6
- tbnz x3, 0, .L909
+ tbnz x3, 0, .L930
ldrb w5, [x8,3338]
sbfiz x10, x2, 1, 32
ldrh w3, [x8,3340]
@@ -5554,28 +5705,28 @@ ftl_get_blk_list_in_sblk:
strh w4, [x1,x10]
ldrb w3, [x8,3338]
cmp w3, 1
- bls .L910
+ bls .L931
sub w3, w3, #1
and w3, w6, w3
add w3, w4, w3
strh w3, [x1,x10]
-.L910:
+.L931:
add w2, w2, 1
-.L909:
+.L930:
add w6, w6, 1
- b .L908
-.L914:
+ b .L929
+.L935:
mov w0, w2
mov w4, -1
-.L912:
+.L933:
add x3, x7, :lo12:.LANCHOR0
ldrb w3, [x3,3276]
cmp w2, w3
- bge .L915
+ bge .L936
strh w4, [x1,w2,sxtw 1]
add w2, w2, 1
- b .L912
-.L915:
+ b .L933
+.L936:
ret
.size ftl_get_blk_list_in_sblk, .-ftl_get_blk_list_in_sblk
.align 2
@@ -5595,7 +5746,7 @@ ftl_free_sblk:
ldr x7, [x3,584]
add x20, x7, x19
ldrb w2, [x20,2]
- tbz x2, 3, .L918
+ tbz x2, 3, .L939
ldr x6, [x3,2864]
ldrh w4, [x7,x19]
ldrh w10, [x3,3342]
@@ -5612,14 +5763,14 @@ ftl_free_sblk:
udiv w6, w8, w4
add w6, w0, w6
cmp w6, w10
- ble .L919
+ ble .L940
ldrh w0, [x3,2846]
ldrh w6, [x3,2854]
add w6, w6, w0
ldrh w0, [x3,3308]
add w0, w0, 8
cmp w6, w0
- blt .L935
+ blt .L956
ldrh w0, [x3,2844]
ldrh w6, [x3,2850]
add w6, w6, w0
@@ -5628,13 +5779,13 @@ ftl_free_sblk:
ldrh w0, [x3,3344]
add w0, w0, 8
cmp w6, w0
- bge .L935
- b .L924
-.L919:
+ bge .L956
+ b .L945
+.L940:
madd w0, w0, w4, w8
ldrh w6, [x3,3346]
cmp w0, w6
- ble .L921
+ ble .L942
ldrh w0, [x3,2844]
ldrh w6, [x3,2850]
add w6, w6, w0
@@ -5643,26 +5794,26 @@ ftl_free_sblk:
ldrh w0, [x3,3344]
add w0, w0, 8
cmp w6, w0
- blt .L924
+ blt .L945
ldrh w0, [x3,2846]
ldrh w6, [x3,2854]
add w6, w6, w0
ldrh w0, [x3,3308]
add w0, w0, 8
cmp w6, w0
- bge .L924
-.L935:
+ bge .L945
+.L956:
mov w0, 2
bfi w2, w0, 3, 2
- b .L933
-.L924:
+ b .L954
+.L945:
and w2, w2, -25
-.L933:
+.L954:
strb w2, [x20,2]
-.L921:
+.L942:
ldrb w0, [x20,2]
ands w0, w0, 24
- bne .L925
+ bne .L946
mul w4, w9, w4
ldrh w0, [x7,x19]
add w4, w4, w4, lsl 1
@@ -5670,10 +5821,10 @@ ftl_free_sblk:
ubfx x5, x4, 2, 9
bfi w0, w5, 0, 11
strh w0, [x7,x19]
- b .L918
-.L925:
+ b .L939
+.L946:
cmp w0, 16
- bne .L918
+ bne .L939
sdiv w4, w5, w4
ldr w0, [x7,x19]
add w4, w4, w4, lsl 1
@@ -5681,7 +5832,7 @@ ftl_free_sblk:
ubfx x4, x4, 2, 6
bfi w0, w4, 11, 8
str w0, [x7,x19]
-.L918:
+.L939:
mov w0, w1
str x1, [x29,56]
bl zftl_remove_data_node
@@ -5695,41 +5846,41 @@ ftl_free_sblk:
ldr x2, [x0,600]
strh wzr, [x2,x22,lsl 1]
ldrb w2, [x20,2]
- tbz x2, 3, .L927
+ tbz x2, 3, .L948
ldr x2, [x0,608]
ldrh w0, [x2,584]
cmp w0, w1
- bne .L928
+ bne .L949
mov w0, -1
ldrh w3, [x2,588]
strh w0, [x2,584]
mov w0, 65535
cmp w3, w0
- bne .L927
- adrp x0, .LC98
+ bne .L948
+ adrp x0, .LC100
strh w1, [x2,588]
- add x0, x0, :lo12:.LC98
- b .L934
-.L928:
+ add x0, x0, :lo12:.LC100
+ b .L955
+.L949:
ldrh w0, [x2,586]
cmp w0, w1
- bne .L927
+ bne .L948
mov w0, -1
ldrh w3, [x2,590]
strh w0, [x2,586]
mov w0, 65535
cmp w3, w0
- bne .L927
- adrp x0, .LC99
+ bne .L948
+ adrp x0, .LC101
strh w1, [x2,590]
- add x0, x0, :lo12:.LC99
-.L934:
+ add x0, x0, :lo12:.LC101
+.L955:
bl printk
- b .L916
-.L927:
+ b .L937
+.L948:
mov w0, w1
bl zftl_insert_free_list
-.L916:
+.L937:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x29, x30, [sp], 64
@@ -5752,129 +5903,129 @@ gc_free_src_blk:
mov w20, 0
add x24, x23, 2896
add x21, x21, 1352
-.L937:
+.L958:
ldrh w0, [x24,56]
adrp x25, .LANCHOR0
cmp w0, w20
- bls .L975
+ bls .L996
add x0, x24, x20, sxtw 1
ldrh w22, [x0,58]
ldr x0, [x23,600]
lsl x26, x22, 1
mov x19, x22
ldrh w2, [x0,x26]
- cbz w2, .L938
- adrp x0, .LC100
+ cbz w2, .L959
+ adrp x0, .LC102
mov w1, w22
- add x0, x0, :lo12:.LC100
+ add x0, x0, :lo12:.LC102
bl printk
-.L938:
+.L959:
add x0, x25, :lo12:.LANCHOR0
ldr x1, [x0,600]
strh wzr, [x1,x26]
ldr x1, [x0,600]
ldrh w1, [x1,x26]
- cbnz w1, .L939
+ cbnz w1, .L960
ldr x0, [x0,584]
add x22, x0, x22, lsl 2
adrp x0, .LANCHOR2
ldr w0, [x0,#:lo12:.LANCHOR2]
- tbz x0, 8, .L940
+ tbz x0, 8, .L961
ldrb w2, [x22,2]
- adrp x0, .LC101
- add x0, x0, :lo12:.LC101
+ adrp x0, .LC103
+ add x0, x0, :lo12:.LC103
mov w1, w19
ubfx x2, x2, 5, 3
bl printk
-.L940:
+.L961:
ldrb w0, [x22,2]
tst w0, 192
- beq .L953
+ beq .L974
and w0, w0, 224
cmp w0, 224
- bne .L941
-.L953:
+ bne .L962
+.L974:
adrp x0, .LC0
mov x1, x21
- mov w2, 799
+ mov w2, 884
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L941:
+.L962:
mov w0, w19
add x25, x25, :lo12:.LANCHOR0
bl ftl_free_sblk
ldr x2, [x25,608]
ldrh w1, [x2,124]
- cbz w1, .L943
+ cbz w1, .L964
mov x0, 0
-.L945:
+.L966:
add x4, x2, x0, lsl 1
mov w3, w0
ldrh w4, [x4,392]
cmp w4, w19
- bne .L944
+ bne .L965
add x0, x2, x3, sxtw 1
mov w3, -1
strh w3, [x0,392]
sub w1, w1, #1
strh w1, [x2,124]
- b .L943
-.L944:
+ b .L964
+.L965:
add x0, x0, 1
cmp x0, 64
- bne .L945
-.L943:
+ bne .L966
+.L964:
ldrh w1, [x2,120]
- cbz w1, .L946
+ cbz w1, .L967
mov x0, 0
-.L948:
+.L969:
add x4, x2, x0, lsl 1
mov w3, w0
ldrh w4, [x4,136]
cmp w4, w19
- bne .L947
+ bne .L968
add x0, x2, x3, sxtw 1
mov w3, -1
strh w3, [x0,136]
sub w1, w1, #1
strh w1, [x2,120]
- b .L946
-.L947:
+ b .L967
+.L968:
add x0, x0, 1
cmp x0, 64
- bne .L948
-.L946:
+ bne .L969
+.L967:
ldrh w1, [x2,122]
- cbz w1, .L949
+ cbz w1, .L970
mov x0, 0
-.L951:
+.L972:
add x4, x2, x0, lsl 1
mov w3, w0
ldrh w4, [x4,264]
cmp w4, w19
- bne .L950
+ bne .L971
add x0, x2, x3, sxtw 1
mov w3, -1
strh w3, [x0,264]
sub w1, w1, #1
strh w1, [x2,122]
- b .L949
-.L950:
+ b .L970
+.L971:
add x0, x0, 1
cmp x0, 64
- bne .L951
- b .L949
-.L939:
+ bne .L972
+ b .L970
+.L960:
mov w0, w19
mov w1, 1
mov w2, 0
bl gc_add_sblk
-.L949:
+.L970:
add w20, w20, 1
uxth w20, w20
- b .L937
-.L975:
+ b .L958
+.L996:
strh wzr, [x24,56]
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -5900,24 +6051,26 @@ ftl_erase_phy_blk:
ldrh w19, [x5,3340]
mov x20, x3
sub w19, w0, w19
- ldrb w0, [x5,3348]
+ ldrb w0, [x5,3258]
asr w22, w2, w19
lsl w19, w4, w19
sub w19, w19, #1
and w19, w19, w2
sxth w19, w19
- cbz w0, .L977
- ldrh w2, [x5,3350]
+ cbz w0, .L998
+ ldrb w0, [x5,3259]
+ cbnz w0, .L998
+ ldrh w2, [x5,3348]
cmp w1, wzr
mov w0, w22
cset w1, eq
mul w2, w19, w2
bl flash_erase_block_en
-.L977:
+.L998:
add x3, x20, :lo12:.LANCHOR0
mov w1, w21
mov w0, w22
- ldrh w2, [x3,3350]
+ ldrh w2, [x3,3348]
mul w2, w19, w2
bl flash_erase_block_en
ldp x19, x20, [sp,16]
@@ -5944,87 +6097,91 @@ ftl_erase_sblk:
mov w19, 0
add x0, x0, x20
ldrb w25, [x0,3]
-.L982:
+.L1003:
add x2, x23, :lo12:.LANCHOR0
- ldrb w0, [x2,3352]
+ ldrb w0, [x2,3350]
cmp w19, w0
- bge .L993
+ bge .L1014
ldrb w3, [x2,3338]
mov w21, 0
- ldrh w2, [x2,3350]
+ ldrh w2, [x2,3348]
mov w1, w21
sub w4, w3, #1
mul w6, w19, w3
mul w5, w24, w3
-.L994:
+.L1015:
cmp w1, w3
- bge .L1007
+ bge .L1028
add w0, w1, w6
asr w0, w25, w0
- tbnz x0, 0, .L983
+ tbnz x0, 0, .L1004
and w0, w1, w4
add x7, x29, 80
add w0, w5, w0
mul w0, w0, w2
str w0, [x7,w21,sxtw 2]
add w21, w21, 1
-.L983:
+.L1004:
add w1, w1, 1
- b .L994
-.L1007:
+ b .L1015
+.L1028:
cmp w3, 4
- bne .L1006
+ bne .L1027
mov x26, 0
-.L985:
+.L1006:
cmp w21, w26
- ble .L988
+ ble .L1009
add x2, x29, 80
mov w0, w19
mov w1, w22
ldr w2, [x2,x26,lsl 2]
add x26, x26, 1
bl flash_erase_block_en
- b .L985
-.L1006:
+ b .L1006
+.L1027:
cmp w21, 2
- bne .L989
+ bne .L1010
add x0, x23, :lo12:.LANCHOR0
- ldrb w0, [x0,3348]
- cbz w0, .L990
+ ldrb w1, [x0,3258]
+ cbz w1, .L1011
+ ldrb w0, [x0,3259]
+ cbnz w0, .L1011
cmp w22, wzr
ldr w2, [x29,80]
ldr w3, [x29,84]
mov w0, w19
cset w1, eq
bl flash_erase_duplane_block
-.L990:
+.L1011:
ldr w2, [x29,80]
mov w0, w19
ldr w3, [x29,84]
mov w1, w22
bl flash_erase_duplane_block
- b .L988
-.L989:
+ b .L1009
+.L1010:
cmp w21, 1
- bne .L988
+ bne .L1009
add x0, x23, :lo12:.LANCHOR0
- ldrb w0, [x0,3348]
- cbz w0, .L992
+ ldrb w1, [x0,3258]
+ cbz w1, .L1013
+ ldrb w0, [x0,3259]
+ cbnz w0, .L1013
cmp w22, wzr
ldr w2, [x29,80]
mov w0, w19
cset w1, eq
bl flash_erase_block_en
-.L992:
+.L1013:
ldr w2, [x29,80]
mov w0, w19
mov w1, w22
bl flash_erase_block_en
-.L988:
+.L1009:
add w19, w19, 1
- b .L982
-.L993:
- cbnz w22, .L995
+ b .L1003
+.L1014:
+ cbnz w22, .L1016
ldr x1, [x2,584]
ldrh w0, [x1,x20]
add w3, w0, 1
@@ -6040,10 +6197,10 @@ ftl_erase_sblk:
ubfx x1, x1, 0, 11
uxth w2, w1
cmp w3, w2
- bge .L997
+ bge .L1018
strh w1, [x0,96]
- b .L997
-.L995:
+ b .L1018
+.L1016:
ldr x3, [x2,584]
ldr w0, [x3,x20]
ubfx x1, x0, 11, 8
@@ -6059,9 +6216,9 @@ ftl_erase_sblk:
ldr w1, [x1,x20]
ubfx x1, x1, 11, 8
cmp w2, w1, uxtb
- bcs .L997
+ bcs .L1018
strh w1, [x0,98]
-.L997:
+.L1018:
mov w0, 0
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -6083,11 +6240,11 @@ ftl_alloc_sys_blk:
ldr x1, [x1,2864]
ldrh w2, [x1,136]
cmp w2, 63
- bls .L1009
+ bls .L1030
strh wzr, [x1,136]
-.L1009:
+.L1030:
ldrh w0, [x1,112]
- cbnz w0, .L1010
+ cbnz w0, .L1031
adrp x1, .LANCHOR1
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR1
@@ -6096,26 +6253,26 @@ ftl_alloc_sys_blk:
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L1010:
+.L1031:
add x0, x19, :lo12:.LANCHOR0
mov w4, 65535
ldr x1, [x0,2864]
-.L1014:
+.L1035:
ldrh w2, [x1,136]
-.L1011:
+.L1032:
cmp w2, 63
- bgt .L1017
+ bgt .L1038
sxtw x3, w2
add x3, x3, 80
ldrh w0, [x1,x3,lsl 1]
cmp w0, w4
- bne .L1016
+ bne .L1037
add w2, w2, 1
- b .L1011
-.L1017:
+ b .L1032
+.L1038:
strh wzr, [x1,136]
- b .L1014
-.L1016:
+ b .L1035
+.L1037:
mov w4, -1
strh w4, [x1,x3,lsl 1]
strh w2, [x1,136]
@@ -6140,12 +6297,12 @@ ftl_free_sys_blk:
ldr x2, [x0,2864]
ldrh w0, [x2,138]
cmp w0, 63
- bls .L1019
+ bls .L1040
strh wzr, [x2,138]
-.L1019:
+.L1040:
ldrh w0, [x2,112]
cmp w0, 63
- bls .L1020
+ bls .L1041
adrp x1, .LANCHOR1
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR1
@@ -6154,20 +6311,20 @@ ftl_free_sys_blk:
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L1020:
+.L1041:
add x1, x19, :lo12:.LANCHOR0
mov w0, 65535
ldr x1, [x1,2864]
-.L1024:
+.L1045:
ldrh w2, [x1,138]
-.L1021:
+.L1042:
cmp w2, 63
- bgt .L1026
+ bgt .L1047
sxtw x3, w2
add x3, x3, 80
ldrh w4, [x1,x3,lsl 1]
cmp w4, w0
- bne .L1022
+ bne .L1043
strh w20, [x1,x3,lsl 1]
strh w2, [x1,138]
ldrh w0, [x1,112]
@@ -6176,12 +6333,12 @@ ftl_free_sys_blk:
ldp x19, x20, [sp,16]
ldp x29, x30, [sp], 32
ret
-.L1022:
+.L1043:
add w2, w2, 1
- b .L1021
-.L1026:
+ b .L1042
+.L1047:
strh wzr, [x1,138]
- b .L1024
+ b .L1045
.size ftl_free_sys_blk, .-ftl_free_sys_blk
.align 2
.global ftl_info_data_recovery
@@ -6195,7 +6352,7 @@ ftl_info_data_recovery:
str x23, [sp,48]
ldrh w2, [x0]
cmp w2, w1
- beq .L1027
+ beq .L1048
adrp x19, .LANCHOR0
ubfiz x20, x2, 2, 16
add x23, x19, :lo12:.LANCHOR0
@@ -6203,36 +6360,36 @@ ftl_info_data_recovery:
add x22, x21, x20
ldrb w1, [x22,2]
tst w1, 224
- bne .L1027
+ bne .L1048
ldrb w0, [x0,4]
bfi w1, w0, 5, 3
mov w0, w2
strb w1, [x22,2]
bl zftl_remove_free_node
ldrb w0, [x22,2]
- tbz x0, 3, .L1031
+ tbz x0, 3, .L1052
ldr x1, [x23,2864]
ldrh w0, [x1,116]
sub w0, w0, #1
strh w0, [x1,116]
- b .L1032
-.L1031:
+ b .L1053
+.L1052:
tst w0, 24
ldr x1, [x23,2864]
- bne .L1033
+ bne .L1054
ldrh w0, [x1,114]
sub w0, w0, #1
strh w0, [x1,114]
- b .L1032
-.L1033:
+ b .L1053
+.L1054:
ldrh w0, [x1,118]
sub w0, w0, #1
strh w0, [x1,118]
-.L1032:
+.L1053:
ldrb w0, [x22,2]
and w0, w0, 224
cmp w0, 160
- bne .L1034
+ bne .L1055
ldr w0, [x21,x20]
add x19, x19, :lo12:.LANCHOR0
ubfx x1, x0, 11, 8
@@ -6243,29 +6400,29 @@ ftl_info_data_recovery:
ldrh w0, [x1,120]
sub w0, w0, #1
strh w0, [x1,120]
- b .L1027
-.L1034:
+ b .L1048
+.L1055:
ldrh w1, [x21,x20]
cmp w0, 64
add w2, w1, 1
bfi w1, w2, 0, 11
strh w1, [x21,x20]
- bne .L1035
+ bne .L1056
add x19, x19, :lo12:.LANCHOR0
ldr x1, [x19,2864]
ldrh w0, [x1,122]
sub w0, w0, #1
strh w0, [x1,122]
- b .L1027
-.L1035:
+ b .L1048
+.L1056:
cmp w0, 96
- bne .L1027
+ bne .L1048
add x19, x19, :lo12:.LANCHOR0
ldr x1, [x19,2864]
ldrh w0, [x1,124]
sub w0, w0, #1
strh w0, [x1,124]
-.L1027:
+.L1048:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldr x23, [sp,48]
@@ -6289,14 +6446,14 @@ ftl_get_ppa_from_index:
ldrb w4, [x4,3276]
mul w0, w0, w4
cmp w1, w0
- bge .L1037
+ bge .L1058
add x3, x3, 16
- b .L1038
-.L1037:
+ b .L1059
+.L1058:
sub w1, w1, w0
add x3, x3, 48
uxth w1, w1
-.L1038:
+.L1059:
ldrb w2, [x3,9]
mov w0, 65535
sdiv w20, w1, w2
@@ -6304,18 +6461,18 @@ ftl_get_ppa_from_index:
add x1, x3, x1, uxth 1
ldrh w21, [x1,16]
cmp w21, w0
- bne .L1039
+ bne .L1060
adrp x1, .LANCHOR1
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR1
- mov w2, 1528
+ mov w2, 1580
add x1, x1, 1416
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L1039:
+.L1060:
add x2, x19, :lo12:.LANCHOR0
- ldrh w0, [x2,3350]
+ ldrh w0, [x2,3348]
madd w0, w21, w0, w20
ldp x19, x20, [sp,16]
ldr x21, [sp,32]
@@ -6332,25 +6489,25 @@ lpa_hash_get_ppa:
add x2, x1, x0, uxtb 1
stp x29, x30, [sp, -16]!
add x29, sp, 0
- ldrh w2, [x2,3360]
- ldr x4, [x1,3872]
- ldr x5, [x1,3880]
-.L1041:
+ ldrh w2, [x2,3352]
+ ldr x4, [x1,3864]
+ ldr x5, [x1,3872]
+.L1062:
cmp w2, w3
- beq .L1045
+ beq .L1066
uxtw x1, w2
ldr w6, [x4,x1,lsl 2]
cmp w6, w0
- bne .L1042
+ bne .L1063
mov w0, w2
bl ftl_get_ppa_from_index
- b .L1043
-.L1042:
+ b .L1064
+.L1063:
ldrh w2, [x5,x1,lsl 1]
- b .L1041
-.L1045:
+ b .L1062
+.L1066:
mov w0, -1
-.L1043:
+.L1064:
ldp x29, x30, [sp], 16
ret
.size lpa_hash_get_ppa, .-lpa_hash_get_ppa
@@ -6365,70 +6522,70 @@ ftl_get_new_free_page:
ldrh w1, [x0]
mov w0, 65535
cmp w1, w0
- bne .L1047
+ bne .L1068
adrp x1, .LANCHOR1
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR1
- mov w2, 1643
+ mov w2, 1695
add x1, x1, 1440
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L1047:
+.L1068:
adrp x20, .LANCHOR0
ldrh w1, [x19,2]
add x0, x20, :lo12:.LANCHOR0
ldrh w0, [x0,3300]
cmp w1, w0
- bne .L1048
+ bne .L1069
adrp x1, .LANCHOR1
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR1
- mov w2, 1644
+ mov w2, 1696
add x1, x1, 1440
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L1048:
+.L1069:
ldrh w0, [x19,6]
- cbnz w0, .L1049
+ cbnz w0, .L1070
adrp x1, .LANCHOR1
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR1
- mov w2, 1645
+ mov w2, 1697
add x1, x1, 1440
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L1049:
+.L1070:
ldrb w0, [x19,5]
add x1, x20, :lo12:.LANCHOR0
add x0, x0, 8
ldrb w2, [x1,3276]
mov w1, 65535
ldrh w0, [x19,x0,lsl 1]
-.L1050:
+.L1071:
cmp w0, w1
- bne .L1054
+ bne .L1075
ldrb w0, [x19,5]
add w0, w0, 1
uxtb w0, w0
strb w0, [x19,5]
cmp w0, w2
- bne .L1051
+ bne .L1072
ldrh w0, [x19,2]
strb wzr, [x19,5]
add w0, w0, 1
strh w0, [x19,2]
-.L1051:
+.L1072:
ldrb w0, [x19,5]
add x0, x0, 8
ldrh w0, [x19,x0,lsl 1]
- b .L1050
-.L1054:
+ b .L1071
+.L1075:
add x20, x20, :lo12:.LANCHOR0
ldrh w2, [x19,2]
- ldrh w1, [x20,3350]
+ ldrh w1, [x20,3348]
ldrb w3, [x20,3276]
mul w0, w0, w1
ldrh w1, [x19,6]
@@ -6443,11 +6600,11 @@ ftl_get_new_free_page:
uxtb w1, w1
strb w1, [x19,5]
cmp w3, w1
- bne .L1053
+ bne .L1074
add w2, w2, 1
strb wzr, [x19,5]
strh w2, [x19,2]
-.L1053:
+.L1074:
ldp x19, x20, [sp,16]
ldp x29, x30, [sp], 32
ret
@@ -6465,16 +6622,16 @@ ftl_ext_alloc_new_blk:
mov w1, 65533
sub w0, w0, #1
cmp w1, w0, uxth
- bcs .L1056
+ bcs .L1077
adrp x1, .LANCHOR1
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR1
- mov w2, 1676
+ mov w2, 1728
add x1, x1, 1464
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L1056:
+.L1077:
adrp x19, .LANCHOR0
mov w1, 0
add x19, x19, :lo12:.LANCHOR0
@@ -6497,52 +6654,52 @@ ftl_ext_alloc_new_blk:
ftl_total_vpn_update:
adrp x1, .LANCHOR0
add x3, x1, :lo12:.LANCHOR0
- ldrh w2, [x3,3888]
- cbnz w0, .L1058
+ ldrh w2, [x3,3880]
+ cbnz w0, .L1079
cmp w2, 4
- bhi .L1058
+ bhi .L1079
add w2, w2, 1
- strh w2, [x3,3888]
- b .L1057
-.L1058:
+ strh w2, [x3,3880]
+ b .L1078
+.L1079:
add x0, x1, :lo12:.LANCHOR0
mov w9, 65535
- strh wzr, [x0,3888]
+ strh wzr, [x0,3880]
ldrh w6, [x0,576]
ldr x7, [x0,600]
ldr x8, [x0,584]
mov x0, 0
mov w2, w0
mov w3, w0
-.L1060:
+.L1081:
cmp w6, w0, uxth
- bls .L1068
+ bls .L1089
ldrh w4, [x7,x0,lsl 1]
cmp w4, w9
- beq .L1061
+ beq .L1082
add x5, x8, x0, lsl 2
ldrb w5, [x5,2]
and w5, w5, 224
cmp w5, 160
- bne .L1062
+ bne .L1083
add w2, w2, w4
- b .L1061
-.L1062:
+ b .L1082
+.L1083:
add w3, w3, w4
-.L1061:
+.L1082:
add x0, x0, 1
- b .L1060
-.L1068:
+ b .L1081
+.L1089:
add x1, x1, :lo12:.LANCHOR0
ldr x0, [x1,608]
ldr x1, [x1,2864]
str w3, [x0,524]
str w2, [x0,528]
ldrh w1, [x1,120]
- cbz w1, .L1057
+ cbz w1, .L1078
udiv w2, w2, w1
str w2, [x0,532]
-.L1057:
+.L1078:
ret
.size ftl_total_vpn_update, .-ftl_total_vpn_update
.align 2
@@ -6568,10 +6725,10 @@ ftl_vpn_update:
ldr x0, [x1,600]
ldrh w2, [x0,x19]
mov w0, 0
- cbnz w2, .L1071
+ cbnz w2, .L1092
mov w0, 1
str w0, [x1,2884]
-.L1071:
+.L1092:
ldr x19, [sp,16]
ldp x29, x30, [sp], 32
ret
@@ -6587,44 +6744,44 @@ ftl_vpn_decrement:
str x19, [sp,16]
cmp w1, w0
adrp x2, .LANCHOR0
- beq .L1074
+ beq .L1095
add x5, x2, :lo12:.LANCHOR0
uxtw x0, w1
lsl x3, x0, 1
ldr x4, [x5,600]
ldrh w19, [x4,x3]
- cbnz w19, .L1075
+ cbnz w19, .L1096
ldr x2, [x5,584]
add x0, x2, x0, lsl 2
mov w2, w19
ldrb w3, [x0,2]
- adrp x0, .LC102
- add x0, x0, :lo12:.LC102
+ adrp x0, .LC104
+ add x0, x0, :lo12:.LC104
ubfx x3, x3, 5, 3
bl printk
- b .L1081
-.L1075:
+ b .L1102
+.L1096:
sub w19, w19, #1
strh w19, [x4,x3]
-.L1074:
+.L1095:
add x19, x2, :lo12:.LANCHOR0
mov w0, 0
ldrh w2, [x19,3224]
cmp w2, w1
- beq .L1076
+ beq .L1097
mov w0, 65535
cmp w2, w0
- bne .L1077
+ bne .L1098
strh w1, [x19,3224]
-.L1081:
+.L1102:
mov w0, 0
- b .L1076
-.L1077:
+ b .L1097
+.L1098:
mov w0, w2
str x1, [x29,40]
bl ftl_vpn_update
cmp w0, wzr
- ldrh w3, [x19,3890]
+ ldrh w3, [x19,3882]
cset w0, ne
ldrh w2, [x19,3224]
add w3, w3, 1
@@ -6633,10 +6790,10 @@ ftl_vpn_decrement:
uxth w3, w3
cmp w3, 7
csel w3, w3, wzr, ls
- strh w3, [x19,3890]
+ strh w3, [x19,3882]
add x3, x19, x3, uxth 1
strh w2, [x3,3232]
-.L1076:
+.L1097:
ldr x19, [sp,16]
ldp x29, x30, [sp], 48
ret
@@ -6649,61 +6806,61 @@ lpa_hash_update_ppa:
uxtb w5, w0
add x6, x3, :lo12:.LANCHOR0
uxth w2, w2
- add x4, x6, 3360
+ add x4, x6, 3352
stp x29, x30, [sp, -16]!
add x29, sp, 0
- ldr x8, [x6,3872]
- ldr x12, [x6,3880]
+ ldr x8, [x6,3864]
+ ldr x12, [x6,3872]
mov w6, 65535
ldrh w4, [x4,w5,sxtw 1]
mov w11, w6
-.L1083:
+.L1104:
cmp w4, w11
- beq .L1087
+ beq .L1108
uxtw x9, w4
uxth x7, w4
lsl x10, x9, 2
add x13, x8, x10
ldr w10, [x8,x10]
cmp w10, w0
- bne .L1084
+ bne .L1105
mov w4, -1
str w4, [x13]
mov w4, 65535
cmp w6, w4
add x4, x3, :lo12:.LANCHOR0
- bne .L1085
- ldr x6, [x4,3880]
- add x4, x4, 3360
+ bne .L1106
+ ldr x6, [x4,3872]
+ add x4, x4, 3352
ldrh w6, [x6,x7,lsl 1]
strh w6, [x4,w5,sxtw 1]
- b .L1086
-.L1085:
- ldr x4, [x4,3880]
+ b .L1107
+.L1106:
+ ldr x4, [x4,3872]
ldrh w8, [x4,x7,lsl 1]
strh w8, [x4,w6,uxtw 1]
-.L1086:
+.L1107:
add x4, x3, :lo12:.LANCHOR0
mov w6, -1
- ldr x4, [x4,3880]
+ ldr x4, [x4,3872]
strh w6, [x4,x7,lsl 1]
- b .L1087
-.L1084:
+ b .L1108
+.L1105:
mov w6, w4
ldrh w4, [x12,x9,lsl 1]
- b .L1083
-.L1087:
+ b .L1104
+.L1108:
add x3, x3, :lo12:.LANCHOR0
uxtw x4, w2
cmn w1, #1
- ldr x6, [x3,3872]
+ ldr x6, [x3,3864]
str w0, [x6,x4,lsl 2]
- add x0, x3, 3360
+ add x0, x3, 3352
ldrh w6, [x0,w5,sxtw 1]
strh w2, [x0,w5,sxtw 1]
- ldr x0, [x3,3880]
+ ldr x0, [x3,3872]
strh w6, [x0,x4,lsl 1]
- beq .L1089
+ beq .L1110
ldrh w0, [x3,3340]
mov w2, 21
mov w4, 1
@@ -6715,7 +6872,7 @@ lpa_hash_update_ppa:
and w1, w2, w1
udiv w0, w1, w0
bl ftl_vpn_decrement
-.L1089:
+.L1110:
mov w0, -1
ldp x29, x30, [sp], 16
ret
@@ -6745,17 +6902,17 @@ ftl_mask_bad_block:
adrp x0, .LANCHOR2
ldr w0, [x0,#:lo12:.LANCHOR2]
uxth w20, w2
- tbz x0, 14, .L1094
- adrp x0, .LC103
+ tbz x0, 14, .L1115
+ adrp x0, .LC105
mov w1, w21
- add x0, x0, :lo12:.LC103
+ add x0, x0, :lo12:.LC105
mov w2, w20
bl printk
-.L1094:
+.L1115:
add x0, x19, :lo12:.LANCHOR0
ldrh w1, [x0,576]
cmp w1, w20
- bls .L1093
+ bls .L1114
ldr x0, [x0,584]
add x20, x0, x20, uxth 2
mov w0, 1
@@ -6763,7 +6920,7 @@ ftl_mask_bad_block:
ldrb w0, [x20,3]
orr w1, w1, w0
strb w1, [x20,3]
-.L1093:
+.L1114:
ldp x19, x20, [sp,16]
ldr x21, [sp,32]
ldp x29, x30, [sp], 48
@@ -6779,33 +6936,38 @@ print_ftl_debug_info:
str x19, [sp,48]
adrp x19, .LANCHOR0
add x19, x19, :lo12:.LANCHOR0
- ldr x7, [x19,608]
- ldrh w6, [x19,2854]
- ldrh w1, [x19,2844]
- ldr w0, [x7,528]
- str w0, [sp]
+ ldr x2, [x19,2864]
+ ldr x0, [x19,608]
+ ldrh w8, [x19,2854]
+ ldrh w1, [x2,148]
+ ldrh w2, [x2,146]
+ str w8, [sp]
+ ldrh w6, [x19,2850]
+ ldr w8, [x0,524]
+ str w8, [sp,8]
+ ldrh w7, [x19,2852]
+ ldr w0, [x0,528]
+ str w0, [sp,16]
ldr w0, [x19,2840]
- str w0, [sp,8]
- adrp x0, .LC104
- ldrh w2, [x19,2846]
- add x0, x0, :lo12:.LC104
- ldr w7, [x7,524]
- ldrh w3, [x19,2848]
- ldrh w4, [x19,2850]
- ldrh w5, [x19,2852]
+ ldrh w3, [x19,2844]
+ ldrh w4, [x19,2846]
+ ldrh w5, [x19,2848]
+ str w0, [sp,24]
+ adrp x0, .LC106
+ add x0, x0, :lo12:.LC106
bl printk
ldr x5, [x19,2864]
- adrp x0, .LC105
+ adrp x0, .LC107
ldrb w3, [x19,2857]
- add x0, x0, :lo12:.LC105
+ add x0, x0, :lo12:.LC107
ldr w4, [x5,8]
ldr w1, [x5,20]
ldr w2, [x5,28]
ldr w5, [x5,64]
bl printk
ldr x2, [x19,2864]
- adrp x0, .LC106
- add x0, x0, :lo12:.LC106
+ adrp x0, .LC108
+ add x0, x0, :lo12:.LC108
ldr w3, [x2,16]
ldr w1, [x2,52]
ldr w2, [x2,60]
@@ -6823,18 +6985,26 @@ print_ftl_debug_info:
str w0, [sp,8]
ldrh w0, [x7,98]
str w0, [sp,16]
- adrp x0, .LC107
- add x0, x0, :lo12:.LC107
+ adrp x0, .LC109
+ add x0, x0, :lo12:.LC109
ldr w2, [x7,84]
ldr w7, [x7,80]
bl printk
+ ldrh w5, [x19,2872]
+ adrp x0, .LC110
ldrh w1, [x19,2874]
- adrp x0, .LC108
+ add x0, x0, :lo12:.LC110
ldrh w2, [x19,2876]
- add x0, x0, :lo12:.LC108
ldrh w3, [x19,2878]
ldrh w4, [x19,2880]
- ldrh w5, [x19,2872]
+ bl printk
+ ldr x4, [x19,608]
+ adrp x0, .LC111
+ add x0, x0, :lo12:.LC111
+ ldrh w1, [x4,584]
+ ldrh w2, [x4,586]
+ ldrh w3, [x4,588]
+ ldrh w4, [x4,590]
bl printk
sub sp, x29, #32
ldr x19, [sp,48]
@@ -6851,47 +7021,47 @@ ftl_write_buf:
stp x19, x20, [sp,16]
str x21, [sp,32]
mov x20, x0
- cbnz x0, .L1101
+ cbnz x0, .L1122
adrp x1, .LANCHOR1
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR1
- mov w2, 662
+ mov w2, 667
add x1, x1, 1488
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
bl print_ftl_debug_info
mov w0, -1
- b .L1110
-.L1101:
+ b .L1131
+.L1122:
adrp x19, .LANCHOR0
ldrb w1, [x20,56]
add x0, x19, :lo12:.LANCHOR0
ldrb w0, [x0,2832]
cmp w1, w0
- bls .L1106
+ bls .L1127
adrp x1, .LANCHOR1
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR1
- mov w2, 667
+ mov w2, 672
add x1, x1, 1488
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L1106:
+.L1127:
ldrb w0, [x20,56]
- cbz w0, .L1103
+ cbz w0, .L1124
add x21, x19, :lo12:.LANCHOR0
ldrb w1, [x21,2832]
cmp w1, w0
- bcs .L1104
-.L1103:
+ bcs .L1125
+.L1124:
mov x0, x20
add x19, x19, :lo12:.LANCHOR0
bl buf_free
ldrb w0, [x19,2856]
- b .L1110
-.L1104:
+ b .L1131
+.L1125:
add x0, x21, 2888
mov x1, x20
bl buf_add_tail
@@ -6908,7 +7078,7 @@ ftl_write_buf:
add w1, w1, 1
str w1, [x0,32]
mov w0, w2
-.L1110:
+.L1131:
ldp x19, x20, [sp,16]
ldr x21, [sp,32]
ldp x29, x30, [sp], 48
@@ -6925,24 +7095,24 @@ ftl_write_completed:
str x25, [sp,64]
stp x21, x22, [sp,32]
add x19, x19, :lo12:.LANCHOR0
- adrp x21, .LC109
+ adrp x21, .LC112
stp x23, x24, [sp,48]
add x22, x19, 784
mov w23, 21
mov w24, 1
- add x21, x21, :lo12:.LC109
-.L1112:
- ldrb w0, [x19,3892]
+ add x21, x21, :lo12:.LC112
+.L1133:
+ ldrb w0, [x19,3884]
cmp w0, 255
- beq .L1119
+ beq .L1140
sbfiz x0, x0, 6, 32
add x20, x22, x0
add x4, x20, 32
ldrb w0, [x22,x0]
- strb w0, [x19,3892]
+ strb w0, [x19,3884]
ldr w0, [x20,52]
cmn w0, #1
- bne .L1113
+ bne .L1134
ldrh w2, [x19,3340]
mov x0, x21
ldr w3, [x4,8]
@@ -6967,33 +7137,33 @@ ftl_write_completed:
str w1, [x0,556]
ldrh w1, [x0,16]
cmp w1, w25
- bne .L1114
+ bne .L1135
strh wzr, [x0,22]
- b .L1115
-.L1114:
+ b .L1136
+.L1135:
ldrh w1, [x0,48]
cmp w1, w25
- bne .L1115
+ bne .L1136
strh wzr, [x0,54]
-.L1115:
+.L1136:
mov x0, x20
bl ftl_write_buf
- b .L1112
-.L1113:
+ b .L1133
+.L1134:
ldr w0, [x4,4]
ldr w1, [x4,12]
ldrh w2, [x20,48]
bl lpa_hash_update_ppa
ldrb w0, [x20,2]
- tbz x0, 2, .L1117
+ tbz x0, 2, .L1138
and w0, w0, -3
strb w0, [x20,2]
- b .L1112
-.L1117:
+ b .L1133
+.L1138:
mov x0, x20
bl buf_free
- b .L1112
-.L1119:
+ b .L1133
+.L1140:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -7009,41 +7179,41 @@ zftl_add_read_buf:
add x29, sp, 0
stp x19, x20, [sp,16]
mov x20, x0
- cbnz x0, .L1121
+ cbnz x0, .L1142
adrp x1, .LANCHOR1
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR1
- mov w2, 949
+ mov w2, 954
add x1, x1, 1504
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
bl print_ftl_debug_info
- b .L1120
-.L1121:
+ b .L1141
+.L1142:
adrp x19, .LANCHOR0
ldrb w1, [x20,56]
add x0, x19, :lo12:.LANCHOR0
ldrb w0, [x0,2832]
cmp w1, w0
- bls .L1124
+ bls .L1145
adrp x1, .LANCHOR1
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR1
- mov w2, 954
+ mov w2, 959
add x1, x1, 1504
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L1124:
+.L1145:
add x19, x19, :lo12:.LANCHOR0
mov x1, x20
- add x0, x19, 3893
+ add x0, x19, 3885
bl buf_add_tail
- ldrb w0, [x19,3894]
+ ldrb w0, [x19,3886]
add w0, w0, 1
- strb w0, [x19,3894]
-.L1120:
+ strb w0, [x19,3886]
+.L1141:
ldp x19, x20, [sp,16]
ldp x29, x30, [sp], 32
ret
@@ -7068,13 +7238,13 @@ ftl_alloc_sblk:
uxth w19, w0
mov w0, 65535
cmp w19, w0
- beq .L1127
+ beq .L1148
adrp x0, .LANCHOR0+584
ldr x21, [x0,#:lo12:.LANCHOR0+584]
add x21, x21, x19, uxth 2
ldrb w0, [x21,2]
tst w0, 224
- beq .L1128
+ beq .L1149
adrp x1, .LANCHOR1
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR1
@@ -7083,18 +7253,18 @@ ftl_alloc_sblk:
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L1128:
+.L1149:
ldrb w1, [x21,2]
bfi w1, w20, 5, 3
ubfx x2, x1, 3, 2
orr w0, w22, w2
bfi w1, w0, 3, 2
strb w1, [x21,2]
- b .L1134
-.L1127:
- adrp x21, .LC110
+ b .L1155
+.L1148:
+ adrp x21, .LC113
bl print_ftl_debug_info
- add x21, x21, :lo12:.LC110
+ add x21, x21, :lo12:.LC113
mov w1, w19
mov w2, w20
mov x0, x21
@@ -7116,7 +7286,7 @@ ftl_alloc_sblk:
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L1134:
+.L1155:
mov w0, w19
ldr x23, [sp,48]
ldp x19, x20, [sp,16]
@@ -7132,8 +7302,8 @@ sblk_init:
mov w1, -1
add x0, x0, :lo12:.LANCHOR0
strb w1, [x0,2835]
- strb w1, [x0,3892]
- strb w1, [x0,3895]
+ strb w1, [x0,3884]
+ strb w1, [x0,3887]
strb w1, [x0,3256]
mov w0, 0
ret
@@ -7143,24 +7313,24 @@ sblk_init:
.type dump_sblk_queue, %function
dump_sblk_queue:
stp x29, x30, [sp, -48]!
- adrp x0, .LC111
+ adrp x0, .LC114
add x29, sp, 0
stp x19, x20, [sp,16]
adrp x20, .LANCHOR0
str x21, [sp,32]
add x20, x20, :lo12:.LANCHOR0
- add x0, x0, :lo12:.LC111
+ add x0, x0, :lo12:.LC114
ldrb w1, [x20,2835]
bl printk
ldrb w19, [x20,2835]
cmp w19, 255
- beq .L1136
+ beq .L1157
add x20, x20, 784
sbfiz x19, x19, 6, 32
- adrp x21, .LC112
+ adrp x21, .LC115
add x19, x20, x19
- add x21, x21, :lo12:.LC112
-.L1138:
+ add x21, x21, :lo12:.LC115
+.L1159:
ldrb w1, [x19,1]
mov x0, x21
ldrb w2, [x19,58]
@@ -7168,11 +7338,11 @@ dump_sblk_queue:
bl printk
ldrb w19, [x19]
cmp w19, 255
- beq .L1136
+ beq .L1157
sbfiz x19, x19, 6, 32
add x19, x20, x19
- b .L1138
-.L1136:
+ b .L1159
+.L1157:
ldp x19, x20, [sp,16]
ldr x21, [sp,32]
ldp x29, x30, [sp], 48
@@ -7188,7 +7358,7 @@ queue_lun_state:
mov w0, 0
ldrb w2, [x3,2835]
cmp w2, 255
- beq .L1146
+ beq .L1167
ldrh w8, [x3,3340]
mov w4, 21
ldrb w7, [x3,3338]
@@ -7200,60 +7370,60 @@ queue_lun_state:
sub w4, w4, #1
asr w5, w5, w8
uxth w7, w7
- adrp x10, .L1149
+ adrp x10, .L1170
uxth w4, w4
and w5, w5, w7
and w5, w5, w4
add x3, x3, 784
- add x10, x10, :lo12:.L1149
-.L1152:
+ add x10, x10, :lo12:.L1170
+.L1173:
add x0, x3, x2, lsl 6
ldr w6, [x0,40]
ubfx x11, x6, 21, 3
cmp w11, w9
- bne .L1147
+ bne .L1168
lsr w6, w6, w8
ldrb w0, [x0,58]
and w6, w7, w6
and w6, w4, w6
cmp w6, w5
- bne .L1148
+ bne .L1169
cmp w1, 1
- beq .L1150
- b .L1146
-.L1148:
+ beq .L1171
+ b .L1167
+.L1169:
cmp w1, 3
- bhi .L1147
+ bhi .L1168
ldrb w6, [x10,w1,uxtw]
- adr x11, .Lrtx1149
+ adr x11, .Lrtx1170
add x6, x11, w6, sxtb #2
br x6
-.Lrtx1149:
+.Lrtx1170:
.section .rodata
.align 0
.align 2
-.L1149:
- .byte (.L1146 - .Lrtx1149) / 4
- .byte (.L1150 - .Lrtx1149) / 4
- .byte (.L1151 - .Lrtx1149) / 4
- .byte (.L1146 - .Lrtx1149) / 4
+.L1170:
+ .byte (.L1167 - .Lrtx1170) / 4
+ .byte (.L1171 - .Lrtx1170) / 4
+ .byte (.L1172 - .Lrtx1170) / 4
+ .byte (.L1167 - .Lrtx1170) / 4
.text
-.L1150:
- sub w6, w0, #6
+.L1171:
+ sub w6, w0, #7
and w6, w6, -3
uxtb w6, w6
- cbz w6, .L1147
- b .L1146
-.L1151:
- cmp w0, 10
- bne .L1146
-.L1147:
+ cbz w6, .L1168
+ b .L1167
+.L1172:
+ cmp w0, 11
+ bne .L1167
+.L1168:
lsl x2, x2, 6
ldrb w2, [x3,x2]
cmp w2, 255
- bne .L1152
+ bne .L1173
mov w0, 0
-.L1146:
+.L1167:
ret
.size queue_lun_state, .-queue_lun_state
.align 2
@@ -7265,80 +7435,80 @@ queue_remove_completed_req:
add x0, x3, :lo12:.LANCHOR0
mov w11, -1
add x4, x0, 784
- add x12, x0, 3895
- add x13, x0, 3892
+ add x12, x0, 3887
+ add x13, x0, 3884
ldrb w7, [x0,2835]
- ldrb w9, [x0,3895]
+ ldrb w9, [x0,3887]
ldrb w8, [x0,3256]
- ldrb w10, [x0,3892]
-.L1162:
+ ldrb w10, [x0,3884]
+.L1183:
cmp w7, 255
- beq .L1163
+ beq .L1184
sbfiz x6, x7, 6, 32
sxtw x1, w7
add x2, x4, x6
ldrb w2, [x2,58]
- sub w2, w2, #11
+ sub w2, w2, #12
uxtb w2, w2
cmp w2, 1
- bls .L1164
- cbz w5, .L1161
+ bls .L1185
+ cbz w5, .L1182
strb w7, [x0,2835]
- b .L1161
-.L1164:
+ b .L1182
+.L1185:
lsl x5, x1, 6
ldrb w7, [x4,x6]
add x2, x4, x5
strb w11, [x4,x5]
ldrb w5, [x2,59]
cmp w5, 1
- bne .L1167
+ bne .L1188
ldrh w2, [x2,50]
- cbnz w2, .L1175
+ cbnz w2, .L1196
mov w2, w10
mov x5, x13
- b .L1168
-.L1167:
- cbz w5, .L1185
-.L1169:
+ b .L1189
+.L1188:
+ cbz w5, .L1206
+.L1190:
mov w5, 1
- b .L1162
-.L1185:
+ b .L1183
+.L1206:
ldr w2, [x2,36]
cmn w2, #1
- beq .L1169
+ beq .L1190
mov w2, w9
mov x5, x12
- b .L1168
-.L1175:
+ b .L1189
+.L1196:
mov w2, w8
add x5, x0, 3256
-.L1168:
+.L1189:
cmp w2, 255
- bne .L1173
+ bne .L1194
add x3, x3, :lo12:.LANCHOR0
add x1, x3, x1, lsl 6
strb w7, [x3,2835]
ldrb w0, [x1,785]
strb w0, [x5]
- b .L1161
-.L1173:
+ b .L1182
+.L1194:
mov w5, w2
sbfiz x2, x2, 6, 32
ldrb w2, [x4,x2]
cmp w2, 255
- bne .L1173
+ bne .L1194
add x1, x4, x1, lsl 6
sbfiz x5, x5, 6, 32
ldrb w1, [x1,1]
strb w1, [x4,x5]
- b .L1169
-.L1163:
- cbz w5, .L1161
+ b .L1190
+.L1184:
+ cbz w5, .L1182
add x3, x3, :lo12:.LANCHOR0
mov w0, -1
strb w0, [x3,2835]
-.L1161:
+.L1182:
ret
.size queue_remove_completed_req, .-queue_remove_completed_req
.align 2
@@ -7359,16 +7529,16 @@ pm_alloc_new_blk:
ldrb w1, [x3,3276]
strh w0, [x2,690]
cmp w1, w0
- bls .L1187
+ bls .L1208
add x0, x2, x0, sxtw 1
ldrh w1, [x0,672]
mov w0, 65535
cmp w1, w0
- bne .L1188
-.L1187:
- adrp x22, .LC113
- add x22, x22, :lo12:.LC113
-.L1200:
+ bne .L1209
+.L1208:
+ adrp x22, .LC116
+ add x22, x22, :lo12:.LC116
+.L1221:
mov w0, 1
add x20, x19, :lo12:.LANCHOR0
bl ftl_alloc_sblk
@@ -7380,7 +7550,7 @@ pm_alloc_new_blk:
add x1, x1, 672
bl ftl_get_blk_list_in_sblk
uxth w0, w0
- cbnz w0, .L1189
+ cbnz w0, .L1210
mov w1, w21
mov x0, x22
bl printk
@@ -7389,23 +7559,23 @@ pm_alloc_new_blk:
ldrb w2, [x1,2]
orr w2, w2, -32
strb w2, [x1,2]
- b .L1200
-.L1189:
+ b .L1221
+.L1210:
ldr x1, [x20,2864]
mov w0, 1
mov w2, 65535
- str w0, [x20,3896]
+ str w0, [x20,3888]
mov x20, 0
strh wzr, [x1,690]
-.L1191:
+.L1212:
add x3, x1, x20, lsl 1
uxth w0, w20
ldrh w3, [x3,416]
cmp w3, w2
- beq .L1190
+ beq .L1211
add x20, x20, 1
cmp x20, 128
- bne .L1191
+ bne .L1212
adrp x0, .LC0
adrp x1, .LANCHOR3
add x1, x1, :lo12:.LANCHOR3
@@ -7414,7 +7584,7 @@ pm_alloc_new_blk:
bl printk
bl dump_stack
mov w0, w20
-.L1190:
+.L1211:
add x1, x19, :lo12:.LANCHOR0
ldr x1, [x1,2864]
add x0, x1, x0, sxtw 1
@@ -7422,7 +7592,7 @@ pm_alloc_new_blk:
ldrh w0, [x1,688]
add w0, w0, 1
strh w0, [x1,688]
-.L1188:
+.L1209:
add x0, x19, :lo12:.LANCHOR0
ldr x1, [x0,2864]
ldrh w0, [x1,690]
@@ -7431,7 +7601,7 @@ pm_alloc_new_blk:
mov w0, 65533
sub w1, w20, #1
cmp w0, w1, uxth
- bcs .L1193
+ bcs .L1214
adrp x0, .LC0
adrp x1, .LANCHOR3
add x1, x1, :lo12:.LANCHOR3
@@ -7439,7 +7609,7 @@ pm_alloc_new_blk:
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L1193:
+.L1214:
add x19, x19, :lo12:.LANCHOR0
mov w0, 21
ldr x1, [x19,2864]
@@ -7451,17 +7621,17 @@ pm_alloc_new_blk:
strh w4, [x1,694]
adrp x1, .LANCHOR2
ldr w1, [x1,#:lo12:.LANCHOR2]
- tbz x1, 12, .L1197
+ tbz x1, 12, .L1218
mov w2, 1
mov w1, w20
lsl w2, w2, w0
- adrp x0, .LC114
- add x0, x0, :lo12:.LC114
+ adrp x0, .LC117
+ add x0, x0, :lo12:.LC117
sub w2, w2, #1
mov w3, w20
uxth w4, w4
bl printk
-.L1197:
+.L1218:
mov w0, 0
ldr x23, [sp,48]
ldp x19, x20, [sp,16]
@@ -7480,58 +7650,58 @@ pm_select_ram_region:
str x19, [sp,16]
add x2, x2, :lo12:.LANCHOR0
mov x19, 0
-.L1204:
- add x1, x2, 3904
+.L1225:
+ add x1, x2, 3896
lsl x4, x19, 4
uxth w0, w19
ldrh w4, [x4,x1]
cmp w4, w3
- beq .L1203
+ beq .L1224
add x19, x19, 1
cmp x19, 32
- bne .L1204
+ bne .L1225
mov x0, 0
mov w3, 32768
-.L1206:
+.L1227:
add x2, x1, x0, lsl 4
uxth w4, w0
ldrh w2, [x2,2]
- tbnz x2, 15, .L1205
+ tbnz x2, 15, .L1226
cmp w2, w3
- bcs .L1205
+ bcs .L1226
mov w3, w2
mov w19, w4
-.L1205:
+.L1226:
add x0, x0, 1
cmp x0, 32
- bne .L1206
+ bne .L1227
cmp w19, 32
mov w0, w19
- bne .L1203
- adrp x0, .LANCHOR4+64
+ bne .L1224
+ adrp x0, .LANCHOR4+56
mov w2, -1
mov w1, 0
- ldrb w3, [x0,#:lo12:.LANCHOR4+64]
+ ldrb w3, [x0,#:lo12:.LANCHOR4+56]
adrp x0, .LANCHOR0
add x0, x0, :lo12:.LANCHOR0
- add x0, x0, 3904
-.L1208:
+ add x0, x0, 3896
+.L1229:
ldrh w5, [x0,2]
cmp w5, w2
- bcs .L1207
+ bcs .L1228
ldrh w4, [x0]
cmp w4, w3
csel w2, w2, w5, eq
cmp w4, w3
csel w19, w19, w1, eq
-.L1207:
+.L1228:
add w1, w1, 1
add x0, x0, 16
uxth w1, w1
cmp w1, 32
- bne .L1208
+ bne .L1229
cmp w19, 32
- bne .L1209
+ bne .L1230
adrp x1, .LANCHOR3
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR3
@@ -7540,9 +7710,9 @@ pm_select_ram_region:
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L1209:
+.L1230:
mov w0, w19
-.L1203:
+.L1224:
ldr x19, [sp,16]
ldp x29, x30, [sp], 32
ret
@@ -7566,57 +7736,57 @@ flash_lsb_page_tbl_build:
add x29, sp, 0
stp x19, x20, [sp,16]
adrp x19, .LANCHOR0
- cbnz w0, .L1217
+ cbnz w0, .L1238
mov x0, 0
add x2, x19, :lo12:.LANCHOR0
-.L1218:
+.L1239:
add x1, x2, 4
strh w0, [x1,x0,lsl 1]
add x0, x0, 1
cmp x0, 256
- bne .L1218
-.L1224:
+ bne .L1239
+.L1245:
adrp x20, .LANCHOR4
mov w1, 255
add x20, x20, :lo12:.LANCHOR4
mov w2, 1024
- add x0, x20, 68
+ add x0, x20, 60
add x19, x19, :lo12:.LANCHOR0
bl ftl_memset
mov x0, 0
- b .L1219
-.L1217:
+ b .L1240
+.L1238:
cmp w0, 1
- bne .L1220
+ bne .L1241
mov x0, 0
mov w4, 3
mov w5, 2
add x3, x19, :lo12:.LANCHOR0
-.L1223:
+.L1244:
cmp x0, 3
uxth w2, w0
mov w1, w2
- bls .L1221
+ bls .L1242
ubfiz w1, w2, 1, 15
and w2, w2, 1
cmp w2, wzr
csel w2, w4, w5, ne
sub w1, w1, w2
uxth w1, w1
-.L1221:
+.L1242:
add x2, x3, 4
strh w1, [x2,x0,lsl 1]
add x0, x0, 1
cmp x0, 256
- bne .L1223
- b .L1224
-.L1220:
+ bne .L1244
+ b .L1245
+.L1241:
cmp w0, 2
- bne .L1225
+ bne .L1246
mov w1, 65535
mov x0, 0
add x4, x19, :lo12:.LANCHOR0
-.L1227:
+.L1248:
add x3, x4, 4
cmp x0, 1
uxth w2, w0
@@ -7626,36 +7796,36 @@ flash_lsb_page_tbl_build:
add x0, x0, 1
cmp x0, 256
uxth w1, w1
- bne .L1227
- b .L1224
-.L1225:
+ bne .L1248
+ b .L1245
+.L1246:
cmp w0, 3
- bne .L1228
+ bne .L1249
mov x0, 0
mov w4, 5
mov w5, 4
add x3, x19, :lo12:.LANCHOR0
-.L1231:
+.L1252:
cmp x0, 5
uxth w2, w0
mov w1, w2
- bls .L1229
+ bls .L1250
ubfiz w1, w2, 1, 15
and w2, w2, 1
cmp w2, wzr
csel w2, w4, w5, ne
sub w1, w1, w2
uxth w1, w1
-.L1229:
+.L1250:
add x2, x3, 4
strh w1, [x2,x0,lsl 1]
add x0, x0, 1
cmp x0, 256
- bne .L1231
- b .L1224
-.L1228:
+ bne .L1252
+ b .L1245
+.L1249:
cmp w0, 4
- bne .L1232
+ bne .L1253
add x2, x19, :lo12:.LANCHOR0
mov w5, 7
add x1, x2, 4
@@ -7675,7 +7845,7 @@ flash_lsb_page_tbl_build:
strh w0, [x1,14]
mov w0, 8
strh w2, [x1,6]
-.L1234:
+.L1255:
and w3, w0, 1
ubfiz w2, w0, 1, 15
add w0, w0, 1
@@ -7686,48 +7856,67 @@ flash_lsb_page_tbl_build:
sub w2, w2, w3
cmp w0, 256
strh w2, [x1,14]
- bne .L1234
- b .L1224
-.L1232:
+ bne .L1255
+ b .L1245
+.L1253:
cmp w0, 5
- bne .L1235
+ bne .L1256
mov x0, 0
add x2, x19, :lo12:.LANCHOR0
-.L1236:
+.L1257:
add x1, x2, 4
strh w0, [x1,x0,lsl 1]
add x0, x0, 1
cmp x0, 16
- bne .L1236
+ bne .L1257
mov x0, 0
-.L1237:
+.L1258:
add x2, x1, x0
add w3, w0, 16
add x0, x0, 2
cmp x0, 480
strh w3, [x2,32]
- bne .L1237
- b .L1224
-.L1235:
+ bne .L1258
+ b .L1245
+.L1256:
cmp w0, 8
- bne .L1224
+ bne .L1259
mov x0, 0
add x2, x19, :lo12:.LANCHOR0
-.L1238:
+.L1260:
add x1, x2, 4
strh w0, [x0,x1]
add x0, x0, 2
cmp x0, 512
- bne .L1238
- b .L1224
-.L1219:
+ bne .L1260
+ b .L1245
+.L1259:
+ cmp w0, 9
+ bne .L1245
+ add x0, x19, :lo12:.LANCHOR0
+ add x1, x0, 4
+ strh wzr, [x0,4]
+ mov w0, 1
+ strh w0, [x1,2]
+ mov w0, 2
+ strh w0, [x1,4]
+ mov x0, 0
+.L1261:
+ add x2, x1, x0
+ add w3, w0, 3
+ add x0, x0, 2
+ cmp x0, 506
+ strh w3, [x2,6]
+ bne .L1261
+ b .L1245
+.L1240:
add x1, x19, 4
- add x2, x20, 68
+ add x2, x20, 60
ldrh w1, [x0,x1]
add x0, x0, 2
cmp x0, 512
strh w1, [x2,w1,sxtw 1]
- bne .L1219
+ bne .L1240
ldp x19, x20, [sp,16]
ldp x29, x30, [sp], 32
ret
@@ -7745,14 +7934,14 @@ flash_die_info_init:
ldr w0, [x19,#:lo12:.LANCHOR2]
stp x25, x26, [sp,64]
stp x27, x28, [sp,80]
- tbz x0, 12, .L1255
+ tbz x0, 12, .L1279
adrp x1, .LANCHOR3
adrp x0, .LC4
add x1, x1, :lo12:.LANCHOR3
add x0, x0, :lo12:.LC4
add x1, x1, 48
bl printk
-.L1255:
+.L1279:
add x24, x19, :lo12:.LANCHOR2
adrp x21, .LANCHOR0
add x20, x21, :lo12:.LANCHOR0
@@ -7770,23 +7959,23 @@ flash_die_info_init:
strb wzr, [x20,633]
sdiv w0, w0, w1
mov w1, 0
- strh w0, [x25,1092]
+ strh w0, [x25,1084]
add x0, x20, 736
bl ftl_memset
- add x0, x25, 1096
+ add x0, x25, 1088
mov w1, 0
mov w2, 32
bl ftl_memset
-.L1257:
+.L1281:
add x0, x20, 744
ldrb w2, [x24,8]
add x1, x28, x23, lsl 3
strb w26, [x23,x0]
mov x0, x27
bl flash_mem_cmp8
- cbnz w0, .L1256
+ cbnz w0, .L1280
ldrb w1, [x20,633]
- add x2, x25, 1096
+ add x2, x25, 1088
str w0, [x2,w1,sxtw 2]
add w0, w1, 1
strb w0, [x20,633]
@@ -7794,16 +7983,16 @@ flash_die_info_init:
add x1, x20, x1, sxtw
strb w0, [x1,736]
bl zftl_flash_enter_slc_mode
-.L1256:
+.L1280:
add x23, x23, 1
cmp x23, 4
- bne .L1257
+ bne .L1281
add x0, x19, :lo12:.LANCHOR2
add x1, x0, 8
ldrb w2, [x1,8]
cmp w2, 2
- beq .L1258
-.L1262:
+ beq .L1282
+.L1286:
add x19, x19, :lo12:.LANCHOR2
add x21, x21, :lo12:.LANCHOR0
add x22, x22, :lo12:.LANCHOR4
@@ -7816,11 +8005,11 @@ flash_die_info_init:
ldrh w1, [x19,22]
ldp x19, x20, [sp,16]
mul w0, w0, w1
- strh w0, [x22,1128]
+ strh w0, [x22,1120]
ldp x21, x22, [sp,32]
ldp x29, x30, [sp], 112
ret
-.L1258:
+.L1282:
add x23, x21, :lo12:.LANCHOR0
ldrh w20, [x1,14]
ldrb w26, [x0,8]
@@ -7835,7 +8024,7 @@ flash_die_info_init:
ldrb w2, [x1,13]
mul w20, w20, w2
lsl w28, w20, 1
-.L1261:
+.L1285:
add x1, x3, x24, lsl 3
mov x0, x25
mov w2, w26
@@ -7844,9 +8033,9 @@ flash_die_info_init:
bl flash_mem_cmp8
ldr x3, [x29,104]
ldr x4, [x29,96]
- cbnz w0, .L1259
+ cbnz w0, .L1283
ldrb w0, [x23,633]
- add x1, x4, 1096
+ add x1, x4, 1088
cmp w27, wzr
csel w2, w20, w28, eq
str w2, [x1,w0,sxtw 2]
@@ -7854,11 +8043,11 @@ flash_die_info_init:
add x0, x23, x0, sxtw
strb w1, [x23,633]
strb w24, [x0,736]
-.L1259:
+.L1283:
add x24, x24, 1
cmp x24, 4
- bne .L1261
- b .L1262
+ bne .L1285
+ b .L1286
.size flash_die_info_init, .-flash_die_info_init
.align 2
.global lpa_hash_init
@@ -7871,13 +8060,13 @@ lpa_hash_init:
str x19, [sp,16]
adrp x19, .LANCHOR0
add x19, x19, :lo12:.LANCHOR0
- add x0, x19, 3360
+ add x0, x19, 3352
bl ftl_memset
ldrh w0, [x19,3300]
mov w1, 255
ldrb w2, [x19,3276]
mul w2, w0, w2
- ldr x0, [x19,3880]
+ ldr x0, [x19,3872]
lsl w2, w2, 2
bl ftl_memset
ldr x19, [sp,16]
@@ -7893,52 +8082,52 @@ lpa_rebuild_hash:
add x29, sp, 0
ldr w0, [x0,#:lo12:.LANCHOR2]
str x19, [sp,16]
- tbz x0, 12, .L1273
+ tbz x0, 12, .L1297
adrp x1, .LANCHOR3
- adrp x0, .LC115
+ adrp x0, .LC118
add x1, x1, :lo12:.LANCHOR3
- add x0, x0, :lo12:.LC115
+ add x0, x0, :lo12:.LC118
add x1, x1, 72
- mov w2, 222
+ mov w2, 224
mov w3, 0
bl printk
-.L1273:
+.L1297:
adrp x19, .LANCHOR0
mov w1, 255
add x19, x19, :lo12:.LANCHOR0
mov w2, 512
- add x0, x19, 3360
+ add x0, x19, 3352
bl ftl_memset
ldrh w0, [x19,3300]
mov w1, 255
ldrb w2, [x19,3276]
mul w2, w0, w2
- ldr x0, [x19,3880]
+ ldr x0, [x19,3872]
lsl w2, w2, 2
bl ftl_memset
mov w0, 0
-.L1274:
+.L1298:
ldrh w1, [x19,3300]
ldrb w2, [x19,3276]
mul w1, w1, w2
cmp w0, w1, lsl 1
- bge .L1283
+ bge .L1307
uxtw x2, w0
- ldr x1, [x19,3872]
+ ldr x1, [x19,3864]
ldr w1, [x1,x2,lsl 2]
cmn w1, #1
- beq .L1275
+ beq .L1299
uxtb w1, w1
- add x3, x19, 3360
+ add x3, x19, 3352
ldrh w4, [x3,w1,sxtw 1]
strh w0, [x3,w1,sxtw 1]
- ldr x1, [x19,3880]
+ ldr x1, [x19,3872]
strh w4, [x1,x2,lsl 1]
-.L1275:
+.L1299:
add w0, w0, 1
uxth w0, w0
- b .L1274
-.L1283:
+ b .L1298
+.L1307:
ldr x19, [sp,16]
ldp x29, x30, [sp], 32
ret
@@ -7977,9 +8166,9 @@ zftl_read_flash_info:
strb w1, [x19,9]
mov x1, 0
strb w2, [x19,8]
-.L1285:
+.L1309:
cmp w4, w1, uxtb
- bls .L1287
+ bls .L1311
add x2, x0, 736
ldrb w3, [x19,10]
ldrb w2, [x1,x2]
@@ -7987,8 +8176,8 @@ zftl_read_flash_info:
lsl w2, w5, w2
orr w2, w2, w3
strb w2, [x19,10]
- b .L1285
-.L1287:
+ b .L1309
+.L1311:
ldr x19, [sp,16]
ldp x29, x30, [sp], 32
ret
@@ -8010,8 +8199,8 @@ gc_init:
add x21, x19, 2896
mov x0, x21
strb wzr, [x19,3273]
- strb wzr, [x20,1130]
- str wzr, [x20,1132]
+ strb wzr, [x20,1122]
+ str wzr, [x20,1124]
strh wzr, [x19,3304]
bl ftl_memset
ldrh w1, [x19,3300]
@@ -8038,12 +8227,12 @@ gc_init:
str xzr, [x19,2904]
bl ftl_malloc
ldrb w1, [x19,3276]
- str x0, [x20,1136]
+ str x0, [x20,1128]
ldrh w0, [x19,3274]
mul w0, w0, w1
lsl w0, w0, 2
bl ftl_malloc
- str x0, [x20,1144]
+ str x0, [x20,1136]
ldrh w1, [x19,3274]
ldrb w0, [x19,3276]
mul w0, w1, w0
@@ -8060,7 +8249,7 @@ gc_init:
mul w0, w0, w1
lsl w0, w0, 2
bl ftl_malloc
- str x0, [x20,1152]
+ str x0, [x20,1144]
ldrh w0, [x19,3306]
ldr x21, [sp,32]
lsr w0, w0, 2
@@ -8086,9 +8275,9 @@ gc_static_wearleveling:
ldr w1, [x0,32]
mov w0, 10240
cmp w1, w0
- bls .L1290
+ bls .L1314
bl ftl_tmp_into_update
-.L1290:
+.L1314:
add x3, x19, :lo12:.LANCHOR0
ldr x0, [x3,608]
ldr w1, [x0,568]
@@ -8096,18 +8285,18 @@ gc_static_wearleveling:
add w1, w1, 860160
add w1, w1, 3840
cmp w2, w1
- bhi .L1291
+ bhi .L1315
ldr x3, [x3,2864]
ldr w1, [x0,572]
ldr w3, [x3,36]
add w1, w1, 32
cmp w3, w1
- bls .L1341
-.L1291:
+ bls .L1365
+.L1315:
add x1, x19, :lo12:.LANCHOR0
mov w22, 0
mov w20, 65535
- adrp x8, .LC116
+ adrp x8, .LC119
mov w28, w22
str w22, [x29,136]
ldr x1, [x1,2864]
@@ -8122,13 +8311,13 @@ gc_static_wearleveling:
mov w9, w20
str w2, [x0,568]
adrp x10, .LANCHOR2
- add x8, x8, :lo12:.LC116
+ add x8, x8, :lo12:.LC119
ldrh w23, [x1,134]
-.L1293:
+.L1317:
add x4, x19, :lo12:.LANCHOR0
ldrh w0, [x4,576]
cmp w0, w23
- bls .L1402
+ bls .L1426
uxtw x7, w23
ldr x0, [x4,584]
lsl x1, x7, 2
@@ -8136,70 +8325,70 @@ gc_static_wearleveling:
ldrb w2, [x6,2]
and w3, w2, 224
cmp w3, 224
- beq .L1294
- tbz x2, 3, .L1295
+ beq .L1318
+ tbz x2, 3, .L1319
ldrh w3, [x0,x1]
ldr w2, [x0,x1]
and w3, w3, 2047
ubfx x2, x2, 11, 8
- b .L1296
-.L1295:
+ b .L1320
+.L1319:
tst w2, 24
- bne .L1297
+ bne .L1321
ldrh w3, [x0,x1]
mov w2, 65535
and w3, w3, 2047
- b .L1296
-.L1297:
+ b .L1320
+.L1321:
ldr w2, [x0,x1]
mov w3, 65535
ubfx x2, x2, 11, 8
- b .L1298
-.L1296:
+ b .L1322
+.L1320:
ldr w4, [x29,136]
add w26, w26, 1
cmp w20, w3
add w4, w4, w3
str w4, [x29,136]
uxth w26, w26
- bls .L1340
+ bls .L1364
add x4, x19, :lo12:.LANCHOR0
mov w20, w3
ldr x4, [x4,608]
strh w23, [x4,586]
-.L1340:
+.L1364:
cmp w25, w3
- bcs .L1299
+ bcs .L1323
mov w22, w23
mov w25, w3
-.L1299:
+.L1323:
cmp w2, w9
- beq .L1300
-.L1298:
+ beq .L1324
+.L1322:
ldr w4, [x29,140]
add w27, w27, 1
cmp w21, w2
add w4, w4, w2
str w4, [x29,140]
uxth w27, w27
- bls .L1301
+ bls .L1325
add x4, x19, :lo12:.LANCHOR0
mov w21, w2
ldr x4, [x4,608]
strh w23, [x4,584]
-.L1301:
+.L1325:
cmp w24, w2
- bcs .L1300
+ bcs .L1324
mov w28, w23
mov w24, w2
-.L1300:
+.L1324:
cmp w3, 9
- bls .L1343
+ bls .L1367
cmp w2, 9
- bhi .L1294
-.L1343:
+ bhi .L1318
+.L1367:
ldr w2, [x10,#:lo12:.LANCHOR2]
- tbz x2, 8, .L1294
+ tbz x2, 8, .L1318
ldrh w2, [x0,x1]
ldr w3, [x0,x1]
add x0, x19, :lo12:.LANCHOR0
@@ -8220,11 +8409,11 @@ gc_static_wearleveling:
ldr x10, [x29,112]
ldr x9, [x29,120]
ldr x8, [x29,128]
-.L1294:
+.L1318:
add w23, w23, 1
uxth w23, w23
- b .L1293
-.L1402:
+ b .L1317
+.L1426:
ldr x0, [x4,608]
mov w1, 255
mov w2, 128
@@ -8241,29 +8430,29 @@ gc_static_wearleveling:
lsl x0, x7, 2
mov x1, x7
add x8, x3, x0
- tbz x2, 10, .L1304
+ tbz x2, 10, .L1328
ldr x9, [x4,600]
ldrh w2, [x3,x0]
ldrb w5, [x8,2]
ldr w3, [x3,x0]
- adrp x0, .LC117
+ adrp x0, .LC120
ldrb w6, [x8,3]
ubfx x4, x5, 3, 2
ldrh w7, [x9,x7,lsl 1]
- add x0, x0, :lo12:.LC117
+ add x0, x0, :lo12:.LC120
and w2, w2, 2047
ubfx x3, x3, 11, 8
ubfx x5, x5, 5, 3
str x8, [x29,128]
bl printk
ldr x8, [x29,128]
-.L1304:
+.L1328:
ldrb w0, [x8,2]
- tbz x0, 3, .L1305
+ tbz x0, 3, .L1329
ldrb w0, [x8,2]
and w1, w0, 192
cmp w1, 64
- bne .L1306
+ bne .L1330
add x3, x19, :lo12:.LANCHOR0
mov w1, 0
mov w2, 1
@@ -8274,21 +8463,21 @@ gc_static_wearleveling:
ldr x3, [x29,128]
mov w0, 1
strh w0, [x3,3214]
- b .L1305
-.L1306:
+ b .L1329
+.L1330:
tst w0, 224
- bne .L1305
+ bne .L1329
add x2, x19, :lo12:.LANCHOR0
mov w0, 65535
ldr x1, [x2,608]
ldrh w3, [x1,590]
cmp w3, w0
- bne .L1305
+ bne .L1329
ldrh w0, [x1,586]
ldrh w1, [x1,588]
str x2, [x29,128]
cmp w1, w0
- beq .L1305
+ beq .L1329
bl zftl_remove_free_node
ldr x2, [x29,128]
ldr x0, [x2,608]
@@ -8296,7 +8485,7 @@ gc_static_wearleveling:
strh w1, [x0,590]
mov w1, -1
strh w1, [x0,586]
-.L1305:
+.L1329:
add x0, x19, :lo12:.LANCHOR0
ldr w2, [x23,#:lo12:.LANCHOR2]
ldr x1, [x0,608]
@@ -8305,11 +8494,11 @@ gc_static_wearleveling:
lsl x3, x7, 2
mov x1, x7
add x8, x4, x3
- tbz x2, 10, .L1307
+ tbz x2, 10, .L1331
ldr x9, [x0,600]
- adrp x0, .LC118
+ adrp x0, .LC121
ldrh w2, [x4,x3]
- add x0, x0, :lo12:.LC118
+ add x0, x0, :lo12:.LC121
ldrb w5, [x8,2]
ldr w3, [x4,x3]
and w2, w2, 2047
@@ -8321,13 +8510,13 @@ gc_static_wearleveling:
str x8, [x29,128]
bl printk
ldr x8, [x29,128]
-.L1307:
+.L1331:
ldrb w0, [x8,2]
- tbz x0, 3, .L1308
+ tbz x0, 3, .L1332
ldrb w0, [x8,2]
and w1, w0, 192
cmp w1, 64
- bne .L1309
+ bne .L1333
add x3, x19, :lo12:.LANCHOR0
mov w1, 0
mov w2, 1
@@ -8338,21 +8527,21 @@ gc_static_wearleveling:
ldr x3, [x29,128]
mov w0, 1
strh w0, [x3,3214]
- b .L1308
-.L1309:
+ b .L1332
+.L1333:
tst w0, 224
- bne .L1308
+ bne .L1332
add x2, x19, :lo12:.LANCHOR0
mov w0, 65535
ldr x1, [x2,608]
ldrh w3, [x1,588]
cmp w3, w0
- bne .L1308
+ bne .L1332
ldrh w0, [x1,584]
ldrh w1, [x1,590]
str x2, [x29,128]
cmp w1, w0
- beq .L1308
+ beq .L1332
bl zftl_remove_free_node
ldr x2, [x29,128]
ldr x0, [x2,608]
@@ -8360,11 +8549,11 @@ gc_static_wearleveling:
strh w1, [x0,588]
mov w1, -1
strh w1, [x0,584]
-.L1308:
+.L1332:
add x4, x19, :lo12:.LANCHOR0
ldr w0, [x23,#:lo12:.LANCHOR2]
ldr x1, [x4,584]
- tbz x0, 10, .L1310
+ tbz x0, 10, .L1334
uxtw x7, w22
ldr x8, [x4,600]
lsl x0, x7, 2
@@ -8372,9 +8561,9 @@ gc_static_wearleveling:
ldrh w7, [x8,x7,lsl 1]
ldrh w2, [x1,x0]
ldr w3, [x1,x0]
- adrp x0, .LC119
+ adrp x0, .LC122
ldrb w5, [x6,2]
- add x0, x0, :lo12:.LC119
+ add x0, x0, :lo12:.LC122
ldrb w6, [x6,3]
mov w1, w22
ubfx x4, x5, 3, 2
@@ -8382,11 +8571,11 @@ gc_static_wearleveling:
ubfx x3, x3, 11, 8
ubfx x5, x5, 5, 3
bl printk
-.L1310:
+.L1334:
add x4, x19, :lo12:.LANCHOR0
ldr w0, [x23,#:lo12:.LANCHOR2]
ldr x1, [x4,584]
- tbz x0, 10, .L1311
+ tbz x0, 10, .L1335
uxtw x7, w28
ldr x8, [x4,600]
lsl x0, x7, 2
@@ -8394,9 +8583,9 @@ gc_static_wearleveling:
ldrh w7, [x8,x7,lsl 1]
ldrh w2, [x1,x0]
ldr w3, [x1,x0]
- adrp x0, .LC120
+ adrp x0, .LC123
ldrb w5, [x6,2]
- add x0, x0, :lo12:.LC120
+ add x0, x0, :lo12:.LC123
ldrb w6, [x6,3]
mov w1, w28
ubfx x4, x5, 3, 2
@@ -8404,7 +8593,7 @@ gc_static_wearleveling:
ubfx x3, x3, 11, 8
ubfx x5, x5, 5, 3
bl printk
-.L1311:
+.L1335:
ldr w1, [x29,136]
add x0, x19, :lo12:.LANCHOR0
udiv w3, w1, w26
@@ -8418,41 +8607,41 @@ gc_static_wearleveling:
strh w3, [x0,88]
strh w4, [x0,90]
ldr w0, [x23,#:lo12:.LANCHOR2]
- tbz x0, 10, .L1312
- adrp x0, .LC121
+ tbz x0, 10, .L1336
+ adrp x0, .LC124
mov w1, w26
- add x0, x0, :lo12:.LC121
+ add x0, x0, :lo12:.LC124
mov w2, w27
uxth w3, w3
uxth w4, w4
bl printk
-.L1312:
+.L1336:
ldr w0, [x23,#:lo12:.LANCHOR2]
adrp x28, .LANCHOR4
- tbz x0, 10, .L1313
+ tbz x0, 10, .L1337
add x6, x28, :lo12:.LANCHOR4
- adrp x0, .LC122
- add x0, x0, :lo12:.LC122
+ adrp x0, .LC125
+ add x0, x0, :lo12:.LC125
mov w1, w20
mov w2, w21
mov w3, w25
- ldrh w5, [x6,1160]
+ ldrh w5, [x6,1152]
mov w4, w24
- ldrh w6, [x6,1162]
+ ldrh w6, [x6,1154]
bl printk
-.L1313:
+.L1337:
add x1, x28, :lo12:.LANCHOR4
sub w0, w24, w21
str w0, [x29,140]
- ldrh w0, [x1,1162]
+ ldrh w0, [x1,1154]
ldr w2, [x29,140]
cmp w2, w0
- bgt .L1314
- ldrh w1, [x1,1160]
+ bgt .L1338
+ ldrh w1, [x1,1152]
sub w0, w25, w20
cmp w0, w1
- ble .L1342
-.L1314:
+ ble .L1366
+.L1338:
add x0, x19, :lo12:.LANCHOR0
mov w26, 0
mov w22, w26
@@ -8462,17 +8651,17 @@ gc_static_wearleveling:
ldrh w27, [x0,134]
sub w0, w25, w20
str w0, [x29,136]
- adrp x0, .LC124
- add x0, x0, :lo12:.LC124
- adrp x25, .LC123
+ adrp x0, .LC127
+ add x0, x0, :lo12:.LC127
+ adrp x25, .LC126
str x0, [x29,128]
- add x0, x25, :lo12:.LC123
+ add x0, x25, :lo12:.LC126
str x0, [x29,120]
-.L1316:
+.L1340:
add x1, x19, :lo12:.LANCHOR0
ldrh w0, [x1,576]
cmp w27, w0
- bcs .L1325
+ bcs .L1349
add w7, w24, 1
ldr x4, [x1,584]
uxth w24, w7
@@ -8484,31 +8673,31 @@ gc_static_wearleveling:
ldrb w0, [x0,2]
and w2, w0, 224
cmp w2, 224
- beq .L1318
+ beq .L1342
tst w0, 192
- beq .L1318
+ beq .L1342
ubfx x0, x0, 3, 2
cmp w2, 160
and w1, w0, 1
- tbnz x0, 0, .L1400
+ tbnz x0, 0, .L1424
cmp w0, 2
-.L1400:
+.L1424:
add x0, x28, :lo12:.LANCHOR4
- bne .L1321
- ldrh w0, [x0,1162]
+ bne .L1345
+ ldrh w0, [x0,1154]
ldr w2, [x29,140]
cmp w2, w0
- ble .L1322
+ ble .L1346
ldr w0, [x4,x3]
ubfx x0, x0, 11, 8
cmp w0, w21
- bls .L1323
- cbz w1, .L1322
+ bls .L1347
+ cbz w1, .L1346
ldrh w0, [x4,x3]
and w0, w0, 2047
cmp w0, w20
- bgt .L1322
-.L1323:
+ bgt .L1346
+.L1347:
mov w1, 0
mov w0, w24
mov w2, 1
@@ -8523,7 +8712,7 @@ gc_static_wearleveling:
ldr x4, [x29,104]
strh w1, [x0,3214]
ldr w1, [x23,#:lo12:.LANCHOR2]
- tbz x1, 10, .L1322
+ tbz x1, 10, .L1346
ldr x1, [x0,584]
ldr x10, [x0,600]
add x1, x1, x3
@@ -8531,24 +8720,24 @@ gc_static_wearleveling:
ldr w6, [x4,x3]
ldr x0, [x29,120]
ldrb w2, [x1,2]
- b .L1401
-.L1321:
- ldrh w0, [x0,1160]
+ b .L1425
+.L1345:
+ ldrh w0, [x0,1152]
ldr w2, [x29,136]
cmp w2, w0
- ble .L1322
+ ble .L1346
ldrh w0, [x4,x3]
add w2, w20, 8
and w0, w0, 2047
cmp w0, w2
- ble .L1324
- cbz w1, .L1322
+ ble .L1348
+ cbz w1, .L1346
ldr w0, [x4,x3]
add w1, w21, 4
ubfx x0, x0, 11, 8
cmp w0, w1
- bgt .L1322
-.L1324:
+ bgt .L1346
+.L1348:
mov w1, 0
mov w0, w24
mov w2, 1
@@ -8563,7 +8752,7 @@ gc_static_wearleveling:
ldr x4, [x29,104]
strh w1, [x0,3214]
ldr w1, [x23,#:lo12:.LANCHOR2]
- tbz x1, 10, .L1322
+ tbz x1, 10, .L1346
ldr x1, [x0,584]
ldr x10, [x0,600]
add x1, x1, x3
@@ -8571,7 +8760,7 @@ gc_static_wearleveling:
ldr w6, [x4,x3]
ldr x0, [x29,128]
ldrb w2, [x1,2]
-.L1401:
+.L1425:
ldrh w3, [x10,x25,lsl 1]
mov w1, w24
ldrh w4, [x9,56]
@@ -8579,122 +8768,122 @@ gc_static_wearleveling:
and w5, w5, 2047
ubfx x6, x6, 11, 8
bl printk
-.L1322:
+.L1346:
cmp w26, 4
- bhi .L1325
+ bhi .L1349
cmp w22, 4
- bhi .L1325
-.L1318:
+ bhi .L1349
+.L1342:
add w27, w27, 1
uxth w27, w27
- b .L1316
-.L1325:
+ b .L1340
+.L1349:
add x0, x19, :lo12:.LANCHOR0
ldr x0, [x0,608]
str w24, [x0,580]
- b .L1315
-.L1342:
+ b .L1339
+.L1366:
mov w26, 0
mov w22, w26
-.L1315:
- cbz w21, .L1328
+.L1339:
+ cbz w21, .L1352
add x0, x19, :lo12:.LANCHOR0
ldr x0, [x0,2864]
ldrh w0, [x0,134]
-.L1329:
+.L1353:
add x1, x19, :lo12:.LANCHOR0
ldrh w2, [x1,576]
cmp w2, w0
- bls .L1403
+ bls .L1427
ubfiz x3, x0, 2, 16
ldr x4, [x1,584]
add x5, x4, x3
ldr w1, [x4,x3]
ubfx x2, x1, 11, 8
cmp w2, w21
- bcc .L1330
+ bcc .L1354
ldrb w5, [x5,2]
tst w5, 24
- beq .L1330
+ beq .L1354
sub w2, w2, w21
bfi w1, w2, 11, 8
str w1, [x4,x3]
-.L1330:
+.L1354:
add w0, w0, 1
uxth w0, w0
- b .L1329
-.L1403:
+ b .L1353
+.L1427:
ldr x0, [x1,2864]
ldrh w1, [x0,72]
add w1, w21, w1
strh w1, [x0,72]
ldrh w1, [x0,98]
cmp w1, w21
- bls .L1328
+ bls .L1352
sub w21, w1, w21
strh w21, [x0,98]
-.L1328:
- cbz w20, .L1334
+.L1352:
+ cbz w20, .L1358
add x0, x19, :lo12:.LANCHOR0
ldr x0, [x0,2864]
ldrh w0, [x0,134]
-.L1335:
+.L1359:
add x1, x19, :lo12:.LANCHOR0
ldrh w2, [x1,576]
cmp w2, w0
- bls .L1404
+ bls .L1428
ubfiz x3, x0, 2, 16
ldr x4, [x1,584]
add x5, x4, x3
ldrh w1, [x4,x3]
and w2, w1, 2047
cmp w2, w20
- blt .L1336
+ blt .L1360
ldrb w5, [x5,2]
and w5, w5, 24
cmp w5, 16
- beq .L1336
+ beq .L1360
sub w2, w2, w20
bfi w1, w2, 0, 11
strh w1, [x4,x3]
-.L1336:
+.L1360:
add w0, w0, 1
uxth w0, w0
- b .L1335
-.L1404:
+ b .L1359
+.L1428:
ldr x0, [x1,2864]
ldrh w1, [x0,74]
add w1, w20, w1
strh w1, [x0,74]
ldrh w1, [x0,96]
cmp w1, w20
- bls .L1334
+ bls .L1358
sub w20, w1, w20
strh w20, [x0,96]
-.L1334:
+.L1358:
mov w1, 5
mov w0, 0
bl zftl_get_gc_node
uxth w1, w0
mov w2, 65535
cmp w1, w2
- beq .L1292
+ beq .L1316
add x19, x19, :lo12:.LANCHOR0
ubfiz x1, x1, 1, 16
ldr x2, [x19,600]
ldrh w2, [x2,x1]
ldrh w1, [x19,3300]
cmp w2, w1
- bhi .L1292
+ bhi .L1316
mov w1, 0
mov w2, 1
add w22, w22, 1
bl gc_add_sblk
- b .L1292
-.L1341:
+ b .L1316
+.L1365:
mov w26, 0
mov w22, w26
-.L1292:
+.L1316:
add w0, w26, w22
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -8721,10 +8910,10 @@ zftl_sblk_list_init:
mov w24, 6
mov w23, 32768
ldrh w2, [x19,576]
- adrp x26, .LC125
+ adrp x26, .LC128
ldr x0, [x19,528]
mov w25, -1
- add x26, x26, :lo12:.LC125
+ add x26, x26, :lo12:.LC128
mul w2, w2, w24
bl ftl_memset
ldrh w22, [x19,3274]
@@ -8750,52 +8939,52 @@ zftl_sblk_list_init:
ldr x0, [x19,2864]
ldrsh w19, [x0,134]
strh wzr, [x0,146]
-.L1406:
+.L1430:
add x0, x21, :lo12:.LANCHOR0
ldrh w1, [x0,576]
cmp w19, w1
- bge .L1436
+ bge .L1460
sxtw x22, w19
ldr x27, [x0,584]
ldr w1, [x29,108]
add x27, x27, x22, lsl 2
ldrb w2, [x27,3]
- cbz w2, .L1407
+ cbz w2, .L1431
ldrb w5, [x0,3276]
ldrh w6, [x0,3274]
ldr x4, [x0,2864]
mov w0, 0
mov w1, w0
-.L1408:
+.L1432:
cmp w0, w5
- bge .L1437
+ bge .L1461
ldrb w2, [x27,3]
asr w2, w2, w0
- tbnz x2, 0, .L1409
+ tbnz x2, 0, .L1433
add w1, w6, w1
sxth w1, w1
- b .L1410
-.L1409:
+ b .L1434
+.L1433:
ldrh w2, [x4,146]
add w2, w2, 1
strh w2, [x4,146]
-.L1410:
+.L1434:
add w0, w0, 1
- b .L1408
-.L1437:
- cbz w1, .L1412
+ b .L1432
+.L1461:
+ cbz w1, .L1436
sdiv w1, w23, w1
add w1, w1, 1
sxth w1, w1
- b .L1407
-.L1412:
+ b .L1431
+.L1436:
ldrb w0, [x27,2]
orr w0, w0, -32
strb w0, [x27,2]
add x0, x21, :lo12:.LANCHOR0
ldr x0, [x0,600]
strh w25, [x0,x22,lsl 1]
-.L1407:
+.L1431:
add x20, x21, :lo12:.LANCHOR0
smull x0, w19, w24
ldr x2, [x20,528]
@@ -8808,101 +8997,101 @@ zftl_sblk_list_init:
ldrb w1, [x27,2]
and w0, w1, 224
cmp w0, 224
- beq .L1415
+ beq .L1439
cmp w0, 32
cset w28, eq
- cbnz w28, .L1415
+ cbnz w28, .L1439
ldr x2, [x20,608]
ldrh w4, [x2,16]
cmp w19, w4
- beq .L1415
+ beq .L1439
ldrh w4, [x2,48]
cmp w19, w4
- beq .L1415
+ beq .L1439
ldrh w2, [x2,80]
cmp w19, w2
- beq .L1415
+ beq .L1439
cmp w0, 64
- bne .L1417
+ bne .L1441
uxth w27, w19
add x0, x20, 616
mov w1, w27
add x2, x20, 2850
- b .L1434
-.L1417:
+ b .L1458
+.L1441:
cmp w0, 96
- bne .L1418
+ bne .L1442
uxth w27, w19
add x0, x20, 3288
mov w1, w27
add x2, x20, 2852
- b .L1434
-.L1418:
+ b .L1458
+.L1442:
cmp w0, 160
- bne .L1419
+ bne .L1443
uxth w27, w19
add x0, x20, 3280
mov w1, w27
add x2, x20, 2854
-.L1434:
+.L1458:
bl _insert_data_list
ldr x0, [x20,600]
ldrh w0, [x0,x22,lsl 1]
cmp w0, 7
- bhi .L1415
+ bhi .L1439
mov w0, w27
mov w1, 1
mov w2, w28
- b .L1432
-.L1419:
- cbnz w0, .L1415
+ b .L1456
+.L1443:
+ cbnz w0, .L1439
ldr x0, [x20,600]
ldrh w2, [x0,x22,lsl 1]
- cbz w2, .L1420
+ cbz w2, .L1444
mov x0, x26
mov w1, w19
bl printk
ldrb w0, [x27,2]
- tbz x0, 4, .L1421
+ tbz x0, 4, .L1445
mov w1, 5
- b .L1428
-.L1421:
+ b .L1452
+.L1445:
mov w1, 2
-.L1428:
+.L1452:
bfi w0, w1, 5, 3
mov w2, 0
strb w0, [x27,2]
mov w1, 1
mov w0, w19
-.L1432:
+.L1456:
bl gc_add_sblk
- b .L1415
-.L1420:
+ b .L1439
+.L1444:
ands w1, w1, 24
add x2, x21, :lo12:.LANCHOR0
- bne .L1423
+ bne .L1447
add x0, x2, 3312
mov w1, w19
add x2, x2, 2844
- b .L1430
-.L1423:
+ b .L1454
+.L1447:
cmp w1, 16
- bne .L1424
+ bne .L1448
add x0, x2, 3320
mov w1, w19
add x2, x2, 2846
- b .L1430
-.L1424:
+ b .L1454
+.L1448:
add x0, x2, 3328
mov w1, w19
add x2, x2, 2848
-.L1430:
+.L1454:
bl _insert_free_list
-.L1415:
+.L1439:
add w19, w19, 1
sxth w19, w19
- b .L1406
-.L1436:
+ b .L1430
+.L1460:
ldr x1, [x0,2864]
ldrh w2, [x0,2844]
strh w2, [x1,114]
@@ -8932,7 +9121,7 @@ ftl_open_sblk_init:
add x29, sp, 0
stp x19, x20, [sp,16]
stp x23, x24, [sp,48]
- adrp x20, .LC113
+ adrp x20, .LC116
adrp x23, .LANCHOR0
stp x25, x26, [sp,64]
stp x21, x22, [sp,32]
@@ -8941,10 +9130,10 @@ ftl_open_sblk_init:
mov w21, w1
add x25, x0, 16
mov x26, x23
- add x20, x20, :lo12:.LC113
+ add x20, x20, :lo12:.LC116
mov w24, -1
-.L1439:
-.L1442:
+.L1463:
+.L1466:
mov w0, w21
bl ftl_alloc_sblk
uxth w22, w0
@@ -8966,16 +9155,16 @@ ftl_open_sblk_init:
mul w2, w1, w2
strh w2, [x19,6]
strb w21, [x19,4]
- beq .L1440
+ beq .L1464
ldrb w3, [x0,3276]
mul w3, w1, w3
uxth w3, w3
-.L1440:
+.L1464:
add x27, x26, :lo12:.LANCHOR0
strh w3, [x19,12]
ubfiz x28, x22, 1, 16
ldrb w2, [x27,3276]
- ldr x0, [x27,3872]
+ ldr x0, [x27,3864]
add x0, x0, x3, uxth 2
mul w2, w1, w2
mov w1, 255
@@ -8985,7 +9174,7 @@ ftl_open_sblk_init:
ldrh w1, [x19,6]
strh w1, [x0,x28]
ldrb w0, [x19,9]
- cbnz w0, .L1438
+ cbnz w0, .L1462
mov x0, x20
mov w1, w22
bl printk
@@ -8993,8 +9182,8 @@ ftl_open_sblk_init:
strh w24, [x0,x28]
mov w0, 7
strb w0, [x19,4]
- b .L1442
-.L1438:
+ b .L1466
+.L1462:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -9016,9 +9205,9 @@ pm_free_sblk:
stp x21, x22, [sp,32]
stp x25, x26, [sp,64]
stp x27, x28, [sp,80]
- ldrh w0, [x0,1164]
+ ldrh w0, [x0,1156]
cmp w0, 128
- bls .L1445
+ bls .L1469
adrp x1, .LANCHOR3
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR3
@@ -9027,7 +9216,7 @@ pm_free_sblk:
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L1445:
+.L1469:
add x28, x29, 112
mov w1, 0
mov w2, 256
@@ -9046,10 +9235,10 @@ pm_free_sblk:
add x1, x23, :lo12:.LANCHOR4
ldrh w7, [x4,698]
sub w0, w0, #1
- ldrh w9, [x1,1164]
-.L1446:
+ ldrh w9, [x1,1156]
+.L1470:
cmp w7, w3, uxth
- bls .L1471
+ bls .L1495
add x1, x4, x3, lsl 2
mov x2, 0
ldr w1, [x1,704]
@@ -9057,39 +9246,39 @@ pm_free_sblk:
and w1, w1, w0
udiv w1, w1, w8
uxth w1, w1
-.L1447:
+.L1471:
cmp w9, w2, uxth
- bls .L1472
+ bls .L1496
add x5, x4, x2, lsl 1
ldrh w5, [x5,416]
cmp w5, w1
- bne .L1448
+ bne .L1472
ldrh w5, [x28,x2,lsl 1]
add w5, w5, 1
strh w5, [x28,x2,lsl 1]
-.L1448:
- add x2, x2, 1
- b .L1447
.L1472:
+ add x2, x2, 1
+ b .L1471
+.L1496:
add x3, x3, 1
- b .L1446
-.L1471:
+ b .L1470
+.L1495:
add x1, x21, :lo12:.LANCHOR0
mov w25, 0
- adrp x24, .LC126
+ adrp x24, .LC129
mov w19, w25
adrp x26, .LANCHOR2
mov w27, -1
ldrb w0, [x1,3276]
- add x24, x24, :lo12:.LC126
+ add x24, x24, :lo12:.LC129
ldrh w20, [x1,3300]
mul w20, w0, w20
uxth w20, w20
-.L1451:
+.L1475:
add x0, x23, :lo12:.LANCHOR4
- ldrh w0, [x0,1164]
+ ldrh w0, [x0,1156]
cmp w0, w19
- bls .L1473
+ bls .L1497
add x0, x21, :lo12:.LANCHOR0
sxtw x22, w19
add x1, x22, 208
@@ -9099,31 +9288,31 @@ pm_free_sblk:
ldrh w1, [x4,692]
sdiv w1, w1, w2
cmp w1, w3
- bne .L1452
+ bne .L1476
ldrb w1, [x0,3276]
ldrh w0, [x0,3300]
mul w0, w1, w0
strh w0, [x28,w19,sxtw 1]
-.L1452:
+.L1476:
ldrh w0, [x28,x22,lsl 1]
cmp w20, w0
- bls .L1453
+ bls .L1477
cmp w0, wzr
csel w25, w25, w19, eq
csel w20, w20, w0, eq
-.L1453:
- cbnz w0, .L1455
+.L1477:
+ cbnz w0, .L1479
mov w0, 65535
cmp w3, w0
- beq .L1455
+ beq .L1479
ldr w0, [x26,#:lo12:.LANCHOR2]
- tbz x0, 12, .L1456
+ tbz x0, 12, .L1480
ldrh w4, [x4,688]
mov x0, x24
mov w1, w19
mov w2, 0
bl printk
-.L1456:
+.L1480:
add x1, x21, :lo12:.LANCHOR0
add x22, x22, 208
str x1, [x29,104]
@@ -9136,11 +9325,11 @@ pm_free_sblk:
ldrh w1, [x0,688]
sub w1, w1, #1
strh w1, [x0,688]
-.L1455:
+.L1479:
add w19, w19, 1
uxth w19, w19
- b .L1451
-.L1473:
+ b .L1475
+.L1497:
mov w0, w25
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -9171,15 +9360,15 @@ flash_info_data_init:
ldr w0, [x1,#:lo12:.LANCHOR2]
stp x19, x20, [sp,16]
mov x20, x1
- tbz x0, 12, .L1476
+ tbz x0, 12, .L1500
adrp x2, .LANCHOR3
- adrp x0, .LC127
+ adrp x0, .LC130
add x2, x2, :lo12:.LANCHOR3
- add x0, x0, :lo12:.LC127
- mov w1, 100
+ add x0, x0, :lo12:.LC130
+ mov w1, 105
add x2, x2, 112
bl printk
-.L1476:
+.L1500:
adrp x19, .LANCHOR0
mov w1, 0
add x19, x19, :lo12:.LANCHOR0
@@ -9214,14 +9403,14 @@ flash_info_data_init:
.type ftl_memcpy32, %function
ftl_memcpy32:
mov x3, 0
-.L1481:
+.L1505:
cmp w2, w3
- bls .L1483
+ bls .L1507
ldr w4, [x1,x3,lsl 2]
str w4, [x0,x3,lsl 2]
add x3, x3, 1
- b .L1481
-.L1483:
+ b .L1505
+.L1507:
ret
.size ftl_memcpy32, .-ftl_memcpy32
.align 2
@@ -9236,27 +9425,6 @@ ftl_memcmp:
ret
.size ftl_memcmp, .-ftl_memcmp
.align 2
- .global js_hash
- .type js_hash, %function
-js_hash:
- mov x5, x0
- mov w0, 42982
- mov x2, 0
- movk w0, 0x47c6, lsl 16
-.L1486:
- cmp w1, w2
- bls .L1488
- lsl w3, w0, 5
- ldrb w4, [x5,x2]
- add w3, w3, w0, lsr 2
- add x2, x2, 1
- add w3, w3, w4
- eor w0, w0, w3
- b .L1486
-.L1488:
- ret
- .size js_hash, .-js_hash
- .align 2
.global timer_get_time
.type timer_get_time, %function
timer_get_time:
@@ -9264,8 +9432,8 @@ timer_get_time:
stp x29, x30, [sp, -16]!
add x29, sp, 0
ldr x1, [x0,#:lo12:jiffies]
- adrp x0, .LANCHOR4+1168
- ldr x0, [x0,#:lo12:.LANCHOR4+1168]
+ adrp x0, .LANCHOR4+1160
+ ldr x0, [x0,#:lo12:.LANCHOR4+1160]
sub x0, x1, x0
bl jiffies_to_msecs
ldp x29, x30, [sp], 16
@@ -9285,10 +9453,10 @@ StorageSysDataLoad:
mov w1, 0
bl ftl_memset
bl rknand_device_lock
- adrp x0, .LANCHOR4+1176
+ adrp x0, .LANCHOR4+1168
mov x2, x19
mov w1, 1
- ldr x0, [x0,#:lo12:.LANCHOR4+1176]
+ ldr x0, [x0,#:lo12:.LANCHOR4+1168]
ldr x3, [x0,24]
mov w0, w20
blr x3
@@ -9308,10 +9476,10 @@ StorageSysDataStore:
str x0, [x29,16]
str x1, [x29,24]
bl rknand_device_lock
- adrp x1, .LANCHOR4+1176
+ adrp x1, .LANCHOR4+1168
ldr x2, [x29,24]
ldr x0, [x29,16]
- ldr x1, [x1,#:lo12:.LANCHOR4+1176]
+ ldr x1, [x1,#:lo12:.LANCHOR4+1168]
ldr x3, [x1,32]
mov w1, 1
blr x3
@@ -9331,11 +9499,11 @@ FlashBootVendorRead:
str x1, [x29,32]
str x2, [x29,40]
bl rknand_device_lock
- adrp x3, .LANCHOR4+1176
+ adrp x3, .LANCHOR4+1168
ldr x1, [x29,32]
ldr x2, [x29,40]
ldr x0, [x29,24]
- ldr x3, [x3,#:lo12:.LANCHOR4+1176]
+ ldr x3, [x3,#:lo12:.LANCHOR4+1168]
ldr x3, [x3,8]
blr x3
str x0, [x29,40]
@@ -9354,11 +9522,11 @@ FlashBootVendorWrite:
str x1, [x29,32]
str x2, [x29,40]
bl rknand_device_lock
- adrp x3, .LANCHOR4+1176
+ adrp x3, .LANCHOR4+1168
ldr x1, [x29,32]
ldr x2, [x29,40]
ldr x0, [x29,24]
- ldr x3, [x3,#:lo12:.LANCHOR4+1176]
+ ldr x3, [x3,#:lo12:.LANCHOR4+1168]
ldr x3, [x3,16]
blr x3
str x0, [x29,40]
@@ -9371,20 +9539,20 @@ FlashBootVendorWrite:
.global flash_sram_load_store
.type flash_sram_load_store, %function
flash_sram_load_store:
- adrp x4, .LANCHOR4+1184
+ adrp x4, .LANCHOR4+1176
mov x6, x0
stp x29, x30, [sp, -16]!
uxtw x1, w1
add x29, sp, 0
- ldr x4, [x4,#:lo12:.LANCHOR4+1184]
+ ldr x4, [x4,#:lo12:.LANCHOR4+1176]
add x4, x4, 4096
- cbnz w2, .L1495
+ cbnz w2, .L1515
add x1, x4, x1
- b .L1497
-.L1495:
+ b .L1517
+.L1515:
add x0, x4, x1
mov x1, x6
-.L1497:
+.L1517:
mov w2, w3
bl ftl_memcpy
ldp x29, x30, [sp], 16
@@ -9401,13 +9569,13 @@ FlashCs123Init:
.type rk_ftl_de_init, %function
rk_ftl_de_init:
stp x29, x30, [sp, -16]!
- adrp x0, .LC128
+ adrp x0, .LC131
mov w1, 0
add x29, sp, 0
- add x0, x0, :lo12:.LC128
+ add x0, x0, :lo12:.LC131
bl printk
- adrp x0, .LANCHOR4+1176
- ldr x0, [x0,#:lo12:.LANCHOR4+1176]
+ adrp x0, .LANCHOR4+1168
+ ldr x0, [x0,#:lo12:.LANCHOR4+1168]
ldr x0, [x0,80]
blr x0
ldp x29, x30, [sp], 16
@@ -9417,10 +9585,10 @@ rk_ftl_de_init:
.global rk_ftl_cache_write_back
.type rk_ftl_cache_write_back, %function
rk_ftl_cache_write_back:
- adrp x0, .LANCHOR4+1176
+ adrp x0, .LANCHOR4+1168
stp x29, x30, [sp, -16]!
add x29, sp, 0
- ldr x0, [x0,#:lo12:.LANCHOR4+1176]
+ ldr x0, [x0,#:lo12:.LANCHOR4+1168]
ldr x1, [x0,64]
mov w0, 0
blr x1
@@ -9431,10 +9599,10 @@ rk_ftl_cache_write_back:
.global rk_nand_suspend
.type rk_nand_suspend, %function
rk_nand_suspend:
- adrp x0, .LANCHOR4+1176
+ adrp x0, .LANCHOR4+1168
stp x29, x30, [sp, -16]!
add x29, sp, 0
- ldr x0, [x0,#:lo12:.LANCHOR4+1176]
+ ldr x0, [x0,#:lo12:.LANCHOR4+1168]
ldr x0, [x0,88]
blr x0
ldp x29, x30, [sp], 16
@@ -9444,10 +9612,10 @@ rk_nand_suspend:
.global rk_nand_resume
.type rk_nand_resume, %function
rk_nand_resume:
- adrp x0, .LANCHOR4+1176
+ adrp x0, .LANCHOR4+1168
stp x29, x30, [sp, -16]!
add x29, sp, 0
- ldr x0, [x0,#:lo12:.LANCHOR4+1176]
+ ldr x0, [x0,#:lo12:.LANCHOR4+1168]
ldr x0, [x0,96]
blr x0
ldp x29, x30, [sp], 16
@@ -9457,10 +9625,10 @@ rk_nand_resume:
.global rk_ftl_get_capacity
.type rk_ftl_get_capacity, %function
rk_ftl_get_capacity:
- adrp x0, .LANCHOR4+1176
+ adrp x0, .LANCHOR4+1168
stp x29, x30, [sp, -16]!
add x29, sp, 0
- ldr x0, [x0,#:lo12:.LANCHOR4+1176]
+ ldr x0, [x0,#:lo12:.LANCHOR4+1168]
ldr x1, [x0,72]
mov w0, 0
blr x1
@@ -9471,10 +9639,10 @@ rk_ftl_get_capacity:
.global rk_nandc_get_irq_status
.type rk_nandc_get_irq_status, %function
rk_nandc_get_irq_status:
- adrp x1, .LANCHOR4+1176
+ adrp x1, .LANCHOR4+1168
stp x29, x30, [sp, -16]!
add x29, sp, 0
- ldr x1, [x1,#:lo12:.LANCHOR4+1176]
+ ldr x1, [x1,#:lo12:.LANCHOR4+1168]
ldr x1, [x1,120]
blr x1
ldp x29, x30, [sp], 16
@@ -9484,10 +9652,10 @@ rk_nandc_get_irq_status:
.global rknand_proc_ftlread
.type rknand_proc_ftlread, %function
rknand_proc_ftlread:
- adrp x1, .LANCHOR4+1176
+ adrp x1, .LANCHOR4+1168
stp x29, x30, [sp, -16]!
add x29, sp, 0
- ldr x1, [x1,#:lo12:.LANCHOR4+1176]
+ ldr x1, [x1,#:lo12:.LANCHOR4+1168]
ldr x1, [x1,128]
blr x1
ldp x29, x30, [sp], 16
@@ -9497,11 +9665,11 @@ rknand_proc_ftlread:
.global FtlRead
.type FtlRead, %function
FtlRead:
- adrp x4, .LANCHOR4+1176
+ adrp x4, .LANCHOR4+1168
uxtb w0, w0
stp x29, x30, [sp, -16]!
add x29, sp, 0
- ldr x4, [x4,#:lo12:.LANCHOR4+1176]
+ ldr x4, [x4,#:lo12:.LANCHOR4+1168]
ldr x4, [x4,40]
blr x4
ldp x29, x30, [sp], 16
@@ -9511,10 +9679,10 @@ FtlRead:
.global FtlDiscard
.type FtlDiscard, %function
FtlDiscard:
- adrp x2, .LANCHOR4+1176
+ adrp x2, .LANCHOR4+1168
stp x29, x30, [sp, -16]!
add x29, sp, 0
- ldr x2, [x2,#:lo12:.LANCHOR4+1176]
+ ldr x2, [x2,#:lo12:.LANCHOR4+1168]
ldr x2, [x2,56]
blr x2
ldp x29, x30, [sp], 16
@@ -9524,10 +9692,10 @@ FtlDiscard:
.global rk_ftl_garbage_collect
.type rk_ftl_garbage_collect, %function
rk_ftl_garbage_collect:
- adrp x2, .LANCHOR4+1176
+ adrp x2, .LANCHOR4+1168
stp x29, x30, [sp, -16]!
add x29, sp, 0
- ldr x2, [x2,#:lo12:.LANCHOR4+1176]
+ ldr x2, [x2,#:lo12:.LANCHOR4+1168]
ldr x2, [x2,104]
blr x2
ldp x29, x30, [sp], 16
@@ -9537,10 +9705,10 @@ rk_ftl_garbage_collect:
.global ReadFlashInfo
.type ReadFlashInfo, %function
ReadFlashInfo:
- adrp x1, .LANCHOR4+1176
+ adrp x1, .LANCHOR4+1168
stp x29, x30, [sp, -16]!
add x29, sp, 0
- ldr x1, [x1,#:lo12:.LANCHOR4+1176]
+ ldr x1, [x1,#:lo12:.LANCHOR4+1168]
ldr x1, [x1,112]
blr x1
ldp x29, x30, [sp], 16
@@ -9556,8 +9724,8 @@ rknand_print_hex:
stp x21, x22, [sp,32]
stp x23, x24, [sp,48]
mov x19, 0
- adrp x23, .LC129
- adrp x21, .LC130
+ adrp x23, .LC132
+ adrp x21, .LC133
adrp x24, .LC1
stp x25, x26, [sp,64]
str x27, [sp,80]
@@ -9566,48 +9734,48 @@ rknand_print_hex:
mov w25, w2
uxtw x26, w3
mov w20, w19
- add x23, x23, :lo12:.LC129
- add x21, x21, :lo12:.LC130
+ add x23, x23, :lo12:.LC132
+ add x21, x21, :lo12:.LC133
add x24, x24, :lo12:.LC1
-.L1511:
+.L1531:
cmp x19, x26
- beq .L1519
- cbnz w20, .L1512
+ beq .L1539
+ cbnz w20, .L1532
mov x0, x23
mov x1, x27
mov x2, x22
mov w3, w19
bl printk
-.L1512:
+.L1532:
cmp w25, 4
mov x0, x21
- bne .L1513
+ bne .L1533
ldr w1, [x22,x19,lsl 2]
- b .L1518
-.L1513:
+ b .L1538
+.L1533:
cmp w25, 2
- bne .L1515
+ bne .L1535
ldrsh w1, [x22,x19,lsl 1]
- b .L1518
-.L1515:
+ b .L1538
+.L1535:
ldrb w1, [x22,x19]
-.L1518:
+.L1538:
bl printk
add w20, w20, 1
cmp w20, 15
- bls .L1516
- adrp x1, .LC131
+ bls .L1536
+ adrp x1, .LC134
mov x0, x24
- add x1, x1, :lo12:.LC131
+ add x1, x1, :lo12:.LC134
mov w20, 0
bl printk
-.L1516:
+.L1536:
add x19, x19, 1
- b .L1511
-.L1519:
+ b .L1531
+.L1539:
adrp x0, .LC1
- adrp x1, .LC131
- add x1, x1, :lo12:.LC131
+ adrp x1, .LC134
+ add x1, x1, :lo12:.LC134
add x0, x0, :lo12:.LC1
bl printk
ldr x27, [sp,80]
@@ -9623,171 +9791,185 @@ rknand_print_hex:
.type hynix_get_read_retry_default, %function
hynix_get_read_retry_default:
stp x29, x30, [sp, -144]!
+ adrp x3, .LANCHOR0
mov w2, -83
- mov w1, -82
add x29, sp, 0
stp x19, x20, [sp,16]
- adrp x19, .LANCHOR0
- stp x25, x26, [sp,64]
- mov w25, w0
- add x0, x19, :lo12:.LANCHOR0
+ mov w19, w0
+ add x0, x3, :lo12:.LANCHOR0
stp x21, x22, [sp,32]
+ stp x25, x26, [sp,64]
stp x23, x24, [sp,48]
stp x27, x28, [sp,80]
- cmp w25, 2
- str x19, [x29,128]
- ldr x27, [x0,728]
- add x0, x27, 112
- str x0, [x29,136]
+ mov w1, -82
+ cmp w19, 2
+ ldr x25, [x0,728]
mov w0, -84
- strb w25, [x27,112]
- strb w0, [x27,128]
+ str x3, [x29,136]
+ add x26, x25, 128
+ add x22, x25, 112
+ strb w0, [x25,128]
mov w0, -81
- strb w2, [x27,129]
- add x26, x27, 128
- strb w1, [x27,130]
- strb w0, [x27,131]
- bne .L1521
- ldr x1, [x29,136]
+ strb w19, [x25,112]
+ strb w2, [x25,129]
+ strb w1, [x25,130]
+ strb w0, [x25,131]
+ bne .L1541
mov w0, -89
- strb w0, [x1,16]
+ strb w0, [x22,16]
adrp x0, .LANCHOR2+425
mov w1, -9
strb w1, [x0,#:lo12:.LANCHOR2+425]
- b .L1576
-.L1521:
- cmp w25, 3
- bne .L1523
- mov x4, 0
-.L1524:
- sub w0, w4, #80
- strb w0, [x26,x4]
- add x4, x4, 1
- cmp x4, 8
- bne .L1524
- mov w21, w4
- mov w28, w4
- b .L1522
-.L1523:
- cmp w25, 4
- bne .L1525
- mov w4, -52
- strb w4, [x27,128]
- mov w4, -65
- strb w4, [x27,129]
- mov w4, -86
- mov w21, 8
- strb w4, [x27,130]
- mov w4, -85
- strb w2, [x27,133]
- mov w28, w21
- strb w4, [x27,131]
- mov w4, -51
- strb w1, [x27,134]
- strb w4, [x27,132]
- strb w0, [x27,135]
- b .L1522
-.L1525:
- cmp w25, 5
- bne .L1526
+ b .L1604
+.L1541:
+ cmp w19, 3
+ bne .L1543
+ mov x5, 0
+.L1544:
+ sub w0, w5, #80
+ strb w0, [x26,x5]
+ add x5, x5, 1
+ cmp x5, 8
+ bne .L1544
+ mov w27, w5
+ mov w28, w5
+ b .L1542
+.L1543:
+ cmp w19, 4
+ bne .L1545
+ mov w5, -52
+ strb w5, [x25,128]
+ mov w5, -65
+ strb w5, [x25,129]
+ mov w5, -86
+ mov w27, 8
+ strb w5, [x25,130]
+ mov w5, -85
+ strb w2, [x25,133]
+ mov w28, w27
+ strb w5, [x25,131]
+ mov w5, -51
+ strb w1, [x25,134]
+ strb w5, [x25,132]
+ strb w0, [x25,135]
+ b .L1542
+.L1545:
+ cmp w19, 5
+ bne .L1546
mov w0, 56
- strb w0, [x27,128]
+ strb w0, [x25,128]
mov w0, 57
- strb w0, [x27,129]
+ strb w0, [x25,129]
mov w0, 58
- mov w21, 8
- strb w0, [x27,130]
+ mov w27, 8
+ strb w0, [x25,130]
mov w0, 59
- strb w0, [x27,131]
- b .L1610
-.L1526:
- cmp w25, 6
- bne .L1527
+ strb w0, [x25,131]
+ b .L1646
+.L1546:
+ cmp w19, 6
+ bne .L1547
mov w0, 14
- strb w0, [x27,128]
+ strb w0, [x25,128]
mov w0, 15
- strb w0, [x27,129]
+ strb w0, [x25,129]
mov w0, 16
- mov w21, 12
- strb w0, [x27,130]
+ mov w27, 12
+ strb w0, [x25,130]
mov w0, 17
- strb w0, [x27,131]
- b .L1610
-.L1527:
- cmp w25, 7
- bne .L1576
+ strb w0, [x25,131]
+ b .L1646
+.L1547:
+ cmp w19, 7
+ bne .L1548
mov x0, 0
-.L1528:
+.L1549:
sub w1, w0, #80
strb w1, [x26,x0]
add x0, x0, 1
cmp x0, 8
- bne .L1528
+ bne .L1549
mov w0, -44
- mov w21, 12
- strb w0, [x27,136]
+ mov w27, 12
+ strb w0, [x25,136]
mov w28, 10
mov w0, -43
- strb w0, [x27,137]
- b .L1522
-.L1576:
- mov w21, 7
-.L1610:
+ strb w0, [x25,137]
+ b .L1542
+.L1548:
+ cmp w19, 8
+ bne .L1604
+ mov w0, 6
+ strb w0, [x25,128]
+ mov w0, 7
+ strb w0, [x25,129]
+ mov w0, 9
+ strb w19, [x25,130]
+ strb w0, [x25,131]
+ mov w27, 50
+ mov w0, 10
+ mov w28, 5
+ strb w0, [x25,132]
+ b .L1542
+.L1604:
+ mov w27, 7
+.L1646:
mov w28, 4
-.L1522:
- sub w0, w25, #1
+.L1542:
+ sub w0, w19, #1
cmp w0, 1
- bhi .L1607
- ldr x0, [x29,128]
+ bhi .L1643
+ ldr x0, [x29,136]
adrp x24, .LANCHOR2
add x24, x24, :lo12:.LANCHOR2
mov w23, 0
add x19, x0, :lo12:.LANCHOR0
- mov w27, 55
+ mov w5, 55
add x24, x24, 408
-.L1529:
+.L1550:
ldrb w0, [x19,633]
cmp w0, w23
- bls .L1536
+ bls .L1557
add x0, x19, x23, sxtw
- ldr x2, [x29,136]
ldrb w0, [x0,736]
mov x20, 160
- ldr x22, [x19,536]
- mov x25, 0
+ ldr x21, [x19,536]
ubfiz x1, x0, 8, 8
- madd x20, x0, x20, x2
- add x22, x22, x1
+ mov x25, 0
+ madd x20, x0, x20, x22
+ add x21, x21, x1
add x20, x20, 32
-.L1531:
- str w27, [x22,2056]
+.L1552:
+ str w5, [x21,2056]
+ str x5, [x29,136]
ldrb w0, [x26,x25]
- str w0, [x22,2052]
+ str w0, [x21,2052]
mov w0, 80
bl timer_delay_ns
- ldr w0, [x22,2048]
+ ldr w0, [x21,2048]
strb w0, [x20,x25]
add x25, x25, 1
+ ldr x5, [x29,136]
cmp w28, w25, uxtb
- bhi .L1531
+ bhi .L1552
mov x0, 0
-.L1532:
+.L1553:
add w2, w0, 8
mov x1, 0
-.L1533:
+.L1554:
add x3, x1, x0
add x1, x1, 4
add x3, x24, x3
cmp x1, 24
- ldrb w5, [x3,4]
+ ldrb w4, [x3,4]
ldrb w3, [x20,x0]
- add w3, w5, w3
+ add w3, w4, w3
strb w3, [x20,w2,sxtw]
add w2, w2, 8
- bne .L1533
+ bne .L1554
add x0, x0, 1
cmp x0, 4
- bne .L1532
+ bne .L1553
add w23, w23, 1
strb wzr, [x20,16]
strb wzr, [x20,24]
@@ -9797,34 +9979,34 @@ hynix_get_read_retry_default:
strb wzr, [x20,48]
strb wzr, [x20,41]
strb wzr, [x20,49]
- b .L1529
-.L1607:
- sub w0, w25, #3
- cmp w0, 4
- bhi .L1536
- mul w0, w28, w21
- sub w23, w28, #1
+ b .L1550
+.L1643:
+ sub w0, w19, #3
+ cmp w0, 5
+ bhi .L1557
+ mul w0, w28, w27
+ sub w24, w28, #1
mov w20, 0
- asr w22, w0, 2
+ asr w23, w0, 1
lsl w0, w0, 4
- uxtb x23, w23
- str w0, [x29,120]
- lsl w0, w22, 1
- sub w19, w25, #5
+ str w0, [x29,128]
+ lsl w0, w23, 1
+ uxtb x24, w24
str w0, [x29,124]
+ sub w0, w19, #5
adrp x26, .LANCHOR4
- add x0, x23, 1
+ str w0, [x29,132]
+ add x0, x24, 1
str x0, [x29,112]
-.L1537:
- ldr x0, [x29,128]
+.L1558:
+ ldr x0, [x29,136]
add x1, x0, :lo12:.LANCHOR0
ldrb w0, [x1,633]
cmp w0, w20
- bhi .L1575
-.L1536:
- ldr x0, [x29,136]
- strb w28, [x0,1]
- strb w21, [x0,2]
+ bhi .L1603
+.L1557:
+ strb w28, [x22,1]
+ strb w27, [x22,2]
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -9832,280 +10014,349 @@ hynix_get_read_retry_default:
ldp x27, x28, [sp,80]
ldp x29, x30, [sp], 144
ret
-.L1575:
+.L1603:
add x0, x1, x20, sxtw
- ldrb w23, [x0,736]
+ ldrb w24, [x0,736]
str x1, [x29,104]
- mov x24, 160
- mov w0, w23
+ mov x21, 160
+ mov w0, w24
bl zftl_flash_exit_slc_mode
- ldr x1, [x29,136]
- sxtw x0, w23
- ubfiz x2, x23, 8, 8
- madd x24, x0, x24, x1
ldr x1, [x29,104]
- add x24, x24, 32
+ sxtw x0, w24
+ ubfiz x2, x24, 8, 8
+ madd x21, x0, x21, x22
ldr x0, [x1,536]
mov w1, 255
str x1, [x29,104]
- add x23, x0, x2
- str w1, [x23,2056]
+ add x21, x21, 32
+ add x24, x0, x2
+ str w1, [x24,2056]
bl nandc_wait_flash_ready
- mov w0, 54
- cmp w25, 4
- str w0, [x23,2056]
+ cmp w19, 8
ldr x1, [x29,104]
- bne .L1538
+ bne .L1559
+ mov w0, 120
+ str w0, [x24,2056]
+ str wzr, [x24,2052]
+ mov w0, 23
+ str wzr, [x24,2052]
+ mov w1, 25
+ str wzr, [x24,2052]
+ add x21, x25, 144
+ str w0, [x24,2056]
+ mov w0, 4
+ str w0, [x24,2056]
+ str w1, [x24,2056]
+ mov w1, 218
+ str w1, [x24,2056]
+ mov w1, 21
+ str wzr, [x24,2056]
+ str wzr, [x24,2052]
+ str wzr, [x24,2052]
+ str w1, [x24,2052]
+ b .L1649
+.L1559:
+ mov w0, 54
+ cmp w19, 4
+ str w0, [x24,2056]
+ bne .L1561
mov w0, 64
- str w1, [x23,2052]
- str w0, [x23,2048]
+ str w1, [x24,2052]
+ str w0, [x24,2048]
mov w0, 204
- b .L1611
-.L1538:
- cmp w19, 1
- bhi .L1540
- ldrb w0, [x27,128]
- str w0, [x23,2052]
+ b .L1647
+.L1561:
+ ldr w0, [x29,132]
+ cmp w0, 1
+ bhi .L1563
+ ldrb w0, [x25,128]
+ str w0, [x24,2052]
mov w0, 82
- b .L1612
-.L1540:
+ b .L1648
+.L1563:
+ cmp w19, 7
+ bne .L1562
mov w0, 174
- str w0, [x23,2052]
- str wzr, [x23,2048]
+ str w0, [x24,2052]
+ str wzr, [x24,2048]
mov w0, 176
-.L1611:
- str w0, [x23,2052]
+.L1647:
+ str w0, [x24,2052]
mov w0, 77
-.L1612:
- str w0, [x23,2048]
+.L1648:
+ str w0, [x24,2048]
+.L1562:
mov w0, 22
- str w0, [x23,2056]
+ str w0, [x24,2056]
mov w0, 23
- str w0, [x23,2056]
+ str w0, [x24,2056]
mov w0, 4
- str w0, [x23,2056]
+ str w0, [x24,2056]
mov w0, 25
- str w0, [x23,2056]
- cmp w25, 6
- str wzr, [x23,2056]
- str wzr, [x23,2052]
- str wzr, [x23,2052]
- bne .L1541
+ str w0, [x24,2056]
+ str wzr, [x24,2056]
+ cmp w19, 6
+ str wzr, [x24,2052]
+ str wzr, [x24,2052]
+ bne .L1564
mov w0, 31
- str w0, [x23,2052]
- b .L1542
-.L1541:
- str wzr, [x23,2052]
-.L1542:
- mov w7, 2
- str w7, [x23,2052]
- str wzr, [x23,2052]
+ str w0, [x24,2052]
+ b .L1565
+.L1564:
+ str wzr, [x24,2052]
+.L1565:
+ mov w0, 2
+.L1649:
+ str w0, [x24,2052]
mov w0, 48
- str w0, [x23,2056]
- str x7, [x29,104]
+ str wzr, [x24,2052]
+ str w0, [x24,2056]
bl nandc_wait_flash_ready
- cmp w19, 1
- mov w1, 16
- bls .L1544
- ldr x7, [x29,104]
- cmp w25, 7
+ ldr w0, [x29,132]
+ cmp w0, 1
+ cset w8, ls
+ cmp w19, 8
+ cset w7, eq
+ cbnz w8, .L1606
+ cbnz w7, .L1606
+ cmp w19, 7
mov w1, 32
- csel w1, w1, w7, eq
-.L1544:
+ mov w0, 2
+ csel w1, w0, w1, ne
+ b .L1566
+.L1606:
+ mov w1, 16
+.L1566:
adrp x0, .LANCHOR4
- mov x7, 0
+ mov x9, 0
add x0, x0, :lo12:.LANCHOR4
- ldr x0, [x0,1192]
-.L1545:
- ldr w8, [x23,2048]
- strb w8, [x0,x7]
- add x7, x7, 1
- cmp w1, w7, uxtb
- bhi .L1545
- cmp w25, 7
- bne .L1546
+ ldr x0, [x0,1184]
+.L1567:
+ ldr w10, [x24,2048]
+ strb w10, [x0,x9]
+ add x9, x9, 1
+ cmp w1, w9, uxtb
+ bhi .L1567
+ cbz w7, .L1568
mov w1, 0
-.L1548:
- ldrb w7, [x0]
- cmp w7, 12
- beq .L1547
- ldrb w7, [x0,1]
- cmp w7, 10
- beq .L1547
+.L1570:
+ ldrb w9, [x0]
+ cmp w9, 50
+ beq .L1569
+ ldrb w9, [x0,1]
+ cmp w9, 5
+ beq .L1569
add w1, w1, 1
add x0, x0, 4
uxtb w1, w1
cmp w1, 8
- bne .L1548
- b .L1549
-.L1547:
+ bne .L1570
+ b .L1571
+.L1569:
cmp w1, 7
- bne .L1550
-.L1549:
- adrp x0, .LC132
+ bne .L1572
+.L1571:
+ adrp x0, .LC135
mov w1, 0
- add x0, x0, :lo12:.LC132
+ add x0, x0, :lo12:.LC135
bl printk
-.L1551:
- b .L1551
-.L1546:
- cmp w25, 6
- bne .L1550
+.L1573:
+ b .L1573
+.L1568:
+ cmp w19, 7
+ bne .L1574
+ mov w1, w7
+.L1576:
+ ldrb w9, [x0]
+ cmp w9, 12
+ beq .L1575
+ ldrb w9, [x0,1]
+ cmp w9, 10
+ beq .L1575
+ add w1, w1, 1
+ add x0, x0, 4
+ uxtb w1, w1
+ cmp w1, 8
+ bne .L1576
+ b .L1577
+.L1575:
+ cmp w1, 7
+ bne .L1572
+.L1577:
+ adrp x0, .LC135
+ mov w1, 0
+ add x0, x0, :lo12:.LC135
+ bl printk
+.L1578:
+ b .L1578
+.L1574:
+ cmp w19, 6
+ bne .L1572
mov x1, 0
-.L1552:
- ldrb w7, [x0,x1]
- cmp w7, 12
- beq .L1550
- add x7, x0, x1
- ldrb w7, [x7,8]
- cmp w7, 4
- beq .L1550
+.L1579:
+ ldrb w9, [x0,x1]
+ cmp w9, 12
+ beq .L1572
+ add x9, x0, x1
+ ldrb w9, [x9,8]
+ cmp w9, 4
+ beq .L1572
add x1, x1, 1
cmp x1, 8
- bne .L1552
- adrp x0, .LC132
+ bne .L1579
+ adrp x0, .LC135
mov w1, 0
- add x0, x0, :lo12:.LC132
+ add x0, x0, :lo12:.LC135
bl printk
-.L1554:
- b .L1554
-.L1550:
+.L1581:
+ b .L1581
+.L1572:
add x0, x26, :lo12:.LANCHOR4
- ldr x9, [x0,1192]
+ ldr x10, [x0,1184]
mov x0, 0
-.L1555:
- ldr w1, [x29,120]
+.L1582:
+ ldr w1, [x29,128]
cmp w1, w0
- ble .L1614
- ldr w1, [x23,2048]
- strb w1, [x9,x0]
+ ble .L1651
+ ldr w1, [x24,2048]
+ strb w1, [x10,x0]
add x0, x0, 1
- b .L1555
-.L1614:
+ b .L1582
+.L1651:
add x0, x26, :lo12:.LANCHOR4
- mov w8, w22
- mov w7, 8
- ldr x11, [x0,1192]
-.L1558:
+ mov w11, w23
+ mov w9, 8
+ ldr x12, [x0,1184]
+.L1585:
mov w0, 0
-.L1557:
- add w1, w0, w8
+.L1584:
+ add w1, w0, w11
add w0, w0, 1
- sbfiz x1, x1, 2, 32
- cmp w0, w22
- ldr w10, [x11,x1]
- mvn w10, w10
- str w10, [x11,x1]
- bne .L1557
+ sbfiz x1, x1, 1, 32
+ cmp w0, w23
+ ldrh w13, [x12,x1]
+ mvn w13, w13
+ strh w13, [x12,x1]
+ bne .L1584
ldr w0, [x29,124]
- subs w7, w7, #1
- add w8, w8, w0
- bne .L1558
- mov x7, 0
- mov w15, 1
-.L1559:
- add x0, x26, :lo12:.LANCHOR4
+ subs w9, w9, #1
+ add w11, w11, w0
+ bne .L1585
+ mov x9, 0
+ mov w17, 1
+.L1586:
mov w1, 0
- mov w10, w1
- ldr x14, [x0,1192]
-.L1563:
- lsl w8, w15, w10
- mov w12, w7
+ mov w11, w1
+.L1590:
+ lsl w13, w17, w11
+ mov w15, w9
mov w0, 16
- mov w11, 0
-.L1561:
- ldr w13, [x14,w12,sxtw 2]
- add w12, w12, w22
- and w13, w8, w13
- cmp w13, w8
- csinc w11, w11, w11, ne
+ mov w14, 0
+.L1588:
+ ldrh w16, [x12,w15,sxtw 1]
+ add w15, w15, w23
+ and w16, w16, w13
+ cmp w16, w13
+ csinc w14, w14, w14, ne
subs w0, w0, #1
- bne .L1561
- cmp w11, 9
- orr w8, w1, w8
- add w10, w10, 1
- csel w1, w8, w1, cs
- cmp w10, 32
- bne .L1563
- str w1, [x14,x7,lsl 2]
- add x7, x7, 1
- cmp w22, w7
- bgt .L1559
+ bne .L1588
+ cmp w14, 8
+ bls .L1589
+ orr w1, w1, w13
+ uxth w1, w1
+.L1589:
+ add w11, w11, 1
+ cmp w11, 16
+ bne .L1590
+ strh w1, [x12,x9,lsl 1]
+ add x9, x9, 1
+ cmp w23, w9
+ bgt .L1586
add x1, x26, :lo12:.LANCHOR4
- mov x7, 0
- mov w8, w7
- ldr x1, [x1,1192]
-.L1566:
- ldr w10, [x1,x7]
- add x7, x7, 4
- cmp w10, wzr
- csinc w8, w8, w8, ne
- cmp x7, 32
- bne .L1566
- cmp w8, 7
- ble .L1567
- adrp x0, .LC133
+ mov x9, 0
+ mov w11, w9
+ ldr x1, [x1,1184]
+.L1593:
+ ldr w12, [x1,x9]
+ add x9, x9, 4
+ cmp w12, wzr
+ csinc w11, w11, w11, ne
+ cmp x9, 32
+ bne .L1593
+ cmp w11, 7
+ ble .L1594
+ adrp x0, .LC136
mov w2, 1
- add x0, x0, :lo12:.LC133
+ add x0, x0, :lo12:.LC136
mov w3, 1024
bl rknand_print_hex
- adrp x0, .LC132
+ adrp x0, .LC135
mov w1, 0
- add x0, x0, :lo12:.LC132
- bl printk
-.L1568:
- b .L1568
-.L1567:
- cmp w25, 6
- mov w7, 4
- beq .L1569
- cmp w25, 7
- mov w7, 10
+ add x0, x0, :lo12:.LC135
+ bl printk
+.L1595:
+ b .L1595
+.L1594:
+ cmp w19, 6
+ mov w9, 4
+ beq .L1596
+ cmp w19, 7
+ mov w9, 10
+ beq .L1596
+ cmp w7, wzr
+ mov w9, 5
mov w1, 8
- csel w7, w1, w7, ne
-.L1569:
- mov w8, 0
-.L1570:
+ csel w9, w1, w9, eq
+.L1596:
+ mov w11, 0
+.L1597:
mov x1, 0
-.L1571:
- add w10, w0, w1
- ldrb w11, [x9,x1]
+.L1598:
+ add w12, w0, w1
+ ldrb w13, [x10,x1]
add x1, x1, 1
cmp w28, w1, uxtb
- strb w11, [x24,w10,sxtw]
- bhi .L1571
- add w8, w8, 1
+ strb w13, [x21,w12,sxtw]
+ bhi .L1598
+ add w11, w11, 1
ldr x1, [x29,112]
- cmp w8, w21
- add w0, w0, w7
- add x9, x9, x1
- blt .L1570
- mov w24, 255
- str w24, [x23,2056]
+ cmp w11, w27
+ add w0, w0, w9
+ add x10, x10, x1
+ blt .L1597
+ mov w21, 255
+ str w21, [x24,2056]
+ str x7, [x29,96]
+ str x8, [x29,104]
bl nandc_wait_flash_ready
- cmp w19, 1
- mov w0, 56
- bhi .L1613
+ ldr x8, [x29,104]
+ ldr x7, [x29,96]
+ cbz w8, .L1600
mov w0, 54
- str w0, [x23,2056]
- ldrb w0, [x27,128]
- str w0, [x23,2052]
+ str w0, [x24,2056]
+ ldrb w0, [x25,128]
+ str w0, [x24,2052]
mov w0, 22
- str wzr, [x23,2048]
- str w0, [x23,2056]
+ str wzr, [x24,2048]
+ str w0, [x24,2056]
mov w0, 48
- str wzr, [x23,2056]
- str wzr, [x23,2052]
- str wzr, [x23,2052]
- str w24, [x23,2052]
- str w24, [x23,2052]
- str w24, [x23,2052]
-.L1613:
- str w0, [x23,2056]
+ str wzr, [x24,2056]
+ str wzr, [x24,2052]
+ str wzr, [x24,2052]
+ str w21, [x24,2052]
+ str w21, [x24,2052]
+ str w21, [x24,2052]
+ b .L1650
+.L1600:
+ mov w0, 190
+ cbnz w7, .L1650
+ mov w0, 56
+.L1650:
+ str w0, [x24,2056]
add w20, w20, 1
bl nandc_wait_flash_ready
uxtb w20, w20
- b .L1537
+ b .L1558
.size hynix_get_read_retry_default, .-hynix_get_read_retry_default
.align 2
.global flash_get_read_retry_tbl
@@ -10117,10 +10368,10 @@ flash_get_read_retry_tbl:
ldrb w0, [x0,#:lo12:.LANCHOR2+27]
sub w1, w0, #1
uxtb w1, w1
- cmp w1, 6
- bhi .L1615
+ cmp w1, 7
+ bhi .L1652
bl hynix_get_read_retry_default
-.L1615:
+.L1652:
ldp x29, x30, [sp], 16
ret
.size flash_get_read_retry_tbl, .-flash_get_read_retry_tbl
@@ -10140,54 +10391,54 @@ nandc_xfer_done:
adrp x0, .LANCHOR4
add x1, x0, :lo12:.LANCHOR4
mov x23, x0
- strb wzr, [x1,1200]
+ strb wzr, [x1,1192]
ldrb w1, [x20,516]
cmp w1, 9
- bne .L1618
+ bne .L1655
ldr x24, [x20,536]
ldr w0, [x24,16]
str w0, [x29,64]
ldr w20, [x24,48]
ubfx x20, x20, 1, 1
- cbnz w20, .L1638
- adrp x21, .LC137
- adrp x23, .LC136
- add x21, x21, :lo12:.LC137
- add x23, x23, :lo12:.LC136
- b .L1620
-.L1638:
- adrp x21, .LC135
- adrp x22, .LC136
+ cbnz w20, .L1675
+ adrp x21, .LC140
+ adrp x23, .LC139
+ add x21, x21, :lo12:.LC140
+ add x23, x23, :lo12:.LC139
+ b .L1657
+.L1675:
+ adrp x21, .LC138
+ adrp x22, .LC139
mov w20, 0
- add x21, x21, :lo12:.LC135
- add x22, x22, :lo12:.LC136
-.L1619:
+ add x21, x21, :lo12:.LC138
+ add x22, x22, :lo12:.LC139
+.L1656:
ldr w2, [x24,64]
ldr w1, [x29,64]
ubfx x2, x2, 16, 6
ubfx x1, x1, 22, 6
cmp w2, w1
- bge .L1622
+ bge .L1659
add x0, x19, :lo12:.LANCHOR0
ldr x0, [x0,536]
ldr w0, [x0]
str w0, [x29,72]
ldr w0, [x29,72]
- tbz x0, 13, .L1621
+ tbz x0, 13, .L1658
ldr w0, [x29,72]
- tbz x0, 17, .L1621
+ tbz x0, 17, .L1658
ldr w1, [x29,72]
- adrp x0, .LC134
- add x0, x0, :lo12:.LC134
+ adrp x0, .LC137
+ add x0, x0, :lo12:.LC137
ubfx x1, x1, 17, 1
bl printk
- b .L1622
-.L1621:
+ b .L1659
+.L1658:
ldr w0, [x29,64]
add w20, w20, 1
ubfx x0, x0, 22, 6
cmp w20, w0, lsl 12
- bne .L1619
+ bne .L1656
ldr w2, [x24,64]
mov w1, w20
ldr w3, [x29,64]
@@ -10202,15 +10453,15 @@ nandc_xfer_done:
ldr x1, [x1,536]
bl rknand_print_hex
ldr w0, [x29,72]
- tbz x0, 13, .L1619
+ tbz x0, 13, .L1656
add x0, x23, :lo12:.LANCHOR4
mov w1, 1
- strb w1, [x0,1200]
-.L1622:
+ strb w1, [x0,1192]
+.L1659:
add x20, x19, :lo12:.LANCHOR0
add x20, x20, 680
ldr w0, [x20,32]
- cbz w0, .L1626
+ cbz w0, .L1663
ldr w1, [x29,64]
mov w2, 0
ldr w0, [x20,24]
@@ -10221,15 +10472,15 @@ nandc_xfer_done:
ldr w0, [x20,28]
ubfx x1, x1, 22, 6
lsl w1, w1, 2
- b .L1666
-.L1628:
+ b .L1703
+.L1665:
add x22, x19, :lo12:.LANCHOR0
add w20, w20, 1
ldr x0, [x22,536]
ldr w0, [x0,16]
str w0, [x29,64]
and w0, w20, 16777215
- cbnz w0, .L1620
+ cbnz w0, .L1657
ldr w2, [x29,64]
mov w1, w20
ldr w3, [x24,64]
@@ -10241,13 +10492,13 @@ nandc_xfer_done:
mov w2, 4
mov w3, 64
bl rknand_print_hex
-.L1620:
+.L1657:
ldr w0, [x29,64]
- tbz x0, 20, .L1628
+ tbz x0, 20, .L1665
add x20, x19, :lo12:.LANCHOR0
add x20, x20, 680
ldr w0, [x20,32]
- cbz w0, .L1626
+ cbz w0, .L1663
ldr w1, [x29,64]
mov w2, 1
ldr w0, [x20,24]
@@ -10258,49 +10509,49 @@ nandc_xfer_done:
ldr w0, [x20,28]
ubfx x1, x1, 22, 6
lsl w1, w1, 2
- b .L1665
-.L1618:
+ b .L1702
+.L1655:
ldr x23, [x20,536]
ldr w0, [x23,8]
str w0, [x29,64]
ldr w20, [x23,16]
ubfx x20, x20, 1, 1
- cbnz w20, .L1639
- adrp x21, .LC137
- adrp x24, .LC136
- add x21, x21, :lo12:.LC137
- add x24, x24, :lo12:.LC136
- b .L1631
-.L1639:
- adrp x21, .LC135
- adrp x22, .LC136
+ cbnz w20, .L1676
+ adrp x21, .LC140
+ adrp x24, .LC139
+ add x21, x21, :lo12:.LC140
+ add x24, x24, :lo12:.LC139
+ b .L1668
+.L1676:
+ adrp x21, .LC138
+ adrp x22, .LC139
mov w20, 0
- add x21, x21, :lo12:.LC135
- add x22, x22, :lo12:.LC136
-.L1630:
+ add x21, x21, :lo12:.LC138
+ add x22, x22, :lo12:.LC139
+.L1667:
ldr w2, [x23,28]
ldr w1, [x29,64]
ubfx x2, x2, 16, 5
ubfx x1, x1, 22, 6
cmp w2, w1
- bge .L1633
+ bge .L1670
add x0, x19, :lo12:.LANCHOR0
ldr x0, [x0,536]
ldr w0, [x0]
str w0, [x29,72]
ldr w0, [x29,72]
- tbz x0, 13, .L1632
+ tbz x0, 13, .L1669
ldr w0, [x29,72]
- tbz x0, 17, .L1632
+ tbz x0, 17, .L1669
ldr w1, [x29,72]
- adrp x0, .LC138
- add x0, x0, :lo12:.LC138
+ adrp x0, .LC141
+ add x0, x0, :lo12:.LC141
bl printk
- b .L1633
-.L1632:
+ b .L1670
+.L1669:
add w20, w20, 1
and w0, w20, 16777215
- cbnz w0, .L1630
+ cbnz w0, .L1667
ldr w2, [x23,28]
mov w1, w20
ldr w3, [x29,64]
@@ -10314,12 +10565,12 @@ nandc_xfer_done:
mov w3, 64
ldr x1, [x1,536]
bl rknand_print_hex
- b .L1630
-.L1633:
+ b .L1667
+.L1670:
add x20, x19, :lo12:.LANCHOR0
add x20, x20, 680
ldr w0, [x20,32]
- cbz w0, .L1626
+ cbz w0, .L1663
ldr w1, [x29,64]
mov w2, 0
ldr w0, [x20,24]
@@ -10330,17 +10581,17 @@ nandc_xfer_done:
ldr w0, [x20,28]
ubfx x1, x1, 22, 6
lsl w1, w1, 7
-.L1666:
+.L1703:
mov w2, 0
- b .L1664
-.L1637:
+ b .L1701
+.L1674:
add x22, x19, :lo12:.LANCHOR0
add w20, w20, 1
ldr x0, [x22,536]
ldr w0, [x0,8]
str w0, [x29,64]
and w0, w20, 16777215
- cbnz w0, .L1631
+ cbnz w0, .L1668
ldr w2, [x29,64]
mov w1, w20
ldr w3, [x23,28]
@@ -10352,13 +10603,13 @@ nandc_xfer_done:
mov w2, 4
mov w3, 64
bl rknand_print_hex
-.L1631:
+.L1668:
ldr w0, [x29,64]
- tbz x0, 20, .L1637
+ tbz x0, 20, .L1674
add x20, x19, :lo12:.LANCHOR0
add x20, x20, 680
ldr w0, [x20,32]
- cbz w0, .L1626
+ cbz w0, .L1663
ldr w1, [x29,64]
mov w2, 1
ldr w0, [x20,24]
@@ -10369,11 +10620,11 @@ nandc_xfer_done:
ldr w0, [x20,28]
ubfx x1, x1, 22, 6
lsl w1, w1, 7
-.L1665:
+.L1702:
mov w2, 1
-.L1664:
+.L1701:
bl rknand_dma_unmap_single
-.L1626:
+.L1663:
add x19, x19, :lo12:.LANCHOR0
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -10402,19 +10653,19 @@ nandc_xfer:
bl nandc_xfer_start
bl nandc_xfer_done
mov w0, 0
- cbnz w20, .L1697
+ cbnz w20, .L1734
adrp x19, .LANCHOR0
add x2, x19, :lo12:.LANCHOR0
ldrb w1, [x2,516]
cmp w1, 9
- bne .L1669
+ bne .L1706
ldr x5, [x2,536]
lsr w22, w22, 2
mov w4, 1
mov w3, w0
-.L1670:
+.L1707:
cmp w3, w22
- bcs .L1706
+ bcs .L1743
uxtw x1, w3
add x1, x1, 84
ldr w1, [x5,x1,lsl 2]
@@ -10426,30 +10677,30 @@ nandc_xfer:
and w1, w1, w2
and w4, w4, w1
ldr w1, [x29,72]
- tbnz x1, 2, .L1689
+ tbnz x1, 2, .L1726
ldr w1, [x29,72]
- tbnz x1, 18, .L1689
+ tbnz x1, 18, .L1726
ldr w2, [x29,72]
ldr w1, [x29,72]
ubfx x2, x2, 3, 7
ubfx x1, x1, 19, 7
cmp w2, w1
ldr w1, [x29,72]
- ble .L1672
+ ble .L1709
ubfx x1, x1, 3, 7
- b .L1673
-.L1672:
+ b .L1710
+.L1709:
ubfx x1, x1, 19, 7
-.L1673:
+.L1710:
cmp w0, w1
csel w0, w0, w1, cs
- b .L1671
-.L1689:
+ b .L1708
+.L1726:
mov w0, -1
-.L1671:
+.L1708:
add w3, w3, 1
- b .L1670
-.L1706:
+ b .L1707
+.L1743:
add x22, x19, :lo12:.LANCHOR0
cmp w4, wzr
ldr x1, [x22,536]
@@ -10460,30 +10711,30 @@ nandc_xfer:
movk w1, 0x2, lsl 16
and w1, w20, w1
cmp w1, 139264
- bne .L1676
- adrp x0, .LC139
+ bne .L1713
+ adrp x0, .LC142
mov w1, w20
- add x0, x0, :lo12:.LC139
+ add x0, x0, :lo12:.LC142
orr w20, w20, 131072
bl printk
ldr x0, [x22,536]
str w20, [x0]
mov w0, -1
-.L1676:
- tbz x20, 13, .L1677
- adrp x1, .LANCHOR4+1200
- ldrb w1, [x1,#:lo12:.LANCHOR4+1200]
- cbz w1, .L1677
- adrp x0, .LC140
+.L1713:
+ tbz x20, 13, .L1714
+ adrp x1, .LANCHOR4+1192
+ ldrb w1, [x1,#:lo12:.LANCHOR4+1192]
+ cbz w1, .L1714
+ adrp x0, .LC143
mov w1, w20
- add x0, x0, :lo12:.LC140
+ add x0, x0, :lo12:.LC143
add x19, x19, :lo12:.LANCHOR0
bl printk
ldr x0, [x19,536]
mov w1, 1
str w1, [x0,16]
- b .L1678
-.L1669:
+ b .L1715
+.L1706:
ldrb w0, [x2,724]
mov w5, 128
lsr w6, w22, 1
@@ -10493,10 +10744,10 @@ nandc_xfer:
csel w5, w0, w5, cc
mov w1, w20
mov w4, w20
-.L1680:
+.L1717:
cmp w4, w6
add w7, w1, w5
- bcs .L1707
+ bcs .L1744
ldr x0, [x2,680]
and x1, x1, 4294967292
ldr w0, [x0,x1]
@@ -10513,24 +10764,24 @@ nandc_xfer:
add w3, w3, 4
strb w0, [x23,x1]
mov w1, w7
- b .L1680
-.L1707:
+ b .L1717
+.L1744:
add x0, x19, :lo12:.LANCHOR0
mov w2, 0
lsr w22, w22, 2
ldr x6, [x0,536]
mov w0, w2
-.L1682:
+.L1719:
cmp w2, w22
- bcs .L1708
+ bcs .L1745
uxtw x1, w2
add x1, x1, 8
ldr w1, [x6,x1,lsl 2]
str w1, [x29,72]
ldr w1, [x29,72]
- tbnz x1, 2, .L1692
+ tbnz x1, 2, .L1729
ldr w1, [x29,72]
- tbnz x1, 15, .L1692
+ tbnz x1, 15, .L1729
ldr w3, [x29,72]
ubfx x5, x3, 3, 5
ldr w3, [x29,72]
@@ -10543,26 +10794,26 @@ nandc_xfer:
orr w1, w4, w1, lsl 5
cmp w3, w1
ldr w1, [x29,72]
- bls .L1684
+ bls .L1721
ubfx x3, x1, 3, 5
ldr w1, [x29,72]
ubfx x1, x1, 27, 1
- b .L1705
-.L1684:
+ b .L1742
+.L1721:
ubfx x3, x1, 16, 5
ldr w1, [x29,72]
ubfx x1, x1, 29, 1
-.L1705:
+.L1742:
orr w1, w3, w1, lsl 5
cmp w0, w1
csel w0, w0, w1, cs
- b .L1683
-.L1692:
+ b .L1720
+.L1729:
mov w0, -1
-.L1683:
+.L1720:
add w2, w2, 1
- b .L1682
-.L1708:
+ b .L1719
+.L1745:
add x19, x19, :lo12:.LANCHOR0
ldr x1, [x19,536]
str wzr, [x1,16]
@@ -10571,32 +10822,32 @@ nandc_xfer:
movk w1, 0x2, lsl 16
and w1, w20, w1
cmp w1, 139264
- bne .L1677
- adrp x0, .LC141
+ bne .L1714
+ adrp x0, .LC144
mov w1, w20
- add x0, x0, :lo12:.LC141
+ add x0, x0, :lo12:.LC144
orr w20, w20, 131072
bl printk
ldr x0, [x19,536]
str w20, [x0]
- b .L1678
-.L1677:
+ b .L1715
+.L1714:
cmn w0, #1
- beq .L1697
+ beq .L1734
ldr w1, [x23]
cmn w1, #1
- bne .L1697
+ bne .L1734
ldr w1, [x23,4]
cmn w1, #1
- bne .L1697
+ bne .L1734
ldr w1, [x21]
cmn w1, #1
mov w1, 512
csel w0, w0, w1, ne
- b .L1697
-.L1678:
+ b .L1734
+.L1715:
mov w0, -1
-.L1697:
+.L1734:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldr x23, [sp,48]
@@ -10626,36 +10877,36 @@ flash_read_page:
and w20, w1, 2097151
ubfx x24, x23, 24, 2
ldr w0, [x0,#:lo12:.LANCHOR2]
- tbz x0, 4, .L1710
- adrp x0, .LC142
+ tbz x0, 4, .L1747
+ adrp x0, .LC145
mov w1, w21
- add x0, x0, :lo12:.LC142
+ add x0, x0, :lo12:.LC145
mov w2, w24
mov w3, w23
bl printk
-.L1710:
+.L1747:
bl nandc_wait_flash_ready
mov w0, w21
bl nandc_cs
- cbnz w24, .L1711
+ cbnz w24, .L1748
mov w0, w21
bl zftl_flash_enter_slc_mode
- b .L1712
-.L1711:
+ b .L1749
+.L1748:
add x0, x22, :lo12:.LANCHOR0
ldr x0, [x0,624]
ldrb w0, [x0,12]
cmp w0, 3
- bne .L1713
+ bne .L1750
sxtw x0, w21
add x0, x0, 8
add x0, x19, x0, lsl 8
str w24, [x0,8]
- b .L1712
-.L1713:
+ b .L1749
+.L1750:
mov w0, w21
bl zftl_flash_exit_slc_mode
-.L1712:
+.L1749:
ubfiz x5, x21, 8, 8
and w23, w23, 255
add x19, x19, x5
@@ -10669,19 +10920,19 @@ flash_read_page:
str w0, [x19,2052]
mov w0, 48
str w0, [x19,2056]
- cbz w24, .L1714
+ cbz w24, .L1751
add x22, x22, :lo12:.LANCHOR0
ldr x0, [x22,624]
ldrb w0, [x0,12]
cmp w0, 3
- bne .L1714
+ bne .L1751
add w20, w20, w20, lsl 1
sub w0, w20, #1
add w0, w0, w24
- b .L1725
-.L1714:
+ b .L1762
+.L1751:
mov w0, w20
-.L1725:
+.L1762:
bl nandc_set_seed
bl nandc_wait_flash_ready
mov w0, 5
@@ -10738,14 +10989,14 @@ micron_read_retrial:
uxtb x19, w24
lsl x0, x19, 8
str x0, [x29,112]
- adrp x0, .LC143
- add x0, x0, :lo12:.LC143
+ adrp x0, .LC146
+ add x0, x0, :lo12:.LC146
str x0, [x29,104]
-.L1727:
+.L1764:
add x0, x23, :lo12:.LANCHOR4
- ldrb w0, [x0,1216]
+ ldrb w0, [x0,1208]
cmp w20, w0
- bcs .L1731
+ bcs .L1768
ldr x0, [x29,112]
add w27, w20, 1
add x1, x22, x0
@@ -10770,7 +11021,7 @@ micron_read_retrial:
mov w6, w0
adrp x0, .LANCHOR2
ldr w0, [x0,#:lo12:.LANCHOR2]
- tbz x0, 12, .L1728
+ tbz x0, 12, .L1765
ldr x0, [x29,104]
mov w4, w6
mov w1, w20
@@ -10779,24 +11030,24 @@ micron_read_retrial:
str x6, [x29,96]
bl printk
ldr x6, [x29,96]
-.L1728:
+.L1765:
cmn w6, #1
- beq .L1729
+ beq .L1766
adrp x0, .LANCHOR4
cmn w28, #1
add x0, x0, :lo12:.LANCHOR4
csel w28, w28, w6, ne
- ldr x25, [x0,1192]
- ldr x26, [x0,1208]
+ ldr x25, [x0,1184]
+ ldr x26, [x0,1200]
ldr w0, [x29,124]
cmp w6, w0
- bcc .L1736
-.L1729:
+ bcc .L1773
+.L1766:
mov w20, w27
- b .L1727
-.L1736:
+ b .L1764
+.L1773:
mov w28, w6
-.L1731:
+.L1768:
add x19, x22, x19, lsl 8
mov w0, 239
str w0, [x19,2056]
@@ -10810,24 +11061,24 @@ micron_read_retrial:
str wzr, [x19,2048]
str wzr, [x19,2048]
cmp w28, w0
- bcc .L1733
+ bcc .L1770
cmn w28, #1
mov w0, 256
csel w28, w28, w0, eq
-.L1733:
+.L1770:
cmn w28, #1
- beq .L1737
+ beq .L1774
cmp w28, 256
- bne .L1734
-.L1737:
- adrp x0, .LC144
+ bne .L1771
+.L1774:
+ adrp x0, .LC147
mov w1, w20
- add x0, x0, :lo12:.LC144
+ add x0, x0, :lo12:.LC147
mov w2, w21
mov w3, w20
mov w4, w28
bl printk
-.L1734:
+.L1771:
bl nandc_wait_flash_ready
mov w0, w28
ldp x19, x20, [sp,16]
@@ -10873,19 +11124,19 @@ toshiba_3d_read_retrial:
cmp w1, 36
mov w1, 26
csel w21, w21, w1, ne
- cbnz w19, .L1751
+ cbnz w19, .L1788
str x0, [x29,112]
- adrp x0, .LC145
- add x0, x0, :lo12:.LC145
+ adrp x0, .LC148
+ add x0, x0, :lo12:.LC148
mov w19, -1
mov w28, 1
str x0, [x29,104]
-.L1758:
+.L1795:
add x0, x20, :lo12:.LANCHOR0
ldrb w0, [x0,725]
cmp w0, 36
mov x0, x23
- bne .L1752
+ bne .L1789
mov w1, w28
mov w2, 0
bl toshiba_tlc_set_rr_para
@@ -10893,11 +11144,11 @@ toshiba_3d_read_retrial:
mov w1, 93
add x0, x25, x0
str w1, [x0,8]
- b .L1753
-.L1752:
+ b .L1790
+.L1789:
mov w1, w28
bl toshiba_3d_set_slc_rr_para
-.L1753:
+.L1790:
ldr w4, [x29,124]
mov w0, w22
mov w1, w24
@@ -10907,7 +11158,7 @@ toshiba_3d_read_retrial:
mov w4, w0
adrp x0, .LANCHOR2
ldr w0, [x0,#:lo12:.LANCHOR2]
- tbz x0, 4, .L1754
+ tbz x0, 4, .L1791
ldr x0, [x29,104]
mov w3, w4
mov w1, w28
@@ -10915,66 +11166,66 @@ toshiba_3d_read_retrial:
str x4, [x29,96]
bl printk
ldr x4, [x29,96]
-.L1754:
+.L1791:
cmn w4, #1
- beq .L1755
+ beq .L1792
adrp x0, .LANCHOR4
cmn w19, #1
add x0, x0, :lo12:.LANCHOR4
csel w19, w19, w4, ne
- ldr x26, [x0,1192]
- ldr x27, [x0,1208]
+ ldr x26, [x0,1184]
+ ldr x27, [x0,1200]
add x0, x20, :lo12:.LANCHOR0
ldrb w0, [x0,724]
add w0, w0, w0, lsl 1
cmp w4, w0, lsr 2
- bcc .L1774
-.L1755:
+ bcc .L1811
+.L1792:
add w28, w28, 1
cmp w28, w21
- bne .L1758
- b .L1757
-.L1774:
+ bne .L1795
+ b .L1794
+.L1811:
mov w21, w28
mov w19, w4
-.L1757:
+.L1794:
add x0, x20, :lo12:.LANCHOR0
ldrb w0, [x0,725]
cmp w0, 36
mov x0, x23
- bne .L1759
+ bne .L1796
mov w1, 0
mov w2, w1
- b .L1797
-.L1759:
+ b .L1834
+.L1796:
mov w1, 0
bl toshiba_3d_set_slc_rr_para
- b .L1760
-.L1751:
+ b .L1797
+.L1788:
mov x28, x0
- adrp x0, .LC146
- add x0, x0, :lo12:.LC146
+ adrp x0, .LC149
+ add x0, x0, :lo12:.LC149
mov w19, -1
mov w21, 1
str x0, [x29,104]
-.L1767:
+.L1804:
add x0, x20, :lo12:.LANCHOR0
ldrb w0, [x0,725]
cmp w0, 36
mov x0, x23
- bne .L1761
+ bne .L1798
mov w1, w21
mov w2, 1
bl toshiba_tlc_set_rr_para
add x0, x25, x28
mov w1, 93
- b .L1796
-.L1761:
+ b .L1833
+.L1798:
mov w1, w21
bl toshiba_3d_set_tlc_rr_para
add x0, x25, x28
mov w1, 38
-.L1796:
+.L1833:
str w1, [x0,8]
mov x2, x26
mov w0, w22
@@ -10985,7 +11236,7 @@ toshiba_3d_read_retrial:
mov w4, w0
adrp x0, .LANCHOR2
ldr w0, [x0,#:lo12:.LANCHOR2]
- tbz x0, 4, .L1763
+ tbz x0, 4, .L1800
ldr x0, [x29,104]
mov w3, w4
mov w1, w21
@@ -10993,47 +11244,47 @@ toshiba_3d_read_retrial:
str x4, [x29,96]
bl printk
ldr x4, [x29,96]
-.L1763:
+.L1800:
cmn w4, #1
- beq .L1764
+ beq .L1801
adrp x0, .LANCHOR4
cmn w19, #1
add x0, x0, :lo12:.LANCHOR4
csel w19, w19, w4, ne
- ldr x26, [x0,1192]
- ldr x27, [x0,1208]
+ ldr x26, [x0,1184]
+ ldr x27, [x0,1200]
add x0, x20, :lo12:.LANCHOR0
ldrb w0, [x0,724]
add w0, w0, w0, lsl 1
cmp w4, w0, lsr 2
- bcc .L1775
-.L1764:
+ bcc .L1812
+.L1801:
ldr w0, [x29,112]
add w21, w21, 1
cmp w21, w0
- bne .L1767
- b .L1766
-.L1775:
+ bne .L1804
+ b .L1803
+.L1812:
mov w19, w4
-.L1766:
+.L1803:
add x0, x20, :lo12:.LANCHOR0
ldrb w0, [x0,725]
cmp w0, 36
mov x0, x23
- bne .L1768
+ bne .L1805
mov w1, 0
mov w2, 1
-.L1797:
+.L1834:
bl toshiba_tlc_set_rr_para
- b .L1760
-.L1768:
+ b .L1797
+.L1805:
mov w1, 0
bl toshiba_3d_set_tlc_rr_para
-.L1760:
+.L1797:
add x0, x20, :lo12:.LANCHOR0
ldrb w0, [x0,725]
cmp w0, 36
- bne .L1769
+ bne .L1806
ubfiz x22, x22, 8, 8
mov w0, 85
add x25, x25, x22
@@ -11042,29 +11293,29 @@ toshiba_3d_read_retrial:
str wzr, [x25,2052]
str wzr, [x25,2048]
str w0, [x25,2056]
-.L1769:
+.L1806:
add x20, x20, :lo12:.LANCHOR0
ldrb w0, [x20,724]
add w0, w0, w0, lsl 1
cmp w19, w0, lsr 2
- bcc .L1770
+ bcc .L1807
cmn w19, #1
mov w0, 256
csel w19, w19, w0, eq
-.L1770:
+.L1807:
cmn w19, #1
- beq .L1776
+ beq .L1813
cmp w19, 256
- bne .L1771
-.L1776:
- adrp x0, .LC147
+ bne .L1808
+.L1813:
+ adrp x0, .LC150
mov w1, w21
- add x0, x0, :lo12:.LC147
+ add x0, x0, :lo12:.LC150
mov w2, w24
mov w3, w21
mov w4, w19
bl printk
-.L1771:
+.L1808:
bl nandc_wait_flash_ready
mov w0, w19
ldp x19, x20, [sp,16]
@@ -11104,20 +11355,20 @@ toshiba_read_retrial:
add x21, x22, x21, lsl 8
uxtb w0, w0
cmp w0, 1
- bls .L1799
+ bls .L1836
ldrb w0, [x1,672]
- cbz w0, .L1800
+ cbz w0, .L1837
mov w0, 1
mov w25, 1
bl nandc_set_if_mode
-.L1800:
+.L1837:
ubfiz x0, x23, 8, 8
mov w1, 92
add x0, x22, x0
str w1, [x0,2056]
mov w1, 197
str w1, [x0,2056]
-.L1799:
+.L1836:
ldr x0, [x29,112]
mov w20, 1
mov w24, -1
@@ -11126,13 +11377,13 @@ toshiba_read_retrial:
str x0, [x29,104]
ubfiz x0, x23, 8, 8
str x0, [x29,96]
-.L1801:
+.L1838:
adrp x0, .LANCHOR4
add x0, x0, :lo12:.LANCHOR4
- ldrb w0, [x0,1216]
+ ldrb w0, [x0,1208]
add w0, w0, 1
cmp w20, w0
- bcs .L1832
+ bcs .L1869
add x0, x19, :lo12:.LANCHOR0
mov w1, w20
ldrb w0, [x0,725]
@@ -11140,27 +11391,27 @@ toshiba_read_retrial:
uxtb w0, w0
cmp w0, 1
mov x0, x21
- bhi .L1802
+ bhi .L1839
bl sandisk_set_rr_para
- b .L1803
-.L1802:
+ b .L1840
+.L1839:
bl toshiba_set_rr_para
-.L1803:
+.L1840:
add x0, x19, :lo12:.LANCHOR0
ldrb w0, [x0,725]
cmp w0, 34
- bne .L1804
+ bne .L1841
adrp x0, .LANCHOR4
add x0, x0, :lo12:.LANCHOR4
- ldrb w0, [x0,1216]
+ ldrb w0, [x0,1208]
sub w0, w0, #3
cmp w20, w0
- bne .L1804
+ bne .L1841
ldr x0, [x29,104]
mov w1, 179
add x0, x22, x0
str w1, [x0,8]
-.L1804:
+.L1841:
ldr x0, [x29,96]
mov w1, 38
ldr w4, [x29,120]
@@ -11175,24 +11426,24 @@ toshiba_read_retrial:
bl flash_read_page
cmn w0, #1
mov w28, w0
- beq .L1807
+ beq .L1844
cmn w24, #1
csel w24, w24, w0, ne
adrp x0, .LANCHOR4
add x0, x0, :lo12:.LANCHOR4
- ldr x26, [x0,1192]
- ldr x27, [x0,1208]
+ ldr x26, [x0,1184]
+ ldr x27, [x0,1200]
add x0, x19, :lo12:.LANCHOR0
ldrb w0, [x0,724]
add w0, w0, w0, lsl 1
cmp w28, w0, lsr 2
- bcc .L1809
-.L1807:
+ bcc .L1846
+.L1844:
add w20, w20, 1
- b .L1801
-.L1832:
+ b .L1838
+.L1869:
mov w28, w24
-.L1809:
+.L1846:
add x0, x19, :lo12:.LANCHOR0
mov w1, 0
ldrb w0, [x0,725]
@@ -11200,12 +11451,12 @@ toshiba_read_retrial:
uxtb w0, w0
cmp w0, 1
mov x0, x21
- bhi .L1811
+ bhi .L1848
bl sandisk_set_rr_para
- b .L1812
-.L1811:
+ b .L1849
+.L1848:
bl toshiba_set_rr_para
-.L1812:
+.L1849:
ldr x0, [x29,112]
add x19, x19, :lo12:.LANCHOR0
add x0, x0, 8
@@ -11215,29 +11466,29 @@ toshiba_read_retrial:
ldrb w0, [x19,724]
add w0, w0, w0, lsl 1
cmp w28, w0, lsr 2
- bcc .L1813
+ bcc .L1850
cmn w28, #1
mov w0, 256
csel w28, w28, w0, eq
-.L1813:
+.L1850:
cmn w28, #1
- beq .L1819
+ beq .L1856
cmp w28, 256
- bne .L1814
-.L1819:
- adrp x0, .LC147
+ bne .L1851
+.L1856:
+ adrp x0, .LC150
ldr w2, [x29,124]
- add x0, x0, :lo12:.LC147
+ add x0, x0, :lo12:.LC150
mov w1, w20
mov w3, w20
mov w4, w28
bl printk
-.L1814:
+.L1851:
bl nandc_wait_flash_ready
- cbz w25, .L1816
+ cbz w25, .L1853
mov w0, 4
bl nandc_set_if_mode
-.L1816:
+.L1853:
mov w0, w28
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -11275,9 +11526,9 @@ hynix_read_retrial:
bl nandc_wait_flash_ready
mov w6, 0
adrp x7, .LANCHOR4
-.L1834:
+.L1871:
cmp w6, w24
- bcs .L1838
+ bcs .L1875
add w20, w20, 1
mov w0, w22
str x7, [x29,104]
@@ -11296,47 +11547,47 @@ hynix_read_retrial:
cmn w0, #1
ldr x6, [x29,112]
ldr x7, [x29,104]
- beq .L1836
+ beq .L1873
add x1, x7, :lo12:.LANCHOR4
cmn w19, #1
csel w19, w19, w0, ne
- ldr x25, [x1,1192]
- ldr x26, [x1,1208]
+ ldr x25, [x1,1184]
+ ldr x26, [x1,1200]
add x1, x28, :lo12:.LANCHOR0
ldrb w1, [x1,724]
add w1, w1, w1, lsl 1
cmp w0, w1, lsr 2
- bcc .L1843
-.L1836:
+ bcc .L1880
+.L1873:
add w6, w6, 1
- b .L1834
-.L1843:
+ b .L1871
+.L1880:
mov w19, w0
-.L1838:
+.L1875:
add x28, x28, :lo12:.LANCHOR0
add x21, x27, x21
ldrb w0, [x28,724]
strb w20, [x21,8]
add w0, w0, w0, lsl 1
cmp w19, w0, lsr 2
- bcc .L1840
+ bcc .L1877
cmn w19, #1
mov w0, 256
csel w19, w19, w0, eq
-.L1840:
+.L1877:
cmn w19, #1
- beq .L1844
+ beq .L1881
cmp w19, 256
- bne .L1841
-.L1844:
- adrp x0, .LC148
+ bne .L1878
+.L1881:
+ adrp x0, .LC151
mov w1, w6
- add x0, x0, :lo12:.LC148
+ add x0, x0, :lo12:.LC151
mov w2, w23
mov w3, w6
mov w4, w19
bl printk
-.L1841:
+.L1878:
bl nandc_wait_flash_ready
mov w0, w19
ldp x19, x20, [sp,16]
@@ -11366,16 +11617,16 @@ flash_ddr_tuning_read:
bl nandc_get_ddr_para
mov w27, 0
str w0, [x29,116]
- adrp x0, .LC149
+ adrp x0, .LC152
str w27, [x29,124]
- add x0, x0, :lo12:.LC149
+ add x0, x0, :lo12:.LC152
mov w25, w27
mov w28, w27
mov w19, 1024
mov w26, 6
mov w21, -1
str x0, [x29,104]
-.L1859:
+.L1896:
mov w0, w26
bl nandc_set_ddr_para
ldr w4, [x29,120]
@@ -11387,7 +11638,7 @@ flash_ddr_tuning_read:
mov w4, w0
adrp x0, .LANCHOR2
ldr w0, [x0,#:lo12:.LANCHOR2]
- tbz x0, 4, .L1854
+ tbz x0, 4, .L1891
ldr x0, [x29,104]
mov w3, w4
mov w1, w26
@@ -11395,73 +11646,73 @@ flash_ddr_tuning_read:
str x4, [x29,96]
bl printk
ldr x4, [x29,96]
-.L1854:
+.L1891:
add w0, w19, 1
cmp w4, w0
- bhi .L1855
+ bhi .L1892
adrp x0, .LANCHOR4
add x0, x0, :lo12:.LANCHOR4
- ldr x24, [x0,1192]
- ldr x23, [x0,1208]
+ ldr x24, [x0,1184]
+ ldr x23, [x0,1200]
adrp x0, .LANCHOR0
add x0, x0, :lo12:.LANCHOR0
ldrb w0, [x0,724]
cmp w4, w0, lsr 2
- bcs .L1865
+ bcs .L1902
add w28, w28, 1
cmp w28, 7
- bls .L1865
+ bls .L1902
sub w27, w26, w28
mov w19, w4
mov w21, 0
- b .L1857
-.L1855:
+ b .L1894
+.L1892:
cmp w25, w28
- bcs .L1866
+ bcs .L1903
sub w0, w27, w28
cmp w28, 7
str w0, [x29,124]
- bhi .L1858
+ bhi .L1895
mov w25, w28
- b .L1866
-.L1865:
+ b .L1903
+.L1902:
mov w27, w26
mov w19, w4
mov w21, 0
- b .L1856
-.L1866:
+ b .L1893
+.L1903:
mov w28, 0
-.L1856:
+.L1893:
add w26, w26, 2
cmp w26, 50
- bne .L1859
-.L1857:
+ bne .L1896
+.L1894:
ldr w0, [x29,124]
cmp w25, w28
csel w27, w27, w0, ls
-.L1858:
- cbz w27, .L1860
+.L1895:
+ cbz w27, .L1897
adrp x0, .LANCHOR0+724
mov w1, 3
ldrb w0, [x0,#:lo12:.LANCHOR0+724]
udiv w0, w0, w1
cmp w19, w0
- bcs .L1860
- adrp x0, .LC150
+ bcs .L1897
+ adrp x0, .LC153
mov w1, w27
- add x0, x0, :lo12:.LC150
+ add x0, x0, :lo12:.LC153
bl printk
mov w0, w27
- b .L1875
-.L1860:
+ b .L1912
+.L1897:
ldrb w0, [x29,116]
-.L1875:
+.L1912:
bl nandc_set_ddr_para
- cbz w21, .L1862
- adrp x0, .LC151
+ cbz w21, .L1899
+ adrp x0, .LC154
mov w2, w22
mov w1, w20
- add x0, x0, :lo12:.LC151
+ add x0, x0, :lo12:.LC154
adrp x26, .LANCHOR0
bl printk
add x27, x26, :lo12:.LANCHOR0
@@ -11483,33 +11734,33 @@ flash_ddr_tuning_read:
mov w0, w20
bl flash_read_page
mov w19, w0
- adrp x0, .LC152
+ adrp x0, .LC155
mov w1, w20
- add x0, x0, :lo12:.LC152
+ add x0, x0, :lo12:.LC155
mov w2, w22
mov w3, w19
bl printk
ldrb w0, [x27,724]
cmp w19, w0
- bhi .L1867
+ bhi .L1904
adrp x1, .LANCHOR4
add x1, x1, :lo12:.LANCHOR4
- ldr w0, [x1,1220]
+ ldr w0, [x1,1212]
add w0, w0, 1
- str w0, [x1,1220]
+ str w0, [x1,1212]
cmp w0, 100
- bls .L1863
+ bls .L1900
strb wzr, [x27,672]
- b .L1862
-.L1867:
+ b .L1899
+.L1904:
mov w19, w21
-.L1863:
+.L1900:
add x26, x26, :lo12:.LANCHOR0
ldrb w0, [x26,780]
bl flash_set_interface_mode
ldrb w0, [x26,780]
bl nandc_set_if_mode
-.L1862:
+.L1899:
mov w0, w19
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -11538,57 +11789,57 @@ flash_read_page_en:
ldrb w0, [x0,633]
mov w22, w4
cmp w0, w25
- bhi .L1877
+ bhi .L1914
adrp x1, .LANCHOR3
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR3
- mov w2, 386
+ mov w2, 398
add x1, x1, 136
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L1877:
+.L1914:
add x0, x20, :lo12:.LANCHOR0
add x1, x0, x25, sxtw
ldrb w21, [x1,736]
ldrb w1, [x0,633]
cmp w1, w25
- bcs .L1878
+ bcs .L1915
adrp x0, .LANCHOR2
ldr w0, [x0,#:lo12:.LANCHOR2]
- tbz x0, 6, .L1904
- adrp x0, .LC153
+ tbz x0, 6, .L1941
+ adrp x0, .LC156
mov w1, w21
- add x0, x0, :lo12:.LC153
+ add x0, x0, :lo12:.LC156
mov w2, w25
mov w3, w19
bl printk
-.L1904:
+.L1941:
mov w0, -1
- b .L1903
-.L1878:
+ b .L1940
+.L1915:
ubfx x1, x19, 24, 2
- cbnz w1, .L1881
+ cbnz w1, .L1918
adrp x1, .LANCHOR0
ldrb w1, [x1,#:lo12:.LANCHOR0]
- cbz w1, .L1882
+ cbz w1, .L1919
ldrb w0, [x0,1]
- cbz w0, .L1881
-.L1882:
+ cbz w0, .L1918
+.L1919:
add x1, x20, :lo12:.LANCHOR0
ldrh w2, [x1,2]
udiv w0, w19, w2
mul w0, w0, w2
ldrb w2, [x1,1]
sub w19, w19, w0
- cbz w2, .L1883
+ cbz w2, .L1920
add w19, w0, w19, lsl 1
- b .L1881
-.L1883:
+ b .L1918
+.L1920:
add x1, x1, 4
ldrh w19, [x1,w19,uxtw 1]
add w19, w19, w0
-.L1881:
+.L1918:
mov w0, w21
mov w1, w19
mov x2, x24
@@ -11596,16 +11847,16 @@ flash_read_page_en:
mov w4, w22
bl flash_read_page
cmn w0, #1
- bne .L1903
+ bne .L1940
add x25, x20, :lo12:.LANCHOR0
ldrb w26, [x25,720]
- cbnz w26, .L1885
-.L1888:
- adrp x0, .LANCHOR4+1224
- ldr x5, [x0,#:lo12:.LANCHOR4+1224]
- cbnz x5, .L1886
- b .L1887
-.L1885:
+ cbnz w26, .L1922
+.L1925:
+ adrp x0, .LANCHOR4+1216
+ ldr x5, [x0,#:lo12:.LANCHOR4+1216]
+ cbnz x5, .L1923
+ b .L1924
+.L1922:
mov w0, w21
mov w1, w19
mov x2, x24
@@ -11615,9 +11866,9 @@ flash_read_page_en:
bl flash_read_page
strb w26, [x25,720]
cmn w0, #1
- beq .L1888
- b .L1903
-.L1886:
+ beq .L1925
+ b .L1940
+.L1923:
mov w0, w21
mov w1, w19
mov x2, x24
@@ -11625,25 +11876,25 @@ flash_read_page_en:
mov w4, w22
blr x5
cmn w0, #1
- bne .L1903
-.L1887:
+ bne .L1940
+.L1924:
add x20, x20, :lo12:.LANCHOR0
- adrp x0, .LC154
- add x0, x0, :lo12:.LC154
+ adrp x0, .LC157
+ add x0, x0, :lo12:.LC157
mov w1, 0
mov w2, w19
mov w3, -1
ldrb w4, [x20,720]
bl printk
ldrb w0, [x20,672]
- cbz w0, .L1904
+ cbz w0, .L1941
mov w0, w21
mov w1, w19
mov x2, x24
mov x3, x23
mov w4, w22
bl flash_ddr_tuning_read
-.L1903:
+.L1940:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -11659,11 +11910,11 @@ flash_get_last_written_page:
add x29, sp, 0
stp x23, x24, [sp,48]
uxtb w23, w0
- adrp x0, .LANCHOR4+1092
+ adrp x0, .LANCHOR4+1084
stp x19, x20, [sp,16]
adrp x20, .LANCHOR2
mov x24, x2
- ldrh w19, [x0,#:lo12:.LANCHOR4+1092]
+ ldrh w19, [x0,#:lo12:.LANCHOR4+1084]
add x0, x20, :lo12:.LANCHOR2
stp x21, x22, [sp,32]
stp x25, x26, [sp,64]
@@ -11680,12 +11931,12 @@ flash_get_last_written_page:
add w1, w26, w19
bl flash_read_page_en
cmp w0, 512
- bne .L1906
+ bne .L1943
mov w28, 0
mov w5, 2
-.L1907:
+.L1944:
cmp w28, w19
- bgt .L1906
+ bgt .L1943
add w0, w28, w19
mov x2, x24
mov x3, x21
@@ -11697,24 +11948,24 @@ flash_get_last_written_page:
bl flash_read_page_en
cmp w0, 512
ldr x5, [x29,104]
- bne .L1908
+ bne .L1945
sub w19, w20, #1
sxth w19, w19
- b .L1907
-.L1908:
+ b .L1944
+.L1945:
add w20, w20, 1
sxth w28, w20
- b .L1907
-.L1906:
+ b .L1944
+.L1943:
ldr w0, [x27,#:lo12:.LANCHOR2]
- tbz x0, 12, .L1911
- adrp x0, .LC155
+ tbz x0, 12, .L1948
+ adrp x0, .LC158
ldr w3, [x21]
- add x0, x0, :lo12:.LC155
+ add x0, x0, :lo12:.LC158
mov w1, w22
mov w2, w19
bl printk
-.L1911:
+.L1948:
mov w0, w19
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -11750,163 +12001,6 @@ flash_get_last_written_page_ext:
ret
.size flash_get_last_written_page_ext, .-flash_get_last_written_page_ext
.align 2
- .global flash_info_blk_init
- .type flash_info_blk_init, %function
-flash_info_blk_init:
- adrp x0, .LANCHOR2
- stp x29, x30, [sp, -64]!
- add x29, sp, 0
- ldr w0, [x0,#:lo12:.LANCHOR2]
- stp x19, x20, [sp,16]
- stp x21, x22, [sp,32]
- stp x23, x24, [sp,48]
- adrp x20, .LANCHOR0
- tbz x0, 12, .L1917
- add x4, x20, :lo12:.LANCHOR0
- adrp x2, .LANCHOR3
- adrp x0, .LC156
- add x2, x2, :lo12:.LANCHOR3
- add x0, x0, :lo12:.LC156
- mov w1, 49
- ldr x4, [x4,728]
- add x2, x2, 160
- mov w3, 2048
- bl printk
-.L1917:
- mov w22, 4
- adrp x24, .LANCHOR4
-.L1920:
- add x19, x20, :lo12:.LANCHOR0
- add x21, x24, :lo12:.LANCHOR4
- mov w0, 0
- mov w4, 4
- adrp x23, .LANCHOR4
- ldrh w1, [x19,2]
- ldr x2, [x19,728]
- ldr x3, [x21,1232]
- mul w1, w22, w1
- bl flash_read_page_en
- cmn w0, #1
- beq .L1918
- ldr x2, [x19,728]
- mov w0, 21321
- movk w0, 0x5359, lsl 16
- ldr w1, [x2]
- cmp w1, w0
- beq .L1919
-.L1918:
- add w22, w22, 1
- cmp w22, 16
- bne .L1920
-.L1944:
- mov w0, -1
- b .L1943
-.L1919:
- ldrb w1, [x2,36]
- mov w4, 4
- ldrh w3, [x19,2]
- strb w1, [x21,1240]
- ldrb w0, [x2,37]
- mul w1, w1, w3
- ldr x3, [x21,1232]
- strb w0, [x21,1241]
- mov w0, 0
- mov w21, 0
- bl flash_read_page_en
- cmn w0, #1
- beq .L1922
- ldr x0, [x19,728]
- mov w1, 21321
- movk w1, 0x5359, lsl 16
- mov w21, 0
- ldr w2, [x0]
- cmp w2, w1
- bne .L1922
- ldr w21, [x0,4]
-.L1922:
- add x19, x23, :lo12:.LANCHOR4
- add x22, x20, :lo12:.LANCHOR0
- mov w0, 0
- mov w4, 4
- ldrb w2, [x19,1241]
- ldrh w1, [x22,2]
- ldr x3, [x19,1232]
- mul w1, w2, w1
- ldr x2, [x22,728]
- bl flash_read_page_en
- cmn w0, #1
- beq .L1923
- ldr x0, [x22,728]
- mov w1, 21321
- movk w1, 0x5359, lsl 16
- ldr w2, [x0]
- cmp w2, w1
- bne .L1923
- ldr w1, [x0,4]
- cmp w21, w1
- bcs .L1923
- ldrb w1, [x0,37]
- ldrb w0, [x0,36]
- strb w1, [x19,1240]
- strb w0, [x19,1241]
-.L1923:
- add x21, x23, :lo12:.LANCHOR4
- add x22, x20, :lo12:.LANCHOR0
- mov w0, 0
- mov w4, 4
- ldrb w1, [x21,1240]
- ldr x3, [x21,1232]
- ldr x2, [x22,728]
- bl flash_get_last_written_page
- sxth w19, w0
- add w0, w0, 1
- strh w0, [x21,1242]
- ldrb w0, [x21,1240]
- ldrh w21, [x22,2]
- mul w21, w0, w21
-.L1924:
- tbnz w19, #31, .L1945
- add x22, x20, :lo12:.LANCHOR0
- add x3, x23, :lo12:.LANCHOR4
- mov w0, 0
- add w1, w19, w21
- mov w4, 4
- ldr x2, [x22,728]
- ldr x3, [x3,1232]
- bl flash_read_page_en
- cmn w0, #1
- beq .L1925
- ldr x0, [x22,728]
- ldr w1, [x0]
- mov w0, 21321
- movk w0, 0x5359, lsl 16
- cmp w1, w0
- bne .L1925
-.L1927:
- mov w0, 0
- b .L1943
-.L1925:
- sub w19, w19, #1
- sxth w19, w19
- b .L1924
-.L1945:
- cmn w19, #1
- bne .L1927
- add x20, x20, :lo12:.LANCHOR0
- adrp x0, .LC157
- add x0, x0, :lo12:.LC157
- ldr x1, [x20,728]
- ldr w1, [x1]
- bl printk
- b .L1944
-.L1943:
- ldp x19, x20, [sp,16]
- ldp x21, x22, [sp,32]
- ldp x23, x24, [sp,48]
- ldp x29, x30, [sp], 64
- ret
- .size flash_info_blk_init, .-flash_info_blk_init
- .align 2
.global flash_ddr_para_scan
.type flash_ddr_para_scan, %function
flash_ddr_para_scan:
@@ -11927,33 +12021,33 @@ flash_ddr_para_scan:
bl flash_set_interface_mode
ldrb w0, [x21,780]
bl nandc_set_if_mode
- ldr x2, [x20,1248]
+ ldr x2, [x20,1224]
mov w1, w23
- ldr x3, [x20,1256]
+ ldr x3, [x20,1232]
mov w4, 4
mov w0, w24
bl flash_ddr_tuning_read
- ldr x2, [x20,1248]
+ ldr x2, [x20,1224]
mov w0, w24
- ldr x3, [x20,1256]
+ ldr x3, [x20,1232]
mov w1, w23
mov w4, 4
bl flash_read_page
cmn w0, #1
- bne .L1947
+ bne .L1954
ldrb w0, [x21,780]
- tbz x0, 0, .L1947
+ tbz x0, 0, .L1954
mov w0, 1
bl flash_set_interface_mode
mov w0, w22
bl nandc_set_if_mode
strb wzr, [x21,672]
- b .L1948
-.L1947:
+ b .L1955
+.L1954:
add x19, x19, :lo12:.LANCHOR0
mov w0, 1
strb w0, [x19,672]
-.L1948:
+.L1955:
mov w0, 0
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -11962,34 +12056,36 @@ flash_ddr_para_scan:
ret
.size flash_ddr_para_scan, .-flash_ddr_para_scan
.align 2
- .type id_block_read_data.constprop.31, %function
-id_block_read_data.constprop.31:
+ .type id_block_read_data.constprop.32, %function
+id_block_read_data.constprop.32:
stp x29, x30, [sp, -240]!
add x29, sp, 0
- stp x27, x28, [sp,80]
- mov w27, w1
- adrp x1, .LANCHOR0
- stp x19, x20, [sp,16]
- add x19, x1, :lo12:.LANCHOR0
- str x1, [x29,120]
stp x25, x26, [sp,64]
mov w26, w0
- ldr x0, [x19,624]
+ adrp x0, .LANCHOR2
+ add x0, x0, :lo12:.LANCHOR2
stp x21, x22, [sp,32]
+ stp x19, x20, [sp,16]
stp x23, x24, [sp,48]
+ stp x27, x28, [sp,80]
+ add x0, x0, 8
+ mov w27, w1
+ ldrb w1, [x0,9]
mov x21, x2
+ str w1, [x29,164]
mov w22, 0
- ldrb w2, [x0,9]
+ ldrh w0, [x0,26]
mov w23, 4
- ldrh w0, [x0,10]
mov w25, w22
- str w2, [x29,164]
- mul w0, w2, w0
+ mul w0, w1, w0
+ adrp x1, .LANCHOR0
+ str x1, [x29,120]
+ add x19, x1, :lo12:.LANCHOR0
+ uxth w0, w0
ldrb w2, [x19,720]
str w2, [x29,136]
- uxth w0, w0
- strb wzr, [x19,720]
udiv w2, w26, w0
+ strb wzr, [x19,720]
msub w0, w2, w0, w26
str w0, [x29,172]
sub w0, w26, w0
@@ -11997,34 +12093,32 @@ id_block_read_data.constprop.31:
ldr w0, [x29,172]
and w0, w0, 3
str w0, [x29,168]
- adrp x0, .LC158
- add x0, x0, :lo12:.LC158
+ adrp x0, .LC159
+ add x0, x0, :lo12:.LC159
str x0, [x29,112]
-.L1953:
+.L1960:
cmp w22, w27
- bcs .L1990
+ bcs .L1997
ldr w0, [x29,168]
- adrp x1, .LANCHOR4
- add x1, x1, :lo12:.LANCHOR4
+ ldrb w1, [x19,782]
sub w0, w23, w0
uxth w0, w0
str w0, [x29,144]
ldr w0, [x29,172]
- ldrb w1, [x1,1264]
add w20, w22, w0
add x0, x19, 4
udiv w20, w20, w23
and w20, w20, 65535
ldrh w0, [x0,w20,sxtw 1]
- cbnz w1, .L1954
+ cbnz w1, .L1961
mov w20, w0
- b .L1955
-.L1954:
+ b .L1962
+.L1961:
ldrb w1, [x19,1]
lsl w0, w20, 1
cmp w1, wzr
csel w20, w0, w20, ne
-.L1955:
+.L1962:
ldr w1, [x29,160]
ldr w0, [x29,164]
ldrb w28, [x19,632]
@@ -12039,7 +12133,7 @@ id_block_read_data.constprop.31:
str w0, [x29,132]
mov w0, w28
bl nandc_bch_sel
-.L1956:
+.L1963:
mov w0, 0
mov w1, w24
mov x2, x21
@@ -12048,16 +12142,16 @@ id_block_read_data.constprop.31:
bl flash_read_page
cmn w0, #1
mov w20, w0
- bne .L1963
+ bne .L1970
ldrb w6, [x19,720]
- cbnz w6, .L1958
-.L1961:
+ cbnz w6, .L1965
+.L1968:
adrp x0, .LANCHOR4
add x0, x0, :lo12:.LANCHOR4
- ldr x6, [x0,1224]
- cbnz x6, .L1959
- b .L1960
-.L1958:
+ ldr x6, [x0,1216]
+ cbnz x6, .L1966
+ b .L1967
+.L1965:
mov w0, 0
mov w1, w24
mov x2, x21
@@ -12069,9 +12163,9 @@ id_block_read_data.constprop.31:
cmn w0, #1
ldr x6, [x29,104]
strb w6, [x19,720]
- beq .L1961
- b .L1989
-.L1959:
+ beq .L1968
+ b .L1996
+.L1966:
mov w0, 0
mov w1, w24
mov x2, x21
@@ -12079,28 +12173,28 @@ id_block_read_data.constprop.31:
mov w4, w23
blr x6
cmn w0, #1
- bne .L1989
-.L1960:
+ bne .L1996
+.L1967:
ldrb w0, [x19,672]
- cbz w0, .L1963
+ cbz w0, .L1970
mov w0, 0
mov w1, w24
mov x2, x21
add x3, x29, 176
mov w4, w23
bl flash_ddr_tuning_read
-.L1989:
+.L1996:
mov w20, w0
-.L1963:
+.L1970:
cmn w20, #1
- bne .L1964
+ bne .L1971
cmp w28, 16
- beq .L1964
+ beq .L1971
mov w0, 16
mov w28, 16
bl nandc_bch_sel
- b .L1956
-.L1964:
+ b .L1963
+.L1971:
ldr w0, [x29,132]
bl nandc_bch_sel
cmn w20, #1
@@ -12111,18 +12205,18 @@ id_block_read_data.constprop.31:
cmp w0, w26
cset w0, eq
tst w1, w0
- beq .L1966
- cbnz w25, .L1966
+ beq .L1973
+ cbnz w25, .L1973
ldr w1, [x21]
mov w0, 18766
movk w0, 0x464e, lsl 16
cmp w1, w0
- bne .L1966
+ bne .L1973
ldr w0, [x29,144]
ldrb w23, [x21,17]
add w27, w27, w0
- b .L1967
-.L1966:
+ b .L1974
+.L1973:
ldr x0, [x29,144]
mov w2, w22
ldr w1, [x29,140]
@@ -12133,12 +12227,12 @@ id_block_read_data.constprop.31:
ldr x0, [x29,112]
bl printk
str wzr, [x29,168]
-.L1967:
+.L1974:
ldr w0, [x29,144]
add w22, w0, w22
uxth w22, w22
- b .L1953
-.L1990:
+ b .L1960
+.L1997:
ldr x0, [x29,120]
ldrb w1, [x29,136]
add x0, x0, :lo12:.LANCHOR0
@@ -12151,7 +12245,7 @@ id_block_read_data.constprop.31:
ldp x27, x28, [sp,80]
ldp x29, x30, [sp], 240
ret
- .size id_block_read_data.constprop.31, .-id_block_read_data.constprop.31
+ .size id_block_read_data.constprop.32, .-id_block_read_data.constprop.32
.align 2
.global flash_complete_plane_page_read
.type flash_complete_plane_page_read, %function
@@ -12171,27 +12265,27 @@ flash_complete_plane_page_read:
mov x23, x2
ldrb w0, [x0,633]
cmp w0, w22
- bhi .L1992
+ bhi .L1999
adrp x1, .LANCHOR3
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR3
- mov w2, 795
- add x1, x1, 184
+ mov w2, 886
+ add x1, x1, 160
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L1992:
+.L1999:
add x0, x21, :lo12:.LANCHOR0
add x22, x0, x22, sxtw
ldrb w22, [x22,736]
ldr x25, [x0,536]
mov w0, w22
bl nandc_cs
- cbnz w20, .L1993
+ cbnz w20, .L2000
mov w0, w19
bl slc_phy_page_address_calc
mov w19, w0
-.L1993:
+.L2000:
add x3, x21, :lo12:.LANCHOR0
uxtb x5, w22
and w2, w19, 255
@@ -12199,26 +12293,26 @@ flash_complete_plane_page_read:
ldrb w0, [x3,656]
cmp w0, 1
lsr w0, w19, 16
- bne .L1994
+ bne .L2001
add x5, x25, x5, lsl 8
mov w3, 6
- b .L2007
-.L1994:
+ b .L2014
+.L2001:
ldr x3, [x3,624]
add x5, x25, x5, lsl 8
ldrb w3, [x3,12]
cmp w3, 3
- bne .L1996
+ bne .L2003
mov w3, 5
-.L2007:
+.L2014:
str w3, [x5,2056]
str wzr, [x5,2052]
str wzr, [x5,2052]
str w2, [x5,2052]
str w1, [x5,2052]
str w0, [x5,2052]
- b .L2005
-.L1996:
+ b .L2012
+.L2003:
str wzr, [x5,2056]
str wzr, [x5,2052]
str wzr, [x5,2052]
@@ -12229,22 +12323,22 @@ flash_complete_plane_page_read:
str w0, [x5,2056]
str wzr, [x5,2052]
str wzr, [x5,2052]
-.L2005:
+.L2012:
mov w0, 224
str w0, [x5,2056]
- cbz w20, .L1997
+ cbz w20, .L2004
add x21, x21, :lo12:.LANCHOR0
ldr x0, [x21,624]
ldrb w0, [x0,12]
cmp w0, 3
- bne .L1997
+ bne .L2004
sub w20, w20, #1
add w0, w19, w19, lsl 1
add w0, w20, w0
- b .L2006
-.L1997:
+ b .L2013
+.L2004:
mov w0, w19
-.L2006:
+.L2013:
bl nandc_set_seed
adrp x2, .LANCHOR2+17
mov x3, x24
@@ -12285,27 +12379,27 @@ flash_complete_page_read:
mov x26, x2
ubfx x22, x24, 24, 2
cmp w0, w21
- bhi .L2009
+ bhi .L2016
adrp x1, .LANCHOR3
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR3
- mov w2, 917
- add x1, x1, 216
+ mov w2, 1008
+ add x1, x1, 192
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L2009:
+.L2016:
add x0, x19, :lo12:.LANCHOR0
add x21, x0, x21, sxtw
ldrb w23, [x21,736]
ldr x21, [x0,536]
mov w0, w23
bl nandc_cs
- cbnz w22, .L2010
+ cbnz w22, .L2017
mov w0, w20
bl slc_phy_page_address_calc
mov w20, w0
-.L2010:
+.L2017:
ubfiz x0, x23, 8, 8
add x5, x21, x0
mov w0, 5
@@ -12320,19 +12414,19 @@ flash_complete_page_read:
str w0, [x5,2052]
mov w0, 224
str w0, [x5,2056]
- cbz w22, .L2011
+ cbz w22, .L2018
add x0, x19, :lo12:.LANCHOR0
ldr x0, [x0,624]
ldrb w0, [x0,12]
cmp w0, 3
- bne .L2011
+ bne .L2018
sub w0, w22, #1
add w1, w20, w20, lsl 1
add w0, w0, w1
- b .L2043
-.L2011:
+ b .L2050
+.L2018:
mov w0, w20
-.L2043:
+.L2050:
adrp x21, .LANCHOR2
bl nandc_set_seed
add x27, x21, :lo12:.LANCHOR2
@@ -12344,10 +12438,10 @@ flash_complete_page_read:
ldrb w2, [x27,9]
bl nandc_xfer
cmn w0, #1
- bne .L2013
+ bne .L2020
add x28, x19, :lo12:.LANCHOR0
ldrb w5, [x28,720]
- cbz w5, .L2014
+ cbz w5, .L2021
ldrb w4, [x27,9]
mov w0, w23
orr w1, w20, w22, lsl 24
@@ -12358,44 +12452,44 @@ flash_complete_page_read:
bl flash_read_page
ldr x5, [x29,104]
strb w5, [x28,720]
- cbnz w22, .L2015
-.L2022:
+ cbnz w22, .L2022
+.L2029:
ldrb w2, [x19,#:lo12:.LANCHOR0]
add x1, x19, :lo12:.LANCHOR0
- cbz w2, .L2015
+ cbz w2, .L2022
ldrb w1, [x1,724]
add w1, w1, w1, lsl 1
cmp w0, w1, lsr 2
- blt .L2015
+ blt .L2022
add x21, x21, :lo12:.LANCHOR2
ldrb w1, [x21,27]
sub w1, w1, #4
uxtb w1, w1
- cmp w1, 3
+ cmp w1, 4
mov w1, 256
csel w0, w0, w1, hi
- b .L2030
-.L2015:
+ b .L2037
+.L2022:
cmn w0, #1
- bne .L2030
-.L2023:
- adrp x0, .LANCHOR4+1224
- ldr x5, [x0,#:lo12:.LANCHOR4+1224]
- cbnz x5, .L2018
-.L2021:
+ bne .L2037
+.L2030:
+ adrp x0, .LANCHOR4+1216
+ ldr x5, [x0,#:lo12:.LANCHOR4+1216]
+ cbnz x5, .L2025
+.L2028:
add x19, x19, :lo12:.LANCHOR0
- adrp x0, .LC159
- add x0, x0, :lo12:.LC159
+ adrp x0, .LC160
+ add x0, x0, :lo12:.LC160
mov w1, 0
mov w2, w24
mov w3, -1
ldrb w4, [x19,720]
bl printk
ldrb w0, [x19,672]
- cbnz w0, .L2019
+ cbnz w0, .L2026
mov w0, -1
- b .L2030
-.L2018:
+ b .L2037
+.L2025:
add x4, x21, :lo12:.LANCHOR2
mov w0, w23
orr w1, w20, w22, lsl 24
@@ -12404,9 +12498,9 @@ flash_complete_page_read:
ldrb w4, [x4,17]
blr x5
cmn w0, #1
- bne .L2030
- b .L2021
-.L2019:
+ bne .L2037
+ b .L2028
+.L2026:
add x21, x21, :lo12:.LANCHOR2
mov w0, w23
orr w1, w20, w22, lsl 24
@@ -12414,14 +12508,14 @@ flash_complete_page_read:
mov x3, x26
ldrb w4, [x21,17]
bl flash_ddr_tuning_read
+ b .L2037
+.L2020:
+ cbz w22, .L2029
+ b .L2037
+.L2021:
+ cbz w22, .L2029
b .L2030
-.L2013:
- cbz w22, .L2022
- b .L2030
-.L2014:
- cbz w22, .L2022
- b .L2023
-.L2030:
+.L2037:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -12444,53 +12538,54 @@ queue_wait_first_req_completed:
stp x27, x28, [sp,80]
ldrb w21, [x0,2835]
cmp w21, 255
- beq .L2128
+ beq .L2135
add x0, x0, 784
mov w1, 0
add x0, x0, x21, lsl 6
ldrb w2, [x0,58]
ldr w20, [x0,40]
sub w3, w2, #1
- cmp w3, 9
- bhi .L2046
- adrp x0, .L2048
- add x0, x0, :lo12:.L2048
+ cmp w3, 10
+ bhi .L2053
+ adrp x0, .L2055
+ add x0, x0, :lo12:.L2055
ldrh w0, [x0,w3,uxtw #1]
- adr x1, .Lrtx2048
+ adr x1, .Lrtx2055
add x0, x1, w0, sxth #2
br x0
-.Lrtx2048:
+.Lrtx2055:
.section .rodata
.align 0
.align 2
-.L2048:
- .2byte (.L2047 - .Lrtx2048) / 4
- .2byte (.L2049 - .Lrtx2048) / 4
- .2byte (.L2050 - .Lrtx2048) / 4
- .2byte (.L2050 - .Lrtx2048) / 4
- .2byte (.L2050 - .Lrtx2048) / 4
- .2byte (.L2051 - .Lrtx2048) / 4
- .2byte (.L2052 - .Lrtx2048) / 4
- .2byte (.L2053 - .Lrtx2048) / 4
- .2byte (.L2050 - .Lrtx2048) / 4
- .2byte (.L2053 - .Lrtx2048) / 4
+.L2055:
+ .2byte (.L2054 - .Lrtx2055) / 4
+ .2byte (.L2056 - .Lrtx2055) / 4
+ .2byte (.L2057 - .Lrtx2055) / 4
+ .2byte (.L2057 - .Lrtx2055) / 4
+ .2byte (.L2057 - .Lrtx2055) / 4
+ .2byte (.L2057 - .Lrtx2055) / 4
+ .2byte (.L2058 - .Lrtx2055) / 4
+ .2byte (.L2059 - .Lrtx2055) / 4
+ .2byte (.L2060 - .Lrtx2055) / 4
+ .2byte (.L2057 - .Lrtx2055) / 4
+ .2byte (.L2060 - .Lrtx2055) / 4
.text
-.L2047:
+.L2054:
mov w0, w20
mov w1, 64
bl flash_wait_device_ready
- tbz x0, 6, .L2128
+ tbz x0, 6, .L2135
add x3, x19, :lo12:.LANCHOR0
add x0, x3, 784
add x0, x0, x21, lsl 6
ldr x2, [x0,16]
ldr x1, [x0,8]
- cbz x2, .L2055
+ cbz x2, .L2062
ldrb w4, [x0,56]
ldrb w0, [x3,2832]
cmp w4, w0
csel x1, x1, x2, ne
-.L2055:
+.L2062:
add x19, x19, :lo12:.LANCHOR0
mov w0, w20
add x19, x19, 784
@@ -12498,13 +12593,13 @@ queue_wait_first_req_completed:
ldr x2, [x19,24]
bl flash_complete_page_read
str w0, [x19,52]
- mov w0, 12
+ mov w0, 13
strb w0, [x19,58]
ldrb w0, [x19,2]
orr w0, w0, 8
strb w0, [x19,2]
- b .L2128
-.L2049:
+ b .L2135
+.L2056:
mov w0, w20
mov w1, 64
bl flash_wait_device_ready
@@ -12513,27 +12608,27 @@ queue_wait_first_req_completed:
add x3, x2, 784
add x1, x3, x4
ldrb w20, [x3,x4]
- tbz x0, 6, .L2128
+ tbz x0, 6, .L2135
add x3, x3, x20, lsl 6
ldr x0, [x1,16]
ldr x27, [x1,8]
ldr x23, [x3,8]
- cbz x0, .L2056
+ cbz x0, .L2063
ldrb w3, [x1,56]
ldrb w1, [x2,2832]
cmp w3, w1
csel x27, x27, x0, ne
-.L2056:
+.L2063:
add x2, x19, :lo12:.LANCHOR0
add x0, x2, 784
add x0, x0, x20, lsl 6
ldr x1, [x0,16]
- cbz x1, .L2057
+ cbz x1, .L2064
ldrb w3, [x0,56]
ldrb w0, [x2,2832]
cmp w3, w0
csel x23, x23, x1, ne
-.L2057:
+.L2064:
add x24, x19, :lo12:.LANCHOR0
mov x1, x27
add x24, x24, 784
@@ -12551,15 +12646,15 @@ queue_wait_first_req_completed:
bl flash_complete_plane_page_read
mov w25, w0
cmn w22, #1
- beq .L2058
+ beq .L2065
ldr w0, [x28,4]
cmn w0, #1
- beq .L2059
+ beq .L2066
ldr x1, [x26,8]
ldr w1, [x1,4]
cmp w0, w1
- beq .L2059
-.L2058:
+ beq .L2066
+.L2065:
add x4, x19, :lo12:.LANCHOR0
mov x2, x27
add x24, x4, 784
@@ -12575,41 +12670,41 @@ queue_wait_first_req_completed:
mov w22, w0
ldr w2, [x26,4]
cmn w2, #1
- beq .L2060
+ beq .L2067
ldr x3, [x24,8]
ldr w4, [x3,4]
cmp w2, w4
- beq .L2060
+ beq .L2067
adrp x0, .LANCHOR2
ldr w0, [x0,#:lo12:.LANCHOR2]
- tbz x0, 6, .L2060
- adrp x0, .LC160
+ tbz x0, 6, .L2067
+ adrp x0, .LC161
ldr w1, [x26,8]
ldr w3, [x3]
- add x0, x0, :lo12:.LC160
+ add x0, x0, :lo12:.LC161
bl printk
-.L2060:
+.L2067:
add x0, x19, :lo12:.LANCHOR0
add x0, x0, 784
add x0, x0, x21, lsl 6
ldr w1, [x0,36]
cmn w1, #1
- beq .L2059
+ beq .L2066
ldr x0, [x0,24]
ldr w0, [x0,4]
cmp w1, w0
- beq .L2059
+ beq .L2066
adrp x1, .LANCHOR3
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR3
- mov w2, 338
- add x1, x1, 248
+ mov w2, 360
+ add x1, x1, 224
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L2059:
+.L2066:
add x3, x19, :lo12:.LANCHOR0
- mov w1, 12
+ mov w1, 13
add x3, x3, 784
cmn w25, #1
add x21, x3, x21, lsl 6
@@ -12618,16 +12713,16 @@ queue_wait_first_req_completed:
orr w0, w0, 8
strb w1, [x21,58]
strb w0, [x21,2]
- beq .L2061
+ beq .L2068
add x3, x3, x20, lsl 6
ldr w0, [x3,36]
cmn w0, #1
- beq .L2063
+ beq .L2070
ldr x1, [x3,24]
ldr w1, [x1,4]
cmp w0, w1
- beq .L2063
-.L2061:
+ beq .L2070
+.L2068:
add x4, x19, :lo12:.LANCHOR0
mov x2, x23
add x21, x4, 784
@@ -12642,41 +12737,41 @@ queue_wait_first_req_completed:
bl flash_read_page_en
ldr w2, [x24,4]
cmn w2, #1
- beq .L2065
+ beq .L2072
ldr x3, [x21,8]
ldr w4, [x3,4]
cmp w2, w4
- beq .L2065
+ beq .L2072
adrp x0, .LANCHOR2
ldr w0, [x0,#:lo12:.LANCHOR2]
- tbz x0, 6, .L2065
- adrp x0, .LC160
+ tbz x0, 6, .L2072
+ adrp x0, .LC161
ldr w1, [x24,8]
ldr w3, [x3]
- add x0, x0, :lo12:.LC160
+ add x0, x0, :lo12:.LC161
bl printk
-.L2065:
+.L2072:
add x0, x19, :lo12:.LANCHOR0
add x0, x0, 784
add x0, x0, x20, lsl 6
ldr w1, [x0,36]
cmn w1, #1
- beq .L2063
+ beq .L2070
ldr x0, [x0,24]
ldr w0, [x0,4]
cmp w1, w0
- beq .L2063
+ beq .L2070
adrp x1, .LANCHOR3
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR3
- mov w2, 353
- add x1, x1, 248
+ mov w2, 375
+ add x1, x1, 224
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L2063:
+.L2070:
add x19, x19, :lo12:.LANCHOR0
- mov w1, 12
+ mov w1, 13
add x19, x19, 784
add x20, x19, x20, lsl 6
ldrb w0, [x20,2]
@@ -12684,78 +12779,78 @@ queue_wait_first_req_completed:
orr w0, w0, 8
strb w1, [x20,58]
strb w0, [x20,2]
- b .L2128
-.L2050:
+ b .L2135
+.L2057:
bl nandc_iqr_wait_flash_ready
mov w0, w20
mov w1, 64
bl flash_wait_device_ready
mov w20, w0
- tbz x20, 6, .L2128
+ tbz x20, 6, .L2135
mov w1, 5
add x19, x19, :lo12:.LANCHOR0
ands w1, w20, w1
- beq .L2066
+ beq .L2073
add x19, x19, 784
- mov w0, 11
+ mov w0, 12
add x19, x19, x21, lsl 6
mov w2, w20
- mov w4, 11
+ mov w4, 12
strb w0, [x19,58]
- adrp x0, .LC161
+ adrp x0, .LC162
ldrb w1, [x19,1]
- add x0, x0, :lo12:.LC161
+ add x0, x0, :lo12:.LC162
ldr w3, [x19,40]
bl printk
mov w0, -1
str w0, [x19,52]
- b .L2129
-.L2066:
+ b .L2136
+.L2073:
add x19, x19, x21, lsl 6
- b .L2073
-.L2053:
+ b .L2080
+.L2060:
add x22, x19, :lo12:.LANCHOR0
mov w0, 3
- cmp w2, 10
- mov w1, 9
+ cmp w2, 11
+ mov w1, 10
add x22, x22, 784
csel w1, w0, w1, ne
ubfx x3, x20, 21, 3
add x0, x22, x21, lsl 6
-.L2068:
+.L2075:
ldrb w23, [x0]
cmp w23, 255
- beq .L2130
+ beq .L2137
add x0, x22, x23, lsl 6
ldrb w2, [x0,58]
cmp w2, w1
- bne .L2068
+ bne .L2075
ldr w2, [x0,40]
ubfx x2, x2, 21, 3
cmp w3, w2
- bne .L2068
+ bne .L2075
bl nandc_iqr_wait_flash_ready
mov w0, w20
mov w1, 64
bl flash_wait_device_ready
mov w20, w0
and w0, w0, 64
- tbz x20, 6, .L2076
+ tbz x20, 6, .L2083
ands w0, w20, 15
add x22, x22, x21, lsl 6
- beq .L2071
- adrp x0, .LC162
+ beq .L2078
+ adrp x0, .LC163
ldrb w1, [x22,1]
ldr w3, [x22,40]
- add x0, x0, :lo12:.LC162
+ add x0, x0, :lo12:.LC163
mov w2, w20
- mov w4, 11
+ mov w4, 12
bl printk
- mov w0, 11
+ mov w0, 12
strb w0, [x22,58]
mov w0, -1
str w0, [x22,52]
-.L2070:
+.L2077:
add x19, x19, :lo12:.LANCHOR0
add x19, x19, 784
add x21, x19, x21, lsl 6
@@ -12764,52 +12859,52 @@ queue_wait_first_req_completed:
strb w0, [x23,58]
ldr w0, [x21,52]
str w0, [x23,52]
-.L2129:
+.L2136:
mov w1, w20
- b .L2046
-.L2071:
- mov w1, 12
+ b .L2053
+.L2078:
+ mov w1, 13
str w0, [x22,52]
strb w1, [x22,58]
-.L2076:
+.L2083:
mov w20, w0
- b .L2070
-.L2130:
+ b .L2077
+.L2137:
mov w1, -1
- b .L2046
-.L2051:
+ b .L2053
+.L2058:
mov w1, 32
mov w0, w20
bl flash_wait_device_ready
- tbz x0, 5, .L2128
+ tbz x0, 5, .L2135
ands w1, w0, 15
add x19, x19, :lo12:.LANCHOR0
add x19, x19, x21, lsl 6
- beq .L2073
- mov w1, 11
+ beq .L2080
+ mov w1, 12
strb w1, [x19,842]
mov w1, -1
str w1, [x19,836]
mov w1, w0
- b .L2046
-.L2073:
- mov w0, 12
+ b .L2053
+.L2080:
+ mov w0, 13
str w1, [x19,836]
strb w0, [x19,842]
- b .L2046
-.L2052:
+ b .L2053
+.L2059:
mov w1, 64
mov w0, w20
bl flash_wait_device_ready
- tbz x0, 6, .L2128
+ tbz x0, 6, .L2135
add x19, x19, :lo12:.LANCHOR0
add x19, x19, x21, lsl 6
str w0, [x19,836]
- mov w0, 6
+ mov w0, 7
strb w0, [x19,842]
-.L2128:
+.L2135:
mov w1, 0
-.L2046:
+.L2053:
mov w0, w1
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -12827,15 +12922,15 @@ sblk_wait_write_queue_completed:
add x29, sp, 0
str x19, [sp,16]
adrp x19, .LANCHOR0
-.L2132:
+.L2139:
add x0, x19, :lo12:.LANCHOR0
ldrb w0, [x0,2835]
cmp w0, 255
- beq .L2134
+ beq .L2141
bl queue_wait_first_req_completed
bl queue_remove_completed_req
- b .L2132
-.L2134:
+ b .L2139
+.L2141:
ldr x19, [sp,16]
ldp x29, x30, [sp], 32
ret
@@ -12908,49 +13003,49 @@ sblk_read_page:
mov x19, x0
mov w20, w21
add x27, x22, 784
- add x23, x23, 280
-.L2138:
- cbz w20, .L2161
+ add x23, x23, 256
+.L2145:
+ cbz w20, .L2168
ldrb w28, [x19]
ldr w26, [x19,40]
-.L2139:
+.L2146:
mov w0, w26
mov w1, 0
bl queue_lun_state
- cbz w0, .L2162
+ cbz w0, .L2169
bl queue_wait_first_req_completed
bl queue_remove_completed_req
- b .L2139
-.L2162:
+ b .L2146
+.L2169:
cmp w20, 1
- beq .L2145
- adrp x0, .LANCHOR4+1265
- ldrb w0, [x0,#:lo12:.LANCHOR4+1265]
- cbz w0, .L2145
+ beq .L2152
+ adrp x0, .LANCHOR4+1240
+ ldrb w0, [x0,#:lo12:.LANCHOR4+1240]
+ cbz w0, .L2152
ldrb w0, [x19]
ubfx x3, x26, 21, 3
cmp w0, 255
- bne .L2144
+ bne .L2151
adrp x0, .LC0
mov x1, x23
- mov w2, 624
+ mov w2, 652
add x0, x0, :lo12:.LC0
str x3, [x29,120]
bl printk
bl dump_stack
ldr x3, [x29,120]
-.L2144:
+.L2151:
ldrb w24, [x19]
lsl x24, x24, 6
add x2, x27, x24
ldr w1, [x2,40]
ubfx x0, x1, 21, 3
cmp w3, w0
- bne .L2145
- ldrh w0, [x22,3350]
+ bne .L2152
+ ldrh w0, [x22,3348]
add w26, w0, w26
cmp w1, w26
- bne .L2145
+ bne .L2152
ldr w0, [x19,40]
add x26, x22, 2835
str x2, [x29,104]
@@ -12976,36 +13071,36 @@ sblk_read_page:
strb wzr, [x2,59]
strb w3, [x27,x24]
bl buf_add_tail
- b .L2143
-.L2145:
+ b .L2150
+.L2152:
mov x0, x19
bl queue_read_cmd
-.L2143:
+.L2150:
subs w20, w20, #1
- beq .L2161
+ beq .L2168
sbfiz x19, x28, 6, 32
add x19, x27, x19
- b .L2138
-.L2161:
+ b .L2145
+.L2168:
adrp x19, .LANCHOR0
add x19, x19, :lo12:.LANCHOR0
add x19, x19, 784
-.L2149:
- cbz w21, .L2163
+.L2156:
+ cbz w21, .L2170
ldrb w0, [x25,58]
- cmp w0, 12
- bne .L2150
+ cmp w0, 13
+ bne .L2157
ldrb w0, [x25]
sub w21, w21, #1
cmp w0, 255
- beq .L2150
+ beq .L2157
sbfiz x25, x0, 6, 32
add x25, x19, x25
-.L2150:
+.L2157:
bl queue_wait_first_req_completed
bl queue_remove_completed_req
- b .L2149
-.L2163:
+ b .L2156
+.L2170:
mov w0, w21
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -13040,24 +13135,24 @@ flash_prog_page:
add x22, x19, x22, lsl 8
and w24, w1, 2097151
ubfx x27, x23, 24, 2
- tbz x0, 4, .L2165
- adrp x0, .LC163
+ tbz x0, 4, .L2172
+ adrp x0, .LC164
mov w2, w27
- add x0, x0, :lo12:.LC163
+ add x0, x0, :lo12:.LC164
bl printk
-.L2165:
+.L2172:
bl nandc_wait_flash_ready
mov w0, w20
bl hynix_reconfig_rr_para
mov w0, w20
bl nandc_cs
mov w0, w20
- cbnz w27, .L2166
+ cbnz w27, .L2173
bl zftl_flash_enter_slc_mode
- b .L2167
-.L2166:
+ b .L2174
+.L2173:
bl zftl_flash_exit_slc_mode
-.L2167:
+.L2174:
ubfiz x4, x20, 8, 8
mov w0, 128
add x19, x19, x4
@@ -13089,16 +13184,13 @@ flash_prog_page:
mov w0, w20
and w19, w21, 4
bl nandc_de_cs
- tbz x21, 2, .L2168
- adrp x0, .LANCHOR2
- ldr w0, [x0,#:lo12:.LANCHOR2]
- tbz x0, 12, .L2168
- adrp x0, .LC164
+ tbz x21, 2, .L2175
+ adrp x0, .LC165
mov w1, w23
- add x0, x0, :lo12:.LC164
+ add x0, x0, :lo12:.LC165
mov w2, w19
bl printk
-.L2168:
+.L2175:
mov w0, w19
ldr x27, [sp,80]
ldp x19, x20, [sp,16]
@@ -13122,9 +13214,9 @@ flash_test_blk:
mov w1, 165
stp x21, x22, [sp,32]
uxtb w22, w0
- ldr x0, [x19,1192]
+ ldr x0, [x19,1184]
bl ftl_memset
- ldr x0, [x19,1208]
+ ldr x0, [x19,1200]
mov w1, 90
mov w2, 8
bl ftl_memset
@@ -13135,43 +13227,43 @@ flash_test_blk:
mov w1, w20
bl flash_erase_block
cmn w0, #1
- bne .L2179
-.L2181:
+ bne .L2183
+.L2185:
mov w19, -1
- b .L2180
-.L2179:
+ b .L2184
+.L2183:
adrp x21, .LANCHOR2
- ldr x2, [x19,1192]
+ ldr x2, [x19,1184]
add x21, x21, :lo12:.LANCHOR2
- ldr x3, [x19,1208]
+ ldr x3, [x19,1200]
mov w0, w22
mov w1, w20
add x21, x21, 8
ldrb w4, [x21,9]
bl flash_prog_page
cmn w0, #1
- beq .L2181
- ldr x2, [x19,1192]
+ beq .L2185
+ ldr x2, [x19,1184]
mov w0, w22
- ldr x3, [x19,1208]
+ ldr x3, [x19,1200]
mov w1, w20
ldrb w4, [x21,9]
bl flash_read_page
cmn w0, #1
- beq .L2181
- ldr x0, [x19,1192]
+ beq .L2185
+ ldr x0, [x19,1184]
ldr w1, [x0]
mov w0, 42405
bfi w0, w0, 16, 16
cmp w1, w0
- bne .L2181
- ldr x0, [x19,1208]
+ bne .L2185
+ ldr x0, [x19,1200]
ldr w1, [x0]
mov w0, 23130
bfi w0, w0, 16, 16
cmp w1, w0
csetm w19, ne
-.L2180:
+.L2184:
mov w1, w20
mov w0, w22
bl flash_erase_block
@@ -13181,377 +13273,178 @@ flash_test_blk:
ldp x29, x30, [sp], 48
ret
.size flash_test_blk, .-flash_test_blk
- .section .text.unlikely
.align 2
- .type fw_flash_page_prog.constprop.30, %function
-fw_flash_page_prog.constprop.30:
- stp x29, x30, [sp, -64]!
- adrp x4, .LANCHOR0
- add x29, sp, 0
- add x4, x4, :lo12:.LANCHOR0
- str x21, [sp,32]
- mov x21, x1
- stp x19, x20, [sp,16]
- str x2, [x29,56]
- ldr x1, [x4,624]
- ldrb w20, [x4,724]
- ldrb w19, [x1,9]
- udiv w19, w0, w19
- ldrb w0, [x4,632]
- bl nandc_bch_sel
- ldr x3, [x29,56]
- mov w1, w19
- mov x2, x21
- mov w4, 4
- mov w0, 0
- bl flash_prog_page
- mov w19, w0
- mov w0, w20
- bl nandc_bch_sel
- ldr x21, [sp,32]
- mov w0, w19
- ldp x19, x20, [sp,16]
- ldp x29, x30, [sp], 64
- ret
- .size fw_flash_page_prog.constprop.30, .-fw_flash_page_prog.constprop.30
- .text
- .align 2
- .global flash_start_page_prog
- .type flash_start_page_prog, %function
-flash_start_page_prog:
- stp x29, x30, [sp, -96]!
+ .global flash_dual_page_prog
+ .type flash_dual_page_prog, %function
+flash_dual_page_prog:
+ stp x29, x30, [sp, -112]!
add x29, sp, 0
stp x21, x22, [sp,32]
- adrp x22, .LANCHOR0
- stp x25, x26, [sp,64]
- uxtb w25, w0
- add x0, x22, :lo12:.LANCHOR0
+ uxtb x21, w0
+ adrp x0, .LANCHOR0+536
stp x23, x24, [sp,48]
- stp x19, x20, [sp,16]
stp x27, x28, [sp,80]
- ubfx x24, x1, 21, 3
- mov x27, x2
- ldrb w0, [x0,633]
- mov x26, x3
- and w20, w1, 2097151
- ubfx x23, x1, 24, 2
- cmp w0, w24
- bhi .L2190
- adrp x1, .LANCHOR3
- adrp x0, .LC0
- add x1, x1, :lo12:.LANCHOR3
- mov w2, 712
- add x1, x1, 296
- add x0, x0, :lo12:.LC0
+ ldr x23, [x0,#:lo12:.LANCHOR0+536]
+ adrp x0, .LANCHOR2
+ mov x28, x2
+ str x0, [x29,104]
+ stp x19, x20, [sp,16]
+ ldr w2, [x0,#:lo12:.LANCHOR2]
+ mov x20, x21
+ stp x25, x26, [sp,64]
+ add x21, x21, 8
+ mov w22, w1
+ mov x27, x3
+ mov x26, x4
+ mov x25, x5
+ mov w3, w6
+ add x21, x23, x21, lsl 8
+ and w19, w1, 2097151
+ ubfx x24, x22, 24, 2
+ tbz x2, 4, .L2193
+ adrp x0, .LC164
+ mov w2, w24
+ add x0, x0, :lo12:.LC164
bl printk
- bl dump_stack
-.L2190:
- add x28, x22, :lo12:.LANCHOR0
- add x0, x28, x24, sxtw
- ldrb w21, [x0,736]
- ldr x19, [x28,536]
- bl nandc_rdy_status
- cbnz w0, .L2191
- ldrb w0, [x28,633]
- cmp w0, 1
- bne .L2192
+.L2193:
bl nandc_wait_flash_ready
- b .L2191
-.L2192:
- mov w0, w24
- mov w1, w20
- mov w2, 64
- bl flash_wait_device_ready_raw
-.L2191:
- mov w0, w21
- bl hynix_reconfig_rr_para
- mov w0, w21
+ mov w0, w20
bl nandc_cs
- cbnz w23, .L2193
mov w0, w20
- bl slc_phy_page_address_calc
- mov w20, w0
- ldrb w0, [x22,#:lo12:.LANCHOR0]
- cbz w0, .L2194
- mov w0, w21
+ cbnz w24, .L2194
bl zftl_flash_enter_slc_mode
- b .L2194
-.L2193:
- mov w0, w21
- bl zftl_flash_exit_slc_mode
+ b .L2195
.L2194:
- ubfiz x4, x21, 8, 8
- mov w0, 128
- add x19, x19, x4
- str w0, [x19,2056]
- and w0, w20, 255
- str wzr, [x19,2052]
- str wzr, [x19,2052]
- str w0, [x19,2052]
- lsr w0, w20, 8
- str w0, [x19,2052]
- lsr w0, w20, 16
- str w0, [x19,2052]
- mov w0, w20
+ bl zftl_flash_exit_slc_mode
+.L2195:
+ ubfiz x0, x20, 8, 8
+ mov w4, 128
+ add x23, x23, x0
+ and w0, w22, 255
+ str x4, [x29,96]
+ str w4, [x23,2056]
+ str wzr, [x23,2052]
+ str wzr, [x23,2052]
+ str w0, [x23,2052]
+ lsr w0, w19, 8
+ str w0, [x23,2052]
+ lsr w0, w19, 16
+ str w0, [x23,2052]
+ mov w0, w19
bl nandc_set_seed
- adrp x1, .LANCHOR2+17
- mov x2, x27
- mov x3, x26
+ ldr x0, [x29,104]
+ mov x3, x27
+ mov x2, x28
+ mov w27, 16
+ add x24, x0, :lo12:.LANCHOR2
mov w0, 1
- ldrb w1, [x1,#:lo12:.LANCHOR2+17]
+ ldrb w1, [x24,17]
bl nandc_xfer_start
bl nandc_xfer_done
- str w25, [x19,2056]
- mov w0, w21
+ str w27, [x23,2056]
+ bl nandc_iqr_wait_flash_ready
+ bl nandc_wait_flash_ready
+ ldr x4, [x29,96]
+ add w0, w19, 1
+ str w4, [x23,2056]
+ and w1, w0, 255
+ str wzr, [x23,2052]
+ str wzr, [x23,2052]
+ str w1, [x23,2052]
+ lsr w1, w0, 8
+ str w1, [x23,2052]
+ lsr w1, w0, 16
+ str w1, [x23,2052]
+ bl nandc_set_seed
+ ldrb w1, [x24,17]
+ mov x2, x26
+ mov x3, x25
+ mov w0, 1
+ bl nandc_xfer_start
+ bl nandc_xfer_done
+ str w27, [x23,2056]
+ bl nandc_iqr_wait_flash_ready
+ bl nandc_wait_flash_ready
+ mov x0, x21
+ bl flash_read_status
+ mov w21, w0
+ mov w0, w20
+ and w19, w21, 4
bl nandc_de_cs
- ldp x19, x20, [sp,16]
- ldp x21, x22, [sp,32]
- ldp x23, x24, [sp,48]
- ldp x25, x26, [sp,64]
- ldp x27, x28, [sp,80]
- ldp x29, x30, [sp], 96
- ret
- .size flash_start_page_prog, .-flash_start_page_prog
- .align 2
- .type queue_prog_cmd, %function
-queue_prog_cmd:
- stp x29, x30, [sp, -32]!
- add x29, sp, 0
- str x19, [sp,16]
- mov x19, x0
- mov w0, 16
- ldr w1, [x19,40]
- ldr x2, [x19,8]
- ldr x3, [x19,24]
- bl flash_start_page_prog
- adrp x0, .LANCHOR0
- ldr w4, [x19,40]
- add x1, x0, :lo12:.LANCHOR0
- ldrb w2, [x1,2835]
- cmp w2, 255
- beq .L2199
- ubfx x4, x4, 21, 3
- add x1, x1, 784
-.L2201:
- add x3, x1, x2, lsl 6
- ldr w5, [x3,40]
- ubfx x5, x5, 21, 3
- cmp w4, w5
- bne .L2200
- ldrb w5, [x3,58]
- add x3, x3, 48
- cmp w5, 6
- bne .L2200
- mov w1, 3
- strb w1, [x3,10]
- b .L2199
-.L2200:
- lsl x2, x2, 6
- ldrb w2, [x1,x2]
- cmp w2, 255
- bne .L2201
-.L2199:
- mov w1, 3
- strb w1, [x19,58]
- mov w1, 1
- add x0, x0, :lo12:.LANCHOR0
- strb w1, [x19,59]
- mov w1, -1
- add x0, x0, 2835
- strb w1, [x19]
- mov x1, x19
- bl buf_add_tail
- ldr x19, [sp,16]
- ldp x29, x30, [sp], 32
- ret
- .size queue_prog_cmd, .-queue_prog_cmd
- .align 2
- .global sblk_prog_page
- .type sblk_prog_page, %function
-sblk_prog_page:
- stp x29, x30, [sp, -96]!
- add x29, sp, 0
- stp x19, x20, [sp,16]
- stp x21, x22, [sp,32]
- stp x23, x24, [sp,48]
- stp x25, x26, [sp,64]
- stp x27, x28, [sp,80]
- mov x19, x0
- uxtb w20, w1
- ldrh w0, [x0,50]
- cbz w0, .L2207
+ tbz x21, 2, .L2196
adrp x0, .LANCHOR2
ldr w0, [x0,#:lo12:.LANCHOR2]
- tbz x0, 8, .L2207
+ tbz x0, 12, .L2196
adrp x0, .LC165
- ldr w1, [x19,40]
+ mov w1, w22
add x0, x0, :lo12:.LC165
- mov w2, w20
- bl printk
-.L2207:
- adrp x24, .LANCHOR0
- adrp x25, .LC0
- add x23, x24, :lo12:.LANCHOR0
- mov w21, 0
- add x27, x23, 784
- add x25, x25, :lo12:.LC0
-.L2208:
- cbz w20, .L2238
- ldrb w26, [x19]
- ldr w22, [x19,40]
-.L2209:
- mov w0, w22
- mov w1, 1
- bl queue_lun_state
- cbz w0, .L2239
- bl queue_wait_first_req_completed
- bl queue_remove_completed_req
- b .L2209
-.L2239:
- cmp w20, 1
- beq .L2211
- add x0, x24, :lo12:.LANCHOR0
- ldrb w0, [x0,781]
- cbnz w0, .L2212
-.L2211:
- mov x0, x19
- bl queue_prog_cmd
- b .L2213
-.L2212:
- ldrb w0, [x19]
- ubfx x28, x22, 21, 3
- cmp w0, 255
- bne .L2214
- adrp x1, .LANCHOR3
- mov w2, 546
- add x1, x1, :lo12:.LANCHOR3
- mov x0, x25
- add x1, x1, 320
+ mov w2, w19
bl printk
- bl dump_stack
-.L2214:
- ldrb w0, [x19]
- add x0, x27, x0, lsl 6
- ldr w4, [x0,40]
- ubfx x0, x4, 21, 3
- cmp w28, w0
- bne .L2215
- ldrh w3, [x23,3340]
- mov w1, 21
- ldrb w6, [x23,3338]
- mov w28, 1
- sub w1, w1, w3
- lsr w0, w22, w3
- sub w6, w6, #1
- lsl w1, w28, w1
- sub w1, w1, #1
- lsl w2, w28, w3
- uxth w7, w6
- sub w2, w2, #1
- and w5, w7, w0
- lsr w0, w4, w3
- uxth w1, w1
- and w3, w7, w0
- and w3, w1, w3
- and w0, w1, w5
- cmp w0, w3
- uxth w2, w2
- beq .L2215
- and w22, w2, w22
- and w2, w2, w4
- cmp w22, w2
- bne .L2215
- cmp w21, w6
- beq .L2215
- ldr w1, [x19,40]
- mov w0, 17
- ldr x2, [x19,8]
- add w21, w21, w28
- ldr x3, [x19,24]
- bl flash_start_page_prog
- strb w28, [x19,59]
- mov w0, 8
- strb w0, [x19,58]
- mov w0, -1
- mov x1, x19
- strb w0, [x19]
- add x0, x23, 2835
- bl buf_add_tail
- b .L2213
-.L2215:
- mov x0, x19
- mov w21, 0
- bl queue_prog_cmd
-.L2213:
- subs w20, w20, #1
- beq .L2238
- add x19, x24, :lo12:.LANCHOR0
- sbfiz x26, x26, 6, 32
- add x19, x19, 784
- add x19, x19, x26
- b .L2208
-.L2238:
- mov w0, 0
+.L2196:
+ mov w0, w19
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
ldp x25, x26, [sp,64]
ldp x27, x28, [sp,80]
- ldp x29, x30, [sp], 96
+ ldp x29, x30, [sp], 112
ret
- .size sblk_prog_page, .-sblk_prog_page
+ .size flash_dual_page_prog, .-flash_dual_page_prog
+ .section .text.unlikely
.align 2
- .global ftl_flush
- .type ftl_flush, %function
-ftl_flush:
- stp x29, x30, [sp, -32]!
- adrp x2, .LANCHOR0
+ .type fw_flash_page_prog.constprop.31, %function
+fw_flash_page_prog.constprop.31:
+ stp x29, x30, [sp, -64]!
+ adrp x4, .LANCHOR0
add x29, sp, 0
- add x0, x2, :lo12:.LANCHOR0
+ add x4, x4, :lo12:.LANCHOR0
+ stp x21, x22, [sp,32]
stp x19, x20, [sp,16]
- mov x19, x2
+ mov x21, x1
+ str x2, [x29,56]
+ ldr x1, [x4,624]
+ ldrb w22, [x4,724]
+ ldrb w19, [x1,9]
+ udiv w19, w0, w19
+ ldrb w0, [x4,632]
+ bl nandc_bch_sel
+ adrp x0, .LANCHOR2+15
+ ldr x3, [x29,56]
+ ldrb w0, [x0,#:lo12:.LANCHOR2+15]
+ cmp w0, 9
+ bne .L2207
adrp x20, .LANCHOR4
- ldrb w1, [x0,2857]
- cbz w1, .L2241
- add x2, x20, :lo12:.LANCHOR4
- add x0, x0, 784
- ldrb w2, [x2,1266]
- add x0, x0, x2, lsl 6
- bl sblk_prog_page
-.L2241:
- add x2, x19, :lo12:.LANCHOR0
+ mov w1, 255
add x20, x20, :lo12:.LANCHOR4
- mov w0, -1
- strb wzr, [x2,2857]
- strb w0, [x20,1266]
- bl sblk_wait_write_queue_completed
- bl ftl_write_completed
- mov w0, -1
- bl ftl_vpn_decrement
+ mov w2, 16384
+ ldr x0, [x20,1184]
+ bl ftl_memset
+ ldr x4, [x20,1184]
+ mov w1, w19
+ ldr x3, [x29,56]
+ mov x2, x21
+ mov x5, x4
+ mov w6, 4
+ mov w0, 0
+ bl flash_dual_page_prog
+ b .L2209
+.L2207:
+ mov w0, 0
+ mov w1, w19
+ mov x2, x21
+ mov w4, 4
+ bl flash_prog_page
+.L2209:
+ mov w19, w0
+ mov w0, w22
+ bl nandc_bch_sel
+ mov w0, w19
ldp x19, x20, [sp,16]
- ldp x29, x30, [sp], 32
- ret
- .size ftl_flush, .-ftl_flush
- .align 2
- .global zftl_cache_flush
- .type zftl_cache_flush, %function
-zftl_cache_flush:
- adrp x0, .LANCHOR0+2857
- stp x29, x30, [sp, -16]!
- add x29, sp, 0
- ldrb w0, [x0,#:lo12:.LANCHOR0+2857]
- cbz w0, .L2245
- bl timer_get_time
- adrp x1, .LANCHOR4+1268
- ldr w1, [x1,#:lo12:.LANCHOR4+1268]
- add w1, w1, 100
- cmp w0, w1
- bls .L2245
- bl ftl_flush
-.L2245:
- ldp x29, x30, [sp], 16
+ ldp x21, x22, [sp,32]
+ ldp x29, x30, [sp], 64
ret
- .size zftl_cache_flush, .-zftl_cache_flush
+ .size fw_flash_page_prog.constprop.31, .-fw_flash_page_prog.constprop.31
+ .text
.align 2
.global flash_start_tlc_page_prog
.type flash_start_tlc_page_prog, %function
@@ -13574,28 +13467,28 @@ flash_start_tlc_page_prog:
mov x23, x6
cmp w0, w26
mov x19, x4
- bhi .L2250
+ bhi .L2211
adrp x1, .LANCHOR3
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR3
- mov w2, 661
- add x1, x1, 336
+ mov w2, 726
+ add x1, x1, 272
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L2250:
+.L2211:
add x4, x19, :lo12:.LANCHOR0
add x26, x4, x26, sxtw
ldrb w26, [x26,736]
mov w0, w26
ldr x19, [x4,536]
bl nandc_cs
- cbz w25, .L2251
+ cbz w25, .L2212
sxtw x1, w26
add x1, x1, 8
add x1, x19, x1, lsl 8
str w25, [x1,8]
-.L2251:
+.L2212:
ubfiz x7, x26, 8, 8
mov w0, 128
add x19, x19, x7
@@ -13701,16 +13594,16 @@ sblk_tlc_prog_one_page:
mov x20, x0
ldr x0, [x0]
ldr w21, [x0,40]
-.L2257:
+.L2218:
mov w0, w21
mov w1, 1
bl queue_lun_state
mov w19, w0
- cbz w0, .L2259
+ cbz w0, .L2220
bl queue_wait_first_req_completed
bl queue_remove_completed_req
- b .L2257
-.L2259:
+ b .L2218
+.L2220:
mov x0, x20
bl queue_tlc_prog_cmd
ldr x21, [sp,32]
@@ -13733,17 +13626,17 @@ sblk_xlc_prog_pages:
ldr x0, [x0]
mov w24, w2
ldr w20, [x0,40]
-.L2261:
+.L2222:
mov w0, w20
mov w1, 1
bl queue_lun_state
- cbz w0, .L2265
+ cbz w0, .L2226
bl queue_wait_first_req_completed
bl queue_remove_completed_req
- b .L2261
-.L2265:
+ b .L2222
+.L2226:
cmp w24, 2
- bne .L2263
+ bne .L2224
ldr x6, [x19]
mov w1, 1
ldr x0, [x22]
@@ -13827,11 +13720,11 @@ sblk_xlc_prog_pages:
add x0, x0, :lo12:.LANCHOR0
add x0, x0, 2835
bl buf_add_tail
- b .L2264
-.L2263:
+ b .L2225
+.L2224:
mov x0, x19
bl queue_tlc_prog_cmd
-.L2264:
+.L2225:
mov w0, 0
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -13840,154 +13733,738 @@ sblk_xlc_prog_pages:
ret
.size sblk_xlc_prog_pages, .-sblk_xlc_prog_pages
.align 2
- .global flash_prog_page_en
- .type flash_prog_page_en, %function
-flash_prog_page_en:
+ .global sblk_3d_tlc_dump_prog
+ .type sblk_3d_tlc_dump_prog, %function
+sblk_3d_tlc_dump_prog:
+ stp x29, x30, [sp, -48]!
+ add x29, sp, 0
+ stp x19, x20, [sp,16]
+ str x21, [sp,32]
+ mov x19, x0
+ ldr w2, [x0,40]
+ adrp x0, .LC166
+ add x0, x0, :lo12:.LC166
+ and w20, w2, 2097151
+ mov w3, w2
+ mov w1, w20
+ ubfx x21, x2, 21, 3
+ bl printk
+ ldr x5, [x19,8]
+ mov w3, w21
+ ldr x6, [x19,24]
+ mov w4, w20
+ mov w1, 1
+ mov w2, 26
+ mov w0, 0
+ bl flash_start_tlc_page_prog
+ bl nandc_iqr_wait_flash_ready
+ bl nandc_wait_flash_ready
+ ldr x5, [x19,8]
+ mov w3, w21
+ ldr x6, [x19,24]
+ mov w4, w20
+ mov w1, 2
+ mov w2, 26
+ mov w0, 0
+ bl flash_start_tlc_page_prog
+ bl nandc_iqr_wait_flash_ready
+ bl nandc_wait_flash_ready
+ ldr x5, [x19,8]
+ mov w3, w21
+ ldr x6, [x19,24]
+ mov w4, w20
+ mov w2, 16
+ mov w1, 3
+ mov w0, 0
+ bl flash_start_tlc_page_prog
+ bl nandc_iqr_wait_flash_ready
+ bl nandc_wait_flash_ready
+ ldr w0, [x19,40]
+ mov w1, 64
+ bl flash_wait_device_ready
+ ldr x21, [sp,32]
+ ldp x19, x20, [sp,16]
+ ldp x29, x30, [sp], 48
+ ret
+ .size sblk_3d_tlc_dump_prog, .-sblk_3d_tlc_dump_prog
+ .align 2
+ .global flash_start_3d_mlc_page_prog
+ .type flash_start_3d_mlc_page_prog, %function
+flash_start_3d_mlc_page_prog:
+ stp x29, x30, [sp, -64]!
+ adrp x5, .LANCHOR0
+ add x29, sp, 0
+ stp x21, x22, [sp,32]
+ uxtb w22, w0
+ add x0, x5, :lo12:.LANCHOR0
+ stp x19, x20, [sp,16]
+ stp x23, x24, [sp,48]
+ uxtb w20, w1
+ mov w21, w2
+ ldrb w0, [x0,633]
+ mov x23, x3
+ mov x24, x4
+ mov x19, x5
+ cmp w0, w20
+ bhi .L2229
+ adrp x1, .LANCHOR3
+ adrp x0, .LC0
+ add x1, x1, :lo12:.LANCHOR3
+ mov w2, 756
+ add x1, x1, 304
+ add x0, x0, :lo12:.LC0
+ bl printk
+ bl dump_stack
+.L2229:
+ add x5, x19, :lo12:.LANCHOR0
+ add x20, x5, x20, sxtw
+ ldrb w20, [x20,736]
+ ldr x19, [x5,536]
+ mov w0, w20
+ ubfiz x20, x20, 8, 8
+ add x19, x19, x20
+ bl nandc_cs
+ mov w0, 128
+ str w0, [x19,2056]
+ and w0, w21, 255
+ str wzr, [x19,2052]
+ str wzr, [x19,2052]
+ str w0, [x19,2052]
+ lsr w0, w21, 8
+ str w0, [x19,2052]
+ lsr w0, w21, 16
+ str w0, [x19,2052]
+ mov w0, w21
+ bl nandc_set_seed
+ adrp x1, .LANCHOR2+17
+ mov x2, x23
+ mov x3, x24
+ mov w0, 1
+ ldrb w1, [x1,#:lo12:.LANCHOR2+17]
+ bl nandc_xfer_start
+ bl nandc_xfer_done
+ str w22, [x19,2056]
+ ldp x19, x20, [sp,16]
+ ldp x21, x22, [sp,32]
+ ldp x23, x24, [sp,48]
+ ldp x29, x30, [sp], 64
+ ret
+ .size flash_start_3d_mlc_page_prog, .-flash_start_3d_mlc_page_prog
+ .align 2
+ .global sblk_3d_mlc_prog_pages
+ .type sblk_3d_mlc_prog_pages, %function
+sblk_3d_mlc_prog_pages:
+ stp x29, x30, [sp, -48]!
+ add x29, sp, 0
+ stp x19, x20, [sp,16]
+ stp x21, x22, [sp,32]
+ mov x20, x0
+ ldr x0, [x0]
+ ldr w19, [x0,40]
+.L2231:
+ mov w0, w19
+ mov w1, 1
+ bl queue_lun_state
+ mov w21, w0
+ cbz w0, .L2233
+ bl queue_wait_first_req_completed
+ bl queue_remove_completed_req
+ b .L2231
+.L2233:
+ ldr x0, [x20]
+ ldr w19, [x0,40]
+ and w22, w19, 2097151
+ ubfx x19, x19, 21, 3
+ mov w0, w19
+ bl zftl_flash_exit_slc_mode
+ ldr x4, [x20]
+ mov w1, w19
+ mov w2, w22
+ mov w0, 16
+ ldr x3, [x4,8]
+ ldr x4, [x4,24]
+ bl flash_start_3d_mlc_page_prog
+ bl nandc_wait_flash_ready
+ ldr x4, [x20,8]
+ mov w1, w19
+ add w2, w22, 1
+ mov w0, 16
+ ldr x3, [x4,8]
+ ldr x4, [x4,24]
+ bl flash_start_3d_mlc_page_prog
+ mov w0, w19
+ bl nandc_de_cs
+ ldr x1, [x20]
+ mov w0, 4
+ adrp x2, .LANCHOR0
+ strb w0, [x1,58]
+ mov w0, 1
+ strb w0, [x1,59]
+ mov w0, -1
+ strb w0, [x1]
+ add x0, x2, :lo12:.LANCHOR0
+ add x0, x0, 2835
+ bl buf_add_tail
+ mov w0, w21
+ ldp x19, x20, [sp,16]
+ ldp x21, x22, [sp,32]
+ ldp x29, x30, [sp], 48
+ ret
+ .size sblk_3d_mlc_prog_pages, .-sblk_3d_mlc_prog_pages
+ .align 2
+ .global sblk_mlc_dump_prog
+ .type sblk_mlc_dump_prog, %function
+sblk_mlc_dump_prog:
+ stp x29, x30, [sp, -48]!
+ add x29, sp, 0
+ stp x19, x20, [sp,16]
+ str x21, [sp,32]
+ mov x20, x0
+ ldr w19, [x0,40]
+ and w21, w19, 2097151
+ ubfx x19, x19, 21, 3
+ mov w0, w19
+ bl zftl_flash_exit_slc_mode
+ ldr w2, [x20,40]
+ adrp x0, .LC167
+ mov w1, w21
+ add x0, x0, :lo12:.LC167
+ add w3, w2, 1
+ bl printk
+ ldr x3, [x20,8]
+ mov w1, w19
+ ldr x4, [x20,24]
+ mov w2, w21
+ mov w0, 16
+ bl flash_start_3d_mlc_page_prog
+ bl nandc_iqr_wait_flash_ready
+ bl nandc_wait_flash_ready
+ ldr x3, [x20,8]
+ add w2, w21, 1
+ ldr x4, [x20,24]
+ mov w1, w19
+ mov w0, 16
+ bl flash_start_3d_mlc_page_prog
+ bl nandc_iqr_wait_flash_ready
+ bl nandc_wait_flash_ready
+ ldr w0, [x20,40]
+ mov w1, 64
+ bl flash_wait_device_ready
+ mov w20, w0
+ mov w0, w19
+ bl nandc_de_cs
+ ldr x21, [sp,32]
+ mov w0, w20
+ ldp x19, x20, [sp,16]
+ ldp x29, x30, [sp], 48
+ ret
+ .size sblk_mlc_dump_prog, .-sblk_mlc_dump_prog
+ .align 2
+ .global flash_start_page_prog
+ .type flash_start_page_prog, %function
+flash_start_page_prog:
stp x29, x30, [sp, -96]!
- adrp x6, .LANCHOR0
add x29, sp, 0
+ stp x21, x22, [sp,32]
+ adrp x22, .LANCHOR0
+ stp x25, x26, [sp,64]
+ uxtb w25, w0
+ add x0, x22, :lo12:.LANCHOR0
stp x23, x24, [sp,48]
- uxtb w23, w0
- add x0, x6, :lo12:.LANCHOR0
+ stp x19, x20, [sp,16]
+ stp x27, x28, [sp,80]
+ ubfx x24, x1, 21, 3
+ mov x27, x2
+ ldrb w0, [x0,633]
+ mov x26, x3
+ and w20, w1, 2097151
+ ubfx x23, x1, 24, 2
+ cmp w0, w24
+ bhi .L2236
+ adrp x1, .LANCHOR3
+ adrp x0, .LC0
+ add x1, x1, :lo12:.LANCHOR3
+ mov w2, 803
+ add x1, x1, 336
+ add x0, x0, :lo12:.LC0
+ bl printk
+ bl dump_stack
+.L2236:
+ add x28, x22, :lo12:.LANCHOR0
+ add x0, x28, x24, sxtw
+ ldrb w21, [x0,736]
+ ldr x19, [x28,536]
+ bl nandc_rdy_status
+ cbnz w0, .L2237
+ ldrb w0, [x28,633]
+ cmp w0, 1
+ bne .L2238
+ bl nandc_wait_flash_ready
+ b .L2237
+.L2238:
+ mov w0, w24
+ mov w1, w20
+ mov w2, 64
+ bl flash_wait_device_ready_raw
+.L2237:
+ mov w0, w21
+ bl hynix_reconfig_rr_para
+ mov w0, w21
+ bl nandc_cs
+ cbnz w23, .L2239
+ mov w0, w20
+ bl slc_phy_page_address_calc
+ mov w20, w0
+ ldrb w0, [x22,#:lo12:.LANCHOR0]
+ cbz w0, .L2240
+ mov w0, w21
+ bl zftl_flash_enter_slc_mode
+ b .L2240
+.L2239:
+ mov w0, w21
+ bl zftl_flash_exit_slc_mode
+.L2240:
+ ubfiz x4, x21, 8, 8
+ mov w0, 128
+ add x19, x19, x4
+ str w0, [x19,2056]
+ and w0, w20, 255
+ str wzr, [x19,2052]
+ str wzr, [x19,2052]
+ str w0, [x19,2052]
+ lsr w0, w20, 8
+ str w0, [x19,2052]
+ lsr w0, w20, 16
+ str w0, [x19,2052]
+ mov w0, w20
+ bl nandc_set_seed
+ adrp x1, .LANCHOR2+17
+ mov x2, x27
+ mov x3, x26
+ mov w0, 1
+ ldrb w1, [x1,#:lo12:.LANCHOR2+17]
+ bl nandc_xfer_start
+ bl nandc_xfer_done
+ str w25, [x19,2056]
+ mov w0, w21
+ bl nandc_de_cs
+ ldp x19, x20, [sp,16]
+ ldp x21, x22, [sp,32]
+ ldp x23, x24, [sp,48]
+ ldp x25, x26, [sp,64]
+ ldp x27, x28, [sp,80]
+ ldp x29, x30, [sp], 96
+ ret
+ .size flash_start_page_prog, .-flash_start_page_prog
+ .align 2
+ .type queue_prog_cmd, %function
+queue_prog_cmd:
+ stp x29, x30, [sp, -32]!
+ add x29, sp, 0
+ str x19, [sp,16]
+ mov x19, x0
+ mov w0, 16
+ ldr w1, [x19,40]
+ ldr x2, [x19,8]
+ ldr x3, [x19,24]
+ bl flash_start_page_prog
+ adrp x0, .LANCHOR0
+ ldr w4, [x19,40]
+ add x1, x0, :lo12:.LANCHOR0
+ ldrb w2, [x1,2835]
+ cmp w2, 255
+ beq .L2245
+ ubfx x4, x4, 21, 3
+ add x1, x1, 784
+.L2247:
+ add x3, x1, x2, lsl 6
+ ldr w5, [x3,40]
+ ubfx x5, x5, 21, 3
+ cmp w4, w5
+ bne .L2246
+ ldrb w5, [x3,58]
+ add x3, x3, 48
+ cmp w5, 7
+ bne .L2246
+ mov w1, 3
+ strb w1, [x3,10]
+ b .L2245
+.L2246:
+ lsl x2, x2, 6
+ ldrb w2, [x1,x2]
+ cmp w2, 255
+ bne .L2247
+.L2245:
+ mov w1, 3
+ strb w1, [x19,58]
+ mov w1, 1
+ add x0, x0, :lo12:.LANCHOR0
+ strb w1, [x19,59]
+ mov w1, -1
+ add x0, x0, 2835
+ strb w1, [x19]
+ mov x1, x19
+ bl buf_add_tail
+ ldr x19, [sp,16]
+ ldp x29, x30, [sp], 32
+ ret
+ .size queue_prog_cmd, .-queue_prog_cmd
+ .align 2
+ .global sblk_prog_page
+ .type sblk_prog_page, %function
+sblk_prog_page:
+ stp x29, x30, [sp, -96]!
+ add x29, sp, 0
stp x19, x20, [sp,16]
stp x21, x22, [sp,32]
+ stp x23, x24, [sp,48]
stp x25, x26, [sp,64]
stp x27, x28, [sp,80]
+ mov x19, x0
+ uxtb w20, w1
+ ldrh w0, [x0,50]
+ cbz w0, .L2253
+ adrp x0, .LANCHOR2
+ ldr w0, [x0,#:lo12:.LANCHOR2]
+ tbz x0, 8, .L2253
+ adrp x0, .LC168
+ ldr w1, [x19,40]
+ add x0, x0, :lo12:.LC168
+ mov w2, w20
+ bl printk
+.L2253:
+ adrp x24, .LANCHOR0
+ adrp x25, .LC0
+ add x23, x24, :lo12:.LANCHOR0
+ mov w21, 0
+ add x27, x23, 784
+ add x25, x25, :lo12:.LC0
+.L2254:
+ cbz w20, .L2284
+ ldrb w26, [x19]
+ ldr w22, [x19,40]
+.L2255:
+ mov w0, w22
+ mov w1, 1
+ bl queue_lun_state
+ cbz w0, .L2285
+ bl queue_wait_first_req_completed
+ bl queue_remove_completed_req
+ b .L2255
+.L2285:
+ cmp w20, 1
+ beq .L2257
+ add x0, x24, :lo12:.LANCHOR0
+ ldrb w0, [x0,781]
+ cbnz w0, .L2258
+.L2257:
+ mov x0, x19
+ bl queue_prog_cmd
+ b .L2259
+.L2258:
+ ldrb w0, [x19]
+ ubfx x28, x22, 21, 3
+ cmp w0, 255
+ bne .L2260
+ adrp x1, .LANCHOR3
+ mov w2, 574
+ add x1, x1, :lo12:.LANCHOR3
+ mov x0, x25
+ add x1, x1, 360
+ bl printk
+ bl dump_stack
+.L2260:
+ ldrb w0, [x19]
+ add x0, x27, x0, lsl 6
+ ldr w4, [x0,40]
+ ubfx x0, x4, 21, 3
+ cmp w28, w0
+ bne .L2261
+ ldrh w3, [x23,3340]
+ mov w1, 21
+ ldrb w6, [x23,3338]
+ mov w28, 1
+ sub w1, w1, w3
+ lsr w0, w22, w3
+ sub w6, w6, #1
+ lsl w1, w28, w1
+ sub w1, w1, #1
+ lsl w2, w28, w3
+ uxth w7, w6
+ sub w2, w2, #1
+ and w5, w7, w0
+ lsr w0, w4, w3
+ uxth w1, w1
+ and w3, w7, w0
+ and w3, w1, w3
+ and w0, w1, w5
+ cmp w0, w3
+ uxth w2, w2
+ beq .L2261
+ and w22, w2, w22
+ and w2, w2, w4
+ cmp w22, w2
+ bne .L2261
+ cmp w21, w6
+ beq .L2261
+ ldr w1, [x19,40]
+ mov w0, 17
+ ldr x2, [x19,8]
+ add w21, w21, w28
+ ldr x3, [x19,24]
+ bl flash_start_page_prog
+ strb w28, [x19,59]
+ mov w0, 9
+ strb w0, [x19,58]
+ mov w0, -1
+ mov x1, x19
+ strb w0, [x19]
+ add x0, x23, 2835
+ bl buf_add_tail
+ b .L2259
+.L2261:
+ mov x0, x19
+ mov w21, 0
+ bl queue_prog_cmd
+.L2259:
+ subs w20, w20, #1
+ beq .L2284
+ add x19, x24, :lo12:.LANCHOR0
+ sbfiz x26, x26, 6, 32
+ add x19, x19, 784
+ add x19, x19, x26
+ b .L2254
+.L2284:
+ mov w0, 0
+ ldp x19, x20, [sp,16]
+ ldp x21, x22, [sp,32]
+ ldp x23, x24, [sp,48]
+ ldp x25, x26, [sp,64]
+ ldp x27, x28, [sp,80]
+ ldp x29, x30, [sp], 96
+ ret
+ .size sblk_prog_page, .-sblk_prog_page
+ .align 2
+ .global ftl_flush
+ .type ftl_flush, %function
+ftl_flush:
+ stp x29, x30, [sp, -32]!
+ adrp x2, .LANCHOR0
+ add x29, sp, 0
+ add x0, x2, :lo12:.LANCHOR0
+ stp x19, x20, [sp,16]
+ mov x19, x2
+ adrp x20, .LANCHOR4
+ ldrb w1, [x0,2857]
+ cbz w1, .L2287
+ add x2, x20, :lo12:.LANCHOR4
+ add x0, x0, 784
+ ldrb w2, [x2,1241]
+ add x0, x0, x2, lsl 6
+ bl sblk_prog_page
+.L2287:
+ add x2, x19, :lo12:.LANCHOR0
+ add x20, x20, :lo12:.LANCHOR4
+ mov w0, -1
+ strb wzr, [x2,2857]
+ strb w0, [x20,1241]
+ bl sblk_wait_write_queue_completed
+ bl ftl_write_completed
+ mov w0, -1
+ bl ftl_vpn_decrement
+ ldp x19, x20, [sp,16]
+ ldp x29, x30, [sp], 32
+ ret
+ .size ftl_flush, .-ftl_flush
+ .align 2
+ .global zftl_cache_flush
+ .type zftl_cache_flush, %function
+zftl_cache_flush:
+ adrp x0, .LANCHOR0+2857
+ stp x29, x30, [sp, -16]!
+ add x29, sp, 0
+ ldrb w0, [x0,#:lo12:.LANCHOR0+2857]
+ cbz w0, .L2291
+ bl timer_get_time
+ adrp x1, .LANCHOR4+1244
+ ldr w1, [x1,#:lo12:.LANCHOR4+1244]
+ add w1, w1, 100
+ cmp w0, w1
+ bls .L2291
+ bl ftl_flush
+.L2291:
+ ldp x29, x30, [sp], 16
+ ret
+ .size zftl_cache_flush, .-zftl_cache_flush
+ .align 2
+ .global flash_prog_page_en
+ .type flash_prog_page_en, %function
+flash_prog_page_en:
+ stp x29, x30, [sp, -128]!
+ add x29, sp, 0
+ stp x23, x24, [sp,48]
+ uxtb w24, w0
+ adrp x0, .LANCHOR0
+ stp x19, x20, [sp,16]
mov w20, w1
+ add x1, x0, :lo12:.LANCHOR0
+ stp x21, x22, [sp,32]
+ stp x27, x28, [sp,80]
+ stp x25, x26, [sp,64]
mov x22, x2
- ldrb w0, [x0,633]
mov x21, x3
- mov w24, w4
- uxtb w25, w5
- cmp w0, w23
- ubfx x28, x20, 24, 2
- mov x19, x6
- bhi .L2267
+ ldrb w1, [x1,633]
+ mov w27, w4
+ uxtb w28, w5
+ ubfx x25, x20, 24, 2
+ cmp w1, w24
+ mov x23, x0
+ bhi .L2296
adrp x1, .LANCHOR3
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR3
- mov w2, 484
- add x1, x1, 368
+ mov w2, 546
+ add x1, x1, 376
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L2267:
- add x0, x19, :lo12:.LANCHOR0
- mov w26, w20
- add x1, x0, x23, sxtw
- ldrb w27, [x1,736]
- cbnz w28, .L2268
+.L2296:
+ add x0, x23, :lo12:.LANCHOR0
+ mov w19, w20
+ add x1, x0, x24, sxtw
+ ldrb w26, [x1,736]
+ cbnz w25, .L2297
adrp x1, .LANCHOR0
ldrb w1, [x1,#:lo12:.LANCHOR0]
- cbz w1, .L2269
+ cbz w1, .L2298
ldrb w0, [x0,1]
- cbz w0, .L2268
-.L2269:
- add x6, x19, :lo12:.LANCHOR0
- ldrh w26, [x6,2]
- ldrb w1, [x6,1]
- udiv w2, w20, w26
- mul w26, w2, w26
- sub w0, w20, w26
- cbz w1, .L2270
- add w26, w26, w0, lsl 1
- b .L2268
-.L2270:
- add x6, x6, 4
- ldrh w0, [x6,w0,uxtw 1]
- add w26, w0, w26
-.L2268:
+ cbz w0, .L2297
+.L2298:
+ add x0, x23, :lo12:.LANCHOR0
+ ldrh w19, [x0,2]
+ ldrb w2, [x0,1]
+ udiv w1, w20, w19
+ mul w19, w1, w19
+ sub w1, w20, w19
+ cbz w2, .L2299
+ add w19, w19, w1, lsl 1
+ b .L2297
+.L2299:
+ add x0, x0, 4
+ ldrh w0, [x0,w1,uxtw 1]
+ add w19, w0, w19
+.L2297:
+ adrp x25, .LC169
+ adrp x23, .LC170
+ adrp x0, .LC171
+ add x25, x25, :lo12:.LC169
+ add x0, x0, :lo12:.LC171
+ add x23, x23, :lo12:.LC170
+ str x0, [x29,120]
+.L2303:
adrp x0, .LANCHOR2
ldr w0, [x0,#:lo12:.LANCHOR2]
- tbz x0, 4, .L2271
- adrp x0, .LC166
- mov w1, w27
- add x0, x0, :lo12:.LC166
+ tbz x0, 4, .L2300
+ mov x0, x25
+ mov w1, w26
mov w2, w20
+ mov w3, w19
bl printk
-.L2271:
- mov w1, w26
- mov w0, w27
+.L2300:
+ mov w0, w26
+ mov w1, w19
mov x2, x22
mov x3, x21
- mov w4, w24
+ mov w4, w27
bl flash_prog_page
- mov w26, w0
- cbz w25, .L2272
- adrp x19, .LANCHOR4
- mov w0, w23
- add x25, x19, :lo12:.LANCHOR4
+ mov w6, w0
+ cbz w28, .L2301
+ adrp x5, .LANCHOR4
+ mov w4, w27
+ add x7, x5, :lo12:.LANCHOR4
+ mov w0, w24
mov w1, w20
- mov w4, w24
- ldr x2, [x25,1248]
- ldr x3, [x25,1256]
+ str x5, [x29,104]
+ str x6, [x29,96]
+ ldr x2, [x7,1224]
+ ldr x3, [x7,1232]
+ str x7, [x29,112]
bl flash_read_page_en
cmp w0, 512
- beq .L2273
+ cset w4, eq
+ ldr x5, [x29,104]
+ cbnz w4, .L2302
cmn w0, #1
- beq .L2273
- ldr x0, [x25,1248]
+ beq .L2302
+ ldr x7, [x29,112]
ldr w1, [x22]
+ ldr x6, [x29,96]
+ ldr x0, [x7,1224]
ldr w0, [x0]
cmp w1, w0
- bne .L2273
- ldr x0, [x25,1256]
+ bne .L2302
+ ldr x0, [x7,1232]
ldr w1, [x21]
ldr w0, [x0]
cmp w1, w0
- beq .L2272
-.L2273:
+ beq .L2301
+.L2302:
mov w2, 4
- adrp x0, .LC167
- mov x1, x22
+ mov x0, x23
mov w3, w2
- add x0, x0, :lo12:.LC167
- add x19, x19, :lo12:.LANCHOR4
+ mov x1, x22
+ str x4, [x29,104]
+ str x5, [x29,112]
bl rknand_print_hex
mov w2, 4
- adrp x0, .LC168
- mov x1, x21
+ ldr x0, [x29,120]
mov w3, w2
- add x0, x0, :lo12:.LC168
+ mov x1, x21
bl rknand_print_hex
- ldr x1, [x19,1256]
+ ldr x5, [x29,112]
mov w2, 4
- adrp x0, .LC169
+ adrp x0, .LC172
mov w3, w2
- add x0, x0, :lo12:.LC169
+ add x5, x5, :lo12:.LANCHOR4
+ add x0, x0, :lo12:.LC172
+ str x5, [x29,112]
+ ldr x1, [x5,1232]
bl rknand_print_hex
+ ldr x5, [x29,112]
mov w2, 4
- adrp x0, .LC170
- ldr x1, [x19,1248]
- add x0, x0, :lo12:.LC170
+ adrp x0, .LC173
mov w3, w2
+ add x0, x0, :lo12:.LC173
+ ldr x1, [x5,1224]
bl rknand_print_hex
- b .L2274
-.L2272:
- cmn w26, #1
- mov w0, w26
- bne .L2275
-.L2274:
- adrp x0, .LC171
+ ldr x4, [x29,104]
+ cbnz w4, .L2303
+.L2305:
+ adrp x0, .LC174
mov w1, w20
- add x0, x0, :lo12:.LC171
+ add x0, x0, :lo12:.LC174
bl printk
adrp x1, .LANCHOR3
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR3
- mov w2, 512
- add x1, x1, 368
+ mov w2, 577
+ add x1, x1, 376
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
mov w0, -1
-.L2275:
+ b .L2304
+.L2301:
+ cmn w6, #1
+ mov w0, w6
+ beq .L2305
+.L2304:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
ldp x25, x26, [sp,64]
ldp x27, x28, [sp,80]
- ldp x29, x30, [sp], 96
+ ldp x29, x30, [sp], 128
ret
.size flash_prog_page_en, .-flash_prog_page_en
.align 2
@@ -14012,20 +14489,20 @@ ftl_prog_page:
bl flash_prog_page_en
cmn w0, #1
mov w19, w0
- bne .L2289
+ bne .L2323
adrp x2, .LANCHOR3
adrp x0, .LC0
add x1, x2, :lo12:.LANCHOR3
add x0, x0, :lo12:.LC0
- add x1, x1, 392
- mov w2, 2150
+ add x1, x1, 400
+ mov w2, 2203
bl printk
bl dump_stack
- adrp x0, .LC171
+ adrp x0, .LC174
mov w1, w20
- add x0, x0, :lo12:.LC171
+ add x0, x0, :lo12:.LC174
bl printk
-.L2289:
+.L2323:
mov w0, w19
ldp x19, x20, [sp,16]
ldp x29, x30, [sp], 64
@@ -14050,20 +14527,20 @@ ftl_info_flush:
adrp x23, .LANCHOR3
add x19, x22, :lo12:.LANCHOR4
ldrb w2, [x0,2832]
- adrp x24, .LC172
+ adrp x24, .LC175
add x23, x23, :lo12:.LANCHOR3
add x0, x19, 1280
lsl w2, w2, 1
mov w25, 0
- add x24, x24, :lo12:.LC172
- add x23, x23, 408
+ add x24, x24, :lo12:.LC175
+ add x23, x23, 416
bl ftl_memset
-.L2291:
+.L2325:
add x0, x21, :lo12:.LANCHOR0
ldrb w27, [x19,1536]
ldrh w20, [x19,1538]
ldr x2, [x0,2864]
- ldrh w28, [x0,3350]
+ ldrh w28, [x0,3348]
ldr w1, [x2,4]
add w1, w1, 1
str w1, [x2,4]
@@ -14073,29 +14550,29 @@ ftl_info_flush:
str w0, [x19,1284]
adrp x0, .LANCHOR2
ldr w0, [x0,#:lo12:.LANCHOR2]
- tbz x0, 12, .L2292
+ tbz x0, 12, .L2326
ldr w3, [x3,4]
mov x0, x24
mov w1, w27
mov w2, w20
bl printk
-.L2292:
+.L2326:
add x1, x21, :lo12:.LANCHOR0
ldrh w0, [x19,1538]
ldrh w1, [x1,3300]
cmp w1, w0
- bhi .L2293
+ bhi .L2327
adrp x20, .LC0
add x20, x20, :lo12:.LC0
-.L2298:
+.L2332:
ldrb w1, [x19,1537]
add w1, w1, 1
uxtb w1, w1
strb w1, [x19,1537]
cmp w1, 7
- bls .L2294
+ bls .L2328
mov x1, 0
-.L2297:
+.L2331:
add x0, x21, :lo12:.LANCHOR0
uxth w25, w1
ldr x2, [x0,728]
@@ -14105,24 +14582,24 @@ ftl_info_flush:
add w0, w2, 127
uxtb w0, w0
cmp w0, 125
- bhi .L2295
+ bhi .L2329
mov x1, x23
mov w2, 742
mov x0, x20
bl printk
bl dump_stack
- b .L2296
-.L2295:
+ b .L2330
+.L2329:
cmp w2, 255
- bne .L2296
+ bne .L2330
add x1, x1, 1
cmp x1, 8
- bne .L2297
+ bne .L2331
mov w25, w1
-.L2296:
+.L2330:
strb w25, [x19,1537]
mov w25, 1
-.L2294:
+.L2328:
add x27, x21, :lo12:.LANCHOR0
ldrb w1, [x19,1537]
ldr x0, [x27,728]
@@ -14130,8 +14607,8 @@ ftl_info_flush:
ldrb w2, [x1,40]
strb w2, [x19,1536]
cmp w2, 255
- beq .L2298
- ldrh w20, [x27,3350]
+ beq .L2332
+ ldrh w20, [x27,3348]
mov w0, 0
mul w20, w2, w20
mov w1, w20
@@ -14145,13 +14622,13 @@ ftl_info_flush:
bl ftl_prog_page
mov w0, 1
strh w0, [x19,1538]
- b .L2299
-.L2293:
+ b .L2333
+.L2327:
madd w20, w27, w28, w20
- cbnz w0, .L2299
+ cbnz w0, .L2333
mov w1, w20
bl flash_erase_block
-.L2299:
+.L2333:
add x4, x21, :lo12:.LANCHOR0
mov w1, w20
mov w0, 0
@@ -14164,41 +14641,41 @@ ftl_info_flush:
adrp x0, .LANCHOR5
add w1, w1, 1
strh w1, [x19,1538]
- beq .L2300
+ beq .L2334
add x1, x0, :lo12:.LANCHOR5
ldrb w1, [x1,576]
- cbz w1, .L2301
-.L2300:
+ cbz w1, .L2335
+.L2334:
add x0, x0, :lo12:.LANCHOR5
strb wzr, [x0,576]
- b .L2291
-.L2301:
- cbnz w25, .L2302
-.L2310:
+ b .L2325
+.L2335:
+ cbnz w25, .L2336
+.L2344:
add x22, x22, :lo12:.LANCHOR4
ldrb w0, [x22,1536]
cmp w0, 255
- bne .L2304
+ bne .L2338
adrp x1, .LANCHOR3
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR3
mov w2, 778
- add x1, x1, 408
+ add x1, x1, 416
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
- b .L2304
-.L2302:
+ b .L2338
+.L2336:
ldrb w19, [x19,1537]
adrp x20, .LANCHOR3
adrp x23, .LC0
add x20, x20, :lo12:.LANCHOR3
add w19, w19, 1
add x23, x23, :lo12:.LC0
- add x20, x20, 408
-.L2305:
+ add x20, x20, 416
+.L2339:
cmp w19, 7
- bhi .L2310
+ bhi .L2344
add x0, x21, :lo12:.LANCHOR0
ldr x1, [x0,728]
add w0, w19, 8
@@ -14207,27 +14684,27 @@ ftl_info_flush:
add w0, w24, 127
uxtb w0, w0
cmp w0, 125
- bhi .L2306
+ bhi .L2340
mov x1, x20
mov w2, 771
mov x0, x23
bl printk
bl dump_stack
- b .L2307
-.L2306:
+ b .L2341
+.L2340:
cmp w24, 255
- beq .L2308
-.L2307:
+ beq .L2342
+.L2341:
add x0, x21, :lo12:.LANCHOR0
- ldrh w1, [x0,3350]
+ ldrh w1, [x0,3348]
mov w0, 0
mul w1, w24, w1
bl flash_erase_block
-.L2308:
+.L2342:
add w19, w19, 1
uxth w19, w19
- b .L2305
-.L2304:
+ b .L2339
+.L2338:
mov w0, 0
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -14266,10 +14743,10 @@ ftl_info_blk_init:
str x1, [x23,2864]
mov w1, 0
str x24, [x23,584]
- adrp x26, .LC173
+ adrp x26, .LC176
adrp x27, .LANCHOR2
bl ftl_memset
- add x26, x26, :lo12:.LC173
+ add x26, x26, :lo12:.LC176
add x0, x20, 640
mov w1, 0
mov w2, 16384
@@ -14281,7 +14758,7 @@ ftl_info_blk_init:
strh wzr, [x22,1538]
ldrb w0, [x0,40]
strb w0, [x22,1536]
-.L2328:
+.L2362:
add x5, x19, :lo12:.LANCHOR0
add w0, w20, 8
sxth w25, w20
@@ -14289,8 +14766,8 @@ ftl_info_blk_init:
add x0, x1, x0, sxtw
ldrb w1, [x0,32]
cmp w1, 255
- beq .L2324
- ldrh w22, [x5,3350]
+ beq .L2358
+ ldrh w22, [x5,3348]
mov w0, 0
ldrb w4, [x5,2832]
mov x2, x24
@@ -14302,7 +14779,7 @@ ftl_info_blk_init:
cmn w0, #1
mov w28, w0
ldr x5, [x29,104]
- bne .L2325
+ bne .L2359
ldrb w4, [x5,2832]
mov w0, 0
add w1, w22, 1
@@ -14310,9 +14787,9 @@ ftl_info_blk_init:
mov x3, x23
bl ftl_read_page
mov w28, w0
-.L2325:
+.L2359:
ldr w0, [x27,#:lo12:.LANCHOR2]
- tbz x0, 12, .L2326
+ tbz x0, 12, .L2360
add x0, x19, :lo12:.LANCHOR0
mov w1, w20
mov w2, w28
@@ -14321,39 +14798,39 @@ ftl_info_blk_init:
mov x0, x26
ldr w4, [x4]
bl printk
-.L2326:
+.L2360:
cmn w28, #1
- beq .L2324
+ beq .L2358
add x0, x19, :lo12:.LANCHOR0
ldr x0, [x0,2864]
ldr w1, [x0]
mov w0, 21574
movk w0, 0x494c, lsl 16
cmp w1, w0
- beq .L2336
-.L2324:
+ beq .L2370
+.L2358:
sub w20, w20, #1
cmn w20, #1
- bne .L2328
+ bne .L2362
mov w25, 0
- b .L2327
-.L2336:
+ b .L2361
+.L2370:
mov w20, w25
-.L2327:
+.L2361:
adrp x0, .LANCHOR2
ldr w0, [x0,#:lo12:.LANCHOR2]
- tbz x0, 12, .L2329
+ tbz x0, 12, .L2363
add x0, x19, :lo12:.LANCHOR0
mov w1, w20
mov w2, 4800
ldr x3, [x0,2864]
- adrp x0, .LC174
- add x0, x0, :lo12:.LC174
+ adrp x0, .LC177
+ add x0, x0, :lo12:.LC177
ldr w3, [x3]
bl printk
-.L2329:
+.L2363:
cmn w20, #1
- bne .L2330
+ bne .L2364
add x0, x21, :lo12:.LANCHOR4
mov w1, 0
add x19, x19, :lo12:.LANCHOR0
@@ -14369,8 +14846,8 @@ ftl_info_blk_init:
ldr x1, [x19,2864]
str w0, [x1,12]
mov w0, w20
- b .L2331
-.L2330:
+ b .L2365
+.L2364:
add x26, x19, :lo12:.LANCHOR0
add x23, x21, :lo12:.LANCHOR4
add w0, w25, 8
@@ -14390,10 +14867,10 @@ ftl_info_blk_init:
add w0, w0, 1
uxth w20, w0
ldrb w0, [x23,1536]
- ldrh w23, [x26,3350]
+ ldrh w23, [x26,3348]
mul w23, w0, w23
-.L2332:
- tbnz w22, #31, .L2335
+.L2366:
+ tbnz w22, #31, .L2369
add x26, x19, :lo12:.LANCHOR0
mov w0, 0
add w1, w22, w23
@@ -14402,14 +14879,14 @@ ftl_info_blk_init:
ldrb w4, [x26,2832]
bl ftl_read_page
cmn w0, #1
- beq .L2333
+ beq .L2367
ldr x0, [x26,2864]
ldr w1, [x0]
mov w0, 21574
movk w0, 0x494c, lsl 16
cmp w1, w0
- bne .L2333
-.L2335:
+ bne .L2367
+.L2369:
add x21, x21, :lo12:.LANCHOR4
add x19, x19, :lo12:.LANCHOR0
strh w20, [x21,1538]
@@ -14423,12 +14900,12 @@ ftl_info_blk_init:
mov w0, 0
bl ftl_info_flush
mov w0, 0
- b .L2331
-.L2333:
+ b .L2365
+.L2367:
sub w22, w22, #1
sxth w22, w22
- b .L2332
-.L2331:
+ b .L2366
+.L2365:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -14455,30 +14932,30 @@ ftl_ext_info_flush:
ldr x1, [x1,608]
ldr w3, [x1,520]
cmp w0, w3
- bls .L2354
+ bls .L2388
ldr w2, [x1,12]
sub w2, w2, w3
add w2, w2, w0
str w2, [x1,12]
- b .L2367
-.L2354:
- bcs .L2355
-.L2367:
+ b .L2401
+.L2388:
+ bcs .L2389
+.L2401:
str w0, [x1,520]
-.L2355:
+.L2389:
adrp x23, .LANCHOR3
adrp x19, .LANCHOR4
add x23, x23, :lo12:.LANCHOR3
add x19, x19, :lo12:.LANCHOR4
mov w0, 0
- add x23, x23, 424
+ add x23, x23, 432
add x19, x19, 1280
bl ftl_total_vpn_update
-.L2356:
+.L2390:
adrp x24, .LANCHOR5
add x24, x24, :lo12:.LANCHOR5
add x25, x24, 640
-.L2359:
+.L2393:
add x2, x22, :lo12:.LANCHOR0
ldr x0, [x2,2864]
ldr w1, [x0,56]
@@ -14487,22 +14964,22 @@ ftl_ext_info_flush:
ldrh w1, [x0,140]
ldrh w0, [x2,3300]
cmp w1, w0
- bcc .L2357
+ bcc .L2391
bl ftl_ext_alloc_new_blk
-.L2357:
+.L2391:
add x0, x22, :lo12:.LANCHOR0
ldr x0, [x0,2864]
ldrh w1, [x0,130]
mov w0, 65535
cmp w1, w0
- bne .L2358
+ bne .L2392
adrp x0, .LC0
mov x1, x23
- mov w2, 1746
+ mov w2, 1798
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L2358:
+.L2392:
add x21, x22, :lo12:.LANCHOR0
mov w0, 21
mov w1, 1
@@ -14516,7 +14993,7 @@ ftl_ext_info_flush:
sub w20, w20, #1
ldrb w2, [x21,2832]
and w3, w20, w3
- ldrh w20, [x21,3350]
+ ldrh w20, [x21,3348]
mov w1, 0
lsl w2, w2, 1
madd w20, w3, w20, w0
@@ -14539,17 +15016,17 @@ ftl_ext_info_flush:
uxth w1, w1
strh w1, [x2,140]
cmp w1, 1
- beq .L2359
+ beq .L2393
cmn w0, #1
- beq .L2360
+ beq .L2394
ldrb w0, [x24,578]
- cbz w0, .L2361
-.L2360:
+ cbz w0, .L2395
+.L2394:
adrp x0, .LANCHOR5
add x0, x0, :lo12:.LANCHOR5
strb wzr, [x0,578]
- b .L2356
-.L2361:
+ b .L2390
+.L2395:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -14579,7 +15056,7 @@ ftl_ext_info_init:
ldrh w22, [x26,3340]
add x2, x2, 640
add x3, x3, 1280
- strh wzr, [x26,3888]
+ strh wzr, [x26,3880]
ldrh w1, [x0,130]
mov w0, 21
sub w22, w0, w22
@@ -14596,60 +15073,60 @@ ftl_ext_info_init:
adrp x0, .LANCHOR2
mov w23, w24
ldr w0, [x0,#:lo12:.LANCHOR2]
- tbz x0, 12, .L2369
+ tbz x0, 12, .L2403
ldr x5, [x26,2864]
adrp x1, .LANCHOR3
- adrp x0, .LC175
+ adrp x0, .LC178
add x1, x1, :lo12:.LANCHOR3
- add x0, x0, :lo12:.LC175
- add x1, x1, 448
+ add x0, x0, :lo12:.LC178
+ add x1, x1, 456
ldrh w5, [x5,130]
- mov w2, 1790
+ mov w2, 1842
mov w3, w24
uxth w4, w27
bl printk
-.L2369:
+.L2403:
add x20, x20, :lo12:.LANCHOR5
add x21, x21, :lo12:.LANCHOR4
mov w26, w24
add x20, x20, 640
add x21, x21, 1280
-.L2370:
- tbnz w26, #31, .L2375
+.L2404:
+ tbnz w26, #31, .L2409
add x27, x19, :lo12:.LANCHOR0
mov w0, w25
mov x2, x20
mov x3, x21
- ldrh w1, [x27,3350]
+ ldrh w1, [x27,3348]
ldrb w4, [x27,2832]
madd w1, w22, w1, w26
bl flash_read_page_en
cmp w0, 512
- beq .L2371
+ beq .L2405
cmn w0, #1
- beq .L2371
+ beq .L2405
ldr x0, [x27,608]
ldr w1, [x0]
mov w0, 20038
movk w0, 0x4549, lsl 16
cmp w1, w0
- bne .L2371
-.L2375:
+ bne .L2405
+.L2409:
bl zftl_sblk_list_init
add x0, x19, :lo12:.LANCHOR0
ldr x0, [x0,2864]
ldrh w1, [x0,140]
cmp w1, w24
- bgt .L2373
+ bgt .L2407
add w23, w23, 1
strh w23, [x0,140]
bl ftl_ext_info_flush
- b .L2373
-.L2371:
+ b .L2407
+.L2405:
sub w26, w26, #1
sxth w26, w26
- b .L2370
-.L2373:
+ b .L2404
+.L2407:
add x19, x19, :lo12:.LANCHOR0
ldr x20, [x19,608]
bl timer_get_time
@@ -14709,14 +15186,14 @@ ftl_write_last_log_page:
add x19, x19, :lo12:.LANCHOR0
ldrh w24, [x0,12]
cmp w1, 1
- ldr x22, [x19,3872]
- bne .L2387
+ ldr x22, [x19,3864]
+ bne .L2421
mov x20, x0
bl ftl_get_new_free_page
cmn w0, #1
mov w23, w0
mov w21, 0
- beq .L2387
+ beq .L2421
ldrh w0, [x20]
add x22, x22, x24, uxth 2
bl ftl_vpn_decrement
@@ -14741,7 +15218,7 @@ ftl_write_last_log_page:
str w21, [x2,8]
str w21, [x2,12]
bl ftl_prog_ppa_page
-.L2387:
+.L2421:
mov w0, w21
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -14753,380 +15230,510 @@ ftl_write_last_log_page:
.global ftl_open_sblk_recovery
.type ftl_open_sblk_recovery, %function
ftl_open_sblk_recovery:
- stp x29, x30, [sp, -128]!
+ stp x29, x30, [sp, -208]!
add x29, sp, 0
- stp x23, x24, [sp,48]
- adrp x24, .LANCHOR2
- stp x19, x20, [sp,16]
- mov x19, x0
- ldr w0, [x24,#:lo12:.LANCHOR2]
- stp x27, x28, [sp,80]
stp x21, x22, [sp,32]
+ adrp x21, .LANCHOR2
stp x25, x26, [sp,64]
- mov x27, x1
- tbz x0, 12, .L2392
- adrp x0, .LC176
- ldrh w1, [x19,2]
- add x0, x0, :lo12:.LC176
+ mov x25, x0
+ str x1, [x29,120]
+ ldr w0, [x21,#:lo12:.LANCHOR2]
+ stp x19, x20, [sp,16]
+ stp x23, x24, [sp,48]
+ stp x27, x28, [sp,80]
+ tbz x0, 12, .L2426
+ adrp x0, .LC179
+ ldrh w1, [x25,2]
+ add x0, x0, :lo12:.LC179
bl printk
-.L2392:
- ldr w0, [x24,#:lo12:.LANCHOR2]
- tbz x0, 12, .L2393
- adrp x0, .LC177
- ldrb w1, [x19,5]
- add x0, x0, :lo12:.LC177
+.L2426:
+ ldr w0, [x21,#:lo12:.LANCHOR2]
+ tbz x0, 12, .L2427
+ adrp x0, .LC180
+ ldrb w1, [x25,5]
+ add x0, x0, :lo12:.LC180
bl printk
-.L2393:
- ldr w0, [x24,#:lo12:.LANCHOR2]
- tbz x0, 12, .L2394
- adrp x0, .LC178
- ldrh w1, [x19]
- add x0, x0, :lo12:.LC178
+.L2427:
+ ldr w0, [x21,#:lo12:.LANCHOR2]
+ tbz x0, 12, .L2428
+ adrp x0, .LC181
+ ldrh w1, [x25]
+ add x0, x0, :lo12:.LC181
bl printk
-.L2394:
- ldr w0, [x24,#:lo12:.LANCHOR2]
- tbz x0, 12, .L2395
- adrp x0, .LC179
- ldrh w1, [x19,16]
- ldrh w2, [x19,18]
- add x0, x0, :lo12:.LC179
+.L2428:
+ ldr w0, [x21,#:lo12:.LANCHOR2]
+ tbz x0, 12, .L2429
+ adrp x0, .LC182
+ ldrh w1, [x25,16]
+ ldrh w2, [x25,18]
+ add x0, x0, :lo12:.LC182
bl printk
-.L2395:
- ldrh w0, [x19,10]
- adrp x21, .LANCHOR0
- strh w0, [x19,14]
- add x0, x21, :lo12:.LANCHOR0
- ldrh w1, [x19]
+.L2429:
+ ldrh w0, [x25,10]
+ adrp x19, .LANCHOR0
+ strh w0, [x25,14]
+ add x0, x19, :lo12:.LANCHOR0
+ ldrh w1, [x25]
ldrh w0, [x0,576]
cmp w1, w0
- bcs .L2391
+ bcs .L2425
mov w0, 1
- adrp x25, .LANCHOR4
- adrp x26, .LANCHOR3
- add x25, x25, :lo12:.LANCHOR4
+ add x20, x29, 144
+ adrp x24, .LANCHOR4
+ mov w26, 2
bl buf_alloc
- add x26, x26, :lo12:.LANCHOR3
- ldrb w22, [x19,5]
- mov x20, x0
- ldrh w23, [x19,2]
- add x0, x26, 472
- mov w28, 0
- add x25, x25, 1280
- str x0, [x29,120]
-.L2398:
- add x0, x21, :lo12:.LANCHOR0
+ mov x27, x0
+ mov w1, 255
+ mov x0, x20
+ mov w2, 64
+ add x24, x24, :lo12:.LANCHOR4
+ add x24, x24, 1280
+ bl ftl_memset
+ ldrb w22, [x25,5]
+ adrp x0, .LANCHOR3
+ ldrh w23, [x25,2]
+ add x0, x0, :lo12:.LANCHOR3
+ str wzr, [x29,136]
+ add x0, x0, 480
+ str x0, [x29,112]
+.L2431:
+ add x0, x19, :lo12:.LANCHOR0
ldrh w0, [x0,3300]
cmp w0, w23
- bls .L2401
- ldrb w22, [x19,5]
-.L2399:
- ldrb w0, [x19,9]
+ bls .L2434
+ ldrb w22, [x25,5]
+.L2432:
+ ldrb w0, [x25,9]
cmp w0, w22
- bls .L2475
- add x0, x19, x22, sxtw 1
+ bls .L2542
+ add x0, x25, x22, sxtw 1
ldrh w0, [x0,16]
mov w1, 65535
cmp w0, w1
- beq .L2400
- add x3, x21, :lo12:.LANCHOR0
- ldr x2, [x20,24]
- ldrh w1, [x3,3350]
+ beq .L2433
+ add x3, x19, :lo12:.LANCHOR0
+ ldr x2, [x27,24]
+ ldrh w1, [x3,3348]
ldrb w3, [x3,2832]
madd w0, w0, w1, w23
- ldr x1, [x20,8]
+ ldr x1, [x27,8]
+ str w0, [x29,132]
bl ftl_read_ppa_page
cmp w0, 512
- mov w26, w0
- beq .L2401
+ mov w28, w0
+ beq .L2434
cmn w0, #1
- beq .L2402
- ldr x0, [x20,24]
+ beq .L2435
+ ldr x0, [x27,24]
ldr w1, [x0]
cmn w1, #1
- bne .L2402
+ bne .L2435
ldr w0, [x0,4]
cmn w0, #1
- bne .L2402
- ldr x0, [x20,8]
+ bne .L2435
+ ldr x0, [x27,8]
ldr w0, [x0]
cmn w0, #1
- beq .L2401
-.L2402:
+ beq .L2434
+.L2435:
adrp x0, .LANCHOR5+577
mov w1, 1
strb w1, [x0,#:lo12:.LANCHOR5+577]
- ldrb w0, [x19,9]
- ldrh w1, [x19,10]
+ ldrb w0, [x25,9]
+ ldrh w1, [x25,10]
madd w0, w23, w0, w22
cmp w1, w0
- beq .L2403
+ beq .L2436
adrp x0, .LC0
- ldr x1, [x29,120]
- mov w2, 1395
+ ldr x1, [x29,112]
+ mov w2, 1399
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L2403:
- ldrh w0, [x19,10]
- ldrh w1, [x19,6]
- ldrb w2, [x19,9]
+.L2436:
+ ldrh w0, [x25,10]
+ ldrh w1, [x25,6]
+ ldrb w2, [x25,9]
add w1, w1, w0
- add x0, x21, :lo12:.LANCHOR0
+ add x0, x19, :lo12:.LANCHOR0
ldrh w0, [x0,3300]
mul w0, w0, w2
cmp w1, w0
- beq .L2404
+ beq .L2437
adrp x0, .LC0
- ldr x1, [x29,120]
- mov w2, 1396
+ ldr x1, [x29,112]
+ mov w2, 1400
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L2404:
- cmn w26, #1
- beq .L2408
- ldr x0, [x20,24]
+.L2437:
+ cmn w28, #1
+ beq .L2441
+ ldr x0, [x27,24]
ldr w0, [x0,4]
cmn w0, #1
- beq .L2408
+ beq .L2441
bl lpa_hash_get_ppa
- cbz x27, .L2406
- ldr x2, [x20,24]
- ldr w3, [x2,8]
- cmp w0, w3
- beq .L2406
+ ldr x1, [x29,120]
+ cbz x1, .L2439
+ ldr x3, [x27,24]
+ ldr w1, [x3,8]
+ cmp w0, w1
+ beq .L2439
cmn w0, #1
- beq .L2406
- add x4, x21, :lo12:.LANCHOR0
- mov w5, 21
- mov w28, 1
- ldrh w3, [x4,3340]
- lsr w1, w0, w3
- sub w3, w5, w3
- lsl w3, w28, w3
- sub w3, w3, #1
- and w3, w1, w3
- ldrb w1, [x4,3338]
- udiv w3, w3, w1
- ldrh w1, [x27]
- cmp w1, w3, uxth
- bne .L2406
- ldr w6, [x2]
- mov x2, x25
- ldrb w3, [x4,2832]
- ldr x1, [x20,8]
- str x5, [x29,96]
- str x6, [x29,104]
- str x4, [x29,112]
+ beq .L2439
+ add x28, x19, :lo12:.LANCHOR0
+ mov w4, 21
+ mov w26, 1
+ ldrh w1, [x28,3340]
+ lsr w2, w0, w1
+ sub w1, w4, w1
+ lsl w1, w26, w1
+ sub w1, w1, #1
+ and w1, w2, w1
+ ldrb w2, [x28,3338]
+ udiv w1, w1, w2
+ ldr x2, [x29,120]
+ ldrh w2, [x2]
+ cmp w2, w1, uxth
+ bne .L2439
+ ldr w7, [x3]
+ mov x2, x24
+ ldr x1, [x27,8]
+ ldrb w3, [x28,2832]
+ str x4, [x29,104]
+ str x7, [x29,136]
bl ftl_read_ppa_page
- ldr w0, [x25]
- ldr x6, [x29,104]
- ldr x4, [x29,112]
- cmp w0, w6
- ldr x5, [x29,96]
- bcc .L2406
- ldr x0, [x20,24]
+ ldr w0, [x24]
+ ldr x7, [x29,136]
+ ldr x4, [x29,104]
+ cmp w0, w7
+ bcc .L2439
+ ldr x0, [x27,24]
ldr w1, [x0,8]
cmn w1, #1
- beq .L2408
- ldrh w0, [x4,3340]
- sub w5, w5, w0
+ beq .L2441
+ ldrh w0, [x28,3340]
+ sub w4, w4, w0
lsr w1, w1, w0
- lsl w28, w28, w5
- ldrb w0, [x4,3338]
- sub w28, w28, #1
- and w1, w28, w1
+ lsl w26, w26, w4
+ ldrb w0, [x28,3338]
+ sub w26, w26, #1
+ and w1, w26, w1
udiv w0, w1, w0
bl ftl_vpn_decrement
- b .L2408
-.L2406:
- ldr x2, [x20,24]
- add x1, x21, :lo12:.LANCHOR0
+ b .L2441
+.L2439:
+ ldr x2, [x27,24]
+ add x1, x19, :lo12:.LANCHOR0
ldr w3, [x2,4]
ldr w0, [x1,2840]
cmp w3, w0
- bcs .L2408
- ldrb w0, [x19,9]
+ bcs .L2441
+ ldrb w0, [x25,9]
ldrh w4, [x1,3300]
- ldrh w3, [x19,10]
+ ldrh w3, [x25,10]
mul w0, w0, w4
sub w0, w0, #1
cmp w3, w0
- blt .L2476
-.L2408:
- ldrh w0, [x19,6]
- mov w28, 1
+ blt .L2543
+.L2441:
+ ldrh w0, [x25,6]
+ mov w26, 4
sub w0, w0, #1
- strh w0, [x19,6]
- ldrh w0, [x19,10]
+ strh w0, [x25,6]
+ ldrh w0, [x25,10]
add w0, w0, 1
- strh w0, [x19,10]
-.L2400:
+ strh w0, [x25,10]
+ mov w0, 1
+ str w0, [x29,136]
+.L2433:
add w22, w22, 1
uxth w22, w22
- b .L2399
-.L2475:
+ b .L2432
+.L2542:
add w23, w23, 1
- strb wzr, [x19,5]
+ strb wzr, [x25,5]
uxth w23, w23
- b .L2398
-.L2401:
- add x2, x21, :lo12:.LANCHOR0
- ldrh w0, [x19,10]
- ldrh w1, [x19,6]
- strh w23, [x19,2]
+ b .L2431
+.L2434:
+ add x2, x19, :lo12:.LANCHOR0
+ ldrh w0, [x25,10]
+ ldrh w1, [x25,6]
+ strh w23, [x25,2]
add w1, w1, w0
ldrh w2, [x2,3300]
- ldrb w0, [x19,9]
- strb w22, [x19,5]
+ ldrb w0, [x25,9]
+ strb w22, [x25,5]
mul w0, w0, w2
cmp w1, w0
- beq .L2412
+ beq .L2445
adrp x1, .LANCHOR3
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR3
- mov w2, 1472
- add x1, x1, 472
+ mov w2, 1480
+ add x1, x1, 480
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L2412:
- add x0, x21, :lo12:.LANCHOR0
- ldrh w3, [x19,10]
- ldr x4, [x0,3872]
+.L2445:
+ add x0, x19, :lo12:.LANCHOR0
+ ldrh w3, [x25,10]
+ ldr x4, [x0,3864]
mov w0, 0
mov w2, w0
-.L2413:
+.L2446:
cmp w2, w3
- bcs .L2477
- ldrh w1, [x19,12]
+ bcs .L2544
+ ldrh w1, [x25,12]
add w1, w2, w1
ldr w1, [x4,x1,lsl 2]
cmn w1, #1
- beq .L2414
+ beq .L2447
add w1, w0, 1
uxth w0, w1
-.L2414:
+.L2447:
add w2, w2, 1
- b .L2413
-.L2477:
- add x2, x21, :lo12:.LANCHOR0
- ldrb w1, [x19,9]
+ b .L2446
+.L2544:
+ add x2, x19, :lo12:.LANCHOR0
+ ldrb w1, [x25,9]
sub w0, w0, w3
ldrh w22, [x2,3300]
madd w0, w1, w22, w0
uxth w22, w0
- ldr w0, [x24,#:lo12:.LANCHOR2]
- tbz x0, 12, .L2416
- ldrh w1, [x19]
- adrp x0, .LC180
+ ldr w0, [x21,#:lo12:.LANCHOR2]
+ tbz x0, 12, .L2449
+ ldrh w1, [x25]
+ adrp x0, .LC183
ldr x4, [x2,600]
- add x0, x0, :lo12:.LC180
+ add x0, x0, :lo12:.LC183
ubfiz x3, x1, 1, 16
mov w2, w22
ldrh w3, [x4,x3]
bl printk
-.L2416:
- add x0, x21, :lo12:.LANCHOR0
- ldrh w1, [x19]
- adrp x23, .LC181
- mov w25, -1
- add x23, x23, :lo12:.LC181
+.L2449:
+ add x0, x19, :lo12:.LANCHOR0
+ ldrh w1, [x25]
ldr x0, [x0,600]
strh w22, [x0,x1,lsl 1]
- mov x0, x20
- mov w22, 0
- bl buf_free
-.L2417:
- add x2, x21, :lo12:.LANCHOR0
- ldrb w0, [x2,3276]
- cmp w22, w0, lsl 1
- bcs .L2478
- cbz w28, .L2418
- ldrh w0, [x19,6]
- cmp w0, 1
- bls .L2418
- mov x0, x19
- bl ftl_get_new_free_page
- mov w26, w0
- ldr w0, [x24,#:lo12:.LANCHOR2]
- tbz x0, 12, .L2419
- mov x0, x23
- mov w1, w26
+ ldr w0, [x21,#:lo12:.LANCHOR2]
+ tbz x0, 14, .L2450
+ adrp x0, .LC184
+ ldr w1, [x29,144]
+ ldr w2, [x29,148]
+ add x0, x0, :lo12:.LC184
+ ldr w3, [x29,152]
+ ldr w4, [x29,156]
bl printk
-.L2419:
- add x3, x21, :lo12:.LANCHOR0
- ldr x0, [x20,24]
- ldr x1, [x3,2864]
+.L2450:
+ add x0, x19, :lo12:.LANCHOR0
+ mov w1, 0
+ adrp x24, .LC185
+ mov x23, 0
+ add x24, x24, :lo12:.LC185
+ ldrb w2, [x0,2832]
+ ldr x0, [x27,8]
+ lsl w2, w2, 9
+ bl ftl_memset
+ adrp x0, .LC186
+ add x28, x0, :lo12:.LC186
+ adrp x0, .LC187
+ add x0, x0, :lo12:.LC187
+ str x0, [x29,120]
+.L2451:
+ add x22, x19, :lo12:.LANCHOR0
+ str w23, [x29,132]
+ ldrb w0, [x22,3276]
+ mul w0, w26, w0
+ cmp w23, w0
+ bcs .L2545
+ ldr w0, [x20,x23,lsl 2]
+ cmn w0, #1
+ bne .L2452
+.L2456:
+ add x1, x19, :lo12:.LANCHOR0
+ ldr x0, [x27,24]
+ mov w22, -1
+ ldr x1, [x1,2864]
ldr w1, [x1,8]
str w1, [x0]
- ldr x0, [x20,24]
- str w25, [x0,4]
- ldr x0, [x20,24]
- str w25, [x0,8]
- ldr x0, [x20,24]
+ ldr x0, [x27,24]
+ str w22, [x0,4]
+ ldr x0, [x27,24]
+ str w22, [x0,8]
+ ldr x0, [x27,24]
str wzr, [x0,12]
- ldr x0, [x20,8]
+ ldr x0, [x27,8]
str wzr, [x0]
- mov w0, w26
- ldr x1, [x20,8]
- ldr x2, [x20,24]
+ b .L2453
+.L2452:
+ ldrb w3, [x22,2832]
+ ldr x1, [x27,8]
+ ldr x2, [x27,24]
+ bl ftl_read_ppa_page
+ mov w22, w0
+ ldr x0, [x27,24]
+ ldr w0, [x0,4]
+ bl lpa_hash_get_ppa
+ mov w4, w0
+ ldr w0, [x21,#:lo12:.LANCHOR2]
+ tbz x0, 14, .L2454
+ ldr x3, [x27,24]
+ mov w1, w4
+ ldr w2, [x20,x23,lsl 2]
+ mov x0, x24
+ str x4, [x29,112]
+ ldr w3, [x3,4]
+ bl printk
+ ldr x4, [x29,112]
+.L2454:
+ ldr w0, [x20,x23,lsl 2]
+ ldr x2, [x27,24]
+ cmp w4, w0
+ add x0, x19, :lo12:.LANCHOR0
+ csinv w22, w22, wzr, eq
+ cmn w22, #1
+ ldr x1, [x0,2864]
+ ldr w0, [x1,8]
+ add w3, w0, 1
+ str w3, [x1,8]
+ str w0, [x2]
+ mov w1, 1
+ ldr x0, [x27,24]
+ str w4, [x0,8]
+ ldr x0, [x27,24]
+ str w1, [x0,12]
+ beq .L2456
+.L2453:
+ ldr w0, [x29,136]
+ cbz w0, .L2458
+.L2541:
+ ldrh w0, [x25,6]
+ cmp w0, 1
+ bls .L2458
+ mov x0, x25
+ bl ftl_get_new_free_page
+ mov w4, w0
+ ldr w0, [x21,#:lo12:.LANCHOR2]
+ tbz x0, 14, .L2460
+ ldr x2, [x27,24]
+ mov w1, w4
+ mov x0, x28
+ str x4, [x29,112]
+ ldr w2, [x2,4]
+ bl printk
+ ldr x4, [x29,112]
+.L2460:
+ add x3, x19, :lo12:.LANCHOR0
+ ldr w1, [x29,132]
+ ldrh w0, [x25,6]
+ ldrb w2, [x3,3276]
+ mul w2, w26, w2
+ add w2, w2, 1
+ sub w2, w2, w1
+ cmp w0, w2
+ bls .L2458
+ ldr x1, [x27,8]
+ mov w0, w4
+ ldr x2, [x27,24]
ldrb w3, [x3,2832]
bl ftl_prog_ppa_page
- ldrh w0, [x19]
+ mov w2, w0
+ ldrh w0, [x25]
+ str x2, [x29,112]
bl ftl_vpn_decrement
-.L2418:
- add w22, w22, 1
- b .L2417
-.L2478:
- ldrh w1, [x2,3300]
- ldrh w0, [x19,12]
- ldrb w3, [x19,9]
- madd w0, w1, w3, w0
+ ldr x2, [x29,112]
+ cmn w22, #1
+ cset w1, ne
+ cmn w2, #1
+ beq .L2461
+ cbz w1, .L2458
+ ldr w0, [x21,#:lo12:.LANCHOR2]
+ tbz x0, 14, .L2462
+ ldr x2, [x27,24]
+ ldrh w0, [x25,12]
+ ldrh w3, [x25,10]
+ ldr w1, [x2,4]
+ add w3, w3, w0
+ ldr w2, [x2,8]
+ ldr x0, [x29,120]
+ sub w3, w3, #1
+ bl printk
+.L2462:
+ ldr x1, [x27,24]
+ ldrh w0, [x25,12]
+ ldrh w2, [x25,10]
+ add w2, w2, w0
+ ldr w0, [x1,4]
+ ldr w1, [x1,8]
+ sub w2, w2, #1
+ bl lpa_hash_update_ppa
+ b .L2458
+.L2461:
+ cbnz w1, .L2541
+.L2458:
+ add x23, x23, 1
+ b .L2451
+.L2545:
+ mov x0, x27
+ bl buf_free
+ ldrh w1, [x22,3300]
+ ldrh w0, [x25,12]
+ ldrb w2, [x25,9]
+ madd w0, w1, w2, w0
mov x1, -4
add x0, x1, x0, sxtw 2
- ldr x1, [x2,3872]
+ ldr x1, [x22,3864]
ldr w0, [x1,x0]
cmn w0, #1
- beq .L2421
+ beq .L2466
adrp x1, .LANCHOR3
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR3
- mov w2, 1502
- add x1, x1, 472
+ mov w2, 1554
+ add x1, x1, 480
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L2421:
- ldrh w0, [x19,6]
+.L2466:
+ ldrh w0, [x25,6]
cmp w0, 1
- bne .L2391
- mov x0, x19
+ bne .L2425
+ mov x0, x25
bl ftl_write_last_log_page
- b .L2391
-.L2476:
+ b .L2425
+.L2543:
ldr x0, [x1,2864]
ldr w2, [x2]
ldr w1, [x0,8]
cmp w2, w1
- bls .L2409
+ bls .L2442
str w2, [x0,8]
-.L2409:
- ldr x1, [x20,24]
- ldrh w0, [x19,10]
- ldrh w2, [x19,12]
+.L2442:
+ ldr x1, [x27,24]
+ ldrh w0, [x25,10]
+ ldrh w2, [x25,12]
add w2, w2, w0
ldr w0, [x1,4]
ldr w1, [x1,8]
bl lpa_hash_update_ppa
- b .L2408
-.L2391:
+ ldr w0, [x20,4]
+ str w0, [x20]
+ ldr w0, [x20,8]
+ str w0, [x20,4]
+ ldr w0, [x20,12]
+ str w0, [x20,8]
+ ldr w0, [x29,132]
+ str w0, [x20,12]
+ b .L2441
+.L2425:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
ldp x25, x26, [sp,64]
ldp x27, x28, [sp,80]
- ldp x29, x30, [sp], 128
+ ldp x29, x30, [sp], 208
ret
.size ftl_open_sblk_recovery, .-ftl_open_sblk_recovery
.align 2
@@ -15147,8 +15754,8 @@ pm_write_page:
mov x24, x1
adrp x25, .LANCHOR0
add x23, x23, :lo12:.LC0
- add x22, x22, 496
-.L2480:
+ add x22, x22, 504
+.L2547:
add x2, x25, :lo12:.LANCHOR0
adrp x19, .LANCHOR0
ldr x0, [x2,2864]
@@ -15158,34 +15765,34 @@ pm_write_page:
str w1, [x0,48]
ldrh w1, [x2,3300]
cmp w3, w1
- bcs .L2481
+ bcs .L2548
ldrh w1, [x0,692]
mov w0, 65535
cmp w1, w0
- bne .L2482
-.L2481:
+ bne .L2549
+.L2548:
bl pm_alloc_new_blk
mov w0, 0
bl ftl_info_flush
-.L2482:
+.L2549:
add x0, x19, :lo12:.LANCHOR0
ldr x0, [x0,2864]
ldrh w1, [x0,692]
mov w0, 65535
cmp w1, w0
- bne .L2483
+ bne .L2550
mov x1, x22
mov w2, 230
mov x0, x23
bl printk
bl dump_stack
-.L2483:
+.L2550:
add x19, x19, :lo12:.LANCHOR0
adrp x20, .LANCHOR7
add x27, x20, :lo12:.LANCHOR7
mov w2, 64
ldr x1, [x19,2864]
- ldrh w26, [x19,3350]
+ ldrh w26, [x19,3348]
ldrh w0, [x1,692]
ldrh w1, [x1,696]
madd w26, w0, w26, w1
@@ -15211,28 +15818,28 @@ pm_write_page:
uxth w2, w2
strh w2, [x1,696]
cmp w2, 1
- beq .L2484
+ beq .L2551
ldrb w2, [x27,-120]
- cbz w2, .L2485
-.L2484:
+ cbz w2, .L2552
+.L2551:
add x20, x20, :lo12:.LANCHOR7
strb wzr, [x20,-120]
- b .L2480
-.L2485:
+ b .L2547
+.L2552:
cmn w0, #1
- bne .L2487
- adrp x0, .LC182
+ bne .L2554
+ adrp x0, .LC188
mov w1, w26
- add x0, x0, :lo12:.LC182
+ add x0, x0, :lo12:.LC188
bl printk
- b .L2480
-.L2487:
+ b .L2547
+.L2554:
ldrh w0, [x1,698]
cmp w21, w0
- bcs .L2488
+ bcs .L2555
add x21, x1, x21, uxtw 2
str w26, [x21,704]
-.L2488:
+.L2555:
mov w0, 0
ldr x27, [sp,80]
ldp x19, x20, [sp,16]
@@ -15243,11 +15850,267 @@ pm_write_page:
ret
.size pm_write_page, .-pm_write_page
.align 2
+ .global ftl_dump_write_open_sblk
+ .type ftl_dump_write_open_sblk, %function
+ftl_dump_write_open_sblk:
+ sub sp, sp, #208
+ stp x29, x30, [sp,48]
+ add x29, sp, 48
+ stp x21, x22, [sp,80]
+ adrp x22, .LANCHOR0
+ stp x23, x24, [sp,96]
+ uxth w23, w0
+ add x0, x22, :lo12:.LANCHOR0
+ stp x19, x20, [sp,64]
+ stp x25, x26, [sp,112]
+ stp x27, x28, [sp,128]
+ ldrh w1, [x0,576]
+ cmp w1, w23
+ bls .L2559
+ ldrb w1, [x0,3272]
+ cbnz w1, .L2561
+ ldrb w0, [x0,3258]
+ cbz w0, .L2559
+.L2561:
+ add x1, x22, :lo12:.LANCHOR0
+ ubfiz x19, x23, 2, 16
+ mov w27, 1
+ ldr x0, [x1,584]
+ add x0, x0, x19
+ ldrb w0, [x0,2]
+ and w0, w0, 224
+ cmp w0, 160
+ bne .L2562
+ ldrb w27, [x1,3257]
+.L2562:
+ add x24, x29, 128
+ mov w0, w23
+ add x1, x24, 16
+ strh w23, [x29,128]
+ mov w21, 0
+ adrp x25, .LC190
+ bl ftl_get_blk_list_in_sblk
+ uxtb w0, w0
+ add x1, x22, :lo12:.LANCHOR0
+ strb w0, [x29,137]
+ strh wzr, [x29,130]
+ mov w20, w21
+ strb wzr, [x29,133]
+ mov w26, w21
+ ldrh w2, [x1,3300]
+ add x25, x25, :lo12:.LC190
+ strh wzr, [x29,138]
+ mul w0, w0, w2
+ strh w0, [x29,134]
+ ldr x0, [x1,584]
+ add x1, x0, x19
+ ldrh w4, [x0,x19]
+ ldr w5, [x0,x19]
+ adrp x0, .LC189
+ ldrb w3, [x1,2]
+ and w4, w4, 2047
+ mov w1, w23
+ ubfx x5, x5, 11, 8
+ ubfx x2, x3, 5, 3
+ add x0, x0, :lo12:.LC189
+ ubfx x3, x3, 3, 2
+ bl printk
+ mov w0, 1
+ bl buf_alloc
+ mov x19, x0
+ mov w8, 65535
+.L2563:
+ add x0, x22, :lo12:.LANCHOR0
+ ldrh w0, [x0,3300]
+ cmp w0, w20
+ bls .L2584
+ lsl w28, w20, 1
+ mov w26, 0
+ sub w28, w28, #1
+.L2573:
+ ldrb w0, [x24,9]
+ cmp w0, w26
+ bls .L2588
+ mov w21, 1
+ sxtw x9, w26
+.L2572:
+ cmp w21, w27
+ bhi .L2589
+ add x0, x9, 8
+ ldrh w5, [x24,x0,lsl 1]
+ cmp w5, w8
+ beq .L2565
+ add x0, x22, :lo12:.LANCHOR0
+ cmp w27, 3
+ ldrh w2, [x0,3348]
+ mul w2, w5, w2
+ bne .L2566
+ add w2, w2, w20
+ orr w3, w2, w21, lsl 24
+ b .L2567
+.L2566:
+ cmp w27, 2
+ add w3, w2, w20
+ bne .L2567
+ ldrb w3, [x0,3257]
+ add w2, w2, w28
+ add w2, w2, w21
+ orr w3, w2, w3, lsl 24
+.L2567:
+ str w3, [x19,40]
+ mov w1, 1
+ mov x0, x19
+ str x8, [x29,96]
+ str x9, [x29,104]
+ str x5, [x29,112]
+ str x3, [x29,120]
+ bl sblk_read_page
+ ldr x7, [x19,8]
+ mov w2, w20
+ ldr x0, [x19,24]
+ ldr w10, [x19,52]
+ ldr w1, [x7,12]
+ str w1, [sp]
+ mov w4, w10
+ ldr x5, [x29,112]
+ ldr w1, [x0]
+ str w1, [sp,8]
+ ldr x3, [x29,120]
+ ldr w1, [x0,4]
+ str w1, [sp,16]
+ str x10, [x29,120]
+ ldr w1, [x0,8]
+ str w1, [sp,24]
+ mov w1, w5
+ ldr w0, [x0,12]
+ str w0, [sp,32]
+ mov x0, x25
+ ldr w5, [x7]
+ ldr w6, [x7,4]
+ ldr w7, [x7,8]
+ bl printk
+ ldr x10, [x29,120]
+ ldr x9, [x29,104]
+ cmp w10, 512
+ ldr x8, [x29,96]
+ beq .L2584
+.L2565:
+ add w21, w21, 1
+ uxth w21, w21
+ b .L2572
+.L2589:
+ add w26, w26, 1
+ uxth w26, w26
+ b .L2573
+.L2588:
+ add w20, w20, 1
+ uxth w20, w20
+ b .L2563
+.L2584:
+.L2569:
+ adrp x0, .LC191
+ mov w4, w21
+ mov w2, w20
+ mov w3, w26
+ mov w1, w23
+ mov w25, w20
+ add x0, x0, :lo12:.LC191
+ add x20, x22, :lo12:.LANCHOR0
+ adrp x21, .LC192
+ bl printk
+ add x21, x21, :lo12:.LC192
+ ldrb w2, [x20,2832]
+ mov w1, 0
+ ldr x0, [x19,8]
+ lsl w2, w2, 9
+ bl ftl_memset
+ ldrb w2, [x20,2832]
+ mov w1, 0
+ ldr x0, [x19,24]
+ lsl w2, w2, 1
+ bl ftl_memset
+.L2574:
+ add x0, x22, :lo12:.LANCHOR0
+ ldrh w0, [x0,3300]
+ cmp w0, w25
+ bls .L2579
+ lsl w26, w25, 1
+ mov w20, 0
+.L2580:
+ ldrb w0, [x24,9]
+ cmp w0, w20
+ bls .L2590
+ mov w1, w25
+ mov x0, x21
+ mov w2, w20
+ bl printk
+ add x4, x22, :lo12:.LANCHOR0
+ sxtw x3, w20
+ ldrb w5, [x4,3272]
+ ldrh w1, [x4,3348]
+ cbz w5, .L2575
+ add x3, x3, 8
+ ldrh w0, [x24,x3,lsl 1]
+ mul w1, w0, w1
+ mov x0, x19
+ orr w1, w1, w25
+ str w1, [x19,40]
+ bl sblk_3d_tlc_dump_prog
+ b .L2576
+.L2575:
+ add x3, x3, 8
+ ldrb w0, [x4,3257]
+ cmp w0, 2
+ ldrh w0, [x24,x3,lsl 1]
+ mul w1, w0, w1
+ bne .L2577
+ orr w1, w1, w26
+ mov x0, x19
+ orr w1, w1, 33554432
+ str w1, [x19,40]
+ bl sblk_mlc_dump_prog
+ b .L2576
+.L2577:
+ orr w1, w1, w25
+ ldr x2, [x19,8]
+ ldr x3, [x19,24]
+ ubfx x0, x1, 21, 3
+ ldrb w4, [x4,2832]
+ str w1, [x19,40]
+ and w1, w1, -14680065
+ bl flash_prog_page_en
+.L2576:
+ add w20, w20, 1
+ uxth w20, w20
+ b .L2580
+.L2590:
+ add w25, w25, 1
+ uxth w25, w25
+ b .L2574
+.L2579:
+ mov x0, x19
+ bl buf_free
+ adrp x0, .LC193
+ mov w1, w23
+ add x0, x0, :lo12:.LC193
+ bl printk
+.L2559:
+ sub sp, x29, #48
+ ldp x19, x20, [sp,64]
+ ldp x21, x22, [sp,80]
+ ldp x23, x24, [sp,96]
+ ldp x25, x26, [sp,112]
+ ldp x27, x28, [sp,128]
+ ldp x29, x30, [sp,48]
+ add sp, sp, 208
+ ret
+ .size ftl_dump_write_open_sblk, .-ftl_dump_write_open_sblk
+ .align 2
.global flash_info_flush
.type flash_info_flush, %function
flash_info_flush:
adrp x0, .LANCHOR2
- stp x29, x30, [sp, -96]!
+ stp x29, x30, [sp, -112]!
add x29, sp, 0
ldr w0, [x0,#:lo12:.LANCHOR2]
stp x19, x20, [sp,16]
@@ -15255,31 +16118,32 @@ flash_info_flush:
stp x23, x24, [sp,48]
stp x25, x26, [sp,64]
stp x27, x28, [sp,80]
- tbz x0, 12, .L2493
+ tbz x0, 12, .L2592
adrp x2, .LANCHOR3
- adrp x0, .LC127
+ adrp x0, .LC130
add x2, x2, :lo12:.LANCHOR3
- add x0, x0, :lo12:.LC127
- mov w1, 250
- add x2, x2, 512
+ add x0, x0, :lo12:.LC130
+ mov w1, 324
+ add x2, x2, 520
bl printk
-.L2493:
- adrp x22, .LANCHOR4
+.L2592:
+ adrp x22, .LANCHOR7
adrp x23, .LANCHOR0
- add x0, x22, :lo12:.LANCHOR4
+ add x0, x22, :lo12:.LANCHOR7
mov w1, 0
mov w2, 64
add x19, x23, :lo12:.LANCHOR0
- adrp x24, .LC184
- adrp x25, .LC185
- ldr x0, [x0,1232]
+ adrp x24, .LC195
+ adrp x25, .LC196
+ ldr x0, [x0,-112]
mov w26, 0
- add x24, x24, :lo12:.LC184
- add x25, x25, :lo12:.LC185
+ add x24, x24, :lo12:.LC195
+ adrp x27, .LANCHOR4
+ add x25, x25, :lo12:.LC196
bl ftl_memset
ldr x1, [x19,728]
- adrp x0, .LC183
- add x0, x0, :lo12:.LC183
+ adrp x0, .LC194
+ add x0, x0, :lo12:.LC194
mov w2, 4
mov w3, 16
bl rknand_print_hex
@@ -15288,90 +16152,258 @@ flash_info_flush:
ldr w1, [x19,8]
bl js_hash
str w0, [x19,12]
-.L2494:
- add x21, x22, :lo12:.LANCHOR4
- add x27, x23, :lo12:.LANCHOR0
+.L2593:
+ add x21, x22, :lo12:.LANCHOR7
+ add x28, x23, :lo12:.LANCHOR0
mov x0, x24
- ldrb w20, [x21,1240]
- ldrh w19, [x21,1242]
+ ldrb w20, [x21,-104]
+ ldrh w19, [x21,-102]
+ ldrh w3, [x28,2]
mov w1, w20
- ldrh w28, [x27,2]
mov w2, w19
+ str x3, [x29,104]
bl printk
- ldrh w1, [x21,1092]
- ldrh w0, [x21,1242]
+ add x1, x27, :lo12:.LANCHOR4
+ ldrh w0, [x21,-102]
+ ldr x3, [x29,104]
+ ldrh w1, [x1,1084]
sub w1, w1, #1
cmp w0, w1
- blt .L2495
- ldr x1, [x27,728]
- ldrb w19, [x21,1241]
- strh wzr, [x21,1242]
+ blt .L2594
+ ldr x1, [x28,728]
+ strh wzr, [x21,-102]
ldr w0, [x1,4]
add w0, w0, 1
str w0, [x1,4]
- ldrb w0, [x21,1240]
- ldr x20, [x27,728]
- strb w0, [x21,1241]
- mov x0, x20
- strb w19, [x21,1240]
- ldrh w1, [x20,16]
+ ldrb w0, [x21,-104]
+ ldr x19, [x28,728]
+ ldrb w1, [x21,-103]
+ strb w0, [x21,-103]
+ mov x0, x19
+ strb w1, [x21,-104]
+ ldrh w1, [x19,16]
add w1, w1, 1
strh w1, [x0,16]!
- ldr w1, [x20,8]
+ ldr w1, [x19,8]
bl js_hash
- str w0, [x20,12]
- ldrh w0, [x27,2]
- mul w19, w19, w0
+ str w0, [x19,12]
+ ldrb w1, [x21,-104]
mov w0, 0
- b .L2503
-.L2495:
- madd w19, w20, w28, w19
- cbnz w0, .L2496
-.L2503:
+ ldrh w19, [x28,2]
+ mul w19, w1, w19
+ b .L2602
+.L2594:
+ madd w19, w20, w3, w19
+ cbnz w0, .L2595
+.L2602:
mov w1, w19
bl flash_erase_block
-.L2496:
+.L2595:
add x2, x23, :lo12:.LANCHOR0
- add x20, x22, :lo12:.LANCHOR4
+ add x20, x22, :lo12:.LANCHOR7
mov w4, 4
mov w5, 1
ldr x1, [x2,728]
- ldr x0, [x20,1232]
+ ldr x0, [x20,-112]
ldr w1, [x1,4]
str w1, [x0]
mov w0, 21321
movk w0, 0x5359, lsl 16
- ldr x1, [x20,1232]
+ ldr x1, [x20,-112]
str w0, [x1,4]
mov w1, w19
mov w0, 0
ldr x2, [x2,728]
- ldr x3, [x20,1232]
+ ldr x3, [x20,-112]
bl flash_prog_page_en
cmn w0, #1
- ldrh w1, [x20,1242]
+ ldrh w1, [x20,-102]
add w1, w1, 1
- strh w1, [x20,1242]
- bne .L2497
+ strh w1, [x20,-102]
+ bne .L2596
mov x0, x25
mov w1, w19
bl printk
- b .L2494
-.L2497:
- cbnz w26, .L2504
+ b .L2593
+.L2596:
+ cbnz w26, .L2603
mov w26, 1
- b .L2494
-.L2504:
+ b .L2593
+.L2603:
mov w0, 0
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
ldp x25, x26, [sp,64]
ldp x27, x28, [sp,80]
- ldp x29, x30, [sp], 96
+ ldp x29, x30, [sp], 112
ret
.size flash_info_flush, .-flash_info_flush
.align 2
+ .global flash_info_blk_init
+ .type flash_info_blk_init, %function
+flash_info_blk_init:
+ adrp x0, .LANCHOR2
+ stp x29, x30, [sp, -80]!
+ add x29, sp, 0
+ ldr w0, [x0,#:lo12:.LANCHOR2]
+ stp x19, x20, [sp,16]
+ stp x21, x22, [sp,32]
+ stp x23, x24, [sp,48]
+ str x25, [sp,64]
+ adrp x20, .LANCHOR0
+ tbz x0, 12, .L2605
+ add x4, x20, :lo12:.LANCHOR0
+ adrp x2, .LANCHOR3
+ adrp x0, .LC197
+ add x2, x2, :lo12:.LANCHOR3
+ add x0, x0, :lo12:.LC197
+ mov w1, 50
+ ldr x4, [x4,728]
+ add x2, x2, 544
+ mov w3, 2048
+ bl printk
+.L2605:
+ mov w23, 4
+ adrp x24, .LANCHOR7
+.L2608:
+ add x19, x20, :lo12:.LANCHOR0
+ add x21, x24, :lo12:.LANCHOR7
+ mov w0, 0
+ mov w4, 4
+ adrp x22, .LANCHOR7
+ ldrh w1, [x19,2]
+ ldr x2, [x19,728]
+ ldr x3, [x21,-112]
+ mul w1, w23, w1
+ bl flash_read_page_en
+ cmn w0, #1
+ beq .L2606
+ ldr x2, [x19,728]
+ mov w0, 21321
+ movk w0, 0x5359, lsl 16
+ ldr w1, [x2]
+ cmp w1, w0
+ beq .L2607
+.L2606:
+ add w23, w23, 1
+ cmp w23, 16
+ bne .L2608
+.L2633:
+ mov w0, -1
+ b .L2632
+.L2607:
+ ldrb w1, [x2,36]
+ mov w4, 4
+ ldrh w3, [x19,2]
+ strb w1, [x21,-104]
+ ldrb w0, [x2,37]
+ mul w1, w1, w3
+ ldr x3, [x21,-112]
+ strb w0, [x21,-103]
+ mov w0, 0
+ mov w21, 0
+ bl flash_read_page_en
+ cmn w0, #1
+ beq .L2610
+ ldr x0, [x19,728]
+ mov w1, 21321
+ movk w1, 0x5359, lsl 16
+ mov w21, 0
+ ldr w2, [x0]
+ cmp w2, w1
+ bne .L2610
+ ldr w21, [x0,4]
+.L2610:
+ add x19, x22, :lo12:.LANCHOR7
+ add x23, x20, :lo12:.LANCHOR0
+ mov w0, 0
+ mov w4, 4
+ ldrb w2, [x19,-103]
+ ldrh w1, [x23,2]
+ ldr x3, [x19,-112]
+ mul w1, w2, w1
+ ldr x2, [x23,728]
+ bl flash_read_page_en
+ cmn w0, #1
+ beq .L2611
+ ldr x0, [x23,728]
+ mov w1, 21321
+ movk w1, 0x5359, lsl 16
+ ldr w2, [x0]
+ cmp w2, w1
+ bne .L2611
+ ldr w1, [x0,4]
+ cmp w21, w1
+ bcs .L2611
+ ldrb w1, [x0,37]
+ ldrb w0, [x0,36]
+ strb w1, [x19,-104]
+ strb w0, [x19,-103]
+.L2611:
+ add x19, x22, :lo12:.LANCHOR7
+ add x21, x20, :lo12:.LANCHOR0
+ mov w0, 0
+ mov w4, 4
+ ldrb w1, [x19,-104]
+ ldr x2, [x21,728]
+ ldr x3, [x19,-112]
+ bl flash_get_last_written_page
+ ldrh w23, [x21,2]
+ ldrb w1, [x19,-104]
+ uxth w24, w0
+ add w0, w24, 1
+ mov w21, 0
+ strh w0, [x19,-102]
+ mul w23, w1, w23
+.L2612:
+ sub w19, w24, w21
+ sxth w19, w19
+ tbnz w19, #31, .L2634
+ add x25, x20, :lo12:.LANCHOR0
+ add x3, x22, :lo12:.LANCHOR7
+ mov w0, 0
+ add w1, w19, w23
+ mov w4, 4
+ ldr x2, [x25,728]
+ ldr x3, [x3,-112]
+ bl flash_read_page_en
+ cmn w0, #1
+ beq .L2613
+ ldr x0, [x25,728]
+ ldr w1, [x0]
+ mov w0, 21321
+ movk w0, 0x5359, lsl 16
+ cmp w1, w0
+ beq .L2614
+.L2613:
+ add w21, w21, 1
+ b .L2612
+.L2634:
+ cmn w19, #1
+ bne .L2614
+ add x20, x20, :lo12:.LANCHOR0
+ adrp x0, .LC198
+ add x0, x0, :lo12:.LC198
+ ldr x1, [x20,728]
+ ldr w1, [x1]
+ bl printk
+ b .L2633
+.L2614:
+ cmp w21, 1
+ mov w0, 0
+ bls .L2632
+ bl flash_info_flush
+ mov w0, 0
+.L2632:
+ ldp x19, x20, [sp,16]
+ ldp x21, x22, [sp,32]
+ ldp x23, x24, [sp,48]
+ ldr x25, [sp,64]
+ ldp x29, x30, [sp], 80
+ ret
+ .size flash_info_blk_init, .-flash_info_blk_init
+ .align 2
.global nand_flash_init
.type nand_flash_init, %function
nand_flash_init:
@@ -15384,22 +16416,22 @@ nand_flash_init:
stp x23, x24, [sp,48]
ldr w0, [x20,#:lo12:.LANCHOR2]
str x25, [sp,64]
- tbz x0, 12, .L2506
+ tbz x0, 12, .L2636
adrp x2, .LANCHOR3
- adrp x0, .LC127
+ adrp x0, .LC130
add x2, x2, :lo12:.LANCHOR3
- add x0, x0, :lo12:.LC127
- mov w1, 2258
- add x2, x2, 536
+ add x0, x0, :lo12:.LC130
+ mov w1, 2459
+ add x2, x2, 568
bl printk
-.L2506:
+.L2636:
adrp x21, .LANCHOR4
mov x0, x19
add x23, x21, :lo12:.LANCHOR4
adrp x19, .LANCHOR0
add x22, x19, :lo12:.LANCHOR0
mov w25, 44
- str wzr, [x23,1220]
+ str wzr, [x23,1212]
bl nandc_init
add x1, x20, :lo12:.LANCHOR2
mov w0, 1
@@ -15412,78 +16444,78 @@ nand_flash_init:
add x22, x22, 748
bl ftl_memset
mov x24, x22
- add x0, x23, 1096
+ add x0, x23, 1088
mov w1, 0
mov w2, 32
mov w23, 0
bl ftl_memset
-.L2512:
+.L2642:
mov w0, w23
mov x1, x22
bl flash_read_id
- cbnz w23, .L2507
+ cbnz w23, .L2637
ldrb w0, [x24]
sub w0, w0, #1
uxtb w0, w0
cmp w0, 253
- bls .L2508
-.L2510:
+ bls .L2638
+.L2640:
mov w22, -2
- b .L2579
-.L2508:
+ b .L2712
+.L2638:
ldrb w0, [x24,1]
cmp w0, 255
- beq .L2510
-.L2507:
+ beq .L2640
+.L2637:
ldrb w0, [x22]
cmp w0, 181
- bne .L2511
+ bne .L2641
strb w25, [x22]
-.L2511:
+.L2641:
add w23, w23, 1
add x22, x22, 8
uxtb w23, w23
cmp w23, 4
- bne .L2512
+ bne .L2642
add x23, x20, :lo12:.LANCHOR2
add x24, x19, :lo12:.LANCHOR0
add x23, x23, 440
mov w22, 0
add x24, x24, 748
-.L2515:
+.L2645:
ldrb w2, [x23]
add x0, x23, 1
mov x1, x24
bl flash_mem_cmp8
- cbnz w0, .L2513
+ cbnz w0, .L2643
add x1, x20, :lo12:.LANCHOR2
ubfiz x22, x22, 5, 32
add x0, x1, 440
adds x22, x0, x22
- beq .L2510
+ beq .L2640
ldrb w3, [x22,22]
mov x0, 0
- b .L2517
-.L2513:
+ b .L2647
+.L2643:
add w22, w22, 1
add x23, x23, 32
- cmp w22, 36
- bne .L2515
- b .L2510
-.L2517:
+ cmp w22, 38
+ bne .L2645
+ b .L2640
+.L2647:
add x4, x1, x0, lsl 5
mov w2, w0
- ldrb w4, [x4,1592]
+ ldrb w4, [x4,1656]
cmp w4, w3
- beq .L2516
+ beq .L2646
add x0, x0, 1
cmp x0, 4
- bne .L2517
+ bne .L2647
mov w2, w0
-.L2516:
+.L2646:
add x23, x20, :lo12:.LANCHOR2
add x24, x19, :lo12:.LANCHOR0
- add x1, x23, 1592
+ add x1, x23, 1656
ubfiz x2, x2, 5, 32
add x1, x1, x2
add x0, x24, 640
@@ -15496,262 +16528,280 @@ nand_flash_init:
bl ftl_memcpy
ldrb w0, [x24,516]
cmp w0, 8
- bhi .L2518
+ bhi .L2648
ldrb w1, [x23,20]
cmp w1, 60
- bls .L2519
+ bls .L2649
mov w1, 60
strb w1, [x23,20]
-.L2519:
+.L2649:
cmp w0, 8
- bne .L2518
+ bne .L2648
add x0, x19, :lo12:.LANCHOR0
ldrb w0, [x0,748]
cmp w0, 137
- beq .L2543
+ beq .L2678
cmp w0, 44
- beq .L2543
-.L2518:
+ beq .L2678
+.L2648:
ldr w0, [x20,#:lo12:.LANCHOR2]
- tbz x0, 12, .L2521
+ tbz x0, 12, .L2651
adrp x2, .LANCHOR3
- adrp x0, .LC127
+ adrp x0, .LC130
add x2, x2, :lo12:.LANCHOR3
- add x0, x0, :lo12:.LC127
- mov w1, 2283
- add x2, x2, 536
+ add x0, x0, :lo12:.LC130
+ mov w1, 2484
+ add x2, x2, 568
bl printk
-.L2521:
- add x23, x21, :lo12:.LANCHOR4
+.L2651:
+ add x24, x21, :lo12:.LANCHOR4
mov w0, 16384
add x22, x19, :lo12:.LANCHOR0
- add x24, x20, :lo12:.LANCHOR2
+ adrp x23, .LANCHOR7
bl ftl_malloc
- str x0, [x23,1248]
+ add x25, x20, :lo12:.LANCHOR2
+ str x0, [x24,1224]
mov w0, 16384
bl ftl_malloc
- str x0, [x23,1192]
+ str x0, [x24,1184]
mov w0, 2048
bl ftl_malloc
str x0, [x22,728]
mov w0, 64
bl ftl_malloc
- str x0, [x23,1256]
+ str x0, [x24,1232]
mov w0, 64
bl ftl_malloc
- str x0, [x23,1208]
+ str x0, [x24,1200]
mov w0, 64
bl ftl_malloc
- str x0, [x23,1232]
- adrp x0, .LANCHOR7-119
- strb wzr, [x0,#:lo12:.LANCHOR7-119]
+ add x1, x23, :lo12:.LANCHOR7
+ str x0, [x1,-112]
+ strb wzr, [x1,-100]
bl flash_die_info_init
- ldrb w0, [x24,26]
+ ldrb w0, [x25,26]
bl flash_lsb_page_tbl_build
- ldrb w0, [x24,28]
+ ldrb w0, [x25,28]
bl nandc_bch_sel
- str xzr, [x23,1224]
+ str xzr, [x24,1216]
ldr x1, [x22,624]
ldrh w0, [x1,16]
+ ldrb w1, [x1,28]
ubfx x2, x0, 8, 3
strb w2, [x22,780]
ubfx x2, x0, 3, 1
- strb w2, [x23,1265]
+ strb w2, [x24,1240]
ubfx x2, x0, 4, 1
strb w2, [x22,781]
ubfx x2, x0, 12, 1
strb w2, [x22,3272]
ubfx x2, x0, 13, 1
- ubfx x0, x0, 14, 1
- strb w0, [x22,1]
- ldrb w0, [x1,28]
- mov w1, 60
- strb w1, [x22,632]
- ldrb w1, [x22,516]
- strb w2, [x22,3348]
- strb w0, [x19,#:lo12:.LANCHOR0]
+ strb w2, [x22,3258]
+ ubfx x2, x0, 14, 1
+ lsr w0, w0, 15
+ strb w0, [x22,3259]
+ mov w0, 60
+ strb w0, [x22,632]
+ ldrb w0, [x22,516]
+ strb w2, [x22,1]
+ strb w1, [x19,#:lo12:.LANCHOR0]
+ cmp w0, 9
+ bne .L2652
+ mov w0, 70
+ strb w0, [x22,632]
+.L2652:
+ add x0, x19, :lo12:.LANCHOR0
+ strb w1, [x0,782]
+ add x1, x20, :lo12:.LANCHOR2
+ ldrb w1, [x1,15]
cmp w1, 9
- bne .L2522
- mov w1, 70
- strb w1, [x22,632]
-.L2522:
- add x2, x20, :lo12:.LANCHOR2
- add x1, x21, :lo12:.LANCHOR4
- add x2, x2, 8
- add x3, x19, :lo12:.LANCHOR0
- strb w0, [x1,1264]
- ldrb w0, [x2,19]
- ldrh w2, [x2,16]
- strb w0, [x3,725]
- tbz x2, 6, .L2523
- sub w2, w0, #17
- uxtb w2, w2
- cmp w2, 2
- bhi .L2524
- adrp x0, micron_read_retrial
- add x0, x0, :lo12:micron_read_retrial
- str x0, [x1,1224]
- mov w0, 15
- b .L2581
-.L2524:
- sub w2, w0, #65
- uxtb w2, w2
- cmp w2, 1
- bls .L2544
+ bne .L2653
+ strb wzr, [x0,782]
+.L2653:
+ add x1, x20, :lo12:.LANCHOR2
+ add x2, x19, :lo12:.LANCHOR0
+ add x1, x1, 8
+ ldrb w0, [x1,19]
+ ldrh w1, [x1,16]
+ strb w0, [x2,725]
+ tbz x1, 6, .L2655
+ sub w1, w0, #17
+ cmp w0, 21
+ cset w2, eq
+ uxtb w1, w1
+ cmp w1, 2
+ bls .L2679
+ cbz w2, .L2656
+.L2679:
+ add x0, x21, :lo12:.LANCHOR4
+ adrp x1, micron_read_retrial
+ add x1, x1, :lo12:micron_read_retrial
+ str x1, [x0,1216]
+ mov w1, 15
+ cbz w2, .L2714
+ mov w1, 4
+ b .L2714
+.L2656:
+ sub w1, w0, #65
+ uxtb w1, w1
+ cmp w1, 1
+ bls .L2680
cmp w0, 33
- bne .L2525
-.L2544:
+ bne .L2660
+.L2680:
add x0, x21, :lo12:.LANCHOR4
adrp x1, toshiba_read_retrial
add x1, x1, :lo12:toshiba_read_retrial
mov w2, 4
- str x1, [x0,1224]
+ str x1, [x0,1216]
add x1, x19, :lo12:.LANCHOR0
strb w2, [x1,726]
- mov w1, 7
- strb w1, [x0,1216]
- b .L2523
-.L2525:
- sub w2, w0, #67
- uxtb w2, w2
- cmp w2, 1
- sub w2, w0, #34
- cset w3, ls
- uxtb w2, w2
- cmp w2, 1
- bls .L2545
- cbz w3, .L2527
-.L2545:
- add x2, x21, :lo12:.LANCHOR4
+ b .L2716
+.L2660:
+ sub w1, w0, #67
+ uxtb w1, w1
+ cmp w1, 1
+ sub w1, w0, #34
+ cset w2, ls
+ uxtb w1, w1
+ cmp w1, 1
+ bls .L2681
+ cbz w2, .L2662
+.L2681:
+ add x3, x21, :lo12:.LANCHOR4
adrp x1, toshiba_read_retrial
add x1, x1, :lo12:toshiba_read_retrial
cmp w0, 35
- str x1, [x2,1224]
- beq .L2529
+ str x1, [x3,1216]
+ beq .L2664
cmp w0, 68
- beq .L2529
+ beq .L2664
mov w0, 7
- strb w0, [x2,1216]
- b .L2530
-.L2529:
+ strb w0, [x3,1208]
+ b .L2665
+.L2664:
add x0, x21, :lo12:.LANCHOR4
mov w1, 17
- strb w1, [x0,1216]
-.L2530:
+ strb w1, [x0,1208]
+.L2665:
add x0, x19, :lo12:.LANCHOR0
mov w1, 4
- cbnz w3, .L2582
+ cbnz w2, .L2715
mov w1, 5
-.L2582:
+.L2715:
strb w1, [x0,726]
- b .L2523
-.L2527:
+ b .L2655
+.L2662:
sub w0, w0, #36
uxtb w0, w0
cmp w0, 1
- bhi .L2523
- adrp x0, toshiba_3d_read_retrial
- add x0, x0, :lo12:toshiba_3d_read_retrial
- str x0, [x1,1224]
- mov w0, 7
-.L2581:
- strb w0, [x1,1216]
-.L2523:
+ bhi .L2655
+ add x0, x21, :lo12:.LANCHOR4
+ adrp x1, toshiba_3d_read_retrial
+ add x1, x1, :lo12:toshiba_3d_read_retrial
+ str x1, [x0,1216]
+.L2716:
+ mov w1, 7
+.L2714:
+ strb w1, [x0,1208]
+.L2655:
ldr w0, [x20,#:lo12:.LANCHOR2]
- tbz x0, 12, .L2532
+ tbz x0, 12, .L2667
adrp x2, .LANCHOR3
- adrp x0, .LC127
+ adrp x0, .LC130
add x2, x2, :lo12:.LANCHOR3
- add x0, x0, :lo12:.LC127
- mov w1, 2331
- add x2, x2, 536
+ add x0, x0, :lo12:.LC130
+ mov w1, 2537
+ add x2, x2, 568
bl printk
-.L2532:
+.L2667:
add x0, x19, :lo12:.LANCHOR0
strb wzr, [x0,672]
ldrb w0, [x0,780]
- tbz x0, 0, .L2533
+ tbz x0, 0, .L2668
mov w0, 4
bl nandc_set_if_mode
mov w0, 1
bl flash_set_interface_mode
mov w0, 1
- b .L2583
-.L2533:
+ b .L2717
+.L2668:
mov w0, 4
-.L2583:
+.L2717:
bl nandc_set_if_mode
bl flash_info_blk_init
cmn w0, #1
mov w22, w0
- bne .L2535
+ bne .L2670
ldr w0, [x20,#:lo12:.LANCHOR2]
- tbz x0, 12, .L2536
+ tbz x0, 12, .L2671
adrp x2, .LANCHOR3
- adrp x0, .LC127
+ adrp x0, .LC130
add x2, x2, :lo12:.LANCHOR3
- add x0, x0, :lo12:.LC127
- mov w1, 2352
- add x2, x2, 536
+ add x0, x0, :lo12:.LC130
+ mov w1, 2568
+ add x2, x2, 568
bl printk
-.L2536:
+.L2671:
add x19, x19, :lo12:.LANCHOR0
mov w1, 17
ldr x0, [x19,728]
strb w1, [x0,32]
- b .L2579
-.L2535:
+ mov w0, 0
+ bl zftl_flash_exit_slc_mode
+ b .L2712
+.L2670:
add x0, x19, :lo12:.LANCHOR0
ldrb w0, [x0,725]
sub w0, w0, #1
uxtb w0, w0
- cmp w0, 6
- bhi .L2537
- add x0, x21, :lo12:.LANCHOR4
- adrp x1, hynix_read_retrial
- add x1, x1, :lo12:hynix_read_retrial
- str x1, [x0,1224]
-.L2537:
+ cmp w0, 7
+ bhi .L2672
+ add x21, x21, :lo12:.LANCHOR4
+ adrp x0, hynix_read_retrial
+ add x0, x0, :lo12:hynix_read_retrial
+ str x0, [x21,1216]
+.L2672:
add x19, x19, :lo12:.LANCHOR0
ldrb w0, [x19,780]
- tbz x0, 2, .L2539
+ tbz x0, 2, .L2674
ldr x0, [x19,728]
ldrb w0, [x0,19]
- cbz w0, .L2539
- add x21, x21, :lo12:.LANCHOR4
+ cbz w0, .L2674
+ add x23, x23, :lo12:.LANCHOR7
ldrh w1, [x19,2]
mov w0, 0
- ldrb w2, [x21,1240]
+ ldrb w2, [x23,-104]
mul w1, w2, w1
bl flash_ddr_para_scan
ldrb w0, [x19,672]
- cbnz w0, .L2539
+ cbnz w0, .L2674
ldr x1, [x19,728]
strb w0, [x1,19]
bl flash_info_flush
-.L2539:
+.L2674:
ldr w0, [x20,#:lo12:.LANCHOR2]
- tbz x0, 12, .L2541
+ tbz x0, 12, .L2676
adrp x2, .LANCHOR3
- adrp x0, .LC127
+ adrp x0, .LC130
add x2, x2, :lo12:.LANCHOR3
- add x0, x0, :lo12:.LC127
- mov w1, 2409
- add x2, x2, 536
+ add x0, x0, :lo12:.LC130
+ mov w1, 2634
+ add x2, x2, 568
bl printk
-.L2541:
+.L2676:
bl nand_flash_print_info
mov w22, 0
- b .L2579
-.L2543:
+ b .L2712
+.L2678:
add x0, x20, :lo12:.LANCHOR2
add x0, x0, 8
ldrb w1, [x0,28]
cmp w1, 3
- bne .L2518
+ bne .L2648
strb wzr, [x0,28]
- b .L2518
-.L2579:
+ b .L2648
+.L2712:
mov w0, w22
ldr x25, [sp,64]
ldp x19, x20, [sp,16]
@@ -15777,20 +16827,20 @@ ftl_sysblk_dump:
bl buf_alloc
ldr x24, [x0,8]
mov w20, 0
- adrp x22, .LC186
- adrp x23, .LC187
+ adrp x22, .LC190
+ adrp x23, .LC199
mov x27, x0
mov w19, w20
adrp x28, .LANCHOR0
- add x22, x22, :lo12:.LC186
- add x23, x23, :lo12:.LC187
+ add x22, x22, :lo12:.LC190
+ add x23, x23, :lo12:.LC199
add x24, x24, 704
-.L2585:
+.L2719:
add x3, x28, :lo12:.LANCHOR0
ldrh w1, [x3,3300]
cmp w1, w19
- bls .L2597
- ldrh w21, [x3,3350]
+ bls .L2731
+ ldrh w21, [x3,3348]
ldr x1, [x27,8]
ldr x2, [x27,24]
madd w21, w25, w21, w19
@@ -15825,28 +16875,28 @@ ftl_sysblk_dump:
mov w3, 32
bl rknand_print_hex
cmp w26, 512
- beq .L2590
+ beq .L2724
cmn w26, #1
- bne .L2586
-.L2590:
+ bne .L2720
+.L2724:
mov w20, 1
-.L2586:
+.L2720:
add w19, w19, 1
uxth w19, w19
- b .L2585
-.L2597:
+ b .L2719
+.L2731:
mov x0, x27
bl buf_free
- cbz w20, .L2589
+ cbz w20, .L2723
adrp x1, .LANCHOR3
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR3
mov w2, 1338
- add x1, x1, 552
+ add x1, x1, 584
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L2589:
+.L2723:
sub sp, x29, #48
mov w0, w20
ldp x19, x20, [sp,64]
@@ -15863,31 +16913,31 @@ ftl_sysblk_dump:
.type dump_ftl_info, %function
dump_ftl_info:
stp x29, x30, [sp, -32]!
- adrp x0, .LC188
+ adrp x0, .LC200
add x29, sp, 0
str x19, [sp,16]
adrp x19, .LANCHOR0
add x19, x19, :lo12:.LANCHOR0
- add x0, x0, :lo12:.LC188
+ add x0, x0, :lo12:.LC200
ldrb w1, [x19,2834]
bl printk
adrp x3, .LANCHOR4
- adrp x0, .LC189
+ adrp x0, .LC201
add x3, x3, :lo12:.LANCHOR4
- add x0, x0, :lo12:.LC189
+ add x0, x0, :lo12:.LC201
ldrb w1, [x3,1536]
ldrb w2, [x3,1537]
ldrh w3, [x3,1538]
bl printk
ldr x2, [x19,2864]
- adrp x0, .LC190
- add x0, x0, :lo12:.LC190
+ adrp x0, .LC202
+ add x0, x0, :lo12:.LC202
ldrh w1, [x2,130]
ldrh w2, [x2,140]
bl printk
ldr x1, [x19,608]
- adrp x0, .LC191
- add x0, x0, :lo12:.LC191
+ adrp x0, .LC203
+ add x0, x0, :lo12:.LC203
add x5, x1, 16
ldrh w1, [x1,16]
ldrh w2, [x5,2]
@@ -15896,8 +16946,8 @@ dump_ftl_info:
ldrh w5, [x5,10]
bl printk
ldr x1, [x19,608]
- adrp x0, .LC192
- add x0, x0, :lo12:.LC192
+ adrp x0, .LC204
+ add x0, x0, :lo12:.LC204
add x5, x1, 48
ldrh w1, [x1,48]
ldrh w2, [x5,2]
@@ -15906,8 +16956,8 @@ dump_ftl_info:
ldrh w5, [x5,10]
bl printk
ldr x1, [x19,608]
- adrp x0, .LC193
- add x0, x0, :lo12:.LC193
+ adrp x0, .LC205
+ add x0, x0, :lo12:.LC205
add x5, x1, 80
ldrh w1, [x1,80]
ldrh w4, [x5,6]
@@ -15918,44 +16968,44 @@ dump_ftl_info:
ldrh w0, [x19,3300]
mov w2, 4
ldrb w3, [x19,3276]
- ldr x1, [x19,3872]
+ ldr x1, [x19,3864]
mul w3, w0, w3
- adrp x0, .LC194
- add x0, x0, :lo12:.LC194
+ adrp x0, .LC206
+ add x0, x0, :lo12:.LC206
lsl w3, w3, 1
bl rknand_print_hex
ldr x1, [x19,600]
- adrp x0, .LC195
+ adrp x0, .LC207
ldrh w3, [x19,576]
- add x0, x0, :lo12:.LC195
+ add x0, x0, :lo12:.LC207
mov w2, 2
bl rknand_print_hex
ldr x3, [x19,2864]
- adrp x0, .LC187
- add x0, x0, :lo12:.LC187
+ adrp x0, .LC199
+ add x0, x0, :lo12:.LC199
mov w2, 4
add x1, x3, 704
ldrh w3, [x3,698]
bl rknand_print_hex
ldr x1, [x19,584]
- adrp x0, .LC196
+ adrp x0, .LC208
ldrh w3, [x19,576]
- add x0, x0, :lo12:.LC196
+ add x0, x0, :lo12:.LC208
mov w2, 4
bl rknand_print_hex
- adrp x0, .LC197
- add x1, x19, 3360
- add x0, x0, :lo12:.LC197
+ adrp x0, .LC209
+ add x1, x19, 3352
+ add x0, x0, :lo12:.LC209
mov w2, 2
mov w3, 256
bl rknand_print_hex
ldrh w0, [x19,3300]
mov w2, 2
ldrb w3, [x19,3276]
- ldr x1, [x19,3880]
+ ldr x1, [x19,3872]
mul w3, w0, w3
- adrp x0, .LC198
- add x0, x0, :lo12:.LC198
+ adrp x0, .LC210
+ add x0, x0, :lo12:.LC210
lsl w3, w3, 1
bl rknand_print_hex
ldr x19, [sp,16]
@@ -15986,19 +17036,19 @@ pm_ppa_update_check:
ubfx x3, x3, 5, 3
cmp w3, 7
cset w4, eq
- cbnz w4, .L2603
+ cbnz w4, .L2737
cmp w3, w7
- bne .L2600
-.L2603:
+ bne .L2734
+.L2737:
mov w3, w2
mov w2, w1
mov x1, x0
- adrp x0, .LC199
- add x0, x0, :lo12:.LC199
+ adrp x0, .LC211
+ add x0, x0, :lo12:.LC211
bl printk
bl dump_ftl_info
mov w4, -1
-.L2600:
+.L2734:
mov w0, w4
ldp x29, x30, [sp], 16
ret
@@ -16014,65 +17064,65 @@ load_l2p_region:
stp x19, x20, [sp,16]
cmp w22, 31
uxth w20, w0
- bls .L2606
+ bls .L2740
adrp x1, .LANCHOR3
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR3
mov w2, 31
- add x1, x1, 568
+ add x1, x1, 600
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L2606:
+.L2740:
adrp x21, .LANCHOR0
adrp x19, .LANCHOR7
add x21, x21, :lo12:.LANCHOR0
ldr x0, [x21,2864]
ldrh w2, [x0,698]
cmp w20, w2
- bls .L2607
- adrp x0, .LC200
+ bls .L2741
+ adrp x0, .LC212
mov w1, w20
- add x0, x0, :lo12:.LC200
+ add x0, x0, :lo12:.LC212
add x19, x19, :lo12:.LANCHOR7
bl printk
mov x0, 0
- ldrh w2, [x19,-118]
+ ldrh w2, [x19,-98]
mov w1, 255
ldr x0, [x0,8]
bl ftl_memset
ldr x0, [x21,2864]
ldrh w0, [x0,698]
cmp w0, w20
- bcs .L2609
+ bcs .L2743
adrp x1, .LANCHOR3
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR3
add x0, x0, :lo12:.LC0
- add x1, x1, 568
+ add x1, x1, 600
mov w2, 35
- b .L2613
-.L2607:
+ b .L2747
+.L2741:
add x0, x0, x20, sxtw 2
sbfiz x22, x22, 4, 32
ldr w4, [x0,704]
- add x0, x21, 3904
+ add x0, x21, 3896
add x23, x0, x22
strh w20, [x0,x22]
strh wzr, [x23,2]
- cbnz w4, .L2610
- adrp x0, .LC201
+ cbnz w4, .L2744
+ adrp x0, .LC213
mov w1, w20
mov w2, w4
add x19, x19, :lo12:.LANCHOR7
- add x0, x0, :lo12:.LC201
+ add x0, x0, :lo12:.LC213
bl printk
ldr x0, [x23,8]
mov w1, 255
- ldrh w2, [x19,-118]
+ ldrh w2, [x19,-98]
bl ftl_memset
- b .L2609
-.L2610:
+ b .L2743
+.L2744:
add x22, x19, :lo12:.LANCHOR7
ldrb w3, [x21,2832]
ldr x1, [x23,8]
@@ -16085,47 +17135,47 @@ load_l2p_region:
ldr x4, [x29,72]
ldr w2, [x0]
cmp w2, w20
- beq .L2611
- adrp x0, .LC202
+ beq .L2745
+ adrp x0, .LC214
mov w1, w20
- add x0, x0, :lo12:.LC202
+ add x0, x0, :lo12:.LC214
bl printk
ldr x3, [x21,2864]
- adrp x0, .LC203
- add x0, x0, :lo12:.LC203
+ adrp x0, .LC215
+ add x0, x0, :lo12:.LC215
mov w2, 4
add x1, x3, 704
ldrh w3, [x3,698]
bl rknand_print_hex
ldrb w3, [x21,2832]
- adrp x0, .LC204
+ adrp x0, .LC216
ldr x1, [x23,8]
- add x0, x0, :lo12:.LC204
+ add x0, x0, :lo12:.LC216
mov w2, 4
lsl w3, w3, 7
bl rknand_print_hex
- adrp x0, .LC205
+ adrp x0, .LC217
ldr x1, [x22,-128]
- add x0, x0, :lo12:.LC205
+ add x0, x0, :lo12:.LC217
mov w2, 4
mov w3, 16
bl rknand_print_hex
-.L2611:
+.L2745:
add x19, x19, :lo12:.LANCHOR7
ldr x0, [x19,-128]
ldr w0, [x0]
cmp w0, w20
- beq .L2609
+ beq .L2743
adrp x1, .LANCHOR3
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR3
add x0, x0, :lo12:.LC0
- add x1, x1, 568
+ add x1, x1, 600
mov w2, 59
-.L2613:
+.L2747:
bl printk
bl dump_stack
-.L2609:
+.L2743:
mov w0, 0
ldr x23, [sp,48]
ldp x19, x20, [sp,16]
@@ -16149,27 +17199,27 @@ pm_gc:
add x19, x19, :lo12:.LANCHOR4
ldr x0, [x20,2864]
ldrh w1, [x0,688]
- ldrh w0, [x19,1164]
+ ldrh w0, [x19,1156]
sub w0, w0, #1
cmp w1, w0
- blt .L2616
+ blt .L2750
bl pm_free_sblk
ldr x2, [x20,2864]
- ldrh w1, [x19,1164]
+ ldrh w1, [x19,1156]
ldrh w3, [x2,688]
sub w1, w1, #1
cmp w3, w1
- blt .L2616
+ blt .L2750
add x0, x2, x0, uxth 1
ldrh w21, [x0,416]
mov w0, 65535
cmp w21, w0
- bne .L2618
+ bne .L2752
adrp x1, .LANCHOR3
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR3
mov w2, 131
- add x1, x1, 584
+ add x1, x1, 616
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
@@ -16177,38 +17227,38 @@ pm_gc:
ldr x1, [x20,2864]
add x0, x1, x0, uxth 1
ldrh w21, [x0,416]
-.L2618:
+.L2752:
bl pm_select_ram_region
uxth x20, w0
add x0, x23, :lo12:.LANCHOR0
lsl x1, x20, 4
- add x0, x0, 3904
+ add x0, x0, 3896
mov x22, x20
add x19, x0, x1
ldrh w0, [x0,x1]
mov w1, 65535
cmp w0, w1
- beq .L2619
+ beq .L2753
ldr x1, [x19,8]
- cbz x1, .L2619
+ cbz x1, .L2753
ldrsh w2, [x19,2]
- tbz w2, #31, .L2619
+ tbz w2, #31, .L2753
bl pm_write_page
ldrh w0, [x19,2]
and w0, w0, 32767
strh w0, [x19,2]
-.L2619:
+.L2753:
add x23, x23, :lo12:.LANCHOR0
mov w19, 0
- add x0, x23, 3904
+ add x0, x23, 3896
mov w24, 21
mov w25, 1
add x20, x0, x20, lsl 4
-.L2620:
+.L2754:
ldr x0, [x23,2864]
ldrh w1, [x0,698]
cmp w1, w19
- bls .L2626
+ bls .L2760
ldrh w1, [x23,3340]
add x0, x0, x19, sxtw 2
ldr w0, [x0,704]
@@ -16220,7 +17270,7 @@ pm_gc:
ldrb w0, [x23,3338]
udiv w1, w1, w0
cmp w21, w1, uxth
- bne .L2621
+ bne .L2755
mov w1, w22
mov w0, w19
bl load_l2p_region
@@ -16229,13 +17279,13 @@ pm_gc:
bl pm_write_page
mov w0, -1
strh w0, [x20]
-.L2621:
+.L2755:
add w19, w19, 1
uxth w19, w19
- b .L2620
-.L2626:
+ b .L2754
+.L2760:
bl pm_free_sblk
-.L2616:
+.L2750:
mov w0, 0
ldr x25, [sp,64]
ldp x19, x20, [sp,16]
@@ -16254,7 +17304,7 @@ pm_flush_id:
stp x19, x20, [sp,16]
adrp x19, .LANCHOR0
add x19, x19, :lo12:.LANCHOR0
- add x1, x19, 3904
+ add x1, x19, 3896
add x20, x1, x0
ldrh w0, [x1,x0]
ldr x1, [x20,8]
@@ -16262,11 +17312,11 @@ pm_flush_id:
ldrh w0, [x20,2]
and w0, w0, 32767
strh w0, [x20,2]
- ldr w0, [x19,3896]
- cbz w0, .L2628
+ ldr w0, [x19,3888]
+ cbz w0, .L2762
bl pm_gc
- str wzr, [x19,3896]
-.L2628:
+ str wzr, [x19,3888]
+.L2762:
mov w0, 0
ldp x19, x20, [sp,16]
ldp x29, x30, [sp], 32
@@ -16282,17 +17332,17 @@ pm_flush:
adrp x20, .LANCHOR0
mov x19, 0
add x20, x20, :lo12:.LANCHOR0
- add x20, x20, 3904
-.L2634:
+ add x20, x20, 3896
+.L2768:
add x1, x20, x19, lsl 4
uxth w0, w19
ldrsh w1, [x1,2]
- tbz w1, #31, .L2633
+ tbz w1, #31, .L2767
bl pm_flush_id
-.L2633:
+.L2767:
add x19, x19, 1
cmp x19, 32
- bne .L2634
+ bne .L2768
mov w0, 0
ldp x19, x20, [sp,16]
ldp x29, x30, [sp], 32
@@ -16343,31 +17393,31 @@ pm_init:
mov w0, 1
strb w0, [x22,-120]
mov w0, 64
- str wzr, [x20,3896]
- add x20, x20, 3904
+ str wzr, [x20,3888]
+ add x20, x20, 3896
bl ftl_malloc
mov w24, -1
str x0, [x22,-128]
add x22, x20, 512
-.L2640:
+.L2774:
strh w24, [x20]
strh wzr, [x20,2]
- cbz w23, .L2639
+ cbz w23, .L2773
add x0, x19, :lo12:.LANCHOR0
ldrb w0, [x0,2832]
lsl w0, w0, 9
bl ftl_malloc
str x0, [x20,8]
-.L2639:
+.L2773:
add x20, x20, 16
cmp x20, x22
- bne .L2640
+ bne .L2774
add x20, x19, :lo12:.LANCHOR0
add x21, x21, :lo12:.LANCHOR7
mov w4, 4
ldr x1, [x20,2864]
ldr x25, [x21,-128]
- ldr x23, [x20,3912]
+ ldr x23, [x20,3904]
ldrb w0, [x1,694]
mov x3, x25
ldrh w1, [x1,692]
@@ -16378,25 +17428,25 @@ pm_init:
mov w24, w21
ldrh w2, [x1,696]
cmp w2, w21
- bgt .L2641
- adrp x0, .LC206
+ bgt .L2775
+ adrp x0, .LC218
ldrh w1, [x1,692]
mov w3, w21
- add x0, x0, :lo12:.LC206
- adrp x26, .LC207
+ add x0, x0, :lo12:.LC218
+ adrp x26, .LC219
add w21, w21, 1
bl printk
- add x26, x26, :lo12:.LC207
+ add x26, x26, :lo12:.LC219
ldr x0, [x20,2864]
ldrsh w20, [x0,696]
-.L2642:
+.L2776:
cmp w20, w21
- bge .L2655
+ bge .L2789
add x27, x19, :lo12:.LANCHOR0
mov x2, x23
mov x3, x25
ldr x0, [x27,2864]
- ldrh w22, [x27,3350]
+ ldrh w22, [x27,3348]
ldrb w4, [x27,2832]
ldrh w1, [x0,692]
ldrb w0, [x0,694]
@@ -16414,21 +17464,21 @@ pm_init:
ldr w1, [x25]
bl printk
cmp w28, 512
- beq .L2643
+ beq .L2777
cmn w28, #1
- beq .L2643
+ beq .L2777
ldr x1, [x27,2864]
ldr w0, [x25]
ldrh w2, [x1,698]
cmp w0, w2
- bcs .L2643
+ bcs .L2777
add x0, x1, x0, uxtw 2
str w22, [x0,704]
-.L2643:
+.L2777:
add w20, w20, 1
sxth w20, w20
- b .L2642
-.L2655:
+ b .L2776
+.L2789:
adrp x0, .LANCHOR5+577
mov w1, 1
add w24, w24, 1
@@ -16437,18 +17487,18 @@ pm_init:
ldr x0, [x0,2864]
strh w24, [x0,696]
bl pm_free_sblk
-.L2641:
+.L2775:
add x19, x19, :lo12:.LANCHOR0
mov w0, -1
- ldr x1, [x19,3912]
+ ldr x1, [x19,3904]
bl pm_write_page
- ldr x1, [x19,3912]
+ ldr x1, [x19,3904]
mov w0, -1
bl pm_write_page
- ldr x1, [x19,3912]
+ ldr x1, [x19,3904]
mov w0, -1
bl pm_write_page
- ldr x1, [x19,3912]
+ ldr x1, [x19,3904]
mov w0, -1
bl pm_write_page
bl pm_free_sblk
@@ -16480,7 +17530,7 @@ pm_log2phys:
mov x19, 0
ldrb w4, [x3,2832]
ldr w2, [x3,2840]
- add x3, x3, 3904
+ add x3, x3, 3896
lsl w20, w4, 7
lsl w24, w4, 7
cmp w0, w2
@@ -16488,87 +17538,87 @@ pm_log2phys:
uxth w25, w20
msub w24, w25, w24, w0
uxth x24, w24
- bcc .L2669
- adrp x0, .LC208
+ bcc .L2803
+ adrp x0, .LC220
mov w1, w5
- add x0, x0, :lo12:.LC208
+ add x0, x0, :lo12:.LC220
bl printk
mov w0, -1
- cbnz w23, .L2658
+ cbnz w23, .L2792
str w0, [x22]
- b .L2658
-.L2673:
+ b .L2792
+.L2807:
ldrh w0, [x3]
cmp w0, w25
- beq .L2660
-.L2659:
+ beq .L2794
+.L2793:
add w19, w19, 1
add x3, x3, 16
uxth x19, w19
cmp w19, 32
- beq .L2672
-.L2669:
+ beq .L2806
+.L2803:
ldr x0, [x3,8]
- cbnz x0, .L2673
- b .L2659
-.L2672:
+ cbnz x0, .L2807
+ b .L2793
+.L2806:
bl pm_select_ram_region
uxth x19, w0
add x2, x21, :lo12:.LANCHOR0
sbfiz x3, x19, 4, 32
- add x2, x2, 3904
+ add x2, x2, 3896
mov w1, w0
add x4, x2, x3
ldrh w3, [x2,x3]
mov w2, 65535
cmp w3, w2
- bne .L2674
-.L2664:
- adrp x0, .LANCHOR7-116
- strb w19, [x0,#:lo12:.LANCHOR7-116]
+ bne .L2808
+.L2798:
+ adrp x0, .LANCHOR7-96
+ strb w19, [x0,#:lo12:.LANCHOR7-96]
mov w0, w25
bl load_l2p_region
-.L2660:
- cbnz w23, .L2661
+.L2794:
+ cbnz w23, .L2795
add x0, x21, :lo12:.LANCHOR0
add x0, x0, x19, lsl 4
- ldr x0, [x0,3912]
+ ldr x0, [x0,3904]
ldr w0, [x0,x24,lsl 2]
str w0, [x22]
- b .L2662
-.L2661:
+ b .L2796
+.L2795:
add x0, x21, :lo12:.LANCHOR0
ldr w2, [x22]
- add x0, x0, 3904
+ add x0, x0, 3896
add x0, x0, x19, lsl 4
ldr x1, [x0,8]
str w2, [x1,x24,lsl 2]
ldrh w1, [x0,2]
orr w1, w1, -32768
strh w1, [x0,2]
- adrp x0, .LANCHOR4+64
- strb w20, [x0,#:lo12:.LANCHOR4+64]
-.L2662:
+ adrp x0, .LANCHOR4+56
+ strb w20, [x0,#:lo12:.LANCHOR4+56]
+.L2796:
add x21, x21, :lo12:.LANCHOR0
mov w2, 32767
- add x21, x21, 3904
+ add x21, x21, 3896
mov w0, 0
add x19, x21, x19, lsl 4
ldrh w1, [x19,2]
and w3, w1, 32767
cmp w3, w2
- beq .L2658
+ beq .L2792
add w1, w1, 1
strh w1, [x19,2]
- b .L2658
-.L2674:
+ b .L2792
+.L2808:
ldrsh w2, [x4,2]
- tbz w2, #31, .L2664
+ tbz w2, #31, .L2798
str x1, [x29,88]
bl pm_flush_id
ldr x1, [x29,88]
- b .L2664
-.L2658:
+ b .L2798
+.L2792:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -16584,32 +17634,31 @@ gc_recovery:
stp x29, x30, [sp,32]
add x29, sp, 32
stp x19, x20, [sp,48]
- adrp x20, .LANCHOR0
+ adrp x19, .LANCHOR0
stp x23, x24, [sp,80]
- add x24, x20, :lo12:.LANCHOR0
+ add x24, x19, :lo12:.LANCHOR0
adrp x23, .LANCHOR4
stp x21, x22, [sp,64]
stp x25, x26, [sp,96]
stp x27, x28, [sp,112]
add x0, x23, :lo12:.LANCHOR4
strb wzr, [x24,3273]
- ldr x21, [x24,608]
- strb wzr, [x0,1130]
+ ldr x20, [x24,608]
+ strb wzr, [x0,1122]
bl gc_init
- ldrh w1, [x21,80]
+ ldrh w1, [x20,80]
mov w0, 65535
- str x23, [x29,136]
- add x22, x21, 80
+ add x22, x20, 80
cmp w1, w0
ldr x0, [x24,608]
- beq .L2676
+ beq .L2810
mov w1, -1
strh w1, [x0,130]
mov w0, 1
bl buf_alloc
- mov x19, x0
+ mov x21, x0
ldrb w0, [x22,9]
- ldrh w1, [x24,3350]
+ ldrh w1, [x24,3348]
sub w0, w0, #1
add x0, x22, x0, sxtw 1
ldrh w0, [x0,16]
@@ -16617,362 +17666,367 @@ gc_recovery:
ldrb w1, [x24,3257]
str w0, [x29,152]
cmp w1, 3
- bne .L2677
+ bne .L2811
ldrh w1, [x24,3300]
sub w1, w1, #1
add w0, w1, w0
orr w0, w0, 50331648
- b .L2720
-.L2677:
+ b .L2854
+.L2811:
cmp w1, 2
- bne .L2678
+ bne .L2812
ldrh w1, [x24,3300]
add w0, w0, w1, lsl 1
sub w0, w0, #1
orr w0, w0, 33554432
-.L2720:
- str w0, [x19,40]
-.L2678:
- mov x0, x19
+.L2854:
+ str w0, [x21,40]
+.L2812:
+ mov x0, x21
mov w1, 1
bl sblk_read_page
- ldr w0, [x19,52]
+ ldr w0, [x21,52]
cmp w0, 512
- beq .L2679
+ beq .L2813
cmn w0, #1
- beq .L2679
- ldr x0, [x19,24]
+ beq .L2813
+ ldr x0, [x21,24]
ldr w1, [x0]
mov w0, 15555
movk w0, 0xf55f, lsl 16
cmp w1, w0
- beq .L2680
-.L2679:
- mov x0, x19
+ beq .L2814
+.L2813:
+ mov x0, x21
bl buf_free
- ldr x7, [x19,24]
- ldr x6, [x19,8]
+ ldr x7, [x21,24]
+ ldr x6, [x21,8]
ldr w0, [x7,4]
str w0, [sp]
ldr w0, [x7,8]
str w0, [sp,8]
ldr w0, [x7,12]
str w0, [sp,16]
- adrp x0, .LC209
- add x0, x0, :lo12:.LC209
+ adrp x0, .LC221
+ add x0, x0, :lo12:.LC221
ldr w3, [x6]
ldr w4, [x6,4]
ldr w5, [x6,8]
- ldr w1, [x19,40]
- ldr w2, [x19,52]
+ ldr w1, [x21,40]
+ ldr w2, [x21,52]
ldr w6, [x6,12]
ldr w7, [x7]
bl printk
- b .L2723
-.L2680:
- add x24, x20, :lo12:.LANCHOR0
- ldr x0, [x29,136]
- ldr x1, [x19,8]
- add x25, x0, :lo12:.LANCHOR4
- ldrb w2, [x24,3276]
+ b .L2857
+.L2814:
+ add x24, x19, :lo12:.LANCHOR0
+ add x25, x23, :lo12:.LANCHOR4
+ ldr x1, [x21,8]
ldrh w0, [x24,3274]
+ ldrb w2, [x24,3276]
mul w2, w0, w2
- ldr x0, [x25,1136]
+ ldr x0, [x25,1128]
lsl w2, w2, 2
bl ftl_memcpy
ldrh w0, [x24,3274]
ldrb w2, [x24,3276]
- ldr x1, [x19,8]
+ ldr x1, [x21,8]
mul w2, w0, w2
add x1, x1, x2, sxtw 2
- ldr x0, [x25,1144]
+ ldr x0, [x25,1136]
lsl w2, w2, 2
bl ftl_memcpy
ldrb w26, [x24,3257]
ldrh w25, [x24,3300]
cmp w26, 2
- bne .L2682
+ bne .L2816
lsl w25, w25, 1
mov w26, 1
-.L2682:
- mov w23, 0
- adrp x24, .LC210
- add x0, x24, :lo12:.LC210
- mov w27, w23
- str x0, [x29,112]
- b .L2683
-.L2725:
- ldr x0, [x0,1144]
+.L2816:
+ mov w27, 0
+ adrp x24, .LC222
+ add x0, x24, :lo12:.LC222
+ mov w28, w27
+ str x0, [x29,120]
+ b .L2817
+.L2859:
+ ldr x0, [x0,1136]
ldr w1, [x0,x12]
ldr w0, [x7,8]
cmp w1, w0
- bne .L2687
-.L2710:
- add w27, w27, 1
+ bne .L2821
+.L2844:
add w28, w28, 1
-.L2691:
- cmp w28, w26
- bhi .L2724
- ldr x0, [x29,128]
- add x1, x20, :lo12:.LANCHOR0
+ add w9, w9, 1
+.L2825:
+ cmp w9, w26
+ bhi .L2858
+ ldr x0, [x29,136]
+ add x1, x19, :lo12:.LANCHOR0
add x0, x0, 8
- ldrh w2, [x1,3350]
+ ldrh w2, [x1,3348]
ldrb w1, [x1,3257]
ldrh w0, [x22,x0,lsl 1]
cmp w1, 3
mul w0, w0, w2
str w0, [x29,152]
- bne .L2684
- add w0, w0, w23
- orr w0, w0, w28, lsl 24
-.L2721:
- str w0, [x19,40]
+ bne .L2818
+ add w0, w0, w27
+ orr w0, w0, w9, lsl 24
+.L2855:
+ str w0, [x21,40]
mov w1, 1
- mov x0, x19
+ mov x0, x21
+ str x9, [x29,112]
bl sblk_read_page
- ldr x0, [x29,136]
- sbfiz x12, x27, 2, 32
- ldr x7, [x19,24]
- add x0, x0, :lo12:.LANCHOR4
+ add x0, x23, :lo12:.LANCHOR4
+ sbfiz x12, x28, 2, 32
+ ldr x7, [x21,24]
+ ldr x9, [x29,112]
+ ldr x1, [x0,1128]
ldr w6, [x7,4]
- ldr x1, [x0,1136]
ldr w3, [x1,x12]
cmp w3, w6
- beq .L2725
-.L2687:
- ldr x0, [x29,136]
- str x12, [x29,104]
- add x13, x0, :lo12:.LANCHOR4
+ beq .L2859
+.L2821:
+ add x13, x23, :lo12:.LANCHOR4
ldr w0, [x7,12]
- str x13, [x29,96]
- ldr x4, [x13,1144]
+ str x9, [x29,96]
+ str x13, [x29,104]
+ ldr x4, [x13,1136]
str w0, [sp]
- ldr x0, [x29,112]
+ ldr x0, [x29,120]
ldr w4, [x4,x12]
ldr w5, [x7]
- ldr w1, [x19,40]
- ldr w2, [x19,52]
+ ldr w1, [x21,40]
+ ldr w2, [x21,52]
ldr w7, [x7,8]
+ str x12, [x29,112]
bl printk
- ldr x13, [x29,96]
- ldr x12, [x29,104]
- ldr x0, [x13,1136]
+ ldr x13, [x29,104]
+ ldr x12, [x29,112]
+ ldr x9, [x29,96]
+ ldr x0, [x13,1128]
ldr w0, [x0,x12]
cmn w0, #1
- beq .L2710
- mov x0, x19
+ beq .L2844
+ mov x0, x21
bl buf_free
-.L2723:
- add x0, x20, :lo12:.LANCHOR0
- ldrh w2, [x21,80]
- mov w28, 0
+.L2857:
+ add x0, x19, :lo12:.LANCHOR0
+ ldrh w2, [x20,80]
+ mov w21, 0
ldr x1, [x0,600]
strh wzr, [x1,x2,lsl 1]
ldr x0, [x0,608]
- ldrh w1, [x21,80]
+ ldrh w1, [x20,80]
strh w1, [x0,130]
- b .L2681
-.L2690:
- add w23, w23, 1
-.L2683:
- cmp w23, w25
- beq .L2692
- sub w0, w23, #1
+ b .L2815
+.L2824:
+ add w27, w27, 1
+.L2817:
+ cmp w27, w25
+ beq .L2826
+ sub w0, w27, #1
mov w24, 0
- str w0, [x29,124]
-.L2693:
+ str w0, [x29,132]
+.L2827:
ldrb w0, [x22,9]
cmp w24, w0
- bge .L2690
+ bge .L2824
sxtw x0, w24
- mov w28, 1
- str x0, [x29,128]
- b .L2691
-.L2684:
+ mov w9, 1
+ str x0, [x29,136]
+ b .L2825
+.L2818:
cmp w1, 2
- bne .L2686
- ldr w1, [x29,124]
+ bne .L2820
+ ldr w1, [x29,132]
add w0, w0, w1
- add w0, w0, w28
+ add w0, w0, w9
orr w0, w0, 33554432
- b .L2721
-.L2686:
- add w0, w0, w23
- b .L2721
-.L2724:
+ b .L2855
+.L2820:
+ add w0, w0, w27
+ b .L2855
+.L2858:
add w24, w24, 1
- b .L2693
-.L2692:
- mov x0, x19
- mov w28, 0
- mov w27, w28
+ b .L2827
+.L2826:
+ mov x0, x21
+ mov w21, 0
+ mov w28, w21
bl buf_free
- str w28, [x29,128]
- add x0, x20, :lo12:.LANCHOR0
+ str w21, [x29,136]
+ add x0, x19, :lo12:.LANCHOR0
ldrb w1, [x22,9]
- ldrh w3, [x21,80]
+ ldrh w3, [x20,80]
ldr x2, [x0,600]
ldrh w0, [x0,3274]
mul w0, w1, w0
strh w0, [x2,x3,lsl 1]
-.L2694:
- cmp w27, w25
- beq .L2705
- sub w0, w27, #1
+.L2828:
+ cmp w28, w25
+ beq .L2839
+ sub w0, w28, #1
mov w24, 0
str w0, [x29,104]
-.L2706:
+.L2840:
ldrb w0, [x22,9]
cmp w24, w0
- bge .L2703
+ bge .L2837
sxtw x0, w24
- mov w23, 1
+ mov w27, 1
str x0, [x29,112]
-.L2704:
- cmp w23, w26
- bhi .L2726
- ldr x1, [x29,136]
- ldr w0, [x29,128]
- add x1, x1, :lo12:.LANCHOR4
+.L2838:
+ cmp w27, w26
+ bhi .L2860
+ add x1, x23, :lo12:.LANCHOR4
+ ldr w0, [x29,136]
sbfiz x0, x0, 2, 32
- ldr x2, [x1,1136]
- ldr w6, [x2,x0]
- cmn w6, #1
- beq .L2695
- ldr x1, [x1,1144]
- str x6, [x29,96]
+ ldr x2, [x1,1128]
+ ldr w5, [x2,x0]
+ cmn w5, #1
+ beq .L2829
+ ldr x1, [x1,1136]
+ str x5, [x29,120]
ldr w0, [x1,x0]
- str w0, [x29,124]
- mov w0, w6
+ str w0, [x29,132]
+ mov w0, w5
bl lpa_hash_get_ppa
str w0, [x29,156]
cmn w0, #1
- ldr x6, [x29,96]
- bne .L2696
- mov w0, w6
+ ldr x5, [x29,120]
+ bne .L2830
+ mov w0, w5
add x1, x29, 156
mov w2, 0
bl pm_log2phys
- ldr x6, [x29,96]
-.L2696:
+ ldr x5, [x29,120]
+.L2830:
ldr x0, [x29,112]
add x0, x0, 8
ldrh w1, [x22,x0,lsl 1]
- add x0, x20, :lo12:.LANCHOR0
- ldrh w2, [x0,3350]
+ add x0, x19, :lo12:.LANCHOR0
+ ldrh w2, [x0,3348]
ldrb w0, [x0,3257]
cmp w0, 3
mul w1, w1, w2
- bne .L2697
- add w1, w1, w27
- orr w1, w1, w23, lsl 24
- b .L2722
-.L2697:
+ bne .L2831
+ add w1, w1, w28
+ orr w1, w1, w27, lsl 24
+ b .L2856
+.L2831:
cmp w0, 2
- bne .L2699
+ bne .L2833
ldr w0, [x29,104]
add w1, w1, w0
- add w1, w1, w23
- orr w1, w1, 33554432
- b .L2722
-.L2699:
add w1, w1, w27
-.L2722:
- add x0, x20, :lo12:.LANCHOR0
- ldr w2, [x29,124]
+ orr w1, w1, 33554432
+ b .L2856
+.L2833:
+ add w1, w1, w28
+.L2856:
+ add x0, x19, :lo12:.LANCHOR0
str w1, [x29,152]
+ ldr w2, [x29,132]
+ mov w3, 21
ldrh w1, [x0,3340]
- lsr w19, w2, w1
- mov w2, 21
- sub w1, w2, w1
- mov w2, 1
- lsl w1, w2, w1
+ ldrb w0, [x0,3338]
+ lsr w2, w2, w1
+ sub w1, w3, w1
+ mov w3, 1
+ lsl w1, w3, w1
sub w1, w1, #1
- and w1, w19, w1
- ldrb w19, [x0,3338]
+ and w1, w2, w1
+ udiv w1, w1, w0
+ uxth w0, w1
+ ldr w1, [x29,132]
+ str w0, [x29,120]
ldr w0, [x29,156]
- udiv w19, w1, w19
- ldr w1, [x29,124]
cmp w0, w1
- uxth x19, w19
- bne .L2700
- mov w0, w6
+ bne .L2834
+ mov w0, w5
add x1, x29, 152
- add w28, w28, 1
+ mov w2, w3
+ add w21, w21, 1
bl pm_log2phys
- mov w0, w19
+ ldrh w0, [x29,120]
bl ftl_vpn_decrement
- b .L2701
-.L2700:
+ b .L2835
+.L2834:
ldr w1, [x29,152]
cmp w0, w1
- csinc w28, w28, w28, ne
-.L2701:
- ldr w0, [x29,128]
- add x1, x20, :lo12:.LANCHOR0
+ csinc w21, w21, w21, ne
+.L2835:
+ ldr w0, [x29,136]
+ add x2, x19, :lo12:.LANCHOR0
add w0, w0, 1
- str w0, [x29,128]
- ldr x0, [x1,584]
- add x0, x0, x19, lsl 2
- ldrb w0, [x0,2]
- ands w0, w0, 224
- bne .L2695
- lsl x19, x19, 1
- ldr x1, [x1,600]
- ldrh w2, [x1,x19]
- cbz w2, .L2695
- strh w0, [x1,x19]
-.L2695:
- add w23, w23, 1
- b .L2704
-.L2726:
- add w24, w24, 1
- b .L2706
-.L2703:
+ str w0, [x29,136]
+ ldr w0, [x29,120]
+ ldr x1, [x2,584]
+ add x1, x1, x0, lsl 2
+ ldrb w1, [x1,2]
+ ands w1, w1, 224
+ bne .L2829
+ lsl x0, x0, 1
+ ldr x2, [x2,600]
+ ldrh w5, [x2,x0]
+ cbz w5, .L2829
+ strh w1, [x2,x0]
+.L2829:
add w27, w27, 1
- b .L2694
-.L2705:
- add x0, x20, :lo12:.LANCHOR0
- ldrh w1, [x21,80]
+ b .L2838
+.L2860:
+ add w24, w24, 1
+ b .L2840
+.L2837:
+ add w28, w28, 1
+ b .L2828
+.L2839:
+ add x0, x19, :lo12:.LANCHOR0
+ ldrh w1, [x20,80]
ldr x0, [x0,600]
- strh w28, [x0,x1,lsl 1]
- ldrh w0, [x21,80]
+ strh w21, [x0,x1,lsl 1]
+ ldrh w0, [x20,80]
bl zftl_insert_data_list
-.L2681:
- ldrh w1, [x21,80]
- adrp x0, .LC211
- mov w2, w28
- add x0, x0, :lo12:.LC211
+.L2815:
+ ldrh w0, [x20,80]
+ bl ftl_dump_write_open_sblk
+ ldrh w1, [x20,80]
+ adrp x0, .LC223
+ mov w2, w21
+ add x0, x0, :lo12:.LC223
bl printk
mov w0, -1
- strh w0, [x21,80]
+ strh w0, [x20,80]
bl pm_flush
bl ftl_ext_info_flush
- add x0, x20, :lo12:.LANCHOR0
+ add x0, x19, :lo12:.LANCHOR0
mov w1, 65535
ldr x0, [x0,608]
ldrh w0, [x0,130]
cmp w0, w1
- beq .L2707
+ beq .L2841
bl ftl_free_sblk
-.L2707:
- add x20, x20, :lo12:.LANCHOR0
+.L2841:
+ add x19, x19, :lo12:.LANCHOR0
mov w0, -1
- ldr x1, [x20,2864]
+ ldr x1, [x19,2864]
strh w0, [x1,126]
- ldr x1, [x20,608]
+ ldr x1, [x19,608]
strh w0, [x1,130]
mov w0, 0
bl ftl_info_flush
- b .L2675
-.L2676:
+ b .L2809
+.L2810:
ldrh w0, [x0,130]
cmp w0, w1
- beq .L2675
+ beq .L2809
ldr x1, [x24,2864]
ldrh w1, [x1,126]
cmp w1, w0
- bne .L2709
+ bne .L2843
bl pm_flush
ldr x0, [x24,608]
ldrh w0, [x0,130]
@@ -16982,12 +18036,12 @@ gc_recovery:
strh w1, [x0,126]
mov w0, 0
bl ftl_info_flush
-.L2709:
- add x20, x20, :lo12:.LANCHOR0
+.L2843:
+ add x19, x19, :lo12:.LANCHOR0
mov w1, -1
- ldr x0, [x20,608]
+ ldr x0, [x19,608]
strh w1, [x0,130]
-.L2675:
+.L2809:
sub sp, x29, #32
ldp x19, x20, [sp,48]
ldp x21, x22, [sp,64]
@@ -17015,24 +18069,24 @@ zftl_init:
stp x23, x24, [sp,48]
add x23, x21, :lo12:.LANCHOR7
strb w0, [x20,2888]
- strb w0, [x20,3893]
- strb w0, [x1,1266]
+ strb w0, [x20,3885]
+ strb w0, [x1,1241]
mov w0, -1
adrp x1, .LC2
- str w0, [x23,-112]
+ str w0, [x23,-92]
adrp x0, .LC1
add x1, x1, :lo12:.LC2
add x0, x0, :lo12:.LC1
strb wzr, [x20,2856]
- strb wzr, [x20,3894]
+ strb wzr, [x20,3886]
strb wzr, [x20,2857]
bl printk
adrp x11, .LANCHOR2
ldrb w6, [x20,633]
add x1, x11, :lo12:.LANCHOR2
- strb w6, [x20,3352]
+ strb w6, [x20,3350]
ldrh w4, [x20,2]
- strh w4, [x20,3350]
+ strh w4, [x20,3348]
ldrb w2, [x1,21]
ldrb w8, [x1,20]
ldrh w3, [x1,18]
@@ -17052,15 +18106,15 @@ zftl_init:
strb w6, [x20,3276]
strh w7, [x20,576]
mov x20, x11
- strh w10, [x23,-118]
-.L2728:
+ strh w10, [x23,-98]
+.L2862:
cmp w2, w4
- bhi .L2794
+ bhi .L2928
add w1, w1, 1
lsl w2, w2, 1
uxth w1, w1
- b .L2728
-.L2794:
+ b .L2862
+.L2928:
mul w3, w0, w3
add x2, x19, :lo12:.LANCHOR0
sub w1, w1, #1
@@ -17069,14 +18123,14 @@ zftl_init:
mov w1, 1
lsr w4, w5, 21
mov w2, 0
-.L2730:
+.L2864:
cmp w1, w4
- bhi .L2795
+ bhi .L2929
add w2, w2, 1
lsl w1, w1, 1
uxth w2, w2
- b .L2730
-.L2795:
+ b .L2864
+.L2929:
mov w1, 57344
mov w4, 1
movk w1, 0x1c, lsl 16
@@ -17090,7 +18144,7 @@ zftl_init:
mul w1, w1, w2
mul w9, w9, w6
add w5, w1, 24576
- str w5, [x11,-108]
+ str w5, [x11,-88]
mul w3, w3, w6
udiv w2, w5, w0
sub w0, w10, #1
@@ -17103,20 +18157,20 @@ zftl_init:
add w5, w5, 8
strh w5, [x4,3308]
udiv w0, w0, w10
- strh w0, [x11,-104]
+ strh w0, [x11,-84]
ubfiz w0, w0, 4, 16
sdiv w0, w0, w9
- strh w0, [x2,1164]
+ strh w0, [x2,1156]
add w0, w7, w7, lsl 1
asr w0, w0, 2
strh w0, [x4,3344]
lsr w0, w7, 4
strh w0, [x4,3306]
cmp w0, 79
- bhi .L2732
+ bhi .L2866
mov w0, 80
strh w0, [x4,3306]
-.L2732:
+.L2866:
add x0, x19, :lo12:.LANCHOR0
mov w2, 2000
mov w3, 256
@@ -17125,102 +18179,102 @@ zftl_init:
mov w2, 50
strh w2, [x0,3342]
add x2, x22, :lo12:.LANCHOR4
- strh w3, [x2,1160]
+ strh w3, [x2,1152]
mov w3, 48
- strh w3, [x2,1162]
+ strh w3, [x2,1154]
mov w2, 32
strh w2, [x0,592]
- beq .L2733
+ beq .L2867
ldrb w0, [x0,3272]
- cbz w0, .L2734
-.L2733:
+ cbz w0, .L2868
+.L2867:
add x0, x19, :lo12:.LANCHOR0
mov w2, 150
mov w3, 64
strh w2, [x0,3342]
add x2, x22, :lo12:.LANCHOR4
- strh w3, [x2,1162]
+ strh w3, [x2,1154]
mov w3, 12
strh w3, [x0,592]
ldrb w3, [x19,#:lo12:.LANCHOR0]
- cbnz w3, .L2734
+ cbnz w3, .L2868
mov w3, 4
strh w3, [x0,592]
mov w3, 600
strh w3, [x0,3346]
mov w0, 128
- strh w0, [x2,1160]
-.L2734:
+ strh w0, [x2,1152]
+.L2868:
ldr w0, [x20,#:lo12:.LANCHOR2]
- tbz x0, 12, .L2736
- adrp x0, .LC212
- add x0, x0, :lo12:.LC212
+ tbz x0, 12, .L2870
+ adrp x0, .LC224
+ add x0, x0, :lo12:.LC224
bl printk
-.L2736:
+.L2870:
ldr w0, [x20,#:lo12:.LANCHOR2]
- tbz x0, 12, .L2737
+ tbz x0, 12, .L2871
add x1, x19, :lo12:.LANCHOR0
- adrp x0, .LC213
- add x0, x0, :lo12:.LC213
+ adrp x0, .LC225
+ add x0, x0, :lo12:.LC225
ldr w1, [x1,2836]
bl printk
-.L2737:
+.L2871:
ldr w0, [x20,#:lo12:.LANCHOR2]
- tbz x0, 12, .L2738
+ tbz x0, 12, .L2872
add x1, x19, :lo12:.LANCHOR0
- adrp x0, .LC214
- add x0, x0, :lo12:.LC214
+ adrp x0, .LC226
+ add x0, x0, :lo12:.LC226
ldr w1, [x1,2840]
bl printk
-.L2738:
+.L2872:
ldr w0, [x20,#:lo12:.LANCHOR2]
- tbz x0, 12, .L2739
+ tbz x0, 12, .L2873
add x1, x21, :lo12:.LANCHOR7
- adrp x0, .LC215
- add x0, x0, :lo12:.LC215
- ldr w1, [x1,-108]
+ adrp x0, .LC227
+ add x0, x0, :lo12:.LC227
+ ldr w1, [x1,-88]
bl printk
-.L2739:
+.L2873:
ldr w0, [x20,#:lo12:.LANCHOR2]
- tbz x0, 12, .L2740
+ tbz x0, 12, .L2874
add x1, x21, :lo12:.LANCHOR7
- adrp x0, .LC216
- add x0, x0, :lo12:.LC216
- ldrh w1, [x1,-104]
+ adrp x0, .LC228
+ add x0, x0, :lo12:.LC228
+ ldrh w1, [x1,-84]
bl printk
-.L2740:
+.L2874:
ldr w0, [x20,#:lo12:.LANCHOR2]
- tbz x0, 12, .L2741
+ tbz x0, 12, .L2875
add x1, x21, :lo12:.LANCHOR7
- adrp x0, .LC217
- add x0, x0, :lo12:.LC217
- ldrh w1, [x1,-118]
+ adrp x0, .LC229
+ add x0, x0, :lo12:.LC229
+ ldrh w1, [x1,-98]
bl printk
-.L2741:
+.L2875:
ldr w0, [x20,#:lo12:.LANCHOR2]
- tbz x0, 12, .L2742
+ tbz x0, 12, .L2876
add x22, x22, :lo12:.LANCHOR4
- adrp x0, .LC218
- add x0, x0, :lo12:.LC218
- ldrh w1, [x22,1164]
+ adrp x0, .LC230
+ add x0, x0, :lo12:.LC230
+ ldrh w1, [x22,1156]
bl printk
-.L2742:
+.L2876:
ldr w0, [x20,#:lo12:.LANCHOR2]
- tbz x0, 12, .L2743
+ tbz x0, 12, .L2877
add x1, x19, :lo12:.LANCHOR0
- adrp x0, .LC219
- add x0, x0, :lo12:.LC219
+ adrp x0, .LC231
+ add x0, x0, :lo12:.LC231
ldrh w1, [x1,3306]
bl printk
-.L2743:
+.L2877:
ldr w0, [x20,#:lo12:.LANCHOR2]
- tbz x0, 12, .L2744
+ tbz x0, 12, .L2878
add x1, x19, :lo12:.LANCHOR0
- adrp x0, .LC220
- add x0, x0, :lo12:.LC220
+ adrp x0, .LC232
+ add x0, x0, :lo12:.LC232
ldrh w1, [x1,3308]
bl printk
-.L2744:
+.L2878:
add x22, x19, :lo12:.LANCHOR0
bl buf_init
mov w0, 6
@@ -17234,12 +18288,12 @@ zftl_init:
mul w0, w0, w1
lsl w0, w0, 2
bl ftl_malloc
- str x0, [x22,3880]
+ str x0, [x22,3872]
ldrb w1, [x22,3276]
add x2, x23, :lo12:.LANCHOR5
ldrh w0, [x22,3300]
add x2, x2, 640
- str x2, [x22,3872]
+ str x2, [x22,3864]
mul w1, w0, w1
ldrh w0, [x22,576]
lsl w1, w1, 1
@@ -17249,17 +18303,17 @@ zftl_init:
ldr w0, [x20,#:lo12:.LANCHOR2]
add x1, x2, x1, sxtw 2
str x1, [x22,608]
- tbz x0, 12, .L2745
- adrp x0, .LC221
- add x0, x0, :lo12:.LC221
+ tbz x0, 12, .L2879
+ adrp x0, .LC233
+ add x0, x0, :lo12:.LC233
bl printk
-.L2745:
+.L2879:
add x2, x19, :lo12:.LANCHOR0
add x3, x21, :lo12:.LANCHOR7
ldrh w0, [x2,3300]
ldrb w22, [x2,3276]
ldrh w1, [x2,576]
- ldrh w24, [x3,-104]
+ ldrh w24, [x3,-84]
mul w22, w0, w22
ldr w0, [x20,#:lo12:.LANCHOR2]
lsl w24, w24, 2
@@ -17268,28 +18322,28 @@ zftl_init:
add w24, w24, 704
lsl w22, w22, 1
add w22, w22, 632
- tbz x0, 12, .L2746
- adrp x0, .LC222
- ldrh w3, [x3,-118]
- add x0, x0, :lo12:.LC222
+ tbz x0, 12, .L2880
+ adrp x0, .LC234
+ ldrh w3, [x3,-98]
+ add x0, x0, :lo12:.LC234
mov w1, w22
mov w2, w24
bl printk
-.L2746:
+.L2880:
add x21, x21, :lo12:.LANCHOR7
- ldrh w0, [x21,-118]
+ ldrh w0, [x21,-98]
cmp w22, w0
- bhi .L2748
+ bhi .L2882
cmp w24, w0
- bls .L2747
-.L2748:
-.L2749:
- b .L2749
-.L2747:
+ bls .L2881
+.L2882:
+.L2883:
+ b .L2883
+.L2881:
bl sblk_init
bl ftl_info_blk_init
cmn w0, #1
- beq .L2750
+ beq .L2884
bl ftl_ext_info_init
add x19, x19, :lo12:.LANCHOR0
mov w0, 1
@@ -17322,18 +18376,18 @@ zftl_init:
mov w0, 1
bl ftl_total_vpn_update
ldrb w0, [x23,577]
- cbz w0, .L2751
+ cbz w0, .L2885
ldr x1, [x19,2864]
ldr w0, [x1,68]
add w0, w0, 1
str w0, [x1,68]
-.L2751:
+.L2885:
bl ftl_ext_info_flush
mov w0, 0
bl ftl_info_flush
bl print_ftl_debug_info
mov w0, 0
-.L2750:
+.L2884:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -17347,41 +18401,41 @@ rk_ftl_init:
stp x29, x30, [sp, -48]!
adrp x0, jiffies
add x29, sp, 0
- stp x19, x20, [sp,16]
- adrp x20, .LANCHOR4
- ldr x0, [x0,#:lo12:jiffies]
- add x19, x20, :lo12:.LANCHOR4
stp x21, x22, [sp,32]
- adrp x21, .LANCHOR7
- add x21, x21, :lo12:.LANCHOR7
- str x0, [x19,1168]
+ adrp x21, .LANCHOR4
+ ldr x0, [x0,#:lo12:jiffies]
+ stp x19, x20, [sp,16]
+ add x19, x21, :lo12:.LANCHOR4
+ adrp x20, .LANCHOR7
+ add x20, x20, :lo12:.LANCHOR7
+ str x0, [x19,1160]
mov w0, 136
- strb wzr, [x21,-102]
+ strb wzr, [x20,-82]
bl ftl_malloc
- str x0, [x19,1176]
- cbnz x0, .L2797
-.L2799:
+ str x0, [x19,1168]
+ cbnz x0, .L2931
+.L2933:
mov w0, -1
- b .L2798
-.L2797:
+ b .L2932
+.L2931:
mov w0, 2048
bl ftl_malloc
- str x0, [x21,-96]
- mov x1, x21
- add x0, x19, 1184
- str xzr, [x19,1184]
- str xzr, [x1,-88]!
+ str x0, [x20,-80]
+ mov x1, x20
+ add x0, x19, 1176
+ str xzr, [x19,1176]
+ str xzr, [x1,-72]!
bl rknand_get_reg_addr
- ldr x0, [x19,1184]
- cbz x0, .L2799
+ ldr x0, [x19,1176]
+ cbz x0, .L2933
bl rk_nandc_irq_init
mov w1, 0
- ldr x0, [x21,-96]
+ ldr x0, [x20,-80]
mov w2, w1
mov w3, 2048
bl flash_sram_load_store
bl rknand_flash_cs_init
- ldr x0, [x19,1176]
+ ldr x0, [x19,1168]
adrp x1, zftl_deinit
add x1, x1, :lo12:zftl_deinit
str x1, [x0,80]
@@ -17430,18 +18484,18 @@ rk_ftl_init:
adrp x1, zftl_discard
add x1, x1, :lo12:zftl_discard
str x1, [x0,56]
- ldr x0, [x19,1184]
+ ldr x0, [x19,1176]
bl nand_flash_init
mov w22, w0
- cbnz w0, .L2800
+ cbnz w0, .L2934
bl zftl_init
mov w19, w0
bl zftl_proc_debug_init
mov w0, 1
- strb w0, [x21,-102]
- b .L2801
-.L2800:
- ldr x1, [x19,1176]
+ strb w0, [x20,-82]
+ b .L2935
+.L2934:
+ ldr x1, [x19,1168]
adrp x2, ftl_read_flash_info
add x2, x2, :lo12:ftl_read_flash_info
adrp x0, ftl_deinit
@@ -17488,76 +18542,76 @@ rk_ftl_init:
str x0, [x1,72]
str x2, [x1,104]
adrp x2, ftl_discard
- ldr x0, [x19,1184]
+ ldr x0, [x19,1176]
add x2, x2, :lo12:ftl_discard
str x2, [x1,56]
bl FlashInit
mov w19, w0
cmn w22, #2
adrp x22, .LANCHOR2
- bne .L2802
- add x21, x22, :lo12:.LANCHOR2
+ bne .L2936
+ add x20, x22, :lo12:.LANCHOR2
adrp x1, gNandParaInfo
- add x21, x21, 8
+ add x20, x20, 8
add x1, x1, :lo12:gNandParaInfo
mov w2, 32
- mov x0, x21
+ mov x0, x20
bl ftl_memcpy
- ldrb w0, [x21,18]
+ ldrb w0, [x20,18]
bl flash_lsb_page_tbl_build
- ldrh w0, [x21,10]
- strh w0, [x21,26]
-.L2802:
+ ldrh w0, [x20,10]
+ strh w0, [x20,26]
+.L2936:
adrp x0, g_nandc_version_data
ldr w1, [x0,#:lo12:g_nandc_version_data]
mov w0, 12336
movk w0, 0x5638, lsl 16
cmp w1, w0
- adrp x1, .LANCHOR0
- bne .L2803
- adrp x0, gFlashSlcMode
- ldrb w0, [x0,#:lo12:gFlashSlcMode]
- cbnz w0, .L2804
-.L2803:
- add x0, x20, :lo12:.LANCHOR4
- strb wzr, [x1,#:lo12:.LANCHOR0]
- strb wzr, [x0,1264]
-.L2804:
+ adrp x0, .LANCHOR0
+ bne .L2937
+ adrp x1, gFlashSlcMode
+ ldrb w1, [x1,#:lo12:gFlashSlcMode]
+ cbnz w1, .L2938
+.L2937:
+ add x1, x0, :lo12:.LANCHOR0
+ strb wzr, [x0,#:lo12:.LANCHOR0]
+ strb wzr, [x1,782]
+.L2938:
adrp x2, gNandFlashIDBEccBits
- add x0, x1, :lo12:.LANCHOR0
+ add x1, x0, :lo12:.LANCHOR0
add x22, x22, :lo12:.LANCHOR2
- add x20, x20, :lo12:.LANCHOR4
+ add x21, x21, :lo12:.LANCHOR4
ldrb w2, [x2,#:lo12:gNandFlashIDBEccBits]
- strb w2, [x0,632]
+ strb w2, [x1,632]
adrp x2, gNandFlashEccBits
ldrh w3, [x22,18]
- str xzr, [x20,1224]
+ str xzr, [x21,1216]
ldrb w2, [x2,#:lo12:gNandFlashEccBits]
- strb w2, [x0,724]
+ strb w2, [x1,724]
mov w2, 1
- mov w0, 0
-.L2805:
+ mov w1, 0
+.L2939:
cmp w2, w3
- bhi .L2810
- add w0, w0, 1
+ bhi .L2944
+ add w1, w1, 1
lsl w2, w2, 1
- uxth w0, w0
- b .L2805
-.L2810:
- add x1, x1, :lo12:.LANCHOR0
- sub w0, w0, #1
- strb wzr, [x1,672]
- strh w0, [x1,3340]
- cbnz w19, .L2801
+ uxth w1, w1
+ b .L2939
+.L2944:
+ add x0, x0, :lo12:.LANCHOR0
+ sub w1, w1, #1
+ strb wzr, [x0,672]
+ strh w1, [x0,3340]
+ cbnz w19, .L2935
bl FtlInit
mov w19, w0
-.L2801:
- adrp x0, .LC223
+.L2935:
+ adrp x0, .LC235
mov w1, w19
- add x0, x0, :lo12:.LC223
+ add x0, x0, :lo12:.LC235
bl printk
mov w0, w19
-.L2798:
+.L2932:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x29, x30, [sp], 48
@@ -17585,12 +18639,12 @@ gc_update_l2p_map_new:
mul w24, w24, w0
bl timer_get_time
ldr w0, [x22,#:lo12:.LANCHOR2]
- tbz x0, 8, .L2812
- adrp x0, .LC224
+ tbz x0, 8, .L2946
+ adrp x0, .LC236
ldrh w1, [x20,80]
- add x0, x0, :lo12:.LC224
+ add x0, x0, :lo12:.LC236
bl printk
-.L2812:
+.L2946:
add x0, x19, :lo12:.LANCHOR0
ldrh w1, [x20,80]
sub w2, w24, #1
@@ -17599,21 +18653,21 @@ gc_update_l2p_map_new:
adrp x27, .LANCHOR4
ldr x0, [x0,600]
strh w2, [x0,x1,lsl 1]
- adrp x0, .LC226
- add x0, x0, :lo12:.LC226
+ adrp x0, .LC238
+ add x0, x0, :lo12:.LC238
str x0, [x29,120]
- adrp x0, .LC225
- add x0, x0, :lo12:.LC225
+ adrp x0, .LC237
+ add x0, x0, :lo12:.LC237
str x0, [x29,112]
-.L2813:
+.L2947:
cmp w23, w24
- beq .L2845
+ beq .L2979
adrp x0, .LANCHOR4
add x0, x0, :lo12:.LANCHOR4
- ldr x0, [x0,1136]
+ ldr x0, [x0,1128]
ldr w2, [x0,w23,sxtw 2]
cmn w2, #1
- beq .L2814
+ beq .L2948
add x0, x19, :lo12:.LANCHOR0
ldrb w0, [x0,2832]
lsl w0, w0, 7
@@ -17621,28 +18675,28 @@ gc_update_l2p_map_new:
and w0, w0, 65535
str w0, [x29,140]
ldr w0, [x22,#:lo12:.LANCHOR2]
- tbz x0, 8, .L2815
+ tbz x0, 8, .L2949
ldr x0, [x29,112]
mov w3, w23
ldr w1, [x29,140]
bl printk
-.L2815:
+.L2949:
mov w25, w23
-.L2821:
+.L2955:
add x1, x27, :lo12:.LANCHOR4
sbfiz x26, x25, 2, 32
- ldr x0, [x1,1136]
+ ldr x0, [x1,1128]
ldr w4, [x0,x26]
cmn w4, #1
- beq .L2816
+ beq .L2950
add x0, x19, :lo12:.LANCHOR0
ldr w2, [x29,140]
ldrb w0, [x0,2832]
lsl w0, w0, 7
udiv w0, w4, w0
cmp w2, w0, uxth
- bne .L2816
- ldr x0, [x1,1144]
+ bne .L2950
+ ldr x0, [x1,1136]
str x4, [x29,104]
ldr w28, [x0,x26]
mov w0, w4
@@ -17650,21 +18704,21 @@ gc_update_l2p_map_new:
str w0, [x29,156]
cmn w0, #1
ldr x4, [x29,104]
- bne .L2817
+ bne .L2951
mov w0, w4
add x1, x29, 156
mov w2, 0
bl pm_log2phys
ldr x4, [x29,104]
-.L2817:
+.L2951:
ldr w3, [x29,156]
cmp w3, w28
- bne .L2818
+ bne .L2952
add x0, x27, :lo12:.LANCHOR4
add x1, x29, 152
mov w2, 1
add w21, w21, 1
- ldr x0, [x0,1152]
+ ldr x0, [x0,1144]
ldr w0, [x0,x26]
str w0, [x29,152]
mov w0, w4
@@ -17680,60 +18734,60 @@ gc_update_l2p_map_new:
and w28, w0, w28
ldrb w0, [x2,3338]
udiv w0, w28, w0
- b .L2844
-.L2818:
+ b .L2978
+.L2952:
ldr w0, [x22,#:lo12:.LANCHOR2]
- tbz x0, 8, .L2820
+ tbz x0, 8, .L2954
ldr x0, [x29,120]
mov w1, w4
mov w2, w28
bl printk
-.L2820:
+.L2954:
ldr x0, [x29,128]
ldrh w0, [x0]
-.L2844:
+.L2978:
bl ftl_vpn_decrement
add x0, x27, :lo12:.LANCHOR4
mov w1, -1
- ldr x0, [x0,1136]
+ ldr x0, [x0,1128]
str w1, [x0,x26]
bl timer_get_time
-.L2816:
+.L2950:
add w25, w25, 1
cmp w25, w24
- bne .L2821
-.L2814:
+ bne .L2955
+.L2948:
add w23, w23, 1
- b .L2813
-.L2845:
+ b .L2947
+.L2979:
ldr w0, [x22,#:lo12:.LANCHOR2]
- tbz x0, 8, .L2823
+ tbz x0, 8, .L2957
add x0, x19, :lo12:.LANCHOR0
ldrh w3, [x20,80]
ldr x1, [x0,608]
ldr x2, [x0,600]
- adrp x0, .LC227
- add x0, x0, :lo12:.LC227
+ adrp x0, .LC239
+ add x0, x0, :lo12:.LC239
ldrh w1, [x1,80]
ldrh w2, [x2,x3,lsl 1]
mov w3, w21
bl printk
-.L2823:
+.L2957:
add x0, x19, :lo12:.LANCHOR0
ldrh w1, [x20,80]
ldr x0, [x0,600]
ldrh w0, [x0,x1,lsl 1]
cmp w0, w21
- beq .L2824
+ beq .L2958
adrp x1, .LANCHOR3
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR3
- mov w2, 489
- add x1, x1, 592
+ mov w2, 569
+ add x1, x1, 624
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L2824:
+.L2958:
add x19, x19, :lo12:.LANCHOR0
ldrh w1, [x20,80]
ldr x0, [x19,600]
@@ -17768,62 +18822,62 @@ gc_scan_src_blk_one_page:
mov w3, 0
ldrh w2, [x1,2]
mov w4, w3
-.L2847:
+.L2981:
cmp w22, w5
- bne .L2873
+ bne .L3007
add w0, w0, 1
uxtb w0, w0
cmp w0, w6
- bne .L2848
+ bne .L2982
add w2, w2, 1
mov w0, 0
mov w4, 1
uxth w2, w2
-.L2848:
+.L2982:
add x3, x1, x0, sxtw 1
ldrh w22, [x3,40]
mov w3, 1
- b .L2847
-.L2873:
- cbz w4, .L2850
+ b .L2981
+.L3007:
+ cbz w4, .L2984
add x1, x19, :lo12:.LANCHOR0
strh w2, [x1,2898]
-.L2850:
- cbz w3, .L2851
+.L2984:
+ cbz w3, .L2985
add x1, x19, :lo12:.LANCHOR0
strb w0, [x1,2900]
-.L2851:
+.L2985:
mov w0, 1
mov w23, 1
add x19, x19, :lo12:.LANCHOR0
bl buf_alloc
mov x21, x0
-.L2852:
+.L2986:
add x20, x19, 2896
ldrb w1, [x20,6]
cmp w23, w1
- bgt .L2874
- ldrh w0, [x19,3350]
+ bgt .L3008
+ ldrh w0, [x19,3348]
cmp w1, 3
mul w0, w22, w0
- bne .L2853
+ bne .L2987
ldrh w1, [x20,2]
add w0, w0, w1
orr w0, w0, w23, lsl 24
- b .L2872
-.L2853:
+ b .L3006
+.L2987:
cmp w1, 2
ldrh w1, [x20,2]
- bne .L2855
+ bne .L2989
add w0, w0, w1, lsl 1
ldrb w1, [x19,3257]
sub w0, w0, #1
add w0, w0, w23
orr w0, w0, w1, lsl 24
- b .L2872
-.L2855:
+ b .L3006
+.L2989:
add w0, w0, w1
-.L2872:
+.L3006:
str w0, [x21,40]
mov w1, 1
mov x0, x21
@@ -17831,38 +18885,38 @@ gc_scan_src_blk_one_page:
bl sblk_read_page
ldr w0, [x21,52]
cmp w0, 512
- beq .L2858
+ beq .L2992
cmn w0, #1
- beq .L2858
+ beq .L2992
ldr x0, [x21,24]
ldr w20, [x0,4]
mov w0, w20
bl lpa_hash_get_ppa
str w0, [x29,76]
cmn w0, #1
- bne .L2859
+ bne .L2993
mov w0, w20
add x1, x29, 76
mov w2, 0
bl pm_log2phys
-.L2859:
+.L2993:
ldr w1, [x21,40]
ldr w0, [x29,76]
cmp w1, w0
- bne .L2858
+ bne .L2992
ldrh w2, [x19,2920]
ldr x1, [x19,3248]
str w24, [x1,x2,lsl 2]
ldrh w1, [x19,2920]
add w1, w1, 1
strh w1, [x19,2920]
-.L2858:
+.L2992:
ldrh w0, [x19,2922]
add w23, w23, 1
add w0, w0, 1
strh w0, [x19,2922]
- b .L2852
-.L2874:
+ b .L2986
+.L3008:
mov x0, x21
bl buf_free
ldrb w0, [x20,4]
@@ -17871,12 +18925,12 @@ gc_scan_src_blk_one_page:
uxtb w0, w0
strb w0, [x20,4]
cmp w1, w0
- bne .L2846
+ bne .L2980
ldrh w0, [x20,2]
strb wzr, [x20,4]
add w0, w0, 1
strh w0, [x20,2]
-.L2846:
+.L2980:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -17898,32 +18952,32 @@ gc_scan_src_blk:
ldrh w1, [x0,2896]
mov w0, 65535
cmp w1, w0
- bne .L2876
+ bne .L3010
adrp x1, .LANCHOR3
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR3
- mov w2, 919
- add x1, x1, 616
+ mov w2, 1004
+ add x1, x1, 648
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L2876:
+.L3010:
add x2, x19, :lo12:.LANCHOR0
mov w3, 65535
mov w0, 0
ldrh w1, [x2,2896]
cmp w1, w3
- beq .L2877
+ beq .L3011
adrp x0, .LANCHOR2
ldr w0, [x0,#:lo12:.LANCHOR2]
- tbz x0, 8, .L2878
+ tbz x0, 8, .L3012
ubfiz x3, x1, 1, 16
ldr x2, [x2,600]
- adrp x0, .LC228
- add x0, x0, :lo12:.LC228
+ adrp x0, .LC240
+ add x0, x0, :lo12:.LC240
ldrh w2, [x2,x3]
bl printk
-.L2878:
+.L3012:
add x20, x19, :lo12:.LANCHOR0
bl timer_get_time
add x21, x20, 2896
@@ -17932,97 +18986,97 @@ gc_scan_src_blk:
bl ftl_get_blk_list_in_sblk
uxtb w1, w0
strb w1, [x21,5]
- cbnz w1, .L2879
+ cbnz w1, .L3013
mov w0, -1
strh w0, [x20,2896]
- b .L2905
-.L2879:
+ b .L3039
+.L3013:
ldrh w3, [x20,2896]
ldr x2, [x20,584]
add x2, x2, x3, lsl 2
ldrb w2, [x2,2]
tst w2, 192
and w4, w2, 224
- beq .L2880
+ beq .L3014
cmp w4, 224
- beq .L2880
+ beq .L3014
ldr x2, [x20,608]
ldrh w5, [x2,16]
cmp w5, w3
- beq .L2880
+ beq .L3014
ldrh w5, [x2,48]
cmp w5, w3
- beq .L2880
+ beq .L3014
ldrh w2, [x2,80]
cmp w2, w3
- bne .L2881
-.L2880:
- cbnz w4, .L2882
+ bne .L3015
+.L3014:
+ cbnz w4, .L3016
add x0, x19, :lo12:.LANCHOR0
ldr x0, [x0,600]
ldrh w0, [x0,x3,lsl 1]
- cbz w0, .L2883
+ cbz w0, .L3017
adrp x1, .LANCHOR3
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR3
- mov w2, 939
- add x1, x1, 616
+ mov w2, 1024
+ add x1, x1, 648
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L2883:
+.L3017:
add x0, x19, :lo12:.LANCHOR0
ldrh w1, [x0,2896]
ldr x0, [x0,600]
strh wzr, [x0,x1,lsl 1]
-.L2882:
+.L3016:
add x19, x19, :lo12:.LANCHOR0
mov w0, -1
strh wzr, [x19,2920]
strh w0, [x19,2896]
-.L2905:
+.L3039:
mov w0, 0
- b .L2877
-.L2881:
+ b .L3011
+.L3015:
and w0, w0, 255
sub w0, w0, #1
add x0, x21, x0, sxtw 1
ldrh w20, [x0,40]
mov w0, 65535
cmp w20, w0
- bne .L2884
+ bne .L3018
adrp x1, .LANCHOR3
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR3
- mov w2, 947
- add x1, x1, 616
+ mov w2, 1032
+ add x1, x1, 648
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L2884:
+.L3018:
add x2, x19, :lo12:.LANCHOR0
mov w25, 1
ldrh w3, [x2,2896]
ldr x4, [x2,584]
ldrh w0, [x2,3300]
add x3, x4, x3, lsl 2
- ldrh w1, [x2,3350]
+ ldrh w1, [x2,3348]
sub w0, w0, #1
ldrb w3, [x3,2]
uxth w0, w0
mul w1, w20, w1
and w3, w3, 224
cmp w3, 160
- bne .L2885
+ bne .L3019
ldrb w3, [x2,3257]
cmp w3, 2
uxth w25, w3
orr w1, w1, w3, lsl 24
- bne .L2885
+ bne .L3019
ldrh w0, [x2,3274]
sub w0, w0, #1
uxth w0, w0
-.L2885:
+.L3019:
add x20, x19, :lo12:.LANCHOR0
orr w23, w0, w1
mov w0, 1
@@ -18046,29 +19100,29 @@ gc_scan_src_blk:
strh wzr, [x20,2920]
ldr w0, [x21,52]
cmp w0, 512
- beq .L2906
+ beq .L3040
cmn w0, #1
- beq .L2906
+ beq .L3040
ldr x0, [x21,24]
ldr w1, [x0]
mov w0, 15555
movk w0, 0xf55f, lsl 16
cmp w1, w0
- beq .L2888
+ beq .L3022
adrp x1, .LANCHOR3
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR3
- mov w2, 980
- add x1, x1, 616
+ mov w2, 1065
+ add x1, x1, 648
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L2906:
+.L3040:
mov x0, x21
bl buf_free
mov w0, -1
- b .L2877
-.L2888:
+ b .L3011
+.L3022:
ldrb w0, [x20,3276]
mov x26, 0
ldrh w22, [x20,3300]
@@ -18078,21 +19132,21 @@ gc_scan_src_blk:
mul w22, w25, w22
mov w25, 1
uxth w22, w22
-.L2889:
+.L3023:
cmp w22, w26
- ble .L2907
+ ble .L3041
ldr w0, [x23,x26,lsl 2]
cmn w0, #1
- beq .L2891
+ beq .L3025
bl lpa_hash_get_ppa
str w0, [x29,92]
cmn w0, #1
- bne .L2892
+ bne .L3026
ldr w0, [x23,x26,lsl 2]
add x1, x29, 92
mov w2, 0
bl pm_log2phys
-.L2892:
+.L3026:
ldrh w1, [x20,3340]
ldr w2, [x29,92]
sub w0, w24, w1
@@ -18104,18 +19158,18 @@ gc_scan_src_blk:
ldrb w0, [x20,3338]
udiv w1, w1, w0
cmp w1, w3
- bne .L2891
+ bne .L3025
ldrh w3, [x20,2920]
ldr x1, [x20,3248]
str w2, [x1,x3,lsl 2]
ldrh w1, [x20,2920]
add w1, w1, 1
strh w1, [x20,2920]
-.L2891:
+.L3025:
bl timer_get_time
add x26, x26, 1
- b .L2889
-.L2907:
+ b .L3023
+.L3041:
mov x0, x21
bl buf_free
add x0, x19, :lo12:.LANCHOR0
@@ -18125,11 +19179,11 @@ gc_scan_src_blk:
ldrh w2, [x3,x2]
ldrh w3, [x0,2920]
cmp w2, w3
- beq .L2895
- adrp x0, .LC229
- add x0, x0, :lo12:.LC229
+ beq .L3029
+ adrp x0, .LC241
+ add x0, x0, :lo12:.LC241
bl printk
-.L2895:
+.L3029:
add x19, x19, :lo12:.LANCHOR0
ldrh w2, [x19,2896]
ldr x1, [x19,600]
@@ -18137,7 +19191,7 @@ gc_scan_src_blk:
strh w3, [x1,x2,lsl 1]
strh wzr, [x19,2924]
ldrh w0, [x19,2920]
-.L2877:
+.L3011:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -18159,14 +19213,14 @@ gc_scan_static_data:
ldr x0, [x3,608]
ldr w1, [x0,544]
cmn w1, #1
- beq .L2909
+ beq .L3043
adrp x21, .LANCHOR3
adrp x22, .LC0
add x21, x21, :lo12:.LANCHOR3
mov w20, 11
add x22, x22, :lo12:.LC0
- add x21, x21, 632
-.L2910:
+ add x21, x21, 664
+.L3044:
add x24, x19, :lo12:.LANCHOR0
add x1, x29, 76
mov w2, 0
@@ -18175,7 +19229,7 @@ gc_scan_static_data:
bl pm_log2phys
ldr w0, [x29,76]
cmn w0, #1
- beq .L2911
+ beq .L3045
mov w0, 1
bl buf_alloc
mov x23, x0
@@ -18185,7 +19239,7 @@ gc_scan_static_data:
bl sblk_read_page
ldr w0, [x23,52]
cmp w0, 256
- bne .L2912
+ bne .L3046
ldrh w0, [x24,3340]
mov w2, 21
mov w1, 1
@@ -18199,23 +19253,23 @@ gc_scan_static_data:
udiv w0, w2, w0
mov w2, 0
bl gc_add_sblk
-.L2912:
+.L3046:
add x0, x19, :lo12:.LANCHOR0
ldr x1, [x23,24]
ldr x0, [x0,608]
ldr w1, [x1,4]
ldr w0, [x0,544]
cmp w1, w0
- beq .L2913
+ beq .L3047
mov x1, x21
- mov w2, 1419
+ mov w2, 1504
mov x0, x22
bl printk
bl dump_stack
-.L2913:
+.L3047:
mov x0, x23
bl buf_free
-.L2911:
+.L3045:
add x2, x19, :lo12:.LANCHOR0
ldr x1, [x2,608]
ldr w2, [x2,2840]
@@ -18223,7 +19277,7 @@ gc_scan_static_data:
add w0, w0, 1
str w0, [x1,544]
cmp w0, w2
- bcc .L2914
+ bcc .L3048
mov w0, -1
str w0, [x1,544]
ldr w0, [x1,548]
@@ -18234,37 +19288,37 @@ gc_scan_static_data:
bl ftl_ext_info_flush
mov w0, 0
bl ftl_info_flush
- b .L2908
-.L2914:
+ b .L3042
+.L3048:
ldr w0, [x29,76]
cmn w0, #1
- bne .L2908
+ bne .L3042
sub w20, w20, #1
uxth w20, w20
- cbnz w20, .L2910
- b .L2908
-.L2909:
+ cbnz w20, .L3044
+ b .L3042
+.L3043:
ldr w1, [x0,536]
ldr w2, [x0,12]
add w1, w1, 12959744
add w1, w1, 256
cmp w2, w1
- bhi .L2919
+ bhi .L3053
ldr x3, [x3,2864]
ldr w1, [x0,540]
ldr w3, [x3,44]
- add w1, w1, 98304
- add w1, w1, 1696
+ add w1, w1, 4096
+ add w1, w1, 904
cmp w3, w1
- bls .L2908
-.L2919:
+ bls .L3042
+.L3053:
add x19, x19, :lo12:.LANCHOR0
ldr x1, [x19,2864]
ldr w1, [x1,44]
str w1, [x0,540]
str w2, [x0,536]
str wzr, [x0,544]
-.L2908:
+.L3042:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -18288,45 +19342,45 @@ gc_block_vpn_scan:
ldrh w0, [x20,576]
ldr w1, [x1,608]
cmp w1, w0
- bcs .L2924
+ bcs .L3058
bl timer_get_time
ldr x21, [x20,608]
ldr w1, [x21,604]
add w1, w1, 28672
add w1, w1, 1328
cmp w0, w1
- bls .L2924
+ bls .L3058
bl timer_get_time
str w0, [x21,604]
ldr x0, [x20,608]
ldrh w2, [x20,576]
ldr w1, [x0,600]
cmp w1, w2
- bcs .L2928
+ bcs .L3062
ldr x2, [x20,2864]
ldrh w2, [x2,134]
cmp w1, w2
- bcs .L2929
-.L2928:
+ bcs .L3063
+.L3062:
add x1, x19, :lo12:.LANCHOR0
ldr x1, [x1,2864]
ldrh w1, [x1,134]
str w1, [x0,600]
-.L2929:
+.L3063:
ldr w25, [x0,600]
mov w0, 65535
uxth w20, w25
cmp w20, w0
- bne .L2930
+ bne .L3064
adrp x1, .LANCHOR3
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR3
- mov w2, 1714
- add x1, x1, 656
+ mov w2, 1799
+ add x1, x1, 688
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L2930:
+.L3064:
add x21, x19, :lo12:.LANCHOR0
ldr x0, [x21,608]
ldr w1, [x0,600]
@@ -18339,47 +19393,47 @@ gc_block_vpn_scan:
mov w0, w20
bl ftl_get_blk_list_in_sblk
uxth w1, w0
- cbz w1, .L2924
+ cbz w1, .L3058
uxtw x22, w20
ldr x24, [x21,584]
add x24, x24, x22, lsl 2
ldrb w1, [x24,2]
tst w1, 192
and w2, w1, 224
- beq .L2931
+ beq .L3065
cmp w2, 224
- beq .L2931
+ beq .L3065
ldr x1, [x21,608]
ldrh w3, [x1,16]
cmp w3, w20
- beq .L2931
+ beq .L3065
ldrh w3, [x1,48]
cmp w3, w20
- beq .L2931
+ beq .L3065
ldrh w1, [x1,80]
cmp w1, w20
- bne .L2932
-.L2931:
- cbnz w2, .L2924
+ bne .L3066
+.L3065:
+ cbnz w2, .L3058
add x0, x19, :lo12:.LANCHOR0
lsl x22, x22, 1
ldr x0, [x0,600]
ldrh w0, [x0,x22]
- cbz w0, .L2933
+ cbz w0, .L3067
adrp x1, .LANCHOR3
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR3
- mov w2, 1730
- add x1, x1, 656
+ mov w2, 1815
+ add x1, x1, 688
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L2933:
+.L3067:
add x19, x19, :lo12:.LANCHOR0
ldr x0, [x19,600]
strh wzr, [x0,x22]
- b .L2924
-.L2932:
+ b .L3058
+.L3066:
and w0, w0, 65535
add x1, x29, 144
sub w0, w0, #1
@@ -18387,36 +19441,36 @@ gc_block_vpn_scan:
ldrh w21, [x0,-16]
mov w0, 65535
cmp w21, w0
- bne .L2935
+ bne .L3069
adrp x1, .LANCHOR3
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR3
- mov w2, 1736
- add x1, x1, 656
+ mov w2, 1821
+ add x1, x1, 688
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L2935:
+.L3069:
add x2, x19, :lo12:.LANCHOR0
ldrb w3, [x24,2]
mov w26, 1
and w3, w3, 224
ldrh w0, [x2,3300]
cmp w3, 160
- ldrh w1, [x2,3350]
+ ldrh w1, [x2,3348]
sub w0, w0, #1
mul w1, w21, w1
uxth w0, w0
- bne .L2936
+ bne .L3070
ldrb w3, [x2,3257]
cmp w3, 2
uxth w26, w3
orr w1, w1, w3, lsl 24
- bne .L2936
+ bne .L3070
ldrh w0, [x2,3274]
sub w0, w0, #1
uxth w0, w0
-.L2936:
+.L3070:
orr w21, w0, w1
mov w0, 1
bl buf_alloc
@@ -18434,30 +19488,30 @@ gc_block_vpn_scan:
bl ftl_memset
ldr w0, [x23,52]
cmp w0, 512
- beq .L2948
+ beq .L3082
cmn w0, #1
cset w2, eq
- cbz w2, .L2937
-.L2948:
+ cbz w2, .L3071
+.L3082:
mov w0, w20
mov w1, 1
mov w2, 0
- b .L2961
-.L2937:
+ b .L3095
+.L3071:
ldr x0, [x23,24]
ldr w1, [x0]
mov w0, 15555
movk w0, 0xf55f, lsl 16
cmp w1, w0
- beq .L2939
+ beq .L3073
mov w0, w20
mov w1, 1
-.L2961:
+.L3095:
bl gc_add_sblk
mov x0, x23
bl buf_free
- b .L2924
-.L2939:
+ b .L3058
+.L3073:
ldrb w0, [x21,3276]
mov x27, 0
ldrh w1, [x21,3300]
@@ -18468,22 +19522,22 @@ gc_block_vpn_scan:
uxth w0, w26
ldr x26, [x23,8]
str w0, [x29,108]
-.L2940:
+.L3074:
ldr w0, [x29,108]
cmp w0, w27
- ble .L2962
+ ble .L3096
ldr w0, [x26,x27,lsl 2]
cmn w0, #1
- beq .L2941
+ beq .L3075
bl lpa_hash_get_ppa
str w0, [x29,124]
cmn w0, #1
- bne .L2942
+ bne .L3076
ldr w0, [x26,x27,lsl 2]
add x1, x29, 124
mov w2, 0
bl pm_log2phys
-.L2942:
+.L3076:
add x4, x19, :lo12:.LANCHOR0
mov w1, 21
ldrh w0, [x4,3340]
@@ -18497,39 +19551,39 @@ gc_block_vpn_scan:
and w0, w2, w0
udiv w0, w0, w1
cmp w0, w28
- bne .L2941
+ bne .L3075
add w21, w21, 1
uxth w21, w21
-.L2941:
+.L3075:
add x27, x27, 1
- b .L2940
-.L2962:
+ b .L3074
+.L3096:
mov x0, x23
bl buf_free
adrp x0, .LANCHOR2
ldr w0, [x0,#:lo12:.LANCHOR2]
- tbz x0, 8, .L2944
+ tbz x0, 8, .L3078
add x0, x19, :lo12:.LANCHOR0
ldrb w4, [x24,2]
uxth w1, w25
mov w3, w21
ubfx x4, x4, 5, 3
ldr x2, [x0,600]
- adrp x0, .LC230
- add x0, x0, :lo12:.LC230
+ adrp x0, .LC242
+ add x0, x0, :lo12:.LC242
ldrh w2, [x2,x22,lsl 1]
bl printk
-.L2944:
+.L3078:
add x19, x19, :lo12:.LANCHOR0
cmp w21, 31
ldr x0, [x19,600]
strh w21, [x0,x22,lsl 1]
- bhi .L2924
+ bhi .L3058
mov w0, w20
mov w1, 1
mov w2, 0
bl gc_add_sblk
-.L2924:
+.L3058:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -18561,9 +19615,9 @@ ftl_sblk_dump:
add x1, x0, x25
ldrh w4, [x0,x25]
ldr w5, [x0,x25]
- adrp x0, .LC231
+ adrp x0, .LC243
ldrb w3, [x1,2]
- add x0, x0, :lo12:.LC231
+ add x0, x0, :lo12:.LC243
mov w1, w20
and w4, w4, 2047
ubfx x2, x3, 5, 3
@@ -18573,19 +19627,19 @@ ftl_sblk_dump:
mov w1, 65535
mov w0, 0
cmp w20, w1
- beq .L2964
+ beq .L3098
ldrh w1, [x19,576]
cmp w1, w20
- bls .L2964
+ bls .L3098
ldr x0, [x19,584]
mov w26, 1
add x0, x0, x25
ldrb w0, [x0,2]
and w0, w0, 224
cmp w0, 160
- bne .L2965
+ bne .L3099
ldrb w26, [x19,3257]
-.L2965:
+.L3099:
add x1, x29, 192
mov w0, w20
strh w20, [x29,176]
@@ -18606,8 +19660,8 @@ ftl_sblk_dump:
mul w1, w1, w2
strh w1, [x29,182]
ldr x1, [x0,584]
- adrp x0, .LC232
- add x0, x0, :lo12:.LC232
+ adrp x0, .LC244
+ add x0, x0, :lo12:.LC244
add x1, x1, x25
ldrb w2, [x1,2]
mov w1, w20
@@ -18616,56 +19670,56 @@ ftl_sblk_dump:
mov w0, 1
bl buf_alloc
mov x28, x0
- adrp x0, .LC186
+ adrp x0, .LC190
str w22, [x29,152]
- add x0, x0, :lo12:.LC186
+ add x0, x0, :lo12:.LC190
str x0, [x29,120]
adrp x0, .LANCHOR3
add x0, x0, :lo12:.LANCHOR3
- add x0, x0, 680
+ add x0, x0, 712
str x0, [x29,112]
-.L2966:
+.L3100:
add x21, x23, :lo12:.LANCHOR0
ldrh w0, [x21,3300]
cmp w0, w19
- bls .L2982
+ bls .L3116
lsl w0, w19, 1
str wzr, [x29,156]
sub w0, w0, #1
str w0, [x29,132]
-.L2983:
+.L3117:
ldrb w0, [x29,185]
ldr w1, [x29,156]
cmp w0, w1
- bls .L2980
+ bls .L3114
mov w24, 1
-.L2981:
+.L3115:
cmp w24, w26
ldr w0, [x29,156]
- bhi .L3000
+ bhi .L3134
add x1, x29, 176
add x0, x1, x0, sxtw 1
ldrh w2, [x0,16]
mov w0, 65535
cmp w2, w0
- beq .L2967
+ beq .L3101
add x1, x23, :lo12:.LANCHOR0
cmp w26, 3
- ldrh w0, [x1,3350]
+ ldrh w0, [x1,3348]
mul w0, w2, w0
add w21, w0, w19
- bne .L2968
+ bne .L3102
orr w21, w21, w24, lsl 24
- b .L2969
-.L2968:
+ b .L3103
+.L3102:
cmp w26, 2
- bne .L2969
+ bne .L3103
ldr w3, [x29,132]
ldrb w21, [x1,3257]
add w0, w0, w3
add w0, w0, w24
orr w21, w0, w21, lsl 24
-.L2969:
+.L3103:
mov w1, 1
str w21, [x28,40]
mov x0, x28
@@ -18697,23 +19751,23 @@ ftl_sblk_dump:
bl printk
ldr x9, [x29,104]
cmp w9, 512
- beq .L2987
+ beq .L3121
cmn w9, #1
- bne .L2971
-.L2987:
+ bne .L3105
+.L3121:
mov w0, 1
str w0, [x29,152]
-.L2971:
+.L3105:
add x0, x23, :lo12:.LANCHOR0
ldr x0, [x0,584]
add x0, x0, x25
ldrb w0, [x0,2]
and w0, w0, 224
cmp w0, 32
- beq .L2967
+ beq .L3101
cmp w0, 224
cset w2, eq
- cbnz w2, .L2967
+ cbnz w2, .L3101
ldr x0, [x28,24]
str x2, [x29,104]
ldr w0, [x0,4]
@@ -18721,82 +19775,82 @@ ftl_sblk_dump:
str w0, [x29,172]
cmn w0, #1
ldr x2, [x29,104]
- bne .L2973
+ bne .L3107
ldr x0, [x28,24]
add x1, x29, 172
ldr w0, [x0,4]
bl pm_log2phys
-.L2973:
+.L3107:
ldr w0, [x29,172]
cmp w0, w21
- bne .L2974
+ bne .L3108
ldr x2, [x28,24]
add w22, w22, 1
- adrp x0, .LC233
+ adrp x0, .LC245
mov w1, w21
- add x0, x0, :lo12:.LC233
+ add x0, x0, :lo12:.LC245
mov w3, w22
ldr w2, [x2,4]
bl printk
-.L2974:
+.L3108:
ldr x0, [x29,144]
- cbz x0, .L2976
+ cbz x0, .L3110
ubfiz x21, x27, 2, 32
ldr w2, [x0,x21]
ldr x0, [x28,24]
ldr w0, [x0,4]
cmp w0, w2
- beq .L2977
+ beq .L3111
adrp x0, .LANCHOR2
ldr w0, [x0,#:lo12:.LANCHOR2]
- tbz x0, 12, .L2977
- adrp x0, .LC234
+ tbz x0, 12, .L3111
+ adrp x0, .LC246
mov w1, w27
- add x0, x0, :lo12:.LC234
+ add x0, x0, :lo12:.LC246
bl printk
-.L2977:
+.L3111:
ldr x0, [x29,144]
ldr x1, [x28,24]
ldr w0, [x0,x21]
ldr w1, [x1,4]
cmp w1, w0
- beq .L2976
+ beq .L3110
cmn w0, #1
- beq .L2976
+ beq .L3110
adrp x0, .LC0
ldr x1, [x29,112]
mov w2, 1299
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L2976:
+.L3110:
add w27, w27, 1
-.L2967:
+.L3101:
add w24, w24, 1
uxth w24, w24
- b .L2981
-.L3000:
+ b .L3115
+.L3134:
add w0, w0, 1
uxth w0, w0
str w0, [x29,156]
- b .L2983
-.L2980:
+ b .L3117
+.L3114:
add w19, w19, 1
uxth w19, w19
- b .L2966
-.L2982:
+ b .L3100
+.L3116:
mov x0, x28
bl buf_free
ldr x3, [x29,136]
- adrp x0, .LC235
+ adrp x0, .LC247
ldr x2, [x21,600]
- add x0, x0, :lo12:.LC235
+ add x0, x0, :lo12:.LC247
mov w1, w20
ldrh w2, [x2,x3,lsl 1]
mov w3, w22
bl printk
ldr w0, [x29,152]
-.L2964:
+.L3098:
sub sp, x29, #48
ldp x19, x20, [sp,64]
ldp x21, x22, [sp,80]
@@ -18811,43 +19865,44 @@ ftl_sblk_dump:
.global zftl_read
.type zftl_read, %function
zftl_read:
- stp x29, x30, [sp, -160]!
- add x29, sp, 0
- stp x19, x20, [sp,16]
+ sub sp, sp, #176
+ stp x29, x30, [sp,16]
+ add x29, sp, 16
+ stp x19, x20, [sp,32]
mov w19, w0
adrp x0, .LANCHOR2
- stp x21, x22, [sp,32]
- stp x23, x24, [sp,48]
+ stp x21, x22, [sp,48]
+ stp x23, x24, [sp,64]
ldr w0, [x0,#:lo12:.LANCHOR2]
mov w22, w1
- stp x25, x26, [sp,64]
- stp x27, x28, [sp,80]
+ stp x25, x26, [sp,80]
+ stp x27, x28, [sp,96]
mov w25, w2
mov x23, x3
- tbz x0, 12, .L3002
- adrp x0, .LC236
+ tbz x0, 12, .L3136
+ adrp x0, .LC248
mov w1, w19
- add x0, x0, :lo12:.LC236
+ add x0, x0, :lo12:.LC248
mov w2, w22
mov w3, w25
bl printk
-.L3002:
- cbnz w19, .L3003
+.L3136:
+ cbnz w19, .L3137
adrp x0, .LANCHOR0+520
mov w19, 24576
ldr w2, [x0,#:lo12:.LANCHOR0+520]
- b .L3004
-.L3003:
+ b .L3138
+.L3137:
cmp w19, 3
mov w0, -1
- bhi .L3005
+ bhi .L3139
lsl w19, w19, 13
mov w2, 8192
-.L3004:
+.L3138:
add w1, w22, w25
mov w0, -1
cmp w1, w2
- bhi .L3005
+ bhi .L3139
add w22, w19, w22
adrp x19, .LANCHOR0
add x1, x19, :lo12:.LANCHOR0
@@ -18870,10 +19925,10 @@ zftl_read:
str x0, [x29,128]
adrp x0, .LANCHOR3
add x0, x0, :lo12:.LANCHOR3
- add x0, x0, 696
+ add x0, x0, 728
str x0, [x29,120]
-.L3006:
- cbz w24, .L3066
+.L3140:
+ cbz w24, .L3200
add x0, x19, :lo12:.LANCHOR0
ldr w1, [x29,136]
cmp w20, w27
@@ -18882,12 +19937,12 @@ zftl_read:
ldrb w0, [x0,2832]
cset w26, eq
uxth w21, w0
- cbnz w26, .L3036
- cbz w2, .L3007
- b .L3065
-.L3036:
- cbz w2, .L3009
-.L3065:
+ cbnz w26, .L3170
+ cbz w2, .L3141
+ b .L3199
+.L3170:
+ cbz w2, .L3143
+.L3199:
udiv w26, w22, w0
msub w26, w26, w0, w22
uxth w0, w25
@@ -18896,21 +19951,21 @@ zftl_read:
uxth w21, w21
cmp w21, w25
csel w21, w0, w21, hi
- b .L3007
-.L3009:
+ b .L3141
+.L3143:
msub w21, w0, w20, w28
mov w26, w2
uxtb w21, w21
-.L3007:
+.L3141:
add x1, x19, :lo12:.LANCHOR0
mov w0, 0
add x1, x1, 784
-.L3012:
+.L3146:
ldr w2, [x1,36]
cmp w2, w20
- bne .L3010
+ bne .L3144
ldrb w2, [x1,2]
- tbz x2, 3, .L3010
+ tbz x2, 3, .L3144
add x2, x19, :lo12:.LANCHOR0
ubfiz x1, x0, 6, 32
add x0, x2, x1
@@ -18922,48 +19977,48 @@ zftl_read:
add x23, x23, x21
add x1, x1, x26
bl ftl_memcpy
- b .L3011
-.L3010:
+ b .L3145
+.L3144:
add w0, w0, 1
add x1, x1, 64
cmp w0, 32
- bne .L3012
+ bne .L3146
mov w0, w20
bl lpa_hash_get_ppa
str w0, [x29,156]
cmn w0, #1
- bne .L3013
+ bne .L3147
mov w0, w20
add x1, x29, 156
mov w2, 0
bl pm_log2phys
-.L3013:
+.L3147:
ldr w0, [x29,156]
cmn w0, #1
- bne .L3014
+ bne .L3148
mov w21, 0
-.L3015:
+.L3149:
add x0, x19, :lo12:.LANCHOR0
ldrb w0, [x0,2832]
cmp w21, w0
- bcs .L3011
+ bcs .L3145
madd w0, w20, w0, w21
cmp w0, w22
- bcc .L3016
+ bcc .L3150
cmp w0, w28
- bcs .L3016
+ bcs .L3150
mov x0, x23
mov w1, 0
mov w2, 512
add x23, x23, 512
bl ftl_memset
-.L3016:
+.L3150:
add w21, w21, 1
- b .L3015
-.L3014:
+ b .L3149
+.L3148:
mov w0, 0
bl buf_alloc
- cbz x0, .L3018
+ cbz x0, .L3152
add x2, x19, :lo12:.LANCHOR0
ldr x3, [x2,2864]
ldr w2, [x3,40]
@@ -18979,110 +20034,112 @@ zftl_read:
str w20, [x0,36]
strb w26, [x0,57]
bl zftl_add_read_buf
-.L3011:
+.L3145:
add w20, w20, 1
sub w24, w24, #1
-.L3018:
- cbz w24, .L3037
+.L3152:
+ cbz w24, .L3171
add x0, x19, :lo12:.LANCHOR0
ldrb w0, [x0,2834]
cmp w0, 2
- bhi .L3006
-.L3037:
+ bhi .L3140
+.L3171:
add x2, x19, :lo12:.LANCHOR0
- ldrb w1, [x2,3894]
- cbz w1, .L3006
+ ldrb w1, [x2,3886]
+ cbz w1, .L3140
add x0, x2, 784
- ldrb w2, [x2,3893]
+ ldrb w2, [x2,3885]
add x0, x0, x2, lsl 6
bl sblk_read_page
-.L3021:
+.L3155:
add x0, x19, :lo12:.LANCHOR0
- ldrb w1, [x0,3894]
- cbz w1, .L3067
- ldrb w0, [x0,3893]
+ ldrb w1, [x0,3886]
+ cbz w1, .L3201
+ ldrb w0, [x0,3885]
cmp w0, 255
- bne .L3022
+ bne .L3156
ldr x1, [x29,120]
- mov w2, 1065
+ mov w2, 1070
ldr x0, [x29,128]
bl printk
bl dump_stack
-.L3022:
- add x2, x19, :lo12:.LANCHOR0
- add x1, x2, 784
- ldrb w21, [x2,3893]
+.L3156:
+ add x5, x19, :lo12:.LANCHOR0
+ add x1, x5, 784
+ ldrb w21, [x5,3885]
lsl x0, x21, 6
add x26, x1, x0
ldrb w0, [x1,x0]
ldr w8, [x26,52]
- strb w0, [x2,3893]
+ strb w0, [x5,3885]
cmn w8, #1
- bne .L3023
- ldr x1, [x2,608]
+ bne .L3157
+ ldr x1, [x5,608]
str w8, [x29,140]
ldr w0, [x1,552]
add w0, w0, 1
str w0, [x1,552]
- b .L3024
-.L3023:
+ b .L3158
+.L3157:
cmp w8, 256
- bne .L3024
- ldrh w0, [x2,3340]
+ bne .L3158
+ ldrh w0, [x5,3340]
mov w1, 21
- mov w5, 1
+ mov w6, 1
ldr w3, [x26,40]
sub w4, w1, w0
- str x8, [x29,96]
- lsl w4, w5, w4
+ ldr w2, [x26,36]
+ lsl w4, w6, w4
lsr w0, w3, w0
sub w4, w4, #1
- str x5, [x29,104]
+ str x8, [x29,96]
and w0, w4, w0
- ldrb w4, [x2,3338]
- ldr w2, [x26,36]
+ ldrb w4, [x5,3338]
+ str x6, [x29,104]
udiv w4, w0, w4
- adrp x0, .LC237
- add x0, x0, :lo12:.LC237
+ adrp x0, .LC249
+ add x0, x0, :lo12:.LC249
str x4, [x29,112]
uxth w1, w4
bl printk
ldr x4, [x29,112]
mov w2, 0
- ldr x5, [x29,104]
+ ldr x6, [x29,104]
mov w0, w4
- mov w1, w5
+ mov w1, w6
bl gc_add_sblk
ldr x8, [x29,96]
-.L3024:
+.L3158:
add x9, x19, :lo12:.LANCHOR0
- add x1, x9, 784
- add x1, x1, x21, lsl 6
- add x10, x1, 32
- ldr x0, [x1,24]
- ldr w3, [x0,4]
- ldr w0, [x1,36]
- cmp w3, w0
- beq .L3025
+ add x0, x9, 784
+ add x0, x0, x21, lsl 6
+ add x10, x0, 32
+ ldr x1, [x0,24]
+ ldr w3, [x1,4]
+ ldr w1, [x0,36]
+ cmp w3, w1
+ beq .L3159
ldr x3, [x9,608]
- str x8, [x29,96]
- str x9, [x29,104]
- ldr w0, [x3,552]
+ mov w2, w8
+ str x8, [x29,104]
+ str x9, [x29,96]
+ ldr w1, [x3,552]
str x10, [x29,112]
- add w0, w0, 1
- str w0, [x3,552]
- adrp x0, .LC238
- ldr x7, [x1,24]
- add x0, x0, :lo12:.LC238
- ldr w2, [x10,4]
- ldr w3, [x10,8]
- ldr w4, [x7]
- ldr w5, [x7,4]
- ldr w6, [x7,8]
- ldrb w1, [x1,1]
- ldr w7, [x7,12]
+ add w1, w1, 1
+ str w1, [x3,552]
+ ldr x7, [x0,24]
+ ldrb w1, [x0,1]
+ ldr w0, [x7,12]
+ str w0, [sp]
+ adrp x0, .LC250
+ add x0, x0, :lo12:.LC250
+ ldr w3, [x10,4]
+ ldr w4, [x10,8]
+ ldr w5, [x7]
+ ldr w6, [x7,4]
+ ldr w7, [x7,8]
bl printk
- ldr x9, [x29,104]
+ ldr x9, [x29,96]
mov w1, 21
ldr x10, [x29,112]
ldrh w0, [x9,3340]
@@ -19097,8 +20154,8 @@ zftl_read:
udiv w0, w0, w1
mov x1, 0
bl ftl_sblk_dump
- ldr x8, [x29,96]
-.L3025:
+ ldr x8, [x29,104]
+.L3159:
add x0, x19, :lo12:.LANCHOR0
add x0, x0, 784
add x0, x0, x21, lsl 6
@@ -19106,62 +20163,64 @@ zftl_read:
ldr w0, [x0,36]
ldr w1, [x1,4]
cmp w1, w0
- bne .L3038
+ bne .L3172
cmn w8, #1
- bne .L3026
-.L3038:
+ bne .L3160
+.L3172:
ldr x1, [x29,120]
- mov w2, 1086
+ mov w2, 1091
ldr x0, [x29,128]
bl printk
bl dump_stack
-.L3026:
+.L3160:
add x1, x19, :lo12:.LANCHOR0
add x0, x1, 784
add x21, x0, x21, lsl 6
ldrb w1, [x1,2832]
ldrb w2, [x21,56]
cmp w1, w2
- bls .L3028
+ bls .L3162
ldrb w3, [x21,57]
lsl w2, w2, 9
ldr x1, [x21,8]
ldr x0, [x21,16]
add x1, x1, x3, lsl 9
bl ftl_memcpy
- b .L3029
-.L3028:
+ b .L3163
+.L3162:
ldrb w0, [x21,2]
and w0, w0, -9
strb w0, [x21,2]
-.L3029:
+.L3163:
add x21, x19, :lo12:.LANCHOR0
mov x1, x26
- add x0, x21, 3895
+ add x0, x21, 3887
bl buf_remove_buf
mov x0, x26
bl buf_free
- ldrb w0, [x21,3894]
+ ldrb w0, [x21,3886]
sub w0, w0, #1
- strb w0, [x21,3894]
- b .L3021
-.L3067:
+ strb w0, [x21,3886]
+ b .L3155
+.L3201:
mov w2, -1
- strb w1, [x0,3894]
- strb w2, [x0,3893]
- b .L3006
-.L3066:
+ strb w1, [x0,3886]
+ strb w2, [x0,3885]
+ b .L3140
+.L3200:
bl timer_get_time
- adrp x1, .LANCHOR7-80
- str w0, [x1,#:lo12:.LANCHOR7-80]
+ adrp x1, .LANCHOR7-64
+ str w0, [x1,#:lo12:.LANCHOR7-64]
ldr w0, [x29,140]
-.L3005:
- ldp x19, x20, [sp,16]
- ldp x21, x22, [sp,32]
- ldp x23, x24, [sp,48]
- ldp x25, x26, [sp,64]
- ldp x27, x28, [sp,80]
- ldp x29, x30, [sp], 160
+.L3139:
+ sub sp, x29, #16
+ ldp x19, x20, [sp,32]
+ ldp x21, x22, [sp,48]
+ ldp x23, x24, [sp,64]
+ ldp x25, x26, [sp,80]
+ ldp x27, x28, [sp,96]
+ ldp x29, x30, [sp,16]
+ add sp, sp, 176
ret
.size zftl_read, .-zftl_read
.align 2
@@ -19210,34 +20269,34 @@ zftl_debug_proc_write:
stp x23, x24, [sp,80]
stp x25, x26, [sp,96]
mov x21, x2
- bhi .L3071
+ bhi .L3205
mov x0, x19
bl rk_copy_from_user
mov x22, x0
mov x0, -14
- cbnz x22, .L3071
- adrp x0, .LC239
+ cbnz x22, .L3205
+ adrp x0, .LC251
mov x1, x19
- add x0, x0, :lo12:.LC239
+ add x0, x0, :lo12:.LC251
strb w22, [x19,x21]
bl printk
- adrp x0, .LC240
+ adrp x0, .LC252
mov x1, x19
- add x0, x0, :lo12:.LC240
+ add x0, x0, :lo12:.LC252
mov w2, 1
mov w3, 16
bl rknand_print_hex
bl rknand_device_lock
- adrp x1, .LC241
+ adrp x1, .LC253
mov x0, x19
- add x1, x1, :lo12:.LC241
+ add x1, x1, :lo12:.LC253
mov x2, 7
bl memcmp
- cbnz w0, .L3072
+ cbnz w0, .L3206
adrp x23, .LANCHOR0
- adrp x0, .LC242
+ adrp x0, .LC254
add x19, x23, :lo12:.LANCHOR0
- add x0, x0, :lo12:.LC242
+ add x0, x0, :lo12:.LC254
mov w2, 4
adrp x20, .LANCHOR4
ldr x3, [x19,2864]
@@ -19246,19 +20305,19 @@ zftl_debug_proc_write:
bl rknand_print_hex
add x3, x20, :lo12:.LANCHOR4
ldr x1, [x19,2864]
- adrp x0, .LC243
+ adrp x0, .LC255
mov w2, 2
- add x0, x0, :lo12:.LC243
+ add x0, x0, :lo12:.LC255
add x1, x1, 416
- ldrh w3, [x3,1164]
+ ldrh w3, [x3,1156]
mov w19, w22
mov w22, 65535
bl rknand_print_hex
-.L3073:
+.L3207:
add x0, x20, :lo12:.LANCHOR4
- ldrh w0, [x0,1164]
+ ldrh w0, [x0,1156]
cmp w19, w0
- bge .L3076
+ bge .L3210
mov w0, 300
bl msleep
add x0, x23, :lo12:.LANCHOR0
@@ -19266,63 +20325,63 @@ zftl_debug_proc_write:
add x0, x0, x19, sxtw 1
ldrh w0, [x0,416]
cmp w0, w22
- beq .L3074
+ beq .L3208
mov x1, 0
bl ftl_sblk_dump
-.L3074:
+.L3208:
add w19, w19, 1
- b .L3073
-.L3072:
- adrp x1, .LC244
+ b .L3207
+.L3206:
+ adrp x1, .LC256
mov x0, x19
- add x1, x1, :lo12:.LC244
+ add x1, x1, :lo12:.LC256
mov x2, 7
bl memcmp
- cbnz w0, .L3077
+ cbnz w0, .L3211
adrp x23, .LANCHOR0
- adrp x0, .LC242
+ adrp x0, .LC254
add x20, x23, :lo12:.LANCHOR0
- add x0, x0, :lo12:.LC242
+ add x0, x0, :lo12:.LC254
mov w2, 4
add x22, x29, 192
- adrp x24, .LC247
+ adrp x24, .LC259
ldr x3, [x20,2864]
- add x24, x24, :lo12:.LC247
+ add x24, x24, :lo12:.LC259
add x1, x3, 704
ldrh w3, [x3,698]
bl rknand_print_hex
- adrp x3, .LANCHOR4+1164
+ adrp x3, .LANCHOR4+1156
ldr x1, [x20,2864]
- adrp x0, .LC243
+ adrp x0, .LC255
mov w2, 2
- add x0, x0, :lo12:.LC243
+ add x0, x0, :lo12:.LC255
add x1, x1, 416
- ldrh w3, [x3,#:lo12:.LANCHOR4+1164]
+ ldrh w3, [x3,#:lo12:.LANCHOR4+1156]
bl rknand_print_hex
- adrp x0, .LC245
+ adrp x0, .LC257
add x1, x19, 7
- add x0, x0, :lo12:.LC245
+ add x0, x0, :lo12:.LC257
str x1, [x22,-88]!
- add x19, x20, 3904
+ add x19, x20, 3896
mov x20, x23
bl printk
- adrp x23, .LC246
+ adrp x23, .LC258
ldr x0, [x29,104]
mov x1, x22
add x25, x19, 512
- add x23, x23, :lo12:.LC246
- bl rk_simple_strtoull.constprop.29
+ add x23, x23, :lo12:.LC258
+ bl rk_simple_strtoull.constprop.30
mov w22, w0
str w0, [x29,100]
uxth w26, w0
-.L3079:
+.L3213:
ldrh w1, [x19]
mov x0, x23
ldrh w2, [x19,2]
bl printk
ldrh w0, [x19]
cmp w0, w26
- bne .L3078
+ bne .L3212
add x0, x20, :lo12:.LANCHOR0
ldr x1, [x19,8]
mov w2, 4
@@ -19330,10 +20389,10 @@ zftl_debug_proc_write:
mov x0, x24
lsl w3, w3, 7
bl rknand_print_hex
-.L3078:
+.L3212:
add x19, x19, 16
cmp x19, x25
- bne .L3079
+ bne .L3213
mov w0, 300
add x20, x20, :lo12:.LANCHOR0
bl msleep
@@ -19356,8 +20415,8 @@ zftl_debug_proc_write:
str w0, [sp,8]
ldr w0, [x7,12]
str w0, [sp,16]
- adrp x0, .LC209
- add x0, x0, :lo12:.LC209
+ adrp x0, .LC221
+ add x0, x0, :lo12:.LC221
ldr w3, [x6]
ldr w2, [x19,52]
ldr w4, [x6,4]
@@ -19366,61 +20425,61 @@ zftl_debug_proc_write:
ldr w6, [x6,12]
bl printk
ldrb w3, [x20,2832]
- adrp x0, .LC248
- add x0, x0, :lo12:.LC248
+ adrp x0, .LC260
+ add x0, x0, :lo12:.LC260
ldr x1, [x19,8]
mov w2, 4
lsl w3, w3, 7
- b .L3094
-.L3077:
- adrp x1, .LC249
+ b .L3228
+.L3211:
+ adrp x1, .LC261
mov x0, x19
- add x1, x1, :lo12:.LC249
+ add x1, x1, :lo12:.LC261
mov x2, 7
bl memcmp
- cbnz w0, .L3080
+ cbnz w0, .L3214
bl dump_ftl_info
- b .L3076
-.L3080:
- adrp x1, .LC250
+ b .L3210
+.L3214:
+ adrp x1, .LC262
mov x0, x19
- add x1, x1, :lo12:.LC250
+ add x1, x1, :lo12:.LC262
mov x2, 9
bl memcmp
- cbnz w0, .L3081
+ cbnz w0, .L3215
add x1, x29, 192
add x0, x19, 9
str x0, [x1,-88]!
- bl rk_simple_strtoull.constprop.29
+ bl rk_simple_strtoull.constprop.30
str w0, [x29,100]
adrp x1, .LANCHOR0+3336
strh w0, [x1,#:lo12:.LANCHOR0+3336]
bl dump_all_list_info
- b .L3076
-.L3081:
- adrp x1, .LC251
+ b .L3210
+.L3215:
+ adrp x1, .LC263
mov x0, x19
- add x1, x1, :lo12:.LC251
+ add x1, x1, :lo12:.LC263
mov x2, 8
bl memcmp
- cbz w0, .L3076
- adrp x1, .LC252
+ cbz w0, .L3210
+ adrp x1, .LC264
mov x0, x19
- add x1, x1, :lo12:.LC252
+ add x1, x1, :lo12:.LC264
mov x2, 8
bl memcmp
- cbnz w0, .L3083
+ cbnz w0, .L3217
add x20, x29, 192
- adrp x0, .LC245
+ adrp x0, .LC257
add x1, x19, 8
- add x0, x0, :lo12:.LC245
+ add x0, x0, :lo12:.LC257
str x1, [x20,-88]!
bl printk
ldr x0, [x29,104]
mov x1, x20
adrp x20, .LANCHOR0
add x20, x20, :lo12:.LANCHOR0
- bl rk_simple_strtoull.constprop.29
+ bl rk_simple_strtoull.constprop.30
str w0, [x29,100]
mov w0, 1
bl buf_alloc
@@ -19438,8 +20497,8 @@ zftl_debug_proc_write:
str w0, [sp,8]
ldr w0, [x7,12]
str w0, [sp,16]
- adrp x0, .LC209
- add x0, x0, :lo12:.LC209
+ adrp x0, .LC221
+ add x0, x0, :lo12:.LC221
ldr w3, [x6]
ldr w4, [x6,4]
ldr w5, [x6,8]
@@ -19448,129 +20507,129 @@ zftl_debug_proc_write:
ldr w7, [x7]
bl printk
ldrb w3, [x20,2832]
- adrp x0, .LC204
+ adrp x0, .LC216
ldr x1, [x19,8]
- add x0, x0, :lo12:.LC204
+ add x0, x0, :lo12:.LC216
mov w2, 4
lsl w3, w3, 7
bl rknand_print_hex
ldrb w3, [x20,2832]
- adrp x0, .LC205
+ adrp x0, .LC217
ldr x1, [x19,24]
- add x0, x0, :lo12:.LC205
+ add x0, x0, :lo12:.LC217
mov w2, 4
lsl w3, w3, 1
-.L3094:
+.L3228:
bl rknand_print_hex
mov x0, x19
bl buf_free
- b .L3076
-.L3083:
- adrp x1, .LC253
+ b .L3210
+.L3217:
+ adrp x1, .LC265
mov x0, x19
- add x1, x1, :lo12:.LC253
+ add x1, x1, :lo12:.LC265
mov x2, 8
bl memcmp
- cbnz w0, .L3084
+ cbnz w0, .L3218
add x20, x29, 192
- adrp x0, .LC245
+ adrp x0, .LC257
add x1, x19, 8
- add x0, x0, :lo12:.LC245
+ add x0, x0, :lo12:.LC257
str x1, [x20,-88]!
bl printk
ldr x0, [x29,104]
mov x1, x20
- bl rk_simple_strtoull.constprop.29
+ bl rk_simple_strtoull.constprop.30
str w0, [x29,100]
mov x1, x22
bl ftl_sblk_dump
- b .L3076
-.L3084:
- adrp x1, .LC254
+ b .L3210
+.L3218:
+ adrp x1, .LC266
mov x0, x19
- add x1, x1, :lo12:.LC254
+ add x1, x1, :lo12:.LC266
mov x2, 10
bl memcmp
- cbnz w0, .L3085
+ cbnz w0, .L3219
add x20, x29, 192
- adrp x0, .LC245
+ adrp x0, .LC257
add x1, x19, 10
- add x0, x0, :lo12:.LC245
+ add x0, x0, :lo12:.LC257
str x1, [x20,-88]!
bl printk
ldr x0, [x29,104]
mov x1, x20
- bl rk_simple_strtoull.constprop.29
+ bl rk_simple_strtoull.constprop.30
str w0, [x29,100]
adrp x1, .LANCHOR2
str w0, [x1,#:lo12:.LANCHOR2]
- b .L3076
-.L3085:
- adrp x1, .LC255
+ b .L3210
+.L3219:
+ adrp x1, .LC267
mov x2, 8
mov x0, x19
- add x1, x1, :lo12:.LC255
+ add x1, x1, :lo12:.LC267
bl memcmp
mov w2, w0
str x2, [x29,88]
- cbnz w0, .L3086
+ cbnz w0, .L3220
add x1, x19, 8
- adrp x0, .LC245
+ adrp x0, .LC257
add x19, x29, 192
- add x0, x0, :lo12:.LC245
+ add x0, x0, :lo12:.LC257
str x1, [x19,-88]!
bl printk
ldr x0, [x29,104]
mov x1, x19
- bl rk_simple_strtoull.constprop.29
+ bl rk_simple_strtoull.constprop.30
mov w19, w0
bl lpa_hash_get_ppa
str w0, [x29,100]
cmn w0, #1
ldr x2, [x29,88]
- bne .L3087
+ bne .L3221
mov w0, w19
add x1, x29, 100
bl pm_log2phys
-.L3087:
- adrp x0, .LC256
+.L3221:
+ adrp x0, .LC268
ldr w2, [x29,100]
mov w1, w19
- add x0, x0, :lo12:.LC256
+ add x0, x0, :lo12:.LC268
bl printk
- b .L3076
-.L3086:
- adrp x0, .LC257
- add x0, x0, :lo12:.LC257
+ b .L3210
+.L3220:
+ adrp x0, .LC269
+ add x0, x0, :lo12:.LC269
bl printk
- adrp x0, .LC258
- add x0, x0, :lo12:.LC258
+ adrp x0, .LC270
+ add x0, x0, :lo12:.LC270
bl printk
- adrp x0, .LC259
- add x0, x0, :lo12:.LC259
+ adrp x0, .LC271
+ add x0, x0, :lo12:.LC271
bl printk
- adrp x0, .LC260
- add x0, x0, :lo12:.LC260
+ adrp x0, .LC272
+ add x0, x0, :lo12:.LC272
bl printk
- adrp x0, .LC261
- add x0, x0, :lo12:.LC261
+ adrp x0, .LC273
+ add x0, x0, :lo12:.LC273
bl printk
- adrp x0, .LC262
- add x0, x0, :lo12:.LC262
+ adrp x0, .LC274
+ add x0, x0, :lo12:.LC274
bl printk
- adrp x0, .LC263
- add x0, x0, :lo12:.LC263
+ adrp x0, .LC275
+ add x0, x0, :lo12:.LC275
bl printk
- adrp x0, .LC264
- add x0, x0, :lo12:.LC264
+ adrp x0, .LC276
+ add x0, x0, :lo12:.LC276
bl printk
- adrp x0, .LC265
- add x0, x0, :lo12:.LC265
+ adrp x0, .LC277
+ add x0, x0, :lo12:.LC277
bl printk
-.L3076:
+.L3210:
bl rknand_device_unlock
mov x0, x21
-.L3071:
+.L3205:
sub sp, x29, #32
ldp x19, x20, [sp,48]
ldp x21, x22, [sp,64]
@@ -19597,118 +20656,118 @@ gc_check_data_one_wl:
ldr x0, [x20,2904]
ldr x23, [x20,608]
add x20, x20, 2896
- cbnz x0, .L3096
+ cbnz x0, .L3230
mov w0, 1
bl buf_alloc
str x0, [x20,8]
-.L3096:
+.L3230:
add x0, x19, :lo12:.LANCHOR0
ldr x20, [x0,2904]
- cbnz x20, .L3097
+ cbnz x20, .L3231
adrp x1, .LANCHOR3
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR3
- mov w2, 367
- add x1, x1, 712
+ mov w2, 447
+ add x1, x1, 744
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L3097:
+.L3231:
mov w24, 0
add x25, x23, 80
add x21, x19, :lo12:.LANCHOR0
adrp x27, .LANCHOR4
-.L3098:
+.L3232:
ldrb w0, [x25,9]
cmp w24, w0
- bge .L3121
+ bge .L3255
mov w22, 1
sxtw x28, w24
-.L3107:
+.L3241:
add x0, x21, 2896
ldrh w1, [x0,20]
cmp w22, w1
- bgt .L3122
+ bgt .L3256
add x1, x28, 8
- ldrh w2, [x21,3350]
+ ldrh w2, [x21,3348]
ldrh w0, [x0,16]
ldrh w1, [x25,x1,lsl 1]
mul w1, w1, w2
ldrb w2, [x21,3257]
cmp w2, 3
- bne .L3099
+ bne .L3233
add w1, w1, w0
orr w1, w1, w22, lsl 24
- b .L3120
-.L3099:
+ b .L3254
+.L3233:
cmp w2, 2
- bne .L3101
+ bne .L3235
sub w0, w0, #1
add w1, w0, w1
add w1, w1, w22
orr w1, w1, 33554432
- b .L3120
-.L3101:
+ b .L3254
+.L3235:
add w1, w1, w0
-.L3120:
+.L3254:
str w1, [x20,40]
mov x0, x20
mov w1, 1
bl sblk_read_page
ldr w0, [x20,52]
cmn w0, #1
- beq .L3102
+ beq .L3236
add x2, x27, :lo12:.LANCHOR4
ldrh w0, [x21,2918]
ldr x1, [x20,24]
lsl x0, x0, 2
- ldr x3, [x2,1136]
+ ldr x3, [x2,1128]
ldr w4, [x3,x0]
ldr w3, [x1,4]
cmp w4, w3
- bne .L3102
- ldr x2, [x2,1144]
+ bne .L3236
+ ldr x2, [x2,1136]
ldr w2, [x2,x0]
ldr w0, [x1,8]
cmp w2, w0
- beq .L3103
-.L3102:
+ beq .L3237
+.L3236:
add x26, x27, :lo12:.LANCHOR4
ldrh w0, [x21,2918]
add x4, x21, 2896
- ldr x1, [x26,1136]
+ ldr x1, [x26,1128]
ldr w0, [x1,x0,lsl 2]
cmn w0, #1
- beq .L3103
+ beq .L3237
ldrb w5, [x25,9]
- adrp x0, .LC266
+ adrp x0, .LC278
ldrh w3, [x21,3274]
- add x0, x0, :lo12:.LC266
+ add x0, x0, :lo12:.LC278
mov w2, 4
str x4, [x29,104]
mul w3, w5, w3
bl rknand_print_hex
ldrb w5, [x25,9]
- adrp x0, .LC267
+ adrp x0, .LC279
ldrh w3, [x21,3274]
- add x0, x0, :lo12:.LC267
- ldr x1, [x26,1144]
+ add x0, x0, :lo12:.LC279
+ ldr x1, [x26,1136]
mov w2, 4
mul w3, w5, w3
bl rknand_print_hex
adrp x0, .LANCHOR2
ldr x4, [x29,104]
ldr w0, [x0,#:lo12:.LANCHOR2]
- tbz x0, 10, .L3104
+ tbz x0, 10, .L3238
ldr x7, [x20,24]
ldrh w4, [x4,22]
- ldr x5, [x26,1144]
+ ldr x5, [x26,1136]
ldr w0, [x7,12]
lsl x4, x4, 2
- ldr x3, [x26,1136]
+ ldr x3, [x26,1128]
str w0, [sp]
- adrp x0, .LC268
- add x0, x0, :lo12:.LC268
+ adrp x0, .LC280
+ add x0, x0, :lo12:.LC280
ldr w3, [x3,x4]
ldr w6, [x7,4]
ldr w4, [x5,x4]
@@ -19717,7 +20776,7 @@ gc_check_data_one_wl:
ldr w2, [x20,52]
ldr w7, [x7,8]
bl printk
-.L3104:
+.L3238:
add x19, x19, :lo12:.LANCHOR0
mov x1, 0
ldr x0, [x19,608]
@@ -19727,27 +20786,27 @@ gc_check_data_one_wl:
ldrh w1, [x23,80]
strh wzr, [x0,x1,lsl 1]
mov w0, -1
- b .L3105
-.L3103:
+ b .L3239
+.L3237:
ldrh w0, [x21,2918]
add w22, w22, 1
add w0, w0, 1
strh w0, [x21,2918]
- b .L3107
-.L3122:
+ b .L3241
+.L3256:
add w24, w24, 1
- b .L3098
-.L3121:
+ b .L3232
+.L3255:
add x19, x19, :lo12:.LANCHOR0
ldrh w1, [x19,2912]
- ldrb w3, [x19,3348]
+ ldrb w3, [x19,3258]
add w0, w1, 1
strh w0, [x19,2912]
mov w0, 0
- cbz w3, .L3105
+ cbz w3, .L3239
add w1, w1, 2
strh w1, [x19,2912]
-.L3105:
+.L3239:
sub sp, x29, #16
ldp x19, x20, [sp,32]
ldp x21, x22, [sp,48]
@@ -19775,39 +20834,39 @@ ftl_update_l2p_map:
ldrb w1, [x23,9]
ldrh w24, [x0,3300]
ldrh w20, [x23,12]
- ldr x0, [x0,3872]
+ ldr x0, [x0,3864]
mul w24, w24, w1
add x20, x0, x20, lsl 2
add x0, x20, x24, sxtw 2
ldr w0, [x0,-4]
cmn w0, #1
- beq .L3124
+ beq .L3258
adrp x1, .LANCHOR3
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR3
- mov w2, 1575
- add x1, x1, 736
+ mov w2, 1627
+ add x1, x1, 768
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L3124:
- adrp x0, .LC270
+.L3258:
+ adrp x0, .LC282
mov x28, 0
- add x0, x0, :lo12:.LC270
- adrp x27, .LC269
+ add x0, x0, :lo12:.LC282
+ adrp x27, .LC281
str x0, [x29,120]
- adrp x0, .LC271
- add x0, x0, :lo12:.LC271
+ adrp x0, .LC283
+ add x0, x0, :lo12:.LC283
mov w22, w28
str x0, [x29,112]
- add x27, x27, :lo12:.LC269
-.L3125:
+ add x27, x27, :lo12:.LC281
+.L3259:
cmp w28, w24
mov w25, w28
- bge .L3152
+ bge .L3286
ldr w2, [x20,x28,lsl 2]
cmn w2, #1
- beq .L3126
+ beq .L3260
add x0, x19, :lo12:.LANCHOR0
ldrb w21, [x0,2832]
adrp x0, .LANCHOR2
@@ -19815,24 +20874,24 @@ ftl_update_l2p_map:
ldr w0, [x0,#:lo12:.LANCHOR2]
udiv w21, w2, w21
and w21, w21, 65535
- tbz x0, 12, .L3130
+ tbz x0, 12, .L3264
mov x0, x27
mov w1, w21
mov w3, w28
bl printk
-.L3130:
+.L3264:
sbfiz x26, x25, 2, 32
ldr w0, [x20,x26]
cmn w0, #1
- beq .L3128
+ beq .L3262
add x3, x19, :lo12:.LANCHOR0
ldrb w1, [x3,2832]
lsl w1, w1, 7
udiv w0, w0, w1
cmp w21, w0, uxth
- bne .L3128
+ bne .L3262
ldrb w0, [x23,9]
- ldrh w2, [x3,3350]
+ ldrh w2, [x3,3348]
str x3, [x29,104]
sdiv w1, w25, w0
msub w0, w1, w0, w25
@@ -19844,13 +20903,13 @@ ftl_update_l2p_map:
ldr w1, [x20,x26]
bl pm_ppa_update_check
ldr x3, [x29,104]
- cbz w0, .L3129
- ldr x1, [x3,3872]
+ cbz w0, .L3263
+ ldr x1, [x3,3864]
mov w2, 4
ldr x0, [x29,112]
mov w3, w24
bl rknand_print_hex
-.L3129:
+.L3263:
ldr w0, [x20,x26]
add x1, x29, 140
mov w2, 1
@@ -19859,27 +20918,27 @@ ftl_update_l2p_map:
uxth w22, w22
mov w0, -1
str w0, [x20,x26]
-.L3128:
+.L3262:
add w25, w25, 1
cmp w25, w24
- bne .L3130
-.L3126:
+ bne .L3264
+.L3260:
add x28, x28, 1
- b .L3125
-.L3152:
+ b .L3259
+.L3286:
adrp x0, .LANCHOR2
ldr w0, [x0,#:lo12:.LANCHOR2]
- tbz x0, 12, .L3132
+ tbz x0, 12, .L3266
add x0, x19, :lo12:.LANCHOR0
ldrh w1, [x23]
mov w2, w22
ubfiz x3, x1, 1, 16
ldr x4, [x0,600]
- adrp x0, .LC272
- add x0, x0, :lo12:.LC272
+ adrp x0, .LC284
+ add x0, x0, :lo12:.LC284
ldrh w3, [x4,x3]
bl printk
-.L3132:
+.L3266:
add x19, x19, :lo12:.LANCHOR0
ldrh w1, [x23]
ldr x0, [x19,600]
@@ -19905,9 +20964,9 @@ ftl_alloc_new_data_sblk:
ldrh w0, [x19]
mov w1, 65535
cmp w0, w1
- beq .L3154
+ beq .L3288
bl zftl_insert_data_list
-.L3154:
+.L3288:
adrp x0, .LANCHOR0+608
mov w2, 2
mov w1, 3
@@ -19941,15 +21000,15 @@ ftl_write_commit:
add x0, x0, :lo12:.LANCHOR4
str x0, [x29,120]
stp x19, x20, [sp,16]
- add x0, x0, 1266
+ add x0, x0, 1241
str x0, [x29,104]
stp x21, x22, [sp,32]
stp x25, x26, [sp,64]
stp x27, x28, [sp,80]
-.L3158:
+.L3292:
ldrb w0, [x24,2856]
adrp x21, .LANCHOR0
- cbz w0, .L3160
+ cbz w0, .L3294
ldrb w1, [x24,2888]
sub w0, w0, #1
ldr x2, [x29,112]
@@ -19962,16 +21021,16 @@ ftl_write_commit:
strb w1, [x24,2888]
ldr w1, [x27,36]
cmp w1, w0
- bcc .L3161
+ bcc .L3295
adrp x1, .LANCHOR3
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR3
- mov w2, 496
- add x1, x1, 760
+ mov w2, 501
+ add x1, x1, 792
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L3161:
+.L3295:
ldr x0, [x29,128]
add x1, x21, :lo12:.LANCHOR0
add x4, x1, 784
@@ -19979,32 +21038,32 @@ ftl_write_commit:
ldr w2, [x1,2840]
ldr w23, [x0,36]
cmp w23, w2
- bcc .L3162
+ bcc .L3296
mov x0, x27
bl buf_free
mov w0, -1
- b .L3216
-.L3162:
+ b .L3350
+.L3296:
ldr x25, [x0,8]
ldr x28, [x0,24]
ldrb w22, [x0,57]
ldrb w20, [x0,56]
ldrb w0, [x1,2857]
- cbz w0, .L3164
+ cbz w0, .L3298
ldr x0, [x29,120]
- ldrb w3, [x0,1266]
+ ldrb w3, [x0,1241]
add x3, x4, x3, lsl 6
-.L3165:
+.L3299:
ldrb w5, [x3]
cmp w5, 255
- beq .L3218
+ beq .L3352
sbfiz x3, x5, 6, 32
add x3, x4, x3
- b .L3165
-.L3218:
+ b .L3299
+.L3352:
ldr w0, [x3,36]
cmp w0, w23
- bne .L3164
+ bne .L3298
ldr x0, [x3,8]
ubfiz x1, x22, 9, 8
lsl w2, w20, 9
@@ -20013,29 +21072,29 @@ ftl_write_commit:
bl ftl_memcpy
mov x0, x27
bl buf_free
- b .L3158
-.L3164:
+ b .L3292
+.L3298:
mov w0, w23
bl lpa_hash_get_ppa
str w0, [x29,156]
cmn w0, #1
- bne .L3168
+ bne .L3302
mov w0, w23
add x1, x29, 156
mov w2, 0
bl pm_log2phys
-.L3168:
+.L3302:
add x4, x21, :lo12:.LANCHOR0
mov w3, 0
add x4, x4, 784
ldr x19, [x4,-176]
add x19, x19, 16
-.L3171:
+.L3305:
ldr w0, [x4,36]
cmp w0, w23
- bne .L3169
+ bne .L3303
ldrb w5, [x4,2]
- tbz x5, 3, .L3169
+ tbz x5, 3, .L3303
add x0, x21, :lo12:.LANCHOR0
ubfiz x3, x3, 6, 32
add x0, x0, 784
@@ -20045,22 +21104,22 @@ ftl_write_commit:
strb w5, [x3,2]
ldr x26, [x3,8]
str w0, [x29,156]
- b .L3170
-.L3169:
+ b .L3304
+.L3303:
add w3, w3, 1
add x4, x4, 64
cmp w3, 32
- bne .L3171
+ bne .L3305
mov x26, 0
-.L3170:
+.L3304:
add x3, x21, :lo12:.LANCHOR0
str wzr, [x29,136]
ldrb w0, [x3,2832]
cmp w20, w0
- bcs .L3172
+ bcs .L3306
add w20, w22, w20
- cbz x26, .L3173
- cbz w22, .L3174
+ cbz x26, .L3307
+ cbz w22, .L3308
mov x0, x25
mov x1, x26
lsl w2, w22, 9
@@ -20069,28 +21128,28 @@ ftl_write_commit:
ldr x3, [x29,136]
ldr x19, [x3,608]
add x19, x19, 48
-.L3174:
+.L3308:
add x0, x21, :lo12:.LANCHOR0
ldrb w2, [x0,2832]
cmp w20, w2
- bcc .L3175
+ bcc .L3309
ldr x19, [x0,608]
add x19, x19, 16
- b .L3217
-.L3175:
+ b .L3351
+.L3309:
ubfiz x1, x20, 9, 9
sub w2, w2, w20
add x0, x25, x1
lsl w2, w2, 9
add x1, x26, x1
bl ftl_memcpy
-.L3217:
+.L3351:
str wzr, [x29,136]
- b .L3172
-.L3173:
+ b .L3306
+.L3307:
ldr w0, [x29,156]
cmn w0, #1
- beq .L3176
+ beq .L3310
mov w0, 1
bl buf_alloc
mov x26, x0
@@ -20105,11 +21164,11 @@ ftl_write_commit:
add w1, w1, 1
str w1, [x29,136]
cmp w0, w23
- bne .L3177
+ bne .L3311
ldr w0, [x26,52]
cmn w0, #1
- bne .L3178
-.L3177:
+ bne .L3312
+.L3311:
add x0, x21, :lo12:.LANCHOR0
ldr w2, [x29,156]
mov w3, w23
@@ -20117,99 +21176,99 @@ ftl_write_commit:
ldr w0, [x1,552]
add w0, w0, 1
str w0, [x1,552]
- adrp x0, .LC273
+ adrp x0, .LC285
ldrb w1, [x26,1]
- add x0, x0, :lo12:.LC273
+ add x0, x0, :lo12:.LC285
ldr w4, [x26,52]
bl printk
- adrp x0, .LC205
+ adrp x0, .LC217
mov w2, 4
ldr x1, [x26,24]
- add x0, x0, :lo12:.LC205
+ add x0, x0, :lo12:.LC217
mov w3, w2
bl rknand_print_hex
-.L3178:
+.L3312:
ldr x0, [x26,24]
ldr w0, [x0,4]
cmp w0, w23
- bne .L3179
+ bne .L3313
ldr w0, [x26,52]
cmn w0, #1
- bne .L3180
-.L3179:
+ bne .L3314
+.L3313:
adrp x1, .LANCHOR3
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR3
- mov w2, 567
- add x1, x1, 760
+ mov w2, 572
+ add x1, x1, 792
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L3180:
- cbz w22, .L3181
+.L3314:
+ cbz w22, .L3315
ldr w0, [x29,156]
lsl w2, w22, 9
cmn w0, #1
- beq .L3182
+ beq .L3316
ldr x1, [x26,8]
mov x0, x25
bl ftl_memcpy
- b .L3183
-.L3176:
- cbz w22, .L3181
+ b .L3317
+.L3310:
+ cbz w22, .L3315
lsl w2, w22, 9
-.L3182:
+.L3316:
mov x0, x25
mov w1, 0
bl ftl_memset
-.L3183:
+.L3317:
add x0, x21, :lo12:.LANCHOR0
ldr x19, [x0,608]
add x19, x19, 48
-.L3181:
+.L3315:
add x0, x21, :lo12:.LANCHOR0
ldrb w2, [x0,2832]
cmp w20, w2
- bcc .L3184
- bls .L3185
+ bcc .L3318
+ bls .L3319
ldr x19, [x0,608]
add x19, x19, 16
- b .L3185
-.L3184:
+ b .L3319
+.L3318:
ldr w0, [x29,156]
sub w2, w2, w20
lsl w2, w2, 9
cmn w0, #1
ubfiz x0, x20, 7, 9
- beq .L3186
+ beq .L3320
ldr x1, [x26,8]
lsl x20, x0, 2
add x0, x25, x20
add x1, x1, x20
bl ftl_memcpy
- b .L3185
-.L3186:
+ b .L3319
+.L3320:
add x0, x25, x0, lsl 2
mov w1, 0
bl ftl_memset
-.L3185:
- cbz x26, .L3172
+.L3319:
+ cbz x26, .L3306
ldrb w0, [x26,2]
mov x1, x26
and w0, w0, -9
strb w0, [x26,2]
add x0, x21, :lo12:.LANCHOR0
- add x0, x0, 3895
+ add x0, x0, 3887
bl buf_remove_buf
mov x0, x26
bl buf_free
-.L3172:
+.L3306:
ldrh w0, [x19,6]
- cbnz w0, .L3187
+ cbnz w0, .L3321
bl ftl_flush
mov x0, x19
bl ftl_alloc_new_data_sblk
-.L3187:
+.L3321:
mov x0, x19
add x20, x21, :lo12:.LANCHOR0
bl ftl_get_new_free_page
@@ -20246,14 +21305,14 @@ ftl_write_commit:
bl timer_get_time
ldr x1, [x29,120]
ldrb w2, [x20,2857]
- str w0, [x1,1268]
+ str w0, [x1,1244]
cmp w2, 2
adrp x0, .LANCHOR4
- bhi .L3188
+ bhi .L3322
ldrh w1, [x19,6]
cmp w1, 1
- bne .L3160
-.L3188:
+ bne .L3294
+.L3322:
ldrb w1, [x19,5]
mov w4, 2
add x6, x21, :lo12:.LANCHOR0
@@ -20264,22 +21323,22 @@ ftl_write_commit:
cmp w1, 1
add x1, x0, :lo12:.LANCHOR4
csel w4, w4, w2, ne
- ldrb w5, [x1,1266]
+ ldrb w5, [x1,1241]
mov w1, 0
mov w3, w5
-.L3192:
+.L3326:
cmp w1, w4
- beq .L3219
+ beq .L3353
ubfiz x3, x3, 6, 8
add w1, w1, 1
ldrb w3, [x6,x3]
- b .L3192
-.L3219:
+ b .L3326
+.L3353:
add x0, x0, :lo12:.LANCHOR4
uxtb w1, w1
sub w2, w2, w1
ubfiz x5, x5, 6, 8
- strb w3, [x0,1266]
+ strb w3, [x0,1241]
add x0, x21, :lo12:.LANCHOR0
add x0, x0, 784
strb w2, [x0,2073]
@@ -20287,20 +21346,20 @@ ftl_write_commit:
bl sblk_prog_page
ldrh w0, [x19,6]
cmp w0, 1
- bne .L3160
+ bne .L3294
bl sblk_wait_write_queue_completed
bl ftl_write_completed
mov x0, x19
bl ftl_write_last_log_page
mov x0, x19
bl ftl_alloc_new_data_sblk
-.L3160:
+.L3294:
add x21, x21, :lo12:.LANCHOR0
ldrb w19, [x21,2856]
- cbnz w19, .L3158
+ cbnz w19, .L3292
bl ftl_write_completed
mov w0, w19
-.L3216:
+.L3350:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -20325,10 +21384,10 @@ gc_do_copy_back:
stp x27, x28, [sp,96]
ldrb w0, [x21,3273]
ldr x22, [x21,608]
- cbnz w0, .L3221
+ cbnz w0, .L3355
bl buf_alloc
mov x20, x0
- cbz x0, .L3220
+ cbz x0, .L3354
ldrh w22, [x21,2922]
mov w0, w22
add w22, w22, 1
@@ -20341,60 +21400,60 @@ gc_do_copy_back:
bl sblk_read_page
ldr w0, [x20,52]
cmp w0, 512
- beq .L3274
+ beq .L3410
cmn w0, #1
- bne .L3223
-.L3274:
+ bne .L3357
+.L3410:
adrp x1, .LANCHOR3
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR3
- mov w2, 601
- add x1, x1, 784
+ mov w2, 684
+ add x1, x1, 816
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L3223:
+.L3357:
ldr x0, [x20,24]
ldr w21, [x0,4]
mov w0, w21
bl lpa_hash_get_ppa
str w0, [x29,144]
cmn w0, #1
- bne .L3225
+ bne .L3359
mov w0, w21
add x1, x29, 144
mov w2, 0
bl pm_log2phys
-.L3225:
+.L3359:
ldr w22, [x29,144]
cmp w22, w23
- bne .L3226
+ bne .L3360
add x1, x19, :lo12:.LANCHOR0
add x0, x1, 784
add x1, x1, 2832
-.L3229:
+.L3363:
ldr w2, [x0,36]
cmp w2, w21
- bne .L3227
+ bne .L3361
ldrb w2, [x0,2]
- tbz x2, 1, .L3227
+ tbz x2, 1, .L3361
mov x0, x20
bl buf_free
adrp x0, .LANCHOR2
ldr w0, [x0,#:lo12:.LANCHOR2]
- tbz x0, 8, .L3220
+ tbz x0, 8, .L3354
add x19, x19, :lo12:.LANCHOR0
- adrp x0, .LC274
+ adrp x0, .LC286
mov w1, w21
mov w2, w22
- add x0, x0, :lo12:.LC274
+ add x0, x0, :lo12:.LC286
ldrh w3, [x19,2922]
bl printk
- b .L3220
-.L3227:
+ b .L3354
+.L3361:
add x0, x0, 64
cmp x0, x1
- bne .L3229
+ bne .L3363
add x23, x19, :lo12:.LANCHOR0
ldrb w1, [x20,2]
str w21, [x20,36]
@@ -20409,20 +21468,20 @@ gc_do_copy_back:
str w0, [x20,32]
adrp x0, .LANCHOR2
ldr w0, [x0,#:lo12:.LANCHOR2]
- tbz x0, 8, .L3230
+ tbz x0, 8, .L3364
ldr w2, [x29,144]
mov w0, w21
str x2, [x29,136]
bl lpa_hash_get_ppa
mov w3, w0
ldr x2, [x29,136]
- adrp x0, .LC275
+ adrp x0, .LC287
ldrh w5, [x23,2922]
- add x0, x0, :lo12:.LC275
+ add x0, x0, :lo12:.LC287
mov w1, w21
mov w4, w22
bl printk
-.L3230:
+.L3364:
add x19, x19, :lo12:.LANCHOR0
mov x0, x20
bl ftl_gc_write_buf
@@ -20434,34 +21493,34 @@ gc_do_copy_back:
ldrh w0, [x19,2924]
add w0, w0, 1
strh w0, [x19,2924]
- b .L3220
-.L3226:
+ b .L3354
+.L3360:
adrp x0, .LANCHOR2
ldr w0, [x0,#:lo12:.LANCHOR2]
- tbz x0, 8, .L3232
+ tbz x0, 8, .L3366
mov w0, w21
add x19, x19, :lo12:.LANCHOR0
bl lpa_hash_get_ppa
mov w3, w0
ldrh w5, [x19,2922]
- adrp x0, .LC275
- add x0, x0, :lo12:.LC275
+ adrp x0, .LC287
+ add x0, x0, :lo12:.LC287
mov w1, w21
mov w2, w22
mov w4, w23
bl printk
-.L3232:
+.L3366:
mov x0, x20
bl buf_free
- b .L3220
-.L3221:
+ b .L3354
+.L3355:
ldrb w24, [x21,3257]
add x0, x21, 2896
add x22, x22, 80
cmp w24, 3
- bne .L3233
+ bne .L3367
ldrb w1, [x21,3272]
- cbz w1, .L3234
+ cbz w1, .L3368
ldrb w20, [x22,9]
ldrh w21, [x0,314]
str w24, [x29,136]
@@ -20470,13 +21529,13 @@ gc_do_copy_back:
sdiv w23, w21, w23
madd w20, w23, w20, w21
uxth w20, w20
- b .L3236
-.L3234:
+ b .L3370
+.L3368:
ldrh w20, [x0,314]
adrp x0, .LANCHOR2
ldrb w21, [x22,9]
add x0, x0, :lo12:.LANCHOR2
- add x0, x0, 1720
+ add x0, x0, 1784
str w24, [x29,136]
sdiv w1, w20, w21
msub w20, w1, w21, w20
@@ -20488,48 +21547,48 @@ gc_do_copy_back:
cmp w25, 1
add w21, w21, w21, lsl 1
uxth w21, w21
- bne .L3237
- b .L3236
-.L3233:
+ bne .L3371
+ b .L3370
+.L3367:
ldrb w20, [x22,9]
- ldrb w1, [x21,3348]
+ ldrb w1, [x21,3258]
ldrh w21, [x0,314]
mov w0, 1
sdiv w23, w21, w20
msub w20, w23, w20, w21
uxth w20, w20
- cbz w1, .L3315
+ cbz w1, .L3452
mov w0, 2
-.L3315:
+.L3452:
str w0, [x29,136]
-.L3236:
+.L3370:
mov w25, 0
add x24, x19, :lo12:.LANCHOR0
adrp x3, .LANCHOR4
-.L3239:
+.L3373:
ldrb w1, [x22,9]
ldr w0, [x29,136]
mul w0, w0, w1
cmp w25, w0
- bge .L3272
+ bge .L3407
ldrh w0, [x24,3274]
add w26, w21, w25
mul w0, w0, w1
sub w0, w0, #1
cmp w26, w0
- beq .L3272
+ beq .L3407
add x0, x3, :lo12:.LANCHOR4
sbfiz x26, x26, 2, 32
- ldr x1, [x0,1144]
+ ldr x1, [x0,1136]
ldr w0, [x1,x26]
cmn w0, #1
- bne .L3240
+ bne .L3374
ldrh w27, [x24,2922]
ldrh w0, [x24,2920]
str x3, [x29,120]
str x1, [x29,128]
cmp w0, w27
- bls .L3220
+ bls .L3354
mov w0, w27
add w27, w27, 1
bl gc_get_src_ppa_from_index
@@ -20537,45 +21596,45 @@ gc_do_copy_back:
ldr x1, [x29,128]
ldr x3, [x29,120]
str w0, [x1,x26]
-.L3240:
+.L3374:
add w25, w25, 1
uxth w25, w25
- b .L3239
-.L3272:
+ b .L3373
+.L3407:
mov w25, 1
-.L3237:
+.L3371:
adrp x0, .LANCHOR2
str x0, [x29,120]
ldr w1, [x0,#:lo12:.LANCHOR2]
- tbz x1, 8, .L3242
- adrp x0, .LANCHOR4+1144
+ tbz x1, 8, .L3376
+ adrp x0, .LANCHOR4+1136
add x4, x19, :lo12:.LANCHOR0
ubfiz x5, x21, 2, 16
mov w1, w23
mov w2, w25
mov w3, w20
- ldr x6, [x0,#:lo12:.LANCHOR4+1144]
- adrp x0, .LC276
+ ldr x6, [x0,#:lo12:.LANCHOR4+1136]
+ adrp x0, .LC288
ldrh w4, [x4,3210]
- add x0, x0, :lo12:.LC276
+ add x0, x0, :lo12:.LC288
ldr w5, [x6,x5]
mov w6, w21
bl printk
-.L3242:
+.L3376:
adrp x0, .LC0
mov w27, 0
add x0, x0, :lo12:.LC0
str x0, [x29,112]
adrp x0, .LANCHOR3
add x0, x0, :lo12:.LANCHOR3
- add x0, x0, 784
+ add x0, x0, 816
str x0, [x29,104]
-.L3243:
- ldrb w0, [x22,9]
- ldr w1, [x29,136]
- mul w0, w1, w0
+.L3377:
+ ldrb w1, [x22,9]
+ ldr w0, [x29,136]
+ mul w0, w0, w1
cmp w27, w0
- bge .L3319
+ bge .L3456
add w26, w21, w27
sxtw x0, w26
str x0, [x29,128]
@@ -20584,11 +21643,11 @@ gc_do_copy_back:
ldr x0, [x0,3264]
ldrb w0, [x0,x1]
cmp w0, 255
- bne .L3244
+ bne .L3378
mov w0, 0
bl buf_alloc
mov x24, x0
- cbnz x0, .L3245
+ cbnz x0, .L3379
bl sblk_wait_write_queue_completed
bl ftl_write_completed
bl gc_write_completed
@@ -20596,8 +21655,8 @@ gc_do_copy_back:
mov w0, w24
bl buf_alloc
mov x24, x0
- cbz x0, .L3220
-.L3245:
+ cbz x0, .L3354
+.L3379:
add x28, x19, :lo12:.LANCHOR0
ldr x2, [x29,128]
ldrb w1, [x24,1]
@@ -20614,21 +21673,21 @@ gc_do_copy_back:
sub w0, w0, #1
cmp w26, w0
adrp x26, .LANCHOR4
- bne .L3246
+ bne .L3380
add x26, x26, :lo12:.LANCHOR4
mov w1, -1
- ldr x0, [x26,1136]
+ ldr x0, [x26,1128]
str w1, [x0,x2,lsl 2]
ldrh w0, [x28,3274]
ldrb w2, [x28,3276]
- ldr x1, [x26,1136]
+ ldr x1, [x26,1128]
mul w2, w0, w2
ldr x0, [x24,8]
lsl w2, w2, 2
bl ftl_memcpy
ldrh w0, [x28,3274]
ldrb w2, [x28,3276]
- ldr x1, [x26,1144]
+ ldr x1, [x26,1136]
mul w2, w0, w2
ldr x0, [x24,8]
add x0, x0, x2, sxtw 2
@@ -20654,23 +21713,23 @@ gc_do_copy_back:
ldr x1, [x28,608]
ldr x0, [x24,24]
ldr w1, [x1,132]
- b .L3316
-.L3246:
+ b .L3453
+.L3380:
ldr x0, [x29,128]
mov w1, 1
lsl x28, x0, 2
add x0, x26, :lo12:.LANCHOR4
- ldr x0, [x0,1144]
+ ldr x0, [x0,1136]
ldr w0, [x0,x28]
str w0, [x24,40]
mov x0, x24
bl sblk_read_page
ldr w0, [x24,52]
cmp w0, 512
- beq .L3247
+ beq .L3381
cmn w0, #1
- bne .L3248
-.L3247:
+ bne .L3382
+.L3381:
add x4, x19, :lo12:.LANCHOR0
mov w2, 21
mov w1, 1
@@ -20687,45 +21746,45 @@ gc_do_copy_back:
bl ftl_sblk_dump
ldr w0, [x24,52]
cmp w0, 512
- beq .L3275
+ beq .L3411
cmn w0, #1
- bne .L3248
-.L3275:
+ bne .L3382
+.L3411:
ldr x0, [x24,24]
mov w1, -1
str w1, [x0,4]
-.L3248:
+.L3382:
ldr w0, [x24,52]
cmp w0, 512
- beq .L3276
+ beq .L3412
cmn w0, #1
- bne .L3251
-.L3276:
+ bne .L3385
+.L3412:
ldr x1, [x29,104]
- mov w2, 716
+ mov w2, 799
ldr x0, [x29,112]
bl printk
bl dump_stack
-.L3251:
+.L3385:
ldr x1, [x24,24]
add x0, x19, :lo12:.LANCHOR0
ldr w2, [x1,4]
ldr w0, [x0,2840]
cmp w2, w0
- bcc .L3253
+ bcc .L3387
mov w0, -1
str w0, [x1,4]
-.L3253:
+.L3387:
ldr x0, [x24,24]
add x26, x26, :lo12:.LANCHOR4
ldr w1, [x0,4]
- ldr x0, [x26,1136]
+ ldr x0, [x26,1128]
str w1, [x0,x28]
ldr x0, [x24,24]
ldr w1, [x24,40]
-.L3316:
+.L3453:
str w1, [x0,8]
-.L3244:
+.L3378:
add x3, x19, :lo12:.LANCHOR0
ldr x2, [x29,128]
add x1, x3, 784
@@ -20741,9 +21800,9 @@ gc_do_copy_back:
cmp w0, 3
strb w25, [x1,61]
adrp x2, .LANCHOR4
- bne .L3254
+ bne .L3388
udiv w0, w27, w0
- ldrh w3, [x3,3350]
+ ldrh w3, [x3,3348]
add x2, x2, :lo12:.LANCHOR4
add w4, w0, w20
add x4, x22, x4, sxtw 1
@@ -20754,47 +21813,47 @@ gc_do_copy_back:
orr w3, w3, w23
sub w0, w27, w0
str w3, [x1,40]
- ldr x1, [x2,1152]
+ ldr x1, [x2,1144]
uxth w0, w0
add w0, w0, 1
orr w0, w3, w0, lsl 24
str w0, [x1,x4,lsl 2]
- b .L3255
-.L3254:
+ b .L3389
+.L3388:
cmp w0, 2
- bne .L3256
- ldrb w6, [x3,3348]
+ bne .L3390
+ ldrb w6, [x3,3258]
add x1, x1, 32
- ldrh w0, [x3,3350]
- cbnz w6, .L3257
+ ldrh w0, [x3,3348]
+ cbnz w6, .L3391
add w3, w27, w20
add x3, x22, x3, sxtw 1
ldrh w3, [x3,16]
madd w0, w3, w0, w23
- b .L3318
-.L3257:
+ b .L3455
+.L3391:
add w3, w20, w27, lsr 1
add x3, x22, x3, sxtw 1
ldrh w3, [x3,16]
madd w0, w3, w0, w23
and w3, w27, 1
add w0, w0, w3
-.L3318:
+.L3455:
orr w0, w0, 33554432
str w0, [x1,8]
-.L3256:
+.L3390:
add x0, x19, :lo12:.LANCHOR0
add x2, x2, :lo12:.LANCHOR4
add x0, x0, 784
add x0, x0, x4, lsl 6
ldr w3, [x0,40]
ldrh w1, [x0,48]
- ldr x0, [x2,1152]
+ ldr x0, [x2,1144]
str w3, [x0,x1,lsl 2]
-.L3255:
+.L3389:
ldr x0, [x29,120]
ldr w0, [x0,#:lo12:.LANCHOR2]
- tbz x0, 8, .L3258
+ tbz x0, 8, .L3392
add x0, x29, 144
ldr x1, [x29,128]
mov w2, w25
@@ -20813,78 +21872,85 @@ gc_do_copy_back:
ldr x0, [x5,24]
ldr w0, [x0,4]
str w0, [sp,8]
- adrp x0, .LC277
- add x0, x0, :lo12:.LC277
+ adrp x0, .LC289
+ add x0, x0, :lo12:.LC289
ldr w5, [x5,40]
bl printk
-.L3258:
+.L3392:
add w8, w27, 1
uxth w27, w8
- b .L3243
-.L3319:
- add x2, x19, :lo12:.LANCHOR0
- mov w1, 0
- ldrb w0, [x2,3257]
+ b .L3377
+.L3456:
+ add x3, x19, :lo12:.LANCHOR0
+ ldrb w0, [x3,3257]
cmp w0, 3
add x0, x29, 144
- bne .L3302
- ldrb w1, [x2,3272]
- cbz w1, .L3261
-.L3264:
+ bne .L3394
+ ldrb w1, [x3,3272]
+ cbz w1, .L3395
+.L3398:
ldr x1, [x29,144]
strb wzr, [x1,60]
- b .L3262
-.L3261:
+ b .L3396
+.L3395:
cmp w25, 1
mov w2, 9
- beq .L3317
+ beq .L3454
cmp w25, 2
- bne .L3264
+ bne .L3398
mov w2, 13
-.L3317:
+.L3454:
ldr x1, [x29,144]
strb w2, [x1,60]
-.L3262:
+.L3396:
ldrb w2, [x22,9]
add x1, x0, 24
bl sblk_xlc_prog_pages
- b .L3265
-.L3302:
- ldrb w2, [x22,9]
+ b .L3399
+.L3394:
+ ldrb w2, [x3,3258]
+ cbz w2, .L3438
+ ldrb w3, [x3,3259]
+ mov w2, 0
+ cbz w3, .L3438
+ bl sblk_3d_mlc_prog_pages
+ b .L3399
+.L3438:
+ ldrb w1, [x22,9]
ldr w3, [x29,136]
- mul w2, w2, w3
- sub w2, w2, #1
- cmp w1, w2
- bge .L3320
- ldr x2, [x0,w1,sxtw 3]
- add w1, w1, 1
- ldr x3, [x0,w1,sxtw 3]
- uxth w1, w1
+ mul w1, w1, w3
+ sub w1, w1, #1
+ cmp w2, w1
+ bge .L3457
+ ldr x1, [x0,w2,sxtw 3]
+ add w2, w2, 1
+ ldr x3, [x0,w2,sxtw 3]
+ uxth w2, w2
ldrb w3, [x3,1]
- strb w3, [x2]
- b .L3302
-.L3320:
- ldr x0, [x0,w2,sxtw 3]
+ strb w3, [x1]
+ b .L3438
+.L3457:
+ ldr x0, [x0,w1,sxtw 3]
mov w1, -1
strb w1, [x0]
ldrb w1, [x22,9]
ldr x0, [x29,144]
mul w1, w3, w1
bl sblk_prog_page
-.L3265:
+.L3399:
add x1, x19, :lo12:.LANCHOR0
ldrb w2, [x22,9]
ldrb w3, [x1,3272]
- cbz w3, .L3267
+ cbz w3, .L3402
add w0, w2, w2, lsl 1
and w2, w0, 1023
- b .L3268
-.L3267:
- ldrb w1, [x1,3348]
+ b .L3403
+.L3402:
+ ldrb w1, [x1,3258]
ubfiz w0, w2, 1, 8
cmp w1, wzr
csel w2, w0, w2, ne
-.L3268:
+.L3403:
add x19, x19, :lo12:.LANCHOR0
ldr x1, [x19,2864]
ldr w0, [x1,52]
@@ -20898,12 +21964,12 @@ gc_do_copy_back:
ldrb w2, [x22,9]
mul w1, w1, w2
cmp w0, w1
- blt .L3269
+ blt .L3404
ldr x0, [x19,608]
strh wzr, [x0,86]
-.L3269:
+.L3404:
bl gc_write_completed
-.L3220:
+.L3354:
sub sp, x29, #16
ldp x19, x20, [sp,32]
ldp x21, x22, [sp,48]
@@ -20932,403 +21998,421 @@ zftl_do_gc:
ldrh w20, [x1,2844]
cmp w26, 1
ldrh w0, [x1,2848]
- ldr x24, [x1,608]
+ ldr x22, [x1,608]
add w20, w0, w20
- ldrh w22, [x1,2846]
+ ldrh w21, [x1,2846]
uxth w20, w20
- bne .L3322
- adrp x21, .LANCHOR7
- add x1, x21, :lo12:.LANCHOR7
- ldr w23, [x1,-80]
- cbnz w23, .L3323
- ldr w1, [x1,-76]
- cbz w1, .L3322
-.L3323:
+ bne .L3459
+ adrp x23, .LANCHOR7
+ add x1, x23, :lo12:.LANCHOR7
+ ldr w24, [x1,-64]
+ cbnz w24, .L3460
+ ldr w1, [x1,-60]
+ cbz w1, .L3459
+.L3460:
add x1, x19, :lo12:.LANCHOR0
ldrh w2, [x1,3306]
cmp w20, w2, lsr 2
- bls .L3322
+ bls .L3459
ldrh w1, [x1,2872]
cmp w1, w20
- bcs .L3322
- add w23, w23, 20
+ bcs .L3459
+ add w24, w24, 20
bl timer_get_time
- cmp w23, w0
- bcs .L3324
- add x0, x21, :lo12:.LANCHOR7
- str wzr, [x0,-80]
-.L3324:
- add x19, x21, :lo12:.LANCHOR7
- ldr w20, [x19,-76]
+ cmp w24, w0
+ bcs .L3461
+ add x0, x23, :lo12:.LANCHOR7
+ str wzr, [x0,-64]
+.L3461:
+ add x19, x23, :lo12:.LANCHOR7
+ ldr w20, [x19,-60]
bl timer_get_time
add w20, w20, 20
cmp w20, w0
- bcs .L3507
- str wzr, [x19,-76]
- b .L3507
-.L3322:
+ bcs .L3648
+ str wzr, [x19,-60]
+ b .L3648
+.L3459:
adrp x23, .LANCHOR4
add x1, x23, :lo12:.LANCHOR4
- ldrb w2, [x1,1130]
+ ldrb w2, [x1,1122]
mov w1, 16
cmp w2, 6
- bhi .L3480
- adrp x1, .L3328
- add x1, x1, :lo12:.L3328
+ bhi .L3620
+ adrp x1, .L3465
+ add x1, x1, :lo12:.L3465
ldrh w1, [x1,w2,uxtw #1]
- adr x2, .Lrtx3328
+ adr x2, .Lrtx3465
add x1, x2, w1, sxth #2
br x1
-.Lrtx3328:
+.Lrtx3465:
.section .rodata
.align 0
.align 2
-.L3328:
- .2byte (.L3327 - .Lrtx3328) / 4
- .2byte (.L3329 - .Lrtx3328) / 4
- .2byte (.L3330 - .Lrtx3328) / 4
- .2byte (.L3331 - .Lrtx3328) / 4
- .2byte (.L3332 - .Lrtx3328) / 4
- .2byte (.L3438 - .Lrtx3328) / 4
- .2byte (.L3334 - .Lrtx3328) / 4
+.L3465:
+ .2byte (.L3464 - .Lrtx3465) / 4
+ .2byte (.L3466 - .Lrtx3465) / 4
+ .2byte (.L3467 - .Lrtx3465) / 4
+ .2byte (.L3468 - .Lrtx3465) / 4
+ .2byte (.L3469 - .Lrtx3465) / 4
+ .2byte (.L3576 - .Lrtx3465) / 4
+ .2byte (.L3471 - .Lrtx3465) / 4
.text
-.L3327:
- add x21, x19, :lo12:.LANCHOR0
- add w22, w22, w0
- ldrh w1, [x24,80]
- uxth w22, w22
- ldrh w0, [x21,2850]
- ldrh w25, [x21,2852]
- add w25, w25, w0
- mov w0, 65535
- cmp w1, w0
+.L3464:
+ add w21, w21, w0
+ add x0, x19, :lo12:.LANCHOR0
+ ldrh w2, [x22,80]
+ uxth w21, w21
+ ldrh w1, [x0,2850]
+ ldrh w25, [x0,2852]
+ add w25, w25, w1
+ mov w1, 65535
+ cmp w2, w1
uxth w25, w25
- beq .L3335
- cbnz w26, .L3336
- ldrh w0, [x21,2872]
+ beq .L3472
+ cbnz w26, .L3473
+ ldrh w0, [x0,2872]
cmp w20, w0, lsl 1
- bge .L3507
-.L3336:
- add x21, x19, :lo12:.LANCHOR0
+ bge .L3648
+.L3473:
+ add x24, x19, :lo12:.LANCHOR0
mov w1, 5
- ldrh w0, [x21,3304]
+ ldrh w0, [x24,3304]
add w0, w0, 1
uxth w0, w0
- strh w0, [x21,3304]
+ strh w0, [x24,3304]
bl zftl_get_gc_node
uxth w2, w0
mov w1, 65535
cmp w2, w1
- beq .L3338
+ beq .L3475
add x3, x23, :lo12:.LANCHOR4
ubfiz x2, x2, 1, 16
- ldr w1, [x3,1132]
+ ldr w1, [x3,1124]
add w1, w1, 1
- str w1, [x3,1132]
- ldr x3, [x21,600]
+ str w1, [x3,1124]
+ ldr x3, [x24,600]
ldrh w2, [x3,x2]
- ldrh w3, [x21,3300]
+ ldrh w3, [x24,3300]
cmp w3, w2
- bcs .L3339
- ldrh w3, [x21,576]
+ bcs .L3476
+ ldrh w3, [x24,576]
cmp w1, w3, lsr 4
- bls .L3338
- ldrh w1, [x21,2874]
+ bls .L3475
+ ldrh w1, [x24,2874]
cmp w1, w2
- bls .L3338
-.L3339:
+ bls .L3475
+.L3476:
add x2, x19, :lo12:.LANCHOR0
mov w1, 0
ldrb w2, [x2,3273]
bl gc_add_sblk
- cbz w0, .L3340
+ cbz w0, .L3477
add x23, x23, :lo12:.LANCHOR4
mov w0, 1
- str wzr, [x23,1132]
- strb w0, [x23,1130]
- b .L3507
-.L3338:
+ str wzr, [x23,1124]
+ strb w0, [x23,1122]
+ b .L3648
+.L3475:
add x0, x19, :lo12:.LANCHOR0
strh wzr, [x0,3304]
-.L3340:
- cmp w22, 15
- mov w21, 2
- bls .L3341
- cbz w25, .L3440
+.L3477:
+ cmp w21, 15
+ mov w24, 2
+ bls .L3478
+ cbz w25, .L3578
add x0, x19, :lo12:.LANCHOR0
- mov w21, 1
+ mov w24, 1
ldrh w1, [x0,2854]
ldrh w0, [x0,3308]
cmp w1, w0
- bls .L3341
-.L3440:
- mov w21, 2
-.L3341:
+ bls .L3478
+.L3578:
+ mov w24, 2
+.L3478:
adrp x0, .LANCHOR2
ldr w0, [x0,#:lo12:.LANCHOR2]
- tbz x0, 8, .L3342
+ tbz x0, 8, .L3479
add x1, x19, :lo12:.LANCHOR0
mov w3, w20
- mov w4, w22
+ mov w4, w21
ldr x0, [x1,608]
ldrb w2, [x1,3273]
- mov w1, 1850
+ mov w1, 1935
ldrh w5, [x0,124]
ldrh w6, [x0,120]
ldrh w7, [x0,122]
- ldrh w0, [x24,80]
+ ldrh w0, [x22,80]
str w0, [sp]
- adrp x0, .LC278
- add x0, x0, :lo12:.LC278
+ adrp x0, .LC290
+ add x0, x0, :lo12:.LC290
bl printk
-.L3342:
+.L3479:
add x19, x19, :lo12:.LANCHOR0
- mov w1, w21
+ mov w1, w24
mov w2, 1
ldrb w0, [x19,3273]
bl gc_search_src_blk
cmp w0, wzr
- ble .L3343
-.L3344:
+ ble .L3480
+.L3481:
add x23, x23, :lo12:.LANCHOR4
mov w0, 1
- b .L3510
-.L3343:
+ b .L3651
+.L3480:
ldrb w0, [x19,3273]
mov w1, 3
mov w2, 1
bl gc_search_src_blk
cmp w0, wzr
- bgt .L3344
- b .L3507
-.L3335:
+ bgt .L3481
+ b .L3648
+.L3472:
+ adrp x27, .LANCHOR2
+ ldr w1, [x27,#:lo12:.LANCHOR2]
+ tbz x1, 8, .L3482
+ ldrb w2, [x0,3273]
+ adrp x0, .LC290
+ ldrh w5, [x22,124]
+ add x0, x0, :lo12:.LC290
+ ldrh w6, [x22,120]
+ mov w1, 1947
+ ldrh w7, [x22,122]
+ mov w3, w20
+ str w26, [sp]
+ mov w4, w21
+ bl printk
+.L3482:
cmp w26, 1
- bne .L3345
+ bne .L3483
+ add x22, x19, :lo12:.LANCHOR0
bl gc_scan_static_data
- ldr x0, [x21,608]
+ ldr x0, [x22,608]
ldrh w0, [x0,122]
- cbz w0, .L3346
-.L3347:
+ cbz w0, .L3484
+.L3485:
add x19, x19, :lo12:.LANCHOR0
mov w0, 1
add x23, x23, :lo12:.LANCHOR4
strb w0, [x19,3273]
- b .L3510
-.L3346:
+ b .L3651
+.L3484:
bl gc_static_wearleveling
- cbnz w0, .L3347
+ cbnz w0, .L3485
bl gc_block_vpn_scan
- cbz w22, .L3441
+ cbz w21, .L3579
cmp w20, w25
- bcs .L3350
- ldrh w0, [x21,3306]
- cmp w20, w0, lsl 1
- blt .L3351
-.L3350:
+ bcs .L3488
+ ldrh w0, [x22,3306]
+ cmp w0, w20
+ bhi .L3489
+.L3488:
add x0, x19, :lo12:.LANCHOR0
add w1, w20, w25
ldrh w2, [x0,3306]
- cmp w1, w2, lsl 1
- blt .L3351
+ cmp w1, w2
+ blt .L3489
ldrh w1, [x0,2854]
ldrh w0, [x0,3308]
cmp w1, w0
- bcc .L3441
-.L3351:
- add x21, x19, :lo12:.LANCHOR0
- add x27, x23, :lo12:.LANCHOR4
- mov w28, 1
- ldr w1, [x27,1132]
- ldrh w0, [x21,576]
+ bcc .L3579
+.L3489:
+ add x22, x19, :lo12:.LANCHOR0
+ add x28, x23, :lo12:.LANCHOR4
+ mov w2, 1
+ ldr w1, [x28,1124]
+ ldrh w0, [x22,576]
add w1, w1, 1
- strb w28, [x21,3273]
- str w1, [x27,1132]
+ strb w2, [x22,3273]
+ str w1, [x28,1124]
cmp w1, w0, lsr 5
- bls .L3353
- ldrh w0, [x21,2854]
- cmp w0, w22
- bls .L3353
+ bls .L3491
+ ldrh w0, [x22,2854]
+ cmp w0, w21
+ bls .L3491
mov w1, 5
mov w0, 0
+ str x2, [x29,104]
bl zftl_get_gc_node
uxth w1, w0
mov w0, 65535
cmp w1, w0
- beq .L3441
+ beq .L3579
ubfiz x1, x1, 1, 16
- ldr x0, [x21,600]
- ldrb w2, [x21,3276]
+ ldr x0, [x22,600]
+ ldrb w3, [x22,3276]
mov w24, 16
+ ldr x2, [x29,104]
ldrh w0, [x0,x1]
- ldrh w1, [x21,3300]
- mul w1, w1, w2
+ ldrh w1, [x22,3300]
+ mul w1, w1, w3
cmp w0, w1
- bgt .L3349
- str wzr, [x27,1132]
- mov w0, w28
+ bgt .L3487
+ str wzr, [x28,1124]
+ mov w0, w2
mov w1, 2
- b .L3500
-.L3353:
+ b .L3641
+.L3491:
add x0, x19, :lo12:.LANCHOR0
ldrh w2, [x0,2854]
ldrh w1, [x0,3308]
cmp w2, w1
- bcc .L3356
+ bcc .L3494
mov w0, 1
mov w1, 2
mov w2, w0
- b .L3501
-.L3356:
+ b .L3642
+.L3494:
ldrh w24, [x0,2850]
- cbnz w24, .L3357
+ cbnz w24, .L3495
ldrh w0, [x0,2852]
cmp w0, 8
- bls .L3349
-.L3357:
+ bls .L3487
+.L3495:
mov w0, 1
mov w1, w0
-.L3500:
+.L3641:
mov w2, 4
-.L3501:
+.L3642:
bl gc_search_src_blk
uxth w0, w0
- cbnz w0, .L3344
- b .L3441
-.L3345:
- ldrh w0, [x21,2872]
+ cbnz w0, .L3481
+ b .L3579
+.L3483:
+ add x0, x19, :lo12:.LANCHOR0
+ ldrh w0, [x0,2872]
cmp w0, w20
- bcc .L3507
-.L3441:
+ bcc .L3648
+.L3579:
mov w24, 16
-.L3349:
- add x21, x19, :lo12:.LANCHOR0
- ldr w0, [x21,2884]
- cbz w0, .L3358
+.L3487:
+ add x22, x19, :lo12:.LANCHOR0
+ ldr w0, [x22,2884]
+ cbz w0, .L3496
mov w0, 1
mov w1, 5
- strb w0, [x21,3273]
+ strb w0, [x22,3273]
mov w0, 0
- str wzr, [x21,2884]
+ str wzr, [x22,2884]
bl zftl_get_gc_node
uxth w1, w0
mov w2, 65535
cmp w1, w2
- beq .L3359
+ beq .L3497
ubfiz x1, x1, 1, 16
- ldr x2, [x21,600]
+ ldr x2, [x22,600]
ldrh w1, [x2,x1]
cmp w1, 8
- bhi .L3359
+ bhi .L3497
mov w2, 1
mov w1, 0
- str w2, [x21,2884]
+ str w2, [x22,2884]
bl gc_add_sblk
- cbnz w0, .L3344
-.L3359:
+ cbnz w0, .L3481
+.L3497:
mov w1, 4
mov w0, 0
bl zftl_get_gc_node
uxth w1, w0
mov w2, 65535
cmp w1, w2
- beq .L3360
+ beq .L3498
add x3, x19, :lo12:.LANCHOR0
ubfiz x1, x1, 1, 16
ldr x2, [x3,600]
ldrh w1, [x2,x1]
cmp w1, 4
- bhi .L3360
+ bhi .L3498
mov w2, 1
mov w1, 0
str w2, [x3,2884]
bl gc_add_sblk
- cbnz w0, .L3344
-.L3360:
+ cbnz w0, .L3481
+.L3498:
mov w0, 0
bl zftl_get_gc_node.part.12
uxth w1, w0
mov w2, 65535
cmp w1, w2
- beq .L3358
+ beq .L3496
add x2, x19, :lo12:.LANCHOR0
ubfiz x1, x1, 1, 16
ldr x3, [x2,600]
ldrh w1, [x3,x1]
cmp w1, 4
- bhi .L3358
+ bhi .L3496
mov w1, 1
str w1, [x2,2884]
mov w2, 0
bl gc_add_sblk
- cbnz w0, .L3344
-.L3358:
- add x21, x19, :lo12:.LANCHOR0
+ cbnz w0, .L3481
+.L3496:
+ add x22, x19, :lo12:.LANCHOR0
mov w0, 1
- ldr x7, [x21,608]
- strb w0, [x21,3273]
+ ldr x7, [x22,608]
+ strb w0, [x22,3273]
ldrh w5, [x7,124]
- cbz w5, .L3361
+ cbz w5, .L3499
add x23, x23, :lo12:.LANCHOR4
- strb wzr, [x21,3273]
- strb w0, [x23,1130]
- adrp x0, .LANCHOR2
- ldr w0, [x0,#:lo12:.LANCHOR2]
- tbz x0, 8, .L3362
+ strb wzr, [x22,3273]
+ strb w0, [x23,1122]
+ ldr w0, [x27,#:lo12:.LANCHOR2]
+ tbz x0, 8, .L3500
ldrh w6, [x7,120]
- adrp x0, .LC279
+ adrp x0, .LC291
ldrh w7, [x7,122]
- mov w1, 1948
+ mov w1, 2037
mov w2, 0
mov w3, w20
- mov w4, w22
- add x0, x0, :lo12:.LC279
+ mov w4, w21
+ add x0, x0, :lo12:.LC291
bl printk
- b .L3362
-.L3361:
- ldrh w2, [x21,2872]
+ b .L3500
+.L3499:
+ ldrh w2, [x22,2872]
cmp w20, w2
- bcs .L3363
- cbz w22, .L3364
- cmp w22, 16
- bls .L3365
- ldrh w2, [x21,2854]
- ldrh w1, [x21,3308]
+ bcs .L3501
+ cbz w21, .L3502
+ cmp w21, 16
+ bls .L3503
+ ldrh w2, [x22,2854]
+ ldrh w1, [x22,3308]
cmp w2, w1
- bhi .L3365
+ bhi .L3503
mov w1, w0
mov w2, 4
str x5, [x29,104]
bl gc_search_src_blk
uxth w0, w0
ldr x5, [x29,104]
- cbnz w0, .L3366
- ldrb w0, [x21,3273]
- b .L3509
-.L3366:
+ cbnz w0, .L3504
+ ldrb w0, [x22,3273]
+ b .L3650
+.L3504:
mov w1, 5
mov w0, w5
bl zftl_get_gc_node
uxth w2, w0
mov w1, 65535
cmp w2, w1
- beq .L3435
+ beq .L3573
add x3, x23, :lo12:.LANCHOR4
ubfiz x2, x2, 1, 16
- ldr w1, [x3,1132]
+ ldr w1, [x3,1124]
add w1, w1, 1
- str w1, [x3,1132]
- ldr x3, [x21,600]
+ str w1, [x3,1124]
+ ldr x3, [x22,600]
ldrh w2, [x3,x2]
- ldrh w3, [x21,3300]
+ ldrh w3, [x22,3300]
cmp w3, w2
- bcs .L3369
- ldrh w3, [x21,576]
+ bcs .L3507
+ ldrh w3, [x22,576]
cmp w1, w3, lsr 4
- bls .L3435
- ldrh w1, [x21,2874]
+ bls .L3573
+ ldrh w1, [x22,2874]
cmp w1, w2
- bls .L3435
-.L3369:
+ bls .L3573
+.L3507:
add x19, x19, :lo12:.LANCHOR0
mov w1, 0
ldrb w2, [x19,3273]
@@ -21336,181 +22420,180 @@ zftl_do_gc:
mov w0, 1
str w0, [x19,2884]
add x0, x23, :lo12:.LANCHOR4
- str wzr, [x0,1132]
- b .L3435
-.L3365:
+ str wzr, [x0,1124]
+ b .L3573
+.L3503:
mov w0, 1
mov w1, 2
mov w2, w0
bl gc_search_src_blk
uxth w0, w0
- cbnz w0, .L3435
+ cbnz w0, .L3573
add x19, x19, :lo12:.LANCHOR0
-.L3506:
+.L3647:
ldrb w0, [x19,3273]
mov w1, 3
mov w2, 2
-.L3503:
+.L3644:
bl gc_search_src_blk
uxth w0, w0
- b .L3367
-.L3364:
- adrp x0, .LANCHOR2
- strb w22, [x21,3273]
- ldr w0, [x0,#:lo12:.LANCHOR2]
- tbz x0, 8, .L3371
- adrp x0, .LC279
+ b .L3505
+.L3502:
+ ldr w0, [x27,#:lo12:.LANCHOR2]
+ strb w21, [x22,3273]
+ tbz x0, 8, .L3509
+ adrp x0, .LC291
ldrh w6, [x7,120]
ldrh w7, [x7,122]
- add x0, x0, :lo12:.LC279
- mov w1, 1978
- mov w2, w22
+ add x0, x0, :lo12:.LC291
+ mov w1, 2067
+ mov w2, w21
mov w3, w20
- mov w4, w22
- mov w5, w22
+ mov w4, w21
+ mov w5, w21
bl printk
-.L3371:
+.L3509:
add x19, x19, :lo12:.LANCHOR0
cmp w20, 16
ldrb w0, [x19,3273]
- bls .L3372
-.L3509:
+ bls .L3510
+.L3650:
mov w1, 3
mov w2, 4
- b .L3503
-.L3372:
+ b .L3644
+.L3510:
mov w1, 1
mov w2, w1
bl gc_search_src_blk
uxth w0, w0
- cbnz w0, .L3435
- b .L3506
-.L3363:
+ cbnz w0, .L3573
+ b .L3647
+.L3501:
cmp w26, 1
mov w1, w24
- bne .L3480
+ bne .L3620
cmp w20, w2, lsl 1
- bge .L3373
- cmp w25, w22, lsr 1
- bcs .L3374
- ldrh w2, [x21,2854]
- ldrh w0, [x21,3308]
+ bge .L3511
+ cmp w25, w21, lsr 1
+ bcs .L3512
+ ldrh w2, [x22,2854]
+ ldrh w0, [x22,3308]
cmp w2, w0
- bcs .L3374
- ldrh w0, [x21,3306]
+ bcs .L3512
+ ldrh w0, [x22,3306]
lsr w0, w0, 2
- strh w0, [x21,2872]
- b .L3480
-.L3374:
+ strh w0, [x22,2872]
+ b .L3620
+.L3512:
mov w1, 5
mov w0, 0
bl zftl_get_gc_node
- uxth w21, w0
+ uxth w22, w0
mov w1, 65535
- mov w27, w21
- cmp w21, w1
- bne .L3375
-.L3380:
- cmp w22, 1
- bhi .L3376
- b .L3377
-.L3375:
+ mov w27, w22
+ cmp w22, w1
+ bne .L3513
+.L3518:
+ cmp w21, 1
+ bhi .L3514
+ b .L3515
+.L3513:
add x26, x23, :lo12:.LANCHOR4
add x2, x19, :lo12:.LANCHOR0
- uxtw x21, w21
- ldr w1, [x26,1132]
+ uxtw x22, w22
+ ldr w1, [x26,1124]
ldrh w3, [x2,576]
add w1, w1, 1
- str w1, [x26,1132]
+ str w1, [x26,1124]
cmp w1, w3, lsr 4
- bls .L3378
+ bls .L3516
ldr x1, [x2,600]
- str wzr, [x26,1132]
- ldrh w3, [x1,x21,lsl 1]
+ str wzr, [x26,1124]
+ ldrh w3, [x1,x22,lsl 1]
ldrh w1, [x2,2874]
cmp w3, w1
- bcs .L3378
+ bcs .L3516
mov w1, 0
mov w2, 1
bl gc_add_sblk
- cbz w0, .L3378
+ cbz w0, .L3516
mov w0, 1
- strb w0, [x26,1130]
- b .L3362
-.L3378:
+ strb w0, [x26,1122]
+ b .L3500
+.L3516:
add x1, x19, :lo12:.LANCHOR0
ldr x0, [x1,600]
- ldrh w2, [x0,x21,lsl 1]
+ ldrh w2, [x0,x22,lsl 1]
ldrh w0, [x1,3300]
cmp w2, w0, lsr 1
- bhi .L3379
+ bhi .L3517
mov w0, w27
mov w1, 1
mov w2, 0
bl gc_add_sblk
- b .L3435
-.L3379:
+ b .L3573
+.L3517:
ldrh w3, [x1,2850]
ldrh w0, [x1,2852]
add w0, w3, w0
ldrh w3, [x1,3306]
cmp w0, w3, lsl 1
- ble .L3380
+ ble .L3518
ldrh w0, [x1,2874]
cmp w0, w2
- bcc .L3377
- b .L3380
-.L3376:
- add x21, x19, :lo12:.LANCHOR0
+ bcc .L3515
+ b .L3518
+.L3514:
+ add x22, x19, :lo12:.LANCHOR0
mov w0, 1
- cmp w22, 16
- strb w0, [x21,3273]
- bls .L3381
- ldrh w2, [x21,2854]
- ldrh w1, [x21,3308]
+ cmp w21, 16
+ strb w0, [x22,3273]
+ bls .L3519
+ ldrh w2, [x22,2854]
+ ldrh w1, [x22,3308]
cmp w2, w1
- bhi .L3381
+ bhi .L3519
mov w1, w0
mov w2, 4
bl gc_search_src_blk
uxth w0, w0
- cbnz w0, .L3382
- ldrb w0, [x21,3273]
+ cbnz w0, .L3520
+ ldrb w0, [x22,3273]
mov w1, 3
mov w2, 4
- b .L3502
-.L3381:
+ b .L3643
+.L3519:
mov w0, 1
mov w1, 2
mov w2, w0
bl gc_search_src_blk
uxth w0, w0
- cbnz w0, .L3382
+ cbnz w0, .L3520
add x0, x19, :lo12:.LANCHOR0
mov w1, 3
mov w2, 2
ldrb w0, [x0,3273]
-.L3502:
+.L3643:
bl gc_search_src_blk
uxth w0, w0
-.L3382:
+.L3520:
add x19, x19, :lo12:.LANCHOR0
cmp w20, w25, lsr 1
ldrh w1, [x19,3306]
- bls .L3504
+ bls .L3645
lsr w1, w1, 2
- b .L3505
-.L3377:
+ b .L3646
+.L3515:
cmp w20, w25
add x19, x19, :lo12:.LANCHOR0
- bcs .L3384
+ bcs .L3522
mov w0, 4
strb wzr, [x19,3273]
bl zftl_get_gc_node.part.12
uxth w0, w0
mov w1, 65535
cmp w0, w1
- beq .L3384
+ beq .L3522
ubfiz x0, x0, 1, 16
ldr x1, [x19,600]
ldrb w2, [x19,3276]
@@ -21518,134 +22601,134 @@ zftl_do_gc:
ldrh w0, [x19,3300]
mul w0, w0, w2
cmp w1, w0, lsr 1
- bgt .L3384
+ bgt .L3522
mov w1, 3
mov w0, 0
mov w2, 4
bl gc_search_src_blk
uxth w0, w0
ldrh w1, [x19,3306]
-.L3504:
+.L3645:
lsr w1, w1, 1
-.L3505:
+.L3646:
strh w1, [x19,2872]
- b .L3367
-.L3384:
+ b .L3505
+.L3522:
ldrh w0, [x19,3306]
lsr w0, w0, 2
strh w0, [x19,2872]
- b .L3362
-.L3373:
- ldrh w0, [x21,3306]
+ b .L3500
+.L3511:
+ ldrh w0, [x22,3306]
mov w24, w5
lsr w0, w0, 2
- strh w0, [x21,2872]
- b .L3362
-.L3367:
+ strh w0, [x22,2872]
+ b .L3500
+.L3505:
mov w1, w24
- cbz w0, .L3480
-.L3435:
+ cbz w0, .L3620
+.L3573:
add x23, x23, :lo12:.LANCHOR4
mov w0, 1
- strb w0, [x23,1130]
- b .L3362
-.L3329:
+ strb w0, [x23,1122]
+ b .L3500
+.L3466:
add x20, x19, :lo12:.LANCHOR0
mov w0, 65535
ldrh w1, [x20,2896]
cmp w1, w0
- bne .L3387
+ bne .L3525
bl gc_get_src_blk
strh w0, [x20,2896]
-.L3387:
+.L3525:
add x0, x19, :lo12:.LANCHOR0
mov w2, 65535
add x1, x0, 2896
ldrh w3, [x0,2896]
cmp w3, w2
- beq .L3508
+ beq .L3649
ldrh w5, [x1,56]
uxtw x4, w3
ldr x2, [x0,584]
add x2, x2, x4, lsl 2
- cbz w5, .L3390
+ cbz w5, .L3528
mov x0, 0
-.L3389:
+.L3527:
cmp w5, w0, uxth
- bls .L3390
+ bls .L3528
add x0, x0, 1
add x6, x1, x0, lsl 1
ldrh w6, [x6,56]
cmp w6, w3
- bne .L3389
-.L3395:
+ bne .L3527
+.L3533:
add x19, x19, :lo12:.LANCHOR0
mov w0, -1
strh w0, [x19,2896]
- b .L3507
-.L3390:
+ b .L3648
+.L3528:
ldrb w0, [x2,2]
tst w0, 192
- beq .L3448
+ beq .L3586
and w0, w0, 224
cmp w0, 224
- bne .L3392
-.L3448:
+ bne .L3530
+.L3586:
add x0, x19, :lo12:.LANCHOR0
ldr x0, [x0,600]
ldrh w0, [x0,x4,lsl 1]
- cbz w0, .L3395
+ cbz w0, .L3533
adrp x1, .LANCHOR3
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR3
- mov w2, 2211
- add x1, x1, 800
+ mov w2, 2300
+ add x1, x1, 832
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
- b .L3395
-.L3392:
+ b .L3533
+.L3530:
add x23, x23, :lo12:.LANCHOR4
mov w0, 2
- b .L3510
-.L3330:
+ b .L3651
+.L3467:
bl gc_scan_src_blk
cmn w0, #1
- bne .L3396
+ bne .L3534
add x23, x23, :lo12:.LANCHOR4
mov w0, 3
-.L3510:
- strb w0, [x23,1130]
- b .L3507
-.L3396:
+.L3651:
+ strb w0, [x23,1122]
+ b .L3648
+.L3534:
add x1, x19, :lo12:.LANCHOR0
mov w3, 65535
ldrh w0, [x1,2896]
cmp w0, w3
- beq .L3344
+ beq .L3481
ldrh w3, [x1,2920]
add x23, x23, :lo12:.LANCHOR4
- cbz w3, .L3397
+ cbz w3, .L3535
mov w0, 4
strh wzr, [x1,2922]
- strb w0, [x23,1130]
- b .L3507
-.L3397:
+ strb w0, [x23,1122]
+ b .L3648
+.L3535:
ubfiz x0, x0, 1, 16
ldr x1, [x1,600]
mov w2, 1
- strb w2, [x23,1130]
+ strb w2, [x23,1122]
ldrh w0, [x1,x0]
- cbz w0, .L3398
+ cbz w0, .L3536
adrp x1, .LANCHOR3
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR3
- mov w2, 2239
- add x1, x1, 800
+ mov w2, 2328
+ add x1, x1, 832
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L3398:
+.L3536:
add x20, x19, :lo12:.LANCHOR0
add x21, x20, 2896
ldrh w0, [x20,2896]
@@ -21657,100 +22740,100 @@ zftl_do_gc:
add w0, w0, 1
uxth w0, w0
cmp w0, 8
- bhi .L3399
+ bhi .L3537
strh w0, [x21,30]
- b .L3395
-.L3399:
+ b .L3533
+.L3537:
strh wzr, [x21,30]
bl ftl_flush
bl pm_flush
bl ftl_ext_info_flush
mov w0, 0
bl ftl_info_flush
- b .L3395
-.L3331:
+ b .L3533
+.L3468:
add x21, x19, :lo12:.LANCHOR0
-.L3481:
+.L3621:
bl gc_scan_src_blk_one_page
ldrh w2, [x21,2898]
add x0, x21, 2896
ldrh w1, [x21,3300]
cmp w2, w1
- bcs .L3401
+ bcs .L3539
cmp w20, 7
- bls .L3481
- b .L3507
-.L3401:
+ bls .L3621
+ b .L3648
+.L3539:
ldrh w3, [x0,24]
adrp x2, .LANCHOR2
- cbz w3, .L3402
+ cbz w3, .L3540
add x23, x23, :lo12:.LANCHOR4
mov w1, 4
strh wzr, [x0,26]
- strb w1, [x23,1130]
+ strb w1, [x23,1122]
ldr w1, [x2,#:lo12:.LANCHOR2]
- tbz x1, 8, .L3403
+ tbz x1, 8, .L3541
ldrh w1, [x0]
- adrp x0, .LC280
+ adrp x0, .LC292
ldr x4, [x21,600]
- add x0, x0, :lo12:.LC280
+ add x0, x0, :lo12:.LC292
ubfiz x2, x1, 1, 16
ldrh w2, [x4,x2]
bl printk
-.L3403:
+.L3541:
add x0, x19, :lo12:.LANCHOR0
ldrh w2, [x0,2896]
ldr x1, [x0,600]
ldrh w0, [x0,2920]
ldrh w1, [x1,x2,lsl 1]
cmp w1, w0
- beq .L3404
+ beq .L3542
adrp x1, .LANCHOR3
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR3
- mov w2, 2273
- add x1, x1, 800
+ mov w2, 2362
+ add x1, x1, 832
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L3404:
+.L3542:
add x19, x19, :lo12:.LANCHOR0
ldrh w1, [x19,2896]
ldr x0, [x19,600]
ldrh w2, [x19,2920]
strh w2, [x0,x1,lsl 1]
- b .L3507
-.L3402:
+ b .L3648
+.L3540:
add x23, x23, :lo12:.LANCHOR4
ldrh w1, [x0]
mov w0, 1
ldr x20, [x21,584]
add x20, x20, x1, uxth 2
- strb w0, [x23,1130]
+ strb w0, [x23,1122]
ldr w0, [x2,#:lo12:.LANCHOR2]
- tbz x0, 8, .L3405
+ tbz x0, 8, .L3543
ldrb w2, [x20,2]
- adrp x0, .LC281
- add x0, x0, :lo12:.LC281
+ adrp x0, .LC293
+ add x0, x0, :lo12:.LC293
ubfx x2, x2, 5, 3
bl printk
-.L3405:
+.L3543:
ldrb w0, [x20,2]
tst w0, 192
- beq .L3449
+ beq .L3587
and w0, w0, 224
cmp w0, 224
- bne .L3406
-.L3449:
+ bne .L3544
+.L3587:
adrp x1, .LANCHOR3
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR3
- mov w2, 2283
- add x1, x1, 800
+ mov w2, 2372
+ add x1, x1, 832
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L3406:
+.L3544:
add x19, x19, :lo12:.LANCHOR0
add x20, x19, 2896
ldrh w0, [x19,2896]
@@ -21761,90 +22844,90 @@ zftl_do_gc:
add w0, w0, 1
uxth w0, w0
cmp w0, 8
- bhi .L3408
+ bhi .L3546
strh w0, [x20,30]
- b .L3507
-.L3408:
+ b .L3648
+.L3546:
strh wzr, [x20,30]
- b .L3511
-.L3332:
- cbnz w26, .L3409
+ b .L3652
+.L3469:
+ cbnz w26, .L3547
add x0, x19, :lo12:.LANCHOR0
ldrh w0, [x0,2872]
cmp w0, w20
- bcc .L3507
-.L3409:
- ldrh w1, [x24,80]
+ bcc .L3648
+.L3547:
+ ldrh w1, [x22,80]
mov w0, 65535
cmp w1, w0
- bne .L3410
- add x22, x19, :lo12:.LANCHOR0
- ldrb w21, [x22,3273]
+ bne .L3548
+ add x24, x19, :lo12:.LANCHOR0
+ ldrb w21, [x24,3273]
cmp w21, 1
- bne .L3410
+ bne .L3548
bl ftl_flush
- ldrh w0, [x22,3214]
- cbz w0, .L3411
+ ldrh w0, [x24,3214]
+ cbz w0, .L3549
mov w0, w21
-.L3411:
+.L3549:
mov w1, 5
bl zftl_gc_get_free_sblk
uxth w20, w0
mov w0, 65535
cmp w20, w0
- beq .L3413
+ beq .L3551
add x0, x19, :lo12:.LANCHOR0
ldr x21, [x0,584]
add x21, x21, x20, uxth 2
ldrb w0, [x21,2]
tst w0, 224
- beq .L3414
+ beq .L3552
adrp x1, .LANCHOR3
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR3
- mov w2, 2312
- add x1, x1, 800
+ mov w2, 2401
+ add x1, x1, 832
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L3414:
+.L3552:
ldrb w0, [x21,2]
mov w1, 5
bfi w0, w1, 5, 3
orr w0, w0, 16
strb w0, [x21,2]
-.L3436:
+.L3574:
mov w0, w20
mov w1, 1
add x19, x19, :lo12:.LANCHOR0
add x23, x23, :lo12:.LANCHOR4
bl ftl_erase_sblk
mov w0, 5
- add x1, x24, 96
- strb w0, [x24,84]
+ add x1, x22, 96
+ strb w0, [x22,84]
mov w0, w20
bl ftl_get_blk_list_in_sblk
uxtb w0, w0
ldrh w1, [x19,3300]
- strb w0, [x24,89]
+ strb w0, [x22,89]
ldrb w2, [x19,3276]
mul w0, w0, w1
- strh w0, [x24,86]
+ strh w0, [x22,86]
mov w1, 255
ldrh w0, [x19,3274]
- strh w20, [x24,80]
- strh wzr, [x24,82]
+ strh w20, [x22,80]
+ strh wzr, [x22,82]
mul w2, w0, w2
- ldr x0, [x23,1136]
- strb wzr, [x24,85]
+ ldr x0, [x23,1128]
+ strb wzr, [x22,85]
lsl w2, w2, 2
- strh wzr, [x24,90]
+ strh wzr, [x22,90]
bl ftl_memset
ldrh w0, [x19,3274]
mov w1, 255
ldrb w2, [x19,3276]
mul w2, w0, w2
- ldr x0, [x23,1144]
+ ldr x0, [x23,1136]
lsl w2, w2, 2
bl ftl_memset
ldrh w3, [x19,3274]
@@ -21870,77 +22953,77 @@ zftl_do_gc:
strh wzr, [x19,3212]
strh wzr, [x19,3216]
bl ftl_info_flush
- b .L3507
-.L3410:
+ b .L3648
+.L3548:
cmp w26, 1
mov w21, 4
csinc w21, w21, wzr, eq
cmp w20, 15
add w0, w21, 4
- add x22, x19, :lo12:.LANCHOR0
+ add x24, x19, :lo12:.LANCHOR0
csel w21, w0, w21, ls
-.L3417:
+.L3555:
sub w21, w21, #1
uxtb w21, w21
cmp w21, 255
- beq .L3507
+ beq .L3648
bl gc_do_copy_back
- ldrb w0, [x22,3273]
- cbnz w0, .L3418
- ldrb w0, [x22,2834]
+ ldrb w0, [x24,3273]
+ cbnz w0, .L3556
+ ldrb w0, [x24,2834]
cmp w0, 3
- bhi .L3419
+ bhi .L3557
bl ftl_write_commit
-.L3419:
- ldrh w1, [x22,2922]
- ldrh w0, [x22,2920]
+.L3557:
+ ldrh w1, [x24,2922]
+ ldrh w0, [x24,2920]
cmp w1, w0
- bcc .L3417
+ bcc .L3555
add x23, x23, :lo12:.LANCHOR4
mov w0, 1
- strb w0, [x23,1130]
+ strb w0, [x23,1122]
bl ftl_write_commit
bl ftl_flush
- ldrh w1, [x22,2896]
- ldr x0, [x22,600]
+ ldrh w1, [x24,2896]
+ ldr x0, [x24,600]
ldrh w0, [x0,x1,lsl 1]
- cbz w0, .L3421
+ cbz w0, .L3559
adrp x1, .LANCHOR3
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR3
- mov w2, 2387
- add x1, x1, 800
+ mov w2, 2476
+ add x1, x1, 832
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L3421:
+.L3559:
add x1, x19, :lo12:.LANCHOR0
ldrh w0, [x1,2896]
ldr x3, [x1,600]
ubfiz x2, x0, 1, 16
ldrh w4, [x3,x2]
- cbnz w4, .L3422
+ cbnz w4, .L3560
strh w4, [x3,x2]
ldrh w0, [x1,2896]
bl ftl_free_sblk
- b .L3395
-.L3422:
+ b .L3533
+.L3560:
mov w1, 0
mov w2, 1
bl gc_add_sblk
- b .L3395
-.L3418:
- add x20, x22, 2896
+ b .L3533
+.L3556:
+ add x20, x24, 2896
ldrh w0, [x20,320]
- cbz w0, .L3423
+ cbz w0, .L3561
strh wzr, [x20,320]
bl sblk_wait_write_queue_completed
bl gc_write_completed
ldr w0, [x20,324]
cmn w0, #1
- beq .L3424
+ beq .L3562
bl ftl_mask_bad_block
-.L3424:
+.L3562:
add x20, x19, :lo12:.LANCHOR0
ldr x0, [x20,608]
str wzr, [x20,3220]
@@ -21954,9 +23037,9 @@ zftl_do_gc:
strh w0, [x2,126]
strh w0, [x1,130]
ldr x0, [x20,2904]
- cbz x0, .L3425
+ cbz x0, .L3563
bl buf_free
-.L3425:
+.L3563:
add x19, x19, :lo12:.LANCHOR0
add x23, x23, :lo12:.LANCHOR4
str xzr, [x19,2904]
@@ -21964,24 +23047,24 @@ zftl_do_gc:
adrp x1, .LANCHOR3
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR3
- mov w2, 2425
- add x1, x1, 800
+ mov w2, 2514
+ add x1, x1, 832
add x0, x0, :lo12:.LC0
- strb wzr, [x23,1130]
+ strb wzr, [x23,1122]
bl printk
bl dump_stack
- b .L3507
-.L3423:
- ldrh w0, [x24,86]
+ b .L3648
+.L3561:
+ ldrh w0, [x22,86]
cmp w0, 1
- bls .L3426
+ bls .L3564
ldrh w1, [x20,26]
ldrh w0, [x20,24]
cmp w1, w0
- bcc .L3417
+ bcc .L3555
add x23, x23, :lo12:.LANCHOR4
mov w0, 1
- strb w0, [x23,1130]
+ strb w0, [x23,1122]
ldrh w0, [x20,56]
add w1, w0, 1
add x0, x20, x0, sxtw 1
@@ -21990,15 +23073,15 @@ zftl_do_gc:
strh w1, [x0,58]
mov w0, -1
strh w0, [x20]
- b .L3507
-.L3426:
+ b .L3648
+.L3564:
add x23, x23, :lo12:.LANCHOR4
mov w0, 5
ldrh w1, [x20,26]
- strb w0, [x23,1130]
+ strb w0, [x23,1122]
ldrh w0, [x20,24]
cmp w1, w0
- bcc .L3427
+ bcc .L3565
ldrh w0, [x20,56]
add w1, w0, 1
add x0, x20, x0, sxtw 1
@@ -22007,13 +23090,13 @@ zftl_do_gc:
strh w1, [x0,58]
mov w0, -1
strh w0, [x20]
-.L3427:
+.L3565:
add x20, x19, :lo12:.LANCHOR0
bl ftl_flush
bl sblk_wait_write_queue_completed
bl gc_write_completed
ldr x0, [x20,608]
- ldrh w1, [x24,80]
+ ldrh w1, [x22,80]
strh w1, [x0,128]
bl pm_flush
bl ftl_ext_info_flush
@@ -22023,23 +23106,23 @@ zftl_do_gc:
strh w1, [x20,2914]
cmp w2, 2
strh w2, [x20,2916]
- bne .L3429
+ bne .L3567
lsl w1, w1, 1
strh w1, [x20,2914]
- ldrb w1, [x20,3348]
- cbnz w1, .L3429
+ ldrb w1, [x20,3258]
+ cbnz w1, .L3567
mov w1, 1
strh w1, [x20,2916]
-.L3429:
+.L3567:
add x19, x19, :lo12:.LANCHOR0
strh wzr, [x19,2918]
- b .L3507
-.L3438:
+ b .L3648
+.L3576:
mov w21, 0
add x24, x19, :lo12:.LANCHOR0
-.L3333:
+.L3470:
bl gc_check_data_one_wl
- cbz w0, .L3432
+ cbz w0, .L3570
add x19, x19, :lo12:.LANCHOR0
add x23, x23, :lo12:.LANCHOR4
ldr x0, [x19,608]
@@ -22055,65 +23138,65 @@ zftl_do_gc:
ldr x0, [x19,2904]
bl buf_free
str xzr, [x19,2904]
- strb wzr, [x23,1130]
-.L3511:
+ strb wzr, [x23,1122]
+.L3652:
bl flt_sys_flush
- b .L3507
-.L3432:
+ b .L3648
+.L3570:
ldrh w1, [x24,2912]
ldrh w0, [x24,2914]
cmp w1, w0
- bcc .L3433
+ bcc .L3571
add x23, x23, :lo12:.LANCHOR4
mov w0, 6
- strb w0, [x23,1130]
+ strb w0, [x23,1122]
ldr x0, [x24,2904]
bl buf_free
str xzr, [x24,2904]
- b .L3507
-.L3433:
+ b .L3648
+.L3571:
cmp w20, 15
- bls .L3333
+ bls .L3470
cmp w26, 1
- bne .L3507
+ bne .L3648
add w21, w21, 1
uxtb w21, w21
cmp w21, 4
- bls .L3333
- b .L3507
-.L3334:
+ bls .L3470
+ b .L3648
+.L3471:
bl gc_update_l2p_map_new
mov w20, -1
bl gc_free_src_blk
add x19, x19, :lo12:.LANCHOR0
bl ftl_flush
bl pm_flush
- strh w20, [x24,80]
+ strh w20, [x22,80]
bl ftl_ext_info_flush
ldr x0, [x19,2864]
strh w20, [x0,126]
mov w0, 0
bl ftl_info_flush
-.L3508:
+.L3649:
add x23, x23, :lo12:.LANCHOR4
- strb wzr, [x23,1130]
-.L3507:
+ strb wzr, [x23,1122]
+.L3648:
mov w1, 16
- b .L3480
-.L3362:
+ b .L3620
+.L3500:
mov w1, w24
- b .L3480
-.L3413:
+ b .L3620
+.L3551:
adrp x1, .LANCHOR3
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR3
- mov w2, 2318
- add x1, x1, 800
+ mov w2, 2407
+ add x1, x1, 832
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
- b .L3436
-.L3480:
+ b .L3574
+.L3620:
sub sp, x29, #16
mov w0, w1
ldp x19, x20, [sp,32]
@@ -22135,37 +23218,38 @@ zftl_write:
mov w19, w0
adrp x0, .LANCHOR2
stp x23, x24, [sp,48]
- stp x25, x26, [sp,64]
- ldr w0, [x0,#:lo12:.LANCHOR2]
- mov w23, w2
stp x27, x28, [sp,80]
- stp x21, x22, [sp,32]
+ ldr w0, [x0,#:lo12:.LANCHOR2]
mov w28, w1
- mov x25, x3
- tbz x0, 12, .L3513
- adrp x0, .LC282
+ stp x21, x22, [sp,32]
+ stp x25, x26, [sp,64]
+ mov w23, w2
+ mov x24, x3
+ tbz x0, 12, .L3654
+ adrp x0, .LC294
+ ldr w4, [x24]
+ add x0, x0, :lo12:.LC294
mov w1, w19
- add x0, x0, :lo12:.LC282
mov w2, w28
mov w3, w23
bl printk
-.L3513:
- cbnz w19, .L3514
+.L3654:
+ cbnz w19, .L3655
adrp x0, .LANCHOR0+520
mov w19, 24576
ldr w2, [x0,#:lo12:.LANCHOR0+520]
- b .L3515
-.L3514:
+ b .L3656
+.L3655:
cmp w19, 3
mov w0, -1
- bhi .L3516
+ bhi .L3657
lsl w19, w19, 13
mov w2, 8192
-.L3515:
+.L3656:
add w1, w28, w23
mov w0, -1
cmp w1, w2
- bhi .L3516
+ bhi .L3657
add w28, w19, w28
adrp x19, .LANCHOR0
add x0, x19, :lo12:.LANCHOR0
@@ -22173,33 +23257,33 @@ zftl_write:
add w22, w22, w28
add w26, w28, w23
ldrb w0, [x0,2832]
- udiv w24, w28, w0
- mov w21, w24
+ udiv w25, w28, w0
+ mov w21, w25
udiv w22, w22, w0
- sub w20, w22, w24
+ sub w20, w22, w25
add w20, w20, 1
-.L3517:
- cbz w20, .L3536
+.L3658:
+ cbz w20, .L3677
mov w0, 0
bl buf_alloc
mov x27, x0
- cbnz x0, .L3518
+ cbnz x0, .L3659
bl ftl_write_commit
- b .L3517
-.L3518:
+ b .L3658
+.L3659:
strb wzr, [x0,57]
add x0, x19, :lo12:.LANCHOR0
- cmp w21, w24
+ cmp w21, w25
ldrb w4, [x0,2832]
cset w0, eq
strb w4, [x27,56]
cmp w21, w22
- beq .L3520
- cbz w0, .L3521
- b .L3530
-.L3520:
- cbz w0, .L3522
-.L3530:
+ beq .L3661
+ cbz w0, .L3662
+ b .L3671
+.L3661:
+ cbz w0, .L3663
+.L3671:
udiv w0, w28, w4
msub w0, w0, w4, w28
uxtb w0, w0
@@ -22208,18 +23292,18 @@ zftl_write:
uxtb w4, w4
cmp w4, w23
csel w4, w23, w4, hi
- b .L3534
-.L3522:
+ b .L3675
+.L3663:
msub w4, w4, w21, w26
-.L3534:
+.L3675:
strb w4, [x27,56]
-.L3521:
+.L3662:
ldrb w1, [x27,57]
sub w20, w20, #1
ldr x0, [x27,8]
ldrb w2, [x27,56]
add x0, x0, x1, lsl 9
- mov x1, x25
+ mov x1, x24
lsl w2, w2, 9
bl ftl_memcpy
str w21, [x27,36]
@@ -22233,12 +23317,12 @@ zftl_write:
mov x0, x27
bl ftl_write_buf
ldrb w0, [x27,56]
- add x25, x25, x0, lsl 9
- b .L3517
-.L3536:
+ add x24, x24, x0, lsl 9
+ b .L3658
+.L3677:
bl ftl_write_commit
mov w0, w20
-.L3535:
+.L3676:
mov w1, 1
bl zftl_do_gc
add x1, x19, :lo12:.LANCHOR0
@@ -22246,15 +23330,15 @@ zftl_write:
ldrh w0, [x1,2848]
add w0, w2, w0
cmp w0, 7
- bgt .L3537
+ bgt .L3678
mov w0, 0
- b .L3535
-.L3537:
+ b .L3676
+.L3678:
bl timer_get_time
- adrp x1, .LANCHOR7-76
- str w0, [x1,#:lo12:.LANCHOR7-76]
+ adrp x1, .LANCHOR7-60
+ str w0, [x1,#:lo12:.LANCHOR7-60]
mov w0, 0
-.L3516:
+.L3657:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -22312,23 +23396,23 @@ zftl_discard:
stp x27, x28, [sp,80]
ldr w1, [x1,520]
cmp w2, w1
- bhi .L3541
+ bhi .L3682
adrp x23, .LANCHOR7
add w24, w0, 24576
add x0, x23, :lo12:.LANCHOR7
adrp x25, .LANCHOR2
- ldr w1, [x0,-72]
+ ldr w1, [x0,-56]
add w1, w19, w1
- str w1, [x0,-72]
+ str w1, [x0,-56]
ldr w0, [x25,#:lo12:.LANCHOR2]
- tbz x0, 12, .L3542
- adrp x0, .LC283
+ tbz x0, 12, .L3683
+ adrp x0, .LC295
mov w2, w24
- add x0, x0, :lo12:.LC283
+ add x0, x0, :lo12:.LC295
mov w3, w19
mov w4, 0
bl printk
-.L3542:
+.L3683:
add x20, x21, :lo12:.LANCHOR0
ldr x0, [x20,2864]
ldr w26, [x0,8]
@@ -22339,7 +23423,7 @@ zftl_discard:
ldrb w22, [x20,2832]
udiv w20, w24, w22
msub w27, w20, w22, w24
- cbz w27, .L3543
+ cbz w27, .L3684
sub w22, w22, w27
mov w0, w20
cmp w22, w19
@@ -22347,20 +23431,20 @@ zftl_discard:
bl lpa_hash_get_ppa
str w0, [x29,120]
cmn w0, #1
- bne .L3544
+ bne .L3685
mov w0, w20
add x1, x29, 120
mov w2, 0
bl pm_log2phys
-.L3544:
+.L3685:
ldr w0, [x29,120]
and w28, w22, 65535
cmn w0, #1
- beq .L3546
+ beq .L3687
mov w0, 0
bl buf_alloc
mov x3, x0
- cbz x0, .L3546
+ cbz x0, .L3687
strb w27, [x0,57]
ubfiz x27, x27, 9, 25
str w20, [x0,36]
@@ -22381,31 +23465,31 @@ zftl_discard:
ldr w0, [x1,76]
add w0, w0, 1
str w0, [x1,76]
-.L3546:
+.L3687:
add w20, w20, 1
sub w19, w19, w28
-.L3543:
- cbz w19, .L3548
+.L3684:
+ cbz w19, .L3689
bl ftl_flush
-.L3548:
+.L3689:
mov w0, -1
mov w27, 1
str w0, [x29,124]
mov w28, 21
-.L3549:
+.L3690:
add x22, x21, :lo12:.LANCHOR0
ldrb w0, [x22,2832]
cmp w19, w0
- bcc .L3588
+ bcc .L3729
mov w0, w20
bl lpa_hash_get_ppa
str w0, [x29,120]
cmn w0, #1
- beq .L3550
+ beq .L3691
mov w0, 0
bl buf_alloc
mov x3, x0
- cbz x0, .L3552
+ cbz x0, .L3693
ldrb w2, [x22,2832]
mov w1, 0
str w20, [x0,36]
@@ -22420,15 +23504,15 @@ zftl_discard:
mov x0, x3
bl ftl_write_buf
bl ftl_write_commit
- b .L3587
-.L3550:
+ b .L3728
+.L3691:
mov w0, w20
add x1, x29, 120
mov w2, 0
bl pm_log2phys
ldr w0, [x29,120]
cmn w0, #1
- beq .L3552
+ beq .L3693
add x1, x29, 124
mov w2, 1
mov w0, w20
@@ -22443,36 +23527,36 @@ zftl_discard:
and w0, w2, w0
udiv w0, w0, w1
bl ftl_vpn_decrement
-.L3587:
+.L3728:
ldr x1, [x22,2864]
ldr w0, [x1,76]
add w0, w0, 1
str w0, [x1,76]
-.L3552:
+.L3693:
add x0, x21, :lo12:.LANCHOR0
add w20, w20, 1
ldrb w0, [x0,2832]
sub w19, w19, w0
- b .L3549
-.L3588:
- cbz w19, .L3556
+ b .L3690
+.L3729:
+ cbz w19, .L3697
mov w0, w20
bl lpa_hash_get_ppa
str w0, [x29,120]
cmn w0, #1
- bne .L3557
+ bne .L3698
mov w0, w20
add x1, x29, 120
mov w2, 0
bl pm_log2phys
-.L3557:
+.L3698:
ldr w0, [x29,120]
cmn w0, #1
- beq .L3556
+ beq .L3697
mov w0, 0
bl buf_alloc
mov x22, x0
- cbz x0, .L3556
+ cbz x0, .L3697
str w20, [x0,36]
strb wzr, [x0,57]
strb w19, [x0,56]
@@ -22480,16 +23564,16 @@ zftl_discard:
add x0, x21, :lo12:.LANCHOR0
ldrb w0, [x0,2832]
cmp w19, w0
- bcc .L3559
+ bcc .L3700
adrp x1, .LANCHOR3
adrp x0, .LC0
add x1, x1, :lo12:.LANCHOR3
- mov w2, 1236
- add x1, x1, 816
+ mov w2, 1241
+ add x1, x1, 848
add x0, x0, :lo12:.LC0
bl printk
bl dump_stack
-.L3559:
+.L3700:
ldr x0, [x22,8]
mov w1, 0
lsl w2, w19, 9
@@ -22502,28 +23586,28 @@ zftl_discard:
ldr w0, [x1,76]
add w0, w0, 1
str w0, [x1,76]
-.L3556:
+.L3697:
add x0, x23, :lo12:.LANCHOR7
mov w4, 0
- ldr w1, [x0,-72]
+ ldr w1, [x0,-56]
cmp w1, 8192
- bls .L3541
+ bls .L3682
ldr w0, [x25,#:lo12:.LANCHOR2]
- tbz x0, 12, .L3560
- adrp x0, .LC283
+ tbz x0, 12, .L3701
+ adrp x0, .LC295
mov w2, w24
- add x0, x0, :lo12:.LC283
+ add x0, x0, :lo12:.LC295
mov w3, w19
bl printk
-.L3560:
+.L3701:
add x23, x23, :lo12:.LANCHOR7
add x21, x21, :lo12:.LANCHOR0
- str wzr, [x23,-72]
+ str wzr, [x23,-56]
bl flt_sys_flush
mov w0, 1
mov w4, 0
str w0, [x21,2884]
-.L3541:
+.L3682:
mov w0, w4
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -22547,36 +23631,35 @@ id_block_prog_msb_ff_data:
stp x19, x20, [sp,16]
stp x25, x26, [sp,64]
stp x27, x28, [sp,80]
- adrp x20, .LANCHOR4
uxth w19, w2
- ldr x0, [x0,624]
- ldrb w2, [x0,19]
- add x0, x20, :lo12:.LANCHOR4
- ldrb w0, [x0,1264]
- cbnz w0, .L3589
+ ldr x2, [x0,624]
+ ldrb w0, [x0,782]
+ ldrb w2, [x2,19]
+ cbnz w0, .L3730
sub w0, w2, #5
uxtb w0, w0
cmp w0, 2
- bls .L3591
+ bls .L3732
cmp w2, 68
- beq .L3591
+ beq .L3732
sub w2, w2, #19
and w2, w2, -17
uxtb w2, w2
- cbnz w2, .L3589
-.L3591:
- adrp x24, .LC284
+ cbnz w2, .L3730
+.L3732:
+ adrp x24, .LC296
+ adrp x20, .LANCHOR4
mov w25, w1
- add x24, x24, :lo12:.LC284
+ add x24, x24, :lo12:.LC296
add x20, x20, :lo12:.LANCHOR4
mov w27, 65535
-.L3593:
+.L3734:
add x28, x21, :lo12:.LANCHOR0
ldr x0, [x28,624]
ldrh w0, [x0,10]
cmp w0, w19
- bls .L3589
- add x22, x20, 68
+ bls .L3730
+ add x22, x20, 60
add w26, w19, w25
mov x0, x24
mov w1, w19
@@ -22585,8 +23668,8 @@ id_block_prog_msb_ff_data:
bl printk
ldrh w0, [x22,w19,sxtw 1]
cmp w0, w27
- bne .L3589
- ldr x0, [x20,1192]
+ bne .L3730
+ ldr x0, [x20,1184]
mov w1, 255
mov w2, 16384
add w19, w19, 1
@@ -22594,13 +23677,13 @@ id_block_prog_msb_ff_data:
uxth w19, w19
ldr x4, [x28,624]
mov w0, w23
- ldr x2, [x20,1192]
+ ldr x2, [x20,1184]
mov w1, w26
ldrb w4, [x4,9]
mov x3, x2
bl flash_prog_page
- b .L3593
-.L3589:
+ b .L3734
+.L3730:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -22616,56 +23699,58 @@ write_idblock:
stp x29, x30, [sp, -224]!
add x29, sp, 0
stp x21, x22, [sp,32]
- adrp x22, .LANCHOR0
+ adrp x21, .LANCHOR0
stp x19, x20, [sp,16]
mov w19, w0
- add x0, x22, :lo12:.LANCHOR0
+ add x0, x21, :lo12:.LANCHOR0
stp x23, x24, [sp,48]
stp x25, x26, [sp,64]
stp x27, x28, [sp,80]
+ adrp x20, .LANCHOR2
mov x25, x1
- str x2, [x29,128]
ldr x0, [x0,624]
- ldrb w21, [x0,9]
- ldrh w20, [x0,10]
+ str x2, [x29,128]
+ ldrb w22, [x0,9]
+ ldrh w26, [x0,10]
+ add x0, x20, :lo12:.LANCHOR2
+ ldrh w24, [x0,34]
mov w0, 59392
movk w0, 0x3, lsl 16
bl ftl_malloc
mov x23, x0
mov w0, -1
- cbz x23, .L3641
+ cbz x23, .L3785
add w19, w19, 511
lsr w19, w19, 9
cmp w19, 8
- bls .L3626
+ bls .L3768
cmp w19, 500
- bhi .L3641
- b .L3597
-.L3626:
+ bhi .L3785
+ b .L3738
+.L3768:
mov w19, 8
-.L3597:
+.L3738:
ldr w2, [x25]
mov w1, 35899
movk w1, 0xfcdc, lsl 16
mov w0, -1
cmp w2, w1
- bne .L3641
- mul w20, w20, w21
+ bne .L3785
+ uxth w22, w22
add x3, x25, 253952
- mov w2, 63999
add x3, x3, 2044
+ mov w2, 63999
+ mul w0, w22, w26
mov w4, 4097
- uxth w0, w20
- str w0, [x29,156]
- sub w0, w0, #1
- ldr w1, [x29,156]
- add w0, w0, w19
- udiv w0, w0, w1
+ uxth w0, w0
+ sub w1, w0, #1
+ add w1, w1, w19
+ udiv w0, w1, w0
str w0, [x29,120]
mov w0, 0
-.L3601:
+.L3742:
ldr w1, [x3]
- cbnz w1, .L3598
+ cbnz w1, .L3739
ldr w1, [x25,w0,uxtw 2]
add w0, w0, 1
cmp w0, w4
@@ -22673,81 +23758,91 @@ write_idblock:
csel w0, w0, wzr, cc
str w1, [x3],-4
cmp w2, 4096
- bne .L3601
- b .L3600
-.L3598:
- adrp x0, .LC285
- add x0, x0, :lo12:.LC285
+ bne .L3742
+ b .L3741
+.L3739:
+ adrp x0, .LC297
+ add x0, x0, :lo12:.LC297
bl printk
-.L3600:
+.L3741:
+ mul w22, w22, w24
ldr x1, [x29,128]
- adrp x0, .LC286
- add x0, x0, :lo12:.LC286
mov w2, 4
mov w3, 5
- mov x21, 0
- mov w28, w21
+ uxth w0, w22
+ str w0, [x29,152]
+ adrp x0, .LC298
+ mov x22, 0
+ add x0, x0, :lo12:.LC298
+ mov w28, w22
bl rknand_print_hex
- adrp x0, .LC287
+ adrp x0, .LC299
mov w1, w19
- add x0, x0, :lo12:.LC287
+ add x0, x0, :lo12:.LC299
mov w2, w19
bl printk
-.L3623:
+ add x0, x20, :lo12:.LANCHOR2
+ str x0, [x29,104]
+.L3765:
adrp x1, .LANCHOR7
add x1, x1, :lo12:.LANCHOR7
- ldrb w1, [x1,-102]
- cbnz w1, .L3602
+ ldrb w1, [x1,-82]
+ cbnz w1, .L3743
ldr x1, [x29,128]
- ldr w2, [x29,156]
- ldr w1, [x1,x21,lsl 2]
+ ldr w2, [x29,152]
+ ldr w1, [x1,x22,lsl 2]
mul w20, w1, w2
- cbz w21, .L3603
+ cbz w22, .L3744
ldr w2, [x29,120]
cmp w2, 1
- bls .L3603
- sub w0, w21, #1
+ bls .L3744
+ sub w0, w22, #1
ldr x2, [x29,128]
ldr w0, [x2,x0,lsl 2]
add w0, w0, 1
cmp w1, w0
- bne .L3603
- b .L3604
-.L3602:
- add x0, x22, :lo12:.LANCHOR0
+ bne .L3744
+ b .L3745
+.L3743:
+ add x0, x21, :lo12:.LANCHOR0
ldr x0, [x0,728]
- add x0, x0, x21, uxtw
+ add x0, x0, x22, uxtw
ldrb w20, [x0,32]
cmp w20, 255
- beq .L3604
- ldr w0, [x29,156]
+ beq .L3745
+ ldr w0, [x29,152]
mul w20, w20, w0
-.L3603:
- mov w2, 512
+.L3744:
mov w1, 0
+ mov w2, 512
mov x0, x23
bl ftl_memset
- add x0, x22, :lo12:.LANCHOR0
- ldr x1, [x0,624]
- ldrb w26, [x1,9]
- ldrh w24, [x1,10]
- ldrb w1, [x0,720]
- str w1, [x29,116]
+ add x1, x21, :lo12:.LANCHOR0
+ ldr x2, [x1,624]
+ ldrb w26, [x2,9]
+ ldrh w27, [x2,10]
+ ldr x2, [x29,104]
+ uxth w0, w26
+ ldrh w24, [x2,34]
+ mul w27, w0, w27
+ mul w24, w0, w24
+ ldrb w0, [x1,720]
+ uxth w27, w27
+ strb wzr, [x1,720]
udiv w1, w20, w26
- strb wzr, [x0,720]
- mul w24, w26, w24
+ str w0, [x29,116]
mov w0, 0
uxth w24, w24
bl flash_erase_block
- cmp w19, w24
+ cmp w19, w27
mov w2, 1
- bls .L3605
+ bls .L3746
mov w0, 0
add w1, w20, w24
bl flash_erase_block
mov w2, 2
-.L3605:
- add x27, x22, :lo12:.LANCHOR0
+.L3746:
+ add x27, x21, :lo12:.LANCHOR0
ldr x1, [x27,624]
ldrh w0, [x1,10]
ldrb w1, [x1,12]
@@ -22759,42 +23854,49 @@ write_idblock:
msub w0, w0, w24, w20
str w0, [x29,124]
sub w0, w20, w0
- str w0, [x29,152]
+ str w0, [x29,156]
cmp w20, w0
- bne .L3631
+ bne .L3773
ldrb w0, [x27,516]
cmp w0, 9
- bne .L3631
- adrp x0, .LANCHOR4
+ bne .L3773
+ adrp x0, .LANCHOR4+1224
mov w1, 0
- add x0, x0, :lo12:.LANCHOR4
mov w2, 1024
- ldr x3, [x0,1248]
+ ldr x3, [x0,#:lo12:.LANCHOR4+1224]
str x3, [x29,144]
mov x0, x3
bl ftl_memset
ldr x3, [x29,144]
mov w0, 18766
movk w0, 0x464e, lsl 16
- mov w1, 12
- cmp w26, 8
str w0, [x3]
- str w1, [x3,4]
+ mov w0, 12
+ str w0, [x3,4]
+ ldrb w0, [x27,782]
str wzr, [x3,12]
- ldr x2, [x27,624]
- ldrb w0, [x2,29]
+ strb wzr, [x3,16]
+ cbz w0, .L3748
+ ldr x0, [x27,624]
+ ldrb w0, [x0,29]
strb w0, [x3,16]
+.L3748:
mov w0, 4
strb w0, [x3,17]
- ldrh w0, [x2,10]
- ldrb w2, [x2,12]
+ add x0, x21, :lo12:.LANCHOR0
+ cmp w26, 8
+ str x3, [x29,144]
+ ldr x1, [x0,624]
+ ldrh w0, [x1,10]
+ ldrb w1, [x1,12]
strb wzr, [x3,20]
strh wzr, [x3,22]
- sdiv w0, w0, w2
- mov w2, 16
+ sdiv w0, w0, w1
+ mov w1, 16
strh w0, [x3,18]
mov w0, 70
- csel w0, w0, w2, hi
+ csel w0, w0, w1, hi
+ mov w1, 12
strb w0, [x3,21]
add x0, x3, 12
bl js_hash
@@ -22802,106 +23904,102 @@ write_idblock:
str w0, [x3,8]
sub w0, w19, #4
str w0, [x29,144]
- b .L3606
-.L3631:
+ b .L3747
+.L3773:
str w19, [x29,144]
mov x3, 0
-.L3606:
+.L3747:
str x25, [x29,136]
mov w24, 0
- add x27, x22, :lo12:.LANCHOR0
-.L3608:
+ add x27, x21, :lo12:.LANCHOR0
+.L3750:
ldr w0, [x29,112]
cmp w24, w0
- bcs .L3650
+ bcs .L3795
ldr w0, [x29,124]
- adrp x2, .LANCHOR4
- add x2, x2, :lo12:.LANCHOR4
+ ldrb w2, [x27,782]
add w4, w24, w0
add x0, x27, 4
ubfx x4, x4, 2, 16
add w1, w4, 1
- ldrb w2, [x2,1264]
ldrh w0, [x0,w1,sxtw 1]
- cbz w2, .L3610
+ cbz w2, .L3752
ldrb w6, [x27,1]
lsl w0, w1, 1
cmp w6, wzr
csel w0, w0, w1, ne
-.L3610:
+.L3752:
ldrb w1, [x27,516]
cmp w1, 9
- beq .L3649
+ beq .L3794
sub w0, w0, #1
lsl w0, w0, 2
-.L3649:
+.L3794:
str w0, [x29,160]
mov w0, 61424
str w0, [x29,164]
add x0, x27, 4
ldrh w0, [x0,w4,sxtw 1]
- cbnz w2, .L3614
+ cbnz w2, .L3756
mov w4, w0
- b .L3615
-.L3614:
+ b .L3757
+.L3756:
ldrb w1, [x27,1]
lsl w0, w4, 1
cmp w1, wzr
csel w4, w0, w4, ne
-.L3615:
+.L3757:
mul w0, w4, w26
- cbnz x3, .L3616
- ldr w1, [x29,152]
+ cbnz x3, .L3758
+ ldr w1, [x29,156]
add x2, x29, 160
- str x4, [x29,104]
+ str x4, [x29,96]
add w0, w0, w1
ldr x1, [x29,136]
- bl fw_flash_page_prog.constprop.30
- adrp x0, .LANCHOR4
- ldr x4, [x29,104]
- add x0, x0, :lo12:.LANCHOR4
- ldrb w0, [x0,1264]
- cbnz w0, .L3617
- ldr w1, [x29,152]
+ bl fw_flash_page_prog.constprop.31
+ ldrb w0, [x27,782]
+ ldr x4, [x29,96]
+ cbnz w0, .L3759
+ ldr w1, [x29,156]
add w2, w4, 1
udiv w1, w1, w26
bl id_block_prog_msb_ff_data
-.L3617:
+.L3759:
ldr x0, [x29,136]
add x0, x0, 2048
str x0, [x29,136]
- b .L3618
-.L3616:
- ldr w1, [x29,152]
+ b .L3760
+.L3758:
+ ldr w1, [x29,156]
add x2, x29, 160
add w0, w0, w1
mov x1, x3
- bl fw_flash_page_prog.constprop.30
-.L3618:
+ bl fw_flash_page_prog.constprop.31
+.L3760:
add w24, w24, 4
mov x3, 0
uxth w24, w24
- b .L3608
-.L3650:
- add x0, x22, :lo12:.LANCHOR0
+ b .L3750
+.L3795:
+ add x0, x21, :lo12:.LANCHOR0
ldrb w1, [x29,116]
mov x2, x23
strb w1, [x0,720]
mov w0, w20
ldr w1, [x29,144]
- bl id_block_read_data.constprop.31
+ bl id_block_read_data.constprop.32
ldr w0, [x29,144]
mov x1, 0
lsl w0, w0, 7
-.L3620:
+.L3762:
cmp w0, w1
- bls .L3651
+ bls .L3796
ldr w3, [x23,x1,lsl 2]
add x1, x1, 1
add x2, x25, x1, lsl 2
ldr w2, [x2,-4]
cmp w3, w2
- beq .L3620
+ beq .L3762
mov x0, x23
mov w1, 0
mov w2, 512
@@ -22909,21 +24007,21 @@ write_idblock:
mov w1, w20
mov w0, 0
bl flash_erase_block
- b .L3604
-.L3651:
+ b .L3745
+.L3796:
add w28, w28, 1
cmp w28, 5
- bhi .L3624
-.L3604:
- add x21, x21, 1
- cmp x21, 4
- bne .L3623
-.L3624:
+ bhi .L3766
+.L3745:
+ add x22, x22, 1
+ cmp x22, 4
+ bne .L3765
+.L3766:
mov x0, x23
bl ftl_free
cmp w28, wzr
csetm w0, eq
-.L3641:
+.L3785:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x23, x24, [sp,48]
@@ -22941,17 +24039,17 @@ CRC_32:
mov x5, x0
add x3, x3, :lo12:.LANCHOR2
mov w0, w2
-.L3653:
+.L3798:
cmp w1, w2
- bls .L3655
+ bls .L3800
ldrb w4, [x5,x2]
- add x6, x3, 2488
+ add x6, x3, 2552
add x2, x2, 1
eor w4, w4, w0, lsr 24
ldr w4, [x6,w4,uxtw 2]
eor w0, w4, w0, lsl 8
- b .L3653
-.L3655:
+ b .L3798
+.L3800:
ret
.size CRC_32, .-CRC_32
.align 2
@@ -22968,32 +24066,32 @@ write_loader_lba:
mov w21, w1
mov x23, x2
adrp x20, .LANCHOR7
- bne .L3657
+ bne .L3802
ldr w1, [x2]
mov w0, 35899
movk w0, 0xfcdc, lsl 16
cmp w1, w0
- bne .L3657
+ bne .L3802
add x22, x20, :lo12:.LANCHOR7
mov w0, 1
- strb w0, [x22,-68]
+ strb w0, [x22,-52]
mov w0, 59392
movk w0, 0x3, lsl 16
bl ftl_malloc
- str x0, [x22,-64]
+ str x0, [x22,-48]
mov w2, 59392
mov w1, 0
movk w2, 0x3, lsl 16
bl ftl_memset
- str w19, [x22,-56]
-.L3657:
+ str w19, [x22,-40]
+.L3802:
add x3, x20, :lo12:.LANCHOR7
- ldrb w0, [x3,-68]
- cbz w0, .L3656
+ ldrb w0, [x3,-52]
+ cbz w0, .L3801
sub w0, w19, #64
- ldr x22, [x3,-64]
+ ldr x22, [x3,-48]
cmp w0, 499
- bhi .L3659
+ bhi .L3804
mov w3, 564
ubfiz x0, x0, 9, 25
sub w3, w3, w19
@@ -23003,29 +24101,29 @@ write_loader_lba:
csel w2, w3, w21, ls
lsl w2, w2, 9
bl ftl_memcpy
- b .L3660
-.L3659:
+ b .L3805
+.L3804:
cmp w19, 563
- bhi .L3670
-.L3660:
+ bhi .L3815
+.L3805:
add x0, x20, :lo12:.LANCHOR7
- ldr w1, [x0,-56]
+ ldr w1, [x0,-40]
cmp w1, w19
- beq .L3668
- strb wzr, [x0,-68]
- cbz x22, .L3669
+ beq .L3813
+ strb wzr, [x0,-52]
+ cbz x22, .L3814
mov x0, x22
bl ftl_free
-.L3669:
+.L3814:
add x0, x20, :lo12:.LANCHOR7
- str xzr, [x0,-64]
-.L3668:
+ str xzr, [x0,-48]
+.L3813:
add x20, x20, :lo12:.LANCHOR7
add w19, w19, w21
- str w19, [x20,-56]
- b .L3656
-.L3670:
- ldr w2, [x3,-56]
+ str w19, [x20,-40]
+ b .L3801
+.L3815:
+ ldr w2, [x3,-40]
mov w0, 500
sub w2, w2, #64
cmp w2, 500
@@ -23034,7 +24132,7 @@ write_loader_lba:
ldr x0, [x0,#:lo12:.LANCHOR0+624]
ldrb w0, [x0,9]
cmp w0, 4
- beq .L3671
+ beq .L3816
mov w0, 2
str w0, [x29,64]
mov w0, 3
@@ -23045,51 +24143,51 @@ write_loader_lba:
str w0, [x29,76]
mov w0, 6
str w0, [x29,80]
- b .L3662
-.L3671:
+ b .L3807
+.L3816:
mov x3, 0
-.L3661:
+.L3806:
cmp w2, 256
add x0, x29, 64
- bls .L3663
+ bls .L3808
lsl w1, w3, 1
str w1, [x0,x3,lsl 2]
- b .L3664
-.L3663:
+ b .L3809
+.L3808:
str w3, [x0,x3,lsl 2]
-.L3664:
+.L3809:
add x3, x3, 1
cmp x3, 5
- bne .L3661
-.L3662:
+ bne .L3806
+.L3807:
add x0, x20, :lo12:.LANCHOR7
mov w4, 63999
- ldr x3, [x0,-48]
+ ldr x3, [x0,-32]
add x3, x3, 61440
add x3, x3, 2559
-.L3667:
+.L3812:
ldrb w0, [x3]
- cbz w0, .L3665
+ cbz w0, .L3810
add w2, w4, 1
lsl w0, w2, 2
- b .L3666
-.L3665:
+ b .L3811
+.L3810:
sub w4, w4, #1
sub x3, x3, #1
cmp w4, 4096
- bne .L3667
+ bne .L3812
lsl w0, w2, 9
-.L3666:
+.L3811:
mov x1, x22
add x2, x29, 64
add x22, x20, :lo12:.LANCHOR7
bl write_idblock
- ldr x0, [x22,-64]
- strb wzr, [x22,-68]
+ ldr x0, [x22,-48]
+ strb wzr, [x22,-52]
bl ftl_free
- str xzr, [x22,-64]
- b .L3668
-.L3656:
+ str xzr, [x22,-48]
+ b .L3813
+.L3801:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldr x23, [sp,48]
@@ -23109,19 +24207,19 @@ FtlWrite:
cmp w0, 1983
mov w19, w1
mov w20, w2
- bhi .L3681
- cbnz w21, .L3681
+ bhi .L3826
+ cbnz w21, .L3826
mov w0, w1
mov w1, w2
mov x2, x3
str x3, [x29,56]
bl write_loader_lba
ldr x3, [x29,56]
-.L3681:
- adrp x0, .LANCHOR4+1176
+.L3826:
+ adrp x0, .LANCHOR4+1168
mov w1, w19
mov w2, w20
- ldr x0, [x0,#:lo12:.LANCHOR4+1176]
+ ldr x0, [x0,#:lo12:.LANCHOR4+1168]
ldr x4, [x0,48]
mov w0, w21
blr x4
@@ -23144,319 +24242,319 @@ rknand_sys_storage_ioctl:
stp x21, x22, [sp,32]
mov w19, w1
mov x20, x2
- beq .L3690
+ beq .L3835
mov w0, 29187
movk w0, 0x4004, lsl 16
cmp w1, w0
- bhi .L3691
+ bhi .L3836
mov w0, 25726
movk w0, 0x4004, lsl 16
cmp w1, w0
- beq .L3692
+ beq .L3837
mov w0, 25726
movk w0, 0x4004, lsl 16
cmp w1, w0
- bhi .L3693
+ bhi .L3838
mov w0, 25601
movk w0, 0x4004, lsl 16
cmp w1, w0
- beq .L3694
+ beq .L3839
mov w0, 25601
movk w0, 0x4004, lsl 16
cmp w1, w0
- bhi .L3695
+ bhi .L3840
mov w0, 25364
movk w0, 0x4004, lsl 16
cmp w1, w0
- bne .L3752
+ bne .L3897
bl rknand_dev_flush
- b .L3786
-.L3695:
+ b .L3931
+.L3840:
mov w0, 25602
movk w0, 0x4004, lsl 16
cmp w1, w0
- beq .L3697
+ beq .L3842
mov w0, 25603
movk w0, 0x4004, lsl 16
cmp w1, w0
- beq .L3698
- b .L3752
-.L3693:
+ beq .L3843
+ b .L3897
+.L3838:
mov w0, 27688
movk w0, 0x4004, lsl 16
cmp w1, w0
- beq .L3699
+ beq .L3844
mov w0, 27688
movk w0, 0x4004, lsl 16
cmp w1, w0
- bhi .L3700
+ bhi .L3845
mov w0, 25727
movk w0, 0x4004, lsl 16
cmp w1, w0
- beq .L3701
- b .L3752
-.L3700:
+ beq .L3846
+ b .L3897
+.L3845:
mov w0, 27698
movk w0, 0x4004, lsl 16
cmp w1, w0
- beq .L3699
+ beq .L3844
mov w0, 27708
movk w0, 0x4004, lsl 16
cmp w1, w0
- beq .L3699
- b .L3752
-.L3691:
+ beq .L3844
+ b .L3897
+.L3836:
mov w0, 29267
movk w0, 0x4004, lsl 16
cmp w1, w0
- beq .L3702
+ beq .L3847
mov w0, 29267
movk w0, 0x4004, lsl 16
cmp w1, w0
- bhi .L3703
+ bhi .L3848
mov w0, 29189
movk w0, 0x4004, lsl 16
cmp w1, w0
- beq .L3704
+ beq .L3849
mov w0, 29189
movk w0, 0x4004, lsl 16
cmp w1, w0
- bcc .L3705
+ bcc .L3850
mov w0, 29210
movk w0, 0x4004, lsl 16
cmp w1, w0
- beq .L3706
+ beq .L3851
mov w0, 29266
movk w0, 0x4004, lsl 16
cmp w1, w0
- beq .L3707
- b .L3752
-.L3703:
+ beq .L3852
+ b .L3897
+.L3848:
mov w0, 30225
movk w0, 0x4004, lsl 16
cmp w1, w0
- beq .L3708
+ beq .L3853
mov w0, 30225
movk w0, 0x4004, lsl 16
cmp w1, w0
- bhi .L3709
+ bhi .L3854
mov w0, 29268
movk w0, 0x4004, lsl 16
cmp w1, w0
- beq .L3710
+ beq .L3855
mov w0, 30224
movk w0, 0x4004, lsl 16
cmp w1, w0
- beq .L3711
- b .L3752
-.L3709:
+ beq .L3856
+ b .L3897
+.L3854:
mov w0, 30226
movk w0, 0x4004, lsl 16
cmp w1, w0
- beq .L3711
+ beq .L3856
mov w0, 30227
movk w0, 0x4004, lsl 16
cmp w1, w0
- beq .L3708
- b .L3752
-.L3705:
- adrp x0, .LC288
- add x0, x0, :lo12:.LC288
+ beq .L3853
+ b .L3897
+.L3850:
+ adrp x0, .LC300
+ add x0, x0, :lo12:.LC300
bl printk
mov w0, 4096
bl ftl_malloc
mov x19, x0
- cbnz x0, .L3712
-.L3717:
+ cbnz x0, .L3857
+.L3862:
mov x0, -12
- b .L3689
-.L3712:
+ b .L3834
+.L3857:
mov x1, x20
mov x2, 512
bl rk_copy_from_user
- cbnz x0, .L3793
- adrp x0, .LC290
+ cbnz x0, .L3938
+ adrp x0, .LC302
ldr w1, [x19]
ldr w2, [x19,4]
- add x0, x0, :lo12:.LC290
+ add x0, x0, :lo12:.LC302
bl printk
ldr w0, [x19,4]
str w0, [x29,52]
cmp w0, 8
- bhi .L3790
+ bhi .L3935
bl rknand_device_lock
ldr w1, [x29,52]
mov x2, x19
ldr w0, [x19]
- bl id_block_read_data.constprop.31
+ bl id_block_read_data.constprop.32
bl rknand_device_unlock
ldr w2, [x29,52]
mov x0, x20
mov x1, x19
ubfiz x2, x2, 9, 23
bl rk_copy_to_user
- cbz x0, .L3796
- adrp x0, .LC291
- add x0, x0, :lo12:.LC291
-.L3788:
+ cbz x0, .L3941
+ adrp x0, .LC303
+ add x0, x0, :lo12:.LC303
+.L3933:
bl printk
-.L3790:
+.L3935:
mov x0, x19
-.L3791:
+.L3936:
bl ftl_free
-.L3789:
+.L3934:
mov x0, -14
- b .L3689
-.L3704:
- adrp x0, .LC292
- add x0, x0, :lo12:.LC292
+ b .L3834
+.L3849:
+ adrp x0, .LC304
+ add x0, x0, :lo12:.LC304
bl printk
mov w0, 4096
bl ftl_malloc
mov x19, x0
- cbz x0, .L3717
+ cbz x0, .L3862
mov x1, x20
mov x2, 4096
bl rk_copy_from_user
- cbnz x0, .L3793
- adrp x0, .LC293
+ cbnz x0, .L3938
+ adrp x0, .LC305
ldr w1, [x19]
ldr w2, [x19,4]
- add x0, x0, :lo12:.LC293
+ add x0, x0, :lo12:.LC305
bl printk
adrp x0, .LANCHOR7
add x22, x0, :lo12:.LANCHOR7
mov x20, x0
- ldr x21, [x22,-48]
- cbnz x21, .L3719
+ ldr x21, [x22,-32]
+ cbnz x21, .L3864
mov w0, 260096
bl ftl_malloc
- str x0, [x22,-48]
- cbz x0, .L3790
+ str x0, [x22,-32]
+ cbz x0, .L3935
mov w1, w21
mov x2, 260096
bl memset
-.L3719:
+.L3864:
ldr w2, [x19,4]
cmp w2, 4088
- bhi .L3790
+ bhi .L3935
ldr w0, [x19]
mov w1, 55296
movk w1, 0x3, lsl 16
cmp w0, w1
- bhi .L3790
+ bhi .L3935
add x20, x20, :lo12:.LANCHOR7
uxtw x2, w2
- ldr x1, [x20,-48]
+ ldr x1, [x20,-32]
add x0, x1, x0, uxtw
add x1, x19, 8
bl memcpy
-.L3796:
+.L3941:
mov x0, x19
bl ftl_free
- b .L3786
-.L3707:
- adrp x0, .LC294
- add x0, x0, :lo12:.LC294
+ b .L3931
+.L3852:
+ adrp x0, .LC306
+ add x0, x0, :lo12:.LC306
bl printk
mov w0, 4096
bl ftl_malloc
mov x19, x0
- cbz x0, .L3717
+ cbz x0, .L3862
mov x1, x20
mov x2, 28
bl rk_copy_from_user
- cbz x0, .L3722
-.L3793:
- adrp x0, .LC289
- add x0, x0, :lo12:.LC289
- b .L3788
-.L3722:
+ cbz x0, .L3867
+.L3938:
+ adrp x0, .LC301
+ add x0, x0, :lo12:.LC301
+ b .L3933
+.L3867:
ldr w1, [x19]
- adrp x0, .LC295
+ adrp x0, .LC307
ldr w2, [x19,4]
- add x0, x0, :lo12:.LC295
+ add x0, x0, :lo12:.LC307
bl printk
ldr w1, [x19]
mov w0, 59392
movk w0, 0x3, lsl 16
cmp w1, w0
- bhi .L3790
+ bhi .L3935
adrp x20, .LANCHOR7
add x20, x20, :lo12:.LANCHOR7
- ldr x0, [x20,-48]
- cbz x0, .L3790
+ ldr x0, [x20,-32]
+ cbz x0, .L3935
bl CRC_32
ldr w1, [x19,4]
cmp w1, w0
- beq .L3725
+ beq .L3870
mov x0, x19
bl ftl_free
mov x0, -2
- b .L3689
-.L3725:
+ b .L3834
+.L3870:
bl rknand_device_lock
- ldr x1, [x20,-48]
+ ldr x1, [x20,-32]
add x2, x19, 8
ldr w0, [x19]
bl write_idblock
bl rknand_device_unlock
- ldr x0, [x20,-48]
+ ldr x0, [x20,-32]
bl ftl_free
- str xzr, [x20,-48]
- b .L3796
-.L3706:
- adrp x0, .LC296
- add x0, x0, :lo12:.LC296
+ str xzr, [x20,-32]
+ b .L3941
+.L3851:
+ adrp x0, .LC308
+ add x0, x0, :lo12:.LC308
bl printk
mov w0, 4096
bl ftl_malloc
mov x21, x0
- cbz x0, .L3717
+ cbz x0, .L3862
bl ReadFlashInfo
mov x0, x20
mov x1, x21
mov x2, 11
- b .L3798
-.L3690:
- adrp x0, .LC297
- add x0, x0, :lo12:.LC297
+ b .L3943
+.L3835:
+ adrp x0, .LC309
+ add x0, x0, :lo12:.LC309
bl printk
bl nand_blk_add_whole_disk
mov w0, 4096
bl ftl_malloc
mov x21, x0
- cbz x0, .L3717
+ cbz x0, .L3862
mov w1, 0
mov w2, 64
bl ftl_memset
mov x0, x20
mov x1, x21
mov x2, 64
- b .L3798
-.L3702:
- adrp x0, .LC298
- add x0, x0, :lo12:.LC298
+ b .L3943
+.L3847:
+ adrp x0, .LC310
+ add x0, x0, :lo12:.LC310
bl printk
- adrp x0, .LANCHOR7-40
+ adrp x0, .LANCHOR7-24
add x1, x29, 52
mov x2, 4
- ldr x0, [x0,#:lo12:.LANCHOR7-40]
+ ldr x0, [x0,#:lo12:.LANCHOR7-24]
ldr w0, [x0,20]
str w0, [x29,52]
mov x0, x20
-.L3781:
+.L3926:
bl rk_copy_to_user
- cbnz x0, .L3789
- b .L3786
-.L3710:
- adrp x0, .LC299
- add x0, x0, :lo12:.LC299
+ cbnz x0, .L3934
+ b .L3931
+.L3855:
+ adrp x0, .LC311
+ add x0, x0, :lo12:.LC311
bl printk
mov w0, 4096
bl ftl_malloc
mov x21, x0
- cbz x0, .L3717
+ cbz x0, .L3862
bl rknand_device_lock
mov w1, 264
mov w2, 2
@@ -23467,96 +24565,96 @@ rknand_sys_storage_ioctl:
mov x0, x20
mov x1, x21
mov x2, 1024
-.L3798:
+.L3943:
bl rk_copy_to_user
mov x19, x0
mov x0, x21
- cbnz x19, .L3791
+ cbnz x19, .L3936
bl ftl_free
- b .L3716
-.L3694:
- adrp x0, .LC300
- add x0, x0, :lo12:.LC300
+ b .L3861
+.L3839:
+ adrp x0, .LC312
+ add x0, x0, :lo12:.LC312
bl printk
add x0, x29, 56
mov x1, x20
mov x2, 520
bl rk_copy_from_user
mov x19, x0
- cbz x0, .L3730
-.L3735:
- adrp x0, .LC289
- add x0, x0, :lo12:.LC289
+ cbz x0, .L3875
+.L3880:
+ adrp x0, .LC301
+ add x0, x0, :lo12:.LC301
bl printk
- b .L3789
-.L3730:
+ b .L3934
+.L3875:
ldr w1, [x29,56]
mov w0, 21060
movk w0, 0x4b4d, lsl 16
cmp w1, w0
- beq .L3731
-.L3732:
+ beq .L3876
+.L3877:
mov x19, -1
- b .L3716
-.L3731:
+ b .L3861
+.L3876:
ldr w0, [x29,60]
cmp w0, 512
- bhi .L3732
+ bhi .L3877
adrp x21, .LANCHOR7
add x0, x29, 56
add x21, x21, :lo12:.LANCHOR7
mov x2, 512
- ldr x1, [x21,-40]
+ ldr x1, [x21,-24]
bl memcpy
- ldr w1, [x21,-32]
+ ldr w1, [x21,-16]
mov w0, 5161
movk w0, 0xc059, lsl 16
cmp w1, w0
- beq .L3733
+ beq .L3878
add x0, x29, 120
mov w1, w19
mov x2, 128
str w19, [x29,64]
str w19, [x29,68]
bl memset
-.L3733:
+.L3878:
add x0, x29, 312
mov w1, 0
mov x2, 256
str wzr, [x29,72]
bl memset
- b .L3795
-.L3697:
- adrp x0, .LC301
- add x0, x0, :lo12:.LC301
+ b .L3940
+.L3842:
+ adrp x0, .LC313
+ add x0, x0, :lo12:.LC313
bl printk
add x0, x29, 56
mov x1, x20
mov x2, 520
bl rk_copy_from_user
- cbnz x0, .L3735
+ cbnz x0, .L3880
ldr w1, [x29,56]
mov w0, 21060
movk w0, 0x4b4d, lsl 16
cmp w1, w0
- bne .L3732
+ bne .L3877
ldr w0, [x29,60]
cmp w0, 512
- bhi .L3732
+ bhi .L3877
adrp x1, .LANCHOR7
mov w2, 5161
add x1, x1, :lo12:.LANCHOR7
movk w2, 0xc059, lsl 16
mov x0, -2
- ldr w3, [x1,-32]
+ ldr w3, [x1,-16]
cmp w3, w2
- bne .L3689
+ bne .L3834
ldr w2, [x29,68]
mov x0, -3
sub w3, w2, #1
cmp w3, 127
- bhi .L3689
- ldr x19, [x1,-40]
+ bhi .L3834
+ ldr x19, [x1,-24]
add x1, x29, 120
add x0, x19, 64
str w2, [x19,12]
@@ -23564,144 +24662,144 @@ rknand_sys_storage_ioctl:
bl memcpy
mov w0, 1
mov x1, x19
- b .L3787
-.L3701:
- adrp x0, .LC302
- add x0, x0, :lo12:.LC302
+ b .L3932
+.L3846:
+ adrp x0, .LC314
+ add x0, x0, :lo12:.LC314
bl printk
add x0, x29, 56
mov x1, x20
mov x2, 520
bl rk_copy_from_user
- cbnz x0, .L3735
+ cbnz x0, .L3880
ldr w1, [x29,56]
mov w0, 17476
movk w0, 0x4253, lsl 16
cmp w1, w0
- bne .L3732
+ bne .L3877
ldr w0, [x29,60]
cmp w0, 512
- bhi .L3732
+ bhi .L3877
adrp x19, .LANCHOR7
add x0, x19, :lo12:.LANCHOR7
- ldr w1, [x0,-28]
- cbnz w1, .L3736
-.L3739:
+ ldr w1, [x0,-12]
+ cbnz w1, .L3881
+.L3884:
mov x0, 0
- b .L3689
-.L3736:
- ldr x1, [x0,-24]
+ b .L3834
+.L3881:
+ ldr x1, [x0,-8]
mov w2, 22867
movk w2, 0x4453, lsl 16
ldr w3, [x1]
cmp w3, w2
- beq .L3737
+ beq .L3882
mov w2, 22867
movk w2, 0x4453, lsl 16
str w2, [x1]
mov w2, 504
- ldr x1, [x0,-24]
+ ldr x1, [x0,-8]
str w2, [x1,4]
- ldr x0, [x0,-24]
+ ldr x0, [x0,-8]
str wzr, [x0,8]
str wzr, [x0,12]
-.L3737:
+.L3882:
add x20, x19, :lo12:.LANCHOR7
mov w0, 0
- ldr x1, [x20,-24]
+ ldr x1, [x20,-8]
str wzr, [x1,16]
bl StorageSysDataStore
- ldr x0, [x20,-40]
+ ldr x0, [x20,-24]
mov w1, 21060
movk w1, 0x4b4d, lsl 16
ldr w2, [x0]
cmp w2, w1
- beq .L3738
+ beq .L3883
mov w1, 21060
movk w1, 0x4b4d, lsl 16
str w1, [x0]
mov w1, 504
- ldr x0, [x20,-40]
+ ldr x0, [x20,-24]
str w1, [x0,4]
- ldr x0, [x20,-40]
+ ldr x0, [x20,-24]
str wzr, [x0,8]
-.L3738:
+.L3883:
add x19, x19, :lo12:.LANCHOR7
mov w1, 0
mov x2, 128
- ldr x20, [x19,-40]
+ ldr x20, [x19,-24]
add x0, x20, 64
str wzr, [x20,12]
bl memset
mov w0, 1
mov x1, x20
bl StorageSysDataStore
- str wzr, [x19,-28]
- str wzr, [x19,-32]
- b .L3786
-.L3692:
- adrp x0, .LC303
- add x0, x0, :lo12:.LC303
+ str wzr, [x19,-12]
+ str wzr, [x19,-16]
+ b .L3931
+.L3837:
+ adrp x0, .LC315
+ add x0, x0, :lo12:.LC315
bl printk
add x0, x29, 56
mov x1, x20
mov x2, 520
bl rk_copy_from_user
- cbnz x0, .L3735
+ cbnz x0, .L3880
ldr w2, [x29,56]
mov w1, 20037
movk w1, 0x4253, lsl 16
cmp w2, w1
- bne .L3732
+ bne .L3877
ldr w1, [x29,60]
cmp w1, 512
- bhi .L3732
+ bhi .L3877
adrp x19, .LANCHOR7
add x1, x19, :lo12:.LANCHOR7
- ldr w2, [x1,-28]
+ ldr w2, [x1,-12]
cmp w2, 1
- beq .L3739
- ldr x2, [x1,-24]
+ beq .L3884
+ ldr x2, [x1,-8]
mov w3, 22867
movk w3, 0x4453, lsl 16
ldr w4, [x2]
cmp w4, w3
- beq .L3740
+ beq .L3885
mov w3, 22867
movk w3, 0x4453, lsl 16
str w3, [x2]
mov w3, 504
- ldr x2, [x1,-24]
+ ldr x2, [x1,-8]
str w3, [x2,4]
- ldr x1, [x1,-24]
+ ldr x1, [x1,-8]
str w0, [x1,8]
str w0, [x1,12]
-.L3740:
+.L3885:
add x20, x19, :lo12:.LANCHOR7
mov w0, 1
- ldr x1, [x20,-24]
+ ldr x1, [x20,-8]
str w0, [x1,16]
mov w0, 0
bl StorageSysDataStore
- ldr x0, [x20,-40]
+ ldr x0, [x20,-24]
mov w1, 21060
movk w1, 0x4b4d, lsl 16
ldr w2, [x0]
cmp w2, w1
- beq .L3741
+ beq .L3886
mov w1, 21060
movk w1, 0x4b4d, lsl 16
str w1, [x0]
mov w1, 504
- ldr x0, [x20,-40]
+ ldr x0, [x20,-24]
str w1, [x0,4]
- ldr x0, [x20,-40]
+ ldr x0, [x20,-24]
str wzr, [x0,8]
-.L3741:
+.L3886:
add x19, x19, :lo12:.LANCHOR7
mov w1, 0
mov x2, 128
- ldr x20, [x19,-40]
+ ldr x20, [x19,-24]
add x0, x20, 64
str wzr, [x20,12]
bl memset
@@ -23709,135 +24807,134 @@ rknand_sys_storage_ioctl:
mov x1, x20
bl StorageSysDataStore
mov w0, 1
- str w0, [x19,-28]
- b .L3786
-.L3698:
- adrp x0, .LC304
- add x0, x0, :lo12:.LC304
+ str w0, [x19,-12]
+ b .L3931
+.L3843:
+ adrp x0, .LC316
+ add x0, x0, :lo12:.LC316
bl printk
add x0, x29, 56
mov x1, x20
mov x2, 520
bl rk_copy_from_user
- cbnz x0, .L3735
+ cbnz x0, .L3880
ldr w1, [x29,56]
mov w0, 20051
movk w0, 0x4144, lsl 16
cmp w1, w0
- bne .L3732
+ bne .L3877
ldr w2, [x29,60]
cmp w2, 512
- bhi .L3732
+ bhi .L3877
adrp x1, .LANCHOR7
add x0, x29, 64
add x1, x1, :lo12:.LANCHOR7
uxtw x2, w2
- sub x1, x1, #16
- b .L3794
-.L3699:
+ b .L3939
+.L3844:
mov w0, 27698
movk w0, 0x4004, lsl 16
cmp w19, w0
- bne .L3742
- adrp x0, .LC305
- add x0, x0, :lo12:.LC305
- b .L3784
-.L3742:
+ bne .L3887
+ adrp x0, .LC317
+ add x0, x0, :lo12:.LC317
+ b .L3929
+.L3887:
mov w0, 27708
movk w0, 0x4004, lsl 16
cmp w19, w0
- bne .L3744
- adrp x0, .LC306
- add x0, x0, :lo12:.LC306
- b .L3784
-.L3744:
- adrp x0, .LC307
- add x0, x0, :lo12:.LC307
-.L3784:
+ bne .L3889
+ adrp x0, .LC318
+ add x0, x0, :lo12:.LC318
+ b .L3929
+.L3889:
+ adrp x0, .LC319
+ add x0, x0, :lo12:.LC319
+.L3929:
bl printk
add x0, x29, 56
mov x1, x20
mov x2, 520
bl rk_copy_from_user
- cbnz x0, .L3735
+ cbnz x0, .L3880
ldr w1, [x29,56]
mov w0, 17227
movk w0, 0x4c4f, lsl 16
cmp w1, w0
- bne .L3789
+ bne .L3934
mov w0, 27708
movk w0, 0x4004, lsl 16
cmp w19, w0
adrp x0, .LANCHOR7
- bne .L3745
+ bne .L3890
add x0, x0, :lo12:.LANCHOR7
add x1, x29, 56
mov x2, 16
- ldr x0, [x0,-40]
+ ldr x0, [x0,-24]
ldr w0, [x0,20]
str w0, [x29,60]
strb w0, [x29,64]
mov x0, x20
bl rk_copy_to_user
- cbz x0, .L3689
- b .L3789
-.L3745:
+ cbz x0, .L3834
+ b .L3934
+.L3890:
add x20, x0, :lo12:.LANCHOR7
- ldr w1, [x20,496]
+ ldr w1, [x20,512]
cmp w1, 10
- bhi .L3789
- ldr x1, [x20,-40]
+ bhi .L3934
+ ldr x1, [x20,-24]
ldr w2, [x29,60]
ldr w3, [x1,24]
cmp w3, w2
- beq .L3746
- cbz w3, .L3746
- adrp x0, .LC308
+ beq .L3891
+ cbz w3, .L3891
+ adrp x0, .LC320
mov w1, w2
- add x0, x0, :lo12:.LC308
+ add x0, x0, :lo12:.LC320
bl printk
- ldr w0, [x20,496]
+ ldr w0, [x20,512]
add w0, w0, 1
- str w0, [x20,496]
- b .L3789
-.L3746:
+ str w0, [x20,512]
+ b .L3934
+.L3891:
add x0, x0, :lo12:.LANCHOR7
- str wzr, [x0,496]
+ str wzr, [x0,512]
mov w0, 27698
movk w0, 0x4004, lsl 16
cmp w19, w0
- bne .L3747
+ bne .L3892
str wzr, [x1,20]
str wzr, [x1,24]
- b .L3748
-.L3747:
+ b .L3893
+.L3892:
mov w0, 1
str w2, [x1,24]
str w0, [x1,20]
-.L3748:
+.L3893:
mov w0, 1
mov x19, -2
bl StorageSysDataStore
cmn w0, #1
- bne .L3786
- b .L3716
-.L3711:
- adrp x0, .LC309
- add x0, x0, :lo12:.LC309
+ bne .L3931
+ b .L3861
+.L3856:
+ adrp x0, .LC321
+ add x0, x0, :lo12:.LC321
bl printk
add x0, x29, 56
mov x1, x20
mov x2, 520
bl rk_copy_from_user
- cbnz x0, .L3735
+ cbnz x0, .L3880
ldr w1, [x29,56]
mov w0, 17750
movk w0, 0x444e, lsl 16
cmp w1, w0
- bne .L3732
+ bne .L3877
ldr w2, [x29,60]
cmp w2, 504
- bhi .L3732
+ bhi .L3877
mov w0, 30224
adrp x1, .LANCHOR7
movk w0, 0x4004, lsl 16
@@ -23845,72 +24942,72 @@ rknand_sys_storage_ioctl:
cmp w19, w0
add x1, x1, :lo12:.LANCHOR7
add x0, x29, 64
- bne .L3749
- ldr x1, [x1,504]
- b .L3785
-.L3749:
- ldr x1, [x1,512]
-.L3785:
+ bne .L3894
+ ldr x1, [x1,520]
+ b .L3930
+.L3894:
+ ldr x1, [x1,528]
+.L3930:
add x1, x1, 8
-.L3794:
+.L3939:
bl memcpy
-.L3795:
+.L3940:
mov x0, x20
add x1, x29, 56
mov x2, 520
- b .L3781
-.L3708:
- adrp x0, .LC310
- add x0, x0, :lo12:.LC310
+ b .L3926
+.L3853:
+ adrp x0, .LC322
+ add x0, x0, :lo12:.LC322
bl printk
add x0, x29, 56
mov x1, x20
mov x2, 520
bl rk_copy_from_user
- cbnz x0, .L3735
+ cbnz x0, .L3880
ldr w1, [x29,56]
mov w0, 17750
movk w0, 0x444e, lsl 16
cmp w1, w0
- bne .L3732
+ bne .L3877
ldr w2, [x29,60]
cmp w2, 504
- bhi .L3732
+ bhi .L3877
mov w0, 30225
add w2, w2, 8
movk w0, 0x4004, lsl 16
cmp w19, w0
adrp x19, .LANCHOR7
add x19, x19, :lo12:.LANCHOR7
- bne .L3751
- ldr x0, [x19,504]
+ bne .L3896
+ ldr x0, [x19,520]
add x1, x29, 56
bl memcpy
mov w0, 2
- ldr x1, [x19,504]
- b .L3787
-.L3751:
- ldr x0, [x19,512]
+ ldr x1, [x19,520]
+ b .L3932
+.L3896:
+ ldr x0, [x19,528]
add x1, x29, 56
bl memcpy
- ldr x1, [x19,512]
+ ldr x1, [x19,528]
mov w0, 3
-.L3787:
+.L3932:
bl StorageSysDataStore
uxtw x19, w0
- b .L3716
-.L3786:
+ b .L3861
+.L3931:
mov x19, 0
-.L3716:
- adrp x0, .LC311
+.L3861:
+ adrp x0, .LC323
mov x1, x19
- add x0, x0, :lo12:.LC311
+ add x0, x0, :lo12:.LC323
bl printk
mov x0, x19
- b .L3689
-.L3752:
+ b .L3834
+.L3897:
mov x0, -22
-.L3689:
+.L3834:
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
ldp x29, x30, [sp], 48
@@ -23927,57 +25024,57 @@ rk_ftl_storage_sys_init:
add x29, sp, 0
stp x19, x20, [sp,16]
adrp x20, .LANCHOR7
+ str x21, [sp,32]
add x19, x20, :lo12:.LANCHOR7
- stp x21, x22, [sp,32]
- ldr x1, [x19,-96]
- str w0, [x19,-56]
+ ldr x1, [x19,-80]
+ str w0, [x19,-40]
add x0, x1, 512
- str x0, [x19,-40]
+ str x0, [x19,-24]
add x0, x1, 1024
- str x1, [x19,-24]
- str x0, [x19,504]
+ str x1, [x19,-8]
+ str x0, [x19,520]
add x1, x1, 1536
- sub x0, x19, #16
- strb wzr, [x19,-68]
- str xzr, [x19,-64]
+ mov x0, x19
+ str x1, [x19,528]
+ strb wzr, [x19,-52]
str xzr, [x19,-48]
- str x1, [x19,512]
+ str xzr, [x19,-32]
bl ftl_memcpy
- ldr x21, [x19,-24]
- str wzr, [x19,-32]
- str wzr, [x19,496]
- ldr w0, [x21,16]
- ldr w22, [x21,508]
- str w0, [x19,-28]
- cbz w22, .L3801
- mov x0, x21
+ ldr x0, [x19,-8]
+ str wzr, [x19,-16]
+ str wzr, [x19,512]
+ ldr w1, [x0,16]
+ ldr w21, [x0,508]
+ str w1, [x19,-12]
+ cbz w21, .L3947
mov w1, 508
bl js_hash
- cmp w22, w0
- beq .L3801
- adrp x0, .LC312
- str wzr, [x21,16]
- add x0, x0, :lo12:.LC312
- str wzr, [x19,-28]
- bl printk
-.L3801:
+ cmp w21, w0
+ beq .L3947
+ ldr x0, [x19,-8]
+ str wzr, [x19,-12]
+ str wzr, [x0,16]
+ adrp x0, .LC324
+ add x0, x0, :lo12:.LC324
+ bl printk
+.L3947:
add x0, x20, :lo12:.LANCHOR7
- ldr w1, [x0,-28]
- cbz w1, .L3802
+ ldr w1, [x0,-12]
+ cbz w1, .L3949
mov w1, 5161
movk w1, 0xc059, lsl 16
- str w1, [x0,-32]
-.L3802:
+ str w1, [x0,-16]
+.L3949:
add x20, x20, :lo12:.LANCHOR7
mov w0, 2
- ldr x1, [x20,504]
+ ldr x1, [x20,520]
bl StorageSysDataLoad
- ldr x1, [x20,512]
+ ldr x1, [x20,528]
mov w0, 3
bl StorageSysDataLoad
bl rknand_sys_storage_init
+ ldr x21, [sp,32]
ldp x19, x20, [sp,16]
- ldp x21, x22, [sp,32]
ldp x29, x30, [sp], 48
ret
.size rk_ftl_storage_sys_init, .-rk_ftl_storage_sys_init
@@ -24002,55 +25099,55 @@ rk_ftl_vendor_storage_init:
bl ftl_malloc
add x1, x21, :lo12:.LANCHOR7
mov w19, -12
- str x0, [x1,520]
- cbz x0, .L3811
+ str x0, [x1,536]
+ cbz x0, .L3955
mov w23, 0
- adrp x24, .LC313
+ adrp x24, .LC325
mov w19, w23
mov w22, w23
- add x24, x24, :lo12:.LC313
-.L3815:
+ add x24, x24, :lo12:.LC325
+.L3959:
add x20, x21, :lo12:.LANCHOR7
lsl w0, w22, 7
mov w1, 128
- ldr x2, [x20,520]
+ ldr x2, [x20,536]
bl FlashBootVendorRead
- cbnz w0, .L3812
- ldr x3, [x20,520]
+ cbnz w0, .L3956
+ ldr x3, [x20,536]
mov x0, x24
add x2, x3, 61440
ldr w1, [x3]
ldr w3, [x3,4]
ldr w2, [x2,4092]
bl printk
- ldr x20, [x20,520]
+ ldr x20, [x20,536]
mov w0, 22084
movk w0, 0x524b, lsl 16
ldr w1, [x20]
cmp w1, w0
- bne .L3813
+ bne .L3957
ldr w0, [x20,4]
cmp w19, w0
- bcs .L3813
+ bcs .L3957
add x1, x20, 61440
ldr w1, [x1,4092]
cmp w1, w0
csel w23, w23, w22, ne
csel w19, w19, w0, ne
-.L3813:
- cbnz w22, .L3823
+.L3957:
+ cbnz w22, .L3967
mov w22, 1
- b .L3815
-.L3823:
- cbz w19, .L3816
+ b .L3959
+.L3967:
+ cbz w19, .L3960
lsl w0, w23, 7
mov w1, 128
mov x2, x20
bl FlashBootVendorRead
mov w19, w0
- cbz w0, .L3811
- b .L3812
-.L3816:
+ cbz w0, .L3955
+ b .L3956
+.L3960:
mov x0, x20
mov w1, w19
mov x2, 65536
@@ -24064,14 +25161,14 @@ rk_ftl_vendor_storage_init:
mov w0, -1032
strh w19, [x20,12]
strh w0, [x20,14]
- b .L3811
-.L3812:
+ b .L3955
+.L3956:
add x21, x21, :lo12:.LANCHOR7
mov w19, -1
- ldr x0, [x21,520]
+ ldr x0, [x21,536]
bl kfree
- str xzr, [x21,520]
-.L3811:
+ str xzr, [x21,536]
+.L3955:
mov w0, w19
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -24083,24 +25180,24 @@ rk_ftl_vendor_storage_init:
.global rk_ftl_vendor_read
.type rk_ftl_vendor_read, %function
rk_ftl_vendor_read:
- adrp x3, .LANCHOR7+520
+ adrp x3, .LANCHOR7+536
stp x29, x30, [sp, -32]!
add x29, sp, 0
- ldr x5, [x3,#:lo12:.LANCHOR7+520]
+ ldr x5, [x3,#:lo12:.LANCHOR7+536]
mov w3, -1
str x19, [sp,16]
- cbz x5, .L3825
+ cbz x5, .L3969
ldrh w3, [x5,10]
mov x4, 0
-.L3826:
+.L3970:
cmp w4, w3
mov w6, w4
- bcs .L3830
+ bcs .L3974
add x7, x5, x4, lsl 3
add x4, x4, 1
ldrh w7, [x7,16]
cmp w7, w0
- bne .L3826
+ bne .L3970
add x6, x5, x6, uxtw 3
ldrh w4, [x6,20]
mov x0, x1
@@ -24112,10 +25209,10 @@ rk_ftl_vendor_read:
uxtw x2, w19
bl memcpy
mov w3, w19
- b .L3825
-.L3830:
+ b .L3969
+.L3974:
mov w3, -1
-.L3825:
+.L3969:
mov w0, w3
ldr x19, [sp,16]
ldp x29, x30, [sp], 32
@@ -24127,10 +25224,10 @@ rk_ftl_vendor_read:
rk_ftl_vendor_write:
stp x29, x30, [sp, -112]!
mov w6, w0
- adrp x0, .LANCHOR7+520
+ adrp x0, .LANCHOR7+536
add x29, sp, 0
stp x19, x20, [sp,16]
- ldr x19, [x0,#:lo12:.LANCHOR7+520]
+ ldr x19, [x0,#:lo12:.LANCHOR7+536]
stp x25, x26, [sp,64]
stp x27, x28, [sp,80]
stp x21, x22, [sp,32]
@@ -24138,38 +25235,38 @@ rk_ftl_vendor_write:
mov w26, w2
mov x28, x1
mov w2, -1
- cbz x19, .L3832
+ cbz x19, .L3976
add w20, w26, 63
ldrh w3, [x19,10]
ldrh w23, [x19,8]
and w20, w20, -64
mov x2, 0
-.L3833:
+.L3977:
cmp w2, w3
mov w4, w2
- bcs .L3848
+ bcs .L3992
add x0, x19, x2, lsl 3
add x2, x2, 1
ldrh w0, [x0,16]
cmp w0, w6
- bne .L3833
+ bne .L3977
add x21, x19, x4, uxtw 3
ldrh w24, [x21,20]
add x5, x19, 1024
add w24, w24, 63
and w24, w24, -64
cmp w26, w24
- bls .L3834
+ bls .L3978
ldrh w0, [x19,14]
mov w2, -1
cmp w0, w20
- bcc .L3832
+ bcc .L3976
ldrh w21, [x21,18]
add w22, w3, w2
-.L3835:
+.L3979:
cmp w4, w22
uxtw x3, w4
- bcs .L3849
+ bcs .L3993
add x3, x19, x3, lsl 3
add w25, w4, 1
add x1, x19, x25, uxtw 3
@@ -24192,8 +25289,8 @@ rk_ftl_vendor_write:
mov w4, w25
ldr x6, [x29,96]
ldr x5, [x29,104]
- b .L3835
-.L3849:
+ b .L3979
+.L3993:
add x3, x19, x3, lsl 3
uxth w21, w21
mov x1, x28
@@ -24210,20 +25307,20 @@ rk_ftl_vendor_write:
add w24, w24, w0
sub w24, w24, w20
strh w24, [x19,14]
- b .L3847
-.L3834:
+ b .L3991
+.L3978:
ldrh w0, [x21,18]
mov x1, x28
uxtw x2, w26
add x0, x5, x0
bl memcpy
strh w26, [x21,20]
- b .L3847
-.L3848:
+ b .L3991
+.L3992:
ldrh w4, [x19,14]
mov w2, -1
cmp w4, w20
- bcc .L3832
+ bcc .L3976
add x3, x19, x3, uxth 3
strh w6, [x3,16]
uxth w20, w20
@@ -24243,7 +25340,7 @@ rk_ftl_vendor_write:
ldrh w0, [x19,10]
add w0, w0, 1
strh w0, [x19,10]
-.L3847:
+.L3991:
ldr w0, [x19,4]
add x1, x19, 61440
mov x2, x19
@@ -24260,7 +25357,7 @@ rk_ftl_vendor_write:
lsl w0, w23, 7
bl FlashBootVendorWrite
mov w2, 0
-.L3832:
+.L3976:
mov w0, w2
ldp x19, x20, [sp,16]
ldp x21, x22, [sp,32]
@@ -24284,37 +25381,37 @@ rk_ftl_vendor_storage_ioctl:
mov x21, x2
bl ftl_malloc
mov x19, x0
- cbz x0, .L3851
+ cbz x0, .L3995
mov w2, 30209
ldr x1, [x29,56]
movk w2, 0x4004, lsl 16
cmp w1, w2
- beq .L3853
+ beq .L3997
mov w2, 30210
movk w2, 0x4004, lsl 16
cmp w1, w2
- beq .L3854
- b .L3865
-.L3853:
+ beq .L3998
+ b .L4009
+.L3997:
mov x1, x21
mov x2, 8
bl rk_copy_from_user
- cbnz x0, .L3865
+ cbnz x0, .L4009
ldr w1, [x19]
mov w0, 17745
movk w0, 0x5652, lsl 16
cmp w1, w0
- beq .L3856
-.L3857:
+ beq .L4000
+.L4001:
mov x20, -1
- b .L3852
-.L3856:
+ b .L3996
+.L4000:
ldrh w0, [x19,4]
add x1, x19, 8
ldrh w2, [x19,6]
bl rk_ftl_vendor_read
cmn w0, #1
- beq .L3857
+ beq .L4001
uxth x2, w0
strh w0, [x19,6]
mov x1, x19
@@ -24324,38 +25421,38 @@ rk_ftl_vendor_storage_ioctl:
bl rk_copy_to_user
cmp x0, xzr
csel x20, xzr, x20, eq
- b .L3852
-.L3854:
+ b .L3996
+.L3998:
mov x1, x21
mov x2, 8
bl rk_copy_from_user
- cbnz x0, .L3865
+ cbnz x0, .L4009
ldr w1, [x19]
mov w0, 17745
movk w0, 0x5652, lsl 16
cmp w1, w0
- bne .L3857
+ bne .L4001
ldrh w3, [x19,6]
cmp w3, 4087
- bhi .L3857
+ bhi .L4001
add w2, w3, 8
mov x0, x19
mov x1, x21
sxtw x2, w2
bl rk_copy_from_user
- cbnz x0, .L3865
+ cbnz x0, .L4009
ldrh w0, [x19,4]
add x1, x19, 8
ldrh w2, [x19,6]
bl rk_ftl_vendor_write
sxtw x20, w0
- b .L3852
-.L3865:
+ b .L3996
+.L4009:
mov x20, -14
-.L3852:
+.L3996:
mov x0, x19
bl kfree
-.L3851:
+.L3995:
mov x0, x20
ldr x21, [sp,32]
ldp x19, x20, [sp,16]
@@ -24517,6 +25614,7 @@ rk_ftl_vendor_storage_ioctl:
.global g_flash_interface_mode
.global g_idb_ecc_bits
.global g_idb_slc_mode_enable
+ .global g_one_pass_program
.global g_slc_mode_addr2
.global g_slc_mode_enable
.global g_flash_cur_mode
@@ -24534,24 +25632,24 @@ rk_ftl_vendor_storage_ioctl:
.section .rodata
.align 3
.LANCHOR1 = . + 0
- .type __func__.34004, %object
- .size __func__.34004, 18
-__func__.34004:
+ .type __func__.34106, %object
+ .size __func__.34106, 18
+__func__.34106:
.string "_list_remove_node"
.zero 6
- .type __func__.34029, %object
- .size __func__.34029, 23
-__func__.34029:
+ .type __func__.34131, %object
+ .size __func__.34131, 23
+__func__.34131:
.string "_list_update_data_list"
.zero 1
- .type __func__.19018, %object
- .size __func__.19018, 22
-__func__.19018:
+ .type __func__.19084, %object
+ .size __func__.19084, 22
+__func__.19084:
.string "nand_flash_print_info"
.zero 2
- .type __func__.19104, %object
- .size __func__.19104, 11
-__func__.19104:
+ .type __func__.19170, %object
+ .size __func__.19170, 11
+__func__.19170:
.string "nandc_init"
.zero 5
.type toshiba_A19ref_value, %object
@@ -24713,14 +25811,14 @@ toshiba_ref_value:
.byte 8
.byte 12
.byte 112
- .type __func__.18606, %object
- .size __func__.18606, 28
-__func__.18606:
+ .type __func__.18640, %object
+ .size __func__.18640, 28
+__func__.18640:
.string "flash_wait_device_ready_raw"
.zero 4
- .type __func__.18659, %object
- .size __func__.18659, 22
-__func__.18659:
+ .type __func__.18704, %object
+ .size __func__.18704, 22
+__func__.18704:
.string "flash_start_page_read"
.zero 2
.type toshiba_3D_tlc_value, %object
@@ -25141,19 +26239,19 @@ toshiba_3D_slc_value:
.byte -56
.byte 56
.zero 5
- .type __func__.18684, %object
- .size __func__.18684, 23
-__func__.18684:
+ .type __func__.18729, %object
+ .size __func__.18729, 23
+__func__.18729:
.string "flash_start_plane_read"
.zero 1
- .type __func__.18581, %object
- .size __func__.18581, 26
-__func__.18581:
+ .type __func__.18615, %object
+ .size __func__.18615, 26
+__func__.18615:
.string "flash_erase_duplane_block"
.zero 6
- .type __func__.18592, %object
- .size __func__.18592, 21
-__func__.18592:
+ .type __func__.18626, %object
+ .size __func__.18626, 21
+__func__.18626:
.string "flash_erase_block_en"
.zero 3
.type random_seed, %object
@@ -25287,19 +26385,19 @@ random_seed:
.hword 28406
.hword 17598
.hword 28087
- .type __func__.19283, %object
- .size __func__.19283, 13
-__func__.19283:
+ .type __func__.19349, %object
+ .size __func__.19349, 13
+__func__.19349:
.string "buf_add_tail"
.zero 3
- .type __func__.19296, %object
- .size __func__.19296, 10
-__func__.19296:
+ .type __func__.19362, %object
+ .size __func__.19362, 10
+__func__.19362:
.string "buf_alloc"
.zero 6
- .type __func__.19310, %object
- .size __func__.19310, 16
-__func__.19310:
+ .type __func__.19376, %object
+ .size __func__.19376, 16
+__func__.19376:
.string "buf_remove_free"
.type zftl_debug_proc_fops, %object
.size zftl_debug_proc_fops, 216
@@ -25313,249 +26411,254 @@ zftl_debug_proc_fops:
.zero 8
.xword single_release
.zero 104
- .type __func__.33599, %object
- .size __func__.33599, 12
-__func__.33599:
+ .type __func__.33701, %object
+ .size __func__.33701, 12
+__func__.33701:
.string "gc_add_sblk"
.zero 4
- .type __func__.33667, %object
- .size __func__.33667, 19
-__func__.33667:
+ .type __func__.33769, %object
+ .size __func__.33769, 19
+__func__.33769:
.string "gc_write_completed"
.zero 5
- .type __func__.33718, %object
- .size __func__.33718, 16
-__func__.33718:
+ .type __func__.33820, %object
+ .size __func__.33820, 16
+__func__.33820:
.string "gc_free_src_blk"
- .type __func__.34210, %object
- .size __func__.34210, 18
-__func__.34210:
+ .type __func__.34312, %object
+ .size __func__.34312, 18
+__func__.34312:
.string "ftl_alloc_sys_blk"
.zero 6
- .type __func__.34220, %object
- .size __func__.34220, 17
-__func__.34220:
+ .type __func__.34322, %object
+ .size __func__.34322, 17
+__func__.34322:
.string "ftl_free_sys_blk"
.zero 7
- .type __func__.34324, %object
- .size __func__.34324, 23
-__func__.34324:
+ .type __func__.34433, %object
+ .size __func__.34433, 23
+__func__.34433:
.string "ftl_get_ppa_from_index"
.zero 1
- .type __func__.34363, %object
- .size __func__.34363, 22
-__func__.34363:
+ .type __func__.34472, %object
+ .size __func__.34472, 22
+__func__.34472:
.string "ftl_get_new_free_page"
.zero 2
- .type __func__.34374, %object
- .size __func__.34374, 22
-__func__.34374:
+ .type __func__.34483, %object
+ .size __func__.34483, 22
+__func__.34483:
.string "ftl_ext_alloc_new_blk"
.zero 2
- .type __func__.33381, %object
- .size __func__.33381, 14
-__func__.33381:
+ .type __func__.33455, %object
+ .size __func__.33455, 14
+__func__.33455:
.string "ftl_write_buf"
.zero 2
- .type __func__.33425, %object
- .size __func__.33425, 18
-__func__.33425:
+ .type __func__.33499, %object
+ .size __func__.33499, 18
+__func__.33499:
.string "zftl_add_read_buf"
.zero 6
- .type __func__.34169, %object
- .size __func__.34169, 15
-__func__.34169:
+ .type __func__.34271, %object
+ .size __func__.34271, 15
+__func__.34271:
.string "ftl_alloc_sblk"
.align 3
.LANCHOR3 = . + 0
- .type __func__.34721, %object
- .size __func__.34721, 17
-__func__.34721:
+ .type __func__.34857, %object
+ .size __func__.34857, 17
+__func__.34857:
.string "pm_alloc_new_blk"
.zero 7
- .type __func__.34749, %object
- .size __func__.34749, 21
-__func__.34749:
+ .type __func__.34885, %object
+ .size __func__.34885, 21
+__func__.34885:
.string "pm_select_ram_region"
.zero 3
- .type __func__.19008, %object
- .size __func__.19008, 20
-__func__.19008:
+ .type __func__.19074, %object
+ .size __func__.19074, 20
+__func__.19074:
.string "flash_die_info_init"
.zero 4
- .type __func__.33316, %object
- .size __func__.33316, 17
-__func__.33316:
+ .type __func__.33390, %object
+ .size __func__.33390, 17
+__func__.33390:
.string "lpa_rebuild_hash"
.zero 7
- .type __func__.34685, %object
- .size __func__.34685, 13
-__func__.34685:
+ .type __func__.34821, %object
+ .size __func__.34821, 13
+__func__.34821:
.string "pm_free_sblk"
.zero 3
- .type __func__.19333, %object
- .size __func__.19333, 21
-__func__.19333:
+ .type __func__.19400, %object
+ .size __func__.19400, 21
+__func__.19400:
.string "flash_info_data_init"
.zero 3
- .type __func__.18537, %object
- .size __func__.18537, 19
-__func__.18537:
+ .type __func__.18557, %object
+ .size __func__.18557, 19
+__func__.18557:
.string "flash_read_page_en"
.zero 5
- .type __func__.19322, %object
- .size __func__.19322, 20
-__func__.19322:
- .string "flash_info_blk_init"
- .zero 4
- .type __func__.18672, %object
- .size __func__.18672, 31
-__func__.18672:
+ .type __func__.18717, %object
+ .size __func__.18717, 31
+__func__.18717:
.string "flash_complete_plane_page_read"
.zero 1
- .type __func__.18697, %object
- .size __func__.18697, 25
-__func__.18697:
+ .type __func__.18742, %object
+ .size __func__.18742, 25
+__func__.18742:
.string "flash_complete_page_read"
.zero 7
- .type __func__.34552, %object
- .size __func__.34552, 31
-__func__.34552:
+ .type __func__.34666, %object
+ .size __func__.34666, 31
+__func__.34666:
.string "queue_wait_first_req_completed"
.zero 1
- .type __func__.34632, %object
- .size __func__.34632, 15
-__func__.34632:
+ .type __func__.34747, %object
+ .size __func__.34747, 15
+__func__.34747:
.string "sblk_read_page"
.zero 1
- .type __func__.18648, %object
- .size __func__.18648, 22
-__func__.18648:
+ .type __func__.18664, %object
+ .size __func__.18664, 26
+__func__.18664:
+ .string "flash_start_tlc_page_prog"
+ .zero 6
+ .type __func__.18675, %object
+ .size __func__.18675, 29
+__func__.18675:
+ .string "flash_start_3d_mlc_page_prog"
+ .zero 3
+ .type __func__.18693, %object
+ .size __func__.18693, 22
+__func__.18693:
.string "flash_start_page_prog"
.zero 2
- .type __func__.34605, %object
- .size __func__.34605, 15
-__func__.34605:
+ .type __func__.34720, %object
+ .size __func__.34720, 15
+__func__.34720:
.string "sblk_prog_page"
.zero 1
- .type __func__.18630, %object
- .size __func__.18630, 26
-__func__.18630:
- .string "flash_start_tlc_page_prog"
- .zero 6
- .type __func__.18566, %object
- .size __func__.18566, 19
-__func__.18566:
+ .type __func__.18599, %object
+ .size __func__.18599, 19
+__func__.18599:
.string "flash_prog_page_en"
.zero 5
- .type __func__.34435, %object
- .size __func__.34435, 14
-__func__.34435:
+ .type __func__.34544, %object
+ .size __func__.34544, 14
+__func__.34544:
.string "ftl_prog_page"
.zero 2
- .type __func__.34137, %object
- .size __func__.34137, 15
-__func__.34137:
+ .type __func__.34239, %object
+ .size __func__.34239, 15
+__func__.34239:
.string "ftl_info_flush"
.zero 1
- .type __func__.34399, %object
- .size __func__.34399, 19
-__func__.34399:
+ .type __func__.34508, %object
+ .size __func__.34508, 19
+__func__.34508:
.string "ftl_ext_info_flush"
.zero 5
- .type __func__.34411, %object
- .size __func__.34411, 18
-__func__.34411:
+ .type __func__.34520, %object
+ .size __func__.34520, 18
+__func__.34520:
.string "ftl_ext_info_init"
.zero 6
- .type __func__.34298, %object
- .size __func__.34298, 23
-__func__.34298:
+ .type __func__.34403, %object
+ .size __func__.34403, 23
+__func__.34403:
.string "ftl_open_sblk_recovery"
.zero 1
- .type __func__.34731, %object
- .size __func__.34731, 14
-__func__.34731:
+ .type __func__.34867, %object
+ .size __func__.34867, 14
+__func__.34867:
.string "pm_write_page"
.zero 2
- .type __func__.19355, %object
- .size __func__.19355, 17
-__func__.19355:
+ .type __func__.19422, %object
+ .size __func__.19422, 17
+__func__.19422:
.string "flash_info_flush"
.zero 7
- .type __func__.19063, %object
- .size __func__.19063, 16
-__func__.19063:
+ .type __func__.19389, %object
+ .size __func__.19389, 20
+__func__.19389:
+ .string "flash_info_blk_init"
+ .zero 4
+ .type __func__.19129, %object
+ .size __func__.19129, 16
+__func__.19129:
.string "nand_flash_init"
- .type __func__.34279, %object
- .size __func__.34279, 16
-__func__.34279:
+ .type __func__.34381, %object
+ .size __func__.34381, 16
+__func__.34381:
.string "ftl_sysblk_dump"
- .type __func__.34671, %object
- .size __func__.34671, 16
-__func__.34671:
+ .type __func__.34807, %object
+ .size __func__.34807, 16
+__func__.34807:
.string "load_l2p_region"
- .type __func__.34705, %object
- .size __func__.34705, 6
-__func__.34705:
+ .type __func__.34841, %object
+ .size __func__.34841, 6
+__func__.34841:
.string "pm_gc"
.zero 2
- .type __func__.33654, %object
- .size __func__.33654, 22
-__func__.33654:
+ .type __func__.33756, %object
+ .size __func__.33756, 22
+__func__.33756:
.string "gc_update_l2p_map_new"
.zero 2
- .type __func__.33762, %object
- .size __func__.33762, 16
-__func__.33762:
+ .type __func__.33864, %object
+ .size __func__.33864, 16
+__func__.33864:
.string "gc_scan_src_blk"
- .type __func__.33820, %object
- .size __func__.33820, 20
-__func__.33820:
+ .type __func__.33922, %object
+ .size __func__.33922, 20
+__func__.33922:
.string "gc_scan_static_data"
.zero 4
- .type __func__.33883, %object
- .size __func__.33883, 18
-__func__.33883:
+ .type __func__.33985, %object
+ .size __func__.33985, 18
+__func__.33985:
.string "gc_block_vpn_scan"
.zero 6
- .type __func__.34255, %object
- .size __func__.34255, 14
-__func__.34255:
+ .type __func__.34357, %object
+ .size __func__.34357, 14
+__func__.34357:
.string "ftl_sblk_dump"
.zero 2
- .type __func__.33458, %object
- .size __func__.33458, 10
-__func__.33458:
+ .type __func__.33532, %object
+ .size __func__.33532, 10
+__func__.33532:
.string "zftl_read"
.zero 6
- .type __func__.33620, %object
- .size __func__.33620, 21
-__func__.33620:
+ .type __func__.33722, %object
+ .size __func__.33722, 21
+__func__.33722:
.string "gc_check_data_one_wl"
.zero 3
- .type __func__.34345, %object
- .size __func__.34345, 19
-__func__.34345:
+ .type __func__.34454, %object
+ .size __func__.34454, 19
+__func__.34454:
.string "ftl_update_l2p_map"
.zero 5
- .type __func__.33363, %object
- .size __func__.33363, 17
-__func__.33363:
+ .type __func__.33437, %object
+ .size __func__.33437, 17
+__func__.33437:
.string "ftl_write_commit"
.zero 7
- .type __func__.33696, %object
- .size __func__.33696, 16
-__func__.33696:
+ .type __func__.33798, %object
+ .size __func__.33798, 16
+__func__.33798:
.string "gc_do_copy_back"
- .type __func__.33911, %object
- .size __func__.33911, 11
-__func__.33911:
+ .type __func__.34013, %object
+ .size __func__.34013, 11
+__func__.34013:
.string "zftl_do_gc"
.zero 5
- .type __func__.33489, %object
- .size __func__.33489, 13
-__func__.33489:
+ .type __func__.33563, %object
+ .size __func__.33563, 13
+__func__.33563:
.string "_ftl_discard"
.section .rodata.str1.1,"aMS",%progbits,1
.LC0:
@@ -25563,7 +26666,7 @@ __func__.33489:
.LC1:
.string "%s\n"
.LC2:
- .string "FTL version: 6.0.14 20181108"
+ .string "FTL version: 6.0.14 20181128"
.LC3:
.string "zftl_debug:0x%x\n"
.LC4:
@@ -25639,552 +26742,576 @@ __func__.33489:
.LC39:
.string "No.%d FLASH ID:%x %x %x %x %x %x\n"
.LC40:
- .string "bad block test:%x %x\n"
+ .string "otp:%x %x %x %x\n"
.LC41:
- .string "flash_erase_duplane_block %x %x %x\n"
+ .string "bad block test:%x %x\n"
.LC42:
- .string "flash_erase_duplane_block pageadd = %x status = %x\n"
+ .string "flash_erase_duplane_block %x %x %x\n"
.LC43:
- .string "flash_erase_block %x %x %x\n"
+ .string "flash_erase_duplane_block pageadd = %x status = %x\n"
.LC44:
- .string "flash_erase_block %d block = %x status = %x\n"
+ .string "flash_erase_block %x %x %x\n"
.LC45:
- .string "erase done: %x\n"
+ .string "flash_erase_block %d block = %x status = %x\n"
.LC46:
- .string "flash_mask_bad_block %d %d\n"
+ .string "erase done: %x\n"
.LC47:
- .string "zftl_debug"
+ .string "flash_mask_bad_block %d %d\n"
.LC48:
- .string "FLASH ID: %x %x %x %x %x %x\n"
+ .string "zftl_debug"
.LC49:
- .string "density: %d MB\n"
+ .string "FLASH ID: %x %x %x %x %x %x\n"
.LC50:
- .string "device density: %d MB\n"
+ .string "density: %d MB\n"
.LC51:
- .string "FTL INFO:\n"
+ .string "device density: %d MB\n"
.LC52:
- .string "max_lpn = 0x%x\n"
+ .string "FTL INFO:\n"
.LC53:
- .string "density = 0x%x\n"
+ .string "max_lpn = 0x%x\n"
.LC54:
- .string "slc vpn = 0x%x\n"
+ .string "density = 0x%x\n"
.LC55:
- .string "xlc vpn = 0x%x\n"
+ .string "slc vpn = 0x%x\n"
.LC56:
- .string "free slc blk = 0x%x\n"
+ .string "xlc vpn = 0x%x\n"
.LC57:
- .string "free xlc blk = 0x%x\n"
+ .string "free slc blk = 0x%x\n"
.LC58:
- .string "free mix blk = 0x%x\n"
+ .string "free xlc blk = 0x%x\n"
.LC59:
- .string "slc data blk = 0x%x\n"
+ .string "free mix blk = 0x%x\n"
.LC60:
- .string "slc cache blk = 0x%x\n"
+ .string "slc data blk = 0x%x\n"
.LC61:
- .string "xlc data blk = 0x%x\n"
+ .string "slc cache blk = 0x%x\n"
.LC62:
- .string "free buf = %d, %d, %d\n"
+ .string "xlc data blk = 0x%x\n"
.LC63:
- .string "bad blk = %d %d\n"
+ .string "free buf = %d, %d, %d\n"
.LC64:
- .string "TBW = %d MB\n"
+ .string "bad blk = %d %d\n"
.LC65:
- .string "TBR = %d MB\n"
+ .string "TBW = %d MB\n"
.LC66:
- .string "POC = %d\n"
+ .string "TBR = %d MB\n"
.LC67:
- .string "PLC = %d\n"
+ .string "POC = %d\n"
.LC68:
- .string "sys run time = %d S\n"
+ .string "PLC = %d\n"
.LC69:
- .string "slc mode = %d\n"
+ .string "sys run time = %d S\n"
.LC70:
- .string "prog err = %d\n"
+ .string "slc mode = %d\n"
.LC71:
- .string "read err = %d\n"
+ .string "prog err = %d\n"
.LC72:
- .string "GC XLC page = %d\n"
+ .string "read err = %d\n"
.LC73:
- .string "GC SLC page = %d\n"
+ .string "GC XLC page = %d\n"
.LC74:
- .string "discard page = 0x%x\n"
+ .string "GC SLC page = %d\n"
.LC75:
- .string "version = %d\n"
+ .string "discard page = 0x%x\n"
.LC76:
- .string "acblk = 0x%x %d %d\n"
+ .string "version = %d\n"
.LC77:
- .string "tmblk = 0x%x %d %d\n"
+ .string "acblk = 0x%x %d %d\n"
.LC78:
- .string "gcblk = 0x%x %d %d\n"
+ .string "tmblk = 0x%x %d %d\n"
.LC79:
- .string "slc ec = %d, %d, %d, %d, %d\n"
+ .string "gcblk = 0x%x %d %d\n"
.LC80:
- .string "xlc ec = %d, %d, %d, %d, %d\n"
+ .string "slc ec = %d, %d, %d, %d, %d\n"
.LC81:
- .string "gc free blk th = %d\n"
+ .string "xlc ec = %d, %d, %d, %d, %d\n"
.LC82:
- .string "gc vpn th = %d %d %d %d %d\n"
+ .string "gc free blk th = %d\n"
.LC83:
- .string "swl blk = %x %x %x %x\n"
+ .string "gc vpn th = %d %d %d %d %d\n"
.LC84:
- .string "gc_add_sblk = %d, %d, %d, %d, %d, %d\n"
+ .string "swl blk = %x %x %x %x\n"
.LC85:
- .string "gc_add_sblk = %d, %d, %d,last update:%d, %d\n"
+ .string "rf info = %x %x %x %x %x\n"
.LC86:
- .string "status: %x, ppa: %x\n"
+ .string "gc_add_sblk = %d, %d, %d, %d, %d, %d\n"
.LC87:
- .string "gc_write_completed: %x %x %x %x\n"
+ .string "gc_add_sblk = %d, %d, %d,last update:%d, %d\n"
.LC88:
- .string "%d gc_free_temp_buf buf id= %x\n"
+ .string "status: %x, ppa: %x\n"
.LC89:
- .string "gc: b:%x,p:%x,i:%x; free buf=%d %d free slc th: %d\n"
+ .string "gc_write_completed: %x %x %x %x\n"
.LC90:
- .string "zftl_get_gc_node cache = %x index = %d vpn = %x\n"
+ .string "%d gc_free_temp_buf buf id= %x\n"
.LC91:
- .string "gc_search_src_blk mode = %x, src mode = %x, count= %d %d\n"
+ .string "gc: b:%x,p:%x,i:%x; free buf=%d %d free slc th: %d\n"
.LC92:
- .string "swl_tlc_free_mini_ec_blk alloc sblk %x\n"
+ .string "zftl_get_gc_node cache = %x index = %d vpn = %x\n"
.LC93:
- .string "zftl_get_free_sblk %x %d, %p %d %d\n"
+ .string "gc_search_src_blk mode = %x, src mode = %x, count= %d %d\n"
.LC94:
- .string "zftl_gc_get_free_sblk %x %x %x, %d %d %d\n"
+ .string "swl_tlc_free_mini_ec_blk alloc sblk %x\n"
.LC95:
- .string "swl_slc_free_mini_ec_blk alloc sblk %x\n"
+ .string "zftl_get_free_sblk %x %d, %p %d %d\n"
.LC96:
- .string "list count:%p %d\n"
+ .string "zftl_gc_get_free_sblk %x %x %x, %d %d %d\n"
.LC97:
- .string "%d: node:%x %x %x %x, %d %d %d %d %d\n"
+ .string "swl_slc_free_mini_ec_blk alloc sblk %x\n"
.LC98:
- .string "swl_tlc_free_mini_ec_blk sblk %x\n"
+ .string "list count:%p %d\n"
.LC99:
- .string "swl_slc_free_mini_ec_blk sblk %x\n"
+ .string "%d: node:%x %x %x %x, %d %d %d %d %d\n"
.LC100:
- .string "gc_free_src_blk = %x, vpn = %d\n"
+ .string "swl_tlc_free_mini_ec_blk sblk %x\n"
.LC101:
- .string "gc_free_src_blk %x, %d\n"
+ .string "swl_slc_free_mini_ec_blk sblk %x\n"
.LC102:
- .string "ftl_vpn_decrement %x = %d, %d\n"
+ .string "gc_free_src_blk = %x, vpn = %d\n"
.LC103:
- .string "mask bad block:cs %x block: %x\n"
+ .string "gc_free_src_blk %x, %d\n"
.LC104:
- .string "free blk: s:%x,t:%x,m:%x, data blk:s:%x,%x,t%x vpn: s:%x t:%x, max_vpn: %x\n"
+ .string "ftl_vpn_decrement %x = %d, %d\n"
.LC105:
- .string "totle w: %d MB,r: %d MB %d dv:0x%X,poc:%d\n"
+ .string "mask bad block:cs %x block: %x\n"
.LC106:
- .string "gc xlc page: %d,gc slc page: %d, tmp w: %d MB\n"
+ .string "bad blk = %x, %x free blk: s:%x,t:%x,m:%x, data blk:s:%x,%x,t%x vpn: s:%x t:%x, max_vpn: %x\n"
.LC107:
- .string "slc ec: %d,%d,%d,%d,%d,tlc ec: %d,%d,%d,%d,%d\n"
+ .string "totle w: %d MB,r: %d MB %d dv:0x%X,poc:%d\n"
.LC108:
- .string "gc th: tlc_tlc: %d tlc_slc: %d slc_slc: %d slc_tlc:%d free_th: %d\n"
+ .string "gc xlc page: %d,gc slc page: %d, tmp w: %d MB\n"
.LC109:
- .string "ftl prog error =%x, lpa = %x, ppa= %x\n"
+ .string "slc ec: %d,%d,%d,%d,%d,tlc ec: %d,%d,%d,%d,%d\n"
.LC110:
- .string "alloc sblk %x %d\n"
+ .string "gc th: tlc_tlc: %d tlc_slc: %d slc_slc: %d slc_tlc:%d free_th: %d\n"
.LC111:
- .string "dump_sblk_queue: %d\n"
+ .string "swl : %x %x %x %x\n"
.LC112:
- .string "buf id= %d state = %d ppa = %x\n"
+ .string "ftl prog error =%x, lpa = %x, ppa= %x\n"
.LC113:
- .string "blk %x is bad block\n"
+ .string "alloc sblk %x %d\n"
.LC114:
- .string "pm_alloc_new_blk: %x %x %x %x\n"
+ .string "dump_sblk_queue: %d\n"
.LC115:
- .string "%s %d %d\n"
+ .string "buf id= %d state = %d ppa = %x\n"
.LC116:
- .string "gc_static_wearleveling: min blk: %x,sec=%d,xec = %d ,mode=%d, func=%x, bbt=%x vpn = %d\n"
+ .string "blk %x is bad block\n"
.LC117:
- .string "gc_static_wearleveling: min slc blk: %x,sec=%d,xec = %d ,mode=%d, func=%x, bbt=%x vpn = %d\n"
+ .string "pm_alloc_new_blk: %x %x %x %x\n"
.LC118:
- .string "gc_static_wearleveling: min tlc blk: %x,sec=%d,xec = %d ,mode=%d, func=%x, bbt=%x vpn = %d\n"
+ .string "%s %d %d\n"
.LC119:
- .string "gc_static_wearleveling: max slc blk: %x,sec=%d,xec = %d ,mode=%d, func=%x, bbt=%x vpn = %d\n"
+ .string "gc_static_wearleveling: min blk: %x,sec=%d,xec = %d ,mode=%d, func=%x, bbt=%x vpn = %d\n"
.LC120:
- .string "gc_static_wearleveling: max xlc blk: %x,sec=%d,xec = %d ,mode=%d, func=%x, bbt=%x vpn = %d\n"
+ .string "gc_static_wearleveling: min slc blk: %x,sec=%d,xec = %d ,mode=%d, func=%x, bbt=%x vpn = %d\n"
.LC121:
- .string "gc_static_wearleveling: slc blk: %x, tlc blk: %d avg slc ec: %d, avg tlc ec: %d \n"
+ .string "gc_static_wearleveling: min tlc blk: %x,sec=%d,xec = %d ,mode=%d, func=%x, bbt=%x vpn = %d\n"
.LC122:
- .string "gc_static_wearleveling: min slc ec: %x, min tlc ec: %d max slc ec: %d, max tlc ec: %d; %d %d\n"
+ .string "gc_static_wearleveling: max slc blk: %x,sec=%d,xec = %d ,mode=%d, func=%x, bbt=%x vpn = %d\n"
.LC123:
- .string "swl add tlc gc = %x, %d, %d, %d, %d, %d\n"
+ .string "gc_static_wearleveling: max xlc blk: %x,sec=%d,xec = %d ,mode=%d, func=%x, bbt=%x vpn = %d\n"
.LC124:
- .string "swl add slc gc = %x, %d, %d, %d, %d, %d\n"
+ .string "gc_static_wearleveling: slc blk: %x, tlc blk: %d avg slc ec: %d, avg tlc ec: %d \n"
.LC125:
- .string "free blk vpn error: %x %x\n"
+ .string "gc_static_wearleveling: min slc ec: %x, min tlc ec: %d max slc ec: %d, max tlc ec: %d; %d %d\n"
.LC126:
- .string "ftl_free_no_use_map_blk %x %x %x %d\n"
+ .string "swl add tlc gc = %x, %d, %d, %d, %d, %d\n"
.LC127:
- .string "...%d @ %s\n"
+ .string "swl add slc gc = %x, %d, %d, %d, %d, %d\n"
.LC128:
- .string "rk_ftl_de_init %x\n"
+ .string "free blk vpn error: %x %x\n"
.LC129:
- .string "%s %p:0x%x:"
+ .string "ftl_free_no_use_map_blk %x %x %x %d\n"
.LC130:
- .string "%x "
+ .string "...%d @ %s\n"
.LC131:
- .string ""
+ .string "rk_ftl_de_init %x\n"
.LC132:
- .string "otp error! %d"
+ .string "%s %p:0x%x:"
.LC133:
- .string "rr"
+ .string "%x "
.LC134:
- .string "flash_abort_clear = %d\n"
+ .string ""
.LC135:
- .string "%d mtrans_cnt = %d page_num = %d\n"
+ .string "otp error! %d"
.LC136:
- .string "nandc:"
+ .string "rr"
.LC137:
- .string "%d flReg.d32=%x %x\n"
+ .string "flash_abort_clear = %d\n"
.LC138:
- .string "nandc_xfer_done read error %x\n"
+ .string "%d mtrans_cnt = %d page_num = %d\n"
.LC139:
- .string "dqs data abort %x\n"
+ .string "nandc:"
.LC140:
- .string "dqs data timeout %x\n"
+ .string "%d flReg.d32=%x %x\n"
.LC141:
- .string "xfer error %x\n"
+ .string "nandc_xfer_done read error %x\n"
.LC142:
- .string "flash_read_page %x %x %x\n"
+ .string "dqs data abort %x\n"
.LC143:
- .string "micron %d row=%x,last status %d,status = %d\n"
+ .string "dqs data timeout %x\n"
.LC144:
- .string "micron RR %d row=%x,count %d,status=%d\n"
+ .string "xfer error %x\n"
.LC145:
- .string "toshiba SRR %d row=%x, status=%d\n"
+ .string "flash_read_page %x %x %x\n"
.LC146:
- .string "toshiba TRR %d row=%x, status=%d\n"
+ .string "micron %d row=%x,last status %d,status = %d\n"
.LC147:
- .string "toshiba RR %d row=%x,count %d,status=%d\n"
+ .string "micron RR %d row=%x,count %d,status=%d\n"
.LC148:
- .string "hynix RR %d row=%x, count %d, status=%d\n"
+ .string "toshiba SRR %d row=%x, status=%d\n"
.LC149:
- .string "%d flash_ddr_tuning_read %x ecc=%d\n"
+ .string "toshiba TRR %d row=%x, status=%d\n"
.LC150:
- .string "sync para %d\n"
+ .string "toshiba RR %d row=%x,count %d,status=%d\n"
.LC151:
- .string "DDR mode Read error %x %x\n"
+ .string "hynix RR %d row=%x, count %d, status=%d\n"
.LC152:
- .string "SDR mode Read %x %x ecc:%x\n"
+ .string "%d flash_ddr_tuning_read %x ecc=%d\n"
.LC153:
- .string "flash_read_page_en %x %x %x\n"
+ .string "sync para %d\n"
.LC154:
- .string "flash_read_page_en %x %x error_ecc %d %d\n"
+ .string "DDR mode Read error %x %x\n"
.LC155:
- .string "flash_get_last_written_page: %x %x %x\n"
+ .string "SDR mode Read %x %x ecc:%x\n"
.LC156:
- .string "...%d @ %s %d %p\n"
+ .string "flash_read_page_en %x %x %x\n"
.LC157:
- .string "no sys info %x\n"
+ .string "flash_read_page_en %x %x error_ecc %d %d\n"
.LC158:
- .string "read page: %x %x %x %x\n"
+ .string "flash_get_last_written_page: %x %x %x\n"
.LC159:
- .string "flash_complete_page_read %x %x error_ecc %d %d\n"
+ .string "read page: %x %x %x %x\n"
.LC160:
- .string "read: %x %x %x %x\n"
+ .string "flash_complete_page_read %x %x error_ecc %d %d\n"
.LC161:
- .string "0set buf %d,status = %x, ppa = %x lun state = %d\n"
+ .string "read: %x %x %x %x\n"
.LC162:
- .string "1set buf %d,status = %x, ppa = %x lun state = %d\n"
+ .string "0set buf %d,status = %x, ppa = %x lun state = %d\n"
.LC163:
- .string "flash_prog_page %x %x %x\n"
+ .string "1set buf %d,status = %x, ppa = %x lun state = %d\n"
.LC164:
- .string "flash_prog_page page_addr = %x status = %x\n"
+ .string "flash_prog_page %x %x %x\n"
.LC165:
- .string "sblk_prog_page ppa = %x, count = %d\n"
+ .string "flash_prog_page page_addr = %x status = %x\n"
.LC166:
- .string "flash_prog_page_en:%x %x\n"
+ .string "sblk_3d_tlc_dump_prog wl_addr= %x ppa = %x ppa = %x\n"
.LC167:
- .string "w d:"
+ .string "sblk_mlc_dump_prog wl_addr= %x ppa = %x ppa = %x\n"
.LC168:
- .string "w s:"
+ .string "sblk_prog_page ppa = %x, count = %d\n"
.LC169:
- .string "spare"
+ .string "flash_prog_page_en:%x %x %x\n"
.LC170:
- .string "data"
+ .string "w d:"
.LC171:
- .string "write error: %x\n"
+ .string "w s:"
.LC172:
- .string "g_ftl_info_blk blk = %x, page = %x version = %d\n"
+ .string "spare"
.LC173:
- .string "%d %x @%d %x\n"
+ .string "data"
.LC174:
- .string "ftl_info_blk_init %d %d %x\n"
+ .string "write error: %x\n"
.LC175:
- .string "%s %d %d %x %x\n"
+ .string "g_ftl_info_blk blk = %x, page = %x version = %d\n"
.LC176:
- .string "saved_active_page = %x\n"
+ .string "%d %x @%d %x\n"
.LC177:
- .string "saved_active_plane = %x\n"
+ .string "ftl_info_blk_init %d %d %x\n"
.LC178:
- .string "sblk = %x\n"
+ .string "%s %d %d %x %x\n"
.LC179:
- .string "phy_blk = %x %x\n"
+ .string "saved_active_page = %x\n"
.LC180:
- .string "sblk = %x, vpn0 = %d, vpn1 = %d\n"
+ .string "saved_active_plane = %x\n"
.LC181:
- .string "dump write = %x\n"
+ .string "sblk = %x\n"
.LC182:
- .string "pm_write_page write error: %x\n"
+ .string "phy_blk = %x %x\n"
.LC183:
- .string "finfo:"
+ .string "sblk = %x, vpn0 = %d, vpn1 = %d\n"
.LC184:
- .string "flash_info_flush id = %x, page = %x\n"
+ .string "dump_write_lpa = %x %x %x %x\n"
.LC185:
- .string "sys_info_flush error:%x\n"
+ .string "dump write new ppa = %x, last ppa = %x lpa = %x\n"
.LC186:
- .string "blk= %x, page=%x, ppa = %x, status = %x, data:%x %x %x %x, spare: %x %x %x %x\n"
+ .string "dump write = %x %x\n"
.LC187:
- .string "l2p:"
+ .string "dump write hash update = %x %x %x\n"
.LC188:
- .string "free_buf_count: %d\n"
+ .string "pm_write_page write error: %x\n"
.LC189:
- .string "g_ftl_info_blk blk:0x%x, index:0x%x, page:0x%x\n"
+ .string "ftl_sblk_dump_write = %x %d %d %d %d\n"
.LC190:
- .string "ftl_ext_info_blk blk:0x%x, page:0x%x\n"
+ .string "blk= %x, page=%x, ppa = %x, status = %x, data:%x %x %x %x, spare: %x %x %x %x\n"
.LC191:
- .string "ac_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, page_index:0x%x\n"
+ .string "ftl_sblk_dump_write2 = %x %d %d %d\n"
.LC192:
- .string "tmp_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, page_index:0x%x\n"
+ .string "ftl_sblk_dump_write = %x %x\n"
.LC193:
- .string "gc_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, page_index:0x%x\n"
+ .string "ftl_sblk_dump_write done = %x\n"
.LC194:
- .string "lpa:"
+ .string "finfo:"
.LC195:
- .string "vpn:"
+ .string "flash_info_flush id = %x, page = %x\n"
.LC196:
- .string "sblk:"
+ .string "sys_info_flush error:%x\n"
.LC197:
- .string "lpa_hash:"
+ .string "...%d @ %s %d %p\n"
.LC198:
- .string "lpa_hash_index:"
+ .string "no sys info %x\n"
.LC199:
- .string "%s w error lpn = %x, max ppa = %d\n"
+ .string "l2p:"
.LC200:
- .string "region_id = %d, pm_max_region = %d\n"
+ .string "free_buf_count: %d\n"
.LC201:
- .string "load_l2p_region no ppa = %x , %x, all setting 0xff....\n"
+ .string "g_ftl_info_blk blk:0x%x, index:0x%x, page:0x%x\n"
.LC202:
- .string "load_l2p_region = %x,%x,%x, %x\n"
+ .string "ftl_ext_info_blk blk:0x%x, page:0x%x\n"
.LC203:
- .string "pm_ppa:"
+ .string "ac_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, page_index:0x%x\n"
.LC204:
- .string "data:"
+ .string "tmp_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, page_index:0x%x\n"
.LC205:
- .string "spare:"
+ .string "gc_blk:0x%x, page:0x%x, index:0x%x, free:0x%x, page_index:0x%x\n"
.LC206:
- .string "pm_init posr %x %x %x\n"
+ .string "lpa:"
.LC207:
- .string "pm_init recovery %x %x %x\n"
+ .string "vpn:"
.LC208:
- .string "pm_log2phys lpn = %d, max lpn = %d\n"
+ .string "sblk:"
.LC209:
- .string "ppa = %x, status = %x, data:%x %x %x %x, spare: %x %x %x %x\n"
+ .string "lpa_hash:"
.LC210:
- .string "ppa = %x, status = %x, %x %x spare: %x %x %x %x\n"
+ .string "lpa_hash_index:"
.LC211:
- .string "gc_recovery: %x vpn = %x\n"
+ .string "%s w error lpn = %x, max ppa = %d\n"
.LC212:
- .string "_c_user_data_density := %d\n"
+ .string "region_id = %d, pm_max_region = %d\n"
.LC213:
- .string "_c_totle_phy_density := %d\n"
+ .string "load_l2p_region no ppa = %x , %x, all setting 0xff....\n"
.LC214:
- .string "_c_totle_log_page := %d\n"
+ .string "load_l2p_region = %x,%x,%x, %x\n"
.LC215:
- .string "_c_totle_data_density := %d\n"
+ .string "pm_ppa:"
.LC216:
- .string "_c_ftl_pm_page_num := %d\n"
+ .string "data:"
.LC217:
- .string "_c_ftl_byte_pre_page := %d\n"
+ .string "spare:"
.LC218:
- .string "_c_max_pm_sblk := %d\n"
+ .string "pm_init posr %x %x %x\n"
.LC219:
- .string "_min_slc_super_block := %d\n"
+ .string "pm_init recovery %x %x %x\n"
.LC220:
- .string "_max_xlc_super_block := %d\n"
+ .string "pm_log2phys lpn = %d, max lpn = %d\n"
.LC221:
- .string "gp_ftl_ext_info %p %p %p\n"
+ .string "ppa = %x, status = %x, data:%x %x %x %x, spare: %x %x %x %x\n"
.LC222:
- .string "flash info size: %d %d %d\n"
+ .string "ppa = %x, status = %x, %x %x spare: %x %x %x %x\n"
.LC223:
- .string "ftl_init %x\n"
+ .string "gc_recovery: %x vpn = %x\n"
.LC224:
- .string "gc_update_l2p_map_new sblk %x\n"
+ .string "_c_user_data_density := %d\n"
.LC225:
- .string "gc_update_l2p_map_new: %x %x %x\n"
+ .string "_c_totle_phy_density := %d\n"
.LC226:
- .string "lpa: %x %x %x\n"
+ .string "_c_totle_log_page := %d\n"
.LC227:
- .string "gc_update_l2p_map_new: %x vpn = %x vpn1 = %x done\n"
+ .string "_c_totle_data_density := %d\n"
.LC228:
- .string "gc_scan_src_blk = %x, vpn = %d\n"
+ .string "_c_ftl_pm_page_num := %d\n"
.LC229:
- .string "gc_scan_src_blk = %x, s vpn0 = %d, c vpn1 = %d\n"
+ .string "_c_ftl_byte_pre_page := %d\n"
.LC230:
- .string "gc_block_vpn_scan = %x, s vpn0 = %d, c vpn1 = %d f:%d\n"
+ .string "_c_max_pm_sblk := %d\n"
.LC231:
- .string "ftl_sblk_dump = %x %d %d %d %d\n"
+ .string "_min_slc_super_block := %d\n"
.LC232:
- .string "ftl_sblk_dump = %x %x %x %x\n"
+ .string "_max_xlc_super_block := %d\n"
.LC233:
- .string "page_addr = %x, lpa=%x vpn = %d\n"
+ .string "gp_ftl_ext_info %p %p %p\n"
.LC234:
- .string "index= %x, lpa=%x\n"
+ .string "flash info size: %d %d %d\n"
.LC235:
- .string "block = %x, vpn=%x check vpn = %d\n"
+ .string "ftl_init %x\n"
.LC236:
- .string "ftl_read %x %x %x\n"
+ .string "gc_update_l2p_map_new sblk %x\n"
.LC237:
- .string "ftl_read refresh =%x, lpa = %x, ppa= %x\n"
+ .string "gc_update_l2p_map_new: %x %x %x\n"
.LC238:
- .string "id=%d, lpa = %x, ppa = %x spare = %x %x %x %x\n"
+ .string "lpa: %x %x %x\n"
.LC239:
- .string "zftl debug cmd: %s\n"
+ .string "gc_update_l2p_map_new: %x vpn = %x vpn1 = %x done\n"
.LC240:
- .string "cmd:"
+ .string "gc_scan_src_blk = %x, vpn = %d\n"
.LC241:
- .string "dumpl2p"
+ .string "gc_scan_src_blk = %x, s vpn0 = %d, c vpn1 = %d\n"
.LC242:
- .string "pm l2p:"
+ .string "gc_block_vpn_scan = %x, s vpn0 = %d, c vpn1 = %d f:%d\n"
.LC243:
- .string "pm blk:"
+ .string "ftl_sblk_dump = %x %d %d %d %d\n"
.LC244:
- .string "dumppm:"
+ .string "ftl_sblk_dump = %x %x %x %x\n"
.LC245:
- .string "p_cmd: %s\n"
+ .string "page_addr = %x, lpa=%x vpn = %d\n"
.LC246:
- .string "pm ram = %x, %x\n"
+ .string "index= %x, lpa=%x\n"
.LC247:
- .string "ram:"
+ .string "block = %x, vpn=%x check vpn = %d\n"
.LC248:
- .string "pm:"
+ .string "ftl_read %x %x %x\n"
.LC249:
- .string "dumpsys"
+ .string "ftl_read refresh =%x, lpa = %x, ppa= %x\n"
.LC250:
- .string "dumplist:"
+ .string "id=%d, status = %x, lpa = %x, ppa = %x spare = %x %x %x %x\n"
.LC251:
- .string "vpncheck"
+ .string "zftl debug cmd: %s\n"
.LC252:
- .string "dumpppa:"
+ .string "cmd:"
.LC253:
- .string "dumpblk:"
+ .string "dumpl2p"
.LC254:
- .string "setzdebug:"
+ .string "pm l2p:"
.LC255:
- .string "lpa2ppa:"
+ .string "pm blk:"
.LC256:
- .string "lpa: %x--> ppa: %x\n"
+ .string "dumppm:"
.LC257:
- .string "help:\n"
+ .string "p_cmd: %s\n"
.LC258:
- .string "1. echo dumpl2p > /proc/zftl_debug\n"
+ .string "pm ram = %x, %x\n"
.LC259:
- .string "2. echo dumppm:x > /proc/zftl_debug\n"
+ .string "ram:"
.LC260:
- .string "3. echo dumpsys > /proc/zftl_debug\n"
+ .string "pm:"
.LC261:
- .string "4. echo dumpppa:x > /proc/zftl_debug\n"
+ .string "dumpsys"
.LC262:
- .string "5. echo vpncheck > /proc/zftl_debug\n"
+ .string "dumplist:"
.LC263:
- .string "6. echo setzdebug:x > /proc/zftl_debug\n"
+ .string "vpncheck"
.LC264:
- .string "7. echo dumplist > /proc/zftl_debug\n"
+ .string "dumpppa:"
.LC265:
- .string "8. echo lpa2ppa:x> /proc/zftl_debug\n"
+ .string "dumpblk:"
.LC266:
- .string "gc_lpa:"
+ .string "setzdebug:"
.LC267:
- .string "gc_ppa:"
+ .string "lpa2ppa:"
.LC268:
- .string "err: ppa = %x, status = %x, %x %x spare: %x %x %x %x\n"
+ .string "lpa: %x--> ppa: %x\n"
.LC269:
- .string "ftl_update_l2p_map: %x %x %x\n"
+ .string "help:\n"
.LC270:
- .string "ftl_update_l2p_map"
+ .string "1. echo dumpl2p > /proc/zftl_debug\n"
.LC271:
- .string "lpa_tbl:"
+ .string "2. echo dumppm:x > /proc/zftl_debug\n"
.LC272:
- .string "sblk %x vpn: %d %d\n"
+ .string "3. echo dumpsys > /proc/zftl_debug\n"
.LC273:
- .string "%d read error: ppa:%x, lpa:%x, status:%x\n"
+ .string "4. echo dumpppa:x > /proc/zftl_debug\n"
.LC274:
- .string "gc page in buf: lpa %x ppa = %x pageindex= %x\n"
+ .string "5. echo vpncheck > /proc/zftl_debug\n"
.LC275:
- .string "gc_do_copy_back: lpa %x des_ppa = %x %x gc_ppa= %x page_index= %d\n"
+ .string "6. echo setzdebug:x > /proc/zftl_debug\n"
.LC276:
- .string "gc_do_copy_back: %x %x %x %x gc_ppa:%x %x\n"
+ .string "7. echo dumplist > /proc/zftl_debug\n"
.LC277:
- .string "%d prog_step: %x %x buf id= %x ppa = %x hash=%x id = %x plane = %x lpa=%x\n"
+ .string "8. echo lpa2ppa:x> /proc/zftl_debug\n"
.LC278:
- .string "gc %d: %d %d %d %d %d %d %d\n"
+ .string "gc_lpa:"
.LC279:
- .string "gc %d: %d %d %d %d %d %d\n"
+ .string "gc_ppa:"
.LC280:
- .string "GC_STATE_SCAN_ALL_PAGE = %x, vpn0 = %d, vpn1 = %d\n"
+ .string "err: ppa = %x, status = %x, %x %x spare: %x %x %x %x\n"
.LC281:
- .string "gc free %x, %d\n"
+ .string "ftl_update_l2p_map: %x %x %x\n"
.LC282:
- .string "ftlwrite %x %x %x\n"
+ .string "ftl_update_l2p_map"
.LC283:
- .string "ftl_discard:(%x, %x, %x, %x)\n"
+ .string "lpa_tbl:"
.LC284:
- .string "id_block_prog_msb_ff_data slc page = %d pageadd=%x %x\n"
+ .string "sblk %x vpn: %d %d\n"
.LC285:
- .string "write_idblock fix data %x %x\n"
+ .string "%d read error: ppa:%x, lpa:%x, status:%x\n"
.LC286:
- .string "idblk:"
+ .string "gc page in buf: lpa %x ppa = %x pageindex= %x\n"
.LC287:
- .string "write_idblock totle_sec %x %x\n"
+ .string "gc_do_copy_back: lpa %x des_ppa = %x %x gc_ppa= %x page_index= %d\n"
.LC288:
- .string "READ_SECTOR_IO\n"
+ .string "gc_do_copy_back: %x %x %x %x gc_ppa:%x %x\n"
.LC289:
- .string "rk_copy_from_user error\n"
+ .string "%d prog_step: %x %x buf id= %x ppa = %x hash=%x id = %x plane = %x lpa=%x\n"
.LC290:
- .string "READ_SECTOR_IO %x %x\n"
+ .string "gc %d: %d %d %d %d %d %d %d\n"
.LC291:
- .string "rk_copy_to_user error\n"
+ .string "gc %d: %d %d %d %d %d %d\n"
.LC292:
- .string "WRITE_SECTOR_IO\n"
+ .string "GC_STATE_SCAN_ALL_PAGE = %x, vpn0 = %d, vpn1 = %d\n"
.LC293:
- .string "WRITE_SECTOR_IO %x %x\n"
+ .string "gc free %x, %d\n"
.LC294:
- .string "END_WRITE_SECTOR_IO\n"
+ .string "ftlwrite %x %x %x %x\n"
.LC295:
- .string "END_WRITE_SECTOR_IO %x %x\n"
+ .string "ftl_discard:(%x, %x, %x, %x)\n"
.LC296:
- .string "GET_FLASH_INFO_IO\n"
+ .string "id_block_prog_msb_ff_data slc page = %d pageadd=%x %x\n"
.LC297:
- .string "GET_BAD_BLOCK_IO\n"
+ .string "write_idblock fix data %x %x\n"
.LC298:
- .string "GET_LOCK_FLAG_IO\n"
+ .string "idblk:"
.LC299:
- .string "GET_PUBLIC_KEY_IO\n"
+ .string "write_idblock totle_sec %x %x\n"
.LC300:
- .string "RKNAND_GET_DRM_KEY\n"
+ .string "READ_SECTOR_IO\n"
.LC301:
- .string "RKNAND_STORE_DRM_KEY\n"
+ .string "rk_copy_from_user error\n"
.LC302:
- .string "RKNAND_DIASBLE_SECURE_BOOT\n"
+ .string "READ_SECTOR_IO %x %x\n"
.LC303:
- .string "RKNAND_ENASBLE_SECURE_BOOT\n"
+ .string "rk_copy_to_user error\n"
.LC304:
- .string "RKNAND_GET_SN_SECTOR\n"
+ .string "WRITE_SECTOR_IO\n"
.LC305:
- .string "RKNAND_LOADER_UNLOCK\n"
+ .string "WRITE_SECTOR_IO %x %x\n"
.LC306:
- .string "RKNAND_LOADER_STATUS\n"
+ .string "END_WRITE_SECTOR_IO\n"
.LC307:
- .string "RKNAND_LOADER_LOCK\n"
+ .string "END_WRITE_SECTOR_IO %x %x\n"
.LC308:
- .string "LockKey not match %d\n"
+ .string "GET_FLASH_INFO_IO\n"
.LC309:
- .string "RKNAND_GET_VENDOR_SECTOR\n"
+ .string "GET_BAD_BLOCK_IO\n"
.LC310:
- .string "RKNAND_STORE_VENDOR_SECTOR\n"
+ .string "GET_LOCK_FLAG_IO\n"
.LC311:
- .string "return ret = %lx\n"
+ .string "GET_PUBLIC_KEY_IO\n"
.LC312:
- .string "secureBootEn check error\n"
+ .string "RKNAND_GET_DRM_KEY\n"
.LC313:
+ .string "RKNAND_STORE_DRM_KEY\n"
+.LC314:
+ .string "RKNAND_DIASBLE_SECURE_BOOT\n"
+.LC315:
+ .string "RKNAND_ENASBLE_SECURE_BOOT\n"
+.LC316:
+ .string "RKNAND_GET_SN_SECTOR\n"
+.LC317:
+ .string "RKNAND_LOADER_UNLOCK\n"
+.LC318:
+ .string "RKNAND_LOADER_STATUS\n"
+.LC319:
+ .string "RKNAND_LOADER_LOCK\n"
+.LC320:
+ .string "LockKey not match %d\n"
+.LC321:
+ .string "RKNAND_GET_VENDOR_SECTOR\n"
+.LC322:
+ .string "RKNAND_STORE_VENDOR_SECTOR\n"
+.LC323:
+ .string "return ret = %lx\n"
+.LC324:
+ .string "secureBootEn check error\n"
+.LC325:
.string "\0013vendor storage %x,%x,%x\n"
.data
.align 3
@@ -26620,7 +27747,7 @@ hy_f26_ref_value:
.byte -37
.zero 4
.type zftl_nand_flash_para_tbl, %object
- .size zftl_nand_flash_para_tbl, 1152
+ .size zftl_nand_flash_para_tbl, 1216
zftl_nand_flash_para_tbl:
.byte 6
.byte -104
@@ -27339,7 +28466,7 @@ zftl_nand_flash_para_tbl:
.hword 9671
.byte 5
.byte 19
- .byte 60
+ .byte 70
.byte 32
.byte 1
.byte 0
@@ -27367,7 +28494,7 @@ zftl_nand_flash_para_tbl:
.hword 9671
.byte 5
.byte 19
- .byte 60
+ .byte 70
.byte 32
.byte 1
.byte 0
@@ -27407,6 +28534,34 @@ zftl_nand_flash_para_tbl:
.byte -33
.byte 0
.byte 6
+ .byte -101
+ .byte 73
+ .byte 1
+ .byte 0
+ .byte -101
+ .byte 73
+ .byte 9
+ .byte 1
+ .byte 32
+ .hword 256
+ .byte 2
+ .byte 1
+ .hword 2144
+ .hword -23097
+ .byte 8
+ .byte 21
+ .byte 70
+ .byte 32
+ .byte 1
+ .byte 0
+ .byte 8
+ .byte 0
+ .hword 256
+ .byte 3
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 6
.byte -83
.byte -34
.byte 20
@@ -27574,6 +28729,34 @@ zftl_nand_flash_para_tbl:
.byte 0
.byte 0
.byte 0
+ .byte 6
+ .byte -83
+ .byte 58
+ .byte 20
+ .byte 3
+ .byte 8
+ .byte 80
+ .byte 2
+ .byte 1
+ .byte 32
+ .hword 388
+ .byte 2
+ .byte 2
+ .hword 1362
+ .hword 473
+ .byte 9
+ .byte 8
+ .byte 40
+ .byte 32
+ .byte 3
+ .byte 1
+ .byte 4
+ .byte 0
+ .hword 512
+ .byte 2
+ .byte -65
+ .byte -66
+ .byte 0
.byte 5
.byte -119
.byte 100
@@ -27589,7 +28772,7 @@ zftl_nand_flash_para_tbl:
.byte 1
.hword 1024
.hword 455
- .byte 3
+ .byte 4
.byte 17
.byte 40
.byte 32
@@ -27617,7 +28800,7 @@ zftl_nand_flash_para_tbl:
.byte 2
.hword 1024
.hword 455
- .byte 3
+ .byte 4
.byte 17
.byte 40
.byte 32
@@ -28530,7 +29713,11 @@ g_flash_interface_mode:
.size g_flash_multi_page_prog_en, 1
g_flash_multi_page_prog_en:
.zero 1
- .zero 2
+ .type g_idb_slc_mode_enable, %object
+ .size g_idb_slc_mode_enable, 1
+g_idb_slc_mode_enable:
+ .zero 1
+ .zero 1
.type g_buf, %object
.size g_buf, 2048
g_buf:
@@ -28651,7 +29838,15 @@ sblk_gc_write_completed_queue_head:
.size _c_ftl_nand_type, 1
_c_ftl_nand_type:
.zero 1
- .zero 6
+ .type g_flash_3d_mlc_flag, %object
+ .size g_flash_3d_mlc_flag, 1
+g_flash_3d_mlc_flag:
+ .zero 1
+ .type g_one_pass_program, %object
+ .size g_one_pass_program, 1
+g_one_pass_program:
+ .zero 1
+ .zero 4
.type gc_page_buf_id, %object
.size gc_page_buf_id, 8
gc_page_buf_id:
@@ -28747,11 +29942,6 @@ _max_slc_super_block:
.size _c_mix_max_slc_ec_count, 2
_c_mix_max_slc_ec_count:
.zero 2
- .type g_flash_3d_mlc_flag, %object
- .size g_flash_3d_mlc_flag, 1
-g_flash_3d_mlc_flag:
- .zero 1
- .zero 1
.type _c_ftl_block_align_addr, %object
.size _c_ftl_block_align_addr, 2
_c_ftl_block_align_addr:
@@ -28760,7 +29950,7 @@ _c_ftl_block_align_addr:
.size _c_ftl_nand_die_num, 1
_c_ftl_nand_die_num:
.zero 1
- .zero 7
+ .zero 1
.type lpa_hash, %object
.size lpa_hash, 512
lpa_hash:
@@ -28900,15 +30090,6 @@ flash_ddr_tuning_sdr_read_count:
.size flash_read_retry, 8
flash_read_retry:
.zero 8
- .type g_flash_sys_spare_buffer, %object
- .size g_flash_sys_spare_buffer, 8
-g_flash_sys_spare_buffer:
- .zero 8
- .type g_flash_blk_info, %object
- .size g_flash_blk_info, 4
-g_flash_blk_info:
- .zero 4
- .zero 4
.type g_flash_page_buffer, %object
.size g_flash_page_buffer, 8
g_flash_page_buffer:
@@ -28917,10 +30098,6 @@ g_flash_page_buffer:
.size g_flash_spare_buffer, 8
g_flash_spare_buffer:
.zero 8
- .type g_idb_slc_mode_enable, %object
- .size g_idb_slc_mode_enable, 1
-g_idb_slc_mode_enable:
- .zero 1
.type g_flash_multi_page_read_en, %object
.size g_flash_multi_page_read_en, 1
g_flash_multi_page_read_en:
@@ -28929,12 +30106,12 @@ g_flash_multi_page_read_en:
.size write_commit_head, 1
write_commit_head:
.zero 1
- .zero 1
+ .zero 2
.type ftl_flush_jiffies, %object
.size ftl_flush_jiffies, 4
ftl_flush_jiffies:
.zero 4
- .zero 8
+ .zero 32
.type ftl_info_spare, %object
.size ftl_info_spare, 256
ftl_info_spare:
@@ -28977,10 +30154,20 @@ g_pm_spare:
.size pm_first_write, 1
pm_first_write:
.zero 1
+ .zero 7
+ .type g_flash_sys_spare_buffer, %object
+ .size g_flash_sys_spare_buffer, 8
+g_flash_sys_spare_buffer:
+ .zero 8
+ .type g_flash_blk_info, %object
+ .size g_flash_blk_info, 4
+g_flash_blk_info:
+ .zero 4
.type g_flash_reversd_blks, %object
.size g_flash_reversd_blks, 1
g_flash_reversd_blks:
.zero 1
+ .zero 1
.type _c_ftl_byte_pre_page, %object
.size _c_ftl_byte_pre_page, 2
_c_ftl_byte_pre_page:
@@ -29006,7 +30193,7 @@ _c_ftl_pm_page_num:
.size rk_zftl_enable, 1
rk_zftl_enable:
.zero 1
- .zero 5
+ .zero 1
.type gLoaderBootInfo, %object
.size gLoaderBootInfo, 8
gLoaderBootInfo:
@@ -29086,7 +30273,7 @@ g_vendor:
.size ftl_low_format_cur_blk, 2
ftl_low_format_cur_blk:
.zero 2
- .zero 46
+ .zero 30
.type ftl_tmp_buffer, %object
.size ftl_tmp_buffer, 16384
ftl_tmp_buffer: